diff options
author | Max <mparisi@stevens.edu> | 2020-10-29 14:27:37 -0400 |
---|---|---|
committer | Max <mparisi@stevens.edu> | 2020-10-29 14:27:37 -0400 |
commit | 47a1bdea8872c79dd2cd7d75ca7f254b9ed13170 (patch) | |
tree | f254bbac3fde59afbc4abe7f07ea763bed53b20c /asm/SDK/DWC | |
parent | f13fcff4a5f496e8bc1fa4ff759698d9ac37c478 (diff) |
match up to func_801DCFE4, add string.h and stdlib.h, add types.h to Makefile include path, and move GameSpy under DWC
Diffstat (limited to 'asm/SDK/DWC')
49 files changed, 50604 insertions, 0 deletions
diff --git a/asm/SDK/DWC/gamespy/NATify.s b/asm/SDK/DWC/gamespy/NATify.s new file mode 100644 index 0000000..fdb9bea --- /dev/null +++ b/asm/SDK/DWC/gamespy/NATify.s @@ -0,0 +1,542 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global AddressToString
+AddressToString:
+/* 8035A44C 003560AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035A450 003560B0 7C 08 02 A6 */ mflr r0
+/* 8035A454 003560B4 2C 05 00 00 */ cmpwi r5, 0
+/* 8035A458 003560B8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035A45C 003560BC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035A460 003560C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035A464 003560C4 7C 9E 23 78 */ mr r30, r4
+/* 8035A468 003560C8 41 82 00 0C */ beq lbl_8035A474
+/* 8035A46C 003560CC 7C BF 2B 78 */ mr r31, r5
+/* 8035A470 003560D0 48 00 00 20 */ b lbl_8035A490
+lbl_8035A474:
+/* 8035A474 003560D4 80 0D B1 30 */ lwz r0, lbl_806403F0-_SDA_BASE_(r13)
+/* 8035A478 003560D8 3C A0 80 62 */ lis r5, lbl_806211E8@ha
+/* 8035A47C 003560DC 38 A5 11 E8 */ addi r5, r5, lbl_806211E8@l
+/* 8035A480 003560E0 68 06 00 01 */ xori r6, r0, 1
+/* 8035A484 003560E4 1C 06 00 16 */ mulli r0, r6, 0x16
+/* 8035A488 003560E8 90 CD B1 30 */ stw r6, lbl_806403F0-_SDA_BASE_(r13)
+/* 8035A48C 003560EC 7F E5 02 14 */ add r31, r5, r0
+lbl_8035A490:
+/* 8035A490 003560F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A494 003560F4 41 82 00 58 */ beq lbl_8035A4EC
+/* 8035A498 003560F8 2C 04 00 00 */ cmpwi r4, 0
+/* 8035A49C 003560FC 41 82 00 2C */ beq lbl_8035A4C8
+/* 8035A4A0 00356100 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8035A4A4 00356104 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035A4A8 00356108 4B F9 C8 71 */ bl SOInetNtoA
+/* 8035A4AC 0035610C 7C 65 1B 78 */ mr r5, r3
+/* 8035A4B0 00356110 7F E3 FB 78 */ mr r3, r31
+/* 8035A4B4 00356114 7F C6 F3 78 */ mr r6, r30
+/* 8035A4B8 00356118 38 8D 94 98 */ addi r4, r13, lbl_8063E758-_SDA_BASE_
+/* 8035A4BC 0035611C 4C C6 31 82 */ crclr 6
+/* 8035A4C0 00356120 4B E7 26 3D */ bl sprintf
+/* 8035A4C4 00356124 48 00 00 50 */ b lbl_8035A514
+lbl_8035A4C8:
+/* 8035A4C8 00356128 90 61 00 08 */ stw r3, 8(r1)
+/* 8035A4CC 0035612C 38 61 00 08 */ addi r3, r1, 8
+/* 8035A4D0 00356130 4B F9 C8 49 */ bl SOInetNtoA
+/* 8035A4D4 00356134 7C 65 1B 78 */ mr r5, r3
+/* 8035A4D8 00356138 7F E3 FB 78 */ mr r3, r31
+/* 8035A4DC 0035613C 38 8D 94 A0 */ addi r4, r13, lbl_8063E760-_SDA_BASE_
+/* 8035A4E0 00356140 4C C6 31 82 */ crclr 6
+/* 8035A4E4 00356144 4B E7 26 19 */ bl sprintf
+/* 8035A4E8 00356148 48 00 00 2C */ b lbl_8035A514
+lbl_8035A4EC:
+/* 8035A4EC 0035614C 2C 04 00 00 */ cmpwi r4, 0
+/* 8035A4F0 00356150 41 82 00 1C */ beq lbl_8035A50C
+/* 8035A4F4 00356154 7F E3 FB 78 */ mr r3, r31
+/* 8035A4F8 00356158 7F C5 F3 78 */ mr r5, r30
+/* 8035A4FC 0035615C 38 8D 94 A4 */ addi r4, r13, lbl_8063E764-_SDA_BASE_
+/* 8035A500 00356160 4C C6 31 82 */ crclr 6
+/* 8035A504 00356164 4B E7 25 F9 */ bl sprintf
+/* 8035A508 00356168 48 00 00 0C */ b lbl_8035A514
+lbl_8035A50C:
+/* 8035A50C 0035616C 38 00 00 00 */ li r0, 0
+/* 8035A510 00356170 98 1F 00 00 */ stb r0, 0(r31)
+lbl_8035A514:
+/* 8035A514 00356174 7F E3 FB 78 */ mr r3, r31
+/* 8035A518 00356178 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035A51C 0035617C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035A520 00356180 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035A524 00356184 7C 08 03 A6 */ mtlr r0
+/* 8035A528 00356188 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035A52C 0035618C 4E 80 00 20 */ blr
+
+.global GetLocalIP
+GetLocalIP:
+/* 8035A530 00356190 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035A534 00356194 7C 08 02 A6 */ mflr r0
+/* 8035A538 00356198 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035A53C 0035619C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035A540 003561A0 4B E6 CB E5 */ bl _savegpr_26
+/* 8035A544 003561A4 3B 40 00 00 */ li r26, 0
+/* 8035A548 003561A8 4B FD E3 95 */ bl getlocalhost
+/* 8035A54C 003561AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A550 003561B0 7C 7E 1B 78 */ mr r30, r3
+/* 8035A554 003561B4 40 82 00 0C */ bne lbl_8035A560
+/* 8035A558 003561B8 38 60 00 00 */ li r3, 0
+/* 8035A55C 003561BC 48 00 00 58 */ b lbl_8035A5B4
+lbl_8035A560:
+/* 8035A560 003561C0 3B A0 00 00 */ li r29, 0
+/* 8035A564 003561C4 3F E0 7F 00 */ lis r31, 0x7f00
+lbl_8035A568:
+/* 8035A568 003561C8 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8035A56C 003561CC 7F 63 E8 2E */ lwzx r27, r3, r29
+/* 8035A570 003561D0 2C 1B 00 00 */ cmpwi r27, 0
+/* 8035A574 003561D4 41 82 00 3C */ beq lbl_8035A5B0
+/* 8035A578 003561D8 83 9B 00 00 */ lwz r28, 0(r27)
+/* 8035A57C 003561DC 38 7F 00 01 */ addi r3, r31, 1
+/* 8035A580 003561E0 4B F9 C7 F9 */ bl SOHtoNl
+/* 8035A584 003561E4 7C 1C 18 40 */ cmplw r28, r3
+/* 8035A588 003561E8 41 82 00 20 */ beq lbl_8035A5A8
+/* 8035A58C 003561EC 7F 9A E3 78 */ mr r26, r28
+/* 8035A590 003561F0 7F 63 DB 78 */ mr r3, r27
+/* 8035A594 003561F4 4B FD E4 FD */ bl IsPrivateIP
+/* 8035A598 003561F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A59C 003561FC 41 82 00 0C */ beq lbl_8035A5A8
+/* 8035A5A0 00356200 7F 83 E3 78 */ mr r3, r28
+/* 8035A5A4 00356204 48 00 00 10 */ b lbl_8035A5B4
+lbl_8035A5A8:
+/* 8035A5A8 00356208 3B BD 00 04 */ addi r29, r29, 4
+/* 8035A5AC 0035620C 4B FF FF BC */ b lbl_8035A568
+lbl_8035A5B0:
+/* 8035A5B0 00356210 7F 43 D3 78 */ mr r3, r26
+lbl_8035A5B4:
+/* 8035A5B4 00356214 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035A5B8 00356218 4B E6 CB B9 */ bl _restgpr_26
+/* 8035A5BC 0035621C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035A5C0 00356220 7C 08 03 A6 */ mtlr r0
+/* 8035A5C4 00356224 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035A5C8 00356228 4E 80 00 20 */ blr
+
+.global Think
+Think:
+/* 8035A5CC 0035622C 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 8035A5D0 00356230 7C 08 02 A6 */ mflr r0
+/* 8035A5D4 00356234 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 8035A5D8 00356238 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 8035A5DC 0035623C 4B E6 CB 3D */ bl _savegpr_23
+/* 8035A5E0 00356240 80 0D B1 4C */ lwz r0, lbl_8064040C-_SDA_BASE_(r13)
+/* 8035A5E4 00356244 38 A0 00 08 */ li r5, 8
+/* 8035A5E8 00356248 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 8035A5EC 0035624C 7C 78 1B 78 */ mr r24, r3
+/* 8035A5F0 00356250 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A5F4 00356254 7C 99 23 78 */ mr r25, r4
+/* 8035A5F8 00356258 41 82 00 54 */ beq lbl_8035A64C
+/* 8035A5FC 0035625C 80 0D B1 48 */ lwz r0, lbl_80640408-_SDA_BASE_(r13)
+/* 8035A600 00356260 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A604 00356264 41 82 00 48 */ beq lbl_8035A64C
+/* 8035A608 00356268 80 0D B1 44 */ lwz r0, lbl_80640404-_SDA_BASE_(r13)
+/* 8035A60C 0035626C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A610 00356270 41 82 00 3C */ beq lbl_8035A64C
+/* 8035A614 00356274 80 0D B1 40 */ lwz r0, lbl_80640400-_SDA_BASE_(r13)
+/* 8035A618 00356278 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A61C 0035627C 41 82 00 30 */ beq lbl_8035A64C
+/* 8035A620 00356280 80 0D B1 3C */ lwz r0, lbl_806403FC-_SDA_BASE_(r13)
+/* 8035A624 00356284 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A628 00356288 41 82 00 24 */ beq lbl_8035A64C
+/* 8035A62C 0035628C 80 0D B1 38 */ lwz r0, lbl_806403F8-_SDA_BASE_(r13)
+/* 8035A630 00356290 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A634 00356294 41 82 00 18 */ beq lbl_8035A64C
+/* 8035A638 00356298 80 0D B1 34 */ lwz r0, lbl_806403F4-_SDA_BASE_(r13)
+/* 8035A63C 0035629C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A640 003562A0 41 82 00 0C */ beq lbl_8035A64C
+/* 8035A644 003562A4 38 60 00 00 */ li r3, 0
+/* 8035A648 003562A8 48 00 02 90 */ b lbl_8035A8D8
+lbl_8035A64C:
+/* 8035A64C 003562AC 2C 03 FF FF */ cmpwi r3, -1
+/* 8035A650 003562B0 41 82 02 84 */ beq lbl_8035A8D4
+/* 8035A654 003562B4 3F 40 80 62 */ lis r26, lbl_80621218@ha
+/* 8035A658 003562B8 3B A0 00 01 */ li r29, 1
+/* 8035A65C 003562BC 3B 9A 12 18 */ addi r28, r26, lbl_80621218@l
+/* 8035A660 003562C0 3B C0 00 00 */ li r30, 0
+/* 8035A664 003562C4 3F 60 80 64 */ lis r27, 0x8064
+/* 8035A668 003562C8 3B E0 00 08 */ li r31, 8
+lbl_8035A66C:
+/* 8035A66C 003562CC 7F 03 C3 78 */ mr r3, r24
+/* 8035A670 003562D0 4B FD E1 DD */ bl CanReceiveOnSocket
+/* 8035A674 003562D4 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A678 003562D8 41 82 02 5C */ beq lbl_8035A8D4
+/* 8035A67C 003562DC 7F 03 C3 78 */ mr r3, r24
+/* 8035A680 003562E0 38 9A 12 18 */ addi r4, r26, 0x1218
+/* 8035A684 003562E4 38 E1 00 18 */ addi r7, r1, 0x18
+/* 8035A688 003562E8 39 01 00 0C */ addi r8, r1, 0xc
+/* 8035A68C 003562EC 38 A0 02 00 */ li r5, 0x200
+/* 8035A690 003562F0 38 C0 00 00 */ li r6, 0
+/* 8035A694 003562F4 4B FD D7 71 */ bl recvfrom
+/* 8035A698 003562F8 2C 03 FF FF */ cmpwi r3, -1
+/* 8035A69C 003562FC 7C 77 1B 78 */ mr r23, r3
+/* 8035A6A0 00356300 40 82 00 10 */ bne lbl_8035A6B0
+/* 8035A6A4 00356304 7F 03 C3 78 */ mr r3, r24
+/* 8035A6A8 00356308 4B FD D9 01 */ bl GOAGetLastError
+/* 8035A6AC 0035630C 48 00 02 28 */ b lbl_8035A8D4
+lbl_8035A6B0:
+/* 8035A6B0 00356310 38 7A 12 18 */ addi r3, r26, 0x1218
+/* 8035A6B4 00356314 38 9B E7 68 */ addi r4, r27, -6296
+/* 8035A6B8 00356318 38 A0 00 06 */ li r5, 6
+/* 8035A6BC 0035631C 4B E6 FC DD */ bl memcmp
+/* 8035A6C0 00356320 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A6C4 00356324 41 82 00 0C */ beq lbl_8035A6D0
+/* 8035A6C8 00356328 38 60 00 01 */ li r3, 1
+/* 8035A6CC 0035632C 48 00 02 0C */ b lbl_8035A8D8
+lbl_8035A6D0:
+/* 8035A6D0 00356330 2C 17 00 15 */ cmpwi r23, 0x15
+/* 8035A6D4 00356334 88 1C 00 07 */ lbz r0, 7(r28)
+/* 8035A6D8 00356338 40 80 00 0C */ bge lbl_8035A6E4
+/* 8035A6DC 0035633C 38 60 00 01 */ li r3, 1
+/* 8035A6E0 00356340 48 00 01 F8 */ b lbl_8035A8D8
+lbl_8035A6E4:
+/* 8035A6E4 00356344 28 00 00 02 */ cmplwi r0, 2
+/* 8035A6E8 00356348 40 82 00 B0 */ bne lbl_8035A798
+/* 8035A6EC 0035634C 7F 84 E3 78 */ mr r4, r28
+/* 8035A6F0 00356350 38 61 00 20 */ addi r3, r1, 0x20
+/* 8035A6F4 00356354 38 A0 00 15 */ li r5, 0x15
+/* 8035A6F8 00356358 4B CA 99 09 */ bl memcpy
+/* 8035A6FC 0035635C 88 01 00 2C */ lbz r0, 0x2c(r1)
+/* 8035A700 00356360 2C 00 00 02 */ cmpwi r0, 2
+/* 8035A704 00356364 41 82 00 44 */ beq lbl_8035A748
+/* 8035A708 00356368 40 80 00 10 */ bge lbl_8035A718
+/* 8035A70C 0035636C 2C 00 00 01 */ cmpwi r0, 1
+/* 8035A710 00356370 40 80 00 14 */ bge lbl_8035A724
+/* 8035A714 00356374 48 00 01 B8 */ b lbl_8035A8CC
+lbl_8035A718:
+/* 8035A718 00356378 2C 00 00 04 */ cmpwi r0, 4
+/* 8035A71C 0035637C 40 80 01 B0 */ bge lbl_8035A8CC
+/* 8035A720 00356380 48 00 00 50 */ b lbl_8035A770
+lbl_8035A724:
+/* 8035A724 00356384 93 AD B1 4C */ stw r29, lbl_8064040C-_SDA_BASE_(r13)
+/* 8035A728 00356388 A0 61 00 1A */ lhz r3, 0x1a(r1)
+/* 8035A72C 0035638C 4B F9 C6 45 */ bl SONtoHs
+/* 8035A730 00356390 7C 60 1B 78 */ mr r0, r3
+/* 8035A734 00356394 80 61 00 1C */ lwz r3, 0x1c(r1)
+/* 8035A738 00356398 54 04 04 3E */ clrlwi r4, r0, 0x10
+/* 8035A73C 0035639C 38 A0 00 00 */ li r5, 0
+/* 8035A740 003563A0 4B FF FD 0D */ bl AddressToString
+/* 8035A744 003563A4 48 00 01 88 */ b lbl_8035A8CC
+lbl_8035A748:
+/* 8035A748 003563A8 93 D9 00 80 */ stw r30, 0x80(r25)
+/* 8035A74C 003563AC 93 AD B1 48 */ stw r29, lbl_80640408-_SDA_BASE_(r13)
+/* 8035A750 003563B0 A0 61 00 1A */ lhz r3, 0x1a(r1)
+/* 8035A754 003563B4 4B F9 C6 1D */ bl SONtoHs
+/* 8035A758 003563B8 7C 60 1B 78 */ mr r0, r3
+/* 8035A75C 003563BC 80 61 00 1C */ lwz r3, 0x1c(r1)
+/* 8035A760 003563C0 54 04 04 3E */ clrlwi r4, r0, 0x10
+/* 8035A764 003563C4 38 A0 00 00 */ li r5, 0
+/* 8035A768 003563C8 4B FF FC E5 */ bl AddressToString
+/* 8035A76C 003563CC 48 00 01 60 */ b lbl_8035A8CC
+lbl_8035A770:
+/* 8035A770 003563D0 93 D9 00 84 */ stw r30, 0x84(r25)
+/* 8035A774 003563D4 93 AD B1 44 */ stw r29, lbl_80640404-_SDA_BASE_(r13)
+/* 8035A778 003563D8 A0 61 00 1A */ lhz r3, 0x1a(r1)
+/* 8035A77C 003563DC 4B F9 C5 F5 */ bl SONtoHs
+/* 8035A780 003563E0 7C 60 1B 78 */ mr r0, r3
+/* 8035A784 003563E4 80 61 00 1C */ lwz r3, 0x1c(r1)
+/* 8035A788 003563E8 54 04 04 3E */ clrlwi r4, r0, 0x10
+/* 8035A78C 003563EC 38 A0 00 00 */ li r5, 0
+/* 8035A790 003563F0 4B FF FC BD */ bl AddressToString
+/* 8035A794 003563F4 48 00 01 38 */ b lbl_8035A8CC
+lbl_8035A798:
+/* 8035A798 003563F8 28 00 00 0B */ cmplwi r0, 0xb
+/* 8035A79C 003563FC 40 82 01 30 */ bne lbl_8035A8CC
+/* 8035A7A0 00356400 7F 84 E3 78 */ mr r4, r28
+/* 8035A7A4 00356404 38 61 00 20 */ addi r3, r1, 0x20
+/* 8035A7A8 00356408 38 A0 00 15 */ li r5, 0x15
+/* 8035A7AC 0035640C 4B CA 98 55 */ bl memcpy
+/* 8035A7B0 00356410 80 61 00 28 */ lwz r3, 0x28(r1)
+/* 8035A7B4 00356414 4B F9 C5 B9 */ bl SONtoHl
+/* 8035A7B8 00356418 2C 03 00 02 */ cmpwi r3, 2
+/* 8035A7BC 0035641C 90 61 00 28 */ stw r3, 0x28(r1)
+/* 8035A7C0 00356420 41 82 00 3C */ beq lbl_8035A7FC
+/* 8035A7C4 00356424 40 80 00 14 */ bge lbl_8035A7D8
+/* 8035A7C8 00356428 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A7CC 0035642C 41 82 00 18 */ beq lbl_8035A7E4
+/* 8035A7D0 00356430 40 80 00 24 */ bge lbl_8035A7F4
+/* 8035A7D4 00356434 48 00 00 2C */ b lbl_8035A800
+lbl_8035A7D8:
+/* 8035A7D8 00356438 2C 03 00 04 */ cmpwi r3, 4
+/* 8035A7DC 0035643C 40 80 00 24 */ bge lbl_8035A800
+/* 8035A7E0 00356440 48 00 00 0C */ b lbl_8035A7EC
+lbl_8035A7E4:
+/* 8035A7E4 00356444 93 AD B1 40 */ stw r29, lbl_80640400-_SDA_BASE_(r13)
+/* 8035A7E8 00356448 48 00 00 18 */ b lbl_8035A800
+lbl_8035A7EC:
+/* 8035A7EC 0035644C 93 AD B1 3C */ stw r29, lbl_806403FC-_SDA_BASE_(r13)
+/* 8035A7F0 00356450 48 00 00 10 */ b lbl_8035A800
+lbl_8035A7F4:
+/* 8035A7F4 00356454 93 AD B1 38 */ stw r29, lbl_806403F8-_SDA_BASE_(r13)
+/* 8035A7F8 00356458 48 00 00 08 */ b lbl_8035A800
+lbl_8035A7FC:
+/* 8035A7FC 0035645C 93 AD B1 34 */ stw r29, lbl_806403F4-_SDA_BASE_(r13)
+lbl_8035A800:
+/* 8035A800 00356460 4B FF FD 31 */ bl GetLocalIP
+/* 8035A804 00356464 80 01 00 28 */ lwz r0, 0x28(r1)
+/* 8035A808 00356468 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035A80C 0035646C 38 A1 00 08 */ addi r5, r1, 8
+/* 8035A810 00356470 54 00 20 36 */ slwi r0, r0, 4
+/* 8035A814 00356474 7C D9 02 14 */ add r6, r25, r0
+/* 8035A818 00356478 90 66 00 94 */ stw r3, 0x94(r6)
+/* 8035A81C 0035647C 7F 03 C3 78 */ mr r3, r24
+/* 8035A820 00356480 93 E1 00 08 */ stw r31, 8(r1)
+/* 8035A824 00356484 4B FD D6 F1 */ bl getsockname
+/* 8035A828 00356488 2C 03 FF FF */ cmpwi r3, -1
+/* 8035A82C 0035648C 40 82 00 0C */ bne lbl_8035A838
+/* 8035A830 00356490 38 60 00 00 */ li r3, 0
+/* 8035A834 00356494 48 00 00 08 */ b lbl_8035A83C
+lbl_8035A838:
+/* 8035A838 00356498 A0 61 00 12 */ lhz r3, 0x12(r1)
+lbl_8035A83C:
+/* 8035A83C 0035649C 4B F9 C5 35 */ bl SONtoHs
+/* 8035A840 003564A0 80 01 00 28 */ lwz r0, 0x28(r1)
+/* 8035A844 003564A4 54 00 20 36 */ slwi r0, r0, 4
+/* 8035A848 003564A8 7C 99 02 14 */ add r4, r25, r0
+/* 8035A84C 003564AC B0 64 00 98 */ sth r3, 0x98(r4)
+/* 8035A850 003564B0 80 01 00 28 */ lwz r0, 0x28(r1)
+/* 8035A854 003564B4 80 81 00 2F */ lwz r4, 0x2f(r1)
+/* 8035A858 003564B8 54 00 20 36 */ slwi r0, r0, 4
+/* 8035A85C 003564BC 7C 79 02 14 */ add r3, r25, r0
+/* 8035A860 003564C0 90 83 00 9C */ stw r4, 0x9c(r3)
+/* 8035A864 003564C4 A0 61 00 33 */ lhz r3, 0x33(r1)
+/* 8035A868 003564C8 4B F9 C5 09 */ bl SONtoHs
+/* 8035A86C 003564CC 80 01 00 28 */ lwz r0, 0x28(r1)
+/* 8035A870 003564D0 54 00 20 36 */ slwi r0, r0, 4
+/* 8035A874 003564D4 7C 99 02 14 */ add r4, r25, r0
+/* 8035A878 003564D8 B0 64 00 A0 */ sth r3, 0xa0(r4)
+/* 8035A87C 003564DC A0 61 00 1A */ lhz r3, 0x1a(r1)
+/* 8035A880 003564E0 4B F9 C4 F1 */ bl SONtoHs
+/* 8035A884 003564E4 7C 60 1B 78 */ mr r0, r3
+/* 8035A888 003564E8 80 61 00 1C */ lwz r3, 0x1c(r1)
+/* 8035A88C 003564EC 54 04 04 3E */ clrlwi r4, r0, 0x10
+/* 8035A890 003564F0 38 A0 00 00 */ li r5, 0
+/* 8035A894 003564F4 4B FF FB B9 */ bl AddressToString
+/* 8035A898 003564F8 80 01 00 28 */ lwz r0, 0x28(r1)
+/* 8035A89C 003564FC 54 00 20 36 */ slwi r0, r0, 4
+/* 8035A8A0 00356500 7C 19 02 14 */ add r0, r25, r0
+/* 8035A8A4 00356504 36 E0 00 94 */ addic. r23, r0, 0x94
+/* 8035A8A8 00356508 41 82 00 24 */ beq lbl_8035A8CC
+/* 8035A8AC 0035650C 80 77 00 00 */ lwz r3, 0(r23)
+/* 8035A8B0 00356510 38 A0 00 00 */ li r5, 0
+/* 8035A8B4 00356514 A0 97 00 04 */ lhz r4, 4(r23)
+/* 8035A8B8 00356518 4B FF FB 95 */ bl AddressToString
+/* 8035A8BC 0035651C 80 77 00 08 */ lwz r3, 8(r23)
+/* 8035A8C0 00356520 38 A0 00 00 */ li r5, 0
+/* 8035A8C4 00356524 A0 97 00 0C */ lhz r4, 0xc(r23)
+/* 8035A8C8 00356528 4B FF FB 85 */ bl AddressToString
+lbl_8035A8CC:
+/* 8035A8CC 0035652C 2C 18 FF FF */ cmpwi r24, -1
+/* 8035A8D0 00356530 40 82 FD 9C */ bne lbl_8035A66C
+lbl_8035A8D4:
+/* 8035A8D4 00356534 38 60 00 01 */ li r3, 1
+lbl_8035A8D8:
+/* 8035A8D8 00356538 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 8035A8DC 0035653C 4B E6 C8 89 */ bl _restgpr_23
+/* 8035A8E0 00356540 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 8035A8E4 00356544 7C 08 03 A6 */ mtlr r0
+/* 8035A8E8 00356548 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 8035A8EC 0035654C 4E 80 00 20 */ blr
+
+.global NatifyThink
+NatifyThink:
+/* 8035A8F0 00356550 4B FF FC DC */ b Think
+
+.global DetermineNatType
+DetermineNatType:
+/* 8035A8F4 00356554 80 C3 00 9C */ lwz r6, 0x9c(r3)
+/* 8035A8F8 00356558 38 A0 00 06 */ li r5, 6
+/* 8035A8FC 0035655C 38 80 00 04 */ li r4, 4
+/* 8035A900 00356560 38 00 00 01 */ li r0, 1
+/* 8035A904 00356564 2C 06 00 00 */ cmpwi r6, 0
+/* 8035A908 00356568 90 A3 00 8C */ stw r5, 0x8c(r3)
+/* 8035A90C 0035656C 90 83 00 88 */ stw r4, 0x88(r3)
+/* 8035A910 00356570 90 03 00 D4 */ stw r0, 0xd4(r3)
+/* 8035A914 00356574 41 82 00 1C */ beq lbl_8035A930
+/* 8035A918 00356578 80 03 00 AC */ lwz r0, 0xac(r3)
+/* 8035A91C 0035657C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A920 00356580 41 82 00 10 */ beq lbl_8035A930
+/* 8035A924 00356584 80 03 00 BC */ lwz r0, 0xbc(r3)
+/* 8035A928 00356588 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A92C 0035658C 40 82 00 0C */ bne lbl_8035A938
+lbl_8035A930:
+/* 8035A930 00356590 38 60 00 00 */ li r3, 0
+/* 8035A934 00356594 4E 80 00 20 */ blr
+lbl_8035A938:
+/* 8035A938 00356598 80 A3 00 84 */ lwz r5, 0x84(r3)
+/* 8035A93C 0035659C 2C 05 00 00 */ cmpwi r5, 0
+/* 8035A940 003565A0 40 82 00 28 */ bne lbl_8035A968
+/* 8035A944 003565A4 80 03 00 80 */ lwz r0, 0x80(r3)
+/* 8035A948 003565A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035A94C 003565AC 40 82 00 1C */ bne lbl_8035A968
+/* 8035A950 003565B0 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8035A954 003565B4 7C 06 00 40 */ cmplw r6, r0
+/* 8035A958 003565B8 40 82 00 10 */ bne lbl_8035A968
+/* 8035A95C 003565BC 38 00 00 00 */ li r0, 0
+/* 8035A960 003565C0 90 03 00 8C */ stw r0, 0x8c(r3)
+/* 8035A964 003565C4 48 00 01 80 */ b lbl_8035AAE4
+lbl_8035A968:
+/* 8035A968 003565C8 80 03 00 94 */ lwz r0, 0x94(r3)
+/* 8035A96C 003565CC 7C 06 00 40 */ cmplw r6, r0
+/* 8035A970 003565D0 40 82 00 10 */ bne lbl_8035A980
+/* 8035A974 003565D4 38 00 00 01 */ li r0, 1
+/* 8035A978 003565D8 90 03 00 8C */ stw r0, 0x8c(r3)
+/* 8035A97C 003565DC 48 00 01 68 */ b lbl_8035AAE4
+lbl_8035A980:
+/* 8035A980 003565E0 80 C3 00 80 */ lwz r6, 0x80(r3)
+/* 8035A984 003565E4 2C 06 00 00 */ cmpwi r6, 0
+/* 8035A988 003565E8 40 82 00 40 */ bne lbl_8035A9C8
+/* 8035A98C 003565EC 2C 05 00 00 */ cmpwi r5, 0
+/* 8035A990 003565F0 40 82 00 38 */ bne lbl_8035A9C8
+/* 8035A994 003565F4 A0 83 00 B0 */ lhz r4, 0xb0(r3)
+/* 8035A998 003565F8 A0 03 00 C0 */ lhz r0, 0xc0(r3)
+/* 8035A99C 003565FC 7C 04 00 50 */ subf r0, r4, r0
+/* 8035A9A0 00356600 7C 04 FE 70 */ srawi r4, r0, 0x1f
+/* 8035A9A4 00356604 7C 80 02 78 */ xor r0, r4, r0
+/* 8035A9A8 00356608 7C 04 00 50 */ subf r0, r4, r0
+/* 8035A9AC 0035660C 2C 00 00 01 */ cmpwi r0, 1
+/* 8035A9B0 00356610 41 80 00 18 */ blt lbl_8035A9C8
+/* 8035A9B4 00356614 38 80 00 05 */ li r4, 5
+/* 8035A9B8 00356618 38 00 00 00 */ li r0, 0
+/* 8035A9BC 0035661C 90 83 00 8C */ stw r4, 0x8c(r3)
+/* 8035A9C0 00356620 90 03 00 88 */ stw r0, 0x88(r3)
+/* 8035A9C4 00356624 48 00 01 20 */ b lbl_8035AAE4
+lbl_8035A9C8:
+/* 8035A9C8 00356628 2C 06 00 00 */ cmpwi r6, 0
+/* 8035A9CC 0035662C 41 82 00 40 */ beq lbl_8035AA0C
+/* 8035A9D0 00356630 2C 05 00 00 */ cmpwi r5, 0
+/* 8035A9D4 00356634 40 82 00 38 */ bne lbl_8035AA0C
+/* 8035A9D8 00356638 A0 83 00 B0 */ lhz r4, 0xb0(r3)
+/* 8035A9DC 0035663C A0 03 00 C0 */ lhz r0, 0xc0(r3)
+/* 8035A9E0 00356640 7C 04 00 50 */ subf r0, r4, r0
+/* 8035A9E4 00356644 7C 04 FE 70 */ srawi r4, r0, 0x1f
+/* 8035A9E8 00356648 7C 80 02 78 */ xor r0, r4, r0
+/* 8035A9EC 0035664C 7C 04 00 50 */ subf r0, r4, r0
+/* 8035A9F0 00356650 2C 00 00 01 */ cmpwi r0, 1
+/* 8035A9F4 00356654 41 80 00 18 */ blt lbl_8035AA0C
+/* 8035A9F8 00356658 38 80 00 05 */ li r4, 5
+/* 8035A9FC 0035665C 38 00 00 02 */ li r0, 2
+/* 8035AA00 00356660 90 83 00 8C */ stw r4, 0x8c(r3)
+/* 8035AA04 00356664 90 03 00 88 */ stw r0, 0x88(r3)
+/* 8035AA08 00356668 48 00 00 DC */ b lbl_8035AAE4
+lbl_8035AA0C:
+/* 8035AA0C 0035666C 2C 06 00 00 */ cmpwi r6, 0
+/* 8035AA10 00356670 40 82 00 40 */ bne lbl_8035AA50
+/* 8035AA14 00356674 2C 05 00 00 */ cmpwi r5, 0
+/* 8035AA18 00356678 41 82 00 38 */ beq lbl_8035AA50
+/* 8035AA1C 0035667C A0 83 00 B0 */ lhz r4, 0xb0(r3)
+/* 8035AA20 00356680 A0 03 00 C0 */ lhz r0, 0xc0(r3)
+/* 8035AA24 00356684 7C 04 00 50 */ subf r0, r4, r0
+/* 8035AA28 00356688 7C 04 FE 70 */ srawi r4, r0, 0x1f
+/* 8035AA2C 0035668C 7C 80 02 78 */ xor r0, r4, r0
+/* 8035AA30 00356690 7C 04 00 50 */ subf r0, r4, r0
+/* 8035AA34 00356694 2C 00 00 01 */ cmpwi r0, 1
+/* 8035AA38 00356698 41 80 00 18 */ blt lbl_8035AA50
+/* 8035AA3C 0035669C 38 80 00 05 */ li r4, 5
+/* 8035AA40 003566A0 38 00 00 03 */ li r0, 3
+/* 8035AA44 003566A4 90 83 00 8C */ stw r4, 0x8c(r3)
+/* 8035AA48 003566A8 90 03 00 88 */ stw r0, 0x88(r3)
+/* 8035AA4C 003566AC 48 00 00 98 */ b lbl_8035AAE4
+lbl_8035AA50:
+/* 8035AA50 003566B0 2C 06 00 00 */ cmpwi r6, 0
+/* 8035AA54 003566B4 41 82 00 40 */ beq lbl_8035AA94
+/* 8035AA58 003566B8 2C 05 00 00 */ cmpwi r5, 0
+/* 8035AA5C 003566BC 41 82 00 38 */ beq lbl_8035AA94
+/* 8035AA60 003566C0 A0 83 00 B0 */ lhz r4, 0xb0(r3)
+/* 8035AA64 003566C4 A0 03 00 C0 */ lhz r0, 0xc0(r3)
+/* 8035AA68 003566C8 7C 04 00 50 */ subf r0, r4, r0
+/* 8035AA6C 003566CC 7C 04 FE 70 */ srawi r4, r0, 0x1f
+/* 8035AA70 003566D0 7C 80 02 78 */ xor r0, r4, r0
+/* 8035AA74 003566D4 7C 04 00 50 */ subf r0, r4, r0
+/* 8035AA78 003566D8 2C 00 00 01 */ cmpwi r0, 1
+/* 8035AA7C 003566DC 41 80 00 18 */ blt lbl_8035AA94
+/* 8035AA80 003566E0 38 80 00 05 */ li r4, 5
+/* 8035AA84 003566E4 38 00 00 01 */ li r0, 1
+/* 8035AA88 003566E8 90 83 00 8C */ stw r4, 0x8c(r3)
+/* 8035AA8C 003566EC 90 03 00 88 */ stw r0, 0x88(r3)
+/* 8035AA90 003566F0 48 00 00 54 */ b lbl_8035AAE4
+lbl_8035AA94:
+/* 8035AA94 003566F4 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 8035AA98 003566F8 41 86 00 10 */ beq cr1, lbl_8035AAA8
+/* 8035AA9C 003566FC 38 00 00 04 */ li r0, 4
+/* 8035AAA0 00356700 90 03 00 8C */ stw r0, 0x8c(r3)
+/* 8035AAA4 00356704 48 00 00 40 */ b lbl_8035AAE4
+lbl_8035AAA8:
+/* 8035AAA8 00356708 2C 06 00 00 */ cmpwi r6, 0
+/* 8035AAAC 0035670C 41 82 00 14 */ beq lbl_8035AAC0
+/* 8035AAB0 00356710 40 86 00 10 */ bne cr1, lbl_8035AAC0
+/* 8035AAB4 00356714 38 00 00 03 */ li r0, 3
+/* 8035AAB8 00356718 90 03 00 8C */ stw r0, 0x8c(r3)
+/* 8035AABC 0035671C 48 00 00 28 */ b lbl_8035AAE4
+lbl_8035AAC0:
+/* 8035AAC0 00356720 2C 06 00 00 */ cmpwi r6, 0
+/* 8035AAC4 00356724 40 82 00 18 */ bne lbl_8035AADC
+/* 8035AAC8 00356728 2C 05 00 00 */ cmpwi r5, 0
+/* 8035AACC 0035672C 40 82 00 10 */ bne lbl_8035AADC
+/* 8035AAD0 00356730 38 00 00 02 */ li r0, 2
+/* 8035AAD4 00356734 90 03 00 8C */ stw r0, 0x8c(r3)
+/* 8035AAD8 00356738 48 00 00 0C */ b lbl_8035AAE4
+lbl_8035AADC:
+/* 8035AADC 0035673C 38 00 00 06 */ li r0, 6
+/* 8035AAE0 00356740 90 03 00 8C */ stw r0, 0x8c(r3)
+lbl_8035AAE4:
+/* 8035AAE4 00356744 A0 C3 00 98 */ lhz r6, 0x98(r3)
+/* 8035AAE8 00356748 A0 A3 00 A0 */ lhz r5, 0xa0(r3)
+/* 8035AAEC 0035674C 7C 05 30 40 */ cmplw r5, r6
+/* 8035AAF0 00356750 40 82 00 30 */ bne lbl_8035AB20
+/* 8035AAF4 00356754 A0 83 00 B0 */ lhz r4, 0xb0(r3)
+/* 8035AAF8 00356758 A0 03 00 A8 */ lhz r0, 0xa8(r3)
+/* 8035AAFC 0035675C 7C 04 00 40 */ cmplw r4, r0
+/* 8035AB00 00356760 40 82 00 20 */ bne lbl_8035AB20
+/* 8035AB04 00356764 A0 83 00 C0 */ lhz r4, 0xc0(r3)
+/* 8035AB08 00356768 A0 03 00 B8 */ lhz r0, 0xb8(r3)
+/* 8035AB0C 0035676C 7C 04 00 40 */ cmplw r4, r0
+/* 8035AB10 00356770 40 82 00 10 */ bne lbl_8035AB20
+/* 8035AB14 00356774 38 00 00 01 */ li r0, 1
+/* 8035AB18 00356778 90 03 00 90 */ stw r0, 0x90(r3)
+/* 8035AB1C 0035677C 48 00 00 70 */ b lbl_8035AB8C
+lbl_8035AB20:
+/* 8035AB20 00356780 A0 83 00 B0 */ lhz r4, 0xb0(r3)
+/* 8035AB24 00356784 7C 05 20 40 */ cmplw r5, r4
+/* 8035AB28 00356788 40 82 00 1C */ bne lbl_8035AB44
+/* 8035AB2C 0035678C A0 03 00 C0 */ lhz r0, 0xc0(r3)
+/* 8035AB30 00356790 7C 04 00 40 */ cmplw r4, r0
+/* 8035AB34 00356794 40 82 00 10 */ bne lbl_8035AB44
+/* 8035AB38 00356798 38 00 00 02 */ li r0, 2
+/* 8035AB3C 0035679C 90 03 00 90 */ stw r0, 0x90(r3)
+/* 8035AB40 003567A0 48 00 00 4C */ b lbl_8035AB8C
+lbl_8035AB44:
+/* 8035AB44 003567A4 7C 05 30 40 */ cmplw r5, r6
+/* 8035AB48 003567A8 40 82 00 20 */ bne lbl_8035AB68
+/* 8035AB4C 003567AC A0 03 00 C0 */ lhz r0, 0xc0(r3)
+/* 8035AB50 003567B0 7C 04 00 50 */ subf r0, r4, r0
+/* 8035AB54 003567B4 2C 00 00 01 */ cmpwi r0, 1
+/* 8035AB58 003567B8 40 82 00 10 */ bne lbl_8035AB68
+/* 8035AB5C 003567BC 38 00 00 04 */ li r0, 4
+/* 8035AB60 003567C0 90 03 00 90 */ stw r0, 0x90(r3)
+/* 8035AB64 003567C4 48 00 00 28 */ b lbl_8035AB8C
+lbl_8035AB68:
+/* 8035AB68 003567C8 A0 03 00 C0 */ lhz r0, 0xc0(r3)
+/* 8035AB6C 003567CC 7C 04 00 50 */ subf r0, r4, r0
+/* 8035AB70 003567D0 2C 00 00 01 */ cmpwi r0, 1
+/* 8035AB74 003567D4 40 82 00 10 */ bne lbl_8035AB84
+/* 8035AB78 003567D8 38 00 00 03 */ li r0, 3
+/* 8035AB7C 003567DC 90 03 00 90 */ stw r0, 0x90(r3)
+/* 8035AB80 003567E0 48 00 00 0C */ b lbl_8035AB8C
+lbl_8035AB84:
+/* 8035AB84 003567E4 38 00 00 00 */ li r0, 0
+/* 8035AB88 003567E8 90 03 00 90 */ stw r0, 0x90(r3)
+lbl_8035AB8C:
+/* 8035AB8C 003567EC A0 83 00 D0 */ lhz r4, 0xd0(r3)
+/* 8035AB90 003567F0 2C 04 00 00 */ cmpwi r4, 0
+/* 8035AB94 003567F4 41 82 00 18 */ beq lbl_8035ABAC
+/* 8035AB98 003567F8 A0 03 00 A0 */ lhz r0, 0xa0(r3)
+/* 8035AB9C 003567FC 7C 00 20 40 */ cmplw r0, r4
+/* 8035ABA0 00356800 41 82 00 0C */ beq lbl_8035ABAC
+/* 8035ABA4 00356804 38 00 00 00 */ li r0, 0
+/* 8035ABA8 00356808 90 03 00 D4 */ stw r0, 0xd4(r3)
+lbl_8035ABAC:
+/* 8035ABAC 0035680C 38 60 00 01 */ li r3, 1
+/* 8035ABB0 00356810 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gbucket.s b/asm/SDK/DWC/gamespy/gbucket.s new file mode 100644 index 0000000..139df19 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gbucket.s @@ -0,0 +1,1387 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global BucketNew
+BucketNew:
+/* 803571CC 00352E2C 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 803571D0 00352E30 7C 08 02 A6 */ mflr r0
+/* 803571D4 00352E34 2C 03 00 00 */ cmpwi r3, 0
+/* 803571D8 00352E38 90 01 00 54 */ stw r0, 0x54(r1)
+/* 803571DC 00352E3C 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 803571E0 00352E40 7C DF 33 78 */ mr r31, r6
+/* 803571E4 00352E44 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 803571E8 00352E48 7C BE 2B 78 */ mr r30, r5
+/* 803571EC 00352E4C 93 A1 00 44 */ stw r29, 0x44(r1)
+/* 803571F0 00352E50 7C 9D 23 78 */ mr r29, r4
+/* 803571F4 00352E54 93 81 00 40 */ stw r28, 0x40(r1)
+/* 803571F8 00352E58 7C 7C 1B 78 */ mr r28, r3
+/* 803571FC 00352E5C 40 82 00 08 */ bne lbl_80357204
+/* 80357200 00352E60 83 8D B1 08 */ lwz r28, lbl_806403C8-_SDA_BASE_(r13)
+lbl_80357204:
+/* 80357204 00352E64 7F A3 EB 78 */ mr r3, r29
+/* 80357208 00352E68 4B FE 1C FD */ bl goastrdup
+/* 8035720C 00352E6C 38 80 00 00 */ li r4, 0
+/* 80357210 00352E70 38 00 00 01 */ li r0, 1
+/* 80357214 00352E74 2C 1E 00 00 */ cmpwi r30, 0
+/* 80357218 00352E78 90 61 00 20 */ stw r3, 0x20(r1)
+/* 8035721C 00352E7C 93 C1 00 24 */ stw r30, 0x24(r1)
+/* 80357220 00352E80 90 81 00 30 */ stw r4, 0x30(r1)
+/* 80357224 00352E84 90 01 00 28 */ stw r0, 0x28(r1)
+/* 80357228 00352E88 40 82 00 10 */ bne lbl_80357238
+/* 8035722C 00352E8C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80357230 00352E90 90 01 00 30 */ stw r0, 0x30(r1)
+/* 80357234 00352E94 48 00 00 78 */ b lbl_803572AC
+lbl_80357238:
+/* 80357238 00352E98 2C 1E 00 01 */ cmpwi r30, 1
+/* 8035723C 00352E9C 40 82 00 10 */ bne lbl_8035724C
+/* 80357240 00352EA0 C8 1F 00 00 */ lfd f0, 0(r31)
+/* 80357244 00352EA4 D8 01 00 30 */ stfd f0, 0x30(r1)
+/* 80357248 00352EA8 48 00 00 64 */ b lbl_803572AC
+lbl_8035724C:
+/* 8035724C 00352EAC 2C 1E 00 02 */ cmpwi r30, 2
+/* 80357250 00352EB0 40 82 00 5C */ bne lbl_803572AC
+/* 80357254 00352EB4 2C 04 00 00 */ cmpwi r4, 0
+/* 80357258 00352EB8 41 82 00 0C */ beq lbl_80357264
+/* 8035725C 00352EBC 38 60 00 00 */ li r3, 0
+/* 80357260 00352EC0 4B FE 20 D9 */ bl gsifree
+lbl_80357264:
+/* 80357264 00352EC4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80357268 00352EC8 40 82 00 0C */ bne lbl_80357274
+/* 8035726C 00352ECC 38 A0 00 00 */ li r5, 0
+/* 80357270 00352ED0 48 00 00 38 */ b lbl_803572A8
+lbl_80357274:
+/* 80357274 00352ED4 7F E3 FB 78 */ mr r3, r31
+/* 80357278 00352ED8 4B FE 1C 8D */ bl goastrdup
+/* 8035727C 00352EDC 38 80 00 2F */ li r4, 0x2f
+/* 80357280 00352EE0 7C 65 1B 78 */ mr r5, r3
+/* 80357284 00352EE4 48 00 00 18 */ b lbl_8035729C
+lbl_80357288:
+/* 80357288 00352EE8 7C C0 07 74 */ extsb r0, r6
+/* 8035728C 00352EEC 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80357290 00352EF0 40 82 00 08 */ bne lbl_80357298
+/* 80357294 00352EF4 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357298:
+/* 80357298 00352EF8 38 63 00 01 */ addi r3, r3, 1
+lbl_8035729C:
+/* 8035729C 00352EFC 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803572A0 00352F00 7C C0 07 75 */ extsb. r0, r6
+/* 803572A4 00352F04 40 82 FF E4 */ bne lbl_80357288
+lbl_803572A8:
+/* 803572A8 00352F08 90 A1 00 30 */ stw r5, 0x30(r1)
+lbl_803572AC:
+/* 803572AC 00352F0C 80 7C 00 00 */ lwz r3, 0(r28)
+/* 803572B0 00352F10 38 81 00 20 */ addi r4, r1, 0x20
+/* 803572B4 00352F14 4B FD F7 1D */ bl TableEnter
+/* 803572B8 00352F18 2C 1C 00 00 */ cmpwi r28, 0
+/* 803572BC 00352F1C 40 82 00 08 */ bne lbl_803572C4
+/* 803572C0 00352F20 83 8D B1 08 */ lwz r28, lbl_806403C8-_SDA_BASE_(r13)
+lbl_803572C4:
+/* 803572C4 00352F24 93 A1 00 08 */ stw r29, 8(r1)
+/* 803572C8 00352F28 38 81 00 08 */ addi r4, r1, 8
+/* 803572CC 00352F2C 80 7C 00 00 */ lwz r3, 0(r28)
+/* 803572D0 00352F30 4B FD F8 4D */ bl TableLookup
+/* 803572D4 00352F34 2C 03 00 00 */ cmpwi r3, 0
+/* 803572D8 00352F38 40 82 00 0C */ bne lbl_803572E4
+/* 803572DC 00352F3C 38 60 00 00 */ li r3, 0
+/* 803572E0 00352F40 48 00 00 1C */ b lbl_803572FC
+lbl_803572E4:
+/* 803572E4 00352F44 80 03 00 04 */ lwz r0, 4(r3)
+/* 803572E8 00352F48 2C 00 00 02 */ cmpwi r0, 2
+/* 803572EC 00352F4C 40 82 00 0C */ bne lbl_803572F8
+/* 803572F0 00352F50 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 803572F4 00352F54 48 00 00 08 */ b lbl_803572FC
+lbl_803572F8:
+/* 803572F8 00352F58 38 63 00 10 */ addi r3, r3, 0x10
+lbl_803572FC:
+/* 803572FC 00352F5C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80357300 00352F60 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 80357304 00352F64 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 80357308 00352F68 83 A1 00 44 */ lwz r29, 0x44(r1)
+/* 8035730C 00352F6C 83 81 00 40 */ lwz r28, 0x40(r1)
+/* 80357310 00352F70 7C 08 03 A6 */ mtlr r0
+/* 80357314 00352F74 38 21 00 50 */ addi r1, r1, 0x50
+/* 80357318 00352F78 4E 80 00 20 */ blr
+
+.global BucketSet
+BucketSet:
+/* 8035731C 00352F7C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80357320 00352F80 7C 08 02 A6 */ mflr r0
+/* 80357324 00352F84 2C 03 00 00 */ cmpwi r3, 0
+/* 80357328 00352F88 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035732C 00352F8C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80357330 00352F90 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80357334 00352F94 7C BE 2B 78 */ mr r30, r5
+/* 80357338 00352F98 40 82 00 08 */ bne lbl_80357340
+/* 8035733C 00352F9C 80 6D B1 08 */ lwz r3, lbl_806403C8-_SDA_BASE_(r13)
+lbl_80357340:
+/* 80357340 00352FA0 90 81 00 08 */ stw r4, 8(r1)
+/* 80357344 00352FA4 38 81 00 08 */ addi r4, r1, 8
+/* 80357348 00352FA8 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035734C 00352FAC 4B FD F7 D1 */ bl TableLookup
+/* 80357350 00352FB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80357354 00352FB4 7C 7F 1B 78 */ mr r31, r3
+/* 80357358 00352FB8 40 82 00 0C */ bne lbl_80357364
+/* 8035735C 00352FBC 38 60 00 00 */ li r3, 0
+/* 80357360 00352FC0 48 00 00 C0 */ b lbl_80357420
+lbl_80357364:
+/* 80357364 00352FC4 38 00 00 00 */ li r0, 0
+/* 80357368 00352FC8 90 03 00 08 */ stw r0, 8(r3)
+/* 8035736C 00352FCC 80 03 00 04 */ lwz r0, 4(r3)
+/* 80357370 00352FD0 2C 00 00 00 */ cmpwi r0, 0
+/* 80357374 00352FD4 40 82 00 10 */ bne lbl_80357384
+/* 80357378 00352FD8 80 1E 00 00 */ lwz r0, 0(r30)
+/* 8035737C 00352FDC 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80357380 00352FE0 48 00 00 78 */ b lbl_803573F8
+lbl_80357384:
+/* 80357384 00352FE4 2C 00 00 01 */ cmpwi r0, 1
+/* 80357388 00352FE8 40 82 00 10 */ bne lbl_80357398
+/* 8035738C 00352FEC C8 1E 00 00 */ lfd f0, 0(r30)
+/* 80357390 00352FF0 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 80357394 00352FF4 48 00 00 64 */ b lbl_803573F8
+lbl_80357398:
+/* 80357398 00352FF8 2C 00 00 02 */ cmpwi r0, 2
+/* 8035739C 00352FFC 40 82 00 5C */ bne lbl_803573F8
+/* 803573A0 00353000 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 803573A4 00353004 2C 03 00 00 */ cmpwi r3, 0
+/* 803573A8 00353008 41 82 00 08 */ beq lbl_803573B0
+/* 803573AC 0035300C 4B FE 1F 8D */ bl gsifree
+lbl_803573B0:
+/* 803573B0 00353010 2C 1E 00 00 */ cmpwi r30, 0
+/* 803573B4 00353014 40 82 00 0C */ bne lbl_803573C0
+/* 803573B8 00353018 38 A0 00 00 */ li r5, 0
+/* 803573BC 0035301C 48 00 00 38 */ b lbl_803573F4
+lbl_803573C0:
+/* 803573C0 00353020 7F C3 F3 78 */ mr r3, r30
+/* 803573C4 00353024 4B FE 1B 41 */ bl goastrdup
+/* 803573C8 00353028 38 80 00 2F */ li r4, 0x2f
+/* 803573CC 0035302C 7C 65 1B 78 */ mr r5, r3
+/* 803573D0 00353030 48 00 00 18 */ b lbl_803573E8
+lbl_803573D4:
+/* 803573D4 00353034 7C C0 07 74 */ extsb r0, r6
+/* 803573D8 00353038 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803573DC 0035303C 40 82 00 08 */ bne lbl_803573E4
+/* 803573E0 00353040 98 83 00 00 */ stb r4, 0(r3)
+lbl_803573E4:
+/* 803573E4 00353044 38 63 00 01 */ addi r3, r3, 1
+lbl_803573E8:
+/* 803573E8 00353048 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803573EC 0035304C 7C C0 07 75 */ extsb. r0, r6
+/* 803573F0 00353050 40 82 FF E4 */ bne lbl_803573D4
+lbl_803573F4:
+/* 803573F4 00353054 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_803573F8:
+/* 803573F8 00353058 2C 1F 00 00 */ cmpwi r31, 0
+/* 803573FC 0035305C 40 82 00 0C */ bne lbl_80357408
+/* 80357400 00353060 38 60 00 00 */ li r3, 0
+/* 80357404 00353064 48 00 00 1C */ b lbl_80357420
+lbl_80357408:
+/* 80357408 00353068 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8035740C 0035306C 2C 00 00 02 */ cmpwi r0, 2
+/* 80357410 00353070 40 82 00 0C */ bne lbl_8035741C
+/* 80357414 00353074 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80357418 00353078 48 00 00 08 */ b lbl_80357420
+lbl_8035741C:
+/* 8035741C 0035307C 38 7F 00 10 */ addi r3, r31, 0x10
+lbl_80357420:
+/* 80357420 00353080 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80357424 00353084 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80357428 00353088 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8035742C 0035308C 7C 08 03 A6 */ mtlr r0
+/* 80357430 00353090 38 21 00 30 */ addi r1, r1, 0x30
+/* 80357434 00353094 4E 80 00 20 */ blr
+
+.global BucketAdd
+BucketAdd:
+/* 80357438 00353098 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8035743C 0035309C 7C 08 02 A6 */ mflr r0
+/* 80357440 003530A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80357444 003530A4 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80357448 003530A8 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 8035744C 003530AC 7C 7F 1B 78 */ mr r31, r3
+/* 80357450 003530B0 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 80357454 003530B4 93 A1 00 44 */ stw r29, 0x44(r1)
+/* 80357458 003530B8 7C 9D 23 78 */ mr r29, r4
+/* 8035745C 003530BC 93 81 00 40 */ stw r28, 0x40(r1)
+/* 80357460 003530C0 7C BC 2B 78 */ mr r28, r5
+/* 80357464 003530C4 40 82 00 08 */ bne lbl_8035746C
+/* 80357468 003530C8 80 6D B1 08 */ lwz r3, lbl_806403C8-_SDA_BASE_(r13)
+lbl_8035746C:
+/* 8035746C 003530CC 90 81 00 20 */ stw r4, 0x20(r1)
+/* 80357470 003530D0 38 81 00 20 */ addi r4, r1, 0x20
+/* 80357474 003530D4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80357478 003530D8 4B FD F6 A5 */ bl TableLookup
+/* 8035747C 003530DC 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80357480 003530E0 7C 7E 1B 78 */ mr r30, r3
+/* 80357484 003530E4 40 86 00 0C */ bne cr1, lbl_80357490
+/* 80357488 003530E8 38 60 00 00 */ li r3, 0
+/* 8035748C 003530EC 48 00 03 30 */ b lbl_803577BC
+lbl_80357490:
+/* 80357490 003530F0 80 03 00 04 */ lwz r0, 4(r3)
+/* 80357494 003530F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80357498 003530F8 40 82 00 EC */ bne lbl_80357584
+/* 8035749C 003530FC 40 86 00 0C */ bne cr1, lbl_803574A8
+/* 803574A0 00353100 38 A0 00 00 */ li r5, 0
+/* 803574A4 00353104 48 00 00 18 */ b lbl_803574BC
+lbl_803574A8:
+/* 803574A8 00353108 2C 00 00 02 */ cmpwi r0, 2
+/* 803574AC 0035310C 40 82 00 0C */ bne lbl_803574B8
+/* 803574B0 00353110 80 A3 00 10 */ lwz r5, 0x10(r3)
+/* 803574B4 00353114 48 00 00 08 */ b lbl_803574BC
+lbl_803574B8:
+/* 803574B8 00353118 38 A3 00 10 */ addi r5, r3, 0x10
+lbl_803574BC:
+/* 803574BC 0035311C 80 9C 00 00 */ lwz r4, 0(r28)
+/* 803574C0 00353120 3B AD B0 F8 */ addi r29, r13, lbl_806403B8-_SDA_BASE_
+/* 803574C4 00353124 80 05 00 00 */ lwz r0, 0(r5)
+/* 803574C8 00353128 7C 04 02 14 */ add r0, r4, r0
+/* 803574CC 0035312C 90 0D B0 F8 */ stw r0, lbl_806403B8-_SDA_BASE_(r13)
+/* 803574D0 00353130 80 83 00 04 */ lwz r4, 4(r3)
+/* 803574D4 00353134 2C 04 00 00 */ cmpwi r4, 0
+/* 803574D8 00353138 40 82 00 0C */ bne lbl_803574E4
+/* 803574DC 0035313C 90 03 00 10 */ stw r0, 0x10(r3)
+/* 803574E0 00353140 48 00 00 78 */ b lbl_80357558
+lbl_803574E4:
+/* 803574E4 00353144 2C 04 00 01 */ cmpwi r4, 1
+/* 803574E8 00353148 40 82 00 10 */ bne lbl_803574F8
+/* 803574EC 0035314C C8 1D 00 00 */ lfd f0, 0(r29)
+/* 803574F0 00353150 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 803574F4 00353154 48 00 00 64 */ b lbl_80357558
+lbl_803574F8:
+/* 803574F8 00353158 2C 04 00 02 */ cmpwi r4, 2
+/* 803574FC 0035315C 40 82 00 5C */ bne lbl_80357558
+/* 80357500 00353160 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357504 00353164 2C 03 00 00 */ cmpwi r3, 0
+/* 80357508 00353168 41 82 00 08 */ beq lbl_80357510
+/* 8035750C 0035316C 4B FE 1E 2D */ bl gsifree
+lbl_80357510:
+/* 80357510 00353170 2C 1D 00 00 */ cmpwi r29, 0
+/* 80357514 00353174 40 82 00 0C */ bne lbl_80357520
+/* 80357518 00353178 38 A0 00 00 */ li r5, 0
+/* 8035751C 0035317C 48 00 00 38 */ b lbl_80357554
+lbl_80357520:
+/* 80357520 00353180 7F A3 EB 78 */ mr r3, r29
+/* 80357524 00353184 4B FE 19 E1 */ bl goastrdup
+/* 80357528 00353188 38 80 00 2F */ li r4, 0x2f
+/* 8035752C 0035318C 7C 65 1B 78 */ mr r5, r3
+/* 80357530 00353190 48 00 00 18 */ b lbl_80357548
+lbl_80357534:
+/* 80357534 00353194 7C C0 07 74 */ extsb r0, r6
+/* 80357538 00353198 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8035753C 0035319C 40 82 00 08 */ bne lbl_80357544
+/* 80357540 003531A0 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357544:
+/* 80357544 003531A4 38 63 00 01 */ addi r3, r3, 1
+lbl_80357548:
+/* 80357548 003531A8 88 C3 00 00 */ lbz r6, 0(r3)
+/* 8035754C 003531AC 7C C0 07 75 */ extsb. r0, r6
+/* 80357550 003531B0 40 82 FF E4 */ bne lbl_80357534
+lbl_80357554:
+/* 80357554 003531B4 90 BE 00 10 */ stw r5, 0x10(r30)
+lbl_80357558:
+/* 80357558 003531B8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035755C 003531BC 40 82 00 0C */ bne lbl_80357568
+/* 80357560 003531C0 38 60 00 00 */ li r3, 0
+/* 80357564 003531C4 48 00 02 58 */ b lbl_803577BC
+lbl_80357568:
+/* 80357568 003531C8 80 1E 00 04 */ lwz r0, 4(r30)
+/* 8035756C 003531CC 2C 00 00 02 */ cmpwi r0, 2
+/* 80357570 003531D0 40 82 00 0C */ bne lbl_8035757C
+/* 80357574 003531D4 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 80357578 003531D8 48 00 02 44 */ b lbl_803577BC
+lbl_8035757C:
+/* 8035757C 003531DC 38 7E 00 10 */ addi r3, r30, 0x10
+/* 80357580 003531E0 48 00 02 3C */ b lbl_803577BC
+lbl_80357584:
+/* 80357584 003531E4 2C 00 00 01 */ cmpwi r0, 1
+/* 80357588 003531E8 40 82 00 EC */ bne lbl_80357674
+/* 8035758C 003531EC 40 86 00 0C */ bne cr1, lbl_80357598
+/* 80357590 003531F0 38 80 00 00 */ li r4, 0
+/* 80357594 003531F4 48 00 00 18 */ b lbl_803575AC
+lbl_80357598:
+/* 80357598 003531F8 2C 00 00 02 */ cmpwi r0, 2
+/* 8035759C 003531FC 40 82 00 0C */ bne lbl_803575A8
+/* 803575A0 00353200 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 803575A4 00353204 48 00 00 08 */ b lbl_803575AC
+lbl_803575A8:
+/* 803575A8 00353208 38 83 00 10 */ addi r4, r3, 0x10
+lbl_803575AC:
+/* 803575AC 0035320C C8 3C 00 00 */ lfd f1, 0(r28)
+/* 803575B0 00353210 3B AD B1 00 */ addi r29, r13, lbl_806403C0-_SDA_BASE_
+/* 803575B4 00353214 C8 04 00 00 */ lfd f0, 0(r4)
+/* 803575B8 00353218 FC 01 00 2A */ fadd f0, f1, f0
+/* 803575BC 0035321C D8 0D B1 00 */ stfd f0, lbl_806403C0-_SDA_BASE_(r13)
+/* 803575C0 00353220 80 03 00 04 */ lwz r0, 4(r3)
+/* 803575C4 00353224 2C 00 00 00 */ cmpwi r0, 0
+/* 803575C8 00353228 40 82 00 10 */ bne lbl_803575D8
+/* 803575CC 0035322C 80 1D 00 00 */ lwz r0, 0(r29)
+/* 803575D0 00353230 90 03 00 10 */ stw r0, 0x10(r3)
+/* 803575D4 00353234 48 00 00 74 */ b lbl_80357648
+lbl_803575D8:
+/* 803575D8 00353238 2C 00 00 01 */ cmpwi r0, 1
+/* 803575DC 0035323C 40 82 00 0C */ bne lbl_803575E8
+/* 803575E0 00353240 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 803575E4 00353244 48 00 00 64 */ b lbl_80357648
+lbl_803575E8:
+/* 803575E8 00353248 2C 00 00 02 */ cmpwi r0, 2
+/* 803575EC 0035324C 40 82 00 5C */ bne lbl_80357648
+/* 803575F0 00353250 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 803575F4 00353254 2C 03 00 00 */ cmpwi r3, 0
+/* 803575F8 00353258 41 82 00 08 */ beq lbl_80357600
+/* 803575FC 0035325C 4B FE 1D 3D */ bl gsifree
+lbl_80357600:
+/* 80357600 00353260 2C 1D 00 00 */ cmpwi r29, 0
+/* 80357604 00353264 40 82 00 0C */ bne lbl_80357610
+/* 80357608 00353268 38 A0 00 00 */ li r5, 0
+/* 8035760C 0035326C 48 00 00 38 */ b lbl_80357644
+lbl_80357610:
+/* 80357610 00353270 7F A3 EB 78 */ mr r3, r29
+/* 80357614 00353274 4B FE 18 F1 */ bl goastrdup
+/* 80357618 00353278 38 80 00 2F */ li r4, 0x2f
+/* 8035761C 0035327C 7C 65 1B 78 */ mr r5, r3
+/* 80357620 00353280 48 00 00 18 */ b lbl_80357638
+lbl_80357624:
+/* 80357624 00353284 7C C0 07 74 */ extsb r0, r6
+/* 80357628 00353288 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8035762C 0035328C 40 82 00 08 */ bne lbl_80357634
+/* 80357630 00353290 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357634:
+/* 80357634 00353294 38 63 00 01 */ addi r3, r3, 1
+lbl_80357638:
+/* 80357638 00353298 88 C3 00 00 */ lbz r6, 0(r3)
+/* 8035763C 0035329C 7C C0 07 75 */ extsb. r0, r6
+/* 80357640 003532A0 40 82 FF E4 */ bne lbl_80357624
+lbl_80357644:
+/* 80357644 003532A4 90 BE 00 10 */ stw r5, 0x10(r30)
+lbl_80357648:
+/* 80357648 003532A8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035764C 003532AC 40 82 00 0C */ bne lbl_80357658
+/* 80357650 003532B0 38 60 00 00 */ li r3, 0
+/* 80357654 003532B4 48 00 01 68 */ b lbl_803577BC
+lbl_80357658:
+/* 80357658 003532B8 80 1E 00 04 */ lwz r0, 4(r30)
+/* 8035765C 003532BC 2C 00 00 02 */ cmpwi r0, 2
+/* 80357660 003532C0 40 82 00 0C */ bne lbl_8035766C
+/* 80357664 003532C4 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 80357668 003532C8 48 00 01 54 */ b lbl_803577BC
+lbl_8035766C:
+/* 8035766C 003532CC 38 7E 00 10 */ addi r3, r30, 0x10
+/* 80357670 003532D0 48 00 01 4C */ b lbl_803577BC
+lbl_80357674:
+/* 80357674 003532D4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80357678 003532D8 40 82 00 08 */ bne lbl_80357680
+/* 8035767C 003532DC 83 ED B1 08 */ lwz r31, lbl_806403C8-_SDA_BASE_(r13)
+lbl_80357680:
+/* 80357680 003532E0 93 A1 00 08 */ stw r29, 8(r1)
+/* 80357684 003532E4 38 81 00 08 */ addi r4, r1, 8
+/* 80357688 003532E8 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8035768C 003532EC 4B FD F4 91 */ bl TableLookup
+/* 80357690 003532F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80357694 003532F4 7C 7E 1B 78 */ mr r30, r3
+/* 80357698 003532F8 40 82 00 0C */ bne lbl_803576A4
+/* 8035769C 003532FC 38 60 00 00 */ li r3, 0
+/* 803576A0 00353300 48 00 01 1C */ b lbl_803577BC
+lbl_803576A4:
+/* 803576A4 00353304 40 82 00 0C */ bne lbl_803576B0
+/* 803576A8 00353308 3B A0 00 00 */ li r29, 0
+/* 803576AC 0035330C 48 00 00 1C */ b lbl_803576C8
+lbl_803576B0:
+/* 803576B0 00353310 80 03 00 04 */ lwz r0, 4(r3)
+/* 803576B4 00353314 2C 00 00 02 */ cmpwi r0, 2
+/* 803576B8 00353318 40 82 00 0C */ bne lbl_803576C4
+/* 803576BC 0035331C 83 A3 00 10 */ lwz r29, 0x10(r3)
+/* 803576C0 00353320 48 00 00 08 */ b lbl_803576C8
+lbl_803576C4:
+/* 803576C4 00353324 3B A3 00 10 */ addi r29, r3, 0x10
+lbl_803576C8:
+/* 803576C8 00353328 7F 83 E3 78 */ mr r3, r28
+/* 803576CC 0035332C 4B E6 F4 99 */ bl strlen
+/* 803576D0 00353330 7C 7F 1B 78 */ mr r31, r3
+/* 803576D4 00353334 7F A3 EB 78 */ mr r3, r29
+/* 803576D8 00353338 4B E6 F4 8D */ bl strlen
+/* 803576DC 0035333C 7C 63 FA 14 */ add r3, r3, r31
+/* 803576E0 00353340 38 63 00 01 */ addi r3, r3, 1
+/* 803576E4 00353344 4B FE 1C 31 */ bl gsimalloc
+/* 803576E8 00353348 7C 7F 1B 78 */ mr r31, r3
+/* 803576EC 0035334C 7F A4 EB 78 */ mr r4, r29
+/* 803576F0 00353350 4B E7 6B E1 */ bl strcpy
+/* 803576F4 00353354 7F E3 FB 78 */ mr r3, r31
+/* 803576F8 00353358 7F 84 E3 78 */ mr r4, r28
+/* 803576FC 0035335C 4B E7 6C D9 */ bl strcat
+/* 80357700 00353360 80 1E 00 04 */ lwz r0, 4(r30)
+/* 80357704 00353364 2C 00 00 00 */ cmpwi r0, 0
+/* 80357708 00353368 40 82 00 10 */ bne lbl_80357718
+/* 8035770C 0035336C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80357710 00353370 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 80357714 00353374 48 00 00 78 */ b lbl_8035778C
+lbl_80357718:
+/* 80357718 00353378 2C 00 00 01 */ cmpwi r0, 1
+/* 8035771C 0035337C 40 82 00 10 */ bne lbl_8035772C
+/* 80357720 00353380 C8 1F 00 00 */ lfd f0, 0(r31)
+/* 80357724 00353384 D8 1E 00 10 */ stfd f0, 0x10(r30)
+/* 80357728 00353388 48 00 00 64 */ b lbl_8035778C
+lbl_8035772C:
+/* 8035772C 0035338C 2C 00 00 02 */ cmpwi r0, 2
+/* 80357730 00353390 40 82 00 5C */ bne lbl_8035778C
+/* 80357734 00353394 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 80357738 00353398 2C 03 00 00 */ cmpwi r3, 0
+/* 8035773C 0035339C 41 82 00 08 */ beq lbl_80357744
+/* 80357740 003533A0 4B FE 1B F9 */ bl gsifree
+lbl_80357744:
+/* 80357744 003533A4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80357748 003533A8 40 82 00 0C */ bne lbl_80357754
+/* 8035774C 003533AC 38 A0 00 00 */ li r5, 0
+/* 80357750 003533B0 48 00 00 38 */ b lbl_80357788
+lbl_80357754:
+/* 80357754 003533B4 7F E3 FB 78 */ mr r3, r31
+/* 80357758 003533B8 4B FE 17 AD */ bl goastrdup
+/* 8035775C 003533BC 38 80 00 2F */ li r4, 0x2f
+/* 80357760 003533C0 7C 65 1B 78 */ mr r5, r3
+/* 80357764 003533C4 48 00 00 18 */ b lbl_8035777C
+lbl_80357768:
+/* 80357768 003533C8 7C C0 07 74 */ extsb r0, r6
+/* 8035776C 003533CC 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80357770 003533D0 40 82 00 08 */ bne lbl_80357778
+/* 80357774 003533D4 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357778:
+/* 80357778 003533D8 38 63 00 01 */ addi r3, r3, 1
+lbl_8035777C:
+/* 8035777C 003533DC 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80357780 003533E0 7C C0 07 75 */ extsb. r0, r6
+/* 80357784 003533E4 40 82 FF E4 */ bne lbl_80357768
+lbl_80357788:
+/* 80357788 003533E8 90 BE 00 10 */ stw r5, 0x10(r30)
+lbl_8035778C:
+/* 8035778C 003533EC 7F E3 FB 78 */ mr r3, r31
+/* 80357790 003533F0 4B FE 1B A9 */ bl gsifree
+/* 80357794 003533F4 2C 1E 00 00 */ cmpwi r30, 0
+/* 80357798 003533F8 40 82 00 0C */ bne lbl_803577A4
+/* 8035779C 003533FC 38 60 00 00 */ li r3, 0
+/* 803577A0 00353400 48 00 00 1C */ b lbl_803577BC
+lbl_803577A4:
+/* 803577A4 00353404 80 1E 00 04 */ lwz r0, 4(r30)
+/* 803577A8 00353408 2C 00 00 02 */ cmpwi r0, 2
+/* 803577AC 0035340C 40 82 00 0C */ bne lbl_803577B8
+/* 803577B0 00353410 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 803577B4 00353414 48 00 00 08 */ b lbl_803577BC
+lbl_803577B8:
+/* 803577B8 00353418 38 7E 00 10 */ addi r3, r30, 0x10
+lbl_803577BC:
+/* 803577BC 0035341C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 803577C0 00353420 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 803577C4 00353424 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 803577C8 00353428 83 A1 00 44 */ lwz r29, 0x44(r1)
+/* 803577CC 0035342C 83 81 00 40 */ lwz r28, 0x40(r1)
+/* 803577D0 00353430 7C 08 03 A6 */ mtlr r0
+/* 803577D4 00353434 38 21 00 50 */ addi r1, r1, 0x50
+/* 803577D8 00353438 4E 80 00 20 */ blr
+
+.global BucketSub
+BucketSub:
+/* 803577DC 0035343C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803577E0 00353440 7C 08 02 A6 */ mflr r0
+/* 803577E4 00353444 2C 03 00 00 */ cmpwi r3, 0
+/* 803577E8 00353448 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803577EC 0035344C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 803577F0 00353450 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 803577F4 00353454 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 803577F8 00353458 7C BD 2B 78 */ mr r29, r5
+/* 803577FC 0035345C 40 82 00 08 */ bne lbl_80357804
+/* 80357800 00353460 80 6D B1 08 */ lwz r3, lbl_806403C8-_SDA_BASE_(r13)
+lbl_80357804:
+/* 80357804 00353464 90 81 00 08 */ stw r4, 8(r1)
+/* 80357808 00353468 38 81 00 08 */ addi r4, r1, 8
+/* 8035780C 0035346C 80 63 00 00 */ lwz r3, 0(r3)
+/* 80357810 00353470 4B FD F3 0D */ bl TableLookup
+/* 80357814 00353474 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80357818 00353478 7C 7F 1B 78 */ mr r31, r3
+/* 8035781C 0035347C 40 86 00 0C */ bne cr1, lbl_80357828
+/* 80357820 00353480 38 60 00 00 */ li r3, 0
+/* 80357824 00353484 48 00 02 08 */ b lbl_80357A2C
+lbl_80357828:
+/* 80357828 00353488 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035782C 0035348C 2C 00 00 00 */ cmpwi r0, 0
+/* 80357830 00353490 40 82 00 EC */ bne lbl_8035791C
+/* 80357834 00353494 40 86 00 0C */ bne cr1, lbl_80357840
+/* 80357838 00353498 38 A0 00 00 */ li r5, 0
+/* 8035783C 0035349C 48 00 00 18 */ b lbl_80357854
+lbl_80357840:
+/* 80357840 003534A0 2C 00 00 02 */ cmpwi r0, 2
+/* 80357844 003534A4 40 82 00 0C */ bne lbl_80357850
+/* 80357848 003534A8 80 A3 00 10 */ lwz r5, 0x10(r3)
+/* 8035784C 003534AC 48 00 00 08 */ b lbl_80357854
+lbl_80357850:
+/* 80357850 003534B0 38 A3 00 10 */ addi r5, r3, 0x10
+lbl_80357854:
+/* 80357854 003534B4 80 9D 00 00 */ lwz r4, 0(r29)
+/* 80357858 003534B8 3B CD B0 F8 */ addi r30, r13, lbl_806403B8-_SDA_BASE_
+/* 8035785C 003534BC 80 05 00 00 */ lwz r0, 0(r5)
+/* 80357860 003534C0 7C 04 00 50 */ subf r0, r4, r0
+/* 80357864 003534C4 90 0D B0 F8 */ stw r0, lbl_806403B8-_SDA_BASE_(r13)
+/* 80357868 003534C8 80 83 00 04 */ lwz r4, 4(r3)
+/* 8035786C 003534CC 2C 04 00 00 */ cmpwi r4, 0
+/* 80357870 003534D0 40 82 00 0C */ bne lbl_8035787C
+/* 80357874 003534D4 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80357878 003534D8 48 00 00 78 */ b lbl_803578F0
+lbl_8035787C:
+/* 8035787C 003534DC 2C 04 00 01 */ cmpwi r4, 1
+/* 80357880 003534E0 40 82 00 10 */ bne lbl_80357890
+/* 80357884 003534E4 C8 1E 00 00 */ lfd f0, 0(r30)
+/* 80357888 003534E8 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 8035788C 003534EC 48 00 00 64 */ b lbl_803578F0
+lbl_80357890:
+/* 80357890 003534F0 2C 04 00 02 */ cmpwi r4, 2
+/* 80357894 003534F4 40 82 00 5C */ bne lbl_803578F0
+/* 80357898 003534F8 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8035789C 003534FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803578A0 00353500 41 82 00 08 */ beq lbl_803578A8
+/* 803578A4 00353504 4B FE 1A 95 */ bl gsifree
+lbl_803578A8:
+/* 803578A8 00353508 2C 1E 00 00 */ cmpwi r30, 0
+/* 803578AC 0035350C 40 82 00 0C */ bne lbl_803578B8
+/* 803578B0 00353510 38 A0 00 00 */ li r5, 0
+/* 803578B4 00353514 48 00 00 38 */ b lbl_803578EC
+lbl_803578B8:
+/* 803578B8 00353518 7F C3 F3 78 */ mr r3, r30
+/* 803578BC 0035351C 4B FE 16 49 */ bl goastrdup
+/* 803578C0 00353520 38 80 00 2F */ li r4, 0x2f
+/* 803578C4 00353524 7C 65 1B 78 */ mr r5, r3
+/* 803578C8 00353528 48 00 00 18 */ b lbl_803578E0
+lbl_803578CC:
+/* 803578CC 0035352C 7C C0 07 74 */ extsb r0, r6
+/* 803578D0 00353530 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803578D4 00353534 40 82 00 08 */ bne lbl_803578DC
+/* 803578D8 00353538 98 83 00 00 */ stb r4, 0(r3)
+lbl_803578DC:
+/* 803578DC 0035353C 38 63 00 01 */ addi r3, r3, 1
+lbl_803578E0:
+/* 803578E0 00353540 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803578E4 00353544 7C C0 07 75 */ extsb. r0, r6
+/* 803578E8 00353548 40 82 FF E4 */ bne lbl_803578CC
+lbl_803578EC:
+/* 803578EC 0035354C 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_803578F0:
+/* 803578F0 00353550 2C 1F 00 00 */ cmpwi r31, 0
+/* 803578F4 00353554 40 82 00 0C */ bne lbl_80357900
+/* 803578F8 00353558 38 60 00 00 */ li r3, 0
+/* 803578FC 0035355C 48 00 01 30 */ b lbl_80357A2C
+lbl_80357900:
+/* 80357900 00353560 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80357904 00353564 2C 00 00 02 */ cmpwi r0, 2
+/* 80357908 00353568 40 82 00 0C */ bne lbl_80357914
+/* 8035790C 0035356C 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80357910 00353570 48 00 01 1C */ b lbl_80357A2C
+lbl_80357914:
+/* 80357914 00353574 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80357918 00353578 48 00 01 14 */ b lbl_80357A2C
+lbl_8035791C:
+/* 8035791C 0035357C 2C 00 00 01 */ cmpwi r0, 1
+/* 80357920 00353580 40 82 00 EC */ bne lbl_80357A0C
+/* 80357924 00353584 40 86 00 0C */ bne cr1, lbl_80357930
+/* 80357928 00353588 38 80 00 00 */ li r4, 0
+/* 8035792C 0035358C 48 00 00 18 */ b lbl_80357944
+lbl_80357930:
+/* 80357930 00353590 2C 00 00 02 */ cmpwi r0, 2
+/* 80357934 00353594 40 82 00 0C */ bne lbl_80357940
+/* 80357938 00353598 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 8035793C 0035359C 48 00 00 08 */ b lbl_80357944
+lbl_80357940:
+/* 80357940 003535A0 38 83 00 10 */ addi r4, r3, 0x10
+lbl_80357944:
+/* 80357944 003535A4 C8 24 00 00 */ lfd f1, 0(r4)
+/* 80357948 003535A8 3B CD B1 00 */ addi r30, r13, lbl_806403C0-_SDA_BASE_
+/* 8035794C 003535AC C8 1D 00 00 */ lfd f0, 0(r29)
+/* 80357950 003535B0 FC 01 00 28 */ fsub f0, f1, f0
+/* 80357954 003535B4 D8 0D B1 00 */ stfd f0, lbl_806403C0-_SDA_BASE_(r13)
+/* 80357958 003535B8 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035795C 003535BC 2C 00 00 00 */ cmpwi r0, 0
+/* 80357960 003535C0 40 82 00 10 */ bne lbl_80357970
+/* 80357964 003535C4 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80357968 003535C8 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8035796C 003535CC 48 00 00 74 */ b lbl_803579E0
+lbl_80357970:
+/* 80357970 003535D0 2C 00 00 01 */ cmpwi r0, 1
+/* 80357974 003535D4 40 82 00 0C */ bne lbl_80357980
+/* 80357978 003535D8 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 8035797C 003535DC 48 00 00 64 */ b lbl_803579E0
+lbl_80357980:
+/* 80357980 003535E0 2C 00 00 02 */ cmpwi r0, 2
+/* 80357984 003535E4 40 82 00 5C */ bne lbl_803579E0
+/* 80357988 003535E8 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8035798C 003535EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80357990 003535F0 41 82 00 08 */ beq lbl_80357998
+/* 80357994 003535F4 4B FE 19 A5 */ bl gsifree
+lbl_80357998:
+/* 80357998 003535F8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035799C 003535FC 40 82 00 0C */ bne lbl_803579A8
+/* 803579A0 00353600 38 A0 00 00 */ li r5, 0
+/* 803579A4 00353604 48 00 00 38 */ b lbl_803579DC
+lbl_803579A8:
+/* 803579A8 00353608 7F C3 F3 78 */ mr r3, r30
+/* 803579AC 0035360C 4B FE 15 59 */ bl goastrdup
+/* 803579B0 00353610 38 80 00 2F */ li r4, 0x2f
+/* 803579B4 00353614 7C 65 1B 78 */ mr r5, r3
+/* 803579B8 00353618 48 00 00 18 */ b lbl_803579D0
+lbl_803579BC:
+/* 803579BC 0035361C 7C C0 07 74 */ extsb r0, r6
+/* 803579C0 00353620 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803579C4 00353624 40 82 00 08 */ bne lbl_803579CC
+/* 803579C8 00353628 98 83 00 00 */ stb r4, 0(r3)
+lbl_803579CC:
+/* 803579CC 0035362C 38 63 00 01 */ addi r3, r3, 1
+lbl_803579D0:
+/* 803579D0 00353630 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803579D4 00353634 7C C0 07 75 */ extsb. r0, r6
+/* 803579D8 00353638 40 82 FF E4 */ bne lbl_803579BC
+lbl_803579DC:
+/* 803579DC 0035363C 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_803579E0:
+/* 803579E0 00353640 2C 1F 00 00 */ cmpwi r31, 0
+/* 803579E4 00353644 40 82 00 0C */ bne lbl_803579F0
+/* 803579E8 00353648 38 60 00 00 */ li r3, 0
+/* 803579EC 0035364C 48 00 00 40 */ b lbl_80357A2C
+lbl_803579F0:
+/* 803579F0 00353650 80 1F 00 04 */ lwz r0, 4(r31)
+/* 803579F4 00353654 2C 00 00 02 */ cmpwi r0, 2
+/* 803579F8 00353658 40 82 00 0C */ bne lbl_80357A04
+/* 803579FC 0035365C 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80357A00 00353660 48 00 00 2C */ b lbl_80357A2C
+lbl_80357A04:
+/* 80357A04 00353664 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80357A08 00353668 48 00 00 24 */ b lbl_80357A2C
+lbl_80357A0C:
+/* 80357A0C 0035366C 40 86 00 0C */ bne cr1, lbl_80357A18
+/* 80357A10 00353670 38 60 00 00 */ li r3, 0
+/* 80357A14 00353674 48 00 00 18 */ b lbl_80357A2C
+lbl_80357A18:
+/* 80357A18 00353678 2C 00 00 02 */ cmpwi r0, 2
+/* 80357A1C 0035367C 40 82 00 0C */ bne lbl_80357A28
+/* 80357A20 00353680 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357A24 00353684 48 00 00 08 */ b lbl_80357A2C
+lbl_80357A28:
+/* 80357A28 00353688 38 63 00 10 */ addi r3, r3, 0x10
+lbl_80357A2C:
+/* 80357A2C 0035368C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80357A30 00353690 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80357A34 00353694 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80357A38 00353698 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80357A3C 0035369C 7C 08 03 A6 */ mtlr r0
+/* 80357A40 003536A0 38 21 00 30 */ addi r1, r1, 0x30
+/* 80357A44 003536A4 4E 80 00 20 */ blr
+
+.global BucketMult
+BucketMult:
+/* 80357A48 003536A8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80357A4C 003536AC 7C 08 02 A6 */ mflr r0
+/* 80357A50 003536B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80357A54 003536B4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80357A58 003536B8 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80357A5C 003536BC 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80357A60 003536C0 7C BE 2B 78 */ mr r30, r5
+/* 80357A64 003536C4 40 82 00 08 */ bne lbl_80357A6C
+/* 80357A68 003536C8 80 6D B1 08 */ lwz r3, lbl_806403C8-_SDA_BASE_(r13)
+lbl_80357A6C:
+/* 80357A6C 003536CC 90 81 00 08 */ stw r4, 8(r1)
+/* 80357A70 003536D0 38 81 00 08 */ addi r4, r1, 8
+/* 80357A74 003536D4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80357A78 003536D8 4B FD F0 A5 */ bl TableLookup
+/* 80357A7C 003536DC 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80357A80 003536E0 7C 7F 1B 78 */ mr r31, r3
+/* 80357A84 003536E4 40 86 00 0C */ bne cr1, lbl_80357A90
+/* 80357A88 003536E8 38 60 00 00 */ li r3, 0
+/* 80357A8C 003536EC 48 00 02 08 */ b lbl_80357C94
+lbl_80357A90:
+/* 80357A90 003536F0 80 03 00 04 */ lwz r0, 4(r3)
+/* 80357A94 003536F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80357A98 003536F8 40 82 00 EC */ bne lbl_80357B84
+/* 80357A9C 003536FC 40 86 00 0C */ bne cr1, lbl_80357AA8
+/* 80357AA0 00353700 38 A0 00 00 */ li r5, 0
+/* 80357AA4 00353704 48 00 00 18 */ b lbl_80357ABC
+lbl_80357AA8:
+/* 80357AA8 00353708 2C 00 00 02 */ cmpwi r0, 2
+/* 80357AAC 0035370C 40 82 00 0C */ bne lbl_80357AB8
+/* 80357AB0 00353710 80 A3 00 10 */ lwz r5, 0x10(r3)
+/* 80357AB4 00353714 48 00 00 08 */ b lbl_80357ABC
+lbl_80357AB8:
+/* 80357AB8 00353718 38 A3 00 10 */ addi r5, r3, 0x10
+lbl_80357ABC:
+/* 80357ABC 0035371C 80 9E 00 00 */ lwz r4, 0(r30)
+/* 80357AC0 00353720 3B CD B0 F8 */ addi r30, r13, lbl_806403B8-_SDA_BASE_
+/* 80357AC4 00353724 80 05 00 00 */ lwz r0, 0(r5)
+/* 80357AC8 00353728 7C 04 01 D6 */ mullw r0, r4, r0
+/* 80357ACC 0035372C 90 0D B0 F8 */ stw r0, lbl_806403B8-_SDA_BASE_(r13)
+/* 80357AD0 00353730 80 83 00 04 */ lwz r4, 4(r3)
+/* 80357AD4 00353734 2C 04 00 00 */ cmpwi r4, 0
+/* 80357AD8 00353738 40 82 00 0C */ bne lbl_80357AE4
+/* 80357ADC 0035373C 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80357AE0 00353740 48 00 00 78 */ b lbl_80357B58
+lbl_80357AE4:
+/* 80357AE4 00353744 2C 04 00 01 */ cmpwi r4, 1
+/* 80357AE8 00353748 40 82 00 10 */ bne lbl_80357AF8
+/* 80357AEC 0035374C C8 1E 00 00 */ lfd f0, 0(r30)
+/* 80357AF0 00353750 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 80357AF4 00353754 48 00 00 64 */ b lbl_80357B58
+lbl_80357AF8:
+/* 80357AF8 00353758 2C 04 00 02 */ cmpwi r4, 2
+/* 80357AFC 0035375C 40 82 00 5C */ bne lbl_80357B58
+/* 80357B00 00353760 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357B04 00353764 2C 03 00 00 */ cmpwi r3, 0
+/* 80357B08 00353768 41 82 00 08 */ beq lbl_80357B10
+/* 80357B0C 0035376C 4B FE 18 2D */ bl gsifree
+lbl_80357B10:
+/* 80357B10 00353770 2C 1E 00 00 */ cmpwi r30, 0
+/* 80357B14 00353774 40 82 00 0C */ bne lbl_80357B20
+/* 80357B18 00353778 38 A0 00 00 */ li r5, 0
+/* 80357B1C 0035377C 48 00 00 38 */ b lbl_80357B54
+lbl_80357B20:
+/* 80357B20 00353780 7F C3 F3 78 */ mr r3, r30
+/* 80357B24 00353784 4B FE 13 E1 */ bl goastrdup
+/* 80357B28 00353788 38 80 00 2F */ li r4, 0x2f
+/* 80357B2C 0035378C 7C 65 1B 78 */ mr r5, r3
+/* 80357B30 00353790 48 00 00 18 */ b lbl_80357B48
+lbl_80357B34:
+/* 80357B34 00353794 7C C0 07 74 */ extsb r0, r6
+/* 80357B38 00353798 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80357B3C 0035379C 40 82 00 08 */ bne lbl_80357B44
+/* 80357B40 003537A0 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357B44:
+/* 80357B44 003537A4 38 63 00 01 */ addi r3, r3, 1
+lbl_80357B48:
+/* 80357B48 003537A8 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80357B4C 003537AC 7C C0 07 75 */ extsb. r0, r6
+/* 80357B50 003537B0 40 82 FF E4 */ bne lbl_80357B34
+lbl_80357B54:
+/* 80357B54 003537B4 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_80357B58:
+/* 80357B58 003537B8 2C 1F 00 00 */ cmpwi r31, 0
+/* 80357B5C 003537BC 40 82 00 0C */ bne lbl_80357B68
+/* 80357B60 003537C0 38 60 00 00 */ li r3, 0
+/* 80357B64 003537C4 48 00 01 30 */ b lbl_80357C94
+lbl_80357B68:
+/* 80357B68 003537C8 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80357B6C 003537CC 2C 00 00 02 */ cmpwi r0, 2
+/* 80357B70 003537D0 40 82 00 0C */ bne lbl_80357B7C
+/* 80357B74 003537D4 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80357B78 003537D8 48 00 01 1C */ b lbl_80357C94
+lbl_80357B7C:
+/* 80357B7C 003537DC 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80357B80 003537E0 48 00 01 14 */ b lbl_80357C94
+lbl_80357B84:
+/* 80357B84 003537E4 2C 00 00 01 */ cmpwi r0, 1
+/* 80357B88 003537E8 40 82 00 EC */ bne lbl_80357C74
+/* 80357B8C 003537EC 40 86 00 0C */ bne cr1, lbl_80357B98
+/* 80357B90 003537F0 38 80 00 00 */ li r4, 0
+/* 80357B94 003537F4 48 00 00 18 */ b lbl_80357BAC
+lbl_80357B98:
+/* 80357B98 003537F8 2C 00 00 02 */ cmpwi r0, 2
+/* 80357B9C 003537FC 40 82 00 0C */ bne lbl_80357BA8
+/* 80357BA0 00353800 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 80357BA4 00353804 48 00 00 08 */ b lbl_80357BAC
+lbl_80357BA8:
+/* 80357BA8 00353808 38 83 00 10 */ addi r4, r3, 0x10
+lbl_80357BAC:
+/* 80357BAC 0035380C C8 3E 00 00 */ lfd f1, 0(r30)
+/* 80357BB0 00353810 3B CD B1 00 */ addi r30, r13, lbl_806403C0-_SDA_BASE_
+/* 80357BB4 00353814 C8 04 00 00 */ lfd f0, 0(r4)
+/* 80357BB8 00353818 FC 01 00 32 */ fmul f0, f1, f0
+/* 80357BBC 0035381C D8 0D B1 00 */ stfd f0, lbl_806403C0-_SDA_BASE_(r13)
+/* 80357BC0 00353820 80 03 00 04 */ lwz r0, 4(r3)
+/* 80357BC4 00353824 2C 00 00 00 */ cmpwi r0, 0
+/* 80357BC8 00353828 40 82 00 10 */ bne lbl_80357BD8
+/* 80357BCC 0035382C 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80357BD0 00353830 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80357BD4 00353834 48 00 00 74 */ b lbl_80357C48
+lbl_80357BD8:
+/* 80357BD8 00353838 2C 00 00 01 */ cmpwi r0, 1
+/* 80357BDC 0035383C 40 82 00 0C */ bne lbl_80357BE8
+/* 80357BE0 00353840 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 80357BE4 00353844 48 00 00 64 */ b lbl_80357C48
+lbl_80357BE8:
+/* 80357BE8 00353848 2C 00 00 02 */ cmpwi r0, 2
+/* 80357BEC 0035384C 40 82 00 5C */ bne lbl_80357C48
+/* 80357BF0 00353850 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357BF4 00353854 2C 03 00 00 */ cmpwi r3, 0
+/* 80357BF8 00353858 41 82 00 08 */ beq lbl_80357C00
+/* 80357BFC 0035385C 4B FE 17 3D */ bl gsifree
+lbl_80357C00:
+/* 80357C00 00353860 2C 1E 00 00 */ cmpwi r30, 0
+/* 80357C04 00353864 40 82 00 0C */ bne lbl_80357C10
+/* 80357C08 00353868 38 A0 00 00 */ li r5, 0
+/* 80357C0C 0035386C 48 00 00 38 */ b lbl_80357C44
+lbl_80357C10:
+/* 80357C10 00353870 7F C3 F3 78 */ mr r3, r30
+/* 80357C14 00353874 4B FE 12 F1 */ bl goastrdup
+/* 80357C18 00353878 38 80 00 2F */ li r4, 0x2f
+/* 80357C1C 0035387C 7C 65 1B 78 */ mr r5, r3
+/* 80357C20 00353880 48 00 00 18 */ b lbl_80357C38
+lbl_80357C24:
+/* 80357C24 00353884 7C C0 07 74 */ extsb r0, r6
+/* 80357C28 00353888 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80357C2C 0035388C 40 82 00 08 */ bne lbl_80357C34
+/* 80357C30 00353890 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357C34:
+/* 80357C34 00353894 38 63 00 01 */ addi r3, r3, 1
+lbl_80357C38:
+/* 80357C38 00353898 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80357C3C 0035389C 7C C0 07 75 */ extsb. r0, r6
+/* 80357C40 003538A0 40 82 FF E4 */ bne lbl_80357C24
+lbl_80357C44:
+/* 80357C44 003538A4 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_80357C48:
+/* 80357C48 003538A8 2C 1F 00 00 */ cmpwi r31, 0
+/* 80357C4C 003538AC 40 82 00 0C */ bne lbl_80357C58
+/* 80357C50 003538B0 38 60 00 00 */ li r3, 0
+/* 80357C54 003538B4 48 00 00 40 */ b lbl_80357C94
+lbl_80357C58:
+/* 80357C58 003538B8 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80357C5C 003538BC 2C 00 00 02 */ cmpwi r0, 2
+/* 80357C60 003538C0 40 82 00 0C */ bne lbl_80357C6C
+/* 80357C64 003538C4 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80357C68 003538C8 48 00 00 2C */ b lbl_80357C94
+lbl_80357C6C:
+/* 80357C6C 003538CC 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80357C70 003538D0 48 00 00 24 */ b lbl_80357C94
+lbl_80357C74:
+/* 80357C74 003538D4 40 86 00 0C */ bne cr1, lbl_80357C80
+/* 80357C78 003538D8 38 60 00 00 */ li r3, 0
+/* 80357C7C 003538DC 48 00 00 18 */ b lbl_80357C94
+lbl_80357C80:
+/* 80357C80 003538E0 2C 00 00 02 */ cmpwi r0, 2
+/* 80357C84 003538E4 40 82 00 0C */ bne lbl_80357C90
+/* 80357C88 003538E8 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357C8C 003538EC 48 00 00 08 */ b lbl_80357C94
+lbl_80357C90:
+/* 80357C90 003538F0 38 63 00 10 */ addi r3, r3, 0x10
+lbl_80357C94:
+/* 80357C94 003538F4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80357C98 003538F8 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80357C9C 003538FC 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80357CA0 00353900 7C 08 03 A6 */ mtlr r0
+/* 80357CA4 00353904 38 21 00 30 */ addi r1, r1, 0x30
+/* 80357CA8 00353908 4E 80 00 20 */ blr
+
+.global BucketDiv
+BucketDiv:
+/* 80357CAC 0035390C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80357CB0 00353910 7C 08 02 A6 */ mflr r0
+/* 80357CB4 00353914 2C 03 00 00 */ cmpwi r3, 0
+/* 80357CB8 00353918 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80357CBC 0035391C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80357CC0 00353920 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80357CC4 00353924 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80357CC8 00353928 7C BD 2B 78 */ mr r29, r5
+/* 80357CCC 0035392C 40 82 00 08 */ bne lbl_80357CD4
+/* 80357CD0 00353930 80 6D B1 08 */ lwz r3, lbl_806403C8-_SDA_BASE_(r13)
+lbl_80357CD4:
+/* 80357CD4 00353934 90 81 00 08 */ stw r4, 8(r1)
+/* 80357CD8 00353938 38 81 00 08 */ addi r4, r1, 8
+/* 80357CDC 0035393C 80 63 00 00 */ lwz r3, 0(r3)
+/* 80357CE0 00353940 4B FD EE 3D */ bl TableLookup
+/* 80357CE4 00353944 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80357CE8 00353948 7C 7F 1B 78 */ mr r31, r3
+/* 80357CEC 0035394C 40 86 00 0C */ bne cr1, lbl_80357CF8
+/* 80357CF0 00353950 38 60 00 00 */ li r3, 0
+/* 80357CF4 00353954 48 00 02 08 */ b lbl_80357EFC
+lbl_80357CF8:
+/* 80357CF8 00353958 80 03 00 04 */ lwz r0, 4(r3)
+/* 80357CFC 0035395C 2C 00 00 00 */ cmpwi r0, 0
+/* 80357D00 00353960 40 82 00 EC */ bne lbl_80357DEC
+/* 80357D04 00353964 40 86 00 0C */ bne cr1, lbl_80357D10
+/* 80357D08 00353968 38 80 00 00 */ li r4, 0
+/* 80357D0C 0035396C 48 00 00 18 */ b lbl_80357D24
+lbl_80357D10:
+/* 80357D10 00353970 2C 00 00 02 */ cmpwi r0, 2
+/* 80357D14 00353974 40 82 00 0C */ bne lbl_80357D20
+/* 80357D18 00353978 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 80357D1C 0035397C 48 00 00 08 */ b lbl_80357D24
+lbl_80357D20:
+/* 80357D20 00353980 38 83 00 10 */ addi r4, r3, 0x10
+lbl_80357D24:
+/* 80357D24 00353984 80 84 00 00 */ lwz r4, 0(r4)
+/* 80357D28 00353988 3B CD B0 F8 */ addi r30, r13, lbl_806403B8-_SDA_BASE_
+/* 80357D2C 0035398C 80 1D 00 00 */ lwz r0, 0(r29)
+/* 80357D30 00353990 7C 04 03 D6 */ divw r0, r4, r0
+/* 80357D34 00353994 90 0D B0 F8 */ stw r0, lbl_806403B8-_SDA_BASE_(r13)
+/* 80357D38 00353998 80 83 00 04 */ lwz r4, 4(r3)
+/* 80357D3C 0035399C 2C 04 00 00 */ cmpwi r4, 0
+/* 80357D40 003539A0 40 82 00 0C */ bne lbl_80357D4C
+/* 80357D44 003539A4 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80357D48 003539A8 48 00 00 78 */ b lbl_80357DC0
+lbl_80357D4C:
+/* 80357D4C 003539AC 2C 04 00 01 */ cmpwi r4, 1
+/* 80357D50 003539B0 40 82 00 10 */ bne lbl_80357D60
+/* 80357D54 003539B4 C8 1E 00 00 */ lfd f0, 0(r30)
+/* 80357D58 003539B8 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 80357D5C 003539BC 48 00 00 64 */ b lbl_80357DC0
+lbl_80357D60:
+/* 80357D60 003539C0 2C 04 00 02 */ cmpwi r4, 2
+/* 80357D64 003539C4 40 82 00 5C */ bne lbl_80357DC0
+/* 80357D68 003539C8 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357D6C 003539CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80357D70 003539D0 41 82 00 08 */ beq lbl_80357D78
+/* 80357D74 003539D4 4B FE 15 C5 */ bl gsifree
+lbl_80357D78:
+/* 80357D78 003539D8 2C 1E 00 00 */ cmpwi r30, 0
+/* 80357D7C 003539DC 40 82 00 0C */ bne lbl_80357D88
+/* 80357D80 003539E0 38 A0 00 00 */ li r5, 0
+/* 80357D84 003539E4 48 00 00 38 */ b lbl_80357DBC
+lbl_80357D88:
+/* 80357D88 003539E8 7F C3 F3 78 */ mr r3, r30
+/* 80357D8C 003539EC 4B FE 11 79 */ bl goastrdup
+/* 80357D90 003539F0 38 80 00 2F */ li r4, 0x2f
+/* 80357D94 003539F4 7C 65 1B 78 */ mr r5, r3
+/* 80357D98 003539F8 48 00 00 18 */ b lbl_80357DB0
+lbl_80357D9C:
+/* 80357D9C 003539FC 7C C0 07 74 */ extsb r0, r6
+/* 80357DA0 00353A00 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80357DA4 00353A04 40 82 00 08 */ bne lbl_80357DAC
+/* 80357DA8 00353A08 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357DAC:
+/* 80357DAC 00353A0C 38 63 00 01 */ addi r3, r3, 1
+lbl_80357DB0:
+/* 80357DB0 00353A10 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80357DB4 00353A14 7C C0 07 75 */ extsb. r0, r6
+/* 80357DB8 00353A18 40 82 FF E4 */ bne lbl_80357D9C
+lbl_80357DBC:
+/* 80357DBC 00353A1C 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_80357DC0:
+/* 80357DC0 00353A20 2C 1F 00 00 */ cmpwi r31, 0
+/* 80357DC4 00353A24 40 82 00 0C */ bne lbl_80357DD0
+/* 80357DC8 00353A28 38 60 00 00 */ li r3, 0
+/* 80357DCC 00353A2C 48 00 01 30 */ b lbl_80357EFC
+lbl_80357DD0:
+/* 80357DD0 00353A30 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80357DD4 00353A34 2C 00 00 02 */ cmpwi r0, 2
+/* 80357DD8 00353A38 40 82 00 0C */ bne lbl_80357DE4
+/* 80357DDC 00353A3C 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80357DE0 00353A40 48 00 01 1C */ b lbl_80357EFC
+lbl_80357DE4:
+/* 80357DE4 00353A44 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80357DE8 00353A48 48 00 01 14 */ b lbl_80357EFC
+lbl_80357DEC:
+/* 80357DEC 00353A4C 2C 00 00 01 */ cmpwi r0, 1
+/* 80357DF0 00353A50 40 82 00 EC */ bne lbl_80357EDC
+/* 80357DF4 00353A54 40 86 00 0C */ bne cr1, lbl_80357E00
+/* 80357DF8 00353A58 38 80 00 00 */ li r4, 0
+/* 80357DFC 00353A5C 48 00 00 18 */ b lbl_80357E14
+lbl_80357E00:
+/* 80357E00 00353A60 2C 00 00 02 */ cmpwi r0, 2
+/* 80357E04 00353A64 40 82 00 0C */ bne lbl_80357E10
+/* 80357E08 00353A68 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 80357E0C 00353A6C 48 00 00 08 */ b lbl_80357E14
+lbl_80357E10:
+/* 80357E10 00353A70 38 83 00 10 */ addi r4, r3, 0x10
+lbl_80357E14:
+/* 80357E14 00353A74 C8 24 00 00 */ lfd f1, 0(r4)
+/* 80357E18 00353A78 3B CD B1 00 */ addi r30, r13, lbl_806403C0-_SDA_BASE_
+/* 80357E1C 00353A7C C8 1D 00 00 */ lfd f0, 0(r29)
+/* 80357E20 00353A80 FC 01 00 24 */ fdiv f0, f1, f0
+/* 80357E24 00353A84 D8 0D B1 00 */ stfd f0, lbl_806403C0-_SDA_BASE_(r13)
+/* 80357E28 00353A88 80 03 00 04 */ lwz r0, 4(r3)
+/* 80357E2C 00353A8C 2C 00 00 00 */ cmpwi r0, 0
+/* 80357E30 00353A90 40 82 00 10 */ bne lbl_80357E40
+/* 80357E34 00353A94 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80357E38 00353A98 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80357E3C 00353A9C 48 00 00 74 */ b lbl_80357EB0
+lbl_80357E40:
+/* 80357E40 00353AA0 2C 00 00 01 */ cmpwi r0, 1
+/* 80357E44 00353AA4 40 82 00 0C */ bne lbl_80357E50
+/* 80357E48 00353AA8 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 80357E4C 00353AAC 48 00 00 64 */ b lbl_80357EB0
+lbl_80357E50:
+/* 80357E50 00353AB0 2C 00 00 02 */ cmpwi r0, 2
+/* 80357E54 00353AB4 40 82 00 5C */ bne lbl_80357EB0
+/* 80357E58 00353AB8 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357E5C 00353ABC 2C 03 00 00 */ cmpwi r3, 0
+/* 80357E60 00353AC0 41 82 00 08 */ beq lbl_80357E68
+/* 80357E64 00353AC4 4B FE 14 D5 */ bl gsifree
+lbl_80357E68:
+/* 80357E68 00353AC8 2C 1E 00 00 */ cmpwi r30, 0
+/* 80357E6C 00353ACC 40 82 00 0C */ bne lbl_80357E78
+/* 80357E70 00353AD0 38 A0 00 00 */ li r5, 0
+/* 80357E74 00353AD4 48 00 00 38 */ b lbl_80357EAC
+lbl_80357E78:
+/* 80357E78 00353AD8 7F C3 F3 78 */ mr r3, r30
+/* 80357E7C 00353ADC 4B FE 10 89 */ bl goastrdup
+/* 80357E80 00353AE0 38 80 00 2F */ li r4, 0x2f
+/* 80357E84 00353AE4 7C 65 1B 78 */ mr r5, r3
+/* 80357E88 00353AE8 48 00 00 18 */ b lbl_80357EA0
+lbl_80357E8C:
+/* 80357E8C 00353AEC 7C C0 07 74 */ extsb r0, r6
+/* 80357E90 00353AF0 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80357E94 00353AF4 40 82 00 08 */ bne lbl_80357E9C
+/* 80357E98 00353AF8 98 83 00 00 */ stb r4, 0(r3)
+lbl_80357E9C:
+/* 80357E9C 00353AFC 38 63 00 01 */ addi r3, r3, 1
+lbl_80357EA0:
+/* 80357EA0 00353B00 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80357EA4 00353B04 7C C0 07 75 */ extsb. r0, r6
+/* 80357EA8 00353B08 40 82 FF E4 */ bne lbl_80357E8C
+lbl_80357EAC:
+/* 80357EAC 00353B0C 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_80357EB0:
+/* 80357EB0 00353B10 2C 1F 00 00 */ cmpwi r31, 0
+/* 80357EB4 00353B14 40 82 00 0C */ bne lbl_80357EC0
+/* 80357EB8 00353B18 38 60 00 00 */ li r3, 0
+/* 80357EBC 00353B1C 48 00 00 40 */ b lbl_80357EFC
+lbl_80357EC0:
+/* 80357EC0 00353B20 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80357EC4 00353B24 2C 00 00 02 */ cmpwi r0, 2
+/* 80357EC8 00353B28 40 82 00 0C */ bne lbl_80357ED4
+/* 80357ECC 00353B2C 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80357ED0 00353B30 48 00 00 2C */ b lbl_80357EFC
+lbl_80357ED4:
+/* 80357ED4 00353B34 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80357ED8 00353B38 48 00 00 24 */ b lbl_80357EFC
+lbl_80357EDC:
+/* 80357EDC 00353B3C 40 86 00 0C */ bne cr1, lbl_80357EE8
+/* 80357EE0 00353B40 38 60 00 00 */ li r3, 0
+/* 80357EE4 00353B44 48 00 00 18 */ b lbl_80357EFC
+lbl_80357EE8:
+/* 80357EE8 00353B48 2C 00 00 02 */ cmpwi r0, 2
+/* 80357EEC 00353B4C 40 82 00 0C */ bne lbl_80357EF8
+/* 80357EF0 00353B50 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80357EF4 00353B54 48 00 00 08 */ b lbl_80357EFC
+lbl_80357EF8:
+/* 80357EF8 00353B58 38 63 00 10 */ addi r3, r3, 0x10
+lbl_80357EFC:
+/* 80357EFC 00353B5C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80357F00 00353B60 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80357F04 00353B64 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80357F08 00353B68 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80357F0C 00353B6C 7C 08 03 A6 */ mtlr r0
+/* 80357F10 00353B70 38 21 00 30 */ addi r1, r1, 0x30
+/* 80357F14 00353B74 4E 80 00 20 */ blr
+
+.global BucketConcat
+BucketConcat:
+/* 80357F18 00353B78 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80357F1C 00353B7C 7C 08 02 A6 */ mflr r0
+/* 80357F20 00353B80 2C 03 00 00 */ cmpwi r3, 0
+/* 80357F24 00353B84 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80357F28 00353B88 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80357F2C 00353B8C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80357F30 00353B90 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80357F34 00353B94 93 81 00 20 */ stw r28, 0x20(r1)
+/* 80357F38 00353B98 7C BC 2B 78 */ mr r28, r5
+/* 80357F3C 00353B9C 40 82 00 08 */ bne lbl_80357F44
+/* 80357F40 00353BA0 80 6D B1 08 */ lwz r3, lbl_806403C8-_SDA_BASE_(r13)
+lbl_80357F44:
+/* 80357F44 00353BA4 90 81 00 08 */ stw r4, 8(r1)
+/* 80357F48 00353BA8 38 81 00 08 */ addi r4, r1, 8
+/* 80357F4C 00353BAC 80 63 00 00 */ lwz r3, 0(r3)
+/* 80357F50 00353BB0 4B FD EB CD */ bl TableLookup
+/* 80357F54 00353BB4 2C 03 00 00 */ cmpwi r3, 0
+/* 80357F58 00353BB8 7C 7E 1B 78 */ mr r30, r3
+/* 80357F5C 00353BBC 40 82 00 0C */ bne lbl_80357F68
+/* 80357F60 00353BC0 38 60 00 00 */ li r3, 0
+/* 80357F64 00353BC4 48 00 01 1C */ b lbl_80358080
+lbl_80357F68:
+/* 80357F68 00353BC8 40 82 00 0C */ bne lbl_80357F74
+/* 80357F6C 00353BCC 3B A0 00 00 */ li r29, 0
+/* 80357F70 00353BD0 48 00 00 1C */ b lbl_80357F8C
+lbl_80357F74:
+/* 80357F74 00353BD4 80 03 00 04 */ lwz r0, 4(r3)
+/* 80357F78 00353BD8 2C 00 00 02 */ cmpwi r0, 2
+/* 80357F7C 00353BDC 40 82 00 0C */ bne lbl_80357F88
+/* 80357F80 00353BE0 83 A3 00 10 */ lwz r29, 0x10(r3)
+/* 80357F84 00353BE4 48 00 00 08 */ b lbl_80357F8C
+lbl_80357F88:
+/* 80357F88 00353BE8 3B A3 00 10 */ addi r29, r3, 0x10
+lbl_80357F8C:
+/* 80357F8C 00353BEC 7F 83 E3 78 */ mr r3, r28
+/* 80357F90 00353BF0 4B E6 EB D5 */ bl strlen
+/* 80357F94 00353BF4 7C 7F 1B 78 */ mr r31, r3
+/* 80357F98 00353BF8 7F A3 EB 78 */ mr r3, r29
+/* 80357F9C 00353BFC 4B E6 EB C9 */ bl strlen
+/* 80357FA0 00353C00 7C 63 FA 14 */ add r3, r3, r31
+/* 80357FA4 00353C04 38 63 00 01 */ addi r3, r3, 1
+/* 80357FA8 00353C08 4B FE 13 6D */ bl gsimalloc
+/* 80357FAC 00353C0C 7C 7F 1B 78 */ mr r31, r3
+/* 80357FB0 00353C10 7F A4 EB 78 */ mr r4, r29
+/* 80357FB4 00353C14 4B E7 63 1D */ bl strcpy
+/* 80357FB8 00353C18 7F E3 FB 78 */ mr r3, r31
+/* 80357FBC 00353C1C 7F 84 E3 78 */ mr r4, r28
+/* 80357FC0 00353C20 4B E7 64 15 */ bl strcat
+/* 80357FC4 00353C24 80 1E 00 04 */ lwz r0, 4(r30)
+/* 80357FC8 00353C28 2C 00 00 00 */ cmpwi r0, 0
+/* 80357FCC 00353C2C 40 82 00 10 */ bne lbl_80357FDC
+/* 80357FD0 00353C30 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80357FD4 00353C34 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 80357FD8 00353C38 48 00 00 78 */ b lbl_80358050
+lbl_80357FDC:
+/* 80357FDC 00353C3C 2C 00 00 01 */ cmpwi r0, 1
+/* 80357FE0 00353C40 40 82 00 10 */ bne lbl_80357FF0
+/* 80357FE4 00353C44 C8 1F 00 00 */ lfd f0, 0(r31)
+/* 80357FE8 00353C48 D8 1E 00 10 */ stfd f0, 0x10(r30)
+/* 80357FEC 00353C4C 48 00 00 64 */ b lbl_80358050
+lbl_80357FF0:
+/* 80357FF0 00353C50 2C 00 00 02 */ cmpwi r0, 2
+/* 80357FF4 00353C54 40 82 00 5C */ bne lbl_80358050
+/* 80357FF8 00353C58 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 80357FFC 00353C5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80358000 00353C60 41 82 00 08 */ beq lbl_80358008
+/* 80358004 00353C64 4B FE 13 35 */ bl gsifree
+lbl_80358008:
+/* 80358008 00353C68 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035800C 00353C6C 40 82 00 0C */ bne lbl_80358018
+/* 80358010 00353C70 38 A0 00 00 */ li r5, 0
+/* 80358014 00353C74 48 00 00 38 */ b lbl_8035804C
+lbl_80358018:
+/* 80358018 00353C78 7F E3 FB 78 */ mr r3, r31
+/* 8035801C 00353C7C 4B FE 0E E9 */ bl goastrdup
+/* 80358020 00353C80 38 80 00 2F */ li r4, 0x2f
+/* 80358024 00353C84 7C 65 1B 78 */ mr r5, r3
+/* 80358028 00353C88 48 00 00 18 */ b lbl_80358040
+lbl_8035802C:
+/* 8035802C 00353C8C 7C C0 07 74 */ extsb r0, r6
+/* 80358030 00353C90 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80358034 00353C94 40 82 00 08 */ bne lbl_8035803C
+/* 80358038 00353C98 98 83 00 00 */ stb r4, 0(r3)
+lbl_8035803C:
+/* 8035803C 00353C9C 38 63 00 01 */ addi r3, r3, 1
+lbl_80358040:
+/* 80358040 00353CA0 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80358044 00353CA4 7C C0 07 75 */ extsb. r0, r6
+/* 80358048 00353CA8 40 82 FF E4 */ bne lbl_8035802C
+lbl_8035804C:
+/* 8035804C 00353CAC 90 BE 00 10 */ stw r5, 0x10(r30)
+lbl_80358050:
+/* 80358050 00353CB0 7F E3 FB 78 */ mr r3, r31
+/* 80358054 00353CB4 4B FE 12 E5 */ bl gsifree
+/* 80358058 00353CB8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035805C 00353CBC 40 82 00 0C */ bne lbl_80358068
+/* 80358060 00353CC0 38 60 00 00 */ li r3, 0
+/* 80358064 00353CC4 48 00 00 1C */ b lbl_80358080
+lbl_80358068:
+/* 80358068 00353CC8 80 1E 00 04 */ lwz r0, 4(r30)
+/* 8035806C 00353CCC 2C 00 00 02 */ cmpwi r0, 2
+/* 80358070 00353CD0 40 82 00 0C */ bne lbl_8035807C
+/* 80358074 00353CD4 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 80358078 00353CD8 48 00 00 08 */ b lbl_80358080
+lbl_8035807C:
+/* 8035807C 00353CDC 38 7E 00 10 */ addi r3, r30, 0x10
+lbl_80358080:
+/* 80358080 00353CE0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80358084 00353CE4 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80358088 00353CE8 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8035808C 00353CEC 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80358090 00353CF0 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 80358094 00353CF4 7C 08 03 A6 */ mtlr r0
+/* 80358098 00353CF8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035809C 00353CFC 4E 80 00 20 */ blr
+
+.global BucketAvg
+BucketAvg:
+/* 803580A0 00353D00 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803580A4 00353D04 7C 08 02 A6 */ mflr r0
+/* 803580A8 00353D08 2C 03 00 00 */ cmpwi r3, 0
+/* 803580AC 00353D0C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803580B0 00353D10 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 803580B4 00353D14 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 803580B8 00353D18 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 803580BC 00353D1C 7C BD 2B 78 */ mr r29, r5
+/* 803580C0 00353D20 40 82 00 08 */ bne lbl_803580C8
+/* 803580C4 00353D24 80 6D B1 08 */ lwz r3, lbl_806403C8-_SDA_BASE_(r13)
+lbl_803580C8:
+/* 803580C8 00353D28 90 81 00 08 */ stw r4, 8(r1)
+/* 803580CC 00353D2C 38 81 00 08 */ addi r4, r1, 8
+/* 803580D0 00353D30 80 63 00 00 */ lwz r3, 0(r3)
+/* 803580D4 00353D34 4B FD EA 49 */ bl TableLookup
+/* 803580D8 00353D38 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 803580DC 00353D3C 7C 7F 1B 78 */ mr r31, r3
+/* 803580E0 00353D40 40 86 00 0C */ bne cr1, lbl_803580EC
+/* 803580E4 00353D44 38 60 00 00 */ li r3, 0
+/* 803580E8 00353D48 48 00 02 60 */ b lbl_80358348
+lbl_803580EC:
+/* 803580EC 00353D4C 80 03 00 04 */ lwz r0, 4(r3)
+/* 803580F0 00353D50 2C 00 00 00 */ cmpwi r0, 0
+/* 803580F4 00353D54 40 82 01 00 */ bne lbl_803581F4
+/* 803580F8 00353D58 40 86 00 0C */ bne cr1, lbl_80358104
+/* 803580FC 00353D5C 38 80 00 00 */ li r4, 0
+/* 80358100 00353D60 48 00 00 18 */ b lbl_80358118
+lbl_80358104:
+/* 80358104 00353D64 2C 00 00 02 */ cmpwi r0, 2
+/* 80358108 00353D68 40 82 00 0C */ bne lbl_80358114
+/* 8035810C 00353D6C 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 80358110 00353D70 48 00 00 08 */ b lbl_80358118
+lbl_80358114:
+/* 80358114 00353D74 38 83 00 10 */ addi r4, r3, 0x10
+lbl_80358118:
+/* 80358118 00353D78 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8035811C 00353D7C 3B CD B0 F8 */ addi r30, r13, lbl_806403B8-_SDA_BASE_
+/* 80358120 00353D80 80 84 00 00 */ lwz r4, 0(r4)
+/* 80358124 00353D84 80 DD 00 00 */ lwz r6, 0(r29)
+/* 80358128 00353D88 38 05 00 01 */ addi r0, r5, 1
+/* 8035812C 00353D8C 7C 85 21 D6 */ mullw r4, r5, r4
+/* 80358130 00353D90 90 03 00 08 */ stw r0, 8(r3)
+/* 80358134 00353D94 7C 86 22 14 */ add r4, r6, r4
+/* 80358138 00353D98 7C 04 03 D6 */ divw r0, r4, r0
+/* 8035813C 00353D9C 90 0D B0 F8 */ stw r0, lbl_806403B8-_SDA_BASE_(r13)
+/* 80358140 00353DA0 80 83 00 04 */ lwz r4, 4(r3)
+/* 80358144 00353DA4 2C 04 00 00 */ cmpwi r4, 0
+/* 80358148 00353DA8 40 82 00 0C */ bne lbl_80358154
+/* 8035814C 00353DAC 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80358150 00353DB0 48 00 00 78 */ b lbl_803581C8
+lbl_80358154:
+/* 80358154 00353DB4 2C 04 00 01 */ cmpwi r4, 1
+/* 80358158 00353DB8 40 82 00 10 */ bne lbl_80358168
+/* 8035815C 00353DBC C8 1E 00 00 */ lfd f0, 0(r30)
+/* 80358160 00353DC0 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 80358164 00353DC4 48 00 00 64 */ b lbl_803581C8
+lbl_80358168:
+/* 80358168 00353DC8 2C 04 00 02 */ cmpwi r4, 2
+/* 8035816C 00353DCC 40 82 00 5C */ bne lbl_803581C8
+/* 80358170 00353DD0 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80358174 00353DD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80358178 00353DD8 41 82 00 08 */ beq lbl_80358180
+/* 8035817C 00353DDC 4B FE 11 BD */ bl gsifree
+lbl_80358180:
+/* 80358180 00353DE0 2C 1E 00 00 */ cmpwi r30, 0
+/* 80358184 00353DE4 40 82 00 0C */ bne lbl_80358190
+/* 80358188 00353DE8 38 A0 00 00 */ li r5, 0
+/* 8035818C 00353DEC 48 00 00 38 */ b lbl_803581C4
+lbl_80358190:
+/* 80358190 00353DF0 7F C3 F3 78 */ mr r3, r30
+/* 80358194 00353DF4 4B FE 0D 71 */ bl goastrdup
+/* 80358198 00353DF8 38 80 00 2F */ li r4, 0x2f
+/* 8035819C 00353DFC 7C 65 1B 78 */ mr r5, r3
+/* 803581A0 00353E00 48 00 00 18 */ b lbl_803581B8
+lbl_803581A4:
+/* 803581A4 00353E04 7C C0 07 74 */ extsb r0, r6
+/* 803581A8 00353E08 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803581AC 00353E0C 40 82 00 08 */ bne lbl_803581B4
+/* 803581B0 00353E10 98 83 00 00 */ stb r4, 0(r3)
+lbl_803581B4:
+/* 803581B4 00353E14 38 63 00 01 */ addi r3, r3, 1
+lbl_803581B8:
+/* 803581B8 00353E18 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803581BC 00353E1C 7C C0 07 75 */ extsb. r0, r6
+/* 803581C0 00353E20 40 82 FF E4 */ bne lbl_803581A4
+lbl_803581C4:
+/* 803581C4 00353E24 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_803581C8:
+/* 803581C8 00353E28 2C 1F 00 00 */ cmpwi r31, 0
+/* 803581CC 00353E2C 40 82 00 0C */ bne lbl_803581D8
+/* 803581D0 00353E30 38 60 00 00 */ li r3, 0
+/* 803581D4 00353E34 48 00 01 74 */ b lbl_80358348
+lbl_803581D8:
+/* 803581D8 00353E38 80 1F 00 04 */ lwz r0, 4(r31)
+/* 803581DC 00353E3C 2C 00 00 02 */ cmpwi r0, 2
+/* 803581E0 00353E40 40 82 00 0C */ bne lbl_803581EC
+/* 803581E4 00353E44 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 803581E8 00353E48 48 00 01 60 */ b lbl_80358348
+lbl_803581EC:
+/* 803581EC 00353E4C 38 7F 00 10 */ addi r3, r31, 0x10
+/* 803581F0 00353E50 48 00 01 58 */ b lbl_80358348
+lbl_803581F4:
+/* 803581F4 00353E54 2C 00 00 01 */ cmpwi r0, 1
+/* 803581F8 00353E58 40 82 01 30 */ bne lbl_80358328
+/* 803581FC 00353E5C 40 86 00 0C */ bne cr1, lbl_80358208
+/* 80358200 00353E60 38 C0 00 00 */ li r6, 0
+/* 80358204 00353E64 48 00 00 18 */ b lbl_8035821C
+lbl_80358208:
+/* 80358208 00353E68 2C 00 00 02 */ cmpwi r0, 2
+/* 8035820C 00353E6C 40 82 00 0C */ bne lbl_80358218
+/* 80358210 00353E70 80 C3 00 10 */ lwz r6, 0x10(r3)
+/* 80358214 00353E74 48 00 00 08 */ b lbl_8035821C
+lbl_80358218:
+/* 80358218 00353E78 38 C3 00 10 */ addi r6, r3, 0x10
+lbl_8035821C:
+/* 8035821C 00353E7C 80 83 00 08 */ lwz r4, 8(r3)
+/* 80358220 00353E80 3C A0 43 30 */ lis r5, 0x4330
+/* 80358224 00353E84 90 A1 00 20 */ stw r5, 0x20(r1)
+/* 80358228 00353E88 3B CD B1 00 */ addi r30, r13, lbl_806403C0-_SDA_BASE_
+/* 8035822C 00353E8C 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 80358230 00353E90 C8 62 A4 E0 */ lfd f3, lbl_80642AE0-_SDA2_BASE_(r2)
+/* 80358234 00353E94 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80358238 00353E98 38 84 00 01 */ addi r4, r4, 1
+/* 8035823C 00353E9C 6C 80 80 00 */ xoris r0, r4, 0x8000
+/* 80358240 00353EA0 C8 06 00 00 */ lfd f0, 0(r6)
+/* 80358244 00353EA4 C8 21 00 20 */ lfd f1, 0x20(r1)
+/* 80358248 00353EA8 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8035824C 00353EAC FC 41 18 28 */ fsub f2, f1, f3
+/* 80358250 00353EB0 C8 3D 00 00 */ lfd f1, 0(r29)
+/* 80358254 00353EB4 90 A1 00 28 */ stw r5, 0x28(r1)
+/* 80358258 00353EB8 FC 42 00 32 */ fmul f2, f2, f0
+/* 8035825C 00353EBC C8 01 00 28 */ lfd f0, 0x28(r1)
+/* 80358260 00353EC0 90 83 00 08 */ stw r4, 8(r3)
+/* 80358264 00353EC4 FC 00 18 28 */ fsub f0, f0, f3
+/* 80358268 00353EC8 FC 21 10 2A */ fadd f1, f1, f2
+/* 8035826C 00353ECC FC 01 00 24 */ fdiv f0, f1, f0
+/* 80358270 00353ED0 D8 0D B1 00 */ stfd f0, lbl_806403C0-_SDA_BASE_(r13)
+/* 80358274 00353ED4 80 03 00 04 */ lwz r0, 4(r3)
+/* 80358278 00353ED8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035827C 00353EDC 40 82 00 10 */ bne lbl_8035828C
+/* 80358280 00353EE0 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80358284 00353EE4 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80358288 00353EE8 48 00 00 74 */ b lbl_803582FC
+lbl_8035828C:
+/* 8035828C 00353EEC 2C 00 00 01 */ cmpwi r0, 1
+/* 80358290 00353EF0 40 82 00 0C */ bne lbl_8035829C
+/* 80358294 00353EF4 D8 03 00 10 */ stfd f0, 0x10(r3)
+/* 80358298 00353EF8 48 00 00 64 */ b lbl_803582FC
+lbl_8035829C:
+/* 8035829C 00353EFC 2C 00 00 02 */ cmpwi r0, 2
+/* 803582A0 00353F00 40 82 00 5C */ bne lbl_803582FC
+/* 803582A4 00353F04 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 803582A8 00353F08 2C 03 00 00 */ cmpwi r3, 0
+/* 803582AC 00353F0C 41 82 00 08 */ beq lbl_803582B4
+/* 803582B0 00353F10 4B FE 10 89 */ bl gsifree
+lbl_803582B4:
+/* 803582B4 00353F14 2C 1E 00 00 */ cmpwi r30, 0
+/* 803582B8 00353F18 40 82 00 0C */ bne lbl_803582C4
+/* 803582BC 00353F1C 38 A0 00 00 */ li r5, 0
+/* 803582C0 00353F20 48 00 00 38 */ b lbl_803582F8
+lbl_803582C4:
+/* 803582C4 00353F24 7F C3 F3 78 */ mr r3, r30
+/* 803582C8 00353F28 4B FE 0C 3D */ bl goastrdup
+/* 803582CC 00353F2C 38 80 00 2F */ li r4, 0x2f
+/* 803582D0 00353F30 7C 65 1B 78 */ mr r5, r3
+/* 803582D4 00353F34 48 00 00 18 */ b lbl_803582EC
+lbl_803582D8:
+/* 803582D8 00353F38 7C C0 07 74 */ extsb r0, r6
+/* 803582DC 00353F3C 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803582E0 00353F40 40 82 00 08 */ bne lbl_803582E8
+/* 803582E4 00353F44 98 83 00 00 */ stb r4, 0(r3)
+lbl_803582E8:
+/* 803582E8 00353F48 38 63 00 01 */ addi r3, r3, 1
+lbl_803582EC:
+/* 803582EC 00353F4C 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803582F0 00353F50 7C C0 07 75 */ extsb. r0, r6
+/* 803582F4 00353F54 40 82 FF E4 */ bne lbl_803582D8
+lbl_803582F8:
+/* 803582F8 00353F58 90 BF 00 10 */ stw r5, 0x10(r31)
+lbl_803582FC:
+/* 803582FC 00353F5C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80358300 00353F60 40 82 00 0C */ bne lbl_8035830C
+/* 80358304 00353F64 38 60 00 00 */ li r3, 0
+/* 80358308 00353F68 48 00 00 40 */ b lbl_80358348
+lbl_8035830C:
+/* 8035830C 00353F6C 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80358310 00353F70 2C 00 00 02 */ cmpwi r0, 2
+/* 80358314 00353F74 40 82 00 0C */ bne lbl_80358320
+/* 80358318 00353F78 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8035831C 00353F7C 48 00 00 2C */ b lbl_80358348
+lbl_80358320:
+/* 80358320 00353F80 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80358324 00353F84 48 00 00 24 */ b lbl_80358348
+lbl_80358328:
+/* 80358328 00353F88 40 86 00 0C */ bne cr1, lbl_80358334
+/* 8035832C 00353F8C 38 60 00 00 */ li r3, 0
+/* 80358330 00353F90 48 00 00 18 */ b lbl_80358348
+lbl_80358334:
+/* 80358334 00353F94 2C 00 00 02 */ cmpwi r0, 2
+/* 80358338 00353F98 40 82 00 0C */ bne lbl_80358344
+/* 8035833C 00353F9C 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80358340 00353FA0 48 00 00 08 */ b lbl_80358348
+lbl_80358344:
+/* 80358344 00353FA4 38 63 00 10 */ addi r3, r3, 0x10
+lbl_80358348:
+/* 80358348 00353FA8 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8035834C 00353FAC 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 80358350 00353FB0 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 80358354 00353FB4 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 80358358 00353FB8 7C 08 03 A6 */ mtlr r0
+/* 8035835C 00353FBC 38 21 00 40 */ addi r1, r1, 0x40
+/* 80358360 00353FC0 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpBuffer.s b/asm/SDK/DWC/gamespy/ghttpBuffer.s new file mode 100644 index 0000000..ed19e2d --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpBuffer.s @@ -0,0 +1,751 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghiResizeBuffer
+ghiResizeBuffer:
+/* 803507F4 0034C454 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803507F8 0034C458 7C 08 02 A6 */ mflr r0
+/* 803507FC 0034C45C 2C 03 00 00 */ cmpwi r3, 0
+/* 80350800 0034C460 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80350804 0034C464 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80350808 0034C468 93 C1 00 08 */ stw r30, 8(r1)
+/* 8035080C 0034C46C 7C 7E 1B 78 */ mr r30, r3
+/* 80350810 0034C470 40 82 00 0C */ bne lbl_8035081C
+/* 80350814 0034C474 38 60 00 00 */ li r3, 0
+/* 80350818 0034C478 48 00 00 44 */ b lbl_8035085C
+lbl_8035081C:
+/* 8035081C 0034C47C 2C 04 00 00 */ cmpwi r4, 0
+/* 80350820 0034C480 41 81 00 0C */ bgt lbl_8035082C
+/* 80350824 0034C484 38 60 00 00 */ li r3, 0
+/* 80350828 0034C488 48 00 00 34 */ b lbl_8035085C
+lbl_8035082C:
+/* 8035082C 0034C48C 80 03 00 08 */ lwz r0, 8(r3)
+/* 80350830 0034C490 80 63 00 04 */ lwz r3, 4(r3)
+/* 80350834 0034C494 7F E0 22 14 */ add r31, r0, r4
+/* 80350838 0034C498 7F E4 FB 78 */ mr r4, r31
+/* 8035083C 0034C49C 4B FE 8A E9 */ bl gsirealloc
+/* 80350840 0034C4A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80350844 0034C4A4 40 82 00 0C */ bne lbl_80350850
+/* 80350848 0034C4A8 38 60 00 00 */ li r3, 0
+/* 8035084C 0034C4AC 48 00 00 10 */ b lbl_8035085C
+lbl_80350850:
+/* 80350850 0034C4B0 90 7E 00 04 */ stw r3, 4(r30)
+/* 80350854 0034C4B4 38 60 00 01 */ li r3, 1
+/* 80350858 0034C4B8 93 FE 00 08 */ stw r31, 8(r30)
+lbl_8035085C:
+/* 8035085C 0034C4BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80350860 0034C4C0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80350864 0034C4C4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80350868 0034C4C8 7C 08 03 A6 */ mtlr r0
+/* 8035086C 0034C4CC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80350870 0034C4D0 4E 80 00 20 */ blr
+
+.global ghiInitBuffer
+ghiInitBuffer:
+/* 80350874 0034C4D4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80350878 0034C4D8 7C 08 02 A6 */ mflr r0
+/* 8035087C 0034C4DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80350880 0034C4E0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80350884 0034C4E4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80350888 0034C4E8 7C BF 2B 78 */ mr r31, r5
+/* 8035088C 0034C4EC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80350890 0034C4F0 7C 9E 23 78 */ mr r30, r4
+/* 80350894 0034C4F4 40 82 00 0C */ bne lbl_803508A0
+/* 80350898 0034C4F8 38 60 00 00 */ li r3, 0
+/* 8035089C 0034C4FC 48 00 00 BC */ b lbl_80350958
+lbl_803508A0:
+/* 803508A0 0034C500 2F 04 00 00 */ cmpwi cr6, r4, 0
+/* 803508A4 0034C504 40 9A 00 0C */ bne cr6, lbl_803508B0
+/* 803508A8 0034C508 38 60 00 00 */ li r3, 0
+/* 803508AC 0034C50C 48 00 00 AC */ b lbl_80350958
+lbl_803508B0:
+/* 803508B0 0034C510 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 803508B4 0034C514 41 85 00 0C */ bgt cr1, lbl_803508C0
+/* 803508B8 0034C518 38 60 00 00 */ li r3, 0
+/* 803508BC 0034C51C 48 00 00 9C */ b lbl_80350958
+lbl_803508C0:
+/* 803508C0 0034C520 2C 06 00 00 */ cmpwi r6, 0
+/* 803508C4 0034C524 41 81 00 0C */ bgt lbl_803508D0
+/* 803508C8 0034C528 38 60 00 00 */ li r3, 0
+/* 803508CC 0034C52C 48 00 00 8C */ b lbl_80350958
+lbl_803508D0:
+/* 803508D0 0034C530 38 00 00 00 */ li r0, 0
+/* 803508D4 0034C534 90 64 00 00 */ stw r3, 0(r4)
+/* 803508D8 0034C538 90 04 00 04 */ stw r0, 4(r4)
+/* 803508DC 0034C53C 90 04 00 08 */ stw r0, 8(r4)
+/* 803508E0 0034C540 90 04 00 0C */ stw r0, 0xc(r4)
+/* 803508E4 0034C544 90 04 00 10 */ stw r0, 0x10(r4)
+/* 803508E8 0034C548 90 C4 00 14 */ stw r6, 0x14(r4)
+/* 803508EC 0034C54C 90 04 00 18 */ stw r0, 0x18(r4)
+/* 803508F0 0034C550 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803508F4 0034C554 90 04 00 20 */ stw r0, 0x20(r4)
+/* 803508F8 0034C558 40 9A 00 0C */ bne cr6, lbl_80350904
+/* 803508FC 0034C55C 38 00 00 00 */ li r0, 0
+/* 80350900 0034C560 48 00 00 38 */ b lbl_80350938
+lbl_80350904:
+/* 80350904 0034C564 41 85 00 0C */ bgt cr1, lbl_80350910
+/* 80350908 0034C568 38 00 00 00 */ li r0, 0
+/* 8035090C 0034C56C 48 00 00 2C */ b lbl_80350938
+lbl_80350910:
+/* 80350910 0034C570 7F E4 FB 78 */ mr r4, r31
+/* 80350914 0034C574 38 60 00 00 */ li r3, 0
+/* 80350918 0034C578 4B FE 8A 0D */ bl gsirealloc
+/* 8035091C 0034C57C 2C 03 00 00 */ cmpwi r3, 0
+/* 80350920 0034C580 40 82 00 0C */ bne lbl_8035092C
+/* 80350924 0034C584 38 00 00 00 */ li r0, 0
+/* 80350928 0034C588 48 00 00 10 */ b lbl_80350938
+lbl_8035092C:
+/* 8035092C 0034C58C 90 7E 00 04 */ stw r3, 4(r30)
+/* 80350930 0034C590 38 00 00 01 */ li r0, 1
+/* 80350934 0034C594 93 FE 00 08 */ stw r31, 8(r30)
+lbl_80350938:
+/* 80350938 0034C598 2C 00 00 00 */ cmpwi r0, 0
+/* 8035093C 0034C59C 40 82 00 0C */ bne lbl_80350948
+/* 80350940 0034C5A0 38 60 00 00 */ li r3, 0
+/* 80350944 0034C5A4 48 00 00 14 */ b lbl_80350958
+lbl_80350948:
+/* 80350948 0034C5A8 80 9E 00 04 */ lwz r4, 4(r30)
+/* 8035094C 0034C5AC 38 00 00 00 */ li r0, 0
+/* 80350950 0034C5B0 38 60 00 01 */ li r3, 1
+/* 80350954 0034C5B4 98 04 00 00 */ stb r0, 0(r4)
+lbl_80350958:
+/* 80350958 0034C5B8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035095C 0034C5BC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80350960 0034C5C0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80350964 0034C5C4 7C 08 03 A6 */ mtlr r0
+/* 80350968 0034C5C8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035096C 0034C5CC 4E 80 00 20 */ blr
+
+.global ghiInitFixedBuffer
+ghiInitFixedBuffer:
+/* 80350970 0034C5D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80350974 0034C5D4 40 82 00 0C */ bne lbl_80350980
+/* 80350978 0034C5D8 38 60 00 00 */ li r3, 0
+/* 8035097C 0034C5DC 4E 80 00 20 */ blr
+lbl_80350980:
+/* 80350980 0034C5E0 2C 04 00 00 */ cmpwi r4, 0
+/* 80350984 0034C5E4 40 82 00 0C */ bne lbl_80350990
+/* 80350988 0034C5E8 38 60 00 00 */ li r3, 0
+/* 8035098C 0034C5EC 4E 80 00 20 */ blr
+lbl_80350990:
+/* 80350990 0034C5F0 2C 05 00 00 */ cmpwi r5, 0
+/* 80350994 0034C5F4 40 82 00 0C */ bne lbl_803509A0
+/* 80350998 0034C5F8 38 60 00 00 */ li r3, 0
+/* 8035099C 0034C5FC 4E 80 00 20 */ blr
+lbl_803509A0:
+/* 803509A0 0034C600 2C 06 00 00 */ cmpwi r6, 0
+/* 803509A4 0034C604 41 81 00 0C */ bgt lbl_803509B0
+/* 803509A8 0034C608 38 60 00 00 */ li r3, 0
+/* 803509AC 0034C60C 4E 80 00 20 */ blr
+lbl_803509B0:
+/* 803509B0 0034C610 38 E0 00 00 */ li r7, 0
+/* 803509B4 0034C614 38 00 00 01 */ li r0, 1
+/* 803509B8 0034C618 90 64 00 00 */ stw r3, 0(r4)
+/* 803509BC 0034C61C 38 60 00 01 */ li r3, 1
+/* 803509C0 0034C620 90 A4 00 04 */ stw r5, 4(r4)
+/* 803509C4 0034C624 90 C4 00 08 */ stw r6, 8(r4)
+/* 803509C8 0034C628 90 E4 00 0C */ stw r7, 0xc(r4)
+/* 803509CC 0034C62C 90 E4 00 10 */ stw r7, 0x10(r4)
+/* 803509D0 0034C630 90 E4 00 14 */ stw r7, 0x14(r4)
+/* 803509D4 0034C634 90 04 00 18 */ stw r0, 0x18(r4)
+/* 803509D8 0034C638 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 803509DC 0034C63C 90 E4 00 20 */ stw r7, 0x20(r4)
+/* 803509E0 0034C640 98 E5 00 00 */ stb r7, 0(r5)
+/* 803509E4 0034C644 4E 80 00 20 */ blr
+
+.global ghiInitReadOnlyBuffer
+ghiInitReadOnlyBuffer:
+/* 803509E8 0034C648 2C 03 00 00 */ cmpwi r3, 0
+/* 803509EC 0034C64C 40 82 00 0C */ bne lbl_803509F8
+/* 803509F0 0034C650 38 60 00 00 */ li r3, 0
+/* 803509F4 0034C654 4E 80 00 20 */ blr
+lbl_803509F8:
+/* 803509F8 0034C658 2C 04 00 00 */ cmpwi r4, 0
+/* 803509FC 0034C65C 40 82 00 0C */ bne lbl_80350A08
+/* 80350A00 0034C660 38 60 00 00 */ li r3, 0
+/* 80350A04 0034C664 4E 80 00 20 */ blr
+lbl_80350A08:
+/* 80350A08 0034C668 2C 05 00 00 */ cmpwi r5, 0
+/* 80350A0C 0034C66C 40 82 00 0C */ bne lbl_80350A18
+/* 80350A10 0034C670 38 60 00 00 */ li r3, 0
+/* 80350A14 0034C674 4E 80 00 20 */ blr
+lbl_80350A18:
+/* 80350A18 0034C678 2C 06 00 00 */ cmpwi r6, 0
+/* 80350A1C 0034C67C 41 81 00 0C */ bgt lbl_80350A28
+/* 80350A20 0034C680 38 60 00 00 */ li r3, 0
+/* 80350A24 0034C684 4E 80 00 20 */ blr
+lbl_80350A28:
+/* 80350A28 0034C688 38 00 00 01 */ li r0, 1
+/* 80350A2C 0034C68C 38 E0 00 00 */ li r7, 0
+/* 80350A30 0034C690 90 64 00 00 */ stw r3, 0(r4)
+/* 80350A34 0034C694 38 60 00 01 */ li r3, 1
+/* 80350A38 0034C698 90 A4 00 04 */ stw r5, 4(r4)
+/* 80350A3C 0034C69C 90 C4 00 08 */ stw r6, 8(r4)
+/* 80350A40 0034C6A0 90 E4 00 10 */ stw r7, 0x10(r4)
+/* 80350A44 0034C6A4 90 E4 00 14 */ stw r7, 0x14(r4)
+/* 80350A48 0034C6A8 90 04 00 18 */ stw r0, 0x18(r4)
+/* 80350A4C 0034C6AC 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80350A50 0034C6B0 90 04 00 20 */ stw r0, 0x20(r4)
+/* 80350A54 0034C6B4 90 C4 00 0C */ stw r6, 0xc(r4)
+/* 80350A58 0034C6B8 4E 80 00 20 */ blr
+
+.global ghiFreeBuffer
+ghiFreeBuffer:
+/* 80350A5C 0034C6BC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80350A60 0034C6C0 7C 08 02 A6 */ mflr r0
+/* 80350A64 0034C6C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80350A68 0034C6C8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80350A6C 0034C6CC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80350A70 0034C6D0 7C 7F 1B 78 */ mr r31, r3
+/* 80350A74 0034C6D4 41 82 00 34 */ beq lbl_80350AA8
+/* 80350A78 0034C6D8 80 83 00 04 */ lwz r4, 4(r3)
+/* 80350A7C 0034C6DC 2C 04 00 00 */ cmpwi r4, 0
+/* 80350A80 0034C6E0 41 82 00 28 */ beq lbl_80350AA8
+/* 80350A84 0034C6E4 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80350A88 0034C6E8 2C 00 00 00 */ cmpwi r0, 0
+/* 80350A8C 0034C6EC 40 82 00 0C */ bne lbl_80350A98
+/* 80350A90 0034C6F0 7C 83 23 78 */ mr r3, r4
+/* 80350A94 0034C6F4 4B FE 88 A5 */ bl gsifree
+lbl_80350A98:
+/* 80350A98 0034C6F8 7F E3 FB 78 */ mr r3, r31
+/* 80350A9C 0034C6FC 38 80 00 00 */ li r4, 0
+/* 80350AA0 0034C700 38 A0 00 24 */ li r5, 0x24
+/* 80350AA4 0034C704 4B CB 36 61 */ bl memset
+lbl_80350AA8:
+/* 80350AA8 0034C708 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80350AAC 0034C70C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80350AB0 0034C710 7C 08 03 A6 */ mtlr r0
+/* 80350AB4 0034C714 38 21 00 10 */ addi r1, r1, 0x10
+/* 80350AB8 0034C718 4E 80 00 20 */ blr
+
+.global ghiAppendDataToBuffer
+ghiAppendDataToBuffer:
+/* 80350ABC 0034C71C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80350AC0 0034C720 7C 08 02 A6 */ mflr r0
+/* 80350AC4 0034C724 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80350AC8 0034C728 39 61 00 20 */ addi r11, r1, 0x20
+/* 80350ACC 0034C72C 4B E7 66 5D */ bl _savegpr_27
+/* 80350AD0 0034C730 2C 03 00 00 */ cmpwi r3, 0
+/* 80350AD4 0034C734 7C 7F 1B 78 */ mr r31, r3
+/* 80350AD8 0034C738 7C 9B 23 78 */ mr r27, r4
+/* 80350ADC 0034C73C 7C BC 2B 78 */ mr r28, r5
+/* 80350AE0 0034C740 40 82 00 0C */ bne lbl_80350AEC
+/* 80350AE4 0034C744 38 60 00 00 */ li r3, 0
+/* 80350AE8 0034C748 48 00 01 2C */ b lbl_80350C14
+lbl_80350AEC:
+/* 80350AEC 0034C74C 2C 04 00 00 */ cmpwi r4, 0
+/* 80350AF0 0034C750 40 82 00 0C */ bne lbl_80350AFC
+/* 80350AF4 0034C754 38 60 00 00 */ li r3, 0
+/* 80350AF8 0034C758 48 00 01 1C */ b lbl_80350C14
+lbl_80350AFC:
+/* 80350AFC 0034C75C 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 80350B00 0034C760 40 84 00 0C */ bge cr1, lbl_80350B0C
+/* 80350B04 0034C764 38 60 00 00 */ li r3, 0
+/* 80350B08 0034C768 48 00 01 0C */ b lbl_80350C14
+lbl_80350B0C:
+/* 80350B0C 0034C76C 80 03 00 20 */ lwz r0, 0x20(r3)
+/* 80350B10 0034C770 2C 00 00 00 */ cmpwi r0, 0
+/* 80350B14 0034C774 41 82 00 0C */ beq lbl_80350B20
+/* 80350B18 0034C778 38 60 00 00 */ li r3, 0
+/* 80350B1C 0034C77C 48 00 00 F8 */ b lbl_80350C14
+lbl_80350B20:
+/* 80350B20 0034C780 40 86 00 10 */ bne cr1, lbl_80350B30
+/* 80350B24 0034C784 7F 63 DB 78 */ mr r3, r27
+/* 80350B28 0034C788 4B E7 60 3D */ bl strlen
+/* 80350B2C 0034C78C 7C 7C 1B 78 */ mr r28, r3
+lbl_80350B30:
+/* 80350B30 0034C790 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80350B34 0034C794 7F A0 E2 14 */ add r29, r0, r28
+/* 80350B38 0034C798 48 00 00 A4 */ b lbl_80350BDC
+lbl_80350B3C:
+/* 80350B3C 0034C79C 80 1F 00 18 */ lwz r0, 0x18(r31)
+/* 80350B40 0034C7A0 2C 00 00 00 */ cmpwi r0, 0
+/* 80350B44 0034C7A4 41 82 00 24 */ beq lbl_80350B68
+/* 80350B48 0034C7A8 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80350B4C 0034C7AC 38 A0 00 01 */ li r5, 1
+/* 80350B50 0034C7B0 38 00 00 02 */ li r0, 2
+/* 80350B54 0034C7B4 38 60 00 00 */ li r3, 0
+/* 80350B58 0034C7B8 90 A4 01 20 */ stw r5, 0x120(r4)
+/* 80350B5C 0034C7BC 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80350B60 0034C7C0 90 04 00 3C */ stw r0, 0x3c(r4)
+/* 80350B64 0034C7C4 48 00 00 B0 */ b lbl_80350C14
+lbl_80350B68:
+/* 80350B68 0034C7C8 2C 1F 00 00 */ cmpwi r31, 0
+/* 80350B6C 0034C7CC 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 80350B70 0034C7D0 40 82 00 0C */ bne lbl_80350B7C
+/* 80350B74 0034C7D4 38 00 00 00 */ li r0, 0
+/* 80350B78 0034C7D8 48 00 00 40 */ b lbl_80350BB8
+lbl_80350B7C:
+/* 80350B7C 0034C7DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80350B80 0034C7E0 41 81 00 0C */ bgt lbl_80350B8C
+/* 80350B84 0034C7E4 38 00 00 00 */ li r0, 0
+/* 80350B88 0034C7E8 48 00 00 30 */ b lbl_80350BB8
+lbl_80350B8C:
+/* 80350B8C 0034C7EC 7F C3 02 14 */ add r30, r3, r0
+/* 80350B90 0034C7F0 80 7F 00 04 */ lwz r3, 4(r31)
+/* 80350B94 0034C7F4 7F C4 F3 78 */ mr r4, r30
+/* 80350B98 0034C7F8 4B FE 87 8D */ bl gsirealloc
+/* 80350B9C 0034C7FC 2C 03 00 00 */ cmpwi r3, 0
+/* 80350BA0 0034C800 40 82 00 0C */ bne lbl_80350BAC
+/* 80350BA4 0034C804 38 00 00 00 */ li r0, 0
+/* 80350BA8 0034C808 48 00 00 10 */ b lbl_80350BB8
+lbl_80350BAC:
+/* 80350BAC 0034C80C 90 7F 00 04 */ stw r3, 4(r31)
+/* 80350BB0 0034C810 38 00 00 01 */ li r0, 1
+/* 80350BB4 0034C814 93 DF 00 08 */ stw r30, 8(r31)
+lbl_80350BB8:
+/* 80350BB8 0034C818 2C 00 00 00 */ cmpwi r0, 0
+/* 80350BBC 0034C81C 40 82 00 20 */ bne lbl_80350BDC
+/* 80350BC0 0034C820 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80350BC4 0034C824 38 00 00 01 */ li r0, 1
+/* 80350BC8 0034C828 38 60 00 00 */ li r3, 0
+/* 80350BCC 0034C82C 90 04 01 20 */ stw r0, 0x120(r4)
+/* 80350BD0 0034C830 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80350BD4 0034C834 90 04 00 3C */ stw r0, 0x3c(r4)
+/* 80350BD8 0034C838 48 00 00 3C */ b lbl_80350C14
+lbl_80350BDC:
+/* 80350BDC 0034C83C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80350BE0 0034C840 7C 1D 18 00 */ cmpw r29, r3
+/* 80350BE4 0034C844 40 80 FF 58 */ bge lbl_80350B3C
+/* 80350BE8 0034C848 80 7F 00 04 */ lwz r3, 4(r31)
+/* 80350BEC 0034C84C 7F 64 DB 78 */ mr r4, r27
+/* 80350BF0 0034C850 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80350BF4 0034C854 7F 85 E3 78 */ mr r5, r28
+/* 80350BF8 0034C858 7C 63 02 14 */ add r3, r3, r0
+/* 80350BFC 0034C85C 4B CB 34 05 */ bl memcpy
+/* 80350C00 0034C860 93 BF 00 0C */ stw r29, 0xc(r31)
+/* 80350C04 0034C864 38 00 00 00 */ li r0, 0
+/* 80350C08 0034C868 80 9F 00 04 */ lwz r4, 4(r31)
+/* 80350C0C 0034C86C 38 60 00 01 */ li r3, 1
+/* 80350C10 0034C870 7C 04 E9 AE */ stbx r0, r4, r29
+lbl_80350C14:
+/* 80350C14 0034C874 39 61 00 20 */ addi r11, r1, 0x20
+/* 80350C18 0034C878 4B E7 65 5D */ bl _restgpr_27
+/* 80350C1C 0034C87C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80350C20 0034C880 7C 08 03 A6 */ mtlr r0
+/* 80350C24 0034C884 38 21 00 20 */ addi r1, r1, 0x20
+/* 80350C28 0034C888 4E 80 00 20 */ blr
+
+.global ghiEncryptDataToBuffer
+ghiEncryptDataToBuffer:
+/* 80350C2C 0034C88C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80350C30 0034C890 7C 08 02 A6 */ mflr r0
+/* 80350C34 0034C894 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80350C38 0034C898 39 61 00 30 */ addi r11, r1, 0x30
+/* 80350C3C 0034C89C 4B E7 64 ED */ bl _savegpr_27
+/* 80350C40 0034C8A0 38 00 00 00 */ li r0, 0
+/* 80350C44 0034C8A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80350C48 0034C8A8 90 01 00 08 */ stw r0, 8(r1)
+/* 80350C4C 0034C8AC 7C 7C 1B 78 */ mr r28, r3
+/* 80350C50 0034C8B0 7C 9D 23 78 */ mr r29, r4
+/* 80350C54 0034C8B4 7C BE 2B 78 */ mr r30, r5
+/* 80350C58 0034C8B8 3B E0 00 00 */ li r31, 0
+/* 80350C5C 0034C8BC 40 82 00 0C */ bne lbl_80350C68
+/* 80350C60 0034C8C0 38 60 00 00 */ li r3, 0
+/* 80350C64 0034C8C4 48 00 01 88 */ b lbl_80350DEC
+lbl_80350C68:
+/* 80350C68 0034C8C8 2C 04 00 00 */ cmpwi r4, 0
+/* 80350C6C 0034C8CC 40 82 00 0C */ bne lbl_80350C78
+/* 80350C70 0034C8D0 38 60 00 00 */ li r3, 0
+/* 80350C74 0034C8D4 48 00 01 78 */ b lbl_80350DEC
+lbl_80350C78:
+/* 80350C78 0034C8D8 2C 85 00 00 */ cmpwi cr1, r5, 0
+/* 80350C7C 0034C8DC 40 84 00 0C */ bge cr1, lbl_80350C88
+/* 80350C80 0034C8E0 38 60 00 00 */ li r3, 0
+/* 80350C84 0034C8E4 48 00 01 68 */ b lbl_80350DEC
+lbl_80350C88:
+/* 80350C88 0034C8E8 80 03 00 20 */ lwz r0, 0x20(r3)
+/* 80350C8C 0034C8EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80350C90 0034C8F0 41 82 00 0C */ beq lbl_80350C9C
+/* 80350C94 0034C8F4 38 60 00 00 */ li r3, 0
+/* 80350C98 0034C8F8 48 00 01 54 */ b lbl_80350DEC
+lbl_80350C9C:
+/* 80350C9C 0034C8FC 80 63 00 00 */ lwz r3, 0(r3)
+/* 80350CA0 0034C900 80 03 01 94 */ lwz r0, 0x194(r3)
+/* 80350CA4 0034C904 2C 00 00 00 */ cmpwi r0, 0
+/* 80350CA8 0034C908 41 82 00 10 */ beq lbl_80350CB8
+/* 80350CAC 0034C90C 80 03 01 9C */ lwz r0, 0x19c(r3)
+/* 80350CB0 0034C910 2C 00 00 00 */ cmpwi r0, 0
+/* 80350CB4 0034C914 40 82 00 18 */ bne lbl_80350CCC
+lbl_80350CB8:
+/* 80350CB8 0034C918 7F 83 E3 78 */ mr r3, r28
+/* 80350CBC 0034C91C 7F A4 EB 78 */ mr r4, r29
+/* 80350CC0 0034C920 7F C5 F3 78 */ mr r5, r30
+/* 80350CC4 0034C924 4B FF FD F9 */ bl ghiAppendDataToBuffer
+/* 80350CC8 0034C928 48 00 01 24 */ b lbl_80350DEC
+lbl_80350CCC:
+/* 80350CCC 0034C92C 40 86 00 10 */ bne cr1, lbl_80350CDC
+/* 80350CD0 0034C930 7F A3 EB 78 */ mr r3, r29
+/* 80350CD4 0034C934 4B E7 5E 91 */ bl strlen
+/* 80350CD8 0034C938 7C 7E 1B 78 */ mr r30, r3
+lbl_80350CDC:
+/* 80350CDC 0034C93C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80350CE0 0034C940 40 82 00 0C */ bne lbl_80350CEC
+/* 80350CE4 0034C944 38 60 00 01 */ li r3, 1
+/* 80350CE8 0034C948 48 00 01 04 */ b lbl_80350DEC
+lbl_80350CEC:
+/* 80350CEC 0034C94C 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 80350CF0 0034C950 80 1C 00 08 */ lwz r0, 8(r28)
+/* 80350CF4 0034C954 7C 03 00 50 */ subf r0, r3, r0
+/* 80350CF8 0034C958 90 01 00 08 */ stw r0, 8(r1)
+lbl_80350CFC:
+/* 80350CFC 0034C95C 2C 1E 3F 01 */ cmpwi r30, 0x3f01
+/* 80350D00 0034C960 3B 60 3F 01 */ li r27, 0x3f01
+/* 80350D04 0034C964 40 80 00 08 */ bge lbl_80350D0C
+/* 80350D08 0034C968 7F DB F3 78 */ mr r27, r30
+lbl_80350D0C:
+/* 80350D0C 0034C96C 80 7C 00 00 */ lwz r3, 0(r28)
+/* 80350D10 0034C970 7F C6 F3 78 */ mr r6, r30
+/* 80350D14 0034C974 80 FC 00 04 */ lwz r7, 4(r28)
+/* 80350D18 0034C978 7C BD FA 14 */ add r5, r29, r31
+/* 80350D1C 0034C97C 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 80350D20 0034C980 38 83 01 90 */ addi r4, r3, 0x190
+/* 80350D24 0034C984 81 83 01 A8 */ lwz r12, 0x1a8(r3)
+/* 80350D28 0034C988 39 01 00 08 */ addi r8, r1, 8
+/* 80350D2C 0034C98C 7C E7 02 14 */ add r7, r7, r0
+/* 80350D30 0034C990 7D 89 03 A6 */ mtctr r12
+/* 80350D34 0034C994 4E 80 04 21 */ bctrl
+/* 80350D38 0034C998 2C 03 00 02 */ cmpwi r3, 2
+/* 80350D3C 0034C99C 40 82 00 7C */ bne lbl_80350DB8
+/* 80350D40 0034C9A0 2C 1C 00 00 */ cmpwi r28, 0
+/* 80350D44 0034C9A4 80 9C 00 14 */ lwz r4, 0x14(r28)
+/* 80350D48 0034C9A8 40 82 00 0C */ bne lbl_80350D54
+/* 80350D4C 0034C9AC 38 00 00 00 */ li r0, 0
+/* 80350D50 0034C9B0 48 00 00 44 */ b lbl_80350D94
+lbl_80350D54:
+/* 80350D54 0034C9B4 2C 04 00 00 */ cmpwi r4, 0
+/* 80350D58 0034C9B8 41 81 00 0C */ bgt lbl_80350D64
+/* 80350D5C 0034C9BC 38 00 00 00 */ li r0, 0
+/* 80350D60 0034C9C0 48 00 00 34 */ b lbl_80350D94
+lbl_80350D64:
+/* 80350D64 0034C9C4 80 1C 00 08 */ lwz r0, 8(r28)
+/* 80350D68 0034C9C8 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80350D6C 0034C9CC 7F 60 22 14 */ add r27, r0, r4
+/* 80350D70 0034C9D0 7F 64 DB 78 */ mr r4, r27
+/* 80350D74 0034C9D4 4B FE 85 B1 */ bl gsirealloc
+/* 80350D78 0034C9D8 2C 03 00 00 */ cmpwi r3, 0
+/* 80350D7C 0034C9DC 40 82 00 0C */ bne lbl_80350D88
+/* 80350D80 0034C9E0 38 00 00 00 */ li r0, 0
+/* 80350D84 0034C9E4 48 00 00 10 */ b lbl_80350D94
+lbl_80350D88:
+/* 80350D88 0034C9E8 90 7C 00 04 */ stw r3, 4(r28)
+/* 80350D8C 0034C9EC 38 00 00 01 */ li r0, 1
+/* 80350D90 0034C9F0 93 7C 00 08 */ stw r27, 8(r28)
+lbl_80350D94:
+/* 80350D94 0034C9F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80350D98 0034C9F8 40 82 00 0C */ bne lbl_80350DA4
+/* 80350D9C 0034C9FC 38 60 00 00 */ li r3, 0
+/* 80350DA0 0034CA00 48 00 00 4C */ b lbl_80350DEC
+lbl_80350DA4:
+/* 80350DA4 0034CA04 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 80350DA8 0034CA08 80 1C 00 08 */ lwz r0, 8(r28)
+/* 80350DAC 0034CA0C 7C 03 00 50 */ subf r0, r3, r0
+/* 80350DB0 0034CA10 90 01 00 08 */ stw r0, 8(r1)
+/* 80350DB4 0034CA14 48 00 00 2C */ b lbl_80350DE0
+lbl_80350DB8:
+/* 80350DB8 0034CA18 2C 03 00 01 */ cmpwi r3, 1
+/* 80350DBC 0034CA1C 40 82 00 1C */ bne lbl_80350DD8
+/* 80350DC0 0034CA20 80 61 00 08 */ lwz r3, 8(r1)
+/* 80350DC4 0034CA24 7F FF DA 14 */ add r31, r31, r27
+/* 80350DC8 0034CA28 80 1C 00 08 */ lwz r0, 8(r28)
+/* 80350DCC 0034CA2C 7C 03 00 50 */ subf r0, r3, r0
+/* 80350DD0 0034CA30 90 1C 00 0C */ stw r0, 0xc(r28)
+/* 80350DD4 0034CA34 48 00 00 0C */ b lbl_80350DE0
+lbl_80350DD8:
+/* 80350DD8 0034CA38 38 60 00 00 */ li r3, 0
+/* 80350DDC 0034CA3C 48 00 00 10 */ b lbl_80350DEC
+lbl_80350DE0:
+/* 80350DE0 0034CA40 7C 1F F0 00 */ cmpw r31, r30
+/* 80350DE4 0034CA44 41 80 FF 18 */ blt lbl_80350CFC
+/* 80350DE8 0034CA48 38 60 00 01 */ li r3, 1
+lbl_80350DEC:
+/* 80350DEC 0034CA4C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80350DF0 0034CA50 4B E7 63 85 */ bl _restgpr_27
+/* 80350DF4 0034CA54 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80350DF8 0034CA58 7C 08 03 A6 */ mtlr r0
+/* 80350DFC 0034CA5C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80350E00 0034CA60 4E 80 00 20 */ blr
+
+.global ghiAppendHeaderToBuffer
+ghiAppendHeaderToBuffer:
+/* 80350E04 0034CA64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80350E08 0034CA68 7C 08 02 A6 */ mflr r0
+/* 80350E0C 0034CA6C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80350E10 0034CA70 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80350E14 0034CA74 7C BF 2B 78 */ mr r31, r5
+/* 80350E18 0034CA78 38 A0 00 00 */ li r5, 0
+/* 80350E1C 0034CA7C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80350E20 0034CA80 7C 7E 1B 78 */ mr r30, r3
+/* 80350E24 0034CA84 4B FF FC 99 */ bl ghiAppendDataToBuffer
+/* 80350E28 0034CA88 2C 03 00 00 */ cmpwi r3, 0
+/* 80350E2C 0034CA8C 40 82 00 0C */ bne lbl_80350E38
+/* 80350E30 0034CA90 38 60 00 00 */ li r3, 0
+/* 80350E34 0034CA94 48 00 00 60 */ b lbl_80350E94
+lbl_80350E38:
+/* 80350E38 0034CA98 7F C3 F3 78 */ mr r3, r30
+/* 80350E3C 0034CA9C 38 8D 93 80 */ addi r4, r13, lbl_8063E640-_SDA_BASE_
+/* 80350E40 0034CAA0 38 A0 00 02 */ li r5, 2
+/* 80350E44 0034CAA4 4B FF FC 79 */ bl ghiAppendDataToBuffer
+/* 80350E48 0034CAA8 2C 03 00 00 */ cmpwi r3, 0
+/* 80350E4C 0034CAAC 40 82 00 0C */ bne lbl_80350E58
+/* 80350E50 0034CAB0 38 60 00 00 */ li r3, 0
+/* 80350E54 0034CAB4 48 00 00 40 */ b lbl_80350E94
+lbl_80350E58:
+/* 80350E58 0034CAB8 7F C3 F3 78 */ mr r3, r30
+/* 80350E5C 0034CABC 7F E4 FB 78 */ mr r4, r31
+/* 80350E60 0034CAC0 38 A0 00 00 */ li r5, 0
+/* 80350E64 0034CAC4 4B FF FC 59 */ bl ghiAppendDataToBuffer
+/* 80350E68 0034CAC8 2C 03 00 00 */ cmpwi r3, 0
+/* 80350E6C 0034CACC 40 82 00 0C */ bne lbl_80350E78
+/* 80350E70 0034CAD0 38 60 00 00 */ li r3, 0
+/* 80350E74 0034CAD4 48 00 00 20 */ b lbl_80350E94
+lbl_80350E78:
+/* 80350E78 0034CAD8 7F C3 F3 78 */ mr r3, r30
+/* 80350E7C 0034CADC 38 8D 93 84 */ addi r4, r13, lbl_8063E644-_SDA_BASE_
+/* 80350E80 0034CAE0 38 A0 00 02 */ li r5, 2
+/* 80350E84 0034CAE4 4B FF FC 39 */ bl ghiAppendDataToBuffer
+/* 80350E88 0034CAE8 7C 03 00 D0 */ neg r0, r3
+/* 80350E8C 0034CAEC 7C 00 1B 78 */ or r0, r0, r3
+/* 80350E90 0034CAF0 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_80350E94:
+/* 80350E94 0034CAF4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80350E98 0034CAF8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80350E9C 0034CAFC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80350EA0 0034CB00 7C 08 03 A6 */ mtlr r0
+/* 80350EA4 0034CB04 38 21 00 10 */ addi r1, r1, 0x10
+/* 80350EA8 0034CB08 4E 80 00 20 */ blr
+
+.global ghiAppendCharToBuffer
+ghiAppendCharToBuffer:
+/* 80350EAC 0034CB0C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80350EB0 0034CB10 7C 08 02 A6 */ mflr r0
+/* 80350EB4 0034CB14 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80350EB8 0034CB18 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80350EBC 0034CB1C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80350EC0 0034CB20 7C 7F 1B 78 */ mr r31, r3
+/* 80350EC4 0034CB24 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80350EC8 0034CB28 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80350ECC 0034CB2C 7C 9D 23 78 */ mr r29, r4
+/* 80350ED0 0034CB30 40 86 00 0C */ bne cr1, lbl_80350EDC
+/* 80350ED4 0034CB34 38 60 00 00 */ li r3, 0
+/* 80350ED8 0034CB38 48 00 00 F0 */ b lbl_80350FC8
+lbl_80350EDC:
+/* 80350EDC 0034CB3C 80 03 00 20 */ lwz r0, 0x20(r3)
+/* 80350EE0 0034CB40 2C 00 00 00 */ cmpwi r0, 0
+/* 80350EE4 0034CB44 41 82 00 0C */ beq lbl_80350EF0
+/* 80350EE8 0034CB48 38 60 00 00 */ li r3, 0
+/* 80350EEC 0034CB4C 48 00 00 DC */ b lbl_80350FC8
+lbl_80350EF0:
+/* 80350EF0 0034CB50 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 80350EF4 0034CB54 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80350EF8 0034CB58 38 04 00 01 */ addi r0, r4, 1
+/* 80350EFC 0034CB5C 7C 00 28 00 */ cmpw r0, r5
+/* 80350F00 0034CB60 41 80 00 A0 */ blt lbl_80350FA0
+/* 80350F04 0034CB64 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 80350F08 0034CB68 2C 00 00 00 */ cmpwi r0, 0
+/* 80350F0C 0034CB6C 41 82 00 24 */ beq lbl_80350F30
+/* 80350F10 0034CB70 80 83 00 00 */ lwz r4, 0(r3)
+/* 80350F14 0034CB74 38 A0 00 01 */ li r5, 1
+/* 80350F18 0034CB78 38 00 00 02 */ li r0, 2
+/* 80350F1C 0034CB7C 90 A4 01 20 */ stw r5, 0x120(r4)
+/* 80350F20 0034CB80 80 83 00 00 */ lwz r4, 0(r3)
+/* 80350F24 0034CB84 38 60 00 00 */ li r3, 0
+/* 80350F28 0034CB88 90 04 00 3C */ stw r0, 0x3c(r4)
+/* 80350F2C 0034CB8C 48 00 00 9C */ b lbl_80350FC8
+lbl_80350F30:
+/* 80350F30 0034CB90 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80350F34 0034CB94 40 86 00 0C */ bne cr1, lbl_80350F40
+/* 80350F38 0034CB98 38 00 00 00 */ li r0, 0
+/* 80350F3C 0034CB9C 48 00 00 40 */ b lbl_80350F7C
+lbl_80350F40:
+/* 80350F40 0034CBA0 2C 00 00 00 */ cmpwi r0, 0
+/* 80350F44 0034CBA4 41 81 00 0C */ bgt lbl_80350F50
+/* 80350F48 0034CBA8 38 00 00 00 */ li r0, 0
+/* 80350F4C 0034CBAC 48 00 00 30 */ b lbl_80350F7C
+lbl_80350F50:
+/* 80350F50 0034CBB0 7F C5 02 14 */ add r30, r5, r0
+/* 80350F54 0034CBB4 80 63 00 04 */ lwz r3, 4(r3)
+/* 80350F58 0034CBB8 7F C4 F3 78 */ mr r4, r30
+/* 80350F5C 0034CBBC 4B FE 83 C9 */ bl gsirealloc
+/* 80350F60 0034CBC0 2C 03 00 00 */ cmpwi r3, 0
+/* 80350F64 0034CBC4 40 82 00 0C */ bne lbl_80350F70
+/* 80350F68 0034CBC8 38 00 00 00 */ li r0, 0
+/* 80350F6C 0034CBCC 48 00 00 10 */ b lbl_80350F7C
+lbl_80350F70:
+/* 80350F70 0034CBD0 90 7F 00 04 */ stw r3, 4(r31)
+/* 80350F74 0034CBD4 38 00 00 01 */ li r0, 1
+/* 80350F78 0034CBD8 93 DF 00 08 */ stw r30, 8(r31)
+lbl_80350F7C:
+/* 80350F7C 0034CBDC 2C 00 00 00 */ cmpwi r0, 0
+/* 80350F80 0034CBE0 40 82 00 20 */ bne lbl_80350FA0
+/* 80350F84 0034CBE4 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80350F88 0034CBE8 38 00 00 01 */ li r0, 1
+/* 80350F8C 0034CBEC 38 60 00 00 */ li r3, 0
+/* 80350F90 0034CBF0 90 04 01 20 */ stw r0, 0x120(r4)
+/* 80350F94 0034CBF4 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80350F98 0034CBF8 90 04 00 3C */ stw r0, 0x3c(r4)
+/* 80350F9C 0034CBFC 48 00 00 2C */ b lbl_80350FC8
+lbl_80350FA0:
+/* 80350FA0 0034CC00 80 BF 00 04 */ lwz r5, 4(r31)
+/* 80350FA4 0034CC04 38 00 00 00 */ li r0, 0
+/* 80350FA8 0034CC08 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 80350FAC 0034CC0C 38 60 00 01 */ li r3, 1
+/* 80350FB0 0034CC10 7F A5 21 AE */ stbx r29, r5, r4
+/* 80350FB4 0034CC14 80 BF 00 0C */ lwz r5, 0xc(r31)
+/* 80350FB8 0034CC18 80 9F 00 04 */ lwz r4, 4(r31)
+/* 80350FBC 0034CC1C 38 A5 00 01 */ addi r5, r5, 1
+/* 80350FC0 0034CC20 90 BF 00 0C */ stw r5, 0xc(r31)
+/* 80350FC4 0034CC24 7C 04 29 AE */ stbx r0, r4, r5
+lbl_80350FC8:
+/* 80350FC8 0034CC28 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80350FCC 0034CC2C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80350FD0 0034CC30 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80350FD4 0034CC34 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80350FD8 0034CC38 7C 08 03 A6 */ mtlr r0
+/* 80350FDC 0034CC3C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80350FE0 0034CC40 4E 80 00 20 */ blr
+
+.global ghiAppendIntToBuffer
+ghiAppendIntToBuffer:
+/* 80350FE4 0034CC44 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80350FE8 0034CC48 7C 08 02 A6 */ mflr r0
+/* 80350FEC 0034CC4C 7C 85 23 78 */ mr r5, r4
+/* 80350FF0 0034CC50 38 8D 93 88 */ addi r4, r13, lbl_8063E648-_SDA_BASE_
+/* 80350FF4 0034CC54 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80350FF8 0034CC58 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80350FFC 0034CC5C 7C 7F 1B 78 */ mr r31, r3
+/* 80351000 0034CC60 38 61 00 08 */ addi r3, r1, 8
+/* 80351004 0034CC64 4C C6 31 82 */ crclr 6
+/* 80351008 0034CC68 4B E7 BA F5 */ bl sprintf
+/* 8035100C 0034CC6C 7F E3 FB 78 */ mr r3, r31
+/* 80351010 0034CC70 38 81 00 08 */ addi r4, r1, 8
+/* 80351014 0034CC74 38 A0 00 00 */ li r5, 0
+/* 80351018 0034CC78 4B FF FA A5 */ bl ghiAppendDataToBuffer
+/* 8035101C 0034CC7C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80351020 0034CC80 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80351024 0034CC84 7C 08 03 A6 */ mtlr r0
+/* 80351028 0034CC88 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035102C 0034CC8C 4E 80 00 20 */ blr
+
+.global ghiResetBuffer
+ghiResetBuffer:
+/* 80351030 0034CC90 80 03 00 20 */ lwz r0, 0x20(r3)
+/* 80351034 0034CC94 38 80 00 00 */ li r4, 0
+/* 80351038 0034CC98 90 83 00 0C */ stw r4, 0xc(r3)
+/* 8035103C 0034CC9C 2C 00 00 00 */ cmpwi r0, 0
+/* 80351040 0034CCA0 90 83 00 10 */ stw r4, 0x10(r3)
+/* 80351044 0034CCA4 4C 82 00 20 */ bnelr
+/* 80351048 0034CCA8 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035104C 0034CCAC 98 83 00 00 */ stb r4, 0(r3)
+/* 80351050 0034CCB0 4E 80 00 20 */ blr
+
+.global ghiSendBufferedData
+ghiSendBufferedData:
+/* 80351054 0034CCB4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80351058 0034CCB8 7C 08 02 A6 */ mflr r0
+/* 8035105C 0034CCBC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80351060 0034CCC0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80351064 0034CCC4 7C 7F 1B 78 */ mr r31, r3
+lbl_80351068:
+/* 80351068 0034CCC8 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 8035106C 0034CCCC 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80351070 0034CCD0 38 C1 00 08 */ addi r6, r1, 8
+/* 80351074 0034CCD4 38 80 00 00 */ li r4, 0
+/* 80351078 0034CCD8 4B FE 6F 39 */ bl GSISocketSelect
+/* 8035107C 0034CCDC 2C 03 FF FF */ cmpwi r3, -1
+/* 80351080 0034CCE0 41 82 00 18 */ beq lbl_80351098
+/* 80351084 0034CCE4 2C 03 00 01 */ cmpwi r3, 1
+/* 80351088 0034CCE8 40 82 00 48 */ bne lbl_803510D0
+/* 8035108C 0034CCEC 80 01 00 08 */ lwz r0, 8(r1)
+/* 80351090 0034CCF0 2C 00 00 00 */ cmpwi r0, 0
+/* 80351094 0034CCF4 41 82 00 3C */ beq lbl_803510D0
+lbl_80351098:
+/* 80351098 0034CCF8 38 80 00 01 */ li r4, 1
+/* 8035109C 0034CCFC 38 00 00 05 */ li r0, 5
+/* 803510A0 0034CD00 2C 03 FF FF */ cmpwi r3, -1
+/* 803510A4 0034CD04 90 9F 01 20 */ stw r4, 0x120(r31)
+/* 803510A8 0034CD08 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 803510AC 0034CD0C 40 82 00 14 */ bne lbl_803510C0
+/* 803510B0 0034CD10 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 803510B4 0034CD14 4B FE 6E F5 */ bl GOAGetLastError
+/* 803510B8 0034CD18 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 803510BC 0034CD1C 48 00 00 0C */ b lbl_803510C8
+lbl_803510C0:
+/* 803510C0 0034CD20 38 00 00 00 */ li r0, 0
+/* 803510C4 0034CD24 90 1F 00 50 */ stw r0, 0x50(r31)
+lbl_803510C8:
+/* 803510C8 0034CD28 38 60 00 00 */ li r3, 0
+/* 803510CC 0034CD2C 48 00 00 68 */ b lbl_80351134
+lbl_803510D0:
+/* 803510D0 0034CD30 2C 03 00 01 */ cmpwi r3, 1
+/* 803510D4 0034CD34 41 80 00 10 */ blt lbl_803510E4
+/* 803510D8 0034CD38 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803510DC 0034CD3C 2C 00 00 00 */ cmpwi r0, 0
+/* 803510E0 0034CD40 40 82 00 0C */ bne lbl_803510EC
+lbl_803510E4:
+/* 803510E4 0034CD44 38 60 00 01 */ li r3, 1
+/* 803510E8 0034CD48 48 00 00 4C */ b lbl_80351134
+lbl_803510EC:
+/* 803510EC 0034CD4C 80 BF 00 64 */ lwz r5, 0x64(r31)
+/* 803510F0 0034CD50 7F E3 FB 78 */ mr r3, r31
+/* 803510F4 0034CD54 80 9F 00 58 */ lwz r4, 0x58(r31)
+/* 803510F8 0034CD58 80 1F 00 60 */ lwz r0, 0x60(r31)
+/* 803510FC 0034CD5C 7C 84 2A 14 */ add r4, r4, r5
+/* 80351100 0034CD60 7C A5 00 50 */ subf r5, r5, r0
+/* 80351104 0034CD64 48 00 04 79 */ bl ghiDoSend
+/* 80351108 0034CD68 2C 03 FF FF */ cmpwi r3, -1
+/* 8035110C 0034CD6C 40 82 00 0C */ bne lbl_80351118
+/* 80351110 0034CD70 38 60 00 00 */ li r3, 0
+/* 80351114 0034CD74 48 00 00 20 */ b lbl_80351134
+lbl_80351118:
+/* 80351118 0034CD78 80 9F 00 64 */ lwz r4, 0x64(r31)
+/* 8035111C 0034CD7C 80 1F 00 60 */ lwz r0, 0x60(r31)
+/* 80351120 0034CD80 7C 64 1A 14 */ add r3, r4, r3
+/* 80351124 0034CD84 7C 03 00 00 */ cmpw r3, r0
+/* 80351128 0034CD88 90 7F 00 64 */ stw r3, 0x64(r31)
+/* 8035112C 0034CD8C 41 80 FF 3C */ blt lbl_80351068
+/* 80351130 0034CD90 38 60 00 01 */ li r3, 1
+lbl_80351134:
+/* 80351134 0034CD94 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80351138 0034CD98 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035113C 0034CD9C 7C 08 03 A6 */ mtlr r0
+/* 80351140 0034CDA0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80351144 0034CDA4 4E 80 00 20 */ blr
+
+.global ghiReadDataFromBufferFixed
+ghiReadDataFromBufferFixed:
+/* 80351148 0034CDA8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035114C 0034CDAC 7C 08 02 A6 */ mflr r0
+/* 80351150 0034CDB0 2C 05 00 00 */ cmpwi r5, 0
+/* 80351154 0034CDB4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80351158 0034CDB8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035115C 0034CDBC 7C BF 2B 78 */ mr r31, r5
+/* 80351160 0034CDC0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80351164 0034CDC4 7C 7E 1B 78 */ mr r30, r3
+/* 80351168 0034CDC8 40 82 00 0C */ bne lbl_80351174
+/* 8035116C 0034CDCC 38 60 00 01 */ li r3, 1
+/* 80351170 0034CDD0 48 00 00 3C */ b lbl_803511AC
+lbl_80351174:
+/* 80351174 0034CDD4 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80351178 0034CDD8 7C 00 28 00 */ cmpw r0, r5
+/* 8035117C 0034CDDC 40 80 00 0C */ bge lbl_80351188
+/* 80351180 0034CDE0 38 60 00 00 */ li r3, 0
+/* 80351184 0034CDE4 48 00 00 28 */ b lbl_803511AC
+lbl_80351188:
+/* 80351188 0034CDE8 80 DE 00 04 */ lwz r6, 4(r30)
+/* 8035118C 0034CDEC 7C 83 23 78 */ mr r3, r4
+/* 80351190 0034CDF0 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 80351194 0034CDF4 7C 86 02 14 */ add r4, r6, r0
+/* 80351198 0034CDF8 4B CB 2E 69 */ bl memcpy
+/* 8035119C 0034CDFC 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 803511A0 0034CE00 38 60 00 01 */ li r3, 1
+/* 803511A4 0034CE04 7C 00 FA 14 */ add r0, r0, r31
+/* 803511A8 0034CE08 90 1E 00 10 */ stw r0, 0x10(r30)
+lbl_803511AC:
+/* 803511AC 0034CE0C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803511B0 0034CE10 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803511B4 0034CE14 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803511B8 0034CE18 7C 08 03 A6 */ mtlr r0
+/* 803511BC 0034CE1C 38 21 00 10 */ addi r1, r1, 0x10
+/* 803511C0 0034CE20 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpCallbacks.s b/asm/SDK/DWC/gamespy/ghttpCallbacks.s new file mode 100644 index 0000000..47dc2d6 --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpCallbacks.s @@ -0,0 +1,88 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghiCallCompletedCallback
+ghiCallCompletedCallback:
+/* 803511C4 0034CE24 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803511C8 0034CE28 7C 08 02 A6 */ mflr r0
+/* 803511CC 0034CE2C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803511D0 0034CE30 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803511D4 0034CE34 93 C1 00 08 */ stw r30, 8(r1)
+/* 803511D8 0034CE38 7C 7E 1B 78 */ mr r30, r3
+/* 803511DC 0034CE3C 81 83 00 44 */ lwz r12, 0x44(r3)
+/* 803511E0 0034CE40 2C 0C 00 00 */ cmpwi r12, 0
+/* 803511E4 0034CE44 41 82 00 50 */ beq lbl_80351234
+/* 803511E8 0034CE48 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803511EC 0034CE4C 2C 00 00 00 */ cmpwi r0, 0
+/* 803511F0 0034CE50 40 82 00 0C */ bne lbl_803511FC
+/* 803511F4 0034CE54 83 E3 00 E8 */ lwz r31, 0xe8(r3)
+/* 803511F8 0034CE58 48 00 00 08 */ b lbl_80351200
+lbl_803511FC:
+/* 803511FC 0034CE5C 3B E0 00 00 */ li r31, 0
+lbl_80351200:
+/* 80351200 0034CE60 7F E5 FB 78 */ mr r5, r31
+/* 80351204 0034CE64 80 63 00 04 */ lwz r3, 4(r3)
+/* 80351208 0034CE68 80 9E 00 3C */ lwz r4, 0x3c(r30)
+/* 8035120C 0034CE6C 80 DE 01 24 */ lwz r6, 0x124(r30)
+/* 80351210 0034CE70 80 FE 00 48 */ lwz r7, 0x48(r30)
+/* 80351214 0034CE74 7D 89 03 A6 */ mtctr r12
+/* 80351218 0034CE78 4E 80 04 21 */ bctrl
+/* 8035121C 0034CE7C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80351220 0034CE80 41 82 00 14 */ beq lbl_80351234
+/* 80351224 0034CE84 2C 03 00 00 */ cmpwi r3, 0
+/* 80351228 0034CE88 40 82 00 0C */ bne lbl_80351234
+/* 8035122C 0034CE8C 38 00 00 01 */ li r0, 1
+/* 80351230 0034CE90 90 1E 01 00 */ stw r0, 0x100(r30)
+lbl_80351234:
+/* 80351234 0034CE94 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351238 0034CE98 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035123C 0034CE9C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80351240 0034CEA0 7C 08 03 A6 */ mtlr r0
+/* 80351244 0034CEA4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351248 0034CEA8 4E 80 00 20 */ blr
+
+.global ghiCallProgressCallback
+ghiCallProgressCallback:
+/* 8035124C 0034CEAC 81 83 00 40 */ lwz r12, 0x40(r3)
+/* 80351250 0034CEB0 7C 69 1B 78 */ mr r9, r3
+/* 80351254 0034CEB4 7C A6 2B 78 */ mr r6, r5
+/* 80351258 0034CEB8 2C 0C 00 00 */ cmpwi r12, 0
+/* 8035125C 0034CEBC 4D 82 00 20 */ beqlr
+/* 80351260 0034CEC0 7C 85 23 78 */ mr r5, r4
+/* 80351264 0034CEC4 80 63 00 04 */ lwz r3, 4(r3)
+/* 80351268 0034CEC8 80 89 00 10 */ lwz r4, 0x10(r9)
+/* 8035126C 0034CECC 80 E9 01 24 */ lwz r7, 0x124(r9)
+/* 80351270 0034CED0 81 09 01 28 */ lwz r8, 0x128(r9)
+/* 80351274 0034CED4 81 29 00 48 */ lwz r9, 0x48(r9)
+/* 80351278 0034CED8 7D 89 03 A6 */ mtctr r12
+/* 8035127C 0034CEDC 4E 80 04 20 */ bctr
+/* 80351280 0034CEE0 4E 80 00 20 */ blr
+
+.global ghiCallPostCallback
+ghiCallPostCallback:
+/* 80351284 0034CEE4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351288 0034CEE8 7C 08 02 A6 */ mflr r0
+/* 8035128C 0034CEEC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80351290 0034CEF0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351294 0034CEF4 7C 7F 1B 78 */ mr r31, r3
+/* 80351298 0034CEF8 80 03 01 74 */ lwz r0, 0x174(r3)
+/* 8035129C 0034CEFC 2C 00 00 00 */ cmpwi r0, 0
+/* 803512A0 0034CF00 41 82 00 30 */ beq lbl_803512D0
+/* 803512A4 0034CF04 80 63 01 64 */ lwz r3, 0x164(r3)
+/* 803512A8 0034CF08 4B FE 4C 41 */ bl ArrayLength
+/* 803512AC 0034CF0C 81 9F 01 74 */ lwz r12, 0x174(r31)
+/* 803512B0 0034CF10 7C 67 1B 78 */ mr r7, r3
+/* 803512B4 0034CF14 80 7F 00 04 */ lwz r3, 4(r31)
+/* 803512B8 0034CF18 80 9F 01 6C */ lwz r4, 0x16c(r31)
+/* 803512BC 0034CF1C 80 BF 01 70 */ lwz r5, 0x170(r31)
+/* 803512C0 0034CF20 80 DF 01 68 */ lwz r6, 0x168(r31)
+/* 803512C4 0034CF24 81 1F 00 48 */ lwz r8, 0x48(r31)
+/* 803512C8 0034CF28 7D 89 03 A6 */ mtctr r12
+/* 803512CC 0034CF2C 4E 80 04 21 */ bctrl
+lbl_803512D0:
+/* 803512D0 0034CF30 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803512D4 0034CF34 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803512D8 0034CF38 7C 08 03 A6 */ mtlr r0
+/* 803512DC 0034CF3C 38 21 00 10 */ addi r1, r1, 0x10
+/* 803512E0 0034CF40 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpCommon.s b/asm/SDK/DWC/gamespy/ghttpCommon.s new file mode 100644 index 0000000..f6b8d38 --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpCommon.s @@ -0,0 +1,342 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghiCreateLock
+ghiCreateLock:
+/* 803512E4 0034CF44 4E 80 00 20 */ blr
+
+.global ghiFreeLock
+ghiFreeLock:
+/* 803512E8 0034CF48 4E 80 00 20 */ blr
+
+.global ghiLock
+ghiLock:
+/* 803512EC 0034CF4C 4E 80 00 20 */ blr
+
+.global ghiUnlock
+ghiUnlock:
+/* 803512F0 0034CF50 4E 80 00 20 */ blr
+
+.global ghiDecryptReceivedData
+ghiDecryptReceivedData:
+/* 803512F4 0034CF54 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803512F8 0034CF58 7C 08 02 A6 */ mflr r0
+/* 803512FC 0034CF5C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80351300 0034CF60 38 00 00 00 */ li r0, 0
+/* 80351304 0034CF64 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80351308 0034CF68 7C 7F 1B 78 */ mr r31, r3
+/* 8035130C 0034CF6C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80351310 0034CF70 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80351314 0034CF74 90 01 00 08 */ stw r0, 8(r1)
+lbl_80351318:
+/* 80351318 0034CF78 80 FF 00 D0 */ lwz r7, 0xd0(r31)
+/* 8035131C 0034CF7C 7F E3 FB 78 */ mr r3, r31
+/* 80351320 0034CF80 80 1F 00 CC */ lwz r0, 0xcc(r31)
+/* 80351324 0034CF84 38 9F 01 90 */ addi r4, r31, 0x190
+/* 80351328 0034CF88 80 BF 00 C4 */ lwz r5, 0xc4(r31)
+/* 8035132C 0034CF8C 38 C1 00 0C */ addi r6, r1, 0xc
+/* 80351330 0034CF90 7C 07 00 50 */ subf r0, r7, r0
+/* 80351334 0034CF94 39 01 00 08 */ addi r8, r1, 8
+/* 80351338 0034CF98 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8035133C 0034CF9C 7C A5 3A 14 */ add r5, r5, r7
+/* 80351340 0034CFA0 81 3F 00 A8 */ lwz r9, 0xa8(r31)
+/* 80351344 0034CFA4 80 1F 00 A4 */ lwz r0, 0xa4(r31)
+/* 80351348 0034CFA8 80 FF 00 A0 */ lwz r7, 0xa0(r31)
+/* 8035134C 0034CFAC 7C 09 00 50 */ subf r0, r9, r0
+/* 80351350 0034CFB0 90 01 00 08 */ stw r0, 8(r1)
+/* 80351354 0034CFB4 7C E7 4A 14 */ add r7, r7, r9
+/* 80351358 0034CFB8 81 9F 01 AC */ lwz r12, 0x1ac(r31)
+/* 8035135C 0034CFBC 7D 89 03 A6 */ mtctr r12
+/* 80351360 0034CFC0 4E 80 04 21 */ bctrl
+/* 80351364 0034CFC4 2C 03 00 02 */ cmpwi r3, 2
+/* 80351368 0034CFC8 7C 7E 1B 78 */ mr r30, r3
+/* 8035136C 0034CFCC 40 82 00 20 */ bne lbl_8035138C
+/* 80351370 0034CFD0 80 9F 00 B0 */ lwz r4, 0xb0(r31)
+/* 80351374 0034CFD4 38 7F 00 9C */ addi r3, r31, 0x9c
+/* 80351378 0034CFD8 4B FF F4 7D */ bl ghiResizeBuffer
+/* 8035137C 0034CFDC 2C 03 00 00 */ cmpwi r3, 0
+/* 80351380 0034CFE0 40 82 00 1C */ bne lbl_8035139C
+/* 80351384 0034CFE4 38 60 00 00 */ li r3, 0
+/* 80351388 0034CFE8 48 00 00 A4 */ b lbl_8035142C
+lbl_8035138C:
+/* 8035138C 0034CFEC 2C 03 00 03 */ cmpwi r3, 3
+/* 80351390 0034CFF0 40 82 00 0C */ bne lbl_8035139C
+/* 80351394 0034CFF4 38 60 00 00 */ li r3, 0
+/* 80351398 0034CFF8 48 00 00 94 */ b lbl_8035142C
+lbl_8035139C:
+/* 8035139C 0034CFFC 2C 1E 00 02 */ cmpwi r30, 2
+/* 803513A0 0034D000 40 82 00 10 */ bne lbl_803513B0
+/* 803513A4 0034D004 80 01 00 08 */ lwz r0, 8(r1)
+/* 803513A8 0034D008 2C 00 00 00 */ cmpwi r0, 0
+/* 803513AC 0034D00C 41 82 FF 6C */ beq lbl_80351318
+lbl_803513B0:
+/* 803513B0 0034D010 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 803513B4 0034D014 80 BF 00 CC */ lwz r5, 0xcc(r31)
+/* 803513B8 0034D018 7C 04 28 00 */ cmpw r4, r5
+/* 803513BC 0034D01C 40 81 00 0C */ ble lbl_803513C8
+/* 803513C0 0034D020 38 60 00 00 */ li r3, 0
+/* 803513C4 0034D024 48 00 00 68 */ b lbl_8035142C
+lbl_803513C8:
+/* 803513C8 0034D028 80 1F 00 D0 */ lwz r0, 0xd0(r31)
+/* 803513CC 0034D02C 80 7F 00 A8 */ lwz r3, 0xa8(r31)
+/* 803513D0 0034D030 7C 80 22 14 */ add r4, r0, r4
+/* 803513D4 0034D034 90 9F 00 D0 */ stw r4, 0xd0(r31)
+/* 803513D8 0034D038 80 01 00 08 */ lwz r0, 8(r1)
+/* 803513DC 0034D03C 7C 03 02 14 */ add r0, r3, r0
+/* 803513E0 0034D040 90 1F 00 A8 */ stw r0, 0xa8(r31)
+/* 803513E4 0034D044 80 01 00 08 */ lwz r0, 8(r1)
+/* 803513E8 0034D048 2C 00 00 00 */ cmpwi r0, 0
+/* 803513EC 0034D04C 41 81 FF 2C */ bgt lbl_80351318
+/* 803513F0 0034D050 2C 04 00 FF */ cmpwi r4, 0xff
+/* 803513F4 0034D054 40 81 00 34 */ ble lbl_80351428
+/* 803513F8 0034D058 7F C4 28 51 */ subf. r30, r4, r5
+/* 803513FC 0034D05C 40 82 00 10 */ bne lbl_8035140C
+/* 80351400 0034D060 38 7F 00 C0 */ addi r3, r31, 0xc0
+/* 80351404 0034D064 4B FF FC 2D */ bl ghiResetBuffer
+/* 80351408 0034D068 48 00 00 20 */ b lbl_80351428
+lbl_8035140C:
+/* 8035140C 0034D06C 80 7F 00 C4 */ lwz r3, 0xc4(r31)
+/* 80351410 0034D070 7F C5 F3 78 */ mr r5, r30
+/* 80351414 0034D074 7C 83 22 14 */ add r4, r3, r4
+/* 80351418 0034D078 4B E7 8E 5D */ bl memmove
+/* 8035141C 0034D07C 38 00 00 00 */ li r0, 0
+/* 80351420 0034D080 93 DF 00 CC */ stw r30, 0xcc(r31)
+/* 80351424 0034D084 90 1F 00 D0 */ stw r0, 0xd0(r31)
+lbl_80351428:
+/* 80351428 0034D088 38 60 00 01 */ li r3, 1
+lbl_8035142C:
+/* 8035142C 0034D08C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80351430 0034D090 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80351434 0034D094 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80351438 0034D098 7C 08 03 A6 */ mtlr r0
+/* 8035143C 0034D09C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80351440 0034D0A0 4E 80 00 20 */ blr
+
+.global ghiDoReceive
+ghiDoReceive:
+/* 80351444 0034D0A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80351448 0034D0A8 7C 08 02 A6 */ mflr r0
+/* 8035144C 0034D0AC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80351450 0034D0B0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80351454 0034D0B4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80351458 0034D0B8 7C BE 2B 78 */ mr r30, r5
+/* 8035145C 0034D0BC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80351460 0034D0C0 7C 9D 23 78 */ mr r29, r4
+/* 80351464 0034D0C4 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80351468 0034D0C8 7C 7C 1B 78 */ mr r28, r3
+/* 8035146C 0034D0CC 80 03 01 58 */ lwz r0, 0x158(r3)
+/* 80351470 0034D0D0 80 65 00 00 */ lwz r3, 0(r5)
+/* 80351474 0034D0D4 2C 00 00 00 */ cmpwi r0, 0
+/* 80351478 0034D0D8 3B E3 FF FF */ addi r31, r3, -1
+/* 8035147C 0034D0DC 41 82 00 3C */ beq lbl_803514B8
+/* 80351480 0034D0E0 4B FE 7B 59 */ bl current_time
+/* 80351484 0034D0E4 80 9C 01 5C */ lwz r4, 0x15c(r28)
+/* 80351488 0034D0E8 80 0D 93 94 */ lwz r0, lbl_8063E654-_SDA_BASE_(r13)
+/* 8035148C 0034D0EC 7C 04 02 14 */ add r0, r4, r0
+/* 80351490 0034D0F0 7C 03 00 40 */ cmplw r3, r0
+/* 80351494 0034D0F4 40 80 00 0C */ bge lbl_803514A0
+/* 80351498 0034D0F8 38 60 00 01 */ li r3, 1
+/* 8035149C 0034D0FC 48 00 00 C0 */ b lbl_8035155C
+lbl_803514A0:
+/* 803514A0 0034D100 90 7C 01 5C */ stw r3, 0x15c(r28)
+/* 803514A4 0034D104 80 0D 93 90 */ lwz r0, lbl_8063E650-_SDA_BASE_(r13)
+/* 803514A8 0034D108 7C 1F 00 00 */ cmpw r31, r0
+/* 803514AC 0034D10C 40 80 00 08 */ bge lbl_803514B4
+/* 803514B0 0034D110 7F E0 FB 78 */ mr r0, r31
+lbl_803514B4:
+/* 803514B4 0034D114 7C 1F 03 78 */ mr r31, r0
+lbl_803514B8:
+/* 803514B8 0034D118 80 7C 00 4C */ lwz r3, 0x4c(r28)
+/* 803514BC 0034D11C 7F A4 EB 78 */ mr r4, r29
+/* 803514C0 0034D120 7F E5 FB 78 */ mr r5, r31
+/* 803514C4 0034D124 38 C0 00 00 */ li r6, 0
+/* 803514C8 0034D128 4B FE 69 09 */ bl recv
+/* 803514CC 0034D12C 2C 03 FF FF */ cmpwi r3, -1
+/* 803514D0 0034D130 40 82 00 64 */ bne lbl_80351534
+/* 803514D4 0034D134 80 7C 00 4C */ lwz r3, 0x4c(r28)
+/* 803514D8 0034D138 4B FE 6A D1 */ bl GOAGetLastError
+/* 803514DC 0034D13C 2C 03 FF C8 */ cmpwi r3, -56
+/* 803514E0 0034D140 40 82 00 14 */ bne lbl_803514F4
+/* 803514E4 0034D144 38 00 00 01 */ li r0, 1
+/* 803514E8 0034D148 38 60 00 02 */ li r3, 2
+/* 803514EC 0034D14C 90 1C 01 54 */ stw r0, 0x154(r28)
+/* 803514F0 0034D150 48 00 00 6C */ b lbl_8035155C
+lbl_803514F4:
+/* 803514F4 0034D154 2C 03 FF FA */ cmpwi r3, -6
+/* 803514F8 0034D158 41 82 00 14 */ beq lbl_8035150C
+/* 803514FC 0034D15C 2C 03 FF E6 */ cmpwi r3, -26
+/* 80351500 0034D160 41 82 00 0C */ beq lbl_8035150C
+/* 80351504 0034D164 2C 03 FF B4 */ cmpwi r3, -76
+/* 80351508 0034D168 40 82 00 0C */ bne lbl_80351514
+lbl_8035150C:
+/* 8035150C 0034D16C 38 60 00 01 */ li r3, 1
+/* 80351510 0034D170 48 00 00 4C */ b lbl_8035155C
+lbl_80351514:
+/* 80351514 0034D174 38 80 00 01 */ li r4, 1
+/* 80351518 0034D178 38 00 00 05 */ li r0, 5
+/* 8035151C 0034D17C 90 7C 00 50 */ stw r3, 0x50(r28)
+/* 80351520 0034D180 38 60 00 03 */ li r3, 3
+/* 80351524 0034D184 90 9C 01 20 */ stw r4, 0x120(r28)
+/* 80351528 0034D188 90 1C 00 3C */ stw r0, 0x3c(r28)
+/* 8035152C 0034D18C 90 9C 01 54 */ stw r4, 0x154(r28)
+/* 80351530 0034D190 48 00 00 2C */ b lbl_8035155C
+lbl_80351534:
+/* 80351534 0034D194 2C 03 00 00 */ cmpwi r3, 0
+/* 80351538 0034D198 40 82 00 14 */ bne lbl_8035154C
+/* 8035153C 0034D19C 38 00 00 01 */ li r0, 1
+/* 80351540 0034D1A0 38 60 00 02 */ li r3, 2
+/* 80351544 0034D1A4 90 1C 01 54 */ stw r0, 0x154(r28)
+/* 80351548 0034D1A8 48 00 00 14 */ b lbl_8035155C
+lbl_8035154C:
+/* 8035154C 0034D1AC 38 00 00 00 */ li r0, 0
+/* 80351550 0034D1B0 7C 1D 19 AE */ stbx r0, r29, r3
+/* 80351554 0034D1B4 90 7E 00 00 */ stw r3, 0(r30)
+/* 80351558 0034D1B8 38 60 00 00 */ li r3, 0
+lbl_8035155C:
+/* 8035155C 0034D1BC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80351560 0034D1C0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80351564 0034D1C4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80351568 0034D1C8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035156C 0034D1CC 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80351570 0034D1D0 7C 08 03 A6 */ mtlr r0
+/* 80351574 0034D1D4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80351578 0034D1D8 4E 80 00 20 */ blr
+
+.global ghiDoSend
+ghiDoSend:
+/* 8035157C 0034D1DC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351580 0034D1E0 7C 08 02 A6 */ mflr r0
+/* 80351584 0034D1E4 2C 04 00 00 */ cmpwi r4, 0
+/* 80351588 0034D1E8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035158C 0034D1EC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351590 0034D1F0 7C 7F 1B 78 */ mr r31, r3
+/* 80351594 0034D1F4 41 82 00 0C */ beq lbl_803515A0
+/* 80351598 0034D1F8 2C 05 00 00 */ cmpwi r5, 0
+/* 8035159C 0034D1FC 40 82 00 0C */ bne lbl_803515A8
+lbl_803515A0:
+/* 803515A0 0034D200 38 60 00 00 */ li r3, 0
+/* 803515A4 0034D204 48 00 00 80 */ b lbl_80351624
+lbl_803515A8:
+/* 803515A8 0034D208 80 63 00 4C */ lwz r3, 0x4c(r3)
+/* 803515AC 0034D20C 38 C0 00 00 */ li r6, 0
+/* 803515B0 0034D210 4B FE 68 B1 */ bl send
+/* 803515B4 0034D214 2C 03 FF FF */ cmpwi r3, -1
+/* 803515B8 0034D218 40 82 00 48 */ bne lbl_80351600
+/* 803515BC 0034D21C 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 803515C0 0034D220 4B FE 69 E9 */ bl GOAGetLastError
+/* 803515C4 0034D224 2C 03 FF FA */ cmpwi r3, -6
+/* 803515C8 0034D228 41 82 00 14 */ beq lbl_803515DC
+/* 803515CC 0034D22C 2C 03 FF E6 */ cmpwi r3, -26
+/* 803515D0 0034D230 41 82 00 0C */ beq lbl_803515DC
+/* 803515D4 0034D234 2C 03 FF B4 */ cmpwi r3, -76
+/* 803515D8 0034D238 40 82 00 0C */ bne lbl_803515E4
+lbl_803515DC:
+/* 803515DC 0034D23C 38 60 00 00 */ li r3, 0
+/* 803515E0 0034D240 48 00 00 44 */ b lbl_80351624
+lbl_803515E4:
+/* 803515E4 0034D244 38 80 00 01 */ li r4, 1
+/* 803515E8 0034D248 38 00 00 05 */ li r0, 5
+/* 803515EC 0034D24C 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 803515F0 0034D250 38 60 FF FF */ li r3, -1
+/* 803515F4 0034D254 90 9F 01 20 */ stw r4, 0x120(r31)
+/* 803515F8 0034D258 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 803515FC 0034D25C 48 00 00 28 */ b lbl_80351624
+lbl_80351600:
+/* 80351600 0034D260 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80351604 0034D264 2C 00 00 06 */ cmpwi r0, 6
+/* 80351608 0034D268 40 82 00 1C */ bne lbl_80351624
+/* 8035160C 0034D26C 80 1F 01 7C */ lwz r0, 0x17c(r31)
+/* 80351610 0034D270 2C 00 00 00 */ cmpwi r0, 0
+/* 80351614 0034D274 40 82 00 10 */ bne lbl_80351624
+/* 80351618 0034D278 80 1F 01 6C */ lwz r0, 0x16c(r31)
+/* 8035161C 0034D27C 7C 00 1A 14 */ add r0, r0, r3
+/* 80351620 0034D280 90 1F 01 6C */ stw r0, 0x16c(r31)
+lbl_80351624:
+/* 80351624 0034D284 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351628 0034D288 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035162C 0034D28C 7C 08 03 A6 */ mtlr r0
+/* 80351630 0034D290 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351634 0034D294 4E 80 00 20 */ blr
+
+.global ghiTrySendThenBuffer
+ghiTrySendThenBuffer:
+/* 80351638 0034D298 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035163C 0034D29C 7C 08 02 A6 */ mflr r0
+/* 80351640 0034D2A0 38 C0 00 00 */ li r6, 0
+/* 80351644 0034D2A4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80351648 0034D2A8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035164C 0034D2AC 7C BF 2B 78 */ mr r31, r5
+/* 80351650 0034D2B0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80351654 0034D2B4 7C 9E 23 78 */ mr r30, r4
+/* 80351658 0034D2B8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035165C 0034D2BC 7C 7D 1B 78 */ mr r29, r3
+/* 80351660 0034D2C0 80 03 01 94 */ lwz r0, 0x194(r3)
+/* 80351664 0034D2C4 2C 00 00 00 */ cmpwi r0, 0
+/* 80351668 0034D2C8 41 82 00 68 */ beq lbl_803516D0
+/* 8035166C 0034D2CC 80 03 01 9C */ lwz r0, 0x19c(r3)
+/* 80351670 0034D2D0 2C 00 00 01 */ cmpwi r0, 1
+/* 80351674 0034D2D4 40 82 00 5C */ bne lbl_803516D0
+/* 80351678 0034D2D8 38 63 00 54 */ addi r3, r3, 0x54
+/* 8035167C 0034D2DC 4B FF F5 B1 */ bl ghiEncryptDataToBuffer
+/* 80351680 0034D2E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80351684 0034D2E4 40 82 00 0C */ bne lbl_80351690
+/* 80351688 0034D2E8 38 60 00 00 */ li r3, 0
+/* 8035168C 0034D2EC 48 00 00 AC */ b lbl_80351738
+lbl_80351690:
+/* 80351690 0034D2F0 7F A3 EB 78 */ mr r3, r29
+/* 80351694 0034D2F4 4B FF F9 C1 */ bl ghiSendBufferedData
+/* 80351698 0034D2F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035169C 0034D2FC 40 82 00 0C */ bne lbl_803516A8
+/* 803516A0 0034D300 38 60 00 00 */ li r3, 0
+/* 803516A4 0034D304 48 00 00 94 */ b lbl_80351738
+lbl_803516A8:
+/* 803516A8 0034D308 80 7D 00 64 */ lwz r3, 0x64(r29)
+/* 803516AC 0034D30C 80 1D 00 60 */ lwz r0, 0x60(r29)
+/* 803516B0 0034D310 7C 03 00 00 */ cmpw r3, r0
+/* 803516B4 0034D314 41 80 00 14 */ blt lbl_803516C8
+/* 803516B8 0034D318 38 7D 00 54 */ addi r3, r29, 0x54
+/* 803516BC 0034D31C 4B FF F9 75 */ bl ghiResetBuffer
+/* 803516C0 0034D320 38 60 00 01 */ li r3, 1
+/* 803516C4 0034D324 48 00 00 74 */ b lbl_80351738
+lbl_803516C8:
+/* 803516C8 0034D328 38 60 00 02 */ li r3, 2
+/* 803516CC 0034D32C 48 00 00 6C */ b lbl_80351738
+lbl_803516D0:
+/* 803516D0 0034D330 80 83 00 64 */ lwz r4, 0x64(r3)
+/* 803516D4 0034D334 80 03 00 60 */ lwz r0, 0x60(r3)
+/* 803516D8 0034D338 7C 04 00 00 */ cmpw r4, r0
+/* 803516DC 0034D33C 41 80 00 38 */ blt lbl_80351714
+/* 803516E0 0034D340 7F A3 EB 78 */ mr r3, r29
+/* 803516E4 0034D344 7F C4 F3 78 */ mr r4, r30
+/* 803516E8 0034D348 7F E5 FB 78 */ mr r5, r31
+/* 803516EC 0034D34C 4B FF FE 91 */ bl ghiDoSend
+/* 803516F0 0034D350 2C 03 FF FF */ cmpwi r3, -1
+/* 803516F4 0034D354 7C 66 1B 78 */ mr r6, r3
+/* 803516F8 0034D358 40 82 00 0C */ bne lbl_80351704
+/* 803516FC 0034D35C 38 60 00 00 */ li r3, 0
+/* 80351700 0034D360 48 00 00 38 */ b lbl_80351738
+lbl_80351704:
+/* 80351704 0034D364 7C 03 F8 00 */ cmpw r3, r31
+/* 80351708 0034D368 40 82 00 0C */ bne lbl_80351714
+/* 8035170C 0034D36C 38 60 00 01 */ li r3, 1
+/* 80351710 0034D370 48 00 00 28 */ b lbl_80351738
+lbl_80351714:
+/* 80351714 0034D374 38 7D 00 54 */ addi r3, r29, 0x54
+/* 80351718 0034D378 7C 9E 32 14 */ add r4, r30, r6
+/* 8035171C 0034D37C 7C A6 F8 50 */ subf r5, r6, r31
+/* 80351720 0034D380 4B FF F3 9D */ bl ghiAppendDataToBuffer
+/* 80351724 0034D384 2C 03 00 00 */ cmpwi r3, 0
+/* 80351728 0034D388 40 82 00 0C */ bne lbl_80351734
+/* 8035172C 0034D38C 38 60 00 00 */ li r3, 0
+/* 80351730 0034D390 48 00 00 08 */ b lbl_80351738
+lbl_80351734:
+/* 80351734 0034D394 38 60 00 02 */ li r3, 2
+lbl_80351738:
+/* 80351738 0034D398 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035173C 0034D39C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80351740 0034D3A0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80351744 0034D3A4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80351748 0034D3A8 7C 08 03 A6 */ mtlr r0
+/* 8035174C 0034D3AC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80351750 0034D3B0 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpConnection.s b/asm/SDK/DWC/gamespy/ghttpConnection.s new file mode 100644 index 0000000..9c2685c --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpConnection.s @@ -0,0 +1,535 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghiFindFreeSlot
+ghiFindFreeSlot:
+/* 80351754 0034D3B4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80351758 0034D3B8 7C 08 02 A6 */ mflr r0
+/* 8035175C 0034D3BC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80351760 0034D3C0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80351764 0034D3C4 4B E7 59 C5 */ bl _savegpr_27
+/* 80351768 0034D3C8 80 CD B0 D4 */ lwz r6, lbl_80640394-_SDA_BASE_(r13)
+/* 8035176C 0034D3CC 38 60 00 00 */ li r3, 0
+/* 80351770 0034D3D0 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
+/* 80351774 0034D3D4 7C C5 33 78 */ mr r5, r6
+/* 80351778 0034D3D8 7C 09 03 A6 */ mtctr r0
+/* 8035177C 0034D3DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80351780 0034D3E0 40 81 00 24 */ ble lbl_803517A4
+lbl_80351784:
+/* 80351784 0034D3E4 80 85 00 00 */ lwz r4, 0(r5)
+/* 80351788 0034D3E8 80 04 00 00 */ lwz r0, 0(r4)
+/* 8035178C 0034D3EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80351790 0034D3F0 40 82 00 08 */ bne lbl_80351798
+/* 80351794 0034D3F4 48 00 00 B4 */ b lbl_80351848
+lbl_80351798:
+/* 80351798 0034D3F8 38 A5 00 04 */ addi r5, r5, 4
+/* 8035179C 0034D3FC 38 63 00 01 */ addi r3, r3, 1
+/* 803517A0 0034D400 42 00 FF E4 */ bdnz lbl_80351784
+lbl_803517A4:
+/* 803517A4 0034D404 83 AD B0 D0 */ lwz r29, lbl_80640390-_SDA_BASE_(r13)
+/* 803517A8 0034D408 7C C3 33 78 */ mr r3, r6
+/* 803517AC 0034D40C 3B 7D 00 04 */ addi r27, r29, 4
+/* 803517B0 0034D410 57 64 10 3A */ slwi r4, r27, 2
+/* 803517B4 0034D414 4B FE 7B 71 */ bl gsirealloc
+/* 803517B8 0034D418 2C 03 00 00 */ cmpwi r3, 0
+/* 803517BC 0034D41C 40 82 00 0C */ bne lbl_803517C8
+/* 803517C0 0034D420 38 60 FF FF */ li r3, -1
+/* 803517C4 0034D424 48 00 00 84 */ b lbl_80351848
+lbl_803517C8:
+/* 803517C8 0034D428 90 6D B0 D4 */ stw r3, lbl_80640394-_SDA_BASE_(r13)
+/* 803517CC 0034D42C 7F BC EB 78 */ mr r28, r29
+/* 803517D0 0034D430 57 BE 10 3A */ slwi r30, r29, 2
+/* 803517D4 0034D434 3B E0 00 00 */ li r31, 0
+/* 803517D8 0034D438 48 00 00 60 */ b lbl_80351838
+lbl_803517DC:
+/* 803517DC 0034D43C 38 60 01 B4 */ li r3, 0x1b4
+/* 803517E0 0034D440 4B FE 7B 35 */ bl gsimalloc
+/* 803517E4 0034D444 80 8D B0 D4 */ lwz r4, lbl_80640394-_SDA_BASE_(r13)
+/* 803517E8 0034D448 7C 64 F1 2E */ stwx r3, r4, r30
+/* 803517EC 0034D44C 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
+/* 803517F0 0034D450 7C 63 F0 2E */ lwzx r3, r3, r30
+/* 803517F4 0034D454 2C 03 00 00 */ cmpwi r3, 0
+/* 803517F8 0034D458 40 82 00 34 */ bne lbl_8035182C
+/* 803517FC 0034D45C 3B 9C FF FF */ addi r28, r28, -1
+/* 80351800 0034D460 57 9E 10 3A */ slwi r30, r28, 2
+/* 80351804 0034D464 48 00 00 18 */ b lbl_8035181C
+lbl_80351808:
+/* 80351808 0034D468 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
+/* 8035180C 0034D46C 7C 63 F0 2E */ lwzx r3, r3, r30
+/* 80351810 0034D470 4B FE 7B 29 */ bl gsifree
+/* 80351814 0034D474 3B DE FF FC */ addi r30, r30, -4
+/* 80351818 0034D478 3B 9C FF FF */ addi r28, r28, -1
+lbl_8035181C:
+/* 8035181C 0034D47C 7C 1C E8 00 */ cmpw r28, r29
+/* 80351820 0034D480 40 80 FF E8 */ bge lbl_80351808
+/* 80351824 0034D484 38 60 FF FF */ li r3, -1
+/* 80351828 0034D488 48 00 00 20 */ b lbl_80351848
+lbl_8035182C:
+/* 8035182C 0034D48C 93 E3 00 00 */ stw r31, 0(r3)
+/* 80351830 0034D490 3B DE 00 04 */ addi r30, r30, 4
+/* 80351834 0034D494 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80351838:
+/* 80351838 0034D498 7C 1C D8 00 */ cmpw r28, r27
+/* 8035183C 0034D49C 41 80 FF A0 */ blt lbl_803517DC
+/* 80351840 0034D4A0 93 6D B0 D0 */ stw r27, lbl_80640390-_SDA_BASE_(r13)
+/* 80351844 0034D4A4 7F A3 EB 78 */ mr r3, r29
+lbl_80351848:
+/* 80351848 0034D4A8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035184C 0034D4AC 4B E7 59 29 */ bl _restgpr_27
+/* 80351850 0034D4B0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80351854 0034D4B4 7C 08 03 A6 */ mtlr r0
+/* 80351858 0034D4B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035185C 0034D4BC 4E 80 00 20 */ blr
+
+.global ghiNewConnection
+ghiNewConnection:
+/* 80351860 0034D4C0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351864 0034D4C4 7C 08 02 A6 */ mflr r0
+/* 80351868 0034D4C8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035186C 0034D4CC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351870 0034D4D0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80351874 0034D4D4 4B FF FA 79 */ bl ghiLock
+/* 80351878 0034D4D8 4B FF FE DD */ bl ghiFindFreeSlot
+/* 8035187C 0034D4DC 2C 03 FF FF */ cmpwi r3, -1
+/* 80351880 0034D4E0 7C 7F 1B 78 */ mr r31, r3
+/* 80351884 0034D4E4 40 82 00 10 */ bne lbl_80351894
+/* 80351888 0034D4E8 4B FF FA 69 */ bl ghiUnlock
+/* 8035188C 0034D4EC 38 60 00 00 */ li r3, 0
+/* 80351890 0034D4F0 48 00 01 7C */ b lbl_80351A0C
+lbl_80351894:
+/* 80351894 0034D4F4 80 CD B0 D4 */ lwz r6, lbl_80640394-_SDA_BASE_(r13)
+/* 80351898 0034D4F8 54 60 10 3A */ slwi r0, r3, 2
+/* 8035189C 0034D4FC 38 80 00 00 */ li r4, 0
+/* 803518A0 0034D500 38 A0 01 B4 */ li r5, 0x1b4
+/* 803518A4 0034D504 7F C6 00 2E */ lwzx r30, r6, r0
+/* 803518A8 0034D508 7F C3 F3 78 */ mr r3, r30
+/* 803518AC 0034D50C 4B CB 28 59 */ bl memset
+/* 803518B0 0034D510 38 00 00 01 */ li r0, 1
+/* 803518B4 0034D514 39 20 00 00 */ li r9, 0
+/* 803518B8 0034D518 90 1E 00 00 */ stw r0, 0(r30)
+/* 803518BC 0034D51C 39 00 FF FF */ li r8, -1
+/* 803518C0 0034D520 38 E0 01 F4 */ li r7, 0x1f4
+/* 803518C4 0034D524 38 00 00 50 */ li r0, 0x50
+/* 803518C8 0034D528 93 FE 00 04 */ stw r31, 4(r30)
+/* 803518CC 0034D52C 7F C3 F3 78 */ mr r3, r30
+/* 803518D0 0034D530 38 9E 00 54 */ addi r4, r30, 0x54
+/* 803518D4 0034D534 38 A0 08 00 */ li r5, 0x800
+/* 803518D8 0034D538 81 4D B0 C8 */ lwz r10, lbl_80640388-_SDA_BASE_(r13)
+/* 803518DC 0034D53C 38 C0 10 00 */ li r6, 0x1000
+/* 803518E0 0034D540 91 5E 00 08 */ stw r10, 8(r30)
+/* 803518E4 0034D544 39 4A 00 01 */ addi r10, r10, 1
+/* 803518E8 0034D548 91 4D B0 C8 */ stw r10, lbl_80640388-_SDA_BASE_(r13)
+/* 803518EC 0034D54C 91 3E 00 0C */ stw r9, 0xc(r30)
+/* 803518F0 0034D550 91 3E 00 10 */ stw r9, 0x10(r30)
+/* 803518F4 0034D554 91 3E 00 14 */ stw r9, 0x14(r30)
+/* 803518F8 0034D558 91 3E 00 18 */ stw r9, 0x18(r30)
+/* 803518FC 0034D55C 91 3E 00 1C */ stw r9, 0x1c(r30)
+/* 80351900 0034D560 B1 3E 00 20 */ sth r9, 0x20(r30)
+/* 80351904 0034D564 91 3E 00 24 */ stw r9, 0x24(r30)
+/* 80351908 0034D568 91 3E 00 2C */ stw r9, 0x2c(r30)
+/* 8035190C 0034D56C 91 3E 00 30 */ stw r9, 0x30(r30)
+/* 80351910 0034D570 91 3E 00 34 */ stw r9, 0x34(r30)
+/* 80351914 0034D574 91 3E 00 38 */ stw r9, 0x38(r30)
+/* 80351918 0034D578 91 3E 00 3C */ stw r9, 0x3c(r30)
+/* 8035191C 0034D57C 91 3E 00 40 */ stw r9, 0x40(r30)
+/* 80351920 0034D580 91 3E 00 44 */ stw r9, 0x44(r30)
+/* 80351924 0034D584 91 3E 00 48 */ stw r9, 0x48(r30)
+/* 80351928 0034D588 91 1E 00 4C */ stw r8, 0x4c(r30)
+/* 8035192C 0034D58C 91 3E 00 50 */ stw r9, 0x50(r30)
+/* 80351930 0034D590 91 3E 01 08 */ stw r9, 0x108(r30)
+/* 80351934 0034D594 91 3E 01 0C */ stw r9, 0x10c(r30)
+/* 80351938 0034D598 91 3E 01 10 */ stw r9, 0x110(r30)
+/* 8035193C 0034D59C 91 3E 01 14 */ stw r9, 0x114(r30)
+/* 80351940 0034D5A0 91 3E 01 18 */ stw r9, 0x118(r30)
+/* 80351944 0034D5A4 91 3E 01 1C */ stw r9, 0x11c(r30)
+/* 80351948 0034D5A8 91 3E 01 20 */ stw r9, 0x120(r30)
+/* 8035194C 0034D5AC 91 3E 01 24 */ stw r9, 0x124(r30)
+/* 80351950 0034D5B0 91 1E 01 28 */ stw r8, 0x128(r30)
+/* 80351954 0034D5B4 91 3E 01 2C */ stw r9, 0x12c(r30)
+/* 80351958 0034D5B8 91 3E 01 30 */ stw r9, 0x130(r30)
+/* 8035195C 0034D5BC 91 3E 01 34 */ stw r9, 0x134(r30)
+/* 80351960 0034D5C0 91 3E 01 50 */ stw r9, 0x150(r30)
+/* 80351964 0034D5C4 91 3E 01 58 */ stw r9, 0x158(r30)
+/* 80351968 0034D5C8 91 3E 01 5C */ stw r9, 0x15c(r30)
+/* 8035196C 0034D5CC 91 3E 01 60 */ stw r9, 0x160(r30)
+/* 80351970 0034D5D0 90 FE 01 84 */ stw r7, 0x184(r30)
+/* 80351974 0034D5D4 B0 1E 01 8C */ sth r0, 0x18c(r30)
+/* 80351978 0034D5D8 91 3E 01 88 */ stw r9, 0x188(r30)
+/* 8035197C 0034D5DC 91 3E 01 90 */ stw r9, 0x190(r30)
+/* 80351980 0034D5E0 91 3E 01 B0 */ stw r9, 0x1b0(r30)
+/* 80351984 0034D5E4 4B FF EE F1 */ bl ghiInitBuffer
+/* 80351988 0034D5E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035198C 0034D5EC 41 82 00 18 */ beq lbl_803519A4
+/* 80351990 0034D5F0 7F C3 F3 78 */ mr r3, r30
+/* 80351994 0034D5F4 38 9E 00 78 */ addi r4, r30, 0x78
+/* 80351998 0034D5F8 38 A0 08 00 */ li r5, 0x800
+/* 8035199C 0034D5FC 38 C0 04 00 */ li r6, 0x400
+/* 803519A0 0034D600 4B FF EE D5 */ bl ghiInitBuffer
+lbl_803519A4:
+/* 803519A4 0034D604 2C 03 00 00 */ cmpwi r3, 0
+/* 803519A8 0034D608 41 82 00 18 */ beq lbl_803519C0
+/* 803519AC 0034D60C 7F C3 F3 78 */ mr r3, r30
+/* 803519B0 0034D610 38 9E 00 9C */ addi r4, r30, 0x9c
+/* 803519B4 0034D614 38 A0 08 00 */ li r5, 0x800
+/* 803519B8 0034D618 38 C0 08 00 */ li r6, 0x800
+/* 803519BC 0034D61C 4B FF EE B9 */ bl ghiInitBuffer
+lbl_803519C0:
+/* 803519C0 0034D620 2C 03 00 00 */ cmpwi r3, 0
+/* 803519C4 0034D624 41 82 00 18 */ beq lbl_803519DC
+/* 803519C8 0034D628 7F C3 F3 78 */ mr r3, r30
+/* 803519CC 0034D62C 38 9E 00 C0 */ addi r4, r30, 0xc0
+/* 803519D0 0034D630 38 A0 08 00 */ li r5, 0x800
+/* 803519D4 0034D634 38 C0 04 00 */ li r6, 0x400
+/* 803519D8 0034D638 4B FF EE 9D */ bl ghiInitBuffer
+lbl_803519DC:
+/* 803519DC 0034D63C 2C 03 00 00 */ cmpwi r3, 0
+/* 803519E0 0034D640 40 82 00 18 */ bne lbl_803519F8
+/* 803519E4 0034D644 7F C3 F3 78 */ mr r3, r30
+/* 803519E8 0034D648 48 00 00 3D */ bl ghiFreeConnection
+/* 803519EC 0034D64C 4B FF F9 05 */ bl ghiUnlock
+/* 803519F0 0034D650 38 60 00 00 */ li r3, 0
+/* 803519F4 0034D654 48 00 00 18 */ b lbl_80351A0C
+lbl_803519F8:
+/* 803519F8 0034D658 80 6D B0 CC */ lwz r3, lbl_8064038C-_SDA_BASE_(r13)
+/* 803519FC 0034D65C 38 03 00 01 */ addi r0, r3, 1
+/* 80351A00 0034D660 90 0D B0 CC */ stw r0, lbl_8064038C-_SDA_BASE_(r13)
+/* 80351A04 0034D664 4B FF F8 ED */ bl ghiUnlock
+/* 80351A08 0034D668 7F C3 F3 78 */ mr r3, r30
+lbl_80351A0C:
+/* 80351A0C 0034D66C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351A10 0034D670 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80351A14 0034D674 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80351A18 0034D678 7C 08 03 A6 */ mtlr r0
+/* 80351A1C 0034D67C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351A20 0034D680 4E 80 00 20 */ blr
+
+.global ghiFreeConnection
+ghiFreeConnection:
+/* 80351A24 0034D684 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351A28 0034D688 7C 08 02 A6 */ mflr r0
+/* 80351A2C 0034D68C 2C 03 00 00 */ cmpwi r3, 0
+/* 80351A30 0034D690 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80351A34 0034D694 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351A38 0034D698 7C 7F 1B 78 */ mr r31, r3
+/* 80351A3C 0034D69C 40 82 00 0C */ bne lbl_80351A48
+/* 80351A40 0034D6A0 38 60 00 00 */ li r3, 0
+/* 80351A44 0034D6A4 48 00 01 40 */ b lbl_80351B84
+lbl_80351A48:
+/* 80351A48 0034D6A8 80 03 00 00 */ lwz r0, 0(r3)
+/* 80351A4C 0034D6AC 2C 00 00 00 */ cmpwi r0, 0
+/* 80351A50 0034D6B0 40 82 00 0C */ bne lbl_80351A5C
+/* 80351A54 0034D6B4 38 60 00 00 */ li r3, 0
+/* 80351A58 0034D6B8 48 00 01 2C */ b lbl_80351B84
+lbl_80351A5C:
+/* 80351A5C 0034D6BC 80 63 00 04 */ lwz r3, 4(r3)
+/* 80351A60 0034D6C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80351A64 0034D6C4 40 80 00 0C */ bge lbl_80351A70
+/* 80351A68 0034D6C8 38 60 00 00 */ li r3, 0
+/* 80351A6C 0034D6CC 48 00 01 18 */ b lbl_80351B84
+lbl_80351A70:
+/* 80351A70 0034D6D0 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
+/* 80351A74 0034D6D4 7C 03 00 00 */ cmpw r3, r0
+/* 80351A78 0034D6D8 41 80 00 0C */ blt lbl_80351A84
+/* 80351A7C 0034D6DC 38 60 00 00 */ li r3, 0
+/* 80351A80 0034D6E0 48 00 01 04 */ b lbl_80351B84
+lbl_80351A84:
+/* 80351A84 0034D6E4 4B FF F8 69 */ bl ghiLock
+/* 80351A88 0034D6E8 80 7F 00 14 */ lwz r3, 0x14(r31)
+/* 80351A8C 0034D6EC 4B FE 78 AD */ bl gsifree
+/* 80351A90 0034D6F0 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 80351A94 0034D6F4 4B FE 78 A5 */ bl gsifree
+/* 80351A98 0034D6F8 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 80351A9C 0034D6FC 4B FE 78 9D */ bl gsifree
+/* 80351AA0 0034D700 80 7F 00 2C */ lwz r3, 0x2c(r31)
+/* 80351AA4 0034D704 4B FE 78 95 */ bl gsifree
+/* 80351AA8 0034D708 80 7F 01 2C */ lwz r3, 0x12c(r31)
+/* 80351AAC 0034D70C 4B FE 78 8D */ bl gsifree
+/* 80351AB0 0034D710 80 7F 01 88 */ lwz r3, 0x188(r31)
+/* 80351AB4 0034D714 4B FE 78 85 */ bl gsifree
+/* 80351AB8 0034D718 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80351ABC 0034D71C 2C 03 FF FF */ cmpwi r3, -1
+/* 80351AC0 0034D720 41 82 00 14 */ beq lbl_80351AD4
+/* 80351AC4 0034D724 38 80 00 02 */ li r4, 2
+/* 80351AC8 0034D728 4B FE 61 69 */ bl shutdown
+/* 80351ACC 0034D72C 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80351AD0 0034D730 4B FE 61 2D */ bl closesocket
+lbl_80351AD4:
+/* 80351AD4 0034D734 38 7F 00 54 */ addi r3, r31, 0x54
+/* 80351AD8 0034D738 4B FF EF 85 */ bl ghiFreeBuffer
+/* 80351ADC 0034D73C 38 7F 00 78 */ addi r3, r31, 0x78
+/* 80351AE0 0034D740 4B FF EF 7D */ bl ghiFreeBuffer
+/* 80351AE4 0034D744 38 7F 00 9C */ addi r3, r31, 0x9c
+/* 80351AE8 0034D748 4B FF EF 75 */ bl ghiFreeBuffer
+/* 80351AEC 0034D74C 38 7F 00 C0 */ addi r3, r31, 0xc0
+/* 80351AF0 0034D750 4B FF EF 6D */ bl ghiFreeBuffer
+/* 80351AF4 0034D754 38 7F 00 E4 */ addi r3, r31, 0xe4
+/* 80351AF8 0034D758 4B FF EF 65 */ bl ghiFreeBuffer
+/* 80351AFC 0034D75C 80 1F 01 64 */ lwz r0, 0x164(r31)
+/* 80351B00 0034D760 2C 00 00 00 */ cmpwi r0, 0
+/* 80351B04 0034D764 41 82 00 0C */ beq lbl_80351B10
+/* 80351B08 0034D768 7F E3 FB 78 */ mr r3, r31
+/* 80351B0C 0034D76C 48 00 2E 81 */ bl ghiPostCleanupState
+lbl_80351B10:
+/* 80351B10 0034D770 80 7F 01 60 */ lwz r3, 0x160(r31)
+/* 80351B14 0034D774 2C 03 00 00 */ cmpwi r3, 0
+/* 80351B18 0034D778 41 82 00 20 */ beq lbl_80351B38
+/* 80351B1C 0034D77C 48 00 27 25 */ bl ghiIsPostAutoFree
+/* 80351B20 0034D780 2C 03 00 00 */ cmpwi r3, 0
+/* 80351B24 0034D784 41 82 00 14 */ beq lbl_80351B38
+/* 80351B28 0034D788 80 7F 01 60 */ lwz r3, 0x160(r31)
+/* 80351B2C 0034D78C 48 00 27 1D */ bl ghiFreePost
+/* 80351B30 0034D790 38 00 00 00 */ li r0, 0
+/* 80351B34 0034D794 90 1F 01 60 */ stw r0, 0x160(r31)
+lbl_80351B38:
+/* 80351B38 0034D798 80 1F 01 98 */ lwz r0, 0x198(r31)
+/* 80351B3C 0034D79C 2C 00 00 00 */ cmpwi r0, 0
+/* 80351B40 0034D7A0 41 82 00 28 */ beq lbl_80351B68
+/* 80351B44 0034D7A4 81 9F 01 A4 */ lwz r12, 0x1a4(r31)
+/* 80351B48 0034D7A8 2C 0C 00 00 */ cmpwi r12, 0
+/* 80351B4C 0034D7AC 41 82 00 14 */ beq lbl_80351B60
+/* 80351B50 0034D7B0 7F E3 FB 78 */ mr r3, r31
+/* 80351B54 0034D7B4 38 9F 01 90 */ addi r4, r31, 0x190
+/* 80351B58 0034D7B8 7D 89 03 A6 */ mtctr r12
+/* 80351B5C 0034D7BC 4E 80 04 21 */ bctrl
+lbl_80351B60:
+/* 80351B60 0034D7C0 38 00 00 00 */ li r0, 0
+/* 80351B64 0034D7C4 90 1F 01 98 */ stw r0, 0x198(r31)
+lbl_80351B68:
+/* 80351B68 0034D7C8 38 00 00 00 */ li r0, 0
+/* 80351B6C 0034D7CC 90 1F 00 00 */ stw r0, 0(r31)
+/* 80351B70 0034D7D0 80 6D B0 CC */ lwz r3, lbl_8064038C-_SDA_BASE_(r13)
+/* 80351B74 0034D7D4 38 03 FF FF */ addi r0, r3, -1
+/* 80351B78 0034D7D8 90 0D B0 CC */ stw r0, lbl_8064038C-_SDA_BASE_(r13)
+/* 80351B7C 0034D7DC 4B FF F7 75 */ bl ghiUnlock
+/* 80351B80 0034D7E0 38 60 00 01 */ li r3, 1
+lbl_80351B84:
+/* 80351B84 0034D7E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351B88 0034D7E8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80351B8C 0034D7EC 7C 08 03 A6 */ mtlr r0
+/* 80351B90 0034D7F0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351B94 0034D7F4 4E 80 00 20 */ blr
+
+.global ghiRequestToConnection
+ghiRequestToConnection:
+/* 80351B98 0034D7F8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351B9C 0034D7FC 7C 08 02 A6 */ mflr r0
+/* 80351BA0 0034D800 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80351BA4 0034D804 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351BA8 0034D808 7C 7F 1B 78 */ mr r31, r3
+/* 80351BAC 0034D80C 4B FF F7 41 */ bl ghiLock
+/* 80351BB0 0034D810 2C 1F 00 00 */ cmpwi r31, 0
+/* 80351BB4 0034D814 41 80 00 10 */ blt lbl_80351BC4
+/* 80351BB8 0034D818 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
+/* 80351BBC 0034D81C 7C 1F 00 00 */ cmpw r31, r0
+/* 80351BC0 0034D820 41 80 00 10 */ blt lbl_80351BD0
+lbl_80351BC4:
+/* 80351BC4 0034D824 4B FF F7 2D */ bl ghiUnlock
+/* 80351BC8 0034D828 38 60 00 00 */ li r3, 0
+/* 80351BCC 0034D82C 48 00 00 28 */ b lbl_80351BF4
+lbl_80351BD0:
+/* 80351BD0 0034D830 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
+/* 80351BD4 0034D834 57 E0 10 3A */ slwi r0, r31, 2
+/* 80351BD8 0034D838 7F E3 00 2E */ lwzx r31, r3, r0
+/* 80351BDC 0034D83C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80351BE0 0034D840 2C 00 00 00 */ cmpwi r0, 0
+/* 80351BE4 0034D844 40 82 00 08 */ bne lbl_80351BEC
+/* 80351BE8 0034D848 3B E0 00 00 */ li r31, 0
+lbl_80351BEC:
+/* 80351BEC 0034D84C 4B FF F7 05 */ bl ghiUnlock
+/* 80351BF0 0034D850 7F E3 FB 78 */ mr r3, r31
+lbl_80351BF4:
+/* 80351BF4 0034D854 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351BF8 0034D858 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80351BFC 0034D85C 7C 08 03 A6 */ mtlr r0
+/* 80351C00 0034D860 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351C04 0034D864 4E 80 00 20 */ blr
+
+.global ghiEnumConnections
+ghiEnumConnections:
+/* 80351C08 0034D868 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80351C0C 0034D86C 7C 08 02 A6 */ mflr r0
+/* 80351C10 0034D870 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80351C14 0034D874 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80351C18 0034D878 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80351C1C 0034D87C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80351C20 0034D880 7C 7D 1B 78 */ mr r29, r3
+/* 80351C24 0034D884 80 0D B0 CC */ lwz r0, lbl_8064038C-_SDA_BASE_(r13)
+/* 80351C28 0034D888 2C 00 00 00 */ cmpwi r0, 0
+/* 80351C2C 0034D88C 40 81 00 4C */ ble lbl_80351C78
+/* 80351C30 0034D890 4B FF F6 BD */ bl ghiLock
+/* 80351C34 0034D894 3B C0 00 00 */ li r30, 0
+/* 80351C38 0034D898 3B E0 00 00 */ li r31, 0
+/* 80351C3C 0034D89C 48 00 00 2C */ b lbl_80351C68
+lbl_80351C40:
+/* 80351C40 0034D8A0 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
+/* 80351C44 0034D8A4 7C 63 F8 2E */ lwzx r3, r3, r31
+/* 80351C48 0034D8A8 80 03 00 00 */ lwz r0, 0(r3)
+/* 80351C4C 0034D8AC 2C 00 00 00 */ cmpwi r0, 0
+/* 80351C50 0034D8B0 41 82 00 10 */ beq lbl_80351C60
+/* 80351C54 0034D8B4 7F AC EB 78 */ mr r12, r29
+/* 80351C58 0034D8B8 7D 89 03 A6 */ mtctr r12
+/* 80351C5C 0034D8BC 4E 80 04 21 */ bctrl
+lbl_80351C60:
+/* 80351C60 0034D8C0 3B FF 00 04 */ addi r31, r31, 4
+/* 80351C64 0034D8C4 3B DE 00 01 */ addi r30, r30, 1
+lbl_80351C68:
+/* 80351C68 0034D8C8 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
+/* 80351C6C 0034D8CC 7C 1E 00 00 */ cmpw r30, r0
+/* 80351C70 0034D8D0 41 80 FF D0 */ blt lbl_80351C40
+/* 80351C74 0034D8D4 4B FF F6 7D */ bl ghiUnlock
+lbl_80351C78:
+/* 80351C78 0034D8D8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80351C7C 0034D8DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80351C80 0034D8E0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80351C84 0034D8E4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80351C88 0034D8E8 7C 08 03 A6 */ mtlr r0
+/* 80351C8C 0034D8EC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80351C90 0034D8F0 4E 80 00 20 */ blr
+
+.global ghiRedirectConnection
+ghiRedirectConnection:
+/* 80351C94 0034D8F4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351C98 0034D8F8 7C 08 02 A6 */ mflr r0
+/* 80351C9C 0034D8FC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80351CA0 0034D900 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351CA4 0034D904 3B E0 00 00 */ li r31, 0
+/* 80351CA8 0034D908 93 C1 00 08 */ stw r30, 8(r1)
+/* 80351CAC 0034D90C 7C 7E 1B 78 */ mr r30, r3
+/* 80351CB0 0034D910 80 03 01 B0 */ lwz r0, 0x1b0(r3)
+/* 80351CB4 0034D914 93 E3 00 10 */ stw r31, 0x10(r3)
+/* 80351CB8 0034D918 2C 00 00 00 */ cmpwi r0, 0
+/* 80351CBC 0034D91C 41 82 00 18 */ beq lbl_80351CD4
+/* 80351CC0 0034D920 7C 03 03 78 */ mr r3, r0
+/* 80351CC4 0034D924 4B FE 70 85 */ bl gsiCancelResolvingHostname
+/* 80351CC8 0034D928 80 7E 01 B0 */ lwz r3, 0x1b0(r30)
+/* 80351CCC 0034D92C 4B FE 76 6D */ bl gsifree
+/* 80351CD0 0034D930 93 FE 01 B0 */ stw r31, 0x1b0(r30)
+lbl_80351CD4:
+/* 80351CD4 0034D934 80 7E 00 14 */ lwz r3, 0x14(r30)
+/* 80351CD8 0034D938 4B FE 76 61 */ bl gsifree
+/* 80351CDC 0034D93C 80 1E 01 2C */ lwz r0, 0x12c(r30)
+/* 80351CE0 0034D940 3B E0 00 00 */ li r31, 0
+/* 80351CE4 0034D944 80 7E 00 18 */ lwz r3, 0x18(r30)
+/* 80351CE8 0034D948 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 80351CEC 0034D94C 93 FE 01 2C */ stw r31, 0x12c(r30)
+/* 80351CF0 0034D950 4B FE 76 49 */ bl gsifree
+/* 80351CF4 0034D954 93 FE 00 18 */ stw r31, 0x18(r30)
+/* 80351CF8 0034D958 80 7E 00 24 */ lwz r3, 0x24(r30)
+/* 80351CFC 0034D95C 93 FE 00 1C */ stw r31, 0x1c(r30)
+/* 80351D00 0034D960 B3 FE 00 20 */ sth r31, 0x20(r30)
+/* 80351D04 0034D964 4B FE 76 35 */ bl gsifree
+/* 80351D08 0034D968 93 FE 00 24 */ stw r31, 0x24(r30)
+/* 80351D0C 0034D96C 38 80 00 02 */ li r4, 2
+/* 80351D10 0034D970 80 7E 00 4C */ lwz r3, 0x4c(r30)
+/* 80351D14 0034D974 4B FE 5F 1D */ bl shutdown
+/* 80351D18 0034D978 80 7E 00 4C */ lwz r3, 0x4c(r30)
+/* 80351D1C 0034D97C 4B FE 5E E1 */ bl closesocket
+/* 80351D20 0034D980 38 00 FF FF */ li r0, -1
+/* 80351D24 0034D984 38 7E 00 54 */ addi r3, r30, 0x54
+/* 80351D28 0034D988 90 1E 00 4C */ stw r0, 0x4c(r30)
+/* 80351D2C 0034D98C 4B FF F3 05 */ bl ghiResetBuffer
+/* 80351D30 0034D990 38 7E 00 78 */ addi r3, r30, 0x78
+/* 80351D34 0034D994 4B FF F2 FD */ bl ghiResetBuffer
+/* 80351D38 0034D998 38 7E 00 9C */ addi r3, r30, 0x9c
+/* 80351D3C 0034D99C 4B FF F2 F5 */ bl ghiResetBuffer
+/* 80351D40 0034D9A0 38 7E 00 C0 */ addi r3, r30, 0xc0
+/* 80351D44 0034D9A4 4B FF F2 ED */ bl ghiResetBuffer
+/* 80351D48 0034D9A8 80 1E 01 98 */ lwz r0, 0x198(r30)
+/* 80351D4C 0034D9AC 93 FE 01 0C */ stw r31, 0x10c(r30)
+/* 80351D50 0034D9B0 2C 00 00 00 */ cmpwi r0, 0
+/* 80351D54 0034D9B4 93 FE 01 10 */ stw r31, 0x110(r30)
+/* 80351D58 0034D9B8 93 FE 01 14 */ stw r31, 0x114(r30)
+/* 80351D5C 0034D9BC 93 FE 01 18 */ stw r31, 0x118(r30)
+/* 80351D60 0034D9C0 93 FE 01 1C */ stw r31, 0x11c(r30)
+/* 80351D64 0034D9C4 93 FE 01 54 */ stw r31, 0x154(r30)
+/* 80351D68 0034D9C8 41 82 00 4C */ beq lbl_80351DB4
+/* 80351D6C 0034D9CC 81 9E 01 A4 */ lwz r12, 0x1a4(r30)
+/* 80351D70 0034D9D0 2C 0C 00 00 */ cmpwi r12, 0
+/* 80351D74 0034D9D4 41 82 00 14 */ beq lbl_80351D88
+/* 80351D78 0034D9D8 7F C3 F3 78 */ mr r3, r30
+/* 80351D7C 0034D9DC 38 9E 01 90 */ addi r4, r30, 0x190
+/* 80351D80 0034D9E0 7D 89 03 A6 */ mtctr r12
+/* 80351D84 0034D9E4 4E 80 04 21 */ bctrl
+lbl_80351D88:
+/* 80351D88 0034D9E8 3B E0 00 00 */ li r31, 0
+/* 80351D8C 0034D9EC 3C 60 80 45 */ lis r3, lbl_8044BF70@ha
+/* 80351D90 0034D9F0 93 FE 01 98 */ stw r31, 0x198(r30)
+/* 80351D94 0034D9F4 38 63 BF 70 */ addi r3, r3, lbl_8044BF70@l
+/* 80351D98 0034D9F8 80 9E 00 14 */ lwz r4, 0x14(r30)
+/* 80351D9C 0034D9FC 38 A0 00 08 */ li r5, 8
+/* 80351DA0 0034DA00 4B E7 C7 C9 */ bl strncmp
+/* 80351DA4 0034DA04 2C 03 00 00 */ cmpwi r3, 0
+/* 80351DA8 0034DA08 41 82 00 0C */ beq lbl_80351DB4
+/* 80351DAC 0034DA0C 93 FE 01 94 */ stw r31, 0x194(r30)
+/* 80351DB0 0034DA10 93 FE 01 90 */ stw r31, 0x190(r30)
+lbl_80351DB4:
+/* 80351DB4 0034DA14 80 7E 01 30 */ lwz r3, 0x130(r30)
+/* 80351DB8 0034DA18 38 03 00 01 */ addi r0, r3, 1
+/* 80351DBC 0034DA1C 90 1E 01 30 */ stw r0, 0x130(r30)
+/* 80351DC0 0034DA20 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80351DC4 0034DA24 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80351DC8 0034DA28 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351DCC 0034DA2C 7C 08 03 A6 */ mtlr r0
+/* 80351DD0 0034DA30 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351DD4 0034DA34 4E 80 00 20 */ blr
+
+.global ghiCleanupConnections
+ghiCleanupConnections:
+/* 80351DD8 0034DA38 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351DDC 0034DA3C 7C 08 02 A6 */ mflr r0
+/* 80351DE0 0034DA40 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80351DE4 0034DA44 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351DE8 0034DA48 93 C1 00 08 */ stw r30, 8(r1)
+/* 80351DEC 0034DA4C 80 0D B0 D4 */ lwz r0, lbl_80640394-_SDA_BASE_(r13)
+/* 80351DF0 0034DA50 2C 00 00 00 */ cmpwi r0, 0
+/* 80351DF4 0034DA54 41 82 00 94 */ beq lbl_80351E88
+/* 80351DF8 0034DA58 80 0D B0 CC */ lwz r0, lbl_8064038C-_SDA_BASE_(r13)
+/* 80351DFC 0034DA5C 2C 00 00 00 */ cmpwi r0, 0
+/* 80351E00 0034DA60 40 81 00 44 */ ble lbl_80351E44
+/* 80351E04 0034DA64 4B FF F4 E9 */ bl ghiLock
+/* 80351E08 0034DA68 3B E0 00 00 */ li r31, 0
+/* 80351E0C 0034DA6C 3B C0 00 00 */ li r30, 0
+/* 80351E10 0034DA70 48 00 00 24 */ b lbl_80351E34
+lbl_80351E14:
+/* 80351E14 0034DA74 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
+/* 80351E18 0034DA78 7C 63 F0 2E */ lwzx r3, r3, r30
+/* 80351E1C 0034DA7C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80351E20 0034DA80 2C 00 00 00 */ cmpwi r0, 0
+/* 80351E24 0034DA84 41 82 00 08 */ beq lbl_80351E2C
+/* 80351E28 0034DA88 4B FF FB FD */ bl ghiFreeConnection
+lbl_80351E2C:
+/* 80351E2C 0034DA8C 3B DE 00 04 */ addi r30, r30, 4
+/* 80351E30 0034DA90 3B FF 00 01 */ addi r31, r31, 1
+lbl_80351E34:
+/* 80351E34 0034DA94 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
+/* 80351E38 0034DA98 7C 1F 00 00 */ cmpw r31, r0
+/* 80351E3C 0034DA9C 41 80 FF D8 */ blt lbl_80351E14
+/* 80351E40 0034DAA0 4B FF F4 B1 */ bl ghiUnlock
+lbl_80351E44:
+/* 80351E44 0034DAA4 3B C0 00 00 */ li r30, 0
+/* 80351E48 0034DAA8 3B E0 00 00 */ li r31, 0
+/* 80351E4C 0034DAAC 48 00 00 18 */ b lbl_80351E64
+lbl_80351E50:
+/* 80351E50 0034DAB0 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
+/* 80351E54 0034DAB4 7C 63 F8 2E */ lwzx r3, r3, r31
+/* 80351E58 0034DAB8 4B FE 74 E1 */ bl gsifree
+/* 80351E5C 0034DABC 3B FF 00 04 */ addi r31, r31, 4
+/* 80351E60 0034DAC0 3B DE 00 01 */ addi r30, r30, 1
+lbl_80351E64:
+/* 80351E64 0034DAC4 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
+/* 80351E68 0034DAC8 7C 1E 00 00 */ cmpw r30, r0
+/* 80351E6C 0034DACC 41 80 FF E4 */ blt lbl_80351E50
+/* 80351E70 0034DAD0 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
+/* 80351E74 0034DAD4 4B FE 74 C5 */ bl gsifree
+/* 80351E78 0034DAD8 38 00 00 00 */ li r0, 0
+/* 80351E7C 0034DADC 90 0D B0 D4 */ stw r0, lbl_80640394-_SDA_BASE_(r13)
+/* 80351E80 0034DAE0 90 0D B0 D0 */ stw r0, lbl_80640390-_SDA_BASE_(r13)
+/* 80351E84 0034DAE4 90 0D B0 CC */ stw r0, lbl_8064038C-_SDA_BASE_(r13)
+lbl_80351E88:
+/* 80351E88 0034DAE8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351E8C 0034DAEC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80351E90 0034DAF0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80351E94 0034DAF4 7C 08 03 A6 */ mtlr r0
+/* 80351E98 0034DAF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351E9C 0034DAFC 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpEncryption.s b/asm/SDK/DWC/gamespy/ghttpEncryption.s new file mode 100644 index 0000000..f3c7309 --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpEncryption.s @@ -0,0 +1,2076 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghttpSetRequestEncryptionEngine
+ghttpSetRequestEncryptionEngine:
+/* 80351EA0 0034DB00 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80351EA4 0034DB04 7C 08 02 A6 */ mflr r0
+/* 80351EA8 0034DB08 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80351EAC 0034DB0C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80351EB0 0034DB10 93 C1 00 08 */ stw r30, 8(r1)
+/* 80351EB4 0034DB14 7C 9E 23 78 */ mr r30, r4
+/* 80351EB8 0034DB18 4B FF FC E1 */ bl ghiRequestToConnection
+/* 80351EBC 0034DB1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80351EC0 0034DB20 7C 7F 1B 78 */ mr r31, r3
+/* 80351EC4 0034DB24 40 82 00 0C */ bne lbl_80351ED0
+/* 80351EC8 0034DB28 38 60 00 00 */ li r3, 0
+/* 80351ECC 0034DB2C 48 00 00 BC */ b lbl_80351F88
+lbl_80351ED0:
+/* 80351ED0 0034DB30 80 03 01 94 */ lwz r0, 0x194(r3)
+/* 80351ED4 0034DB34 7C 80 F0 00 */ cmpw cr1, r0, r30
+/* 80351ED8 0034DB38 40 86 00 0C */ bne cr1, lbl_80351EE4
+/* 80351EDC 0034DB3C 38 60 00 01 */ li r3, 1
+/* 80351EE0 0034DB40 48 00 00 A8 */ b lbl_80351F88
+lbl_80351EE4:
+/* 80351EE4 0034DB44 80 03 01 90 */ lwz r0, 0x190(r3)
+/* 80351EE8 0034DB48 2C 00 00 00 */ cmpwi r0, 0
+/* 80351EEC 0034DB4C 41 82 00 10 */ beq lbl_80351EFC
+/* 80351EF0 0034DB50 41 86 00 0C */ beq cr1, lbl_80351EFC
+/* 80351EF4 0034DB54 38 60 00 00 */ li r3, 0
+/* 80351EF8 0034DB58 48 00 00 90 */ b lbl_80351F88
+lbl_80351EFC:
+/* 80351EFC 0034DB5C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80351F00 0034DB60 40 82 00 28 */ bne lbl_80351F28
+/* 80351F04 0034DB64 3C 80 80 45 */ lis r4, lbl_8044BF80@ha
+/* 80351F08 0034DB68 80 63 00 14 */ lwz r3, 0x14(r3)
+/* 80351F0C 0034DB6C 38 84 BF 80 */ addi r4, r4, lbl_8044BF80@l
+/* 80351F10 0034DB70 38 A0 00 08 */ li r5, 8
+/* 80351F14 0034DB74 4B E7 C6 55 */ bl strncmp
+/* 80351F18 0034DB78 2C 03 00 00 */ cmpwi r3, 0
+/* 80351F1C 0034DB7C 40 82 00 0C */ bne lbl_80351F28
+/* 80351F20 0034DB80 38 60 00 00 */ li r3, 0
+/* 80351F24 0034DB84 48 00 00 64 */ b lbl_80351F88
+lbl_80351F28:
+/* 80351F28 0034DB88 2C 1E 00 00 */ cmpwi r30, 0
+/* 80351F2C 0034DB8C 93 DF 01 94 */ stw r30, 0x194(r31)
+/* 80351F30 0034DB90 40 82 00 14 */ bne lbl_80351F44
+/* 80351F34 0034DB94 38 00 00 00 */ li r0, 0
+/* 80351F38 0034DB98 38 60 00 01 */ li r3, 1
+/* 80351F3C 0034DB9C 90 1F 01 90 */ stw r0, 0x190(r31)
+/* 80351F40 0034DBA0 48 00 00 48 */ b lbl_80351F88
+lbl_80351F44:
+/* 80351F44 0034DBA4 38 00 00 00 */ li r0, 0
+/* 80351F48 0034DBA8 3C 80 80 35 */ lis r4, ghttpEncryptorSslInitFunc@ha
+/* 80351F4C 0034DBAC 90 1F 01 90 */ stw r0, 0x190(r31)
+/* 80351F50 0034DBB0 38 84 25 50 */ addi r4, r4, ghttpEncryptorSslInitFunc@l
+/* 80351F54 0034DBB4 3C 60 80 35 */ lis r3, ghttpEncryptorSslCleanupFunc@ha
+/* 80351F58 0034DBB8 3C A0 80 35 */ lis r5, ghttpEncryptorSslEncryptFunc@ha
+/* 80351F5C 0034DBBC 90 9F 01 A0 */ stw r4, 0x1a0(r31)
+/* 80351F60 0034DBC0 38 63 27 24 */ addi r3, r3, ghttpEncryptorSslCleanupFunc@l
+/* 80351F64 0034DBC4 3C 80 80 35 */ lis r4, ghttpEncryptorSslDecryptFunc@ha
+/* 80351F68 0034DBC8 38 A5 27 7C */ addi r5, r5, ghttpEncryptorSslEncryptFunc@l
+/* 80351F6C 0034DBCC 90 7F 01 A4 */ stw r3, 0x1a4(r31)
+/* 80351F70 0034DBD0 38 84 29 98 */ addi r4, r4, ghttpEncryptorSslDecryptFunc@l
+/* 80351F74 0034DBD4 38 60 00 01 */ li r3, 1
+/* 80351F78 0034DBD8 90 BF 01 A8 */ stw r5, 0x1a8(r31)
+/* 80351F7C 0034DBDC 90 9F 01 AC */ stw r4, 0x1ac(r31)
+/* 80351F80 0034DBE0 90 1F 01 98 */ stw r0, 0x198(r31)
+/* 80351F84 0034DBE4 90 1F 01 9C */ stw r0, 0x19c(r31)
+lbl_80351F88:
+/* 80351F88 0034DBE8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80351F8C 0034DBEC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80351F90 0034DBF0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80351F94 0034DBF4 7C 08 03 A6 */ mtlr r0
+/* 80351F98 0034DBF8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80351F9C 0034DBFC 4E 80 00 20 */ blr
+
+.global ghiEncryptorParseASN1Sequence
+ghiEncryptorParseASN1Sequence:
+/* 80351FA0 0034DC00 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80351FA4 0034DC04 7C 08 02 A6 */ mflr r0
+/* 80351FA8 0034DC08 38 A0 00 01 */ li r5, 1
+/* 80351FAC 0034DC0C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80351FB0 0034DC10 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80351FB4 0034DC14 3B E0 00 00 */ li r31, 0
+/* 80351FB8 0034DC18 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80351FBC 0034DC1C 7C 9E 23 78 */ mr r30, r4
+/* 80351FC0 0034DC20 38 81 00 08 */ addi r4, r1, 8
+/* 80351FC4 0034DC24 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80351FC8 0034DC28 7C 7D 1B 78 */ mr r29, r3
+/* 80351FCC 0034DC2C 9B E1 00 08 */ stb r31, 8(r1)
+/* 80351FD0 0034DC30 4B FF F1 79 */ bl ghiReadDataFromBufferFixed
+/* 80351FD4 0034DC34 2C 03 00 00 */ cmpwi r3, 0
+/* 80351FD8 0034DC38 40 82 00 0C */ bne lbl_80351FE4
+/* 80351FDC 0034DC3C 38 60 00 00 */ li r3, 0
+/* 80351FE0 0034DC40 48 00 01 00 */ b lbl_803520E0
+lbl_80351FE4:
+/* 80351FE4 0034DC44 88 01 00 08 */ lbz r0, 8(r1)
+/* 80351FE8 0034DC48 2C 00 00 30 */ cmpwi r0, 0x30
+/* 80351FEC 0034DC4C 41 82 00 0C */ beq lbl_80351FF8
+/* 80351FF0 0034DC50 38 60 00 00 */ li r3, 0
+/* 80351FF4 0034DC54 48 00 00 EC */ b lbl_803520E0
+lbl_80351FF8:
+/* 80351FF8 0034DC58 7F A3 EB 78 */ mr r3, r29
+/* 80351FFC 0034DC5C 38 81 00 08 */ addi r4, r1, 8
+/* 80352000 0034DC60 38 A0 00 01 */ li r5, 1
+/* 80352004 0034DC64 4B FF F1 45 */ bl ghiReadDataFromBufferFixed
+/* 80352008 0034DC68 2C 03 00 00 */ cmpwi r3, 0
+/* 8035200C 0034DC6C 40 82 00 0C */ bne lbl_80352018
+/* 80352010 0034DC70 38 60 00 00 */ li r3, 0
+/* 80352014 0034DC74 48 00 00 CC */ b lbl_803520E0
+lbl_80352018:
+/* 80352018 0034DC78 88 81 00 08 */ lbz r4, 8(r1)
+/* 8035201C 0034DC7C 54 80 06 30 */ rlwinm r0, r4, 0, 0x18, 0x18
+/* 80352020 0034DC80 2C 00 00 80 */ cmpwi r0, 0x80
+/* 80352024 0034DC84 40 82 00 94 */ bne lbl_803520B8
+/* 80352028 0034DC88 68 80 00 80 */ xori r0, r4, 0x80
+/* 8035202C 0034DC8C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80352030 0034DC90 7C 05 07 74 */ extsb r5, r0
+/* 80352034 0034DC94 28 05 00 04 */ cmplwi r5, 4
+/* 80352038 0034DC98 98 01 00 08 */ stb r0, 8(r1)
+/* 8035203C 0034DC9C 40 81 00 0C */ ble lbl_80352048
+/* 80352040 0034DCA0 38 00 00 00 */ li r0, 0
+/* 80352044 0034DCA4 48 00 00 38 */ b lbl_8035207C
+lbl_80352048:
+/* 80352048 0034DCA8 20 05 00 04 */ subfic r0, r5, 4
+/* 8035204C 0034DCAC 38 81 00 0C */ addi r4, r1, 0xc
+/* 80352050 0034DCB0 7F A3 EB 78 */ mr r3, r29
+/* 80352054 0034DCB4 7C 84 02 14 */ add r4, r4, r0
+/* 80352058 0034DCB8 4B FF F0 F1 */ bl ghiReadDataFromBufferFixed
+/* 8035205C 0034DCBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80352060 0034DCC0 40 82 00 0C */ bne lbl_8035206C
+/* 80352064 0034DCC4 38 00 00 00 */ li r0, 0
+/* 80352068 0034DCC8 48 00 00 14 */ b lbl_8035207C
+lbl_8035206C:
+/* 8035206C 0034DCCC 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80352070 0034DCD0 4B FA 4D 09 */ bl SOHtoNl
+/* 80352074 0034DCD4 90 61 00 0C */ stw r3, 0xc(r1)
+/* 80352078 0034DCD8 38 00 00 01 */ li r0, 1
+lbl_8035207C:
+/* 8035207C 0034DCDC 2C 00 00 00 */ cmpwi r0, 0
+/* 80352080 0034DCE0 40 82 00 0C */ bne lbl_8035208C
+/* 80352084 0034DCE4 38 60 00 00 */ li r3, 0
+/* 80352088 0034DCE8 48 00 00 58 */ b lbl_803520E0
+lbl_8035208C:
+/* 8035208C 0034DCEC 80 7D 00 10 */ lwz r3, 0x10(r29)
+/* 80352090 0034DCF0 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 80352094 0034DCF4 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80352098 0034DCF8 7C 03 00 50 */ subf r0, r3, r0
+/* 8035209C 0034DCFC 7C 04 00 00 */ cmpw r4, r0
+/* 803520A0 0034DD00 40 81 00 0C */ ble lbl_803520AC
+/* 803520A4 0034DD04 38 60 00 00 */ li r3, 0
+/* 803520A8 0034DD08 48 00 00 38 */ b lbl_803520E0
+lbl_803520AC:
+/* 803520AC 0034DD0C 90 9E 00 00 */ stw r4, 0(r30)
+/* 803520B0 0034DD10 38 60 00 01 */ li r3, 1
+/* 803520B4 0034DD14 48 00 00 2C */ b lbl_803520E0
+lbl_803520B8:
+/* 803520B8 0034DD18 80 7D 00 10 */ lwz r3, 0x10(r29)
+/* 803520BC 0034DD1C 7C 84 07 74 */ extsb r4, r4
+/* 803520C0 0034DD20 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 803520C4 0034DD24 7C 03 00 50 */ subf r0, r3, r0
+/* 803520C8 0034DD28 7C 04 00 00 */ cmpw r4, r0
+/* 803520CC 0034DD2C 40 81 00 0C */ ble lbl_803520D8
+/* 803520D0 0034DD30 38 60 00 00 */ li r3, 0
+/* 803520D4 0034DD34 48 00 00 0C */ b lbl_803520E0
+lbl_803520D8:
+/* 803520D8 0034DD38 90 9E 00 00 */ stw r4, 0(r30)
+/* 803520DC 0034DD3C 38 60 00 01 */ li r3, 1
+lbl_803520E0:
+/* 803520E0 0034DD40 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803520E4 0034DD44 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803520E8 0034DD48 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803520EC 0034DD4C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803520F0 0034DD50 7C 08 03 A6 */ mtlr r0
+/* 803520F4 0034DD54 38 21 00 20 */ addi r1, r1, 0x20
+/* 803520F8 0034DD58 4E 80 00 20 */ blr
+
+.global ghttpEncryptorGenerateEncryptionKeys
+ghttpEncryptorGenerateEncryptionKeys:
+/* 803520FC 0034DD5C 94 21 FE D0 */ stwu r1, -0x130(r1)
+/* 80352100 0034DD60 7C 08 02 A6 */ mflr r0
+/* 80352104 0034DD64 90 01 01 34 */ stw r0, 0x134(r1)
+/* 80352108 0034DD68 93 E1 01 2C */ stw r31, 0x12c(r1)
+/* 8035210C 0034DD6C 7C 7F 1B 78 */ mr r31, r3
+/* 80352110 0034DD70 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80352114 0034DD74 4B FE A3 1D */ bl SHA1Reset
+/* 80352118 0034DD78 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035211C 0034DD7C 38 8D 93 98 */ addi r4, r13, lbl_8063E658-_SDA_BASE_
+/* 80352120 0034DD80 38 A0 00 01 */ li r5, 1
+/* 80352124 0034DD84 4B FE A5 69 */ bl SHA1Input
+/* 80352128 0034DD88 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035212C 0034DD8C 38 9F 06 A4 */ addi r4, r31, 0x6a4
+/* 80352130 0034DD90 38 A0 00 30 */ li r5, 0x30
+/* 80352134 0034DD94 4B FE A5 59 */ bl SHA1Input
+/* 80352138 0034DD98 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035213C 0034DD9C 38 9F 06 84 */ addi r4, r31, 0x684
+/* 80352140 0034DDA0 38 A0 00 20 */ li r5, 0x20
+/* 80352144 0034DDA4 4B FE A5 49 */ bl SHA1Input
+/* 80352148 0034DDA8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035214C 0034DDAC 38 9F 06 64 */ addi r4, r31, 0x664
+/* 80352150 0034DDB0 38 A0 00 20 */ li r5, 0x20
+/* 80352154 0034DDB4 4B FE A5 39 */ bl SHA1Input
+/* 80352158 0034DDB8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035215C 0034DDBC 38 81 00 08 */ addi r4, r1, 8
+/* 80352160 0034DDC0 4B FE A3 3D */ bl SHA1Result
+/* 80352164 0034DDC4 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352168 0034DDC8 4B FE 4B 3D */ bl MD5Init
+/* 8035216C 0034DDCC 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352170 0034DDD0 38 9F 06 A4 */ addi r4, r31, 0x6a4
+/* 80352174 0034DDD4 38 A0 00 30 */ li r5, 0x30
+/* 80352178 0034DDD8 4B FE 4B 6D */ bl MD5Update
+/* 8035217C 0034DDDC 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352180 0034DDE0 38 81 00 08 */ addi r4, r1, 8
+/* 80352184 0034DDE4 38 A0 00 14 */ li r5, 0x14
+/* 80352188 0034DDE8 4B FE 4B 5D */ bl MD5Update
+/* 8035218C 0034DDEC 38 7F 06 D4 */ addi r3, r31, 0x6d4
+/* 80352190 0034DDF0 38 81 00 60 */ addi r4, r1, 0x60
+/* 80352194 0034DDF4 4B FE 4C 3D */ bl MD5Final
+/* 80352198 0034DDF8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035219C 0034DDFC 4B FE A2 95 */ bl SHA1Reset
+/* 803521A0 0034DE00 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803521A4 0034DE04 38 8D 93 9C */ addi r4, r13, lbl_8063E65C-_SDA_BASE_
+/* 803521A8 0034DE08 38 A0 00 02 */ li r5, 2
+/* 803521AC 0034DE0C 4B FE A4 E1 */ bl SHA1Input
+/* 803521B0 0034DE10 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803521B4 0034DE14 38 9F 06 A4 */ addi r4, r31, 0x6a4
+/* 803521B8 0034DE18 38 A0 00 30 */ li r5, 0x30
+/* 803521BC 0034DE1C 4B FE A4 D1 */ bl SHA1Input
+/* 803521C0 0034DE20 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803521C4 0034DE24 38 9F 06 84 */ addi r4, r31, 0x684
+/* 803521C8 0034DE28 38 A0 00 20 */ li r5, 0x20
+/* 803521CC 0034DE2C 4B FE A4 C1 */ bl SHA1Input
+/* 803521D0 0034DE30 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803521D4 0034DE34 38 9F 06 64 */ addi r4, r31, 0x664
+/* 803521D8 0034DE38 38 A0 00 20 */ li r5, 0x20
+/* 803521DC 0034DE3C 4B FE A4 B1 */ bl SHA1Input
+/* 803521E0 0034DE40 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803521E4 0034DE44 38 81 00 08 */ addi r4, r1, 8
+/* 803521E8 0034DE48 4B FE A2 B5 */ bl SHA1Result
+/* 803521EC 0034DE4C 38 61 00 60 */ addi r3, r1, 0x60
+/* 803521F0 0034DE50 4B FE 4A B5 */ bl MD5Init
+/* 803521F4 0034DE54 38 61 00 60 */ addi r3, r1, 0x60
+/* 803521F8 0034DE58 38 9F 06 A4 */ addi r4, r31, 0x6a4
+/* 803521FC 0034DE5C 38 A0 00 30 */ li r5, 0x30
+/* 80352200 0034DE60 4B FE 4A E5 */ bl MD5Update
+/* 80352204 0034DE64 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352208 0034DE68 38 81 00 08 */ addi r4, r1, 8
+/* 8035220C 0034DE6C 38 A0 00 14 */ li r5, 0x14
+/* 80352210 0034DE70 4B FE 4A D5 */ bl MD5Update
+/* 80352214 0034DE74 38 7F 06 E4 */ addi r3, r31, 0x6e4
+/* 80352218 0034DE78 38 81 00 60 */ addi r4, r1, 0x60
+/* 8035221C 0034DE7C 4B FE 4B B5 */ bl MD5Final
+/* 80352220 0034DE80 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80352224 0034DE84 4B FE A2 0D */ bl SHA1Reset
+/* 80352228 0034DE88 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035222C 0034DE8C 38 8D 93 A0 */ addi r4, r13, lbl_8063E660-_SDA_BASE_
+/* 80352230 0034DE90 38 A0 00 03 */ li r5, 3
+/* 80352234 0034DE94 4B FE A4 59 */ bl SHA1Input
+/* 80352238 0034DE98 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035223C 0034DE9C 38 9F 06 A4 */ addi r4, r31, 0x6a4
+/* 80352240 0034DEA0 38 A0 00 30 */ li r5, 0x30
+/* 80352244 0034DEA4 4B FE A4 49 */ bl SHA1Input
+/* 80352248 0034DEA8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035224C 0034DEAC 38 9F 06 84 */ addi r4, r31, 0x684
+/* 80352250 0034DEB0 38 A0 00 20 */ li r5, 0x20
+/* 80352254 0034DEB4 4B FE A4 39 */ bl SHA1Input
+/* 80352258 0034DEB8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035225C 0034DEBC 38 9F 06 64 */ addi r4, r31, 0x664
+/* 80352260 0034DEC0 38 A0 00 20 */ li r5, 0x20
+/* 80352264 0034DEC4 4B FE A4 29 */ bl SHA1Input
+/* 80352268 0034DEC8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035226C 0034DECC 38 81 00 08 */ addi r4, r1, 8
+/* 80352270 0034DED0 4B FE A2 2D */ bl SHA1Result
+/* 80352274 0034DED4 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352278 0034DED8 4B FE 4A 2D */ bl MD5Init
+/* 8035227C 0034DEDC 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352280 0034DEE0 38 9F 06 A4 */ addi r4, r31, 0x6a4
+/* 80352284 0034DEE4 38 A0 00 30 */ li r5, 0x30
+/* 80352288 0034DEE8 4B FE 4A 5D */ bl MD5Update
+/* 8035228C 0034DEEC 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352290 0034DEF0 38 81 00 08 */ addi r4, r1, 8
+/* 80352294 0034DEF4 38 A0 00 14 */ li r5, 0x14
+/* 80352298 0034DEF8 4B FE 4A 4D */ bl MD5Update
+/* 8035229C 0034DEFC 38 7F 06 F4 */ addi r3, r31, 0x6f4
+/* 803522A0 0034DF00 38 81 00 60 */ addi r4, r1, 0x60
+/* 803522A4 0034DF04 4B FE 4B 2D */ bl MD5Final
+/* 803522A8 0034DF08 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803522AC 0034DF0C 4B FE A1 85 */ bl SHA1Reset
+/* 803522B0 0034DF10 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803522B4 0034DF14 38 8D 93 98 */ addi r4, r13, lbl_8063E658-_SDA_BASE_
+/* 803522B8 0034DF18 38 A0 00 01 */ li r5, 1
+/* 803522BC 0034DF1C 4B FE A3 D1 */ bl SHA1Input
+/* 803522C0 0034DF20 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803522C4 0034DF24 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 803522C8 0034DF28 38 A0 00 30 */ li r5, 0x30
+/* 803522CC 0034DF2C 4B FE A3 C1 */ bl SHA1Input
+/* 803522D0 0034DF30 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803522D4 0034DF34 38 9F 06 64 */ addi r4, r31, 0x664
+/* 803522D8 0034DF38 38 A0 00 20 */ li r5, 0x20
+/* 803522DC 0034DF3C 4B FE A3 B1 */ bl SHA1Input
+/* 803522E0 0034DF40 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803522E4 0034DF44 38 9F 06 84 */ addi r4, r31, 0x684
+/* 803522E8 0034DF48 38 A0 00 20 */ li r5, 0x20
+/* 803522EC 0034DF4C 4B FE A3 A1 */ bl SHA1Input
+/* 803522F0 0034DF50 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803522F4 0034DF54 38 81 00 08 */ addi r4, r1, 8
+/* 803522F8 0034DF58 4B FE A1 A5 */ bl SHA1Result
+/* 803522FC 0034DF5C 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352300 0034DF60 4B FE 49 A5 */ bl MD5Init
+/* 80352304 0034DF64 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352308 0034DF68 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 8035230C 0034DF6C 38 A0 00 30 */ li r5, 0x30
+/* 80352310 0034DF70 4B FE 49 D5 */ bl MD5Update
+/* 80352314 0034DF74 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352318 0034DF78 38 81 00 08 */ addi r4, r1, 8
+/* 8035231C 0034DF7C 38 A0 00 14 */ li r5, 0x14
+/* 80352320 0034DF80 4B FE 49 C5 */ bl MD5Update
+/* 80352324 0034DF84 38 61 00 20 */ addi r3, r1, 0x20
+/* 80352328 0034DF88 38 81 00 60 */ addi r4, r1, 0x60
+/* 8035232C 0034DF8C 4B FE 4A A5 */ bl MD5Final
+/* 80352330 0034DF90 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80352334 0034DF94 4B FE A0 FD */ bl SHA1Reset
+/* 80352338 0034DF98 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035233C 0034DF9C 38 8D 93 9C */ addi r4, r13, lbl_8063E65C-_SDA_BASE_
+/* 80352340 0034DFA0 38 A0 00 02 */ li r5, 2
+/* 80352344 0034DFA4 4B FE A3 49 */ bl SHA1Input
+/* 80352348 0034DFA8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035234C 0034DFAC 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 80352350 0034DFB0 38 A0 00 30 */ li r5, 0x30
+/* 80352354 0034DFB4 4B FE A3 39 */ bl SHA1Input
+/* 80352358 0034DFB8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035235C 0034DFBC 38 9F 06 64 */ addi r4, r31, 0x664
+/* 80352360 0034DFC0 38 A0 00 20 */ li r5, 0x20
+/* 80352364 0034DFC4 4B FE A3 29 */ bl SHA1Input
+/* 80352368 0034DFC8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035236C 0034DFCC 38 9F 06 84 */ addi r4, r31, 0x684
+/* 80352370 0034DFD0 38 A0 00 20 */ li r5, 0x20
+/* 80352374 0034DFD4 4B FE A3 19 */ bl SHA1Input
+/* 80352378 0034DFD8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035237C 0034DFDC 38 81 00 08 */ addi r4, r1, 8
+/* 80352380 0034DFE0 4B FE A1 1D */ bl SHA1Result
+/* 80352384 0034DFE4 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352388 0034DFE8 4B FE 49 1D */ bl MD5Init
+/* 8035238C 0034DFEC 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352390 0034DFF0 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 80352394 0034DFF4 38 A0 00 30 */ li r5, 0x30
+/* 80352398 0034DFF8 4B FE 49 4D */ bl MD5Update
+/* 8035239C 0034DFFC 38 61 00 60 */ addi r3, r1, 0x60
+/* 803523A0 0034E000 38 81 00 08 */ addi r4, r1, 8
+/* 803523A4 0034E004 38 A0 00 14 */ li r5, 0x14
+/* 803523A8 0034E008 4B FE 49 3D */ bl MD5Update
+/* 803523AC 0034E00C 38 61 00 30 */ addi r3, r1, 0x30
+/* 803523B0 0034E010 38 81 00 60 */ addi r4, r1, 0x60
+/* 803523B4 0034E014 4B FE 4A 1D */ bl MD5Final
+/* 803523B8 0034E018 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803523BC 0034E01C 4B FE A0 75 */ bl SHA1Reset
+/* 803523C0 0034E020 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803523C4 0034E024 38 8D 93 A0 */ addi r4, r13, lbl_8063E660-_SDA_BASE_
+/* 803523C8 0034E028 38 A0 00 03 */ li r5, 3
+/* 803523CC 0034E02C 4B FE A2 C1 */ bl SHA1Input
+/* 803523D0 0034E030 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803523D4 0034E034 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 803523D8 0034E038 38 A0 00 30 */ li r5, 0x30
+/* 803523DC 0034E03C 4B FE A2 B1 */ bl SHA1Input
+/* 803523E0 0034E040 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803523E4 0034E044 38 9F 06 64 */ addi r4, r31, 0x664
+/* 803523E8 0034E048 38 A0 00 20 */ li r5, 0x20
+/* 803523EC 0034E04C 4B FE A2 A1 */ bl SHA1Input
+/* 803523F0 0034E050 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803523F4 0034E054 38 9F 06 84 */ addi r4, r31, 0x684
+/* 803523F8 0034E058 38 A0 00 20 */ li r5, 0x20
+/* 803523FC 0034E05C 4B FE A2 91 */ bl SHA1Input
+/* 80352400 0034E060 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80352404 0034E064 38 81 00 08 */ addi r4, r1, 8
+/* 80352408 0034E068 4B FE A0 95 */ bl SHA1Result
+/* 8035240C 0034E06C 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352410 0034E070 4B FE 48 95 */ bl MD5Init
+/* 80352414 0034E074 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352418 0034E078 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 8035241C 0034E07C 38 A0 00 30 */ li r5, 0x30
+/* 80352420 0034E080 4B FE 48 C5 */ bl MD5Update
+/* 80352424 0034E084 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352428 0034E088 38 81 00 08 */ addi r4, r1, 8
+/* 8035242C 0034E08C 38 A0 00 14 */ li r5, 0x14
+/* 80352430 0034E090 4B FE 48 B5 */ bl MD5Update
+/* 80352434 0034E094 38 61 00 40 */ addi r3, r1, 0x40
+/* 80352438 0034E098 38 81 00 60 */ addi r4, r1, 0x60
+/* 8035243C 0034E09C 4B FE 49 95 */ bl MD5Final
+/* 80352440 0034E0A0 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80352444 0034E0A4 4B FE 9F ED */ bl SHA1Reset
+/* 80352448 0034E0A8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035244C 0034E0AC 38 8D 93 A4 */ addi r4, r13, lbl_8063E664-_SDA_BASE_
+/* 80352450 0034E0B0 38 A0 00 04 */ li r5, 4
+/* 80352454 0034E0B4 4B FE A2 39 */ bl SHA1Input
+/* 80352458 0034E0B8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035245C 0034E0BC 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 80352460 0034E0C0 38 A0 00 30 */ li r5, 0x30
+/* 80352464 0034E0C4 4B FE A2 29 */ bl SHA1Input
+/* 80352468 0034E0C8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035246C 0034E0CC 38 9F 06 64 */ addi r4, r31, 0x664
+/* 80352470 0034E0D0 38 A0 00 20 */ li r5, 0x20
+/* 80352474 0034E0D4 4B FE A2 19 */ bl SHA1Input
+/* 80352478 0034E0D8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035247C 0034E0DC 38 9F 06 84 */ addi r4, r31, 0x684
+/* 80352480 0034E0E0 38 A0 00 20 */ li r5, 0x20
+/* 80352484 0034E0E4 4B FE A2 09 */ bl SHA1Input
+/* 80352488 0034E0E8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8035248C 0034E0EC 38 81 00 08 */ addi r4, r1, 8
+/* 80352490 0034E0F0 4B FE A0 0D */ bl SHA1Result
+/* 80352494 0034E0F4 38 61 00 60 */ addi r3, r1, 0x60
+/* 80352498 0034E0F8 4B FE 48 0D */ bl MD5Init
+/* 8035249C 0034E0FC 38 61 00 60 */ addi r3, r1, 0x60
+/* 803524A0 0034E100 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 803524A4 0034E104 38 A0 00 30 */ li r5, 0x30
+/* 803524A8 0034E108 4B FE 48 3D */ bl MD5Update
+/* 803524AC 0034E10C 38 61 00 60 */ addi r3, r1, 0x60
+/* 803524B0 0034E110 38 81 00 08 */ addi r4, r1, 8
+/* 803524B4 0034E114 38 A0 00 14 */ li r5, 0x14
+/* 803524B8 0034E118 4B FE 48 2D */ bl MD5Update
+/* 803524BC 0034E11C 38 61 00 50 */ addi r3, r1, 0x50
+/* 803524C0 0034E120 38 81 00 60 */ addi r4, r1, 0x60
+/* 803524C4 0034E124 4B FE 49 0D */ bl MD5Final
+/* 803524C8 0034E128 38 7F 03 20 */ addi r3, r31, 0x320
+/* 803524CC 0034E12C 38 81 00 20 */ addi r4, r1, 0x20
+/* 803524D0 0034E130 38 A0 00 10 */ li r5, 0x10
+/* 803524D4 0034E134 4B CB 1B 2D */ bl memcpy
+/* 803524D8 0034E138 38 7F 03 34 */ addi r3, r31, 0x334
+/* 803524DC 0034E13C 38 81 00 30 */ addi r4, r1, 0x30
+/* 803524E0 0034E140 38 A0 00 10 */ li r5, 0x10
+/* 803524E4 0034E144 4B CB 1B 1D */ bl memcpy
+/* 803524E8 0034E148 38 7F 03 48 */ addi r3, r31, 0x348
+/* 803524EC 0034E14C 38 81 00 40 */ addi r4, r1, 0x40
+/* 803524F0 0034E150 38 A0 00 10 */ li r5, 0x10
+/* 803524F4 0034E154 4B CB 1B 0D */ bl memcpy
+/* 803524F8 0034E158 38 7F 03 58 */ addi r3, r31, 0x358
+/* 803524FC 0034E15C 38 81 00 50 */ addi r4, r1, 0x50
+/* 80352500 0034E160 38 A0 00 10 */ li r5, 0x10
+/* 80352504 0034E164 4B CB 1A FD */ bl memcpy
+/* 80352508 0034E168 38 00 00 10 */ li r0, 0x10
+/* 8035250C 0034E16C 38 7F 03 A0 */ addi r3, r31, 0x3a0
+/* 80352510 0034E170 90 1F 03 88 */ stw r0, 0x388(r31)
+/* 80352514 0034E174 38 9F 03 48 */ addi r4, r31, 0x348
+/* 80352518 0034E178 38 A0 00 10 */ li r5, 0x10
+/* 8035251C 0034E17C 90 1F 03 8C */ stw r0, 0x38c(r31)
+/* 80352520 0034E180 90 1F 03 90 */ stw r0, 0x390(r31)
+/* 80352524 0034E184 90 1F 03 94 */ stw r0, 0x394(r31)
+/* 80352528 0034E188 4B FE 9A 39 */ bl RC4Init
+/* 8035252C 0034E18C 80 BF 03 94 */ lwz r5, 0x394(r31)
+/* 80352530 0034E190 38 7F 04 A2 */ addi r3, r31, 0x4a2
+/* 80352534 0034E194 38 9F 03 58 */ addi r4, r31, 0x358
+/* 80352538 0034E198 4B FE 9A 29 */ bl RC4Init
+/* 8035253C 0034E19C 80 01 01 34 */ lwz r0, 0x134(r1)
+/* 80352540 0034E1A0 83 E1 01 2C */ lwz r31, 0x12c(r1)
+/* 80352544 0034E1A4 7C 08 03 A6 */ mtlr r0
+/* 80352548 0034E1A8 38 21 01 30 */ addi r1, r1, 0x130
+/* 8035254C 0034E1AC 4E 80 00 20 */ blr
+
+.global ghttpEncryptorSslInitFunc
+ghttpEncryptorSslInitFunc:
+/* 80352550 0034E1B0 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 80352554 0034E1B4 7C 08 02 A6 */ mflr r0
+/* 80352558 0034E1B8 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8035255C 0034E1BC 39 61 00 60 */ addi r11, r1, 0x60
+/* 80352560 0034E1C0 4B E7 4B C9 */ bl _savegpr_27
+/* 80352564 0034E1C4 80 A3 00 60 */ lwz r5, 0x60(r3)
+/* 80352568 0034E1C8 7C 7B 1B 78 */ mr r27, r3
+/* 8035256C 0034E1CC 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 80352570 0034E1D0 7C 9E 23 78 */ mr r30, r4
+/* 80352574 0034E1D4 7C 05 00 50 */ subf r0, r5, r0
+/* 80352578 0034E1D8 28 00 00 32 */ cmplwi r0, 0x32
+/* 8035257C 0034E1DC 40 80 00 0C */ bge lbl_80352588
+/* 80352580 0034E1E0 38 60 00 02 */ li r3, 2
+/* 80352584 0034E1E4 48 00 01 88 */ b lbl_8035270C
+lbl_80352588:
+/* 80352588 0034E1E8 38 60 07 04 */ li r3, 0x704
+/* 8035258C 0034E1EC 4B FE 6D 89 */ bl gsimalloc
+/* 80352590 0034E1F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80352594 0034E1F4 90 7E 00 00 */ stw r3, 0(r30)
+/* 80352598 0034E1F8 40 82 00 0C */ bne lbl_803525A4
+/* 8035259C 0034E1FC 38 60 00 03 */ li r3, 3
+/* 803525A0 0034E200 48 00 01 6C */ b lbl_8035270C
+lbl_803525A4:
+/* 803525A4 0034E204 38 80 00 00 */ li r4, 0
+/* 803525A8 0034E208 38 A0 07 04 */ li r5, 0x704
+/* 803525AC 0034E20C 4B CB 1B 59 */ bl memset
+/* 803525B0 0034E210 83 9E 00 00 */ lwz r28, 0(r30)
+/* 803525B4 0034E214 3B A0 00 01 */ li r29, 1
+/* 803525B8 0034E218 3B E0 00 00 */ li r31, 0
+/* 803525BC 0034E21C 93 BE 00 08 */ stw r29, 8(r30)
+/* 803525C0 0034E220 38 7C 05 A4 */ addi r3, r28, 0x5a4
+/* 803525C4 0034E224 93 FE 00 0C */ stw r31, 0xc(r30)
+/* 803525C8 0034E228 4B FE 46 DD */ bl MD5Init
+/* 803525CC 0034E22C 38 7C 05 FC */ addi r3, r28, 0x5fc
+/* 803525D0 0034E230 4B FE 9E 61 */ bl SHA1Reset
+/* 803525D4 0034E234 38 00 00 16 */ li r0, 0x16
+/* 803525D8 0034E238 3B C0 00 03 */ li r30, 3
+/* 803525DC 0034E23C 98 01 00 14 */ stb r0, 0x14(r1)
+/* 803525E0 0034E240 38 60 00 2D */ li r3, 0x2d
+/* 803525E4 0034E244 9B C1 00 15 */ stb r30, 0x15(r1)
+/* 803525E8 0034E248 9B E1 00 16 */ stb r31, 0x16(r1)
+/* 803525EC 0034E24C 4B FA 47 8D */ bl SOHtoNl
+/* 803525F0 0034E250 90 61 00 10 */ stw r3, 0x10(r1)
+/* 803525F4 0034E254 38 61 00 17 */ addi r3, r1, 0x17
+/* 803525F8 0034E258 38 81 00 12 */ addi r4, r1, 0x12
+/* 803525FC 0034E25C 38 A0 00 02 */ li r5, 2
+/* 80352600 0034E260 4B CB 1A 01 */ bl memcpy
+/* 80352604 0034E264 9B A1 00 19 */ stb r29, 0x19(r1)
+/* 80352608 0034E268 38 60 00 29 */ li r3, 0x29
+/* 8035260C 0034E26C 9B C1 00 1D */ stb r30, 0x1d(r1)
+/* 80352610 0034E270 9B E1 00 1E */ stb r31, 0x1e(r1)
+/* 80352614 0034E274 4B FA 47 65 */ bl SOHtoNl
+/* 80352618 0034E278 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8035261C 0034E27C 38 61 00 1A */ addi r3, r1, 0x1a
+/* 80352620 0034E280 38 81 00 0D */ addi r4, r1, 0xd
+/* 80352624 0034E284 38 A0 00 03 */ li r5, 3
+/* 80352628 0034E288 4B CB 19 D9 */ bl memcpy
+/* 8035262C 0034E28C 38 60 00 00 */ li r3, 0
+/* 80352630 0034E290 4B FA 47 49 */ bl SOHtoNl
+/* 80352634 0034E294 90 61 00 08 */ stw r3, 8(r1)
+/* 80352638 0034E298 38 61 00 1F */ addi r3, r1, 0x1f
+/* 8035263C 0034E29C 38 81 00 08 */ addi r4, r1, 8
+/* 80352640 0034E2A0 38 A0 00 04 */ li r5, 4
+/* 80352644 0034E2A4 4B CB 19 BD */ bl memcpy
+/* 80352648 0034E2A8 4B FE 69 91 */ bl current_time
+/* 8035264C 0034E2AC 4B FE 6A 15 */ bl Util_RandSeed
+/* 80352650 0034E2B0 3B A1 00 14 */ addi r29, r1, 0x14
+/* 80352654 0034E2B4 3B C0 00 00 */ li r30, 0
+lbl_80352658:
+/* 80352658 0034E2B8 38 60 00 00 */ li r3, 0
+/* 8035265C 0034E2BC 38 80 00 FF */ li r4, 0xff
+/* 80352660 0034E2C0 4B FE 6A 19 */ bl Util_RandInt
+/* 80352664 0034E2C4 3B DE 00 01 */ addi r30, r30, 1
+/* 80352668 0034E2C8 98 7D 00 0F */ stb r3, 0xf(r29)
+/* 8035266C 0034E2CC 2C 1E 00 1C */ cmpwi r30, 0x1c
+/* 80352670 0034E2D0 3B BD 00 01 */ addi r29, r29, 1
+/* 80352674 0034E2D4 41 80 FF E4 */ blt lbl_80352658
+/* 80352678 0034E2D8 38 7C 06 84 */ addi r3, r28, 0x684
+/* 8035267C 0034E2DC 38 81 00 1F */ addi r4, r1, 0x1f
+/* 80352680 0034E2E0 38 A0 00 04 */ li r5, 4
+/* 80352684 0034E2E4 4B CB 19 7D */ bl memcpy
+/* 80352688 0034E2E8 38 7C 06 88 */ addi r3, r28, 0x688
+/* 8035268C 0034E2EC 38 81 00 23 */ addi r4, r1, 0x23
+/* 80352690 0034E2F0 38 A0 00 1C */ li r5, 0x1c
+/* 80352694 0034E2F4 4B CB 19 6D */ bl memcpy
+/* 80352698 0034E2F8 3B C0 00 00 */ li r30, 0
+/* 8035269C 0034E2FC 38 60 00 02 */ li r3, 2
+/* 803526A0 0034E300 9B C1 00 3F */ stb r30, 0x3f(r1)
+/* 803526A4 0034E304 4B FA 46 D9 */ bl SOHtoNs
+/* 803526A8 0034E308 B0 61 00 40 */ sth r3, 0x40(r1)
+/* 803526AC 0034E30C 3C 80 80 40 */ lis r4, lbl_80402560@ha
+/* 803526B0 0034E310 80 04 25 60 */ lwz r0, lbl_80402560@l(r4)
+/* 803526B4 0034E314 54 03 04 3E */ clrlwi r3, r0, 0x10
+/* 803526B8 0034E318 4B FA 46 C5 */ bl SOHtoNs
+/* 803526BC 0034E31C 3B E0 00 01 */ li r31, 1
+/* 803526C0 0034E320 B0 61 00 42 */ sth r3, 0x42(r1)
+/* 803526C4 0034E324 38 7C 05 A4 */ addi r3, r28, 0x5a4
+/* 803526C8 0034E328 38 81 00 19 */ addi r4, r1, 0x19
+/* 803526CC 0034E32C 9B E1 00 44 */ stb r31, 0x44(r1)
+/* 803526D0 0034E330 38 A0 00 2D */ li r5, 0x2d
+/* 803526D4 0034E334 9B C1 00 45 */ stb r30, 0x45(r1)
+/* 803526D8 0034E338 4B FE 46 0D */ bl MD5Update
+/* 803526DC 0034E33C 38 7C 05 FC */ addi r3, r28, 0x5fc
+/* 803526E0 0034E340 38 81 00 19 */ addi r4, r1, 0x19
+/* 803526E4 0034E344 38 A0 00 2D */ li r5, 0x2d
+/* 803526E8 0034E348 4B FE 9F A5 */ bl SHA1Input
+/* 803526EC 0034E34C 38 7B 00 54 */ addi r3, r27, 0x54
+/* 803526F0 0034E350 38 81 00 14 */ addi r4, r1, 0x14
+/* 803526F4 0034E354 38 A0 00 32 */ li r5, 0x32
+/* 803526F8 0034E358 4B FF E3 C5 */ bl ghiAppendDataToBuffer
+/* 803526FC 0034E35C 2C 03 00 00 */ cmpwi r3, 0
+/* 80352700 0034E360 40 82 00 08 */ bne lbl_80352708
+/* 80352704 0034E364 3B E0 00 02 */ li r31, 2
+lbl_80352708:
+/* 80352708 0034E368 7F E3 FB 78 */ mr r3, r31
+lbl_8035270C:
+/* 8035270C 0034E36C 39 61 00 60 */ addi r11, r1, 0x60
+/* 80352710 0034E370 4B E7 4A 65 */ bl _restgpr_27
+/* 80352714 0034E374 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80352718 0034E378 7C 08 03 A6 */ mtlr r0
+/* 8035271C 0034E37C 38 21 00 60 */ addi r1, r1, 0x60
+/* 80352720 0034E380 4E 80 00 20 */ blr
+
+.global ghttpEncryptorSslCleanupFunc
+ghttpEncryptorSslCleanupFunc:
+/* 80352724 0034E384 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80352728 0034E388 7C 08 02 A6 */ mflr r0
+/* 8035272C 0034E38C 2C 04 00 00 */ cmpwi r4, 0
+/* 80352730 0034E390 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80352734 0034E394 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80352738 0034E398 7C 9F 23 78 */ mr r31, r4
+/* 8035273C 0034E39C 41 82 00 28 */ beq lbl_80352764
+/* 80352740 0034E3A0 80 64 00 00 */ lwz r3, 0(r4)
+/* 80352744 0034E3A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80352748 0034E3A8 41 82 00 10 */ beq lbl_80352758
+/* 8035274C 0034E3AC 4B FE 6B ED */ bl gsifree
+/* 80352750 0034E3B0 38 00 00 00 */ li r0, 0
+/* 80352754 0034E3B4 90 1F 00 00 */ stw r0, 0(r31)
+lbl_80352758:
+/* 80352758 0034E3B8 38 00 00 00 */ li r0, 0
+/* 8035275C 0034E3BC 90 1F 00 08 */ stw r0, 8(r31)
+/* 80352760 0034E3C0 90 1F 00 0C */ stw r0, 0xc(r31)
+lbl_80352764:
+/* 80352764 0034E3C4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80352768 0034E3C8 38 60 00 01 */ li r3, 1
+/* 8035276C 0034E3CC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80352770 0034E3D0 7C 08 03 A6 */ mtlr r0
+/* 80352774 0034E3D4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80352778 0034E3D8 4E 80 00 20 */ blr
+
+.global ghttpEncryptorSslEncryptFunc
+ghttpEncryptorSslEncryptFunc:
+/* 8035277C 0034E3DC 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 80352780 0034E3E0 7C 08 02 A6 */ mflr r0
+/* 80352784 0034E3E4 90 01 00 94 */ stw r0, 0x94(r1)
+/* 80352788 0034E3E8 39 61 00 90 */ addi r11, r1, 0x90
+/* 8035278C 0034E3EC 4B E7 49 99 */ bl _savegpr_26
+/* 80352790 0034E3F0 2C 04 00 00 */ cmpwi r4, 0
+/* 80352794 0034E3F4 7C BA 2B 78 */ mr r26, r5
+/* 80352798 0034E3F8 7C DD 33 78 */ mr r29, r6
+/* 8035279C 0034E3FC 7C FB 3B 78 */ mr r27, r7
+/* 803527A0 0034E400 7D 1C 43 78 */ mr r28, r8
+/* 803527A4 0034E404 41 82 01 D8 */ beq lbl_8035297C
+/* 803527A8 0034E408 83 C4 00 00 */ lwz r30, 0(r4)
+/* 803527AC 0034E40C 2C 1E 00 00 */ cmpwi r30, 0
+/* 803527B0 0034E410 41 82 00 10 */ beq lbl_803527C0
+/* 803527B4 0034E414 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 803527B8 0034E418 2C 00 00 00 */ cmpwi r0, 0
+/* 803527BC 0034E41C 40 82 00 38 */ bne lbl_803527F4
+lbl_803527C0:
+/* 803527C0 0034E420 80 08 00 00 */ lwz r0, 0(r8)
+/* 803527C4 0034E424 7C 06 00 00 */ cmpw r6, r0
+/* 803527C8 0034E428 40 81 00 0C */ ble lbl_803527D4
+/* 803527CC 0034E42C 38 60 00 02 */ li r3, 2
+/* 803527D0 0034E430 48 00 01 B0 */ b lbl_80352980
+lbl_803527D4:
+/* 803527D4 0034E434 7F 63 DB 78 */ mr r3, r27
+/* 803527D8 0034E438 7F 44 D3 78 */ mr r4, r26
+/* 803527DC 0034E43C 7F A5 EB 78 */ mr r5, r29
+/* 803527E0 0034E440 4B CB 18 21 */ bl memcpy
+/* 803527E4 0034E444 80 1C 00 00 */ lwz r0, 0(r28)
+/* 803527E8 0034E448 7C 00 EA 14 */ add r0, r0, r29
+/* 803527EC 0034E44C 90 1C 00 00 */ stw r0, 0(r28)
+/* 803527F0 0034E450 48 00 01 8C */ b lbl_8035297C
+lbl_803527F4:
+/* 803527F4 0034E454 54 C3 04 3E */ clrlwi r3, r6, 0x10
+/* 803527F8 0034E458 4B FA 45 85 */ bl SOHtoNs
+/* 803527FC 0034E45C B0 61 00 08 */ sth r3, 8(r1)
+/* 80352800 0034E460 38 1D 00 05 */ addi r0, r29, 5
+/* 80352804 0034E464 80 7C 00 00 */ lwz r3, 0(r28)
+/* 80352808 0034E468 7C 03 00 00 */ cmpw r3, r0
+/* 8035280C 0034E46C 40 80 00 0C */ bge lbl_80352818
+/* 80352810 0034E470 38 60 00 02 */ li r3, 2
+/* 80352814 0034E474 48 00 01 6C */ b lbl_80352980
+lbl_80352818:
+/* 80352818 0034E478 38 60 00 17 */ li r3, 0x17
+/* 8035281C 0034E47C 38 00 00 03 */ li r0, 3
+/* 80352820 0034E480 3B E0 00 00 */ li r31, 0
+/* 80352824 0034E484 98 7B 00 00 */ stb r3, 0(r27)
+/* 80352828 0034E488 38 61 00 20 */ addi r3, r1, 0x20
+/* 8035282C 0034E48C 98 1B 00 01 */ stb r0, 1(r27)
+/* 80352830 0034E490 9B FB 00 02 */ stb r31, 2(r27)
+/* 80352834 0034E494 4B FE 44 71 */ bl MD5Init
+/* 80352838 0034E498 80 BE 03 88 */ lwz r5, 0x388(r30)
+/* 8035283C 0034E49C 38 61 00 20 */ addi r3, r1, 0x20
+/* 80352840 0034E4A0 38 9E 03 20 */ addi r4, r30, 0x320
+/* 80352844 0034E4A4 4B FE 44 A1 */ bl MD5Update
+/* 80352848 0034E4A8 3C 80 80 45 */ lis r4, lbl_8044BF8C@ha
+/* 8035284C 0034E4AC 38 61 00 20 */ addi r3, r1, 0x20
+/* 80352850 0034E4B0 38 84 BF 8C */ addi r4, r4, lbl_8044BF8C@l
+/* 80352854 0034E4B4 38 A0 00 30 */ li r5, 0x30
+/* 80352858 0034E4B8 4B FE 44 8D */ bl MD5Update
+/* 8035285C 0034E4BC 38 61 00 20 */ addi r3, r1, 0x20
+/* 80352860 0034E4C0 38 9E 03 10 */ addi r4, r30, 0x310
+/* 80352864 0034E4C4 38 A0 00 08 */ li r5, 8
+/* 80352868 0034E4C8 4B FE 44 7D */ bl MD5Update
+/* 8035286C 0034E4CC 38 61 00 20 */ addi r3, r1, 0x20
+/* 80352870 0034E4D0 38 8D 93 AC */ addi r4, r13, lbl_8063E66C-_SDA_BASE_
+/* 80352874 0034E4D4 38 A0 00 01 */ li r5, 1
+/* 80352878 0034E4D8 4B FE 44 6D */ bl MD5Update
+/* 8035287C 0034E4DC 38 61 00 20 */ addi r3, r1, 0x20
+/* 80352880 0034E4E0 38 81 00 08 */ addi r4, r1, 8
+/* 80352884 0034E4E4 38 A0 00 02 */ li r5, 2
+/* 80352888 0034E4E8 4B FE 44 5D */ bl MD5Update
+/* 8035288C 0034E4EC 7F 44 D3 78 */ mr r4, r26
+/* 80352890 0034E4F0 7F A5 EB 78 */ mr r5, r29
+/* 80352894 0034E4F4 38 61 00 20 */ addi r3, r1, 0x20
+/* 80352898 0034E4F8 4B FE 44 4D */ bl MD5Update
+/* 8035289C 0034E4FC 38 61 00 10 */ addi r3, r1, 0x10
+/* 803528A0 0034E500 38 81 00 20 */ addi r4, r1, 0x20
+/* 803528A4 0034E504 4B FE 45 2D */ bl MD5Final
+/* 803528A8 0034E508 38 61 00 20 */ addi r3, r1, 0x20
+/* 803528AC 0034E50C 4B FE 43 F9 */ bl MD5Init
+/* 803528B0 0034E510 80 BE 03 88 */ lwz r5, 0x388(r30)
+/* 803528B4 0034E514 38 61 00 20 */ addi r3, r1, 0x20
+/* 803528B8 0034E518 38 9E 03 20 */ addi r4, r30, 0x320
+/* 803528BC 0034E51C 4B FE 44 29 */ bl MD5Update
+/* 803528C0 0034E520 3C 80 80 45 */ lis r4, lbl_8044BFC0@ha
+/* 803528C4 0034E524 38 61 00 20 */ addi r3, r1, 0x20
+/* 803528C8 0034E528 38 84 BF C0 */ addi r4, r4, lbl_8044BFC0@l
+/* 803528CC 0034E52C 38 A0 00 30 */ li r5, 0x30
+/* 803528D0 0034E530 4B FE 44 15 */ bl MD5Update
+/* 803528D4 0034E534 38 61 00 20 */ addi r3, r1, 0x20
+/* 803528D8 0034E538 38 81 00 10 */ addi r4, r1, 0x10
+/* 803528DC 0034E53C 38 A0 00 10 */ li r5, 0x10
+/* 803528E0 0034E540 4B FE 44 05 */ bl MD5Update
+/* 803528E4 0034E544 38 61 00 10 */ addi r3, r1, 0x10
+/* 803528E8 0034E548 38 81 00 20 */ addi r4, r1, 0x20
+/* 803528EC 0034E54C 4B FE 44 E5 */ bl MD5Final
+/* 803528F0 0034E550 7F 44 D3 78 */ mr r4, r26
+/* 803528F4 0034E554 7F A6 EB 78 */ mr r6, r29
+/* 803528F8 0034E558 38 7E 03 A0 */ addi r3, r30, 0x3a0
+/* 803528FC 0034E55C 38 BB 00 05 */ addi r5, r27, 5
+/* 80352900 0034E560 4B FE 99 A5 */ bl RC4Encrypt
+/* 80352904 0034E564 3B BD 00 05 */ addi r29, r29, 5
+/* 80352908 0034E568 38 7E 03 A0 */ addi r3, r30, 0x3a0
+/* 8035290C 0034E56C 38 81 00 10 */ addi r4, r1, 0x10
+/* 80352910 0034E570 38 C0 00 10 */ li r6, 0x10
+/* 80352914 0034E574 7C BB EA 14 */ add r5, r27, r29
+/* 80352918 0034E578 4B FE 99 8D */ bl RC4Encrypt
+/* 8035291C 0034E57C 38 7D 00 0B */ addi r3, r29, 0xb
+/* 80352920 0034E580 4B FA 44 59 */ bl SOHtoNl
+/* 80352924 0034E584 90 61 00 0C */ stw r3, 0xc(r1)
+/* 80352928 0034E588 38 7B 00 03 */ addi r3, r27, 3
+/* 8035292C 0034E58C 38 81 00 0E */ addi r4, r1, 0xe
+/* 80352930 0034E590 38 A0 00 02 */ li r5, 2
+/* 80352934 0034E594 4B CB 16 CD */ bl memcpy
+/* 80352938 0034E598 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8035293C 0034E59C 38 7D 00 10 */ addi r3, r29, 0x10
+/* 80352940 0034E5A0 38 A0 00 07 */ li r5, 7
+/* 80352944 0034E5A4 7C 03 00 50 */ subf r0, r3, r0
+/* 80352948 0034E5A8 90 1C 00 00 */ stw r0, 0(r28)
+lbl_8035294C:
+/* 8035294C 0034E5AC 7C 9E 2A 14 */ add r4, r30, r5
+/* 80352950 0034E5B0 88 64 03 10 */ lbz r3, 0x310(r4)
+/* 80352954 0034E5B4 28 03 00 FF */ cmplwi r3, 0xff
+/* 80352958 0034E5B8 40 82 00 10 */ bne lbl_80352968
+/* 8035295C 0034E5BC 9B E4 03 10 */ stb r31, 0x310(r4)
+/* 80352960 0034E5C0 38 A5 FF FF */ addi r5, r5, -1
+/* 80352964 0034E5C4 48 00 00 10 */ b lbl_80352974
+lbl_80352968:
+/* 80352968 0034E5C8 38 03 00 01 */ addi r0, r3, 1
+/* 8035296C 0034E5CC 38 A0 00 00 */ li r5, 0
+/* 80352970 0034E5D0 98 04 03 10 */ stb r0, 0x310(r4)
+lbl_80352974:
+/* 80352974 0034E5D4 2C 05 00 00 */ cmpwi r5, 0
+/* 80352978 0034E5D8 40 80 FF D4 */ bge lbl_8035294C
+lbl_8035297C:
+/* 8035297C 0034E5DC 38 60 00 01 */ li r3, 1
+lbl_80352980:
+/* 80352980 0034E5E0 39 61 00 90 */ addi r11, r1, 0x90
+/* 80352984 0034E5E4 4B E7 47 ED */ bl _restgpr_26
+/* 80352988 0034E5E8 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 8035298C 0034E5EC 7C 08 03 A6 */ mtlr r0
+/* 80352990 0034E5F0 38 21 00 90 */ addi r1, r1, 0x90
+/* 80352994 0034E5F4 4E 80 00 20 */ blr
+
+.global ghttpEncryptorSslDecryptFunc
+ghttpEncryptorSslDecryptFunc:
+/* 80352998 0034E5F8 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8035299C 0034E5FC 7C 08 02 A6 */ mflr r0
+/* 803529A0 0034E600 90 01 00 64 */ stw r0, 0x64(r1)
+/* 803529A4 0034E604 39 61 00 60 */ addi r11, r1, 0x60
+/* 803529A8 0034E608 4B E7 47 65 */ bl _savegpr_20
+/* 803529AC 0034E60C 2C 04 00 00 */ cmpwi r4, 0
+/* 803529B0 0034E610 7C 75 1B 78 */ mr r21, r3
+/* 803529B4 0034E614 7C 96 23 78 */ mr r22, r4
+/* 803529B8 0034E618 7C B7 2B 78 */ mr r23, r5
+/* 803529BC 0034E61C 7C D8 33 78 */ mr r24, r6
+/* 803529C0 0034E620 7C F9 3B 78 */ mr r25, r7
+/* 803529C4 0034E624 7D 1A 43 78 */ mr r26, r8
+/* 803529C8 0034E628 3B A0 00 00 */ li r29, 0
+/* 803529CC 0034E62C 3B 80 00 00 */ li r28, 0
+/* 803529D0 0034E630 41 82 00 10 */ beq lbl_803529E0
+/* 803529D4 0034E634 83 C4 00 00 */ lwz r30, 0(r4)
+/* 803529D8 0034E638 2C 1E 00 00 */ cmpwi r30, 0
+/* 803529DC 0034E63C 40 82 00 2C */ bne lbl_80352A08
+lbl_803529E0:
+/* 803529E0 0034E640 80 A6 00 00 */ lwz r5, 0(r6)
+/* 803529E4 0034E644 7F 23 CB 78 */ mr r3, r25
+/* 803529E8 0034E648 7E E4 BB 78 */ mr r4, r23
+/* 803529EC 0034E64C 4B CB 16 15 */ bl memcpy
+/* 803529F0 0034E650 80 98 00 00 */ lwz r4, 0(r24)
+/* 803529F4 0034E654 38 00 00 00 */ li r0, 0
+/* 803529F8 0034E658 38 60 00 01 */ li r3, 1
+/* 803529FC 0034E65C 90 9A 00 00 */ stw r4, 0(r26)
+/* 80352A00 0034E660 90 18 00 00 */ stw r0, 0(r24)
+/* 80352A04 0034E664 48 00 01 94 */ b lbl_80352B98
+lbl_80352A08:
+/* 80352A08 0034E668 40 82 00 0C */ bne lbl_80352A14
+/* 80352A0C 0034E66C 38 60 00 03 */ li r3, 3
+/* 80352A10 0034E670 48 00 01 88 */ b lbl_80352B98
+lbl_80352A14:
+/* 80352A14 0034E674 3A 80 00 01 */ li r20, 1
+/* 80352A18 0034E678 48 00 01 58 */ b lbl_80352B70
+lbl_80352A1C:
+/* 80352A1C 0034E67C 7C 1D 00 50 */ subf r0, r29, r0
+/* 80352A20 0034E680 28 00 00 05 */ cmplwi r0, 5
+/* 80352A24 0034E684 41 80 01 58 */ blt lbl_80352B7C
+/* 80352A28 0034E688 7F 77 EA 14 */ add r27, r23, r29
+/* 80352A2C 0034E68C 88 1B 00 04 */ lbz r0, 4(r27)
+/* 80352A30 0034E690 88 7B 00 03 */ lbz r3, 3(r27)
+/* 80352A34 0034E694 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17
+/* 80352A38 0034E698 4B FA 43 39 */ bl SONtoHs
+/* 80352A3C 0034E69C 54 65 04 3E */ clrlwi r5, r3, 0x10
+/* 80352A40 0034E6A0 80 D8 00 00 */ lwz r6, 0(r24)
+/* 80352A44 0034E6A4 7C 9D 2A 14 */ add r4, r29, r5
+/* 80352A48 0034E6A8 7C 7F 1B 78 */ mr r31, r3
+/* 80352A4C 0034E6AC 38 04 00 05 */ addi r0, r4, 5
+/* 80352A50 0034E6B0 7C 06 00 00 */ cmpw r6, r0
+/* 80352A54 0034E6B4 41 80 01 28 */ blt lbl_80352B7C
+/* 80352A58 0034E6B8 80 75 01 9C */ lwz r3, 0x19c(r21)
+/* 80352A5C 0034E6BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80352A60 0034E6C0 41 82 00 30 */ beq lbl_80352A90
+/* 80352A64 0034E6C4 80 1A 00 00 */ lwz r0, 0(r26)
+/* 80352A68 0034E6C8 7C 1C 00 50 */ subf r0, r28, r0
+/* 80352A6C 0034E6CC 7C 00 28 00 */ cmpw r0, r5
+/* 80352A70 0034E6D0 40 80 00 20 */ bge lbl_80352A90
+/* 80352A74 0034E6D4 93 B8 00 00 */ stw r29, 0(r24)
+/* 80352A78 0034E6D8 2C 1C 00 00 */ cmpwi r28, 0
+/* 80352A7C 0034E6DC 38 60 00 02 */ li r3, 2
+/* 80352A80 0034E6E0 93 9A 00 00 */ stw r28, 0(r26)
+/* 80352A84 0034E6E4 40 81 01 14 */ ble lbl_80352B98
+/* 80352A88 0034E6E8 38 60 00 01 */ li r3, 1
+/* 80352A8C 0034E6EC 48 00 01 0C */ b lbl_80352B98
+lbl_80352A90:
+/* 80352A90 0034E6F0 88 1B 00 00 */ lbz r0, 0(r27)
+/* 80352A94 0034E6F4 2C 00 00 16 */ cmpwi r0, 0x16
+/* 80352A98 0034E6F8 41 82 00 24 */ beq lbl_80352ABC
+/* 80352A9C 0034E6FC 40 80 00 14 */ bge lbl_80352AB0
+/* 80352AA0 0034E700 2C 00 00 14 */ cmpwi r0, 0x14
+/* 80352AA4 0034E704 41 82 00 A8 */ beq lbl_80352B4C
+/* 80352AA8 0034E708 40 80 00 B0 */ bge lbl_80352B58
+/* 80352AAC 0034E70C 48 00 00 B4 */ b lbl_80352B60
+lbl_80352AB0:
+/* 80352AB0 0034E710 2C 00 00 18 */ cmpwi r0, 0x18
+/* 80352AB4 0034E714 40 80 00 AC */ bge lbl_80352B60
+/* 80352AB8 0034E718 48 00 00 54 */ b lbl_80352B0C
+lbl_80352ABC:
+/* 80352ABC 0034E71C 2C 03 00 00 */ cmpwi r3, 0
+/* 80352AC0 0034E720 3B BD 00 05 */ addi r29, r29, 5
+/* 80352AC4 0034E724 41 82 00 18 */ beq lbl_80352ADC
+/* 80352AC8 0034E728 7C 97 EA 14 */ add r4, r23, r29
+/* 80352ACC 0034E72C 38 7E 04 A2 */ addi r3, r30, 0x4a2
+/* 80352AD0 0034E730 57 E6 04 3E */ clrlwi r6, r31, 0x10
+/* 80352AD4 0034E734 7C 85 23 78 */ mr r5, r4
+/* 80352AD8 0034E738 4B FE 97 CD */ bl RC4Encrypt
+lbl_80352ADC:
+/* 80352ADC 0034E73C 7E A3 AB 78 */ mr r3, r21
+/* 80352AE0 0034E740 38 81 00 08 */ addi r4, r1, 8
+/* 80352AE4 0034E744 7C B7 EA 14 */ add r5, r23, r29
+/* 80352AE8 0034E748 57 E6 04 3E */ clrlwi r6, r31, 0x10
+/* 80352AEC 0034E74C 4B FF DE FD */ bl ghiInitReadOnlyBuffer
+/* 80352AF0 0034E750 7E A3 AB 78 */ mr r3, r21
+/* 80352AF4 0034E754 7E C4 B3 78 */ mr r4, r22
+/* 80352AF8 0034E758 38 A1 00 08 */ addi r5, r1, 8
+/* 80352AFC 0034E75C 48 00 00 B5 */ bl ghttpEncryptorProcessSSLHandshake
+/* 80352B00 0034E760 2C 03 00 01 */ cmpwi r3, 1
+/* 80352B04 0034E764 41 82 00 64 */ beq lbl_80352B68
+/* 80352B08 0034E768 48 00 00 90 */ b lbl_80352B98
+lbl_80352B0C:
+/* 80352B0C 0034E76C 2C 03 00 00 */ cmpwi r3, 0
+/* 80352B10 0034E770 3B BD 00 05 */ addi r29, r29, 5
+/* 80352B14 0034E774 41 82 00 18 */ beq lbl_80352B2C
+/* 80352B18 0034E778 7C 97 EA 14 */ add r4, r23, r29
+/* 80352B1C 0034E77C 38 7E 04 A2 */ addi r3, r30, 0x4a2
+/* 80352B20 0034E780 57 E6 04 3E */ clrlwi r6, r31, 0x10
+/* 80352B24 0034E784 7C 85 23 78 */ mr r5, r4
+/* 80352B28 0034E788 4B FE 97 7D */ bl RC4Encrypt
+lbl_80352B2C:
+/* 80352B2C 0034E78C 57 E4 04 3E */ clrlwi r4, r31, 0x10
+/* 80352B30 0034E790 7C 79 E2 14 */ add r3, r25, r28
+/* 80352B34 0034E794 3B 64 FF F0 */ addi r27, r4, -16
+/* 80352B38 0034E798 7C 97 EA 14 */ add r4, r23, r29
+/* 80352B3C 0034E79C 7F 65 DB 78 */ mr r5, r27
+/* 80352B40 0034E7A0 4B CB 14 C1 */ bl memcpy
+/* 80352B44 0034E7A4 7F 9C DA 14 */ add r28, r28, r27
+/* 80352B48 0034E7A8 48 00 00 20 */ b lbl_80352B68
+lbl_80352B4C:
+/* 80352B4C 0034E7AC 92 95 01 9C */ stw r20, 0x19c(r21)
+/* 80352B50 0034E7B0 3B BD 00 05 */ addi r29, r29, 5
+/* 80352B54 0034E7B4 48 00 00 14 */ b lbl_80352B68
+lbl_80352B58:
+/* 80352B58 0034E7B8 3B BD 00 05 */ addi r29, r29, 5
+/* 80352B5C 0034E7BC 48 00 00 0C */ b lbl_80352B68
+lbl_80352B60:
+/* 80352B60 0034E7C0 38 60 00 03 */ li r3, 3
+/* 80352B64 0034E7C4 48 00 00 34 */ b lbl_80352B98
+lbl_80352B68:
+/* 80352B68 0034E7C8 57 E0 04 3E */ clrlwi r0, r31, 0x10
+/* 80352B6C 0034E7CC 7F BD 02 14 */ add r29, r29, r0
+lbl_80352B70:
+/* 80352B70 0034E7D0 80 18 00 00 */ lwz r0, 0(r24)
+/* 80352B74 0034E7D4 7C 1D 00 00 */ cmpw r29, r0
+/* 80352B78 0034E7D8 41 80 FE A4 */ blt lbl_80352A1C
+lbl_80352B7C:
+/* 80352B7C 0034E7DC 93 B8 00 00 */ stw r29, 0(r24)
+/* 80352B80 0034E7E0 38 60 00 01 */ li r3, 1
+/* 80352B84 0034E7E4 93 9A 00 00 */ stw r28, 0(r26)
+/* 80352B88 0034E7E8 80 18 00 00 */ lwz r0, 0(r24)
+/* 80352B8C 0034E7EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80352B90 0034E7F0 40 80 00 08 */ bge lbl_80352B98
+/* 80352B94 0034E7F4 38 60 00 03 */ li r3, 3
+lbl_80352B98:
+/* 80352B98 0034E7F8 39 61 00 60 */ addi r11, r1, 0x60
+/* 80352B9C 0034E7FC 4B E7 45 BD */ bl _restgpr_20
+/* 80352BA0 0034E800 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80352BA4 0034E804 7C 08 03 A6 */ mtlr r0
+/* 80352BA8 0034E808 38 21 00 60 */ addi r1, r1, 0x60
+/* 80352BAC 0034E80C 4E 80 00 20 */ blr
+
+.global ghttpEncryptorProcessSSLHandshake
+ghttpEncryptorProcessSSLHandshake:
+/* 80352BB0 0034E810 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 80352BB4 0034E814 7C 08 02 A6 */ mflr r0
+/* 80352BB8 0034E818 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 80352BBC 0034E81C 39 61 00 B0 */ addi r11, r1, 0xb0
+/* 80352BC0 0034E820 4B E7 45 35 */ bl __save_gpr
+/* 80352BC4 0034E824 83 E4 00 00 */ lwz r31, 0(r4)
+/* 80352BC8 0034E828 7C 7B 1B 78 */ mr r27, r3
+/* 80352BCC 0034E82C 7C BC 2B 78 */ mr r28, r5
+/* 80352BD0 0034E830 3A 21 00 25 */ addi r17, r1, 0x25
+/* 80352BD4 0034E834 3A 40 00 00 */ li r18, 0
+/* 80352BD8 0034E838 3E A0 80 40 */ lis r21, 0x8040
+/* 80352BDC 0034E83C 3A C0 00 03 */ li r22, 3
+/* 80352BE0 0034E840 3A E0 00 16 */ li r23, 0x16
+/* 80352BE4 0034E844 3B 00 00 14 */ li r24, 0x14
+/* 80352BE8 0034E848 39 C0 00 01 */ li r14, 1
+/* 80352BEC 0034E84C 3F 20 80 45 */ lis r25, 0x8045
+/* 80352BF0 0034E850 3F 40 80 45 */ lis r26, 0x8045
+/* 80352BF4 0034E854 48 00 10 44 */ b lbl_80353C38
+lbl_80352BF8:
+/* 80352BF8 0034E858 9A 41 00 09 */ stb r18, 9(r1)
+/* 80352BFC 0034E85C 7F 83 E3 78 */ mr r3, r28
+/* 80352C00 0034E860 38 81 00 09 */ addi r4, r1, 9
+/* 80352C04 0034E864 38 A0 00 01 */ li r5, 1
+/* 80352C08 0034E868 4B FF E5 41 */ bl ghiReadDataFromBufferFixed
+/* 80352C0C 0034E86C 2C 03 00 00 */ cmpwi r3, 0
+/* 80352C10 0034E870 40 82 00 0C */ bne lbl_80352C1C
+/* 80352C14 0034E874 38 60 00 03 */ li r3, 3
+/* 80352C18 0034E878 48 00 10 3C */ b lbl_80353C54
+lbl_80352C1C:
+/* 80352C1C 0034E87C 88 01 00 09 */ lbz r0, 9(r1)
+/* 80352C20 0034E880 7C 00 07 74 */ extsb r0, r0
+/* 80352C24 0034E884 2C 00 00 02 */ cmpwi r0, 2
+/* 80352C28 0034E888 40 82 01 AC */ bne lbl_80352DD4
+/* 80352C2C 0034E88C 92 41 00 34 */ stw r18, 0x34(r1)
+/* 80352C30 0034E890 92 41 00 30 */ stw r18, 0x30(r1)
+/* 80352C34 0034E894 9A 41 00 08 */ stb r18, 8(r1)
+/* 80352C38 0034E898 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80352C3C 0034E89C 2C 00 00 00 */ cmpwi r0, 0
+/* 80352C40 0034E8A0 41 82 00 0C */ beq lbl_80352C4C
+/* 80352C44 0034E8A4 38 60 00 03 */ li r3, 3
+/* 80352C48 0034E8A8 48 00 10 0C */ b lbl_80353C54
+lbl_80352C4C:
+/* 80352C4C 0034E8AC 7F 83 E3 78 */ mr r3, r28
+/* 80352C50 0034E8B0 38 81 00 35 */ addi r4, r1, 0x35
+/* 80352C54 0034E8B4 38 A0 00 03 */ li r5, 3
+/* 80352C58 0034E8B8 4B FF E4 F1 */ bl ghiReadDataFromBufferFixed
+/* 80352C5C 0034E8BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80352C60 0034E8C0 40 82 00 0C */ bne lbl_80352C6C
+/* 80352C64 0034E8C4 38 00 00 00 */ li r0, 0
+/* 80352C68 0034E8C8 48 00 00 14 */ b lbl_80352C7C
+lbl_80352C6C:
+/* 80352C6C 0034E8CC 80 61 00 34 */ lwz r3, 0x34(r1)
+/* 80352C70 0034E8D0 4B FA 41 09 */ bl SOHtoNl
+/* 80352C74 0034E8D4 90 61 00 34 */ stw r3, 0x34(r1)
+/* 80352C78 0034E8D8 38 00 00 01 */ li r0, 1
+lbl_80352C7C:
+/* 80352C7C 0034E8DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80352C80 0034E8E0 40 82 00 0C */ bne lbl_80352C8C
+/* 80352C84 0034E8E4 38 60 00 03 */ li r3, 3
+/* 80352C88 0034E8E8 48 00 0F CC */ b lbl_80353C54
+lbl_80352C8C:
+/* 80352C8C 0034E8EC 80 7C 00 10 */ lwz r3, 0x10(r28)
+/* 80352C90 0034E8F0 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 80352C94 0034E8F4 80 81 00 34 */ lwz r4, 0x34(r1)
+/* 80352C98 0034E8F8 7C 03 00 50 */ subf r0, r3, r0
+/* 80352C9C 0034E8FC 7C 04 00 00 */ cmpw r4, r0
+/* 80352CA0 0034E900 40 81 00 0C */ ble lbl_80352CAC
+/* 80352CA4 0034E904 38 60 00 03 */ li r3, 3
+/* 80352CA8 0034E908 48 00 0F AC */ b lbl_80353C54
+lbl_80352CAC:
+/* 80352CAC 0034E90C 38 03 00 02 */ addi r0, r3, 2
+/* 80352CB0 0034E910 7F 83 E3 78 */ mr r3, r28
+/* 80352CB4 0034E914 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 80352CB8 0034E918 38 9F 06 64 */ addi r4, r31, 0x664
+/* 80352CBC 0034E91C 38 A0 00 20 */ li r5, 0x20
+/* 80352CC0 0034E920 4B FF E4 89 */ bl ghiReadDataFromBufferFixed
+/* 80352CC4 0034E924 2C 03 00 00 */ cmpwi r3, 0
+/* 80352CC8 0034E928 40 82 00 0C */ bne lbl_80352CD4
+/* 80352CCC 0034E92C 38 60 00 03 */ li r3, 3
+/* 80352CD0 0034E930 48 00 0F 84 */ b lbl_80353C54
+lbl_80352CD4:
+/* 80352CD4 0034E934 7F 83 E3 78 */ mr r3, r28
+/* 80352CD8 0034E938 38 81 00 08 */ addi r4, r1, 8
+/* 80352CDC 0034E93C 38 A0 00 01 */ li r5, 1
+/* 80352CE0 0034E940 4B FF E4 69 */ bl ghiReadDataFromBufferFixed
+/* 80352CE4 0034E944 2C 03 00 00 */ cmpwi r3, 0
+/* 80352CE8 0034E948 40 82 00 0C */ bne lbl_80352CF4
+/* 80352CEC 0034E94C 38 60 00 03 */ li r3, 3
+/* 80352CF0 0034E950 48 00 0F 64 */ b lbl_80353C54
+lbl_80352CF4:
+/* 80352CF4 0034E954 88 A1 00 08 */ lbz r5, 8(r1)
+/* 80352CF8 0034E958 7F 83 E3 78 */ mr r3, r28
+/* 80352CFC 0034E95C 38 9F 00 04 */ addi r4, r31, 4
+/* 80352D00 0034E960 7C A5 07 74 */ extsb r5, r5
+/* 80352D04 0034E964 4B FF E4 45 */ bl ghiReadDataFromBufferFixed
+/* 80352D08 0034E968 2C 03 00 00 */ cmpwi r3, 0
+/* 80352D0C 0034E96C 40 82 00 0C */ bne lbl_80352D18
+/* 80352D10 0034E970 38 60 00 03 */ li r3, 3
+/* 80352D14 0034E974 48 00 0F 40 */ b lbl_80353C54
+lbl_80352D18:
+/* 80352D18 0034E978 88 01 00 08 */ lbz r0, 8(r1)
+/* 80352D1C 0034E97C 7F 83 E3 78 */ mr r3, r28
+/* 80352D20 0034E980 38 81 00 32 */ addi r4, r1, 0x32
+/* 80352D24 0034E984 38 A0 00 02 */ li r5, 2
+/* 80352D28 0034E988 7C 00 07 74 */ extsb r0, r0
+/* 80352D2C 0034E98C 90 1F 00 00 */ stw r0, 0(r31)
+/* 80352D30 0034E990 4B FF E4 19 */ bl ghiReadDataFromBufferFixed
+/* 80352D34 0034E994 2C 03 00 00 */ cmpwi r3, 0
+/* 80352D38 0034E998 40 82 00 0C */ bne lbl_80352D44
+/* 80352D3C 0034E99C 38 00 00 00 */ li r0, 0
+/* 80352D40 0034E9A0 48 00 00 14 */ b lbl_80352D54
+lbl_80352D44:
+/* 80352D44 0034E9A4 80 61 00 30 */ lwz r3, 0x30(r1)
+/* 80352D48 0034E9A8 4B FA 40 31 */ bl SOHtoNl
+/* 80352D4C 0034E9AC 90 61 00 30 */ stw r3, 0x30(r1)
+/* 80352D50 0034E9B0 38 00 00 01 */ li r0, 1
+lbl_80352D54:
+/* 80352D54 0034E9B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80352D58 0034E9B8 40 82 00 0C */ bne lbl_80352D64
+/* 80352D5C 0034E9BC 38 60 00 03 */ li r3, 3
+/* 80352D60 0034E9C0 48 00 0E F4 */ b lbl_80353C54
+lbl_80352D64:
+/* 80352D64 0034E9C4 80 01 00 30 */ lwz r0, 0x30(r1)
+/* 80352D68 0034E9C8 7F 83 E3 78 */ mr r3, r28
+/* 80352D6C 0034E9CC 38 81 00 08 */ addi r4, r1, 8
+/* 80352D70 0034E9D0 38 A0 00 01 */ li r5, 1
+/* 80352D74 0034E9D4 B0 1F 01 04 */ sth r0, 0x104(r31)
+/* 80352D78 0034E9D8 4B FF E3 D1 */ bl ghiReadDataFromBufferFixed
+/* 80352D7C 0034E9DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80352D80 0034E9E0 40 82 00 0C */ bne lbl_80352D8C
+/* 80352D84 0034E9E4 38 60 00 03 */ li r3, 3
+/* 80352D88 0034E9E8 48 00 0E CC */ b lbl_80353C54
+lbl_80352D8C:
+/* 80352D8C 0034E9EC 88 01 00 08 */ lbz r0, 8(r1)
+/* 80352D90 0034E9F0 7C 00 07 75 */ extsb. r0, r0
+/* 80352D94 0034E9F4 41 82 00 0C */ beq lbl_80352DA0
+/* 80352D98 0034E9F8 38 60 00 03 */ li r3, 3
+/* 80352D9C 0034E9FC 48 00 0E B8 */ b lbl_80353C54
+lbl_80352DA0:
+/* 80352DA0 0034EA00 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 80352DA4 0034EA04 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80352DA8 0034EA08 80 1C 00 04 */ lwz r0, 4(r28)
+/* 80352DAC 0034EA0C 7D F0 20 50 */ subf r15, r16, r4
+/* 80352DB0 0034EA10 7D E5 7B 78 */ mr r5, r15
+/* 80352DB4 0034EA14 7C 80 82 14 */ add r4, r0, r16
+/* 80352DB8 0034EA18 4B FE 3F 2D */ bl MD5Update
+/* 80352DBC 0034EA1C 80 1C 00 04 */ lwz r0, 4(r28)
+/* 80352DC0 0034EA20 7D E5 7B 78 */ mr r5, r15
+/* 80352DC4 0034EA24 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80352DC8 0034EA28 7C 80 82 14 */ add r4, r0, r16
+/* 80352DCC 0034EA2C 4B FE 98 C1 */ bl SHA1Input
+/* 80352DD0 0034EA30 48 00 0E 68 */ b lbl_80353C38
+lbl_80352DD4:
+/* 80352DD4 0034EA34 2C 00 00 0B */ cmpwi r0, 0xb
+/* 80352DD8 0034EA38 40 82 09 34 */ bne lbl_8035370C
+/* 80352DDC 0034EA3C 92 41 00 2C */ stw r18, 0x2c(r1)
+/* 80352DE0 0034EA40 7F 83 E3 78 */ mr r3, r28
+/* 80352DE4 0034EA44 38 81 00 2D */ addi r4, r1, 0x2d
+/* 80352DE8 0034EA48 3B C0 00 00 */ li r30, 0
+/* 80352DEC 0034EA4C 92 41 00 28 */ stw r18, 0x28(r1)
+/* 80352DF0 0034EA50 38 A0 00 03 */ li r5, 3
+/* 80352DF4 0034EA54 4B FF E3 55 */ bl ghiReadDataFromBufferFixed
+/* 80352DF8 0034EA58 2C 03 00 00 */ cmpwi r3, 0
+/* 80352DFC 0034EA5C 40 82 00 0C */ bne lbl_80352E08
+/* 80352E00 0034EA60 38 00 00 00 */ li r0, 0
+/* 80352E04 0034EA64 48 00 00 14 */ b lbl_80352E18
+lbl_80352E08:
+/* 80352E08 0034EA68 80 61 00 2C */ lwz r3, 0x2c(r1)
+/* 80352E0C 0034EA6C 4B FA 3F 6D */ bl SOHtoNl
+/* 80352E10 0034EA70 90 61 00 2C */ stw r3, 0x2c(r1)
+/* 80352E14 0034EA74 38 00 00 01 */ li r0, 1
+lbl_80352E18:
+/* 80352E18 0034EA78 2C 00 00 00 */ cmpwi r0, 0
+/* 80352E1C 0034EA7C 40 82 00 0C */ bne lbl_80352E28
+/* 80352E20 0034EA80 38 60 00 03 */ li r3, 3
+/* 80352E24 0034EA84 48 00 0E 30 */ b lbl_80353C54
+lbl_80352E28:
+/* 80352E28 0034EA88 7F 83 E3 78 */ mr r3, r28
+/* 80352E2C 0034EA8C 38 81 00 29 */ addi r4, r1, 0x29
+/* 80352E30 0034EA90 38 A0 00 03 */ li r5, 3
+/* 80352E34 0034EA94 4B FF E3 15 */ bl ghiReadDataFromBufferFixed
+/* 80352E38 0034EA98 2C 03 00 00 */ cmpwi r3, 0
+/* 80352E3C 0034EA9C 40 82 00 0C */ bne lbl_80352E48
+/* 80352E40 0034EAA0 38 00 00 00 */ li r0, 0
+/* 80352E44 0034EAA4 48 00 00 14 */ b lbl_80352E58
+lbl_80352E48:
+/* 80352E48 0034EAA8 80 61 00 28 */ lwz r3, 0x28(r1)
+/* 80352E4C 0034EAAC 4B FA 3F 2D */ bl SOHtoNl
+/* 80352E50 0034EAB0 90 61 00 28 */ stw r3, 0x28(r1)
+/* 80352E54 0034EAB4 38 00 00 01 */ li r0, 1
+lbl_80352E58:
+/* 80352E58 0034EAB8 2C 00 00 00 */ cmpwi r0, 0
+/* 80352E5C 0034EABC 40 82 00 0C */ bne lbl_80352E68
+/* 80352E60 0034EAC0 38 60 00 03 */ li r3, 3
+/* 80352E64 0034EAC4 48 00 0D F0 */ b lbl_80353C54
+lbl_80352E68:
+/* 80352E68 0034EAC8 80 81 00 28 */ lwz r4, 0x28(r1)
+/* 80352E6C 0034EACC 80 61 00 2C */ lwz r3, 0x2c(r1)
+/* 80352E70 0034EAD0 38 04 00 03 */ addi r0, r4, 3
+/* 80352E74 0034EAD4 7C 03 00 00 */ cmpw r3, r0
+/* 80352E78 0034EAD8 41 82 00 0C */ beq lbl_80352E84
+/* 80352E7C 0034EADC 38 60 00 03 */ li r3, 3
+/* 80352E80 0034EAE0 48 00 0D D4 */ b lbl_80353C54
+lbl_80352E84:
+/* 80352E84 0034EAE4 80 7C 00 10 */ lwz r3, 0x10(r28)
+/* 80352E88 0034EAE8 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 80352E8C 0034EAEC 7F A3 22 14 */ add r29, r3, r4
+/* 80352E90 0034EAF0 7C 03 00 50 */ subf r0, r3, r0
+/* 80352E94 0034EAF4 7C 04 00 00 */ cmpw r4, r0
+/* 80352E98 0034EAF8 40 81 00 0C */ ble lbl_80352EA4
+/* 80352E9C 0034EAFC 38 60 00 03 */ li r3, 3
+/* 80352EA0 0034EB00 48 00 0D B4 */ b lbl_80353C54
+lbl_80352EA4:
+/* 80352EA4 0034EB04 3C 60 00 01 */ lis r3, 0x0000FFFF@ha
+/* 80352EA8 0034EB08 3A 63 FF FF */ addi r19, r3, 0x0000FFFF@l
+/* 80352EAC 0034EB0C 48 00 08 18 */ b lbl_803536C4
+lbl_80352EB0:
+/* 80352EB0 0034EB10 92 41 00 24 */ stw r18, 0x24(r1)
+/* 80352EB4 0034EB14 7F 83 E3 78 */ mr r3, r28
+/* 80352EB8 0034EB18 7E 24 8B 78 */ mr r4, r17
+/* 80352EBC 0034EB1C 38 A0 00 03 */ li r5, 3
+/* 80352EC0 0034EB20 4B FF E2 89 */ bl ghiReadDataFromBufferFixed
+/* 80352EC4 0034EB24 2C 03 00 00 */ cmpwi r3, 0
+/* 80352EC8 0034EB28 40 82 00 0C */ bne lbl_80352ED4
+/* 80352ECC 0034EB2C 38 00 00 00 */ li r0, 0
+/* 80352ED0 0034EB30 48 00 00 14 */ b lbl_80352EE4
+lbl_80352ED4:
+/* 80352ED4 0034EB34 80 61 00 24 */ lwz r3, 0x24(r1)
+/* 80352ED8 0034EB38 4B FA 3E A1 */ bl SOHtoNl
+/* 80352EDC 0034EB3C 90 61 00 24 */ stw r3, 0x24(r1)
+/* 80352EE0 0034EB40 38 00 00 01 */ li r0, 1
+lbl_80352EE4:
+/* 80352EE4 0034EB44 2C 00 00 00 */ cmpwi r0, 0
+/* 80352EE8 0034EB48 40 82 00 0C */ bne lbl_80352EF4
+/* 80352EEC 0034EB4C 38 60 00 03 */ li r3, 3
+/* 80352EF0 0034EB50 48 00 0D 64 */ b lbl_80353C54
+lbl_80352EF4:
+/* 80352EF4 0034EB54 81 FC 00 10 */ lwz r15, 0x10(r28)
+/* 80352EF8 0034EB58 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 80352EFC 0034EB5C 80 61 00 24 */ lwz r3, 0x24(r1)
+/* 80352F00 0034EB60 7C 0F 00 50 */ subf r0, r15, r0
+/* 80352F04 0034EB64 7C 03 00 00 */ cmpw r3, r0
+/* 80352F08 0034EB68 40 81 00 0C */ ble lbl_80352F14
+/* 80352F0C 0034EB6C 38 60 00 03 */ li r3, 3
+/* 80352F10 0034EB70 48 00 0D 44 */ b lbl_80353C54
+lbl_80352F14:
+/* 80352F14 0034EB74 7C 03 98 00 */ cmpw r3, r19
+/* 80352F18 0034EB78 40 81 00 0C */ ble lbl_80352F24
+/* 80352F1C 0034EB7C 38 60 00 03 */ li r3, 3
+/* 80352F20 0034EB80 48 00 0D 34 */ b lbl_80353C54
+lbl_80352F24:
+/* 80352F24 0034EB84 3B DE 00 01 */ addi r30, r30, 1
+/* 80352F28 0034EB88 2C 1E 00 01 */ cmpwi r30, 1
+/* 80352F2C 0034EB8C 40 82 07 8C */ bne lbl_803536B8
+/* 80352F30 0034EB90 92 41 00 20 */ stw r18, 0x20(r1)
+/* 80352F34 0034EB94 7F 83 E3 78 */ mr r3, r28
+/* 80352F38 0034EB98 38 81 00 20 */ addi r4, r1, 0x20
+/* 80352F3C 0034EB9C 4B FF F0 65 */ bl ghiEncryptorParseASN1Sequence
+/* 80352F40 0034EBA0 2C 03 00 00 */ cmpwi r3, 0
+/* 80352F44 0034EBA4 40 82 00 0C */ bne lbl_80352F50
+/* 80352F48 0034EBA8 38 60 00 03 */ li r3, 3
+/* 80352F4C 0034EBAC 48 00 0D 08 */ b lbl_80353C54
+lbl_80352F50:
+/* 80352F50 0034EBB0 7F 83 E3 78 */ mr r3, r28
+/* 80352F54 0034EBB4 38 81 00 20 */ addi r4, r1, 0x20
+/* 80352F58 0034EBB8 4B FF F0 49 */ bl ghiEncryptorParseASN1Sequence
+/* 80352F5C 0034EBBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80352F60 0034EBC0 40 82 00 0C */ bne lbl_80352F6C
+/* 80352F64 0034EBC4 38 60 00 03 */ li r3, 3
+/* 80352F68 0034EBC8 48 00 0C EC */ b lbl_80353C54
+lbl_80352F6C:
+/* 80352F6C 0034EBCC 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 80352F70 0034EBD0 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 80352F74 0034EBD4 7C 04 00 50 */ subf r0, r4, r0
+/* 80352F78 0034EBD8 2C 00 00 05 */ cmpwi r0, 5
+/* 80352F7C 0034EBDC 40 80 00 0C */ bge lbl_80352F88
+/* 80352F80 0034EBE0 38 60 00 03 */ li r3, 3
+/* 80352F84 0034EBE4 48 00 0C D0 */ b lbl_80353C54
+lbl_80352F88:
+/* 80352F88 0034EBE8 38 A4 00 01 */ addi r5, r4, 1
+/* 80352F8C 0034EBEC 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80352F90 0034EBF0 90 BC 00 10 */ stw r5, 0x10(r28)
+/* 80352F94 0034EBF4 7C 03 20 AE */ lbzx r0, r3, r4
+/* 80352F98 0034EBF8 28 00 00 A0 */ cmplwi r0, 0xa0
+/* 80352F9C 0034EBFC 41 82 00 0C */ beq lbl_80352FA8
+/* 80352FA0 0034EC00 38 60 00 03 */ li r3, 3
+/* 80352FA4 0034EC04 48 00 0C B0 */ b lbl_80353C54
+lbl_80352FA8:
+/* 80352FA8 0034EC08 38 85 00 01 */ addi r4, r5, 1
+/* 80352FAC 0034EC0C 90 9C 00 10 */ stw r4, 0x10(r28)
+/* 80352FB0 0034EC10 7C 03 28 AE */ lbzx r0, r3, r5
+/* 80352FB4 0034EC14 28 00 00 03 */ cmplwi r0, 3
+/* 80352FB8 0034EC18 41 82 00 0C */ beq lbl_80352FC4
+/* 80352FBC 0034EC1C 38 60 00 03 */ li r3, 3
+/* 80352FC0 0034EC20 48 00 0C 94 */ b lbl_80353C54
+lbl_80352FC4:
+/* 80352FC4 0034EC24 38 A4 00 01 */ addi r5, r4, 1
+/* 80352FC8 0034EC28 90 BC 00 10 */ stw r5, 0x10(r28)
+/* 80352FCC 0034EC2C 7C 03 20 AE */ lbzx r0, r3, r4
+/* 80352FD0 0034EC30 28 00 00 02 */ cmplwi r0, 2
+/* 80352FD4 0034EC34 41 82 00 0C */ beq lbl_80352FE0
+/* 80352FD8 0034EC38 38 60 00 03 */ li r3, 3
+/* 80352FDC 0034EC3C 48 00 0C 78 */ b lbl_80353C54
+lbl_80352FE0:
+/* 80352FE0 0034EC40 38 85 00 01 */ addi r4, r5, 1
+/* 80352FE4 0034EC44 90 9C 00 10 */ stw r4, 0x10(r28)
+/* 80352FE8 0034EC48 7C 03 28 AE */ lbzx r0, r3, r5
+/* 80352FEC 0034EC4C 28 00 00 01 */ cmplwi r0, 1
+/* 80352FF0 0034EC50 41 82 00 0C */ beq lbl_80352FFC
+/* 80352FF4 0034EC54 38 60 00 03 */ li r3, 3
+/* 80352FF8 0034EC58 48 00 0C 5C */ b lbl_80353C54
+lbl_80352FFC:
+/* 80352FFC 0034EC5C 38 A4 00 01 */ addi r5, r4, 1
+/* 80353000 0034EC60 38 85 00 01 */ addi r4, r5, 1
+/* 80353004 0034EC64 90 9C 00 10 */ stw r4, 0x10(r28)
+/* 80353008 0034EC68 7C 03 28 AE */ lbzx r0, r3, r5
+/* 8035300C 0034EC6C 28 00 00 02 */ cmplwi r0, 2
+/* 80353010 0034EC70 41 82 00 0C */ beq lbl_8035301C
+/* 80353014 0034EC74 38 60 00 03 */ li r3, 3
+/* 80353018 0034EC78 48 00 0C 3C */ b lbl_80353C54
+lbl_8035301C:
+/* 8035301C 0034EC7C 38 04 00 01 */ addi r0, r4, 1
+/* 80353020 0034EC80 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 80353024 0034EC84 7E 83 20 AE */ lbzx r20, r3, r4
+/* 80353028 0034EC88 7C 00 A2 14 */ add r0, r0, r20
+/* 8035302C 0034EC8C 7C 00 E8 00 */ cmpw r0, r29
+/* 80353030 0034EC90 40 81 00 0C */ ble lbl_8035303C
+/* 80353034 0034EC94 38 60 00 03 */ li r3, 3
+/* 80353038 0034EC98 48 00 0C 1C */ b lbl_80353C54
+lbl_8035303C:
+/* 8035303C 0034EC9C 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 80353040 0034ECA0 7F 83 E3 78 */ mr r3, r28
+/* 80353044 0034ECA4 38 81 00 20 */ addi r4, r1, 0x20
+/* 80353048 0034ECA8 4B FF EF 59 */ bl ghiEncryptorParseASN1Sequence
+/* 8035304C 0034ECAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80353050 0034ECB0 40 82 00 0C */ bne lbl_8035305C
+/* 80353054 0034ECB4 38 60 00 03 */ li r3, 3
+/* 80353058 0034ECB8 48 00 0B FC */ b lbl_80353C54
+lbl_8035305C:
+/* 8035305C 0034ECBC 80 BC 00 10 */ lwz r5, 0x10(r28)
+/* 80353060 0034ECC0 7F 83 E3 78 */ mr r3, r28
+/* 80353064 0034ECC4 80 01 00 20 */ lwz r0, 0x20(r1)
+/* 80353068 0034ECC8 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035306C 0034ECCC 7C 05 02 14 */ add r0, r5, r0
+/* 80353070 0034ECD0 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 80353074 0034ECD4 4B FF EF 2D */ bl ghiEncryptorParseASN1Sequence
+/* 80353078 0034ECD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035307C 0034ECDC 40 82 00 0C */ bne lbl_80353088
+/* 80353080 0034ECE0 38 60 00 03 */ li r3, 3
+/* 80353084 0034ECE4 48 00 0B D0 */ b lbl_80353C54
+lbl_80353088:
+/* 80353088 0034ECE8 80 BC 00 10 */ lwz r5, 0x10(r28)
+/* 8035308C 0034ECEC 7F 83 E3 78 */ mr r3, r28
+/* 80353090 0034ECF0 80 01 00 20 */ lwz r0, 0x20(r1)
+/* 80353094 0034ECF4 38 81 00 20 */ addi r4, r1, 0x20
+/* 80353098 0034ECF8 7C 05 02 14 */ add r0, r5, r0
+/* 8035309C 0034ECFC 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 803530A0 0034ED00 4B FF EF 01 */ bl ghiEncryptorParseASN1Sequence
+/* 803530A4 0034ED04 2C 03 00 00 */ cmpwi r3, 0
+/* 803530A8 0034ED08 40 82 00 0C */ bne lbl_803530B4
+/* 803530AC 0034ED0C 38 60 00 03 */ li r3, 3
+/* 803530B0 0034ED10 48 00 0B A4 */ b lbl_80353C54
+lbl_803530B4:
+/* 803530B4 0034ED14 80 BC 00 10 */ lwz r5, 0x10(r28)
+/* 803530B8 0034ED18 7F 83 E3 78 */ mr r3, r28
+/* 803530BC 0034ED1C 80 01 00 20 */ lwz r0, 0x20(r1)
+/* 803530C0 0034ED20 38 81 00 20 */ addi r4, r1, 0x20
+/* 803530C4 0034ED24 7C 05 02 14 */ add r0, r5, r0
+/* 803530C8 0034ED28 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 803530CC 0034ED2C 4B FF EE D5 */ bl ghiEncryptorParseASN1Sequence
+/* 803530D0 0034ED30 2C 03 00 00 */ cmpwi r3, 0
+/* 803530D4 0034ED34 40 82 00 0C */ bne lbl_803530E0
+/* 803530D8 0034ED38 38 60 00 03 */ li r3, 3
+/* 803530DC 0034ED3C 48 00 0B 78 */ b lbl_80353C54
+lbl_803530E0:
+/* 803530E0 0034ED40 80 BC 00 10 */ lwz r5, 0x10(r28)
+/* 803530E4 0034ED44 7F 83 E3 78 */ mr r3, r28
+/* 803530E8 0034ED48 80 01 00 20 */ lwz r0, 0x20(r1)
+/* 803530EC 0034ED4C 38 81 00 20 */ addi r4, r1, 0x20
+/* 803530F0 0034ED50 7C 05 02 14 */ add r0, r5, r0
+/* 803530F4 0034ED54 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 803530F8 0034ED58 4B FF EE A9 */ bl ghiEncryptorParseASN1Sequence
+/* 803530FC 0034ED5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80353100 0034ED60 40 82 00 0C */ bne lbl_8035310C
+/* 80353104 0034ED64 38 60 00 03 */ li r3, 3
+/* 80353108 0034ED68 48 00 0B 4C */ b lbl_80353C54
+lbl_8035310C:
+/* 8035310C 0034ED6C 7F 83 E3 78 */ mr r3, r28
+/* 80353110 0034ED70 38 81 00 20 */ addi r4, r1, 0x20
+/* 80353114 0034ED74 4B FF EE 8D */ bl ghiEncryptorParseASN1Sequence
+/* 80353118 0034ED78 2C 03 00 00 */ cmpwi r3, 0
+/* 8035311C 0034ED7C 40 82 00 0C */ bne lbl_80353128
+/* 80353120 0034ED80 38 60 00 03 */ li r3, 3
+/* 80353124 0034ED84 48 00 0B 30 */ b lbl_80353C54
+lbl_80353128:
+/* 80353128 0034ED88 80 01 00 20 */ lwz r0, 0x20(r1)
+/* 8035312C 0034ED8C 2C 00 00 0D */ cmpwi r0, 0xd
+/* 80353130 0034ED90 41 82 00 0C */ beq lbl_8035313C
+/* 80353134 0034ED94 38 60 00 03 */ li r3, 3
+/* 80353138 0034ED98 48 00 0B 1C */ b lbl_80353C54
+lbl_8035313C:
+/* 8035313C 0034ED9C 80 7C 00 10 */ lwz r3, 0x10(r28)
+/* 80353140 0034EDA0 80 BC 00 04 */ lwz r5, 4(r28)
+/* 80353144 0034EDA4 38 83 00 01 */ addi r4, r3, 1
+/* 80353148 0034EDA8 90 9C 00 10 */ stw r4, 0x10(r28)
+/* 8035314C 0034EDAC 7C 05 18 AE */ lbzx r0, r5, r3
+/* 80353150 0034EDB0 28 00 00 06 */ cmplwi r0, 6
+/* 80353154 0034EDB4 41 82 00 0C */ beq lbl_80353160
+/* 80353158 0034EDB8 38 60 00 03 */ li r3, 3
+/* 8035315C 0034EDBC 48 00 0A F8 */ b lbl_80353C54
+lbl_80353160:
+/* 80353160 0034EDC0 38 64 00 01 */ addi r3, r4, 1
+/* 80353164 0034EDC4 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353168 0034EDC8 7C 05 20 AE */ lbzx r0, r5, r4
+/* 8035316C 0034EDCC 28 00 00 09 */ cmplwi r0, 9
+/* 80353170 0034EDD0 41 82 00 0C */ beq lbl_8035317C
+/* 80353174 0034EDD4 38 60 00 03 */ li r3, 3
+/* 80353178 0034EDD8 48 00 0A DC */ b lbl_80353C54
+lbl_8035317C:
+/* 8035317C 0034EDDC 7C 65 1A 14 */ add r3, r5, r3
+/* 80353180 0034EDE0 38 95 25 70 */ addi r4, r21, 0x2570
+/* 80353184 0034EDE4 38 A0 00 09 */ li r5, 9
+/* 80353188 0034EDE8 4B E7 72 11 */ bl memcmp
+/* 8035318C 0034EDEC 2C 03 00 00 */ cmpwi r3, 0
+/* 80353190 0034EDF0 41 82 00 0C */ beq lbl_8035319C
+/* 80353194 0034EDF4 38 60 00 03 */ li r3, 3
+/* 80353198 0034EDF8 48 00 0A BC */ b lbl_80353C54
+lbl_8035319C:
+/* 8035319C 0034EDFC 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 803531A0 0034EE00 80 7C 00 04 */ lwz r3, 4(r28)
+/* 803531A4 0034EE04 38 84 00 09 */ addi r4, r4, 9
+/* 803531A8 0034EE08 38 A4 00 01 */ addi r5, r4, 1
+/* 803531AC 0034EE0C 90 BC 00 10 */ stw r5, 0x10(r28)
+/* 803531B0 0034EE10 7C 03 20 AE */ lbzx r0, r3, r4
+/* 803531B4 0034EE14 28 00 00 05 */ cmplwi r0, 5
+/* 803531B8 0034EE18 41 82 00 0C */ beq lbl_803531C4
+/* 803531BC 0034EE1C 38 60 00 03 */ li r3, 3
+/* 803531C0 0034EE20 48 00 0A 94 */ b lbl_80353C54
+lbl_803531C4:
+/* 803531C4 0034EE24 38 85 00 01 */ addi r4, r5, 1
+/* 803531C8 0034EE28 90 9C 00 10 */ stw r4, 0x10(r28)
+/* 803531CC 0034EE2C 7C 03 28 AE */ lbzx r0, r3, r5
+/* 803531D0 0034EE30 2C 00 00 00 */ cmpwi r0, 0
+/* 803531D4 0034EE34 41 82 00 0C */ beq lbl_803531E0
+/* 803531D8 0034EE38 38 60 00 03 */ li r3, 3
+/* 803531DC 0034EE3C 48 00 0A 78 */ b lbl_80353C54
+lbl_803531E0:
+/* 803531E0 0034EE40 7C 04 E8 50 */ subf r0, r4, r29
+/* 803531E4 0034EE44 2C 00 00 02 */ cmpwi r0, 2
+/* 803531E8 0034EE48 40 80 00 0C */ bge lbl_803531F4
+/* 803531EC 0034EE4C 38 60 00 03 */ li r3, 3
+/* 803531F0 0034EE50 48 00 0A 64 */ b lbl_80353C54
+lbl_803531F4:
+/* 803531F4 0034EE54 38 A4 00 01 */ addi r5, r4, 1
+/* 803531F8 0034EE58 90 BC 00 10 */ stw r5, 0x10(r28)
+/* 803531FC 0034EE5C 7C 03 20 AE */ lbzx r0, r3, r4
+/* 80353200 0034EE60 28 00 00 03 */ cmplwi r0, 3
+/* 80353204 0034EE64 41 82 00 0C */ beq lbl_80353210
+/* 80353208 0034EE68 38 60 00 03 */ li r3, 3
+/* 8035320C 0034EE6C 48 00 0A 48 */ b lbl_80353C54
+lbl_80353210:
+/* 80353210 0034EE70 38 85 00 01 */ addi r4, r5, 1
+/* 80353214 0034EE74 90 9C 00 10 */ stw r4, 0x10(r28)
+/* 80353218 0034EE78 7C 03 28 AE */ lbzx r0, r3, r5
+/* 8035321C 0034EE7C 28 00 00 81 */ cmplwi r0, 0x81
+/* 80353220 0034EE80 41 82 00 0C */ beq lbl_8035322C
+/* 80353224 0034EE84 38 60 00 03 */ li r3, 3
+/* 80353228 0034EE88 48 00 0A 2C */ b lbl_80353C54
+lbl_8035322C:
+/* 8035322C 0034EE8C 7C 04 E8 50 */ subf r0, r4, r29
+/* 80353230 0034EE90 7C 14 00 00 */ cmpw r20, r0
+/* 80353234 0034EE94 40 81 00 0C */ ble lbl_80353240
+/* 80353238 0034EE98 38 60 00 03 */ li r3, 3
+/* 8035323C 0034EE9C 48 00 0A 18 */ b lbl_80353C54
+lbl_80353240:
+/* 80353240 0034EEA0 38 84 00 01 */ addi r4, r4, 1
+/* 80353244 0034EEA4 38 04 00 01 */ addi r0, r4, 1
+/* 80353248 0034EEA8 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 8035324C 0034EEAC 7C 03 20 AE */ lbzx r0, r3, r4
+/* 80353250 0034EEB0 2C 00 00 00 */ cmpwi r0, 0
+/* 80353254 0034EEB4 41 82 00 0C */ beq lbl_80353260
+/* 80353258 0034EEB8 38 60 00 03 */ li r3, 3
+/* 8035325C 0034EEBC 48 00 09 F8 */ b lbl_80353C54
+lbl_80353260:
+/* 80353260 0034EEC0 7F 83 E3 78 */ mr r3, r28
+/* 80353264 0034EEC4 38 81 00 20 */ addi r4, r1, 0x20
+/* 80353268 0034EEC8 4B FF ED 39 */ bl ghiEncryptorParseASN1Sequence
+/* 8035326C 0034EECC 2C 03 00 00 */ cmpwi r3, 0
+/* 80353270 0034EED0 40 82 00 0C */ bne lbl_8035327C
+/* 80353274 0034EED4 38 60 00 03 */ li r3, 3
+/* 80353278 0034EED8 48 00 09 DC */ b lbl_80353C54
+lbl_8035327C:
+/* 8035327C 0034EEDC 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 80353280 0034EEE0 80 BC 00 04 */ lwz r5, 4(r28)
+/* 80353284 0034EEE4 38 64 00 01 */ addi r3, r4, 1
+/* 80353288 0034EEE8 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 8035328C 0034EEEC 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353290 0034EEF0 7C 00 07 74 */ extsb r0, r0
+/* 80353294 0034EEF4 2C 00 00 02 */ cmpwi r0, 2
+/* 80353298 0034EEF8 41 82 00 0C */ beq lbl_803532A4
+/* 8035329C 0034EEFC 38 60 00 03 */ li r3, 3
+/* 803532A0 0034EF00 48 00 09 B4 */ b lbl_80353C54
+lbl_803532A4:
+/* 803532A4 0034EF04 7C 05 18 AE */ lbzx r0, r5, r3
+/* 803532A8 0034EF08 54 00 06 30 */ rlwinm r0, r0, 0, 0x18, 0x18
+/* 803532AC 0034EF0C 2C 00 00 80 */ cmpwi r0, 0x80
+/* 803532B0 0034EF10 40 82 01 34 */ bne lbl_803533E4
+/* 803532B4 0034EF14 38 03 00 01 */ addi r0, r3, 1
+/* 803532B8 0034EF18 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 803532BC 0034EF1C 7C 05 18 AE */ lbzx r0, r5, r3
+/* 803532C0 0034EF20 54 07 06 7E */ clrlwi r7, r0, 0x19
+/* 803532C4 0034EF24 2C 07 00 04 */ cmpwi r7, 4
+/* 803532C8 0034EF28 40 81 00 0C */ ble lbl_803532D4
+/* 803532CC 0034EF2C 38 60 00 03 */ li r3, 3
+/* 803532D0 0034EF30 48 00 09 84 */ b lbl_80353C54
+lbl_803532D4:
+/* 803532D4 0034EF34 2C 07 00 00 */ cmpwi r7, 0
+/* 803532D8 0034EF38 3A 80 00 00 */ li r20, 0
+/* 803532DC 0034EF3C 40 81 01 14 */ ble lbl_803533F0
+/* 803532E0 0034EF40 54 E0 E8 FF */ rlwinm. r0, r7, 0x1d, 3, 0x1f
+/* 803532E4 0034EF44 7C 09 03 A6 */ mtctr r0
+/* 803532E8 0034EF48 41 82 00 D4 */ beq lbl_803533BC
+lbl_803532EC:
+/* 803532EC 0034EF4C 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 803532F0 0034EF50 56 86 40 2E */ slwi r6, r20, 8
+/* 803532F4 0034EF54 80 BC 00 04 */ lwz r5, 4(r28)
+/* 803532F8 0034EF58 38 64 00 01 */ addi r3, r4, 1
+/* 803532FC 0034EF5C 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353300 0034EF60 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353304 0034EF64 7C 64 1B 78 */ mr r4, r3
+/* 80353308 0034EF68 38 63 00 01 */ addi r3, r3, 1
+/* 8035330C 0034EF6C 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353310 0034EF70 7C D4 03 78 */ or r20, r6, r0
+/* 80353314 0034EF74 56 86 40 2E */ slwi r6, r20, 8
+/* 80353318 0034EF78 7C 05 20 AE */ lbzx r0, r5, r4
+/* 8035331C 0034EF7C 7C 64 1B 78 */ mr r4, r3
+/* 80353320 0034EF80 38 63 00 01 */ addi r3, r3, 1
+/* 80353324 0034EF84 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353328 0034EF88 7C D4 03 78 */ or r20, r6, r0
+/* 8035332C 0034EF8C 56 86 40 2E */ slwi r6, r20, 8
+/* 80353330 0034EF90 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353334 0034EF94 7C 64 1B 78 */ mr r4, r3
+/* 80353338 0034EF98 38 63 00 01 */ addi r3, r3, 1
+/* 8035333C 0034EF9C 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353340 0034EFA0 7C D4 03 78 */ or r20, r6, r0
+/* 80353344 0034EFA4 56 86 40 2E */ slwi r6, r20, 8
+/* 80353348 0034EFA8 7C 05 20 AE */ lbzx r0, r5, r4
+/* 8035334C 0034EFAC 7C 64 1B 78 */ mr r4, r3
+/* 80353350 0034EFB0 38 63 00 01 */ addi r3, r3, 1
+/* 80353354 0034EFB4 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353358 0034EFB8 7C D4 03 78 */ or r20, r6, r0
+/* 8035335C 0034EFBC 56 86 40 2E */ slwi r6, r20, 8
+/* 80353360 0034EFC0 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353364 0034EFC4 7C 64 1B 78 */ mr r4, r3
+/* 80353368 0034EFC8 38 63 00 01 */ addi r3, r3, 1
+/* 8035336C 0034EFCC 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353370 0034EFD0 7C D4 03 78 */ or r20, r6, r0
+/* 80353374 0034EFD4 56 86 40 2E */ slwi r6, r20, 8
+/* 80353378 0034EFD8 7C 05 20 AE */ lbzx r0, r5, r4
+/* 8035337C 0034EFDC 7C 64 1B 78 */ mr r4, r3
+/* 80353380 0034EFE0 38 63 00 01 */ addi r3, r3, 1
+/* 80353384 0034EFE4 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353388 0034EFE8 7C D4 03 78 */ or r20, r6, r0
+/* 8035338C 0034EFEC 56 86 40 2E */ slwi r6, r20, 8
+/* 80353390 0034EFF0 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353394 0034EFF4 7C 64 1B 78 */ mr r4, r3
+/* 80353398 0034EFF8 38 63 00 01 */ addi r3, r3, 1
+/* 8035339C 0034EFFC 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 803533A0 0034F000 7C D4 03 78 */ or r20, r6, r0
+/* 803533A4 0034F004 56 86 40 2E */ slwi r6, r20, 8
+/* 803533A8 0034F008 7C 05 20 AE */ lbzx r0, r5, r4
+/* 803533AC 0034F00C 7C D4 03 78 */ or r20, r6, r0
+/* 803533B0 0034F010 42 00 FF 3C */ bdnz lbl_803532EC
+/* 803533B4 0034F014 70 E7 00 07 */ andi. r7, r7, 7
+/* 803533B8 0034F018 41 82 00 38 */ beq lbl_803533F0
+lbl_803533BC:
+/* 803533BC 0034F01C 7C E9 03 A6 */ mtctr r7
+lbl_803533C0:
+/* 803533C0 0034F020 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 803533C4 0034F024 56 86 40 2E */ slwi r6, r20, 8
+/* 803533C8 0034F028 80 BC 00 04 */ lwz r5, 4(r28)
+/* 803533CC 0034F02C 38 64 00 01 */ addi r3, r4, 1
+/* 803533D0 0034F030 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 803533D4 0034F034 7C 05 20 AE */ lbzx r0, r5, r4
+/* 803533D8 0034F038 7C D4 03 78 */ or r20, r6, r0
+/* 803533DC 0034F03C 42 00 FF E4 */ bdnz lbl_803533C0
+/* 803533E0 0034F040 48 00 00 10 */ b lbl_803533F0
+lbl_803533E4:
+/* 803533E4 0034F044 38 03 00 01 */ addi r0, r3, 1
+/* 803533E8 0034F048 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 803533EC 0034F04C 7E 85 18 AE */ lbzx r20, r5, r3
+lbl_803533F0:
+/* 803533F0 0034F050 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 803533F4 0034F054 7C 04 A2 14 */ add r0, r4, r20
+/* 803533F8 0034F058 7C 00 E8 00 */ cmpw r0, r29
+/* 803533FC 0034F05C 40 81 00 0C */ ble lbl_80353408
+/* 80353400 0034F060 38 60 00 03 */ li r3, 3
+/* 80353404 0034F064 48 00 08 50 */ b lbl_80353C54
+lbl_80353408:
+/* 80353408 0034F068 38 04 00 01 */ addi r0, r4, 1
+/* 8035340C 0034F06C 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80353410 0034F070 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 80353414 0034F074 7C 03 20 AE */ lbzx r0, r3, r4
+/* 80353418 0034F078 7C 00 07 75 */ extsb. r0, r0
+/* 8035341C 0034F07C 41 82 00 0C */ beq lbl_80353428
+/* 80353420 0034F080 38 60 00 03 */ li r3, 3
+/* 80353424 0034F084 48 00 08 30 */ b lbl_80353C54
+lbl_80353428:
+/* 80353428 0034F088 38 B4 FF FF */ addi r5, r20, -1
+/* 8035342C 0034F08C 28 05 08 00 */ cmplwi r5, 0x800
+/* 80353430 0034F090 40 81 00 0C */ ble lbl_8035343C
+/* 80353434 0034F094 38 60 00 03 */ li r3, 3
+/* 80353438 0034F098 48 00 08 1C */ b lbl_80353C54
+lbl_8035343C:
+/* 8035343C 0034F09C 54 A0 F0 02 */ slwi r0, r5, 0x1e
+/* 80353440 0034F0A0 54 A3 0F FE */ srwi r3, r5, 0x1f
+/* 80353444 0034F0A4 7C 03 00 50 */ subf r0, r3, r0
+/* 80353448 0034F0A8 7C A4 16 70 */ srawi r4, r5, 2
+/* 8035344C 0034F0AC 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80353450 0034F0B0 7C 84 01 94 */ addze r4, r4
+/* 80353454 0034F0B4 7C 00 1A 14 */ add r0, r0, r3
+/* 80353458 0034F0B8 90 9F 01 08 */ stw r4, 0x108(r31)
+/* 8035345C 0034F0BC 20 00 00 04 */ subfic r0, r0, 4
+/* 80353460 0034F0C0 54 04 F0 02 */ slwi r4, r0, 0x1e
+/* 80353464 0034F0C4 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80353468 0034F0C8 54 07 0F FE */ srwi r7, r0, 0x1f
+/* 8035346C 0034F0CC 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 80353470 0034F0D0 7C 87 20 50 */ subf r4, r7, r4
+/* 80353474 0034F0D4 54 86 10 3E */ rotlwi r6, r4, 2
+/* 80353478 0034F0D8 7C 83 02 14 */ add r4, r3, r0
+/* 8035347C 0034F0DC 7C 06 3A 14 */ add r0, r6, r7
+/* 80353480 0034F0E0 7C 7F 02 14 */ add r3, r31, r0
+/* 80353484 0034F0E4 38 63 01 0C */ addi r3, r3, 0x10c
+/* 80353488 0034F0E8 4B CB 0B 79 */ bl memcpy
+/* 8035348C 0034F0EC 38 7F 01 08 */ addi r3, r31, 0x108
+/* 80353490 0034F0F0 4B FE 8A 81 */ bl gsLargeIntReverseBytes
+/* 80353494 0034F0F4 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 80353498 0034F0F8 80 BC 00 04 */ lwz r5, 4(r28)
+/* 8035349C 0034F0FC 7C 74 02 14 */ add r3, r20, r0
+/* 803534A0 0034F100 38 83 FF FF */ addi r4, r3, -1
+/* 803534A4 0034F104 38 64 00 01 */ addi r3, r4, 1
+/* 803534A8 0034F108 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 803534AC 0034F10C 7C 05 20 AE */ lbzx r0, r5, r4
+/* 803534B0 0034F110 7C 00 07 74 */ extsb r0, r0
+/* 803534B4 0034F114 2C 00 00 02 */ cmpwi r0, 2
+/* 803534B8 0034F118 41 82 00 0C */ beq lbl_803534C4
+/* 803534BC 0034F11C 38 60 00 03 */ li r3, 3
+/* 803534C0 0034F120 48 00 07 94 */ b lbl_80353C54
+lbl_803534C4:
+/* 803534C4 0034F124 7C 05 18 AE */ lbzx r0, r5, r3
+/* 803534C8 0034F128 54 00 06 30 */ rlwinm r0, r0, 0, 0x18, 0x18
+/* 803534CC 0034F12C 2C 00 00 80 */ cmpwi r0, 0x80
+/* 803534D0 0034F130 40 82 01 34 */ bne lbl_80353604
+/* 803534D4 0034F134 38 03 00 01 */ addi r0, r3, 1
+/* 803534D8 0034F138 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 803534DC 0034F13C 7C 05 18 AE */ lbzx r0, r5, r3
+/* 803534E0 0034F140 54 07 06 7E */ clrlwi r7, r0, 0x19
+/* 803534E4 0034F144 2C 07 00 04 */ cmpwi r7, 4
+/* 803534E8 0034F148 40 81 00 0C */ ble lbl_803534F4
+/* 803534EC 0034F14C 38 60 00 03 */ li r3, 3
+/* 803534F0 0034F150 48 00 07 64 */ b lbl_80353C54
+lbl_803534F4:
+/* 803534F4 0034F154 2C 07 00 00 */ cmpwi r7, 0
+/* 803534F8 0034F158 3A 80 00 00 */ li r20, 0
+/* 803534FC 0034F15C 40 81 01 14 */ ble lbl_80353610
+/* 80353500 0034F160 54 E0 E8 FF */ rlwinm. r0, r7, 0x1d, 3, 0x1f
+/* 80353504 0034F164 7C 09 03 A6 */ mtctr r0
+/* 80353508 0034F168 41 82 00 D4 */ beq lbl_803535DC
+lbl_8035350C:
+/* 8035350C 0034F16C 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 80353510 0034F170 56 86 40 2E */ slwi r6, r20, 8
+/* 80353514 0034F174 80 BC 00 04 */ lwz r5, 4(r28)
+/* 80353518 0034F178 38 64 00 01 */ addi r3, r4, 1
+/* 8035351C 0034F17C 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353520 0034F180 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353524 0034F184 7C 64 1B 78 */ mr r4, r3
+/* 80353528 0034F188 38 63 00 01 */ addi r3, r3, 1
+/* 8035352C 0034F18C 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353530 0034F190 7C D4 03 78 */ or r20, r6, r0
+/* 80353534 0034F194 56 86 40 2E */ slwi r6, r20, 8
+/* 80353538 0034F198 7C 05 20 AE */ lbzx r0, r5, r4
+/* 8035353C 0034F19C 7C 64 1B 78 */ mr r4, r3
+/* 80353540 0034F1A0 38 63 00 01 */ addi r3, r3, 1
+/* 80353544 0034F1A4 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353548 0034F1A8 7C D4 03 78 */ or r20, r6, r0
+/* 8035354C 0034F1AC 56 86 40 2E */ slwi r6, r20, 8
+/* 80353550 0034F1B0 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353554 0034F1B4 7C 64 1B 78 */ mr r4, r3
+/* 80353558 0034F1B8 38 63 00 01 */ addi r3, r3, 1
+/* 8035355C 0034F1BC 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353560 0034F1C0 7C D4 03 78 */ or r20, r6, r0
+/* 80353564 0034F1C4 56 86 40 2E */ slwi r6, r20, 8
+/* 80353568 0034F1C8 7C 05 20 AE */ lbzx r0, r5, r4
+/* 8035356C 0034F1CC 7C 64 1B 78 */ mr r4, r3
+/* 80353570 0034F1D0 38 63 00 01 */ addi r3, r3, 1
+/* 80353574 0034F1D4 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353578 0034F1D8 7C D4 03 78 */ or r20, r6, r0
+/* 8035357C 0034F1DC 56 86 40 2E */ slwi r6, r20, 8
+/* 80353580 0034F1E0 7C 05 20 AE */ lbzx r0, r5, r4
+/* 80353584 0034F1E4 7C 64 1B 78 */ mr r4, r3
+/* 80353588 0034F1E8 38 63 00 01 */ addi r3, r3, 1
+/* 8035358C 0034F1EC 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 80353590 0034F1F0 7C D4 03 78 */ or r20, r6, r0
+/* 80353594 0034F1F4 56 86 40 2E */ slwi r6, r20, 8
+/* 80353598 0034F1F8 7C 05 20 AE */ lbzx r0, r5, r4
+/* 8035359C 0034F1FC 7C 64 1B 78 */ mr r4, r3
+/* 803535A0 0034F200 38 63 00 01 */ addi r3, r3, 1
+/* 803535A4 0034F204 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 803535A8 0034F208 7C D4 03 78 */ or r20, r6, r0
+/* 803535AC 0034F20C 56 86 40 2E */ slwi r6, r20, 8
+/* 803535B0 0034F210 7C 05 20 AE */ lbzx r0, r5, r4
+/* 803535B4 0034F214 7C 64 1B 78 */ mr r4, r3
+/* 803535B8 0034F218 38 63 00 01 */ addi r3, r3, 1
+/* 803535BC 0034F21C 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 803535C0 0034F220 7C D4 03 78 */ or r20, r6, r0
+/* 803535C4 0034F224 56 86 40 2E */ slwi r6, r20, 8
+/* 803535C8 0034F228 7C 05 20 AE */ lbzx r0, r5, r4
+/* 803535CC 0034F22C 7C D4 03 78 */ or r20, r6, r0
+/* 803535D0 0034F230 42 00 FF 3C */ bdnz lbl_8035350C
+/* 803535D4 0034F234 70 E7 00 07 */ andi. r7, r7, 7
+/* 803535D8 0034F238 41 82 00 38 */ beq lbl_80353610
+lbl_803535DC:
+/* 803535DC 0034F23C 7C E9 03 A6 */ mtctr r7
+lbl_803535E0:
+/* 803535E0 0034F240 80 9C 00 10 */ lwz r4, 0x10(r28)
+/* 803535E4 0034F244 56 86 40 2E */ slwi r6, r20, 8
+/* 803535E8 0034F248 80 BC 00 04 */ lwz r5, 4(r28)
+/* 803535EC 0034F24C 38 64 00 01 */ addi r3, r4, 1
+/* 803535F0 0034F250 90 7C 00 10 */ stw r3, 0x10(r28)
+/* 803535F4 0034F254 7C 05 20 AE */ lbzx r0, r5, r4
+/* 803535F8 0034F258 7C D4 03 78 */ or r20, r6, r0
+/* 803535FC 0034F25C 42 00 FF E4 */ bdnz lbl_803535E0
+/* 80353600 0034F260 48 00 00 10 */ b lbl_80353610
+lbl_80353604:
+/* 80353604 0034F264 38 03 00 01 */ addi r0, r3, 1
+/* 80353608 0034F268 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 8035360C 0034F26C 7E 85 18 AE */ lbzx r20, r5, r3
+lbl_80353610:
+/* 80353610 0034F270 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 80353614 0034F274 7C 00 A2 14 */ add r0, r0, r20
+/* 80353618 0034F278 7C 00 E8 00 */ cmpw r0, r29
+/* 8035361C 0034F27C 40 81 00 0C */ ble lbl_80353628
+/* 80353620 0034F280 38 60 00 03 */ li r3, 3
+/* 80353624 0034F284 48 00 06 30 */ b lbl_80353C54
+lbl_80353628:
+/* 80353628 0034F288 2C 14 00 00 */ cmpwi r20, 0
+/* 8035362C 0034F28C 40 82 00 0C */ bne lbl_80353638
+/* 80353630 0034F290 38 60 00 03 */ li r3, 3
+/* 80353634 0034F294 48 00 06 20 */ b lbl_80353C54
+lbl_80353638:
+/* 80353638 0034F298 28 14 08 00 */ cmplwi r20, 0x800
+/* 8035363C 0034F29C 40 81 00 0C */ ble lbl_80353648
+/* 80353640 0034F2A0 38 60 00 03 */ li r3, 3
+/* 80353644 0034F2A4 48 00 06 10 */ b lbl_80353C54
+lbl_80353648:
+/* 80353648 0034F2A8 56 80 F0 02 */ slwi r0, r20, 0x1e
+/* 8035364C 0034F2AC 56 83 0F FE */ srwi r3, r20, 0x1f
+/* 80353650 0034F2B0 38 94 FF FF */ addi r4, r20, -1
+/* 80353654 0034F2B4 7E 85 A3 78 */ mr r5, r20
+/* 80353658 0034F2B8 7C 03 00 50 */ subf r0, r3, r0
+/* 8035365C 0034F2BC 7C 84 16 70 */ srawi r4, r4, 2
+/* 80353660 0034F2C0 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80353664 0034F2C4 7C 84 01 94 */ addze r4, r4
+/* 80353668 0034F2C8 7C 00 1A 14 */ add r0, r0, r3
+/* 8035366C 0034F2CC 20 60 00 04 */ subfic r3, r0, 4
+/* 80353670 0034F2D0 38 04 00 01 */ addi r0, r4, 1
+/* 80353674 0034F2D4 90 1F 02 0C */ stw r0, 0x20c(r31)
+/* 80353678 0034F2D8 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 8035367C 0034F2DC 54 66 0F FE */ srwi r6, r3, 0x1f
+/* 80353680 0034F2E0 7C 06 00 50 */ subf r0, r6, r0
+/* 80353684 0034F2E4 80 7C 00 04 */ lwz r3, 4(r28)
+/* 80353688 0034F2E8 54 04 10 3E */ rotlwi r4, r0, 2
+/* 8035368C 0034F2EC 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 80353690 0034F2F0 7C 84 32 14 */ add r4, r4, r6
+/* 80353694 0034F2F4 7C DF 22 14 */ add r6, r31, r4
+/* 80353698 0034F2F8 7C 83 02 14 */ add r4, r3, r0
+/* 8035369C 0034F2FC 38 66 02 10 */ addi r3, r6, 0x210
+/* 803536A0 0034F300 4B CB 09 61 */ bl memcpy
+/* 803536A4 0034F304 38 7F 02 0C */ addi r3, r31, 0x20c
+/* 803536A8 0034F308 4B FE 88 69 */ bl gsLargeIntReverseBytes
+/* 803536AC 0034F30C 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 803536B0 0034F310 7C 00 A2 14 */ add r0, r0, r20
+/* 803536B4 0034F314 90 1C 00 10 */ stw r0, 0x10(r28)
+lbl_803536B8:
+/* 803536B8 0034F318 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803536BC 0034F31C 7C 0F 02 14 */ add r0, r15, r0
+/* 803536C0 0034F320 90 1C 00 10 */ stw r0, 0x10(r28)
+lbl_803536C4:
+/* 803536C4 0034F324 80 7C 00 10 */ lwz r3, 0x10(r28)
+/* 803536C8 0034F328 7C 03 E8 00 */ cmpw r3, r29
+/* 803536CC 0034F32C 41 80 F7 E4 */ blt lbl_80352EB0
+/* 803536D0 0034F330 41 82 00 0C */ beq lbl_803536DC
+/* 803536D4 0034F334 38 60 00 03 */ li r3, 3
+/* 803536D8 0034F338 48 00 05 7C */ b lbl_80353C54
+lbl_803536DC:
+/* 803536DC 0034F33C 80 1C 00 04 */ lwz r0, 4(r28)
+/* 803536E0 0034F340 7D F0 18 50 */ subf r15, r16, r3
+/* 803536E4 0034F344 7D E5 7B 78 */ mr r5, r15
+/* 803536E8 0034F348 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 803536EC 0034F34C 7C 80 82 14 */ add r4, r0, r16
+/* 803536F0 0034F350 4B FE 35 F5 */ bl MD5Update
+/* 803536F4 0034F354 80 1C 00 04 */ lwz r0, 4(r28)
+/* 803536F8 0034F358 7D E5 7B 78 */ mr r5, r15
+/* 803536FC 0034F35C 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80353700 0034F360 7C 80 82 14 */ add r4, r0, r16
+/* 80353704 0034F364 4B FE 8F 89 */ bl SHA1Input
+/* 80353708 0034F368 48 00 05 30 */ b lbl_80353C38
+lbl_8035370C:
+/* 8035370C 0034F36C 2C 00 00 0E */ cmpwi r0, 0xe
+/* 80353710 0034F370 40 82 05 0C */ bne lbl_80353C1C
+/* 80353714 0034F374 92 41 00 1C */ stw r18, 0x1c(r1)
+/* 80353718 0034F378 7F 83 E3 78 */ mr r3, r28
+/* 8035371C 0034F37C 38 81 00 1D */ addi r4, r1, 0x1d
+/* 80353720 0034F380 38 A0 00 03 */ li r5, 3
+/* 80353724 0034F384 4B FF DA 25 */ bl ghiReadDataFromBufferFixed
+/* 80353728 0034F388 2C 03 00 00 */ cmpwi r3, 0
+/* 8035372C 0034F38C 40 82 00 0C */ bne lbl_80353738
+/* 80353730 0034F390 38 00 00 00 */ li r0, 0
+/* 80353734 0034F394 48 00 00 14 */ b lbl_80353748
+lbl_80353738:
+/* 80353738 0034F398 80 61 00 1C */ lwz r3, 0x1c(r1)
+/* 8035373C 0034F39C 4B FA 36 3D */ bl SOHtoNl
+/* 80353740 0034F3A0 90 61 00 1C */ stw r3, 0x1c(r1)
+/* 80353744 0034F3A4 38 00 00 01 */ li r0, 1
+lbl_80353748:
+/* 80353748 0034F3A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035374C 0034F3AC 40 82 00 0C */ bne lbl_80353758
+/* 80353750 0034F3B0 38 60 00 03 */ li r3, 3
+/* 80353754 0034F3B4 48 00 05 00 */ b lbl_80353C54
+lbl_80353758:
+/* 80353758 0034F3B8 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 8035375C 0034F3BC 2C 00 00 00 */ cmpwi r0, 0
+/* 80353760 0034F3C0 41 82 00 0C */ beq lbl_8035376C
+/* 80353764 0034F3C4 38 60 00 03 */ li r3, 3
+/* 80353768 0034F3C8 48 00 04 EC */ b lbl_80353C54
+lbl_8035376C:
+/* 8035376C 0034F3CC 80 9C 00 04 */ lwz r4, 4(r28)
+/* 80353770 0034F3D0 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353774 0034F3D4 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 80353778 0034F3D8 7C 84 82 14 */ add r4, r4, r16
+/* 8035377C 0034F3DC 7C B0 00 50 */ subf r5, r16, r0
+/* 80353780 0034F3E0 4B FE 35 65 */ bl MD5Update
+/* 80353784 0034F3E4 80 9C 00 04 */ lwz r4, 4(r28)
+/* 80353788 0034F3E8 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 8035378C 0034F3EC 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 80353790 0034F3F0 7C 84 82 14 */ add r4, r4, r16
+/* 80353794 0034F3F4 7C B0 00 50 */ subf r5, r16, r0
+/* 80353798 0034F3F8 4B FE 8E F5 */ bl SHA1Input
+/* 8035379C 0034F3FC 80 1F 01 08 */ lwz r0, 0x108(r31)
+/* 803537A0 0034F400 54 03 10 3A */ slwi r3, r0, 2
+/* 803537A4 0034F404 38 03 00 09 */ addi r0, r3, 9
+/* 803537A8 0034F408 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 803537AC 0034F40C 48 00 00 20 */ b lbl_803537CC
+lbl_803537B0:
+/* 803537B0 0034F410 80 9B 00 68 */ lwz r4, 0x68(r27)
+/* 803537B4 0034F414 38 7B 00 54 */ addi r3, r27, 0x54
+/* 803537B8 0034F418 4B FF D0 3D */ bl ghiResizeBuffer
+/* 803537BC 0034F41C 2C 03 00 00 */ cmpwi r3, 0
+/* 803537C0 0034F420 40 82 00 0C */ bne lbl_803537CC
+/* 803537C4 0034F424 38 60 00 03 */ li r3, 3
+/* 803537C8 0034F428 48 00 04 8C */ b lbl_80353C54
+lbl_803537CC:
+/* 803537CC 0034F42C 80 9B 00 60 */ lwz r4, 0x60(r27)
+/* 803537D0 0034F430 80 7B 00 5C */ lwz r3, 0x5c(r27)
+/* 803537D4 0034F434 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 803537D8 0034F438 7C 64 18 50 */ subf r3, r4, r3
+/* 803537DC 0034F43C 7C 03 00 00 */ cmpw r3, r0
+/* 803537E0 0034F440 41 80 FF D0 */ blt lbl_803537B0
+/* 803537E4 0034F444 9A DF 06 A4 */ stb r22, 0x6a4(r31)
+/* 803537E8 0034F448 39 E0 00 02 */ li r15, 2
+/* 803537EC 0034F44C 9A 5F 06 A5 */ stb r18, 0x6a5(r31)
+lbl_803537F0:
+/* 803537F0 0034F450 4B FE 57 E9 */ bl current_time
+/* 803537F4 0034F454 4B FE 58 6D */ bl Util_RandSeed
+/* 803537F8 0034F458 38 60 00 00 */ li r3, 0
+/* 803537FC 0034F45C 38 80 01 00 */ li r4, 0x100
+/* 80353800 0034F460 4B FE 58 79 */ bl Util_RandInt
+/* 80353804 0034F464 7C 9F 7A 14 */ add r4, r31, r15
+/* 80353808 0034F468 39 EF 00 01 */ addi r15, r15, 1
+/* 8035380C 0034F46C 2C 0F 00 30 */ cmpwi r15, 0x30
+/* 80353810 0034F470 98 64 06 A4 */ stb r3, 0x6a4(r4)
+/* 80353814 0034F474 41 80 FF DC */ blt lbl_803537F0
+/* 80353818 0034F478 80 7B 00 60 */ lwz r3, 0x60(r27)
+/* 8035381C 0034F47C 80 9B 00 58 */ lwz r4, 0x58(r27)
+/* 80353820 0034F480 38 03 00 09 */ addi r0, r3, 9
+/* 80353824 0034F484 90 1B 00 60 */ stw r0, 0x60(r27)
+/* 80353828 0034F488 7D E4 1A 14 */ add r15, r4, r3
+/* 8035382C 0034F48C 7E E4 19 AE */ stbx r23, r4, r3
+/* 80353830 0034F490 9A CF 00 01 */ stb r22, 1(r15)
+/* 80353834 0034F494 9A 4F 00 02 */ stb r18, 2(r15)
+/* 80353838 0034F498 80 1F 01 08 */ lwz r0, 0x108(r31)
+/* 8035383C 0034F49C 54 03 10 3A */ slwi r3, r0, 2
+/* 80353840 0034F4A0 38 63 00 04 */ addi r3, r3, 4
+/* 80353844 0034F4A4 4B FA 35 35 */ bl SOHtoNl
+/* 80353848 0034F4A8 90 61 00 18 */ stw r3, 0x18(r1)
+/* 8035384C 0034F4AC 38 81 00 1A */ addi r4, r1, 0x1a
+/* 80353850 0034F4B0 38 6F 00 03 */ addi r3, r15, 3
+/* 80353854 0034F4B4 38 A0 00 02 */ li r5, 2
+/* 80353858 0034F4B8 4B CB 07 A9 */ bl memcpy
+/* 8035385C 0034F4BC 38 00 00 10 */ li r0, 0x10
+/* 80353860 0034F4C0 98 0F 00 05 */ stb r0, 5(r15)
+/* 80353864 0034F4C4 80 1F 01 08 */ lwz r0, 0x108(r31)
+/* 80353868 0034F4C8 54 03 10 3A */ slwi r3, r0, 2
+/* 8035386C 0034F4CC 4B FA 35 0D */ bl SOHtoNl
+/* 80353870 0034F4D0 90 61 00 14 */ stw r3, 0x14(r1)
+/* 80353874 0034F4D4 38 81 00 15 */ addi r4, r1, 0x15
+/* 80353878 0034F4D8 38 6F 00 06 */ addi r3, r15, 6
+/* 8035387C 0034F4DC 38 A0 00 03 */ li r5, 3
+/* 80353880 0034F4E0 4B CB 07 81 */ bl memcpy
+/* 80353884 0034F4E4 80 DB 00 58 */ lwz r6, 0x58(r27)
+/* 80353888 0034F4E8 38 7F 01 08 */ addi r3, r31, 0x108
+/* 8035388C 0034F4EC 80 1B 00 60 */ lwz r0, 0x60(r27)
+/* 80353890 0034F4F0 38 9F 06 A4 */ addi r4, r31, 0x6a4
+/* 80353894 0034F4F4 38 A0 00 30 */ li r5, 0x30
+/* 80353898 0034F4F8 7C C6 02 14 */ add r6, r6, r0
+/* 8035389C 0034F4FC 4B FE 5D F9 */ bl gsCryptRSAEncryptBuffer
+/* 803538A0 0034F500 80 1F 01 08 */ lwz r0, 0x108(r31)
+/* 803538A4 0034F504 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 803538A8 0034F508 80 BB 00 60 */ lwz r5, 0x60(r27)
+/* 803538AC 0034F50C 38 8F 00 05 */ addi r4, r15, 5
+/* 803538B0 0034F510 54 00 10 3A */ slwi r0, r0, 2
+/* 803538B4 0034F514 7C 05 02 14 */ add r0, r5, r0
+/* 803538B8 0034F518 90 1B 00 60 */ stw r0, 0x60(r27)
+/* 803538BC 0034F51C 80 1F 01 08 */ lwz r0, 0x108(r31)
+/* 803538C0 0034F520 54 05 10 3A */ slwi r5, r0, 2
+/* 803538C4 0034F524 38 A5 00 04 */ addi r5, r5, 4
+/* 803538C8 0034F528 4B FE 34 1D */ bl MD5Update
+/* 803538CC 0034F52C 80 1F 01 08 */ lwz r0, 0x108(r31)
+/* 803538D0 0034F530 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 803538D4 0034F534 38 8F 00 05 */ addi r4, r15, 5
+/* 803538D8 0034F538 54 05 10 3A */ slwi r5, r0, 2
+/* 803538DC 0034F53C 38 A5 00 04 */ addi r5, r5, 4
+/* 803538E0 0034F540 4B FE 8D AD */ bl SHA1Input
+/* 803538E4 0034F544 80 9B 00 58 */ lwz r4, 0x58(r27)
+/* 803538E8 0034F548 7F E3 FB 78 */ mr r3, r31
+/* 803538EC 0034F54C 80 1B 00 60 */ lwz r0, 0x60(r27)
+/* 803538F0 0034F550 7F 04 01 EE */ stbux r24, r4, r0
+/* 803538F4 0034F554 9A C4 00 01 */ stb r22, 1(r4)
+/* 803538F8 0034F558 9A 44 00 02 */ stb r18, 2(r4)
+/* 803538FC 0034F55C 9A 44 00 03 */ stb r18, 3(r4)
+/* 80353900 0034F560 99 C4 00 04 */ stb r14, 4(r4)
+/* 80353904 0034F564 80 BB 00 60 */ lwz r5, 0x60(r27)
+/* 80353908 0034F568 80 9B 00 58 */ lwz r4, 0x58(r27)
+/* 8035390C 0034F56C 38 A5 00 05 */ addi r5, r5, 5
+/* 80353910 0034F570 90 BB 00 60 */ stw r5, 0x60(r27)
+/* 80353914 0034F574 38 05 00 01 */ addi r0, r5, 1
+/* 80353918 0034F578 7D C4 29 AE */ stbx r14, r4, r5
+/* 8035391C 0034F57C 90 1B 00 60 */ stw r0, 0x60(r27)
+/* 80353920 0034F580 4B FF E7 DD */ bl ghttpEncryptorGenerateEncryptionKeys
+/* 80353924 0034F584 80 9B 00 58 */ lwz r4, 0x58(r27)
+/* 80353928 0034F588 38 60 00 24 */ li r3, 0x24
+/* 8035392C 0034F58C 80 1B 00 60 */ lwz r0, 0x60(r27)
+/* 80353930 0034F590 7E E4 01 AE */ stbx r23, r4, r0
+/* 80353934 0034F594 7D E4 02 14 */ add r15, r4, r0
+/* 80353938 0034F598 38 00 00 38 */ li r0, 0x38
+/* 8035393C 0034F59C 9A CF 00 01 */ stb r22, 1(r15)
+/* 80353940 0034F5A0 9A 4F 00 02 */ stb r18, 2(r15)
+/* 80353944 0034F5A4 9A 4F 00 03 */ stb r18, 3(r15)
+/* 80353948 0034F5A8 98 0F 00 04 */ stb r0, 4(r15)
+/* 8035394C 0034F5AC 80 9B 00 60 */ lwz r4, 0x60(r27)
+/* 80353950 0034F5B0 80 BB 00 58 */ lwz r5, 0x58(r27)
+/* 80353954 0034F5B4 38 C4 00 05 */ addi r6, r4, 5
+/* 80353958 0034F5B8 90 DB 00 60 */ stw r6, 0x60(r27)
+/* 8035395C 0034F5BC 38 86 00 01 */ addi r4, r6, 1
+/* 80353960 0034F5C0 7F 05 31 AE */ stbx r24, r5, r6
+/* 80353964 0034F5C4 80 1B 00 58 */ lwz r0, 0x58(r27)
+/* 80353968 0034F5C8 90 9B 00 60 */ stw r4, 0x60(r27)
+/* 8035396C 0034F5CC 7E 00 22 14 */ add r16, r0, r4
+/* 80353970 0034F5D0 4B FA 34 09 */ bl SOHtoNl
+/* 80353974 0034F5D4 90 61 00 10 */ stw r3, 0x10(r1)
+/* 80353978 0034F5D8 7E 03 83 78 */ mr r3, r16
+/* 8035397C 0034F5DC 38 81 00 11 */ addi r4, r1, 0x11
+/* 80353980 0034F5E0 38 A0 00 03 */ li r5, 3
+/* 80353984 0034F5E4 4B CB 06 7D */ bl memcpy
+/* 80353988 0034F5E8 80 DB 00 60 */ lwz r6, 0x60(r27)
+/* 8035398C 0034F5EC 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353990 0034F5F0 38 8D 93 B0 */ addi r4, r13, lbl_8063E670-_SDA_BASE_
+/* 80353994 0034F5F4 38 A0 00 04 */ li r5, 4
+/* 80353998 0034F5F8 38 06 00 03 */ addi r0, r6, 3
+/* 8035399C 0034F5FC 90 1B 00 60 */ stw r0, 0x60(r27)
+/* 803539A0 0034F600 4B FE 33 45 */ bl MD5Update
+/* 803539A4 0034F604 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 803539A8 0034F608 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 803539AC 0034F60C 38 A0 00 30 */ li r5, 0x30
+/* 803539B0 0034F610 4B FE 33 35 */ bl MD5Update
+/* 803539B4 0034F614 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 803539B8 0034F618 38 99 BF 8C */ addi r4, r25, -16500
+/* 803539BC 0034F61C 38 A0 00 30 */ li r5, 0x30
+/* 803539C0 0034F620 4B FE 33 25 */ bl MD5Update
+/* 803539C4 0034F624 38 61 00 40 */ addi r3, r1, 0x40
+/* 803539C8 0034F628 38 9F 05 A4 */ addi r4, r31, 0x5a4
+/* 803539CC 0034F62C 4B FE 34 05 */ bl MD5Final
+/* 803539D0 0034F630 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 803539D4 0034F634 38 8D 93 B0 */ addi r4, r13, lbl_8063E670-_SDA_BASE_
+/* 803539D8 0034F638 38 A0 00 04 */ li r5, 4
+/* 803539DC 0034F63C 4B FE 8C B1 */ bl SHA1Input
+/* 803539E0 0034F640 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 803539E4 0034F644 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 803539E8 0034F648 38 A0 00 30 */ li r5, 0x30
+/* 803539EC 0034F64C 4B FE 8C A1 */ bl SHA1Input
+/* 803539F0 0034F650 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 803539F4 0034F654 38 99 BF 8C */ addi r4, r25, -16500
+/* 803539F8 0034F658 38 A0 00 28 */ li r5, 0x28
+/* 803539FC 0034F65C 4B FE 8C 91 */ bl SHA1Input
+/* 80353A00 0034F660 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80353A04 0034F664 38 81 00 50 */ addi r4, r1, 0x50
+/* 80353A08 0034F668 4B FE 8A 95 */ bl SHA1Result
+/* 80353A0C 0034F66C 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353A10 0034F670 4B FE 32 95 */ bl MD5Init
+/* 80353A14 0034F674 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353A18 0034F678 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 80353A1C 0034F67C 38 A0 00 30 */ li r5, 0x30
+/* 80353A20 0034F680 4B FE 32 C5 */ bl MD5Update
+/* 80353A24 0034F684 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353A28 0034F688 38 9A BF C0 */ addi r4, r26, -16448
+/* 80353A2C 0034F68C 38 A0 00 30 */ li r5, 0x30
+/* 80353A30 0034F690 4B FE 32 B5 */ bl MD5Update
+/* 80353A34 0034F694 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353A38 0034F698 38 81 00 40 */ addi r4, r1, 0x40
+/* 80353A3C 0034F69C 38 A0 00 10 */ li r5, 0x10
+/* 80353A40 0034F6A0 4B FE 32 A5 */ bl MD5Update
+/* 80353A44 0034F6A4 38 61 00 40 */ addi r3, r1, 0x40
+/* 80353A48 0034F6A8 38 9F 05 A4 */ addi r4, r31, 0x5a4
+/* 80353A4C 0034F6AC 4B FE 33 85 */ bl MD5Final
+/* 80353A50 0034F6B0 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80353A54 0034F6B4 4B FE 89 DD */ bl SHA1Reset
+/* 80353A58 0034F6B8 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80353A5C 0034F6BC 38 9F 06 D4 */ addi r4, r31, 0x6d4
+/* 80353A60 0034F6C0 38 A0 00 30 */ li r5, 0x30
+/* 80353A64 0034F6C4 4B FE 8C 29 */ bl SHA1Input
+/* 80353A68 0034F6C8 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80353A6C 0034F6CC 38 9A BF C0 */ addi r4, r26, -16448
+/* 80353A70 0034F6D0 38 A0 00 28 */ li r5, 0x28
+/* 80353A74 0034F6D4 4B FE 8C 19 */ bl SHA1Input
+/* 80353A78 0034F6D8 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80353A7C 0034F6DC 38 81 00 50 */ addi r4, r1, 0x50
+/* 80353A80 0034F6E0 38 A0 00 14 */ li r5, 0x14
+/* 80353A84 0034F6E4 4B FE 8C 09 */ bl SHA1Input
+/* 80353A88 0034F6E8 38 7F 05 FC */ addi r3, r31, 0x5fc
+/* 80353A8C 0034F6EC 38 81 00 50 */ addi r4, r1, 0x50
+/* 80353A90 0034F6F0 4B FE 8A 0D */ bl SHA1Result
+/* 80353A94 0034F6F4 80 7B 00 58 */ lwz r3, 0x58(r27)
+/* 80353A98 0034F6F8 38 81 00 40 */ addi r4, r1, 0x40
+/* 80353A9C 0034F6FC 80 1B 00 60 */ lwz r0, 0x60(r27)
+/* 80353AA0 0034F700 38 A0 00 10 */ li r5, 0x10
+/* 80353AA4 0034F704 7C 63 02 14 */ add r3, r3, r0
+/* 80353AA8 0034F708 4B CB 05 59 */ bl memcpy
+/* 80353AAC 0034F70C 80 7B 00 60 */ lwz r3, 0x60(r27)
+/* 80353AB0 0034F710 38 81 00 50 */ addi r4, r1, 0x50
+/* 80353AB4 0034F714 80 1B 00 58 */ lwz r0, 0x58(r27)
+/* 80353AB8 0034F718 38 A0 00 14 */ li r5, 0x14
+/* 80353ABC 0034F71C 38 63 00 10 */ addi r3, r3, 0x10
+/* 80353AC0 0034F720 90 7B 00 60 */ stw r3, 0x60(r27)
+/* 80353AC4 0034F724 7C 60 1A 14 */ add r3, r0, r3
+/* 80353AC8 0034F728 4B CB 05 39 */ bl memcpy
+/* 80353ACC 0034F72C 80 9B 00 60 */ lwz r4, 0x60(r27)
+/* 80353AD0 0034F730 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353AD4 0034F734 38 04 00 14 */ addi r0, r4, 0x14
+/* 80353AD8 0034F738 90 1B 00 60 */ stw r0, 0x60(r27)
+/* 80353ADC 0034F73C 4B FE 31 C9 */ bl MD5Init
+/* 80353AE0 0034F740 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353AE4 0034F744 38 9F 03 20 */ addi r4, r31, 0x320
+/* 80353AE8 0034F748 38 A0 00 10 */ li r5, 0x10
+/* 80353AEC 0034F74C 4B FE 31 F9 */ bl MD5Update
+/* 80353AF0 0034F750 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353AF4 0034F754 38 99 BF 8C */ addi r4, r25, -16500
+/* 80353AF8 0034F758 38 A0 00 30 */ li r5, 0x30
+/* 80353AFC 0034F75C 4B FE 31 E9 */ bl MD5Update
+/* 80353B00 0034F760 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B04 0034F764 38 9F 03 10 */ addi r4, r31, 0x310
+/* 80353B08 0034F768 38 A0 00 08 */ li r5, 8
+/* 80353B0C 0034F76C 4B FE 31 D9 */ bl MD5Update
+/* 80353B10 0034F770 38 00 00 28 */ li r0, 0x28
+/* 80353B14 0034F774 9A E1 00 38 */ stb r23, 0x38(r1)
+/* 80353B18 0034F778 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B1C 0034F77C 38 81 00 38 */ addi r4, r1, 0x38
+/* 80353B20 0034F780 98 01 00 3A */ stb r0, 0x3a(r1)
+/* 80353B24 0034F784 38 00 00 24 */ li r0, 0x24
+/* 80353B28 0034F788 38 A0 00 07 */ li r5, 7
+/* 80353B2C 0034F78C 9A 41 00 39 */ stb r18, 0x39(r1)
+/* 80353B30 0034F790 9B 01 00 3B */ stb r24, 0x3b(r1)
+/* 80353B34 0034F794 9A 41 00 3C */ stb r18, 0x3c(r1)
+/* 80353B38 0034F798 9A 41 00 3D */ stb r18, 0x3d(r1)
+/* 80353B3C 0034F79C 98 01 00 3E */ stb r0, 0x3e(r1)
+/* 80353B40 0034F7A0 4B FE 31 A5 */ bl MD5Update
+/* 80353B44 0034F7A4 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B48 0034F7A8 38 81 00 40 */ addi r4, r1, 0x40
+/* 80353B4C 0034F7AC 38 A0 00 10 */ li r5, 0x10
+/* 80353B50 0034F7B0 4B FE 31 95 */ bl MD5Update
+/* 80353B54 0034F7B4 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B58 0034F7B8 38 81 00 50 */ addi r4, r1, 0x50
+/* 80353B5C 0034F7BC 38 A0 00 14 */ li r5, 0x14
+/* 80353B60 0034F7C0 4B FE 31 85 */ bl MD5Update
+/* 80353B64 0034F7C4 38 61 00 40 */ addi r3, r1, 0x40
+/* 80353B68 0034F7C8 38 9F 05 A4 */ addi r4, r31, 0x5a4
+/* 80353B6C 0034F7CC 4B FE 32 65 */ bl MD5Final
+/* 80353B70 0034F7D0 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B74 0034F7D4 4B FE 31 31 */ bl MD5Init
+/* 80353B78 0034F7D8 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B7C 0034F7DC 38 9F 03 20 */ addi r4, r31, 0x320
+/* 80353B80 0034F7E0 38 A0 00 10 */ li r5, 0x10
+/* 80353B84 0034F7E4 4B FE 31 61 */ bl MD5Update
+/* 80353B88 0034F7E8 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B8C 0034F7EC 38 9A BF C0 */ addi r4, r26, -16448
+/* 80353B90 0034F7F0 38 A0 00 30 */ li r5, 0x30
+/* 80353B94 0034F7F4 4B FE 31 51 */ bl MD5Update
+/* 80353B98 0034F7F8 38 7F 05 A4 */ addi r3, r31, 0x5a4
+/* 80353B9C 0034F7FC 38 81 00 40 */ addi r4, r1, 0x40
+/* 80353BA0 0034F800 38 A0 00 10 */ li r5, 0x10
+/* 80353BA4 0034F804 4B FE 31 41 */ bl MD5Update
+/* 80353BA8 0034F808 38 61 00 40 */ addi r3, r1, 0x40
+/* 80353BAC 0034F80C 38 9F 05 A4 */ addi r4, r31, 0x5a4
+/* 80353BB0 0034F810 4B FE 32 21 */ bl MD5Final
+/* 80353BB4 0034F814 80 7B 00 58 */ lwz r3, 0x58(r27)
+/* 80353BB8 0034F818 38 81 00 40 */ addi r4, r1, 0x40
+/* 80353BBC 0034F81C 80 1B 00 60 */ lwz r0, 0x60(r27)
+/* 80353BC0 0034F820 38 A0 00 10 */ li r5, 0x10
+/* 80353BC4 0034F824 7C 63 02 14 */ add r3, r3, r0
+/* 80353BC8 0034F828 4B CB 04 39 */ bl memcpy
+/* 80353BCC 0034F82C 80 DB 00 60 */ lwz r6, 0x60(r27)
+/* 80353BD0 0034F830 38 7F 03 10 */ addi r3, r31, 0x310
+/* 80353BD4 0034F834 38 80 00 00 */ li r4, 0
+/* 80353BD8 0034F838 38 A0 00 08 */ li r5, 8
+/* 80353BDC 0034F83C 38 06 00 10 */ addi r0, r6, 0x10
+/* 80353BE0 0034F840 90 1B 00 60 */ stw r0, 0x60(r27)
+/* 80353BE4 0034F844 4B CB 05 21 */ bl memset
+/* 80353BE8 0034F848 38 60 00 01 */ li r3, 1
+/* 80353BEC 0034F84C 4B FA 31 8D */ bl SOHtoNl
+/* 80353BF0 0034F850 90 61 00 0C */ stw r3, 0xc(r1)
+/* 80353BF4 0034F854 38 7F 03 14 */ addi r3, r31, 0x314
+/* 80353BF8 0034F858 38 81 00 0C */ addi r4, r1, 0xc
+/* 80353BFC 0034F85C 38 A0 00 04 */ li r5, 4
+/* 80353C00 0034F860 4B CB 04 01 */ bl memcpy
+/* 80353C04 0034F864 38 8F 00 05 */ addi r4, r15, 5
+/* 80353C08 0034F868 38 7F 03 A0 */ addi r3, r31, 0x3a0
+/* 80353C0C 0034F86C 7C 85 23 78 */ mr r5, r4
+/* 80353C10 0034F870 38 C0 00 38 */ li r6, 0x38
+/* 80353C14 0034F874 4B FE 86 91 */ bl RC4Encrypt
+/* 80353C18 0034F878 48 00 00 20 */ b lbl_80353C38
+lbl_80353C1C:
+/* 80353C1C 0034F87C 2C 00 00 14 */ cmpwi r0, 0x14
+/* 80353C20 0034F880 40 82 00 10 */ bne lbl_80353C30
+/* 80353C24 0034F884 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 80353C28 0034F888 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 80353C2C 0034F88C 48 00 00 0C */ b lbl_80353C38
+lbl_80353C30:
+/* 80353C30 0034F890 38 60 00 03 */ li r3, 3
+/* 80353C34 0034F894 48 00 00 20 */ b lbl_80353C54
+lbl_80353C38:
+/* 80353C38 0034F898 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 80353C3C 0034F89C 82 1C 00 10 */ lwz r16, 0x10(r28)
+/* 80353C40 0034F8A0 7C 10 00 00 */ cmpw r16, r0
+/* 80353C44 0034F8A4 41 80 EF B4 */ blt lbl_80352BF8
+/* 80353C48 0034F8A8 38 60 00 03 */ li r3, 3
+/* 80353C4C 0034F8AC 40 82 00 08 */ bne lbl_80353C54
+/* 80353C50 0034F8B0 38 60 00 01 */ li r3, 1
+lbl_80353C54:
+/* 80353C54 0034F8B4 39 61 00 B0 */ addi r11, r1, 0xb0
+/* 80353C58 0034F8B8 4B E7 34 E9 */ bl __restore_gpr
+/* 80353C5C 0034F8BC 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 80353C60 0034F8C0 7C 08 03 A6 */ mtlr r0
+/* 80353C64 0034F8C4 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 80353C68 0034F8C8 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpMain.s b/asm/SDK/DWC/gamespy/ghttpMain.s new file mode 100644 index 0000000..382e22b --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpMain.s @@ -0,0 +1,452 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghiHandleStatus
+ghiHandleStatus:
+/* 80353C6C 0034F8CC 3C 80 51 EC */ lis r4, 0x51EB851F@ha
+/* 80353C70 0034F8D0 80 A3 01 14 */ lwz r5, 0x114(r3)
+/* 80353C74 0034F8D4 38 04 85 1F */ addi r0, r4, 0x51EB851F@l
+/* 80353C78 0034F8D8 7C 00 28 96 */ mulhw r0, r0, r5
+/* 80353C7C 0034F8DC 7C 00 2E 70 */ srawi r0, r0, 5
+/* 80353C80 0034F8E0 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 80353C84 0034F8E4 7C 00 22 14 */ add r0, r0, r4
+/* 80353C88 0034F8E8 2C 00 00 03 */ cmpwi r0, 3
+/* 80353C8C 0034F8EC 4D 82 00 20 */ beqlr
+/* 80353C90 0034F8F0 40 80 00 14 */ bge lbl_80353CA4
+/* 80353C94 0034F8F4 2C 00 00 01 */ cmpwi r0, 1
+/* 80353C98 0034F8F8 4D 82 00 20 */ beqlr
+/* 80353C9C 0034F8FC 4C 80 00 20 */ bgelr
+/* 80353CA0 0034F900 4E 80 00 20 */ blr
+lbl_80353CA4:
+/* 80353CA4 0034F904 2C 00 00 05 */ cmpwi r0, 5
+/* 80353CA8 0034F908 41 82 00 78 */ beq lbl_80353D20
+/* 80353CAC 0034F90C 4C 80 00 20 */ bgelr
+/* 80353CB0 0034F910 48 00 00 10 */ b lbl_80353CC0
+/* 80353CB4 0034F914 4E 80 00 20 */ blr
+/* 80353CB8 0034F918 4E 80 00 20 */ blr
+/* 80353CBC 0034F91C 4E 80 00 20 */ blr
+lbl_80353CC0:
+/* 80353CC0 0034F920 2C 05 01 94 */ cmpwi r5, 0x194
+/* 80353CC4 0034F924 41 82 00 44 */ beq lbl_80353D08
+/* 80353CC8 0034F928 40 80 00 1C */ bge lbl_80353CE4
+/* 80353CCC 0034F92C 2C 05 01 92 */ cmpwi r5, 0x192
+/* 80353CD0 0034F930 41 82 00 44 */ beq lbl_80353D14
+/* 80353CD4 0034F934 40 80 00 28 */ bge lbl_80353CFC
+/* 80353CD8 0034F938 2C 05 01 91 */ cmpwi r5, 0x191
+/* 80353CDC 0034F93C 40 80 00 14 */ bge lbl_80353CF0
+/* 80353CE0 0034F940 48 00 00 34 */ b lbl_80353D14
+lbl_80353CE4:
+/* 80353CE4 0034F944 2C 05 01 9A */ cmpwi r5, 0x19a
+/* 80353CE8 0034F948 41 82 00 20 */ beq lbl_80353D08
+/* 80353CEC 0034F94C 48 00 00 28 */ b lbl_80353D14
+lbl_80353CF0:
+/* 80353CF0 0034F950 38 00 00 09 */ li r0, 9
+/* 80353CF4 0034F954 90 03 00 3C */ stw r0, 0x3c(r3)
+/* 80353CF8 0034F958 4E 80 00 20 */ blr
+lbl_80353CFC:
+/* 80353CFC 0034F95C 38 00 00 0A */ li r0, 0xa
+/* 80353D00 0034F960 90 03 00 3C */ stw r0, 0x3c(r3)
+/* 80353D04 0034F964 4E 80 00 20 */ blr
+lbl_80353D08:
+/* 80353D08 0034F968 38 00 00 0B */ li r0, 0xb
+/* 80353D0C 0034F96C 90 03 00 3C */ stw r0, 0x3c(r3)
+/* 80353D10 0034F970 4E 80 00 20 */ blr
+lbl_80353D14:
+/* 80353D14 0034F974 38 00 00 08 */ li r0, 8
+/* 80353D18 0034F978 90 03 00 3C */ stw r0, 0x3c(r3)
+/* 80353D1C 0034F97C 4E 80 00 20 */ blr
+lbl_80353D20:
+/* 80353D20 0034F980 38 00 00 0C */ li r0, 0xc
+/* 80353D24 0034F984 90 03 00 3C */ stw r0, 0x3c(r3)
+/* 80353D28 0034F988 4E 80 00 20 */ blr
+
+.global ghiProcessConnection
+ghiProcessConnection:
+/* 80353D2C 0034F98C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80353D30 0034F990 7C 08 02 A6 */ mflr r0
+/* 80353D34 0034F994 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80353D38 0034F998 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80353D3C 0034F99C 7C 7F 1B 78 */ mr r31, r3
+/* 80353D40 0034F9A0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80353D44 0034F9A4 80 03 01 50 */ lwz r0, 0x150(r3)
+/* 80353D48 0034F9A8 2C 00 00 00 */ cmpwi r0, 0
+/* 80353D4C 0034F9AC 41 82 00 0C */ beq lbl_80353D58
+/* 80353D50 0034F9B0 38 60 00 00 */ li r3, 0
+/* 80353D54 0034F9B4 48 00 01 5C */ b lbl_80353EB0
+lbl_80353D58:
+/* 80353D58 0034F9B8 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 80353D5C 0034F9BC 38 80 00 01 */ li r4, 1
+/* 80353D60 0034F9C0 90 83 01 50 */ stw r4, 0x150(r3)
+/* 80353D64 0034F9C4 2C 00 00 00 */ cmpwi r0, 0
+/* 80353D68 0034F9C8 40 82 00 08 */ bne lbl_80353D70
+/* 80353D6C 0034F9CC 48 00 1D 7D */ bl ghiDoSocketInit
+lbl_80353D70:
+/* 80353D70 0034F9D0 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353D74 0034F9D4 2C 00 00 01 */ cmpwi r0, 1
+/* 80353D78 0034F9D8 40 82 00 0C */ bne lbl_80353D84
+/* 80353D7C 0034F9DC 7F E3 FB 78 */ mr r3, r31
+/* 80353D80 0034F9E0 48 00 1E 25 */ bl ghiDoHostLookup
+lbl_80353D84:
+/* 80353D84 0034F9E4 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353D88 0034F9E8 2C 00 00 02 */ cmpwi r0, 2
+/* 80353D8C 0034F9EC 40 82 00 0C */ bne lbl_80353D98
+/* 80353D90 0034F9F0 7F E3 FB 78 */ mr r3, r31
+/* 80353D94 0034F9F4 48 00 1F 15 */ bl ghiDoLookupPending
+lbl_80353D98:
+/* 80353D98 0034F9F8 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353D9C 0034F9FC 2C 00 00 03 */ cmpwi r0, 3
+/* 80353DA0 0034FA00 40 82 00 0C */ bne lbl_80353DAC
+/* 80353DA4 0034FA04 7F E3 FB 78 */ mr r3, r31
+/* 80353DA8 0034FA08 48 00 1F A1 */ bl ghiDoConnecting
+lbl_80353DAC:
+/* 80353DAC 0034FA0C 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353DB0 0034FA10 2C 00 00 04 */ cmpwi r0, 4
+/* 80353DB4 0034FA14 40 82 00 0C */ bne lbl_80353DC0
+/* 80353DB8 0034FA18 7F E3 FB 78 */ mr r3, r31
+/* 80353DBC 0034FA1C 48 00 21 9D */ bl ghiDoSecuringSession
+lbl_80353DC0:
+/* 80353DC0 0034FA20 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353DC4 0034FA24 2C 00 00 05 */ cmpwi r0, 5
+/* 80353DC8 0034FA28 40 82 00 0C */ bne lbl_80353DD4
+/* 80353DCC 0034FA2C 7F E3 FB 78 */ mr r3, r31
+/* 80353DD0 0034FA30 48 00 22 C1 */ bl ghiDoSendingRequest
+lbl_80353DD4:
+/* 80353DD4 0034FA34 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353DD8 0034FA38 2C 00 00 06 */ cmpwi r0, 6
+/* 80353DDC 0034FA3C 40 82 00 0C */ bne lbl_80353DE8
+/* 80353DE0 0034FA40 7F E3 FB 78 */ mr r3, r31
+/* 80353DE4 0034FA44 48 00 25 81 */ bl ghiDoPosting
+lbl_80353DE8:
+/* 80353DE8 0034FA48 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353DEC 0034FA4C 2C 00 00 07 */ cmpwi r0, 7
+/* 80353DF0 0034FA50 40 82 00 0C */ bne lbl_80353DFC
+/* 80353DF4 0034FA54 7F E3 FB 78 */ mr r3, r31
+/* 80353DF8 0034FA58 48 00 26 65 */ bl ghiDoWaiting
+lbl_80353DFC:
+/* 80353DFC 0034FA5C 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353E00 0034FA60 2C 00 00 08 */ cmpwi r0, 8
+/* 80353E04 0034FA64 40 82 00 0C */ bne lbl_80353E10
+/* 80353E08 0034FA68 7F E3 FB 78 */ mr r3, r31
+/* 80353E0C 0034FA6C 48 00 28 21 */ bl ghiDoReceivingStatus
+lbl_80353E10:
+/* 80353E10 0034FA70 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353E14 0034FA74 2C 00 00 09 */ cmpwi r0, 9
+/* 80353E18 0034FA78 40 82 00 0C */ bne lbl_80353E24
+/* 80353E1C 0034FA7C 7F E3 FB 78 */ mr r3, r31
+/* 80353E20 0034FA80 48 00 2C E1 */ bl ghiDoReceivingHeaders
+lbl_80353E24:
+/* 80353E24 0034FA84 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80353E28 0034FA88 2C 00 00 0A */ cmpwi r0, 0xa
+/* 80353E2C 0034FA8C 40 82 00 0C */ bne lbl_80353E38
+/* 80353E30 0034FA90 7F E3 FB 78 */ mr r3, r31
+/* 80353E34 0034FA94 48 00 32 41 */ bl ghiDoReceivingFile
+lbl_80353E38:
+/* 80353E38 0034FA98 80 1F 01 2C */ lwz r0, 0x12c(r31)
+/* 80353E3C 0034FA9C 2C 00 00 00 */ cmpwi r0, 0
+/* 80353E40 0034FAA0 41 82 00 0C */ beq lbl_80353E4C
+/* 80353E44 0034FAA4 7F E3 FB 78 */ mr r3, r31
+/* 80353E48 0034FAA8 4B FF DE 4D */ bl ghiRedirectConnection
+lbl_80353E4C:
+/* 80353E4C 0034FAAC 80 1F 00 3C */ lwz r0, 0x3c(r31)
+/* 80353E50 0034FAB0 83 DF 01 20 */ lwz r30, 0x120(r31)
+/* 80353E54 0034FAB4 2C 00 00 12 */ cmpwi r0, 0x12
+/* 80353E58 0034FAB8 40 82 00 24 */ bne lbl_80353E7C
+/* 80353E5C 0034FABC 2C 1E 00 00 */ cmpwi r30, 0
+/* 80353E60 0034FAC0 40 82 00 1C */ bne lbl_80353E7C
+/* 80353E64 0034FAC4 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80353E68 0034FAC8 4B FE 49 E5 */ bl CanReceiveOnSocket
+/* 80353E6C 0034FACC 2C 03 00 00 */ cmpwi r3, 0
+/* 80353E70 0034FAD0 40 82 00 0C */ bne lbl_80353E7C
+/* 80353E74 0034FAD4 38 00 00 01 */ li r0, 1
+/* 80353E78 0034FAD8 90 1F 01 20 */ stw r0, 0x120(r31)
+lbl_80353E7C:
+/* 80353E7C 0034FADC 80 1F 01 20 */ lwz r0, 0x120(r31)
+/* 80353E80 0034FAE0 2C 00 00 00 */ cmpwi r0, 0
+/* 80353E84 0034FAE4 41 82 00 20 */ beq lbl_80353EA4
+/* 80353E88 0034FAE8 7F E3 FB 78 */ mr r3, r31
+/* 80353E8C 0034FAEC 4B FF FD E1 */ bl ghiHandleStatus
+/* 80353E90 0034FAF0 7F E3 FB 78 */ mr r3, r31
+/* 80353E94 0034FAF4 4B FF D3 31 */ bl ghiCallCompletedCallback
+/* 80353E98 0034FAF8 7F E3 FB 78 */ mr r3, r31
+/* 80353E9C 0034FAFC 4B FF DB 89 */ bl ghiFreeConnection
+/* 80353EA0 0034FB00 48 00 00 0C */ b lbl_80353EAC
+lbl_80353EA4:
+/* 80353EA4 0034FB04 38 00 00 00 */ li r0, 0
+/* 80353EA8 0034FB08 90 1F 01 50 */ stw r0, 0x150(r31)
+lbl_80353EAC:
+/* 80353EAC 0034FB0C 7F C3 F3 78 */ mr r3, r30
+lbl_80353EB0:
+/* 80353EB0 0034FB10 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80353EB4 0034FB14 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80353EB8 0034FB18 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80353EBC 0034FB1C 7C 08 03 A6 */ mtlr r0
+/* 80353EC0 0034FB20 38 21 00 10 */ addi r1, r1, 0x10
+/* 80353EC4 0034FB24 4E 80 00 20 */ blr
+
+.global ghttpStartup
+ghttpStartup:
+/* 80353EC8 0034FB28 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80353ECC 0034FB2C 7C 08 02 A6 */ mflr r0
+/* 80353ED0 0034FB30 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80353ED4 0034FB34 4B FF D4 19 */ bl ghiLock
+/* 80353ED8 0034FB38 80 6D B0 D8 */ lwz r3, lbl_80640398-_SDA_BASE_(r13)
+/* 80353EDC 0034FB3C 38 03 00 01 */ addi r0, r3, 1
+/* 80353EE0 0034FB40 2C 00 00 01 */ cmpwi r0, 1
+/* 80353EE4 0034FB44 90 0D B0 D8 */ stw r0, lbl_80640398-_SDA_BASE_(r13)
+/* 80353EE8 0034FB48 40 82 00 1C */ bne lbl_80353F04
+/* 80353EEC 0034FB4C 4B FF D3 F9 */ bl ghiCreateLock
+/* 80353EF0 0034FB50 38 60 00 7D */ li r3, 0x7d
+/* 80353EF4 0034FB54 38 00 00 FA */ li r0, 0xfa
+/* 80353EF8 0034FB58 90 6D 93 90 */ stw r3, lbl_8063E650-_SDA_BASE_(r13)
+/* 80353EFC 0034FB5C 90 0D 93 94 */ stw r0, lbl_8063E654-_SDA_BASE_(r13)
+/* 80353F00 0034FB60 48 00 00 08 */ b lbl_80353F08
+lbl_80353F04:
+/* 80353F04 0034FB64 4B FF D3 ED */ bl ghiUnlock
+lbl_80353F08:
+/* 80353F08 0034FB68 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80353F0C 0034FB6C 7C 08 03 A6 */ mtlr r0
+/* 80353F10 0034FB70 38 21 00 10 */ addi r1, r1, 0x10
+/* 80353F14 0034FB74 4E 80 00 20 */ blr
+
+.global ghttpCleanup
+ghttpCleanup:
+/* 80353F18 0034FB78 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80353F1C 0034FB7C 7C 08 02 A6 */ mflr r0
+/* 80353F20 0034FB80 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80353F24 0034FB84 4B FF D3 C9 */ bl ghiLock
+/* 80353F28 0034FB88 80 0D B0 D8 */ lwz r0, lbl_80640398-_SDA_BASE_(r13)
+/* 80353F2C 0034FB8C 34 00 FF FF */ addic. r0, r0, -1
+/* 80353F30 0034FB90 90 0D B0 D8 */ stw r0, lbl_80640398-_SDA_BASE_(r13)
+/* 80353F34 0034FB94 40 82 00 2C */ bne lbl_80353F60
+/* 80353F38 0034FB98 4B FF DE A1 */ bl ghiCleanupConnections
+/* 80353F3C 0034FB9C 80 6D B0 C4 */ lwz r3, lbl_80640384-_SDA_BASE_(r13)
+/* 80353F40 0034FBA0 2C 03 00 00 */ cmpwi r3, 0
+/* 80353F44 0034FBA4 41 82 00 10 */ beq lbl_80353F54
+/* 80353F48 0034FBA8 4B FE 53 F1 */ bl gsifree
+/* 80353F4C 0034FBAC 38 00 00 00 */ li r0, 0
+/* 80353F50 0034FBB0 90 0D B0 C4 */ stw r0, lbl_80640384-_SDA_BASE_(r13)
+lbl_80353F54:
+/* 80353F54 0034FBB4 4B FF D3 9D */ bl ghiUnlock
+/* 80353F58 0034FBB8 4B FF D3 91 */ bl ghiFreeLock
+/* 80353F5C 0034FBBC 48 00 00 08 */ b lbl_80353F64
+lbl_80353F60:
+/* 80353F60 0034FBC0 4B FF D3 91 */ bl ghiUnlock
+lbl_80353F64:
+/* 80353F64 0034FBC4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80353F68 0034FBC8 7C 08 03 A6 */ mtlr r0
+/* 80353F6C 0034FBCC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80353F70 0034FBD0 4E 80 00 20 */ blr
+
+.global func_80353F74
+func_80353F74:
+/* 80353F74 0034FBD4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80353F78 0034FBD8 7C 08 02 A6 */ mflr r0
+/* 80353F7C 0034FBDC 7C 89 23 78 */ mr r9, r4
+/* 80353F80 0034FBE0 38 80 00 00 */ li r4, 0
+/* 80353F84 0034FBE4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80353F88 0034FBE8 38 E0 00 00 */ li r7, 0
+/* 80353F8C 0034FBEC 39 00 00 00 */ li r8, 0
+/* 80353F90 0034FBF0 39 40 00 00 */ li r10, 0
+/* 80353F94 0034FBF4 90 A1 00 08 */ stw r5, 8(r1)
+/* 80353F98 0034FBF8 38 A0 00 00 */ li r5, 0
+/* 80353F9C 0034FBFC 90 C1 00 0C */ stw r6, 0xc(r1)
+/* 80353FA0 0034FC00 38 C0 00 00 */ li r6, 0
+/* 80353FA4 0034FC04 48 00 00 15 */ bl ghttpGetExA
+/* 80353FA8 0034FC08 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80353FAC 0034FC0C 7C 08 03 A6 */ mtlr r0
+/* 80353FB0 0034FC10 38 21 00 10 */ addi r1, r1, 0x10
+/* 80353FB4 0034FC14 4E 80 00 20 */ blr
+
+.global ghttpGetExA
+ghttpGetExA:
+/* 80353FB8 0034FC18 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80353FBC 0034FC1C 7C 08 02 A6 */ mflr r0
+/* 80353FC0 0034FC20 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80353FC4 0034FC24 39 61 00 40 */ addi r11, r1, 0x40
+/* 80353FC8 0034FC28 4B E7 31 49 */ bl _savegpr_21
+/* 80353FCC 0034FC2C 2C 03 00 00 */ cmpwi r3, 0
+/* 80353FD0 0034FC30 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 80353FD4 0034FC34 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 80353FD8 0034FC38 7C 76 1B 78 */ mr r22, r3
+/* 80353FDC 0034FC3C 7C 97 23 78 */ mr r23, r4
+/* 80353FE0 0034FC40 7C B8 2B 78 */ mr r24, r5
+/* 80353FE4 0034FC44 7C D9 33 78 */ mr r25, r6
+/* 80353FE8 0034FC48 7C FA 3B 78 */ mr r26, r7
+/* 80353FEC 0034FC4C 7D 1B 43 78 */ mr r27, r8
+/* 80353FF0 0034FC50 7D 3C 4B 78 */ mr r28, r9
+/* 80353FF4 0034FC54 7D 5D 53 78 */ mr r29, r10
+/* 80353FF8 0034FC58 41 82 00 10 */ beq lbl_80354008
+/* 80353FFC 0034FC5C 88 03 00 00 */ lbz r0, 0(r3)
+/* 80354000 0034FC60 7C 00 07 75 */ extsb. r0, r0
+/* 80354004 0034FC64 40 82 00 0C */ bne lbl_80354010
+lbl_80354008:
+/* 80354008 0034FC68 38 60 FF FF */ li r3, -1
+/* 8035400C 0034FC6C 48 00 01 AC */ b lbl_803541B8
+lbl_80354010:
+/* 80354010 0034FC70 2C 86 00 00 */ cmpwi cr1, r6, 0
+/* 80354014 0034FC74 40 84 00 0C */ bge cr1, lbl_80354020
+/* 80354018 0034FC78 38 60 FF FF */ li r3, -1
+/* 8035401C 0034FC7C 48 00 01 9C */ b lbl_803541B8
+lbl_80354020:
+/* 80354020 0034FC80 2C 05 00 00 */ cmpwi r5, 0
+/* 80354024 0034FC84 41 82 00 10 */ beq lbl_80354034
+/* 80354028 0034FC88 40 86 00 0C */ bne cr1, lbl_80354034
+/* 8035402C 0034FC8C 38 60 FF FF */ li r3, -1
+/* 80354030 0034FC90 48 00 01 88 */ b lbl_803541B8
+lbl_80354034:
+/* 80354034 0034FC94 80 0D B0 D8 */ lwz r0, lbl_80640398-_SDA_BASE_(r13)
+/* 80354038 0034FC98 2C 00 00 00 */ cmpwi r0, 0
+/* 8035403C 0034FC9C 40 82 00 38 */ bne lbl_80354074
+/* 80354040 0034FCA0 4B FF D2 AD */ bl ghiLock
+/* 80354044 0034FCA4 80 6D B0 D8 */ lwz r3, lbl_80640398-_SDA_BASE_(r13)
+/* 80354048 0034FCA8 38 03 00 01 */ addi r0, r3, 1
+/* 8035404C 0034FCAC 2C 00 00 01 */ cmpwi r0, 1
+/* 80354050 0034FCB0 90 0D B0 D8 */ stw r0, lbl_80640398-_SDA_BASE_(r13)
+/* 80354054 0034FCB4 40 82 00 1C */ bne lbl_80354070
+/* 80354058 0034FCB8 4B FF D2 8D */ bl ghiCreateLock
+/* 8035405C 0034FCBC 38 60 00 7D */ li r3, 0x7d
+/* 80354060 0034FCC0 38 00 00 FA */ li r0, 0xfa
+/* 80354064 0034FCC4 90 6D 93 90 */ stw r3, lbl_8063E650-_SDA_BASE_(r13)
+/* 80354068 0034FCC8 90 0D 93 94 */ stw r0, lbl_8063E654-_SDA_BASE_(r13)
+/* 8035406C 0034FCCC 48 00 00 08 */ b lbl_80354074
+lbl_80354070:
+/* 80354070 0034FCD0 4B FF D2 81 */ bl ghiUnlock
+lbl_80354074:
+/* 80354074 0034FCD4 4B FF D7 ED */ bl ghiNewConnection
+/* 80354078 0034FCD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035407C 0034FCDC 7C 75 1B 78 */ mr r21, r3
+/* 80354080 0034FCE0 40 82 00 0C */ bne lbl_8035408C
+/* 80354084 0034FCE4 38 60 FF FF */ li r3, -1
+/* 80354088 0034FCE8 48 00 01 30 */ b lbl_803541B8
+lbl_8035408C:
+/* 8035408C 0034FCEC 38 00 00 00 */ li r0, 0
+/* 80354090 0034FCF0 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80354094 0034FCF4 7E C3 B3 78 */ mr r3, r22
+/* 80354098 0034FCF8 4B FE 4E 6D */ bl goastrdup
+/* 8035409C 0034FCFC 2C 03 00 00 */ cmpwi r3, 0
+/* 803540A0 0034FD00 90 75 00 14 */ stw r3, 0x14(r21)
+/* 803540A4 0034FD04 40 82 00 14 */ bne lbl_803540B8
+/* 803540A8 0034FD08 7E A3 AB 78 */ mr r3, r21
+/* 803540AC 0034FD0C 4B FF D9 79 */ bl ghiFreeConnection
+/* 803540B0 0034FD10 38 60 FF FF */ li r3, -1
+/* 803540B4 0034FD14 48 00 01 04 */ b lbl_803541B8
+lbl_803540B8:
+/* 803540B8 0034FD18 2C 17 00 00 */ cmpwi r23, 0
+/* 803540BC 0034FD1C 41 82 00 34 */ beq lbl_803540F0
+/* 803540C0 0034FD20 88 17 00 00 */ lbz r0, 0(r23)
+/* 803540C4 0034FD24 7C 00 07 75 */ extsb. r0, r0
+/* 803540C8 0034FD28 41 82 00 28 */ beq lbl_803540F0
+/* 803540CC 0034FD2C 7E E3 BB 78 */ mr r3, r23
+/* 803540D0 0034FD30 4B FE 4E 35 */ bl goastrdup
+/* 803540D4 0034FD34 2C 03 00 00 */ cmpwi r3, 0
+/* 803540D8 0034FD38 90 75 00 2C */ stw r3, 0x2c(r21)
+/* 803540DC 0034FD3C 40 82 00 14 */ bne lbl_803540F0
+/* 803540E0 0034FD40 7E A3 AB 78 */ mr r3, r21
+/* 803540E4 0034FD44 4B FF D9 41 */ bl ghiFreeConnection
+/* 803540E8 0034FD48 38 60 FF FF */ li r3, -1
+/* 803540EC 0034FD4C 48 00 00 CC */ b lbl_803541B8
+lbl_803540F0:
+/* 803540F0 0034FD50 93 55 01 60 */ stw r26, 0x160(r21)
+/* 803540F4 0034FD54 7C 18 00 D0 */ neg r0, r24
+/* 803540F8 0034FD58 7C 00 C3 78 */ or r0, r0, r24
+/* 803540FC 0034FD5C 93 95 00 34 */ stw r28, 0x34(r21)
+/* 80354100 0034FD60 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 80354104 0034FD64 93 B5 00 40 */ stw r29, 0x40(r21)
+/* 80354108 0034FD68 93 D5 00 44 */ stw r30, 0x44(r21)
+/* 8035410C 0034FD6C 93 F5 00 48 */ stw r31, 0x48(r21)
+/* 80354110 0034FD70 93 75 01 58 */ stw r27, 0x158(r21)
+/* 80354114 0034FD74 90 15 01 08 */ stw r0, 0x108(r21)
+/* 80354118 0034FD78 41 82 00 1C */ beq lbl_80354134
+/* 8035411C 0034FD7C 7E A3 AB 78 */ mr r3, r21
+/* 80354120 0034FD80 7F 05 C3 78 */ mr r5, r24
+/* 80354124 0034FD84 7F 26 CB 78 */ mr r6, r25
+/* 80354128 0034FD88 38 95 00 E4 */ addi r4, r21, 0xe4
+/* 8035412C 0034FD8C 4B FF C8 45 */ bl ghiInitFixedBuffer
+/* 80354130 0034FD90 48 00 00 18 */ b lbl_80354148
+lbl_80354134:
+/* 80354134 0034FD94 7E A3 AB 78 */ mr r3, r21
+/* 80354138 0034FD98 38 95 00 E4 */ addi r4, r21, 0xe4
+/* 8035413C 0034FD9C 38 A0 08 00 */ li r5, 0x800
+/* 80354140 0034FDA0 38 C0 08 00 */ li r6, 0x800
+/* 80354144 0034FDA4 4B FF C7 31 */ bl ghiInitBuffer
+lbl_80354148:
+/* 80354148 0034FDA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035414C 0034FDAC 40 82 00 14 */ bne lbl_80354160
+/* 80354150 0034FDB0 7E A3 AB 78 */ mr r3, r21
+/* 80354154 0034FDB4 4B FF D8 D1 */ bl ghiFreeConnection
+/* 80354158 0034FDB8 38 60 FF FF */ li r3, -1
+/* 8035415C 0034FDBC 48 00 00 5C */ b lbl_803541B8
+lbl_80354160:
+/* 80354160 0034FDC0 2C 1A 00 00 */ cmpwi r26, 0
+/* 80354164 0034FDC4 41 82 00 24 */ beq lbl_80354188
+/* 80354168 0034FDC8 7E A3 AB 78 */ mr r3, r21
+/* 8035416C 0034FDCC 48 00 06 71 */ bl ghiPostInitState
+/* 80354170 0034FDD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80354174 0034FDD4 40 82 00 14 */ bne lbl_80354188
+/* 80354178 0034FDD8 7E A3 AB 78 */ mr r3, r21
+/* 8035417C 0034FDDC 4B FF D8 A9 */ bl ghiFreeConnection
+/* 80354180 0034FDE0 38 60 FF FF */ li r3, -1
+/* 80354184 0034FDE4 48 00 00 34 */ b lbl_803541B8
+lbl_80354188:
+/* 80354188 0034FDE8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035418C 0034FDEC 41 82 00 28 */ beq lbl_803541B4
+/* 80354190 0034FDF0 48 00 00 0C */ b lbl_8035419C
+lbl_80354194:
+/* 80354194 0034FDF4 38 60 00 0A */ li r3, 0xa
+/* 80354198 0034FDF8 4B FE 4E 8D */ bl msleep
+lbl_8035419C:
+/* 8035419C 0034FDFC 7E A3 AB 78 */ mr r3, r21
+/* 803541A0 0034FE00 4B FF FB 8D */ bl ghiProcessConnection
+/* 803541A4 0034FE04 2C 03 00 00 */ cmpwi r3, 0
+/* 803541A8 0034FE08 41 82 FF EC */ beq lbl_80354194
+/* 803541AC 0034FE0C 38 60 00 00 */ li r3, 0
+/* 803541B0 0034FE10 48 00 00 08 */ b lbl_803541B8
+lbl_803541B4:
+/* 803541B4 0034FE14 80 75 00 04 */ lwz r3, 4(r21)
+lbl_803541B8:
+/* 803541B8 0034FE18 39 61 00 40 */ addi r11, r1, 0x40
+/* 803541BC 0034FE1C 4B E7 2F A1 */ bl _restgpr_21
+/* 803541C0 0034FE20 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 803541C4 0034FE24 7C 08 03 A6 */ mtlr r0
+/* 803541C8 0034FE28 38 21 00 40 */ addi r1, r1, 0x40
+/* 803541CC 0034FE2C 4E 80 00 20 */ blr
+
+.global ghttpThink
+ghttpThink:
+/* 803541D0 0034FE30 3C 60 80 35 */ lis r3, ghiProcessConnection@ha
+/* 803541D4 0034FE34 38 63 3D 2C */ addi r3, r3, ghiProcessConnection@l
+/* 803541D8 0034FE38 4B FF DA 30 */ b ghiEnumConnections
+
+.global ghttpCancelRequest
+ghttpCancelRequest:
+/* 803541DC 0034FE3C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803541E0 0034FE40 7C 08 02 A6 */ mflr r0
+/* 803541E4 0034FE44 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803541E8 0034FE48 4B FF D9 B1 */ bl ghiRequestToConnection
+/* 803541EC 0034FE4C 2C 03 00 00 */ cmpwi r3, 0
+/* 803541F0 0034FE50 41 82 00 08 */ beq lbl_803541F8
+/* 803541F4 0034FE54 4B FF D8 31 */ bl ghiFreeConnection
+lbl_803541F8:
+/* 803541F8 0034FE58 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803541FC 0034FE5C 7C 08 03 A6 */ mtlr r0
+/* 80354200 0034FE60 38 21 00 10 */ addi r1, r1, 0x10
+/* 80354204 0034FE64 4E 80 00 20 */ blr
+
+.global ghttpSetMaxRecvTime
+ghttpSetMaxRecvTime:
+/* 80354208 0034FE68 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035420C 0034FE6C 7C 08 02 A6 */ mflr r0
+/* 80354210 0034FE70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80354214 0034FE74 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80354218 0034FE78 7C 9F 23 78 */ mr r31, r4
+/* 8035421C 0034FE7C 4B FF D9 7D */ bl ghiRequestToConnection
+/* 80354220 0034FE80 2C 03 00 00 */ cmpwi r3, 0
+/* 80354224 0034FE84 41 82 00 08 */ beq lbl_8035422C
+/* 80354228 0034FE88 93 E3 01 84 */ stw r31, 0x184(r3)
+lbl_8035422C:
+/* 8035422C 0034FE8C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80354230 0034FE90 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80354234 0034FE94 7C 08 03 A6 */ mtlr r0
+/* 80354238 0034FE98 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035423C 0034FE9C 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpPost.s b/asm/SDK/DWC/gamespy/ghttpPost.s new file mode 100644 index 0000000..2193e99 --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpPost.s @@ -0,0 +1,1666 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghiIsPostAutoFree
+ghiIsPostAutoFree:
+/* 80354240 0034FEA0 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 80354244 0034FEA4 4E 80 00 20 */ blr
+
+.global ghiFreePost
+ghiFreePost:
+/* 80354248 0034FEA8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035424C 0034FEAC 7C 08 02 A6 */ mflr r0
+/* 80354250 0034FEB0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80354254 0034FEB4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80354258 0034FEB8 7C 7F 1B 78 */ mr r31, r3
+/* 8035425C 0034FEBC 80 63 00 00 */ lwz r3, 0(r3)
+/* 80354260 0034FEC0 4B FE 1B F5 */ bl ArrayFree
+/* 80354264 0034FEC4 7F E3 FB 78 */ mr r3, r31
+/* 80354268 0034FEC8 4B FE 50 D1 */ bl gsifree
+/* 8035426C 0034FECC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80354270 0034FED0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80354274 0034FED4 7C 08 03 A6 */ mtlr r0
+/* 80354278 0034FED8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035427C 0034FEDC 4E 80 00 20 */ blr
+
+.global ghiPostGetContentType
+ghiPostGetContentType:
+/* 80354280 0034FEE0 80 63 01 60 */ lwz r3, 0x160(r3)
+/* 80354284 0034FEE4 3C 80 80 45 */ lis r4, lbl_8044BFF8@ha
+/* 80354288 0034FEE8 38 84 BF F8 */ addi r4, r4, lbl_8044BFF8@l
+/* 8035428C 0034FEEC 2C 03 00 00 */ cmpwi r3, 0
+/* 80354290 0034FEF0 40 82 00 0C */ bne lbl_8035429C
+/* 80354294 0034FEF4 38 6D 93 B8 */ addi r3, r13, lbl_8063E678-_SDA_BASE_
+/* 80354298 0034FEF8 4E 80 00 20 */ blr
+lbl_8035429C:
+/* 8035429C 0034FEFC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 803542A0 0034FF00 2C 00 00 00 */ cmpwi r0, 0
+/* 803542A4 0034FF04 41 82 00 0C */ beq lbl_803542B0
+/* 803542A8 0034FF08 38 64 00 44 */ addi r3, r4, 0x44
+/* 803542AC 0034FF0C 4E 80 00 20 */ blr
+lbl_803542B0:
+/* 803542B0 0034FF10 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803542B4 0034FF14 2C 00 00 00 */ cmpwi r0, 0
+/* 803542B8 0034FF18 41 82 00 0C */ beq lbl_803542C4
+/* 803542BC 0034FF1C 38 64 00 58 */ addi r3, r4, 0x58
+/* 803542C0 0034FF20 4E 80 00 20 */ blr
+lbl_803542C4:
+/* 803542C4 0034FF24 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 803542C8 0034FF28 38 64 00 A8 */ addi r3, r4, 0xa8
+/* 803542CC 0034FF2C 2C 00 00 00 */ cmpwi r0, 0
+/* 803542D0 0034FF30 4D 82 00 20 */ beqlr
+/* 803542D4 0034FF34 38 64 00 9C */ addi r3, r4, 0x9c
+/* 803542D8 0034FF38 4E 80 00 20 */ blr
+
+.global ghiPostGetNoFilesContentLength
+ghiPostGetNoFilesContentLength:
+/* 803542DC 0034FF3C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803542E0 0034FF40 7C 08 02 A6 */ mflr r0
+/* 803542E4 0034FF44 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803542E8 0034FF48 39 61 00 20 */ addi r11, r1, 0x20
+/* 803542EC 0034FF4C 4B E7 2E 3D */ bl _savegpr_27
+/* 803542F0 0034FF50 83 A3 01 60 */ lwz r29, 0x160(r3)
+/* 803542F4 0034FF54 3B 60 00 00 */ li r27, 0
+/* 803542F8 0034FF58 80 7D 00 00 */ lwz r3, 0(r29)
+/* 803542FC 0034FF5C 4B FE 1B ED */ bl ArrayLength
+/* 80354300 0034FF60 2C 03 00 00 */ cmpwi r3, 0
+/* 80354304 0034FF64 7C 7E 1B 78 */ mr r30, r3
+/* 80354308 0034FF68 40 82 00 0C */ bne lbl_80354314
+/* 8035430C 0034FF6C 38 60 00 00 */ li r3, 0
+/* 80354310 0034FF70 48 00 00 78 */ b lbl_80354388
+lbl_80354314:
+/* 80354314 0034FF74 3B 80 00 00 */ li r28, 0
+/* 80354318 0034FF78 48 00 00 60 */ b lbl_80354378
+lbl_8035431C:
+/* 8035431C 0034FF7C 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80354320 0034FF80 7F 84 E3 78 */ mr r4, r28
+/* 80354324 0034FF84 4B FE 1B CD */ bl ArrayNth
+/* 80354328 0034FF88 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035432C 0034FF8C 7C 7F 1B 78 */ mr r31, r3
+/* 80354330 0034FF90 2C 00 00 00 */ cmpwi r0, 0
+/* 80354334 0034FF94 40 82 00 2C */ bne lbl_80354360
+/* 80354338 0034FF98 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035433C 0034FF9C 4B E7 28 29 */ bl strlen
+/* 80354340 0034FFA0 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 80354344 0034FFA4 7F 7B 1A 14 */ add r27, r27, r3
+/* 80354348 0034FFA8 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8035434C 0034FFAC 54 00 08 3C */ slwi r0, r0, 1
+/* 80354350 0034FFB0 7F 7B 1A 14 */ add r27, r27, r3
+/* 80354354 0034FFB4 7F 7B 02 14 */ add r27, r27, r0
+/* 80354358 0034FFB8 3B 7B 00 01 */ addi r27, r27, 1
+/* 8035435C 0034FFBC 48 00 00 18 */ b lbl_80354374
+lbl_80354360:
+/* 80354360 0034FFC0 2C 00 00 03 */ cmpwi r0, 3
+/* 80354364 0034FFC4 40 82 00 10 */ bne lbl_80354374
+/* 80354368 0034FFC8 80 63 00 08 */ lwz r3, 8(r3)
+/* 8035436C 0034FFCC 4B FE 8A 79 */ bl gsXmlWriterGetDataLength
+/* 80354370 0034FFD0 7F 7B 1A 14 */ add r27, r27, r3
+lbl_80354374:
+/* 80354374 0034FFD4 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80354378:
+/* 80354378 0034FFD8 7C 1C F0 00 */ cmpw r28, r30
+/* 8035437C 0034FFDC 41 80 FF A0 */ blt lbl_8035431C
+/* 80354380 0034FFE0 7C 7B F2 14 */ add r3, r27, r30
+/* 80354384 0034FFE4 38 63 FF FF */ addi r3, r3, -1
+lbl_80354388:
+/* 80354388 0034FFE8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035438C 0034FFEC 4B E7 2D E9 */ bl _restgpr_27
+/* 80354390 0034FFF0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80354394 0034FFF4 7C 08 03 A6 */ mtlr r0
+/* 80354398 0034FFF8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035439C 0034FFFC 4E 80 00 20 */ blr
+
+.global ghiPostGetHasFilesContentLength
+ghiPostGetHasFilesContentLength:
+/* 803543A0 00350000 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803543A4 00350004 7C 08 02 A6 */ mflr r0
+/* 803543A8 00350008 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803543AC 0035000C 39 61 00 40 */ addi r11, r1, 0x40
+/* 803543B0 00350010 4B E7 2D 61 */ bl _savegpr_21
+/* 803543B4 00350014 80 0D B0 E0 */ lwz r0, lbl_806403A0-_SDA_BASE_(r13)
+/* 803543B8 00350018 7C 79 1B 78 */ mr r25, r3
+/* 803543BC 0035001C 83 83 01 60 */ lwz r28, 0x160(r3)
+/* 803543C0 00350020 3B 40 00 00 */ li r26, 0
+/* 803543C4 00350024 2C 00 00 00 */ cmpwi r0, 0
+/* 803543C8 00350028 40 82 00 60 */ bne lbl_80354428
+/* 803543CC 0035002C 80 1C 00 14 */ lwz r0, 0x14(r28)
+/* 803543D0 00350030 2C 00 00 00 */ cmpwi r0, 0
+/* 803543D4 00350034 41 82 00 24 */ beq lbl_803543F8
+/* 803543D8 00350038 38 60 00 0C */ li r3, 0xc
+/* 803543DC 0035003C 38 00 00 00 */ li r0, 0
+/* 803543E0 00350040 90 6D B0 E0 */ stw r3, lbl_806403A0-_SDA_BASE_(r13)
+/* 803543E4 00350044 90 6D B0 E4 */ stw r3, lbl_806403A4-_SDA_BASE_(r13)
+/* 803543E8 00350048 90 6D B0 E8 */ stw r3, lbl_806403A8-_SDA_BASE_(r13)
+/* 803543EC 0035004C 90 6D B0 F0 */ stw r3, lbl_806403B0-_SDA_BASE_(r13)
+/* 803543F0 00350050 90 0D B0 EC */ stw r0, lbl_806403AC-_SDA_BASE_(r13)
+/* 803543F4 00350054 48 00 00 34 */ b lbl_80354428
+lbl_803543F8:
+/* 803543F8 00350058 3C 60 80 45 */ lis r3, lbl_8044C0C4@ha
+/* 803543FC 0035005C 38 63 C0 C4 */ addi r3, r3, lbl_8044C0C4@l
+/* 80354400 00350060 4B E7 27 65 */ bl strlen
+/* 80354404 00350064 38 C3 00 2F */ addi r6, r3, 0x2f
+/* 80354408 00350068 38 A3 00 4C */ addi r5, r3, 0x4c
+/* 8035440C 0035006C 38 03 00 04 */ addi r0, r3, 4
+/* 80354410 00350070 38 80 00 00 */ li r4, 0
+/* 80354414 00350074 90 6D B0 E0 */ stw r3, lbl_806403A0-_SDA_BASE_(r13)
+/* 80354418 00350078 90 CD B0 E4 */ stw r6, lbl_806403A4-_SDA_BASE_(r13)
+/* 8035441C 0035007C 90 AD B0 E8 */ stw r5, lbl_806403A8-_SDA_BASE_(r13)
+/* 80354420 00350080 90 8D B0 F0 */ stw r4, lbl_806403B0-_SDA_BASE_(r13)
+/* 80354424 00350084 90 0D B0 EC */ stw r0, lbl_806403AC-_SDA_BASE_(r13)
+lbl_80354428:
+/* 80354428 00350088 80 7C 00 00 */ lwz r3, 0(r28)
+/* 8035442C 0035008C 4B FE 1A BD */ bl ArrayLength
+/* 80354430 00350090 7C 7E 1B 78 */ mr r30, r3
+/* 80354434 00350094 3B 60 00 00 */ li r27, 0
+/* 80354438 00350098 3F 00 80 45 */ lis r24, 0x8045
+/* 8035443C 0035009C 48 00 02 BC */ b lbl_803546F8
+lbl_80354440:
+/* 80354440 003500A0 80 7C 00 00 */ lwz r3, 0(r28)
+/* 80354444 003500A4 7F 64 DB 78 */ mr r4, r27
+/* 80354448 003500A8 4B FE 1A A9 */ bl ArrayNth
+/* 8035444C 003500AC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80354450 003500B0 7C 7F 1B 78 */ mr r31, r3
+/* 80354454 003500B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80354458 003500B8 40 82 00 24 */ bne lbl_8035447C
+/* 8035445C 003500BC 80 0D B0 E4 */ lwz r0, lbl_806403A4-_SDA_BASE_(r13)
+/* 80354460 003500C0 80 63 00 04 */ lwz r3, 4(r3)
+/* 80354464 003500C4 7F 5A 02 14 */ add r26, r26, r0
+/* 80354468 003500C8 4B E7 26 FD */ bl strlen
+/* 8035446C 003500CC 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80354470 003500D0 7F 5A 1A 14 */ add r26, r26, r3
+/* 80354474 003500D4 7F 5A 02 14 */ add r26, r26, r0
+/* 80354478 003500D8 48 00 02 7C */ b lbl_803546F4
+lbl_8035447C:
+/* 8035447C 003500DC 2C 00 00 01 */ cmpwi r0, 1
+/* 80354480 003500E0 40 82 00 D8 */ bne lbl_80354558
+/* 80354484 003500E4 80 0D B0 E8 */ lwz r0, lbl_806403A8-_SDA_BASE_(r13)
+/* 80354488 003500E8 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035448C 003500EC 7F 5A 02 14 */ add r26, r26, r0
+/* 80354490 003500F0 4B E7 26 D5 */ bl strlen
+/* 80354494 003500F4 7F 5A 1A 14 */ add r26, r26, r3
+/* 80354498 003500F8 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8035449C 003500FC 4B E7 26 C9 */ bl strlen
+/* 803544A0 00350100 7F 5A 1A 14 */ add r26, r26, r3
+/* 803544A4 00350104 80 79 01 64 */ lwz r3, 0x164(r25)
+/* 803544A8 00350108 7F 64 DB 78 */ mr r4, r27
+/* 803544AC 0035010C 4B FE 1A 45 */ bl ArrayNth
+/* 803544B0 00350110 82 FC 00 14 */ lwz r23, 0x14(r28)
+/* 803544B4 00350114 83 A3 00 0C */ lwz r29, 0xc(r3)
+/* 803544B8 00350118 2C 17 00 00 */ cmpwi r23, 0
+/* 803544BC 0035011C 7F 5A EA 14 */ add r26, r26, r29
+/* 803544C0 00350120 40 82 00 10 */ bne lbl_803544D0
+/* 803544C4 00350124 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 803544C8 00350128 4B E7 26 9D */ bl strlen
+/* 803544CC 0035012C 7F 5A 1A 14 */ add r26, r26, r3
+lbl_803544D0:
+/* 803544D0 00350130 2C 17 00 00 */ cmpwi r23, 0
+/* 803544D4 00350134 41 82 02 20 */ beq lbl_803546F4
+/* 803544D8 00350138 80 7F 00 04 */ lwz r3, 4(r31)
+/* 803544DC 0035013C 4B E7 26 89 */ bl strlen
+/* 803544E0 00350140 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 803544E4 00350144 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 803544E8 00350148 7C 03 00 50 */ subf r0, r3, r0
+/* 803544EC 0035014C 54 00 10 3E */ rotlwi r0, r0, 2
+/* 803544F0 00350150 7C 00 1A 14 */ add r0, r0, r3
+/* 803544F4 00350154 20 00 00 04 */ subfic r0, r0, 4
+/* 803544F8 00350158 2C 00 00 04 */ cmpwi r0, 4
+/* 803544FC 0035015C 41 82 00 08 */ beq lbl_80354504
+/* 80354500 00350160 7F 5A 02 14 */ add r26, r26, r0
+lbl_80354504:
+/* 80354504 00350164 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 80354508 00350168 4B E7 26 5D */ bl strlen
+/* 8035450C 0035016C 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 80354510 00350170 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 80354514 00350174 7C 03 00 50 */ subf r0, r3, r0
+/* 80354518 00350178 54 00 10 3E */ rotlwi r0, r0, 2
+/* 8035451C 0035017C 7C 00 1A 14 */ add r0, r0, r3
+/* 80354520 00350180 20 00 00 04 */ subfic r0, r0, 4
+/* 80354524 00350184 2C 00 00 04 */ cmpwi r0, 4
+/* 80354528 00350188 41 82 00 08 */ beq lbl_80354530
+/* 8035452C 0035018C 7F 5A 02 14 */ add r26, r26, r0
+lbl_80354530:
+/* 80354530 00350190 57 A0 F0 02 */ slwi r0, r29, 0x1e
+/* 80354534 00350194 57 A3 0F FE */ srwi r3, r29, 0x1f
+/* 80354538 00350198 7C 03 00 50 */ subf r0, r3, r0
+/* 8035453C 0035019C 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80354540 003501A0 7C 00 1A 14 */ add r0, r0, r3
+/* 80354544 003501A4 20 00 00 04 */ subfic r0, r0, 4
+/* 80354548 003501A8 2C 00 00 04 */ cmpwi r0, 4
+/* 8035454C 003501AC 41 82 01 A8 */ beq lbl_803546F4
+/* 80354550 003501B0 7F 5A 02 14 */ add r26, r26, r0
+/* 80354554 003501B4 48 00 01 A0 */ b lbl_803546F4
+lbl_80354558:
+/* 80354558 003501B8 2C 00 00 02 */ cmpwi r0, 2
+/* 8035455C 003501BC 40 82 00 D4 */ bne lbl_80354630
+/* 80354560 003501C0 80 0D B0 E8 */ lwz r0, lbl_806403A8-_SDA_BASE_(r13)
+/* 80354564 003501C4 82 C3 00 04 */ lwz r22, 4(r3)
+/* 80354568 003501C8 7F 5A 02 14 */ add r26, r26, r0
+/* 8035456C 003501CC 7E C3 B3 78 */ mr r3, r22
+/* 80354570 003501D0 4B E7 25 F5 */ bl strlen
+/* 80354574 003501D4 82 BF 00 14 */ lwz r21, 0x14(r31)
+/* 80354578 003501D8 7F 5A 1A 14 */ add r26, r26, r3
+/* 8035457C 003501DC 7E A3 AB 78 */ mr r3, r21
+/* 80354580 003501E0 4B E7 25 E5 */ bl strlen
+/* 80354584 003501E4 82 FC 00 14 */ lwz r23, 0x14(r28)
+/* 80354588 003501E8 7F 5A 1A 14 */ add r26, r26, r3
+/* 8035458C 003501EC 83 BF 00 0C */ lwz r29, 0xc(r31)
+/* 80354590 003501F0 2C 17 00 00 */ cmpwi r23, 0
+/* 80354594 003501F4 7F 5A EA 14 */ add r26, r26, r29
+/* 80354598 003501F8 40 82 00 10 */ bne lbl_803545A8
+/* 8035459C 003501FC 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 803545A0 00350200 4B E7 25 C5 */ bl strlen
+/* 803545A4 00350204 7F 5A 1A 14 */ add r26, r26, r3
+lbl_803545A8:
+/* 803545A8 00350208 2C 17 00 00 */ cmpwi r23, 0
+/* 803545AC 0035020C 41 82 01 48 */ beq lbl_803546F4
+/* 803545B0 00350210 7E C3 B3 78 */ mr r3, r22
+/* 803545B4 00350214 4B E7 25 B1 */ bl strlen
+/* 803545B8 00350218 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 803545BC 0035021C 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 803545C0 00350220 7C 03 00 50 */ subf r0, r3, r0
+/* 803545C4 00350224 54 00 10 3E */ rotlwi r0, r0, 2
+/* 803545C8 00350228 7C 00 1A 14 */ add r0, r0, r3
+/* 803545CC 0035022C 20 00 00 04 */ subfic r0, r0, 4
+/* 803545D0 00350230 2C 00 00 04 */ cmpwi r0, 4
+/* 803545D4 00350234 41 82 00 08 */ beq lbl_803545DC
+/* 803545D8 00350238 7F 5A 02 14 */ add r26, r26, r0
+lbl_803545DC:
+/* 803545DC 0035023C 7E A3 AB 78 */ mr r3, r21
+/* 803545E0 00350240 4B E7 25 85 */ bl strlen
+/* 803545E4 00350244 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 803545E8 00350248 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 803545EC 0035024C 7C 03 00 50 */ subf r0, r3, r0
+/* 803545F0 00350250 54 00 10 3E */ rotlwi r0, r0, 2
+/* 803545F4 00350254 7C 00 1A 14 */ add r0, r0, r3
+/* 803545F8 00350258 20 00 00 04 */ subfic r0, r0, 4
+/* 803545FC 0035025C 2C 00 00 04 */ cmpwi r0, 4
+/* 80354600 00350260 41 82 00 08 */ beq lbl_80354608
+/* 80354604 00350264 7F 5A 02 14 */ add r26, r26, r0
+lbl_80354608:
+/* 80354608 00350268 57 A0 F0 02 */ slwi r0, r29, 0x1e
+/* 8035460C 0035026C 57 A3 0F FE */ srwi r3, r29, 0x1f
+/* 80354610 00350270 7C 03 00 50 */ subf r0, r3, r0
+/* 80354614 00350274 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80354618 00350278 7C 00 1A 14 */ add r0, r0, r3
+/* 8035461C 0035027C 20 00 00 04 */ subfic r0, r0, 4
+/* 80354620 00350280 2C 00 00 04 */ cmpwi r0, 4
+/* 80354624 00350284 41 82 00 D0 */ beq lbl_803546F4
+/* 80354628 00350288 7F 5A 02 14 */ add r26, r26, r0
+/* 8035462C 0035028C 48 00 00 C8 */ b lbl_803546F4
+lbl_80354630:
+/* 80354630 00350290 2C 00 00 03 */ cmpwi r0, 3
+/* 80354634 00350294 40 82 00 B8 */ bne lbl_803546EC
+/* 80354638 00350298 80 0D B0 F0 */ lwz r0, lbl_806403B0-_SDA_BASE_(r13)
+/* 8035463C 0035029C 80 63 00 08 */ lwz r3, 8(r3)
+/* 80354640 003502A0 7F 5A 02 14 */ add r26, r26, r0
+/* 80354644 003502A4 4B FE 87 A1 */ bl gsXmlWriterGetDataLength
+/* 80354648 003502A8 7F 5A 1A 14 */ add r26, r26, r3
+/* 8035464C 003502AC 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80354650 003502B0 4B FE 87 95 */ bl gsXmlWriterGetDataLength
+/* 80354654 003502B4 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 80354658 003502B8 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8035465C 003502BC 7C 03 00 50 */ subf r0, r3, r0
+/* 80354660 003502C0 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80354664 003502C4 7C 00 1A 14 */ add r0, r0, r3
+/* 80354668 003502C8 20 00 00 04 */ subfic r0, r0, 4
+/* 8035466C 003502CC 2C 00 00 04 */ cmpwi r0, 4
+/* 80354670 003502D0 41 82 00 08 */ beq lbl_80354678
+/* 80354674 003502D4 7F 5A 02 14 */ add r26, r26, r0
+lbl_80354678:
+/* 80354678 003502D8 38 6D 93 C0 */ addi r3, r13, lbl_8063E680-_SDA_BASE_
+/* 8035467C 003502DC 4B E7 24 E9 */ bl strlen
+/* 80354680 003502E0 7F 5A 1A 14 */ add r26, r26, r3
+/* 80354684 003502E4 38 6D 93 C0 */ addi r3, r13, lbl_8063E680-_SDA_BASE_
+/* 80354688 003502E8 4B E7 24 DD */ bl strlen
+/* 8035468C 003502EC 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 80354690 003502F0 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 80354694 003502F4 7C 03 00 50 */ subf r0, r3, r0
+/* 80354698 003502F8 54 00 10 3E */ rotlwi r0, r0, 2
+/* 8035469C 003502FC 7C 00 1A 14 */ add r0, r0, r3
+/* 803546A0 00350300 20 00 00 04 */ subfic r0, r0, 4
+/* 803546A4 00350304 2C 00 00 04 */ cmpwi r0, 4
+/* 803546A8 00350308 41 82 00 08 */ beq lbl_803546B0
+/* 803546AC 0035030C 7F 5A 02 14 */ add r26, r26, r0
+lbl_803546B0:
+/* 803546B0 00350310 38 78 C0 EC */ addi r3, r24, -16148
+/* 803546B4 00350314 4B E7 24 B1 */ bl strlen
+/* 803546B8 00350318 7F 5A 1A 14 */ add r26, r26, r3
+/* 803546BC 0035031C 38 78 C0 EC */ addi r3, r24, -16148
+/* 803546C0 00350320 4B E7 24 A5 */ bl strlen
+/* 803546C4 00350324 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 803546C8 00350328 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 803546CC 0035032C 7C 03 00 50 */ subf r0, r3, r0
+/* 803546D0 00350330 54 00 10 3E */ rotlwi r0, r0, 2
+/* 803546D4 00350334 7C 00 1A 14 */ add r0, r0, r3
+/* 803546D8 00350338 20 00 00 04 */ subfic r0, r0, 4
+/* 803546DC 0035033C 2C 00 00 04 */ cmpwi r0, 4
+/* 803546E0 00350340 41 82 00 14 */ beq lbl_803546F4
+/* 803546E4 00350344 7F 5A 02 14 */ add r26, r26, r0
+/* 803546E8 00350348 48 00 00 0C */ b lbl_803546F4
+lbl_803546EC:
+/* 803546EC 0035034C 38 60 00 00 */ li r3, 0
+/* 803546F0 00350350 48 00 00 18 */ b lbl_80354708
+lbl_803546F4:
+/* 803546F4 00350354 3B 7B 00 01 */ addi r27, r27, 1
+lbl_803546F8:
+/* 803546F8 00350358 7C 1B F0 00 */ cmpw r27, r30
+/* 803546FC 0035035C 41 80 FD 44 */ blt lbl_80354440
+/* 80354700 00350360 80 0D B0 EC */ lwz r0, lbl_806403AC-_SDA_BASE_(r13)
+/* 80354704 00350364 7C 7A 02 14 */ add r3, r26, r0
+lbl_80354708:
+/* 80354708 00350368 39 61 00 40 */ addi r11, r1, 0x40
+/* 8035470C 0035036C 4B E7 2A 51 */ bl _restgpr_21
+/* 80354710 00350370 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80354714 00350374 7C 08 03 A6 */ mtlr r0
+/* 80354718 00350378 38 21 00 40 */ addi r1, r1, 0x40
+/* 8035471C 0035037C 4E 80 00 20 */ blr
+
+.global ghiPostStateInit
+ghiPostStateInit:
+/* 80354720 00350380 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80354724 00350384 7C 08 02 A6 */ mflr r0
+/* 80354728 00350388 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035472C 0035038C 38 00 FF FF */ li r0, -1
+/* 80354730 00350390 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80354734 00350394 7C 7F 1B 78 */ mr r31, r3
+/* 80354738 00350398 80 83 00 00 */ lwz r4, 0(r3)
+/* 8035473C 0035039C 80 84 00 00 */ lwz r4, 0(r4)
+/* 80354740 003503A0 2C 04 00 00 */ cmpwi r4, 0
+/* 80354744 003503A4 90 03 00 04 */ stw r0, 4(r3)
+/* 80354748 003503A8 41 82 00 7C */ beq lbl_803547C4
+/* 8035474C 003503AC 2C 04 00 01 */ cmpwi r4, 1
+/* 80354750 003503B0 40 82 00 5C */ bne lbl_803547AC
+/* 80354754 003503B4 80 63 00 08 */ lwz r3, 8(r3)
+/* 80354758 003503B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035475C 003503BC 40 82 00 0C */ bne lbl_80354768
+/* 80354760 003503C0 38 60 00 00 */ li r3, 0
+/* 80354764 003503C4 48 00 00 64 */ b lbl_803547C8
+lbl_80354768:
+/* 80354768 003503C8 38 80 00 00 */ li r4, 0
+/* 8035476C 003503CC 38 A0 00 02 */ li r5, 2
+/* 80354770 003503D0 4B E7 59 81 */ bl fseek
+/* 80354774 003503D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80354778 003503D8 41 82 00 0C */ beq lbl_80354784
+/* 8035477C 003503DC 38 60 00 00 */ li r3, 0
+/* 80354780 003503E0 48 00 00 48 */ b lbl_803547C8
+lbl_80354784:
+/* 80354784 003503E4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80354788 003503E8 4B E7 57 A1 */ bl ftell
+/* 8035478C 003503EC 2C 03 FF FF */ cmpwi r3, -1
+/* 80354790 003503F0 90 7F 00 0C */ stw r3, 0xc(r31)
+/* 80354794 003503F4 40 82 00 0C */ bne lbl_803547A0
+/* 80354798 003503F8 38 60 00 00 */ li r3, 0
+/* 8035479C 003503FC 48 00 00 2C */ b lbl_803547C8
+lbl_803547A0:
+/* 803547A0 00350400 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803547A4 00350404 4B E7 59 51 */ bl rewind
+/* 803547A8 00350408 48 00 00 1C */ b lbl_803547C4
+lbl_803547AC:
+/* 803547AC 0035040C 2C 04 00 02 */ cmpwi r4, 2
+/* 803547B0 00350410 41 82 00 14 */ beq lbl_803547C4
+/* 803547B4 00350414 2C 04 00 03 */ cmpwi r4, 3
+/* 803547B8 00350418 41 82 00 0C */ beq lbl_803547C4
+/* 803547BC 0035041C 38 60 00 00 */ li r3, 0
+/* 803547C0 00350420 48 00 00 08 */ b lbl_803547C8
+lbl_803547C4:
+/* 803547C4 00350424 38 60 00 01 */ li r3, 1
+lbl_803547C8:
+/* 803547C8 00350428 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803547CC 0035042C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803547D0 00350430 7C 08 03 A6 */ mtlr r0
+/* 803547D4 00350434 38 21 00 10 */ addi r1, r1, 0x10
+/* 803547D8 00350438 4E 80 00 20 */ blr
+
+.global ghiPostInitState
+ghiPostInitState:
+/* 803547DC 0035043C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803547E0 00350440 7C 08 02 A6 */ mflr r0
+/* 803547E4 00350444 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803547E8 00350448 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 803547EC 0035044C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 803547F0 00350450 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 803547F4 00350454 93 81 00 20 */ stw r28, 0x20(r1)
+/* 803547F8 00350458 7C 7C 1B 78 */ mr r28, r3
+/* 803547FC 0035045C 80 83 01 60 */ lwz r4, 0x160(r3)
+/* 80354800 00350460 2C 04 00 00 */ cmpwi r4, 0
+/* 80354804 00350464 40 82 00 0C */ bne lbl_80354810
+/* 80354808 00350468 38 60 00 00 */ li r3, 0
+/* 8035480C 0035046C 48 00 01 60 */ b lbl_8035496C
+lbl_80354810:
+/* 80354810 00350470 38 00 00 00 */ li r0, 0
+/* 80354814 00350474 90 03 01 68 */ stw r0, 0x168(r3)
+/* 80354818 00350478 90 03 01 6C */ stw r0, 0x16c(r3)
+/* 8035481C 0035047C 90 03 01 70 */ stw r0, 0x170(r3)
+/* 80354820 00350480 90 03 01 80 */ stw r0, 0x180(r3)
+/* 80354824 00350484 80 04 00 04 */ lwz r0, 4(r4)
+/* 80354828 00350488 90 03 01 74 */ stw r0, 0x174(r3)
+/* 8035482C 0035048C 80 04 00 08 */ lwz r0, 8(r4)
+/* 80354830 00350490 90 03 01 78 */ stw r0, 0x178(r3)
+/* 80354834 00350494 80 64 00 00 */ lwz r3, 0(r4)
+/* 80354838 00350498 4B FE 16 B1 */ bl ArrayLength
+/* 8035483C 0035049C 7C 7F 1B 78 */ mr r31, r3
+/* 80354840 003504A0 38 60 00 10 */ li r3, 0x10
+/* 80354844 003504A4 7F E4 FB 78 */ mr r4, r31
+/* 80354848 003504A8 38 A0 00 00 */ li r5, 0
+/* 8035484C 003504AC 4B FE 15 6D */ bl ArrayNew
+/* 80354850 003504B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80354854 003504B4 90 7C 01 64 */ stw r3, 0x164(r28)
+/* 80354858 003504B8 40 82 00 0C */ bne lbl_80354864
+/* 8035485C 003504BC 38 60 00 00 */ li r3, 0
+/* 80354860 003504C0 48 00 01 0C */ b lbl_8035496C
+lbl_80354864:
+/* 80354864 003504C4 3B A0 00 00 */ li r29, 0
+/* 80354868 003504C8 48 00 00 B8 */ b lbl_80354920
+lbl_8035486C:
+/* 8035486C 003504CC 80 7C 01 60 */ lwz r3, 0x160(r28)
+/* 80354870 003504D0 7F A4 EB 78 */ mr r4, r29
+/* 80354874 003504D4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80354878 003504D8 4B FE 16 79 */ bl ArrayNth
+/* 8035487C 003504DC 7C 7E 1B 78 */ mr r30, r3
+/* 80354880 003504E0 38 61 00 08 */ addi r3, r1, 8
+/* 80354884 003504E4 38 80 00 00 */ li r4, 0
+/* 80354888 003504E8 38 A0 00 10 */ li r5, 0x10
+/* 8035488C 003504EC 4B CA F8 79 */ bl memset
+/* 80354890 003504F0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80354894 003504F4 38 61 00 08 */ addi r3, r1, 8
+/* 80354898 003504F8 4B FF FE 89 */ bl ghiPostStateInit
+/* 8035489C 003504FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803548A0 00350500 40 82 00 70 */ bne lbl_80354910
+/* 803548A4 00350504 3B E0 00 00 */ li r31, 0
+/* 803548A8 00350508 3B BD FF FF */ addi r29, r29, -1
+/* 803548AC 0035050C 48 00 00 44 */ b lbl_803548F0
+lbl_803548B0:
+/* 803548B0 00350510 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 803548B4 00350514 7F A4 EB 78 */ mr r4, r29
+/* 803548B8 00350518 4B FE 16 39 */ bl ArrayNth
+/* 803548BC 0035051C 80 83 00 00 */ lwz r4, 0(r3)
+/* 803548C0 00350520 7C 7E 1B 78 */ mr r30, r3
+/* 803548C4 00350524 80 04 00 00 */ lwz r0, 0(r4)
+/* 803548C8 00350528 2C 00 00 00 */ cmpwi r0, 0
+/* 803548CC 0035052C 41 82 00 20 */ beq lbl_803548EC
+/* 803548D0 00350530 2C 00 00 01 */ cmpwi r0, 1
+/* 803548D4 00350534 40 82 00 18 */ bne lbl_803548EC
+/* 803548D8 00350538 80 63 00 08 */ lwz r3, 8(r3)
+/* 803548DC 0035053C 2C 03 00 00 */ cmpwi r3, 0
+/* 803548E0 00350540 41 82 00 08 */ beq lbl_803548E8
+/* 803548E4 00350544 4B E7 52 ED */ bl fclose
+lbl_803548E8:
+/* 803548E8 00350548 93 FE 00 08 */ stw r31, 8(r30)
+lbl_803548EC:
+/* 803548EC 0035054C 3B BD FF FF */ addi r29, r29, -1
+lbl_803548F0:
+/* 803548F0 00350550 2C 1D 00 00 */ cmpwi r29, 0
+/* 803548F4 00350554 40 80 FF BC */ bge lbl_803548B0
+/* 803548F8 00350558 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 803548FC 0035055C 4B FE 15 59 */ bl ArrayFree
+/* 80354900 00350560 38 00 00 00 */ li r0, 0
+/* 80354904 00350564 38 60 00 00 */ li r3, 0
+/* 80354908 00350568 90 1C 01 64 */ stw r0, 0x164(r28)
+/* 8035490C 0035056C 48 00 00 60 */ b lbl_8035496C
+lbl_80354910:
+/* 80354910 00350570 80 7C 01 64 */ lwz r3, 0x164(r28)
+/* 80354914 00350574 38 81 00 08 */ addi r4, r1, 8
+/* 80354918 00350578 4B FE 16 09 */ bl ArrayAppend
+/* 8035491C 0035057C 3B BD 00 01 */ addi r29, r29, 1
+lbl_80354920:
+/* 80354920 00350580 7C 1D F8 00 */ cmpw r29, r31
+/* 80354924 00350584 41 80 FF 48 */ blt lbl_8035486C
+/* 80354928 00350588 80 7C 01 60 */ lwz r3, 0x160(r28)
+/* 8035492C 0035058C 2C 03 00 00 */ cmpwi r3, 0
+/* 80354930 00350590 40 82 00 0C */ bne lbl_8035493C
+/* 80354934 00350594 38 60 00 00 */ li r3, 0
+/* 80354938 00350598 48 00 00 24 */ b lbl_8035495C
+lbl_8035493C:
+/* 8035493C 0035059C 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80354940 003505A0 2C 00 00 00 */ cmpwi r0, 0
+/* 80354944 003505A4 41 82 00 10 */ beq lbl_80354954
+/* 80354948 003505A8 7F 83 E3 78 */ mr r3, r28
+/* 8035494C 003505AC 4B FF FA 55 */ bl ghiPostGetHasFilesContentLength
+/* 80354950 003505B0 48 00 00 0C */ b lbl_8035495C
+lbl_80354954:
+/* 80354954 003505B4 7F 83 E3 78 */ mr r3, r28
+/* 80354958 003505B8 4B FF F9 85 */ bl ghiPostGetNoFilesContentLength
+lbl_8035495C:
+/* 8035495C 003505BC 38 00 00 01 */ li r0, 1
+/* 80354960 003505C0 90 7C 01 70 */ stw r3, 0x170(r28)
+/* 80354964 003505C4 38 60 00 01 */ li r3, 1
+/* 80354968 003505C8 90 1C 01 7C */ stw r0, 0x17c(r28)
+lbl_8035496C:
+/* 8035496C 003505CC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80354970 003505D0 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80354974 003505D4 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80354978 003505D8 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8035497C 003505DC 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 80354980 003505E0 7C 08 03 A6 */ mtlr r0
+/* 80354984 003505E4 38 21 00 30 */ addi r1, r1, 0x30
+/* 80354988 003505E8 4E 80 00 20 */ blr
+
+.global ghiPostCleanupState
+ghiPostCleanupState:
+/* 8035498C 003505EC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80354990 003505F0 7C 08 02 A6 */ mflr r0
+/* 80354994 003505F4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80354998 003505F8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035499C 003505FC 4B E7 27 8D */ bl _savegpr_27
+/* 803549A0 00350600 80 03 01 64 */ lwz r0, 0x164(r3)
+/* 803549A4 00350604 7C 7B 1B 78 */ mr r27, r3
+/* 803549A8 00350608 2C 00 00 00 */ cmpwi r0, 0
+/* 803549AC 0035060C 41 82 00 74 */ beq lbl_80354A20
+/* 803549B0 00350610 7C 03 03 78 */ mr r3, r0
+/* 803549B4 00350614 4B FE 15 35 */ bl ArrayLength
+/* 803549B8 00350618 7C 7D 1B 78 */ mr r29, r3
+/* 803549BC 0035061C 3B 80 00 00 */ li r28, 0
+/* 803549C0 00350620 3B E0 00 00 */ li r31, 0
+/* 803549C4 00350624 48 00 00 44 */ b lbl_80354A08
+lbl_803549C8:
+/* 803549C8 00350628 80 7B 01 64 */ lwz r3, 0x164(r27)
+/* 803549CC 0035062C 7F 84 E3 78 */ mr r4, r28
+/* 803549D0 00350630 4B FE 15 21 */ bl ArrayNth
+/* 803549D4 00350634 80 83 00 00 */ lwz r4, 0(r3)
+/* 803549D8 00350638 7C 7E 1B 78 */ mr r30, r3
+/* 803549DC 0035063C 80 04 00 00 */ lwz r0, 0(r4)
+/* 803549E0 00350640 2C 00 00 00 */ cmpwi r0, 0
+/* 803549E4 00350644 41 82 00 20 */ beq lbl_80354A04
+/* 803549E8 00350648 2C 00 00 01 */ cmpwi r0, 1
+/* 803549EC 0035064C 40 82 00 18 */ bne lbl_80354A04
+/* 803549F0 00350650 80 63 00 08 */ lwz r3, 8(r3)
+/* 803549F4 00350654 2C 03 00 00 */ cmpwi r3, 0
+/* 803549F8 00350658 41 82 00 08 */ beq lbl_80354A00
+/* 803549FC 0035065C 4B E7 51 D5 */ bl fclose
+lbl_80354A00:
+/* 80354A00 00350660 93 FE 00 08 */ stw r31, 8(r30)
+lbl_80354A04:
+/* 80354A04 00350664 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80354A08:
+/* 80354A08 00350668 7C 1C E8 00 */ cmpw r28, r29
+/* 80354A0C 0035066C 41 80 FF BC */ blt lbl_803549C8
+/* 80354A10 00350670 80 7B 01 64 */ lwz r3, 0x164(r27)
+/* 80354A14 00350674 4B FE 14 41 */ bl ArrayFree
+/* 80354A18 00350678 38 00 00 00 */ li r0, 0
+/* 80354A1C 0035067C 90 1B 01 64 */ stw r0, 0x164(r27)
+lbl_80354A20:
+/* 80354A20 00350680 83 BB 01 60 */ lwz r29, 0x160(r27)
+/* 80354A24 00350684 2C 1D 00 00 */ cmpwi r29, 0
+/* 80354A28 00350688 41 82 00 28 */ beq lbl_80354A50
+/* 80354A2C 0035068C 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 80354A30 00350690 2C 00 00 00 */ cmpwi r0, 0
+/* 80354A34 00350694 41 82 00 1C */ beq lbl_80354A50
+/* 80354A38 00350698 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80354A3C 0035069C 4B FE 14 19 */ bl ArrayFree
+/* 80354A40 003506A0 7F A3 EB 78 */ mr r3, r29
+/* 80354A44 003506A4 4B FE 48 F5 */ bl gsifree
+/* 80354A48 003506A8 38 00 00 00 */ li r0, 0
+/* 80354A4C 003506AC 90 1B 01 60 */ stw r0, 0x160(r27)
+lbl_80354A50:
+/* 80354A50 003506B0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80354A54 003506B4 4B E7 27 21 */ bl _restgpr_27
+/* 80354A58 003506B8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80354A5C 003506BC 7C 08 03 A6 */ mtlr r0
+/* 80354A60 003506C0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80354A64 003506C4 4E 80 00 20 */ blr
+
+.global ghiPostStringStateDoPosting
+ghiPostStringStateDoPosting:
+/* 80354A68 003506C8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80354A6C 003506CC 7C 08 02 A6 */ mflr r0
+/* 80354A70 003506D0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80354A74 003506D4 39 61 00 30 */ addi r11, r1, 0x30
+/* 80354A78 003506D8 4B E7 26 AD */ bl _savegpr_26
+/* 80354A7C 003506DC 80 C3 00 00 */ lwz r6, 0(r3)
+/* 80354A80 003506E0 7C 9E 23 78 */ mr r30, r4
+/* 80354A84 003506E4 80 A6 00 0C */ lwz r5, 0xc(r6)
+/* 80354A88 003506E8 2C 05 00 00 */ cmpwi r5, 0
+/* 80354A8C 003506EC 40 82 00 0C */ bne lbl_80354A98
+/* 80354A90 003506F0 38 60 00 01 */ li r3, 1
+/* 80354A94 003506F4 48 00 01 68 */ b lbl_80354BFC
+lbl_80354A98:
+/* 80354A98 003506F8 80 64 01 60 */ lwz r3, 0x160(r4)
+/* 80354A9C 003506FC 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80354AA0 00350700 2C 00 00 00 */ cmpwi r0, 0
+/* 80354AA4 00350704 40 82 00 F4 */ bne lbl_80354B98
+/* 80354AA8 00350708 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 80354AAC 0035070C 2C 00 00 00 */ cmpwi r0, 0
+/* 80354AB0 00350710 40 82 00 E8 */ bne lbl_80354B98
+/* 80354AB4 00350714 80 06 00 10 */ lwz r0, 0x10(r6)
+/* 80354AB8 00350718 2C 00 00 00 */ cmpwi r0, 0
+/* 80354ABC 0035071C 41 82 00 DC */ beq lbl_80354B98
+/* 80354AC0 00350720 83 E6 00 08 */ lwz r31, 8(r6)
+/* 80354AC4 00350724 88 C2 A4 D8 */ lbz r6, lbl_80642AD8-_SDA2_BASE_(r2)
+/* 80354AC8 00350728 88 A2 A4 D9 */ lbz r5, lbl_80642AD9-_SDA2_BASE_(r2)
+/* 80354ACC 0035072C 88 62 A4 DA */ lbz r3, lbl_80642ADA-_SDA2_BASE_(r2)
+/* 80354AD0 00350730 88 02 A4 DB */ lbz r0, lbl_80642ADB-_SDA2_BASE_(r2)
+/* 80354AD4 00350734 98 C1 00 08 */ stb r6, 8(r1)
+/* 80354AD8 00350738 98 A1 00 09 */ stb r5, 9(r1)
+/* 80354ADC 0035073C 98 61 00 0A */ stb r3, 0xa(r1)
+/* 80354AE0 00350740 98 01 00 0B */ stb r0, 0xb(r1)
+/* 80354AE4 00350744 80 04 01 94 */ lwz r0, 0x194(r4)
+/* 80354AE8 00350748 2C 00 00 00 */ cmpwi r0, 0
+/* 80354AEC 0035074C 40 82 00 0C */ bne lbl_80354AF8
+/* 80354AF0 00350750 3B 44 00 54 */ addi r26, r4, 0x54
+/* 80354AF4 00350754 48 00 00 08 */ b lbl_80354AFC
+lbl_80354AF8:
+/* 80354AF8 00350758 3B 44 00 78 */ addi r26, r4, 0x78
+lbl_80354AFC:
+/* 80354AFC 0035075C 3F A0 80 45 */ lis r29, lbl_8044C118@ha
+/* 80354B00 00350760 3F 80 80 45 */ lis r28, 0x8045
+/* 80354B04 00350764 3B BD C1 18 */ addi r29, r29, lbl_8044C118@l
+/* 80354B08 00350768 48 00 00 80 */ b lbl_80354B88
+lbl_80354B0C:
+/* 80354B0C 0035076C 7F 64 DB 78 */ mr r4, r27
+/* 80354B10 00350770 38 7C BF F8 */ addi r3, r28, -16392
+/* 80354B14 00350774 4B E7 9A 95 */ bl strchr
+/* 80354B18 00350778 2C 03 00 00 */ cmpwi r3, 0
+/* 80354B1C 0035077C 41 82 00 14 */ beq lbl_80354B30
+/* 80354B20 00350780 7F 43 D3 78 */ mr r3, r26
+/* 80354B24 00350784 7F 64 DB 78 */ mr r4, r27
+/* 80354B28 00350788 4B FF C3 85 */ bl ghiAppendCharToBuffer
+/* 80354B2C 0035078C 48 00 00 58 */ b lbl_80354B84
+lbl_80354B30:
+/* 80354B30 00350790 2C 1B 00 20 */ cmpwi r27, 0x20
+/* 80354B34 00350794 40 82 00 14 */ bne lbl_80354B48
+/* 80354B38 00350798 7F 43 D3 78 */ mr r3, r26
+/* 80354B3C 0035079C 38 80 00 2B */ li r4, 0x2b
+/* 80354B40 003507A0 4B FF C3 6D */ bl ghiAppendCharToBuffer
+/* 80354B44 003507A4 48 00 00 40 */ b lbl_80354B84
+lbl_80354B48:
+/* 80354B48 003507A8 57 60 E0 06 */ slwi r0, r27, 0x1c
+/* 80354B4C 003507AC 57 65 0F FE */ srwi r5, r27, 0x1f
+/* 80354B50 003507B0 7C 05 00 50 */ subf r0, r5, r0
+/* 80354B54 003507B4 7F 64 26 70 */ srawi r4, r27, 4
+/* 80354B58 003507B8 54 00 20 3E */ rotlwi r0, r0, 4
+/* 80354B5C 003507BC 7F 43 D3 78 */ mr r3, r26
+/* 80354B60 003507C0 7C C4 01 94 */ addze r6, r4
+/* 80354B64 003507C4 38 81 00 08 */ addi r4, r1, 8
+/* 80354B68 003507C8 7C 00 2A 14 */ add r0, r0, r5
+/* 80354B6C 003507CC 7C DD 30 AE */ lbzx r6, r29, r6
+/* 80354B70 003507D0 7C 1D 00 AE */ lbzx r0, r29, r0
+/* 80354B74 003507D4 38 A0 00 03 */ li r5, 3
+/* 80354B78 003507D8 98 C1 00 09 */ stb r6, 9(r1)
+/* 80354B7C 003507DC 98 01 00 0A */ stb r0, 0xa(r1)
+/* 80354B80 003507E0 4B FF BF 3D */ bl ghiAppendDataToBuffer
+lbl_80354B84:
+/* 80354B84 003507E4 3B FF 00 01 */ addi r31, r31, 1
+lbl_80354B88:
+/* 80354B88 003507E8 8B 7F 00 00 */ lbz r27, 0(r31)
+/* 80354B8C 003507EC 7F 7B 07 75 */ extsb. r27, r27
+/* 80354B90 003507F0 40 82 FF 7C */ bne lbl_80354B0C
+/* 80354B94 003507F4 48 00 00 20 */ b lbl_80354BB4
+lbl_80354B98:
+/* 80354B98 003507F8 80 86 00 08 */ lwz r4, 8(r6)
+/* 80354B9C 003507FC 7F C3 F3 78 */ mr r3, r30
+/* 80354BA0 00350800 4B FF CA 99 */ bl ghiTrySendThenBuffer
+/* 80354BA4 00350804 7C 03 00 D0 */ neg r0, r3
+/* 80354BA8 00350808 7C 00 1B 78 */ or r0, r0, r3
+/* 80354BAC 0035080C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80354BB0 00350810 48 00 00 4C */ b lbl_80354BFC
+lbl_80354BB4:
+/* 80354BB4 00350814 80 1E 01 94 */ lwz r0, 0x194(r30)
+/* 80354BB8 00350818 2C 00 00 00 */ cmpwi r0, 0
+/* 80354BBC 0035081C 40 82 00 3C */ bne lbl_80354BF8
+/* 80354BC0 00350820 7F C3 F3 78 */ mr r3, r30
+/* 80354BC4 00350824 4B FF C4 91 */ bl ghiSendBufferedData
+/* 80354BC8 00350828 2C 03 00 00 */ cmpwi r3, 0
+/* 80354BCC 0035082C 40 82 00 0C */ bne lbl_80354BD8
+/* 80354BD0 00350830 38 60 00 00 */ li r3, 0
+/* 80354BD4 00350834 48 00 00 28 */ b lbl_80354BFC
+lbl_80354BD8:
+/* 80354BD8 00350838 80 7E 00 64 */ lwz r3, 0x64(r30)
+/* 80354BDC 0035083C 80 1E 00 60 */ lwz r0, 0x60(r30)
+/* 80354BE0 00350840 7C 03 00 00 */ cmpw r3, r0
+/* 80354BE4 00350844 40 82 00 0C */ bne lbl_80354BF0
+/* 80354BE8 00350848 38 7E 00 54 */ addi r3, r30, 0x54
+/* 80354BEC 0035084C 4B FF C4 45 */ bl ghiResetBuffer
+lbl_80354BF0:
+/* 80354BF0 00350850 38 60 00 01 */ li r3, 1
+/* 80354BF4 00350854 48 00 00 08 */ b lbl_80354BFC
+lbl_80354BF8:
+/* 80354BF8 00350858 38 60 00 01 */ li r3, 1
+lbl_80354BFC:
+/* 80354BFC 0035085C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80354C00 00350860 4B E7 25 71 */ bl _restgpr_26
+/* 80354C04 00350864 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80354C08 00350868 7C 08 03 A6 */ mtlr r0
+/* 80354C0C 0035086C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80354C10 00350870 4E 80 00 20 */ blr
+
+.global ghiPostXmlStateDoPosting
+ghiPostXmlStateDoPosting:
+/* 80354C14 00350874 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80354C18 00350878 7C 08 02 A6 */ mflr r0
+/* 80354C1C 0035087C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80354C20 00350880 38 00 00 00 */ li r0, 0
+/* 80354C24 00350884 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80354C28 00350888 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80354C2C 0035088C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80354C30 00350890 3B A0 00 00 */ li r29, 0
+/* 80354C34 00350894 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80354C38 00350898 7C 9C 23 78 */ mr r28, r4
+/* 80354C3C 0035089C 80 63 00 00 */ lwz r3, 0(r3)
+/* 80354C40 003508A0 83 C3 00 08 */ lwz r30, 8(r3)
+/* 80354C44 003508A4 B0 01 00 08 */ sth r0, 8(r1)
+/* 80354C48 003508A8 98 01 00 0A */ stb r0, 0xa(r1)
+/* 80354C4C 003508AC 80 64 01 60 */ lwz r3, 0x160(r4)
+/* 80354C50 003508B0 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80354C54 003508B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80354C58 003508B8 41 82 00 30 */ beq lbl_80354C88
+/* 80354C5C 003508BC 7F C3 F3 78 */ mr r3, r30
+/* 80354C60 003508C0 4B FE 81 85 */ bl gsXmlWriterGetDataLength
+/* 80354C64 003508C4 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 80354C68 003508C8 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 80354C6C 003508CC 7C 03 00 50 */ subf r0, r3, r0
+/* 80354C70 003508D0 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80354C74 003508D4 7C 00 1A 14 */ add r0, r0, r3
+/* 80354C78 003508D8 23 A0 00 04 */ subfic r29, r0, 4
+/* 80354C7C 003508DC 2C 1D 00 04 */ cmpwi r29, 4
+/* 80354C80 003508E0 40 82 00 08 */ bne lbl_80354C88
+/* 80354C84 003508E4 3B A0 00 00 */ li r29, 0
+lbl_80354C88:
+/* 80354C88 003508E8 80 1C 01 94 */ lwz r0, 0x194(r28)
+/* 80354C8C 003508EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80354C90 003508F0 40 82 00 58 */ bne lbl_80354CE8
+/* 80354C94 003508F4 7F C3 F3 78 */ mr r3, r30
+/* 80354C98 003508F8 4B FE 81 4D */ bl gsXmlWriterGetDataLength
+/* 80354C9C 003508FC 7C 7F 1B 78 */ mr r31, r3
+/* 80354CA0 00350900 7F C3 F3 78 */ mr r3, r30
+/* 80354CA4 00350904 4B FE 81 39 */ bl gsXmlWriterGetData
+/* 80354CA8 00350908 7C 64 1B 78 */ mr r4, r3
+/* 80354CAC 0035090C 7F 83 E3 78 */ mr r3, r28
+/* 80354CB0 00350910 7F E5 FB 78 */ mr r5, r31
+/* 80354CB4 00350914 4B FF C9 85 */ bl ghiTrySendThenBuffer
+/* 80354CB8 00350918 2C 03 00 00 */ cmpwi r3, 0
+/* 80354CBC 0035091C 40 82 00 0C */ bne lbl_80354CC8
+/* 80354CC0 00350920 38 60 00 00 */ li r3, 0
+/* 80354CC4 00350924 48 00 00 C4 */ b lbl_80354D88
+lbl_80354CC8:
+/* 80354CC8 00350928 7F 83 E3 78 */ mr r3, r28
+/* 80354CCC 0035092C 7F A5 EB 78 */ mr r5, r29
+/* 80354CD0 00350930 38 81 00 08 */ addi r4, r1, 8
+/* 80354CD4 00350934 4B FF C9 65 */ bl ghiTrySendThenBuffer
+/* 80354CD8 00350938 7C 03 00 D0 */ neg r0, r3
+/* 80354CDC 0035093C 7C 00 1B 78 */ or r0, r0, r3
+/* 80354CE0 00350940 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80354CE4 00350944 48 00 00 A4 */ b lbl_80354D88
+lbl_80354CE8:
+/* 80354CE8 00350948 7F C3 F3 78 */ mr r3, r30
+/* 80354CEC 0035094C 4B FE 80 F9 */ bl gsXmlWriterGetDataLength
+/* 80354CF0 00350950 7C 7F 1B 78 */ mr r31, r3
+/* 80354CF4 00350954 7F C3 F3 78 */ mr r3, r30
+/* 80354CF8 00350958 4B FE 80 E5 */ bl gsXmlWriterGetData
+/* 80354CFC 0035095C 7C 64 1B 78 */ mr r4, r3
+/* 80354D00 00350960 7F E5 FB 78 */ mr r5, r31
+/* 80354D04 00350964 38 7C 00 78 */ addi r3, r28, 0x78
+/* 80354D08 00350968 4B FF BD B5 */ bl ghiAppendDataToBuffer
+/* 80354D0C 0035096C 2C 03 00 00 */ cmpwi r3, 0
+/* 80354D10 00350970 41 82 00 34 */ beq lbl_80354D44
+/* 80354D14 00350974 7F A5 EB 78 */ mr r5, r29
+/* 80354D18 00350978 38 7C 00 78 */ addi r3, r28, 0x78
+/* 80354D1C 0035097C 38 81 00 08 */ addi r4, r1, 8
+/* 80354D20 00350980 4B FF BD 9D */ bl ghiAppendDataToBuffer
+/* 80354D24 00350984 2C 03 00 00 */ cmpwi r3, 0
+/* 80354D28 00350988 41 82 00 1C */ beq lbl_80354D44
+/* 80354D2C 0035098C 80 9C 00 7C */ lwz r4, 0x7c(r28)
+/* 80354D30 00350990 38 7C 00 54 */ addi r3, r28, 0x54
+/* 80354D34 00350994 80 BC 00 84 */ lwz r5, 0x84(r28)
+/* 80354D38 00350998 4B FF BE F5 */ bl ghiEncryptDataToBuffer
+/* 80354D3C 0035099C 2C 03 00 00 */ cmpwi r3, 0
+/* 80354D40 003509A0 40 82 00 0C */ bne lbl_80354D4C
+lbl_80354D44:
+/* 80354D44 003509A4 38 60 00 00 */ li r3, 0
+/* 80354D48 003509A8 48 00 00 40 */ b lbl_80354D88
+lbl_80354D4C:
+/* 80354D4C 003509AC 38 7C 00 78 */ addi r3, r28, 0x78
+/* 80354D50 003509B0 4B FF C2 E1 */ bl ghiResetBuffer
+/* 80354D54 003509B4 7F 83 E3 78 */ mr r3, r28
+/* 80354D58 003509B8 4B FF C2 FD */ bl ghiSendBufferedData
+/* 80354D5C 003509BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80354D60 003509C0 40 82 00 0C */ bne lbl_80354D6C
+/* 80354D64 003509C4 38 60 00 00 */ li r3, 0
+/* 80354D68 003509C8 48 00 00 20 */ b lbl_80354D88
+lbl_80354D6C:
+/* 80354D6C 003509CC 80 7C 00 64 */ lwz r3, 0x64(r28)
+/* 80354D70 003509D0 80 1C 00 60 */ lwz r0, 0x60(r28)
+/* 80354D74 003509D4 7C 03 00 00 */ cmpw r3, r0
+/* 80354D78 003509D8 40 82 00 0C */ bne lbl_80354D84
+/* 80354D7C 003509DC 38 7C 00 54 */ addi r3, r28, 0x54
+/* 80354D80 003509E0 4B FF C2 B1 */ bl ghiResetBuffer
+lbl_80354D84:
+/* 80354D84 003509E4 38 60 00 01 */ li r3, 1
+lbl_80354D88:
+/* 80354D88 003509E8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80354D8C 003509EC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80354D90 003509F0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80354D94 003509F4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80354D98 003509F8 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80354D9C 003509FC 7C 08 03 A6 */ mtlr r0
+/* 80354DA0 00350A00 38 21 00 20 */ addi r1, r1, 0x20
+/* 80354DA4 00350A04 4E 80 00 20 */ blr
+
+.global ghiPostFileDiskStateDoPosting
+ghiPostFileDiskStateDoPosting:
+/* 80354DA8 00350A08 94 21 EF E0 */ stwu r1, -0x1020(r1)
+/* 80354DAC 00350A0C 7C 08 02 A6 */ mflr r0
+/* 80354DB0 00350A10 90 01 10 24 */ stw r0, 0x1024(r1)
+/* 80354DB4 00350A14 93 E1 10 1C */ stw r31, 0x101c(r1)
+/* 80354DB8 00350A18 7C 9F 23 78 */ mr r31, r4
+/* 80354DBC 00350A1C 93 C1 10 18 */ stw r30, 0x1018(r1)
+/* 80354DC0 00350A20 7C 7E 1B 78 */ mr r30, r3
+lbl_80354DC4:
+/* 80354DC4 00350A24 80 DE 00 08 */ lwz r6, 8(r30)
+/* 80354DC8 00350A28 38 61 00 10 */ addi r3, r1, 0x10
+/* 80354DCC 00350A2C 38 80 00 01 */ li r4, 1
+/* 80354DD0 00350A30 38 A0 10 00 */ li r5, 0x1000
+/* 80354DD4 00350A34 4B E7 47 B1 */ bl fread
+/* 80354DD8 00350A38 2C 03 00 00 */ cmpwi r3, 0
+/* 80354DDC 00350A3C 7C 65 1B 78 */ mr r5, r3
+/* 80354DE0 00350A40 41 81 00 1C */ bgt lbl_80354DFC
+/* 80354DE4 00350A44 38 60 00 01 */ li r3, 1
+/* 80354DE8 00350A48 38 00 00 0E */ li r0, 0xe
+/* 80354DEC 00350A4C 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80354DF0 00350A50 38 60 00 00 */ li r3, 0
+/* 80354DF4 00350A54 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80354DF8 00350A58 48 00 00 D8 */ b lbl_80354ED0
+lbl_80354DFC:
+/* 80354DFC 00350A5C 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80354E00 00350A60 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80354E04 00350A64 7C 64 1A 14 */ add r3, r4, r3
+/* 80354E08 00350A68 7C 03 00 00 */ cmpw r3, r0
+/* 80354E0C 00350A6C 90 7E 00 04 */ stw r3, 4(r30)
+/* 80354E10 00350A70 40 81 00 1C */ ble lbl_80354E2C
+/* 80354E14 00350A74 38 60 00 01 */ li r3, 1
+/* 80354E18 00350A78 38 00 00 0E */ li r0, 0xe
+/* 80354E1C 00350A7C 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80354E20 00350A80 38 60 00 00 */ li r3, 0
+/* 80354E24 00350A84 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80354E28 00350A88 48 00 00 A8 */ b lbl_80354ED0
+lbl_80354E2C:
+/* 80354E2C 00350A8C 7F E3 FB 78 */ mr r3, r31
+/* 80354E30 00350A90 38 81 00 10 */ addi r4, r1, 0x10
+/* 80354E34 00350A94 4B FF C8 05 */ bl ghiTrySendThenBuffer
+/* 80354E38 00350A98 2C 03 00 00 */ cmpwi r3, 0
+/* 80354E3C 00350A9C 40 82 00 0C */ bne lbl_80354E48
+/* 80354E40 00350AA0 38 60 00 00 */ li r3, 0
+/* 80354E44 00350AA4 48 00 00 8C */ b lbl_80354ED0
+lbl_80354E48:
+/* 80354E48 00350AA8 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80354E4C 00350AAC 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80354E50 00350AB0 7C 04 00 00 */ cmpw r4, r0
+/* 80354E54 00350AB4 40 82 00 70 */ bne lbl_80354EC4
+/* 80354E58 00350AB8 80 7F 01 60 */ lwz r3, 0x160(r31)
+/* 80354E5C 00350ABC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80354E60 00350AC0 2C 00 00 00 */ cmpwi r0, 0
+/* 80354E64 00350AC4 41 82 00 58 */ beq lbl_80354EBC
+/* 80354E68 00350AC8 38 00 00 00 */ li r0, 0
+/* 80354E6C 00350ACC B0 01 00 08 */ sth r0, 8(r1)
+/* 80354E70 00350AD0 98 01 00 0A */ stb r0, 0xa(r1)
+/* 80354E74 00350AD4 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80354E78 00350AD8 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 80354E7C 00350ADC 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 80354E80 00350AE0 7C 03 00 50 */ subf r0, r3, r0
+/* 80354E84 00350AE4 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80354E88 00350AE8 7C 00 1A 14 */ add r0, r0, r3
+/* 80354E8C 00350AEC 20 A0 00 04 */ subfic r5, r0, 4
+/* 80354E90 00350AF0 2C 05 00 04 */ cmpwi r5, 4
+/* 80354E94 00350AF4 41 82 00 28 */ beq lbl_80354EBC
+/* 80354E98 00350AF8 2C 05 00 00 */ cmpwi r5, 0
+/* 80354E9C 00350AFC 40 81 00 20 */ ble lbl_80354EBC
+/* 80354EA0 00350B00 7F E3 FB 78 */ mr r3, r31
+/* 80354EA4 00350B04 38 81 00 08 */ addi r4, r1, 8
+/* 80354EA8 00350B08 4B FF C7 91 */ bl ghiTrySendThenBuffer
+/* 80354EAC 00350B0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80354EB0 00350B10 40 82 00 0C */ bne lbl_80354EBC
+/* 80354EB4 00350B14 38 60 00 00 */ li r3, 0
+/* 80354EB8 00350B18 48 00 00 18 */ b lbl_80354ED0
+lbl_80354EBC:
+/* 80354EBC 00350B1C 38 60 00 01 */ li r3, 1
+/* 80354EC0 00350B20 48 00 00 10 */ b lbl_80354ED0
+lbl_80354EC4:
+/* 80354EC4 00350B24 2C 03 00 01 */ cmpwi r3, 1
+/* 80354EC8 00350B28 41 82 FE FC */ beq lbl_80354DC4
+/* 80354ECC 00350B2C 38 60 00 02 */ li r3, 2
+lbl_80354ED0:
+/* 80354ED0 00350B30 80 01 10 24 */ lwz r0, 0x1024(r1)
+/* 80354ED4 00350B34 83 E1 10 1C */ lwz r31, 0x101c(r1)
+/* 80354ED8 00350B38 83 C1 10 18 */ lwz r30, 0x1018(r1)
+/* 80354EDC 00350B3C 7C 08 03 A6 */ mtlr r0
+/* 80354EE0 00350B40 38 21 10 20 */ addi r1, r1, 0x1020
+/* 80354EE4 00350B44 4E 80 00 20 */ blr
+
+.global ghiPostFileMemoryStateDoPosting
+ghiPostFileMemoryStateDoPosting:
+/* 80354EE8 00350B48 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80354EEC 00350B4C 7C 08 02 A6 */ mflr r0
+/* 80354EF0 00350B50 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80354EF4 00350B54 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80354EF8 00350B58 7C 9F 23 78 */ mr r31, r4
+/* 80354EFC 00350B5C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80354F00 00350B60 7C 7E 1B 78 */ mr r30, r3
+/* 80354F04 00350B64 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80354F08 00350B68 80 C3 00 00 */ lwz r6, 0(r3)
+/* 80354F0C 00350B6C 80 A6 00 0C */ lwz r5, 0xc(r6)
+/* 80354F10 00350B70 2C 05 00 00 */ cmpwi r5, 0
+/* 80354F14 00350B74 40 82 00 0C */ bne lbl_80354F20
+/* 80354F18 00350B78 38 60 00 01 */ li r3, 1
+/* 80354F1C 00350B7C 48 00 01 A8 */ b lbl_803550C4
+lbl_80354F20:
+/* 80354F20 00350B80 80 04 01 94 */ lwz r0, 0x194(r4)
+/* 80354F24 00350B84 2C 00 00 00 */ cmpwi r0, 0
+/* 80354F28 00350B88 40 82 00 C8 */ bne lbl_80354FF0
+lbl_80354F2C:
+/* 80354F2C 00350B8C 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80354F30 00350B90 7F E3 FB 78 */ mr r3, r31
+/* 80354F34 00350B94 80 06 00 08 */ lwz r0, 8(r6)
+/* 80354F38 00350B98 7C A4 28 50 */ subf r5, r4, r5
+/* 80354F3C 00350B9C 7C 80 22 14 */ add r4, r0, r4
+/* 80354F40 00350BA0 4B FF C6 3D */ bl ghiDoSend
+/* 80354F44 00350BA4 2C 03 FF FF */ cmpwi r3, -1
+/* 80354F48 00350BA8 40 82 00 0C */ bne lbl_80354F54
+/* 80354F4C 00350BAC 38 60 00 00 */ li r3, 0
+/* 80354F50 00350BB0 48 00 01 74 */ b lbl_803550C4
+lbl_80354F54:
+/* 80354F54 00350BB4 80 1E 00 04 */ lwz r0, 4(r30)
+/* 80354F58 00350BB8 80 DE 00 00 */ lwz r6, 0(r30)
+/* 80354F5C 00350BBC 7C 00 1A 14 */ add r0, r0, r3
+/* 80354F60 00350BC0 90 1E 00 04 */ stw r0, 4(r30)
+/* 80354F64 00350BC4 80 A6 00 0C */ lwz r5, 0xc(r6)
+/* 80354F68 00350BC8 7C 05 00 00 */ cmpw r5, r0
+/* 80354F6C 00350BCC 40 82 00 74 */ bne lbl_80354FE0
+/* 80354F70 00350BD0 80 7F 01 60 */ lwz r3, 0x160(r31)
+/* 80354F74 00350BD4 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80354F78 00350BD8 2C 00 00 00 */ cmpwi r0, 0
+/* 80354F7C 00350BDC 41 82 00 5C */ beq lbl_80354FD8
+/* 80354F80 00350BE0 38 00 00 00 */ li r0, 0
+/* 80354F84 00350BE4 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 80354F88 00350BE8 98 01 00 0E */ stb r0, 0xe(r1)
+/* 80354F8C 00350BEC 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80354F90 00350BF0 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80354F94 00350BF4 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 80354F98 00350BF8 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 80354F9C 00350BFC 7C 03 00 50 */ subf r0, r3, r0
+/* 80354FA0 00350C00 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80354FA4 00350C04 7C 00 1A 14 */ add r0, r0, r3
+/* 80354FA8 00350C08 20 A0 00 04 */ subfic r5, r0, 4
+/* 80354FAC 00350C0C 2C 05 00 04 */ cmpwi r5, 4
+/* 80354FB0 00350C10 41 82 00 28 */ beq lbl_80354FD8
+/* 80354FB4 00350C14 2C 05 00 00 */ cmpwi r5, 0
+/* 80354FB8 00350C18 40 81 00 20 */ ble lbl_80354FD8
+/* 80354FBC 00350C1C 7F E3 FB 78 */ mr r3, r31
+/* 80354FC0 00350C20 38 81 00 0C */ addi r4, r1, 0xc
+/* 80354FC4 00350C24 4B FF C6 75 */ bl ghiTrySendThenBuffer
+/* 80354FC8 00350C28 2C 03 00 00 */ cmpwi r3, 0
+/* 80354FCC 00350C2C 40 82 00 0C */ bne lbl_80354FD8
+/* 80354FD0 00350C30 38 60 00 00 */ li r3, 0
+/* 80354FD4 00350C34 48 00 00 F0 */ b lbl_803550C4
+lbl_80354FD8:
+/* 80354FD8 00350C38 38 60 00 01 */ li r3, 1
+/* 80354FDC 00350C3C 48 00 00 E8 */ b lbl_803550C4
+lbl_80354FE0:
+/* 80354FE0 00350C40 2C 03 00 00 */ cmpwi r3, 0
+/* 80354FE4 00350C44 40 82 FF 48 */ bne lbl_80354F2C
+/* 80354FE8 00350C48 38 60 00 02 */ li r3, 2
+/* 80354FEC 00350C4C 48 00 00 D8 */ b lbl_803550C4
+lbl_80354FF0:
+/* 80354FF0 00350C50 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80354FF4 00350C54 3B A0 3F 01 */ li r29, 0x3f01
+/* 80354FF8 00350C58 7C 04 28 50 */ subf r0, r4, r5
+/* 80354FFC 00350C5C 2C 00 3F 01 */ cmpwi r0, 0x3f01
+/* 80355000 00350C60 40 80 00 08 */ bge lbl_80355008
+/* 80355004 00350C64 7C 1D 03 78 */ mr r29, r0
+lbl_80355008:
+/* 80355008 00350C68 80 06 00 08 */ lwz r0, 8(r6)
+/* 8035500C 00350C6C 7F E3 FB 78 */ mr r3, r31
+/* 80355010 00350C70 7F A5 EB 78 */ mr r5, r29
+/* 80355014 00350C74 7C 80 22 14 */ add r4, r0, r4
+/* 80355018 00350C78 4B FF C6 21 */ bl ghiTrySendThenBuffer
+/* 8035501C 00350C7C 2C 03 00 00 */ cmpwi r3, 0
+/* 80355020 00350C80 40 82 00 0C */ bne lbl_8035502C
+/* 80355024 00350C84 38 60 00 00 */ li r3, 0
+/* 80355028 00350C88 48 00 00 9C */ b lbl_803550C4
+lbl_8035502C:
+/* 8035502C 00350C8C 80 1E 00 04 */ lwz r0, 4(r30)
+/* 80355030 00350C90 80 DE 00 00 */ lwz r6, 0(r30)
+/* 80355034 00350C94 7C 00 EA 14 */ add r0, r0, r29
+/* 80355038 00350C98 90 1E 00 04 */ stw r0, 4(r30)
+/* 8035503C 00350C9C 80 A6 00 0C */ lwz r5, 0xc(r6)
+/* 80355040 00350CA0 7C 05 00 00 */ cmpw r5, r0
+/* 80355044 00350CA4 40 82 00 74 */ bne lbl_803550B8
+/* 80355048 00350CA8 80 7F 01 60 */ lwz r3, 0x160(r31)
+/* 8035504C 00350CAC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80355050 00350CB0 2C 00 00 00 */ cmpwi r0, 0
+/* 80355054 00350CB4 41 82 00 5C */ beq lbl_803550B0
+/* 80355058 00350CB8 38 00 00 00 */ li r0, 0
+/* 8035505C 00350CBC B0 01 00 08 */ sth r0, 8(r1)
+/* 80355060 00350CC0 98 01 00 0A */ stb r0, 0xa(r1)
+/* 80355064 00350CC4 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80355068 00350CC8 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8035506C 00350CCC 54 60 F0 02 */ slwi r0, r3, 0x1e
+/* 80355070 00350CD0 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 80355074 00350CD4 7C 03 00 50 */ subf r0, r3, r0
+/* 80355078 00350CD8 54 00 10 3E */ rotlwi r0, r0, 2
+/* 8035507C 00350CDC 7C 00 1A 14 */ add r0, r0, r3
+/* 80355080 00350CE0 20 A0 00 04 */ subfic r5, r0, 4
+/* 80355084 00350CE4 2C 05 00 04 */ cmpwi r5, 4
+/* 80355088 00350CE8 41 82 00 28 */ beq lbl_803550B0
+/* 8035508C 00350CEC 2C 05 00 00 */ cmpwi r5, 0
+/* 80355090 00350CF0 40 81 00 20 */ ble lbl_803550B0
+/* 80355094 00350CF4 7F E3 FB 78 */ mr r3, r31
+/* 80355098 00350CF8 38 81 00 08 */ addi r4, r1, 8
+/* 8035509C 00350CFC 4B FF C5 9D */ bl ghiTrySendThenBuffer
+/* 803550A0 00350D00 2C 03 00 00 */ cmpwi r3, 0
+/* 803550A4 00350D04 40 82 00 0C */ bne lbl_803550B0
+/* 803550A8 00350D08 38 60 00 00 */ li r3, 0
+/* 803550AC 00350D0C 48 00 00 18 */ b lbl_803550C4
+lbl_803550B0:
+/* 803550B0 00350D10 38 60 00 01 */ li r3, 1
+/* 803550B4 00350D14 48 00 00 10 */ b lbl_803550C4
+lbl_803550B8:
+/* 803550B8 00350D18 2C 03 00 01 */ cmpwi r3, 1
+/* 803550BC 00350D1C 41 82 FF 34 */ beq lbl_80354FF0
+/* 803550C0 00350D20 38 60 00 02 */ li r3, 2
+lbl_803550C4:
+/* 803550C4 00350D24 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803550C8 00350D28 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803550CC 00350D2C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803550D0 00350D30 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803550D4 00350D34 7C 08 03 A6 */ mtlr r0
+/* 803550D8 00350D38 38 21 00 20 */ addi r1, r1, 0x20
+/* 803550DC 00350D3C 4E 80 00 20 */ blr
+
+.global ghiPostStateDoPosting
+ghiPostStateDoPosting:
+/* 803550E0 00350D40 94 21 F7 C0 */ stwu r1, -0x840(r1)
+/* 803550E4 00350D44 7C 08 02 A6 */ mflr r0
+/* 803550E8 00350D48 90 01 08 44 */ stw r0, 0x844(r1)
+/* 803550EC 00350D4C 39 61 08 40 */ addi r11, r1, 0x840
+/* 803550F0 00350D50 4B E7 20 35 */ bl _savegpr_26
+/* 803550F4 00350D54 80 03 00 04 */ lwz r0, 4(r3)
+/* 803550F8 00350D58 3F E0 80 45 */ lis r31, lbl_8044BFF8@ha
+/* 803550FC 00350D5C 7C 7B 1B 78 */ mr r27, r3
+/* 80355100 00350D60 7C 9C 23 78 */ mr r28, r4
+/* 80355104 00350D64 2C 00 FF FF */ cmpwi r0, -1
+/* 80355108 00350D68 3B FF BF F8 */ addi r31, r31, lbl_8044BFF8@l
+/* 8035510C 00350D6C 3B A0 00 00 */ li r29, 0
+/* 80355110 00350D70 40 82 05 6C */ bne lbl_8035567C
+/* 80355114 00350D74 38 00 00 00 */ li r0, 0
+/* 80355118 00350D78 90 03 00 04 */ stw r0, 4(r3)
+/* 8035511C 00350D7C 80 84 01 60 */ lwz r4, 0x160(r4)
+/* 80355120 00350D80 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 80355124 00350D84 2C 00 00 00 */ cmpwi r0, 0
+/* 80355128 00350D88 40 82 00 50 */ bne lbl_80355178
+/* 8035512C 00350D8C 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 80355130 00350D90 2C 00 00 00 */ cmpwi r0, 0
+/* 80355134 00350D94 40 82 00 44 */ bne lbl_80355178
+/* 80355138 00350D98 2C 05 00 00 */ cmpwi r5, 0
+/* 8035513C 00350D9C 41 82 00 20 */ beq lbl_8035515C
+/* 80355140 00350DA0 80 BB 00 00 */ lwz r5, 0(r27)
+/* 80355144 00350DA4 38 61 00 20 */ addi r3, r1, 0x20
+/* 80355148 00350DA8 38 8D 93 C8 */ addi r4, r13, lbl_8063E688-_SDA_BASE_
+/* 8035514C 00350DAC 80 A5 00 04 */ lwz r5, 4(r5)
+/* 80355150 00350DB0 4C C6 31 82 */ crclr 6
+/* 80355154 00350DB4 4B E7 79 A9 */ bl sprintf
+/* 80355158 00350DB8 48 00 04 5C */ b lbl_803555B4
+lbl_8035515C:
+/* 8035515C 00350DBC 80 BB 00 00 */ lwz r5, 0(r27)
+/* 80355160 00350DC0 38 61 00 20 */ addi r3, r1, 0x20
+/* 80355164 00350DC4 38 8D 93 CC */ addi r4, r13, lbl_8063E68C-_SDA_BASE_
+/* 80355168 00350DC8 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8035516C 00350DCC 4C C6 31 82 */ crclr 6
+/* 80355170 00350DD0 4B E7 79 8D */ bl sprintf
+/* 80355174 00350DD4 48 00 04 40 */ b lbl_803555B4
+lbl_80355178:
+/* 80355178 00350DD8 81 03 00 00 */ lwz r8, 0(r3)
+/* 8035517C 00350DDC 80 E8 00 00 */ lwz r7, 0(r8)
+/* 80355180 00350DE0 2C 07 00 00 */ cmpwi r7, 0
+/* 80355184 00350DE4 40 82 00 2C */ bne lbl_803551B0
+/* 80355188 00350DE8 2C 05 00 00 */ cmpwi r5, 0
+/* 8035518C 00350DEC 38 61 00 20 */ addi r3, r1, 0x20
+/* 80355190 00350DF0 38 9F 01 38 */ addi r4, r31, 0x138
+/* 80355194 00350DF4 38 BF 01 90 */ addi r5, r31, 0x190
+/* 80355198 00350DF8 41 82 00 08 */ beq lbl_803551A0
+/* 8035519C 00350DFC 38 BF 01 68 */ addi r5, r31, 0x168
+lbl_803551A0:
+/* 803551A0 00350E00 80 C8 00 04 */ lwz r6, 4(r8)
+/* 803551A4 00350E04 4C C6 31 82 */ crclr 6
+/* 803551A8 00350E08 4B E7 79 55 */ bl sprintf
+/* 803551AC 00350E0C 48 00 04 08 */ b lbl_803555B4
+lbl_803551B0:
+/* 803551B0 00350E10 2C 07 00 03 */ cmpwi r7, 3
+/* 803551B4 00350E14 40 82 01 D8 */ bne lbl_8035538C
+/* 803551B8 00350E18 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 803551BC 00350E1C 2C 00 00 00 */ cmpwi r0, 0
+/* 803551C0 00350E20 41 82 01 C0 */ beq lbl_80355380
+/* 803551C4 00350E24 38 00 00 08 */ li r0, 8
+/* 803551C8 00350E28 2C 05 00 00 */ cmpwi r5, 0
+/* 803551CC 00350E2C 98 01 00 14 */ stb r0, 0x14(r1)
+/* 803551D0 00350E30 41 82 00 0C */ beq lbl_803551DC
+/* 803551D4 00350E34 60 00 00 04 */ ori r0, r0, 4
+/* 803551D8 00350E38 98 01 00 14 */ stb r0, 0x14(r1)
+lbl_803551DC:
+/* 803551DC 00350E3C 2C 06 00 00 */ cmpwi r6, 0
+/* 803551E0 00350E40 41 82 00 10 */ beq lbl_803551F0
+/* 803551E4 00350E44 88 01 00 14 */ lbz r0, 0x14(r1)
+/* 803551E8 00350E48 60 00 00 02 */ ori r0, r0, 2
+/* 803551EC 00350E4C 98 01 00 14 */ stb r0, 0x14(r1)
+lbl_803551F0:
+/* 803551F0 00350E50 38 00 00 20 */ li r0, 0x20
+/* 803551F4 00350E54 3B C0 00 00 */ li r30, 0
+/* 803551F8 00350E58 98 01 00 15 */ stb r0, 0x15(r1)
+/* 803551FC 00350E5C 38 6D 93 C0 */ addi r3, r13, lbl_8063E680-_SDA_BASE_
+/* 80355200 00350E60 B3 C1 00 16 */ sth r30, 0x16(r1)
+/* 80355204 00350E64 4B E7 19 61 */ bl strlen
+/* 80355208 00350E68 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 8035520C 00350E6C 4B FA 1B 71 */ bl SOHtoNs
+/* 80355210 00350E70 B0 61 00 18 */ sth r3, 0x18(r1)
+/* 80355214 00350E74 38 7F 00 F4 */ addi r3, r31, 0xf4
+/* 80355218 00350E78 4B E7 19 4D */ bl strlen
+/* 8035521C 00350E7C 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 80355220 00350E80 4B FA 1B 5D */ bl SOHtoNs
+/* 80355224 00350E84 B0 61 00 1A */ sth r3, 0x1a(r1)
+/* 80355228 00350E88 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8035522C 00350E8C 80 63 00 08 */ lwz r3, 8(r3)
+/* 80355230 00350E90 4B FE 7B B5 */ bl gsXmlWriterGetDataLength
+/* 80355234 00350E94 4B FA 1B 45 */ bl SOHtoNl
+/* 80355238 00350E98 90 61 00 1C */ stw r3, 0x1c(r1)
+/* 8035523C 00350E9C 38 61 00 20 */ addi r3, r1, 0x20
+/* 80355240 00350EA0 38 81 00 14 */ addi r4, r1, 0x14
+/* 80355244 00350EA4 38 A0 00 0C */ li r5, 0xc
+/* 80355248 00350EA8 4B CA ED B9 */ bl memcpy
+/* 8035524C 00350EAC 38 61 00 2C */ addi r3, r1, 0x2c
+/* 80355250 00350EB0 38 8D 93 C0 */ addi r4, r13, lbl_8063E680-_SDA_BASE_
+/* 80355254 00350EB4 4B E7 90 7D */ bl strcpy
+/* 80355258 00350EB8 38 6D 93 C0 */ addi r3, r13, lbl_8063E680-_SDA_BASE_
+/* 8035525C 00350EBC 4B E7 19 09 */ bl strlen
+/* 80355260 00350EC0 3B A3 00 0C */ addi r29, r3, 0xc
+/* 80355264 00350EC4 38 6D 93 C0 */ addi r3, r13, lbl_8063E680-_SDA_BASE_
+/* 80355268 00350EC8 4B E7 18 FD */ bl strlen
+/* 8035526C 00350ECC 54 60 07 BE */ clrlwi r0, r3, 0x1e
+/* 80355270 00350ED0 20 80 00 04 */ subfic r4, r0, 4
+/* 80355274 00350ED4 2C 04 00 04 */ cmpwi r4, 4
+/* 80355278 00350ED8 41 82 00 68 */ beq lbl_803552E0
+/* 8035527C 00350EDC 2C 04 00 00 */ cmpwi r4, 0
+/* 80355280 00350EE0 38 01 00 20 */ addi r0, r1, 0x20
+/* 80355284 00350EE4 7C 60 EA 14 */ add r3, r0, r29
+/* 80355288 00350EE8 40 81 00 58 */ ble lbl_803552E0
+/* 8035528C 00350EEC 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
+/* 80355290 00350EF0 7C 09 03 A6 */ mtctr r0
+/* 80355294 00350EF4 41 82 00 38 */ beq lbl_803552CC
+lbl_80355298:
+/* 80355298 00350EF8 9B C3 00 00 */ stb r30, 0(r3)
+/* 8035529C 00350EFC 3B BD 00 08 */ addi r29, r29, 8
+/* 803552A0 00350F00 9B C3 00 01 */ stb r30, 1(r3)
+/* 803552A4 00350F04 9B C3 00 02 */ stb r30, 2(r3)
+/* 803552A8 00350F08 9B C3 00 03 */ stb r30, 3(r3)
+/* 803552AC 00350F0C 9B C3 00 04 */ stb r30, 4(r3)
+/* 803552B0 00350F10 9B C3 00 05 */ stb r30, 5(r3)
+/* 803552B4 00350F14 9B C3 00 06 */ stb r30, 6(r3)
+/* 803552B8 00350F18 9B C3 00 07 */ stb r30, 7(r3)
+/* 803552BC 00350F1C 38 63 00 08 */ addi r3, r3, 8
+/* 803552C0 00350F20 42 00 FF D8 */ bdnz lbl_80355298
+/* 803552C4 00350F24 70 84 00 07 */ andi. r4, r4, 7
+/* 803552C8 00350F28 41 82 00 18 */ beq lbl_803552E0
+lbl_803552CC:
+/* 803552CC 00350F2C 7C 89 03 A6 */ mtctr r4
+lbl_803552D0:
+/* 803552D0 00350F30 9B C3 00 00 */ stb r30, 0(r3)
+/* 803552D4 00350F34 3B BD 00 01 */ addi r29, r29, 1
+/* 803552D8 00350F38 38 63 00 01 */ addi r3, r3, 1
+/* 803552DC 00350F3C 42 00 FF F4 */ bdnz lbl_803552D0
+lbl_803552E0:
+/* 803552E0 00350F40 38 61 00 20 */ addi r3, r1, 0x20
+/* 803552E4 00350F44 38 9F 00 F4 */ addi r4, r31, 0xf4
+/* 803552E8 00350F48 7C 63 EA 14 */ add r3, r3, r29
+/* 803552EC 00350F4C 4B E7 8F E5 */ bl strcpy
+/* 803552F0 00350F50 38 7F 00 F4 */ addi r3, r31, 0xf4
+/* 803552F4 00350F54 4B E7 18 71 */ bl strlen
+/* 803552F8 00350F58 7F BD 1A 14 */ add r29, r29, r3
+/* 803552FC 00350F5C 38 7F 00 F4 */ addi r3, r31, 0xf4
+/* 80355300 00350F60 4B E7 18 65 */ bl strlen
+/* 80355304 00350F64 54 60 07 BE */ clrlwi r0, r3, 0x1e
+/* 80355308 00350F68 20 A0 00 04 */ subfic r5, r0, 4
+/* 8035530C 00350F6C 2C 05 00 04 */ cmpwi r5, 4
+/* 80355310 00350F70 41 82 02 A4 */ beq lbl_803555B4
+/* 80355314 00350F74 2C 05 00 00 */ cmpwi r5, 0
+/* 80355318 00350F78 38 01 00 20 */ addi r0, r1, 0x20
+/* 8035531C 00350F7C 38 80 00 00 */ li r4, 0
+/* 80355320 00350F80 7C 60 EA 14 */ add r3, r0, r29
+/* 80355324 00350F84 40 81 02 90 */ ble lbl_803555B4
+/* 80355328 00350F88 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
+/* 8035532C 00350F8C 7C 09 03 A6 */ mtctr r0
+/* 80355330 00350F90 41 82 00 38 */ beq lbl_80355368
+lbl_80355334:
+/* 80355334 00350F94 98 83 00 00 */ stb r4, 0(r3)
+/* 80355338 00350F98 3B BD 00 08 */ addi r29, r29, 8
+/* 8035533C 00350F9C 98 83 00 01 */ stb r4, 1(r3)
+/* 80355340 00350FA0 98 83 00 02 */ stb r4, 2(r3)
+/* 80355344 00350FA4 98 83 00 03 */ stb r4, 3(r3)
+/* 80355348 00350FA8 98 83 00 04 */ stb r4, 4(r3)
+/* 8035534C 00350FAC 98 83 00 05 */ stb r4, 5(r3)
+/* 80355350 00350FB0 98 83 00 06 */ stb r4, 6(r3)
+/* 80355354 00350FB4 98 83 00 07 */ stb r4, 7(r3)
+/* 80355358 00350FB8 38 63 00 08 */ addi r3, r3, 8
+/* 8035535C 00350FBC 42 00 FF D8 */ bdnz lbl_80355334
+/* 80355360 00350FC0 70 A5 00 07 */ andi. r5, r5, 7
+/* 80355364 00350FC4 41 82 02 50 */ beq lbl_803555B4
+lbl_80355368:
+/* 80355368 00350FC8 7C A9 03 A6 */ mtctr r5
+lbl_8035536C:
+/* 8035536C 00350FCC 98 83 00 00 */ stb r4, 0(r3)
+/* 80355370 00350FD0 3B BD 00 01 */ addi r29, r29, 1
+/* 80355374 00350FD4 38 63 00 01 */ addi r3, r3, 1
+/* 80355378 00350FD8 42 00 FF F4 */ bdnz lbl_8035536C
+/* 8035537C 00350FDC 48 00 02 38 */ b lbl_803555B4
+lbl_80355380:
+/* 80355380 00350FE0 38 00 00 00 */ li r0, 0
+/* 80355384 00350FE4 98 01 00 20 */ stb r0, 0x20(r1)
+/* 80355388 00350FE8 48 00 02 2C */ b lbl_803555B4
+lbl_8035538C:
+/* 8035538C 00350FEC 38 07 FF FF */ addi r0, r7, -1
+/* 80355390 00350FF0 28 00 00 01 */ cmplwi r0, 1
+/* 80355394 00350FF4 41 81 02 20 */ bgt lbl_803555B4
+/* 80355398 00350FF8 2C 07 00 01 */ cmpwi r7, 1
+/* 8035539C 00350FFC 40 82 00 14 */ bne lbl_803553B0
+/* 803553A0 00351000 83 43 00 0C */ lwz r26, 0xc(r3)
+/* 803553A4 00351004 80 E8 00 0C */ lwz r7, 0xc(r8)
+/* 803553A8 00351008 83 C8 00 10 */ lwz r30, 0x10(r8)
+/* 803553AC 0035100C 48 00 00 10 */ b lbl_803553BC
+lbl_803553B0:
+/* 803553B0 00351010 83 48 00 0C */ lwz r26, 0xc(r8)
+/* 803553B4 00351014 80 E8 00 10 */ lwz r7, 0x10(r8)
+/* 803553B8 00351018 83 C8 00 14 */ lwz r30, 0x14(r8)
+lbl_803553BC:
+/* 803553BC 0035101C 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 803553C0 00351020 2C 00 00 00 */ cmpwi r0, 0
+/* 803553C4 00351024 41 82 01 C8 */ beq lbl_8035558C
+/* 803553C8 00351028 38 00 00 08 */ li r0, 8
+/* 803553CC 0035102C 2C 05 00 00 */ cmpwi r5, 0
+/* 803553D0 00351030 98 01 00 08 */ stb r0, 8(r1)
+/* 803553D4 00351034 41 82 00 0C */ beq lbl_803553E0
+/* 803553D8 00351038 60 00 00 04 */ ori r0, r0, 4
+/* 803553DC 0035103C 98 01 00 08 */ stb r0, 8(r1)
+lbl_803553E0:
+/* 803553E0 00351040 2C 06 00 00 */ cmpwi r6, 0
+/* 803553E4 00351044 41 82 00 10 */ beq lbl_803553F4
+/* 803553E8 00351048 88 01 00 08 */ lbz r0, 8(r1)
+/* 803553EC 0035104C 60 00 00 02 */ ori r0, r0, 2
+/* 803553F0 00351050 98 01 00 08 */ stb r0, 8(r1)
+lbl_803553F4:
+/* 803553F4 00351054 38 00 00 10 */ li r0, 0x10
+/* 803553F8 00351058 3B E0 00 00 */ li r31, 0
+/* 803553FC 0035105C 98 01 00 09 */ stb r0, 9(r1)
+/* 80355400 00351060 B3 E1 00 0A */ sth r31, 0xa(r1)
+/* 80355404 00351064 80 63 00 00 */ lwz r3, 0(r3)
+/* 80355408 00351068 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035540C 0035106C 4B E7 17 59 */ bl strlen
+/* 80355410 00351070 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 80355414 00351074 4B FA 19 69 */ bl SOHtoNs
+/* 80355418 00351078 B0 61 00 0C */ sth r3, 0xc(r1)
+/* 8035541C 0035107C 7F C3 F3 78 */ mr r3, r30
+/* 80355420 00351080 4B E7 17 45 */ bl strlen
+/* 80355424 00351084 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 80355428 00351088 4B FA 19 55 */ bl SOHtoNs
+/* 8035542C 0035108C B0 61 00 0E */ sth r3, 0xe(r1)
+/* 80355430 00351090 7F 43 D3 78 */ mr r3, r26
+/* 80355434 00351094 4B FA 19 45 */ bl SOHtoNl
+/* 80355438 00351098 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8035543C 0035109C 38 61 00 20 */ addi r3, r1, 0x20
+/* 80355440 003510A0 38 81 00 08 */ addi r4, r1, 8
+/* 80355444 003510A4 38 A0 00 0C */ li r5, 0xc
+/* 80355448 003510A8 4B CA EB B9 */ bl memcpy
+/* 8035544C 003510AC 80 9B 00 00 */ lwz r4, 0(r27)
+/* 80355450 003510B0 38 61 00 2C */ addi r3, r1, 0x2c
+/* 80355454 003510B4 80 84 00 04 */ lwz r4, 4(r4)
+/* 80355458 003510B8 4B E7 8E 79 */ bl strcpy
+/* 8035545C 003510BC 80 7B 00 00 */ lwz r3, 0(r27)
+/* 80355460 003510C0 83 43 00 04 */ lwz r26, 4(r3)
+/* 80355464 003510C4 7F 43 D3 78 */ mr r3, r26
+/* 80355468 003510C8 4B E7 16 FD */ bl strlen
+/* 8035546C 003510CC 3B A3 00 0C */ addi r29, r3, 0xc
+/* 80355470 003510D0 7F 43 D3 78 */ mr r3, r26
+/* 80355474 003510D4 4B E7 16 F1 */ bl strlen
+/* 80355478 003510D8 54 60 07 BE */ clrlwi r0, r3, 0x1e
+/* 8035547C 003510DC 20 80 00 04 */ subfic r4, r0, 4
+/* 80355480 003510E0 2C 04 00 04 */ cmpwi r4, 4
+/* 80355484 003510E4 41 82 00 68 */ beq lbl_803554EC
+/* 80355488 003510E8 2C 04 00 00 */ cmpwi r4, 0
+/* 8035548C 003510EC 38 01 00 20 */ addi r0, r1, 0x20
+/* 80355490 003510F0 7C 60 EA 14 */ add r3, r0, r29
+/* 80355494 003510F4 40 81 00 58 */ ble lbl_803554EC
+/* 80355498 003510F8 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f
+/* 8035549C 003510FC 7C 09 03 A6 */ mtctr r0
+/* 803554A0 00351100 41 82 00 38 */ beq lbl_803554D8
+lbl_803554A4:
+/* 803554A4 00351104 9B E3 00 00 */ stb r31, 0(r3)
+/* 803554A8 00351108 3B BD 00 08 */ addi r29, r29, 8
+/* 803554AC 0035110C 9B E3 00 01 */ stb r31, 1(r3)
+/* 803554B0 00351110 9B E3 00 02 */ stb r31, 2(r3)
+/* 803554B4 00351114 9B E3 00 03 */ stb r31, 3(r3)
+/* 803554B8 00351118 9B E3 00 04 */ stb r31, 4(r3)
+/* 803554BC 0035111C 9B E3 00 05 */ stb r31, 5(r3)
+/* 803554C0 00351120 9B E3 00 06 */ stb r31, 6(r3)
+/* 803554C4 00351124 9B E3 00 07 */ stb r31, 7(r3)
+/* 803554C8 00351128 38 63 00 08 */ addi r3, r3, 8
+/* 803554CC 0035112C 42 00 FF D8 */ bdnz lbl_803554A4
+/* 803554D0 00351130 70 84 00 07 */ andi. r4, r4, 7
+/* 803554D4 00351134 41 82 00 18 */ beq lbl_803554EC
+lbl_803554D8:
+/* 803554D8 00351138 7C 89 03 A6 */ mtctr r4
+lbl_803554DC:
+/* 803554DC 0035113C 9B E3 00 00 */ stb r31, 0(r3)
+/* 803554E0 00351140 3B BD 00 01 */ addi r29, r29, 1
+/* 803554E4 00351144 38 63 00 01 */ addi r3, r3, 1
+/* 803554E8 00351148 42 00 FF F4 */ bdnz lbl_803554DC
+lbl_803554EC:
+/* 803554EC 0035114C 38 61 00 20 */ addi r3, r1, 0x20
+/* 803554F0 00351150 7F C4 F3 78 */ mr r4, r30
+/* 803554F4 00351154 7C 63 EA 14 */ add r3, r3, r29
+/* 803554F8 00351158 4B E7 8D D9 */ bl strcpy
+/* 803554FC 0035115C 7F C3 F3 78 */ mr r3, r30
+/* 80355500 00351160 4B E7 16 65 */ bl strlen
+/* 80355504 00351164 7F BD 1A 14 */ add r29, r29, r3
+/* 80355508 00351168 7F C3 F3 78 */ mr r3, r30
+/* 8035550C 0035116C 4B E7 16 59 */ bl strlen
+/* 80355510 00351170 54 60 07 BE */ clrlwi r0, r3, 0x1e
+/* 80355514 00351174 20 A0 00 04 */ subfic r5, r0, 4
+/* 80355518 00351178 2C 05 00 04 */ cmpwi r5, 4
+/* 8035551C 0035117C 41 82 00 98 */ beq lbl_803555B4
+/* 80355520 00351180 2C 05 00 00 */ cmpwi r5, 0
+/* 80355524 00351184 38 01 00 20 */ addi r0, r1, 0x20
+/* 80355528 00351188 38 80 00 00 */ li r4, 0
+/* 8035552C 0035118C 7C 60 EA 14 */ add r3, r0, r29
+/* 80355530 00351190 40 81 00 84 */ ble lbl_803555B4
+/* 80355534 00351194 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
+/* 80355538 00351198 7C 09 03 A6 */ mtctr r0
+/* 8035553C 0035119C 41 82 00 38 */ beq lbl_80355574
+lbl_80355540:
+/* 80355540 003511A0 98 83 00 00 */ stb r4, 0(r3)
+/* 80355544 003511A4 3B BD 00 08 */ addi r29, r29, 8
+/* 80355548 003511A8 98 83 00 01 */ stb r4, 1(r3)
+/* 8035554C 003511AC 98 83 00 02 */ stb r4, 2(r3)
+/* 80355550 003511B0 98 83 00 03 */ stb r4, 3(r3)
+/* 80355554 003511B4 98 83 00 04 */ stb r4, 4(r3)
+/* 80355558 003511B8 98 83 00 05 */ stb r4, 5(r3)
+/* 8035555C 003511BC 98 83 00 06 */ stb r4, 6(r3)
+/* 80355560 003511C0 98 83 00 07 */ stb r4, 7(r3)
+/* 80355564 003511C4 38 63 00 08 */ addi r3, r3, 8
+/* 80355568 003511C8 42 00 FF D8 */ bdnz lbl_80355540
+/* 8035556C 003511CC 70 A5 00 07 */ andi. r5, r5, 7
+/* 80355570 003511D0 41 82 00 44 */ beq lbl_803555B4
+lbl_80355574:
+/* 80355574 003511D4 7C A9 03 A6 */ mtctr r5
+lbl_80355578:
+/* 80355578 003511D8 98 83 00 00 */ stb r4, 0(r3)
+/* 8035557C 003511DC 3B BD 00 01 */ addi r29, r29, 1
+/* 80355580 003511E0 38 63 00 01 */ addi r3, r3, 1
+/* 80355584 003511E4 42 00 FF F4 */ bdnz lbl_80355578
+/* 80355588 003511E8 48 00 00 2C */ b lbl_803555B4
+lbl_8035558C:
+/* 8035558C 003511EC 2C 05 00 00 */ cmpwi r5, 0
+/* 80355590 003511F0 38 61 00 20 */ addi r3, r1, 0x20
+/* 80355594 003511F4 38 9F 01 BC */ addi r4, r31, 0x1bc
+/* 80355598 003511F8 38 BF 01 90 */ addi r5, r31, 0x190
+/* 8035559C 003511FC 41 82 00 08 */ beq lbl_803555A4
+/* 803555A0 00351200 38 BF 01 68 */ addi r5, r31, 0x168
+lbl_803555A4:
+/* 803555A4 00351204 80 C8 00 04 */ lwz r6, 4(r8)
+/* 803555A8 00351208 7F C8 F3 78 */ mr r8, r30
+/* 803555AC 0035120C 4C C6 31 82 */ crclr 6
+/* 803555B0 00351210 4B E7 75 4D */ bl sprintf
+lbl_803555B4:
+/* 803555B4 00351214 80 1C 01 94 */ lwz r0, 0x194(r28)
+/* 803555B8 00351218 2C 00 00 00 */ cmpwi r0, 0
+/* 803555BC 0035121C 40 82 00 54 */ bne lbl_80355610
+/* 803555C0 00351220 2C 1D 00 00 */ cmpwi r29, 0
+/* 803555C4 00351224 40 82 00 10 */ bne lbl_803555D4
+/* 803555C8 00351228 38 61 00 20 */ addi r3, r1, 0x20
+/* 803555CC 0035122C 4B E7 15 99 */ bl strlen
+/* 803555D0 00351230 7C 7D 1B 78 */ mr r29, r3
+lbl_803555D4:
+/* 803555D4 00351234 7F 83 E3 78 */ mr r3, r28
+/* 803555D8 00351238 7F A5 EB 78 */ mr r5, r29
+/* 803555DC 0035123C 38 81 00 20 */ addi r4, r1, 0x20
+/* 803555E0 00351240 4B FF C0 59 */ bl ghiTrySendThenBuffer
+/* 803555E4 00351244 2C 03 00 00 */ cmpwi r3, 0
+/* 803555E8 00351248 40 82 00 0C */ bne lbl_803555F4
+/* 803555EC 0035124C 38 60 00 00 */ li r3, 0
+/* 803555F0 00351250 48 00 00 E8 */ b lbl_803556D8
+lbl_803555F4:
+/* 803555F4 00351254 2C 03 00 02 */ cmpwi r3, 2
+/* 803555F8 00351258 40 82 00 0C */ bne lbl_80355604
+/* 803555FC 0035125C 38 60 00 02 */ li r3, 2
+/* 80355600 00351260 48 00 00 D8 */ b lbl_803556D8
+lbl_80355604:
+/* 80355604 00351264 38 7C 00 54 */ addi r3, r28, 0x54
+/* 80355608 00351268 4B FF BA 29 */ bl ghiResetBuffer
+/* 8035560C 0035126C 48 00 00 70 */ b lbl_8035567C
+lbl_80355610:
+/* 80355610 00351270 2C 1D 00 00 */ cmpwi r29, 0
+/* 80355614 00351274 40 82 00 10 */ bne lbl_80355624
+/* 80355618 00351278 38 61 00 20 */ addi r3, r1, 0x20
+/* 8035561C 0035127C 4B E7 15 49 */ bl strlen
+/* 80355620 00351280 7C 7D 1B 78 */ mr r29, r3
+lbl_80355624:
+/* 80355624 00351284 7F A5 EB 78 */ mr r5, r29
+/* 80355628 00351288 38 7C 00 54 */ addi r3, r28, 0x54
+/* 8035562C 0035128C 38 81 00 20 */ addi r4, r1, 0x20
+/* 80355630 00351290 4B FF B5 FD */ bl ghiEncryptDataToBuffer
+/* 80355634 00351294 2C 03 00 00 */ cmpwi r3, 0
+/* 80355638 00351298 40 82 00 0C */ bne lbl_80355644
+/* 8035563C 0035129C 38 60 00 00 */ li r3, 0
+/* 80355640 003512A0 48 00 00 98 */ b lbl_803556D8
+lbl_80355644:
+/* 80355644 003512A4 7F 83 E3 78 */ mr r3, r28
+/* 80355648 003512A8 4B FF BA 0D */ bl ghiSendBufferedData
+/* 8035564C 003512AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80355650 003512B0 40 82 00 0C */ bne lbl_8035565C
+/* 80355654 003512B4 38 60 00 00 */ li r3, 0
+/* 80355658 003512B8 48 00 00 80 */ b lbl_803556D8
+lbl_8035565C:
+/* 8035565C 003512BC 80 7C 00 64 */ lwz r3, 0x64(r28)
+/* 80355660 003512C0 80 1C 00 60 */ lwz r0, 0x60(r28)
+/* 80355664 003512C4 7C 03 00 00 */ cmpw r3, r0
+/* 80355668 003512C8 40 80 00 0C */ bge lbl_80355674
+/* 8035566C 003512CC 38 60 00 02 */ li r3, 2
+/* 80355670 003512D0 48 00 00 68 */ b lbl_803556D8
+lbl_80355674:
+/* 80355674 003512D4 38 7C 00 54 */ addi r3, r28, 0x54
+/* 80355678 003512D8 4B FF B9 B9 */ bl ghiResetBuffer
+lbl_8035567C:
+/* 8035567C 003512DC 80 7B 00 00 */ lwz r3, 0(r27)
+/* 80355680 003512E0 80 03 00 00 */ lwz r0, 0(r3)
+/* 80355684 003512E4 2C 00 00 00 */ cmpwi r0, 0
+/* 80355688 003512E8 40 82 00 14 */ bne lbl_8035569C
+/* 8035568C 003512EC 7F 63 DB 78 */ mr r3, r27
+/* 80355690 003512F0 7F 84 E3 78 */ mr r4, r28
+/* 80355694 003512F4 4B FF F3 D5 */ bl ghiPostStringStateDoPosting
+/* 80355698 003512F8 48 00 00 40 */ b lbl_803556D8
+lbl_8035569C:
+/* 8035569C 003512FC 2C 00 00 03 */ cmpwi r0, 3
+/* 803556A0 00351300 40 82 00 14 */ bne lbl_803556B4
+/* 803556A4 00351304 7F 63 DB 78 */ mr r3, r27
+/* 803556A8 00351308 7F 84 E3 78 */ mr r4, r28
+/* 803556AC 0035130C 4B FF F5 69 */ bl ghiPostXmlStateDoPosting
+/* 803556B0 00351310 48 00 00 28 */ b lbl_803556D8
+lbl_803556B4:
+/* 803556B4 00351314 2C 00 00 01 */ cmpwi r0, 1
+/* 803556B8 00351318 40 82 00 14 */ bne lbl_803556CC
+/* 803556BC 0035131C 7F 63 DB 78 */ mr r3, r27
+/* 803556C0 00351320 7F 84 E3 78 */ mr r4, r28
+/* 803556C4 00351324 4B FF F6 E5 */ bl ghiPostFileDiskStateDoPosting
+/* 803556C8 00351328 48 00 00 10 */ b lbl_803556D8
+lbl_803556CC:
+/* 803556CC 0035132C 7F 63 DB 78 */ mr r3, r27
+/* 803556D0 00351330 7F 84 E3 78 */ mr r4, r28
+/* 803556D4 00351334 4B FF F8 15 */ bl ghiPostFileMemoryStateDoPosting
+lbl_803556D8:
+/* 803556D8 00351338 39 61 08 40 */ addi r11, r1, 0x840
+/* 803556DC 0035133C 4B E7 1A 95 */ bl _restgpr_26
+/* 803556E0 00351340 80 01 08 44 */ lwz r0, 0x844(r1)
+/* 803556E4 00351344 7C 08 03 A6 */ mtlr r0
+/* 803556E8 00351348 38 21 08 40 */ addi r1, r1, 0x840
+/* 803556EC 0035134C 4E 80 00 20 */ blr
+
+.global ghiPostDoPosting
+ghiPostDoPosting:
+/* 803556F0 00351350 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803556F4 00351354 7C 08 02 A6 */ mflr r0
+/* 803556F8 00351358 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803556FC 0035135C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80355700 00351360 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80355704 00351364 7C 7E 1B 78 */ mr r30, r3
+/* 80355708 00351368 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035570C 0035136C 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80355710 00351370 80 63 01 64 */ lwz r3, 0x164(r3)
+/* 80355714 00351374 4B FE 07 D5 */ bl ArrayLength
+/* 80355718 00351378 80 9E 00 64 */ lwz r4, 0x64(r30)
+/* 8035571C 0035137C 7C 7F 1B 78 */ mr r31, r3
+/* 80355720 00351380 80 1E 00 60 */ lwz r0, 0x60(r30)
+/* 80355724 00351384 7C 04 00 00 */ cmpw r4, r0
+/* 80355728 00351388 40 80 00 64 */ bge lbl_8035578C
+/* 8035572C 0035138C 7F C3 F3 78 */ mr r3, r30
+/* 80355730 00351390 4B FF B9 25 */ bl ghiSendBufferedData
+/* 80355734 00351394 2C 03 00 00 */ cmpwi r3, 0
+/* 80355738 00351398 40 82 00 0C */ bne lbl_80355744
+/* 8035573C 0035139C 38 60 00 00 */ li r3, 0
+/* 80355740 003513A0 48 00 01 DC */ b lbl_8035591C
+lbl_80355744:
+/* 80355744 003513A4 80 7E 00 64 */ lwz r3, 0x64(r30)
+/* 80355748 003513A8 80 1E 00 60 */ lwz r0, 0x60(r30)
+/* 8035574C 003513AC 7C 03 00 00 */ cmpw r3, r0
+/* 80355750 003513B0 40 80 00 0C */ bge lbl_8035575C
+/* 80355754 003513B4 38 60 00 02 */ li r3, 2
+/* 80355758 003513B8 48 00 01 C4 */ b lbl_8035591C
+lbl_8035575C:
+/* 8035575C 003513BC 38 7E 00 54 */ addi r3, r30, 0x54
+/* 80355760 003513C0 4B FF B8 D1 */ bl ghiResetBuffer
+/* 80355764 003513C4 80 1E 01 7C */ lwz r0, 0x17c(r30)
+/* 80355768 003513C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035576C 003513CC 41 82 00 0C */ beq lbl_80355778
+/* 80355770 003513D0 38 60 00 03 */ li r3, 3
+/* 80355774 003513D4 48 00 01 A8 */ b lbl_8035591C
+lbl_80355778:
+/* 80355778 003513D8 80 1E 01 68 */ lwz r0, 0x168(r30)
+/* 8035577C 003513DC 7C 00 F8 00 */ cmpw r0, r31
+/* 80355780 003513E0 40 82 00 0C */ bne lbl_8035578C
+/* 80355784 003513E4 38 60 00 01 */ li r3, 1
+/* 80355788 003513E8 48 00 01 94 */ b lbl_8035591C
+lbl_8035578C:
+/* 8035578C 003513EC 80 1E 01 7C */ lwz r0, 0x17c(r30)
+/* 80355790 003513F0 2C 00 00 00 */ cmpwi r0, 0
+/* 80355794 003513F4 41 82 00 E0 */ beq lbl_80355874
+/* 80355798 003513F8 80 7E 01 60 */ lwz r3, 0x160(r30)
+/* 8035579C 003513FC 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803557A0 00351400 2C 00 00 00 */ cmpwi r0, 0
+/* 803557A4 00351404 40 82 00 10 */ bne lbl_803557B4
+/* 803557A8 00351408 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 803557AC 0035140C 2C 00 00 00 */ cmpwi r0, 0
+/* 803557B0 00351410 41 82 00 50 */ beq lbl_80355800
+lbl_803557B4:
+/* 803557B4 00351414 38 6D 93 D4 */ addi r3, r13, lbl_8063E694-_SDA_BASE_
+/* 803557B8 00351418 4B E7 13 AD */ bl strlen
+/* 803557BC 0035141C 7C 65 1B 78 */ mr r5, r3
+/* 803557C0 00351420 7F C3 F3 78 */ mr r3, r30
+/* 803557C4 00351424 38 8D 93 D4 */ addi r4, r13, lbl_8063E694-_SDA_BASE_
+/* 803557C8 00351428 4B FF BE 71 */ bl ghiTrySendThenBuffer
+/* 803557CC 0035142C 2C 03 00 00 */ cmpwi r3, 0
+/* 803557D0 00351430 40 82 00 0C */ bne lbl_803557DC
+/* 803557D4 00351434 38 60 00 00 */ li r3, 0
+/* 803557D8 00351438 48 00 01 44 */ b lbl_8035591C
+lbl_803557DC:
+/* 803557DC 0035143C 2C 03 00 02 */ cmpwi r3, 2
+/* 803557E0 00351440 40 82 00 0C */ bne lbl_803557EC
+/* 803557E4 00351444 38 60 00 02 */ li r3, 2
+/* 803557E8 00351448 48 00 01 34 */ b lbl_8035591C
+lbl_803557EC:
+/* 803557EC 0035144C 80 1E 01 7C */ lwz r0, 0x17c(r30)
+/* 803557F0 00351450 2C 00 00 01 */ cmpwi r0, 1
+/* 803557F4 00351454 40 82 00 80 */ bne lbl_80355874
+/* 803557F8 00351458 38 60 00 03 */ li r3, 3
+/* 803557FC 0035145C 48 00 01 20 */ b lbl_8035591C
+lbl_80355800:
+/* 80355800 00351460 38 00 00 00 */ li r0, 0
+/* 80355804 00351464 90 1E 01 7C */ stw r0, 0x17c(r30)
+/* 80355808 00351468 48 00 00 6C */ b lbl_80355874
+lbl_8035580C:
+/* 8035580C 0035146C 80 7E 01 64 */ lwz r3, 0x164(r30)
+/* 80355810 00351470 4B FE 06 E1 */ bl ArrayNth
+/* 80355814 00351474 7C 7C 1B 78 */ mr r28, r3
+/* 80355818 00351478 83 BE 01 68 */ lwz r29, 0x168(r30)
+/* 8035581C 0035147C 80 7E 01 64 */ lwz r3, 0x164(r30)
+/* 80355820 00351480 4B FE 06 C9 */ bl ArrayLength
+/* 80355824 00351484 38 63 FF FF */ addi r3, r3, -1
+/* 80355828 00351488 7F A0 00 34 */ cntlzw r0, r29
+/* 8035582C 0035148C 7C 9D 18 50 */ subf r4, r29, r3
+/* 80355830 00351490 7C 85 00 34 */ cntlzw r5, r4
+/* 80355834 00351494 7F 83 E3 78 */ mr r3, r28
+/* 80355838 00351498 54 A6 D9 7E */ srwi r6, r5, 5
+/* 8035583C 0035149C 7F C4 F3 78 */ mr r4, r30
+/* 80355840 003514A0 54 05 D9 7E */ srwi r5, r0, 5
+/* 80355844 003514A4 4B FF F8 9D */ bl ghiPostStateDoPosting
+/* 80355848 003514A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035584C 003514AC 40 82 00 0C */ bne lbl_80355858
+/* 80355850 003514B0 38 60 00 00 */ li r3, 0
+/* 80355854 003514B4 48 00 00 C8 */ b lbl_8035591C
+lbl_80355858:
+/* 80355858 003514B8 2C 03 00 02 */ cmpwi r3, 2
+/* 8035585C 003514BC 40 82 00 0C */ bne lbl_80355868
+/* 80355860 003514C0 38 60 00 02 */ li r3, 2
+/* 80355864 003514C4 48 00 00 B8 */ b lbl_8035591C
+lbl_80355868:
+/* 80355868 003514C8 80 7E 01 68 */ lwz r3, 0x168(r30)
+/* 8035586C 003514CC 38 03 00 01 */ addi r0, r3, 1
+/* 80355870 003514D0 90 1E 01 68 */ stw r0, 0x168(r30)
+lbl_80355874:
+/* 80355874 003514D4 80 9E 01 68 */ lwz r4, 0x168(r30)
+/* 80355878 003514D8 7C 04 F8 00 */ cmpw r4, r31
+/* 8035587C 003514DC 41 80 FF 90 */ blt lbl_8035580C
+/* 80355880 003514E0 80 1E 01 94 */ lwz r0, 0x194(r30)
+/* 80355884 003514E4 2C 00 00 00 */ cmpwi r0, 0
+/* 80355888 003514E8 41 82 00 34 */ beq lbl_803558BC
+/* 8035588C 003514EC 80 BE 00 84 */ lwz r5, 0x84(r30)
+/* 80355890 003514F0 2C 05 00 00 */ cmpwi r5, 0
+/* 80355894 003514F4 40 81 00 28 */ ble lbl_803558BC
+/* 80355898 003514F8 80 9E 00 7C */ lwz r4, 0x7c(r30)
+/* 8035589C 003514FC 38 7E 00 54 */ addi r3, r30, 0x54
+/* 803558A0 00351500 4B FF B3 8D */ bl ghiEncryptDataToBuffer
+/* 803558A4 00351504 2C 03 00 00 */ cmpwi r3, 0
+/* 803558A8 00351508 40 82 00 0C */ bne lbl_803558B4
+/* 803558AC 0035150C 38 60 00 00 */ li r3, 0
+/* 803558B0 00351510 48 00 00 6C */ b lbl_8035591C
+lbl_803558B4:
+/* 803558B4 00351514 38 7E 00 78 */ addi r3, r30, 0x78
+/* 803558B8 00351518 4B FF B7 79 */ bl ghiResetBuffer
+lbl_803558BC:
+/* 803558BC 0035151C 80 7E 01 60 */ lwz r3, 0x160(r30)
+/* 803558C0 00351520 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803558C4 00351524 2C 00 00 00 */ cmpwi r0, 0
+/* 803558C8 00351528 41 82 00 3C */ beq lbl_80355904
+/* 803558CC 0035152C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 803558D0 00351530 2C 00 00 00 */ cmpwi r0, 0
+/* 803558D4 00351534 40 82 00 30 */ bne lbl_80355904
+/* 803558D8 00351538 3F E0 80 45 */ lis r31, lbl_8044C208@ha
+/* 803558DC 0035153C 38 7F C2 08 */ addi r3, r31, lbl_8044C208@l
+/* 803558E0 00351540 4B E7 12 85 */ bl strlen
+/* 803558E4 00351544 7C 65 1B 78 */ mr r5, r3
+/* 803558E8 00351548 7F C3 F3 78 */ mr r3, r30
+/* 803558EC 0035154C 38 9F C2 08 */ addi r4, r31, -15864
+/* 803558F0 00351550 4B FF BD 49 */ bl ghiTrySendThenBuffer
+/* 803558F4 00351554 2C 03 00 00 */ cmpwi r3, 0
+/* 803558F8 00351558 40 82 00 0C */ bne lbl_80355904
+/* 803558FC 0035155C 38 60 00 00 */ li r3, 0
+/* 80355900 00351560 48 00 00 1C */ b lbl_8035591C
+lbl_80355904:
+/* 80355904 00351564 80 9E 00 64 */ lwz r4, 0x64(r30)
+/* 80355908 00351568 38 60 00 01 */ li r3, 1
+/* 8035590C 0035156C 80 1E 00 60 */ lwz r0, 0x60(r30)
+/* 80355910 00351570 7C 04 00 00 */ cmpw r4, r0
+/* 80355914 00351574 40 80 00 08 */ bge lbl_8035591C
+/* 80355918 00351578 38 60 00 02 */ li r3, 2
+lbl_8035591C:
+/* 8035591C 0035157C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80355920 00351580 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80355924 00351584 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80355928 00351588 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035592C 0035158C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80355930 00351590 7C 08 03 A6 */ mtlr r0
+/* 80355934 00351594 38 21 00 20 */ addi r1, r1, 0x20
+/* 80355938 00351598 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/ghttpProcess.s b/asm/SDK/DWC/gamespy/ghttpProcess.s new file mode 100644 index 0000000..493cbb1 --- /dev/null +++ b/asm/SDK/DWC/gamespy/ghttpProcess.s @@ -0,0 +1,1783 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ghiParseURL
+ghiParseURL:
+/* 8035593C 0035159C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80355940 003515A0 7C 08 02 A6 */ mflr r0
+/* 80355944 003515A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80355948 003515A8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035594C 003515AC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80355950 003515B0 7C 7F 1B 78 */ mr r31, r3
+/* 80355954 003515B4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80355958 003515B8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035595C 003515BC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80355960 003515C0 40 82 00 0C */ bne lbl_8035596C
+/* 80355964 003515C4 38 60 00 00 */ li r3, 0
+/* 80355968 003515C8 48 00 01 60 */ b lbl_80355AC8
+lbl_8035596C:
+/* 8035596C 003515CC 83 C3 00 14 */ lwz r30, 0x14(r3)
+/* 80355970 003515D0 2C 1E 00 00 */ cmpwi r30, 0
+/* 80355974 003515D4 40 82 00 0C */ bne lbl_80355980
+/* 80355978 003515D8 38 60 00 00 */ li r3, 0
+/* 8035597C 003515DC 48 00 01 4C */ b lbl_80355AC8
+lbl_80355980:
+/* 80355980 003515E0 7F C3 F3 78 */ mr r3, r30
+/* 80355984 003515E4 38 8D 93 D8 */ addi r4, r13, lbl_8063E698-_SDA_BASE_
+/* 80355988 003515E8 38 A0 00 07 */ li r5, 7
+/* 8035598C 003515EC 4B E7 8B DD */ bl strncmp
+/* 80355990 003515F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80355994 003515F4 40 82 00 14 */ bne lbl_803559A8
+/* 80355998 003515F8 38 00 00 00 */ li r0, 0
+/* 8035599C 003515FC 3B BE 00 07 */ addi r29, r30, 7
+/* 803559A0 00351600 90 1F 00 28 */ stw r0, 0x28(r31)
+/* 803559A4 00351604 48 00 00 38 */ b lbl_803559DC
+lbl_803559A8:
+/* 803559A8 00351608 3C 80 80 45 */ lis r4, lbl_8044C238@ha
+/* 803559AC 0035160C 7F C3 F3 78 */ mr r3, r30
+/* 803559B0 00351610 38 84 C2 38 */ addi r4, r4, lbl_8044C238@l
+/* 803559B4 00351614 38 A0 00 08 */ li r5, 8
+/* 803559B8 00351618 4B E7 8B B1 */ bl strncmp
+/* 803559BC 0035161C 2C 03 00 00 */ cmpwi r3, 0
+/* 803559C0 00351620 40 82 00 14 */ bne lbl_803559D4
+/* 803559C4 00351624 38 00 00 01 */ li r0, 1
+/* 803559C8 00351628 3B BE 00 08 */ addi r29, r30, 8
+/* 803559CC 0035162C 90 1F 00 28 */ stw r0, 0x28(r31)
+/* 803559D0 00351630 48 00 00 0C */ b lbl_803559DC
+lbl_803559D4:
+/* 803559D4 00351634 38 60 00 00 */ li r3, 0
+/* 803559D8 00351638 48 00 00 F0 */ b lbl_80355AC8
+lbl_803559DC:
+/* 803559DC 0035163C 7F A3 EB 78 */ mr r3, r29
+/* 803559E0 00351640 38 8D 93 E0 */ addi r4, r13, lbl_8063E6A0-_SDA_BASE_
+/* 803559E4 00351644 4B E7 8B F5 */ bl strcspn
+/* 803559E8 00351648 7F 9D 18 AE */ lbzx r28, r29, r3
+/* 803559EC 0035164C 38 00 00 00 */ li r0, 0
+/* 803559F0 00351650 7C 7E 1B 78 */ mr r30, r3
+/* 803559F4 00351654 7C 1D 19 AE */ stbx r0, r29, r3
+/* 803559F8 00351658 7F A3 EB 78 */ mr r3, r29
+/* 803559FC 0035165C 4B FE 35 09 */ bl goastrdup
+/* 80355A00 00351660 2C 03 00 00 */ cmpwi r3, 0
+/* 80355A04 00351664 90 7F 00 18 */ stw r3, 0x18(r31)
+/* 80355A08 00351668 40 82 00 0C */ bne lbl_80355A14
+/* 80355A0C 0035166C 38 60 00 00 */ li r3, 0
+/* 80355A10 00351670 48 00 00 B8 */ b lbl_80355AC8
+lbl_80355A14:
+/* 80355A14 00351674 7F 9D F1 AE */ stbx r28, r29, r30
+/* 80355A18 00351678 7C 1D F0 EE */ lbzux r0, r29, r30
+/* 80355A1C 0035167C 2C 00 00 3A */ cmpwi r0, 0x3a
+/* 80355A20 00351680 40 82 00 3C */ bne lbl_80355A5C
+/* 80355A24 00351684 3B BD 00 01 */ addi r29, r29, 1
+/* 80355A28 00351688 7F A3 EB 78 */ mr r3, r29
+/* 80355A2C 0035168C 4B E7 AC E1 */ bl atoi
+/* 80355A30 00351690 54 60 04 3F */ clrlwi. r0, r3, 0x10
+/* 80355A34 00351694 B0 7F 00 20 */ sth r3, 0x20(r31)
+/* 80355A38 00351698 40 82 00 0C */ bne lbl_80355A44
+/* 80355A3C 0035169C 38 60 00 00 */ li r3, 0
+/* 80355A40 003516A0 48 00 00 88 */ b lbl_80355AC8
+lbl_80355A44:
+/* 80355A44 003516A4 8C 1D 00 01 */ lbzu r0, 1(r29)
+/* 80355A48 003516A8 7C 00 07 75 */ extsb. r0, r0
+/* 80355A4C 003516AC 41 82 00 30 */ beq lbl_80355A7C
+/* 80355A50 003516B0 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 80355A54 003516B4 40 82 FF F0 */ bne lbl_80355A44
+/* 80355A58 003516B8 48 00 00 24 */ b lbl_80355A7C
+lbl_80355A5C:
+/* 80355A5C 003516BC 80 1F 00 28 */ lwz r0, 0x28(r31)
+/* 80355A60 003516C0 2C 00 00 01 */ cmpwi r0, 1
+/* 80355A64 003516C4 40 82 00 10 */ bne lbl_80355A74
+/* 80355A68 003516C8 38 00 01 BB */ li r0, 0x1bb
+/* 80355A6C 003516CC B0 1F 00 20 */ sth r0, 0x20(r31)
+/* 80355A70 003516D0 48 00 00 0C */ b lbl_80355A7C
+lbl_80355A74:
+/* 80355A74 003516D4 38 00 00 50 */ li r0, 0x50
+/* 80355A78 003516D8 B0 1F 00 20 */ sth r0, 0x20(r31)
+lbl_80355A7C:
+/* 80355A7C 003516DC 88 1D 00 00 */ lbz r0, 0(r29)
+/* 80355A80 003516E0 7C 00 07 75 */ extsb. r0, r0
+/* 80355A84 003516E4 40 82 00 08 */ bne lbl_80355A8C
+/* 80355A88 003516E8 3B AD 93 E4 */ addi r29, r13, lbl_8063E6A4-_SDA_BASE_
+lbl_80355A8C:
+/* 80355A8C 003516EC 7F A3 EB 78 */ mr r3, r29
+/* 80355A90 003516F0 4B FE 34 75 */ bl goastrdup
+/* 80355A94 003516F4 90 7F 00 24 */ stw r3, 0x24(r31)
+/* 80355A98 003516F8 3B C0 00 2B */ li r30, 0x2b
+/* 80355A9C 003516FC 48 00 00 08 */ b lbl_80355AA4
+lbl_80355AA0:
+/* 80355AA0 00351700 9B C3 00 00 */ stb r30, 0(r3)
+lbl_80355AA4:
+/* 80355AA4 00351704 83 BF 00 24 */ lwz r29, 0x24(r31)
+/* 80355AA8 00351708 38 80 00 20 */ li r4, 0x20
+/* 80355AAC 0035170C 7F A3 EB 78 */ mr r3, r29
+/* 80355AB0 00351710 4B E7 8A F9 */ bl strchr
+/* 80355AB4 00351714 2C 03 00 00 */ cmpwi r3, 0
+/* 80355AB8 00351718 40 82 FF E8 */ bne lbl_80355AA0
+/* 80355ABC 0035171C 7C 1D 00 D0 */ neg r0, r29
+/* 80355AC0 00351720 7C 00 EB 78 */ or r0, r0, r29
+/* 80355AC4 00351724 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_80355AC8:
+/* 80355AC8 00351728 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80355ACC 0035172C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80355AD0 00351730 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80355AD4 00351734 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80355AD8 00351738 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80355ADC 0035173C 7C 08 03 A6 */ mtlr r0
+/* 80355AE0 00351740 38 21 00 20 */ addi r1, r1, 0x20
+/* 80355AE4 00351744 4E 80 00 20 */ blr
+
+.global ghiDoSocketInit
+ghiDoSocketInit:
+/* 80355AE8 00351748 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80355AEC 0035174C 7C 08 02 A6 */ mflr r0
+/* 80355AF0 00351750 38 80 00 00 */ li r4, 0
+/* 80355AF4 00351754 38 A0 00 00 */ li r5, 0
+/* 80355AF8 00351758 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80355AFC 0035175C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80355B00 00351760 7C 7F 1B 78 */ mr r31, r3
+/* 80355B04 00351764 4B FF B7 49 */ bl ghiCallProgressCallback
+/* 80355B08 00351768 4B FE 34 C9 */ bl SocketStartUp
+/* 80355B0C 0035176C 7F E3 FB 78 */ mr r3, r31
+/* 80355B10 00351770 4B FF FE 2D */ bl ghiParseURL
+/* 80355B14 00351774 2C 03 00 00 */ cmpwi r3, 0
+/* 80355B18 00351778 40 82 00 18 */ bne lbl_80355B30
+/* 80355B1C 0035177C 38 60 00 01 */ li r3, 1
+/* 80355B20 00351780 38 00 00 03 */ li r0, 3
+/* 80355B24 00351784 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80355B28 00351788 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80355B2C 0035178C 48 00 00 64 */ b lbl_80355B90
+lbl_80355B30:
+/* 80355B30 00351790 80 7F 00 28 */ lwz r3, 0x28(r31)
+/* 80355B34 00351794 2C 03 00 01 */ cmpwi r3, 1
+/* 80355B38 00351798 40 82 00 20 */ bne lbl_80355B58
+/* 80355B3C 0035179C 80 1F 01 94 */ lwz r0, 0x194(r31)
+/* 80355B40 003517A0 2C 00 00 00 */ cmpwi r0, 0
+/* 80355B44 003517A4 40 82 00 14 */ bne lbl_80355B58
+/* 80355B48 003517A8 80 7F 00 04 */ lwz r3, 4(r31)
+/* 80355B4C 003517AC 38 80 00 01 */ li r4, 1
+/* 80355B50 003517B0 4B FF C3 51 */ bl ghttpSetRequestEncryptionEngine
+/* 80355B54 003517B4 48 00 00 24 */ b lbl_80355B78
+lbl_80355B58:
+/* 80355B58 003517B8 2C 03 00 01 */ cmpwi r3, 1
+/* 80355B5C 003517BC 41 82 00 1C */ beq lbl_80355B78
+/* 80355B60 003517C0 80 1F 01 94 */ lwz r0, 0x194(r31)
+/* 80355B64 003517C4 2C 00 00 00 */ cmpwi r0, 0
+/* 80355B68 003517C8 41 82 00 10 */ beq lbl_80355B78
+/* 80355B6C 003517CC 80 7F 00 04 */ lwz r3, 4(r31)
+/* 80355B70 003517D0 38 80 00 00 */ li r4, 0
+/* 80355B74 003517D4 4B FF C3 2D */ bl ghttpSetRequestEncryptionEngine
+lbl_80355B78:
+/* 80355B78 003517D8 38 00 00 01 */ li r0, 1
+/* 80355B7C 003517DC 7F E3 FB 78 */ mr r3, r31
+/* 80355B80 003517E0 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80355B84 003517E4 38 80 00 00 */ li r4, 0
+/* 80355B88 003517E8 38 A0 00 00 */ li r5, 0
+/* 80355B8C 003517EC 4B FF B6 C1 */ bl ghiCallProgressCallback
+lbl_80355B90:
+/* 80355B90 003517F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80355B94 003517F4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80355B98 003517F8 7C 08 03 A6 */ mtlr r0
+/* 80355B9C 003517FC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80355BA0 00351800 4E 80 00 20 */ blr
+
+.global ghiDoHostLookup
+ghiDoHostLookup:
+/* 80355BA4 00351804 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80355BA8 00351808 7C 08 02 A6 */ mflr r0
+/* 80355BAC 0035180C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80355BB0 00351810 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80355BB4 00351814 93 C1 00 08 */ stw r30, 8(r1)
+/* 80355BB8 00351818 7C 7E 1B 78 */ mr r30, r3
+/* 80355BBC 0035181C 80 03 01 B0 */ lwz r0, 0x1b0(r3)
+/* 80355BC0 00351820 2C 00 00 00 */ cmpwi r0, 0
+/* 80355BC4 00351824 41 82 00 1C */ beq lbl_80355BE0
+/* 80355BC8 00351828 38 00 00 02 */ li r0, 2
+/* 80355BCC 0035182C 38 80 00 00 */ li r4, 0
+/* 80355BD0 00351830 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80355BD4 00351834 38 A0 00 00 */ li r5, 0
+/* 80355BD8 00351838 4B FF B6 75 */ bl ghiCallProgressCallback
+/* 80355BDC 0035183C 48 00 00 B4 */ b lbl_80355C90
+lbl_80355BE0:
+/* 80355BE0 00351840 83 E3 01 88 */ lwz r31, 0x188(r3)
+/* 80355BE4 00351844 2C 1F 00 00 */ cmpwi r31, 0
+/* 80355BE8 00351848 41 82 00 08 */ beq lbl_80355BF0
+/* 80355BEC 0035184C 48 00 00 18 */ b lbl_80355C04
+lbl_80355BF0:
+/* 80355BF0 00351850 83 ED B0 C4 */ lwz r31, lbl_80640384-_SDA_BASE_(r13)
+/* 80355BF4 00351854 2C 1F 00 00 */ cmpwi r31, 0
+/* 80355BF8 00351858 41 82 00 08 */ beq lbl_80355C00
+/* 80355BFC 0035185C 48 00 00 08 */ b lbl_80355C04
+lbl_80355C00:
+/* 80355C00 00351860 83 E3 00 18 */ lwz r31, 0x18(r3)
+lbl_80355C04:
+/* 80355C04 00351864 7F E3 FB 78 */ mr r3, r31
+/* 80355C08 00351868 4B FE 23 69 */ bl inet_addr
+/* 80355C0C 0035186C 3C 03 00 01 */ addis r0, r3, 1
+/* 80355C10 00351870 90 7E 00 1C */ stw r3, 0x1c(r30)
+/* 80355C14 00351874 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80355C18 00351878 40 82 00 34 */ bne lbl_80355C4C
+/* 80355C1C 0035187C 7F E3 FB 78 */ mr r3, r31
+/* 80355C20 00351880 38 9E 01 B0 */ addi r4, r30, 0x1b0
+/* 80355C24 00351884 4B FE 2F F1 */ bl gsiStartResolvingHostname
+/* 80355C28 00351888 2C 03 FF FF */ cmpwi r3, -1
+/* 80355C2C 0035188C 40 82 00 20 */ bne lbl_80355C4C
+/* 80355C30 00351890 38 80 00 00 */ li r4, 0
+/* 80355C34 00351894 38 60 00 01 */ li r3, 1
+/* 80355C38 00351898 38 00 00 04 */ li r0, 4
+/* 80355C3C 0035189C 90 9E 01 B0 */ stw r4, 0x1b0(r30)
+/* 80355C40 003518A0 90 7E 01 20 */ stw r3, 0x120(r30)
+/* 80355C44 003518A4 90 1E 00 3C */ stw r0, 0x3c(r30)
+/* 80355C48 003518A8 48 00 00 48 */ b lbl_80355C90
+lbl_80355C4C:
+/* 80355C4C 003518AC 80 7E 00 1C */ lwz r3, 0x1c(r30)
+/* 80355C50 003518B0 3C 03 00 01 */ addis r0, r3, 1
+/* 80355C54 003518B4 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80355C58 003518B8 40 82 00 20 */ bne lbl_80355C78
+/* 80355C5C 003518BC 38 00 00 02 */ li r0, 2
+/* 80355C60 003518C0 7F C3 F3 78 */ mr r3, r30
+/* 80355C64 003518C4 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 80355C68 003518C8 38 80 00 00 */ li r4, 0
+/* 80355C6C 003518CC 38 A0 00 00 */ li r5, 0
+/* 80355C70 003518D0 4B FF B5 DD */ bl ghiCallProgressCallback
+/* 80355C74 003518D4 48 00 00 1C */ b lbl_80355C90
+lbl_80355C78:
+/* 80355C78 003518D8 38 00 00 03 */ li r0, 3
+/* 80355C7C 003518DC 7F C3 F3 78 */ mr r3, r30
+/* 80355C80 003518E0 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 80355C84 003518E4 38 80 00 00 */ li r4, 0
+/* 80355C88 003518E8 38 A0 00 00 */ li r5, 0
+/* 80355C8C 003518EC 4B FF B5 C1 */ bl ghiCallProgressCallback
+lbl_80355C90:
+/* 80355C90 003518F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80355C94 003518F4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80355C98 003518F8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80355C9C 003518FC 7C 08 03 A6 */ mtlr r0
+/* 80355CA0 00351900 38 21 00 10 */ addi r1, r1, 0x10
+/* 80355CA4 00351904 4E 80 00 20 */ blr
+
+.global ghiDoLookupPending
+ghiDoLookupPending:
+/* 80355CA8 00351908 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80355CAC 0035190C 7C 08 02 A6 */ mflr r0
+/* 80355CB0 00351910 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80355CB4 00351914 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80355CB8 00351918 7C 7F 1B 78 */ mr r31, r3
+/* 80355CBC 0035191C 80 63 01 B0 */ lwz r3, 0x1b0(r3)
+/* 80355CC0 00351920 4B FE 31 51 */ bl gsiGetResolvedIP
+/* 80355CC4 00351924 3C 03 00 01 */ addis r0, r3, 1
+/* 80355CC8 00351928 90 7F 00 1C */ stw r3, 0x1c(r31)
+/* 80355CCC 0035192C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80355CD0 00351930 40 82 00 20 */ bne lbl_80355CF0
+/* 80355CD4 00351934 38 80 00 00 */ li r4, 0
+/* 80355CD8 00351938 38 60 00 01 */ li r3, 1
+/* 80355CDC 0035193C 38 00 00 04 */ li r0, 4
+/* 80355CE0 00351940 90 9F 01 B0 */ stw r4, 0x1b0(r31)
+/* 80355CE4 00351944 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80355CE8 00351948 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80355CEC 0035194C 48 00 00 48 */ b lbl_80355D34
+lbl_80355CF0:
+/* 80355CF0 00351950 2C 03 00 00 */ cmpwi r3, 0
+/* 80355CF4 00351954 40 82 00 20 */ bne lbl_80355D14
+/* 80355CF8 00351958 38 00 00 02 */ li r0, 2
+/* 80355CFC 0035195C 7F E3 FB 78 */ mr r3, r31
+/* 80355D00 00351960 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80355D04 00351964 38 80 00 00 */ li r4, 0
+/* 80355D08 00351968 38 A0 00 00 */ li r5, 0
+/* 80355D0C 0035196C 4B FF B5 41 */ bl ghiCallProgressCallback
+/* 80355D10 00351970 48 00 00 24 */ b lbl_80355D34
+lbl_80355D14:
+/* 80355D14 00351974 38 60 00 00 */ li r3, 0
+/* 80355D18 00351978 38 00 00 03 */ li r0, 3
+/* 80355D1C 0035197C 90 7F 01 B0 */ stw r3, 0x1b0(r31)
+/* 80355D20 00351980 7F E3 FB 78 */ mr r3, r31
+/* 80355D24 00351984 38 80 00 00 */ li r4, 0
+/* 80355D28 00351988 38 A0 00 00 */ li r5, 0
+/* 80355D2C 0035198C 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80355D30 00351990 4B FF B5 1D */ bl ghiCallProgressCallback
+lbl_80355D34:
+/* 80355D34 00351994 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80355D38 00351998 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80355D3C 0035199C 7C 08 03 A6 */ mtlr r0
+/* 80355D40 003519A0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80355D44 003519A4 4E 80 00 20 */ blr
+
+.global ghiDoConnecting
+ghiDoConnecting:
+/* 80355D48 003519A8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80355D4C 003519AC 7C 08 02 A6 */ mflr r0
+/* 80355D50 003519B0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80355D54 003519B4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80355D58 003519B8 7C 7F 1B 78 */ mr r31, r3
+/* 80355D5C 003519BC 80 03 00 4C */ lwz r0, 0x4c(r3)
+/* 80355D60 003519C0 2C 00 FF FF */ cmpwi r0, -1
+/* 80355D64 003519C4 40 82 01 38 */ bne lbl_80355E9C
+/* 80355D68 003519C8 38 60 00 02 */ li r3, 2
+/* 80355D6C 003519CC 38 80 00 01 */ li r4, 1
+/* 80355D70 003519D0 38 A0 00 06 */ li r5, 6
+/* 80355D74 003519D4 4B FE 1E 51 */ bl socket
+/* 80355D78 003519D8 2C 03 FF FF */ cmpwi r3, -1
+/* 80355D7C 003519DC 90 7F 00 4C */ stw r3, 0x4c(r31)
+/* 80355D80 003519E0 40 82 00 20 */ bne lbl_80355DA0
+/* 80355D84 003519E4 38 80 00 01 */ li r4, 1
+/* 80355D88 003519E8 38 00 00 05 */ li r0, 5
+/* 80355D8C 003519EC 90 9F 01 20 */ stw r4, 0x120(r31)
+/* 80355D90 003519F0 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80355D94 003519F4 4B FE 22 15 */ bl GOAGetLastError
+/* 80355D98 003519F8 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 80355D9C 003519FC 48 00 01 A8 */ b lbl_80355F44
+lbl_80355DA0:
+/* 80355DA0 00351A00 38 80 00 00 */ li r4, 0
+/* 80355DA4 00351A04 4B FE 28 B1 */ bl SetSockBlocking
+/* 80355DA8 00351A08 2C 03 00 00 */ cmpwi r3, 0
+/* 80355DAC 00351A0C 40 82 00 24 */ bne lbl_80355DD0
+/* 80355DB0 00351A10 38 60 00 01 */ li r3, 1
+/* 80355DB4 00351A14 38 00 00 05 */ li r0, 5
+/* 80355DB8 00351A18 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80355DBC 00351A1C 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80355DC0 00351A20 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80355DC4 00351A24 4B FE 21 E5 */ bl GOAGetLastError
+/* 80355DC8 00351A28 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 80355DCC 00351A2C 48 00 01 78 */ b lbl_80355F44
+lbl_80355DD0:
+/* 80355DD0 00351A30 80 1F 01 58 */ lwz r0, 0x158(r31)
+/* 80355DD4 00351A34 2C 00 00 00 */ cmpwi r0, 0
+/* 80355DD8 00351A38 41 82 00 10 */ beq lbl_80355DE8
+/* 80355DDC 00351A3C 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80355DE0 00351A40 80 8D 93 90 */ lwz r4, lbl_8063E650-_SDA_BASE_(r13)
+/* 80355DE4 00351A44 4B FE 28 E9 */ bl SetReceiveBufferSize
+lbl_80355DE8:
+/* 80355DE8 00351A48 38 61 00 10 */ addi r3, r1, 0x10
+/* 80355DEC 00351A4C 38 80 00 00 */ li r4, 0
+/* 80355DF0 00351A50 38 A0 00 08 */ li r5, 8
+/* 80355DF4 00351A54 4B CA E3 11 */ bl memset
+/* 80355DF8 00351A58 38 00 00 02 */ li r0, 2
+/* 80355DFC 00351A5C 98 01 00 11 */ stb r0, 0x11(r1)
+/* 80355E00 00351A60 80 1F 01 88 */ lwz r0, 0x188(r31)
+/* 80355E04 00351A64 2C 00 00 00 */ cmpwi r0, 0
+/* 80355E08 00351A68 41 82 00 14 */ beq lbl_80355E1C
+/* 80355E0C 00351A6C A0 7F 01 8C */ lhz r3, 0x18c(r31)
+/* 80355E10 00351A70 4B FA 0F 6D */ bl SOHtoNs
+/* 80355E14 00351A74 B0 61 00 12 */ sth r3, 0x12(r1)
+/* 80355E18 00351A78 48 00 00 2C */ b lbl_80355E44
+lbl_80355E1C:
+/* 80355E1C 00351A7C 80 0D B0 C4 */ lwz r0, lbl_80640384-_SDA_BASE_(r13)
+/* 80355E20 00351A80 2C 00 00 00 */ cmpwi r0, 0
+/* 80355E24 00351A84 41 82 00 14 */ beq lbl_80355E38
+/* 80355E28 00351A88 A0 6D B0 C0 */ lhz r3, lbl_80640380-_SDA_BASE_(r13)
+/* 80355E2C 00351A8C 4B FA 0F 51 */ bl SOHtoNs
+/* 80355E30 00351A90 B0 61 00 12 */ sth r3, 0x12(r1)
+/* 80355E34 00351A94 48 00 00 10 */ b lbl_80355E44
+lbl_80355E38:
+/* 80355E38 00351A98 A0 7F 00 20 */ lhz r3, 0x20(r31)
+/* 80355E3C 00351A9C 4B FA 0F 41 */ bl SOHtoNs
+/* 80355E40 00351AA0 B0 61 00 12 */ sth r3, 0x12(r1)
+lbl_80355E44:
+/* 80355E44 00351AA4 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80355E48 00351AA8 38 81 00 10 */ addi r4, r1, 0x10
+/* 80355E4C 00351AAC 38 A0 00 08 */ li r5, 8
+/* 80355E50 00351AB0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80355E54 00351AB4 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80355E58 00351AB8 4B FE 1E 85 */ bl connect
+/* 80355E5C 00351ABC 2C 03 FF FF */ cmpwi r3, -1
+/* 80355E60 00351AC0 40 82 00 3C */ bne lbl_80355E9C
+/* 80355E64 00351AC4 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80355E68 00351AC8 4B FE 21 41 */ bl GOAGetLastError
+/* 80355E6C 00351ACC 2C 03 FF FA */ cmpwi r3, -6
+/* 80355E70 00351AD0 41 82 00 2C */ beq lbl_80355E9C
+/* 80355E74 00351AD4 2C 03 FF E6 */ cmpwi r3, -26
+/* 80355E78 00351AD8 41 82 00 24 */ beq lbl_80355E9C
+/* 80355E7C 00351ADC 2C 03 FF B4 */ cmpwi r3, -76
+/* 80355E80 00351AE0 41 82 00 1C */ beq lbl_80355E9C
+/* 80355E84 00351AE4 38 80 00 01 */ li r4, 1
+/* 80355E88 00351AE8 38 00 00 06 */ li r0, 6
+/* 80355E8C 00351AEC 90 9F 01 20 */ stw r4, 0x120(r31)
+/* 80355E90 00351AF0 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80355E94 00351AF4 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 80355E98 00351AF8 48 00 00 AC */ b lbl_80355F44
+lbl_80355E9C:
+/* 80355E9C 00351AFC 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80355EA0 00351B00 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80355EA4 00351B04 38 C1 00 08 */ addi r6, r1, 8
+/* 80355EA8 00351B08 38 80 00 00 */ li r4, 0
+/* 80355EAC 00351B0C 4B FE 21 05 */ bl GSISocketSelect
+/* 80355EB0 00351B10 2C 03 FF FF */ cmpwi r3, -1
+/* 80355EB4 00351B14 41 82 00 18 */ beq lbl_80355ECC
+/* 80355EB8 00351B18 2C 03 00 01 */ cmpwi r3, 1
+/* 80355EBC 00351B1C 40 82 00 44 */ bne lbl_80355F00
+/* 80355EC0 00351B20 80 01 00 08 */ lwz r0, 8(r1)
+/* 80355EC4 00351B24 2C 00 00 00 */ cmpwi r0, 0
+/* 80355EC8 00351B28 41 82 00 38 */ beq lbl_80355F00
+lbl_80355ECC:
+/* 80355ECC 00351B2C 38 80 00 01 */ li r4, 1
+/* 80355ED0 00351B30 38 00 00 06 */ li r0, 6
+/* 80355ED4 00351B34 2C 03 FF FF */ cmpwi r3, -1
+/* 80355ED8 00351B38 90 9F 01 20 */ stw r4, 0x120(r31)
+/* 80355EDC 00351B3C 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80355EE0 00351B40 40 82 00 14 */ bne lbl_80355EF4
+/* 80355EE4 00351B44 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 80355EE8 00351B48 4B FE 20 C1 */ bl GOAGetLastError
+/* 80355EEC 00351B4C 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 80355EF0 00351B50 48 00 00 54 */ b lbl_80355F44
+lbl_80355EF4:
+/* 80355EF4 00351B54 38 00 00 00 */ li r0, 0
+/* 80355EF8 00351B58 90 1F 00 50 */ stw r0, 0x50(r31)
+/* 80355EFC 00351B5C 48 00 00 48 */ b lbl_80355F44
+lbl_80355F00:
+/* 80355F00 00351B60 2C 03 00 01 */ cmpwi r3, 1
+/* 80355F04 00351B64 40 82 00 40 */ bne lbl_80355F44
+/* 80355F08 00351B68 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80355F0C 00351B6C 2C 00 00 00 */ cmpwi r0, 0
+/* 80355F10 00351B70 41 82 00 34 */ beq lbl_80355F44
+/* 80355F14 00351B74 80 1F 01 94 */ lwz r0, 0x194(r31)
+/* 80355F18 00351B78 2C 00 00 00 */ cmpwi r0, 0
+/* 80355F1C 00351B7C 40 82 00 10 */ bne lbl_80355F2C
+/* 80355F20 00351B80 38 00 00 05 */ li r0, 5
+/* 80355F24 00351B84 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80355F28 00351B88 48 00 00 0C */ b lbl_80355F34
+lbl_80355F2C:
+/* 80355F2C 00351B8C 38 00 00 04 */ li r0, 4
+/* 80355F30 00351B90 90 1F 00 10 */ stw r0, 0x10(r31)
+lbl_80355F34:
+/* 80355F34 00351B94 7F E3 FB 78 */ mr r3, r31
+/* 80355F38 00351B98 38 80 00 00 */ li r4, 0
+/* 80355F3C 00351B9C 38 A0 00 00 */ li r5, 0
+/* 80355F40 00351BA0 4B FF B3 0D */ bl ghiCallProgressCallback
+lbl_80355F44:
+/* 80355F44 00351BA4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80355F48 00351BA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80355F4C 00351BAC 7C 08 03 A6 */ mtlr r0
+/* 80355F50 00351BB0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80355F54 00351BB4 4E 80 00 20 */ blr
+
+.global ghiDoSecuringSession
+ghiDoSecuringSession:
+/* 80355F58 00351BB8 94 21 FB E0 */ stwu r1, -0x420(r1)
+/* 80355F5C 00351BBC 7C 08 02 A6 */ mflr r0
+/* 80355F60 00351BC0 90 01 04 24 */ stw r0, 0x424(r1)
+/* 80355F64 00351BC4 93 E1 04 1C */ stw r31, 0x41c(r1)
+/* 80355F68 00351BC8 7C 7F 1B 78 */ mr r31, r3
+/* 80355F6C 00351BCC 80 03 01 98 */ lwz r0, 0x198(r3)
+/* 80355F70 00351BD0 2C 00 00 00 */ cmpwi r0, 0
+/* 80355F74 00351BD4 40 82 00 30 */ bne lbl_80355FA4
+/* 80355F78 00351BD8 81 83 01 A0 */ lwz r12, 0x1a0(r3)
+/* 80355F7C 00351BDC 38 83 01 90 */ addi r4, r3, 0x190
+/* 80355F80 00351BE0 7D 89 03 A6 */ mtctr r12
+/* 80355F84 00351BE4 4E 80 04 21 */ bctrl
+/* 80355F88 00351BE8 2C 03 00 03 */ cmpwi r3, 3
+/* 80355F8C 00351BEC 40 82 00 18 */ bne lbl_80355FA4
+/* 80355F90 00351BF0 38 60 00 01 */ li r3, 1
+/* 80355F94 00351BF4 38 00 00 11 */ li r0, 0x11
+/* 80355F98 00351BF8 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80355F9C 00351BFC 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80355FA0 00351C00 48 00 00 DC */ b lbl_8035607C
+lbl_80355FA4:
+/* 80355FA4 00351C04 80 7F 00 64 */ lwz r3, 0x64(r31)
+/* 80355FA8 00351C08 80 1F 00 60 */ lwz r0, 0x60(r31)
+/* 80355FAC 00351C0C 7C 03 00 00 */ cmpw r3, r0
+/* 80355FB0 00351C10 40 80 00 2C */ bge lbl_80355FDC
+/* 80355FB4 00351C14 7F E3 FB 78 */ mr r3, r31
+/* 80355FB8 00351C18 4B FF B0 9D */ bl ghiSendBufferedData
+/* 80355FBC 00351C1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80355FC0 00351C20 41 82 00 BC */ beq lbl_8035607C
+/* 80355FC4 00351C24 80 7F 00 64 */ lwz r3, 0x64(r31)
+/* 80355FC8 00351C28 80 1F 00 60 */ lwz r0, 0x60(r31)
+/* 80355FCC 00351C2C 7C 03 00 00 */ cmpw r3, r0
+/* 80355FD0 00351C30 41 80 00 AC */ blt lbl_8035607C
+/* 80355FD4 00351C34 38 7F 00 54 */ addi r3, r31, 0x54
+/* 80355FD8 00351C38 4B FF B0 59 */ bl ghiResetBuffer
+lbl_80355FDC:
+/* 80355FDC 00351C3C 38 00 04 01 */ li r0, 0x401
+/* 80355FE0 00351C40 7F E3 FB 78 */ mr r3, r31
+/* 80355FE4 00351C44 90 01 00 08 */ stw r0, 8(r1)
+/* 80355FE8 00351C48 38 81 00 0C */ addi r4, r1, 0xc
+/* 80355FEC 00351C4C 38 A1 00 08 */ addi r5, r1, 8
+/* 80355FF0 00351C50 4B FF B4 55 */ bl ghiDoReceive
+/* 80355FF4 00351C54 38 03 FF FE */ addi r0, r3, -2
+/* 80355FF8 00351C58 28 00 00 01 */ cmplwi r0, 1
+/* 80355FFC 00351C5C 41 81 00 18 */ bgt lbl_80356014
+/* 80356000 00351C60 38 60 00 01 */ li r3, 1
+/* 80356004 00351C64 38 00 00 11 */ li r0, 0x11
+/* 80356008 00351C68 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 8035600C 00351C6C 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80356010 00351C70 48 00 00 6C */ b lbl_8035607C
+lbl_80356014:
+/* 80356014 00351C74 2C 03 00 00 */ cmpwi r3, 0
+/* 80356018 00351C78 40 82 00 64 */ bne lbl_8035607C
+/* 8035601C 00351C7C 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80356020 00351C80 38 7F 00 C0 */ addi r3, r31, 0xc0
+/* 80356024 00351C84 38 81 00 0C */ addi r4, r1, 0xc
+/* 80356028 00351C88 4B FF AA 95 */ bl ghiAppendDataToBuffer
+/* 8035602C 00351C8C 2C 03 00 00 */ cmpwi r3, 0
+/* 80356030 00351C90 41 82 00 4C */ beq lbl_8035607C
+/* 80356034 00351C94 7F E3 FB 78 */ mr r3, r31
+/* 80356038 00351C98 4B FF B2 BD */ bl ghiDecryptReceivedData
+/* 8035603C 00351C9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80356040 00351CA0 40 82 00 18 */ bne lbl_80356058
+/* 80356044 00351CA4 38 60 00 01 */ li r3, 1
+/* 80356048 00351CA8 38 00 00 11 */ li r0, 0x11
+/* 8035604C 00351CAC 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80356050 00351CB0 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80356054 00351CB4 48 00 00 28 */ b lbl_8035607C
+lbl_80356058:
+/* 80356058 00351CB8 80 1F 01 9C */ lwz r0, 0x19c(r31)
+/* 8035605C 00351CBC 2C 00 00 00 */ cmpwi r0, 0
+/* 80356060 00351CC0 41 82 00 1C */ beq lbl_8035607C
+/* 80356064 00351CC4 38 00 00 05 */ li r0, 5
+/* 80356068 00351CC8 7F E3 FB 78 */ mr r3, r31
+/* 8035606C 00351CCC 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80356070 00351CD0 38 80 00 00 */ li r4, 0
+/* 80356074 00351CD4 38 A0 00 00 */ li r5, 0
+/* 80356078 00351CD8 4B FF B1 D5 */ bl ghiCallProgressCallback
+lbl_8035607C:
+/* 8035607C 00351CDC 80 01 04 24 */ lwz r0, 0x424(r1)
+/* 80356080 00351CE0 83 E1 04 1C */ lwz r31, 0x41c(r1)
+/* 80356084 00351CE4 7C 08 03 A6 */ mtlr r0
+/* 80356088 00351CE8 38 21 04 20 */ addi r1, r1, 0x420
+/* 8035608C 00351CEC 4E 80 00 20 */ blr
+
+.global ghiDoSendingRequest
+ghiDoSendingRequest:
+/* 80356090 00351CF0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80356094 00351CF4 7C 08 02 A6 */ mflr r0
+/* 80356098 00351CF8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035609C 00351CFC 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 803560A0 00351D00 7C 7F 1B 78 */ mr r31, r3
+/* 803560A4 00351D04 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 803560A8 00351D08 3F C0 80 45 */ lis r30, lbl_8044C238@ha
+/* 803560AC 00351D0C 3B DE C2 38 */ addi r30, r30, lbl_8044C238@l
+/* 803560B0 00351D10 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 803560B4 00351D14 80 03 00 60 */ lwz r0, 0x60(r3)
+/* 803560B8 00351D18 2C 00 00 00 */ cmpwi r0, 0
+/* 803560BC 00351D1C 40 82 02 28 */ bne lbl_803562E4
+/* 803560C0 00351D20 80 03 01 94 */ lwz r0, 0x194(r3)
+/* 803560C4 00351D24 2C 00 00 00 */ cmpwi r0, 0
+/* 803560C8 00351D28 40 82 00 0C */ bne lbl_803560D4
+/* 803560CC 00351D2C 3B A3 00 54 */ addi r29, r3, 0x54
+/* 803560D0 00351D30 48 00 00 08 */ b lbl_803560D8
+lbl_803560D4:
+/* 803560D4 00351D34 3B A3 00 78 */ addi r29, r3, 0x78
+lbl_803560D8:
+/* 803560D8 00351D38 80 03 01 60 */ lwz r0, 0x160(r3)
+/* 803560DC 00351D3C 2C 00 00 00 */ cmpwi r0, 0
+/* 803560E0 00351D40 41 82 00 18 */ beq lbl_803560F8
+/* 803560E4 00351D44 80 03 01 80 */ lwz r0, 0x180(r3)
+/* 803560E8 00351D48 2C 00 00 00 */ cmpwi r0, 0
+/* 803560EC 00351D4C 40 82 00 0C */ bne lbl_803560F8
+/* 803560F0 00351D50 38 8D 93 E8 */ addi r4, r13, lbl_8063E6A8-_SDA_BASE_
+/* 803560F4 00351D54 48 00 00 18 */ b lbl_8035610C
+lbl_803560F8:
+/* 803560F8 00351D58 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803560FC 00351D5C 38 8D 93 F8 */ addi r4, r13, lbl_8063E6B8-_SDA_BASE_
+/* 80356100 00351D60 2C 00 00 03 */ cmpwi r0, 3
+/* 80356104 00351D64 40 82 00 08 */ bne lbl_8035610C
+/* 80356108 00351D68 38 8D 93 F0 */ addi r4, r13, lbl_8063E6B0-_SDA_BASE_
+lbl_8035610C:
+/* 8035610C 00351D6C 7F A3 EB 78 */ mr r3, r29
+/* 80356110 00351D70 38 A0 00 00 */ li r5, 0
+/* 80356114 00351D74 4B FF A9 A9 */ bl ghiAppendDataToBuffer
+/* 80356118 00351D78 80 1F 01 88 */ lwz r0, 0x188(r31)
+/* 8035611C 00351D7C 2C 00 00 00 */ cmpwi r0, 0
+/* 80356120 00351D80 40 82 00 10 */ bne lbl_80356130
+/* 80356124 00351D84 80 0D B0 C4 */ lwz r0, lbl_80640384-_SDA_BASE_(r13)
+/* 80356128 00351D88 2C 00 00 00 */ cmpwi r0, 0
+/* 8035612C 00351D8C 41 82 00 18 */ beq lbl_80356144
+lbl_80356130:
+/* 80356130 00351D90 80 9F 00 14 */ lwz r4, 0x14(r31)
+/* 80356134 00351D94 7F A3 EB 78 */ mr r3, r29
+/* 80356138 00351D98 38 A0 00 00 */ li r5, 0
+/* 8035613C 00351D9C 4B FF A9 81 */ bl ghiAppendDataToBuffer
+/* 80356140 00351DA0 48 00 00 14 */ b lbl_80356154
+lbl_80356144:
+/* 80356144 00351DA4 80 9F 00 24 */ lwz r4, 0x24(r31)
+/* 80356148 00351DA8 7F A3 EB 78 */ mr r3, r29
+/* 8035614C 00351DAC 38 A0 00 00 */ li r5, 0
+/* 80356150 00351DB0 4B FF A9 6D */ bl ghiAppendDataToBuffer
+lbl_80356154:
+/* 80356154 00351DB4 7F A3 EB 78 */ mr r3, r29
+/* 80356158 00351DB8 38 9E 00 0C */ addi r4, r30, 0xc
+/* 8035615C 00351DBC 38 A0 00 00 */ li r5, 0
+/* 80356160 00351DC0 4B FF A9 5D */ bl ghiAppendDataToBuffer
+/* 80356164 00351DC4 A0 1F 00 20 */ lhz r0, 0x20(r31)
+/* 80356168 00351DC8 28 00 00 50 */ cmplwi r0, 0x50
+/* 8035616C 00351DCC 40 82 00 18 */ bne lbl_80356184
+/* 80356170 00351DD0 80 BF 00 18 */ lwz r5, 0x18(r31)
+/* 80356174 00351DD4 7F A3 EB 78 */ mr r3, r29
+/* 80356178 00351DD8 38 8D 94 00 */ addi r4, r13, lbl_8063E6C0-_SDA_BASE_
+/* 8035617C 00351DDC 4B FF AC 89 */ bl ghiAppendHeaderToBuffer
+/* 80356180 00351DE0 48 00 00 4C */ b lbl_803561CC
+lbl_80356184:
+/* 80356184 00351DE4 7F A3 EB 78 */ mr r3, r29
+/* 80356188 00351DE8 38 8D 94 08 */ addi r4, r13, lbl_8063E6C8-_SDA_BASE_
+/* 8035618C 00351DEC 38 A0 00 00 */ li r5, 0
+/* 80356190 00351DF0 4B FF A9 2D */ bl ghiAppendDataToBuffer
+/* 80356194 00351DF4 80 9F 00 18 */ lwz r4, 0x18(r31)
+/* 80356198 00351DF8 7F A3 EB 78 */ mr r3, r29
+/* 8035619C 00351DFC 38 A0 00 00 */ li r5, 0
+/* 803561A0 00351E00 4B FF A9 1D */ bl ghiAppendDataToBuffer
+/* 803561A4 00351E04 7F A3 EB 78 */ mr r3, r29
+/* 803561A8 00351E08 38 80 00 3A */ li r4, 0x3a
+/* 803561AC 00351E0C 4B FF AD 01 */ bl ghiAppendCharToBuffer
+/* 803561B0 00351E10 A0 9F 00 20 */ lhz r4, 0x20(r31)
+/* 803561B4 00351E14 7F A3 EB 78 */ mr r3, r29
+/* 803561B8 00351E18 4B FF AE 2D */ bl ghiAppendIntToBuffer
+/* 803561BC 00351E1C 7F A3 EB 78 */ mr r3, r29
+/* 803561C0 00351E20 38 8D 94 10 */ addi r4, r13, lbl_8063E6D0-_SDA_BASE_
+/* 803561C4 00351E24 38 A0 00 02 */ li r5, 2
+/* 803561C8 00351E28 4B FF A8 F5 */ bl ghiAppendDataToBuffer
+lbl_803561CC:
+/* 803561CC 00351E2C 80 7F 00 2C */ lwz r3, 0x2c(r31)
+/* 803561D0 00351E30 2C 03 00 00 */ cmpwi r3, 0
+/* 803561D4 00351E34 41 82 00 14 */ beq lbl_803561E8
+/* 803561D8 00351E38 38 9E 00 18 */ addi r4, r30, 0x18
+/* 803561DC 00351E3C 4B E7 85 C5 */ bl strstr
+/* 803561E0 00351E40 2C 03 00 00 */ cmpwi r3, 0
+/* 803561E4 00351E44 40 82 00 14 */ bne lbl_803561F8
+lbl_803561E8:
+/* 803561E8 00351E48 7F A3 EB 78 */ mr r3, r29
+/* 803561EC 00351E4C 38 9E 00 18 */ addi r4, r30, 0x18
+/* 803561F0 00351E50 38 BE 00 28 */ addi r5, r30, 0x28
+/* 803561F4 00351E54 4B FF AC 11 */ bl ghiAppendHeaderToBuffer
+lbl_803561F8:
+/* 803561F8 00351E58 80 1F 00 38 */ lwz r0, 0x38(r31)
+/* 803561FC 00351E5C 2C 00 00 00 */ cmpwi r0, 0
+/* 80356200 00351E60 41 82 00 18 */ beq lbl_80356218
+/* 80356204 00351E64 7F A3 EB 78 */ mr r3, r29
+/* 80356208 00351E68 38 9E 00 38 */ addi r4, r30, 0x38
+/* 8035620C 00351E6C 38 BE 00 44 */ addi r5, r30, 0x44
+/* 80356210 00351E70 4B FF AB F5 */ bl ghiAppendHeaderToBuffer
+/* 80356214 00351E74 48 00 00 14 */ b lbl_80356228
+lbl_80356218:
+/* 80356218 00351E78 7F A3 EB 78 */ mr r3, r29
+/* 8035621C 00351E7C 38 9E 00 38 */ addi r4, r30, 0x38
+/* 80356220 00351E80 38 AD 94 14 */ addi r5, r13, lbl_8063E6D4-_SDA_BASE_
+/* 80356224 00351E84 4B FF AB E1 */ bl ghiAppendHeaderToBuffer
+lbl_80356228:
+/* 80356228 00351E88 80 1F 01 60 */ lwz r0, 0x160(r31)
+/* 8035622C 00351E8C 2C 00 00 00 */ cmpwi r0, 0
+/* 80356230 00351E90 41 82 00 4C */ beq lbl_8035627C
+/* 80356234 00351E94 80 1F 01 80 */ lwz r0, 0x180(r31)
+/* 80356238 00351E98 2C 00 00 00 */ cmpwi r0, 0
+/* 8035623C 00351E9C 40 82 00 40 */ bne lbl_8035627C
+/* 80356240 00351EA0 80 BF 01 70 */ lwz r5, 0x170(r31)
+/* 80356244 00351EA4 38 61 00 08 */ addi r3, r1, 8
+/* 80356248 00351EA8 38 8D 94 1C */ addi r4, r13, lbl_8063E6DC-_SDA_BASE_
+/* 8035624C 00351EAC 4C C6 31 82 */ crclr 6
+/* 80356250 00351EB0 4B E7 68 AD */ bl sprintf
+/* 80356254 00351EB4 7F A3 EB 78 */ mr r3, r29
+/* 80356258 00351EB8 38 9E 00 50 */ addi r4, r30, 0x50
+/* 8035625C 00351EBC 38 A1 00 08 */ addi r5, r1, 8
+/* 80356260 00351EC0 4B FF AB A5 */ bl ghiAppendHeaderToBuffer
+/* 80356264 00351EC4 7F E3 FB 78 */ mr r3, r31
+/* 80356268 00351EC8 4B FF E0 19 */ bl ghiPostGetContentType
+/* 8035626C 00351ECC 7C 65 1B 78 */ mr r5, r3
+/* 80356270 00351ED0 7F A3 EB 78 */ mr r3, r29
+/* 80356274 00351ED4 38 9E 00 60 */ addi r4, r30, 0x60
+/* 80356278 00351ED8 4B FF AB 8D */ bl ghiAppendHeaderToBuffer
+lbl_8035627C:
+/* 8035627C 00351EDC 80 9F 00 2C */ lwz r4, 0x2c(r31)
+/* 80356280 00351EE0 2C 04 00 00 */ cmpwi r4, 0
+/* 80356284 00351EE4 41 82 00 10 */ beq lbl_80356294
+/* 80356288 00351EE8 7F A3 EB 78 */ mr r3, r29
+/* 8035628C 00351EEC 38 A0 00 00 */ li r5, 0
+/* 80356290 00351EF0 4B FF A8 2D */ bl ghiAppendDataToBuffer
+lbl_80356294:
+/* 80356294 00351EF4 7F A3 EB 78 */ mr r3, r29
+/* 80356298 00351EF8 38 8D 94 10 */ addi r4, r13, lbl_8063E6D0-_SDA_BASE_
+/* 8035629C 00351EFC 38 A0 00 02 */ li r5, 2
+/* 803562A0 00351F00 4B FF A8 1D */ bl ghiAppendDataToBuffer
+/* 803562A4 00351F04 80 1F 01 94 */ lwz r0, 0x194(r31)
+/* 803562A8 00351F08 2C 00 00 00 */ cmpwi r0, 0
+/* 803562AC 00351F0C 41 82 00 38 */ beq lbl_803562E4
+/* 803562B0 00351F10 80 9D 00 04 */ lwz r4, 4(r29)
+/* 803562B4 00351F14 38 7F 00 54 */ addi r3, r31, 0x54
+/* 803562B8 00351F18 80 BD 00 0C */ lwz r5, 0xc(r29)
+/* 803562BC 00351F1C 4B FF A9 71 */ bl ghiEncryptDataToBuffer
+/* 803562C0 00351F20 2C 03 00 00 */ cmpwi r3, 0
+/* 803562C4 00351F24 40 82 00 18 */ bne lbl_803562DC
+/* 803562C8 00351F28 38 60 00 01 */ li r3, 1
+/* 803562CC 00351F2C 38 00 00 11 */ li r0, 0x11
+/* 803562D0 00351F30 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 803562D4 00351F34 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 803562D8 00351F38 48 00 00 70 */ b lbl_80356348
+lbl_803562DC:
+/* 803562DC 00351F3C 7F A3 EB 78 */ mr r3, r29
+/* 803562E0 00351F40 4B FF AD 51 */ bl ghiResetBuffer
+lbl_803562E4:
+/* 803562E4 00351F44 7F E3 FB 78 */ mr r3, r31
+/* 803562E8 00351F48 4B FF AD 6D */ bl ghiSendBufferedData
+/* 803562EC 00351F4C 2C 03 00 00 */ cmpwi r3, 0
+/* 803562F0 00351F50 41 82 00 58 */ beq lbl_80356348
+/* 803562F4 00351F54 80 7F 00 64 */ lwz r3, 0x64(r31)
+/* 803562F8 00351F58 80 1F 00 60 */ lwz r0, 0x60(r31)
+/* 803562FC 00351F5C 7C 03 00 00 */ cmpw r3, r0
+/* 80356300 00351F60 41 80 00 48 */ blt lbl_80356348
+/* 80356304 00351F64 38 7F 00 54 */ addi r3, r31, 0x54
+/* 80356308 00351F68 4B FF AD 29 */ bl ghiResetBuffer
+/* 8035630C 00351F6C 80 1F 01 60 */ lwz r0, 0x160(r31)
+/* 80356310 00351F70 2C 00 00 00 */ cmpwi r0, 0
+/* 80356314 00351F74 41 82 00 1C */ beq lbl_80356330
+/* 80356318 00351F78 80 1F 01 80 */ lwz r0, 0x180(r31)
+/* 8035631C 00351F7C 2C 00 00 00 */ cmpwi r0, 0
+/* 80356320 00351F80 40 82 00 10 */ bne lbl_80356330
+/* 80356324 00351F84 38 00 00 06 */ li r0, 6
+/* 80356328 00351F88 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 8035632C 00351F8C 48 00 00 0C */ b lbl_80356338
+lbl_80356330:
+/* 80356330 00351F90 38 00 00 07 */ li r0, 7
+/* 80356334 00351F94 90 1F 00 10 */ stw r0, 0x10(r31)
+lbl_80356338:
+/* 80356338 00351F98 7F E3 FB 78 */ mr r3, r31
+/* 8035633C 00351F9C 38 80 00 00 */ li r4, 0
+/* 80356340 00351FA0 38 A0 00 00 */ li r5, 0
+/* 80356344 00351FA4 4B FF AF 09 */ bl ghiCallProgressCallback
+lbl_80356348:
+/* 80356348 00351FA8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035634C 00351FAC 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80356350 00351FB0 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80356354 00351FB4 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80356358 00351FB8 7C 08 03 A6 */ mtlr r0
+/* 8035635C 00351FBC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80356360 00351FC0 4E 80 00 20 */ blr
+
+.global ghiDoPosting
+ghiDoPosting:
+/* 80356364 00351FC4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80356368 00351FC8 7C 08 02 A6 */ mflr r0
+/* 8035636C 00351FCC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80356370 00351FD0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80356374 00351FD4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80356378 00351FD8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035637C 00351FDC 7C 7D 1B 78 */ mr r29, r3
+/* 80356380 00351FE0 83 C3 01 6C */ lwz r30, 0x16c(r3)
+/* 80356384 00351FE4 4B FF F3 6D */ bl ghiPostDoPosting
+/* 80356388 00351FE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035638C 00351FEC 7C 7F 1B 78 */ mr r31, r3
+/* 80356390 00351FF0 40 82 00 58 */ bne lbl_803563E8
+/* 80356394 00351FF4 38 00 00 00 */ li r0, 0
+/* 80356398 00351FF8 7F A3 EB 78 */ mr r3, r29
+/* 8035639C 00351FFC 90 01 00 08 */ stw r0, 8(r1)
+/* 803563A0 00352000 4B FF E5 ED */ bl ghiPostCleanupState
+/* 803563A4 00352004 80 7D 00 4C */ lwz r3, 0x4c(r29)
+/* 803563A8 00352008 38 81 00 08 */ addi r4, r1, 8
+/* 803563AC 0035200C 38 A0 00 00 */ li r5, 0
+/* 803563B0 00352010 38 C0 00 00 */ li r6, 0
+/* 803563B4 00352014 4B FE 1B FD */ bl GSISocketSelect
+/* 803563B8 00352018 2C 03 00 01 */ cmpwi r3, 1
+/* 803563BC 0035201C 40 82 00 84 */ bne lbl_80356440
+/* 803563C0 00352020 80 01 00 08 */ lwz r0, 8(r1)
+/* 803563C4 00352024 2C 00 00 00 */ cmpwi r0, 0
+/* 803563C8 00352028 41 82 00 78 */ beq lbl_80356440
+/* 803563CC 0035202C 38 00 00 08 */ li r0, 8
+/* 803563D0 00352030 7F A3 EB 78 */ mr r3, r29
+/* 803563D4 00352034 90 1D 00 10 */ stw r0, 0x10(r29)
+/* 803563D8 00352038 38 80 00 00 */ li r4, 0
+/* 803563DC 0035203C 38 A0 00 00 */ li r5, 0
+/* 803563E0 00352040 4B FF AE 6D */ bl ghiCallProgressCallback
+/* 803563E4 00352044 48 00 00 5C */ b lbl_80356440
+lbl_803563E8:
+/* 803563E8 00352048 2C 03 00 03 */ cmpwi r3, 3
+/* 803563EC 0035204C 40 82 00 10 */ bne lbl_803563FC
+/* 803563F0 00352050 38 00 00 00 */ li r0, 0
+/* 803563F4 00352054 90 1D 01 7C */ stw r0, 0x17c(r29)
+/* 803563F8 00352058 48 00 00 48 */ b lbl_80356440
+lbl_803563FC:
+/* 803563FC 0035205C 80 1D 01 6C */ lwz r0, 0x16c(r29)
+/* 80356400 00352060 7C 1E 00 00 */ cmpw r30, r0
+/* 80356404 00352064 41 82 00 0C */ beq lbl_80356410
+/* 80356408 00352068 7F A3 EB 78 */ mr r3, r29
+/* 8035640C 0035206C 4B FF AE 79 */ bl ghiCallPostCallback
+lbl_80356410:
+/* 80356410 00352070 2C 1F 00 01 */ cmpwi r31, 1
+/* 80356414 00352074 40 82 00 2C */ bne lbl_80356440
+/* 80356418 00352078 7F A3 EB 78 */ mr r3, r29
+/* 8035641C 0035207C 4B FF E5 71 */ bl ghiPostCleanupState
+/* 80356420 00352080 38 60 00 01 */ li r3, 1
+/* 80356424 00352084 38 00 00 07 */ li r0, 7
+/* 80356428 00352088 90 7D 01 80 */ stw r3, 0x180(r29)
+/* 8035642C 0035208C 7F A3 EB 78 */ mr r3, r29
+/* 80356430 00352090 38 80 00 00 */ li r4, 0
+/* 80356434 00352094 38 A0 00 00 */ li r5, 0
+/* 80356438 00352098 90 1D 00 10 */ stw r0, 0x10(r29)
+/* 8035643C 0035209C 4B FF AE 11 */ bl ghiCallProgressCallback
+lbl_80356440:
+/* 80356440 003520A0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80356444 003520A4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80356448 003520A8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035644C 003520AC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80356450 003520B0 7C 08 03 A6 */ mtlr r0
+/* 80356454 003520B4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80356458 003520B8 4E 80 00 20 */ blr
+
+.global ghiDoWaiting
+ghiDoWaiting:
+/* 8035645C 003520BC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80356460 003520C0 7C 08 02 A6 */ mflr r0
+/* 80356464 003520C4 38 A0 00 00 */ li r5, 0
+/* 80356468 003520C8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035646C 003520CC 38 81 00 0C */ addi r4, r1, 0xc
+/* 80356470 003520D0 38 C1 00 08 */ addi r6, r1, 8
+/* 80356474 003520D4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80356478 003520D8 7C 7F 1B 78 */ mr r31, r3
+/* 8035647C 003520DC 80 63 00 4C */ lwz r3, 0x4c(r3)
+/* 80356480 003520E0 4B FE 1B 31 */ bl GSISocketSelect
+/* 80356484 003520E4 2C 03 FF FF */ cmpwi r3, -1
+/* 80356488 003520E8 41 82 00 18 */ beq lbl_803564A0
+/* 8035648C 003520EC 2C 03 00 01 */ cmpwi r3, 1
+/* 80356490 003520F0 40 82 00 44 */ bne lbl_803564D4
+/* 80356494 003520F4 80 01 00 08 */ lwz r0, 8(r1)
+/* 80356498 003520F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035649C 003520FC 41 82 00 38 */ beq lbl_803564D4
+lbl_803564A0:
+/* 803564A0 00352100 38 80 00 01 */ li r4, 1
+/* 803564A4 00352104 38 00 00 05 */ li r0, 5
+/* 803564A8 00352108 2C 03 FF FF */ cmpwi r3, -1
+/* 803564AC 0035210C 90 9F 01 20 */ stw r4, 0x120(r31)
+/* 803564B0 00352110 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 803564B4 00352114 40 82 00 14 */ bne lbl_803564C8
+/* 803564B8 00352118 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 803564BC 0035211C 4B FE 1A ED */ bl GOAGetLastError
+/* 803564C0 00352120 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 803564C4 00352124 48 00 00 3C */ b lbl_80356500
+lbl_803564C8:
+/* 803564C8 00352128 38 00 00 00 */ li r0, 0
+/* 803564CC 0035212C 90 1F 00 50 */ stw r0, 0x50(r31)
+/* 803564D0 00352130 48 00 00 30 */ b lbl_80356500
+lbl_803564D4:
+/* 803564D4 00352134 2C 03 00 01 */ cmpwi r3, 1
+/* 803564D8 00352138 40 82 00 28 */ bne lbl_80356500
+/* 803564DC 0035213C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803564E0 00352140 2C 00 00 00 */ cmpwi r0, 0
+/* 803564E4 00352144 41 82 00 1C */ beq lbl_80356500
+/* 803564E8 00352148 38 00 00 08 */ li r0, 8
+/* 803564EC 0035214C 7F E3 FB 78 */ mr r3, r31
+/* 803564F0 00352150 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 803564F4 00352154 38 80 00 00 */ li r4, 0
+/* 803564F8 00352158 38 A0 00 00 */ li r5, 0
+/* 803564FC 0035215C 4B FF AD 51 */ bl ghiCallProgressCallback
+lbl_80356500:
+/* 80356500 00352160 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80356504 00352164 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80356508 00352168 7C 08 03 A6 */ mtlr r0
+/* 8035650C 0035216C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80356510 00352170 4E 80 00 20 */ blr
+
+.global ghiParseStatus
+ghiParseStatus:
+/* 80356514 00352174 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80356518 00352178 7C 08 02 A6 */ mflr r0
+/* 8035651C 0035217C 3C 80 80 45 */ lis r4, lbl_8044C2A8@ha
+/* 80356520 00352180 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80356524 00352184 38 84 C2 A8 */ addi r4, r4, lbl_8044C2A8@l
+/* 80356528 00352188 38 A1 00 14 */ addi r5, r1, 0x14
+/* 8035652C 0035218C 38 C1 00 10 */ addi r6, r1, 0x10
+/* 80356530 00352190 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80356534 00352194 7C 7F 1B 78 */ mr r31, r3
+/* 80356538 00352198 38 E1 00 0C */ addi r7, r1, 0xc
+/* 8035653C 0035219C 39 01 00 08 */ addi r8, r1, 8
+/* 80356540 003521A0 80 63 00 A0 */ lwz r3, 0xa0(r3)
+/* 80356544 003521A4 4C C6 31 82 */ crclr 6
+/* 80356548 003521A8 4B E7 7C C1 */ bl sscanf
+/* 8035654C 003521AC 2C 03 00 03 */ cmpwi r3, 3
+/* 80356550 003521B0 40 82 00 24 */ bne lbl_80356574
+/* 80356554 003521B4 80 C1 00 14 */ lwz r6, 0x14(r1)
+/* 80356558 003521B8 2C 06 00 01 */ cmpwi r6, 1
+/* 8035655C 003521BC 41 80 00 18 */ blt lbl_80356574
+/* 80356560 003521C0 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80356564 003521C4 2C 00 00 64 */ cmpwi r0, 0x64
+/* 80356568 003521C8 41 80 00 0C */ blt lbl_80356574
+/* 8035656C 003521CC 2C 00 02 58 */ cmpwi r0, 0x258
+/* 80356570 003521D0 41 80 00 1C */ blt lbl_8035658C
+lbl_80356574:
+/* 80356574 003521D4 38 60 00 01 */ li r3, 1
+/* 80356578 003521D8 38 00 00 07 */ li r0, 7
+/* 8035657C 003521DC 90 7F 01 20 */ stw r3, 0x120(r31)
+/* 80356580 003521E0 38 60 00 00 */ li r3, 0
+/* 80356584 003521E4 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80356588 003521E8 48 00 00 90 */ b lbl_80356618
+lbl_8035658C:
+/* 8035658C 003521EC 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 80356590 003521F0 80 81 00 08 */ lwz r4, 8(r1)
+/* 80356594 003521F4 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 80356598 003521F8 80 A3 00 38 */ lwz r5, 0x38(r3)
+/* 8035659C 003521FC 48 00 00 0C */ b lbl_803565A8
+lbl_803565A0:
+/* 803565A0 00352200 38 84 00 01 */ addi r4, r4, 1
+/* 803565A4 00352204 90 81 00 08 */ stw r4, 8(r1)
+lbl_803565A8:
+/* 803565A8 00352208 80 7F 00 A0 */ lwz r3, 0xa0(r31)
+/* 803565AC 0035220C 7C E3 20 AE */ lbzx r7, r3, r4
+/* 803565B0 00352210 7C E3 07 75 */ extsb. r3, r7
+/* 803565B4 00352214 41 82 00 44 */ beq lbl_803565F8
+/* 803565B8 00352218 38 00 00 00 */ li r0, 0
+/* 803565BC 0035221C 41 80 00 0C */ blt lbl_803565C8
+/* 803565C0 00352220 2C 03 01 00 */ cmpwi r3, 0x100
+/* 803565C4 00352224 41 80 00 08 */ blt lbl_803565CC
+lbl_803565C8:
+/* 803565C8 00352228 38 00 00 01 */ li r0, 1
+lbl_803565CC:
+/* 803565CC 0035222C 2C 00 00 00 */ cmpwi r0, 0
+/* 803565D0 00352230 41 82 00 0C */ beq lbl_803565DC
+/* 803565D4 00352234 38 00 00 00 */ li r0, 0
+/* 803565D8 00352238 48 00 00 18 */ b lbl_803565F0
+lbl_803565DC:
+/* 803565DC 0035223C 7C E0 07 74 */ extsb r0, r7
+/* 803565E0 00352240 80 65 00 08 */ lwz r3, 8(r5)
+/* 803565E4 00352244 54 00 08 3C */ slwi r0, r0, 1
+/* 803565E8 00352248 7C 03 02 2E */ lhzx r0, r3, r0
+/* 803565EC 0035224C 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_803565F0:
+/* 803565F0 00352250 2C 00 00 00 */ cmpwi r0, 0
+/* 803565F4 00352254 40 82 FF AC */ bne lbl_803565A0
+lbl_803565F8:
+/* 803565F8 00352258 90 DF 01 0C */ stw r6, 0x10c(r31)
+/* 803565FC 0035225C 38 60 00 01 */ li r3, 1
+/* 80356600 00352260 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80356604 00352264 90 1F 01 10 */ stw r0, 0x110(r31)
+/* 80356608 00352268 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8035660C 0035226C 90 1F 01 14 */ stw r0, 0x114(r31)
+/* 80356610 00352270 80 01 00 08 */ lwz r0, 8(r1)
+/* 80356614 00352274 90 1F 01 18 */ stw r0, 0x118(r31)
+lbl_80356618:
+/* 80356618 00352278 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035661C 0035227C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80356620 00352280 7C 08 03 A6 */ mtlr r0
+/* 80356624 00352284 38 21 00 20 */ addi r1, r1, 0x20
+/* 80356628 00352288 4E 80 00 20 */ blr
+
+.global ghiDoReceivingStatus
+ghiDoReceivingStatus:
+/* 8035662C 0035228C 94 21 FB E0 */ stwu r1, -0x420(r1)
+/* 80356630 00352290 7C 08 02 A6 */ mflr r0
+/* 80356634 00352294 90 01 04 24 */ stw r0, 0x424(r1)
+/* 80356638 00352298 38 00 04 00 */ li r0, 0x400
+/* 8035663C 0035229C 38 81 00 10 */ addi r4, r1, 0x10
+/* 80356640 003522A0 38 A1 00 08 */ addi r5, r1, 8
+/* 80356644 003522A4 93 E1 04 1C */ stw r31, 0x41c(r1)
+/* 80356648 003522A8 93 C1 04 18 */ stw r30, 0x418(r1)
+/* 8035664C 003522AC 93 A1 04 14 */ stw r29, 0x414(r1)
+/* 80356650 003522B0 7C 7D 1B 78 */ mr r29, r3
+/* 80356654 003522B4 90 01 00 08 */ stw r0, 8(r1)
+/* 80356658 003522B8 4B FF AD ED */ bl ghiDoReceive
+/* 8035665C 003522BC 2C 03 00 03 */ cmpwi r3, 3
+/* 80356660 003522C0 7C 7F 1B 78 */ mr r31, r3
+/* 80356664 003522C4 41 82 01 30 */ beq lbl_80356794
+/* 80356668 003522C8 2C 03 00 01 */ cmpwi r3, 1
+/* 8035666C 003522CC 41 82 01 28 */ beq lbl_80356794
+/* 80356670 003522D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80356674 003522D4 40 82 00 64 */ bne lbl_803566D8
+/* 80356678 003522D8 80 1D 01 94 */ lwz r0, 0x194(r29)
+/* 8035667C 003522DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80356680 003522E0 41 82 00 40 */ beq lbl_803566C0
+/* 80356684 003522E4 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80356688 003522E8 38 7D 00 C0 */ addi r3, r29, 0xc0
+/* 8035668C 003522EC 38 81 00 10 */ addi r4, r1, 0x10
+/* 80356690 003522F0 4B FF A4 2D */ bl ghiAppendDataToBuffer
+/* 80356694 003522F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80356698 003522F8 41 82 00 FC */ beq lbl_80356794
+/* 8035669C 003522FC 7F A3 EB 78 */ mr r3, r29
+/* 803566A0 00352300 4B FF AC 55 */ bl ghiDecryptReceivedData
+/* 803566A4 00352304 2C 03 00 00 */ cmpwi r3, 0
+/* 803566A8 00352308 40 82 00 30 */ bne lbl_803566D8
+/* 803566AC 0035230C 38 60 00 01 */ li r3, 1
+/* 803566B0 00352310 38 00 00 11 */ li r0, 0x11
+/* 803566B4 00352314 90 7D 01 20 */ stw r3, 0x120(r29)
+/* 803566B8 00352318 90 1D 00 3C */ stw r0, 0x3c(r29)
+/* 803566BC 0035231C 48 00 00 D8 */ b lbl_80356794
+lbl_803566C0:
+/* 803566C0 00352320 80 A1 00 08 */ lwz r5, 8(r1)
+/* 803566C4 00352324 38 7D 00 9C */ addi r3, r29, 0x9c
+/* 803566C8 00352328 38 81 00 10 */ addi r4, r1, 0x10
+/* 803566CC 0035232C 4B FF A3 F1 */ bl ghiAppendDataToBuffer
+/* 803566D0 00352330 2C 03 00 00 */ cmpwi r3, 0
+/* 803566D4 00352334 41 82 00 C0 */ beq lbl_80356794
+lbl_803566D8:
+/* 803566D8 00352338 80 7D 00 A0 */ lwz r3, 0xa0(r29)
+/* 803566DC 0035233C 38 8D 94 10 */ addi r4, r13, lbl_8063E6D0-_SDA_BASE_
+/* 803566E0 00352340 4B E7 80 C1 */ bl strstr
+/* 803566E4 00352344 2C 03 00 00 */ cmpwi r3, 0
+/* 803566E8 00352348 41 82 00 88 */ beq lbl_80356770
+/* 803566EC 0035234C 3B E0 00 00 */ li r31, 0
+/* 803566F0 00352350 9B E3 00 00 */ stb r31, 0(r3)
+/* 803566F4 00352354 80 1D 00 A0 */ lwz r0, 0xa0(r29)
+/* 803566F8 00352358 7F C0 18 50 */ subf r30, r0, r3
+/* 803566FC 0035235C 7F A3 EB 78 */ mr r3, r29
+/* 80356700 00352360 4B FF FE 15 */ bl ghiParseStatus
+/* 80356704 00352364 2C 03 00 00 */ cmpwi r3, 0
+/* 80356708 00352368 41 82 00 8C */ beq lbl_80356794
+/* 8035670C 0035236C 80 1D 01 14 */ lwz r0, 0x114(r29)
+/* 80356710 00352370 38 7E 00 02 */ addi r3, r30, 2
+/* 80356714 00352374 90 7D 01 1C */ stw r3, 0x11c(r29)
+/* 80356718 00352378 2C 00 00 64 */ cmpwi r0, 0x64
+/* 8035671C 0035237C 40 82 00 38 */ bne lbl_80356754
+/* 80356720 00352380 80 1D 01 7C */ lwz r0, 0x17c(r29)
+/* 80356724 00352384 2C 00 00 00 */ cmpwi r0, 0
+/* 80356728 00352388 41 82 00 2C */ beq lbl_80356754
+/* 8035672C 0035238C 93 FD 01 7C */ stw r31, 0x17c(r29)
+/* 80356730 00352390 38 7D 00 9C */ addi r3, r29, 0x9c
+/* 80356734 00352394 4B FF A8 FD */ bl ghiResetBuffer
+/* 80356738 00352398 38 00 00 06 */ li r0, 6
+/* 8035673C 0035239C 7F A3 EB 78 */ mr r3, r29
+/* 80356740 003523A0 90 1D 00 10 */ stw r0, 0x10(r29)
+/* 80356744 003523A4 38 80 00 00 */ li r4, 0
+/* 80356748 003523A8 38 A0 00 00 */ li r5, 0
+/* 8035674C 003523AC 4B FF AB 01 */ bl ghiCallProgressCallback
+/* 80356750 003523B0 48 00 00 44 */ b lbl_80356794
+lbl_80356754:
+/* 80356754 003523B4 38 00 00 09 */ li r0, 9
+/* 80356758 003523B8 7F A3 EB 78 */ mr r3, r29
+/* 8035675C 003523BC 90 1D 00 10 */ stw r0, 0x10(r29)
+/* 80356760 003523C0 38 80 00 00 */ li r4, 0
+/* 80356764 003523C4 38 A0 00 00 */ li r5, 0
+/* 80356768 003523C8 4B FF AA E5 */ bl ghiCallProgressCallback
+/* 8035676C 003523CC 48 00 00 28 */ b lbl_80356794
+lbl_80356770:
+/* 80356770 003523D0 2C 1F 00 02 */ cmpwi r31, 2
+/* 80356774 003523D4 40 82 00 20 */ bne lbl_80356794
+/* 80356778 003523D8 38 60 00 01 */ li r3, 1
+/* 8035677C 003523DC 38 00 00 07 */ li r0, 7
+/* 80356780 003523E0 90 7D 01 20 */ stw r3, 0x120(r29)
+/* 80356784 003523E4 80 7D 00 4C */ lwz r3, 0x4c(r29)
+/* 80356788 003523E8 90 1D 00 3C */ stw r0, 0x3c(r29)
+/* 8035678C 003523EC 4B FE 18 1D */ bl GOAGetLastError
+/* 80356790 003523F0 90 7D 00 50 */ stw r3, 0x50(r29)
+lbl_80356794:
+/* 80356794 003523F4 80 01 04 24 */ lwz r0, 0x424(r1)
+/* 80356798 003523F8 83 E1 04 1C */ lwz r31, 0x41c(r1)
+/* 8035679C 003523FC 83 C1 04 18 */ lwz r30, 0x418(r1)
+/* 803567A0 00352400 83 A1 04 14 */ lwz r29, 0x414(r1)
+/* 803567A4 00352404 7C 08 03 A6 */ mtlr r0
+/* 803567A8 00352408 38 21 04 20 */ addi r1, r1, 0x420
+/* 803567AC 0035240C 4E 80 00 20 */ blr
+
+.global ghiDeliverIncomingFileData
+ghiDeliverIncomingFileData:
+/* 803567B0 00352410 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803567B4 00352414 7C 08 02 A6 */ mflr r0
+/* 803567B8 00352418 38 E0 00 00 */ li r7, 0
+/* 803567BC 0035241C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803567C0 00352420 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803567C4 00352424 7C 7F 1B 78 */ mr r31, r3
+/* 803567C8 00352428 80 C3 01 24 */ lwz r6, 0x124(r3)
+/* 803567CC 0035242C 80 03 01 28 */ lwz r0, 0x128(r3)
+/* 803567D0 00352430 7C C6 2A 14 */ add r6, r6, r5
+/* 803567D4 00352434 7C 06 00 00 */ cmpw r6, r0
+/* 803567D8 00352438 90 C3 01 24 */ stw r6, 0x124(r3)
+/* 803567DC 0035243C 38 C0 00 00 */ li r6, 0
+/* 803567E0 00352440 41 82 00 10 */ beq lbl_803567F0
+/* 803567E4 00352444 80 03 01 54 */ lwz r0, 0x154(r3)
+/* 803567E8 00352448 2C 00 00 00 */ cmpwi r0, 0
+/* 803567EC 0035244C 41 82 00 0C */ beq lbl_803567F8
+lbl_803567F0:
+/* 803567F0 00352450 38 00 00 01 */ li r0, 1
+/* 803567F4 00352454 90 03 01 20 */ stw r0, 0x120(r3)
+lbl_803567F8:
+/* 803567F8 00352458 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803567FC 0035245C 2C 00 00 00 */ cmpwi r0, 0
+/* 80356800 00352460 40 82 00 28 */ bne lbl_80356828
+/* 80356804 00352464 38 63 00 E4 */ addi r3, r3, 0xe4
+/* 80356808 00352468 4B FF A2 B5 */ bl ghiAppendDataToBuffer
+/* 8035680C 0035246C 2C 03 00 00 */ cmpwi r3, 0
+/* 80356810 00352470 40 82 00 0C */ bne lbl_8035681C
+/* 80356814 00352474 38 60 00 00 */ li r3, 0
+/* 80356818 00352478 48 00 00 68 */ b lbl_80356880
+lbl_8035681C:
+/* 8035681C 0035247C 80 DF 00 E8 */ lwz r6, 0xe8(r31)
+/* 80356820 00352480 80 FF 00 F0 */ lwz r7, 0xf0(r31)
+/* 80356824 00352484 48 00 00 48 */ b lbl_8035686C
+lbl_80356828:
+/* 80356828 00352488 2C 00 00 01 */ cmpwi r0, 1
+/* 8035682C 0035248C 40 82 00 30 */ bne lbl_8035685C
+/* 80356830 00352490 2C 05 00 00 */ cmpwi r5, 0
+/* 80356834 00352494 41 82 00 1C */ beq lbl_80356850
+/* 80356838 00352498 38 80 00 01 */ li r4, 1
+/* 8035683C 0035249C 38 00 00 0D */ li r0, 0xd
+/* 80356840 003524A0 90 83 01 20 */ stw r4, 0x120(r3)
+/* 80356844 003524A4 90 03 00 3C */ stw r0, 0x3c(r3)
+/* 80356848 003524A8 38 60 00 00 */ li r3, 0
+/* 8035684C 003524AC 48 00 00 34 */ b lbl_80356880
+lbl_80356850:
+/* 80356850 003524B0 7C 86 23 78 */ mr r6, r4
+/* 80356854 003524B4 7C A7 2B 78 */ mr r7, r5
+/* 80356858 003524B8 48 00 00 14 */ b lbl_8035686C
+lbl_8035685C:
+/* 8035685C 003524BC 2C 00 00 02 */ cmpwi r0, 2
+/* 80356860 003524C0 40 82 00 0C */ bne lbl_8035686C
+/* 80356864 003524C4 7C 86 23 78 */ mr r6, r4
+/* 80356868 003524C8 7C A7 2B 78 */ mr r7, r5
+lbl_8035686C:
+/* 8035686C 003524CC 7F E3 FB 78 */ mr r3, r31
+/* 80356870 003524D0 7C C4 33 78 */ mr r4, r6
+/* 80356874 003524D4 7C E5 3B 78 */ mr r5, r7
+/* 80356878 003524D8 4B FF A9 D5 */ bl ghiCallProgressCallback
+/* 8035687C 003524DC 38 60 00 01 */ li r3, 1
+lbl_80356880:
+/* 80356880 003524E0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80356884 003524E4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80356888 003524E8 7C 08 03 A6 */ mtlr r0
+/* 8035688C 003524EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80356890 003524F0 4E 80 00 20 */ blr
+
+.global ghiProcessIncomingFileData
+ghiProcessIncomingFileData:
+/* 80356894 003524F4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80356898 003524F8 7C 08 02 A6 */ mflr r0
+/* 8035689C 003524FC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803568A0 00352500 39 61 00 40 */ addi r11, r1, 0x40
+/* 803568A4 00352504 4B E7 08 75 */ bl _savegpr_23
+/* 803568A8 00352508 80 03 01 34 */ lwz r0, 0x134(r3)
+/* 803568AC 0035250C 7C 7D 1B 78 */ mr r29, r3
+/* 803568B0 00352510 7C 9E 23 78 */ mr r30, r4
+/* 803568B4 00352514 7C BF 2B 78 */ mr r31, r5
+/* 803568B8 00352518 2C 00 00 00 */ cmpwi r0, 0
+/* 803568BC 0035251C 41 82 02 28 */ beq lbl_80356AE4
+/* 803568C0 00352520 3B 00 00 00 */ li r24, 0
+/* 803568C4 00352524 3B 80 00 02 */ li r28, 2
+/* 803568C8 00352528 3B 40 00 01 */ li r26, 1
+/* 803568CC 0035252C 3B 20 00 03 */ li r25, 3
+/* 803568D0 00352530 48 00 02 04 */ b lbl_80356AD4
+lbl_803568D4:
+/* 803568D4 00352534 80 1D 01 4C */ lwz r0, 0x14c(r29)
+/* 803568D8 00352538 2C 00 00 00 */ cmpwi r0, 0
+/* 803568DC 0035253C 40 82 01 34 */ bne lbl_80356A10
+/* 803568E0 00352540 7F C3 F3 78 */ mr r3, r30
+/* 803568E4 00352544 38 80 00 0A */ li r4, 0xa
+/* 803568E8 00352548 4B E7 7C C1 */ bl strchr
+/* 803568EC 0035254C 2C 03 00 00 */ cmpwi r3, 0
+/* 803568F0 00352550 7C 7B 1B 78 */ mr r27, r3
+/* 803568F4 00352554 41 82 00 C4 */ beq lbl_803569B8
+/* 803568F8 00352558 7E FE 18 51 */ subf. r23, r30, r3
+/* 803568FC 0035255C 41 82 00 48 */ beq lbl_80356944
+/* 80356900 00352560 80 1D 01 44 */ lwz r0, 0x144(r29)
+/* 80356904 00352564 2C 00 00 0A */ cmpwi r0, 0xa
+/* 80356908 00352568 40 80 00 3C */ bge lbl_80356944
+/* 8035690C 0035256C 20 60 00 0A */ subfic r3, r0, 0xa
+/* 80356910 00352570 7C 03 B8 00 */ cmpw r3, r23
+/* 80356914 00352574 40 80 00 08 */ bge lbl_8035691C
+/* 80356918 00352578 7C 77 1B 78 */ mr r23, r3
+lbl_8035691C:
+/* 8035691C 0035257C 7C 7D 02 14 */ add r3, r29, r0
+/* 80356920 00352580 7F C4 F3 78 */ mr r4, r30
+/* 80356924 00352584 7E E5 BB 78 */ mr r5, r23
+/* 80356928 00352588 38 63 01 38 */ addi r3, r3, 0x138
+/* 8035692C 0035258C 4B CA D6 D5 */ bl memcpy
+/* 80356930 00352590 80 1D 01 44 */ lwz r0, 0x144(r29)
+/* 80356934 00352594 7C 00 BA 14 */ add r0, r0, r23
+/* 80356938 00352598 90 1D 01 44 */ stw r0, 0x144(r29)
+/* 8035693C 0035259C 7C 7D 02 14 */ add r3, r29, r0
+/* 80356940 003525A0 9B 03 01 38 */ stb r24, 0x138(r3)
+lbl_80356944:
+/* 80356944 003525A4 38 9B 00 01 */ addi r4, r27, 1
+/* 80356948 003525A8 38 7D 01 38 */ addi r3, r29, 0x138
+/* 8035694C 003525AC 7C 1E 20 50 */ subf r0, r30, r4
+/* 80356950 003525B0 38 A1 00 08 */ addi r5, r1, 8
+/* 80356954 003525B4 7C 9E 23 78 */ mr r30, r4
+/* 80356958 003525B8 38 8D 94 20 */ addi r4, r13, lbl_8063E6E0-_SDA_BASE_
+/* 8035695C 003525BC 7F E0 F8 50 */ subf r31, r0, r31
+/* 80356960 003525C0 4C C6 31 82 */ crclr 6
+/* 80356964 003525C4 4B E7 78 A5 */ bl sscanf
+/* 80356968 003525C8 2C 03 00 01 */ cmpwi r3, 1
+/* 8035696C 003525CC 41 82 00 0C */ beq lbl_80356978
+/* 80356970 003525D0 38 00 FF FF */ li r0, -1
+/* 80356974 003525D4 48 00 00 08 */ b lbl_8035697C
+lbl_80356978:
+/* 80356978 003525D8 80 01 00 08 */ lwz r0, 8(r1)
+lbl_8035697C:
+/* 8035697C 003525DC 2C 00 FF FF */ cmpwi r0, -1
+/* 80356980 003525E0 90 1D 01 48 */ stw r0, 0x148(r29)
+/* 80356984 003525E4 40 82 00 1C */ bne lbl_803569A0
+/* 80356988 003525E8 38 60 00 01 */ li r3, 1
+/* 8035698C 003525EC 38 00 00 07 */ li r0, 7
+/* 80356990 003525F0 90 7D 01 20 */ stw r3, 0x120(r29)
+/* 80356994 003525F4 38 60 00 00 */ li r3, 0
+/* 80356998 003525F8 90 1D 00 3C */ stw r0, 0x3c(r29)
+/* 8035699C 003525FC 48 00 01 4C */ b lbl_80356AE8
+lbl_803569A0:
+/* 803569A0 00352600 2C 00 00 00 */ cmpwi r0, 0
+/* 803569A4 00352604 40 82 00 0C */ bne lbl_803569B0
+/* 803569A8 00352608 93 3D 01 4C */ stw r25, 0x14c(r29)
+/* 803569AC 0035260C 48 00 01 28 */ b lbl_80356AD4
+lbl_803569B0:
+/* 803569B0 00352610 93 5D 01 4C */ stw r26, 0x14c(r29)
+/* 803569B4 00352614 48 00 01 20 */ b lbl_80356AD4
+lbl_803569B8:
+/* 803569B8 00352618 2C 1F 00 00 */ cmpwi r31, 0
+/* 803569BC 0035261C 41 82 00 4C */ beq lbl_80356A08
+/* 803569C0 00352620 80 1D 01 44 */ lwz r0, 0x144(r29)
+/* 803569C4 00352624 2C 00 00 0A */ cmpwi r0, 0xa
+/* 803569C8 00352628 40 80 00 40 */ bge lbl_80356A08
+/* 803569CC 0035262C 20 60 00 0A */ subfic r3, r0, 0xa
+/* 803569D0 00352630 7C 03 F8 00 */ cmpw r3, r31
+/* 803569D4 00352634 40 80 00 08 */ bge lbl_803569DC
+/* 803569D8 00352638 7C 7F 1B 78 */ mr r31, r3
+lbl_803569DC:
+/* 803569DC 0035263C 7C 7D 02 14 */ add r3, r29, r0
+/* 803569E0 00352640 7F C4 F3 78 */ mr r4, r30
+/* 803569E4 00352644 7F E5 FB 78 */ mr r5, r31
+/* 803569E8 00352648 38 63 01 38 */ addi r3, r3, 0x138
+/* 803569EC 0035264C 4B CA D6 15 */ bl memcpy
+/* 803569F0 00352650 80 7D 01 44 */ lwz r3, 0x144(r29)
+/* 803569F4 00352654 38 00 00 00 */ li r0, 0
+/* 803569F8 00352658 7C 63 FA 14 */ add r3, r3, r31
+/* 803569FC 0035265C 90 7D 01 44 */ stw r3, 0x144(r29)
+/* 80356A00 00352660 7C 7D 1A 14 */ add r3, r29, r3
+/* 80356A04 00352664 98 03 01 38 */ stb r0, 0x138(r3)
+lbl_80356A08:
+/* 80356A08 00352668 38 60 00 01 */ li r3, 1
+/* 80356A0C 0035266C 48 00 00 DC */ b lbl_80356AE8
+lbl_80356A10:
+/* 80356A10 00352670 2C 00 00 01 */ cmpwi r0, 1
+/* 80356A14 00352674 40 82 00 58 */ bne lbl_80356A6C
+/* 80356A18 00352678 80 1D 01 48 */ lwz r0, 0x148(r29)
+/* 80356A1C 0035267C 7F FB FB 78 */ mr r27, r31
+/* 80356A20 00352680 7C 00 F8 00 */ cmpw r0, r31
+/* 80356A24 00352684 40 80 00 08 */ bge lbl_80356A2C
+/* 80356A28 00352688 7C 1B 03 78 */ mr r27, r0
+lbl_80356A2C:
+/* 80356A2C 0035268C 7F A3 EB 78 */ mr r3, r29
+/* 80356A30 00352690 7F C4 F3 78 */ mr r4, r30
+/* 80356A34 00352694 7F 65 DB 78 */ mr r5, r27
+/* 80356A38 00352698 4B FF FD 79 */ bl ghiDeliverIncomingFileData
+/* 80356A3C 0035269C 2C 03 00 00 */ cmpwi r3, 0
+/* 80356A40 003526A0 40 82 00 0C */ bne lbl_80356A4C
+/* 80356A44 003526A4 38 60 00 00 */ li r3, 0
+/* 80356A48 003526A8 48 00 00 A0 */ b lbl_80356AE8
+lbl_80356A4C:
+/* 80356A4C 003526AC 80 1D 01 48 */ lwz r0, 0x148(r29)
+/* 80356A50 003526B0 7F DE DA 14 */ add r30, r30, r27
+/* 80356A54 003526B4 7F FB F8 50 */ subf r31, r27, r31
+/* 80356A58 003526B8 7C 1B 00 51 */ subf. r0, r27, r0
+/* 80356A5C 003526BC 90 1D 01 48 */ stw r0, 0x148(r29)
+/* 80356A60 003526C0 40 82 00 74 */ bne lbl_80356AD4
+/* 80356A64 003526C4 93 9D 01 4C */ stw r28, 0x14c(r29)
+/* 80356A68 003526C8 48 00 00 6C */ b lbl_80356AD4
+lbl_80356A6C:
+/* 80356A6C 003526CC 2C 00 00 02 */ cmpwi r0, 2
+/* 80356A70 003526D0 40 82 00 44 */ bne lbl_80356AB4
+/* 80356A74 003526D4 7F C3 F3 78 */ mr r3, r30
+/* 80356A78 003526D8 38 80 00 0A */ li r4, 0xa
+/* 80356A7C 003526DC 4B E7 7B 2D */ bl strchr
+/* 80356A80 003526E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80356A84 003526E4 40 82 00 0C */ bne lbl_80356A90
+/* 80356A88 003526E8 38 60 00 01 */ li r3, 1
+/* 80356A8C 003526EC 48 00 00 5C */ b lbl_80356AE8
+lbl_80356A90:
+/* 80356A90 003526F0 38 63 00 01 */ addi r3, r3, 1
+/* 80356A94 003526F4 9B 1D 01 38 */ stb r24, 0x138(r29)
+/* 80356A98 003526F8 7C 1E 18 50 */ subf r0, r30, r3
+/* 80356A9C 003526FC 93 1D 01 44 */ stw r24, 0x144(r29)
+/* 80356AA0 00352700 7C 7E 1B 78 */ mr r30, r3
+/* 80356AA4 00352704 7F E0 F8 50 */ subf r31, r0, r31
+/* 80356AA8 00352708 93 1D 01 48 */ stw r24, 0x148(r29)
+/* 80356AAC 0035270C 93 1D 01 4C */ stw r24, 0x14c(r29)
+/* 80356AB0 00352710 48 00 00 24 */ b lbl_80356AD4
+lbl_80356AB4:
+/* 80356AB4 00352714 2C 00 00 03 */ cmpwi r0, 3
+/* 80356AB8 00352718 40 82 00 14 */ bne lbl_80356ACC
+/* 80356ABC 0035271C 38 00 00 01 */ li r0, 1
+/* 80356AC0 00352720 38 60 00 01 */ li r3, 1
+/* 80356AC4 00352724 90 1D 01 20 */ stw r0, 0x120(r29)
+/* 80356AC8 00352728 48 00 00 20 */ b lbl_80356AE8
+lbl_80356ACC:
+/* 80356ACC 0035272C 38 60 00 00 */ li r3, 0
+/* 80356AD0 00352730 48 00 00 18 */ b lbl_80356AE8
+lbl_80356AD4:
+/* 80356AD4 00352734 2C 1F 00 00 */ cmpwi r31, 0
+/* 80356AD8 00352738 41 81 FD FC */ bgt lbl_803568D4
+/* 80356ADC 0035273C 38 60 00 01 */ li r3, 1
+/* 80356AE0 00352740 48 00 00 08 */ b lbl_80356AE8
+lbl_80356AE4:
+/* 80356AE4 00352744 4B FF FC CD */ bl ghiDeliverIncomingFileData
+lbl_80356AE8:
+/* 80356AE8 00352748 39 61 00 40 */ addi r11, r1, 0x40
+/* 80356AEC 0035274C 4B E7 06 79 */ bl _restgpr_23
+/* 80356AF0 00352750 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80356AF4 00352754 7C 08 03 A6 */ mtlr r0
+/* 80356AF8 00352758 38 21 00 40 */ addi r1, r1, 0x40
+/* 80356AFC 0035275C 4E 80 00 20 */ blr
+
+.global ghiDoReceivingHeaders
+ghiDoReceivingHeaders:
+/* 80356B00 00352760 94 21 EF C0 */ stwu r1, -0x1040(r1)
+/* 80356B04 00352764 7C 08 02 A6 */ mflr r0
+/* 80356B08 00352768 90 01 10 44 */ stw r0, 0x1044(r1)
+/* 80356B0C 0035276C 39 61 10 40 */ addi r11, r1, 0x1040
+/* 80356B10 00352770 4B E7 06 05 */ bl _savegpr_22
+/* 80356B14 00352774 38 00 10 00 */ li r0, 0x1000
+/* 80356B18 00352778 3F C0 80 45 */ lis r30, lbl_8044C238@ha
+/* 80356B1C 0035277C 90 01 00 08 */ stw r0, 8(r1)
+/* 80356B20 00352780 7C 78 1B 78 */ mr r24, r3
+/* 80356B24 00352784 3B DE C2 38 */ addi r30, r30, lbl_8044C238@l
+/* 80356B28 00352788 38 81 00 18 */ addi r4, r1, 0x18
+/* 80356B2C 0035278C 38 A1 00 08 */ addi r5, r1, 8
+/* 80356B30 00352790 3A E0 00 01 */ li r23, 1
+/* 80356B34 00352794 4B FF A9 11 */ bl ghiDoReceive
+/* 80356B38 00352798 2C 03 00 03 */ cmpwi r3, 3
+/* 80356B3C 0035279C 7C 76 1B 78 */ mr r22, r3
+/* 80356B40 003527A0 41 82 05 1C */ beq lbl_8035705C
+/* 80356B44 003527A4 2C 03 00 01 */ cmpwi r3, 1
+/* 80356B48 003527A8 41 82 05 14 */ beq lbl_8035705C
+/* 80356B4C 003527AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80356B50 003527B0 40 82 00 64 */ bne lbl_80356BB4
+/* 80356B54 003527B4 80 18 01 94 */ lwz r0, 0x194(r24)
+/* 80356B58 003527B8 2C 00 00 00 */ cmpwi r0, 0
+/* 80356B5C 003527BC 41 82 00 40 */ beq lbl_80356B9C
+/* 80356B60 003527C0 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80356B64 003527C4 38 78 00 C0 */ addi r3, r24, 0xc0
+/* 80356B68 003527C8 38 81 00 18 */ addi r4, r1, 0x18
+/* 80356B6C 003527CC 4B FF 9F 51 */ bl ghiAppendDataToBuffer
+/* 80356B70 003527D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80356B74 003527D4 41 82 04 E8 */ beq lbl_8035705C
+/* 80356B78 003527D8 7F 03 C3 78 */ mr r3, r24
+/* 80356B7C 003527DC 4B FF A7 79 */ bl ghiDecryptReceivedData
+/* 80356B80 003527E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80356B84 003527E4 40 82 00 30 */ bne lbl_80356BB4
+/* 80356B88 003527E8 38 60 00 01 */ li r3, 1
+/* 80356B8C 003527EC 38 00 00 11 */ li r0, 0x11
+/* 80356B90 003527F0 90 78 01 20 */ stw r3, 0x120(r24)
+/* 80356B94 003527F4 90 18 00 3C */ stw r0, 0x3c(r24)
+/* 80356B98 003527F8 48 00 04 C4 */ b lbl_8035705C
+lbl_80356B9C:
+/* 80356B9C 003527FC 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80356BA0 00352800 38 78 00 9C */ addi r3, r24, 0x9c
+/* 80356BA4 00352804 38 81 00 18 */ addi r4, r1, 0x18
+/* 80356BA8 00352808 4B FF 9F 15 */ bl ghiAppendDataToBuffer
+/* 80356BAC 0035280C 2C 03 00 00 */ cmpwi r3, 0
+/* 80356BB0 00352810 41 82 04 AC */ beq lbl_8035705C
+lbl_80356BB4:
+/* 80356BB4 00352814 3C 60 51 EC */ lis r3, 0x51EB851F@ha
+/* 80356BB8 00352818 80 18 01 14 */ lwz r0, 0x114(r24)
+/* 80356BBC 0035281C 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
+/* 80356BC0 00352820 80 98 00 A0 */ lwz r4, 0xa0(r24)
+/* 80356BC4 00352824 7C 03 00 96 */ mulhw r0, r3, r0
+/* 80356BC8 00352828 80 78 01 1C */ lwz r3, 0x11c(r24)
+/* 80356BCC 0035282C 7F A4 1A 14 */ add r29, r4, r3
+/* 80356BD0 00352830 7C 00 2E 70 */ srawi r0, r0, 5
+/* 80356BD4 00352834 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80356BD8 00352838 7C 00 1A 14 */ add r0, r0, r3
+/* 80356BDC 0035283C 2C 00 00 01 */ cmpwi r0, 1
+/* 80356BE0 00352840 40 82 00 40 */ bne lbl_80356C20
+/* 80356BE4 00352844 7F A3 EB 78 */ mr r3, r29
+/* 80356BE8 00352848 38 8D 94 10 */ addi r4, r13, lbl_8063E6D0-_SDA_BASE_
+/* 80356BEC 0035284C 38 A0 00 02 */ li r5, 2
+/* 80356BF0 00352850 4B E7 79 79 */ bl strncmp
+/* 80356BF4 00352854 2C 03 00 00 */ cmpwi r3, 0
+/* 80356BF8 00352858 41 82 00 1C */ beq lbl_80356C14
+/* 80356BFC 0035285C 7F A3 EB 78 */ mr r3, r29
+/* 80356C00 00352860 38 8D 94 24 */ addi r4, r13, lbl_8063E6E4-_SDA_BASE_
+/* 80356C04 00352864 38 A0 00 02 */ li r5, 2
+/* 80356C08 00352868 4B E7 79 61 */ bl strncmp
+/* 80356C0C 0035286C 2C 03 00 00 */ cmpwi r3, 0
+/* 80356C10 00352870 40 82 00 10 */ bne lbl_80356C20
+lbl_80356C14:
+/* 80356C14 00352874 7F A3 EB 78 */ mr r3, r29
+/* 80356C18 00352878 3A E0 00 00 */ li r23, 0
+/* 80356C1C 0035287C 48 00 00 10 */ b lbl_80356C2C
+lbl_80356C20:
+/* 80356C20 00352880 7F A3 EB 78 */ mr r3, r29
+/* 80356C24 00352884 38 8D 94 28 */ addi r4, r13, lbl_8063E6E8-_SDA_BASE_
+/* 80356C28 00352888 4B E7 7B 79 */ bl strstr
+lbl_80356C2C:
+/* 80356C2C 0035288C 2C 03 00 00 */ cmpwi r3, 0
+/* 80356C30 00352890 40 82 00 10 */ bne lbl_80356C40
+/* 80356C34 00352894 7F A3 EB 78 */ mr r3, r29
+/* 80356C38 00352898 38 8D 94 24 */ addi r4, r13, lbl_8063E6E4-_SDA_BASE_
+/* 80356C3C 0035289C 4B E7 7B 65 */ bl strstr
+lbl_80356C40:
+/* 80356C40 003528A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80356C44 003528A4 41 82 03 F4 */ beq lbl_80357038
+/* 80356C48 003528A8 2C 17 00 01 */ cmpwi r23, 1
+/* 80356C4C 003528AC 40 82 00 08 */ bne lbl_80356C54
+/* 80356C50 003528B0 38 63 00 02 */ addi r3, r3, 2
+lbl_80356C54:
+/* 80356C54 003528B4 38 00 00 00 */ li r0, 0
+/* 80356C58 003528B8 3C 80 51 EC */ lis r4, 0x51EB851F@ha
+/* 80356C5C 003528BC 98 03 00 00 */ stb r0, 0(r3)
+/* 80356C60 003528C0 38 84 85 1F */ addi r4, r4, 0x51EB851F@l
+/* 80356C64 003528C4 3B 83 00 02 */ addi r28, r3, 2
+/* 80356C68 003528C8 80 18 01 14 */ lwz r0, 0x114(r24)
+/* 80356C6C 003528CC 80 D8 00 A0 */ lwz r6, 0xa0(r24)
+/* 80356C70 003528D0 7C 04 00 96 */ mulhw r0, r4, r0
+/* 80356C74 003528D4 80 98 00 A8 */ lwz r4, 0xa8(r24)
+/* 80356C78 003528D8 7C 66 18 50 */ subf r3, r6, r3
+/* 80356C7C 003528DC 7C A6 E0 50 */ subf r5, r6, r28
+/* 80356C80 003528E0 38 63 00 01 */ addi r3, r3, 1
+/* 80356C84 003528E4 90 78 00 A8 */ stw r3, 0xa8(r24)
+/* 80356C88 003528E8 7C 00 2E 70 */ srawi r0, r0, 5
+/* 80356C8C 003528EC 90 78 00 AC */ stw r3, 0xac(r24)
+/* 80356C90 003528F0 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80356C94 003528F4 7F 65 20 50 */ subf r27, r5, r4
+/* 80356C98 003528F8 7C 00 1A 14 */ add r0, r0, r3
+/* 80356C9C 003528FC 2C 00 00 01 */ cmpwi r0, 1
+/* 80356CA0 00352900 40 82 00 74 */ bne lbl_80356D14
+/* 80356CA4 00352904 2C 1B 00 00 */ cmpwi r27, 0
+/* 80356CA8 00352908 41 82 00 1C */ beq lbl_80356CC4
+/* 80356CAC 0035290C 7C C3 33 78 */ mr r3, r6
+/* 80356CB0 00352910 7F 84 E3 78 */ mr r4, r28
+/* 80356CB4 00352914 38 BB 00 01 */ addi r5, r27, 1
+/* 80356CB8 00352918 4B E7 35 BD */ bl memmove
+/* 80356CBC 0035291C 93 78 00 A8 */ stw r27, 0xa8(r24)
+/* 80356CC0 00352920 48 00 00 0C */ b lbl_80356CCC
+lbl_80356CC4:
+/* 80356CC4 00352924 38 78 00 9C */ addi r3, r24, 0x9c
+/* 80356CC8 00352928 4B FF A3 69 */ bl ghiResetBuffer
+lbl_80356CCC:
+/* 80356CCC 0035292C 80 18 01 7C */ lwz r0, 0x17c(r24)
+/* 80356CD0 00352930 2C 00 00 00 */ cmpwi r0, 0
+/* 80356CD4 00352934 41 82 00 24 */ beq lbl_80356CF8
+/* 80356CD8 00352938 38 60 00 00 */ li r3, 0
+/* 80356CDC 0035293C 38 00 00 06 */ li r0, 6
+/* 80356CE0 00352940 90 78 01 7C */ stw r3, 0x17c(r24)
+/* 80356CE4 00352944 7F 03 C3 78 */ mr r3, r24
+/* 80356CE8 00352948 38 80 00 00 */ li r4, 0
+/* 80356CEC 0035294C 38 A0 00 00 */ li r5, 0
+/* 80356CF0 00352950 90 18 00 10 */ stw r0, 0x10(r24)
+/* 80356CF4 00352954 4B FF A5 59 */ bl ghiCallProgressCallback
+lbl_80356CF8:
+/* 80356CF8 00352958 38 00 00 08 */ li r0, 8
+/* 80356CFC 0035295C 7F 03 C3 78 */ mr r3, r24
+/* 80356D00 00352960 90 18 00 10 */ stw r0, 0x10(r24)
+/* 80356D04 00352964 38 80 00 00 */ li r4, 0
+/* 80356D08 00352968 38 A0 00 00 */ li r5, 0
+/* 80356D0C 0035296C 4B FF A5 41 */ bl ghiCallProgressCallback
+/* 80356D10 00352970 48 00 03 4C */ b lbl_8035705C
+lbl_80356D14:
+/* 80356D14 00352974 2C 00 00 03 */ cmpwi r0, 3
+/* 80356D18 00352978 40 82 01 78 */ bne lbl_80356E90
+/* 80356D1C 0035297C 80 18 01 30 */ lwz r0, 0x130(r24)
+/* 80356D20 00352980 2C 00 00 0A */ cmpwi r0, 0xa
+/* 80356D24 00352984 40 81 00 18 */ ble lbl_80356D3C
+/* 80356D28 00352988 38 60 00 01 */ li r3, 1
+/* 80356D2C 0035298C 38 00 00 0B */ li r0, 0xb
+/* 80356D30 00352990 90 78 01 20 */ stw r3, 0x120(r24)
+/* 80356D34 00352994 90 18 00 3C */ stw r0, 0x3c(r24)
+/* 80356D38 00352998 48 00 03 24 */ b lbl_8035705C
+lbl_80356D3C:
+/* 80356D3C 0035299C 7F A3 EB 78 */ mr r3, r29
+/* 80356D40 003529A0 38 9E 00 80 */ addi r4, r30, 0x80
+/* 80356D44 003529A4 4B E7 7A 5D */ bl strstr
+/* 80356D48 003529A8 2C 03 00 00 */ cmpwi r3, 0
+/* 80356D4C 003529AC 41 82 01 44 */ beq lbl_80356E90
+/* 80356D50 003529B0 3C 80 80 42 */ lis r4, lbl_80422D48@ha
+/* 80356D54 003529B4 3B 63 00 09 */ addi r27, r3, 9
+/* 80356D58 003529B8 38 84 2D 48 */ addi r4, r4, lbl_80422D48@l
+/* 80356D5C 003529BC 80 A4 00 38 */ lwz r5, 0x38(r4)
+/* 80356D60 003529C0 48 00 00 08 */ b lbl_80356D68
+lbl_80356D64:
+/* 80356D64 003529C4 3B 7B 00 01 */ addi r27, r27, 1
+lbl_80356D68:
+/* 80356D68 003529C8 88 9B 00 00 */ lbz r4, 0(r27)
+/* 80356D6C 003529CC 38 00 00 00 */ li r0, 0
+/* 80356D70 003529D0 7C 84 07 75 */ extsb. r4, r4
+/* 80356D74 003529D4 41 80 00 0C */ blt lbl_80356D80
+/* 80356D78 003529D8 2C 04 01 00 */ cmpwi r4, 0x100
+/* 80356D7C 003529DC 41 80 00 08 */ blt lbl_80356D84
+lbl_80356D80:
+/* 80356D80 003529E0 38 00 00 01 */ li r0, 1
+lbl_80356D84:
+/* 80356D84 003529E4 2C 00 00 00 */ cmpwi r0, 0
+/* 80356D88 003529E8 41 82 00 0C */ beq lbl_80356D94
+/* 80356D8C 003529EC 38 00 00 00 */ li r0, 0
+/* 80356D90 003529F0 48 00 00 14 */ b lbl_80356DA4
+lbl_80356D94:
+/* 80356D94 003529F4 80 65 00 08 */ lwz r3, 8(r5)
+/* 80356D98 003529F8 54 80 08 3C */ slwi r0, r4, 1
+/* 80356D9C 003529FC 7C 03 02 2E */ lhzx r0, r3, r0
+/* 80356DA0 00352A00 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_80356DA4:
+/* 80356DA4 00352A04 2C 00 00 00 */ cmpwi r0, 0
+/* 80356DA8 00352A08 40 82 FF BC */ bne lbl_80356D64
+/* 80356DAC 00352A0C 7F 66 DB 78 */ mr r6, r27
+/* 80356DB0 00352A10 48 00 00 08 */ b lbl_80356DB8
+lbl_80356DB4:
+/* 80356DB4 00352A14 38 C6 00 01 */ addi r6, r6, 1
+lbl_80356DB8:
+/* 80356DB8 00352A18 88 06 00 00 */ lbz r0, 0(r6)
+/* 80356DBC 00352A1C 7C 04 07 75 */ extsb. r4, r0
+/* 80356DC0 00352A20 41 82 00 40 */ beq lbl_80356E00
+/* 80356DC4 00352A24 38 00 00 00 */ li r0, 0
+/* 80356DC8 00352A28 41 80 00 0C */ blt lbl_80356DD4
+/* 80356DCC 00352A2C 2C 04 01 00 */ cmpwi r4, 0x100
+/* 80356DD0 00352A30 41 80 00 08 */ blt lbl_80356DD8
+lbl_80356DD4:
+/* 80356DD4 00352A34 38 00 00 01 */ li r0, 1
+lbl_80356DD8:
+/* 80356DD8 00352A38 2C 00 00 00 */ cmpwi r0, 0
+/* 80356DDC 00352A3C 41 82 00 0C */ beq lbl_80356DE8
+/* 80356DE0 00352A40 38 00 00 00 */ li r0, 0
+/* 80356DE4 00352A44 48 00 00 14 */ b lbl_80356DF8
+lbl_80356DE8:
+/* 80356DE8 00352A48 80 65 00 08 */ lwz r3, 8(r5)
+/* 80356DEC 00352A4C 54 80 08 3C */ slwi r0, r4, 1
+/* 80356DF0 00352A50 7C 03 02 2E */ lhzx r0, r3, r0
+/* 80356DF4 00352A54 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
+lbl_80356DF8:
+/* 80356DF8 00352A58 2C 00 00 00 */ cmpwi r0, 0
+/* 80356DFC 00352A5C 41 82 FF B8 */ beq lbl_80356DB4
+lbl_80356E00:
+/* 80356E00 00352A60 38 00 00 00 */ li r0, 0
+/* 80356E04 00352A64 98 06 00 00 */ stb r0, 0(r6)
+/* 80356E08 00352A68 88 1B 00 00 */ lbz r0, 0(r27)
+/* 80356E0C 00352A6C 2C 00 00 2F */ cmpwi r0, 0x2f
+/* 80356E10 00352A70 40 82 00 5C */ bne lbl_80356E6C
+/* 80356E14 00352A74 7F 63 DB 78 */ mr r3, r27
+/* 80356E18 00352A78 4B E6 FD 4D */ bl strlen
+/* 80356E1C 00352A7C 7C 76 1B 78 */ mr r22, r3
+/* 80356E20 00352A80 80 78 00 18 */ lwz r3, 0x18(r24)
+/* 80356E24 00352A84 4B E6 FD 41 */ bl strlen
+/* 80356E28 00352A88 7C 63 B2 14 */ add r3, r3, r22
+/* 80356E2C 00352A8C 38 63 00 0E */ addi r3, r3, 0xe
+/* 80356E30 00352A90 4B FE 24 E5 */ bl gsimalloc
+/* 80356E34 00352A94 2C 03 00 00 */ cmpwi r3, 0
+/* 80356E38 00352A98 90 78 01 2C */ stw r3, 0x12c(r24)
+/* 80356E3C 00352A9C 40 82 00 10 */ bne lbl_80356E4C
+/* 80356E40 00352AA0 38 00 00 01 */ li r0, 1
+/* 80356E44 00352AA4 90 18 01 20 */ stw r0, 0x120(r24)
+/* 80356E48 00352AA8 90 18 00 3C */ stw r0, 0x3c(r24)
+lbl_80356E4C:
+/* 80356E4C 00352AAC 80 78 01 2C */ lwz r3, 0x12c(r24)
+/* 80356E50 00352AB0 7F 67 DB 78 */ mr r7, r27
+/* 80356E54 00352AB4 80 B8 00 18 */ lwz r5, 0x18(r24)
+/* 80356E58 00352AB8 38 9E 00 8C */ addi r4, r30, 0x8c
+/* 80356E5C 00352ABC A0 D8 00 20 */ lhz r6, 0x20(r24)
+/* 80356E60 00352AC0 4C C6 31 82 */ crclr 6
+/* 80356E64 00352AC4 4B E7 5C 99 */ bl sprintf
+/* 80356E68 00352AC8 48 00 01 F4 */ b lbl_8035705C
+lbl_80356E6C:
+/* 80356E6C 00352ACC 7F 63 DB 78 */ mr r3, r27
+/* 80356E70 00352AD0 4B FE 20 95 */ bl goastrdup
+/* 80356E74 00352AD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80356E78 00352AD8 90 78 01 2C */ stw r3, 0x12c(r24)
+/* 80356E7C 00352ADC 40 82 01 E0 */ bne lbl_8035705C
+/* 80356E80 00352AE0 38 00 00 01 */ li r0, 1
+/* 80356E84 00352AE4 90 18 01 20 */ stw r0, 0x120(r24)
+/* 80356E88 00352AE8 90 18 00 3C */ stw r0, 0x3c(r24)
+/* 80356E8C 00352AEC 48 00 01 D0 */ b lbl_8035705C
+lbl_80356E90:
+/* 80356E90 00352AF0 7F A3 EB 78 */ mr r3, r29
+/* 80356E94 00352AF4 38 9E 00 A0 */ addi r4, r30, 0xa0
+/* 80356E98 00352AF8 4B E7 79 09 */ bl strstr
+/* 80356E9C 00352AFC 2C 03 00 00 */ cmpwi r3, 0
+/* 80356EA0 00352B00 7C 7F 1B 78 */ mr r31, r3
+/* 80356EA4 00352B04 41 82 01 00 */ beq lbl_80356FA4
+/* 80356EA8 00352B08 3E C0 80 40 */ lis r22, lbl_80402580@ha
+/* 80356EAC 00352B0C 8E F6 25 80 */ lbzu r23, lbl_80402580@l(r22)
+/* 80356EB0 00352B10 3B 43 00 10 */ addi r26, r3, 0x10
+/* 80356EB4 00352B14 38 61 00 0C */ addi r3, r1, 0xc
+/* 80356EB8 00352B18 89 96 00 01 */ lbz r12, 1(r22)
+/* 80356EBC 00352B1C 7F 59 D3 78 */ mr r25, r26
+/* 80356EC0 00352B20 89 76 00 02 */ lbz r11, 2(r22)
+/* 80356EC4 00352B24 89 56 00 03 */ lbz r10, 3(r22)
+/* 80356EC8 00352B28 89 36 00 04 */ lbz r9, 4(r22)
+/* 80356ECC 00352B2C 89 16 00 05 */ lbz r8, 5(r22)
+/* 80356ED0 00352B30 88 F6 00 06 */ lbz r7, 6(r22)
+/* 80356ED4 00352B34 88 D6 00 07 */ lbz r6, 7(r22)
+/* 80356ED8 00352B38 88 B6 00 08 */ lbz r5, 8(r22)
+/* 80356EDC 00352B3C 88 96 00 09 */ lbz r4, 9(r22)
+/* 80356EE0 00352B40 88 16 00 0A */ lbz r0, 0xa(r22)
+/* 80356EE4 00352B44 9A E1 00 0C */ stb r23, 0xc(r1)
+/* 80356EE8 00352B48 99 81 00 0D */ stb r12, 0xd(r1)
+/* 80356EEC 00352B4C 99 61 00 0E */ stb r11, 0xe(r1)
+/* 80356EF0 00352B50 99 41 00 0F */ stb r10, 0xf(r1)
+/* 80356EF4 00352B54 99 21 00 10 */ stb r9, 0x10(r1)
+/* 80356EF8 00352B58 99 01 00 11 */ stb r8, 0x11(r1)
+/* 80356EFC 00352B5C 98 E1 00 12 */ stb r7, 0x12(r1)
+/* 80356F00 00352B60 98 C1 00 13 */ stb r6, 0x13(r1)
+/* 80356F04 00352B64 98 A1 00 14 */ stb r5, 0x14(r1)
+/* 80356F08 00352B68 98 81 00 15 */ stb r4, 0x15(r1)
+/* 80356F0C 00352B6C 98 01 00 16 */ stb r0, 0x16(r1)
+/* 80356F10 00352B70 4B E6 FC 55 */ bl strlen
+/* 80356F14 00352B74 48 00 00 08 */ b lbl_80356F1C
+lbl_80356F18:
+/* 80356F18 00352B78 3B 39 00 01 */ addi r25, r25, 1
+lbl_80356F1C:
+/* 80356F1C 00352B7C 2C 19 00 00 */ cmpwi r25, 0
+/* 80356F20 00352B80 41 82 00 28 */ beq lbl_80356F48
+/* 80356F24 00352B84 88 19 00 00 */ lbz r0, 0(r25)
+/* 80356F28 00352B88 7C 00 07 75 */ extsb. r0, r0
+/* 80356F2C 00352B8C 41 82 00 1C */ beq lbl_80356F48
+/* 80356F30 00352B90 2C 00 00 0A */ cmpwi r0, 0xa
+/* 80356F34 00352B94 41 82 00 14 */ beq lbl_80356F48
+/* 80356F38 00352B98 2C 00 00 0D */ cmpwi r0, 0xd
+/* 80356F3C 00352B9C 41 82 00 0C */ beq lbl_80356F48
+/* 80356F40 00352BA0 2C 00 00 20 */ cmpwi r0, 0x20
+/* 80356F44 00352BA4 40 82 FF D4 */ bne lbl_80356F18
+lbl_80356F48:
+/* 80356F48 00352BA8 7C BA C8 50 */ subf r5, r26, r25
+/* 80356F4C 00352BAC 7C 05 18 00 */ cmpw r5, r3
+/* 80356F50 00352BB0 40 81 00 18 */ ble lbl_80356F68
+/* 80356F54 00352BB4 38 60 00 01 */ li r3, 1
+/* 80356F58 00352BB8 38 00 00 10 */ li r0, 0x10
+/* 80356F5C 00352BBC 90 78 01 20 */ stw r3, 0x120(r24)
+/* 80356F60 00352BC0 90 18 00 3C */ stw r0, 0x3c(r24)
+/* 80356F64 00352BC4 48 00 00 F8 */ b lbl_8035705C
+lbl_80356F68:
+/* 80356F68 00352BC8 7C 03 28 00 */ cmpw r3, r5
+/* 80356F6C 00352BCC 40 82 00 2C */ bne lbl_80356F98
+/* 80356F70 00352BD0 7F 43 D3 78 */ mr r3, r26
+/* 80356F74 00352BD4 38 81 00 0C */ addi r4, r1, 0xc
+/* 80356F78 00352BD8 4B E7 75 F1 */ bl strncmp
+/* 80356F7C 00352BDC 2C 03 00 00 */ cmpwi r3, 0
+/* 80356F80 00352BE0 41 80 00 18 */ blt lbl_80356F98
+/* 80356F84 00352BE4 38 60 00 01 */ li r3, 1
+/* 80356F88 00352BE8 38 00 00 10 */ li r0, 0x10
+/* 80356F8C 00352BEC 90 78 01 20 */ stw r3, 0x120(r24)
+/* 80356F90 00352BF0 90 18 00 3C */ stw r0, 0x3c(r24)
+/* 80356F94 00352BF4 48 00 00 C8 */ b lbl_8035705C
+lbl_80356F98:
+/* 80356F98 00352BF8 7F 43 D3 78 */ mr r3, r26
+/* 80356F9C 00352BFC 4B E7 97 71 */ bl atoi
+/* 80356FA0 00352C00 90 78 01 28 */ stw r3, 0x128(r24)
+lbl_80356FA4:
+/* 80356FA4 00352C04 7F A3 EB 78 */ mr r3, r29
+/* 80356FA8 00352C08 38 9E 00 B0 */ addi r4, r30, 0xb0
+/* 80356FAC 00352C0C 4B E7 77 F5 */ bl strstr
+/* 80356FB0 00352C10 7C 03 00 D0 */ neg r0, r3
+/* 80356FB4 00352C14 7C 00 1B 78 */ or r0, r0, r3
+/* 80356FB8 00352C18 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 80356FBC 00352C1C 90 18 01 34 */ stw r0, 0x134(r24)
+/* 80356FC0 00352C20 41 82 00 18 */ beq lbl_80356FD8
+/* 80356FC4 00352C24 38 00 00 00 */ li r0, 0
+/* 80356FC8 00352C28 98 18 01 38 */ stb r0, 0x138(r24)
+/* 80356FCC 00352C2C 90 18 01 44 */ stw r0, 0x144(r24)
+/* 80356FD0 00352C30 90 18 01 48 */ stw r0, 0x148(r24)
+/* 80356FD4 00352C34 90 18 01 4C */ stw r0, 0x14c(r24)
+lbl_80356FD8:
+/* 80356FD8 00352C38 80 78 00 0C */ lwz r3, 0xc(r24)
+/* 80356FDC 00352C3C 38 03 FF FD */ addi r0, r3, -3
+/* 80356FE0 00352C40 28 00 00 01 */ cmplwi r0, 1
+/* 80356FE4 00352C44 41 81 00 10 */ bgt lbl_80356FF4
+/* 80356FE8 00352C48 38 00 00 01 */ li r0, 1
+/* 80356FEC 00352C4C 90 18 01 20 */ stw r0, 0x120(r24)
+/* 80356FF0 00352C50 48 00 00 6C */ b lbl_8035705C
+lbl_80356FF4:
+/* 80356FF4 00352C54 38 00 00 0A */ li r0, 0xa
+/* 80356FF8 00352C58 2C 1F 00 00 */ cmpwi r31, 0
+/* 80356FFC 00352C5C 90 18 00 10 */ stw r0, 0x10(r24)
+/* 80357000 00352C60 41 82 00 1C */ beq lbl_8035701C
+/* 80357004 00352C64 80 18 01 28 */ lwz r0, 0x128(r24)
+/* 80357008 00352C68 2C 00 00 00 */ cmpwi r0, 0
+/* 8035700C 00352C6C 40 82 00 10 */ bne lbl_8035701C
+/* 80357010 00352C70 38 00 00 01 */ li r0, 1
+/* 80357014 00352C74 90 18 01 20 */ stw r0, 0x120(r24)
+/* 80357018 00352C78 48 00 00 44 */ b lbl_8035705C
+lbl_8035701C:
+/* 8035701C 00352C7C 2C 1B 00 00 */ cmpwi r27, 0
+/* 80357020 00352C80 40 81 00 3C */ ble lbl_8035705C
+/* 80357024 00352C84 7F 03 C3 78 */ mr r3, r24
+/* 80357028 00352C88 7F 84 E3 78 */ mr r4, r28
+/* 8035702C 00352C8C 7F 65 DB 78 */ mr r5, r27
+/* 80357030 00352C90 4B FF F8 65 */ bl ghiProcessIncomingFileData
+/* 80357034 00352C94 48 00 00 28 */ b lbl_8035705C
+lbl_80357038:
+/* 80357038 00352C98 2C 16 00 02 */ cmpwi r22, 2
+/* 8035703C 00352C9C 40 82 00 20 */ bne lbl_8035705C
+/* 80357040 00352CA0 38 60 00 01 */ li r3, 1
+/* 80357044 00352CA4 38 00 00 07 */ li r0, 7
+/* 80357048 00352CA8 90 78 01 20 */ stw r3, 0x120(r24)
+/* 8035704C 00352CAC 80 78 00 4C */ lwz r3, 0x4c(r24)
+/* 80357050 00352CB0 90 18 00 3C */ stw r0, 0x3c(r24)
+/* 80357054 00352CB4 4B FE 0F 55 */ bl GOAGetLastError
+/* 80357058 00352CB8 90 78 00 50 */ stw r3, 0x50(r24)
+lbl_8035705C:
+/* 8035705C 00352CBC 39 61 10 40 */ addi r11, r1, 0x1040
+/* 80357060 00352CC0 4B E7 01 01 */ bl _restgpr_22
+/* 80357064 00352CC4 80 01 10 44 */ lwz r0, 0x1044(r1)
+/* 80357068 00352CC8 7C 08 03 A6 */ mtlr r0
+/* 8035706C 00352CCC 38 21 10 40 */ addi r1, r1, 0x1040
+/* 80357070 00352CD0 4E 80 00 20 */ blr
+
+.global ghiDoReceivingFile
+ghiDoReceivingFile:
+/* 80357074 00352CD4 94 21 DF E0 */ stwu r1, -0x2020(r1)
+/* 80357078 00352CD8 7C 08 02 A6 */ mflr r0
+/* 8035707C 00352CDC 90 01 20 24 */ stw r0, 0x2024(r1)
+/* 80357080 00352CE0 93 E1 20 1C */ stw r31, 0x201c(r1)
+/* 80357084 00352CE4 93 C1 20 18 */ stw r30, 0x2018(r1)
+/* 80357088 00352CE8 93 A1 20 14 */ stw r29, 0x2014(r1)
+/* 8035708C 00352CEC 7C 7D 1B 78 */ mr r29, r3
+/* 80357090 00352CF0 4B FE 1F 49 */ bl current_time
+/* 80357094 00352CF4 7C 7E 1B 78 */ mr r30, r3
+/* 80357098 00352CF8 38 60 00 00 */ li r3, 0
+/* 8035709C 00352CFC 3B E0 20 00 */ li r31, 0x2000
+/* 803570A0 00352D00 48 00 00 F8 */ b lbl_80357198
+lbl_803570A4:
+/* 803570A4 00352D04 93 E1 00 08 */ stw r31, 8(r1)
+/* 803570A8 00352D08 7F A3 EB 78 */ mr r3, r29
+/* 803570AC 00352D0C 38 81 00 10 */ addi r4, r1, 0x10
+/* 803570B0 00352D10 38 A1 00 08 */ addi r5, r1, 8
+/* 803570B4 00352D14 4B FF A3 91 */ bl ghiDoReceive
+/* 803570B8 00352D18 2C 03 00 03 */ cmpwi r3, 3
+/* 803570BC 00352D1C 41 82 00 F4 */ beq lbl_803571B0
+/* 803570C0 00352D20 2C 03 00 01 */ cmpwi r3, 1
+/* 803570C4 00352D24 41 82 00 EC */ beq lbl_803571B0
+/* 803570C8 00352D28 2C 03 00 02 */ cmpwi r3, 2
+/* 803570CC 00352D2C 40 82 00 30 */ bne lbl_803570FC
+/* 803570D0 00352D30 80 7D 01 28 */ lwz r3, 0x128(r29)
+/* 803570D4 00352D34 38 00 00 01 */ li r0, 1
+/* 803570D8 00352D38 90 1D 01 20 */ stw r0, 0x120(r29)
+/* 803570DC 00352D3C 2C 03 00 00 */ cmpwi r3, 0
+/* 803570E0 00352D40 40 81 00 D0 */ ble lbl_803571B0
+/* 803570E4 00352D44 80 1D 01 24 */ lwz r0, 0x124(r29)
+/* 803570E8 00352D48 7C 00 18 00 */ cmpw r0, r3
+/* 803570EC 00352D4C 40 80 00 C4 */ bge lbl_803571B0
+/* 803570F0 00352D50 38 00 00 0F */ li r0, 0xf
+/* 803570F4 00352D54 90 1D 00 3C */ stw r0, 0x3c(r29)
+/* 803570F8 00352D58 48 00 00 B8 */ b lbl_803571B0
+lbl_803570FC:
+/* 803570FC 00352D5C 80 1D 01 94 */ lwz r0, 0x194(r29)
+/* 80357100 00352D60 2C 00 00 00 */ cmpwi r0, 0
+/* 80357104 00352D64 41 82 00 74 */ beq lbl_80357178
+/* 80357108 00352D68 80 A1 00 08 */ lwz r5, 8(r1)
+/* 8035710C 00352D6C 38 7D 00 C0 */ addi r3, r29, 0xc0
+/* 80357110 00352D70 38 81 00 10 */ addi r4, r1, 0x10
+/* 80357114 00352D74 4B FF 99 A9 */ bl ghiAppendDataToBuffer
+/* 80357118 00352D78 2C 03 00 00 */ cmpwi r3, 0
+/* 8035711C 00352D7C 41 82 00 94 */ beq lbl_803571B0
+/* 80357120 00352D80 80 1D 00 AC */ lwz r0, 0xac(r29)
+/* 80357124 00352D84 7F A3 EB 78 */ mr r3, r29
+/* 80357128 00352D88 90 1D 00 A8 */ stw r0, 0xa8(r29)
+/* 8035712C 00352D8C 4B FF A1 C9 */ bl ghiDecryptReceivedData
+/* 80357130 00352D90 2C 03 00 00 */ cmpwi r3, 0
+/* 80357134 00352D94 40 82 00 18 */ bne lbl_8035714C
+/* 80357138 00352D98 38 60 00 01 */ li r3, 1
+/* 8035713C 00352D9C 38 00 00 11 */ li r0, 0x11
+/* 80357140 00352DA0 90 7D 01 20 */ stw r3, 0x120(r29)
+/* 80357144 00352DA4 90 1D 00 3C */ stw r0, 0x3c(r29)
+/* 80357148 00352DA8 48 00 00 68 */ b lbl_803571B0
+lbl_8035714C:
+/* 8035714C 00352DAC 80 9D 00 AC */ lwz r4, 0xac(r29)
+/* 80357150 00352DB0 80 1D 00 A8 */ lwz r0, 0xa8(r29)
+/* 80357154 00352DB4 7C A4 00 51 */ subf. r5, r4, r0
+/* 80357158 00352DB8 41 82 00 38 */ beq lbl_80357190
+/* 8035715C 00352DBC 80 1D 00 A0 */ lwz r0, 0xa0(r29)
+/* 80357160 00352DC0 7F A3 EB 78 */ mr r3, r29
+/* 80357164 00352DC4 7C 80 22 14 */ add r4, r0, r4
+/* 80357168 00352DC8 4B FF F7 2D */ bl ghiProcessIncomingFileData
+/* 8035716C 00352DCC 2C 03 00 00 */ cmpwi r3, 0
+/* 80357170 00352DD0 40 82 00 20 */ bne lbl_80357190
+/* 80357174 00352DD4 48 00 00 3C */ b lbl_803571B0
+lbl_80357178:
+/* 80357178 00352DD8 80 A1 00 08 */ lwz r5, 8(r1)
+/* 8035717C 00352DDC 7F A3 EB 78 */ mr r3, r29
+/* 80357180 00352DE0 38 81 00 10 */ addi r4, r1, 0x10
+/* 80357184 00352DE4 4B FF F7 11 */ bl ghiProcessIncomingFileData
+/* 80357188 00352DE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035718C 00352DEC 41 82 00 24 */ beq lbl_803571B0
+lbl_80357190:
+/* 80357190 00352DF0 4B FE 1E 49 */ bl current_time
+/* 80357194 00352DF4 7C 7E 18 50 */ subf r3, r30, r3
+lbl_80357198:
+/* 80357198 00352DF8 80 1D 01 20 */ lwz r0, 0x120(r29)
+/* 8035719C 00352DFC 2C 00 00 00 */ cmpwi r0, 0
+/* 803571A0 00352E00 40 82 00 10 */ bne lbl_803571B0
+/* 803571A4 00352E04 80 1D 01 84 */ lwz r0, 0x184(r29)
+/* 803571A8 00352E08 7C 03 00 40 */ cmplw r3, r0
+/* 803571AC 00352E0C 41 80 FE F8 */ blt lbl_803570A4
+lbl_803571B0:
+/* 803571B0 00352E10 80 01 20 24 */ lwz r0, 0x2024(r1)
+/* 803571B4 00352E14 83 E1 20 1C */ lwz r31, 0x201c(r1)
+/* 803571B8 00352E18 83 C1 20 18 */ lwz r30, 0x2018(r1)
+/* 803571BC 00352E1C 83 A1 20 14 */ lwz r29, 0x2014(r1)
+/* 803571C0 00352E20 7C 08 03 A6 */ mtlr r0
+/* 803571C4 00352E24 38 21 20 20 */ addi r1, r1, 0x2020
+/* 803571C8 00352E28 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gp.s b/asm/SDK/DWC/gamespy/gp.s new file mode 100644 index 0000000..2ef9eee --- /dev/null +++ b/asm/SDK/DWC/gamespy/gp.s @@ -0,0 +1,1169 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpInitialize
+gpInitialize:
+/* 8033CDEC 00338A4C 80 0D B0 A8 */ lwz r0, lbl_80640368-_SDA_BASE_(r13)
+/* 8033CDF0 00338A50 2C 00 00 01 */ cmpwi r0, 1
+/* 8033CDF4 00338A54 41 82 00 0C */ beq lbl_8033CE00
+/* 8033CDF8 00338A58 38 60 00 02 */ li r3, 2
+/* 8033CDFC 00338A5C 4E 80 00 20 */ blr
+lbl_8033CE00:
+/* 8033CE00 00338A60 2C 03 00 00 */ cmpwi r3, 0
+/* 8033CE04 00338A64 40 82 00 0C */ bne lbl_8033CE10
+/* 8033CE08 00338A68 38 60 00 02 */ li r3, 2
+/* 8033CE0C 00338A6C 4E 80 00 20 */ blr
+lbl_8033CE10:
+/* 8033CE10 00338A70 48 00 0D 44 */ b lbl_8033DB54
+/* 8033CE14 00338A74 4E 80 00 20 */ blr
+
+.global gpDestroy
+gpDestroy:
+/* 8033CE18 00338A78 2C 03 00 00 */ cmpwi r3, 0
+/* 8033CE1C 00338A7C 4D 82 00 20 */ beqlr
+/* 8033CE20 00338A80 80 03 00 00 */ lwz r0, 0(r3)
+/* 8033CE24 00338A84 2C 00 00 00 */ cmpwi r0, 0
+/* 8033CE28 00338A88 40 82 00 08 */ bne lbl_8033CE30
+/* 8033CE2C 00338A8C 4E 80 00 20 */ blr
+lbl_8033CE30:
+/* 8033CE30 00338A90 48 00 0E E8 */ b lbl_8033DD18
+/* 8033CE34 00338A94 4E 80 00 20 */ blr
+
+.global gpProcess
+gpProcess:
+/* 8033CE38 00338A98 2C 03 00 00 */ cmpwi r3, 0
+/* 8033CE3C 00338A9C 41 82 00 10 */ beq lbl_8033CE4C
+/* 8033CE40 00338AA0 80 83 00 00 */ lwz r4, 0(r3)
+/* 8033CE44 00338AA4 2C 04 00 00 */ cmpwi r4, 0
+/* 8033CE48 00338AA8 40 82 00 0C */ bne lbl_8033CE54
+lbl_8033CE4C:
+/* 8033CE4C 00338AAC 38 60 00 02 */ li r3, 2
+/* 8033CE50 00338AB0 4E 80 00 20 */ blr
+lbl_8033CE54:
+/* 8033CE54 00338AB4 80 04 01 08 */ lwz r0, 0x108(r4)
+/* 8033CE58 00338AB8 2C 00 00 00 */ cmpwi r0, 0
+/* 8033CE5C 00338ABC 41 82 00 0C */ beq lbl_8033CE68
+/* 8033CE60 00338AC0 38 60 00 00 */ li r3, 0
+/* 8033CE64 00338AC4 4E 80 00 20 */ blr
+lbl_8033CE68:
+/* 8033CE68 00338AC8 38 80 00 00 */ li r4, 0
+/* 8033CE6C 00338ACC 48 00 13 40 */ b gpiProcess
+/* 8033CE70 00338AD0 4E 80 00 20 */ blr
+
+.global gpSetCallback
+gpSetCallback:
+/* 8033CE74 00338AD4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033CE78 00338AD8 7C 08 02 A6 */ mflr r0
+/* 8033CE7C 00338ADC 2C 03 00 00 */ cmpwi r3, 0
+/* 8033CE80 00338AE0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033CE84 00338AE4 41 82 00 10 */ beq lbl_8033CE94
+/* 8033CE88 00338AE8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8033CE8C 00338AEC 2C 00 00 00 */ cmpwi r0, 0
+/* 8033CE90 00338AF0 40 82 00 0C */ bne lbl_8033CE9C
+lbl_8033CE94:
+/* 8033CE94 00338AF4 38 60 00 02 */ li r3, 2
+/* 8033CE98 00338AF8 48 00 00 3C */ b lbl_8033CED4
+lbl_8033CE9C:
+/* 8033CE9C 00338AFC 2C 04 00 00 */ cmpwi r4, 0
+/* 8033CEA0 00338B00 41 80 00 0C */ blt lbl_8033CEAC
+/* 8033CEA4 00338B04 2C 04 00 09 */ cmpwi r4, 9
+/* 8033CEA8 00338B08 41 80 00 18 */ blt lbl_8033CEC0
+lbl_8033CEAC:
+/* 8033CEAC 00338B0C 3C 80 80 45 */ lis r4, lbl_8044A458@ha
+/* 8033CEB0 00338B10 38 84 A4 58 */ addi r4, r4, lbl_8044A458@l
+/* 8033CEB4 00338B14 48 00 B5 A5 */ bl gpiSetErrorString
+/* 8033CEB8 00338B18 38 60 00 02 */ li r3, 2
+/* 8033CEBC 00338B1C 48 00 00 18 */ b lbl_8033CED4
+lbl_8033CEC0:
+/* 8033CEC0 00338B20 54 84 18 38 */ slwi r4, r4, 3
+/* 8033CEC4 00338B24 38 60 00 00 */ li r3, 0
+/* 8033CEC8 00338B28 7C 80 22 14 */ add r4, r0, r4
+/* 8033CECC 00338B2C 90 A4 01 A8 */ stw r5, 0x1a8(r4)
+/* 8033CED0 00338B30 90 C4 01 AC */ stw r6, 0x1ac(r4)
+lbl_8033CED4:
+/* 8033CED4 00338B34 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033CED8 00338B38 7C 08 03 A6 */ mtlr r0
+/* 8033CEDC 00338B3C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033CEE0 00338B40 4E 80 00 20 */ blr
+
+.global gpConnectPreAuthenticatedA
+gpConnectPreAuthenticatedA:
+/* 8033CEE4 00338B44 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8033CEE8 00338B48 7C 08 02 A6 */ mflr r0
+/* 8033CEEC 00338B4C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033CEF0 00338B50 7C 8C 23 78 */ mr r12, r4
+/* 8033CEF4 00338B54 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8033CEF8 00338B58 7C AB 2B 78 */ mr r11, r5
+/* 8033CEFC 00338B5C 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 8033CF00 00338B60 7D 3F 4B 78 */ mr r31, r9
+/* 8033CF04 00338B64 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 8033CF08 00338B68 7D 1E 43 78 */ mr r30, r8
+/* 8033CF0C 00338B6C 93 A1 00 44 */ stw r29, 0x44(r1)
+/* 8033CF10 00338B70 7C 7D 1B 78 */ mr r29, r3
+/* 8033CF14 00338B74 41 82 00 10 */ beq lbl_8033CF24
+/* 8033CF18 00338B78 81 43 00 00 */ lwz r10, 0(r3)
+/* 8033CF1C 00338B7C 2C 0A 00 00 */ cmpwi r10, 0
+/* 8033CF20 00338B80 40 82 00 0C */ bne lbl_8033CF2C
+lbl_8033CF24:
+/* 8033CF24 00338B84 38 60 00 02 */ li r3, 2
+/* 8033CF28 00338B88 48 00 00 CC */ b lbl_8033CFF4
+lbl_8033CF2C:
+/* 8033CF2C 00338B8C 2C 04 00 00 */ cmpwi r4, 0
+/* 8033CF30 00338B90 41 82 00 10 */ beq lbl_8033CF40
+/* 8033CF34 00338B94 88 04 00 00 */ lbz r0, 0(r4)
+/* 8033CF38 00338B98 7C 00 07 75 */ extsb. r0, r0
+/* 8033CF3C 00338B9C 40 82 00 0C */ bne lbl_8033CF48
+lbl_8033CF40:
+/* 8033CF40 00338BA0 38 60 00 02 */ li r3, 2
+/* 8033CF44 00338BA4 48 00 00 B0 */ b lbl_8033CFF4
+lbl_8033CF48:
+/* 8033CF48 00338BA8 2C 05 00 00 */ cmpwi r5, 0
+/* 8033CF4C 00338BAC 41 82 00 10 */ beq lbl_8033CF5C
+/* 8033CF50 00338BB0 88 05 00 00 */ lbz r0, 0(r5)
+/* 8033CF54 00338BB4 7C 00 07 75 */ extsb. r0, r0
+/* 8033CF58 00338BB8 40 82 00 0C */ bne lbl_8033CF64
+lbl_8033CF5C:
+/* 8033CF5C 00338BBC 38 60 00 02 */ li r3, 2
+/* 8033CF60 00338BC0 48 00 00 94 */ b lbl_8033CFF4
+lbl_8033CF64:
+/* 8033CF64 00338BC4 2C 08 00 00 */ cmpwi r8, 0
+/* 8033CF68 00338BC8 40 82 00 18 */ bne lbl_8033CF80
+/* 8033CF6C 00338BCC 3C 80 80 45 */ lis r4, lbl_8044A468@ha
+/* 8033CF70 00338BD0 38 84 A4 68 */ addi r4, r4, lbl_8044A468@l
+/* 8033CF74 00338BD4 48 00 B4 E5 */ bl gpiSetErrorString
+/* 8033CF78 00338BD8 38 60 00 02 */ li r3, 2
+/* 8033CF7C 00338BDC 48 00 00 78 */ b lbl_8033CFF4
+lbl_8033CF80:
+/* 8033CF80 00338BE0 80 0A 01 08 */ lwz r0, 0x108(r10)
+/* 8033CF84 00338BE4 2C 00 00 00 */ cmpwi r0, 0
+/* 8033CF88 00338BE8 41 82 00 34 */ beq lbl_8033CFBC
+/* 8033CF8C 00338BEC 38 61 00 20 */ addi r3, r1, 0x20
+/* 8033CF90 00338BF0 38 80 00 00 */ li r4, 0
+/* 8033CF94 00338BF4 38 A0 00 20 */ li r5, 0x20
+/* 8033CF98 00338BF8 4B CC 71 6D */ bl memset
+/* 8033CF9C 00338BFC 7F CC F3 78 */ mr r12, r30
+/* 8033CFA0 00338C00 7F A3 EB 78 */ mr r3, r29
+/* 8033CFA4 00338C04 7F E5 FB 78 */ mr r5, r31
+/* 8033CFA8 00338C08 38 81 00 20 */ addi r4, r1, 0x20
+/* 8033CFAC 00338C0C 7D 89 03 A6 */ mtctr r12
+/* 8033CFB0 00338C10 4E 80 04 21 */ bctrl
+/* 8033CFB4 00338C14 38 60 00 00 */ li r3, 0
+/* 8033CFB8 00338C18 48 00 00 3C */ b lbl_8033CFF4
+lbl_8033CFBC:
+/* 8033CFBC 00338C1C 90 C1 00 08 */ stw r6, 8(r1)
+/* 8033CFC0 00338C20 38 00 00 00 */ li r0, 0
+/* 8033CFC4 00338C24 38 8D 8F 40 */ addi r4, r13, lbl_8063E200-_SDA_BASE_
+/* 8033CFC8 00338C28 38 AD 8F 40 */ addi r5, r13, lbl_8063E200-_SDA_BASE_
+/* 8033CFCC 00338C2C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8033CFD0 00338C30 38 CD 8F 40 */ addi r6, r13, lbl_8063E200-_SDA_BASE_
+/* 8033CFD4 00338C34 39 40 00 00 */ li r10, 0
+/* 8033CFD8 00338C38 90 E1 00 10 */ stw r7, 0x10(r1)
+/* 8033CFDC 00338C3C 38 ED 8F 40 */ addi r7, r13, lbl_8063E200-_SDA_BASE_
+/* 8033CFE0 00338C40 91 01 00 14 */ stw r8, 0x14(r1)
+/* 8033CFE4 00338C44 7D 88 63 78 */ mr r8, r12
+/* 8033CFE8 00338C48 91 21 00 18 */ stw r9, 0x18(r1)
+/* 8033CFEC 00338C4C 7D 69 5B 78 */ mr r9, r11
+/* 8033CFF0 00338C50 48 00 34 7D */ bl gpiConnect
+lbl_8033CFF4:
+/* 8033CFF4 00338C54 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8033CFF8 00338C58 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 8033CFFC 00338C5C 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 8033D000 00338C60 83 A1 00 44 */ lwz r29, 0x44(r1)
+/* 8033D004 00338C64 7C 08 03 A6 */ mtlr r0
+/* 8033D008 00338C68 38 21 00 50 */ addi r1, r1, 0x50
+/* 8033D00C 00338C6C 4E 80 00 20 */ blr
+
+.global gpDisconnect
+gpDisconnect:
+/* 8033D010 00338C70 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033D014 00338C74 7C 08 02 A6 */ mflr r0
+/* 8033D018 00338C78 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D01C 00338C7C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033D020 00338C80 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8033D024 00338C84 7C 7F 1B 78 */ mr r31, r3
+/* 8033D028 00338C88 41 82 00 30 */ beq lbl_8033D058
+/* 8033D02C 00338C8C 80 83 00 00 */ lwz r4, 0(r3)
+/* 8033D030 00338C90 2C 04 00 00 */ cmpwi r4, 0
+/* 8033D034 00338C94 40 82 00 08 */ bne lbl_8033D03C
+/* 8033D038 00338C98 48 00 00 20 */ b lbl_8033D058
+lbl_8033D03C:
+/* 8033D03C 00338C9C 80 04 01 08 */ lwz r0, 0x108(r4)
+/* 8033D040 00338CA0 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D044 00338CA4 40 82 00 14 */ bne lbl_8033D058
+/* 8033D048 00338CA8 38 80 00 01 */ li r4, 1
+/* 8033D04C 00338CAC 48 00 44 D5 */ bl gpiDisconnect
+/* 8033D050 00338CB0 7F E3 FB 78 */ mr r3, r31
+/* 8033D054 00338CB4 48 00 0D 35 */ bl gpiReset
+lbl_8033D058:
+/* 8033D058 00338CB8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033D05C 00338CBC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8033D060 00338CC0 7C 08 03 A6 */ mtlr r0
+/* 8033D064 00338CC4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033D068 00338CC8 4E 80 00 20 */ blr
+
+.global gpProfileSearchA
+gpProfileSearchA:
+/* 8033D06C 00338CCC 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8033D070 00338CD0 7C 08 02 A6 */ mflr r0
+/* 8033D074 00338CD4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D078 00338CD8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8033D07C 00338CDC 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 8033D080 00338CE0 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 8033D084 00338CE4 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 8033D088 00338CE8 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 8033D08C 00338CEC 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 8033D090 00338CF0 7C 7D 1B 78 */ mr r29, r3
+/* 8033D094 00338CF4 41 82 00 10 */ beq lbl_8033D0A4
+/* 8033D098 00338CF8 81 63 00 00 */ lwz r11, 0(r3)
+/* 8033D09C 00338CFC 2C 0B 00 00 */ cmpwi r11, 0
+/* 8033D0A0 00338D00 40 82 00 0C */ bne lbl_8033D0AC
+lbl_8033D0A4:
+/* 8033D0A4 00338D04 38 60 00 02 */ li r3, 2
+/* 8033D0A8 00338D08 48 00 00 78 */ b lbl_8033D120
+lbl_8033D0AC:
+/* 8033D0AC 00338D0C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8033D0B0 00338D10 40 82 00 18 */ bne lbl_8033D0C8
+/* 8033D0B4 00338D14 3C 80 80 45 */ lis r4, lbl_8044A468@ha
+/* 8033D0B8 00338D18 38 84 A4 68 */ addi r4, r4, lbl_8044A468@l
+/* 8033D0BC 00338D1C 48 00 B3 9D */ bl gpiSetErrorString
+/* 8033D0C0 00338D20 38 60 00 02 */ li r3, 2
+/* 8033D0C4 00338D24 48 00 00 5C */ b lbl_8033D120
+lbl_8033D0C8:
+/* 8033D0C8 00338D28 80 0B 01 08 */ lwz r0, 0x108(r11)
+/* 8033D0CC 00338D2C 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D0D0 00338D30 41 82 00 3C */ beq lbl_8033D10C
+/* 8033D0D4 00338D34 38 61 00 18 */ addi r3, r1, 0x18
+/* 8033D0D8 00338D38 38 80 00 00 */ li r4, 0
+/* 8033D0DC 00338D3C 38 A0 00 10 */ li r5, 0x10
+/* 8033D0E0 00338D40 4B CC 70 25 */ bl memset
+/* 8033D0E4 00338D44 38 00 06 01 */ li r0, 0x601
+/* 8033D0E8 00338D48 7F CC F3 78 */ mr r12, r30
+/* 8033D0EC 00338D4C 7F A3 EB 78 */ mr r3, r29
+/* 8033D0F0 00338D50 7F E5 FB 78 */ mr r5, r31
+/* 8033D0F4 00338D54 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8033D0F8 00338D58 38 81 00 18 */ addi r4, r1, 0x18
+/* 8033D0FC 00338D5C 7D 89 03 A6 */ mtctr r12
+/* 8033D100 00338D60 4E 80 04 21 */ bctrl
+/* 8033D104 00338D64 38 60 00 00 */ li r3, 0
+/* 8033D108 00338D68 48 00 00 18 */ b lbl_8033D120
+lbl_8033D10C:
+/* 8033D10C 00338D6C 91 41 00 08 */ stw r10, 8(r1)
+/* 8033D110 00338D70 39 40 00 00 */ li r10, 0
+/* 8033D114 00338D74 93 C1 00 0C */ stw r30, 0xc(r1)
+/* 8033D118 00338D78 93 E1 00 10 */ stw r31, 0x10(r1)
+/* 8033D11C 00338D7C 48 00 8E B5 */ bl gpiProfileSearch
+lbl_8033D120:
+/* 8033D120 00338D80 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8033D124 00338D84 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 8033D128 00338D88 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 8033D12C 00338D8C 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 8033D130 00338D90 7C 08 03 A6 */ mtlr r0
+/* 8033D134 00338D94 38 21 00 40 */ addi r1, r1, 0x40
+/* 8033D138 00338D98 4E 80 00 20 */ blr
+
+.global gpGetInfo
+gpGetInfo:
+/* 8033D13C 00338D9C 94 21 FD E0 */ stwu r1, -0x220(r1)
+/* 8033D140 00338DA0 7C 08 02 A6 */ mflr r0
+/* 8033D144 00338DA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D148 00338DA8 90 01 02 24 */ stw r0, 0x224(r1)
+/* 8033D14C 00338DAC 93 E1 02 1C */ stw r31, 0x21c(r1)
+/* 8033D150 00338DB0 7D 1F 43 78 */ mr r31, r8
+/* 8033D154 00338DB4 93 C1 02 18 */ stw r30, 0x218(r1)
+/* 8033D158 00338DB8 7C FE 3B 78 */ mr r30, r7
+/* 8033D15C 00338DBC 93 A1 02 14 */ stw r29, 0x214(r1)
+/* 8033D160 00338DC0 7C 7D 1B 78 */ mr r29, r3
+/* 8033D164 00338DC4 41 82 00 18 */ beq lbl_8033D17C
+/* 8033D168 00338DC8 81 23 00 00 */ lwz r9, 0(r3)
+/* 8033D16C 00338DCC 2C 09 00 00 */ cmpwi r9, 0
+/* 8033D170 00338DD0 41 82 00 0C */ beq lbl_8033D17C
+/* 8033D174 00338DD4 2C 04 00 00 */ cmpwi r4, 0
+/* 8033D178 00338DD8 40 82 00 0C */ bne lbl_8033D184
+lbl_8033D17C:
+/* 8033D17C 00338DDC 38 60 00 02 */ li r3, 2
+/* 8033D180 00338DE0 48 00 00 80 */ b lbl_8033D200
+lbl_8033D184:
+/* 8033D184 00338DE4 2C 07 00 00 */ cmpwi r7, 0
+/* 8033D188 00338DE8 40 82 00 18 */ bne lbl_8033D1A0
+/* 8033D18C 00338DEC 3C 80 80 45 */ lis r4, lbl_8044A468@ha
+/* 8033D190 00338DF0 38 84 A4 68 */ addi r4, r4, lbl_8044A468@l
+/* 8033D194 00338DF4 48 00 B2 C5 */ bl gpiSetErrorString
+/* 8033D198 00338DF8 38 60 00 02 */ li r3, 2
+/* 8033D19C 00338DFC 48 00 00 64 */ b lbl_8033D200
+lbl_8033D1A0:
+/* 8033D1A0 00338E00 80 09 01 08 */ lwz r0, 0x108(r9)
+/* 8033D1A4 00338E04 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D1A8 00338E08 41 82 00 34 */ beq lbl_8033D1DC
+/* 8033D1AC 00338E0C 38 61 00 08 */ addi r3, r1, 8
+/* 8033D1B0 00338E10 38 80 00 00 */ li r4, 0
+/* 8033D1B4 00338E14 38 A0 02 04 */ li r5, 0x204
+/* 8033D1B8 00338E18 4B CC 6F 4D */ bl memset
+/* 8033D1BC 00338E1C 7F CC F3 78 */ mr r12, r30
+/* 8033D1C0 00338E20 7F A3 EB 78 */ mr r3, r29
+/* 8033D1C4 00338E24 7F E5 FB 78 */ mr r5, r31
+/* 8033D1C8 00338E28 38 81 00 08 */ addi r4, r1, 8
+/* 8033D1CC 00338E2C 7D 89 03 A6 */ mtctr r12
+/* 8033D1D0 00338E30 4E 80 04 21 */ bctrl
+/* 8033D1D4 00338E34 38 60 00 00 */ li r3, 0
+/* 8033D1D8 00338E38 48 00 00 28 */ b lbl_8033D200
+lbl_8033D1DC:
+/* 8033D1DC 00338E3C 80 09 01 F4 */ lwz r0, 0x1f4(r9)
+/* 8033D1E0 00338E40 2C 00 00 04 */ cmpwi r0, 4
+/* 8033D1E4 00338E44 40 82 00 18 */ bne lbl_8033D1FC
+/* 8033D1E8 00338E48 3C 80 80 45 */ lis r4, lbl_8044A4DC@ha
+/* 8033D1EC 00338E4C 38 84 A4 DC */ addi r4, r4, lbl_8044A4DC@l
+/* 8033D1F0 00338E50 48 00 B2 69 */ bl gpiSetErrorString
+/* 8033D1F4 00338E54 38 60 00 02 */ li r3, 2
+/* 8033D1F8 00338E58 48 00 00 08 */ b lbl_8033D200
+lbl_8033D1FC:
+/* 8033D1FC 00338E5C 48 00 66 59 */ bl gpiGetInfo
+lbl_8033D200:
+/* 8033D200 00338E60 80 01 02 24 */ lwz r0, 0x224(r1)
+/* 8033D204 00338E64 83 E1 02 1C */ lwz r31, 0x21c(r1)
+/* 8033D208 00338E68 83 C1 02 18 */ lwz r30, 0x218(r1)
+/* 8033D20C 00338E6C 83 A1 02 14 */ lwz r29, 0x214(r1)
+/* 8033D210 00338E70 7C 08 03 A6 */ mtlr r0
+/* 8033D214 00338E74 38 21 02 20 */ addi r1, r1, 0x220
+/* 8033D218 00338E78 4E 80 00 20 */ blr
+
+.global gpSetInfosA
+gpSetInfosA:
+/* 8033D21C 00338E7C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033D220 00338E80 7C 08 02 A6 */ mflr r0
+/* 8033D224 00338E84 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D228 00338E88 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033D22C 00338E8C 41 82 00 10 */ beq lbl_8033D23C
+/* 8033D230 00338E90 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8033D234 00338E94 2C 06 00 00 */ cmpwi r6, 0
+/* 8033D238 00338E98 40 82 00 0C */ bne lbl_8033D244
+lbl_8033D23C:
+/* 8033D23C 00338E9C 38 60 00 02 */ li r3, 2
+/* 8033D240 00338EA0 48 00 00 3C */ b lbl_8033D27C
+lbl_8033D244:
+/* 8033D244 00338EA4 80 06 01 08 */ lwz r0, 0x108(r6)
+/* 8033D248 00338EA8 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D24C 00338EAC 41 82 00 0C */ beq lbl_8033D258
+/* 8033D250 00338EB0 38 60 00 00 */ li r3, 0
+/* 8033D254 00338EB4 48 00 00 28 */ b lbl_8033D27C
+lbl_8033D258:
+/* 8033D258 00338EB8 80 06 01 F4 */ lwz r0, 0x1f4(r6)
+/* 8033D25C 00338EBC 2C 00 00 04 */ cmpwi r0, 4
+/* 8033D260 00338EC0 40 82 00 18 */ bne lbl_8033D278
+/* 8033D264 00338EC4 3C 80 80 45 */ lis r4, lbl_8044A4DC@ha
+/* 8033D268 00338EC8 38 84 A4 DC */ addi r4, r4, lbl_8044A4DC@l
+/* 8033D26C 00338ECC 48 00 B1 ED */ bl gpiSetErrorString
+/* 8033D270 00338ED0 38 60 00 02 */ li r3, 2
+/* 8033D274 00338ED4 48 00 00 08 */ b lbl_8033D27C
+lbl_8033D278:
+/* 8033D278 00338ED8 48 00 5A 09 */ bl gpiSetInfos
+lbl_8033D27C:
+/* 8033D27C 00338EDC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033D280 00338EE0 7C 08 03 A6 */ mtlr r0
+/* 8033D284 00338EE4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033D288 00338EE8 4E 80 00 20 */ blr
+
+.global gpSendBuddyRequestA
+gpSendBuddyRequestA:
+/* 8033D28C 00338EEC 94 21 FB E0 */ stwu r1, -0x420(r1)
+/* 8033D290 00338EF0 7C 08 02 A6 */ mflr r0
+/* 8033D294 00338EF4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D298 00338EF8 90 01 04 24 */ stw r0, 0x424(r1)
+/* 8033D29C 00338EFC 93 E1 04 1C */ stw r31, 0x41c(r1)
+/* 8033D2A0 00338F00 3F E0 80 45 */ lis r31, lbl_8044A458@ha
+/* 8033D2A4 00338F04 3B FF A4 58 */ addi r31, r31, lbl_8044A458@l
+/* 8033D2A8 00338F08 93 C1 04 18 */ stw r30, 0x418(r1)
+/* 8033D2AC 00338F0C 93 A1 04 14 */ stw r29, 0x414(r1)
+/* 8033D2B0 00338F10 7C 9D 23 78 */ mr r29, r4
+/* 8033D2B4 00338F14 93 81 04 10 */ stw r28, 0x410(r1)
+/* 8033D2B8 00338F18 7C 7C 1B 78 */ mr r28, r3
+/* 8033D2BC 00338F1C 41 82 00 10 */ beq lbl_8033D2CC
+/* 8033D2C0 00338F20 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8033D2C4 00338F24 2C 1E 00 00 */ cmpwi r30, 0
+/* 8033D2C8 00338F28 40 82 00 0C */ bne lbl_8033D2D4
+lbl_8033D2CC:
+/* 8033D2CC 00338F2C 38 60 00 02 */ li r3, 2
+/* 8033D2D0 00338F30 48 00 01 0C */ b lbl_8033D3DC
+lbl_8033D2D4:
+/* 8033D2D4 00338F34 80 1E 01 08 */ lwz r0, 0x108(r30)
+/* 8033D2D8 00338F38 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D2DC 00338F3C 41 82 00 0C */ beq lbl_8033D2E8
+/* 8033D2E0 00338F40 38 60 00 00 */ li r3, 0
+/* 8033D2E4 00338F44 48 00 00 F8 */ b lbl_8033D3DC
+lbl_8033D2E8:
+/* 8033D2E8 00338F48 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
+/* 8033D2EC 00338F4C 2C 00 00 04 */ cmpwi r0, 4
+/* 8033D2F0 00338F50 40 82 00 14 */ bne lbl_8033D304
+/* 8033D2F4 00338F54 38 9F 00 84 */ addi r4, r31, 0x84
+/* 8033D2F8 00338F58 48 00 B1 61 */ bl gpiSetErrorString
+/* 8033D2FC 00338F5C 38 60 00 02 */ li r3, 2
+/* 8033D300 00338F60 48 00 00 DC */ b lbl_8033D3DC
+lbl_8033D304:
+/* 8033D304 00338F64 2C 05 00 00 */ cmpwi r5, 0
+/* 8033D308 00338F68 40 82 00 14 */ bne lbl_8033D31C
+/* 8033D30C 00338F6C 38 9F 00 D8 */ addi r4, r31, 0xd8
+/* 8033D310 00338F70 48 00 B1 49 */ bl gpiSetErrorString
+/* 8033D314 00338F74 38 60 00 02 */ li r3, 2
+/* 8033D318 00338F78 48 00 00 C4 */ b lbl_8033D3DC
+lbl_8033D31C:
+/* 8033D31C 00338F7C 7C A4 2B 78 */ mr r4, r5
+/* 8033D320 00338F80 38 61 00 08 */ addi r3, r1, 8
+/* 8033D324 00338F84 38 A0 04 01 */ li r5, 0x401
+/* 8033D328 00338F88 48 00 AC 29 */ bl strzcpy
+/* 8033D32C 00338F8C 38 81 00 08 */ addi r4, r1, 8
+/* 8033D330 00338F90 38 60 00 2F */ li r3, 0x2f
+/* 8033D334 00338F94 48 00 00 18 */ b lbl_8033D34C
+lbl_8033D338:
+/* 8033D338 00338F98 7C A0 07 74 */ extsb r0, r5
+/* 8033D33C 00338F9C 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8033D340 00338FA0 40 82 00 08 */ bne lbl_8033D348
+/* 8033D344 00338FA4 98 64 00 00 */ stb r3, 0(r4)
+lbl_8033D348:
+/* 8033D348 00338FA8 38 84 00 01 */ addi r4, r4, 1
+lbl_8033D34C:
+/* 8033D34C 00338FAC 88 A4 00 00 */ lbz r5, 0(r4)
+/* 8033D350 00338FB0 7C A0 07 75 */ extsb. r0, r5
+/* 8033D354 00338FB4 40 82 FF E4 */ bne lbl_8033D338
+/* 8033D358 00338FB8 7F 83 E3 78 */ mr r3, r28
+/* 8033D35C 00338FBC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D360 00338FC0 38 BF 00 E8 */ addi r5, r31, 0xe8
+/* 8033D364 00338FC4 48 00 21 3D */ bl gpiAppendStringToBuffer
+/* 8033D368 00338FC8 7F 83 E3 78 */ mr r3, r28
+/* 8033D36C 00338FCC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D370 00338FD0 38 BF 00 F4 */ addi r5, r31, 0xf4
+/* 8033D374 00338FD4 48 00 21 2D */ bl gpiAppendStringToBuffer
+/* 8033D378 00338FD8 80 BE 01 98 */ lwz r5, 0x198(r30)
+/* 8033D37C 00338FDC 7F 83 E3 78 */ mr r3, r28
+/* 8033D380 00338FE0 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D384 00338FE4 48 00 21 79 */ bl gpiAppendIntToBuffer
+/* 8033D388 00338FE8 7F 83 E3 78 */ mr r3, r28
+/* 8033D38C 00338FEC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D390 00338FF0 38 BF 01 00 */ addi r5, r31, 0x100
+/* 8033D394 00338FF4 48 00 21 0D */ bl gpiAppendStringToBuffer
+/* 8033D398 00338FF8 7F 83 E3 78 */ mr r3, r28
+/* 8033D39C 00338FFC 7F A5 EB 78 */ mr r5, r29
+/* 8033D3A0 00339000 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D3A4 00339004 48 00 21 59 */ bl gpiAppendIntToBuffer
+/* 8033D3A8 00339008 7F 83 E3 78 */ mr r3, r28
+/* 8033D3AC 0033900C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D3B0 00339010 38 BF 01 10 */ addi r5, r31, 0x110
+/* 8033D3B4 00339014 48 00 20 ED */ bl gpiAppendStringToBuffer
+/* 8033D3B8 00339018 7F 83 E3 78 */ mr r3, r28
+/* 8033D3BC 0033901C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D3C0 00339020 38 A1 00 08 */ addi r5, r1, 8
+/* 8033D3C4 00339024 48 00 20 DD */ bl gpiAppendStringToBuffer
+/* 8033D3C8 00339028 7F 83 E3 78 */ mr r3, r28
+/* 8033D3CC 0033902C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033D3D0 00339030 38 AD 8F 48 */ addi r5, r13, lbl_8063E208-_SDA_BASE_
+/* 8033D3D4 00339034 48 00 20 CD */ bl gpiAppendStringToBuffer
+/* 8033D3D8 00339038 38 60 00 00 */ li r3, 0
+lbl_8033D3DC:
+/* 8033D3DC 0033903C 80 01 04 24 */ lwz r0, 0x424(r1)
+/* 8033D3E0 00339040 83 E1 04 1C */ lwz r31, 0x41c(r1)
+/* 8033D3E4 00339044 83 C1 04 18 */ lwz r30, 0x418(r1)
+/* 8033D3E8 00339048 83 A1 04 14 */ lwz r29, 0x414(r1)
+/* 8033D3EC 0033904C 83 81 04 10 */ lwz r28, 0x410(r1)
+/* 8033D3F0 00339050 7C 08 03 A6 */ mtlr r0
+/* 8033D3F4 00339054 38 21 04 20 */ addi r1, r1, 0x420
+/* 8033D3F8 00339058 4E 80 00 20 */ blr
+
+.global gpAuthBuddyRequest
+gpAuthBuddyRequest:
+/* 8033D3FC 0033905C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033D400 00339060 7C 08 02 A6 */ mflr r0
+/* 8033D404 00339064 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D408 00339068 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033D40C 0033906C 41 82 00 10 */ beq lbl_8033D41C
+/* 8033D410 00339070 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8033D414 00339074 2C 05 00 00 */ cmpwi r5, 0
+/* 8033D418 00339078 40 82 00 0C */ bne lbl_8033D424
+lbl_8033D41C:
+/* 8033D41C 0033907C 38 60 00 02 */ li r3, 2
+/* 8033D420 00339080 48 00 00 3C */ b lbl_8033D45C
+lbl_8033D424:
+/* 8033D424 00339084 80 05 01 08 */ lwz r0, 0x108(r5)
+/* 8033D428 00339088 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D42C 0033908C 41 82 00 0C */ beq lbl_8033D438
+/* 8033D430 00339090 38 60 00 00 */ li r3, 0
+/* 8033D434 00339094 48 00 00 28 */ b lbl_8033D45C
+lbl_8033D438:
+/* 8033D438 00339098 80 05 01 F4 */ lwz r0, 0x1f4(r5)
+/* 8033D43C 0033909C 2C 00 00 04 */ cmpwi r0, 4
+/* 8033D440 003390A0 40 82 00 18 */ bne lbl_8033D458
+/* 8033D444 003390A4 3C 80 80 45 */ lis r4, lbl_8044A4DC@ha
+/* 8033D448 003390A8 38 84 A4 DC */ addi r4, r4, lbl_8044A4DC@l
+/* 8033D44C 003390AC 48 00 B0 0D */ bl gpiSetErrorString
+/* 8033D450 003390B0 38 60 00 02 */ li r3, 2
+/* 8033D454 003390B4 48 00 00 08 */ b lbl_8033D45C
+lbl_8033D458:
+/* 8033D458 003390B8 48 00 1B B1 */ bl gpiAuthBuddyRequest
+lbl_8033D45C:
+/* 8033D45C 003390BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033D460 003390C0 7C 08 03 A6 */ mtlr r0
+/* 8033D464 003390C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033D468 003390C8 4E 80 00 20 */ blr
+
+.global gpDenyBuddyRequest
+gpDenyBuddyRequest:
+/* 8033D46C 003390CC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033D470 003390D0 7C 08 02 A6 */ mflr r0
+/* 8033D474 003390D4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D478 003390D8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033D47C 003390DC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033D480 003390E0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033D484 003390E4 7C 7E 1B 78 */ mr r30, r3
+/* 8033D488 003390E8 41 82 00 10 */ beq lbl_8033D498
+/* 8033D48C 003390EC 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8033D490 003390F0 2C 1F 00 00 */ cmpwi r31, 0
+/* 8033D494 003390F4 40 82 00 0C */ bne lbl_8033D4A0
+lbl_8033D498:
+/* 8033D498 003390F8 38 60 00 02 */ li r3, 2
+/* 8033D49C 003390FC 48 00 00 B0 */ b lbl_8033D54C
+lbl_8033D4A0:
+/* 8033D4A0 00339100 80 1F 01 08 */ lwz r0, 0x108(r31)
+/* 8033D4A4 00339104 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D4A8 00339108 41 82 00 0C */ beq lbl_8033D4B4
+/* 8033D4AC 0033910C 38 60 00 00 */ li r3, 0
+/* 8033D4B0 00339110 48 00 00 9C */ b lbl_8033D54C
+lbl_8033D4B4:
+/* 8033D4B4 00339114 80 1F 01 F4 */ lwz r0, 0x1f4(r31)
+/* 8033D4B8 00339118 2C 00 00 04 */ cmpwi r0, 4
+/* 8033D4BC 0033911C 40 82 00 18 */ bne lbl_8033D4D4
+/* 8033D4C0 00339120 3C 80 80 45 */ lis r4, lbl_8044A4DC@ha
+/* 8033D4C4 00339124 38 84 A4 DC */ addi r4, r4, lbl_8044A4DC@l
+/* 8033D4C8 00339128 48 00 AF 91 */ bl gpiSetErrorString
+/* 8033D4CC 0033912C 38 60 00 02 */ li r3, 2
+/* 8033D4D0 00339130 48 00 00 7C */ b lbl_8033D54C
+lbl_8033D4D4:
+/* 8033D4D4 00339134 38 A1 00 08 */ addi r5, r1, 8
+/* 8033D4D8 00339138 48 00 83 F9 */ bl gpiGetProfile
+/* 8033D4DC 0033913C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D4E0 00339140 40 82 00 0C */ bne lbl_8033D4EC
+/* 8033D4E4 00339144 38 60 00 00 */ li r3, 0
+/* 8033D4E8 00339148 48 00 00 64 */ b lbl_8033D54C
+lbl_8033D4EC:
+/* 8033D4EC 0033914C 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033D4F0 00339150 80 64 00 14 */ lwz r3, 0x14(r4)
+/* 8033D4F4 00339154 38 03 FF FF */ addi r0, r3, -1
+/* 8033D4F8 00339158 90 04 00 14 */ stw r0, 0x14(r4)
+/* 8033D4FC 0033915C 80 1F 01 00 */ lwz r0, 0x100(r31)
+/* 8033D500 00339160 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D504 00339164 40 82 00 44 */ bne lbl_8033D548
+/* 8033D508 00339168 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033D50C 0033916C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8033D510 00339170 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D514 00339174 41 81 00 34 */ bgt lbl_8033D548
+/* 8033D518 00339178 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8033D51C 0033917C 4B FF BE 1D */ bl gsifree
+/* 8033D520 00339180 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033D524 00339184 38 00 00 00 */ li r0, 0
+/* 8033D528 00339188 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8033D52C 0033918C 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033D530 00339190 48 00 87 95 */ bl gpiCanFreeProfile
+/* 8033D534 00339194 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D538 00339198 41 82 00 10 */ beq lbl_8033D548
+/* 8033D53C 0033919C 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033D540 003391A0 7F C3 F3 78 */ mr r3, r30
+/* 8033D544 003391A4 48 00 85 6D */ bl gpiRemoveProfile
+lbl_8033D548:
+/* 8033D548 003391A8 38 60 00 00 */ li r3, 0
+lbl_8033D54C:
+/* 8033D54C 003391AC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033D550 003391B0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033D554 003391B4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033D558 003391B8 7C 08 03 A6 */ mtlr r0
+/* 8033D55C 003391BC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033D560 003391C0 4E 80 00 20 */ blr
+
+.global gpGetNumBuddies
+gpGetNumBuddies:
+/* 8033D564 003391C4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D568 003391C8 41 82 00 10 */ beq lbl_8033D578
+/* 8033D56C 003391CC 80 63 00 00 */ lwz r3, 0(r3)
+/* 8033D570 003391D0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D574 003391D4 40 82 00 0C */ bne lbl_8033D580
+lbl_8033D578:
+/* 8033D578 003391D8 38 60 00 02 */ li r3, 2
+/* 8033D57C 003391DC 4E 80 00 20 */ blr
+lbl_8033D580:
+/* 8033D580 003391E0 80 03 01 08 */ lwz r0, 0x108(r3)
+/* 8033D584 003391E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D588 003391E8 41 82 00 14 */ beq lbl_8033D59C
+/* 8033D58C 003391EC 38 00 00 00 */ li r0, 0
+/* 8033D590 003391F0 38 60 00 00 */ li r3, 0
+/* 8033D594 003391F4 90 04 00 00 */ stw r0, 0(r4)
+/* 8033D598 003391F8 4E 80 00 20 */ blr
+lbl_8033D59C:
+/* 8033D59C 003391FC 80 03 04 4C */ lwz r0, 0x44c(r3)
+/* 8033D5A0 00339200 38 60 00 00 */ li r3, 0
+/* 8033D5A4 00339204 90 04 00 00 */ stw r0, 0(r4)
+/* 8033D5A8 00339208 4E 80 00 20 */ blr
+
+.global gpGetBuddyStatus
+gpGetBuddyStatus:
+/* 8033D5AC 0033920C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033D5B0 00339210 7C 08 02 A6 */ mflr r0
+/* 8033D5B4 00339214 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D5B8 00339218 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033D5BC 0033921C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8033D5C0 00339220 7C 7F 1B 78 */ mr r31, r3
+/* 8033D5C4 00339224 93 C1 00 08 */ stw r30, 8(r1)
+/* 8033D5C8 00339228 7C BE 2B 78 */ mr r30, r5
+/* 8033D5CC 0033922C 41 82 00 10 */ beq lbl_8033D5DC
+/* 8033D5D0 00339230 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8033D5D4 00339234 2C 06 00 00 */ cmpwi r6, 0
+/* 8033D5D8 00339238 40 82 00 0C */ bne lbl_8033D5E4
+lbl_8033D5DC:
+/* 8033D5DC 0033923C 38 60 00 02 */ li r3, 2
+/* 8033D5E0 00339240 48 00 01 04 */ b lbl_8033D6E4
+lbl_8033D5E4:
+/* 8033D5E4 00339244 80 06 01 08 */ lwz r0, 0x108(r6)
+/* 8033D5E8 00339248 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D5EC 0033924C 41 82 00 1C */ beq lbl_8033D608
+/* 8033D5F0 00339250 7F C3 F3 78 */ mr r3, r30
+/* 8033D5F4 00339254 38 80 00 00 */ li r4, 0
+/* 8033D5F8 00339258 38 A0 02 10 */ li r5, 0x210
+/* 8033D5FC 0033925C 4B CC 6B 09 */ bl memset
+/* 8033D600 00339260 38 60 00 00 */ li r3, 0
+/* 8033D604 00339264 48 00 00 E0 */ b lbl_8033D6E4
+lbl_8033D608:
+/* 8033D608 00339268 2C 05 00 00 */ cmpwi r5, 0
+/* 8033D60C 0033926C 40 82 00 18 */ bne lbl_8033D624
+/* 8033D610 00339270 3C 80 80 45 */ lis r4, lbl_8044A578@ha
+/* 8033D614 00339274 38 84 A5 78 */ addi r4, r4, lbl_8044A578@l
+/* 8033D618 00339278 48 00 AE 41 */ bl gpiSetErrorString
+/* 8033D61C 0033927C 38 60 00 02 */ li r3, 2
+/* 8033D620 00339280 48 00 00 C4 */ b lbl_8033D6E4
+lbl_8033D624:
+/* 8033D624 00339284 2C 04 00 00 */ cmpwi r4, 0
+/* 8033D628 00339288 80 06 04 4C */ lwz r0, 0x44c(r6)
+/* 8033D62C 0033928C 41 80 00 0C */ blt lbl_8033D638
+/* 8033D630 00339290 7C 04 00 00 */ cmpw r4, r0
+/* 8033D634 00339294 41 80 00 1C */ blt lbl_8033D650
+lbl_8033D638:
+/* 8033D638 00339298 3C 80 80 45 */ lis r4, lbl_8044A588@ha
+/* 8033D63C 0033929C 7F E3 FB 78 */ mr r3, r31
+/* 8033D640 003392A0 38 84 A5 88 */ addi r4, r4, lbl_8044A588@l
+/* 8033D644 003392A4 48 00 AE 15 */ bl gpiSetErrorString
+/* 8033D648 003392A8 38 60 00 02 */ li r3, 2
+/* 8033D64C 003392AC 48 00 00 98 */ b lbl_8033D6E4
+lbl_8033D650:
+/* 8033D650 003392B0 48 00 86 19 */ bl gpiFindBuddy
+/* 8033D654 003392B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D658 003392B8 40 82 00 1C */ bne lbl_8033D674
+/* 8033D65C 003392BC 3C 80 80 45 */ lis r4, lbl_8044A588@ha
+/* 8033D660 003392C0 7F E3 FB 78 */ mr r3, r31
+/* 8033D664 003392C4 38 84 A5 88 */ addi r4, r4, lbl_8044A588@l
+/* 8033D668 003392C8 48 00 AD F1 */ bl gpiSetErrorString
+/* 8033D66C 003392CC 38 60 00 02 */ li r3, 2
+/* 8033D670 003392D0 48 00 00 74 */ b lbl_8033D6E4
+lbl_8033D674:
+/* 8033D674 003392D4 83 E3 00 08 */ lwz r31, 8(r3)
+/* 8033D678 003392D8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8033D67C 003392DC 90 1E 00 00 */ stw r0, 0(r30)
+/* 8033D680 003392E0 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8033D684 003392E4 90 1E 00 04 */ stw r0, 4(r30)
+/* 8033D688 003392E8 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8033D68C 003392EC 2C 04 00 00 */ cmpwi r4, 0
+/* 8033D690 003392F0 41 82 00 14 */ beq lbl_8033D6A4
+/* 8033D694 003392F4 38 7E 00 08 */ addi r3, r30, 8
+/* 8033D698 003392F8 38 A0 01 00 */ li r5, 0x100
+/* 8033D69C 003392FC 48 00 A8 B5 */ bl strzcpy
+/* 8033D6A0 00339300 48 00 00 0C */ b lbl_8033D6AC
+lbl_8033D6A4:
+/* 8033D6A4 00339304 38 00 00 00 */ li r0, 0
+/* 8033D6A8 00339308 98 1E 00 08 */ stb r0, 8(r30)
+lbl_8033D6AC:
+/* 8033D6AC 0033930C 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 8033D6B0 00339310 2C 04 00 00 */ cmpwi r4, 0
+/* 8033D6B4 00339314 41 82 00 14 */ beq lbl_8033D6C8
+/* 8033D6B8 00339318 38 7E 01 08 */ addi r3, r30, 0x108
+/* 8033D6BC 0033931C 38 A0 01 00 */ li r5, 0x100
+/* 8033D6C0 00339320 48 00 A8 91 */ bl strzcpy
+/* 8033D6C4 00339324 48 00 00 0C */ b lbl_8033D6D0
+lbl_8033D6C8:
+/* 8033D6C8 00339328 38 00 00 00 */ li r0, 0
+/* 8033D6CC 0033932C 98 1E 01 08 */ stb r0, 0x108(r30)
+lbl_8033D6D0:
+/* 8033D6D0 00339330 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8033D6D4 00339334 38 60 00 00 */ li r3, 0
+/* 8033D6D8 00339338 90 1E 02 08 */ stw r0, 0x208(r30)
+/* 8033D6DC 0033933C 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 8033D6E0 00339340 90 1E 02 0C */ stw r0, 0x20c(r30)
+lbl_8033D6E4:
+/* 8033D6E4 00339344 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033D6E8 00339348 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8033D6EC 0033934C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8033D6F0 00339350 7C 08 03 A6 */ mtlr r0
+/* 8033D6F4 00339354 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033D6F8 00339358 4E 80 00 20 */ blr
+
+.global gpGetBuddyIndex
+gpGetBuddyIndex:
+/* 8033D6FC 0033935C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033D700 00339360 7C 08 02 A6 */ mflr r0
+/* 8033D704 00339364 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D708 00339368 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033D70C 0033936C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033D710 00339370 7C BF 2B 78 */ mr r31, r5
+/* 8033D714 00339374 41 82 00 10 */ beq lbl_8033D724
+/* 8033D718 00339378 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8033D71C 0033937C 2C 06 00 00 */ cmpwi r6, 0
+/* 8033D720 00339380 40 82 00 0C */ bne lbl_8033D72C
+lbl_8033D724:
+/* 8033D724 00339384 38 60 00 02 */ li r3, 2
+/* 8033D728 00339388 48 00 00 58 */ b lbl_8033D780
+lbl_8033D72C:
+/* 8033D72C 0033938C 80 06 01 08 */ lwz r0, 0x108(r6)
+/* 8033D730 00339390 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D734 00339394 41 82 00 14 */ beq lbl_8033D748
+/* 8033D738 00339398 38 00 00 00 */ li r0, 0
+/* 8033D73C 0033939C 38 60 00 00 */ li r3, 0
+/* 8033D740 003393A0 90 05 00 00 */ stw r0, 0(r5)
+/* 8033D744 003393A4 48 00 00 3C */ b lbl_8033D780
+lbl_8033D748:
+/* 8033D748 003393A8 38 A1 00 08 */ addi r5, r1, 8
+/* 8033D74C 003393AC 48 00 81 85 */ bl gpiGetProfile
+/* 8033D750 003393B0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D754 003393B4 41 82 00 20 */ beq lbl_8033D774
+/* 8033D758 003393B8 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033D75C 003393BC 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033D760 003393C0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D764 003393C4 41 82 00 10 */ beq lbl_8033D774
+/* 8033D768 003393C8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8033D76C 003393CC 90 1F 00 00 */ stw r0, 0(r31)
+/* 8033D770 003393D0 48 00 00 0C */ b lbl_8033D77C
+lbl_8033D774:
+/* 8033D774 003393D4 38 00 FF FF */ li r0, -1
+/* 8033D778 003393D8 90 1F 00 00 */ stw r0, 0(r31)
+lbl_8033D77C:
+/* 8033D77C 003393DC 38 60 00 00 */ li r3, 0
+lbl_8033D780:
+/* 8033D780 003393E0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033D784 003393E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033D788 003393E8 7C 08 03 A6 */ mtlr r0
+/* 8033D78C 003393EC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033D790 003393F0 4E 80 00 20 */ blr
+
+.global gpIsBuddy
+gpIsBuddy:
+/* 8033D794 003393F4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033D798 003393F8 7C 08 02 A6 */ mflr r0
+/* 8033D79C 003393FC 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D7A0 00339400 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033D7A4 00339404 41 82 00 10 */ beq lbl_8033D7B4
+/* 8033D7A8 00339408 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8033D7AC 0033940C 2C 05 00 00 */ cmpwi r5, 0
+/* 8033D7B0 00339410 40 82 00 0C */ bne lbl_8033D7BC
+lbl_8033D7B4:
+/* 8033D7B4 00339414 38 60 00 00 */ li r3, 0
+/* 8033D7B8 00339418 48 00 00 44 */ b lbl_8033D7FC
+lbl_8033D7BC:
+/* 8033D7BC 0033941C 80 05 01 08 */ lwz r0, 0x108(r5)
+/* 8033D7C0 00339420 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D7C4 00339424 41 82 00 0C */ beq lbl_8033D7D0
+/* 8033D7C8 00339428 38 60 00 00 */ li r3, 0
+/* 8033D7CC 0033942C 48 00 00 30 */ b lbl_8033D7FC
+lbl_8033D7D0:
+/* 8033D7D0 00339430 38 A1 00 08 */ addi r5, r1, 8
+/* 8033D7D4 00339434 48 00 80 FD */ bl gpiGetProfile
+/* 8033D7D8 00339438 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D7DC 0033943C 41 82 00 1C */ beq lbl_8033D7F8
+/* 8033D7E0 00339440 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033D7E4 00339444 80 03 00 08 */ lwz r0, 8(r3)
+/* 8033D7E8 00339448 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D7EC 0033944C 41 82 00 0C */ beq lbl_8033D7F8
+/* 8033D7F0 00339450 38 60 00 01 */ li r3, 1
+/* 8033D7F4 00339454 48 00 00 08 */ b lbl_8033D7FC
+lbl_8033D7F8:
+/* 8033D7F8 00339458 38 60 00 00 */ li r3, 0
+lbl_8033D7FC:
+/* 8033D7FC 0033945C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033D800 00339460 7C 08 03 A6 */ mtlr r0
+/* 8033D804 00339464 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033D808 00339468 4E 80 00 20 */ blr
+
+.global gpDeleteBuddy
+gpDeleteBuddy:
+/* 8033D80C 0033946C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033D810 00339470 7C 08 02 A6 */ mflr r0
+/* 8033D814 00339474 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D818 00339478 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033D81C 0033947C 41 82 00 10 */ beq lbl_8033D82C
+/* 8033D820 00339480 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8033D824 00339484 2C 05 00 00 */ cmpwi r5, 0
+/* 8033D828 00339488 40 82 00 0C */ bne lbl_8033D834
+lbl_8033D82C:
+/* 8033D82C 0033948C 38 60 00 02 */ li r3, 2
+/* 8033D830 00339490 48 00 00 54 */ b lbl_8033D884
+lbl_8033D834:
+/* 8033D834 00339494 80 05 01 08 */ lwz r0, 0x108(r5)
+/* 8033D838 00339498 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D83C 0033949C 41 82 00 0C */ beq lbl_8033D848
+/* 8033D840 003394A0 38 60 00 00 */ li r3, 0
+/* 8033D844 003394A4 48 00 00 40 */ b lbl_8033D884
+lbl_8033D848:
+/* 8033D848 003394A8 80 05 01 F4 */ lwz r0, 0x1f4(r5)
+/* 8033D84C 003394AC 2C 00 00 04 */ cmpwi r0, 4
+/* 8033D850 003394B0 40 82 00 18 */ bne lbl_8033D868
+/* 8033D854 003394B4 3C 80 80 45 */ lis r4, lbl_8044A4DC@ha
+/* 8033D858 003394B8 38 84 A4 DC */ addi r4, r4, lbl_8044A4DC@l
+/* 8033D85C 003394BC 48 00 AB FD */ bl gpiSetErrorString
+/* 8033D860 003394C0 38 60 00 02 */ li r3, 2
+/* 8033D864 003394C4 48 00 00 20 */ b lbl_8033D884
+lbl_8033D868:
+/* 8033D868 003394C8 38 A0 00 01 */ li r5, 1
+/* 8033D86C 003394CC 48 00 19 35 */ bl gpiDeleteBuddy
+/* 8033D870 003394D0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D874 003394D4 38 00 00 00 */ li r0, 0
+/* 8033D878 003394D8 41 82 00 08 */ beq lbl_8033D880
+/* 8033D87C 003394DC 7C 60 1B 78 */ mr r0, r3
+lbl_8033D880:
+/* 8033D880 003394E0 7C 03 03 78 */ mr r3, r0
+lbl_8033D884:
+/* 8033D884 003394E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033D888 003394E8 7C 08 03 A6 */ mtlr r0
+/* 8033D88C 003394EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033D890 003394F0 4E 80 00 20 */ blr
+
+.global gpSetStatusA
+gpSetStatusA:
+/* 8033D894 003394F4 94 21 FD E0 */ stwu r1, -0x220(r1)
+/* 8033D898 003394F8 7C 08 02 A6 */ mflr r0
+/* 8033D89C 003394FC 90 01 02 24 */ stw r0, 0x224(r1)
+/* 8033D8A0 00339500 39 61 02 20 */ addi r11, r1, 0x220
+/* 8033D8A4 00339504 4B E8 98 85 */ bl _savegpr_27
+/* 8033D8A8 00339508 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D8AC 0033950C 3F A0 80 45 */ lis r29, lbl_8044A458@ha
+/* 8033D8B0 00339510 7C 7E 1B 78 */ mr r30, r3
+/* 8033D8B4 00339514 7C 9F 23 78 */ mr r31, r4
+/* 8033D8B8 00339518 7C DB 33 78 */ mr r27, r6
+/* 8033D8BC 0033951C 3B BD A4 58 */ addi r29, r29, lbl_8044A458@l
+/* 8033D8C0 00339520 41 82 00 10 */ beq lbl_8033D8D0
+/* 8033D8C4 00339524 83 83 00 00 */ lwz r28, 0(r3)
+/* 8033D8C8 00339528 2C 1C 00 00 */ cmpwi r28, 0
+/* 8033D8CC 0033952C 40 82 00 0C */ bne lbl_8033D8D8
+lbl_8033D8D0:
+/* 8033D8D0 00339530 38 60 00 02 */ li r3, 2
+/* 8033D8D4 00339534 48 00 01 D0 */ b lbl_8033DAA4
+lbl_8033D8D8:
+/* 8033D8D8 00339538 80 1C 01 08 */ lwz r0, 0x108(r28)
+/* 8033D8DC 0033953C 2C 00 00 00 */ cmpwi r0, 0
+/* 8033D8E0 00339540 41 82 00 0C */ beq lbl_8033D8EC
+/* 8033D8E4 00339544 38 60 00 00 */ li r3, 0
+/* 8033D8E8 00339548 48 00 01 BC */ b lbl_8033DAA4
+lbl_8033D8EC:
+/* 8033D8EC 0033954C 80 1C 01 F4 */ lwz r0, 0x1f4(r28)
+/* 8033D8F0 00339550 2C 00 00 04 */ cmpwi r0, 4
+/* 8033D8F4 00339554 40 82 00 14 */ bne lbl_8033D908
+/* 8033D8F8 00339558 38 9D 00 84 */ addi r4, r29, 0x84
+/* 8033D8FC 0033955C 48 00 AB 5D */ bl gpiSetErrorString
+/* 8033D900 00339560 38 60 00 02 */ li r3, 2
+/* 8033D904 00339564 48 00 01 A0 */ b lbl_8033DAA4
+lbl_8033D908:
+/* 8033D908 00339568 2C 05 00 00 */ cmpwi r5, 0
+/* 8033D90C 0033956C 40 82 00 14 */ bne lbl_8033D920
+/* 8033D910 00339570 38 9D 01 40 */ addi r4, r29, 0x140
+/* 8033D914 00339574 48 00 AB 45 */ bl gpiSetErrorString
+/* 8033D918 00339578 38 60 00 02 */ li r3, 2
+/* 8033D91C 0033957C 48 00 01 88 */ b lbl_8033DAA4
+lbl_8033D920:
+/* 8033D920 00339580 2C 06 00 00 */ cmpwi r6, 0
+/* 8033D924 00339584 40 82 00 14 */ bne lbl_8033D938
+/* 8033D928 00339588 38 9D 01 58 */ addi r4, r29, 0x158
+/* 8033D92C 0033958C 48 00 AB 2D */ bl gpiSetErrorString
+/* 8033D930 00339590 38 60 00 02 */ li r3, 2
+/* 8033D934 00339594 48 00 01 70 */ b lbl_8033DAA4
+lbl_8033D938:
+/* 8033D938 00339598 7C A4 2B 78 */ mr r4, r5
+/* 8033D93C 0033959C 38 61 01 08 */ addi r3, r1, 0x108
+/* 8033D940 003395A0 38 A0 01 00 */ li r5, 0x100
+/* 8033D944 003395A4 48 00 A6 0D */ bl strzcpy
+/* 8033D948 003395A8 38 81 01 08 */ addi r4, r1, 0x108
+/* 8033D94C 003395AC 38 60 00 2F */ li r3, 0x2f
+/* 8033D950 003395B0 48 00 00 18 */ b lbl_8033D968
+lbl_8033D954:
+/* 8033D954 003395B4 7C A0 07 74 */ extsb r0, r5
+/* 8033D958 003395B8 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8033D95C 003395BC 40 82 00 08 */ bne lbl_8033D964
+/* 8033D960 003395C0 98 64 00 00 */ stb r3, 0(r4)
+lbl_8033D964:
+/* 8033D964 003395C4 38 84 00 01 */ addi r4, r4, 1
+lbl_8033D968:
+/* 8033D968 003395C8 88 A4 00 00 */ lbz r5, 0(r4)
+/* 8033D96C 003395CC 7C A0 07 75 */ extsb. r0, r5
+/* 8033D970 003395D0 40 82 FF E4 */ bne lbl_8033D954
+/* 8033D974 003395D4 7F 64 DB 78 */ mr r4, r27
+/* 8033D978 003395D8 38 61 00 08 */ addi r3, r1, 8
+/* 8033D97C 003395DC 38 A0 01 00 */ li r5, 0x100
+/* 8033D980 003395E0 48 00 A5 D1 */ bl strzcpy
+/* 8033D984 003395E4 38 81 00 08 */ addi r4, r1, 8
+/* 8033D988 003395E8 38 60 00 2F */ li r3, 0x2f
+/* 8033D98C 003395EC 48 00 00 18 */ b lbl_8033D9A4
+lbl_8033D990:
+/* 8033D990 003395F0 7C A0 07 74 */ extsb r0, r5
+/* 8033D994 003395F4 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8033D998 003395F8 40 82 00 08 */ bne lbl_8033D9A0
+/* 8033D99C 003395FC 98 64 00 00 */ stb r3, 0(r4)
+lbl_8033D9A0:
+/* 8033D9A0 00339600 38 84 00 01 */ addi r4, r4, 1
+lbl_8033D9A4:
+/* 8033D9A4 00339604 88 A4 00 00 */ lbz r5, 0(r4)
+/* 8033D9A8 00339608 7C A0 07 75 */ extsb. r0, r5
+/* 8033D9AC 0033960C 40 82 FF E4 */ bne lbl_8033D990
+/* 8033D9B0 00339610 80 1C 02 30 */ lwz r0, 0x230(r28)
+/* 8033D9B4 00339614 7C 1F 00 00 */ cmpw r31, r0
+/* 8033D9B8 00339618 40 82 00 34 */ bne lbl_8033D9EC
+/* 8033D9BC 0033961C 38 61 01 08 */ addi r3, r1, 0x108
+/* 8033D9C0 00339620 38 9C 02 34 */ addi r4, r28, 0x234
+/* 8033D9C4 00339624 4B E9 0A 89 */ bl strcmp
+/* 8033D9C8 00339628 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D9CC 0033962C 40 82 00 20 */ bne lbl_8033D9EC
+/* 8033D9D0 00339630 38 61 00 08 */ addi r3, r1, 8
+/* 8033D9D4 00339634 38 9C 03 34 */ addi r4, r28, 0x334
+/* 8033D9D8 00339638 4B E9 0A 75 */ bl strcmp
+/* 8033D9DC 0033963C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033D9E0 00339640 40 82 00 0C */ bne lbl_8033D9EC
+/* 8033D9E4 00339644 38 60 00 00 */ li r3, 0
+/* 8033D9E8 00339648 48 00 00 BC */ b lbl_8033DAA4
+lbl_8033D9EC:
+/* 8033D9EC 0033964C 93 FC 02 30 */ stw r31, 0x230(r28)
+/* 8033D9F0 00339650 38 7C 02 34 */ addi r3, r28, 0x234
+/* 8033D9F4 00339654 38 81 01 08 */ addi r4, r1, 0x108
+/* 8033D9F8 00339658 38 A0 01 00 */ li r5, 0x100
+/* 8033D9FC 0033965C 48 00 A5 55 */ bl strzcpy
+/* 8033DA00 00339660 38 7C 03 34 */ addi r3, r28, 0x334
+/* 8033DA04 00339664 38 81 00 08 */ addi r4, r1, 8
+/* 8033DA08 00339668 38 A0 01 00 */ li r5, 0x100
+/* 8033DA0C 0033966C 48 00 A5 45 */ bl strzcpy
+/* 8033DA10 00339670 7F C3 F3 78 */ mr r3, r30
+/* 8033DA14 00339674 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA18 00339678 38 BD 01 70 */ addi r5, r29, 0x170
+/* 8033DA1C 0033967C 48 00 1A 85 */ bl gpiAppendStringToBuffer
+/* 8033DA20 00339680 7F C3 F3 78 */ mr r3, r30
+/* 8033DA24 00339684 7F E5 FB 78 */ mr r5, r31
+/* 8033DA28 00339688 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA2C 0033968C 48 00 1A D1 */ bl gpiAppendIntToBuffer
+/* 8033DA30 00339690 7F C3 F3 78 */ mr r3, r30
+/* 8033DA34 00339694 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA38 00339698 38 BD 00 F4 */ addi r5, r29, 0xf4
+/* 8033DA3C 0033969C 48 00 1A 65 */ bl gpiAppendStringToBuffer
+/* 8033DA40 003396A0 80 BC 01 98 */ lwz r5, 0x198(r28)
+/* 8033DA44 003396A4 7F C3 F3 78 */ mr r3, r30
+/* 8033DA48 003396A8 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA4C 003396AC 48 00 1A B1 */ bl gpiAppendIntToBuffer
+/* 8033DA50 003396B0 7F C3 F3 78 */ mr r3, r30
+/* 8033DA54 003396B4 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA58 003396B8 38 BD 01 7C */ addi r5, r29, 0x17c
+/* 8033DA5C 003396BC 48 00 1A 45 */ bl gpiAppendStringToBuffer
+/* 8033DA60 003396C0 7F C3 F3 78 */ mr r3, r30
+/* 8033DA64 003396C4 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA68 003396C8 38 A1 01 08 */ addi r5, r1, 0x108
+/* 8033DA6C 003396CC 48 00 1A 35 */ bl gpiAppendStringToBuffer
+/* 8033DA70 003396D0 7F C3 F3 78 */ mr r3, r30
+/* 8033DA74 003396D4 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA78 003396D8 38 BD 01 8C */ addi r5, r29, 0x18c
+/* 8033DA7C 003396DC 48 00 1A 25 */ bl gpiAppendStringToBuffer
+/* 8033DA80 003396E0 7F C3 F3 78 */ mr r3, r30
+/* 8033DA84 003396E4 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA88 003396E8 38 A1 00 08 */ addi r5, r1, 8
+/* 8033DA8C 003396EC 48 00 1A 15 */ bl gpiAppendStringToBuffer
+/* 8033DA90 003396F0 7F C3 F3 78 */ mr r3, r30
+/* 8033DA94 003396F4 38 9C 02 10 */ addi r4, r28, 0x210
+/* 8033DA98 003396F8 38 AD 8F 48 */ addi r5, r13, lbl_8063E208-_SDA_BASE_
+/* 8033DA9C 003396FC 48 00 1A 05 */ bl gpiAppendStringToBuffer
+/* 8033DAA0 00339700 38 60 00 00 */ li r3, 0
+lbl_8033DAA4:
+/* 8033DAA4 00339704 39 61 02 20 */ addi r11, r1, 0x220
+/* 8033DAA8 00339708 4B E8 96 CD */ bl _restgpr_27
+/* 8033DAAC 0033970C 80 01 02 24 */ lwz r0, 0x224(r1)
+/* 8033DAB0 00339710 7C 08 03 A6 */ mtlr r0
+/* 8033DAB4 00339714 38 21 02 20 */ addi r1, r1, 0x220
+/* 8033DAB8 00339718 4E 80 00 20 */ blr
+
+.global gpSendBuddyMessageA
+gpSendBuddyMessageA:
+/* 8033DABC 0033971C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033DAC0 00339720 7C 08 02 A6 */ mflr r0
+/* 8033DAC4 00339724 2C 03 00 00 */ cmpwi r3, 0
+/* 8033DAC8 00339728 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033DACC 0033972C 41 82 00 10 */ beq lbl_8033DADC
+/* 8033DAD0 00339730 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8033DAD4 00339734 2C 06 00 00 */ cmpwi r6, 0
+/* 8033DAD8 00339738 40 82 00 0C */ bne lbl_8033DAE4
+lbl_8033DADC:
+/* 8033DADC 0033973C 38 60 00 02 */ li r3, 2
+/* 8033DAE0 00339740 48 00 00 64 */ b lbl_8033DB44
+lbl_8033DAE4:
+/* 8033DAE4 00339744 80 06 01 08 */ lwz r0, 0x108(r6)
+/* 8033DAE8 00339748 2C 00 00 00 */ cmpwi r0, 0
+/* 8033DAEC 0033974C 41 82 00 0C */ beq lbl_8033DAF8
+/* 8033DAF0 00339750 38 60 00 00 */ li r3, 0
+/* 8033DAF4 00339754 48 00 00 50 */ b lbl_8033DB44
+lbl_8033DAF8:
+/* 8033DAF8 00339758 80 06 01 F4 */ lwz r0, 0x1f4(r6)
+/* 8033DAFC 0033975C 2C 00 00 04 */ cmpwi r0, 4
+/* 8033DB00 00339760 40 82 00 18 */ bne lbl_8033DB18
+/* 8033DB04 00339764 3C 80 80 45 */ lis r4, lbl_8044A4DC@ha
+/* 8033DB08 00339768 38 84 A4 DC */ addi r4, r4, lbl_8044A4DC@l
+/* 8033DB0C 0033976C 48 00 A9 4D */ bl gpiSetErrorString
+/* 8033DB10 00339770 38 60 00 02 */ li r3, 2
+/* 8033DB14 00339774 48 00 00 30 */ b lbl_8033DB44
+lbl_8033DB18:
+/* 8033DB18 00339778 2C 05 00 00 */ cmpwi r5, 0
+/* 8033DB1C 0033977C 40 82 00 18 */ bne lbl_8033DB34
+/* 8033DB20 00339780 3C 80 80 45 */ lis r4, lbl_8044A5F0@ha
+/* 8033DB24 00339784 38 84 A5 F0 */ addi r4, r4, lbl_8044A5F0@l
+/* 8033DB28 00339788 48 00 A9 31 */ bl gpiSetErrorString
+/* 8033DB2C 0033978C 38 60 00 02 */ li r3, 2
+/* 8033DB30 00339790 48 00 00 14 */ b lbl_8033DB44
+lbl_8033DB34:
+/* 8033DB34 00339794 7C A6 2B 78 */ mr r6, r5
+/* 8033DB38 00339798 38 A0 00 01 */ li r5, 1
+/* 8033DB3C 0033979C 38 E0 00 00 */ li r7, 0
+/* 8033DB40 003397A0 48 00 13 91 */ bl gpiSendBuddyMessage
+lbl_8033DB44:
+/* 8033DB44 003397A4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033DB48 003397A8 7C 08 03 A6 */ mtlr r0
+/* 8033DB4C 003397AC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033DB50 003397B0 4E 80 00 20 */ blr
+lbl_8033DB54:
+/* 8033DB54 003397B4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033DB58 003397B8 7C 08 02 A6 */ mflr r0
+/* 8033DB5C 003397BC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033DB60 003397C0 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033DB64 003397C4 4B E8 95 C5 */ bl _savegpr_27
+/* 8033DB68 003397C8 3B E0 00 00 */ li r31, 0
+/* 8033DB6C 003397CC 7C 7E 1B 78 */ mr r30, r3
+/* 8033DB70 003397D0 93 E3 00 00 */ stw r31, 0(r3)
+/* 8033DB74 003397D4 7C 9B 23 78 */ mr r27, r4
+/* 8033DB78 003397D8 7C BC 2B 78 */ mr r28, r5
+/* 8033DB7C 003397DC 7C DD 33 78 */ mr r29, r6
+/* 8033DB80 003397E0 38 60 04 A8 */ li r3, 0x4a8
+/* 8033DB84 003397E4 4B FF B7 91 */ bl gsimalloc
+/* 8033DB88 003397E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033DB8C 003397EC 90 61 00 08 */ stw r3, 8(r1)
+/* 8033DB90 003397F0 40 82 00 0C */ bne lbl_8033DB9C
+/* 8033DB94 003397F4 38 60 00 01 */ li r3, 1
+/* 8033DB98 003397F8 48 00 01 68 */ b lbl_8033DD00
+lbl_8033DB9C:
+/* 8033DB9C 003397FC 38 80 00 00 */ li r4, 0
+/* 8033DBA0 00339800 38 A0 04 A8 */ li r5, 0x4a8
+/* 8033DBA4 00339804 4B CC 65 61 */ bl memset
+/* 8033DBA8 00339808 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBAC 0033980C 38 00 00 01 */ li r0, 1
+/* 8033DBB0 00339810 38 61 00 08 */ addi r3, r1, 8
+/* 8033DBB4 00339814 9B E4 00 00 */ stb r31, 0(r4)
+/* 8033DBB8 00339818 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBBC 0033981C 93 E4 04 34 */ stw r31, 0x434(r4)
+/* 8033DBC0 00339820 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBC4 00339824 90 04 01 00 */ stw r0, 0x100(r4)
+/* 8033DBC8 00339828 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBCC 0033982C 93 E4 01 04 */ stw r31, 0x104(r4)
+/* 8033DBD0 00339830 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBD4 00339834 93 E4 01 08 */ stw r31, 0x108(r4)
+/* 8033DBD8 00339838 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBDC 0033983C 93 E4 01 0C */ stw r31, 0x10c(r4)
+/* 8033DBE0 00339840 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBE4 00339844 93 64 04 84 */ stw r27, 0x484(r4)
+/* 8033DBE8 00339848 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBEC 0033984C 93 84 04 88 */ stw r28, 0x488(r4)
+/* 8033DBF0 00339850 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DBF4 00339854 93 A4 01 A4 */ stw r29, 0x1a4(r4)
+/* 8033DBF8 00339858 48 00 7A 15 */ bl gpiInitProfiles
+/* 8033DBFC 0033985C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033DC00 00339860 40 82 00 14 */ bne lbl_8033DC14
+/* 8033DC04 00339864 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033DC08 00339868 4B FF B7 31 */ bl gsifree
+/* 8033DC0C 0033986C 38 60 00 01 */ li r3, 1
+/* 8033DC10 00339870 48 00 00 F0 */ b lbl_8033DD00
+lbl_8033DC14:
+/* 8033DC14 00339874 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC18 00339878 38 61 00 08 */ addi r3, r1, 8
+/* 8033DC1C 0033987C 93 E4 04 3C */ stw r31, 0x43c(r4)
+/* 8033DC20 00339880 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC24 00339884 93 E4 01 A8 */ stw r31, 0x1a8(r4)
+/* 8033DC28 00339888 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC2C 0033988C 93 E4 01 AC */ stw r31, 0x1ac(r4)
+/* 8033DC30 00339890 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC34 00339894 93 E4 01 B0 */ stw r31, 0x1b0(r4)
+/* 8033DC38 00339898 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC3C 0033989C 93 E4 01 B4 */ stw r31, 0x1b4(r4)
+/* 8033DC40 003398A0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC44 003398A4 93 E4 01 B8 */ stw r31, 0x1b8(r4)
+/* 8033DC48 003398A8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC4C 003398AC 93 E4 01 BC */ stw r31, 0x1bc(r4)
+/* 8033DC50 003398B0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC54 003398B4 93 E4 01 C0 */ stw r31, 0x1c0(r4)
+/* 8033DC58 003398B8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC5C 003398BC 93 E4 01 C4 */ stw r31, 0x1c4(r4)
+/* 8033DC60 003398C0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC64 003398C4 93 E4 01 C8 */ stw r31, 0x1c8(r4)
+/* 8033DC68 003398C8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC6C 003398CC 93 E4 01 CC */ stw r31, 0x1cc(r4)
+/* 8033DC70 003398D0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC74 003398D4 93 E4 01 D0 */ stw r31, 0x1d0(r4)
+/* 8033DC78 003398D8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC7C 003398DC 93 E4 01 D4 */ stw r31, 0x1d4(r4)
+/* 8033DC80 003398E0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC84 003398E4 93 E4 01 D8 */ stw r31, 0x1d8(r4)
+/* 8033DC88 003398E8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC8C 003398EC 93 E4 01 DC */ stw r31, 0x1dc(r4)
+/* 8033DC90 003398F0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC94 003398F4 93 E4 01 E0 */ stw r31, 0x1e0(r4)
+/* 8033DC98 003398F8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DC9C 003398FC 93 E4 01 E4 */ stw r31, 0x1e4(r4)
+/* 8033DCA0 00339900 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DCA4 00339904 93 E4 01 E8 */ stw r31, 0x1e8(r4)
+/* 8033DCA8 00339908 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033DCAC 0033990C 93 E4 01 EC */ stw r31, 0x1ec(r4)
+/* 8033DCB0 00339910 48 00 00 D9 */ bl gpiReset
+/* 8033DCB4 00339914 2C 03 00 00 */ cmpwi r3, 0
+/* 8033DCB8 00339918 7C 7F 1B 78 */ mr r31, r3
+/* 8033DCBC 0033991C 41 82 00 2C */ beq lbl_8033DCE8
+/* 8033DCC0 00339920 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8033DCC4 00339924 38 61 00 08 */ addi r3, r1, 8
+/* 8033DCC8 00339928 38 80 00 01 */ li r4, 1
+/* 8033DCCC 0033992C 48 00 38 55 */ bl gpiDisconnect
+/* 8033DCD0 00339930 80 7E 04 44 */ lwz r3, 0x444(r30)
+/* 8033DCD4 00339934 4B FF 8B F9 */ bl TableFree
+/* 8033DCD8 00339938 7F C3 F3 78 */ mr r3, r30
+/* 8033DCDC 0033993C 4B FF B6 5D */ bl gsifree
+/* 8033DCE0 00339940 7F E3 FB 78 */ mr r3, r31
+/* 8033DCE4 00339944 48 00 00 1C */ b lbl_8033DD00
+lbl_8033DCE8:
+/* 8033DCE8 00339948 4B FF B2 E9 */ bl SocketStartUp
+/* 8033DCEC 0033994C 4B FF B2 ED */ bl current_time
+/* 8033DCF0 00339950 4B E8 F0 6D */ bl srand
+/* 8033DCF4 00339954 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033DCF8 00339958 38 60 00 00 */ li r3, 0
+/* 8033DCFC 0033995C 90 1E 00 00 */ stw r0, 0(r30)
+lbl_8033DD00:
+/* 8033DD00 00339960 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033DD04 00339964 4B E8 94 71 */ bl _restgpr_27
+/* 8033DD08 00339968 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033DD0C 0033996C 7C 08 03 A6 */ mtlr r0
+/* 8033DD10 00339970 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033DD14 00339974 4E 80 00 20 */ blr
+lbl_8033DD18:
+/* 8033DD18 00339978 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033DD1C 0033997C 7C 08 02 A6 */ mflr r0
+/* 8033DD20 00339980 38 80 00 01 */ li r4, 1
+/* 8033DD24 00339984 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033DD28 00339988 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8033DD2C 0033998C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8033DD30 00339990 7C 7E 1B 78 */ mr r30, r3
+/* 8033DD34 00339994 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8033DD38 00339998 48 00 37 E9 */ bl gpiDisconnect
+/* 8033DD3C 0033999C 80 7F 04 44 */ lwz r3, 0x444(r31)
+/* 8033DD40 003399A0 4B FF 8B 8D */ bl TableFree
+/* 8033DD44 003399A4 7F E3 FB 78 */ mr r3, r31
+/* 8033DD48 003399A8 4B FF B5 F1 */ bl gsifree
+/* 8033DD4C 003399AC 38 00 00 00 */ li r0, 0
+/* 8033DD50 003399B0 90 1E 00 00 */ stw r0, 0(r30)
+/* 8033DD54 003399B4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8033DD58 003399B8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8033DD5C 003399BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033DD60 003399C0 7C 08 03 A6 */ mtlr r0
+/* 8033DD64 003399C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033DD68 003399C8 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpi.s b/asm/SDK/DWC/gamespy/gpi.s new file mode 100644 index 0000000..a83f3c6 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpi.s @@ -0,0 +1,421 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiResetProfile
+gpiResetProfile:
+/* 8033DD6C 003399CC 38 00 00 00 */ li r0, 0
+/* 8033DD70 003399D0 38 60 00 01 */ li r3, 1
+/* 8033DD74 003399D4 90 04 00 08 */ stw r0, 8(r4)
+/* 8033DD78 003399D8 90 04 00 10 */ stw r0, 0x10(r4)
+/* 8033DD7C 003399DC 90 04 00 14 */ stw r0, 0x14(r4)
+/* 8033DD80 003399E0 90 04 00 18 */ stw r0, 0x18(r4)
+/* 8033DD84 003399E4 4E 80 00 20 */ blr
+
+.global gpiReset
+gpiReset:
+/* 8033DD88 003399E8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033DD8C 003399EC 7C 08 02 A6 */ mflr r0
+/* 8033DD90 003399F0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033DD94 003399F4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033DD98 003399F8 3B E0 FF FF */ li r31, -1
+/* 8033DD9C 003399FC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033DDA0 00339A00 3B C0 00 00 */ li r30, 0
+/* 8033DDA4 00339A04 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8033DDA8 00339A08 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8033DDAC 00339A0C 7C 7C 1B 78 */ mr r28, r3
+/* 8033DDB0 00339A10 83 A3 00 00 */ lwz r29, 0(r3)
+/* 8033DDB4 00339A14 9B DD 01 10 */ stb r30, 0x110(r29)
+/* 8033DDB8 00339A18 9B DD 01 2F */ stb r30, 0x12f(r29)
+/* 8033DDBC 00339A1C 9B DD 01 44 */ stb r30, 0x144(r29)
+/* 8033DDC0 00339A20 93 FD 01 F0 */ stw r31, 0x1f0(r29)
+/* 8033DDC4 00339A24 93 DD 01 F4 */ stw r30, 0x1f4(r29)
+/* 8033DDC8 00339A28 93 DD 02 00 */ stw r30, 0x200(r29)
+/* 8033DDCC 00339A2C 93 DD 02 04 */ stw r30, 0x204(r29)
+/* 8033DDD0 00339A30 93 DD 01 FC */ stw r30, 0x1fc(r29)
+/* 8033DDD4 00339A34 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
+/* 8033DDD8 00339A38 4B FF B5 61 */ bl gsifree
+/* 8033DDDC 00339A3C 93 DD 01 F8 */ stw r30, 0x1f8(r29)
+/* 8033DDE0 00339A40 93 DD 02 0C */ stw r30, 0x20c(r29)
+/* 8033DDE4 00339A44 80 7D 02 08 */ lwz r3, 0x208(r29)
+/* 8033DDE8 00339A48 4B FF B5 51 */ bl gsifree
+/* 8033DDEC 00339A4C 93 DD 02 08 */ stw r30, 0x208(r29)
+/* 8033DDF0 00339A50 93 DD 02 18 */ stw r30, 0x218(r29)
+/* 8033DDF4 00339A54 93 DD 02 1C */ stw r30, 0x21c(r29)
+/* 8033DDF8 00339A58 93 DD 02 14 */ stw r30, 0x214(r29)
+/* 8033DDFC 00339A5C 80 7D 02 10 */ lwz r3, 0x210(r29)
+/* 8033DE00 00339A60 4B FF B5 39 */ bl gsifree
+/* 8033DE04 00339A64 93 DD 02 10 */ stw r30, 0x210(r29)
+/* 8033DE08 00339A68 93 DD 04 64 */ stw r30, 0x464(r29)
+/* 8033DE0C 00339A6C 93 DD 04 68 */ stw r30, 0x468(r29)
+/* 8033DE10 00339A70 93 DD 04 60 */ stw r30, 0x460(r29)
+/* 8033DE14 00339A74 80 7D 04 5C */ lwz r3, 0x45c(r29)
+/* 8033DE18 00339A78 4B FF B5 21 */ bl gsifree
+/* 8033DE1C 00339A7C 93 DD 04 5C */ stw r30, 0x45c(r29)
+/* 8033DE20 00339A80 93 DD 04 74 */ stw r30, 0x474(r29)
+/* 8033DE24 00339A84 93 DD 04 78 */ stw r30, 0x478(r29)
+/* 8033DE28 00339A88 93 DD 04 70 */ stw r30, 0x470(r29)
+/* 8033DE2C 00339A8C 80 7D 04 6C */ lwz r3, 0x46c(r29)
+/* 8033DE30 00339A90 4B FF B5 09 */ bl gsifree
+/* 8033DE34 00339A94 93 DD 04 6C */ stw r30, 0x46c(r29)
+/* 8033DE38 00339A98 38 00 00 02 */ li r0, 2
+/* 8033DE3C 00339A9C 93 FD 02 20 */ stw r31, 0x220(r29)
+/* 8033DE40 00339AA0 90 1D 02 28 */ stw r0, 0x228(r29)
+/* 8033DE44 00339AA4 48 00 00 0C */ b lbl_8033DE50
+lbl_8033DE48:
+/* 8033DE48 00339AA8 7F 83 E3 78 */ mr r3, r28
+/* 8033DE4C 00339AAC 48 00 62 11 */ bl gpiRemoveOperation
+lbl_8033DE50:
+/* 8033DE50 00339AB0 80 9D 04 40 */ lwz r4, 0x440(r29)
+/* 8033DE54 00339AB4 2C 04 00 00 */ cmpwi r4, 0
+/* 8033DE58 00339AB8 40 82 FF F0 */ bne lbl_8033DE48
+/* 8033DE5C 00339ABC 3B E0 00 00 */ li r31, 0
+/* 8033DE60 00339AC0 3C 80 80 34 */ lis r4, gpiResetProfile@ha
+/* 8033DE64 00339AC4 93 FD 04 40 */ stw r31, 0x440(r29)
+/* 8033DE68 00339AC8 7F 83 E3 78 */ mr r3, r28
+/* 8033DE6C 00339ACC 38 84 DD 6C */ addi r4, r4, gpiResetProfile@l
+/* 8033DE70 00339AD0 38 A0 00 00 */ li r5, 0
+/* 8033DE74 00339AD4 93 FD 04 4C */ stw r31, 0x44c(r29)
+/* 8033DE78 00339AD8 48 00 7D 79 */ bl gpiProfileMap
+/* 8033DE7C 00339ADC 93 FD 01 9C */ stw r31, 0x19c(r29)
+/* 8033DE80 00339AE0 38 00 FF FF */ li r0, -1
+/* 8033DE84 00339AE4 38 60 00 00 */ li r3, 0
+/* 8033DE88 00339AE8 93 FD 01 A0 */ stw r31, 0x1a0(r29)
+/* 8033DE8C 00339AEC 93 FD 01 98 */ stw r31, 0x198(r29)
+/* 8033DE90 00339AF0 93 FD 02 2C */ stw r31, 0x22c(r29)
+/* 8033DE94 00339AF4 93 FD 04 38 */ stw r31, 0x438(r29)
+/* 8033DE98 00339AF8 93 FD 04 50 */ stw r31, 0x450(r29)
+/* 8033DE9C 00339AFC 90 1D 02 30 */ stw r0, 0x230(r29)
+/* 8033DEA0 00339B00 9B FD 02 34 */ stb r31, 0x234(r29)
+/* 8033DEA4 00339B04 9B FD 03 34 */ stb r31, 0x334(r29)
+/* 8033DEA8 00339B08 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033DEAC 00339B0C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033DEB0 00339B10 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8033DEB4 00339B14 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8033DEB8 00339B18 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033DEBC 00339B1C 7C 08 03 A6 */ mtlr r0
+/* 8033DEC0 00339B20 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033DEC4 00339B24 4E 80 00 20 */ blr
+
+.global gpiProcessConnectionManager
+gpiProcessConnectionManager:
+/* 8033DEC8 00339B28 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033DECC 00339B2C 7C 08 02 A6 */ mflr r0
+/* 8033DED0 00339B30 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033DED4 00339B34 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033DED8 00339B38 4B E8 92 51 */ bl _savegpr_27
+/* 8033DEDC 00339B3C 3B E0 00 00 */ li r31, 0
+/* 8033DEE0 00339B40 3F C0 80 45 */ lis r30, lbl_8044A688@ha
+/* 8033DEE4 00339B44 93 E1 00 08 */ stw r31, 8(r1)
+/* 8033DEE8 00339B48 7C 7C 1B 78 */ mr r28, r3
+/* 8033DEEC 00339B4C 3B DE A6 88 */ addi r30, r30, lbl_8044A688@l
+/* 8033DEF0 00339B50 83 A3 00 00 */ lwz r29, 0(r3)
+lbl_8033DEF4:
+/* 8033DEF4 00339B54 7F 83 E3 78 */ mr r3, r28
+/* 8033DEF8 00339B58 38 9D 02 10 */ addi r4, r29, 0x210
+/* 8033DEFC 00339B5C 48 00 44 31 */ bl gpiAddLocalInfo
+/* 8033DF00 00339B60 80 9D 01 F0 */ lwz r4, 0x1f0(r29)
+/* 8033DF04 00339B64 7F 83 E3 78 */ mr r3, r28
+/* 8033DF08 00339B68 38 BD 02 10 */ addi r5, r29, 0x210
+/* 8033DF0C 00339B6C 38 C1 00 08 */ addi r6, r1, 8
+/* 8033DF10 00339B70 38 E0 00 01 */ li r7, 1
+/* 8033DF14 00339B74 39 0D 8F 50 */ addi r8, r13, lbl_8063E210-_SDA_BASE_
+/* 8033DF18 00339B78 48 00 1A 7D */ bl gpiSendFromBuffer
+/* 8033DF1C 00339B7C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033DF20 00339B80 41 82 00 08 */ beq lbl_8033DF28
+/* 8033DF24 00339B84 48 00 02 70 */ b lbl_8033E194
+lbl_8033DF28:
+/* 8033DF28 00339B88 80 9D 01 F0 */ lwz r4, 0x1f0(r29)
+/* 8033DF2C 00339B8C 7F 83 E3 78 */ mr r3, r28
+/* 8033DF30 00339B90 38 BD 01 F8 */ addi r5, r29, 0x1f8
+/* 8033DF34 00339B94 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8033DF38 00339B98 38 E1 00 08 */ addi r7, r1, 8
+/* 8033DF3C 00339B9C 39 0D 8F 50 */ addi r8, r13, lbl_8063E210-_SDA_BASE_
+/* 8033DF40 00339BA0 48 00 19 15 */ bl gpiRecvToBuffer
+/* 8033DF44 00339BA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033DF48 00339BA8 41 82 01 C4 */ beq lbl_8033E10C
+/* 8033DF4C 00339BAC 2C 03 00 03 */ cmpwi r3, 3
+/* 8033DF50 00339BB0 40 82 02 44 */ bne lbl_8033E194
+/* 8033DF54 00339BB4 7F 83 E3 78 */ mr r3, r28
+/* 8033DF58 00339BB8 38 BE 00 00 */ addi r5, r30, 0
+/* 8033DF5C 00339BBC 38 80 00 05 */ li r4, 5
+/* 8033DF60 00339BC0 48 00 A4 A9 */ bl gpiSetError
+/* 8033DF64 00339BC4 7F 83 E3 78 */ mr r3, r28
+/* 8033DF68 00339BC8 38 80 00 03 */ li r4, 3
+/* 8033DF6C 00339BCC 38 A0 00 01 */ li r5, 1
+/* 8033DF70 00339BD0 48 00 1C F9 */ bl gpiCallErrorCallback
+/* 8033DF74 00339BD4 38 60 00 03 */ li r3, 3
+/* 8033DF78 00339BD8 48 00 02 1C */ b lbl_8033E194
+/* 8033DF7C 00339BDC 48 00 02 18 */ b lbl_8033E194
+/* 8033DF80 00339BE0 48 00 01 8C */ b lbl_8033E10C
+lbl_8033DF84:
+/* 8033DF84 00339BE4 9B E3 00 00 */ stb r31, 0(r3)
+/* 8033DF88 00339BE8 80 1D 01 F8 */ lwz r0, 0x1f8(r29)
+/* 8033DF8C 00339BEC 7C 80 18 50 */ subf r4, r0, r3
+/* 8033DF90 00339BF0 90 81 00 0C */ stw r4, 0xc(r1)
+/* 8033DF94 00339BF4 80 1D 02 0C */ lwz r0, 0x20c(r29)
+/* 8033DF98 00339BF8 7C 04 00 00 */ cmpw r4, r0
+/* 8033DF9C 00339BFC 40 81 00 4C */ ble lbl_8033DFE8
+/* 8033DFA0 00339C00 2C 04 40 00 */ cmpwi r4, 0x4000
+/* 8033DFA4 00339C04 38 60 40 00 */ li r3, 0x4000
+/* 8033DFA8 00339C08 41 80 00 08 */ blt lbl_8033DFB0
+/* 8033DFAC 00339C0C 7C 83 23 78 */ mr r3, r4
+lbl_8033DFB0:
+/* 8033DFB0 00339C10 80 1D 02 0C */ lwz r0, 0x20c(r29)
+/* 8033DFB4 00339C14 7C 60 1A 14 */ add r3, r0, r3
+/* 8033DFB8 00339C18 90 7D 02 0C */ stw r3, 0x20c(r29)
+/* 8033DFBC 00339C1C 38 83 00 01 */ addi r4, r3, 1
+/* 8033DFC0 00339C20 80 7D 02 08 */ lwz r3, 0x208(r29)
+/* 8033DFC4 00339C24 4B FF B3 61 */ bl gsirealloc
+/* 8033DFC8 00339C28 2C 03 00 00 */ cmpwi r3, 0
+/* 8033DFCC 00339C2C 40 82 00 18 */ bne lbl_8033DFE4
+/* 8033DFD0 00339C30 7F 83 E3 78 */ mr r3, r28
+/* 8033DFD4 00339C34 38 9E 00 2C */ addi r4, r30, 0x2c
+/* 8033DFD8 00339C38 48 00 A4 81 */ bl gpiSetErrorString
+/* 8033DFDC 00339C3C 38 60 00 01 */ li r3, 1
+/* 8033DFE0 00339C40 48 00 01 B4 */ b lbl_8033E194
+lbl_8033DFE4:
+/* 8033DFE4 00339C44 90 7D 02 08 */ stw r3, 0x208(r29)
+lbl_8033DFE8:
+/* 8033DFE8 00339C48 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 8033DFEC 00339C4C 80 7D 02 08 */ lwz r3, 0x208(r29)
+/* 8033DFF0 00339C50 80 9D 01 F8 */ lwz r4, 0x1f8(r29)
+/* 8033DFF4 00339C54 38 A5 00 01 */ addi r5, r5, 1
+/* 8033DFF8 00339C58 4B CC 60 09 */ bl memcpy
+/* 8033DFFC 00339C5C 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
+/* 8033E000 00339C60 38 9B 00 07 */ addi r4, r27, 7
+/* 8033E004 00339C64 80 1D 02 00 */ lwz r0, 0x200(r29)
+/* 8033E008 00339C68 7C 63 20 50 */ subf r3, r3, r4
+/* 8033E00C 00339C6C 7C 63 00 50 */ subf r3, r3, r0
+/* 8033E010 00339C70 90 7D 02 00 */ stw r3, 0x200(r29)
+/* 8033E014 00339C74 38 A3 00 01 */ addi r5, r3, 1
+/* 8033E018 00339C78 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
+/* 8033E01C 00339C7C 4B E8 C2 59 */ bl memmove
+/* 8033E020 00339C80 83 7D 02 08 */ lwz r27, 0x208(r29)
+/* 8033E024 00339C84 38 8D 8F 54 */ addi r4, r13, lbl_8063E214-_SDA_BASE_
+/* 8033E028 00339C88 7F 63 DB 78 */ mr r3, r27
+/* 8033E02C 00339C8C 4B E9 07 75 */ bl strstr
+/* 8033E030 00339C90 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E034 00339C94 41 82 00 40 */ beq lbl_8033E074
+/* 8033E038 00339C98 38 63 00 04 */ addi r3, r3, 4
+/* 8033E03C 00339C9C 4B E9 26 D1 */ bl atoi
+/* 8033E040 00339CA0 7C 65 1B 78 */ mr r5, r3
+/* 8033E044 00339CA4 7F 83 E3 78 */ mr r3, r28
+/* 8033E048 00339CA8 38 81 00 10 */ addi r4, r1, 0x10
+/* 8033E04C 00339CAC 48 00 60 5D */ bl gpiFindOperationByID
+/* 8033E050 00339CB0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E054 00339CB4 41 82 00 B8 */ beq lbl_8033E10C
+/* 8033E058 00339CB8 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 8033E05C 00339CBC 7F 83 E3 78 */ mr r3, r28
+/* 8033E060 00339CC0 80 BD 02 08 */ lwz r5, 0x208(r29)
+/* 8033E064 00339CC4 48 00 60 D5 */ bl gpiProcessOperation
+/* 8033E068 00339CC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E06C 00339CCC 41 82 00 A0 */ beq lbl_8033E10C
+/* 8033E070 00339CD0 48 00 01 24 */ b lbl_8033E194
+lbl_8033E074:
+/* 8033E074 00339CD4 7F 83 E3 78 */ mr r3, r28
+/* 8033E078 00339CD8 7F 64 DB 78 */ mr r4, r27
+/* 8033E07C 00339CDC 38 A0 00 01 */ li r5, 1
+/* 8033E080 00339CE0 48 00 9F 15 */ bl gpiCheckForError
+/* 8033E084 00339CE4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E088 00339CE8 41 82 00 0C */ beq lbl_8033E094
+/* 8033E08C 00339CEC 38 60 00 04 */ li r3, 4
+/* 8033E090 00339CF0 48 00 01 04 */ b lbl_8033E194
+lbl_8033E094:
+/* 8033E094 00339CF4 83 7D 02 08 */ lwz r27, 0x208(r29)
+/* 8033E098 00339CF8 38 8D 8F 5C */ addi r4, r13, lbl_8063E21C-_SDA_BASE_
+/* 8033E09C 00339CFC 38 A0 00 04 */ li r5, 4
+/* 8033E0A0 00339D00 7F 63 DB 78 */ mr r3, r27
+/* 8033E0A4 00339D04 4B E9 04 C5 */ bl strncmp
+/* 8033E0A8 00339D08 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E0AC 00339D0C 40 82 00 1C */ bne lbl_8033E0C8
+/* 8033E0B0 00339D10 7F 83 E3 78 */ mr r3, r28
+/* 8033E0B4 00339D14 7F 64 DB 78 */ mr r4, r27
+/* 8033E0B8 00339D18 48 00 02 99 */ bl gpiProcessRecvBuddyMessage
+/* 8033E0BC 00339D1C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E0C0 00339D20 41 82 00 4C */ beq lbl_8033E10C
+/* 8033E0C4 00339D24 48 00 00 D0 */ b lbl_8033E194
+lbl_8033E0C8:
+/* 8033E0C8 00339D28 7F 63 DB 78 */ mr r3, r27
+/* 8033E0CC 00339D2C 38 8D 8F 64 */ addi r4, r13, lbl_8063E224-_SDA_BASE_
+/* 8033E0D0 00339D30 38 A0 00 04 */ li r5, 4
+/* 8033E0D4 00339D34 4B E9 04 95 */ bl strncmp
+/* 8033E0D8 00339D38 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E0DC 00339D3C 41 82 00 30 */ beq lbl_8033E10C
+/* 8033E0E0 00339D40 7F 63 DB 78 */ mr r3, r27
+/* 8033E0E4 00339D44 38 8D 8F 6C */ addi r4, r13, lbl_8063E22C-_SDA_BASE_
+/* 8033E0E8 00339D48 38 A0 00 04 */ li r5, 4
+/* 8033E0EC 00339D4C 4B E9 04 7D */ bl strncmp
+/* 8033E0F0 00339D50 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E0F4 00339D54 40 82 00 18 */ bne lbl_8033E10C
+/* 8033E0F8 00339D58 7F 63 DB 78 */ mr r3, r27
+/* 8033E0FC 00339D5C 38 BD 04 8C */ addi r5, r29, 0x48c
+/* 8033E100 00339D60 38 8D 8F 6C */ addi r4, r13, lbl_8063E22C-_SDA_BASE_
+/* 8033E104 00339D64 38 C0 00 19 */ li r6, 0x19
+/* 8033E108 00339D68 48 00 9F 85 */ bl gpiValueForKey
+lbl_8033E10C:
+/* 8033E10C 00339D6C 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
+/* 8033E110 00339D70 38 8D 8F 78 */ addi r4, r13, lbl_8063E238-_SDA_BASE_
+/* 8033E114 00339D74 4B E9 06 8D */ bl strstr
+/* 8033E118 00339D78 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E11C 00339D7C 7C 7B 1B 78 */ mr r27, r3
+/* 8033E120 00339D80 40 82 FE 64 */ bne lbl_8033DF84
+/* 8033E124 00339D84 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033E128 00339D88 2C 00 00 00 */ cmpwi r0, 0
+/* 8033E12C 00339D8C 41 82 00 40 */ beq lbl_8033E16C
+/* 8033E130 00339D90 80 1D 01 F4 */ lwz r0, 0x1f4(r29)
+/* 8033E134 00339D94 2C 00 00 05 */ cmpwi r0, 5
+/* 8033E138 00339D98 41 82 00 34 */ beq lbl_8033E16C
+/* 8033E13C 00339D9C 38 00 00 04 */ li r0, 4
+/* 8033E140 00339DA0 7F 83 E3 78 */ mr r3, r28
+/* 8033E144 00339DA4 90 1D 01 F4 */ stw r0, 0x1f4(r29)
+/* 8033E148 00339DA8 38 BE 00 3C */ addi r5, r30, 0x3c
+/* 8033E14C 00339DAC 38 80 00 07 */ li r4, 7
+/* 8033E150 00339DB0 48 00 A2 B9 */ bl gpiSetError
+/* 8033E154 00339DB4 7F 83 E3 78 */ mr r3, r28
+/* 8033E158 00339DB8 38 80 00 03 */ li r4, 3
+/* 8033E15C 00339DBC 38 A0 00 01 */ li r5, 1
+/* 8033E160 00339DC0 48 00 1B 09 */ bl gpiCallErrorCallback
+/* 8033E164 00339DC4 38 60 00 00 */ li r3, 0
+/* 8033E168 00339DC8 48 00 00 2C */ b lbl_8033E194
+lbl_8033E16C:
+/* 8033E16C 00339DCC 7F 83 E3 78 */ mr r3, r28
+/* 8033E170 00339DD0 48 00 5F 89 */ bl gpiOperationsAreBlocking
+/* 8033E174 00339DD4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E178 00339DD8 7C 7B 1B 78 */ mr r27, r3
+/* 8033E17C 00339DDC 41 82 00 0C */ beq lbl_8033E188
+/* 8033E180 00339DE0 38 60 00 0A */ li r3, 0xa
+/* 8033E184 00339DE4 4B FF AE A1 */ bl msleep
+lbl_8033E188:
+/* 8033E188 00339DE8 2C 1B 00 00 */ cmpwi r27, 0
+/* 8033E18C 00339DEC 40 82 FD 68 */ bne lbl_8033DEF4
+/* 8033E190 00339DF0 38 60 00 00 */ li r3, 0
+lbl_8033E194:
+/* 8033E194 00339DF4 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033E198 00339DF8 4B E8 8F DD */ bl _restgpr_27
+/* 8033E19C 00339DFC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033E1A0 00339E00 7C 08 03 A6 */ mtlr r0
+/* 8033E1A4 00339E04 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033E1A8 00339E08 4E 80 00 20 */ blr
+
+.global gpiProcess
+gpiProcess:
+/* 8033E1AC 00339E0C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033E1B0 00339E10 7C 08 02 A6 */ mflr r0
+/* 8033E1B4 00339E14 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033E1B8 00339E18 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033E1BC 00339E1C 4B E8 8F 6D */ bl _savegpr_27
+/* 8033E1C0 00339E20 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8033E1C4 00339E24 7C 7F 1B 78 */ mr r31, r3
+/* 8033E1C8 00339E28 7C 9B 23 78 */ mr r27, r4
+/* 8033E1CC 00339E2C 3B A0 00 00 */ li r29, 0
+/* 8033E1D0 00339E30 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
+/* 8033E1D4 00339E34 2C 00 00 01 */ cmpwi r0, 1
+/* 8033E1D8 00339E38 40 82 00 80 */ bne lbl_8033E258
+lbl_8033E1DC:
+/* 8033E1DC 00339E3C 7F E3 FB 78 */ mr r3, r31
+/* 8033E1E0 00339E40 48 00 31 B1 */ bl gpiCheckConnect
+/* 8033E1E4 00339E44 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E1E8 00339E48 7C 7D 1B 78 */ mr r29, r3
+/* 8033E1EC 00339E4C 38 60 00 00 */ li r3, 0
+/* 8033E1F0 00339E50 40 82 00 1C */ bne lbl_8033E20C
+/* 8033E1F4 00339E54 2C 1B 00 00 */ cmpwi r27, 0
+/* 8033E1F8 00339E58 41 82 00 14 */ beq lbl_8033E20C
+/* 8033E1FC 00339E5C 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
+/* 8033E200 00339E60 2C 00 00 01 */ cmpwi r0, 1
+/* 8033E204 00339E64 40 82 00 08 */ bne lbl_8033E20C
+/* 8033E208 00339E68 38 60 00 01 */ li r3, 1
+lbl_8033E20C:
+/* 8033E20C 00339E6C 7C 03 00 D0 */ neg r0, r3
+/* 8033E210 00339E70 7C 00 1B 78 */ or r0, r0, r3
+/* 8033E214 00339E74 54 1C 0F FF */ rlwinm. r28, r0, 1, 0x1f, 0x1f
+/* 8033E218 00339E78 41 82 00 0C */ beq lbl_8033E224
+/* 8033E21C 00339E7C 38 60 00 0A */ li r3, 0xa
+/* 8033E220 00339E80 4B FF AE 05 */ bl msleep
+lbl_8033E224:
+/* 8033E224 00339E84 2C 1C 00 00 */ cmpwi r28, 0
+/* 8033E228 00339E88 40 82 FF B4 */ bne lbl_8033E1DC
+/* 8033E22C 00339E8C 2C 1D 00 00 */ cmpwi r29, 0
+/* 8033E230 00339E90 41 82 00 28 */ beq lbl_8033E258
+/* 8033E234 00339E94 7F E3 FB 78 */ mr r3, r31
+/* 8033E238 00339E98 38 81 00 08 */ addi r4, r1, 8
+/* 8033E23C 00339E9C 38 A0 00 01 */ li r5, 1
+/* 8033E240 00339EA0 48 00 5E 69 */ bl gpiFindOperationByID
+/* 8033E244 00339EA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E248 00339EA8 41 82 00 10 */ beq lbl_8033E258
+/* 8033E24C 00339EAC 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033E250 00339EB0 38 00 00 04 */ li r0, 4
+/* 8033E254 00339EB4 90 03 00 1C */ stw r0, 0x1c(r3)
+lbl_8033E258:
+/* 8033E258 00339EB8 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
+/* 8033E25C 00339EBC 2C 00 00 03 */ cmpwi r0, 3
+/* 8033E260 00339EC0 41 82 00 14 */ beq lbl_8033E274
+/* 8033E264 00339EC4 2C 00 00 02 */ cmpwi r0, 2
+/* 8033E268 00339EC8 41 82 00 0C */ beq lbl_8033E274
+/* 8033E26C 00339ECC 2C 00 00 05 */ cmpwi r0, 5
+/* 8033E270 00339ED0 40 82 00 2C */ bne lbl_8033E29C
+lbl_8033E274:
+/* 8033E274 00339ED4 2C 1D 00 00 */ cmpwi r29, 0
+/* 8033E278 00339ED8 40 82 00 10 */ bne lbl_8033E288
+/* 8033E27C 00339EDC 7F E3 FB 78 */ mr r3, r31
+/* 8033E280 00339EE0 4B FF FC 49 */ bl gpiProcessConnectionManager
+/* 8033E284 00339EE4 7C 7D 1B 78 */ mr r29, r3
+lbl_8033E288:
+/* 8033E288 00339EE8 2C 1D 00 00 */ cmpwi r29, 0
+/* 8033E28C 00339EEC 40 82 00 10 */ bne lbl_8033E29C
+/* 8033E290 00339EF0 7F E3 FB 78 */ mr r3, r31
+/* 8033E294 00339EF4 48 00 69 E9 */ bl gpiProcessPeers
+/* 8033E298 00339EF8 7C 7D 1B 78 */ mr r29, r3
+lbl_8033E29C:
+/* 8033E29C 00339EFC 2C 1D 00 00 */ cmpwi r29, 0
+/* 8033E2A0 00339F00 40 82 00 10 */ bne lbl_8033E2B0
+/* 8033E2A4 00339F04 7F E3 FB 78 */ mr r3, r31
+/* 8033E2A8 00339F08 48 00 99 45 */ bl gpiProcessSearches
+/* 8033E2AC 00339F0C 7C 7D 1B 78 */ mr r29, r3
+lbl_8033E2B0:
+/* 8033E2B0 00339F10 80 1E 04 40 */ lwz r0, 0x440(r30)
+/* 8033E2B4 00339F14 90 01 00 08 */ stw r0, 8(r1)
+/* 8033E2B8 00339F18 48 00 00 38 */ b lbl_8033E2F0
+lbl_8033E2BC:
+/* 8033E2BC 00339F1C 80 04 00 1C */ lwz r0, 0x1c(r4)
+/* 8033E2C0 00339F20 2C 00 00 00 */ cmpwi r0, 0
+/* 8033E2C4 00339F24 41 82 00 24 */ beq lbl_8033E2E8
+/* 8033E2C8 00339F28 7F E3 FB 78 */ mr r3, r31
+/* 8033E2CC 00339F2C 48 00 58 99 */ bl gpiFailedOpCallback
+/* 8033E2D0 00339F30 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033E2D4 00339F34 7F E3 FB 78 */ mr r3, r31
+/* 8033E2D8 00339F38 80 04 00 20 */ lwz r0, 0x20(r4)
+/* 8033E2DC 00339F3C 90 01 00 08 */ stw r0, 8(r1)
+/* 8033E2E0 00339F40 48 00 5D 7D */ bl gpiRemoveOperation
+/* 8033E2E4 00339F44 48 00 00 0C */ b lbl_8033E2F0
+lbl_8033E2E8:
+/* 8033E2E8 00339F48 80 04 00 20 */ lwz r0, 0x20(r4)
+/* 8033E2EC 00339F4C 90 01 00 08 */ stw r0, 8(r1)
+lbl_8033E2F0:
+/* 8033E2F0 00339F50 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033E2F4 00339F54 2C 04 00 00 */ cmpwi r4, 0
+/* 8033E2F8 00339F58 40 82 FF C4 */ bne lbl_8033E2BC
+/* 8033E2FC 00339F5C 7F E3 FB 78 */ mr r3, r31
+/* 8033E300 00339F60 7F 64 DB 78 */ mr r4, r27
+/* 8033E304 00339F64 48 00 1C FD */ bl gpiProcessCallbacks
+/* 8033E308 00339F68 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E30C 00339F6C 41 82 00 08 */ beq lbl_8033E314
+/* 8033E310 00339F70 48 00 00 28 */ b lbl_8033E338
+lbl_8033E314:
+/* 8033E314 00339F74 80 1E 04 38 */ lwz r0, 0x438(r30)
+/* 8033E318 00339F78 2C 00 00 00 */ cmpwi r0, 0
+/* 8033E31C 00339F7C 41 82 00 18 */ beq lbl_8033E334
+/* 8033E320 00339F80 7F E3 FB 78 */ mr r3, r31
+/* 8033E324 00339F84 38 80 00 00 */ li r4, 0
+/* 8033E328 00339F88 48 00 31 F9 */ bl gpiDisconnect
+/* 8033E32C 00339F8C 7F E3 FB 78 */ mr r3, r31
+/* 8033E330 00339F90 4B FF FA 59 */ bl gpiReset
+lbl_8033E334:
+/* 8033E334 00339F94 7F A3 EB 78 */ mr r3, r29
+lbl_8033E338:
+/* 8033E338 00339F98 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033E33C 00339F9C 4B E8 8E 39 */ bl _restgpr_27
+/* 8033E340 00339FA0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033E344 00339FA4 7C 08 03 A6 */ mtlr r0
+/* 8033E348 00339FA8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033E34C 00339FAC 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiBuddy.s b/asm/SDK/DWC/gamespy/gpiBuddy.s new file mode 100644 index 0000000..f920a4c --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiBuddy.s @@ -0,0 +1,1100 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiProcessRecvBuddyMessage
+gpiProcessRecvBuddyMessage:
+/* 8033E350 00339FB0 94 21 EE 50 */ stwu r1, -0x11b0(r1)
+/* 8033E354 00339FB4 7C 08 02 A6 */ mflr r0
+/* 8033E358 00339FB8 90 01 11 B4 */ stw r0, 0x11b4(r1)
+/* 8033E35C 00339FBC 39 61 11 B0 */ addi r11, r1, 0x11b0
+/* 8033E360 00339FC0 4B E8 8D BD */ bl _savegpr_24
+/* 8033E364 00339FC4 7C 9B 23 78 */ mr r27, r4
+/* 8033E368 00339FC8 3F C0 80 45 */ lis r30, lbl_8044A700@ha
+/* 8033E36C 00339FCC 83 83 00 00 */ lwz r28, 0(r3)
+/* 8033E370 00339FD0 7C 7A 1B 78 */ mr r26, r3
+/* 8033E374 00339FD4 7F 63 DB 78 */ mr r3, r27
+/* 8033E378 00339FD8 3B DE A7 00 */ addi r30, r30, lbl_8044A700@l
+/* 8033E37C 00339FDC 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033E380 00339FE0 38 8D 8F 80 */ addi r4, r13, lbl_8063E240-_SDA_BASE_
+/* 8033E384 00339FE4 38 C0 10 00 */ li r6, 0x1000
+/* 8033E388 00339FE8 48 00 9D 05 */ bl gpiValueForKey
+/* 8033E38C 00339FEC 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E390 00339FF0 40 82 00 2C */ bne lbl_8033E3BC
+/* 8033E394 00339FF4 7F 43 D3 78 */ mr r3, r26
+/* 8033E398 00339FF8 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E39C 00339FFC 38 80 00 01 */ li r4, 1
+/* 8033E3A0 0033A000 48 00 A0 69 */ bl gpiSetError
+/* 8033E3A4 0033A004 7F 43 D3 78 */ mr r3, r26
+/* 8033E3A8 0033A008 38 80 00 03 */ li r4, 3
+/* 8033E3AC 0033A00C 38 A0 00 01 */ li r5, 1
+/* 8033E3B0 0033A010 48 00 18 B9 */ bl gpiCallErrorCallback
+/* 8033E3B4 0033A014 38 60 00 03 */ li r3, 3
+/* 8033E3B8 0033A018 48 00 0A 0C */ b lbl_8033EDC4
+lbl_8033E3BC:
+/* 8033E3BC 0033A01C 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033E3C0 0033A020 4B E9 23 4D */ bl atoi
+/* 8033E3C4 0033A024 7C 78 1B 78 */ mr r24, r3
+/* 8033E3C8 0033A028 7F 63 DB 78 */ mr r3, r27
+/* 8033E3CC 0033A02C 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033E3D0 0033A030 38 8D 8F 88 */ addi r4, r13, lbl_8063E248-_SDA_BASE_
+/* 8033E3D4 0033A034 38 C0 10 00 */ li r6, 0x1000
+/* 8033E3D8 0033A038 48 00 9C B5 */ bl gpiValueForKey
+/* 8033E3DC 0033A03C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E3E0 0033A040 40 82 00 2C */ bne lbl_8033E40C
+/* 8033E3E4 0033A044 7F 43 D3 78 */ mr r3, r26
+/* 8033E3E8 0033A048 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E3EC 0033A04C 38 80 00 01 */ li r4, 1
+/* 8033E3F0 0033A050 48 00 A0 19 */ bl gpiSetError
+/* 8033E3F4 0033A054 7F 43 D3 78 */ mr r3, r26
+/* 8033E3F8 0033A058 38 80 00 03 */ li r4, 3
+/* 8033E3FC 0033A05C 38 A0 00 01 */ li r5, 1
+/* 8033E400 0033A060 48 00 18 69 */ bl gpiCallErrorCallback
+/* 8033E404 0033A064 38 60 00 03 */ li r3, 3
+/* 8033E408 0033A068 48 00 09 BC */ b lbl_8033EDC4
+lbl_8033E40C:
+/* 8033E40C 0033A06C 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033E410 0033A070 4B E9 22 FD */ bl atoi
+/* 8033E414 0033A074 7C 7D 1B 78 */ mr r29, r3
+/* 8033E418 0033A078 7F 63 DB 78 */ mr r3, r27
+/* 8033E41C 0033A07C 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033E420 0033A080 38 8D 8F 8C */ addi r4, r13, lbl_8063E24C-_SDA_BASE_
+/* 8033E424 0033A084 38 C0 10 00 */ li r6, 0x1000
+/* 8033E428 0033A088 48 00 9C 65 */ bl gpiValueForKey
+/* 8033E42C 0033A08C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E430 0033A090 41 82 00 14 */ beq lbl_8033E444
+/* 8033E434 0033A094 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033E438 0033A098 4B E9 22 D5 */ bl atoi
+/* 8033E43C 0033A09C 7C 7F 1B 78 */ mr r31, r3
+/* 8033E440 0033A0A0 48 00 00 10 */ b lbl_8033E450
+lbl_8033E444:
+/* 8033E444 0033A0A4 38 60 00 00 */ li r3, 0
+/* 8033E448 0033A0A8 4B FF A6 C1 */ bl gsiTimeInSec
+/* 8033E44C 0033A0AC 7C 9F 23 78 */ mr r31, r4
+lbl_8033E450:
+/* 8033E450 0033A0B0 2C 18 00 06 */ cmpwi r24, 6
+/* 8033E454 0033A0B4 41 82 04 5C */ beq lbl_8033E8B0
+/* 8033E458 0033A0B8 40 80 00 2C */ bge lbl_8033E484
+/* 8033E45C 0033A0BC 2C 18 00 03 */ cmpwi r24, 3
+/* 8033E460 0033A0C0 41 82 09 60 */ beq lbl_8033EDC0
+/* 8033E464 0033A0C4 40 80 00 14 */ bge lbl_8033E478
+/* 8033E468 0033A0C8 2C 18 00 01 */ cmpwi r24, 1
+/* 8033E46C 0033A0CC 41 82 00 3C */ beq lbl_8033E4A8
+/* 8033E470 0033A0D0 40 80 02 28 */ bge lbl_8033E698
+/* 8033E474 0033A0D4 48 00 09 4C */ b lbl_8033EDC0
+lbl_8033E478:
+/* 8033E478 0033A0D8 2C 18 00 05 */ cmpwi r24, 5
+/* 8033E47C 0033A0DC 40 80 01 24 */ bge lbl_8033E5A0
+/* 8033E480 0033A0E0 48 00 03 B8 */ b lbl_8033E838
+lbl_8033E484:
+/* 8033E484 0033A0E4 2C 18 00 65 */ cmpwi r24, 0x65
+/* 8033E488 0033A0E8 41 82 07 60 */ beq lbl_8033EBE8
+/* 8033E48C 0033A0EC 40 80 00 10 */ bge lbl_8033E49C
+/* 8033E490 0033A0F0 2C 18 00 64 */ cmpwi r24, 0x64
+/* 8033E494 0033A0F4 40 80 04 94 */ bge lbl_8033E928
+/* 8033E498 0033A0F8 48 00 09 28 */ b lbl_8033EDC0
+lbl_8033E49C:
+/* 8033E49C 0033A0FC 2C 18 00 67 */ cmpwi r24, 0x67
+/* 8033E4A0 0033A100 40 80 09 20 */ bge lbl_8033EDC0
+/* 8033E4A4 0033A104 48 00 08 C0 */ b lbl_8033ED64
+lbl_8033E4A8:
+/* 8033E4A8 0033A108 80 7C 01 C0 */ lwz r3, 0x1c0(r28)
+/* 8033E4AC 0033A10C 80 1C 01 C4 */ lwz r0, 0x1c4(r28)
+/* 8033E4B0 0033A110 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E4B4 0033A114 90 61 00 70 */ stw r3, 0x70(r1)
+/* 8033E4B8 0033A118 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8033E4BC 0033A11C 41 82 09 04 */ beq lbl_8033EDC0
+/* 8033E4C0 0033A120 38 60 00 0C */ li r3, 0xc
+/* 8033E4C4 0033A124 4B FF AE 51 */ bl gsimalloc
+/* 8033E4C8 0033A128 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E4CC 0033A12C 7C 78 1B 78 */ mr r24, r3
+/* 8033E4D0 0033A130 40 82 00 18 */ bne lbl_8033E4E8
+/* 8033E4D4 0033A134 7F 43 D3 78 */ mr r3, r26
+/* 8033E4D8 0033A138 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E4DC 0033A13C 48 00 9F 7D */ bl gpiSetErrorString
+/* 8033E4E0 0033A140 38 60 00 01 */ li r3, 1
+/* 8033E4E4 0033A144 48 00 08 E0 */ b lbl_8033EDC4
+lbl_8033E4E8:
+/* 8033E4E8 0033A148 7F 63 DB 78 */ mr r3, r27
+/* 8033E4EC 0033A14C 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033E4F0 0033A150 38 8D 8F 94 */ addi r4, r13, lbl_8063E254-_SDA_BASE_
+/* 8033E4F4 0033A154 38 C0 10 00 */ li r6, 0x1000
+/* 8033E4F8 0033A158 48 00 9B 95 */ bl gpiValueForKey
+/* 8033E4FC 0033A15C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E500 0033A160 40 82 00 2C */ bne lbl_8033E52C
+/* 8033E504 0033A164 7F 43 D3 78 */ mr r3, r26
+/* 8033E508 0033A168 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E50C 0033A16C 38 80 00 01 */ li r4, 1
+/* 8033E510 0033A170 48 00 9E F9 */ bl gpiSetError
+/* 8033E514 0033A174 7F 43 D3 78 */ mr r3, r26
+/* 8033E518 0033A178 38 80 00 03 */ li r4, 3
+/* 8033E51C 0033A17C 38 A0 00 01 */ li r5, 1
+/* 8033E520 0033A180 48 00 17 49 */ bl gpiCallErrorCallback
+/* 8033E524 0033A184 38 60 00 03 */ li r3, 3
+/* 8033E528 0033A188 48 00 08 9C */ b lbl_8033EDC4
+lbl_8033E52C:
+/* 8033E52C 0033A18C 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033E530 0033A190 4B E8 86 35 */ bl strlen
+/* 8033E534 0033A194 38 63 00 01 */ addi r3, r3, 1
+/* 8033E538 0033A198 4B FF AD DD */ bl gsimalloc
+/* 8033E53C 0033A19C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E540 0033A1A0 90 78 00 08 */ stw r3, 8(r24)
+/* 8033E544 0033A1A4 40 82 00 18 */ bne lbl_8033E55C
+/* 8033E548 0033A1A8 7F 43 D3 78 */ mr r3, r26
+/* 8033E54C 0033A1AC 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E550 0033A1B0 48 00 9F 09 */ bl gpiSetErrorString
+/* 8033E554 0033A1B4 38 60 00 01 */ li r3, 1
+/* 8033E558 0033A1B8 48 00 08 6C */ b lbl_8033EDC4
+lbl_8033E55C:
+/* 8033E55C 0033A1BC 38 81 01 88 */ addi r4, r1, 0x188
+/* 8033E560 0033A1C0 4B E8 FD 71 */ bl strcpy
+/* 8033E564 0033A1C4 93 B8 00 00 */ stw r29, 0(r24)
+/* 8033E568 0033A1C8 7F 43 D3 78 */ mr r3, r26
+/* 8033E56C 0033A1CC 80 E1 00 70 */ lwz r7, 0x70(r1)
+/* 8033E570 0033A1D0 7F 05 C3 78 */ mr r5, r24
+/* 8033E574 0033A1D4 93 F8 00 04 */ stw r31, 4(r24)
+/* 8033E578 0033A1D8 38 81 00 68 */ addi r4, r1, 0x68
+/* 8033E57C 0033A1DC 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 8033E580 0033A1E0 38 C0 00 00 */ li r6, 0
+/* 8033E584 0033A1E4 90 E1 00 68 */ stw r7, 0x68(r1)
+/* 8033E588 0033A1E8 38 E0 00 02 */ li r7, 2
+/* 8033E58C 0033A1EC 90 01 00 6C */ stw r0, 0x6c(r1)
+/* 8033E590 0033A1F0 48 00 17 99 */ bl gpiAddCallback
+/* 8033E594 0033A1F4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E598 0033A1F8 41 82 08 28 */ beq lbl_8033EDC0
+/* 8033E59C 0033A1FC 48 00 08 28 */ b lbl_8033EDC4
+lbl_8033E5A0:
+/* 8033E5A0 0033A200 80 7C 01 C8 */ lwz r3, 0x1c8(r28)
+/* 8033E5A4 0033A204 80 1C 01 CC */ lwz r0, 0x1cc(r28)
+/* 8033E5A8 0033A208 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E5AC 0033A20C 90 61 00 08 */ stw r3, 8(r1)
+/* 8033E5B0 0033A210 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8033E5B4 0033A214 41 82 08 0C */ beq lbl_8033EDC0
+/* 8033E5B8 0033A218 38 60 00 0C */ li r3, 0xc
+/* 8033E5BC 0033A21C 4B FF AD 59 */ bl gsimalloc
+/* 8033E5C0 0033A220 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E5C4 0033A224 7C 78 1B 78 */ mr r24, r3
+/* 8033E5C8 0033A228 40 82 00 18 */ bne lbl_8033E5E0
+/* 8033E5CC 0033A22C 7F 43 D3 78 */ mr r3, r26
+/* 8033E5D0 0033A230 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E5D4 0033A234 48 00 9E 85 */ bl gpiSetErrorString
+/* 8033E5D8 0033A238 38 60 00 01 */ li r3, 1
+/* 8033E5DC 0033A23C 48 00 07 E8 */ b lbl_8033EDC4
+lbl_8033E5E0:
+/* 8033E5E0 0033A240 7F 63 DB 78 */ mr r3, r27
+/* 8033E5E4 0033A244 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033E5E8 0033A248 38 8D 8F 94 */ addi r4, r13, lbl_8063E254-_SDA_BASE_
+/* 8033E5EC 0033A24C 38 C0 10 00 */ li r6, 0x1000
+/* 8033E5F0 0033A250 48 00 9A 9D */ bl gpiValueForKey
+/* 8033E5F4 0033A254 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E5F8 0033A258 40 82 00 2C */ bne lbl_8033E624
+/* 8033E5FC 0033A25C 7F 43 D3 78 */ mr r3, r26
+/* 8033E600 0033A260 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E604 0033A264 38 80 00 01 */ li r4, 1
+/* 8033E608 0033A268 48 00 9E 01 */ bl gpiSetError
+/* 8033E60C 0033A26C 7F 43 D3 78 */ mr r3, r26
+/* 8033E610 0033A270 38 80 00 03 */ li r4, 3
+/* 8033E614 0033A274 38 A0 00 01 */ li r5, 1
+/* 8033E618 0033A278 48 00 16 51 */ bl gpiCallErrorCallback
+/* 8033E61C 0033A27C 38 60 00 03 */ li r3, 3
+/* 8033E620 0033A280 48 00 07 A4 */ b lbl_8033EDC4
+lbl_8033E624:
+/* 8033E624 0033A284 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033E628 0033A288 4B E8 85 3D */ bl strlen
+/* 8033E62C 0033A28C 38 63 00 01 */ addi r3, r3, 1
+/* 8033E630 0033A290 4B FF AC E5 */ bl gsimalloc
+/* 8033E634 0033A294 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E638 0033A298 90 78 00 08 */ stw r3, 8(r24)
+/* 8033E63C 0033A29C 40 82 00 18 */ bne lbl_8033E654
+/* 8033E640 0033A2A0 7F 43 D3 78 */ mr r3, r26
+/* 8033E644 0033A2A4 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E648 0033A2A8 48 00 9E 11 */ bl gpiSetErrorString
+/* 8033E64C 0033A2AC 38 60 00 01 */ li r3, 1
+/* 8033E650 0033A2B0 48 00 07 74 */ b lbl_8033EDC4
+lbl_8033E654:
+/* 8033E654 0033A2B4 38 81 01 88 */ addi r4, r1, 0x188
+/* 8033E658 0033A2B8 4B E8 FC 79 */ bl strcpy
+/* 8033E65C 0033A2BC 93 B8 00 00 */ stw r29, 0(r24)
+/* 8033E660 0033A2C0 7F 43 D3 78 */ mr r3, r26
+/* 8033E664 0033A2C4 80 E1 00 08 */ lwz r7, 8(r1)
+/* 8033E668 0033A2C8 7F 05 C3 78 */ mr r5, r24
+/* 8033E66C 0033A2CC 93 F8 00 04 */ stw r31, 4(r24)
+/* 8033E670 0033A2D0 38 81 00 60 */ addi r4, r1, 0x60
+/* 8033E674 0033A2D4 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8033E678 0033A2D8 38 C0 00 00 */ li r6, 0
+/* 8033E67C 0033A2DC 90 E1 00 60 */ stw r7, 0x60(r1)
+/* 8033E680 0033A2E0 38 E0 00 0B */ li r7, 0xb
+/* 8033E684 0033A2E4 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8033E688 0033A2E8 48 00 16 A1 */ bl gpiAddCallback
+/* 8033E68C 0033A2EC 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E690 0033A2F0 41 82 07 30 */ beq lbl_8033EDC0
+/* 8033E694 0033A2F4 48 00 07 30 */ b lbl_8033EDC4
+lbl_8033E698:
+/* 8033E698 0033A2F8 7F 43 D3 78 */ mr r3, r26
+/* 8033E69C 0033A2FC 7F A4 EB 78 */ mr r4, r29
+/* 8033E6A0 0033A300 48 00 71 5D */ bl gpiProfileListAdd
+/* 8033E6A4 0033A304 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E6A8 0033A308 7C 78 1B 78 */ mr r24, r3
+/* 8033E6AC 0033A30C 40 82 00 18 */ bne lbl_8033E6C4
+/* 8033E6B0 0033A310 7F 43 D3 78 */ mr r3, r26
+/* 8033E6B4 0033A314 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E6B8 0033A318 48 00 9D A1 */ bl gpiSetErrorString
+/* 8033E6BC 0033A31C 38 60 00 01 */ li r3, 1
+/* 8033E6C0 0033A320 48 00 07 04 */ b lbl_8033EDC4
+lbl_8033E6C4:
+/* 8033E6C4 0033A324 7F 63 DB 78 */ mr r3, r27
+/* 8033E6C8 0033A328 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033E6CC 0033A32C 38 8D 8F 94 */ addi r4, r13, lbl_8063E254-_SDA_BASE_
+/* 8033E6D0 0033A330 38 C0 10 00 */ li r6, 0x1000
+/* 8033E6D4 0033A334 48 00 99 B9 */ bl gpiValueForKey
+/* 8033E6D8 0033A338 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E6DC 0033A33C 40 82 00 2C */ bne lbl_8033E708
+/* 8033E6E0 0033A340 7F 43 D3 78 */ mr r3, r26
+/* 8033E6E4 0033A344 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E6E8 0033A348 38 80 00 01 */ li r4, 1
+/* 8033E6EC 0033A34C 48 00 9D 1D */ bl gpiSetError
+/* 8033E6F0 0033A350 7F 43 D3 78 */ mr r3, r26
+/* 8033E6F4 0033A354 38 80 00 03 */ li r4, 3
+/* 8033E6F8 0033A358 38 A0 00 01 */ li r5, 1
+/* 8033E6FC 0033A35C 48 00 15 6D */ bl gpiCallErrorCallback
+/* 8033E700 0033A360 38 60 00 03 */ li r3, 3
+/* 8033E704 0033A364 48 00 06 C0 */ b lbl_8033EDC4
+lbl_8033E708:
+/* 8033E708 0033A368 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033E70C 0033A36C 38 9E 00 40 */ addi r4, r30, 0x40
+/* 8033E710 0033A370 4B E9 00 91 */ bl strstr
+/* 8033E714 0033A374 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E718 0033A378 7C 7B 1B 78 */ mr r27, r3
+/* 8033E71C 0033A37C 40 82 00 2C */ bne lbl_8033E748
+/* 8033E720 0033A380 7F 43 D3 78 */ mr r3, r26
+/* 8033E724 0033A384 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E728 0033A388 38 80 00 01 */ li r4, 1
+/* 8033E72C 0033A38C 48 00 9C DD */ bl gpiSetError
+/* 8033E730 0033A390 7F 43 D3 78 */ mr r3, r26
+/* 8033E734 0033A394 38 80 00 03 */ li r4, 3
+/* 8033E738 0033A398 38 A0 00 01 */ li r5, 1
+/* 8033E73C 0033A39C 48 00 15 2D */ bl gpiCallErrorCallback
+/* 8033E740 0033A3A0 38 60 00 03 */ li r3, 3
+/* 8033E744 0033A3A4 48 00 06 80 */ b lbl_8033EDC4
+lbl_8033E748:
+/* 8033E748 0033A3A8 3B 20 00 00 */ li r25, 0
+/* 8033E74C 0033A3AC 9B 23 00 00 */ stb r25, 0(r3)
+/* 8033E750 0033A3B0 38 63 00 08 */ addi r3, r3, 8
+/* 8033E754 0033A3B4 4B E8 84 11 */ bl strlen
+/* 8033E758 0033A3B8 28 03 00 20 */ cmplwi r3, 0x20
+/* 8033E75C 0033A3BC 41 82 00 2C */ beq lbl_8033E788
+/* 8033E760 0033A3C0 7F 43 D3 78 */ mr r3, r26
+/* 8033E764 0033A3C4 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E768 0033A3C8 38 80 00 01 */ li r4, 1
+/* 8033E76C 0033A3CC 48 00 9C 9D */ bl gpiSetError
+/* 8033E770 0033A3D0 7F 43 D3 78 */ mr r3, r26
+/* 8033E774 0033A3D4 38 80 00 03 */ li r4, 3
+/* 8033E778 0033A3D8 38 A0 00 01 */ li r5, 1
+/* 8033E77C 0033A3DC 48 00 14 ED */ bl gpiCallErrorCallback
+/* 8033E780 0033A3E0 38 60 00 03 */ li r3, 3
+/* 8033E784 0033A3E4 48 00 06 40 */ b lbl_8033EDC4
+lbl_8033E788:
+/* 8033E788 0033A3E8 80 78 00 10 */ lwz r3, 0x10(r24)
+/* 8033E78C 0033A3EC 4B FF AB AD */ bl gsifree
+/* 8033E790 0033A3F0 93 38 00 10 */ stw r25, 0x10(r24)
+/* 8033E794 0033A3F4 38 7B 00 08 */ addi r3, r27, 8
+/* 8033E798 0033A3F8 4B FF A7 6D */ bl goastrdup
+/* 8033E79C 0033A3FC 90 78 00 10 */ stw r3, 0x10(r24)
+/* 8033E7A0 0033A400 80 78 00 14 */ lwz r3, 0x14(r24)
+/* 8033E7A4 0033A404 38 03 00 01 */ addi r0, r3, 1
+/* 8033E7A8 0033A408 90 18 00 14 */ stw r0, 0x14(r24)
+/* 8033E7AC 0033A40C 80 7C 01 B0 */ lwz r3, 0x1b0(r28)
+/* 8033E7B0 0033A410 80 1C 01 B4 */ lwz r0, 0x1b4(r28)
+/* 8033E7B4 0033A414 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E7B8 0033A418 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8033E7BC 0033A41C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033E7C0 0033A420 41 82 06 00 */ beq lbl_8033EDC0
+/* 8033E7C4 0033A424 38 60 04 0C */ li r3, 0x40c
+/* 8033E7C8 0033A428 4B FF AB 4D */ bl gsimalloc
+/* 8033E7CC 0033A42C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E7D0 0033A430 7C 78 1B 78 */ mr r24, r3
+/* 8033E7D4 0033A434 40 82 00 18 */ bne lbl_8033E7EC
+/* 8033E7D8 0033A438 7F 43 D3 78 */ mr r3, r26
+/* 8033E7DC 0033A43C 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E7E0 0033A440 48 00 9C 79 */ bl gpiSetErrorString
+/* 8033E7E4 0033A444 38 60 00 01 */ li r3, 1
+/* 8033E7E8 0033A448 48 00 05 DC */ b lbl_8033EDC4
+lbl_8033E7EC:
+/* 8033E7EC 0033A44C 38 81 01 88 */ addi r4, r1, 0x188
+/* 8033E7F0 0033A450 38 A0 04 01 */ li r5, 0x401
+/* 8033E7F4 0033A454 38 63 00 08 */ addi r3, r3, 8
+/* 8033E7F8 0033A458 48 00 97 59 */ bl strzcpy
+/* 8033E7FC 0033A45C 93 B8 00 00 */ stw r29, 0(r24)
+/* 8033E800 0033A460 7F 43 D3 78 */ mr r3, r26
+/* 8033E804 0033A464 80 E1 00 10 */ lwz r7, 0x10(r1)
+/* 8033E808 0033A468 7F 05 C3 78 */ mr r5, r24
+/* 8033E80C 0033A46C 93 F8 00 04 */ stw r31, 4(r24)
+/* 8033E810 0033A470 38 81 00 58 */ addi r4, r1, 0x58
+/* 8033E814 0033A474 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033E818 0033A478 38 C0 00 00 */ li r6, 0
+/* 8033E81C 0033A47C 90 E1 00 58 */ stw r7, 0x58(r1)
+/* 8033E820 0033A480 38 E0 00 06 */ li r7, 6
+/* 8033E824 0033A484 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 8033E828 0033A488 48 00 15 01 */ bl gpiAddCallback
+/* 8033E82C 0033A48C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E830 0033A490 41 82 05 90 */ beq lbl_8033EDC0
+/* 8033E834 0033A494 48 00 05 90 */ b lbl_8033EDC4
+lbl_8033E838:
+/* 8033E838 0033A498 80 7C 01 E0 */ lwz r3, 0x1e0(r28)
+/* 8033E83C 0033A49C 80 1C 01 E4 */ lwz r0, 0x1e4(r28)
+/* 8033E840 0033A4A0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E844 0033A4A4 90 61 00 18 */ stw r3, 0x18(r1)
+/* 8033E848 0033A4A8 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 8033E84C 0033A4AC 41 82 05 74 */ beq lbl_8033EDC0
+/* 8033E850 0033A4B0 38 60 00 08 */ li r3, 8
+/* 8033E854 0033A4B4 4B FF AA C1 */ bl gsimalloc
+/* 8033E858 0033A4B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E85C 0033A4BC 40 82 00 18 */ bne lbl_8033E874
+/* 8033E860 0033A4C0 7F 43 D3 78 */ mr r3, r26
+/* 8033E864 0033A4C4 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E868 0033A4C8 48 00 9B F1 */ bl gpiSetErrorString
+/* 8033E86C 0033A4CC 38 60 00 01 */ li r3, 1
+/* 8033E870 0033A4D0 48 00 05 54 */ b lbl_8033EDC4
+lbl_8033E874:
+/* 8033E874 0033A4D4 93 A3 00 00 */ stw r29, 0(r3)
+/* 8033E878 0033A4D8 7C 65 1B 78 */ mr r5, r3
+/* 8033E87C 0033A4DC 80 E1 00 18 */ lwz r7, 0x18(r1)
+/* 8033E880 0033A4E0 38 81 00 50 */ addi r4, r1, 0x50
+/* 8033E884 0033A4E4 93 E3 00 04 */ stw r31, 4(r3)
+/* 8033E888 0033A4E8 7F 43 D3 78 */ mr r3, r26
+/* 8033E88C 0033A4EC 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 8033E890 0033A4F0 38 C0 00 00 */ li r6, 0
+/* 8033E894 0033A4F4 90 E1 00 50 */ stw r7, 0x50(r1)
+/* 8033E898 0033A4F8 38 E0 00 0A */ li r7, 0xa
+/* 8033E89C 0033A4FC 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8033E8A0 0033A500 48 00 14 89 */ bl gpiAddCallback
+/* 8033E8A4 0033A504 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E8A8 0033A508 41 82 05 18 */ beq lbl_8033EDC0
+/* 8033E8AC 0033A50C 48 00 05 18 */ b lbl_8033EDC4
+lbl_8033E8B0:
+/* 8033E8B0 0033A510 80 7C 01 E8 */ lwz r3, 0x1e8(r28)
+/* 8033E8B4 0033A514 80 1C 01 EC */ lwz r0, 0x1ec(r28)
+/* 8033E8B8 0033A518 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E8BC 0033A51C 90 61 00 20 */ stw r3, 0x20(r1)
+/* 8033E8C0 0033A520 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033E8C4 0033A524 41 82 04 FC */ beq lbl_8033EDC0
+/* 8033E8C8 0033A528 38 60 00 08 */ li r3, 8
+/* 8033E8CC 0033A52C 4B FF AA 49 */ bl gsimalloc
+/* 8033E8D0 0033A530 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E8D4 0033A534 40 82 00 18 */ bne lbl_8033E8EC
+/* 8033E8D8 0033A538 7F 43 D3 78 */ mr r3, r26
+/* 8033E8DC 0033A53C 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E8E0 0033A540 48 00 9B 79 */ bl gpiSetErrorString
+/* 8033E8E4 0033A544 38 60 00 01 */ li r3, 1
+/* 8033E8E8 0033A548 48 00 04 DC */ b lbl_8033EDC4
+lbl_8033E8EC:
+/* 8033E8EC 0033A54C 93 A3 00 00 */ stw r29, 0(r3)
+/* 8033E8F0 0033A550 7C 65 1B 78 */ mr r5, r3
+/* 8033E8F4 0033A554 80 E1 00 20 */ lwz r7, 0x20(r1)
+/* 8033E8F8 0033A558 38 81 00 48 */ addi r4, r1, 0x48
+/* 8033E8FC 0033A55C 93 E3 00 04 */ stw r31, 4(r3)
+/* 8033E900 0033A560 7F 43 D3 78 */ mr r3, r26
+/* 8033E904 0033A564 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033E908 0033A568 38 C0 00 00 */ li r6, 0
+/* 8033E90C 0033A56C 90 E1 00 48 */ stw r7, 0x48(r1)
+/* 8033E910 0033A570 38 E0 00 0C */ li r7, 0xc
+/* 8033E914 0033A574 90 01 00 4C */ stw r0, 0x4c(r1)
+/* 8033E918 0033A578 48 00 14 11 */ bl gpiAddCallback
+/* 8033E91C 0033A57C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E920 0033A580 41 82 04 A0 */ beq lbl_8033EDC0
+/* 8033E924 0033A584 48 00 04 A0 */ b lbl_8033EDC4
+lbl_8033E928:
+/* 8033E928 0033A588 7F 43 D3 78 */ mr r3, r26
+/* 8033E92C 0033A58C 7F A4 EB 78 */ mr r4, r29
+/* 8033E930 0033A590 48 00 6E CD */ bl gpiProfileListAdd
+/* 8033E934 0033A594 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E938 0033A598 7C 79 1B 78 */ mr r25, r3
+/* 8033E93C 0033A59C 40 82 00 18 */ bne lbl_8033E954
+/* 8033E940 0033A5A0 7F 43 D3 78 */ mr r3, r26
+/* 8033E944 0033A5A4 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E948 0033A5A8 48 00 9B 11 */ bl gpiSetErrorString
+/* 8033E94C 0033A5AC 38 60 00 01 */ li r3, 1
+/* 8033E950 0033A5B0 48 00 04 74 */ b lbl_8033EDC4
+lbl_8033E954:
+/* 8033E954 0033A5B4 80 03 00 08 */ lwz r0, 8(r3)
+/* 8033E958 0033A5B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8033E95C 0033A5BC 40 82 00 4C */ bne lbl_8033E9A8
+/* 8033E960 0033A5C0 38 60 00 18 */ li r3, 0x18
+/* 8033E964 0033A5C4 4B FF A9 B1 */ bl gsimalloc
+/* 8033E968 0033A5C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E96C 0033A5CC 90 79 00 08 */ stw r3, 8(r25)
+/* 8033E970 0033A5D0 40 82 00 18 */ bne lbl_8033E988
+/* 8033E974 0033A5D4 7F 43 D3 78 */ mr r3, r26
+/* 8033E978 0033A5D8 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033E97C 0033A5DC 48 00 9A DD */ bl gpiSetErrorString
+/* 8033E980 0033A5E0 38 60 00 01 */ li r3, 1
+/* 8033E984 0033A5E4 48 00 04 40 */ b lbl_8033EDC4
+lbl_8033E988:
+/* 8033E988 0033A5E8 38 80 00 00 */ li r4, 0
+/* 8033E98C 0033A5EC 38 A0 00 18 */ li r5, 0x18
+/* 8033E990 0033A5F0 4B CC 57 75 */ bl memset
+/* 8033E994 0033A5F4 80 9C 04 4C */ lwz r4, 0x44c(r28)
+/* 8033E998 0033A5F8 80 79 00 08 */ lwz r3, 8(r25)
+/* 8033E99C 0033A5FC 38 04 00 01 */ addi r0, r4, 1
+/* 8033E9A0 0033A600 90 83 00 00 */ stw r4, 0(r3)
+/* 8033E9A4 0033A604 90 1C 04 4C */ stw r0, 0x44c(r28)
+lbl_8033E9A8:
+/* 8033E9A8 0033A608 83 19 00 08 */ lwz r24, 8(r25)
+/* 8033E9AC 0033A60C 7F 63 DB 78 */ mr r3, r27
+/* 8033E9B0 0033A610 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033E9B4 0033A614 38 8D 8F 94 */ addi r4, r13, lbl_8063E254-_SDA_BASE_
+/* 8033E9B8 0033A618 38 C0 10 00 */ li r6, 0x1000
+/* 8033E9BC 0033A61C 48 00 96 D1 */ bl gpiValueForKey
+/* 8033E9C0 0033A620 2C 03 00 00 */ cmpwi r3, 0
+/* 8033E9C4 0033A624 40 82 00 2C */ bne lbl_8033E9F0
+/* 8033E9C8 0033A628 7F 43 D3 78 */ mr r3, r26
+/* 8033E9CC 0033A62C 38 BE 00 00 */ addi r5, r30, 0
+/* 8033E9D0 0033A630 38 80 00 01 */ li r4, 1
+/* 8033E9D4 0033A634 48 00 9A 35 */ bl gpiSetError
+/* 8033E9D8 0033A638 7F 43 D3 78 */ mr r3, r26
+/* 8033E9DC 0033A63C 38 80 00 03 */ li r4, 3
+/* 8033E9E0 0033A640 38 A0 00 01 */ li r5, 1
+/* 8033E9E4 0033A644 48 00 12 85 */ bl gpiCallErrorCallback
+/* 8033E9E8 0033A648 38 60 00 03 */ li r3, 3
+/* 8033E9EC 0033A64C 48 00 03 D8 */ b lbl_8033EDC4
+lbl_8033E9F0:
+/* 8033E9F0 0033A650 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033E9F4 0033A654 38 A1 00 78 */ addi r5, r1, 0x78
+/* 8033E9F8 0033A658 38 8D 8F 9C */ addi r4, r13, lbl_8063E25C-_SDA_BASE_
+/* 8033E9FC 0033A65C 38 C0 00 10 */ li r6, 0x10
+/* 8033EA00 0033A660 48 00 96 8D */ bl gpiValueForKey
+/* 8033EA04 0033A664 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EA08 0033A668 40 82 00 2C */ bne lbl_8033EA34
+/* 8033EA0C 0033A66C 7F 43 D3 78 */ mr r3, r26
+/* 8033EA10 0033A670 38 BE 00 00 */ addi r5, r30, 0
+/* 8033EA14 0033A674 38 80 00 01 */ li r4, 1
+/* 8033EA18 0033A678 48 00 99 F1 */ bl gpiSetError
+/* 8033EA1C 0033A67C 7F 43 D3 78 */ mr r3, r26
+/* 8033EA20 0033A680 38 80 00 03 */ li r4, 3
+/* 8033EA24 0033A684 38 A0 00 01 */ li r5, 1
+/* 8033EA28 0033A688 48 00 12 41 */ bl gpiCallErrorCallback
+/* 8033EA2C 0033A68C 38 60 00 03 */ li r3, 3
+/* 8033EA30 0033A690 48 00 03 94 */ b lbl_8033EDC4
+lbl_8033EA34:
+/* 8033EA34 0033A694 38 61 00 78 */ addi r3, r1, 0x78
+/* 8033EA38 0033A698 4B E9 1C D5 */ bl atoi
+/* 8033EA3C 0033A69C 90 78 00 04 */ stw r3, 4(r24)
+/* 8033EA40 0033A6A0 80 78 00 08 */ lwz r3, 8(r24)
+/* 8033EA44 0033A6A4 4B FF A8 F5 */ bl gsifree
+/* 8033EA48 0033A6A8 3B 60 00 00 */ li r27, 0
+/* 8033EA4C 0033A6AC 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033EA50 0033A6B0 93 78 00 08 */ stw r27, 8(r24)
+/* 8033EA54 0033A6B4 38 A1 00 88 */ addi r5, r1, 0x88
+/* 8033EA58 0033A6B8 38 8D 8F A0 */ addi r4, r13, lbl_8063E260-_SDA_BASE_
+/* 8033EA5C 0033A6BC 38 C0 01 00 */ li r6, 0x100
+/* 8033EA60 0033A6C0 48 00 96 2D */ bl gpiValueForKey
+/* 8033EA64 0033A6C4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EA68 0033A6C8 40 82 00 08 */ bne lbl_8033EA70
+/* 8033EA6C 0033A6CC 9B 61 00 88 */ stb r27, 0x88(r1)
+lbl_8033EA70:
+/* 8033EA70 0033A6D0 38 61 00 88 */ addi r3, r1, 0x88
+/* 8033EA74 0033A6D4 4B FF A4 91 */ bl goastrdup
+/* 8033EA78 0033A6D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EA7C 0033A6DC 90 78 00 08 */ stw r3, 8(r24)
+/* 8033EA80 0033A6E0 40 82 00 18 */ bne lbl_8033EA98
+/* 8033EA84 0033A6E4 7F 43 D3 78 */ mr r3, r26
+/* 8033EA88 0033A6E8 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033EA8C 0033A6EC 48 00 99 CD */ bl gpiSetErrorString
+/* 8033EA90 0033A6F0 38 60 00 01 */ li r3, 1
+/* 8033EA94 0033A6F4 48 00 03 30 */ b lbl_8033EDC4
+lbl_8033EA98:
+/* 8033EA98 0033A6F8 80 78 00 0C */ lwz r3, 0xc(r24)
+/* 8033EA9C 0033A6FC 4B FF A8 9D */ bl gsifree
+/* 8033EAA0 0033A700 3B 60 00 00 */ li r27, 0
+/* 8033EAA4 0033A704 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033EAA8 0033A708 93 78 00 0C */ stw r27, 0xc(r24)
+/* 8033EAAC 0033A70C 38 A1 00 88 */ addi r5, r1, 0x88
+/* 8033EAB0 0033A710 38 8D 8F A8 */ addi r4, r13, lbl_8063E268-_SDA_BASE_
+/* 8033EAB4 0033A714 38 C0 01 00 */ li r6, 0x100
+/* 8033EAB8 0033A718 48 00 95 D5 */ bl gpiValueForKey
+/* 8033EABC 0033A71C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EAC0 0033A720 40 82 00 08 */ bne lbl_8033EAC8
+/* 8033EAC4 0033A724 9B 61 00 88 */ stb r27, 0x88(r1)
+lbl_8033EAC8:
+/* 8033EAC8 0033A728 38 61 00 88 */ addi r3, r1, 0x88
+/* 8033EACC 0033A72C 4B FF A4 39 */ bl goastrdup
+/* 8033EAD0 0033A730 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EAD4 0033A734 90 78 00 0C */ stw r3, 0xc(r24)
+/* 8033EAD8 0033A738 40 82 00 18 */ bne lbl_8033EAF0
+/* 8033EADC 0033A73C 7F 43 D3 78 */ mr r3, r26
+/* 8033EAE0 0033A740 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033EAE4 0033A744 48 00 99 75 */ bl gpiSetErrorString
+/* 8033EAE8 0033A748 38 60 00 01 */ li r3, 1
+/* 8033EAEC 0033A74C 48 00 02 D8 */ b lbl_8033EDC4
+lbl_8033EAF0:
+/* 8033EAF0 0033A750 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033EAF4 0033A754 38 A1 00 78 */ addi r5, r1, 0x78
+/* 8033EAF8 0033A758 38 8D 8F B0 */ addi r4, r13, lbl_8063E270-_SDA_BASE_
+/* 8033EAFC 0033A75C 38 C0 00 10 */ li r6, 0x10
+/* 8033EB00 0033A760 48 00 95 8D */ bl gpiValueForKey
+/* 8033EB04 0033A764 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EB08 0033A768 40 82 00 10 */ bne lbl_8033EB18
+/* 8033EB0C 0033A76C 38 00 00 00 */ li r0, 0
+/* 8033EB10 0033A770 90 18 00 10 */ stw r0, 0x10(r24)
+/* 8033EB14 0033A774 48 00 00 14 */ b lbl_8033EB28
+lbl_8033EB18:
+/* 8033EB18 0033A778 38 61 00 78 */ addi r3, r1, 0x78
+/* 8033EB1C 0033A77C 4B E9 1B F1 */ bl atoi
+/* 8033EB20 0033A780 4B FB 82 59 */ bl SOHtoNl
+/* 8033EB24 0033A784 90 78 00 10 */ stw r3, 0x10(r24)
+lbl_8033EB28:
+/* 8033EB28 0033A788 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033EB2C 0033A78C 38 A1 00 78 */ addi r5, r1, 0x78
+/* 8033EB30 0033A790 38 8D 8F B8 */ addi r4, r13, lbl_8063E278-_SDA_BASE_
+/* 8033EB34 0033A794 38 C0 00 10 */ li r6, 0x10
+/* 8033EB38 0033A798 48 00 95 55 */ bl gpiValueForKey
+/* 8033EB3C 0033A79C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EB40 0033A7A0 40 82 00 10 */ bne lbl_8033EB50
+/* 8033EB44 0033A7A4 38 00 00 00 */ li r0, 0
+/* 8033EB48 0033A7A8 90 18 00 14 */ stw r0, 0x14(r24)
+/* 8033EB4C 0033A7AC 48 00 00 1C */ b lbl_8033EB68
+lbl_8033EB50:
+/* 8033EB50 0033A7B0 38 61 00 78 */ addi r3, r1, 0x78
+/* 8033EB54 0033A7B4 4B E9 1B B9 */ bl atoi
+/* 8033EB58 0033A7B8 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 8033EB5C 0033A7BC 4B FB 82 21 */ bl SOHtoNs
+/* 8033EB60 0033A7C0 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 8033EB64 0033A7C4 90 18 00 14 */ stw r0, 0x14(r24)
+lbl_8033EB68:
+/* 8033EB68 0033A7C8 80 7C 01 B8 */ lwz r3, 0x1b8(r28)
+/* 8033EB6C 0033A7CC 80 1C 01 BC */ lwz r0, 0x1bc(r28)
+/* 8033EB70 0033A7D0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EB74 0033A7D4 90 61 00 28 */ stw r3, 0x28(r1)
+/* 8033EB78 0033A7D8 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8033EB7C 0033A7DC 41 82 02 44 */ beq lbl_8033EDC0
+/* 8033EB80 0033A7E0 38 60 00 0C */ li r3, 0xc
+/* 8033EB84 0033A7E4 4B FF A7 91 */ bl gsimalloc
+/* 8033EB88 0033A7E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EB8C 0033A7EC 40 82 00 18 */ bne lbl_8033EBA4
+/* 8033EB90 0033A7F0 7F 43 D3 78 */ mr r3, r26
+/* 8033EB94 0033A7F4 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033EB98 0033A7F8 48 00 98 C1 */ bl gpiSetErrorString
+/* 8033EB9C 0033A7FC 38 60 00 01 */ li r3, 1
+/* 8033EBA0 0033A800 48 00 02 24 */ b lbl_8033EDC4
+lbl_8033EBA4:
+/* 8033EBA4 0033A804 93 A3 00 00 */ stw r29, 0(r3)
+/* 8033EBA8 0033A808 7C 65 1B 78 */ mr r5, r3
+/* 8033EBAC 0033A80C 81 01 00 28 */ lwz r8, 0x28(r1)
+/* 8033EBB0 0033A810 38 81 00 40 */ addi r4, r1, 0x40
+/* 8033EBB4 0033A814 81 38 00 00 */ lwz r9, 0(r24)
+/* 8033EBB8 0033A818 38 C0 00 00 */ li r6, 0
+/* 8033EBBC 0033A81C 80 01 00 2C */ lwz r0, 0x2c(r1)
+/* 8033EBC0 0033A820 38 E0 00 05 */ li r7, 5
+/* 8033EBC4 0033A824 91 23 00 08 */ stw r9, 8(r3)
+/* 8033EBC8 0033A828 93 E3 00 04 */ stw r31, 4(r3)
+/* 8033EBCC 0033A82C 7F 43 D3 78 */ mr r3, r26
+/* 8033EBD0 0033A830 91 01 00 40 */ stw r8, 0x40(r1)
+/* 8033EBD4 0033A834 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8033EBD8 0033A838 48 00 11 51 */ bl gpiAddCallback
+/* 8033EBDC 0033A83C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EBE0 0033A840 41 82 01 E0 */ beq lbl_8033EDC0
+/* 8033EBE4 0033A844 48 00 01 E0 */ b lbl_8033EDC4
+lbl_8033EBE8:
+/* 8033EBE8 0033A848 7F 63 DB 78 */ mr r3, r27
+/* 8033EBEC 0033A84C 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033EBF0 0033A850 38 8D 8F 94 */ addi r4, r13, lbl_8063E254-_SDA_BASE_
+/* 8033EBF4 0033A854 38 C0 10 00 */ li r6, 0x1000
+/* 8033EBF8 0033A858 48 00 94 95 */ bl gpiValueForKey
+/* 8033EBFC 0033A85C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EC00 0033A860 40 82 00 2C */ bne lbl_8033EC2C
+/* 8033EC04 0033A864 7F 43 D3 78 */ mr r3, r26
+/* 8033EC08 0033A868 38 BE 00 00 */ addi r5, r30, 0
+/* 8033EC0C 0033A86C 38 80 00 01 */ li r4, 1
+/* 8033EC10 0033A870 48 00 97 F9 */ bl gpiSetError
+/* 8033EC14 0033A874 7F 43 D3 78 */ mr r3, r26
+/* 8033EC18 0033A878 38 80 00 03 */ li r4, 3
+/* 8033EC1C 0033A87C 38 A0 00 01 */ li r5, 1
+/* 8033EC20 0033A880 48 00 10 49 */ bl gpiCallErrorCallback
+/* 8033EC24 0033A884 38 60 00 03 */ li r3, 3
+/* 8033EC28 0033A888 48 00 01 9C */ b lbl_8033EDC4
+lbl_8033EC2C:
+/* 8033EC2C 0033A88C 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033EC30 0033A890 38 8D 8F B8 */ addi r4, r13, lbl_8063E278-_SDA_BASE_
+/* 8033EC34 0033A894 4B E8 FB 6D */ bl strstr
+/* 8033EC38 0033A898 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EC3C 0033A89C 40 82 00 2C */ bne lbl_8033EC68
+/* 8033EC40 0033A8A0 7F 43 D3 78 */ mr r3, r26
+/* 8033EC44 0033A8A4 38 BE 00 00 */ addi r5, r30, 0
+/* 8033EC48 0033A8A8 38 80 00 01 */ li r4, 1
+/* 8033EC4C 0033A8AC 48 00 97 BD */ bl gpiSetError
+/* 8033EC50 0033A8B0 7F 43 D3 78 */ mr r3, r26
+/* 8033EC54 0033A8B4 38 80 00 03 */ li r4, 3
+/* 8033EC58 0033A8B8 38 A0 00 01 */ li r5, 1
+/* 8033EC5C 0033A8BC 48 00 10 0D */ bl gpiCallErrorCallback
+/* 8033EC60 0033A8C0 38 60 00 03 */ li r3, 3
+/* 8033EC64 0033A8C4 48 00 01 60 */ b lbl_8033EDC4
+lbl_8033EC68:
+/* 8033EC68 0033A8C8 88 03 00 03 */ lbz r0, 3(r3)
+/* 8033EC6C 0033A8CC 7C 00 07 75 */ extsb. r0, r0
+/* 8033EC70 0033A8D0 40 82 00 2C */ bne lbl_8033EC9C
+/* 8033EC74 0033A8D4 7F 43 D3 78 */ mr r3, r26
+/* 8033EC78 0033A8D8 38 BE 00 00 */ addi r5, r30, 0
+/* 8033EC7C 0033A8DC 38 80 00 01 */ li r4, 1
+/* 8033EC80 0033A8E0 48 00 97 89 */ bl gpiSetError
+/* 8033EC84 0033A8E4 7F 43 D3 78 */ mr r3, r26
+/* 8033EC88 0033A8E8 38 80 00 03 */ li r4, 3
+/* 8033EC8C 0033A8EC 38 A0 00 01 */ li r5, 1
+/* 8033EC90 0033A8F0 48 00 0F D9 */ bl gpiCallErrorCallback
+/* 8033EC94 0033A8F4 38 60 00 03 */ li r3, 3
+/* 8033EC98 0033A8F8 48 00 01 2C */ b lbl_8033EDC4
+lbl_8033EC9C:
+/* 8033EC9C 0033A8FC 38 63 00 03 */ addi r3, r3, 3
+/* 8033ECA0 0033A900 4B E9 1A 6D */ bl atoi
+/* 8033ECA4 0033A904 7C 7B 1B 78 */ mr r27, r3
+/* 8033ECA8 0033A908 38 61 01 88 */ addi r3, r1, 0x188
+/* 8033ECAC 0033A90C 38 8D 8F BC */ addi r4, r13, lbl_8063E27C-_SDA_BASE_
+/* 8033ECB0 0033A910 4B E8 FA F1 */ bl strstr
+/* 8033ECB4 0033A914 2C 03 00 00 */ cmpwi r3, 0
+/* 8033ECB8 0033A918 7C 64 1B 78 */ mr r4, r3
+/* 8033ECBC 0033A91C 41 82 00 18 */ beq lbl_8033ECD4
+/* 8033ECC0 0033A920 38 61 00 88 */ addi r3, r1, 0x88
+/* 8033ECC4 0033A924 38 84 00 03 */ addi r4, r4, 3
+/* 8033ECC8 0033A928 38 A0 01 00 */ li r5, 0x100
+/* 8033ECCC 0033A92C 48 00 92 85 */ bl strzcpy
+/* 8033ECD0 0033A930 48 00 00 0C */ b lbl_8033ECDC
+lbl_8033ECD4:
+/* 8033ECD4 0033A934 38 00 00 00 */ li r0, 0
+/* 8033ECD8 0033A938 98 01 00 88 */ stb r0, 0x88(r1)
+lbl_8033ECDC:
+/* 8033ECDC 0033A93C 80 7C 01 D0 */ lwz r3, 0x1d0(r28)
+/* 8033ECE0 0033A940 80 1C 01 D4 */ lwz r0, 0x1d4(r28)
+/* 8033ECE4 0033A944 2C 03 00 00 */ cmpwi r3, 0
+/* 8033ECE8 0033A948 90 61 00 30 */ stw r3, 0x30(r1)
+/* 8033ECEC 0033A94C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033ECF0 0033A950 41 82 00 D0 */ beq lbl_8033EDC0
+/* 8033ECF4 0033A954 38 60 01 08 */ li r3, 0x108
+/* 8033ECF8 0033A958 4B FF A6 1D */ bl gsimalloc
+/* 8033ECFC 0033A95C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033ED00 0033A960 7C 78 1B 78 */ mr r24, r3
+/* 8033ED04 0033A964 40 82 00 18 */ bne lbl_8033ED1C
+/* 8033ED08 0033A968 7F 43 D3 78 */ mr r3, r26
+/* 8033ED0C 0033A96C 38 9E 00 30 */ addi r4, r30, 0x30
+/* 8033ED10 0033A970 48 00 97 49 */ bl gpiSetErrorString
+/* 8033ED14 0033A974 38 60 00 01 */ li r3, 1
+/* 8033ED18 0033A978 48 00 00 AC */ b lbl_8033EDC4
+lbl_8033ED1C:
+/* 8033ED1C 0033A97C 93 A3 00 00 */ stw r29, 0(r3)
+/* 8033ED20 0033A980 38 81 00 88 */ addi r4, r1, 0x88
+/* 8033ED24 0033A984 93 63 00 04 */ stw r27, 4(r3)
+/* 8033ED28 0033A988 38 63 00 08 */ addi r3, r3, 8
+/* 8033ED2C 0033A98C 4B E8 F5 A5 */ bl strcpy
+/* 8033ED30 0033A990 80 81 00 30 */ lwz r4, 0x30(r1)
+/* 8033ED34 0033A994 7F 43 D3 78 */ mr r3, r26
+/* 8033ED38 0033A998 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033ED3C 0033A99C 7F 05 C3 78 */ mr r5, r24
+/* 8033ED40 0033A9A0 90 81 00 38 */ stw r4, 0x38(r1)
+/* 8033ED44 0033A9A4 38 81 00 38 */ addi r4, r1, 0x38
+/* 8033ED48 0033A9A8 38 C0 00 00 */ li r6, 0
+/* 8033ED4C 0033A9AC 38 E0 00 00 */ li r7, 0
+/* 8033ED50 0033A9B0 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 8033ED54 0033A9B4 48 00 0F D5 */ bl gpiAddCallback
+/* 8033ED58 0033A9B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033ED5C 0033A9BC 41 82 00 64 */ beq lbl_8033EDC0
+/* 8033ED60 0033A9C0 48 00 00 64 */ b lbl_8033EDC4
+lbl_8033ED64:
+/* 8033ED64 0033A9C4 7F 63 DB 78 */ mr r3, r27
+/* 8033ED68 0033A9C8 38 A1 01 88 */ addi r5, r1, 0x188
+/* 8033ED6C 0033A9CC 38 8D 8F 94 */ addi r4, r13, lbl_8063E254-_SDA_BASE_
+/* 8033ED70 0033A9D0 38 C0 10 00 */ li r6, 0x1000
+/* 8033ED74 0033A9D4 48 00 93 19 */ bl gpiValueForKey
+/* 8033ED78 0033A9D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033ED7C 0033A9DC 40 82 00 2C */ bne lbl_8033EDA8
+/* 8033ED80 0033A9E0 7F 43 D3 78 */ mr r3, r26
+/* 8033ED84 0033A9E4 38 BE 00 00 */ addi r5, r30, 0
+/* 8033ED88 0033A9E8 38 80 00 01 */ li r4, 1
+/* 8033ED8C 0033A9EC 48 00 96 7D */ bl gpiSetError
+/* 8033ED90 0033A9F0 7F 43 D3 78 */ mr r3, r26
+/* 8033ED94 0033A9F4 38 80 00 03 */ li r4, 3
+/* 8033ED98 0033A9F8 38 A0 00 01 */ li r5, 1
+/* 8033ED9C 0033A9FC 48 00 0E CD */ bl gpiCallErrorCallback
+/* 8033EDA0 0033AA00 38 60 00 03 */ li r3, 3
+/* 8033EDA4 0033AA04 48 00 00 20 */ b lbl_8033EDC4
+lbl_8033EDA8:
+/* 8033EDA8 0033AA08 7F 43 D3 78 */ mr r3, r26
+/* 8033EDAC 0033AA0C 7F A4 EB 78 */ mr r4, r29
+/* 8033EDB0 0033AA10 38 A0 00 67 */ li r5, 0x67
+/* 8033EDB4 0033AA14 38 CD 8F C0 */ addi r6, r13, lbl_8063E280-_SDA_BASE_
+/* 8033EDB8 0033AA18 38 E0 00 00 */ li r7, 0
+/* 8033EDBC 0033AA1C 48 00 01 15 */ bl gpiSendBuddyMessage
+lbl_8033EDC0:
+/* 8033EDC0 0033AA20 38 60 00 00 */ li r3, 0
+lbl_8033EDC4:
+/* 8033EDC4 0033AA24 39 61 11 B0 */ addi r11, r1, 0x11b0
+/* 8033EDC8 0033AA28 4B E8 83 A1 */ bl _restgpr_24
+/* 8033EDCC 0033AA2C 80 01 11 B4 */ lwz r0, 0x11b4(r1)
+/* 8033EDD0 0033AA30 7C 08 03 A6 */ mtlr r0
+/* 8033EDD4 0033AA34 38 21 11 B0 */ addi r1, r1, 0x11b0
+/* 8033EDD8 0033AA38 4E 80 00 20 */ blr
+
+.global gpiSendServerBuddyMessage
+gpiSendServerBuddyMessage:
+/* 8033EDDC 0033AA3C 94 21 F2 30 */ stwu r1, -0xdd0(r1)
+/* 8033EDE0 0033AA40 7C 08 02 A6 */ mflr r0
+/* 8033EDE4 0033AA44 90 01 0D D4 */ stw r0, 0xdd4(r1)
+/* 8033EDE8 0033AA48 93 E1 0D CC */ stw r31, 0xdcc(r1)
+/* 8033EDEC 0033AA4C 93 C1 0D C8 */ stw r30, 0xdc8(r1)
+/* 8033EDF0 0033AA50 7C BE 2B 78 */ mr r30, r5
+/* 8033EDF4 0033AA54 38 A0 0D AD */ li r5, 0xdad
+/* 8033EDF8 0033AA58 93 A1 0D C4 */ stw r29, 0xdc4(r1)
+/* 8033EDFC 0033AA5C 7C 9D 23 78 */ mr r29, r4
+/* 8033EE00 0033AA60 7C C4 33 78 */ mr r4, r6
+/* 8033EE04 0033AA64 93 81 0D C0 */ stw r28, 0xdc0(r1)
+/* 8033EE08 0033AA68 7C 7C 1B 78 */ mr r28, r3
+/* 8033EE0C 0033AA6C 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8033EE10 0033AA70 38 61 00 08 */ addi r3, r1, 8
+/* 8033EE14 0033AA74 48 00 91 3D */ bl strzcpy
+/* 8033EE18 0033AA78 7F 83 E3 78 */ mr r3, r28
+/* 8033EE1C 0033AA7C 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE20 0033AA80 38 AD 8F 80 */ addi r5, r13, lbl_8063E240-_SDA_BASE_
+/* 8033EE24 0033AA84 48 00 06 7D */ bl gpiAppendStringToBuffer
+/* 8033EE28 0033AA88 7F 83 E3 78 */ mr r3, r28
+/* 8033EE2C 0033AA8C 7F C5 F3 78 */ mr r5, r30
+/* 8033EE30 0033AA90 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE34 0033AA94 48 00 06 C9 */ bl gpiAppendIntToBuffer
+/* 8033EE38 0033AA98 3C A0 80 45 */ lis r5, lbl_8044A74C@ha
+/* 8033EE3C 0033AA9C 7F 83 E3 78 */ mr r3, r28
+/* 8033EE40 0033AAA0 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE44 0033AAA4 38 A5 A7 4C */ addi r5, r5, lbl_8044A74C@l
+/* 8033EE48 0033AAA8 48 00 06 59 */ bl gpiAppendStringToBuffer
+/* 8033EE4C 0033AAAC 80 BF 01 98 */ lwz r5, 0x198(r31)
+/* 8033EE50 0033AAB0 7F 83 E3 78 */ mr r3, r28
+/* 8033EE54 0033AAB4 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE58 0033AAB8 48 00 06 A5 */ bl gpiAppendIntToBuffer
+/* 8033EE5C 0033AABC 7F 83 E3 78 */ mr r3, r28
+/* 8033EE60 0033AAC0 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE64 0033AAC4 38 AD 8F C4 */ addi r5, r13, lbl_8063E284-_SDA_BASE_
+/* 8033EE68 0033AAC8 48 00 06 39 */ bl gpiAppendStringToBuffer
+/* 8033EE6C 0033AACC 7F 83 E3 78 */ mr r3, r28
+/* 8033EE70 0033AAD0 7F A5 EB 78 */ mr r5, r29
+/* 8033EE74 0033AAD4 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE78 0033AAD8 48 00 06 85 */ bl gpiAppendIntToBuffer
+/* 8033EE7C 0033AADC 7F 83 E3 78 */ mr r3, r28
+/* 8033EE80 0033AAE0 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE84 0033AAE4 38 AD 8F 94 */ addi r5, r13, lbl_8063E254-_SDA_BASE_
+/* 8033EE88 0033AAE8 48 00 06 19 */ bl gpiAppendStringToBuffer
+/* 8033EE8C 0033AAEC 7F 83 E3 78 */ mr r3, r28
+/* 8033EE90 0033AAF0 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EE94 0033AAF4 38 A1 00 08 */ addi r5, r1, 8
+/* 8033EE98 0033AAF8 48 00 06 09 */ bl gpiAppendStringToBuffer
+/* 8033EE9C 0033AAFC 7F 83 E3 78 */ mr r3, r28
+/* 8033EEA0 0033AB00 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8033EEA4 0033AB04 38 AD 8F C8 */ addi r5, r13, lbl_8063E288-_SDA_BASE_
+/* 8033EEA8 0033AB08 48 00 05 F9 */ bl gpiAppendStringToBuffer
+/* 8033EEAC 0033AB0C 83 E1 0D CC */ lwz r31, 0xdcc(r1)
+/* 8033EEB0 0033AB10 38 60 00 00 */ li r3, 0
+/* 8033EEB4 0033AB14 83 C1 0D C8 */ lwz r30, 0xdc8(r1)
+/* 8033EEB8 0033AB18 83 A1 0D C4 */ lwz r29, 0xdc4(r1)
+/* 8033EEBC 0033AB1C 83 81 0D C0 */ lwz r28, 0xdc0(r1)
+/* 8033EEC0 0033AB20 80 01 0D D4 */ lwz r0, 0xdd4(r1)
+/* 8033EEC4 0033AB24 7C 08 03 A6 */ mtlr r0
+/* 8033EEC8 0033AB28 38 21 0D D0 */ addi r1, r1, 0xdd0
+/* 8033EECC 0033AB2C 4E 80 00 20 */ blr
+
+.global gpiSendBuddyMessage
+gpiSendBuddyMessage:
+/* 8033EED0 0033AB30 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033EED4 0033AB34 7C 08 02 A6 */ mflr r0
+/* 8033EED8 0033AB38 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033EEDC 0033AB3C 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033EEE0 0033AB40 4B E8 82 45 */ bl _savegpr_26
+/* 8033EEE4 0033AB44 7C 7A 1B 78 */ mr r26, r3
+/* 8033EEE8 0033AB48 7C 9B 23 78 */ mr r27, r4
+/* 8033EEEC 0033AB4C 7C BC 2B 78 */ mr r28, r5
+/* 8033EEF0 0033AB50 7C DD 33 78 */ mr r29, r6
+/* 8033EEF4 0033AB54 7C FE 3B 78 */ mr r30, r7
+/* 8033EEF8 0033AB58 48 00 5F D9 */ bl gpiGetConnectedPeer
+/* 8033EEFC 0033AB5C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EF00 0033AB60 7C 7F 1B 78 */ mr r31, r3
+/* 8033EF04 0033AB64 40 82 00 C4 */ bne lbl_8033EFC8
+/* 8033EF08 0033AB68 7F 43 D3 78 */ mr r3, r26
+/* 8033EF0C 0033AB6C 7F 64 DB 78 */ mr r4, r27
+/* 8033EF10 0033AB70 38 A1 00 08 */ addi r5, r1, 8
+/* 8033EF14 0033AB74 48 00 69 BD */ bl gpiGetProfile
+/* 8033EF18 0033AB78 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EF1C 0033AB7C 41 82 00 20 */ beq lbl_8033EF3C
+/* 8033EF20 0033AB80 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033EF24 0033AB84 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033EF28 0033AB88 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EF2C 0033AB8C 41 82 00 10 */ beq lbl_8033EF3C
+/* 8033EF30 0033AB90 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8033EF34 0033AB94 2C 00 00 00 */ cmpwi r0, 0
+/* 8033EF38 0033AB98 40 82 00 2C */ bne lbl_8033EF64
+lbl_8033EF3C:
+/* 8033EF3C 0033AB9C 2C 1E 0B 00 */ cmpwi r30, 0xb00
+/* 8033EF40 0033ABA0 40 82 00 0C */ bne lbl_8033EF4C
+/* 8033EF44 0033ABA4 38 60 00 03 */ li r3, 3
+/* 8033EF48 0033ABA8 48 00 00 A8 */ b lbl_8033EFF0
+lbl_8033EF4C:
+/* 8033EF4C 0033ABAC 7F 43 D3 78 */ mr r3, r26
+/* 8033EF50 0033ABB0 7F 64 DB 78 */ mr r4, r27
+/* 8033EF54 0033ABB4 7F 85 E3 78 */ mr r5, r28
+/* 8033EF58 0033ABB8 7F A6 EB 78 */ mr r6, r29
+/* 8033EF5C 0033ABBC 4B FF FE 81 */ bl gpiSendServerBuddyMessage
+/* 8033EF60 0033ABC0 48 00 00 90 */ b lbl_8033EFF0
+lbl_8033EF64:
+/* 8033EF64 0033ABC4 7F 43 D3 78 */ mr r3, r26
+/* 8033EF68 0033ABC8 7F 64 DB 78 */ mr r4, r27
+/* 8033EF6C 0033ABCC 38 A0 00 01 */ li r5, 1
+/* 8033EF70 0033ABD0 48 00 5F D1 */ bl gpiAddPeer
+/* 8033EF74 0033ABD4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EF78 0033ABD8 7C 7F 1B 78 */ mr r31, r3
+/* 8033EF7C 0033ABDC 40 82 00 0C */ bne lbl_8033EF88
+/* 8033EF80 0033ABE0 38 60 00 01 */ li r3, 1
+/* 8033EF84 0033ABE4 48 00 00 6C */ b lbl_8033EFF0
+lbl_8033EF88:
+/* 8033EF88 0033ABE8 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033EF8C 0033ABEC 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8033EF90 0033ABF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8033EF94 0033ABF4 40 82 00 1C */ bne lbl_8033EFB0
+/* 8033EF98 0033ABF8 7F 43 D3 78 */ mr r3, r26
+/* 8033EF9C 0033ABFC 7F E4 FB 78 */ mr r4, r31
+/* 8033EFA0 0033AC00 48 00 60 71 */ bl gpiPeerGetSig
+/* 8033EFA4 0033AC04 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EFA8 0033AC08 41 82 00 20 */ beq lbl_8033EFC8
+/* 8033EFAC 0033AC0C 48 00 00 44 */ b lbl_8033EFF0
+lbl_8033EFB0:
+/* 8033EFB0 0033AC10 7F 43 D3 78 */ mr r3, r26
+/* 8033EFB4 0033AC14 7F E4 FB 78 */ mr r4, r31
+/* 8033EFB8 0033AC18 48 00 60 E1 */ bl gpiPeerStartConnect
+/* 8033EFBC 0033AC1C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EFC0 0033AC20 41 82 00 08 */ beq lbl_8033EFC8
+/* 8033EFC4 0033AC24 48 00 00 2C */ b lbl_8033EFF0
+lbl_8033EFC8:
+/* 8033EFC8 0033AC28 7F 43 D3 78 */ mr r3, r26
+/* 8033EFCC 0033AC2C 7F E4 FB 78 */ mr r4, r31
+/* 8033EFD0 0033AC30 7F 85 E3 78 */ mr r5, r28
+/* 8033EFD4 0033AC34 7F A6 EB 78 */ mr r6, r29
+/* 8033EFD8 0033AC38 48 00 62 B9 */ bl gpiPeerAddMessage
+/* 8033EFDC 0033AC3C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033EFE0 0033AC40 38 00 00 00 */ li r0, 0
+/* 8033EFE4 0033AC44 41 82 00 08 */ beq lbl_8033EFEC
+/* 8033EFE8 0033AC48 7C 60 1B 78 */ mr r0, r3
+lbl_8033EFEC:
+/* 8033EFEC 0033AC4C 7C 03 03 78 */ mr r3, r0
+lbl_8033EFF0:
+/* 8033EFF0 0033AC50 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033EFF4 0033AC54 4B E8 81 7D */ bl _restgpr_26
+/* 8033EFF8 0033AC58 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033EFFC 0033AC5C 7C 08 03 A6 */ mtlr r0
+/* 8033F000 0033AC60 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033F004 0033AC64 4E 80 00 20 */ blr
+
+.global gpiAuthBuddyRequest
+gpiAuthBuddyRequest:
+/* 8033F008 0033AC68 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033F00C 0033AC6C 7C 08 02 A6 */ mflr r0
+/* 8033F010 0033AC70 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033F014 0033AC74 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033F018 0033AC78 4B E8 81 11 */ bl _savegpr_27
+/* 8033F01C 0033AC7C 3F E0 80 45 */ lis r31, lbl_8044A700@ha
+/* 8033F020 0033AC80 83 83 00 00 */ lwz r28, 0(r3)
+/* 8033F024 0033AC84 7C 7B 1B 78 */ mr r27, r3
+/* 8033F028 0033AC88 38 A1 00 08 */ addi r5, r1, 8
+/* 8033F02C 0033AC8C 3B FF A7 00 */ addi r31, r31, lbl_8044A700@l
+/* 8033F030 0033AC90 48 00 68 A1 */ bl gpiGetProfile
+/* 8033F034 0033AC94 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F038 0033AC98 40 82 00 18 */ bne lbl_8033F050
+/* 8033F03C 0033AC9C 7F 63 DB 78 */ mr r3, r27
+/* 8033F040 0033ACA0 38 9F 00 58 */ addi r4, r31, 0x58
+/* 8033F044 0033ACA4 48 00 94 15 */ bl gpiSetErrorString
+/* 8033F048 0033ACA8 38 60 00 02 */ li r3, 2
+/* 8033F04C 0033ACAC 48 00 01 14 */ b lbl_8033F160
+lbl_8033F050:
+/* 8033F050 0033ACB0 83 A1 00 08 */ lwz r29, 8(r1)
+/* 8033F054 0033ACB4 80 1D 00 10 */ lwz r0, 0x10(r29)
+/* 8033F058 0033ACB8 2C 00 00 00 */ cmpwi r0, 0
+/* 8033F05C 0033ACBC 40 82 00 18 */ bne lbl_8033F074
+/* 8033F060 0033ACC0 7F 63 DB 78 */ mr r3, r27
+/* 8033F064 0033ACC4 38 9F 00 58 */ addi r4, r31, 0x58
+/* 8033F068 0033ACC8 48 00 93 F1 */ bl gpiSetErrorString
+/* 8033F06C 0033ACCC 38 60 00 02 */ li r3, 2
+/* 8033F070 0033ACD0 48 00 00 F0 */ b lbl_8033F160
+lbl_8033F074:
+/* 8033F074 0033ACD4 83 DB 00 00 */ lwz r30, 0(r27)
+/* 8033F078 0033ACD8 7F 63 DB 78 */ mr r3, r27
+/* 8033F07C 0033ACDC 38 BF 00 6C */ addi r5, r31, 0x6c
+/* 8033F080 0033ACE0 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F084 0033ACE4 48 00 04 1D */ bl gpiAppendStringToBuffer
+/* 8033F088 0033ACE8 7F 63 DB 78 */ mr r3, r27
+/* 8033F08C 0033ACEC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F090 0033ACF0 38 BF 00 4C */ addi r5, r31, 0x4c
+/* 8033F094 0033ACF4 48 00 04 0D */ bl gpiAppendStringToBuffer
+/* 8033F098 0033ACF8 80 BE 01 98 */ lwz r5, 0x198(r30)
+/* 8033F09C 0033ACFC 7F 63 DB 78 */ mr r3, r27
+/* 8033F0A0 0033AD00 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F0A4 0033AD04 48 00 04 59 */ bl gpiAppendIntToBuffer
+/* 8033F0A8 0033AD08 7F 63 DB 78 */ mr r3, r27
+/* 8033F0AC 0033AD0C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F0B0 0033AD10 38 BF 00 78 */ addi r5, r31, 0x78
+/* 8033F0B4 0033AD14 48 00 03 ED */ bl gpiAppendStringToBuffer
+/* 8033F0B8 0033AD18 80 BD 00 00 */ lwz r5, 0(r29)
+/* 8033F0BC 0033AD1C 7F 63 DB 78 */ mr r3, r27
+/* 8033F0C0 0033AD20 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F0C4 0033AD24 48 00 04 39 */ bl gpiAppendIntToBuffer
+/* 8033F0C8 0033AD28 7F 63 DB 78 */ mr r3, r27
+/* 8033F0CC 0033AD2C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F0D0 0033AD30 38 AD 8F D0 */ addi r5, r13, lbl_8063E290-_SDA_BASE_
+/* 8033F0D4 0033AD34 48 00 03 CD */ bl gpiAppendStringToBuffer
+/* 8033F0D8 0033AD38 80 BD 00 10 */ lwz r5, 0x10(r29)
+/* 8033F0DC 0033AD3C 7F 63 DB 78 */ mr r3, r27
+/* 8033F0E0 0033AD40 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F0E4 0033AD44 48 00 03 BD */ bl gpiAppendStringToBuffer
+/* 8033F0E8 0033AD48 7F 63 DB 78 */ mr r3, r27
+/* 8033F0EC 0033AD4C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8033F0F0 0033AD50 38 AD 8F C8 */ addi r5, r13, lbl_8063E288-_SDA_BASE_
+/* 8033F0F4 0033AD54 48 00 03 AD */ bl gpiAppendStringToBuffer
+/* 8033F0F8 0033AD58 48 00 00 08 */ b lbl_8033F100
+/* 8033F0FC 0033AD5C 48 00 00 64 */ b lbl_8033F160
+lbl_8033F100:
+/* 8033F100 0033AD60 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033F104 0033AD64 80 64 00 14 */ lwz r3, 0x14(r4)
+/* 8033F108 0033AD68 38 03 FF FF */ addi r0, r3, -1
+/* 8033F10C 0033AD6C 90 04 00 14 */ stw r0, 0x14(r4)
+/* 8033F110 0033AD70 80 1C 01 00 */ lwz r0, 0x100(r28)
+/* 8033F114 0033AD74 2C 00 00 00 */ cmpwi r0, 0
+/* 8033F118 0033AD78 40 82 00 44 */ bne lbl_8033F15C
+/* 8033F11C 0033AD7C 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F120 0033AD80 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8033F124 0033AD84 2C 00 00 00 */ cmpwi r0, 0
+/* 8033F128 0033AD88 41 81 00 34 */ bgt lbl_8033F15C
+/* 8033F12C 0033AD8C 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8033F130 0033AD90 4B FF A2 09 */ bl gsifree
+/* 8033F134 0033AD94 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F138 0033AD98 38 00 00 00 */ li r0, 0
+/* 8033F13C 0033AD9C 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8033F140 0033ADA0 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F144 0033ADA4 48 00 6B 81 */ bl gpiCanFreeProfile
+/* 8033F148 0033ADA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F14C 0033ADAC 41 82 00 10 */ beq lbl_8033F15C
+/* 8033F150 0033ADB0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033F154 0033ADB4 7F 63 DB 78 */ mr r3, r27
+/* 8033F158 0033ADB8 48 00 69 59 */ bl gpiRemoveProfile
+lbl_8033F15C:
+/* 8033F15C 0033ADBC 38 60 00 00 */ li r3, 0
+lbl_8033F160:
+/* 8033F160 0033ADC0 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033F164 0033ADC4 4B E8 80 11 */ bl _restgpr_27
+/* 8033F168 0033ADC8 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033F16C 0033ADCC 7C 08 03 A6 */ mtlr r0
+/* 8033F170 0033ADD0 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033F174 0033ADD4 4E 80 00 20 */ blr
+lbl_8033F178:
+/* 8033F178 0033ADD8 80 84 00 08 */ lwz r4, 8(r4)
+/* 8033F17C 0033ADDC 2C 04 00 00 */ cmpwi r4, 0
+/* 8033F180 0033ADE0 41 82 00 18 */ beq lbl_8033F198
+/* 8033F184 0033ADE4 80 64 00 00 */ lwz r3, 0(r4)
+/* 8033F188 0033ADE8 7C 03 28 00 */ cmpw r3, r5
+/* 8033F18C 0033ADEC 40 81 00 0C */ ble lbl_8033F198
+/* 8033F190 0033ADF0 38 03 FF FF */ addi r0, r3, -1
+/* 8033F194 0033ADF4 90 04 00 00 */ stw r0, 0(r4)
+lbl_8033F198:
+/* 8033F198 0033ADF8 38 60 00 01 */ li r3, 1
+/* 8033F19C 0033ADFC 4E 80 00 20 */ blr
+
+.global gpiDeleteBuddy
+gpiDeleteBuddy:
+/* 8033F1A0 0033AE00 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033F1A4 0033AE04 7C 08 02 A6 */ mflr r0
+/* 8033F1A8 0033AE08 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033F1AC 0033AE0C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033F1B0 0033AE10 7C 7F 1B 78 */ mr r31, r3
+/* 8033F1B4 0033AE14 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033F1B8 0033AE18 3F C0 80 45 */ lis r30, lbl_8044A700@ha
+/* 8033F1BC 0033AE1C 3B DE A7 00 */ addi r30, r30, lbl_8044A700@l
+/* 8033F1C0 0033AE20 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8033F1C4 0033AE24 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8033F1C8 0033AE28 7C BC 2B 78 */ mr r28, r5
+/* 8033F1CC 0033AE2C 38 A1 00 08 */ addi r5, r1, 8
+/* 8033F1D0 0033AE30 83 A3 00 00 */ lwz r29, 0(r3)
+/* 8033F1D4 0033AE34 48 00 66 FD */ bl gpiGetProfile
+/* 8033F1D8 0033AE38 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F1DC 0033AE3C 40 82 00 18 */ bne lbl_8033F1F4
+/* 8033F1E0 0033AE40 7F E3 FB 78 */ mr r3, r31
+/* 8033F1E4 0033AE44 38 9E 00 58 */ addi r4, r30, 0x58
+/* 8033F1E8 0033AE48 48 00 92 71 */ bl gpiSetErrorString
+/* 8033F1EC 0033AE4C 38 60 00 02 */ li r3, 2
+/* 8033F1F0 0033AE50 48 00 01 0C */ b lbl_8033F2FC
+lbl_8033F1F4:
+/* 8033F1F4 0033AE54 2C 1C 00 01 */ cmpwi r28, 1
+/* 8033F1F8 0033AE58 40 82 00 68 */ bne lbl_8033F260
+/* 8033F1FC 0033AE5C 7F E3 FB 78 */ mr r3, r31
+/* 8033F200 0033AE60 38 9D 02 10 */ addi r4, r29, 0x210
+/* 8033F204 0033AE64 38 BE 00 88 */ addi r5, r30, 0x88
+/* 8033F208 0033AE68 48 00 02 99 */ bl gpiAppendStringToBuffer
+/* 8033F20C 0033AE6C 7F E3 FB 78 */ mr r3, r31
+/* 8033F210 0033AE70 38 9D 02 10 */ addi r4, r29, 0x210
+/* 8033F214 0033AE74 38 BE 00 4C */ addi r5, r30, 0x4c
+/* 8033F218 0033AE78 48 00 02 89 */ bl gpiAppendStringToBuffer
+/* 8033F21C 0033AE7C 80 BD 01 98 */ lwz r5, 0x198(r29)
+/* 8033F220 0033AE80 7F E3 FB 78 */ mr r3, r31
+/* 8033F224 0033AE84 38 9D 02 10 */ addi r4, r29, 0x210
+/* 8033F228 0033AE88 48 00 02 D5 */ bl gpiAppendIntToBuffer
+/* 8033F22C 0033AE8C 7F E3 FB 78 */ mr r3, r31
+/* 8033F230 0033AE90 38 9D 02 10 */ addi r4, r29, 0x210
+/* 8033F234 0033AE94 38 BE 00 94 */ addi r5, r30, 0x94
+/* 8033F238 0033AE98 48 00 02 69 */ bl gpiAppendStringToBuffer
+/* 8033F23C 0033AE9C 80 A1 00 08 */ lwz r5, 8(r1)
+/* 8033F240 0033AEA0 7F E3 FB 78 */ mr r3, r31
+/* 8033F244 0033AEA4 38 9D 02 10 */ addi r4, r29, 0x210
+/* 8033F248 0033AEA8 80 A5 00 00 */ lwz r5, 0(r5)
+/* 8033F24C 0033AEAC 48 00 02 B1 */ bl gpiAppendIntToBuffer
+/* 8033F250 0033AEB0 7F E3 FB 78 */ mr r3, r31
+/* 8033F254 0033AEB4 38 9D 02 10 */ addi r4, r29, 0x210
+/* 8033F258 0033AEB8 38 AD 8F C8 */ addi r5, r13, lbl_8063E288-_SDA_BASE_
+/* 8033F25C 0033AEBC 48 00 02 45 */ bl gpiAppendStringToBuffer
+lbl_8033F260:
+/* 8033F260 0033AEC0 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F264 0033AEC4 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033F268 0033AEC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F26C 0033AECC 41 82 00 8C */ beq lbl_8033F2F8
+/* 8033F270 0033AED0 83 83 00 00 */ lwz r28, 0(r3)
+/* 8033F274 0033AED4 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033F278 0033AED8 4B FF A0 C1 */ bl gsifree
+/* 8033F27C 0033AEDC 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F280 0033AEE0 3B C0 00 00 */ li r30, 0
+/* 8033F284 0033AEE4 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033F288 0033AEE8 93 C3 00 08 */ stw r30, 8(r3)
+/* 8033F28C 0033AEEC 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F290 0033AEF0 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033F294 0033AEF4 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8033F298 0033AEF8 4B FF A0 A1 */ bl gsifree
+/* 8033F29C 0033AEFC 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F2A0 0033AF00 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033F2A4 0033AF04 93 C3 00 0C */ stw r30, 0xc(r3)
+/* 8033F2A8 0033AF08 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F2AC 0033AF0C 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033F2B0 0033AF10 4B FF A0 89 */ bl gsifree
+/* 8033F2B4 0033AF14 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F2B8 0033AF18 93 C3 00 08 */ stw r30, 8(r3)
+/* 8033F2BC 0033AF1C 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033F2C0 0033AF20 48 00 6A 05 */ bl gpiCanFreeProfile
+/* 8033F2C4 0033AF24 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F2C8 0033AF28 41 82 00 10 */ beq lbl_8033F2D8
+/* 8033F2CC 0033AF2C 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033F2D0 0033AF30 7F E3 FB 78 */ mr r3, r31
+/* 8033F2D4 0033AF34 48 00 67 DD */ bl gpiRemoveProfile
+lbl_8033F2D8:
+/* 8033F2D8 0033AF38 80 DD 04 4C */ lwz r6, 0x44c(r29)
+/* 8033F2DC 0033AF3C 3C 80 80 34 */ lis r4, lbl_8033F178@ha
+/* 8033F2E0 0033AF40 7F E3 FB 78 */ mr r3, r31
+/* 8033F2E4 0033AF44 7F 85 E3 78 */ mr r5, r28
+/* 8033F2E8 0033AF48 38 06 FF FF */ addi r0, r6, -1
+/* 8033F2EC 0033AF4C 38 84 F1 78 */ addi r4, r4, lbl_8033F178@l
+/* 8033F2F0 0033AF50 90 1D 04 4C */ stw r0, 0x44c(r29)
+/* 8033F2F4 0033AF54 48 00 68 FD */ bl gpiProfileMap
+lbl_8033F2F8:
+/* 8033F2F8 0033AF58 38 60 00 00 */ li r3, 0
+lbl_8033F2FC:
+/* 8033F2FC 0033AF5C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033F300 0033AF60 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033F304 0033AF64 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033F308 0033AF68 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8033F30C 0033AF6C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8033F310 0033AF70 7C 08 03 A6 */ mtlr r0
+/* 8033F314 0033AF74 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033F318 0033AF78 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiBuffer.s b/asm/SDK/DWC/gamespy/gpiBuffer.s new file mode 100644 index 0000000..2d7828e --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiBuffer.s @@ -0,0 +1,683 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiAppendCharToBuffer
+gpiAppendCharToBuffer:
+/* 8033F31C 0033AF7C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033F320 0033AF80 7C 08 02 A6 */ mflr r0
+/* 8033F324 0033AF84 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033F328 0033AF88 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033F32C 0033AF8C 4B E8 7D FD */ bl _savegpr_27
+/* 8033F330 0033AF90 83 E4 00 08 */ lwz r31, 8(r4)
+/* 8033F334 0033AF94 7C 7B 1B 78 */ mr r27, r3
+/* 8033F338 0033AF98 83 C4 00 04 */ lwz r30, 4(r4)
+/* 8033F33C 0033AF9C 7C 9C 23 78 */ mr r28, r4
+/* 8033F340 0033AFA0 80 C4 00 00 */ lwz r6, 0(r4)
+/* 8033F344 0033AFA4 7C BD 2B 78 */ mr r29, r5
+/* 8033F348 0033AFA8 7C 1E F8 00 */ cmpw r30, r31
+/* 8033F34C 0033AFAC 40 82 00 38 */ bne lbl_8033F384
+/* 8033F350 0033AFB0 38 9E 40 01 */ addi r4, r30, 0x4001
+/* 8033F354 0033AFB4 7C C3 33 78 */ mr r3, r6
+/* 8033F358 0033AFB8 3B DE 40 00 */ addi r30, r30, 0x4000
+/* 8033F35C 0033AFBC 4B FF 9F C9 */ bl gsirealloc
+/* 8033F360 0033AFC0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F364 0033AFC4 7C 66 1B 78 */ mr r6, r3
+/* 8033F368 0033AFC8 40 82 00 1C */ bne lbl_8033F384
+/* 8033F36C 0033AFCC 3C 80 80 45 */ lis r4, lbl_8044A7A8@ha
+/* 8033F370 0033AFD0 7F 63 DB 78 */ mr r3, r27
+/* 8033F374 0033AFD4 38 84 A7 A8 */ addi r4, r4, lbl_8044A7A8@l
+/* 8033F378 0033AFD8 48 00 90 E1 */ bl gpiSetErrorString
+/* 8033F37C 0033AFDC 38 60 00 01 */ li r3, 1
+/* 8033F380 0033AFE0 48 00 00 2C */ b lbl_8033F3AC
+lbl_8033F384:
+/* 8033F384 0033AFE4 7F A6 F9 AE */ stbx r29, r6, r31
+/* 8033F388 0033AFE8 7C 9F 32 14 */ add r4, r31, r6
+/* 8033F38C 0033AFEC 38 00 00 00 */ li r0, 0
+/* 8033F390 0033AFF0 38 60 00 00 */ li r3, 0
+/* 8033F394 0033AFF4 98 04 00 01 */ stb r0, 1(r4)
+/* 8033F398 0033AFF8 80 9C 00 08 */ lwz r4, 8(r28)
+/* 8033F39C 0033AFFC 93 DC 00 04 */ stw r30, 4(r28)
+/* 8033F3A0 0033B000 38 04 00 01 */ addi r0, r4, 1
+/* 8033F3A4 0033B004 90 1C 00 08 */ stw r0, 8(r28)
+/* 8033F3A8 0033B008 90 DC 00 00 */ stw r6, 0(r28)
+lbl_8033F3AC:
+/* 8033F3AC 0033B00C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033F3B0 0033B010 4B E8 7D C5 */ bl _restgpr_27
+/* 8033F3B4 0033B014 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033F3B8 0033B018 7C 08 03 A6 */ mtlr r0
+/* 8033F3BC 0033B01C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033F3C0 0033B020 4E 80 00 20 */ blr
+
+.global gpiAppendStringToBufferLen
+gpiAppendStringToBufferLen:
+/* 8033F3C4 0033B024 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033F3C8 0033B028 7C 08 02 A6 */ mflr r0
+/* 8033F3CC 0033B02C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033F3D0 0033B030 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033F3D4 0033B034 4B E8 7D 4D */ bl _savegpr_25
+/* 8033F3D8 0033B038 2C 05 00 00 */ cmpwi r5, 0
+/* 8033F3DC 0033B03C 7C 79 1B 78 */ mr r25, r3
+/* 8033F3E0 0033B040 7C 9A 23 78 */ mr r26, r4
+/* 8033F3E4 0033B044 7C BB 2B 78 */ mr r27, r5
+/* 8033F3E8 0033B048 7C DC 33 78 */ mr r28, r6
+/* 8033F3EC 0033B04C 40 82 00 0C */ bne lbl_8033F3F8
+/* 8033F3F0 0033B050 38 60 00 00 */ li r3, 0
+/* 8033F3F4 0033B054 48 00 00 94 */ b lbl_8033F488
+lbl_8033F3F8:
+/* 8033F3F8 0033B058 83 E4 00 08 */ lwz r31, 8(r4)
+/* 8033F3FC 0033B05C 83 C4 00 04 */ lwz r30, 4(r4)
+/* 8033F400 0033B060 83 A4 00 00 */ lwz r29, 0(r4)
+/* 8033F404 0033B064 7C 1F F0 50 */ subf r0, r31, r30
+/* 8033F408 0033B068 7C 00 30 00 */ cmpw r0, r6
+/* 8033F40C 0033B06C 40 80 00 48 */ bge lbl_8033F454
+/* 8033F410 0033B070 2C 06 40 00 */ cmpwi r6, 0x4000
+/* 8033F414 0033B074 38 00 40 00 */ li r0, 0x4000
+/* 8033F418 0033B078 41 80 00 08 */ blt lbl_8033F420
+/* 8033F41C 0033B07C 7F 80 E3 78 */ mr r0, r28
+lbl_8033F420:
+/* 8033F420 0033B080 7F DE 02 14 */ add r30, r30, r0
+/* 8033F424 0033B084 7F A3 EB 78 */ mr r3, r29
+/* 8033F428 0033B088 38 9E 00 01 */ addi r4, r30, 1
+/* 8033F42C 0033B08C 4B FF 9E F9 */ bl gsirealloc
+/* 8033F430 0033B090 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F434 0033B094 7C 7D 1B 78 */ mr r29, r3
+/* 8033F438 0033B098 40 82 00 1C */ bne lbl_8033F454
+/* 8033F43C 0033B09C 3C 80 80 45 */ lis r4, lbl_8044A7A8@ha
+/* 8033F440 0033B0A0 7F 23 CB 78 */ mr r3, r25
+/* 8033F444 0033B0A4 38 84 A7 A8 */ addi r4, r4, lbl_8044A7A8@l
+/* 8033F448 0033B0A8 48 00 90 11 */ bl gpiSetErrorString
+/* 8033F44C 0033B0AC 38 60 00 01 */ li r3, 1
+/* 8033F450 0033B0B0 48 00 00 38 */ b lbl_8033F488
+lbl_8033F454:
+/* 8033F454 0033B0B4 7F 64 DB 78 */ mr r4, r27
+/* 8033F458 0033B0B8 7F 85 E3 78 */ mr r5, r28
+/* 8033F45C 0033B0BC 7C 7D FA 14 */ add r3, r29, r31
+/* 8033F460 0033B0C0 4B CC 4B A1 */ bl memcpy
+/* 8033F464 0033B0C4 7C 1F E2 14 */ add r0, r31, r28
+/* 8033F468 0033B0C8 38 60 00 00 */ li r3, 0
+/* 8033F46C 0033B0CC 7C 7D 01 AE */ stbx r3, r29, r0
+/* 8033F470 0033B0D0 38 60 00 00 */ li r3, 0
+/* 8033F474 0033B0D4 80 1A 00 08 */ lwz r0, 8(r26)
+/* 8033F478 0033B0D8 93 DA 00 04 */ stw r30, 4(r26)
+/* 8033F47C 0033B0DC 7C 00 E2 14 */ add r0, r0, r28
+/* 8033F480 0033B0E0 90 1A 00 08 */ stw r0, 8(r26)
+/* 8033F484 0033B0E4 93 BA 00 00 */ stw r29, 0(r26)
+lbl_8033F488:
+/* 8033F488 0033B0E8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033F48C 0033B0EC 4B E8 7C E1 */ bl _restgpr_25
+/* 8033F490 0033B0F0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033F494 0033B0F4 7C 08 03 A6 */ mtlr r0
+/* 8033F498 0033B0F8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033F49C 0033B0FC 4E 80 00 20 */ blr
+
+.global gpiAppendStringToBuffer
+gpiAppendStringToBuffer:
+/* 8033F4A0 0033B100 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033F4A4 0033B104 7C 08 02 A6 */ mflr r0
+/* 8033F4A8 0033B108 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033F4AC 0033B10C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033F4B0 0033B110 7C BF 2B 78 */ mr r31, r5
+/* 8033F4B4 0033B114 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033F4B8 0033B118 7C 9E 23 78 */ mr r30, r4
+/* 8033F4BC 0033B11C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8033F4C0 0033B120 7C 7D 1B 78 */ mr r29, r3
+/* 8033F4C4 0033B124 7F E3 FB 78 */ mr r3, r31
+/* 8033F4C8 0033B128 4B E8 76 9D */ bl strlen
+/* 8033F4CC 0033B12C 7C 66 1B 78 */ mr r6, r3
+/* 8033F4D0 0033B130 7F A3 EB 78 */ mr r3, r29
+/* 8033F4D4 0033B134 7F C4 F3 78 */ mr r4, r30
+/* 8033F4D8 0033B138 7F E5 FB 78 */ mr r5, r31
+/* 8033F4DC 0033B13C 4B FF FE E9 */ bl gpiAppendStringToBufferLen
+/* 8033F4E0 0033B140 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033F4E4 0033B144 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033F4E8 0033B148 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033F4EC 0033B14C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8033F4F0 0033B150 7C 08 03 A6 */ mtlr r0
+/* 8033F4F4 0033B154 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033F4F8 0033B158 4E 80 00 20 */ blr
+
+.global gpiAppendIntToBuffer
+gpiAppendIntToBuffer:
+/* 8033F4FC 0033B15C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033F500 0033B160 7C 08 02 A6 */ mflr r0
+/* 8033F504 0033B164 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033F508 0033B168 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033F50C 0033B16C 7C 9F 23 78 */ mr r31, r4
+/* 8033F510 0033B170 38 8D 8F D8 */ addi r4, r13, lbl_8063E298-_SDA_BASE_
+/* 8033F514 0033B174 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033F518 0033B178 7C 7E 1B 78 */ mr r30, r3
+/* 8033F51C 0033B17C 38 61 00 08 */ addi r3, r1, 8
+/* 8033F520 0033B180 4C C6 31 82 */ crclr 6
+/* 8033F524 0033B184 4B E8 D5 D9 */ bl sprintf
+/* 8033F528 0033B188 38 61 00 08 */ addi r3, r1, 8
+/* 8033F52C 0033B18C 4B E8 76 39 */ bl strlen
+/* 8033F530 0033B190 7C 66 1B 78 */ mr r6, r3
+/* 8033F534 0033B194 7F C3 F3 78 */ mr r3, r30
+/* 8033F538 0033B198 7F E4 FB 78 */ mr r4, r31
+/* 8033F53C 0033B19C 38 A1 00 08 */ addi r5, r1, 8
+/* 8033F540 0033B1A0 4B FF FE 85 */ bl gpiAppendStringToBufferLen
+/* 8033F544 0033B1A4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033F548 0033B1A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033F54C 0033B1AC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033F550 0033B1B0 7C 08 03 A6 */ mtlr r0
+/* 8033F554 0033B1B4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033F558 0033B1B8 4E 80 00 20 */ blr
+
+.global gpiSendData
+gpiSendData:
+/* 8033F55C 0033B1BC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033F560 0033B1C0 7C 08 02 A6 */ mflr r0
+/* 8033F564 0033B1C4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033F568 0033B1C8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033F56C 0033B1CC 4B E8 7B BD */ bl _savegpr_27
+/* 8033F570 0033B1D0 7C 9C 23 78 */ mr r28, r4
+/* 8033F574 0033B1D4 7C 7B 1B 78 */ mr r27, r3
+/* 8033F578 0033B1D8 7C A4 2B 78 */ mr r4, r5
+/* 8033F57C 0033B1DC 7C C5 33 78 */ mr r5, r6
+/* 8033F580 0033B1E0 7C FD 3B 78 */ mr r29, r7
+/* 8033F584 0033B1E4 7D 1E 43 78 */ mr r30, r8
+/* 8033F588 0033B1E8 7D 3F 4B 78 */ mr r31, r9
+/* 8033F58C 0033B1EC 7F 83 E3 78 */ mr r3, r28
+/* 8033F590 0033B1F0 38 C0 00 00 */ li r6, 0
+/* 8033F594 0033B1F4 4B FF 88 CD */ bl send
+/* 8033F598 0033B1F8 2C 03 FF FF */ cmpwi r3, -1
+/* 8033F59C 0033B1FC 40 82 00 80 */ bne lbl_8033F61C
+/* 8033F5A0 0033B200 7F 83 E3 78 */ mr r3, r28
+/* 8033F5A4 0033B204 4B FF 8A 05 */ bl GOAGetLastError
+/* 8033F5A8 0033B208 2C 03 FF FA */ cmpwi r3, -6
+/* 8033F5AC 0033B20C 41 82 00 60 */ beq lbl_8033F60C
+/* 8033F5B0 0033B210 2C 03 FF E6 */ cmpwi r3, -26
+/* 8033F5B4 0033B214 41 82 00 58 */ beq lbl_8033F60C
+/* 8033F5B8 0033B218 2C 03 FF B4 */ cmpwi r3, -76
+/* 8033F5BC 0033B21C 41 82 00 50 */ beq lbl_8033F60C
+/* 8033F5C0 0033B220 88 1F 00 00 */ lbz r0, 0(r31)
+/* 8033F5C4 0033B224 2C 00 00 50 */ cmpwi r0, 0x50
+/* 8033F5C8 0033B228 40 82 00 18 */ bne lbl_8033F5E0
+/* 8033F5CC 0033B22C 88 1F 00 01 */ lbz r0, 1(r31)
+/* 8033F5D0 0033B230 2C 00 00 52 */ cmpwi r0, 0x52
+/* 8033F5D4 0033B234 40 82 00 0C */ bne lbl_8033F5E0
+/* 8033F5D8 0033B238 38 60 00 03 */ li r3, 3
+/* 8033F5DC 0033B23C 48 00 00 6C */ b lbl_8033F648
+lbl_8033F5E0:
+/* 8033F5E0 0033B240 3C A0 80 45 */ lis r5, lbl_8044A7B8@ha
+/* 8033F5E4 0033B244 7F 63 DB 78 */ mr r3, r27
+/* 8033F5E8 0033B248 38 A5 A7 B8 */ addi r5, r5, lbl_8044A7B8@l
+/* 8033F5EC 0033B24C 38 80 00 05 */ li r4, 5
+/* 8033F5F0 0033B250 48 00 8E 19 */ bl gpiSetError
+/* 8033F5F4 0033B254 7F 63 DB 78 */ mr r3, r27
+/* 8033F5F8 0033B258 38 80 00 03 */ li r4, 3
+/* 8033F5FC 0033B25C 38 A0 00 00 */ li r5, 0
+/* 8033F600 0033B260 48 00 06 69 */ bl gpiCallErrorCallback
+/* 8033F604 0033B264 38 60 00 03 */ li r3, 3
+/* 8033F608 0033B268 48 00 00 40 */ b lbl_8033F648
+lbl_8033F60C:
+/* 8033F60C 0033B26C 38 00 00 00 */ li r0, 0
+/* 8033F610 0033B270 90 1E 00 00 */ stw r0, 0(r30)
+/* 8033F614 0033B274 90 1D 00 00 */ stw r0, 0(r29)
+/* 8033F618 0033B278 48 00 00 2C */ b lbl_8033F644
+lbl_8033F61C:
+/* 8033F61C 0033B27C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F620 0033B280 40 82 00 18 */ bne lbl_8033F638
+/* 8033F624 0033B284 38 60 00 00 */ li r3, 0
+/* 8033F628 0033B288 38 00 00 01 */ li r0, 1
+/* 8033F62C 0033B28C 90 7E 00 00 */ stw r3, 0(r30)
+/* 8033F630 0033B290 90 1D 00 00 */ stw r0, 0(r29)
+/* 8033F634 0033B294 48 00 00 10 */ b lbl_8033F644
+lbl_8033F638:
+/* 8033F638 0033B298 90 7E 00 00 */ stw r3, 0(r30)
+/* 8033F63C 0033B29C 38 00 00 00 */ li r0, 0
+/* 8033F640 0033B2A0 90 1D 00 00 */ stw r0, 0(r29)
+lbl_8033F644:
+/* 8033F644 0033B2A4 38 60 00 00 */ li r3, 0
+lbl_8033F648:
+/* 8033F648 0033B2A8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033F64C 0033B2AC 4B E8 7B 29 */ bl _restgpr_27
+/* 8033F650 0033B2B0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033F654 0033B2B4 7C 08 03 A6 */ mtlr r0
+/* 8033F658 0033B2B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033F65C 0033B2BC 4E 80 00 20 */ blr
+
+.global gpiSendOrBufferChar
+gpiSendOrBufferChar:
+/* 8033F660 0033B2C0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033F664 0033B2C4 7C 08 02 A6 */ mflr r0
+/* 8033F668 0033B2C8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033F66C 0033B2CC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033F670 0033B2D0 7C 9F 23 78 */ mr r31, r4
+/* 8033F674 0033B2D4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033F678 0033B2D8 7C 7E 1B 78 */ mr r30, r3
+/* 8033F67C 0033B2DC 98 A1 00 08 */ stb r5, 8(r1)
+/* 8033F680 0033B2E0 80 64 00 38 */ lwz r3, 0x38(r4)
+/* 8033F684 0033B2E4 80 04 00 34 */ lwz r0, 0x34(r4)
+/* 8033F688 0033B2E8 7C 03 00 51 */ subf. r0, r3, r0
+/* 8033F68C 0033B2EC 40 82 00 54 */ bne lbl_8033F6E0
+/* 8033F690 0033B2F0 80 64 00 3C */ lwz r3, 0x3c(r4)
+/* 8033F694 0033B2F4 4B FF 68 55 */ bl ArrayLength
+/* 8033F698 0033B2F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F69C 0033B2FC 40 82 00 44 */ bne lbl_8033F6E0
+/* 8033F6A0 0033B300 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8033F6A4 0033B304 7F C3 F3 78 */ mr r3, r30
+/* 8033F6A8 0033B308 38 A1 00 08 */ addi r5, r1, 8
+/* 8033F6AC 0033B30C 38 E1 00 10 */ addi r7, r1, 0x10
+/* 8033F6B0 0033B310 39 01 00 0C */ addi r8, r1, 0xc
+/* 8033F6B4 0033B314 38 C0 00 01 */ li r6, 1
+/* 8033F6B8 0033B318 39 2D 8F DC */ addi r9, r13, lbl_8063E29C-_SDA_BASE_
+/* 8033F6BC 0033B31C 4B FF FE A1 */ bl gpiSendData
+/* 8033F6C0 0033B320 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F6C4 0033B324 41 82 00 08 */ beq lbl_8033F6CC
+/* 8033F6C8 0033B328 48 00 00 2C */ b lbl_8033F6F4
+lbl_8033F6CC:
+/* 8033F6CC 0033B32C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8033F6D0 0033B330 2C 00 00 00 */ cmpwi r0, 0
+/* 8033F6D4 0033B334 41 82 00 0C */ beq lbl_8033F6E0
+/* 8033F6D8 0033B338 38 60 00 00 */ li r3, 0
+/* 8033F6DC 0033B33C 48 00 00 18 */ b lbl_8033F6F4
+lbl_8033F6E0:
+/* 8033F6E0 0033B340 88 01 00 08 */ lbz r0, 8(r1)
+/* 8033F6E4 0033B344 7F C3 F3 78 */ mr r3, r30
+/* 8033F6E8 0033B348 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 8033F6EC 0033B34C 7C 05 07 74 */ extsb r5, r0
+/* 8033F6F0 0033B350 4B FF FC 2D */ bl gpiAppendCharToBuffer
+lbl_8033F6F4:
+/* 8033F6F4 0033B354 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033F6F8 0033B358 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033F6FC 0033B35C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033F700 0033B360 7C 08 03 A6 */ mtlr r0
+/* 8033F704 0033B364 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033F708 0033B368 4E 80 00 20 */ blr
+
+.global gpiSendOrBufferStringLen
+gpiSendOrBufferStringLen:
+/* 8033F70C 0033B36C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033F710 0033B370 7C 08 02 A6 */ mflr r0
+/* 8033F714 0033B374 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033F718 0033B378 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033F71C 0033B37C 4B E8 7A 0D */ bl _savegpr_27
+/* 8033F720 0033B380 2C 06 00 00 */ cmpwi r6, 0
+/* 8033F724 0033B384 7C DE 33 78 */ mr r30, r6
+/* 8033F728 0033B388 7C 7B 1B 78 */ mr r27, r3
+/* 8033F72C 0033B38C 7C 9C 23 78 */ mr r28, r4
+/* 8033F730 0033B390 7C BD 2B 78 */ mr r29, r5
+/* 8033F734 0033B394 3B E0 00 00 */ li r31, 0
+/* 8033F738 0033B398 40 82 00 0C */ bne lbl_8033F744
+/* 8033F73C 0033B39C 38 60 00 00 */ li r3, 0
+/* 8033F740 0033B3A0 48 00 00 A0 */ b lbl_8033F7E0
+lbl_8033F744:
+/* 8033F744 0033B3A4 80 64 00 38 */ lwz r3, 0x38(r4)
+/* 8033F748 0033B3A8 80 04 00 34 */ lwz r0, 0x34(r4)
+/* 8033F74C 0033B3AC 7C 03 00 51 */ subf. r0, r3, r0
+/* 8033F750 0033B3B0 40 82 00 64 */ bne lbl_8033F7B4
+/* 8033F754 0033B3B4 80 64 00 3C */ lwz r3, 0x3c(r4)
+/* 8033F758 0033B3B8 4B FF 67 91 */ bl ArrayLength
+/* 8033F75C 0033B3BC 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F760 0033B3C0 40 82 00 54 */ bne lbl_8033F7B4
+lbl_8033F764:
+/* 8033F764 0033B3C4 80 9C 00 08 */ lwz r4, 8(r28)
+/* 8033F768 0033B3C8 7F 63 DB 78 */ mr r3, r27
+/* 8033F76C 0033B3CC 7F C6 F3 78 */ mr r6, r30
+/* 8033F770 0033B3D0 7C BD FA 14 */ add r5, r29, r31
+/* 8033F774 0033B3D4 38 E1 00 0C */ addi r7, r1, 0xc
+/* 8033F778 0033B3D8 39 01 00 08 */ addi r8, r1, 8
+/* 8033F77C 0033B3DC 39 2D 8F DC */ addi r9, r13, lbl_8063E29C-_SDA_BASE_
+/* 8033F780 0033B3E0 4B FF FD DD */ bl gpiSendData
+/* 8033F784 0033B3E4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F788 0033B3E8 41 82 00 08 */ beq lbl_8033F790
+/* 8033F78C 0033B3EC 48 00 00 54 */ b lbl_8033F7E0
+lbl_8033F790:
+/* 8033F790 0033B3F0 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033F794 0033B3F4 2C 00 00 00 */ cmpwi r0, 0
+/* 8033F798 0033B3F8 41 82 00 0C */ beq lbl_8033F7A4
+/* 8033F79C 0033B3FC 7F FF 02 14 */ add r31, r31, r0
+/* 8033F7A0 0033B400 7F C0 F0 50 */ subf r30, r0, r30
+lbl_8033F7A4:
+/* 8033F7A4 0033B404 2C 00 00 00 */ cmpwi r0, 0
+/* 8033F7A8 0033B408 41 82 00 0C */ beq lbl_8033F7B4
+/* 8033F7AC 0033B40C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8033F7B0 0033B410 40 82 FF B4 */ bne lbl_8033F764
+lbl_8033F7B4:
+/* 8033F7B4 0033B414 2C 1E 00 00 */ cmpwi r30, 0
+/* 8033F7B8 0033B418 41 82 00 24 */ beq lbl_8033F7DC
+/* 8033F7BC 0033B41C 7F 63 DB 78 */ mr r3, r27
+/* 8033F7C0 0033B420 7F C6 F3 78 */ mr r6, r30
+/* 8033F7C4 0033B424 38 9C 00 2C */ addi r4, r28, 0x2c
+/* 8033F7C8 0033B428 7C BD FA 14 */ add r5, r29, r31
+/* 8033F7CC 0033B42C 4B FF FB F9 */ bl gpiAppendStringToBufferLen
+/* 8033F7D0 0033B430 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F7D4 0033B434 41 82 00 08 */ beq lbl_8033F7DC
+/* 8033F7D8 0033B438 48 00 00 08 */ b lbl_8033F7E0
+lbl_8033F7DC:
+/* 8033F7DC 0033B43C 38 60 00 00 */ li r3, 0
+lbl_8033F7E0:
+/* 8033F7E0 0033B440 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033F7E4 0033B444 4B E8 79 91 */ bl _restgpr_27
+/* 8033F7E8 0033B448 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033F7EC 0033B44C 7C 08 03 A6 */ mtlr r0
+/* 8033F7F0 0033B450 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033F7F4 0033B454 4E 80 00 20 */ blr
+
+.global func_8033F7F8
+func_8033F7F8:
+/* 8033F7F8 0033B458 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033F7FC 0033B45C 7C 08 02 A6 */ mflr r0
+/* 8033F800 0033B460 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033F804 0033B464 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033F808 0033B468 7C BF 2B 78 */ mr r31, r5
+/* 8033F80C 0033B46C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033F810 0033B470 7C 9E 23 78 */ mr r30, r4
+/* 8033F814 0033B474 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8033F818 0033B478 7C 7D 1B 78 */ mr r29, r3
+/* 8033F81C 0033B47C 7F E3 FB 78 */ mr r3, r31
+/* 8033F820 0033B480 4B E8 73 45 */ bl strlen
+/* 8033F824 0033B484 7C 66 1B 78 */ mr r6, r3
+/* 8033F828 0033B488 7F A3 EB 78 */ mr r3, r29
+/* 8033F82C 0033B48C 7F C4 F3 78 */ mr r4, r30
+/* 8033F830 0033B490 7F E5 FB 78 */ mr r5, r31
+/* 8033F834 0033B494 4B FF FE D9 */ bl gpiSendOrBufferStringLen
+/* 8033F838 0033B498 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033F83C 0033B49C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033F840 0033B4A0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033F844 0033B4A4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8033F848 0033B4A8 7C 08 03 A6 */ mtlr r0
+/* 8033F84C 0033B4AC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033F850 0033B4B0 4E 80 00 20 */ blr
+
+.global gpiRecvToBuffer
+gpiRecvToBuffer:
+/* 8033F854 0033B4B4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8033F858 0033B4B8 7C 08 02 A6 */ mflr r0
+/* 8033F85C 0033B4BC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8033F860 0033B4C0 39 61 00 40 */ addi r11, r1, 0x40
+/* 8033F864 0033B4C4 4B E8 78 A5 */ bl _savegpr_19
+/* 8033F868 0033B4C8 83 85 00 00 */ lwz r28, 0(r5)
+/* 8033F86C 0033B4CC 7C 73 1B 78 */ mr r19, r3
+/* 8033F870 0033B4D0 83 65 00 08 */ lwz r27, 8(r5)
+/* 8033F874 0033B4D4 7C 94 23 78 */ mr r20, r4
+/* 8033F878 0033B4D8 83 45 00 04 */ lwz r26, 4(r5)
+/* 8033F87C 0033B4DC 7C B5 2B 78 */ mr r21, r5
+/* 8033F880 0033B4E0 7C D6 33 78 */ mr r22, r6
+/* 8033F884 0033B4E4 7C F7 3B 78 */ mr r23, r7
+/* 8033F888 0033B4E8 3B 20 00 00 */ li r25, 0
+/* 8033F88C 0033B4EC 3B 00 00 00 */ li r24, 0
+/* 8033F890 0033B4F0 3B C0 00 00 */ li r30, 0
+/* 8033F894 0033B4F4 3F E0 00 02 */ lis r31, 2
+lbl_8033F898:
+/* 8033F898 0033B4F8 38 9B 40 00 */ addi r4, r27, 0x4000
+/* 8033F89C 0033B4FC 7C 04 D0 00 */ cmpw r4, r26
+/* 8033F8A0 0033B500 40 81 00 38 */ ble lbl_8033F8D8
+/* 8033F8A4 0033B504 7C 9A 23 78 */ mr r26, r4
+/* 8033F8A8 0033B508 7F 83 E3 78 */ mr r3, r28
+/* 8033F8AC 0033B50C 38 84 00 01 */ addi r4, r4, 1
+/* 8033F8B0 0033B510 4B FF 9A 75 */ bl gsirealloc
+/* 8033F8B4 0033B514 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F8B8 0033B518 7C 7C 1B 78 */ mr r28, r3
+/* 8033F8BC 0033B51C 40 82 00 1C */ bne lbl_8033F8D8
+/* 8033F8C0 0033B520 3C 80 80 45 */ lis r4, lbl_8044A7A8@ha
+/* 8033F8C4 0033B524 7E 63 9B 78 */ mr r3, r19
+/* 8033F8C8 0033B528 38 84 A7 A8 */ addi r4, r4, lbl_8044A7A8@l
+/* 8033F8CC 0033B52C 48 00 8B 8D */ bl gpiSetErrorString
+/* 8033F8D0 0033B530 38 60 00 01 */ li r3, 1
+/* 8033F8D4 0033B534 48 00 00 A8 */ b lbl_8033F97C
+lbl_8033F8D8:
+/* 8033F8D8 0033B538 7E 83 A3 78 */ mr r3, r20
+/* 8033F8DC 0033B53C 7C 9C DA 14 */ add r4, r28, r27
+/* 8033F8E0 0033B540 7C BB D0 50 */ subf r5, r27, r26
+/* 8033F8E4 0033B544 38 C0 00 00 */ li r6, 0
+/* 8033F8E8 0033B548 4B FF 84 E9 */ bl recv
+/* 8033F8EC 0033B54C 2C 03 FF FF */ cmpwi r3, -1
+/* 8033F8F0 0033B550 7C 7D 1B 78 */ mr r29, r3
+/* 8033F8F4 0033B554 40 82 00 3C */ bne lbl_8033F930
+/* 8033F8F8 0033B558 7E 83 A3 78 */ mr r3, r20
+/* 8033F8FC 0033B55C 4B FF 86 AD */ bl GOAGetLastError
+/* 8033F900 0033B560 2C 03 FF FA */ cmpwi r3, -6
+/* 8033F904 0033B564 41 82 00 44 */ beq lbl_8033F948
+/* 8033F908 0033B568 2C 03 FF E6 */ cmpwi r3, -26
+/* 8033F90C 0033B56C 41 82 00 3C */ beq lbl_8033F948
+/* 8033F910 0033B570 2C 03 FF B4 */ cmpwi r3, -76
+/* 8033F914 0033B574 41 82 00 34 */ beq lbl_8033F948
+/* 8033F918 0033B578 3C 80 80 45 */ lis r4, lbl_8044A7E0@ha
+/* 8033F91C 0033B57C 7E 63 9B 78 */ mr r3, r19
+/* 8033F920 0033B580 38 84 A7 E0 */ addi r4, r4, lbl_8044A7E0@l
+/* 8033F924 0033B584 48 00 8B 35 */ bl gpiSetErrorString
+/* 8033F928 0033B588 38 60 00 03 */ li r3, 3
+/* 8033F92C 0033B58C 48 00 00 50 */ b lbl_8033F97C
+lbl_8033F930:
+/* 8033F930 0033B590 2C 03 00 00 */ cmpwi r3, 0
+/* 8033F934 0033B594 40 82 00 0C */ bne lbl_8033F940
+/* 8033F938 0033B598 3B 00 00 01 */ li r24, 1
+/* 8033F93C 0033B59C 48 00 00 0C */ b lbl_8033F948
+lbl_8033F940:
+/* 8033F940 0033B5A0 7F 7B 1A 14 */ add r27, r27, r3
+/* 8033F944 0033B5A4 7F 39 1A 14 */ add r25, r25, r3
+lbl_8033F948:
+/* 8033F948 0033B5A8 2C 1D 00 00 */ cmpwi r29, 0
+/* 8033F94C 0033B5AC 7F DC D9 AE */ stbx r30, r28, r27
+/* 8033F950 0033B5B0 41 80 00 14 */ blt lbl_8033F964
+/* 8033F954 0033B5B4 2C 18 00 00 */ cmpwi r24, 0
+/* 8033F958 0033B5B8 40 82 00 0C */ bne lbl_8033F964
+/* 8033F95C 0033B5BC 7C 19 F8 00 */ cmpw r25, r31
+/* 8033F960 0033B5C0 41 80 FF 38 */ blt lbl_8033F898
+lbl_8033F964:
+/* 8033F964 0033B5C4 93 95 00 00 */ stw r28, 0(r21)
+/* 8033F968 0033B5C8 38 60 00 00 */ li r3, 0
+/* 8033F96C 0033B5CC 93 75 00 08 */ stw r27, 8(r21)
+/* 8033F970 0033B5D0 93 55 00 04 */ stw r26, 4(r21)
+/* 8033F974 0033B5D4 93 36 00 00 */ stw r25, 0(r22)
+/* 8033F978 0033B5D8 93 17 00 00 */ stw r24, 0(r23)
+lbl_8033F97C:
+/* 8033F97C 0033B5DC 39 61 00 40 */ addi r11, r1, 0x40
+/* 8033F980 0033B5E0 4B E8 77 D5 */ bl _restgpr_19
+/* 8033F984 0033B5E4 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8033F988 0033B5E8 7C 08 03 A6 */ mtlr r0
+/* 8033F98C 0033B5EC 38 21 00 40 */ addi r1, r1, 0x40
+/* 8033F990 0033B5F0 4E 80 00 20 */ blr
+
+.global gpiSendFromBuffer
+gpiSendFromBuffer:
+/* 8033F994 0033B5F4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8033F998 0033B5F8 7C 08 02 A6 */ mflr r0
+/* 8033F99C 0033B5FC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8033F9A0 0033B600 39 61 00 40 */ addi r11, r1, 0x40
+/* 8033F9A4 0033B604 4B E8 77 6D */ bl _savegpr_21
+/* 8033F9A8 0033B608 83 65 00 08 */ lwz r27, 8(r5)
+/* 8033F9AC 0033B60C 7C 75 1B 78 */ mr r21, r3
+/* 8033F9B0 0033B610 83 85 00 0C */ lwz r28, 0xc(r5)
+/* 8033F9B4 0033B614 7C 96 23 78 */ mr r22, r4
+/* 8033F9B8 0033B618 83 A5 00 00 */ lwz r29, 0(r5)
+/* 8033F9BC 0033B61C 7C B7 2B 78 */ mr r23, r5
+/* 8033F9C0 0033B620 7F DC D8 51 */ subf. r30, r28, r27
+/* 8033F9C4 0033B624 7C D8 33 78 */ mr r24, r6
+/* 8033F9C8 0033B628 7C F9 3B 78 */ mr r25, r7
+/* 8033F9CC 0033B62C 7D 1A 43 78 */ mr r26, r8
+/* 8033F9D0 0033B630 3B E0 00 00 */ li r31, 0
+/* 8033F9D4 0033B634 40 82 00 0C */ bne lbl_8033F9E0
+/* 8033F9D8 0033B638 38 60 00 00 */ li r3, 0
+/* 8033F9DC 0033B63C 48 00 00 A0 */ b lbl_8033FA7C
+lbl_8033F9E0:
+/* 8033F9E0 0033B640 7C 1C FA 14 */ add r0, r28, r31
+/* 8033F9E4 0033B644 7E A3 AB 78 */ mr r3, r21
+/* 8033F9E8 0033B648 7E C4 B3 78 */ mr r4, r22
+/* 8033F9EC 0033B64C 7F C6 F3 78 */ mr r6, r30
+/* 8033F9F0 0033B650 7F 49 D3 78 */ mr r9, r26
+/* 8033F9F4 0033B654 7C BD 02 14 */ add r5, r29, r0
+/* 8033F9F8 0033B658 38 E1 00 0C */ addi r7, r1, 0xc
+/* 8033F9FC 0033B65C 39 01 00 08 */ addi r8, r1, 8
+/* 8033FA00 0033B660 4B FF FB 5D */ bl gpiSendData
+/* 8033FA04 0033B664 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FA08 0033B668 41 82 00 08 */ beq lbl_8033FA10
+/* 8033FA0C 0033B66C 48 00 00 70 */ b lbl_8033FA7C
+lbl_8033FA10:
+/* 8033FA10 0033B670 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033FA14 0033B674 2C 00 00 00 */ cmpwi r0, 0
+/* 8033FA18 0033B678 41 82 00 0C */ beq lbl_8033FA24
+/* 8033FA1C 0033B67C 7F FF 02 14 */ add r31, r31, r0
+/* 8033FA20 0033B680 7F C0 F0 50 */ subf r30, r0, r30
+lbl_8033FA24:
+/* 8033FA24 0033B684 2C 00 00 00 */ cmpwi r0, 0
+/* 8033FA28 0033B688 41 82 00 0C */ beq lbl_8033FA34
+/* 8033FA2C 0033B68C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8033FA30 0033B690 40 82 FF B0 */ bne lbl_8033F9E0
+lbl_8033FA34:
+/* 8033FA34 0033B694 2C 19 00 00 */ cmpwi r25, 0
+/* 8033FA38 0033B698 41 82 00 24 */ beq lbl_8033FA5C
+/* 8033FA3C 0033B69C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8033FA40 0033B6A0 40 81 00 20 */ ble lbl_8033FA60
+/* 8033FA44 0033B6A4 7F A3 EB 78 */ mr r3, r29
+/* 8033FA48 0033B6A8 7C 9D FA 14 */ add r4, r29, r31
+/* 8033FA4C 0033B6AC 38 BE 00 01 */ addi r5, r30, 1
+/* 8033FA50 0033B6B0 4B E8 A8 25 */ bl memmove
+/* 8033FA54 0033B6B4 7F 7F D8 50 */ subf r27, r31, r27
+/* 8033FA58 0033B6B8 48 00 00 08 */ b lbl_8033FA60
+lbl_8033FA5C:
+/* 8033FA5C 0033B6BC 7F 9C FA 14 */ add r28, r28, r31
+lbl_8033FA60:
+/* 8033FA60 0033B6C0 2C 18 00 00 */ cmpwi r24, 0
+/* 8033FA64 0033B6C4 93 77 00 08 */ stw r27, 8(r23)
+/* 8033FA68 0033B6C8 93 97 00 0C */ stw r28, 0xc(r23)
+/* 8033FA6C 0033B6CC 41 82 00 0C */ beq lbl_8033FA78
+/* 8033FA70 0033B6D0 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8033FA74 0033B6D4 90 18 00 00 */ stw r0, 0(r24)
+lbl_8033FA78:
+/* 8033FA78 0033B6D8 38 60 00 00 */ li r3, 0
+lbl_8033FA7C:
+/* 8033FA7C 0033B6DC 39 61 00 40 */ addi r11, r1, 0x40
+/* 8033FA80 0033B6E0 4B E8 76 DD */ bl _restgpr_21
+/* 8033FA84 0033B6E4 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8033FA88 0033B6E8 7C 08 03 A6 */ mtlr r0
+/* 8033FA8C 0033B6EC 38 21 00 40 */ addi r1, r1, 0x40
+/* 8033FA90 0033B6F0 4E 80 00 20 */ blr
+
+.global gpiReadMessageFromBuffer
+gpiReadMessageFromBuffer:
+/* 8033FA94 0033B6F4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033FA98 0033B6F8 7C 08 02 A6 */ mflr r0
+/* 8033FA9C 0033B6FC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033FAA0 0033B700 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033FAA4 0033B704 4B E8 76 81 */ bl _savegpr_26
+/* 8033FAA8 0033B708 3B A0 00 00 */ li r29, 0
+/* 8033FAAC 0033B70C 7C 9F 23 78 */ mr r31, r4
+/* 8033FAB0 0033B710 93 A5 00 00 */ stw r29, 0(r5)
+/* 8033FAB4 0033B714 7C BA 2B 78 */ mr r26, r5
+/* 8033FAB8 0033B718 7C DB 33 78 */ mr r27, r6
+/* 8033FABC 0033B71C 7C FC 3B 78 */ mr r28, r7
+/* 8033FAC0 0033B720 80 04 00 08 */ lwz r0, 8(r4)
+/* 8033FAC4 0033B724 2C 00 00 05 */ cmpwi r0, 5
+/* 8033FAC8 0033B728 40 80 00 0C */ bge lbl_8033FAD4
+/* 8033FACC 0033B72C 38 60 00 00 */ li r3, 0
+/* 8033FAD0 0033B730 48 00 01 00 */ b lbl_8033FBD0
+lbl_8033FAD4:
+/* 8033FAD4 0033B734 80 64 00 00 */ lwz r3, 0(r4)
+/* 8033FAD8 0033B738 38 80 00 0A */ li r4, 0xa
+/* 8033FADC 0033B73C 4B E8 EA CD */ bl strchr
+/* 8033FAE0 0033B740 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FAE4 0033B744 7C 7E 1B 78 */ mr r30, r3
+/* 8033FAE8 0033B748 41 82 00 E4 */ beq lbl_8033FBCC
+/* 8033FAEC 0033B74C 38 8D 8F E0 */ addi r4, r13, lbl_8063E2A0-_SDA_BASE_
+/* 8033FAF0 0033B750 38 A0 00 05 */ li r5, 5
+/* 8033FAF4 0033B754 38 63 FF FB */ addi r3, r3, -5
+/* 8033FAF8 0033B758 4B E8 EA 71 */ bl strncmp
+/* 8033FAFC 0033B75C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FB00 0033B760 41 82 00 0C */ beq lbl_8033FB0C
+/* 8033FB04 0033B764 38 60 00 03 */ li r3, 3
+/* 8033FB08 0033B768 48 00 00 C8 */ b lbl_8033FBD0
+lbl_8033FB0C:
+/* 8033FB0C 0033B76C 9B BE 00 00 */ stb r29, 0(r30)
+/* 8033FB10 0033B770 38 A1 00 08 */ addi r5, r1, 8
+/* 8033FB14 0033B774 38 8D 8F E8 */ addi r4, r13, lbl_8063E2A8-_SDA_BASE_
+/* 8033FB18 0033B778 38 C0 00 10 */ li r6, 0x10
+/* 8033FB1C 0033B77C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8033FB20 0033B780 48 00 85 6D */ bl gpiValueForKey
+/* 8033FB24 0033B784 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FB28 0033B788 40 82 00 0C */ bne lbl_8033FB34
+/* 8033FB2C 0033B78C 38 60 00 03 */ li r3, 3
+/* 8033FB30 0033B790 48 00 00 A0 */ b lbl_8033FBD0
+lbl_8033FB34:
+/* 8033FB34 0033B794 38 61 00 08 */ addi r3, r1, 8
+/* 8033FB38 0033B798 4B E9 0B D5 */ bl atoi
+/* 8033FB3C 0033B79C 90 7B 00 00 */ stw r3, 0(r27)
+/* 8033FB40 0033B7A0 38 A1 00 08 */ addi r5, r1, 8
+/* 8033FB44 0033B7A4 38 8D 8F EC */ addi r4, r13, lbl_8063E2AC-_SDA_BASE_
+/* 8033FB48 0033B7A8 38 C0 00 10 */ li r6, 0x10
+/* 8033FB4C 0033B7AC 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8033FB50 0033B7B0 48 00 85 3D */ bl gpiValueForKey
+/* 8033FB54 0033B7B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FB58 0033B7B8 40 82 00 0C */ bne lbl_8033FB64
+/* 8033FB5C 0033B7BC 38 60 00 03 */ li r3, 3
+/* 8033FB60 0033B7C0 48 00 00 70 */ b lbl_8033FBD0
+lbl_8033FB64:
+/* 8033FB64 0033B7C4 38 61 00 08 */ addi r3, r1, 8
+/* 8033FB68 0033B7C8 4B E9 0B A5 */ bl atoi
+/* 8033FB6C 0033B7CC 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8033FB70 0033B7D0 80 BF 00 08 */ lwz r5, 8(r31)
+/* 8033FB74 0033B7D4 7C 00 F0 50 */ subf r0, r0, r30
+/* 8033FB78 0033B7D8 7C 83 02 14 */ add r4, r3, r0
+/* 8033FB7C 0033B7DC 38 04 00 01 */ addi r0, r4, 1
+/* 8033FB80 0033B7E0 7C 05 00 00 */ cmpw r5, r0
+/* 8033FB84 0033B7E4 40 81 00 40 */ ble lbl_8033FBC4
+/* 8033FB88 0033B7E8 7C 83 F2 14 */ add r4, r3, r30
+/* 8033FB8C 0033B7EC 88 04 00 01 */ lbz r0, 1(r4)
+/* 8033FB90 0033B7F0 7C 00 07 75 */ extsb. r0, r0
+/* 8033FB94 0033B7F4 41 82 00 0C */ beq lbl_8033FBA0
+/* 8033FB98 0033B7F8 38 60 00 03 */ li r3, 3
+/* 8033FB9C 0033B7FC 48 00 00 34 */ b lbl_8033FBD0
+lbl_8033FBA0:
+/* 8033FBA0 0033B800 38 1E 00 01 */ addi r0, r30, 1
+/* 8033FBA4 0033B804 90 1A 00 00 */ stw r0, 0(r26)
+/* 8033FBA8 0033B808 90 7C 00 00 */ stw r3, 0(r28)
+/* 8033FBAC 0033B80C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8033FBB0 0033B810 7C 00 F0 50 */ subf r0, r0, r30
+/* 8033FBB4 0033B814 7C 63 02 14 */ add r3, r3, r0
+/* 8033FBB8 0033B818 38 03 00 02 */ addi r0, r3, 2
+/* 8033FBBC 0033B81C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8033FBC0 0033B820 48 00 00 0C */ b lbl_8033FBCC
+lbl_8033FBC4:
+/* 8033FBC4 0033B824 38 00 00 0A */ li r0, 0xa
+/* 8033FBC8 0033B828 98 1E 00 00 */ stb r0, 0(r30)
+lbl_8033FBCC:
+/* 8033FBCC 0033B82C 38 60 00 00 */ li r3, 0
+lbl_8033FBD0:
+/* 8033FBD0 0033B830 39 61 00 30 */ addi r11, r1, 0x30
+/* 8033FBD4 0033B834 4B E8 75 9D */ bl _restgpr_26
+/* 8033FBD8 0033B838 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033FBDC 0033B83C 7C 08 03 A6 */ mtlr r0
+/* 8033FBE0 0033B840 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033FBE4 0033B844 4E 80 00 20 */ blr
+
+.global gpiClipBufferToPosition
+gpiClipBufferToPosition:
+/* 8033FBE8 0033B848 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033FBEC 0033B84C 7C 08 02 A6 */ mflr r0
+/* 8033FBF0 0033B850 2C 04 00 00 */ cmpwi r4, 0
+/* 8033FBF4 0033B854 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033FBF8 0033B858 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8033FBFC 0033B85C 7C 9F 23 78 */ mr r31, r4
+/* 8033FC00 0033B860 41 82 00 1C */ beq lbl_8033FC1C
+/* 8033FC04 0033B864 80 64 00 00 */ lwz r3, 0(r4)
+/* 8033FC08 0033B868 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FC0C 0033B86C 41 82 00 10 */ beq lbl_8033FC1C
+/* 8033FC10 0033B870 80 C4 00 0C */ lwz r6, 0xc(r4)
+/* 8033FC14 0033B874 2C 06 00 00 */ cmpwi r6, 0
+/* 8033FC18 0033B878 40 82 00 0C */ bne lbl_8033FC24
+lbl_8033FC1C:
+/* 8033FC1C 0033B87C 38 60 00 00 */ li r3, 0
+/* 8033FC20 0033B880 48 00 00 34 */ b lbl_8033FC54
+lbl_8033FC24:
+/* 8033FC24 0033B884 80 04 00 08 */ lwz r0, 8(r4)
+/* 8033FC28 0033B888 7C A6 00 51 */ subf. r5, r6, r0
+/* 8033FC2C 0033B88C 90 A4 00 08 */ stw r5, 8(r4)
+/* 8033FC30 0033B890 41 82 00 0C */ beq lbl_8033FC3C
+/* 8033FC34 0033B894 7C 83 32 14 */ add r4, r3, r6
+/* 8033FC38 0033B898 4B E8 A6 3D */ bl memmove
+lbl_8033FC3C:
+/* 8033FC3C 0033B89C 80 9F 00 00 */ lwz r4, 0(r31)
+/* 8033FC40 0033B8A0 38 A0 00 00 */ li r5, 0
+/* 8033FC44 0033B8A4 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8033FC48 0033B8A8 38 60 00 00 */ li r3, 0
+/* 8033FC4C 0033B8AC 7C A4 01 AE */ stbx r5, r4, r0
+/* 8033FC50 0033B8B0 90 BF 00 0C */ stw r5, 0xc(r31)
+lbl_8033FC54:
+/* 8033FC54 0033B8B4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033FC58 0033B8B8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8033FC5C 0033B8BC 7C 08 03 A6 */ mtlr r0
+/* 8033FC60 0033B8C0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033FC64 0033B8C4 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiCallback.s b/asm/SDK/DWC/gamespy/gpiCallback.s new file mode 100644 index 0000000..d7c0c59 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiCallback.s @@ -0,0 +1,354 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiCallErrorCallback
+gpiCallErrorCallback:
+/* 8033FC68 0033B8C8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8033FC6C 0033B8CC 7C 08 02 A6 */ mflr r0
+/* 8033FC70 0033B8D0 2C 05 00 01 */ cmpwi r5, 1
+/* 8033FC74 0033B8D4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8033FC78 0033B8D8 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8033FC7C 0033B8DC 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8033FC80 0033B8E0 7C BE 2B 78 */ mr r30, r5
+/* 8033FC84 0033B8E4 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8033FC88 0033B8E8 7C 9D 23 78 */ mr r29, r4
+/* 8033FC8C 0033B8EC 93 81 00 20 */ stw r28, 0x20(r1)
+/* 8033FC90 0033B8F0 7C 7C 1B 78 */ mr r28, r3
+/* 8033FC94 0033B8F4 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8033FC98 0033B8F8 40 82 00 0C */ bne lbl_8033FCA4
+/* 8033FC9C 0033B8FC 38 00 00 01 */ li r0, 1
+/* 8033FCA0 0033B900 90 1F 04 38 */ stw r0, 0x438(r31)
+lbl_8033FCA4:
+/* 8033FCA4 0033B904 80 7F 01 A8 */ lwz r3, 0x1a8(r31)
+/* 8033FCA8 0033B908 80 1F 01 AC */ lwz r0, 0x1ac(r31)
+/* 8033FCAC 0033B90C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FCB0 0033B910 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8033FCB4 0033B914 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033FCB8 0033B918 41 82 00 50 */ beq lbl_8033FD08
+/* 8033FCBC 0033B91C 38 60 00 10 */ li r3, 0x10
+/* 8033FCC0 0033B920 4B FF 96 55 */ bl gsimalloc
+/* 8033FCC4 0033B924 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FCC8 0033B928 7C 65 1B 78 */ mr r5, r3
+/* 8033FCCC 0033B92C 41 82 00 18 */ beq lbl_8033FCE4
+/* 8033FCD0 0033B930 93 A3 00 00 */ stw r29, 0(r3)
+/* 8033FCD4 0033B934 93 C3 00 0C */ stw r30, 0xc(r3)
+/* 8033FCD8 0033B938 80 1F 04 34 */ lwz r0, 0x434(r31)
+/* 8033FCDC 0033B93C 90 03 00 04 */ stw r0, 4(r3)
+/* 8033FCE0 0033B940 93 E3 00 08 */ stw r31, 8(r3)
+lbl_8033FCE4:
+/* 8033FCE4 0033B944 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 8033FCE8 0033B948 7F 83 E3 78 */ mr r3, r28
+/* 8033FCEC 0033B94C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033FCF0 0033B950 38 C0 00 00 */ li r6, 0
+/* 8033FCF4 0033B954 90 81 00 08 */ stw r4, 8(r1)
+/* 8033FCF8 0033B958 38 81 00 08 */ addi r4, r1, 8
+/* 8033FCFC 0033B95C 38 E0 00 01 */ li r7, 1
+/* 8033FD00 0033B960 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8033FD04 0033B964 48 00 00 25 */ bl gpiAddCallback
+lbl_8033FD08:
+/* 8033FD08 0033B968 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8033FD0C 0033B96C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8033FD10 0033B970 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8033FD14 0033B974 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8033FD18 0033B978 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 8033FD1C 0033B97C 7C 08 03 A6 */ mtlr r0
+/* 8033FD20 0033B980 38 21 00 30 */ addi r1, r1, 0x30
+/* 8033FD24 0033B984 4E 80 00 20 */ blr
+
+.global gpiAddCallback
+gpiAddCallback:
+/* 8033FD28 0033B988 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033FD2C 0033B98C 7C 08 02 A6 */ mflr r0
+/* 8033FD30 0033B990 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033FD34 0033B994 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033FD38 0033B998 4B E8 73 ED */ bl _savegpr_26
+/* 8033FD3C 0033B99C 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8033FD40 0033B9A0 7C 7A 1B 78 */ mr r26, r3
+/* 8033FD44 0033B9A4 7C 9B 23 78 */ mr r27, r4
+/* 8033FD48 0033B9A8 7C BC 2B 78 */ mr r28, r5
+/* 8033FD4C 0033B9AC 7C DD 33 78 */ mr r29, r6
+/* 8033FD50 0033B9B0 7C FE 3B 78 */ mr r30, r7
+/* 8033FD54 0033B9B4 38 60 00 18 */ li r3, 0x18
+/* 8033FD58 0033B9B8 4B FF 95 BD */ bl gsimalloc
+/* 8033FD5C 0033B9BC 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FD60 0033B9C0 40 82 00 1C */ bne lbl_8033FD7C
+/* 8033FD64 0033B9C4 3C 80 80 45 */ lis r4, lbl_8044A810@ha
+/* 8033FD68 0033B9C8 7F 43 D3 78 */ mr r3, r26
+/* 8033FD6C 0033B9CC 38 84 A8 10 */ addi r4, r4, lbl_8044A810@l
+/* 8033FD70 0033B9D0 48 00 86 E9 */ bl gpiSetErrorString
+/* 8033FD74 0033B9D4 38 60 00 01 */ li r3, 1
+/* 8033FD78 0033B9D8 48 00 00 68 */ b lbl_8033FDE0
+lbl_8033FD7C:
+/* 8033FD7C 0033B9DC 80 9B 00 00 */ lwz r4, 0(r27)
+/* 8033FD80 0033B9E0 2C 1D 00 00 */ cmpwi r29, 0
+/* 8033FD84 0033B9E4 80 1B 00 04 */ lwz r0, 4(r27)
+/* 8033FD88 0033B9E8 90 83 00 00 */ stw r4, 0(r3)
+/* 8033FD8C 0033B9EC 90 03 00 04 */ stw r0, 4(r3)
+/* 8033FD90 0033B9F0 93 83 00 08 */ stw r28, 8(r3)
+/* 8033FD94 0033B9F4 41 82 00 10 */ beq lbl_8033FDA4
+/* 8033FD98 0033B9F8 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 8033FD9C 0033B9FC 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8033FDA0 0033BA00 48 00 00 0C */ b lbl_8033FDAC
+lbl_8033FDA4:
+/* 8033FDA4 0033BA04 38 00 00 00 */ li r0, 0
+/* 8033FDA8 0033BA08 90 03 00 10 */ stw r0, 0x10(r3)
+lbl_8033FDAC:
+/* 8033FDAC 0033BA0C 93 C3 00 0C */ stw r30, 0xc(r3)
+/* 8033FDB0 0033BA10 38 00 00 00 */ li r0, 0
+/* 8033FDB4 0033BA14 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8033FDB8 0033BA18 80 1F 04 54 */ lwz r0, 0x454(r31)
+/* 8033FDBC 0033BA1C 2C 00 00 00 */ cmpwi r0, 0
+/* 8033FDC0 0033BA20 40 82 00 08 */ bne lbl_8033FDC8
+/* 8033FDC4 0033BA24 90 7F 04 54 */ stw r3, 0x454(r31)
+lbl_8033FDC8:
+/* 8033FDC8 0033BA28 80 9F 04 58 */ lwz r4, 0x458(r31)
+/* 8033FDCC 0033BA2C 2C 04 00 00 */ cmpwi r4, 0
+/* 8033FDD0 0033BA30 41 82 00 08 */ beq lbl_8033FDD8
+/* 8033FDD4 0033BA34 90 64 00 14 */ stw r3, 0x14(r4)
+lbl_8033FDD8:
+/* 8033FDD8 0033BA38 90 7F 04 58 */ stw r3, 0x458(r31)
+/* 8033FDDC 0033BA3C 38 60 00 00 */ li r3, 0
+lbl_8033FDE0:
+/* 8033FDE0 0033BA40 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033FDE4 0033BA44 4B E8 73 8D */ bl _restgpr_26
+/* 8033FDE8 0033BA48 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033FDEC 0033BA4C 7C 08 03 A6 */ mtlr r0
+/* 8033FDF0 0033BA50 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033FDF4 0033BA54 4E 80 00 20 */ blr
+
+.global gpiCallCallback
+gpiCallCallback:
+/* 8033FDF8 0033BA58 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033FDFC 0033BA5C 7C 08 02 A6 */ mflr r0
+/* 8033FE00 0033BA60 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033FE04 0033BA64 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033FE08 0033BA68 4B E8 73 21 */ bl _savegpr_27
+/* 8033FE0C 0033BA6C 81 84 00 00 */ lwz r12, 0(r4)
+/* 8033FE10 0033BA70 7C 9F 23 78 */ mr r31, r4
+/* 8033FE14 0033BA74 7C 7B 1B 78 */ mr r27, r3
+/* 8033FE18 0033BA78 80 84 00 08 */ lwz r4, 8(r4)
+/* 8033FE1C 0033BA7C 80 BF 00 04 */ lwz r5, 4(r31)
+/* 8033FE20 0033BA80 7D 89 03 A6 */ mtctr r12
+/* 8033FE24 0033BA84 4E 80 04 21 */ bctrl
+/* 8033FE28 0033BA88 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8033FE2C 0033BA8C 2C 00 00 02 */ cmpwi r0, 2
+/* 8033FE30 0033BA90 40 82 00 20 */ bne lbl_8033FE50
+/* 8033FE34 0033BA94 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8033FE38 0033BA98 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033FE3C 0033BA9C 4B FF 94 FD */ bl gsifree
+/* 8033FE40 0033BAA0 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8033FE44 0033BAA4 38 00 00 00 */ li r0, 0
+/* 8033FE48 0033BAA8 90 03 00 08 */ stw r0, 8(r3)
+/* 8033FE4C 0033BAAC 48 00 01 84 */ b lbl_8033FFD0
+lbl_8033FE50:
+/* 8033FE50 0033BAB0 2C 00 00 0B */ cmpwi r0, 0xb
+/* 8033FE54 0033BAB4 40 82 00 20 */ bne lbl_8033FE74
+/* 8033FE58 0033BAB8 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8033FE5C 0033BABC 80 63 00 08 */ lwz r3, 8(r3)
+/* 8033FE60 0033BAC0 4B FF 94 D9 */ bl gsifree
+/* 8033FE64 0033BAC4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8033FE68 0033BAC8 38 00 00 00 */ li r0, 0
+/* 8033FE6C 0033BACC 90 03 00 08 */ stw r0, 8(r3)
+/* 8033FE70 0033BAD0 48 00 01 60 */ b lbl_8033FFD0
+lbl_8033FE74:
+/* 8033FE74 0033BAD4 2C 00 00 03 */ cmpwi r0, 3
+/* 8033FE78 0033BAD8 40 82 00 74 */ bne lbl_8033FEEC
+/* 8033FE7C 0033BADC 83 7F 00 08 */ lwz r27, 8(r31)
+/* 8033FE80 0033BAE0 3B 80 00 00 */ li r28, 0
+/* 8033FE84 0033BAE4 3B A0 00 00 */ li r29, 0
+/* 8033FE88 0033BAE8 3B C0 00 00 */ li r30, 0
+/* 8033FE8C 0033BAEC 48 00 00 34 */ b lbl_8033FEC0
+lbl_8033FE90:
+/* 8033FE90 0033BAF0 80 7B 00 3C */ lwz r3, 0x3c(r27)
+/* 8033FE94 0033BAF4 7C 63 E8 2E */ lwzx r3, r3, r29
+/* 8033FE98 0033BAF8 4B FF 94 A1 */ bl gsifree
+/* 8033FE9C 0033BAFC 80 7B 00 3C */ lwz r3, 0x3c(r27)
+/* 8033FEA0 0033BB00 7F C3 E9 2E */ stwx r30, r3, r29
+/* 8033FEA4 0033BB04 80 7B 00 40 */ lwz r3, 0x40(r27)
+/* 8033FEA8 0033BB08 7C 63 E8 2E */ lwzx r3, r3, r29
+/* 8033FEAC 0033BB0C 4B FF 94 8D */ bl gsifree
+/* 8033FEB0 0033BB10 80 7B 00 40 */ lwz r3, 0x40(r27)
+/* 8033FEB4 0033BB14 3B 9C 00 01 */ addi r28, r28, 1
+/* 8033FEB8 0033BB18 7F C3 E9 2E */ stwx r30, r3, r29
+/* 8033FEBC 0033BB1C 3B BD 00 04 */ addi r29, r29, 4
+lbl_8033FEC0:
+/* 8033FEC0 0033BB20 80 1B 00 38 */ lwz r0, 0x38(r27)
+/* 8033FEC4 0033BB24 7C 1C 00 00 */ cmpw r28, r0
+/* 8033FEC8 0033BB28 41 80 FF C8 */ blt lbl_8033FE90
+/* 8033FECC 0033BB2C 80 7B 00 3C */ lwz r3, 0x3c(r27)
+/* 8033FED0 0033BB30 4B FF 94 69 */ bl gsifree
+/* 8033FED4 0033BB34 3B C0 00 00 */ li r30, 0
+/* 8033FED8 0033BB38 93 DB 00 3C */ stw r30, 0x3c(r27)
+/* 8033FEDC 0033BB3C 80 7B 00 40 */ lwz r3, 0x40(r27)
+/* 8033FEE0 0033BB40 4B FF 94 59 */ bl gsifree
+/* 8033FEE4 0033BB44 93 DB 00 40 */ stw r30, 0x40(r27)
+/* 8033FEE8 0033BB48 48 00 00 E8 */ b lbl_8033FFD0
+lbl_8033FEEC:
+/* 8033FEEC 0033BB4C 2C 00 00 04 */ cmpwi r0, 4
+/* 8033FEF0 0033BB50 40 82 00 1C */ bne lbl_8033FF0C
+/* 8033FEF4 0033BB54 83 7F 00 08 */ lwz r27, 8(r31)
+/* 8033FEF8 0033BB58 80 7B 00 0C */ lwz r3, 0xc(r27)
+/* 8033FEFC 0033BB5C 4B FF 94 3D */ bl gsifree
+/* 8033FF00 0033BB60 38 00 00 00 */ li r0, 0
+/* 8033FF04 0033BB64 90 1B 00 0C */ stw r0, 0xc(r27)
+/* 8033FF08 0033BB68 48 00 00 C8 */ b lbl_8033FFD0
+lbl_8033FF0C:
+/* 8033FF0C 0033BB6C 2C 00 00 07 */ cmpwi r0, 7
+/* 8033FF10 0033BB70 40 82 00 24 */ bne lbl_8033FF34
+/* 8033FF14 0033BB74 83 7F 00 08 */ lwz r27, 8(r31)
+/* 8033FF18 0033BB78 80 7B 00 10 */ lwz r3, 0x10(r27)
+/* 8033FF1C 0033BB7C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FF20 0033BB80 41 82 00 B0 */ beq lbl_8033FFD0
+/* 8033FF24 0033BB84 4B FF 94 15 */ bl gsifree
+/* 8033FF28 0033BB88 38 00 00 00 */ li r0, 0
+/* 8033FF2C 0033BB8C 90 1B 00 10 */ stw r0, 0x10(r27)
+/* 8033FF30 0033BB90 48 00 00 A0 */ b lbl_8033FFD0
+lbl_8033FF34:
+/* 8033FF34 0033BB94 2C 00 00 08 */ cmpwi r0, 8
+/* 8033FF38 0033BB98 40 82 00 24 */ bne lbl_8033FF5C
+/* 8033FF3C 0033BB9C 83 7F 00 08 */ lwz r27, 8(r31)
+/* 8033FF40 0033BBA0 80 7B 00 08 */ lwz r3, 8(r27)
+/* 8033FF44 0033BBA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033FF48 0033BBA8 41 82 00 88 */ beq lbl_8033FFD0
+/* 8033FF4C 0033BBAC 4B FF 93 ED */ bl gsifree
+/* 8033FF50 0033BBB0 38 00 00 00 */ li r0, 0
+/* 8033FF54 0033BBB4 90 1B 00 08 */ stw r0, 8(r27)
+/* 8033FF58 0033BBB8 48 00 00 78 */ b lbl_8033FFD0
+lbl_8033FF5C:
+/* 8033FF5C 0033BBBC 2C 00 00 09 */ cmpwi r0, 9
+/* 8033FF60 0033BBC0 40 82 00 54 */ bne lbl_8033FFB4
+/* 8033FF64 0033BBC4 83 9F 00 08 */ lwz r28, 8(r31)
+/* 8033FF68 0033BBC8 3B 60 00 00 */ li r27, 0
+/* 8033FF6C 0033BBCC 3B A0 00 00 */ li r29, 0
+/* 8033FF70 0033BBD0 3B C0 00 00 */ li r30, 0
+/* 8033FF74 0033BBD4 48 00 00 20 */ b lbl_8033FF94
+lbl_8033FF78:
+/* 8033FF78 0033BBD8 80 7C 00 08 */ lwz r3, 8(r28)
+/* 8033FF7C 0033BBDC 7C 63 E8 2E */ lwzx r3, r3, r29
+/* 8033FF80 0033BBE0 4B FF 93 B9 */ bl gsifree
+/* 8033FF84 0033BBE4 80 7C 00 08 */ lwz r3, 8(r28)
+/* 8033FF88 0033BBE8 3B 7B 00 01 */ addi r27, r27, 1
+/* 8033FF8C 0033BBEC 7F C3 E9 2E */ stwx r30, r3, r29
+/* 8033FF90 0033BBF0 3B BD 00 04 */ addi r29, r29, 4
+lbl_8033FF94:
+/* 8033FF94 0033BBF4 80 1C 00 04 */ lwz r0, 4(r28)
+/* 8033FF98 0033BBF8 7C 1B 00 00 */ cmpw r27, r0
+/* 8033FF9C 0033BBFC 41 80 FF DC */ blt lbl_8033FF78
+/* 8033FFA0 0033BC00 80 7C 00 08 */ lwz r3, 8(r28)
+/* 8033FFA4 0033BC04 4B FF 93 95 */ bl gsifree
+/* 8033FFA8 0033BC08 38 00 00 00 */ li r0, 0
+/* 8033FFAC 0033BC0C 90 1C 00 08 */ stw r0, 8(r28)
+/* 8033FFB0 0033BC10 48 00 00 20 */ b lbl_8033FFD0
+lbl_8033FFB4:
+/* 8033FFB4 0033BC14 2C 00 00 0C */ cmpwi r0, 0xc
+/* 8033FFB8 0033BC18 40 82 00 18 */ bne lbl_8033FFD0
+/* 8033FFBC 0033BC1C 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8033FFC0 0033BC20 7F 63 DB 78 */ mr r3, r27
+/* 8033FFC4 0033BC24 38 A0 00 00 */ li r5, 0
+/* 8033FFC8 0033BC28 80 84 00 00 */ lwz r4, 0(r4)
+/* 8033FFCC 0033BC2C 4B FF F1 D5 */ bl gpiDeleteBuddy
+lbl_8033FFD0:
+/* 8033FFD0 0033BC30 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8033FFD4 0033BC34 4B FF 93 65 */ bl gsifree
+/* 8033FFD8 0033BC38 38 00 00 00 */ li r0, 0
+/* 8033FFDC 0033BC3C 7F E3 FB 78 */ mr r3, r31
+/* 8033FFE0 0033BC40 90 1F 00 08 */ stw r0, 8(r31)
+/* 8033FFE4 0033BC44 4B FF 93 55 */ bl gsifree
+/* 8033FFE8 0033BC48 39 61 00 20 */ addi r11, r1, 0x20
+/* 8033FFEC 0033BC4C 4B E8 71 89 */ bl _restgpr_27
+/* 8033FFF0 0033BC50 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033FFF4 0033BC54 7C 08 03 A6 */ mtlr r0
+/* 8033FFF8 0033BC58 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033FFFC 0033BC5C 4E 80 00 20 */ blr
+
+.global gpiProcessCallbacks
+gpiProcessCallbacks:
+/* 80340000 0033BC60 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80340004 0033BC64 7C 08 02 A6 */ mflr r0
+/* 80340008 0033BC68 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034000C 0033BC6C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80340010 0033BC70 4B E8 71 11 */ bl _savegpr_25
+/* 80340014 0033BC74 2C 04 00 00 */ cmpwi r4, 0
+/* 80340018 0033BC78 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8034001C 0033BC7C 7C 79 1B 78 */ mr r25, r3
+/* 80340020 0033BC80 7C 9A 23 78 */ mr r26, r4
+/* 80340024 0033BC84 41 82 00 A8 */ beq lbl_803400CC
+/* 80340028 0033BC88 83 BE 04 54 */ lwz r29, 0x454(r30)
+/* 8034002C 0033BC8C 38 00 00 00 */ li r0, 0
+/* 80340030 0033BC90 83 9E 04 58 */ lwz r28, 0x458(r30)
+/* 80340034 0033BC94 3B 60 00 00 */ li r27, 0
+/* 80340038 0033BC98 7F A4 EB 78 */ mr r4, r29
+/* 8034003C 0033BC9C 90 1E 04 54 */ stw r0, 0x454(r30)
+/* 80340040 0033BCA0 90 1E 04 58 */ stw r0, 0x458(r30)
+/* 80340044 0033BCA4 48 00 00 54 */ b lbl_80340098
+lbl_80340048:
+/* 80340048 0033BCA8 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 8034004C 0033BCAC 83 E4 00 14 */ lwz r31, 0x14(r4)
+/* 80340050 0033BCB0 7C 00 D0 00 */ cmpw r0, r26
+/* 80340054 0033BCB4 41 82 00 10 */ beq lbl_80340064
+/* 80340058 0033BCB8 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 8034005C 0033BCBC 2C 00 00 01 */ cmpwi r0, 1
+/* 80340060 0033BCC0 40 82 00 30 */ bne lbl_80340090
+lbl_80340064:
+/* 80340064 0033BCC4 2C 1B 00 00 */ cmpwi r27, 0
+/* 80340068 0033BCC8 41 82 00 0C */ beq lbl_80340074
+/* 8034006C 0033BCCC 93 FB 00 14 */ stw r31, 0x14(r27)
+/* 80340070 0033BCD0 48 00 00 08 */ b lbl_80340078
+lbl_80340074:
+/* 80340074 0033BCD4 7F FD FB 78 */ mr r29, r31
+lbl_80340078:
+/* 80340078 0033BCD8 7C 1C 20 40 */ cmplw r28, r4
+/* 8034007C 0033BCDC 40 82 00 08 */ bne lbl_80340084
+/* 80340080 0033BCE0 7F 7C DB 78 */ mr r28, r27
+lbl_80340084:
+/* 80340084 0033BCE4 7F 23 CB 78 */ mr r3, r25
+/* 80340088 0033BCE8 4B FF FD 71 */ bl gpiCallCallback
+/* 8034008C 0033BCEC 48 00 00 08 */ b lbl_80340094
+lbl_80340090:
+/* 80340090 0033BCF0 7C 9B 23 78 */ mr r27, r4
+lbl_80340094:
+/* 80340094 0033BCF4 7F E4 FB 78 */ mr r4, r31
+lbl_80340098:
+/* 80340098 0033BCF8 2C 04 00 00 */ cmpwi r4, 0
+/* 8034009C 0033BCFC 40 82 FF AC */ bne lbl_80340048
+/* 803400A0 0033BD00 80 1E 04 54 */ lwz r0, 0x454(r30)
+/* 803400A4 0033BD04 2C 00 00 00 */ cmpwi r0, 0
+/* 803400A8 0033BD08 41 82 00 14 */ beq lbl_803400BC
+/* 803400AC 0033BD0C 80 7E 04 58 */ lwz r3, 0x458(r30)
+/* 803400B0 0033BD10 93 A3 00 14 */ stw r29, 0x14(r3)
+/* 803400B4 0033BD14 93 9E 04 58 */ stw r28, 0x458(r30)
+/* 803400B8 0033BD18 48 00 00 0C */ b lbl_803400C4
+lbl_803400BC:
+/* 803400BC 0033BD1C 93 BE 04 54 */ stw r29, 0x454(r30)
+/* 803400C0 0033BD20 93 9E 04 58 */ stw r28, 0x458(r30)
+lbl_803400C4:
+/* 803400C4 0033BD24 38 60 00 00 */ li r3, 0
+/* 803400C8 0033BD28 48 00 00 40 */ b lbl_80340108
+lbl_803400CC:
+/* 803400CC 0033BD2C 3B E0 00 00 */ li r31, 0
+/* 803400D0 0033BD30 48 00 00 28 */ b lbl_803400F8
+lbl_803400D4:
+/* 803400D4 0033BD34 93 FE 04 54 */ stw r31, 0x454(r30)
+/* 803400D8 0033BD38 93 FE 04 58 */ stw r31, 0x458(r30)
+/* 803400DC 0033BD3C 48 00 00 14 */ b lbl_803400F0
+lbl_803400E0:
+/* 803400E0 0033BD40 83 84 00 14 */ lwz r28, 0x14(r4)
+/* 803400E4 0033BD44 7F 23 CB 78 */ mr r3, r25
+/* 803400E8 0033BD48 4B FF FD 11 */ bl gpiCallCallback
+/* 803400EC 0033BD4C 7F 84 E3 78 */ mr r4, r28
+lbl_803400F0:
+/* 803400F0 0033BD50 2C 04 00 00 */ cmpwi r4, 0
+/* 803400F4 0033BD54 40 82 FF EC */ bne lbl_803400E0
+lbl_803400F8:
+/* 803400F8 0033BD58 80 9E 04 54 */ lwz r4, 0x454(r30)
+/* 803400FC 0033BD5C 2C 04 00 00 */ cmpwi r4, 0
+/* 80340100 0033BD60 40 82 FF D4 */ bne lbl_803400D4
+/* 80340104 0033BD64 38 60 00 00 */ li r3, 0
+lbl_80340108:
+/* 80340108 0033BD68 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034010C 0033BD6C 4B E8 70 61 */ bl _restgpr_25
+/* 80340110 0033BD70 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80340114 0033BD74 7C 08 03 A6 */ mtlr r0
+/* 80340118 0033BD78 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034011C 0033BD7C 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiConnect.s b/asm/SDK/DWC/gamespy/gpiConnect.s new file mode 100644 index 0000000..9d06f20 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiConnect.s @@ -0,0 +1,1511 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiStartConnect
+gpiStartConnect:
+/* 80340120 0033BD80 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80340124 0033BD84 7C 08 02 A6 */ mflr r0
+/* 80340128 0033BD88 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034012C 0033BD8C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80340130 0033BD90 3F E0 80 45 */ lis r31, lbl_8044A820@ha
+/* 80340134 0033BD94 3B FF A8 20 */ addi r31, r31, lbl_8044A820@l
+/* 80340138 0033BD98 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8034013C 0033BD9C 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80340140 0033BDA0 7C 9D 23 78 */ mr r29, r4
+/* 80340144 0033BDA4 93 81 00 20 */ stw r28, 0x20(r1)
+/* 80340148 0033BDA8 7C 7C 1B 78 */ mr r28, r3
+/* 8034014C 0033BDAC 83 C3 00 00 */ lwz r30, 0(r3)
+/* 80340150 0033BDB0 80 1E 01 0C */ lwz r0, 0x10c(r30)
+/* 80340154 0033BDB4 2C 00 00 00 */ cmpwi r0, 0
+/* 80340158 0033BDB8 40 82 01 68 */ bne lbl_803402C0
+/* 8034015C 0033BDBC 38 60 00 02 */ li r3, 2
+/* 80340160 0033BDC0 38 80 00 01 */ li r4, 1
+/* 80340164 0033BDC4 38 A0 00 00 */ li r5, 0
+/* 80340168 0033BDC8 4B FF 7A 5D */ bl socket
+/* 8034016C 0033BDCC 2C 03 FF FF */ cmpwi r3, -1
+/* 80340170 0033BDD0 90 7E 02 20 */ stw r3, 0x220(r30)
+/* 80340174 0033BDD4 40 82 00 2C */ bne lbl_803401A0
+/* 80340178 0033BDD8 7F 83 E3 78 */ mr r3, r28
+/* 8034017C 0033BDDC 38 BF 00 40 */ addi r5, r31, 0x40
+/* 80340180 0033BDE0 38 80 00 05 */ li r4, 5
+/* 80340184 0033BDE4 48 00 82 85 */ bl gpiSetError
+/* 80340188 0033BDE8 7F 83 E3 78 */ mr r3, r28
+/* 8034018C 0033BDEC 38 80 00 03 */ li r4, 3
+/* 80340190 0033BDF0 38 A0 00 01 */ li r5, 1
+/* 80340194 0033BDF4 4B FF FA D5 */ bl gpiCallErrorCallback
+/* 80340198 0033BDF8 38 60 00 03 */ li r3, 3
+/* 8034019C 0033BDFC 48 00 02 B0 */ b lbl_8034044C
+lbl_803401A0:
+/* 803401A0 0033BE00 38 80 00 00 */ li r4, 0
+/* 803401A4 0033BE04 4B FF 84 B1 */ bl SetSockBlocking
+/* 803401A8 0033BE08 2C 03 00 00 */ cmpwi r3, 0
+/* 803401AC 0033BE0C 40 82 00 2C */ bne lbl_803401D8
+/* 803401B0 0033BE10 7F 83 E3 78 */ mr r3, r28
+/* 803401B4 0033BE14 38 BF 00 68 */ addi r5, r31, 0x68
+/* 803401B8 0033BE18 38 80 00 05 */ li r4, 5
+/* 803401BC 0033BE1C 48 00 82 4D */ bl gpiSetError
+/* 803401C0 0033BE20 7F 83 E3 78 */ mr r3, r28
+/* 803401C4 0033BE24 38 80 00 03 */ li r4, 3
+/* 803401C8 0033BE28 38 A0 00 01 */ li r5, 1
+/* 803401CC 0033BE2C 4B FF FA 9D */ bl gpiCallErrorCallback
+/* 803401D0 0033BE30 38 60 00 03 */ li r3, 3
+/* 803401D4 0033BE34 48 00 02 78 */ b lbl_8034044C
+lbl_803401D8:
+/* 803401D8 0033BE38 38 61 00 10 */ addi r3, r1, 0x10
+/* 803401DC 0033BE3C 38 80 00 00 */ li r4, 0
+/* 803401E0 0033BE40 38 A0 00 08 */ li r5, 8
+/* 803401E4 0033BE44 4B CC 3F 21 */ bl memset
+/* 803401E8 0033BE48 38 00 00 02 */ li r0, 2
+/* 803401EC 0033BE4C 38 81 00 10 */ addi r4, r1, 0x10
+/* 803401F0 0033BE50 98 01 00 11 */ stb r0, 0x11(r1)
+/* 803401F4 0033BE54 38 A0 00 08 */ li r5, 8
+/* 803401F8 0033BE58 80 7E 02 20 */ lwz r3, 0x220(r30)
+/* 803401FC 0033BE5C 4B FF 7A 69 */ bl bind
+/* 80340200 0033BE60 2C 03 FF FF */ cmpwi r3, -1
+/* 80340204 0033BE64 40 82 00 2C */ bne lbl_80340230
+/* 80340208 0033BE68 7F 83 E3 78 */ mr r3, r28
+/* 8034020C 0033BE6C 38 BF 00 9C */ addi r5, r31, 0x9c
+/* 80340210 0033BE70 38 80 00 05 */ li r4, 5
+/* 80340214 0033BE74 48 00 81 F5 */ bl gpiSetError
+/* 80340218 0033BE78 7F 83 E3 78 */ mr r3, r28
+/* 8034021C 0033BE7C 38 80 00 03 */ li r4, 3
+/* 80340220 0033BE80 38 A0 00 01 */ li r5, 1
+/* 80340224 0033BE84 4B FF FA 45 */ bl gpiCallErrorCallback
+/* 80340228 0033BE88 38 60 00 03 */ li r3, 3
+/* 8034022C 0033BE8C 48 00 02 20 */ b lbl_8034044C
+lbl_80340230:
+/* 80340230 0033BE90 80 7E 02 20 */ lwz r3, 0x220(r30)
+/* 80340234 0033BE94 38 80 00 05 */ li r4, 5
+/* 80340238 0033BE98 4B FF 7B 09 */ bl listen
+/* 8034023C 0033BE9C 2C 03 FF FF */ cmpwi r3, -1
+/* 80340240 0033BEA0 40 82 00 2C */ bne lbl_8034026C
+/* 80340244 0033BEA4 7F 83 E3 78 */ mr r3, r28
+/* 80340248 0033BEA8 38 BF 00 C4 */ addi r5, r31, 0xc4
+/* 8034024C 0033BEAC 38 80 00 05 */ li r4, 5
+/* 80340250 0033BEB0 48 00 81 B9 */ bl gpiSetError
+/* 80340254 0033BEB4 7F 83 E3 78 */ mr r3, r28
+/* 80340258 0033BEB8 38 80 00 03 */ li r4, 3
+/* 8034025C 0033BEBC 38 A0 00 01 */ li r5, 1
+/* 80340260 0033BEC0 4B FF FA 09 */ bl gpiCallErrorCallback
+/* 80340264 0033BEC4 38 60 00 03 */ li r3, 3
+/* 80340268 0033BEC8 48 00 01 E4 */ b lbl_8034044C
+lbl_8034026C:
+/* 8034026C 0033BECC 38 00 00 08 */ li r0, 8
+/* 80340270 0033BED0 38 81 00 10 */ addi r4, r1, 0x10
+/* 80340274 0033BED4 90 01 00 08 */ stw r0, 8(r1)
+/* 80340278 0033BED8 38 A1 00 08 */ addi r5, r1, 8
+/* 8034027C 0033BEDC 80 7E 02 20 */ lwz r3, 0x220(r30)
+/* 80340280 0033BEE0 4B FF 7C 95 */ bl getsockname
+/* 80340284 0033BEE4 2C 03 FF FF */ cmpwi r3, -1
+/* 80340288 0033BEE8 40 82 00 2C */ bne lbl_803402B4
+/* 8034028C 0033BEEC 7F 83 E3 78 */ mr r3, r28
+/* 80340290 0033BEF0 38 BF 00 F0 */ addi r5, r31, 0xf0
+/* 80340294 0033BEF4 38 80 00 05 */ li r4, 5
+/* 80340298 0033BEF8 48 00 81 71 */ bl gpiSetError
+/* 8034029C 0033BEFC 7F 83 E3 78 */ mr r3, r28
+/* 803402A0 0033BF00 38 80 00 03 */ li r4, 3
+/* 803402A4 0033BF04 38 A0 00 01 */ li r5, 1
+/* 803402A8 0033BF08 4B FF F9 C1 */ bl gpiCallErrorCallback
+/* 803402AC 0033BF0C 38 60 00 03 */ li r3, 3
+/* 803402B0 0033BF10 48 00 01 9C */ b lbl_8034044C
+lbl_803402B4:
+/* 803402B4 0033BF14 A0 01 00 12 */ lhz r0, 0x12(r1)
+/* 803402B8 0033BF18 90 1E 02 24 */ stw r0, 0x224(r30)
+/* 803402BC 0033BF1C 48 00 00 14 */ b lbl_803402D0
+lbl_803402C0:
+/* 803402C0 0033BF20 38 60 FF FF */ li r3, -1
+/* 803402C4 0033BF24 38 00 00 00 */ li r0, 0
+/* 803402C8 0033BF28 90 7E 02 20 */ stw r3, 0x220(r30)
+/* 803402CC 0033BF2C 90 1E 02 24 */ stw r0, 0x224(r30)
+lbl_803402D0:
+/* 803402D0 0033BF30 38 60 00 02 */ li r3, 2
+/* 803402D4 0033BF34 38 80 00 01 */ li r4, 1
+/* 803402D8 0033BF38 38 A0 00 00 */ li r5, 0
+/* 803402DC 0033BF3C 4B FF 78 E9 */ bl socket
+/* 803402E0 0033BF40 2C 03 FF FF */ cmpwi r3, -1
+/* 803402E4 0033BF44 90 7E 01 F0 */ stw r3, 0x1f0(r30)
+/* 803402E8 0033BF48 40 82 00 2C */ bne lbl_80340314
+/* 803402EC 0033BF4C 7F 83 E3 78 */ mr r3, r28
+/* 803402F0 0033BF50 38 BF 00 40 */ addi r5, r31, 0x40
+/* 803402F4 0033BF54 38 80 00 05 */ li r4, 5
+/* 803402F8 0033BF58 48 00 81 11 */ bl gpiSetError
+/* 803402FC 0033BF5C 7F 83 E3 78 */ mr r3, r28
+/* 80340300 0033BF60 38 80 00 03 */ li r4, 3
+/* 80340304 0033BF64 38 A0 00 01 */ li r5, 1
+/* 80340308 0033BF68 4B FF F9 61 */ bl gpiCallErrorCallback
+/* 8034030C 0033BF6C 38 60 00 03 */ li r3, 3
+/* 80340310 0033BF70 48 00 01 3C */ b lbl_8034044C
+lbl_80340314:
+/* 80340314 0033BF74 38 80 00 00 */ li r4, 0
+/* 80340318 0033BF78 4B FF 83 3D */ bl SetSockBlocking
+/* 8034031C 0033BF7C 2C 03 00 00 */ cmpwi r3, 0
+/* 80340320 0033BF80 40 82 00 2C */ bne lbl_8034034C
+/* 80340324 0033BF84 7F 83 E3 78 */ mr r3, r28
+/* 80340328 0033BF88 38 BF 00 68 */ addi r5, r31, 0x68
+/* 8034032C 0033BF8C 38 80 00 05 */ li r4, 5
+/* 80340330 0033BF90 48 00 80 D9 */ bl gpiSetError
+/* 80340334 0033BF94 7F 83 E3 78 */ mr r3, r28
+/* 80340338 0033BF98 38 80 00 03 */ li r4, 3
+/* 8034033C 0033BF9C 38 A0 00 01 */ li r5, 1
+/* 80340340 0033BFA0 4B FF F9 29 */ bl gpiCallErrorCallback
+/* 80340344 0033BFA4 38 60 00 03 */ li r3, 3
+/* 80340348 0033BFA8 48 00 01 04 */ b lbl_8034044C
+lbl_8034034C:
+/* 8034034C 0033BFAC 38 61 00 10 */ addi r3, r1, 0x10
+/* 80340350 0033BFB0 38 80 00 00 */ li r4, 0
+/* 80340354 0033BFB4 38 A0 00 08 */ li r5, 8
+/* 80340358 0033BFB8 4B CC 3D AD */ bl memset
+/* 8034035C 0033BFBC 38 00 00 02 */ li r0, 2
+/* 80340360 0033BFC0 38 7F 00 00 */ addi r3, r31, 0
+/* 80340364 0033BFC4 98 01 00 11 */ stb r0, 0x11(r1)
+/* 80340368 0033BFC8 4B FF 7C 09 */ bl inet_addr
+/* 8034036C 0033BFCC 3C 03 00 01 */ addis r0, r3, 1
+/* 80340370 0033BFD0 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80340374 0033BFD4 40 82 00 50 */ bne lbl_803403C4
+/* 80340378 0033BFD8 38 7F 00 00 */ addi r3, r31, 0
+/* 8034037C 0033BFDC 4B FF 7D 5D */ bl gethostbyname
+/* 80340380 0033BFE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80340384 0033BFE4 40 82 00 2C */ bne lbl_803403B0
+/* 80340388 0033BFE8 7F 83 E3 78 */ mr r3, r28
+/* 8034038C 0033BFEC 38 BF 01 20 */ addi r5, r31, 0x120
+/* 80340390 0033BFF0 38 80 00 05 */ li r4, 5
+/* 80340394 0033BFF4 48 00 80 75 */ bl gpiSetError
+/* 80340398 0033BFF8 7F 83 E3 78 */ mr r3, r28
+/* 8034039C 0033BFFC 38 80 00 03 */ li r4, 3
+/* 803403A0 0033C000 38 A0 00 01 */ li r5, 1
+/* 803403A4 0033C004 4B FF F8 C5 */ bl gpiCallErrorCallback
+/* 803403A8 0033C008 38 60 00 03 */ li r3, 3
+/* 803403AC 0033C00C 48 00 00 A0 */ b lbl_8034044C
+lbl_803403B0:
+/* 803403B0 0033C010 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 803403B4 0033C014 80 63 00 00 */ lwz r3, 0(r3)
+/* 803403B8 0033C018 80 03 00 00 */ lwz r0, 0(r3)
+/* 803403BC 0033C01C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803403C0 0033C020 48 00 00 10 */ b lbl_803403D0
+lbl_803403C4:
+/* 803403C4 0033C024 38 7F 00 00 */ addi r3, r31, 0
+/* 803403C8 0033C028 4B FF 7B A9 */ bl inet_addr
+/* 803403CC 0033C02C 90 61 00 14 */ stw r3, 0x14(r1)
+lbl_803403D0:
+/* 803403D0 0033C030 38 60 74 CC */ li r3, 0x74cc
+/* 803403D4 0033C034 4B FB 69 A9 */ bl SOHtoNs
+/* 803403D8 0033C038 B0 61 00 12 */ sth r3, 0x12(r1)
+/* 803403DC 0033C03C 38 81 00 10 */ addi r4, r1, 0x10
+/* 803403E0 0033C040 38 A0 00 08 */ li r5, 8
+/* 803403E4 0033C044 80 7E 01 F0 */ lwz r3, 0x1f0(r30)
+/* 803403E8 0033C048 4B FF 78 F5 */ bl connect
+/* 803403EC 0033C04C 2C 03 FF FF */ cmpwi r3, -1
+/* 803403F0 0033C050 40 82 00 4C */ bne lbl_8034043C
+/* 803403F4 0033C054 80 7E 01 F0 */ lwz r3, 0x1f0(r30)
+/* 803403F8 0033C058 4B FF 7B B1 */ bl GOAGetLastError
+/* 803403FC 0033C05C 2C 03 FF FA */ cmpwi r3, -6
+/* 80340400 0033C060 41 82 00 3C */ beq lbl_8034043C
+/* 80340404 0033C064 2C 03 FF E6 */ cmpwi r3, -26
+/* 80340408 0033C068 41 82 00 34 */ beq lbl_8034043C
+/* 8034040C 0033C06C 2C 03 FF B4 */ cmpwi r3, -76
+/* 80340410 0033C070 41 82 00 2C */ beq lbl_8034043C
+/* 80340414 0033C074 7F 83 E3 78 */ mr r3, r28
+/* 80340418 0033C078 38 BF 01 58 */ addi r5, r31, 0x158
+/* 8034041C 0033C07C 38 80 00 05 */ li r4, 5
+/* 80340420 0033C080 48 00 7F E9 */ bl gpiSetError
+/* 80340424 0033C084 7F 83 E3 78 */ mr r3, r28
+/* 80340428 0033C088 38 80 00 03 */ li r4, 3
+/* 8034042C 0033C08C 38 A0 00 01 */ li r5, 1
+/* 80340430 0033C090 4B FF F8 39 */ bl gpiCallErrorCallback
+/* 80340434 0033C094 38 60 00 03 */ li r3, 3
+/* 80340438 0033C098 48 00 00 14 */ b lbl_8034044C
+lbl_8034043C:
+/* 8034043C 0033C09C 38 00 00 01 */ li r0, 1
+/* 80340440 0033C0A0 38 60 00 00 */ li r3, 0
+/* 80340444 0033C0A4 90 1D 00 14 */ stw r0, 0x14(r29)
+/* 80340448 0033C0A8 90 1E 01 F4 */ stw r0, 0x1f4(r30)
+lbl_8034044C:
+/* 8034044C 0033C0AC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80340450 0033C0B0 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80340454 0033C0B4 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80340458 0033C0B8 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8034045C 0033C0BC 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 80340460 0033C0C0 7C 08 03 A6 */ mtlr r0
+/* 80340464 0033C0C4 38 21 00 30 */ addi r1, r1, 0x30
+/* 80340468 0033C0C8 4E 80 00 20 */ blr
+
+.global gpiConnect
+gpiConnect:
+/* 8034046C 0033C0CC 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80340470 0033C0D0 7C 08 02 A6 */ mflr r0
+/* 80340474 0033C0D4 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80340478 0033C0D8 39 61 00 50 */ addi r11, r1, 0x50
+/* 8034047C 0033C0DC 4B E8 6C 85 */ bl _savegpr_17
+/* 80340480 0033C0E0 83 C3 00 00 */ lwz r30, 0(r3)
+/* 80340484 0033C0E4 3F E0 80 45 */ lis r31, lbl_8044A820@ha
+/* 80340488 0033C0E8 82 21 00 58 */ lwz r17, 0x58(r1)
+/* 8034048C 0033C0EC 7C 72 1B 78 */ mr r18, r3
+/* 80340490 0033C0F0 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
+/* 80340494 0033C0F4 7C 93 23 78 */ mr r19, r4
+/* 80340498 0033C0F8 83 41 00 5C */ lwz r26, 0x5c(r1)
+/* 8034049C 0033C0FC 7C B4 2B 78 */ mr r20, r5
+/* 803404A0 0033C100 2C 00 00 04 */ cmpwi r0, 4
+/* 803404A4 0033C104 83 61 00 60 */ lwz r27, 0x60(r1)
+/* 803404A8 0033C108 83 81 00 64 */ lwz r28, 0x64(r1)
+/* 803404AC 0033C10C 7C D5 33 78 */ mr r21, r6
+/* 803404B0 0033C110 83 A1 00 68 */ lwz r29, 0x68(r1)
+/* 803404B4 0033C114 7C F6 3B 78 */ mr r22, r7
+/* 803404B8 0033C118 7D 17 43 78 */ mr r23, r8
+/* 803404BC 0033C11C 7D 38 4B 78 */ mr r24, r9
+/* 803404C0 0033C120 7D 59 53 78 */ mr r25, r10
+/* 803404C4 0033C124 3B FF A8 20 */ addi r31, r31, lbl_8044A820@l
+/* 803404C8 0033C128 40 82 00 14 */ bne lbl_803404DC
+/* 803404CC 0033C12C 4B FF D8 BD */ bl gpiReset
+/* 803404D0 0033C130 2C 03 00 00 */ cmpwi r3, 0
+/* 803404D4 0033C134 41 82 00 08 */ beq lbl_803404DC
+/* 803404D8 0033C138 48 00 01 D0 */ b lbl_803406A8
+lbl_803404DC:
+/* 803404DC 0033C13C 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
+/* 803404E0 0033C140 2C 00 00 00 */ cmpwi r0, 0
+/* 803404E4 0033C144 41 82 00 18 */ beq lbl_803404FC
+/* 803404E8 0033C148 7E 43 93 78 */ mr r3, r18
+/* 803404EC 0033C14C 38 9F 01 80 */ addi r4, r31, 0x180
+/* 803404F0 0033C150 48 00 7F 69 */ bl gpiSetErrorString
+/* 803404F4 0033C154 38 60 00 02 */ li r3, 2
+/* 803404F8 0033C158 48 00 01 B0 */ b lbl_803406A8
+lbl_803404FC:
+/* 803404FC 0033C15C 2C 11 00 01 */ cmpwi r17, 1
+/* 80340500 0033C160 41 82 00 14 */ beq lbl_80340514
+/* 80340504 0033C164 40 80 00 28 */ bge lbl_8034052C
+/* 80340508 0033C168 2C 11 00 00 */ cmpwi r17, 0
+/* 8034050C 0033C16C 40 80 00 14 */ bge lbl_80340520
+/* 80340510 0033C170 48 00 00 1C */ b lbl_8034052C
+lbl_80340514:
+/* 80340514 0033C174 38 00 00 01 */ li r0, 1
+/* 80340518 0033C178 90 1E 01 0C */ stw r0, 0x10c(r30)
+/* 8034051C 0033C17C 48 00 00 24 */ b lbl_80340540
+lbl_80340520:
+/* 80340520 0033C180 38 00 00 00 */ li r0, 0
+/* 80340524 0033C184 90 1E 01 0C */ stw r0, 0x10c(r30)
+/* 80340528 0033C188 48 00 00 18 */ b lbl_80340540
+lbl_8034052C:
+/* 8034052C 0033C18C 7E 43 93 78 */ mr r3, r18
+/* 80340530 0033C190 38 9F 01 94 */ addi r4, r31, 0x194
+/* 80340534 0033C194 48 00 7F 25 */ bl gpiSetErrorString
+/* 80340538 0033C198 38 60 00 02 */ li r3, 2
+/* 8034053C 0033C19C 48 00 01 6C */ b lbl_803406A8
+lbl_80340540:
+/* 80340540 0033C1A0 7E 64 9B 78 */ mr r4, r19
+/* 80340544 0033C1A4 38 7E 01 10 */ addi r3, r30, 0x110
+/* 80340548 0033C1A8 38 A0 00 1F */ li r5, 0x1f
+/* 8034054C 0033C1AC 48 00 7A 05 */ bl strzcpy
+/* 80340550 0033C1B0 7E 84 A3 78 */ mr r4, r20
+/* 80340554 0033C1B4 38 7E 01 2F */ addi r3, r30, 0x12f
+/* 80340558 0033C1B8 38 A0 00 15 */ li r5, 0x15
+/* 8034055C 0033C1BC 48 00 79 F5 */ bl strzcpy
+/* 80340560 0033C1C0 7E A4 AB 78 */ mr r4, r21
+/* 80340564 0033C1C4 38 7E 01 44 */ addi r3, r30, 0x144
+/* 80340568 0033C1C8 38 A0 00 33 */ li r5, 0x33
+/* 8034056C 0033C1CC 48 00 79 E5 */ bl strzcpy
+/* 80340570 0033C1D0 7E C4 B3 78 */ mr r4, r22
+/* 80340574 0033C1D4 38 7E 01 77 */ addi r3, r30, 0x177
+/* 80340578 0033C1D8 38 A0 00 1F */ li r5, 0x1f
+/* 8034057C 0033C1DC 48 00 79 D5 */ bl strzcpy
+/* 80340580 0033C1E0 38 7E 01 44 */ addi r3, r30, 0x144
+/* 80340584 0033C1E4 4B FF 89 F1 */ bl _strlwr
+/* 80340588 0033C1E8 38 60 03 08 */ li r3, 0x308
+/* 8034058C 0033C1EC 4B FF 8D 89 */ bl gsimalloc
+/* 80340590 0033C1F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80340594 0033C1F4 7C 73 1B 78 */ mr r19, r3
+/* 80340598 0033C1F8 40 82 00 18 */ bne lbl_803405B0
+/* 8034059C 0033C1FC 7E 43 93 78 */ mr r3, r18
+/* 803405A0 0033C200 38 9F 01 A8 */ addi r4, r31, 0x1a8
+/* 803405A4 0033C204 48 00 7E B5 */ bl gpiSetErrorString
+/* 803405A8 0033C208 38 60 00 01 */ li r3, 1
+/* 803405AC 0033C20C 48 00 00 FC */ b lbl_803406A8
+lbl_803405B0:
+/* 803405B0 0033C210 38 80 00 00 */ li r4, 0
+/* 803405B4 0033C214 38 A0 03 08 */ li r5, 0x308
+/* 803405B8 0033C218 4B CC 3B 4D */ bl memset
+/* 803405BC 0033C21C 88 17 00 00 */ lbz r0, 0(r23)
+/* 803405C0 0033C220 93 53 03 04 */ stw r26, 0x304(r19)
+/* 803405C4 0033C224 7C 00 07 75 */ extsb. r0, r0
+/* 803405C8 0033C228 41 82 00 30 */ beq lbl_803405F8
+/* 803405CC 0033C22C 88 18 00 00 */ lbz r0, 0(r24)
+/* 803405D0 0033C230 7C 00 07 75 */ extsb. r0, r0
+/* 803405D4 0033C234 41 82 00 24 */ beq lbl_803405F8
+/* 803405D8 0033C238 7E E4 BB 78 */ mr r4, r23
+/* 803405DC 0033C23C 38 73 00 C2 */ addi r3, r19, 0xc2
+/* 803405E0 0033C240 38 A0 01 00 */ li r5, 0x100
+/* 803405E4 0033C244 48 00 79 6D */ bl strzcpy
+/* 803405E8 0033C248 7F 04 C3 78 */ mr r4, r24
+/* 803405EC 0033C24C 38 73 01 C2 */ addi r3, r19, 0x1c2
+/* 803405F0 0033C250 38 A0 01 00 */ li r5, 0x100
+/* 803405F4 0033C254 48 00 79 5D */ bl strzcpy
+lbl_803405F8:
+/* 803405F8 0033C258 2C 19 00 00 */ cmpwi r25, 0
+/* 803405FC 0033C25C 41 82 00 14 */ beq lbl_80340610
+/* 80340600 0033C260 7F 24 CB 78 */ mr r4, r25
+/* 80340604 0033C264 38 73 02 C2 */ addi r3, r19, 0x2c2
+/* 80340608 0033C268 38 A0 00 41 */ li r5, 0x41
+/* 8034060C 0033C26C 48 00 79 45 */ bl strzcpy
+lbl_80340610:
+/* 80340610 0033C270 7E 43 93 78 */ mr r3, r18
+/* 80340614 0033C274 7E 65 9B 78 */ mr r5, r19
+/* 80340618 0033C278 7F 67 DB 78 */ mr r7, r27
+/* 8034061C 0033C27C 7F 88 E3 78 */ mr r8, r28
+/* 80340620 0033C280 7F A9 EB 78 */ mr r9, r29
+/* 80340624 0033C284 38 C1 00 08 */ addi r6, r1, 8
+/* 80340628 0033C288 38 80 00 00 */ li r4, 0
+/* 8034062C 0033C28C 48 00 38 B1 */ bl gpiAddOperation
+/* 80340630 0033C290 2C 03 00 00 */ cmpwi r3, 0
+/* 80340634 0033C294 41 82 00 08 */ beq lbl_8034063C
+/* 80340638 0033C298 48 00 00 70 */ b lbl_803406A8
+lbl_8034063C:
+/* 8034063C 0033C29C 80 81 00 08 */ lwz r4, 8(r1)
+/* 80340640 0033C2A0 7E 43 93 78 */ mr r3, r18
+/* 80340644 0033C2A4 4B FF FA DD */ bl gpiStartConnect
+/* 80340648 0033C2A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034064C 0033C2AC 7C 73 1B 78 */ mr r19, r3
+/* 80340650 0033C2B0 41 82 00 2C */ beq lbl_8034067C
+/* 80340654 0033C2B4 80 81 00 08 */ lwz r4, 8(r1)
+/* 80340658 0033C2B8 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 8034065C 0033C2BC 7E 43 93 78 */ mr r3, r18
+/* 80340660 0033C2C0 80 81 00 08 */ lwz r4, 8(r1)
+/* 80340664 0033C2C4 48 00 35 01 */ bl gpiFailedOpCallback
+/* 80340668 0033C2C8 7E 43 93 78 */ mr r3, r18
+/* 8034066C 0033C2CC 38 80 00 00 */ li r4, 0
+/* 80340670 0033C2D0 48 00 0E B1 */ bl gpiDisconnect
+/* 80340674 0033C2D4 7E 63 9B 78 */ mr r3, r19
+/* 80340678 0033C2D8 48 00 00 30 */ b lbl_803406A8
+lbl_8034067C:
+/* 8034067C 0033C2DC 80 61 00 08 */ lwz r3, 8(r1)
+/* 80340680 0033C2E0 80 03 00 08 */ lwz r0, 8(r3)
+/* 80340684 0033C2E4 2C 00 00 00 */ cmpwi r0, 0
+/* 80340688 0033C2E8 41 82 00 1C */ beq lbl_803406A4
+/* 8034068C 0033C2EC 80 83 00 18 */ lwz r4, 0x18(r3)
+/* 80340690 0033C2F0 7E 43 93 78 */ mr r3, r18
+/* 80340694 0033C2F4 4B FF DB 19 */ bl gpiProcess
+/* 80340698 0033C2F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034069C 0033C2FC 41 82 00 08 */ beq lbl_803406A4
+/* 803406A0 0033C300 48 00 00 08 */ b lbl_803406A8
+lbl_803406A4:
+/* 803406A4 0033C304 38 60 00 00 */ li r3, 0
+lbl_803406A8:
+/* 803406A8 0033C308 39 61 00 50 */ addi r11, r1, 0x50
+/* 803406AC 0033C30C 4B E8 6A A1 */ bl _restgpr_17
+/* 803406B0 0033C310 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 803406B4 0033C314 7C 08 03 A6 */ mtlr r0
+/* 803406B8 0033C318 38 21 00 50 */ addi r1, r1, 0x50
+/* 803406BC 0033C31C 4E 80 00 20 */ blr
+
+.global gpiSendLogin
+gpiSendLogin:
+/* 803406C0 0033C320 94 21 FD 50 */ stwu r1, -0x2b0(r1)
+/* 803406C4 0033C324 7C 08 02 A6 */ mflr r0
+/* 803406C8 0033C328 90 01 02 B4 */ stw r0, 0x2b4(r1)
+/* 803406CC 0033C32C 39 61 02 B0 */ addi r11, r1, 0x2b0
+/* 803406D0 0033C330 4B E8 6A 51 */ bl _savegpr_25
+/* 803406D4 0033C334 3F E0 80 45 */ lis r31, lbl_8044A820@ha
+/* 803406D8 0033C338 3C A0 08 42 */ lis r5, 0x08421085@ha
+/* 803406DC 0033C33C 3B FF A8 20 */ addi r31, r31, lbl_8044A820@l
+/* 803406E0 0033C340 83 C3 00 00 */ lwz r30, 0(r3)
+/* 803406E4 0033C344 7C 7C 1B 78 */ mr r28, r3
+/* 803406E8 0033C348 7C 9D 23 78 */ mr r29, r4
+/* 803406EC 0033C34C 3B 45 10 85 */ addi r26, r5, 0x08421085@l
+/* 803406F0 0033C350 3B 7F 01 B8 */ addi r27, r31, 0x1b8
+/* 803406F4 0033C354 3B 20 00 00 */ li r25, 0
+lbl_803406F8:
+/* 803406F8 0033C358 4B E8 C6 45 */ bl rand
+/* 803406FC 0033C35C 7C BA 18 16 */ mulhwu r5, r26, r3
+/* 80340700 0033C360 7C 9D CA 14 */ add r4, r29, r25
+/* 80340704 0033C364 3B 39 00 01 */ addi r25, r25, 1
+/* 80340708 0033C368 2C 19 00 20 */ cmpwi r25, 0x20
+/* 8034070C 0033C36C 7C 05 18 50 */ subf r0, r5, r3
+/* 80340710 0033C370 54 00 F8 7E */ srwi r0, r0, 1
+/* 80340714 0033C374 7C 00 2A 14 */ add r0, r0, r5
+/* 80340718 0033C378 54 00 D9 7E */ srwi r0, r0, 5
+/* 8034071C 0033C37C 1C 00 00 3E */ mulli r0, r0, 0x3e
+/* 80340720 0033C380 7C 00 18 50 */ subf r0, r0, r3
+/* 80340724 0033C384 7C 1B 00 AE */ lbzx r0, r27, r0
+/* 80340728 0033C388 98 04 00 80 */ stb r0, 0x80(r4)
+/* 8034072C 0033C38C 41 80 FF CC */ blt lbl_803406F8
+/* 80340730 0033C390 7C 7D CA 14 */ add r3, r29, r25
+/* 80340734 0033C394 38 00 00 00 */ li r0, 0
+/* 80340738 0033C398 98 03 00 80 */ stb r0, 0x80(r3)
+/* 8034073C 0033C39C 88 1D 01 C2 */ lbz r0, 0x1c2(r29)
+/* 80340740 0033C3A0 7C 00 07 75 */ extsb. r0, r0
+/* 80340744 0033C3A4 41 82 00 0C */ beq lbl_80340750
+/* 80340748 0033C3A8 3B 3D 01 C2 */ addi r25, r29, 0x1c2
+/* 8034074C 0033C3AC 48 00 00 08 */ b lbl_80340754
+lbl_80340750:
+/* 80340750 0033C3B0 3B 3E 01 77 */ addi r25, r30, 0x177
+lbl_80340754:
+/* 80340754 0033C3B4 7F 23 CB 78 */ mr r3, r25
+/* 80340758 0033C3B8 4B E8 64 0D */ bl strlen
+/* 8034075C 0033C3BC 7C 64 1B 78 */ mr r4, r3
+/* 80340760 0033C3C0 7F 23 CB 78 */ mr r3, r25
+/* 80340764 0033C3C4 38 BD 00 A1 */ addi r5, r29, 0xa1
+/* 80340768 0033C3C8 4B FF 72 A5 */ bl MD5Digest
+/* 8034076C 0033C3CC 80 BE 01 A4 */ lwz r5, 0x1a4(r30)
+/* 80340770 0033C3D0 2C 05 00 00 */ cmpwi r5, 0
+/* 80340774 0033C3D4 41 82 00 18 */ beq lbl_8034078C
+/* 80340778 0033C3D8 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034077C 0033C3DC 38 8D 8F F8 */ addi r4, r13, lbl_8063E2B8-_SDA_BASE_
+/* 80340780 0033C3E0 4C C6 31 82 */ crclr 6
+/* 80340784 0033C3E4 4B E8 C3 79 */ bl sprintf
+/* 80340788 0033C3E8 48 00 00 10 */ b lbl_80340798
+lbl_8034078C:
+/* 8034078C 0033C3EC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80340790 0033C3F0 38 8D 8F FC */ addi r4, r13, lbl_8063E2BC-_SDA_BASE_
+/* 80340794 0033C3F4 4B E8 DB 3D */ bl strcpy
+lbl_80340798:
+/* 80340798 0033C3F8 88 1D 00 C2 */ lbz r0, 0xc2(r29)
+/* 8034079C 0033C3FC 7C 00 07 75 */ extsb. r0, r0
+/* 803407A0 0033C400 41 82 00 0C */ beq lbl_803407AC
+/* 803407A4 0033C404 38 FD 00 C2 */ addi r7, r29, 0xc2
+/* 803407A8 0033C408 48 00 00 50 */ b lbl_803407F8
+lbl_803407AC:
+/* 803407AC 0033C40C 88 1E 01 2F */ lbz r0, 0x12f(r30)
+/* 803407B0 0033C410 7C 00 07 75 */ extsb. r0, r0
+/* 803407B4 0033C414 41 82 00 24 */ beq lbl_803407D8
+/* 803407B8 0033C418 38 61 00 3C */ addi r3, r1, 0x3c
+/* 803407BC 0033C41C 38 A1 00 0C */ addi r5, r1, 0xc
+/* 803407C0 0033C420 38 DE 01 2F */ addi r6, r30, 0x12f
+/* 803407C4 0033C424 38 8D 90 00 */ addi r4, r13, lbl_8063E2C0-_SDA_BASE_
+/* 803407C8 0033C428 4C C6 31 82 */ crclr 6
+/* 803407CC 0033C42C 4B E8 C3 31 */ bl sprintf
+/* 803407D0 0033C430 38 E1 00 3C */ addi r7, r1, 0x3c
+/* 803407D4 0033C434 48 00 00 24 */ b lbl_803407F8
+lbl_803407D8:
+/* 803407D8 0033C438 38 61 00 3C */ addi r3, r1, 0x3c
+/* 803407DC 0033C43C 38 A1 00 0C */ addi r5, r1, 0xc
+/* 803407E0 0033C440 38 DE 01 10 */ addi r6, r30, 0x110
+/* 803407E4 0033C444 38 FE 01 44 */ addi r7, r30, 0x144
+/* 803407E8 0033C448 38 8D 90 08 */ addi r4, r13, lbl_8063E2C8-_SDA_BASE_
+/* 803407EC 0033C44C 4C C6 31 82 */ crclr 6
+/* 803407F0 0033C450 4B E8 C3 0D */ bl sprintf
+/* 803407F4 0033C454 38 E1 00 3C */ addi r7, r1, 0x3c
+lbl_803407F8:
+/* 803407F8 0033C458 38 BD 00 A1 */ addi r5, r29, 0xa1
+/* 803407FC 0033C45C 7F A9 EB 78 */ mr r9, r29
+/* 80340800 0033C460 38 61 00 90 */ addi r3, r1, 0x90
+/* 80340804 0033C464 38 9F 01 F8 */ addi r4, r31, 0x1f8
+/* 80340808 0033C468 7C AA 2B 78 */ mr r10, r5
+/* 8034080C 0033C46C 38 DF 02 08 */ addi r6, r31, 0x208
+/* 80340810 0033C470 39 1D 00 80 */ addi r8, r29, 0x80
+/* 80340814 0033C474 4C C6 31 82 */ crclr 6
+/* 80340818 0033C478 4B E8 C2 E5 */ bl sprintf
+/* 8034081C 0033C47C 38 61 00 90 */ addi r3, r1, 0x90
+/* 80340820 0033C480 4B E8 63 45 */ bl strlen
+/* 80340824 0033C484 7C 64 1B 78 */ mr r4, r3
+/* 80340828 0033C488 38 61 00 90 */ addi r3, r1, 0x90
+/* 8034082C 0033C48C 38 A1 00 18 */ addi r5, r1, 0x18
+/* 80340830 0033C490 4B FF 71 DD */ bl MD5Digest
+/* 80340834 0033C494 80 1E 01 00 */ lwz r0, 0x100(r30)
+/* 80340838 0033C498 2C 00 00 00 */ cmpwi r0, 0
+/* 8034083C 0033C49C 41 82 00 38 */ beq lbl_80340874
+/* 80340840 0033C4A0 7F 83 E3 78 */ mr r3, r28
+/* 80340844 0033C4A4 38 9E 01 10 */ addi r4, r30, 0x110
+/* 80340848 0033C4A8 38 BE 01 44 */ addi r5, r30, 0x144
+/* 8034084C 0033C4AC 38 C1 00 08 */ addi r6, r1, 8
+/* 80340850 0033C4B0 48 00 52 F9 */ bl gpiFindProfileByUser
+/* 80340854 0033C4B4 80 61 00 08 */ lwz r3, 8(r1)
+/* 80340858 0033C4B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034085C 0033C4BC 41 82 00 18 */ beq lbl_80340874
+/* 80340860 0033C4C0 80 03 00 04 */ lwz r0, 4(r3)
+/* 80340864 0033C4C4 90 1E 01 9C */ stw r0, 0x19c(r30)
+/* 80340868 0033C4C8 80 61 00 08 */ lwz r3, 8(r1)
+/* 8034086C 0033C4CC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80340870 0033C4D0 90 1E 01 A0 */ stw r0, 0x1a0(r30)
+lbl_80340874:
+/* 80340874 0033C4D4 7F 83 E3 78 */ mr r3, r28
+/* 80340878 0033C4D8 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034087C 0033C4DC 38 AD 90 10 */ addi r5, r13, lbl_8063E2D0-_SDA_BASE_
+/* 80340880 0033C4E0 4B FF EC 21 */ bl gpiAppendStringToBuffer
+/* 80340884 0033C4E4 7F 83 E3 78 */ mr r3, r28
+/* 80340888 0033C4E8 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034088C 0033C4EC 38 BF 02 3C */ addi r5, r31, 0x23c
+/* 80340890 0033C4F0 4B FF EC 11 */ bl gpiAppendStringToBuffer
+/* 80340894 0033C4F4 7F 83 E3 78 */ mr r3, r28
+/* 80340898 0033C4F8 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034089C 0033C4FC 38 BD 00 80 */ addi r5, r29, 0x80
+/* 803408A0 0033C500 4B FF EC 01 */ bl gpiAppendStringToBuffer
+/* 803408A4 0033C504 88 1D 00 C2 */ lbz r0, 0xc2(r29)
+/* 803408A8 0033C508 7C 00 07 75 */ extsb. r0, r0
+/* 803408AC 0033C50C 41 82 00 28 */ beq lbl_803408D4
+/* 803408B0 0033C510 7F 83 E3 78 */ mr r3, r28
+/* 803408B4 0033C514 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803408B8 0033C518 38 BF 02 48 */ addi r5, r31, 0x248
+/* 803408BC 0033C51C 4B FF EB E5 */ bl gpiAppendStringToBuffer
+/* 803408C0 0033C520 7F 83 E3 78 */ mr r3, r28
+/* 803408C4 0033C524 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803408C8 0033C528 38 BD 00 C2 */ addi r5, r29, 0xc2
+/* 803408CC 0033C52C 4B FF EB D5 */ bl gpiAppendStringToBuffer
+/* 803408D0 0033C530 48 00 00 74 */ b lbl_80340944
+lbl_803408D4:
+/* 803408D4 0033C534 88 1E 01 2F */ lbz r0, 0x12f(r30)
+/* 803408D8 0033C538 7C 00 07 75 */ extsb. r0, r0
+/* 803408DC 0033C53C 41 82 00 28 */ beq lbl_80340904
+/* 803408E0 0033C540 7F 83 E3 78 */ mr r3, r28
+/* 803408E4 0033C544 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803408E8 0033C548 38 BF 02 54 */ addi r5, r31, 0x254
+/* 803408EC 0033C54C 4B FF EB B5 */ bl gpiAppendStringToBuffer
+/* 803408F0 0033C550 7F 83 E3 78 */ mr r3, r28
+/* 803408F4 0033C554 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803408F8 0033C558 38 BE 01 2F */ addi r5, r30, 0x12f
+/* 803408FC 0033C55C 4B FF EB A5 */ bl gpiAppendStringToBuffer
+/* 80340900 0033C560 48 00 00 44 */ b lbl_80340944
+lbl_80340904:
+/* 80340904 0033C564 7F 83 E3 78 */ mr r3, r28
+/* 80340908 0033C568 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034090C 0033C56C 38 AD 90 18 */ addi r5, r13, lbl_8063E2D8-_SDA_BASE_
+/* 80340910 0033C570 4B FF EB 91 */ bl gpiAppendStringToBuffer
+/* 80340914 0033C574 7F 83 E3 78 */ mr r3, r28
+/* 80340918 0033C578 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034091C 0033C57C 38 BE 01 10 */ addi r5, r30, 0x110
+/* 80340920 0033C580 4B FF EB 81 */ bl gpiAppendStringToBuffer
+/* 80340924 0033C584 7F 83 E3 78 */ mr r3, r28
+/* 80340928 0033C588 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034092C 0033C58C 38 AD 90 20 */ addi r5, r13, lbl_8063E2E0-_SDA_BASE_
+/* 80340930 0033C590 4B FF EB 71 */ bl gpiAppendStringToBuffer
+/* 80340934 0033C594 7F 83 E3 78 */ mr r3, r28
+/* 80340938 0033C598 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034093C 0033C59C 38 BE 01 44 */ addi r5, r30, 0x144
+/* 80340940 0033C5A0 4B FF EB 61 */ bl gpiAppendStringToBuffer
+lbl_80340944:
+/* 80340944 0033C5A4 80 1E 01 9C */ lwz r0, 0x19c(r30)
+/* 80340948 0033C5A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034094C 0033C5AC 41 82 00 24 */ beq lbl_80340970
+/* 80340950 0033C5B0 7F 83 E3 78 */ mr r3, r28
+/* 80340954 0033C5B4 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340958 0033C5B8 38 BF 02 64 */ addi r5, r31, 0x264
+/* 8034095C 0033C5BC 4B FF EB 45 */ bl gpiAppendStringToBuffer
+/* 80340960 0033C5C0 80 BE 01 9C */ lwz r5, 0x19c(r30)
+/* 80340964 0033C5C4 7F 83 E3 78 */ mr r3, r28
+/* 80340968 0033C5C8 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034096C 0033C5CC 4B FF EB 91 */ bl gpiAppendIntToBuffer
+lbl_80340970:
+/* 80340970 0033C5D0 80 1E 01 A0 */ lwz r0, 0x1a0(r30)
+/* 80340974 0033C5D4 2C 00 00 00 */ cmpwi r0, 0
+/* 80340978 0033C5D8 41 82 00 24 */ beq lbl_8034099C
+/* 8034097C 0033C5DC 7F 83 E3 78 */ mr r3, r28
+/* 80340980 0033C5E0 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340984 0033C5E4 38 BF 02 70 */ addi r5, r31, 0x270
+/* 80340988 0033C5E8 4B FF EB 19 */ bl gpiAppendStringToBuffer
+/* 8034098C 0033C5EC 80 BE 01 A0 */ lwz r5, 0x1a0(r30)
+/* 80340990 0033C5F0 7F 83 E3 78 */ mr r3, r28
+/* 80340994 0033C5F4 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340998 0033C5F8 4B FF EB 65 */ bl gpiAppendIntToBuffer
+lbl_8034099C:
+/* 8034099C 0033C5FC 7F 83 E3 78 */ mr r3, r28
+/* 803409A0 0033C600 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803409A4 0033C604 38 BF 02 7C */ addi r5, r31, 0x27c
+/* 803409A8 0033C608 4B FF EA F9 */ bl gpiAppendStringToBuffer
+/* 803409AC 0033C60C 80 BE 01 A4 */ lwz r5, 0x1a4(r30)
+/* 803409B0 0033C610 7F 83 E3 78 */ mr r3, r28
+/* 803409B4 0033C614 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803409B8 0033C618 4B FF EB 45 */ bl gpiAppendIntToBuffer
+/* 803409BC 0033C61C 7F 83 E3 78 */ mr r3, r28
+/* 803409C0 0033C620 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803409C4 0033C624 38 BF 02 88 */ addi r5, r31, 0x288
+/* 803409C8 0033C628 4B FF EA D9 */ bl gpiAppendStringToBuffer
+/* 803409CC 0033C62C 7F 83 E3 78 */ mr r3, r28
+/* 803409D0 0033C630 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803409D4 0033C634 38 A1 00 18 */ addi r5, r1, 0x18
+/* 803409D8 0033C638 4B FF EA C9 */ bl gpiAppendStringToBuffer
+/* 803409DC 0033C63C 80 1E 01 0C */ lwz r0, 0x10c(r30)
+/* 803409E0 0033C640 2C 00 00 01 */ cmpwi r0, 1
+/* 803409E4 0033C644 40 82 00 14 */ bne lbl_803409F8
+/* 803409E8 0033C648 7F 83 E3 78 */ mr r3, r28
+/* 803409EC 0033C64C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 803409F0 0033C650 38 BF 02 94 */ addi r5, r31, 0x294
+/* 803409F4 0033C654 4B FF EA AD */ bl gpiAppendStringToBuffer
+lbl_803409F8:
+/* 803409F8 0033C658 7F 83 E3 78 */ mr r3, r28
+/* 803409FC 0033C65C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A00 0033C660 38 AD 90 24 */ addi r5, r13, lbl_8063E2E4-_SDA_BASE_
+/* 80340A04 0033C664 4B FF EA 9D */ bl gpiAppendStringToBuffer
+/* 80340A08 0033C668 80 1E 02 24 */ lwz r0, 0x224(r30)
+/* 80340A0C 0033C66C 54 03 04 3E */ clrlwi r3, r0, 0x10
+/* 80340A10 0033C670 4B FB 63 61 */ bl SONtoHs
+/* 80340A14 0033C674 7C 65 07 34 */ extsh r5, r3
+/* 80340A18 0033C678 7F 83 E3 78 */ mr r3, r28
+/* 80340A1C 0033C67C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A20 0033C680 4B FF EA DD */ bl gpiAppendIntToBuffer
+/* 80340A24 0033C684 7F 83 E3 78 */ mr r3, r28
+/* 80340A28 0033C688 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A2C 0033C68C 38 BF 02 A0 */ addi r5, r31, 0x2a0
+/* 80340A30 0033C690 4B FF EA 71 */ bl gpiAppendStringToBuffer
+/* 80340A34 0033C694 80 BE 04 84 */ lwz r5, 0x484(r30)
+/* 80340A38 0033C698 7F 83 E3 78 */ mr r3, r28
+/* 80340A3C 0033C69C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A40 0033C6A0 4B FF EA BD */ bl gpiAppendIntToBuffer
+/* 80340A44 0033C6A4 7F 83 E3 78 */ mr r3, r28
+/* 80340A48 0033C6A8 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A4C 0033C6AC 38 BF 02 AC */ addi r5, r31, 0x2ac
+/* 80340A50 0033C6B0 4B FF EA 51 */ bl gpiAppendStringToBuffer
+/* 80340A54 0033C6B4 3C A0 80 61 */ lis r5, lbl_80610AF8@ha
+/* 80340A58 0033C6B8 7F 83 E3 78 */ mr r3, r28
+/* 80340A5C 0033C6BC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A60 0033C6C0 38 A5 0A F8 */ addi r5, r5, lbl_80610AF8@l
+/* 80340A64 0033C6C4 4B FF EA 3D */ bl gpiAppendStringToBuffer
+/* 80340A68 0033C6C8 7F 83 E3 78 */ mr r3, r28
+/* 80340A6C 0033C6CC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A70 0033C6D0 38 BF 02 B8 */ addi r5, r31, 0x2b8
+/* 80340A74 0033C6D4 4B FF EA 2D */ bl gpiAppendStringToBuffer
+/* 80340A78 0033C6D8 80 BE 04 88 */ lwz r5, 0x488(r30)
+/* 80340A7C 0033C6DC 7F 83 E3 78 */ mr r3, r28
+/* 80340A80 0033C6E0 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A84 0033C6E4 4B FF EA 79 */ bl gpiAppendIntToBuffer
+/* 80340A88 0033C6E8 7F 83 E3 78 */ mr r3, r28
+/* 80340A8C 0033C6EC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340A90 0033C6F0 38 BF 02 C8 */ addi r5, r31, 0x2c8
+/* 80340A94 0033C6F4 4B FF EA 0D */ bl gpiAppendStringToBuffer
+/* 80340A98 0033C6F8 7F 83 E3 78 */ mr r3, r28
+/* 80340A9C 0033C6FC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340AA0 0033C700 38 A0 00 03 */ li r5, 3
+/* 80340AA4 0033C704 4B FF EA 59 */ bl gpiAppendIntToBuffer
+/* 80340AA8 0033C708 7F 83 E3 78 */ mr r3, r28
+/* 80340AAC 0033C70C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340AB0 0033C710 38 AD 90 2C */ addi r5, r13, lbl_8063E2EC-_SDA_BASE_
+/* 80340AB4 0033C714 4B FF E9 ED */ bl gpiAppendStringToBuffer
+/* 80340AB8 0033C718 7F 83 E3 78 */ mr r3, r28
+/* 80340ABC 0033C71C 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80340AC0 0033C720 38 AD 90 38 */ addi r5, r13, lbl_8063E2F8-_SDA_BASE_
+/* 80340AC4 0033C724 4B FF E9 DD */ bl gpiAppendStringToBuffer
+/* 80340AC8 0033C728 39 61 02 B0 */ addi r11, r1, 0x2b0
+/* 80340ACC 0033C72C 38 60 00 00 */ li r3, 0
+/* 80340AD0 0033C730 4B E8 66 9D */ bl _restgpr_25
+/* 80340AD4 0033C734 80 01 02 B4 */ lwz r0, 0x2b4(r1)
+/* 80340AD8 0033C738 7C 08 03 A6 */ mtlr r0
+/* 80340ADC 0033C73C 38 21 02 B0 */ addi r1, r1, 0x2b0
+/* 80340AE0 0033C740 4E 80 00 20 */ blr
+
+.global gpiSendNewuser
+gpiSendNewuser:
+/* 80340AE4 0033C744 94 21 FF 00 */ stwu r1, -0x100(r1)
+/* 80340AE8 0033C748 7C 08 02 A6 */ mflr r0
+/* 80340AEC 0033C74C 90 01 01 04 */ stw r0, 0x104(r1)
+/* 80340AF0 0033C750 39 61 01 00 */ addi r11, r1, 0x100
+/* 80340AF4 0033C754 4B E8 66 2D */ bl _savegpr_25
+/* 80340AF8 0033C758 83 A3 00 00 */ lwz r29, 0(r3)
+/* 80340AFC 0033C75C 3F E0 80 45 */ lis r31, lbl_8044A820@ha
+/* 80340B00 0033C760 7C 79 1B 78 */ mr r25, r3
+/* 80340B04 0033C764 7C 9A 23 78 */ mr r26, r4
+/* 80340B08 0033C768 3B FF A8 20 */ addi r31, r31, lbl_8044A820@l
+/* 80340B0C 0033C76C 38 7D 01 77 */ addi r3, r29, 0x177
+/* 80340B10 0033C770 38 81 00 08 */ addi r4, r1, 8
+/* 80340B14 0033C774 48 00 79 81 */ bl gpiEncodeString
+/* 80340B18 0033C778 7F 23 CB 78 */ mr r3, r25
+/* 80340B1C 0033C77C 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B20 0033C780 38 BF 02 D8 */ addi r5, r31, 0x2d8
+/* 80340B24 0033C784 4B FF E9 7D */ bl gpiAppendStringToBuffer
+/* 80340B28 0033C788 7F 23 CB 78 */ mr r3, r25
+/* 80340B2C 0033C78C 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B30 0033C790 38 AD 90 40 */ addi r5, r13, lbl_8063E300-_SDA_BASE_
+/* 80340B34 0033C794 4B FF E9 6D */ bl gpiAppendStringToBuffer
+/* 80340B38 0033C798 7F 23 CB 78 */ mr r3, r25
+/* 80340B3C 0033C79C 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B40 0033C7A0 38 BD 01 44 */ addi r5, r29, 0x144
+/* 80340B44 0033C7A4 4B FF E9 5D */ bl gpiAppendStringToBuffer
+/* 80340B48 0033C7A8 7F 23 CB 78 */ mr r3, r25
+/* 80340B4C 0033C7AC 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B50 0033C7B0 38 AD 90 48 */ addi r5, r13, lbl_8063E308-_SDA_BASE_
+/* 80340B54 0033C7B4 4B FF E9 4D */ bl gpiAppendStringToBuffer
+/* 80340B58 0033C7B8 7F 23 CB 78 */ mr r3, r25
+/* 80340B5C 0033C7BC 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B60 0033C7C0 38 BD 01 10 */ addi r5, r29, 0x110
+/* 80340B64 0033C7C4 4B FF E9 3D */ bl gpiAppendStringToBuffer
+/* 80340B68 0033C7C8 7F 23 CB 78 */ mr r3, r25
+/* 80340B6C 0033C7CC 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B70 0033C7D0 38 BF 02 E4 */ addi r5, r31, 0x2e4
+/* 80340B74 0033C7D4 4B FF E9 2D */ bl gpiAppendStringToBuffer
+/* 80340B78 0033C7D8 7F 23 CB 78 */ mr r3, r25
+/* 80340B7C 0033C7DC 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B80 0033C7E0 38 A1 00 08 */ addi r5, r1, 8
+/* 80340B84 0033C7E4 4B FF E9 1D */ bl gpiAppendStringToBuffer
+/* 80340B88 0033C7E8 7F 23 CB 78 */ mr r3, r25
+/* 80340B8C 0033C7EC 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340B90 0033C7F0 38 BF 02 A0 */ addi r5, r31, 0x2a0
+/* 80340B94 0033C7F4 4B FF E9 0D */ bl gpiAppendStringToBuffer
+/* 80340B98 0033C7F8 80 BD 04 84 */ lwz r5, 0x484(r29)
+/* 80340B9C 0033C7FC 7F 23 CB 78 */ mr r3, r25
+/* 80340BA0 0033C800 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340BA4 0033C804 4B FF E9 59 */ bl gpiAppendIntToBuffer
+/* 80340BA8 0033C808 7F 23 CB 78 */ mr r3, r25
+/* 80340BAC 0033C80C 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340BB0 0033C810 38 BF 02 AC */ addi r5, r31, 0x2ac
+/* 80340BB4 0033C814 4B FF E8 ED */ bl gpiAppendStringToBuffer
+/* 80340BB8 0033C818 3C A0 80 61 */ lis r5, lbl_80610AF8@ha
+/* 80340BBC 0033C81C 7F 23 CB 78 */ mr r3, r25
+/* 80340BC0 0033C820 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340BC4 0033C824 38 A5 0A F8 */ addi r5, r5, lbl_80610AF8@l
+/* 80340BC8 0033C828 4B FF E8 D9 */ bl gpiAppendStringToBuffer
+/* 80340BCC 0033C82C 7F 23 CB 78 */ mr r3, r25
+/* 80340BD0 0033C830 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340BD4 0033C834 38 BF 02 B8 */ addi r5, r31, 0x2b8
+/* 80340BD8 0033C838 4B FF E8 C9 */ bl gpiAppendStringToBuffer
+/* 80340BDC 0033C83C 80 BD 04 88 */ lwz r5, 0x488(r29)
+/* 80340BE0 0033C840 7F 23 CB 78 */ mr r3, r25
+/* 80340BE4 0033C844 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340BE8 0033C848 4B FF E9 15 */ bl gpiAppendIntToBuffer
+/* 80340BEC 0033C84C 7F 23 CB 78 */ mr r3, r25
+/* 80340BF0 0033C850 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340BF4 0033C854 38 BF 02 54 */ addi r5, r31, 0x254
+/* 80340BF8 0033C858 4B FF E8 A9 */ bl gpiAppendStringToBuffer
+/* 80340BFC 0033C85C 7F 23 CB 78 */ mr r3, r25
+/* 80340C00 0033C860 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340C04 0033C864 38 BD 01 2F */ addi r5, r29, 0x12f
+/* 80340C08 0033C868 4B FF E8 99 */ bl gpiAppendStringToBuffer
+/* 80340C0C 0033C86C 88 1A 02 C2 */ lbz r0, 0x2c2(r26)
+/* 80340C10 0033C870 7C 00 07 75 */ extsb. r0, r0
+/* 80340C14 0033C874 41 82 00 94 */ beq lbl_80340CA8
+/* 80340C18 0033C878 38 7A 02 C2 */ addi r3, r26, 0x2c2
+/* 80340C1C 0033C87C 4B E8 5F 49 */ bl strlen
+/* 80340C20 0033C880 3C 80 79 70 */ lis r4, 0x79707367@ha
+/* 80340C24 0033C884 7C 7B 1B 78 */ mr r27, r3
+/* 80340C28 0033C888 38 64 73 67 */ addi r3, r4, 0x79707367@l
+/* 80340C2C 0033C88C 4B FF 84 35 */ bl Util_RandSeed
+/* 80340C30 0033C890 3B C1 00 94 */ addi r30, r1, 0x94
+/* 80340C34 0033C894 3B 80 00 00 */ li r28, 0
+/* 80340C38 0033C898 48 00 00 2C */ b lbl_80340C64
+lbl_80340C3C:
+/* 80340C3C 0033C89C 38 60 00 00 */ li r3, 0
+/* 80340C40 0033C8A0 38 80 00 FF */ li r4, 0xff
+/* 80340C44 0033C8A4 4B FF 84 35 */ bl Util_RandInt
+/* 80340C48 0033C8A8 7C 9A E2 14 */ add r4, r26, r28
+/* 80340C4C 0033C8AC 7C 63 07 74 */ extsb r3, r3
+/* 80340C50 0033C8B0 88 04 02 C2 */ lbz r0, 0x2c2(r4)
+/* 80340C54 0033C8B4 3B 9C 00 01 */ addi r28, r28, 1
+/* 80340C58 0033C8B8 7C 60 02 78 */ xor r0, r3, r0
+/* 80340C5C 0033C8BC 98 1E 00 00 */ stb r0, 0(r30)
+/* 80340C60 0033C8C0 3B DE 00 01 */ addi r30, r30, 1
+lbl_80340C64:
+/* 80340C64 0033C8C4 7C 1C D8 40 */ cmplw r28, r27
+/* 80340C68 0033C8C8 41 80 FF D4 */ blt lbl_80340C3C
+/* 80340C6C 0033C8CC 38 61 00 94 */ addi r3, r1, 0x94
+/* 80340C70 0033C8D0 38 00 00 00 */ li r0, 0
+/* 80340C74 0033C8D4 7C 03 E1 AE */ stbx r0, r3, r28
+/* 80340C78 0033C8D8 7F 65 DB 78 */ mr r5, r27
+/* 80340C7C 0033C8DC 38 81 00 38 */ addi r4, r1, 0x38
+/* 80340C80 0033C8E0 38 C0 00 01 */ li r6, 1
+/* 80340C84 0033C8E4 4B FF 84 69 */ bl B64Encode
+/* 80340C88 0033C8E8 7F 23 CB 78 */ mr r3, r25
+/* 80340C8C 0033C8EC 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340C90 0033C8F0 38 BF 02 F4 */ addi r5, r31, 0x2f4
+/* 80340C94 0033C8F4 4B FF E8 0D */ bl gpiAppendStringToBuffer
+/* 80340C98 0033C8F8 7F 23 CB 78 */ mr r3, r25
+/* 80340C9C 0033C8FC 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340CA0 0033C900 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80340CA4 0033C904 4B FF E7 FD */ bl gpiAppendStringToBuffer
+lbl_80340CA8:
+/* 80340CA8 0033C908 7F 23 CB 78 */ mr r3, r25
+/* 80340CAC 0033C90C 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340CB0 0033C910 38 BF 02 7C */ addi r5, r31, 0x27c
+/* 80340CB4 0033C914 4B FF E7 ED */ bl gpiAppendStringToBuffer
+/* 80340CB8 0033C918 80 BD 01 A4 */ lwz r5, 0x1a4(r29)
+/* 80340CBC 0033C91C 7F 23 CB 78 */ mr r3, r25
+/* 80340CC0 0033C920 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340CC4 0033C924 4B FF E8 39 */ bl gpiAppendIntToBuffer
+/* 80340CC8 0033C928 7F 23 CB 78 */ mr r3, r25
+/* 80340CCC 0033C92C 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340CD0 0033C930 38 AD 90 2C */ addi r5, r13, lbl_8063E2EC-_SDA_BASE_
+/* 80340CD4 0033C934 4B FF E7 CD */ bl gpiAppendStringToBuffer
+/* 80340CD8 0033C938 7F 23 CB 78 */ mr r3, r25
+/* 80340CDC 0033C93C 38 9D 02 10 */ addi r4, r29, 0x210
+/* 80340CE0 0033C940 38 AD 90 38 */ addi r5, r13, lbl_8063E2F8-_SDA_BASE_
+/* 80340CE4 0033C944 4B FF E7 BD */ bl gpiAppendStringToBuffer
+/* 80340CE8 0033C948 39 61 01 00 */ addi r11, r1, 0x100
+/* 80340CEC 0033C94C 38 60 00 00 */ li r3, 0
+/* 80340CF0 0033C950 4B E8 64 7D */ bl _restgpr_25
+/* 80340CF4 0033C954 80 01 01 04 */ lwz r0, 0x104(r1)
+/* 80340CF8 0033C958 7C 08 03 A6 */ mtlr r0
+/* 80340CFC 0033C95C 38 21 01 00 */ addi r1, r1, 0x100
+/* 80340D00 0033C960 4E 80 00 20 */ blr
+
+.global gpiProcessConnect
+gpiProcessConnect:
+/* 80340D04 0033C964 94 21 FD 30 */ stwu r1, -0x2d0(r1)
+/* 80340D08 0033C968 7C 08 02 A6 */ mflr r0
+/* 80340D0C 0033C96C 90 01 02 D4 */ stw r0, 0x2d4(r1)
+/* 80340D10 0033C970 39 61 02 D0 */ addi r11, r1, 0x2d0
+/* 80340D14 0033C974 4B E8 64 11 */ bl _savegpr_26
+/* 80340D18 0033C978 7C BA 2B 78 */ mr r26, r5
+/* 80340D1C 0033C97C 3F 80 80 45 */ lis r28, lbl_8044A820@ha
+/* 80340D20 0033C980 7C 9E 23 78 */ mr r30, r4
+/* 80340D24 0033C984 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80340D28 0033C988 7C 7D 1B 78 */ mr r29, r3
+/* 80340D2C 0033C98C 7F 44 D3 78 */ mr r4, r26
+/* 80340D30 0033C990 3B 9C A8 20 */ addi r28, r28, lbl_8044A820@l
+/* 80340D34 0033C994 38 A0 00 00 */ li r5, 0
+/* 80340D38 0033C998 48 00 72 5D */ bl gpiCheckForError
+/* 80340D3C 0033C99C 2C 03 00 00 */ cmpwi r3, 0
+/* 80340D40 0033C9A0 41 82 00 8C */ beq lbl_80340DCC
+/* 80340D44 0033C9A4 80 1F 04 34 */ lwz r0, 0x434(r31)
+/* 80340D48 0033C9A8 2C 00 01 06 */ cmpwi r0, 0x106
+/* 80340D4C 0033C9AC 40 82 00 28 */ bne lbl_80340D74
+/* 80340D50 0033C9B0 80 9F 01 A0 */ lwz r4, 0x1a0(r31)
+/* 80340D54 0033C9B4 2C 04 00 00 */ cmpwi r4, 0
+/* 80340D58 0033C9B8 41 82 00 1C */ beq lbl_80340D74
+/* 80340D5C 0033C9BC 7F A3 EB 78 */ mr r3, r29
+/* 80340D60 0033C9C0 48 00 4D 05 */ bl gpiRemoveProfileByID
+/* 80340D64 0033C9C4 38 00 00 00 */ li r0, 0
+/* 80340D68 0033C9C8 90 1F 01 9C */ stw r0, 0x19c(r31)
+/* 80340D6C 0033C9CC 90 1F 01 A0 */ stw r0, 0x1a0(r31)
+/* 80340D70 0033C9D0 48 00 00 34 */ b lbl_80340DA4
+lbl_80340D74:
+/* 80340D74 0033C9D4 2C 00 02 01 */ cmpwi r0, 0x201
+/* 80340D78 0033C9D8 40 82 00 2C */ bne lbl_80340DA4
+/* 80340D7C 0033C9DC 7F 43 D3 78 */ mr r3, r26
+/* 80340D80 0033C9E0 38 A1 00 B8 */ addi r5, r1, 0xb8
+/* 80340D84 0033C9E4 38 8D 90 50 */ addi r4, r13, lbl_8063E310-_SDA_BASE_
+/* 80340D88 0033C9E8 38 C0 02 00 */ li r6, 0x200
+/* 80340D8C 0033C9EC 48 00 73 01 */ bl gpiValueForKey
+/* 80340D90 0033C9F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80340D94 0033C9F4 41 82 00 10 */ beq lbl_80340DA4
+/* 80340D98 0033C9F8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80340D9C 0033C9FC 4B E8 F9 71 */ bl atoi
+/* 80340DA0 0033CA00 90 7F 01 A0 */ stw r3, 0x1a0(r31)
+lbl_80340DA4:
+/* 80340DA4 0033CA04 80 9F 04 34 */ lwz r4, 0x434(r31)
+/* 80340DA8 0033CA08 7F A3 EB 78 */ mr r3, r29
+/* 80340DAC 0033CA0C 7F E5 FB 78 */ mr r5, r31
+/* 80340DB0 0033CA10 48 00 76 59 */ bl gpiSetError
+/* 80340DB4 0033CA14 7F A3 EB 78 */ mr r3, r29
+/* 80340DB8 0033CA18 38 80 00 04 */ li r4, 4
+/* 80340DBC 0033CA1C 38 A0 00 01 */ li r5, 1
+/* 80340DC0 0033CA20 4B FF EE A9 */ bl gpiCallErrorCallback
+/* 80340DC4 0033CA24 38 60 00 04 */ li r3, 4
+/* 80340DC8 0033CA28 48 00 05 B0 */ b lbl_80341378
+lbl_80340DCC:
+/* 80340DCC 0033CA2C 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 80340DD0 0033CA30 83 7E 00 04 */ lwz r27, 4(r30)
+/* 80340DD4 0033CA34 2C 00 00 02 */ cmpwi r0, 2
+/* 80340DD8 0033CA38 41 82 01 FC */ beq lbl_80340FD4
+/* 80340DDC 0033CA3C 40 80 00 10 */ bge lbl_80340DEC
+/* 80340DE0 0033CA40 2C 00 00 01 */ cmpwi r0, 1
+/* 80340DE4 0033CA44 40 80 00 14 */ bge lbl_80340DF8
+/* 80340DE8 0033CA48 48 00 05 8C */ b lbl_80341374
+lbl_80340DEC:
+/* 80340DEC 0033CA4C 2C 00 00 04 */ cmpwi r0, 4
+/* 80340DF0 0033CA50 40 80 05 84 */ bge lbl_80341374
+/* 80340DF4 0033CA54 48 00 00 DC */ b lbl_80340ED0
+lbl_80340DF8:
+/* 80340DF8 0033CA58 7F 43 D3 78 */ mr r3, r26
+/* 80340DFC 0033CA5C 38 8D 90 58 */ addi r4, r13, lbl_8063E318-_SDA_BASE_
+/* 80340E00 0033CA60 38 A0 00 05 */ li r5, 5
+/* 80340E04 0033CA64 4B E8 D7 65 */ bl strncmp
+/* 80340E08 0033CA68 2C 03 00 00 */ cmpwi r3, 0
+/* 80340E0C 0033CA6C 41 82 00 2C */ beq lbl_80340E38
+/* 80340E10 0033CA70 7F A3 EB 78 */ mr r3, r29
+/* 80340E14 0033CA74 38 BC 03 00 */ addi r5, r28, 0x300
+/* 80340E18 0033CA78 38 80 00 01 */ li r4, 1
+/* 80340E1C 0033CA7C 48 00 75 ED */ bl gpiSetError
+/* 80340E20 0033CA80 7F A3 EB 78 */ mr r3, r29
+/* 80340E24 0033CA84 38 80 00 03 */ li r4, 3
+/* 80340E28 0033CA88 38 A0 00 01 */ li r5, 1
+/* 80340E2C 0033CA8C 4B FF EE 3D */ bl gpiCallErrorCallback
+/* 80340E30 0033CA90 38 60 00 03 */ li r3, 3
+/* 80340E34 0033CA94 48 00 05 44 */ b lbl_80341378
+lbl_80340E38:
+/* 80340E38 0033CA98 7F 43 D3 78 */ mr r3, r26
+/* 80340E3C 0033CA9C 7F 65 DB 78 */ mr r5, r27
+/* 80340E40 0033CAA0 38 9C 02 3C */ addi r4, r28, 0x23c
+/* 80340E44 0033CAA4 38 C0 00 80 */ li r6, 0x80
+/* 80340E48 0033CAA8 48 00 72 45 */ bl gpiValueForKey
+/* 80340E4C 0033CAAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80340E50 0033CAB0 40 82 00 2C */ bne lbl_80340E7C
+/* 80340E54 0033CAB4 7F A3 EB 78 */ mr r3, r29
+/* 80340E58 0033CAB8 38 BC 03 00 */ addi r5, r28, 0x300
+/* 80340E5C 0033CABC 38 80 00 01 */ li r4, 1
+/* 80340E60 0033CAC0 48 00 75 A9 */ bl gpiSetError
+/* 80340E64 0033CAC4 7F A3 EB 78 */ mr r3, r29
+/* 80340E68 0033CAC8 38 80 00 03 */ li r4, 3
+/* 80340E6C 0033CACC 38 A0 00 01 */ li r5, 1
+/* 80340E70 0033CAD0 4B FF ED F9 */ bl gpiCallErrorCallback
+/* 80340E74 0033CAD4 38 60 00 03 */ li r3, 3
+/* 80340E78 0033CAD8 48 00 05 00 */ b lbl_80341378
+lbl_80340E7C:
+/* 80340E7C 0033CADC 80 1B 03 04 */ lwz r0, 0x304(r27)
+/* 80340E80 0033CAE0 2C 00 00 00 */ cmpwi r0, 0
+/* 80340E84 0033CAE4 41 82 00 28 */ beq lbl_80340EAC
+/* 80340E88 0033CAE8 7F A3 EB 78 */ mr r3, r29
+/* 80340E8C 0033CAEC 7F 64 DB 78 */ mr r4, r27
+/* 80340E90 0033CAF0 4B FF FC 55 */ bl gpiSendNewuser
+/* 80340E94 0033CAF4 2C 03 00 00 */ cmpwi r3, 0
+/* 80340E98 0033CAF8 41 82 00 08 */ beq lbl_80340EA0
+/* 80340E9C 0033CAFC 48 00 04 DC */ b lbl_80341378
+lbl_80340EA0:
+/* 80340EA0 0033CB00 38 00 00 03 */ li r0, 3
+/* 80340EA4 0033CB04 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 80340EA8 0033CB08 48 00 04 CC */ b lbl_80341374
+lbl_80340EAC:
+/* 80340EAC 0033CB0C 7F A3 EB 78 */ mr r3, r29
+/* 80340EB0 0033CB10 7F 64 DB 78 */ mr r4, r27
+/* 80340EB4 0033CB14 4B FF F8 0D */ bl gpiSendLogin
+/* 80340EB8 0033CB18 2C 03 00 00 */ cmpwi r3, 0
+/* 80340EBC 0033CB1C 41 82 00 08 */ beq lbl_80340EC4
+/* 80340EC0 0033CB20 48 00 04 B8 */ b lbl_80341378
+lbl_80340EC4:
+/* 80340EC4 0033CB24 38 00 00 02 */ li r0, 2
+/* 80340EC8 0033CB28 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 80340ECC 0033CB2C 48 00 04 A8 */ b lbl_80341374
+lbl_80340ED0:
+/* 80340ED0 0033CB30 7F 43 D3 78 */ mr r3, r26
+/* 80340ED4 0033CB34 38 8D 90 60 */ addi r4, r13, lbl_8063E320-_SDA_BASE_
+/* 80340ED8 0033CB38 38 A0 00 05 */ li r5, 5
+/* 80340EDC 0033CB3C 4B E8 D6 8D */ bl strncmp
+/* 80340EE0 0033CB40 2C 03 00 00 */ cmpwi r3, 0
+/* 80340EE4 0033CB44 41 82 00 2C */ beq lbl_80340F10
+/* 80340EE8 0033CB48 7F A3 EB 78 */ mr r3, r29
+/* 80340EEC 0033CB4C 38 BC 03 00 */ addi r5, r28, 0x300
+/* 80340EF0 0033CB50 38 80 00 01 */ li r4, 1
+/* 80340EF4 0033CB54 48 00 75 15 */ bl gpiSetError
+/* 80340EF8 0033CB58 7F A3 EB 78 */ mr r3, r29
+/* 80340EFC 0033CB5C 38 80 00 03 */ li r4, 3
+/* 80340F00 0033CB60 38 A0 00 01 */ li r5, 1
+/* 80340F04 0033CB64 4B FF ED 65 */ bl gpiCallErrorCallback
+/* 80340F08 0033CB68 38 60 00 03 */ li r3, 3
+/* 80340F0C 0033CB6C 48 00 04 6C */ b lbl_80341378
+lbl_80340F10:
+/* 80340F10 0033CB70 7F 43 D3 78 */ mr r3, r26
+/* 80340F14 0033CB74 38 9C 02 64 */ addi r4, r28, 0x264
+/* 80340F18 0033CB78 38 A1 00 B8 */ addi r5, r1, 0xb8
+/* 80340F1C 0033CB7C 38 C0 02 00 */ li r6, 0x200
+/* 80340F20 0033CB80 48 00 71 6D */ bl gpiValueForKey
+/* 80340F24 0033CB84 2C 03 00 00 */ cmpwi r3, 0
+/* 80340F28 0033CB88 40 82 00 2C */ bne lbl_80340F54
+/* 80340F2C 0033CB8C 7F A3 EB 78 */ mr r3, r29
+/* 80340F30 0033CB90 38 BC 03 30 */ addi r5, r28, 0x330
+/* 80340F34 0033CB94 38 80 00 01 */ li r4, 1
+/* 80340F38 0033CB98 48 00 74 D1 */ bl gpiSetError
+/* 80340F3C 0033CB9C 7F A3 EB 78 */ mr r3, r29
+/* 80340F40 0033CBA0 38 80 00 03 */ li r4, 3
+/* 80340F44 0033CBA4 38 A0 00 01 */ li r5, 1
+/* 80340F48 0033CBA8 4B FF ED 21 */ bl gpiCallErrorCallback
+/* 80340F4C 0033CBAC 38 60 00 03 */ li r3, 3
+/* 80340F50 0033CBB0 48 00 04 28 */ b lbl_80341378
+lbl_80340F54:
+/* 80340F54 0033CBB4 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80340F58 0033CBB8 4B E8 F7 B5 */ bl atoi
+/* 80340F5C 0033CBBC 90 7F 01 9C */ stw r3, 0x19c(r31)
+/* 80340F60 0033CBC0 7F 43 D3 78 */ mr r3, r26
+/* 80340F64 0033CBC4 38 9C 02 70 */ addi r4, r28, 0x270
+/* 80340F68 0033CBC8 38 A1 00 B8 */ addi r5, r1, 0xb8
+/* 80340F6C 0033CBCC 38 C0 02 00 */ li r6, 0x200
+/* 80340F70 0033CBD0 48 00 71 1D */ bl gpiValueForKey
+/* 80340F74 0033CBD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80340F78 0033CBD8 40 82 00 2C */ bne lbl_80340FA4
+/* 80340F7C 0033CBDC 7F A3 EB 78 */ mr r3, r29
+/* 80340F80 0033CBE0 38 BC 03 30 */ addi r5, r28, 0x330
+/* 80340F84 0033CBE4 38 80 00 01 */ li r4, 1
+/* 80340F88 0033CBE8 48 00 74 81 */ bl gpiSetError
+/* 80340F8C 0033CBEC 7F A3 EB 78 */ mr r3, r29
+/* 80340F90 0033CBF0 38 80 00 03 */ li r4, 3
+/* 80340F94 0033CBF4 38 A0 00 01 */ li r5, 1
+/* 80340F98 0033CBF8 4B FF EC D1 */ bl gpiCallErrorCallback
+/* 80340F9C 0033CBFC 38 60 00 03 */ li r3, 3
+/* 80340FA0 0033CC00 48 00 03 D8 */ b lbl_80341378
+lbl_80340FA4:
+/* 80340FA4 0033CC04 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80340FA8 0033CC08 4B E8 F7 65 */ bl atoi
+/* 80340FAC 0033CC0C 90 7F 01 A0 */ stw r3, 0x1a0(r31)
+/* 80340FB0 0033CC10 7F A3 EB 78 */ mr r3, r29
+/* 80340FB4 0033CC14 7F 64 DB 78 */ mr r4, r27
+/* 80340FB8 0033CC18 4B FF F7 09 */ bl gpiSendLogin
+/* 80340FBC 0033CC1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80340FC0 0033CC20 41 82 00 08 */ beq lbl_80340FC8
+/* 80340FC4 0033CC24 48 00 03 B4 */ b lbl_80341378
+lbl_80340FC8:
+/* 80340FC8 0033CC28 38 00 00 02 */ li r0, 2
+/* 80340FCC 0033CC2C 90 1E 00 14 */ stw r0, 0x14(r30)
+/* 80340FD0 0033CC30 48 00 03 A4 */ b lbl_80341374
+lbl_80340FD4:
+/* 80340FD4 0033CC34 7F 43 D3 78 */ mr r3, r26
+/* 80340FD8 0033CC38 38 8D 90 68 */ addi r4, r13, lbl_8063E328-_SDA_BASE_
+/* 80340FDC 0033CC3C 38 A0 00 05 */ li r5, 5
+/* 80340FE0 0033CC40 4B E8 D5 89 */ bl strncmp
+/* 80340FE4 0033CC44 2C 03 00 00 */ cmpwi r3, 0
+/* 80340FE8 0033CC48 41 82 00 2C */ beq lbl_80341014
+/* 80340FEC 0033CC4C 7F A3 EB 78 */ mr r3, r29
+/* 80340FF0 0033CC50 38 BC 03 00 */ addi r5, r28, 0x300
+/* 80340FF4 0033CC54 38 80 00 01 */ li r4, 1
+/* 80340FF8 0033CC58 48 00 74 11 */ bl gpiSetError
+/* 80340FFC 0033CC5C 7F A3 EB 78 */ mr r3, r29
+/* 80341000 0033CC60 38 80 00 03 */ li r4, 3
+/* 80341004 0033CC64 38 A0 00 01 */ li r5, 1
+/* 80341008 0033CC68 4B FF EC 61 */ bl gpiCallErrorCallback
+/* 8034100C 0033CC6C 38 60 00 03 */ li r3, 3
+/* 80341010 0033CC70 48 00 03 68 */ b lbl_80341378
+lbl_80341014:
+/* 80341014 0033CC74 7F 43 D3 78 */ mr r3, r26
+/* 80341018 0033CC78 38 9C 03 60 */ addi r4, r28, 0x360
+/* 8034101C 0033CC7C 38 A1 00 B8 */ addi r5, r1, 0xb8
+/* 80341020 0033CC80 38 C0 02 00 */ li r6, 0x200
+/* 80341024 0033CC84 48 00 70 69 */ bl gpiValueForKey
+/* 80341028 0033CC88 2C 03 00 00 */ cmpwi r3, 0
+/* 8034102C 0033CC8C 40 82 00 2C */ bne lbl_80341058
+/* 80341030 0033CC90 7F A3 EB 78 */ mr r3, r29
+/* 80341034 0033CC94 38 BC 03 30 */ addi r5, r28, 0x330
+/* 80341038 0033CC98 38 80 00 01 */ li r4, 1
+/* 8034103C 0033CC9C 48 00 73 CD */ bl gpiSetError
+/* 80341040 0033CCA0 7F A3 EB 78 */ mr r3, r29
+/* 80341044 0033CCA4 38 80 00 03 */ li r4, 3
+/* 80341048 0033CCA8 38 A0 00 01 */ li r5, 1
+/* 8034104C 0033CCAC 4B FF EC 1D */ bl gpiCallErrorCallback
+/* 80341050 0033CCB0 38 60 00 03 */ li r3, 3
+/* 80341054 0033CCB4 48 00 03 24 */ b lbl_80341378
+lbl_80341058:
+/* 80341058 0033CCB8 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8034105C 0033CCBC 4B E8 F6 B1 */ bl atoi
+/* 80341060 0033CCC0 90 7F 01 98 */ stw r3, 0x198(r31)
+/* 80341064 0033CCC4 7F 43 D3 78 */ mr r3, r26
+/* 80341068 0033CCC8 38 9C 02 64 */ addi r4, r28, 0x264
+/* 8034106C 0033CCCC 38 A1 00 B8 */ addi r5, r1, 0xb8
+/* 80341070 0033CCD0 38 C0 02 00 */ li r6, 0x200
+/* 80341074 0033CCD4 48 00 70 19 */ bl gpiValueForKey
+/* 80341078 0033CCD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034107C 0033CCDC 40 82 00 2C */ bne lbl_803410A8
+/* 80341080 0033CCE0 7F A3 EB 78 */ mr r3, r29
+/* 80341084 0033CCE4 38 BC 03 30 */ addi r5, r28, 0x330
+/* 80341088 0033CCE8 38 80 00 01 */ li r4, 1
+/* 8034108C 0033CCEC 48 00 73 7D */ bl gpiSetError
+/* 80341090 0033CCF0 7F A3 EB 78 */ mr r3, r29
+/* 80341094 0033CCF4 38 80 00 03 */ li r4, 3
+/* 80341098 0033CCF8 38 A0 00 01 */ li r5, 1
+/* 8034109C 0033CCFC 4B FF EB CD */ bl gpiCallErrorCallback
+/* 803410A0 0033CD00 38 60 00 03 */ li r3, 3
+/* 803410A4 0033CD04 48 00 02 D4 */ b lbl_80341378
+lbl_803410A8:
+/* 803410A8 0033CD08 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803410AC 0033CD0C 4B E8 F6 61 */ bl atoi
+/* 803410B0 0033CD10 90 7F 01 9C */ stw r3, 0x19c(r31)
+/* 803410B4 0033CD14 7F 43 D3 78 */ mr r3, r26
+/* 803410B8 0033CD18 38 9C 02 70 */ addi r4, r28, 0x270
+/* 803410BC 0033CD1C 38 A1 00 B8 */ addi r5, r1, 0xb8
+/* 803410C0 0033CD20 38 C0 02 00 */ li r6, 0x200
+/* 803410C4 0033CD24 48 00 6F C9 */ bl gpiValueForKey
+/* 803410C8 0033CD28 2C 03 00 00 */ cmpwi r3, 0
+/* 803410CC 0033CD2C 40 82 00 2C */ bne lbl_803410F8
+/* 803410D0 0033CD30 7F A3 EB 78 */ mr r3, r29
+/* 803410D4 0033CD34 38 BC 03 30 */ addi r5, r28, 0x330
+/* 803410D8 0033CD38 38 80 00 01 */ li r4, 1
+/* 803410DC 0033CD3C 48 00 73 2D */ bl gpiSetError
+/* 803410E0 0033CD40 7F A3 EB 78 */ mr r3, r29
+/* 803410E4 0033CD44 38 80 00 03 */ li r4, 3
+/* 803410E8 0033CD48 38 A0 00 01 */ li r5, 1
+/* 803410EC 0033CD4C 4B FF EB 7D */ bl gpiCallErrorCallback
+/* 803410F0 0033CD50 38 60 00 03 */ li r3, 3
+/* 803410F4 0033CD54 48 00 02 84 */ b lbl_80341378
+lbl_803410F8:
+/* 803410F8 0033CD58 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803410FC 0033CD5C 4B E8 F6 11 */ bl atoi
+/* 80341100 0033CD60 90 7F 01 A0 */ stw r3, 0x1a0(r31)
+/* 80341104 0033CD64 7F 43 D3 78 */ mr r3, r26
+/* 80341108 0033CD68 38 9C 02 54 */ addi r4, r28, 0x254
+/* 8034110C 0033CD6C 38 A1 00 24 */ addi r5, r1, 0x24
+/* 80341110 0033CD70 38 C0 00 15 */ li r6, 0x15
+/* 80341114 0033CD74 48 00 6F 79 */ bl gpiValueForKey
+/* 80341118 0033CD78 2C 03 00 00 */ cmpwi r3, 0
+/* 8034111C 0033CD7C 40 82 00 0C */ bne lbl_80341128
+/* 80341120 0033CD80 38 00 00 00 */ li r0, 0
+/* 80341124 0033CD84 98 01 00 24 */ stb r0, 0x24(r1)
+lbl_80341128:
+/* 80341128 0033CD88 7F 43 D3 78 */ mr r3, r26
+/* 8034112C 0033CD8C 38 BF 04 8C */ addi r5, r31, 0x48c
+/* 80341130 0033CD90 38 8D 90 70 */ addi r4, r13, lbl_8063E330-_SDA_BASE_
+/* 80341134 0033CD94 38 C0 00 19 */ li r6, 0x19
+/* 80341138 0033CD98 48 00 6F 55 */ bl gpiValueForKey
+/* 8034113C 0033CD9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80341140 0033CDA0 40 82 00 0C */ bne lbl_8034114C
+/* 80341144 0033CDA4 38 00 00 00 */ li r0, 0
+/* 80341148 0033CDA8 98 1F 04 8C */ stb r0, 0x48c(r31)
+lbl_8034114C:
+/* 8034114C 0033CDAC 80 BF 01 A4 */ lwz r5, 0x1a4(r31)
+/* 80341150 0033CDB0 2C 05 00 00 */ cmpwi r5, 0
+/* 80341154 0033CDB4 41 82 00 18 */ beq lbl_8034116C
+/* 80341158 0033CDB8 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034115C 0033CDBC 38 8D 8F F8 */ addi r4, r13, lbl_8063E2B8-_SDA_BASE_
+/* 80341160 0033CDC0 4C C6 31 82 */ crclr 6
+/* 80341164 0033CDC4 4B E8 B9 99 */ bl sprintf
+/* 80341168 0033CDC8 48 00 00 10 */ b lbl_80341178
+lbl_8034116C:
+/* 8034116C 0033CDCC 38 61 00 18 */ addi r3, r1, 0x18
+/* 80341170 0033CDD0 38 8D 8F FC */ addi r4, r13, lbl_8063E2BC-_SDA_BASE_
+/* 80341174 0033CDD4 4B E8 D1 5D */ bl strcpy
+lbl_80341178:
+/* 80341178 0033CDD8 88 1B 00 C2 */ lbz r0, 0xc2(r27)
+/* 8034117C 0033CDDC 7C 00 07 75 */ extsb. r0, r0
+/* 80341180 0033CDE0 41 82 00 0C */ beq lbl_8034118C
+/* 80341184 0033CDE4 38 FB 00 C2 */ addi r7, r27, 0xc2
+/* 80341188 0033CDE8 48 00 00 50 */ b lbl_803411D8
+lbl_8034118C:
+/* 8034118C 0033CDEC 88 1F 01 2F */ lbz r0, 0x12f(r31)
+/* 80341190 0033CDF0 7C 00 07 75 */ extsb. r0, r0
+/* 80341194 0033CDF4 41 82 00 24 */ beq lbl_803411B8
+/* 80341198 0033CDF8 38 61 00 60 */ addi r3, r1, 0x60
+/* 8034119C 0033CDFC 38 A1 00 18 */ addi r5, r1, 0x18
+/* 803411A0 0033CE00 38 DF 01 2F */ addi r6, r31, 0x12f
+/* 803411A4 0033CE04 38 8D 90 00 */ addi r4, r13, lbl_8063E2C0-_SDA_BASE_
+/* 803411A8 0033CE08 4C C6 31 82 */ crclr 6
+/* 803411AC 0033CE0C 4B E8 B9 51 */ bl sprintf
+/* 803411B0 0033CE10 38 E1 00 60 */ addi r7, r1, 0x60
+/* 803411B4 0033CE14 48 00 00 24 */ b lbl_803411D8
+lbl_803411B8:
+/* 803411B8 0033CE18 38 61 00 60 */ addi r3, r1, 0x60
+/* 803411BC 0033CE1C 38 A1 00 18 */ addi r5, r1, 0x18
+/* 803411C0 0033CE20 38 DF 01 10 */ addi r6, r31, 0x110
+/* 803411C4 0033CE24 38 FF 01 44 */ addi r7, r31, 0x144
+/* 803411C8 0033CE28 38 8D 90 08 */ addi r4, r13, lbl_8063E2C8-_SDA_BASE_
+/* 803411CC 0033CE2C 4C C6 31 82 */ crclr 6
+/* 803411D0 0033CE30 4B E8 B9 2D */ bl sprintf
+/* 803411D4 0033CE34 38 E1 00 60 */ addi r7, r1, 0x60
+lbl_803411D8:
+/* 803411D8 0033CE38 38 BB 00 A1 */ addi r5, r27, 0xa1
+/* 803411DC 0033CE3C 7F 68 DB 78 */ mr r8, r27
+/* 803411E0 0033CE40 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 803411E4 0033CE44 38 9C 01 F8 */ addi r4, r28, 0x1f8
+/* 803411E8 0033CE48 7C AA 2B 78 */ mr r10, r5
+/* 803411EC 0033CE4C 38 DC 02 08 */ addi r6, r28, 0x208
+/* 803411F0 0033CE50 39 3B 00 80 */ addi r9, r27, 0x80
+/* 803411F4 0033CE54 4C C6 31 82 */ crclr 6
+/* 803411F8 0033CE58 4B E8 B9 05 */ bl sprintf
+/* 803411FC 0033CE5C 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 80341200 0033CE60 4B E8 59 65 */ bl strlen
+/* 80341204 0033CE64 7C 64 1B 78 */ mr r4, r3
+/* 80341208 0033CE68 38 61 00 B8 */ addi r3, r1, 0xb8
+/* 8034120C 0033CE6C 38 A1 00 3C */ addi r5, r1, 0x3c
+/* 80341210 0033CE70 4B FF 67 FD */ bl MD5Digest
+/* 80341214 0033CE74 7F 43 D3 78 */ mr r3, r26
+/* 80341218 0033CE78 38 A1 00 B8 */ addi r5, r1, 0xb8
+/* 8034121C 0033CE7C 38 8D 90 78 */ addi r4, r13, lbl_8063E338-_SDA_BASE_
+/* 80341220 0033CE80 38 C0 02 00 */ li r6, 0x200
+/* 80341224 0033CE84 48 00 6E 69 */ bl gpiValueForKey
+/* 80341228 0033CE88 2C 03 00 00 */ cmpwi r3, 0
+/* 8034122C 0033CE8C 40 82 00 2C */ bne lbl_80341258
+/* 80341230 0033CE90 7F A3 EB 78 */ mr r3, r29
+/* 80341234 0033CE94 38 BC 03 30 */ addi r5, r28, 0x330
+/* 80341238 0033CE98 38 80 00 01 */ li r4, 1
+/* 8034123C 0033CE9C 48 00 71 CD */ bl gpiSetError
+/* 80341240 0033CEA0 7F A3 EB 78 */ mr r3, r29
+/* 80341244 0033CEA4 38 80 00 03 */ li r4, 3
+/* 80341248 0033CEA8 38 A0 00 01 */ li r5, 1
+/* 8034124C 0033CEAC 4B FF EA 1D */ bl gpiCallErrorCallback
+/* 80341250 0033CEB0 38 60 00 03 */ li r3, 3
+/* 80341254 0033CEB4 48 00 01 24 */ b lbl_80341378
+lbl_80341258:
+/* 80341258 0033CEB8 38 61 00 3C */ addi r3, r1, 0x3c
+/* 8034125C 0033CEBC 38 81 00 B8 */ addi r4, r1, 0xb8
+/* 80341260 0033CEC0 38 A0 00 20 */ li r5, 0x20
+/* 80341264 0033CEC4 4B E8 91 35 */ bl memcmp
+/* 80341268 0033CEC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034126C 0033CECC 41 82 00 2C */ beq lbl_80341298
+/* 80341270 0033CED0 7F A3 EB 78 */ mr r3, r29
+/* 80341274 0033CED4 38 BC 03 6C */ addi r5, r28, 0x36c
+/* 80341278 0033CED8 38 80 01 08 */ li r4, 0x108
+/* 8034127C 0033CEDC 48 00 71 8D */ bl gpiSetError
+/* 80341280 0033CEE0 7F A3 EB 78 */ mr r3, r29
+/* 80341284 0033CEE4 38 80 00 03 */ li r4, 3
+/* 80341288 0033CEE8 38 A0 00 01 */ li r5, 1
+/* 8034128C 0033CEEC 4B FF E9 DD */ bl gpiCallErrorCallback
+/* 80341290 0033CEF0 38 60 00 03 */ li r3, 3
+/* 80341294 0033CEF4 48 00 00 E4 */ b lbl_80341378
+lbl_80341298:
+/* 80341298 0033CEF8 80 1F 01 00 */ lwz r0, 0x100(r31)
+/* 8034129C 0033CEFC 2C 00 00 00 */ cmpwi r0, 0
+/* 803412A0 0033CF00 41 82 00 20 */ beq lbl_803412C0
+/* 803412A4 0033CF04 80 9F 01 A0 */ lwz r4, 0x1a0(r31)
+/* 803412A8 0033CF08 7F A3 EB 78 */ mr r3, r29
+/* 803412AC 0033CF0C 48 00 45 51 */ bl gpiProfileListAdd
+/* 803412B0 0033CF10 80 1F 01 A0 */ lwz r0, 0x1a0(r31)
+/* 803412B4 0033CF14 90 03 00 00 */ stw r0, 0(r3)
+/* 803412B8 0033CF18 80 1F 01 9C */ lwz r0, 0x19c(r31)
+/* 803412BC 0033CF1C 90 03 00 04 */ stw r0, 4(r3)
+lbl_803412C0:
+/* 803412C0 0033CF20 38 00 00 03 */ li r0, 3
+/* 803412C4 0033CF24 90 1F 01 F4 */ stw r0, 0x1f4(r31)
+/* 803412C8 0033CF28 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 803412CC 0033CF2C 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 803412D0 0033CF30 2C 03 00 00 */ cmpwi r3, 0
+/* 803412D4 0033CF34 90 61 00 10 */ stw r3, 0x10(r1)
+/* 803412D8 0033CF38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803412DC 0033CF3C 41 82 00 8C */ beq lbl_80341368
+/* 803412E0 0033CF40 38 60 00 20 */ li r3, 0x20
+/* 803412E4 0033CF44 4B FF 80 31 */ bl gsimalloc
+/* 803412E8 0033CF48 2C 03 00 00 */ cmpwi r3, 0
+/* 803412EC 0033CF4C 7C 7B 1B 78 */ mr r27, r3
+/* 803412F0 0033CF50 40 82 00 18 */ bne lbl_80341308
+/* 803412F4 0033CF54 7F A3 EB 78 */ mr r3, r29
+/* 803412F8 0033CF58 38 9C 01 A8 */ addi r4, r28, 0x1a8
+/* 803412FC 0033CF5C 48 00 71 5D */ bl gpiSetErrorString
+/* 80341300 0033CF60 38 60 00 01 */ li r3, 1
+/* 80341304 0033CF64 48 00 00 74 */ b lbl_80341378
+lbl_80341308:
+/* 80341308 0033CF68 38 80 00 00 */ li r4, 0
+/* 8034130C 0033CF6C 38 A0 00 20 */ li r5, 0x20
+/* 80341310 0033CF70 4B CC 2D F5 */ bl memset
+/* 80341314 0033CF74 80 BF 01 A0 */ lwz r5, 0x1a0(r31)
+/* 80341318 0033CF78 38 00 00 00 */ li r0, 0
+/* 8034131C 0033CF7C 38 7B 00 08 */ addi r3, r27, 8
+/* 80341320 0033CF80 38 81 00 24 */ addi r4, r1, 0x24
+/* 80341324 0033CF84 90 BB 00 04 */ stw r5, 4(r27)
+/* 80341328 0033CF88 38 A0 00 15 */ li r5, 0x15
+/* 8034132C 0033CF8C 90 1B 00 00 */ stw r0, 0(r27)
+/* 80341330 0033CF90 48 00 6C 21 */ bl strzcpy
+/* 80341334 0033CF94 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 80341338 0033CF98 7F A3 EB 78 */ mr r3, r29
+/* 8034133C 0033CF9C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80341340 0033CFA0 7F 65 DB 78 */ mr r5, r27
+/* 80341344 0033CFA4 90 81 00 08 */ stw r4, 8(r1)
+/* 80341348 0033CFA8 7F C6 F3 78 */ mr r6, r30
+/* 8034134C 0033CFAC 38 81 00 08 */ addi r4, r1, 8
+/* 80341350 0033CFB0 38 E0 00 00 */ li r7, 0
+/* 80341354 0033CFB4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80341358 0033CFB8 4B FF E9 D1 */ bl gpiAddCallback
+/* 8034135C 0033CFBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80341360 0033CFC0 41 82 00 08 */ beq lbl_80341368
+/* 80341364 0033CFC4 48 00 00 14 */ b lbl_80341378
+lbl_80341368:
+/* 80341368 0033CFC8 7F A3 EB 78 */ mr r3, r29
+/* 8034136C 0033CFCC 7F C4 F3 78 */ mr r4, r30
+/* 80341370 0033CFD0 48 00 2C ED */ bl gpiRemoveOperation
+lbl_80341374:
+/* 80341374 0033CFD4 38 60 00 00 */ li r3, 0
+lbl_80341378:
+/* 80341378 0033CFD8 39 61 02 D0 */ addi r11, r1, 0x2d0
+/* 8034137C 0033CFDC 4B E8 5D F5 */ bl _restgpr_26
+/* 80341380 0033CFE0 80 01 02 D4 */ lwz r0, 0x2d4(r1)
+/* 80341384 0033CFE4 7C 08 03 A6 */ mtlr r0
+/* 80341388 0033CFE8 38 21 02 D0 */ addi r1, r1, 0x2d0
+/* 8034138C 0033CFEC 4E 80 00 20 */ blr
+
+.global gpiCheckConnect
+gpiCheckConnect:
+/* 80341390 0033CFF0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80341394 0033CFF4 7C 08 02 A6 */ mflr r0
+/* 80341398 0033CFF8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034139C 0033CFFC 38 A1 00 08 */ addi r5, r1, 8
+/* 803413A0 0033D000 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803413A4 0033D004 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803413A8 0033D008 7C 7E 1B 78 */ mr r30, r3
+/* 803413AC 0033D00C 83 E3 00 00 */ lwz r31, 0(r3)
+/* 803413B0 0033D010 80 9F 01 F0 */ lwz r4, 0x1f0(r31)
+/* 803413B4 0033D014 48 00 6D 85 */ bl gpiCheckSocketConnect
+/* 803413B8 0033D018 2C 03 00 00 */ cmpwi r3, 0
+/* 803413BC 0033D01C 41 82 00 08 */ beq lbl_803413C4
+/* 803413C0 0033D020 48 00 00 58 */ b lbl_80341418
+lbl_803413C4:
+/* 803413C4 0033D024 80 01 00 08 */ lwz r0, 8(r1)
+/* 803413C8 0033D028 2C 00 00 04 */ cmpwi r0, 4
+/* 803413CC 0033D02C 40 82 00 30 */ bne lbl_803413FC
+/* 803413D0 0033D030 3C A0 80 45 */ lis r5, lbl_8044ABAC@ha
+/* 803413D4 0033D034 7F C3 F3 78 */ mr r3, r30
+/* 803413D8 0033D038 38 A5 AB AC */ addi r5, r5, lbl_8044ABAC@l
+/* 803413DC 0033D03C 38 80 01 07 */ li r4, 0x107
+/* 803413E0 0033D040 48 00 70 29 */ bl gpiSetError
+/* 803413E4 0033D044 7F C3 F3 78 */ mr r3, r30
+/* 803413E8 0033D048 38 80 00 04 */ li r4, 4
+/* 803413EC 0033D04C 38 A0 00 01 */ li r5, 1
+/* 803413F0 0033D050 4B FF E8 79 */ bl gpiCallErrorCallback
+/* 803413F4 0033D054 38 60 00 04 */ li r3, 4
+/* 803413F8 0033D058 48 00 00 20 */ b lbl_80341418
+lbl_803413FC:
+/* 803413FC 0033D05C 2C 00 00 00 */ cmpwi r0, 0
+/* 80341400 0033D060 40 82 00 0C */ bne lbl_8034140C
+/* 80341404 0033D064 38 60 00 00 */ li r3, 0
+/* 80341408 0033D068 48 00 00 10 */ b lbl_80341418
+lbl_8034140C:
+/* 8034140C 0033D06C 38 00 00 02 */ li r0, 2
+/* 80341410 0033D070 38 60 00 00 */ li r3, 0
+/* 80341414 0033D074 90 1F 01 F4 */ stw r0, 0x1f4(r31)
+lbl_80341418:
+/* 80341418 0033D078 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034141C 0033D07C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80341420 0033D080 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80341424 0033D084 7C 08 03 A6 */ mtlr r0
+/* 80341428 0033D088 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034142C 0033D08C 4E 80 00 20 */ blr
+
+.global gpiDisconnectCleanupProfile
+gpiDisconnectCleanupProfile:
+/* 80341430 0033D090 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80341434 0033D094 7C 08 02 A6 */ mflr r0
+/* 80341438 0033D098 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034143C 0033D09C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80341440 0033D0A0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80341444 0033D0A4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80341448 0033D0A8 7C 9D 23 78 */ mr r29, r4
+/* 8034144C 0033D0AC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80341450 0033D0B0 7C 7C 1B 78 */ mr r28, r3
+/* 80341454 0033D0B4 80 A4 00 08 */ lwz r5, 8(r4)
+/* 80341458 0033D0B8 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8034145C 0033D0BC 2C 05 00 00 */ cmpwi r5, 0
+/* 80341460 0033D0C0 41 82 00 44 */ beq lbl_803414A4
+/* 80341464 0033D0C4 80 1E 01 04 */ lwz r0, 0x104(r30)
+/* 80341468 0033D0C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034146C 0033D0CC 40 82 00 38 */ bne lbl_803414A4
+/* 80341470 0033D0D0 80 65 00 08 */ lwz r3, 8(r5)
+/* 80341474 0033D0D4 4B FF 7E C5 */ bl gsifree
+/* 80341478 0033D0D8 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034147C 0033D0DC 3B E0 00 00 */ li r31, 0
+/* 80341480 0033D0E0 93 E3 00 08 */ stw r31, 8(r3)
+/* 80341484 0033D0E4 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80341488 0033D0E8 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034148C 0033D0EC 4B FF 7E AD */ bl gsifree
+/* 80341490 0033D0F0 80 7D 00 08 */ lwz r3, 8(r29)
+/* 80341494 0033D0F4 93 E3 00 0C */ stw r31, 0xc(r3)
+/* 80341498 0033D0F8 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034149C 0033D0FC 4B FF 7E 9D */ bl gsifree
+/* 803414A0 0033D100 93 FD 00 08 */ stw r31, 8(r29)
+lbl_803414A4:
+/* 803414A4 0033D104 80 7D 00 10 */ lwz r3, 0x10(r29)
+/* 803414A8 0033D108 4B FF 7E 91 */ bl gsifree
+/* 803414AC 0033D10C 3B E0 00 00 */ li r31, 0
+/* 803414B0 0033D110 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 803414B4 0033D114 93 FD 00 10 */ stw r31, 0x10(r29)
+/* 803414B8 0033D118 4B FF 7E 81 */ bl gsifree
+/* 803414BC 0033D11C 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 803414C0 0033D120 93 FD 00 18 */ stw r31, 0x18(r29)
+/* 803414C4 0033D124 2C 00 00 00 */ cmpwi r0, 0
+/* 803414C8 0033D128 93 FD 00 14 */ stw r31, 0x14(r29)
+/* 803414CC 0033D12C 41 82 00 1C */ beq lbl_803414E8
+/* 803414D0 0033D130 80 1E 01 04 */ lwz r0, 0x104(r30)
+/* 803414D4 0033D134 2C 00 00 01 */ cmpwi r0, 1
+/* 803414D8 0033D138 40 82 00 24 */ bne lbl_803414FC
+/* 803414DC 0033D13C 80 1D 00 08 */ lwz r0, 8(r29)
+/* 803414E0 0033D140 2C 00 00 00 */ cmpwi r0, 0
+/* 803414E4 0033D144 40 82 00 18 */ bne lbl_803414FC
+lbl_803414E8:
+/* 803414E8 0033D148 7F 83 E3 78 */ mr r3, r28
+/* 803414EC 0033D14C 7F A4 EB 78 */ mr r4, r29
+/* 803414F0 0033D150 48 00 45 C1 */ bl gpiRemoveProfile
+/* 803414F4 0033D154 38 60 00 00 */ li r3, 0
+/* 803414F8 0033D158 48 00 00 08 */ b lbl_80341500
+lbl_803414FC:
+/* 803414FC 0033D15C 38 60 00 01 */ li r3, 1
+lbl_80341500:
+/* 80341500 0033D160 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80341504 0033D164 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80341508 0033D168 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034150C 0033D16C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80341510 0033D170 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80341514 0033D174 7C 08 03 A6 */ mtlr r0
+/* 80341518 0033D178 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034151C 0033D17C 4E 80 00 20 */ blr
+
+.global gpiDisconnect
+gpiDisconnect:
+/* 80341520 0033D180 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80341524 0033D184 7C 08 02 A6 */ mflr r0
+/* 80341528 0033D188 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034152C 0033D18C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80341530 0033D190 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80341534 0033D194 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80341538 0033D198 7C 7D 1B 78 */ mr r29, r3
+/* 8034153C 0033D19C 83 C3 00 00 */ lwz r30, 0(r3)
+/* 80341540 0033D1A0 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
+/* 80341544 0033D1A4 2C 00 00 04 */ cmpwi r0, 4
+/* 80341548 0033D1A8 41 82 01 68 */ beq lbl_803416B0
+/* 8034154C 0033D1AC 2C 00 00 00 */ cmpwi r0, 0
+/* 80341550 0033D1B0 41 82 00 BC */ beq lbl_8034160C
+/* 80341554 0033D1B4 2C 04 00 00 */ cmpwi r4, 0
+/* 80341558 0033D1B8 41 82 00 3C */ beq lbl_80341594
+/* 8034155C 0033D1BC 2C 00 00 03 */ cmpwi r0, 3
+/* 80341560 0033D1C0 40 82 00 34 */ bne lbl_80341594
+/* 80341564 0033D1C4 3C A0 80 45 */ lis r5, lbl_8044ABD4@ha
+/* 80341568 0033D1C8 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034156C 0033D1CC 38 A5 AB D4 */ addi r5, r5, lbl_8044ABD4@l
+/* 80341570 0033D1D0 4B FF DF 31 */ bl gpiAppendStringToBuffer
+/* 80341574 0033D1D4 80 BE 01 98 */ lwz r5, 0x198(r30)
+/* 80341578 0033D1D8 7F A3 EB 78 */ mr r3, r29
+/* 8034157C 0033D1DC 38 9E 02 10 */ addi r4, r30, 0x210
+/* 80341580 0033D1E0 4B FF DF 7D */ bl gpiAppendIntToBuffer
+/* 80341584 0033D1E4 7F A3 EB 78 */ mr r3, r29
+/* 80341588 0033D1E8 38 9E 02 10 */ addi r4, r30, 0x210
+/* 8034158C 0033D1EC 38 AD 90 38 */ addi r5, r13, lbl_8063E2F8-_SDA_BASE_
+/* 80341590 0033D1F0 4B FF DF 11 */ bl gpiAppendStringToBuffer
+lbl_80341594:
+/* 80341594 0033D1F4 80 9E 01 F0 */ lwz r4, 0x1f0(r30)
+/* 80341598 0033D1F8 7F A3 EB 78 */ mr r3, r29
+/* 8034159C 0033D1FC 38 BE 02 10 */ addi r5, r30, 0x210
+/* 803415A0 0033D200 38 C1 00 08 */ addi r6, r1, 8
+/* 803415A4 0033D204 38 E0 00 01 */ li r7, 1
+/* 803415A8 0033D208 39 0D 90 80 */ addi r8, r13, lbl_8063E340-_SDA_BASE_
+/* 803415AC 0033D20C 4B FF E3 E9 */ bl gpiSendFromBuffer
+/* 803415B0 0033D210 80 7E 01 F0 */ lwz r3, 0x1f0(r30)
+/* 803415B4 0033D214 2C 03 FF FF */ cmpwi r3, -1
+/* 803415B8 0033D218 41 82 00 1C */ beq lbl_803415D4
+/* 803415BC 0033D21C 38 80 00 02 */ li r4, 2
+/* 803415C0 0033D220 4B FF 66 71 */ bl shutdown
+/* 803415C4 0033D224 80 7E 01 F0 */ lwz r3, 0x1f0(r30)
+/* 803415C8 0033D228 4B FF 66 35 */ bl closesocket
+/* 803415CC 0033D22C 38 00 FF FF */ li r0, -1
+/* 803415D0 0033D230 90 1E 01 F0 */ stw r0, 0x1f0(r30)
+lbl_803415D4:
+/* 803415D4 0033D234 80 7E 02 20 */ lwz r3, 0x220(r30)
+/* 803415D8 0033D238 2C 03 FF FF */ cmpwi r3, -1
+/* 803415DC 0033D23C 41 82 00 1C */ beq lbl_803415F8
+/* 803415E0 0033D240 38 80 00 02 */ li r4, 2
+/* 803415E4 0033D244 4B FF 66 4D */ bl shutdown
+/* 803415E8 0033D248 80 7E 02 20 */ lwz r3, 0x220(r30)
+/* 803415EC 0033D24C 4B FF 66 11 */ bl closesocket
+/* 803415F0 0033D250 38 00 FF FF */ li r0, -1
+/* 803415F4 0033D254 90 1E 02 20 */ stw r0, 0x220(r30)
+lbl_803415F8:
+/* 803415F8 0033D258 38 60 00 04 */ li r3, 4
+/* 803415FC 0033D25C 38 00 00 00 */ li r0, 0
+/* 80341600 0033D260 90 7E 01 F4 */ stw r3, 0x1f4(r30)
+/* 80341604 0033D264 90 1E 01 9C */ stw r0, 0x19c(r30)
+/* 80341608 0033D268 90 1E 01 A0 */ stw r0, 0x1a0(r30)
+lbl_8034160C:
+/* 8034160C 0033D26C 80 7E 01 F8 */ lwz r3, 0x1f8(r30)
+/* 80341610 0033D270 4B FF 7D 29 */ bl gsifree
+/* 80341614 0033D274 3B E0 00 00 */ li r31, 0
+/* 80341618 0033D278 93 FE 01 F8 */ stw r31, 0x1f8(r30)
+/* 8034161C 0033D27C 80 7E 02 08 */ lwz r3, 0x208(r30)
+/* 80341620 0033D280 4B FF 7D 19 */ bl gsifree
+/* 80341624 0033D284 93 FE 02 08 */ stw r31, 0x208(r30)
+/* 80341628 0033D288 80 7E 02 10 */ lwz r3, 0x210(r30)
+/* 8034162C 0033D28C 4B FF 7D 0D */ bl gsifree
+/* 80341630 0033D290 93 FE 02 10 */ stw r31, 0x210(r30)
+/* 80341634 0033D294 80 7E 04 5C */ lwz r3, 0x45c(r30)
+/* 80341638 0033D298 4B FF 7D 01 */ bl gsifree
+/* 8034163C 0033D29C 93 FE 04 5C */ stw r31, 0x45c(r30)
+/* 80341640 0033D2A0 80 7E 04 6C */ lwz r3, 0x46c(r30)
+/* 80341644 0033D2A4 4B FF 7C F5 */ bl gsifree
+/* 80341648 0033D2A8 93 FE 04 6C */ stw r31, 0x46c(r30)
+/* 8034164C 0033D2AC 48 00 00 0C */ b lbl_80341658
+lbl_80341650:
+/* 80341650 0033D2B0 7F A3 EB 78 */ mr r3, r29
+/* 80341654 0033D2B4 48 00 2A 09 */ bl gpiRemoveOperation
+lbl_80341658:
+/* 80341658 0033D2B8 80 9E 04 40 */ lwz r4, 0x440(r30)
+/* 8034165C 0033D2BC 2C 04 00 00 */ cmpwi r4, 0
+/* 80341660 0033D2C0 40 82 FF F0 */ bne lbl_80341650
+/* 80341664 0033D2C4 38 00 00 00 */ li r0, 0
+/* 80341668 0033D2C8 90 1E 04 40 */ stw r0, 0x440(r30)
+/* 8034166C 0033D2CC 83 FE 04 50 */ lwz r31, 0x450(r30)
+/* 80341670 0033D2D0 48 00 00 14 */ b lbl_80341684
+lbl_80341674:
+/* 80341674 0033D2D4 7F E4 FB 78 */ mr r4, r31
+/* 80341678 0033D2D8 83 FF 00 40 */ lwz r31, 0x40(r31)
+/* 8034167C 0033D2DC 7F A3 EB 78 */ mr r3, r29
+/* 80341680 0033D2E0 48 00 34 6D */ bl gpiDestroyPeer
+lbl_80341684:
+/* 80341684 0033D2E4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80341688 0033D2E8 40 82 FF EC */ bne lbl_80341674
+/* 8034168C 0033D2EC 38 00 00 00 */ li r0, 0
+/* 80341690 0033D2F0 3F E0 80 34 */ lis r31, gpiDisconnectCleanupProfile@ha
+/* 80341694 0033D2F4 90 1E 04 50 */ stw r0, 0x450(r30)
+lbl_80341698:
+/* 80341698 0033D2F8 7F A3 EB 78 */ mr r3, r29
+/* 8034169C 0033D2FC 38 9F 14 30 */ addi r4, r31, gpiDisconnectCleanupProfile@l
+/* 803416A0 0033D300 38 A0 00 00 */ li r5, 0
+/* 803416A4 0033D304 48 00 45 4D */ bl gpiProfileMap
+/* 803416A8 0033D308 2C 03 00 00 */ cmpwi r3, 0
+/* 803416AC 0033D30C 41 82 FF EC */ beq lbl_80341698
+lbl_803416B0:
+/* 803416B0 0033D310 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803416B4 0033D314 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803416B8 0033D318 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803416BC 0033D31C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 803416C0 0033D320 7C 08 03 A6 */ mtlr r0
+/* 803416C4 0033D324 38 21 00 20 */ addi r1, r1, 0x20
+/* 803416C8 0033D328 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiInfo.s b/asm/SDK/DWC/gamespy/gpiInfo.s new file mode 100644 index 0000000..4c71b08 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiInfo.s @@ -0,0 +1,2623 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiIsValidDate
+gpiIsValidDate:
+/* 803416CC 0033D32C 2C 03 00 00 */ cmpwi r3, 0
+/* 803416D0 0033D330 40 82 00 1C */ bne lbl_803416EC
+/* 803416D4 0033D334 2C 04 00 00 */ cmpwi r4, 0
+/* 803416D8 0033D338 40 82 00 14 */ bne lbl_803416EC
+/* 803416DC 0033D33C 2C 05 00 00 */ cmpwi r5, 0
+/* 803416E0 0033D340 40 82 00 0C */ bne lbl_803416EC
+/* 803416E4 0033D344 38 60 00 01 */ li r3, 1
+/* 803416E8 0033D348 4E 80 00 20 */ blr
+lbl_803416EC:
+/* 803416EC 0033D34C 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 803416F0 0033D350 41 84 00 14 */ blt cr1, lbl_80341704
+/* 803416F4 0033D354 2C 04 00 00 */ cmpwi r4, 0
+/* 803416F8 0033D358 41 80 00 0C */ blt lbl_80341704
+/* 803416FC 0033D35C 2C 05 00 00 */ cmpwi r5, 0
+/* 80341700 0033D360 40 80 00 0C */ bge lbl_8034170C
+lbl_80341704:
+/* 80341704 0033D364 38 60 00 00 */ li r3, 0
+/* 80341708 0033D368 4E 80 00 20 */ blr
+lbl_8034170C:
+/* 8034170C 0033D36C 28 04 00 0C */ cmplwi r4, 0xc
+/* 80341710 0033D370 41 81 00 C8 */ bgt lbl_803417D8
+/* 80341714 0033D374 3C C0 80 45 */ lis r6, lbl_8044ABE8@ha
+/* 80341718 0033D378 54 80 10 3A */ slwi r0, r4, 2
+/* 8034171C 0033D37C 38 C6 AB E8 */ addi r6, r6, lbl_8044ABE8@l
+/* 80341720 0033D380 7C C6 00 2E */ lwzx r6, r6, r0
+/* 80341724 0033D384 7C C9 03 A6 */ mtctr r6
+/* 80341728 0033D388 4E 80 04 20 */ bctr
+/* 8034172C 0033D38C 41 86 00 B4 */ beq cr1, lbl_803417E0
+/* 80341730 0033D390 38 60 00 00 */ li r3, 0
+/* 80341734 0033D394 4E 80 00 20 */ blr
+/* 80341738 0033D398 2C 03 00 1F */ cmpwi r3, 0x1f
+/* 8034173C 0033D39C 40 81 00 A4 */ ble lbl_803417E0
+/* 80341740 0033D3A0 38 60 00 00 */ li r3, 0
+/* 80341744 0033D3A4 4E 80 00 20 */ blr
+/* 80341748 0033D3A8 2C 03 00 1E */ cmpwi r3, 0x1e
+/* 8034174C 0033D3AC 40 81 00 94 */ ble lbl_803417E0
+/* 80341750 0033D3B0 38 60 00 00 */ li r3, 0
+/* 80341754 0033D3B4 4E 80 00 20 */ blr
+/* 80341758 0033D3B8 54 A0 F0 02 */ slwi r0, r5, 0x1e
+/* 8034175C 0033D3BC 54 A6 0F FE */ srwi r6, r5, 0x1f
+/* 80341760 0033D3C0 7C 06 00 50 */ subf r0, r6, r0
+/* 80341764 0033D3C4 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80341768 0033D3C8 7C 00 32 15 */ add. r0, r0, r6
+/* 8034176C 0033D3CC 40 82 00 28 */ bne lbl_80341794
+/* 80341770 0033D3D0 3C C0 51 EC */ lis r6, 0x51EB851F@ha
+/* 80341774 0033D3D4 38 06 85 1F */ addi r0, r6, 0x51EB851F@l
+/* 80341778 0033D3D8 7C 00 28 96 */ mulhw r0, r0, r5
+/* 8034177C 0033D3DC 7C 00 2E 70 */ srawi r0, r0, 5
+/* 80341780 0033D3E0 54 06 0F FE */ srwi r6, r0, 0x1f
+/* 80341784 0033D3E4 7C 00 32 14 */ add r0, r0, r6
+/* 80341788 0033D3E8 1C 00 00 64 */ mulli r0, r0, 0x64
+/* 8034178C 0033D3EC 7C 00 28 51 */ subf. r0, r0, r5
+/* 80341790 0033D3F0 40 82 00 28 */ bne lbl_803417B8
+lbl_80341794:
+/* 80341794 0033D3F4 3C C0 51 EC */ lis r6, 0x51EB851F@ha
+/* 80341798 0033D3F8 38 06 85 1F */ addi r0, r6, 0x51EB851F@l
+/* 8034179C 0033D3FC 7C 00 28 96 */ mulhw r0, r0, r5
+/* 803417A0 0033D400 7C 00 3E 70 */ srawi r0, r0, 7
+/* 803417A4 0033D404 54 06 0F FE */ srwi r6, r0, 0x1f
+/* 803417A8 0033D408 7C 00 32 14 */ add r0, r0, r6
+/* 803417AC 0033D40C 1C 00 01 90 */ mulli r0, r0, 0x190
+/* 803417B0 0033D410 7C 00 28 51 */ subf. r0, r0, r5
+/* 803417B4 0033D414 40 82 00 14 */ bne lbl_803417C8
+lbl_803417B8:
+/* 803417B8 0033D418 2C 03 00 1D */ cmpwi r3, 0x1d
+/* 803417BC 0033D41C 40 81 00 24 */ ble lbl_803417E0
+/* 803417C0 0033D420 38 60 00 00 */ li r3, 0
+/* 803417C4 0033D424 4E 80 00 20 */ blr
+lbl_803417C8:
+/* 803417C8 0033D428 2C 03 00 1C */ cmpwi r3, 0x1c
+/* 803417CC 0033D42C 40 81 00 14 */ ble lbl_803417E0
+/* 803417D0 0033D430 38 60 00 00 */ li r3, 0
+/* 803417D4 0033D434 4E 80 00 20 */ blr
+lbl_803417D8:
+/* 803417D8 0033D438 38 60 00 00 */ li r3, 0
+/* 803417DC 0033D43C 4E 80 00 20 */ blr
+lbl_803417E0:
+/* 803417E0 0033D440 2C 05 07 6C */ cmpwi r5, 0x76c
+/* 803417E4 0033D444 40 80 00 0C */ bge lbl_803417F0
+/* 803417E8 0033D448 38 60 00 00 */ li r3, 0
+/* 803417EC 0033D44C 4E 80 00 20 */ blr
+lbl_803417F0:
+/* 803417F0 0033D450 2C 05 08 1F */ cmpwi r5, 0x81f
+/* 803417F4 0033D454 40 81 00 0C */ ble lbl_80341800
+/* 803417F8 0033D458 38 60 00 00 */ li r3, 0
+/* 803417FC 0033D45C 4E 80 00 20 */ blr
+lbl_80341800:
+/* 80341800 0033D460 40 82 00 28 */ bne lbl_80341828
+/* 80341804 0033D464 2C 04 00 06 */ cmpwi r4, 6
+/* 80341808 0033D468 40 81 00 0C */ ble lbl_80341814
+/* 8034180C 0033D46C 38 60 00 00 */ li r3, 0
+/* 80341810 0033D470 4E 80 00 20 */ blr
+lbl_80341814:
+/* 80341814 0033D474 40 82 00 14 */ bne lbl_80341828
+/* 80341818 0033D478 2C 03 00 06 */ cmpwi r3, 6
+/* 8034181C 0033D47C 40 81 00 0C */ ble lbl_80341828
+/* 80341820 0033D480 38 60 00 00 */ li r3, 0
+/* 80341824 0033D484 4E 80 00 20 */ blr
+lbl_80341828:
+/* 80341828 0033D488 38 60 00 01 */ li r3, 1
+/* 8034182C 0033D48C 4E 80 00 20 */ blr
+
+.global gpiInfoCacheToArg
+gpiInfoCacheToArg:
+/* 80341830 0033D490 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80341834 0033D494 7C 08 02 A6 */ mflr r0
+/* 80341838 0033D498 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034183C 0033D49C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80341840 0033D4A0 7C 9F 23 78 */ mr r31, r4
+/* 80341844 0033D4A4 93 C1 00 08 */ stw r30, 8(r1)
+/* 80341848 0033D4A8 7C 7E 1B 78 */ mr r30, r3
+/* 8034184C 0033D4AC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80341850 0033D4B0 2C 00 00 00 */ cmpwi r0, 0
+/* 80341854 0033D4B4 41 82 00 18 */ beq lbl_8034186C
+/* 80341858 0033D4B8 38 64 00 08 */ addi r3, r4, 8
+/* 8034185C 0033D4BC 7C 04 03 78 */ mr r4, r0
+/* 80341860 0033D4C0 38 A0 00 1F */ li r5, 0x1f
+/* 80341864 0033D4C4 48 00 66 ED */ bl strzcpy
+/* 80341868 0033D4C8 48 00 00 0C */ b lbl_80341874
+lbl_8034186C:
+/* 8034186C 0033D4CC 38 00 00 00 */ li r0, 0
+/* 80341870 0033D4D0 98 04 00 08 */ stb r0, 8(r4)
+lbl_80341874:
+/* 80341874 0033D4D4 80 9E 00 04 */ lwz r4, 4(r30)
+/* 80341878 0033D4D8 2C 04 00 00 */ cmpwi r4, 0
+/* 8034187C 0033D4DC 41 82 00 14 */ beq lbl_80341890
+/* 80341880 0033D4E0 38 7F 00 27 */ addi r3, r31, 0x27
+/* 80341884 0033D4E4 38 A0 00 15 */ li r5, 0x15
+/* 80341888 0033D4E8 48 00 66 C9 */ bl strzcpy
+/* 8034188C 0033D4EC 48 00 00 0C */ b lbl_80341898
+lbl_80341890:
+/* 80341890 0033D4F0 38 00 00 00 */ li r0, 0
+/* 80341894 0033D4F4 98 1F 00 27 */ stb r0, 0x27(r31)
+lbl_80341898:
+/* 80341898 0033D4F8 80 9E 00 08 */ lwz r4, 8(r30)
+/* 8034189C 0033D4FC 2C 04 00 00 */ cmpwi r4, 0
+/* 803418A0 0033D500 41 82 00 14 */ beq lbl_803418B4
+/* 803418A4 0033D504 38 7F 00 3C */ addi r3, r31, 0x3c
+/* 803418A8 0033D508 38 A0 00 33 */ li r5, 0x33
+/* 803418AC 0033D50C 48 00 66 A5 */ bl strzcpy
+/* 803418B0 0033D510 48 00 00 0C */ b lbl_803418BC
+lbl_803418B4:
+/* 803418B4 0033D514 38 00 00 00 */ li r0, 0
+/* 803418B8 0033D518 98 1F 00 3C */ stb r0, 0x3c(r31)
+lbl_803418BC:
+/* 803418BC 0033D51C 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 803418C0 0033D520 2C 04 00 00 */ cmpwi r4, 0
+/* 803418C4 0033D524 41 82 00 14 */ beq lbl_803418D8
+/* 803418C8 0033D528 38 7F 00 6F */ addi r3, r31, 0x6f
+/* 803418CC 0033D52C 38 A0 00 1F */ li r5, 0x1f
+/* 803418D0 0033D530 48 00 66 81 */ bl strzcpy
+/* 803418D4 0033D534 48 00 00 0C */ b lbl_803418E0
+lbl_803418D8:
+/* 803418D8 0033D538 38 00 00 00 */ li r0, 0
+/* 803418DC 0033D53C 98 1F 00 6F */ stb r0, 0x6f(r31)
+lbl_803418E0:
+/* 803418E0 0033D540 80 9E 00 10 */ lwz r4, 0x10(r30)
+/* 803418E4 0033D544 2C 04 00 00 */ cmpwi r4, 0
+/* 803418E8 0033D548 41 82 00 14 */ beq lbl_803418FC
+/* 803418EC 0033D54C 38 7F 00 8E */ addi r3, r31, 0x8e
+/* 803418F0 0033D550 38 A0 00 1F */ li r5, 0x1f
+/* 803418F4 0033D554 48 00 66 5D */ bl strzcpy
+/* 803418F8 0033D558 48 00 00 0C */ b lbl_80341904
+lbl_803418FC:
+/* 803418FC 0033D55C 38 00 00 00 */ li r0, 0
+/* 80341900 0033D560 98 1F 00 8E */ stb r0, 0x8e(r31)
+lbl_80341904:
+/* 80341904 0033D564 80 9E 00 14 */ lwz r4, 0x14(r30)
+/* 80341908 0033D568 2C 04 00 00 */ cmpwi r4, 0
+/* 8034190C 0033D56C 41 82 00 14 */ beq lbl_80341920
+/* 80341910 0033D570 38 7F 00 AD */ addi r3, r31, 0xad
+/* 80341914 0033D574 38 A0 00 4C */ li r5, 0x4c
+/* 80341918 0033D578 48 00 66 39 */ bl strzcpy
+/* 8034191C 0033D57C 48 00 00 0C */ b lbl_80341928
+lbl_80341920:
+/* 80341920 0033D580 38 00 00 00 */ li r0, 0
+/* 80341924 0033D584 98 1F 00 AD */ stb r0, 0xad(r31)
+lbl_80341928:
+/* 80341928 0033D588 80 1E 00 18 */ lwz r0, 0x18(r30)
+/* 8034192C 0033D58C 38 7F 01 00 */ addi r3, r31, 0x100
+/* 80341930 0033D590 38 9E 00 1C */ addi r4, r30, 0x1c
+/* 80341934 0033D594 38 A0 00 0B */ li r5, 0xb
+/* 80341938 0033D598 90 1F 00 FC */ stw r0, 0xfc(r31)
+/* 8034193C 0033D59C 48 00 66 15 */ bl strzcpy
+/* 80341940 0033D5A0 38 7F 01 0B */ addi r3, r31, 0x10b
+/* 80341944 0033D5A4 38 9E 00 27 */ addi r4, r30, 0x27
+/* 80341948 0033D5A8 38 A0 00 03 */ li r5, 3
+/* 8034194C 0033D5AC 48 00 66 05 */ bl strzcpy
+/* 80341950 0033D5B0 C0 1E 00 2C */ lfs f0, 0x2c(r30)
+/* 80341954 0033D5B4 34 9E 00 34 */ addic. r4, r30, 0x34
+/* 80341958 0033D5B8 D0 1F 01 10 */ stfs f0, 0x110(r31)
+/* 8034195C 0033D5BC C0 1E 00 30 */ lfs f0, 0x30(r30)
+/* 80341960 0033D5C0 D0 1F 01 14 */ stfs f0, 0x114(r31)
+/* 80341964 0033D5C4 41 82 00 14 */ beq lbl_80341978
+/* 80341968 0033D5C8 38 7F 01 18 */ addi r3, r31, 0x118
+/* 8034196C 0033D5CC 38 A0 00 80 */ li r5, 0x80
+/* 80341970 0033D5D0 48 00 65 E1 */ bl strzcpy
+/* 80341974 0033D5D4 48 00 00 0C */ b lbl_80341980
+lbl_80341978:
+/* 80341978 0033D5D8 38 00 00 00 */ li r0, 0
+/* 8034197C 0033D5DC 98 1F 01 18 */ stb r0, 0x118(r31)
+lbl_80341980:
+/* 80341980 0033D5E0 80 1E 00 B4 */ lwz r0, 0xb4(r30)
+/* 80341984 0033D5E4 90 1F 01 98 */ stw r0, 0x198(r31)
+/* 80341988 0033D5E8 80 1E 00 B8 */ lwz r0, 0xb8(r30)
+/* 8034198C 0033D5EC 90 1F 01 9C */ stw r0, 0x19c(r31)
+/* 80341990 0033D5F0 80 1E 00 BC */ lwz r0, 0xbc(r30)
+/* 80341994 0033D5F4 90 1F 01 A0 */ stw r0, 0x1a0(r31)
+/* 80341998 0033D5F8 80 1E 00 C0 */ lwz r0, 0xc0(r30)
+/* 8034199C 0033D5FC 90 1F 01 A4 */ stw r0, 0x1a4(r31)
+/* 803419A0 0033D600 80 1E 00 C4 */ lwz r0, 0xc4(r30)
+/* 803419A4 0033D604 90 1F 01 A8 */ stw r0, 0x1a8(r31)
+/* 803419A8 0033D608 80 9E 00 C8 */ lwz r4, 0xc8(r30)
+/* 803419AC 0033D60C 2C 04 00 00 */ cmpwi r4, 0
+/* 803419B0 0033D610 41 82 00 14 */ beq lbl_803419C4
+/* 803419B4 0033D614 38 7F 01 AC */ addi r3, r31, 0x1ac
+/* 803419B8 0033D618 38 A0 00 33 */ li r5, 0x33
+/* 803419BC 0033D61C 48 00 65 95 */ bl strzcpy
+/* 803419C0 0033D620 48 00 00 0C */ b lbl_803419CC
+lbl_803419C4:
+/* 803419C4 0033D624 38 00 00 00 */ li r0, 0
+/* 803419C8 0033D628 98 1F 01 AC */ stb r0, 0x1ac(r31)
+lbl_803419CC:
+/* 803419CC 0033D62C 80 1E 00 18 */ lwz r0, 0x18(r30)
+/* 803419D0 0033D630 90 1F 00 FC */ stw r0, 0xfc(r31)
+/* 803419D4 0033D634 C0 1E 00 2C */ lfs f0, 0x2c(r30)
+/* 803419D8 0033D638 D0 1F 01 10 */ stfs f0, 0x110(r31)
+/* 803419DC 0033D63C C0 1E 00 30 */ lfs f0, 0x30(r30)
+/* 803419E0 0033D640 D0 1F 01 14 */ stfs f0, 0x114(r31)
+/* 803419E4 0033D644 80 1E 00 B4 */ lwz r0, 0xb4(r30)
+/* 803419E8 0033D648 90 1F 01 98 */ stw r0, 0x198(r31)
+/* 803419EC 0033D64C 80 1E 00 B8 */ lwz r0, 0xb8(r30)
+/* 803419F0 0033D650 90 1F 01 9C */ stw r0, 0x19c(r31)
+/* 803419F4 0033D654 80 1E 00 BC */ lwz r0, 0xbc(r30)
+/* 803419F8 0033D658 90 1F 01 A0 */ stw r0, 0x1a0(r31)
+/* 803419FC 0033D65C 80 1E 00 C0 */ lwz r0, 0xc0(r30)
+/* 80341A00 0033D660 90 1F 01 A4 */ stw r0, 0x1a4(r31)
+/* 80341A04 0033D664 80 1E 00 C4 */ lwz r0, 0xc4(r30)
+/* 80341A08 0033D668 90 1F 01 A8 */ stw r0, 0x1a8(r31)
+/* 80341A0C 0033D66C 80 1E 00 CC */ lwz r0, 0xcc(r30)
+/* 80341A10 0033D670 90 1F 01 E0 */ stw r0, 0x1e0(r31)
+/* 80341A14 0033D674 80 1E 00 D0 */ lwz r0, 0xd0(r30)
+/* 80341A18 0033D678 90 1F 01 E4 */ stw r0, 0x1e4(r31)
+/* 80341A1C 0033D67C 80 1E 00 D4 */ lwz r0, 0xd4(r30)
+/* 80341A20 0033D680 90 1F 01 E8 */ stw r0, 0x1e8(r31)
+/* 80341A24 0033D684 80 1E 00 D8 */ lwz r0, 0xd8(r30)
+/* 80341A28 0033D688 90 1F 01 EC */ stw r0, 0x1ec(r31)
+/* 80341A2C 0033D68C 80 1E 00 DC */ lwz r0, 0xdc(r30)
+/* 80341A30 0033D690 90 1F 01 F0 */ stw r0, 0x1f0(r31)
+/* 80341A34 0033D694 80 1E 00 E0 */ lwz r0, 0xe0(r30)
+/* 80341A38 0033D698 90 1F 01 F4 */ stw r0, 0x1f4(r31)
+/* 80341A3C 0033D69C 80 1E 00 E4 */ lwz r0, 0xe4(r30)
+/* 80341A40 0033D6A0 90 1F 01 F8 */ stw r0, 0x1f8(r31)
+/* 80341A44 0033D6A4 80 1E 00 E8 */ lwz r0, 0xe8(r30)
+/* 80341A48 0033D6A8 90 1F 01 FC */ stw r0, 0x1fc(r31)
+/* 80341A4C 0033D6AC 80 1E 00 EC */ lwz r0, 0xec(r30)
+/* 80341A50 0033D6B0 90 1F 02 00 */ stw r0, 0x200(r31)
+/* 80341A54 0033D6B4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80341A58 0033D6B8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80341A5C 0033D6BC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80341A60 0033D6C0 7C 08 03 A6 */ mtlr r0
+/* 80341A64 0033D6C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80341A68 0033D6C8 4E 80 00 20 */ blr
+
+.global gpiProcessGetInfo
+gpiProcessGetInfo:
+/* 80341A6C 0033D6CC 94 21 FD 50 */ stwu r1, -0x2b0(r1)
+/* 80341A70 0033D6D0 7C 08 02 A6 */ mflr r0
+/* 80341A74 0033D6D4 90 01 02 B4 */ stw r0, 0x2b4(r1)
+/* 80341A78 0033D6D8 39 61 02 B0 */ addi r11, r1, 0x2b0
+/* 80341A7C 0033D6DC 4B E8 56 9D */ bl _savegpr_23
+/* 80341A80 0033D6E0 7C BC 2B 78 */ mr r28, r5
+/* 80341A84 0033D6E4 3F E0 80 45 */ lis r31, lbl_8044ABE8@ha
+/* 80341A88 0033D6E8 7C 9B 23 78 */ mr r27, r4
+/* 80341A8C 0033D6EC 83 C3 00 00 */ lwz r30, 0(r3)
+/* 80341A90 0033D6F0 7C 7A 1B 78 */ mr r26, r3
+/* 80341A94 0033D6F4 7F 84 E3 78 */ mr r4, r28
+/* 80341A98 0033D6F8 3B FF AB E8 */ addi r31, r31, lbl_8044ABE8@l
+/* 80341A9C 0033D6FC 38 A0 00 01 */ li r5, 1
+/* 80341AA0 0033D700 48 00 64 F5 */ bl gpiCheckForError
+/* 80341AA4 0033D704 2C 03 00 00 */ cmpwi r3, 0
+/* 80341AA8 0033D708 41 82 00 0C */ beq lbl_80341AB4
+/* 80341AAC 0033D70C 38 60 00 04 */ li r3, 4
+/* 80341AB0 0033D710 48 00 08 64 */ b lbl_80342314
+lbl_80341AB4:
+/* 80341AB4 0033D714 7F 83 E3 78 */ mr r3, r28
+/* 80341AB8 0033D718 38 8D 90 88 */ addi r4, r13, lbl_8063E348-_SDA_BASE_
+/* 80341ABC 0033D71C 38 A0 00 04 */ li r5, 4
+/* 80341AC0 0033D720 4B E8 CA A9 */ bl strncmp
+/* 80341AC4 0033D724 2C 03 00 00 */ cmpwi r3, 0
+/* 80341AC8 0033D728 41 82 00 2C */ beq lbl_80341AF4
+/* 80341ACC 0033D72C 7F 43 D3 78 */ mr r3, r26
+/* 80341AD0 0033D730 38 BF 00 34 */ addi r5, r31, 0x34
+/* 80341AD4 0033D734 38 80 00 01 */ li r4, 1
+/* 80341AD8 0033D738 48 00 69 31 */ bl gpiSetError
+/* 80341ADC 0033D73C 7F 43 D3 78 */ mr r3, r26
+/* 80341AE0 0033D740 38 80 00 03 */ li r4, 3
+/* 80341AE4 0033D744 38 A0 00 01 */ li r5, 1
+/* 80341AE8 0033D748 4B FF E1 81 */ bl gpiCallErrorCallback
+/* 80341AEC 0033D74C 38 60 00 03 */ li r3, 3
+/* 80341AF0 0033D750 48 00 08 24 */ b lbl_80342314
+lbl_80341AF4:
+/* 80341AF4 0033D754 7F 83 E3 78 */ mr r3, r28
+/* 80341AF8 0033D758 38 9F 00 64 */ addi r4, r31, 0x64
+/* 80341AFC 0033D75C 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341B00 0033D760 38 C0 00 40 */ li r6, 0x40
+/* 80341B04 0033D764 48 00 65 89 */ bl gpiValueForKey
+/* 80341B08 0033D768 2C 03 00 00 */ cmpwi r3, 0
+/* 80341B0C 0033D76C 40 82 00 2C */ bne lbl_80341B38
+/* 80341B10 0033D770 7F 43 D3 78 */ mr r3, r26
+/* 80341B14 0033D774 38 BF 00 34 */ addi r5, r31, 0x34
+/* 80341B18 0033D778 38 80 00 01 */ li r4, 1
+/* 80341B1C 0033D77C 48 00 68 ED */ bl gpiSetError
+/* 80341B20 0033D780 7F 43 D3 78 */ mr r3, r26
+/* 80341B24 0033D784 38 80 00 03 */ li r4, 3
+/* 80341B28 0033D788 38 A0 00 01 */ li r5, 1
+/* 80341B2C 0033D78C 4B FF E1 3D */ bl gpiCallErrorCallback
+/* 80341B30 0033D790 38 60 00 03 */ li r3, 3
+/* 80341B34 0033D794 48 00 07 E0 */ b lbl_80342314
+lbl_80341B38:
+/* 80341B38 0033D798 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341B3C 0033D79C 4B E8 EB D1 */ bl atoi
+/* 80341B40 0033D7A0 7C 7D 1B 78 */ mr r29, r3
+/* 80341B44 0033D7A4 7F 43 D3 78 */ mr r3, r26
+/* 80341B48 0033D7A8 7F A4 EB 78 */ mr r4, r29
+/* 80341B4C 0033D7AC 38 A1 00 08 */ addi r5, r1, 8
+/* 80341B50 0033D7B0 48 00 3D 81 */ bl gpiGetProfile
+/* 80341B54 0033D7B4 38 61 01 90 */ addi r3, r1, 0x190
+/* 80341B58 0033D7B8 38 80 00 00 */ li r4, 0
+/* 80341B5C 0033D7BC 38 A0 00 F0 */ li r5, 0xf0
+/* 80341B60 0033D7C0 4B CC 25 A5 */ bl memset
+/* 80341B64 0033D7C4 38 A1 00 78 */ addi r5, r1, 0x78
+/* 80341B68 0033D7C8 38 81 00 60 */ addi r4, r1, 0x60
+/* 80341B6C 0033D7CC 39 41 00 CC */ addi r10, r1, 0xcc
+/* 80341B70 0033D7D0 39 21 00 40 */ addi r9, r1, 0x40
+/* 80341B74 0033D7D4 39 01 00 20 */ addi r8, r1, 0x20
+/* 80341B78 0033D7D8 38 E1 01 40 */ addi r7, r1, 0x140
+/* 80341B7C 0033D7DC 38 01 00 98 */ addi r0, r1, 0x98
+/* 80341B80 0033D7E0 90 81 01 94 */ stw r4, 0x194(r1)
+/* 80341B84 0033D7E4 7F 83 E3 78 */ mr r3, r28
+/* 80341B88 0033D7E8 38 8D 90 90 */ addi r4, r13, lbl_8063E350-_SDA_BASE_
+/* 80341B8C 0033D7EC 90 A1 01 90 */ stw r5, 0x190(r1)
+/* 80341B90 0033D7F0 38 C0 00 1F */ li r6, 0x1f
+/* 80341B94 0033D7F4 91 41 01 98 */ stw r10, 0x198(r1)
+/* 80341B98 0033D7F8 91 21 01 9C */ stw r9, 0x19c(r1)
+/* 80341B9C 0033D7FC 91 01 01 A0 */ stw r8, 0x1a0(r1)
+/* 80341BA0 0033D800 90 E1 01 A4 */ stw r7, 0x1a4(r1)
+/* 80341BA4 0033D804 90 01 02 58 */ stw r0, 0x258(r1)
+/* 80341BA8 0033D808 48 00 64 E5 */ bl gpiValueForKey
+/* 80341BAC 0033D80C 2C 03 00 00 */ cmpwi r3, 0
+/* 80341BB0 0033D810 40 82 00 10 */ bne lbl_80341BC0
+/* 80341BB4 0033D814 80 61 01 90 */ lwz r3, 0x190(r1)
+/* 80341BB8 0033D818 38 00 00 00 */ li r0, 0
+/* 80341BBC 0033D81C 98 03 00 00 */ stb r0, 0(r3)
+lbl_80341BC0:
+/* 80341BC0 0033D820 80 A1 01 94 */ lwz r5, 0x194(r1)
+/* 80341BC4 0033D824 7F 83 E3 78 */ mr r3, r28
+/* 80341BC8 0033D828 38 9F 00 70 */ addi r4, r31, 0x70
+/* 80341BCC 0033D82C 38 C0 00 15 */ li r6, 0x15
+/* 80341BD0 0033D830 48 00 64 BD */ bl gpiValueForKey
+/* 80341BD4 0033D834 2C 03 00 00 */ cmpwi r3, 0
+/* 80341BD8 0033D838 40 82 00 10 */ bne lbl_80341BE8
+/* 80341BDC 0033D83C 80 61 01 94 */ lwz r3, 0x194(r1)
+/* 80341BE0 0033D840 38 00 00 00 */ li r0, 0
+/* 80341BE4 0033D844 98 03 00 00 */ stb r0, 0(r3)
+lbl_80341BE8:
+/* 80341BE8 0033D848 80 A1 01 98 */ lwz r5, 0x198(r1)
+/* 80341BEC 0033D84C 7F 83 E3 78 */ mr r3, r28
+/* 80341BF0 0033D850 38 8D 90 98 */ addi r4, r13, lbl_8063E358-_SDA_BASE_
+/* 80341BF4 0033D854 38 C0 00 33 */ li r6, 0x33
+/* 80341BF8 0033D858 48 00 64 95 */ bl gpiValueForKey
+/* 80341BFC 0033D85C 2C 03 00 00 */ cmpwi r3, 0
+/* 80341C00 0033D860 40 82 00 10 */ bne lbl_80341C10
+/* 80341C04 0033D864 80 61 01 98 */ lwz r3, 0x198(r1)
+/* 80341C08 0033D868 38 00 00 00 */ li r0, 0
+/* 80341C0C 0033D86C 98 03 00 00 */ stb r0, 0(r3)
+lbl_80341C10:
+/* 80341C10 0033D870 80 A1 01 9C */ lwz r5, 0x19c(r1)
+/* 80341C14 0033D874 7F 83 E3 78 */ mr r3, r28
+/* 80341C18 0033D878 38 9F 00 80 */ addi r4, r31, 0x80
+/* 80341C1C 0033D87C 38 C0 00 1F */ li r6, 0x1f
+/* 80341C20 0033D880 48 00 64 6D */ bl gpiValueForKey
+/* 80341C24 0033D884 2C 03 00 00 */ cmpwi r3, 0
+/* 80341C28 0033D888 40 82 00 10 */ bne lbl_80341C38
+/* 80341C2C 0033D88C 80 61 01 9C */ lwz r3, 0x19c(r1)
+/* 80341C30 0033D890 38 00 00 00 */ li r0, 0
+/* 80341C34 0033D894 98 03 00 00 */ stb r0, 0(r3)
+lbl_80341C38:
+/* 80341C38 0033D898 80 A1 01 A0 */ lwz r5, 0x1a0(r1)
+/* 80341C3C 0033D89C 7F 83 E3 78 */ mr r3, r28
+/* 80341C40 0033D8A0 38 9F 00 8C */ addi r4, r31, 0x8c
+/* 80341C44 0033D8A4 38 C0 00 1F */ li r6, 0x1f
+/* 80341C48 0033D8A8 48 00 64 45 */ bl gpiValueForKey
+/* 80341C4C 0033D8AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80341C50 0033D8B0 40 82 00 10 */ bne lbl_80341C60
+/* 80341C54 0033D8B4 80 61 01 A0 */ lwz r3, 0x1a0(r1)
+/* 80341C58 0033D8B8 38 00 00 00 */ li r0, 0
+/* 80341C5C 0033D8BC 98 03 00 00 */ stb r0, 0(r3)
+lbl_80341C60:
+/* 80341C60 0033D8C0 7F 83 E3 78 */ mr r3, r28
+/* 80341C64 0033D8C4 38 9F 00 98 */ addi r4, r31, 0x98
+/* 80341C68 0033D8C8 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341C6C 0033D8CC 38 C0 00 40 */ li r6, 0x40
+/* 80341C70 0033D8D0 48 00 64 1D */ bl gpiValueForKey
+/* 80341C74 0033D8D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80341C78 0033D8D8 40 82 00 10 */ bne lbl_80341C88
+/* 80341C7C 0033D8DC 38 00 FF FF */ li r0, -1
+/* 80341C80 0033D8E0 90 01 01 A8 */ stw r0, 0x1a8(r1)
+/* 80341C84 0033D8E4 48 00 00 10 */ b lbl_80341C94
+lbl_80341C88:
+/* 80341C88 0033D8E8 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341C8C 0033D8EC 4B E8 EA 81 */ bl atoi
+/* 80341C90 0033D8F0 90 61 01 A8 */ stw r3, 0x1a8(r1)
+lbl_80341C94:
+/* 80341C94 0033D8F4 80 A1 01 A4 */ lwz r5, 0x1a4(r1)
+/* 80341C98 0033D8F8 7F 83 E3 78 */ mr r3, r28
+/* 80341C9C 0033D8FC 38 9F 00 A4 */ addi r4, r31, 0xa4
+/* 80341CA0 0033D900 38 C0 00 4C */ li r6, 0x4c
+/* 80341CA4 0033D904 48 00 63 E9 */ bl gpiValueForKey
+/* 80341CA8 0033D908 2C 03 00 00 */ cmpwi r3, 0
+/* 80341CAC 0033D90C 40 82 00 10 */ bne lbl_80341CBC
+/* 80341CB0 0033D910 80 61 01 A4 */ lwz r3, 0x1a4(r1)
+/* 80341CB4 0033D914 38 00 00 00 */ li r0, 0
+/* 80341CB8 0033D918 98 03 00 00 */ stb r0, 0(r3)
+lbl_80341CBC:
+/* 80341CBC 0033D91C 7F 83 E3 78 */ mr r3, r28
+/* 80341CC0 0033D920 38 9F 00 B0 */ addi r4, r31, 0xb0
+/* 80341CC4 0033D924 38 A1 01 AC */ addi r5, r1, 0x1ac
+/* 80341CC8 0033D928 38 C0 00 0B */ li r6, 0xb
+/* 80341CCC 0033D92C 48 00 63 C1 */ bl gpiValueForKey
+/* 80341CD0 0033D930 2C 03 00 00 */ cmpwi r3, 0
+/* 80341CD4 0033D934 40 82 00 0C */ bne lbl_80341CE0
+/* 80341CD8 0033D938 38 00 00 00 */ li r0, 0
+/* 80341CDC 0033D93C 98 01 01 AC */ stb r0, 0x1ac(r1)
+lbl_80341CE0:
+/* 80341CE0 0033D940 7F 83 E3 78 */ mr r3, r28
+/* 80341CE4 0033D944 38 9F 00 BC */ addi r4, r31, 0xbc
+/* 80341CE8 0033D948 38 A1 01 B7 */ addi r5, r1, 0x1b7
+/* 80341CEC 0033D94C 38 C0 00 03 */ li r6, 3
+/* 80341CF0 0033D950 48 00 63 9D */ bl gpiValueForKey
+/* 80341CF4 0033D954 2C 03 00 00 */ cmpwi r3, 0
+/* 80341CF8 0033D958 40 82 00 0C */ bne lbl_80341D04
+/* 80341CFC 0033D95C 38 00 00 00 */ li r0, 0
+/* 80341D00 0033D960 98 01 01 B7 */ stb r0, 0x1b7(r1)
+lbl_80341D04:
+/* 80341D04 0033D964 7F 83 E3 78 */ mr r3, r28
+/* 80341D08 0033D968 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341D0C 0033D96C 38 8D 90 A0 */ addi r4, r13, lbl_8063E360-_SDA_BASE_
+/* 80341D10 0033D970 38 C0 00 40 */ li r6, 0x40
+/* 80341D14 0033D974 48 00 63 79 */ bl gpiValueForKey
+/* 80341D18 0033D978 2C 03 00 00 */ cmpwi r3, 0
+/* 80341D1C 0033D97C 40 82 00 10 */ bne lbl_80341D2C
+/* 80341D20 0033D980 C0 02 A4 C8 */ lfs f0, lbl_80642AC8-_SDA2_BASE_(r2)
+/* 80341D24 0033D984 D0 01 01 BC */ stfs f0, 0x1bc(r1)
+/* 80341D28 0033D988 48 00 00 14 */ b lbl_80341D3C
+lbl_80341D2C:
+/* 80341D2C 0033D98C 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341D30 0033D990 4B E8 DE D1 */ bl atof
+/* 80341D34 0033D994 FC 00 08 18 */ frsp f0, f1
+/* 80341D38 0033D998 D0 01 01 BC */ stfs f0, 0x1bc(r1)
+lbl_80341D3C:
+/* 80341D3C 0033D99C 7F 83 E3 78 */ mr r3, r28
+/* 80341D40 0033D9A0 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341D44 0033D9A4 38 8D 90 A8 */ addi r4, r13, lbl_8063E368-_SDA_BASE_
+/* 80341D48 0033D9A8 38 C0 00 40 */ li r6, 0x40
+/* 80341D4C 0033D9AC 48 00 63 41 */ bl gpiValueForKey
+/* 80341D50 0033D9B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80341D54 0033D9B4 40 82 00 10 */ bne lbl_80341D64
+/* 80341D58 0033D9B8 C0 02 A4 C8 */ lfs f0, lbl_80642AC8-_SDA2_BASE_(r2)
+/* 80341D5C 0033D9BC D0 01 01 C0 */ stfs f0, 0x1c0(r1)
+/* 80341D60 0033D9C0 48 00 00 14 */ b lbl_80341D74
+lbl_80341D64:
+/* 80341D64 0033D9C4 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341D68 0033D9C8 4B E8 DE 99 */ bl atof
+/* 80341D6C 0033D9CC FC 00 08 18 */ frsp f0, f1
+/* 80341D70 0033D9D0 D0 01 01 C0 */ stfs f0, 0x1c0(r1)
+lbl_80341D74:
+/* 80341D74 0033D9D4 7F 83 E3 78 */ mr r3, r28
+/* 80341D78 0033D9D8 38 A1 01 C4 */ addi r5, r1, 0x1c4
+/* 80341D7C 0033D9DC 38 8D 90 B0 */ addi r4, r13, lbl_8063E370-_SDA_BASE_
+/* 80341D80 0033D9E0 38 C0 00 80 */ li r6, 0x80
+/* 80341D84 0033D9E4 48 00 63 09 */ bl gpiValueForKey
+/* 80341D88 0033D9E8 2C 03 00 00 */ cmpwi r3, 0
+/* 80341D8C 0033D9EC 40 82 00 0C */ bne lbl_80341D98
+/* 80341D90 0033D9F0 38 00 00 00 */ li r0, 0
+/* 80341D94 0033D9F4 98 01 01 C4 */ stb r0, 0x1c4(r1)
+lbl_80341D98:
+/* 80341D98 0033D9F8 7F 83 E3 78 */ mr r3, r28
+/* 80341D9C 0033D9FC 38 9F 00 CC */ addi r4, r31, 0xcc
+/* 80341DA0 0033DA00 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341DA4 0033DA04 38 C0 00 40 */ li r6, 0x40
+/* 80341DA8 0033DA08 48 00 62 E5 */ bl gpiValueForKey
+/* 80341DAC 0033DA0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80341DB0 0033DA10 40 82 00 18 */ bne lbl_80341DC8
+/* 80341DB4 0033DA14 38 00 00 00 */ li r0, 0
+/* 80341DB8 0033DA18 90 01 02 44 */ stw r0, 0x244(r1)
+/* 80341DBC 0033DA1C 90 01 02 48 */ stw r0, 0x248(r1)
+/* 80341DC0 0033DA20 90 01 02 4C */ stw r0, 0x24c(r1)
+/* 80341DC4 0033DA24 48 00 00 60 */ b lbl_80341E24
+lbl_80341DC8:
+/* 80341DC8 0033DA28 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341DCC 0033DA2C 4B E8 E9 41 */ bl atoi
+/* 80341DD0 0033DA30 54 78 86 3E */ rlwinm r24, r3, 0x10, 0x18, 0x1f
+/* 80341DD4 0033DA34 54 79 04 3E */ clrlwi r25, r3, 0x10
+/* 80341DD8 0033DA38 54 77 46 3E */ srwi r23, r3, 0x18
+/* 80341DDC 0033DA3C 7E E3 BB 78 */ mr r3, r23
+/* 80341DE0 0033DA40 7F 04 C3 78 */ mr r4, r24
+/* 80341DE4 0033DA44 7F 25 CB 78 */ mr r5, r25
+/* 80341DE8 0033DA48 4B FF F8 E5 */ bl gpiIsValidDate
+/* 80341DEC 0033DA4C 2C 03 00 00 */ cmpwi r3, 0
+/* 80341DF0 0033DA50 40 82 00 18 */ bne lbl_80341E08
+/* 80341DF4 0033DA54 7F 43 D3 78 */ mr r3, r26
+/* 80341DF8 0033DA58 38 9F 00 D8 */ addi r4, r31, 0xd8
+/* 80341DFC 0033DA5C 48 00 66 5D */ bl gpiSetErrorString
+/* 80341E00 0033DA60 38 60 00 02 */ li r3, 2
+/* 80341E04 0033DA64 48 00 00 14 */ b lbl_80341E18
+lbl_80341E08:
+/* 80341E08 0033DA68 92 E1 02 44 */ stw r23, 0x244(r1)
+/* 80341E0C 0033DA6C 38 60 00 00 */ li r3, 0
+/* 80341E10 0033DA70 93 01 02 48 */ stw r24, 0x248(r1)
+/* 80341E14 0033DA74 93 21 02 4C */ stw r25, 0x24c(r1)
+lbl_80341E18:
+/* 80341E18 0033DA78 2C 03 00 00 */ cmpwi r3, 0
+/* 80341E1C 0033DA7C 41 82 00 08 */ beq lbl_80341E24
+/* 80341E20 0033DA80 48 00 04 F4 */ b lbl_80342314
+lbl_80341E24:
+/* 80341E24 0033DA84 7F 83 E3 78 */ mr r3, r28
+/* 80341E28 0033DA88 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341E2C 0033DA8C 38 8D 90 B8 */ addi r4, r13, lbl_8063E378-_SDA_BASE_
+/* 80341E30 0033DA90 38 C0 00 40 */ li r6, 0x40
+/* 80341E34 0033DA94 48 00 62 59 */ bl gpiValueForKey
+/* 80341E38 0033DA98 2C 03 00 00 */ cmpwi r3, 0
+/* 80341E3C 0033DA9C 40 82 00 10 */ bne lbl_80341E4C
+/* 80341E40 0033DAA0 38 00 05 02 */ li r0, 0x502
+/* 80341E44 0033DAA4 90 01 02 50 */ stw r0, 0x250(r1)
+/* 80341E48 0033DAA8 48 00 00 3C */ b lbl_80341E84
+lbl_80341E4C:
+/* 80341E4C 0033DAAC 88 01 01 00 */ lbz r0, 0x100(r1)
+/* 80341E50 0033DAB0 7C 00 07 74 */ extsb r0, r0
+/* 80341E54 0033DAB4 2C 00 00 30 */ cmpwi r0, 0x30
+/* 80341E58 0033DAB8 40 82 00 10 */ bne lbl_80341E68
+/* 80341E5C 0033DABC 38 00 05 00 */ li r0, 0x500
+/* 80341E60 0033DAC0 90 01 02 50 */ stw r0, 0x250(r1)
+/* 80341E64 0033DAC4 48 00 00 20 */ b lbl_80341E84
+lbl_80341E68:
+/* 80341E68 0033DAC8 2C 00 00 31 */ cmpwi r0, 0x31
+/* 80341E6C 0033DACC 40 82 00 10 */ bne lbl_80341E7C
+/* 80341E70 0033DAD0 38 00 05 01 */ li r0, 0x501
+/* 80341E74 0033DAD4 90 01 02 50 */ stw r0, 0x250(r1)
+/* 80341E78 0033DAD8 48 00 00 0C */ b lbl_80341E84
+lbl_80341E7C:
+/* 80341E7C 0033DADC 38 00 05 02 */ li r0, 0x502
+/* 80341E80 0033DAE0 90 01 02 50 */ stw r0, 0x250(r1)
+lbl_80341E84:
+/* 80341E84 0033DAE4 7F 83 E3 78 */ mr r3, r28
+/* 80341E88 0033DAE8 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341E8C 0033DAEC 38 8D 90 C0 */ addi r4, r13, lbl_8063E380-_SDA_BASE_
+/* 80341E90 0033DAF0 38 C0 00 40 */ li r6, 0x40
+/* 80341E94 0033DAF4 48 00 61 F9 */ bl gpiValueForKey
+/* 80341E98 0033DAF8 2C 03 00 00 */ cmpwi r3, 0
+/* 80341E9C 0033DAFC 40 82 00 10 */ bne lbl_80341EAC
+/* 80341EA0 0033DB00 38 00 FF FF */ li r0, -1
+/* 80341EA4 0033DB04 90 01 02 54 */ stw r0, 0x254(r1)
+/* 80341EA8 0033DB08 48 00 00 10 */ b lbl_80341EB8
+lbl_80341EAC:
+/* 80341EAC 0033DB0C 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341EB0 0033DB10 4B E8 E8 5D */ bl atoi
+/* 80341EB4 0033DB14 90 61 02 54 */ stw r3, 0x254(r1)
+lbl_80341EB8:
+/* 80341EB8 0033DB18 80 A1 02 58 */ lwz r5, 0x258(r1)
+/* 80341EBC 0033DB1C 7F 83 E3 78 */ mr r3, r28
+/* 80341EC0 0033DB20 38 8D 90 C8 */ addi r4, r13, lbl_8063E388-_SDA_BASE_
+/* 80341EC4 0033DB24 38 C0 00 33 */ li r6, 0x33
+/* 80341EC8 0033DB28 48 00 61 C5 */ bl gpiValueForKey
+/* 80341ECC 0033DB2C 2C 03 00 00 */ cmpwi r3, 0
+/* 80341ED0 0033DB30 40 82 00 10 */ bne lbl_80341EE0
+/* 80341ED4 0033DB34 80 61 02 58 */ lwz r3, 0x258(r1)
+/* 80341ED8 0033DB38 38 00 00 00 */ li r0, 0
+/* 80341EDC 0033DB3C 98 03 00 00 */ stb r0, 0(r3)
+lbl_80341EE0:
+/* 80341EE0 0033DB40 7F 83 E3 78 */ mr r3, r28
+/* 80341EE4 0033DB44 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341EE8 0033DB48 38 8D 90 D0 */ addi r4, r13, lbl_8063E390-_SDA_BASE_
+/* 80341EEC 0033DB4C 38 C0 00 40 */ li r6, 0x40
+/* 80341EF0 0033DB50 48 00 61 9D */ bl gpiValueForKey
+/* 80341EF4 0033DB54 2C 03 00 00 */ cmpwi r3, 0
+/* 80341EF8 0033DB58 40 82 00 10 */ bne lbl_80341F08
+/* 80341EFC 0033DB5C 38 00 00 00 */ li r0, 0
+/* 80341F00 0033DB60 90 01 02 5C */ stw r0, 0x25c(r1)
+/* 80341F04 0033DB64 48 00 00 10 */ b lbl_80341F14
+lbl_80341F08:
+/* 80341F08 0033DB68 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341F0C 0033DB6C 4B E8 E8 01 */ bl atoi
+/* 80341F10 0033DB70 90 61 02 5C */ stw r3, 0x25c(r1)
+lbl_80341F14:
+/* 80341F14 0033DB74 7F 83 E3 78 */ mr r3, r28
+/* 80341F18 0033DB78 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341F1C 0033DB7C 38 8D 90 D8 */ addi r4, r13, lbl_8063E398-_SDA_BASE_
+/* 80341F20 0033DB80 38 C0 00 40 */ li r6, 0x40
+/* 80341F24 0033DB84 48 00 61 69 */ bl gpiValueForKey
+/* 80341F28 0033DB88 2C 03 00 00 */ cmpwi r3, 0
+/* 80341F2C 0033DB8C 40 82 00 10 */ bne lbl_80341F3C
+/* 80341F30 0033DB90 38 00 00 00 */ li r0, 0
+/* 80341F34 0033DB94 90 01 02 60 */ stw r0, 0x260(r1)
+/* 80341F38 0033DB98 48 00 00 10 */ b lbl_80341F48
+lbl_80341F3C:
+/* 80341F3C 0033DB9C 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341F40 0033DBA0 4B E8 E7 CD */ bl atoi
+/* 80341F44 0033DBA4 90 61 02 60 */ stw r3, 0x260(r1)
+lbl_80341F48:
+/* 80341F48 0033DBA8 7F 83 E3 78 */ mr r3, r28
+/* 80341F4C 0033DBAC 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341F50 0033DBB0 38 8D 90 E0 */ addi r4, r13, lbl_8063E3A0-_SDA_BASE_
+/* 80341F54 0033DBB4 38 C0 00 40 */ li r6, 0x40
+/* 80341F58 0033DBB8 48 00 61 35 */ bl gpiValueForKey
+/* 80341F5C 0033DBBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80341F60 0033DBC0 40 82 00 10 */ bne lbl_80341F70
+/* 80341F64 0033DBC4 38 00 00 00 */ li r0, 0
+/* 80341F68 0033DBC8 90 01 02 64 */ stw r0, 0x264(r1)
+/* 80341F6C 0033DBCC 48 00 00 10 */ b lbl_80341F7C
+lbl_80341F70:
+/* 80341F70 0033DBD0 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341F74 0033DBD4 4B E8 E7 99 */ bl atoi
+/* 80341F78 0033DBD8 90 61 02 64 */ stw r3, 0x264(r1)
+lbl_80341F7C:
+/* 80341F7C 0033DBDC 7F 83 E3 78 */ mr r3, r28
+/* 80341F80 0033DBE0 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341F84 0033DBE4 38 8D 90 E8 */ addi r4, r13, lbl_8063E3A8-_SDA_BASE_
+/* 80341F88 0033DBE8 38 C0 00 40 */ li r6, 0x40
+/* 80341F8C 0033DBEC 48 00 61 01 */ bl gpiValueForKey
+/* 80341F90 0033DBF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80341F94 0033DBF4 40 82 00 10 */ bne lbl_80341FA4
+/* 80341F98 0033DBF8 38 00 00 00 */ li r0, 0
+/* 80341F9C 0033DBFC 90 01 02 68 */ stw r0, 0x268(r1)
+/* 80341FA0 0033DC00 48 00 00 10 */ b lbl_80341FB0
+lbl_80341FA4:
+/* 80341FA4 0033DC04 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341FA8 0033DC08 4B E8 E7 65 */ bl atoi
+/* 80341FAC 0033DC0C 90 61 02 68 */ stw r3, 0x268(r1)
+lbl_80341FB0:
+/* 80341FB0 0033DC10 7F 83 E3 78 */ mr r3, r28
+/* 80341FB4 0033DC14 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341FB8 0033DC18 38 8D 90 F0 */ addi r4, r13, lbl_8063E3B0-_SDA_BASE_
+/* 80341FBC 0033DC1C 38 C0 00 40 */ li r6, 0x40
+/* 80341FC0 0033DC20 48 00 60 CD */ bl gpiValueForKey
+/* 80341FC4 0033DC24 2C 03 00 00 */ cmpwi r3, 0
+/* 80341FC8 0033DC28 40 82 00 10 */ bne lbl_80341FD8
+/* 80341FCC 0033DC2C 38 00 00 00 */ li r0, 0
+/* 80341FD0 0033DC30 90 01 02 6C */ stw r0, 0x26c(r1)
+/* 80341FD4 0033DC34 48 00 00 10 */ b lbl_80341FE4
+lbl_80341FD8:
+/* 80341FD8 0033DC38 38 61 01 00 */ addi r3, r1, 0x100
+/* 80341FDC 0033DC3C 4B E8 E7 31 */ bl atoi
+/* 80341FE0 0033DC40 90 61 02 6C */ stw r3, 0x26c(r1)
+lbl_80341FE4:
+/* 80341FE4 0033DC44 7F 83 E3 78 */ mr r3, r28
+/* 80341FE8 0033DC48 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80341FEC 0033DC4C 38 8D 90 F8 */ addi r4, r13, lbl_8063E3B8-_SDA_BASE_
+/* 80341FF0 0033DC50 38 C0 00 40 */ li r6, 0x40
+/* 80341FF4 0033DC54 48 00 60 99 */ bl gpiValueForKey
+/* 80341FF8 0033DC58 2C 03 00 00 */ cmpwi r3, 0
+/* 80341FFC 0033DC5C 40 82 00 10 */ bne lbl_8034200C
+/* 80342000 0033DC60 38 00 00 00 */ li r0, 0
+/* 80342004 0033DC64 90 01 02 70 */ stw r0, 0x270(r1)
+/* 80342008 0033DC68 48 00 00 10 */ b lbl_80342018
+lbl_8034200C:
+/* 8034200C 0033DC6C 38 61 01 00 */ addi r3, r1, 0x100
+/* 80342010 0033DC70 4B E8 E6 FD */ bl atoi
+/* 80342014 0033DC74 90 61 02 70 */ stw r3, 0x270(r1)
+lbl_80342018:
+/* 80342018 0033DC78 7F 83 E3 78 */ mr r3, r28
+/* 8034201C 0033DC7C 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80342020 0033DC80 38 8D 91 00 */ addi r4, r13, lbl_8063E3C0-_SDA_BASE_
+/* 80342024 0033DC84 38 C0 00 40 */ li r6, 0x40
+/* 80342028 0033DC88 48 00 60 65 */ bl gpiValueForKey
+/* 8034202C 0033DC8C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342030 0033DC90 40 82 00 10 */ bne lbl_80342040
+/* 80342034 0033DC94 38 00 00 00 */ li r0, 0
+/* 80342038 0033DC98 90 01 02 74 */ stw r0, 0x274(r1)
+/* 8034203C 0033DC9C 48 00 00 10 */ b lbl_8034204C
+lbl_80342040:
+/* 80342040 0033DCA0 38 61 01 00 */ addi r3, r1, 0x100
+/* 80342044 0033DCA4 4B E8 E6 C9 */ bl atoi
+/* 80342048 0033DCA8 90 61 02 74 */ stw r3, 0x274(r1)
+lbl_8034204C:
+/* 8034204C 0033DCAC 7F 83 E3 78 */ mr r3, r28
+/* 80342050 0033DCB0 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80342054 0033DCB4 38 8D 91 08 */ addi r4, r13, lbl_8063E3C8-_SDA_BASE_
+/* 80342058 0033DCB8 38 C0 00 40 */ li r6, 0x40
+/* 8034205C 0033DCBC 48 00 60 31 */ bl gpiValueForKey
+/* 80342060 0033DCC0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342064 0033DCC4 40 82 00 10 */ bne lbl_80342074
+/* 80342068 0033DCC8 38 00 00 00 */ li r0, 0
+/* 8034206C 0033DCCC 90 01 02 78 */ stw r0, 0x278(r1)
+/* 80342070 0033DCD0 48 00 00 10 */ b lbl_80342080
+lbl_80342074:
+/* 80342074 0033DCD4 38 61 01 00 */ addi r3, r1, 0x100
+/* 80342078 0033DCD8 4B E8 E6 95 */ bl atoi
+/* 8034207C 0033DCDC 90 61 02 78 */ stw r3, 0x278(r1)
+lbl_80342080:
+/* 80342080 0033DCE0 7F 83 E3 78 */ mr r3, r28
+/* 80342084 0033DCE4 38 A1 01 00 */ addi r5, r1, 0x100
+/* 80342088 0033DCE8 38 8D 91 10 */ addi r4, r13, lbl_8063E3D0-_SDA_BASE_
+/* 8034208C 0033DCEC 38 C0 00 40 */ li r6, 0x40
+/* 80342090 0033DCF0 48 00 5F FD */ bl gpiValueForKey
+/* 80342094 0033DCF4 2C 03 00 00 */ cmpwi r3, 0
+/* 80342098 0033DCF8 40 82 00 10 */ bne lbl_803420A8
+/* 8034209C 0033DCFC 38 00 00 00 */ li r0, 0
+/* 803420A0 0033DD00 90 01 02 7C */ stw r0, 0x27c(r1)
+/* 803420A4 0033DD04 48 00 00 10 */ b lbl_803420B4
+lbl_803420A8:
+/* 803420A8 0033DD08 38 61 01 00 */ addi r3, r1, 0x100
+/* 803420AC 0033DD0C 4B E8 E6 61 */ bl atoi
+/* 803420B0 0033DD10 90 61 02 7C */ stw r3, 0x27c(r1)
+lbl_803420B4:
+/* 803420B4 0033DD14 7F 83 E3 78 */ mr r3, r28
+/* 803420B8 0033DD18 38 A1 01 00 */ addi r5, r1, 0x100
+/* 803420BC 0033DD1C 38 8D 91 18 */ addi r4, r13, lbl_8063E3D8-_SDA_BASE_
+/* 803420C0 0033DD20 38 C0 00 40 */ li r6, 0x40
+/* 803420C4 0033DD24 48 00 5F C9 */ bl gpiValueForKey
+/* 803420C8 0033DD28 2C 03 00 00 */ cmpwi r3, 0
+/* 803420CC 0033DD2C 40 82 00 2C */ bne lbl_803420F8
+/* 803420D0 0033DD30 7F 43 D3 78 */ mr r3, r26
+/* 803420D4 0033DD34 38 BF 00 34 */ addi r5, r31, 0x34
+/* 803420D8 0033DD38 38 80 00 01 */ li r4, 1
+/* 803420DC 0033DD3C 48 00 63 2D */ bl gpiSetError
+/* 803420E0 0033DD40 7F 43 D3 78 */ mr r3, r26
+/* 803420E4 0033DD44 38 80 00 03 */ li r4, 3
+/* 803420E8 0033DD48 38 A0 00 01 */ li r5, 1
+/* 803420EC 0033DD4C 4B FF DB 7D */ bl gpiCallErrorCallback
+/* 803420F0 0033DD50 38 60 00 03 */ li r3, 3
+/* 803420F4 0033DD54 48 00 02 20 */ b lbl_80342314
+lbl_803420F8:
+/* 803420F8 0033DD58 83 1E 01 00 */ lwz r24, 0x100(r30)
+/* 803420FC 0033DD5C 3B 80 00 66 */ li r28, 0x66
+/* 80342100 0033DD60 82 FE 04 50 */ lwz r23, 0x450(r30)
+/* 80342104 0033DD64 48 00 00 44 */ b lbl_80342148
+lbl_80342108:
+/* 80342108 0033DD68 80 17 00 0C */ lwz r0, 0xc(r23)
+/* 8034210C 0033DD6C 7C 00 E8 00 */ cmpw r0, r29
+/* 80342110 0033DD70 40 82 00 34 */ bne lbl_80342144
+/* 80342114 0033DD74 80 17 00 00 */ lwz r0, 0(r23)
+/* 80342118 0033DD78 2C 00 00 65 */ cmpwi r0, 0x65
+/* 8034211C 0033DD7C 40 82 00 28 */ bne lbl_80342144
+/* 80342120 0033DD80 80 01 00 08 */ lwz r0, 8(r1)
+/* 80342124 0033DD84 2C 00 00 00 */ cmpwi r0, 0
+/* 80342128 0033DD88 40 82 00 14 */ bne lbl_8034213C
+/* 8034212C 0033DD8C 7F 43 D3 78 */ mr r3, r26
+/* 80342130 0033DD90 7F A4 EB 78 */ mr r4, r29
+/* 80342134 0033DD94 48 00 36 C9 */ bl gpiProfileListAdd
+/* 80342138 0033DD98 90 61 00 08 */ stw r3, 8(r1)
+lbl_8034213C:
+/* 8034213C 0033DD9C 93 97 00 00 */ stw r28, 0(r23)
+/* 80342140 0033DDA0 3B 00 00 01 */ li r24, 1
+lbl_80342144:
+/* 80342144 0033DDA4 82 F7 00 40 */ lwz r23, 0x40(r23)
+lbl_80342148:
+/* 80342148 0033DDA8 2C 17 00 00 */ cmpwi r23, 0
+/* 8034214C 0033DDAC 40 82 FF BC */ bne lbl_80342108
+/* 80342150 0033DDB0 80 01 00 08 */ lwz r0, 8(r1)
+/* 80342154 0033DDB4 2C 00 00 00 */ cmpwi r0, 0
+/* 80342158 0033DDB8 40 82 00 20 */ bne lbl_80342178
+/* 8034215C 0033DDBC 80 1E 01 00 */ lwz r0, 0x100(r30)
+/* 80342160 0033DDC0 2C 00 00 00 */ cmpwi r0, 0
+/* 80342164 0033DDC4 41 82 00 14 */ beq lbl_80342178
+/* 80342168 0033DDC8 7F 43 D3 78 */ mr r3, r26
+/* 8034216C 0033DDCC 7F A4 EB 78 */ mr r4, r29
+/* 80342170 0033DDD0 48 00 36 8D */ bl gpiProfileListAdd
+/* 80342174 0033DDD4 90 61 00 08 */ stw r3, 8(r1)
+lbl_80342178:
+/* 80342178 0033DDD8 2C 18 00 00 */ cmpwi r24, 0
+/* 8034217C 0033DDDC 41 82 00 2C */ beq lbl_803421A8
+/* 80342180 0033DDE0 80 61 00 08 */ lwz r3, 8(r1)
+/* 80342184 0033DDE4 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 80342188 0033DDE8 4B FF 71 B1 */ bl gsifree
+/* 8034218C 0033DDEC 80 81 00 08 */ lwz r4, 8(r1)
+/* 80342190 0033DDF0 38 00 00 00 */ li r0, 0
+/* 80342194 0033DDF4 38 61 01 00 */ addi r3, r1, 0x100
+/* 80342198 0033DDF8 90 04 00 18 */ stw r0, 0x18(r4)
+/* 8034219C 0033DDFC 4B FF 6D 69 */ bl goastrdup
+/* 803421A0 0033DE00 80 81 00 08 */ lwz r4, 8(r1)
+/* 803421A4 0033DE04 90 64 00 18 */ stw r3, 0x18(r4)
+lbl_803421A8:
+/* 803421A8 0033DE08 80 1E 01 00 */ lwz r0, 0x100(r30)
+/* 803421AC 0033DE0C 2C 00 00 00 */ cmpwi r0, 0
+/* 803421B0 0033DE10 41 82 00 C8 */ beq lbl_80342278
+/* 803421B4 0033DE14 80 7A 00 00 */ lwz r3, 0(r26)
+/* 803421B8 0033DE18 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803421BC 0033DE1C 80 03 01 00 */ lwz r0, 0x100(r3)
+/* 803421C0 0033DE20 2C 00 00 00 */ cmpwi r0, 0
+/* 803421C4 0033DE24 41 82 00 B4 */ beq lbl_80342278
+/* 803421C8 0033DE28 7F C3 F3 78 */ mr r3, r30
+/* 803421CC 0033DE2C 48 00 18 C5 */ bl gpiFreeInfoCache
+/* 803421D0 0033DE30 38 60 00 F0 */ li r3, 0xf0
+/* 803421D4 0033DE34 4B FF 71 41 */ bl gsimalloc
+/* 803421D8 0033DE38 2C 03 00 00 */ cmpwi r3, 0
+/* 803421DC 0033DE3C 90 7E 00 0C */ stw r3, 0xc(r30)
+/* 803421E0 0033DE40 41 82 00 98 */ beq lbl_80342278
+/* 803421E4 0033DE44 38 00 00 1E */ li r0, 0x1e
+/* 803421E8 0033DE48 38 A3 FF FC */ addi r5, r3, -4
+/* 803421EC 0033DE4C 38 81 01 8C */ addi r4, r1, 0x18c
+/* 803421F0 0033DE50 7C 09 03 A6 */ mtctr r0
+lbl_803421F4:
+/* 803421F4 0033DE54 80 64 00 04 */ lwz r3, 4(r4)
+/* 803421F8 0033DE58 84 04 00 08 */ lwzu r0, 8(r4)
+/* 803421FC 0033DE5C 90 65 00 04 */ stw r3, 4(r5)
+/* 80342200 0033DE60 94 05 00 08 */ stwu r0, 8(r5)
+/* 80342204 0033DE64 42 00 FF F0 */ bdnz lbl_803421F4
+/* 80342208 0033DE68 80 61 01 90 */ lwz r3, 0x190(r1)
+/* 8034220C 0033DE6C 4B FF 6C F9 */ bl goastrdup
+/* 80342210 0033DE70 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80342214 0033DE74 90 64 00 00 */ stw r3, 0(r4)
+/* 80342218 0033DE78 80 61 01 94 */ lwz r3, 0x194(r1)
+/* 8034221C 0033DE7C 4B FF 6C E9 */ bl goastrdup
+/* 80342220 0033DE80 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80342224 0033DE84 90 64 00 04 */ stw r3, 4(r4)
+/* 80342228 0033DE88 80 61 01 98 */ lwz r3, 0x198(r1)
+/* 8034222C 0033DE8C 4B FF 6C D9 */ bl goastrdup
+/* 80342230 0033DE90 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80342234 0033DE94 90 64 00 08 */ stw r3, 8(r4)
+/* 80342238 0033DE98 80 61 01 9C */ lwz r3, 0x19c(r1)
+/* 8034223C 0033DE9C 4B FF 6C C9 */ bl goastrdup
+/* 80342240 0033DEA0 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80342244 0033DEA4 90 64 00 0C */ stw r3, 0xc(r4)
+/* 80342248 0033DEA8 80 61 01 A0 */ lwz r3, 0x1a0(r1)
+/* 8034224C 0033DEAC 4B FF 6C B9 */ bl goastrdup
+/* 80342250 0033DEB0 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80342254 0033DEB4 90 64 00 10 */ stw r3, 0x10(r4)
+/* 80342258 0033DEB8 80 61 01 A4 */ lwz r3, 0x1a4(r1)
+/* 8034225C 0033DEBC 4B FF 6C A9 */ bl goastrdup
+/* 80342260 0033DEC0 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80342264 0033DEC4 90 64 00 14 */ stw r3, 0x14(r4)
+/* 80342268 0033DEC8 80 61 02 58 */ lwz r3, 0x258(r1)
+/* 8034226C 0033DECC 4B FF 6C 99 */ bl goastrdup
+/* 80342270 0033DED0 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80342274 0033DED4 90 64 00 C8 */ stw r3, 0xc8(r4)
+lbl_80342278:
+/* 80342278 0033DED8 80 7B 00 0C */ lwz r3, 0xc(r27)
+/* 8034227C 0033DEDC 80 1B 00 10 */ lwz r0, 0x10(r27)
+/* 80342280 0033DEE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342284 0033DEE4 90 61 00 18 */ stw r3, 0x18(r1)
+/* 80342288 0033DEE8 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 8034228C 0033DEEC 41 82 00 78 */ beq lbl_80342304
+/* 80342290 0033DEF0 38 60 02 04 */ li r3, 0x204
+/* 80342294 0033DEF4 4B FF 70 81 */ bl gsimalloc
+/* 80342298 0033DEF8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034229C 0033DEFC 7C 77 1B 78 */ mr r23, r3
+/* 803422A0 0033DF00 40 82 00 18 */ bne lbl_803422B8
+/* 803422A4 0033DF04 7F 43 D3 78 */ mr r3, r26
+/* 803422A8 0033DF08 38 9F 00 E8 */ addi r4, r31, 0xe8
+/* 803422AC 0033DF0C 48 00 61 AD */ bl gpiSetErrorString
+/* 803422B0 0033DF10 38 60 00 01 */ li r3, 1
+/* 803422B4 0033DF14 48 00 00 60 */ b lbl_80342314
+lbl_803422B8:
+/* 803422B8 0033DF18 7E E4 BB 78 */ mr r4, r23
+/* 803422BC 0033DF1C 38 61 01 90 */ addi r3, r1, 0x190
+/* 803422C0 0033DF20 4B FF F5 71 */ bl gpiInfoCacheToArg
+/* 803422C4 0033DF24 38 00 00 00 */ li r0, 0
+/* 803422C8 0033DF28 81 01 00 18 */ lwz r8, 0x18(r1)
+/* 803422CC 0033DF2C 90 17 00 00 */ stw r0, 0(r23)
+/* 803422D0 0033DF30 7F 43 D3 78 */ mr r3, r26
+/* 803422D4 0033DF34 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 803422D8 0033DF38 7E E5 BB 78 */ mr r5, r23
+/* 803422DC 0033DF3C 93 B7 00 04 */ stw r29, 4(r23)
+/* 803422E0 0033DF40 7F 66 DB 78 */ mr r6, r27
+/* 803422E4 0033DF44 38 81 00 10 */ addi r4, r1, 0x10
+/* 803422E8 0033DF48 38 E0 00 00 */ li r7, 0
+/* 803422EC 0033DF4C 91 01 00 10 */ stw r8, 0x10(r1)
+/* 803422F0 0033DF50 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803422F4 0033DF54 4B FF DA 35 */ bl gpiAddCallback
+/* 803422F8 0033DF58 2C 03 00 00 */ cmpwi r3, 0
+/* 803422FC 0033DF5C 41 82 00 08 */ beq lbl_80342304
+/* 80342300 0033DF60 48 00 00 14 */ b lbl_80342314
+lbl_80342304:
+/* 80342304 0033DF64 7F 43 D3 78 */ mr r3, r26
+/* 80342308 0033DF68 7F 64 DB 78 */ mr r4, r27
+/* 8034230C 0033DF6C 48 00 1D 51 */ bl gpiRemoveOperation
+/* 80342310 0033DF70 38 60 00 00 */ li r3, 0
+lbl_80342314:
+/* 80342314 0033DF74 39 61 02 B0 */ addi r11, r1, 0x2b0
+/* 80342318 0033DF78 4B E8 4E 4D */ bl _restgpr_23
+/* 8034231C 0033DF7C 80 01 02 B4 */ lwz r0, 0x2b4(r1)
+/* 80342320 0033DF80 7C 08 03 A6 */ mtlr r0
+/* 80342324 0033DF84 38 21 02 B0 */ addi r1, r1, 0x2b0
+/* 80342328 0033DF88 4E 80 00 20 */ blr
+
+.global gpiAddLocalInfo
+gpiAddLocalInfo:
+/* 8034232C 0033DF8C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80342330 0033DF90 7C 08 02 A6 */ mflr r0
+/* 80342334 0033DF94 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80342338 0033DF98 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034233C 0033DF9C 3F E0 80 45 */ lis r31, lbl_8044ABE8@ha
+/* 80342340 0033DFA0 3B FF AB E8 */ addi r31, r31, lbl_8044ABE8@l
+/* 80342344 0033DFA4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80342348 0033DFA8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034234C 0033DFAC 7C 9D 23 78 */ mr r29, r4
+/* 80342350 0033DFB0 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80342354 0033DFB4 7C 7C 1B 78 */ mr r28, r3
+/* 80342358 0033DFB8 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8034235C 0033DFBC 80 1E 04 64 */ lwz r0, 0x464(r30)
+/* 80342360 0033DFC0 2C 00 00 00 */ cmpwi r0, 0
+/* 80342364 0033DFC4 40 81 00 64 */ ble lbl_803423C8
+/* 80342368 0033DFC8 38 BF 00 F8 */ addi r5, r31, 0xf8
+/* 8034236C 0033DFCC 4B FF D1 35 */ bl gpiAppendStringToBuffer
+/* 80342370 0033DFD0 80 BE 01 98 */ lwz r5, 0x198(r30)
+/* 80342374 0033DFD4 7F 83 E3 78 */ mr r3, r28
+/* 80342378 0033DFD8 7F A4 EB 78 */ mr r4, r29
+/* 8034237C 0033DFDC 4B FF D1 81 */ bl gpiAppendIntToBuffer
+/* 80342380 0033DFE0 80 BE 04 5C */ lwz r5, 0x45c(r30)
+/* 80342384 0033DFE4 7F 83 E3 78 */ mr r3, r28
+/* 80342388 0033DFE8 7F A4 EB 78 */ mr r4, r29
+/* 8034238C 0033DFEC 4B FF D1 15 */ bl gpiAppendStringToBuffer
+/* 80342390 0033DFF0 7F 83 E3 78 */ mr r3, r28
+/* 80342394 0033DFF4 7F A4 EB 78 */ mr r4, r29
+/* 80342398 0033DFF8 38 BF 01 10 */ addi r5, r31, 0x110
+/* 8034239C 0033DFFC 4B FF D1 05 */ bl gpiAppendStringToBuffer
+/* 803423A0 0033E000 80 BE 01 A4 */ lwz r5, 0x1a4(r30)
+/* 803423A4 0033E004 7F 83 E3 78 */ mr r3, r28
+/* 803423A8 0033E008 7F A4 EB 78 */ mr r4, r29
+/* 803423AC 0033E00C 4B FF D1 51 */ bl gpiAppendIntToBuffer
+/* 803423B0 0033E010 7F 83 E3 78 */ mr r3, r28
+/* 803423B4 0033E014 7F A4 EB 78 */ mr r4, r29
+/* 803423B8 0033E018 38 AD 91 20 */ addi r5, r13, lbl_8063E3E0-_SDA_BASE_
+/* 803423BC 0033E01C 4B FF D0 E5 */ bl gpiAppendStringToBuffer
+/* 803423C0 0033E020 38 00 00 00 */ li r0, 0
+/* 803423C4 0033E024 90 1E 04 64 */ stw r0, 0x464(r30)
+lbl_803423C8:
+/* 803423C8 0033E028 80 1E 04 74 */ lwz r0, 0x474(r30)
+/* 803423CC 0033E02C 2C 00 00 00 */ cmpwi r0, 0
+/* 803423D0 0033E030 40 81 00 4C */ ble lbl_8034241C
+/* 803423D4 0033E034 7F 83 E3 78 */ mr r3, r28
+/* 803423D8 0033E038 7F A4 EB 78 */ mr r4, r29
+/* 803423DC 0033E03C 38 BF 01 1C */ addi r5, r31, 0x11c
+/* 803423E0 0033E040 4B FF D0 C1 */ bl gpiAppendStringToBuffer
+/* 803423E4 0033E044 80 BE 01 98 */ lwz r5, 0x198(r30)
+/* 803423E8 0033E048 7F 83 E3 78 */ mr r3, r28
+/* 803423EC 0033E04C 7F A4 EB 78 */ mr r4, r29
+/* 803423F0 0033E050 4B FF D1 0D */ bl gpiAppendIntToBuffer
+/* 803423F4 0033E054 80 BE 04 6C */ lwz r5, 0x46c(r30)
+/* 803423F8 0033E058 7F 83 E3 78 */ mr r3, r28
+/* 803423FC 0033E05C 7F A4 EB 78 */ mr r4, r29
+/* 80342400 0033E060 4B FF D0 A1 */ bl gpiAppendStringToBuffer
+/* 80342404 0033E064 7F 83 E3 78 */ mr r3, r28
+/* 80342408 0033E068 7F A4 EB 78 */ mr r4, r29
+/* 8034240C 0033E06C 38 AD 91 20 */ addi r5, r13, lbl_8063E3E0-_SDA_BASE_
+/* 80342410 0033E070 4B FF D0 91 */ bl gpiAppendStringToBuffer
+/* 80342414 0033E074 38 00 00 00 */ li r0, 0
+/* 80342418 0033E078 90 1E 04 74 */ stw r0, 0x474(r30)
+lbl_8034241C:
+/* 8034241C 0033E07C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80342420 0033E080 38 60 00 00 */ li r3, 0
+/* 80342424 0033E084 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80342428 0033E088 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034242C 0033E08C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80342430 0033E090 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80342434 0033E094 7C 08 03 A6 */ mtlr r0
+/* 80342438 0033E098 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034243C 0033E09C 4E 80 00 20 */ blr
+
+.global gpiSetInfoi
+gpiSetInfoi:
+/* 80342440 0033E0A0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80342444 0033E0A4 7C 08 02 A6 */ mflr r0
+/* 80342448 0033E0A8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034244C 0033E0AC 38 04 F8 FA */ addi r0, r4, -1798
+/* 80342450 0033E0B0 28 00 00 18 */ cmplwi r0, 0x18
+/* 80342454 0033E0B4 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80342458 0033E0B8 7C 7F 1B 78 */ mr r31, r3
+/* 8034245C 0033E0BC 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80342460 0033E0C0 3F C0 80 45 */ lis r30, lbl_8044ABE8@ha
+/* 80342464 0033E0C4 3B DE AB E8 */ addi r30, r30, lbl_8044ABE8@l
+/* 80342468 0033E0C8 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8034246C 0033E0CC 41 81 07 E0 */ bgt lbl_80342C4C
+/* 80342470 0033E0D0 3C 80 80 45 */ lis r4, lbl_8044ADCC@ha
+/* 80342474 0033E0D4 54 00 10 3A */ slwi r0, r0, 2
+/* 80342478 0033E0D8 38 84 AD CC */ addi r4, r4, lbl_8044ADCC@l
+/* 8034247C 0033E0DC 7C 84 00 2E */ lwzx r4, r4, r0
+/* 80342480 0033E0E0 7C 89 03 A6 */ mtctr r4
+/* 80342484 0033E0E4 4E 80 04 20 */ bctr
+/* 80342488 0033E0E8 2C 05 00 00 */ cmpwi r5, 0
+/* 8034248C 0033E0EC 40 80 00 14 */ bge lbl_803424A0
+/* 80342490 0033E0F0 38 9E 01 30 */ addi r4, r30, 0x130
+/* 80342494 0033E0F4 48 00 5F C5 */ bl gpiSetErrorString
+/* 80342498 0033E0F8 38 60 00 02 */ li r3, 2
+/* 8034249C 0033E0FC 48 00 07 C8 */ b lbl_80342C64
+lbl_803424A0:
+/* 803424A0 0033E100 38 61 00 08 */ addi r3, r1, 8
+/* 803424A4 0033E104 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 803424A8 0033E108 4C C6 31 82 */ crclr 6
+/* 803424AC 0033E10C 4B E8 A6 51 */ bl sprintf
+/* 803424B0 0033E110 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803424B4 0033E114 7F E3 FB 78 */ mr r3, r31
+/* 803424B8 0033E118 38 BE 00 B0 */ addi r5, r30, 0xb0
+/* 803424BC 0033E11C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803424C0 0033E120 4B FF CF E1 */ bl gpiAppendStringToBuffer
+/* 803424C4 0033E124 2C 03 00 00 */ cmpwi r3, 0
+/* 803424C8 0033E128 41 82 00 08 */ beq lbl_803424D0
+/* 803424CC 0033E12C 48 00 00 28 */ b lbl_803424F4
+lbl_803424D0:
+/* 803424D0 0033E130 7F E3 FB 78 */ mr r3, r31
+/* 803424D4 0033E134 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803424D8 0033E138 38 A1 00 08 */ addi r5, r1, 8
+/* 803424DC 0033E13C 4B FF CF C5 */ bl gpiAppendStringToBuffer
+/* 803424E0 0033E140 2C 03 00 00 */ cmpwi r3, 0
+/* 803424E4 0033E144 38 00 00 00 */ li r0, 0
+/* 803424E8 0033E148 41 82 00 08 */ beq lbl_803424F0
+/* 803424EC 0033E14C 7C 60 1B 78 */ mr r0, r3
+lbl_803424F0:
+/* 803424F0 0033E150 7C 03 03 78 */ mr r3, r0
+lbl_803424F4:
+/* 803424F4 0033E154 2C 03 00 00 */ cmpwi r3, 0
+/* 803424F8 0033E158 41 82 07 68 */ beq lbl_80342C60
+/* 803424FC 0033E15C 48 00 07 68 */ b lbl_80342C64
+/* 80342500 0033E160 2C 05 05 01 */ cmpwi r5, 0x501
+/* 80342504 0033E164 41 82 00 70 */ beq lbl_80342574
+/* 80342508 0033E168 40 80 00 10 */ bge lbl_80342518
+/* 8034250C 0033E16C 2C 05 05 00 */ cmpwi r5, 0x500
+/* 80342510 0033E170 40 80 00 14 */ bge lbl_80342524
+/* 80342514 0033E174 48 00 01 00 */ b lbl_80342614
+lbl_80342518:
+/* 80342518 0033E178 2C 05 05 03 */ cmpwi r5, 0x503
+/* 8034251C 0033E17C 40 80 00 F8 */ bge lbl_80342614
+/* 80342520 0033E180 48 00 00 A4 */ b lbl_803425C4
+lbl_80342524:
+/* 80342524 0033E184 83 C3 00 00 */ lwz r30, 0(r3)
+/* 80342528 0033E188 3B AD 91 2C */ addi r29, r13, lbl_8063E3EC-_SDA_BASE_
+/* 8034252C 0033E18C 38 AD 90 B8 */ addi r5, r13, lbl_8063E378-_SDA_BASE_
+/* 80342530 0033E190 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 80342534 0033E194 4B FF CF 6D */ bl gpiAppendStringToBuffer
+/* 80342538 0033E198 2C 03 00 00 */ cmpwi r3, 0
+/* 8034253C 0033E19C 41 82 00 08 */ beq lbl_80342544
+/* 80342540 0033E1A0 48 00 00 28 */ b lbl_80342568
+lbl_80342544:
+/* 80342544 0033E1A4 7F E3 FB 78 */ mr r3, r31
+/* 80342548 0033E1A8 7F A5 EB 78 */ mr r5, r29
+/* 8034254C 0033E1AC 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 80342550 0033E1B0 4B FF CF 51 */ bl gpiAppendStringToBuffer
+/* 80342554 0033E1B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80342558 0033E1B8 38 00 00 00 */ li r0, 0
+/* 8034255C 0033E1BC 41 82 00 08 */ beq lbl_80342564
+/* 80342560 0033E1C0 7C 60 1B 78 */ mr r0, r3
+lbl_80342564:
+/* 80342564 0033E1C4 7C 03 03 78 */ mr r3, r0
+lbl_80342568:
+/* 80342568 0033E1C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034256C 0033E1CC 41 82 06 F4 */ beq lbl_80342C60
+/* 80342570 0033E1D0 48 00 06 F4 */ b lbl_80342C64
+lbl_80342574:
+/* 80342574 0033E1D4 83 C3 00 00 */ lwz r30, 0(r3)
+/* 80342578 0033E1D8 3B AD 91 30 */ addi r29, r13, lbl_8063E3F0-_SDA_BASE_
+/* 8034257C 0033E1DC 38 AD 90 B8 */ addi r5, r13, lbl_8063E378-_SDA_BASE_
+/* 80342580 0033E1E0 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 80342584 0033E1E4 4B FF CF 1D */ bl gpiAppendStringToBuffer
+/* 80342588 0033E1E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034258C 0033E1EC 41 82 00 08 */ beq lbl_80342594
+/* 80342590 0033E1F0 48 00 00 28 */ b lbl_803425B8
+lbl_80342594:
+/* 80342594 0033E1F4 7F E3 FB 78 */ mr r3, r31
+/* 80342598 0033E1F8 7F A5 EB 78 */ mr r5, r29
+/* 8034259C 0033E1FC 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 803425A0 0033E200 4B FF CF 01 */ bl gpiAppendStringToBuffer
+/* 803425A4 0033E204 2C 03 00 00 */ cmpwi r3, 0
+/* 803425A8 0033E208 38 00 00 00 */ li r0, 0
+/* 803425AC 0033E20C 41 82 00 08 */ beq lbl_803425B4
+/* 803425B0 0033E210 7C 60 1B 78 */ mr r0, r3
+lbl_803425B4:
+/* 803425B4 0033E214 7C 03 03 78 */ mr r3, r0
+lbl_803425B8:
+/* 803425B8 0033E218 2C 03 00 00 */ cmpwi r3, 0
+/* 803425BC 0033E21C 41 82 06 A4 */ beq lbl_80342C60
+/* 803425C0 0033E220 48 00 06 A4 */ b lbl_80342C64
+lbl_803425C4:
+/* 803425C4 0033E224 83 C3 00 00 */ lwz r30, 0(r3)
+/* 803425C8 0033E228 3B AD 91 34 */ addi r29, r13, lbl_8063E3F4-_SDA_BASE_
+/* 803425CC 0033E22C 38 AD 90 B8 */ addi r5, r13, lbl_8063E378-_SDA_BASE_
+/* 803425D0 0033E230 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 803425D4 0033E234 4B FF CE CD */ bl gpiAppendStringToBuffer
+/* 803425D8 0033E238 2C 03 00 00 */ cmpwi r3, 0
+/* 803425DC 0033E23C 41 82 00 08 */ beq lbl_803425E4
+/* 803425E0 0033E240 48 00 00 28 */ b lbl_80342608
+lbl_803425E4:
+/* 803425E4 0033E244 7F E3 FB 78 */ mr r3, r31
+/* 803425E8 0033E248 7F A5 EB 78 */ mr r5, r29
+/* 803425EC 0033E24C 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 803425F0 0033E250 4B FF CE B1 */ bl gpiAppendStringToBuffer
+/* 803425F4 0033E254 2C 03 00 00 */ cmpwi r3, 0
+/* 803425F8 0033E258 38 00 00 00 */ li r0, 0
+/* 803425FC 0033E25C 41 82 00 08 */ beq lbl_80342604
+/* 80342600 0033E260 7C 60 1B 78 */ mr r0, r3
+lbl_80342604:
+/* 80342604 0033E264 7C 03 03 78 */ mr r3, r0
+lbl_80342608:
+/* 80342608 0033E268 2C 03 00 00 */ cmpwi r3, 0
+/* 8034260C 0033E26C 41 82 06 54 */ beq lbl_80342C60
+/* 80342610 0033E270 48 00 06 54 */ b lbl_80342C64
+lbl_80342614:
+/* 80342614 0033E274 7F E3 FB 78 */ mr r3, r31
+/* 80342618 0033E278 38 9E 01 44 */ addi r4, r30, 0x144
+/* 8034261C 0033E27C 48 00 5E 3D */ bl gpiSetErrorString
+/* 80342620 0033E280 38 60 00 02 */ li r3, 2
+/* 80342624 0033E284 48 00 06 40 */ b lbl_80342C64
+/* 80342628 0033E288 38 61 00 08 */ addi r3, r1, 8
+/* 8034262C 0033E28C 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342630 0033E290 4C C6 31 82 */ crclr 6
+/* 80342634 0033E294 4B E8 A4 C9 */ bl sprintf
+/* 80342638 0033E298 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034263C 0033E29C 7F E3 FB 78 */ mr r3, r31
+/* 80342640 0033E2A0 38 BE 00 98 */ addi r5, r30, 0x98
+/* 80342644 0033E2A4 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342648 0033E2A8 4B FF CE 59 */ bl gpiAppendStringToBuffer
+/* 8034264C 0033E2AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342650 0033E2B0 41 82 00 08 */ beq lbl_80342658
+/* 80342654 0033E2B4 48 00 00 28 */ b lbl_8034267C
+lbl_80342658:
+/* 80342658 0033E2B8 7F E3 FB 78 */ mr r3, r31
+/* 8034265C 0033E2BC 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342660 0033E2C0 38 A1 00 08 */ addi r5, r1, 8
+/* 80342664 0033E2C4 4B FF CE 3D */ bl gpiAppendStringToBuffer
+/* 80342668 0033E2C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034266C 0033E2CC 38 00 00 00 */ li r0, 0
+/* 80342670 0033E2D0 41 82 00 08 */ beq lbl_80342678
+/* 80342674 0033E2D4 7C 60 1B 78 */ mr r0, r3
+lbl_80342678:
+/* 80342678 0033E2D8 7C 03 03 78 */ mr r3, r0
+lbl_8034267C:
+/* 8034267C 0033E2DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342680 0033E2E0 41 82 05 E0 */ beq lbl_80342C60
+/* 80342684 0033E2E4 48 00 05 E0 */ b lbl_80342C64
+/* 80342688 0033E2E8 38 61 00 08 */ addi r3, r1, 8
+/* 8034268C 0033E2EC 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342690 0033E2F0 4C C6 31 82 */ crclr 6
+/* 80342694 0033E2F4 4B E8 A4 69 */ bl sprintf
+/* 80342698 0033E2F8 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034269C 0033E2FC 7F E3 FB 78 */ mr r3, r31
+/* 803426A0 0033E300 38 BE 01 54 */ addi r5, r30, 0x154
+/* 803426A4 0033E304 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 803426A8 0033E308 4B FF CD F9 */ bl gpiAppendStringToBuffer
+/* 803426AC 0033E30C 2C 03 00 00 */ cmpwi r3, 0
+/* 803426B0 0033E310 41 82 00 08 */ beq lbl_803426B8
+/* 803426B4 0033E314 48 00 00 28 */ b lbl_803426DC
+lbl_803426B8:
+/* 803426B8 0033E318 7F E3 FB 78 */ mr r3, r31
+/* 803426BC 0033E31C 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 803426C0 0033E320 38 A1 00 08 */ addi r5, r1, 8
+/* 803426C4 0033E324 4B FF CD DD */ bl gpiAppendStringToBuffer
+/* 803426C8 0033E328 2C 03 00 00 */ cmpwi r3, 0
+/* 803426CC 0033E32C 38 00 00 00 */ li r0, 0
+/* 803426D0 0033E330 41 82 00 08 */ beq lbl_803426D8
+/* 803426D4 0033E334 7C 60 1B 78 */ mr r0, r3
+lbl_803426D8:
+/* 803426D8 0033E338 7C 03 03 78 */ mr r3, r0
+lbl_803426DC:
+/* 803426DC 0033E33C 2C 03 00 00 */ cmpwi r3, 0
+/* 803426E0 0033E340 41 82 05 80 */ beq lbl_80342C60
+/* 803426E4 0033E344 48 00 05 80 */ b lbl_80342C64
+/* 803426E8 0033E348 38 61 00 08 */ addi r3, r1, 8
+/* 803426EC 0033E34C 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 803426F0 0033E350 4C C6 31 82 */ crclr 6
+/* 803426F4 0033E354 4B E8 A4 09 */ bl sprintf
+/* 803426F8 0033E358 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803426FC 0033E35C 7F E3 FB 78 */ mr r3, r31
+/* 80342700 0033E360 38 BE 01 64 */ addi r5, r30, 0x164
+/* 80342704 0033E364 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342708 0033E368 4B FF CD 99 */ bl gpiAppendStringToBuffer
+/* 8034270C 0033E36C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342710 0033E370 41 82 00 08 */ beq lbl_80342718
+/* 80342714 0033E374 48 00 00 28 */ b lbl_8034273C
+lbl_80342718:
+/* 80342718 0033E378 7F E3 FB 78 */ mr r3, r31
+/* 8034271C 0033E37C 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342720 0033E380 38 A1 00 08 */ addi r5, r1, 8
+/* 80342724 0033E384 4B FF CD 7D */ bl gpiAppendStringToBuffer
+/* 80342728 0033E388 2C 03 00 00 */ cmpwi r3, 0
+/* 8034272C 0033E38C 38 00 00 00 */ li r0, 0
+/* 80342730 0033E390 41 82 00 08 */ beq lbl_80342738
+/* 80342734 0033E394 7C 60 1B 78 */ mr r0, r3
+lbl_80342738:
+/* 80342738 0033E398 7C 03 03 78 */ mr r3, r0
+lbl_8034273C:
+/* 8034273C 0033E39C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342740 0033E3A0 41 82 05 20 */ beq lbl_80342C60
+/* 80342744 0033E3A4 48 00 05 20 */ b lbl_80342C64
+/* 80342748 0033E3A8 7C A0 26 70 */ srawi r0, r5, 4
+/* 8034274C 0033E3AC 38 61 00 08 */ addi r3, r1, 8
+/* 80342750 0033E3B0 7C A0 01 94 */ addze r5, r0
+/* 80342754 0033E3B4 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342758 0033E3B8 4C C6 31 82 */ crclr 6
+/* 8034275C 0033E3BC 4B E8 A3 A1 */ bl sprintf
+/* 80342760 0033E3C0 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342764 0033E3C4 7F E3 FB 78 */ mr r3, r31
+/* 80342768 0033E3C8 38 BE 01 70 */ addi r5, r30, 0x170
+/* 8034276C 0033E3CC 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342770 0033E3D0 4B FF CD 31 */ bl gpiAppendStringToBuffer
+/* 80342774 0033E3D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80342778 0033E3D8 41 82 00 08 */ beq lbl_80342780
+/* 8034277C 0033E3DC 48 00 00 28 */ b lbl_803427A4
+lbl_80342780:
+/* 80342780 0033E3E0 7F E3 FB 78 */ mr r3, r31
+/* 80342784 0033E3E4 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342788 0033E3E8 38 A1 00 08 */ addi r5, r1, 8
+/* 8034278C 0033E3EC 4B FF CD 15 */ bl gpiAppendStringToBuffer
+/* 80342790 0033E3F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342794 0033E3F4 38 00 00 00 */ li r0, 0
+/* 80342798 0033E3F8 41 82 00 08 */ beq lbl_803427A0
+/* 8034279C 0033E3FC 7C 60 1B 78 */ mr r0, r3
+lbl_803427A0:
+/* 803427A0 0033E400 7C 03 03 78 */ mr r3, r0
+lbl_803427A4:
+/* 803427A4 0033E404 2C 03 00 00 */ cmpwi r3, 0
+/* 803427A8 0033E408 41 82 04 B8 */ beq lbl_80342C60
+/* 803427AC 0033E40C 48 00 04 B8 */ b lbl_80342C64
+/* 803427B0 0033E410 7C A0 16 70 */ srawi r0, r5, 2
+/* 803427B4 0033E414 38 61 00 08 */ addi r3, r1, 8
+/* 803427B8 0033E418 7C A0 01 94 */ addze r5, r0
+/* 803427BC 0033E41C 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 803427C0 0033E420 4C C6 31 82 */ crclr 6
+/* 803427C4 0033E424 4B E8 A3 39 */ bl sprintf
+/* 803427C8 0033E428 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803427CC 0033E42C 7F E3 FB 78 */ mr r3, r31
+/* 803427D0 0033E430 38 BE 01 80 */ addi r5, r30, 0x180
+/* 803427D4 0033E434 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 803427D8 0033E438 4B FF CC C9 */ bl gpiAppendStringToBuffer
+/* 803427DC 0033E43C 2C 03 00 00 */ cmpwi r3, 0
+/* 803427E0 0033E440 41 82 00 08 */ beq lbl_803427E8
+/* 803427E4 0033E444 48 00 00 28 */ b lbl_8034280C
+lbl_803427E8:
+/* 803427E8 0033E448 7F E3 FB 78 */ mr r3, r31
+/* 803427EC 0033E44C 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 803427F0 0033E450 38 A1 00 08 */ addi r5, r1, 8
+/* 803427F4 0033E454 4B FF CC AD */ bl gpiAppendStringToBuffer
+/* 803427F8 0033E458 2C 03 00 00 */ cmpwi r3, 0
+/* 803427FC 0033E45C 38 00 00 00 */ li r0, 0
+/* 80342800 0033E460 41 82 00 08 */ beq lbl_80342808
+/* 80342804 0033E464 7C 60 1B 78 */ mr r0, r3
+lbl_80342808:
+/* 80342808 0033E468 7C 03 03 78 */ mr r3, r0
+lbl_8034280C:
+/* 8034280C 0033E46C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342810 0033E470 41 82 04 50 */ beq lbl_80342C60
+/* 80342814 0033E474 48 00 04 50 */ b lbl_80342C64
+/* 80342818 0033E478 7C A0 16 70 */ srawi r0, r5, 2
+/* 8034281C 0033E47C 38 61 00 08 */ addi r3, r1, 8
+/* 80342820 0033E480 7C A0 01 94 */ addze r5, r0
+/* 80342824 0033E484 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342828 0033E488 4C C6 31 82 */ crclr 6
+/* 8034282C 0033E48C 4B E8 A2 D1 */ bl sprintf
+/* 80342830 0033E490 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342834 0033E494 7F E3 FB 78 */ mr r3, r31
+/* 80342838 0033E498 38 BE 01 90 */ addi r5, r30, 0x190
+/* 8034283C 0033E49C 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342840 0033E4A0 4B FF CC 61 */ bl gpiAppendStringToBuffer
+/* 80342844 0033E4A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80342848 0033E4A8 41 82 00 08 */ beq lbl_80342850
+/* 8034284C 0033E4AC 48 00 00 28 */ b lbl_80342874
+lbl_80342850:
+/* 80342850 0033E4B0 7F E3 FB 78 */ mr r3, r31
+/* 80342854 0033E4B4 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342858 0033E4B8 38 A1 00 08 */ addi r5, r1, 8
+/* 8034285C 0033E4BC 4B FF CC 45 */ bl gpiAppendStringToBuffer
+/* 80342860 0033E4C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342864 0033E4C4 38 00 00 00 */ li r0, 0
+/* 80342868 0033E4C8 41 82 00 08 */ beq lbl_80342870
+/* 8034286C 0033E4CC 7C 60 1B 78 */ mr r0, r3
+lbl_80342870:
+/* 80342870 0033E4D0 7C 03 03 78 */ mr r3, r0
+lbl_80342874:
+/* 80342874 0033E4D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80342878 0033E4D8 41 82 03 E8 */ beq lbl_80342C60
+/* 8034287C 0033E4DC 48 00 03 E8 */ b lbl_80342C64
+/* 80342880 0033E4E0 38 61 00 08 */ addi r3, r1, 8
+/* 80342884 0033E4E4 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342888 0033E4E8 4C C6 31 82 */ crclr 6
+/* 8034288C 0033E4EC 4B E8 A2 71 */ bl sprintf
+/* 80342890 0033E4F0 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342894 0033E4F4 7F E3 FB 78 */ mr r3, r31
+/* 80342898 0033E4F8 38 BE 01 A0 */ addi r5, r30, 0x1a0
+/* 8034289C 0033E4FC 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 803428A0 0033E500 4B FF CC 01 */ bl gpiAppendStringToBuffer
+/* 803428A4 0033E504 2C 03 00 00 */ cmpwi r3, 0
+/* 803428A8 0033E508 41 82 00 08 */ beq lbl_803428B0
+/* 803428AC 0033E50C 48 00 00 28 */ b lbl_803428D4
+lbl_803428B0:
+/* 803428B0 0033E510 7F E3 FB 78 */ mr r3, r31
+/* 803428B4 0033E514 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 803428B8 0033E518 38 A1 00 08 */ addi r5, r1, 8
+/* 803428BC 0033E51C 4B FF CB E5 */ bl gpiAppendStringToBuffer
+/* 803428C0 0033E520 2C 03 00 00 */ cmpwi r3, 0
+/* 803428C4 0033E524 38 00 00 00 */ li r0, 0
+/* 803428C8 0033E528 41 82 00 08 */ beq lbl_803428D0
+/* 803428CC 0033E52C 7C 60 1B 78 */ mr r0, r3
+lbl_803428D0:
+/* 803428D0 0033E530 7C 03 03 78 */ mr r3, r0
+lbl_803428D4:
+/* 803428D4 0033E534 2C 03 00 00 */ cmpwi r3, 0
+/* 803428D8 0033E538 41 82 03 88 */ beq lbl_80342C60
+/* 803428DC 0033E53C 48 00 03 88 */ b lbl_80342C64
+/* 803428E0 0033E540 38 61 00 08 */ addi r3, r1, 8
+/* 803428E4 0033E544 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 803428E8 0033E548 4C C6 31 82 */ crclr 6
+/* 803428EC 0033E54C 4B E8 A2 11 */ bl sprintf
+/* 803428F0 0033E550 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803428F4 0033E554 7F E3 FB 78 */ mr r3, r31
+/* 803428F8 0033E558 38 BE 01 B0 */ addi r5, r30, 0x1b0
+/* 803428FC 0033E55C 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342900 0033E560 4B FF CB A1 */ bl gpiAppendStringToBuffer
+/* 80342904 0033E564 2C 03 00 00 */ cmpwi r3, 0
+/* 80342908 0033E568 41 82 00 08 */ beq lbl_80342910
+/* 8034290C 0033E56C 48 00 00 28 */ b lbl_80342934
+lbl_80342910:
+/* 80342910 0033E570 7F E3 FB 78 */ mr r3, r31
+/* 80342914 0033E574 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342918 0033E578 38 A1 00 08 */ addi r5, r1, 8
+/* 8034291C 0033E57C 4B FF CB 85 */ bl gpiAppendStringToBuffer
+/* 80342920 0033E580 2C 03 00 00 */ cmpwi r3, 0
+/* 80342924 0033E584 38 00 00 00 */ li r0, 0
+/* 80342928 0033E588 41 82 00 08 */ beq lbl_80342930
+/* 8034292C 0033E58C 7C 60 1B 78 */ mr r0, r3
+lbl_80342930:
+/* 80342930 0033E590 7C 03 03 78 */ mr r3, r0
+lbl_80342934:
+/* 80342934 0033E594 2C 03 00 00 */ cmpwi r3, 0
+/* 80342938 0033E598 41 82 03 28 */ beq lbl_80342C60
+/* 8034293C 0033E59C 48 00 03 28 */ b lbl_80342C64
+/* 80342940 0033E5A0 2C 05 00 00 */ cmpwi r5, 0
+/* 80342944 0033E5A4 41 82 00 08 */ beq lbl_8034294C
+/* 80342948 0033E5A8 38 A0 00 01 */ li r5, 1
+lbl_8034294C:
+/* 8034294C 0033E5AC 38 61 00 08 */ addi r3, r1, 8
+/* 80342950 0033E5B0 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342954 0033E5B4 4C C6 31 82 */ crclr 6
+/* 80342958 0033E5B8 4B E8 A1 A5 */ bl sprintf
+/* 8034295C 0033E5BC 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342960 0033E5C0 7F E3 FB 78 */ mr r3, r31
+/* 80342964 0033E5C4 38 BE 01 C4 */ addi r5, r30, 0x1c4
+/* 80342968 0033E5C8 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 8034296C 0033E5CC 4B FF CB 35 */ bl gpiAppendStringToBuffer
+/* 80342970 0033E5D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342974 0033E5D4 41 82 00 08 */ beq lbl_8034297C
+/* 80342978 0033E5D8 48 00 00 28 */ b lbl_803429A0
+lbl_8034297C:
+/* 8034297C 0033E5DC 7F E3 FB 78 */ mr r3, r31
+/* 80342980 0033E5E0 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342984 0033E5E4 38 A1 00 08 */ addi r5, r1, 8
+/* 80342988 0033E5E8 4B FF CB 19 */ bl gpiAppendStringToBuffer
+/* 8034298C 0033E5EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342990 0033E5F0 38 00 00 00 */ li r0, 0
+/* 80342994 0033E5F4 41 82 00 08 */ beq lbl_8034299C
+/* 80342998 0033E5F8 7C 60 1B 78 */ mr r0, r3
+lbl_8034299C:
+/* 8034299C 0033E5FC 7C 03 03 78 */ mr r3, r0
+lbl_803429A0:
+/* 803429A0 0033E600 2C 03 00 00 */ cmpwi r3, 0
+/* 803429A4 0033E604 41 82 02 BC */ beq lbl_80342C60
+/* 803429A8 0033E608 48 00 02 BC */ b lbl_80342C64
+/* 803429AC 0033E60C 38 61 00 08 */ addi r3, r1, 8
+/* 803429B0 0033E610 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 803429B4 0033E614 4C C6 31 82 */ crclr 6
+/* 803429B8 0033E618 4B E8 A1 45 */ bl sprintf
+/* 803429BC 0033E61C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803429C0 0033E620 7F E3 FB 78 */ mr r3, r31
+/* 803429C4 0033E624 38 AD 90 D0 */ addi r5, r13, lbl_8063E390-_SDA_BASE_
+/* 803429C8 0033E628 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803429CC 0033E62C 4B FF CA D5 */ bl gpiAppendStringToBuffer
+/* 803429D0 0033E630 2C 03 00 00 */ cmpwi r3, 0
+/* 803429D4 0033E634 41 82 00 08 */ beq lbl_803429DC
+/* 803429D8 0033E638 48 00 00 28 */ b lbl_80342A00
+lbl_803429DC:
+/* 803429DC 0033E63C 7F E3 FB 78 */ mr r3, r31
+/* 803429E0 0033E640 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803429E4 0033E644 38 A1 00 08 */ addi r5, r1, 8
+/* 803429E8 0033E648 4B FF CA B9 */ bl gpiAppendStringToBuffer
+/* 803429EC 0033E64C 2C 03 00 00 */ cmpwi r3, 0
+/* 803429F0 0033E650 38 00 00 00 */ li r0, 0
+/* 803429F4 0033E654 41 82 00 08 */ beq lbl_803429FC
+/* 803429F8 0033E658 7C 60 1B 78 */ mr r0, r3
+lbl_803429FC:
+/* 803429FC 0033E65C 7C 03 03 78 */ mr r3, r0
+lbl_80342A00:
+/* 80342A00 0033E660 2C 03 00 00 */ cmpwi r3, 0
+/* 80342A04 0033E664 41 82 02 5C */ beq lbl_80342C60
+/* 80342A08 0033E668 48 00 02 5C */ b lbl_80342C64
+/* 80342A0C 0033E66C 38 61 00 08 */ addi r3, r1, 8
+/* 80342A10 0033E670 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342A14 0033E674 4C C6 31 82 */ crclr 6
+/* 80342A18 0033E678 4B E8 A0 E5 */ bl sprintf
+/* 80342A1C 0033E67C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342A20 0033E680 7F E3 FB 78 */ mr r3, r31
+/* 80342A24 0033E684 38 AD 90 D8 */ addi r5, r13, lbl_8063E398-_SDA_BASE_
+/* 80342A28 0033E688 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342A2C 0033E68C 4B FF CA 75 */ bl gpiAppendStringToBuffer
+/* 80342A30 0033E690 2C 03 00 00 */ cmpwi r3, 0
+/* 80342A34 0033E694 41 82 00 08 */ beq lbl_80342A3C
+/* 80342A38 0033E698 48 00 00 28 */ b lbl_80342A60
+lbl_80342A3C:
+/* 80342A3C 0033E69C 7F E3 FB 78 */ mr r3, r31
+/* 80342A40 0033E6A0 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342A44 0033E6A4 38 A1 00 08 */ addi r5, r1, 8
+/* 80342A48 0033E6A8 4B FF CA 59 */ bl gpiAppendStringToBuffer
+/* 80342A4C 0033E6AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342A50 0033E6B0 38 00 00 00 */ li r0, 0
+/* 80342A54 0033E6B4 41 82 00 08 */ beq lbl_80342A5C
+/* 80342A58 0033E6B8 7C 60 1B 78 */ mr r0, r3
+lbl_80342A5C:
+/* 80342A5C 0033E6BC 7C 03 03 78 */ mr r3, r0
+lbl_80342A60:
+/* 80342A60 0033E6C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342A64 0033E6C4 41 82 01 FC */ beq lbl_80342C60
+/* 80342A68 0033E6C8 48 00 01 FC */ b lbl_80342C64
+/* 80342A6C 0033E6CC 38 61 00 08 */ addi r3, r1, 8
+/* 80342A70 0033E6D0 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342A74 0033E6D4 4C C6 31 82 */ crclr 6
+/* 80342A78 0033E6D8 4B E8 A0 85 */ bl sprintf
+/* 80342A7C 0033E6DC 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342A80 0033E6E0 7F E3 FB 78 */ mr r3, r31
+/* 80342A84 0033E6E4 38 AD 90 E0 */ addi r5, r13, lbl_8063E3A0-_SDA_BASE_
+/* 80342A88 0033E6E8 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342A8C 0033E6EC 4B FF CA 15 */ bl gpiAppendStringToBuffer
+/* 80342A90 0033E6F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342A94 0033E6F4 41 82 00 08 */ beq lbl_80342A9C
+/* 80342A98 0033E6F8 48 00 00 28 */ b lbl_80342AC0
+lbl_80342A9C:
+/* 80342A9C 0033E6FC 7F E3 FB 78 */ mr r3, r31
+/* 80342AA0 0033E700 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342AA4 0033E704 38 A1 00 08 */ addi r5, r1, 8
+/* 80342AA8 0033E708 4B FF C9 F9 */ bl gpiAppendStringToBuffer
+/* 80342AAC 0033E70C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342AB0 0033E710 38 00 00 00 */ li r0, 0
+/* 80342AB4 0033E714 41 82 00 08 */ beq lbl_80342ABC
+/* 80342AB8 0033E718 7C 60 1B 78 */ mr r0, r3
+lbl_80342ABC:
+/* 80342ABC 0033E71C 7C 03 03 78 */ mr r3, r0
+lbl_80342AC0:
+/* 80342AC0 0033E720 2C 03 00 00 */ cmpwi r3, 0
+/* 80342AC4 0033E724 41 82 01 9C */ beq lbl_80342C60
+/* 80342AC8 0033E728 48 00 01 9C */ b lbl_80342C64
+/* 80342ACC 0033E72C 38 61 00 08 */ addi r3, r1, 8
+/* 80342AD0 0033E730 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342AD4 0033E734 4C C6 31 82 */ crclr 6
+/* 80342AD8 0033E738 4B E8 A0 25 */ bl sprintf
+/* 80342ADC 0033E73C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342AE0 0033E740 7F E3 FB 78 */ mr r3, r31
+/* 80342AE4 0033E744 38 AD 90 E8 */ addi r5, r13, lbl_8063E3A8-_SDA_BASE_
+/* 80342AE8 0033E748 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342AEC 0033E74C 4B FF C9 B5 */ bl gpiAppendStringToBuffer
+/* 80342AF0 0033E750 2C 03 00 00 */ cmpwi r3, 0
+/* 80342AF4 0033E754 41 82 00 08 */ beq lbl_80342AFC
+/* 80342AF8 0033E758 48 00 00 28 */ b lbl_80342B20
+lbl_80342AFC:
+/* 80342AFC 0033E75C 7F E3 FB 78 */ mr r3, r31
+/* 80342B00 0033E760 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342B04 0033E764 38 A1 00 08 */ addi r5, r1, 8
+/* 80342B08 0033E768 4B FF C9 99 */ bl gpiAppendStringToBuffer
+/* 80342B0C 0033E76C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342B10 0033E770 38 00 00 00 */ li r0, 0
+/* 80342B14 0033E774 41 82 00 08 */ beq lbl_80342B1C
+/* 80342B18 0033E778 7C 60 1B 78 */ mr r0, r3
+lbl_80342B1C:
+/* 80342B1C 0033E77C 7C 03 03 78 */ mr r3, r0
+lbl_80342B20:
+/* 80342B20 0033E780 2C 03 00 00 */ cmpwi r3, 0
+/* 80342B24 0033E784 41 82 01 3C */ beq lbl_80342C60
+/* 80342B28 0033E788 48 00 01 3C */ b lbl_80342C64
+/* 80342B2C 0033E78C 38 61 00 08 */ addi r3, r1, 8
+/* 80342B30 0033E790 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342B34 0033E794 4C C6 31 82 */ crclr 6
+/* 80342B38 0033E798 4B E8 9F C5 */ bl sprintf
+/* 80342B3C 0033E79C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342B40 0033E7A0 7F E3 FB 78 */ mr r3, r31
+/* 80342B44 0033E7A4 38 AD 90 F0 */ addi r5, r13, lbl_8063E3B0-_SDA_BASE_
+/* 80342B48 0033E7A8 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342B4C 0033E7AC 4B FF C9 55 */ bl gpiAppendStringToBuffer
+/* 80342B50 0033E7B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342B54 0033E7B4 41 82 00 08 */ beq lbl_80342B5C
+/* 80342B58 0033E7B8 48 00 00 28 */ b lbl_80342B80
+lbl_80342B5C:
+/* 80342B5C 0033E7BC 7F E3 FB 78 */ mr r3, r31
+/* 80342B60 0033E7C0 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342B64 0033E7C4 38 A1 00 08 */ addi r5, r1, 8
+/* 80342B68 0033E7C8 4B FF C9 39 */ bl gpiAppendStringToBuffer
+/* 80342B6C 0033E7CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342B70 0033E7D0 38 00 00 00 */ li r0, 0
+/* 80342B74 0033E7D4 41 82 00 08 */ beq lbl_80342B7C
+/* 80342B78 0033E7D8 7C 60 1B 78 */ mr r0, r3
+lbl_80342B7C:
+/* 80342B7C 0033E7DC 7C 03 03 78 */ mr r3, r0
+lbl_80342B80:
+/* 80342B80 0033E7E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342B84 0033E7E4 41 82 00 DC */ beq lbl_80342C60
+/* 80342B88 0033E7E8 48 00 00 DC */ b lbl_80342C64
+/* 80342B8C 0033E7EC 38 61 00 08 */ addi r3, r1, 8
+/* 80342B90 0033E7F0 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342B94 0033E7F4 4C C6 31 82 */ crclr 6
+/* 80342B98 0033E7F8 4B E8 9F 65 */ bl sprintf
+/* 80342B9C 0033E7FC 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342BA0 0033E800 7F E3 FB 78 */ mr r3, r31
+/* 80342BA4 0033E804 38 AD 90 F8 */ addi r5, r13, lbl_8063E3B8-_SDA_BASE_
+/* 80342BA8 0033E808 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342BAC 0033E80C 4B FF C8 F5 */ bl gpiAppendStringToBuffer
+/* 80342BB0 0033E810 2C 03 00 00 */ cmpwi r3, 0
+/* 80342BB4 0033E814 41 82 00 08 */ beq lbl_80342BBC
+/* 80342BB8 0033E818 48 00 00 28 */ b lbl_80342BE0
+lbl_80342BBC:
+/* 80342BBC 0033E81C 7F E3 FB 78 */ mr r3, r31
+/* 80342BC0 0033E820 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342BC4 0033E824 38 A1 00 08 */ addi r5, r1, 8
+/* 80342BC8 0033E828 4B FF C8 D9 */ bl gpiAppendStringToBuffer
+/* 80342BCC 0033E82C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342BD0 0033E830 38 00 00 00 */ li r0, 0
+/* 80342BD4 0033E834 41 82 00 08 */ beq lbl_80342BDC
+/* 80342BD8 0033E838 7C 60 1B 78 */ mr r0, r3
+lbl_80342BDC:
+/* 80342BDC 0033E83C 7C 03 03 78 */ mr r3, r0
+lbl_80342BE0:
+/* 80342BE0 0033E840 2C 03 00 00 */ cmpwi r3, 0
+/* 80342BE4 0033E844 41 82 00 7C */ beq lbl_80342C60
+/* 80342BE8 0033E848 48 00 00 7C */ b lbl_80342C64
+/* 80342BEC 0033E84C 38 61 00 08 */ addi r3, r1, 8
+/* 80342BF0 0033E850 38 8D 91 28 */ addi r4, r13, lbl_8063E3E8-_SDA_BASE_
+/* 80342BF4 0033E854 4C C6 31 82 */ crclr 6
+/* 80342BF8 0033E858 4B E8 9F 05 */ bl sprintf
+/* 80342BFC 0033E85C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342C00 0033E860 7F E3 FB 78 */ mr r3, r31
+/* 80342C04 0033E864 38 AD 91 00 */ addi r5, r13, lbl_8063E3C0-_SDA_BASE_
+/* 80342C08 0033E868 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342C0C 0033E86C 4B FF C8 95 */ bl gpiAppendStringToBuffer
+/* 80342C10 0033E870 2C 03 00 00 */ cmpwi r3, 0
+/* 80342C14 0033E874 41 82 00 08 */ beq lbl_80342C1C
+/* 80342C18 0033E878 48 00 00 28 */ b lbl_80342C40
+lbl_80342C1C:
+/* 80342C1C 0033E87C 7F E3 FB 78 */ mr r3, r31
+/* 80342C20 0033E880 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342C24 0033E884 38 A1 00 08 */ addi r5, r1, 8
+/* 80342C28 0033E888 4B FF C8 79 */ bl gpiAppendStringToBuffer
+/* 80342C2C 0033E88C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342C30 0033E890 38 00 00 00 */ li r0, 0
+/* 80342C34 0033E894 41 82 00 08 */ beq lbl_80342C3C
+/* 80342C38 0033E898 7C 60 1B 78 */ mr r0, r3
+lbl_80342C3C:
+/* 80342C3C 0033E89C 7C 03 03 78 */ mr r3, r0
+lbl_80342C40:
+/* 80342C40 0033E8A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342C44 0033E8A4 41 82 00 1C */ beq lbl_80342C60
+/* 80342C48 0033E8A8 48 00 00 1C */ b lbl_80342C64
+lbl_80342C4C:
+/* 80342C4C 0033E8AC 7F E3 FB 78 */ mr r3, r31
+/* 80342C50 0033E8B0 38 9E 01 D4 */ addi r4, r30, 0x1d4
+/* 80342C54 0033E8B4 48 00 58 05 */ bl gpiSetErrorString
+/* 80342C58 0033E8B8 38 60 00 02 */ li r3, 2
+/* 80342C5C 0033E8BC 48 00 00 08 */ b lbl_80342C64
+lbl_80342C60:
+/* 80342C60 0033E8C0 38 60 00 00 */ li r3, 0
+lbl_80342C64:
+/* 80342C64 0033E8C4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80342C68 0033E8C8 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80342C6C 0033E8CC 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80342C70 0033E8D0 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80342C74 0033E8D4 7C 08 03 A6 */ mtlr r0
+/* 80342C78 0033E8D8 38 21 00 30 */ addi r1, r1, 0x30
+/* 80342C7C 0033E8DC 4E 80 00 20 */ blr
+
+.global gpiSetInfos
+gpiSetInfos:
+/* 80342C80 0033E8E0 94 21 FE B0 */ stwu r1, -0x150(r1)
+/* 80342C84 0033E8E4 7C 08 02 A6 */ mflr r0
+/* 80342C88 0033E8E8 2C 05 00 00 */ cmpwi r5, 0
+/* 80342C8C 0033E8EC 90 01 01 54 */ stw r0, 0x154(r1)
+/* 80342C90 0033E8F0 93 E1 01 4C */ stw r31, 0x14c(r1)
+/* 80342C94 0033E8F4 7C 7F 1B 78 */ mr r31, r3
+/* 80342C98 0033E8F8 93 C1 01 48 */ stw r30, 0x148(r1)
+/* 80342C9C 0033E8FC 3F C0 80 45 */ lis r30, lbl_8044ABE8@ha
+/* 80342CA0 0033E900 3B DE AB E8 */ addi r30, r30, lbl_8044ABE8@l
+/* 80342CA4 0033E904 93 A1 01 44 */ stw r29, 0x144(r1)
+/* 80342CA8 0033E908 93 81 01 40 */ stw r28, 0x140(r1)
+/* 80342CAC 0033E90C 7C BC 2B 78 */ mr r28, r5
+/* 80342CB0 0033E910 83 A3 00 00 */ lwz r29, 0(r3)
+/* 80342CB4 0033E914 40 82 00 14 */ bne lbl_80342CC8
+/* 80342CB8 0033E918 38 9E 02 48 */ addi r4, r30, 0x248
+/* 80342CBC 0033E91C 48 00 57 9D */ bl gpiSetErrorString
+/* 80342CC0 0033E920 38 60 00 02 */ li r3, 2
+/* 80342CC4 0033E924 48 00 0A AC */ b lbl_80343770
+lbl_80342CC8:
+/* 80342CC8 0033E928 38 04 F9 00 */ addi r0, r4, -1792
+/* 80342CCC 0033E92C 28 00 00 1E */ cmplwi r0, 0x1e
+/* 80342CD0 0033E930 41 81 0A 88 */ bgt lbl_80343758
+/* 80342CD4 0033E934 3C 80 80 45 */ lis r4, lbl_8044AE9C@ha
+/* 80342CD8 0033E938 54 00 10 3A */ slwi r0, r0, 2
+/* 80342CDC 0033E93C 38 84 AE 9C */ addi r4, r4, lbl_8044AE9C@l
+/* 80342CE0 0033E940 7C 84 00 2E */ lwzx r4, r4, r0
+/* 80342CE4 0033E944 7C 89 03 A6 */ mtctr r4
+/* 80342CE8 0033E948 4E 80 04 20 */ bctr
+/* 80342CEC 0033E94C 88 05 00 00 */ lbz r0, 0(r5)
+/* 80342CF0 0033E950 7C 00 07 75 */ extsb. r0, r0
+/* 80342CF4 0033E954 40 82 00 14 */ bne lbl_80342D08
+/* 80342CF8 0033E958 38 9E 02 48 */ addi r4, r30, 0x248
+/* 80342CFC 0033E95C 48 00 57 5D */ bl gpiSetErrorString
+/* 80342D00 0033E960 38 60 00 02 */ li r3, 2
+/* 80342D04 0033E964 48 00 0A 6C */ b lbl_80343770
+lbl_80342D08:
+/* 80342D08 0033E968 7F 84 E3 78 */ mr r4, r28
+/* 80342D0C 0033E96C 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342D10 0033E970 38 A0 00 1F */ li r5, 0x1f
+/* 80342D14 0033E974 48 00 52 3D */ bl strzcpy
+/* 80342D18 0033E978 38 7D 01 10 */ addi r3, r29, 0x110
+/* 80342D1C 0033E97C 38 81 00 38 */ addi r4, r1, 0x38
+/* 80342D20 0033E980 38 A0 00 1F */ li r5, 0x1f
+/* 80342D24 0033E984 48 00 52 2D */ bl strzcpy
+/* 80342D28 0033E988 83 DF 00 00 */ lwz r30, 0(r31)
+/* 80342D2C 0033E98C 7F E3 FB 78 */ mr r3, r31
+/* 80342D30 0033E990 38 AD 90 90 */ addi r5, r13, lbl_8063E350-_SDA_BASE_
+/* 80342D34 0033E994 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 80342D38 0033E998 4B FF C7 69 */ bl gpiAppendStringToBuffer
+/* 80342D3C 0033E99C 2C 03 00 00 */ cmpwi r3, 0
+/* 80342D40 0033E9A0 41 82 00 08 */ beq lbl_80342D48
+/* 80342D44 0033E9A4 48 00 00 28 */ b lbl_80342D6C
+lbl_80342D48:
+/* 80342D48 0033E9A8 7F E3 FB 78 */ mr r3, r31
+/* 80342D4C 0033E9AC 38 9E 04 5C */ addi r4, r30, 0x45c
+/* 80342D50 0033E9B0 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80342D54 0033E9B4 4B FF C7 4D */ bl gpiAppendStringToBuffer
+/* 80342D58 0033E9B8 2C 03 00 00 */ cmpwi r3, 0
+/* 80342D5C 0033E9BC 38 00 00 00 */ li r0, 0
+/* 80342D60 0033E9C0 41 82 00 08 */ beq lbl_80342D68
+/* 80342D64 0033E9C4 7C 60 1B 78 */ mr r0, r3
+lbl_80342D68:
+/* 80342D68 0033E9C8 7C 03 03 78 */ mr r3, r0
+lbl_80342D6C:
+/* 80342D6C 0033E9CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342D70 0033E9D0 41 82 09 FC */ beq lbl_8034376C
+/* 80342D74 0033E9D4 48 00 09 FC */ b lbl_80343770
+/* 80342D78 0033E9D8 88 05 00 00 */ lbz r0, 0(r5)
+/* 80342D7C 0033E9DC 7C 00 07 75 */ extsb. r0, r0
+/* 80342D80 0033E9E0 40 82 00 14 */ bne lbl_80342D94
+/* 80342D84 0033E9E4 38 9E 02 48 */ addi r4, r30, 0x248
+/* 80342D88 0033E9E8 48 00 56 D1 */ bl gpiSetErrorString
+/* 80342D8C 0033E9EC 38 60 00 02 */ li r3, 2
+/* 80342D90 0033E9F0 48 00 09 E0 */ b lbl_80343770
+lbl_80342D94:
+/* 80342D94 0033E9F4 7F 84 E3 78 */ mr r4, r28
+/* 80342D98 0033E9F8 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342D9C 0033E9FC 38 A0 00 15 */ li r5, 0x15
+/* 80342DA0 0033EA00 48 00 51 B1 */ bl strzcpy
+/* 80342DA4 0033EA04 38 7D 01 2F */ addi r3, r29, 0x12f
+/* 80342DA8 0033EA08 38 81 00 38 */ addi r4, r1, 0x38
+/* 80342DAC 0033EA0C 38 A0 00 15 */ li r5, 0x15
+/* 80342DB0 0033EA10 48 00 51 A1 */ bl strzcpy
+/* 80342DB4 0033EA14 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342DB8 0033EA18 7F E3 FB 78 */ mr r3, r31
+/* 80342DBC 0033EA1C 38 BE 00 70 */ addi r5, r30, 0x70
+/* 80342DC0 0033EA20 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342DC4 0033EA24 4B FF C6 DD */ bl gpiAppendStringToBuffer
+/* 80342DC8 0033EA28 2C 03 00 00 */ cmpwi r3, 0
+/* 80342DCC 0033EA2C 41 82 00 08 */ beq lbl_80342DD4
+/* 80342DD0 0033EA30 48 00 00 28 */ b lbl_80342DF8
+lbl_80342DD4:
+/* 80342DD4 0033EA34 7F E3 FB 78 */ mr r3, r31
+/* 80342DD8 0033EA38 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342DDC 0033EA3C 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80342DE0 0033EA40 4B FF C6 C1 */ bl gpiAppendStringToBuffer
+/* 80342DE4 0033EA44 2C 03 00 00 */ cmpwi r3, 0
+/* 80342DE8 0033EA48 38 00 00 00 */ li r0, 0
+/* 80342DEC 0033EA4C 41 82 00 08 */ beq lbl_80342DF4
+/* 80342DF0 0033EA50 7C 60 1B 78 */ mr r0, r3
+lbl_80342DF4:
+/* 80342DF4 0033EA54 7C 03 03 78 */ mr r3, r0
+lbl_80342DF8:
+/* 80342DF8 0033EA58 2C 03 00 00 */ cmpwi r3, 0
+/* 80342DFC 0033EA5C 41 82 09 70 */ beq lbl_8034376C
+/* 80342E00 0033EA60 48 00 09 70 */ b lbl_80343770
+/* 80342E04 0033EA64 88 05 00 00 */ lbz r0, 0(r5)
+/* 80342E08 0033EA68 7C 00 07 75 */ extsb. r0, r0
+/* 80342E0C 0033EA6C 40 82 00 14 */ bne lbl_80342E20
+/* 80342E10 0033EA70 38 9E 02 48 */ addi r4, r30, 0x248
+/* 80342E14 0033EA74 48 00 56 45 */ bl gpiSetErrorString
+/* 80342E18 0033EA78 38 60 00 02 */ li r3, 2
+/* 80342E1C 0033EA7C 48 00 09 54 */ b lbl_80343770
+lbl_80342E20:
+/* 80342E20 0033EA80 7F 84 E3 78 */ mr r4, r28
+/* 80342E24 0033EA84 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342E28 0033EA88 38 A0 00 33 */ li r5, 0x33
+/* 80342E2C 0033EA8C 48 00 51 25 */ bl strzcpy
+/* 80342E30 0033EA90 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342E34 0033EA94 4B FF 61 41 */ bl _strlwr
+/* 80342E38 0033EA98 38 7D 01 44 */ addi r3, r29, 0x144
+/* 80342E3C 0033EA9C 38 81 00 38 */ addi r4, r1, 0x38
+/* 80342E40 0033EAA0 38 A0 00 33 */ li r5, 0x33
+/* 80342E44 0033EAA4 48 00 51 0D */ bl strzcpy
+/* 80342E48 0033EAA8 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342E4C 0033EAAC 7F E3 FB 78 */ mr r3, r31
+/* 80342E50 0033EAB0 38 AD 90 98 */ addi r5, r13, lbl_8063E358-_SDA_BASE_
+/* 80342E54 0033EAB4 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342E58 0033EAB8 4B FF C6 49 */ bl gpiAppendStringToBuffer
+/* 80342E5C 0033EABC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342E60 0033EAC0 41 82 00 08 */ beq lbl_80342E68
+/* 80342E64 0033EAC4 48 00 00 28 */ b lbl_80342E8C
+lbl_80342E68:
+/* 80342E68 0033EAC8 7F E3 FB 78 */ mr r3, r31
+/* 80342E6C 0033EACC 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342E70 0033EAD0 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80342E74 0033EAD4 4B FF C6 2D */ bl gpiAppendStringToBuffer
+/* 80342E78 0033EAD8 2C 03 00 00 */ cmpwi r3, 0
+/* 80342E7C 0033EADC 38 00 00 00 */ li r0, 0
+/* 80342E80 0033EAE0 41 82 00 08 */ beq lbl_80342E88
+/* 80342E84 0033EAE4 7C 60 1B 78 */ mr r0, r3
+lbl_80342E88:
+/* 80342E88 0033EAE8 7C 03 03 78 */ mr r3, r0
+lbl_80342E8C:
+/* 80342E8C 0033EAEC 2C 03 00 00 */ cmpwi r3, 0
+/* 80342E90 0033EAF0 41 82 08 DC */ beq lbl_8034376C
+/* 80342E94 0033EAF4 48 00 08 DC */ b lbl_80343770
+/* 80342E98 0033EAF8 88 05 00 00 */ lbz r0, 0(r5)
+/* 80342E9C 0033EAFC 7C 00 07 75 */ extsb. r0, r0
+/* 80342EA0 0033EB00 40 82 00 14 */ bne lbl_80342EB4
+/* 80342EA4 0033EB04 38 9E 02 48 */ addi r4, r30, 0x248
+/* 80342EA8 0033EB08 48 00 55 B1 */ bl gpiSetErrorString
+/* 80342EAC 0033EB0C 38 60 00 02 */ li r3, 2
+/* 80342EB0 0033EB10 48 00 08 C0 */ b lbl_80343770
+lbl_80342EB4:
+/* 80342EB4 0033EB14 7F 84 E3 78 */ mr r4, r28
+/* 80342EB8 0033EB18 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342EBC 0033EB1C 38 A0 00 1F */ li r5, 0x1f
+/* 80342EC0 0033EB20 48 00 50 91 */ bl strzcpy
+/* 80342EC4 0033EB24 38 7D 01 77 */ addi r3, r29, 0x177
+/* 80342EC8 0033EB28 38 81 00 38 */ addi r4, r1, 0x38
+/* 80342ECC 0033EB2C 38 A0 00 1F */ li r5, 0x1f
+/* 80342ED0 0033EB30 48 00 50 81 */ bl strzcpy
+/* 80342ED4 0033EB34 38 7D 01 77 */ addi r3, r29, 0x177
+/* 80342ED8 0033EB38 38 81 00 08 */ addi r4, r1, 8
+/* 80342EDC 0033EB3C 48 00 55 B9 */ bl gpiEncodeString
+/* 80342EE0 0033EB40 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342EE4 0033EB44 7F E3 FB 78 */ mr r3, r31
+/* 80342EE8 0033EB48 38 BE 02 58 */ addi r5, r30, 0x258
+/* 80342EEC 0033EB4C 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342EF0 0033EB50 4B FF C5 B1 */ bl gpiAppendStringToBuffer
+/* 80342EF4 0033EB54 2C 03 00 00 */ cmpwi r3, 0
+/* 80342EF8 0033EB58 41 82 00 08 */ beq lbl_80342F00
+/* 80342EFC 0033EB5C 48 00 00 28 */ b lbl_80342F24
+lbl_80342F00:
+/* 80342F00 0033EB60 7F E3 FB 78 */ mr r3, r31
+/* 80342F04 0033EB64 38 9D 04 6C */ addi r4, r29, 0x46c
+/* 80342F08 0033EB68 38 A1 00 08 */ addi r5, r1, 8
+/* 80342F0C 0033EB6C 4B FF C5 95 */ bl gpiAppendStringToBuffer
+/* 80342F10 0033EB70 2C 03 00 00 */ cmpwi r3, 0
+/* 80342F14 0033EB74 38 00 00 00 */ li r0, 0
+/* 80342F18 0033EB78 41 82 00 08 */ beq lbl_80342F20
+/* 80342F1C 0033EB7C 7C 60 1B 78 */ mr r0, r3
+lbl_80342F20:
+/* 80342F20 0033EB80 7C 03 03 78 */ mr r3, r0
+lbl_80342F24:
+/* 80342F24 0033EB84 2C 03 00 00 */ cmpwi r3, 0
+/* 80342F28 0033EB88 41 82 08 44 */ beq lbl_8034376C
+/* 80342F2C 0033EB8C 48 00 08 44 */ b lbl_80343770
+/* 80342F30 0033EB90 7F 84 E3 78 */ mr r4, r28
+/* 80342F34 0033EB94 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342F38 0033EB98 38 A0 00 1F */ li r5, 0x1f
+/* 80342F3C 0033EB9C 48 00 50 15 */ bl strzcpy
+/* 80342F40 0033EBA0 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342F44 0033EBA4 7F E3 FB 78 */ mr r3, r31
+/* 80342F48 0033EBA8 38 BE 00 80 */ addi r5, r30, 0x80
+/* 80342F4C 0033EBAC 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342F50 0033EBB0 4B FF C5 51 */ bl gpiAppendStringToBuffer
+/* 80342F54 0033EBB4 2C 03 00 00 */ cmpwi r3, 0
+/* 80342F58 0033EBB8 41 82 00 08 */ beq lbl_80342F60
+/* 80342F5C 0033EBBC 48 00 00 28 */ b lbl_80342F84
+lbl_80342F60:
+/* 80342F60 0033EBC0 7F E3 FB 78 */ mr r3, r31
+/* 80342F64 0033EBC4 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342F68 0033EBC8 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80342F6C 0033EBCC 4B FF C5 35 */ bl gpiAppendStringToBuffer
+/* 80342F70 0033EBD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80342F74 0033EBD4 38 00 00 00 */ li r0, 0
+/* 80342F78 0033EBD8 41 82 00 08 */ beq lbl_80342F80
+/* 80342F7C 0033EBDC 7C 60 1B 78 */ mr r0, r3
+lbl_80342F80:
+/* 80342F80 0033EBE0 7C 03 03 78 */ mr r3, r0
+lbl_80342F84:
+/* 80342F84 0033EBE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80342F88 0033EBE8 41 82 07 E4 */ beq lbl_8034376C
+/* 80342F8C 0033EBEC 48 00 07 E4 */ b lbl_80343770
+/* 80342F90 0033EBF0 7F 84 E3 78 */ mr r4, r28
+/* 80342F94 0033EBF4 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342F98 0033EBF8 38 A0 00 1F */ li r5, 0x1f
+/* 80342F9C 0033EBFC 48 00 4F B5 */ bl strzcpy
+/* 80342FA0 0033EC00 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80342FA4 0033EC04 7F E3 FB 78 */ mr r3, r31
+/* 80342FA8 0033EC08 38 BE 00 8C */ addi r5, r30, 0x8c
+/* 80342FAC 0033EC0C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342FB0 0033EC10 4B FF C4 F1 */ bl gpiAppendStringToBuffer
+/* 80342FB4 0033EC14 2C 03 00 00 */ cmpwi r3, 0
+/* 80342FB8 0033EC18 41 82 00 08 */ beq lbl_80342FC0
+/* 80342FBC 0033EC1C 48 00 00 28 */ b lbl_80342FE4
+lbl_80342FC0:
+/* 80342FC0 0033EC20 7F E3 FB 78 */ mr r3, r31
+/* 80342FC4 0033EC24 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80342FC8 0033EC28 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80342FCC 0033EC2C 4B FF C4 D5 */ bl gpiAppendStringToBuffer
+/* 80342FD0 0033EC30 2C 03 00 00 */ cmpwi r3, 0
+/* 80342FD4 0033EC34 38 00 00 00 */ li r0, 0
+/* 80342FD8 0033EC38 41 82 00 08 */ beq lbl_80342FE0
+/* 80342FDC 0033EC3C 7C 60 1B 78 */ mr r0, r3
+lbl_80342FE0:
+/* 80342FE0 0033EC40 7C 03 03 78 */ mr r3, r0
+lbl_80342FE4:
+/* 80342FE4 0033EC44 2C 03 00 00 */ cmpwi r3, 0
+/* 80342FE8 0033EC48 41 82 07 84 */ beq lbl_8034376C
+/* 80342FEC 0033EC4C 48 00 07 84 */ b lbl_80343770
+/* 80342FF0 0033EC50 7F 84 E3 78 */ mr r4, r28
+/* 80342FF4 0033EC54 38 61 00 38 */ addi r3, r1, 0x38
+/* 80342FF8 0033EC58 38 A0 00 4C */ li r5, 0x4c
+/* 80342FFC 0033EC5C 48 00 4F 55 */ bl strzcpy
+/* 80343000 0033EC60 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80343004 0033EC64 7F E3 FB 78 */ mr r3, r31
+/* 80343008 0033EC68 38 BE 00 A4 */ addi r5, r30, 0xa4
+/* 8034300C 0033EC6C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343010 0033EC70 4B FF C4 91 */ bl gpiAppendStringToBuffer
+/* 80343014 0033EC74 2C 03 00 00 */ cmpwi r3, 0
+/* 80343018 0033EC78 41 82 00 08 */ beq lbl_80343020
+/* 8034301C 0033EC7C 48 00 00 28 */ b lbl_80343044
+lbl_80343020:
+/* 80343020 0033EC80 7F E3 FB 78 */ mr r3, r31
+/* 80343024 0033EC84 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343028 0033EC88 38 A1 00 38 */ addi r5, r1, 0x38
+/* 8034302C 0033EC8C 4B FF C4 75 */ bl gpiAppendStringToBuffer
+/* 80343030 0033EC90 2C 03 00 00 */ cmpwi r3, 0
+/* 80343034 0033EC94 38 00 00 00 */ li r0, 0
+/* 80343038 0033EC98 41 82 00 08 */ beq lbl_80343040
+/* 8034303C 0033EC9C 7C 60 1B 78 */ mr r0, r3
+lbl_80343040:
+/* 80343040 0033ECA0 7C 03 03 78 */ mr r3, r0
+lbl_80343044:
+/* 80343044 0033ECA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80343048 0033ECA8 41 82 07 24 */ beq lbl_8034376C
+/* 8034304C 0033ECAC 48 00 07 24 */ b lbl_80343770
+/* 80343050 0033ECB0 7F 84 E3 78 */ mr r4, r28
+/* 80343054 0033ECB4 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343058 0033ECB8 38 A0 00 0B */ li r5, 0xb
+/* 8034305C 0033ECBC 48 00 4E F5 */ bl strzcpy
+/* 80343060 0033ECC0 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80343064 0033ECC4 7F E3 FB 78 */ mr r3, r31
+/* 80343068 0033ECC8 38 BE 00 B0 */ addi r5, r30, 0xb0
+/* 8034306C 0033ECCC 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343070 0033ECD0 4B FF C4 31 */ bl gpiAppendStringToBuffer
+/* 80343074 0033ECD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80343078 0033ECD8 41 82 00 08 */ beq lbl_80343080
+/* 8034307C 0033ECDC 48 00 00 28 */ b lbl_803430A4
+lbl_80343080:
+/* 80343080 0033ECE0 7F E3 FB 78 */ mr r3, r31
+/* 80343084 0033ECE4 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343088 0033ECE8 38 A1 00 38 */ addi r5, r1, 0x38
+/* 8034308C 0033ECEC 4B FF C4 15 */ bl gpiAppendStringToBuffer
+/* 80343090 0033ECF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80343094 0033ECF4 38 00 00 00 */ li r0, 0
+/* 80343098 0033ECF8 41 82 00 08 */ beq lbl_803430A0
+/* 8034309C 0033ECFC 7C 60 1B 78 */ mr r0, r3
+lbl_803430A0:
+/* 803430A0 0033ED00 7C 03 03 78 */ mr r3, r0
+lbl_803430A4:
+/* 803430A4 0033ED04 2C 03 00 00 */ cmpwi r3, 0
+/* 803430A8 0033ED08 41 82 06 C4 */ beq lbl_8034376C
+/* 803430AC 0033ED0C 48 00 06 C4 */ b lbl_80343770
+/* 803430B0 0033ED10 7F 83 E3 78 */ mr r3, r28
+/* 803430B4 0033ED14 4B E8 3A B1 */ bl strlen
+/* 803430B8 0033ED18 28 03 00 02 */ cmplwi r3, 2
+/* 803430BC 0033ED1C 41 82 00 18 */ beq lbl_803430D4
+/* 803430C0 0033ED20 7F E3 FB 78 */ mr r3, r31
+/* 803430C4 0033ED24 38 9E 02 68 */ addi r4, r30, 0x268
+/* 803430C8 0033ED28 48 00 53 91 */ bl gpiSetErrorString
+/* 803430CC 0033ED2C 38 60 00 02 */ li r3, 2
+/* 803430D0 0033ED30 48 00 06 A0 */ b lbl_80343770
+lbl_803430D4:
+/* 803430D4 0033ED34 7F 84 E3 78 */ mr r4, r28
+/* 803430D8 0033ED38 38 61 00 38 */ addi r3, r1, 0x38
+/* 803430DC 0033ED3C 38 A0 00 03 */ li r5, 3
+/* 803430E0 0033ED40 48 00 4E 71 */ bl strzcpy
+/* 803430E4 0033ED44 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803430E8 0033ED48 7F E3 FB 78 */ mr r3, r31
+/* 803430EC 0033ED4C 38 BE 00 BC */ addi r5, r30, 0xbc
+/* 803430F0 0033ED50 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803430F4 0033ED54 4B FF C3 AD */ bl gpiAppendStringToBuffer
+/* 803430F8 0033ED58 2C 03 00 00 */ cmpwi r3, 0
+/* 803430FC 0033ED5C 41 82 00 08 */ beq lbl_80343104
+/* 80343100 0033ED60 48 00 00 28 */ b lbl_80343128
+lbl_80343104:
+/* 80343104 0033ED64 7F E3 FB 78 */ mr r3, r31
+/* 80343108 0033ED68 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 8034310C 0033ED6C 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343110 0033ED70 4B FF C3 91 */ bl gpiAppendStringToBuffer
+/* 80343114 0033ED74 2C 03 00 00 */ cmpwi r3, 0
+/* 80343118 0033ED78 38 00 00 00 */ li r0, 0
+/* 8034311C 0033ED7C 41 82 00 08 */ beq lbl_80343124
+/* 80343120 0033ED80 7C 60 1B 78 */ mr r0, r3
+lbl_80343124:
+/* 80343124 0033ED84 7C 03 03 78 */ mr r3, r0
+lbl_80343128:
+/* 80343128 0033ED88 2C 03 00 00 */ cmpwi r3, 0
+/* 8034312C 0033ED8C 41 82 06 40 */ beq lbl_8034376C
+/* 80343130 0033ED90 48 00 06 40 */ b lbl_80343770
+/* 80343134 0033ED94 88 85 00 00 */ lbz r4, 0(r5)
+/* 80343138 0033ED98 38 00 00 00 */ li r0, 0
+/* 8034313C 0033ED9C 7C 84 07 75 */ extsb. r4, r4
+/* 80343140 0033EDA0 41 80 00 0C */ blt lbl_8034314C
+/* 80343144 0033EDA4 2C 04 01 00 */ cmpwi r4, 0x100
+/* 80343148 0033EDA8 41 80 00 08 */ blt lbl_80343150
+lbl_8034314C:
+/* 8034314C 0033EDAC 38 00 00 01 */ li r0, 1
+lbl_80343150:
+/* 80343150 0033EDB0 2C 00 00 00 */ cmpwi r0, 0
+/* 80343154 0033EDB4 41 82 00 08 */ beq lbl_8034315C
+/* 80343158 0033EDB8 48 00 00 18 */ b lbl_80343170
+lbl_8034315C:
+/* 8034315C 0033EDBC 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 80343160 0033EDC0 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 80343164 0033EDC4 80 63 00 38 */ lwz r3, 0x38(r3)
+/* 80343168 0033EDC8 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034316C 0033EDCC 7C 83 20 AE */ lbzx r4, r3, r4
+lbl_80343170:
+/* 80343170 0033EDD0 7C 80 07 74 */ extsb r0, r4
+/* 80343174 0033EDD4 2C 00 00 4D */ cmpwi r0, 0x4d
+/* 80343178 0033EDD8 40 82 00 14 */ bne lbl_8034318C
+/* 8034317C 0033EDDC 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343180 0033EDE0 38 8D 91 2C */ addi r4, r13, lbl_8063E3EC-_SDA_BASE_
+/* 80343184 0033EDE4 4B E8 B1 4D */ bl strcpy
+/* 80343188 0033EDE8 48 00 00 28 */ b lbl_803431B0
+lbl_8034318C:
+/* 8034318C 0033EDEC 2C 00 00 46 */ cmpwi r0, 0x46
+/* 80343190 0033EDF0 40 82 00 14 */ bne lbl_803431A4
+/* 80343194 0033EDF4 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343198 0033EDF8 38 8D 91 30 */ addi r4, r13, lbl_8063E3F0-_SDA_BASE_
+/* 8034319C 0033EDFC 4B E8 B1 35 */ bl strcpy
+/* 803431A0 0033EE00 48 00 00 10 */ b lbl_803431B0
+lbl_803431A4:
+/* 803431A4 0033EE04 38 61 00 38 */ addi r3, r1, 0x38
+/* 803431A8 0033EE08 38 8D 91 34 */ addi r4, r13, lbl_8063E3F4-_SDA_BASE_
+/* 803431AC 0033EE0C 4B E8 B1 25 */ bl strcpy
+lbl_803431B0:
+/* 803431B0 0033EE10 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803431B4 0033EE14 7F E3 FB 78 */ mr r3, r31
+/* 803431B8 0033EE18 38 AD 90 B8 */ addi r5, r13, lbl_8063E378-_SDA_BASE_
+/* 803431BC 0033EE1C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803431C0 0033EE20 4B FF C2 E1 */ bl gpiAppendStringToBuffer
+/* 803431C4 0033EE24 2C 03 00 00 */ cmpwi r3, 0
+/* 803431C8 0033EE28 41 82 00 08 */ beq lbl_803431D0
+/* 803431CC 0033EE2C 48 00 00 28 */ b lbl_803431F4
+lbl_803431D0:
+/* 803431D0 0033EE30 7F E3 FB 78 */ mr r3, r31
+/* 803431D4 0033EE34 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803431D8 0033EE38 38 A1 00 38 */ addi r5, r1, 0x38
+/* 803431DC 0033EE3C 4B FF C2 C5 */ bl gpiAppendStringToBuffer
+/* 803431E0 0033EE40 2C 03 00 00 */ cmpwi r3, 0
+/* 803431E4 0033EE44 38 00 00 00 */ li r0, 0
+/* 803431E8 0033EE48 41 82 00 08 */ beq lbl_803431F0
+/* 803431EC 0033EE4C 7C 60 1B 78 */ mr r0, r3
+lbl_803431F0:
+/* 803431F0 0033EE50 7C 03 03 78 */ mr r3, r0
+lbl_803431F4:
+/* 803431F4 0033EE54 2C 03 00 00 */ cmpwi r3, 0
+/* 803431F8 0033EE58 41 82 05 74 */ beq lbl_8034376C
+/* 803431FC 0033EE5C 48 00 05 74 */ b lbl_80343770
+/* 80343200 0033EE60 7F 84 E3 78 */ mr r4, r28
+/* 80343204 0033EE64 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343208 0033EE68 38 A0 01 00 */ li r5, 0x100
+/* 8034320C 0033EE6C 48 00 4D 45 */ bl strzcpy
+/* 80343210 0033EE70 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80343214 0033EE74 7F E3 FB 78 */ mr r3, r31
+/* 80343218 0033EE78 38 BE 00 98 */ addi r5, r30, 0x98
+/* 8034321C 0033EE7C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343220 0033EE80 4B FF C2 81 */ bl gpiAppendStringToBuffer
+/* 80343224 0033EE84 2C 03 00 00 */ cmpwi r3, 0
+/* 80343228 0033EE88 41 82 00 08 */ beq lbl_80343230
+/* 8034322C 0033EE8C 48 00 00 28 */ b lbl_80343254
+lbl_80343230:
+/* 80343230 0033EE90 7F E3 FB 78 */ mr r3, r31
+/* 80343234 0033EE94 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343238 0033EE98 38 A1 00 38 */ addi r5, r1, 0x38
+/* 8034323C 0033EE9C 4B FF C2 65 */ bl gpiAppendStringToBuffer
+/* 80343240 0033EEA0 2C 03 00 00 */ cmpwi r3, 0
+/* 80343244 0033EEA4 38 00 00 00 */ li r0, 0
+/* 80343248 0033EEA8 41 82 00 08 */ beq lbl_80343250
+/* 8034324C 0033EEAC 7C 60 1B 78 */ mr r0, r3
+lbl_80343250:
+/* 80343250 0033EEB0 7C 03 03 78 */ mr r3, r0
+lbl_80343254:
+/* 80343254 0033EEB4 2C 03 00 00 */ cmpwi r3, 0
+/* 80343258 0033EEB8 41 82 05 14 */ beq lbl_8034376C
+/* 8034325C 0033EEBC 48 00 05 14 */ b lbl_80343770
+/* 80343260 0033EEC0 7F 83 E3 78 */ mr r3, r28
+/* 80343264 0033EEC4 4B E8 D4 A9 */ bl atoi
+/* 80343268 0033EEC8 7C 65 1B 78 */ mr r5, r3
+/* 8034326C 0033EECC 7F E3 FB 78 */ mr r3, r31
+/* 80343270 0033EED0 38 80 07 0D */ li r4, 0x70d
+/* 80343274 0033EED4 4B FF F1 CD */ bl gpiSetInfoi
+/* 80343278 0033EED8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034327C 0033EEDC 41 82 04 F0 */ beq lbl_8034376C
+/* 80343280 0033EEE0 48 00 04 F0 */ b lbl_80343770
+/* 80343284 0033EEE4 7F 83 E3 78 */ mr r3, r28
+/* 80343288 0033EEE8 4B E8 D4 85 */ bl atoi
+/* 8034328C 0033EEEC 7C 65 1B 78 */ mr r5, r3
+/* 80343290 0033EEF0 7F E3 FB 78 */ mr r3, r31
+/* 80343294 0033EEF4 38 80 07 0E */ li r4, 0x70e
+/* 80343298 0033EEF8 4B FF F1 A9 */ bl gpiSetInfoi
+/* 8034329C 0033EEFC 2C 03 00 00 */ cmpwi r3, 0
+/* 803432A0 0033EF00 41 82 04 CC */ beq lbl_8034376C
+/* 803432A4 0033EF04 48 00 04 CC */ b lbl_80343770
+/* 803432A8 0033EF08 7F 84 E3 78 */ mr r4, r28
+/* 803432AC 0033EF0C 38 61 00 38 */ addi r3, r1, 0x38
+/* 803432B0 0033EF10 38 A0 01 00 */ li r5, 0x100
+/* 803432B4 0033EF14 48 00 4C 9D */ bl strzcpy
+/* 803432B8 0033EF18 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803432BC 0033EF1C 7F E3 FB 78 */ mr r3, r31
+/* 803432C0 0033EF20 38 BE 02 80 */ addi r5, r30, 0x280
+/* 803432C4 0033EF24 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803432C8 0033EF28 4B FF C1 D9 */ bl gpiAppendStringToBuffer
+/* 803432CC 0033EF2C 2C 03 00 00 */ cmpwi r3, 0
+/* 803432D0 0033EF30 41 82 00 08 */ beq lbl_803432D8
+/* 803432D4 0033EF34 48 00 00 28 */ b lbl_803432FC
+lbl_803432D8:
+/* 803432D8 0033EF38 7F E3 FB 78 */ mr r3, r31
+/* 803432DC 0033EF3C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803432E0 0033EF40 38 A1 00 38 */ addi r5, r1, 0x38
+/* 803432E4 0033EF44 4B FF C1 BD */ bl gpiAppendStringToBuffer
+/* 803432E8 0033EF48 2C 03 00 00 */ cmpwi r3, 0
+/* 803432EC 0033EF4C 38 00 00 00 */ li r0, 0
+/* 803432F0 0033EF50 41 82 00 08 */ beq lbl_803432F8
+/* 803432F4 0033EF54 7C 60 1B 78 */ mr r0, r3
+lbl_803432F8:
+/* 803432F8 0033EF58 7C 03 03 78 */ mr r3, r0
+lbl_803432FC:
+/* 803432FC 0033EF5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343300 0033EF60 41 82 04 6C */ beq lbl_8034376C
+/* 80343304 0033EF64 48 00 04 6C */ b lbl_80343770
+/* 80343308 0033EF68 7F 83 E3 78 */ mr r3, r28
+/* 8034330C 0033EF6C 4B E8 D4 01 */ bl atoi
+/* 80343310 0033EF70 7C 65 1B 78 */ mr r5, r3
+/* 80343314 0033EF74 7F E3 FB 78 */ mr r3, r31
+/* 80343318 0033EF78 38 80 07 10 */ li r4, 0x710
+/* 8034331C 0033EF7C 4B FF F1 25 */ bl gpiSetInfoi
+/* 80343320 0033EF80 2C 03 00 00 */ cmpwi r3, 0
+/* 80343324 0033EF84 41 82 04 48 */ beq lbl_8034376C
+/* 80343328 0033EF88 48 00 04 48 */ b lbl_80343770
+/* 8034332C 0033EF8C 7F 84 E3 78 */ mr r4, r28
+/* 80343330 0033EF90 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343334 0033EF94 38 A0 01 00 */ li r5, 0x100
+/* 80343338 0033EF98 48 00 4C 19 */ bl strzcpy
+/* 8034333C 0033EF9C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80343340 0033EFA0 7F E3 FB 78 */ mr r3, r31
+/* 80343344 0033EFA4 38 BE 02 94 */ addi r5, r30, 0x294
+/* 80343348 0033EFA8 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 8034334C 0033EFAC 4B FF C1 55 */ bl gpiAppendStringToBuffer
+/* 80343350 0033EFB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80343354 0033EFB4 41 82 00 08 */ beq lbl_8034335C
+/* 80343358 0033EFB8 48 00 00 28 */ b lbl_80343380
+lbl_8034335C:
+/* 8034335C 0033EFBC 7F E3 FB 78 */ mr r3, r31
+/* 80343360 0033EFC0 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343364 0033EFC4 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343368 0033EFC8 4B FF C1 39 */ bl gpiAppendStringToBuffer
+/* 8034336C 0033EFCC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343370 0033EFD0 38 00 00 00 */ li r0, 0
+/* 80343374 0033EFD4 41 82 00 08 */ beq lbl_8034337C
+/* 80343378 0033EFD8 7C 60 1B 78 */ mr r0, r3
+lbl_8034337C:
+/* 8034337C 0033EFDC 7C 03 03 78 */ mr r3, r0
+lbl_80343380:
+/* 80343380 0033EFE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80343384 0033EFE4 41 82 03 E8 */ beq lbl_8034376C
+/* 80343388 0033EFE8 48 00 03 E8 */ b lbl_80343770
+/* 8034338C 0033EFEC 7F 83 E3 78 */ mr r3, r28
+/* 80343390 0033EFF0 4B E8 D3 7D */ bl atoi
+/* 80343394 0033EFF4 7C 65 1B 78 */ mr r5, r3
+/* 80343398 0033EFF8 7F E3 FB 78 */ mr r3, r31
+/* 8034339C 0033EFFC 38 80 07 12 */ li r4, 0x712
+/* 803433A0 0033F000 4B FF F0 A1 */ bl gpiSetInfoi
+/* 803433A4 0033F004 2C 03 00 00 */ cmpwi r3, 0
+/* 803433A8 0033F008 41 82 03 C4 */ beq lbl_8034376C
+/* 803433AC 0033F00C 48 00 03 C4 */ b lbl_80343770
+/* 803433B0 0033F010 7F 83 E3 78 */ mr r3, r28
+/* 803433B4 0033F014 4B E8 D3 59 */ bl atoi
+/* 803433B8 0033F018 7C 65 1B 78 */ mr r5, r3
+/* 803433BC 0033F01C 7F E3 FB 78 */ mr r3, r31
+/* 803433C0 0033F020 38 80 07 14 */ li r4, 0x714
+/* 803433C4 0033F024 4B FF F0 7D */ bl gpiSetInfoi
+/* 803433C8 0033F028 2C 03 00 00 */ cmpwi r3, 0
+/* 803433CC 0033F02C 41 82 03 A0 */ beq lbl_8034376C
+/* 803433D0 0033F030 48 00 03 A0 */ b lbl_80343770
+/* 803433D4 0033F034 7F 83 E3 78 */ mr r3, r28
+/* 803433D8 0033F038 4B E8 D3 35 */ bl atoi
+/* 803433DC 0033F03C 7C 65 1B 78 */ mr r5, r3
+/* 803433E0 0033F040 7F E3 FB 78 */ mr r3, r31
+/* 803433E4 0033F044 38 80 07 15 */ li r4, 0x715
+/* 803433E8 0033F048 4B FF F0 59 */ bl gpiSetInfoi
+/* 803433EC 0033F04C 2C 03 00 00 */ cmpwi r3, 0
+/* 803433F0 0033F050 41 82 03 7C */ beq lbl_8034376C
+/* 803433F4 0033F054 48 00 03 7C */ b lbl_80343770
+/* 803433F8 0033F058 7F 84 E3 78 */ mr r4, r28
+/* 803433FC 0033F05C 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343400 0033F060 38 A0 01 00 */ li r5, 0x100
+/* 80343404 0033F064 48 00 4B 4D */ bl strzcpy
+/* 80343408 0033F068 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034340C 0033F06C 7F E3 FB 78 */ mr r3, r31
+/* 80343410 0033F070 38 BE 02 A8 */ addi r5, r30, 0x2a8
+/* 80343414 0033F074 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343418 0033F078 4B FF C0 89 */ bl gpiAppendStringToBuffer
+/* 8034341C 0033F07C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343420 0033F080 41 82 00 08 */ beq lbl_80343428
+/* 80343424 0033F084 48 00 00 28 */ b lbl_8034344C
+lbl_80343428:
+/* 80343428 0033F088 7F E3 FB 78 */ mr r3, r31
+/* 8034342C 0033F08C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343430 0033F090 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343434 0033F094 4B FF C0 6D */ bl gpiAppendStringToBuffer
+/* 80343438 0033F098 2C 03 00 00 */ cmpwi r3, 0
+/* 8034343C 0033F09C 38 00 00 00 */ li r0, 0
+/* 80343440 0033F0A0 41 82 00 08 */ beq lbl_80343448
+/* 80343444 0033F0A4 7C 60 1B 78 */ mr r0, r3
+lbl_80343448:
+/* 80343448 0033F0A8 7C 03 03 78 */ mr r3, r0
+lbl_8034344C:
+/* 8034344C 0033F0AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343450 0033F0B0 41 82 03 1C */ beq lbl_8034376C
+/* 80343454 0033F0B4 48 00 03 1C */ b lbl_80343770
+/* 80343458 0033F0B8 7F 84 E3 78 */ mr r4, r28
+/* 8034345C 0033F0BC 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343460 0033F0C0 38 A0 00 33 */ li r5, 0x33
+/* 80343464 0033F0C4 48 00 4A ED */ bl strzcpy
+/* 80343468 0033F0C8 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034346C 0033F0CC 7F E3 FB 78 */ mr r3, r31
+/* 80343470 0033F0D0 38 AD 90 C8 */ addi r5, r13, lbl_8063E388-_SDA_BASE_
+/* 80343474 0033F0D4 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343478 0033F0D8 4B FF C0 29 */ bl gpiAppendStringToBuffer
+/* 8034347C 0033F0DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343480 0033F0E0 41 82 00 08 */ beq lbl_80343488
+/* 80343484 0033F0E4 48 00 00 28 */ b lbl_803434AC
+lbl_80343488:
+/* 80343488 0033F0E8 7F E3 FB 78 */ mr r3, r31
+/* 8034348C 0033F0EC 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343490 0033F0F0 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343494 0033F0F4 4B FF C0 0D */ bl gpiAppendStringToBuffer
+/* 80343498 0033F0F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034349C 0033F0FC 38 00 00 00 */ li r0, 0
+/* 803434A0 0033F100 41 82 00 08 */ beq lbl_803434A8
+/* 803434A4 0033F104 7C 60 1B 78 */ mr r0, r3
+lbl_803434A8:
+/* 803434A8 0033F108 7C 03 03 78 */ mr r3, r0
+lbl_803434AC:
+/* 803434AC 0033F10C 2C 03 00 00 */ cmpwi r3, 0
+/* 803434B0 0033F110 41 82 02 BC */ beq lbl_8034376C
+/* 803434B4 0033F114 48 00 02 BC */ b lbl_80343770
+/* 803434B8 0033F118 7F 84 E3 78 */ mr r4, r28
+/* 803434BC 0033F11C 38 61 00 38 */ addi r3, r1, 0x38
+/* 803434C0 0033F120 38 A0 01 00 */ li r5, 0x100
+/* 803434C4 0033F124 48 00 4A 8D */ bl strzcpy
+/* 803434C8 0033F128 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803434CC 0033F12C 7F E3 FB 78 */ mr r3, r31
+/* 803434D0 0033F130 38 AD 90 D0 */ addi r5, r13, lbl_8063E390-_SDA_BASE_
+/* 803434D4 0033F134 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803434D8 0033F138 4B FF BF C9 */ bl gpiAppendStringToBuffer
+/* 803434DC 0033F13C 2C 03 00 00 */ cmpwi r3, 0
+/* 803434E0 0033F140 41 82 00 08 */ beq lbl_803434E8
+/* 803434E4 0033F144 48 00 00 28 */ b lbl_8034350C
+lbl_803434E8:
+/* 803434E8 0033F148 7F E3 FB 78 */ mr r3, r31
+/* 803434EC 0033F14C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803434F0 0033F150 38 A1 00 38 */ addi r5, r1, 0x38
+/* 803434F4 0033F154 4B FF BF AD */ bl gpiAppendStringToBuffer
+/* 803434F8 0033F158 2C 03 00 00 */ cmpwi r3, 0
+/* 803434FC 0033F15C 38 00 00 00 */ li r0, 0
+/* 80343500 0033F160 41 82 00 08 */ beq lbl_80343508
+/* 80343504 0033F164 7C 60 1B 78 */ mr r0, r3
+lbl_80343508:
+/* 80343508 0033F168 7C 03 03 78 */ mr r3, r0
+lbl_8034350C:
+/* 8034350C 0033F16C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343510 0033F170 41 82 02 5C */ beq lbl_8034376C
+/* 80343514 0033F174 48 00 02 5C */ b lbl_80343770
+/* 80343518 0033F178 7F 84 E3 78 */ mr r4, r28
+/* 8034351C 0033F17C 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343520 0033F180 38 A0 01 00 */ li r5, 0x100
+/* 80343524 0033F184 48 00 4A 2D */ bl strzcpy
+/* 80343528 0033F188 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034352C 0033F18C 7F E3 FB 78 */ mr r3, r31
+/* 80343530 0033F190 38 AD 90 D8 */ addi r5, r13, lbl_8063E398-_SDA_BASE_
+/* 80343534 0033F194 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343538 0033F198 4B FF BF 69 */ bl gpiAppendStringToBuffer
+/* 8034353C 0033F19C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343540 0033F1A0 41 82 00 08 */ beq lbl_80343548
+/* 80343544 0033F1A4 48 00 00 28 */ b lbl_8034356C
+lbl_80343548:
+/* 80343548 0033F1A8 7F E3 FB 78 */ mr r3, r31
+/* 8034354C 0033F1AC 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343550 0033F1B0 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343554 0033F1B4 4B FF BF 4D */ bl gpiAppendStringToBuffer
+/* 80343558 0033F1B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034355C 0033F1BC 38 00 00 00 */ li r0, 0
+/* 80343560 0033F1C0 41 82 00 08 */ beq lbl_80343568
+/* 80343564 0033F1C4 7C 60 1B 78 */ mr r0, r3
+lbl_80343568:
+/* 80343568 0033F1C8 7C 03 03 78 */ mr r3, r0
+lbl_8034356C:
+/* 8034356C 0033F1CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343570 0033F1D0 41 82 01 FC */ beq lbl_8034376C
+/* 80343574 0033F1D4 48 00 01 FC */ b lbl_80343770
+/* 80343578 0033F1D8 7F 84 E3 78 */ mr r4, r28
+/* 8034357C 0033F1DC 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343580 0033F1E0 38 A0 01 00 */ li r5, 0x100
+/* 80343584 0033F1E4 48 00 49 CD */ bl strzcpy
+/* 80343588 0033F1E8 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034358C 0033F1EC 7F E3 FB 78 */ mr r3, r31
+/* 80343590 0033F1F0 38 AD 90 E0 */ addi r5, r13, lbl_8063E3A0-_SDA_BASE_
+/* 80343594 0033F1F4 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343598 0033F1F8 4B FF BF 09 */ bl gpiAppendStringToBuffer
+/* 8034359C 0033F1FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803435A0 0033F200 41 82 00 08 */ beq lbl_803435A8
+/* 803435A4 0033F204 48 00 00 28 */ b lbl_803435CC
+lbl_803435A8:
+/* 803435A8 0033F208 7F E3 FB 78 */ mr r3, r31
+/* 803435AC 0033F20C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803435B0 0033F210 38 A1 00 38 */ addi r5, r1, 0x38
+/* 803435B4 0033F214 4B FF BE ED */ bl gpiAppendStringToBuffer
+/* 803435B8 0033F218 2C 03 00 00 */ cmpwi r3, 0
+/* 803435BC 0033F21C 38 00 00 00 */ li r0, 0
+/* 803435C0 0033F220 41 82 00 08 */ beq lbl_803435C8
+/* 803435C4 0033F224 7C 60 1B 78 */ mr r0, r3
+lbl_803435C8:
+/* 803435C8 0033F228 7C 03 03 78 */ mr r3, r0
+lbl_803435CC:
+/* 803435CC 0033F22C 2C 03 00 00 */ cmpwi r3, 0
+/* 803435D0 0033F230 41 82 01 9C */ beq lbl_8034376C
+/* 803435D4 0033F234 48 00 01 9C */ b lbl_80343770
+/* 803435D8 0033F238 7F 84 E3 78 */ mr r4, r28
+/* 803435DC 0033F23C 38 61 00 38 */ addi r3, r1, 0x38
+/* 803435E0 0033F240 38 A0 01 00 */ li r5, 0x100
+/* 803435E4 0033F244 48 00 49 6D */ bl strzcpy
+/* 803435E8 0033F248 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803435EC 0033F24C 7F E3 FB 78 */ mr r3, r31
+/* 803435F0 0033F250 38 AD 90 E8 */ addi r5, r13, lbl_8063E3A8-_SDA_BASE_
+/* 803435F4 0033F254 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803435F8 0033F258 4B FF BE A9 */ bl gpiAppendStringToBuffer
+/* 803435FC 0033F25C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343600 0033F260 41 82 00 08 */ beq lbl_80343608
+/* 80343604 0033F264 48 00 00 28 */ b lbl_8034362C
+lbl_80343608:
+/* 80343608 0033F268 7F E3 FB 78 */ mr r3, r31
+/* 8034360C 0033F26C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343610 0033F270 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343614 0033F274 4B FF BE 8D */ bl gpiAppendStringToBuffer
+/* 80343618 0033F278 2C 03 00 00 */ cmpwi r3, 0
+/* 8034361C 0033F27C 38 00 00 00 */ li r0, 0
+/* 80343620 0033F280 41 82 00 08 */ beq lbl_80343628
+/* 80343624 0033F284 7C 60 1B 78 */ mr r0, r3
+lbl_80343628:
+/* 80343628 0033F288 7C 03 03 78 */ mr r3, r0
+lbl_8034362C:
+/* 8034362C 0033F28C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343630 0033F290 41 82 01 3C */ beq lbl_8034376C
+/* 80343634 0033F294 48 00 01 3C */ b lbl_80343770
+/* 80343638 0033F298 7F 84 E3 78 */ mr r4, r28
+/* 8034363C 0033F29C 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343640 0033F2A0 38 A0 01 00 */ li r5, 0x100
+/* 80343644 0033F2A4 48 00 49 0D */ bl strzcpy
+/* 80343648 0033F2A8 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034364C 0033F2AC 7F E3 FB 78 */ mr r3, r31
+/* 80343650 0033F2B0 38 AD 90 F0 */ addi r5, r13, lbl_8063E3B0-_SDA_BASE_
+/* 80343654 0033F2B4 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343658 0033F2B8 4B FF BE 49 */ bl gpiAppendStringToBuffer
+/* 8034365C 0033F2BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343660 0033F2C0 41 82 00 08 */ beq lbl_80343668
+/* 80343664 0033F2C4 48 00 00 28 */ b lbl_8034368C
+lbl_80343668:
+/* 80343668 0033F2C8 7F E3 FB 78 */ mr r3, r31
+/* 8034366C 0033F2CC 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343670 0033F2D0 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343674 0033F2D4 4B FF BE 2D */ bl gpiAppendStringToBuffer
+/* 80343678 0033F2D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034367C 0033F2DC 38 00 00 00 */ li r0, 0
+/* 80343680 0033F2E0 41 82 00 08 */ beq lbl_80343688
+/* 80343684 0033F2E4 7C 60 1B 78 */ mr r0, r3
+lbl_80343688:
+/* 80343688 0033F2E8 7C 03 03 78 */ mr r3, r0
+lbl_8034368C:
+/* 8034368C 0033F2EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343690 0033F2F0 41 82 00 DC */ beq lbl_8034376C
+/* 80343694 0033F2F4 48 00 00 DC */ b lbl_80343770
+/* 80343698 0033F2F8 7F 84 E3 78 */ mr r4, r28
+/* 8034369C 0033F2FC 38 61 00 38 */ addi r3, r1, 0x38
+/* 803436A0 0033F300 38 A0 01 00 */ li r5, 0x100
+/* 803436A4 0033F304 48 00 48 AD */ bl strzcpy
+/* 803436A8 0033F308 83 BF 00 00 */ lwz r29, 0(r31)
+/* 803436AC 0033F30C 7F E3 FB 78 */ mr r3, r31
+/* 803436B0 0033F310 38 AD 90 F8 */ addi r5, r13, lbl_8063E3B8-_SDA_BASE_
+/* 803436B4 0033F314 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803436B8 0033F318 4B FF BD E9 */ bl gpiAppendStringToBuffer
+/* 803436BC 0033F31C 2C 03 00 00 */ cmpwi r3, 0
+/* 803436C0 0033F320 41 82 00 08 */ beq lbl_803436C8
+/* 803436C4 0033F324 48 00 00 28 */ b lbl_803436EC
+lbl_803436C8:
+/* 803436C8 0033F328 7F E3 FB 78 */ mr r3, r31
+/* 803436CC 0033F32C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 803436D0 0033F330 38 A1 00 38 */ addi r5, r1, 0x38
+/* 803436D4 0033F334 4B FF BD CD */ bl gpiAppendStringToBuffer
+/* 803436D8 0033F338 2C 03 00 00 */ cmpwi r3, 0
+/* 803436DC 0033F33C 38 00 00 00 */ li r0, 0
+/* 803436E0 0033F340 41 82 00 08 */ beq lbl_803436E8
+/* 803436E4 0033F344 7C 60 1B 78 */ mr r0, r3
+lbl_803436E8:
+/* 803436E8 0033F348 7C 03 03 78 */ mr r3, r0
+lbl_803436EC:
+/* 803436EC 0033F34C 2C 03 00 00 */ cmpwi r3, 0
+/* 803436F0 0033F350 41 82 00 7C */ beq lbl_8034376C
+/* 803436F4 0033F354 48 00 00 7C */ b lbl_80343770
+/* 803436F8 0033F358 7F 84 E3 78 */ mr r4, r28
+/* 803436FC 0033F35C 38 61 00 38 */ addi r3, r1, 0x38
+/* 80343700 0033F360 38 A0 01 00 */ li r5, 0x100
+/* 80343704 0033F364 48 00 48 4D */ bl strzcpy
+/* 80343708 0033F368 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034370C 0033F36C 7F E3 FB 78 */ mr r3, r31
+/* 80343710 0033F370 38 AD 91 00 */ addi r5, r13, lbl_8063E3C0-_SDA_BASE_
+/* 80343714 0033F374 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343718 0033F378 4B FF BD 89 */ bl gpiAppendStringToBuffer
+/* 8034371C 0033F37C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343720 0033F380 41 82 00 08 */ beq lbl_80343728
+/* 80343724 0033F384 48 00 00 28 */ b lbl_8034374C
+lbl_80343728:
+/* 80343728 0033F388 7F E3 FB 78 */ mr r3, r31
+/* 8034372C 0033F38C 38 9D 04 5C */ addi r4, r29, 0x45c
+/* 80343730 0033F390 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80343734 0033F394 4B FF BD 6D */ bl gpiAppendStringToBuffer
+/* 80343738 0033F398 2C 03 00 00 */ cmpwi r3, 0
+/* 8034373C 0033F39C 38 00 00 00 */ li r0, 0
+/* 80343740 0033F3A0 41 82 00 08 */ beq lbl_80343748
+/* 80343744 0033F3A4 7C 60 1B 78 */ mr r0, r3
+lbl_80343748:
+/* 80343748 0033F3A8 7C 03 03 78 */ mr r3, r0
+lbl_8034374C:
+/* 8034374C 0033F3AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343750 0033F3B0 41 82 00 1C */ beq lbl_8034376C
+/* 80343754 0033F3B4 48 00 00 1C */ b lbl_80343770
+lbl_80343758:
+/* 80343758 0033F3B8 7F E3 FB 78 */ mr r3, r31
+/* 8034375C 0033F3BC 38 9E 01 D4 */ addi r4, r30, 0x1d4
+/* 80343760 0033F3C0 48 00 4C F9 */ bl gpiSetErrorString
+/* 80343764 0033F3C4 38 60 00 02 */ li r3, 2
+/* 80343768 0033F3C8 48 00 00 08 */ b lbl_80343770
+lbl_8034376C:
+/* 8034376C 0033F3CC 38 60 00 00 */ li r3, 0
+lbl_80343770:
+/* 80343770 0033F3D0 80 01 01 54 */ lwz r0, 0x154(r1)
+/* 80343774 0033F3D4 83 E1 01 4C */ lwz r31, 0x14c(r1)
+/* 80343778 0033F3D8 83 C1 01 48 */ lwz r30, 0x148(r1)
+/* 8034377C 0033F3DC 83 A1 01 44 */ lwz r29, 0x144(r1)
+/* 80343780 0033F3E0 83 81 01 40 */ lwz r28, 0x140(r1)
+/* 80343784 0033F3E4 7C 08 03 A6 */ mtlr r0
+/* 80343788 0033F3E8 38 21 01 50 */ addi r1, r1, 0x150
+/* 8034378C 0033F3EC 4E 80 00 20 */ blr
+
+.global gpiSendGetInfo
+gpiSendGetInfo:
+/* 80343790 0033F3F0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80343794 0033F3F4 7C 08 02 A6 */ mflr r0
+/* 80343798 0033F3F8 3C C0 80 45 */ lis r6, lbl_8044AF28@ha
+/* 8034379C 0033F3FC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803437A0 0033F400 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803437A4 0033F404 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803437A8 0033F408 7C BE 2B 78 */ mr r30, r5
+/* 803437AC 0033F40C 38 A6 AF 28 */ addi r5, r6, lbl_8044AF28@l
+/* 803437B0 0033F410 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803437B4 0033F414 7C 9D 23 78 */ mr r29, r4
+/* 803437B8 0033F418 93 81 00 10 */ stw r28, 0x10(r1)
+/* 803437BC 0033F41C 7C 7C 1B 78 */ mr r28, r3
+/* 803437C0 0033F420 83 E3 00 00 */ lwz r31, 0(r3)
+/* 803437C4 0033F424 38 9F 02 10 */ addi r4, r31, 0x210
+/* 803437C8 0033F428 4B FF BC D9 */ bl gpiAppendStringToBuffer
+/* 803437CC 0033F42C 80 BF 01 98 */ lwz r5, 0x198(r31)
+/* 803437D0 0033F430 7F 83 E3 78 */ mr r3, r28
+/* 803437D4 0033F434 38 9F 02 10 */ addi r4, r31, 0x210
+/* 803437D8 0033F438 4B FF BD 25 */ bl gpiAppendIntToBuffer
+/* 803437DC 0033F43C 3C A0 80 45 */ lis r5, lbl_8044AC4C@ha
+/* 803437E0 0033F440 7F 83 E3 78 */ mr r3, r28
+/* 803437E4 0033F444 38 9F 02 10 */ addi r4, r31, 0x210
+/* 803437E8 0033F448 38 A5 AC 4C */ addi r5, r5, lbl_8044AC4C@l
+/* 803437EC 0033F44C 4B FF BC B5 */ bl gpiAppendStringToBuffer
+/* 803437F0 0033F450 7F 83 E3 78 */ mr r3, r28
+/* 803437F4 0033F454 7F A5 EB 78 */ mr r5, r29
+/* 803437F8 0033F458 38 9F 02 10 */ addi r4, r31, 0x210
+/* 803437FC 0033F45C 4B FF BD 01 */ bl gpiAppendIntToBuffer
+/* 80343800 0033F460 7F 83 E3 78 */ mr r3, r28
+/* 80343804 0033F464 38 9F 02 10 */ addi r4, r31, 0x210
+/* 80343808 0033F468 38 AD 91 38 */ addi r5, r13, lbl_8063E3F8-_SDA_BASE_
+/* 8034380C 0033F46C 4B FF BC 95 */ bl gpiAppendStringToBuffer
+/* 80343810 0033F470 7F 83 E3 78 */ mr r3, r28
+/* 80343814 0033F474 7F C5 F3 78 */ mr r5, r30
+/* 80343818 0033F478 38 9F 02 10 */ addi r4, r31, 0x210
+/* 8034381C 0033F47C 4B FF BC E1 */ bl gpiAppendIntToBuffer
+/* 80343820 0033F480 7F 83 E3 78 */ mr r3, r28
+/* 80343824 0033F484 38 9F 02 10 */ addi r4, r31, 0x210
+/* 80343828 0033F488 38 AD 91 20 */ addi r5, r13, lbl_8063E3E0-_SDA_BASE_
+/* 8034382C 0033F48C 4B FF BC 75 */ bl gpiAppendStringToBuffer
+/* 80343830 0033F490 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80343834 0033F494 38 60 00 00 */ li r3, 0
+/* 80343838 0033F498 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034383C 0033F49C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80343840 0033F4A0 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80343844 0033F4A4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80343848 0033F4A8 7C 08 03 A6 */ mtlr r0
+/* 8034384C 0033F4AC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80343850 0033F4B0 4E 80 00 20 */ blr
+
+.global gpiGetInfo
+gpiGetInfo:
+/* 80343854 0033F4B4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80343858 0033F4B8 7C 08 02 A6 */ mflr r0
+/* 8034385C 0033F4BC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80343860 0033F4C0 39 61 00 40 */ addi r11, r1, 0x40
+/* 80343864 0033F4C4 4B E8 38 BD */ bl _savegpr_25
+/* 80343868 0033F4C8 81 43 00 00 */ lwz r10, 0(r3)
+/* 8034386C 0033F4CC 39 20 00 00 */ li r9, 0
+/* 80343870 0033F4D0 38 05 FF FF */ addi r0, r5, -1
+/* 80343874 0033F4D4 3F 80 80 45 */ lis r28, lbl_8044ABE8@ha
+/* 80343878 0033F4D8 91 21 00 08 */ stw r9, 8(r1)
+/* 8034387C 0033F4DC 7C 05 00 34 */ cntlzw r5, r0
+/* 80343880 0033F4E0 7C 7D 1B 78 */ mr r29, r3
+/* 80343884 0033F4E4 7C 9E 23 78 */ mr r30, r4
+/* 80343888 0033F4E8 80 0A 01 00 */ lwz r0, 0x100(r10)
+/* 8034388C 0033F4EC 7C DF 33 78 */ mr r31, r6
+/* 80343890 0033F4F0 7C F9 3B 78 */ mr r25, r7
+/* 80343894 0033F4F4 7D 1B 43 78 */ mr r27, r8
+/* 80343898 0033F4F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034389C 0033F4FC 3B 9C AB E8 */ addi r28, r28, lbl_8044ABE8@l
+/* 803438A0 0033F500 54 A0 D9 7E */ srwi r0, r5, 5
+/* 803438A4 0033F504 40 82 00 08 */ bne lbl_803438AC
+/* 803438A8 0033F508 38 00 00 00 */ li r0, 0
+lbl_803438AC:
+/* 803438AC 0033F50C 2C 07 00 00 */ cmpwi r7, 0
+/* 803438B0 0033F510 41 82 00 F4 */ beq lbl_803439A4
+/* 803438B4 0033F514 2C 00 00 00 */ cmpwi r0, 0
+/* 803438B8 0033F518 41 82 00 EC */ beq lbl_803439A4
+/* 803438BC 0033F51C 7F A3 EB 78 */ mr r3, r29
+/* 803438C0 0033F520 7F C4 F3 78 */ mr r4, r30
+/* 803438C4 0033F524 38 A1 00 0C */ addi r5, r1, 0xc
+/* 803438C8 0033F528 48 00 20 09 */ bl gpiGetProfile
+/* 803438CC 0033F52C 2C 03 00 00 */ cmpwi r3, 0
+/* 803438D0 0033F530 41 82 00 D4 */ beq lbl_803439A4
+/* 803438D4 0033F534 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803438D8 0033F538 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803438DC 0033F53C 2C 00 00 00 */ cmpwi r0, 0
+/* 803438E0 0033F540 41 82 00 C4 */ beq lbl_803439A4
+/* 803438E4 0033F544 38 60 02 04 */ li r3, 0x204
+/* 803438E8 0033F548 4B FF 5A 2D */ bl gsimalloc
+/* 803438EC 0033F54C 2C 03 00 00 */ cmpwi r3, 0
+/* 803438F0 0033F550 7C 7A 1B 78 */ mr r26, r3
+/* 803438F4 0033F554 40 82 00 18 */ bne lbl_8034390C
+/* 803438F8 0033F558 7F A3 EB 78 */ mr r3, r29
+/* 803438FC 0033F55C 38 9C 00 E8 */ addi r4, r28, 0xe8
+/* 80343900 0033F560 48 00 4B 59 */ bl gpiSetErrorString
+/* 80343904 0033F564 38 60 00 01 */ li r3, 1
+/* 80343908 0033F568 48 00 01 70 */ b lbl_80343A78
+lbl_8034390C:
+/* 8034390C 0033F56C 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80343910 0033F570 7F 44 D3 78 */ mr r4, r26
+/* 80343914 0033F574 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80343918 0033F578 4B FF DF 19 */ bl gpiInfoCacheToArg
+/* 8034391C 0033F57C 38 00 00 00 */ li r0, 0
+/* 80343920 0033F580 93 21 00 18 */ stw r25, 0x18(r1)
+/* 80343924 0033F584 7F A3 EB 78 */ mr r3, r29
+/* 80343928 0033F588 7F 28 CB 78 */ mr r8, r25
+/* 8034392C 0033F58C 90 1A 00 00 */ stw r0, 0(r26)
+/* 80343930 0033F590 7F 69 DB 78 */ mr r9, r27
+/* 80343934 0033F594 38 C1 00 08 */ addi r6, r1, 8
+/* 80343938 0033F598 38 80 00 02 */ li r4, 2
+/* 8034393C 0033F59C 93 DA 00 04 */ stw r30, 4(r26)
+/* 80343940 0033F5A0 38 A0 00 00 */ li r5, 0
+/* 80343944 0033F5A4 38 E0 00 01 */ li r7, 1
+/* 80343948 0033F5A8 93 61 00 1C */ stw r27, 0x1c(r1)
+/* 8034394C 0033F5AC 48 00 05 91 */ bl gpiAddOperation
+/* 80343950 0033F5B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80343954 0033F5B4 41 82 00 08 */ beq lbl_8034395C
+/* 80343958 0033F5B8 48 00 01 20 */ b lbl_80343A78
+lbl_8034395C:
+/* 8034395C 0033F5BC 80 C1 00 08 */ lwz r6, 8(r1)
+/* 80343960 0033F5C0 7F 45 D3 78 */ mr r5, r26
+/* 80343964 0033F5C4 7F 27 CB 78 */ mr r7, r25
+/* 80343968 0033F5C8 7F 60 DB 78 */ mr r0, r27
+/* 8034396C 0033F5CC 83 46 00 18 */ lwz r26, 0x18(r6)
+/* 80343970 0033F5D0 7F A3 EB 78 */ mr r3, r29
+/* 80343974 0033F5D4 38 81 00 10 */ addi r4, r1, 0x10
+/* 80343978 0033F5D8 90 E1 00 10 */ stw r7, 0x10(r1)
+/* 8034397C 0033F5DC 38 E0 00 00 */ li r7, 0
+/* 80343980 0033F5E0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80343984 0033F5E4 4B FF C3 A5 */ bl gpiAddCallback
+/* 80343988 0033F5E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034398C 0033F5EC 41 82 00 08 */ beq lbl_80343994
+/* 80343990 0033F5F0 48 00 00 E8 */ b lbl_80343A78
+lbl_80343994:
+/* 80343994 0033F5F4 80 81 00 08 */ lwz r4, 8(r1)
+/* 80343998 0033F5F8 7F A3 EB 78 */ mr r3, r29
+/* 8034399C 0033F5FC 48 00 06 C1 */ bl gpiRemoveOperation
+/* 803439A0 0033F600 48 00 00 B4 */ b lbl_80343A54
+lbl_803439A4:
+/* 803439A4 0033F604 7F A3 EB 78 */ mr r3, r29
+/* 803439A8 0033F608 7F E7 FB 78 */ mr r7, r31
+/* 803439AC 0033F60C 7F 28 CB 78 */ mr r8, r25
+/* 803439B0 0033F610 7F 69 DB 78 */ mr r9, r27
+/* 803439B4 0033F614 38 C1 00 08 */ addi r6, r1, 8
+/* 803439B8 0033F618 38 80 00 02 */ li r4, 2
+/* 803439BC 0033F61C 38 A0 00 00 */ li r5, 0
+/* 803439C0 0033F620 48 00 05 1D */ bl gpiAddOperation
+/* 803439C4 0033F624 2C 03 00 00 */ cmpwi r3, 0
+/* 803439C8 0033F628 41 82 00 08 */ beq lbl_803439D0
+/* 803439CC 0033F62C 48 00 00 AC */ b lbl_80343A78
+lbl_803439D0:
+/* 803439D0 0033F630 80 81 00 08 */ lwz r4, 8(r1)
+/* 803439D4 0033F634 7F A3 EB 78 */ mr r3, r29
+/* 803439D8 0033F638 83 7D 00 00 */ lwz r27, 0(r29)
+/* 803439DC 0033F63C 38 BC 03 40 */ addi r5, r28, 0x340
+/* 803439E0 0033F640 83 44 00 18 */ lwz r26, 0x18(r4)
+/* 803439E4 0033F644 38 9B 02 10 */ addi r4, r27, 0x210
+/* 803439E8 0033F648 4B FF BA B9 */ bl gpiAppendStringToBuffer
+/* 803439EC 0033F64C 80 BB 01 98 */ lwz r5, 0x198(r27)
+/* 803439F0 0033F650 7F A3 EB 78 */ mr r3, r29
+/* 803439F4 0033F654 38 9B 02 10 */ addi r4, r27, 0x210
+/* 803439F8 0033F658 4B FF BB 05 */ bl gpiAppendIntToBuffer
+/* 803439FC 0033F65C 7F A3 EB 78 */ mr r3, r29
+/* 80343A00 0033F660 38 9B 02 10 */ addi r4, r27, 0x210
+/* 80343A04 0033F664 38 BC 00 64 */ addi r5, r28, 0x64
+/* 80343A08 0033F668 4B FF BA 99 */ bl gpiAppendStringToBuffer
+/* 80343A0C 0033F66C 7F A3 EB 78 */ mr r3, r29
+/* 80343A10 0033F670 7F C5 F3 78 */ mr r5, r30
+/* 80343A14 0033F674 38 9B 02 10 */ addi r4, r27, 0x210
+/* 80343A18 0033F678 4B FF BA E5 */ bl gpiAppendIntToBuffer
+/* 80343A1C 0033F67C 7F A3 EB 78 */ mr r3, r29
+/* 80343A20 0033F680 38 9B 02 10 */ addi r4, r27, 0x210
+/* 80343A24 0033F684 38 AD 91 38 */ addi r5, r13, lbl_8063E3F8-_SDA_BASE_
+/* 80343A28 0033F688 4B FF BA 79 */ bl gpiAppendStringToBuffer
+/* 80343A2C 0033F68C 7F A3 EB 78 */ mr r3, r29
+/* 80343A30 0033F690 7F 45 D3 78 */ mr r5, r26
+/* 80343A34 0033F694 38 9B 02 10 */ addi r4, r27, 0x210
+/* 80343A38 0033F698 4B FF BA C5 */ bl gpiAppendIntToBuffer
+/* 80343A3C 0033F69C 7F A3 EB 78 */ mr r3, r29
+/* 80343A40 0033F6A0 38 9B 02 10 */ addi r4, r27, 0x210
+/* 80343A44 0033F6A4 38 AD 91 20 */ addi r5, r13, lbl_8063E3E0-_SDA_BASE_
+/* 80343A48 0033F6A8 4B FF BA 59 */ bl gpiAppendStringToBuffer
+/* 80343A4C 0033F6AC 48 00 00 08 */ b lbl_80343A54
+/* 80343A50 0033F6B0 48 00 00 28 */ b lbl_80343A78
+lbl_80343A54:
+/* 80343A54 0033F6B4 2C 1F 00 00 */ cmpwi r31, 0
+/* 80343A58 0033F6B8 41 82 00 1C */ beq lbl_80343A74
+/* 80343A5C 0033F6BC 7F A3 EB 78 */ mr r3, r29
+/* 80343A60 0033F6C0 7F 44 D3 78 */ mr r4, r26
+/* 80343A64 0033F6C4 4B FF A7 49 */ bl gpiProcess
+/* 80343A68 0033F6C8 2C 03 00 00 */ cmpwi r3, 0
+/* 80343A6C 0033F6CC 41 82 00 08 */ beq lbl_80343A74
+/* 80343A70 0033F6D0 48 00 00 08 */ b lbl_80343A78
+lbl_80343A74:
+/* 80343A74 0033F6D4 38 60 00 00 */ li r3, 0
+lbl_80343A78:
+/* 80343A78 0033F6D8 39 61 00 40 */ addi r11, r1, 0x40
+/* 80343A7C 0033F6DC 4B E8 36 F1 */ bl _restgpr_25
+/* 80343A80 0033F6E0 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80343A84 0033F6E4 7C 08 03 A6 */ mtlr r0
+/* 80343A88 0033F6E8 38 21 00 40 */ addi r1, r1, 0x40
+/* 80343A8C 0033F6EC 4E 80 00 20 */ blr
+
+.global gpiFreeInfoCache
+gpiFreeInfoCache:
+/* 80343A90 0033F6F0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80343A94 0033F6F4 7C 08 02 A6 */ mflr r0
+/* 80343A98 0033F6F8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80343A9C 0033F6FC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80343AA0 0033F700 93 C1 00 08 */ stw r30, 8(r1)
+/* 80343AA4 0033F704 7C 7E 1B 78 */ mr r30, r3
+/* 80343AA8 0033F708 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 80343AAC 0033F70C 2C 04 00 00 */ cmpwi r4, 0
+/* 80343AB0 0033F710 41 82 00 9C */ beq lbl_80343B4C
+/* 80343AB4 0033F714 80 64 00 00 */ lwz r3, 0(r4)
+/* 80343AB8 0033F718 4B FF 58 81 */ bl gsifree
+/* 80343ABC 0033F71C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343AC0 0033F720 3B E0 00 00 */ li r31, 0
+/* 80343AC4 0033F724 93 E3 00 00 */ stw r31, 0(r3)
+/* 80343AC8 0033F728 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343ACC 0033F72C 80 63 00 04 */ lwz r3, 4(r3)
+/* 80343AD0 0033F730 4B FF 58 69 */ bl gsifree
+/* 80343AD4 0033F734 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343AD8 0033F738 93 E3 00 04 */ stw r31, 4(r3)
+/* 80343ADC 0033F73C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343AE0 0033F740 80 63 00 08 */ lwz r3, 8(r3)
+/* 80343AE4 0033F744 4B FF 58 55 */ bl gsifree
+/* 80343AE8 0033F748 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343AEC 0033F74C 93 E3 00 08 */ stw r31, 8(r3)
+/* 80343AF0 0033F750 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343AF4 0033F754 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80343AF8 0033F758 4B FF 58 41 */ bl gsifree
+/* 80343AFC 0033F75C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B00 0033F760 93 E3 00 0C */ stw r31, 0xc(r3)
+/* 80343B04 0033F764 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B08 0033F768 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80343B0C 0033F76C 4B FF 58 2D */ bl gsifree
+/* 80343B10 0033F770 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B14 0033F774 93 E3 00 10 */ stw r31, 0x10(r3)
+/* 80343B18 0033F778 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B1C 0033F77C 80 63 00 14 */ lwz r3, 0x14(r3)
+/* 80343B20 0033F780 4B FF 58 19 */ bl gsifree
+/* 80343B24 0033F784 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B28 0033F788 93 E3 00 14 */ stw r31, 0x14(r3)
+/* 80343B2C 0033F78C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B30 0033F790 80 63 00 C8 */ lwz r3, 0xc8(r3)
+/* 80343B34 0033F794 4B FF 58 05 */ bl gsifree
+/* 80343B38 0033F798 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B3C 0033F79C 93 E3 00 C8 */ stw r31, 0xc8(r3)
+/* 80343B40 0033F7A0 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80343B44 0033F7A4 4B FF 57 F5 */ bl gsifree
+/* 80343B48 0033F7A8 93 FE 00 0C */ stw r31, 0xc(r30)
+lbl_80343B4C:
+/* 80343B4C 0033F7AC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80343B50 0033F7B0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80343B54 0033F7B4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80343B58 0033F7B8 7C 08 03 A6 */ mtlr r0
+/* 80343B5C 0033F7BC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80343B60 0033F7C0 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiOperation.s b/asm/SDK/DWC/gamespy/gpiOperation.s new file mode 100644 index 0000000..8c6ee78 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiOperation.s @@ -0,0 +1,480 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiFailedOpCallback
+gpiFailedOpCallback:
+/* 80343B64 0033F7C4 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80343B68 0033F7C8 7C 08 02 A6 */ mflr r0
+/* 80343B6C 0033F7CC 80 A4 00 0C */ lwz r5, 0xc(r4)
+/* 80343B70 0033F7D0 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80343B74 0033F7D4 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 80343B78 0033F7D8 2C 05 00 00 */ cmpwi r5, 0
+/* 80343B7C 0033F7DC 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 80343B80 0033F7E0 7C 9F 23 78 */ mr r31, r4
+/* 80343B84 0033F7E4 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 80343B88 0033F7E8 7C 7E 1B 78 */ mr r30, r3
+/* 80343B8C 0033F7EC 93 A1 00 44 */ stw r29, 0x44(r1)
+/* 80343B90 0033F7F0 93 81 00 40 */ stw r28, 0x40(r1)
+/* 80343B94 0033F7F4 90 A1 00 38 */ stw r5, 0x38(r1)
+/* 80343B98 0033F7F8 83 A3 00 00 */ lwz r29, 0(r3)
+/* 80343B9C 0033F7FC 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 80343BA0 0033F800 41 82 03 18 */ beq lbl_80343EB8
+/* 80343BA4 0033F804 80 04 00 00 */ lwz r0, 0(r4)
+/* 80343BA8 0033F808 2C 00 00 03 */ cmpwi r0, 3
+/* 80343BAC 0033F80C 41 82 02 1C */ beq lbl_80343DC8
+/* 80343BB0 0033F810 40 80 00 1C */ bge lbl_80343BCC
+/* 80343BB4 0033F814 2C 00 00 01 */ cmpwi r0, 1
+/* 80343BB8 0033F818 41 82 00 B4 */ beq lbl_80343C6C
+/* 80343BBC 0033F81C 40 80 01 98 */ bge lbl_80343D54
+/* 80343BC0 0033F820 2C 00 00 00 */ cmpwi r0, 0
+/* 80343BC4 0033F824 40 80 00 18 */ bge lbl_80343BDC
+/* 80343BC8 0033F828 48 00 02 F0 */ b lbl_80343EB8
+lbl_80343BCC:
+/* 80343BCC 0033F82C 2C 00 00 05 */ cmpwi r0, 5
+/* 80343BD0 0033F830 41 82 01 10 */ beq lbl_80343CE0
+/* 80343BD4 0033F834 40 80 02 E4 */ bge lbl_80343EB8
+/* 80343BD8 0033F838 48 00 02 6C */ b lbl_80343E44
+lbl_80343BDC:
+/* 80343BDC 0033F83C 38 60 00 20 */ li r3, 0x20
+/* 80343BE0 0033F840 4B FF 57 35 */ bl gsimalloc
+/* 80343BE4 0033F844 2C 03 00 00 */ cmpwi r3, 0
+/* 80343BE8 0033F848 7C 7C 1B 78 */ mr r28, r3
+/* 80343BEC 0033F84C 40 82 00 1C */ bne lbl_80343C08
+/* 80343BF0 0033F850 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
+/* 80343BF4 0033F854 7F C3 F3 78 */ mr r3, r30
+/* 80343BF8 0033F858 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
+/* 80343BFC 0033F85C 48 00 48 5D */ bl gpiSetErrorString
+/* 80343C00 0033F860 38 60 00 01 */ li r3, 1
+/* 80343C04 0033F864 48 00 02 B8 */ b lbl_80343EBC
+lbl_80343C08:
+/* 80343C08 0033F868 38 80 00 00 */ li r4, 0
+/* 80343C0C 0033F86C 38 A0 00 20 */ li r5, 0x20
+/* 80343C10 0033F870 4B CC 04 F5 */ bl memset
+/* 80343C14 0033F874 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80343C18 0033F878 90 1C 00 00 */ stw r0, 0(r28)
+/* 80343C1C 0033F87C 80 1D 04 34 */ lwz r0, 0x434(r29)
+/* 80343C20 0033F880 2C 00 02 01 */ cmpwi r0, 0x201
+/* 80343C24 0033F884 40 82 00 14 */ bne lbl_80343C38
+/* 80343C28 0033F888 80 7D 01 A0 */ lwz r3, 0x1a0(r29)
+/* 80343C2C 0033F88C 38 00 00 00 */ li r0, 0
+/* 80343C30 0033F890 90 7C 00 04 */ stw r3, 4(r28)
+/* 80343C34 0033F894 90 1D 01 A0 */ stw r0, 0x1a0(r29)
+lbl_80343C38:
+/* 80343C38 0033F898 80 81 00 38 */ lwz r4, 0x38(r1)
+/* 80343C3C 0033F89C 7F C3 F3 78 */ mr r3, r30
+/* 80343C40 0033F8A0 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 80343C44 0033F8A4 7F 85 E3 78 */ mr r5, r28
+/* 80343C48 0033F8A8 90 81 00 30 */ stw r4, 0x30(r1)
+/* 80343C4C 0033F8AC 7F E6 FB 78 */ mr r6, r31
+/* 80343C50 0033F8B0 38 81 00 30 */ addi r4, r1, 0x30
+/* 80343C54 0033F8B4 38 E0 00 00 */ li r7, 0
+/* 80343C58 0033F8B8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80343C5C 0033F8BC 4B FF C0 CD */ bl gpiAddCallback
+/* 80343C60 0033F8C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80343C64 0033F8C4 41 82 02 54 */ beq lbl_80343EB8
+/* 80343C68 0033F8C8 48 00 02 54 */ b lbl_80343EBC
+lbl_80343C6C:
+/* 80343C6C 0033F8CC 38 60 00 08 */ li r3, 8
+/* 80343C70 0033F8D0 4B FF 56 A5 */ bl gsimalloc
+/* 80343C74 0033F8D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80343C78 0033F8D8 7C 7C 1B 78 */ mr r28, r3
+/* 80343C7C 0033F8DC 40 82 00 1C */ bne lbl_80343C98
+/* 80343C80 0033F8E0 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
+/* 80343C84 0033F8E4 7F C3 F3 78 */ mr r3, r30
+/* 80343C88 0033F8E8 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
+/* 80343C8C 0033F8EC 48 00 47 CD */ bl gpiSetErrorString
+/* 80343C90 0033F8F0 38 60 00 01 */ li r3, 1
+/* 80343C94 0033F8F4 48 00 02 28 */ b lbl_80343EBC
+lbl_80343C98:
+/* 80343C98 0033F8F8 38 80 00 00 */ li r4, 0
+/* 80343C9C 0033F8FC 38 A0 00 08 */ li r5, 8
+/* 80343CA0 0033F900 4B CC 04 65 */ bl memset
+/* 80343CA4 0033F904 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80343CA8 0033F908 7F C3 F3 78 */ mr r3, r30
+/* 80343CAC 0033F90C 80 E1 00 38 */ lwz r7, 0x38(r1)
+/* 80343CB0 0033F910 7F 85 E3 78 */ mr r5, r28
+/* 80343CB4 0033F914 90 1C 00 00 */ stw r0, 0(r28)
+/* 80343CB8 0033F918 7F E6 FB 78 */ mr r6, r31
+/* 80343CBC 0033F91C 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 80343CC0 0033F920 38 81 00 28 */ addi r4, r1, 0x28
+/* 80343CC4 0033F924 90 E1 00 28 */ stw r7, 0x28(r1)
+/* 80343CC8 0033F928 38 E0 00 00 */ li r7, 0
+/* 80343CCC 0033F92C 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 80343CD0 0033F930 4B FF C0 59 */ bl gpiAddCallback
+/* 80343CD4 0033F934 2C 03 00 00 */ cmpwi r3, 0
+/* 80343CD8 0033F938 41 82 01 E0 */ beq lbl_80343EB8
+/* 80343CDC 0033F93C 48 00 01 E0 */ b lbl_80343EBC
+lbl_80343CE0:
+/* 80343CE0 0033F940 38 60 00 08 */ li r3, 8
+/* 80343CE4 0033F944 4B FF 56 31 */ bl gsimalloc
+/* 80343CE8 0033F948 2C 03 00 00 */ cmpwi r3, 0
+/* 80343CEC 0033F94C 7C 7C 1B 78 */ mr r28, r3
+/* 80343CF0 0033F950 40 82 00 1C */ bne lbl_80343D0C
+/* 80343CF4 0033F954 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
+/* 80343CF8 0033F958 7F C3 F3 78 */ mr r3, r30
+/* 80343CFC 0033F95C 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
+/* 80343D00 0033F960 48 00 47 59 */ bl gpiSetErrorString
+/* 80343D04 0033F964 38 60 00 01 */ li r3, 1
+/* 80343D08 0033F968 48 00 01 B4 */ b lbl_80343EBC
+lbl_80343D0C:
+/* 80343D0C 0033F96C 38 80 00 00 */ li r4, 0
+/* 80343D10 0033F970 38 A0 00 08 */ li r5, 8
+/* 80343D14 0033F974 4B CC 03 F1 */ bl memset
+/* 80343D18 0033F978 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80343D1C 0033F97C 7F C3 F3 78 */ mr r3, r30
+/* 80343D20 0033F980 80 E1 00 38 */ lwz r7, 0x38(r1)
+/* 80343D24 0033F984 7F 85 E3 78 */ mr r5, r28
+/* 80343D28 0033F988 90 1C 00 00 */ stw r0, 0(r28)
+/* 80343D2C 0033F98C 7F E6 FB 78 */ mr r6, r31
+/* 80343D30 0033F990 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 80343D34 0033F994 38 81 00 20 */ addi r4, r1, 0x20
+/* 80343D38 0033F998 90 E1 00 20 */ stw r7, 0x20(r1)
+/* 80343D3C 0033F99C 38 E0 00 00 */ li r7, 0
+/* 80343D40 0033F9A0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80343D44 0033F9A4 4B FF BF E5 */ bl gpiAddCallback
+/* 80343D48 0033F9A8 2C 03 00 00 */ cmpwi r3, 0
+/* 80343D4C 0033F9AC 41 82 01 6C */ beq lbl_80343EB8
+/* 80343D50 0033F9B0 48 00 01 6C */ b lbl_80343EBC
+lbl_80343D54:
+/* 80343D54 0033F9B4 38 60 02 04 */ li r3, 0x204
+/* 80343D58 0033F9B8 4B FF 55 BD */ bl gsimalloc
+/* 80343D5C 0033F9BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343D60 0033F9C0 7C 7C 1B 78 */ mr r28, r3
+/* 80343D64 0033F9C4 40 82 00 1C */ bne lbl_80343D80
+/* 80343D68 0033F9C8 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
+/* 80343D6C 0033F9CC 7F C3 F3 78 */ mr r3, r30
+/* 80343D70 0033F9D0 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
+/* 80343D74 0033F9D4 48 00 46 E5 */ bl gpiSetErrorString
+/* 80343D78 0033F9D8 38 60 00 01 */ li r3, 1
+/* 80343D7C 0033F9DC 48 00 01 40 */ b lbl_80343EBC
+lbl_80343D80:
+/* 80343D80 0033F9E0 38 80 00 00 */ li r4, 0
+/* 80343D84 0033F9E4 38 A0 02 04 */ li r5, 0x204
+/* 80343D88 0033F9E8 4B CC 03 7D */ bl memset
+/* 80343D8C 0033F9EC 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80343D90 0033F9F0 7F C3 F3 78 */ mr r3, r30
+/* 80343D94 0033F9F4 80 E1 00 38 */ lwz r7, 0x38(r1)
+/* 80343D98 0033F9F8 7F 85 E3 78 */ mr r5, r28
+/* 80343D9C 0033F9FC 90 1C 00 00 */ stw r0, 0(r28)
+/* 80343DA0 0033FA00 7F E6 FB 78 */ mr r6, r31
+/* 80343DA4 0033FA04 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 80343DA8 0033FA08 38 81 00 18 */ addi r4, r1, 0x18
+/* 80343DAC 0033FA0C 90 E1 00 18 */ stw r7, 0x18(r1)
+/* 80343DB0 0033FA10 38 E0 00 00 */ li r7, 0
+/* 80343DB4 0033FA14 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 80343DB8 0033FA18 4B FF BF 71 */ bl gpiAddCallback
+/* 80343DBC 0033FA1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343DC0 0033FA20 41 82 00 F8 */ beq lbl_80343EB8
+/* 80343DC4 0033FA24 48 00 00 F8 */ b lbl_80343EBC
+lbl_80343DC8:
+/* 80343DC8 0033FA28 38 60 00 10 */ li r3, 0x10
+/* 80343DCC 0033FA2C 4B FF 55 49 */ bl gsimalloc
+/* 80343DD0 0033FA30 2C 03 00 00 */ cmpwi r3, 0
+/* 80343DD4 0033FA34 7C 7C 1B 78 */ mr r28, r3
+/* 80343DD8 0033FA38 40 82 00 1C */ bne lbl_80343DF4
+/* 80343DDC 0033FA3C 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
+/* 80343DE0 0033FA40 7F C3 F3 78 */ mr r3, r30
+/* 80343DE4 0033FA44 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
+/* 80343DE8 0033FA48 48 00 46 71 */ bl gpiSetErrorString
+/* 80343DEC 0033FA4C 38 60 00 01 */ li r3, 1
+/* 80343DF0 0033FA50 48 00 00 CC */ b lbl_80343EBC
+lbl_80343DF4:
+/* 80343DF4 0033FA54 38 80 00 00 */ li r4, 0
+/* 80343DF8 0033FA58 38 A0 00 10 */ li r5, 0x10
+/* 80343DFC 0033FA5C 4B CC 03 09 */ bl memset
+/* 80343E00 0033FA60 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80343E04 0033FA64 38 80 00 00 */ li r4, 0
+/* 80343E08 0033FA68 81 01 00 38 */ lwz r8, 0x38(r1)
+/* 80343E0C 0033FA6C 7F C3 F3 78 */ mr r3, r30
+/* 80343E10 0033FA70 90 1C 00 00 */ stw r0, 0(r28)
+/* 80343E14 0033FA74 7F 85 E3 78 */ mr r5, r28
+/* 80343E18 0033FA78 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 80343E1C 0033FA7C 7F E6 FB 78 */ mr r6, r31
+/* 80343E20 0033FA80 90 9C 00 0C */ stw r4, 0xc(r28)
+/* 80343E24 0033FA84 38 81 00 10 */ addi r4, r1, 0x10
+/* 80343E28 0033FA88 38 E0 00 00 */ li r7, 0
+/* 80343E2C 0033FA8C 91 01 00 10 */ stw r8, 0x10(r1)
+/* 80343E30 0033FA90 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80343E34 0033FA94 4B FF BE F5 */ bl gpiAddCallback
+/* 80343E38 0033FA98 2C 03 00 00 */ cmpwi r3, 0
+/* 80343E3C 0033FA9C 41 82 00 7C */ beq lbl_80343EB8
+/* 80343E40 0033FAA0 48 00 00 7C */ b lbl_80343EBC
+lbl_80343E44:
+/* 80343E44 0033FAA4 38 60 00 04 */ li r3, 4
+/* 80343E48 0033FAA8 4B FF 54 CD */ bl gsimalloc
+/* 80343E4C 0033FAAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80343E50 0033FAB0 7C 7C 1B 78 */ mr r28, r3
+/* 80343E54 0033FAB4 40 82 00 1C */ bne lbl_80343E70
+/* 80343E58 0033FAB8 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
+/* 80343E5C 0033FABC 7F C3 F3 78 */ mr r3, r30
+/* 80343E60 0033FAC0 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
+/* 80343E64 0033FAC4 48 00 45 F5 */ bl gpiSetErrorString
+/* 80343E68 0033FAC8 38 60 00 01 */ li r3, 1
+/* 80343E6C 0033FACC 48 00 00 50 */ b lbl_80343EBC
+lbl_80343E70:
+/* 80343E70 0033FAD0 38 80 00 00 */ li r4, 0
+/* 80343E74 0033FAD4 38 A0 00 04 */ li r5, 4
+/* 80343E78 0033FAD8 4B CC 02 8D */ bl memset
+/* 80343E7C 0033FADC 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80343E80 0033FAE0 7F C3 F3 78 */ mr r3, r30
+/* 80343E84 0033FAE4 80 E1 00 38 */ lwz r7, 0x38(r1)
+/* 80343E88 0033FAE8 7F 85 E3 78 */ mr r5, r28
+/* 80343E8C 0033FAEC 90 1C 00 00 */ stw r0, 0(r28)
+/* 80343E90 0033FAF0 7F E6 FB 78 */ mr r6, r31
+/* 80343E94 0033FAF4 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 80343E98 0033FAF8 38 81 00 08 */ addi r4, r1, 8
+/* 80343E9C 0033FAFC 90 E1 00 08 */ stw r7, 8(r1)
+/* 80343EA0 0033FB00 38 E0 00 00 */ li r7, 0
+/* 80343EA4 0033FB04 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80343EA8 0033FB08 4B FF BE 81 */ bl gpiAddCallback
+/* 80343EAC 0033FB0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80343EB0 0033FB10 41 82 00 08 */ beq lbl_80343EB8
+/* 80343EB4 0033FB14 48 00 00 08 */ b lbl_80343EBC
+lbl_80343EB8:
+/* 80343EB8 0033FB18 38 60 00 00 */ li r3, 0
+lbl_80343EBC:
+/* 80343EBC 0033FB1C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80343EC0 0033FB20 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 80343EC4 0033FB24 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 80343EC8 0033FB28 83 A1 00 44 */ lwz r29, 0x44(r1)
+/* 80343ECC 0033FB2C 83 81 00 40 */ lwz r28, 0x40(r1)
+/* 80343ED0 0033FB30 7C 08 03 A6 */ mtlr r0
+/* 80343ED4 0033FB34 38 21 00 50 */ addi r1, r1, 0x50
+/* 80343ED8 0033FB38 4E 80 00 20 */ blr
+
+.global gpiAddOperation
+gpiAddOperation:
+/* 80343EDC 0033FB3C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80343EE0 0033FB40 7C 08 02 A6 */ mflr r0
+/* 80343EE4 0033FB44 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80343EE8 0033FB48 39 61 00 30 */ addi r11, r1, 0x30
+/* 80343EEC 0033FB4C 4B E8 32 31 */ bl _savegpr_24
+/* 80343EF0 0033FB50 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80343EF4 0033FB54 7C 78 1B 78 */ mr r24, r3
+/* 80343EF8 0033FB58 7C 99 23 78 */ mr r25, r4
+/* 80343EFC 0033FB5C 7C BA 2B 78 */ mr r26, r5
+/* 80343F00 0033FB60 7C DB 33 78 */ mr r27, r6
+/* 80343F04 0033FB64 7C FC 3B 78 */ mr r28, r7
+/* 80343F08 0033FB68 7D 1D 43 78 */ mr r29, r8
+/* 80343F0C 0033FB6C 7D 3E 4B 78 */ mr r30, r9
+/* 80343F10 0033FB70 38 60 00 24 */ li r3, 0x24
+/* 80343F14 0033FB74 4B FF 54 01 */ bl gsimalloc
+/* 80343F18 0033FB78 2C 03 00 00 */ cmpwi r3, 0
+/* 80343F1C 0033FB7C 40 82 00 1C */ bne lbl_80343F38
+/* 80343F20 0033FB80 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
+/* 80343F24 0033FB84 7F 03 C3 78 */ mr r3, r24
+/* 80343F28 0033FB88 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
+/* 80343F2C 0033FB8C 48 00 45 2D */ bl gpiSetErrorString
+/* 80343F30 0033FB90 38 60 00 01 */ li r3, 1
+/* 80343F34 0033FB94 48 00 00 70 */ b lbl_80343FA4
+lbl_80343F38:
+/* 80343F38 0033FB98 93 23 00 00 */ stw r25, 0(r3)
+/* 80343F3C 0033FB9C 2C 19 00 00 */ cmpwi r25, 0
+/* 80343F40 0033FBA0 38 00 00 00 */ li r0, 0
+/* 80343F44 0033FBA4 93 43 00 04 */ stw r26, 4(r3)
+/* 80343F48 0033FBA8 93 83 00 08 */ stw r28, 8(r3)
+/* 80343F4C 0033FBAC 90 03 00 14 */ stw r0, 0x14(r3)
+/* 80343F50 0033FBB0 40 82 00 10 */ bne lbl_80343F60
+/* 80343F54 0033FBB4 38 00 00 01 */ li r0, 1
+/* 80343F58 0033FBB8 90 03 00 18 */ stw r0, 0x18(r3)
+/* 80343F5C 0033FBBC 48 00 00 24 */ b lbl_80343F80
+lbl_80343F60:
+/* 80343F60 0033FBC0 80 9F 02 28 */ lwz r4, 0x228(r31)
+/* 80343F64 0033FBC4 38 04 00 01 */ addi r0, r4, 1
+/* 80343F68 0033FBC8 90 83 00 18 */ stw r4, 0x18(r3)
+/* 80343F6C 0033FBCC 2C 00 00 02 */ cmpwi r0, 2
+/* 80343F70 0033FBD0 90 1F 02 28 */ stw r0, 0x228(r31)
+/* 80343F74 0033FBD4 40 80 00 0C */ bge lbl_80343F80
+/* 80343F78 0033FBD8 38 00 00 02 */ li r0, 2
+/* 80343F7C 0033FBDC 90 1F 02 28 */ stw r0, 0x228(r31)
+lbl_80343F80:
+/* 80343F80 0033FBE0 38 00 00 00 */ li r0, 0
+/* 80343F84 0033FBE4 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 80343F88 0033FBE8 93 A3 00 0C */ stw r29, 0xc(r3)
+/* 80343F8C 0033FBEC 93 C3 00 10 */ stw r30, 0x10(r3)
+/* 80343F90 0033FBF0 80 1F 04 40 */ lwz r0, 0x440(r31)
+/* 80343F94 0033FBF4 90 03 00 20 */ stw r0, 0x20(r3)
+/* 80343F98 0033FBF8 90 7F 04 40 */ stw r3, 0x440(r31)
+/* 80343F9C 0033FBFC 90 7B 00 00 */ stw r3, 0(r27)
+/* 80343FA0 0033FC00 38 60 00 00 */ li r3, 0
+lbl_80343FA4:
+/* 80343FA4 0033FC04 39 61 00 30 */ addi r11, r1, 0x30
+/* 80343FA8 0033FC08 4B E8 31 C1 */ bl _restgpr_24
+/* 80343FAC 0033FC0C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80343FB0 0033FC10 7C 08 03 A6 */ mtlr r0
+/* 80343FB4 0033FC14 38 21 00 30 */ addi r1, r1, 0x30
+/* 80343FB8 0033FC18 4E 80 00 20 */ blr
+lbl_80343FBC:
+/* 80343FBC 0033FC1C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80343FC0 0033FC20 7C 08 02 A6 */ mflr r0
+/* 80343FC4 0033FC24 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80343FC8 0033FC28 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80343FCC 0033FC2C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80343FD0 0033FC30 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80343FD4 0033FC34 7C 9D 23 78 */ mr r29, r4
+/* 80343FD8 0033FC38 80 04 00 00 */ lwz r0, 0(r4)
+/* 80343FDC 0033FC3C 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80343FE0 0033FC40 2C 00 00 03 */ cmpwi r0, 3
+/* 80343FE4 0033FC44 40 82 00 44 */ bne lbl_80344028
+/* 80343FE8 0033FC48 80 65 02 2C */ lwz r3, 0x22c(r5)
+/* 80343FEC 0033FC4C 83 C4 00 04 */ lwz r30, 4(r4)
+/* 80343FF0 0033FC50 38 80 00 02 */ li r4, 2
+/* 80343FF4 0033FC54 38 03 FF FF */ addi r0, r3, -1
+/* 80343FF8 0033FC58 90 05 02 2C */ stw r0, 0x22c(r5)
+/* 80343FFC 0033FC5C 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80344000 0033FC60 4B FF 3C 31 */ bl shutdown
+/* 80344004 0033FC64 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80344008 0033FC68 4B FF 3B F5 */ bl closesocket
+/* 8034400C 0033FC6C 80 7E 00 18 */ lwz r3, 0x18(r30)
+/* 80344010 0033FC70 4B FF 53 29 */ bl gsifree
+/* 80344014 0033FC74 3B E0 00 00 */ li r31, 0
+/* 80344018 0033FC78 93 FE 00 18 */ stw r31, 0x18(r30)
+/* 8034401C 0033FC7C 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80344020 0033FC80 4B FF 53 19 */ bl gsifree
+/* 80344024 0033FC84 93 FE 00 08 */ stw r31, 8(r30)
+lbl_80344028:
+/* 80344028 0033FC88 80 7D 00 04 */ lwz r3, 4(r29)
+/* 8034402C 0033FC8C 4B FF 53 0D */ bl gsifree
+/* 80344030 0033FC90 38 00 00 00 */ li r0, 0
+/* 80344034 0033FC94 7F A3 EB 78 */ mr r3, r29
+/* 80344038 0033FC98 90 1D 00 04 */ stw r0, 4(r29)
+/* 8034403C 0033FC9C 4B FF 52 FD */ bl gsifree
+/* 80344040 0033FCA0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80344044 0033FCA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80344048 0033FCA8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034404C 0033FCAC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80344050 0033FCB0 7C 08 03 A6 */ mtlr r0
+/* 80344054 0033FCB4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80344058 0033FCB8 4E 80 00 20 */ blr
+
+.global gpiRemoveOperation
+gpiRemoveOperation:
+/* 8034405C 0033FCBC 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80344060 0033FCC0 38 E0 00 00 */ li r7, 0
+/* 80344064 0033FCC4 80 C5 04 40 */ lwz r6, 0x440(r5)
+/* 80344068 0033FCC8 48 00 00 34 */ b lbl_8034409C
+lbl_8034406C:
+/* 8034406C 0033FCCC 7C 06 20 40 */ cmplw r6, r4
+/* 80344070 0033FCD0 40 82 00 24 */ bne lbl_80344094
+/* 80344074 0033FCD4 2C 07 00 00 */ cmpwi r7, 0
+/* 80344078 0033FCD8 40 82 00 10 */ bne lbl_80344088
+/* 8034407C 0033FCDC 80 06 00 20 */ lwz r0, 0x20(r6)
+/* 80344080 0033FCE0 90 05 04 40 */ stw r0, 0x440(r5)
+/* 80344084 0033FCE4 48 00 00 0C */ b lbl_80344090
+lbl_80344088:
+/* 80344088 0033FCE8 80 04 00 20 */ lwz r0, 0x20(r4)
+/* 8034408C 0033FCEC 90 07 00 20 */ stw r0, 0x20(r7)
+lbl_80344090:
+/* 80344090 0033FCF0 4B FF FF 2C */ b lbl_80343FBC
+lbl_80344094:
+/* 80344094 0033FCF4 7C C7 33 78 */ mr r7, r6
+/* 80344098 0033FCF8 80 C6 00 20 */ lwz r6, 0x20(r6)
+lbl_8034409C:
+/* 8034409C 0033FCFC 2C 06 00 00 */ cmpwi r6, 0
+/* 803440A0 0033FD00 40 82 FF CC */ bne lbl_8034406C
+/* 803440A4 0033FD04 4E 80 00 20 */ blr
+
+.global gpiFindOperationByID
+gpiFindOperationByID:
+/* 803440A8 0033FD08 80 63 00 00 */ lwz r3, 0(r3)
+/* 803440AC 0033FD0C 80 63 04 40 */ lwz r3, 0x440(r3)
+/* 803440B0 0033FD10 48 00 00 28 */ b lbl_803440D8
+lbl_803440B4:
+/* 803440B4 0033FD14 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 803440B8 0033FD18 7C 00 28 00 */ cmpw r0, r5
+/* 803440BC 0033FD1C 40 82 00 18 */ bne lbl_803440D4
+/* 803440C0 0033FD20 2C 04 00 00 */ cmpwi r4, 0
+/* 803440C4 0033FD24 41 82 00 08 */ beq lbl_803440CC
+/* 803440C8 0033FD28 90 64 00 00 */ stw r3, 0(r4)
+lbl_803440CC:
+/* 803440CC 0033FD2C 38 60 00 01 */ li r3, 1
+/* 803440D0 0033FD30 4E 80 00 20 */ blr
+lbl_803440D4:
+/* 803440D4 0033FD34 80 63 00 20 */ lwz r3, 0x20(r3)
+lbl_803440D8:
+/* 803440D8 0033FD38 2C 03 00 00 */ cmpwi r3, 0
+/* 803440DC 0033FD3C 40 82 FF D8 */ bne lbl_803440B4
+/* 803440E0 0033FD40 2C 04 00 00 */ cmpwi r4, 0
+/* 803440E4 0033FD44 41 82 00 0C */ beq lbl_803440F0
+/* 803440E8 0033FD48 38 00 00 00 */ li r0, 0
+/* 803440EC 0033FD4C 90 04 00 00 */ stw r0, 0(r4)
+lbl_803440F0:
+/* 803440F0 0033FD50 38 60 00 00 */ li r3, 0
+/* 803440F4 0033FD54 4E 80 00 20 */ blr
+
+.global gpiOperationsAreBlocking
+gpiOperationsAreBlocking:
+/* 803440F8 0033FD58 80 63 00 00 */ lwz r3, 0(r3)
+/* 803440FC 0033FD5C 80 63 04 40 */ lwz r3, 0x440(r3)
+/* 80344100 0033FD60 48 00 00 28 */ b lbl_80344128
+lbl_80344104:
+/* 80344104 0033FD64 80 03 00 08 */ lwz r0, 8(r3)
+/* 80344108 0033FD68 2C 00 00 00 */ cmpwi r0, 0
+/* 8034410C 0033FD6C 41 82 00 18 */ beq lbl_80344124
+/* 80344110 0033FD70 80 03 00 00 */ lwz r0, 0(r3)
+/* 80344114 0033FD74 2C 00 00 03 */ cmpwi r0, 3
+/* 80344118 0033FD78 41 82 00 0C */ beq lbl_80344124
+/* 8034411C 0033FD7C 38 60 00 01 */ li r3, 1
+/* 80344120 0033FD80 4E 80 00 20 */ blr
+lbl_80344124:
+/* 80344124 0033FD84 80 63 00 20 */ lwz r3, 0x20(r3)
+lbl_80344128:
+/* 80344128 0033FD88 2C 03 00 00 */ cmpwi r3, 0
+/* 8034412C 0033FD8C 40 82 FF D8 */ bne lbl_80344104
+/* 80344130 0033FD90 38 60 00 00 */ li r3, 0
+/* 80344134 0033FD94 4E 80 00 20 */ blr
+
+.global gpiProcessOperation
+gpiProcessOperation:
+/* 80344138 0033FD98 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034413C 0033FD9C 7C 08 02 A6 */ mflr r0
+/* 80344140 0033FDA0 38 C0 00 00 */ li r6, 0
+/* 80344144 0033FDA4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80344148 0033FDA8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034414C 0033FDAC 7C 9F 23 78 */ mr r31, r4
+/* 80344150 0033FDB0 80 04 00 00 */ lwz r0, 0(r4)
+/* 80344154 0033FDB4 2C 00 00 03 */ cmpwi r0, 3
+/* 80344158 0033FDB8 41 82 00 68 */ beq lbl_803441C0
+/* 8034415C 0033FDBC 40 80 00 1C */ bge lbl_80344178
+/* 80344160 0033FDC0 2C 00 00 01 */ cmpwi r0, 1
+/* 80344164 0033FDC4 41 82 00 30 */ beq lbl_80344194
+/* 80344168 0033FDC8 40 80 00 44 */ bge lbl_803441AC
+/* 8034416C 0033FDCC 2C 00 00 00 */ cmpwi r0, 0
+/* 80344170 0033FDD0 40 80 00 18 */ bge lbl_80344188
+/* 80344174 0033FDD4 48 00 00 4C */ b lbl_803441C0
+lbl_80344178:
+/* 80344178 0033FDD8 2C 00 00 05 */ cmpwi r0, 5
+/* 8034417C 0033FDDC 41 82 00 24 */ beq lbl_803441A0
+/* 80344180 0033FDE0 40 80 00 40 */ bge lbl_803441C0
+/* 80344184 0033FDE4 48 00 00 34 */ b lbl_803441B8
+lbl_80344188:
+/* 80344188 0033FDE8 4B FF CB 7D */ bl gpiProcessConnect
+/* 8034418C 0033FDEC 7C 66 1B 78 */ mr r6, r3
+/* 80344190 0033FDF0 48 00 00 30 */ b lbl_803441C0
+lbl_80344194:
+/* 80344194 0033FDF4 48 00 14 E1 */ bl gpiProcessNewProfile
+/* 80344198 0033FDF8 7C 66 1B 78 */ mr r6, r3
+/* 8034419C 0033FDFC 48 00 00 24 */ b lbl_803441C0
+lbl_803441A0:
+/* 803441A0 0033FE00 48 00 17 85 */ bl gpiProcessDeleteProfle
+/* 803441A4 0033FE04 7C 66 1B 78 */ mr r6, r3
+/* 803441A8 0033FE08 48 00 00 18 */ b lbl_803441C0
+lbl_803441AC:
+/* 803441AC 0033FE0C 4B FF D8 C1 */ bl gpiProcessGetInfo
+/* 803441B0 0033FE10 7C 66 1B 78 */ mr r6, r3
+/* 803441B4 0033FE14 48 00 00 0C */ b lbl_803441C0
+lbl_803441B8:
+/* 803441B8 0033FE18 48 00 3C 6D */ bl gpiProcessRegisterUniqueNick
+/* 803441BC 0033FE1C 7C 66 1B 78 */ mr r6, r3
+lbl_803441C0:
+/* 803441C0 0033FE20 2C 06 00 00 */ cmpwi r6, 0
+/* 803441C4 0033FE24 41 82 00 08 */ beq lbl_803441CC
+/* 803441C8 0033FE28 90 DF 00 1C */ stw r6, 0x1c(r31)
+lbl_803441CC:
+/* 803441CC 0033FE2C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803441D0 0033FE30 7C C3 33 78 */ mr r3, r6
+/* 803441D4 0033FE34 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803441D8 0033FE38 7C 08 03 A6 */ mtlr r0
+/* 803441DC 0033FE3C 38 21 00 10 */ addi r1, r1, 0x10
+/* 803441E0 0033FE40 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiPeer.s b/asm/SDK/DWC/gamespy/gpiPeer.s new file mode 100644 index 0000000..3879460 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiPeer.s @@ -0,0 +1,1391 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiProcessPeerInitiatingConnection
+gpiProcessPeerInitiatingConnection:
+/* 803441E4 0033FE44 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803441E8 0033FE48 7C 08 02 A6 */ mflr r0
+/* 803441EC 0033FE4C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803441F0 0033FE50 39 61 00 40 */ addi r11, r1, 0x40
+/* 803441F4 0033FE54 4B E8 2F 35 */ bl _savegpr_27
+/* 803441F8 0033FE58 80 04 00 00 */ lwz r0, 0(r4)
+/* 803441FC 0033FE5C 3F A0 80 45 */ lis r29, lbl_8044AF50@ha
+/* 80344200 0033FE60 83 83 00 00 */ lwz r28, 0(r3)
+/* 80344204 0033FE64 7C 7E 1B 78 */ mr r30, r3
+/* 80344208 0033FE68 2C 00 00 67 */ cmpwi r0, 0x67
+/* 8034420C 0033FE6C 7C 9F 23 78 */ mr r31, r4
+/* 80344210 0033FE70 3B BD AF 50 */ addi r29, r29, lbl_8044AF50@l
+/* 80344214 0033FE74 41 82 00 34 */ beq lbl_80344248
+/* 80344218 0033FE78 40 80 00 14 */ bge lbl_8034422C
+/* 8034421C 0033FE7C 2C 00 00 65 */ cmpwi r0, 0x65
+/* 80344220 0033FE80 41 82 02 C4 */ beq lbl_803444E4
+/* 80344224 0033FE84 40 80 00 14 */ bge lbl_80344238
+/* 80344228 0033FE88 48 00 02 BC */ b lbl_803444E4
+lbl_8034422C:
+/* 8034422C 0033FE8C 2C 00 00 69 */ cmpwi r0, 0x69
+/* 80344230 0033FE90 40 80 02 B4 */ bge lbl_803444E4
+/* 80344234 0033FE94 48 00 01 8C */ b lbl_803443C0
+lbl_80344238:
+/* 80344238 0033FE98 48 00 0E 61 */ bl gpiPeerStartConnect
+/* 8034423C 0033FE9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80344240 0033FEA0 41 82 02 A4 */ beq lbl_803444E4
+/* 80344244 0033FEA4 48 00 02 E8 */ b lbl_8034452C
+lbl_80344248:
+/* 80344248 0033FEA8 80 84 00 08 */ lwz r4, 8(r4)
+/* 8034424C 0033FEAC 38 A1 00 18 */ addi r5, r1, 0x18
+/* 80344250 0033FEB0 48 00 3E E9 */ bl gpiCheckSocketConnect
+/* 80344254 0033FEB4 2C 03 00 00 */ cmpwi r3, 0
+/* 80344258 0033FEB8 41 82 00 08 */ beq lbl_80344260
+/* 8034425C 0033FEBC 48 00 02 D0 */ b lbl_8034452C
+lbl_80344260:
+/* 80344260 0033FEC0 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80344264 0033FEC4 2C 00 00 04 */ cmpwi r0, 4
+/* 80344268 0033FEC8 40 82 00 18 */ bne lbl_80344280
+/* 8034426C 0033FECC 7F C3 F3 78 */ mr r3, r30
+/* 80344270 0033FED0 38 9D 00 00 */ addi r4, r29, 0
+/* 80344274 0033FED4 48 00 41 E5 */ bl gpiSetErrorString
+/* 80344278 0033FED8 38 60 00 03 */ li r3, 3
+/* 8034427C 0033FEDC 48 00 02 B0 */ b lbl_8034452C
+lbl_80344280:
+/* 80344280 0033FEE0 2C 00 00 03 */ cmpwi r0, 3
+/* 80344284 0033FEE4 40 82 02 60 */ bne lbl_803444E4
+/* 80344288 0033FEE8 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 8034428C 0033FEEC 7F C3 F3 78 */ mr r3, r30
+/* 80344290 0033FEF0 38 A1 00 0C */ addi r5, r1, 0xc
+/* 80344294 0033FEF4 3B 60 00 01 */ li r27, 1
+/* 80344298 0033FEF8 48 00 16 39 */ bl gpiGetProfile
+/* 8034429C 0033FEFC 2C 03 00 00 */ cmpwi r3, 0
+/* 803442A0 0033FF00 40 82 00 18 */ bne lbl_803442B8
+/* 803442A4 0033FF04 7F C3 F3 78 */ mr r3, r30
+/* 803442A8 0033FF08 38 9D 00 00 */ addi r4, r29, 0
+/* 803442AC 0033FF0C 48 00 41 AD */ bl gpiSetErrorString
+/* 803442B0 0033FF10 38 60 00 03 */ li r3, 3
+/* 803442B4 0033FF14 48 00 02 78 */ b lbl_8034452C
+lbl_803442B8:
+/* 803442B8 0033FF18 7F C3 F3 78 */ mr r3, r30
+/* 803442BC 0033FF1C 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 803442C0 0033FF20 38 AD 91 40 */ addi r5, r13, lbl_8063E400-_SDA_BASE_
+/* 803442C4 0033FF24 4B FF B1 DD */ bl gpiAppendStringToBuffer
+/* 803442C8 0033FF28 7F C3 F3 78 */ mr r3, r30
+/* 803442CC 0033FF2C 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 803442D0 0033FF30 38 AD 91 48 */ addi r5, r13, lbl_8063E408-_SDA_BASE_
+/* 803442D4 0033FF34 4B FF B1 CD */ bl gpiAppendStringToBuffer
+/* 803442D8 0033FF38 80 BC 01 A0 */ lwz r5, 0x1a0(r28)
+/* 803442DC 0033FF3C 7F C3 F3 78 */ mr r3, r30
+/* 803442E0 0033FF40 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 803442E4 0033FF44 4B FF B2 19 */ bl gpiAppendIntToBuffer
+/* 803442E8 0033FF48 7F C3 F3 78 */ mr r3, r30
+/* 803442EC 0033FF4C 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 803442F0 0033FF50 38 AD 91 50 */ addi r5, r13, lbl_8063E410-_SDA_BASE_
+/* 803442F4 0033FF54 4B FF B1 AD */ bl gpiAppendStringToBuffer
+/* 803442F8 0033FF58 7F C3 F3 78 */ mr r3, r30
+/* 803442FC 0033FF5C 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 80344300 0033FF60 38 BC 01 10 */ addi r5, r28, 0x110
+/* 80344304 0033FF64 4B FF B1 9D */ bl gpiAppendStringToBuffer
+/* 80344308 0033FF68 7F C3 F3 78 */ mr r3, r30
+/* 8034430C 0033FF6C 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 80344310 0033FF70 38 AD 91 58 */ addi r5, r13, lbl_8063E418-_SDA_BASE_
+/* 80344314 0033FF74 4B FF B1 8D */ bl gpiAppendStringToBuffer
+/* 80344318 0033FF78 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 8034431C 0033FF7C 7F C3 F3 78 */ mr r3, r30
+/* 80344320 0033FF80 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 80344324 0033FF84 80 A5 00 18 */ lwz r5, 0x18(r5)
+/* 80344328 0033FF88 4B FF B1 79 */ bl gpiAppendStringToBuffer
+/* 8034432C 0033FF8C 7F C3 F3 78 */ mr r3, r30
+/* 80344330 0033FF90 38 9F 00 2C */ addi r4, r31, 0x2c
+/* 80344334 0033FF94 38 AD 91 60 */ addi r5, r13, lbl_8063E420-_SDA_BASE_
+/* 80344338 0033FF98 4B FF B1 69 */ bl gpiAppendStringToBuffer
+/* 8034433C 0033FF9C 80 9C 04 50 */ lwz r4, 0x450(r28)
+/* 80344340 0033FFA0 48 00 00 30 */ b lbl_80344370
+lbl_80344344:
+/* 80344344 0033FFA4 80 64 00 0C */ lwz r3, 0xc(r4)
+/* 80344348 0033FFA8 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8034434C 0033FFAC 7C 03 00 00 */ cmpw r3, r0
+/* 80344350 0033FFB0 40 82 00 1C */ bne lbl_8034436C
+/* 80344354 0033FFB4 7C 04 F8 40 */ cmplw r4, r31
+/* 80344358 0033FFB8 41 82 00 14 */ beq lbl_8034436C
+/* 8034435C 0033FFBC 80 04 00 00 */ lwz r0, 0(r4)
+/* 80344360 0033FFC0 2C 00 00 67 */ cmpwi r0, 0x67
+/* 80344364 0033FFC4 41 81 00 08 */ bgt lbl_8034436C
+/* 80344368 0033FFC8 3B 60 00 00 */ li r27, 0
+lbl_8034436C:
+/* 8034436C 0033FFCC 80 84 00 40 */ lwz r4, 0x40(r4)
+lbl_80344370:
+/* 80344370 0033FFD0 2C 04 00 00 */ cmpwi r4, 0
+/* 80344374 0033FFD4 40 82 FF D0 */ bne lbl_80344344
+/* 80344378 0033FFD8 2C 1B 00 00 */ cmpwi r27, 0
+/* 8034437C 0033FFDC 41 82 00 38 */ beq lbl_803443B4
+/* 80344380 0033FFE0 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80344384 0033FFE4 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 80344388 0033FFE8 4B FF 4F B1 */ bl gsifree
+/* 8034438C 0033FFEC 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80344390 0033FFF0 38 00 00 00 */ li r0, 0
+/* 80344394 0033FFF4 90 03 00 18 */ stw r0, 0x18(r3)
+/* 80344398 0033FFF8 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 8034439C 0033FFFC 48 00 19 29 */ bl gpiCanFreeProfile
+/* 803443A0 00340000 2C 03 00 00 */ cmpwi r3, 0
+/* 803443A4 00340004 41 82 00 10 */ beq lbl_803443B4
+/* 803443A8 00340008 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 803443AC 0034000C 7F C3 F3 78 */ mr r3, r30
+/* 803443B0 00340010 48 00 17 01 */ bl gpiRemoveProfile
+lbl_803443B4:
+/* 803443B4 00340014 38 00 00 68 */ li r0, 0x68
+/* 803443B8 00340018 90 1F 00 00 */ stw r0, 0(r31)
+/* 803443BC 0034001C 48 00 01 28 */ b lbl_803444E4
+lbl_803443C0:
+/* 803443C0 00340020 80 84 00 08 */ lwz r4, 8(r4)
+/* 803443C4 00340024 38 BF 00 1C */ addi r5, r31, 0x1c
+/* 803443C8 00340028 38 C1 00 14 */ addi r6, r1, 0x14
+/* 803443CC 0034002C 38 E1 00 10 */ addi r7, r1, 0x10
+/* 803443D0 00340030 39 0D 91 68 */ addi r8, r13, lbl_8063E428-_SDA_BASE_
+/* 803443D4 00340034 4B FF B4 81 */ bl gpiRecvToBuffer
+/* 803443D8 00340038 2C 03 00 00 */ cmpwi r3, 0
+/* 803443DC 0034003C 41 82 00 08 */ beq lbl_803443E4
+/* 803443E0 00340040 48 00 01 4C */ b lbl_8034452C
+lbl_803443E4:
+/* 803443E4 00340044 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 803443E8 00340048 38 8D 91 60 */ addi r4, r13, lbl_8063E420-_SDA_BASE_
+/* 803443EC 0034004C 4B E8 A3 B5 */ bl strstr
+/* 803443F0 00340050 2C 03 00 00 */ cmpwi r3, 0
+/* 803443F4 00340054 41 82 00 F0 */ beq lbl_803444E4
+/* 803443F8 00340058 38 00 00 00 */ li r0, 0
+/* 803443FC 0034005C 38 8D 91 70 */ addi r4, r13, lbl_8063E430-_SDA_BASE_
+/* 80344400 00340060 98 03 00 00 */ stb r0, 0(r3)
+/* 80344404 00340064 38 A0 00 07 */ li r5, 7
+/* 80344408 00340068 83 9F 00 1C */ lwz r28, 0x1c(r31)
+/* 8034440C 0034006C 7F 83 E3 78 */ mr r3, r28
+/* 80344410 00340070 4B E8 A1 59 */ bl strncmp
+/* 80344414 00340074 2C 03 00 00 */ cmpwi r3, 0
+/* 80344418 00340078 40 82 00 90 */ bne lbl_803444A8
+/* 8034441C 0034007C 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 80344420 00340080 38 03 00 01 */ addi r0, r3, 1
+/* 80344424 00340084 2C 00 00 01 */ cmpwi r0, 1
+/* 80344428 00340088 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 8034442C 0034008C 40 81 00 18 */ ble lbl_80344444
+/* 80344430 00340090 7F C3 F3 78 */ mr r3, r30
+/* 80344434 00340094 38 9D 00 1C */ addi r4, r29, 0x1c
+/* 80344438 00340098 48 00 40 21 */ bl gpiSetErrorString
+/* 8034443C 0034009C 38 60 00 03 */ li r3, 3
+/* 80344440 003400A0 48 00 00 EC */ b lbl_8034452C
+lbl_80344444:
+/* 80344444 003400A4 7F C3 F3 78 */ mr r3, r30
+/* 80344448 003400A8 38 C1 00 08 */ addi r6, r1, 8
+/* 8034444C 003400AC 38 80 00 02 */ li r4, 2
+/* 80344450 003400B0 38 A0 00 00 */ li r5, 0
+/* 80344454 003400B4 38 E0 00 00 */ li r7, 0
+/* 80344458 003400B8 39 00 00 00 */ li r8, 0
+/* 8034445C 003400BC 39 20 00 00 */ li r9, 0
+/* 80344460 003400C0 4B FF FA 7D */ bl gpiAddOperation
+/* 80344464 003400C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80344468 003400C8 41 82 00 08 */ beq lbl_80344470
+/* 8034446C 003400CC 48 00 00 30 */ b lbl_8034449C
+lbl_80344470:
+/* 80344470 003400D0 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80344474 003400D4 7F C3 F3 78 */ mr r3, r30
+/* 80344478 003400D8 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 8034447C 003400DC 80 A5 00 18 */ lwz r5, 0x18(r5)
+/* 80344480 003400E0 4B FF F3 11 */ bl gpiSendGetInfo
+/* 80344484 003400E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80344488 003400E8 41 82 00 08 */ beq lbl_80344490
+/* 8034448C 003400EC 48 00 00 10 */ b lbl_8034449C
+lbl_80344490:
+/* 80344490 003400F0 38 00 00 65 */ li r0, 0x65
+/* 80344494 003400F4 38 60 00 00 */ li r3, 0
+/* 80344498 003400F8 90 1F 00 00 */ stw r0, 0(r31)
+lbl_8034449C:
+/* 8034449C 003400FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803444A0 00340100 41 82 00 34 */ beq lbl_803444D4
+/* 803444A4 00340104 48 00 00 88 */ b lbl_8034452C
+lbl_803444A8:
+/* 803444A8 00340108 7F 83 E3 78 */ mr r3, r28
+/* 803444AC 0034010C 38 8D 91 78 */ addi r4, r13, lbl_8063E438-_SDA_BASE_
+/* 803444B0 00340110 38 A0 00 06 */ li r5, 6
+/* 803444B4 00340114 4B E8 A0 B5 */ bl strncmp
+/* 803444B8 00340118 2C 03 00 00 */ cmpwi r3, 0
+/* 803444BC 0034011C 41 82 00 18 */ beq lbl_803444D4
+/* 803444C0 00340120 7F C3 F3 78 */ mr r3, r30
+/* 803444C4 00340124 38 9D 00 40 */ addi r4, r29, 0x40
+/* 803444C8 00340128 48 00 3F 91 */ bl gpiSetErrorString
+/* 803444CC 0034012C 38 60 00 03 */ li r3, 3
+/* 803444D0 00340130 48 00 00 5C */ b lbl_8034452C
+lbl_803444D4:
+/* 803444D4 00340134 38 60 00 69 */ li r3, 0x69
+/* 803444D8 00340138 38 00 00 00 */ li r0, 0
+/* 803444DC 0034013C 90 7F 00 00 */ stw r3, 0(r31)
+/* 803444E0 00340140 90 1F 00 24 */ stw r0, 0x24(r31)
+lbl_803444E4:
+/* 803444E4 00340144 80 1F 00 34 */ lwz r0, 0x34(r31)
+/* 803444E8 00340148 2C 00 00 00 */ cmpwi r0, 0
+/* 803444EC 0034014C 40 81 00 3C */ ble lbl_80344528
+/* 803444F0 00340150 80 9F 00 08 */ lwz r4, 8(r31)
+/* 803444F4 00340154 7F C3 F3 78 */ mr r3, r30
+/* 803444F8 00340158 38 BF 00 2C */ addi r5, r31, 0x2c
+/* 803444FC 0034015C 38 C1 00 10 */ addi r6, r1, 0x10
+/* 80344500 00340160 38 E0 00 01 */ li r7, 1
+/* 80344504 00340164 39 0D 91 68 */ addi r8, r13, lbl_8063E428-_SDA_BASE_
+/* 80344508 00340168 4B FF B4 8D */ bl gpiSendFromBuffer
+/* 8034450C 0034016C 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80344510 00340170 2C 00 00 00 */ cmpwi r0, 0
+/* 80344514 00340174 40 82 00 0C */ bne lbl_80344520
+/* 80344518 00340178 2C 03 00 00 */ cmpwi r3, 0
+/* 8034451C 0034017C 41 82 00 0C */ beq lbl_80344528
+lbl_80344520:
+/* 80344520 00340180 38 00 00 6A */ li r0, 0x6a
+/* 80344524 00340184 90 1F 00 00 */ stw r0, 0(r31)
+lbl_80344528:
+/* 80344528 00340188 38 60 00 00 */ li r3, 0
+lbl_8034452C:
+/* 8034452C 0034018C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80344530 00340190 4B E8 2C 45 */ bl _restgpr_27
+/* 80344534 00340194 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80344538 00340198 7C 08 03 A6 */ mtlr r0
+/* 8034453C 0034019C 38 21 00 40 */ addi r1, r1, 0x40
+/* 80344540 003401A0 4E 80 00 20 */ blr
+
+.global gpiProcessPeerAcceptingConnection
+gpiProcessPeerAcceptingConnection:
+/* 80344544 003401A4 94 21 FE 60 */ stwu r1, -0x1a0(r1)
+/* 80344548 003401A8 7C 08 02 A6 */ mflr r0
+/* 8034454C 003401AC 90 01 01 A4 */ stw r0, 0x1a4(r1)
+/* 80344550 003401B0 39 61 01 A0 */ addi r11, r1, 0x1a0
+/* 80344554 003401B4 4B E8 2B D5 */ bl _savegpr_27
+/* 80344558 003401B8 7C 9C 23 78 */ mr r28, r4
+/* 8034455C 003401BC 83 A3 00 00 */ lwz r29, 0(r3)
+/* 80344560 003401C0 80 84 00 08 */ lwz r4, 8(r4)
+/* 80344564 003401C4 7C 7B 1B 78 */ mr r27, r3
+/* 80344568 003401C8 38 BC 00 1C */ addi r5, r28, 0x1c
+/* 8034456C 003401CC 38 C1 00 0C */ addi r6, r1, 0xc
+/* 80344570 003401D0 38 E1 00 08 */ addi r7, r1, 8
+/* 80344574 003401D4 39 0D 91 68 */ addi r8, r13, lbl_8063E428-_SDA_BASE_
+/* 80344578 003401D8 4B FF B2 DD */ bl gpiRecvToBuffer
+/* 8034457C 003401DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80344580 003401E0 41 82 00 08 */ beq lbl_80344588
+/* 80344584 003401E4 48 00 01 A8 */ b lbl_8034472C
+lbl_80344588:
+/* 80344588 003401E8 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034458C 003401EC 2C 00 00 00 */ cmpwi r0, 0
+/* 80344590 003401F0 41 82 00 14 */ beq lbl_803445A4
+/* 80344594 003401F4 38 00 00 6A */ li r0, 0x6a
+/* 80344598 003401F8 38 60 00 00 */ li r3, 0
+/* 8034459C 003401FC 90 1C 00 00 */ stw r0, 0(r28)
+/* 803445A0 00340200 48 00 01 8C */ b lbl_8034472C
+lbl_803445A4:
+/* 803445A4 00340204 80 7C 00 1C */ lwz r3, 0x1c(r28)
+/* 803445A8 00340208 38 8D 91 60 */ addi r4, r13, lbl_8063E420-_SDA_BASE_
+/* 803445AC 0034020C 4B E8 A1 F5 */ bl strstr
+/* 803445B0 00340210 2C 03 00 00 */ cmpwi r3, 0
+/* 803445B4 00340214 41 82 01 74 */ beq lbl_80344728
+/* 803445B8 00340218 3B E0 00 00 */ li r31, 0
+/* 803445BC 0034021C 38 8D 91 40 */ addi r4, r13, lbl_8063E400-_SDA_BASE_
+/* 803445C0 00340220 9B E3 00 00 */ stb r31, 0(r3)
+/* 803445C4 00340224 38 A0 00 06 */ li r5, 6
+/* 803445C8 00340228 83 DC 00 1C */ lwz r30, 0x1c(r28)
+/* 803445CC 0034022C 7F C3 F3 78 */ mr r3, r30
+/* 803445D0 00340230 4B E8 9F 99 */ bl strncmp
+/* 803445D4 00340234 2C 03 00 00 */ cmpwi r3, 0
+/* 803445D8 00340238 40 82 01 3C */ bne lbl_80344714
+/* 803445DC 0034023C 7F C3 F3 78 */ mr r3, r30
+/* 803445E0 00340240 38 A1 00 10 */ addi r5, r1, 0x10
+/* 803445E4 00340244 38 8D 91 48 */ addi r4, r13, lbl_8063E408-_SDA_BASE_
+/* 803445E8 00340248 38 C0 00 10 */ li r6, 0x10
+/* 803445EC 0034024C 48 00 3A A1 */ bl gpiValueForKey
+/* 803445F0 00340250 2C 03 00 00 */ cmpwi r3, 0
+/* 803445F4 00340254 40 82 00 14 */ bne lbl_80344608
+/* 803445F8 00340258 38 00 00 6A */ li r0, 0x6a
+/* 803445FC 0034025C 38 60 00 00 */ li r3, 0
+/* 80344600 00340260 90 1C 00 00 */ stw r0, 0(r28)
+/* 80344604 00340264 48 00 01 28 */ b lbl_8034472C
+lbl_80344608:
+/* 80344608 00340268 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034460C 0034026C 4B E8 C1 01 */ bl atoi
+/* 80344610 00340270 7C 7E 1B 78 */ mr r30, r3
+/* 80344614 00340274 80 7C 00 1C */ lwz r3, 0x1c(r28)
+/* 80344618 00340278 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8034461C 0034027C 38 8D 91 50 */ addi r4, r13, lbl_8063E410-_SDA_BASE_
+/* 80344620 00340280 38 C0 00 1F */ li r6, 0x1f
+/* 80344624 00340284 48 00 3A 69 */ bl gpiValueForKey
+/* 80344628 00340288 2C 03 00 00 */ cmpwi r3, 0
+/* 8034462C 0034028C 40 82 00 14 */ bne lbl_80344640
+/* 80344630 00340290 38 00 00 6A */ li r0, 0x6a
+/* 80344634 00340294 38 60 00 00 */ li r3, 0
+/* 80344638 00340298 90 1C 00 00 */ stw r0, 0(r28)
+/* 8034463C 0034029C 48 00 00 F0 */ b lbl_8034472C
+lbl_80344640:
+/* 80344640 003402A0 80 7C 00 1C */ lwz r3, 0x1c(r28)
+/* 80344644 003402A4 38 A1 00 64 */ addi r5, r1, 0x64
+/* 80344648 003402A8 38 8D 91 58 */ addi r4, r13, lbl_8063E418-_SDA_BASE_
+/* 8034464C 003402AC 38 C0 00 21 */ li r6, 0x21
+/* 80344650 003402B0 48 00 3A 3D */ bl gpiValueForKey
+/* 80344654 003402B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80344658 003402B8 40 82 00 14 */ bne lbl_8034466C
+/* 8034465C 003402BC 38 00 00 6A */ li r0, 0x6a
+/* 80344660 003402C0 38 60 00 00 */ li r3, 0
+/* 80344664 003402C4 90 1C 00 00 */ stw r0, 0(r28)
+/* 80344668 003402C8 48 00 00 C4 */ b lbl_8034472C
+lbl_8034466C:
+/* 8034466C 003402CC 80 DD 01 A0 */ lwz r6, 0x1a0(r29)
+/* 80344670 003402D0 7F C7 F3 78 */ mr r7, r30
+/* 80344674 003402D4 38 61 00 88 */ addi r3, r1, 0x88
+/* 80344678 003402D8 38 BD 01 77 */ addi r5, r29, 0x177
+/* 8034467C 003402DC 38 8D 91 80 */ addi r4, r13, lbl_8063E440-_SDA_BASE_
+/* 80344680 003402E0 4C C6 31 82 */ crclr 6
+/* 80344684 003402E4 4B E8 84 79 */ bl sprintf
+/* 80344688 003402E8 38 61 00 88 */ addi r3, r1, 0x88
+/* 8034468C 003402EC 4B E8 24 D9 */ bl strlen
+/* 80344690 003402F0 7C 64 1B 78 */ mr r4, r3
+/* 80344694 003402F4 38 61 00 88 */ addi r3, r1, 0x88
+/* 80344698 003402F8 38 A1 00 40 */ addi r5, r1, 0x40
+/* 8034469C 003402FC 4B FF 33 71 */ bl MD5Digest
+/* 803446A0 00340300 38 61 00 64 */ addi r3, r1, 0x64
+/* 803446A4 00340304 38 81 00 40 */ addi r4, r1, 0x40
+/* 803446A8 00340308 4B E8 9D A5 */ bl strcmp
+/* 803446AC 0034030C 2C 03 00 00 */ cmpwi r3, 0
+/* 803446B0 00340310 41 82 00 34 */ beq lbl_803446E4
+/* 803446B4 00340314 7F 63 DB 78 */ mr r3, r27
+/* 803446B8 00340318 38 9C 00 2C */ addi r4, r28, 0x2c
+/* 803446BC 0034031C 38 AD 91 70 */ addi r5, r13, lbl_8063E430-_SDA_BASE_
+/* 803446C0 00340320 4B FF AD E1 */ bl gpiAppendStringToBuffer
+/* 803446C4 00340324 7F 63 DB 78 */ mr r3, r27
+/* 803446C8 00340328 38 9C 00 2C */ addi r4, r28, 0x2c
+/* 803446CC 0034032C 38 AD 91 60 */ addi r5, r13, lbl_8063E420-_SDA_BASE_
+/* 803446D0 00340330 4B FF AD D1 */ bl gpiAppendStringToBuffer
+/* 803446D4 00340334 38 00 00 6A */ li r0, 0x6a
+/* 803446D8 00340338 38 60 00 00 */ li r3, 0
+/* 803446DC 0034033C 90 1C 00 00 */ stw r0, 0(r28)
+/* 803446E0 00340340 48 00 00 4C */ b lbl_8034472C
+lbl_803446E4:
+/* 803446E4 00340344 7F 63 DB 78 */ mr r3, r27
+/* 803446E8 00340348 38 9C 00 2C */ addi r4, r28, 0x2c
+/* 803446EC 0034034C 38 AD 91 78 */ addi r5, r13, lbl_8063E438-_SDA_BASE_
+/* 803446F0 00340350 4B FF AD B1 */ bl gpiAppendStringToBuffer
+/* 803446F4 00340354 7F 63 DB 78 */ mr r3, r27
+/* 803446F8 00340358 38 9C 00 2C */ addi r4, r28, 0x2c
+/* 803446FC 0034035C 38 AD 91 60 */ addi r5, r13, lbl_8063E420-_SDA_BASE_
+/* 80344700 00340360 4B FF AD A1 */ bl gpiAppendStringToBuffer
+/* 80344704 00340364 38 00 00 69 */ li r0, 0x69
+/* 80344708 00340368 93 DC 00 0C */ stw r30, 0xc(r28)
+/* 8034470C 0034036C 90 1C 00 00 */ stw r0, 0(r28)
+/* 80344710 00340370 48 00 00 14 */ b lbl_80344724
+lbl_80344714:
+/* 80344714 00340374 38 00 00 6A */ li r0, 0x6a
+/* 80344718 00340378 38 60 00 00 */ li r3, 0
+/* 8034471C 0034037C 90 1C 00 00 */ stw r0, 0(r28)
+/* 80344720 00340380 48 00 00 0C */ b lbl_8034472C
+lbl_80344724:
+/* 80344724 00340384 93 FC 00 24 */ stw r31, 0x24(r28)
+lbl_80344728:
+/* 80344728 00340388 38 60 00 00 */ li r3, 0
+lbl_8034472C:
+/* 8034472C 0034038C 39 61 01 A0 */ addi r11, r1, 0x1a0
+/* 80344730 00340390 4B E8 2A 45 */ bl _restgpr_27
+/* 80344734 00340394 80 01 01 A4 */ lwz r0, 0x1a4(r1)
+/* 80344738 00340398 7C 08 03 A6 */ mtlr r0
+/* 8034473C 0034039C 38 21 01 A0 */ addi r1, r1, 0x1a0
+/* 80344740 003403A0 4E 80 00 20 */ blr
+
+.global gpiProcessPeerConnected
+gpiProcessPeerConnected:
+/* 80344744 003403A4 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80344748 003403A8 7C 08 02 A6 */ mflr r0
+/* 8034474C 003403AC 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80344750 003403B0 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 80344754 003403B4 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 80344758 003403B8 7C 9E 23 78 */ mr r30, r4
+/* 8034475C 003403BC 93 A1 00 44 */ stw r29, 0x44(r1)
+/* 80344760 003403C0 7C 7D 1B 78 */ mr r29, r3
+/* 80344764 003403C4 93 81 00 40 */ stw r28, 0x40(r1)
+/* 80344768 003403C8 80 04 00 34 */ lwz r0, 0x34(r4)
+/* 8034476C 003403CC 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80344770 003403D0 2C 00 00 00 */ cmpwi r0, 0
+/* 80344774 003403D4 41 82 00 40 */ beq lbl_803447B4
+/* 80344778 003403D8 80 84 00 08 */ lwz r4, 8(r4)
+/* 8034477C 003403DC 38 BE 00 2C */ addi r5, r30, 0x2c
+/* 80344780 003403E0 38 C1 00 18 */ addi r6, r1, 0x18
+/* 80344784 003403E4 38 E0 00 01 */ li r7, 1
+/* 80344788 003403E8 39 0D 91 68 */ addi r8, r13, lbl_8063E428-_SDA_BASE_
+/* 8034478C 003403EC 4B FF B2 09 */ bl gpiSendFromBuffer
+/* 80344790 003403F0 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80344794 003403F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80344798 003403F8 40 82 00 0C */ bne lbl_803447A4
+/* 8034479C 003403FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803447A0 00340400 41 82 00 14 */ beq lbl_803447B4
+lbl_803447A4:
+/* 803447A4 00340404 38 00 00 6A */ li r0, 0x6a
+/* 803447A8 00340408 38 60 00 00 */ li r3, 0
+/* 803447AC 0034040C 90 1E 00 00 */ stw r0, 0(r30)
+/* 803447B0 00340410 48 00 03 1C */ b lbl_80344ACC
+lbl_803447B4:
+/* 803447B4 00340414 80 1E 00 34 */ lwz r0, 0x34(r30)
+/* 803447B8 00340418 2C 00 00 00 */ cmpwi r0, 0
+/* 803447BC 0034041C 40 82 00 B4 */ bne lbl_80344870
+/* 803447C0 00340420 41 82 00 7C */ beq lbl_8034483C
+/* 803447C4 00340424 38 60 00 00 */ li r3, 0
+/* 803447C8 00340428 48 00 00 88 */ b lbl_80344850
+/* 803447CC 0034042C 48 00 00 70 */ b lbl_8034483C
+lbl_803447D0:
+/* 803447D0 00340430 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 803447D4 00340434 38 80 00 00 */ li r4, 0
+/* 803447D8 00340438 4B FF 17 19 */ bl ArrayNth
+/* 803447DC 0034043C 7C 7C 1B 78 */ mr r28, r3
+/* 803447E0 00340440 80 9E 00 08 */ lwz r4, 8(r30)
+/* 803447E4 00340444 7F A3 EB 78 */ mr r3, r29
+/* 803447E8 00340448 38 C1 00 08 */ addi r6, r1, 8
+/* 803447EC 0034044C 7F 85 E3 78 */ mr r5, r28
+/* 803447F0 00340450 38 E0 00 00 */ li r7, 0
+/* 803447F4 00340454 39 0D 91 68 */ addi r8, r13, lbl_8063E428-_SDA_BASE_
+/* 803447F8 00340458 4B FF B1 9D */ bl gpiSendFromBuffer
+/* 803447FC 0034045C 80 01 00 08 */ lwz r0, 8(r1)
+/* 80344800 00340460 2C 00 00 00 */ cmpwi r0, 0
+/* 80344804 00340464 40 82 00 0C */ bne lbl_80344810
+/* 80344808 00340468 2C 03 00 00 */ cmpwi r3, 0
+/* 8034480C 0034046C 41 82 00 14 */ beq lbl_80344820
+lbl_80344810:
+/* 80344810 00340470 38 00 00 6A */ li r0, 0x6a
+/* 80344814 00340474 38 60 00 00 */ li r3, 0
+/* 80344818 00340478 90 1E 00 00 */ stw r0, 0(r30)
+/* 8034481C 0034047C 48 00 00 34 */ b lbl_80344850
+lbl_80344820:
+/* 80344820 00340480 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 80344824 00340484 80 1C 00 08 */ lwz r0, 8(r28)
+/* 80344828 00340488 7C 03 00 00 */ cmpw r3, r0
+/* 8034482C 0034048C 40 82 00 20 */ bne lbl_8034484C
+/* 80344830 00340490 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 80344834 00340494 38 80 00 00 */ li r4, 0
+/* 80344838 00340498 4B FF 1A 39 */ bl ArrayDeleteAt
+lbl_8034483C:
+/* 8034483C 0034049C 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 80344840 003404A0 4B FF 16 A9 */ bl ArrayLength
+/* 80344844 003404A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80344848 003404A8 40 82 FF 88 */ bne lbl_803447D0
+lbl_8034484C:
+/* 8034484C 003404AC 38 60 00 00 */ li r3, 0
+lbl_80344850:
+/* 80344850 003404B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80344854 003404B4 41 82 00 08 */ beq lbl_8034485C
+/* 80344858 003404B8 48 00 02 74 */ b lbl_80344ACC
+lbl_8034485C:
+/* 8034485C 003404BC 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80344860 003404C0 2C 00 00 6A */ cmpwi r0, 0x6a
+/* 80344864 003404C4 40 82 00 0C */ bne lbl_80344870
+/* 80344868 003404C8 38 60 00 00 */ li r3, 0
+/* 8034486C 003404CC 48 00 02 60 */ b lbl_80344ACC
+lbl_80344870:
+/* 80344870 003404D0 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80344874 003404D4 7F A3 EB 78 */ mr r3, r29
+/* 80344878 003404D8 38 BE 00 1C */ addi r5, r30, 0x1c
+/* 8034487C 003404DC 38 C1 00 1C */ addi r6, r1, 0x1c
+/* 80344880 003404E0 38 E1 00 18 */ addi r7, r1, 0x18
+/* 80344884 003404E4 39 0D 91 68 */ addi r8, r13, lbl_8063E428-_SDA_BASE_
+/* 80344888 003404E8 4B FF AF CD */ bl gpiRecvToBuffer
+/* 8034488C 003404EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80344890 003404F0 41 82 00 14 */ beq lbl_803448A4
+/* 80344894 003404F4 38 00 00 6A */ li r0, 0x6a
+/* 80344898 003404F8 38 60 00 00 */ li r3, 0
+/* 8034489C 003404FC 90 1E 00 00 */ stw r0, 0(r30)
+/* 803448A0 00340500 48 00 02 2C */ b lbl_80344ACC
+lbl_803448A4:
+/* 803448A4 00340504 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 803448A8 00340508 2C 00 00 00 */ cmpwi r0, 0
+/* 803448AC 0034050C 40 81 00 24 */ ble lbl_803448D0
+/* 803448B0 00340510 38 60 00 00 */ li r3, 0
+/* 803448B4 00340514 4B FF 42 55 */ bl gsiTimeInSec
+/* 803448B8 00340518 38 A0 01 2C */ li r5, 0x12c
+/* 803448BC 0034051C 38 00 00 00 */ li r0, 0
+/* 803448C0 00340520 7C 84 28 14 */ addc r4, r4, r5
+/* 803448C4 00340524 7C 03 01 14 */ adde r0, r3, r0
+/* 803448C8 00340528 90 9E 00 14 */ stw r4, 0x14(r30)
+/* 803448CC 0034052C 90 1E 00 10 */ stw r0, 0x10(r30)
+lbl_803448D0:
+/* 803448D0 00340530 7F A3 EB 78 */ mr r3, r29
+/* 803448D4 00340534 38 9E 00 1C */ addi r4, r30, 0x1c
+/* 803448D8 00340538 38 A1 00 14 */ addi r5, r1, 0x14
+/* 803448DC 0034053C 38 C1 00 10 */ addi r6, r1, 0x10
+/* 803448E0 00340540 38 E1 00 0C */ addi r7, r1, 0xc
+/* 803448E4 00340544 4B FF B1 B1 */ bl gpiReadMessageFromBuffer
+/* 803448E8 00340548 2C 03 00 00 */ cmpwi r3, 0
+/* 803448EC 0034054C 41 82 00 08 */ beq lbl_803448F4
+/* 803448F0 00340550 48 00 01 DC */ b lbl_80344ACC
+lbl_803448F4:
+/* 803448F4 00340554 80 E1 00 14 */ lwz r7, 0x14(r1)
+/* 803448F8 00340558 2C 07 00 00 */ cmpwi r7, 0
+/* 803448FC 0034055C 41 82 01 AC */ beq lbl_80344AA8
+/* 80344900 00340560 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 80344904 00340564 2C 05 00 66 */ cmpwi r5, 0x66
+/* 80344908 00340568 41 82 01 64 */ beq lbl_80344A6C
+/* 8034490C 0034056C 40 80 00 1C */ bge lbl_80344928
+/* 80344910 00340570 2C 05 00 05 */ cmpwi r5, 5
+/* 80344914 00340574 41 82 00 C0 */ beq lbl_803449D4
+/* 80344918 00340578 40 80 01 84 */ bge lbl_80344A9C
+/* 8034491C 0034057C 2C 05 00 01 */ cmpwi r5, 1
+/* 80344920 00340580 41 82 00 1C */ beq lbl_8034493C
+/* 80344924 00340584 48 00 01 78 */ b lbl_80344A9C
+lbl_80344928:
+/* 80344928 00340588 2C 05 00 D1 */ cmpwi r5, 0xd1
+/* 8034492C 0034058C 40 80 01 70 */ bge lbl_80344A9C
+/* 80344930 00340590 2C 05 00 C8 */ cmpwi r5, 0xc8
+/* 80344934 00340594 40 80 01 54 */ bge lbl_80344A88
+/* 80344938 00340598 48 00 01 64 */ b lbl_80344A9C
+lbl_8034493C:
+/* 8034493C 0034059C 80 7F 01 C0 */ lwz r3, 0x1c0(r31)
+/* 80344940 003405A0 80 1F 01 C4 */ lwz r0, 0x1c4(r31)
+/* 80344944 003405A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80344948 003405A8 90 61 00 38 */ stw r3, 0x38(r1)
+/* 8034494C 003405AC 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 80344950 003405B0 41 82 01 4C */ beq lbl_80344A9C
+/* 80344954 003405B4 38 60 00 0C */ li r3, 0xc
+/* 80344958 003405B8 4B FF 49 BD */ bl gsimalloc
+/* 8034495C 003405BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80344960 003405C0 7C 7C 1B 78 */ mr r28, r3
+/* 80344964 003405C4 40 82 00 1C */ bne lbl_80344980
+/* 80344968 003405C8 3C 80 80 45 */ lis r4, lbl_8044AFB0@ha
+/* 8034496C 003405CC 7F A3 EB 78 */ mr r3, r29
+/* 80344970 003405D0 38 84 AF B0 */ addi r4, r4, lbl_8044AFB0@l
+/* 80344974 003405D4 48 00 3A E5 */ bl gpiSetErrorString
+/* 80344978 003405D8 38 60 00 01 */ li r3, 1
+/* 8034497C 003405DC 48 00 01 50 */ b lbl_80344ACC
+lbl_80344980:
+/* 80344980 003405E0 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80344984 003405E4 90 03 00 00 */ stw r0, 0(r3)
+/* 80344988 003405E8 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8034498C 003405EC 4B FF 45 79 */ bl goastrdup
+/* 80344990 003405F0 90 7C 00 08 */ stw r3, 8(r28)
+/* 80344994 003405F4 38 60 00 00 */ li r3, 0
+/* 80344998 003405F8 4B FF 41 71 */ bl gsiTimeInSec
+/* 8034499C 003405FC 90 9C 00 04 */ stw r4, 4(r28)
+/* 803449A0 00340600 7F A3 EB 78 */ mr r3, r29
+/* 803449A4 00340604 80 C1 00 38 */ lwz r6, 0x38(r1)
+/* 803449A8 00340608 7F 85 E3 78 */ mr r5, r28
+/* 803449AC 0034060C 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 803449B0 00340610 38 81 00 30 */ addi r4, r1, 0x30
+/* 803449B4 00340614 90 C1 00 30 */ stw r6, 0x30(r1)
+/* 803449B8 00340618 38 C0 00 00 */ li r6, 0
+/* 803449BC 0034061C 38 E0 00 02 */ li r7, 2
+/* 803449C0 00340620 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803449C4 00340624 4B FF B3 65 */ bl gpiAddCallback
+/* 803449C8 00340628 2C 03 00 00 */ cmpwi r3, 0
+/* 803449CC 0034062C 41 82 00 D0 */ beq lbl_80344A9C
+/* 803449D0 00340630 48 00 00 FC */ b lbl_80344ACC
+lbl_803449D4:
+/* 803449D4 00340634 80 7F 01 C8 */ lwz r3, 0x1c8(r31)
+/* 803449D8 00340638 80 1F 01 CC */ lwz r0, 0x1cc(r31)
+/* 803449DC 0034063C 2C 03 00 00 */ cmpwi r3, 0
+/* 803449E0 00340640 90 61 00 20 */ stw r3, 0x20(r1)
+/* 803449E4 00340644 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803449E8 00340648 41 82 00 B4 */ beq lbl_80344A9C
+/* 803449EC 0034064C 38 60 00 0C */ li r3, 0xc
+/* 803449F0 00340650 4B FF 49 25 */ bl gsimalloc
+/* 803449F4 00340654 2C 03 00 00 */ cmpwi r3, 0
+/* 803449F8 00340658 7C 7C 1B 78 */ mr r28, r3
+/* 803449FC 0034065C 40 82 00 1C */ bne lbl_80344A18
+/* 80344A00 00340660 3C 80 80 45 */ lis r4, lbl_8044AFB0@ha
+/* 80344A04 00340664 7F A3 EB 78 */ mr r3, r29
+/* 80344A08 00340668 38 84 AF B0 */ addi r4, r4, lbl_8044AFB0@l
+/* 80344A0C 0034066C 48 00 3A 4D */ bl gpiSetErrorString
+/* 80344A10 00340670 38 60 00 01 */ li r3, 1
+/* 80344A14 00340674 48 00 00 B8 */ b lbl_80344ACC
+lbl_80344A18:
+/* 80344A18 00340678 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80344A1C 0034067C 90 03 00 00 */ stw r0, 0(r3)
+/* 80344A20 00340680 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 80344A24 00340684 4B FF 44 E1 */ bl goastrdup
+/* 80344A28 00340688 90 7C 00 08 */ stw r3, 8(r28)
+/* 80344A2C 0034068C 38 60 00 00 */ li r3, 0
+/* 80344A30 00340690 4B FF 40 D9 */ bl gsiTimeInSec
+/* 80344A34 00340694 90 9C 00 04 */ stw r4, 4(r28)
+/* 80344A38 00340698 7F A3 EB 78 */ mr r3, r29
+/* 80344A3C 0034069C 80 C1 00 20 */ lwz r6, 0x20(r1)
+/* 80344A40 003406A0 7F 85 E3 78 */ mr r5, r28
+/* 80344A44 003406A4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80344A48 003406A8 38 81 00 28 */ addi r4, r1, 0x28
+/* 80344A4C 003406AC 90 C1 00 28 */ stw r6, 0x28(r1)
+/* 80344A50 003406B0 38 C0 00 00 */ li r6, 0
+/* 80344A54 003406B4 38 E0 00 02 */ li r7, 2
+/* 80344A58 003406B8 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 80344A5C 003406BC 4B FF B2 CD */ bl gpiAddCallback
+/* 80344A60 003406C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80344A64 003406C4 41 82 00 38 */ beq lbl_80344A9C
+/* 80344A68 003406C8 48 00 00 64 */ b lbl_80344ACC
+lbl_80344A6C:
+/* 80344A6C 003406CC 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80344A70 003406D0 7F A3 EB 78 */ mr r3, r29
+/* 80344A74 003406D4 38 A0 00 67 */ li r5, 0x67
+/* 80344A78 003406D8 38 CD 91 88 */ addi r6, r13, lbl_8063E448-_SDA_BASE_
+/* 80344A7C 003406DC 38 E0 00 00 */ li r7, 0
+/* 80344A80 003406E0 4B FF A4 51 */ bl gpiSendBuddyMessage
+/* 80344A84 003406E4 48 00 00 18 */ b lbl_80344A9C
+lbl_80344A88:
+/* 80344A88 003406E8 80 DE 00 1C */ lwz r6, 0x1c(r30)
+/* 80344A8C 003406EC 7F A3 EB 78 */ mr r3, r29
+/* 80344A90 003406F0 81 01 00 0C */ lwz r8, 0xc(r1)
+/* 80344A94 003406F4 7F C4 F3 78 */ mr r4, r30
+/* 80344A98 003406F8 48 00 32 A5 */ bl gpiHandleTransferMessage
+lbl_80344A9C:
+/* 80344A9C 003406FC 7F A3 EB 78 */ mr r3, r29
+/* 80344AA0 00340700 38 9E 00 1C */ addi r4, r30, 0x1c
+/* 80344AA4 00340704 4B FF B1 45 */ bl gpiClipBufferToPosition
+lbl_80344AA8:
+/* 80344AA8 00340708 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80344AAC 0034070C 2C 00 00 00 */ cmpwi r0, 0
+/* 80344AB0 00340710 40 82 FE 20 */ bne lbl_803448D0
+/* 80344AB4 00340714 80 01 00 18 */ lwz r0, 0x18(r1)
+/* 80344AB8 00340718 2C 00 00 00 */ cmpwi r0, 0
+/* 80344ABC 0034071C 41 82 00 0C */ beq lbl_80344AC8
+/* 80344AC0 00340720 38 00 00 6A */ li r0, 0x6a
+/* 80344AC4 00340724 90 1E 00 00 */ stw r0, 0(r30)
+lbl_80344AC8:
+/* 80344AC8 00340728 38 60 00 00 */ li r3, 0
+lbl_80344ACC:
+/* 80344ACC 0034072C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80344AD0 00340730 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 80344AD4 00340734 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 80344AD8 00340738 83 A1 00 44 */ lwz r29, 0x44(r1)
+/* 80344ADC 0034073C 83 81 00 40 */ lwz r28, 0x40(r1)
+/* 80344AE0 00340740 7C 08 03 A6 */ mtlr r0
+/* 80344AE4 00340744 38 21 00 50 */ addi r1, r1, 0x50
+/* 80344AE8 00340748 4E 80 00 20 */ blr
+
+.global gpiDestroyPeer
+gpiDestroyPeer:
+/* 80344AEC 0034074C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80344AF0 00340750 7C 08 02 A6 */ mflr r0
+/* 80344AF4 00340754 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80344AF8 00340758 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80344AFC 0034075C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80344B00 00340760 7C 9E 23 78 */ mr r30, r4
+/* 80344B04 00340764 80 64 00 08 */ lwz r3, 8(r4)
+/* 80344B08 00340768 38 80 00 02 */ li r4, 2
+/* 80344B0C 0034076C 4B FF 31 25 */ bl shutdown
+/* 80344B10 00340770 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80344B14 00340774 4B FF 30 E9 */ bl closesocket
+/* 80344B18 00340778 80 7E 00 1C */ lwz r3, 0x1c(r30)
+/* 80344B1C 0034077C 4B FF 48 1D */ bl gsifree
+/* 80344B20 00340780 3B E0 00 00 */ li r31, 0
+/* 80344B24 00340784 80 7E 00 2C */ lwz r3, 0x2c(r30)
+/* 80344B28 00340788 93 FE 00 1C */ stw r31, 0x1c(r30)
+/* 80344B2C 0034078C 4B FF 48 0D */ bl gsifree
+/* 80344B30 00340790 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 80344B34 00340794 93 FE 00 2C */ stw r31, 0x2c(r30)
+/* 80344B38 00340798 2C 03 00 00 */ cmpwi r3, 0
+/* 80344B3C 0034079C 41 82 00 0C */ beq lbl_80344B48
+/* 80344B40 003407A0 4B FF 13 15 */ bl ArrayFree
+/* 80344B44 003407A4 93 FE 00 3C */ stw r31, 0x3c(r30)
+lbl_80344B48:
+/* 80344B48 003407A8 7F C3 F3 78 */ mr r3, r30
+/* 80344B4C 003407AC 4B FF 47 ED */ bl gsifree
+/* 80344B50 003407B0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80344B54 003407B4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80344B58 003407B8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80344B5C 003407BC 7C 08 03 A6 */ mtlr r0
+/* 80344B60 003407C0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80344B64 003407C4 4E 80 00 20 */ blr
+
+.global gpiRemovePeer
+gpiRemovePeer:
+/* 80344B68 003407C8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80344B6C 003407CC 7C 08 02 A6 */ mflr r0
+/* 80344B70 003407D0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80344B74 003407D4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80344B78 003407D8 7C 7F 1B 78 */ mr r31, r3
+/* 80344B7C 003407DC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80344B80 003407E0 7C 9E 23 78 */ mr r30, r4
+/* 80344B84 003407E4 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80344B88 003407E8 80 65 04 50 */ lwz r3, 0x450(r5)
+/* 80344B8C 003407EC 7C 03 20 40 */ cmplw r3, r4
+/* 80344B90 003407F0 40 82 00 20 */ bne lbl_80344BB0
+/* 80344B94 003407F4 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 80344B98 003407F8 90 05 04 50 */ stw r0, 0x450(r5)
+/* 80344B9C 003407FC 48 00 00 6C */ b lbl_80344C08
+/* 80344BA0 00340800 48 00 00 10 */ b lbl_80344BB0
+lbl_80344BA4:
+/* 80344BA4 00340804 2C 00 00 00 */ cmpwi r0, 0
+/* 80344BA8 00340808 41 82 00 BC */ beq lbl_80344C64
+/* 80344BAC 0034080C 7C 03 03 78 */ mr r3, r0
+lbl_80344BB0:
+/* 80344BB0 00340810 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 80344BB4 00340814 7C 00 20 40 */ cmplw r0, r4
+/* 80344BB8 00340818 40 82 FF EC */ bne lbl_80344BA4
+/* 80344BBC 0034081C 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 80344BC0 00340820 90 03 00 40 */ stw r0, 0x40(r3)
+/* 80344BC4 00340824 48 00 00 44 */ b lbl_80344C08
+lbl_80344BC8:
+/* 80344BC8 00340828 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 80344BCC 0034082C 38 80 00 00 */ li r4, 0
+/* 80344BD0 00340830 4B FF 13 21 */ bl ArrayNth
+/* 80344BD4 00340834 80 A3 00 10 */ lwz r5, 0x10(r3)
+/* 80344BD8 00340838 7C 64 1B 78 */ mr r4, r3
+/* 80344BDC 0034083C 2C 05 00 64 */ cmpwi r5, 0x64
+/* 80344BE0 00340840 40 80 00 1C */ bge lbl_80344BFC
+/* 80344BE4 00340844 80 C4 00 00 */ lwz r6, 0(r4)
+/* 80344BE8 00340848 7F E3 FB 78 */ mr r3, r31
+/* 80344BEC 0034084C 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 80344BF0 00340850 80 9E 00 0C */ lwz r4, 0xc(r30)
+/* 80344BF4 00340854 7C C6 02 14 */ add r6, r6, r0
+/* 80344BF8 00340858 4B FF A1 E5 */ bl gpiSendServerBuddyMessage
+lbl_80344BFC:
+/* 80344BFC 0034085C 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 80344C00 00340860 38 80 00 00 */ li r4, 0
+/* 80344C04 00340864 4B FF 16 6D */ bl ArrayDeleteAt
+lbl_80344C08:
+/* 80344C08 00340868 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 80344C0C 0034086C 4B FF 12 DD */ bl ArrayLength
+/* 80344C10 00340870 2C 03 00 00 */ cmpwi r3, 0
+/* 80344C14 00340874 40 82 FF B4 */ bne lbl_80344BC8
+/* 80344C18 00340878 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80344C1C 0034087C 38 80 00 02 */ li r4, 2
+/* 80344C20 00340880 4B FF 30 11 */ bl shutdown
+/* 80344C24 00340884 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80344C28 00340888 4B FF 2F D5 */ bl closesocket
+/* 80344C2C 0034088C 80 7E 00 1C */ lwz r3, 0x1c(r30)
+/* 80344C30 00340890 4B FF 47 09 */ bl gsifree
+/* 80344C34 00340894 3B E0 00 00 */ li r31, 0
+/* 80344C38 00340898 80 7E 00 2C */ lwz r3, 0x2c(r30)
+/* 80344C3C 0034089C 93 FE 00 1C */ stw r31, 0x1c(r30)
+/* 80344C40 003408A0 4B FF 46 F9 */ bl gsifree
+/* 80344C44 003408A4 80 7E 00 3C */ lwz r3, 0x3c(r30)
+/* 80344C48 003408A8 93 FE 00 2C */ stw r31, 0x2c(r30)
+/* 80344C4C 003408AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80344C50 003408B0 41 82 00 0C */ beq lbl_80344C5C
+/* 80344C54 003408B4 4B FF 12 01 */ bl ArrayFree
+/* 80344C58 003408B8 93 FE 00 3C */ stw r31, 0x3c(r30)
+lbl_80344C5C:
+/* 80344C5C 003408BC 7F C3 F3 78 */ mr r3, r30
+/* 80344C60 003408C0 4B FF 46 D9 */ bl gsifree
+lbl_80344C64:
+/* 80344C64 003408C4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80344C68 003408C8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80344C6C 003408CC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80344C70 003408D0 7C 08 03 A6 */ mtlr r0
+/* 80344C74 003408D4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80344C78 003408D8 4E 80 00 20 */ blr
+
+.global gpiProcessPeers
+gpiProcessPeers:
+/* 80344C7C 003408DC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80344C80 003408E0 7C 08 02 A6 */ mflr r0
+/* 80344C84 003408E4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80344C88 003408E8 39 61 00 20 */ addi r11, r1, 0x20
+/* 80344C8C 003408EC 4B E8 24 99 */ bl _savegpr_26
+/* 80344C90 003408F0 83 63 00 00 */ lwz r27, 0(r3)
+/* 80344C94 003408F4 7C 7F 1B 78 */ mr r31, r3
+/* 80344C98 003408F8 80 7B 02 20 */ lwz r3, 0x220(r27)
+/* 80344C9C 003408FC 2C 03 FF FF */ cmpwi r3, -1
+/* 80344CA0 00340900 41 82 01 58 */ beq lbl_80344DF8
+/* 80344CA4 00340904 4B FF 3B A9 */ bl CanReceiveOnSocket
+/* 80344CA8 00340908 2C 03 00 00 */ cmpwi r3, 0
+/* 80344CAC 0034090C 41 82 01 4C */ beq lbl_80344DF8
+/* 80344CB0 00340910 80 7B 02 20 */ lwz r3, 0x220(r27)
+/* 80344CB4 00340914 38 80 00 00 */ li r4, 0
+/* 80344CB8 00340918 38 A0 00 00 */ li r5, 0
+/* 80344CBC 0034091C 4B FF 30 B9 */ bl accept
+/* 80344CC0 00340920 2C 03 FF FF */ cmpwi r3, -1
+/* 80344CC4 00340924 7C 7A 1B 78 */ mr r26, r3
+/* 80344CC8 00340928 41 82 01 30 */ beq lbl_80344DF8
+/* 80344CCC 0034092C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 80344CD0 00340930 38 60 00 48 */ li r3, 0x48
+/* 80344CD4 00340934 4B FF 46 41 */ bl gsimalloc
+/* 80344CD8 00340938 2C 03 00 00 */ cmpwi r3, 0
+/* 80344CDC 0034093C 7C 7C 1B 78 */ mr r28, r3
+/* 80344CE0 00340940 40 82 00 0C */ bne lbl_80344CEC
+/* 80344CE4 00340944 3B 80 00 00 */ li r28, 0
+/* 80344CE8 00340948 48 00 00 6C */ b lbl_80344D54
+lbl_80344CEC:
+/* 80344CEC 0034094C 38 80 00 00 */ li r4, 0
+/* 80344CF0 00340950 38 A0 00 48 */ li r5, 0x48
+/* 80344CF4 00340954 4B CB F4 11 */ bl memset
+/* 80344CF8 00340958 38 00 00 64 */ li r0, 0x64
+/* 80344CFC 0034095C 3B C0 00 00 */ li r30, 0
+/* 80344D00 00340960 90 1C 00 00 */ stw r0, 0(r28)
+/* 80344D04 00340964 38 00 FF FF */ li r0, -1
+/* 80344D08 00340968 38 60 00 00 */ li r3, 0
+/* 80344D0C 0034096C 93 DC 00 04 */ stw r30, 4(r28)
+/* 80344D10 00340970 90 1C 00 08 */ stw r0, 8(r28)
+/* 80344D14 00340974 90 1C 00 0C */ stw r0, 0xc(r28)
+/* 80344D18 00340978 4B FF 3D F1 */ bl gsiTimeInSec
+/* 80344D1C 0034097C 38 00 01 2C */ li r0, 0x12c
+/* 80344D20 00340980 3C A0 80 34 */ lis r5, gpiFreeMessage@ha
+/* 80344D24 00340984 7C 04 00 14 */ addc r0, r4, r0
+/* 80344D28 00340988 38 80 00 00 */ li r4, 0
+/* 80344D2C 0034098C 90 1C 00 14 */ stw r0, 0x14(r28)
+/* 80344D30 00340990 7C 03 F1 14 */ adde r0, r3, r30
+/* 80344D34 00340994 38 A5 4F 08 */ addi r5, r5, gpiFreeMessage@l
+/* 80344D38 00340998 38 60 00 18 */ li r3, 0x18
+/* 80344D3C 0034099C 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 80344D40 003409A0 80 1D 04 50 */ lwz r0, 0x450(r29)
+/* 80344D44 003409A4 90 1C 00 40 */ stw r0, 0x40(r28)
+/* 80344D48 003409A8 4B FF 10 71 */ bl ArrayNew
+/* 80344D4C 003409AC 90 7C 00 3C */ stw r3, 0x3c(r28)
+/* 80344D50 003409B0 93 9D 04 50 */ stw r28, 0x450(r29)
+lbl_80344D54:
+/* 80344D54 003409B4 2C 1C 00 00 */ cmpwi r28, 0
+/* 80344D58 003409B8 41 82 00 98 */ beq lbl_80344DF0
+/* 80344D5C 003409BC 38 00 00 68 */ li r0, 0x68
+/* 80344D60 003409C0 7F 43 D3 78 */ mr r3, r26
+/* 80344D64 003409C4 90 1C 00 00 */ stw r0, 0(r28)
+/* 80344D68 003409C8 38 80 00 00 */ li r4, 0
+/* 80344D6C 003409CC 93 5C 00 08 */ stw r26, 8(r28)
+/* 80344D70 003409D0 4B FF 38 E5 */ bl SetSockBlocking
+/* 80344D74 003409D4 83 9C 00 08 */ lwz r28, 8(r28)
+/* 80344D78 003409D8 38 80 40 00 */ li r4, 0x4000
+/* 80344D7C 003409DC 7F 83 E3 78 */ mr r3, r28
+/* 80344D80 003409E0 4B FF 39 4D */ bl SetReceiveBufferSize
+/* 80344D84 003409E4 3F C0 00 01 */ lis r30, 0x00008000@ha
+/* 80344D88 003409E8 7F 83 E3 78 */ mr r3, r28
+/* 80344D8C 003409EC 38 9E 80 00 */ addi r4, r30, 0x00008000@l
+/* 80344D90 003409F0 4B FF 39 3D */ bl SetReceiveBufferSize
+/* 80344D94 003409F4 7F 83 E3 78 */ mr r3, r28
+/* 80344D98 003409F8 3C 80 00 01 */ lis r4, 1
+/* 80344D9C 003409FC 4B FF 39 31 */ bl SetReceiveBufferSize
+/* 80344DA0 00340A00 7F 83 E3 78 */ mr r3, r28
+/* 80344DA4 00340A04 3C 80 00 02 */ lis r4, 2
+/* 80344DA8 00340A08 4B FF 39 25 */ bl SetReceiveBufferSize
+/* 80344DAC 00340A0C 7F 83 E3 78 */ mr r3, r28
+/* 80344DB0 00340A10 3C 80 00 04 */ lis r4, 4
+/* 80344DB4 00340A14 4B FF 39 19 */ bl SetReceiveBufferSize
+/* 80344DB8 00340A18 7F 83 E3 78 */ mr r3, r28
+/* 80344DBC 00340A1C 38 80 40 00 */ li r4, 0x4000
+/* 80344DC0 00340A20 4B FF 39 69 */ bl SetSendBufferSize
+/* 80344DC4 00340A24 7F 83 E3 78 */ mr r3, r28
+/* 80344DC8 00340A28 38 9E 80 00 */ addi r4, r30, -32768
+/* 80344DCC 00340A2C 4B FF 39 5D */ bl SetSendBufferSize
+/* 80344DD0 00340A30 7F 83 E3 78 */ mr r3, r28
+/* 80344DD4 00340A34 3C 80 00 01 */ lis r4, 1
+/* 80344DD8 00340A38 4B FF 39 51 */ bl SetSendBufferSize
+/* 80344DDC 00340A3C 7F 83 E3 78 */ mr r3, r28
+/* 80344DE0 00340A40 4B FF 39 A5 */ bl GetReceiveBufferSize
+/* 80344DE4 00340A44 7F 83 E3 78 */ mr r3, r28
+/* 80344DE8 00340A48 4B FF 3A 01 */ bl GetSendBufferSize
+/* 80344DEC 00340A4C 48 00 00 0C */ b lbl_80344DF8
+lbl_80344DF0:
+/* 80344DF0 00340A50 7F 43 D3 78 */ mr r3, r26
+/* 80344DF4 00340A54 4B FF 2E 09 */ bl closesocket
+lbl_80344DF8:
+/* 80344DF8 00340A58 83 9B 04 50 */ lwz r28, 0x450(r27)
+/* 80344DFC 00340A5C 48 00 00 B0 */ b lbl_80344EAC
+lbl_80344E00:
+/* 80344E00 00340A60 80 1C 00 00 */ lwz r0, 0(r28)
+/* 80344E04 00340A64 38 60 00 00 */ li r3, 0
+/* 80344E08 00340A68 83 7C 00 40 */ lwz r27, 0x40(r28)
+/* 80344E0C 00340A6C 2C 00 00 69 */ cmpwi r0, 0x69
+/* 80344E10 00340A70 41 82 00 2C */ beq lbl_80344E3C
+/* 80344E14 00340A74 80 1C 00 04 */ lwz r0, 4(r28)
+/* 80344E18 00340A78 2C 00 00 00 */ cmpwi r0, 0
+/* 80344E1C 00340A7C 41 82 00 14 */ beq lbl_80344E30
+/* 80344E20 00340A80 7F E3 FB 78 */ mr r3, r31
+/* 80344E24 00340A84 7F 84 E3 78 */ mr r4, r28
+/* 80344E28 00340A88 4B FF F3 BD */ bl gpiProcessPeerInitiatingConnection
+/* 80344E2C 00340A8C 48 00 00 10 */ b lbl_80344E3C
+lbl_80344E30:
+/* 80344E30 00340A90 7F E3 FB 78 */ mr r3, r31
+/* 80344E34 00340A94 7F 84 E3 78 */ mr r4, r28
+/* 80344E38 00340A98 4B FF F7 0D */ bl gpiProcessPeerAcceptingConnection
+lbl_80344E3C:
+/* 80344E3C 00340A9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80344E40 00340AA0 40 82 00 1C */ bne lbl_80344E5C
+/* 80344E44 00340AA4 80 1C 00 00 */ lwz r0, 0(r28)
+/* 80344E48 00340AA8 2C 00 00 69 */ cmpwi r0, 0x69
+/* 80344E4C 00340AAC 40 82 00 10 */ bne lbl_80344E5C
+/* 80344E50 00340AB0 7F E3 FB 78 */ mr r3, r31
+/* 80344E54 00340AB4 7F 84 E3 78 */ mr r4, r28
+/* 80344E58 00340AB8 4B FF F8 ED */ bl gpiProcessPeerConnected
+lbl_80344E5C:
+/* 80344E5C 00340ABC 80 1C 00 00 */ lwz r0, 0(r28)
+/* 80344E60 00340AC0 2C 00 00 6A */ cmpwi r0, 0x6a
+/* 80344E64 00340AC4 41 82 00 38 */ beq lbl_80344E9C
+/* 80344E68 00340AC8 2C 03 00 00 */ cmpwi r3, 0
+/* 80344E6C 00340ACC 40 82 00 30 */ bne lbl_80344E9C
+/* 80344E70 00340AD0 38 60 00 00 */ li r3, 0
+/* 80344E74 00340AD4 4B FF 3C 95 */ bl gsiTimeInSec
+/* 80344E78 00340AD8 80 1C 00 10 */ lwz r0, 0x10(r28)
+/* 80344E7C 00340ADC 6C 65 80 00 */ xoris r5, r3, 0x8000
+/* 80344E80 00340AE0 80 7C 00 14 */ lwz r3, 0x14(r28)
+/* 80344E84 00340AE4 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 80344E88 00340AE8 7C 64 18 10 */ subfc r3, r4, r3
+/* 80344E8C 00340AEC 7C A5 01 10 */ subfe r5, r5, r0
+/* 80344E90 00340AF0 7C A0 01 10 */ subfe r5, r0, r0
+/* 80344E94 00340AF4 7C A5 00 D1 */ neg. r5, r5
+/* 80344E98 00340AF8 41 82 00 10 */ beq lbl_80344EA8
+lbl_80344E9C:
+/* 80344E9C 00340AFC 7F E3 FB 78 */ mr r3, r31
+/* 80344EA0 00340B00 7F 84 E3 78 */ mr r4, r28
+/* 80344EA4 00340B04 4B FF FC C5 */ bl gpiRemovePeer
+lbl_80344EA8:
+/* 80344EA8 00340B08 7F 7C DB 78 */ mr r28, r27
+lbl_80344EAC:
+/* 80344EAC 00340B0C 2C 1C 00 00 */ cmpwi r28, 0
+/* 80344EB0 00340B10 40 82 FF 50 */ bne lbl_80344E00
+/* 80344EB4 00340B14 39 61 00 20 */ addi r11, r1, 0x20
+/* 80344EB8 00340B18 38 60 00 00 */ li r3, 0
+/* 80344EBC 00340B1C 4B E8 22 B5 */ bl _restgpr_26
+/* 80344EC0 00340B20 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80344EC4 00340B24 7C 08 03 A6 */ mtlr r0
+/* 80344EC8 00340B28 38 21 00 20 */ addi r1, r1, 0x20
+/* 80344ECC 00340B2C 4E 80 00 20 */ blr
+
+.global gpiGetConnectedPeer
+gpiGetConnectedPeer:
+/* 80344ED0 00340B30 80 63 00 00 */ lwz r3, 0(r3)
+/* 80344ED4 00340B34 80 63 04 50 */ lwz r3, 0x450(r3)
+/* 80344ED8 00340B38 48 00 00 20 */ b lbl_80344EF8
+lbl_80344EDC:
+/* 80344EDC 00340B3C 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80344EE0 00340B40 7C 00 20 00 */ cmpw r0, r4
+/* 80344EE4 00340B44 40 82 00 10 */ bne lbl_80344EF4
+/* 80344EE8 00340B48 80 03 00 00 */ lwz r0, 0(r3)
+/* 80344EEC 00340B4C 2C 00 00 69 */ cmpwi r0, 0x69
+/* 80344EF0 00340B50 4D 82 00 20 */ beqlr
+lbl_80344EF4:
+/* 80344EF4 00340B54 80 63 00 40 */ lwz r3, 0x40(r3)
+lbl_80344EF8:
+/* 80344EF8 00340B58 2C 03 00 00 */ cmpwi r3, 0
+/* 80344EFC 00340B5C 40 82 FF E0 */ bne lbl_80344EDC
+/* 80344F00 00340B60 38 60 00 00 */ li r3, 0
+/* 80344F04 00340B64 4E 80 00 20 */ blr
+
+.global gpiFreeMessage
+gpiFreeMessage:
+/* 80344F08 00340B68 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80344F0C 00340B6C 7C 08 02 A6 */ mflr r0
+/* 80344F10 00340B70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80344F14 00340B74 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80344F18 00340B78 7C 7F 1B 78 */ mr r31, r3
+/* 80344F1C 00340B7C 80 63 00 00 */ lwz r3, 0(r3)
+/* 80344F20 00340B80 4B FF 44 19 */ bl gsifree
+/* 80344F24 00340B84 38 00 00 00 */ li r0, 0
+/* 80344F28 00340B88 90 1F 00 00 */ stw r0, 0(r31)
+/* 80344F2C 00340B8C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80344F30 00340B90 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80344F34 00340B94 7C 08 03 A6 */ mtlr r0
+/* 80344F38 00340B98 38 21 00 10 */ addi r1, r1, 0x10
+/* 80344F3C 00340B9C 4E 80 00 20 */ blr
+
+.global gpiAddPeer
+gpiAddPeer:
+/* 80344F40 00340BA0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80344F44 00340BA4 7C 08 02 A6 */ mflr r0
+/* 80344F48 00340BA8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80344F4C 00340BAC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80344F50 00340BB0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80344F54 00340BB4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80344F58 00340BB8 7C BD 2B 78 */ mr r29, r5
+/* 80344F5C 00340BBC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80344F60 00340BC0 7C 9C 23 78 */ mr r28, r4
+/* 80344F64 00340BC4 83 C3 00 00 */ lwz r30, 0(r3)
+/* 80344F68 00340BC8 38 60 00 48 */ li r3, 0x48
+/* 80344F6C 00340BCC 4B FF 43 A9 */ bl gsimalloc
+/* 80344F70 00340BD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80344F74 00340BD4 7C 7F 1B 78 */ mr r31, r3
+/* 80344F78 00340BD8 40 82 00 0C */ bne lbl_80344F84
+/* 80344F7C 00340BDC 38 60 00 00 */ li r3, 0
+/* 80344F80 00340BE0 48 00 00 70 */ b lbl_80344FF0
+lbl_80344F84:
+/* 80344F84 00340BE4 38 80 00 00 */ li r4, 0
+/* 80344F88 00340BE8 38 A0 00 48 */ li r5, 0x48
+/* 80344F8C 00340BEC 4B CB F1 79 */ bl memset
+/* 80344F90 00340BF0 38 60 00 64 */ li r3, 0x64
+/* 80344F94 00340BF4 38 00 FF FF */ li r0, -1
+/* 80344F98 00340BF8 90 7F 00 00 */ stw r3, 0(r31)
+/* 80344F9C 00340BFC 38 60 00 00 */ li r3, 0
+/* 80344FA0 00340C00 93 BF 00 04 */ stw r29, 4(r31)
+/* 80344FA4 00340C04 90 1F 00 08 */ stw r0, 8(r31)
+/* 80344FA8 00340C08 93 9F 00 0C */ stw r28, 0xc(r31)
+/* 80344FAC 00340C0C 4B FF 3B 5D */ bl gsiTimeInSec
+/* 80344FB0 00340C10 38 00 01 2C */ li r0, 0x12c
+/* 80344FB4 00340C14 3C A0 80 34 */ lis r5, gpiFreeMessage@ha
+/* 80344FB8 00340C18 7C 04 00 14 */ addc r0, r4, r0
+/* 80344FBC 00340C1C 38 80 00 00 */ li r4, 0
+/* 80344FC0 00340C20 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 80344FC4 00340C24 7C 03 21 14 */ adde r0, r3, r4
+/* 80344FC8 00340C28 38 A5 4F 08 */ addi r5, r5, gpiFreeMessage@l
+/* 80344FCC 00340C2C 38 60 00 18 */ li r3, 0x18
+/* 80344FD0 00340C30 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 80344FD4 00340C34 38 80 00 00 */ li r4, 0
+/* 80344FD8 00340C38 80 1E 04 50 */ lwz r0, 0x450(r30)
+/* 80344FDC 00340C3C 90 1F 00 40 */ stw r0, 0x40(r31)
+/* 80344FE0 00340C40 4B FF 0D D9 */ bl ArrayNew
+/* 80344FE4 00340C44 90 7F 00 3C */ stw r3, 0x3c(r31)
+/* 80344FE8 00340C48 7F E3 FB 78 */ mr r3, r31
+/* 80344FEC 00340C4C 93 FE 04 50 */ stw r31, 0x450(r30)
+lbl_80344FF0:
+/* 80344FF0 00340C50 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80344FF4 00340C54 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80344FF8 00340C58 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80344FFC 00340C5C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80345000 00340C60 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80345004 00340C64 7C 08 03 A6 */ mtlr r0
+/* 80345008 00340C68 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034500C 00340C6C 4E 80 00 20 */ blr
+
+.global gpiPeerGetSig
+gpiPeerGetSig:
+/* 80345010 00340C70 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80345014 00340C74 7C 08 02 A6 */ mflr r0
+/* 80345018 00340C78 38 A0 00 00 */ li r5, 0
+/* 8034501C 00340C7C 38 E0 00 00 */ li r7, 0
+/* 80345020 00340C80 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80345024 00340C84 38 C1 00 08 */ addi r6, r1, 8
+/* 80345028 00340C88 39 00 00 00 */ li r8, 0
+/* 8034502C 00340C8C 39 20 00 00 */ li r9, 0
+/* 80345030 00340C90 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80345034 00340C94 7C 9F 23 78 */ mr r31, r4
+/* 80345038 00340C98 38 80 00 02 */ li r4, 2
+/* 8034503C 00340C9C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80345040 00340CA0 7C 7E 1B 78 */ mr r30, r3
+/* 80345044 00340CA4 4B FF EE 99 */ bl gpiAddOperation
+/* 80345048 00340CA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034504C 00340CAC 41 82 00 08 */ beq lbl_80345054
+/* 80345050 00340CB0 48 00 00 30 */ b lbl_80345080
+lbl_80345054:
+/* 80345054 00340CB4 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80345058 00340CB8 7F C3 F3 78 */ mr r3, r30
+/* 8034505C 00340CBC 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 80345060 00340CC0 80 A5 00 18 */ lwz r5, 0x18(r5)
+/* 80345064 00340CC4 4B FF E7 2D */ bl gpiSendGetInfo
+/* 80345068 00340CC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034506C 00340CCC 41 82 00 08 */ beq lbl_80345074
+/* 80345070 00340CD0 48 00 00 10 */ b lbl_80345080
+lbl_80345074:
+/* 80345074 00340CD4 38 00 00 65 */ li r0, 0x65
+/* 80345078 00340CD8 38 60 00 00 */ li r3, 0
+/* 8034507C 00340CDC 90 1F 00 00 */ stw r0, 0(r31)
+lbl_80345080:
+/* 80345080 00340CE0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80345084 00340CE4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80345088 00340CE8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034508C 00340CEC 7C 08 03 A6 */ mtlr r0
+/* 80345090 00340CF0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80345094 00340CF4 4E 80 00 20 */ blr
+
+.global gpiPeerStartConnect
+gpiPeerStartConnect:
+/* 80345098 00340CF8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034509C 00340CFC 7C 08 02 A6 */ mflr r0
+/* 803450A0 00340D00 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803450A4 00340D04 39 61 00 30 */ addi r11, r1, 0x30
+/* 803450A8 00340D08 4B E8 20 81 */ bl _savegpr_27
+/* 803450AC 00340D0C 7C 9C 23 78 */ mr r28, r4
+/* 803450B0 00340D10 3F C0 80 45 */ lis r30, lbl_8044AF50@ha
+/* 803450B4 00340D14 80 84 00 0C */ lwz r4, 0xc(r4)
+/* 803450B8 00340D18 7C 7B 1B 78 */ mr r27, r3
+/* 803450BC 00340D1C 3B DE AF 50 */ addi r30, r30, lbl_8044AF50@l
+/* 803450C0 00340D20 38 A1 00 08 */ addi r5, r1, 8
+/* 803450C4 00340D24 48 00 08 0D */ bl gpiGetProfile
+/* 803450C8 00340D28 2C 03 00 00 */ cmpwi r3, 0
+/* 803450CC 00340D2C 40 82 00 18 */ bne lbl_803450E4
+/* 803450D0 00340D30 7F 63 DB 78 */ mr r3, r27
+/* 803450D4 00340D34 38 9E 00 00 */ addi r4, r30, 0
+/* 803450D8 00340D38 48 00 33 81 */ bl gpiSetErrorString
+/* 803450DC 00340D3C 38 60 00 03 */ li r3, 3
+/* 803450E0 00340D40 48 00 01 98 */ b lbl_80345278
+lbl_803450E4:
+/* 803450E4 00340D44 38 60 00 02 */ li r3, 2
+/* 803450E8 00340D48 38 80 00 01 */ li r4, 1
+/* 803450EC 00340D4C 38 A0 00 00 */ li r5, 0
+/* 803450F0 00340D50 4B FF 2A D5 */ bl socket
+/* 803450F4 00340D54 2C 03 FF FF */ cmpwi r3, -1
+/* 803450F8 00340D58 90 7C 00 08 */ stw r3, 8(r28)
+/* 803450FC 00340D5C 40 82 00 2C */ bne lbl_80345128
+/* 80345100 00340D60 7F 63 DB 78 */ mr r3, r27
+/* 80345104 00340D64 38 BE 00 70 */ addi r5, r30, 0x70
+/* 80345108 00340D68 38 80 00 05 */ li r4, 5
+/* 8034510C 00340D6C 48 00 32 FD */ bl gpiSetError
+/* 80345110 00340D70 7F 63 DB 78 */ mr r3, r27
+/* 80345114 00340D74 38 80 00 03 */ li r4, 3
+/* 80345118 00340D78 38 A0 00 00 */ li r5, 0
+/* 8034511C 00340D7C 4B FF AB 4D */ bl gpiCallErrorCallback
+/* 80345120 00340D80 38 60 00 03 */ li r3, 3
+/* 80345124 00340D84 48 00 01 54 */ b lbl_80345278
+lbl_80345128:
+/* 80345128 00340D88 38 80 00 00 */ li r4, 0
+/* 8034512C 00340D8C 4B FF 35 29 */ bl SetSockBlocking
+/* 80345130 00340D90 2C 03 00 00 */ cmpwi r3, 0
+/* 80345134 00340D94 40 82 00 2C */ bne lbl_80345160
+/* 80345138 00340D98 7F 63 DB 78 */ mr r3, r27
+/* 8034513C 00340D9C 38 BE 00 98 */ addi r5, r30, 0x98
+/* 80345140 00340DA0 38 80 00 05 */ li r4, 5
+/* 80345144 00340DA4 48 00 32 C5 */ bl gpiSetError
+/* 80345148 00340DA8 7F 63 DB 78 */ mr r3, r27
+/* 8034514C 00340DAC 38 80 00 03 */ li r4, 3
+/* 80345150 00340DB0 38 A0 00 00 */ li r5, 0
+/* 80345154 00340DB4 4B FF AB 15 */ bl gpiCallErrorCallback
+/* 80345158 00340DB8 38 60 00 03 */ li r3, 3
+/* 8034515C 00340DBC 48 00 01 1C */ b lbl_80345278
+lbl_80345160:
+/* 80345160 00340DC0 83 BC 00 08 */ lwz r29, 8(r28)
+/* 80345164 00340DC4 38 80 40 00 */ li r4, 0x4000
+/* 80345168 00340DC8 7F A3 EB 78 */ mr r3, r29
+/* 8034516C 00340DCC 4B FF 35 61 */ bl SetReceiveBufferSize
+/* 80345170 00340DD0 3F E0 00 01 */ lis r31, 0x00008000@ha
+/* 80345174 00340DD4 7F A3 EB 78 */ mr r3, r29
+/* 80345178 00340DD8 38 9F 80 00 */ addi r4, r31, 0x00008000@l
+/* 8034517C 00340DDC 4B FF 35 51 */ bl SetReceiveBufferSize
+/* 80345180 00340DE0 7F A3 EB 78 */ mr r3, r29
+/* 80345184 00340DE4 3C 80 00 01 */ lis r4, 1
+/* 80345188 00340DE8 4B FF 35 45 */ bl SetReceiveBufferSize
+/* 8034518C 00340DEC 7F A3 EB 78 */ mr r3, r29
+/* 80345190 00340DF0 3C 80 00 02 */ lis r4, 2
+/* 80345194 00340DF4 4B FF 35 39 */ bl SetReceiveBufferSize
+/* 80345198 00340DF8 7F A3 EB 78 */ mr r3, r29
+/* 8034519C 00340DFC 3C 80 00 04 */ lis r4, 4
+/* 803451A0 00340E00 4B FF 35 2D */ bl SetReceiveBufferSize
+/* 803451A4 00340E04 7F A3 EB 78 */ mr r3, r29
+/* 803451A8 00340E08 38 80 40 00 */ li r4, 0x4000
+/* 803451AC 00340E0C 4B FF 35 7D */ bl SetSendBufferSize
+/* 803451B0 00340E10 7F A3 EB 78 */ mr r3, r29
+/* 803451B4 00340E14 38 9F 80 00 */ addi r4, r31, -32768
+/* 803451B8 00340E18 4B FF 35 71 */ bl SetSendBufferSize
+/* 803451BC 00340E1C 7F A3 EB 78 */ mr r3, r29
+/* 803451C0 00340E20 3C 80 00 01 */ lis r4, 1
+/* 803451C4 00340E24 4B FF 35 65 */ bl SetSendBufferSize
+/* 803451C8 00340E28 7F A3 EB 78 */ mr r3, r29
+/* 803451CC 00340E2C 4B FF 35 B9 */ bl GetReceiveBufferSize
+/* 803451D0 00340E30 7F A3 EB 78 */ mr r3, r29
+/* 803451D4 00340E34 4B FF 36 15 */ bl GetSendBufferSize
+/* 803451D8 00340E38 38 61 00 10 */ addi r3, r1, 0x10
+/* 803451DC 00340E3C 38 80 00 00 */ li r4, 0
+/* 803451E0 00340E40 38 A0 00 08 */ li r5, 8
+/* 803451E4 00340E44 4B CB EF 21 */ bl memset
+/* 803451E8 00340E48 38 00 00 02 */ li r0, 2
+/* 803451EC 00340E4C 80 C1 00 08 */ lwz r6, 8(r1)
+/* 803451F0 00340E50 98 01 00 11 */ stb r0, 0x11(r1)
+/* 803451F4 00340E54 38 81 00 10 */ addi r4, r1, 0x10
+/* 803451F8 00340E58 38 A0 00 08 */ li r5, 8
+/* 803451FC 00340E5C 80 66 00 08 */ lwz r3, 8(r6)
+/* 80345200 00340E60 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 80345204 00340E64 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80345208 00340E68 80 66 00 08 */ lwz r3, 8(r6)
+/* 8034520C 00340E6C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80345210 00340E70 B0 01 00 12 */ sth r0, 0x12(r1)
+/* 80345214 00340E74 80 7C 00 08 */ lwz r3, 8(r28)
+/* 80345218 00340E78 4B FF 2A C5 */ bl connect
+/* 8034521C 00340E7C 2C 03 FF FF */ cmpwi r3, -1
+/* 80345220 00340E80 40 82 00 4C */ bne lbl_8034526C
+/* 80345224 00340E84 80 7C 00 08 */ lwz r3, 8(r28)
+/* 80345228 00340E88 4B FF 2D 81 */ bl GOAGetLastError
+/* 8034522C 00340E8C 2C 03 FF FA */ cmpwi r3, -6
+/* 80345230 00340E90 41 82 00 3C */ beq lbl_8034526C
+/* 80345234 00340E94 2C 03 FF E6 */ cmpwi r3, -26
+/* 80345238 00340E98 41 82 00 34 */ beq lbl_8034526C
+/* 8034523C 00340E9C 2C 03 FF B4 */ cmpwi r3, -76
+/* 80345240 00340EA0 41 82 00 2C */ beq lbl_8034526C
+/* 80345244 00340EA4 7F 63 DB 78 */ mr r3, r27
+/* 80345248 00340EA8 38 BE 00 D0 */ addi r5, r30, 0xd0
+/* 8034524C 00340EAC 38 80 00 05 */ li r4, 5
+/* 80345250 00340EB0 48 00 31 B9 */ bl gpiSetError
+/* 80345254 00340EB4 7F 63 DB 78 */ mr r3, r27
+/* 80345258 00340EB8 38 80 00 03 */ li r4, 3
+/* 8034525C 00340EBC 38 A0 00 01 */ li r5, 1
+/* 80345260 00340EC0 4B FF AA 09 */ bl gpiCallErrorCallback
+/* 80345264 00340EC4 38 60 00 03 */ li r3, 3
+/* 80345268 00340EC8 48 00 00 10 */ b lbl_80345278
+lbl_8034526C:
+/* 8034526C 00340ECC 38 00 00 67 */ li r0, 0x67
+/* 80345270 00340ED0 38 60 00 00 */ li r3, 0
+/* 80345274 00340ED4 90 1C 00 00 */ stw r0, 0(r28)
+lbl_80345278:
+/* 80345278 00340ED8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034527C 00340EDC 4B E8 1E F9 */ bl _restgpr_27
+/* 80345280 00340EE0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80345284 00340EE4 7C 08 03 A6 */ mtlr r0
+/* 80345288 00340EE8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034528C 00340EEC 4E 80 00 20 */ blr
+
+.global gpiPeerAddMessage
+gpiPeerAddMessage:
+/* 80345290 00340EF0 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80345294 00340EF4 7C 08 02 A6 */ mflr r0
+/* 80345298 00340EF8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8034529C 00340EFC 39 61 00 40 */ addi r11, r1, 0x40
+/* 803452A0 00340F00 4B E8 1E 89 */ bl _savegpr_27
+/* 803452A4 00340F04 7C DE 33 78 */ mr r30, r6
+/* 803452A8 00340F08 7C 7B 1B 78 */ mr r27, r3
+/* 803452AC 00340F0C 7C 9C 23 78 */ mr r28, r4
+/* 803452B0 00340F10 7C BD 2B 78 */ mr r29, r5
+/* 803452B4 00340F14 7F C3 F3 78 */ mr r3, r30
+/* 803452B8 00340F18 4B E8 18 AD */ bl strlen
+/* 803452BC 00340F1C 7C 7F 1B 78 */ mr r31, r3
+/* 803452C0 00340F20 38 61 00 08 */ addi r3, r1, 8
+/* 803452C4 00340F24 38 80 00 00 */ li r4, 0
+/* 803452C8 00340F28 38 A0 00 18 */ li r5, 0x18
+/* 803452CC 00340F2C 4B CB EE 39 */ bl memset
+/* 803452D0 00340F30 93 A1 00 18 */ stw r29, 0x18(r1)
+/* 803452D4 00340F34 7F 63 DB 78 */ mr r3, r27
+/* 803452D8 00340F38 38 81 00 08 */ addi r4, r1, 8
+/* 803452DC 00340F3C 38 AD 91 8C */ addi r5, r13, lbl_8063E44C-_SDA_BASE_
+/* 803452E0 00340F40 4B FF A1 C1 */ bl gpiAppendStringToBuffer
+/* 803452E4 00340F44 2C 03 00 00 */ cmpwi r3, 0
+/* 803452E8 00340F48 41 82 00 08 */ beq lbl_803452F0
+/* 803452EC 00340F4C 48 00 00 E8 */ b lbl_803453D4
+lbl_803452F0:
+/* 803452F0 00340F50 7F 63 DB 78 */ mr r3, r27
+/* 803452F4 00340F54 7F A5 EB 78 */ mr r5, r29
+/* 803452F8 00340F58 38 81 00 08 */ addi r4, r1, 8
+/* 803452FC 00340F5C 4B FF A2 01 */ bl gpiAppendIntToBuffer
+/* 80345300 00340F60 2C 03 00 00 */ cmpwi r3, 0
+/* 80345304 00340F64 41 82 00 08 */ beq lbl_8034530C
+/* 80345308 00340F68 48 00 00 CC */ b lbl_803453D4
+lbl_8034530C:
+/* 8034530C 00340F6C 7F 63 DB 78 */ mr r3, r27
+/* 80345310 00340F70 38 81 00 08 */ addi r4, r1, 8
+/* 80345314 00340F74 38 AD 91 90 */ addi r5, r13, lbl_8063E450-_SDA_BASE_
+/* 80345318 00340F78 4B FF A1 89 */ bl gpiAppendStringToBuffer
+/* 8034531C 00340F7C 2C 03 00 00 */ cmpwi r3, 0
+/* 80345320 00340F80 41 82 00 08 */ beq lbl_80345328
+/* 80345324 00340F84 48 00 00 B0 */ b lbl_803453D4
+lbl_80345328:
+/* 80345328 00340F88 7F 63 DB 78 */ mr r3, r27
+/* 8034532C 00340F8C 7F E5 FB 78 */ mr r5, r31
+/* 80345330 00340F90 38 81 00 08 */ addi r4, r1, 8
+/* 80345334 00340F94 4B FF A1 C9 */ bl gpiAppendIntToBuffer
+/* 80345338 00340F98 2C 03 00 00 */ cmpwi r3, 0
+/* 8034533C 00340F9C 41 82 00 08 */ beq lbl_80345344
+/* 80345340 00340FA0 48 00 00 94 */ b lbl_803453D4
+lbl_80345344:
+/* 80345344 00340FA4 7F 63 DB 78 */ mr r3, r27
+/* 80345348 00340FA8 38 81 00 08 */ addi r4, r1, 8
+/* 8034534C 00340FAC 38 AD 91 98 */ addi r5, r13, lbl_8063E458-_SDA_BASE_
+/* 80345350 00340FB0 4B FF A1 51 */ bl gpiAppendStringToBuffer
+/* 80345354 00340FB4 2C 03 00 00 */ cmpwi r3, 0
+/* 80345358 00340FB8 41 82 00 08 */ beq lbl_80345360
+/* 8034535C 00340FBC 48 00 00 78 */ b lbl_803453D4
+lbl_80345360:
+/* 80345360 00340FC0 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80345364 00340FC4 7F 63 DB 78 */ mr r3, r27
+/* 80345368 00340FC8 7F C5 F3 78 */ mr r5, r30
+/* 8034536C 00340FCC 7F E6 FB 78 */ mr r6, r31
+/* 80345370 00340FD0 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 80345374 00340FD4 38 81 00 08 */ addi r4, r1, 8
+/* 80345378 00340FD8 4B FF A0 4D */ bl gpiAppendStringToBufferLen
+/* 8034537C 00340FDC 2C 03 00 00 */ cmpwi r3, 0
+/* 80345380 00340FE0 41 82 00 08 */ beq lbl_80345388
+/* 80345384 00340FE4 48 00 00 50 */ b lbl_803453D4
+lbl_80345388:
+/* 80345388 00340FE8 7F 63 DB 78 */ mr r3, r27
+/* 8034538C 00340FEC 38 81 00 08 */ addi r4, r1, 8
+/* 80345390 00340FF0 38 A0 00 00 */ li r5, 0
+/* 80345394 00340FF4 4B FF 9F 89 */ bl gpiAppendCharToBuffer
+/* 80345398 00340FF8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034539C 00340FFC 41 82 00 08 */ beq lbl_803453A4
+/* 803453A0 00341000 48 00 00 34 */ b lbl_803453D4
+lbl_803453A4:
+/* 803453A4 00341004 80 7C 00 3C */ lwz r3, 0x3c(r28)
+/* 803453A8 00341008 38 81 00 08 */ addi r4, r1, 8
+/* 803453AC 0034100C 4B FF 0B 75 */ bl ArrayAppend
+/* 803453B0 00341010 38 60 00 00 */ li r3, 0
+/* 803453B4 00341014 4B FF 37 55 */ bl gsiTimeInSec
+/* 803453B8 00341018 38 A0 01 2C */ li r5, 0x12c
+/* 803453BC 0034101C 38 00 00 00 */ li r0, 0
+/* 803453C0 00341020 7C 84 28 14 */ addc r4, r4, r5
+/* 803453C4 00341024 7C 03 01 14 */ adde r0, r3, r0
+/* 803453C8 00341028 90 9C 00 14 */ stw r4, 0x14(r28)
+/* 803453CC 0034102C 38 60 00 00 */ li r3, 0
+/* 803453D0 00341030 90 1C 00 10 */ stw r0, 0x10(r28)
+lbl_803453D4:
+/* 803453D4 00341034 39 61 00 40 */ addi r11, r1, 0x40
+/* 803453D8 00341038 4B E8 1D 9D */ bl _restgpr_27
+/* 803453DC 0034103C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 803453E0 00341040 7C 08 03 A6 */ mtlr r0
+/* 803453E4 00341044 38 21 00 40 */ addi r1, r1, 0x40
+/* 803453E8 00341048 4E 80 00 20 */ blr
+
+.global gpiPeerStartTransferMessage
+gpiPeerStartTransferMessage:
+/* 803453EC 0034104C 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 803453F0 00341050 7C 08 02 A6 */ mflr r0
+/* 803453F4 00341054 7C C8 33 78 */ mr r8, r6
+/* 803453F8 00341058 80 C6 00 00 */ lwz r6, 0(r6)
+/* 803453FC 0034105C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80345400 00341060 3D 20 80 45 */ lis r9, lbl_8044B048@ha
+/* 80345404 00341064 80 E8 00 04 */ lwz r7, 4(r8)
+/* 80345408 00341068 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 8034540C 0034106C 7C 9F 23 78 */ mr r31, r4
+/* 80345410 00341070 81 08 00 08 */ lwz r8, 8(r8)
+/* 80345414 00341074 38 89 B0 48 */ addi r4, r9, lbl_8044B048@l
+/* 80345418 00341078 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 8034541C 0034107C 7C 7E 1B 78 */ mr r30, r3
+/* 80345420 00341080 38 61 00 08 */ addi r3, r1, 8
+/* 80345424 00341084 4C C6 31 82 */ crclr 6
+/* 80345428 00341088 4B E8 76 D5 */ bl sprintf
+/* 8034542C 0034108C 7F C3 F3 78 */ mr r3, r30
+/* 80345430 00341090 7F E4 FB 78 */ mr r4, r31
+/* 80345434 00341094 38 A1 00 08 */ addi r5, r1, 8
+/* 80345438 00341098 4B FF A3 C1 */ bl func_8033F7F8
+/* 8034543C 0034109C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80345440 003410A0 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 80345444 003410A4 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 80345448 003410A8 7C 08 03 A6 */ mtlr r0
+/* 8034544C 003410AC 38 21 00 50 */ addi r1, r1, 0x50
+/* 80345450 003410B0 4E 80 00 20 */ blr
+
+.global gpiPeerFinishTransferMessage
+gpiPeerFinishTransferMessage:
+/* 80345454 003410B4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80345458 003410B8 7C 08 02 A6 */ mflr r0
+/* 8034545C 003410BC 2C 05 00 00 */ cmpwi r5, 0
+/* 80345460 003410C0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80345464 003410C4 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 80345468 003410C8 7C DF 33 78 */ mr r31, r6
+/* 8034546C 003410CC 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 80345470 003410D0 7C BE 2B 78 */ mr r30, r5
+/* 80345474 003410D4 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 80345478 003410D8 7C 9D 23 78 */ mr r29, r4
+/* 8034547C 003410DC 93 81 00 30 */ stw r28, 0x30(r1)
+/* 80345480 003410E0 7C 7C 1B 78 */ mr r28, r3
+/* 80345484 003410E4 40 82 00 08 */ bne lbl_8034548C
+/* 80345488 003410E8 3B CD 91 A0 */ addi r30, r13, lbl_8063E460-_SDA_BASE_
+lbl_8034548C:
+/* 8034548C 003410EC 2C 06 FF FF */ cmpwi r6, -1
+/* 80345490 003410F0 40 82 00 10 */ bne lbl_803454A0
+/* 80345494 003410F4 7F C3 F3 78 */ mr r3, r30
+/* 80345498 003410F8 4B E8 16 CD */ bl strlen
+/* 8034549C 003410FC 7C 7F 1B 78 */ mr r31, r3
+lbl_803454A0:
+/* 803454A0 00341100 3C 80 80 45 */ lis r4, lbl_8044B05C@ha
+/* 803454A4 00341104 7F E5 FB 78 */ mr r5, r31
+/* 803454A8 00341108 38 61 00 08 */ addi r3, r1, 8
+/* 803454AC 0034110C 38 84 B0 5C */ addi r4, r4, lbl_8044B05C@l
+/* 803454B0 00341110 4C C6 31 82 */ crclr 6
+/* 803454B4 00341114 4B E8 76 49 */ bl sprintf
+/* 803454B8 00341118 7F 83 E3 78 */ mr r3, r28
+/* 803454BC 0034111C 7F A4 EB 78 */ mr r4, r29
+/* 803454C0 00341120 38 A1 00 08 */ addi r5, r1, 8
+/* 803454C4 00341124 4B FF A3 35 */ bl func_8033F7F8
+/* 803454C8 00341128 2C 03 00 00 */ cmpwi r3, 0
+/* 803454CC 0034112C 41 82 00 08 */ beq lbl_803454D4
+/* 803454D0 00341130 48 00 00 64 */ b lbl_80345534
+lbl_803454D4:
+/* 803454D4 00341134 7F 83 E3 78 */ mr r3, r28
+/* 803454D8 00341138 7F A4 EB 78 */ mr r4, r29
+/* 803454DC 0034113C 7F C5 F3 78 */ mr r5, r30
+/* 803454E0 00341140 7F E6 FB 78 */ mr r6, r31
+/* 803454E4 00341144 4B FF A2 29 */ bl gpiSendOrBufferStringLen
+/* 803454E8 00341148 2C 03 00 00 */ cmpwi r3, 0
+/* 803454EC 0034114C 41 82 00 08 */ beq lbl_803454F4
+/* 803454F0 00341150 48 00 00 44 */ b lbl_80345534
+lbl_803454F4:
+/* 803454F4 00341154 7F 83 E3 78 */ mr r3, r28
+/* 803454F8 00341158 7F A4 EB 78 */ mr r4, r29
+/* 803454FC 0034115C 38 A0 00 00 */ li r5, 0
+/* 80345500 00341160 4B FF A1 61 */ bl gpiSendOrBufferChar
+/* 80345504 00341164 2C 03 00 00 */ cmpwi r3, 0
+/* 80345508 00341168 41 82 00 08 */ beq lbl_80345510
+/* 8034550C 0034116C 48 00 00 28 */ b lbl_80345534
+lbl_80345510:
+/* 80345510 00341170 38 60 00 00 */ li r3, 0
+/* 80345514 00341174 4B FF 35 F5 */ bl gsiTimeInSec
+/* 80345518 00341178 38 A0 01 2C */ li r5, 0x12c
+/* 8034551C 0034117C 38 00 00 00 */ li r0, 0
+/* 80345520 00341180 7C 84 28 14 */ addc r4, r4, r5
+/* 80345524 00341184 7C 03 01 14 */ adde r0, r3, r0
+/* 80345528 00341188 90 9D 00 14 */ stw r4, 0x14(r29)
+/* 8034552C 0034118C 38 60 00 00 */ li r3, 0
+/* 80345530 00341190 90 1D 00 10 */ stw r0, 0x10(r29)
+lbl_80345534:
+/* 80345534 00341194 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80345538 00341198 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 8034553C 0034119C 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 80345540 003411A0 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 80345544 003411A4 83 81 00 30 */ lwz r28, 0x30(r1)
+/* 80345548 003411A8 7C 08 03 A6 */ mtlr r0
+/* 8034554C 003411AC 38 21 00 40 */ addi r1, r1, 0x40
+/* 80345550 003411B0 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiProfile.s b/asm/SDK/DWC/gamespy/gpiProfile.s new file mode 100644 index 0000000..4c81980 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiProfile.s @@ -0,0 +1,573 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiProfilesTableHash
+gpiProfilesTableHash:
+/* 80345554 003411B4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80345558 003411B8 7C 03 23 D6 */ divw r0, r3, r4
+/* 8034555C 003411BC 7C 00 21 D6 */ mullw r0, r0, r4
+/* 80345560 003411C0 7C 60 18 50 */ subf r3, r0, r3
+/* 80345564 003411C4 4E 80 00 20 */ blr
+
+.global gpiProfilesTableCompare
+gpiProfilesTableCompare:
+/* 80345568 003411C8 80 84 00 00 */ lwz r4, 0(r4)
+/* 8034556C 003411CC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80345570 003411D0 7C 64 00 50 */ subf r3, r4, r0
+/* 80345574 003411D4 4E 80 00 20 */ blr
+
+.global gpiProfilesTableFree
+gpiProfilesTableFree:
+/* 80345578 003411D8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034557C 003411DC 7C 08 02 A6 */ mflr r0
+/* 80345580 003411E0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80345584 003411E4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80345588 003411E8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8034558C 003411EC 7C 7E 1B 78 */ mr r30, r3
+/* 80345590 003411F0 80 83 00 08 */ lwz r4, 8(r3)
+/* 80345594 003411F4 2C 04 00 00 */ cmpwi r4, 0
+/* 80345598 003411F8 41 82 00 38 */ beq lbl_803455D0
+/* 8034559C 003411FC 80 64 00 08 */ lwz r3, 8(r4)
+/* 803455A0 00341200 4B FF 3D 99 */ bl gsifree
+/* 803455A4 00341204 80 7E 00 08 */ lwz r3, 8(r30)
+/* 803455A8 00341208 3B E0 00 00 */ li r31, 0
+/* 803455AC 0034120C 93 E3 00 08 */ stw r31, 8(r3)
+/* 803455B0 00341210 80 7E 00 08 */ lwz r3, 8(r30)
+/* 803455B4 00341214 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 803455B8 00341218 4B FF 3D 81 */ bl gsifree
+/* 803455BC 0034121C 80 7E 00 08 */ lwz r3, 8(r30)
+/* 803455C0 00341220 93 E3 00 0C */ stw r31, 0xc(r3)
+/* 803455C4 00341224 80 7E 00 08 */ lwz r3, 8(r30)
+/* 803455C8 00341228 4B FF 3D 71 */ bl gsifree
+/* 803455CC 0034122C 93 FE 00 08 */ stw r31, 8(r30)
+lbl_803455D0:
+/* 803455D0 00341230 7F C3 F3 78 */ mr r3, r30
+/* 803455D4 00341234 4B FF E4 BD */ bl gpiFreeInfoCache
+/* 803455D8 00341238 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 803455DC 0034123C 4B FF 3D 5D */ bl gsifree
+/* 803455E0 00341240 3B E0 00 00 */ li r31, 0
+/* 803455E4 00341244 80 7E 00 18 */ lwz r3, 0x18(r30)
+/* 803455E8 00341248 93 FE 00 10 */ stw r31, 0x10(r30)
+/* 803455EC 0034124C 4B FF 3D 4D */ bl gsifree
+/* 803455F0 00341250 93 FE 00 18 */ stw r31, 0x18(r30)
+/* 803455F4 00341254 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803455F8 00341258 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803455FC 0034125C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80345600 00341260 7C 08 03 A6 */ mtlr r0
+/* 80345604 00341264 38 21 00 10 */ addi r1, r1, 0x10
+/* 80345608 00341268 4E 80 00 20 */ blr
+
+.global gpiInitProfiles
+gpiInitProfiles:
+/* 8034560C 0034126C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80345610 00341270 7C 08 02 A6 */ mflr r0
+/* 80345614 00341274 3C A0 80 34 */ lis r5, gpiProfilesTableHash@ha
+/* 80345618 00341278 3C C0 80 34 */ lis r6, gpiProfilesTableCompare@ha
+/* 8034561C 0034127C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80345620 00341280 3C E0 80 34 */ lis r7, gpiProfilesTableFree@ha
+/* 80345624 00341284 38 00 00 00 */ li r0, 0
+/* 80345628 00341288 38 A5 55 54 */ addi r5, r5, gpiProfilesTableHash@l
+/* 8034562C 0034128C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80345630 00341290 38 C6 55 68 */ addi r6, r6, gpiProfilesTableCompare@l
+/* 80345634 00341294 38 E7 55 78 */ addi r7, r7, gpiProfilesTableFree@l
+/* 80345638 00341298 38 80 00 20 */ li r4, 0x20
+/* 8034563C 0034129C 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80345640 003412A0 38 60 00 1C */ li r3, 0x1c
+/* 80345644 003412A4 90 1F 04 4C */ stw r0, 0x44c(r31)
+/* 80345648 003412A8 90 1F 04 48 */ stw r0, 0x448(r31)
+/* 8034564C 003412AC 4B FF 11 C1 */ bl TableNew
+/* 80345650 003412B0 7C 03 00 D0 */ neg r0, r3
+/* 80345654 003412B4 90 7F 04 44 */ stw r3, 0x444(r31)
+/* 80345658 003412B8 7C 00 1B 78 */ or r0, r0, r3
+/* 8034565C 003412BC 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80345660 003412C0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80345664 003412C4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80345668 003412C8 7C 08 03 A6 */ mtlr r0
+/* 8034566C 003412CC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80345670 003412D0 4E 80 00 20 */ blr
+
+.global gpiProcessNewProfile
+gpiProcessNewProfile:
+/* 80345674 003412D4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80345678 003412D8 7C 08 02 A6 */ mflr r0
+/* 8034567C 003412DC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80345680 003412E0 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 80345684 003412E4 7C BF 2B 78 */ mr r31, r5
+/* 80345688 003412E8 38 A0 00 01 */ li r5, 1
+/* 8034568C 003412EC 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 80345690 003412F0 3F C0 80 45 */ lis r30, lbl_8044B070@ha
+/* 80345694 003412F4 3B DE B0 70 */ addi r30, r30, lbl_8044B070@l
+/* 80345698 003412F8 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 8034569C 003412FC 7C 9D 23 78 */ mr r29, r4
+/* 803456A0 00341300 7F E4 FB 78 */ mr r4, r31
+/* 803456A4 00341304 93 81 00 30 */ stw r28, 0x30(r1)
+/* 803456A8 00341308 7C 7C 1B 78 */ mr r28, r3
+/* 803456AC 0034130C 48 00 28 E9 */ bl gpiCheckForError
+/* 803456B0 00341310 2C 03 00 00 */ cmpwi r3, 0
+/* 803456B4 00341314 41 82 00 0C */ beq lbl_803456C0
+/* 803456B8 00341318 38 60 00 04 */ li r3, 4
+/* 803456BC 0034131C 48 00 01 20 */ b lbl_803457DC
+lbl_803456C0:
+/* 803456C0 00341320 7F E3 FB 78 */ mr r3, r31
+/* 803456C4 00341324 38 8D 91 A8 */ addi r4, r13, lbl_8063E468-_SDA_BASE_
+/* 803456C8 00341328 38 A0 00 05 */ li r5, 5
+/* 803456CC 0034132C 4B E8 8E 9D */ bl strncmp
+/* 803456D0 00341330 2C 03 00 00 */ cmpwi r3, 0
+/* 803456D4 00341334 41 82 00 2C */ beq lbl_80345700
+/* 803456D8 00341338 7F 83 E3 78 */ mr r3, r28
+/* 803456DC 0034133C 38 BE 01 04 */ addi r5, r30, 0x104
+/* 803456E0 00341340 38 80 00 01 */ li r4, 1
+/* 803456E4 00341344 48 00 2D 25 */ bl gpiSetError
+/* 803456E8 00341348 7F 83 E3 78 */ mr r3, r28
+/* 803456EC 0034134C 38 80 00 03 */ li r4, 3
+/* 803456F0 00341350 38 A0 00 01 */ li r5, 1
+/* 803456F4 00341354 4B FF A5 75 */ bl gpiCallErrorCallback
+/* 803456F8 00341358 38 60 00 03 */ li r3, 3
+/* 803456FC 0034135C 48 00 00 E0 */ b lbl_803457DC
+lbl_80345700:
+/* 80345700 00341360 7F E3 FB 78 */ mr r3, r31
+/* 80345704 00341364 38 9E 01 34 */ addi r4, r30, 0x134
+/* 80345708 00341368 38 A1 00 18 */ addi r5, r1, 0x18
+/* 8034570C 0034136C 38 C0 00 10 */ li r6, 0x10
+/* 80345710 00341370 48 00 29 7D */ bl gpiValueForKey
+/* 80345714 00341374 2C 03 00 00 */ cmpwi r3, 0
+/* 80345718 00341378 40 82 00 2C */ bne lbl_80345744
+/* 8034571C 0034137C 7F 83 E3 78 */ mr r3, r28
+/* 80345720 00341380 38 BE 01 04 */ addi r5, r30, 0x104
+/* 80345724 00341384 38 80 00 01 */ li r4, 1
+/* 80345728 00341388 48 00 2C E1 */ bl gpiSetError
+/* 8034572C 0034138C 7F 83 E3 78 */ mr r3, r28
+/* 80345730 00341390 38 80 00 03 */ li r4, 3
+/* 80345734 00341394 38 A0 00 01 */ li r5, 1
+/* 80345738 00341398 4B FF A5 31 */ bl gpiCallErrorCallback
+/* 8034573C 0034139C 38 60 00 03 */ li r3, 3
+/* 80345740 003413A0 48 00 00 9C */ b lbl_803457DC
+lbl_80345744:
+/* 80345744 003413A4 38 61 00 18 */ addi r3, r1, 0x18
+/* 80345748 003413A8 4B E8 AF C5 */ bl atoi
+/* 8034574C 003413AC 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 80345750 003413B0 7C 7F 1B 78 */ mr r31, r3
+/* 80345754 003413B4 80 1D 00 10 */ lwz r0, 0x10(r29)
+/* 80345758 003413B8 2C 04 00 00 */ cmpwi r4, 0
+/* 8034575C 003413BC 90 81 00 10 */ stw r4, 0x10(r1)
+/* 80345760 003413C0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80345764 003413C4 41 82 00 68 */ beq lbl_803457CC
+/* 80345768 003413C8 38 60 00 08 */ li r3, 8
+/* 8034576C 003413CC 4B FF 3B A9 */ bl gsimalloc
+/* 80345770 003413D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80345774 003413D4 40 82 00 18 */ bne lbl_8034578C
+/* 80345778 003413D8 7F 83 E3 78 */ mr r3, r28
+/* 8034577C 003413DC 38 9E 01 40 */ addi r4, r30, 0x140
+/* 80345780 003413E0 48 00 2C D9 */ bl gpiSetErrorString
+/* 80345784 003413E4 38 60 00 01 */ li r3, 1
+/* 80345788 003413E8 48 00 00 54 */ b lbl_803457DC
+lbl_8034578C:
+/* 8034578C 003413EC 93 E3 00 04 */ stw r31, 4(r3)
+/* 80345790 003413F0 38 00 00 00 */ li r0, 0
+/* 80345794 003413F4 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 80345798 003413F8 7C 65 1B 78 */ mr r5, r3
+/* 8034579C 003413FC 90 03 00 00 */ stw r0, 0(r3)
+/* 803457A0 00341400 7F 83 E3 78 */ mr r3, r28
+/* 803457A4 00341404 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803457A8 00341408 7F A6 EB 78 */ mr r6, r29
+/* 803457AC 0034140C 90 81 00 08 */ stw r4, 8(r1)
+/* 803457B0 00341410 38 81 00 08 */ addi r4, r1, 8
+/* 803457B4 00341414 38 E0 00 00 */ li r7, 0
+/* 803457B8 00341418 90 01 00 0C */ stw r0, 0xc(r1)
+/* 803457BC 0034141C 4B FF A5 6D */ bl gpiAddCallback
+/* 803457C0 00341420 2C 03 00 00 */ cmpwi r3, 0
+/* 803457C4 00341424 41 82 00 08 */ beq lbl_803457CC
+/* 803457C8 00341428 48 00 00 14 */ b lbl_803457DC
+lbl_803457CC:
+/* 803457CC 0034142C 7F 83 E3 78 */ mr r3, r28
+/* 803457D0 00341430 7F A4 EB 78 */ mr r4, r29
+/* 803457D4 00341434 4B FF E8 89 */ bl gpiRemoveOperation
+/* 803457D8 00341438 38 60 00 00 */ li r3, 0
+lbl_803457DC:
+/* 803457DC 0034143C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 803457E0 00341440 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 803457E4 00341444 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 803457E8 00341448 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 803457EC 0034144C 83 81 00 30 */ lwz r28, 0x30(r1)
+/* 803457F0 00341450 7C 08 03 A6 */ mtlr r0
+/* 803457F4 00341454 38 21 00 40 */ addi r1, r1, 0x40
+/* 803457F8 00341458 4E 80 00 20 */ blr
+
+.global gpiProfileListAdd
+gpiProfileListAdd:
+/* 803457FC 0034145C 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 80345800 00341460 7C 08 02 A6 */ mflr r0
+/* 80345804 00341464 2C 04 00 00 */ cmpwi r4, 0
+/* 80345808 00341468 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8034580C 0034146C 93 E1 00 6C */ stw r31, 0x6c(r1)
+/* 80345810 00341470 93 C1 00 68 */ stw r30, 0x68(r1)
+/* 80345814 00341474 7C 9E 23 78 */ mr r30, r4
+/* 80345818 00341478 93 A1 00 64 */ stw r29, 0x64(r1)
+/* 8034581C 0034147C 7C 7D 1B 78 */ mr r29, r3
+/* 80345820 00341480 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80345824 00341484 41 81 00 0C */ bgt lbl_80345830
+/* 80345828 00341488 38 60 00 00 */ li r3, 0
+/* 8034582C 0034148C 48 00 00 88 */ b lbl_803458B4
+lbl_80345830:
+/* 80345830 00341490 90 81 00 24 */ stw r4, 0x24(r1)
+/* 80345834 00341494 38 81 00 24 */ addi r4, r1, 0x24
+/* 80345838 00341498 80 7F 04 44 */ lwz r3, 0x444(r31)
+/* 8034583C 0034149C 4B FF 12 E1 */ bl TableLookup
+/* 80345840 003414A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80345844 003414A4 41 82 00 08 */ beq lbl_8034584C
+/* 80345848 003414A8 48 00 00 6C */ b lbl_803458B4
+lbl_8034584C:
+/* 8034584C 003414AC 38 61 00 40 */ addi r3, r1, 0x40
+/* 80345850 003414B0 38 80 00 00 */ li r4, 0
+/* 80345854 003414B4 38 A0 00 1C */ li r5, 0x1c
+/* 80345858 003414B8 4B CB E8 AD */ bl memset
+/* 8034585C 003414BC 38 00 00 00 */ li r0, 0
+/* 80345860 003414C0 93 C1 00 40 */ stw r30, 0x40(r1)
+/* 80345864 003414C4 38 81 00 40 */ addi r4, r1, 0x40
+/* 80345868 003414C8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8034586C 003414CC 90 01 00 4C */ stw r0, 0x4c(r1)
+/* 80345870 003414D0 90 01 00 50 */ stw r0, 0x50(r1)
+/* 80345874 003414D4 90 01 00 58 */ stw r0, 0x58(r1)
+/* 80345878 003414D8 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8034587C 003414DC 80 7F 04 44 */ lwz r3, 0x444(r31)
+/* 80345880 003414E0 4B FF 11 51 */ bl TableEnter
+/* 80345884 003414E4 80 7F 04 48 */ lwz r3, 0x448(r31)
+/* 80345888 003414E8 38 81 00 08 */ addi r4, r1, 8
+/* 8034588C 003414EC 38 03 00 01 */ addi r0, r3, 1
+/* 80345890 003414F0 90 1F 04 48 */ stw r0, 0x448(r31)
+/* 80345894 003414F4 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80345898 003414F8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8034589C 003414FC 80 63 04 44 */ lwz r3, 0x444(r3)
+/* 803458A0 00341500 4B FF 12 7D */ bl TableLookup
+/* 803458A4 00341504 2C 03 00 00 */ cmpwi r3, 0
+/* 803458A8 00341508 41 82 00 08 */ beq lbl_803458B0
+/* 803458AC 0034150C 48 00 00 08 */ b lbl_803458B4
+lbl_803458B0:
+/* 803458B0 00341510 38 60 00 00 */ li r3, 0
+lbl_803458B4:
+/* 803458B4 00341514 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 803458B8 00341518 83 E1 00 6C */ lwz r31, 0x6c(r1)
+/* 803458BC 0034151C 83 C1 00 68 */ lwz r30, 0x68(r1)
+/* 803458C0 00341520 83 A1 00 64 */ lwz r29, 0x64(r1)
+/* 803458C4 00341524 7C 08 03 A6 */ mtlr r0
+/* 803458C8 00341528 38 21 00 70 */ addi r1, r1, 0x70
+/* 803458CC 0034152C 4E 80 00 20 */ blr
+
+.global gpiGetProfile
+gpiGetProfile:
+/* 803458D0 00341530 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803458D4 00341534 7C 08 02 A6 */ mflr r0
+/* 803458D8 00341538 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803458DC 0034153C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 803458E0 00341540 7C BF 2B 78 */ mr r31, r5
+/* 803458E4 00341544 80 63 00 00 */ lwz r3, 0(r3)
+/* 803458E8 00341548 90 81 00 08 */ stw r4, 8(r1)
+/* 803458EC 0034154C 38 81 00 08 */ addi r4, r1, 8
+/* 803458F0 00341550 80 63 04 44 */ lwz r3, 0x444(r3)
+/* 803458F4 00341554 4B FF 12 29 */ bl TableLookup
+/* 803458F8 00341558 2C 1F 00 00 */ cmpwi r31, 0
+/* 803458FC 0034155C 41 82 00 08 */ beq lbl_80345904
+/* 80345900 00341560 90 7F 00 00 */ stw r3, 0(r31)
+lbl_80345904:
+/* 80345904 00341564 7C 03 00 D0 */ neg r0, r3
+/* 80345908 00341568 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8034590C 0034156C 7C 00 1B 78 */ or r0, r0, r3
+/* 80345910 00341570 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80345914 00341574 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80345918 00341578 7C 08 03 A6 */ mtlr r0
+/* 8034591C 0034157C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80345920 00341580 4E 80 00 20 */ blr
+
+.global gpiProcessDeleteProfle
+gpiProcessDeleteProfle:
+/* 80345924 00341584 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80345928 00341588 7C 08 02 A6 */ mflr r0
+/* 8034592C 0034158C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80345930 00341590 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80345934 00341594 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80345938 00341598 7C BE 2B 78 */ mr r30, r5
+/* 8034593C 0034159C 38 A0 00 01 */ li r5, 1
+/* 80345940 003415A0 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80345944 003415A4 7C 9D 23 78 */ mr r29, r4
+/* 80345948 003415A8 7F C4 F3 78 */ mr r4, r30
+/* 8034594C 003415AC 93 81 00 20 */ stw r28, 0x20(r1)
+/* 80345950 003415B0 7C 7C 1B 78 */ mr r28, r3
+/* 80345954 003415B4 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80345958 003415B8 48 00 26 3D */ bl gpiCheckForError
+/* 8034595C 003415BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80345960 003415C0 41 82 00 0C */ beq lbl_8034596C
+/* 80345964 003415C4 38 60 00 04 */ li r3, 4
+/* 80345968 003415C8 48 00 00 DC */ b lbl_80345A44
+lbl_8034596C:
+/* 8034596C 003415CC 7F C3 F3 78 */ mr r3, r30
+/* 80345970 003415D0 38 8D 91 B0 */ addi r4, r13, lbl_8063E470-_SDA_BASE_
+/* 80345974 003415D4 38 A0 00 05 */ li r5, 5
+/* 80345978 003415D8 4B E8 8B F1 */ bl strncmp
+/* 8034597C 003415DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80345980 003415E0 41 82 00 30 */ beq lbl_803459B0
+/* 80345984 003415E4 3C A0 80 45 */ lis r5, lbl_8044B174@ha
+/* 80345988 003415E8 7F 83 E3 78 */ mr r3, r28
+/* 8034598C 003415EC 38 A5 B1 74 */ addi r5, r5, lbl_8044B174@l
+/* 80345990 003415F0 38 80 00 01 */ li r4, 1
+/* 80345994 003415F4 48 00 2A 75 */ bl gpiSetError
+/* 80345998 003415F8 7F 83 E3 78 */ mr r3, r28
+/* 8034599C 003415FC 38 80 00 03 */ li r4, 3
+/* 803459A0 00341600 38 A0 00 01 */ li r5, 1
+/* 803459A4 00341604 4B FF A2 C5 */ bl gpiCallErrorCallback
+/* 803459A8 00341608 38 60 00 03 */ li r3, 3
+/* 803459AC 0034160C 48 00 00 98 */ b lbl_80345A44
+lbl_803459B0:
+/* 803459B0 00341610 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 803459B4 00341614 80 1D 00 10 */ lwz r0, 0x10(r29)
+/* 803459B8 00341618 2C 03 00 00 */ cmpwi r3, 0
+/* 803459BC 0034161C 90 61 00 10 */ stw r3, 0x10(r1)
+/* 803459C0 00341620 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803459C4 00341624 41 82 00 70 */ beq lbl_80345A34
+/* 803459C8 00341628 38 60 00 08 */ li r3, 8
+/* 803459CC 0034162C 4B FF 39 49 */ bl gsimalloc
+/* 803459D0 00341630 2C 03 00 00 */ cmpwi r3, 0
+/* 803459D4 00341634 40 82 00 1C */ bne lbl_803459F0
+/* 803459D8 00341638 3C 80 80 45 */ lis r4, lbl_8044B1B0@ha
+/* 803459DC 0034163C 7F 83 E3 78 */ mr r3, r28
+/* 803459E0 00341640 38 84 B1 B0 */ addi r4, r4, lbl_8044B1B0@l
+/* 803459E4 00341644 48 00 2A 75 */ bl gpiSetErrorString
+/* 803459E8 00341648 38 60 00 01 */ li r3, 1
+/* 803459EC 0034164C 48 00 00 58 */ b lbl_80345A44
+lbl_803459F0:
+/* 803459F0 00341650 80 1F 01 A0 */ lwz r0, 0x1a0(r31)
+/* 803459F4 00341654 38 E0 00 00 */ li r7, 0
+/* 803459F8 00341658 81 01 00 10 */ lwz r8, 0x10(r1)
+/* 803459FC 0034165C 7C 65 1B 78 */ mr r5, r3
+/* 80345A00 00341660 90 03 00 04 */ stw r0, 4(r3)
+/* 80345A04 00341664 7F A6 EB 78 */ mr r6, r29
+/* 80345A08 00341668 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80345A0C 0034166C 38 81 00 08 */ addi r4, r1, 8
+/* 80345A10 00341670 90 E3 00 00 */ stw r7, 0(r3)
+/* 80345A14 00341674 7F 83 E3 78 */ mr r3, r28
+/* 80345A18 00341678 38 E0 00 00 */ li r7, 0
+/* 80345A1C 0034167C 91 01 00 08 */ stw r8, 8(r1)
+/* 80345A20 00341680 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80345A24 00341684 4B FF A3 05 */ bl gpiAddCallback
+/* 80345A28 00341688 2C 03 00 00 */ cmpwi r3, 0
+/* 80345A2C 0034168C 41 82 00 08 */ beq lbl_80345A34
+/* 80345A30 00341690 48 00 00 14 */ b lbl_80345A44
+lbl_80345A34:
+/* 80345A34 00341694 7F 83 E3 78 */ mr r3, r28
+/* 80345A38 00341698 7F A4 EB 78 */ mr r4, r29
+/* 80345A3C 0034169C 4B FF E6 21 */ bl gpiRemoveOperation
+/* 80345A40 003416A0 38 60 00 00 */ li r3, 0
+lbl_80345A44:
+/* 80345A44 003416A4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80345A48 003416A8 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80345A4C 003416AC 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80345A50 003416B0 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80345A54 003416B4 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 80345A58 003416B8 7C 08 03 A6 */ mtlr r0
+/* 80345A5C 003416BC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80345A60 003416C0 4E 80 00 20 */ blr
+
+.global gpiRemoveProfileByID
+gpiRemoveProfileByID:
+/* 80345A64 003416C4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80345A68 003416C8 7C 08 02 A6 */ mflr r0
+/* 80345A6C 003416CC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80345A70 003416D0 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80345A74 003416D4 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80345A78 003416D8 90 81 00 08 */ stw r4, 8(r1)
+/* 80345A7C 003416DC 38 81 00 08 */ addi r4, r1, 8
+/* 80345A80 003416E0 80 7F 04 44 */ lwz r3, 0x444(r31)
+/* 80345A84 003416E4 4B FF 10 99 */ bl TableLookup
+/* 80345A88 003416E8 2C 03 00 00 */ cmpwi r3, 0
+/* 80345A8C 003416EC 7C 64 1B 78 */ mr r4, r3
+/* 80345A90 003416F0 41 82 00 0C */ beq lbl_80345A9C
+/* 80345A94 003416F4 80 7F 04 44 */ lwz r3, 0x444(r31)
+/* 80345A98 003416F8 4B FF 0F E1 */ bl TableRemove
+lbl_80345A9C:
+/* 80345A9C 003416FC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80345AA0 00341700 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80345AA4 00341704 7C 08 03 A6 */ mtlr r0
+/* 80345AA8 00341708 38 21 00 30 */ addi r1, r1, 0x30
+/* 80345AAC 0034170C 4E 80 00 20 */ blr
+
+.global gpiRemoveProfile
+gpiRemoveProfile:
+/* 80345AB0 00341710 80 63 00 00 */ lwz r3, 0(r3)
+/* 80345AB4 00341714 80 63 04 44 */ lwz r3, 0x444(r3)
+/* 80345AB8 00341718 4B FF 0F C0 */ b TableRemove
+
+.global gpiCheckProfileForUser
+gpiCheckProfileForUser:
+/* 80345ABC 0034171C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80345AC0 00341720 7C 08 02 A6 */ mflr r0
+/* 80345AC4 00341724 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80345AC8 00341728 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80345ACC 0034172C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80345AD0 00341730 7C BE 2B 78 */ mr r30, r5
+/* 80345AD4 00341734 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80345AD8 00341738 7C 9D 23 78 */ mr r29, r4
+/* 80345ADC 0034173C 83 E4 00 0C */ lwz r31, 0xc(r4)
+/* 80345AE0 00341740 2C 1F 00 00 */ cmpwi r31, 0
+/* 80345AE4 00341744 41 82 00 44 */ beq lbl_80345B28
+/* 80345AE8 00341748 80 65 00 00 */ lwz r3, 0(r5)
+/* 80345AEC 0034174C 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80345AF0 00341750 4B E8 89 5D */ bl strcmp
+/* 80345AF4 00341754 2C 03 00 00 */ cmpwi r3, 0
+/* 80345AF8 00341758 40 82 00 30 */ bne lbl_80345B28
+/* 80345AFC 0034175C 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80345B00 00341760 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80345B04 00341764 4B E8 89 49 */ bl strcmp
+/* 80345B08 00341768 2C 03 00 00 */ cmpwi r3, 0
+/* 80345B0C 0034176C 40 82 00 1C */ bne lbl_80345B28
+/* 80345B10 00341770 80 9E 00 08 */ lwz r4, 8(r30)
+/* 80345B14 00341774 38 00 00 01 */ li r0, 1
+/* 80345B18 00341778 38 60 00 00 */ li r3, 0
+/* 80345B1C 0034177C 93 A4 00 00 */ stw r29, 0(r4)
+/* 80345B20 00341780 90 1E 00 0C */ stw r0, 0xc(r30)
+/* 80345B24 00341784 48 00 00 08 */ b lbl_80345B2C
+lbl_80345B28:
+/* 80345B28 00341788 38 60 00 01 */ li r3, 1
+lbl_80345B2C:
+/* 80345B2C 0034178C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80345B30 00341790 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80345B34 00341794 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80345B38 00341798 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80345B3C 0034179C 7C 08 03 A6 */ mtlr r0
+/* 80345B40 003417A0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80345B44 003417A4 4E 80 00 20 */ blr
+
+.global gpiFindProfileByUser
+gpiFindProfileByUser:
+/* 80345B48 003417A8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80345B4C 003417AC 7C 08 02 A6 */ mflr r0
+/* 80345B50 003417B0 3C E0 80 34 */ lis r7, gpiCheckProfileForUser@ha
+/* 80345B54 003417B4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80345B58 003417B8 38 01 00 18 */ addi r0, r1, 0x18
+/* 80345B5C 003417BC 38 E7 5A BC */ addi r7, r7, gpiCheckProfileForUser@l
+/* 80345B60 003417C0 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80345B64 003417C4 3B E0 00 00 */ li r31, 0
+/* 80345B68 003417C8 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80345B6C 003417CC 7C DE 33 78 */ mr r30, r6
+/* 80345B70 003417D0 90 A1 00 1C */ stw r5, 0x1c(r1)
+/* 80345B74 003417D4 38 A1 00 08 */ addi r5, r1, 8
+/* 80345B78 003417D8 90 81 00 18 */ stw r4, 0x18(r1)
+/* 80345B7C 003417DC 3C 80 80 34 */ lis r4, gpiProfileMapCallback@ha
+/* 80345B80 003417E0 38 84 5B D0 */ addi r4, r4, gpiProfileMapCallback@l
+/* 80345B84 003417E4 90 C1 00 20 */ stw r6, 0x20(r1)
+/* 80345B88 003417E8 93 E1 00 24 */ stw r31, 0x24(r1)
+/* 80345B8C 003417EC 80 C3 00 00 */ lwz r6, 0(r3)
+/* 80345B90 003417F0 90 61 00 08 */ stw r3, 8(r1)
+/* 80345B94 003417F4 90 E1 00 0C */ stw r7, 0xc(r1)
+/* 80345B98 003417F8 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80345B9C 003417FC 80 66 04 44 */ lwz r3, 0x444(r6)
+/* 80345BA0 00341800 4B FF 10 89 */ bl TableMapSafe2
+/* 80345BA4 00341804 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80345BA8 00341808 2C 00 00 00 */ cmpwi r0, 0
+/* 80345BAC 0034180C 40 82 00 08 */ bne lbl_80345BB4
+/* 80345BB0 00341810 93 FE 00 00 */ stw r31, 0(r30)
+lbl_80345BB4:
+/* 80345BB4 00341814 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80345BB8 00341818 38 60 00 00 */ li r3, 0
+/* 80345BBC 0034181C 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80345BC0 00341820 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80345BC4 00341824 7C 08 03 A6 */ mtlr r0
+/* 80345BC8 00341828 38 21 00 30 */ addi r1, r1, 0x30
+/* 80345BCC 0034182C 4E 80 00 20 */ blr
+
+.global gpiProfileMapCallback
+gpiProfileMapCallback:
+/* 80345BD0 00341830 81 84 00 04 */ lwz r12, 4(r4)
+/* 80345BD4 00341834 7C 85 23 78 */ mr r5, r4
+/* 80345BD8 00341838 7C 60 1B 78 */ mr r0, r3
+/* 80345BDC 0034183C 80 64 00 00 */ lwz r3, 0(r4)
+/* 80345BE0 00341840 7C 04 03 78 */ mr r4, r0
+/* 80345BE4 00341844 80 A5 00 08 */ lwz r5, 8(r5)
+/* 80345BE8 00341848 7D 89 03 A6 */ mtctr r12
+/* 80345BEC 0034184C 4E 80 04 20 */ bctr
+
+.global gpiProfileMap
+gpiProfileMap:
+/* 80345BF0 00341850 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80345BF4 00341854 7C 08 02 A6 */ mflr r0
+/* 80345BF8 00341858 3C C0 80 34 */ lis r6, gpiProfileMapCallback@ha
+/* 80345BFC 0034185C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80345C00 00341860 80 E3 00 00 */ lwz r7, 0(r3)
+/* 80345C04 00341864 90 81 00 0C */ stw r4, 0xc(r1)
+/* 80345C08 00341868 38 86 5B D0 */ addi r4, r6, gpiProfileMapCallback@l
+/* 80345C0C 0034186C 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 80345C10 00341870 38 A1 00 08 */ addi r5, r1, 8
+/* 80345C14 00341874 90 61 00 08 */ stw r3, 8(r1)
+/* 80345C18 00341878 80 67 04 44 */ lwz r3, 0x444(r7)
+/* 80345C1C 0034187C 4B FF 10 0D */ bl TableMapSafe2
+/* 80345C20 00341880 7C 60 00 34 */ cntlzw r0, r3
+/* 80345C24 00341884 54 03 D9 7E */ srwi r3, r0, 5
+/* 80345C28 00341888 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80345C2C 0034188C 7C 08 03 A6 */ mtlr r0
+/* 80345C30 00341890 38 21 00 20 */ addi r1, r1, 0x20
+/* 80345C34 00341894 4E 80 00 20 */ blr
+
+.global gpiCheckForBuddy
+gpiCheckForBuddy:
+/* 80345C38 00341898 80 C4 00 08 */ lwz r6, 8(r4)
+/* 80345C3C 0034189C 2C 06 00 00 */ cmpwi r6, 0
+/* 80345C40 003418A0 41 82 00 20 */ beq lbl_80345C60
+/* 80345C44 003418A4 80 65 00 00 */ lwz r3, 0(r5)
+/* 80345C48 003418A8 80 06 00 00 */ lwz r0, 0(r6)
+/* 80345C4C 003418AC 7C 03 00 00 */ cmpw r3, r0
+/* 80345C50 003418B0 40 82 00 10 */ bne lbl_80345C60
+/* 80345C54 003418B4 90 85 00 04 */ stw r4, 4(r5)
+/* 80345C58 003418B8 38 60 00 00 */ li r3, 0
+/* 80345C5C 003418BC 4E 80 00 20 */ blr
+lbl_80345C60:
+/* 80345C60 003418C0 38 60 00 01 */ li r3, 1
+/* 80345C64 003418C4 4E 80 00 20 */ blr
+
+.global gpiFindBuddy
+gpiFindBuddy:
+/* 80345C68 003418C8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80345C6C 003418CC 7C 08 02 A6 */ mflr r0
+/* 80345C70 003418D0 3C C0 80 34 */ lis r6, gpiCheckForBuddy@ha
+/* 80345C74 003418D4 38 A0 00 00 */ li r5, 0
+/* 80345C78 003418D8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80345C7C 003418DC 38 C6 5C 38 */ addi r6, r6, gpiCheckForBuddy@l
+/* 80345C80 003418E0 38 01 00 08 */ addi r0, r1, 8
+/* 80345C84 003418E4 90 81 00 08 */ stw r4, 8(r1)
+/* 80345C88 003418E8 3C 80 80 34 */ lis r4, gpiProfileMapCallback@ha
+/* 80345C8C 003418EC 38 84 5B D0 */ addi r4, r4, gpiProfileMapCallback@l
+/* 80345C90 003418F0 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 80345C94 003418F4 38 A1 00 10 */ addi r5, r1, 0x10
+/* 80345C98 003418F8 80 E3 00 00 */ lwz r7, 0(r3)
+/* 80345C9C 003418FC 90 61 00 10 */ stw r3, 0x10(r1)
+/* 80345CA0 00341900 90 C1 00 14 */ stw r6, 0x14(r1)
+/* 80345CA4 00341904 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80345CA8 00341908 80 67 04 44 */ lwz r3, 0x444(r7)
+/* 80345CAC 0034190C 4B FF 0F 7D */ bl TableMapSafe2
+/* 80345CB0 00341910 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80345CB4 00341914 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80345CB8 00341918 7C 08 03 A6 */ mtlr r0
+/* 80345CBC 0034191C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80345CC0 00341920 4E 80 00 20 */ blr
+
+.global gpiCanFreeProfile
+gpiCanFreeProfile:
+/* 80345CC4 00341924 2C 03 00 00 */ cmpwi r3, 0
+/* 80345CC8 00341928 38 80 00 00 */ li r4, 0
+/* 80345CCC 0034192C 41 82 00 38 */ beq lbl_80345D04
+/* 80345CD0 00341930 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80345CD4 00341934 2C 00 00 00 */ cmpwi r0, 0
+/* 80345CD8 00341938 40 82 00 2C */ bne lbl_80345D04
+/* 80345CDC 0034193C 80 03 00 08 */ lwz r0, 8(r3)
+/* 80345CE0 00341940 2C 00 00 00 */ cmpwi r0, 0
+/* 80345CE4 00341944 40 82 00 20 */ bne lbl_80345D04
+/* 80345CE8 00341948 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 80345CEC 0034194C 2C 00 00 00 */ cmpwi r0, 0
+/* 80345CF0 00341950 40 82 00 14 */ bne lbl_80345D04
+/* 80345CF4 00341954 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 80345CF8 00341958 2C 00 00 00 */ cmpwi r0, 0
+/* 80345CFC 0034195C 40 82 00 08 */ bne lbl_80345D04
+/* 80345D00 00341960 38 80 00 01 */ li r4, 1
+lbl_80345D04:
+/* 80345D04 00341964 7C 04 00 D0 */ neg r0, r4
+/* 80345D08 00341968 7C 00 23 78 */ or r0, r0, r4
+/* 80345D0C 0034196C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80345D10 00341970 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiSearch.s b/asm/SDK/DWC/gamespy/gpiSearch.s new file mode 100644 index 0000000..55142f3 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiSearch.s @@ -0,0 +1,2248 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiStartProfileSearch
+gpiStartProfileSearch:
+/* 80345D14 00341974 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80345D18 00341978 7C 08 02 A6 */ mflr r0
+/* 80345D1C 0034197C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80345D20 00341980 39 61 00 30 */ addi r11, r1, 0x30
+/* 80345D24 00341984 4B E8 14 05 */ bl _savegpr_27
+/* 80345D28 00341988 83 A4 00 04 */ lwz r29, 4(r4)
+/* 80345D2C 0034198C 38 00 10 00 */ li r0, 0x1000
+/* 80345D30 00341990 3F C0 80 45 */ lis r30, lbl_8044B228@ha
+/* 80345D34 00341994 7C 7B 1B 78 */ mr r27, r3
+/* 80345D38 00341998 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 80345D3C 0034199C 7C 9C 23 78 */ mr r28, r4
+/* 80345D40 003419A0 3B DE B2 28 */ addi r30, r30, lbl_8044B228@l
+/* 80345D44 003419A4 38 60 10 01 */ li r3, 0x1001
+/* 80345D48 003419A8 4B FF 35 CD */ bl gsimalloc
+/* 80345D4C 003419AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80345D50 003419B0 90 7D 00 08 */ stw r3, 8(r29)
+/* 80345D54 003419B4 40 82 00 18 */ bne lbl_80345D6C
+/* 80345D58 003419B8 7F 63 DB 78 */ mr r3, r27
+/* 80345D5C 003419BC 38 9E 00 40 */ addi r4, r30, 0x40
+/* 80345D60 003419C0 48 00 26 F9 */ bl gpiSetErrorString
+/* 80345D64 003419C4 38 60 00 01 */ li r3, 1
+/* 80345D68 003419C8 48 00 01 64 */ b lbl_80345ECC
+lbl_80345D6C:
+/* 80345D6C 003419CC 38 60 00 02 */ li r3, 2
+/* 80345D70 003419D0 38 80 00 01 */ li r4, 1
+/* 80345D74 003419D4 38 A0 00 06 */ li r5, 6
+/* 80345D78 003419D8 4B FF 1E 4D */ bl socket
+/* 80345D7C 003419DC 2C 03 FF FF */ cmpwi r3, -1
+/* 80345D80 003419E0 90 7D 00 04 */ stw r3, 4(r29)
+/* 80345D84 003419E4 40 82 00 2C */ bne lbl_80345DB0
+/* 80345D88 003419E8 7F 63 DB 78 */ mr r3, r27
+/* 80345D8C 003419EC 38 BE 00 50 */ addi r5, r30, 0x50
+/* 80345D90 003419F0 38 80 00 05 */ li r4, 5
+/* 80345D94 003419F4 48 00 26 75 */ bl gpiSetError
+/* 80345D98 003419F8 7F 63 DB 78 */ mr r3, r27
+/* 80345D9C 003419FC 38 80 00 03 */ li r4, 3
+/* 80345DA0 00341A00 38 A0 00 01 */ li r5, 1
+/* 80345DA4 00341A04 4B FF 9E C5 */ bl gpiCallErrorCallback
+/* 80345DA8 00341A08 38 60 00 03 */ li r3, 3
+/* 80345DAC 00341A0C 48 00 01 20 */ b lbl_80345ECC
+lbl_80345DB0:
+/* 80345DB0 00341A10 38 80 00 00 */ li r4, 0
+/* 80345DB4 00341A14 4B FF 28 A1 */ bl SetSockBlocking
+/* 80345DB8 00341A18 2C 03 00 00 */ cmpwi r3, 0
+/* 80345DBC 00341A1C 40 82 00 2C */ bne lbl_80345DE8
+/* 80345DC0 00341A20 7F 63 DB 78 */ mr r3, r27
+/* 80345DC4 00341A24 38 BE 00 78 */ addi r5, r30, 0x78
+/* 80345DC8 00341A28 38 80 00 05 */ li r4, 5
+/* 80345DCC 00341A2C 48 00 26 3D */ bl gpiSetError
+/* 80345DD0 00341A30 7F 63 DB 78 */ mr r3, r27
+/* 80345DD4 00341A34 38 80 00 03 */ li r4, 3
+/* 80345DD8 00341A38 38 A0 00 01 */ li r5, 1
+/* 80345DDC 00341A3C 4B FF 9E 8D */ bl gpiCallErrorCallback
+/* 80345DE0 00341A40 38 60 00 03 */ li r3, 3
+/* 80345DE4 00341A44 48 00 00 E8 */ b lbl_80345ECC
+lbl_80345DE8:
+/* 80345DE8 00341A48 38 7E 00 00 */ addi r3, r30, 0
+/* 80345DEC 00341A4C 4B FF 22 ED */ bl gethostbyname
+/* 80345DF0 00341A50 2C 03 00 00 */ cmpwi r3, 0
+/* 80345DF4 00341A54 7C 7F 1B 78 */ mr r31, r3
+/* 80345DF8 00341A58 40 82 00 2C */ bne lbl_80345E24
+/* 80345DFC 00341A5C 7F 63 DB 78 */ mr r3, r27
+/* 80345E00 00341A60 38 BE 00 AC */ addi r5, r30, 0xac
+/* 80345E04 00341A64 38 80 00 05 */ li r4, 5
+/* 80345E08 00341A68 48 00 26 01 */ bl gpiSetError
+/* 80345E0C 00341A6C 7F 63 DB 78 */ mr r3, r27
+/* 80345E10 00341A70 38 80 00 03 */ li r4, 3
+/* 80345E14 00341A74 38 A0 00 01 */ li r5, 1
+/* 80345E18 00341A78 4B FF 9E 51 */ bl gpiCallErrorCallback
+/* 80345E1C 00341A7C 38 60 00 03 */ li r3, 3
+/* 80345E20 00341A80 48 00 00 AC */ b lbl_80345ECC
+lbl_80345E24:
+/* 80345E24 00341A84 38 61 00 08 */ addi r3, r1, 8
+/* 80345E28 00341A88 38 80 00 00 */ li r4, 0
+/* 80345E2C 00341A8C 38 A0 00 08 */ li r5, 8
+/* 80345E30 00341A90 4B CB E2 D5 */ bl memset
+/* 80345E34 00341A94 38 00 00 02 */ li r0, 2
+/* 80345E38 00341A98 38 60 74 CD */ li r3, 0x74cd
+/* 80345E3C 00341A9C 98 01 00 09 */ stb r0, 9(r1)
+/* 80345E40 00341AA0 80 9F 00 0C */ lwz r4, 0xc(r31)
+/* 80345E44 00341AA4 80 84 00 00 */ lwz r4, 0(r4)
+/* 80345E48 00341AA8 80 04 00 00 */ lwz r0, 0(r4)
+/* 80345E4C 00341AAC 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80345E50 00341AB0 4B FB 0F 2D */ bl SOHtoNs
+/* 80345E54 00341AB4 B0 61 00 0A */ sth r3, 0xa(r1)
+/* 80345E58 00341AB8 38 81 00 08 */ addi r4, r1, 8
+/* 80345E5C 00341ABC 38 A0 00 08 */ li r5, 8
+/* 80345E60 00341AC0 80 7D 00 04 */ lwz r3, 4(r29)
+/* 80345E64 00341AC4 4B FF 1E 79 */ bl connect
+/* 80345E68 00341AC8 2C 03 FF FF */ cmpwi r3, -1
+/* 80345E6C 00341ACC 40 82 00 4C */ bne lbl_80345EB8
+/* 80345E70 00341AD0 80 7D 00 04 */ lwz r3, 4(r29)
+/* 80345E74 00341AD4 4B FF 21 35 */ bl GOAGetLastError
+/* 80345E78 00341AD8 2C 03 FF FA */ cmpwi r3, -6
+/* 80345E7C 00341ADC 41 82 00 3C */ beq lbl_80345EB8
+/* 80345E80 00341AE0 2C 03 FF E6 */ cmpwi r3, -26
+/* 80345E84 00341AE4 41 82 00 34 */ beq lbl_80345EB8
+/* 80345E88 00341AE8 2C 03 FF B4 */ cmpwi r3, -76
+/* 80345E8C 00341AEC 41 82 00 2C */ beq lbl_80345EB8
+/* 80345E90 00341AF0 7F 63 DB 78 */ mr r3, r27
+/* 80345E94 00341AF4 38 BE 00 E0 */ addi r5, r30, 0xe0
+/* 80345E98 00341AF8 38 80 00 05 */ li r4, 5
+/* 80345E9C 00341AFC 48 00 25 6D */ bl gpiSetError
+/* 80345EA0 00341B00 7F 63 DB 78 */ mr r3, r27
+/* 80345EA4 00341B04 38 80 00 03 */ li r4, 3
+/* 80345EA8 00341B08 38 A0 00 01 */ li r5, 1
+/* 80345EAC 00341B0C 4B FF 9D BD */ bl gpiCallErrorCallback
+/* 80345EB0 00341B10 38 60 00 03 */ li r3, 3
+/* 80345EB4 00341B14 48 00 00 18 */ b lbl_80345ECC
+lbl_80345EB8:
+/* 80345EB8 00341B18 38 00 00 01 */ li r0, 1
+/* 80345EBC 00341B1C 90 1C 00 14 */ stw r0, 0x14(r28)
+/* 80345EC0 00341B20 4B FF 31 19 */ bl current_time
+/* 80345EC4 00341B24 90 7D 01 48 */ stw r3, 0x148(r29)
+/* 80345EC8 00341B28 38 60 00 00 */ li r3, 0
+lbl_80345ECC:
+/* 80345ECC 00341B2C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80345ED0 00341B30 4B E8 12 A5 */ bl _restgpr_27
+/* 80345ED4 00341B34 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80345ED8 00341B38 7C 08 03 A6 */ mtlr r0
+/* 80345EDC 00341B3C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80345EE0 00341B40 4E 80 00 20 */ blr
+
+.global gpiInitSearchData
+gpiInitSearchData:
+/* 80345EE4 00341B44 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80345EE8 00341B48 7C 08 02 A6 */ mflr r0
+/* 80345EEC 00341B4C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80345EF0 00341B50 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80345EF4 00341B54 7C BF 2B 78 */ mr r31, r5
+/* 80345EF8 00341B58 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80345EFC 00341B5C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80345F00 00341B60 7C 9D 23 78 */ mr r29, r4
+/* 80345F04 00341B64 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80345F08 00341B68 7C 7C 1B 78 */ mr r28, r3
+/* 80345F0C 00341B6C 38 60 01 4C */ li r3, 0x14c
+/* 80345F10 00341B70 4B FF 34 05 */ bl gsimalloc
+/* 80345F14 00341B74 2C 03 00 00 */ cmpwi r3, 0
+/* 80345F18 00341B78 7C 7E 1B 78 */ mr r30, r3
+/* 80345F1C 00341B7C 40 82 00 1C */ bne lbl_80345F38
+/* 80345F20 00341B80 3C 80 80 45 */ lis r4, lbl_8044B268@ha
+/* 80345F24 00341B84 7F 83 E3 78 */ mr r3, r28
+/* 80345F28 00341B88 38 84 B2 68 */ addi r4, r4, lbl_8044B268@l
+/* 80345F2C 00341B8C 48 00 25 2D */ bl gpiSetErrorString
+/* 80345F30 00341B90 38 60 00 01 */ li r3, 1
+/* 80345F34 00341B94 48 00 00 7C */ b lbl_80345FB0
+lbl_80345F38:
+/* 80345F38 00341B98 38 80 00 00 */ li r4, 0
+/* 80345F3C 00341B9C 38 A0 01 4C */ li r5, 0x14c
+/* 80345F40 00341BA0 4B CB E1 C5 */ bl memset
+/* 80345F44 00341BA4 93 FE 00 00 */ stw r31, 0(r30)
+/* 80345F48 00341BA8 38 60 FF FF */ li r3, -1
+/* 80345F4C 00341BAC 3B E0 00 00 */ li r31, 0
+/* 80345F50 00341BB0 38 00 10 00 */ li r0, 0x1000
+/* 80345F54 00341BB4 90 7E 00 04 */ stw r3, 4(r30)
+/* 80345F58 00341BB8 38 60 10 01 */ li r3, 0x1001
+/* 80345F5C 00341BBC 93 FE 00 08 */ stw r31, 8(r30)
+/* 80345F60 00341BC0 93 FE 00 10 */ stw r31, 0x10(r30)
+/* 80345F64 00341BC4 93 FE 00 14 */ stw r31, 0x14(r30)
+/* 80345F68 00341BC8 93 FE 00 0C */ stw r31, 0xc(r30)
+/* 80345F6C 00341BCC 93 FE 00 20 */ stw r31, 0x20(r30)
+/* 80345F70 00341BD0 93 FE 00 24 */ stw r31, 0x24(r30)
+/* 80345F74 00341BD4 90 1E 00 1C */ stw r0, 0x1c(r30)
+/* 80345F78 00341BD8 4B FF 33 9D */ bl gsimalloc
+/* 80345F7C 00341BDC 2C 03 00 00 */ cmpwi r3, 0
+/* 80345F80 00341BE0 90 7E 00 18 */ stw r3, 0x18(r30)
+/* 80345F84 00341BE4 40 82 00 1C */ bne lbl_80345FA0
+/* 80345F88 00341BE8 3C 80 80 45 */ lis r4, lbl_8044B268@ha
+/* 80345F8C 00341BEC 7F 83 E3 78 */ mr r3, r28
+/* 80345F90 00341BF0 38 84 B2 68 */ addi r4, r4, lbl_8044B268@l
+/* 80345F94 00341BF4 48 00 24 C5 */ bl gpiSetErrorString
+/* 80345F98 00341BF8 38 60 00 01 */ li r3, 1
+/* 80345F9C 00341BFC 48 00 00 14 */ b lbl_80345FB0
+lbl_80345FA0:
+/* 80345FA0 00341C00 93 FE 01 40 */ stw r31, 0x140(r30)
+/* 80345FA4 00341C04 38 60 00 00 */ li r3, 0
+/* 80345FA8 00341C08 93 FE 01 44 */ stw r31, 0x144(r30)
+/* 80345FAC 00341C0C 93 DD 00 00 */ stw r30, 0(r29)
+lbl_80345FB0:
+/* 80345FB0 00341C10 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80345FB4 00341C14 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80345FB8 00341C18 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80345FBC 00341C1C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80345FC0 00341C20 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80345FC4 00341C24 7C 08 03 A6 */ mtlr r0
+/* 80345FC8 00341C28 38 21 00 20 */ addi r1, r1, 0x20
+/* 80345FCC 00341C2C 4E 80 00 20 */ blr
+
+.global gpiProfileSearch
+gpiProfileSearch:
+/* 80345FD0 00341C30 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80345FD4 00341C34 7C 08 02 A6 */ mflr r0
+/* 80345FD8 00341C38 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80345FDC 00341C3C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80345FE0 00341C40 4B E8 11 31 */ bl _savegpr_21
+/* 80345FE4 00341C44 2C 04 00 00 */ cmpwi r4, 0
+/* 80345FE8 00341C48 83 A1 00 48 */ lwz r29, 0x48(r1)
+/* 80345FEC 00341C4C 83 C1 00 4C */ lwz r30, 0x4c(r1)
+/* 80345FF0 00341C50 7C 75 1B 78 */ mr r21, r3
+/* 80345FF4 00341C54 83 E1 00 50 */ lwz r31, 0x50(r1)
+/* 80345FF8 00341C58 7C 96 23 78 */ mr r22, r4
+/* 80345FFC 00341C5C 7C B7 2B 78 */ mr r23, r5
+/* 80346000 00341C60 7C D8 33 78 */ mr r24, r6
+/* 80346004 00341C64 7C F9 3B 78 */ mr r25, r7
+/* 80346008 00341C68 7D 1A 43 78 */ mr r26, r8
+/* 8034600C 00341C6C 7D 3B 4B 78 */ mr r27, r9
+/* 80346010 00341C70 7D 5C 53 78 */ mr r28, r10
+/* 80346014 00341C74 41 82 00 10 */ beq lbl_80346024
+/* 80346018 00341C78 88 04 00 00 */ lbz r0, 0(r4)
+/* 8034601C 00341C7C 7C 00 07 75 */ extsb. r0, r0
+/* 80346020 00341C80 40 82 00 74 */ bne lbl_80346094
+lbl_80346024:
+/* 80346024 00341C84 2C 06 00 00 */ cmpwi r6, 0
+/* 80346028 00341C88 41 82 00 10 */ beq lbl_80346038
+/* 8034602C 00341C8C 88 06 00 00 */ lbz r0, 0(r6)
+/* 80346030 00341C90 7C 00 07 75 */ extsb. r0, r0
+/* 80346034 00341C94 40 82 00 60 */ bne lbl_80346094
+lbl_80346038:
+/* 80346038 00341C98 2C 07 00 00 */ cmpwi r7, 0
+/* 8034603C 00341C9C 41 82 00 10 */ beq lbl_8034604C
+/* 80346040 00341CA0 88 07 00 00 */ lbz r0, 0(r7)
+/* 80346044 00341CA4 7C 00 07 75 */ extsb. r0, r0
+/* 80346048 00341CA8 40 82 00 4C */ bne lbl_80346094
+lbl_8034604C:
+/* 8034604C 00341CAC 2C 08 00 00 */ cmpwi r8, 0
+/* 80346050 00341CB0 41 82 00 10 */ beq lbl_80346060
+/* 80346054 00341CB4 88 08 00 00 */ lbz r0, 0(r8)
+/* 80346058 00341CB8 7C 00 07 75 */ extsb. r0, r0
+/* 8034605C 00341CBC 40 82 00 38 */ bne lbl_80346094
+lbl_80346060:
+/* 80346060 00341CC0 2C 09 00 00 */ cmpwi r9, 0
+/* 80346064 00341CC4 40 82 00 30 */ bne lbl_80346094
+/* 80346068 00341CC8 2C 05 00 00 */ cmpwi r5, 0
+/* 8034606C 00341CCC 41 82 00 10 */ beq lbl_8034607C
+/* 80346070 00341CD0 88 05 00 00 */ lbz r0, 0(r5)
+/* 80346074 00341CD4 7C 00 07 75 */ extsb. r0, r0
+/* 80346078 00341CD8 40 82 00 1C */ bne lbl_80346094
+lbl_8034607C:
+/* 8034607C 00341CDC 3C 80 80 45 */ lis r4, lbl_8044B330@ha
+/* 80346080 00341CE0 7E A3 AB 78 */ mr r3, r21
+/* 80346084 00341CE4 38 84 B3 30 */ addi r4, r4, lbl_8044B330@l
+/* 80346088 00341CE8 48 00 23 D1 */ bl gpiSetErrorString
+/* 8034608C 00341CEC 38 60 00 02 */ li r3, 2
+/* 80346090 00341CF0 48 00 01 B8 */ b lbl_80346248
+lbl_80346094:
+/* 80346094 00341CF4 7E A3 AB 78 */ mr r3, r21
+/* 80346098 00341CF8 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034609C 00341CFC 38 A0 00 01 */ li r5, 1
+/* 803460A0 00341D00 4B FF FE 45 */ bl gpiInitSearchData
+/* 803460A4 00341D04 2C 03 00 00 */ cmpwi r3, 0
+/* 803460A8 00341D08 41 82 00 08 */ beq lbl_803460B0
+/* 803460AC 00341D0C 48 00 01 9C */ b lbl_80346248
+lbl_803460B0:
+/* 803460B0 00341D10 2C 16 00 00 */ cmpwi r22, 0
+/* 803460B4 00341D14 40 82 00 14 */ bne lbl_803460C8
+/* 803460B8 00341D18 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803460BC 00341D1C 38 00 00 00 */ li r0, 0
+/* 803460C0 00341D20 98 03 00 28 */ stb r0, 0x28(r3)
+/* 803460C4 00341D24 48 00 00 18 */ b lbl_803460DC
+lbl_803460C8:
+/* 803460C8 00341D28 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803460CC 00341D2C 7E C4 B3 78 */ mr r4, r22
+/* 803460D0 00341D30 38 A0 00 1F */ li r5, 0x1f
+/* 803460D4 00341D34 38 63 00 28 */ addi r3, r3, 0x28
+/* 803460D8 00341D38 48 00 1E 79 */ bl strzcpy
+lbl_803460DC:
+/* 803460DC 00341D3C 2C 17 00 00 */ cmpwi r23, 0
+/* 803460E0 00341D40 40 82 00 14 */ bne lbl_803460F4
+/* 803460E4 00341D44 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803460E8 00341D48 38 00 00 00 */ li r0, 0
+/* 803460EC 00341D4C 98 03 00 47 */ stb r0, 0x47(r3)
+/* 803460F0 00341D50 48 00 00 18 */ b lbl_80346108
+lbl_803460F4:
+/* 803460F4 00341D54 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803460F8 00341D58 7E E4 BB 78 */ mr r4, r23
+/* 803460FC 00341D5C 38 A0 00 15 */ li r5, 0x15
+/* 80346100 00341D60 38 63 00 47 */ addi r3, r3, 0x47
+/* 80346104 00341D64 48 00 1E 4D */ bl strzcpy
+lbl_80346108:
+/* 80346108 00341D68 2C 18 00 00 */ cmpwi r24, 0
+/* 8034610C 00341D6C 40 82 00 14 */ bne lbl_80346120
+/* 80346110 00341D70 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80346114 00341D74 38 00 00 00 */ li r0, 0
+/* 80346118 00341D78 98 03 00 5C */ stb r0, 0x5c(r3)
+/* 8034611C 00341D7C 48 00 00 18 */ b lbl_80346134
+lbl_80346120:
+/* 80346120 00341D80 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80346124 00341D84 7F 04 C3 78 */ mr r4, r24
+/* 80346128 00341D88 38 A0 00 33 */ li r5, 0x33
+/* 8034612C 00341D8C 38 63 00 5C */ addi r3, r3, 0x5c
+/* 80346130 00341D90 48 00 1E 21 */ bl strzcpy
+lbl_80346134:
+/* 80346134 00341D94 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80346138 00341D98 38 63 00 5C */ addi r3, r3, 0x5c
+/* 8034613C 00341D9C 4B FF 2E 39 */ bl _strlwr
+/* 80346140 00341DA0 2C 19 00 00 */ cmpwi r25, 0
+/* 80346144 00341DA4 40 82 00 14 */ bne lbl_80346158
+/* 80346148 00341DA8 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 8034614C 00341DAC 38 00 00 00 */ li r0, 0
+/* 80346150 00341DB0 98 03 00 8F */ stb r0, 0x8f(r3)
+/* 80346154 00341DB4 48 00 00 18 */ b lbl_8034616C
+lbl_80346158:
+/* 80346158 00341DB8 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 8034615C 00341DBC 7F 24 CB 78 */ mr r4, r25
+/* 80346160 00341DC0 38 A0 00 1F */ li r5, 0x1f
+/* 80346164 00341DC4 38 63 00 8F */ addi r3, r3, 0x8f
+/* 80346168 00341DC8 48 00 1D E9 */ bl strzcpy
+lbl_8034616C:
+/* 8034616C 00341DCC 2C 1A 00 00 */ cmpwi r26, 0
+/* 80346170 00341DD0 40 82 00 14 */ bne lbl_80346184
+/* 80346174 00341DD4 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80346178 00341DD8 38 00 00 00 */ li r0, 0
+/* 8034617C 00341DDC 98 03 00 AE */ stb r0, 0xae(r3)
+/* 80346180 00341DE0 48 00 00 18 */ b lbl_80346198
+lbl_80346184:
+/* 80346184 00341DE4 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80346188 00341DE8 7F 44 D3 78 */ mr r4, r26
+/* 8034618C 00341DEC 38 A0 00 1F */ li r5, 0x1f
+/* 80346190 00341DF0 38 63 00 AE */ addi r3, r3, 0xae
+/* 80346194 00341DF4 48 00 1D BD */ bl strzcpy
+lbl_80346198:
+/* 80346198 00341DF8 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 8034619C 00341DFC 2C 1C 00 00 */ cmpwi r28, 0
+/* 803461A0 00341E00 93 63 01 34 */ stw r27, 0x134(r3)
+/* 803461A4 00341E04 40 80 00 08 */ bge lbl_803461AC
+/* 803461A8 00341E08 3B 80 00 00 */ li r28, 0
+lbl_803461AC:
+/* 803461AC 00341E0C 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 803461B0 00341E10 7E A3 AB 78 */ mr r3, r21
+/* 803461B4 00341E14 7F A7 EB 78 */ mr r7, r29
+/* 803461B8 00341E18 7F C8 F3 78 */ mr r8, r30
+/* 803461BC 00341E1C 93 84 01 38 */ stw r28, 0x138(r4)
+/* 803461C0 00341E20 7F E9 FB 78 */ mr r9, r31
+/* 803461C4 00341E24 38 C1 00 08 */ addi r6, r1, 8
+/* 803461C8 00341E28 38 80 00 03 */ li r4, 3
+/* 803461CC 00341E2C 81 75 00 00 */ lwz r11, 0(r21)
+/* 803461D0 00341E30 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 803461D4 00341E34 81 4B 02 2C */ lwz r10, 0x22c(r11)
+/* 803461D8 00341E38 38 0A 00 01 */ addi r0, r10, 1
+/* 803461DC 00341E3C 90 0B 02 2C */ stw r0, 0x22c(r11)
+/* 803461E0 00341E40 4B FF DC FD */ bl gpiAddOperation
+/* 803461E4 00341E44 2C 03 00 00 */ cmpwi r3, 0
+/* 803461E8 00341E48 41 82 00 08 */ beq lbl_803461F0
+/* 803461EC 00341E4C 48 00 00 48 */ b lbl_80346234
+lbl_803461F0:
+/* 803461F0 00341E50 80 81 00 08 */ lwz r4, 8(r1)
+/* 803461F4 00341E54 7E A3 AB 78 */ mr r3, r21
+/* 803461F8 00341E58 4B FF FB 1D */ bl gpiStartProfileSearch
+/* 803461FC 00341E5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80346200 00341E60 41 82 00 08 */ beq lbl_80346208
+/* 80346204 00341E64 48 00 00 30 */ b lbl_80346234
+lbl_80346208:
+/* 80346208 00341E68 80 61 00 08 */ lwz r3, 8(r1)
+/* 8034620C 00341E6C 80 03 00 08 */ lwz r0, 8(r3)
+/* 80346210 00341E70 2C 00 00 00 */ cmpwi r0, 0
+/* 80346214 00341E74 41 82 00 1C */ beq lbl_80346230
+/* 80346218 00341E78 80 83 00 18 */ lwz r4, 0x18(r3)
+/* 8034621C 00341E7C 7E A3 AB 78 */ mr r3, r21
+/* 80346220 00341E80 4B FF 7F 8D */ bl gpiProcess
+/* 80346224 00341E84 2C 03 00 00 */ cmpwi r3, 0
+/* 80346228 00341E88 41 82 00 08 */ beq lbl_80346230
+/* 8034622C 00341E8C 48 00 00 08 */ b lbl_80346234
+lbl_80346230:
+/* 80346230 00341E90 38 60 00 00 */ li r3, 0
+lbl_80346234:
+/* 80346234 00341E94 2C 03 00 00 */ cmpwi r3, 0
+/* 80346238 00341E98 38 00 00 00 */ li r0, 0
+/* 8034623C 00341E9C 41 82 00 08 */ beq lbl_80346244
+/* 80346240 00341EA0 7C 60 1B 78 */ mr r0, r3
+lbl_80346244:
+/* 80346244 00341EA4 7C 03 03 78 */ mr r3, r0
+lbl_80346248:
+/* 80346248 00341EA8 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034624C 00341EAC 4B E8 0F 11 */ bl _restgpr_21
+/* 80346250 00341EB0 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80346254 00341EB4 7C 08 03 A6 */ mtlr r0
+/* 80346258 00341EB8 38 21 00 40 */ addi r1, r1, 0x40
+/* 8034625C 00341EBC 4E 80 00 20 */ blr
+
+.global gpiProcessSearch
+gpiProcessSearch:
+/* 80346260 00341EC0 94 21 FA D0 */ stwu r1, -0x530(r1)
+/* 80346264 00341EC4 7C 08 02 A6 */ mflr r0
+/* 80346268 00341EC8 90 01 05 34 */ stw r0, 0x534(r1)
+/* 8034626C 00341ECC 39 61 05 30 */ addi r11, r1, 0x530
+/* 80346270 00341ED0 4B E8 0E 89 */ bl _savegpr_15
+/* 80346274 00341ED4 80 A4 00 08 */ lwz r5, 8(r4)
+/* 80346278 00341ED8 3E A0 80 45 */ lis r21, lbl_8044B228@ha
+/* 8034627C 00341EDC 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80346280 00341EE0 7C 7D 1B 78 */ mr r29, r3
+/* 80346284 00341EE4 7C 05 00 D0 */ neg r0, r5
+/* 80346288 00341EE8 2C 05 00 00 */ cmpwi r5, 0
+/* 8034628C 00341EEC 7C 00 2B 78 */ or r0, r0, r5
+/* 80346290 00341EF0 82 44 00 04 */ lwz r18, 4(r4)
+/* 80346294 00341EF4 7C 9E 23 78 */ mr r30, r4
+/* 80346298 00341EF8 3A B5 B2 28 */ addi r21, r21, lbl_8044B228@l
+/* 8034629C 00341EFC 54 13 0F FE */ srwi r19, r0, 0x1f
+/* 803462A0 00341F00 40 82 00 48 */ bne lbl_803462E8
+/* 803462A4 00341F04 4B FF 2D 35 */ bl current_time
+/* 803462A8 00341F08 80 12 01 48 */ lwz r0, 0x148(r18)
+/* 803462AC 00341F0C 7C 00 18 50 */ subf r0, r0, r3
+/* 803462B0 00341F10 28 00 EA 60 */ cmplwi r0, 0xea60
+/* 803462B4 00341F14 40 81 00 34 */ ble lbl_803462E8
+/* 803462B8 00341F18 38 00 00 01 */ li r0, 1
+/* 803462BC 00341F1C 7F A3 EB 78 */ mr r3, r29
+/* 803462C0 00341F20 90 12 01 44 */ stw r0, 0x144(r18)
+/* 803462C4 00341F24 38 B5 01 44 */ addi r5, r21, 0x144
+/* 803462C8 00341F28 38 80 0D 02 */ li r4, 0xd02
+/* 803462CC 00341F2C 48 00 21 3D */ bl gpiSetError
+/* 803462D0 00341F30 7F A3 EB 78 */ mr r3, r29
+/* 803462D4 00341F34 38 80 00 03 */ li r4, 3
+/* 803462D8 00341F38 38 A0 00 00 */ li r5, 0
+/* 803462DC 00341F3C 4B FF 99 8D */ bl gpiCallErrorCallback
+/* 803462E0 00341F40 38 60 00 03 */ li r3, 3
+/* 803462E4 00341F44 48 00 18 F0 */ b lbl_80347BD4
+lbl_803462E8:
+/* 803462E8 00341F48 3B 60 06 00 */ li r27, 0x600
+/* 803462EC 00341F4C 3B 80 00 01 */ li r28, 1
+/* 803462F0 00341F50 3E C0 80 61 */ lis r22, 0x8061
+/* 803462F4 00341F54 3B 20 00 00 */ li r25, 0
+/* 803462F8 00341F58 3B 40 06 01 */ li r26, 0x601
+/* 803462FC 00341F5C 3B 00 00 05 */ li r24, 5
+/* 80346300 00341F60 3A E0 00 04 */ li r23, 4
+lbl_80346304:
+/* 80346304 00341F64 80 92 00 04 */ lwz r4, 4(r18)
+/* 80346308 00341F68 7F A3 EB 78 */ mr r3, r29
+/* 8034630C 00341F6C 38 B2 00 18 */ addi r5, r18, 0x18
+/* 80346310 00341F70 38 C1 00 18 */ addi r6, r1, 0x18
+/* 80346314 00341F74 38 E0 00 01 */ li r7, 1
+/* 80346318 00341F78 39 0D 91 B8 */ addi r8, r13, lbl_8063E478-_SDA_BASE_
+/* 8034631C 00341F7C 4B FF 96 79 */ bl gpiSendFromBuffer
+/* 80346320 00341F80 2C 03 00 00 */ cmpwi r3, 0
+/* 80346324 00341F84 41 82 00 08 */ beq lbl_8034632C
+/* 80346328 00341F88 48 00 18 AC */ b lbl_80347BD4
+lbl_8034632C:
+/* 8034632C 00341F8C 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 80346330 00341F90 2C 00 00 01 */ cmpwi r0, 1
+/* 80346334 00341F94 40 82 06 98 */ bne lbl_803469CC
+/* 80346338 00341F98 80 92 00 04 */ lwz r4, 4(r18)
+/* 8034633C 00341F9C 7F A3 EB 78 */ mr r3, r29
+/* 80346340 00341FA0 38 A1 00 24 */ addi r5, r1, 0x24
+/* 80346344 00341FA4 48 00 1D F5 */ bl gpiCheckSocketConnect
+/* 80346348 00341FA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034634C 00341FAC 41 82 00 08 */ beq lbl_80346354
+/* 80346350 00341FB0 48 00 18 84 */ b lbl_80347BD4
+lbl_80346354:
+/* 80346354 00341FB4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80346358 00341FB8 2C 00 00 04 */ cmpwi r0, 4
+/* 8034635C 00341FBC 40 82 00 2C */ bne lbl_80346388
+/* 80346360 00341FC0 7F A3 EB 78 */ mr r3, r29
+/* 80346364 00341FC4 38 B5 01 5C */ addi r5, r21, 0x15c
+/* 80346368 00341FC8 38 80 0D 01 */ li r4, 0xd01
+/* 8034636C 00341FCC 48 00 20 9D */ bl gpiSetError
+/* 80346370 00341FD0 7F A3 EB 78 */ mr r3, r29
+/* 80346374 00341FD4 38 80 00 04 */ li r4, 4
+/* 80346378 00341FD8 38 A0 00 00 */ li r5, 0
+/* 8034637C 00341FDC 4B FF 98 ED */ bl gpiCallErrorCallback
+/* 80346380 00341FE0 38 60 00 04 */ li r3, 4
+/* 80346384 00341FE4 48 00 18 50 */ b lbl_80347BD4
+lbl_80346388:
+/* 80346388 00341FE8 2C 00 00 03 */ cmpwi r0, 3
+/* 8034638C 00341FEC 40 82 18 2C */ bne lbl_80347BB8
+/* 80346390 00341FF0 80 12 00 00 */ lwz r0, 0(r18)
+/* 80346394 00341FF4 2C 00 00 01 */ cmpwi r0, 1
+/* 80346398 00341FF8 40 82 01 CC */ bne lbl_80346564
+/* 8034639C 00341FFC 7F A3 EB 78 */ mr r3, r29
+/* 803463A0 00342000 38 92 00 18 */ addi r4, r18, 0x18
+/* 803463A4 00342004 38 B5 01 88 */ addi r5, r21, 0x188
+/* 803463A8 00342008 4B FF 90 F9 */ bl gpiAppendStringToBuffer
+/* 803463AC 0034200C 7F A3 EB 78 */ mr r3, r29
+/* 803463B0 00342010 38 92 00 18 */ addi r4, r18, 0x18
+/* 803463B4 00342014 38 B5 01 94 */ addi r5, r21, 0x194
+/* 803463B8 00342018 4B FF 90 E9 */ bl gpiAppendStringToBuffer
+/* 803463BC 0034201C 80 BF 01 98 */ lwz r5, 0x198(r31)
+/* 803463C0 00342020 7F A3 EB 78 */ mr r3, r29
+/* 803463C4 00342024 38 92 00 18 */ addi r4, r18, 0x18
+/* 803463C8 00342028 4B FF 91 35 */ bl gpiAppendIntToBuffer
+/* 803463CC 0034202C 7F A3 EB 78 */ mr r3, r29
+/* 803463D0 00342030 38 92 00 18 */ addi r4, r18, 0x18
+/* 803463D4 00342034 38 B5 01 A0 */ addi r5, r21, 0x1a0
+/* 803463D8 00342038 4B FF 90 C9 */ bl gpiAppendStringToBuffer
+/* 803463DC 0034203C 80 BF 01 A0 */ lwz r5, 0x1a0(r31)
+/* 803463E0 00342040 7F A3 EB 78 */ mr r3, r29
+/* 803463E4 00342044 38 92 00 18 */ addi r4, r18, 0x18
+/* 803463E8 00342048 4B FF 91 15 */ bl gpiAppendIntToBuffer
+/* 803463EC 0034204C 7F A3 EB 78 */ mr r3, r29
+/* 803463F0 00342050 38 92 00 18 */ addi r4, r18, 0x18
+/* 803463F4 00342054 38 B5 01 AC */ addi r5, r21, 0x1ac
+/* 803463F8 00342058 4B FF 90 A9 */ bl gpiAppendStringToBuffer
+/* 803463FC 0034205C 80 BF 04 88 */ lwz r5, 0x488(r31)
+/* 80346400 00342060 7F A3 EB 78 */ mr r3, r29
+/* 80346404 00342064 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346408 00342068 4B FF 90 F5 */ bl gpiAppendIntToBuffer
+/* 8034640C 0034206C 7F A3 EB 78 */ mr r3, r29
+/* 80346410 00342070 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346414 00342074 38 B5 01 BC */ addi r5, r21, 0x1bc
+/* 80346418 00342078 4B FF 90 89 */ bl gpiAppendStringToBuffer
+/* 8034641C 0034207C 80 BF 01 A4 */ lwz r5, 0x1a4(r31)
+/* 80346420 00342080 7F A3 EB 78 */ mr r3, r29
+/* 80346424 00342084 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346428 00342088 4B FF 90 D5 */ bl gpiAppendIntToBuffer
+/* 8034642C 0034208C 88 12 00 28 */ lbz r0, 0x28(r18)
+/* 80346430 00342090 7C 00 07 75 */ extsb. r0, r0
+/* 80346434 00342094 41 82 00 24 */ beq lbl_80346458
+/* 80346438 00342098 7F A3 EB 78 */ mr r3, r29
+/* 8034643C 0034209C 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346440 003420A0 38 AD 91 BC */ addi r5, r13, lbl_8063E47C-_SDA_BASE_
+/* 80346444 003420A4 4B FF 90 5D */ bl gpiAppendStringToBuffer
+/* 80346448 003420A8 7F A3 EB 78 */ mr r3, r29
+/* 8034644C 003420AC 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346450 003420B0 38 B2 00 28 */ addi r5, r18, 0x28
+/* 80346454 003420B4 4B FF 90 4D */ bl gpiAppendStringToBuffer
+lbl_80346458:
+/* 80346458 003420B8 88 12 00 47 */ lbz r0, 0x47(r18)
+/* 8034645C 003420BC 7C 00 07 75 */ extsb. r0, r0
+/* 80346460 003420C0 41 82 00 24 */ beq lbl_80346484
+/* 80346464 003420C4 7F A3 EB 78 */ mr r3, r29
+/* 80346468 003420C8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034646C 003420CC 38 B5 01 C8 */ addi r5, r21, 0x1c8
+/* 80346470 003420D0 4B FF 90 31 */ bl gpiAppendStringToBuffer
+/* 80346474 003420D4 7F A3 EB 78 */ mr r3, r29
+/* 80346478 003420D8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034647C 003420DC 38 B2 00 47 */ addi r5, r18, 0x47
+/* 80346480 003420E0 4B FF 90 21 */ bl gpiAppendStringToBuffer
+lbl_80346484:
+/* 80346484 003420E4 88 12 00 5C */ lbz r0, 0x5c(r18)
+/* 80346488 003420E8 7C 00 07 75 */ extsb. r0, r0
+/* 8034648C 003420EC 41 82 00 24 */ beq lbl_803464B0
+/* 80346490 003420F0 7F A3 EB 78 */ mr r3, r29
+/* 80346494 003420F4 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346498 003420F8 38 AD 91 C8 */ addi r5, r13, lbl_8063E488-_SDA_BASE_
+/* 8034649C 003420FC 4B FF 90 05 */ bl gpiAppendStringToBuffer
+/* 803464A0 00342100 7F A3 EB 78 */ mr r3, r29
+/* 803464A4 00342104 38 92 00 18 */ addi r4, r18, 0x18
+/* 803464A8 00342108 38 B2 00 5C */ addi r5, r18, 0x5c
+/* 803464AC 0034210C 4B FF 8F F5 */ bl gpiAppendStringToBuffer
+lbl_803464B0:
+/* 803464B0 00342110 88 12 00 8F */ lbz r0, 0x8f(r18)
+/* 803464B4 00342114 7C 00 07 75 */ extsb. r0, r0
+/* 803464B8 00342118 41 82 00 24 */ beq lbl_803464DC
+/* 803464BC 0034211C 7F A3 EB 78 */ mr r3, r29
+/* 803464C0 00342120 38 92 00 18 */ addi r4, r18, 0x18
+/* 803464C4 00342124 38 B5 01 D8 */ addi r5, r21, 0x1d8
+/* 803464C8 00342128 4B FF 8F D9 */ bl gpiAppendStringToBuffer
+/* 803464CC 0034212C 7F A3 EB 78 */ mr r3, r29
+/* 803464D0 00342130 38 92 00 18 */ addi r4, r18, 0x18
+/* 803464D4 00342134 38 B2 00 8F */ addi r5, r18, 0x8f
+/* 803464D8 00342138 4B FF 8F C9 */ bl gpiAppendStringToBuffer
+lbl_803464DC:
+/* 803464DC 0034213C 88 12 00 AE */ lbz r0, 0xae(r18)
+/* 803464E0 00342140 7C 00 07 75 */ extsb. r0, r0
+/* 803464E4 00342144 41 82 00 24 */ beq lbl_80346508
+/* 803464E8 00342148 7F A3 EB 78 */ mr r3, r29
+/* 803464EC 0034214C 38 92 00 18 */ addi r4, r18, 0x18
+/* 803464F0 00342150 38 B5 01 E4 */ addi r5, r21, 0x1e4
+/* 803464F4 00342154 4B FF 8F AD */ bl gpiAppendStringToBuffer
+/* 803464F8 00342158 7F A3 EB 78 */ mr r3, r29
+/* 803464FC 0034215C 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346500 00342160 38 B2 00 AE */ addi r5, r18, 0xae
+/* 80346504 00342164 4B FF 8F 9D */ bl gpiAppendStringToBuffer
+lbl_80346508:
+/* 80346508 00342168 80 12 01 34 */ lwz r0, 0x134(r18)
+/* 8034650C 0034216C 2C 00 00 00 */ cmpwi r0, 0
+/* 80346510 00342170 41 82 00 24 */ beq lbl_80346534
+/* 80346514 00342174 7F A3 EB 78 */ mr r3, r29
+/* 80346518 00342178 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034651C 0034217C 38 B5 01 F0 */ addi r5, r21, 0x1f0
+/* 80346520 00342180 4B FF 8F 81 */ bl gpiAppendStringToBuffer
+/* 80346524 00342184 80 B2 01 34 */ lwz r5, 0x134(r18)
+/* 80346528 00342188 7F A3 EB 78 */ mr r3, r29
+/* 8034652C 0034218C 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346530 00342190 4B FF 8F CD */ bl gpiAppendIntToBuffer
+lbl_80346534:
+/* 80346534 00342194 80 12 01 38 */ lwz r0, 0x138(r18)
+/* 80346538 00342198 2C 00 00 00 */ cmpwi r0, 0
+/* 8034653C 0034219C 40 81 04 58 */ ble lbl_80346994
+/* 80346540 003421A0 7F A3 EB 78 */ mr r3, r29
+/* 80346544 003421A4 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346548 003421A8 38 AD 91 D0 */ addi r5, r13, lbl_8063E490-_SDA_BASE_
+/* 8034654C 003421AC 4B FF 8F 55 */ bl gpiAppendStringToBuffer
+/* 80346550 003421B0 80 B2 01 38 */ lwz r5, 0x138(r18)
+/* 80346554 003421B4 7F A3 EB 78 */ mr r3, r29
+/* 80346558 003421B8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034655C 003421BC 4B FF 8F A1 */ bl gpiAppendIntToBuffer
+/* 80346560 003421C0 48 00 04 34 */ b lbl_80346994
+lbl_80346564:
+/* 80346564 003421C4 2C 00 00 02 */ cmpwi r0, 2
+/* 80346568 003421C8 40 82 00 58 */ bne lbl_803465C0
+/* 8034656C 003421CC 7F A3 EB 78 */ mr r3, r29
+/* 80346570 003421D0 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346574 003421D4 38 AD 91 D8 */ addi r5, r13, lbl_8063E498-_SDA_BASE_
+/* 80346578 003421D8 4B FF 8F 29 */ bl gpiAppendStringToBuffer
+/* 8034657C 003421DC 7F A3 EB 78 */ mr r3, r29
+/* 80346580 003421E0 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346584 003421E4 38 AD 91 C8 */ addi r5, r13, lbl_8063E488-_SDA_BASE_
+/* 80346588 003421E8 4B FF 8F 19 */ bl gpiAppendStringToBuffer
+/* 8034658C 003421EC 7F A3 EB 78 */ mr r3, r29
+/* 80346590 003421F0 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346594 003421F4 38 B2 00 5C */ addi r5, r18, 0x5c
+/* 80346598 003421F8 4B FF 8F 09 */ bl gpiAppendStringToBuffer
+/* 8034659C 003421FC 7F A3 EB 78 */ mr r3, r29
+/* 803465A0 00342200 38 92 00 18 */ addi r4, r18, 0x18
+/* 803465A4 00342204 38 B5 01 BC */ addi r5, r21, 0x1bc
+/* 803465A8 00342208 4B FF 8E F9 */ bl gpiAppendStringToBuffer
+/* 803465AC 0034220C 80 BF 01 A4 */ lwz r5, 0x1a4(r31)
+/* 803465B0 00342210 7F A3 EB 78 */ mr r3, r29
+/* 803465B4 00342214 38 92 00 18 */ addi r4, r18, 0x18
+/* 803465B8 00342218 4B FF 8F 45 */ bl gpiAppendIntToBuffer
+/* 803465BC 0034221C 48 00 03 D8 */ b lbl_80346994
+lbl_803465C0:
+/* 803465C0 00342220 2C 00 00 03 */ cmpwi r0, 3
+/* 803465C4 00342224 40 82 00 A4 */ bne lbl_80346668
+/* 803465C8 00342228 7F A3 EB 78 */ mr r3, r29
+/* 803465CC 0034222C 38 92 00 18 */ addi r4, r18, 0x18
+/* 803465D0 00342230 38 AD 91 E0 */ addi r5, r13, lbl_8063E4A0-_SDA_BASE_
+/* 803465D4 00342234 4B FF 8E CD */ bl gpiAppendStringToBuffer
+/* 803465D8 00342238 7F A3 EB 78 */ mr r3, r29
+/* 803465DC 0034223C 38 92 00 18 */ addi r4, r18, 0x18
+/* 803465E0 00342240 38 AD 91 C8 */ addi r5, r13, lbl_8063E488-_SDA_BASE_
+/* 803465E4 00342244 4B FF 8E BD */ bl gpiAppendStringToBuffer
+/* 803465E8 00342248 7F A3 EB 78 */ mr r3, r29
+/* 803465EC 0034224C 38 92 00 18 */ addi r4, r18, 0x18
+/* 803465F0 00342250 38 B2 00 5C */ addi r5, r18, 0x5c
+/* 803465F4 00342254 4B FF 8E AD */ bl gpiAppendStringToBuffer
+/* 803465F8 00342258 38 72 00 CD */ addi r3, r18, 0xcd
+/* 803465FC 0034225C 38 81 00 B0 */ addi r4, r1, 0xb0
+/* 80346600 00342260 48 00 1E 95 */ bl gpiEncodeString
+/* 80346604 00342264 7F A3 EB 78 */ mr r3, r29
+/* 80346608 00342268 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034660C 0034226C 38 B5 01 FC */ addi r5, r21, 0x1fc
+/* 80346610 00342270 4B FF 8E 91 */ bl gpiAppendStringToBuffer
+/* 80346614 00342274 7F A3 EB 78 */ mr r3, r29
+/* 80346618 00342278 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034661C 0034227C 38 A1 00 B0 */ addi r5, r1, 0xb0
+/* 80346620 00342280 4B FF 8E 81 */ bl gpiAppendStringToBuffer
+/* 80346624 00342284 7F A3 EB 78 */ mr r3, r29
+/* 80346628 00342288 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034662C 0034228C 38 B5 01 AC */ addi r5, r21, 0x1ac
+/* 80346630 00342290 4B FF 8E 71 */ bl gpiAppendStringToBuffer
+/* 80346634 00342294 80 BF 04 88 */ lwz r5, 0x488(r31)
+/* 80346638 00342298 7F A3 EB 78 */ mr r3, r29
+/* 8034663C 0034229C 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346640 003422A0 4B FF 8E BD */ bl gpiAppendIntToBuffer
+/* 80346644 003422A4 7F A3 EB 78 */ mr r3, r29
+/* 80346648 003422A8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034664C 003422AC 38 B5 01 BC */ addi r5, r21, 0x1bc
+/* 80346650 003422B0 4B FF 8E 51 */ bl gpiAppendStringToBuffer
+/* 80346654 003422B4 80 BF 01 A4 */ lwz r5, 0x1a4(r31)
+/* 80346658 003422B8 7F A3 EB 78 */ mr r3, r29
+/* 8034665C 003422BC 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346660 003422C0 4B FF 8E 9D */ bl gpiAppendIntToBuffer
+/* 80346664 003422C4 48 00 03 30 */ b lbl_80346994
+lbl_80346668:
+/* 80346668 003422C8 2C 00 00 04 */ cmpwi r0, 4
+/* 8034666C 003422CC 40 82 00 78 */ bne lbl_803466E4
+/* 80346670 003422D0 7F A3 EB 78 */ mr r3, r29
+/* 80346674 003422D4 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346678 003422D8 38 B5 02 08 */ addi r5, r21, 0x208
+/* 8034667C 003422DC 4B FF 8E 25 */ bl gpiAppendStringToBuffer
+/* 80346680 003422E0 7F A3 EB 78 */ mr r3, r29
+/* 80346684 003422E4 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346688 003422E8 38 B5 01 94 */ addi r5, r21, 0x194
+/* 8034668C 003422EC 4B FF 8E 15 */ bl gpiAppendStringToBuffer
+/* 80346690 003422F0 80 BF 01 98 */ lwz r5, 0x198(r31)
+/* 80346694 003422F4 7F A3 EB 78 */ mr r3, r29
+/* 80346698 003422F8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034669C 003422FC 4B FF 8E 61 */ bl gpiAppendIntToBuffer
+/* 803466A0 00342300 7F A3 EB 78 */ mr r3, r29
+/* 803466A4 00342304 38 92 00 18 */ addi r4, r18, 0x18
+/* 803466A8 00342308 38 B5 01 A0 */ addi r5, r21, 0x1a0
+/* 803466AC 0034230C 4B FF 8D F5 */ bl gpiAppendStringToBuffer
+/* 803466B0 00342310 80 BF 01 A0 */ lwz r5, 0x1a0(r31)
+/* 803466B4 00342314 7F A3 EB 78 */ mr r3, r29
+/* 803466B8 00342318 38 92 00 18 */ addi r4, r18, 0x18
+/* 803466BC 0034231C 4B FF 8E 41 */ bl gpiAppendIntToBuffer
+/* 803466C0 00342320 7F A3 EB 78 */ mr r3, r29
+/* 803466C4 00342324 38 92 00 18 */ addi r4, r18, 0x18
+/* 803466C8 00342328 38 B5 02 14 */ addi r5, r21, 0x214
+/* 803466CC 0034232C 4B FF 8D D5 */ bl gpiAppendStringToBuffer
+/* 803466D0 00342330 80 B2 01 3C */ lwz r5, 0x13c(r18)
+/* 803466D4 00342334 7F A3 EB 78 */ mr r3, r29
+/* 803466D8 00342338 38 92 00 18 */ addi r4, r18, 0x18
+/* 803466DC 0034233C 4B FF 8E 21 */ bl gpiAppendIntToBuffer
+/* 803466E0 00342340 48 00 02 B4 */ b lbl_80346994
+lbl_803466E4:
+/* 803466E4 00342344 2C 00 00 05 */ cmpwi r0, 5
+/* 803466E8 00342348 40 82 00 A4 */ bne lbl_8034678C
+/* 803466EC 0034234C 7F A3 EB 78 */ mr r3, r29
+/* 803466F0 00342350 38 92 00 18 */ addi r4, r18, 0x18
+/* 803466F4 00342354 38 AD 91 E8 */ addi r5, r13, lbl_8063E4A8-_SDA_BASE_
+/* 803466F8 00342358 4B FF 8D A9 */ bl gpiAppendStringToBuffer
+/* 803466FC 0034235C 7F A3 EB 78 */ mr r3, r29
+/* 80346700 00342360 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346704 00342364 38 AD 91 BC */ addi r5, r13, lbl_8063E47C-_SDA_BASE_
+/* 80346708 00342368 4B FF 8D 99 */ bl gpiAppendStringToBuffer
+/* 8034670C 0034236C 7F A3 EB 78 */ mr r3, r29
+/* 80346710 00342370 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346714 00342374 38 B2 00 28 */ addi r5, r18, 0x28
+/* 80346718 00342378 4B FF 8D 89 */ bl gpiAppendStringToBuffer
+/* 8034671C 0034237C 7F A3 EB 78 */ mr r3, r29
+/* 80346720 00342380 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346724 00342384 38 AD 91 C8 */ addi r5, r13, lbl_8063E488-_SDA_BASE_
+/* 80346728 00342388 4B FF 8D 79 */ bl gpiAppendStringToBuffer
+/* 8034672C 0034238C 7F A3 EB 78 */ mr r3, r29
+/* 80346730 00342390 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346734 00342394 38 B2 00 5C */ addi r5, r18, 0x5c
+/* 80346738 00342398 4B FF 8D 69 */ bl gpiAppendStringToBuffer
+/* 8034673C 0034239C 7F A3 EB 78 */ mr r3, r29
+/* 80346740 003423A0 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346744 003423A4 38 B5 01 BC */ addi r5, r21, 0x1bc
+/* 80346748 003423A8 4B FF 8D 59 */ bl gpiAppendStringToBuffer
+/* 8034674C 003423AC 80 BF 01 A4 */ lwz r5, 0x1a4(r31)
+/* 80346750 003423B0 7F A3 EB 78 */ mr r3, r29
+/* 80346754 003423B4 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346758 003423B8 4B FF 8D A5 */ bl gpiAppendIntToBuffer
+/* 8034675C 003423BC 38 72 00 CD */ addi r3, r18, 0xcd
+/* 80346760 003423C0 38 81 00 B0 */ addi r4, r1, 0xb0
+/* 80346764 003423C4 48 00 1D 31 */ bl gpiEncodeString
+/* 80346768 003423C8 7F A3 EB 78 */ mr r3, r29
+/* 8034676C 003423CC 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346770 003423D0 38 B5 01 FC */ addi r5, r21, 0x1fc
+/* 80346774 003423D4 4B FF 8D 2D */ bl gpiAppendStringToBuffer
+/* 80346778 003423D8 7F A3 EB 78 */ mr r3, r29
+/* 8034677C 003423DC 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346780 003423E0 38 A1 00 B0 */ addi r5, r1, 0xb0
+/* 80346784 003423E4 4B FF 8D 1D */ bl gpiAppendStringToBuffer
+/* 80346788 003423E8 48 00 02 0C */ b lbl_80346994
+lbl_8034678C:
+/* 8034678C 003423EC 2C 00 00 06 */ cmpwi r0, 6
+/* 80346790 003423F0 40 82 01 30 */ bne lbl_803468C0
+/* 80346794 003423F4 7F A3 EB 78 */ mr r3, r29
+/* 80346798 003423F8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034679C 003423FC 38 B5 02 20 */ addi r5, r21, 0x220
+/* 803467A0 00342400 4B FF 8D 01 */ bl gpiAppendStringToBuffer
+/* 803467A4 00342404 7F A3 EB 78 */ mr r3, r29
+/* 803467A8 00342408 38 92 00 18 */ addi r4, r18, 0x18
+/* 803467AC 0034240C 38 AD 91 BC */ addi r5, r13, lbl_8063E47C-_SDA_BASE_
+/* 803467B0 00342410 4B FF 8C F1 */ bl gpiAppendStringToBuffer
+/* 803467B4 00342414 7F A3 EB 78 */ mr r3, r29
+/* 803467B8 00342418 38 92 00 18 */ addi r4, r18, 0x18
+/* 803467BC 0034241C 38 B2 00 28 */ addi r5, r18, 0x28
+/* 803467C0 00342420 4B FF 8C E1 */ bl gpiAppendStringToBuffer
+/* 803467C4 00342424 7F A3 EB 78 */ mr r3, r29
+/* 803467C8 00342428 38 92 00 18 */ addi r4, r18, 0x18
+/* 803467CC 0034242C 38 AD 91 C8 */ addi r5, r13, lbl_8063E488-_SDA_BASE_
+/* 803467D0 00342430 4B FF 8C D1 */ bl gpiAppendStringToBuffer
+/* 803467D4 00342434 7F A3 EB 78 */ mr r3, r29
+/* 803467D8 00342438 38 92 00 18 */ addi r4, r18, 0x18
+/* 803467DC 0034243C 38 B2 00 5C */ addi r5, r18, 0x5c
+/* 803467E0 00342440 4B FF 8C C1 */ bl gpiAppendStringToBuffer
+/* 803467E4 00342444 38 72 00 CD */ addi r3, r18, 0xcd
+/* 803467E8 00342448 38 81 00 B0 */ addi r4, r1, 0xb0
+/* 803467EC 0034244C 48 00 1C A9 */ bl gpiEncodeString
+/* 803467F0 00342450 7F A3 EB 78 */ mr r3, r29
+/* 803467F4 00342454 38 92 00 18 */ addi r4, r18, 0x18
+/* 803467F8 00342458 38 B5 01 FC */ addi r5, r21, 0x1fc
+/* 803467FC 0034245C 4B FF 8C A5 */ bl gpiAppendStringToBuffer
+/* 80346800 00342460 7F A3 EB 78 */ mr r3, r29
+/* 80346804 00342464 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346808 00342468 38 A1 00 B0 */ addi r5, r1, 0xb0
+/* 8034680C 0034246C 4B FF 8C 95 */ bl gpiAppendStringToBuffer
+/* 80346810 00342470 7F A3 EB 78 */ mr r3, r29
+/* 80346814 00342474 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346818 00342478 38 B5 02 2C */ addi r5, r21, 0x22c
+/* 8034681C 0034247C 4B FF 8C 85 */ bl gpiAppendStringToBuffer
+/* 80346820 00342480 80 BF 04 84 */ lwz r5, 0x484(r31)
+/* 80346824 00342484 7F A3 EB 78 */ mr r3, r29
+/* 80346828 00342488 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034682C 0034248C 4B FF 8C D1 */ bl gpiAppendIntToBuffer
+/* 80346830 00342490 7F A3 EB 78 */ mr r3, r29
+/* 80346834 00342494 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346838 00342498 38 B5 01 AC */ addi r5, r21, 0x1ac
+/* 8034683C 0034249C 4B FF 8C 65 */ bl gpiAppendStringToBuffer
+/* 80346840 003424A0 80 BF 04 88 */ lwz r5, 0x488(r31)
+/* 80346844 003424A4 7F A3 EB 78 */ mr r3, r29
+/* 80346848 003424A8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034684C 003424AC 4B FF 8C B1 */ bl gpiAppendIntToBuffer
+/* 80346850 003424B0 7F A3 EB 78 */ mr r3, r29
+/* 80346854 003424B4 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346858 003424B8 38 B5 01 C8 */ addi r5, r21, 0x1c8
+/* 8034685C 003424BC 4B FF 8C 45 */ bl gpiAppendStringToBuffer
+/* 80346860 003424C0 7F A3 EB 78 */ mr r3, r29
+/* 80346864 003424C4 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346868 003424C8 38 B2 00 47 */ addi r5, r18, 0x47
+/* 8034686C 003424CC 4B FF 8C 35 */ bl gpiAppendStringToBuffer
+/* 80346870 003424D0 88 12 00 EC */ lbz r0, 0xec(r18)
+/* 80346874 003424D4 7C 00 07 75 */ extsb. r0, r0
+/* 80346878 003424D8 41 82 00 24 */ beq lbl_8034689C
+/* 8034687C 003424DC 7F A3 EB 78 */ mr r3, r29
+/* 80346880 003424E0 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346884 003424E4 38 AD 91 F0 */ addi r5, r13, lbl_8063E4B0-_SDA_BASE_
+/* 80346888 003424E8 4B FF 8C 19 */ bl gpiAppendStringToBuffer
+/* 8034688C 003424EC 7F A3 EB 78 */ mr r3, r29
+/* 80346890 003424F0 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346894 003424F4 38 B2 00 EC */ addi r5, r18, 0xec
+/* 80346898 003424F8 4B FF 8C 09 */ bl gpiAppendStringToBuffer
+lbl_8034689C:
+/* 8034689C 003424FC 7F A3 EB 78 */ mr r3, r29
+/* 803468A0 00342500 38 92 00 18 */ addi r4, r18, 0x18
+/* 803468A4 00342504 38 B5 01 BC */ addi r5, r21, 0x1bc
+/* 803468A8 00342508 4B FF 8B F9 */ bl gpiAppendStringToBuffer
+/* 803468AC 0034250C 80 BF 01 A4 */ lwz r5, 0x1a4(r31)
+/* 803468B0 00342510 7F A3 EB 78 */ mr r3, r29
+/* 803468B4 00342514 38 92 00 18 */ addi r4, r18, 0x18
+/* 803468B8 00342518 4B FF 8C 45 */ bl gpiAppendIntToBuffer
+/* 803468BC 0034251C 48 00 00 D8 */ b lbl_80346994
+lbl_803468C0:
+/* 803468C0 00342520 2C 00 00 07 */ cmpwi r0, 7
+/* 803468C4 00342524 40 82 00 78 */ bne lbl_8034693C
+/* 803468C8 00342528 7F A3 EB 78 */ mr r3, r29
+/* 803468CC 0034252C 38 92 00 18 */ addi r4, r18, 0x18
+/* 803468D0 00342530 38 B5 02 38 */ addi r5, r21, 0x238
+/* 803468D4 00342534 4B FF 8B CD */ bl gpiAppendStringToBuffer
+/* 803468D8 00342538 7F A3 EB 78 */ mr r3, r29
+/* 803468DC 0034253C 38 92 00 18 */ addi r4, r18, 0x18
+/* 803468E0 00342540 38 B5 01 94 */ addi r5, r21, 0x194
+/* 803468E4 00342544 4B FF 8B BD */ bl gpiAppendStringToBuffer
+/* 803468E8 00342548 80 BF 01 98 */ lwz r5, 0x198(r31)
+/* 803468EC 0034254C 7F A3 EB 78 */ mr r3, r29
+/* 803468F0 00342550 38 92 00 18 */ addi r4, r18, 0x18
+/* 803468F4 00342554 4B FF 8C 09 */ bl gpiAppendIntToBuffer
+/* 803468F8 00342558 7F A3 EB 78 */ mr r3, r29
+/* 803468FC 0034255C 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346900 00342560 38 B5 01 A0 */ addi r5, r21, 0x1a0
+/* 80346904 00342564 4B FF 8B 9D */ bl gpiAppendStringToBuffer
+/* 80346908 00342568 80 BF 01 A0 */ lwz r5, 0x1a0(r31)
+/* 8034690C 0034256C 7F A3 EB 78 */ mr r3, r29
+/* 80346910 00342570 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346914 00342574 4B FF 8B E9 */ bl gpiAppendIntToBuffer
+/* 80346918 00342578 7F A3 EB 78 */ mr r3, r29
+/* 8034691C 0034257C 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346920 00342580 38 B5 01 AC */ addi r5, r21, 0x1ac
+/* 80346924 00342584 4B FF 8B 7D */ bl gpiAppendStringToBuffer
+/* 80346928 00342588 80 BF 04 88 */ lwz r5, 0x488(r31)
+/* 8034692C 0034258C 7F A3 EB 78 */ mr r3, r29
+/* 80346930 00342590 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346934 00342594 4B FF 8B C9 */ bl gpiAppendIntToBuffer
+/* 80346938 00342598 48 00 00 5C */ b lbl_80346994
+lbl_8034693C:
+/* 8034693C 0034259C 2C 00 00 08 */ cmpwi r0, 8
+/* 80346940 003425A0 40 82 00 54 */ bne lbl_80346994
+/* 80346944 003425A4 7F A3 EB 78 */ mr r3, r29
+/* 80346948 003425A8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034694C 003425AC 38 B5 02 44 */ addi r5, r21, 0x244
+/* 80346950 003425B0 4B FF 8B 51 */ bl gpiAppendStringToBuffer
+/* 80346954 003425B4 7F A3 EB 78 */ mr r3, r29
+/* 80346958 003425B8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034695C 003425BC 38 B5 02 58 */ addi r5, r21, 0x258
+/* 80346960 003425C0 4B FF 8B 41 */ bl gpiAppendStringToBuffer
+/* 80346964 003425C4 7F A3 EB 78 */ mr r3, r29
+/* 80346968 003425C8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034696C 003425CC 38 B2 00 47 */ addi r5, r18, 0x47
+/* 80346970 003425D0 4B FF 8B 31 */ bl gpiAppendStringToBuffer
+/* 80346974 003425D4 7F A3 EB 78 */ mr r3, r29
+/* 80346978 003425D8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034697C 003425DC 38 B5 01 AC */ addi r5, r21, 0x1ac
+/* 80346980 003425E0 4B FF 8B 21 */ bl gpiAppendStringToBuffer
+/* 80346984 003425E4 80 BF 04 88 */ lwz r5, 0x488(r31)
+/* 80346988 003425E8 7F A3 EB 78 */ mr r3, r29
+/* 8034698C 003425EC 38 92 00 18 */ addi r4, r18, 0x18
+/* 80346990 003425F0 4B FF 8B 6D */ bl gpiAppendIntToBuffer
+lbl_80346994:
+/* 80346994 003425F4 7F A3 EB 78 */ mr r3, r29
+/* 80346998 003425F8 38 92 00 18 */ addi r4, r18, 0x18
+/* 8034699C 003425FC 38 B5 02 68 */ addi r5, r21, 0x268
+/* 803469A0 00342600 4B FF 8B 01 */ bl gpiAppendStringToBuffer
+/* 803469A4 00342604 7F A3 EB 78 */ mr r3, r29
+/* 803469A8 00342608 38 92 00 18 */ addi r4, r18, 0x18
+/* 803469AC 0034260C 38 B6 0A F8 */ addi r5, r22, 0xaf8
+/* 803469B0 00342610 4B FF 8A F1 */ bl gpiAppendStringToBuffer
+/* 803469B4 00342614 7F A3 EB 78 */ mr r3, r29
+/* 803469B8 00342618 38 92 00 18 */ addi r4, r18, 0x18
+/* 803469BC 0034261C 38 AD 91 F8 */ addi r5, r13, lbl_8063E4B8-_SDA_BASE_
+/* 803469C0 00342620 4B FF 8A E1 */ bl gpiAppendStringToBuffer
+/* 803469C4 00342624 92 FE 00 14 */ stw r23, 0x14(r30)
+/* 803469C8 00342628 48 00 11 F0 */ b lbl_80347BB8
+lbl_803469CC:
+/* 803469CC 0034262C 2C 00 00 04 */ cmpwi r0, 4
+/* 803469D0 00342630 40 82 11 E8 */ bne lbl_80347BB8
+/* 803469D4 00342634 80 92 00 04 */ lwz r4, 4(r18)
+/* 803469D8 00342638 7F A3 EB 78 */ mr r3, r29
+/* 803469DC 0034263C 38 B2 00 08 */ addi r5, r18, 8
+/* 803469E0 00342640 38 C1 00 1C */ addi r6, r1, 0x1c
+/* 803469E4 00342644 38 E1 00 18 */ addi r7, r1, 0x18
+/* 803469E8 00342648 39 0D 91 B8 */ addi r8, r13, lbl_8063E478-_SDA_BASE_
+/* 803469EC 0034264C 4B FF 8E 69 */ bl gpiRecvToBuffer
+/* 803469F0 00342650 2C 03 00 00 */ cmpwi r3, 0
+/* 803469F4 00342654 41 82 00 38 */ beq lbl_80346A2C
+/* 803469F8 00342658 2C 03 00 03 */ cmpwi r3, 3
+/* 803469FC 0034265C 40 82 11 D8 */ bne lbl_80347BD4
+/* 80346A00 00342660 7F A3 EB 78 */ mr r3, r29
+/* 80346A04 00342664 38 B5 02 74 */ addi r5, r21, 0x274
+/* 80346A08 00342668 38 80 0D 01 */ li r4, 0xd01
+/* 80346A0C 0034266C 48 00 19 FD */ bl gpiSetError
+/* 80346A10 00342670 7F A3 EB 78 */ mr r3, r29
+/* 80346A14 00342674 38 80 00 03 */ li r4, 3
+/* 80346A18 00342678 38 A0 00 00 */ li r5, 0
+/* 80346A1C 0034267C 4B FF 92 4D */ bl gpiCallErrorCallback
+/* 80346A20 00342680 38 60 00 03 */ li r3, 3
+/* 80346A24 00342684 48 00 11 B0 */ b lbl_80347BD4
+/* 80346A28 00342688 48 00 11 AC */ b lbl_80347BD4
+lbl_80346A2C:
+/* 80346A2C 0034268C 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80346A30 00342690 2C 00 00 00 */ cmpwi r0, 0
+/* 80346A34 00342694 41 82 00 48 */ beq lbl_80346A7C
+/* 80346A38 00342698 4B FF 25 A1 */ bl current_time
+/* 80346A3C 0034269C 80 12 01 48 */ lwz r0, 0x148(r18)
+/* 80346A40 003426A0 7C 00 18 50 */ subf r0, r0, r3
+/* 80346A44 003426A4 28 00 EA 60 */ cmplwi r0, 0xea60
+/* 80346A48 003426A8 40 81 00 34 */ ble lbl_80346A7C
+/* 80346A4C 003426AC 38 00 00 01 */ li r0, 1
+/* 80346A50 003426B0 7F A3 EB 78 */ mr r3, r29
+/* 80346A54 003426B4 90 12 01 44 */ stw r0, 0x144(r18)
+/* 80346A58 003426B8 38 B5 01 44 */ addi r5, r21, 0x144
+/* 80346A5C 003426BC 38 80 0D 02 */ li r4, 0xd02
+/* 80346A60 003426C0 48 00 19 A9 */ bl gpiSetError
+/* 80346A64 003426C4 7F A3 EB 78 */ mr r3, r29
+/* 80346A68 003426C8 38 80 00 03 */ li r4, 3
+/* 80346A6C 003426CC 38 A0 00 00 */ li r5, 0
+/* 80346A70 003426D0 4B FF 91 F9 */ bl gpiCallErrorCallback
+/* 80346A74 003426D4 38 60 00 03 */ li r3, 3
+/* 80346A78 003426D8 48 00 11 5C */ b lbl_80347BD4
+lbl_80346A7C:
+/* 80346A7C 003426DC 80 72 00 08 */ lwz r3, 8(r18)
+/* 80346A80 003426E0 38 8D 91 F8 */ addi r4, r13, lbl_8063E4B8-_SDA_BASE_
+/* 80346A84 003426E4 4B E8 7D 1D */ bl strstr
+/* 80346A88 003426E8 2C 03 00 00 */ cmpwi r3, 0
+/* 80346A8C 003426EC 41 82 11 2C */ beq lbl_80347BB8
+/* 80346A90 003426F0 93 21 00 20 */ stw r25, 0x20(r1)
+/* 80346A94 003426F4 7F A3 EB 78 */ mr r3, r29
+/* 80346A98 003426F8 38 A0 00 01 */ li r5, 1
+/* 80346A9C 003426FC 93 1E 00 14 */ stw r24, 0x14(r30)
+/* 80346AA0 00342700 80 92 00 08 */ lwz r4, 8(r18)
+/* 80346AA4 00342704 48 00 14 F1 */ bl gpiCheckForError
+/* 80346AA8 00342708 2C 03 00 00 */ cmpwi r3, 0
+/* 80346AAC 0034270C 41 82 00 14 */ beq lbl_80346AC0
+/* 80346AB0 00342710 38 00 00 01 */ li r0, 1
+/* 80346AB4 00342714 38 60 00 04 */ li r3, 4
+/* 80346AB8 00342718 90 12 01 44 */ stw r0, 0x144(r18)
+/* 80346ABC 0034271C 48 00 11 18 */ b lbl_80347BD4
+lbl_80346AC0:
+/* 80346AC0 00342720 80 12 00 00 */ lwz r0, 0(r18)
+/* 80346AC4 00342724 2C 00 00 01 */ cmpwi r0, 1
+/* 80346AC8 00342728 40 82 03 20 */ bne lbl_80346DE8
+/* 80346ACC 0034272C 93 21 00 A0 */ stw r25, 0xa0(r1)
+/* 80346AD0 00342730 3A 60 00 00 */ li r19, 0
+/* 80346AD4 00342734 93 21 00 A4 */ stw r25, 0xa4(r1)
+/* 80346AD8 00342738 93 21 00 AC */ stw r25, 0xac(r1)
+/* 80346ADC 0034273C 93 41 00 A8 */ stw r26, 0xa8(r1)
+lbl_80346AE0:
+/* 80346AE0 00342740 80 92 00 08 */ lwz r4, 8(r18)
+/* 80346AE4 00342744 7F A3 EB 78 */ mr r3, r29
+/* 80346AE8 00342748 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80346AEC 0034274C 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80346AF0 00342750 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80346AF4 00342754 48 00 17 31 */ bl gpiReadKeyAndValue
+/* 80346AF8 00342758 2C 03 00 00 */ cmpwi r3, 0
+/* 80346AFC 0034275C 41 82 00 08 */ beq lbl_80346B04
+/* 80346B00 00342760 48 00 10 D4 */ b lbl_80347BD4
+lbl_80346B04:
+/* 80346B04 00342764 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346B08 00342768 38 8D 92 00 */ addi r4, r13, lbl_8063E4C0-_SDA_BASE_
+/* 80346B0C 0034276C 4B E8 79 41 */ bl strcmp
+/* 80346B10 00342770 2C 03 00 00 */ cmpwi r3, 0
+/* 80346B14 00342774 40 82 00 5C */ bne lbl_80346B70
+/* 80346B18 00342778 80 92 00 08 */ lwz r4, 8(r18)
+/* 80346B1C 0034277C 7F A3 EB 78 */ mr r3, r29
+/* 80346B20 00342780 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80346B24 00342784 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80346B28 00342788 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80346B2C 0034278C 48 00 16 F9 */ bl gpiReadKeyAndValue
+/* 80346B30 00342790 2C 03 00 00 */ cmpwi r3, 0
+/* 80346B34 00342794 41 82 00 08 */ beq lbl_80346B3C
+/* 80346B38 00342798 48 00 10 9C */ b lbl_80347BD4
+lbl_80346B3C:
+/* 80346B3C 0034279C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346B40 003427A0 38 8D 92 08 */ addi r4, r13, lbl_8063E4C8-_SDA_BASE_
+/* 80346B44 003427A4 4B E8 79 09 */ bl strcmp
+/* 80346B48 003427A8 2C 03 00 00 */ cmpwi r3, 0
+/* 80346B4C 003427AC 40 82 00 1C */ bne lbl_80346B68
+/* 80346B50 003427B0 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80346B54 003427B4 38 8D 92 10 */ addi r4, r13, lbl_8063E4D0-_SDA_BASE_
+/* 80346B58 003427B8 4B E8 78 F5 */ bl strcmp
+/* 80346B5C 003427BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80346B60 003427C0 41 82 00 08 */ beq lbl_80346B68
+/* 80346B64 003427C4 93 61 00 A8 */ stw r27, 0xa8(r1)
+lbl_80346B68:
+/* 80346B68 003427C8 3A 60 00 01 */ li r19, 1
+/* 80346B6C 003427CC 48 00 01 D4 */ b lbl_80346D40
+lbl_80346B70:
+/* 80346B70 003427D0 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346B74 003427D4 38 8D 92 14 */ addi r4, r13, lbl_8063E4D4-_SDA_BASE_
+/* 80346B78 003427D8 4B E8 78 D5 */ bl strcmp
+/* 80346B7C 003427DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80346B80 003427E0 40 82 01 98 */ bne lbl_80346D18
+/* 80346B84 003427E4 80 81 00 A4 */ lwz r4, 0xa4(r1)
+/* 80346B88 003427E8 80 61 00 AC */ lwz r3, 0xac(r1)
+/* 80346B8C 003427EC 38 04 00 01 */ addi r0, r4, 1
+/* 80346B90 003427F0 1C 80 00 AC */ mulli r4, r0, 0xac
+/* 80346B94 003427F4 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 80346B98 003427F8 4B FF 27 8D */ bl gsirealloc
+/* 80346B9C 003427FC 2C 03 00 00 */ cmpwi r3, 0
+/* 80346BA0 00342800 90 61 00 AC */ stw r3, 0xac(r1)
+/* 80346BA4 00342804 40 82 00 18 */ bne lbl_80346BBC
+/* 80346BA8 00342808 7F A3 EB 78 */ mr r3, r29
+/* 80346BAC 0034280C 38 95 00 40 */ addi r4, r21, 0x40
+/* 80346BB0 00342810 48 00 18 A9 */ bl gpiSetErrorString
+/* 80346BB4 00342814 38 60 00 01 */ li r3, 1
+/* 80346BB8 00342818 48 00 10 1C */ b lbl_80347BD4
+lbl_80346BBC:
+/* 80346BBC 0034281C 80 C1 00 A4 */ lwz r6, 0xa4(r1)
+/* 80346BC0 00342820 38 80 00 00 */ li r4, 0
+/* 80346BC4 00342824 38 A0 00 AC */ li r5, 0xac
+/* 80346BC8 00342828 38 06 FF FF */ addi r0, r6, -1
+/* 80346BCC 0034282C 1C 00 00 AC */ mulli r0, r0, 0xac
+/* 80346BD0 00342830 7E 23 02 14 */ add r17, r3, r0
+/* 80346BD4 00342834 7E 23 8B 78 */ mr r3, r17
+/* 80346BD8 00342838 4B CB D5 2D */ bl memset
+/* 80346BDC 0034283C 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80346BE0 00342840 4B E8 9B 2D */ bl atoi
+/* 80346BE4 00342844 90 71 00 00 */ stw r3, 0(r17)
+/* 80346BE8 00342848 3A 00 00 00 */ li r16, 0
+lbl_80346BEC:
+/* 80346BEC 0034284C 81 E1 00 20 */ lwz r15, 0x20(r1)
+/* 80346BF0 00342850 7F A3 EB 78 */ mr r3, r29
+/* 80346BF4 00342854 80 92 00 08 */ lwz r4, 8(r18)
+/* 80346BF8 00342858 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80346BFC 0034285C 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80346C00 00342860 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80346C04 00342864 48 00 16 21 */ bl gpiReadKeyAndValue
+/* 80346C08 00342868 2C 03 00 00 */ cmpwi r3, 0
+/* 80346C0C 0034286C 41 82 00 08 */ beq lbl_80346C14
+/* 80346C10 00342870 48 00 0F C4 */ b lbl_80347BD4
+lbl_80346C14:
+/* 80346C14 00342874 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346C18 00342878 38 8D 92 18 */ addi r4, r13, lbl_8063E4D8-_SDA_BASE_
+/* 80346C1C 0034287C 4B E8 78 31 */ bl strcmp
+/* 80346C20 00342880 2C 03 00 00 */ cmpwi r3, 0
+/* 80346C24 00342884 40 82 00 18 */ bne lbl_80346C3C
+/* 80346C28 00342888 38 71 00 04 */ addi r3, r17, 4
+/* 80346C2C 0034288C 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80346C30 00342890 38 A0 00 1F */ li r5, 0x1f
+/* 80346C34 00342894 48 00 13 1D */ bl strzcpy
+/* 80346C38 00342898 48 00 00 D4 */ b lbl_80346D0C
+lbl_80346C3C:
+/* 80346C3C 0034289C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346C40 003428A0 38 95 02 A0 */ addi r4, r21, 0x2a0
+/* 80346C44 003428A4 4B E8 78 09 */ bl strcmp
+/* 80346C48 003428A8 2C 03 00 00 */ cmpwi r3, 0
+/* 80346C4C 003428AC 40 82 00 18 */ bne lbl_80346C64
+/* 80346C50 003428B0 38 71 00 23 */ addi r3, r17, 0x23
+/* 80346C54 003428B4 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80346C58 003428B8 38 A0 00 15 */ li r5, 0x15
+/* 80346C5C 003428BC 48 00 12 F5 */ bl strzcpy
+/* 80346C60 003428C0 48 00 00 AC */ b lbl_80346D0C
+lbl_80346C64:
+/* 80346C64 003428C4 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346C68 003428C8 38 95 02 AC */ addi r4, r21, 0x2ac
+/* 80346C6C 003428CC 4B E8 77 E1 */ bl strcmp
+/* 80346C70 003428D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80346C74 003428D4 40 82 00 18 */ bne lbl_80346C8C
+/* 80346C78 003428D8 38 71 00 38 */ addi r3, r17, 0x38
+/* 80346C7C 003428DC 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80346C80 003428E0 38 A0 00 1F */ li r5, 0x1f
+/* 80346C84 003428E4 48 00 12 CD */ bl strzcpy
+/* 80346C88 003428E8 48 00 00 84 */ b lbl_80346D0C
+lbl_80346C8C:
+/* 80346C8C 003428EC 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346C90 003428F0 38 95 02 B8 */ addi r4, r21, 0x2b8
+/* 80346C94 003428F4 4B E8 77 B9 */ bl strcmp
+/* 80346C98 003428F8 2C 03 00 00 */ cmpwi r3, 0
+/* 80346C9C 003428FC 40 82 00 18 */ bne lbl_80346CB4
+/* 80346CA0 00342900 38 71 00 57 */ addi r3, r17, 0x57
+/* 80346CA4 00342904 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80346CA8 00342908 38 A0 00 1F */ li r5, 0x1f
+/* 80346CAC 0034290C 48 00 12 A5 */ bl strzcpy
+/* 80346CB0 00342910 48 00 00 5C */ b lbl_80346D0C
+lbl_80346CB4:
+/* 80346CB4 00342914 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346CB8 00342918 38 8D 92 20 */ addi r4, r13, lbl_8063E4E0-_SDA_BASE_
+/* 80346CBC 0034291C 4B E8 77 91 */ bl strcmp
+/* 80346CC0 00342920 2C 03 00 00 */ cmpwi r3, 0
+/* 80346CC4 00342924 40 82 00 18 */ bne lbl_80346CDC
+/* 80346CC8 00342928 38 71 00 76 */ addi r3, r17, 0x76
+/* 80346CCC 0034292C 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80346CD0 00342930 38 A0 00 33 */ li r5, 0x33
+/* 80346CD4 00342934 48 00 12 7D */ bl strzcpy
+/* 80346CD8 00342938 48 00 00 34 */ b lbl_80346D0C
+lbl_80346CDC:
+/* 80346CDC 0034293C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346CE0 00342940 38 8D 92 14 */ addi r4, r13, lbl_8063E4D4-_SDA_BASE_
+/* 80346CE4 00342944 4B E8 77 69 */ bl strcmp
+/* 80346CE8 00342948 2C 03 00 00 */ cmpwi r3, 0
+/* 80346CEC 0034294C 41 82 00 18 */ beq lbl_80346D04
+/* 80346CF0 00342950 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346CF4 00342954 38 8D 92 00 */ addi r4, r13, lbl_8063E4C0-_SDA_BASE_
+/* 80346CF8 00342958 4B E8 77 55 */ bl strcmp
+/* 80346CFC 0034295C 2C 03 00 00 */ cmpwi r3, 0
+/* 80346D00 00342960 40 82 00 0C */ bne lbl_80346D0C
+lbl_80346D04:
+/* 80346D04 00342964 3A 00 00 01 */ li r16, 1
+/* 80346D08 00342968 91 E1 00 20 */ stw r15, 0x20(r1)
+lbl_80346D0C:
+/* 80346D0C 0034296C 2C 10 00 00 */ cmpwi r16, 0
+/* 80346D10 00342970 41 82 FE DC */ beq lbl_80346BEC
+/* 80346D14 00342974 48 00 00 2C */ b lbl_80346D40
+lbl_80346D18:
+/* 80346D18 00342978 7F A3 EB 78 */ mr r3, r29
+/* 80346D1C 0034297C 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80346D20 00342980 38 80 00 01 */ li r4, 1
+/* 80346D24 00342984 48 00 16 E5 */ bl gpiSetError
+/* 80346D28 00342988 7F A3 EB 78 */ mr r3, r29
+/* 80346D2C 0034298C 38 80 00 03 */ li r4, 3
+/* 80346D30 00342990 38 A0 00 01 */ li r5, 1
+/* 80346D34 00342994 4B FF 8F 35 */ bl gpiCallErrorCallback
+/* 80346D38 00342998 38 60 00 03 */ li r3, 3
+/* 80346D3C 0034299C 48 00 0E 98 */ b lbl_80347BD4
+lbl_80346D40:
+/* 80346D40 003429A0 2C 13 00 00 */ cmpwi r19, 0
+/* 80346D44 003429A4 41 82 FD 9C */ beq lbl_80346AE0
+/* 80346D48 003429A8 81 9E 00 0C */ lwz r12, 0xc(r30)
+/* 80346D4C 003429AC 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 80346D50 003429B0 2C 0C 00 00 */ cmpwi r12, 0
+/* 80346D54 003429B4 91 81 00 98 */ stw r12, 0x98(r1)
+/* 80346D58 003429B8 81 E1 00 A8 */ lwz r15, 0xa8(r1)
+/* 80346D5C 003429BC 90 A1 00 9C */ stw r5, 0x9c(r1)
+/* 80346D60 003429C0 41 82 00 14 */ beq lbl_80346D74
+/* 80346D64 003429C4 7F A3 EB 78 */ mr r3, r29
+/* 80346D68 003429C8 38 81 00 A0 */ addi r4, r1, 0xa0
+/* 80346D6C 003429CC 7D 89 03 A6 */ mtctr r12
+/* 80346D70 003429D0 4E 80 04 21 */ bctrl
+lbl_80346D74:
+/* 80346D74 003429D4 2C 0F 06 00 */ cmpwi r15, 0x600
+/* 80346D78 003429D8 40 82 00 60 */ bne lbl_80346DD8
+/* 80346D7C 003429DC 80 01 00 A8 */ lwz r0, 0xa8(r1)
+/* 80346D80 003429E0 2C 00 06 00 */ cmpwi r0, 0x600
+/* 80346D84 003429E4 40 82 00 54 */ bne lbl_80346DD8
+/* 80346D88 003429E8 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80346D8C 003429EC 7F A3 EB 78 */ mr r3, r29
+/* 80346D90 003429F0 38 92 00 28 */ addi r4, r18, 0x28
+/* 80346D94 003429F4 38 B2 00 47 */ addi r5, r18, 0x47
+/* 80346D98 003429F8 90 01 00 08 */ stw r0, 8(r1)
+/* 80346D9C 003429FC 38 D2 00 5C */ addi r6, r18, 0x5c
+/* 80346DA0 00342A00 38 F2 00 8F */ addi r7, r18, 0x8f
+/* 80346DA4 00342A04 39 12 00 AE */ addi r8, r18, 0xae
+/* 80346DA8 00342A08 80 1E 00 0C */ lwz r0, 0xc(r30)
+/* 80346DAC 00342A0C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80346DB0 00342A10 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 80346DB4 00342A14 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80346DB8 00342A18 81 41 00 A4 */ lwz r10, 0xa4(r1)
+/* 80346DBC 00342A1C 80 12 01 38 */ lwz r0, 0x138(r18)
+/* 80346DC0 00342A20 81 32 01 34 */ lwz r9, 0x134(r18)
+/* 80346DC4 00342A24 7D 4A 02 14 */ add r10, r10, r0
+/* 80346DC8 00342A28 4B FF F2 09 */ bl gpiProfileSearch
+/* 80346DCC 00342A2C 2C 03 00 00 */ cmpwi r3, 0
+/* 80346DD0 00342A30 41 82 00 08 */ beq lbl_80346DD8
+/* 80346DD4 00342A34 48 00 0E 00 */ b lbl_80347BD4
+lbl_80346DD8:
+/* 80346DD8 00342A38 80 61 00 AC */ lwz r3, 0xac(r1)
+/* 80346DDC 00342A3C 4B FF 25 5D */ bl gsifree
+/* 80346DE0 00342A40 93 21 00 AC */ stw r25, 0xac(r1)
+/* 80346DE4 00342A44 48 00 0D CC */ b lbl_80347BB0
+lbl_80346DE8:
+/* 80346DE8 00342A48 2C 00 00 02 */ cmpwi r0, 2
+/* 80346DEC 00342A4C 40 82 01 04 */ bne lbl_80346EF0
+/* 80346DF0 00342A50 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80346DF4 00342A54 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 80346DF8 00342A58 2C 03 00 00 */ cmpwi r3, 0
+/* 80346DFC 00342A5C 90 61 00 28 */ stw r3, 0x28(r1)
+/* 80346E00 00342A60 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 80346E04 00342A64 41 82 0D AC */ beq lbl_80347BB0
+/* 80346E08 00342A68 80 92 00 08 */ lwz r4, 8(r18)
+/* 80346E0C 00342A6C 7F A3 EB 78 */ mr r3, r29
+/* 80346E10 00342A70 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80346E14 00342A74 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80346E18 00342A78 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80346E1C 00342A7C 48 00 14 09 */ bl gpiReadKeyAndValue
+/* 80346E20 00342A80 2C 03 00 00 */ cmpwi r3, 0
+/* 80346E24 00342A84 41 82 00 08 */ beq lbl_80346E2C
+/* 80346E28 00342A88 48 00 0D AC */ b lbl_80347BD4
+lbl_80346E2C:
+/* 80346E2C 00342A8C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346E30 00342A90 38 8D 92 28 */ addi r4, r13, lbl_8063E4E8-_SDA_BASE_
+/* 80346E34 00342A94 4B E8 76 19 */ bl strcmp
+/* 80346E38 00342A98 2C 03 00 00 */ cmpwi r3, 0
+/* 80346E3C 00342A9C 41 82 00 2C */ beq lbl_80346E68
+/* 80346E40 00342AA0 7F A3 EB 78 */ mr r3, r29
+/* 80346E44 00342AA4 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80346E48 00342AA8 38 80 00 01 */ li r4, 1
+/* 80346E4C 00342AAC 48 00 15 BD */ bl gpiSetError
+/* 80346E50 00342AB0 7F A3 EB 78 */ mr r3, r29
+/* 80346E54 00342AB4 38 80 00 03 */ li r4, 3
+/* 80346E58 00342AB8 38 A0 00 01 */ li r5, 1
+/* 80346E5C 00342ABC 4B FF 8E 0D */ bl gpiCallErrorCallback
+/* 80346E60 00342AC0 38 60 00 03 */ li r3, 3
+/* 80346E64 00342AC4 48 00 0D 70 */ b lbl_80347BD4
+lbl_80346E68:
+/* 80346E68 00342AC8 38 60 00 3C */ li r3, 0x3c
+/* 80346E6C 00342ACC 4B FF 24 A9 */ bl gsimalloc
+/* 80346E70 00342AD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80346E74 00342AD4 7C 6F 1B 78 */ mr r15, r3
+/* 80346E78 00342AD8 40 82 00 18 */ bne lbl_80346E90
+/* 80346E7C 00342ADC 7F A3 EB 78 */ mr r3, r29
+/* 80346E80 00342AE0 38 95 00 40 */ addi r4, r21, 0x40
+/* 80346E84 00342AE4 48 00 15 D5 */ bl gpiSetErrorString
+/* 80346E88 00342AE8 38 60 00 01 */ li r3, 1
+/* 80346E8C 00342AEC 48 00 0D 48 */ b lbl_80347BD4
+lbl_80346E90:
+/* 80346E90 00342AF0 93 23 00 00 */ stw r25, 0(r3)
+/* 80346E94 00342AF4 38 92 00 5C */ addi r4, r18, 0x5c
+/* 80346E98 00342AF8 38 A0 00 33 */ li r5, 0x33
+/* 80346E9C 00342AFC 38 63 00 04 */ addi r3, r3, 4
+/* 80346EA0 00342B00 48 00 10 B1 */ bl strzcpy
+/* 80346EA4 00342B04 88 01 00 E0 */ lbz r0, 0xe0(r1)
+/* 80346EA8 00342B08 2C 00 00 30 */ cmpwi r0, 0x30
+/* 80346EAC 00342B0C 40 82 00 0C */ bne lbl_80346EB8
+/* 80346EB0 00342B10 93 2F 00 38 */ stw r25, 0x38(r15)
+/* 80346EB4 00342B14 48 00 00 08 */ b lbl_80346EBC
+lbl_80346EB8:
+/* 80346EB8 00342B18 93 8F 00 38 */ stw r28, 0x38(r15)
+lbl_80346EBC:
+/* 80346EBC 00342B1C 80 81 00 28 */ lwz r4, 0x28(r1)
+/* 80346EC0 00342B20 7F A3 EB 78 */ mr r3, r29
+/* 80346EC4 00342B24 80 01 00 2C */ lwz r0, 0x2c(r1)
+/* 80346EC8 00342B28 7D E5 7B 78 */ mr r5, r15
+/* 80346ECC 00342B2C 90 81 00 90 */ stw r4, 0x90(r1)
+/* 80346ED0 00342B30 7F C6 F3 78 */ mr r6, r30
+/* 80346ED4 00342B34 38 81 00 90 */ addi r4, r1, 0x90
+/* 80346ED8 00342B38 38 E0 00 00 */ li r7, 0
+/* 80346EDC 00342B3C 90 01 00 94 */ stw r0, 0x94(r1)
+/* 80346EE0 00342B40 4B FF 8E 49 */ bl gpiAddCallback
+/* 80346EE4 00342B44 2C 03 00 00 */ cmpwi r3, 0
+/* 80346EE8 00342B48 41 82 0C C8 */ beq lbl_80347BB0
+/* 80346EEC 00342B4C 48 00 0C E8 */ b lbl_80347BD4
+lbl_80346EF0:
+/* 80346EF0 00342B50 2C 00 00 03 */ cmpwi r0, 3
+/* 80346EF4 00342B54 40 82 02 B8 */ bne lbl_803471AC
+/* 80346EF8 00342B58 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80346EFC 00342B5C 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 80346F00 00342B60 2C 03 00 00 */ cmpwi r3, 0
+/* 80346F04 00342B64 90 61 00 30 */ stw r3, 0x30(r1)
+/* 80346F08 00342B68 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80346F0C 00342B6C 41 82 0C A4 */ beq lbl_80347BB0
+/* 80346F10 00342B70 38 60 00 44 */ li r3, 0x44
+/* 80346F14 00342B74 4B FF 24 01 */ bl gsimalloc
+/* 80346F18 00342B78 2C 03 00 00 */ cmpwi r3, 0
+/* 80346F1C 00342B7C 7C 74 1B 78 */ mr r20, r3
+/* 80346F20 00342B80 40 82 00 18 */ bne lbl_80346F38
+/* 80346F24 00342B84 7F A3 EB 78 */ mr r3, r29
+/* 80346F28 00342B88 38 95 00 40 */ addi r4, r21, 0x40
+/* 80346F2C 00342B8C 48 00 15 2D */ bl gpiSetErrorString
+/* 80346F30 00342B90 38 60 00 01 */ li r3, 1
+/* 80346F34 00342B94 48 00 0C A0 */ b lbl_80347BD4
+lbl_80346F38:
+/* 80346F38 00342B98 93 23 00 00 */ stw r25, 0(r3)
+/* 80346F3C 00342B9C 38 63 00 04 */ addi r3, r3, 4
+/* 80346F40 00342BA0 38 92 00 5C */ addi r4, r18, 0x5c
+/* 80346F44 00342BA4 4B E8 73 8D */ bl strcpy
+/* 80346F48 00342BA8 93 34 00 38 */ stw r25, 0x38(r20)
+/* 80346F4C 00342BAC 7F A3 EB 78 */ mr r3, r29
+/* 80346F50 00342BB0 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80346F54 00342BB4 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80346F58 00342BB8 93 34 00 3C */ stw r25, 0x3c(r20)
+/* 80346F5C 00342BBC 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80346F60 00342BC0 93 34 00 40 */ stw r25, 0x40(r20)
+/* 80346F64 00342BC4 80 92 00 08 */ lwz r4, 8(r18)
+/* 80346F68 00342BC8 48 00 12 BD */ bl gpiReadKeyAndValue
+/* 80346F6C 00342BCC 2C 03 00 00 */ cmpwi r3, 0
+/* 80346F70 00342BD0 41 82 00 08 */ beq lbl_80346F78
+/* 80346F74 00342BD4 48 00 0C 60 */ b lbl_80347BD4
+lbl_80346F78:
+/* 80346F78 00342BD8 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346F7C 00342BDC 38 8D 92 2C */ addi r4, r13, lbl_8063E4EC-_SDA_BASE_
+/* 80346F80 00342BE0 4B E8 74 CD */ bl strcmp
+/* 80346F84 00342BE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80346F88 00342BE8 41 82 00 2C */ beq lbl_80346FB4
+/* 80346F8C 00342BEC 7F A3 EB 78 */ mr r3, r29
+/* 80346F90 00342BF0 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80346F94 00342BF4 38 80 00 01 */ li r4, 1
+/* 80346F98 00342BF8 48 00 14 71 */ bl gpiSetError
+/* 80346F9C 00342BFC 7F A3 EB 78 */ mr r3, r29
+/* 80346FA0 00342C00 38 80 00 03 */ li r4, 3
+/* 80346FA4 00342C04 38 A0 00 01 */ li r5, 1
+/* 80346FA8 00342C08 4B FF 8C C1 */ bl gpiCallErrorCallback
+/* 80346FAC 00342C0C 38 60 00 03 */ li r3, 3
+/* 80346FB0 00342C10 48 00 0C 24 */ b lbl_80347BD4
+lbl_80346FB4:
+/* 80346FB4 00342C14 3A 60 00 00 */ li r19, 0
+lbl_80346FB8:
+/* 80346FB8 00342C18 80 92 00 08 */ lwz r4, 8(r18)
+/* 80346FBC 00342C1C 7F A3 EB 78 */ mr r3, r29
+/* 80346FC0 00342C20 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80346FC4 00342C24 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80346FC8 00342C28 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80346FCC 00342C2C 48 00 12 59 */ bl gpiReadKeyAndValue
+/* 80346FD0 00342C30 2C 03 00 00 */ cmpwi r3, 0
+/* 80346FD4 00342C34 41 82 00 08 */ beq lbl_80346FDC
+/* 80346FD8 00342C38 48 00 0B FC */ b lbl_80347BD4
+lbl_80346FDC:
+/* 80346FDC 00342C3C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80346FE0 00342C40 38 8D 92 18 */ addi r4, r13, lbl_8063E4D8-_SDA_BASE_
+/* 80346FE4 00342C44 4B E8 74 69 */ bl strcmp
+/* 80346FE8 00342C48 2C 03 00 00 */ cmpwi r3, 0
+/* 80346FEC 00342C4C 40 82 00 98 */ bne lbl_80347084
+/* 80346FF0 00342C50 80 94 00 38 */ lwz r4, 0x38(r20)
+/* 80346FF4 00342C54 80 74 00 3C */ lwz r3, 0x3c(r20)
+/* 80346FF8 00342C58 38 04 00 01 */ addi r0, r4, 1
+/* 80346FFC 00342C5C 54 04 10 3A */ slwi r4, r0, 2
+/* 80347000 00342C60 4B FF 23 25 */ bl gsirealloc
+/* 80347004 00342C64 2C 03 00 00 */ cmpwi r3, 0
+/* 80347008 00342C68 40 82 00 18 */ bne lbl_80347020
+/* 8034700C 00342C6C 7F A3 EB 78 */ mr r3, r29
+/* 80347010 00342C70 38 95 00 40 */ addi r4, r21, 0x40
+/* 80347014 00342C74 48 00 14 45 */ bl gpiSetErrorString
+/* 80347018 00342C78 38 60 00 01 */ li r3, 1
+/* 8034701C 00342C7C 48 00 0B B8 */ b lbl_80347BD4
+lbl_80347020:
+/* 80347020 00342C80 90 74 00 3C */ stw r3, 0x3c(r20)
+/* 80347024 00342C84 38 60 00 1F */ li r3, 0x1f
+/* 80347028 00342C88 4B FF 22 ED */ bl gsimalloc
+/* 8034702C 00342C8C 2C 03 00 00 */ cmpwi r3, 0
+/* 80347030 00342C90 40 82 00 18 */ bne lbl_80347048
+/* 80347034 00342C94 7F A3 EB 78 */ mr r3, r29
+/* 80347038 00342C98 38 95 00 40 */ addi r4, r21, 0x40
+/* 8034703C 00342C9C 48 00 14 1D */ bl gpiSetErrorString
+/* 80347040 00342CA0 38 60 00 01 */ li r3, 1
+/* 80347044 00342CA4 48 00 0B 90 */ b lbl_80347BD4
+lbl_80347048:
+/* 80347048 00342CA8 80 14 00 38 */ lwz r0, 0x38(r20)
+/* 8034704C 00342CAC 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80347050 00342CB0 80 D4 00 3C */ lwz r6, 0x3c(r20)
+/* 80347054 00342CB4 38 A0 00 1F */ li r5, 0x1f
+/* 80347058 00342CB8 54 00 10 3A */ slwi r0, r0, 2
+/* 8034705C 00342CBC 7C 66 01 2E */ stwx r3, r6, r0
+/* 80347060 00342CC0 80 14 00 38 */ lwz r0, 0x38(r20)
+/* 80347064 00342CC4 80 74 00 3C */ lwz r3, 0x3c(r20)
+/* 80347068 00342CC8 54 00 10 3A */ slwi r0, r0, 2
+/* 8034706C 00342CCC 7C 63 00 2E */ lwzx r3, r3, r0
+/* 80347070 00342CD0 48 00 0E E1 */ bl strzcpy
+/* 80347074 00342CD4 80 74 00 38 */ lwz r3, 0x38(r20)
+/* 80347078 00342CD8 38 03 00 01 */ addi r0, r3, 1
+/* 8034707C 00342CDC 90 14 00 38 */ stw r0, 0x38(r20)
+/* 80347080 00342CE0 48 00 00 F0 */ b lbl_80347170
+lbl_80347084:
+/* 80347084 00342CE4 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347088 00342CE8 38 95 02 A0 */ addi r4, r21, 0x2a0
+/* 8034708C 00342CEC 4B E8 73 C1 */ bl strcmp
+/* 80347090 00342CF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80347094 00342CF4 40 82 00 98 */ bne lbl_8034712C
+/* 80347098 00342CF8 80 14 00 38 */ lwz r0, 0x38(r20)
+/* 8034709C 00342CFC 2C 00 00 00 */ cmpwi r0, 0
+/* 803470A0 00342D00 40 81 00 D0 */ ble lbl_80347170
+/* 803470A4 00342D04 80 74 00 40 */ lwz r3, 0x40(r20)
+/* 803470A8 00342D08 54 04 10 3A */ slwi r4, r0, 2
+/* 803470AC 00342D0C 4B FF 22 79 */ bl gsirealloc
+/* 803470B0 00342D10 2C 03 00 00 */ cmpwi r3, 0
+/* 803470B4 00342D14 40 82 00 18 */ bne lbl_803470CC
+/* 803470B8 00342D18 7F A3 EB 78 */ mr r3, r29
+/* 803470BC 00342D1C 38 95 00 40 */ addi r4, r21, 0x40
+/* 803470C0 00342D20 48 00 13 99 */ bl gpiSetErrorString
+/* 803470C4 00342D24 38 60 00 01 */ li r3, 1
+/* 803470C8 00342D28 48 00 0B 0C */ b lbl_80347BD4
+lbl_803470CC:
+/* 803470CC 00342D2C 90 74 00 40 */ stw r3, 0x40(r20)
+/* 803470D0 00342D30 38 60 00 15 */ li r3, 0x15
+/* 803470D4 00342D34 4B FF 22 41 */ bl gsimalloc
+/* 803470D8 00342D38 2C 03 00 00 */ cmpwi r3, 0
+/* 803470DC 00342D3C 40 82 00 18 */ bne lbl_803470F4
+/* 803470E0 00342D40 7F A3 EB 78 */ mr r3, r29
+/* 803470E4 00342D44 38 95 00 40 */ addi r4, r21, 0x40
+/* 803470E8 00342D48 48 00 13 71 */ bl gpiSetErrorString
+/* 803470EC 00342D4C 38 60 00 01 */ li r3, 1
+/* 803470F0 00342D50 48 00 0A E4 */ b lbl_80347BD4
+lbl_803470F4:
+/* 803470F4 00342D54 80 14 00 38 */ lwz r0, 0x38(r20)
+/* 803470F8 00342D58 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 803470FC 00342D5C 80 D4 00 40 */ lwz r6, 0x40(r20)
+/* 80347100 00342D60 38 A0 00 15 */ li r5, 0x15
+/* 80347104 00342D64 54 00 10 3A */ slwi r0, r0, 2
+/* 80347108 00342D68 7C C6 02 14 */ add r6, r6, r0
+/* 8034710C 00342D6C 90 66 FF FC */ stw r3, -4(r6)
+/* 80347110 00342D70 80 14 00 38 */ lwz r0, 0x38(r20)
+/* 80347114 00342D74 80 74 00 40 */ lwz r3, 0x40(r20)
+/* 80347118 00342D78 54 00 10 3A */ slwi r0, r0, 2
+/* 8034711C 00342D7C 7C 63 02 14 */ add r3, r3, r0
+/* 80347120 00342D80 80 63 FF FC */ lwz r3, -4(r3)
+/* 80347124 00342D84 48 00 0E 2D */ bl strzcpy
+/* 80347128 00342D88 48 00 00 48 */ b lbl_80347170
+lbl_8034712C:
+/* 8034712C 00342D8C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347130 00342D90 38 8D 92 30 */ addi r4, r13, lbl_8063E4F0-_SDA_BASE_
+/* 80347134 00342D94 4B E8 73 19 */ bl strcmp
+/* 80347138 00342D98 2C 03 00 00 */ cmpwi r3, 0
+/* 8034713C 00342D9C 40 82 00 0C */ bne lbl_80347148
+/* 80347140 00342DA0 3A 60 00 01 */ li r19, 1
+/* 80347144 00342DA4 48 00 00 2C */ b lbl_80347170
+lbl_80347148:
+/* 80347148 00342DA8 7F A3 EB 78 */ mr r3, r29
+/* 8034714C 00342DAC 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80347150 00342DB0 38 80 00 01 */ li r4, 1
+/* 80347154 00342DB4 48 00 12 B5 */ bl gpiSetError
+/* 80347158 00342DB8 7F A3 EB 78 */ mr r3, r29
+/* 8034715C 00342DBC 38 80 00 03 */ li r4, 3
+/* 80347160 00342DC0 38 A0 00 01 */ li r5, 1
+/* 80347164 00342DC4 4B FF 8B 05 */ bl gpiCallErrorCallback
+/* 80347168 00342DC8 38 60 00 03 */ li r3, 3
+/* 8034716C 00342DCC 48 00 0A 68 */ b lbl_80347BD4
+lbl_80347170:
+/* 80347170 00342DD0 2C 13 00 00 */ cmpwi r19, 0
+/* 80347174 00342DD4 41 82 FE 44 */ beq lbl_80346FB8
+/* 80347178 00342DD8 80 81 00 30 */ lwz r4, 0x30(r1)
+/* 8034717C 00342DDC 7F A3 EB 78 */ mr r3, r29
+/* 80347180 00342DE0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80347184 00342DE4 7E 85 A3 78 */ mr r5, r20
+/* 80347188 00342DE8 90 81 00 88 */ stw r4, 0x88(r1)
+/* 8034718C 00342DEC 7F C6 F3 78 */ mr r6, r30
+/* 80347190 00342DF0 38 81 00 88 */ addi r4, r1, 0x88
+/* 80347194 00342DF4 38 E0 00 03 */ li r7, 3
+/* 80347198 00342DF8 90 01 00 8C */ stw r0, 0x8c(r1)
+/* 8034719C 00342DFC 4B FF 8B 8D */ bl gpiAddCallback
+/* 803471A0 00342E00 2C 03 00 00 */ cmpwi r3, 0
+/* 803471A4 00342E04 41 82 0A 0C */ beq lbl_80347BB0
+/* 803471A8 00342E08 48 00 0A 2C */ b lbl_80347BD4
+lbl_803471AC:
+/* 803471AC 00342E0C 2C 00 00 04 */ cmpwi r0, 4
+/* 803471B0 00342E10 40 82 02 54 */ bne lbl_80347404
+/* 803471B4 00342E14 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 803471B8 00342E18 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 803471BC 00342E1C 2C 03 00 00 */ cmpwi r3, 0
+/* 803471C0 00342E20 90 61 00 38 */ stw r3, 0x38(r1)
+/* 803471C4 00342E24 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 803471C8 00342E28 41 82 09 E8 */ beq lbl_80347BB0
+/* 803471CC 00342E2C 38 60 00 10 */ li r3, 0x10
+/* 803471D0 00342E30 4B FF 21 45 */ bl gsimalloc
+/* 803471D4 00342E34 2C 03 00 00 */ cmpwi r3, 0
+/* 803471D8 00342E38 7C 74 1B 78 */ mr r20, r3
+/* 803471DC 00342E3C 40 82 00 18 */ bne lbl_803471F4
+/* 803471E0 00342E40 7F A3 EB 78 */ mr r3, r29
+/* 803471E4 00342E44 38 95 00 40 */ addi r4, r21, 0x40
+/* 803471E8 00342E48 48 00 12 71 */ bl gpiSetErrorString
+/* 803471EC 00342E4C 38 60 00 01 */ li r3, 1
+/* 803471F0 00342E50 48 00 09 E4 */ b lbl_80347BD4
+lbl_803471F4:
+/* 803471F4 00342E54 80 12 01 3C */ lwz r0, 0x13c(r18)
+/* 803471F8 00342E58 3A 60 00 00 */ li r19, 0
+/* 803471FC 00342E5C 90 03 00 04 */ stw r0, 4(r3)
+/* 80347200 00342E60 93 23 00 00 */ stw r25, 0(r3)
+/* 80347204 00342E64 93 23 00 08 */ stw r25, 8(r3)
+/* 80347208 00342E68 93 23 00 0C */ stw r25, 0xc(r3)
+lbl_8034720C:
+/* 8034720C 00342E6C 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347210 00342E70 7F A3 EB 78 */ mr r3, r29
+/* 80347214 00342E74 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80347218 00342E78 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 8034721C 00342E7C 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80347220 00342E80 48 00 10 05 */ bl gpiReadKeyAndValue
+/* 80347224 00342E84 2C 03 00 00 */ cmpwi r3, 0
+/* 80347228 00342E88 41 82 00 08 */ beq lbl_80347230
+/* 8034722C 00342E8C 48 00 09 A8 */ b lbl_80347BD4
+lbl_80347230:
+/* 80347230 00342E90 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347234 00342E94 38 8D 92 38 */ addi r4, r13, lbl_8063E4F8-_SDA_BASE_
+/* 80347238 00342E98 4B E8 72 15 */ bl strcmp
+/* 8034723C 00342E9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80347240 00342EA0 40 82 00 0C */ bne lbl_8034724C
+/* 80347244 00342EA4 3A 60 00 01 */ li r19, 1
+/* 80347248 00342EA8 48 00 01 80 */ b lbl_803473C8
+lbl_8034724C:
+/* 8034724C 00342EAC 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347250 00342EB0 38 8D 92 40 */ addi r4, r13, lbl_8063E500-_SDA_BASE_
+/* 80347254 00342EB4 4B E8 71 F9 */ bl strcmp
+/* 80347258 00342EB8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034725C 00342EBC 40 82 01 44 */ bne lbl_803473A0
+/* 80347260 00342EC0 80 74 00 08 */ lwz r3, 8(r20)
+/* 80347264 00342EC4 38 03 00 01 */ addi r0, r3, 1
+/* 80347268 00342EC8 90 14 00 08 */ stw r0, 8(r20)
+/* 8034726C 00342ECC 1C 80 01 28 */ mulli r4, r0, 0x128
+/* 80347270 00342ED0 80 74 00 0C */ lwz r3, 0xc(r20)
+/* 80347274 00342ED4 4B FF 20 B1 */ bl gsirealloc
+/* 80347278 00342ED8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034727C 00342EDC 90 74 00 0C */ stw r3, 0xc(r20)
+/* 80347280 00342EE0 40 82 00 18 */ bne lbl_80347298
+/* 80347284 00342EE4 7F A3 EB 78 */ mr r3, r29
+/* 80347288 00342EE8 38 95 00 40 */ addi r4, r21, 0x40
+/* 8034728C 00342EEC 48 00 11 CD */ bl gpiSetErrorString
+/* 80347290 00342EF0 38 60 00 01 */ li r3, 1
+/* 80347294 00342EF4 48 00 09 40 */ b lbl_80347BD4
+lbl_80347298:
+/* 80347298 00342EF8 80 D4 00 08 */ lwz r6, 8(r20)
+/* 8034729C 00342EFC 38 80 00 00 */ li r4, 0
+/* 803472A0 00342F00 38 A0 01 28 */ li r5, 0x128
+/* 803472A4 00342F04 38 06 FF FF */ addi r0, r6, -1
+/* 803472A8 00342F08 1C 00 01 28 */ mulli r0, r0, 0x128
+/* 803472AC 00342F0C 7E 23 02 14 */ add r17, r3, r0
+/* 803472B0 00342F10 7E 23 8B 78 */ mr r3, r17
+/* 803472B4 00342F14 4B CB CE 51 */ bl memset
+/* 803472B8 00342F18 93 91 00 24 */ stw r28, 0x24(r17)
+/* 803472BC 00342F1C 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 803472C0 00342F20 4B E8 94 4D */ bl atoi
+/* 803472C4 00342F24 90 71 00 00 */ stw r3, 0(r17)
+/* 803472C8 00342F28 3A 00 00 00 */ li r16, 0
+lbl_803472CC:
+/* 803472CC 00342F2C 81 E1 00 20 */ lwz r15, 0x20(r1)
+/* 803472D0 00342F30 7F A3 EB 78 */ mr r3, r29
+/* 803472D4 00342F34 80 92 00 08 */ lwz r4, 8(r18)
+/* 803472D8 00342F38 38 A1 00 20 */ addi r5, r1, 0x20
+/* 803472DC 00342F3C 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 803472E0 00342F40 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 803472E4 00342F44 48 00 0F 41 */ bl gpiReadKeyAndValue
+/* 803472E8 00342F48 2C 03 00 00 */ cmpwi r3, 0
+/* 803472EC 00342F4C 41 82 00 08 */ beq lbl_803472F4
+/* 803472F0 00342F50 48 00 08 E4 */ b lbl_80347BD4
+lbl_803472F4:
+/* 803472F4 00342F54 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 803472F8 00342F58 38 8D 92 44 */ addi r4, r13, lbl_8063E504-_SDA_BASE_
+/* 803472FC 00342F5C 4B E8 71 51 */ bl strcmp
+/* 80347300 00342F60 2C 03 00 00 */ cmpwi r3, 0
+/* 80347304 00342F64 40 82 00 18 */ bne lbl_8034731C
+/* 80347308 00342F68 38 71 00 28 */ addi r3, r17, 0x28
+/* 8034730C 00342F6C 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80347310 00342F70 38 A0 01 00 */ li r5, 0x100
+/* 80347314 00342F74 48 00 0C 3D */ bl strzcpy
+/* 80347318 00342F78 48 00 00 28 */ b lbl_80347340
+lbl_8034731C:
+/* 8034731C 00342F7C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347320 00342F80 38 8D 92 18 */ addi r4, r13, lbl_8063E4D8-_SDA_BASE_
+/* 80347324 00342F84 4B E8 71 29 */ bl strcmp
+/* 80347328 00342F88 2C 03 00 00 */ cmpwi r3, 0
+/* 8034732C 00342F8C 40 82 00 14 */ bne lbl_80347340
+/* 80347330 00342F90 38 71 00 04 */ addi r3, r17, 4
+/* 80347334 00342F94 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80347338 00342F98 38 A0 00 1F */ li r5, 0x1f
+/* 8034733C 00342F9C 48 00 0C 15 */ bl strzcpy
+lbl_80347340:
+/* 80347340 00342FA0 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347344 00342FA4 38 95 02 EC */ addi r4, r21, 0x2ec
+/* 80347348 00342FA8 4B E8 71 05 */ bl strcmp
+/* 8034734C 00342FAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80347350 00342FB0 40 82 00 14 */ bne lbl_80347364
+/* 80347354 00342FB4 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80347358 00342FB8 4B E8 93 B5 */ bl atoi
+/* 8034735C 00342FBC 90 71 00 24 */ stw r3, 0x24(r17)
+/* 80347360 00342FC0 48 00 00 34 */ b lbl_80347394
+lbl_80347364:
+/* 80347364 00342FC4 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347368 00342FC8 38 8D 92 40 */ addi r4, r13, lbl_8063E500-_SDA_BASE_
+/* 8034736C 00342FCC 4B E8 70 E1 */ bl strcmp
+/* 80347370 00342FD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80347374 00342FD4 41 82 00 18 */ beq lbl_8034738C
+/* 80347378 00342FD8 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 8034737C 00342FDC 38 8D 92 38 */ addi r4, r13, lbl_8063E4F8-_SDA_BASE_
+/* 80347380 00342FE0 4B E8 70 CD */ bl strcmp
+/* 80347384 00342FE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80347388 00342FE8 40 82 00 0C */ bne lbl_80347394
+lbl_8034738C:
+/* 8034738C 00342FEC 3A 00 00 01 */ li r16, 1
+/* 80347390 00342FF0 91 E1 00 20 */ stw r15, 0x20(r1)
+lbl_80347394:
+/* 80347394 00342FF4 2C 10 00 00 */ cmpwi r16, 0
+/* 80347398 00342FF8 41 82 FF 34 */ beq lbl_803472CC
+/* 8034739C 00342FFC 48 00 00 2C */ b lbl_803473C8
+lbl_803473A0:
+/* 803473A0 00343000 7F A3 EB 78 */ mr r3, r29
+/* 803473A4 00343004 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 803473A8 00343008 38 80 00 01 */ li r4, 1
+/* 803473AC 0034300C 48 00 10 5D */ bl gpiSetError
+/* 803473B0 00343010 7F A3 EB 78 */ mr r3, r29
+/* 803473B4 00343014 38 80 00 03 */ li r4, 3
+/* 803473B8 00343018 38 A0 00 01 */ li r5, 1
+/* 803473BC 0034301C 4B FF 88 AD */ bl gpiCallErrorCallback
+/* 803473C0 00343020 38 60 00 03 */ li r3, 3
+/* 803473C4 00343024 48 00 08 10 */ b lbl_80347BD4
+lbl_803473C8:
+/* 803473C8 00343028 2C 13 00 00 */ cmpwi r19, 0
+/* 803473CC 0034302C 41 82 FE 40 */ beq lbl_8034720C
+/* 803473D0 00343030 80 81 00 38 */ lwz r4, 0x38(r1)
+/* 803473D4 00343034 7F A3 EB 78 */ mr r3, r29
+/* 803473D8 00343038 80 01 00 3C */ lwz r0, 0x3c(r1)
+/* 803473DC 0034303C 7E 85 A3 78 */ mr r5, r20
+/* 803473E0 00343040 90 81 00 80 */ stw r4, 0x80(r1)
+/* 803473E4 00343044 7F C6 F3 78 */ mr r6, r30
+/* 803473E8 00343048 38 81 00 80 */ addi r4, r1, 0x80
+/* 803473EC 0034304C 38 E0 00 04 */ li r7, 4
+/* 803473F0 00343050 90 01 00 84 */ stw r0, 0x84(r1)
+/* 803473F4 00343054 4B FF 89 35 */ bl gpiAddCallback
+/* 803473F8 00343058 2C 03 00 00 */ cmpwi r3, 0
+/* 803473FC 0034305C 41 82 07 B4 */ beq lbl_80347BB0
+/* 80347400 00343060 48 00 07 D4 */ b lbl_80347BD4
+lbl_80347404:
+/* 80347404 00343064 2C 00 00 05 */ cmpwi r0, 5
+/* 80347408 00343068 40 82 01 4C */ bne lbl_80347554
+/* 8034740C 0034306C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80347410 00343070 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 80347414 00343074 2C 03 00 00 */ cmpwi r3, 0
+/* 80347418 00343078 90 61 00 40 */ stw r3, 0x40(r1)
+/* 8034741C 0034307C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80347420 00343080 41 82 07 90 */ beq lbl_80347BB0
+/* 80347424 00343084 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347428 00343088 7F A3 EB 78 */ mr r3, r29
+/* 8034742C 0034308C 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80347430 00343090 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80347434 00343094 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80347438 00343098 48 00 0D ED */ bl gpiReadKeyAndValue
+/* 8034743C 0034309C 2C 03 00 00 */ cmpwi r3, 0
+/* 80347440 003430A0 41 82 00 08 */ beq lbl_80347448
+/* 80347444 003430A4 48 00 07 90 */ b lbl_80347BD4
+lbl_80347448:
+/* 80347448 003430A8 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 8034744C 003430AC 38 8D 92 4C */ addi r4, r13, lbl_8063E50C-_SDA_BASE_
+/* 80347450 003430B0 4B E8 6F FD */ bl strcmp
+/* 80347454 003430B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80347458 003430B8 41 82 00 2C */ beq lbl_80347484
+/* 8034745C 003430BC 7F A3 EB 78 */ mr r3, r29
+/* 80347460 003430C0 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80347464 003430C4 38 80 00 01 */ li r4, 1
+/* 80347468 003430C8 48 00 0F A1 */ bl gpiSetError
+/* 8034746C 003430CC 7F A3 EB 78 */ mr r3, r29
+/* 80347470 003430D0 38 80 00 03 */ li r4, 3
+/* 80347474 003430D4 38 A0 00 01 */ li r5, 1
+/* 80347478 003430D8 4B FF 87 F1 */ bl gpiCallErrorCallback
+/* 8034747C 003430DC 38 60 00 03 */ li r3, 3
+/* 80347480 003430E0 48 00 07 54 */ b lbl_80347BD4
+lbl_80347484:
+/* 80347484 003430E4 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80347488 003430E8 4B E8 92 85 */ bl atoi
+/* 8034748C 003430EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80347490 003430F0 7C 70 1B 78 */ mr r16, r3
+/* 80347494 003430F4 41 82 00 10 */ beq lbl_803474A4
+/* 80347498 003430F8 90 7F 04 34 */ stw r3, 0x434(r31)
+/* 8034749C 003430FC 39 E0 00 00 */ li r15, 0
+/* 803474A0 00343100 48 00 00 54 */ b lbl_803474F4
+lbl_803474A4:
+/* 803474A4 00343104 80 72 00 08 */ lwz r3, 8(r18)
+/* 803474A8 00343108 38 A1 00 E0 */ addi r5, r1, 0xe0
+/* 803474AC 0034310C 38 8D 92 50 */ addi r4, r13, lbl_8063E510-_SDA_BASE_
+/* 803474B0 00343110 38 C0 02 00 */ li r6, 0x200
+/* 803474B4 00343114 48 00 0B D9 */ bl gpiValueForKey
+/* 803474B8 00343118 2C 03 00 00 */ cmpwi r3, 0
+/* 803474BC 0034311C 40 82 00 2C */ bne lbl_803474E8
+/* 803474C0 00343120 7F A3 EB 78 */ mr r3, r29
+/* 803474C4 00343124 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 803474C8 00343128 38 80 00 01 */ li r4, 1
+/* 803474CC 0034312C 48 00 0F 3D */ bl gpiSetError
+/* 803474D0 00343130 7F A3 EB 78 */ mr r3, r29
+/* 803474D4 00343134 38 80 00 03 */ li r4, 3
+/* 803474D8 00343138 38 A0 00 01 */ li r5, 1
+/* 803474DC 0034313C 4B FF 87 8D */ bl gpiCallErrorCallback
+/* 803474E0 00343140 38 60 00 03 */ li r3, 3
+/* 803474E4 00343144 48 00 06 F0 */ b lbl_80347BD4
+lbl_803474E8:
+/* 803474E8 00343148 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 803474EC 0034314C 4B E8 92 21 */ bl atoi
+/* 803474F0 00343150 7C 6F 1B 78 */ mr r15, r3
+lbl_803474F4:
+/* 803474F4 00343154 38 60 00 08 */ li r3, 8
+/* 803474F8 00343158 4B FF 1E 1D */ bl gsimalloc
+/* 803474FC 0034315C 2C 03 00 00 */ cmpwi r3, 0
+/* 80347500 00343160 40 82 00 18 */ bne lbl_80347518
+/* 80347504 00343164 7F A3 EB 78 */ mr r3, r29
+/* 80347508 00343168 38 95 00 40 */ addi r4, r21, 0x40
+/* 8034750C 0034316C 48 00 0F 4D */ bl gpiSetErrorString
+/* 80347510 00343170 38 60 00 01 */ li r3, 1
+/* 80347514 00343174 48 00 06 C0 */ b lbl_80347BD4
+lbl_80347518:
+/* 80347518 00343178 92 03 00 00 */ stw r16, 0(r3)
+/* 8034751C 0034317C 7C 65 1B 78 */ mr r5, r3
+/* 80347520 00343180 80 E1 00 40 */ lwz r7, 0x40(r1)
+/* 80347524 00343184 7F C6 F3 78 */ mr r6, r30
+/* 80347528 00343188 91 E3 00 04 */ stw r15, 4(r3)
+/* 8034752C 0034318C 7F A3 EB 78 */ mr r3, r29
+/* 80347530 00343190 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80347534 00343194 38 81 00 78 */ addi r4, r1, 0x78
+/* 80347538 00343198 90 E1 00 78 */ stw r7, 0x78(r1)
+/* 8034753C 0034319C 38 E0 00 00 */ li r7, 0
+/* 80347540 003431A0 90 01 00 7C */ stw r0, 0x7c(r1)
+/* 80347544 003431A4 4B FF 87 E5 */ bl gpiAddCallback
+/* 80347548 003431A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034754C 003431AC 41 82 06 64 */ beq lbl_80347BB0
+/* 80347550 003431B0 48 00 06 84 */ b lbl_80347BD4
+lbl_80347554:
+/* 80347554 003431B4 2C 00 00 06 */ cmpwi r0, 6
+/* 80347558 003431B8 40 82 01 54 */ bne lbl_803476AC
+/* 8034755C 003431BC 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80347560 003431C0 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 80347564 003431C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80347568 003431C8 90 61 00 48 */ stw r3, 0x48(r1)
+/* 8034756C 003431CC 90 01 00 4C */ stw r0, 0x4c(r1)
+/* 80347570 003431D0 41 82 06 40 */ beq lbl_80347BB0
+/* 80347574 003431D4 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347578 003431D8 7F A3 EB 78 */ mr r3, r29
+/* 8034757C 003431DC 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80347580 003431E0 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80347584 003431E4 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80347588 003431E8 48 00 0C 9D */ bl gpiReadKeyAndValue
+/* 8034758C 003431EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80347590 003431F0 41 82 00 08 */ beq lbl_80347598
+/* 80347594 003431F4 48 00 06 40 */ b lbl_80347BD4
+lbl_80347598:
+/* 80347598 003431F8 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 8034759C 003431FC 38 8D 92 58 */ addi r4, r13, lbl_8063E518-_SDA_BASE_
+/* 803475A0 00343200 4B E8 6E AD */ bl strcmp
+/* 803475A4 00343204 2C 03 00 00 */ cmpwi r3, 0
+/* 803475A8 00343208 41 82 00 2C */ beq lbl_803475D4
+/* 803475AC 0034320C 7F A3 EB 78 */ mr r3, r29
+/* 803475B0 00343210 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 803475B4 00343214 38 80 00 01 */ li r4, 1
+/* 803475B8 00343218 48 00 0E 51 */ bl gpiSetError
+/* 803475BC 0034321C 7F A3 EB 78 */ mr r3, r29
+/* 803475C0 00343220 38 80 00 03 */ li r4, 3
+/* 803475C4 00343224 38 A0 00 01 */ li r5, 1
+/* 803475C8 00343228 4B FF 86 A1 */ bl gpiCallErrorCallback
+/* 803475CC 0034322C 38 60 00 03 */ li r3, 3
+/* 803475D0 00343230 48 00 06 04 */ b lbl_80347BD4
+lbl_803475D4:
+/* 803475D4 00343234 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 803475D8 00343238 4B E8 91 35 */ bl atoi
+/* 803475DC 0034323C 2C 03 00 00 */ cmpwi r3, 0
+/* 803475E0 00343240 7C 70 1B 78 */ mr r16, r3
+/* 803475E4 00343244 41 82 00 08 */ beq lbl_803475EC
+/* 803475E8 00343248 90 7F 04 34 */ stw r3, 0x434(r31)
+lbl_803475EC:
+/* 803475EC 0034324C 80 72 00 08 */ lwz r3, 8(r18)
+/* 803475F0 00343250 38 A1 00 E0 */ addi r5, r1, 0xe0
+/* 803475F4 00343254 38 8D 92 50 */ addi r4, r13, lbl_8063E510-_SDA_BASE_
+/* 803475F8 00343258 38 C0 02 00 */ li r6, 0x200
+/* 803475FC 0034325C 48 00 0A 91 */ bl gpiValueForKey
+/* 80347600 00343260 2C 03 00 00 */ cmpwi r3, 0
+/* 80347604 00343264 40 82 00 3C */ bne lbl_80347640
+/* 80347608 00343268 2C 10 00 00 */ cmpwi r16, 0
+/* 8034760C 0034326C 40 82 00 2C */ bne lbl_80347638
+/* 80347610 00343270 7F A3 EB 78 */ mr r3, r29
+/* 80347614 00343274 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80347618 00343278 38 80 00 01 */ li r4, 1
+/* 8034761C 0034327C 48 00 0D ED */ bl gpiSetError
+/* 80347620 00343280 7F A3 EB 78 */ mr r3, r29
+/* 80347624 00343284 38 80 00 03 */ li r4, 3
+/* 80347628 00343288 38 A0 00 01 */ li r5, 1
+/* 8034762C 0034328C 4B FF 86 3D */ bl gpiCallErrorCallback
+/* 80347630 00343290 38 60 00 03 */ li r3, 3
+/* 80347634 00343294 48 00 05 A0 */ b lbl_80347BD4
+lbl_80347638:
+/* 80347638 00343298 39 E0 00 00 */ li r15, 0
+/* 8034763C 0034329C 48 00 00 10 */ b lbl_8034764C
+lbl_80347640:
+/* 80347640 003432A0 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80347644 003432A4 4B E8 90 C9 */ bl atoi
+/* 80347648 003432A8 7C 6F 1B 78 */ mr r15, r3
+lbl_8034764C:
+/* 8034764C 003432AC 38 60 00 08 */ li r3, 8
+/* 80347650 003432B0 4B FF 1C C5 */ bl gsimalloc
+/* 80347654 003432B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80347658 003432B8 40 82 00 18 */ bne lbl_80347670
+/* 8034765C 003432BC 7F A3 EB 78 */ mr r3, r29
+/* 80347660 003432C0 38 95 00 40 */ addi r4, r21, 0x40
+/* 80347664 003432C4 48 00 0D F5 */ bl gpiSetErrorString
+/* 80347668 003432C8 38 60 00 01 */ li r3, 1
+/* 8034766C 003432CC 48 00 05 68 */ b lbl_80347BD4
+lbl_80347670:
+/* 80347670 003432D0 92 03 00 00 */ stw r16, 0(r3)
+/* 80347674 003432D4 7C 65 1B 78 */ mr r5, r3
+/* 80347678 003432D8 80 E1 00 48 */ lwz r7, 0x48(r1)
+/* 8034767C 003432DC 7F C6 F3 78 */ mr r6, r30
+/* 80347680 003432E0 91 E3 00 04 */ stw r15, 4(r3)
+/* 80347684 003432E4 7F A3 EB 78 */ mr r3, r29
+/* 80347688 003432E8 80 01 00 4C */ lwz r0, 0x4c(r1)
+/* 8034768C 003432EC 38 81 00 70 */ addi r4, r1, 0x70
+/* 80347690 003432F0 90 E1 00 70 */ stw r7, 0x70(r1)
+/* 80347694 003432F4 38 E0 00 00 */ li r7, 0
+/* 80347698 003432F8 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8034769C 003432FC 4B FF 86 8D */ bl gpiAddCallback
+/* 803476A0 00343300 2C 03 00 00 */ cmpwi r3, 0
+/* 803476A4 00343304 41 82 05 0C */ beq lbl_80347BB0
+/* 803476A8 00343308 48 00 05 2C */ b lbl_80347BD4
+lbl_803476AC:
+/* 803476AC 0034330C 2C 00 00 07 */ cmpwi r0, 7
+/* 803476B0 00343310 40 82 03 04 */ bne lbl_803479B4
+/* 803476B4 00343314 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 803476B8 00343318 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 803476BC 0034331C 2C 03 00 00 */ cmpwi r3, 0
+/* 803476C0 00343320 90 61 00 50 */ stw r3, 0x50(r1)
+/* 803476C4 00343324 90 01 00 54 */ stw r0, 0x54(r1)
+/* 803476C8 00343328 41 82 04 E8 */ beq lbl_80347BB0
+/* 803476CC 0034332C 38 60 00 0C */ li r3, 0xc
+/* 803476D0 00343330 4B FF 1C 45 */ bl gsimalloc
+/* 803476D4 00343334 2C 03 00 00 */ cmpwi r3, 0
+/* 803476D8 00343338 7C 74 1B 78 */ mr r20, r3
+/* 803476DC 0034333C 40 82 00 18 */ bne lbl_803476F4
+/* 803476E0 00343340 7F A3 EB 78 */ mr r3, r29
+/* 803476E4 00343344 38 95 00 40 */ addi r4, r21, 0x40
+/* 803476E8 00343348 48 00 0D 71 */ bl gpiSetErrorString
+/* 803476EC 0034334C 38 60 00 01 */ li r3, 1
+/* 803476F0 00343350 48 00 04 E4 */ b lbl_80347BD4
+lbl_803476F4:
+/* 803476F4 00343354 93 23 00 00 */ stw r25, 0(r3)
+/* 803476F8 00343358 38 A1 00 20 */ addi r5, r1, 0x20
+/* 803476FC 0034335C 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80347700 00343360 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80347704 00343364 93 23 00 04 */ stw r25, 4(r3)
+/* 80347708 00343368 93 23 00 08 */ stw r25, 8(r3)
+/* 8034770C 0034336C 7F A3 EB 78 */ mr r3, r29
+/* 80347710 00343370 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347714 00343374 48 00 0B 11 */ bl gpiReadKeyAndValue
+/* 80347718 00343378 2C 03 00 00 */ cmpwi r3, 0
+/* 8034771C 0034337C 41 82 00 08 */ beq lbl_80347724
+/* 80347720 00343380 48 00 04 B4 */ b lbl_80347BD4
+lbl_80347724:
+/* 80347724 00343384 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347728 00343388 38 8D 92 5C */ addi r4, r13, lbl_8063E51C-_SDA_BASE_
+/* 8034772C 0034338C 4B E8 6D 21 */ bl strcmp
+/* 80347730 00343390 2C 03 00 00 */ cmpwi r3, 0
+/* 80347734 00343394 41 82 00 2C */ beq lbl_80347760
+/* 80347738 00343398 7F A3 EB 78 */ mr r3, r29
+/* 8034773C 0034339C 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80347740 003433A0 38 80 00 01 */ li r4, 1
+/* 80347744 003433A4 48 00 0C C5 */ bl gpiSetError
+/* 80347748 003433A8 7F A3 EB 78 */ mr r3, r29
+/* 8034774C 003433AC 38 80 00 03 */ li r4, 3
+/* 80347750 003433B0 38 A0 00 01 */ li r5, 1
+/* 80347754 003433B4 4B FF 85 15 */ bl gpiCallErrorCallback
+/* 80347758 003433B8 38 60 00 03 */ li r3, 3
+/* 8034775C 003433BC 48 00 04 78 */ b lbl_80347BD4
+lbl_80347760:
+/* 80347760 003433C0 3A 60 00 00 */ li r19, 0
+lbl_80347764:
+/* 80347764 003433C4 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347768 003433C8 7F A3 EB 78 */ mr r3, r29
+/* 8034776C 003433CC 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80347770 003433D0 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80347774 003433D4 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80347778 003433D8 48 00 0A AD */ bl gpiReadKeyAndValue
+/* 8034777C 003433DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80347780 003433E0 41 82 00 08 */ beq lbl_80347788
+/* 80347784 003433E4 48 00 04 50 */ b lbl_80347BD4
+lbl_80347788:
+/* 80347788 003433E8 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 8034778C 003433EC 38 8D 92 64 */ addi r4, r13, lbl_8063E524-_SDA_BASE_
+/* 80347790 003433F0 4B E8 6C BD */ bl strcmp
+/* 80347794 003433F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80347798 003433F8 40 82 00 0C */ bne lbl_803477A4
+/* 8034779C 003433FC 3A 60 00 01 */ li r19, 1
+/* 803477A0 00343400 48 00 01 D8 */ b lbl_80347978
+lbl_803477A4:
+/* 803477A4 00343404 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 803477A8 00343408 38 8D 92 6C */ addi r4, r13, lbl_8063E52C-_SDA_BASE_
+/* 803477AC 0034340C 4B E8 6C A1 */ bl strcmp
+/* 803477B0 00343410 2C 03 00 00 */ cmpwi r3, 0
+/* 803477B4 00343414 40 82 01 9C */ bne lbl_80347950
+/* 803477B8 00343418 80 94 00 04 */ lwz r4, 4(r20)
+/* 803477BC 0034341C 80 74 00 08 */ lwz r3, 8(r20)
+/* 803477C0 00343420 38 04 00 01 */ addi r0, r4, 1
+/* 803477C4 00343424 1C 80 00 AC */ mulli r4, r0, 0xac
+/* 803477C8 00343428 4B FF 1B 5D */ bl gsirealloc
+/* 803477CC 0034342C 2C 03 00 00 */ cmpwi r3, 0
+/* 803477D0 00343430 40 82 00 18 */ bne lbl_803477E8
+/* 803477D4 00343434 7F A3 EB 78 */ mr r3, r29
+/* 803477D8 00343438 38 95 00 40 */ addi r4, r21, 0x40
+/* 803477DC 0034343C 48 00 0C 7D */ bl gpiSetErrorString
+/* 803477E0 00343440 38 60 00 01 */ li r3, 1
+/* 803477E4 00343444 48 00 03 F0 */ b lbl_80347BD4
+lbl_803477E8:
+/* 803477E8 00343448 90 74 00 08 */ stw r3, 8(r20)
+/* 803477EC 0034344C 38 80 00 00 */ li r4, 0
+/* 803477F0 00343450 38 A0 00 AC */ li r5, 0xac
+/* 803477F4 00343454 80 14 00 04 */ lwz r0, 4(r20)
+/* 803477F8 00343458 1C 00 00 AC */ mulli r0, r0, 0xac
+/* 803477FC 0034345C 7E 03 02 14 */ add r16, r3, r0
+/* 80347800 00343460 7E 03 83 78 */ mr r3, r16
+/* 80347804 00343464 4B CB C9 01 */ bl memset
+/* 80347808 00343468 80 94 00 04 */ lwz r4, 4(r20)
+/* 8034780C 0034346C 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80347810 00343470 38 04 00 01 */ addi r0, r4, 1
+/* 80347814 00343474 90 14 00 04 */ stw r0, 4(r20)
+/* 80347818 00343478 4B E8 8E F5 */ bl atoi
+/* 8034781C 0034347C 90 70 00 00 */ stw r3, 0(r16)
+/* 80347820 00343480 3A 20 00 00 */ li r17, 0
+lbl_80347824:
+/* 80347824 00343484 81 E1 00 20 */ lwz r15, 0x20(r1)
+/* 80347828 00343488 7F A3 EB 78 */ mr r3, r29
+/* 8034782C 0034348C 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347830 00343490 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80347834 00343494 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80347838 00343498 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 8034783C 0034349C 48 00 09 E9 */ bl gpiReadKeyAndValue
+/* 80347840 003434A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80347844 003434A4 41 82 00 08 */ beq lbl_8034784C
+/* 80347848 003434A8 48 00 03 8C */ b lbl_80347BD4
+lbl_8034784C:
+/* 8034784C 003434AC 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347850 003434B0 38 8D 92 18 */ addi r4, r13, lbl_8063E4D8-_SDA_BASE_
+/* 80347854 003434B4 4B E8 6B F9 */ bl strcmp
+/* 80347858 003434B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034785C 003434BC 40 82 00 18 */ bne lbl_80347874
+/* 80347860 003434C0 38 70 00 04 */ addi r3, r16, 4
+/* 80347864 003434C4 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80347868 003434C8 38 A0 00 1F */ li r5, 0x1f
+/* 8034786C 003434CC 48 00 06 E5 */ bl strzcpy
+/* 80347870 003434D0 48 00 00 D4 */ b lbl_80347944
+lbl_80347874:
+/* 80347874 003434D4 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347878 003434D8 38 95 02 A0 */ addi r4, r21, 0x2a0
+/* 8034787C 003434DC 4B E8 6B D1 */ bl strcmp
+/* 80347880 003434E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80347884 003434E4 40 82 00 18 */ bne lbl_8034789C
+/* 80347888 003434E8 38 70 00 23 */ addi r3, r16, 0x23
+/* 8034788C 003434EC 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80347890 003434F0 38 A0 00 15 */ li r5, 0x15
+/* 80347894 003434F4 48 00 06 BD */ bl strzcpy
+/* 80347898 003434F8 48 00 00 AC */ b lbl_80347944
+lbl_8034789C:
+/* 8034789C 003434FC 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 803478A0 00343500 38 8D 92 70 */ addi r4, r13, lbl_8063E530-_SDA_BASE_
+/* 803478A4 00343504 4B E8 6B A9 */ bl strcmp
+/* 803478A8 00343508 2C 03 00 00 */ cmpwi r3, 0
+/* 803478AC 0034350C 40 82 00 18 */ bne lbl_803478C4
+/* 803478B0 00343510 38 70 00 38 */ addi r3, r16, 0x38
+/* 803478B4 00343514 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 803478B8 00343518 38 A0 00 1F */ li r5, 0x1f
+/* 803478BC 0034351C 48 00 06 95 */ bl strzcpy
+/* 803478C0 00343520 48 00 00 84 */ b lbl_80347944
+lbl_803478C4:
+/* 803478C4 00343524 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 803478C8 00343528 38 8D 92 78 */ addi r4, r13, lbl_8063E538-_SDA_BASE_
+/* 803478CC 0034352C 4B E8 6B 81 */ bl strcmp
+/* 803478D0 00343530 2C 03 00 00 */ cmpwi r3, 0
+/* 803478D4 00343534 40 82 00 18 */ bne lbl_803478EC
+/* 803478D8 00343538 38 70 00 57 */ addi r3, r16, 0x57
+/* 803478DC 0034353C 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 803478E0 00343540 38 A0 00 1F */ li r5, 0x1f
+/* 803478E4 00343544 48 00 06 6D */ bl strzcpy
+/* 803478E8 00343548 48 00 00 5C */ b lbl_80347944
+lbl_803478EC:
+/* 803478EC 0034354C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 803478F0 00343550 38 8D 92 20 */ addi r4, r13, lbl_8063E4E0-_SDA_BASE_
+/* 803478F4 00343554 4B E8 6B 59 */ bl strcmp
+/* 803478F8 00343558 2C 03 00 00 */ cmpwi r3, 0
+/* 803478FC 0034355C 40 82 00 18 */ bne lbl_80347914
+/* 80347900 00343560 38 70 00 76 */ addi r3, r16, 0x76
+/* 80347904 00343564 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80347908 00343568 38 A0 00 33 */ li r5, 0x33
+/* 8034790C 0034356C 48 00 06 45 */ bl strzcpy
+/* 80347910 00343570 48 00 00 34 */ b lbl_80347944
+lbl_80347914:
+/* 80347914 00343574 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347918 00343578 38 8D 92 6C */ addi r4, r13, lbl_8063E52C-_SDA_BASE_
+/* 8034791C 0034357C 4B E8 6B 31 */ bl strcmp
+/* 80347920 00343580 2C 03 00 00 */ cmpwi r3, 0
+/* 80347924 00343584 41 82 00 18 */ beq lbl_8034793C
+/* 80347928 00343588 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 8034792C 0034358C 38 8D 92 64 */ addi r4, r13, lbl_8063E524-_SDA_BASE_
+/* 80347930 00343590 4B E8 6B 1D */ bl strcmp
+/* 80347934 00343594 2C 03 00 00 */ cmpwi r3, 0
+/* 80347938 00343598 40 82 00 0C */ bne lbl_80347944
+lbl_8034793C:
+/* 8034793C 0034359C 3A 20 00 01 */ li r17, 1
+/* 80347940 003435A0 91 E1 00 20 */ stw r15, 0x20(r1)
+lbl_80347944:
+/* 80347944 003435A4 2C 11 00 00 */ cmpwi r17, 0
+/* 80347948 003435A8 41 82 FE DC */ beq lbl_80347824
+/* 8034794C 003435AC 48 00 00 2C */ b lbl_80347978
+lbl_80347950:
+/* 80347950 003435B0 7F A3 EB 78 */ mr r3, r29
+/* 80347954 003435B4 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80347958 003435B8 38 80 00 01 */ li r4, 1
+/* 8034795C 003435BC 48 00 0A AD */ bl gpiSetError
+/* 80347960 003435C0 7F A3 EB 78 */ mr r3, r29
+/* 80347964 003435C4 38 80 00 03 */ li r4, 3
+/* 80347968 003435C8 38 A0 00 01 */ li r5, 1
+/* 8034796C 003435CC 4B FF 82 FD */ bl gpiCallErrorCallback
+/* 80347970 003435D0 38 60 00 03 */ li r3, 3
+/* 80347974 003435D4 48 00 02 60 */ b lbl_80347BD4
+lbl_80347978:
+/* 80347978 003435D8 2C 13 00 00 */ cmpwi r19, 0
+/* 8034797C 003435DC 41 82 FD E8 */ beq lbl_80347764
+/* 80347980 003435E0 80 81 00 50 */ lwz r4, 0x50(r1)
+/* 80347984 003435E4 7F A3 EB 78 */ mr r3, r29
+/* 80347988 003435E8 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8034798C 003435EC 7E 85 A3 78 */ mr r5, r20
+/* 80347990 003435F0 90 81 00 68 */ stw r4, 0x68(r1)
+/* 80347994 003435F4 7F C6 F3 78 */ mr r6, r30
+/* 80347998 003435F8 38 81 00 68 */ addi r4, r1, 0x68
+/* 8034799C 003435FC 38 E0 00 08 */ li r7, 8
+/* 803479A0 00343600 90 01 00 6C */ stw r0, 0x6c(r1)
+/* 803479A4 00343604 4B FF 83 85 */ bl gpiAddCallback
+/* 803479A8 00343608 2C 03 00 00 */ cmpwi r3, 0
+/* 803479AC 0034360C 41 82 02 04 */ beq lbl_80347BB0
+/* 803479B0 00343610 48 00 02 24 */ b lbl_80347BD4
+lbl_803479B4:
+/* 803479B4 00343614 2C 00 00 08 */ cmpwi r0, 8
+/* 803479B8 00343618 40 82 01 F8 */ bne lbl_80347BB0
+/* 803479BC 0034361C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 803479C0 00343620 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 803479C4 00343624 2C 03 00 00 */ cmpwi r3, 0
+/* 803479C8 00343628 90 61 00 58 */ stw r3, 0x58(r1)
+/* 803479CC 0034362C 90 01 00 5C */ stw r0, 0x5c(r1)
+/* 803479D0 00343630 41 82 01 E0 */ beq lbl_80347BB0
+/* 803479D4 00343634 3A 20 00 00 */ li r17, 0
+/* 803479D8 00343638 38 60 00 0C */ li r3, 0xc
+/* 803479DC 0034363C 4B FF 19 39 */ bl gsimalloc
+/* 803479E0 00343640 2C 03 00 00 */ cmpwi r3, 0
+/* 803479E4 00343644 7C 70 1B 78 */ mr r16, r3
+/* 803479E8 00343648 40 82 00 18 */ bne lbl_80347A00
+/* 803479EC 0034364C 7F A3 EB 78 */ mr r3, r29
+/* 803479F0 00343650 38 95 00 40 */ addi r4, r21, 0x40
+/* 803479F4 00343654 48 00 0A 65 */ bl gpiSetErrorString
+/* 803479F8 00343658 38 60 00 01 */ li r3, 1
+/* 803479FC 0034365C 48 00 01 D8 */ b lbl_80347BD4
+lbl_80347A00:
+/* 80347A00 00343660 93 23 00 00 */ stw r25, 0(r3)
+/* 80347A04 00343664 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80347A08 00343668 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80347A0C 0034366C 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80347A10 00343670 93 23 00 04 */ stw r25, 4(r3)
+/* 80347A14 00343674 93 23 00 08 */ stw r25, 8(r3)
+/* 80347A18 00343678 7F A3 EB 78 */ mr r3, r29
+/* 80347A1C 0034367C 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347A20 00343680 48 00 08 05 */ bl gpiReadKeyAndValue
+/* 80347A24 00343684 2C 03 00 00 */ cmpwi r3, 0
+/* 80347A28 00343688 41 82 00 08 */ beq lbl_80347A30
+/* 80347A2C 0034368C 48 00 01 A8 */ b lbl_80347BD4
+lbl_80347A30:
+/* 80347A30 00343690 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347A34 00343694 38 8D 92 80 */ addi r4, r13, lbl_8063E540-_SDA_BASE_
+/* 80347A38 00343698 4B E8 6A 15 */ bl strcmp
+/* 80347A3C 0034369C 2C 03 00 00 */ cmpwi r3, 0
+/* 80347A40 003436A0 41 82 00 2C */ beq lbl_80347A6C
+/* 80347A44 003436A4 7F A3 EB 78 */ mr r3, r29
+/* 80347A48 003436A8 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80347A4C 003436AC 38 80 00 01 */ li r4, 1
+/* 80347A50 003436B0 48 00 09 B9 */ bl gpiSetError
+/* 80347A54 003436B4 7F A3 EB 78 */ mr r3, r29
+/* 80347A58 003436B8 38 80 00 03 */ li r4, 3
+/* 80347A5C 003436BC 38 A0 00 01 */ li r5, 1
+/* 80347A60 003436C0 4B FF 82 09 */ bl gpiCallErrorCallback
+/* 80347A64 003436C4 38 60 00 03 */ li r3, 3
+/* 80347A68 003436C8 48 00 01 6C */ b lbl_80347BD4
+lbl_80347A6C:
+/* 80347A6C 003436CC 38 61 00 E0 */ addi r3, r1, 0xe0
+/* 80347A70 003436D0 4B E8 8C 9D */ bl atoi
+/* 80347A74 003436D4 90 70 00 04 */ stw r3, 4(r16)
+/* 80347A78 003436D8 54 63 10 3A */ slwi r3, r3, 2
+/* 80347A7C 003436DC 4B FF 18 99 */ bl gsimalloc
+/* 80347A80 003436E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80347A84 003436E4 90 70 00 08 */ stw r3, 8(r16)
+/* 80347A88 003436E8 40 82 00 18 */ bne lbl_80347AA0
+/* 80347A8C 003436EC 7F A3 EB 78 */ mr r3, r29
+/* 80347A90 003436F0 38 95 00 40 */ addi r4, r21, 0x40
+/* 80347A94 003436F4 48 00 09 C5 */ bl gpiSetErrorString
+/* 80347A98 003436F8 38 60 00 01 */ li r3, 1
+/* 80347A9C 003436FC 48 00 01 38 */ b lbl_80347BD4
+lbl_80347AA0:
+/* 80347AA0 00343700 3A 60 00 00 */ li r19, 0
+/* 80347AA4 00343704 3A 80 00 00 */ li r20, 0
+lbl_80347AA8:
+/* 80347AA8 00343708 80 92 00 08 */ lwz r4, 8(r18)
+/* 80347AAC 0034370C 7F A3 EB 78 */ mr r3, r29
+/* 80347AB0 00343710 38 A1 00 20 */ addi r5, r1, 0x20
+/* 80347AB4 00343714 38 C1 02 E0 */ addi r6, r1, 0x2e0
+/* 80347AB8 00343718 38 E1 00 E0 */ addi r7, r1, 0xe0
+/* 80347ABC 0034371C 48 00 07 69 */ bl gpiReadKeyAndValue
+/* 80347AC0 00343720 2C 03 00 00 */ cmpwi r3, 0
+/* 80347AC4 00343724 41 82 00 08 */ beq lbl_80347ACC
+/* 80347AC8 00343728 48 00 01 0C */ b lbl_80347BD4
+lbl_80347ACC:
+/* 80347ACC 0034372C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347AD0 00343730 38 8D 92 18 */ addi r4, r13, lbl_8063E4D8-_SDA_BASE_
+/* 80347AD4 00343734 4B E8 69 79 */ bl strcmp
+/* 80347AD8 00343738 2C 03 00 00 */ cmpwi r3, 0
+/* 80347ADC 0034373C 40 82 00 50 */ bne lbl_80347B2C
+/* 80347AE0 00343740 38 60 00 15 */ li r3, 0x15
+/* 80347AE4 00343744 4B FF 18 31 */ bl gsimalloc
+/* 80347AE8 00343748 80 90 00 08 */ lwz r4, 8(r16)
+/* 80347AEC 0034374C 7C 64 A1 2E */ stwx r3, r4, r20
+/* 80347AF0 00343750 80 70 00 08 */ lwz r3, 8(r16)
+/* 80347AF4 00343754 7C 63 A0 2E */ lwzx r3, r3, r20
+/* 80347AF8 00343758 2C 03 00 00 */ cmpwi r3, 0
+/* 80347AFC 0034375C 40 82 00 18 */ bne lbl_80347B14
+/* 80347B00 00343760 7F A3 EB 78 */ mr r3, r29
+/* 80347B04 00343764 38 95 00 40 */ addi r4, r21, 0x40
+/* 80347B08 00343768 48 00 09 51 */ bl gpiSetErrorString
+/* 80347B0C 0034376C 38 60 00 01 */ li r3, 1
+/* 80347B10 00343770 48 00 00 C4 */ b lbl_80347BD4
+lbl_80347B14:
+/* 80347B14 00343774 38 81 00 E0 */ addi r4, r1, 0xe0
+/* 80347B18 00343778 38 A0 00 15 */ li r5, 0x15
+/* 80347B1C 0034377C 48 00 04 35 */ bl strzcpy
+/* 80347B20 00343780 3A 94 00 04 */ addi r20, r20, 4
+/* 80347B24 00343784 3A 31 00 01 */ addi r17, r17, 1
+/* 80347B28 00343788 48 00 00 4C */ b lbl_80347B74
+lbl_80347B2C:
+/* 80347B2C 0034378C 38 61 02 E0 */ addi r3, r1, 0x2e0
+/* 80347B30 00343790 38 8D 92 84 */ addi r4, r13, lbl_8063E544-_SDA_BASE_
+/* 80347B34 00343794 4B E8 69 19 */ bl strcmp
+/* 80347B38 00343798 2C 03 00 00 */ cmpwi r3, 0
+/* 80347B3C 0034379C 40 82 00 10 */ bne lbl_80347B4C
+/* 80347B40 003437A0 92 30 00 04 */ stw r17, 4(r16)
+/* 80347B44 003437A4 3A 60 00 01 */ li r19, 1
+/* 80347B48 003437A8 48 00 00 2C */ b lbl_80347B74
+lbl_80347B4C:
+/* 80347B4C 003437AC 7F A3 EB 78 */ mr r3, r29
+/* 80347B50 003437B0 38 B5 02 C4 */ addi r5, r21, 0x2c4
+/* 80347B54 003437B4 38 80 00 01 */ li r4, 1
+/* 80347B58 003437B8 48 00 08 B1 */ bl gpiSetError
+/* 80347B5C 003437BC 7F A3 EB 78 */ mr r3, r29
+/* 80347B60 003437C0 38 80 00 03 */ li r4, 3
+/* 80347B64 003437C4 38 A0 00 01 */ li r5, 1
+/* 80347B68 003437C8 4B FF 81 01 */ bl gpiCallErrorCallback
+/* 80347B6C 003437CC 38 60 00 03 */ li r3, 3
+/* 80347B70 003437D0 48 00 00 64 */ b lbl_80347BD4
+lbl_80347B74:
+/* 80347B74 003437D4 2C 13 00 00 */ cmpwi r19, 0
+/* 80347B78 003437D8 41 82 FF 30 */ beq lbl_80347AA8
+/* 80347B7C 003437DC 80 81 00 58 */ lwz r4, 0x58(r1)
+/* 80347B80 003437E0 7F A3 EB 78 */ mr r3, r29
+/* 80347B84 003437E4 80 01 00 5C */ lwz r0, 0x5c(r1)
+/* 80347B88 003437E8 7E 05 83 78 */ mr r5, r16
+/* 80347B8C 003437EC 90 81 00 60 */ stw r4, 0x60(r1)
+/* 80347B90 003437F0 7F C6 F3 78 */ mr r6, r30
+/* 80347B94 003437F4 38 81 00 60 */ addi r4, r1, 0x60
+/* 80347B98 003437F8 38 E0 00 09 */ li r7, 9
+/* 80347B9C 003437FC 90 01 00 64 */ stw r0, 0x64(r1)
+/* 80347BA0 00343800 4B FF 81 89 */ bl gpiAddCallback
+/* 80347BA4 00343804 2C 03 00 00 */ cmpwi r3, 0
+/* 80347BA8 00343808 41 82 00 08 */ beq lbl_80347BB0
+/* 80347BAC 0034380C 48 00 00 28 */ b lbl_80347BD4
+lbl_80347BB0:
+/* 80347BB0 00343810 93 92 01 44 */ stw r28, 0x144(r18)
+/* 80347BB4 00343814 3A 60 00 00 */ li r19, 0
+lbl_80347BB8:
+/* 80347BB8 00343818 2C 13 00 00 */ cmpwi r19, 0
+/* 80347BBC 0034381C 41 82 00 0C */ beq lbl_80347BC8
+/* 80347BC0 00343820 38 60 00 0A */ li r3, 0xa
+/* 80347BC4 00343824 4B FF 14 61 */ bl msleep
+lbl_80347BC8:
+/* 80347BC8 00343828 2C 13 00 00 */ cmpwi r19, 0
+/* 80347BCC 0034382C 40 82 E7 38 */ bne lbl_80346304
+/* 80347BD0 00343830 38 60 00 00 */ li r3, 0
+lbl_80347BD4:
+/* 80347BD4 00343834 39 61 05 30 */ addi r11, r1, 0x530
+/* 80347BD8 00343838 4B E7 F5 6D */ bl _restgpr_15
+/* 80347BDC 0034383C 80 01 05 34 */ lwz r0, 0x534(r1)
+/* 80347BE0 00343840 7C 08 03 A6 */ mtlr r0
+/* 80347BE4 00343844 38 21 05 30 */ addi r1, r1, 0x530
+/* 80347BE8 00343848 4E 80 00 20 */ blr
+
+.global gpiProcessSearches
+gpiProcessSearches:
+/* 80347BEC 0034384C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80347BF0 00343850 7C 08 02 A6 */ mflr r0
+/* 80347BF4 00343854 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80347BF8 00343858 39 61 00 20 */ addi r11, r1, 0x20
+/* 80347BFC 0034385C 4B E7 F5 29 */ bl _savegpr_26
+/* 80347C00 00343860 83 43 00 00 */ lwz r26, 0(r3)
+/* 80347C04 00343864 7C 7D 1B 78 */ mr r29, r3
+/* 80347C08 00343868 3B C0 00 00 */ li r30, 0
+/* 80347C0C 0034386C 3B 80 00 00 */ li r28, 0
+/* 80347C10 00343870 80 1A 02 2C */ lwz r0, 0x22c(r26)
+/* 80347C14 00343874 2C 00 00 00 */ cmpwi r0, 0
+/* 80347C18 00343878 40 81 01 08 */ ble lbl_80347D20
+/* 80347C1C 0034387C 54 03 10 3A */ slwi r3, r0, 2
+/* 80347C20 00343880 4B FF 16 F5 */ bl gsimalloc
+/* 80347C24 00343884 2C 03 00 00 */ cmpwi r3, 0
+/* 80347C28 00343888 7C 7F 1B 78 */ mr r31, r3
+/* 80347C2C 0034388C 40 82 00 1C */ bne lbl_80347C48
+/* 80347C30 00343890 3C 80 80 45 */ lis r4, lbl_8044B268@ha
+/* 80347C34 00343894 7F A3 EB 78 */ mr r3, r29
+/* 80347C38 00343898 38 84 B2 68 */ addi r4, r4, lbl_8044B268@l
+/* 80347C3C 0034389C 48 00 08 1D */ bl gpiSetErrorString
+/* 80347C40 003438A0 38 60 00 01 */ li r3, 1
+/* 80347C44 003438A4 48 00 00 E0 */ b lbl_80347D24
+lbl_80347C48:
+/* 80347C48 003438A8 80 BA 04 40 */ lwz r5, 0x440(r26)
+/* 80347C4C 003438AC 38 00 00 01 */ li r0, 1
+/* 80347C50 003438B0 48 00 00 44 */ b lbl_80347C94
+lbl_80347C54:
+/* 80347C54 003438B4 80 85 00 00 */ lwz r4, 0(r5)
+/* 80347C58 003438B8 2C 04 00 03 */ cmpwi r4, 3
+/* 80347C5C 003438BC 40 82 00 34 */ bne lbl_80347C90
+/* 80347C60 003438C0 80 85 00 14 */ lwz r4, 0x14(r5)
+/* 80347C64 003438C4 2C 04 00 05 */ cmpwi r4, 5
+/* 80347C68 003438C8 41 82 00 28 */ beq lbl_80347C90
+/* 80347C6C 003438CC 80 85 00 04 */ lwz r4, 4(r5)
+/* 80347C70 003438D0 80 84 01 40 */ lwz r4, 0x140(r4)
+/* 80347C74 003438D4 2C 04 00 00 */ cmpwi r4, 0
+/* 80347C78 003438D8 40 82 00 18 */ bne lbl_80347C90
+/* 80347C7C 003438DC 7C A3 E1 2E */ stwx r5, r3, r28
+/* 80347C80 003438E0 3B DE 00 01 */ addi r30, r30, 1
+/* 80347C84 003438E4 3B 9C 00 04 */ addi r28, r28, 4
+/* 80347C88 003438E8 80 85 00 04 */ lwz r4, 4(r5)
+/* 80347C8C 003438EC 90 04 01 40 */ stw r0, 0x140(r4)
+lbl_80347C90:
+/* 80347C90 003438F0 80 A5 00 20 */ lwz r5, 0x20(r5)
+lbl_80347C94:
+/* 80347C94 003438F4 2C 05 00 00 */ cmpwi r5, 0
+/* 80347C98 003438F8 40 82 FF BC */ bne lbl_80347C54
+/* 80347C9C 003438FC 7F FB FB 78 */ mr r27, r31
+/* 80347CA0 00343900 3B 40 00 00 */ li r26, 0
+/* 80347CA4 00343904 48 00 00 28 */ b lbl_80347CCC
+lbl_80347CA8:
+/* 80347CA8 00343908 80 9B 00 00 */ lwz r4, 0(r27)
+/* 80347CAC 0034390C 7F A3 EB 78 */ mr r3, r29
+/* 80347CB0 00343910 4B FF E5 B1 */ bl gpiProcessSearch
+/* 80347CB4 00343914 2C 03 00 00 */ cmpwi r3, 0
+/* 80347CB8 00343918 41 82 00 0C */ beq lbl_80347CC4
+/* 80347CBC 0034391C 80 9B 00 00 */ lwz r4, 0(r27)
+/* 80347CC0 00343920 90 64 00 1C */ stw r3, 0x1c(r4)
+lbl_80347CC4:
+/* 80347CC4 00343924 3B 7B 00 04 */ addi r27, r27, 4
+/* 80347CC8 00343928 3B 5A 00 01 */ addi r26, r26, 1
+lbl_80347CCC:
+/* 80347CCC 0034392C 7C 1A F0 00 */ cmpw r26, r30
+/* 80347CD0 00343930 41 80 FF D8 */ blt lbl_80347CA8
+/* 80347CD4 00343934 7F FB FB 78 */ mr r27, r31
+/* 80347CD8 00343938 3B 40 00 00 */ li r26, 0
+/* 80347CDC 0034393C 3B 80 00 00 */ li r28, 0
+/* 80347CE0 00343940 48 00 00 30 */ b lbl_80347D10
+lbl_80347CE4:
+/* 80347CE4 00343944 80 7B 00 00 */ lwz r3, 0(r27)
+/* 80347CE8 00343948 80 63 00 04 */ lwz r3, 4(r3)
+/* 80347CEC 0034394C 93 83 01 40 */ stw r28, 0x140(r3)
+/* 80347CF0 00343950 80 03 01 44 */ lwz r0, 0x144(r3)
+/* 80347CF4 00343954 2C 00 00 00 */ cmpwi r0, 0
+/* 80347CF8 00343958 41 82 00 10 */ beq lbl_80347D08
+/* 80347CFC 0034395C 80 9B 00 00 */ lwz r4, 0(r27)
+/* 80347D00 00343960 7F A3 EB 78 */ mr r3, r29
+/* 80347D04 00343964 4B FF C3 59 */ bl gpiRemoveOperation
+lbl_80347D08:
+/* 80347D08 00343968 3B 7B 00 04 */ addi r27, r27, 4
+/* 80347D0C 0034396C 3B 5A 00 01 */ addi r26, r26, 1
+lbl_80347D10:
+/* 80347D10 00343970 7C 1A F0 00 */ cmpw r26, r30
+/* 80347D14 00343974 41 80 FF D0 */ blt lbl_80347CE4
+/* 80347D18 00343978 7F E3 FB 78 */ mr r3, r31
+/* 80347D1C 0034397C 4B FF 16 1D */ bl gsifree
+lbl_80347D20:
+/* 80347D20 00343980 38 60 00 00 */ li r3, 0
+lbl_80347D24:
+/* 80347D24 00343984 39 61 00 20 */ addi r11, r1, 0x20
+/* 80347D28 00343988 4B E7 F4 49 */ bl _restgpr_26
+/* 80347D2C 0034398C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80347D30 00343990 7C 08 03 A6 */ mtlr r0
+/* 80347D34 00343994 38 21 00 20 */ addi r1, r1, 0x20
+/* 80347D38 00343998 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiTransfer.s b/asm/SDK/DWC/gamespy/gpiTransfer.s new file mode 100644 index 0000000..a74da80 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiTransfer.s @@ -0,0 +1,65 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiHandleTransferMessage
+gpiHandleTransferMessage:
+/* 80347D3C 0034399C 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 80347D40 003439A0 7C 08 02 A6 */ mflr r0
+/* 80347D44 003439A4 90 01 00 94 */ stw r0, 0x94(r1)
+/* 80347D48 003439A8 38 A1 00 38 */ addi r5, r1, 0x38
+/* 80347D4C 003439AC 93 E1 00 8C */ stw r31, 0x8c(r1)
+/* 80347D50 003439B0 93 C1 00 88 */ stw r30, 0x88(r1)
+/* 80347D54 003439B4 7C 9E 23 78 */ mr r30, r4
+/* 80347D58 003439B8 38 8D 92 94 */ addi r4, r13, lbl_8063E554-_SDA_BASE_
+/* 80347D5C 003439BC 93 A1 00 84 */ stw r29, 0x84(r1)
+/* 80347D60 003439C0 7C 7D 1B 78 */ mr r29, r3
+/* 80347D64 003439C4 7C C3 33 78 */ mr r3, r6
+/* 80347D68 003439C8 38 C0 00 40 */ li r6, 0x40
+/* 80347D6C 003439CC 48 00 03 21 */ bl gpiValueForKey
+/* 80347D70 003439D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80347D74 003439D4 41 82 00 94 */ beq lbl_80347E08
+/* 80347D78 003439D8 3C 80 80 45 */ lis r4, lbl_8044B538@ha
+/* 80347D7C 003439DC 38 61 00 38 */ addi r3, r1, 0x38
+/* 80347D80 003439E0 38 84 B5 38 */ addi r4, r4, lbl_8044B538@l
+/* 80347D84 003439E4 38 A1 00 08 */ addi r5, r1, 8
+/* 80347D88 003439E8 38 C1 00 0C */ addi r6, r1, 0xc
+/* 80347D8C 003439EC 38 E1 00 10 */ addi r7, r1, 0x10
+/* 80347D90 003439F0 4C C6 31 82 */ crclr 6
+/* 80347D94 003439F4 4B E8 64 75 */ bl sscanf
+/* 80347D98 003439F8 2C 03 00 03 */ cmpwi r3, 3
+/* 80347D9C 003439FC 40 82 00 6C */ bne lbl_80347E08
+/* 80347DA0 00343A00 7F A3 EB 78 */ mr r3, r29
+/* 80347DA4 00343A04 7F C4 F3 78 */ mr r4, r30
+/* 80347DA8 00343A08 38 C1 00 08 */ addi r6, r1, 8
+/* 80347DAC 00343A0C 3B ED 92 90 */ addi r31, r13, lbl_8063E550-_SDA_BASE_
+/* 80347DB0 00343A10 38 A0 00 C9 */ li r5, 0xc9
+/* 80347DB4 00343A14 4B FF D6 39 */ bl gpiPeerStartTransferMessage
+/* 80347DB8 00343A18 2C 03 00 00 */ cmpwi r3, 0
+/* 80347DBC 00343A1C 40 82 00 4C */ bne lbl_80347E08
+/* 80347DC0 00343A20 3C 80 80 45 */ lis r4, lbl_8044B520@ha
+/* 80347DC4 00343A24 38 61 00 18 */ addi r3, r1, 0x18
+/* 80347DC8 00343A28 38 84 B5 20 */ addi r4, r4, lbl_8044B520@l
+/* 80347DCC 00343A2C 38 A0 00 01 */ li r5, 1
+/* 80347DD0 00343A30 38 C0 00 02 */ li r6, 2
+/* 80347DD4 00343A34 4C C6 31 82 */ crclr 6
+/* 80347DD8 00343A38 4B E8 4D 25 */ bl sprintf
+/* 80347DDC 00343A3C 7F A3 EB 78 */ mr r3, r29
+/* 80347DE0 00343A40 7F C4 F3 78 */ mr r4, r30
+/* 80347DE4 00343A44 38 A1 00 18 */ addi r5, r1, 0x18
+/* 80347DE8 00343A48 4B FF 7A 11 */ bl func_8033F7F8
+/* 80347DEC 00343A4C 2C 03 00 00 */ cmpwi r3, 0
+/* 80347DF0 00343A50 40 82 00 18 */ bne lbl_80347E08
+/* 80347DF4 00343A54 7F A3 EB 78 */ mr r3, r29
+/* 80347DF8 00343A58 7F C4 F3 78 */ mr r4, r30
+/* 80347DFC 00343A5C 7F E5 FB 78 */ mr r5, r31
+/* 80347E00 00343A60 38 C0 FF FF */ li r6, -1
+/* 80347E04 00343A64 4B FF D6 51 */ bl gpiPeerFinishTransferMessage
+lbl_80347E08:
+/* 80347E08 00343A68 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 80347E0C 00343A6C 83 E1 00 8C */ lwz r31, 0x8c(r1)
+/* 80347E10 00343A70 83 C1 00 88 */ lwz r30, 0x88(r1)
+/* 80347E14 00343A74 83 A1 00 84 */ lwz r29, 0x84(r1)
+/* 80347E18 00343A78 7C 08 03 A6 */ mtlr r0
+/* 80347E1C 00343A7C 38 21 00 90 */ addi r1, r1, 0x90
+/* 80347E20 00343A80 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiUnique.s b/asm/SDK/DWC/gamespy/gpiUnique.s new file mode 100644 index 0000000..7ced259 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiUnique.s @@ -0,0 +1,86 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gpiProcessRegisterUniqueNick
+gpiProcessRegisterUniqueNick:
+/* 80347E24 00343A84 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80347E28 00343A88 7C 08 02 A6 */ mflr r0
+/* 80347E2C 00343A8C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80347E30 00343A90 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80347E34 00343A94 7C BF 2B 78 */ mr r31, r5
+/* 80347E38 00343A98 38 A0 00 01 */ li r5, 1
+/* 80347E3C 00343A9C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80347E40 00343AA0 7C 9E 23 78 */ mr r30, r4
+/* 80347E44 00343AA4 7F E4 FB 78 */ mr r4, r31
+/* 80347E48 00343AA8 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80347E4C 00343AAC 7C 7D 1B 78 */ mr r29, r3
+/* 80347E50 00343AB0 48 00 01 45 */ bl gpiCheckForError
+/* 80347E54 00343AB4 2C 03 00 00 */ cmpwi r3, 0
+/* 80347E58 00343AB8 41 82 00 0C */ beq lbl_80347E64
+/* 80347E5C 00343ABC 38 60 00 04 */ li r3, 4
+/* 80347E60 00343AC0 48 00 00 D4 */ b lbl_80347F34
+lbl_80347E64:
+/* 80347E64 00343AC4 7F E3 FB 78 */ mr r3, r31
+/* 80347E68 00343AC8 38 8D 92 A0 */ addi r4, r13, lbl_8063E560-_SDA_BASE_
+/* 80347E6C 00343ACC 38 A0 00 04 */ li r5, 4
+/* 80347E70 00343AD0 4B E8 66 F9 */ bl strncmp
+/* 80347E74 00343AD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80347E78 00343AD8 41 82 00 30 */ beq lbl_80347EA8
+/* 80347E7C 00343ADC 3C A0 80 45 */ lis r5, lbl_8044B548@ha
+/* 80347E80 00343AE0 7F A3 EB 78 */ mr r3, r29
+/* 80347E84 00343AE4 38 A5 B5 48 */ addi r5, r5, lbl_8044B548@l
+/* 80347E88 00343AE8 38 80 00 01 */ li r4, 1
+/* 80347E8C 00343AEC 48 00 05 7D */ bl gpiSetError
+/* 80347E90 00343AF0 7F A3 EB 78 */ mr r3, r29
+/* 80347E94 00343AF4 38 80 00 03 */ li r4, 3
+/* 80347E98 00343AF8 38 A0 00 01 */ li r5, 1
+/* 80347E9C 00343AFC 4B FF 7D CD */ bl gpiCallErrorCallback
+/* 80347EA0 00343B00 38 60 00 03 */ li r3, 3
+/* 80347EA4 00343B04 48 00 00 90 */ b lbl_80347F34
+lbl_80347EA8:
+/* 80347EA8 00343B08 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80347EAC 00343B0C 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 80347EB0 00343B10 2C 03 00 00 */ cmpwi r3, 0
+/* 80347EB4 00343B14 90 61 00 10 */ stw r3, 0x10(r1)
+/* 80347EB8 00343B18 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80347EBC 00343B1C 41 82 00 68 */ beq lbl_80347F24
+/* 80347EC0 00343B20 38 60 00 04 */ li r3, 4
+/* 80347EC4 00343B24 4B FF 14 51 */ bl gsimalloc
+/* 80347EC8 00343B28 2C 03 00 00 */ cmpwi r3, 0
+/* 80347ECC 00343B2C 7C 65 1B 78 */ mr r5, r3
+/* 80347ED0 00343B30 40 82 00 1C */ bne lbl_80347EEC
+/* 80347ED4 00343B34 3C 80 80 45 */ lis r4, lbl_8044B578@ha
+/* 80347ED8 00343B38 7F A3 EB 78 */ mr r3, r29
+/* 80347EDC 00343B3C 38 84 B5 78 */ addi r4, r4, lbl_8044B578@l
+/* 80347EE0 00343B40 48 00 05 79 */ bl gpiSetErrorString
+/* 80347EE4 00343B44 38 60 00 01 */ li r3, 1
+/* 80347EE8 00343B48 48 00 00 4C */ b lbl_80347F34
+lbl_80347EEC:
+/* 80347EEC 00343B4C 38 00 00 00 */ li r0, 0
+/* 80347EF0 00343B50 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 80347EF4 00343B54 90 03 00 00 */ stw r0, 0(r3)
+/* 80347EF8 00343B58 7F A3 EB 78 */ mr r3, r29
+/* 80347EFC 00343B5C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80347F00 00343B60 7F C6 F3 78 */ mr r6, r30
+/* 80347F04 00343B64 90 81 00 08 */ stw r4, 8(r1)
+/* 80347F08 00343B68 38 81 00 08 */ addi r4, r1, 8
+/* 80347F0C 00343B6C 38 E0 00 00 */ li r7, 0
+/* 80347F10 00343B70 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80347F14 00343B74 4B FF 7E 15 */ bl gpiAddCallback
+/* 80347F18 00343B78 2C 03 00 00 */ cmpwi r3, 0
+/* 80347F1C 00343B7C 41 82 00 08 */ beq lbl_80347F24
+/* 80347F20 00343B80 48 00 00 14 */ b lbl_80347F34
+lbl_80347F24:
+/* 80347F24 00343B84 7F A3 EB 78 */ mr r3, r29
+/* 80347F28 00343B88 7F C4 F3 78 */ mr r4, r30
+/* 80347F2C 00343B8C 4B FF C1 31 */ bl gpiRemoveOperation
+/* 80347F30 00343B90 38 60 00 00 */ li r3, 0
+lbl_80347F34:
+/* 80347F34 00343B94 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80347F38 00343B98 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80347F3C 00343B9C 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80347F40 00343BA0 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80347F44 00343BA4 7C 08 03 A6 */ mtlr r0
+/* 80347F48 00343BA8 38 21 00 30 */ addi r1, r1, 0x30
+/* 80347F4C 00343BAC 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gpiUtility.s b/asm/SDK/DWC/gamespy/gpiUtility.s new file mode 100644 index 0000000..5c1fece --- /dev/null +++ b/asm/SDK/DWC/gamespy/gpiUtility.s @@ -0,0 +1,430 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global strzcpy
+strzcpy:
+/* 80347F50 00343BB0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80347F54 00343BB4 7C 08 02 A6 */ mflr r0
+/* 80347F58 00343BB8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80347F5C 00343BBC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80347F60 00343BC0 7C BF 2B 78 */ mr r31, r5
+/* 80347F64 00343BC4 93 C1 00 08 */ stw r30, 8(r1)
+/* 80347F68 00343BC8 7C 7E 1B 78 */ mr r30, r3
+/* 80347F6C 00343BCC 4B E8 64 25 */ bl strncpy
+/* 80347F70 00343BD0 7C 7E FA 14 */ add r3, r30, r31
+/* 80347F74 00343BD4 38 00 00 00 */ li r0, 0
+/* 80347F78 00343BD8 98 03 FF FF */ stb r0, -1(r3)
+/* 80347F7C 00343BDC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80347F80 00343BE0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80347F84 00343BE4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80347F88 00343BE8 7C 08 03 A6 */ mtlr r0
+/* 80347F8C 00343BEC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80347F90 00343BF0 4E 80 00 20 */ blr
+
+.global gpiCheckForError
+gpiCheckForError:
+/* 80347F94 00343BF4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80347F98 00343BF8 7C 08 02 A6 */ mflr r0
+/* 80347F9C 00343BFC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80347FA0 00343C00 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80347FA4 00343C04 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80347FA8 00343C08 7C BE 2B 78 */ mr r30, r5
+/* 80347FAC 00343C0C 38 A0 00 07 */ li r5, 7
+/* 80347FB0 00343C10 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80347FB4 00343C14 7C 9D 23 78 */ mr r29, r4
+/* 80347FB8 00343C18 38 8D 92 A8 */ addi r4, r13, lbl_8063E568-_SDA_BASE_
+/* 80347FBC 00343C1C 93 81 00 20 */ stw r28, 0x20(r1)
+/* 80347FC0 00343C20 7C 7C 1B 78 */ mr r28, r3
+/* 80347FC4 00343C24 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80347FC8 00343C28 7F A3 EB 78 */ mr r3, r29
+/* 80347FCC 00343C2C 4B E8 65 9D */ bl strncmp
+/* 80347FD0 00343C30 2C 03 00 00 */ cmpwi r3, 0
+/* 80347FD4 00343C34 40 82 00 94 */ bne lbl_80348068
+/* 80347FD8 00343C38 7F A3 EB 78 */ mr r3, r29
+/* 80347FDC 00343C3C 38 A1 00 08 */ addi r5, r1, 8
+/* 80347FE0 00343C40 38 8D 92 B0 */ addi r4, r13, lbl_8063E570-_SDA_BASE_
+/* 80347FE4 00343C44 38 C0 00 10 */ li r6, 0x10
+/* 80347FE8 00343C48 48 00 00 A5 */ bl gpiValueForKey
+/* 80347FEC 00343C4C 2C 03 00 00 */ cmpwi r3, 0
+/* 80347FF0 00343C50 41 82 00 10 */ beq lbl_80348000
+/* 80347FF4 00343C54 38 61 00 08 */ addi r3, r1, 8
+/* 80347FF8 00343C58 4B E8 87 15 */ bl atoi
+/* 80347FFC 00343C5C 90 7F 04 34 */ stw r3, 0x434(r31)
+lbl_80348000:
+/* 80348000 00343C60 3C 80 80 45 */ lis r4, lbl_8044B588@ha
+/* 80348004 00343C64 7F A3 EB 78 */ mr r3, r29
+/* 80348008 00343C68 7F E5 FB 78 */ mr r5, r31
+/* 8034800C 00343C6C 38 C0 01 00 */ li r6, 0x100
+/* 80348010 00343C70 38 84 B5 88 */ addi r4, r4, lbl_8044B588@l
+/* 80348014 00343C74 48 00 00 79 */ bl gpiValueForKey
+/* 80348018 00343C78 2C 03 00 00 */ cmpwi r3, 0
+/* 8034801C 00343C7C 40 82 00 0C */ bne lbl_80348028
+/* 80348020 00343C80 38 00 00 00 */ li r0, 0
+/* 80348024 00343C84 98 1F 00 00 */ stb r0, 0(r31)
+lbl_80348028:
+/* 80348028 00343C88 2C 1E 00 00 */ cmpwi r30, 0
+/* 8034802C 00343C8C 41 82 00 34 */ beq lbl_80348060
+/* 80348030 00343C90 7F A3 EB 78 */ mr r3, r29
+/* 80348034 00343C94 38 8D 92 B8 */ addi r4, r13, lbl_8063E578-_SDA_BASE_
+/* 80348038 00343C98 4B E8 67 69 */ bl strstr
+/* 8034803C 00343C9C 7C 03 00 D0 */ neg r0, r3
+/* 80348040 00343CA0 38 80 00 04 */ li r4, 4
+/* 80348044 00343CA4 7C 00 1B 78 */ or r0, r0, r3
+/* 80348048 00343CA8 7F 83 E3 78 */ mr r3, r28
+/* 8034804C 00343CAC 54 05 0F FE */ srwi r5, r0, 0x1f
+/* 80348050 00343CB0 7C 05 00 D0 */ neg r0, r5
+/* 80348054 00343CB4 7C 00 2B 78 */ or r0, r0, r5
+/* 80348058 00343CB8 54 05 0F FE */ srwi r5, r0, 0x1f
+/* 8034805C 00343CBC 4B FF 7C 0D */ bl gpiCallErrorCallback
+lbl_80348060:
+/* 80348060 00343CC0 38 60 00 01 */ li r3, 1
+/* 80348064 00343CC4 48 00 00 08 */ b lbl_8034806C
+lbl_80348068:
+/* 80348068 00343CC8 38 60 00 00 */ li r3, 0
+lbl_8034806C:
+/* 8034806C 00343CCC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80348070 00343CD0 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80348074 00343CD4 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80348078 00343CD8 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8034807C 00343CDC 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 80348080 00343CE0 7C 08 03 A6 */ mtlr r0
+/* 80348084 00343CE4 38 21 00 30 */ addi r1, r1, 0x30
+/* 80348088 00343CE8 4E 80 00 20 */ blr
+
+.global gpiValueForKey
+gpiValueForKey:
+/* 8034808C 00343CEC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80348090 00343CF0 7C 08 02 A6 */ mflr r0
+/* 80348094 00343CF4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80348098 00343CF8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034809C 00343CFC 4B E7 F0 8D */ bl _savegpr_27
+/* 803480A0 00343D00 88 04 00 00 */ lbz r0, 0(r4)
+/* 803480A4 00343D04 7C 9B 23 78 */ mr r27, r4
+/* 803480A8 00343D08 7C BC 2B 78 */ mr r28, r5
+/* 803480AC 00343D0C 7C DD 33 78 */ mr r29, r6
+/* 803480B0 00343D10 7C 1E 07 74 */ extsb r30, r0
+/* 803480B4 00343D14 4B E8 66 ED */ bl strstr
+/* 803480B8 00343D18 2C 03 00 00 */ cmpwi r3, 0
+/* 803480BC 00343D1C 7C 7F 1B 78 */ mr r31, r3
+/* 803480C0 00343D20 40 82 00 0C */ bne lbl_803480CC
+/* 803480C4 00343D24 38 60 00 00 */ li r3, 0
+/* 803480C8 00343D28 48 00 00 58 */ b lbl_80348120
+lbl_803480CC:
+/* 803480CC 00343D2C 7F 63 DB 78 */ mr r3, r27
+/* 803480D0 00343D30 4B E7 EA 95 */ bl strlen
+/* 803480D4 00343D34 7F 84 E3 78 */ mr r4, r28
+/* 803480D8 00343D38 38 BD FF FF */ addi r5, r29, -1
+/* 803480DC 00343D3C 7C 7F 1A 14 */ add r3, r31, r3
+/* 803480E0 00343D40 38 C0 00 00 */ li r6, 0
+/* 803480E4 00343D44 48 00 00 14 */ b lbl_803480F8
+lbl_803480E8:
+/* 803480E8 00343D48 98 04 00 00 */ stb r0, 0(r4)
+/* 803480EC 00343D4C 38 C6 00 01 */ addi r6, r6, 1
+/* 803480F0 00343D50 38 63 00 01 */ addi r3, r3, 1
+/* 803480F4 00343D54 38 84 00 01 */ addi r4, r4, 1
+lbl_803480F8:
+/* 803480F8 00343D58 7C 06 28 00 */ cmpw r6, r5
+/* 803480FC 00343D5C 40 80 00 18 */ bge lbl_80348114
+/* 80348100 00343D60 88 03 00 00 */ lbz r0, 0(r3)
+/* 80348104 00343D64 7C 00 07 75 */ extsb. r0, r0
+/* 80348108 00343D68 41 82 00 0C */ beq lbl_80348114
+/* 8034810C 00343D6C 7C 00 F0 00 */ cmpw r0, r30
+/* 80348110 00343D70 40 82 FF D8 */ bne lbl_803480E8
+lbl_80348114:
+/* 80348114 00343D74 38 00 00 00 */ li r0, 0
+/* 80348118 00343D78 38 60 00 01 */ li r3, 1
+/* 8034811C 00343D7C 7C 1C 31 AE */ stbx r0, r28, r6
+lbl_80348120:
+/* 80348120 00343D80 39 61 00 20 */ addi r11, r1, 0x20
+/* 80348124 00343D84 4B E7 F0 51 */ bl _restgpr_27
+/* 80348128 00343D88 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034812C 00343D8C 7C 08 03 A6 */ mtlr r0
+/* 80348130 00343D90 38 21 00 20 */ addi r1, r1, 0x20
+/* 80348134 00343D94 4E 80 00 20 */ blr
+
+.global gpiCheckSocketConnect
+gpiCheckSocketConnect:
+/* 80348138 00343D98 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034813C 00343D9C 7C 08 02 A6 */ mflr r0
+/* 80348140 00343DA0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80348144 00343DA4 38 C1 00 08 */ addi r6, r1, 8
+/* 80348148 00343DA8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034814C 00343DAC 3B E0 00 00 */ li r31, 0
+/* 80348150 00343DB0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80348154 00343DB4 7C BE 2B 78 */ mr r30, r5
+/* 80348158 00343DB8 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8034815C 00343DBC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80348160 00343DC0 7C 7D 1B 78 */ mr r29, r3
+/* 80348164 00343DC4 7C 83 23 78 */ mr r3, r4
+/* 80348168 00343DC8 38 80 00 00 */ li r4, 0
+/* 8034816C 00343DCC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348170 00343DD0 93 E1 00 08 */ stw r31, 8(r1)
+/* 80348174 00343DD4 4B FE FE 3D */ bl GSISocketSelect
+/* 80348178 00343DD8 2C 03 FF FF */ cmpwi r3, -1
+/* 8034817C 00343DDC 40 82 00 40 */ bne lbl_803481BC
+/* 80348180 00343DE0 83 DD 00 00 */ lwz r30, 0(r29)
+/* 80348184 00343DE4 3C 80 80 45 */ lis r4, lbl_8044B598@ha
+/* 80348188 00343DE8 38 84 B5 98 */ addi r4, r4, lbl_8044B598@l
+/* 8034818C 00343DEC 38 A0 01 00 */ li r5, 0x100
+/* 80348190 00343DF0 7F C3 F3 78 */ mr r3, r30
+/* 80348194 00343DF4 4B E8 61 FD */ bl strncpy
+/* 80348198 00343DF8 9B FE 00 FF */ stb r31, 0xff(r30)
+/* 8034819C 00343DFC 38 00 00 05 */ li r0, 5
+/* 803481A0 00343E00 7F A3 EB 78 */ mr r3, r29
+/* 803481A4 00343E04 38 80 00 03 */ li r4, 3
+/* 803481A8 00343E08 90 1E 04 34 */ stw r0, 0x434(r30)
+/* 803481AC 00343E0C 38 A0 00 01 */ li r5, 1
+/* 803481B0 00343E10 4B FF 7A B9 */ bl gpiCallErrorCallback
+/* 803481B4 00343E14 38 60 00 03 */ li r3, 3
+/* 803481B8 00343E18 48 00 00 50 */ b lbl_80348208
+lbl_803481BC:
+/* 803481BC 00343E1C 2C 03 00 00 */ cmpwi r3, 0
+/* 803481C0 00343E20 40 81 00 3C */ ble lbl_803481FC
+/* 803481C4 00343E24 80 01 00 08 */ lwz r0, 8(r1)
+/* 803481C8 00343E28 2C 00 00 00 */ cmpwi r0, 0
+/* 803481CC 00343E2C 41 82 00 14 */ beq lbl_803481E0
+/* 803481D0 00343E30 38 00 00 04 */ li r0, 4
+/* 803481D4 00343E34 38 60 00 00 */ li r3, 0
+/* 803481D8 00343E38 90 1E 00 00 */ stw r0, 0(r30)
+/* 803481DC 00343E3C 48 00 00 2C */ b lbl_80348208
+lbl_803481E0:
+/* 803481E0 00343E40 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 803481E4 00343E44 2C 00 00 00 */ cmpwi r0, 0
+/* 803481E8 00343E48 41 82 00 14 */ beq lbl_803481FC
+/* 803481EC 00343E4C 38 00 00 03 */ li r0, 3
+/* 803481F0 00343E50 38 60 00 00 */ li r3, 0
+/* 803481F4 00343E54 90 1E 00 00 */ stw r0, 0(r30)
+/* 803481F8 00343E58 48 00 00 10 */ b lbl_80348208
+lbl_803481FC:
+/* 803481FC 00343E5C 38 00 00 00 */ li r0, 0
+/* 80348200 00343E60 38 60 00 00 */ li r3, 0
+/* 80348204 00343E64 90 1E 00 00 */ stw r0, 0(r30)
+lbl_80348208:
+/* 80348208 00343E68 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034820C 00343E6C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80348210 00343E70 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80348214 00343E74 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80348218 00343E78 7C 08 03 A6 */ mtlr r0
+/* 8034821C 00343E7C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80348220 00343E80 4E 80 00 20 */ blr
+
+.global gpiReadKeyAndValue
+gpiReadKeyAndValue:
+/* 80348224 00343E84 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348228 00343E88 7C 08 02 A6 */ mflr r0
+/* 8034822C 00343E8C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348230 00343E90 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348234 00343E94 7C 7F 1B 78 */ mr r31, r3
+/* 80348238 00343E98 93 C1 00 08 */ stw r30, 8(r1)
+/* 8034823C 00343E9C 80 05 00 00 */ lwz r0, 0(r5)
+/* 80348240 00343EA0 7D 24 02 14 */ add r9, r4, r0
+/* 80348244 00343EA4 7C 04 00 AE */ lbzx r0, r4, r0
+/* 80348248 00343EA8 7D 28 4B 78 */ mr r8, r9
+/* 8034824C 00343EAC 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80348250 00343EB0 39 29 00 01 */ addi r9, r9, 1
+/* 80348254 00343EB4 41 82 00 44 */ beq lbl_80348298
+/* 80348258 00343EB8 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8034825C 00343EBC 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
+/* 80348260 00343EC0 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
+/* 80348264 00343EC4 38 A0 01 00 */ li r5, 0x100
+/* 80348268 00343EC8 7F C3 F3 78 */ mr r3, r30
+/* 8034826C 00343ECC 4B E8 61 25 */ bl strncpy
+/* 80348270 00343ED0 38 60 00 00 */ li r3, 0
+/* 80348274 00343ED4 38 00 00 01 */ li r0, 1
+/* 80348278 00343ED8 98 7E 00 FF */ stb r3, 0xff(r30)
+/* 8034827C 00343EDC 7F E3 FB 78 */ mr r3, r31
+/* 80348280 00343EE0 38 80 00 03 */ li r4, 3
+/* 80348284 00343EE4 38 A0 00 01 */ li r5, 1
+/* 80348288 00343EE8 90 1E 04 34 */ stw r0, 0x434(r30)
+/* 8034828C 00343EEC 4B FF 79 DD */ bl gpiCallErrorCallback
+/* 80348290 00343EF0 38 60 00 03 */ li r3, 3
+/* 80348294 00343EF4 48 00 01 5C */ b lbl_803483F0
+lbl_80348298:
+/* 80348298 00343EF8 38 80 00 00 */ li r4, 0
+/* 8034829C 00343EFC 48 00 00 A0 */ b lbl_8034833C
+lbl_803482A0:
+/* 803482A0 00343F00 2C 00 00 00 */ cmpwi r0, 0
+/* 803482A4 00343F04 40 82 00 44 */ bne lbl_803482E8
+/* 803482A8 00343F08 83 C3 00 00 */ lwz r30, 0(r3)
+/* 803482AC 00343F0C 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
+/* 803482B0 00343F10 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
+/* 803482B4 00343F14 38 A0 01 00 */ li r5, 0x100
+/* 803482B8 00343F18 7F C3 F3 78 */ mr r3, r30
+/* 803482BC 00343F1C 4B E8 60 D5 */ bl strncpy
+/* 803482C0 00343F20 38 60 00 00 */ li r3, 0
+/* 803482C4 00343F24 38 00 00 01 */ li r0, 1
+/* 803482C8 00343F28 98 7E 00 FF */ stb r3, 0xff(r30)
+/* 803482CC 00343F2C 7F E3 FB 78 */ mr r3, r31
+/* 803482D0 00343F30 38 80 00 03 */ li r4, 3
+/* 803482D4 00343F34 38 A0 00 01 */ li r5, 1
+/* 803482D8 00343F38 90 1E 04 34 */ stw r0, 0x434(r30)
+/* 803482DC 00343F3C 4B FF 79 8D */ bl gpiCallErrorCallback
+/* 803482E0 00343F40 38 60 00 03 */ li r3, 3
+/* 803482E4 00343F44 48 00 01 0C */ b lbl_803483F0
+lbl_803482E8:
+/* 803482E8 00343F48 2C 04 01 FF */ cmpwi r4, 0x1ff
+/* 803482EC 00343F4C 40 82 00 44 */ bne lbl_80348330
+/* 803482F0 00343F50 83 C3 00 00 */ lwz r30, 0(r3)
+/* 803482F4 00343F54 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
+/* 803482F8 00343F58 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
+/* 803482FC 00343F5C 38 A0 01 00 */ li r5, 0x100
+/* 80348300 00343F60 7F C3 F3 78 */ mr r3, r30
+/* 80348304 00343F64 4B E8 60 8D */ bl strncpy
+/* 80348308 00343F68 38 60 00 00 */ li r3, 0
+/* 8034830C 00343F6C 38 00 00 01 */ li r0, 1
+/* 80348310 00343F70 98 7E 00 FF */ stb r3, 0xff(r30)
+/* 80348314 00343F74 7F E3 FB 78 */ mr r3, r31
+/* 80348318 00343F78 38 80 00 03 */ li r4, 3
+/* 8034831C 00343F7C 38 A0 00 01 */ li r5, 1
+/* 80348320 00343F80 90 1E 04 34 */ stw r0, 0x434(r30)
+/* 80348324 00343F84 4B FF 79 45 */ bl gpiCallErrorCallback
+/* 80348328 00343F88 38 60 00 03 */ li r3, 3
+/* 8034832C 00343F8C 48 00 00 C4 */ b lbl_803483F0
+lbl_80348330:
+/* 80348330 00343F90 98 06 00 00 */ stb r0, 0(r6)
+/* 80348334 00343F94 38 C6 00 01 */ addi r6, r6, 1
+/* 80348338 00343F98 38 84 00 01 */ addi r4, r4, 1
+lbl_8034833C:
+/* 8034833C 00343F9C 88 09 00 00 */ lbz r0, 0(r9)
+/* 80348340 00343FA0 39 29 00 01 */ addi r9, r9, 1
+/* 80348344 00343FA4 7C 00 07 74 */ extsb r0, r0
+/* 80348348 00343FA8 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8034834C 00343FAC 40 82 FF 54 */ bne lbl_803482A0
+/* 80348350 00343FB0 38 00 00 00 */ li r0, 0
+/* 80348354 00343FB4 38 80 00 00 */ li r4, 0
+/* 80348358 00343FB8 98 06 00 00 */ stb r0, 0(r6)
+/* 8034835C 00343FBC 48 00 00 58 */ b lbl_803483B4
+lbl_80348360:
+/* 80348360 00343FC0 2C 04 01 FF */ cmpwi r4, 0x1ff
+/* 80348364 00343FC4 40 82 00 44 */ bne lbl_803483A8
+/* 80348368 00343FC8 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8034836C 00343FCC 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
+/* 80348370 00343FD0 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
+/* 80348374 00343FD4 38 A0 01 00 */ li r5, 0x100
+/* 80348378 00343FD8 7F C3 F3 78 */ mr r3, r30
+/* 8034837C 00343FDC 4B E8 60 15 */ bl strncpy
+/* 80348380 00343FE0 38 60 00 00 */ li r3, 0
+/* 80348384 00343FE4 38 00 00 01 */ li r0, 1
+/* 80348388 00343FE8 98 7E 00 FF */ stb r3, 0xff(r30)
+/* 8034838C 00343FEC 7F E3 FB 78 */ mr r3, r31
+/* 80348390 00343FF0 38 80 00 03 */ li r4, 3
+/* 80348394 00343FF4 38 A0 00 01 */ li r5, 1
+/* 80348398 00343FF8 90 1E 04 34 */ stw r0, 0x434(r30)
+/* 8034839C 00343FFC 4B FF 78 CD */ bl gpiCallErrorCallback
+/* 803483A0 00344000 38 60 00 03 */ li r3, 3
+/* 803483A4 00344004 48 00 00 4C */ b lbl_803483F0
+lbl_803483A8:
+/* 803483A8 00344008 98 07 00 00 */ stb r0, 0(r7)
+/* 803483AC 0034400C 38 E7 00 01 */ addi r7, r7, 1
+/* 803483B0 00344010 38 84 00 01 */ addi r4, r4, 1
+lbl_803483B4:
+/* 803483B4 00344014 88 09 00 00 */ lbz r0, 0(r9)
+/* 803483B8 00344018 39 29 00 01 */ addi r9, r9, 1
+/* 803483BC 0034401C 7C 00 07 74 */ extsb r0, r0
+/* 803483C0 00344020 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803483C4 00344024 41 82 00 0C */ beq lbl_803483D0
+/* 803483C8 00344028 2C 00 00 00 */ cmpwi r0, 0
+/* 803483CC 0034402C 40 82 FF 94 */ bne lbl_80348360
+lbl_803483D0:
+/* 803483D0 00344030 38 60 00 00 */ li r3, 0
+/* 803483D4 00344034 7C 08 48 50 */ subf r0, r8, r9
+/* 803483D8 00344038 98 67 00 00 */ stb r3, 0(r7)
+/* 803483DC 0034403C 38 60 00 00 */ li r3, 0
+/* 803483E0 00344040 80 85 00 00 */ lwz r4, 0(r5)
+/* 803483E4 00344044 7C 80 22 14 */ add r4, r0, r4
+/* 803483E8 00344048 38 04 FF FF */ addi r0, r4, -1
+/* 803483EC 0034404C 90 05 00 00 */ stw r0, 0(r5)
+lbl_803483F0:
+/* 803483F0 00344050 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803483F4 00344054 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803483F8 00344058 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803483FC 0034405C 7C 08 03 A6 */ mtlr r0
+/* 80348400 00344060 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348404 00344064 4E 80 00 20 */ blr
+
+.global gpiSetError
+gpiSetError:
+/* 80348408 00344068 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034840C 0034406C 7C 08 02 A6 */ mflr r0
+/* 80348410 00344070 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348414 00344074 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348418 00344078 93 C1 00 08 */ stw r30, 8(r1)
+/* 8034841C 0034407C 7C 9E 23 78 */ mr r30, r4
+/* 80348420 00344080 7C A4 2B 78 */ mr r4, r5
+/* 80348424 00344084 38 A0 01 00 */ li r5, 0x100
+/* 80348428 00344088 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8034842C 0034408C 7F E3 FB 78 */ mr r3, r31
+/* 80348430 00344090 4B E8 5F 61 */ bl strncpy
+/* 80348434 00344094 38 00 00 00 */ li r0, 0
+/* 80348438 00344098 98 1F 00 FF */ stb r0, 0xff(r31)
+/* 8034843C 0034409C 93 DF 04 34 */ stw r30, 0x434(r31)
+/* 80348440 003440A0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348444 003440A4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80348448 003440A8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034844C 003440AC 7C 08 03 A6 */ mtlr r0
+/* 80348450 003440B0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348454 003440B4 4E 80 00 20 */ blr
+
+.global gpiSetErrorString
+gpiSetErrorString:
+/* 80348458 003440B8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034845C 003440BC 7C 08 02 A6 */ mflr r0
+/* 80348460 003440C0 38 A0 01 00 */ li r5, 0x100
+/* 80348464 003440C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348468 003440C8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034846C 003440CC 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80348470 003440D0 7F E3 FB 78 */ mr r3, r31
+/* 80348474 003440D4 4B E8 5F 1D */ bl strncpy
+/* 80348478 003440D8 38 00 00 00 */ li r0, 0
+/* 8034847C 003440DC 98 1F 00 FF */ stb r0, 0xff(r31)
+/* 80348480 003440E0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348484 003440E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348488 003440E8 7C 08 03 A6 */ mtlr r0
+/* 8034848C 003440EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348490 003440F0 4E 80 00 20 */ blr
+
+.global gpiEncodeString
+gpiEncodeString:
+/* 80348494 003440F4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80348498 003440F8 7C 08 02 A6 */ mflr r0
+/* 8034849C 003440FC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803484A0 00344100 39 61 00 40 */ addi r11, r1, 0x40
+/* 803484A4 00344104 4B E7 EC 85 */ bl _savegpr_27
+/* 803484A8 00344108 7C 7B 1B 78 */ mr r27, r3
+/* 803484AC 0034410C 7C 9C 23 78 */ mr r28, r4
+/* 803484B0 00344110 4B E7 E6 B5 */ bl strlen
+/* 803484B4 00344114 3C 80 79 70 */ lis r4, 0x79707367@ha
+/* 803484B8 00344118 7C 7D 1B 78 */ mr r29, r3
+/* 803484BC 0034411C 38 64 73 67 */ addi r3, r4, 0x79707367@l
+/* 803484C0 00344120 4B FF 0B A1 */ bl Util_RandSeed
+/* 803484C4 00344124 3B E1 00 08 */ addi r31, r1, 8
+/* 803484C8 00344128 3B C0 00 00 */ li r30, 0
+/* 803484CC 0034412C 48 00 00 2C */ b lbl_803484F8
+lbl_803484D0:
+/* 803484D0 00344130 38 60 00 00 */ li r3, 0
+/* 803484D4 00344134 38 80 00 FF */ li r4, 0xff
+/* 803484D8 00344138 4B FF 0B A1 */ bl Util_RandInt
+/* 803484DC 0034413C 88 1B 00 00 */ lbz r0, 0(r27)
+/* 803484E0 00344140 7C 63 07 74 */ extsb r3, r3
+/* 803484E4 00344144 3B DE 00 01 */ addi r30, r30, 1
+/* 803484E8 00344148 3B 7B 00 01 */ addi r27, r27, 1
+/* 803484EC 0034414C 7C 60 02 78 */ xor r0, r3, r0
+/* 803484F0 00344150 98 1F 00 00 */ stb r0, 0(r31)
+/* 803484F4 00344154 3B FF 00 01 */ addi r31, r31, 1
+lbl_803484F8:
+/* 803484F8 00344158 7C 1E E8 40 */ cmplw r30, r29
+/* 803484FC 0034415C 41 80 FF D4 */ blt lbl_803484D0
+/* 80348500 00344160 38 61 00 08 */ addi r3, r1, 8
+/* 80348504 00344164 38 00 00 00 */ li r0, 0
+/* 80348508 00344168 7C 03 F1 AE */ stbx r0, r3, r30
+/* 8034850C 0034416C 7F 84 E3 78 */ mr r4, r28
+/* 80348510 00344170 7F A5 EB 78 */ mr r5, r29
+/* 80348514 00344174 38 C0 00 01 */ li r6, 1
+/* 80348518 00344178 4B FF 0B D5 */ bl B64Encode
+/* 8034851C 0034417C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80348520 00344180 4B E7 EC 55 */ bl _restgpr_27
+/* 80348524 00344184 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80348528 00344188 7C 08 03 A6 */ mtlr r0
+/* 8034852C 0034418C 38 21 00 40 */ addi r1, r1, 0x40
+/* 80348530 00344190 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gsAvailable.s b/asm/SDK/DWC/gamespy/gsAvailable.s new file mode 100644 index 0000000..9d17ec2 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gsAvailable.s @@ -0,0 +1,236 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global GSIStartAvailableCheckA
+GSIStartAvailableCheckA:
+/* 80339358 00334FB8 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8033935C 00334FBC 7C 08 02 A6 */ mflr r0
+/* 80339360 00334FC0 90 01 00 64 */ stw r0, 0x64(r1)
+/* 80339364 00334FC4 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 80339368 00334FC8 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 8033936C 00334FCC 93 A1 00 54 */ stw r29, 0x54(r1)
+/* 80339370 00334FD0 3F A0 80 61 */ lis r29, lbl_80610AF8@ha
+/* 80339374 00334FD4 3B BD 0A F8 */ addi r29, r29, lbl_80610AF8@l
+/* 80339378 00334FD8 93 81 00 50 */ stw r28, 0x50(r1)
+/* 8033937C 00334FDC 7C 7C 1B 78 */ mr r28, r3
+/* 80339380 00334FE0 7F 84 E3 78 */ mr r4, r28
+/* 80339384 00334FE4 38 7D 00 00 */ addi r3, r29, 0
+/* 80339388 00334FE8 4B E9 4F 49 */ bl strcpy
+/* 8033938C 00334FEC 38 00 FF FF */ li r0, -1
+/* 80339390 00334FF0 90 1D 00 80 */ stw r0, 0x80(r29)
+/* 80339394 00334FF4 4B FF FC 3D */ bl SocketStartUp
+/* 80339398 00334FF8 8B FD 00 40 */ lbz r31, 0x40(r29)
+/* 8033939C 00334FFC 7F FF 07 75 */ extsb. r31, r31
+/* 803393A0 00335000 40 82 00 1C */ bne lbl_803393BC
+/* 803393A4 00335004 3C 80 80 45 */ lis r4, lbl_8044A430@ha
+/* 803393A8 00335008 7F 85 E3 78 */ mr r5, r28
+/* 803393AC 0033500C 38 61 00 08 */ addi r3, r1, 8
+/* 803393B0 00335010 38 84 A4 30 */ addi r4, r4, lbl_8044A430@l
+/* 803393B4 00335014 4C C6 31 82 */ crclr 6
+/* 803393B8 00335018 4B E9 37 45 */ bl sprintf
+lbl_803393BC:
+/* 803393BC 0033501C 3B DD 00 80 */ addi r30, r29, 0x80
+/* 803393C0 00335020 38 00 00 02 */ li r0, 2
+/* 803393C4 00335024 98 1E 00 05 */ stb r0, 5(r30)
+/* 803393C8 00335028 38 60 6C FC */ li r3, 0x6cfc
+/* 803393CC 0033502C 4B FB D9 B1 */ bl SOHtoNs
+/* 803393D0 00335030 2C 1F 00 00 */ cmpwi r31, 0
+/* 803393D4 00335034 B0 7E 00 06 */ sth r3, 6(r30)
+/* 803393D8 00335038 38 61 00 08 */ addi r3, r1, 8
+/* 803393DC 0033503C 41 82 00 08 */ beq lbl_803393E4
+/* 803393E0 00335040 38 7D 00 40 */ addi r3, r29, 0x40
+lbl_803393E4:
+/* 803393E4 00335044 4B FF EB 8D */ bl inet_addr
+/* 803393E8 00335048 3C 03 00 01 */ addis r0, r3, 1
+/* 803393EC 0033504C 38 9D 00 80 */ addi r4, r29, 0x80
+/* 803393F0 00335050 28 00 FF FF */ cmplwi r0, 0xffff
+/* 803393F4 00335054 90 64 00 08 */ stw r3, 8(r4)
+/* 803393F8 00335058 40 82 00 3C */ bne lbl_80339434
+/* 803393FC 0033505C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80339400 00335060 38 61 00 08 */ addi r3, r1, 8
+/* 80339404 00335064 41 82 00 08 */ beq lbl_8033940C
+/* 80339408 00335068 38 7D 00 40 */ addi r3, r29, 0x40
+lbl_8033940C:
+/* 8033940C 0033506C 4B FF EC CD */ bl gethostbyname
+/* 80339410 00335070 2C 03 00 00 */ cmpwi r3, 0
+/* 80339414 00335074 40 82 00 0C */ bne lbl_80339420
+/* 80339418 00335078 38 00 00 00 */ li r0, 0
+/* 8033941C 0033507C 48 00 00 1C */ b lbl_80339438
+lbl_80339420:
+/* 80339420 00335080 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 80339424 00335084 38 7D 00 80 */ addi r3, r29, 0x80
+/* 80339428 00335088 80 84 00 00 */ lwz r4, 0(r4)
+/* 8033942C 0033508C 80 04 00 00 */ lwz r0, 0(r4)
+/* 80339430 00335090 90 03 00 08 */ stw r0, 8(r3)
+lbl_80339434:
+/* 80339434 00335094 38 00 00 01 */ li r0, 1
+lbl_80339438:
+/* 80339438 00335098 2C 00 00 00 */ cmpwi r0, 0
+/* 8033943C 0033509C 41 82 00 78 */ beq lbl_803394B4
+/* 80339440 003350A0 38 60 00 02 */ li r3, 2
+/* 80339444 003350A4 38 80 00 02 */ li r4, 2
+/* 80339448 003350A8 38 A0 00 11 */ li r5, 0x11
+/* 8033944C 003350AC 4B FF E7 79 */ bl socket
+/* 80339450 003350B0 2C 03 FF FF */ cmpwi r3, -1
+/* 80339454 003350B4 90 7D 00 80 */ stw r3, 0x80(r29)
+/* 80339458 003350B8 41 82 00 5C */ beq lbl_803394B4
+/* 8033945C 003350BC 3B DD 00 80 */ addi r30, r29, 0x80
+/* 80339460 003350C0 38 00 00 09 */ li r0, 9
+/* 80339464 003350C4 98 1E 00 0C */ stb r0, 0xc(r30)
+/* 80339468 003350C8 7F 83 E3 78 */ mr r3, r28
+/* 8033946C 003350CC 4B E8 D6 F9 */ bl strlen
+/* 80339470 003350D0 7C 7F 1B 78 */ mr r31, r3
+/* 80339474 003350D4 7F 84 E3 78 */ mr r4, r28
+/* 80339478 003350D8 38 7E 00 11 */ addi r3, r30, 0x11
+/* 8033947C 003350DC 38 BF 00 01 */ addi r5, r31, 1
+/* 80339480 003350E0 4B CC AB 81 */ bl memcpy
+/* 80339484 003350E4 38 BF 00 06 */ addi r5, r31, 6
+/* 80339488 003350E8 80 7D 00 80 */ lwz r3, 0x80(r29)
+/* 8033948C 003350EC 90 BE 00 4C */ stw r5, 0x4c(r30)
+/* 80339490 003350F0 38 9E 00 0C */ addi r4, r30, 0xc
+/* 80339494 003350F4 38 FE 00 04 */ addi r7, r30, 4
+/* 80339498 003350F8 38 C0 00 00 */ li r6, 0
+/* 8033949C 003350FC 39 00 00 08 */ li r8, 8
+/* 803394A0 00335100 4B FF E9 F5 */ bl sendto
+/* 803394A4 00335104 4B FF FB 35 */ bl current_time
+/* 803394A8 00335108 38 00 00 00 */ li r0, 0
+/* 803394AC 0033510C 90 7E 00 50 */ stw r3, 0x50(r30)
+/* 803394B0 00335110 90 1E 00 54 */ stw r0, 0x54(r30)
+lbl_803394B4:
+/* 803394B4 00335114 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 803394B8 00335118 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 803394BC 0033511C 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 803394C0 00335120 83 A1 00 54 */ lwz r29, 0x54(r1)
+/* 803394C4 00335124 83 81 00 50 */ lwz r28, 0x50(r1)
+/* 803394C8 00335128 7C 08 03 A6 */ mtlr r0
+/* 803394CC 0033512C 38 21 00 60 */ addi r1, r1, 0x60
+/* 803394D0 00335130 4E 80 00 20 */ blr
+
+.global GSIAvailableCheckThink
+GSIAvailableCheckThink:
+/* 803394D4 00335134 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 803394D8 00335138 7C 08 02 A6 */ mflr r0
+/* 803394DC 0033513C 90 01 00 64 */ stw r0, 0x64(r1)
+/* 803394E0 00335140 38 00 00 08 */ li r0, 8
+/* 803394E4 00335144 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 803394E8 00335148 3F E0 80 61 */ lis r31, lbl_80610B78@ha
+/* 803394EC 0033514C 80 7F 0B 78 */ lwz r3, lbl_80610B78@l(r31)
+/* 803394F0 00335150 90 01 00 08 */ stw r0, 8(r1)
+/* 803394F4 00335154 2C 03 FF FF */ cmpwi r3, -1
+/* 803394F8 00335158 40 82 00 14 */ bne lbl_8033950C
+/* 803394FC 0033515C 38 00 00 01 */ li r0, 1
+/* 80339500 00335160 38 60 00 01 */ li r3, 1
+/* 80339504 00335164 90 0D B0 A8 */ stw r0, lbl_80640368-_SDA_BASE_(r13)
+/* 80339508 00335168 48 00 01 78 */ b lbl_80339680
+lbl_8033950C:
+/* 8033950C 0033516C 4B FF F3 41 */ bl CanReceiveOnSocket
+/* 80339510 00335170 2C 03 00 00 */ cmpwi r3, 0
+/* 80339514 00335174 41 82 00 F8 */ beq lbl_8033960C
+/* 80339518 00335178 80 7F 0B 78 */ lwz r3, 0xb78(r31)
+/* 8033951C 0033517C 38 81 00 18 */ addi r4, r1, 0x18
+/* 80339520 00335180 38 E1 00 10 */ addi r7, r1, 0x10
+/* 80339524 00335184 39 01 00 08 */ addi r8, r1, 8
+/* 80339528 00335188 38 A0 00 40 */ li r5, 0x40
+/* 8033952C 0033518C 38 C0 00 00 */ li r6, 0
+/* 80339530 00335190 4B FF E8 D5 */ bl recvfrom
+/* 80339534 00335194 2C 03 00 07 */ cmpwi r3, 7
+/* 80339538 00335198 40 80 00 0C */ bge lbl_80339544
+/* 8033953C 0033519C 38 A0 00 01 */ li r5, 1
+/* 80339540 003351A0 48 00 00 88 */ b lbl_803395C8
+lbl_80339544:
+/* 80339544 003351A4 3B FF 0B 78 */ addi r31, r31, 0xb78
+/* 80339548 003351A8 38 61 00 14 */ addi r3, r1, 0x14
+/* 8033954C 003351AC 38 9F 00 08 */ addi r4, r31, 8
+/* 80339550 003351B0 38 A0 00 04 */ li r5, 4
+/* 80339554 003351B4 4B E9 0E 45 */ bl memcmp
+/* 80339558 003351B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033955C 003351BC 41 82 00 0C */ beq lbl_80339568
+/* 80339560 003351C0 38 A0 00 01 */ li r5, 1
+/* 80339564 003351C4 48 00 00 64 */ b lbl_803395C8
+lbl_80339568:
+/* 80339568 003351C8 A0 61 00 12 */ lhz r3, 0x12(r1)
+/* 8033956C 003351CC A0 1F 00 06 */ lhz r0, 6(r31)
+/* 80339570 003351D0 7C 03 00 40 */ cmplw r3, r0
+/* 80339574 003351D4 41 82 00 0C */ beq lbl_80339580
+/* 80339578 003351D8 38 A0 00 01 */ li r5, 1
+/* 8033957C 003351DC 48 00 00 4C */ b lbl_803395C8
+lbl_80339580:
+/* 80339580 003351E0 38 61 00 18 */ addi r3, r1, 0x18
+/* 80339584 003351E4 38 8D 8F 38 */ addi r4, r13, lbl_8063E1F8-_SDA_BASE_
+/* 80339588 003351E8 38 A0 00 03 */ li r5, 3
+/* 8033958C 003351EC 4B E9 0E 0D */ bl memcmp
+/* 80339590 003351F0 2C 03 00 00 */ cmpwi r3, 0
+/* 80339594 003351F4 41 82 00 0C */ beq lbl_803395A0
+/* 80339598 003351F8 38 A0 00 01 */ li r5, 1
+/* 8033959C 003351FC 48 00 00 2C */ b lbl_803395C8
+lbl_803395A0:
+/* 803395A0 00335200 88 01 00 1C */ lbz r0, 0x1c(r1)
+/* 803395A4 00335204 38 A0 00 00 */ li r5, 0
+/* 803395A8 00335208 88 61 00 1D */ lbz r3, 0x1d(r1)
+/* 803395AC 0033520C 54 06 82 1E */ rlwinm r6, r0, 0x10, 8, 0xf
+/* 803395B0 00335210 88 81 00 1B */ lbz r4, 0x1b(r1)
+/* 803395B4 00335214 88 01 00 1E */ lbz r0, 0x1e(r1)
+/* 803395B8 00335218 54 63 44 2E */ rlwinm r3, r3, 8, 0x10, 0x17
+/* 803395BC 0033521C 50 86 C0 0E */ rlwimi r6, r4, 0x18, 0, 7
+/* 803395C0 00335220 7C C6 1B 78 */ or r6, r6, r3
+/* 803395C4 00335224 7C DF 03 78 */ or r31, r6, r0
+lbl_803395C8:
+/* 803395C8 00335228 2C 05 00 00 */ cmpwi r5, 0
+/* 803395CC 0033522C 40 82 00 40 */ bne lbl_8033960C
+/* 803395D0 00335230 3C 60 80 61 */ lis r3, lbl_80610B78@ha
+/* 803395D4 00335234 80 63 0B 78 */ lwz r3, lbl_80610B78@l(r3)
+/* 803395D8 00335238 4B FF E6 25 */ bl closesocket
+/* 803395DC 0033523C 57 E0 07 FF */ clrlwi. r0, r31, 0x1f
+/* 803395E0 00335240 41 82 00 10 */ beq lbl_803395F0
+/* 803395E4 00335244 38 00 00 02 */ li r0, 2
+/* 803395E8 00335248 90 0D B0 A8 */ stw r0, lbl_80640368-_SDA_BASE_(r13)
+/* 803395EC 0033524C 48 00 00 18 */ b lbl_80339604
+lbl_803395F0:
+/* 803395F0 00335250 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e
+/* 803395F4 00335254 38 00 00 01 */ li r0, 1
+/* 803395F8 00335258 41 82 00 08 */ beq lbl_80339600
+/* 803395FC 0033525C 38 00 00 03 */ li r0, 3
+lbl_80339600:
+/* 80339600 00335260 90 0D B0 A8 */ stw r0, lbl_80640368-_SDA_BASE_(r13)
+lbl_80339604:
+/* 80339604 00335264 7C 03 03 78 */ mr r3, r0
+/* 80339608 00335268 48 00 00 78 */ b lbl_80339680
+lbl_8033960C:
+/* 8033960C 0033526C 4B FF F9 CD */ bl current_time
+/* 80339610 00335270 3C A0 80 61 */ lis r5, lbl_80610B78@ha
+/* 80339614 00335274 3B E5 0B 78 */ addi r31, r5, lbl_80610B78@l
+/* 80339618 00335278 80 9F 00 50 */ lwz r4, 0x50(r31)
+/* 8033961C 0033527C 38 04 07 D0 */ addi r0, r4, 0x7d0
+/* 80339620 00335280 7C 03 00 40 */ cmplw r3, r0
+/* 80339624 00335284 40 81 00 58 */ ble lbl_8033967C
+/* 80339628 00335288 80 1F 00 54 */ lwz r0, 0x54(r31)
+/* 8033962C 0033528C 2C 00 00 01 */ cmpwi r0, 1
+/* 80339630 00335290 40 82 00 1C */ bne lbl_8033964C
+/* 80339634 00335294 80 65 0B 78 */ lwz r3, 0xb78(r5)
+/* 80339638 00335298 4B FF E5 C5 */ bl closesocket
+/* 8033963C 0033529C 38 00 00 01 */ li r0, 1
+/* 80339640 003352A0 38 60 00 01 */ li r3, 1
+/* 80339644 003352A4 90 0D B0 A8 */ stw r0, lbl_80640368-_SDA_BASE_(r13)
+/* 80339648 003352A8 48 00 00 38 */ b lbl_80339680
+lbl_8033964C:
+/* 8033964C 003352AC 80 65 0B 78 */ lwz r3, 0xb78(r5)
+/* 80339650 003352B0 38 9F 00 0C */ addi r4, r31, 0xc
+/* 80339654 003352B4 80 BF 00 4C */ lwz r5, 0x4c(r31)
+/* 80339658 003352B8 38 FF 00 04 */ addi r7, r31, 4
+/* 8033965C 003352BC 38 C0 00 00 */ li r6, 0
+/* 80339660 003352C0 39 00 00 08 */ li r8, 8
+/* 80339664 003352C4 4B FF E8 31 */ bl sendto
+/* 80339668 003352C8 4B FF F9 71 */ bl current_time
+/* 8033966C 003352CC 80 9F 00 54 */ lwz r4, 0x54(r31)
+/* 80339670 003352D0 90 7F 00 50 */ stw r3, 0x50(r31)
+/* 80339674 003352D4 38 04 00 01 */ addi r0, r4, 1
+/* 80339678 003352D8 90 1F 00 54 */ stw r0, 0x54(r31)
+lbl_8033967C:
+/* 8033967C 003352DC 38 60 00 00 */ li r3, 0
+lbl_80339680:
+/* 80339680 003352E0 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80339684 003352E4 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 80339688 003352E8 7C 08 03 A6 */ mtlr r0
+/* 8033968C 003352EC 38 21 00 60 */ addi r1, r1, 0x60
+/* 80339690 003352F0 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gsCrypt.s b/asm/SDK/DWC/gamespy/gsCrypt.s new file mode 100644 index 0000000..336ea8b --- /dev/null +++ b/asm/SDK/DWC/gamespy/gsCrypt.s @@ -0,0 +1,83 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gsCryptRSAEncryptBuffer
+gsCryptRSAEncryptBuffer:
+/* 80339694 003352F4 94 21 FE D0 */ stwu r1, -0x130(r1)
+/* 80339698 003352F8 7C 08 02 A6 */ mflr r0
+/* 8033969C 003352FC 90 01 01 34 */ stw r0, 0x134(r1)
+/* 803396A0 00335300 39 61 01 30 */ addi r11, r1, 0x130
+/* 803396A4 00335304 4B E8 DA 7D */ bl _savegpr_25
+/* 803396A8 00335308 28 05 00 75 */ cmplwi r5, 0x75
+/* 803396AC 0033530C 7C 79 1B 78 */ mr r25, r3
+/* 803396B0 00335310 7C 9A 23 78 */ mr r26, r4
+/* 803396B4 00335314 7C BB 2B 78 */ mr r27, r5
+/* 803396B8 00335318 7C DC 33 78 */ mr r28, r6
+/* 803396BC 0033531C 3B C1 00 0C */ addi r30, r1, 0xc
+/* 803396C0 00335320 40 81 00 0C */ ble lbl_803396CC
+/* 803396C4 00335324 38 60 FF FF */ li r3, -1
+/* 803396C8 00335328 48 00 00 D0 */ b lbl_80339798
+lbl_803396CC:
+/* 803396CC 0033532C 38 60 00 00 */ li r3, 0
+/* 803396D0 00335330 38 00 00 02 */ li r0, 2
+/* 803396D4 00335334 98 61 00 0C */ stb r3, 0xc(r1)
+/* 803396D8 00335338 98 01 00 0D */ stb r0, 0xd(r1)
+/* 803396DC 0033533C 4B FF F8 FD */ bl current_time
+/* 803396E0 00335340 4B FF F9 81 */ bl Util_RandSeed
+/* 803396E4 00335344 23 BB 00 7D */ subfic r29, r27, 0x7d
+/* 803396E8 00335348 3B E0 00 00 */ li r31, 0
+/* 803396EC 0033534C 48 00 00 20 */ b lbl_8033970C
+lbl_803396F0:
+/* 803396F0 00335350 38 60 00 00 */ li r3, 0
+/* 803396F4 00335354 38 80 00 FF */ li r4, 0xff
+/* 803396F8 00335358 4B FF F9 81 */ bl Util_RandInt
+/* 803396FC 0033535C 7C 9E FA 14 */ add r4, r30, r31
+/* 80339700 00335360 38 03 00 01 */ addi r0, r3, 1
+/* 80339704 00335364 98 04 00 02 */ stb r0, 2(r4)
+/* 80339708 00335368 3B FF 00 01 */ addi r31, r31, 1
+lbl_8033970C:
+/* 8033970C 0033536C 7C 1F E8 40 */ cmplw r31, r29
+/* 80339710 00335370 41 80 FF E0 */ blt lbl_803396F0
+/* 80339714 00335374 20 1B 00 7E */ subfic r0, r27, 0x7e
+/* 80339718 00335378 7C BE EA 14 */ add r5, r30, r29
+/* 8033971C 0033537C 38 C0 00 00 */ li r6, 0
+/* 80339720 00335380 7F 44 D3 78 */ mr r4, r26
+/* 80339724 00335384 7C 7E 02 14 */ add r3, r30, r0
+/* 80339728 00335388 98 C5 00 02 */ stb r6, 2(r5)
+/* 8033972C 0033538C 7F 65 DB 78 */ mr r5, r27
+/* 80339730 00335390 38 63 00 02 */ addi r3, r3, 2
+/* 80339734 00335394 4B CC A8 CD */ bl memcpy
+/* 80339738 00335398 38 00 00 20 */ li r0, 0x20
+/* 8033973C 0033539C 38 61 00 08 */ addi r3, r1, 8
+/* 80339740 003353A0 90 01 00 08 */ stw r0, 8(r1)
+/* 80339744 003353A4 48 00 27 CD */ bl gsLargeIntReverseBytes
+/* 80339748 003353A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033974C 003353AC 41 82 00 30 */ beq lbl_8033977C
+/* 80339750 003353B0 38 61 00 08 */ addi r3, r1, 8
+/* 80339754 003353B4 7F 25 CB 78 */ mr r5, r25
+/* 80339758 003353B8 7C 66 1B 78 */ mr r6, r3
+/* 8033975C 003353BC 38 99 01 04 */ addi r4, r25, 0x104
+/* 80339760 003353C0 48 00 1C 89 */ bl gsLargeIntPowerMod
+/* 80339764 003353C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80339768 003353C8 41 82 00 14 */ beq lbl_8033977C
+/* 8033976C 003353CC 38 61 00 08 */ addi r3, r1, 8
+/* 80339770 003353D0 48 00 27 A1 */ bl gsLargeIntReverseBytes
+/* 80339774 003353D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80339778 003353D8 40 82 00 0C */ bne lbl_80339784
+lbl_8033977C:
+/* 8033977C 003353DC 38 60 FF FF */ li r3, -1
+/* 80339780 003353E0 48 00 00 18 */ b lbl_80339798
+lbl_80339784:
+/* 80339784 003353E4 7F 83 E3 78 */ mr r3, r28
+/* 80339788 003353E8 38 81 00 0C */ addi r4, r1, 0xc
+/* 8033978C 003353EC 38 A0 00 80 */ li r5, 0x80
+/* 80339790 003353F0 4B CC A8 71 */ bl memcpy
+/* 80339794 003353F4 38 60 00 00 */ li r3, 0
+lbl_80339798:
+/* 80339798 003353F8 39 61 01 30 */ addi r11, r1, 0x130
+/* 8033979C 003353FC 4B E8 D9 D1 */ bl _restgpr_25
+/* 803397A0 00335400 80 01 01 34 */ lwz r0, 0x134(r1)
+/* 803397A4 00335404 7C 08 03 A6 */ mtlr r0
+/* 803397A8 00335408 38 21 01 30 */ addi r1, r1, 0x130
+/* 803397AC 0033540C 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gsLargeInt.s b/asm/SDK/DWC/gamespy/gsLargeInt.s new file mode 100644 index 0000000..58fbd8a --- /dev/null +++ b/asm/SDK/DWC/gamespy/gsLargeInt.s @@ -0,0 +1,2835 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gsiLargeIntResize
+gsiLargeIntResize:
+/* 803397B0 00335410 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803397B4 00335414 7C 08 02 A6 */ mflr r0
+/* 803397B8 00335418 28 04 00 40 */ cmplwi r4, 0x40
+/* 803397BC 0033541C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803397C0 00335420 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803397C4 00335424 7C 9F 23 78 */ mr r31, r4
+/* 803397C8 00335428 93 C1 00 08 */ stw r30, 8(r1)
+/* 803397CC 0033542C 7C 7E 1B 78 */ mr r30, r3
+/* 803397D0 00335430 40 81 00 0C */ ble lbl_803397DC
+/* 803397D4 00335434 38 60 00 00 */ li r3, 0
+/* 803397D8 00335438 48 00 00 78 */ b lbl_80339850
+lbl_803397DC:
+/* 803397DC 0033543C 80 03 00 00 */ lwz r0, 0(r3)
+/* 803397E0 00335440 7C 00 20 40 */ cmplw r0, r4
+/* 803397E4 00335444 41 80 00 48 */ blt lbl_8033982C
+/* 803397E8 00335448 48 00 00 10 */ b lbl_803397F8
+lbl_803397EC:
+/* 803397EC 0033544C 80 A3 00 00 */ lwz r5, 0(r3)
+/* 803397F0 00335450 38 05 FF FF */ addi r0, r5, -1
+/* 803397F4 00335454 90 03 00 00 */ stw r0, 0(r3)
+lbl_803397F8:
+/* 803397F8 00335458 80 A3 00 00 */ lwz r5, 0(r3)
+/* 803397FC 0033545C 7C 05 20 40 */ cmplw r5, r4
+/* 80339800 00335460 40 81 00 14 */ ble lbl_80339814
+/* 80339804 00335464 54 A0 10 3A */ slwi r0, r5, 2
+/* 80339808 00335468 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8033980C 0033546C 2C 00 00 00 */ cmpwi r0, 0
+/* 80339810 00335470 41 82 FF DC */ beq lbl_803397EC
+lbl_80339814:
+/* 80339814 00335474 7C 05 20 40 */ cmplw r5, r4
+/* 80339818 00335478 40 82 00 0C */ bne lbl_80339824
+/* 8033981C 0033547C 38 60 00 01 */ li r3, 1
+/* 80339820 00335480 48 00 00 30 */ b lbl_80339850
+lbl_80339824:
+/* 80339824 00335484 38 60 00 00 */ li r3, 0
+/* 80339828 00335488 48 00 00 28 */ b lbl_80339850
+lbl_8033982C:
+/* 8033982C 0033548C 54 04 10 3A */ slwi r4, r0, 2
+/* 80339830 00335490 7C 00 F8 50 */ subf r0, r0, r31
+/* 80339834 00335494 7C 63 22 14 */ add r3, r3, r4
+/* 80339838 00335498 38 80 00 00 */ li r4, 0
+/* 8033983C 0033549C 54 05 10 3A */ slwi r5, r0, 2
+/* 80339840 003354A0 38 63 00 04 */ addi r3, r3, 4
+/* 80339844 003354A4 4B CC A8 C1 */ bl memset
+/* 80339848 003354A8 93 FE 00 00 */ stw r31, 0(r30)
+/* 8033984C 003354AC 38 60 00 01 */ li r3, 1
+lbl_80339850:
+/* 80339850 003354B0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80339854 003354B4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80339858 003354B8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8033985C 003354BC 7C 08 03 A6 */ mtlr r0
+/* 80339860 003354C0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80339864 003354C4 4E 80 00 20 */ blr
+
+.global gsiLargeIntSizePower2
+gsiLargeIntSizePower2:
+/* 80339868 003354C8 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8033986C 003354CC 80 E4 00 00 */ lwz r7, 0(r4)
+/* 80339870 003354D0 54 C0 10 3A */ slwi r0, r6, 2
+/* 80339874 003354D4 7C 63 02 14 */ add r3, r3, r0
+/* 80339878 003354D8 48 00 00 0C */ b lbl_80339884
+lbl_8033987C:
+/* 8033987C 003354DC 38 63 FF FC */ addi r3, r3, -4
+/* 80339880 003354E0 38 C6 FF FF */ addi r6, r6, -1
+lbl_80339884:
+/* 80339884 003354E4 2C 06 00 00 */ cmpwi r6, 0
+/* 80339888 003354E8 40 81 00 10 */ ble lbl_80339898
+/* 8033988C 003354EC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80339890 003354F0 2C 00 00 00 */ cmpwi r0, 0
+/* 80339894 003354F4 41 82 FF E8 */ beq lbl_8033987C
+lbl_80339898:
+/* 80339898 003354F8 54 E0 10 3A */ slwi r0, r7, 2
+/* 8033989C 003354FC 7C 64 02 14 */ add r3, r4, r0
+/* 803398A0 00335500 48 00 00 0C */ b lbl_803398AC
+lbl_803398A4:
+/* 803398A4 00335504 38 63 FF FC */ addi r3, r3, -4
+/* 803398A8 00335508 38 E7 FF FF */ addi r7, r7, -1
+lbl_803398AC:
+/* 803398AC 0033550C 2C 07 00 00 */ cmpwi r7, 0
+/* 803398B0 00335510 40 81 00 10 */ ble lbl_803398C0
+/* 803398B4 00335514 80 03 00 00 */ lwz r0, 0(r3)
+/* 803398B8 00335518 2C 00 00 00 */ cmpwi r0, 0
+/* 803398BC 0033551C 41 82 FF E8 */ beq lbl_803398A4
+lbl_803398C0:
+/* 803398C0 00335520 7C 06 38 00 */ cmpw r6, r7
+/* 803398C4 00335524 40 81 00 08 */ ble lbl_803398CC
+/* 803398C8 00335528 7C C7 33 78 */ mr r7, r6
+lbl_803398CC:
+/* 803398CC 0033552C 90 E5 00 00 */ stw r7, 0(r5)
+/* 803398D0 00335530 38 80 00 01 */ li r4, 1
+/* 803398D4 00335534 48 00 00 08 */ b lbl_803398DC
+lbl_803398D8:
+/* 803398D8 00335538 54 84 08 3C */ slwi r4, r4, 1
+lbl_803398DC:
+/* 803398DC 0033553C 7C 04 38 40 */ cmplw r4, r7
+/* 803398E0 00335540 41 80 FF F8 */ blt lbl_803398D8
+/* 803398E4 00335544 20 04 00 40 */ subfic r0, r4, 0x40
+/* 803398E8 00335548 38 60 00 40 */ li r3, 0x40
+/* 803398EC 0033554C 7C 63 23 38 */ orc r3, r3, r4
+/* 803398F0 00335550 90 85 00 00 */ stw r4, 0(r5)
+/* 803398F4 00335554 54 00 F8 7E */ srwi r0, r0, 1
+/* 803398F8 00335558 7C 00 18 50 */ subf r0, r0, r3
+/* 803398FC 0033555C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80339900 00335560 4E 80 00 20 */ blr
+
+.global gsiLargeIntCompare
+gsiLargeIntCompare:
+/* 80339904 00335564 54 80 10 3A */ slwi r0, r4, 2
+/* 80339908 00335568 7C E3 02 14 */ add r7, r3, r0
+/* 8033990C 0033556C 48 00 00 0C */ b lbl_80339918
+lbl_80339910:
+/* 80339910 00335570 38 E7 FF FC */ addi r7, r7, -4
+/* 80339914 00335574 38 84 FF FF */ addi r4, r4, -1
+lbl_80339918:
+/* 80339918 00335578 80 07 FF FC */ lwz r0, -4(r7)
+/* 8033991C 0033557C 2C 00 00 00 */ cmpwi r0, 0
+/* 80339920 00335580 40 82 00 0C */ bne lbl_8033992C
+/* 80339924 00335584 2C 04 00 00 */ cmpwi r4, 0
+/* 80339928 00335588 40 82 FF E8 */ bne lbl_80339910
+lbl_8033992C:
+/* 8033992C 0033558C 54 C0 10 3A */ slwi r0, r6, 2
+/* 80339930 00335590 7C E5 02 14 */ add r7, r5, r0
+/* 80339934 00335594 48 00 00 0C */ b lbl_80339940
+lbl_80339938:
+/* 80339938 00335598 38 E7 FF FC */ addi r7, r7, -4
+/* 8033993C 0033559C 38 C6 FF FF */ addi r6, r6, -1
+lbl_80339940:
+/* 80339940 003355A0 80 07 FF FC */ lwz r0, -4(r7)
+/* 80339944 003355A4 2C 00 00 00 */ cmpwi r0, 0
+/* 80339948 003355A8 40 82 00 0C */ bne lbl_80339954
+/* 8033994C 003355AC 2C 06 00 00 */ cmpwi r6, 0
+/* 80339950 003355B0 40 82 FF E8 */ bne lbl_80339938
+lbl_80339954:
+/* 80339954 003355B4 7C 04 30 40 */ cmplw r4, r6
+/* 80339958 003355B8 40 80 00 0C */ bge lbl_80339964
+/* 8033995C 003355BC 38 60 FF FF */ li r3, -1
+/* 80339960 003355C0 4E 80 00 20 */ blr
+lbl_80339964:
+/* 80339964 003355C4 40 81 00 0C */ ble lbl_80339970
+/* 80339968 003355C8 38 60 00 01 */ li r3, 1
+/* 8033996C 003355CC 4E 80 00 20 */ blr
+lbl_80339970:
+/* 80339970 003355D0 54 80 10 3A */ slwi r0, r4, 2
+/* 80339974 003355D4 7C A5 02 14 */ add r5, r5, r0
+/* 80339978 003355D8 7C 63 02 14 */ add r3, r3, r0
+/* 8033997C 003355DC 7C 89 03 A6 */ mtctr r4
+/* 80339980 003355E0 2C 04 00 00 */ cmpwi r4, 0
+/* 80339984 003355E4 41 82 00 34 */ beq lbl_803399B8
+lbl_80339988:
+/* 80339988 003355E8 80 05 FF FC */ lwz r0, -4(r5)
+/* 8033998C 003355EC 80 83 FF FC */ lwz r4, -4(r3)
+/* 80339990 003355F0 7C 04 00 40 */ cmplw r4, r0
+/* 80339994 003355F4 40 80 00 0C */ bge lbl_803399A0
+/* 80339998 003355F8 38 60 FF FF */ li r3, -1
+/* 8033999C 003355FC 4E 80 00 20 */ blr
+lbl_803399A0:
+/* 803399A0 00335600 40 81 00 0C */ ble lbl_803399AC
+/* 803399A4 00335604 38 60 00 01 */ li r3, 1
+/* 803399A8 00335608 4E 80 00 20 */ blr
+lbl_803399AC:
+/* 803399AC 0033560C 38 A5 FF FC */ addi r5, r5, -4
+/* 803399B0 00335610 38 63 FF FC */ addi r3, r3, -4
+/* 803399B4 00335614 42 00 FF D4 */ bdnz lbl_80339988
+lbl_803399B8:
+/* 803399B8 00335618 38 60 00 00 */ li r3, 0
+/* 803399BC 0033561C 4E 80 00 20 */ blr
+
+.global gsiLargeIntAdd
+gsiLargeIntAdd:
+/* 803399C0 00335620 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803399C4 00335624 7C 08 02 A6 */ mflr r0
+/* 803399C8 00335628 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803399CC 0033562C 39 61 00 40 */ addi r11, r1, 0x40
+/* 803399D0 00335630 4B E8 D7 41 */ bl _savegpr_21
+/* 803399D4 00335634 3E C0 80 61 */ lis r22, lbl_80610BD0@ha
+/* 803399D8 00335638 7C 77 1B 78 */ mr r23, r3
+/* 803399DC 0033563C 3A D6 0B D0 */ addi r22, r22, lbl_80610BD0@l
+/* 803399E0 00335640 7C 95 23 78 */ mr r21, r4
+/* 803399E4 00335644 80 16 00 3C */ lwz r0, 0x3c(r22)
+/* 803399E8 00335648 7C B8 2B 78 */ mr r24, r5
+/* 803399EC 0033564C 7C D9 33 78 */ mr r25, r6
+/* 803399F0 00335650 7C FA 3B 78 */ mr r26, r7
+/* 803399F4 00335654 2C 00 00 00 */ cmpwi r0, 0
+/* 803399F8 00335658 7D 1B 43 78 */ mr r27, r8
+/* 803399FC 0033565C 7D 3C 4B 78 */ mr r28, r9
+/* 80339A00 00335660 3B E0 00 00 */ li r31, 0
+/* 80339A04 00335664 3B A0 00 00 */ li r29, 0
+/* 80339A08 00335668 3B C0 00 00 */ li r30, 0
+/* 80339A0C 0033566C 40 82 00 20 */ bne lbl_80339A2C
+/* 80339A10 00335670 80 76 00 38 */ lwz r3, 0x38(r22)
+/* 80339A14 00335674 38 03 00 01 */ addi r0, r3, 1
+/* 80339A18 00335678 90 16 00 38 */ stw r0, 0x38(r22)
+/* 80339A1C 0033567C 4B FF F6 05 */ bl current_time_hires
+/* 80339A20 00335680 38 00 00 01 */ li r0, 1
+/* 80339A24 00335684 90 76 00 30 */ stw r3, 0x30(r22)
+/* 80339A28 00335688 90 16 00 3C */ stw r0, 0x3c(r22)
+lbl_80339A2C:
+/* 80339A2C 0033568C 7C 1C A8 40 */ cmplw r28, r21
+/* 80339A30 00335690 41 80 00 0C */ blt lbl_80339A3C
+/* 80339A34 00335694 7C 1C C8 40 */ cmplw r28, r25
+/* 80339A38 00335698 40 80 00 0C */ bge lbl_80339A44
+lbl_80339A3C:
+/* 80339A3C 0033569C 38 60 00 00 */ li r3, 0
+/* 80339A40 003356A0 48 00 01 F0 */ b lbl_80339C30
+lbl_80339A44:
+/* 80339A44 003356A4 7C 15 C8 40 */ cmplw r21, r25
+/* 80339A48 003356A8 40 80 00 10 */ bge lbl_80339A58
+/* 80339A4C 003356AC 7E A6 AB 78 */ mr r6, r21
+/* 80339A50 003356B0 7F 07 C3 78 */ mr r7, r24
+/* 80339A54 003356B4 48 00 00 10 */ b lbl_80339A64
+lbl_80339A58:
+/* 80339A58 003356B8 7F 26 CB 78 */ mr r6, r25
+/* 80339A5C 003356BC 7E B9 AB 78 */ mr r25, r21
+/* 80339A60 003356C0 7E E7 BB 78 */ mr r7, r23
+lbl_80339A64:
+/* 80339A64 003356C4 28 06 00 00 */ cmplwi r6, 0
+/* 80339A68 003356C8 7F 45 D3 78 */ mr r5, r26
+/* 80339A6C 003356CC 40 81 00 E0 */ ble lbl_80339B4C
+/* 80339A70 003356D0 54 C0 F0 BF */ rlwinm. r0, r6, 0x1e, 2, 0x1f
+/* 80339A74 003356D4 7C DF 33 78 */ mr r31, r6
+/* 80339A78 003356D8 7C 09 03 A6 */ mtctr r0
+/* 80339A7C 003356DC 41 82 00 9C */ beq lbl_80339B18
+lbl_80339A80:
+/* 80339A80 003356E0 80 77 00 00 */ lwz r3, 0(r23)
+/* 80339A84 003356E4 80 18 00 00 */ lwz r0, 0(r24)
+/* 80339A88 003356E8 7C 9D 18 14 */ addc r4, r29, r3
+/* 80339A8C 003356EC 7C 7E 01 94 */ addze r3, r30
+/* 80339A90 003356F0 3B C0 00 00 */ li r30, 0
+/* 80339A94 003356F4 7C 04 00 14 */ addc r0, r4, r0
+/* 80339A98 003356F8 90 05 00 00 */ stw r0, 0(r5)
+/* 80339A9C 003356FC 7F A3 01 94 */ addze r29, r3
+/* 80339AA0 00335700 80 77 00 04 */ lwz r3, 4(r23)
+/* 80339AA4 00335704 80 18 00 04 */ lwz r0, 4(r24)
+/* 80339AA8 00335708 7C 9D 18 14 */ addc r4, r29, r3
+/* 80339AAC 0033570C 7C 7E 01 94 */ addze r3, r30
+/* 80339AB0 00335710 3B C0 00 00 */ li r30, 0
+/* 80339AB4 00335714 7C 04 00 14 */ addc r0, r4, r0
+/* 80339AB8 00335718 90 05 00 04 */ stw r0, 4(r5)
+/* 80339ABC 0033571C 7F A3 01 94 */ addze r29, r3
+/* 80339AC0 00335720 80 77 00 08 */ lwz r3, 8(r23)
+/* 80339AC4 00335724 80 18 00 08 */ lwz r0, 8(r24)
+/* 80339AC8 00335728 7C 9D 18 14 */ addc r4, r29, r3
+/* 80339ACC 0033572C 7C 7E 01 94 */ addze r3, r30
+/* 80339AD0 00335730 3B C0 00 00 */ li r30, 0
+/* 80339AD4 00335734 7C 04 00 14 */ addc r0, r4, r0
+/* 80339AD8 00335738 90 05 00 08 */ stw r0, 8(r5)
+/* 80339ADC 0033573C 7F A3 01 94 */ addze r29, r3
+/* 80339AE0 00335740 80 77 00 0C */ lwz r3, 0xc(r23)
+/* 80339AE4 00335744 3A F7 00 10 */ addi r23, r23, 0x10
+/* 80339AE8 00335748 80 18 00 0C */ lwz r0, 0xc(r24)
+/* 80339AEC 0033574C 3B 18 00 10 */ addi r24, r24, 0x10
+/* 80339AF0 00335750 7C 9D 18 14 */ addc r4, r29, r3
+/* 80339AF4 00335754 7C 7E 01 94 */ addze r3, r30
+/* 80339AF8 00335758 3B C0 00 00 */ li r30, 0
+/* 80339AFC 0033575C 7C 04 00 14 */ addc r0, r4, r0
+/* 80339B00 00335760 90 05 00 0C */ stw r0, 0xc(r5)
+/* 80339B04 00335764 7F A3 01 94 */ addze r29, r3
+/* 80339B08 00335768 38 A5 00 10 */ addi r5, r5, 0x10
+/* 80339B0C 0033576C 42 00 FF 74 */ bdnz lbl_80339A80
+/* 80339B10 00335770 70 C6 00 03 */ andi. r6, r6, 3
+/* 80339B14 00335774 41 82 00 38 */ beq lbl_80339B4C
+lbl_80339B18:
+/* 80339B18 00335778 7C C9 03 A6 */ mtctr r6
+lbl_80339B1C:
+/* 80339B1C 0033577C 80 77 00 00 */ lwz r3, 0(r23)
+/* 80339B20 00335780 3A F7 00 04 */ addi r23, r23, 4
+/* 80339B24 00335784 80 18 00 00 */ lwz r0, 0(r24)
+/* 80339B28 00335788 3B 18 00 04 */ addi r24, r24, 4
+/* 80339B2C 0033578C 7C 9D 18 14 */ addc r4, r29, r3
+/* 80339B30 00335790 7C 7E 01 94 */ addze r3, r30
+/* 80339B34 00335794 3B C0 00 00 */ li r30, 0
+/* 80339B38 00335798 7C 04 00 14 */ addc r0, r4, r0
+/* 80339B3C 0033579C 90 05 00 00 */ stw r0, 0(r5)
+/* 80339B40 003357A0 7F A3 01 94 */ addze r29, r3
+/* 80339B44 003357A4 38 A5 00 04 */ addi r5, r5, 4
+/* 80339B48 003357A8 42 00 FF D4 */ bdnz lbl_80339B1C
+lbl_80339B4C:
+/* 80339B4C 003357AC 57 E0 10 3A */ slwi r0, r31, 2
+/* 80339B50 003357B0 7C 67 02 14 */ add r3, r7, r0
+/* 80339B54 003357B4 7C 9A 02 14 */ add r4, r26, r0
+/* 80339B58 003357B8 48 00 00 24 */ b lbl_80339B7C
+lbl_80339B5C:
+/* 80339B5C 003357BC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80339B60 003357C0 38 63 00 04 */ addi r3, r3, 4
+/* 80339B64 003357C4 3B FF 00 01 */ addi r31, r31, 1
+/* 80339B68 003357C8 7C 1D 00 14 */ addc r0, r29, r0
+/* 80339B6C 003357CC 90 04 00 00 */ stw r0, 0(r4)
+/* 80339B70 003357D0 7F BE 01 94 */ addze r29, r30
+/* 80339B74 003357D4 3B C0 00 00 */ li r30, 0
+/* 80339B78 003357D8 38 84 00 04 */ addi r4, r4, 4
+lbl_80339B7C:
+/* 80339B7C 003357DC 7F A0 F3 79 */ or. r0, r29, r30
+/* 80339B80 003357E0 41 82 00 0C */ beq lbl_80339B8C
+/* 80339B84 003357E4 7C 1F C8 40 */ cmplw r31, r25
+/* 80339B88 003357E8 41 80 FF D4 */ blt lbl_80339B5C
+lbl_80339B8C:
+/* 80339B8C 003357EC 7F A0 F3 79 */ or. r0, r29, r30
+/* 80339B90 003357F0 41 82 00 28 */ beq lbl_80339BB8
+/* 80339B94 003357F4 7C 1C F8 40 */ cmplw r28, r31
+/* 80339B98 003357F8 41 81 00 0C */ bgt lbl_80339BA4
+/* 80339B9C 003357FC 38 60 00 00 */ li r3, 0
+/* 80339BA0 00335800 48 00 00 90 */ b lbl_80339C30
+lbl_80339BA4:
+/* 80339BA4 00335804 57 E0 10 3A */ slwi r0, r31, 2
+/* 80339BA8 00335808 3B C0 00 00 */ li r30, 0
+/* 80339BAC 0033580C 7F BA 01 2E */ stwx r29, r26, r0
+/* 80339BB0 00335810 3B A0 00 00 */ li r29, 0
+/* 80339BB4 00335814 3B FF 00 01 */ addi r31, r31, 1
+lbl_80339BB8:
+/* 80339BB8 00335818 7C 1F C8 40 */ cmplw r31, r25
+/* 80339BBC 0033581C 40 80 00 28 */ bge lbl_80339BE4
+/* 80339BC0 00335820 57 E0 10 3A */ slwi r0, r31, 2
+/* 80339BC4 00335824 7C 87 02 14 */ add r4, r7, r0
+/* 80339BC8 00335828 7C 7A 02 14 */ add r3, r26, r0
+/* 80339BCC 0033582C 7C 03 20 40 */ cmplw r3, r4
+/* 80339BD0 00335830 41 82 00 10 */ beq lbl_80339BE0
+/* 80339BD4 00335834 7C 1F C8 50 */ subf r0, r31, r25
+/* 80339BD8 00335838 54 05 10 3A */ slwi r5, r0, 2
+/* 80339BDC 0033583C 4B CC A4 25 */ bl memcpy
+lbl_80339BE0:
+/* 80339BE0 00335840 7F 3F CB 78 */ mr r31, r25
+lbl_80339BE4:
+/* 80339BE4 00335844 3E E0 80 61 */ lis r23, lbl_80610BD0@ha
+/* 80339BE8 00335848 93 FB 00 00 */ stw r31, 0(r27)
+/* 80339BEC 0033584C 3A F7 0B D0 */ addi r23, r23, lbl_80610BD0@l
+/* 80339BF0 00335850 80 17 00 3C */ lwz r0, 0x3c(r23)
+/* 80339BF4 00335854 28 00 00 01 */ cmplwi r0, 1
+/* 80339BF8 00335858 40 82 00 24 */ bne lbl_80339C1C
+/* 80339BFC 0033585C 4B FF F4 25 */ bl current_time_hires
+/* 80339C00 00335860 80 B7 00 30 */ lwz r5, 0x30(r23)
+/* 80339C04 00335864 38 00 00 00 */ li r0, 0
+/* 80339C08 00335868 80 97 00 34 */ lwz r4, 0x34(r23)
+/* 80339C0C 0033586C 7C 65 18 50 */ subf r3, r5, r3
+/* 80339C10 00335870 90 17 00 3C */ stw r0, 0x3c(r23)
+/* 80339C14 00335874 7C 04 1A 14 */ add r0, r4, r3
+/* 80339C18 00335878 90 17 00 34 */ stw r0, 0x34(r23)
+lbl_80339C1C:
+/* 80339C1C 0033587C 7F A0 F3 79 */ or. r0, r29, r30
+/* 80339C20 00335880 41 82 00 0C */ beq lbl_80339C2C
+/* 80339C24 00335884 38 60 00 00 */ li r3, 0
+/* 80339C28 00335888 48 00 00 08 */ b lbl_80339C30
+lbl_80339C2C:
+/* 80339C2C 0033588C 38 60 00 01 */ li r3, 1
+lbl_80339C30:
+/* 80339C30 00335890 39 61 00 40 */ addi r11, r1, 0x40
+/* 80339C34 00335894 4B E8 D5 29 */ bl _restgpr_21
+/* 80339C38 00335898 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80339C3C 0033589C 7C 08 03 A6 */ mtlr r0
+/* 80339C40 003358A0 38 21 00 40 */ addi r1, r1, 0x40
+/* 80339C44 003358A4 4E 80 00 20 */ blr
+
+.global gsiLargeIntSub
+gsiLargeIntSub:
+/* 80339C48 003358A8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80339C4C 003358AC 7C 08 02 A6 */ mflr r0
+/* 80339C50 003358B0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80339C54 003358B4 39 61 00 40 */ addi r11, r1, 0x40
+/* 80339C58 003358B8 4B E8 D4 B9 */ bl _savegpr_21
+/* 80339C5C 003358BC 7C 04 30 40 */ cmplw r4, r6
+/* 80339C60 003358C0 7C D9 33 78 */ mr r25, r6
+/* 80339C64 003358C4 7C 76 1B 78 */ mr r22, r3
+/* 80339C68 003358C8 7C 97 23 78 */ mr r23, r4
+/* 80339C6C 003358CC 7C B8 2B 78 */ mr r24, r5
+/* 80339C70 003358D0 7C FA 3B 78 */ mr r26, r7
+/* 80339C74 003358D4 7D 1B 43 78 */ mr r27, r8
+/* 80339C78 003358D8 7F 3F CB 78 */ mr r31, r25
+/* 80339C7C 003358DC 3B A0 00 00 */ li r29, 0
+/* 80339C80 003358E0 3B C0 00 00 */ li r30, 0
+/* 80339C84 003358E4 40 80 00 08 */ bge lbl_80339C8C
+/* 80339C88 003358E8 7E FF BB 78 */ mr r31, r23
+lbl_80339C8C:
+/* 80339C8C 003358EC 3E A0 80 61 */ lis r21, lbl_80610BD0@ha
+/* 80339C90 003358F0 3B 80 00 00 */ li r28, 0
+/* 80339C94 003358F4 3A B5 0B D0 */ addi r21, r21, lbl_80610BD0@l
+/* 80339C98 003358F8 80 15 00 4C */ lwz r0, 0x4c(r21)
+/* 80339C9C 003358FC 2C 00 00 00 */ cmpwi r0, 0
+/* 80339CA0 00335900 40 82 00 20 */ bne lbl_80339CC0
+/* 80339CA4 00335904 80 75 00 48 */ lwz r3, 0x48(r21)
+/* 80339CA8 00335908 38 03 00 01 */ addi r0, r3, 1
+/* 80339CAC 0033590C 90 15 00 48 */ stw r0, 0x48(r21)
+/* 80339CB0 00335910 4B FF F3 71 */ bl current_time_hires
+/* 80339CB4 00335914 38 00 00 01 */ li r0, 1
+/* 80339CB8 00335918 90 75 00 40 */ stw r3, 0x40(r21)
+/* 80339CBC 0033591C 90 15 00 4C */ stw r0, 0x4c(r21)
+lbl_80339CC0:
+/* 80339CC0 00335920 28 1F 00 00 */ cmplwi r31, 0
+/* 80339CC4 00335924 7E C7 B3 78 */ mr r7, r22
+/* 80339CC8 00335928 7F 08 C3 78 */ mr r8, r24
+/* 80339CCC 0033592C 7F 49 D3 78 */ mr r9, r26
+/* 80339CD0 00335930 40 81 00 F4 */ ble lbl_80339DC4
+/* 80339CD4 00335934 57 E0 F0 BF */ rlwinm. r0, r31, 0x1e, 2, 0x1f
+/* 80339CD8 00335938 7F FC FB 78 */ mr r28, r31
+/* 80339CDC 0033593C 7C 09 03 A6 */ mtctr r0
+/* 80339CE0 00335940 41 82 00 AC */ beq lbl_80339D8C
+lbl_80339CE4:
+/* 80339CE4 00335944 80 C8 00 00 */ lwz r6, 0(r8)
+/* 80339CE8 00335948 80 A7 00 00 */ lwz r5, 0(r7)
+/* 80339CEC 0033594C 7C 65 30 10 */ subfc r3, r5, r6
+/* 80339CF0 00335950 80 A7 00 04 */ lwz r5, 4(r7)
+/* 80339CF4 00335954 7C 86 31 10 */ subfe r4, r6, r6
+/* 80339CF8 00335958 80 C8 00 04 */ lwz r6, 4(r8)
+/* 80339CFC 0033595C 7C 7D 18 10 */ subfc r3, r29, r3
+/* 80339D00 00335960 7C 1E 21 10 */ subfe r0, r30, r4
+/* 80339D04 00335964 90 69 00 00 */ stw r3, 0(r9)
+/* 80339D08 00335968 7C 65 30 10 */ subfc r3, r5, r6
+/* 80339D0C 0033596C 80 A7 00 08 */ lwz r5, 8(r7)
+/* 80339D10 00335970 7C 86 31 10 */ subfe r4, r6, r6
+/* 80339D14 00335974 54 1D 0F FE */ srwi r29, r0, 0x1f
+/* 80339D18 00335978 7C 7D 18 10 */ subfc r3, r29, r3
+/* 80339D1C 0033597C 3B C0 00 00 */ li r30, 0
+/* 80339D20 00335980 7C 1E 21 10 */ subfe r0, r30, r4
+/* 80339D24 00335984 80 C8 00 08 */ lwz r6, 8(r8)
+/* 80339D28 00335988 90 69 00 04 */ stw r3, 4(r9)
+/* 80339D2C 0033598C 54 1D 0F FE */ srwi r29, r0, 0x1f
+/* 80339D30 00335990 7C 65 30 10 */ subfc r3, r5, r6
+/* 80339D34 00335994 80 A7 00 0C */ lwz r5, 0xc(r7)
+/* 80339D38 00335998 7C 86 31 10 */ subfe r4, r6, r6
+/* 80339D3C 0033599C 80 C8 00 0C */ lwz r6, 0xc(r8)
+/* 80339D40 003359A0 7C 7D 18 10 */ subfc r3, r29, r3
+/* 80339D44 003359A4 3B C0 00 00 */ li r30, 0
+/* 80339D48 003359A8 7C 1E 21 10 */ subfe r0, r30, r4
+/* 80339D4C 003359AC 90 69 00 08 */ stw r3, 8(r9)
+/* 80339D50 003359B0 7C 65 30 10 */ subfc r3, r5, r6
+/* 80339D54 003359B4 3B C0 00 00 */ li r30, 0
+/* 80339D58 003359B8 54 1D 0F FE */ srwi r29, r0, 0x1f
+/* 80339D5C 003359BC 7C 86 31 10 */ subfe r4, r6, r6
+/* 80339D60 003359C0 7C 7D 18 10 */ subfc r3, r29, r3
+/* 80339D64 003359C4 38 E7 00 10 */ addi r7, r7, 0x10
+/* 80339D68 003359C8 7C 1E 21 10 */ subfe r0, r30, r4
+/* 80339D6C 003359CC 90 69 00 0C */ stw r3, 0xc(r9)
+/* 80339D70 003359D0 54 1D 0F FE */ srwi r29, r0, 0x1f
+/* 80339D74 003359D4 3B C0 00 00 */ li r30, 0
+/* 80339D78 003359D8 39 08 00 10 */ addi r8, r8, 0x10
+/* 80339D7C 003359DC 39 29 00 10 */ addi r9, r9, 0x10
+/* 80339D80 003359E0 42 00 FF 64 */ bdnz lbl_80339CE4
+/* 80339D84 003359E4 73 FF 00 03 */ andi. r31, r31, 3
+/* 80339D88 003359E8 41 82 00 3C */ beq lbl_80339DC4
+lbl_80339D8C:
+/* 80339D8C 003359EC 7F E9 03 A6 */ mtctr r31
+lbl_80339D90:
+/* 80339D90 003359F0 80 C8 00 00 */ lwz r6, 0(r8)
+/* 80339D94 003359F4 39 08 00 04 */ addi r8, r8, 4
+/* 80339D98 003359F8 80 A7 00 00 */ lwz r5, 0(r7)
+/* 80339D9C 003359FC 38 E7 00 04 */ addi r7, r7, 4
+/* 80339DA0 00335A00 7C 65 30 10 */ subfc r3, r5, r6
+/* 80339DA4 00335A04 7C 86 31 10 */ subfe r4, r6, r6
+/* 80339DA8 00335A08 7C 7D 18 10 */ subfc r3, r29, r3
+/* 80339DAC 00335A0C 7C 1E 21 10 */ subfe r0, r30, r4
+/* 80339DB0 00335A10 90 69 00 00 */ stw r3, 0(r9)
+/* 80339DB4 00335A14 54 1D 0F FE */ srwi r29, r0, 0x1f
+/* 80339DB8 00335A18 3B C0 00 00 */ li r30, 0
+/* 80339DBC 00335A1C 39 29 00 04 */ addi r9, r9, 4
+/* 80339DC0 00335A20 42 00 FF D0 */ bdnz lbl_80339D90
+lbl_80339DC4:
+/* 80339DC4 00335A24 7C 1C C8 40 */ cmplw r28, r25
+/* 80339DC8 00335A28 57 80 10 3A */ slwi r0, r28, 2
+/* 80339DCC 00335A2C 7D 18 02 14 */ add r8, r24, r0
+/* 80339DD0 00335A30 7C 9C C8 50 */ subf r4, r28, r25
+/* 80339DD4 00335A34 7D 3A 02 14 */ add r9, r26, r0
+/* 80339DD8 00335A38 38 C0 00 00 */ li r6, 0
+/* 80339DDC 00335A3C 40 80 00 B4 */ bge lbl_80339E90
+/* 80339DE0 00335A40 54 83 F0 BF */ rlwinm. r3, r4, 0x1e, 2, 0x1f
+/* 80339DE4 00335A44 7C 80 23 78 */ mr r0, r4
+/* 80339DE8 00335A48 7C 69 03 A6 */ mtctr r3
+/* 80339DEC 00335A4C 41 82 00 78 */ beq lbl_80339E64
+lbl_80339DF0:
+/* 80339DF0 00335A50 80 E8 00 00 */ lwz r7, 0(r8)
+/* 80339DF4 00335A54 7C BD 38 10 */ subfc r5, r29, r7
+/* 80339DF8 00335A58 80 E8 00 04 */ lwz r7, 4(r8)
+/* 80339DFC 00335A5C 7C 7E 31 10 */ subfe r3, r30, r6
+/* 80339E00 00335A60 90 A9 00 00 */ stw r5, 0(r9)
+/* 80339E04 00335A64 54 7D 0F FE */ srwi r29, r3, 0x1f
+/* 80339E08 00335A68 3B C0 00 00 */ li r30, 0
+/* 80339E0C 00335A6C 7C BD 38 10 */ subfc r5, r29, r7
+/* 80339E10 00335A70 80 E8 00 08 */ lwz r7, 8(r8)
+/* 80339E14 00335A74 7C 7E 31 10 */ subfe r3, r30, r6
+/* 80339E18 00335A78 90 A9 00 04 */ stw r5, 4(r9)
+/* 80339E1C 00335A7C 54 7D 0F FE */ srwi r29, r3, 0x1f
+/* 80339E20 00335A80 3B C0 00 00 */ li r30, 0
+/* 80339E24 00335A84 7C BD 38 10 */ subfc r5, r29, r7
+/* 80339E28 00335A88 80 E8 00 0C */ lwz r7, 0xc(r8)
+/* 80339E2C 00335A8C 7C 7E 31 10 */ subfe r3, r30, r6
+/* 80339E30 00335A90 90 A9 00 08 */ stw r5, 8(r9)
+/* 80339E34 00335A94 54 7D 0F FE */ srwi r29, r3, 0x1f
+/* 80339E38 00335A98 3B C0 00 00 */ li r30, 0
+/* 80339E3C 00335A9C 7C BD 38 10 */ subfc r5, r29, r7
+/* 80339E40 00335AA0 39 08 00 10 */ addi r8, r8, 0x10
+/* 80339E44 00335AA4 7C 7E 31 10 */ subfe r3, r30, r6
+/* 80339E48 00335AA8 90 A9 00 0C */ stw r5, 0xc(r9)
+/* 80339E4C 00335AAC 54 7D 0F FE */ srwi r29, r3, 0x1f
+/* 80339E50 00335AB0 3B C0 00 00 */ li r30, 0
+/* 80339E54 00335AB4 39 29 00 10 */ addi r9, r9, 0x10
+/* 80339E58 00335AB8 42 00 FF 98 */ bdnz lbl_80339DF0
+/* 80339E5C 00335ABC 70 84 00 03 */ andi. r4, r4, 3
+/* 80339E60 00335AC0 41 82 00 2C */ beq lbl_80339E8C
+lbl_80339E64:
+/* 80339E64 00335AC4 7C 89 03 A6 */ mtctr r4
+lbl_80339E68:
+/* 80339E68 00335AC8 80 E8 00 00 */ lwz r7, 0(r8)
+/* 80339E6C 00335ACC 39 08 00 04 */ addi r8, r8, 4
+/* 80339E70 00335AD0 7C BD 38 10 */ subfc r5, r29, r7
+/* 80339E74 00335AD4 7C 7E 31 10 */ subfe r3, r30, r6
+/* 80339E78 00335AD8 90 A9 00 00 */ stw r5, 0(r9)
+/* 80339E7C 00335ADC 54 7D 0F FE */ srwi r29, r3, 0x1f
+/* 80339E80 00335AE0 3B C0 00 00 */ li r30, 0
+/* 80339E84 00335AE4 39 29 00 04 */ addi r9, r9, 4
+/* 80339E88 00335AE8 42 00 FF E0 */ bdnz lbl_80339E68
+lbl_80339E8C:
+/* 80339E8C 00335AEC 7F 9C 02 14 */ add r28, r28, r0
+lbl_80339E90:
+/* 80339E90 00335AF0 7F A0 F3 79 */ or. r0, r29, r30
+/* 80339E94 00335AF4 41 82 00 40 */ beq lbl_80339ED4
+/* 80339E98 00335AF8 3E C0 80 61 */ lis r22, lbl_80610BD0@ha
+/* 80339E9C 00335AFC 3A D6 0B D0 */ addi r22, r22, lbl_80610BD0@l
+/* 80339EA0 00335B00 80 16 00 4C */ lwz r0, 0x4c(r22)
+/* 80339EA4 00335B04 28 00 00 01 */ cmplwi r0, 1
+/* 80339EA8 00335B08 40 82 00 24 */ bne lbl_80339ECC
+/* 80339EAC 00335B0C 4B FF F1 75 */ bl current_time_hires
+/* 80339EB0 00335B10 80 B6 00 40 */ lwz r5, 0x40(r22)
+/* 80339EB4 00335B14 38 00 00 00 */ li r0, 0
+/* 80339EB8 00335B18 80 96 00 44 */ lwz r4, 0x44(r22)
+/* 80339EBC 00335B1C 7C 65 18 50 */ subf r3, r5, r3
+/* 80339EC0 00335B20 90 16 00 4C */ stw r0, 0x4c(r22)
+/* 80339EC4 00335B24 7C 04 1A 14 */ add r0, r4, r3
+/* 80339EC8 00335B28 90 16 00 44 */ stw r0, 0x44(r22)
+lbl_80339ECC:
+/* 80339ECC 00335B2C 38 60 00 00 */ li r3, 0
+/* 80339ED0 00335B30 48 00 00 AC */ b lbl_80339F7C
+lbl_80339ED4:
+/* 80339ED4 00335B34 57 83 10 3A */ slwi r3, r28, 2
+/* 80339ED8 00335B38 7C 1C B8 50 */ subf r0, r28, r23
+/* 80339EDC 00335B3C 7C 76 1A 14 */ add r3, r22, r3
+/* 80339EE0 00335B40 7C 09 03 A6 */ mtctr r0
+/* 80339EE4 00335B44 7C 1C B8 40 */ cmplw r28, r23
+/* 80339EE8 00335B48 40 80 00 58 */ bge lbl_80339F40
+lbl_80339EEC:
+/* 80339EEC 00335B4C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80339EF0 00335B50 2C 00 00 00 */ cmpwi r0, 0
+/* 80339EF4 00335B54 41 82 00 40 */ beq lbl_80339F34
+/* 80339EF8 00335B58 3E C0 80 61 */ lis r22, lbl_80610BD0@ha
+/* 80339EFC 00335B5C 3A D6 0B D0 */ addi r22, r22, lbl_80610BD0@l
+/* 80339F00 00335B60 80 16 00 4C */ lwz r0, 0x4c(r22)
+/* 80339F04 00335B64 28 00 00 01 */ cmplwi r0, 1
+/* 80339F08 00335B68 40 82 00 24 */ bne lbl_80339F2C
+/* 80339F0C 00335B6C 4B FF F1 15 */ bl current_time_hires
+/* 80339F10 00335B70 80 B6 00 40 */ lwz r5, 0x40(r22)
+/* 80339F14 00335B74 38 00 00 00 */ li r0, 0
+/* 80339F18 00335B78 80 96 00 44 */ lwz r4, 0x44(r22)
+/* 80339F1C 00335B7C 7C 65 18 50 */ subf r3, r5, r3
+/* 80339F20 00335B80 90 16 00 4C */ stw r0, 0x4c(r22)
+/* 80339F24 00335B84 7C 04 1A 14 */ add r0, r4, r3
+/* 80339F28 00335B88 90 16 00 44 */ stw r0, 0x44(r22)
+lbl_80339F2C:
+/* 80339F2C 00335B8C 38 60 00 00 */ li r3, 0
+/* 80339F30 00335B90 48 00 00 4C */ b lbl_80339F7C
+lbl_80339F34:
+/* 80339F34 00335B94 38 63 00 04 */ addi r3, r3, 4
+/* 80339F38 00335B98 3B 9C 00 01 */ addi r28, r28, 1
+/* 80339F3C 00335B9C 42 00 FF B0 */ bdnz lbl_80339EEC
+lbl_80339F40:
+/* 80339F40 00335BA0 3E C0 80 61 */ lis r22, lbl_80610BD0@ha
+/* 80339F44 00335BA4 93 3B 00 00 */ stw r25, 0(r27)
+/* 80339F48 00335BA8 3A D6 0B D0 */ addi r22, r22, lbl_80610BD0@l
+/* 80339F4C 00335BAC 80 16 00 4C */ lwz r0, 0x4c(r22)
+/* 80339F50 00335BB0 28 00 00 01 */ cmplwi r0, 1
+/* 80339F54 00335BB4 40 82 00 24 */ bne lbl_80339F78
+/* 80339F58 00335BB8 4B FF F0 C9 */ bl current_time_hires
+/* 80339F5C 00335BBC 80 B6 00 40 */ lwz r5, 0x40(r22)
+/* 80339F60 00335BC0 38 00 00 00 */ li r0, 0
+/* 80339F64 00335BC4 80 96 00 44 */ lwz r4, 0x44(r22)
+/* 80339F68 00335BC8 7C 65 18 50 */ subf r3, r5, r3
+/* 80339F6C 00335BCC 90 16 00 4C */ stw r0, 0x4c(r22)
+/* 80339F70 00335BD0 7C 04 1A 14 */ add r0, r4, r3
+/* 80339F74 00335BD4 90 16 00 44 */ stw r0, 0x44(r22)
+lbl_80339F78:
+/* 80339F78 00335BD8 38 60 00 01 */ li r3, 1
+lbl_80339F7C:
+/* 80339F7C 00335BDC 39 61 00 40 */ addi r11, r1, 0x40
+/* 80339F80 00335BE0 4B E8 D1 DD */ bl _restgpr_21
+/* 80339F84 00335BE4 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80339F88 00335BE8 7C 08 03 A6 */ mtlr r0
+/* 80339F8C 00335BEC 38 21 00 40 */ addi r1, r1, 0x40
+/* 80339F90 00335BF0 4E 80 00 20 */ blr
+
+.global gsiLargeIntMult
+gsiLargeIntMult:
+/* 80339F94 00335BF4 94 21 FE C0 */ stwu r1, -0x140(r1)
+/* 80339F98 00335BF8 7C 08 02 A6 */ mflr r0
+/* 80339F9C 00335BFC 90 01 01 44 */ stw r0, 0x144(r1)
+/* 80339FA0 00335C00 39 61 01 40 */ addi r11, r1, 0x140
+/* 80339FA4 00335C04 4B E8 D1 75 */ bl _savegpr_23
+/* 80339FA8 00335C08 7C 79 1B 78 */ mr r25, r3
+/* 80339FAC 00335C0C 7C 9A 23 78 */ mr r26, r4
+/* 80339FB0 00335C10 7C BB 2B 78 */ mr r27, r5
+/* 80339FB4 00335C14 7C DC 33 78 */ mr r28, r6
+/* 80339FB8 00335C18 7C FD 3B 78 */ mr r29, r7
+/* 80339FBC 00335C1C 7D 1E 43 78 */ mr r30, r8
+/* 80339FC0 00335C20 7D 3F 4B 78 */ mr r31, r9
+/* 80339FC4 00335C24 38 61 00 08 */ addi r3, r1, 8
+/* 80339FC8 00335C28 38 80 00 00 */ li r4, 0
+/* 80339FCC 00335C2C 38 A0 01 04 */ li r5, 0x104
+/* 80339FD0 00335C30 4B CC A1 35 */ bl memset
+/* 80339FD4 00335C34 38 00 00 00 */ li r0, 0
+/* 80339FD8 00335C38 3E E0 80 61 */ lis r23, lbl_80610BD0@ha
+/* 80339FDC 00335C3C 90 1E 00 00 */ stw r0, 0(r30)
+/* 80339FE0 00335C40 3B 17 0B D0 */ addi r24, r23, lbl_80610BD0@l
+/* 80339FE4 00335C44 80 18 00 0C */ lwz r0, 0xc(r24)
+/* 80339FE8 00335C48 2C 00 00 00 */ cmpwi r0, 0
+/* 80339FEC 00335C4C 40 82 00 20 */ bne lbl_8033A00C
+/* 80339FF0 00335C50 80 78 00 08 */ lwz r3, 8(r24)
+/* 80339FF4 00335C54 38 03 00 01 */ addi r0, r3, 1
+/* 80339FF8 00335C58 90 18 00 08 */ stw r0, 8(r24)
+/* 80339FFC 00335C5C 4B FF F0 25 */ bl current_time_hires
+/* 8033A000 00335C60 38 00 00 01 */ li r0, 1
+/* 8033A004 00335C64 90 77 0B D0 */ stw r3, 0xbd0(r23)
+/* 8033A008 00335C68 90 18 00 0C */ stw r0, 0xc(r24)
+lbl_8033A00C:
+/* 8033A00C 00335C6C 38 A0 00 00 */ li r5, 0
+/* 8033A010 00335C70 48 00 01 20 */ b lbl_8033A130
+lbl_8033A014:
+/* 8033A014 00335C74 80 1B 00 00 */ lwz r0, 0(r27)
+/* 8033A018 00335C78 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A01C 00335C7C 41 82 01 0C */ beq lbl_8033A128
+/* 8033A020 00335C80 7F 24 CB 78 */ mr r4, r25
+/* 8033A024 00335C84 38 C0 00 00 */ li r6, 0
+/* 8033A028 00335C88 7F 49 03 A6 */ mtctr r26
+/* 8033A02C 00335C8C 28 1A 00 00 */ cmplwi r26, 0
+/* 8033A030 00335C90 40 81 00 F8 */ ble lbl_8033A128
+lbl_8033A034:
+/* 8033A034 00335C94 80 64 00 00 */ lwz r3, 0(r4)
+/* 8033A038 00335C98 7D 25 32 14 */ add r9, r5, r6
+/* 8033A03C 00335C9C 80 1B 00 00 */ lwz r0, 0(r27)
+/* 8033A040 00335CA0 7C 09 F8 40 */ cmplw r9, r31
+/* 8033A044 00335CA4 7C E3 00 16 */ mulhwu r7, r3, r0
+/* 8033A048 00335CA8 7D 03 01 D6 */ mullw r8, r3, r0
+/* 8033A04C 00335CAC 41 80 00 40 */ blt lbl_8033A08C
+/* 8033A050 00335CB0 3F 40 80 61 */ lis r26, lbl_80610BD0@ha
+/* 8033A054 00335CB4 3B 3A 0B D0 */ addi r25, r26, lbl_80610BD0@l
+/* 8033A058 00335CB8 80 19 00 0C */ lwz r0, 0xc(r25)
+/* 8033A05C 00335CBC 28 00 00 01 */ cmplwi r0, 1
+/* 8033A060 00335CC0 40 82 00 24 */ bne lbl_8033A084
+/* 8033A064 00335CC4 4B FF EF BD */ bl current_time_hires
+/* 8033A068 00335CC8 80 BA 0B D0 */ lwz r5, 0xbd0(r26)
+/* 8033A06C 00335CCC 38 00 00 00 */ li r0, 0
+/* 8033A070 00335CD0 80 99 00 04 */ lwz r4, 4(r25)
+/* 8033A074 00335CD4 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A078 00335CD8 90 19 00 0C */ stw r0, 0xc(r25)
+/* 8033A07C 00335CDC 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A080 00335CE0 90 19 00 04 */ stw r0, 4(r25)
+lbl_8033A084:
+/* 8033A084 00335CE4 38 60 00 00 */ li r3, 0
+/* 8033A088 00335CE8 48 00 01 2C */ b lbl_8033A1B4
+lbl_8033A08C:
+/* 8033A08C 00335CEC 55 20 10 3A */ slwi r0, r9, 2
+/* 8033A090 00335CF0 38 61 00 08 */ addi r3, r1, 8
+/* 8033A094 00335CF4 7C 63 02 14 */ add r3, r3, r0
+/* 8033A098 00335CF8 48 00 00 6C */ b lbl_8033A104
+lbl_8033A09C:
+/* 8033A09C 00335CFC 80 03 00 04 */ lwz r0, 4(r3)
+/* 8033A0A0 00335D00 39 29 00 01 */ addi r9, r9, 1
+/* 8033A0A4 00335D04 7C 09 F8 40 */ cmplw r9, r31
+/* 8033A0A8 00335D08 7C 08 00 14 */ addc r0, r8, r0
+/* 8033A0AC 00335D0C 94 03 00 04 */ stwu r0, 4(r3)
+/* 8033A0B0 00335D10 7D 07 01 94 */ addze r8, r7
+/* 8033A0B4 00335D14 38 E0 00 00 */ li r7, 0
+/* 8033A0B8 00335D18 41 81 00 10 */ bgt lbl_8033A0C8
+/* 8033A0BC 00335D1C 40 82 00 48 */ bne lbl_8033A104
+/* 8033A0C0 00335D20 2C 08 00 00 */ cmpwi r8, 0
+/* 8033A0C4 00335D24 41 82 00 40 */ beq lbl_8033A104
+lbl_8033A0C8:
+/* 8033A0C8 00335D28 3F 40 80 61 */ lis r26, lbl_80610BD0@ha
+/* 8033A0CC 00335D2C 3B 3A 0B D0 */ addi r25, r26, lbl_80610BD0@l
+/* 8033A0D0 00335D30 80 19 00 0C */ lwz r0, 0xc(r25)
+/* 8033A0D4 00335D34 28 00 00 01 */ cmplwi r0, 1
+/* 8033A0D8 00335D38 40 82 00 24 */ bne lbl_8033A0FC
+/* 8033A0DC 00335D3C 4B FF EF 45 */ bl current_time_hires
+/* 8033A0E0 00335D40 80 BA 0B D0 */ lwz r5, 0xbd0(r26)
+/* 8033A0E4 00335D44 38 00 00 00 */ li r0, 0
+/* 8033A0E8 00335D48 80 99 00 04 */ lwz r4, 4(r25)
+/* 8033A0EC 00335D4C 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A0F0 00335D50 90 19 00 0C */ stw r0, 0xc(r25)
+/* 8033A0F4 00335D54 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A0F8 00335D58 90 19 00 04 */ stw r0, 4(r25)
+lbl_8033A0FC:
+/* 8033A0FC 00335D5C 38 60 00 00 */ li r3, 0
+/* 8033A100 00335D60 48 00 00 B4 */ b lbl_8033A1B4
+lbl_8033A104:
+/* 8033A104 00335D64 7D 00 3B 79 */ or. r0, r8, r7
+/* 8033A108 00335D68 40 82 FF 94 */ bne lbl_8033A09C
+/* 8033A10C 00335D6C 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033A110 00335D70 7C 09 00 40 */ cmplw r9, r0
+/* 8033A114 00335D74 40 81 00 08 */ ble lbl_8033A11C
+/* 8033A118 00335D78 91 21 00 08 */ stw r9, 8(r1)
+lbl_8033A11C:
+/* 8033A11C 00335D7C 38 84 00 04 */ addi r4, r4, 4
+/* 8033A120 00335D80 38 C6 00 01 */ addi r6, r6, 1
+/* 8033A124 00335D84 42 00 FF 10 */ bdnz lbl_8033A034
+lbl_8033A128:
+/* 8033A128 00335D88 3B 7B 00 04 */ addi r27, r27, 4
+/* 8033A12C 00335D8C 38 A5 00 01 */ addi r5, r5, 1
+lbl_8033A130:
+/* 8033A130 00335D90 7C 05 E0 40 */ cmplw r5, r28
+/* 8033A134 00335D94 41 80 FE E0 */ blt lbl_8033A014
+/* 8033A138 00335D98 38 61 00 08 */ addi r3, r1, 8
+/* 8033A13C 00335D9C 48 00 00 10 */ b lbl_8033A14C
+lbl_8033A140:
+/* 8033A140 00335DA0 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033A144 00335DA4 38 04 FF FF */ addi r0, r4, -1
+/* 8033A148 00335DA8 90 01 00 08 */ stw r0, 8(r1)
+lbl_8033A14C:
+/* 8033A14C 00335DAC 80 A1 00 08 */ lwz r5, 8(r1)
+/* 8033A150 00335DB0 2C 05 00 00 */ cmpwi r5, 0
+/* 8033A154 00335DB4 41 82 00 14 */ beq lbl_8033A168
+/* 8033A158 00335DB8 54 A0 10 3A */ slwi r0, r5, 2
+/* 8033A15C 00335DBC 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8033A160 00335DC0 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A164 00335DC4 41 82 FF DC */ beq lbl_8033A140
+lbl_8033A168:
+/* 8033A168 00335DC8 90 BE 00 00 */ stw r5, 0(r30)
+/* 8033A16C 00335DCC 7F A3 EB 78 */ mr r3, r29
+/* 8033A170 00335DD0 38 81 00 0C */ addi r4, r1, 0xc
+/* 8033A174 00335DD4 54 A5 10 3A */ slwi r5, r5, 2
+/* 8033A178 00335DD8 4B CC 9E 89 */ bl memcpy
+/* 8033A17C 00335DDC 3F 40 80 61 */ lis r26, lbl_80610BD0@ha
+/* 8033A180 00335DE0 3B 3A 0B D0 */ addi r25, r26, lbl_80610BD0@l
+/* 8033A184 00335DE4 80 19 00 0C */ lwz r0, 0xc(r25)
+/* 8033A188 00335DE8 28 00 00 01 */ cmplwi r0, 1
+/* 8033A18C 00335DEC 40 82 00 24 */ bne lbl_8033A1B0
+/* 8033A190 00335DF0 4B FF EE 91 */ bl current_time_hires
+/* 8033A194 00335DF4 80 BA 0B D0 */ lwz r5, 0xbd0(r26)
+/* 8033A198 00335DF8 38 00 00 00 */ li r0, 0
+/* 8033A19C 00335DFC 80 99 00 04 */ lwz r4, 4(r25)
+/* 8033A1A0 00335E00 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A1A4 00335E04 90 19 00 0C */ stw r0, 0xc(r25)
+/* 8033A1A8 00335E08 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A1AC 00335E0C 90 19 00 04 */ stw r0, 4(r25)
+lbl_8033A1B0:
+/* 8033A1B0 00335E10 38 60 00 01 */ li r3, 1
+lbl_8033A1B4:
+/* 8033A1B4 00335E14 39 61 01 40 */ addi r11, r1, 0x140
+/* 8033A1B8 00335E18 4B E8 CF AD */ bl _restgpr_23
+/* 8033A1BC 00335E1C 80 01 01 44 */ lwz r0, 0x144(r1)
+/* 8033A1C0 00335E20 7C 08 03 A6 */ mtlr r0
+/* 8033A1C4 00335E24 38 21 01 40 */ addi r1, r1, 0x140
+/* 8033A1C8 00335E28 4E 80 00 20 */ blr
+
+.global gsiLargeIntDiv
+gsiLargeIntDiv:
+/* 8033A1CC 00335E2C 94 21 FC B0 */ stwu r1, -0x350(r1)
+/* 8033A1D0 00335E30 7C 08 02 A6 */ mflr r0
+/* 8033A1D4 00335E34 90 01 03 54 */ stw r0, 0x354(r1)
+/* 8033A1D8 00335E38 39 61 03 50 */ addi r11, r1, 0x350
+/* 8033A1DC 00335E3C 4B E8 CF 2D */ bl _savegpr_19
+/* 8033A1E0 00335E40 3E 60 80 61 */ lis r19, lbl_80610BD0@ha
+/* 8033A1E4 00335E44 82 E5 00 00 */ lwz r23, 0(r5)
+/* 8033A1E8 00335E48 3A 73 0B D0 */ addi r19, r19, lbl_80610BD0@l
+/* 8033A1EC 00335E4C 7C 9A 23 78 */ mr r26, r4
+/* 8033A1F0 00335E50 80 13 00 5C */ lwz r0, 0x5c(r19)
+/* 8033A1F4 00335E54 7C 79 1B 78 */ mr r25, r3
+/* 8033A1F8 00335E58 7C D4 33 78 */ mr r20, r6
+/* 8033A1FC 00335E5C 7C F5 3B 78 */ mr r21, r7
+/* 8033A200 00335E60 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A204 00335E64 3B 05 00 04 */ addi r24, r5, 4
+/* 8033A208 00335E68 3B 60 00 1F */ li r27, 0x1f
+/* 8033A20C 00335E6C 3A C0 00 00 */ li r22, 0
+/* 8033A210 00335E70 40 82 00 20 */ bne lbl_8033A230
+/* 8033A214 00335E74 80 73 00 58 */ lwz r3, 0x58(r19)
+/* 8033A218 00335E78 38 03 00 01 */ addi r0, r3, 1
+/* 8033A21C 00335E7C 90 13 00 58 */ stw r0, 0x58(r19)
+/* 8033A220 00335E80 4B FF EE 01 */ bl current_time_hires
+/* 8033A224 00335E84 38 00 00 01 */ li r0, 1
+/* 8033A228 00335E88 90 73 00 50 */ stw r3, 0x50(r19)
+/* 8033A22C 00335E8C 90 13 00 5C */ stw r0, 0x5c(r19)
+lbl_8033A230:
+/* 8033A230 00335E90 28 1A 00 40 */ cmplwi r26, 0x40
+/* 8033A234 00335E94 40 81 00 14 */ ble lbl_8033A248
+/* 8033A238 00335E98 2C 14 00 00 */ cmpwi r20, 0
+/* 8033A23C 00335E9C 41 82 00 0C */ beq lbl_8033A248
+/* 8033A240 00335EA0 38 60 00 00 */ li r3, 0
+/* 8033A244 00335EA4 48 00 04 20 */ b lbl_8033A664
+lbl_8033A248:
+/* 8033A248 00335EA8 57 40 10 3A */ slwi r0, r26, 2
+/* 8033A24C 00335EAC 7C 79 02 14 */ add r3, r25, r0
+/* 8033A250 00335EB0 48 00 00 0C */ b lbl_8033A25C
+lbl_8033A254:
+/* 8033A254 00335EB4 38 63 FF FC */ addi r3, r3, -4
+/* 8033A258 00335EB8 3B 5A FF FF */ addi r26, r26, -1
+lbl_8033A25C:
+/* 8033A25C 00335EBC 2C 1A 00 00 */ cmpwi r26, 0
+/* 8033A260 00335EC0 41 82 00 10 */ beq lbl_8033A270
+/* 8033A264 00335EC4 80 03 FF FC */ lwz r0, -4(r3)
+/* 8033A268 00335EC8 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A26C 00335ECC 41 82 FF E8 */ beq lbl_8033A254
+lbl_8033A270:
+/* 8033A270 00335ED0 56 E0 10 3A */ slwi r0, r23, 2
+/* 8033A274 00335ED4 7C 78 02 14 */ add r3, r24, r0
+/* 8033A278 00335ED8 48 00 00 0C */ b lbl_8033A284
+lbl_8033A27C:
+/* 8033A27C 00335EDC 38 63 FF FC */ addi r3, r3, -4
+/* 8033A280 00335EE0 3A F7 FF FF */ addi r23, r23, -1
+lbl_8033A284:
+/* 8033A284 00335EE4 2C 17 00 00 */ cmpwi r23, 0
+/* 8033A288 00335EE8 41 82 00 10 */ beq lbl_8033A298
+/* 8033A28C 00335EEC 80 03 FF FC */ lwz r0, -4(r3)
+/* 8033A290 00335EF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A294 00335EF4 41 82 FF E8 */ beq lbl_8033A27C
+lbl_8033A298:
+/* 8033A298 00335EF8 57 53 10 3A */ slwi r19, r26, 2
+/* 8033A29C 00335EFC 7F 24 CB 78 */ mr r4, r25
+/* 8033A2A0 00335F00 7E 65 9B 78 */ mr r5, r19
+/* 8033A2A4 00335F04 38 61 00 10 */ addi r3, r1, 0x10
+/* 8033A2A8 00335F08 4B CC 9D 59 */ bl memcpy
+/* 8033A2AC 00335F0C 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033A2B0 00335F10 38 80 00 00 */ li r4, 0
+/* 8033A2B4 00335F14 38 A0 01 04 */ li r5, 0x104
+/* 8033A2B8 00335F18 4B CC 9E 4D */ bl memset
+/* 8033A2BC 00335F1C 2C 1A 00 00 */ cmpwi r26, 0
+/* 8033A2C0 00335F20 41 82 00 0C */ beq lbl_8033A2CC
+/* 8033A2C4 00335F24 2C 17 00 00 */ cmpwi r23, 0
+/* 8033A2C8 00335F28 40 82 00 78 */ bne lbl_8033A340
+lbl_8033A2CC:
+/* 8033A2CC 00335F2C 2C 14 00 00 */ cmpwi r20, 0
+/* 8033A2D0 00335F30 41 82 00 10 */ beq lbl_8033A2E0
+/* 8033A2D4 00335F34 38 00 00 00 */ li r0, 0
+/* 8033A2D8 00335F38 90 14 00 04 */ stw r0, 4(r20)
+/* 8033A2DC 00335F3C 90 14 00 00 */ stw r0, 0(r20)
+lbl_8033A2E0:
+/* 8033A2E0 00335F40 2C 15 00 00 */ cmpwi r21, 0
+/* 8033A2E4 00335F44 41 82 00 10 */ beq lbl_8033A2F4
+/* 8033A2E8 00335F48 38 00 00 00 */ li r0, 0
+/* 8033A2EC 00335F4C 90 15 00 04 */ stw r0, 4(r21)
+/* 8033A2F0 00335F50 90 15 00 00 */ stw r0, 0(r21)
+lbl_8033A2F4:
+/* 8033A2F4 00335F54 3E 60 80 61 */ lis r19, lbl_80610BD0@ha
+/* 8033A2F8 00335F58 3A 73 0B D0 */ addi r19, r19, lbl_80610BD0@l
+/* 8033A2FC 00335F5C 80 13 00 5C */ lwz r0, 0x5c(r19)
+/* 8033A300 00335F60 28 00 00 01 */ cmplwi r0, 1
+/* 8033A304 00335F64 40 82 00 24 */ bne lbl_8033A328
+/* 8033A308 00335F68 4B FF ED 19 */ bl current_time_hires
+/* 8033A30C 00335F6C 80 B3 00 50 */ lwz r5, 0x50(r19)
+/* 8033A310 00335F70 38 00 00 00 */ li r0, 0
+/* 8033A314 00335F74 80 93 00 54 */ lwz r4, 0x54(r19)
+/* 8033A318 00335F78 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A31C 00335F7C 90 13 00 5C */ stw r0, 0x5c(r19)
+/* 8033A320 00335F80 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A324 00335F84 90 13 00 54 */ stw r0, 0x54(r19)
+lbl_8033A328:
+/* 8033A328 00335F88 2C 17 00 00 */ cmpwi r23, 0
+/* 8033A32C 00335F8C 40 82 00 0C */ bne lbl_8033A338
+/* 8033A330 00335F90 38 60 00 00 */ li r3, 0
+/* 8033A334 00335F94 48 00 03 30 */ b lbl_8033A664
+lbl_8033A338:
+/* 8033A338 00335F98 38 60 00 01 */ li r3, 1
+/* 8033A33C 00335F9C 48 00 03 28 */ b lbl_8033A664
+lbl_8033A340:
+/* 8033A340 00335FA0 7F 44 D3 78 */ mr r4, r26
+/* 8033A344 00335FA4 7F 05 C3 78 */ mr r5, r24
+/* 8033A348 00335FA8 7E E6 BB 78 */ mr r6, r23
+/* 8033A34C 00335FAC 38 61 00 10 */ addi r3, r1, 0x10
+/* 8033A350 00335FB0 4B FF F5 B5 */ bl gsiLargeIntCompare
+/* 8033A354 00335FB4 2C 03 FF FF */ cmpwi r3, -1
+/* 8033A358 00335FB8 40 82 00 68 */ bne lbl_8033A3C0
+/* 8033A35C 00335FBC 2C 14 00 00 */ cmpwi r20, 0
+/* 8033A360 00335FC0 41 82 00 10 */ beq lbl_8033A370
+/* 8033A364 00335FC4 38 00 00 00 */ li r0, 0
+/* 8033A368 00335FC8 90 14 00 00 */ stw r0, 0(r20)
+/* 8033A36C 00335FCC 90 14 00 04 */ stw r0, 4(r20)
+lbl_8033A370:
+/* 8033A370 00335FD0 93 55 00 00 */ stw r26, 0(r21)
+/* 8033A374 00335FD4 7E 65 9B 78 */ mr r5, r19
+/* 8033A378 00335FD8 38 75 00 04 */ addi r3, r21, 4
+/* 8033A37C 00335FDC 38 81 00 10 */ addi r4, r1, 0x10
+/* 8033A380 00335FE0 4B CC 9C 81 */ bl memcpy
+/* 8033A384 00335FE4 3E 60 80 61 */ lis r19, lbl_80610BD0@ha
+/* 8033A388 00335FE8 3A 73 0B D0 */ addi r19, r19, lbl_80610BD0@l
+/* 8033A38C 00335FEC 80 13 00 5C */ lwz r0, 0x5c(r19)
+/* 8033A390 00335FF0 28 00 00 01 */ cmplwi r0, 1
+/* 8033A394 00335FF4 40 82 00 24 */ bne lbl_8033A3B8
+/* 8033A398 00335FF8 4B FF EC 89 */ bl current_time_hires
+/* 8033A39C 00335FFC 80 B3 00 50 */ lwz r5, 0x50(r19)
+/* 8033A3A0 00336000 38 00 00 00 */ li r0, 0
+/* 8033A3A4 00336004 80 93 00 54 */ lwz r4, 0x54(r19)
+/* 8033A3A8 00336008 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A3AC 0033600C 90 13 00 5C */ stw r0, 0x5c(r19)
+/* 8033A3B0 00336010 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A3B4 00336014 90 13 00 54 */ stw r0, 0x54(r19)
+lbl_8033A3B8:
+/* 8033A3B8 00336018 38 60 00 01 */ li r3, 1
+/* 8033A3BC 0033601C 48 00 02 A8 */ b lbl_8033A664
+lbl_8033A3C0:
+/* 8033A3C0 00336020 38 17 FF FF */ addi r0, r23, -1
+/* 8033A3C4 00336024 38 60 00 01 */ li r3, 1
+/* 8033A3C8 00336028 54 00 10 3A */ slwi r0, r0, 2
+/* 8033A3CC 0033602C 7C 98 00 2E */ lwzx r4, r24, r0
+/* 8033A3D0 00336030 48 00 00 08 */ b lbl_8033A3D8
+lbl_8033A3D4:
+/* 8033A3D4 00336034 3B 7B FF FF */ addi r27, r27, -1
+lbl_8033A3D8:
+/* 8033A3D8 00336038 7C 60 D8 30 */ slw r0, r3, r27
+/* 8033A3DC 0033603C 7C 00 20 39 */ and. r0, r0, r4
+/* 8033A3E0 00336040 40 82 00 0C */ bne lbl_8033A3EC
+/* 8033A3E4 00336044 2C 1B 00 00 */ cmpwi r27, 0
+/* 8033A3E8 00336048 40 80 FF EC */ bge lbl_8033A3D4
+lbl_8033A3EC:
+/* 8033A3EC 0033604C 2C 1B FF FF */ cmpwi r27, -1
+/* 8033A3F0 00336050 40 82 00 40 */ bne lbl_8033A430
+/* 8033A3F4 00336054 3E 60 80 61 */ lis r19, lbl_80610BD0@ha
+/* 8033A3F8 00336058 3A 73 0B D0 */ addi r19, r19, lbl_80610BD0@l
+/* 8033A3FC 0033605C 80 13 00 5C */ lwz r0, 0x5c(r19)
+/* 8033A400 00336060 28 00 00 01 */ cmplwi r0, 1
+/* 8033A404 00336064 40 82 00 24 */ bne lbl_8033A428
+/* 8033A408 00336068 4B FF EC 19 */ bl current_time_hires
+/* 8033A40C 0033606C 80 B3 00 50 */ lwz r5, 0x50(r19)
+/* 8033A410 00336070 38 00 00 00 */ li r0, 0
+/* 8033A414 00336074 80 93 00 54 */ lwz r4, 0x54(r19)
+/* 8033A418 00336078 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A41C 0033607C 90 13 00 5C */ stw r0, 0x5c(r19)
+/* 8033A420 00336080 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A424 00336084 90 13 00 54 */ stw r0, 0x54(r19)
+lbl_8033A428:
+/* 8033A428 00336088 38 60 00 00 */ li r3, 0
+/* 8033A42C 0033608C 48 00 02 38 */ b lbl_8033A664
+lbl_8033A430:
+/* 8033A430 00336090 38 17 FF FF */ addi r0, r23, -1
+/* 8033A434 00336094 7E F9 BB 78 */ mr r25, r23
+/* 8033A438 00336098 54 00 28 34 */ slwi r0, r0, 5
+/* 8033A43C 0033609C 7F 57 D0 50 */ subf r26, r23, r26
+/* 8033A440 003360A0 7F 7B 02 14 */ add r27, r27, r0
+/* 8033A444 003360A4 3B C1 02 10 */ addi r30, r1, 0x210
+/* 8033A448 003360A8 3A 61 00 10 */ addi r19, r1, 0x10
+/* 8033A44C 003360AC 3B E0 00 00 */ li r31, 0
+lbl_8033A450:
+/* 8033A450 003360B0 57 5C 10 3A */ slwi r28, r26, 2
+/* 8033A454 003360B4 38 61 00 10 */ addi r3, r1, 0x10
+/* 8033A458 003360B8 7F 24 CB 78 */ mr r4, r25
+/* 8033A45C 003360BC 7F 05 C3 78 */ mr r5, r24
+/* 8033A460 003360C0 7E E6 BB 78 */ mr r6, r23
+/* 8033A464 003360C4 7C 63 E2 14 */ add r3, r3, r28
+/* 8033A468 003360C8 4B FF F4 9D */ bl gsiLargeIntCompare
+/* 8033A46C 003360CC 2C 03 FF FF */ cmpwi r3, -1
+/* 8033A470 003360D0 40 82 00 20 */ bne lbl_8033A490
+/* 8033A474 003360D4 2C 1A 00 00 */ cmpwi r26, 0
+/* 8033A478 003360D8 40 81 00 10 */ ble lbl_8033A488
+/* 8033A47C 003360DC 3B 5A FF FF */ addi r26, r26, -1
+/* 8033A480 003360E0 3B 39 00 01 */ addi r25, r25, 1
+/* 8033A484 003360E4 48 00 01 48 */ b lbl_8033A5CC
+lbl_8033A488:
+/* 8033A488 003360E8 3A C0 00 01 */ li r22, 1
+/* 8033A48C 003360EC 48 00 01 40 */ b lbl_8033A5CC
+lbl_8033A490:
+/* 8033A490 003360F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033A494 003360F4 40 82 00 50 */ bne lbl_8033A4E4
+/* 8033A498 003360F8 38 61 00 10 */ addi r3, r1, 0x10
+/* 8033A49C 003360FC 57 25 10 3A */ slwi r5, r25, 2
+/* 8033A4A0 00336100 7C 63 E2 14 */ add r3, r3, r28
+/* 8033A4A4 00336104 38 80 00 00 */ li r4, 0
+/* 8033A4A8 00336108 4B CC 9C 5D */ bl memset
+/* 8033A4AC 0033610C 7C 9E E2 14 */ add r4, r30, r28
+/* 8033A4B0 00336110 7C BA CA 14 */ add r5, r26, r25
+/* 8033A4B4 00336114 80 64 00 04 */ lwz r3, 4(r4)
+/* 8033A4B8 00336118 38 03 00 01 */ addi r0, r3, 1
+/* 8033A4BC 0033611C 90 04 00 04 */ stw r0, 4(r4)
+/* 8033A4C0 00336120 80 01 02 10 */ lwz r0, 0x210(r1)
+/* 8033A4C4 00336124 7C 00 28 40 */ cmplw r0, r5
+/* 8033A4C8 00336128 40 80 00 08 */ bge lbl_8033A4D0
+/* 8033A4CC 0033612C 90 A1 02 10 */ stw r5, 0x210(r1)
+lbl_8033A4D0:
+/* 8033A4D0 00336130 7F 59 D0 51 */ subf. r26, r25, r26
+/* 8033A4D4 00336134 3B 20 00 01 */ li r25, 1
+/* 8033A4D8 00336138 40 80 00 F4 */ bge lbl_8033A5CC
+/* 8033A4DC 0033613C 3A C0 00 01 */ li r22, 1
+/* 8033A4E0 00336140 48 00 00 EC */ b lbl_8033A5CC
+lbl_8033A4E4:
+/* 8033A4E4 00336144 3B A1 00 10 */ addi r29, r1, 0x10
+/* 8033A4E8 00336148 93 E1 00 08 */ stw r31, 8(r1)
+/* 8033A4EC 0033614C 7F BD E2 14 */ add r29, r29, r28
+/* 8033A4F0 00336150 7F 24 CB 78 */ mr r4, r25
+/* 8033A4F4 00336154 7F A3 EB 78 */ mr r3, r29
+/* 8033A4F8 00336158 7F 05 C3 78 */ mr r5, r24
+/* 8033A4FC 0033615C 7E E6 BB 78 */ mr r6, r23
+/* 8033A500 00336160 7F 67 DB 78 */ mr r7, r27
+/* 8033A504 00336164 39 01 00 08 */ addi r8, r1, 8
+/* 8033A508 00336168 48 00 01 75 */ bl gsiLargeIntSubDivide
+/* 8033A50C 0033616C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033A510 00336170 40 82 00 40 */ bne lbl_8033A550
+/* 8033A514 00336174 3E 60 80 61 */ lis r19, lbl_80610BD0@ha
+/* 8033A518 00336178 3A 73 0B D0 */ addi r19, r19, lbl_80610BD0@l
+/* 8033A51C 0033617C 80 13 00 5C */ lwz r0, 0x5c(r19)
+/* 8033A520 00336180 28 00 00 01 */ cmplwi r0, 1
+/* 8033A524 00336184 40 82 00 24 */ bne lbl_8033A548
+/* 8033A528 00336188 4B FF EA F9 */ bl current_time_hires
+/* 8033A52C 0033618C 80 B3 00 50 */ lwz r5, 0x50(r19)
+/* 8033A530 00336190 38 00 00 00 */ li r0, 0
+/* 8033A534 00336194 80 93 00 54 */ lwz r4, 0x54(r19)
+/* 8033A538 00336198 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A53C 0033619C 90 13 00 5C */ stw r0, 0x5c(r19)
+/* 8033A540 003361A0 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A544 003361A4 90 13 00 54 */ stw r0, 0x54(r19)
+lbl_8033A548:
+/* 8033A548 003361A8 38 60 00 00 */ li r3, 0
+/* 8033A54C 003361AC 48 00 01 18 */ b lbl_8033A664
+lbl_8033A550:
+/* 8033A550 003361B0 7C 9E E2 14 */ add r4, r30, r28
+/* 8033A554 003361B4 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033A558 003361B8 80 64 00 04 */ lwz r3, 4(r4)
+/* 8033A55C 003361BC 7C BA CA 14 */ add r5, r26, r25
+/* 8033A560 003361C0 7C 03 02 14 */ add r0, r3, r0
+/* 8033A564 003361C4 90 04 00 04 */ stw r0, 4(r4)
+/* 8033A568 003361C8 80 01 02 10 */ lwz r0, 0x210(r1)
+/* 8033A56C 003361CC 7C 00 28 40 */ cmplw r0, r5
+/* 8033A570 003361D0 40 80 00 08 */ bge lbl_8033A578
+/* 8033A574 003361D4 90 A1 02 10 */ stw r5, 0x210(r1)
+lbl_8033A578:
+/* 8033A578 003361D8 57 20 10 3A */ slwi r0, r25, 2
+/* 8033A57C 003361DC 7C 7D 02 14 */ add r3, r29, r0
+/* 8033A580 003361E0 48 00 00 0C */ b lbl_8033A58C
+lbl_8033A584:
+/* 8033A584 003361E4 38 63 FF FC */ addi r3, r3, -4
+/* 8033A588 003361E8 3B 39 FF FF */ addi r25, r25, -1
+lbl_8033A58C:
+/* 8033A58C 003361EC 80 03 FF FC */ lwz r0, -4(r3)
+/* 8033A590 003361F0 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A594 003361F4 40 82 00 0C */ bne lbl_8033A5A0
+/* 8033A598 003361F8 2C 19 00 01 */ cmpwi r25, 1
+/* 8033A59C 003361FC 41 81 FF E8 */ bgt lbl_8033A584
+lbl_8033A5A0:
+/* 8033A5A0 00336200 57 20 10 3A */ slwi r0, r25, 2
+/* 8033A5A4 00336204 7C 1C 02 14 */ add r0, r28, r0
+/* 8033A5A8 00336208 7C 73 02 14 */ add r3, r19, r0
+/* 8033A5AC 0033620C 48 00 00 0C */ b lbl_8033A5B8
+lbl_8033A5B0:
+/* 8033A5B0 00336210 38 63 FF FC */ addi r3, r3, -4
+/* 8033A5B4 00336214 3B 5A FF FF */ addi r26, r26, -1
+lbl_8033A5B8:
+/* 8033A5B8 00336218 80 03 FF FC */ lwz r0, -4(r3)
+/* 8033A5BC 0033621C 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A5C0 00336220 40 82 00 0C */ bne lbl_8033A5CC
+/* 8033A5C4 00336224 2C 1A 00 01 */ cmpwi r26, 1
+/* 8033A5C8 00336228 41 81 FF E8 */ bgt lbl_8033A5B0
+lbl_8033A5CC:
+/* 8033A5CC 0033622C 2C 16 00 00 */ cmpwi r22, 0
+/* 8033A5D0 00336230 41 82 FE 80 */ beq lbl_8033A450
+/* 8033A5D4 00336234 2C 1A 00 00 */ cmpwi r26, 0
+/* 8033A5D8 00336238 41 80 00 24 */ blt lbl_8033A5FC
+/* 8033A5DC 0033623C 57 40 10 3A */ slwi r0, r26, 2
+/* 8033A5E0 00336240 38 81 00 10 */ addi r4, r1, 0x10
+/* 8033A5E4 00336244 38 75 00 04 */ addi r3, r21, 4
+/* 8033A5E8 00336248 57 25 10 3A */ slwi r5, r25, 2
+/* 8033A5EC 0033624C 7C 84 02 14 */ add r4, r4, r0
+/* 8033A5F0 00336250 4B CC 9A 11 */ bl memcpy
+/* 8033A5F4 00336254 93 35 00 00 */ stw r25, 0(r21)
+/* 8033A5F8 00336258 48 00 00 10 */ b lbl_8033A608
+lbl_8033A5FC:
+/* 8033A5FC 0033625C 38 00 00 00 */ li r0, 0
+/* 8033A600 00336260 90 15 00 04 */ stw r0, 4(r21)
+/* 8033A604 00336264 90 15 00 00 */ stw r0, 0(r21)
+lbl_8033A608:
+/* 8033A608 00336268 2C 14 00 00 */ cmpwi r20, 0
+/* 8033A60C 0033626C 41 82 00 20 */ beq lbl_8033A62C
+/* 8033A610 00336270 80 01 02 10 */ lwz r0, 0x210(r1)
+/* 8033A614 00336274 38 74 00 04 */ addi r3, r20, 4
+/* 8033A618 00336278 38 81 02 14 */ addi r4, r1, 0x214
+/* 8033A61C 0033627C 54 05 10 3A */ slwi r5, r0, 2
+/* 8033A620 00336280 4B CC 99 E1 */ bl memcpy
+/* 8033A624 00336284 80 01 02 10 */ lwz r0, 0x210(r1)
+/* 8033A628 00336288 90 14 00 00 */ stw r0, 0(r20)
+lbl_8033A62C:
+/* 8033A62C 0033628C 3E 80 80 61 */ lis r20, lbl_80610BD0@ha
+/* 8033A630 00336290 3A 94 0B D0 */ addi r20, r20, lbl_80610BD0@l
+/* 8033A634 00336294 80 14 00 5C */ lwz r0, 0x5c(r20)
+/* 8033A638 00336298 28 00 00 01 */ cmplwi r0, 1
+/* 8033A63C 0033629C 40 82 00 24 */ bne lbl_8033A660
+/* 8033A640 003362A0 4B FF E9 E1 */ bl current_time_hires
+/* 8033A644 003362A4 80 B4 00 50 */ lwz r5, 0x50(r20)
+/* 8033A648 003362A8 38 00 00 00 */ li r0, 0
+/* 8033A64C 003362AC 80 94 00 54 */ lwz r4, 0x54(r20)
+/* 8033A650 003362B0 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A654 003362B4 90 14 00 5C */ stw r0, 0x5c(r20)
+/* 8033A658 003362B8 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A65C 003362BC 90 14 00 54 */ stw r0, 0x54(r20)
+lbl_8033A660:
+/* 8033A660 003362C0 38 60 00 01 */ li r3, 1
+lbl_8033A664:
+/* 8033A664 003362C4 39 61 03 50 */ addi r11, r1, 0x350
+/* 8033A668 003362C8 4B E8 CA ED */ bl _restgpr_19
+/* 8033A66C 003362CC 80 01 03 54 */ lwz r0, 0x354(r1)
+/* 8033A670 003362D0 7C 08 03 A6 */ mtlr r0
+/* 8033A674 003362D4 38 21 03 50 */ addi r1, r1, 0x350
+/* 8033A678 003362D8 4E 80 00 20 */ blr
+
+.global gsiLargeIntSubDivide
+gsiLargeIntSubDivide:
+/* 8033A67C 003362DC 94 21 FD D0 */ stwu r1, -0x230(r1)
+/* 8033A680 003362E0 7C 08 02 A6 */ mflr r0
+/* 8033A684 003362E4 90 01 02 34 */ stw r0, 0x234(r1)
+/* 8033A688 003362E8 39 61 02 30 */ addi r11, r1, 0x230
+/* 8033A68C 003362EC 4B E8 CA 99 */ bl _savegpr_26
+/* 8033A690 003362F0 3F 60 80 61 */ lis r27, lbl_80610BD0@ha
+/* 8033A694 003362F4 90 81 00 08 */ stw r4, 8(r1)
+/* 8033A698 003362F8 3B 7B 0B D0 */ addi r27, r27, lbl_80610BD0@l
+/* 8033A69C 003362FC 7C 7C 1B 78 */ mr r28, r3
+/* 8033A6A0 00336300 80 1B 00 6C */ lwz r0, 0x6c(r27)
+/* 8033A6A4 00336304 7C BD 2B 78 */ mr r29, r5
+/* 8033A6A8 00336308 7C DE 33 78 */ mr r30, r6
+/* 8033A6AC 0033630C 7D 1F 43 78 */ mr r31, r8
+/* 8033A6B0 00336310 2C 00 00 00 */ cmpwi r0, 0
+/* 8033A6B4 00336314 40 82 00 20 */ bne lbl_8033A6D4
+/* 8033A6B8 00336318 80 7B 00 68 */ lwz r3, 0x68(r27)
+/* 8033A6BC 0033631C 38 03 00 01 */ addi r0, r3, 1
+/* 8033A6C0 00336320 90 1B 00 68 */ stw r0, 0x68(r27)
+/* 8033A6C4 00336324 4B FF E9 5D */ bl current_time_hires
+/* 8033A6C8 00336328 38 00 00 01 */ li r0, 1
+/* 8033A6CC 0033632C 90 7B 00 60 */ stw r3, 0x60(r27)
+/* 8033A6D0 00336330 90 1B 00 6C */ stw r0, 0x6c(r27)
+lbl_8033A6D4:
+/* 8033A6D4 00336334 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033A6D8 00336338 7C 04 F0 40 */ cmplw r4, r30
+/* 8033A6DC 0033633C 40 81 00 30 */ ble lbl_8033A70C
+/* 8033A6E0 00336340 38 64 FF FE */ addi r3, r4, -2
+/* 8033A6E4 00336344 38 1E FF FF */ addi r0, r30, -1
+/* 8033A6E8 00336348 38 84 FF FF */ addi r4, r4, -1
+/* 8033A6EC 0033634C 54 63 10 3A */ slwi r3, r3, 2
+/* 8033A6F0 00336350 54 00 10 3A */ slwi r0, r0, 2
+/* 8033A6F4 00336354 54 84 10 3A */ slwi r4, r4, 2
+/* 8033A6F8 00336358 7C 7C 18 2E */ lwzx r3, r28, r3
+/* 8033A6FC 0033635C 7C 1D 00 2E */ lwzx r0, r29, r0
+/* 8033A700 00336360 7F 5C 20 2E */ lwzx r26, r28, r4
+/* 8033A704 00336364 7C 64 00 38 */ and r4, r3, r0
+/* 8033A708 00336368 48 00 00 14 */ b lbl_8033A71C
+lbl_8033A70C:
+/* 8033A70C 0033636C 38 04 FF FF */ addi r0, r4, -1
+/* 8033A710 00336370 3B 40 00 00 */ li r26, 0
+/* 8033A714 00336374 54 00 10 3A */ slwi r0, r0, 2
+/* 8033A718 00336378 7C 9C 00 2E */ lwzx r4, r28, r0
+lbl_8033A71C:
+/* 8033A71C 0033637C 38 1E FF FF */ addi r0, r30, -1
+/* 8033A720 00336380 7F 43 D3 78 */ mr r3, r26
+/* 8033A724 00336384 54 00 10 3A */ slwi r0, r0, 2
+/* 8033A728 00336388 38 A0 00 00 */ li r5, 0
+/* 8033A72C 0033638C 7C DD 00 2E */ lwzx r6, r29, r0
+/* 8033A730 00336390 4B E8 CA 5D */ bl __div2u
+/* 8033A734 00336394 7C 9B 23 78 */ mr r27, r4
+/* 8033A738 00336398 7C 7A 1B 78 */ mr r26, r3
+/* 8033A73C 0033639C 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033A740 003363A0 38 80 00 00 */ li r4, 0
+/* 8033A744 003363A4 38 A0 01 04 */ li r5, 0x104
+/* 8033A748 003363A8 4B CC 99 BD */ bl memset
+/* 8033A74C 003363AC 2C 1A 00 00 */ cmpwi r26, 0
+/* 8033A750 003363B0 93 61 00 10 */ stw r27, 0x10(r1)
+/* 8033A754 003363B4 93 41 00 14 */ stw r26, 0x14(r1)
+/* 8033A758 003363B8 41 82 00 14 */ beq lbl_8033A76C
+/* 8033A75C 003363BC 38 60 FF FF */ li r3, -1
+/* 8033A760 003363C0 38 00 00 00 */ li r0, 0
+/* 8033A764 003363C4 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8033A768 003363C8 90 01 00 14 */ stw r0, 0x14(r1)
+lbl_8033A76C:
+/* 8033A76C 003363CC 38 00 00 01 */ li r0, 1
+/* 8033A770 003363D0 7F A3 EB 78 */ mr r3, r29
+/* 8033A774 003363D4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8033A778 003363D8 7F C4 F3 78 */ mr r4, r30
+/* 8033A77C 003363DC 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8033A780 003363E0 38 E1 01 14 */ addi r7, r1, 0x114
+/* 8033A784 003363E4 39 01 01 10 */ addi r8, r1, 0x110
+/* 8033A788 003363E8 38 C0 00 01 */ li r6, 1
+/* 8033A78C 003363EC 39 20 00 40 */ li r9, 0x40
+/* 8033A790 003363F0 4B FF F8 05 */ bl gsiLargeIntMult
+/* 8033A794 003363F4 2C 03 00 00 */ cmpwi r3, 0
+/* 8033A798 003363F8 40 82 00 B4 */ bne lbl_8033A84C
+/* 8033A79C 003363FC 3F 80 80 61 */ lis r28, lbl_80610BD0@ha
+/* 8033A7A0 00336400 3B 9C 0B D0 */ addi r28, r28, lbl_80610BD0@l
+/* 8033A7A4 00336404 80 1C 00 6C */ lwz r0, 0x6c(r28)
+/* 8033A7A8 00336408 28 00 00 01 */ cmplwi r0, 1
+/* 8033A7AC 0033640C 40 82 00 24 */ bne lbl_8033A7D0
+/* 8033A7B0 00336410 4B FF E8 71 */ bl current_time_hires
+/* 8033A7B4 00336414 80 BC 00 60 */ lwz r5, 0x60(r28)
+/* 8033A7B8 00336418 38 00 00 00 */ li r0, 0
+/* 8033A7BC 0033641C 80 9C 00 64 */ lwz r4, 0x64(r28)
+/* 8033A7C0 00336420 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A7C4 00336424 90 1C 00 6C */ stw r0, 0x6c(r28)
+/* 8033A7C8 00336428 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A7CC 0033642C 90 1C 00 64 */ stw r0, 0x64(r28)
+lbl_8033A7D0:
+/* 8033A7D0 00336430 38 60 00 00 */ li r3, 0
+/* 8033A7D4 00336434 48 00 00 F0 */ b lbl_8033A8C4
+/* 8033A7D8 00336438 48 00 00 74 */ b lbl_8033A84C
+lbl_8033A7DC:
+/* 8033A7DC 0033643C 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 8033A7E0 00336440 7F A3 EB 78 */ mr r3, r29
+/* 8033A7E4 00336444 80 C1 00 0C */ lwz r6, 0xc(r1)
+/* 8033A7E8 00336448 7F C4 F3 78 */ mr r4, r30
+/* 8033A7EC 0033644C 54 00 F8 7E */ srwi r0, r0, 1
+/* 8033A7F0 00336450 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8033A7F4 00336454 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8033A7F8 00336458 38 E1 01 14 */ addi r7, r1, 0x114
+/* 8033A7FC 0033645C 39 01 01 10 */ addi r8, r1, 0x110
+/* 8033A800 00336460 39 20 00 40 */ li r9, 0x40
+/* 8033A804 00336464 4B FF F7 91 */ bl gsiLargeIntMult
+/* 8033A808 00336468 2C 03 00 00 */ cmpwi r3, 0
+/* 8033A80C 0033646C 40 82 00 40 */ bne lbl_8033A84C
+/* 8033A810 00336470 3F 80 80 61 */ lis r28, lbl_80610BD0@ha
+/* 8033A814 00336474 3B 9C 0B D0 */ addi r28, r28, lbl_80610BD0@l
+/* 8033A818 00336478 80 1C 00 6C */ lwz r0, 0x6c(r28)
+/* 8033A81C 0033647C 28 00 00 01 */ cmplwi r0, 1
+/* 8033A820 00336480 40 82 00 24 */ bne lbl_8033A844
+/* 8033A824 00336484 4B FF E7 FD */ bl current_time_hires
+/* 8033A828 00336488 80 BC 00 60 */ lwz r5, 0x60(r28)
+/* 8033A82C 0033648C 38 00 00 00 */ li r0, 0
+/* 8033A830 00336490 80 9C 00 64 */ lwz r4, 0x64(r28)
+/* 8033A834 00336494 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A838 00336498 90 1C 00 6C */ stw r0, 0x6c(r28)
+/* 8033A83C 0033649C 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A840 003364A0 90 1C 00 64 */ stw r0, 0x64(r28)
+lbl_8033A844:
+/* 8033A844 003364A4 38 60 00 00 */ li r3, 0
+/* 8033A848 003364A8 48 00 00 7C */ b lbl_8033A8C4
+lbl_8033A84C:
+/* 8033A84C 003364AC 80 81 01 10 */ lwz r4, 0x110(r1)
+/* 8033A850 003364B0 7F 85 E3 78 */ mr r5, r28
+/* 8033A854 003364B4 80 C1 00 08 */ lwz r6, 8(r1)
+/* 8033A858 003364B8 38 61 01 14 */ addi r3, r1, 0x114
+/* 8033A85C 003364BC 4B FF F0 A9 */ bl gsiLargeIntCompare
+/* 8033A860 003364C0 2C 03 00 01 */ cmpwi r3, 1
+/* 8033A864 003364C4 41 82 FF 78 */ beq lbl_8033A7DC
+/* 8033A868 003364C8 80 81 01 10 */ lwz r4, 0x110(r1)
+/* 8033A86C 003364CC 7F 85 E3 78 */ mr r5, r28
+/* 8033A870 003364D0 80 C1 00 08 */ lwz r6, 8(r1)
+/* 8033A874 003364D4 7F 87 E3 78 */ mr r7, r28
+/* 8033A878 003364D8 38 61 01 14 */ addi r3, r1, 0x114
+/* 8033A87C 003364DC 39 01 00 08 */ addi r8, r1, 8
+/* 8033A880 003364E0 4B FF F3 C9 */ bl gsiLargeIntSub
+/* 8033A884 003364E4 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 8033A888 003364E8 3F 80 80 61 */ lis r28, lbl_80610BD0@ha
+/* 8033A88C 003364EC 3B 9C 0B D0 */ addi r28, r28, lbl_80610BD0@l
+/* 8033A890 003364F0 90 1F 00 00 */ stw r0, 0(r31)
+/* 8033A894 003364F4 80 1C 00 6C */ lwz r0, 0x6c(r28)
+/* 8033A898 003364F8 28 00 00 01 */ cmplwi r0, 1
+/* 8033A89C 003364FC 40 82 00 24 */ bne lbl_8033A8C0
+/* 8033A8A0 00336500 4B FF E7 81 */ bl current_time_hires
+/* 8033A8A4 00336504 80 BC 00 60 */ lwz r5, 0x60(r28)
+/* 8033A8A8 00336508 38 00 00 00 */ li r0, 0
+/* 8033A8AC 0033650C 80 9C 00 64 */ lwz r4, 0x64(r28)
+/* 8033A8B0 00336510 7C 65 18 50 */ subf r3, r5, r3
+/* 8033A8B4 00336514 90 1C 00 6C */ stw r0, 0x6c(r28)
+/* 8033A8B8 00336518 7C 04 1A 14 */ add r0, r4, r3
+/* 8033A8BC 0033651C 90 1C 00 64 */ stw r0, 0x64(r28)
+lbl_8033A8C0:
+/* 8033A8C0 00336520 38 60 00 01 */ li r3, 1
+lbl_8033A8C4:
+/* 8033A8C4 00336524 39 61 02 30 */ addi r11, r1, 0x230
+/* 8033A8C8 00336528 4B E8 C8 A9 */ bl _restgpr_26
+/* 8033A8CC 0033652C 80 01 02 34 */ lwz r0, 0x234(r1)
+/* 8033A8D0 00336530 7C 08 03 A6 */ mtlr r0
+/* 8033A8D4 00336534 38 21 02 30 */ addi r1, r1, 0x230
+/* 8033A8D8 00336538 4E 80 00 20 */ blr
+
+.global gsLargeIntKMult
+gsLargeIntKMult:
+/* 8033A8DC 0033653C 94 21 FC D0 */ stwu r1, -0x330(r1)
+/* 8033A8E0 00336540 7C 08 02 A6 */ mflr r0
+/* 8033A8E4 00336544 80 E3 00 00 */ lwz r7, 0(r3)
+/* 8033A8E8 00336548 90 01 03 34 */ stw r0, 0x334(r1)
+/* 8033A8EC 0033654C 38 00 00 00 */ li r0, 0
+/* 8033A8F0 00336550 2C 07 00 00 */ cmpwi r7, 0
+/* 8033A8F4 00336554 93 E1 03 2C */ stw r31, 0x32c(r1)
+/* 8033A8F8 00336558 7C BF 2B 78 */ mr r31, r5
+/* 8033A8FC 0033655C 93 C1 03 28 */ stw r30, 0x328(r1)
+/* 8033A900 00336560 93 A1 03 24 */ stw r29, 0x324(r1)
+/* 8033A904 00336564 7C 9D 23 78 */ mr r29, r4
+/* 8033A908 00336568 93 81 03 20 */ stw r28, 0x320(r1)
+/* 8033A90C 0033656C 7C 7C 1B 78 */ mr r28, r3
+/* 8033A910 00336570 90 01 00 08 */ stw r0, 8(r1)
+/* 8033A914 00336574 41 82 00 10 */ beq lbl_8033A924
+/* 8033A918 00336578 80 C4 00 00 */ lwz r6, 0(r4)
+/* 8033A91C 0033657C 2C 06 00 00 */ cmpwi r6, 0
+/* 8033A920 00336580 40 82 00 14 */ bne lbl_8033A934
+lbl_8033A924:
+/* 8033A924 00336584 38 00 00 00 */ li r0, 0
+/* 8033A928 00336588 38 60 00 01 */ li r3, 1
+/* 8033A92C 0033658C 90 05 00 00 */ stw r0, 0(r5)
+/* 8033A930 00336590 48 00 02 20 */ b lbl_8033AB50
+lbl_8033A934:
+/* 8033A934 00336594 7C 07 30 40 */ cmplw r7, r6
+/* 8033A938 00336598 7C C0 33 78 */ mr r0, r6
+/* 8033A93C 0033659C 40 81 00 08 */ ble lbl_8033A944
+/* 8033A940 003365A0 7C E0 3B 78 */ mr r0, r7
+lbl_8033A944:
+/* 8033A944 003365A4 28 00 00 20 */ cmplwi r0, 0x20
+/* 8033A948 003365A8 40 80 00 44 */ bge lbl_8033A98C
+/* 8033A94C 003365AC 7C E4 3B 78 */ mr r4, r7
+/* 8033A950 003365B0 7F E8 FB 78 */ mr r8, r31
+/* 8033A954 003365B4 38 BD 00 04 */ addi r5, r29, 4
+/* 8033A958 003365B8 38 FF 00 04 */ addi r7, r31, 4
+/* 8033A95C 003365BC 39 20 00 40 */ li r9, 0x40
+/* 8033A960 003365C0 38 63 00 04 */ addi r3, r3, 4
+/* 8033A964 003365C4 4B FF F6 31 */ bl gsiLargeIntMult
+/* 8033A968 003365C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033A96C 003365CC 7C 7E 1B 78 */ mr r30, r3
+/* 8033A970 003365D0 40 82 00 14 */ bne lbl_8033A984
+/* 8033A974 003365D4 7F E3 FB 78 */ mr r3, r31
+/* 8033A978 003365D8 38 80 00 00 */ li r4, 0
+/* 8033A97C 003365DC 38 A0 01 04 */ li r5, 0x104
+/* 8033A980 003365E0 4B CC 97 85 */ bl memset
+lbl_8033A984:
+/* 8033A984 003365E4 7F C3 F3 78 */ mr r3, r30
+/* 8033A988 003365E8 48 00 01 C8 */ b lbl_8033AB50
+lbl_8033A98C:
+/* 8033A98C 003365EC 7F 83 E3 78 */ mr r3, r28
+/* 8033A990 003365F0 7F A4 EB 78 */ mr r4, r29
+/* 8033A994 003365F4 38 A1 00 08 */ addi r5, r1, 8
+/* 8033A998 003365F8 4B FF EE D1 */ bl gsiLargeIntSizePower2
+/* 8033A99C 003365FC 2C 03 00 00 */ cmpwi r3, 0
+/* 8033A9A0 00336600 41 82 00 10 */ beq lbl_8033A9B0
+/* 8033A9A4 00336604 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033A9A8 00336608 28 00 00 20 */ cmplwi r0, 0x20
+/* 8033A9AC 0033660C 40 81 00 48 */ ble lbl_8033A9F4
+lbl_8033A9B0:
+/* 8033A9B0 00336610 80 9C 00 00 */ lwz r4, 0(r28)
+/* 8033A9B4 00336614 7F E8 FB 78 */ mr r8, r31
+/* 8033A9B8 00336618 80 DD 00 00 */ lwz r6, 0(r29)
+/* 8033A9BC 0033661C 38 7C 00 04 */ addi r3, r28, 4
+/* 8033A9C0 00336620 38 BD 00 04 */ addi r5, r29, 4
+/* 8033A9C4 00336624 38 FF 00 04 */ addi r7, r31, 4
+/* 8033A9C8 00336628 39 20 00 40 */ li r9, 0x40
+/* 8033A9CC 0033662C 4B FF F5 C9 */ bl gsiLargeIntMult
+/* 8033A9D0 00336630 2C 03 00 00 */ cmpwi r3, 0
+/* 8033A9D4 00336634 7C 7E 1B 78 */ mr r30, r3
+/* 8033A9D8 00336638 40 82 00 14 */ bne lbl_8033A9EC
+/* 8033A9DC 0033663C 7F E3 FB 78 */ mr r3, r31
+/* 8033A9E0 00336640 38 80 00 00 */ li r4, 0
+/* 8033A9E4 00336644 38 A0 01 04 */ li r5, 0x104
+/* 8033A9E8 00336648 4B CC 97 1D */ bl memset
+lbl_8033A9EC:
+/* 8033A9EC 0033664C 7F C3 F3 78 */ mr r3, r30
+/* 8033A9F0 00336650 48 00 01 60 */ b lbl_8033AB50
+lbl_8033A9F4:
+/* 8033A9F4 00336654 3F C0 80 61 */ lis r30, lbl_80610BD0@ha
+/* 8033A9F8 00336658 3B DE 0B D0 */ addi r30, r30, lbl_80610BD0@l
+/* 8033A9FC 0033665C 80 1E 00 2C */ lwz r0, 0x2c(r30)
+/* 8033AA00 00336660 2C 00 00 00 */ cmpwi r0, 0
+/* 8033AA04 00336664 40 82 00 20 */ bne lbl_8033AA24
+/* 8033AA08 00336668 80 7E 00 28 */ lwz r3, 0x28(r30)
+/* 8033AA0C 0033666C 38 03 00 01 */ addi r0, r3, 1
+/* 8033AA10 00336670 90 1E 00 28 */ stw r0, 0x28(r30)
+/* 8033AA14 00336674 4B FF E6 0D */ bl current_time_hires
+/* 8033AA18 00336678 38 00 00 01 */ li r0, 1
+/* 8033AA1C 0033667C 90 7E 00 20 */ stw r3, 0x20(r30)
+/* 8033AA20 00336680 90 1E 00 2C */ stw r0, 0x2c(r30)
+lbl_8033AA24:
+/* 8033AA24 00336684 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033AA28 00336688 38 80 00 00 */ li r4, 0
+/* 8033AA2C 0033668C 38 A0 01 04 */ li r5, 0x104
+/* 8033AA30 00336690 4B CC 96 D5 */ bl memset
+/* 8033AA34 00336694 80 A1 00 08 */ lwz r5, 8(r1)
+/* 8033AA38 00336698 38 60 00 00 */ li r3, 0
+/* 8033AA3C 0033669C 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8033AA40 003366A0 90 61 02 14 */ stw r3, 0x214(r1)
+/* 8033AA44 003366A4 7C 00 28 40 */ cmplw r0, r5
+/* 8033AA48 003366A8 40 82 00 10 */ bne lbl_8033AA58
+/* 8033AA4C 003366AC 80 1D 00 00 */ lwz r0, 0(r29)
+/* 8033AA50 003366B0 7C 00 28 40 */ cmplw r0, r5
+/* 8033AA54 003366B4 41 82 00 60 */ beq lbl_8033AAB4
+lbl_8033AA58:
+/* 8033AA58 003366B8 7F 84 E3 78 */ mr r4, r28
+/* 8033AA5C 003366BC 38 61 01 10 */ addi r3, r1, 0x110
+/* 8033AA60 003366C0 38 A0 01 04 */ li r5, 0x104
+/* 8033AA64 003366C4 4B CC 95 9D */ bl memcpy
+/* 8033AA68 003366C8 7F A4 EB 78 */ mr r4, r29
+/* 8033AA6C 003366CC 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033AA70 003366D0 38 A0 01 04 */ li r5, 0x104
+/* 8033AA74 003366D4 4B CC 95 8D */ bl memcpy
+/* 8033AA78 003366D8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033AA7C 003366DC 38 61 01 10 */ addi r3, r1, 0x110
+/* 8033AA80 003366E0 4B FF ED 31 */ bl gsiLargeIntResize
+/* 8033AA84 003366E4 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033AA88 003366E8 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033AA8C 003366EC 4B FF ED 25 */ bl gsiLargeIntResize
+/* 8033AA90 003366F0 80 A1 00 08 */ lwz r5, 8(r1)
+/* 8033AA94 003366F4 38 61 01 14 */ addi r3, r1, 0x114
+/* 8033AA98 003366F8 38 81 00 10 */ addi r4, r1, 0x10
+/* 8033AA9C 003366FC 38 C1 02 18 */ addi r6, r1, 0x218
+/* 8033AAA0 00336700 38 E1 02 14 */ addi r7, r1, 0x214
+/* 8033AAA4 00336704 39 00 00 40 */ li r8, 0x40
+/* 8033AAA8 00336708 48 00 00 C9 */ bl gsiLargeIntKMult
+/* 8033AAAC 0033670C 7C 7E 1B 78 */ mr r30, r3
+/* 8033AAB0 00336710 48 00 00 20 */ b lbl_8033AAD0
+lbl_8033AAB4:
+/* 8033AAB4 00336714 38 7C 00 04 */ addi r3, r28, 4
+/* 8033AAB8 00336718 38 9D 00 04 */ addi r4, r29, 4
+/* 8033AABC 0033671C 38 C1 02 18 */ addi r6, r1, 0x218
+/* 8033AAC0 00336720 38 E1 02 14 */ addi r7, r1, 0x214
+/* 8033AAC4 00336724 39 00 00 40 */ li r8, 0x40
+/* 8033AAC8 00336728 48 00 00 A9 */ bl gsiLargeIntKMult
+/* 8033AACC 0033672C 7C 7E 1B 78 */ mr r30, r3
+lbl_8033AAD0:
+/* 8033AAD0 00336730 2C 1E 00 00 */ cmpwi r30, 0
+/* 8033AAD4 00336734 41 82 00 44 */ beq lbl_8033AB18
+/* 8033AAD8 00336738 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033AADC 0033673C 48 00 00 10 */ b lbl_8033AAEC
+lbl_8033AAE0:
+/* 8033AAE0 00336740 80 81 02 14 */ lwz r4, 0x214(r1)
+/* 8033AAE4 00336744 38 04 FF FF */ addi r0, r4, -1
+/* 8033AAE8 00336748 90 01 02 14 */ stw r0, 0x214(r1)
+lbl_8033AAEC:
+/* 8033AAEC 0033674C 80 01 02 14 */ lwz r0, 0x214(r1)
+/* 8033AAF0 00336750 2C 00 00 00 */ cmpwi r0, 0
+/* 8033AAF4 00336754 41 82 00 14 */ beq lbl_8033AB08
+/* 8033AAF8 00336758 54 00 10 3A */ slwi r0, r0, 2
+/* 8033AAFC 0033675C 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8033AB00 00336760 2C 00 00 00 */ cmpwi r0, 0
+/* 8033AB04 00336764 41 82 FF DC */ beq lbl_8033AAE0
+lbl_8033AB08:
+/* 8033AB08 00336768 7F E3 FB 78 */ mr r3, r31
+/* 8033AB0C 0033676C 38 81 02 14 */ addi r4, r1, 0x214
+/* 8033AB10 00336770 38 A0 01 04 */ li r5, 0x104
+/* 8033AB14 00336774 4B CC 94 ED */ bl memcpy
+lbl_8033AB18:
+/* 8033AB18 00336778 3F E0 80 61 */ lis r31, lbl_80610BD0@ha
+/* 8033AB1C 0033677C 3B FF 0B D0 */ addi r31, r31, lbl_80610BD0@l
+/* 8033AB20 00336780 80 1F 00 2C */ lwz r0, 0x2c(r31)
+/* 8033AB24 00336784 28 00 00 01 */ cmplwi r0, 1
+/* 8033AB28 00336788 40 82 00 24 */ bne lbl_8033AB4C
+/* 8033AB2C 0033678C 4B FF E4 F5 */ bl current_time_hires
+/* 8033AB30 00336790 80 BF 00 20 */ lwz r5, 0x20(r31)
+/* 8033AB34 00336794 38 00 00 00 */ li r0, 0
+/* 8033AB38 00336798 80 9F 00 24 */ lwz r4, 0x24(r31)
+/* 8033AB3C 0033679C 7C 65 18 50 */ subf r3, r5, r3
+/* 8033AB40 003367A0 90 1F 00 2C */ stw r0, 0x2c(r31)
+/* 8033AB44 003367A4 7C 04 1A 14 */ add r0, r4, r3
+/* 8033AB48 003367A8 90 1F 00 24 */ stw r0, 0x24(r31)
+lbl_8033AB4C:
+/* 8033AB4C 003367AC 7F C3 F3 78 */ mr r3, r30
+lbl_8033AB50:
+/* 8033AB50 003367B0 80 01 03 34 */ lwz r0, 0x334(r1)
+/* 8033AB54 003367B4 83 E1 03 2C */ lwz r31, 0x32c(r1)
+/* 8033AB58 003367B8 83 C1 03 28 */ lwz r30, 0x328(r1)
+/* 8033AB5C 003367BC 83 A1 03 24 */ lwz r29, 0x324(r1)
+/* 8033AB60 003367C0 83 81 03 20 */ lwz r28, 0x320(r1)
+/* 8033AB64 003367C4 7C 08 03 A6 */ mtlr r0
+/* 8033AB68 003367C8 38 21 03 30 */ addi r1, r1, 0x330
+/* 8033AB6C 003367CC 4E 80 00 20 */ blr
+
+.global gsiLargeIntKMult
+gsiLargeIntKMult:
+/* 8033AB70 003367D0 94 21 FC B0 */ stwu r1, -0x350(r1)
+/* 8033AB74 003367D4 7C 08 02 A6 */ mflr r0
+/* 8033AB78 003367D8 90 01 03 54 */ stw r0, 0x354(r1)
+/* 8033AB7C 003367DC 39 61 03 50 */ addi r11, r1, 0x350
+/* 8033AB80 003367E0 4B E8 C5 91 */ bl _savegpr_21
+/* 8033AB84 003367E4 28 05 00 20 */ cmplwi r5, 0x20
+/* 8033AB88 003367E8 7C 75 1B 78 */ mr r21, r3
+/* 8033AB8C 003367EC 7C 96 23 78 */ mr r22, r4
+/* 8033AB90 003367F0 7C BB 2B 78 */ mr r27, r5
+/* 8033AB94 003367F4 7C DC 33 78 */ mr r28, r6
+/* 8033AB98 003367F8 7C FD 3B 78 */ mr r29, r7
+/* 8033AB9C 003367FC 7D 1E 43 78 */ mr r30, r8
+/* 8033ABA0 00336800 41 81 00 24 */ bgt lbl_8033ABC4
+/* 8033ABA4 00336804 7F 64 DB 78 */ mr r4, r27
+/* 8033ABA8 00336808 7E C5 B3 78 */ mr r5, r22
+/* 8033ABAC 0033680C 7F 66 DB 78 */ mr r6, r27
+/* 8033ABB0 00336810 7F 87 E3 78 */ mr r7, r28
+/* 8033ABB4 00336814 7F A8 EB 78 */ mr r8, r29
+/* 8033ABB8 00336818 7F C9 F3 78 */ mr r9, r30
+/* 8033ABBC 0033681C 4B FF F3 D9 */ bl gsiLargeIntMult
+/* 8033ABC0 00336820 48 00 02 10 */ b lbl_8033ADD0
+lbl_8033ABC4:
+/* 8033ABC4 00336824 38 00 00 00 */ li r0, 0
+/* 8033ABC8 00336828 54 B7 08 3A */ rlwinm r23, r5, 1, 0, 0x1d
+/* 8033ABCC 0033682C 54 B8 10 3A */ slwi r24, r5, 2
+/* 8033ABD0 00336830 54 BF F8 7E */ srwi r31, r5, 1
+/* 8033ABD4 00336834 7F 24 BA 14 */ add r25, r4, r23
+/* 8033ABD8 00336838 7F 43 BA 14 */ add r26, r3, r23
+/* 8033ABDC 0033683C 90 01 02 10 */ stw r0, 0x210(r1)
+/* 8033ABE0 00336840 7F 43 D3 78 */ mr r3, r26
+/* 8033ABE4 00336844 7F 24 CB 78 */ mr r4, r25
+/* 8033ABE8 00336848 7F E5 FB 78 */ mr r5, r31
+/* 8033ABEC 0033684C 90 01 01 0C */ stw r0, 0x10c(r1)
+/* 8033ABF0 00336850 7C C6 C2 14 */ add r6, r6, r24
+/* 8033ABF4 00336854 7D 1B 40 50 */ subf r8, r27, r8
+/* 8033ABF8 00336858 90 01 00 08 */ stw r0, 8(r1)
+/* 8033ABFC 0033685C 4B FF FF 75 */ bl gsiLargeIntKMult
+/* 8033AC00 00336860 7E A3 AB 78 */ mr r3, r21
+/* 8033AC04 00336864 7E C4 B3 78 */ mr r4, r22
+/* 8033AC08 00336868 7F E5 FB 78 */ mr r5, r31
+/* 8033AC0C 0033686C 7F 86 E3 78 */ mr r6, r28
+/* 8033AC10 00336870 7F A7 EB 78 */ mr r7, r29
+/* 8033AC14 00336874 7F C8 F3 78 */ mr r8, r30
+/* 8033AC18 00336878 4B FF FF 59 */ bl gsiLargeIntKMult
+/* 8033AC1C 0033687C 7F 43 D3 78 */ mr r3, r26
+/* 8033AC20 00336880 7F E4 FB 78 */ mr r4, r31
+/* 8033AC24 00336884 7E A5 AB 78 */ mr r5, r21
+/* 8033AC28 00336888 7F E6 FB 78 */ mr r6, r31
+/* 8033AC2C 0033688C 38 E1 02 14 */ addi r7, r1, 0x214
+/* 8033AC30 00336890 39 01 02 10 */ addi r8, r1, 0x210
+/* 8033AC34 00336894 39 20 00 40 */ li r9, 0x40
+/* 8033AC38 00336898 4B FF ED 89 */ bl gsiLargeIntAdd
+/* 8033AC3C 0033689C 7F 23 CB 78 */ mr r3, r25
+/* 8033AC40 003368A0 7F E4 FB 78 */ mr r4, r31
+/* 8033AC44 003368A4 7E C5 B3 78 */ mr r5, r22
+/* 8033AC48 003368A8 7F E6 FB 78 */ mr r6, r31
+/* 8033AC4C 003368AC 38 E1 01 10 */ addi r7, r1, 0x110
+/* 8033AC50 003368B0 39 01 01 0C */ addi r8, r1, 0x10c
+/* 8033AC54 003368B4 39 20 00 40 */ li r9, 0x40
+/* 8033AC58 003368B8 4B FF ED 69 */ bl gsiLargeIntAdd
+/* 8033AC5C 003368BC 38 61 00 08 */ addi r3, r1, 8
+/* 8033AC60 003368C0 38 80 00 00 */ li r4, 0
+/* 8033AC64 003368C4 38 A0 01 04 */ li r5, 0x104
+/* 8033AC68 003368C8 4B CC 94 9D */ bl memset
+/* 8033AC6C 003368CC 80 81 02 10 */ lwz r4, 0x210(r1)
+/* 8033AC70 003368D0 7C 04 F8 40 */ cmplw r4, r31
+/* 8033AC74 003368D4 41 81 00 10 */ bgt lbl_8033AC84
+/* 8033AC78 003368D8 80 01 01 0C */ lwz r0, 0x10c(r1)
+/* 8033AC7C 003368DC 7C 00 F8 40 */ cmplw r0, r31
+/* 8033AC80 003368E0 40 81 00 28 */ ble lbl_8033ACA8
+lbl_8033AC84:
+/* 8033AC84 003368E4 38 E1 00 0C */ addi r7, r1, 0xc
+/* 8033AC88 003368E8 80 C1 01 0C */ lwz r6, 0x10c(r1)
+/* 8033AC8C 003368EC 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033AC90 003368F0 38 A1 01 10 */ addi r5, r1, 0x110
+/* 8033AC94 003368F4 7C E7 BA 14 */ add r7, r7, r23
+/* 8033AC98 003368F8 39 01 00 08 */ addi r8, r1, 8
+/* 8033AC9C 003368FC 21 3F 00 40 */ subfic r9, r31, 0x40
+/* 8033ACA0 00336900 4B FF F2 F5 */ bl gsiLargeIntMult
+/* 8033ACA4 00336904 48 00 00 5C */ b lbl_8033AD00
+lbl_8033ACA8:
+/* 8033ACA8 00336908 7F A5 EB 78 */ mr r5, r29
+/* 8033ACAC 0033690C 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033ACB0 00336910 38 81 01 0C */ addi r4, r1, 0x10c
+/* 8033ACB4 00336914 4B FF EB B5 */ bl gsiLargeIntSizePower2
+/* 8033ACB8 00336918 2C 03 00 00 */ cmpwi r3, 0
+/* 8033ACBC 0033691C 40 82 00 0C */ bne lbl_8033ACC8
+/* 8033ACC0 00336920 38 60 00 00 */ li r3, 0
+/* 8033ACC4 00336924 48 00 01 0C */ b lbl_8033ADD0
+lbl_8033ACC8:
+/* 8033ACC8 00336928 80 9D 00 00 */ lwz r4, 0(r29)
+/* 8033ACCC 0033692C 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033ACD0 00336930 4B FF EA E1 */ bl gsiLargeIntResize
+/* 8033ACD4 00336934 80 9D 00 00 */ lwz r4, 0(r29)
+/* 8033ACD8 00336938 38 61 01 0C */ addi r3, r1, 0x10c
+/* 8033ACDC 0033693C 4B FF EA D5 */ bl gsiLargeIntResize
+/* 8033ACE0 00336940 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8033ACE4 00336944 80 BD 00 00 */ lwz r5, 0(r29)
+/* 8033ACE8 00336948 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033ACEC 0033694C 38 81 01 10 */ addi r4, r1, 0x110
+/* 8033ACF0 00336950 7C C6 BA 14 */ add r6, r6, r23
+/* 8033ACF4 00336954 38 E1 00 08 */ addi r7, r1, 8
+/* 8033ACF8 00336958 21 1F 00 40 */ subfic r8, r31, 0x40
+/* 8033ACFC 0033695C 4B FF FE 75 */ bl gsiLargeIntKMult
+lbl_8033AD00:
+/* 8033AD00 00336960 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033AD04 00336964 7E E5 BB 78 */ mr r5, r23
+/* 8033AD08 00336968 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033AD0C 0033696C 38 80 00 00 */ li r4, 0
+/* 8033AD10 00336970 7C 00 FA 14 */ add r0, r0, r31
+/* 8033AD14 00336974 90 01 00 08 */ stw r0, 8(r1)
+/* 8033AD18 00336978 4B CC 93 ED */ bl memset
+/* 8033AD1C 0033697C 3B 21 00 0C */ addi r25, r1, 0xc
+/* 8033AD20 00336980 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033AD24 00336984 7F 3A CB 78 */ mr r26, r25
+/* 8033AD28 00336988 7F 64 DB 78 */ mr r4, r27
+/* 8033AD2C 0033698C 7F 39 BA 14 */ add r25, r25, r23
+/* 8033AD30 00336990 7C 7C C2 14 */ add r3, r28, r24
+/* 8033AD34 00336994 7F 5A BA 14 */ add r26, r26, r23
+/* 8033AD38 00336998 7C DF 00 50 */ subf r6, r31, r0
+/* 8033AD3C 0033699C 7F 45 D3 78 */ mr r5, r26
+/* 8033AD40 003369A0 7F 27 CB 78 */ mr r7, r25
+/* 8033AD44 003369A4 39 01 00 08 */ addi r8, r1, 8
+/* 8033AD48 003369A8 4B FF EF 01 */ bl gsiLargeIntSub
+/* 8033AD4C 003369AC 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033AD50 003369B0 7F 83 E3 78 */ mr r3, r28
+/* 8033AD54 003369B4 7F 64 DB 78 */ mr r4, r27
+/* 8033AD58 003369B8 7F 45 D3 78 */ mr r5, r26
+/* 8033AD5C 003369BC 7C 00 FA 14 */ add r0, r0, r31
+/* 8033AD60 003369C0 7F 27 CB 78 */ mr r7, r25
+/* 8033AD64 003369C4 90 01 00 08 */ stw r0, 8(r1)
+/* 8033AD68 003369C8 7C DF 00 50 */ subf r6, r31, r0
+/* 8033AD6C 003369CC 39 01 00 08 */ addi r8, r1, 8
+/* 8033AD70 003369D0 4B FF EE D9 */ bl gsiLargeIntSub
+/* 8033AD74 003369D4 80 01 00 08 */ lwz r0, 8(r1)
+/* 8033AD78 003369D8 7F 83 E3 78 */ mr r3, r28
+/* 8033AD7C 003369DC 7F 87 E3 78 */ mr r7, r28
+/* 8033AD80 003369E0 7F A8 EB 78 */ mr r8, r29
+/* 8033AD84 003369E4 7C C0 FA 14 */ add r6, r0, r31
+/* 8033AD88 003369E8 7F C9 F3 78 */ mr r9, r30
+/* 8033AD8C 003369EC 90 C1 00 08 */ stw r6, 8(r1)
+/* 8033AD90 003369F0 57 64 08 3C */ slwi r4, r27, 1
+/* 8033AD94 003369F4 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8033AD98 003369F8 4B FF EC 29 */ bl gsiLargeIntAdd
+/* 8033AD9C 003369FC 48 00 00 10 */ b lbl_8033ADAC
+lbl_8033ADA0:
+/* 8033ADA0 00336A00 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8033ADA4 00336A04 38 03 FF FF */ addi r0, r3, -1
+/* 8033ADA8 00336A08 90 1D 00 00 */ stw r0, 0(r29)
+lbl_8033ADAC:
+/* 8033ADAC 00336A0C 80 1D 00 00 */ lwz r0, 0(r29)
+/* 8033ADB0 00336A10 2C 00 00 00 */ cmpwi r0, 0
+/* 8033ADB4 00336A14 41 82 00 18 */ beq lbl_8033ADCC
+/* 8033ADB8 00336A18 54 00 10 3A */ slwi r0, r0, 2
+/* 8033ADBC 00336A1C 7C 7C 02 14 */ add r3, r28, r0
+/* 8033ADC0 00336A20 80 03 FF FC */ lwz r0, -4(r3)
+/* 8033ADC4 00336A24 2C 00 00 00 */ cmpwi r0, 0
+/* 8033ADC8 00336A28 41 82 FF D8 */ beq lbl_8033ADA0
+lbl_8033ADCC:
+/* 8033ADCC 00336A2C 38 60 00 01 */ li r3, 1
+lbl_8033ADD0:
+/* 8033ADD0 00336A30 39 61 03 50 */ addi r11, r1, 0x350
+/* 8033ADD4 00336A34 4B E8 C3 89 */ bl _restgpr_21
+/* 8033ADD8 00336A38 80 01 03 54 */ lwz r0, 0x354(r1)
+/* 8033ADDC 00336A3C 7C 08 03 A6 */ mtlr r0
+/* 8033ADE0 00336A40 38 21 03 50 */ addi r1, r1, 0x350
+/* 8033ADE4 00336A44 4E 80 00 20 */ blr
+
+.global gsLargeIntSquareMod
+gsLargeIntSquareMod:
+/* 8033ADE8 00336A48 94 21 FB B0 */ stwu r1, -0x450(r1)
+/* 8033ADEC 00336A4C 7C 08 02 A6 */ mflr r0
+/* 8033ADF0 00336A50 90 01 04 54 */ stw r0, 0x454(r1)
+/* 8033ADF4 00336A54 39 61 04 50 */ addi r11, r1, 0x450
+/* 8033ADF8 00336A58 4B E8 C3 0D */ bl _savegpr_18
+/* 8033ADFC 00336A5C 3E 40 80 61 */ lis r18, lbl_80610BD0@ha
+/* 8033AE00 00336A60 3B 40 00 00 */ li r26, 0
+/* 8033AE04 00336A64 3A 52 0B D0 */ addi r18, r18, lbl_80610BD0@l
+/* 8033AE08 00336A68 93 41 00 08 */ stw r26, 8(r1)
+/* 8033AE0C 00336A6C 80 12 00 7C */ lwz r0, 0x7c(r18)
+/* 8033AE10 00336A70 7C 7C 1B 78 */ mr r28, r3
+/* 8033AE14 00336A74 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8033AE18 00336A78 7C 9D 23 78 */ mr r29, r4
+/* 8033AE1C 00336A7C 2C 00 00 00 */ cmpwi r0, 0
+/* 8033AE20 00336A80 7C BE 2B 78 */ mr r30, r5
+/* 8033AE24 00336A84 3B 60 00 00 */ li r27, 0
+/* 8033AE28 00336A88 3B 20 00 00 */ li r25, 0
+/* 8033AE2C 00336A8C 40 82 00 20 */ bne lbl_8033AE4C
+/* 8033AE30 00336A90 80 72 00 78 */ lwz r3, 0x78(r18)
+/* 8033AE34 00336A94 38 03 00 01 */ addi r0, r3, 1
+/* 8033AE38 00336A98 90 12 00 78 */ stw r0, 0x78(r18)
+/* 8033AE3C 00336A9C 4B FF E1 E5 */ bl current_time_hires
+/* 8033AE40 00336AA0 38 00 00 01 */ li r0, 1
+/* 8033AE44 00336AA4 90 72 00 70 */ stw r3, 0x70(r18)
+/* 8033AE48 00336AA8 90 12 00 7C */ stw r0, 0x7c(r18)
+lbl_8033AE4C:
+/* 8033AE4C 00336AAC 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033AE50 00336AB0 38 80 00 00 */ li r4, 0
+/* 8033AE54 00336AB4 38 A0 02 00 */ li r5, 0x200
+/* 8033AE58 00336AB8 4B CC 92 AD */ bl memset
+/* 8033AE5C 00336ABC 38 61 00 10 */ addi r3, r1, 0x10
+/* 8033AE60 00336AC0 38 80 00 00 */ li r4, 0
+/* 8033AE64 00336AC4 38 A0 02 00 */ li r5, 0x200
+/* 8033AE68 00336AC8 4B CC 92 9D */ bl memset
+/* 8033AE6C 00336ACC 38 DC 00 04 */ addi r6, r28, 4
+/* 8033AE70 00336AD0 38 61 00 10 */ addi r3, r1, 0x10
+/* 8033AE74 00336AD4 39 20 00 01 */ li r9, 1
+/* 8033AE78 00336AD8 39 60 00 04 */ li r11, 4
+/* 8033AE7C 00336ADC 38 00 00 00 */ li r0, 0
+/* 8033AE80 00336AE0 3C A0 80 00 */ lis r5, 0x8000
+/* 8033AE84 00336AE4 48 00 02 10 */ b lbl_8033B094
+lbl_8033AE88:
+/* 8033AE88 00336AE8 2C 89 00 00 */ cmpwi cr1, r9, 0
+/* 8033AE8C 00336AEC 39 40 00 00 */ li r10, 0
+/* 8033AE90 00336AF0 40 85 01 DC */ ble cr1, lbl_8033B06C
+/* 8033AE94 00336AF4 2C 09 00 08 */ cmpwi r9, 8
+/* 8033AE98 00336AF8 39 89 FF F8 */ addi r12, r9, -8
+/* 8033AE9C 00336AFC 40 81 01 78 */ ble lbl_8033B014
+/* 8033AEA0 00336B00 38 E0 00 00 */ li r7, 0
+/* 8033AEA4 00336B04 41 84 00 14 */ blt cr1, lbl_8033AEB8
+/* 8033AEA8 00336B08 38 85 FF FE */ addi r4, r5, -2
+/* 8033AEAC 00336B0C 7C 09 20 00 */ cmpw r9, r4
+/* 8033AEB0 00336B10 41 81 00 08 */ bgt lbl_8033AEB8
+/* 8033AEB4 00336B14 38 E0 00 01 */ li r7, 1
+lbl_8033AEB8:
+/* 8033AEB8 00336B18 2C 07 00 00 */ cmpwi r7, 0
+/* 8033AEBC 00336B1C 41 82 01 58 */ beq lbl_8033B014
+/* 8033AEC0 00336B20 38 8C 00 07 */ addi r4, r12, 7
+/* 8033AEC4 00336B24 39 01 00 10 */ addi r8, r1, 0x10
+/* 8033AEC8 00336B28 54 84 E8 FE */ srwi r4, r4, 3
+/* 8033AECC 00336B2C 7F 87 E3 78 */ mr r7, r28
+/* 8033AED0 00336B30 7D 08 5A 14 */ add r8, r8, r11
+/* 8033AED4 00336B34 7C 89 03 A6 */ mtctr r4
+/* 8033AED8 00336B38 2C 0C 00 00 */ cmpwi r12, 0
+/* 8033AEDC 00336B3C 40 81 01 38 */ ble lbl_8033B014
+lbl_8033AEE0:
+/* 8033AEE0 00336B40 80 86 00 04 */ lwz r4, 4(r6)
+/* 8033AEE4 00336B44 39 4A 00 08 */ addi r10, r10, 8
+/* 8033AEE8 00336B48 82 47 00 04 */ lwz r18, 4(r7)
+/* 8033AEEC 00336B4C 82 A8 00 00 */ lwz r21, 0(r8)
+/* 8033AEF0 00336B50 7D 84 91 D6 */ mullw r12, r4, r18
+/* 8033AEF4 00336B54 82 67 00 08 */ lwz r19, 8(r7)
+/* 8033AEF8 00336B58 7E FA A8 14 */ addc r23, r26, r21
+/* 8033AEFC 00336B5C 82 87 00 0C */ lwz r20, 0xc(r7)
+/* 8033AF00 00336B60 7F 7B 01 94 */ addze r27, r27
+/* 8033AF04 00336B64 82 A7 00 10 */ lwz r21, 0x10(r7)
+/* 8033AF08 00336B68 7D 97 60 14 */ addc r12, r23, r12
+/* 8033AF0C 00336B6C 82 C7 00 14 */ lwz r22, 0x14(r7)
+/* 8033AF10 00336B70 7E 44 90 16 */ mulhwu r18, r4, r18
+/* 8033AF14 00336B74 91 88 00 00 */ stw r12, 0(r8)
+/* 8033AF18 00336B78 83 47 00 18 */ lwz r26, 0x18(r7)
+/* 8033AF1C 00336B7C 81 88 00 04 */ lwz r12, 4(r8)
+/* 8033AF20 00336B80 83 07 00 1C */ lwz r24, 0x1c(r7)
+/* 8033AF24 00336B84 86 E7 00 20 */ lwzu r23, 0x20(r7)
+/* 8033AF28 00336B88 7E 5B 91 14 */ adde r18, r27, r18
+/* 8033AF2C 00336B8C 7F 72 60 14 */ addc r27, r18, r12
+/* 8033AF30 00336B90 7D 84 99 D6 */ mullw r12, r4, r19
+/* 8033AF34 00336B94 7E 40 01 94 */ addze r18, r0
+/* 8033AF38 00336B98 7D 9B 60 14 */ addc r12, r27, r12
+/* 8033AF3C 00336B9C 7F 64 98 16 */ mulhwu r27, r4, r19
+/* 8033AF40 00336BA0 91 88 00 04 */ stw r12, 4(r8)
+/* 8033AF44 00336BA4 82 68 00 08 */ lwz r19, 8(r8)
+/* 8033AF48 00336BA8 7D 84 A1 D6 */ mullw r12, r4, r20
+/* 8033AF4C 00336BAC 7F 72 D9 14 */ adde r27, r18, r27
+/* 8033AF50 00336BB0 7F 7B 98 14 */ addc r27, r27, r19
+/* 8033AF54 00336BB4 7E 60 01 94 */ addze r19, r0
+/* 8033AF58 00336BB8 7D 9B 60 14 */ addc r12, r27, r12
+/* 8033AF5C 00336BBC 7F 64 A0 16 */ mulhwu r27, r4, r20
+/* 8033AF60 00336BC0 91 88 00 08 */ stw r12, 8(r8)
+/* 8033AF64 00336BC4 82 88 00 0C */ lwz r20, 0xc(r8)
+/* 8033AF68 00336BC8 7D 84 A9 D6 */ mullw r12, r4, r21
+/* 8033AF6C 00336BCC 7F 73 D9 14 */ adde r27, r19, r27
+/* 8033AF70 00336BD0 7F 7B A0 14 */ addc r27, r27, r20
+/* 8033AF74 00336BD4 7E 80 01 94 */ addze r20, r0
+/* 8033AF78 00336BD8 7D 9B 60 14 */ addc r12, r27, r12
+/* 8033AF7C 00336BDC 7F 64 A8 16 */ mulhwu r27, r4, r21
+/* 8033AF80 00336BE0 91 88 00 0C */ stw r12, 0xc(r8)
+/* 8033AF84 00336BE4 82 A8 00 10 */ lwz r21, 0x10(r8)
+/* 8033AF88 00336BE8 7D 84 B1 D6 */ mullw r12, r4, r22
+/* 8033AF8C 00336BEC 7F 74 D9 14 */ adde r27, r20, r27
+/* 8033AF90 00336BF0 7F 7B A8 14 */ addc r27, r27, r21
+/* 8033AF94 00336BF4 7E A0 01 94 */ addze r21, r0
+/* 8033AF98 00336BF8 7D 9B 60 14 */ addc r12, r27, r12
+/* 8033AF9C 00336BFC 7F 64 B0 16 */ mulhwu r27, r4, r22
+/* 8033AFA0 00336C00 91 88 00 10 */ stw r12, 0x10(r8)
+/* 8033AFA4 00336C04 82 C8 00 14 */ lwz r22, 0x14(r8)
+/* 8033AFA8 00336C08 7D 84 D1 D6 */ mullw r12, r4, r26
+/* 8033AFAC 00336C0C 7F 75 D9 14 */ adde r27, r21, r27
+/* 8033AFB0 00336C10 7F 7B B0 14 */ addc r27, r27, r22
+/* 8033AFB4 00336C14 7E C0 01 94 */ addze r22, r0
+/* 8033AFB8 00336C18 7D 9B 60 14 */ addc r12, r27, r12
+/* 8033AFBC 00336C1C 7F 64 D0 16 */ mulhwu r27, r4, r26
+/* 8033AFC0 00336C20 91 88 00 14 */ stw r12, 0x14(r8)
+/* 8033AFC4 00336C24 83 48 00 18 */ lwz r26, 0x18(r8)
+/* 8033AFC8 00336C28 7D 84 C1 D6 */ mullw r12, r4, r24
+/* 8033AFCC 00336C2C 7F 76 D9 14 */ adde r27, r22, r27
+/* 8033AFD0 00336C30 7F 5B D0 14 */ addc r26, r27, r26
+/* 8033AFD4 00336C34 7F 60 01 94 */ addze r27, r0
+/* 8033AFD8 00336C38 7D 9A 60 14 */ addc r12, r26, r12
+/* 8033AFDC 00336C3C 7F 44 C0 16 */ mulhwu r26, r4, r24
+/* 8033AFE0 00336C40 91 88 00 18 */ stw r12, 0x18(r8)
+/* 8033AFE4 00336C44 83 08 00 1C */ lwz r24, 0x1c(r8)
+/* 8033AFE8 00336C48 7D 84 B9 D6 */ mullw r12, r4, r23
+/* 8033AFEC 00336C4C 7F 7B D1 14 */ adde r27, r27, r26
+/* 8033AFF0 00336C50 7F 5B C0 14 */ addc r26, r27, r24
+/* 8033AFF4 00336C54 7F 00 01 94 */ addze r24, r0
+/* 8033AFF8 00336C58 7D 9A 60 14 */ addc r12, r26, r12
+/* 8033AFFC 00336C5C 3B 60 00 00 */ li r27, 0
+/* 8033B000 00336C60 7C 84 B8 16 */ mulhwu r4, r4, r23
+/* 8033B004 00336C64 91 88 00 1C */ stw r12, 0x1c(r8)
+/* 8033B008 00336C68 39 08 00 20 */ addi r8, r8, 0x20
+/* 8033B00C 00336C6C 7F 58 21 14 */ adde r26, r24, r4
+/* 8033B010 00336C70 42 00 FE D0 */ bdnz lbl_8033AEE0
+lbl_8033B014:
+/* 8033B014 00336C74 55 48 10 3A */ slwi r8, r10, 2
+/* 8033B018 00336C78 7C 8A 48 50 */ subf r4, r10, r9
+/* 8033B01C 00336C7C 7C E8 5A 14 */ add r7, r8, r11
+/* 8033B020 00336C80 7E 5C 42 14 */ add r18, r28, r8
+/* 8033B024 00336C84 7E 63 3A 14 */ add r19, r3, r7
+/* 8033B028 00336C88 7C 89 03 A6 */ mtctr r4
+/* 8033B02C 00336C8C 7C 0A 48 00 */ cmpw r10, r9
+/* 8033B030 00336C90 40 80 00 3C */ bge lbl_8033B06C
+lbl_8033B034:
+/* 8033B034 00336C94 84 F2 00 04 */ lwzu r7, 4(r18)
+/* 8033B038 00336C98 39 4A 00 01 */ addi r10, r10, 1
+/* 8033B03C 00336C9C 81 06 00 04 */ lwz r8, 4(r6)
+/* 8033B040 00336CA0 81 93 00 00 */ lwz r12, 0(r19)
+/* 8033B044 00336CA4 7C 88 39 D6 */ mullw r4, r8, r7
+/* 8033B048 00336CA8 7E FA 60 14 */ addc r23, r26, r12
+/* 8033B04C 00336CAC 7D 9B 01 94 */ addze r12, r27
+/* 8033B050 00336CB0 3B 60 00 00 */ li r27, 0
+/* 8033B054 00336CB4 7C 97 20 14 */ addc r4, r23, r4
+/* 8033B058 00336CB8 7C E8 38 16 */ mulhwu r7, r8, r7
+/* 8033B05C 00336CBC 90 93 00 00 */ stw r4, 0(r19)
+/* 8033B060 00336CC0 3A 73 00 04 */ addi r19, r19, 4
+/* 8033B064 00336CC4 7F 4C 39 14 */ adde r26, r12, r7
+/* 8033B068 00336CC8 42 00 FF CC */ bdnz lbl_8033B034
+lbl_8033B06C:
+/* 8033B06C 00336CCC 7F 44 DB 79 */ or. r4, r26, r27
+/* 8033B070 00336CD0 41 82 00 18 */ beq lbl_8033B088
+/* 8033B074 00336CD4 7C 89 52 14 */ add r4, r9, r10
+/* 8033B078 00336CD8 54 84 10 3A */ slwi r4, r4, 2
+/* 8033B07C 00336CDC 7F 43 21 2E */ stwx r26, r3, r4
+/* 8033B080 00336CE0 7F 7A DB 78 */ mr r26, r27
+/* 8033B084 00336CE4 3B 60 00 00 */ li r27, 0
+lbl_8033B088:
+/* 8033B088 00336CE8 38 C6 00 04 */ addi r6, r6, 4
+/* 8033B08C 00336CEC 39 29 00 01 */ addi r9, r9, 1
+/* 8033B090 00336CF0 39 6B 00 04 */ addi r11, r11, 4
+lbl_8033B094:
+/* 8033B094 00336CF4 7C 09 F8 00 */ cmpw r9, r31
+/* 8033B098 00336CF8 41 80 FD F0 */ blt lbl_8033AE88
+/* 8033B09C 00336CFC 57 E5 08 3D */ rlwinm. r5, r31, 1, 0, 0x1e
+/* 8033B0A0 00336D00 38 81 00 10 */ addi r4, r1, 0x10
+/* 8033B0A4 00336D04 40 81 01 04 */ ble lbl_8033B1A8
+/* 8033B0A8 00336D08 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f
+/* 8033B0AC 00336D0C 7C 09 03 A6 */ mtctr r0
+/* 8033B0B0 00336D10 41 82 00 D4 */ beq lbl_8033B184
+lbl_8033B0B4:
+/* 8033B0B4 00336D14 80 64 00 00 */ lwz r3, 0(r4)
+/* 8033B0B8 00336D18 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B0BC 00336D1C 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B0C0 00336D20 7C 19 02 14 */ add r0, r25, r0
+/* 8033B0C4 00336D24 90 04 00 00 */ stw r0, 0(r4)
+/* 8033B0C8 00336D28 7C 79 1B 78 */ mr r25, r3
+/* 8033B0CC 00336D2C 80 64 00 04 */ lwz r3, 4(r4)
+/* 8033B0D0 00336D30 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B0D4 00336D34 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B0D8 00336D38 7C 19 02 14 */ add r0, r25, r0
+/* 8033B0DC 00336D3C 90 04 00 04 */ stw r0, 4(r4)
+/* 8033B0E0 00336D40 7C 79 1B 78 */ mr r25, r3
+/* 8033B0E4 00336D44 80 64 00 08 */ lwz r3, 8(r4)
+/* 8033B0E8 00336D48 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B0EC 00336D4C 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B0F0 00336D50 7C 19 02 14 */ add r0, r25, r0
+/* 8033B0F4 00336D54 90 04 00 08 */ stw r0, 8(r4)
+/* 8033B0F8 00336D58 7C 79 1B 78 */ mr r25, r3
+/* 8033B0FC 00336D5C 80 64 00 0C */ lwz r3, 0xc(r4)
+/* 8033B100 00336D60 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B104 00336D64 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B108 00336D68 7C 19 02 14 */ add r0, r25, r0
+/* 8033B10C 00336D6C 90 04 00 0C */ stw r0, 0xc(r4)
+/* 8033B110 00336D70 7C 79 1B 78 */ mr r25, r3
+/* 8033B114 00336D74 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 8033B118 00336D78 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B11C 00336D7C 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B120 00336D80 7C 19 02 14 */ add r0, r25, r0
+/* 8033B124 00336D84 90 04 00 10 */ stw r0, 0x10(r4)
+/* 8033B128 00336D88 7C 79 1B 78 */ mr r25, r3
+/* 8033B12C 00336D8C 80 64 00 14 */ lwz r3, 0x14(r4)
+/* 8033B130 00336D90 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B134 00336D94 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B138 00336D98 7C 19 02 14 */ add r0, r25, r0
+/* 8033B13C 00336D9C 90 04 00 14 */ stw r0, 0x14(r4)
+/* 8033B140 00336DA0 7C 79 1B 78 */ mr r25, r3
+/* 8033B144 00336DA4 80 64 00 18 */ lwz r3, 0x18(r4)
+/* 8033B148 00336DA8 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B14C 00336DAC 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B150 00336DB0 7C 19 02 14 */ add r0, r25, r0
+/* 8033B154 00336DB4 90 04 00 18 */ stw r0, 0x18(r4)
+/* 8033B158 00336DB8 7C 79 1B 78 */ mr r25, r3
+/* 8033B15C 00336DBC 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 8033B160 00336DC0 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B164 00336DC4 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B168 00336DC8 7C 19 02 14 */ add r0, r25, r0
+/* 8033B16C 00336DCC 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 8033B170 00336DD0 7C 79 1B 78 */ mr r25, r3
+/* 8033B174 00336DD4 38 84 00 20 */ addi r4, r4, 0x20
+/* 8033B178 00336DD8 42 00 FF 3C */ bdnz lbl_8033B0B4
+/* 8033B17C 00336DDC 70 A5 00 07 */ andi. r5, r5, 7
+/* 8033B180 00336DE0 41 82 00 28 */ beq lbl_8033B1A8
+lbl_8033B184:
+/* 8033B184 00336DE4 7C A9 03 A6 */ mtctr r5
+lbl_8033B188:
+/* 8033B188 00336DE8 80 64 00 00 */ lwz r3, 0(r4)
+/* 8033B18C 00336DEC 54 60 08 3C */ slwi r0, r3, 1
+/* 8033B190 00336DF0 54 63 0F FE */ srwi r3, r3, 0x1f
+/* 8033B194 00336DF4 7C 19 02 14 */ add r0, r25, r0
+/* 8033B198 00336DF8 90 04 00 00 */ stw r0, 0(r4)
+/* 8033B19C 00336DFC 7C 79 1B 78 */ mr r25, r3
+/* 8033B1A0 00336E00 38 84 00 04 */ addi r4, r4, 4
+/* 8033B1A4 00336E04 42 00 FF E4 */ bdnz lbl_8033B188
+lbl_8033B1A8:
+/* 8033B1A8 00336E08 2C 9F 00 00 */ cmpwi cr1, r31, 0
+/* 8033B1AC 00336E0C 39 60 00 00 */ li r11, 0
+/* 8033B1B0 00336E10 40 85 01 A8 */ ble cr1, lbl_8033B358
+/* 8033B1B4 00336E14 2C 1F 00 08 */ cmpwi r31, 8
+/* 8033B1B8 00336E18 38 9F FF F8 */ addi r4, r31, -8
+/* 8033B1BC 00336E1C 40 81 01 60 */ ble lbl_8033B31C
+/* 8033B1C0 00336E20 38 A0 00 00 */ li r5, 0
+/* 8033B1C4 00336E24 41 84 00 18 */ blt cr1, lbl_8033B1DC
+/* 8033B1C8 00336E28 3C 60 80 00 */ lis r3, 0x7FFFFFFE@ha
+/* 8033B1CC 00336E2C 38 03 FF FE */ addi r0, r3, 0x7FFFFFFE@l
+/* 8033B1D0 00336E30 7C 1F 00 00 */ cmpw r31, r0
+/* 8033B1D4 00336E34 41 81 00 08 */ bgt lbl_8033B1DC
+/* 8033B1D8 00336E38 38 A0 00 01 */ li r5, 1
+lbl_8033B1DC:
+/* 8033B1DC 00336E3C 2C 05 00 00 */ cmpwi r5, 0
+/* 8033B1E0 00336E40 41 82 01 3C */ beq lbl_8033B31C
+/* 8033B1E4 00336E44 38 04 00 07 */ addi r0, r4, 7
+/* 8033B1E8 00336E48 7F 83 E3 78 */ mr r3, r28
+/* 8033B1EC 00336E4C 54 00 E8 FE */ srwi r0, r0, 3
+/* 8033B1F0 00336E50 39 80 00 00 */ li r12, 0
+/* 8033B1F4 00336E54 7C 09 03 A6 */ mtctr r0
+/* 8033B1F8 00336E58 2C 04 00 00 */ cmpwi r4, 0
+/* 8033B1FC 00336E5C 40 81 01 20 */ ble lbl_8033B31C
+lbl_8033B200:
+/* 8033B200 00336E60 81 23 00 04 */ lwz r9, 4(r3)
+/* 8033B204 00336E64 38 CB 00 01 */ addi r6, r11, 1
+/* 8033B208 00336E68 82 43 00 08 */ lwz r18, 8(r3)
+/* 8033B20C 00336E6C 38 8B 00 02 */ addi r4, r11, 2
+/* 8033B210 00336E70 7D 09 49 D6 */ mullw r8, r9, r9
+/* 8033B214 00336E74 39 41 02 10 */ addi r10, r1, 0x210
+/* 8033B218 00336E78 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 8033B21C 00336E7C 3B 0B 00 04 */ addi r24, r11, 4
+/* 8033B220 00336E80 54 99 18 38 */ slwi r25, r4, 3
+/* 8033B224 00336E84 80 A3 00 10 */ lwz r5, 0x10(r3)
+/* 8033B228 00336E88 7D 0A 61 6E */ stwux r8, r10, r12
+/* 8033B22C 00336E8C 7E 89 48 16 */ mulhwu r20, r9, r9
+/* 8033B230 00336E90 54 C6 18 38 */ slwi r6, r6, 3
+/* 8033B234 00336E94 80 E3 00 14 */ lwz r7, 0x14(r3)
+/* 8033B238 00336E98 3A 61 02 10 */ addi r19, r1, 0x210
+/* 8033B23C 00336E9C 81 03 00 18 */ lwz r8, 0x18(r3)
+/* 8033B240 00336EA0 38 81 02 10 */ addi r4, r1, 0x210
+/* 8033B244 00336EA4 7E F2 91 D6 */ mullw r23, r18, r18
+/* 8033B248 00336EA8 7E 73 32 14 */ add r19, r19, r6
+/* 8033B24C 00336EAC 92 8A 00 04 */ stw r20, 4(r10)
+/* 8033B250 00336EB0 57 18 18 38 */ slwi r24, r24, 3
+/* 8033B254 00336EB4 7C 84 CA 14 */ add r4, r4, r25
+/* 8033B258 00336EB8 81 23 00 1C */ lwz r9, 0x1c(r3)
+/* 8033B25C 00336EBC 92 F3 00 00 */ stw r23, 0(r19)
+/* 8033B260 00336EC0 7E 52 90 16 */ mulhwu r18, r18, r18
+/* 8033B264 00336EC4 38 CB 00 03 */ addi r6, r11, 3
+/* 8033B268 00336EC8 85 43 00 20 */ lwzu r10, 0x20(r3)
+/* 8033B26C 00336ECC 3B 4B 00 06 */ addi r26, r11, 6
+/* 8033B270 00336ED0 54 D9 18 38 */ slwi r25, r6, 3
+/* 8033B274 00336ED4 38 C1 02 10 */ addi r6, r1, 0x210
+/* 8033B278 00336ED8 92 53 00 04 */ stw r18, 4(r19)
+/* 8033B27C 00336EDC 7E E0 01 D6 */ mullw r23, r0, r0
+/* 8033B280 00336EE0 3A 41 02 10 */ addi r18, r1, 0x210
+/* 8033B284 00336EE4 3A 61 02 10 */ addi r19, r1, 0x210
+/* 8033B288 00336EE8 7E 52 C2 14 */ add r18, r18, r24
+/* 8033B28C 00336EEC 7C C6 CA 14 */ add r6, r6, r25
+/* 8033B290 00336EF0 7E A0 00 16 */ mulhwu r21, r0, r0
+/* 8033B294 00336EF4 92 E4 00 00 */ stw r23, 0(r4)
+/* 8033B298 00336EF8 3B 6B 00 05 */ addi r27, r11, 5
+/* 8033B29C 00336EFC 3B 2B 00 07 */ addi r25, r11, 7
+/* 8033B2A0 00336F00 57 40 18 38 */ slwi r0, r26, 3
+/* 8033B2A4 00336F04 7E 74 9B 78 */ mr r20, r19
+/* 8033B2A8 00336F08 7F 05 29 D6 */ mullw r24, r5, r5
+/* 8033B2AC 00336F0C 92 A4 00 04 */ stw r21, 4(r4)
+/* 8033B2B0 00336F10 7E 94 02 14 */ add r20, r20, r0
+/* 8033B2B4 00336F14 57 20 18 38 */ slwi r0, r25, 3
+/* 8033B2B8 00336F18 38 81 02 10 */ addi r4, r1, 0x210
+/* 8033B2BC 00336F1C 57 7B 18 38 */ slwi r27, r27, 3
+/* 8033B2C0 00336F20 7C 84 02 14 */ add r4, r4, r0
+/* 8033B2C4 00336F24 93 06 00 00 */ stw r24, 0(r6)
+/* 8033B2C8 00336F28 7C A5 28 16 */ mulhwu r5, r5, r5
+/* 8033B2CC 00336F2C 39 8C 00 40 */ addi r12, r12, 0x40
+/* 8033B2D0 00336F30 39 6B 00 08 */ addi r11, r11, 8
+/* 8033B2D4 00336F34 7C 07 39 D6 */ mullw r0, r7, r7
+/* 8033B2D8 00336F38 90 A6 00 04 */ stw r5, 4(r6)
+/* 8033B2DC 00336F3C 90 12 00 00 */ stw r0, 0(r18)
+/* 8033B2E0 00336F40 7C A7 38 16 */ mulhwu r5, r7, r7
+/* 8033B2E4 00336F44 7C 08 41 D6 */ mullw r0, r8, r8
+/* 8033B2E8 00336F48 90 B2 00 04 */ stw r5, 4(r18)
+/* 8033B2EC 00336F4C 7C 13 D9 6E */ stwux r0, r19, r27
+/* 8033B2F0 00336F50 7C A8 40 16 */ mulhwu r5, r8, r8
+/* 8033B2F4 00336F54 7C 09 49 D6 */ mullw r0, r9, r9
+/* 8033B2F8 00336F58 90 B3 00 04 */ stw r5, 4(r19)
+/* 8033B2FC 00336F5C 90 14 00 00 */ stw r0, 0(r20)
+/* 8033B300 00336F60 7C A9 48 16 */ mulhwu r5, r9, r9
+/* 8033B304 00336F64 7C 0A 51 D6 */ mullw r0, r10, r10
+/* 8033B308 00336F68 90 B4 00 04 */ stw r5, 4(r20)
+/* 8033B30C 00336F6C 7C AA 50 16 */ mulhwu r5, r10, r10
+/* 8033B310 00336F70 90 04 00 00 */ stw r0, 0(r4)
+/* 8033B314 00336F74 90 A4 00 04 */ stw r5, 4(r4)
+/* 8033B318 00336F78 42 00 FE E8 */ bdnz lbl_8033B200
+lbl_8033B31C:
+/* 8033B31C 00336F7C 55 63 10 3A */ slwi r3, r11, 2
+/* 8033B320 00336F80 7C 0B F8 50 */ subf r0, r11, r31
+/* 8033B324 00336F84 7C 9C 1A 14 */ add r4, r28, r3
+/* 8033B328 00336F88 55 63 18 38 */ slwi r3, r11, 3
+/* 8033B32C 00336F8C 7C 09 03 A6 */ mtctr r0
+/* 8033B330 00336F90 7C 0B F8 00 */ cmpw r11, r31
+/* 8033B334 00336F94 40 80 00 24 */ bge lbl_8033B358
+lbl_8033B338:
+/* 8033B338 00336F98 84 A4 00 04 */ lwzu r5, 4(r4)
+/* 8033B33C 00336F9C 38 C1 02 10 */ addi r6, r1, 0x210
+/* 8033B340 00336FA0 7C 05 29 D6 */ mullw r0, r5, r5
+/* 8033B344 00336FA4 7C 06 19 6E */ stwux r0, r6, r3
+/* 8033B348 00336FA8 7C A5 28 16 */ mulhwu r5, r5, r5
+/* 8033B34C 00336FAC 38 63 00 08 */ addi r3, r3, 8
+/* 8033B350 00336FB0 90 A6 00 04 */ stw r5, 4(r6)
+/* 8033B354 00336FB4 42 00 FF E4 */ bdnz lbl_8033B338
+lbl_8033B358:
+/* 8033B358 00336FB8 57 E4 08 3C */ slwi r4, r31, 1
+/* 8033B35C 00336FBC 38 A1 02 10 */ addi r5, r1, 0x210
+/* 8033B360 00336FC0 90 81 00 08 */ stw r4, 8(r1)
+/* 8033B364 00336FC4 7C 86 23 78 */ mr r6, r4
+/* 8033B368 00336FC8 7C A7 2B 78 */ mr r7, r5
+/* 8033B36C 00336FCC 38 61 00 10 */ addi r3, r1, 0x10
+/* 8033B370 00336FD0 39 01 00 08 */ addi r8, r1, 8
+/* 8033B374 00336FD4 39 20 00 80 */ li r9, 0x80
+/* 8033B378 00336FD8 4B FF E6 49 */ bl gsiLargeIntAdd
+/* 8033B37C 00336FDC 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033B380 00336FE0 7F A5 EB 78 */ mr r5, r29
+/* 8033B384 00336FE4 7F C7 F3 78 */ mr r7, r30
+/* 8033B388 00336FE8 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033B38C 00336FEC 38 C0 00 00 */ li r6, 0
+/* 8033B390 00336FF0 4B FF EE 3D */ bl gsiLargeIntDiv
+/* 8033B394 00336FF4 3F 20 80 61 */ lis r25, lbl_80610BD0@ha
+/* 8033B398 00336FF8 7C 72 1B 78 */ mr r18, r3
+/* 8033B39C 00336FFC 3B 39 0B D0 */ addi r25, r25, lbl_80610BD0@l
+/* 8033B3A0 00337000 80 19 00 7C */ lwz r0, 0x7c(r25)
+/* 8033B3A4 00337004 28 00 00 01 */ cmplwi r0, 1
+/* 8033B3A8 00337008 40 82 00 24 */ bne lbl_8033B3CC
+/* 8033B3AC 0033700C 4B FF DC 75 */ bl current_time_hires
+/* 8033B3B0 00337010 80 B9 00 70 */ lwz r5, 0x70(r25)
+/* 8033B3B4 00337014 38 00 00 00 */ li r0, 0
+/* 8033B3B8 00337018 80 99 00 74 */ lwz r4, 0x74(r25)
+/* 8033B3BC 0033701C 7C 65 18 50 */ subf r3, r5, r3
+/* 8033B3C0 00337020 90 19 00 7C */ stw r0, 0x7c(r25)
+/* 8033B3C4 00337024 7C 04 1A 14 */ add r0, r4, r3
+/* 8033B3C8 00337028 90 19 00 74 */ stw r0, 0x74(r25)
+lbl_8033B3CC:
+/* 8033B3CC 0033702C 39 61 04 50 */ addi r11, r1, 0x450
+/* 8033B3D0 00337030 7E 43 93 78 */ mr r3, r18
+/* 8033B3D4 00337034 4B E8 BD 7D */ bl _restgpr_18
+/* 8033B3D8 00337038 80 01 04 54 */ lwz r0, 0x454(r1)
+/* 8033B3DC 0033703C 7C 08 03 A6 */ mtlr r0
+/* 8033B3E0 00337040 38 21 04 50 */ addi r1, r1, 0x450
+/* 8033B3E4 00337044 4E 80 00 20 */ blr
+
+.global gsLargeIntPowerMod
+gsLargeIntPowerMod:
+/* 8033B3E8 00337048 94 21 F7 C0 */ stwu r1, -0x840(r1)
+/* 8033B3EC 0033704C 7C 08 02 A6 */ mflr r0
+/* 8033B3F0 00337050 90 01 08 44 */ stw r0, 0x844(r1)
+/* 8033B3F4 00337054 39 61 08 40 */ addi r11, r1, 0x840
+/* 8033B3F8 00337058 4B E8 BD 31 */ bl _savegpr_27
+/* 8033B3FC 0033705C 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B400 00337060 7C 7F 1B 78 */ mr r31, r3
+/* 8033B404 00337064 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B408 00337068 7C 9C 23 78 */ mr r28, r4
+/* 8033B40C 0033706C 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B410 00337070 7C BB 2B 78 */ mr r27, r5
+/* 8033B414 00337074 7C DE 33 78 */ mr r30, r6
+/* 8033B418 00337078 2C 00 00 00 */ cmpwi r0, 0
+/* 8033B41C 0033707C 40 82 00 20 */ bne lbl_8033B43C
+/* 8033B420 00337080 80 7D 00 88 */ lwz r3, 0x88(r29)
+/* 8033B424 00337084 38 03 00 01 */ addi r0, r3, 1
+/* 8033B428 00337088 90 1D 00 88 */ stw r0, 0x88(r29)
+/* 8033B42C 0033708C 4B FF DB F5 */ bl current_time_hires
+/* 8033B430 00337090 38 00 00 01 */ li r0, 1
+/* 8033B434 00337094 90 7D 00 80 */ stw r3, 0x80(r29)
+/* 8033B438 00337098 90 1D 00 8C */ stw r0, 0x8c(r29)
+lbl_8033B43C:
+/* 8033B43C 0033709C 38 61 07 24 */ addi r3, r1, 0x724
+/* 8033B440 003370A0 38 80 00 00 */ li r4, 0
+/* 8033B444 003370A4 38 A0 01 04 */ li r5, 0x104
+/* 8033B448 003370A8 4B CC 8C BD */ bl memset
+/* 8033B44C 003370AC 38 61 06 20 */ addi r3, r1, 0x620
+/* 8033B450 003370B0 38 80 00 00 */ li r4, 0
+/* 8033B454 003370B4 38 A0 01 04 */ li r5, 0x104
+/* 8033B458 003370B8 4B CC 8C AD */ bl memset
+/* 8033B45C 003370BC 38 61 05 1C */ addi r3, r1, 0x51c
+/* 8033B460 003370C0 38 80 00 00 */ li r4, 0
+/* 8033B464 003370C4 38 A0 01 04 */ li r5, 0x104
+/* 8033B468 003370C8 4B CC 8C 9D */ bl memset
+/* 8033B46C 003370CC 38 61 04 18 */ addi r3, r1, 0x418
+/* 8033B470 003370D0 38 80 00 00 */ li r4, 0
+/* 8033B474 003370D4 38 A0 01 04 */ li r5, 0x104
+/* 8033B478 003370D8 4B CC 8C 8D */ bl memset
+/* 8033B47C 003370DC 38 61 03 14 */ addi r3, r1, 0x314
+/* 8033B480 003370E0 38 80 00 00 */ li r4, 0
+/* 8033B484 003370E4 38 A0 01 04 */ li r5, 0x104
+/* 8033B488 003370E8 4B CC 8C 7D */ bl memset
+/* 8033B48C 003370EC 7F E4 FB 78 */ mr r4, r31
+/* 8033B490 003370F0 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033B494 003370F4 38 A0 01 04 */ li r5, 0x104
+/* 8033B498 003370F8 4B CC 8B 69 */ bl memcpy
+/* 8033B49C 003370FC 7F 84 E3 78 */ mr r4, r28
+/* 8033B4A0 00337100 38 61 01 0C */ addi r3, r1, 0x10c
+/* 8033B4A4 00337104 38 A0 01 04 */ li r5, 0x104
+/* 8033B4A8 00337108 4B CC 8B 59 */ bl memcpy
+/* 8033B4AC 0033710C 7F 64 DB 78 */ mr r4, r27
+/* 8033B4B0 00337110 38 61 00 08 */ addi r3, r1, 8
+/* 8033B4B4 00337114 38 A0 01 04 */ li r5, 0x104
+/* 8033B4B8 00337118 4B CC 8B 49 */ bl memcpy
+/* 8033B4BC 0033711C 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033B4C0 00337120 48 00 00 10 */ b lbl_8033B4D0
+lbl_8033B4C4:
+/* 8033B4C4 00337124 80 81 02 10 */ lwz r4, 0x210(r1)
+/* 8033B4C8 00337128 38 04 FF FF */ addi r0, r4, -1
+/* 8033B4CC 0033712C 90 01 02 10 */ stw r0, 0x210(r1)
+lbl_8033B4D0:
+/* 8033B4D0 00337130 80 81 02 10 */ lwz r4, 0x210(r1)
+/* 8033B4D4 00337134 2C 04 00 00 */ cmpwi r4, 0
+/* 8033B4D8 00337138 41 82 00 14 */ beq lbl_8033B4EC
+/* 8033B4DC 0033713C 54 80 10 3A */ slwi r0, r4, 2
+/* 8033B4E0 00337140 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8033B4E4 00337144 2C 00 00 00 */ cmpwi r0, 0
+/* 8033B4E8 00337148 41 82 FF DC */ beq lbl_8033B4C4
+lbl_8033B4EC:
+/* 8033B4EC 0033714C 38 61 01 0C */ addi r3, r1, 0x10c
+/* 8033B4F0 00337150 48 00 00 10 */ b lbl_8033B500
+lbl_8033B4F4:
+/* 8033B4F4 00337154 80 A1 01 0C */ lwz r5, 0x10c(r1)
+/* 8033B4F8 00337158 38 05 FF FF */ addi r0, r5, -1
+/* 8033B4FC 0033715C 90 01 01 0C */ stw r0, 0x10c(r1)
+lbl_8033B500:
+/* 8033B500 00337160 80 E1 01 0C */ lwz r7, 0x10c(r1)
+/* 8033B504 00337164 2C 07 00 00 */ cmpwi r7, 0
+/* 8033B508 00337168 41 82 00 14 */ beq lbl_8033B51C
+/* 8033B50C 0033716C 54 E0 10 3A */ slwi r0, r7, 2
+/* 8033B510 00337170 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8033B514 00337174 2C 00 00 00 */ cmpwi r0, 0
+/* 8033B518 00337178 41 82 FF DC */ beq lbl_8033B4F4
+lbl_8033B51C:
+/* 8033B51C 0033717C 38 61 00 08 */ addi r3, r1, 8
+/* 8033B520 00337180 48 00 00 10 */ b lbl_8033B530
+lbl_8033B524:
+/* 8033B524 00337184 80 A1 00 08 */ lwz r5, 8(r1)
+/* 8033B528 00337188 38 05 FF FF */ addi r0, r5, -1
+/* 8033B52C 0033718C 90 01 00 08 */ stw r0, 8(r1)
+lbl_8033B530:
+/* 8033B530 00337190 80 C1 00 08 */ lwz r6, 8(r1)
+/* 8033B534 00337194 2C 06 00 00 */ cmpwi r6, 0
+/* 8033B538 00337198 41 82 00 14 */ beq lbl_8033B54C
+/* 8033B53C 0033719C 54 C0 10 3A */ slwi r0, r6, 2
+/* 8033B540 003371A0 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8033B544 003371A4 2C 00 00 00 */ cmpwi r0, 0
+/* 8033B548 003371A8 41 82 FF DC */ beq lbl_8033B524
+lbl_8033B54C:
+/* 8033B54C 003371AC 2C 06 00 00 */ cmpwi r6, 0
+/* 8033B550 003371B0 40 82 00 44 */ bne lbl_8033B594
+/* 8033B554 003371B4 3B E0 00 00 */ li r31, 0
+/* 8033B558 003371B8 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B55C 003371BC 93 FE 00 00 */ stw r31, 0(r30)
+/* 8033B560 003371C0 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B564 003371C4 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B568 003371C8 28 00 00 01 */ cmplwi r0, 1
+/* 8033B56C 003371CC 40 82 00 20 */ bne lbl_8033B58C
+/* 8033B570 003371D0 4B FF DA B1 */ bl current_time_hires
+/* 8033B574 003371D4 80 9D 00 80 */ lwz r4, 0x80(r29)
+/* 8033B578 003371D8 80 1D 00 84 */ lwz r0, 0x84(r29)
+/* 8033B57C 003371DC 7C 64 18 50 */ subf r3, r4, r3
+/* 8033B580 003371E0 93 FD 00 8C */ stw r31, 0x8c(r29)
+/* 8033B584 003371E4 7C 00 1A 14 */ add r0, r0, r3
+/* 8033B588 003371E8 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B58C:
+/* 8033B58C 003371EC 38 60 00 00 */ li r3, 0
+/* 8033B590 003371F0 48 00 04 64 */ b lbl_8033B9F4
+lbl_8033B594:
+/* 8033B594 003371F4 28 06 00 01 */ cmplwi r6, 1
+/* 8033B598 003371F8 40 82 00 54 */ bne lbl_8033B5EC
+/* 8033B59C 003371FC 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8033B5A0 00337200 28 00 00 01 */ cmplwi r0, 1
+/* 8033B5A4 00337204 40 82 00 48 */ bne lbl_8033B5EC
+/* 8033B5A8 00337208 3B E0 00 00 */ li r31, 0
+/* 8033B5AC 0033720C 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B5B0 00337210 93 FE 00 00 */ stw r31, 0(r30)
+/* 8033B5B4 00337214 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B5B8 00337218 93 FE 00 04 */ stw r31, 4(r30)
+/* 8033B5BC 0033721C 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B5C0 00337220 28 00 00 01 */ cmplwi r0, 1
+/* 8033B5C4 00337224 40 82 00 20 */ bne lbl_8033B5E4
+/* 8033B5C8 00337228 4B FF DA 59 */ bl current_time_hires
+/* 8033B5CC 0033722C 80 9D 00 80 */ lwz r4, 0x80(r29)
+/* 8033B5D0 00337230 80 1D 00 84 */ lwz r0, 0x84(r29)
+/* 8033B5D4 00337234 7C 64 18 50 */ subf r3, r4, r3
+/* 8033B5D8 00337238 93 FD 00 8C */ stw r31, 0x8c(r29)
+/* 8033B5DC 0033723C 7C 00 1A 14 */ add r0, r0, r3
+/* 8033B5E0 00337240 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B5E4:
+/* 8033B5E4 00337244 38 60 00 01 */ li r3, 1
+/* 8033B5E8 00337248 48 00 04 0C */ b lbl_8033B9F4
+lbl_8033B5EC:
+/* 8033B5EC 0033724C 2C 07 00 00 */ cmpwi r7, 0
+/* 8033B5F0 00337250 40 82 00 4C */ bne lbl_8033B63C
+/* 8033B5F4 00337254 38 00 00 01 */ li r0, 1
+/* 8033B5F8 00337258 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B5FC 0033725C 90 1E 00 00 */ stw r0, 0(r30)
+/* 8033B600 00337260 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B604 00337264 90 1E 00 04 */ stw r0, 4(r30)
+/* 8033B608 00337268 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B60C 0033726C 28 00 00 01 */ cmplwi r0, 1
+/* 8033B610 00337270 40 82 00 24 */ bne lbl_8033B634
+/* 8033B614 00337274 4B FF DA 0D */ bl current_time_hires
+/* 8033B618 00337278 80 BD 00 80 */ lwz r5, 0x80(r29)
+/* 8033B61C 0033727C 38 00 00 00 */ li r0, 0
+/* 8033B620 00337280 80 9D 00 84 */ lwz r4, 0x84(r29)
+/* 8033B624 00337284 7C 65 18 50 */ subf r3, r5, r3
+/* 8033B628 00337288 90 1D 00 8C */ stw r0, 0x8c(r29)
+/* 8033B62C 0033728C 7C 04 1A 14 */ add r0, r4, r3
+/* 8033B630 00337290 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B634:
+/* 8033B634 00337294 38 60 00 01 */ li r3, 1
+/* 8033B638 00337298 48 00 03 BC */ b lbl_8033B9F4
+lbl_8033B63C:
+/* 8033B63C 0033729C 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8033B640 003372A0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8033B644 003372A4 40 82 00 48 */ bne lbl_8033B68C
+/* 8033B648 003372A8 3B E0 00 00 */ li r31, 0
+/* 8033B64C 003372AC 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B650 003372B0 93 FE 00 00 */ stw r31, 0(r30)
+/* 8033B654 003372B4 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B658 003372B8 93 FE 00 04 */ stw r31, 4(r30)
+/* 8033B65C 003372BC 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B660 003372C0 28 00 00 01 */ cmplwi r0, 1
+/* 8033B664 003372C4 40 82 00 20 */ bne lbl_8033B684
+/* 8033B668 003372C8 4B FF D9 B9 */ bl current_time_hires
+/* 8033B66C 003372CC 80 9D 00 80 */ lwz r4, 0x80(r29)
+/* 8033B670 003372D0 80 1D 00 84 */ lwz r0, 0x84(r29)
+/* 8033B674 003372D4 7C 64 18 50 */ subf r3, r4, r3
+/* 8033B678 003372D8 93 FD 00 8C */ stw r31, 0x8c(r29)
+/* 8033B67C 003372DC 7C 00 1A 14 */ add r0, r0, r3
+/* 8033B680 003372E0 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B684:
+/* 8033B684 003372E4 38 60 00 00 */ li r3, 0
+/* 8033B688 003372E8 48 00 03 6C */ b lbl_8033B9F4
+lbl_8033B68C:
+/* 8033B68C 003372EC 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033B690 003372F0 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8033B694 003372F4 4B FF E2 71 */ bl gsiLargeIntCompare
+/* 8033B698 003372F8 2C 03 FF FF */ cmpwi r3, -1
+/* 8033B69C 003372FC 41 82 00 1C */ beq lbl_8033B6B8
+/* 8033B6A0 00337300 80 81 02 10 */ lwz r4, 0x210(r1)
+/* 8033B6A4 00337304 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033B6A8 00337308 38 A1 00 08 */ addi r5, r1, 8
+/* 8033B6AC 0033730C 38 E1 02 10 */ addi r7, r1, 0x210
+/* 8033B6B0 00337310 38 C0 00 00 */ li r6, 0
+/* 8033B6B4 00337314 4B FF EB 19 */ bl gsiLargeIntDiv
+lbl_8033B6B8:
+/* 8033B6B8 00337318 80 01 02 10 */ lwz r0, 0x210(r1)
+/* 8033B6BC 0033731C 2C 00 00 00 */ cmpwi r0, 0
+/* 8033B6C0 00337320 40 82 00 48 */ bne lbl_8033B708
+/* 8033B6C4 00337324 3B E0 00 00 */ li r31, 0
+/* 8033B6C8 00337328 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B6CC 0033732C 93 FE 00 00 */ stw r31, 0(r30)
+/* 8033B6D0 00337330 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B6D4 00337334 93 FE 00 04 */ stw r31, 4(r30)
+/* 8033B6D8 00337338 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B6DC 0033733C 28 00 00 01 */ cmplwi r0, 1
+/* 8033B6E0 00337340 40 82 00 20 */ bne lbl_8033B700
+/* 8033B6E4 00337344 4B FF D9 3D */ bl current_time_hires
+/* 8033B6E8 00337348 80 9D 00 80 */ lwz r4, 0x80(r29)
+/* 8033B6EC 0033734C 80 1D 00 84 */ lwz r0, 0x84(r29)
+/* 8033B6F0 00337350 7C 64 18 50 */ subf r3, r4, r3
+/* 8033B6F4 00337354 93 FD 00 8C */ stw r31, 0x8c(r29)
+/* 8033B6F8 00337358 7C 00 1A 14 */ add r0, r0, r3
+/* 8033B6FC 0033735C 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B700:
+/* 8033B700 00337360 38 60 00 01 */ li r3, 1
+/* 8033B704 00337364 48 00 02 F0 */ b lbl_8033B9F4
+lbl_8033B708:
+/* 8033B708 00337368 80 A1 01 0C */ lwz r5, 0x10c(r1)
+/* 8033B70C 0033736C 38 01 01 0C */ addi r0, r1, 0x10c
+/* 8033B710 00337370 3B E0 00 20 */ li r31, 0x20
+/* 8033B714 00337374 38 60 00 01 */ li r3, 1
+/* 8033B718 00337378 38 85 FF FF */ addi r4, r5, -1
+/* 8033B71C 0033737C 54 84 10 3A */ slwi r4, r4, 2
+/* 8033B720 00337380 7C 80 22 14 */ add r4, r0, r4
+/* 8033B724 00337384 80 84 00 04 */ lwz r4, 4(r4)
+/* 8033B728 00337388 48 00 00 08 */ b lbl_8033B730
+lbl_8033B72C:
+/* 8033B72C 0033738C 3B FF FF FF */ addi r31, r31, -1
+lbl_8033B730:
+/* 8033B730 00337390 38 1F FF FF */ addi r0, r31, -1
+/* 8033B734 00337394 7C 60 00 30 */ slw r0, r3, r0
+/* 8033B738 00337398 7C 00 20 39 */ and. r0, r0, r4
+/* 8033B73C 0033739C 41 82 FF F0 */ beq lbl_8033B72C
+/* 8033B740 003373A0 38 05 FF FF */ addi r0, r5, -1
+/* 8033B744 003373A4 38 61 07 24 */ addi r3, r1, 0x724
+/* 8033B748 003373A8 54 00 28 34 */ slwi r0, r0, 5
+/* 8033B74C 003373AC 38 80 00 00 */ li r4, 0
+/* 8033B750 003373B0 7F FF 02 14 */ add r31, r31, r0
+/* 8033B754 003373B4 38 A0 01 04 */ li r5, 0x104
+/* 8033B758 003373B8 4B CC 89 AD */ bl memset
+/* 8033B75C 003373BC 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033B760 003373C0 38 63 00 01 */ addi r3, r3, 1
+/* 8033B764 003373C4 28 03 00 40 */ cmplwi r3, 0x40
+/* 8033B768 003373C8 90 61 07 24 */ stw r3, 0x724(r1)
+/* 8033B76C 003373CC 40 81 00 0C */ ble lbl_8033B778
+/* 8033B770 003373D0 38 60 00 00 */ li r3, 0
+/* 8033B774 003373D4 48 00 02 80 */ b lbl_8033B9F4
+lbl_8033B778:
+/* 8033B778 003373D8 38 03 FF FF */ addi r0, r3, -1
+/* 8033B77C 003373DC 38 61 07 28 */ addi r3, r1, 0x728
+/* 8033B780 003373E0 54 04 10 3A */ slwi r4, r0, 2
+/* 8033B784 003373E4 38 A0 00 01 */ li r5, 1
+/* 8033B788 003373E8 7C A3 21 2E */ stwx r5, r3, r4
+/* 8033B78C 003373EC 38 00 00 1F */ li r0, 0x1f
+/* 8033B790 003373F0 81 81 00 0C */ lwz r12, 0xc(r1)
+/* 8033B794 003373F4 39 60 00 02 */ li r11, 2
+/* 8033B798 003373F8 39 40 00 00 */ li r10, 0
+/* 8033B79C 003373FC 39 20 00 01 */ li r9, 1
+/* 8033B7A0 00337400 39 00 00 00 */ li r8, 0
+/* 8033B7A4 00337404 38 A0 FF FF */ li r5, -1
+/* 8033B7A8 00337408 7C 09 03 A6 */ mtctr r0
+lbl_8033B7AC:
+/* 8033B7AC 0033740C 55 63 08 3C */ slwi r3, r11, 1
+/* 8033B7B0 00337410 55 40 08 3C */ slwi r0, r10, 1
+/* 8033B7B4 00337414 7C 83 28 14 */ addc r4, r3, r5
+/* 8033B7B8 00337418 7C C9 60 16 */ mulhwu r6, r9, r12
+/* 8033B7BC 0033741C 51 60 0F FE */ rlwimi r0, r11, 1, 0x1f, 0x1f
+/* 8033B7C0 00337420 7C 00 29 14 */ adde r0, r0, r5
+/* 8033B7C4 00337424 7C 68 61 D6 */ mullw r3, r8, r12
+/* 8033B7C8 00337428 7C 66 1A 14 */ add r3, r6, r3
+/* 8033B7CC 0033742C 7C E9 61 D6 */ mullw r7, r9, r12
+/* 8033B7D0 00337430 7C 63 00 38 */ and r3, r3, r0
+/* 8033B7D4 00337434 7C E0 20 38 */ and r0, r7, r4
+/* 8033B7D8 00337438 7C 00 58 10 */ subfc r0, r0, r11
+/* 8033B7DC 0033743C 7C 03 51 10 */ subfe r0, r3, r10
+/* 8033B7E0 00337440 7C 0B 59 10 */ subfe r0, r11, r11
+/* 8033B7E4 00337444 7C 00 00 D1 */ neg. r0, r0
+/* 8033B7E8 00337448 41 82 00 0C */ beq lbl_8033B7F4
+/* 8033B7EC 0033744C 7D 29 58 14 */ addc r9, r9, r11
+/* 8033B7F0 00337450 7D 08 51 14 */ adde r8, r8, r10
+lbl_8033B7F4:
+/* 8033B7F4 00337454 55 60 08 3C */ slwi r0, r11, 1
+/* 8033B7F8 00337458 55 4A 08 3C */ slwi r10, r10, 1
+/* 8033B7FC 0033745C 51 6A 0F FE */ rlwimi r10, r11, 1, 0x1f, 0x1f
+/* 8033B800 00337460 7C 0B 03 78 */ mr r11, r0
+/* 8033B804 00337464 42 00 FF A8 */ bdnz lbl_8033B7AC
+/* 8033B808 00337468 80 81 07 24 */ lwz r4, 0x724(r1)
+/* 8033B80C 0033746C 7F 69 00 10 */ subfc r27, r9, r0
+/* 8033B810 00337470 38 61 07 28 */ addi r3, r1, 0x728
+/* 8033B814 00337474 38 A1 00 08 */ addi r5, r1, 8
+/* 8033B818 00337478 38 E1 06 20 */ addi r7, r1, 0x620
+/* 8033B81C 0033747C 38 C0 00 00 */ li r6, 0
+/* 8033B820 00337480 4B FF E9 AD */ bl gsiLargeIntDiv
+/* 8033B824 00337484 2C 03 00 00 */ cmpwi r3, 0
+/* 8033B828 00337488 40 82 00 40 */ bne lbl_8033B868
+/* 8033B82C 0033748C 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B830 00337490 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B834 00337494 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B838 00337498 28 00 00 01 */ cmplwi r0, 1
+/* 8033B83C 0033749C 40 82 00 24 */ bne lbl_8033B860
+/* 8033B840 003374A0 4B FF D7 E1 */ bl current_time_hires
+/* 8033B844 003374A4 80 BD 00 80 */ lwz r5, 0x80(r29)
+/* 8033B848 003374A8 38 00 00 00 */ li r0, 0
+/* 8033B84C 003374AC 80 9D 00 84 */ lwz r4, 0x84(r29)
+/* 8033B850 003374B0 7C 65 18 50 */ subf r3, r5, r3
+/* 8033B854 003374B4 90 1D 00 8C */ stw r0, 0x8c(r29)
+/* 8033B858 003374B8 7C 04 1A 14 */ add r0, r4, r3
+/* 8033B85C 003374BC 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B860:
+/* 8033B860 003374C0 38 60 00 00 */ li r3, 0
+/* 8033B864 003374C4 48 00 01 90 */ b lbl_8033B9F4
+lbl_8033B868:
+/* 8033B868 003374C8 38 61 06 20 */ addi r3, r1, 0x620
+/* 8033B86C 003374CC 38 81 00 08 */ addi r4, r1, 8
+/* 8033B870 003374D0 38 A1 05 1C */ addi r5, r1, 0x51c
+/* 8033B874 003374D4 4B FF F5 75 */ bl gsLargeIntSquareMod
+/* 8033B878 003374D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033B87C 003374DC 40 82 00 40 */ bne lbl_8033B8BC
+/* 8033B880 003374E0 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B884 003374E4 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B888 003374E8 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B88C 003374EC 28 00 00 01 */ cmplwi r0, 1
+/* 8033B890 003374F0 40 82 00 24 */ bne lbl_8033B8B4
+/* 8033B894 003374F4 4B FF D7 8D */ bl current_time_hires
+/* 8033B898 003374F8 80 BD 00 80 */ lwz r5, 0x80(r29)
+/* 8033B89C 003374FC 38 00 00 00 */ li r0, 0
+/* 8033B8A0 00337500 80 9D 00 84 */ lwz r4, 0x84(r29)
+/* 8033B8A4 00337504 7C 65 18 50 */ subf r3, r5, r3
+/* 8033B8A8 00337508 90 1D 00 8C */ stw r0, 0x8c(r29)
+/* 8033B8AC 0033750C 7C 04 1A 14 */ add r0, r4, r3
+/* 8033B8B0 00337510 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B8B4:
+/* 8033B8B4 00337514 38 60 00 00 */ li r3, 0
+/* 8033B8B8 00337518 48 00 01 3C */ b lbl_8033B9F4
+lbl_8033B8BC:
+/* 8033B8BC 0033751C 7F 66 DB 78 */ mr r6, r27
+/* 8033B8C0 00337520 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033B8C4 00337524 38 81 05 1C */ addi r4, r1, 0x51c
+/* 8033B8C8 00337528 38 A1 00 08 */ addi r5, r1, 8
+/* 8033B8CC 0033752C 38 E1 03 14 */ addi r7, r1, 0x314
+/* 8033B8D0 00337530 48 00 01 3D */ bl gsiLargeIntMultM
+/* 8033B8D4 00337534 2C 03 00 00 */ cmpwi r3, 0
+/* 8033B8D8 00337538 40 82 00 40 */ bne lbl_8033B918
+/* 8033B8DC 0033753C 3F A0 80 61 */ lis r29, lbl_80610BD0@ha
+/* 8033B8E0 00337540 3B BD 0B D0 */ addi r29, r29, lbl_80610BD0@l
+/* 8033B8E4 00337544 80 1D 00 8C */ lwz r0, 0x8c(r29)
+/* 8033B8E8 00337548 28 00 00 01 */ cmplwi r0, 1
+/* 8033B8EC 0033754C 40 82 00 24 */ bne lbl_8033B910
+/* 8033B8F0 00337550 4B FF D7 31 */ bl current_time_hires
+/* 8033B8F4 00337554 80 BD 00 80 */ lwz r5, 0x80(r29)
+/* 8033B8F8 00337558 38 00 00 00 */ li r0, 0
+/* 8033B8FC 0033755C 80 9D 00 84 */ lwz r4, 0x84(r29)
+/* 8033B900 00337560 7C 65 18 50 */ subf r3, r5, r3
+/* 8033B904 00337564 90 1D 00 8C */ stw r0, 0x8c(r29)
+/* 8033B908 00337568 7C 04 1A 14 */ add r0, r4, r3
+/* 8033B90C 0033756C 90 1D 00 84 */ stw r0, 0x84(r29)
+lbl_8033B910:
+/* 8033B910 00337570 38 60 00 00 */ li r3, 0
+/* 8033B914 00337574 48 00 00 E0 */ b lbl_8033B9F4
+lbl_8033B918:
+/* 8033B918 00337578 7F C3 F3 78 */ mr r3, r30
+/* 8033B91C 0033757C 38 81 06 20 */ addi r4, r1, 0x620
+/* 8033B920 00337580 38 A0 01 04 */ li r5, 0x104
+/* 8033B924 00337584 4B CC 86 DD */ bl memcpy
+/* 8033B928 00337588 3B 9F FF FF */ addi r28, r31, -1
+/* 8033B92C 0033758C 3B E1 01 0C */ addi r31, r1, 0x10c
+/* 8033B930 00337590 3B A0 00 01 */ li r29, 1
+/* 8033B934 00337594 48 00 00 5C */ b lbl_8033B990
+lbl_8033B938:
+/* 8033B938 00337598 7F C3 F3 78 */ mr r3, r30
+/* 8033B93C 0033759C 7F C4 F3 78 */ mr r4, r30
+/* 8033B940 003375A0 7F 66 DB 78 */ mr r6, r27
+/* 8033B944 003375A4 7F C7 F3 78 */ mr r7, r30
+/* 8033B948 003375A8 38 A1 00 08 */ addi r5, r1, 8
+/* 8033B94C 003375AC 48 00 00 C1 */ bl gsiLargeIntMultM
+/* 8033B950 003375B0 7F 80 2E 70 */ srawi r0, r28, 5
+/* 8033B954 003375B4 7F A4 E0 30 */ slw r4, r29, r28
+/* 8033B958 003375B8 7C 00 01 94 */ addze r0, r0
+/* 8033B95C 003375BC 54 00 10 3A */ slwi r0, r0, 2
+/* 8033B960 003375C0 7C 7F 02 14 */ add r3, r31, r0
+/* 8033B964 003375C4 80 03 00 04 */ lwz r0, 4(r3)
+/* 8033B968 003375C8 7C 80 00 38 */ and r0, r4, r0
+/* 8033B96C 003375CC 7C 04 00 40 */ cmplw r4, r0
+/* 8033B970 003375D0 40 82 00 1C */ bne lbl_8033B98C
+/* 8033B974 003375D4 7F C3 F3 78 */ mr r3, r30
+/* 8033B978 003375D8 7F 66 DB 78 */ mr r6, r27
+/* 8033B97C 003375DC 7F C7 F3 78 */ mr r7, r30
+/* 8033B980 003375E0 38 81 03 14 */ addi r4, r1, 0x314
+/* 8033B984 003375E4 38 A1 00 08 */ addi r5, r1, 8
+/* 8033B988 003375E8 48 00 00 85 */ bl gsiLargeIntMultM
+lbl_8033B98C:
+/* 8033B98C 003375EC 3B 9C FF FF */ addi r28, r28, -1
+lbl_8033B990:
+/* 8033B990 003375F0 2C 1C 00 00 */ cmpwi r28, 0
+/* 8033B994 003375F4 40 80 FF A4 */ bge lbl_8033B938
+/* 8033B998 003375F8 38 00 00 01 */ li r0, 1
+/* 8033B99C 003375FC 7F C3 F3 78 */ mr r3, r30
+/* 8033B9A0 00337600 90 01 04 18 */ stw r0, 0x418(r1)
+/* 8033B9A4 00337604 7F 66 DB 78 */ mr r6, r27
+/* 8033B9A8 00337608 7F C7 F3 78 */ mr r7, r30
+/* 8033B9AC 0033760C 38 81 04 18 */ addi r4, r1, 0x418
+/* 8033B9B0 00337610 90 01 04 1C */ stw r0, 0x41c(r1)
+/* 8033B9B4 00337614 38 A1 00 08 */ addi r5, r1, 8
+/* 8033B9B8 00337618 48 00 00 55 */ bl gsiLargeIntMultM
+/* 8033B9BC 0033761C 3F C0 80 61 */ lis r30, lbl_80610BD0@ha
+/* 8033B9C0 00337620 3B DE 0B D0 */ addi r30, r30, lbl_80610BD0@l
+/* 8033B9C4 00337624 80 1E 00 8C */ lwz r0, 0x8c(r30)
+/* 8033B9C8 00337628 28 00 00 01 */ cmplwi r0, 1
+/* 8033B9CC 0033762C 40 82 00 24 */ bne lbl_8033B9F0
+/* 8033B9D0 00337630 4B FF D6 51 */ bl current_time_hires
+/* 8033B9D4 00337634 80 BE 00 80 */ lwz r5, 0x80(r30)
+/* 8033B9D8 00337638 38 00 00 00 */ li r0, 0
+/* 8033B9DC 0033763C 80 9E 00 84 */ lwz r4, 0x84(r30)
+/* 8033B9E0 00337640 7C 65 18 50 */ subf r3, r5, r3
+/* 8033B9E4 00337644 90 1E 00 8C */ stw r0, 0x8c(r30)
+/* 8033B9E8 00337648 7C 04 1A 14 */ add r0, r4, r3
+/* 8033B9EC 0033764C 90 1E 00 84 */ stw r0, 0x84(r30)
+lbl_8033B9F0:
+/* 8033B9F0 00337650 38 60 00 01 */ li r3, 1
+lbl_8033B9F4:
+/* 8033B9F4 00337654 39 61 08 40 */ addi r11, r1, 0x840
+/* 8033B9F8 00337658 4B E8 B7 7D */ bl _restgpr_27
+/* 8033B9FC 0033765C 80 01 08 44 */ lwz r0, 0x844(r1)
+/* 8033BA00 00337660 7C 08 03 A6 */ mtlr r0
+/* 8033BA04 00337664 38 21 08 40 */ addi r1, r1, 0x840
+/* 8033BA08 00337668 4E 80 00 20 */ blr
+
+.global gsiLargeIntMultM
+gsiLargeIntMultM:
+/* 8033BA0C 0033766C 94 21 FC C0 */ stwu r1, -0x340(r1)
+/* 8033BA10 00337670 7C 08 02 A6 */ mflr r0
+/* 8033BA14 00337674 90 01 03 44 */ stw r0, 0x344(r1)
+/* 8033BA18 00337678 39 61 03 40 */ addi r11, r1, 0x340
+/* 8033BA1C 0033767C 4B E8 B6 FD */ bl _savegpr_23
+/* 8033BA20 00337680 3E E0 80 61 */ lis r23, lbl_80610BD0@ha
+/* 8033BA24 00337684 7C 7A 1B 78 */ mr r26, r3
+/* 8033BA28 00337688 3A F7 0B D0 */ addi r23, r23, lbl_80610BD0@l
+/* 8033BA2C 0033768C 7C 9B 23 78 */ mr r27, r4
+/* 8033BA30 00337690 80 17 00 1C */ lwz r0, 0x1c(r23)
+/* 8033BA34 00337694 7C BC 2B 78 */ mr r28, r5
+/* 8033BA38 00337698 7C DD 33 78 */ mr r29, r6
+/* 8033BA3C 0033769C 7C FE 3B 78 */ mr r30, r7
+/* 8033BA40 003376A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8033BA44 003376A4 40 82 00 30 */ bne lbl_8033BA74
+/* 8033BA48 003376A8 80 77 00 18 */ lwz r3, 0x18(r23)
+/* 8033BA4C 003376AC 38 03 00 01 */ addi r0, r3, 1
+/* 8033BA50 003376B0 90 17 00 18 */ stw r0, 0x18(r23)
+/* 8033BA54 003376B4 4B FF D5 CD */ bl current_time_hires
+/* 8033BA58 003376B8 38 00 00 01 */ li r0, 1
+/* 8033BA5C 003376BC 90 77 00 10 */ stw r3, 0x10(r23)
+/* 8033BA60 003376C0 90 17 00 1C */ stw r0, 0x1c(r23)
+/* 8033BA64 003376C4 48 00 00 10 */ b lbl_8033BA74
+lbl_8033BA68:
+/* 8033BA68 003376C8 80 7A 00 00 */ lwz r3, 0(r26)
+/* 8033BA6C 003376CC 38 03 FF FF */ addi r0, r3, -1
+/* 8033BA70 003376D0 90 1A 00 00 */ stw r0, 0(r26)
+lbl_8033BA74:
+/* 8033BA74 003376D4 80 1A 00 00 */ lwz r0, 0(r26)
+/* 8033BA78 003376D8 2C 00 00 00 */ cmpwi r0, 0
+/* 8033BA7C 003376DC 41 82 00 24 */ beq lbl_8033BAA0
+/* 8033BA80 003376E0 54 00 10 3A */ slwi r0, r0, 2
+/* 8033BA84 003376E4 7C 1A 00 2E */ lwzx r0, r26, r0
+/* 8033BA88 003376E8 2C 00 00 00 */ cmpwi r0, 0
+/* 8033BA8C 003376EC 41 82 FF DC */ beq lbl_8033BA68
+/* 8033BA90 003376F0 48 00 00 10 */ b lbl_8033BAA0
+lbl_8033BA94:
+/* 8033BA94 003376F4 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8033BA98 003376F8 38 03 FF FF */ addi r0, r3, -1
+/* 8033BA9C 003376FC 90 1B 00 00 */ stw r0, 0(r27)
+lbl_8033BAA0:
+/* 8033BAA0 00337700 80 BB 00 00 */ lwz r5, 0(r27)
+/* 8033BAA4 00337704 2C 05 00 00 */ cmpwi r5, 0
+/* 8033BAA8 00337708 41 82 00 14 */ beq lbl_8033BABC
+/* 8033BAAC 0033770C 54 A0 10 3A */ slwi r0, r5, 2
+/* 8033BAB0 00337710 7C 1B 00 2E */ lwzx r0, r27, r0
+/* 8033BAB4 00337714 2C 00 00 00 */ cmpwi r0, 0
+/* 8033BAB8 00337718 41 82 FF DC */ beq lbl_8033BA94
+lbl_8033BABC:
+/* 8033BABC 0033771C 80 9C 00 00 */ lwz r4, 0(r28)
+/* 8033BAC0 00337720 54 80 10 3A */ slwi r0, r4, 2
+/* 8033BAC4 00337724 7C 86 23 78 */ mr r6, r4
+/* 8033BAC8 00337728 7C 7C 02 14 */ add r3, r28, r0
+/* 8033BACC 0033772C 48 00 00 0C */ b lbl_8033BAD8
+lbl_8033BAD0:
+/* 8033BAD0 00337730 38 63 FF FC */ addi r3, r3, -4
+/* 8033BAD4 00337734 38 C6 FF FF */ addi r6, r6, -1
+lbl_8033BAD8:
+/* 8033BAD8 00337738 2C 06 00 00 */ cmpwi r6, 0
+/* 8033BADC 0033773C 40 81 00 10 */ ble lbl_8033BAEC
+/* 8033BAE0 00337740 80 03 00 00 */ lwz r0, 0(r3)
+/* 8033BAE4 00337744 2C 00 00 00 */ cmpwi r0, 0
+/* 8033BAE8 00337748 41 82 FF E8 */ beq lbl_8033BAD0
+lbl_8033BAEC:
+/* 8033BAEC 0033774C 2C 06 00 00 */ cmpwi r6, 0
+/* 8033BAF0 00337750 40 82 00 48 */ bne lbl_8033BB38
+/* 8033BAF4 00337754 3B 00 00 00 */ li r24, 0
+/* 8033BAF8 00337758 3E E0 80 61 */ lis r23, lbl_80610BD0@ha
+/* 8033BAFC 0033775C 93 1E 00 04 */ stw r24, 4(r30)
+/* 8033BB00 00337760 3A F7 0B D0 */ addi r23, r23, lbl_80610BD0@l
+/* 8033BB04 00337764 93 1E 00 00 */ stw r24, 0(r30)
+/* 8033BB08 00337768 80 17 00 1C */ lwz r0, 0x1c(r23)
+/* 8033BB0C 0033776C 28 00 00 01 */ cmplwi r0, 1
+/* 8033BB10 00337770 40 82 00 20 */ bne lbl_8033BB30
+/* 8033BB14 00337774 4B FF D5 0D */ bl current_time_hires
+/* 8033BB18 00337778 80 97 00 10 */ lwz r4, 0x10(r23)
+/* 8033BB1C 0033777C 80 17 00 14 */ lwz r0, 0x14(r23)
+/* 8033BB20 00337780 7C 64 18 50 */ subf r3, r4, r3
+/* 8033BB24 00337784 93 17 00 1C */ stw r24, 0x1c(r23)
+/* 8033BB28 00337788 7C 00 1A 14 */ add r0, r0, r3
+/* 8033BB2C 0033778C 90 17 00 14 */ stw r0, 0x14(r23)
+lbl_8033BB30:
+/* 8033BB30 00337790 38 60 00 00 */ li r3, 0
+/* 8033BB34 00337794 48 00 03 C4 */ b lbl_8033BEF8
+lbl_8033BB38:
+/* 8033BB38 00337798 80 1A 00 00 */ lwz r0, 0(r26)
+/* 8033BB3C 0033779C 2C 00 00 00 */ cmpwi r0, 0
+/* 8033BB40 003377A0 40 82 00 48 */ bne lbl_8033BB88
+/* 8033BB44 003377A4 3B 00 00 00 */ li r24, 0
+/* 8033BB48 003377A8 3E E0 80 61 */ lis r23, lbl_80610BD0@ha
+/* 8033BB4C 003377AC 93 1E 00 00 */ stw r24, 0(r30)
+/* 8033BB50 003377B0 3A F7 0B D0 */ addi r23, r23, lbl_80610BD0@l
+/* 8033BB54 003377B4 93 1E 00 04 */ stw r24, 4(r30)
+/* 8033BB58 003377B8 80 17 00 1C */ lwz r0, 0x1c(r23)
+/* 8033BB5C 003377BC 28 00 00 01 */ cmplwi r0, 1
+/* 8033BB60 003377C0 40 82 00 20 */ bne lbl_8033BB80
+/* 8033BB64 003377C4 4B FF D4 BD */ bl current_time_hires
+/* 8033BB68 003377C8 80 97 00 10 */ lwz r4, 0x10(r23)
+/* 8033BB6C 003377CC 80 17 00 14 */ lwz r0, 0x14(r23)
+/* 8033BB70 003377D0 7C 64 18 50 */ subf r3, r4, r3
+/* 8033BB74 003377D4 93 17 00 1C */ stw r24, 0x1c(r23)
+/* 8033BB78 003377D8 7C 00 1A 14 */ add r0, r0, r3
+/* 8033BB7C 003377DC 90 17 00 14 */ stw r0, 0x14(r23)
+lbl_8033BB80:
+/* 8033BB80 003377E0 38 60 00 01 */ li r3, 1
+/* 8033BB84 003377E4 48 00 03 74 */ b lbl_8033BEF8
+lbl_8033BB88:
+/* 8033BB88 003377E8 2C 05 00 00 */ cmpwi r5, 0
+/* 8033BB8C 003377EC 40 82 00 48 */ bne lbl_8033BBD4
+/* 8033BB90 003377F0 3B 00 00 00 */ li r24, 0
+/* 8033BB94 003377F4 3E E0 80 61 */ lis r23, lbl_80610BD0@ha
+/* 8033BB98 003377F8 93 1E 00 00 */ stw r24, 0(r30)
+/* 8033BB9C 003377FC 3A F7 0B D0 */ addi r23, r23, lbl_80610BD0@l
+/* 8033BBA0 00337800 93 1E 00 04 */ stw r24, 4(r30)
+/* 8033BBA4 00337804 80 17 00 1C */ lwz r0, 0x1c(r23)
+/* 8033BBA8 00337808 28 00 00 01 */ cmplwi r0, 1
+/* 8033BBAC 0033780C 40 82 00 20 */ bne lbl_8033BBCC
+/* 8033BBB0 00337810 4B FF D4 71 */ bl current_time_hires
+/* 8033BBB4 00337814 80 97 00 10 */ lwz r4, 0x10(r23)
+/* 8033BBB8 00337818 80 17 00 14 */ lwz r0, 0x14(r23)
+/* 8033BBBC 0033781C 7C 64 18 50 */ subf r3, r4, r3
+/* 8033BBC0 00337820 93 17 00 1C */ stw r24, 0x1c(r23)
+/* 8033BBC4 00337824 7C 00 1A 14 */ add r0, r0, r3
+/* 8033BBC8 00337828 90 17 00 14 */ stw r0, 0x14(r23)
+lbl_8033BBCC:
+/* 8033BBCC 0033782C 38 60 00 01 */ li r3, 1
+/* 8033BBD0 00337830 48 00 03 28 */ b lbl_8033BEF8
+lbl_8033BBD4:
+/* 8033BBD4 00337834 7F 43 D3 78 */ mr r3, r26
+/* 8033BBD8 00337838 4B FF DB D9 */ bl gsiLargeIntResize
+/* 8033BBDC 0033783C 80 9C 00 00 */ lwz r4, 0(r28)
+/* 8033BBE0 00337840 7F 63 DB 78 */ mr r3, r27
+/* 8033BBE4 00337844 4B FF DB CD */ bl gsiLargeIntResize
+/* 8033BBE8 00337848 38 61 02 10 */ addi r3, r1, 0x210
+/* 8033BBEC 0033784C 38 80 00 00 */ li r4, 0
+/* 8033BBF0 00337850 38 A0 01 04 */ li r5, 0x104
+/* 8033BBF4 00337854 4B CC 85 11 */ bl memset
+/* 8033BBF8 00337858 38 61 00 08 */ addi r3, r1, 8
+/* 8033BBFC 0033785C 38 80 00 00 */ li r4, 0
+/* 8033BC00 00337860 38 A0 01 04 */ li r5, 0x104
+/* 8033BC04 00337864 4B CC 85 01 */ bl memset
+/* 8033BC08 00337868 38 61 01 0C */ addi r3, r1, 0x10c
+/* 8033BC0C 0033786C 38 80 00 00 */ li r4, 0
+/* 8033BC10 00337870 38 A0 01 04 */ li r5, 0x104
+/* 8033BC14 00337874 4B CC 84 F1 */ bl memset
+/* 8033BC18 00337878 3B 01 02 10 */ addi r24, r1, 0x210
+/* 8033BC1C 0033787C 3B E0 00 00 */ li r31, 0
+/* 8033BC20 00337880 3B 20 00 00 */ li r25, 0
+/* 8033BC24 00337884 48 00 02 48 */ b lbl_8033BE6C
+lbl_8033BC28:
+/* 8033BC28 00337888 80 DB 00 04 */ lwz r6, 4(r27)
+/* 8033BC2C 0033788C 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033BC30 00337890 80 BA 00 04 */ lwz r5, 4(r26)
+/* 8033BC34 00337894 38 80 00 00 */ li r4, 0
+/* 8033BC38 00337898 80 1B 00 00 */ lwz r0, 0(r27)
+/* 8033BC3C 0033789C 7C E6 29 D6 */ mullw r7, r6, r5
+/* 8033BC40 003378A0 80 C1 02 14 */ lwz r6, 0x214(r1)
+/* 8033BC44 003378A4 54 05 10 3A */ slwi r5, r0, 2
+/* 8033BC48 003378A8 7C 07 30 14 */ addc r0, r7, r6
+/* 8033BC4C 003378AC 7E E0 E9 D6 */ mullw r23, r0, r29
+/* 8033BC50 003378B0 4B CC 84 B5 */ bl memset
+/* 8033BC54 003378B4 80 1A 00 04 */ lwz r0, 4(r26)
+/* 8033BC58 003378B8 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033BC5C 003378BC 38 BB 00 04 */ addi r5, r27, 4
+/* 8033BC60 003378C0 38 E1 01 10 */ addi r7, r1, 0x110
+/* 8033BC64 003378C4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8033BC68 003378C8 39 01 01 0C */ addi r8, r1, 0x10c
+/* 8033BC6C 003378CC 39 20 00 40 */ li r9, 0x40
+/* 8033BC70 003378D0 80 9B 00 00 */ lwz r4, 0(r27)
+/* 8033BC74 003378D4 90 81 00 08 */ stw r4, 8(r1)
+/* 8033BC78 003378D8 80 DB 00 00 */ lwz r6, 0(r27)
+/* 8033BC7C 003378DC 4B FF E3 19 */ bl gsiLargeIntMult
+/* 8033BC80 003378E0 2C 03 00 00 */ cmpwi r3, 0
+/* 8033BC84 003378E4 40 82 00 48 */ bne lbl_8033BCCC
+/* 8033BC88 003378E8 3B 20 00 00 */ li r25, 0
+/* 8033BC8C 003378EC 3F 00 80 61 */ lis r24, lbl_80610BD0@ha
+/* 8033BC90 003378F0 93 3E 00 00 */ stw r25, 0(r30)
+/* 8033BC94 003378F4 3B 18 0B D0 */ addi r24, r24, lbl_80610BD0@l
+/* 8033BC98 003378F8 93 3E 00 04 */ stw r25, 4(r30)
+/* 8033BC9C 003378FC 80 18 00 1C */ lwz r0, 0x1c(r24)
+/* 8033BCA0 00337900 28 00 00 01 */ cmplwi r0, 1
+/* 8033BCA4 00337904 40 82 00 20 */ bne lbl_8033BCC4
+/* 8033BCA8 00337908 4B FF D3 79 */ bl current_time_hires
+/* 8033BCAC 0033790C 80 98 00 10 */ lwz r4, 0x10(r24)
+/* 8033BCB0 00337910 80 18 00 14 */ lwz r0, 0x14(r24)
+/* 8033BCB4 00337914 7C 64 18 50 */ subf r3, r4, r3
+/* 8033BCB8 00337918 93 38 00 1C */ stw r25, 0x1c(r24)
+/* 8033BCBC 0033791C 7C 00 1A 14 */ add r0, r0, r3
+/* 8033BCC0 00337920 90 18 00 14 */ stw r0, 0x14(r24)
+lbl_8033BCC4:
+/* 8033BCC4 00337924 38 60 00 00 */ li r3, 0
+/* 8033BCC8 00337928 48 00 02 30 */ b lbl_8033BEF8
+lbl_8033BCCC:
+/* 8033BCCC 0033792C 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8033BCD0 00337930 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033BCD4 00337934 38 80 00 00 */ li r4, 0
+/* 8033BCD8 00337938 54 05 10 3A */ slwi r5, r0, 2
+/* 8033BCDC 0033793C 4B CC 84 29 */ bl memset
+/* 8033BCE0 00337940 80 1C 00 00 */ lwz r0, 0(r28)
+/* 8033BCE4 00337944 38 61 00 08 */ addi r3, r1, 8
+/* 8033BCE8 00337948 92 E1 00 0C */ stw r23, 0xc(r1)
+/* 8033BCEC 0033794C 7F 84 E3 78 */ mr r4, r28
+/* 8033BCF0 00337950 7C 65 1B 78 */ mr r5, r3
+/* 8033BCF4 00337954 90 01 00 08 */ stw r0, 8(r1)
+/* 8033BCF8 00337958 4B FF EB E5 */ bl gsLargeIntKMult
+/* 8033BCFC 0033795C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033BD00 00337960 40 82 00 48 */ bne lbl_8033BD48
+/* 8033BD04 00337964 3B 20 00 00 */ li r25, 0
+/* 8033BD08 00337968 3F 00 80 61 */ lis r24, lbl_80610BD0@ha
+/* 8033BD0C 0033796C 93 3E 00 00 */ stw r25, 0(r30)
+/* 8033BD10 00337970 3B 18 0B D0 */ addi r24, r24, lbl_80610BD0@l
+/* 8033BD14 00337974 93 3E 00 04 */ stw r25, 4(r30)
+/* 8033BD18 00337978 80 18 00 1C */ lwz r0, 0x1c(r24)
+/* 8033BD1C 0033797C 28 00 00 01 */ cmplwi r0, 1
+/* 8033BD20 00337980 40 82 00 20 */ bne lbl_8033BD40
+/* 8033BD24 00337984 4B FF D2 FD */ bl current_time_hires
+/* 8033BD28 00337988 80 98 00 10 */ lwz r4, 0x10(r24)
+/* 8033BD2C 0033798C 80 18 00 14 */ lwz r0, 0x14(r24)
+/* 8033BD30 00337990 7C 64 18 50 */ subf r3, r4, r3
+/* 8033BD34 00337994 93 38 00 1C */ stw r25, 0x1c(r24)
+/* 8033BD38 00337998 7C 00 1A 14 */ add r0, r0, r3
+/* 8033BD3C 0033799C 90 18 00 14 */ stw r0, 0x14(r24)
+lbl_8033BD40:
+/* 8033BD40 003379A0 38 60 00 00 */ li r3, 0
+/* 8033BD44 003379A4 48 00 01 B4 */ b lbl_8033BEF8
+lbl_8033BD48:
+/* 8033BD48 003379A8 38 A1 02 14 */ addi r5, r1, 0x214
+/* 8033BD4C 003379AC 80 81 01 0C */ lwz r4, 0x10c(r1)
+/* 8033BD50 003379B0 80 C1 02 10 */ lwz r6, 0x210(r1)
+/* 8033BD54 003379B4 7C A7 2B 78 */ mr r7, r5
+/* 8033BD58 003379B8 38 61 01 10 */ addi r3, r1, 0x110
+/* 8033BD5C 003379BC 39 01 02 10 */ addi r8, r1, 0x210
+/* 8033BD60 003379C0 39 20 00 40 */ li r9, 0x40
+/* 8033BD64 003379C4 4B FF DC 5D */ bl gsiLargeIntAdd
+/* 8033BD68 003379C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033BD6C 003379CC 40 82 00 48 */ bne lbl_8033BDB4
+/* 8033BD70 003379D0 3B 20 00 00 */ li r25, 0
+/* 8033BD74 003379D4 3F 00 80 61 */ lis r24, lbl_80610BD0@ha
+/* 8033BD78 003379D8 93 3E 00 00 */ stw r25, 0(r30)
+/* 8033BD7C 003379DC 3B 18 0B D0 */ addi r24, r24, lbl_80610BD0@l
+/* 8033BD80 003379E0 93 3E 00 04 */ stw r25, 4(r30)
+/* 8033BD84 003379E4 80 18 00 1C */ lwz r0, 0x1c(r24)
+/* 8033BD88 003379E8 28 00 00 01 */ cmplwi r0, 1
+/* 8033BD8C 003379EC 40 82 00 20 */ bne lbl_8033BDAC
+/* 8033BD90 003379F0 4B FF D2 91 */ bl current_time_hires
+/* 8033BD94 003379F4 80 98 00 10 */ lwz r4, 0x10(r24)
+/* 8033BD98 003379F8 80 18 00 14 */ lwz r0, 0x14(r24)
+/* 8033BD9C 003379FC 7C 64 18 50 */ subf r3, r4, r3
+/* 8033BDA0 00337A00 93 38 00 1C */ stw r25, 0x1c(r24)
+/* 8033BDA4 00337A04 7C 00 1A 14 */ add r0, r0, r3
+/* 8033BDA8 00337A08 90 18 00 14 */ stw r0, 0x14(r24)
+lbl_8033BDAC:
+/* 8033BDAC 00337A0C 38 60 00 00 */ li r3, 0
+/* 8033BDB0 00337A10 48 00 01 48 */ b lbl_8033BEF8
+lbl_8033BDB4:
+/* 8033BDB4 00337A14 38 A1 02 14 */ addi r5, r1, 0x214
+/* 8033BDB8 00337A18 80 81 00 08 */ lwz r4, 8(r1)
+/* 8033BDBC 00337A1C 80 C1 02 10 */ lwz r6, 0x210(r1)
+/* 8033BDC0 00337A20 7C A7 2B 78 */ mr r7, r5
+/* 8033BDC4 00337A24 38 61 00 0C */ addi r3, r1, 0xc
+/* 8033BDC8 00337A28 39 01 02 10 */ addi r8, r1, 0x210
+/* 8033BDCC 00337A2C 39 20 00 40 */ li r9, 0x40
+/* 8033BDD0 00337A30 4B FF DB F1 */ bl gsiLargeIntAdd
+/* 8033BDD4 00337A34 2C 03 00 00 */ cmpwi r3, 0
+/* 8033BDD8 00337A38 40 82 00 48 */ bne lbl_8033BE20
+/* 8033BDDC 00337A3C 3B 20 00 00 */ li r25, 0
+/* 8033BDE0 00337A40 3F 00 80 61 */ lis r24, lbl_80610BD0@ha
+/* 8033BDE4 00337A44 93 3E 00 00 */ stw r25, 0(r30)
+/* 8033BDE8 00337A48 3B 18 0B D0 */ addi r24, r24, lbl_80610BD0@l
+/* 8033BDEC 00337A4C 93 3E 00 04 */ stw r25, 4(r30)
+/* 8033BDF0 00337A50 80 18 00 1C */ lwz r0, 0x1c(r24)
+/* 8033BDF4 00337A54 28 00 00 01 */ cmplwi r0, 1
+/* 8033BDF8 00337A58 40 82 00 20 */ bne lbl_8033BE18
+/* 8033BDFC 00337A5C 4B FF D2 25 */ bl current_time_hires
+/* 8033BE00 00337A60 80 98 00 10 */ lwz r4, 0x10(r24)
+/* 8033BE04 00337A64 80 18 00 14 */ lwz r0, 0x14(r24)
+/* 8033BE08 00337A68 7C 64 18 50 */ subf r3, r4, r3
+/* 8033BE0C 00337A6C 93 38 00 1C */ stw r25, 0x1c(r24)
+/* 8033BE10 00337A70 7C 00 1A 14 */ add r0, r0, r3
+/* 8033BE14 00337A74 90 18 00 14 */ stw r0, 0x14(r24)
+lbl_8033BE18:
+/* 8033BE18 00337A78 38 60 00 00 */ li r3, 0
+/* 8033BE1C 00337A7C 48 00 00 DC */ b lbl_8033BEF8
+lbl_8033BE20:
+/* 8033BE20 00337A80 80 61 02 10 */ lwz r3, 0x210(r1)
+/* 8033BE24 00337A84 28 03 00 01 */ cmplwi r3, 1
+/* 8033BE28 00337A88 40 81 00 34 */ ble lbl_8033BE5C
+/* 8033BE2C 00337A8C 38 03 FF FF */ addi r0, r3, -1
+/* 8033BE30 00337A90 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033BE34 00337A94 38 81 02 18 */ addi r4, r1, 0x218
+/* 8033BE38 00337A98 54 05 10 3A */ slwi r5, r0, 2
+/* 8033BE3C 00337A9C 4B E8 E4 39 */ bl memmove
+/* 8033BE40 00337AA0 80 01 02 10 */ lwz r0, 0x210(r1)
+/* 8033BE44 00337AA4 54 00 10 3A */ slwi r0, r0, 2
+/* 8033BE48 00337AA8 7F 38 01 2E */ stwx r25, r24, r0
+/* 8033BE4C 00337AAC 80 61 02 10 */ lwz r3, 0x210(r1)
+/* 8033BE50 00337AB0 38 03 FF FF */ addi r0, r3, -1
+/* 8033BE54 00337AB4 90 01 02 10 */ stw r0, 0x210(r1)
+/* 8033BE58 00337AB8 48 00 00 0C */ b lbl_8033BE64
+lbl_8033BE5C:
+/* 8033BE5C 00337ABC 93 21 02 10 */ stw r25, 0x210(r1)
+/* 8033BE60 00337AC0 93 21 02 14 */ stw r25, 0x214(r1)
+lbl_8033BE64:
+/* 8033BE64 00337AC4 3B 5A 00 04 */ addi r26, r26, 4
+/* 8033BE68 00337AC8 3B FF 00 01 */ addi r31, r31, 1
+lbl_8033BE6C:
+/* 8033BE6C 00337ACC 80 DC 00 00 */ lwz r6, 0(r28)
+/* 8033BE70 00337AD0 7C 1F 30 40 */ cmplw r31, r6
+/* 8033BE74 00337AD4 41 80 FD B4 */ blt lbl_8033BC28
+/* 8033BE78 00337AD8 80 81 02 10 */ lwz r4, 0x210(r1)
+/* 8033BE7C 00337ADC 38 61 02 14 */ addi r3, r1, 0x214
+/* 8033BE80 00337AE0 38 BC 00 04 */ addi r5, r28, 4
+/* 8033BE84 00337AE4 4B FF DA 81 */ bl gsiLargeIntCompare
+/* 8033BE88 00337AE8 2C 03 FF FF */ cmpwi r3, -1
+/* 8033BE8C 00337AEC 41 82 00 24 */ beq lbl_8033BEB0
+/* 8033BE90 00337AF0 80 9C 00 00 */ lwz r4, 0(r28)
+/* 8033BE94 00337AF4 7F C8 F3 78 */ mr r8, r30
+/* 8033BE98 00337AF8 80 C1 02 10 */ lwz r6, 0x210(r1)
+/* 8033BE9C 00337AFC 38 7C 00 04 */ addi r3, r28, 4
+/* 8033BEA0 00337B00 38 A1 02 14 */ addi r5, r1, 0x214
+/* 8033BEA4 00337B04 38 FE 00 04 */ addi r7, r30, 4
+/* 8033BEA8 00337B08 4B FF DD A1 */ bl gsiLargeIntSub
+/* 8033BEAC 00337B0C 48 00 00 14 */ b lbl_8033BEC0
+lbl_8033BEB0:
+/* 8033BEB0 00337B10 7F C3 F3 78 */ mr r3, r30
+/* 8033BEB4 00337B14 38 81 02 10 */ addi r4, r1, 0x210
+/* 8033BEB8 00337B18 38 A0 01 04 */ li r5, 0x104
+/* 8033BEBC 00337B1C 4B CC 81 45 */ bl memcpy
+lbl_8033BEC0:
+/* 8033BEC0 00337B20 3F 40 80 61 */ lis r26, lbl_80610BD0@ha
+/* 8033BEC4 00337B24 3B 5A 0B D0 */ addi r26, r26, lbl_80610BD0@l
+/* 8033BEC8 00337B28 80 1A 00 1C */ lwz r0, 0x1c(r26)
+/* 8033BECC 00337B2C 28 00 00 01 */ cmplwi r0, 1
+/* 8033BED0 00337B30 40 82 00 24 */ bne lbl_8033BEF4
+/* 8033BED4 00337B34 4B FF D1 4D */ bl current_time_hires
+/* 8033BED8 00337B38 80 BA 00 10 */ lwz r5, 0x10(r26)
+/* 8033BEDC 00337B3C 38 00 00 00 */ li r0, 0
+/* 8033BEE0 00337B40 80 9A 00 14 */ lwz r4, 0x14(r26)
+/* 8033BEE4 00337B44 7C 65 18 50 */ subf r3, r5, r3
+/* 8033BEE8 00337B48 90 1A 00 1C */ stw r0, 0x1c(r26)
+/* 8033BEEC 00337B4C 7C 04 1A 14 */ add r0, r4, r3
+/* 8033BEF0 00337B50 90 1A 00 14 */ stw r0, 0x14(r26)
+lbl_8033BEF4:
+/* 8033BEF4 00337B54 38 60 00 01 */ li r3, 1
+lbl_8033BEF8:
+/* 8033BEF8 00337B58 39 61 03 40 */ addi r11, r1, 0x340
+/* 8033BEFC 00337B5C 4B E8 B2 69 */ bl _restgpr_23
+/* 8033BF00 00337B60 80 01 03 44 */ lwz r0, 0x344(r1)
+/* 8033BF04 00337B64 7C 08 03 A6 */ mtlr r0
+/* 8033BF08 00337B68 38 21 03 40 */ addi r1, r1, 0x340
+/* 8033BF0C 00337B6C 4E 80 00 20 */ blr
+
+.global gsLargeIntReverseBytes
+gsLargeIntReverseBytes:
+/* 8033BF10 00337B70 80 03 00 00 */ lwz r0, 0(r3)
+/* 8033BF14 00337B74 2C 00 00 00 */ cmpwi r0, 0
+/* 8033BF18 00337B78 40 82 00 0C */ bne lbl_8033BF24
+/* 8033BF1C 00337B7C 38 60 00 01 */ li r3, 1
+/* 8033BF20 00337B80 4E 80 00 20 */ blr
+lbl_8033BF24:
+/* 8033BF24 00337B84 54 00 10 3A */ slwi r0, r0, 2
+/* 8033BF28 00337B88 38 83 00 04 */ addi r4, r3, 4
+/* 8033BF2C 00337B8C 7C 63 02 14 */ add r3, r3, r0
+/* 8033BF30 00337B90 38 63 00 03 */ addi r3, r3, 3
+/* 8033BF34 00337B94 48 00 00 1C */ b lbl_8033BF50
+lbl_8033BF38:
+/* 8033BF38 00337B98 88 A4 00 00 */ lbz r5, 0(r4)
+/* 8033BF3C 00337B9C 88 03 00 00 */ lbz r0, 0(r3)
+/* 8033BF40 00337BA0 98 04 00 00 */ stb r0, 0(r4)
+/* 8033BF44 00337BA4 38 84 00 01 */ addi r4, r4, 1
+/* 8033BF48 00337BA8 98 A3 00 00 */ stb r5, 0(r3)
+/* 8033BF4C 00337BAC 38 63 FF FF */ addi r3, r3, -1
+lbl_8033BF50:
+/* 8033BF50 00337BB0 7C 04 18 40 */ cmplw r4, r3
+/* 8033BF54 00337BB4 41 80 FF E4 */ blt lbl_8033BF38
+/* 8033BF58 00337BB8 38 60 00 01 */ li r3, 1
+/* 8033BF5C 00337BBC 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gsRC4.s b/asm/SDK/DWC/gamespy/gsRC4.s new file mode 100644 index 0000000..2e1fad3 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gsRC4.s @@ -0,0 +1,324 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global RC4Init
+RC4Init:
+/* 8033BF60 00337BC0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033BF64 00337BC4 2C 04 00 00 */ cmpwi r4, 0
+/* 8033BF68 00337BC8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033BF6C 00337BCC 3B E0 00 00 */ li r31, 0
+/* 8033BF70 00337BD0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033BF74 00337BD4 3B C0 00 00 */ li r30, 0
+/* 8033BF78 00337BD8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8033BF7C 00337BDC 41 82 03 14 */ beq lbl_8033C290
+/* 8033BF80 00337BE0 2C 05 00 00 */ cmpwi r5, 0
+/* 8033BF84 00337BE4 40 82 00 08 */ bne lbl_8033BF8C
+/* 8033BF88 00337BE8 48 00 03 08 */ b lbl_8033C290
+lbl_8033BF8C:
+/* 8033BF8C 00337BEC 38 C0 00 00 */ li r6, 0
+/* 8033BF90 00337BF0 38 00 00 08 */ li r0, 8
+/* 8033BF94 00337BF4 98 C3 00 00 */ stb r6, 0(r3)
+/* 8033BF98 00337BF8 3B A0 00 00 */ li r29, 0
+/* 8033BF9C 00337BFC 98 C3 00 01 */ stb r6, 1(r3)
+/* 8033BFA0 00337C00 7C 09 03 A6 */ mtctr r0
+lbl_8033BFA4:
+/* 8033BFA4 00337C04 7D 83 EA 14 */ add r12, r3, r29
+/* 8033BFA8 00337C08 39 7D 00 01 */ addi r11, r29, 1
+/* 8033BFAC 00337C0C 9B AC 00 02 */ stb r29, 2(r12)
+/* 8033BFB0 00337C10 39 5D 00 02 */ addi r10, r29, 2
+/* 8033BFB4 00337C14 39 3D 00 03 */ addi r9, r29, 3
+/* 8033BFB8 00337C18 39 1D 00 04 */ addi r8, r29, 4
+/* 8033BFBC 00337C1C 99 6C 00 03 */ stb r11, 3(r12)
+/* 8033BFC0 00337C20 38 FD 00 05 */ addi r7, r29, 5
+/* 8033BFC4 00337C24 38 DD 00 06 */ addi r6, r29, 6
+/* 8033BFC8 00337C28 38 1D 00 07 */ addi r0, r29, 7
+/* 8033BFCC 00337C2C 99 4C 00 04 */ stb r10, 4(r12)
+/* 8033BFD0 00337C30 39 7D 00 09 */ addi r11, r29, 9
+/* 8033BFD4 00337C34 39 5D 00 0A */ addi r10, r29, 0xa
+/* 8033BFD8 00337C38 99 2C 00 05 */ stb r9, 5(r12)
+/* 8033BFDC 00337C3C 39 3D 00 0B */ addi r9, r29, 0xb
+/* 8033BFE0 00337C40 99 0C 00 06 */ stb r8, 6(r12)
+/* 8033BFE4 00337C44 39 1D 00 0C */ addi r8, r29, 0xc
+/* 8033BFE8 00337C48 98 EC 00 07 */ stb r7, 7(r12)
+/* 8033BFEC 00337C4C 38 FD 00 0D */ addi r7, r29, 0xd
+/* 8033BFF0 00337C50 98 CC 00 08 */ stb r6, 8(r12)
+/* 8033BFF4 00337C54 38 DD 00 0E */ addi r6, r29, 0xe
+/* 8033BFF8 00337C58 3B BD 00 08 */ addi r29, r29, 8
+/* 8033BFFC 00337C5C 98 0C 00 09 */ stb r0, 9(r12)
+/* 8033C000 00337C60 7D 83 EA 14 */ add r12, r3, r29
+/* 8033C004 00337C64 38 1D 00 07 */ addi r0, r29, 7
+/* 8033C008 00337C68 9B AC 00 02 */ stb r29, 2(r12)
+/* 8033C00C 00337C6C 99 6C 00 03 */ stb r11, 3(r12)
+/* 8033C010 00337C70 39 7D 00 09 */ addi r11, r29, 9
+/* 8033C014 00337C74 99 4C 00 04 */ stb r10, 4(r12)
+/* 8033C018 00337C78 39 5D 00 0A */ addi r10, r29, 0xa
+/* 8033C01C 00337C7C 99 2C 00 05 */ stb r9, 5(r12)
+/* 8033C020 00337C80 39 3D 00 0B */ addi r9, r29, 0xb
+/* 8033C024 00337C84 99 0C 00 06 */ stb r8, 6(r12)
+/* 8033C028 00337C88 39 1D 00 0C */ addi r8, r29, 0xc
+/* 8033C02C 00337C8C 98 EC 00 07 */ stb r7, 7(r12)
+/* 8033C030 00337C90 38 FD 00 0D */ addi r7, r29, 0xd
+/* 8033C034 00337C94 98 CC 00 08 */ stb r6, 8(r12)
+/* 8033C038 00337C98 38 DD 00 0E */ addi r6, r29, 0xe
+/* 8033C03C 00337C9C 3B BD 00 08 */ addi r29, r29, 8
+/* 8033C040 00337CA0 98 0C 00 09 */ stb r0, 9(r12)
+/* 8033C044 00337CA4 7D 83 EA 14 */ add r12, r3, r29
+/* 8033C048 00337CA8 38 1D 00 07 */ addi r0, r29, 7
+/* 8033C04C 00337CAC 9B AC 00 02 */ stb r29, 2(r12)
+/* 8033C050 00337CB0 99 6C 00 03 */ stb r11, 3(r12)
+/* 8033C054 00337CB4 39 7D 00 09 */ addi r11, r29, 9
+/* 8033C058 00337CB8 99 4C 00 04 */ stb r10, 4(r12)
+/* 8033C05C 00337CBC 39 5D 00 0A */ addi r10, r29, 0xa
+/* 8033C060 00337CC0 99 2C 00 05 */ stb r9, 5(r12)
+/* 8033C064 00337CC4 39 3D 00 0B */ addi r9, r29, 0xb
+/* 8033C068 00337CC8 99 0C 00 06 */ stb r8, 6(r12)
+/* 8033C06C 00337CCC 39 1D 00 0C */ addi r8, r29, 0xc
+/* 8033C070 00337CD0 98 EC 00 07 */ stb r7, 7(r12)
+/* 8033C074 00337CD4 38 FD 00 0D */ addi r7, r29, 0xd
+/* 8033C078 00337CD8 98 CC 00 08 */ stb r6, 8(r12)
+/* 8033C07C 00337CDC 38 DD 00 0E */ addi r6, r29, 0xe
+/* 8033C080 00337CE0 3B BD 00 08 */ addi r29, r29, 8
+/* 8033C084 00337CE4 98 0C 00 09 */ stb r0, 9(r12)
+/* 8033C088 00337CE8 7D 83 EA 14 */ add r12, r3, r29
+/* 8033C08C 00337CEC 38 1D 00 07 */ addi r0, r29, 7
+/* 8033C090 00337CF0 9B AC 00 02 */ stb r29, 2(r12)
+/* 8033C094 00337CF4 3B BD 00 08 */ addi r29, r29, 8
+/* 8033C098 00337CF8 99 6C 00 03 */ stb r11, 3(r12)
+/* 8033C09C 00337CFC 99 4C 00 04 */ stb r10, 4(r12)
+/* 8033C0A0 00337D00 99 2C 00 05 */ stb r9, 5(r12)
+/* 8033C0A4 00337D04 99 0C 00 06 */ stb r8, 6(r12)
+/* 8033C0A8 00337D08 98 EC 00 07 */ stb r7, 7(r12)
+/* 8033C0AC 00337D0C 98 CC 00 08 */ stb r6, 8(r12)
+/* 8033C0B0 00337D10 98 0C 00 09 */ stb r0, 9(r12)
+/* 8033C0B4 00337D14 42 00 FE F0 */ bdnz lbl_8033BFA4
+/* 8033C0B8 00337D18 38 00 00 20 */ li r0, 0x20
+/* 8033C0BC 00337D1C 38 E0 00 00 */ li r7, 0
+/* 8033C0C0 00337D20 7C 09 03 A6 */ mtctr r0
+lbl_8033C0C4:
+/* 8033C0C4 00337D24 39 1E 00 01 */ addi r8, r30, 1
+/* 8033C0C8 00337D28 7C C3 3A 14 */ add r6, r3, r7
+/* 8033C0CC 00337D2C 7C 08 2B D6 */ divw r0, r8, r5
+/* 8033C0D0 00337D30 89 66 00 02 */ lbz r11, 2(r6)
+/* 8033C0D4 00337D34 7D 44 F0 AE */ lbzx r10, r4, r30
+/* 8033C0D8 00337D38 7D 3F 5A 14 */ add r9, r31, r11
+/* 8033C0DC 00337D3C 7D 2A 4A 14 */ add r9, r10, r9
+/* 8033C0E0 00337D40 55 2C 06 3E */ clrlwi r12, r9, 0x18
+/* 8033C0E4 00337D44 7C 00 29 D6 */ mullw r0, r0, r5
+/* 8033C0E8 00337D48 7D 43 62 14 */ add r10, r3, r12
+/* 8033C0EC 00337D4C 89 2A 00 02 */ lbz r9, 2(r10)
+/* 8033C0F0 00337D50 99 26 00 02 */ stb r9, 2(r6)
+/* 8033C0F4 00337D54 7C 00 40 50 */ subf r0, r0, r8
+/* 8033C0F8 00337D58 99 6A 00 02 */ stb r11, 2(r10)
+/* 8033C0FC 00337D5C 54 09 06 3E */ clrlwi r9, r0, 0x18
+/* 8033C100 00337D60 39 09 00 01 */ addi r8, r9, 1
+/* 8033C104 00337D64 89 66 00 03 */ lbz r11, 3(r6)
+/* 8033C108 00337D68 7C 08 2B D6 */ divw r0, r8, r5
+/* 8033C10C 00337D6C 7D 44 48 AE */ lbzx r10, r4, r9
+/* 8033C110 00337D70 7D 2C 5A 14 */ add r9, r12, r11
+/* 8033C114 00337D74 7D 2A 4A 14 */ add r9, r10, r9
+/* 8033C118 00337D78 55 2C 06 3E */ clrlwi r12, r9, 0x18
+/* 8033C11C 00337D7C 7D 43 62 14 */ add r10, r3, r12
+/* 8033C120 00337D80 7C 00 29 D6 */ mullw r0, r0, r5
+/* 8033C124 00337D84 89 2A 00 02 */ lbz r9, 2(r10)
+/* 8033C128 00337D88 99 26 00 03 */ stb r9, 3(r6)
+/* 8033C12C 00337D8C 99 6A 00 02 */ stb r11, 2(r10)
+/* 8033C130 00337D90 7C 00 40 50 */ subf r0, r0, r8
+/* 8033C134 00337D94 54 09 06 3E */ clrlwi r9, r0, 0x18
+/* 8033C138 00337D98 89 66 00 04 */ lbz r11, 4(r6)
+/* 8033C13C 00337D9C 39 09 00 01 */ addi r8, r9, 1
+/* 8033C140 00337DA0 7D 44 48 AE */ lbzx r10, r4, r9
+/* 8033C144 00337DA4 7C 08 2B D6 */ divw r0, r8, r5
+/* 8033C148 00337DA8 7D 2C 5A 14 */ add r9, r12, r11
+/* 8033C14C 00337DAC 7D 2A 4A 14 */ add r9, r10, r9
+/* 8033C150 00337DB0 55 2C 06 3E */ clrlwi r12, r9, 0x18
+/* 8033C154 00337DB4 7D 43 62 14 */ add r10, r3, r12
+/* 8033C158 00337DB8 89 2A 00 02 */ lbz r9, 2(r10)
+/* 8033C15C 00337DBC 7C 00 29 D6 */ mullw r0, r0, r5
+/* 8033C160 00337DC0 99 26 00 04 */ stb r9, 4(r6)
+/* 8033C164 00337DC4 99 6A 00 02 */ stb r11, 2(r10)
+/* 8033C168 00337DC8 89 66 00 05 */ lbz r11, 5(r6)
+/* 8033C16C 00337DCC 7C 00 40 50 */ subf r0, r0, r8
+/* 8033C170 00337DD0 54 0A 06 3E */ clrlwi r10, r0, 0x18
+/* 8033C174 00337DD4 7D 0C 5A 14 */ add r8, r12, r11
+/* 8033C178 00337DD8 39 2A 00 01 */ addi r9, r10, 1
+/* 8033C17C 00337DDC 7D 44 50 AE */ lbzx r10, r4, r10
+/* 8033C180 00337DE0 7C 09 2B D6 */ divw r0, r9, r5
+/* 8033C184 00337DE4 7D 0A 42 14 */ add r8, r10, r8
+/* 8033C188 00337DE8 55 0C 06 3E */ clrlwi r12, r8, 0x18
+/* 8033C18C 00337DEC 7D 43 62 14 */ add r10, r3, r12
+/* 8033C190 00337DF0 89 0A 00 02 */ lbz r8, 2(r10)
+/* 8033C194 00337DF4 99 06 00 05 */ stb r8, 5(r6)
+/* 8033C198 00337DF8 7C 00 29 D6 */ mullw r0, r0, r5
+/* 8033C19C 00337DFC 99 6A 00 02 */ stb r11, 2(r10)
+/* 8033C1A0 00337E00 89 66 00 06 */ lbz r11, 6(r6)
+/* 8033C1A4 00337E04 7D 0C 5A 14 */ add r8, r12, r11
+/* 8033C1A8 00337E08 7C 00 48 50 */ subf r0, r0, r9
+/* 8033C1AC 00337E0C 54 0A 06 3E */ clrlwi r10, r0, 0x18
+/* 8033C1B0 00337E10 39 2A 00 01 */ addi r9, r10, 1
+/* 8033C1B4 00337E14 7D 44 50 AE */ lbzx r10, r4, r10
+/* 8033C1B8 00337E18 7C 09 2B D6 */ divw r0, r9, r5
+/* 8033C1BC 00337E1C 7D 0A 42 14 */ add r8, r10, r8
+/* 8033C1C0 00337E20 55 0C 06 3E */ clrlwi r12, r8, 0x18
+/* 8033C1C4 00337E24 7D 43 62 14 */ add r10, r3, r12
+/* 8033C1C8 00337E28 89 0A 00 02 */ lbz r8, 2(r10)
+/* 8033C1CC 00337E2C 99 06 00 06 */ stb r8, 6(r6)
+/* 8033C1D0 00337E30 7D 00 29 D6 */ mullw r8, r0, r5
+/* 8033C1D4 00337E34 99 6A 00 02 */ stb r11, 2(r10)
+/* 8033C1D8 00337E38 89 46 00 07 */ lbz r10, 7(r6)
+/* 8033C1DC 00337E3C 7C 0C 52 14 */ add r0, r12, r10
+/* 8033C1E0 00337E40 7D 08 48 50 */ subf r8, r8, r9
+/* 8033C1E4 00337E44 55 0B 06 3E */ clrlwi r11, r8, 0x18
+/* 8033C1E8 00337E48 7D 04 58 AE */ lbzx r8, r4, r11
+/* 8033C1EC 00337E4C 7C 08 02 14 */ add r0, r8, r0
+/* 8033C1F0 00337E50 54 0C 06 3E */ clrlwi r12, r0, 0x18
+/* 8033C1F4 00337E54 7D 23 62 14 */ add r9, r3, r12
+/* 8033C1F8 00337E58 88 09 00 02 */ lbz r0, 2(r9)
+/* 8033C1FC 00337E5C 98 06 00 07 */ stb r0, 7(r6)
+/* 8033C200 00337E60 39 0B 00 01 */ addi r8, r11, 1
+/* 8033C204 00337E64 99 49 00 02 */ stb r10, 2(r9)
+/* 8033C208 00337E68 7C 08 2B D6 */ divw r0, r8, r5
+/* 8033C20C 00337E6C 38 E7 00 08 */ addi r7, r7, 8
+/* 8033C210 00337E70 89 66 00 08 */ lbz r11, 8(r6)
+/* 8033C214 00337E74 7D 2C 5A 14 */ add r9, r12, r11
+/* 8033C218 00337E78 7C 00 29 D6 */ mullw r0, r0, r5
+/* 8033C21C 00337E7C 7C 00 40 50 */ subf r0, r0, r8
+/* 8033C220 00337E80 54 0A 06 3E */ clrlwi r10, r0, 0x18
+/* 8033C224 00337E84 39 0A 00 01 */ addi r8, r10, 1
+/* 8033C228 00337E88 7D 44 50 AE */ lbzx r10, r4, r10
+/* 8033C22C 00337E8C 7C 08 2B D6 */ divw r0, r8, r5
+/* 8033C230 00337E90 7D 2A 4A 14 */ add r9, r10, r9
+/* 8033C234 00337E94 55 2C 06 3E */ clrlwi r12, r9, 0x18
+/* 8033C238 00337E98 7D 43 62 14 */ add r10, r3, r12
+/* 8033C23C 00337E9C 89 2A 00 02 */ lbz r9, 2(r10)
+/* 8033C240 00337EA0 99 26 00 08 */ stb r9, 8(r6)
+/* 8033C244 00337EA4 7C 00 29 D6 */ mullw r0, r0, r5
+/* 8033C248 00337EA8 99 6A 00 02 */ stb r11, 2(r10)
+/* 8033C24C 00337EAC 89 66 00 09 */ lbz r11, 9(r6)
+/* 8033C250 00337EB0 7D 2C 5A 14 */ add r9, r12, r11
+/* 8033C254 00337EB4 7C 00 40 50 */ subf r0, r0, r8
+/* 8033C258 00337EB8 54 0A 06 3E */ clrlwi r10, r0, 0x18
+/* 8033C25C 00337EBC 39 0A 00 01 */ addi r8, r10, 1
+/* 8033C260 00337EC0 7D 44 50 AE */ lbzx r10, r4, r10
+/* 8033C264 00337EC4 7C 08 2B D6 */ divw r0, r8, r5
+/* 8033C268 00337EC8 7D 2A 4A 14 */ add r9, r10, r9
+/* 8033C26C 00337ECC 55 3F 06 3E */ clrlwi r31, r9, 0x18
+/* 8033C270 00337ED0 7D 43 FA 14 */ add r10, r3, r31
+/* 8033C274 00337ED4 89 2A 00 02 */ lbz r9, 2(r10)
+/* 8033C278 00337ED8 99 26 00 09 */ stb r9, 9(r6)
+/* 8033C27C 00337EDC 7C 00 29 D6 */ mullw r0, r0, r5
+/* 8033C280 00337EE0 99 6A 00 02 */ stb r11, 2(r10)
+/* 8033C284 00337EE4 7C 00 40 50 */ subf r0, r0, r8
+/* 8033C288 00337EE8 54 1E 06 3E */ clrlwi r30, r0, 0x18
+/* 8033C28C 00337EEC 42 00 FE 38 */ bdnz lbl_8033C0C4
+lbl_8033C290:
+/* 8033C290 00337EF0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033C294 00337EF4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033C298 00337EF8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8033C29C 00337EFC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033C2A0 00337F00 4E 80 00 20 */ blr
+
+.global RC4Encrypt
+RC4Encrypt:
+/* 8033C2A4 00337F04 2C 06 00 00 */ cmpwi r6, 0
+/* 8033C2A8 00337F08 4C 81 00 20 */ blelr
+/* 8033C2AC 00337F0C 54 C0 F8 7F */ rlwinm. r0, r6, 0x1f, 1, 0x1f
+/* 8033C2B0 00337F10 7C 09 03 A6 */ mtctr r0
+/* 8033C2B4 00337F14 41 82 00 F8 */ beq lbl_8033C3AC
+lbl_8033C2B8:
+/* 8033C2B8 00337F18 89 03 00 00 */ lbz r8, 0(r3)
+/* 8033C2BC 00337F1C 88 E3 00 01 */ lbz r7, 1(r3)
+/* 8033C2C0 00337F20 39 08 00 01 */ addi r8, r8, 1
+/* 8033C2C4 00337F24 89 24 00 00 */ lbz r9, 0(r4)
+/* 8033C2C8 00337F28 55 00 06 3E */ clrlwi r0, r8, 0x18
+/* 8033C2CC 00337F2C 99 03 00 00 */ stb r8, 0(r3)
+/* 8033C2D0 00337F30 7D 03 02 14 */ add r8, r3, r0
+/* 8033C2D4 00337F34 88 08 00 02 */ lbz r0, 2(r8)
+/* 8033C2D8 00337F38 7C 07 02 14 */ add r0, r7, r0
+/* 8033C2DC 00337F3C 98 03 00 01 */ stb r0, 1(r3)
+/* 8033C2E0 00337F40 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8033C2E4 00337F44 7C E3 02 14 */ add r7, r3, r0
+/* 8033C2E8 00337F48 89 48 00 02 */ lbz r10, 2(r8)
+/* 8033C2EC 00337F4C 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C2F0 00337F50 98 08 00 02 */ stb r0, 2(r8)
+/* 8033C2F4 00337F54 99 47 00 02 */ stb r10, 2(r7)
+/* 8033C2F8 00337F58 88 E3 00 00 */ lbz r7, 0(r3)
+/* 8033C2FC 00337F5C 88 03 00 01 */ lbz r0, 1(r3)
+/* 8033C300 00337F60 7D 03 3A 14 */ add r8, r3, r7
+/* 8033C304 00337F64 7C E3 02 14 */ add r7, r3, r0
+/* 8033C308 00337F68 89 08 00 02 */ lbz r8, 2(r8)
+/* 8033C30C 00337F6C 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C310 00337F70 7C 08 02 14 */ add r0, r8, r0
+/* 8033C314 00337F74 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8033C318 00337F78 7C E3 02 14 */ add r7, r3, r0
+/* 8033C31C 00337F7C 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C320 00337F80 7D 20 02 78 */ xor r0, r9, r0
+/* 8033C324 00337F84 89 24 00 01 */ lbz r9, 1(r4)
+/* 8033C328 00337F88 98 05 00 00 */ stb r0, 0(r5)
+/* 8033C32C 00337F8C 38 84 00 02 */ addi r4, r4, 2
+/* 8033C330 00337F90 89 03 00 00 */ lbz r8, 0(r3)
+/* 8033C334 00337F94 88 E3 00 01 */ lbz r7, 1(r3)
+/* 8033C338 00337F98 39 08 00 01 */ addi r8, r8, 1
+/* 8033C33C 00337F9C 55 00 06 3E */ clrlwi r0, r8, 0x18
+/* 8033C340 00337FA0 99 03 00 00 */ stb r8, 0(r3)
+/* 8033C344 00337FA4 7D 03 02 14 */ add r8, r3, r0
+/* 8033C348 00337FA8 88 08 00 02 */ lbz r0, 2(r8)
+/* 8033C34C 00337FAC 7C 07 02 14 */ add r0, r7, r0
+/* 8033C350 00337FB0 98 03 00 01 */ stb r0, 1(r3)
+/* 8033C354 00337FB4 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8033C358 00337FB8 7C E3 02 14 */ add r7, r3, r0
+/* 8033C35C 00337FBC 89 48 00 02 */ lbz r10, 2(r8)
+/* 8033C360 00337FC0 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C364 00337FC4 98 08 00 02 */ stb r0, 2(r8)
+/* 8033C368 00337FC8 99 47 00 02 */ stb r10, 2(r7)
+/* 8033C36C 00337FCC 88 E3 00 00 */ lbz r7, 0(r3)
+/* 8033C370 00337FD0 88 03 00 01 */ lbz r0, 1(r3)
+/* 8033C374 00337FD4 7D 03 3A 14 */ add r8, r3, r7
+/* 8033C378 00337FD8 7C E3 02 14 */ add r7, r3, r0
+/* 8033C37C 00337FDC 89 08 00 02 */ lbz r8, 2(r8)
+/* 8033C380 00337FE0 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C384 00337FE4 7C 08 02 14 */ add r0, r8, r0
+/* 8033C388 00337FE8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8033C38C 00337FEC 7C E3 02 14 */ add r7, r3, r0
+/* 8033C390 00337FF0 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C394 00337FF4 7D 20 02 78 */ xor r0, r9, r0
+/* 8033C398 00337FF8 98 05 00 01 */ stb r0, 1(r5)
+/* 8033C39C 00337FFC 38 A5 00 02 */ addi r5, r5, 2
+/* 8033C3A0 00338000 42 00 FF 18 */ bdnz lbl_8033C2B8
+/* 8033C3A4 00338004 70 C6 00 01 */ andi. r6, r6, 1
+/* 8033C3A8 00338008 4D 82 00 20 */ beqlr
+lbl_8033C3AC:
+/* 8033C3AC 0033800C 7C C9 03 A6 */ mtctr r6
+lbl_8033C3B0:
+/* 8033C3B0 00338010 89 03 00 00 */ lbz r8, 0(r3)
+/* 8033C3B4 00338014 89 24 00 00 */ lbz r9, 0(r4)
+/* 8033C3B8 00338018 38 84 00 01 */ addi r4, r4, 1
+/* 8033C3BC 0033801C 39 08 00 01 */ addi r8, r8, 1
+/* 8033C3C0 00338020 88 E3 00 01 */ lbz r7, 1(r3)
+/* 8033C3C4 00338024 55 00 06 3E */ clrlwi r0, r8, 0x18
+/* 8033C3C8 00338028 99 03 00 00 */ stb r8, 0(r3)
+/* 8033C3CC 0033802C 7D 03 02 14 */ add r8, r3, r0
+/* 8033C3D0 00338030 88 08 00 02 */ lbz r0, 2(r8)
+/* 8033C3D4 00338034 7C 07 02 14 */ add r0, r7, r0
+/* 8033C3D8 00338038 98 03 00 01 */ stb r0, 1(r3)
+/* 8033C3DC 0033803C 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8033C3E0 00338040 7C E3 02 14 */ add r7, r3, r0
+/* 8033C3E4 00338044 89 48 00 02 */ lbz r10, 2(r8)
+/* 8033C3E8 00338048 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C3EC 0033804C 98 08 00 02 */ stb r0, 2(r8)
+/* 8033C3F0 00338050 99 47 00 02 */ stb r10, 2(r7)
+/* 8033C3F4 00338054 88 E3 00 00 */ lbz r7, 0(r3)
+/* 8033C3F8 00338058 88 03 00 01 */ lbz r0, 1(r3)
+/* 8033C3FC 0033805C 7D 03 3A 14 */ add r8, r3, r7
+/* 8033C400 00338060 7C E3 02 14 */ add r7, r3, r0
+/* 8033C404 00338064 89 08 00 02 */ lbz r8, 2(r8)
+/* 8033C408 00338068 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C40C 0033806C 7C 08 02 14 */ add r0, r8, r0
+/* 8033C410 00338070 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8033C414 00338074 7C E3 02 14 */ add r7, r3, r0
+/* 8033C418 00338078 88 07 00 02 */ lbz r0, 2(r7)
+/* 8033C41C 0033807C 7D 20 02 78 */ xor r0, r9, r0
+/* 8033C420 00338080 98 05 00 00 */ stb r0, 0(r5)
+/* 8033C424 00338084 38 A5 00 01 */ addi r5, r5, 1
+/* 8033C428 00338088 42 00 FF 88 */ bdnz lbl_8033C3B0
+/* 8033C42C 0033808C 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gsSHA1.s b/asm/SDK/DWC/gamespy/gsSHA1.s new file mode 100644 index 0000000..bdc93e1 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gsSHA1.s @@ -0,0 +1,671 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+
+.global SHA1Reset
+SHA1Reset:
+/* 8033C430 00338090 2C 03 00 00 */ cmpwi r3, 0
+/* 8033C434 00338094 40 82 00 0C */ bne lbl_8033C440
+/* 8033C438 00338098 38 60 00 01 */ li r3, 1
+/* 8033C43C 0033809C 4E 80 00 20 */ blr
+lbl_8033C440:
+/* 8033C440 003380A0 3D 00 67 45 */ lis r8, 0x67452301@ha
+/* 8033C444 003380A4 3C E0 EF CE */ lis r7, 0xEFCDAB89@ha
+/* 8033C448 003380A8 39 20 00 00 */ li r9, 0
+/* 8033C44C 003380AC 3C C0 98 BB */ lis r6, 0x98BADCFE@ha
+/* 8033C450 003380B0 3C A0 10 32 */ lis r5, 0x10325476@ha
+/* 8033C454 003380B4 3C 80 C3 D3 */ lis r4, 0xC3D2E1F0@ha
+/* 8033C458 003380B8 39 08 23 01 */ addi r8, r8, 0x67452301@l
+/* 8033C45C 003380BC 38 E7 AB 89 */ addi r7, r7, 0xEFCDAB89@l
+/* 8033C460 003380C0 38 C6 DC FE */ addi r6, r6, 0x98BADCFE@l
+/* 8033C464 003380C4 38 A5 54 76 */ addi r5, r5, 0x10325476@l
+/* 8033C468 003380C8 38 04 E1 F0 */ addi r0, r4, 0xC3D2E1F0@l
+/* 8033C46C 003380CC 91 23 00 14 */ stw r9, 0x14(r3)
+/* 8033C470 003380D0 91 23 00 18 */ stw r9, 0x18(r3)
+/* 8033C474 003380D4 B1 23 00 1C */ sth r9, 0x1c(r3)
+/* 8033C478 003380D8 91 03 00 00 */ stw r8, 0(r3)
+/* 8033C47C 003380DC 90 E3 00 04 */ stw r7, 4(r3)
+/* 8033C480 003380E0 90 C3 00 08 */ stw r6, 8(r3)
+/* 8033C484 003380E4 90 A3 00 0C */ stw r5, 0xc(r3)
+/* 8033C488 003380E8 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8033C48C 003380EC 91 23 00 60 */ stw r9, 0x60(r3)
+/* 8033C490 003380F0 91 23 00 64 */ stw r9, 0x64(r3)
+/* 8033C494 003380F4 38 60 00 00 */ li r3, 0
+/* 8033C498 003380F8 4E 80 00 20 */ blr
+
+.global SHA1Result
+SHA1Result:
+/* 8033C49C 003380FC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033C4A0 00338100 7C 08 02 A6 */ mflr r0
+/* 8033C4A4 00338104 2C 03 00 00 */ cmpwi r3, 0
+/* 8033C4A8 00338108 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033C4AC 0033810C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8033C4B0 00338110 7C 9F 23 78 */ mr r31, r4
+/* 8033C4B4 00338114 93 C1 00 08 */ stw r30, 8(r1)
+/* 8033C4B8 00338118 7C 7E 1B 78 */ mr r30, r3
+/* 8033C4BC 0033811C 41 82 00 0C */ beq lbl_8033C4C8
+/* 8033C4C0 00338120 2C 04 00 00 */ cmpwi r4, 0
+/* 8033C4C4 00338124 40 82 00 0C */ bne lbl_8033C4D0
+lbl_8033C4C8:
+/* 8033C4C8 00338128 38 60 00 01 */ li r3, 1
+/* 8033C4CC 0033812C 48 00 01 A8 */ b lbl_8033C674
+lbl_8033C4D0:
+/* 8033C4D0 00338130 80 03 00 64 */ lwz r0, 0x64(r3)
+/* 8033C4D4 00338134 2C 00 00 00 */ cmpwi r0, 0
+/* 8033C4D8 00338138 41 82 00 0C */ beq lbl_8033C4E4
+/* 8033C4DC 0033813C 7C 03 03 78 */ mr r3, r0
+/* 8033C4E0 00338140 48 00 01 94 */ b lbl_8033C674
+lbl_8033C4E4:
+/* 8033C4E4 00338144 80 03 00 60 */ lwz r0, 0x60(r3)
+/* 8033C4E8 00338148 2C 00 00 00 */ cmpwi r0, 0
+/* 8033C4EC 0033814C 40 82 00 D0 */ bne lbl_8033C5BC
+/* 8033C4F0 00338150 48 00 07 C5 */ bl SHA1PadMessage
+/* 8033C4F4 00338154 38 00 00 02 */ li r0, 2
+/* 8033C4F8 00338158 38 A0 00 00 */ li r5, 0
+/* 8033C4FC 0033815C 38 60 00 00 */ li r3, 0
+/* 8033C500 00338160 7C 09 03 A6 */ mtctr r0
+lbl_8033C504:
+/* 8033C504 00338164 7C 9E 2A 14 */ add r4, r30, r5
+/* 8033C508 00338168 38 A5 00 08 */ addi r5, r5, 8
+/* 8033C50C 0033816C 98 64 00 1E */ stb r3, 0x1e(r4)
+/* 8033C510 00338170 98 64 00 1F */ stb r3, 0x1f(r4)
+/* 8033C514 00338174 98 64 00 20 */ stb r3, 0x20(r4)
+/* 8033C518 00338178 98 64 00 21 */ stb r3, 0x21(r4)
+/* 8033C51C 0033817C 98 64 00 22 */ stb r3, 0x22(r4)
+/* 8033C520 00338180 98 64 00 23 */ stb r3, 0x23(r4)
+/* 8033C524 00338184 98 64 00 24 */ stb r3, 0x24(r4)
+/* 8033C528 00338188 98 64 00 25 */ stb r3, 0x25(r4)
+/* 8033C52C 0033818C 7C 9E 2A 14 */ add r4, r30, r5
+/* 8033C530 00338190 38 A5 00 08 */ addi r5, r5, 8
+/* 8033C534 00338194 98 64 00 1E */ stb r3, 0x1e(r4)
+/* 8033C538 00338198 98 64 00 1F */ stb r3, 0x1f(r4)
+/* 8033C53C 0033819C 98 64 00 20 */ stb r3, 0x20(r4)
+/* 8033C540 003381A0 98 64 00 21 */ stb r3, 0x21(r4)
+/* 8033C544 003381A4 98 64 00 22 */ stb r3, 0x22(r4)
+/* 8033C548 003381A8 98 64 00 23 */ stb r3, 0x23(r4)
+/* 8033C54C 003381AC 98 64 00 24 */ stb r3, 0x24(r4)
+/* 8033C550 003381B0 98 64 00 25 */ stb r3, 0x25(r4)
+/* 8033C554 003381B4 7C 9E 2A 14 */ add r4, r30, r5
+/* 8033C558 003381B8 38 A5 00 08 */ addi r5, r5, 8
+/* 8033C55C 003381BC 98 64 00 1E */ stb r3, 0x1e(r4)
+/* 8033C560 003381C0 98 64 00 1F */ stb r3, 0x1f(r4)
+/* 8033C564 003381C4 98 64 00 20 */ stb r3, 0x20(r4)
+/* 8033C568 003381C8 98 64 00 21 */ stb r3, 0x21(r4)
+/* 8033C56C 003381CC 98 64 00 22 */ stb r3, 0x22(r4)
+/* 8033C570 003381D0 98 64 00 23 */ stb r3, 0x23(r4)
+/* 8033C574 003381D4 98 64 00 24 */ stb r3, 0x24(r4)
+/* 8033C578 003381D8 98 64 00 25 */ stb r3, 0x25(r4)
+/* 8033C57C 003381DC 7C 9E 2A 14 */ add r4, r30, r5
+/* 8033C580 003381E0 38 A5 00 08 */ addi r5, r5, 8
+/* 8033C584 003381E4 98 64 00 1E */ stb r3, 0x1e(r4)
+/* 8033C588 003381E8 98 64 00 1F */ stb r3, 0x1f(r4)
+/* 8033C58C 003381EC 98 64 00 20 */ stb r3, 0x20(r4)
+/* 8033C590 003381F0 98 64 00 21 */ stb r3, 0x21(r4)
+/* 8033C594 003381F4 98 64 00 22 */ stb r3, 0x22(r4)
+/* 8033C598 003381F8 98 64 00 23 */ stb r3, 0x23(r4)
+/* 8033C59C 003381FC 98 64 00 24 */ stb r3, 0x24(r4)
+/* 8033C5A0 00338200 98 64 00 25 */ stb r3, 0x25(r4)
+/* 8033C5A4 00338204 42 00 FF 60 */ bdnz lbl_8033C504
+/* 8033C5A8 00338208 38 60 00 00 */ li r3, 0
+/* 8033C5AC 0033820C 38 00 00 01 */ li r0, 1
+/* 8033C5B0 00338210 90 7E 00 14 */ stw r3, 0x14(r30)
+/* 8033C5B4 00338214 90 7E 00 18 */ stw r3, 0x18(r30)
+/* 8033C5B8 00338218 90 1E 00 60 */ stw r0, 0x60(r30)
+lbl_8033C5BC:
+/* 8033C5BC 0033821C 38 00 00 04 */ li r0, 4
+/* 8033C5C0 00338220 38 80 00 00 */ li r4, 0
+/* 8033C5C4 00338224 7C 09 03 A6 */ mtctr r0
+lbl_8033C5C8:
+/* 8033C5C8 00338228 54 83 00 3A */ rlwinm r3, r4, 0, 0, 0x1d
+/* 8033C5CC 0033822C 54 80 07 BE */ clrlwi r0, r4, 0x1e
+/* 8033C5D0 00338230 20 00 00 03 */ subfic r0, r0, 3
+/* 8033C5D4 00338234 7C DE 18 2E */ lwzx r6, r30, r3
+/* 8033C5D8 00338238 54 00 18 38 */ slwi r0, r0, 3
+/* 8033C5DC 0033823C 38 A4 00 01 */ addi r5, r4, 1
+/* 8033C5E0 00338240 7C C8 04 30 */ srw r8, r6, r0
+/* 8033C5E4 00338244 7C 7F 22 14 */ add r3, r31, r4
+/* 8033C5E8 00338248 7D 1F 21 AE */ stbx r8, r31, r4
+/* 8033C5EC 0033824C 54 A0 07 BE */ clrlwi r0, r5, 0x1e
+/* 8033C5F0 00338250 54 A8 00 3A */ rlwinm r8, r5, 0, 0, 0x1d
+/* 8033C5F4 00338254 38 E4 00 02 */ addi r7, r4, 2
+/* 8033C5F8 00338258 20 00 00 03 */ subfic r0, r0, 3
+/* 8033C5FC 0033825C 7D 3E 40 2E */ lwzx r9, r30, r8
+/* 8033C600 00338260 54 08 18 38 */ slwi r8, r0, 3
+/* 8033C604 00338264 38 C4 00 03 */ addi r6, r4, 3
+/* 8033C608 00338268 7D 28 44 30 */ srw r8, r9, r8
+/* 8033C60C 0033826C 38 A4 00 04 */ addi r5, r4, 4
+/* 8033C610 00338270 99 03 00 01 */ stb r8, 1(r3)
+/* 8033C614 00338274 54 E0 07 BE */ clrlwi r0, r7, 0x1e
+/* 8033C618 00338278 54 E9 00 3A */ rlwinm r9, r7, 0, 0, 0x1d
+/* 8033C61C 0033827C 54 C7 00 3A */ rlwinm r7, r6, 0, 0, 0x1d
+/* 8033C620 00338280 21 00 00 03 */ subfic r8, r0, 3
+/* 8033C624 00338284 7D 3E 48 2E */ lwzx r9, r30, r9
+/* 8033C628 00338288 55 08 18 38 */ slwi r8, r8, 3
+/* 8033C62C 0033828C 54 C0 07 BE */ clrlwi r0, r6, 0x1e
+/* 8033C630 00338290 7D 28 44 30 */ srw r8, r9, r8
+/* 8033C634 00338294 38 84 00 05 */ addi r4, r4, 5
+/* 8033C638 00338298 99 03 00 02 */ stb r8, 2(r3)
+/* 8033C63C 0033829C 20 C0 00 03 */ subfic r6, r0, 3
+/* 8033C640 003382A0 54 A0 07 BE */ clrlwi r0, r5, 0x1e
+/* 8033C644 003382A4 54 A5 00 3A */ rlwinm r5, r5, 0, 0, 0x1d
+/* 8033C648 003382A8 7C FE 38 2E */ lwzx r7, r30, r7
+/* 8033C64C 003382AC 54 C6 18 38 */ slwi r6, r6, 3
+/* 8033C650 003382B0 20 00 00 03 */ subfic r0, r0, 3
+/* 8033C654 003382B4 7C E6 34 30 */ srw r6, r7, r6
+/* 8033C658 003382B8 98 C3 00 03 */ stb r6, 3(r3)
+/* 8033C65C 003382BC 54 00 18 38 */ slwi r0, r0, 3
+/* 8033C660 003382C0 7C BE 28 2E */ lwzx r5, r30, r5
+/* 8033C664 003382C4 7C A0 04 30 */ srw r0, r5, r0
+/* 8033C668 003382C8 98 03 00 04 */ stb r0, 4(r3)
+/* 8033C66C 003382CC 42 00 FF 5C */ bdnz lbl_8033C5C8
+/* 8033C670 003382D0 38 60 00 00 */ li r3, 0
+lbl_8033C674:
+/* 8033C674 003382D4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033C678 003382D8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8033C67C 003382DC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8033C680 003382E0 7C 08 03 A6 */ mtlr r0
+/* 8033C684 003382E4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033C688 003382E8 4E 80 00 20 */ blr
+
+.global SHA1Input
+SHA1Input:
+/* 8033C68C 003382EC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8033C690 003382F0 7C 08 02 A6 */ mflr r0
+/* 8033C694 003382F4 2C 05 00 00 */ cmpwi r5, 0
+/* 8033C698 003382F8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8033C69C 003382FC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8033C6A0 00338300 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033C6A4 00338304 7C BE 2B 78 */ mr r30, r5
+/* 8033C6A8 00338308 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8033C6AC 0033830C 7C 9D 23 78 */ mr r29, r4
+/* 8033C6B0 00338310 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8033C6B4 00338314 7C 7C 1B 78 */ mr r28, r3
+/* 8033C6B8 00338318 40 82 00 0C */ bne lbl_8033C6C4
+/* 8033C6BC 0033831C 38 60 00 00 */ li r3, 0
+/* 8033C6C0 00338320 48 00 00 C0 */ b lbl_8033C780
+lbl_8033C6C4:
+/* 8033C6C4 00338324 2C 03 00 00 */ cmpwi r3, 0
+/* 8033C6C8 00338328 41 82 00 0C */ beq lbl_8033C6D4
+/* 8033C6CC 0033832C 2C 04 00 00 */ cmpwi r4, 0
+/* 8033C6D0 00338330 40 82 00 0C */ bne lbl_8033C6DC
+lbl_8033C6D4:
+/* 8033C6D4 00338334 38 60 00 01 */ li r3, 1
+/* 8033C6D8 00338338 48 00 00 A8 */ b lbl_8033C780
+lbl_8033C6DC:
+/* 8033C6DC 0033833C 80 03 00 60 */ lwz r0, 0x60(r3)
+/* 8033C6E0 00338340 2C 00 00 00 */ cmpwi r0, 0
+/* 8033C6E4 00338344 41 82 00 14 */ beq lbl_8033C6F8
+/* 8033C6E8 00338348 38 00 00 03 */ li r0, 3
+/* 8033C6EC 0033834C 90 03 00 64 */ stw r0, 0x64(r3)
+/* 8033C6F0 00338350 38 60 00 03 */ li r3, 3
+/* 8033C6F4 00338354 48 00 00 8C */ b lbl_8033C780
+lbl_8033C6F8:
+/* 8033C6F8 00338358 80 63 00 64 */ lwz r3, 0x64(r3)
+/* 8033C6FC 0033835C 2C 03 00 00 */ cmpwi r3, 0
+/* 8033C700 00338360 41 82 00 08 */ beq lbl_8033C708
+/* 8033C704 00338364 48 00 00 7C */ b lbl_8033C780
+lbl_8033C708:
+/* 8033C708 00338368 3B E0 00 01 */ li r31, 1
+/* 8033C70C 0033836C 48 00 00 58 */ b lbl_8033C764
+lbl_8033C710:
+/* 8033C710 00338370 A8 9C 00 1C */ lha r4, 0x1c(r28)
+/* 8033C714 00338374 88 1D 00 00 */ lbz r0, 0(r29)
+/* 8033C718 00338378 7C 7C 22 14 */ add r3, r28, r4
+/* 8033C71C 0033837C 38 84 00 01 */ addi r4, r4, 1
+/* 8033C720 00338380 98 03 00 1E */ stb r0, 0x1e(r3)
+/* 8033C724 00338384 80 1C 00 14 */ lwz r0, 0x14(r28)
+/* 8033C728 00338388 B0 9C 00 1C */ sth r4, 0x1c(r28)
+/* 8033C72C 0033838C 34 00 00 08 */ addic. r0, r0, 8
+/* 8033C730 00338390 90 1C 00 14 */ stw r0, 0x14(r28)
+/* 8033C734 00338394 40 82 00 18 */ bne lbl_8033C74C
+/* 8033C738 00338398 80 1C 00 18 */ lwz r0, 0x18(r28)
+/* 8033C73C 0033839C 34 00 00 01 */ addic. r0, r0, 1
+/* 8033C740 003383A0 90 1C 00 18 */ stw r0, 0x18(r28)
+/* 8033C744 003383A4 40 82 00 08 */ bne lbl_8033C74C
+/* 8033C748 003383A8 93 FC 00 64 */ stw r31, 0x64(r28)
+lbl_8033C74C:
+/* 8033C74C 003383AC A8 1C 00 1C */ lha r0, 0x1c(r28)
+/* 8033C750 003383B0 2C 00 00 40 */ cmpwi r0, 0x40
+/* 8033C754 003383B4 40 82 00 0C */ bne lbl_8033C760
+/* 8033C758 003383B8 7F 83 E3 78 */ mr r3, r28
+/* 8033C75C 003383BC 48 00 00 45 */ bl SHA1ProcessMessageBlock
+lbl_8033C760:
+/* 8033C760 003383C0 3B BD 00 01 */ addi r29, r29, 1
+lbl_8033C764:
+/* 8033C764 003383C4 2C 1E 00 00 */ cmpwi r30, 0
+/* 8033C768 003383C8 3B DE FF FF */ addi r30, r30, -1
+/* 8033C76C 003383CC 41 82 00 10 */ beq lbl_8033C77C
+/* 8033C770 003383D0 80 1C 00 64 */ lwz r0, 0x64(r28)
+/* 8033C774 003383D4 2C 00 00 00 */ cmpwi r0, 0
+/* 8033C778 003383D8 41 82 FF 98 */ beq lbl_8033C710
+lbl_8033C77C:
+/* 8033C77C 003383DC 38 60 00 00 */ li r3, 0
+lbl_8033C780:
+/* 8033C780 003383E0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8033C784 003383E4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8033C788 003383E8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8033C78C 003383EC 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8033C790 003383F0 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8033C794 003383F4 7C 08 03 A6 */ mtlr r0
+/* 8033C798 003383F8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8033C79C 003383FC 4E 80 00 20 */ blr
+
+.global SHA1ProcessMessageBlock
+SHA1ProcessMessageBlock:
+/* 8033C7A0 00338400 94 21 FE A0 */ stwu r1, -0x160(r1)
+/* 8033C7A4 00338404 7C 08 02 A6 */ mflr r0
+/* 8033C7A8 00338408 90 01 01 64 */ stw r0, 0x164(r1)
+/* 8033C7AC 0033840C 39 61 01 60 */ addi r11, r1, 0x160
+/* 8033C7B0 00338410 4B E8 A9 75 */ bl _savegpr_26
+/* 8033C7B4 00338414 3C 80 80 40 */ lis r4, lbl_80400004@ha
+/* 8033C7B8 00338418 87 C4 25 50 */ lwzu r30, 0x2550(r4)
+/* 8033C7BC 0033841C 38 00 00 08 */ li r0, 8
+/* 8033C7C0 00338420 39 21 00 08 */ addi r9, r1, 8
+/* 8033C7C4 00338424 83 E4 00 04 */ lwz r31, lbl_80400004@l(r4)
+/* 8033C7C8 00338428 39 00 00 00 */ li r8, 0
+/* 8033C7CC 0033842C 81 84 00 08 */ lwz r12, 8(r4)
+/* 8033C7D0 00338430 81 64 00 0C */ lwz r11, 0xc(r4)
+/* 8033C7D4 00338434 7C 09 03 A6 */ mtctr r0
+lbl_8033C7D8:
+/* 8033C7D8 00338438 7D 43 42 14 */ add r10, r3, r8
+/* 8033C7DC 0033843C 39 08 00 04 */ addi r8, r8, 4
+/* 8033C7E0 00338440 88 EA 00 1E */ lbz r7, 0x1e(r10)
+/* 8033C7E4 00338444 88 AA 00 1F */ lbz r5, 0x1f(r10)
+/* 8033C7E8 00338448 54 E6 C0 0E */ slwi r6, r7, 0x18
+/* 8033C7EC 0033844C 88 8A 00 20 */ lbz r4, 0x20(r10)
+/* 8033C7F0 00338450 90 C9 00 00 */ stw r6, 0(r9)
+/* 8033C7F4 00338454 50 A6 82 1E */ rlwimi r6, r5, 0x10, 8, 0xf
+/* 8033C7F8 00338458 88 0A 00 21 */ lbz r0, 0x21(r10)
+/* 8033C7FC 0033845C 7D 43 42 14 */ add r10, r3, r8
+/* 8033C800 00338460 90 C9 00 00 */ stw r6, 0(r9)
+/* 8033C804 00338464 50 86 44 2E */ rlwimi r6, r4, 8, 0x10, 0x17
+/* 8033C808 00338468 88 EA 00 1E */ lbz r7, 0x1e(r10)
+/* 8033C80C 0033846C 7C C0 03 78 */ or r0, r6, r0
+/* 8033C810 00338470 90 C9 00 00 */ stw r6, 0(r9)
+/* 8033C814 00338474 39 08 00 04 */ addi r8, r8, 4
+/* 8033C818 00338478 88 AA 00 1F */ lbz r5, 0x1f(r10)
+/* 8033C81C 0033847C 54 E6 C0 0E */ slwi r6, r7, 0x18
+/* 8033C820 00338480 90 09 00 00 */ stw r0, 0(r9)
+/* 8033C824 00338484 88 8A 00 20 */ lbz r4, 0x20(r10)
+/* 8033C828 00338488 50 A6 82 1E */ rlwimi r6, r5, 0x10, 8, 0xf
+/* 8033C82C 0033848C 88 0A 00 21 */ lbz r0, 0x21(r10)
+/* 8033C830 00338490 50 86 44 2E */ rlwimi r6, r4, 8, 0x10, 0x17
+/* 8033C834 00338494 7C C0 03 78 */ or r0, r6, r0
+/* 8033C838 00338498 90 09 00 04 */ stw r0, 4(r9)
+/* 8033C83C 0033849C 39 29 00 08 */ addi r9, r9, 8
+/* 8033C840 003384A0 42 00 FF 98 */ bdnz lbl_8033C7D8
+/* 8033C844 003384A4 38 00 00 10 */ li r0, 0x10
+/* 8033C848 003384A8 38 E1 00 48 */ addi r7, r1, 0x48
+/* 8033C84C 003384AC 7C 09 03 A6 */ mtctr r0
+lbl_8033C850:
+/* 8033C850 003384B0 80 C7 FF C0 */ lwz r6, -0x40(r7)
+/* 8033C854 003384B4 80 A7 FF C8 */ lwz r5, -0x38(r7)
+/* 8033C858 003384B8 80 87 FF F4 */ lwz r4, -0xc(r7)
+/* 8033C85C 003384BC 80 07 FF E0 */ lwz r0, -0x20(r7)
+/* 8033C860 003384C0 7C C5 2A 78 */ xor r5, r6, r5
+/* 8033C864 003384C4 7C 80 02 78 */ xor r0, r4, r0
+/* 8033C868 003384C8 7C A0 02 78 */ xor r0, r5, r0
+/* 8033C86C 003384CC 54 00 08 3E */ rotlwi r0, r0, 1
+/* 8033C870 003384D0 90 07 00 00 */ stw r0, 0(r7)
+/* 8033C874 003384D4 80 C7 FF C4 */ lwz r6, -0x3c(r7)
+/* 8033C878 003384D8 80 A7 FF CC */ lwz r5, -0x34(r7)
+/* 8033C87C 003384DC 80 87 FF F8 */ lwz r4, -8(r7)
+/* 8033C880 003384E0 80 07 FF E4 */ lwz r0, -0x1c(r7)
+/* 8033C884 003384E4 7C C5 2A 78 */ xor r5, r6, r5
+/* 8033C888 003384E8 7C 80 02 78 */ xor r0, r4, r0
+/* 8033C88C 003384EC 7C A0 02 78 */ xor r0, r5, r0
+/* 8033C890 003384F0 54 00 08 3E */ rotlwi r0, r0, 1
+/* 8033C894 003384F4 90 07 00 04 */ stw r0, 4(r7)
+/* 8033C898 003384F8 80 C7 FF C8 */ lwz r6, -0x38(r7)
+/* 8033C89C 003384FC 80 A7 FF D0 */ lwz r5, -0x30(r7)
+/* 8033C8A0 00338500 80 87 FF FC */ lwz r4, -4(r7)
+/* 8033C8A4 00338504 80 07 FF E8 */ lwz r0, -0x18(r7)
+/* 8033C8A8 00338508 7C C5 2A 78 */ xor r5, r6, r5
+/* 8033C8AC 0033850C 7C 80 02 78 */ xor r0, r4, r0
+/* 8033C8B0 00338510 7C A0 02 78 */ xor r0, r5, r0
+/* 8033C8B4 00338514 54 00 08 3E */ rotlwi r0, r0, 1
+/* 8033C8B8 00338518 90 07 00 08 */ stw r0, 8(r7)
+/* 8033C8BC 0033851C 80 C7 FF CC */ lwz r6, -0x34(r7)
+/* 8033C8C0 00338520 80 A7 FF D4 */ lwz r5, -0x2c(r7)
+/* 8033C8C4 00338524 80 87 00 00 */ lwz r4, 0(r7)
+/* 8033C8C8 00338528 80 07 FF EC */ lwz r0, -0x14(r7)
+/* 8033C8CC 0033852C 7C C5 2A 78 */ xor r5, r6, r5
+/* 8033C8D0 00338530 7C 80 02 78 */ xor r0, r4, r0
+/* 8033C8D4 00338534 7C A0 02 78 */ xor r0, r5, r0
+/* 8033C8D8 00338538 54 00 08 3E */ rotlwi r0, r0, 1
+/* 8033C8DC 0033853C 90 07 00 0C */ stw r0, 0xc(r7)
+/* 8033C8E0 00338540 38 E7 00 10 */ addi r7, r7, 0x10
+/* 8033C8E4 00338544 42 00 FF 6C */ bdnz lbl_8033C850
+/* 8033C8E8 00338548 38 C0 00 04 */ li r6, 4
+/* 8033C8EC 0033854C 38 81 00 08 */ addi r4, r1, 8
+/* 8033C8F0 00338550 80 03 00 00 */ lwz r0, 0(r3)
+/* 8033C8F4 00338554 81 43 00 04 */ lwz r10, 4(r3)
+/* 8033C8F8 00338558 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8033C8FC 0033855C 81 03 00 0C */ lwz r8, 0xc(r3)
+/* 8033C900 00338560 81 23 00 10 */ lwz r9, 0x10(r3)
+/* 8033C904 00338564 7C C9 03 A6 */ mtctr r6
+lbl_8033C908:
+/* 8033C908 00338568 7D 47 28 38 */ and r7, r10, r5
+/* 8033C90C 0033856C 7D 06 50 78 */ andc r6, r8, r10
+/* 8033C910 00338570 7C E6 33 78 */ or r6, r7, r6
+/* 8033C914 00338574 83 64 00 00 */ lwz r27, 0(r4)
+/* 8033C918 00338578 55 47 F0 3E */ rotlwi r7, r10, 0x1e
+/* 8033C91C 0033857C 54 0A 28 3E */ rotlwi r10, r0, 5
+/* 8033C920 00338580 7C C9 32 14 */ add r6, r9, r6
+/* 8033C924 00338584 7D 3E DA 14 */ add r9, r30, r27
+/* 8033C928 00338588 7C CA 32 14 */ add r6, r10, r6
+/* 8033C92C 0033858C 83 84 00 04 */ lwz r28, 4(r4)
+/* 8033C930 00338590 7F A9 32 14 */ add r29, r9, r6
+/* 8033C934 00338594 7C 09 38 38 */ and r9, r0, r7
+/* 8033C938 00338598 54 06 F0 3E */ rotlwi r6, r0, 0x1e
+/* 8033C93C 0033859C 7C A0 00 78 */ andc r0, r5, r0
+/* 8033C940 003385A0 7D 3B 03 78 */ or r27, r9, r0
+/* 8033C944 003385A4 57 AA 28 3E */ rotlwi r10, r29, 5
+/* 8033C948 003385A8 7D 08 DA 14 */ add r8, r8, r27
+/* 8033C94C 003385AC 80 04 00 08 */ lwz r0, 8(r4)
+/* 8033C950 003385B0 7D 0A 42 14 */ add r8, r10, r8
+/* 8033C954 003385B4 7F 7E E2 14 */ add r27, r30, r28
+/* 8033C958 003385B8 7F 5B 42 14 */ add r26, r27, r8
+/* 8033C95C 003385BC 57 A9 F0 3E */ rotlwi r9, r29, 0x1e
+/* 8033C960 003385C0 7F BB 30 38 */ and r27, r29, r6
+/* 8033C964 003385C4 7C E8 E8 78 */ andc r8, r7, r29
+/* 8033C968 003385C8 7F 7B 43 78 */ or r27, r27, r8
+/* 8033C96C 003385CC 7F BE 02 14 */ add r29, r30, r0
+/* 8033C970 003385D0 7C A5 DA 14 */ add r5, r5, r27
+/* 8033C974 003385D4 57 5C 28 3E */ rotlwi r28, r26, 5
+/* 8033C978 003385D8 7F 9C 2A 14 */ add r28, r28, r5
+/* 8033C97C 003385DC 81 44 00 0C */ lwz r10, 0xc(r4)
+/* 8033C980 003385E0 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 8033C984 003385E4 7F 5B 48 38 */ and r27, r26, r9
+/* 8033C988 003385E8 7C C5 D0 78 */ andc r5, r6, r26
+/* 8033C98C 003385EC 57 48 F0 3E */ rotlwi r8, r26, 0x1e
+/* 8033C990 003385F0 7F 5D E2 14 */ add r26, r29, r28
+/* 8033C994 003385F4 7D 5E 52 14 */ add r10, r30, r10
+/* 8033C998 003385F8 7F 7D 2B 78 */ or r29, r27, r5
+/* 8033C99C 003385FC 7F 7E 02 14 */ add r27, r30, r0
+/* 8033C9A0 00338600 57 5C 28 3E */ rotlwi r28, r26, 5
+/* 8033C9A4 00338604 7F 45 40 38 */ and r5, r26, r8
+/* 8033C9A8 00338608 7C E7 EA 14 */ add r7, r7, r29
+/* 8033C9AC 0033860C 7D 20 D0 78 */ andc r0, r9, r26
+/* 8033C9B0 00338610 7C FC 3A 14 */ add r7, r28, r7
+/* 8033C9B4 00338614 38 84 00 14 */ addi r4, r4, 0x14
+/* 8033C9B8 00338618 7C A0 03 78 */ or r0, r5, r0
+/* 8033C9BC 0033861C 7D 4A 3A 14 */ add r10, r10, r7
+/* 8033C9C0 00338620 55 45 28 3E */ rotlwi r5, r10, 5
+/* 8033C9C4 00338624 7C 06 02 14 */ add r0, r6, r0
+/* 8033C9C8 00338628 7C 05 02 14 */ add r0, r5, r0
+/* 8033C9CC 0033862C 57 45 F0 3E */ rotlwi r5, r26, 0x1e
+/* 8033C9D0 00338630 7C 1B 02 14 */ add r0, r27, r0
+/* 8033C9D4 00338634 42 00 FF 34 */ bdnz lbl_8033C908
+/* 8033C9D8 00338638 38 C0 00 04 */ li r6, 4
+/* 8033C9DC 0033863C 38 81 00 58 */ addi r4, r1, 0x58
+/* 8033C9E0 00338640 7C C9 03 A6 */ mtctr r6
+lbl_8033C9E4:
+/* 8033C9E4 00338644 7D 06 52 78 */ xor r6, r8, r10
+/* 8033C9E8 00338648 80 E4 00 00 */ lwz r7, 0(r4)
+/* 8033C9EC 0033864C 7C C6 2A 78 */ xor r6, r6, r5
+/* 8033C9F0 00338650 83 64 00 04 */ lwz r27, 4(r4)
+/* 8033C9F4 00338654 7C E7 4A 14 */ add r7, r7, r9
+/* 8033C9F8 00338658 54 09 28 3E */ rotlwi r9, r0, 5
+/* 8033C9FC 0033865C 7C DF 32 14 */ add r6, r31, r6
+/* 8033CA00 00338660 83 C4 00 08 */ lwz r30, 8(r4)
+/* 8033CA04 00338664 7C E7 32 14 */ add r7, r7, r6
+/* 8033CA08 00338668 7F 49 3A 14 */ add r26, r9, r7
+/* 8033CA0C 0033866C 55 46 F0 3E */ rotlwi r6, r10, 0x1e
+/* 8033CA10 00338670 7C A7 02 78 */ xor r7, r5, r0
+/* 8033CA14 00338674 7D 5F DA 14 */ add r10, r31, r27
+/* 8033CA18 00338678 7C E7 32 78 */ xor r7, r7, r6
+/* 8033CA1C 0033867C 57 49 28 3E */ rotlwi r9, r26, 5
+/* 8033CA20 00338680 7D 08 3A 14 */ add r8, r8, r7
+/* 8033CA24 00338684 54 00 F0 3E */ rotlwi r0, r0, 0x1e
+/* 8033CA28 00338688 7C C7 D2 78 */ xor r7, r6, r26
+/* 8033CA2C 0033868C 83 64 00 0C */ lwz r27, 0xc(r4)
+/* 8033CA30 00338690 7D 09 42 14 */ add r8, r9, r8
+/* 8033CA34 00338694 57 49 F0 3E */ rotlwi r9, r26, 0x1e
+/* 8033CA38 00338698 7F 4A 42 14 */ add r26, r10, r8
+/* 8033CA3C 0033869C 7C FD 02 78 */ xor r29, r7, r0
+/* 8033CA40 003386A0 7C A5 EA 14 */ add r5, r5, r29
+/* 8033CA44 003386A4 57 5C 28 3E */ rotlwi r28, r26, 5
+/* 8033CA48 003386A8 7C 07 D2 78 */ xor r7, r0, r26
+/* 8033CA4C 003386AC 7C EA 4A 78 */ xor r10, r7, r9
+/* 8033CA50 003386B0 80 E4 00 10 */ lwz r7, 0x10(r4)
+/* 8033CA54 003386B4 7F 9C 2A 14 */ add r28, r28, r5
+/* 8033CA58 003386B8 7F BF F2 14 */ add r29, r31, r30
+/* 8033CA5C 003386BC 7C A6 52 14 */ add r5, r6, r10
+/* 8033CA60 003386C0 57 48 F0 3E */ rotlwi r8, r26, 0x1e
+/* 8033CA64 003386C4 7F 5D E2 14 */ add r26, r29, r28
+/* 8033CA68 003386C8 7D 5F DA 14 */ add r10, r31, r27
+/* 8033CA6C 003386CC 57 5B 28 3E */ rotlwi r27, r26, 5
+/* 8033CA70 003386D0 7C DF 3A 14 */ add r6, r31, r7
+/* 8033CA74 003386D4 7C FB 2A 14 */ add r7, r27, r5
+/* 8033CA78 003386D8 7D 25 D2 78 */ xor r5, r9, r26
+/* 8033CA7C 003386DC 7D 4A 3A 14 */ add r10, r10, r7
+/* 8033CA80 003386E0 38 84 00 14 */ addi r4, r4, 0x14
+/* 8033CA84 003386E4 7C A5 42 78 */ xor r5, r5, r8
+/* 8033CA88 003386E8 7C 00 2A 14 */ add r0, r0, r5
+/* 8033CA8C 003386EC 55 47 28 3E */ rotlwi r7, r10, 5
+/* 8033CA90 003386F0 7C 07 02 14 */ add r0, r7, r0
+/* 8033CA94 003386F4 57 45 F0 3E */ rotlwi r5, r26, 0x1e
+/* 8033CA98 003386F8 7C 06 02 14 */ add r0, r6, r0
+/* 8033CA9C 003386FC 42 00 FF 48 */ bdnz lbl_8033C9E4
+/* 8033CAA0 00338700 38 C0 00 04 */ li r6, 4
+/* 8033CAA4 00338704 38 81 00 A8 */ addi r4, r1, 0xa8
+/* 8033CAA8 00338708 7C C9 03 A6 */ mtctr r6
+lbl_8033CAAC:
+/* 8033CAAC 0033870C 7C BB 43 78 */ or r27, r5, r8
+/* 8033CAB0 00338710 55 47 F0 3E */ rotlwi r7, r10, 0x1e
+/* 8033CAB4 00338714 7D 4A D8 38 */ and r10, r10, r27
+/* 8033CAB8 00338718 7C BC 40 38 */ and r28, r5, r8
+/* 8033CABC 0033871C 7F 9D 53 78 */ or r29, r28, r10
+/* 8033CAC0 00338720 83 C4 00 00 */ lwz r30, 0(r4)
+/* 8033CAC4 00338724 7C EA 2B 78 */ or r10, r7, r5
+/* 8033CAC8 00338728 54 1B 28 3E */ rotlwi r27, r0, 5
+/* 8033CACC 0033872C 7D 29 EA 14 */ add r9, r9, r29
+/* 8033CAD0 00338730 7F 8C F2 14 */ add r28, r12, r30
+/* 8033CAD4 00338734 7D 3B 4A 14 */ add r9, r27, r9
+/* 8033CAD8 00338738 7C FB 28 38 */ and r27, r7, r5
+/* 8033CADC 0033873C 7F FC 4A 14 */ add r31, r28, r9
+/* 8033CAE0 00338740 7C 0A 50 38 */ and r10, r0, r10
+/* 8033CAE4 00338744 7F 7D 53 78 */ or r29, r27, r10
+/* 8033CAE8 00338748 54 06 F0 3E */ rotlwi r6, r0, 0x1e
+/* 8033CAEC 0033874C 83 C4 00 04 */ lwz r30, 4(r4)
+/* 8033CAF0 00338750 7C C0 3B 78 */ or r0, r6, r7
+/* 8033CAF4 00338754 57 FC 28 3E */ rotlwi r28, r31, 5
+/* 8033CAF8 00338758 7D 08 EA 14 */ add r8, r8, r29
+/* 8033CAFC 0033875C 7D 4C F2 14 */ add r10, r12, r30
+/* 8033CB00 00338760 7F E0 00 38 */ and r0, r31, r0
+/* 8033CB04 00338764 7D 1C 42 14 */ add r8, r28, r8
+/* 8033CB08 00338768 7C DC 38 38 */ and r28, r6, r7
+/* 8033CB0C 0033876C 7F 4A 42 14 */ add r26, r10, r8
+/* 8033CB10 00338770 57 E9 F0 3E */ rotlwi r9, r31, 0x1e
+/* 8033CB14 00338774 7F 9D 03 78 */ or r29, r28, r0
+/* 8033CB18 00338778 83 64 00 08 */ lwz r27, 8(r4)
+/* 8033CB1C 0033877C 7C A5 EA 14 */ add r5, r5, r29
+/* 8033CB20 00338780 57 5F 28 3E */ rotlwi r31, r26, 5
+/* 8033CB24 00338784 83 C4 00 0C */ lwz r30, 0xc(r4)
+/* 8033CB28 00338788 7D 20 33 78 */ or r0, r9, r6
+/* 8033CB2C 0033878C 7F FF 2A 14 */ add r31, r31, r5
+/* 8033CB30 00338790 7F 8C DA 14 */ add r28, r12, r27
+/* 8033CB34 00338794 7F 7C FA 14 */ add r27, r28, r31
+/* 8033CB38 00338798 81 44 00 10 */ lwz r10, 0x10(r4)
+/* 8033CB3C 0033879C 7D 3D 30 38 */ and r29, r9, r6
+/* 8033CB40 003387A0 7F 45 00 38 */ and r5, r26, r0
+/* 8033CB44 003387A4 57 48 F0 3E */ rotlwi r8, r26, 0x1e
+/* 8033CB48 003387A8 57 7F 28 3E */ rotlwi r31, r27, 5
+/* 8033CB4C 003387AC 7F A5 2B 78 */ or r5, r29, r5
+/* 8033CB50 003387B0 7F CC F2 14 */ add r30, r12, r30
+/* 8033CB54 003387B4 7D 00 4B 78 */ or r0, r8, r9
+/* 8033CB58 003387B8 7D 1D 48 38 */ and r29, r8, r9
+/* 8033CB5C 003387BC 7C A7 2A 14 */ add r5, r7, r5
+/* 8033CB60 003387C0 38 84 00 14 */ addi r4, r4, 0x14
+/* 8033CB64 003387C4 7F 60 00 38 */ and r0, r27, r0
+/* 8033CB68 003387C8 7C FF 2A 14 */ add r7, r31, r5
+/* 8033CB6C 003387CC 7C AC 52 14 */ add r5, r12, r10
+/* 8033CB70 003387D0 7D 5E 3A 14 */ add r10, r30, r7
+/* 8033CB74 003387D4 7F A0 03 78 */ or r0, r29, r0
+/* 8033CB78 003387D8 55 47 28 3E */ rotlwi r7, r10, 5
+/* 8033CB7C 003387DC 7C 06 02 14 */ add r0, r6, r0
+/* 8033CB80 003387E0 7C 07 02 14 */ add r0, r7, r0
+/* 8033CB84 003387E4 7C 05 02 14 */ add r0, r5, r0
+/* 8033CB88 003387E8 57 65 F0 3E */ rotlwi r5, r27, 0x1e
+/* 8033CB8C 003387EC 42 00 FF 20 */ bdnz lbl_8033CAAC
+/* 8033CB90 003387F0 38 C0 00 04 */ li r6, 4
+/* 8033CB94 003387F4 38 81 00 F8 */ addi r4, r1, 0xf8
+/* 8033CB98 003387F8 7C C9 03 A6 */ mtctr r6
+lbl_8033CB9C:
+/* 8033CB9C 003387FC 7D 06 52 78 */ xor r6, r8, r10
+/* 8033CBA0 00338800 80 E4 00 00 */ lwz r7, 0(r4)
+/* 8033CBA4 00338804 7C C6 2A 78 */ xor r6, r6, r5
+/* 8033CBA8 00338808 81 84 00 04 */ lwz r12, 4(r4)
+/* 8033CBAC 0033880C 7C E7 4A 14 */ add r7, r7, r9
+/* 8033CBB0 00338810 54 09 28 3E */ rotlwi r9, r0, 5
+/* 8033CBB4 00338814 7C CB 32 14 */ add r6, r11, r6
+/* 8033CBB8 00338818 83 A4 00 08 */ lwz r29, 8(r4)
+/* 8033CBBC 0033881C 7C E7 32 14 */ add r7, r7, r6
+/* 8033CBC0 00338820 7F 69 3A 14 */ add r27, r9, r7
+/* 8033CBC4 00338824 55 46 F0 3E */ rotlwi r6, r10, 0x1e
+/* 8033CBC8 00338828 7C A7 02 78 */ xor r7, r5, r0
+/* 8033CBCC 0033882C 7D 4B 62 14 */ add r10, r11, r12
+/* 8033CBD0 00338830 7C E7 32 78 */ xor r7, r7, r6
+/* 8033CBD4 00338834 57 69 28 3E */ rotlwi r9, r27, 5
+/* 8033CBD8 00338838 7D 08 3A 14 */ add r8, r8, r7
+/* 8033CBDC 0033883C 54 00 F0 3E */ rotlwi r0, r0, 0x1e
+/* 8033CBE0 00338840 7C C7 DA 78 */ xor r7, r6, r27
+/* 8033CBE4 00338844 81 84 00 0C */ lwz r12, 0xc(r4)
+/* 8033CBE8 00338848 7D 09 42 14 */ add r8, r9, r8
+/* 8033CBEC 0033884C 57 69 F0 3E */ rotlwi r9, r27, 0x1e
+/* 8033CBF0 00338850 7F 6A 42 14 */ add r27, r10, r8
+/* 8033CBF4 00338854 7C FF 02 78 */ xor r31, r7, r0
+/* 8033CBF8 00338858 7C A5 FA 14 */ add r5, r5, r31
+/* 8033CBFC 0033885C 57 7E 28 3E */ rotlwi r30, r27, 5
+/* 8033CC00 00338860 7C 07 DA 78 */ xor r7, r0, r27
+/* 8033CC04 00338864 7C EA 4A 78 */ xor r10, r7, r9
+/* 8033CC08 00338868 80 E4 00 10 */ lwz r7, 0x10(r4)
+/* 8033CC0C 0033886C 7F DE 2A 14 */ add r30, r30, r5
+/* 8033CC10 00338870 7F EB EA 14 */ add r31, r11, r29
+/* 8033CC14 00338874 7C A6 52 14 */ add r5, r6, r10
+/* 8033CC18 00338878 57 68 F0 3E */ rotlwi r8, r27, 0x1e
+/* 8033CC1C 0033887C 7F 7F F2 14 */ add r27, r31, r30
+/* 8033CC20 00338880 7D 4B 62 14 */ add r10, r11, r12
+/* 8033CC24 00338884 57 6C 28 3E */ rotlwi r12, r27, 5
+/* 8033CC28 00338888 7C CB 3A 14 */ add r6, r11, r7
+/* 8033CC2C 0033888C 7C EC 2A 14 */ add r7, r12, r5
+/* 8033CC30 00338890 7D 25 DA 78 */ xor r5, r9, r27
+/* 8033CC34 00338894 7D 4A 3A 14 */ add r10, r10, r7
+/* 8033CC38 00338898 38 84 00 14 */ addi r4, r4, 0x14
+/* 8033CC3C 0033889C 7C A5 42 78 */ xor r5, r5, r8
+/* 8033CC40 003388A0 7C 00 2A 14 */ add r0, r0, r5
+/* 8033CC44 003388A4 55 47 28 3E */ rotlwi r7, r10, 5
+/* 8033CC48 003388A8 7C 07 02 14 */ add r0, r7, r0
+/* 8033CC4C 003388AC 57 65 F0 3E */ rotlwi r5, r27, 0x1e
+/* 8033CC50 003388B0 7C 06 02 14 */ add r0, r6, r0
+/* 8033CC54 003388B4 42 00 FF 48 */ bdnz lbl_8033CB9C
+/* 8033CC58 003388B8 80 C3 00 00 */ lwz r6, 0(r3)
+/* 8033CC5C 003388BC 38 80 00 00 */ li r4, 0
+/* 8033CC60 003388C0 81 63 00 04 */ lwz r11, 4(r3)
+/* 8033CC64 003388C4 7D 86 02 14 */ add r12, r6, r0
+/* 8033CC68 003388C8 80 E3 00 08 */ lwz r7, 8(r3)
+/* 8033CC6C 003388CC 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8033CC70 003388D0 7D 4B 52 14 */ add r10, r11, r10
+/* 8033CC74 003388D4 7C E7 2A 14 */ add r7, r7, r5
+/* 8033CC78 003388D8 80 C3 00 0C */ lwz r6, 0xc(r3)
+/* 8033CC7C 003388DC 7C 00 4A 14 */ add r0, r0, r9
+/* 8033CC80 003388E0 91 83 00 00 */ stw r12, 0(r3)
+/* 8033CC84 003388E4 7C A6 42 14 */ add r5, r6, r8
+/* 8033CC88 003388E8 39 61 01 60 */ addi r11, r1, 0x160
+/* 8033CC8C 003388EC 91 43 00 04 */ stw r10, 4(r3)
+/* 8033CC90 003388F0 90 E3 00 08 */ stw r7, 8(r3)
+/* 8033CC94 003388F4 90 A3 00 0C */ stw r5, 0xc(r3)
+/* 8033CC98 003388F8 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8033CC9C 003388FC B0 83 00 1C */ sth r4, 0x1c(r3)
+/* 8033CCA0 00338900 4B E8 A4 D1 */ bl _restgpr_26
+/* 8033CCA4 00338904 80 01 01 64 */ lwz r0, 0x164(r1)
+/* 8033CCA8 00338908 7C 08 03 A6 */ mtlr r0
+/* 8033CCAC 0033890C 38 21 01 60 */ addi r1, r1, 0x160
+/* 8033CCB0 00338910 4E 80 00 20 */ blr
+
+.global SHA1PadMessage
+SHA1PadMessage:
+/* 8033CCB4 00338914 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033CCB8 00338918 7C 08 02 A6 */ mflr r0
+/* 8033CCBC 0033891C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033CCC0 00338920 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8033CCC4 00338924 7C 7F 1B 78 */ mr r31, r3
+/* 8033CCC8 00338928 A8 A3 00 1C */ lha r5, 0x1c(r3)
+/* 8033CCCC 0033892C 2C 05 00 37 */ cmpwi r5, 0x37
+/* 8033CCD0 00338930 40 81 00 74 */ ble lbl_8033CD44
+/* 8033CCD4 00338934 7C 83 2A 14 */ add r4, r3, r5
+/* 8033CCD8 00338938 38 00 00 80 */ li r0, 0x80
+/* 8033CCDC 0033893C 98 04 00 1E */ stb r0, 0x1e(r4)
+/* 8033CCE0 00338940 38 05 00 01 */ addi r0, r5, 1
+/* 8033CCE4 00338944 38 C0 00 00 */ li r6, 0
+/* 8033CCE8 00338948 B0 03 00 1C */ sth r0, 0x1c(r3)
+/* 8033CCEC 0033894C 48 00 00 18 */ b lbl_8033CD04
+lbl_8033CCF0:
+/* 8033CCF0 00338950 A8 A3 00 1C */ lha r5, 0x1c(r3)
+/* 8033CCF4 00338954 7C 83 2A 14 */ add r4, r3, r5
+/* 8033CCF8 00338958 38 05 00 01 */ addi r0, r5, 1
+/* 8033CCFC 0033895C 98 C4 00 1E */ stb r6, 0x1e(r4)
+/* 8033CD00 00338960 B0 03 00 1C */ sth r0, 0x1c(r3)
+lbl_8033CD04:
+/* 8033CD04 00338964 A8 03 00 1C */ lha r0, 0x1c(r3)
+/* 8033CD08 00338968 2C 00 00 40 */ cmpwi r0, 0x40
+/* 8033CD0C 0033896C 41 80 FF E4 */ blt lbl_8033CCF0
+/* 8033CD10 00338970 7F E3 FB 78 */ mr r3, r31
+/* 8033CD14 00338974 4B FF FA 8D */ bl SHA1ProcessMessageBlock
+/* 8033CD18 00338978 38 A0 00 00 */ li r5, 0
+/* 8033CD1C 0033897C 48 00 00 18 */ b lbl_8033CD34
+lbl_8033CD20:
+/* 8033CD20 00338980 A8 9F 00 1C */ lha r4, 0x1c(r31)
+/* 8033CD24 00338984 7C 7F 22 14 */ add r3, r31, r4
+/* 8033CD28 00338988 38 04 00 01 */ addi r0, r4, 1
+/* 8033CD2C 0033898C 98 A3 00 1E */ stb r5, 0x1e(r3)
+/* 8033CD30 00338990 B0 1F 00 1C */ sth r0, 0x1c(r31)
+lbl_8033CD34:
+/* 8033CD34 00338994 A8 1F 00 1C */ lha r0, 0x1c(r31)
+/* 8033CD38 00338998 2C 00 00 38 */ cmpwi r0, 0x38
+/* 8033CD3C 0033899C 41 80 FF E4 */ blt lbl_8033CD20
+/* 8033CD40 003389A0 48 00 00 40 */ b lbl_8033CD80
+lbl_8033CD44:
+/* 8033CD44 003389A4 7C 83 2A 14 */ add r4, r3, r5
+/* 8033CD48 003389A8 38 00 00 80 */ li r0, 0x80
+/* 8033CD4C 003389AC 98 04 00 1E */ stb r0, 0x1e(r4)
+/* 8033CD50 003389B0 38 05 00 01 */ addi r0, r5, 1
+/* 8033CD54 003389B4 38 C0 00 00 */ li r6, 0
+/* 8033CD58 003389B8 B0 03 00 1C */ sth r0, 0x1c(r3)
+/* 8033CD5C 003389BC 48 00 00 18 */ b lbl_8033CD74
+lbl_8033CD60:
+/* 8033CD60 003389C0 A8 A3 00 1C */ lha r5, 0x1c(r3)
+/* 8033CD64 003389C4 7C 83 2A 14 */ add r4, r3, r5
+/* 8033CD68 003389C8 38 05 00 01 */ addi r0, r5, 1
+/* 8033CD6C 003389CC 98 C4 00 1E */ stb r6, 0x1e(r4)
+/* 8033CD70 003389D0 B0 03 00 1C */ sth r0, 0x1c(r3)
+lbl_8033CD74:
+/* 8033CD74 003389D4 A8 03 00 1C */ lha r0, 0x1c(r3)
+/* 8033CD78 003389D8 2C 00 00 38 */ cmpwi r0, 0x38
+/* 8033CD7C 003389DC 41 80 FF E4 */ blt lbl_8033CD60
+lbl_8033CD80:
+/* 8033CD80 003389E0 81 5F 00 18 */ lwz r10, 0x18(r31)
+/* 8033CD84 003389E4 7F E3 FB 78 */ mr r3, r31
+/* 8033CD88 003389E8 80 DF 00 14 */ lwz r6, 0x14(r31)
+/* 8033CD8C 003389EC 55 49 46 3E */ srwi r9, r10, 0x18
+/* 8033CD90 003389F0 55 48 86 3E */ rlwinm r8, r10, 0x10, 0x18, 0x1f
+/* 8033CD94 003389F4 55 47 C6 3E */ rlwinm r7, r10, 0x18, 0x18, 0x1f
+/* 8033CD98 003389F8 54 C5 46 3E */ srwi r5, r6, 0x18
+/* 8033CD9C 003389FC 54 C4 86 3E */ rlwinm r4, r6, 0x10, 0x18, 0x1f
+/* 8033CDA0 00338A00 54 C0 C6 3E */ rlwinm r0, r6, 0x18, 0x18, 0x1f
+/* 8033CDA4 00338A04 99 3F 00 56 */ stb r9, 0x56(r31)
+/* 8033CDA8 00338A08 99 1F 00 57 */ stb r8, 0x57(r31)
+/* 8033CDAC 00338A0C 98 FF 00 58 */ stb r7, 0x58(r31)
+/* 8033CDB0 00338A10 99 5F 00 59 */ stb r10, 0x59(r31)
+/* 8033CDB4 00338A14 98 BF 00 5A */ stb r5, 0x5a(r31)
+/* 8033CDB8 00338A18 98 9F 00 5B */ stb r4, 0x5b(r31)
+/* 8033CDBC 00338A1C 98 1F 00 5C */ stb r0, 0x5c(r31)
+/* 8033CDC0 00338A20 98 DF 00 5D */ stb r6, 0x5d(r31)
+/* 8033CDC4 00338A24 4B FF F9 DD */ bl SHA1ProcessMessageBlock
+/* 8033CDC8 00338A28 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033CDCC 00338A2C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8033CDD0 00338A30 7C 08 03 A6 */ mtlr r0
+/* 8033CDD4 00338A34 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033CDD8 00338A38 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gsXML.s b/asm/SDK/DWC/gamespy/gsXML.s new file mode 100644 index 0000000..288b366 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gsXML.s @@ -0,0 +1,13 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gsXmlWriterGetData
+gsXmlWriterGetData:
+/* 8033CDDC 00338A3C 80 63 00 00 */ lwz r3, 0(r3)
+/* 8033CDE0 00338A40 4E 80 00 20 */ blr
+
+.global gsXmlWriterGetDataLength
+gsXmlWriterGetDataLength:
+/* 8033CDE4 00338A44 80 63 00 04 */ lwz r3, 4(r3)
+/* 8033CDE8 00338A48 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gstats.s b/asm/SDK/DWC/gamespy/gstats.s new file mode 100644 index 0000000..dc6568f --- /dev/null +++ b/asm/SDK/DWC/gamespy/gstats.s @@ -0,0 +1,2411 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global CloseStatsConnection
+CloseStatsConnection:
+/* 80358364 00353FC4 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80358368 00353FC8 7C 08 02 A6 */ mflr r0
+/* 8035836C 00353FCC 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80358370 00353FD0 39 61 00 50 */ addi r11, r1, 0x50
+/* 80358374 00353FD4 4B E6 ED 99 */ bl _savegpr_20
+/* 80358378 00353FD8 80 6D 94 30 */ lwz r3, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 8035837C 00353FDC 2C 03 FF FF */ cmpwi r3, -1
+/* 80358380 00353FE0 41 82 00 14 */ beq lbl_80358394
+/* 80358384 00353FE4 38 80 00 02 */ li r4, 2
+/* 80358388 00353FE8 4B FD F8 A9 */ bl shutdown
+/* 8035838C 00353FEC 80 6D 94 30 */ lwz r3, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358390 00353FF0 4B FD F8 6D */ bl closesocket
+lbl_80358394:
+/* 80358394 00353FF4 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80358398 00353FF8 38 00 FF FF */ li r0, -1
+/* 8035839C 00353FFC 90 0D 94 30 */ stw r0, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 803583A0 00354000 2C 03 00 00 */ cmpwi r3, 0
+/* 803583A4 00354004 41 82 01 B0 */ beq lbl_80358554
+/* 803583A8 00354008 4B FD DB 41 */ bl ArrayLength
+/* 803583AC 0035400C 3F A0 80 45 */ lis r29, lbl_8044C318@ha
+/* 803583B0 00354010 3F E0 80 45 */ lis r31, lbl_8044C550@ha
+/* 803583B4 00354014 3B BD C3 18 */ addi r29, r29, lbl_8044C318@l
+/* 803583B8 00354018 3B C3 FF FF */ addi r30, r3, -1
+/* 803583BC 0035401C 3B FF C5 50 */ addi r31, r31, lbl_8044C550@l
+/* 803583C0 00354020 3B 80 00 03 */ li r28, 3
+/* 803583C4 00354024 48 00 01 78 */ b lbl_8035853C
+lbl_803583C8:
+/* 803583C8 00354028 8A 9F 00 00 */ lbz r20, 0(r31)
+/* 803583CC 0035402C 7F A4 EB 78 */ mr r4, r29
+/* 803583D0 00354030 8A BF 00 01 */ lbz r21, 1(r31)
+/* 803583D4 00354034 38 A1 00 08 */ addi r5, r1, 8
+/* 803583D8 00354038 8A DF 00 02 */ lbz r22, 2(r31)
+/* 803583DC 0035403C 38 60 00 00 */ li r3, 0
+/* 803583E0 00354040 8A FF 00 03 */ lbz r23, 3(r31)
+/* 803583E4 00354044 8B 1F 00 04 */ lbz r24, 4(r31)
+/* 803583E8 00354048 8B 3F 00 05 */ lbz r25, 5(r31)
+/* 803583EC 0035404C 8B 5F 00 06 */ lbz r26, 6(r31)
+/* 803583F0 00354050 8B 7F 00 07 */ lbz r27, 7(r31)
+/* 803583F4 00354054 89 9F 00 08 */ lbz r12, 8(r31)
+/* 803583F8 00354058 89 7F 00 09 */ lbz r11, 9(r31)
+/* 803583FC 0035405C 89 5F 00 0A */ lbz r10, 0xa(r31)
+/* 80358400 00354060 89 3F 00 0B */ lbz r9, 0xb(r31)
+/* 80358404 00354064 89 1F 00 0C */ lbz r8, 0xc(r31)
+/* 80358408 00354068 88 FF 00 0D */ lbz r7, 0xd(r31)
+/* 8035840C 0035406C 88 DF 00 0E */ lbz r6, 0xe(r31)
+/* 80358410 00354070 88 1F 00 0F */ lbz r0, 0xf(r31)
+/* 80358414 00354074 9A 81 00 08 */ stb r20, 8(r1)
+/* 80358418 00354078 9A A1 00 09 */ stb r21, 9(r1)
+/* 8035841C 0035407C 9A C1 00 0A */ stb r22, 0xa(r1)
+/* 80358420 00354080 9A E1 00 0B */ stb r23, 0xb(r1)
+/* 80358424 00354084 9B 01 00 0C */ stb r24, 0xc(r1)
+/* 80358428 00354088 9B 21 00 0D */ stb r25, 0xd(r1)
+/* 8035842C 0035408C 9B 41 00 0E */ stb r26, 0xe(r1)
+/* 80358430 00354090 9B 61 00 0F */ stb r27, 0xf(r1)
+/* 80358434 00354094 99 81 00 10 */ stb r12, 0x10(r1)
+/* 80358438 00354098 99 61 00 11 */ stb r11, 0x11(r1)
+/* 8035843C 0035409C 99 41 00 12 */ stb r10, 0x12(r1)
+/* 80358440 003540A0 99 21 00 13 */ stb r9, 0x13(r1)
+/* 80358444 003540A4 99 01 00 14 */ stb r8, 0x14(r1)
+/* 80358448 003540A8 98 E1 00 15 */ stb r7, 0x15(r1)
+/* 8035844C 003540AC 98 C1 00 16 */ stb r6, 0x16(r1)
+/* 80358450 003540B0 98 01 00 17 */ stb r0, 0x17(r1)
+/* 80358454 003540B4 93 AD 94 34 */ stw r29, lbl_8063E6F4-_SDA_BASE_(r13)
+/* 80358458 003540B8 7F 89 03 A6 */ mtctr r28
+lbl_8035845C:
+/* 8035845C 003540BC 88 04 00 01 */ lbz r0, 1(r4)
+/* 80358460 003540C0 88 C4 00 00 */ lbz r6, 0(r4)
+/* 80358464 003540C4 38 84 00 01 */ addi r4, r4, 1
+/* 80358468 003540C8 88 E5 00 00 */ lbz r7, 0(r5)
+/* 8035846C 003540CC 7C 00 07 75 */ extsb. r0, r0
+/* 80358470 003540D0 7C E0 32 78 */ xor r0, r7, r6
+/* 80358474 003540D4 98 05 00 00 */ stb r0, 0(r5)
+/* 80358478 003540D8 40 82 00 08 */ bne lbl_80358480
+/* 8035847C 003540DC 7F A4 EB 78 */ mr r4, r29
+lbl_80358480:
+/* 80358480 003540E0 88 04 00 01 */ lbz r0, 1(r4)
+/* 80358484 003540E4 88 C4 00 00 */ lbz r6, 0(r4)
+/* 80358488 003540E8 38 84 00 01 */ addi r4, r4, 1
+/* 8035848C 003540EC 88 E5 00 01 */ lbz r7, 1(r5)
+/* 80358490 003540F0 7C 00 07 75 */ extsb. r0, r0
+/* 80358494 003540F4 7C E0 32 78 */ xor r0, r7, r6
+/* 80358498 003540F8 98 05 00 01 */ stb r0, 1(r5)
+/* 8035849C 003540FC 40 82 00 08 */ bne lbl_803584A4
+/* 803584A0 00354100 7F A4 EB 78 */ mr r4, r29
+lbl_803584A4:
+/* 803584A4 00354104 88 04 00 01 */ lbz r0, 1(r4)
+/* 803584A8 00354108 88 C4 00 00 */ lbz r6, 0(r4)
+/* 803584AC 0035410C 38 84 00 01 */ addi r4, r4, 1
+/* 803584B0 00354110 88 E5 00 02 */ lbz r7, 2(r5)
+/* 803584B4 00354114 7C 00 07 75 */ extsb. r0, r0
+/* 803584B8 00354118 7C E0 32 78 */ xor r0, r7, r6
+/* 803584BC 0035411C 98 05 00 02 */ stb r0, 2(r5)
+/* 803584C0 00354120 40 82 00 08 */ bne lbl_803584C8
+/* 803584C4 00354124 7F A4 EB 78 */ mr r4, r29
+lbl_803584C8:
+/* 803584C8 00354128 88 04 00 01 */ lbz r0, 1(r4)
+/* 803584CC 0035412C 88 C4 00 00 */ lbz r6, 0(r4)
+/* 803584D0 00354130 38 84 00 01 */ addi r4, r4, 1
+/* 803584D4 00354134 88 E5 00 03 */ lbz r7, 3(r5)
+/* 803584D8 00354138 7C 00 07 75 */ extsb. r0, r0
+/* 803584DC 0035413C 7C E0 32 78 */ xor r0, r7, r6
+/* 803584E0 00354140 98 05 00 03 */ stb r0, 3(r5)
+/* 803584E4 00354144 40 82 00 08 */ bne lbl_803584EC
+/* 803584E8 00354148 7F A4 EB 78 */ mr r4, r29
+lbl_803584EC:
+/* 803584EC 0035414C 88 04 00 01 */ lbz r0, 1(r4)
+/* 803584F0 00354150 88 C4 00 00 */ lbz r6, 0(r4)
+/* 803584F4 00354154 38 84 00 01 */ addi r4, r4, 1
+/* 803584F8 00354158 88 E5 00 04 */ lbz r7, 4(r5)
+/* 803584FC 0035415C 7C 00 07 75 */ extsb. r0, r0
+/* 80358500 00354160 7C E0 32 78 */ xor r0, r7, r6
+/* 80358504 00354164 98 05 00 04 */ stb r0, 4(r5)
+/* 80358508 00354168 40 82 00 08 */ bne lbl_80358510
+/* 8035850C 0035416C 7F A4 EB 78 */ mr r4, r29
+lbl_80358510:
+/* 80358510 00354170 38 A5 00 05 */ addi r5, r5, 5
+/* 80358514 00354174 38 63 00 04 */ addi r3, r3, 4
+/* 80358518 00354178 42 00 FF 44 */ bdnz lbl_8035845C
+/* 8035851C 0035417C 7F C3 F3 78 */ mr r3, r30
+/* 80358520 00354180 38 E1 00 08 */ addi r7, r1, 8
+/* 80358524 00354184 38 80 00 00 */ li r4, 0
+/* 80358528 00354188 38 C0 00 00 */ li r6, 0
+/* 8035852C 0035418C 38 A0 00 00 */ li r5, 0
+/* 80358530 00354190 39 00 00 00 */ li r8, 0
+/* 80358534 00354194 48 00 16 DD */ bl CallReqCallback
+/* 80358538 00354198 3B DE FF FF */ addi r30, r30, -1
+lbl_8035853C:
+/* 8035853C 0035419C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80358540 003541A0 40 80 FE 88 */ bge lbl_803583C8
+/* 80358544 003541A4 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80358548 003541A8 4B FD D9 0D */ bl ArrayFree
+/* 8035854C 003541AC 38 00 00 00 */ li r0, 0
+/* 80358550 003541B0 90 0D B1 24 */ stw r0, lbl_806403E4-_SDA_BASE_(r13)
+lbl_80358554:
+/* 80358554 003541B4 80 6D B1 14 */ lwz r3, lbl_806403D4-_SDA_BASE_(r13)
+/* 80358558 003541B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035855C 003541BC 41 82 00 18 */ beq lbl_80358574
+/* 80358560 003541C0 4B FE 0D D9 */ bl gsifree
+/* 80358564 003541C4 38 00 00 00 */ li r0, 0
+/* 80358568 003541C8 90 0D B1 14 */ stw r0, lbl_806403D4-_SDA_BASE_(r13)
+/* 8035856C 003541CC 90 0D B1 18 */ stw r0, lbl_806403D8-_SDA_BASE_(r13)
+/* 80358570 003541D0 90 0D B1 1C */ stw r0, lbl_806403DC-_SDA_BASE_(r13)
+lbl_80358574:
+/* 80358574 003541D4 39 61 00 50 */ addi r11, r1, 0x50
+/* 80358578 003541D8 4B E6 EB E1 */ bl _restgpr_20
+/* 8035857C 003541DC 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80358580 003541E0 7C 08 03 A6 */ mtlr r0
+/* 80358584 003541E4 38 21 00 50 */ addi r1, r1, 0x50
+/* 80358588 003541E8 4E 80 00 20 */ blr
+
+.global IsStatsConnected
+IsStatsConnected:
+/* 8035858C 003541EC 80 8D 94 30 */ lwz r4, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358590 003541F0 20 64 FF FF */ subfic r3, r4, -1
+/* 80358594 003541F4 38 04 00 01 */ addi r0, r4, 1
+/* 80358598 003541F8 7C 60 03 78 */ or r0, r3, r0
+/* 8035859C 003541FC 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 803585A0 00354200 4E 80 00 20 */ blr
+
+.global PersistThink
+PersistThink:
+/* 803585A4 00354204 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 803585A8 00354208 7C 08 02 A6 */ mflr r0
+/* 803585AC 0035420C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 803585B0 00354210 39 61 00 50 */ addi r11, r1, 0x50
+/* 803585B4 00354214 4B E6 EB 59 */ bl _savegpr_20
+/* 803585B8 00354218 80 0D 94 30 */ lwz r0, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 803585BC 0035421C 2C 00 FF FF */ cmpwi r0, -1
+/* 803585C0 00354220 40 82 00 0C */ bne lbl_803585CC
+/* 803585C4 00354224 38 60 00 00 */ li r3, 0
+/* 803585C8 00354228 48 00 04 78 */ b lbl_80358A40
+lbl_803585CC:
+/* 803585CC 0035422C 80 0D B1 20 */ lwz r0, lbl_806403E0-_SDA_BASE_(r13)
+/* 803585D0 00354230 2C 00 00 05 */ cmpwi r0, 5
+/* 803585D4 00354234 41 82 00 0C */ beq lbl_803585E0
+/* 803585D8 00354238 38 60 00 00 */ li r3, 0
+/* 803585DC 0035423C 48 00 04 64 */ b lbl_80358A40
+lbl_803585E0:
+/* 803585E0 00354240 3F E0 80 45 */ lis r31, lbl_8044C308@ha
+/* 803585E4 00354244 3B C0 00 00 */ li r30, 0
+/* 803585E8 00354248 3B FF C3 08 */ addi r31, r31, lbl_8044C308@l
+/* 803585EC 0035424C 48 00 04 30 */ b lbl_80358A1C
+lbl_803585F0:
+/* 803585F0 00354250 80 8D B1 18 */ lwz r4, lbl_806403D8-_SDA_BASE_(r13)
+/* 803585F4 00354254 80 0D B1 1C */ lwz r0, lbl_806403DC-_SDA_BASE_(r13)
+/* 803585F8 00354258 7C 00 20 50 */ subf r0, r0, r4
+/* 803585FC 0035425C 2C 00 00 80 */ cmpwi r0, 0x80
+/* 80358600 00354260 40 80 00 38 */ bge lbl_80358638
+/* 80358604 00354264 2C 04 01 00 */ cmpwi r4, 0x100
+/* 80358608 00354268 38 60 01 00 */ li r3, 0x100
+/* 8035860C 0035426C 41 80 00 08 */ blt lbl_80358614
+/* 80358610 00354270 54 83 08 3C */ slwi r3, r4, 1
+lbl_80358614:
+/* 80358614 00354274 90 6D B1 18 */ stw r3, lbl_806403D8-_SDA_BASE_(r13)
+/* 80358618 00354278 38 83 00 01 */ addi r4, r3, 1
+/* 8035861C 0035427C 80 6D B1 14 */ lwz r3, lbl_806403D4-_SDA_BASE_(r13)
+/* 80358620 00354280 4B FE 0D 05 */ bl gsirealloc
+/* 80358624 00354284 2C 03 00 00 */ cmpwi r3, 0
+/* 80358628 00354288 90 6D B1 14 */ stw r3, lbl_806403D4-_SDA_BASE_(r13)
+/* 8035862C 0035428C 40 82 00 0C */ bne lbl_80358638
+/* 80358630 00354290 38 60 00 00 */ li r3, 0
+/* 80358634 00354294 48 00 04 0C */ b lbl_80358A40
+lbl_80358638:
+/* 80358638 00354298 80 AD B1 1C */ lwz r5, lbl_806403DC-_SDA_BASE_(r13)
+/* 8035863C 0035429C 38 C0 00 00 */ li r6, 0
+/* 80358640 003542A0 80 8D B1 14 */ lwz r4, lbl_806403D4-_SDA_BASE_(r13)
+/* 80358644 003542A4 80 0D B1 18 */ lwz r0, lbl_806403D8-_SDA_BASE_(r13)
+/* 80358648 003542A8 7C 84 2A 14 */ add r4, r4, r5
+/* 8035864C 003542AC 80 6D 94 30 */ lwz r3, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358650 003542B0 7C A5 00 50 */ subf r5, r5, r0
+/* 80358654 003542B4 4B FD F7 7D */ bl recv
+/* 80358658 003542B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035865C 003542BC 41 81 02 08 */ bgt lbl_80358864
+/* 80358660 003542C0 80 6D 94 30 */ lwz r3, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358664 003542C4 2C 03 FF FF */ cmpwi r3, -1
+/* 80358668 003542C8 41 82 00 14 */ beq lbl_8035867C
+/* 8035866C 003542CC 38 80 00 02 */ li r4, 2
+/* 80358670 003542D0 4B FD F5 C1 */ bl shutdown
+/* 80358674 003542D4 80 6D 94 30 */ lwz r3, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358678 003542D8 4B FD F5 85 */ bl closesocket
+lbl_8035867C:
+/* 8035867C 003542DC 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80358680 003542E0 38 00 FF FF */ li r0, -1
+/* 80358684 003542E4 90 0D 94 30 */ stw r0, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358688 003542E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035868C 003542EC 41 82 01 B0 */ beq lbl_8035883C
+/* 80358690 003542F0 4B FD D8 59 */ bl ArrayLength
+/* 80358694 003542F4 3F 80 80 45 */ lis r28, lbl_8044C318@ha
+/* 80358698 003542F8 3F C0 80 45 */ lis r30, lbl_8044C550@ha
+/* 8035869C 003542FC 3B 9C C3 18 */ addi r28, r28, lbl_8044C318@l
+/* 803586A0 00354300 3B E3 FF FF */ addi r31, r3, -1
+/* 803586A4 00354304 3B DE C5 50 */ addi r30, r30, lbl_8044C550@l
+/* 803586A8 00354308 3B 60 00 03 */ li r27, 3
+/* 803586AC 0035430C 48 00 01 78 */ b lbl_80358824
+lbl_803586B0:
+/* 803586B0 00354310 8A 9E 00 00 */ lbz r20, 0(r30)
+/* 803586B4 00354314 7F 83 E3 78 */ mr r3, r28
+/* 803586B8 00354318 8A BE 00 01 */ lbz r21, 1(r30)
+/* 803586BC 0035431C 38 A1 00 08 */ addi r5, r1, 8
+/* 803586C0 00354320 8A DE 00 02 */ lbz r22, 2(r30)
+/* 803586C4 00354324 38 80 00 00 */ li r4, 0
+/* 803586C8 00354328 8A FE 00 03 */ lbz r23, 3(r30)
+/* 803586CC 0035432C 8B 1E 00 04 */ lbz r24, 4(r30)
+/* 803586D0 00354330 8B 3E 00 05 */ lbz r25, 5(r30)
+/* 803586D4 00354334 8B 5E 00 06 */ lbz r26, 6(r30)
+/* 803586D8 00354338 8B BE 00 07 */ lbz r29, 7(r30)
+/* 803586DC 0035433C 89 9E 00 08 */ lbz r12, 8(r30)
+/* 803586E0 00354340 89 7E 00 09 */ lbz r11, 9(r30)
+/* 803586E4 00354344 89 5E 00 0A */ lbz r10, 0xa(r30)
+/* 803586E8 00354348 89 3E 00 0B */ lbz r9, 0xb(r30)
+/* 803586EC 0035434C 89 1E 00 0C */ lbz r8, 0xc(r30)
+/* 803586F0 00354350 88 FE 00 0D */ lbz r7, 0xd(r30)
+/* 803586F4 00354354 88 DE 00 0E */ lbz r6, 0xe(r30)
+/* 803586F8 00354358 88 1E 00 0F */ lbz r0, 0xf(r30)
+/* 803586FC 0035435C 9A 81 00 08 */ stb r20, 8(r1)
+/* 80358700 00354360 9A A1 00 09 */ stb r21, 9(r1)
+/* 80358704 00354364 9A C1 00 0A */ stb r22, 0xa(r1)
+/* 80358708 00354368 9A E1 00 0B */ stb r23, 0xb(r1)
+/* 8035870C 0035436C 9B 01 00 0C */ stb r24, 0xc(r1)
+/* 80358710 00354370 9B 21 00 0D */ stb r25, 0xd(r1)
+/* 80358714 00354374 9B 41 00 0E */ stb r26, 0xe(r1)
+/* 80358718 00354378 9B A1 00 0F */ stb r29, 0xf(r1)
+/* 8035871C 0035437C 99 81 00 10 */ stb r12, 0x10(r1)
+/* 80358720 00354380 99 61 00 11 */ stb r11, 0x11(r1)
+/* 80358724 00354384 99 41 00 12 */ stb r10, 0x12(r1)
+/* 80358728 00354388 99 21 00 13 */ stb r9, 0x13(r1)
+/* 8035872C 0035438C 99 01 00 14 */ stb r8, 0x14(r1)
+/* 80358730 00354390 98 E1 00 15 */ stb r7, 0x15(r1)
+/* 80358734 00354394 98 C1 00 16 */ stb r6, 0x16(r1)
+/* 80358738 00354398 98 01 00 17 */ stb r0, 0x17(r1)
+/* 8035873C 0035439C 93 8D 94 34 */ stw r28, lbl_8063E6F4-_SDA_BASE_(r13)
+/* 80358740 003543A0 7F 69 03 A6 */ mtctr r27
+lbl_80358744:
+/* 80358744 003543A4 88 03 00 01 */ lbz r0, 1(r3)
+/* 80358748 003543A8 88 C3 00 00 */ lbz r6, 0(r3)
+/* 8035874C 003543AC 38 63 00 01 */ addi r3, r3, 1
+/* 80358750 003543B0 88 E5 00 00 */ lbz r7, 0(r5)
+/* 80358754 003543B4 7C 00 07 75 */ extsb. r0, r0
+/* 80358758 003543B8 7C E0 32 78 */ xor r0, r7, r6
+/* 8035875C 003543BC 98 05 00 00 */ stb r0, 0(r5)
+/* 80358760 003543C0 40 82 00 08 */ bne lbl_80358768
+/* 80358764 003543C4 7F 83 E3 78 */ mr r3, r28
+lbl_80358768:
+/* 80358768 003543C8 88 03 00 01 */ lbz r0, 1(r3)
+/* 8035876C 003543CC 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80358770 003543D0 38 63 00 01 */ addi r3, r3, 1
+/* 80358774 003543D4 88 E5 00 01 */ lbz r7, 1(r5)
+/* 80358778 003543D8 7C 00 07 75 */ extsb. r0, r0
+/* 8035877C 003543DC 7C E0 32 78 */ xor r0, r7, r6
+/* 80358780 003543E0 98 05 00 01 */ stb r0, 1(r5)
+/* 80358784 003543E4 40 82 00 08 */ bne lbl_8035878C
+/* 80358788 003543E8 7F 83 E3 78 */ mr r3, r28
+lbl_8035878C:
+/* 8035878C 003543EC 88 03 00 01 */ lbz r0, 1(r3)
+/* 80358790 003543F0 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80358794 003543F4 38 63 00 01 */ addi r3, r3, 1
+/* 80358798 003543F8 88 E5 00 02 */ lbz r7, 2(r5)
+/* 8035879C 003543FC 7C 00 07 75 */ extsb. r0, r0
+/* 803587A0 00354400 7C E0 32 78 */ xor r0, r7, r6
+/* 803587A4 00354404 98 05 00 02 */ stb r0, 2(r5)
+/* 803587A8 00354408 40 82 00 08 */ bne lbl_803587B0
+/* 803587AC 0035440C 7F 83 E3 78 */ mr r3, r28
+lbl_803587B0:
+/* 803587B0 00354410 88 03 00 01 */ lbz r0, 1(r3)
+/* 803587B4 00354414 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803587B8 00354418 38 63 00 01 */ addi r3, r3, 1
+/* 803587BC 0035441C 88 E5 00 03 */ lbz r7, 3(r5)
+/* 803587C0 00354420 7C 00 07 75 */ extsb. r0, r0
+/* 803587C4 00354424 7C E0 32 78 */ xor r0, r7, r6
+/* 803587C8 00354428 98 05 00 03 */ stb r0, 3(r5)
+/* 803587CC 0035442C 40 82 00 08 */ bne lbl_803587D4
+/* 803587D0 00354430 7F 83 E3 78 */ mr r3, r28
+lbl_803587D4:
+/* 803587D4 00354434 88 03 00 01 */ lbz r0, 1(r3)
+/* 803587D8 00354438 88 C3 00 00 */ lbz r6, 0(r3)
+/* 803587DC 0035443C 38 63 00 01 */ addi r3, r3, 1
+/* 803587E0 00354440 88 E5 00 04 */ lbz r7, 4(r5)
+/* 803587E4 00354444 7C 00 07 75 */ extsb. r0, r0
+/* 803587E8 00354448 7C E0 32 78 */ xor r0, r7, r6
+/* 803587EC 0035444C 98 05 00 04 */ stb r0, 4(r5)
+/* 803587F0 00354450 40 82 00 08 */ bne lbl_803587F8
+/* 803587F4 00354454 7F 83 E3 78 */ mr r3, r28
+lbl_803587F8:
+/* 803587F8 00354458 38 A5 00 05 */ addi r5, r5, 5
+/* 803587FC 0035445C 38 84 00 04 */ addi r4, r4, 4
+/* 80358800 00354460 42 00 FF 44 */ bdnz lbl_80358744
+/* 80358804 00354464 7F E3 FB 78 */ mr r3, r31
+/* 80358808 00354468 38 E1 00 08 */ addi r7, r1, 8
+/* 8035880C 0035446C 38 80 00 00 */ li r4, 0
+/* 80358810 00354470 38 C0 00 00 */ li r6, 0
+/* 80358814 00354474 38 A0 00 00 */ li r5, 0
+/* 80358818 00354478 39 00 00 00 */ li r8, 0
+/* 8035881C 0035447C 48 00 13 F5 */ bl CallReqCallback
+/* 80358820 00354480 3B FF FF FF */ addi r31, r31, -1
+lbl_80358824:
+/* 80358824 00354484 2C 1F 00 00 */ cmpwi r31, 0
+/* 80358828 00354488 40 80 FE 88 */ bge lbl_803586B0
+/* 8035882C 0035448C 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80358830 00354490 4B FD D6 25 */ bl ArrayFree
+/* 80358834 00354494 38 00 00 00 */ li r0, 0
+/* 80358838 00354498 90 0D B1 24 */ stw r0, lbl_806403E4-_SDA_BASE_(r13)
+lbl_8035883C:
+/* 8035883C 0035449C 80 6D B1 14 */ lwz r3, lbl_806403D4-_SDA_BASE_(r13)
+/* 80358840 003544A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80358844 003544A4 41 82 00 18 */ beq lbl_8035885C
+/* 80358848 003544A8 4B FE 0A F1 */ bl gsifree
+/* 8035884C 003544AC 38 00 00 00 */ li r0, 0
+/* 80358850 003544B0 90 0D B1 14 */ stw r0, lbl_806403D4-_SDA_BASE_(r13)
+/* 80358854 003544B4 90 0D B1 18 */ stw r0, lbl_806403D8-_SDA_BASE_(r13)
+/* 80358858 003544B8 90 0D B1 1C */ stw r0, lbl_806403DC-_SDA_BASE_(r13)
+lbl_8035885C:
+/* 8035885C 003544BC 38 60 00 00 */ li r3, 0
+/* 80358860 003544C0 48 00 01 E0 */ b lbl_80358A40
+lbl_80358864:
+/* 80358864 003544C4 80 0D B1 1C */ lwz r0, lbl_806403DC-_SDA_BASE_(r13)
+/* 80358868 003544C8 80 8D B1 14 */ lwz r4, lbl_806403D4-_SDA_BASE_(r13)
+/* 8035886C 003544CC 7C 00 1A 14 */ add r0, r0, r3
+/* 80358870 003544D0 90 0D B1 1C */ stw r0, lbl_806403DC-_SDA_BASE_(r13)
+/* 80358874 003544D4 7F C4 01 AE */ stbx r30, r4, r0
+/* 80358878 003544D8 83 6D B1 1C */ lwz r27, lbl_806403DC-_SDA_BASE_(r13)
+/* 8035887C 003544DC 80 6D B1 14 */ lwz r3, lbl_806403D4-_SDA_BASE_(r13)
+/* 80358880 003544E0 7F 7D DB 78 */ mr r29, r27
+/* 80358884 003544E4 38 1B FF FA */ addi r0, r27, -6
+/* 80358888 003544E8 7C 7C 1B 78 */ mr r28, r3
+/* 8035888C 003544EC 48 00 00 60 */ b lbl_803588EC
+lbl_80358890:
+/* 80358890 003544F0 88 9C 00 00 */ lbz r4, 0(r28)
+/* 80358894 003544F4 2C 04 00 5C */ cmpwi r4, 0x5c
+/* 80358898 003544F8 40 82 00 50 */ bne lbl_803588E8
+/* 8035889C 003544FC 88 9C 00 01 */ lbz r4, 1(r28)
+/* 803588A0 00354500 2C 04 00 66 */ cmpwi r4, 0x66
+/* 803588A4 00354504 40 82 00 44 */ bne lbl_803588E8
+/* 803588A8 00354508 88 9C 00 02 */ lbz r4, 2(r28)
+/* 803588AC 0035450C 2C 04 00 69 */ cmpwi r4, 0x69
+/* 803588B0 00354510 40 82 00 38 */ bne lbl_803588E8
+/* 803588B4 00354514 88 9C 00 03 */ lbz r4, 3(r28)
+/* 803588B8 00354518 2C 04 00 6E */ cmpwi r4, 0x6e
+/* 803588BC 0035451C 40 82 00 2C */ bne lbl_803588E8
+/* 803588C0 00354520 88 9C 00 04 */ lbz r4, 4(r28)
+/* 803588C4 00354524 2C 04 00 61 */ cmpwi r4, 0x61
+/* 803588C8 00354528 40 82 00 20 */ bne lbl_803588E8
+/* 803588CC 0035452C 88 9C 00 05 */ lbz r4, 5(r28)
+/* 803588D0 00354530 2C 04 00 6C */ cmpwi r4, 0x6c
+/* 803588D4 00354534 40 82 00 14 */ bne lbl_803588E8
+/* 803588D8 00354538 88 9C 00 06 */ lbz r4, 6(r28)
+/* 803588DC 0035453C 2C 04 00 5C */ cmpwi r4, 0x5c
+/* 803588E0 00354540 40 82 00 08 */ bne lbl_803588E8
+/* 803588E4 00354544 48 00 00 F4 */ b lbl_803589D8
+lbl_803588E8:
+/* 803588E8 00354548 3B 9C 00 01 */ addi r28, r28, 1
+lbl_803588EC:
+/* 803588EC 0035454C 7C 83 E0 50 */ subf r4, r3, r28
+/* 803588F0 00354550 7C 04 00 00 */ cmpw r4, r0
+/* 803588F4 00354554 41 80 FF 9C */ blt lbl_80358890
+/* 803588F8 00354558 3B 80 00 00 */ li r28, 0
+/* 803588FC 0035455C 48 00 00 DC */ b lbl_803589D8
+lbl_80358900:
+/* 80358900 00354560 7E 83 E0 51 */ subf. r20, r3, r28
+/* 80358904 00354564 7F E7 FB 78 */ mr r7, r31
+/* 80358908 00354568 7C 64 1B 78 */ mr r4, r3
+/* 8035890C 0035456C 93 ED 94 34 */ stw r31, lbl_8063E6F4-_SDA_BASE_(r13)
+/* 80358910 00354570 38 C0 00 00 */ li r6, 0
+/* 80358914 00354574 7E 89 03 A6 */ mtctr r20
+/* 80358918 00354578 40 81 00 30 */ ble lbl_80358948
+lbl_8035891C:
+/* 8035891C 0035457C 88 A4 00 00 */ lbz r5, 0(r4)
+/* 80358920 00354580 88 07 00 00 */ lbz r0, 0(r7)
+/* 80358924 00354584 7C A0 02 78 */ xor r0, r5, r0
+/* 80358928 00354588 98 04 00 00 */ stb r0, 0(r4)
+/* 8035892C 0035458C 8C 07 00 01 */ lbzu r0, 1(r7)
+/* 80358930 00354590 7C 00 07 75 */ extsb. r0, r0
+/* 80358934 00354594 40 82 00 08 */ bne lbl_8035893C
+/* 80358938 00354598 80 ED 94 34 */ lwz r7, lbl_8063E6F4-_SDA_BASE_(r13)
+lbl_8035893C:
+/* 8035893C 0035459C 38 C6 00 01 */ addi r6, r6, 1
+/* 80358940 003545A0 38 84 00 01 */ addi r4, r4, 1
+/* 80358944 003545A4 42 00 FF D8 */ bdnz lbl_8035891C
+lbl_80358948:
+/* 80358948 003545A8 7E 84 A3 78 */ mr r4, r20
+/* 8035894C 003545AC 48 00 06 39 */ bl ProcessStatement
+/* 80358950 003545B0 38 14 00 07 */ addi r0, r20, 7
+/* 80358954 003545B4 38 7C 00 07 */ addi r3, r28, 7
+/* 80358958 003545B8 7F A0 E8 51 */ subf. r29, r0, r29
+/* 8035895C 003545BC 40 81 00 7C */ ble lbl_803589D8
+/* 80358960 003545C0 7C 7C 1B 78 */ mr r28, r3
+/* 80358964 003545C4 38 1D FF FA */ addi r0, r29, -6
+/* 80358968 003545C8 48 00 00 60 */ b lbl_803589C8
+lbl_8035896C:
+/* 8035896C 003545CC 88 9C 00 00 */ lbz r4, 0(r28)
+/* 80358970 003545D0 2C 04 00 5C */ cmpwi r4, 0x5c
+/* 80358974 003545D4 40 82 00 50 */ bne lbl_803589C4
+/* 80358978 003545D8 88 9C 00 01 */ lbz r4, 1(r28)
+/* 8035897C 003545DC 2C 04 00 66 */ cmpwi r4, 0x66
+/* 80358980 003545E0 40 82 00 44 */ bne lbl_803589C4
+/* 80358984 003545E4 88 9C 00 02 */ lbz r4, 2(r28)
+/* 80358988 003545E8 2C 04 00 69 */ cmpwi r4, 0x69
+/* 8035898C 003545EC 40 82 00 38 */ bne lbl_803589C4
+/* 80358990 003545F0 88 9C 00 03 */ lbz r4, 3(r28)
+/* 80358994 003545F4 2C 04 00 6E */ cmpwi r4, 0x6e
+/* 80358998 003545F8 40 82 00 2C */ bne lbl_803589C4
+/* 8035899C 003545FC 88 9C 00 04 */ lbz r4, 4(r28)
+/* 803589A0 00354600 2C 04 00 61 */ cmpwi r4, 0x61
+/* 803589A4 00354604 40 82 00 20 */ bne lbl_803589C4
+/* 803589A8 00354608 88 9C 00 05 */ lbz r4, 5(r28)
+/* 803589AC 0035460C 2C 04 00 6C */ cmpwi r4, 0x6c
+/* 803589B0 00354610 40 82 00 14 */ bne lbl_803589C4
+/* 803589B4 00354614 88 9C 00 06 */ lbz r4, 6(r28)
+/* 803589B8 00354618 2C 04 00 5C */ cmpwi r4, 0x5c
+/* 803589BC 0035461C 40 82 00 08 */ bne lbl_803589C4
+/* 803589C0 00354620 48 00 00 18 */ b lbl_803589D8
+lbl_803589C4:
+/* 803589C4 00354624 3B 9C 00 01 */ addi r28, r28, 1
+lbl_803589C8:
+/* 803589C8 00354628 7C 83 E0 50 */ subf r4, r3, r28
+/* 803589CC 0035462C 7C 04 00 00 */ cmpw r4, r0
+/* 803589D0 00354630 41 80 FF 9C */ blt lbl_8035896C
+/* 803589D4 00354634 3B 80 00 00 */ li r28, 0
+lbl_803589D8:
+/* 803589D8 00354638 2C 1D 00 00 */ cmpwi r29, 0
+/* 803589DC 0035463C 40 81 00 0C */ ble lbl_803589E8
+/* 803589E0 00354640 2C 1C 00 00 */ cmpwi r28, 0
+/* 803589E4 00354644 40 82 FF 1C */ bne lbl_80358900
+lbl_803589E8:
+/* 803589E8 00354648 80 0D B1 1C */ lwz r0, lbl_806403DC-_SDA_BASE_(r13)
+/* 803589EC 0035464C 7E 9D D8 50 */ subf r20, r29, r27
+/* 803589F0 00354650 7C 14 00 00 */ cmpw r20, r0
+/* 803589F4 00354654 40 82 00 0C */ bne lbl_80358A00
+/* 803589F8 00354658 93 CD B1 1C */ stw r30, lbl_806403DC-_SDA_BASE_(r13)
+/* 803589FC 0035465C 48 00 00 20 */ b lbl_80358A1C
+lbl_80358A00:
+/* 80358A00 00354660 80 6D B1 14 */ lwz r3, lbl_806403D4-_SDA_BASE_(r13)
+/* 80358A04 00354664 7C B4 00 50 */ subf r5, r20, r0
+/* 80358A08 00354668 7C 83 A2 14 */ add r4, r3, r20
+/* 80358A0C 0035466C 4B E7 18 69 */ bl memmove
+/* 80358A10 00354670 80 0D B1 1C */ lwz r0, lbl_806403DC-_SDA_BASE_(r13)
+/* 80358A14 00354674 7C 14 00 50 */ subf r0, r20, r0
+/* 80358A18 00354678 90 0D B1 1C */ stw r0, lbl_806403DC-_SDA_BASE_(r13)
+lbl_80358A1C:
+/* 80358A1C 0035467C 80 6D 94 30 */ lwz r3, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358A20 00354680 4B FD FE 2D */ bl CanReceiveOnSocket
+/* 80358A24 00354684 2C 03 00 00 */ cmpwi r3, 0
+/* 80358A28 00354688 40 82 FB C8 */ bne lbl_803585F0
+/* 80358A2C 0035468C 80 8D 94 30 */ lwz r4, lbl_8063E6F0-_SDA_BASE_(r13)
+/* 80358A30 00354690 20 64 FF FF */ subfic r3, r4, -1
+/* 80358A34 00354694 38 04 00 01 */ addi r0, r4, 1
+/* 80358A38 00354698 7C 60 03 78 */ or r0, r3, r0
+/* 80358A3C 0035469C 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_80358A40:
+/* 80358A40 003546A0 39 61 00 50 */ addi r11, r1, 0x50
+/* 80358A44 003546A4 4B E6 E7 15 */ bl _restgpr_20
+/* 80358A48 003546A8 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80358A4C 003546AC 7C 08 03 A6 */ mtlr r0
+/* 80358A50 003546B0 38 21 00 50 */ addi r1, r1, 0x50
+/* 80358A54 003546B4 4E 80 00 20 */ blr
+
+.global ProcessGetData
+ProcessGetData:
+/* 80358A58 003546B8 94 21 FA D0 */ stwu r1, -0x530(r1)
+/* 80358A5C 003546BC 7C 08 02 A6 */ mflr r0
+/* 80358A60 003546C0 90 01 05 34 */ stw r0, 0x534(r1)
+/* 80358A64 003546C4 39 61 05 30 */ addi r11, r1, 0x530
+/* 80358A68 003546C8 4B E6 E6 B9 */ bl _savegpr_25
+/* 80358A6C 003546CC 3C A0 80 45 */ lis r5, lbl_8044C410@ha
+/* 80358A70 003546D0 38 00 00 80 */ li r0, 0x80
+/* 80358A74 003546D4 38 A5 C4 10 */ addi r5, r5, lbl_8044C410@l
+/* 80358A78 003546D8 7C 79 1B 78 */ mr r25, r3
+/* 80358A7C 003546DC 38 C1 04 07 */ addi r6, r1, 0x407
+/* 80358A80 003546E0 38 8D 94 40 */ addi r4, r13, lbl_8063E700-_SDA_BASE_
+/* 80358A84 003546E4 38 A5 FF FF */ addi r5, r5, -1
+/* 80358A88 003546E8 7C 09 03 A6 */ mtctr r0
+lbl_80358A8C:
+/* 80358A8C 003546EC 88 65 00 01 */ lbz r3, 1(r5)
+/* 80358A90 003546F0 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80358A94 003546F4 98 66 00 01 */ stb r3, 1(r6)
+/* 80358A98 003546F8 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80358A9C 003546FC 42 00 FF F0 */ bdnz lbl_80358A8C
+/* 80358AA0 00354700 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358AA4 00354704 38 61 04 08 */ addi r3, r1, 0x408
+/* 80358AA8 00354708 68 00 00 01 */ xori r0, r0, 1
+/* 80358AAC 0035470C 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358AB0 00354710 4B E7 59 25 */ bl strcat
+/* 80358AB4 00354714 38 61 04 08 */ addi r3, r1, 0x408
+/* 80358AB8 00354718 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80358ABC 0035471C 4B E7 59 19 */ bl strcat
+/* 80358AC0 00354720 7F 23 CB 78 */ mr r3, r25
+/* 80358AC4 00354724 38 81 04 08 */ addi r4, r1, 0x408
+/* 80358AC8 00354728 4B E7 5C D9 */ bl strstr
+/* 80358ACC 0035472C 2C 03 00 00 */ cmpwi r3, 0
+/* 80358AD0 00354730 7C 7A 1B 78 */ mr r26, r3
+/* 80358AD4 00354734 40 82 00 0C */ bne lbl_80358AE0
+/* 80358AD8 00354738 38 60 00 00 */ li r3, 0
+/* 80358ADC 0035473C 48 00 00 58 */ b lbl_80358B34
+lbl_80358AE0:
+/* 80358AE0 00354740 38 61 04 08 */ addi r3, r1, 0x408
+/* 80358AE4 00354744 4B E6 E0 81 */ bl strlen
+/* 80358AE8 00354748 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358AEC 0035474C 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80358AF0 00354750 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80358AF4 00354754 7C BA 1A 14 */ add r5, r26, r3
+/* 80358AF8 00354758 54 00 40 2E */ slwi r0, r0, 8
+/* 80358AFC 0035475C 7C 64 02 14 */ add r3, r4, r0
+/* 80358B00 00354760 7C 64 1B 78 */ mr r4, r3
+/* 80358B04 00354764 48 00 00 14 */ b lbl_80358B18
+lbl_80358B08:
+/* 80358B08 00354768 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358B0C 0035476C 38 A5 00 01 */ addi r5, r5, 1
+/* 80358B10 00354770 98 04 00 00 */ stb r0, 0(r4)
+/* 80358B14 00354774 38 84 00 01 */ addi r4, r4, 1
+lbl_80358B18:
+/* 80358B18 00354778 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358B1C 0035477C 7C 00 07 75 */ extsb. r0, r0
+/* 80358B20 00354780 41 82 00 0C */ beq lbl_80358B2C
+/* 80358B24 00354784 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80358B28 00354788 40 82 FF E0 */ bne lbl_80358B08
+lbl_80358B2C:
+/* 80358B2C 0035478C 38 00 00 00 */ li r0, 0
+/* 80358B30 00354790 98 04 00 00 */ stb r0, 0(r4)
+lbl_80358B34:
+/* 80358B34 00354794 2C 03 00 00 */ cmpwi r3, 0
+/* 80358B38 00354798 41 82 00 08 */ beq lbl_80358B40
+/* 80358B3C 0035479C 48 00 00 08 */ b lbl_80358B44
+lbl_80358B40:
+/* 80358B40 003547A0 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80358B44:
+/* 80358B44 003547A4 4B E7 7B C9 */ bl atoi
+/* 80358B48 003547A8 3C A0 80 45 */ lis r5, lbl_8044C410@ha
+/* 80358B4C 003547AC 38 00 00 80 */ li r0, 0x80
+/* 80358B50 003547B0 38 A5 C4 10 */ addi r5, r5, lbl_8044C410@l
+/* 80358B54 003547B4 7C 7C 1B 78 */ mr r28, r3
+/* 80358B58 003547B8 38 C1 03 07 */ addi r6, r1, 0x307
+/* 80358B5C 003547BC 38 8D 94 48 */ addi r4, r13, lbl_8063E708-_SDA_BASE_
+/* 80358B60 003547C0 38 A5 FF FF */ addi r5, r5, -1
+/* 80358B64 003547C4 7C 09 03 A6 */ mtctr r0
+lbl_80358B68:
+/* 80358B68 003547C8 88 65 00 01 */ lbz r3, 1(r5)
+/* 80358B6C 003547CC 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80358B70 003547D0 98 66 00 01 */ stb r3, 1(r6)
+/* 80358B74 003547D4 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80358B78 003547D8 42 00 FF F0 */ bdnz lbl_80358B68
+/* 80358B7C 003547DC 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358B80 003547E0 38 61 03 08 */ addi r3, r1, 0x308
+/* 80358B84 003547E4 68 00 00 01 */ xori r0, r0, 1
+/* 80358B88 003547E8 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358B8C 003547EC 4B E7 58 49 */ bl strcat
+/* 80358B90 003547F0 38 61 03 08 */ addi r3, r1, 0x308
+/* 80358B94 003547F4 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80358B98 003547F8 4B E7 58 3D */ bl strcat
+/* 80358B9C 003547FC 7F 23 CB 78 */ mr r3, r25
+/* 80358BA0 00354800 38 81 03 08 */ addi r4, r1, 0x308
+/* 80358BA4 00354804 4B E7 5B FD */ bl strstr
+/* 80358BA8 00354808 2C 03 00 00 */ cmpwi r3, 0
+/* 80358BAC 0035480C 7C 7A 1B 78 */ mr r26, r3
+/* 80358BB0 00354810 40 82 00 0C */ bne lbl_80358BBC
+/* 80358BB4 00354814 38 60 00 00 */ li r3, 0
+/* 80358BB8 00354818 48 00 00 58 */ b lbl_80358C10
+lbl_80358BBC:
+/* 80358BBC 0035481C 38 61 03 08 */ addi r3, r1, 0x308
+/* 80358BC0 00354820 4B E6 DF A5 */ bl strlen
+/* 80358BC4 00354824 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358BC8 00354828 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80358BCC 0035482C 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80358BD0 00354830 7C BA 1A 14 */ add r5, r26, r3
+/* 80358BD4 00354834 54 00 40 2E */ slwi r0, r0, 8
+/* 80358BD8 00354838 7C 64 02 14 */ add r3, r4, r0
+/* 80358BDC 0035483C 7C 64 1B 78 */ mr r4, r3
+/* 80358BE0 00354840 48 00 00 14 */ b lbl_80358BF4
+lbl_80358BE4:
+/* 80358BE4 00354844 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358BE8 00354848 38 A5 00 01 */ addi r5, r5, 1
+/* 80358BEC 0035484C 98 04 00 00 */ stb r0, 0(r4)
+/* 80358BF0 00354850 38 84 00 01 */ addi r4, r4, 1
+lbl_80358BF4:
+/* 80358BF4 00354854 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358BF8 00354858 7C 00 07 75 */ extsb. r0, r0
+/* 80358BFC 0035485C 41 82 00 0C */ beq lbl_80358C08
+/* 80358C00 00354860 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80358C04 00354864 40 82 FF E0 */ bne lbl_80358BE4
+lbl_80358C08:
+/* 80358C08 00354868 38 00 00 00 */ li r0, 0
+/* 80358C0C 0035486C 98 04 00 00 */ stb r0, 0(r4)
+lbl_80358C10:
+/* 80358C10 00354870 2C 03 00 00 */ cmpwi r3, 0
+/* 80358C14 00354874 41 82 00 08 */ beq lbl_80358C1C
+/* 80358C18 00354878 48 00 00 08 */ b lbl_80358C20
+lbl_80358C1C:
+/* 80358C1C 0035487C 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80358C20:
+/* 80358C20 00354880 4B E7 7A ED */ bl atoi
+/* 80358C24 00354884 3C A0 80 45 */ lis r5, lbl_8044C410@ha
+/* 80358C28 00354888 38 00 00 80 */ li r0, 0x80
+/* 80358C2C 0035488C 38 A5 C4 10 */ addi r5, r5, lbl_8044C410@l
+/* 80358C30 00354890 7C 7E 1B 78 */ mr r30, r3
+/* 80358C34 00354894 38 C1 02 07 */ addi r6, r1, 0x207
+/* 80358C38 00354898 38 8D 94 4C */ addi r4, r13, lbl_8063E70C-_SDA_BASE_
+/* 80358C3C 0035489C 38 A5 FF FF */ addi r5, r5, -1
+/* 80358C40 003548A0 7C 09 03 A6 */ mtctr r0
+lbl_80358C44:
+/* 80358C44 003548A4 88 65 00 01 */ lbz r3, 1(r5)
+/* 80358C48 003548A8 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80358C4C 003548AC 98 66 00 01 */ stb r3, 1(r6)
+/* 80358C50 003548B0 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80358C54 003548B4 42 00 FF F0 */ bdnz lbl_80358C44
+/* 80358C58 003548B8 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358C5C 003548BC 38 61 02 08 */ addi r3, r1, 0x208
+/* 80358C60 003548C0 68 00 00 01 */ xori r0, r0, 1
+/* 80358C64 003548C4 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358C68 003548C8 4B E7 57 6D */ bl strcat
+/* 80358C6C 003548CC 38 61 02 08 */ addi r3, r1, 0x208
+/* 80358C70 003548D0 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80358C74 003548D4 4B E7 57 61 */ bl strcat
+/* 80358C78 003548D8 7F 23 CB 78 */ mr r3, r25
+/* 80358C7C 003548DC 38 81 02 08 */ addi r4, r1, 0x208
+/* 80358C80 003548E0 4B E7 5B 21 */ bl strstr
+/* 80358C84 003548E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80358C88 003548E8 7C 7A 1B 78 */ mr r26, r3
+/* 80358C8C 003548EC 40 82 00 0C */ bne lbl_80358C98
+/* 80358C90 003548F0 38 60 00 00 */ li r3, 0
+/* 80358C94 003548F4 48 00 00 58 */ b lbl_80358CEC
+lbl_80358C98:
+/* 80358C98 003548F8 38 61 02 08 */ addi r3, r1, 0x208
+/* 80358C9C 003548FC 4B E6 DE C9 */ bl strlen
+/* 80358CA0 00354900 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358CA4 00354904 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80358CA8 00354908 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80358CAC 0035490C 7C BA 1A 14 */ add r5, r26, r3
+/* 80358CB0 00354910 54 00 40 2E */ slwi r0, r0, 8
+/* 80358CB4 00354914 7C 64 02 14 */ add r3, r4, r0
+/* 80358CB8 00354918 7C 64 1B 78 */ mr r4, r3
+/* 80358CBC 0035491C 48 00 00 14 */ b lbl_80358CD0
+lbl_80358CC0:
+/* 80358CC0 00354920 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358CC4 00354924 38 A5 00 01 */ addi r5, r5, 1
+/* 80358CC8 00354928 98 04 00 00 */ stb r0, 0(r4)
+/* 80358CCC 0035492C 38 84 00 01 */ addi r4, r4, 1
+lbl_80358CD0:
+/* 80358CD0 00354930 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358CD4 00354934 7C 00 07 75 */ extsb. r0, r0
+/* 80358CD8 00354938 41 82 00 0C */ beq lbl_80358CE4
+/* 80358CDC 0035493C 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80358CE0 00354940 40 82 FF E0 */ bne lbl_80358CC0
+lbl_80358CE4:
+/* 80358CE4 00354944 38 00 00 00 */ li r0, 0
+/* 80358CE8 00354948 98 04 00 00 */ stb r0, 0(r4)
+lbl_80358CEC:
+/* 80358CEC 0035494C 2C 03 00 00 */ cmpwi r3, 0
+/* 80358CF0 00354950 41 82 00 08 */ beq lbl_80358CF8
+/* 80358CF4 00354954 48 00 00 08 */ b lbl_80358CFC
+lbl_80358CF8:
+/* 80358CF8 00354958 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80358CFC:
+/* 80358CFC 0035495C 4B E7 7A 11 */ bl atoi
+/* 80358D00 00354960 3C A0 80 45 */ lis r5, lbl_8044C410@ha
+/* 80358D04 00354964 38 00 00 80 */ li r0, 0x80
+/* 80358D08 00354968 38 A5 C4 10 */ addi r5, r5, lbl_8044C410@l
+/* 80358D0C 0035496C 7C 7F 1B 78 */ mr r31, r3
+/* 80358D10 00354970 38 C1 01 07 */ addi r6, r1, 0x107
+/* 80358D14 00354974 38 8D 94 50 */ addi r4, r13, lbl_8063E710-_SDA_BASE_
+/* 80358D18 00354978 38 A5 FF FF */ addi r5, r5, -1
+/* 80358D1C 0035497C 7C 09 03 A6 */ mtctr r0
+lbl_80358D20:
+/* 80358D20 00354980 88 65 00 01 */ lbz r3, 1(r5)
+/* 80358D24 00354984 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80358D28 00354988 98 66 00 01 */ stb r3, 1(r6)
+/* 80358D2C 0035498C 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80358D30 00354990 42 00 FF F0 */ bdnz lbl_80358D20
+/* 80358D34 00354994 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358D38 00354998 38 61 01 08 */ addi r3, r1, 0x108
+/* 80358D3C 0035499C 68 00 00 01 */ xori r0, r0, 1
+/* 80358D40 003549A0 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358D44 003549A4 4B E7 56 91 */ bl strcat
+/* 80358D48 003549A8 38 61 01 08 */ addi r3, r1, 0x108
+/* 80358D4C 003549AC 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80358D50 003549B0 4B E7 56 85 */ bl strcat
+/* 80358D54 003549B4 7F 23 CB 78 */ mr r3, r25
+/* 80358D58 003549B8 38 81 01 08 */ addi r4, r1, 0x108
+/* 80358D5C 003549BC 4B E7 5A 45 */ bl strstr
+/* 80358D60 003549C0 2C 03 00 00 */ cmpwi r3, 0
+/* 80358D64 003549C4 7C 7A 1B 78 */ mr r26, r3
+/* 80358D68 003549C8 40 82 00 0C */ bne lbl_80358D74
+/* 80358D6C 003549CC 38 60 00 00 */ li r3, 0
+/* 80358D70 003549D0 48 00 00 58 */ b lbl_80358DC8
+lbl_80358D74:
+/* 80358D74 003549D4 38 61 01 08 */ addi r3, r1, 0x108
+/* 80358D78 003549D8 4B E6 DD ED */ bl strlen
+/* 80358D7C 003549DC 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358D80 003549E0 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80358D84 003549E4 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80358D88 003549E8 7C BA 1A 14 */ add r5, r26, r3
+/* 80358D8C 003549EC 54 00 40 2E */ slwi r0, r0, 8
+/* 80358D90 003549F0 7C 64 02 14 */ add r3, r4, r0
+/* 80358D94 003549F4 7C 64 1B 78 */ mr r4, r3
+/* 80358D98 003549F8 48 00 00 14 */ b lbl_80358DAC
+lbl_80358D9C:
+/* 80358D9C 003549FC 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358DA0 00354A00 38 A5 00 01 */ addi r5, r5, 1
+/* 80358DA4 00354A04 98 04 00 00 */ stb r0, 0(r4)
+/* 80358DA8 00354A08 38 84 00 01 */ addi r4, r4, 1
+lbl_80358DAC:
+/* 80358DAC 00354A0C 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358DB0 00354A10 7C 00 07 75 */ extsb. r0, r0
+/* 80358DB4 00354A14 41 82 00 0C */ beq lbl_80358DC0
+/* 80358DB8 00354A18 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80358DBC 00354A1C 40 82 FF E0 */ bne lbl_80358D9C
+lbl_80358DC0:
+/* 80358DC0 00354A20 38 00 00 00 */ li r0, 0
+/* 80358DC4 00354A24 98 04 00 00 */ stb r0, 0(r4)
+lbl_80358DC8:
+/* 80358DC8 00354A28 2C 03 00 00 */ cmpwi r3, 0
+/* 80358DCC 00354A2C 41 82 00 08 */ beq lbl_80358DD4
+/* 80358DD0 00354A30 48 00 00 08 */ b lbl_80358DD8
+lbl_80358DD4:
+/* 80358DD4 00354A34 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80358DD8:
+/* 80358DD8 00354A38 4B E7 79 35 */ bl atoi
+/* 80358DDC 00354A3C 80 0D B1 24 */ lwz r0, lbl_806403E4-_SDA_BASE_(r13)
+/* 80358DE0 00354A40 7C 7A 1B 78 */ mr r26, r3
+/* 80358DE4 00354A44 7C 7B FE 70 */ srawi r27, r3, 0x1f
+/* 80358DE8 00354A48 2C 00 00 00 */ cmpwi r0, 0
+/* 80358DEC 00354A4C 40 82 00 0C */ bne lbl_80358DF8
+/* 80358DF0 00354A50 3B A0 FF FF */ li r29, -1
+/* 80358DF4 00354A54 48 00 00 58 */ b lbl_80358E4C
+lbl_80358DF8:
+/* 80358DF8 00354A58 3B A0 00 00 */ li r29, 0
+/* 80358DFC 00354A5C 48 00 00 3C */ b lbl_80358E38
+lbl_80358E00:
+/* 80358E00 00354A60 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80358E04 00354A64 7F A4 EB 78 */ mr r4, r29
+/* 80358E08 00354A68 4B FD D0 E9 */ bl ArrayNth
+/* 80358E0C 00354A6C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80358E10 00354A70 2C 00 00 01 */ cmpwi r0, 1
+/* 80358E14 00354A74 40 82 00 20 */ bne lbl_80358E34
+/* 80358E18 00354A78 80 03 00 04 */ lwz r0, 4(r3)
+/* 80358E1C 00354A7C 7C 00 F0 00 */ cmpw r0, r30
+/* 80358E20 00354A80 40 82 00 14 */ bne lbl_80358E34
+/* 80358E24 00354A84 80 03 00 08 */ lwz r0, 8(r3)
+/* 80358E28 00354A88 7C 00 F8 00 */ cmpw r0, r31
+/* 80358E2C 00354A8C 40 82 00 08 */ bne lbl_80358E34
+/* 80358E30 00354A90 48 00 00 1C */ b lbl_80358E4C
+lbl_80358E34:
+/* 80358E34 00354A94 3B BD 00 01 */ addi r29, r29, 1
+lbl_80358E38:
+/* 80358E38 00354A98 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80358E3C 00354A9C 4B FD D0 AD */ bl ArrayLength
+/* 80358E40 00354AA0 7C 1D 18 00 */ cmpw r29, r3
+/* 80358E44 00354AA4 41 80 FF BC */ blt lbl_80358E00
+/* 80358E48 00354AA8 3B A0 FF FF */ li r29, -1
+lbl_80358E4C:
+/* 80358E4C 00354AAC 2C 1D FF FF */ cmpwi r29, -1
+/* 80358E50 00354AB0 41 82 01 1C */ beq lbl_80358F6C
+/* 80358E54 00354AB4 3C 60 80 45 */ lis r3, lbl_8044C410@ha
+/* 80358E58 00354AB8 38 00 00 80 */ li r0, 0x80
+/* 80358E5C 00354ABC 38 63 C4 10 */ addi r3, r3, lbl_8044C410@l
+/* 80358E60 00354AC0 38 C1 00 07 */ addi r6, r1, 7
+/* 80358E64 00354AC4 38 A3 FF FF */ addi r5, r3, -1
+/* 80358E68 00354AC8 38 8D 94 54 */ addi r4, r13, lbl_8063E714-_SDA_BASE_
+/* 80358E6C 00354ACC 7C 09 03 A6 */ mtctr r0
+lbl_80358E70:
+/* 80358E70 00354AD0 88 65 00 01 */ lbz r3, 1(r5)
+/* 80358E74 00354AD4 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80358E78 00354AD8 98 66 00 01 */ stb r3, 1(r6)
+/* 80358E7C 00354ADC 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80358E80 00354AE0 42 00 FF F0 */ bdnz lbl_80358E70
+/* 80358E84 00354AE4 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358E88 00354AE8 38 61 00 08 */ addi r3, r1, 8
+/* 80358E8C 00354AEC 68 00 00 01 */ xori r0, r0, 1
+/* 80358E90 00354AF0 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358E94 00354AF4 4B E7 55 41 */ bl strcat
+/* 80358E98 00354AF8 38 61 00 08 */ addi r3, r1, 8
+/* 80358E9C 00354AFC 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80358EA0 00354B00 4B E7 55 35 */ bl strcat
+/* 80358EA4 00354B04 7F 23 CB 78 */ mr r3, r25
+/* 80358EA8 00354B08 38 81 00 08 */ addi r4, r1, 8
+/* 80358EAC 00354B0C 4B E7 58 F5 */ bl strstr
+/* 80358EB0 00354B10 2C 03 00 00 */ cmpwi r3, 0
+/* 80358EB4 00354B14 7C 7E 1B 78 */ mr r30, r3
+/* 80358EB8 00354B18 40 82 00 0C */ bne lbl_80358EC4
+/* 80358EBC 00354B1C 38 60 00 00 */ li r3, 0
+/* 80358EC0 00354B20 48 00 00 58 */ b lbl_80358F18
+lbl_80358EC4:
+/* 80358EC4 00354B24 38 61 00 08 */ addi r3, r1, 8
+/* 80358EC8 00354B28 4B E6 DC 9D */ bl strlen
+/* 80358ECC 00354B2C 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358ED0 00354B30 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80358ED4 00354B34 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80358ED8 00354B38 7C BE 1A 14 */ add r5, r30, r3
+/* 80358EDC 00354B3C 54 00 40 2E */ slwi r0, r0, 8
+/* 80358EE0 00354B40 7C 64 02 14 */ add r3, r4, r0
+/* 80358EE4 00354B44 7C 64 1B 78 */ mr r4, r3
+/* 80358EE8 00354B48 48 00 00 14 */ b lbl_80358EFC
+lbl_80358EEC:
+/* 80358EEC 00354B4C 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358EF0 00354B50 38 A5 00 01 */ addi r5, r5, 1
+/* 80358EF4 00354B54 98 04 00 00 */ stb r0, 0(r4)
+/* 80358EF8 00354B58 38 84 00 01 */ addi r4, r4, 1
+lbl_80358EFC:
+/* 80358EFC 00354B5C 88 05 00 00 */ lbz r0, 0(r5)
+/* 80358F00 00354B60 7C 00 07 75 */ extsb. r0, r0
+/* 80358F04 00354B64 41 82 00 0C */ beq lbl_80358F10
+/* 80358F08 00354B68 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80358F0C 00354B6C 40 82 FF E0 */ bne lbl_80358EEC
+lbl_80358F10:
+/* 80358F10 00354B70 38 00 00 00 */ li r0, 0
+/* 80358F14 00354B74 98 04 00 00 */ stb r0, 0(r4)
+lbl_80358F18:
+/* 80358F18 00354B78 2C 03 00 00 */ cmpwi r3, 0
+/* 80358F1C 00354B7C 41 82 00 08 */ beq lbl_80358F24
+/* 80358F20 00354B80 48 00 00 08 */ b lbl_80358F28
+lbl_80358F24:
+/* 80358F24 00354B84 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80358F28:
+/* 80358F28 00354B88 4B E7 77 E5 */ bl atoi
+/* 80358F2C 00354B8C 7C 7E 1B 78 */ mr r30, r3
+/* 80358F30 00354B90 7F 23 CB 78 */ mr r3, r25
+/* 80358F34 00354B94 38 8D 94 5C */ addi r4, r13, lbl_8063E71C-_SDA_BASE_
+/* 80358F38 00354B98 4B E7 58 69 */ bl strstr
+/* 80358F3C 00354B9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80358F40 00354BA0 40 82 00 10 */ bne lbl_80358F50
+/* 80358F44 00354BA4 3B C0 00 00 */ li r30, 0
+/* 80358F48 00354BA8 38 ED 94 3C */ addi r7, r13, lbl_8063E6FC-_SDA_BASE_
+/* 80358F4C 00354BAC 48 00 00 08 */ b lbl_80358F54
+lbl_80358F50:
+/* 80358F50 00354BB0 38 E3 00 06 */ addi r7, r3, 6
+lbl_80358F54:
+/* 80358F54 00354BB4 7F A3 EB 78 */ mr r3, r29
+/* 80358F58 00354BB8 7F 84 E3 78 */ mr r4, r28
+/* 80358F5C 00354BBC 7F 46 D3 78 */ mr r6, r26
+/* 80358F60 00354BC0 7F 65 DB 78 */ mr r5, r27
+/* 80358F64 00354BC4 7F C8 F3 78 */ mr r8, r30
+/* 80358F68 00354BC8 48 00 0C A9 */ bl CallReqCallback
+lbl_80358F6C:
+/* 80358F6C 00354BCC 39 61 05 30 */ addi r11, r1, 0x530
+/* 80358F70 00354BD0 4B E6 E1 FD */ bl _restgpr_25
+/* 80358F74 00354BD4 80 01 05 34 */ lwz r0, 0x534(r1)
+/* 80358F78 00354BD8 7C 08 03 A6 */ mtlr r0
+/* 80358F7C 00354BDC 38 21 05 30 */ addi r1, r1, 0x530
+/* 80358F80 00354BE0 4E 80 00 20 */ blr
+
+.global ProcessStatement
+ProcessStatement:
+/* 80358F84 00354BE4 94 21 F4 E0 */ stwu r1, -0xb20(r1)
+/* 80358F88 00354BE8 7C 08 02 A6 */ mflr r0
+/* 80358F8C 00354BEC 90 01 0B 24 */ stw r0, 0xb24(r1)
+/* 80358F90 00354BF0 39 61 0B 20 */ addi r11, r1, 0xb20
+/* 80358F94 00354BF4 4B E6 E1 95 */ bl _savegpr_27
+/* 80358F98 00354BF8 3F A0 80 45 */ lis r29, lbl_8044C308@ha
+/* 80358F9C 00354BFC 38 00 00 00 */ li r0, 0
+/* 80358FA0 00354C00 7C 03 21 AE */ stbx r0, r3, r4
+/* 80358FA4 00354C04 3B BD C3 08 */ addi r29, r29, lbl_8044C308@l
+/* 80358FA8 00354C08 7C 9C 23 78 */ mr r28, r4
+/* 80358FAC 00354C0C 7C 7B 1B 78 */ mr r27, r3
+/* 80358FB0 00354C10 38 9D 02 18 */ addi r4, r29, 0x218
+/* 80358FB4 00354C14 38 A0 00 08 */ li r5, 8
+/* 80358FB8 00354C18 4B E7 55 B1 */ bl strncmp
+/* 80358FBC 00354C1C 2C 03 00 00 */ cmpwi r3, 0
+/* 80358FC0 00354C20 40 82 03 2C */ bne lbl_803592EC
+/* 80358FC4 00354C24 38 7D 01 08 */ addi r3, r29, 0x108
+/* 80358FC8 00354C28 38 00 00 80 */ li r0, 0x80
+/* 80358FCC 00354C2C 38 C1 08 07 */ addi r6, r1, 0x807
+/* 80358FD0 00354C30 38 8D 94 64 */ addi r4, r13, lbl_8063E724-_SDA_BASE_
+/* 80358FD4 00354C34 38 A3 FF FF */ addi r5, r3, -1
+/* 80358FD8 00354C38 7C 09 03 A6 */ mtctr r0
+lbl_80358FDC:
+/* 80358FDC 00354C3C 88 65 00 01 */ lbz r3, 1(r5)
+/* 80358FE0 00354C40 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80358FE4 00354C44 98 66 00 01 */ stb r3, 1(r6)
+/* 80358FE8 00354C48 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80358FEC 00354C4C 42 00 FF F0 */ bdnz lbl_80358FDC
+/* 80358FF0 00354C50 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80358FF4 00354C54 38 61 08 08 */ addi r3, r1, 0x808
+/* 80358FF8 00354C58 68 00 00 01 */ xori r0, r0, 1
+/* 80358FFC 00354C5C 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359000 00354C60 4B E7 53 D5 */ bl strcat
+/* 80359004 00354C64 38 61 08 08 */ addi r3, r1, 0x808
+/* 80359008 00354C68 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 8035900C 00354C6C 4B E7 53 C9 */ bl strcat
+/* 80359010 00354C70 7F 63 DB 78 */ mr r3, r27
+/* 80359014 00354C74 38 81 08 08 */ addi r4, r1, 0x808
+/* 80359018 00354C78 4B E7 57 89 */ bl strstr
+/* 8035901C 00354C7C 2C 03 00 00 */ cmpwi r3, 0
+/* 80359020 00354C80 7C 7C 1B 78 */ mr r28, r3
+/* 80359024 00354C84 40 82 00 0C */ bne lbl_80359030
+/* 80359028 00354C88 38 60 00 00 */ li r3, 0
+/* 8035902C 00354C8C 48 00 00 58 */ b lbl_80359084
+lbl_80359030:
+/* 80359030 00354C90 38 61 08 08 */ addi r3, r1, 0x808
+/* 80359034 00354C94 4B E6 DB 31 */ bl strlen
+/* 80359038 00354C98 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 8035903C 00354C9C 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359040 00354CA0 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80359044 00354CA4 7C BC 1A 14 */ add r5, r28, r3
+/* 80359048 00354CA8 54 00 40 2E */ slwi r0, r0, 8
+/* 8035904C 00354CAC 7C 64 02 14 */ add r3, r4, r0
+/* 80359050 00354CB0 7C 64 1B 78 */ mr r4, r3
+/* 80359054 00354CB4 48 00 00 14 */ b lbl_80359068
+lbl_80359058:
+/* 80359058 00354CB8 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035905C 00354CBC 38 A5 00 01 */ addi r5, r5, 1
+/* 80359060 00354CC0 98 04 00 00 */ stb r0, 0(r4)
+/* 80359064 00354CC4 38 84 00 01 */ addi r4, r4, 1
+lbl_80359068:
+/* 80359068 00354CC8 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035906C 00354CCC 7C 00 07 75 */ extsb. r0, r0
+/* 80359070 00354CD0 41 82 00 0C */ beq lbl_8035907C
+/* 80359074 00354CD4 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359078 00354CD8 40 82 FF E0 */ bne lbl_80359058
+lbl_8035907C:
+/* 8035907C 00354CDC 38 00 00 00 */ li r0, 0
+/* 80359080 00354CE0 98 04 00 00 */ stb r0, 0(r4)
+lbl_80359084:
+/* 80359084 00354CE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80359088 00354CE8 41 82 00 08 */ beq lbl_80359090
+/* 8035908C 00354CEC 48 00 00 08 */ b lbl_80359094
+lbl_80359090:
+/* 80359090 00354CF0 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80359094:
+/* 80359094 00354CF4 4B E7 76 79 */ bl atoi
+/* 80359098 00354CF8 38 9D 01 08 */ addi r4, r29, 0x108
+/* 8035909C 00354CFC 38 00 00 80 */ li r0, 0x80
+/* 803590A0 00354D00 38 A4 FF FF */ addi r5, r4, -1
+/* 803590A4 00354D04 7C 7F 1B 78 */ mr r31, r3
+/* 803590A8 00354D08 38 C1 09 07 */ addi r6, r1, 0x907
+/* 803590AC 00354D0C 38 8D 94 48 */ addi r4, r13, lbl_8063E708-_SDA_BASE_
+/* 803590B0 00354D10 7C 09 03 A6 */ mtctr r0
+lbl_803590B4:
+/* 803590B4 00354D14 88 65 00 01 */ lbz r3, 1(r5)
+/* 803590B8 00354D18 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 803590BC 00354D1C 98 66 00 01 */ stb r3, 1(r6)
+/* 803590C0 00354D20 9C 06 00 02 */ stbu r0, 2(r6)
+/* 803590C4 00354D24 42 00 FF F0 */ bdnz lbl_803590B4
+/* 803590C8 00354D28 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803590CC 00354D2C 38 61 09 08 */ addi r3, r1, 0x908
+/* 803590D0 00354D30 68 00 00 01 */ xori r0, r0, 1
+/* 803590D4 00354D34 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803590D8 00354D38 4B E7 52 FD */ bl strcat
+/* 803590DC 00354D3C 38 61 09 08 */ addi r3, r1, 0x908
+/* 803590E0 00354D40 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 803590E4 00354D44 4B E7 52 F1 */ bl strcat
+/* 803590E8 00354D48 7F 63 DB 78 */ mr r3, r27
+/* 803590EC 00354D4C 38 81 09 08 */ addi r4, r1, 0x908
+/* 803590F0 00354D50 4B E7 56 B1 */ bl strstr
+/* 803590F4 00354D54 2C 03 00 00 */ cmpwi r3, 0
+/* 803590F8 00354D58 7C 7C 1B 78 */ mr r28, r3
+/* 803590FC 00354D5C 40 82 00 0C */ bne lbl_80359108
+/* 80359100 00354D60 38 60 00 00 */ li r3, 0
+/* 80359104 00354D64 48 00 00 58 */ b lbl_8035915C
+lbl_80359108:
+/* 80359108 00354D68 38 61 09 08 */ addi r3, r1, 0x908
+/* 8035910C 00354D6C 4B E6 DA 59 */ bl strlen
+/* 80359110 00354D70 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359114 00354D74 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359118 00354D78 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 8035911C 00354D7C 7C BC 1A 14 */ add r5, r28, r3
+/* 80359120 00354D80 54 00 40 2E */ slwi r0, r0, 8
+/* 80359124 00354D84 7C 64 02 14 */ add r3, r4, r0
+/* 80359128 00354D88 7C 64 1B 78 */ mr r4, r3
+/* 8035912C 00354D8C 48 00 00 14 */ b lbl_80359140
+lbl_80359130:
+/* 80359130 00354D90 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359134 00354D94 38 A5 00 01 */ addi r5, r5, 1
+/* 80359138 00354D98 98 04 00 00 */ stb r0, 0(r4)
+/* 8035913C 00354D9C 38 84 00 01 */ addi r4, r4, 1
+lbl_80359140:
+/* 80359140 00354DA0 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359144 00354DA4 7C 00 07 75 */ extsb. r0, r0
+/* 80359148 00354DA8 41 82 00 0C */ beq lbl_80359154
+/* 8035914C 00354DAC 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359150 00354DB0 40 82 FF E0 */ bne lbl_80359130
+lbl_80359154:
+/* 80359154 00354DB4 38 00 00 00 */ li r0, 0
+/* 80359158 00354DB8 98 04 00 00 */ stb r0, 0(r4)
+lbl_8035915C:
+/* 8035915C 00354DBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80359160 00354DC0 41 82 00 08 */ beq lbl_80359168
+/* 80359164 00354DC4 48 00 00 08 */ b lbl_8035916C
+lbl_80359168:
+/* 80359168 00354DC8 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_8035916C:
+/* 8035916C 00354DCC 4B E7 75 A1 */ bl atoi
+/* 80359170 00354DD0 38 9D 01 08 */ addi r4, r29, 0x108
+/* 80359174 00354DD4 38 00 00 80 */ li r0, 0x80
+/* 80359178 00354DD8 38 A4 FF FF */ addi r5, r4, -1
+/* 8035917C 00354DDC 7C 7E 1B 78 */ mr r30, r3
+/* 80359180 00354DE0 38 C1 0A 07 */ addi r6, r1, 0xa07
+/* 80359184 00354DE4 38 8D 94 6C */ addi r4, r13, lbl_8063E72C-_SDA_BASE_
+/* 80359188 00354DE8 7C 09 03 A6 */ mtctr r0
+lbl_8035918C:
+/* 8035918C 00354DEC 88 65 00 01 */ lbz r3, 1(r5)
+/* 80359190 00354DF0 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80359194 00354DF4 98 66 00 01 */ stb r3, 1(r6)
+/* 80359198 00354DF8 9C 06 00 02 */ stbu r0, 2(r6)
+/* 8035919C 00354DFC 42 00 FF F0 */ bdnz lbl_8035918C
+/* 803591A0 00354E00 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803591A4 00354E04 38 61 0A 08 */ addi r3, r1, 0xa08
+/* 803591A8 00354E08 68 00 00 01 */ xori r0, r0, 1
+/* 803591AC 00354E0C 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803591B0 00354E10 4B E7 52 25 */ bl strcat
+/* 803591B4 00354E14 38 61 0A 08 */ addi r3, r1, 0xa08
+/* 803591B8 00354E18 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 803591BC 00354E1C 4B E7 52 19 */ bl strcat
+/* 803591C0 00354E20 7F 63 DB 78 */ mr r3, r27
+/* 803591C4 00354E24 38 81 0A 08 */ addi r4, r1, 0xa08
+/* 803591C8 00354E28 4B E7 55 D9 */ bl strstr
+/* 803591CC 00354E2C 2C 03 00 00 */ cmpwi r3, 0
+/* 803591D0 00354E30 7C 7B 1B 78 */ mr r27, r3
+/* 803591D4 00354E34 40 82 00 0C */ bne lbl_803591E0
+/* 803591D8 00354E38 3B 80 00 00 */ li r28, 0
+/* 803591DC 00354E3C 48 00 00 58 */ b lbl_80359234
+lbl_803591E0:
+/* 803591E0 00354E40 38 61 0A 08 */ addi r3, r1, 0xa08
+/* 803591E4 00354E44 4B E6 D9 81 */ bl strlen
+/* 803591E8 00354E48 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803591EC 00354E4C 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 803591F0 00354E50 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 803591F4 00354E54 7C BB 1A 14 */ add r5, r27, r3
+/* 803591F8 00354E58 54 00 40 2E */ slwi r0, r0, 8
+/* 803591FC 00354E5C 7F 84 02 14 */ add r28, r4, r0
+/* 80359200 00354E60 7F 83 E3 78 */ mr r3, r28
+/* 80359204 00354E64 48 00 00 14 */ b lbl_80359218
+lbl_80359208:
+/* 80359208 00354E68 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035920C 00354E6C 38 A5 00 01 */ addi r5, r5, 1
+/* 80359210 00354E70 98 03 00 00 */ stb r0, 0(r3)
+/* 80359214 00354E74 38 63 00 01 */ addi r3, r3, 1
+lbl_80359218:
+/* 80359218 00354E78 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035921C 00354E7C 7C 00 07 75 */ extsb. r0, r0
+/* 80359220 00354E80 41 82 00 0C */ beq lbl_8035922C
+/* 80359224 00354E84 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359228 00354E88 40 82 FF E0 */ bne lbl_80359208
+lbl_8035922C:
+/* 8035922C 00354E8C 38 00 00 00 */ li r0, 0
+/* 80359230 00354E90 98 03 00 00 */ stb r0, 0(r3)
+lbl_80359234:
+/* 80359234 00354E94 2C 1C 00 00 */ cmpwi r28, 0
+/* 80359238 00354E98 41 82 00 08 */ beq lbl_80359240
+/* 8035923C 00354E9C 48 00 00 08 */ b lbl_80359244
+lbl_80359240:
+/* 80359240 00354EA0 3B 8D 94 3C */ addi r28, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80359244:
+/* 80359244 00354EA4 80 0D B1 24 */ lwz r0, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359248 00354EA8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035924C 00354EAC 40 82 00 0C */ bne lbl_80359258
+/* 80359250 00354EB0 3B 60 FF FF */ li r27, -1
+/* 80359254 00354EB4 48 00 00 58 */ b lbl_803592AC
+lbl_80359258:
+/* 80359258 00354EB8 3B 60 00 00 */ li r27, 0
+/* 8035925C 00354EBC 48 00 00 3C */ b lbl_80359298
+lbl_80359260:
+/* 80359260 00354EC0 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359264 00354EC4 7F 64 DB 78 */ mr r4, r27
+/* 80359268 00354EC8 4B FD CC 89 */ bl ArrayNth
+/* 8035926C 00354ECC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80359270 00354ED0 2C 00 00 00 */ cmpwi r0, 0
+/* 80359274 00354ED4 40 82 00 20 */ bne lbl_80359294
+/* 80359278 00354ED8 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035927C 00354EDC 7C 00 F0 00 */ cmpw r0, r30
+/* 80359280 00354EE0 40 82 00 14 */ bne lbl_80359294
+/* 80359284 00354EE4 80 03 00 08 */ lwz r0, 8(r3)
+/* 80359288 00354EE8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035928C 00354EEC 40 82 00 08 */ bne lbl_80359294
+/* 80359290 00354EF0 48 00 00 1C */ b lbl_803592AC
+lbl_80359294:
+/* 80359294 00354EF4 3B 7B 00 01 */ addi r27, r27, 1
+lbl_80359298:
+/* 80359298 00354EF8 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 8035929C 00354EFC 4B FD CC 4D */ bl ArrayLength
+/* 803592A0 00354F00 7C 1B 18 00 */ cmpw r27, r3
+/* 803592A4 00354F04 41 80 FF BC */ blt lbl_80359260
+/* 803592A8 00354F08 3B 60 FF FF */ li r27, -1
+lbl_803592AC:
+/* 803592AC 00354F0C 2C 1B FF FF */ cmpwi r27, -1
+/* 803592B0 00354F10 41 82 09 48 */ beq lbl_80359BF8
+/* 803592B4 00354F14 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 803592B8 00354F18 7F 64 DB 78 */ mr r4, r27
+/* 803592BC 00354F1C 4B FD CC 35 */ bl ArrayNth
+/* 803592C0 00354F20 7C 1F 00 D0 */ neg r0, r31
+/* 803592C4 00354F24 93 E3 00 08 */ stw r31, 8(r3)
+/* 803592C8 00354F28 7C 00 F8 78 */ andc r0, r0, r31
+/* 803592CC 00354F2C 7F 63 DB 78 */ mr r3, r27
+/* 803592D0 00354F30 7F 87 E3 78 */ mr r7, r28
+/* 803592D4 00354F34 38 C0 00 00 */ li r6, 0
+/* 803592D8 00354F38 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 803592DC 00354F3C 38 A0 00 00 */ li r5, 0
+/* 803592E0 00354F40 39 00 00 00 */ li r8, 0
+/* 803592E4 00354F44 48 00 09 2D */ bl CallReqCallback
+/* 803592E8 00354F48 48 00 09 10 */ b lbl_80359BF8
+lbl_803592EC:
+/* 803592EC 00354F4C 7F 63 DB 78 */ mr r3, r27
+/* 803592F0 00354F50 38 9D 02 24 */ addi r4, r29, 0x224
+/* 803592F4 00354F54 38 A0 00 09 */ li r5, 9
+/* 803592F8 00354F58 4B E7 52 71 */ bl strncmp
+/* 803592FC 00354F5C 2C 03 00 00 */ cmpwi r3, 0
+/* 80359300 00354F60 40 82 02 5C */ bne lbl_8035955C
+/* 80359304 00354F64 38 7D 01 08 */ addi r3, r29, 0x108
+/* 80359308 00354F68 38 00 00 80 */ li r0, 0x80
+/* 8035930C 00354F6C 38 C1 06 07 */ addi r6, r1, 0x607
+/* 80359310 00354F70 38 8D 94 78 */ addi r4, r13, lbl_8063E738-_SDA_BASE_
+/* 80359314 00354F74 38 A3 FF FF */ addi r5, r3, -1
+/* 80359318 00354F78 7C 09 03 A6 */ mtctr r0
+lbl_8035931C:
+/* 8035931C 00354F7C 88 65 00 01 */ lbz r3, 1(r5)
+/* 80359320 00354F80 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80359324 00354F84 98 66 00 01 */ stb r3, 1(r6)
+/* 80359328 00354F88 9C 06 00 02 */ stbu r0, 2(r6)
+/* 8035932C 00354F8C 42 00 FF F0 */ bdnz lbl_8035931C
+/* 80359330 00354F90 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359334 00354F94 38 61 06 08 */ addi r3, r1, 0x608
+/* 80359338 00354F98 68 00 00 01 */ xori r0, r0, 1
+/* 8035933C 00354F9C 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359340 00354FA0 4B E7 50 95 */ bl strcat
+/* 80359344 00354FA4 38 61 06 08 */ addi r3, r1, 0x608
+/* 80359348 00354FA8 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 8035934C 00354FAC 4B E7 50 89 */ bl strcat
+/* 80359350 00354FB0 7F 63 DB 78 */ mr r3, r27
+/* 80359354 00354FB4 38 81 06 08 */ addi r4, r1, 0x608
+/* 80359358 00354FB8 4B E7 54 49 */ bl strstr
+/* 8035935C 00354FBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80359360 00354FC0 7C 7C 1B 78 */ mr r28, r3
+/* 80359364 00354FC4 40 82 00 0C */ bne lbl_80359370
+/* 80359368 00354FC8 38 60 00 00 */ li r3, 0
+/* 8035936C 00354FCC 48 00 00 58 */ b lbl_803593C4
+lbl_80359370:
+/* 80359370 00354FD0 38 61 06 08 */ addi r3, r1, 0x608
+/* 80359374 00354FD4 4B E6 D7 F1 */ bl strlen
+/* 80359378 00354FD8 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 8035937C 00354FDC 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359380 00354FE0 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80359384 00354FE4 7C BC 1A 14 */ add r5, r28, r3
+/* 80359388 00354FE8 54 00 40 2E */ slwi r0, r0, 8
+/* 8035938C 00354FEC 7C 64 02 14 */ add r3, r4, r0
+/* 80359390 00354FF0 7C 64 1B 78 */ mr r4, r3
+/* 80359394 00354FF4 48 00 00 14 */ b lbl_803593A8
+lbl_80359398:
+/* 80359398 00354FF8 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035939C 00354FFC 38 A5 00 01 */ addi r5, r5, 1
+/* 803593A0 00355000 98 04 00 00 */ stb r0, 0(r4)
+/* 803593A4 00355004 38 84 00 01 */ addi r4, r4, 1
+lbl_803593A8:
+/* 803593A8 00355008 88 05 00 00 */ lbz r0, 0(r5)
+/* 803593AC 0035500C 7C 00 07 75 */ extsb. r0, r0
+/* 803593B0 00355010 41 82 00 0C */ beq lbl_803593BC
+/* 803593B4 00355014 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803593B8 00355018 40 82 FF E0 */ bne lbl_80359398
+lbl_803593BC:
+/* 803593BC 0035501C 38 00 00 00 */ li r0, 0
+/* 803593C0 00355020 98 04 00 00 */ stb r0, 0(r4)
+lbl_803593C4:
+/* 803593C4 00355024 2C 03 00 00 */ cmpwi r3, 0
+/* 803593C8 00355028 41 82 00 08 */ beq lbl_803593D0
+/* 803593CC 0035502C 48 00 00 08 */ b lbl_803593D4
+lbl_803593D0:
+/* 803593D0 00355030 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_803593D4:
+/* 803593D4 00355034 4B E7 73 39 */ bl atoi
+/* 803593D8 00355038 38 9D 01 08 */ addi r4, r29, 0x108
+/* 803593DC 0035503C 38 00 00 80 */ li r0, 0x80
+/* 803593E0 00355040 38 A4 FF FF */ addi r5, r4, -1
+/* 803593E4 00355044 7C 7E 1B 78 */ mr r30, r3
+/* 803593E8 00355048 38 C1 07 07 */ addi r6, r1, 0x707
+/* 803593EC 0035504C 38 8D 94 48 */ addi r4, r13, lbl_8063E708-_SDA_BASE_
+/* 803593F0 00355050 7C 09 03 A6 */ mtctr r0
+lbl_803593F4:
+/* 803593F4 00355054 88 65 00 01 */ lbz r3, 1(r5)
+/* 803593F8 00355058 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 803593FC 0035505C 98 66 00 01 */ stb r3, 1(r6)
+/* 80359400 00355060 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80359404 00355064 42 00 FF F0 */ bdnz lbl_803593F4
+/* 80359408 00355068 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 8035940C 0035506C 38 61 07 08 */ addi r3, r1, 0x708
+/* 80359410 00355070 68 00 00 01 */ xori r0, r0, 1
+/* 80359414 00355074 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359418 00355078 4B E7 4F BD */ bl strcat
+/* 8035941C 0035507C 38 61 07 08 */ addi r3, r1, 0x708
+/* 80359420 00355080 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80359424 00355084 4B E7 4F B1 */ bl strcat
+/* 80359428 00355088 7F 63 DB 78 */ mr r3, r27
+/* 8035942C 0035508C 38 81 07 08 */ addi r4, r1, 0x708
+/* 80359430 00355090 4B E7 53 71 */ bl strstr
+/* 80359434 00355094 2C 03 00 00 */ cmpwi r3, 0
+/* 80359438 00355098 7C 7B 1B 78 */ mr r27, r3
+/* 8035943C 0035509C 40 82 00 0C */ bne lbl_80359448
+/* 80359440 003550A0 38 60 00 00 */ li r3, 0
+/* 80359444 003550A4 48 00 00 58 */ b lbl_8035949C
+lbl_80359448:
+/* 80359448 003550A8 38 61 07 08 */ addi r3, r1, 0x708
+/* 8035944C 003550AC 4B E6 D7 19 */ bl strlen
+/* 80359450 003550B0 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359454 003550B4 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359458 003550B8 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 8035945C 003550BC 7C BB 1A 14 */ add r5, r27, r3
+/* 80359460 003550C0 54 00 40 2E */ slwi r0, r0, 8
+/* 80359464 003550C4 7C 64 02 14 */ add r3, r4, r0
+/* 80359468 003550C8 7C 64 1B 78 */ mr r4, r3
+/* 8035946C 003550CC 48 00 00 14 */ b lbl_80359480
+lbl_80359470:
+/* 80359470 003550D0 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359474 003550D4 38 A5 00 01 */ addi r5, r5, 1
+/* 80359478 003550D8 98 04 00 00 */ stb r0, 0(r4)
+/* 8035947C 003550DC 38 84 00 01 */ addi r4, r4, 1
+lbl_80359480:
+/* 80359480 003550E0 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359484 003550E4 7C 00 07 75 */ extsb. r0, r0
+/* 80359488 003550E8 41 82 00 0C */ beq lbl_80359494
+/* 8035948C 003550EC 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359490 003550F0 40 82 FF E0 */ bne lbl_80359470
+lbl_80359494:
+/* 80359494 003550F4 38 00 00 00 */ li r0, 0
+/* 80359498 003550F8 98 04 00 00 */ stb r0, 0(r4)
+lbl_8035949C:
+/* 8035949C 003550FC 2C 03 00 00 */ cmpwi r3, 0
+/* 803594A0 00355100 41 82 00 08 */ beq lbl_803594A8
+/* 803594A4 00355104 48 00 00 08 */ b lbl_803594AC
+lbl_803594A8:
+/* 803594A8 00355108 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_803594AC:
+/* 803594AC 0035510C 4B E7 72 61 */ bl atoi
+/* 803594B0 00355110 80 0D B1 24 */ lwz r0, lbl_806403E4-_SDA_BASE_(r13)
+/* 803594B4 00355114 7C 7B 1B 78 */ mr r27, r3
+/* 803594B8 00355118 2C 00 00 00 */ cmpwi r0, 0
+/* 803594BC 0035511C 40 82 00 0C */ bne lbl_803594C8
+/* 803594C0 00355120 3B 80 FF FF */ li r28, -1
+/* 803594C4 00355124 48 00 00 58 */ b lbl_8035951C
+lbl_803594C8:
+/* 803594C8 00355128 3B 80 00 00 */ li r28, 0
+/* 803594CC 0035512C 48 00 00 3C */ b lbl_80359508
+lbl_803594D0:
+/* 803594D0 00355130 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 803594D4 00355134 7F 84 E3 78 */ mr r4, r28
+/* 803594D8 00355138 4B FD CA 19 */ bl ArrayNth
+/* 803594DC 0035513C 80 03 00 00 */ lwz r0, 0(r3)
+/* 803594E0 00355140 2C 00 00 03 */ cmpwi r0, 3
+/* 803594E4 00355144 40 82 00 20 */ bne lbl_80359504
+/* 803594E8 00355148 80 03 00 04 */ lwz r0, 4(r3)
+/* 803594EC 0035514C 7C 00 D8 00 */ cmpw r0, r27
+/* 803594F0 00355150 40 82 00 14 */ bne lbl_80359504
+/* 803594F4 00355154 80 03 00 08 */ lwz r0, 8(r3)
+/* 803594F8 00355158 2C 00 00 00 */ cmpwi r0, 0
+/* 803594FC 0035515C 40 82 00 08 */ bne lbl_80359504
+/* 80359500 00355160 48 00 00 1C */ b lbl_8035951C
+lbl_80359504:
+/* 80359504 00355164 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80359508:
+/* 80359508 00355168 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 8035950C 0035516C 4B FD C9 DD */ bl ArrayLength
+/* 80359510 00355170 7C 1C 18 00 */ cmpw r28, r3
+/* 80359514 00355174 41 80 FF BC */ blt lbl_803594D0
+/* 80359518 00355178 3B 80 FF FF */ li r28, -1
+lbl_8035951C:
+/* 8035951C 0035517C 2C 1C FF FF */ cmpwi r28, -1
+/* 80359520 00355180 41 82 06 D8 */ beq lbl_80359BF8
+/* 80359524 00355184 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359528 00355188 7F 84 E3 78 */ mr r4, r28
+/* 8035952C 0035518C 4B FD C9 C5 */ bl ArrayNth
+/* 80359530 00355190 7C 1E 00 D0 */ neg r0, r30
+/* 80359534 00355194 93 C3 00 08 */ stw r30, 8(r3)
+/* 80359538 00355198 7C 00 F0 78 */ andc r0, r0, r30
+/* 8035953C 0035519C 7F 83 E3 78 */ mr r3, r28
+/* 80359540 003551A0 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 80359544 003551A4 38 C0 00 00 */ li r6, 0
+/* 80359548 003551A8 38 A0 00 00 */ li r5, 0
+/* 8035954C 003551AC 38 E0 00 00 */ li r7, 0
+/* 80359550 003551B0 39 00 00 00 */ li r8, 0
+/* 80359554 003551B4 48 00 06 BD */ bl CallReqCallback
+/* 80359558 003551B8 48 00 06 A0 */ b lbl_80359BF8
+lbl_8035955C:
+/* 8035955C 003551BC 7F 63 DB 78 */ mr r3, r27
+/* 80359560 003551C0 38 9D 02 24 */ addi r4, r29, 0x224
+/* 80359564 003551C4 38 A0 00 09 */ li r5, 9
+/* 80359568 003551C8 4B E7 50 01 */ bl strncmp
+/* 8035956C 003551CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80359570 003551D0 40 82 02 5C */ bne lbl_803597CC
+/* 80359574 003551D4 38 7D 01 08 */ addi r3, r29, 0x108
+/* 80359578 003551D8 38 00 00 80 */ li r0, 0x80
+/* 8035957C 003551DC 38 C1 04 07 */ addi r6, r1, 0x407
+/* 80359580 003551E0 38 8D 94 78 */ addi r4, r13, lbl_8063E738-_SDA_BASE_
+/* 80359584 003551E4 38 A3 FF FF */ addi r5, r3, -1
+/* 80359588 003551E8 7C 09 03 A6 */ mtctr r0
+lbl_8035958C:
+/* 8035958C 003551EC 88 65 00 01 */ lbz r3, 1(r5)
+/* 80359590 003551F0 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80359594 003551F4 98 66 00 01 */ stb r3, 1(r6)
+/* 80359598 003551F8 9C 06 00 02 */ stbu r0, 2(r6)
+/* 8035959C 003551FC 42 00 FF F0 */ bdnz lbl_8035958C
+/* 803595A0 00355200 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803595A4 00355204 38 61 04 08 */ addi r3, r1, 0x408
+/* 803595A8 00355208 68 00 00 01 */ xori r0, r0, 1
+/* 803595AC 0035520C 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803595B0 00355210 4B E7 4E 25 */ bl strcat
+/* 803595B4 00355214 38 61 04 08 */ addi r3, r1, 0x408
+/* 803595B8 00355218 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 803595BC 0035521C 4B E7 4E 19 */ bl strcat
+/* 803595C0 00355220 7F 63 DB 78 */ mr r3, r27
+/* 803595C4 00355224 38 81 04 08 */ addi r4, r1, 0x408
+/* 803595C8 00355228 4B E7 51 D9 */ bl strstr
+/* 803595CC 0035522C 2C 03 00 00 */ cmpwi r3, 0
+/* 803595D0 00355230 7C 7C 1B 78 */ mr r28, r3
+/* 803595D4 00355234 40 82 00 0C */ bne lbl_803595E0
+/* 803595D8 00355238 38 60 00 00 */ li r3, 0
+/* 803595DC 0035523C 48 00 00 58 */ b lbl_80359634
+lbl_803595E0:
+/* 803595E0 00355240 38 61 04 08 */ addi r3, r1, 0x408
+/* 803595E4 00355244 4B E6 D5 81 */ bl strlen
+/* 803595E8 00355248 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803595EC 0035524C 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 803595F0 00355250 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 803595F4 00355254 7C BC 1A 14 */ add r5, r28, r3
+/* 803595F8 00355258 54 00 40 2E */ slwi r0, r0, 8
+/* 803595FC 0035525C 7C 64 02 14 */ add r3, r4, r0
+/* 80359600 00355260 7C 64 1B 78 */ mr r4, r3
+/* 80359604 00355264 48 00 00 14 */ b lbl_80359618
+lbl_80359608:
+/* 80359608 00355268 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035960C 0035526C 38 A5 00 01 */ addi r5, r5, 1
+/* 80359610 00355270 98 04 00 00 */ stb r0, 0(r4)
+/* 80359614 00355274 38 84 00 01 */ addi r4, r4, 1
+lbl_80359618:
+/* 80359618 00355278 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035961C 0035527C 7C 00 07 75 */ extsb. r0, r0
+/* 80359620 00355280 41 82 00 0C */ beq lbl_8035962C
+/* 80359624 00355284 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359628 00355288 40 82 FF E0 */ bne lbl_80359608
+lbl_8035962C:
+/* 8035962C 0035528C 38 00 00 00 */ li r0, 0
+/* 80359630 00355290 98 04 00 00 */ stb r0, 0(r4)
+lbl_80359634:
+/* 80359634 00355294 2C 03 00 00 */ cmpwi r3, 0
+/* 80359638 00355298 41 82 00 08 */ beq lbl_80359640
+/* 8035963C 0035529C 48 00 00 08 */ b lbl_80359644
+lbl_80359640:
+/* 80359640 003552A0 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80359644:
+/* 80359644 003552A4 4B E7 70 C9 */ bl atoi
+/* 80359648 003552A8 38 9D 01 08 */ addi r4, r29, 0x108
+/* 8035964C 003552AC 38 00 00 80 */ li r0, 0x80
+/* 80359650 003552B0 38 A4 FF FF */ addi r5, r4, -1
+/* 80359654 003552B4 7C 7E 1B 78 */ mr r30, r3
+/* 80359658 003552B8 38 C1 05 07 */ addi r6, r1, 0x507
+/* 8035965C 003552BC 38 8D 94 48 */ addi r4, r13, lbl_8063E708-_SDA_BASE_
+/* 80359660 003552C0 7C 09 03 A6 */ mtctr r0
+lbl_80359664:
+/* 80359664 003552C4 88 65 00 01 */ lbz r3, 1(r5)
+/* 80359668 003552C8 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 8035966C 003552CC 98 66 00 01 */ stb r3, 1(r6)
+/* 80359670 003552D0 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80359674 003552D4 42 00 FF F0 */ bdnz lbl_80359664
+/* 80359678 003552D8 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 8035967C 003552DC 38 61 05 08 */ addi r3, r1, 0x508
+/* 80359680 003552E0 68 00 00 01 */ xori r0, r0, 1
+/* 80359684 003552E4 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359688 003552E8 4B E7 4D 4D */ bl strcat
+/* 8035968C 003552EC 38 61 05 08 */ addi r3, r1, 0x508
+/* 80359690 003552F0 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80359694 003552F4 4B E7 4D 41 */ bl strcat
+/* 80359698 003552F8 7F 63 DB 78 */ mr r3, r27
+/* 8035969C 003552FC 38 81 05 08 */ addi r4, r1, 0x508
+/* 803596A0 00355300 4B E7 51 01 */ bl strstr
+/* 803596A4 00355304 2C 03 00 00 */ cmpwi r3, 0
+/* 803596A8 00355308 7C 7B 1B 78 */ mr r27, r3
+/* 803596AC 0035530C 40 82 00 0C */ bne lbl_803596B8
+/* 803596B0 00355310 38 60 00 00 */ li r3, 0
+/* 803596B4 00355314 48 00 00 58 */ b lbl_8035970C
+lbl_803596B8:
+/* 803596B8 00355318 38 61 05 08 */ addi r3, r1, 0x508
+/* 803596BC 0035531C 4B E6 D4 A9 */ bl strlen
+/* 803596C0 00355320 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803596C4 00355324 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 803596C8 00355328 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 803596CC 0035532C 7C BB 1A 14 */ add r5, r27, r3
+/* 803596D0 00355330 54 00 40 2E */ slwi r0, r0, 8
+/* 803596D4 00355334 7C 64 02 14 */ add r3, r4, r0
+/* 803596D8 00355338 7C 64 1B 78 */ mr r4, r3
+/* 803596DC 0035533C 48 00 00 14 */ b lbl_803596F0
+lbl_803596E0:
+/* 803596E0 00355340 88 05 00 00 */ lbz r0, 0(r5)
+/* 803596E4 00355344 38 A5 00 01 */ addi r5, r5, 1
+/* 803596E8 00355348 98 04 00 00 */ stb r0, 0(r4)
+/* 803596EC 0035534C 38 84 00 01 */ addi r4, r4, 1
+lbl_803596F0:
+/* 803596F0 00355350 88 05 00 00 */ lbz r0, 0(r5)
+/* 803596F4 00355354 7C 00 07 75 */ extsb. r0, r0
+/* 803596F8 00355358 41 82 00 0C */ beq lbl_80359704
+/* 803596FC 0035535C 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359700 00355360 40 82 FF E0 */ bne lbl_803596E0
+lbl_80359704:
+/* 80359704 00355364 38 00 00 00 */ li r0, 0
+/* 80359708 00355368 98 04 00 00 */ stb r0, 0(r4)
+lbl_8035970C:
+/* 8035970C 0035536C 2C 03 00 00 */ cmpwi r3, 0
+/* 80359710 00355370 41 82 00 08 */ beq lbl_80359718
+/* 80359714 00355374 48 00 00 08 */ b lbl_8035971C
+lbl_80359718:
+/* 80359718 00355378 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_8035971C:
+/* 8035971C 0035537C 4B E7 6F F1 */ bl atoi
+/* 80359720 00355380 80 0D B1 24 */ lwz r0, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359724 00355384 7C 7B 1B 78 */ mr r27, r3
+/* 80359728 00355388 2C 00 00 00 */ cmpwi r0, 0
+/* 8035972C 0035538C 40 82 00 0C */ bne lbl_80359738
+/* 80359730 00355390 3B 80 FF FF */ li r28, -1
+/* 80359734 00355394 48 00 00 58 */ b lbl_8035978C
+lbl_80359738:
+/* 80359738 00355398 3B 80 00 00 */ li r28, 0
+/* 8035973C 0035539C 48 00 00 3C */ b lbl_80359778
+lbl_80359740:
+/* 80359740 003553A0 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359744 003553A4 7F 84 E3 78 */ mr r4, r28
+/* 80359748 003553A8 4B FD C7 A9 */ bl ArrayNth
+/* 8035974C 003553AC 80 03 00 00 */ lwz r0, 0(r3)
+/* 80359750 003553B0 2C 00 00 03 */ cmpwi r0, 3
+/* 80359754 003553B4 40 82 00 20 */ bne lbl_80359774
+/* 80359758 003553B8 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035975C 003553BC 7C 00 D8 00 */ cmpw r0, r27
+/* 80359760 003553C0 40 82 00 14 */ bne lbl_80359774
+/* 80359764 003553C4 80 03 00 08 */ lwz r0, 8(r3)
+/* 80359768 003553C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035976C 003553CC 40 82 00 08 */ bne lbl_80359774
+/* 80359770 003553D0 48 00 00 1C */ b lbl_8035978C
+lbl_80359774:
+/* 80359774 003553D4 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80359778:
+/* 80359778 003553D8 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 8035977C 003553DC 4B FD C7 6D */ bl ArrayLength
+/* 80359780 003553E0 7C 1C 18 00 */ cmpw r28, r3
+/* 80359784 003553E4 41 80 FF BC */ blt lbl_80359740
+/* 80359788 003553E8 3B 80 FF FF */ li r28, -1
+lbl_8035978C:
+/* 8035978C 003553EC 2C 1C FF FF */ cmpwi r28, -1
+/* 80359790 003553F0 41 82 04 68 */ beq lbl_80359BF8
+/* 80359794 003553F4 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359798 003553F8 7F 84 E3 78 */ mr r4, r28
+/* 8035979C 003553FC 4B FD C7 55 */ bl ArrayNth
+/* 803597A0 00355400 7C 1E 00 D0 */ neg r0, r30
+/* 803597A4 00355404 93 C3 00 08 */ stw r30, 8(r3)
+/* 803597A8 00355408 7C 00 F0 78 */ andc r0, r0, r30
+/* 803597AC 0035540C 7F 83 E3 78 */ mr r3, r28
+/* 803597B0 00355410 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 803597B4 00355414 38 C0 00 00 */ li r6, 0
+/* 803597B8 00355418 38 A0 00 00 */ li r5, 0
+/* 803597BC 0035541C 38 E0 00 00 */ li r7, 0
+/* 803597C0 00355420 39 00 00 00 */ li r8, 0
+/* 803597C4 00355424 48 00 04 4D */ bl CallReqCallback
+/* 803597C8 00355428 48 00 04 30 */ b lbl_80359BF8
+lbl_803597CC:
+/* 803597CC 0035542C 7F 63 DB 78 */ mr r3, r27
+/* 803597D0 00355430 38 9D 02 30 */ addi r4, r29, 0x230
+/* 803597D4 00355434 38 A0 00 08 */ li r5, 8
+/* 803597D8 00355438 4B E7 4D 91 */ bl strncmp
+/* 803597DC 0035543C 2C 03 00 00 */ cmpwi r3, 0
+/* 803597E0 00355440 40 82 00 14 */ bne lbl_803597F4
+/* 803597E4 00355444 7F 63 DB 78 */ mr r3, r27
+/* 803597E8 00355448 7F 84 E3 78 */ mr r4, r28
+/* 803597EC 0035544C 4B FF F2 6D */ bl ProcessGetData
+/* 803597F0 00355450 48 00 04 08 */ b lbl_80359BF8
+lbl_803597F4:
+/* 803597F4 00355454 7F 63 DB 78 */ mr r3, r27
+/* 803597F8 00355458 38 9D 02 3C */ addi r4, r29, 0x23c
+/* 803597FC 0035545C 38 A0 00 08 */ li r5, 8
+/* 80359800 00355460 4B E7 4D 69 */ bl strncmp
+/* 80359804 00355464 2C 03 00 00 */ cmpwi r3, 0
+/* 80359808 00355468 40 82 03 F0 */ bne lbl_80359BF8
+/* 8035980C 0035546C 38 7D 01 08 */ addi r3, r29, 0x108
+/* 80359810 00355470 38 00 00 80 */ li r0, 0x80
+/* 80359814 00355474 38 C1 00 07 */ addi r6, r1, 7
+/* 80359818 00355478 38 8D 94 80 */ addi r4, r13, lbl_8063E740-_SDA_BASE_
+/* 8035981C 0035547C 38 A3 FF FF */ addi r5, r3, -1
+/* 80359820 00355480 7C 09 03 A6 */ mtctr r0
+lbl_80359824:
+/* 80359824 00355484 88 65 00 01 */ lbz r3, 1(r5)
+/* 80359828 00355488 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 8035982C 0035548C 98 66 00 01 */ stb r3, 1(r6)
+/* 80359830 00355490 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80359834 00355494 42 00 FF F0 */ bdnz lbl_80359824
+/* 80359838 00355498 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 8035983C 0035549C 38 61 00 08 */ addi r3, r1, 8
+/* 80359840 003554A0 68 00 00 01 */ xori r0, r0, 1
+/* 80359844 003554A4 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359848 003554A8 4B E7 4B 8D */ bl strcat
+/* 8035984C 003554AC 38 61 00 08 */ addi r3, r1, 8
+/* 80359850 003554B0 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80359854 003554B4 4B E7 4B 81 */ bl strcat
+/* 80359858 003554B8 7F 63 DB 78 */ mr r3, r27
+/* 8035985C 003554BC 38 81 00 08 */ addi r4, r1, 8
+/* 80359860 003554C0 4B E7 4F 41 */ bl strstr
+/* 80359864 003554C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80359868 003554C8 7C 7C 1B 78 */ mr r28, r3
+/* 8035986C 003554CC 40 82 00 0C */ bne lbl_80359878
+/* 80359870 003554D0 38 60 00 00 */ li r3, 0
+/* 80359874 003554D4 48 00 00 58 */ b lbl_803598CC
+lbl_80359878:
+/* 80359878 003554D8 38 61 00 08 */ addi r3, r1, 8
+/* 8035987C 003554DC 4B E6 D2 E9 */ bl strlen
+/* 80359880 003554E0 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359884 003554E4 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359888 003554E8 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 8035988C 003554EC 7C BC 1A 14 */ add r5, r28, r3
+/* 80359890 003554F0 54 00 40 2E */ slwi r0, r0, 8
+/* 80359894 003554F4 7C 64 02 14 */ add r3, r4, r0
+/* 80359898 003554F8 7C 64 1B 78 */ mr r4, r3
+/* 8035989C 003554FC 48 00 00 14 */ b lbl_803598B0
+lbl_803598A0:
+/* 803598A0 00355500 88 05 00 00 */ lbz r0, 0(r5)
+/* 803598A4 00355504 38 A5 00 01 */ addi r5, r5, 1
+/* 803598A8 00355508 98 04 00 00 */ stb r0, 0(r4)
+/* 803598AC 0035550C 38 84 00 01 */ addi r4, r4, 1
+lbl_803598B0:
+/* 803598B0 00355510 88 05 00 00 */ lbz r0, 0(r5)
+/* 803598B4 00355514 7C 00 07 75 */ extsb. r0, r0
+/* 803598B8 00355518 41 82 00 0C */ beq lbl_803598C4
+/* 803598BC 0035551C 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 803598C0 00355520 40 82 FF E0 */ bne lbl_803598A0
+lbl_803598C4:
+/* 803598C4 00355524 38 00 00 00 */ li r0, 0
+/* 803598C8 00355528 98 04 00 00 */ stb r0, 0(r4)
+lbl_803598CC:
+/* 803598CC 0035552C 2C 03 00 00 */ cmpwi r3, 0
+/* 803598D0 00355530 41 82 00 08 */ beq lbl_803598D8
+/* 803598D4 00355534 48 00 00 08 */ b lbl_803598DC
+lbl_803598D8:
+/* 803598D8 00355538 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_803598DC:
+/* 803598DC 0035553C 4B E7 6E 31 */ bl atoi
+/* 803598E0 00355540 38 9D 01 08 */ addi r4, r29, 0x108
+/* 803598E4 00355544 38 00 00 80 */ li r0, 0x80
+/* 803598E8 00355548 38 A4 FF FF */ addi r5, r4, -1
+/* 803598EC 0035554C 7C 7C 1B 78 */ mr r28, r3
+/* 803598F0 00355550 38 C1 01 07 */ addi r6, r1, 0x107
+/* 803598F4 00355554 38 8D 94 4C */ addi r4, r13, lbl_8063E70C-_SDA_BASE_
+/* 803598F8 00355558 7C 09 03 A6 */ mtctr r0
+lbl_803598FC:
+/* 803598FC 0035555C 88 65 00 01 */ lbz r3, 1(r5)
+/* 80359900 00355560 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80359904 00355564 98 66 00 01 */ stb r3, 1(r6)
+/* 80359908 00355568 9C 06 00 02 */ stbu r0, 2(r6)
+/* 8035990C 0035556C 42 00 FF F0 */ bdnz lbl_803598FC
+/* 80359910 00355570 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359914 00355574 38 61 01 08 */ addi r3, r1, 0x108
+/* 80359918 00355578 68 00 00 01 */ xori r0, r0, 1
+/* 8035991C 0035557C 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359920 00355580 4B E7 4A B5 */ bl strcat
+/* 80359924 00355584 38 61 01 08 */ addi r3, r1, 0x108
+/* 80359928 00355588 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 8035992C 0035558C 4B E7 4A A9 */ bl strcat
+/* 80359930 00355590 7F 63 DB 78 */ mr r3, r27
+/* 80359934 00355594 38 81 01 08 */ addi r4, r1, 0x108
+/* 80359938 00355598 4B E7 4E 69 */ bl strstr
+/* 8035993C 0035559C 2C 03 00 00 */ cmpwi r3, 0
+/* 80359940 003555A0 7C 7E 1B 78 */ mr r30, r3
+/* 80359944 003555A4 40 82 00 0C */ bne lbl_80359950
+/* 80359948 003555A8 38 60 00 00 */ li r3, 0
+/* 8035994C 003555AC 48 00 00 58 */ b lbl_803599A4
+lbl_80359950:
+/* 80359950 003555B0 38 61 01 08 */ addi r3, r1, 0x108
+/* 80359954 003555B4 4B E6 D2 11 */ bl strlen
+/* 80359958 003555B8 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 8035995C 003555BC 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359960 003555C0 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80359964 003555C4 7C BE 1A 14 */ add r5, r30, r3
+/* 80359968 003555C8 54 00 40 2E */ slwi r0, r0, 8
+/* 8035996C 003555CC 7C 64 02 14 */ add r3, r4, r0
+/* 80359970 003555D0 7C 64 1B 78 */ mr r4, r3
+/* 80359974 003555D4 48 00 00 14 */ b lbl_80359988
+lbl_80359978:
+/* 80359978 003555D8 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035997C 003555DC 38 A5 00 01 */ addi r5, r5, 1
+/* 80359980 003555E0 98 04 00 00 */ stb r0, 0(r4)
+/* 80359984 003555E4 38 84 00 01 */ addi r4, r4, 1
+lbl_80359988:
+/* 80359988 003555E8 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035998C 003555EC 7C 00 07 75 */ extsb. r0, r0
+/* 80359990 003555F0 41 82 00 0C */ beq lbl_8035999C
+/* 80359994 003555F4 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359998 003555F8 40 82 FF E0 */ bne lbl_80359978
+lbl_8035999C:
+/* 8035999C 003555FC 38 00 00 00 */ li r0, 0
+/* 803599A0 00355600 98 04 00 00 */ stb r0, 0(r4)
+lbl_803599A4:
+/* 803599A4 00355604 2C 03 00 00 */ cmpwi r3, 0
+/* 803599A8 00355608 41 82 00 08 */ beq lbl_803599B0
+/* 803599AC 0035560C 48 00 00 08 */ b lbl_803599B4
+lbl_803599B0:
+/* 803599B0 00355610 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_803599B4:
+/* 803599B4 00355614 4B E7 6D 59 */ bl atoi
+/* 803599B8 00355618 38 9D 01 08 */ addi r4, r29, 0x108
+/* 803599BC 0035561C 38 00 00 80 */ li r0, 0x80
+/* 803599C0 00355620 38 A4 FF FF */ addi r5, r4, -1
+/* 803599C4 00355624 7C 7E 1B 78 */ mr r30, r3
+/* 803599C8 00355628 38 C1 02 07 */ addi r6, r1, 0x207
+/* 803599CC 0035562C 38 8D 94 48 */ addi r4, r13, lbl_8063E708-_SDA_BASE_
+/* 803599D0 00355630 7C 09 03 A6 */ mtctr r0
+lbl_803599D4:
+/* 803599D4 00355634 88 65 00 01 */ lbz r3, 1(r5)
+/* 803599D8 00355638 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 803599DC 0035563C 98 66 00 01 */ stb r3, 1(r6)
+/* 803599E0 00355640 9C 06 00 02 */ stbu r0, 2(r6)
+/* 803599E4 00355644 42 00 FF F0 */ bdnz lbl_803599D4
+/* 803599E8 00355648 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803599EC 0035564C 38 61 02 08 */ addi r3, r1, 0x208
+/* 803599F0 00355650 68 00 00 01 */ xori r0, r0, 1
+/* 803599F4 00355654 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 803599F8 00355658 4B E7 49 DD */ bl strcat
+/* 803599FC 0035565C 38 61 02 08 */ addi r3, r1, 0x208
+/* 80359A00 00355660 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80359A04 00355664 4B E7 49 D1 */ bl strcat
+/* 80359A08 00355668 7F 63 DB 78 */ mr r3, r27
+/* 80359A0C 0035566C 38 81 02 08 */ addi r4, r1, 0x208
+/* 80359A10 00355670 4B E7 4D 91 */ bl strstr
+/* 80359A14 00355674 2C 03 00 00 */ cmpwi r3, 0
+/* 80359A18 00355678 7C 7F 1B 78 */ mr r31, r3
+/* 80359A1C 0035567C 40 82 00 0C */ bne lbl_80359A28
+/* 80359A20 00355680 38 60 00 00 */ li r3, 0
+/* 80359A24 00355684 48 00 00 58 */ b lbl_80359A7C
+lbl_80359A28:
+/* 80359A28 00355688 38 61 02 08 */ addi r3, r1, 0x208
+/* 80359A2C 0035568C 4B E6 D1 39 */ bl strlen
+/* 80359A30 00355690 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359A34 00355694 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359A38 00355698 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80359A3C 0035569C 7C BF 1A 14 */ add r5, r31, r3
+/* 80359A40 003556A0 54 00 40 2E */ slwi r0, r0, 8
+/* 80359A44 003556A4 7C 64 02 14 */ add r3, r4, r0
+/* 80359A48 003556A8 7C 64 1B 78 */ mr r4, r3
+/* 80359A4C 003556AC 48 00 00 14 */ b lbl_80359A60
+lbl_80359A50:
+/* 80359A50 003556B0 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359A54 003556B4 38 A5 00 01 */ addi r5, r5, 1
+/* 80359A58 003556B8 98 04 00 00 */ stb r0, 0(r4)
+/* 80359A5C 003556BC 38 84 00 01 */ addi r4, r4, 1
+lbl_80359A60:
+/* 80359A60 003556C0 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359A64 003556C4 7C 00 07 75 */ extsb. r0, r0
+/* 80359A68 003556C8 41 82 00 0C */ beq lbl_80359A74
+/* 80359A6C 003556CC 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359A70 003556D0 40 82 FF E0 */ bne lbl_80359A50
+lbl_80359A74:
+/* 80359A74 003556D4 38 00 00 00 */ li r0, 0
+/* 80359A78 003556D8 98 04 00 00 */ stb r0, 0(r4)
+lbl_80359A7C:
+/* 80359A7C 003556DC 2C 03 00 00 */ cmpwi r3, 0
+/* 80359A80 003556E0 41 82 00 08 */ beq lbl_80359A88
+/* 80359A84 003556E4 48 00 00 08 */ b lbl_80359A8C
+lbl_80359A88:
+/* 80359A88 003556E8 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80359A8C:
+/* 80359A8C 003556EC 4B E7 6C 81 */ bl atoi
+/* 80359A90 003556F0 38 9D 01 08 */ addi r4, r29, 0x108
+/* 80359A94 003556F4 38 00 00 80 */ li r0, 0x80
+/* 80359A98 003556F8 38 A4 FF FF */ addi r5, r4, -1
+/* 80359A9C 003556FC 7C 7F 1B 78 */ mr r31, r3
+/* 80359AA0 00355700 38 C1 03 07 */ addi r6, r1, 0x307
+/* 80359AA4 00355704 38 8D 94 50 */ addi r4, r13, lbl_8063E710-_SDA_BASE_
+/* 80359AA8 00355708 7C 09 03 A6 */ mtctr r0
+lbl_80359AAC:
+/* 80359AAC 0035570C 88 65 00 01 */ lbz r3, 1(r5)
+/* 80359AB0 00355710 8C 05 00 02 */ lbzu r0, 2(r5)
+/* 80359AB4 00355714 98 66 00 01 */ stb r3, 1(r6)
+/* 80359AB8 00355718 9C 06 00 02 */ stbu r0, 2(r6)
+/* 80359ABC 0035571C 42 00 FF F0 */ bdnz lbl_80359AAC
+/* 80359AC0 00355720 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359AC4 00355724 38 61 03 08 */ addi r3, r1, 0x308
+/* 80359AC8 00355728 68 00 00 01 */ xori r0, r0, 1
+/* 80359ACC 0035572C 90 0D B1 28 */ stw r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359AD0 00355730 4B E7 49 05 */ bl strcat
+/* 80359AD4 00355734 38 61 03 08 */ addi r3, r1, 0x308
+/* 80359AD8 00355738 38 8D 94 38 */ addi r4, r13, lbl_8063E6F8-_SDA_BASE_
+/* 80359ADC 0035573C 4B E7 48 F9 */ bl strcat
+/* 80359AE0 00355740 7F 63 DB 78 */ mr r3, r27
+/* 80359AE4 00355744 38 81 03 08 */ addi r4, r1, 0x308
+/* 80359AE8 00355748 4B E7 4C B9 */ bl strstr
+/* 80359AEC 0035574C 2C 03 00 00 */ cmpwi r3, 0
+/* 80359AF0 00355750 7C 7B 1B 78 */ mr r27, r3
+/* 80359AF4 00355754 40 82 00 0C */ bne lbl_80359B00
+/* 80359AF8 00355758 38 60 00 00 */ li r3, 0
+/* 80359AFC 0035575C 48 00 00 58 */ b lbl_80359B54
+lbl_80359B00:
+/* 80359B00 00355760 38 61 03 08 */ addi r3, r1, 0x308
+/* 80359B04 00355764 4B E6 D0 61 */ bl strlen
+/* 80359B08 00355768 80 0D B1 28 */ lwz r0, lbl_806403E8-_SDA_BASE_(r13)
+/* 80359B0C 0035576C 3C 80 80 62 */ lis r4, lbl_80620FE8@ha
+/* 80359B10 00355770 38 84 0F E8 */ addi r4, r4, lbl_80620FE8@l
+/* 80359B14 00355774 7C BB 1A 14 */ add r5, r27, r3
+/* 80359B18 00355778 54 00 40 2E */ slwi r0, r0, 8
+/* 80359B1C 0035577C 7C 64 02 14 */ add r3, r4, r0
+/* 80359B20 00355780 7C 64 1B 78 */ mr r4, r3
+/* 80359B24 00355784 48 00 00 14 */ b lbl_80359B38
+lbl_80359B28:
+/* 80359B28 00355788 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359B2C 0035578C 38 A5 00 01 */ addi r5, r5, 1
+/* 80359B30 00355790 98 04 00 00 */ stb r0, 0(r4)
+/* 80359B34 00355794 38 84 00 01 */ addi r4, r4, 1
+lbl_80359B38:
+/* 80359B38 00355798 88 05 00 00 */ lbz r0, 0(r5)
+/* 80359B3C 0035579C 7C 00 07 75 */ extsb. r0, r0
+/* 80359B40 003557A0 41 82 00 0C */ beq lbl_80359B4C
+/* 80359B44 003557A4 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 80359B48 003557A8 40 82 FF E0 */ bne lbl_80359B28
+lbl_80359B4C:
+/* 80359B4C 003557AC 38 00 00 00 */ li r0, 0
+/* 80359B50 003557B0 98 04 00 00 */ stb r0, 0(r4)
+lbl_80359B54:
+/* 80359B54 003557B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80359B58 003557B8 41 82 00 08 */ beq lbl_80359B60
+/* 80359B5C 003557BC 48 00 00 08 */ b lbl_80359B64
+lbl_80359B60:
+/* 80359B60 003557C0 38 6D 94 3C */ addi r3, r13, lbl_8063E6FC-_SDA_BASE_
+lbl_80359B64:
+/* 80359B64 003557C4 4B E7 6B A9 */ bl atoi
+/* 80359B68 003557C8 80 0D B1 24 */ lwz r0, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359B6C 003557CC 7C 7D 1B 78 */ mr r29, r3
+/* 80359B70 003557D0 2C 00 00 00 */ cmpwi r0, 0
+/* 80359B74 003557D4 40 82 00 0C */ bne lbl_80359B80
+/* 80359B78 003557D8 3B 60 FF FF */ li r27, -1
+/* 80359B7C 003557DC 48 00 00 58 */ b lbl_80359BD4
+lbl_80359B80:
+/* 80359B80 003557E0 3B 60 00 00 */ li r27, 0
+/* 80359B84 003557E4 48 00 00 3C */ b lbl_80359BC0
+lbl_80359B88:
+/* 80359B88 003557E8 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359B8C 003557EC 7F 64 DB 78 */ mr r4, r27
+/* 80359B90 003557F0 4B FD C3 61 */ bl ArrayNth
+/* 80359B94 003557F4 80 03 00 00 */ lwz r0, 0(r3)
+/* 80359B98 003557F8 2C 00 00 02 */ cmpwi r0, 2
+/* 80359B9C 003557FC 40 82 00 20 */ bne lbl_80359BBC
+/* 80359BA0 00355800 80 03 00 04 */ lwz r0, 4(r3)
+/* 80359BA4 00355804 7C 00 F8 00 */ cmpw r0, r31
+/* 80359BA8 00355808 40 82 00 14 */ bne lbl_80359BBC
+/* 80359BAC 0035580C 80 03 00 08 */ lwz r0, 8(r3)
+/* 80359BB0 00355810 7C 00 F0 00 */ cmpw r0, r30
+/* 80359BB4 00355814 40 82 00 08 */ bne lbl_80359BBC
+/* 80359BB8 00355818 48 00 00 1C */ b lbl_80359BD4
+lbl_80359BBC:
+/* 80359BBC 0035581C 3B 7B 00 01 */ addi r27, r27, 1
+lbl_80359BC0:
+/* 80359BC0 00355820 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359BC4 00355824 4B FD C3 25 */ bl ArrayLength
+/* 80359BC8 00355828 7C 1B 18 00 */ cmpw r27, r3
+/* 80359BCC 0035582C 41 80 FF BC */ blt lbl_80359B88
+/* 80359BD0 00355830 3B 60 FF FF */ li r27, -1
+lbl_80359BD4:
+/* 80359BD4 00355834 2C 1B FF FF */ cmpwi r27, -1
+/* 80359BD8 00355838 41 82 00 20 */ beq lbl_80359BF8
+/* 80359BDC 0035583C 7F 63 DB 78 */ mr r3, r27
+/* 80359BE0 00355840 7F 84 E3 78 */ mr r4, r28
+/* 80359BE4 00355844 7F A6 EB 78 */ mr r6, r29
+/* 80359BE8 00355848 7F A5 FE 70 */ srawi r5, r29, 0x1f
+/* 80359BEC 0035584C 38 E0 00 00 */ li r7, 0
+/* 80359BF0 00355850 39 00 00 00 */ li r8, 0
+/* 80359BF4 00355854 48 00 00 1D */ bl CallReqCallback
+lbl_80359BF8:
+/* 80359BF8 00355858 39 61 0B 20 */ addi r11, r1, 0xb20
+/* 80359BFC 0035585C 4B E6 D5 79 */ bl _restgpr_27
+/* 80359C00 00355860 80 01 0B 24 */ lwz r0, 0xb24(r1)
+/* 80359C04 00355864 7C 08 03 A6 */ mtlr r0
+/* 80359C08 00355868 38 21 0B 20 */ addi r1, r1, 0xb20
+/* 80359C0C 0035586C 4E 80 00 20 */ blr
+
+.global CallReqCallback
+CallReqCallback:
+/* 80359C10 00355870 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80359C14 00355874 7C 08 02 A6 */ mflr r0
+/* 80359C18 00355878 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80359C1C 0035587C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80359C20 00355880 4B E6 D5 05 */ bl _savegpr_26
+/* 80359C24 00355884 2C 03 00 00 */ cmpwi r3, 0
+/* 80359C28 00355888 7C 7A 1B 78 */ mr r26, r3
+/* 80359C2C 0035588C 7C 9B 23 78 */ mr r27, r4
+/* 80359C30 00355890 7C BD 2B 78 */ mr r29, r5
+/* 80359C34 00355894 7C DC 33 78 */ mr r28, r6
+/* 80359C38 00355898 7C FE 3B 78 */ mr r30, r7
+/* 80359C3C 0035589C 7D 1F 43 78 */ mr r31, r8
+/* 80359C40 003558A0 41 80 01 0C */ blt lbl_80359D4C
+/* 80359C44 003558A4 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359C48 003558A8 4B FD C2 A1 */ bl ArrayLength
+/* 80359C4C 003558AC 7C 1A 18 00 */ cmpw r26, r3
+/* 80359C50 003558B0 41 80 00 08 */ blt lbl_80359C58
+/* 80359C54 003558B4 48 00 00 F8 */ b lbl_80359D4C
+lbl_80359C58:
+/* 80359C58 003558B8 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359C5C 003558BC 7F 44 D3 78 */ mr r4, r26
+/* 80359C60 003558C0 4B FD C2 91 */ bl ArrayNth
+/* 80359C64 003558C4 81 83 00 18 */ lwz r12, 0x18(r3)
+/* 80359C68 003558C8 7C 68 1B 78 */ mr r8, r3
+/* 80359C6C 003558CC 2C 0C 00 00 */ cmpwi r12, 0
+/* 80359C70 003558D0 41 82 00 D0 */ beq lbl_80359D40
+/* 80359C74 003558D4 80 03 00 00 */ lwz r0, 0(r3)
+/* 80359C78 003558D8 2C 00 00 02 */ cmpwi r0, 2
+/* 80359C7C 003558DC 41 82 00 7C */ beq lbl_80359CF8
+/* 80359C80 003558E0 40 80 00 14 */ bge lbl_80359C94
+/* 80359C84 003558E4 2C 00 00 00 */ cmpwi r0, 0
+/* 80359C88 003558E8 41 82 00 18 */ beq lbl_80359CA0
+/* 80359C8C 003558EC 40 80 00 34 */ bge lbl_80359CC0
+/* 80359C90 003558F0 48 00 00 B0 */ b lbl_80359D40
+lbl_80359C94:
+/* 80359C94 003558F4 2C 00 00 04 */ cmpwi r0, 4
+/* 80359C98 003558F8 40 80 00 A8 */ bge lbl_80359D40
+/* 80359C9C 003558FC 48 00 00 8C */ b lbl_80359D28
+lbl_80359CA0:
+/* 80359CA0 00355900 7F 65 DB 78 */ mr r5, r27
+/* 80359CA4 00355904 7F C6 F3 78 */ mr r6, r30
+/* 80359CA8 00355908 80 63 00 04 */ lwz r3, 4(r3)
+/* 80359CAC 0035590C 80 88 00 08 */ lwz r4, 8(r8)
+/* 80359CB0 00355910 80 E8 00 14 */ lwz r7, 0x14(r8)
+/* 80359CB4 00355914 7D 89 03 A6 */ mtctr r12
+/* 80359CB8 00355918 4E 80 04 21 */ bctrl
+/* 80359CBC 0035591C 48 00 00 84 */ b lbl_80359D40
+lbl_80359CC0:
+/* 80359CC0 00355920 93 C1 00 08 */ stw r30, 8(r1)
+/* 80359CC4 00355924 7F 67 DB 78 */ mr r7, r27
+/* 80359CC8 00355928 7F 8A E3 78 */ mr r10, r28
+/* 80359CCC 0035592C 7F A9 EB 78 */ mr r9, r29
+/* 80359CD0 00355930 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80359CD4 00355934 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80359CD8 00355938 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80359CDC 0035593C 80 63 00 04 */ lwz r3, 4(r3)
+/* 80359CE0 00355940 80 88 00 08 */ lwz r4, 8(r8)
+/* 80359CE4 00355944 80 A8 00 0C */ lwz r5, 0xc(r8)
+/* 80359CE8 00355948 80 C8 00 10 */ lwz r6, 0x10(r8)
+/* 80359CEC 0035594C 7D 89 03 A6 */ mtctr r12
+/* 80359CF0 00355950 4E 80 04 21 */ bctrl
+/* 80359CF4 00355954 48 00 00 4C */ b lbl_80359D40
+lbl_80359CF8:
+/* 80359CF8 00355958 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80359CFC 0035595C 7F 67 DB 78 */ mr r7, r27
+/* 80359D00 00355960 7F 8A E3 78 */ mr r10, r28
+/* 80359D04 00355964 7F A9 EB 78 */ mr r9, r29
+/* 80359D08 00355968 90 01 00 08 */ stw r0, 8(r1)
+/* 80359D0C 0035596C 80 63 00 04 */ lwz r3, 4(r3)
+/* 80359D10 00355970 80 88 00 08 */ lwz r4, 8(r8)
+/* 80359D14 00355974 80 A8 00 0C */ lwz r5, 0xc(r8)
+/* 80359D18 00355978 80 C8 00 10 */ lwz r6, 0x10(r8)
+/* 80359D1C 0035597C 7D 89 03 A6 */ mtctr r12
+/* 80359D20 00355980 4E 80 04 21 */ bctrl
+/* 80359D24 00355984 48 00 00 1C */ b lbl_80359D40
+lbl_80359D28:
+/* 80359D28 00355988 7F 65 DB 78 */ mr r5, r27
+/* 80359D2C 0035598C 80 63 00 04 */ lwz r3, 4(r3)
+/* 80359D30 00355990 80 88 00 08 */ lwz r4, 8(r8)
+/* 80359D34 00355994 80 C8 00 14 */ lwz r6, 0x14(r8)
+/* 80359D38 00355998 7D 89 03 A6 */ mtctr r12
+/* 80359D3C 0035599C 4E 80 04 21 */ bctrl
+lbl_80359D40:
+/* 80359D40 003559A0 80 6D B1 24 */ lwz r3, lbl_806403E4-_SDA_BASE_(r13)
+/* 80359D44 003559A4 7F 44 D3 78 */ mr r4, r26
+/* 80359D48 003559A8 4B FD C5 29 */ bl ArrayDeleteAt
+lbl_80359D4C:
+/* 80359D4C 003559AC 39 61 00 30 */ addi r11, r1, 0x30
+/* 80359D50 003559B0 4B E6 D4 21 */ bl _restgpr_26
+/* 80359D54 003559B4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80359D58 003559B8 7C 08 03 A6 */ mtlr r0
+/* 80359D5C 003559BC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80359D60 003559C0 4E 80 00 20 */ blr
+
+.global ServerOpInt
+ServerOpInt:
+/* 80359D64 003559C4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80359D68 003559C8 7C 08 02 A6 */ mflr r0
+/* 80359D6C 003559CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80359D70 003559D0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80359D74 003559D4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80359D78 003559D8 7C 9F 23 78 */ mr r31, r4
+/* 80359D7C 003559DC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80359D80 003559E0 7C 7E 1B 78 */ mr r30, r3
+/* 80359D84 003559E4 90 C1 00 08 */ stw r6, 8(r1)
+/* 80359D88 003559E8 40 82 00 08 */ bne lbl_80359D90
+/* 80359D8C 003559EC 83 CD B1 10 */ lwz r30, lbl_806403D0-_SDA_BASE_(r13)
+lbl_80359D90:
+/* 80359D90 003559F0 2C 1E 00 00 */ cmpwi r30, 0
+/* 80359D94 003559F4 40 82 00 0C */ bne lbl_80359DA0
+/* 80359D98 003559F8 38 61 00 08 */ addi r3, r1, 8
+/* 80359D9C 003559FC 48 00 00 38 */ b lbl_80359DD4
+lbl_80359DA0:
+/* 80359DA0 00355A00 7C AC 2B 78 */ mr r12, r5
+/* 80359DA4 00355A04 7F E4 FB 78 */ mr r4, r31
+/* 80359DA8 00355A08 38 A1 00 08 */ addi r5, r1, 8
+/* 80359DAC 00355A0C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80359DB0 00355A10 7D 89 03 A6 */ mtctr r12
+/* 80359DB4 00355A14 4E 80 04 21 */ bctrl
+/* 80359DB8 00355A18 2C 03 00 00 */ cmpwi r3, 0
+/* 80359DBC 00355A1C 40 82 00 18 */ bne lbl_80359DD4
+/* 80359DC0 00355A20 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80359DC4 00355A24 7F E4 FB 78 */ mr r4, r31
+/* 80359DC8 00355A28 38 C1 00 08 */ addi r6, r1, 8
+/* 80359DCC 00355A2C 38 A0 00 00 */ li r5, 0
+/* 80359DD0 00355A30 4B FF D3 FD */ bl BucketNew
+lbl_80359DD4:
+/* 80359DD4 00355A34 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80359DD8 00355A38 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80359DDC 00355A3C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80359DE0 00355A40 80 63 00 00 */ lwz r3, 0(r3)
+/* 80359DE4 00355A44 7C 08 03 A6 */ mtlr r0
+/* 80359DE8 00355A48 38 21 00 20 */ addi r1, r1, 0x20
+/* 80359DEC 00355A4C 4E 80 00 20 */ blr
+
+.global ServerOpFloat
+ServerOpFloat:
+/* 80359DF0 00355A50 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80359DF4 00355A54 7C 08 02 A6 */ mflr r0
+/* 80359DF8 00355A58 2C 03 00 00 */ cmpwi r3, 0
+/* 80359DFC 00355A5C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80359E00 00355A60 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80359E04 00355A64 7C 9F 23 78 */ mr r31, r4
+/* 80359E08 00355A68 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80359E0C 00355A6C 7C 7E 1B 78 */ mr r30, r3
+/* 80359E10 00355A70 D8 21 00 08 */ stfd f1, 8(r1)
+/* 80359E14 00355A74 40 82 00 08 */ bne lbl_80359E1C
+/* 80359E18 00355A78 83 CD B1 10 */ lwz r30, lbl_806403D0-_SDA_BASE_(r13)
+lbl_80359E1C:
+/* 80359E1C 00355A7C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80359E20 00355A80 40 82 00 0C */ bne lbl_80359E2C
+/* 80359E24 00355A84 38 61 00 08 */ addi r3, r1, 8
+/* 80359E28 00355A88 48 00 00 38 */ b lbl_80359E60
+lbl_80359E2C:
+/* 80359E2C 00355A8C 7C AC 2B 78 */ mr r12, r5
+/* 80359E30 00355A90 7F E4 FB 78 */ mr r4, r31
+/* 80359E34 00355A94 38 A1 00 08 */ addi r5, r1, 8
+/* 80359E38 00355A98 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80359E3C 00355A9C 7D 89 03 A6 */ mtctr r12
+/* 80359E40 00355AA0 4E 80 04 21 */ bctrl
+/* 80359E44 00355AA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80359E48 00355AA8 40 82 00 18 */ bne lbl_80359E60
+/* 80359E4C 00355AAC 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 80359E50 00355AB0 7F E4 FB 78 */ mr r4, r31
+/* 80359E54 00355AB4 38 C1 00 08 */ addi r6, r1, 8
+/* 80359E58 00355AB8 38 A0 00 01 */ li r5, 1
+/* 80359E5C 00355ABC 4B FF D3 71 */ bl BucketNew
+lbl_80359E60:
+/* 80359E60 00355AC0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80359E64 00355AC4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80359E68 00355AC8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80359E6C 00355ACC C8 23 00 00 */ lfd f1, 0(r3)
+/* 80359E70 00355AD0 7C 08 03 A6 */ mtlr r0
+/* 80359E74 00355AD4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80359E78 00355AD8 4E 80 00 20 */ blr
+
+.global ServerOpString
+ServerOpString:
+/* 80359E7C 00355ADC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80359E80 00355AE0 7C 08 02 A6 */ mflr r0
+/* 80359E84 00355AE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80359E88 00355AE8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80359E8C 00355AEC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80359E90 00355AF0 7C DF 33 78 */ mr r31, r6
+/* 80359E94 00355AF4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80359E98 00355AF8 7C 9E 23 78 */ mr r30, r4
+/* 80359E9C 00355AFC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80359EA0 00355B00 7C 7D 1B 78 */ mr r29, r3
+/* 80359EA4 00355B04 40 82 00 08 */ bne lbl_80359EAC
+/* 80359EA8 00355B08 83 AD B1 10 */ lwz r29, lbl_806403D0-_SDA_BASE_(r13)
+lbl_80359EAC:
+/* 80359EAC 00355B0C 2C 1D 00 00 */ cmpwi r29, 0
+/* 80359EB0 00355B10 40 82 00 0C */ bne lbl_80359EBC
+/* 80359EB4 00355B14 7F E3 FB 78 */ mr r3, r31
+/* 80359EB8 00355B18 48 00 00 38 */ b lbl_80359EF0
+lbl_80359EBC:
+/* 80359EBC 00355B1C 7C AC 2B 78 */ mr r12, r5
+/* 80359EC0 00355B20 7F C4 F3 78 */ mr r4, r30
+/* 80359EC4 00355B24 7F E5 FB 78 */ mr r5, r31
+/* 80359EC8 00355B28 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80359ECC 00355B2C 7D 89 03 A6 */ mtctr r12
+/* 80359ED0 00355B30 4E 80 04 21 */ bctrl
+/* 80359ED4 00355B34 2C 03 00 00 */ cmpwi r3, 0
+/* 80359ED8 00355B38 40 82 00 18 */ bne lbl_80359EF0
+/* 80359EDC 00355B3C 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80359EE0 00355B40 7F C4 F3 78 */ mr r4, r30
+/* 80359EE4 00355B44 7F E6 FB 78 */ mr r6, r31
+/* 80359EE8 00355B48 38 A0 00 02 */ li r5, 2
+/* 80359EEC 00355B4C 4B FF D2 E1 */ bl BucketNew
+lbl_80359EF0:
+/* 80359EF0 00355B50 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80359EF4 00355B54 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80359EF8 00355B58 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80359EFC 00355B5C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80359F00 00355B60 7C 08 03 A6 */ mtlr r0
+/* 80359F04 00355B64 38 21 00 20 */ addi r1, r1, 0x20
+/* 80359F08 00355B68 4E 80 00 20 */ blr
+
+.global TeamOpInt
+TeamOpInt:
+/* 80359F0C 00355B6C 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 80359F10 00355B70 7C 08 02 A6 */ mflr r0
+/* 80359F14 00355B74 2C 03 00 00 */ cmpwi r3, 0
+/* 80359F18 00355B78 90 01 00 64 */ stw r0, 0x64(r1)
+/* 80359F1C 00355B7C 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 80359F20 00355B80 7C DF 33 78 */ mr r31, r6
+/* 80359F24 00355B84 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 80359F28 00355B88 7C BE 2B 78 */ mr r30, r5
+/* 80359F2C 00355B8C 93 A1 00 54 */ stw r29, 0x54(r1)
+/* 80359F30 00355B90 7C 9D 23 78 */ mr r29, r4
+/* 80359F34 00355B94 93 81 00 50 */ stw r28, 0x50(r1)
+/* 80359F38 00355B98 7C 7C 1B 78 */ mr r28, r3
+/* 80359F3C 00355B9C 40 82 00 08 */ bne lbl_80359F44
+/* 80359F40 00355BA0 80 6D B1 10 */ lwz r3, lbl_806403D0-_SDA_BASE_(r13)
+lbl_80359F44:
+/* 80359F44 00355BA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80359F48 00355BA8 40 82 00 08 */ bne lbl_80359F50
+/* 80359F4C 00355BAC 48 00 00 14 */ b lbl_80359F60
+lbl_80359F50:
+/* 80359F50 00355BB0 80 63 00 20 */ lwz r3, 0x20(r3)
+/* 80359F54 00355BB4 7C E4 3B 78 */ mr r4, r7
+/* 80359F58 00355BB8 4B FD BF 99 */ bl ArrayNth
+/* 80359F5C 00355BBC 80 E3 00 00 */ lwz r7, 0(r3)
+lbl_80359F60:
+/* 80359F60 00355BC0 7C E6 3B 78 */ mr r6, r7
+/* 80359F64 00355BC4 7F A5 EB 78 */ mr r5, r29
+/* 80359F68 00355BC8 38 61 00 10 */ addi r3, r1, 0x10
+/* 80359F6C 00355BCC 38 8D 94 88 */ addi r4, r13, lbl_8063E748-_SDA_BASE_
+/* 80359F70 00355BD0 4C C6 31 82 */ crclr 6
+/* 80359F74 00355BD4 4B E7 2B 89 */ bl sprintf
+/* 80359F78 00355BD8 2C 1C 00 00 */ cmpwi r28, 0
+/* 80359F7C 00355BDC 93 E1 00 08 */ stw r31, 8(r1)
+/* 80359F80 00355BE0 40 82 00 08 */ bne lbl_80359F88
+/* 80359F84 00355BE4 83 8D B1 10 */ lwz r28, lbl_806403D0-_SDA_BASE_(r13)
+lbl_80359F88:
+/* 80359F88 00355BE8 2C 1C 00 00 */ cmpwi r28, 0
+/* 80359F8C 00355BEC 40 82 00 0C */ bne lbl_80359F98
+/* 80359F90 00355BF0 38 61 00 08 */ addi r3, r1, 8
+/* 80359F94 00355BF4 48 00 00 38 */ b lbl_80359FCC
+lbl_80359F98:
+/* 80359F98 00355BF8 7F CC F3 78 */ mr r12, r30
+/* 80359F9C 00355BFC 38 81 00 10 */ addi r4, r1, 0x10
+/* 80359FA0 00355C00 38 A1 00 08 */ addi r5, r1, 8
+/* 80359FA4 00355C04 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 80359FA8 00355C08 7D 89 03 A6 */ mtctr r12
+/* 80359FAC 00355C0C 4E 80 04 21 */ bctrl
+/* 80359FB0 00355C10 2C 03 00 00 */ cmpwi r3, 0
+/* 80359FB4 00355C14 40 82 00 18 */ bne lbl_80359FCC
+/* 80359FB8 00355C18 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 80359FBC 00355C1C 38 81 00 10 */ addi r4, r1, 0x10
+/* 80359FC0 00355C20 38 C1 00 08 */ addi r6, r1, 8
+/* 80359FC4 00355C24 38 A0 00 00 */ li r5, 0
+/* 80359FC8 00355C28 4B FF D2 05 */ bl BucketNew
+lbl_80359FCC:
+/* 80359FCC 00355C2C 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 80359FD0 00355C30 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 80359FD4 00355C34 83 A1 00 54 */ lwz r29, 0x54(r1)
+/* 80359FD8 00355C38 83 81 00 50 */ lwz r28, 0x50(r1)
+/* 80359FDC 00355C3C 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80359FE0 00355C40 80 63 00 00 */ lwz r3, 0(r3)
+/* 80359FE4 00355C44 7C 08 03 A6 */ mtlr r0
+/* 80359FE8 00355C48 38 21 00 60 */ addi r1, r1, 0x60
+/* 80359FEC 00355C4C 4E 80 00 20 */ blr
+
+.global TeamOpFloat
+TeamOpFloat:
+/* 80359FF0 00355C50 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 80359FF4 00355C54 7C 08 02 A6 */ mflr r0
+/* 80359FF8 00355C58 2C 03 00 00 */ cmpwi r3, 0
+/* 80359FFC 00355C5C 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8035A000 00355C60 DB E1 00 68 */ stfd f31, 0x68(r1)
+/* 8035A004 00355C64 FF E0 08 90 */ fmr f31, f1
+/* 8035A008 00355C68 93 E1 00 64 */ stw r31, 0x64(r1)
+/* 8035A00C 00355C6C 7C BF 2B 78 */ mr r31, r5
+/* 8035A010 00355C70 93 C1 00 60 */ stw r30, 0x60(r1)
+/* 8035A014 00355C74 7C 9E 23 78 */ mr r30, r4
+/* 8035A018 00355C78 93 A1 00 5C */ stw r29, 0x5c(r1)
+/* 8035A01C 00355C7C 7C 7D 1B 78 */ mr r29, r3
+/* 8035A020 00355C80 40 82 00 08 */ bne lbl_8035A028
+/* 8035A024 00355C84 80 6D B1 10 */ lwz r3, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A028:
+/* 8035A028 00355C88 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A02C 00355C8C 40 82 00 08 */ bne lbl_8035A034
+/* 8035A030 00355C90 48 00 00 14 */ b lbl_8035A044
+lbl_8035A034:
+/* 8035A034 00355C94 80 63 00 20 */ lwz r3, 0x20(r3)
+/* 8035A038 00355C98 7C C4 33 78 */ mr r4, r6
+/* 8035A03C 00355C9C 4B FD BE B5 */ bl ArrayNth
+/* 8035A040 00355CA0 80 C3 00 00 */ lwz r6, 0(r3)
+lbl_8035A044:
+/* 8035A044 00355CA4 7F C5 F3 78 */ mr r5, r30
+/* 8035A048 00355CA8 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035A04C 00355CAC 38 8D 94 88 */ addi r4, r13, lbl_8063E748-_SDA_BASE_
+/* 8035A050 00355CB0 4C C6 31 82 */ crclr 6
+/* 8035A054 00355CB4 4B E7 2A A9 */ bl sprintf
+/* 8035A058 00355CB8 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035A05C 00355CBC DB E1 00 08 */ stfd f31, 8(r1)
+/* 8035A060 00355CC0 40 82 00 08 */ bne lbl_8035A068
+/* 8035A064 00355CC4 83 AD B1 10 */ lwz r29, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A068:
+/* 8035A068 00355CC8 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035A06C 00355CCC 40 82 00 0C */ bne lbl_8035A078
+/* 8035A070 00355CD0 38 61 00 08 */ addi r3, r1, 8
+/* 8035A074 00355CD4 48 00 00 38 */ b lbl_8035A0AC
+lbl_8035A078:
+/* 8035A078 00355CD8 7F EC FB 78 */ mr r12, r31
+/* 8035A07C 00355CDC 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035A080 00355CE0 38 A1 00 08 */ addi r5, r1, 8
+/* 8035A084 00355CE4 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 8035A088 00355CE8 7D 89 03 A6 */ mtctr r12
+/* 8035A08C 00355CEC 4E 80 04 21 */ bctrl
+/* 8035A090 00355CF0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A094 00355CF4 40 82 00 18 */ bne lbl_8035A0AC
+/* 8035A098 00355CF8 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 8035A09C 00355CFC 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035A0A0 00355D00 38 C1 00 08 */ addi r6, r1, 8
+/* 8035A0A4 00355D04 38 A0 00 01 */ li r5, 1
+/* 8035A0A8 00355D08 4B FF D1 25 */ bl BucketNew
+lbl_8035A0AC:
+/* 8035A0AC 00355D0C CB E1 00 68 */ lfd f31, 0x68(r1)
+/* 8035A0B0 00355D10 83 E1 00 64 */ lwz r31, 0x64(r1)
+/* 8035A0B4 00355D14 83 C1 00 60 */ lwz r30, 0x60(r1)
+/* 8035A0B8 00355D18 83 A1 00 5C */ lwz r29, 0x5c(r1)
+/* 8035A0BC 00355D1C 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 8035A0C0 00355D20 C8 23 00 00 */ lfd f1, 0(r3)
+/* 8035A0C4 00355D24 7C 08 03 A6 */ mtlr r0
+/* 8035A0C8 00355D28 38 21 00 70 */ addi r1, r1, 0x70
+/* 8035A0CC 00355D2C 4E 80 00 20 */ blr
+
+.global TeamOpString
+TeamOpString:
+/* 8035A0D0 00355D30 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8035A0D4 00355D34 7C 08 02 A6 */ mflr r0
+/* 8035A0D8 00355D38 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A0DC 00355D3C 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8035A0E0 00355D40 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 8035A0E4 00355D44 7C DF 33 78 */ mr r31, r6
+/* 8035A0E8 00355D48 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 8035A0EC 00355D4C 7C BE 2B 78 */ mr r30, r5
+/* 8035A0F0 00355D50 93 A1 00 54 */ stw r29, 0x54(r1)
+/* 8035A0F4 00355D54 7C 9D 23 78 */ mr r29, r4
+/* 8035A0F8 00355D58 93 81 00 50 */ stw r28, 0x50(r1)
+/* 8035A0FC 00355D5C 7C 7C 1B 78 */ mr r28, r3
+/* 8035A100 00355D60 40 82 00 08 */ bne lbl_8035A108
+/* 8035A104 00355D64 80 6D B1 10 */ lwz r3, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A108:
+/* 8035A108 00355D68 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A10C 00355D6C 40 82 00 08 */ bne lbl_8035A114
+/* 8035A110 00355D70 48 00 00 14 */ b lbl_8035A124
+lbl_8035A114:
+/* 8035A114 00355D74 80 63 00 20 */ lwz r3, 0x20(r3)
+/* 8035A118 00355D78 7C E4 3B 78 */ mr r4, r7
+/* 8035A11C 00355D7C 4B FD BD D5 */ bl ArrayNth
+/* 8035A120 00355D80 80 E3 00 00 */ lwz r7, 0(r3)
+lbl_8035A124:
+/* 8035A124 00355D84 7C E6 3B 78 */ mr r6, r7
+/* 8035A128 00355D88 7F A5 EB 78 */ mr r5, r29
+/* 8035A12C 00355D8C 38 61 00 08 */ addi r3, r1, 8
+/* 8035A130 00355D90 38 8D 94 88 */ addi r4, r13, lbl_8063E748-_SDA_BASE_
+/* 8035A134 00355D94 4C C6 31 82 */ crclr 6
+/* 8035A138 00355D98 4B E7 29 C5 */ bl sprintf
+/* 8035A13C 00355D9C 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035A140 00355DA0 40 82 00 08 */ bne lbl_8035A148
+/* 8035A144 00355DA4 83 8D B1 10 */ lwz r28, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A148:
+/* 8035A148 00355DA8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035A14C 00355DAC 40 82 00 0C */ bne lbl_8035A158
+/* 8035A150 00355DB0 7F E3 FB 78 */ mr r3, r31
+/* 8035A154 00355DB4 48 00 00 38 */ b lbl_8035A18C
+lbl_8035A158:
+/* 8035A158 00355DB8 7F CC F3 78 */ mr r12, r30
+/* 8035A15C 00355DBC 7F E5 FB 78 */ mr r5, r31
+/* 8035A160 00355DC0 38 81 00 08 */ addi r4, r1, 8
+/* 8035A164 00355DC4 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8035A168 00355DC8 7D 89 03 A6 */ mtctr r12
+/* 8035A16C 00355DCC 4E 80 04 21 */ bctrl
+/* 8035A170 00355DD0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A174 00355DD4 40 82 00 18 */ bne lbl_8035A18C
+/* 8035A178 00355DD8 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8035A17C 00355DDC 7F E6 FB 78 */ mr r6, r31
+/* 8035A180 00355DE0 38 81 00 08 */ addi r4, r1, 8
+/* 8035A184 00355DE4 38 A0 00 02 */ li r5, 2
+/* 8035A188 00355DE8 4B FF D0 45 */ bl BucketNew
+lbl_8035A18C:
+/* 8035A18C 00355DEC 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 8035A190 00355DF0 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 8035A194 00355DF4 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 8035A198 00355DF8 83 A1 00 54 */ lwz r29, 0x54(r1)
+/* 8035A19C 00355DFC 83 81 00 50 */ lwz r28, 0x50(r1)
+/* 8035A1A0 00355E00 7C 08 03 A6 */ mtlr r0
+/* 8035A1A4 00355E04 38 21 00 60 */ addi r1, r1, 0x60
+/* 8035A1A8 00355E08 4E 80 00 20 */ blr
+
+.global PlayerOpInt
+PlayerOpInt:
+/* 8035A1AC 00355E0C 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8035A1B0 00355E10 7C 08 02 A6 */ mflr r0
+/* 8035A1B4 00355E14 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A1B8 00355E18 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8035A1BC 00355E1C 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 8035A1C0 00355E20 7C DF 33 78 */ mr r31, r6
+/* 8035A1C4 00355E24 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 8035A1C8 00355E28 7C BE 2B 78 */ mr r30, r5
+/* 8035A1CC 00355E2C 93 A1 00 54 */ stw r29, 0x54(r1)
+/* 8035A1D0 00355E30 7C 9D 23 78 */ mr r29, r4
+/* 8035A1D4 00355E34 93 81 00 50 */ stw r28, 0x50(r1)
+/* 8035A1D8 00355E38 7C 7C 1B 78 */ mr r28, r3
+/* 8035A1DC 00355E3C 40 82 00 08 */ bne lbl_8035A1E4
+/* 8035A1E0 00355E40 80 6D B1 10 */ lwz r3, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A1E4:
+/* 8035A1E4 00355E44 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A1E8 00355E48 40 82 00 08 */ bne lbl_8035A1F0
+/* 8035A1EC 00355E4C 48 00 00 14 */ b lbl_8035A200
+lbl_8035A1F0:
+/* 8035A1F0 00355E50 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 8035A1F4 00355E54 7C E4 3B 78 */ mr r4, r7
+/* 8035A1F8 00355E58 4B FD BC F9 */ bl ArrayNth
+/* 8035A1FC 00355E5C 80 E3 00 00 */ lwz r7, 0(r3)
+lbl_8035A200:
+/* 8035A200 00355E60 7C E6 3B 78 */ mr r6, r7
+/* 8035A204 00355E64 7F A5 EB 78 */ mr r5, r29
+/* 8035A208 00355E68 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035A20C 00355E6C 38 8D 94 90 */ addi r4, r13, lbl_8063E750-_SDA_BASE_
+/* 8035A210 00355E70 4C C6 31 82 */ crclr 6
+/* 8035A214 00355E74 4B E7 28 E9 */ bl sprintf
+/* 8035A218 00355E78 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035A21C 00355E7C 93 E1 00 08 */ stw r31, 8(r1)
+/* 8035A220 00355E80 40 82 00 08 */ bne lbl_8035A228
+/* 8035A224 00355E84 83 8D B1 10 */ lwz r28, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A228:
+/* 8035A228 00355E88 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035A22C 00355E8C 40 82 00 0C */ bne lbl_8035A238
+/* 8035A230 00355E90 38 61 00 08 */ addi r3, r1, 8
+/* 8035A234 00355E94 48 00 00 38 */ b lbl_8035A26C
+lbl_8035A238:
+/* 8035A238 00355E98 7F CC F3 78 */ mr r12, r30
+/* 8035A23C 00355E9C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035A240 00355EA0 38 A1 00 08 */ addi r5, r1, 8
+/* 8035A244 00355EA4 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8035A248 00355EA8 7D 89 03 A6 */ mtctr r12
+/* 8035A24C 00355EAC 4E 80 04 21 */ bctrl
+/* 8035A250 00355EB0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A254 00355EB4 40 82 00 18 */ bne lbl_8035A26C
+/* 8035A258 00355EB8 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8035A25C 00355EBC 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035A260 00355EC0 38 C1 00 08 */ addi r6, r1, 8
+/* 8035A264 00355EC4 38 A0 00 00 */ li r5, 0
+/* 8035A268 00355EC8 4B FF CF 65 */ bl BucketNew
+lbl_8035A26C:
+/* 8035A26C 00355ECC 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 8035A270 00355ED0 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 8035A274 00355ED4 83 A1 00 54 */ lwz r29, 0x54(r1)
+/* 8035A278 00355ED8 83 81 00 50 */ lwz r28, 0x50(r1)
+/* 8035A27C 00355EDC 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 8035A280 00355EE0 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035A284 00355EE4 7C 08 03 A6 */ mtlr r0
+/* 8035A288 00355EE8 38 21 00 60 */ addi r1, r1, 0x60
+/* 8035A28C 00355EEC 4E 80 00 20 */ blr
+
+.global PlayerOpFloat
+PlayerOpFloat:
+/* 8035A290 00355EF0 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 8035A294 00355EF4 7C 08 02 A6 */ mflr r0
+/* 8035A298 00355EF8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A29C 00355EFC 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8035A2A0 00355F00 DB E1 00 68 */ stfd f31, 0x68(r1)
+/* 8035A2A4 00355F04 FF E0 08 90 */ fmr f31, f1
+/* 8035A2A8 00355F08 93 E1 00 64 */ stw r31, 0x64(r1)
+/* 8035A2AC 00355F0C 7C BF 2B 78 */ mr r31, r5
+/* 8035A2B0 00355F10 93 C1 00 60 */ stw r30, 0x60(r1)
+/* 8035A2B4 00355F14 7C 9E 23 78 */ mr r30, r4
+/* 8035A2B8 00355F18 93 A1 00 5C */ stw r29, 0x5c(r1)
+/* 8035A2BC 00355F1C 7C 7D 1B 78 */ mr r29, r3
+/* 8035A2C0 00355F20 40 82 00 08 */ bne lbl_8035A2C8
+/* 8035A2C4 00355F24 80 6D B1 10 */ lwz r3, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A2C8:
+/* 8035A2C8 00355F28 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A2CC 00355F2C 40 82 00 08 */ bne lbl_8035A2D4
+/* 8035A2D0 00355F30 48 00 00 14 */ b lbl_8035A2E4
+lbl_8035A2D4:
+/* 8035A2D4 00355F34 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 8035A2D8 00355F38 7C C4 33 78 */ mr r4, r6
+/* 8035A2DC 00355F3C 4B FD BC 15 */ bl ArrayNth
+/* 8035A2E0 00355F40 80 C3 00 00 */ lwz r6, 0(r3)
+lbl_8035A2E4:
+/* 8035A2E4 00355F44 7F C5 F3 78 */ mr r5, r30
+/* 8035A2E8 00355F48 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035A2EC 00355F4C 38 8D 94 90 */ addi r4, r13, lbl_8063E750-_SDA_BASE_
+/* 8035A2F0 00355F50 4C C6 31 82 */ crclr 6
+/* 8035A2F4 00355F54 4B E7 28 09 */ bl sprintf
+/* 8035A2F8 00355F58 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035A2FC 00355F5C DB E1 00 08 */ stfd f31, 8(r1)
+/* 8035A300 00355F60 40 82 00 08 */ bne lbl_8035A308
+/* 8035A304 00355F64 83 AD B1 10 */ lwz r29, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A308:
+/* 8035A308 00355F68 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035A30C 00355F6C 40 82 00 0C */ bne lbl_8035A318
+/* 8035A310 00355F70 38 61 00 08 */ addi r3, r1, 8
+/* 8035A314 00355F74 48 00 00 38 */ b lbl_8035A34C
+lbl_8035A318:
+/* 8035A318 00355F78 7F EC FB 78 */ mr r12, r31
+/* 8035A31C 00355F7C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035A320 00355F80 38 A1 00 08 */ addi r5, r1, 8
+/* 8035A324 00355F84 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 8035A328 00355F88 7D 89 03 A6 */ mtctr r12
+/* 8035A32C 00355F8C 4E 80 04 21 */ bctrl
+/* 8035A330 00355F90 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A334 00355F94 40 82 00 18 */ bne lbl_8035A34C
+/* 8035A338 00355F98 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 8035A33C 00355F9C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035A340 00355FA0 38 C1 00 08 */ addi r6, r1, 8
+/* 8035A344 00355FA4 38 A0 00 01 */ li r5, 1
+/* 8035A348 00355FA8 4B FF CE 85 */ bl BucketNew
+lbl_8035A34C:
+/* 8035A34C 00355FAC CB E1 00 68 */ lfd f31, 0x68(r1)
+/* 8035A350 00355FB0 83 E1 00 64 */ lwz r31, 0x64(r1)
+/* 8035A354 00355FB4 83 C1 00 60 */ lwz r30, 0x60(r1)
+/* 8035A358 00355FB8 83 A1 00 5C */ lwz r29, 0x5c(r1)
+/* 8035A35C 00355FBC 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 8035A360 00355FC0 C8 23 00 00 */ lfd f1, 0(r3)
+/* 8035A364 00355FC4 7C 08 03 A6 */ mtlr r0
+/* 8035A368 00355FC8 38 21 00 70 */ addi r1, r1, 0x70
+/* 8035A36C 00355FCC 4E 80 00 20 */ blr
+
+.global PlayerOpString
+PlayerOpString:
+/* 8035A370 00355FD0 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8035A374 00355FD4 7C 08 02 A6 */ mflr r0
+/* 8035A378 00355FD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A37C 00355FDC 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8035A380 00355FE0 93 E1 00 5C */ stw r31, 0x5c(r1)
+/* 8035A384 00355FE4 7C DF 33 78 */ mr r31, r6
+/* 8035A388 00355FE8 93 C1 00 58 */ stw r30, 0x58(r1)
+/* 8035A38C 00355FEC 7C BE 2B 78 */ mr r30, r5
+/* 8035A390 00355FF0 93 A1 00 54 */ stw r29, 0x54(r1)
+/* 8035A394 00355FF4 7C 9D 23 78 */ mr r29, r4
+/* 8035A398 00355FF8 93 81 00 50 */ stw r28, 0x50(r1)
+/* 8035A39C 00355FFC 7C 7C 1B 78 */ mr r28, r3
+/* 8035A3A0 00356000 40 82 00 08 */ bne lbl_8035A3A8
+/* 8035A3A4 00356004 80 6D B1 10 */ lwz r3, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A3A8:
+/* 8035A3A8 00356008 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A3AC 0035600C 40 82 00 08 */ bne lbl_8035A3B4
+/* 8035A3B0 00356010 48 00 00 14 */ b lbl_8035A3C4
+lbl_8035A3B4:
+/* 8035A3B4 00356014 80 63 00 1C */ lwz r3, 0x1c(r3)
+/* 8035A3B8 00356018 7C E4 3B 78 */ mr r4, r7
+/* 8035A3BC 0035601C 4B FD BB 35 */ bl ArrayNth
+/* 8035A3C0 00356020 80 E3 00 00 */ lwz r7, 0(r3)
+lbl_8035A3C4:
+/* 8035A3C4 00356024 7C E6 3B 78 */ mr r6, r7
+/* 8035A3C8 00356028 7F A5 EB 78 */ mr r5, r29
+/* 8035A3CC 0035602C 38 61 00 08 */ addi r3, r1, 8
+/* 8035A3D0 00356030 38 8D 94 90 */ addi r4, r13, lbl_8063E750-_SDA_BASE_
+/* 8035A3D4 00356034 4C C6 31 82 */ crclr 6
+/* 8035A3D8 00356038 4B E7 27 25 */ bl sprintf
+/* 8035A3DC 0035603C 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035A3E0 00356040 40 82 00 08 */ bne lbl_8035A3E8
+/* 8035A3E4 00356044 83 8D B1 10 */ lwz r28, lbl_806403D0-_SDA_BASE_(r13)
+lbl_8035A3E8:
+/* 8035A3E8 00356048 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035A3EC 0035604C 40 82 00 0C */ bne lbl_8035A3F8
+/* 8035A3F0 00356050 7F E3 FB 78 */ mr r3, r31
+/* 8035A3F4 00356054 48 00 00 38 */ b lbl_8035A42C
+lbl_8035A3F8:
+/* 8035A3F8 00356058 7F CC F3 78 */ mr r12, r30
+/* 8035A3FC 0035605C 7F E5 FB 78 */ mr r5, r31
+/* 8035A400 00356060 38 81 00 08 */ addi r4, r1, 8
+/* 8035A404 00356064 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8035A408 00356068 7D 89 03 A6 */ mtctr r12
+/* 8035A40C 0035606C 4E 80 04 21 */ bctrl
+/* 8035A410 00356070 2C 03 00 00 */ cmpwi r3, 0
+/* 8035A414 00356074 40 82 00 18 */ bne lbl_8035A42C
+/* 8035A418 00356078 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8035A41C 0035607C 7F E6 FB 78 */ mr r6, r31
+/* 8035A420 00356080 38 81 00 08 */ addi r4, r1, 8
+/* 8035A424 00356084 38 A0 00 02 */ li r5, 2
+/* 8035A428 00356088 4B FF CD A5 */ bl BucketNew
+lbl_8035A42C:
+/* 8035A42C 0035608C 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 8035A430 00356090 83 E1 00 5C */ lwz r31, 0x5c(r1)
+/* 8035A434 00356094 83 C1 00 58 */ lwz r30, 0x58(r1)
+/* 8035A438 00356098 83 A1 00 54 */ lwz r29, 0x54(r1)
+/* 8035A43C 0035609C 83 81 00 50 */ lwz r28, 0x50(r1)
+/* 8035A440 003560A0 7C 08 03 A6 */ mtlr r0
+/* 8035A444 003560A4 38 21 00 60 */ addi r1, r1, 0x60
+/* 8035A448 003560A8 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Auth.s b/asm/SDK/DWC/gamespy/gt2Auth.s new file mode 100644 index 0000000..1fa1d3c --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Auth.s @@ -0,0 +1,274 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2GetChallenge
+gti2GetChallenge:
+/* 80348534 00344194 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80348538 00344198 7C 08 02 A6 */ mflr r0
+/* 8034853C 0034419C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80348540 003441A0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80348544 003441A4 4B E7 EB E5 */ bl _savegpr_27
+/* 80348548 003441A8 7C 7B 1B 78 */ mr r27, r3
+/* 8034854C 003441AC 4B FF 0A 8D */ bl current_time
+/* 80348550 003441B0 4B E8 48 0D */ bl srand
+/* 80348554 003441B4 4B E8 47 E9 */ bl rand
+/* 80348558 003441B8 3C 80 2C 0B */ lis r4, 0x2C0B02C1@ha
+/* 8034855C 003441BC 3B 80 00 00 */ li r28, 0
+/* 80348560 003441C0 3B E4 02 C1 */ addi r31, r4, 0x2C0B02C1@l
+/* 80348564 003441C4 3B A0 00 01 */ li r29, 1
+/* 80348568 003441C8 7C 1F 18 96 */ mulhw r0, r31, r3
+/* 8034856C 003441CC 7C 00 26 70 */ srawi r0, r0, 4
+/* 80348570 003441D0 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 80348574 003441D4 7C 00 22 14 */ add r0, r0, r4
+/* 80348578 003441D8 1C 00 00 5D */ mulli r0, r0, 0x5d
+/* 8034857C 003441DC 7C 60 18 50 */ subf r3, r0, r3
+/* 80348580 003441E0 38 03 00 21 */ addi r0, r3, 0x21
+/* 80348584 003441E4 98 1B 00 00 */ stb r0, 0(r27)
+lbl_80348588:
+/* 80348588 003441E8 7F DB EA 14 */ add r30, r27, r29
+/* 8034858C 003441EC 88 BB 00 00 */ lbz r5, 0(r27)
+/* 80348590 003441F0 88 DE FF FF */ lbz r6, -1(r30)
+/* 80348594 003441F4 54 A4 07 FE */ clrlwi r4, r5, 0x1f
+/* 80348598 003441F8 38 05 FF B1 */ addi r0, r5, -79
+/* 8034859C 003441FC 7F A3 32 78 */ xor r3, r29, r6
+/* 803485A0 00344200 7C A5 30 50 */ subf r5, r5, r6
+/* 803485A4 00344204 7C 84 E2 78 */ xor r4, r4, r28
+/* 803485A8 00344208 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 803485AC 0034420C 54 63 07 FE */ clrlwi r3, r3, 0x1f
+/* 803485B0 00344210 54 A5 0F FE */ srwi r5, r5, 0x1f
+/* 803485B4 00344214 7C 83 1A 78 */ xor r3, r4, r3
+/* 803485B8 00344218 7C 60 02 78 */ xor r0, r3, r0
+/* 803485BC 0034421C 7C 1C 2A 78 */ xor r28, r0, r5
+/* 803485C0 00344220 4B E8 47 7D */ bl rand
+/* 803485C4 00344224 7C 1F 18 96 */ mulhw r0, r31, r3
+/* 803485C8 00344228 2C 1C 00 00 */ cmpwi r28, 0
+/* 803485CC 0034422C 7C 00 26 70 */ srawi r0, r0, 4
+/* 803485D0 00344230 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 803485D4 00344234 7C 00 22 14 */ add r0, r0, r4
+/* 803485D8 00344238 1C 00 00 5D */ mulli r0, r0, 0x5d
+/* 803485DC 0034423C 7C 60 18 50 */ subf r3, r0, r3
+/* 803485E0 00344240 38 03 00 21 */ addi r0, r3, 0x21
+/* 803485E4 00344244 98 1E 00 00 */ stb r0, 0(r30)
+/* 803485E8 00344248 41 82 00 10 */ beq lbl_803485F8
+/* 803485EC 0034424C 88 1E 00 00 */ lbz r0, 0(r30)
+/* 803485F0 00344250 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 803485F4 00344254 41 82 00 1C */ beq lbl_80348610
+lbl_803485F8:
+/* 803485F8 00344258 2C 1C 00 00 */ cmpwi r28, 0
+/* 803485FC 0034425C 40 82 00 20 */ bne lbl_8034861C
+/* 80348600 00344260 88 1E 00 00 */ lbz r0, 0(r30)
+/* 80348604 00344264 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 80348608 00344268 2C 00 00 01 */ cmpwi r0, 1
+/* 8034860C 0034426C 40 82 00 10 */ bne lbl_8034861C
+lbl_80348610:
+/* 80348610 00344270 88 7E 00 00 */ lbz r3, 0(r30)
+/* 80348614 00344274 38 03 00 01 */ addi r0, r3, 1
+/* 80348618 00344278 98 1E 00 00 */ stb r0, 0(r30)
+lbl_8034861C:
+/* 8034861C 0034427C 3B BD 00 01 */ addi r29, r29, 1
+/* 80348620 00344280 2C 1D 00 20 */ cmpwi r29, 0x20
+/* 80348624 00344284 41 80 FF 64 */ blt lbl_80348588
+/* 80348628 00344288 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034862C 0034428C 7F 63 DB 78 */ mr r3, r27
+/* 80348630 00344290 4B E7 EB 45 */ bl _restgpr_27
+/* 80348634 00344294 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80348638 00344298 7C 08 03 A6 */ mtlr r0
+/* 8034863C 0034429C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80348640 003442A0 4E 80 00 20 */ blr
+
+.global gti2GetResponse
+gti2GetResponse:
+/* 80348644 003442A4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80348648 003442A8 7C 08 02 A6 */ mflr r0
+/* 8034864C 003442AC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80348650 003442B0 39 61 00 30 */ addi r11, r1, 0x30
+/* 80348654 003442B4 4B E7 EA C5 */ bl _savegpr_23
+/* 80348658 003442B8 3C A0 80 45 */ lis r5, lbl_8044B5E0@ha
+/* 8034865C 003442BC 7C 79 1B 78 */ mr r25, r3
+/* 80348660 003442C0 7C 9A 23 78 */ mr r26, r4
+/* 80348664 003442C4 38 65 B5 E0 */ addi r3, r5, lbl_8044B5E0@l
+/* 80348668 003442C8 4B E7 E4 FD */ bl strlen
+/* 8034866C 003442CC 38 00 00 1F */ li r0, 0x1f
+/* 80348670 003442D0 7C 7E 1B 78 */ mr r30, r3
+/* 80348674 003442D4 38 E0 00 00 */ li r7, 0
+/* 80348678 003442D8 38 C0 00 01 */ li r6, 1
+/* 8034867C 003442DC 7C 09 03 A6 */ mtctr r0
+lbl_80348680:
+/* 80348680 003442E0 7D 1A 32 14 */ add r8, r26, r6
+/* 80348684 003442E4 88 BA 00 00 */ lbz r5, 0(r26)
+/* 80348688 003442E8 89 28 FF FF */ lbz r9, -1(r8)
+/* 8034868C 003442EC 54 A4 07 FE */ clrlwi r4, r5, 0x1f
+/* 80348690 003442F0 38 05 FF B1 */ addi r0, r5, -79
+/* 80348694 003442F4 7C C3 4A 78 */ xor r3, r6, r9
+/* 80348698 003442F8 7C A5 48 50 */ subf r5, r5, r9
+/* 8034869C 003442FC 7C 84 3A 78 */ xor r4, r4, r7
+/* 803486A0 00344300 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 803486A4 00344304 54 63 07 FE */ clrlwi r3, r3, 0x1f
+/* 803486A8 00344308 54 A5 0F FE */ srwi r5, r5, 0x1f
+/* 803486AC 0034430C 7C 83 1A 78 */ xor r3, r4, r3
+/* 803486B0 00344310 7C 60 02 78 */ xor r0, r3, r0
+/* 803486B4 00344314 7C 07 2A 79 */ xor. r7, r0, r5
+/* 803486B8 00344318 41 82 00 10 */ beq lbl_803486C8
+/* 803486BC 0034431C 88 08 00 00 */ lbz r0, 0(r8)
+/* 803486C0 00344320 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 803486C4 00344324 41 82 00 1C */ beq lbl_803486E0
+lbl_803486C8:
+/* 803486C8 00344328 2C 07 00 00 */ cmpwi r7, 0
+/* 803486CC 0034432C 40 82 00 1C */ bne lbl_803486E8
+/* 803486D0 00344330 88 08 00 00 */ lbz r0, 0(r8)
+/* 803486D4 00344334 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 803486D8 00344338 2C 00 00 01 */ cmpwi r0, 1
+/* 803486DC 0034433C 40 82 00 0C */ bne lbl_803486E8
+lbl_803486E0:
+/* 803486E0 00344340 3B A0 00 00 */ li r29, 0
+/* 803486E4 00344344 48 00 00 10 */ b lbl_803486F4
+lbl_803486E8:
+/* 803486E8 00344348 38 C6 00 01 */ addi r6, r6, 1
+/* 803486EC 0034434C 42 00 FF 94 */ bdnz lbl_80348680
+/* 803486F0 00344350 3B A0 00 01 */ li r29, 1
+lbl_803486F4:
+/* 803486F4 00344354 3F E0 80 45 */ lis r31, lbl_8044B5E0@ha
+/* 803486F8 00344358 7F 38 CB 78 */ mr r24, r25
+/* 803486FC 0034435C 3B FF B5 E0 */ addi r31, r31, lbl_8044B5E0@l
+/* 80348700 00344360 3B 60 00 00 */ li r27, 0
+/* 80348704 00344364 3B 80 00 00 */ li r28, 0
+/* 80348708 00344368 3E E0 2C 0B */ lis r23, 0x2c0b
+lbl_8034870C:
+/* 8034870C 0034436C 2C 1D 00 00 */ cmpwi r29, 0
+/* 80348710 00344370 41 82 00 14 */ beq lbl_80348724
+/* 80348714 00344374 2C 1B 00 00 */ cmpwi r27, 0
+/* 80348718 00344378 41 82 00 0C */ beq lbl_80348724
+/* 8034871C 0034437C 2C 1B 00 0D */ cmpwi r27, 0xd
+/* 80348720 00344380 40 82 00 30 */ bne lbl_80348750
+lbl_80348724:
+/* 80348724 00344384 4B E8 46 19 */ bl rand
+/* 80348728 00344388 38 17 02 C1 */ addi r0, r23, 0x2c1
+/* 8034872C 0034438C 7C 00 18 96 */ mulhw r0, r0, r3
+/* 80348730 00344390 7C 00 26 70 */ srawi r0, r0, 4
+/* 80348734 00344394 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 80348738 00344398 7C 00 22 14 */ add r0, r0, r4
+/* 8034873C 0034439C 1C 00 00 5D */ mulli r0, r0, 0x5d
+/* 80348740 003443A0 7C 60 18 50 */ subf r3, r0, r3
+/* 80348744 003443A4 38 03 00 21 */ addi r0, r3, 0x21
+/* 80348748 003443A8 98 18 00 00 */ stb r0, 0(r24)
+/* 8034874C 003443AC 48 00 00 B8 */ b lbl_80348804
+lbl_80348750:
+/* 80348750 003443B0 2C 1B 00 01 */ cmpwi r27, 1
+/* 80348754 003443B4 41 82 00 0C */ beq lbl_80348760
+/* 80348758 003443B8 2C 1B 00 0E */ cmpwi r27, 0xe
+/* 8034875C 003443BC 40 82 00 14 */ bne lbl_80348770
+lbl_80348760:
+/* 80348760 003443C0 7C 1A D8 AE */ lbzx r0, r26, r27
+/* 80348764 003443C4 7C 7A DA 14 */ add r3, r26, r27
+/* 80348768 003443C8 7C 00 07 74 */ extsb r0, r0
+/* 8034876C 003443CC 48 00 00 10 */ b lbl_8034877C
+lbl_80348770:
+/* 80348770 003443D0 7C 7A DA 14 */ add r3, r26, r27
+/* 80348774 003443D4 88 03 FF FF */ lbz r0, -1(r3)
+/* 80348778 003443D8 7C 00 07 74 */ extsb r0, r0
+lbl_8034877C:
+/* 8034877C 003443DC 88 E3 00 00 */ lbz r7, 0(r3)
+/* 80348780 003443E0 7C 80 E1 D6 */ mullw r4, r0, r28
+/* 80348784 003443E4 38 17 02 C1 */ addi r0, r23, 0x2c1
+/* 80348788 003443E8 7C DB 3A 14 */ add r6, r27, r7
+/* 8034878C 003443EC 7C A6 F3 D6 */ divw r5, r6, r30
+/* 80348790 003443F0 7C 64 F3 D6 */ divw r3, r4, r30
+/* 80348794 003443F4 7C A5 F1 D6 */ mullw r5, r5, r30
+/* 80348798 003443F8 7C A5 30 50 */ subf r5, r5, r6
+/* 8034879C 003443FC 7C BF 28 AE */ lbzx r5, r31, r5
+/* 803487A0 00344400 7C 63 F1 D6 */ mullw r3, r3, r30
+/* 803487A4 00344404 7C A6 07 74 */ extsb r6, r5
+/* 803487A8 00344408 7C BB 39 D6 */ mullw r5, r27, r7
+/* 803487AC 0034440C 7C 63 20 50 */ subf r3, r3, r4
+/* 803487B0 00344410 7C 7F 18 AE */ lbzx r3, r31, r3
+/* 803487B4 00344414 7C 63 07 74 */ extsb r3, r3
+/* 803487B8 00344418 7C A6 2A 14 */ add r5, r6, r5
+/* 803487BC 0034441C 54 A4 D8 08 */ slwi r4, r5, 0x1b
+/* 803487C0 00344420 54 A5 0F FE */ srwi r5, r5, 0x1f
+/* 803487C4 00344424 7C 85 20 50 */ subf r4, r5, r4
+/* 803487C8 00344428 54 84 28 3E */ rotlwi r4, r4, 5
+/* 803487CC 0034442C 7C 84 2A 14 */ add r4, r4, r5
+/* 803487D0 00344430 7C 9A 20 AE */ lbzx r4, r26, r4
+/* 803487D4 00344434 7C 84 1A 78 */ xor r4, r4, r3
+/* 803487D8 00344438 7C 83 FE 70 */ srawi r3, r4, 0x1f
+/* 803487DC 0034443C 7C 64 22 78 */ xor r4, r3, r4
+/* 803487E0 00344440 7C 83 20 50 */ subf r4, r3, r4
+/* 803487E4 00344444 7C 00 20 96 */ mulhw r0, r0, r4
+/* 803487E8 00344448 7C 00 26 70 */ srawi r0, r0, 4
+/* 803487EC 0034444C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 803487F0 00344450 7C 00 1A 14 */ add r0, r0, r3
+/* 803487F4 00344454 1C 00 00 5D */ mulli r0, r0, 0x5d
+/* 803487F8 00344458 7C 60 20 50 */ subf r3, r0, r4
+/* 803487FC 0034445C 38 03 00 21 */ addi r0, r3, 0x21
+/* 80348800 00344460 98 18 00 00 */ stb r0, 0(r24)
+lbl_80348804:
+/* 80348804 00344464 3B 7B 00 01 */ addi r27, r27, 1
+/* 80348808 00344468 3B 18 00 01 */ addi r24, r24, 1
+/* 8034880C 0034446C 2C 1B 00 20 */ cmpwi r27, 0x20
+/* 80348810 00344470 3B 9C 46 47 */ addi r28, r28, 0x4647
+/* 80348814 00344474 41 80 FE F8 */ blt lbl_8034870C
+/* 80348818 00344478 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034881C 0034447C 7F 23 CB 78 */ mr r3, r25
+/* 80348820 00344480 4B E7 E9 45 */ bl _restgpr_23
+/* 80348824 00344484 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80348828 00344488 7C 08 03 A6 */ mtlr r0
+/* 8034882C 0034448C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80348830 00344490 4E 80 00 20 */ blr
+
+.global gti2CheckResponse
+gti2CheckResponse:
+/* 80348834 00344494 38 00 00 08 */ li r0, 8
+/* 80348838 00344498 38 C0 00 00 */ li r6, 0
+/* 8034883C 0034449C 7C 09 03 A6 */ mtctr r0
+lbl_80348840:
+/* 80348840 003444A0 2C 06 00 00 */ cmpwi r6, 0
+/* 80348844 003444A4 41 82 00 24 */ beq lbl_80348868
+/* 80348848 003444A8 2C 06 00 0D */ cmpwi r6, 0xd
+/* 8034884C 003444AC 41 82 00 1C */ beq lbl_80348868
+/* 80348850 003444B0 88 A3 00 00 */ lbz r5, 0(r3)
+/* 80348854 003444B4 88 04 00 00 */ lbz r0, 0(r4)
+/* 80348858 003444B8 7C 05 00 40 */ cmplw r5, r0
+/* 8034885C 003444BC 41 82 00 0C */ beq lbl_80348868
+/* 80348860 003444C0 38 60 00 00 */ li r3, 0
+/* 80348864 003444C4 4E 80 00 20 */ blr
+lbl_80348868:
+/* 80348868 003444C8 34 C6 00 01 */ addic. r6, r6, 1
+/* 8034886C 003444CC 41 82 00 24 */ beq lbl_80348890
+/* 80348870 003444D0 2C 06 00 0D */ cmpwi r6, 0xd
+/* 80348874 003444D4 41 82 00 1C */ beq lbl_80348890
+/* 80348878 003444D8 88 A3 00 01 */ lbz r5, 1(r3)
+/* 8034887C 003444DC 88 04 00 01 */ lbz r0, 1(r4)
+/* 80348880 003444E0 7C 05 00 40 */ cmplw r5, r0
+/* 80348884 003444E4 41 82 00 0C */ beq lbl_80348890
+/* 80348888 003444E8 38 60 00 00 */ li r3, 0
+/* 8034888C 003444EC 4E 80 00 20 */ blr
+lbl_80348890:
+/* 80348890 003444F0 34 C6 00 01 */ addic. r6, r6, 1
+/* 80348894 003444F4 41 82 00 24 */ beq lbl_803488B8
+/* 80348898 003444F8 2C 06 00 0D */ cmpwi r6, 0xd
+/* 8034889C 003444FC 41 82 00 1C */ beq lbl_803488B8
+/* 803488A0 00344500 88 A3 00 02 */ lbz r5, 2(r3)
+/* 803488A4 00344504 88 04 00 02 */ lbz r0, 2(r4)
+/* 803488A8 00344508 7C 05 00 40 */ cmplw r5, r0
+/* 803488AC 0034450C 41 82 00 0C */ beq lbl_803488B8
+/* 803488B0 00344510 38 60 00 00 */ li r3, 0
+/* 803488B4 00344514 4E 80 00 20 */ blr
+lbl_803488B8:
+/* 803488B8 00344518 34 C6 00 01 */ addic. r6, r6, 1
+/* 803488BC 0034451C 41 82 00 24 */ beq lbl_803488E0
+/* 803488C0 00344520 2C 06 00 0D */ cmpwi r6, 0xd
+/* 803488C4 00344524 41 82 00 1C */ beq lbl_803488E0
+/* 803488C8 00344528 88 A3 00 03 */ lbz r5, 3(r3)
+/* 803488CC 0034452C 88 04 00 03 */ lbz r0, 3(r4)
+/* 803488D0 00344530 7C 05 00 40 */ cmplw r5, r0
+/* 803488D4 00344534 41 82 00 0C */ beq lbl_803488E0
+/* 803488D8 00344538 38 60 00 00 */ li r3, 0
+/* 803488DC 0034453C 4E 80 00 20 */ blr
+lbl_803488E0:
+/* 803488E0 00344540 38 C6 00 01 */ addi r6, r6, 1
+/* 803488E4 00344544 38 84 00 04 */ addi r4, r4, 4
+/* 803488E8 00344548 38 63 00 04 */ addi r3, r3, 4
+/* 803488EC 0034454C 42 00 FF 54 */ bdnz lbl_80348840
+/* 803488F0 00344550 38 60 00 01 */ li r3, 1
+/* 803488F4 00344554 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Buffer.s b/asm/SDK/DWC/gamespy/gt2Buffer.s new file mode 100644 index 0000000..ab6397e --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Buffer.s @@ -0,0 +1,132 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2AllocateBuffer
+gti2AllocateBuffer:
+/* 803488F8 00344558 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803488FC 0034455C 7C 08 02 A6 */ mflr r0
+/* 80348900 00344560 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348904 00344564 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348908 00344568 7C 9F 23 78 */ mr r31, r4
+/* 8034890C 0034456C 93 C1 00 08 */ stw r30, 8(r1)
+/* 80348910 00344570 7C 7E 1B 78 */ mr r30, r3
+/* 80348914 00344574 7F E3 FB 78 */ mr r3, r31
+/* 80348918 00344578 4B FF 09 FD */ bl gsimalloc
+/* 8034891C 0034457C 2C 03 00 00 */ cmpwi r3, 0
+/* 80348920 00344580 90 7E 00 00 */ stw r3, 0(r30)
+/* 80348924 00344584 40 82 00 0C */ bne lbl_80348930
+/* 80348928 00344588 38 60 00 00 */ li r3, 0
+/* 8034892C 0034458C 48 00 00 0C */ b lbl_80348938
+lbl_80348930:
+/* 80348930 00344590 93 FE 00 04 */ stw r31, 4(r30)
+/* 80348934 00344594 38 60 00 01 */ li r3, 1
+lbl_80348938:
+/* 80348938 00344598 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034893C 0034459C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348940 003445A0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80348944 003445A4 7C 08 03 A6 */ mtlr r0
+/* 80348948 003445A8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034894C 003445AC 4E 80 00 20 */ blr
+
+.global gti2GetBufferFreeSpace
+gti2GetBufferFreeSpace:
+/* 80348950 003445B0 80 83 00 08 */ lwz r4, 8(r3)
+/* 80348954 003445B4 80 03 00 04 */ lwz r0, 4(r3)
+/* 80348958 003445B8 7C 64 00 50 */ subf r3, r4, r0
+/* 8034895C 003445BC 4E 80 00 20 */ blr
+
+.global gti2BufferWriteByte
+gti2BufferWriteByte:
+/* 80348960 003445C0 80 A3 00 08 */ lwz r5, 8(r3)
+/* 80348964 003445C4 80 C3 00 00 */ lwz r6, 0(r3)
+/* 80348968 003445C8 38 05 00 01 */ addi r0, r5, 1
+/* 8034896C 003445CC 7C 86 29 AE */ stbx r4, r6, r5
+/* 80348970 003445D0 90 03 00 08 */ stw r0, 8(r3)
+/* 80348974 003445D4 4E 80 00 20 */ blr
+
+.global gti2BufferWriteUShort
+gti2BufferWriteUShort:
+/* 80348978 003445D8 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8034897C 003445DC 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f
+/* 80348980 003445E0 80 E3 00 00 */ lwz r7, 0(r3)
+/* 80348984 003445E4 38 C5 00 01 */ addi r6, r5, 1
+/* 80348988 003445E8 7C 07 29 AE */ stbx r0, r7, r5
+/* 8034898C 003445EC 38 06 00 01 */ addi r0, r6, 1
+/* 80348990 003445F0 90 C3 00 08 */ stw r6, 8(r3)
+/* 80348994 003445F4 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80348998 003445F8 7C 85 31 AE */ stbx r4, r5, r6
+/* 8034899C 003445FC 90 03 00 08 */ stw r0, 8(r3)
+/* 803489A0 00344600 4E 80 00 20 */ blr
+
+.global gti2BufferWriteData
+gti2BufferWriteData:
+/* 803489A4 00344604 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803489A8 00344608 7C 08 02 A6 */ mflr r0
+/* 803489AC 0034460C 2C 04 00 00 */ cmpwi r4, 0
+/* 803489B0 00344610 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803489B4 00344614 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803489B8 00344618 7C BF 2B 78 */ mr r31, r5
+/* 803489BC 0034461C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 803489C0 00344620 7C 9E 23 78 */ mr r30, r4
+/* 803489C4 00344624 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 803489C8 00344628 7C 7D 1B 78 */ mr r29, r3
+/* 803489CC 0034462C 41 82 00 48 */ beq lbl_80348A14
+/* 803489D0 00344630 2C 05 00 00 */ cmpwi r5, 0
+/* 803489D4 00344634 40 82 00 08 */ bne lbl_803489DC
+/* 803489D8 00344638 48 00 00 3C */ b lbl_80348A14
+lbl_803489DC:
+/* 803489DC 0034463C 2C 05 FF FF */ cmpwi r5, -1
+/* 803489E0 00344640 40 82 00 10 */ bne lbl_803489F0
+/* 803489E4 00344644 7F C3 F3 78 */ mr r3, r30
+/* 803489E8 00344648 4B E7 E1 7D */ bl strlen
+/* 803489EC 0034464C 7C 7F 1B 78 */ mr r31, r3
+lbl_803489F0:
+/* 803489F0 00344650 80 7D 00 00 */ lwz r3, 0(r29)
+/* 803489F4 00344654 7F C4 F3 78 */ mr r4, r30
+/* 803489F8 00344658 80 1D 00 08 */ lwz r0, 8(r29)
+/* 803489FC 0034465C 7F E5 FB 78 */ mr r5, r31
+/* 80348A00 00344660 7C 63 02 14 */ add r3, r3, r0
+/* 80348A04 00344664 4B CB B5 FD */ bl memcpy
+/* 80348A08 00344668 80 1D 00 08 */ lwz r0, 8(r29)
+/* 80348A0C 0034466C 7C 00 FA 14 */ add r0, r0, r31
+/* 80348A10 00344670 90 1D 00 08 */ stw r0, 8(r29)
+lbl_80348A14:
+/* 80348A14 00344674 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80348A18 00344678 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80348A1C 0034467C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80348A20 00344680 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80348A24 00344684 7C 08 03 A6 */ mtlr r0
+/* 80348A28 00344688 38 21 00 20 */ addi r1, r1, 0x20
+/* 80348A2C 0034468C 4E 80 00 20 */ blr
+
+.global gti2BufferShorten
+gti2BufferShorten:
+/* 80348A30 00344690 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348A34 00344694 7C 08 02 A6 */ mflr r0
+/* 80348A38 00344698 2C 04 FF FF */ cmpwi r4, -1
+/* 80348A3C 0034469C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348A40 003446A0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348A44 003446A4 7C BF 2B 78 */ mr r31, r5
+/* 80348A48 003446A8 93 C1 00 08 */ stw r30, 8(r1)
+/* 80348A4C 003446AC 7C 7E 1B 78 */ mr r30, r3
+/* 80348A50 003446B0 40 82 00 0C */ bne lbl_80348A5C
+/* 80348A54 003446B4 80 03 00 08 */ lwz r0, 8(r3)
+/* 80348A58 003446B8 7C 85 00 50 */ subf r4, r5, r0
+lbl_80348A5C:
+/* 80348A5C 003446BC 80 63 00 00 */ lwz r3, 0(r3)
+/* 80348A60 003446C0 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80348A64 003446C4 7C 63 22 14 */ add r3, r3, r4
+/* 80348A68 003446C8 7C 04 00 50 */ subf r0, r4, r0
+/* 80348A6C 003446CC 7C 83 2A 14 */ add r4, r3, r5
+/* 80348A70 003446D0 7C A5 00 50 */ subf r5, r5, r0
+/* 80348A74 003446D4 4B E8 18 01 */ bl memmove
+/* 80348A78 003446D8 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80348A7C 003446DC 7C 1F 00 50 */ subf r0, r31, r0
+/* 80348A80 003446E0 90 1E 00 08 */ stw r0, 8(r30)
+/* 80348A84 003446E4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348A88 003446E8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80348A8C 003446EC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348A90 003446F0 7C 08 03 A6 */ mtlr r0
+/* 80348A94 003446F4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348A98 003446F8 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Callback.s b/asm/SDK/DWC/gamespy/gt2Callback.s new file mode 100644 index 0000000..fbb959a --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Callback.s @@ -0,0 +1,636 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2SocketErrorCallback
+gti2SocketErrorCallback:
+/* 80348A9C 003446FC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348AA0 00344700 7C 08 02 A6 */ mflr r0
+/* 80348AA4 00344704 2C 03 00 00 */ cmpwi r3, 0
+/* 80348AA8 00344708 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348AAC 0034470C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348AB0 00344710 7C 7F 1B 78 */ mr r31, r3
+/* 80348AB4 00344714 40 82 00 0C */ bne lbl_80348AC0
+/* 80348AB8 00344718 38 60 00 01 */ li r3, 1
+/* 80348ABC 0034471C 48 00 00 60 */ b lbl_80348B1C
+lbl_80348AC0:
+/* 80348AC0 00344720 81 83 00 24 */ lwz r12, 0x24(r3)
+/* 80348AC4 00344724 2C 0C 00 00 */ cmpwi r12, 0
+/* 80348AC8 00344728 40 82 00 0C */ bne lbl_80348AD4
+/* 80348ACC 0034472C 38 60 00 01 */ li r3, 1
+/* 80348AD0 00344730 48 00 00 4C */ b lbl_80348B1C
+lbl_80348AD4:
+/* 80348AD4 00344734 80 83 00 1C */ lwz r4, 0x1c(r3)
+/* 80348AD8 00344738 38 04 00 01 */ addi r0, r4, 1
+/* 80348ADC 0034473C 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 80348AE0 00344740 7D 89 03 A6 */ mtctr r12
+/* 80348AE4 00344744 4E 80 04 21 */ bctrl
+/* 80348AE8 00344748 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 80348AEC 0034474C 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 80348AF0 00344750 38 63 FF FF */ addi r3, r3, -1
+/* 80348AF4 00344754 2C 00 00 00 */ cmpwi r0, 0
+/* 80348AF8 00344758 90 7F 00 1C */ stw r3, 0x1c(r31)
+/* 80348AFC 0034475C 41 82 00 1C */ beq lbl_80348B18
+/* 80348B00 00344760 2C 03 00 00 */ cmpwi r3, 0
+/* 80348B04 00344764 40 82 00 14 */ bne lbl_80348B18
+/* 80348B08 00344768 7F E3 FB 78 */ mr r3, r31
+/* 80348B0C 0034476C 48 00 47 91 */ bl gti2CloseSocket
+/* 80348B10 00344770 38 60 00 00 */ li r3, 0
+/* 80348B14 00344774 48 00 00 08 */ b lbl_80348B1C
+lbl_80348B18:
+/* 80348B18 00344778 38 60 00 01 */ li r3, 1
+lbl_80348B1C:
+/* 80348B1C 0034477C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348B20 00344780 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348B24 00344784 7C 08 03 A6 */ mtlr r0
+/* 80348B28 00344788 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348B2C 0034478C 4E 80 00 20 */ blr
+
+.global gti2ConnectAttemptCallback
+gti2ConnectAttemptCallback:
+/* 80348B30 00344790 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348B34 00344794 7C 08 02 A6 */ mflr r0
+/* 80348B38 00344798 2C 03 00 00 */ cmpwi r3, 0
+/* 80348B3C 0034479C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348B40 003447A0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348B44 003447A4 7C 9F 23 78 */ mr r31, r4
+/* 80348B48 003447A8 93 C1 00 08 */ stw r30, 8(r1)
+/* 80348B4C 003447AC 7C 7E 1B 78 */ mr r30, r3
+/* 80348B50 003447B0 41 82 00 0C */ beq lbl_80348B5C
+/* 80348B54 003447B4 2C 04 00 00 */ cmpwi r4, 0
+/* 80348B58 003447B8 40 82 00 0C */ bne lbl_80348B64
+lbl_80348B5C:
+/* 80348B5C 003447BC 38 60 00 01 */ li r3, 1
+/* 80348B60 003447C0 48 00 00 A0 */ b lbl_80348C00
+lbl_80348B64:
+/* 80348B64 003447C4 80 03 00 20 */ lwz r0, 0x20(r3)
+/* 80348B68 003447C8 2C 00 00 00 */ cmpwi r0, 0
+/* 80348B6C 003447CC 40 82 00 0C */ bne lbl_80348B78
+/* 80348B70 003447D0 38 60 00 01 */ li r3, 1
+/* 80348B74 003447D4 48 00 00 8C */ b lbl_80348C00
+lbl_80348B78:
+/* 80348B78 003447D8 2C 09 00 00 */ cmpwi r9, 0
+/* 80348B7C 003447DC 41 82 00 0C */ beq lbl_80348B88
+/* 80348B80 003447E0 2C 08 00 00 */ cmpwi r8, 0
+/* 80348B84 003447E4 40 82 00 0C */ bne lbl_80348B90
+lbl_80348B88:
+/* 80348B88 003447E8 39 00 00 00 */ li r8, 0
+/* 80348B8C 003447EC 39 20 00 00 */ li r9, 0
+lbl_80348B90:
+/* 80348B90 003447F0 81 43 00 1C */ lwz r10, 0x1c(r3)
+/* 80348B94 003447F4 38 0A 00 01 */ addi r0, r10, 1
+/* 80348B98 003447F8 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 80348B9C 003447FC 7F C3 F3 78 */ mr r3, r30
+/* 80348BA0 00344800 81 44 00 24 */ lwz r10, 0x24(r4)
+/* 80348BA4 00344804 38 0A 00 01 */ addi r0, r10, 1
+/* 80348BA8 00344808 90 04 00 24 */ stw r0, 0x24(r4)
+/* 80348BAC 0034480C 7F E4 FB 78 */ mr r4, r31
+/* 80348BB0 00344810 81 9E 00 20 */ lwz r12, 0x20(r30)
+/* 80348BB4 00344814 7D 89 03 A6 */ mtctr r12
+/* 80348BB8 00344818 4E 80 04 21 */ bctrl
+/* 80348BBC 0034481C 80 7E 00 1C */ lwz r3, 0x1c(r30)
+/* 80348BC0 00344820 38 03 FF FF */ addi r0, r3, -1
+/* 80348BC4 00344824 90 1E 00 1C */ stw r0, 0x1c(r30)
+/* 80348BC8 00344828 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 80348BCC 0034482C 38 03 FF FF */ addi r0, r3, -1
+/* 80348BD0 00344830 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80348BD4 00344834 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 80348BD8 00344838 2C 00 00 00 */ cmpwi r0, 0
+/* 80348BDC 0034483C 41 82 00 20 */ beq lbl_80348BFC
+/* 80348BE0 00344840 80 1E 00 1C */ lwz r0, 0x1c(r30)
+/* 80348BE4 00344844 2C 00 00 00 */ cmpwi r0, 0
+/* 80348BE8 00344848 40 82 00 14 */ bne lbl_80348BFC
+/* 80348BEC 0034484C 7F C3 F3 78 */ mr r3, r30
+/* 80348BF0 00344850 48 00 46 AD */ bl gti2CloseSocket
+/* 80348BF4 00344854 38 60 00 00 */ li r3, 0
+/* 80348BF8 00344858 48 00 00 08 */ b lbl_80348C00
+lbl_80348BFC:
+/* 80348BFC 0034485C 38 60 00 01 */ li r3, 1
+lbl_80348C00:
+/* 80348C00 00344860 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348C04 00344864 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348C08 00344868 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80348C0C 0034486C 7C 08 03 A6 */ mtlr r0
+/* 80348C10 00344870 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348C14 00344874 4E 80 00 20 */ blr
+
+.global gti2ConnectedCallback
+gti2ConnectedCallback:
+/* 80348C18 00344878 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348C1C 0034487C 7C 08 02 A6 */ mflr r0
+/* 80348C20 00344880 2C 03 00 00 */ cmpwi r3, 0
+/* 80348C24 00344884 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348C28 00344888 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348C2C 0034488C 7C 7F 1B 78 */ mr r31, r3
+/* 80348C30 00344890 40 82 00 0C */ bne lbl_80348C3C
+/* 80348C34 00344894 38 60 00 01 */ li r3, 1
+/* 80348C38 00344898 48 00 00 A8 */ b lbl_80348CE0
+lbl_80348C3C:
+/* 80348C3C 0034489C 80 03 00 28 */ lwz r0, 0x28(r3)
+/* 80348C40 003448A0 90 83 00 18 */ stw r4, 0x18(r3)
+/* 80348C44 003448A4 2C 00 00 00 */ cmpwi r0, 0
+/* 80348C48 003448A8 40 82 00 0C */ bne lbl_80348C54
+/* 80348C4C 003448AC 38 60 00 01 */ li r3, 1
+/* 80348C50 003448B0 48 00 00 90 */ b lbl_80348CE0
+lbl_80348C54:
+/* 80348C54 003448B4 2C 06 00 00 */ cmpwi r6, 0
+/* 80348C58 003448B8 41 82 00 0C */ beq lbl_80348C64
+/* 80348C5C 003448BC 2C 05 00 00 */ cmpwi r5, 0
+/* 80348C60 003448C0 40 82 00 0C */ bne lbl_80348C6C
+lbl_80348C64:
+/* 80348C64 003448C4 38 A0 00 00 */ li r5, 0
+/* 80348C68 003448C8 38 C0 00 00 */ li r6, 0
+lbl_80348C6C:
+/* 80348C6C 003448CC 80 E3 00 24 */ lwz r7, 0x24(r3)
+/* 80348C70 003448D0 81 03 00 08 */ lwz r8, 8(r3)
+/* 80348C74 003448D4 38 07 00 01 */ addi r0, r7, 1
+/* 80348C78 003448D8 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80348C7C 003448DC 7F E3 FB 78 */ mr r3, r31
+/* 80348C80 003448E0 80 E8 00 1C */ lwz r7, 0x1c(r8)
+/* 80348C84 003448E4 38 07 00 01 */ addi r0, r7, 1
+/* 80348C88 003448E8 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 80348C8C 003448EC 81 9F 00 28 */ lwz r12, 0x28(r31)
+/* 80348C90 003448F0 7D 89 03 A6 */ mtctr r12
+/* 80348C94 003448F4 4E 80 04 21 */ bctrl
+/* 80348C98 003448F8 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 80348C9C 003448FC 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80348CA0 00344900 38 03 FF FF */ addi r0, r3, -1
+/* 80348CA4 00344904 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80348CA8 00344908 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80348CAC 0034490C 38 03 FF FF */ addi r0, r3, -1
+/* 80348CB0 00344910 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80348CB4 00344914 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80348CB8 00344918 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80348CBC 0034491C 2C 00 00 00 */ cmpwi r0, 0
+/* 80348CC0 00344920 41 82 00 1C */ beq lbl_80348CDC
+/* 80348CC4 00344924 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80348CC8 00344928 2C 00 00 00 */ cmpwi r0, 0
+/* 80348CCC 0034492C 40 82 00 10 */ bne lbl_80348CDC
+/* 80348CD0 00344930 48 00 45 CD */ bl gti2CloseSocket
+/* 80348CD4 00344934 38 60 00 00 */ li r3, 0
+/* 80348CD8 00344938 48 00 00 08 */ b lbl_80348CE0
+lbl_80348CDC:
+/* 80348CDC 0034493C 38 60 00 01 */ li r3, 1
+lbl_80348CE0:
+/* 80348CE0 00344940 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348CE4 00344944 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348CE8 00344948 7C 08 03 A6 */ mtlr r0
+/* 80348CEC 0034494C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348CF0 00344950 4E 80 00 20 */ blr
+
+.global gti2ReceivedCallback
+gti2ReceivedCallback:
+/* 80348CF4 00344954 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348CF8 00344958 7C 08 02 A6 */ mflr r0
+/* 80348CFC 0034495C 2C 03 00 00 */ cmpwi r3, 0
+/* 80348D00 00344960 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348D04 00344964 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348D08 00344968 7C 7F 1B 78 */ mr r31, r3
+/* 80348D0C 0034496C 40 82 00 0C */ bne lbl_80348D18
+/* 80348D10 00344970 38 60 00 01 */ li r3, 1
+/* 80348D14 00344974 48 00 00 A4 */ b lbl_80348DB8
+lbl_80348D18:
+/* 80348D18 00344978 80 03 00 2C */ lwz r0, 0x2c(r3)
+/* 80348D1C 0034497C 2C 00 00 00 */ cmpwi r0, 0
+/* 80348D20 00344980 40 82 00 0C */ bne lbl_80348D2C
+/* 80348D24 00344984 38 60 00 01 */ li r3, 1
+/* 80348D28 00344988 48 00 00 90 */ b lbl_80348DB8
+lbl_80348D2C:
+/* 80348D2C 0034498C 2C 05 00 00 */ cmpwi r5, 0
+/* 80348D30 00344990 41 82 00 0C */ beq lbl_80348D3C
+/* 80348D34 00344994 2C 04 00 00 */ cmpwi r4, 0
+/* 80348D38 00344998 40 82 00 0C */ bne lbl_80348D44
+lbl_80348D3C:
+/* 80348D3C 0034499C 38 80 00 00 */ li r4, 0
+/* 80348D40 003449A0 38 A0 00 00 */ li r5, 0
+lbl_80348D44:
+/* 80348D44 003449A4 80 E3 00 24 */ lwz r7, 0x24(r3)
+/* 80348D48 003449A8 81 03 00 08 */ lwz r8, 8(r3)
+/* 80348D4C 003449AC 38 07 00 01 */ addi r0, r7, 1
+/* 80348D50 003449B0 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80348D54 003449B4 7F E3 FB 78 */ mr r3, r31
+/* 80348D58 003449B8 80 E8 00 1C */ lwz r7, 0x1c(r8)
+/* 80348D5C 003449BC 38 07 00 01 */ addi r0, r7, 1
+/* 80348D60 003449C0 90 08 00 1C */ stw r0, 0x1c(r8)
+/* 80348D64 003449C4 81 9F 00 2C */ lwz r12, 0x2c(r31)
+/* 80348D68 003449C8 7D 89 03 A6 */ mtctr r12
+/* 80348D6C 003449CC 4E 80 04 21 */ bctrl
+/* 80348D70 003449D0 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 80348D74 003449D4 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80348D78 003449D8 38 03 FF FF */ addi r0, r3, -1
+/* 80348D7C 003449DC 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80348D80 003449E0 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80348D84 003449E4 38 03 FF FF */ addi r0, r3, -1
+/* 80348D88 003449E8 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80348D8C 003449EC 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80348D90 003449F0 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80348D94 003449F4 2C 00 00 00 */ cmpwi r0, 0
+/* 80348D98 003449F8 41 82 00 1C */ beq lbl_80348DB4
+/* 80348D9C 003449FC 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80348DA0 00344A00 2C 00 00 00 */ cmpwi r0, 0
+/* 80348DA4 00344A04 40 82 00 10 */ bne lbl_80348DB4
+/* 80348DA8 00344A08 48 00 44 F5 */ bl gti2CloseSocket
+/* 80348DAC 00344A0C 38 60 00 00 */ li r3, 0
+/* 80348DB0 00344A10 48 00 00 08 */ b lbl_80348DB8
+lbl_80348DB4:
+/* 80348DB4 00344A14 38 60 00 01 */ li r3, 1
+lbl_80348DB8:
+/* 80348DB8 00344A18 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348DBC 00344A1C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348DC0 00344A20 7C 08 03 A6 */ mtlr r0
+/* 80348DC4 00344A24 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348DC8 00344A28 4E 80 00 20 */ blr
+
+.global gti2ClosedCallback
+gti2ClosedCallback:
+/* 80348DCC 00344A2C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348DD0 00344A30 7C 08 02 A6 */ mflr r0
+/* 80348DD4 00344A34 2C 03 00 00 */ cmpwi r3, 0
+/* 80348DD8 00344A38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348DDC 00344A3C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348DE0 00344A40 7C 7F 1B 78 */ mr r31, r3
+/* 80348DE4 00344A44 40 82 00 0C */ bne lbl_80348DF0
+/* 80348DE8 00344A48 38 60 00 01 */ li r3, 1
+/* 80348DEC 00344A4C 48 00 00 88 */ b lbl_80348E74
+lbl_80348DF0:
+/* 80348DF0 00344A50 80 03 00 30 */ lwz r0, 0x30(r3)
+/* 80348DF4 00344A54 2C 00 00 00 */ cmpwi r0, 0
+/* 80348DF8 00344A58 40 82 00 0C */ bne lbl_80348E04
+/* 80348DFC 00344A5C 38 60 00 01 */ li r3, 1
+/* 80348E00 00344A60 48 00 00 74 */ b lbl_80348E74
+lbl_80348E04:
+/* 80348E04 00344A64 80 A3 00 24 */ lwz r5, 0x24(r3)
+/* 80348E08 00344A68 80 C3 00 08 */ lwz r6, 8(r3)
+/* 80348E0C 00344A6C 38 05 00 01 */ addi r0, r5, 1
+/* 80348E10 00344A70 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80348E14 00344A74 80 A6 00 1C */ lwz r5, 0x1c(r6)
+/* 80348E18 00344A78 38 05 00 01 */ addi r0, r5, 1
+/* 80348E1C 00344A7C 90 06 00 1C */ stw r0, 0x1c(r6)
+/* 80348E20 00344A80 81 83 00 30 */ lwz r12, 0x30(r3)
+/* 80348E24 00344A84 7D 89 03 A6 */ mtctr r12
+/* 80348E28 00344A88 4E 80 04 21 */ bctrl
+/* 80348E2C 00344A8C 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 80348E30 00344A90 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80348E34 00344A94 38 03 FF FF */ addi r0, r3, -1
+/* 80348E38 00344A98 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80348E3C 00344A9C 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80348E40 00344AA0 38 03 FF FF */ addi r0, r3, -1
+/* 80348E44 00344AA4 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80348E48 00344AA8 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80348E4C 00344AAC 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80348E50 00344AB0 2C 00 00 00 */ cmpwi r0, 0
+/* 80348E54 00344AB4 41 82 00 1C */ beq lbl_80348E70
+/* 80348E58 00344AB8 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80348E5C 00344ABC 2C 00 00 00 */ cmpwi r0, 0
+/* 80348E60 00344AC0 40 82 00 10 */ bne lbl_80348E70
+/* 80348E64 00344AC4 48 00 44 39 */ bl gti2CloseSocket
+/* 80348E68 00344AC8 38 60 00 00 */ li r3, 0
+/* 80348E6C 00344ACC 48 00 00 08 */ b lbl_80348E74
+lbl_80348E70:
+/* 80348E70 00344AD0 38 60 00 01 */ li r3, 1
+lbl_80348E74:
+/* 80348E74 00344AD4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348E78 00344AD8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348E7C 00344ADC 7C 08 03 A6 */ mtlr r0
+/* 80348E80 00344AE0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348E84 00344AE4 4E 80 00 20 */ blr
+
+.global gti2PingCallback
+gti2PingCallback:
+/* 80348E88 00344AE8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80348E8C 00344AEC 7C 08 02 A6 */ mflr r0
+/* 80348E90 00344AF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80348E94 00344AF4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80348E98 00344AF8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80348E9C 00344AFC 7C 7F 1B 78 */ mr r31, r3
+/* 80348EA0 00344B00 40 82 00 0C */ bne lbl_80348EAC
+/* 80348EA4 00344B04 38 60 00 01 */ li r3, 1
+/* 80348EA8 00344B08 48 00 00 88 */ b lbl_80348F30
+lbl_80348EAC:
+/* 80348EAC 00344B0C 80 03 00 34 */ lwz r0, 0x34(r3)
+/* 80348EB0 00344B10 2C 00 00 00 */ cmpwi r0, 0
+/* 80348EB4 00344B14 40 82 00 0C */ bne lbl_80348EC0
+/* 80348EB8 00344B18 38 60 00 01 */ li r3, 1
+/* 80348EBC 00344B1C 48 00 00 74 */ b lbl_80348F30
+lbl_80348EC0:
+/* 80348EC0 00344B20 80 A3 00 24 */ lwz r5, 0x24(r3)
+/* 80348EC4 00344B24 80 C3 00 08 */ lwz r6, 8(r3)
+/* 80348EC8 00344B28 38 05 00 01 */ addi r0, r5, 1
+/* 80348ECC 00344B2C 90 03 00 24 */ stw r0, 0x24(r3)
+/* 80348ED0 00344B30 80 A6 00 1C */ lwz r5, 0x1c(r6)
+/* 80348ED4 00344B34 38 05 00 01 */ addi r0, r5, 1
+/* 80348ED8 00344B38 90 06 00 1C */ stw r0, 0x1c(r6)
+/* 80348EDC 00344B3C 81 83 00 34 */ lwz r12, 0x34(r3)
+/* 80348EE0 00344B40 7D 89 03 A6 */ mtctr r12
+/* 80348EE4 00344B44 4E 80 04 21 */ bctrl
+/* 80348EE8 00344B48 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 80348EEC 00344B4C 80 9F 00 08 */ lwz r4, 8(r31)
+/* 80348EF0 00344B50 38 03 FF FF */ addi r0, r3, -1
+/* 80348EF4 00344B54 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 80348EF8 00344B58 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80348EFC 00344B5C 38 03 FF FF */ addi r0, r3, -1
+/* 80348F00 00344B60 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80348F04 00344B64 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80348F08 00344B68 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80348F0C 00344B6C 2C 00 00 00 */ cmpwi r0, 0
+/* 80348F10 00344B70 41 82 00 1C */ beq lbl_80348F2C
+/* 80348F14 00344B74 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80348F18 00344B78 2C 00 00 00 */ cmpwi r0, 0
+/* 80348F1C 00344B7C 40 82 00 10 */ bne lbl_80348F2C
+/* 80348F20 00344B80 48 00 43 7D */ bl gti2CloseSocket
+/* 80348F24 00344B84 38 60 00 00 */ li r3, 0
+/* 80348F28 00344B88 48 00 00 08 */ b lbl_80348F30
+lbl_80348F2C:
+/* 80348F2C 00344B8C 38 60 00 01 */ li r3, 1
+lbl_80348F30:
+/* 80348F30 00344B90 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80348F34 00344B94 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80348F38 00344B98 7C 08 03 A6 */ mtlr r0
+/* 80348F3C 00344B9C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80348F40 00344BA0 4E 80 00 20 */ blr
+
+.global gti2SendFilterCallback
+gti2SendFilterCallback:
+/* 80348F44 00344BA4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80348F48 00344BA8 7C 08 02 A6 */ mflr r0
+/* 80348F4C 00344BAC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80348F50 00344BB0 39 61 00 20 */ addi r11, r1, 0x20
+/* 80348F54 00344BB4 4B E7 E1 D5 */ bl _savegpr_27
+/* 80348F58 00344BB8 2C 03 00 00 */ cmpwi r3, 0
+/* 80348F5C 00344BBC 7C 7B 1B 78 */ mr r27, r3
+/* 80348F60 00344BC0 7C 9C 23 78 */ mr r28, r4
+/* 80348F64 00344BC4 7C BD 2B 78 */ mr r29, r5
+/* 80348F68 00344BC8 7C DE 33 78 */ mr r30, r6
+/* 80348F6C 00344BCC 7C FF 3B 78 */ mr r31, r7
+/* 80348F70 00344BD0 40 82 00 0C */ bne lbl_80348F7C
+/* 80348F74 00344BD4 38 60 00 01 */ li r3, 1
+/* 80348F78 00344BD8 48 00 00 BC */ b lbl_80349034
+lbl_80348F7C:
+/* 80348F7C 00344BDC 80 63 00 98 */ lwz r3, 0x98(r3)
+/* 80348F80 00344BE0 4B FE CF 71 */ bl ArrayNth
+/* 80348F84 00344BE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80348F88 00344BE8 7C 6A 1B 78 */ mr r10, r3
+/* 80348F8C 00344BEC 40 82 00 0C */ bne lbl_80348F98
+/* 80348F90 00344BF0 38 60 00 01 */ li r3, 1
+/* 80348F94 00344BF4 48 00 00 A0 */ b lbl_80349034
+lbl_80348F98:
+/* 80348F98 00344BF8 2C 1E 00 00 */ cmpwi r30, 0
+/* 80348F9C 00344BFC 41 82 00 0C */ beq lbl_80348FA8
+/* 80348FA0 00344C00 2C 1D 00 00 */ cmpwi r29, 0
+/* 80348FA4 00344C04 40 82 00 0C */ bne lbl_80348FB0
+lbl_80348FA8:
+/* 80348FA8 00344C08 3B A0 00 00 */ li r29, 0
+/* 80348FAC 00344C0C 3B C0 00 00 */ li r30, 0
+lbl_80348FB0:
+/* 80348FB0 00344C10 80 BB 00 24 */ lwz r5, 0x24(r27)
+/* 80348FB4 00344C14 7F 63 DB 78 */ mr r3, r27
+/* 80348FB8 00344C18 81 3B 00 08 */ lwz r9, 8(r27)
+/* 80348FBC 00344C1C 7F 84 E3 78 */ mr r4, r28
+/* 80348FC0 00344C20 38 05 00 01 */ addi r0, r5, 1
+/* 80348FC4 00344C24 7F A5 EB 78 */ mr r5, r29
+/* 80348FC8 00344C28 90 1B 00 24 */ stw r0, 0x24(r27)
+/* 80348FCC 00344C2C 7F C6 F3 78 */ mr r6, r30
+/* 80348FD0 00344C30 7F E7 FB 78 */ mr r7, r31
+/* 80348FD4 00344C34 81 09 00 1C */ lwz r8, 0x1c(r9)
+/* 80348FD8 00344C38 38 08 00 01 */ addi r0, r8, 1
+/* 80348FDC 00344C3C 90 09 00 1C */ stw r0, 0x1c(r9)
+/* 80348FE0 00344C40 81 8A 00 00 */ lwz r12, 0(r10)
+/* 80348FE4 00344C44 7D 89 03 A6 */ mtctr r12
+/* 80348FE8 00344C48 4E 80 04 21 */ bctrl
+/* 80348FEC 00344C4C 80 7B 00 24 */ lwz r3, 0x24(r27)
+/* 80348FF0 00344C50 80 9B 00 08 */ lwz r4, 8(r27)
+/* 80348FF4 00344C54 38 03 FF FF */ addi r0, r3, -1
+/* 80348FF8 00344C58 90 1B 00 24 */ stw r0, 0x24(r27)
+/* 80348FFC 00344C5C 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80349000 00344C60 38 03 FF FF */ addi r0, r3, -1
+/* 80349004 00344C64 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80349008 00344C68 80 7B 00 08 */ lwz r3, 8(r27)
+/* 8034900C 00344C6C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80349010 00344C70 2C 00 00 00 */ cmpwi r0, 0
+/* 80349014 00344C74 41 82 00 1C */ beq lbl_80349030
+/* 80349018 00344C78 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 8034901C 00344C7C 2C 00 00 00 */ cmpwi r0, 0
+/* 80349020 00344C80 40 82 00 10 */ bne lbl_80349030
+/* 80349024 00344C84 48 00 42 79 */ bl gti2CloseSocket
+/* 80349028 00344C88 38 60 00 00 */ li r3, 0
+/* 8034902C 00344C8C 48 00 00 08 */ b lbl_80349034
+lbl_80349030:
+/* 80349030 00344C90 38 60 00 01 */ li r3, 1
+lbl_80349034:
+/* 80349034 00344C94 39 61 00 20 */ addi r11, r1, 0x20
+/* 80349038 00344C98 4B E7 E1 3D */ bl _restgpr_27
+/* 8034903C 00344C9C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80349040 00344CA0 7C 08 03 A6 */ mtlr r0
+/* 80349044 00344CA4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80349048 00344CA8 4E 80 00 20 */ blr
+
+.global gti2ReceiveFilterCallback
+gti2ReceiveFilterCallback:
+/* 8034904C 00344CAC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80349050 00344CB0 7C 08 02 A6 */ mflr r0
+/* 80349054 00344CB4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80349058 00344CB8 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034905C 00344CBC 4B E7 E0 CD */ bl _savegpr_27
+/* 80349060 00344CC0 2C 03 00 00 */ cmpwi r3, 0
+/* 80349064 00344CC4 7C 7B 1B 78 */ mr r27, r3
+/* 80349068 00344CC8 7C 9C 23 78 */ mr r28, r4
+/* 8034906C 00344CCC 7C BD 2B 78 */ mr r29, r5
+/* 80349070 00344CD0 7C DE 33 78 */ mr r30, r6
+/* 80349074 00344CD4 7C FF 3B 78 */ mr r31, r7
+/* 80349078 00344CD8 40 82 00 0C */ bne lbl_80349084
+/* 8034907C 00344CDC 38 60 00 01 */ li r3, 1
+/* 80349080 00344CE0 48 00 00 BC */ b lbl_8034913C
+lbl_80349084:
+/* 80349084 00344CE4 80 63 00 9C */ lwz r3, 0x9c(r3)
+/* 80349088 00344CE8 4B FE CE 69 */ bl ArrayNth
+/* 8034908C 00344CEC 2C 03 00 00 */ cmpwi r3, 0
+/* 80349090 00344CF0 7C 6A 1B 78 */ mr r10, r3
+/* 80349094 00344CF4 40 82 00 0C */ bne lbl_803490A0
+/* 80349098 00344CF8 38 60 00 01 */ li r3, 1
+/* 8034909C 00344CFC 48 00 00 A0 */ b lbl_8034913C
+lbl_803490A0:
+/* 803490A0 00344D00 2C 1E 00 00 */ cmpwi r30, 0
+/* 803490A4 00344D04 41 82 00 0C */ beq lbl_803490B0
+/* 803490A8 00344D08 2C 1D 00 00 */ cmpwi r29, 0
+/* 803490AC 00344D0C 40 82 00 0C */ bne lbl_803490B8
+lbl_803490B0:
+/* 803490B0 00344D10 3B A0 00 00 */ li r29, 0
+/* 803490B4 00344D14 3B C0 00 00 */ li r30, 0
+lbl_803490B8:
+/* 803490B8 00344D18 80 BB 00 24 */ lwz r5, 0x24(r27)
+/* 803490BC 00344D1C 7F 63 DB 78 */ mr r3, r27
+/* 803490C0 00344D20 81 3B 00 08 */ lwz r9, 8(r27)
+/* 803490C4 00344D24 7F 84 E3 78 */ mr r4, r28
+/* 803490C8 00344D28 38 05 00 01 */ addi r0, r5, 1
+/* 803490CC 00344D2C 7F A5 EB 78 */ mr r5, r29
+/* 803490D0 00344D30 90 1B 00 24 */ stw r0, 0x24(r27)
+/* 803490D4 00344D34 7F C6 F3 78 */ mr r6, r30
+/* 803490D8 00344D38 7F E7 FB 78 */ mr r7, r31
+/* 803490DC 00344D3C 81 09 00 1C */ lwz r8, 0x1c(r9)
+/* 803490E0 00344D40 38 08 00 01 */ addi r0, r8, 1
+/* 803490E4 00344D44 90 09 00 1C */ stw r0, 0x1c(r9)
+/* 803490E8 00344D48 81 8A 00 00 */ lwz r12, 0(r10)
+/* 803490EC 00344D4C 7D 89 03 A6 */ mtctr r12
+/* 803490F0 00344D50 4E 80 04 21 */ bctrl
+/* 803490F4 00344D54 80 7B 00 24 */ lwz r3, 0x24(r27)
+/* 803490F8 00344D58 80 9B 00 08 */ lwz r4, 8(r27)
+/* 803490FC 00344D5C 38 03 FF FF */ addi r0, r3, -1
+/* 80349100 00344D60 90 1B 00 24 */ stw r0, 0x24(r27)
+/* 80349104 00344D64 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 80349108 00344D68 38 03 FF FF */ addi r0, r3, -1
+/* 8034910C 00344D6C 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80349110 00344D70 80 7B 00 08 */ lwz r3, 8(r27)
+/* 80349114 00344D74 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80349118 00344D78 2C 00 00 00 */ cmpwi r0, 0
+/* 8034911C 00344D7C 41 82 00 1C */ beq lbl_80349138
+/* 80349120 00344D80 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80349124 00344D84 2C 00 00 00 */ cmpwi r0, 0
+/* 80349128 00344D88 40 82 00 10 */ bne lbl_80349138
+/* 8034912C 00344D8C 48 00 41 71 */ bl gti2CloseSocket
+/* 80349130 00344D90 38 60 00 00 */ li r3, 0
+/* 80349134 00344D94 48 00 00 08 */ b lbl_8034913C
+lbl_80349138:
+/* 80349138 00344D98 38 60 00 01 */ li r3, 1
+lbl_8034913C:
+/* 8034913C 00344D9C 39 61 00 20 */ addi r11, r1, 0x20
+/* 80349140 00344DA0 4B E7 E0 35 */ bl _restgpr_27
+/* 80349144 00344DA4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80349148 00344DA8 7C 08 03 A6 */ mtlr r0
+/* 8034914C 00344DAC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80349150 00344DB0 4E 80 00 20 */ blr
+
+.global gti2DumpCallback
+gti2DumpCallback:
+/* 80349154 00344DB4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80349158 00344DB8 7C 08 02 A6 */ mflr r0
+/* 8034915C 00344DBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80349160 00344DC0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80349164 00344DC4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80349168 00344DC8 7C 9F 23 78 */ mr r31, r4
+/* 8034916C 00344DCC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80349170 00344DD0 7C 7E 1B 78 */ mr r30, r3
+/* 80349174 00344DD4 40 82 00 0C */ bne lbl_80349180
+/* 80349178 00344DD8 38 60 00 01 */ li r3, 1
+/* 8034917C 00344DDC 48 00 00 BC */ b lbl_80349238
+lbl_80349180:
+/* 80349180 00344DE0 2C 0A 00 00 */ cmpwi r10, 0
+/* 80349184 00344DE4 41 82 00 0C */ beq lbl_80349190
+/* 80349188 00344DE8 81 83 00 28 */ lwz r12, 0x28(r3)
+/* 8034918C 00344DEC 48 00 00 08 */ b lbl_80349194
+lbl_80349190:
+/* 80349190 00344DF0 81 83 00 2C */ lwz r12, 0x2c(r3)
+lbl_80349194:
+/* 80349194 00344DF4 2C 0C 00 00 */ cmpwi r12, 0
+/* 80349198 00344DF8 40 82 00 0C */ bne lbl_803491A4
+/* 8034919C 00344DFC 38 60 00 01 */ li r3, 1
+/* 803491A0 00344E00 48 00 00 98 */ b lbl_80349238
+lbl_803491A4:
+/* 803491A4 00344E04 2C 09 00 00 */ cmpwi r9, 0
+/* 803491A8 00344E08 41 82 00 0C */ beq lbl_803491B4
+/* 803491AC 00344E0C 2C 08 00 00 */ cmpwi r8, 0
+/* 803491B0 00344E10 40 82 00 0C */ bne lbl_803491BC
+lbl_803491B4:
+/* 803491B4 00344E14 39 00 00 00 */ li r8, 0
+/* 803491B8 00344E18 39 20 00 00 */ li r9, 0
+lbl_803491BC:
+/* 803491BC 00344E1C 81 43 00 1C */ lwz r10, 0x1c(r3)
+/* 803491C0 00344E20 2C 04 00 00 */ cmpwi r4, 0
+/* 803491C4 00344E24 38 0A 00 01 */ addi r0, r10, 1
+/* 803491C8 00344E28 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 803491CC 00344E2C 41 82 00 10 */ beq lbl_803491DC
+/* 803491D0 00344E30 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 803491D4 00344E34 38 03 00 01 */ addi r0, r3, 1
+/* 803491D8 00344E38 90 04 00 24 */ stw r0, 0x24(r4)
+lbl_803491DC:
+/* 803491DC 00344E3C 7F C3 F3 78 */ mr r3, r30
+/* 803491E0 00344E40 7F E4 FB 78 */ mr r4, r31
+/* 803491E4 00344E44 7D 89 03 A6 */ mtctr r12
+/* 803491E8 00344E48 4E 80 04 21 */ bctrl
+/* 803491EC 00344E4C 80 7E 00 1C */ lwz r3, 0x1c(r30)
+/* 803491F0 00344E50 2C 1F 00 00 */ cmpwi r31, 0
+/* 803491F4 00344E54 38 03 FF FF */ addi r0, r3, -1
+/* 803491F8 00344E58 90 1E 00 1C */ stw r0, 0x1c(r30)
+/* 803491FC 00344E5C 41 82 00 10 */ beq lbl_8034920C
+/* 80349200 00344E60 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 80349204 00344E64 38 03 FF FF */ addi r0, r3, -1
+/* 80349208 00344E68 90 1F 00 24 */ stw r0, 0x24(r31)
+lbl_8034920C:
+/* 8034920C 00344E6C 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 80349210 00344E70 2C 00 00 00 */ cmpwi r0, 0
+/* 80349214 00344E74 41 82 00 20 */ beq lbl_80349234
+/* 80349218 00344E78 80 1E 00 1C */ lwz r0, 0x1c(r30)
+/* 8034921C 00344E7C 2C 00 00 00 */ cmpwi r0, 0
+/* 80349220 00344E80 40 82 00 14 */ bne lbl_80349234
+/* 80349224 00344E84 7F C3 F3 78 */ mr r3, r30
+/* 80349228 00344E88 48 00 40 75 */ bl gti2CloseSocket
+/* 8034922C 00344E8C 38 60 00 00 */ li r3, 0
+/* 80349230 00344E90 48 00 00 08 */ b lbl_80349238
+lbl_80349234:
+/* 80349234 00344E94 38 60 00 01 */ li r3, 1
+lbl_80349238:
+/* 80349238 00344E98 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034923C 00344E9C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80349240 00344EA0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80349244 00344EA4 7C 08 03 A6 */ mtlr r0
+/* 80349248 00344EA8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034924C 00344EAC 4E 80 00 20 */ blr
+
+.global gti2UnrecognizedMessageCallback
+gti2UnrecognizedMessageCallback:
+/* 80349250 00344EB0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80349254 00344EB4 7C 08 02 A6 */ mflr r0
+/* 80349258 00344EB8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034925C 00344EBC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80349260 00344EC0 38 00 00 00 */ li r0, 0
+/* 80349264 00344EC4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80349268 00344EC8 7D 1F 43 78 */ mr r31, r8
+/* 8034926C 00344ECC 93 C1 00 08 */ stw r30, 8(r1)
+/* 80349270 00344ED0 7C 7E 1B 78 */ mr r30, r3
+/* 80349274 00344ED4 90 08 00 00 */ stw r0, 0(r8)
+/* 80349278 00344ED8 40 82 00 0C */ bne lbl_80349284
+/* 8034927C 00344EDC 38 60 00 01 */ li r3, 1
+/* 80349280 00344EE0 48 00 00 84 */ b lbl_80349304
+lbl_80349284:
+/* 80349284 00344EE4 80 03 00 30 */ lwz r0, 0x30(r3)
+/* 80349288 00344EE8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034928C 00344EEC 40 82 00 0C */ bne lbl_80349298
+/* 80349290 00344EF0 38 60 00 01 */ li r3, 1
+/* 80349294 00344EF4 48 00 00 70 */ b lbl_80349304
+lbl_80349298:
+/* 80349298 00344EF8 2C 07 00 00 */ cmpwi r7, 0
+/* 8034929C 00344EFC 41 82 00 0C */ beq lbl_803492A8
+/* 803492A0 00344F00 2C 06 00 00 */ cmpwi r6, 0
+/* 803492A4 00344F04 40 82 00 0C */ bne lbl_803492B0
+lbl_803492A8:
+/* 803492A8 00344F08 38 C0 00 00 */ li r6, 0
+/* 803492AC 00344F0C 38 E0 00 00 */ li r7, 0
+lbl_803492B0:
+/* 803492B0 00344F10 81 03 00 1C */ lwz r8, 0x1c(r3)
+/* 803492B4 00344F14 81 9E 00 30 */ lwz r12, 0x30(r30)
+/* 803492B8 00344F18 38 08 00 01 */ addi r0, r8, 1
+/* 803492BC 00344F1C 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 803492C0 00344F20 7F C3 F3 78 */ mr r3, r30
+/* 803492C4 00344F24 7D 89 03 A6 */ mtctr r12
+/* 803492C8 00344F28 4E 80 04 21 */ bctrl
+/* 803492CC 00344F2C 90 7F 00 00 */ stw r3, 0(r31)
+/* 803492D0 00344F30 80 7E 00 1C */ lwz r3, 0x1c(r30)
+/* 803492D4 00344F34 80 1E 00 14 */ lwz r0, 0x14(r30)
+/* 803492D8 00344F38 38 63 FF FF */ addi r3, r3, -1
+/* 803492DC 00344F3C 2C 00 00 00 */ cmpwi r0, 0
+/* 803492E0 00344F40 90 7E 00 1C */ stw r3, 0x1c(r30)
+/* 803492E4 00344F44 41 82 00 1C */ beq lbl_80349300
+/* 803492E8 00344F48 2C 03 00 00 */ cmpwi r3, 0
+/* 803492EC 00344F4C 40 82 00 14 */ bne lbl_80349300
+/* 803492F0 00344F50 7F C3 F3 78 */ mr r3, r30
+/* 803492F4 00344F54 48 00 3F A9 */ bl gti2CloseSocket
+/* 803492F8 00344F58 38 60 00 00 */ li r3, 0
+/* 803492FC 00344F5C 48 00 00 08 */ b lbl_80349304
+lbl_80349300:
+/* 80349300 00344F60 38 60 00 01 */ li r3, 1
+lbl_80349304:
+/* 80349304 00344F64 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80349308 00344F68 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034930C 00344F6C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80349310 00344F70 7C 08 03 A6 */ mtlr r0
+/* 80349314 00344F74 38 21 00 10 */ addi r1, r1, 0x10
+/* 80349318 00344F78 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Connection.s b/asm/SDK/DWC/gamespy/gt2Connection.s new file mode 100644 index 0000000..878a4a4 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Connection.s @@ -0,0 +1,517 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2NewOutgoingConnection
+gti2NewOutgoingConnection:
+/* 8034931C 00344F7C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80349320 00344F80 7C 08 02 A6 */ mflr r0
+/* 80349324 00344F84 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80349328 00344F88 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034932C 00344F8C 7C 9F 23 78 */ mr r31, r4
+/* 80349330 00344F90 48 00 3F D9 */ bl gti2NewSocketConnection
+/* 80349334 00344F94 2C 03 00 00 */ cmpwi r3, 0
+/* 80349338 00344F98 41 82 00 08 */ beq lbl_80349340
+/* 8034933C 00344F9C 48 00 00 20 */ b lbl_8034935C
+lbl_80349340:
+/* 80349340 00344FA0 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80349344 00344FA4 38 A0 00 00 */ li r5, 0
+/* 80349348 00344FA8 38 00 00 01 */ li r0, 1
+/* 8034934C 00344FAC 38 60 00 00 */ li r3, 0
+/* 80349350 00344FB0 90 A4 00 0C */ stw r5, 0xc(r4)
+/* 80349354 00344FB4 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80349358 00344FB8 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_8034935C:
+/* 8034935C 00344FBC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80349360 00344FC0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80349364 00344FC4 7C 08 03 A6 */ mtlr r0
+/* 80349368 00344FC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034936C 00344FCC 4E 80 00 20 */ blr
+
+.global gti2NewIncomingConnection
+gti2NewIncomingConnection:
+/* 80349370 00344FD0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80349374 00344FD4 7C 08 02 A6 */ mflr r0
+/* 80349378 00344FD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034937C 00344FDC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80349380 00344FE0 7C 9F 23 78 */ mr r31, r4
+/* 80349384 00344FE4 48 00 3F 85 */ bl gti2NewSocketConnection
+/* 80349388 00344FE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034938C 00344FEC 41 82 00 08 */ beq lbl_80349394
+/* 80349390 00344FF0 48 00 00 20 */ b lbl_803493B0
+lbl_80349394:
+/* 80349394 00344FF4 80 9F 00 00 */ lwz r4, 0(r31)
+/* 80349398 00344FF8 38 A0 00 02 */ li r5, 2
+/* 8034939C 00344FFC 38 00 00 00 */ li r0, 0
+/* 803493A0 00345000 38 60 00 00 */ li r3, 0
+/* 803493A4 00345004 90 A4 00 0C */ stw r5, 0xc(r4)
+/* 803493A8 00345008 80 9F 00 00 */ lwz r4, 0(r31)
+/* 803493AC 0034500C 90 04 00 10 */ stw r0, 0x10(r4)
+lbl_803493B0:
+/* 803493B0 00345010 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803493B4 00345014 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803493B8 00345018 7C 08 03 A6 */ mtlr r0
+/* 803493BC 0034501C 38 21 00 10 */ addi r1, r1, 0x10
+/* 803493C0 00345020 4E 80 00 20 */ blr
+
+.global gti2StartConnectionAttempt
+gti2StartConnectionAttempt:
+/* 803493C4 00345024 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803493C8 00345028 7C 08 02 A6 */ mflr r0
+/* 803493CC 0034502C 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803493D0 00345030 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 803493D4 00345034 7C DF 33 78 */ mr r31, r6
+/* 803493D8 00345038 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 803493DC 0034503C 7C 7E 1B 78 */ mr r30, r3
+/* 803493E0 00345040 38 61 00 08 */ addi r3, r1, 8
+/* 803493E4 00345044 90 81 00 08 */ stw r4, 8(r1)
+/* 803493E8 00345048 38 81 00 0C */ addi r4, r1, 0xc
+/* 803493EC 0034504C 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 803493F0 00345050 48 00 49 E5 */ bl gti2MessageCheck
+/* 803493F4 00345054 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 803493F8 00345058 2C 03 00 00 */ cmpwi r3, 0
+/* 803493FC 0034505C 40 81 00 30 */ ble lbl_8034942C
+/* 80349400 00345060 4B FE FF 15 */ bl gsimalloc
+/* 80349404 00345064 2C 03 00 00 */ cmpwi r3, 0
+/* 80349408 00345068 90 7E 00 38 */ stw r3, 0x38(r30)
+/* 8034940C 0034506C 40 82 00 0C */ bne lbl_80349418
+/* 80349410 00345070 38 60 00 01 */ li r3, 1
+/* 80349414 00345074 48 00 00 6C */ b lbl_80349480
+lbl_80349418:
+/* 80349418 00345078 80 81 00 08 */ lwz r4, 8(r1)
+/* 8034941C 0034507C 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 80349420 00345080 4B CB AB E1 */ bl memcpy
+/* 80349424 00345084 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80349428 00345088 90 1E 00 3C */ stw r0, 0x3c(r30)
+lbl_8034942C:
+/* 8034942C 0034508C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80349430 00345090 41 82 00 24 */ beq lbl_80349454
+/* 80349434 00345094 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80349438 00345098 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8034943C 0034509C 90 7E 00 28 */ stw r3, 0x28(r30)
+/* 80349440 003450A0 90 1E 00 2C */ stw r0, 0x2c(r30)
+/* 80349444 003450A4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80349448 003450A8 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8034944C 003450AC 90 7E 00 30 */ stw r3, 0x30(r30)
+/* 80349450 003450B0 90 1E 00 34 */ stw r0, 0x34(r30)
+lbl_80349454:
+/* 80349454 003450B4 38 61 00 10 */ addi r3, r1, 0x10
+/* 80349458 003450B8 4B FF F0 DD */ bl gti2GetChallenge
+/* 8034945C 003450BC 38 7E 00 68 */ addi r3, r30, 0x68
+/* 80349460 003450C0 38 81 00 10 */ addi r4, r1, 0x10
+/* 80349464 003450C4 4B FF F1 E1 */ bl gti2GetResponse
+/* 80349468 003450C8 7F C3 F3 78 */ mr r3, r30
+/* 8034946C 003450CC 38 81 00 10 */ addi r4, r1, 0x10
+/* 80349470 003450D0 48 00 30 E9 */ bl gti2SendClientChallenge
+/* 80349474 003450D4 38 00 00 00 */ li r0, 0
+/* 80349478 003450D8 38 60 00 00 */ li r3, 0
+/* 8034947C 003450DC 90 1E 00 0C */ stw r0, 0xc(r30)
+lbl_80349480:
+/* 80349480 003450E0 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80349484 003450E4 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 80349488 003450E8 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 8034948C 003450EC 7C 08 03 A6 */ mtlr r0
+/* 80349490 003450F0 38 21 00 40 */ addi r1, r1, 0x40
+/* 80349494 003450F4 4E 80 00 20 */ blr
+
+.global gti2AcceptConnection
+gti2AcceptConnection:
+/* 80349498 003450F8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034949C 003450FC 7C 08 02 A6 */ mflr r0
+/* 803494A0 00345100 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803494A4 00345104 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803494A8 00345108 7C 9F 23 78 */ mr r31, r4
+/* 803494AC 0034510C 93 C1 00 08 */ stw r30, 8(r1)
+/* 803494B0 00345110 7C 7E 1B 78 */ mr r30, r3
+/* 803494B4 00345114 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 803494B8 00345118 2C 00 00 00 */ cmpwi r0, 0
+/* 803494BC 0034511C 41 82 00 14 */ beq lbl_803494D0
+/* 803494C0 00345120 38 00 00 00 */ li r0, 0
+/* 803494C4 00345124 90 03 00 14 */ stw r0, 0x14(r3)
+/* 803494C8 00345128 38 60 00 00 */ li r3, 0
+/* 803494CC 0034512C 48 00 00 58 */ b lbl_80349524
+lbl_803494D0:
+/* 803494D0 00345130 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 803494D4 00345134 38 80 00 00 */ li r4, 0
+/* 803494D8 00345138 90 83 00 14 */ stw r4, 0x14(r3)
+/* 803494DC 0034513C 2C 00 00 04 */ cmpwi r0, 4
+/* 803494E0 00345140 41 82 00 0C */ beq lbl_803494EC
+/* 803494E4 00345144 38 60 00 00 */ li r3, 0
+/* 803494E8 00345148 48 00 00 3C */ b lbl_80349524
+lbl_803494EC:
+/* 803494EC 0034514C 48 00 31 51 */ bl gti2SendAccept
+/* 803494F0 00345150 38 00 00 05 */ li r0, 5
+/* 803494F4 00345154 2C 1F 00 00 */ cmpwi r31, 0
+/* 803494F8 00345158 90 1E 00 0C */ stw r0, 0xc(r30)
+/* 803494FC 0034515C 41 82 00 24 */ beq lbl_80349520
+/* 80349500 00345160 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80349504 00345164 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80349508 00345168 90 7E 00 28 */ stw r3, 0x28(r30)
+/* 8034950C 0034516C 90 1E 00 2C */ stw r0, 0x2c(r30)
+/* 80349510 00345170 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80349514 00345174 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80349518 00345178 90 7E 00 30 */ stw r3, 0x30(r30)
+/* 8034951C 0034517C 90 1E 00 34 */ stw r0, 0x34(r30)
+lbl_80349520:
+/* 80349520 00345180 38 60 00 01 */ li r3, 1
+lbl_80349524:
+/* 80349524 00345184 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80349528 00345188 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034952C 0034518C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80349530 00345190 7C 08 03 A6 */ mtlr r0
+/* 80349534 00345194 38 21 00 10 */ addi r1, r1, 0x10
+/* 80349538 00345198 4E 80 00 20 */ blr
+
+.global gti2RejectConnection
+gti2RejectConnection:
+/* 8034953C 0034519C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80349540 003451A0 7C 08 02 A6 */ mflr r0
+/* 80349544 003451A4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80349548 003451A8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034954C 003451AC 7C 7F 1B 78 */ mr r31, r3
+/* 80349550 003451B0 90 81 00 08 */ stw r4, 8(r1)
+/* 80349554 003451B4 38 80 00 00 */ li r4, 0
+/* 80349558 003451B8 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 8034955C 003451BC 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349560 003451C0 90 83 00 14 */ stw r4, 0x14(r3)
+/* 80349564 003451C4 2C 00 00 04 */ cmpwi r0, 4
+/* 80349568 003451C8 40 82 00 28 */ bne lbl_80349590
+/* 8034956C 003451CC 38 61 00 08 */ addi r3, r1, 8
+/* 80349570 003451D0 38 81 00 0C */ addi r4, r1, 0xc
+/* 80349574 003451D4 48 00 48 61 */ bl gti2MessageCheck
+/* 80349578 003451D8 80 81 00 08 */ lwz r4, 8(r1)
+/* 8034957C 003451DC 7F E3 FB 78 */ mr r3, r31
+/* 80349580 003451E0 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 80349584 003451E4 48 00 31 81 */ bl gti2SendReject
+/* 80349588 003451E8 38 00 00 06 */ li r0, 6
+/* 8034958C 003451EC 90 1F 00 0C */ stw r0, 0xc(r31)
+lbl_80349590:
+/* 80349590 003451F0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80349594 003451F4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80349598 003451F8 7C 08 03 A6 */ mtlr r0
+/* 8034959C 003451FC 38 21 00 20 */ addi r1, r1, 0x20
+/* 803495A0 00345200 4E 80 00 20 */ blr
+
+.global gti2ConnectionSendData
+gti2ConnectionSendData:
+/* 803495A4 00345204 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803495A8 00345208 7C 08 02 A6 */ mflr r0
+/* 803495AC 0034520C 7C 86 23 78 */ mr r6, r4
+/* 803495B0 00345210 7C A7 2B 78 */ mr r7, r5
+/* 803495B4 00345214 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803495B8 00345218 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 803495BC 0034521C 7C 7F 1B 78 */ mr r31, r3
+/* 803495C0 00345220 80 63 00 08 */ lwz r3, 8(r3)
+/* 803495C4 00345224 80 9F 00 00 */ lwz r4, 0(r31)
+/* 803495C8 00345228 A0 BF 00 04 */ lhz r5, 4(r31)
+/* 803495CC 0034522C 48 00 40 7D */ bl gti2SocketSend
+/* 803495D0 00345230 2C 03 00 00 */ cmpwi r3, 0
+/* 803495D4 00345234 40 82 00 0C */ bne lbl_803495E0
+/* 803495D8 00345238 38 60 00 00 */ li r3, 0
+/* 803495DC 0034523C 48 00 00 10 */ b lbl_803495EC
+lbl_803495E0:
+/* 803495E0 00345240 4B FE F9 F9 */ bl current_time
+/* 803495E4 00345244 90 7F 00 88 */ stw r3, 0x88(r31)
+/* 803495E8 00345248 38 60 00 01 */ li r3, 1
+lbl_803495EC:
+/* 803495EC 0034524C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803495F0 00345250 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803495F4 00345254 7C 08 03 A6 */ mtlr r0
+/* 803495F8 00345258 38 21 00 10 */ addi r1, r1, 0x10
+/* 803495FC 0034525C 4E 80 00 20 */ blr
+
+.global gti2CheckTimeout
+gti2CheckTimeout:
+/* 80349600 00345260 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80349604 00345264 7C 08 02 A6 */ mflr r0
+/* 80349608 00345268 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034960C 0034526C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80349610 00345270 7C 7F 1B 78 */ mr r31, r3
+/* 80349614 00345274 80 A3 00 0C */ lwz r5, 0xc(r3)
+/* 80349618 00345278 2C 05 00 05 */ cmpwi r5, 5
+/* 8034961C 0034527C 40 80 00 C8 */ bge lbl_803496E4
+/* 80349620 00345280 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 80349624 00345284 38 C0 00 00 */ li r6, 0
+/* 80349628 00345288 2C 00 00 00 */ cmpwi r0, 0
+/* 8034962C 0034528C 41 82 00 28 */ beq lbl_80349654
+/* 80349630 00345290 80 A3 00 20 */ lwz r5, 0x20(r3)
+/* 80349634 00345294 2C 05 00 00 */ cmpwi r5, 0
+/* 80349638 00345298 41 82 00 38 */ beq lbl_80349670
+/* 8034963C 0034529C 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80349640 003452A0 7C 00 20 50 */ subf r0, r0, r4
+/* 80349644 003452A4 7C 00 28 40 */ cmplw r0, r5
+/* 80349648 003452A8 40 81 00 28 */ ble lbl_80349670
+/* 8034964C 003452AC 38 C0 00 01 */ li r6, 1
+/* 80349650 003452B0 48 00 00 20 */ b lbl_80349670
+lbl_80349654:
+/* 80349654 003452B4 2C 05 00 04 */ cmpwi r5, 4
+/* 80349658 003452B8 40 80 00 18 */ bge lbl_80349670
+/* 8034965C 003452BC 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 80349660 003452C0 7C 00 20 50 */ subf r0, r0, r4
+/* 80349664 003452C4 28 00 EA 60 */ cmplwi r0, 0xea60
+/* 80349668 003452C8 40 81 00 08 */ ble lbl_80349670
+/* 8034966C 003452CC 38 C0 00 01 */ li r6, 1
+lbl_80349670:
+/* 80349670 003452D0 2C 06 00 00 */ cmpwi r6, 0
+/* 80349674 003452D4 41 82 00 70 */ beq lbl_803496E4
+/* 80349678 003452D8 7F E3 FB 78 */ mr r3, r31
+/* 8034967C 003452DC 48 00 36 D9 */ bl gti2SendClosed
+/* 80349680 003452E0 93 E1 00 08 */ stw r31, 8(r1)
+/* 80349684 003452E4 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80349688 003452E8 2C 00 00 07 */ cmpwi r0, 7
+/* 8034968C 003452EC 41 82 00 34 */ beq lbl_803496C0
+/* 80349690 003452F0 38 00 00 07 */ li r0, 7
+/* 80349694 003452F4 38 81 00 08 */ addi r4, r1, 8
+/* 80349698 003452F8 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8034969C 003452FC 80 61 00 08 */ lwz r3, 8(r1)
+/* 803496A0 00345300 80 63 00 08 */ lwz r3, 8(r3)
+/* 803496A4 00345304 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 803496A8 00345308 4B FE D3 D1 */ bl TableRemove
+/* 803496AC 0034530C 80 61 00 08 */ lwz r3, 8(r1)
+/* 803496B0 00345310 38 81 00 08 */ addi r4, r1, 8
+/* 803496B4 00345314 80 63 00 08 */ lwz r3, 8(r3)
+/* 803496B8 00345318 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 803496BC 0034531C 4B FE C8 65 */ bl ArrayAppend
+lbl_803496C0:
+/* 803496C0 00345320 7F E3 FB 78 */ mr r3, r31
+/* 803496C4 00345324 38 80 00 06 */ li r4, 6
+/* 803496C8 00345328 38 A0 00 00 */ li r5, 0
+/* 803496CC 0034532C 38 C0 00 00 */ li r6, 0
+/* 803496D0 00345330 4B FF F5 49 */ bl gti2ConnectedCallback
+/* 803496D4 00345334 2C 03 00 00 */ cmpwi r3, 0
+/* 803496D8 00345338 40 82 00 0C */ bne lbl_803496E4
+/* 803496DC 0034533C 38 60 00 00 */ li r3, 0
+/* 803496E0 00345340 48 00 00 08 */ b lbl_803496E8
+lbl_803496E4:
+/* 803496E4 00345344 38 60 00 01 */ li r3, 1
+lbl_803496E8:
+/* 803496E8 00345348 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803496EC 0034534C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803496F0 00345350 7C 08 03 A6 */ mtlr r0
+/* 803496F4 00345354 38 21 00 20 */ addi r1, r1, 0x20
+/* 803496F8 00345358 4E 80 00 20 */ blr
+
+.global gti2ConnectionThink
+gti2ConnectionThink:
+/* 803496FC 0034535C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80349700 00345360 7C 08 02 A6 */ mflr r0
+/* 80349704 00345364 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80349708 00345368 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034970C 0034536C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80349710 00345370 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80349714 00345374 7C 9D 23 78 */ mr r29, r4
+/* 80349718 00345378 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8034971C 0034537C 7C 7C 1B 78 */ mr r28, r3
+/* 80349720 00345380 4B FF FE E1 */ bl gti2CheckTimeout
+/* 80349724 00345384 2C 03 00 00 */ cmpwi r3, 0
+/* 80349728 00345388 40 82 00 0C */ bne lbl_80349734
+/* 8034972C 0034538C 38 60 00 00 */ li r3, 0
+/* 80349730 00345390 48 00 00 F8 */ b lbl_80349828
+lbl_80349734:
+/* 80349734 00345394 80 1C 00 88 */ lwz r0, 0x88(r28)
+/* 80349738 00345398 7C 00 E8 50 */ subf r0, r0, r29
+/* 8034973C 0034539C 28 00 75 30 */ cmplwi r0, 0x7530
+/* 80349740 003453A0 40 81 00 1C */ ble lbl_8034975C
+/* 80349744 003453A4 7F 83 E3 78 */ mr r3, r28
+/* 80349748 003453A8 48 00 31 79 */ bl gti2SendKeepAlive
+/* 8034974C 003453AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80349750 003453B0 40 82 00 0C */ bne lbl_8034975C
+/* 80349754 003453B4 38 00 00 00 */ li r0, 0
+/* 80349758 003453B8 48 00 00 08 */ b lbl_80349760
+lbl_8034975C:
+/* 8034975C 003453BC 38 00 00 01 */ li r0, 1
+lbl_80349760:
+/* 80349760 003453C0 2C 00 00 00 */ cmpwi r0, 0
+/* 80349764 003453C4 40 82 00 0C */ bne lbl_80349770
+/* 80349768 003453C8 38 60 00 00 */ li r3, 0
+/* 8034976C 003453CC 48 00 00 BC */ b lbl_80349828
+lbl_80349770:
+/* 80349770 003453D0 80 7C 00 60 */ lwz r3, 0x60(r28)
+/* 80349774 003453D4 4B FE C7 75 */ bl ArrayLength
+/* 80349778 003453D8 7C 7F 1B 78 */ mr r31, r3
+/* 8034977C 003453DC 3B C0 00 00 */ li r30, 0
+/* 80349780 003453E0 48 00 00 40 */ b lbl_803497C0
+lbl_80349784:
+/* 80349784 003453E4 80 7C 00 60 */ lwz r3, 0x60(r28)
+/* 80349788 003453E8 7F C4 F3 78 */ mr r4, r30
+/* 8034978C 003453EC 4B FE C7 65 */ bl ArrayNth
+/* 80349790 003453F0 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349794 003453F4 7C 64 1B 78 */ mr r4, r3
+/* 80349798 003453F8 7C 00 E8 50 */ subf r0, r0, r29
+/* 8034979C 003453FC 28 00 03 E8 */ cmplwi r0, 0x3e8
+/* 803497A0 00345400 40 81 00 1C */ ble lbl_803497BC
+/* 803497A4 00345404 7F 83 E3 78 */ mr r3, r28
+/* 803497A8 00345408 48 00 36 65 */ bl gti2ResendMessage
+/* 803497AC 0034540C 2C 03 00 00 */ cmpwi r3, 0
+/* 803497B0 00345410 40 82 00 0C */ bne lbl_803497BC
+/* 803497B4 00345414 38 00 00 00 */ li r0, 0
+/* 803497B8 00345418 48 00 00 14 */ b lbl_803497CC
+lbl_803497BC:
+/* 803497BC 0034541C 3B DE 00 01 */ addi r30, r30, 1
+lbl_803497C0:
+/* 803497C0 00345420 7C 1E F8 00 */ cmpw r30, r31
+/* 803497C4 00345424 41 80 FF C0 */ blt lbl_80349784
+/* 803497C8 00345428 38 00 00 01 */ li r0, 1
+lbl_803497CC:
+/* 803497CC 0034542C 2C 00 00 00 */ cmpwi r0, 0
+/* 803497D0 00345430 40 82 00 0C */ bne lbl_803497DC
+/* 803497D4 00345434 38 60 00 00 */ li r3, 0
+/* 803497D8 00345438 48 00 00 50 */ b lbl_80349828
+lbl_803497DC:
+/* 803497DC 0034543C 80 1C 00 90 */ lwz r0, 0x90(r28)
+/* 803497E0 00345440 2C 00 00 00 */ cmpwi r0, 0
+/* 803497E4 00345444 40 82 00 0C */ bne lbl_803497F0
+/* 803497E8 00345448 38 60 00 01 */ li r3, 1
+/* 803497EC 0034544C 48 00 00 30 */ b lbl_8034981C
+lbl_803497F0:
+/* 803497F0 00345450 80 1C 00 94 */ lwz r0, 0x94(r28)
+/* 803497F4 00345454 7C 00 E8 50 */ subf r0, r0, r29
+/* 803497F8 00345458 28 00 00 64 */ cmplwi r0, 0x64
+/* 803497FC 0034545C 40 81 00 1C */ ble lbl_80349818
+/* 80349800 00345460 7F 83 E3 78 */ mr r3, r28
+/* 80349804 00345464 48 00 32 B1 */ bl gti2SendAck
+/* 80349808 00345468 2C 03 00 00 */ cmpwi r3, 0
+/* 8034980C 0034546C 40 82 00 0C */ bne lbl_80349818
+/* 80349810 00345470 38 60 00 00 */ li r3, 0
+/* 80349814 00345474 48 00 00 08 */ b lbl_8034981C
+lbl_80349818:
+/* 80349818 00345478 38 60 00 01 */ li r3, 1
+lbl_8034981C:
+/* 8034981C 0034547C 7C 03 00 D0 */ neg r0, r3
+/* 80349820 00345480 7C 00 1B 78 */ or r0, r0, r3
+/* 80349824 00345484 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_80349828:
+/* 80349828 00345488 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034982C 0034548C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80349830 00345490 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80349834 00345494 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80349838 00345498 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8034983C 0034549C 7C 08 03 A6 */ mtlr r0
+/* 80349840 003454A0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80349844 003454A4 4E 80 00 20 */ blr
+
+.global func_80349848
+func_80349848:
+/* 80349848 003454A8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034984C 003454AC 7C 08 02 A6 */ mflr r0
+/* 80349850 003454B0 2C 04 00 00 */ cmpwi r4, 0
+/* 80349854 003454B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80349858 003454B8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034985C 003454BC 7C 7F 1B 78 */ mr r31, r3
+/* 80349860 003454C0 41 82 00 70 */ beq lbl_803498D0
+/* 80349864 003454C4 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349868 003454C8 2C 00 00 07 */ cmpwi r0, 7
+/* 8034986C 003454CC 40 80 00 70 */ bge lbl_803498DC
+/* 80349870 003454D0 90 61 00 08 */ stw r3, 8(r1)
+/* 80349874 003454D4 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349878 003454D8 2C 00 00 07 */ cmpwi r0, 7
+/* 8034987C 003454DC 41 82 00 34 */ beq lbl_803498B0
+/* 80349880 003454E0 38 00 00 07 */ li r0, 7
+/* 80349884 003454E4 38 81 00 08 */ addi r4, r1, 8
+/* 80349888 003454E8 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8034988C 003454EC 80 61 00 08 */ lwz r3, 8(r1)
+/* 80349890 003454F0 80 63 00 08 */ lwz r3, 8(r3)
+/* 80349894 003454F4 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80349898 003454F8 4B FE D1 E1 */ bl TableRemove
+/* 8034989C 003454FC 80 61 00 08 */ lwz r3, 8(r1)
+/* 803498A0 00345500 38 81 00 08 */ addi r4, r1, 8
+/* 803498A4 00345504 80 63 00 08 */ lwz r3, 8(r3)
+/* 803498A8 00345508 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 803498AC 0034550C 4B FE C6 75 */ bl ArrayAppend
+lbl_803498B0:
+/* 803498B0 00345510 7F E3 FB 78 */ mr r3, r31
+/* 803498B4 00345514 48 00 34 A1 */ bl gti2SendClosed
+/* 803498B8 00345518 7F E3 FB 78 */ mr r3, r31
+/* 803498BC 0034551C 38 80 00 00 */ li r4, 0
+/* 803498C0 00345520 4B FF F5 0D */ bl gti2ClosedCallback
+/* 803498C4 00345524 7F E3 FB 78 */ mr r3, r31
+/* 803498C8 00345528 48 00 3C B5 */ bl gti2FreeSocketConnection
+/* 803498CC 0034552C 48 00 00 10 */ b lbl_803498DC
+lbl_803498D0:
+/* 803498D0 00345530 38 00 00 06 */ li r0, 6
+/* 803498D4 00345534 90 03 00 0C */ stw r0, 0xc(r3)
+/* 803498D8 00345538 48 00 2F 21 */ bl gti2SendClose
+lbl_803498DC:
+/* 803498DC 0034553C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803498E0 00345540 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803498E4 00345544 7C 08 03 A6 */ mtlr r0
+/* 803498E8 00345548 38 21 00 20 */ addi r1, r1, 0x20
+/* 803498EC 0034554C 4E 80 00 20 */ blr
+
+.global gti2ConnectionClosed
+gti2ConnectionClosed:
+/* 803498F0 00345550 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803498F4 00345554 7C 08 02 A6 */ mflr r0
+/* 803498F8 00345558 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803498FC 0034555C 90 61 00 08 */ stw r3, 8(r1)
+/* 80349900 00345560 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349904 00345564 2C 00 00 07 */ cmpwi r0, 7
+/* 80349908 00345568 41 82 00 34 */ beq lbl_8034993C
+/* 8034990C 0034556C 38 00 00 07 */ li r0, 7
+/* 80349910 00345570 38 81 00 08 */ addi r4, r1, 8
+/* 80349914 00345574 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80349918 00345578 80 61 00 08 */ lwz r3, 8(r1)
+/* 8034991C 0034557C 80 63 00 08 */ lwz r3, 8(r3)
+/* 80349920 00345580 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80349924 00345584 4B FE D1 55 */ bl TableRemove
+/* 80349928 00345588 80 61 00 08 */ lwz r3, 8(r1)
+/* 8034992C 0034558C 38 81 00 08 */ addi r4, r1, 8
+/* 80349930 00345590 80 63 00 08 */ lwz r3, 8(r3)
+/* 80349934 00345594 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80349938 00345598 4B FE C5 E9 */ bl ArrayAppend
+lbl_8034993C:
+/* 8034993C 0034559C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80349940 003455A0 7C 08 03 A6 */ mtlr r0
+/* 80349944 003455A4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80349948 003455A8 4E 80 00 20 */ blr
+
+.global gti2ConnectionCleanup
+gti2ConnectionCleanup:
+/* 8034994C 003455AC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80349950 003455B0 7C 08 02 A6 */ mflr r0
+/* 80349954 003455B4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80349958 003455B8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034995C 003455BC 7C 7F 1B 78 */ mr r31, r3
+/* 80349960 003455C0 80 03 00 38 */ lwz r0, 0x38(r3)
+/* 80349964 003455C4 2C 00 00 00 */ cmpwi r0, 0
+/* 80349968 003455C8 41 82 00 0C */ beq lbl_80349974
+/* 8034996C 003455CC 7C 03 03 78 */ mr r3, r0
+/* 80349970 003455D0 4B FE F9 C9 */ bl gsifree
+lbl_80349974:
+/* 80349974 003455D4 80 7F 00 44 */ lwz r3, 0x44(r31)
+/* 80349978 003455D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034997C 003455DC 41 82 00 08 */ beq lbl_80349984
+/* 80349980 003455E0 4B FE F9 B9 */ bl gsifree
+lbl_80349984:
+/* 80349984 003455E4 80 7F 00 50 */ lwz r3, 0x50(r31)
+/* 80349988 003455E8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034998C 003455EC 41 82 00 08 */ beq lbl_80349994
+/* 80349990 003455F0 4B FE F9 A9 */ bl gsifree
+lbl_80349994:
+/* 80349994 003455F4 80 7F 00 5C */ lwz r3, 0x5c(r31)
+/* 80349998 003455F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034999C 003455FC 41 82 00 08 */ beq lbl_803499A4
+/* 803499A0 00345600 4B FE C4 B5 */ bl ArrayFree
+lbl_803499A4:
+/* 803499A4 00345604 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 803499A8 00345608 2C 03 00 00 */ cmpwi r3, 0
+/* 803499AC 0034560C 41 82 00 08 */ beq lbl_803499B4
+/* 803499B0 00345610 4B FE C4 A5 */ bl ArrayFree
+lbl_803499B4:
+/* 803499B4 00345614 80 7F 00 98 */ lwz r3, 0x98(r31)
+/* 803499B8 00345618 2C 03 00 00 */ cmpwi r3, 0
+/* 803499BC 0034561C 41 82 00 08 */ beq lbl_803499C4
+/* 803499C0 00345620 4B FE C4 95 */ bl ArrayFree
+lbl_803499C4:
+/* 803499C4 00345624 80 7F 00 9C */ lwz r3, 0x9c(r31)
+/* 803499C8 00345628 2C 03 00 00 */ cmpwi r3, 0
+/* 803499CC 0034562C 41 82 00 08 */ beq lbl_803499D4
+/* 803499D0 00345630 4B FE C4 85 */ bl ArrayFree
+lbl_803499D4:
+/* 803499D4 00345634 7F E3 FB 78 */ mr r3, r31
+/* 803499D8 00345638 4B FE F9 61 */ bl gsifree
+/* 803499DC 0034563C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803499E0 00345640 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803499E4 00345644 7C 08 03 A6 */ mtlr r0
+/* 803499E8 00345648 38 21 00 10 */ addi r1, r1, 0x10
+/* 803499EC 0034564C 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Main.s b/asm/SDK/DWC/gamespy/gt2Main.s new file mode 100644 index 0000000..e78caed --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Main.s @@ -0,0 +1,351 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gt2CreateSocket
+gt2CreateSocket:
+/* 803499F0 00345650 39 00 00 00 */ li r8, 0
+/* 803499F4 00345654 48 00 36 6C */ b gti2CreateSocket
+
+.global gt2CloseSocket
+gt2CloseSocket:
+/* 803499F8 00345658 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803499FC 0034565C 7C 08 02 A6 */ mflr r0
+/* 80349A00 00345660 3C 80 80 35 */ lis r4, gti2CloseAllConnectionsHardMap@ha
+/* 80349A04 00345664 38 A0 00 00 */ li r5, 0
+/* 80349A08 00345668 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80349A0C 0034566C 38 84 9D 64 */ addi r4, r4, gti2CloseAllConnectionsHardMap@l
+/* 80349A10 00345670 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80349A14 00345674 7C 7F 1B 78 */ mr r31, r3
+/* 80349A18 00345678 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80349A1C 0034567C 4B FE D1 A1 */ bl TableMapSafe
+/* 80349A20 00345680 7F E3 FB 78 */ mr r3, r31
+/* 80349A24 00345684 48 00 38 79 */ bl gti2CloseSocket
+/* 80349A28 00345688 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80349A2C 0034568C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80349A30 00345690 7C 08 03 A6 */ mtlr r0
+/* 80349A34 00345694 38 21 00 10 */ addi r1, r1, 0x10
+/* 80349A38 00345698 4E 80 00 20 */ blr
+
+.global gt2Think
+gt2Think:
+/* 80349A3C 0034569C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80349A40 003456A0 7C 08 02 A6 */ mflr r0
+/* 80349A44 003456A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80349A48 003456A8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80349A4C 003456AC 7C 7F 1B 78 */ mr r31, r3
+/* 80349A50 003456B0 48 00 25 45 */ bl gti2ReceiveMessages
+/* 80349A54 003456B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80349A58 003456B8 41 82 00 1C */ beq lbl_80349A74
+/* 80349A5C 003456BC 7F E3 FB 78 */ mr r3, r31
+/* 80349A60 003456C0 48 00 3F 21 */ bl gti2SocketConnectionsThink
+/* 80349A64 003456C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80349A68 003456C8 41 82 00 0C */ beq lbl_80349A74
+/* 80349A6C 003456CC 7F E3 FB 78 */ mr r3, r31
+/* 80349A70 003456D0 48 00 3F 5D */ bl gti2FreeClosedConnections
+lbl_80349A74:
+/* 80349A74 003456D4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80349A78 003456D8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80349A7C 003456DC 7C 08 03 A6 */ mtlr r0
+/* 80349A80 003456E0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80349A84 003456E4 4E 80 00 20 */ blr
+
+.global gt2Listen
+gt2Listen:
+/* 80349A88 003456E8 48 00 38 78 */ b gti2Listen
+
+.global gt2Accept
+gt2Accept:
+/* 80349A8C 003456EC 4B FF FA 0C */ b gti2AcceptConnection
+
+.global gt2Reject
+gt2Reject:
+/* 80349A90 003456F0 4B FF FA AC */ b gti2RejectConnection
+
+.global gt2Connect
+gt2Connect:
+/* 80349A94 003456F4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80349A98 003456F8 7C 08 02 A6 */ mflr r0
+/* 80349A9C 003456FC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80349AA0 00345700 39 61 00 40 */ addi r11, r1, 0x40
+/* 80349AA4 00345704 4B E7 D6 7D */ bl _savegpr_25
+/* 80349AA8 00345708 7C 7E 1B 78 */ mr r30, r3
+/* 80349AAC 0034570C 7C 9F 23 78 */ mr r31, r4
+/* 80349AB0 00345710 7C A3 2B 78 */ mr r3, r5
+/* 80349AB4 00345714 7C D9 33 78 */ mr r25, r6
+/* 80349AB8 00345718 7C FA 3B 78 */ mr r26, r7
+/* 80349ABC 0034571C 7D 1D 43 78 */ mr r29, r8
+/* 80349AC0 00345720 7D 3C 4B 78 */ mr r28, r9
+/* 80349AC4 00345724 7D 5B 53 78 */ mr r27, r10
+/* 80349AC8 00345728 38 81 00 0C */ addi r4, r1, 0xc
+/* 80349ACC 0034572C 38 A1 00 08 */ addi r5, r1, 8
+/* 80349AD0 00345730 48 00 41 61 */ bl gt2StringToAddress
+/* 80349AD4 00345734 2C 03 00 00 */ cmpwi r3, 0
+/* 80349AD8 00345738 41 82 00 1C */ beq lbl_80349AF4
+/* 80349ADC 0034573C 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80349AE0 00345740 2C 03 00 00 */ cmpwi r3, 0
+/* 80349AE4 00345744 41 82 00 10 */ beq lbl_80349AF4
+/* 80349AE8 00345748 A0 01 00 08 */ lhz r0, 8(r1)
+/* 80349AEC 0034574C 2C 00 00 00 */ cmpwi r0, 0
+/* 80349AF0 00345750 40 82 00 0C */ bne lbl_80349AFC
+lbl_80349AF4:
+/* 80349AF4 00345754 38 60 00 04 */ li r3, 4
+/* 80349AF8 00345758 48 00 01 2C */ b lbl_80349C24
+lbl_80349AFC:
+/* 80349AFC 0034575C 4B FA D2 71 */ bl SONtoHl
+/* 80349B00 00345760 54 63 00 04 */ rlwinm r3, r3, 0, 0, 2
+/* 80349B04 00345764 3C 03 20 00 */ addis r0, r3, 0x2000
+/* 80349B08 00345768 28 00 00 00 */ cmplwi r0, 0
+/* 80349B0C 0034576C 40 82 00 0C */ bne lbl_80349B18
+/* 80349B10 00345770 38 60 00 04 */ li r3, 4
+/* 80349B14 00345774 48 00 01 10 */ b lbl_80349C24
+lbl_80349B18:
+/* 80349B18 00345778 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 80349B1C 0034577C 7F C3 F3 78 */ mr r3, r30
+/* 80349B20 00345780 A0 C1 00 08 */ lhz r6, 8(r1)
+/* 80349B24 00345784 38 81 00 10 */ addi r4, r1, 0x10
+/* 80349B28 00345788 4B FF F7 F5 */ bl gti2NewOutgoingConnection
+/* 80349B2C 0034578C 2C 03 00 00 */ cmpwi r3, 0
+/* 80349B30 00345790 41 82 00 08 */ beq lbl_80349B38
+/* 80349B34 00345794 48 00 00 F0 */ b lbl_80349C24
+lbl_80349B38:
+/* 80349B38 00345798 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80349B3C 0034579C 7F 24 CB 78 */ mr r4, r25
+/* 80349B40 003457A0 7F 45 D3 78 */ mr r5, r26
+/* 80349B44 003457A4 7F 86 E3 78 */ mr r6, r28
+/* 80349B48 003457A8 93 A3 00 20 */ stw r29, 0x20(r3)
+/* 80349B4C 003457AC 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80349B50 003457B0 4B FF F8 75 */ bl gti2StartConnectionAttempt
+/* 80349B54 003457B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80349B58 003457B8 7C 7C 1B 78 */ mr r28, r3
+/* 80349B5C 003457BC 41 82 00 14 */ beq lbl_80349B70
+/* 80349B60 003457C0 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80349B64 003457C4 48 00 3A 19 */ bl gti2FreeSocketConnection
+/* 80349B68 003457C8 7F 83 E3 78 */ mr r3, r28
+/* 80349B6C 003457CC 48 00 00 B8 */ b lbl_80349C24
+lbl_80349B70:
+/* 80349B70 003457D0 2C 1B 00 00 */ cmpwi r27, 0
+/* 80349B74 003457D4 40 82 00 1C */ bne lbl_80349B90
+/* 80349B78 003457D8 2C 1F 00 00 */ cmpwi r31, 0
+/* 80349B7C 003457DC 41 82 00 0C */ beq lbl_80349B88
+/* 80349B80 003457E0 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80349B84 003457E4 90 1F 00 00 */ stw r0, 0(r31)
+lbl_80349B88:
+/* 80349B88 003457E8 38 60 00 00 */ li r3, 0
+/* 80349B8C 003457EC 48 00 00 98 */ b lbl_80349C24
+lbl_80349B90:
+/* 80349B90 003457F0 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 80349B94 003457F4 3B 80 00 05 */ li r28, 5
+/* 80349B98 003457F8 3B A0 00 00 */ li r29, 0
+/* 80349B9C 003457FC 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80349BA0 00345800 38 03 00 01 */ addi r0, r3, 1
+/* 80349BA4 00345804 90 04 00 24 */ stw r0, 0x24(r4)
+lbl_80349BA8:
+/* 80349BA8 00345808 7F C3 F3 78 */ mr r3, r30
+/* 80349BAC 0034580C 48 00 23 E9 */ bl gti2ReceiveMessages
+/* 80349BB0 00345810 2C 03 00 00 */ cmpwi r3, 0
+/* 80349BB4 00345814 41 82 00 1C */ beq lbl_80349BD0
+/* 80349BB8 00345818 7F C3 F3 78 */ mr r3, r30
+/* 80349BBC 0034581C 48 00 3D C5 */ bl gti2SocketConnectionsThink
+/* 80349BC0 00345820 2C 03 00 00 */ cmpwi r3, 0
+/* 80349BC4 00345824 41 82 00 0C */ beq lbl_80349BD0
+/* 80349BC8 00345828 7F C3 F3 78 */ mr r3, r30
+/* 80349BCC 0034582C 48 00 3E 01 */ bl gti2FreeClosedConnections
+lbl_80349BD0:
+/* 80349BD0 00345830 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80349BD4 00345834 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349BD8 00345838 7C 03 FE 70 */ srawi r3, r0, 0x1f
+/* 80349BDC 0034583C 7C 1C 00 10 */ subfc r0, r28, r0
+/* 80349BE0 00345840 7F 63 E9 15 */ adde. r27, r3, r29
+/* 80349BE4 00345844 40 82 00 0C */ bne lbl_80349BF0
+/* 80349BE8 00345848 38 60 00 01 */ li r3, 1
+/* 80349BEC 0034584C 4B FE F4 39 */ bl msleep
+lbl_80349BF0:
+/* 80349BF0 00345850 2C 1B 00 00 */ cmpwi r27, 0
+/* 80349BF4 00345854 41 82 FF B4 */ beq lbl_80349BA8
+/* 80349BF8 00345858 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 80349BFC 0034585C 80 64 00 24 */ lwz r3, 0x24(r4)
+/* 80349C00 00345860 38 03 FF FF */ addi r0, r3, -1
+/* 80349C04 00345864 90 04 00 24 */ stw r0, 0x24(r4)
+/* 80349C08 00345868 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80349C0C 0034586C 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349C10 00345870 2C 00 00 05 */ cmpwi r0, 5
+/* 80349C14 00345874 40 82 00 08 */ bne lbl_80349C1C
+/* 80349C18 00345878 90 7F 00 00 */ stw r3, 0(r31)
+lbl_80349C1C:
+/* 80349C1C 0034587C 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 80349C20 00345880 80 63 00 18 */ lwz r3, 0x18(r3)
+lbl_80349C24:
+/* 80349C24 00345884 39 61 00 40 */ addi r11, r1, 0x40
+/* 80349C28 00345888 4B E7 D5 45 */ bl _restgpr_25
+/* 80349C2C 0034588C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80349C30 00345890 7C 08 03 A6 */ mtlr r0
+/* 80349C34 00345894 38 21 00 40 */ addi r1, r1, 0x40
+/* 80349C38 00345898 4E 80 00 20 */ blr
+
+.global gt2Send
+gt2Send:
+/* 80349C3C 0034589C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80349C40 003458A0 7C 08 02 A6 */ mflr r0
+/* 80349C44 003458A4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80349C48 003458A8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80349C4C 003458AC 7C DF 33 78 */ mr r31, r6
+/* 80349C50 003458B0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80349C54 003458B4 7C 7E 1B 78 */ mr r30, r3
+/* 80349C58 003458B8 90 81 00 08 */ stw r4, 8(r1)
+/* 80349C5C 003458BC 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 80349C60 003458C0 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349C64 003458C4 2C 00 00 05 */ cmpwi r0, 5
+/* 80349C68 003458C8 41 82 00 0C */ beq lbl_80349C74
+/* 80349C6C 003458CC 38 60 00 08 */ li r3, 8
+/* 80349C70 003458D0 48 00 00 B0 */ b lbl_80349D20
+lbl_80349C74:
+/* 80349C74 003458D4 38 61 00 08 */ addi r3, r1, 8
+/* 80349C78 003458D8 38 81 00 0C */ addi r4, r1, 0xc
+/* 80349C7C 003458DC 48 00 41 59 */ bl gti2MessageCheck
+/* 80349C80 003458E0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80349C84 003458E4 41 82 00 48 */ beq lbl_80349CCC
+/* 80349C88 003458E8 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80349C8C 003458EC 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 80349C90 003458F0 2C 00 00 02 */ cmpwi r0, 2
+/* 80349C94 003458F4 40 82 00 38 */ bne lbl_80349CCC
+/* 80349C98 003458F8 80 81 00 08 */ lwz r4, 8(r1)
+/* 80349C9C 003458FC 38 61 00 10 */ addi r3, r1, 0x10
+/* 80349CA0 00345900 38 A0 00 02 */ li r5, 2
+/* 80349CA4 00345904 4B CB A3 5D */ bl memcpy
+/* 80349CA8 00345908 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80349CAC 0034590C A0 81 00 10 */ lhz r4, 0x10(r1)
+/* 80349CB0 00345910 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 80349CB4 00345914 80 61 00 0C */ lwz r3, 0xc(r1)
+/* 80349CB8 00345918 7C 04 02 14 */ add r0, r4, r0
+/* 80349CBC 0034591C 7C 03 00 00 */ cmpw r3, r0
+/* 80349CC0 00345920 41 82 00 0C */ beq lbl_80349CCC
+/* 80349CC4 00345924 38 60 00 09 */ li r3, 9
+/* 80349CC8 00345928 48 00 00 58 */ b lbl_80349D20
+lbl_80349CCC:
+/* 80349CCC 0034592C 80 7E 00 98 */ lwz r3, 0x98(r30)
+/* 80349CD0 00345930 4B FE C2 19 */ bl ArrayLength
+/* 80349CD4 00345934 2C 03 00 00 */ cmpwi r3, 0
+/* 80349CD8 00345938 41 82 00 24 */ beq lbl_80349CFC
+/* 80349CDC 0034593C 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80349CE0 00345940 7F C3 F3 78 */ mr r3, r30
+/* 80349CE4 00345944 80 C1 00 0C */ lwz r6, 0xc(r1)
+/* 80349CE8 00345948 7F E7 FB 78 */ mr r7, r31
+/* 80349CEC 0034594C 38 80 00 00 */ li r4, 0
+/* 80349CF0 00345950 4B FF F2 55 */ bl gti2SendFilterCallback
+/* 80349CF4 00345954 38 60 00 00 */ li r3, 0
+/* 80349CF8 00345958 48 00 00 28 */ b lbl_80349D20
+lbl_80349CFC:
+/* 80349CFC 0034595C 80 81 00 08 */ lwz r4, 8(r1)
+/* 80349D00 00345960 7F C3 F3 78 */ mr r3, r30
+/* 80349D04 00345964 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 80349D08 00345968 7F E6 FB 78 */ mr r6, r31
+/* 80349D0C 0034596C 48 00 31 BD */ bl gti2Send
+/* 80349D10 00345970 2C 03 00 00 */ cmpwi r3, 0
+/* 80349D14 00345974 38 60 00 0A */ li r3, 0xa
+/* 80349D18 00345978 41 82 00 08 */ beq lbl_80349D20
+/* 80349D1C 0034597C 38 60 00 00 */ li r3, 0
+lbl_80349D20:
+/* 80349D20 00345980 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80349D24 00345984 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80349D28 00345988 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80349D2C 0034598C 7C 08 03 A6 */ mtlr r0
+/* 80349D30 00345990 38 21 00 20 */ addi r1, r1, 0x20
+/* 80349D34 00345994 4E 80 00 20 */ blr
+
+.global func_80349D38
+func_80349D38:
+/* 80349D38 00345998 48 00 2F 34 */ b func_8034CC6C
+
+.global gt2CloseConnectionHard
+gt2CloseConnectionHard:
+/* 80349D3C 0034599C 38 80 00 01 */ li r4, 1
+/* 80349D40 003459A0 4B FF FB 08 */ b func_80349848
+lbl_80349D44:
+/* 80349D44 003459A4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80349D48 003459A8 38 80 00 00 */ li r4, 0
+/* 80349D4C 003459AC 4B FF FA FC */ b func_80349848
+
+.global func_80349D50
+func_80349D50:
+/* 80349D50 003459B0 3C 80 80 35 */ lis r4, lbl_80349D44@ha
+/* 80349D54 003459B4 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80349D58 003459B8 38 84 9D 44 */ addi r4, r4, lbl_80349D44@l
+/* 80349D5C 003459BC 38 A0 00 00 */ li r5, 0
+/* 80349D60 003459C0 4B FE CE 5C */ b TableMapSafe
+
+.global gti2CloseAllConnectionsHardMap
+gti2CloseAllConnectionsHardMap:
+/* 80349D64 003459C4 80 63 00 00 */ lwz r3, 0(r3)
+/* 80349D68 003459C8 38 80 00 01 */ li r4, 1
+/* 80349D6C 003459CC 4B FF FA DC */ b func_80349848
+
+.global gt2CloseAllConnectionsHard
+gt2CloseAllConnectionsHard:
+/* 80349D70 003459D0 3C 80 80 35 */ lis r4, gti2CloseAllConnectionsHardMap@ha
+/* 80349D74 003459D4 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 80349D78 003459D8 38 84 9D 64 */ addi r4, r4, gti2CloseAllConnectionsHardMap@l
+/* 80349D7C 003459DC 38 A0 00 00 */ li r5, 0
+/* 80349D80 003459E0 4B FE CE 3C */ b TableMapSafe
+
+.global func_80349D84
+func_80349D84:
+/* 80349D84 003459E4 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 80349D88 003459E8 2C 00 00 05 */ cmpwi r0, 5
+/* 80349D8C 003459EC 40 80 00 0C */ bge lbl_80349D98
+/* 80349D90 003459F0 38 60 00 00 */ li r3, 0
+/* 80349D94 003459F4 4E 80 00 20 */ blr
+lbl_80349D98:
+/* 80349D98 003459F8 40 82 00 0C */ bne lbl_80349DA4
+/* 80349D9C 003459FC 38 60 00 01 */ li r3, 1
+/* 80349DA0 00345A00 4E 80 00 20 */ blr
+lbl_80349DA4:
+/* 80349DA4 00345A04 2C 00 00 06 */ cmpwi r0, 6
+/* 80349DA8 00345A08 38 60 00 03 */ li r3, 3
+/* 80349DAC 00345A0C 4C 82 00 20 */ bnelr
+/* 80349DB0 00345A10 38 60 00 02 */ li r3, 2
+/* 80349DB4 00345A14 4E 80 00 20 */ blr
+
+.global func_80349DB8
+func_80349DB8:
+/* 80349DB8 00345A18 80 63 00 00 */ lwz r3, 0(r3)
+/* 80349DBC 00345A1C 4E 80 00 20 */ blr
+
+.global gt2GetLocalPort
+gt2GetLocalPort:
+/* 80349DC0 00345A20 A0 63 00 08 */ lhz r3, 8(r3)
+/* 80349DC4 00345A24 4E 80 00 20 */ blr
+
+.global gt2GetIncomingBufferFreeSpace
+gt2GetIncomingBufferFreeSpace:
+/* 80349DC8 00345A28 80 83 00 4C */ lwz r4, 0x4c(r3)
+/* 80349DCC 00345A2C 80 03 00 48 */ lwz r0, 0x48(r3)
+/* 80349DD0 00345A30 7C 64 00 50 */ subf r3, r4, r0
+/* 80349DD4 00345A34 4E 80 00 20 */ blr
+
+.global gt2GetOutgoingBufferFreeSpace
+gt2GetOutgoingBufferFreeSpace:
+/* 80349DD8 00345A38 80 83 00 58 */ lwz r4, 0x58(r3)
+/* 80349DDC 00345A3C 80 03 00 54 */ lwz r0, 0x54(r3)
+/* 80349DE0 00345A40 7C 64 00 50 */ subf r3, r4, r0
+/* 80349DE4 00345A44 4E 80 00 20 */ blr
+
+.global gt2GetSocketSOCKET
+gt2GetSocketSOCKET:
+/* 80349DE8 00345A48 80 63 00 00 */ lwz r3, 0(r3)
+/* 80349DEC 00345A4C 4E 80 00 20 */ blr
+
+.global gt2SetUnrecognizedMessageCallback
+gt2SetUnrecognizedMessageCallback:
+/* 80349DF0 00345A50 90 83 00 30 */ stw r4, 0x30(r3)
+/* 80349DF4 00345A54 4E 80 00 20 */ blr
+
+.global gt2SetConnectionData
+gt2SetConnectionData:
+/* 80349DF8 00345A58 90 83 00 40 */ stw r4, 0x40(r3)
+/* 80349DFC 00345A5C 4E 80 00 20 */ blr
+
+.global gt2GetConnectionData
+gt2GetConnectionData:
+/* 80349E00 00345A60 80 63 00 40 */ lwz r3, 0x40(r3)
+/* 80349E04 00345A64 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Message.s b/asm/SDK/DWC/gamespy/gt2Message.s new file mode 100644 index 0000000..74737f0 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Message.s @@ -0,0 +1,3609 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2HandleESN
+gti2HandleESN:
+/* 80349E08 00345A68 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80349E0C 00345A6C 7C 08 02 A6 */ mflr r0
+/* 80349E10 00345A70 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80349E14 00345A74 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80349E18 00345A78 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80349E1C 00345A7C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80349E20 00345A80 7C 9D 23 78 */ mr r29, r4
+/* 80349E24 00345A84 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80349E28 00345A88 7C 7C 1B 78 */ mr r28, r3
+/* 80349E2C 00345A8C 80 63 00 60 */ lwz r3, 0x60(r3)
+/* 80349E30 00345A90 4B FE C0 B9 */ bl ArrayLength
+/* 80349E34 00345A94 2C 03 00 00 */ cmpwi r3, 0
+/* 80349E38 00345A98 7C 7F 1B 78 */ mr r31, r3
+/* 80349E3C 00345A9C 40 82 00 0C */ bne lbl_80349E48
+/* 80349E40 00345AA0 38 60 00 01 */ li r3, 1
+/* 80349E44 00345AA4 48 00 00 D4 */ b lbl_80349F18
+lbl_80349E48:
+/* 80349E48 00345AA8 3B C0 00 00 */ li r30, 0
+/* 80349E4C 00345AAC 48 00 00 24 */ b lbl_80349E70
+lbl_80349E50:
+/* 80349E50 00345AB0 80 7C 00 60 */ lwz r3, 0x60(r28)
+/* 80349E54 00345AB4 7F C4 F3 78 */ mr r4, r30
+/* 80349E58 00345AB8 4B FE C0 99 */ bl ArrayNth
+/* 80349E5C 00345ABC A0 03 00 08 */ lhz r0, 8(r3)
+/* 80349E60 00345AC0 7C 1D 00 50 */ subf r0, r29, r0
+/* 80349E64 00345AC4 7C 00 07 35 */ extsh. r0, r0
+/* 80349E68 00345AC8 40 80 00 10 */ bge lbl_80349E78
+/* 80349E6C 00345ACC 3B DE 00 01 */ addi r30, r30, 1
+lbl_80349E70:
+/* 80349E70 00345AD0 7C 1E F8 00 */ cmpw r30, r31
+/* 80349E74 00345AD4 41 80 FF DC */ blt lbl_80349E50
+lbl_80349E78:
+/* 80349E78 00345AD8 2C 1E 00 00 */ cmpwi r30, 0
+/* 80349E7C 00345ADC 40 82 00 1C */ bne lbl_80349E98
+/* 80349E80 00345AE0 38 60 00 01 */ li r3, 1
+/* 80349E84 00345AE4 48 00 00 94 */ b lbl_80349F18
+/* 80349E88 00345AE8 48 00 00 10 */ b lbl_80349E98
+lbl_80349E8C:
+/* 80349E8C 00345AEC 80 7C 00 60 */ lwz r3, 0x60(r28)
+/* 80349E90 00345AF0 7F C4 F3 78 */ mr r4, r30
+/* 80349E94 00345AF4 4B FE C3 DD */ bl ArrayDeleteAt
+lbl_80349E98:
+/* 80349E98 00345AF8 2C 1E 00 00 */ cmpwi r30, 0
+/* 80349E9C 00345AFC 3B DE FF FF */ addi r30, r30, -1
+/* 80349EA0 00345B00 40 82 FF EC */ bne lbl_80349E8C
+/* 80349EA4 00345B04 80 7C 00 60 */ lwz r3, 0x60(r28)
+/* 80349EA8 00345B08 4B FE C0 41 */ bl ArrayLength
+/* 80349EAC 00345B0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80349EB0 00345B10 7C 7F 1B 78 */ mr r31, r3
+/* 80349EB4 00345B14 40 82 00 14 */ bne lbl_80349EC8
+/* 80349EB8 00345B18 38 00 00 00 */ li r0, 0
+/* 80349EBC 00345B1C 38 60 00 01 */ li r3, 1
+/* 80349EC0 00345B20 90 1C 00 58 */ stw r0, 0x58(r28)
+/* 80349EC4 00345B24 48 00 00 54 */ b lbl_80349F18
+lbl_80349EC8:
+/* 80349EC8 00345B28 80 7C 00 60 */ lwz r3, 0x60(r28)
+/* 80349ECC 00345B2C 38 80 00 00 */ li r4, 0
+/* 80349ED0 00345B30 4B FE C0 21 */ bl ArrayNth
+/* 80349ED4 00345B34 83 A3 00 00 */ lwz r29, 0(r3)
+/* 80349ED8 00345B38 3B C0 00 00 */ li r30, 0
+/* 80349EDC 00345B3C 48 00 00 20 */ b lbl_80349EFC
+lbl_80349EE0:
+/* 80349EE0 00345B40 80 7C 00 60 */ lwz r3, 0x60(r28)
+/* 80349EE4 00345B44 7F C4 F3 78 */ mr r4, r30
+/* 80349EE8 00345B48 4B FE C0 09 */ bl ArrayNth
+/* 80349EEC 00345B4C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80349EF0 00345B50 3B DE 00 01 */ addi r30, r30, 1
+/* 80349EF4 00345B54 7C 1D 00 50 */ subf r0, r29, r0
+/* 80349EF8 00345B58 90 03 00 00 */ stw r0, 0(r3)
+lbl_80349EFC:
+/* 80349EFC 00345B5C 7C 1E F8 00 */ cmpw r30, r31
+/* 80349F00 00345B60 41 80 FF E0 */ blt lbl_80349EE0
+/* 80349F04 00345B64 7F A5 EB 78 */ mr r5, r29
+/* 80349F08 00345B68 38 7C 00 50 */ addi r3, r28, 0x50
+/* 80349F0C 00345B6C 38 80 00 00 */ li r4, 0
+/* 80349F10 00345B70 4B FF EB 21 */ bl gti2BufferShorten
+/* 80349F14 00345B74 38 60 00 01 */ li r3, 1
+lbl_80349F18:
+/* 80349F18 00345B78 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80349F1C 00345B7C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80349F20 00345B80 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80349F24 00345B84 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80349F28 00345B88 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80349F2C 00345B8C 7C 08 03 A6 */ mtlr r0
+/* 80349F30 00345B90 38 21 00 20 */ addi r1, r1, 0x20
+/* 80349F34 00345B94 4E 80 00 20 */ blr
+
+.global gti2HandleServerChallenge
+gti2HandleServerChallenge:
+/* 80349F38 00345B98 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80349F3C 00345B9C 7C 08 02 A6 */ mflr r0
+/* 80349F40 00345BA0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80349F44 00345BA4 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 80349F48 00345BA8 7C 7F 1B 78 */ mr r31, r3
+/* 80349F4C 00345BAC 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 80349F50 00345BB0 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 80349F54 00345BB4 7C 9D 23 78 */ mr r29, r4
+/* 80349F58 00345BB8 80 C3 00 0C */ lwz r6, 0xc(r3)
+/* 80349F5C 00345BBC 2C 06 00 00 */ cmpwi r6, 0
+/* 80349F60 00345BC0 41 82 00 98 */ beq lbl_80349FF8
+/* 80349F64 00345BC4 2C 06 00 05 */ cmpwi r6, 5
+/* 80349F68 00345BC8 40 80 00 54 */ bge lbl_80349FBC
+/* 80349F6C 00345BCC 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 80349F70 00345BD0 2C 00 00 00 */ cmpwi r0, 0
+/* 80349F74 00345BD4 41 82 00 2C */ beq lbl_80349FA0
+/* 80349F78 00345BD8 4B FF F9 79 */ bl gti2ConnectionClosed
+/* 80349F7C 00345BDC 7F E3 FB 78 */ mr r3, r31
+/* 80349F80 00345BE0 38 80 00 07 */ li r4, 7
+/* 80349F84 00345BE4 38 A0 00 00 */ li r5, 0
+/* 80349F88 00345BE8 38 C0 00 00 */ li r6, 0
+/* 80349F8C 00345BEC 4B FF EC 8D */ bl gti2ConnectedCallback
+/* 80349F90 00345BF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80349F94 00345BF4 40 82 00 50 */ bne lbl_80349FE4
+/* 80349F98 00345BF8 38 60 00 00 */ li r3, 0
+/* 80349F9C 00345BFC 48 00 00 4C */ b lbl_80349FE8
+lbl_80349FA0:
+/* 80349FA0 00345C00 2C 06 00 04 */ cmpwi r6, 4
+/* 80349FA4 00345C04 40 82 00 0C */ bne lbl_80349FB0
+/* 80349FA8 00345C08 38 00 00 01 */ li r0, 1
+/* 80349FAC 00345C0C 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_80349FB0:
+/* 80349FB0 00345C10 7F E3 FB 78 */ mr r3, r31
+/* 80349FB4 00345C14 4B FF F9 3D */ bl gti2ConnectionClosed
+/* 80349FB8 00345C18 48 00 00 2C */ b lbl_80349FE4
+lbl_80349FBC:
+/* 80349FBC 00345C1C 2C 06 00 07 */ cmpwi r6, 7
+/* 80349FC0 00345C20 41 82 00 24 */ beq lbl_80349FE4
+/* 80349FC4 00345C24 4B FF F9 2D */ bl gti2ConnectionClosed
+/* 80349FC8 00345C28 7F E3 FB 78 */ mr r3, r31
+/* 80349FCC 00345C2C 38 80 00 02 */ li r4, 2
+/* 80349FD0 00345C30 4B FF ED FD */ bl gti2ClosedCallback
+/* 80349FD4 00345C34 2C 03 00 00 */ cmpwi r3, 0
+/* 80349FD8 00345C38 40 82 00 0C */ bne lbl_80349FE4
+/* 80349FDC 00345C3C 38 60 00 00 */ li r3, 0
+/* 80349FE0 00345C40 48 00 00 08 */ b lbl_80349FE8
+lbl_80349FE4:
+/* 80349FE4 00345C44 38 60 00 01 */ li r3, 1
+lbl_80349FE8:
+/* 80349FE8 00345C48 7C 03 00 D0 */ neg r0, r3
+/* 80349FEC 00345C4C 7C 00 1B 78 */ or r0, r0, r3
+/* 80349FF0 00345C50 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80349FF4 00345C54 48 00 02 5C */ b lbl_8034A250
+lbl_80349FF8:
+/* 80349FF8 00345C58 2C 05 00 40 */ cmpwi r5, 0x40
+/* 80349FFC 00345C5C 40 80 00 98 */ bge lbl_8034A094
+/* 8034A000 00345C60 2C 06 00 05 */ cmpwi r6, 5
+/* 8034A004 00345C64 40 80 00 54 */ bge lbl_8034A058
+/* 8034A008 00345C68 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034A00C 00345C6C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A010 00345C70 41 82 00 2C */ beq lbl_8034A03C
+/* 8034A014 00345C74 4B FF F8 DD */ bl gti2ConnectionClosed
+/* 8034A018 00345C78 7F E3 FB 78 */ mr r3, r31
+/* 8034A01C 00345C7C 38 80 00 07 */ li r4, 7
+/* 8034A020 00345C80 38 A0 00 00 */ li r5, 0
+/* 8034A024 00345C84 38 C0 00 00 */ li r6, 0
+/* 8034A028 00345C88 4B FF EB F1 */ bl gti2ConnectedCallback
+/* 8034A02C 00345C8C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A030 00345C90 40 82 00 50 */ bne lbl_8034A080
+/* 8034A034 00345C94 38 60 00 00 */ li r3, 0
+/* 8034A038 00345C98 48 00 00 4C */ b lbl_8034A084
+lbl_8034A03C:
+/* 8034A03C 00345C9C 2C 06 00 04 */ cmpwi r6, 4
+/* 8034A040 00345CA0 40 82 00 0C */ bne lbl_8034A04C
+/* 8034A044 00345CA4 38 00 00 01 */ li r0, 1
+/* 8034A048 00345CA8 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034A04C:
+/* 8034A04C 00345CAC 7F E3 FB 78 */ mr r3, r31
+/* 8034A050 00345CB0 4B FF F8 A1 */ bl gti2ConnectionClosed
+/* 8034A054 00345CB4 48 00 00 2C */ b lbl_8034A080
+lbl_8034A058:
+/* 8034A058 00345CB8 2C 06 00 07 */ cmpwi r6, 7
+/* 8034A05C 00345CBC 41 82 00 24 */ beq lbl_8034A080
+/* 8034A060 00345CC0 4B FF F8 91 */ bl gti2ConnectionClosed
+/* 8034A064 00345CC4 7F E3 FB 78 */ mr r3, r31
+/* 8034A068 00345CC8 38 80 00 02 */ li r4, 2
+/* 8034A06C 00345CCC 4B FF ED 61 */ bl gti2ClosedCallback
+/* 8034A070 00345CD0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A074 00345CD4 40 82 00 0C */ bne lbl_8034A080
+/* 8034A078 00345CD8 38 60 00 00 */ li r3, 0
+/* 8034A07C 00345CDC 48 00 00 08 */ b lbl_8034A084
+lbl_8034A080:
+/* 8034A080 00345CE0 38 60 00 01 */ li r3, 1
+lbl_8034A084:
+/* 8034A084 00345CE4 7C 03 00 D0 */ neg r0, r3
+/* 8034A088 00345CE8 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A08C 00345CEC 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034A090 00345CF0 48 00 01 C0 */ b lbl_8034A250
+lbl_8034A094:
+/* 8034A094 00345CF4 7F A3 EB 78 */ mr r3, r29
+/* 8034A098 00345CF8 38 9F 00 68 */ addi r4, r31, 0x68
+/* 8034A09C 00345CFC 4B FF E7 99 */ bl gti2CheckResponse
+/* 8034A0A0 00345D00 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A0A4 00345D04 40 82 00 A4 */ bne lbl_8034A148
+/* 8034A0A8 00345D08 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034A0AC 00345D0C 2C 03 00 05 */ cmpwi r3, 5
+/* 8034A0B0 00345D10 40 80 00 58 */ bge lbl_8034A108
+/* 8034A0B4 00345D14 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8034A0B8 00345D18 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A0BC 00345D1C 41 82 00 30 */ beq lbl_8034A0EC
+/* 8034A0C0 00345D20 7F E3 FB 78 */ mr r3, r31
+/* 8034A0C4 00345D24 4B FF F8 2D */ bl gti2ConnectionClosed
+/* 8034A0C8 00345D28 7F E3 FB 78 */ mr r3, r31
+/* 8034A0CC 00345D2C 38 80 00 07 */ li r4, 7
+/* 8034A0D0 00345D30 38 A0 00 00 */ li r5, 0
+/* 8034A0D4 00345D34 38 C0 00 00 */ li r6, 0
+/* 8034A0D8 00345D38 4B FF EB 41 */ bl gti2ConnectedCallback
+/* 8034A0DC 00345D3C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A0E0 00345D40 40 82 00 54 */ bne lbl_8034A134
+/* 8034A0E4 00345D44 38 60 00 00 */ li r3, 0
+/* 8034A0E8 00345D48 48 00 00 50 */ b lbl_8034A138
+lbl_8034A0EC:
+/* 8034A0EC 00345D4C 2C 03 00 04 */ cmpwi r3, 4
+/* 8034A0F0 00345D50 40 82 00 0C */ bne lbl_8034A0FC
+/* 8034A0F4 00345D54 38 00 00 01 */ li r0, 1
+/* 8034A0F8 00345D58 90 1F 00 14 */ stw r0, 0x14(r31)
+lbl_8034A0FC:
+/* 8034A0FC 00345D5C 7F E3 FB 78 */ mr r3, r31
+/* 8034A100 00345D60 4B FF F7 F1 */ bl gti2ConnectionClosed
+/* 8034A104 00345D64 48 00 00 30 */ b lbl_8034A134
+lbl_8034A108:
+/* 8034A108 00345D68 2C 03 00 07 */ cmpwi r3, 7
+/* 8034A10C 00345D6C 41 82 00 28 */ beq lbl_8034A134
+/* 8034A110 00345D70 7F E3 FB 78 */ mr r3, r31
+/* 8034A114 00345D74 4B FF F7 DD */ bl gti2ConnectionClosed
+/* 8034A118 00345D78 7F E3 FB 78 */ mr r3, r31
+/* 8034A11C 00345D7C 38 80 00 02 */ li r4, 2
+/* 8034A120 00345D80 4B FF EC AD */ bl gti2ClosedCallback
+/* 8034A124 00345D84 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A128 00345D88 40 82 00 0C */ bne lbl_8034A134
+/* 8034A12C 00345D8C 38 60 00 00 */ li r3, 0
+/* 8034A130 00345D90 48 00 00 08 */ b lbl_8034A138
+lbl_8034A134:
+/* 8034A134 00345D94 38 60 00 01 */ li r3, 1
+lbl_8034A138:
+/* 8034A138 00345D98 7C 03 00 D0 */ neg r0, r3
+/* 8034A13C 00345D9C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A140 00345DA0 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034A144 00345DA4 48 00 01 0C */ b lbl_8034A250
+lbl_8034A148:
+/* 8034A148 00345DA8 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034A14C 00345DAC 38 9D 00 20 */ addi r4, r29, 0x20
+/* 8034A150 00345DB0 4B FF E4 F5 */ bl gti2GetResponse
+/* 8034A154 00345DB4 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8034A158 00345DB8 7F E3 FB 78 */ mr r3, r31
+/* 8034A15C 00345DBC 83 BF 00 3C */ lwz r29, 0x3c(r31)
+/* 8034A160 00345DC0 38 C1 00 08 */ addi r6, r1, 8
+/* 8034A164 00345DC4 80 04 00 44 */ lwz r0, 0x44(r4)
+/* 8034A168 00345DC8 38 80 00 03 */ li r4, 3
+/* 8034A16C 00345DCC 83 DF 00 38 */ lwz r30, 0x38(r31)
+/* 8034A170 00345DD0 7C BD 02 14 */ add r5, r29, r0
+/* 8034A174 00345DD4 38 A5 00 27 */ addi r5, r5, 0x27
+/* 8034A178 00345DD8 48 00 20 4D */ bl gti2BeginReliableMessage
+/* 8034A17C 00345DDC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A180 00345DE0 40 82 00 0C */ bne lbl_8034A18C
+/* 8034A184 00345DE4 38 00 00 00 */ li r0, 0
+/* 8034A188 00345DE8 48 00 00 94 */ b lbl_8034A21C
+lbl_8034A18C:
+/* 8034A18C 00345DEC 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034A190 00345DF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A194 00345DF4 41 82 00 0C */ beq lbl_8034A1A0
+/* 8034A198 00345DF8 38 00 00 01 */ li r0, 1
+/* 8034A19C 00345DFC 48 00 00 80 */ b lbl_8034A21C
+lbl_8034A1A0:
+/* 8034A1A0 00345E00 38 7F 00 50 */ addi r3, r31, 0x50
+/* 8034A1A4 00345E04 38 81 00 10 */ addi r4, r1, 0x10
+/* 8034A1A8 00345E08 38 A0 00 20 */ li r5, 0x20
+/* 8034A1AC 00345E0C 4B FF E7 F9 */ bl gti2BufferWriteData
+/* 8034A1B0 00345E10 7F C4 F3 78 */ mr r4, r30
+/* 8034A1B4 00345E14 7F A5 EB 78 */ mr r5, r29
+/* 8034A1B8 00345E18 38 7F 00 50 */ addi r3, r31, 0x50
+/* 8034A1BC 00345E1C 4B FF E7 E9 */ bl gti2BufferWriteData
+/* 8034A1C0 00345E20 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034A1C4 00345E24 4B FE BD 25 */ bl ArrayLength
+/* 8034A1C8 00345E28 7C 64 1B 78 */ mr r4, r3
+/* 8034A1CC 00345E2C 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034A1D0 00345E30 38 84 FF FF */ addi r4, r4, -1
+/* 8034A1D4 00345E34 4B FE BD 1D */ bl ArrayNth
+/* 8034A1D8 00345E38 7C 65 1B 78 */ mr r5, r3
+/* 8034A1DC 00345E3C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034A1E0 00345E40 80 9F 00 50 */ lwz r4, 0x50(r31)
+/* 8034A1E4 00345E44 7F E3 FB 78 */ mr r3, r31
+/* 8034A1E8 00345E48 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034A1EC 00345E4C 7C 84 02 14 */ add r4, r4, r0
+/* 8034A1F0 00345E50 4B FF F3 B5 */ bl gti2ConnectionSendData
+/* 8034A1F4 00345E54 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A1F8 00345E58 40 82 00 0C */ bne lbl_8034A204
+/* 8034A1FC 00345E5C 38 60 00 00 */ li r3, 0
+/* 8034A200 00345E60 48 00 00 10 */ b lbl_8034A210
+lbl_8034A204:
+/* 8034A204 00345E64 38 00 00 00 */ li r0, 0
+/* 8034A208 00345E68 38 60 00 01 */ li r3, 1
+/* 8034A20C 00345E6C 90 1F 00 90 */ stw r0, 0x90(r31)
+lbl_8034A210:
+/* 8034A210 00345E70 7C 03 00 D0 */ neg r0, r3
+/* 8034A214 00345E74 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A218 00345E78 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034A21C:
+/* 8034A21C 00345E7C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A220 00345E80 40 82 00 0C */ bne lbl_8034A22C
+/* 8034A224 00345E84 38 60 00 00 */ li r3, 0
+/* 8034A228 00345E88 48 00 00 28 */ b lbl_8034A250
+lbl_8034A22C:
+/* 8034A22C 00345E8C 80 7F 00 38 */ lwz r3, 0x38(r31)
+/* 8034A230 00345E90 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A234 00345E94 41 82 00 10 */ beq lbl_8034A244
+/* 8034A238 00345E98 4B FE F1 01 */ bl gsifree
+/* 8034A23C 00345E9C 38 00 00 00 */ li r0, 0
+/* 8034A240 00345EA0 90 1F 00 38 */ stw r0, 0x38(r31)
+lbl_8034A244:
+/* 8034A244 00345EA4 38 00 00 01 */ li r0, 1
+/* 8034A248 00345EA8 38 60 00 01 */ li r3, 1
+/* 8034A24C 00345EAC 90 1F 00 0C */ stw r0, 0xc(r31)
+lbl_8034A250:
+/* 8034A250 00345EB0 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8034A254 00345EB4 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 8034A258 00345EB8 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 8034A25C 00345EBC 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 8034A260 00345EC0 7C 08 03 A6 */ mtlr r0
+/* 8034A264 00345EC4 38 21 00 40 */ addi r1, r1, 0x40
+/* 8034A268 00345EC8 4E 80 00 20 */ blr
+
+.global gti2HandleClientResponse
+gti2HandleClientResponse:
+/* 8034A26C 00345ECC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034A270 00345ED0 7C 08 02 A6 */ mflr r0
+/* 8034A274 00345ED4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034A278 00345ED8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034A27C 00345EDC 4B E7 CE AD */ bl _savegpr_27
+/* 8034A280 00345EE0 80 C3 00 0C */ lwz r6, 0xc(r3)
+/* 8034A284 00345EE4 7C 7F 1B 78 */ mr r31, r3
+/* 8034A288 00345EE8 7C 9D 23 78 */ mr r29, r4
+/* 8034A28C 00345EEC 7C BC 2B 78 */ mr r28, r5
+/* 8034A290 00345EF0 2C 06 00 03 */ cmpwi r6, 3
+/* 8034A294 00345EF4 41 82 00 98 */ beq lbl_8034A32C
+/* 8034A298 00345EF8 2C 06 00 05 */ cmpwi r6, 5
+/* 8034A29C 00345EFC 40 80 00 54 */ bge lbl_8034A2F0
+/* 8034A2A0 00345F00 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034A2A4 00345F04 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A2A8 00345F08 41 82 00 2C */ beq lbl_8034A2D4
+/* 8034A2AC 00345F0C 4B FF F6 45 */ bl gti2ConnectionClosed
+/* 8034A2B0 00345F10 7F E3 FB 78 */ mr r3, r31
+/* 8034A2B4 00345F14 38 80 00 07 */ li r4, 7
+/* 8034A2B8 00345F18 38 A0 00 00 */ li r5, 0
+/* 8034A2BC 00345F1C 38 C0 00 00 */ li r6, 0
+/* 8034A2C0 00345F20 4B FF E9 59 */ bl gti2ConnectedCallback
+/* 8034A2C4 00345F24 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A2C8 00345F28 40 82 00 50 */ bne lbl_8034A318
+/* 8034A2CC 00345F2C 38 60 00 00 */ li r3, 0
+/* 8034A2D0 00345F30 48 00 00 4C */ b lbl_8034A31C
+lbl_8034A2D4:
+/* 8034A2D4 00345F34 2C 06 00 04 */ cmpwi r6, 4
+/* 8034A2D8 00345F38 40 82 00 0C */ bne lbl_8034A2E4
+/* 8034A2DC 00345F3C 38 00 00 01 */ li r0, 1
+/* 8034A2E0 00345F40 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034A2E4:
+/* 8034A2E4 00345F44 7F E3 FB 78 */ mr r3, r31
+/* 8034A2E8 00345F48 4B FF F6 09 */ bl gti2ConnectionClosed
+/* 8034A2EC 00345F4C 48 00 00 2C */ b lbl_8034A318
+lbl_8034A2F0:
+/* 8034A2F0 00345F50 2C 06 00 07 */ cmpwi r6, 7
+/* 8034A2F4 00345F54 41 82 00 24 */ beq lbl_8034A318
+/* 8034A2F8 00345F58 4B FF F5 F9 */ bl gti2ConnectionClosed
+/* 8034A2FC 00345F5C 7F E3 FB 78 */ mr r3, r31
+/* 8034A300 00345F60 38 80 00 02 */ li r4, 2
+/* 8034A304 00345F64 4B FF EA C9 */ bl gti2ClosedCallback
+/* 8034A308 00345F68 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A30C 00345F6C 40 82 00 0C */ bne lbl_8034A318
+/* 8034A310 00345F70 38 60 00 00 */ li r3, 0
+/* 8034A314 00345F74 48 00 00 08 */ b lbl_8034A31C
+lbl_8034A318:
+/* 8034A318 00345F78 38 60 00 01 */ li r3, 1
+lbl_8034A31C:
+/* 8034A31C 00345F7C 7C 03 00 D0 */ neg r0, r3
+/* 8034A320 00345F80 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A324 00345F84 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034A328 00345F88 48 00 02 34 */ b lbl_8034A55C
+lbl_8034A32C:
+/* 8034A32C 00345F8C 2C 05 00 20 */ cmpwi r5, 0x20
+/* 8034A330 00345F90 40 80 00 98 */ bge lbl_8034A3C8
+/* 8034A334 00345F94 2C 06 00 05 */ cmpwi r6, 5
+/* 8034A338 00345F98 40 80 00 54 */ bge lbl_8034A38C
+/* 8034A33C 00345F9C 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034A340 00345FA0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A344 00345FA4 41 82 00 2C */ beq lbl_8034A370
+/* 8034A348 00345FA8 4B FF F5 A9 */ bl gti2ConnectionClosed
+/* 8034A34C 00345FAC 7F E3 FB 78 */ mr r3, r31
+/* 8034A350 00345FB0 38 80 00 07 */ li r4, 7
+/* 8034A354 00345FB4 38 A0 00 00 */ li r5, 0
+/* 8034A358 00345FB8 38 C0 00 00 */ li r6, 0
+/* 8034A35C 00345FBC 4B FF E8 BD */ bl gti2ConnectedCallback
+/* 8034A360 00345FC0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A364 00345FC4 40 82 00 50 */ bne lbl_8034A3B4
+/* 8034A368 00345FC8 38 60 00 00 */ li r3, 0
+/* 8034A36C 00345FCC 48 00 00 4C */ b lbl_8034A3B8
+lbl_8034A370:
+/* 8034A370 00345FD0 2C 06 00 04 */ cmpwi r6, 4
+/* 8034A374 00345FD4 40 82 00 0C */ bne lbl_8034A380
+/* 8034A378 00345FD8 38 00 00 01 */ li r0, 1
+/* 8034A37C 00345FDC 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034A380:
+/* 8034A380 00345FE0 7F E3 FB 78 */ mr r3, r31
+/* 8034A384 00345FE4 4B FF F5 6D */ bl gti2ConnectionClosed
+/* 8034A388 00345FE8 48 00 00 2C */ b lbl_8034A3B4
+lbl_8034A38C:
+/* 8034A38C 00345FEC 2C 06 00 07 */ cmpwi r6, 7
+/* 8034A390 00345FF0 41 82 00 24 */ beq lbl_8034A3B4
+/* 8034A394 00345FF4 4B FF F5 5D */ bl gti2ConnectionClosed
+/* 8034A398 00345FF8 7F E3 FB 78 */ mr r3, r31
+/* 8034A39C 00345FFC 38 80 00 02 */ li r4, 2
+/* 8034A3A0 00346000 4B FF EA 2D */ bl gti2ClosedCallback
+/* 8034A3A4 00346004 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A3A8 00346008 40 82 00 0C */ bne lbl_8034A3B4
+/* 8034A3AC 0034600C 38 60 00 00 */ li r3, 0
+/* 8034A3B0 00346010 48 00 00 08 */ b lbl_8034A3B8
+lbl_8034A3B4:
+/* 8034A3B4 00346014 38 60 00 01 */ li r3, 1
+lbl_8034A3B8:
+/* 8034A3B8 00346018 7C 03 00 D0 */ neg r0, r3
+/* 8034A3BC 0034601C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A3C0 00346020 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034A3C4 00346024 48 00 01 98 */ b lbl_8034A55C
+lbl_8034A3C8:
+/* 8034A3C8 00346028 7F A3 EB 78 */ mr r3, r29
+/* 8034A3CC 0034602C 38 9F 00 68 */ addi r4, r31, 0x68
+/* 8034A3D0 00346030 4B FF E4 65 */ bl gti2CheckResponse
+/* 8034A3D4 00346034 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A3D8 00346038 40 82 00 A4 */ bne lbl_8034A47C
+/* 8034A3DC 0034603C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034A3E0 00346040 2C 03 00 05 */ cmpwi r3, 5
+/* 8034A3E4 00346044 40 80 00 58 */ bge lbl_8034A43C
+/* 8034A3E8 00346048 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8034A3EC 0034604C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A3F0 00346050 41 82 00 30 */ beq lbl_8034A420
+/* 8034A3F4 00346054 7F E3 FB 78 */ mr r3, r31
+/* 8034A3F8 00346058 4B FF F4 F9 */ bl gti2ConnectionClosed
+/* 8034A3FC 0034605C 7F E3 FB 78 */ mr r3, r31
+/* 8034A400 00346060 38 80 00 07 */ li r4, 7
+/* 8034A404 00346064 38 A0 00 00 */ li r5, 0
+/* 8034A408 00346068 38 C0 00 00 */ li r6, 0
+/* 8034A40C 0034606C 4B FF E8 0D */ bl gti2ConnectedCallback
+/* 8034A410 00346070 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A414 00346074 40 82 00 54 */ bne lbl_8034A468
+/* 8034A418 00346078 38 60 00 00 */ li r3, 0
+/* 8034A41C 0034607C 48 00 00 50 */ b lbl_8034A46C
+lbl_8034A420:
+/* 8034A420 00346080 2C 03 00 04 */ cmpwi r3, 4
+/* 8034A424 00346084 40 82 00 0C */ bne lbl_8034A430
+/* 8034A428 00346088 38 00 00 01 */ li r0, 1
+/* 8034A42C 0034608C 90 1F 00 14 */ stw r0, 0x14(r31)
+lbl_8034A430:
+/* 8034A430 00346090 7F E3 FB 78 */ mr r3, r31
+/* 8034A434 00346094 4B FF F4 BD */ bl gti2ConnectionClosed
+/* 8034A438 00346098 48 00 00 30 */ b lbl_8034A468
+lbl_8034A43C:
+/* 8034A43C 0034609C 2C 03 00 07 */ cmpwi r3, 7
+/* 8034A440 003460A0 41 82 00 28 */ beq lbl_8034A468
+/* 8034A444 003460A4 7F E3 FB 78 */ mr r3, r31
+/* 8034A448 003460A8 4B FF F4 A9 */ bl gti2ConnectionClosed
+/* 8034A44C 003460AC 7F E3 FB 78 */ mr r3, r31
+/* 8034A450 003460B0 38 80 00 02 */ li r4, 2
+/* 8034A454 003460B4 4B FF E9 79 */ bl gti2ClosedCallback
+/* 8034A458 003460B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A45C 003460BC 40 82 00 0C */ bne lbl_8034A468
+/* 8034A460 003460C0 38 60 00 00 */ li r3, 0
+/* 8034A464 003460C4 48 00 00 08 */ b lbl_8034A46C
+lbl_8034A468:
+/* 8034A468 003460C8 38 60 00 01 */ li r3, 1
+lbl_8034A46C:
+/* 8034A46C 003460CC 7C 03 00 D0 */ neg r0, r3
+/* 8034A470 003460D0 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A474 003460D4 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034A478 003460D8 48 00 00 E4 */ b lbl_8034A55C
+lbl_8034A47C:
+/* 8034A47C 003460DC 83 7F 00 08 */ lwz r27, 8(r31)
+/* 8034A480 003460E0 80 1B 00 20 */ lwz r0, 0x20(r27)
+/* 8034A484 003460E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A488 003460E8 40 82 00 98 */ bne lbl_8034A520
+/* 8034A48C 003460EC 80 1B 00 40 */ lwz r0, 0x40(r27)
+/* 8034A490 003460F0 3B C0 00 00 */ li r30, 0
+/* 8034A494 003460F4 A3 BF 00 04 */ lhz r29, 4(r31)
+/* 8034A498 003460F8 2C 00 00 02 */ cmpwi r0, 2
+/* 8034A49C 003460FC 83 9F 00 00 */ lwz r28, 0(r31)
+/* 8034A4A0 00346100 40 82 00 20 */ bne lbl_8034A4C0
+/* 8034A4A4 00346104 38 00 00 03 */ li r0, 3
+/* 8034A4A8 00346108 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034A4AC 0034610C B0 01 00 08 */ sth r0, 8(r1)
+/* 8034A4B0 00346110 38 81 00 08 */ addi r4, r1, 8
+/* 8034A4B4 00346114 38 A0 00 02 */ li r5, 2
+/* 8034A4B8 00346118 4B CB 9B 49 */ bl memcpy
+/* 8034A4BC 0034611C 3B C0 00 02 */ li r30, 2
+lbl_8034A4C0:
+/* 8034A4C0 00346120 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034A4C4 00346124 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034A4C8 00346128 7C 63 F2 14 */ add r3, r3, r30
+/* 8034A4CC 0034612C 38 A0 00 02 */ li r5, 2
+/* 8034A4D0 00346130 4B CB 9B 31 */ bl memcpy
+/* 8034A4D4 00346134 3B DE 00 02 */ addi r30, r30, 2
+/* 8034A4D8 00346138 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8034A4DC 0034613C 38 00 00 68 */ li r0, 0x68
+/* 8034A4E0 00346140 7F 63 DB 78 */ mr r3, r27
+/* 8034A4E4 00346144 7C 06 F1 AE */ stbx r0, r6, r30
+/* 8034A4E8 00346148 7F 84 E3 78 */ mr r4, r28
+/* 8034A4EC 0034614C 7F A5 EB 78 */ mr r5, r29
+/* 8034A4F0 00346150 38 FE 00 01 */ addi r7, r30, 1
+/* 8034A4F4 00346154 48 00 31 55 */ bl gti2SocketSend
+/* 8034A4F8 00346158 7C 03 00 D0 */ neg r0, r3
+/* 8034A4FC 0034615C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A500 00346160 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034A504 00346164 40 82 00 0C */ bne lbl_8034A510
+/* 8034A508 00346168 38 60 00 00 */ li r3, 0
+/* 8034A50C 0034616C 48 00 00 50 */ b lbl_8034A55C
+lbl_8034A510:
+/* 8034A510 00346170 7F E3 FB 78 */ mr r3, r31
+/* 8034A514 00346174 4B FF F3 DD */ bl gti2ConnectionClosed
+/* 8034A518 00346178 38 60 00 01 */ li r3, 1
+/* 8034A51C 0034617C 48 00 00 40 */ b lbl_8034A55C
+lbl_8034A520:
+/* 8034A520 00346180 38 00 00 04 */ li r0, 4
+/* 8034A524 00346184 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8034A528 00346188 4B FE EA B1 */ bl current_time
+/* 8034A52C 0034618C 80 1F 00 8C */ lwz r0, 0x8c(r31)
+/* 8034A530 00346190 7F E4 FB 78 */ mr r4, r31
+/* 8034A534 00346194 80 BF 00 00 */ lwz r5, 0(r31)
+/* 8034A538 00346198 39 1D 00 20 */ addi r8, r29, 0x20
+/* 8034A53C 0034619C 7C E0 18 50 */ subf r7, r0, r3
+/* 8034A540 003461A0 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8034A544 003461A4 A0 DF 00 04 */ lhz r6, 4(r31)
+/* 8034A548 003461A8 39 3C FF E0 */ addi r9, r28, -32
+/* 8034A54C 003461AC 4B FF E5 E5 */ bl gti2ConnectAttemptCallback
+/* 8034A550 003461B0 7C 03 00 D0 */ neg r0, r3
+/* 8034A554 003461B4 7C 00 1B 78 */ or r0, r0, r3
+/* 8034A558 003461B8 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_8034A55C:
+/* 8034A55C 003461BC 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034A560 003461C0 4B E7 CC 15 */ bl _restgpr_27
+/* 8034A564 003461C4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034A568 003461C8 7C 08 03 A6 */ mtlr r0
+/* 8034A56C 003461CC 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034A570 003461D0 4E 80 00 20 */ blr
+
+.global gti2DeliverReliableMessage
+gti2DeliverReliableMessage:
+/* 8034A574 003461D4 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 8034A578 003461D8 7C 08 02 A6 */ mflr r0
+/* 8034A57C 003461DC 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8034A580 003461E0 39 61 00 80 */ addi r11, r1, 0x80
+/* 8034A584 003461E4 4B E7 CB 9D */ bl _savegpr_25
+/* 8034A588 003461E8 A0 E3 00 66 */ lhz r7, 0x66(r3)
+/* 8034A58C 003461EC 2C 04 00 00 */ cmpwi r4, 0
+/* 8034A590 003461F0 7C 7E 1B 78 */ mr r30, r3
+/* 8034A594 003461F4 7C BF 2B 78 */ mr r31, r5
+/* 8034A598 003461F8 38 07 00 01 */ addi r0, r7, 1
+/* 8034A59C 003461FC 7C D9 33 78 */ mr r25, r6
+/* 8034A5A0 00346200 B0 03 00 66 */ sth r0, 0x66(r3)
+/* 8034A5A4 00346204 40 82 01 20 */ bne lbl_8034A6C4
+/* 8034A5A8 00346208 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034A5AC 0034620C 2C 84 00 05 */ cmpwi cr1, r4, 5
+/* 8034A5B0 00346210 41 86 00 9C */ beq cr1, lbl_8034A64C
+/* 8034A5B4 00346214 2C 04 00 06 */ cmpwi r4, 6
+/* 8034A5B8 00346218 41 82 00 94 */ beq lbl_8034A64C
+/* 8034A5BC 0034621C 40 84 00 54 */ bge cr1, lbl_8034A610
+/* 8034A5C0 00346220 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034A5C4 00346224 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A5C8 00346228 41 82 00 2C */ beq lbl_8034A5F4
+/* 8034A5CC 0034622C 4B FF F3 25 */ bl gti2ConnectionClosed
+/* 8034A5D0 00346230 7F C3 F3 78 */ mr r3, r30
+/* 8034A5D4 00346234 38 80 00 07 */ li r4, 7
+/* 8034A5D8 00346238 38 A0 00 00 */ li r5, 0
+/* 8034A5DC 0034623C 38 C0 00 00 */ li r6, 0
+/* 8034A5E0 00346240 4B FF E6 39 */ bl gti2ConnectedCallback
+/* 8034A5E4 00346244 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A5E8 00346248 40 82 00 50 */ bne lbl_8034A638
+/* 8034A5EC 0034624C 38 00 00 00 */ li r0, 0
+/* 8034A5F0 00346250 48 00 00 4C */ b lbl_8034A63C
+lbl_8034A5F4:
+/* 8034A5F4 00346254 2C 04 00 04 */ cmpwi r4, 4
+/* 8034A5F8 00346258 40 82 00 0C */ bne lbl_8034A604
+/* 8034A5FC 0034625C 38 00 00 01 */ li r0, 1
+/* 8034A600 00346260 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034A604:
+/* 8034A604 00346264 7F C3 F3 78 */ mr r3, r30
+/* 8034A608 00346268 4B FF F2 E9 */ bl gti2ConnectionClosed
+/* 8034A60C 0034626C 48 00 00 2C */ b lbl_8034A638
+lbl_8034A610:
+/* 8034A610 00346270 2C 04 00 07 */ cmpwi r4, 7
+/* 8034A614 00346274 41 82 00 24 */ beq lbl_8034A638
+/* 8034A618 00346278 4B FF F2 D9 */ bl gti2ConnectionClosed
+/* 8034A61C 0034627C 7F C3 F3 78 */ mr r3, r30
+/* 8034A620 00346280 38 80 00 02 */ li r4, 2
+/* 8034A624 00346284 4B FF E7 A9 */ bl gti2ClosedCallback
+/* 8034A628 00346288 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A62C 0034628C 40 82 00 0C */ bne lbl_8034A638
+/* 8034A630 00346290 38 00 00 00 */ li r0, 0
+/* 8034A634 00346294 48 00 00 08 */ b lbl_8034A63C
+lbl_8034A638:
+/* 8034A638 00346298 38 00 00 01 */ li r0, 1
+lbl_8034A63C:
+/* 8034A63C 0034629C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A640 003462A0 40 82 00 70 */ bne lbl_8034A6B0
+/* 8034A644 003462A4 38 00 00 00 */ li r0, 0
+/* 8034A648 003462A8 48 00 00 6C */ b lbl_8034A6B4
+lbl_8034A64C:
+/* 8034A64C 003462AC 80 63 00 9C */ lwz r3, 0x9c(r3)
+/* 8034A650 003462B0 4B FE B8 99 */ bl ArrayLength
+/* 8034A654 003462B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A658 003462B8 41 82 00 34 */ beq lbl_8034A68C
+/* 8034A65C 003462BC 7F C3 F3 78 */ mr r3, r30
+/* 8034A660 003462C0 7F E5 FB 78 */ mr r5, r31
+/* 8034A664 003462C4 7F 26 CB 78 */ mr r6, r25
+/* 8034A668 003462C8 38 80 00 00 */ li r4, 0
+/* 8034A66C 003462CC 38 E0 00 01 */ li r7, 1
+/* 8034A670 003462D0 4B FF E9 DD */ bl gti2ReceiveFilterCallback
+/* 8034A674 003462D4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A678 003462D8 40 82 00 0C */ bne lbl_8034A684
+/* 8034A67C 003462DC 38 00 00 00 */ li r0, 0
+/* 8034A680 003462E0 48 00 00 34 */ b lbl_8034A6B4
+lbl_8034A684:
+/* 8034A684 003462E4 38 00 00 01 */ li r0, 1
+/* 8034A688 003462E8 48 00 00 2C */ b lbl_8034A6B4
+lbl_8034A68C:
+/* 8034A68C 003462EC 7F C3 F3 78 */ mr r3, r30
+/* 8034A690 003462F0 7F E4 FB 78 */ mr r4, r31
+/* 8034A694 003462F4 7F 25 CB 78 */ mr r5, r25
+/* 8034A698 003462F8 38 C0 00 01 */ li r6, 1
+/* 8034A69C 003462FC 4B FF E6 59 */ bl gti2ReceivedCallback
+/* 8034A6A0 00346300 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A6A4 00346304 40 82 00 0C */ bne lbl_8034A6B0
+/* 8034A6A8 00346308 38 00 00 00 */ li r0, 0
+/* 8034A6AC 0034630C 48 00 00 08 */ b lbl_8034A6B4
+lbl_8034A6B0:
+/* 8034A6B0 00346310 38 00 00 01 */ li r0, 1
+lbl_8034A6B4:
+/* 8034A6B4 00346314 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A6B8 00346318 40 82 06 5C */ bne lbl_8034AD14
+/* 8034A6BC 0034631C 38 60 00 00 */ li r3, 0
+/* 8034A6C0 00346320 48 00 06 58 */ b lbl_8034AD18
+lbl_8034A6C4:
+/* 8034A6C4 00346324 2C 04 00 01 */ cmpwi r4, 1
+/* 8034A6C8 00346328 40 82 02 68 */ bne lbl_8034A930
+/* 8034A6CC 0034632C 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034A6D0 00346330 2C 04 00 02 */ cmpwi r4, 2
+/* 8034A6D4 00346334 41 82 00 A0 */ beq lbl_8034A774
+/* 8034A6D8 00346338 2C 04 00 05 */ cmpwi r4, 5
+/* 8034A6DC 0034633C 40 80 00 54 */ bge lbl_8034A730
+/* 8034A6E0 00346340 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034A6E4 00346344 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A6E8 00346348 41 82 00 2C */ beq lbl_8034A714
+/* 8034A6EC 0034634C 4B FF F2 05 */ bl gti2ConnectionClosed
+/* 8034A6F0 00346350 7F C3 F3 78 */ mr r3, r30
+/* 8034A6F4 00346354 38 80 00 07 */ li r4, 7
+/* 8034A6F8 00346358 38 A0 00 00 */ li r5, 0
+/* 8034A6FC 0034635C 38 C0 00 00 */ li r6, 0
+/* 8034A700 00346360 4B FF E5 19 */ bl gti2ConnectedCallback
+/* 8034A704 00346364 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A708 00346368 40 82 00 50 */ bne lbl_8034A758
+/* 8034A70C 0034636C 38 00 00 00 */ li r0, 0
+/* 8034A710 00346370 48 00 00 4C */ b lbl_8034A75C
+lbl_8034A714:
+/* 8034A714 00346374 2C 04 00 04 */ cmpwi r4, 4
+/* 8034A718 00346378 40 82 00 0C */ bne lbl_8034A724
+/* 8034A71C 0034637C 38 00 00 01 */ li r0, 1
+/* 8034A720 00346380 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034A724:
+/* 8034A724 00346384 7F C3 F3 78 */ mr r3, r30
+/* 8034A728 00346388 4B FF F1 C9 */ bl gti2ConnectionClosed
+/* 8034A72C 0034638C 48 00 00 2C */ b lbl_8034A758
+lbl_8034A730:
+/* 8034A730 00346390 2C 04 00 07 */ cmpwi r4, 7
+/* 8034A734 00346394 41 82 00 24 */ beq lbl_8034A758
+/* 8034A738 00346398 4B FF F1 B9 */ bl gti2ConnectionClosed
+/* 8034A73C 0034639C 7F C3 F3 78 */ mr r3, r30
+/* 8034A740 003463A0 38 80 00 02 */ li r4, 2
+/* 8034A744 003463A4 4B FF E6 89 */ bl gti2ClosedCallback
+/* 8034A748 003463A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A74C 003463AC 40 82 00 0C */ bne lbl_8034A758
+/* 8034A750 003463B0 38 00 00 00 */ li r0, 0
+/* 8034A754 003463B4 48 00 00 08 */ b lbl_8034A75C
+lbl_8034A758:
+/* 8034A758 003463B8 38 00 00 01 */ li r0, 1
+lbl_8034A75C:
+/* 8034A75C 003463BC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A760 003463C0 40 82 00 0C */ bne lbl_8034A76C
+/* 8034A764 003463C4 38 60 00 00 */ li r3, 0
+/* 8034A768 003463C8 48 00 01 B8 */ b lbl_8034A920
+lbl_8034A76C:
+/* 8034A76C 003463CC 38 60 00 01 */ li r3, 1
+/* 8034A770 003463D0 48 00 01 B0 */ b lbl_8034A920
+lbl_8034A774:
+/* 8034A774 003463D4 2C 06 00 20 */ cmpwi r6, 0x20
+/* 8034A778 003463D8 40 80 00 A0 */ bge lbl_8034A818
+/* 8034A77C 003463DC 2C 04 00 05 */ cmpwi r4, 5
+/* 8034A780 003463E0 40 80 00 54 */ bge lbl_8034A7D4
+/* 8034A784 003463E4 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034A788 003463E8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A78C 003463EC 41 82 00 2C */ beq lbl_8034A7B8
+/* 8034A790 003463F0 4B FF F1 61 */ bl gti2ConnectionClosed
+/* 8034A794 003463F4 7F C3 F3 78 */ mr r3, r30
+/* 8034A798 003463F8 38 80 00 07 */ li r4, 7
+/* 8034A79C 003463FC 38 A0 00 00 */ li r5, 0
+/* 8034A7A0 00346400 38 C0 00 00 */ li r6, 0
+/* 8034A7A4 00346404 4B FF E4 75 */ bl gti2ConnectedCallback
+/* 8034A7A8 00346408 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A7AC 0034640C 40 82 00 50 */ bne lbl_8034A7FC
+/* 8034A7B0 00346410 38 00 00 00 */ li r0, 0
+/* 8034A7B4 00346414 48 00 00 4C */ b lbl_8034A800
+lbl_8034A7B8:
+/* 8034A7B8 00346418 2C 04 00 04 */ cmpwi r4, 4
+/* 8034A7BC 0034641C 40 82 00 0C */ bne lbl_8034A7C8
+/* 8034A7C0 00346420 38 00 00 01 */ li r0, 1
+/* 8034A7C4 00346424 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034A7C8:
+/* 8034A7C8 00346428 7F C3 F3 78 */ mr r3, r30
+/* 8034A7CC 0034642C 4B FF F1 25 */ bl gti2ConnectionClosed
+/* 8034A7D0 00346430 48 00 00 2C */ b lbl_8034A7FC
+lbl_8034A7D4:
+/* 8034A7D4 00346434 2C 04 00 07 */ cmpwi r4, 7
+/* 8034A7D8 00346438 41 82 00 24 */ beq lbl_8034A7FC
+/* 8034A7DC 0034643C 4B FF F1 15 */ bl gti2ConnectionClosed
+/* 8034A7E0 00346440 7F C3 F3 78 */ mr r3, r30
+/* 8034A7E4 00346444 38 80 00 02 */ li r4, 2
+/* 8034A7E8 00346448 4B FF E5 E5 */ bl gti2ClosedCallback
+/* 8034A7EC 0034644C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A7F0 00346450 40 82 00 0C */ bne lbl_8034A7FC
+/* 8034A7F4 00346454 38 00 00 00 */ li r0, 0
+/* 8034A7F8 00346458 48 00 00 08 */ b lbl_8034A800
+lbl_8034A7FC:
+/* 8034A7FC 0034645C 38 00 00 01 */ li r0, 1
+lbl_8034A800:
+/* 8034A800 00346460 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A804 00346464 40 82 00 0C */ bne lbl_8034A810
+/* 8034A808 00346468 38 60 00 00 */ li r3, 0
+/* 8034A80C 0034646C 48 00 01 14 */ b lbl_8034A920
+lbl_8034A810:
+/* 8034A810 00346470 38 60 00 01 */ li r3, 1
+/* 8034A814 00346474 48 00 01 0C */ b lbl_8034A920
+lbl_8034A818:
+/* 8034A818 00346478 7F E4 FB 78 */ mr r4, r31
+/* 8034A81C 0034647C 38 61 00 20 */ addi r3, r1, 0x20
+/* 8034A820 00346480 4B FF DE 25 */ bl gti2GetResponse
+/* 8034A824 00346484 38 61 00 40 */ addi r3, r1, 0x40
+/* 8034A828 00346488 4B FF DD 0D */ bl gti2GetChallenge
+/* 8034A82C 0034648C 38 7E 00 68 */ addi r3, r30, 0x68
+/* 8034A830 00346490 38 81 00 40 */ addi r4, r1, 0x40
+/* 8034A834 00346494 4B FF DE 11 */ bl gti2GetResponse
+/* 8034A838 00346498 80 BE 00 08 */ lwz r5, 8(r30)
+/* 8034A83C 0034649C 7F C3 F3 78 */ mr r3, r30
+/* 8034A840 003464A0 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8034A844 003464A4 38 80 00 02 */ li r4, 2
+/* 8034A848 003464A8 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 8034A84C 003464AC 38 A5 00 47 */ addi r5, r5, 0x47
+/* 8034A850 003464B0 48 00 19 75 */ bl gti2BeginReliableMessage
+/* 8034A854 003464B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A858 003464B8 40 82 00 0C */ bne lbl_8034A864
+/* 8034A85C 003464BC 38 60 00 00 */ li r3, 0
+/* 8034A860 003464C0 48 00 00 A4 */ b lbl_8034A904
+lbl_8034A864:
+/* 8034A864 003464C4 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8034A868 003464C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A86C 003464CC 41 82 00 0C */ beq lbl_8034A878
+/* 8034A870 003464D0 38 60 00 01 */ li r3, 1
+/* 8034A874 003464D4 48 00 00 90 */ b lbl_8034A904
+lbl_8034A878:
+/* 8034A878 003464D8 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034A87C 003464DC 38 81 00 20 */ addi r4, r1, 0x20
+/* 8034A880 003464E0 38 A0 00 20 */ li r5, 0x20
+/* 8034A884 003464E4 4B FF E1 21 */ bl gti2BufferWriteData
+/* 8034A888 003464E8 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034A88C 003464EC 38 81 00 40 */ addi r4, r1, 0x40
+/* 8034A890 003464F0 38 A0 00 20 */ li r5, 0x20
+/* 8034A894 003464F4 4B FF E1 11 */ bl gti2BufferWriteData
+/* 8034A898 003464F8 80 7E 00 60 */ lwz r3, 0x60(r30)
+/* 8034A89C 003464FC 4B FE B6 4D */ bl ArrayLength
+/* 8034A8A0 00346500 7C 64 1B 78 */ mr r4, r3
+/* 8034A8A4 00346504 80 7E 00 60 */ lwz r3, 0x60(r30)
+/* 8034A8A8 00346508 38 84 FF FF */ addi r4, r4, -1
+/* 8034A8AC 0034650C 4B FE B6 45 */ bl ArrayNth
+/* 8034A8B0 00346510 7C 65 1B 78 */ mr r5, r3
+/* 8034A8B4 00346514 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034A8B8 00346518 80 9E 00 50 */ lwz r4, 0x50(r30)
+/* 8034A8BC 0034651C 7F C3 F3 78 */ mr r3, r30
+/* 8034A8C0 00346520 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034A8C4 00346524 7C 84 02 14 */ add r4, r4, r0
+/* 8034A8C8 00346528 4B FF EC DD */ bl gti2ConnectionSendData
+/* 8034A8CC 0034652C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A8D0 00346530 40 82 00 0C */ bne lbl_8034A8DC
+/* 8034A8D4 00346534 38 60 00 00 */ li r3, 0
+/* 8034A8D8 00346538 48 00 00 10 */ b lbl_8034A8E8
+lbl_8034A8DC:
+/* 8034A8DC 0034653C 38 00 00 00 */ li r0, 0
+/* 8034A8E0 00346540 38 60 00 01 */ li r3, 1
+/* 8034A8E4 00346544 90 1E 00 90 */ stw r0, 0x90(r30)
+lbl_8034A8E8:
+/* 8034A8E8 00346548 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A8EC 0034654C 40 82 00 0C */ bne lbl_8034A8F8
+/* 8034A8F0 00346550 38 60 00 00 */ li r3, 0
+/* 8034A8F4 00346554 48 00 00 10 */ b lbl_8034A904
+lbl_8034A8F8:
+/* 8034A8F8 00346558 80 1E 00 88 */ lwz r0, 0x88(r30)
+/* 8034A8FC 0034655C 38 60 00 01 */ li r3, 1
+/* 8034A900 00346560 90 1E 00 8C */ stw r0, 0x8c(r30)
+lbl_8034A904:
+/* 8034A904 00346564 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A908 00346568 40 82 00 0C */ bne lbl_8034A914
+/* 8034A90C 0034656C 38 60 00 00 */ li r3, 0
+/* 8034A910 00346570 48 00 00 10 */ b lbl_8034A920
+lbl_8034A914:
+/* 8034A914 00346574 38 00 00 03 */ li r0, 3
+/* 8034A918 00346578 38 60 00 01 */ li r3, 1
+/* 8034A91C 0034657C 90 1E 00 0C */ stw r0, 0xc(r30)
+lbl_8034A920:
+/* 8034A920 00346580 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A924 00346584 40 82 03 F0 */ bne lbl_8034AD14
+/* 8034A928 00346588 38 60 00 00 */ li r3, 0
+/* 8034A92C 0034658C 48 00 03 EC */ b lbl_8034AD18
+lbl_8034A930:
+/* 8034A930 00346590 2C 04 00 02 */ cmpwi r4, 2
+/* 8034A934 00346594 40 82 00 20 */ bne lbl_8034A954
+/* 8034A938 00346598 7F E4 FB 78 */ mr r4, r31
+/* 8034A93C 0034659C 7F 25 CB 78 */ mr r5, r25
+/* 8034A940 003465A0 4B FF F5 F9 */ bl gti2HandleServerChallenge
+/* 8034A944 003465A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A948 003465A8 40 82 03 CC */ bne lbl_8034AD14
+/* 8034A94C 003465AC 38 60 00 00 */ li r3, 0
+/* 8034A950 003465B0 48 00 03 C8 */ b lbl_8034AD18
+lbl_8034A954:
+/* 8034A954 003465B4 2C 04 00 03 */ cmpwi r4, 3
+/* 8034A958 003465B8 40 82 00 20 */ bne lbl_8034A978
+/* 8034A95C 003465BC 7F E4 FB 78 */ mr r4, r31
+/* 8034A960 003465C0 7F 25 CB 78 */ mr r5, r25
+/* 8034A964 003465C4 4B FF F9 09 */ bl gti2HandleClientResponse
+/* 8034A968 003465C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A96C 003465CC 40 82 03 A8 */ bne lbl_8034AD14
+/* 8034A970 003465D0 38 60 00 00 */ li r3, 0
+/* 8034A974 003465D4 48 00 03 A4 */ b lbl_8034AD18
+lbl_8034A978:
+/* 8034A978 003465D8 2C 04 00 04 */ cmpwi r4, 4
+/* 8034A97C 003465DC 40 82 00 E0 */ bne lbl_8034AA5C
+/* 8034A980 003465E0 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034A984 003465E4 2C 04 00 01 */ cmpwi r4, 1
+/* 8034A988 003465E8 41 82 00 A0 */ beq lbl_8034AA28
+/* 8034A98C 003465EC 2C 04 00 05 */ cmpwi r4, 5
+/* 8034A990 003465F0 40 80 00 54 */ bge lbl_8034A9E4
+/* 8034A994 003465F4 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034A998 003465F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034A99C 003465FC 41 82 00 2C */ beq lbl_8034A9C8
+/* 8034A9A0 00346600 4B FF EF 51 */ bl gti2ConnectionClosed
+/* 8034A9A4 00346604 7F C3 F3 78 */ mr r3, r30
+/* 8034A9A8 00346608 38 80 00 07 */ li r4, 7
+/* 8034A9AC 0034660C 38 A0 00 00 */ li r5, 0
+/* 8034A9B0 00346610 38 C0 00 00 */ li r6, 0
+/* 8034A9B4 00346614 4B FF E2 65 */ bl gti2ConnectedCallback
+/* 8034A9B8 00346618 2C 03 00 00 */ cmpwi r3, 0
+/* 8034A9BC 0034661C 40 82 00 50 */ bne lbl_8034AA0C
+/* 8034A9C0 00346620 38 00 00 00 */ li r0, 0
+/* 8034A9C4 00346624 48 00 00 4C */ b lbl_8034AA10
+lbl_8034A9C8:
+/* 8034A9C8 00346628 2C 04 00 04 */ cmpwi r4, 4
+/* 8034A9CC 0034662C 40 82 00 0C */ bne lbl_8034A9D8
+/* 8034A9D0 00346630 38 00 00 01 */ li r0, 1
+/* 8034A9D4 00346634 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034A9D8:
+/* 8034A9D8 00346638 7F C3 F3 78 */ mr r3, r30
+/* 8034A9DC 0034663C 4B FF EF 15 */ bl gti2ConnectionClosed
+/* 8034A9E0 00346640 48 00 00 2C */ b lbl_8034AA0C
+lbl_8034A9E4:
+/* 8034A9E4 00346644 2C 04 00 07 */ cmpwi r4, 7
+/* 8034A9E8 00346648 41 82 00 24 */ beq lbl_8034AA0C
+/* 8034A9EC 0034664C 4B FF EF 05 */ bl gti2ConnectionClosed
+/* 8034A9F0 00346650 7F C3 F3 78 */ mr r3, r30
+/* 8034A9F4 00346654 38 80 00 02 */ li r4, 2
+/* 8034A9F8 00346658 4B FF E3 D5 */ bl gti2ClosedCallback
+/* 8034A9FC 0034665C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AA00 00346660 40 82 00 0C */ bne lbl_8034AA0C
+/* 8034AA04 00346664 38 00 00 00 */ li r0, 0
+/* 8034AA08 00346668 48 00 00 08 */ b lbl_8034AA10
+lbl_8034AA0C:
+/* 8034AA0C 0034666C 38 00 00 01 */ li r0, 1
+lbl_8034AA10:
+/* 8034AA10 00346670 2C 00 00 00 */ cmpwi r0, 0
+/* 8034AA14 00346674 40 82 00 0C */ bne lbl_8034AA20
+/* 8034AA18 00346678 38 00 00 00 */ li r0, 0
+/* 8034AA1C 0034667C 48 00 00 30 */ b lbl_8034AA4C
+lbl_8034AA20:
+/* 8034AA20 00346680 38 00 00 01 */ li r0, 1
+/* 8034AA24 00346684 48 00 00 28 */ b lbl_8034AA4C
+lbl_8034AA28:
+/* 8034AA28 00346688 38 00 00 05 */ li r0, 5
+/* 8034AA2C 0034668C 38 80 00 00 */ li r4, 0
+/* 8034AA30 00346690 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8034AA34 00346694 38 A0 00 00 */ li r5, 0
+/* 8034AA38 00346698 38 C0 00 00 */ li r6, 0
+/* 8034AA3C 0034669C 4B FF E1 DD */ bl gti2ConnectedCallback
+/* 8034AA40 003466A0 7C 03 00 D0 */ neg r0, r3
+/* 8034AA44 003466A4 7C 00 1B 78 */ or r0, r0, r3
+/* 8034AA48 003466A8 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034AA4C:
+/* 8034AA4C 003466AC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034AA50 003466B0 40 82 02 C4 */ bne lbl_8034AD14
+/* 8034AA54 003466B4 38 60 00 00 */ li r3, 0
+/* 8034AA58 003466B8 48 00 02 C0 */ b lbl_8034AD18
+lbl_8034AA5C:
+/* 8034AA5C 003466BC 2C 04 00 05 */ cmpwi r4, 5
+/* 8034AA60 003466C0 40 82 01 68 */ bne lbl_8034ABC8
+/* 8034AA64 003466C4 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034AA68 003466C8 2C 04 00 01 */ cmpwi r4, 1
+/* 8034AA6C 003466CC 41 82 00 A0 */ beq lbl_8034AB0C
+/* 8034AA70 003466D0 2C 04 00 05 */ cmpwi r4, 5
+/* 8034AA74 003466D4 40 80 00 54 */ bge lbl_8034AAC8
+/* 8034AA78 003466D8 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034AA7C 003466DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034AA80 003466E0 41 82 00 2C */ beq lbl_8034AAAC
+/* 8034AA84 003466E4 4B FF EE 6D */ bl gti2ConnectionClosed
+/* 8034AA88 003466E8 7F C3 F3 78 */ mr r3, r30
+/* 8034AA8C 003466EC 38 80 00 07 */ li r4, 7
+/* 8034AA90 003466F0 38 A0 00 00 */ li r5, 0
+/* 8034AA94 003466F4 38 C0 00 00 */ li r6, 0
+/* 8034AA98 003466F8 4B FF E1 81 */ bl gti2ConnectedCallback
+/* 8034AA9C 003466FC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AAA0 00346700 40 82 00 50 */ bne lbl_8034AAF0
+/* 8034AAA4 00346704 38 00 00 00 */ li r0, 0
+/* 8034AAA8 00346708 48 00 00 4C */ b lbl_8034AAF4
+lbl_8034AAAC:
+/* 8034AAAC 0034670C 2C 04 00 04 */ cmpwi r4, 4
+/* 8034AAB0 00346710 40 82 00 0C */ bne lbl_8034AABC
+/* 8034AAB4 00346714 38 00 00 01 */ li r0, 1
+/* 8034AAB8 00346718 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034AABC:
+/* 8034AABC 0034671C 7F C3 F3 78 */ mr r3, r30
+/* 8034AAC0 00346720 4B FF EE 31 */ bl gti2ConnectionClosed
+/* 8034AAC4 00346724 48 00 00 2C */ b lbl_8034AAF0
+lbl_8034AAC8:
+/* 8034AAC8 00346728 2C 04 00 07 */ cmpwi r4, 7
+/* 8034AACC 0034672C 41 82 00 24 */ beq lbl_8034AAF0
+/* 8034AAD0 00346730 4B FF EE 21 */ bl gti2ConnectionClosed
+/* 8034AAD4 00346734 7F C3 F3 78 */ mr r3, r30
+/* 8034AAD8 00346738 38 80 00 02 */ li r4, 2
+/* 8034AADC 0034673C 4B FF E2 F1 */ bl gti2ClosedCallback
+/* 8034AAE0 00346740 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AAE4 00346744 40 82 00 0C */ bne lbl_8034AAF0
+/* 8034AAE8 00346748 38 00 00 00 */ li r0, 0
+/* 8034AAEC 0034674C 48 00 00 08 */ b lbl_8034AAF4
+lbl_8034AAF0:
+/* 8034AAF0 00346750 38 00 00 01 */ li r0, 1
+lbl_8034AAF4:
+/* 8034AAF4 00346754 2C 00 00 00 */ cmpwi r0, 0
+/* 8034AAF8 00346758 40 82 00 0C */ bne lbl_8034AB04
+/* 8034AAFC 0034675C 38 00 00 00 */ li r0, 0
+/* 8034AB00 00346760 48 00 00 B8 */ b lbl_8034ABB8
+lbl_8034AB04:
+/* 8034AB04 00346764 38 00 00 01 */ li r0, 1
+/* 8034AB08 00346768 48 00 00 B0 */ b lbl_8034ABB8
+lbl_8034AB0C:
+/* 8034AB0C 0034676C 4B FF ED E5 */ bl gti2ConnectionClosed
+/* 8034AB10 00346770 83 BE 00 08 */ lwz r29, 8(r30)
+/* 8034AB14 00346774 3B 40 00 00 */ li r26, 0
+/* 8034AB18 00346778 A3 7E 00 04 */ lhz r27, 4(r30)
+/* 8034AB1C 0034677C 80 1D 00 40 */ lwz r0, 0x40(r29)
+/* 8034AB20 00346780 83 9E 00 00 */ lwz r28, 0(r30)
+/* 8034AB24 00346784 2C 00 00 02 */ cmpwi r0, 2
+/* 8034AB28 00346788 40 82 00 20 */ bne lbl_8034AB48
+/* 8034AB2C 0034678C 38 00 00 03 */ li r0, 3
+/* 8034AB30 00346790 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034AB34 00346794 B0 01 00 0A */ sth r0, 0xa(r1)
+/* 8034AB38 00346798 38 81 00 0A */ addi r4, r1, 0xa
+/* 8034AB3C 0034679C 38 A0 00 02 */ li r5, 2
+/* 8034AB40 003467A0 4B CB 94 C1 */ bl memcpy
+/* 8034AB44 003467A4 3B 40 00 02 */ li r26, 2
+lbl_8034AB48:
+/* 8034AB48 003467A8 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034AB4C 003467AC 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034AB50 003467B0 7C 63 D2 14 */ add r3, r3, r26
+/* 8034AB54 003467B4 38 A0 00 02 */ li r5, 2
+/* 8034AB58 003467B8 4B CB 94 A9 */ bl memcpy
+/* 8034AB5C 003467BC 3B 5A 00 02 */ addi r26, r26, 2
+/* 8034AB60 003467C0 38 C1 00 18 */ addi r6, r1, 0x18
+/* 8034AB64 003467C4 38 00 00 68 */ li r0, 0x68
+/* 8034AB68 003467C8 7F A3 EB 78 */ mr r3, r29
+/* 8034AB6C 003467CC 7C 06 D1 AE */ stbx r0, r6, r26
+/* 8034AB70 003467D0 7F 84 E3 78 */ mr r4, r28
+/* 8034AB74 003467D4 7F 65 DB 78 */ mr r5, r27
+/* 8034AB78 003467D8 38 FA 00 01 */ addi r7, r26, 1
+/* 8034AB7C 003467DC 48 00 2A CD */ bl gti2SocketSend
+/* 8034AB80 003467E0 7C 03 00 D0 */ neg r0, r3
+/* 8034AB84 003467E4 7C 00 1B 78 */ or r0, r0, r3
+/* 8034AB88 003467E8 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034AB8C 003467EC 40 82 00 0C */ bne lbl_8034AB98
+/* 8034AB90 003467F0 38 00 00 00 */ li r0, 0
+/* 8034AB94 003467F4 48 00 00 24 */ b lbl_8034ABB8
+lbl_8034AB98:
+/* 8034AB98 003467F8 7F C3 F3 78 */ mr r3, r30
+/* 8034AB9C 003467FC 7F E5 FB 78 */ mr r5, r31
+/* 8034ABA0 00346800 7F 26 CB 78 */ mr r6, r25
+/* 8034ABA4 00346804 38 80 00 02 */ li r4, 2
+/* 8034ABA8 00346808 4B FF E0 71 */ bl gti2ConnectedCallback
+/* 8034ABAC 0034680C 7C 03 00 D0 */ neg r0, r3
+/* 8034ABB0 00346810 7C 00 1B 78 */ or r0, r0, r3
+/* 8034ABB4 00346814 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034ABB8:
+/* 8034ABB8 00346818 2C 00 00 00 */ cmpwi r0, 0
+/* 8034ABBC 0034681C 40 82 01 58 */ bne lbl_8034AD14
+/* 8034ABC0 00346820 38 60 00 00 */ li r3, 0
+/* 8034ABC4 00346824 48 00 01 54 */ b lbl_8034AD18
+lbl_8034ABC8:
+/* 8034ABC8 00346828 2C 04 00 06 */ cmpwi r4, 6
+/* 8034ABCC 0034682C 40 82 01 48 */ bne lbl_8034AD14
+/* 8034ABD0 00346830 83 43 00 08 */ lwz r26, 8(r3)
+/* 8034ABD4 00346834 3B A0 00 00 */ li r29, 0
+/* 8034ABD8 00346838 A3 83 00 04 */ lhz r28, 4(r3)
+/* 8034ABDC 0034683C 80 1A 00 40 */ lwz r0, 0x40(r26)
+/* 8034ABE0 00346840 83 63 00 00 */ lwz r27, 0(r3)
+/* 8034ABE4 00346844 2C 00 00 02 */ cmpwi r0, 2
+/* 8034ABE8 00346848 40 82 00 20 */ bne lbl_8034AC08
+/* 8034ABEC 0034684C 38 00 00 03 */ li r0, 3
+/* 8034ABF0 00346850 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034ABF4 00346854 B0 01 00 08 */ sth r0, 8(r1)
+/* 8034ABF8 00346858 38 81 00 08 */ addi r4, r1, 8
+/* 8034ABFC 0034685C 38 A0 00 02 */ li r5, 2
+/* 8034AC00 00346860 4B CB 94 01 */ bl memcpy
+/* 8034AC04 00346864 3B A0 00 02 */ li r29, 2
+lbl_8034AC08:
+/* 8034AC08 00346868 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034AC0C 0034686C 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034AC10 00346870 7C 63 EA 14 */ add r3, r3, r29
+/* 8034AC14 00346874 38 A0 00 02 */ li r5, 2
+/* 8034AC18 00346878 4B CB 93 E9 */ bl memcpy
+/* 8034AC1C 0034687C 3B BD 00 02 */ addi r29, r29, 2
+/* 8034AC20 00346880 38 C1 00 10 */ addi r6, r1, 0x10
+/* 8034AC24 00346884 38 00 00 68 */ li r0, 0x68
+/* 8034AC28 00346888 7F 43 D3 78 */ mr r3, r26
+/* 8034AC2C 0034688C 7C 06 E9 AE */ stbx r0, r6, r29
+/* 8034AC30 00346890 7F 64 DB 78 */ mr r4, r27
+/* 8034AC34 00346894 7F 85 E3 78 */ mr r5, r28
+/* 8034AC38 00346898 38 FD 00 01 */ addi r7, r29, 1
+/* 8034AC3C 0034689C 48 00 2A 0D */ bl gti2SocketSend
+/* 8034AC40 003468A0 7C 03 00 D0 */ neg r0, r3
+/* 8034AC44 003468A4 7C 00 1B 78 */ or r0, r0, r3
+/* 8034AC48 003468A8 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034AC4C 003468AC 40 82 00 0C */ bne lbl_8034AC58
+/* 8034AC50 003468B0 38 00 00 00 */ li r0, 0
+/* 8034AC54 003468B4 48 00 00 B0 */ b lbl_8034AD04
+lbl_8034AC58:
+/* 8034AC58 003468B8 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8034AC5C 003468BC 38 03 FF FA */ addi r0, r3, -6
+/* 8034AC60 003468C0 2C 03 00 05 */ cmpwi r3, 5
+/* 8034AC64 003468C4 7C 00 00 34 */ cntlzw r0, r0
+/* 8034AC68 003468C8 54 1A D9 7E */ srwi r26, r0, 5
+/* 8034AC6C 003468CC 40 80 00 58 */ bge lbl_8034ACC4
+/* 8034AC70 003468D0 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 8034AC74 003468D4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034AC78 003468D8 41 82 00 30 */ beq lbl_8034ACA8
+/* 8034AC7C 003468DC 7F C3 F3 78 */ mr r3, r30
+/* 8034AC80 003468E0 4B FF EC 71 */ bl gti2ConnectionClosed
+/* 8034AC84 003468E4 7F C3 F3 78 */ mr r3, r30
+/* 8034AC88 003468E8 38 80 00 02 */ li r4, 2
+/* 8034AC8C 003468EC 38 A0 00 00 */ li r5, 0
+/* 8034AC90 003468F0 38 C0 00 00 */ li r6, 0
+/* 8034AC94 003468F4 4B FF DF 85 */ bl gti2ConnectedCallback
+/* 8034AC98 003468F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AC9C 003468FC 40 82 00 58 */ bne lbl_8034ACF4
+/* 8034ACA0 00346900 38 60 00 00 */ li r3, 0
+/* 8034ACA4 00346904 48 00 00 54 */ b lbl_8034ACF8
+lbl_8034ACA8:
+/* 8034ACA8 00346908 2C 03 00 04 */ cmpwi r3, 4
+/* 8034ACAC 0034690C 40 82 00 0C */ bne lbl_8034ACB8
+/* 8034ACB0 00346910 38 00 00 01 */ li r0, 1
+/* 8034ACB4 00346914 90 1E 00 14 */ stw r0, 0x14(r30)
+lbl_8034ACB8:
+/* 8034ACB8 00346918 7F C3 F3 78 */ mr r3, r30
+/* 8034ACBC 0034691C 4B FF EC 35 */ bl gti2ConnectionClosed
+/* 8034ACC0 00346920 48 00 00 34 */ b lbl_8034ACF4
+lbl_8034ACC4:
+/* 8034ACC4 00346924 2C 03 00 07 */ cmpwi r3, 7
+/* 8034ACC8 00346928 41 82 00 2C */ beq lbl_8034ACF4
+/* 8034ACCC 0034692C 7F C3 F3 78 */ mr r3, r30
+/* 8034ACD0 00346930 4B FF EC 21 */ bl gti2ConnectionClosed
+/* 8034ACD4 00346934 7F 40 00 34 */ cntlzw r0, r26
+/* 8034ACD8 00346938 7F C3 F3 78 */ mr r3, r30
+/* 8034ACDC 0034693C 54 04 D9 7E */ srwi r4, r0, 5
+/* 8034ACE0 00346940 4B FF E0 ED */ bl gti2ClosedCallback
+/* 8034ACE4 00346944 2C 03 00 00 */ cmpwi r3, 0
+/* 8034ACE8 00346948 40 82 00 0C */ bne lbl_8034ACF4
+/* 8034ACEC 0034694C 38 60 00 00 */ li r3, 0
+/* 8034ACF0 00346950 48 00 00 08 */ b lbl_8034ACF8
+lbl_8034ACF4:
+/* 8034ACF4 00346954 38 60 00 01 */ li r3, 1
+lbl_8034ACF8:
+/* 8034ACF8 00346958 7C 03 00 D0 */ neg r0, r3
+/* 8034ACFC 0034695C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034AD00 00346960 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034AD04:
+/* 8034AD04 00346964 2C 00 00 00 */ cmpwi r0, 0
+/* 8034AD08 00346968 40 82 00 0C */ bne lbl_8034AD14
+/* 8034AD0C 0034696C 38 60 00 00 */ li r3, 0
+/* 8034AD10 00346970 48 00 00 08 */ b lbl_8034AD18
+lbl_8034AD14:
+/* 8034AD14 00346974 38 60 00 01 */ li r3, 1
+lbl_8034AD18:
+/* 8034AD18 00346978 39 61 00 80 */ addi r11, r1, 0x80
+/* 8034AD1C 0034697C 4B E7 C4 51 */ bl _restgpr_25
+/* 8034AD20 00346980 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 8034AD24 00346984 7C 08 03 A6 */ mtlr r0
+/* 8034AD28 00346988 38 21 00 80 */ addi r1, r1, 0x80
+/* 8034AD2C 0034698C 4E 80 00 20 */ blr
+
+.global gti2IncomingBufferMessageCompare
+gti2IncomingBufferMessageCompare:
+/* 8034AD30 00346990 A0 84 00 0C */ lhz r4, 0xc(r4)
+/* 8034AD34 00346994 A0 03 00 0C */ lhz r0, 0xc(r3)
+/* 8034AD38 00346998 7C 04 00 50 */ subf r0, r4, r0
+/* 8034AD3C 0034699C 7C 03 07 34 */ extsh r3, r0
+/* 8034AD40 003469A0 4E 80 00 20 */ blr
+
+.global gti2BufferIncomingMessage
+gti2BufferIncomingMessage:
+/* 8034AD44 003469A4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8034AD48 003469A8 7C 08 02 A6 */ mflr r0
+/* 8034AD4C 003469AC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8034AD50 003469B0 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034AD54 003469B4 4B E7 C3 C9 */ bl _savegpr_24
+/* 8034AD58 003469B8 7C 7E 1B 78 */ mr r30, r3
+/* 8034AD5C 003469BC 80 63 00 5C */ lwz r3, 0x5c(r3)
+/* 8034AD60 003469C0 7C 98 23 78 */ mr r24, r4
+/* 8034AD64 003469C4 7C B9 2B 78 */ mr r25, r5
+/* 8034AD68 003469C8 7C DA 33 78 */ mr r26, r6
+/* 8034AD6C 003469CC 7C FB 3B 78 */ mr r27, r7
+/* 8034AD70 003469D0 7D 1F 43 78 */ mr r31, r8
+/* 8034AD74 003469D4 4B FE B1 75 */ bl ArrayLength
+/* 8034AD78 003469D8 7C 7D 1B 78 */ mr r29, r3
+/* 8034AD7C 003469DC 3B 80 00 00 */ li r28, 0
+/* 8034AD80 003469E0 48 00 00 3C */ b lbl_8034ADBC
+lbl_8034AD84:
+/* 8034AD84 003469E4 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034AD88 003469E8 7F 84 E3 78 */ mr r4, r28
+/* 8034AD8C 003469EC 4B FE B1 65 */ bl ArrayNth
+/* 8034AD90 003469F0 A0 03 00 0C */ lhz r0, 0xc(r3)
+/* 8034AD94 003469F4 7C 00 C8 40 */ cmplw r0, r25
+/* 8034AD98 003469F8 40 82 00 14 */ bne lbl_8034ADAC
+/* 8034AD9C 003469FC 38 00 00 00 */ li r0, 0
+/* 8034ADA0 00346A00 38 60 00 01 */ li r3, 1
+/* 8034ADA4 00346A04 90 1F 00 00 */ stw r0, 0(r31)
+/* 8034ADA8 00346A08 48 00 01 30 */ b lbl_8034AED8
+lbl_8034ADAC:
+/* 8034ADAC 00346A0C 7C 19 00 50 */ subf r0, r25, r0
+/* 8034ADB0 00346A10 7C 00 07 35 */ extsh. r0, r0
+/* 8034ADB4 00346A14 41 81 00 10 */ bgt lbl_8034ADC4
+/* 8034ADB8 00346A18 3B 9C 00 01 */ addi r28, r28, 1
+lbl_8034ADBC:
+/* 8034ADBC 00346A1C 7C 1C E8 00 */ cmpw r28, r29
+/* 8034ADC0 00346A20 41 80 FF C4 */ blt lbl_8034AD84
+lbl_8034ADC4:
+/* 8034ADC4 00346A24 38 7E 00 44 */ addi r3, r30, 0x44
+/* 8034ADC8 00346A28 4B FF DB 89 */ bl gti2GetBufferFreeSpace
+/* 8034ADCC 00346A2C 7C 03 D8 00 */ cmpw r3, r27
+/* 8034ADD0 00346A30 40 80 00 14 */ bge lbl_8034ADE4
+/* 8034ADD4 00346A34 38 00 00 01 */ li r0, 1
+/* 8034ADD8 00346A38 38 60 00 01 */ li r3, 1
+/* 8034ADDC 00346A3C 90 1F 00 00 */ stw r0, 0(r31)
+/* 8034ADE0 00346A40 48 00 00 F8 */ b lbl_8034AED8
+lbl_8034ADE4:
+/* 8034ADE4 00346A44 80 1E 00 4C */ lwz r0, 0x4c(r30)
+/* 8034ADE8 00346A48 3C A0 80 35 */ lis r5, gti2IncomingBufferMessageCompare@ha
+/* 8034ADEC 00346A4C 38 81 00 08 */ addi r4, r1, 8
+/* 8034ADF0 00346A50 90 01 00 08 */ stw r0, 8(r1)
+/* 8034ADF4 00346A54 38 A5 AD 30 */ addi r5, r5, gti2IncomingBufferMessageCompare@l
+/* 8034ADF8 00346A58 93 61 00 0C */ stw r27, 0xc(r1)
+/* 8034ADFC 00346A5C 93 01 00 10 */ stw r24, 0x10(r1)
+/* 8034AE00 00346A60 B3 21 00 14 */ sth r25, 0x14(r1)
+/* 8034AE04 00346A64 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034AE08 00346A68 4B FE B2 3D */ bl ArrayInsertSorted
+/* 8034AE0C 00346A6C 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034AE10 00346A70 4B FE B0 D9 */ bl ArrayLength
+/* 8034AE14 00346A74 38 1D 00 01 */ addi r0, r29, 1
+/* 8034AE18 00346A78 7C 00 18 00 */ cmpw r0, r3
+/* 8034AE1C 00346A7C 41 82 00 14 */ beq lbl_8034AE30
+/* 8034AE20 00346A80 38 00 00 01 */ li r0, 1
+/* 8034AE24 00346A84 38 60 00 01 */ li r3, 1
+/* 8034AE28 00346A88 90 1F 00 00 */ stw r0, 0(r31)
+/* 8034AE2C 00346A8C 48 00 00 AC */ b lbl_8034AED8
+lbl_8034AE30:
+/* 8034AE30 00346A90 7F 44 D3 78 */ mr r4, r26
+/* 8034AE34 00346A94 7F 65 DB 78 */ mr r5, r27
+/* 8034AE38 00346A98 38 7E 00 44 */ addi r3, r30, 0x44
+/* 8034AE3C 00346A9C 4B FF DB 69 */ bl gti2BufferWriteData
+/* 8034AE40 00346AA0 2C 1D 00 00 */ cmpwi r29, 0
+/* 8034AE44 00346AA4 40 82 00 28 */ bne lbl_8034AE6C
+/* 8034AE48 00346AA8 38 19 FF FF */ addi r0, r25, -1
+/* 8034AE4C 00346AAC A0 9E 00 66 */ lhz r4, 0x66(r30)
+/* 8034AE50 00346AB0 7F C3 F3 78 */ mr r3, r30
+/* 8034AE54 00346AB4 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 8034AE58 00346AB8 48 00 1D 21 */ bl gti2SendNack
+/* 8034AE5C 00346ABC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AE60 00346AC0 40 82 00 6C */ bne lbl_8034AECC
+/* 8034AE64 00346AC4 38 60 00 00 */ li r3, 0
+/* 8034AE68 00346AC8 48 00 00 70 */ b lbl_8034AED8
+lbl_8034AE6C:
+/* 8034AE6C 00346ACC 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034AE70 00346AD0 7F A4 EB 78 */ mr r4, r29
+/* 8034AE74 00346AD4 4B FE B0 7D */ bl ArrayNth
+/* 8034AE78 00346AD8 A0 03 00 0C */ lhz r0, 0xc(r3)
+/* 8034AE7C 00346ADC 7C 00 C8 40 */ cmplw r0, r25
+/* 8034AE80 00346AE0 40 82 00 4C */ bne lbl_8034AECC
+/* 8034AE84 00346AE4 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034AE88 00346AE8 38 9D FF FF */ addi r4, r29, -1
+/* 8034AE8C 00346AEC 4B FE B0 65 */ bl ArrayNth
+/* 8034AE90 00346AF0 A0 63 00 0C */ lhz r3, 0xc(r3)
+/* 8034AE94 00346AF4 7C 03 C8 50 */ subf r0, r3, r25
+/* 8034AE98 00346AF8 54 00 04 3E */ clrlwi r0, r0, 0x10
+/* 8034AE9C 00346AFC 28 00 00 01 */ cmplwi r0, 1
+/* 8034AEA0 00346B00 40 81 00 2C */ ble lbl_8034AECC
+/* 8034AEA4 00346B04 38 83 00 01 */ addi r4, r3, 1
+/* 8034AEA8 00346B08 38 19 FF FF */ addi r0, r25, -1
+/* 8034AEAC 00346B0C 7F C3 F3 78 */ mr r3, r30
+/* 8034AEB0 00346B10 54 84 04 3E */ clrlwi r4, r4, 0x10
+/* 8034AEB4 00346B14 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 8034AEB8 00346B18 48 00 1C C1 */ bl gti2SendNack
+/* 8034AEBC 00346B1C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AEC0 00346B20 40 82 00 0C */ bne lbl_8034AECC
+/* 8034AEC4 00346B24 38 60 00 00 */ li r3, 0
+/* 8034AEC8 00346B28 48 00 00 10 */ b lbl_8034AED8
+lbl_8034AECC:
+/* 8034AECC 00346B2C 38 00 00 00 */ li r0, 0
+/* 8034AED0 00346B30 38 60 00 01 */ li r3, 1
+/* 8034AED4 00346B34 90 1F 00 00 */ stw r0, 0(r31)
+lbl_8034AED8:
+/* 8034AED8 00346B38 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034AEDC 00346B3C 4B E7 C2 8D */ bl _restgpr_24
+/* 8034AEE0 00346B40 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8034AEE4 00346B44 7C 08 03 A6 */ mtlr r0
+/* 8034AEE8 00346B48 38 21 00 40 */ addi r1, r1, 0x40
+/* 8034AEEC 00346B4C 4E 80 00 20 */ blr
+
+.global gti2HandleReliableMessage
+gti2HandleReliableMessage:
+/* 8034AEF0 00346B50 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034AEF4 00346B54 7C 08 02 A6 */ mflr r0
+/* 8034AEF8 00346B58 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034AEFC 00346B5C 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034AF00 00346B60 4B E7 C2 25 */ bl _savegpr_26
+/* 8034AF04 00346B64 81 03 00 08 */ lwz r8, 8(r3)
+/* 8034AF08 00346B68 7C 7E 1B 78 */ mr r30, r3
+/* 8034AF0C 00346B6C 7C 9F 23 78 */ mr r31, r4
+/* 8034AF10 00346B70 80 E8 00 44 */ lwz r7, 0x44(r8)
+/* 8034AF14 00346B74 39 47 00 07 */ addi r10, r7, 7
+/* 8034AF18 00346B78 7C 06 50 00 */ cmpw r6, r10
+/* 8034AF1C 00346B7C 40 80 00 9C */ bge lbl_8034AFB8
+/* 8034AF20 00346B80 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034AF24 00346B84 2C 04 00 05 */ cmpwi r4, 5
+/* 8034AF28 00346B88 40 80 00 54 */ bge lbl_8034AF7C
+/* 8034AF2C 00346B8C 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034AF30 00346B90 2C 00 00 00 */ cmpwi r0, 0
+/* 8034AF34 00346B94 41 82 00 2C */ beq lbl_8034AF60
+/* 8034AF38 00346B98 4B FF E9 B9 */ bl gti2ConnectionClosed
+/* 8034AF3C 00346B9C 7F C3 F3 78 */ mr r3, r30
+/* 8034AF40 00346BA0 38 80 00 07 */ li r4, 7
+/* 8034AF44 00346BA4 38 A0 00 00 */ li r5, 0
+/* 8034AF48 00346BA8 38 C0 00 00 */ li r6, 0
+/* 8034AF4C 00346BAC 4B FF DC CD */ bl gti2ConnectedCallback
+/* 8034AF50 00346BB0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AF54 00346BB4 40 82 00 50 */ bne lbl_8034AFA4
+/* 8034AF58 00346BB8 38 60 00 00 */ li r3, 0
+/* 8034AF5C 00346BBC 48 00 00 4C */ b lbl_8034AFA8
+lbl_8034AF60:
+/* 8034AF60 00346BC0 2C 04 00 04 */ cmpwi r4, 4
+/* 8034AF64 00346BC4 40 82 00 0C */ bne lbl_8034AF70
+/* 8034AF68 00346BC8 38 00 00 01 */ li r0, 1
+/* 8034AF6C 00346BCC 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034AF70:
+/* 8034AF70 00346BD0 7F C3 F3 78 */ mr r3, r30
+/* 8034AF74 00346BD4 4B FF E9 7D */ bl gti2ConnectionClosed
+/* 8034AF78 00346BD8 48 00 00 2C */ b lbl_8034AFA4
+lbl_8034AF7C:
+/* 8034AF7C 00346BDC 2C 04 00 07 */ cmpwi r4, 7
+/* 8034AF80 00346BE0 41 82 00 24 */ beq lbl_8034AFA4
+/* 8034AF84 00346BE4 4B FF E9 6D */ bl gti2ConnectionClosed
+/* 8034AF88 00346BE8 7F C3 F3 78 */ mr r3, r30
+/* 8034AF8C 00346BEC 38 80 00 02 */ li r4, 2
+/* 8034AF90 00346BF0 4B FF DE 3D */ bl gti2ClosedCallback
+/* 8034AF94 00346BF4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034AF98 00346BF8 40 82 00 0C */ bne lbl_8034AFA4
+/* 8034AF9C 00346BFC 38 60 00 00 */ li r3, 0
+/* 8034AFA0 00346C00 48 00 00 08 */ b lbl_8034AFA8
+lbl_8034AFA4:
+/* 8034AFA4 00346C04 38 60 00 01 */ li r3, 1
+lbl_8034AFA8:
+/* 8034AFA8 00346C08 7C 03 00 D0 */ neg r0, r3
+/* 8034AFAC 00346C0C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034AFB0 00346C10 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034AFB4 00346C14 48 00 03 74 */ b lbl_8034B328
+lbl_8034AFB8:
+/* 8034AFB8 00346C18 80 08 00 40 */ lwz r0, 0x40(r8)
+/* 8034AFBC 00346C1C 7D 25 3A 14 */ add r9, r5, r7
+/* 8034AFC0 00346C20 88 E9 00 03 */ lbz r7, 3(r9)
+/* 8034AFC4 00346C24 2C 00 00 02 */ cmpwi r0, 2
+/* 8034AFC8 00346C28 88 09 00 05 */ lbz r0, 5(r9)
+/* 8034AFCC 00346C2C 8B A9 00 04 */ lbz r29, 4(r9)
+/* 8034AFD0 00346C30 50 FD 44 2E */ rlwimi r29, r7, 8, 0x10, 0x17
+/* 8034AFD4 00346C34 89 09 00 06 */ lbz r8, 6(r9)
+/* 8034AFD8 00346C38 50 08 44 2E */ rlwimi r8, r0, 8, 0x10, 0x17
+/* 8034AFDC 00346C3C 40 82 00 40 */ bne lbl_8034B01C
+/* 8034AFE0 00346C40 2C 04 00 00 */ cmpwi r4, 0
+/* 8034AFE4 00346C44 40 82 00 38 */ bne lbl_8034B01C
+/* 8034AFE8 00346C48 88 05 00 00 */ lbz r0, 0(r5)
+/* 8034AFEC 00346C4C 98 09 00 05 */ stb r0, 5(r9)
+/* 8034AFF0 00346C50 80 83 00 08 */ lwz r4, 8(r3)
+/* 8034AFF4 00346C54 88 E5 00 01 */ lbz r7, 1(r5)
+/* 8034AFF8 00346C58 80 04 00 44 */ lwz r0, 0x44(r4)
+/* 8034AFFC 00346C5C 7C 80 2A 14 */ add r4, r0, r5
+/* 8034B000 00346C60 98 E4 00 06 */ stb r7, 6(r4)
+/* 8034B004 00346C64 80 63 00 08 */ lwz r3, 8(r3)
+/* 8034B008 00346C68 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 8034B00C 00346C6C 7C 00 50 50 */ subf r0, r0, r10
+/* 8034B010 00346C70 7F 65 02 14 */ add r27, r5, r0
+/* 8034B014 00346C74 7F 40 30 50 */ subf r26, r0, r6
+/* 8034B018 00346C78 48 00 00 0C */ b lbl_8034B024
+lbl_8034B01C:
+/* 8034B01C 00346C7C 7F 65 52 14 */ add r27, r5, r10
+/* 8034B020 00346C80 7F 4A 30 50 */ subf r26, r10, r6
+lbl_8034B024:
+/* 8034B024 00346C84 7F C3 F3 78 */ mr r3, r30
+/* 8034B028 00346C88 55 04 04 3E */ clrlwi r4, r8, 0x10
+/* 8034B02C 00346C8C 4B FF ED DD */ bl gti2HandleESN
+/* 8034B030 00346C90 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B034 00346C94 40 82 00 0C */ bne lbl_8034B040
+/* 8034B038 00346C98 38 60 00 00 */ li r3, 0
+/* 8034B03C 00346C9C 48 00 02 EC */ b lbl_8034B328
+lbl_8034B040:
+/* 8034B040 00346CA0 A0 1E 00 66 */ lhz r0, 0x66(r30)
+/* 8034B044 00346CA4 57 A5 04 3E */ clrlwi r5, r29, 0x10
+/* 8034B048 00346CA8 7C 05 00 40 */ cmplw r5, r0
+/* 8034B04C 00346CAC 40 82 01 4C */ bne lbl_8034B198
+/* 8034B050 00346CB0 80 1E 00 90 */ lwz r0, 0x90(r30)
+/* 8034B054 00346CB4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B058 00346CB8 40 82 00 14 */ bne lbl_8034B06C
+/* 8034B05C 00346CBC 38 00 00 01 */ li r0, 1
+/* 8034B060 00346CC0 90 1E 00 90 */ stw r0, 0x90(r30)
+/* 8034B064 00346CC4 4B FE DF 75 */ bl current_time
+/* 8034B068 00346CC8 90 7E 00 94 */ stw r3, 0x94(r30)
+lbl_8034B06C:
+/* 8034B06C 00346CCC 7F C3 F3 78 */ mr r3, r30
+/* 8034B070 00346CD0 7F E4 FB 78 */ mr r4, r31
+/* 8034B074 00346CD4 7F 65 DB 78 */ mr r5, r27
+/* 8034B078 00346CD8 7F 46 D3 78 */ mr r6, r26
+/* 8034B07C 00346CDC 4B FF F4 F9 */ bl gti2DeliverReliableMessage
+/* 8034B080 00346CE0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B084 00346CE4 40 82 00 0C */ bne lbl_8034B090
+/* 8034B088 00346CE8 38 60 00 00 */ li r3, 0
+/* 8034B08C 00346CEC 48 00 02 9C */ b lbl_8034B328
+lbl_8034B090:
+/* 8034B090 00346CF0 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034B094 00346CF4 4B FE AE 55 */ bl ArrayLength
+/* 8034B098 00346CF8 3B 43 FF FF */ addi r26, r3, -1
+/* 8034B09C 00346CFC 48 00 00 D8 */ b lbl_8034B174
+lbl_8034B0A0:
+/* 8034B0A0 00346D00 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034B0A4 00346D04 7F 44 D3 78 */ mr r4, r26
+/* 8034B0A8 00346D08 4B FE AE 49 */ bl ArrayNth
+/* 8034B0AC 00346D0C A0 83 00 0C */ lhz r4, 0xc(r3)
+/* 8034B0B0 00346D10 7C 7F 1B 78 */ mr r31, r3
+/* 8034B0B4 00346D14 A0 1E 00 66 */ lhz r0, 0x66(r30)
+/* 8034B0B8 00346D18 7C 04 00 40 */ cmplw r4, r0
+/* 8034B0BC 00346D1C 40 82 00 B4 */ bne lbl_8034B170
+/* 8034B0C0 00346D20 80 BE 00 44 */ lwz r5, 0x44(r30)
+/* 8034B0C4 00346D24 7F C3 F3 78 */ mr r3, r30
+/* 8034B0C8 00346D28 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8034B0CC 00346D2C 80 9F 00 08 */ lwz r4, 8(r31)
+/* 8034B0D0 00346D30 80 DF 00 04 */ lwz r6, 4(r31)
+/* 8034B0D4 00346D34 7C A5 02 14 */ add r5, r5, r0
+/* 8034B0D8 00346D38 4B FF F4 9D */ bl gti2DeliverReliableMessage
+/* 8034B0DC 00346D3C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B0E0 00346D40 40 82 00 0C */ bne lbl_8034B0EC
+/* 8034B0E4 00346D44 38 00 00 00 */ li r0, 0
+/* 8034B0E8 00346D48 48 00 00 98 */ b lbl_8034B180
+lbl_8034B0EC:
+/* 8034B0EC 00346D4C 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8034B0F0 00346D50 7F 44 D3 78 */ mr r4, r26
+/* 8034B0F4 00346D54 83 9F 00 04 */ lwz r28, 4(r31)
+/* 8034B0F8 00346D58 3B 60 00 00 */ li r27, 0
+/* 8034B0FC 00346D5C 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034B100 00346D60 4B FE B1 71 */ bl ArrayDeleteAt
+/* 8034B104 00346D64 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034B108 00346D68 4B FE AD E1 */ bl ArrayLength
+/* 8034B10C 00346D6C 7C 7F 1B 78 */ mr r31, r3
+/* 8034B110 00346D70 3B 40 00 00 */ li r26, 0
+/* 8034B114 00346D74 48 00 00 40 */ b lbl_8034B154
+lbl_8034B118:
+/* 8034B118 00346D78 80 7E 00 5C */ lwz r3, 0x5c(r30)
+/* 8034B11C 00346D7C 7F 44 D3 78 */ mr r4, r26
+/* 8034B120 00346D80 4B FE AD D1 */ bl ArrayNth
+/* 8034B124 00346D84 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034B128 00346D88 7C 00 E8 00 */ cmpw r0, r29
+/* 8034B12C 00346D8C 40 81 00 24 */ ble lbl_8034B150
+/* 8034B130 00346D90 7C 9C 00 50 */ subf r4, r28, r0
+/* 8034B134 00346D94 90 83 00 00 */ stw r4, 0(r3)
+/* 8034B138 00346D98 80 03 00 04 */ lwz r0, 4(r3)
+/* 8034B13C 00346D9C 7C 04 02 14 */ add r0, r4, r0
+/* 8034B140 00346DA0 7C 1B 00 00 */ cmpw r27, r0
+/* 8034B144 00346DA4 40 81 00 08 */ ble lbl_8034B14C
+/* 8034B148 00346DA8 7F 60 DB 78 */ mr r0, r27
+lbl_8034B14C:
+/* 8034B14C 00346DAC 7C 1B 03 78 */ mr r27, r0
+lbl_8034B150:
+/* 8034B150 00346DB0 3B 5A 00 01 */ addi r26, r26, 1
+lbl_8034B154:
+/* 8034B154 00346DB4 7C 1A F8 00 */ cmpw r26, r31
+/* 8034B158 00346DB8 41 80 FF C0 */ blt lbl_8034B118
+/* 8034B15C 00346DBC 7F A4 EB 78 */ mr r4, r29
+/* 8034B160 00346DC0 7F 85 E3 78 */ mr r5, r28
+/* 8034B164 00346DC4 38 7E 00 44 */ addi r3, r30, 0x44
+/* 8034B168 00346DC8 4B FF D8 C9 */ bl gti2BufferShorten
+/* 8034B16C 00346DCC 4B FF FF 24 */ b lbl_8034B090
+lbl_8034B170:
+/* 8034B170 00346DD0 3B 5A FF FF */ addi r26, r26, -1
+lbl_8034B174:
+/* 8034B174 00346DD4 2C 1A 00 00 */ cmpwi r26, 0
+/* 8034B178 00346DD8 40 80 FF 28 */ bge lbl_8034B0A0
+/* 8034B17C 00346DDC 38 00 00 01 */ li r0, 1
+lbl_8034B180:
+/* 8034B180 00346DE0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B184 00346DE4 40 82 00 0C */ bne lbl_8034B190
+/* 8034B188 00346DE8 38 60 00 00 */ li r3, 0
+/* 8034B18C 00346DEC 48 00 01 9C */ b lbl_8034B328
+lbl_8034B190:
+/* 8034B190 00346DF0 38 60 00 01 */ li r3, 1
+/* 8034B194 00346DF4 48 00 01 94 */ b lbl_8034B328
+lbl_8034B198:
+/* 8034B198 00346DF8 7C 00 E8 50 */ subf r0, r0, r29
+/* 8034B19C 00346DFC 7C 00 07 35 */ extsh. r0, r0
+/* 8034B1A0 00346E00 40 80 00 28 */ bge lbl_8034B1C8
+/* 8034B1A4 00346E04 80 1E 00 90 */ lwz r0, 0x90(r30)
+/* 8034B1A8 00346E08 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B1AC 00346E0C 40 82 00 14 */ bne lbl_8034B1C0
+/* 8034B1B0 00346E10 38 00 00 01 */ li r0, 1
+/* 8034B1B4 00346E14 90 1E 00 90 */ stw r0, 0x90(r30)
+/* 8034B1B8 00346E18 4B FE DE 21 */ bl current_time
+/* 8034B1BC 00346E1C 90 7E 00 94 */ stw r3, 0x94(r30)
+lbl_8034B1C0:
+/* 8034B1C0 00346E20 38 60 00 01 */ li r3, 1
+/* 8034B1C4 00346E24 48 00 01 64 */ b lbl_8034B328
+lbl_8034B1C8:
+/* 8034B1C8 00346E28 7F C3 F3 78 */ mr r3, r30
+/* 8034B1CC 00346E2C 7F E4 FB 78 */ mr r4, r31
+/* 8034B1D0 00346E30 7F 66 DB 78 */ mr r6, r27
+/* 8034B1D4 00346E34 7F 47 D3 78 */ mr r7, r26
+/* 8034B1D8 00346E38 39 01 00 0C */ addi r8, r1, 0xc
+/* 8034B1DC 00346E3C 4B FF FB 69 */ bl gti2BufferIncomingMessage
+/* 8034B1E0 00346E40 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B1E4 00346E44 40 82 00 0C */ bne lbl_8034B1F0
+/* 8034B1E8 00346E48 38 60 00 00 */ li r3, 0
+/* 8034B1EC 00346E4C 48 00 01 3C */ b lbl_8034B328
+lbl_8034B1F0:
+/* 8034B1F0 00346E50 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8034B1F4 00346E54 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B1F8 00346E58 41 82 01 2C */ beq lbl_8034B324
+/* 8034B1FC 00346E5C 83 5E 00 08 */ lwz r26, 8(r30)
+/* 8034B200 00346E60 3B A0 00 00 */ li r29, 0
+/* 8034B204 00346E64 A3 9E 00 04 */ lhz r28, 4(r30)
+/* 8034B208 00346E68 80 1A 00 40 */ lwz r0, 0x40(r26)
+/* 8034B20C 00346E6C 83 7E 00 00 */ lwz r27, 0(r30)
+/* 8034B210 00346E70 2C 00 00 02 */ cmpwi r0, 2
+/* 8034B214 00346E74 40 82 00 20 */ bne lbl_8034B234
+/* 8034B218 00346E78 38 00 00 03 */ li r0, 3
+/* 8034B21C 00346E7C 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034B220 00346E80 B0 01 00 08 */ sth r0, 8(r1)
+/* 8034B224 00346E84 38 81 00 08 */ addi r4, r1, 8
+/* 8034B228 00346E88 38 A0 00 02 */ li r5, 2
+/* 8034B22C 00346E8C 4B CB 8D D5 */ bl memcpy
+/* 8034B230 00346E90 3B A0 00 02 */ li r29, 2
+lbl_8034B234:
+/* 8034B234 00346E94 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034B238 00346E98 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034B23C 00346E9C 7C 63 EA 14 */ add r3, r3, r29
+/* 8034B240 00346EA0 38 A0 00 02 */ li r5, 2
+/* 8034B244 00346EA4 4B CB 8D BD */ bl memcpy
+/* 8034B248 00346EA8 3B BD 00 02 */ addi r29, r29, 2
+/* 8034B24C 00346EAC 38 C1 00 10 */ addi r6, r1, 0x10
+/* 8034B250 00346EB0 38 00 00 68 */ li r0, 0x68
+/* 8034B254 00346EB4 7F 43 D3 78 */ mr r3, r26
+/* 8034B258 00346EB8 7C 06 E9 AE */ stbx r0, r6, r29
+/* 8034B25C 00346EBC 7F 64 DB 78 */ mr r4, r27
+/* 8034B260 00346EC0 7F 85 E3 78 */ mr r5, r28
+/* 8034B264 00346EC4 38 FD 00 01 */ addi r7, r29, 1
+/* 8034B268 00346EC8 48 00 23 E1 */ bl gti2SocketSend
+/* 8034B26C 00346ECC 7C 03 00 D0 */ neg r0, r3
+/* 8034B270 00346ED0 7C 00 1B 78 */ or r0, r0, r3
+/* 8034B274 00346ED4 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034B278 00346ED8 40 82 00 0C */ bne lbl_8034B284
+/* 8034B27C 00346EDC 38 00 00 00 */ li r0, 0
+/* 8034B280 00346EE0 48 00 00 94 */ b lbl_8034B314
+lbl_8034B284:
+/* 8034B284 00346EE4 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8034B288 00346EE8 2C 03 00 05 */ cmpwi r3, 5
+/* 8034B28C 00346EEC 40 80 00 58 */ bge lbl_8034B2E4
+/* 8034B290 00346EF0 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 8034B294 00346EF4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B298 00346EF8 41 82 00 30 */ beq lbl_8034B2C8
+/* 8034B29C 00346EFC 7F C3 F3 78 */ mr r3, r30
+/* 8034B2A0 00346F00 4B FF E6 51 */ bl gti2ConnectionClosed
+/* 8034B2A4 00346F04 7F C3 F3 78 */ mr r3, r30
+/* 8034B2A8 00346F08 38 80 00 01 */ li r4, 1
+/* 8034B2AC 00346F0C 38 A0 00 00 */ li r5, 0
+/* 8034B2B0 00346F10 38 C0 00 00 */ li r6, 0
+/* 8034B2B4 00346F14 4B FF D9 65 */ bl gti2ConnectedCallback
+/* 8034B2B8 00346F18 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B2BC 00346F1C 40 82 00 54 */ bne lbl_8034B310
+/* 8034B2C0 00346F20 38 00 00 00 */ li r0, 0
+/* 8034B2C4 00346F24 48 00 00 50 */ b lbl_8034B314
+lbl_8034B2C8:
+/* 8034B2C8 00346F28 2C 03 00 04 */ cmpwi r3, 4
+/* 8034B2CC 00346F2C 40 82 00 0C */ bne lbl_8034B2D8
+/* 8034B2D0 00346F30 38 00 00 01 */ li r0, 1
+/* 8034B2D4 00346F34 90 1E 00 14 */ stw r0, 0x14(r30)
+lbl_8034B2D8:
+/* 8034B2D8 00346F38 7F C3 F3 78 */ mr r3, r30
+/* 8034B2DC 00346F3C 4B FF E6 15 */ bl gti2ConnectionClosed
+/* 8034B2E0 00346F40 48 00 00 30 */ b lbl_8034B310
+lbl_8034B2E4:
+/* 8034B2E4 00346F44 2C 03 00 07 */ cmpwi r3, 7
+/* 8034B2E8 00346F48 41 82 00 28 */ beq lbl_8034B310
+/* 8034B2EC 00346F4C 7F C3 F3 78 */ mr r3, r30
+/* 8034B2F0 00346F50 4B FF E6 01 */ bl gti2ConnectionClosed
+/* 8034B2F4 00346F54 7F C3 F3 78 */ mr r3, r30
+/* 8034B2F8 00346F58 38 80 00 04 */ li r4, 4
+/* 8034B2FC 00346F5C 4B FF DA D1 */ bl gti2ClosedCallback
+/* 8034B300 00346F60 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B304 00346F64 40 82 00 0C */ bne lbl_8034B310
+/* 8034B308 00346F68 38 00 00 00 */ li r0, 0
+/* 8034B30C 00346F6C 48 00 00 08 */ b lbl_8034B314
+lbl_8034B310:
+/* 8034B310 00346F70 38 00 00 01 */ li r0, 1
+lbl_8034B314:
+/* 8034B314 00346F74 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B318 00346F78 40 82 00 0C */ bne lbl_8034B324
+/* 8034B31C 00346F7C 38 60 00 00 */ li r3, 0
+/* 8034B320 00346F80 48 00 00 08 */ b lbl_8034B328
+lbl_8034B324:
+/* 8034B324 00346F84 38 60 00 01 */ li r3, 1
+lbl_8034B328:
+/* 8034B328 00346F88 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034B32C 00346F8C 4B E7 BE 45 */ bl _restgpr_26
+/* 8034B330 00346F90 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034B334 00346F94 7C 08 03 A6 */ mtlr r0
+/* 8034B338 00346F98 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034B33C 00346F9C 4E 80 00 20 */ blr
+
+.global gti2HandleNack
+gti2HandleNack:
+/* 8034B340 00346FA0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034B344 00346FA4 7C 08 02 A6 */ mflr r0
+/* 8034B348 00346FA8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034B34C 00346FAC 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034B350 00346FB0 4B E7 BD D5 */ bl _savegpr_26
+/* 8034B354 00346FB4 2C 05 00 02 */ cmpwi r5, 2
+/* 8034B358 00346FB8 88 04 00 00 */ lbz r0, 0(r4)
+/* 8034B35C 00346FBC 8B A4 00 01 */ lbz r29, 1(r4)
+/* 8034B360 00346FC0 7C 7A 1B 78 */ mr r26, r3
+/* 8034B364 00346FC4 50 1D 44 2E */ rlwimi r29, r0, 8, 0x10, 0x17
+/* 8034B368 00346FC8 40 82 00 0C */ bne lbl_8034B374
+/* 8034B36C 00346FCC 7F BC EB 78 */ mr r28, r29
+/* 8034B370 00346FD0 48 00 00 B4 */ b lbl_8034B424
+lbl_8034B374:
+/* 8034B374 00346FD4 2C 05 00 04 */ cmpwi r5, 4
+/* 8034B378 00346FD8 40 82 00 14 */ bne lbl_8034B38C
+/* 8034B37C 00346FDC 88 04 00 02 */ lbz r0, 2(r4)
+/* 8034B380 00346FE0 8B 84 00 03 */ lbz r28, 3(r4)
+/* 8034B384 00346FE4 50 1C 44 2E */ rlwimi r28, r0, 8, 0x10, 0x17
+/* 8034B388 00346FE8 48 00 00 9C */ b lbl_8034B424
+lbl_8034B38C:
+/* 8034B38C 00346FEC 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034B390 00346FF0 2C 04 00 05 */ cmpwi r4, 5
+/* 8034B394 00346FF4 40 80 00 54 */ bge lbl_8034B3E8
+/* 8034B398 00346FF8 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034B39C 00346FFC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B3A0 00347000 41 82 00 2C */ beq lbl_8034B3CC
+/* 8034B3A4 00347004 4B FF E5 4D */ bl gti2ConnectionClosed
+/* 8034B3A8 00347008 7F 43 D3 78 */ mr r3, r26
+/* 8034B3AC 0034700C 38 80 00 07 */ li r4, 7
+/* 8034B3B0 00347010 38 A0 00 00 */ li r5, 0
+/* 8034B3B4 00347014 38 C0 00 00 */ li r6, 0
+/* 8034B3B8 00347018 4B FF D8 61 */ bl gti2ConnectedCallback
+/* 8034B3BC 0034701C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B3C0 00347020 40 82 00 50 */ bne lbl_8034B410
+/* 8034B3C4 00347024 38 60 00 00 */ li r3, 0
+/* 8034B3C8 00347028 48 00 00 4C */ b lbl_8034B414
+lbl_8034B3CC:
+/* 8034B3CC 0034702C 2C 04 00 04 */ cmpwi r4, 4
+/* 8034B3D0 00347030 40 82 00 0C */ bne lbl_8034B3DC
+/* 8034B3D4 00347034 38 00 00 01 */ li r0, 1
+/* 8034B3D8 00347038 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034B3DC:
+/* 8034B3DC 0034703C 7F 43 D3 78 */ mr r3, r26
+/* 8034B3E0 00347040 4B FF E5 11 */ bl gti2ConnectionClosed
+/* 8034B3E4 00347044 48 00 00 2C */ b lbl_8034B410
+lbl_8034B3E8:
+/* 8034B3E8 00347048 2C 04 00 07 */ cmpwi r4, 7
+/* 8034B3EC 0034704C 41 82 00 24 */ beq lbl_8034B410
+/* 8034B3F0 00347050 4B FF E5 01 */ bl gti2ConnectionClosed
+/* 8034B3F4 00347054 7F 43 D3 78 */ mr r3, r26
+/* 8034B3F8 00347058 38 80 00 02 */ li r4, 2
+/* 8034B3FC 0034705C 4B FF D9 D1 */ bl gti2ClosedCallback
+/* 8034B400 00347060 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B404 00347064 40 82 00 0C */ bne lbl_8034B410
+/* 8034B408 00347068 38 60 00 00 */ li r3, 0
+/* 8034B40C 0034706C 48 00 00 08 */ b lbl_8034B414
+lbl_8034B410:
+/* 8034B410 00347070 38 60 00 01 */ li r3, 1
+lbl_8034B414:
+/* 8034B414 00347074 7C 03 00 D0 */ neg r0, r3
+/* 8034B418 00347078 7C 00 1B 78 */ or r0, r0, r3
+/* 8034B41C 0034707C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034B420 00347080 48 00 00 F0 */ b lbl_8034B510
+lbl_8034B424:
+/* 8034B424 00347084 80 63 00 60 */ lwz r3, 0x60(r3)
+/* 8034B428 00347088 4B FE AA C1 */ bl ArrayLength
+/* 8034B42C 0034708C 7C 7E 1B 78 */ mr r30, r3
+/* 8034B430 00347090 3B 60 00 00 */ li r27, 0
+/* 8034B434 00347094 48 00 00 D0 */ b lbl_8034B504
+lbl_8034B438:
+/* 8034B438 00347098 80 7A 00 60 */ lwz r3, 0x60(r26)
+/* 8034B43C 0034709C 7F 64 DB 78 */ mr r4, r27
+/* 8034B440 003470A0 4B FE AA B1 */ bl ArrayNth
+/* 8034B444 003470A4 A0 83 00 08 */ lhz r4, 8(r3)
+/* 8034B448 003470A8 7C 7F 1B 78 */ mr r31, r3
+/* 8034B44C 003470AC 7C 1D 20 50 */ subf r0, r29, r4
+/* 8034B450 003470B0 7C 00 07 35 */ extsh. r0, r0
+/* 8034B454 003470B4 41 80 00 AC */ blt lbl_8034B500
+/* 8034B458 003470B8 7C 1C 20 50 */ subf r0, r28, r4
+/* 8034B45C 003470BC 7C 00 07 35 */ extsh. r0, r0
+/* 8034B460 003470C0 41 81 00 A0 */ bgt lbl_8034B500
+/* 8034B464 003470C4 80 9A 00 08 */ lwz r4, 8(r26)
+/* 8034B468 003470C8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034B46C 003470CC 7F 43 D3 78 */ mr r3, r26
+/* 8034B470 003470D0 80 84 00 44 */ lwz r4, 0x44(r4)
+/* 8034B474 003470D4 A0 BA 00 66 */ lhz r5, 0x66(r26)
+/* 8034B478 003470D8 7C 80 22 14 */ add r4, r0, r4
+/* 8034B47C 003470DC 80 DA 00 50 */ lwz r6, 0x50(r26)
+/* 8034B480 003470E0 38 84 00 05 */ addi r4, r4, 5
+/* 8034B484 003470E4 54 A0 C6 3E */ rlwinm r0, r5, 0x18, 0x18, 0x1f
+/* 8034B488 003470E8 7C 06 21 AE */ stbx r0, r6, r4
+/* 8034B48C 003470EC 38 84 00 01 */ addi r4, r4, 1
+/* 8034B490 003470F0 7C A6 21 AE */ stbx r5, r6, r4
+/* 8034B494 003470F4 80 9A 00 50 */ lwz r4, 0x50(r26)
+/* 8034B498 003470F8 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8034B49C 003470FC 80 BF 00 04 */ lwz r5, 4(r31)
+/* 8034B4A0 00347100 7C 84 02 14 */ add r4, r4, r0
+/* 8034B4A4 00347104 4B FF E1 01 */ bl gti2ConnectionSendData
+/* 8034B4A8 00347108 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B4AC 0034710C 40 82 00 0C */ bne lbl_8034B4B8
+/* 8034B4B0 00347110 38 00 00 00 */ li r0, 0
+/* 8034B4B4 00347114 48 00 00 3C */ b lbl_8034B4F0
+lbl_8034B4B8:
+/* 8034B4B8 00347118 80 1A 00 88 */ lwz r0, 0x88(r26)
+/* 8034B4BC 0034711C 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8034B4C0 00347120 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8034B4C4 00347124 80 9A 00 50 */ lwz r4, 0x50(r26)
+/* 8034B4C8 00347128 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8034B4CC 0034712C 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 8034B4D0 00347130 7C 04 02 14 */ add r0, r4, r0
+/* 8034B4D4 00347134 7C 63 02 14 */ add r3, r3, r0
+/* 8034B4D8 00347138 88 03 00 02 */ lbz r0, 2(r3)
+/* 8034B4DC 0034713C 2C 00 00 02 */ cmpwi r0, 2
+/* 8034B4E0 00347140 40 82 00 0C */ bne lbl_8034B4EC
+/* 8034B4E4 00347144 80 1A 00 88 */ lwz r0, 0x88(r26)
+/* 8034B4E8 00347148 90 1A 00 8C */ stw r0, 0x8c(r26)
+lbl_8034B4EC:
+/* 8034B4EC 0034714C 38 00 00 01 */ li r0, 1
+lbl_8034B4F0:
+/* 8034B4F0 00347150 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B4F4 00347154 40 82 00 0C */ bne lbl_8034B500
+/* 8034B4F8 00347158 38 60 00 00 */ li r3, 0
+/* 8034B4FC 0034715C 48 00 00 14 */ b lbl_8034B510
+lbl_8034B500:
+/* 8034B500 00347160 3B 7B 00 01 */ addi r27, r27, 1
+lbl_8034B504:
+/* 8034B504 00347164 7C 1B F0 00 */ cmpw r27, r30
+/* 8034B508 00347168 41 80 FF 30 */ blt lbl_8034B438
+/* 8034B50C 0034716C 38 60 00 01 */ li r3, 1
+lbl_8034B510:
+/* 8034B510 00347170 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034B514 00347174 4B E7 BC 5D */ bl _restgpr_26
+/* 8034B518 00347178 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034B51C 0034717C 7C 08 03 A6 */ mtlr r0
+/* 8034B520 00347180 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034B524 00347184 4E 80 00 20 */ blr
+
+.global gti2HandleUnreliableMessage
+gti2HandleUnreliableMessage:
+/* 8034B528 00347188 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034B52C 0034718C 7C 08 02 A6 */ mflr r0
+/* 8034B530 00347190 2C 04 00 64 */ cmpwi r4, 0x64
+/* 8034B534 00347194 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034B538 00347198 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034B53C 0034719C 7C 7F 1B 78 */ mr r31, r3
+/* 8034B540 003471A0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034B544 003471A4 80 E3 00 08 */ lwz r7, 8(r3)
+/* 8034B548 003471A8 80 E7 00 44 */ lwz r7, 0x44(r7)
+/* 8034B54C 003471AC 38 07 00 03 */ addi r0, r7, 3
+/* 8034B550 003471B0 7F C5 02 14 */ add r30, r5, r0
+/* 8034B554 003471B4 7C E0 30 50 */ subf r7, r0, r6
+/* 8034B558 003471B8 40 82 00 D8 */ bne lbl_8034B630
+/* 8034B55C 003471BC 2C 07 00 02 */ cmpwi r7, 2
+/* 8034B560 003471C0 41 82 00 A4 */ beq lbl_8034B604
+/* 8034B564 003471C4 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034B568 003471C8 2C 04 00 05 */ cmpwi r4, 5
+/* 8034B56C 003471CC 40 80 00 54 */ bge lbl_8034B5C0
+/* 8034B570 003471D0 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034B574 003471D4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B578 003471D8 41 82 00 2C */ beq lbl_8034B5A4
+/* 8034B57C 003471DC 4B FF E3 75 */ bl gti2ConnectionClosed
+/* 8034B580 003471E0 7F E3 FB 78 */ mr r3, r31
+/* 8034B584 003471E4 38 80 00 07 */ li r4, 7
+/* 8034B588 003471E8 38 A0 00 00 */ li r5, 0
+/* 8034B58C 003471EC 38 C0 00 00 */ li r6, 0
+/* 8034B590 003471F0 4B FF D6 89 */ bl gti2ConnectedCallback
+/* 8034B594 003471F4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B598 003471F8 40 82 00 50 */ bne lbl_8034B5E8
+/* 8034B59C 003471FC 38 00 00 00 */ li r0, 0
+/* 8034B5A0 00347200 48 00 00 4C */ b lbl_8034B5EC
+lbl_8034B5A4:
+/* 8034B5A4 00347204 2C 04 00 04 */ cmpwi r4, 4
+/* 8034B5A8 00347208 40 82 00 0C */ bne lbl_8034B5B4
+/* 8034B5AC 0034720C 38 00 00 01 */ li r0, 1
+/* 8034B5B0 00347210 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034B5B4:
+/* 8034B5B4 00347214 7F E3 FB 78 */ mr r3, r31
+/* 8034B5B8 00347218 4B FF E3 39 */ bl gti2ConnectionClosed
+/* 8034B5BC 0034721C 48 00 00 2C */ b lbl_8034B5E8
+lbl_8034B5C0:
+/* 8034B5C0 00347220 2C 04 00 07 */ cmpwi r4, 7
+/* 8034B5C4 00347224 41 82 00 24 */ beq lbl_8034B5E8
+/* 8034B5C8 00347228 4B FF E3 29 */ bl gti2ConnectionClosed
+/* 8034B5CC 0034722C 7F E3 FB 78 */ mr r3, r31
+/* 8034B5D0 00347230 38 80 00 02 */ li r4, 2
+/* 8034B5D4 00347234 4B FF D7 F9 */ bl gti2ClosedCallback
+/* 8034B5D8 00347238 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B5DC 0034723C 40 82 00 0C */ bne lbl_8034B5E8
+/* 8034B5E0 00347240 38 00 00 00 */ li r0, 0
+/* 8034B5E4 00347244 48 00 00 08 */ b lbl_8034B5EC
+lbl_8034B5E8:
+/* 8034B5E8 00347248 38 00 00 01 */ li r0, 1
+lbl_8034B5EC:
+/* 8034B5EC 0034724C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B5F0 00347250 40 82 00 0C */ bne lbl_8034B5FC
+/* 8034B5F4 00347254 38 00 00 00 */ li r0, 0
+/* 8034B5F8 00347258 48 00 00 28 */ b lbl_8034B620
+lbl_8034B5FC:
+/* 8034B5FC 0034725C 38 00 00 01 */ li r0, 1
+/* 8034B600 00347260 48 00 00 20 */ b lbl_8034B620
+lbl_8034B604:
+/* 8034B604 00347264 88 1E 00 00 */ lbz r0, 0(r30)
+/* 8034B608 00347268 88 9E 00 01 */ lbz r4, 1(r30)
+/* 8034B60C 0034726C 50 04 44 2E */ rlwimi r4, r0, 8, 0x10, 0x17
+/* 8034B610 00347270 4B FF E7 F9 */ bl gti2HandleESN
+/* 8034B614 00347274 7C 03 00 D0 */ neg r0, r3
+/* 8034B618 00347278 7C 00 1B 78 */ or r0, r0, r3
+/* 8034B61C 0034727C 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034B620:
+/* 8034B620 00347280 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B624 00347284 40 82 01 B0 */ bne lbl_8034B7D4
+/* 8034B628 00347288 38 60 00 00 */ li r3, 0
+/* 8034B62C 0034728C 48 00 01 AC */ b lbl_8034B7D8
+lbl_8034B630:
+/* 8034B630 00347290 2C 04 00 65 */ cmpwi r4, 0x65
+/* 8034B634 00347294 40 82 00 20 */ bne lbl_8034B654
+/* 8034B638 00347298 7F C4 F3 78 */ mr r4, r30
+/* 8034B63C 0034729C 7C E5 3B 78 */ mr r5, r7
+/* 8034B640 003472A0 4B FF FD 01 */ bl gti2HandleNack
+/* 8034B644 003472A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B648 003472A8 40 82 01 8C */ bne lbl_8034B7D4
+/* 8034B64C 003472AC 38 60 00 00 */ li r3, 0
+/* 8034B650 003472B0 48 00 01 88 */ b lbl_8034B7D8
+lbl_8034B654:
+/* 8034B654 003472B4 2C 04 00 66 */ cmpwi r4, 0x66
+/* 8034B658 003472B8 40 82 00 28 */ bne lbl_8034B680
+/* 8034B65C 003472BC 38 00 00 67 */ li r0, 0x67
+/* 8034B660 003472C0 7C A4 2B 78 */ mr r4, r5
+/* 8034B664 003472C4 98 05 00 02 */ stb r0, 2(r5)
+/* 8034B668 003472C8 7C C5 33 78 */ mr r5, r6
+/* 8034B66C 003472CC 4B FF DF 39 */ bl gti2ConnectionSendData
+/* 8034B670 003472D0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B674 003472D4 40 82 01 60 */ bne lbl_8034B7D4
+/* 8034B678 003472D8 38 60 00 00 */ li r3, 0
+/* 8034B67C 003472DC 48 00 01 5C */ b lbl_8034B7D8
+lbl_8034B680:
+/* 8034B680 003472E0 2C 04 00 67 */ cmpwi r4, 0x67
+/* 8034B684 003472E4 40 82 00 88 */ bne lbl_8034B70C
+/* 8034B688 003472E8 80 03 00 34 */ lwz r0, 0x34(r3)
+/* 8034B68C 003472EC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B690 003472F0 40 82 00 0C */ bne lbl_8034B69C
+/* 8034B694 003472F4 38 00 00 01 */ li r0, 1
+/* 8034B698 003472F8 48 00 00 64 */ b lbl_8034B6FC
+lbl_8034B69C:
+/* 8034B69C 003472FC 28 07 00 08 */ cmplwi r7, 8
+/* 8034B6A0 00347300 41 82 00 0C */ beq lbl_8034B6AC
+/* 8034B6A4 00347304 38 00 00 01 */ li r0, 1
+/* 8034B6A8 00347308 48 00 00 54 */ b lbl_8034B6FC
+lbl_8034B6AC:
+/* 8034B6AC 0034730C 7F C3 F3 78 */ mr r3, r30
+/* 8034B6B0 00347310 38 8D 92 C4 */ addi r4, r13, lbl_8063E584-_SDA_BASE_
+/* 8034B6B4 00347314 38 A0 00 04 */ li r5, 4
+/* 8034B6B8 00347318 4B E7 EC E1 */ bl memcmp
+/* 8034B6BC 0034731C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B6C0 00347320 41 82 00 0C */ beq lbl_8034B6CC
+/* 8034B6C4 00347324 38 00 00 01 */ li r0, 1
+/* 8034B6C8 00347328 48 00 00 34 */ b lbl_8034B6FC
+lbl_8034B6CC:
+/* 8034B6CC 0034732C 38 61 00 08 */ addi r3, r1, 8
+/* 8034B6D0 00347330 38 9E 00 04 */ addi r4, r30, 4
+/* 8034B6D4 00347334 38 A0 00 04 */ li r5, 4
+/* 8034B6D8 00347338 4B CB 89 29 */ bl memcpy
+/* 8034B6DC 0034733C 4B FE D8 FD */ bl current_time
+/* 8034B6E0 00347340 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034B6E4 00347344 7C 80 18 50 */ subf r4, r0, r3
+/* 8034B6E8 00347348 7F E3 FB 78 */ mr r3, r31
+/* 8034B6EC 0034734C 4B FF D7 9D */ bl gti2PingCallback
+/* 8034B6F0 00347350 7C 03 00 D0 */ neg r0, r3
+/* 8034B6F4 00347354 7C 00 1B 78 */ or r0, r0, r3
+/* 8034B6F8 00347358 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034B6FC:
+/* 8034B6FC 0034735C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B700 00347360 40 82 00 D4 */ bne lbl_8034B7D4
+/* 8034B704 00347364 38 60 00 00 */ li r3, 0
+/* 8034B708 00347368 48 00 00 D0 */ b lbl_8034B7D8
+lbl_8034B70C:
+/* 8034B70C 0034736C 2C 04 00 68 */ cmpwi r4, 0x68
+/* 8034B710 00347370 40 82 00 C4 */ bne lbl_8034B7D4
+/* 8034B714 00347374 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8034B718 00347378 2C 84 00 07 */ cmpwi cr1, r4, 7
+/* 8034B71C 0034737C 40 86 00 0C */ bne cr1, lbl_8034B728
+/* 8034B720 00347380 38 00 00 01 */ li r0, 1
+/* 8034B724 00347384 48 00 00 A0 */ b lbl_8034B7C4
+lbl_8034B728:
+/* 8034B728 00347388 38 04 FF FA */ addi r0, r4, -6
+/* 8034B72C 0034738C 2C 04 00 05 */ cmpwi r4, 5
+/* 8034B730 00347390 7C 00 00 34 */ cntlzw r0, r0
+/* 8034B734 00347394 54 1E D9 7E */ srwi r30, r0, 5
+/* 8034B738 00347398 40 80 00 54 */ bge lbl_8034B78C
+/* 8034B73C 0034739C 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8034B740 003473A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B744 003473A4 41 82 00 2C */ beq lbl_8034B770
+/* 8034B748 003473A8 4B FF E1 A9 */ bl gti2ConnectionClosed
+/* 8034B74C 003473AC 7F E3 FB 78 */ mr r3, r31
+/* 8034B750 003473B0 38 80 00 02 */ li r4, 2
+/* 8034B754 003473B4 38 A0 00 00 */ li r5, 0
+/* 8034B758 003473B8 38 C0 00 00 */ li r6, 0
+/* 8034B75C 003473BC 4B FF D4 BD */ bl gti2ConnectedCallback
+/* 8034B760 003473C0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B764 003473C4 40 82 00 50 */ bne lbl_8034B7B4
+/* 8034B768 003473C8 38 60 00 00 */ li r3, 0
+/* 8034B76C 003473CC 48 00 00 4C */ b lbl_8034B7B8
+lbl_8034B770:
+/* 8034B770 003473D0 2C 04 00 04 */ cmpwi r4, 4
+/* 8034B774 003473D4 40 82 00 0C */ bne lbl_8034B780
+/* 8034B778 003473D8 38 00 00 01 */ li r0, 1
+/* 8034B77C 003473DC 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_8034B780:
+/* 8034B780 003473E0 7F E3 FB 78 */ mr r3, r31
+/* 8034B784 003473E4 4B FF E1 6D */ bl gti2ConnectionClosed
+/* 8034B788 003473E8 48 00 00 2C */ b lbl_8034B7B4
+lbl_8034B78C:
+/* 8034B78C 003473EC 41 86 00 28 */ beq cr1, lbl_8034B7B4
+/* 8034B790 003473F0 4B FF E1 61 */ bl gti2ConnectionClosed
+/* 8034B794 003473F4 7F C0 00 34 */ cntlzw r0, r30
+/* 8034B798 003473F8 7F E3 FB 78 */ mr r3, r31
+/* 8034B79C 003473FC 54 04 D9 7E */ srwi r4, r0, 5
+/* 8034B7A0 00347400 4B FF D6 2D */ bl gti2ClosedCallback
+/* 8034B7A4 00347404 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B7A8 00347408 40 82 00 0C */ bne lbl_8034B7B4
+/* 8034B7AC 0034740C 38 60 00 00 */ li r3, 0
+/* 8034B7B0 00347410 48 00 00 08 */ b lbl_8034B7B8
+lbl_8034B7B4:
+/* 8034B7B4 00347414 38 60 00 01 */ li r3, 1
+lbl_8034B7B8:
+/* 8034B7B8 00347418 7C 03 00 D0 */ neg r0, r3
+/* 8034B7BC 0034741C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034B7C0 00347420 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034B7C4:
+/* 8034B7C4 00347424 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B7C8 00347428 40 82 00 0C */ bne lbl_8034B7D4
+/* 8034B7CC 0034742C 38 60 00 00 */ li r3, 0
+/* 8034B7D0 00347430 48 00 00 08 */ b lbl_8034B7D8
+lbl_8034B7D4:
+/* 8034B7D4 00347434 38 60 00 01 */ li r3, 1
+lbl_8034B7D8:
+/* 8034B7D8 00347438 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034B7DC 0034743C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034B7E0 00347440 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034B7E4 00347444 7C 08 03 A6 */ mtlr r0
+/* 8034B7E8 00347448 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034B7EC 0034744C 4E 80 00 20 */ blr
+
+.global gti2HandleMessage
+gti2HandleMessage:
+/* 8034B7F0 00347450 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8034B7F4 00347454 7C 08 02 A6 */ mflr r0
+/* 8034B7F8 00347458 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8034B7FC 0034745C 39 61 00 50 */ addi r11, r1, 0x50
+/* 8034B800 00347460 4B E7 B9 1D */ bl _savegpr_24
+/* 8034B804 00347464 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 8034B808 00347468 7C DD 33 78 */ mr r29, r6
+/* 8034B80C 0034746C 7C FE 3B 78 */ mr r30, r7
+/* 8034B810 00347470 7C 7A 1B 78 */ mr r26, r3
+/* 8034B814 00347474 7C 9B 23 78 */ mr r27, r4
+/* 8034B818 00347478 7F E4 02 14 */ add r31, r4, r0
+/* 8034B81C 0034747C 7C BC 2B 78 */ mr r28, r5
+/* 8034B820 00347480 7F 00 28 50 */ subf r24, r0, r5
+/* 8034B824 00347484 7F A4 EB 78 */ mr r4, r29
+/* 8034B828 00347488 7F C5 F3 78 */ mr r5, r30
+/* 8034B82C 0034748C 48 00 17 E9 */ bl gti2SocketFindConnection
+/* 8034B830 00347490 90 61 00 14 */ stw r3, 0x14(r1)
+/* 8034B834 00347494 7C 64 1B 78 */ mr r4, r3
+/* 8034B838 00347498 80 1A 00 2C */ lwz r0, 0x2c(r26)
+/* 8034B83C 0034749C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B840 003474A0 41 82 00 34 */ beq lbl_8034B874
+/* 8034B844 003474A4 7F 43 D3 78 */ mr r3, r26
+/* 8034B848 003474A8 7F A5 EB 78 */ mr r5, r29
+/* 8034B84C 003474AC 7F C6 F3 78 */ mr r6, r30
+/* 8034B850 003474B0 7F 68 DB 78 */ mr r8, r27
+/* 8034B854 003474B4 7F 89 E3 78 */ mr r9, r28
+/* 8034B858 003474B8 38 E0 00 00 */ li r7, 0
+/* 8034B85C 003474BC 39 40 00 00 */ li r10, 0
+/* 8034B860 003474C0 4B FF D8 F5 */ bl gti2DumpCallback
+/* 8034B864 003474C4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B868 003474C8 40 82 00 0C */ bne lbl_8034B874
+/* 8034B86C 003474CC 38 60 00 00 */ li r3, 0
+/* 8034B870 003474D0 48 00 03 C4 */ b lbl_8034BC34
+lbl_8034B874:
+/* 8034B874 003474D4 2C 18 00 02 */ cmpwi r24, 2
+/* 8034B878 003474D8 3B 20 00 00 */ li r25, 0
+/* 8034B87C 003474DC 40 81 00 20 */ ble lbl_8034B89C
+/* 8034B880 003474E0 7F E3 FB 78 */ mr r3, r31
+/* 8034B884 003474E4 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034B888 003474E8 38 A0 00 02 */ li r5, 2
+/* 8034B88C 003474EC 4B E7 EB 0D */ bl memcmp
+/* 8034B890 003474F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B894 003474F4 40 82 00 08 */ bne lbl_8034B89C
+/* 8034B898 003474F8 3B 20 00 01 */ li r25, 1
+lbl_8034B89C:
+/* 8034B89C 003474FC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034B8A0 00347500 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B8A4 00347504 40 82 01 AC */ bne lbl_8034BA50
+/* 8034B8A8 00347508 7F 43 D3 78 */ mr r3, r26
+/* 8034B8AC 0034750C 7F A4 EB 78 */ mr r4, r29
+/* 8034B8B0 00347510 7F C5 F3 78 */ mr r5, r30
+/* 8034B8B4 00347514 7F 66 DB 78 */ mr r6, r27
+/* 8034B8B8 00347518 7F 87 E3 78 */ mr r7, r28
+/* 8034B8BC 0034751C 39 01 00 10 */ addi r8, r1, 0x10
+/* 8034B8C0 00347520 4B FF D9 91 */ bl gti2UnrecognizedMessageCallback
+/* 8034B8C4 00347524 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B8C8 00347528 40 82 00 0C */ bne lbl_8034B8D4
+/* 8034B8CC 0034752C 38 60 00 00 */ li r3, 0
+/* 8034B8D0 00347530 48 00 03 64 */ b lbl_8034BC34
+lbl_8034B8D4:
+/* 8034B8D4 00347534 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 8034B8D8 00347538 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B8DC 0034753C 41 82 00 0C */ beq lbl_8034B8E8
+/* 8034B8E0 00347540 38 60 00 01 */ li r3, 1
+/* 8034B8E4 00347544 48 00 03 50 */ b lbl_8034BC34
+lbl_8034B8E8:
+/* 8034B8E8 00347548 2C 19 00 00 */ cmpwi r25, 0
+/* 8034B8EC 0034754C 41 82 00 10 */ beq lbl_8034B8FC
+/* 8034B8F0 00347550 88 1F 00 02 */ lbz r0, 2(r31)
+/* 8034B8F4 00347554 28 00 00 01 */ cmplwi r0, 1
+/* 8034B8F8 00347558 41 82 00 9C */ beq lbl_8034B994
+lbl_8034B8FC:
+/* 8034B8FC 0034755C 2C 19 00 00 */ cmpwi r25, 0
+/* 8034B900 00347560 41 82 00 10 */ beq lbl_8034B910
+/* 8034B904 00347564 88 1F 00 02 */ lbz r0, 2(r31)
+/* 8034B908 00347568 28 00 00 68 */ cmplwi r0, 0x68
+/* 8034B90C 0034756C 41 82 00 80 */ beq lbl_8034B98C
+lbl_8034B910:
+/* 8034B910 00347570 80 1A 00 40 */ lwz r0, 0x40(r26)
+/* 8034B914 00347574 3B 60 00 00 */ li r27, 0
+/* 8034B918 00347578 2C 00 00 02 */ cmpwi r0, 2
+/* 8034B91C 0034757C 40 82 00 20 */ bne lbl_8034B93C
+/* 8034B920 00347580 38 00 00 03 */ li r0, 3
+/* 8034B924 00347584 38 61 00 28 */ addi r3, r1, 0x28
+/* 8034B928 00347588 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 8034B92C 0034758C 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034B930 00347590 38 A0 00 02 */ li r5, 2
+/* 8034B934 00347594 4B CB 86 CD */ bl memcpy
+/* 8034B938 00347598 3B 60 00 02 */ li r27, 2
+lbl_8034B93C:
+/* 8034B93C 0034759C 38 61 00 28 */ addi r3, r1, 0x28
+/* 8034B940 003475A0 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034B944 003475A4 7C 63 DA 14 */ add r3, r3, r27
+/* 8034B948 003475A8 38 A0 00 02 */ li r5, 2
+/* 8034B94C 003475AC 4B CB 86 B5 */ bl memcpy
+/* 8034B950 003475B0 3B 7B 00 02 */ addi r27, r27, 2
+/* 8034B954 003475B4 38 C1 00 28 */ addi r6, r1, 0x28
+/* 8034B958 003475B8 38 00 00 68 */ li r0, 0x68
+/* 8034B95C 003475BC 7F 43 D3 78 */ mr r3, r26
+/* 8034B960 003475C0 7C 06 D9 AE */ stbx r0, r6, r27
+/* 8034B964 003475C4 7F A4 EB 78 */ mr r4, r29
+/* 8034B968 003475C8 7F C5 F3 78 */ mr r5, r30
+/* 8034B96C 003475CC 38 FB 00 01 */ addi r7, r27, 1
+/* 8034B970 003475D0 48 00 1C D9 */ bl gti2SocketSend
+/* 8034B974 003475D4 7C 03 00 D0 */ neg r0, r3
+/* 8034B978 003475D8 7C 00 1B 78 */ or r0, r0, r3
+/* 8034B97C 003475DC 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034B980 003475E0 40 82 00 0C */ bne lbl_8034B98C
+/* 8034B984 003475E4 38 60 00 00 */ li r3, 0
+/* 8034B988 003475E8 48 00 02 AC */ b lbl_8034BC34
+lbl_8034B98C:
+/* 8034B98C 003475EC 38 60 00 01 */ li r3, 1
+/* 8034B990 003475F0 48 00 02 A4 */ b lbl_8034BC34
+lbl_8034B994:
+/* 8034B994 003475F4 80 1A 00 20 */ lwz r0, 0x20(r26)
+/* 8034B998 003475F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034B99C 003475FC 40 82 00 0C */ bne lbl_8034B9A8
+/* 8034B9A0 00347600 38 60 00 01 */ li r3, 1
+/* 8034B9A4 00347604 48 00 02 90 */ b lbl_8034BC34
+lbl_8034B9A8:
+/* 8034B9A8 00347608 7F 43 D3 78 */ mr r3, r26
+/* 8034B9AC 0034760C 7F A5 EB 78 */ mr r5, r29
+/* 8034B9B0 00347610 7F C6 F3 78 */ mr r6, r30
+/* 8034B9B4 00347614 38 81 00 14 */ addi r4, r1, 0x14
+/* 8034B9B8 00347618 4B FF D9 B9 */ bl gti2NewIncomingConnection
+/* 8034B9BC 0034761C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034B9C0 00347620 41 82 00 90 */ beq lbl_8034BA50
+/* 8034B9C4 00347624 2C 03 00 05 */ cmpwi r3, 5
+/* 8034B9C8 00347628 41 82 00 80 */ beq lbl_8034BA48
+/* 8034B9CC 0034762C 80 1A 00 40 */ lwz r0, 0x40(r26)
+/* 8034B9D0 00347630 3B 60 00 00 */ li r27, 0
+/* 8034B9D4 00347634 2C 00 00 02 */ cmpwi r0, 2
+/* 8034B9D8 00347638 40 82 00 20 */ bne lbl_8034B9F8
+/* 8034B9DC 0034763C 38 00 00 03 */ li r0, 3
+/* 8034B9E0 00347640 38 61 00 20 */ addi r3, r1, 0x20
+/* 8034B9E4 00347644 B0 01 00 0A */ sth r0, 0xa(r1)
+/* 8034B9E8 00347648 38 81 00 0A */ addi r4, r1, 0xa
+/* 8034B9EC 0034764C 38 A0 00 02 */ li r5, 2
+/* 8034B9F0 00347650 4B CB 86 11 */ bl memcpy
+/* 8034B9F4 00347654 3B 60 00 02 */ li r27, 2
+lbl_8034B9F8:
+/* 8034B9F8 00347658 38 61 00 20 */ addi r3, r1, 0x20
+/* 8034B9FC 0034765C 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034BA00 00347660 7C 63 DA 14 */ add r3, r3, r27
+/* 8034BA04 00347664 38 A0 00 02 */ li r5, 2
+/* 8034BA08 00347668 4B CB 85 F9 */ bl memcpy
+/* 8034BA0C 0034766C 3B 7B 00 02 */ addi r27, r27, 2
+/* 8034BA10 00347670 38 C1 00 20 */ addi r6, r1, 0x20
+/* 8034BA14 00347674 38 00 00 68 */ li r0, 0x68
+/* 8034BA18 00347678 7F 43 D3 78 */ mr r3, r26
+/* 8034BA1C 0034767C 7C 06 D9 AE */ stbx r0, r6, r27
+/* 8034BA20 00347680 7F A4 EB 78 */ mr r4, r29
+/* 8034BA24 00347684 7F C5 F3 78 */ mr r5, r30
+/* 8034BA28 00347688 38 FB 00 01 */ addi r7, r27, 1
+/* 8034BA2C 0034768C 48 00 1C 1D */ bl gti2SocketSend
+/* 8034BA30 00347690 7C 03 00 D0 */ neg r0, r3
+/* 8034BA34 00347694 7C 00 1B 78 */ or r0, r0, r3
+/* 8034BA38 00347698 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034BA3C 0034769C 40 82 00 0C */ bne lbl_8034BA48
+/* 8034BA40 003476A0 38 60 00 00 */ li r3, 0
+/* 8034BA44 003476A4 48 00 01 F0 */ b lbl_8034BC34
+lbl_8034BA48:
+/* 8034BA48 003476A8 38 60 00 01 */ li r3, 1
+/* 8034BA4C 003476AC 48 00 01 E8 */ b lbl_8034BC34
+lbl_8034BA50:
+/* 8034BA50 003476B0 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8034BA54 003476B4 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 8034BA58 003476B8 2C 00 00 07 */ cmpwi r0, 7
+/* 8034BA5C 003476BC 40 82 00 AC */ bne lbl_8034BB08
+/* 8034BA60 003476C0 2C 19 00 00 */ cmpwi r25, 0
+/* 8034BA64 003476C4 41 82 00 10 */ beq lbl_8034BA74
+/* 8034BA68 003476C8 88 1F 00 02 */ lbz r0, 2(r31)
+/* 8034BA6C 003476CC 28 00 00 68 */ cmplwi r0, 0x68
+/* 8034BA70 003476D0 41 82 00 90 */ beq lbl_8034BB00
+lbl_8034BA74:
+/* 8034BA74 003476D4 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8034BA78 003476D8 3B 40 00 00 */ li r26, 0
+/* 8034BA7C 003476DC 83 A3 00 08 */ lwz r29, 8(r3)
+/* 8034BA80 003476E0 A3 63 00 04 */ lhz r27, 4(r3)
+/* 8034BA84 003476E4 80 1D 00 40 */ lwz r0, 0x40(r29)
+/* 8034BA88 003476E8 83 83 00 00 */ lwz r28, 0(r3)
+/* 8034BA8C 003476EC 2C 00 00 02 */ cmpwi r0, 2
+/* 8034BA90 003476F0 40 82 00 20 */ bne lbl_8034BAB0
+/* 8034BA94 003476F4 38 00 00 03 */ li r0, 3
+/* 8034BA98 003476F8 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034BA9C 003476FC B0 01 00 08 */ sth r0, 8(r1)
+/* 8034BAA0 00347700 38 81 00 08 */ addi r4, r1, 8
+/* 8034BAA4 00347704 38 A0 00 02 */ li r5, 2
+/* 8034BAA8 00347708 4B CB 85 59 */ bl memcpy
+/* 8034BAAC 0034770C 3B 40 00 02 */ li r26, 2
+lbl_8034BAB0:
+/* 8034BAB0 00347710 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034BAB4 00347714 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034BAB8 00347718 7C 63 D2 14 */ add r3, r3, r26
+/* 8034BABC 0034771C 38 A0 00 02 */ li r5, 2
+/* 8034BAC0 00347720 4B CB 85 41 */ bl memcpy
+/* 8034BAC4 00347724 3B 5A 00 02 */ addi r26, r26, 2
+/* 8034BAC8 00347728 38 C1 00 18 */ addi r6, r1, 0x18
+/* 8034BACC 0034772C 38 00 00 68 */ li r0, 0x68
+/* 8034BAD0 00347730 7F A3 EB 78 */ mr r3, r29
+/* 8034BAD4 00347734 7C 06 D1 AE */ stbx r0, r6, r26
+/* 8034BAD8 00347738 7F 84 E3 78 */ mr r4, r28
+/* 8034BADC 0034773C 7F 65 DB 78 */ mr r5, r27
+/* 8034BAE0 00347740 38 FA 00 01 */ addi r7, r26, 1
+/* 8034BAE4 00347744 48 00 1B 65 */ bl gti2SocketSend
+/* 8034BAE8 00347748 7C 03 00 D0 */ neg r0, r3
+/* 8034BAEC 0034774C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034BAF0 00347750 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034BAF4 00347754 40 82 00 0C */ bne lbl_8034BB00
+/* 8034BAF8 00347758 38 60 00 00 */ li r3, 0
+/* 8034BAFC 0034775C 48 00 01 38 */ b lbl_8034BC34
+lbl_8034BB00:
+/* 8034BB00 00347760 38 60 00 01 */ li r3, 1
+/* 8034BB04 00347764 48 00 01 30 */ b lbl_8034BC34
+lbl_8034BB08:
+/* 8034BB08 00347768 2C 19 00 00 */ cmpwi r25, 0
+/* 8034BB0C 0034776C 41 82 00 48 */ beq lbl_8034BB54
+/* 8034BB10 00347770 2C 18 00 04 */ cmpwi r24, 4
+/* 8034BB14 00347774 41 80 00 40 */ blt lbl_8034BB54
+/* 8034BB18 00347778 38 7F 00 02 */ addi r3, r31, 2
+/* 8034BB1C 0034777C 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034BB20 00347780 38 A0 00 02 */ li r5, 2
+/* 8034BB24 00347784 4B E7 E8 75 */ bl memcmp
+/* 8034BB28 00347788 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BB2C 0034778C 40 82 00 28 */ bne lbl_8034BB54
+/* 8034BB30 00347790 88 7B 00 01 */ lbz r3, 1(r27)
+/* 8034BB34 00347794 3B 20 00 00 */ li r25, 0
+/* 8034BB38 00347798 88 1B 00 00 */ lbz r0, 0(r27)
+/* 8034BB3C 0034779C 3B 9C FF FE */ addi r28, r28, -2
+/* 8034BB40 003477A0 98 7B 00 03 */ stb r3, 3(r27)
+/* 8034BB44 003477A4 98 1B 00 02 */ stb r0, 2(r27)
+/* 8034BB48 003477A8 7F FB FB 78 */ mr r27, r31
+/* 8034BB4C 003477AC 80 1A 00 44 */ lwz r0, 0x44(r26)
+/* 8034BB50 003477B0 7F FF 02 14 */ add r31, r31, r0
+lbl_8034BB54:
+/* 8034BB54 003477B4 2C 19 00 00 */ cmpwi r25, 0
+/* 8034BB58 003477B8 40 82 00 94 */ bne lbl_8034BBEC
+/* 8034BB5C 003477BC 83 41 00 14 */ lwz r26, 0x14(r1)
+/* 8034BB60 003477C0 80 1A 00 0C */ lwz r0, 0xc(r26)
+/* 8034BB64 003477C4 2C 00 00 05 */ cmpwi r0, 5
+/* 8034BB68 003477C8 41 82 00 14 */ beq lbl_8034BB7C
+/* 8034BB6C 003477CC 2C 00 00 06 */ cmpwi r0, 6
+/* 8034BB70 003477D0 41 82 00 0C */ beq lbl_8034BB7C
+/* 8034BB74 003477D4 38 60 00 01 */ li r3, 1
+/* 8034BB78 003477D8 48 00 00 64 */ b lbl_8034BBDC
+lbl_8034BB7C:
+/* 8034BB7C 003477DC 80 7A 00 9C */ lwz r3, 0x9c(r26)
+/* 8034BB80 003477E0 4B FE A3 69 */ bl ArrayLength
+/* 8034BB84 003477E4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BB88 003477E8 41 82 00 34 */ beq lbl_8034BBBC
+/* 8034BB8C 003477EC 7F 43 D3 78 */ mr r3, r26
+/* 8034BB90 003477F0 7F 65 DB 78 */ mr r5, r27
+/* 8034BB94 003477F4 7F 86 E3 78 */ mr r6, r28
+/* 8034BB98 003477F8 38 80 00 00 */ li r4, 0
+/* 8034BB9C 003477FC 38 E0 00 00 */ li r7, 0
+/* 8034BBA0 00347800 4B FF D4 AD */ bl gti2ReceiveFilterCallback
+/* 8034BBA4 00347804 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BBA8 00347808 40 82 00 0C */ bne lbl_8034BBB4
+/* 8034BBAC 0034780C 38 60 00 00 */ li r3, 0
+/* 8034BBB0 00347810 48 00 00 2C */ b lbl_8034BBDC
+lbl_8034BBB4:
+/* 8034BBB4 00347814 38 60 00 01 */ li r3, 1
+/* 8034BBB8 00347818 48 00 00 24 */ b lbl_8034BBDC
+lbl_8034BBBC:
+/* 8034BBBC 0034781C 7F 43 D3 78 */ mr r3, r26
+/* 8034BBC0 00347820 7F 64 DB 78 */ mr r4, r27
+/* 8034BBC4 00347824 7F 85 E3 78 */ mr r5, r28
+/* 8034BBC8 00347828 38 C0 00 00 */ li r6, 0
+/* 8034BBCC 0034782C 4B FF D1 29 */ bl gti2ReceivedCallback
+/* 8034BBD0 00347830 7C 03 00 D0 */ neg r0, r3
+/* 8034BBD4 00347834 7C 00 1B 78 */ or r0, r0, r3
+/* 8034BBD8 00347838 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_8034BBDC:
+/* 8034BBDC 0034783C 7C 03 00 D0 */ neg r0, r3
+/* 8034BBE0 00347840 7C 00 1B 78 */ or r0, r0, r3
+/* 8034BBE4 00347844 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034BBE8 00347848 48 00 00 4C */ b lbl_8034BC34
+lbl_8034BBEC:
+/* 8034BBEC 0034784C 88 9F 00 02 */ lbz r4, 2(r31)
+/* 8034BBF0 00347850 2C 04 00 08 */ cmpwi r4, 8
+/* 8034BBF4 00347854 40 80 00 24 */ bge lbl_8034BC18
+/* 8034BBF8 00347858 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8034BBFC 0034785C 7F 65 DB 78 */ mr r5, r27
+/* 8034BC00 00347860 7F 86 E3 78 */ mr r6, r28
+/* 8034BC04 00347864 4B FF F2 ED */ bl gti2HandleReliableMessage
+/* 8034BC08 00347868 7C 03 00 D0 */ neg r0, r3
+/* 8034BC0C 0034786C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034BC10 00347870 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034BC14 00347874 48 00 00 20 */ b lbl_8034BC34
+lbl_8034BC18:
+/* 8034BC18 00347878 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8034BC1C 0034787C 7F 65 DB 78 */ mr r5, r27
+/* 8034BC20 00347880 7F 86 E3 78 */ mr r6, r28
+/* 8034BC24 00347884 4B FF F9 05 */ bl gti2HandleUnreliableMessage
+/* 8034BC28 00347888 7C 03 00 D0 */ neg r0, r3
+/* 8034BC2C 0034788C 7C 00 1B 78 */ or r0, r0, r3
+/* 8034BC30 00347890 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_8034BC34:
+/* 8034BC34 00347894 39 61 00 50 */ addi r11, r1, 0x50
+/* 8034BC38 00347898 4B E7 B5 31 */ bl _restgpr_24
+/* 8034BC3C 0034789C 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8034BC40 003478A0 7C 08 03 A6 */ mtlr r0
+/* 8034BC44 003478A4 38 21 00 50 */ addi r1, r1, 0x50
+/* 8034BC48 003478A8 4E 80 00 20 */ blr
+
+.global gti2HandleConnectionReset
+gti2HandleConnectionReset:
+/* 8034BC4C 003478AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034BC50 003478B0 7C 08 02 A6 */ mflr r0
+/* 8034BC54 003478B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034BC58 003478B8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034BC5C 003478BC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034BC60 003478C0 7C BE 2B 78 */ mr r30, r5
+/* 8034BC64 003478C4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034BC68 003478C8 7C 9D 23 78 */ mr r29, r4
+/* 8034BC6C 003478CC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8034BC70 003478D0 7C 7C 1B 78 */ mr r28, r3
+/* 8034BC74 003478D4 48 00 13 A1 */ bl gti2SocketFindConnection
+/* 8034BC78 003478D8 80 1C 00 2C */ lwz r0, 0x2c(r28)
+/* 8034BC7C 003478DC 7C 7F 1B 78 */ mr r31, r3
+/* 8034BC80 003478E0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BC84 003478E4 41 82 00 38 */ beq lbl_8034BCBC
+/* 8034BC88 003478E8 7F 83 E3 78 */ mr r3, r28
+/* 8034BC8C 003478EC 7F E4 FB 78 */ mr r4, r31
+/* 8034BC90 003478F0 7F A5 EB 78 */ mr r5, r29
+/* 8034BC94 003478F4 7F C6 F3 78 */ mr r6, r30
+/* 8034BC98 003478F8 38 E0 00 01 */ li r7, 1
+/* 8034BC9C 003478FC 39 00 00 00 */ li r8, 0
+/* 8034BCA0 00347900 39 20 00 00 */ li r9, 0
+/* 8034BCA4 00347904 39 40 00 00 */ li r10, 0
+/* 8034BCA8 00347908 4B FF D4 AD */ bl gti2DumpCallback
+/* 8034BCAC 0034790C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BCB0 00347910 40 82 00 0C */ bne lbl_8034BCBC
+/* 8034BCB4 00347914 38 60 00 00 */ li r3, 0
+/* 8034BCB8 00347918 48 00 01 8C */ b lbl_8034BE44
+lbl_8034BCBC:
+/* 8034BCBC 0034791C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034BCC0 00347920 40 82 00 0C */ bne lbl_8034BCCC
+/* 8034BCC4 00347924 38 60 00 01 */ li r3, 1
+/* 8034BCC8 00347928 48 00 01 7C */ b lbl_8034BE44
+lbl_8034BCCC:
+/* 8034BCCC 0034792C 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034BCD0 00347930 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BCD4 00347934 40 82 00 D0 */ bne lbl_8034BDA4
+/* 8034BCD8 00347938 80 1F 00 20 */ lwz r0, 0x20(r31)
+/* 8034BCDC 0034793C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BCE0 00347940 41 82 00 1C */ beq lbl_8034BCFC
+/* 8034BCE4 00347944 4B FE D2 F5 */ bl current_time
+/* 8034BCE8 00347948 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 8034BCEC 0034794C 80 1F 00 20 */ lwz r0, 0x20(r31)
+/* 8034BCF0 00347950 7C 64 18 50 */ subf r3, r4, r3
+/* 8034BCF4 00347954 7C 03 00 40 */ cmplw r3, r0
+/* 8034BCF8 00347958 40 80 00 0C */ bge lbl_8034BD04
+lbl_8034BCFC:
+/* 8034BCFC 0034795C 38 60 00 01 */ li r3, 1
+/* 8034BD00 00347960 48 00 01 44 */ b lbl_8034BE44
+lbl_8034BD04:
+/* 8034BD04 00347964 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034BD08 00347968 2C 03 00 05 */ cmpwi r3, 5
+/* 8034BD0C 0034796C 40 80 00 58 */ bge lbl_8034BD64
+/* 8034BD10 00347970 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8034BD14 00347974 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BD18 00347978 41 82 00 30 */ beq lbl_8034BD48
+/* 8034BD1C 0034797C 7F E3 FB 78 */ mr r3, r31
+/* 8034BD20 00347980 4B FF DB D1 */ bl gti2ConnectionClosed
+/* 8034BD24 00347984 7F E3 FB 78 */ mr r3, r31
+/* 8034BD28 00347988 38 80 00 06 */ li r4, 6
+/* 8034BD2C 0034798C 38 A0 00 00 */ li r5, 0
+/* 8034BD30 00347990 38 C0 00 00 */ li r6, 0
+/* 8034BD34 00347994 4B FF CE E5 */ bl gti2ConnectedCallback
+/* 8034BD38 00347998 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BD3C 0034799C 40 82 00 54 */ bne lbl_8034BD90
+/* 8034BD40 003479A0 38 00 00 00 */ li r0, 0
+/* 8034BD44 003479A4 48 00 00 50 */ b lbl_8034BD94
+lbl_8034BD48:
+/* 8034BD48 003479A8 2C 03 00 04 */ cmpwi r3, 4
+/* 8034BD4C 003479AC 40 82 00 0C */ bne lbl_8034BD58
+/* 8034BD50 003479B0 38 00 00 01 */ li r0, 1
+/* 8034BD54 003479B4 90 1F 00 14 */ stw r0, 0x14(r31)
+lbl_8034BD58:
+/* 8034BD58 003479B8 7F E3 FB 78 */ mr r3, r31
+/* 8034BD5C 003479BC 4B FF DB 95 */ bl gti2ConnectionClosed
+/* 8034BD60 003479C0 48 00 00 30 */ b lbl_8034BD90
+lbl_8034BD64:
+/* 8034BD64 003479C4 2C 03 00 07 */ cmpwi r3, 7
+/* 8034BD68 003479C8 41 82 00 28 */ beq lbl_8034BD90
+/* 8034BD6C 003479CC 7F E3 FB 78 */ mr r3, r31
+/* 8034BD70 003479D0 4B FF DB 81 */ bl gti2ConnectionClosed
+/* 8034BD74 003479D4 7F E3 FB 78 */ mr r3, r31
+/* 8034BD78 003479D8 38 80 00 01 */ li r4, 1
+/* 8034BD7C 003479DC 4B FF D0 51 */ bl gti2ClosedCallback
+/* 8034BD80 003479E0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BD84 003479E4 40 82 00 0C */ bne lbl_8034BD90
+/* 8034BD88 003479E8 38 00 00 00 */ li r0, 0
+/* 8034BD8C 003479EC 48 00 00 08 */ b lbl_8034BD94
+lbl_8034BD90:
+/* 8034BD90 003479F0 38 00 00 01 */ li r0, 1
+lbl_8034BD94:
+/* 8034BD94 003479F4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BD98 003479F8 40 82 00 A8 */ bne lbl_8034BE40
+/* 8034BD9C 003479FC 38 60 00 00 */ li r3, 0
+/* 8034BDA0 00347A00 48 00 00 A4 */ b lbl_8034BE44
+lbl_8034BDA4:
+/* 8034BDA4 00347A04 2C 03 00 05 */ cmpwi r3, 5
+/* 8034BDA8 00347A08 40 80 00 58 */ bge lbl_8034BE00
+/* 8034BDAC 00347A0C 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8034BDB0 00347A10 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BDB4 00347A14 41 82 00 30 */ beq lbl_8034BDE4
+/* 8034BDB8 00347A18 7F E3 FB 78 */ mr r3, r31
+/* 8034BDBC 00347A1C 4B FF DB 35 */ bl gti2ConnectionClosed
+/* 8034BDC0 00347A20 7F E3 FB 78 */ mr r3, r31
+/* 8034BDC4 00347A24 38 80 00 02 */ li r4, 2
+/* 8034BDC8 00347A28 38 A0 00 00 */ li r5, 0
+/* 8034BDCC 00347A2C 38 C0 00 00 */ li r6, 0
+/* 8034BDD0 00347A30 4B FF CE 49 */ bl gti2ConnectedCallback
+/* 8034BDD4 00347A34 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BDD8 00347A38 40 82 00 54 */ bne lbl_8034BE2C
+/* 8034BDDC 00347A3C 38 00 00 00 */ li r0, 0
+/* 8034BDE0 00347A40 48 00 00 50 */ b lbl_8034BE30
+lbl_8034BDE4:
+/* 8034BDE4 00347A44 2C 03 00 04 */ cmpwi r3, 4
+/* 8034BDE8 00347A48 40 82 00 0C */ bne lbl_8034BDF4
+/* 8034BDEC 00347A4C 38 00 00 01 */ li r0, 1
+/* 8034BDF0 00347A50 90 1F 00 14 */ stw r0, 0x14(r31)
+lbl_8034BDF4:
+/* 8034BDF4 00347A54 7F E3 FB 78 */ mr r3, r31
+/* 8034BDF8 00347A58 4B FF DA F9 */ bl gti2ConnectionClosed
+/* 8034BDFC 00347A5C 48 00 00 30 */ b lbl_8034BE2C
+lbl_8034BE00:
+/* 8034BE00 00347A60 2C 03 00 07 */ cmpwi r3, 7
+/* 8034BE04 00347A64 41 82 00 28 */ beq lbl_8034BE2C
+/* 8034BE08 00347A68 7F E3 FB 78 */ mr r3, r31
+/* 8034BE0C 00347A6C 4B FF DA E5 */ bl gti2ConnectionClosed
+/* 8034BE10 00347A70 7F E3 FB 78 */ mr r3, r31
+/* 8034BE14 00347A74 38 80 00 01 */ li r4, 1
+/* 8034BE18 00347A78 4B FF CF B5 */ bl gti2ClosedCallback
+/* 8034BE1C 00347A7C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BE20 00347A80 40 82 00 0C */ bne lbl_8034BE2C
+/* 8034BE24 00347A84 38 00 00 00 */ li r0, 0
+/* 8034BE28 00347A88 48 00 00 08 */ b lbl_8034BE30
+lbl_8034BE2C:
+/* 8034BE2C 00347A8C 38 00 00 01 */ li r0, 1
+lbl_8034BE30:
+/* 8034BE30 00347A90 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BE34 00347A94 40 82 00 0C */ bne lbl_8034BE40
+/* 8034BE38 00347A98 38 60 00 00 */ li r3, 0
+/* 8034BE3C 00347A9C 48 00 00 08 */ b lbl_8034BE44
+lbl_8034BE40:
+/* 8034BE40 00347AA0 38 60 00 01 */ li r3, 1
+lbl_8034BE44:
+/* 8034BE44 00347AA4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034BE48 00347AA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034BE4C 00347AAC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034BE50 00347AB0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034BE54 00347AB4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8034BE58 00347AB8 7C 08 03 A6 */ mtlr r0
+/* 8034BE5C 00347ABC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034BE60 00347AC0 4E 80 00 20 */ blr
+
+.global gti2HandleHostUnreachable
+gti2HandleHostUnreachable:
+/* 8034BE64 00347AC4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034BE68 00347AC8 7C 08 02 A6 */ mflr r0
+/* 8034BE6C 00347ACC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034BE70 00347AD0 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034BE74 00347AD4 4B E7 B2 B5 */ bl _savegpr_27
+/* 8034BE78 00347AD8 7C BD 2B 78 */ mr r29, r5
+/* 8034BE7C 00347ADC 7C 7B 1B 78 */ mr r27, r3
+/* 8034BE80 00347AE0 7C 9C 23 78 */ mr r28, r4
+/* 8034BE84 00347AE4 7C DE 33 78 */ mr r30, r6
+/* 8034BE88 00347AE8 48 00 11 8D */ bl gti2SocketFindConnection
+/* 8034BE8C 00347AEC 80 1B 00 2C */ lwz r0, 0x2c(r27)
+/* 8034BE90 00347AF0 7C 7F 1B 78 */ mr r31, r3
+/* 8034BE94 00347AF4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BE98 00347AF8 41 82 00 38 */ beq lbl_8034BED0
+/* 8034BE9C 00347AFC 7F 63 DB 78 */ mr r3, r27
+/* 8034BEA0 00347B00 7F E4 FB 78 */ mr r4, r31
+/* 8034BEA4 00347B04 7F 85 E3 78 */ mr r5, r28
+/* 8034BEA8 00347B08 7F A6 EB 78 */ mr r6, r29
+/* 8034BEAC 00347B0C 7F CA F3 78 */ mr r10, r30
+/* 8034BEB0 00347B10 38 E0 00 01 */ li r7, 1
+/* 8034BEB4 00347B14 39 00 00 00 */ li r8, 0
+/* 8034BEB8 00347B18 39 20 00 00 */ li r9, 0
+/* 8034BEBC 00347B1C 4B FF D2 99 */ bl gti2DumpCallback
+/* 8034BEC0 00347B20 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BEC4 00347B24 40 82 00 0C */ bne lbl_8034BED0
+/* 8034BEC8 00347B28 38 60 00 00 */ li r3, 0
+/* 8034BECC 00347B2C 48 00 00 B0 */ b lbl_8034BF7C
+lbl_8034BED0:
+/* 8034BED0 00347B30 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034BED4 00347B34 40 82 00 0C */ bne lbl_8034BEE0
+/* 8034BED8 00347B38 38 60 00 01 */ li r3, 1
+/* 8034BEDC 00347B3C 48 00 00 A0 */ b lbl_8034BF7C
+lbl_8034BEE0:
+/* 8034BEE0 00347B40 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034BEE4 00347B44 2C 03 00 05 */ cmpwi r3, 5
+/* 8034BEE8 00347B48 40 80 00 58 */ bge lbl_8034BF40
+/* 8034BEEC 00347B4C 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8034BEF0 00347B50 2C 00 00 00 */ cmpwi r0, 0
+/* 8034BEF4 00347B54 41 82 00 30 */ beq lbl_8034BF24
+/* 8034BEF8 00347B58 7F E3 FB 78 */ mr r3, r31
+/* 8034BEFC 00347B5C 4B FF D9 F5 */ bl gti2ConnectionClosed
+/* 8034BF00 00347B60 7F E3 FB 78 */ mr r3, r31
+/* 8034BF04 00347B64 38 80 00 06 */ li r4, 6
+/* 8034BF08 00347B68 38 A0 00 00 */ li r5, 0
+/* 8034BF0C 00347B6C 38 C0 00 00 */ li r6, 0
+/* 8034BF10 00347B70 4B FF CD 09 */ bl gti2ConnectedCallback
+/* 8034BF14 00347B74 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BF18 00347B78 40 82 00 54 */ bne lbl_8034BF6C
+/* 8034BF1C 00347B7C 38 60 00 00 */ li r3, 0
+/* 8034BF20 00347B80 48 00 00 50 */ b lbl_8034BF70
+lbl_8034BF24:
+/* 8034BF24 00347B84 2C 03 00 04 */ cmpwi r3, 4
+/* 8034BF28 00347B88 40 82 00 0C */ bne lbl_8034BF34
+/* 8034BF2C 00347B8C 38 00 00 01 */ li r0, 1
+/* 8034BF30 00347B90 90 1F 00 14 */ stw r0, 0x14(r31)
+lbl_8034BF34:
+/* 8034BF34 00347B94 7F E3 FB 78 */ mr r3, r31
+/* 8034BF38 00347B98 4B FF D9 B9 */ bl gti2ConnectionClosed
+/* 8034BF3C 00347B9C 48 00 00 30 */ b lbl_8034BF6C
+lbl_8034BF40:
+/* 8034BF40 00347BA0 2C 03 00 07 */ cmpwi r3, 7
+/* 8034BF44 00347BA4 41 82 00 28 */ beq lbl_8034BF6C
+/* 8034BF48 00347BA8 7F E3 FB 78 */ mr r3, r31
+/* 8034BF4C 00347BAC 4B FF D9 A5 */ bl gti2ConnectionClosed
+/* 8034BF50 00347BB0 7F E3 FB 78 */ mr r3, r31
+/* 8034BF54 00347BB4 38 80 00 01 */ li r4, 1
+/* 8034BF58 00347BB8 4B FF CE 75 */ bl gti2ClosedCallback
+/* 8034BF5C 00347BBC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034BF60 00347BC0 40 82 00 0C */ bne lbl_8034BF6C
+/* 8034BF64 00347BC4 38 60 00 00 */ li r3, 0
+/* 8034BF68 00347BC8 48 00 00 08 */ b lbl_8034BF70
+lbl_8034BF6C:
+/* 8034BF6C 00347BCC 38 60 00 01 */ li r3, 1
+lbl_8034BF70:
+/* 8034BF70 00347BD0 7C 03 00 D0 */ neg r0, r3
+/* 8034BF74 00347BD4 7C 00 1B 78 */ or r0, r0, r3
+/* 8034BF78 00347BD8 54 03 0F FE */ srwi r3, r0, 0x1f
+lbl_8034BF7C:
+/* 8034BF7C 00347BDC 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034BF80 00347BE0 4B E7 B1 F5 */ bl _restgpr_27
+/* 8034BF84 00347BE4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034BF88 00347BE8 7C 08 03 A6 */ mtlr r0
+/* 8034BF8C 00347BEC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034BF90 00347BF0 4E 80 00 20 */ blr
+
+.global gti2ReceiveMessages
+gti2ReceiveMessages:
+/* 8034BF94 00347BF4 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8034BF98 00347BF8 7C 08 02 A6 */ mflr r0
+/* 8034BF9C 00347BFC 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8034BFA0 00347C00 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034BFA4 00347C04 4B E7 B1 79 */ bl _savegpr_24
+/* 8034BFA8 00347C08 7C 7F 1B 78 */ mr r31, r3
+/* 8034BFAC 00347C0C 3B C0 00 01 */ li r30, 1
+/* 8034BFB0 00347C10 3B 40 00 08 */ li r26, 8
+/* 8034BFB4 00347C14 3F 60 80 61 */ lis r27, 0x8061
+/* 8034BFB8 00347C18 3F 80 00 01 */ lis r28, 1
+/* 8034BFBC 00347C1C 48 00 01 DC */ b lbl_8034C198
+lbl_8034BFC0:
+/* 8034BFC0 00347C20 93 41 00 08 */ stw r26, 8(r1)
+/* 8034BFC4 00347C24 38 9B 0C 60 */ addi r4, r27, 0xc60
+/* 8034BFC8 00347C28 38 BC FF FF */ addi r5, r28, -1
+/* 8034BFCC 00347C2C 38 E1 00 10 */ addi r7, r1, 0x10
+/* 8034BFD0 00347C30 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8034BFD4 00347C34 39 01 00 08 */ addi r8, r1, 8
+/* 8034BFD8 00347C38 38 C0 00 00 */ li r6, 0
+/* 8034BFDC 00347C3C 4B FE BE 29 */ bl recvfrom
+/* 8034BFE0 00347C40 2C 03 FF FF */ cmpwi r3, -1
+/* 8034BFE4 00347C44 7C 78 1B 78 */ mr r24, r3
+/* 8034BFE8 00347C48 40 82 01 7C */ bne lbl_8034C164
+/* 8034BFEC 00347C4C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8034BFF0 00347C50 4B FE BF B9 */ bl GOAGetLastError
+/* 8034BFF4 00347C54 2C 03 FF F1 */ cmpwi r3, -15
+/* 8034BFF8 00347C58 40 82 00 30 */ bne lbl_8034C028
+/* 8034BFFC 00347C5C A0 61 00 12 */ lhz r3, 0x12(r1)
+/* 8034C000 00347C60 4B FA AD 71 */ bl SONtoHs
+/* 8034C004 00347C64 7C 60 1B 78 */ mr r0, r3
+/* 8034C008 00347C68 80 81 00 14 */ lwz r4, 0x14(r1)
+/* 8034C00C 00347C6C 7F E3 FB 78 */ mr r3, r31
+/* 8034C010 00347C70 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 8034C014 00347C74 4B FF FC 39 */ bl gti2HandleConnectionReset
+/* 8034C018 00347C78 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C01C 00347C7C 40 82 01 7C */ bne lbl_8034C198
+/* 8034C020 00347C80 38 60 00 00 */ li r3, 0
+/* 8034C024 00347C84 48 00 01 88 */ b lbl_8034C1AC
+lbl_8034C028:
+/* 8034C028 00347C88 2C 03 FF E9 */ cmpwi r3, -23
+/* 8034C02C 00347C8C 40 82 01 20 */ bne lbl_8034C14C
+/* 8034C030 00347C90 A0 61 00 12 */ lhz r3, 0x12(r1)
+/* 8034C034 00347C94 4B FA AD 3D */ bl SONtoHs
+/* 8034C038 00347C98 83 21 00 14 */ lwz r25, 0x14(r1)
+/* 8034C03C 00347C9C 7C 7D 1B 78 */ mr r29, r3
+/* 8034C040 00347CA0 7F E3 FB 78 */ mr r3, r31
+/* 8034C044 00347CA4 7F 24 CB 78 */ mr r4, r25
+/* 8034C048 00347CA8 57 A5 04 3E */ clrlwi r5, r29, 0x10
+/* 8034C04C 00347CAC 48 00 0F C9 */ bl gti2SocketFindConnection
+/* 8034C050 00347CB0 80 1F 00 2C */ lwz r0, 0x2c(r31)
+/* 8034C054 00347CB4 7C 78 1B 78 */ mr r24, r3
+/* 8034C058 00347CB8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C05C 00347CBC 41 82 00 38 */ beq lbl_8034C094
+/* 8034C060 00347CC0 7F E3 FB 78 */ mr r3, r31
+/* 8034C064 00347CC4 7F 04 C3 78 */ mr r4, r24
+/* 8034C068 00347CC8 7F 25 CB 78 */ mr r5, r25
+/* 8034C06C 00347CCC 57 A6 04 3E */ clrlwi r6, r29, 0x10
+/* 8034C070 00347CD0 38 E0 00 01 */ li r7, 1
+/* 8034C074 00347CD4 39 00 00 00 */ li r8, 0
+/* 8034C078 00347CD8 39 20 00 00 */ li r9, 0
+/* 8034C07C 00347CDC 39 40 00 00 */ li r10, 0
+/* 8034C080 00347CE0 4B FF D0 D5 */ bl gti2DumpCallback
+/* 8034C084 00347CE4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C088 00347CE8 40 82 00 0C */ bne lbl_8034C094
+/* 8034C08C 00347CEC 38 00 00 00 */ li r0, 0
+/* 8034C090 00347CF0 48 00 00 AC */ b lbl_8034C13C
+lbl_8034C094:
+/* 8034C094 00347CF4 2C 18 00 00 */ cmpwi r24, 0
+/* 8034C098 00347CF8 40 82 00 0C */ bne lbl_8034C0A4
+/* 8034C09C 00347CFC 38 00 00 01 */ li r0, 1
+/* 8034C0A0 00347D00 48 00 00 9C */ b lbl_8034C13C
+lbl_8034C0A4:
+/* 8034C0A4 00347D04 80 78 00 0C */ lwz r3, 0xc(r24)
+/* 8034C0A8 00347D08 2C 03 00 05 */ cmpwi r3, 5
+/* 8034C0AC 00347D0C 40 80 00 54 */ bge lbl_8034C100
+/* 8034C0B0 00347D10 80 18 00 10 */ lwz r0, 0x10(r24)
+/* 8034C0B4 00347D14 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C0B8 00347D18 41 82 00 30 */ beq lbl_8034C0E8
+/* 8034C0BC 00347D1C 7F 03 C3 78 */ mr r3, r24
+/* 8034C0C0 00347D20 4B FF D8 31 */ bl gti2ConnectionClosed
+/* 8034C0C4 00347D24 7F 03 C3 78 */ mr r3, r24
+/* 8034C0C8 00347D28 38 80 00 06 */ li r4, 6
+/* 8034C0CC 00347D2C 38 A0 00 00 */ li r5, 0
+/* 8034C0D0 00347D30 38 C0 00 00 */ li r6, 0
+/* 8034C0D4 00347D34 4B FF CB 45 */ bl gti2ConnectedCallback
+/* 8034C0D8 00347D38 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C0DC 00347D3C 40 82 00 50 */ bne lbl_8034C12C
+/* 8034C0E0 00347D40 38 60 00 00 */ li r3, 0
+/* 8034C0E4 00347D44 48 00 00 4C */ b lbl_8034C130
+lbl_8034C0E8:
+/* 8034C0E8 00347D48 2C 03 00 04 */ cmpwi r3, 4
+/* 8034C0EC 00347D4C 40 82 00 08 */ bne lbl_8034C0F4
+/* 8034C0F0 00347D50 93 D8 00 14 */ stw r30, 0x14(r24)
+lbl_8034C0F4:
+/* 8034C0F4 00347D54 7F 03 C3 78 */ mr r3, r24
+/* 8034C0F8 00347D58 4B FF D7 F9 */ bl gti2ConnectionClosed
+/* 8034C0FC 00347D5C 48 00 00 30 */ b lbl_8034C12C
+lbl_8034C100:
+/* 8034C100 00347D60 2C 03 00 07 */ cmpwi r3, 7
+/* 8034C104 00347D64 41 82 00 28 */ beq lbl_8034C12C
+/* 8034C108 00347D68 7F 03 C3 78 */ mr r3, r24
+/* 8034C10C 00347D6C 4B FF D7 E5 */ bl gti2ConnectionClosed
+/* 8034C110 00347D70 7F 03 C3 78 */ mr r3, r24
+/* 8034C114 00347D74 38 80 00 01 */ li r4, 1
+/* 8034C118 00347D78 4B FF CC B5 */ bl gti2ClosedCallback
+/* 8034C11C 00347D7C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C120 00347D80 40 82 00 0C */ bne lbl_8034C12C
+/* 8034C124 00347D84 38 60 00 00 */ li r3, 0
+/* 8034C128 00347D88 48 00 00 08 */ b lbl_8034C130
+lbl_8034C12C:
+/* 8034C12C 00347D8C 38 60 00 01 */ li r3, 1
+lbl_8034C130:
+/* 8034C130 00347D90 7C 03 00 D0 */ neg r0, r3
+/* 8034C134 00347D94 7C 00 1B 78 */ or r0, r0, r3
+/* 8034C138 00347D98 54 00 0F FE */ srwi r0, r0, 0x1f
+lbl_8034C13C:
+/* 8034C13C 00347D9C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C140 00347DA0 40 82 00 58 */ bne lbl_8034C198
+/* 8034C144 00347DA4 38 60 00 00 */ li r3, 0
+/* 8034C148 00347DA8 48 00 00 64 */ b lbl_8034C1AC
+lbl_8034C14C:
+/* 8034C14C 00347DAC 2C 03 FF DD */ cmpwi r3, -35
+/* 8034C150 00347DB0 41 82 00 48 */ beq lbl_8034C198
+/* 8034C154 00347DB4 7F E3 FB 78 */ mr r3, r31
+/* 8034C158 00347DB8 48 00 19 65 */ bl gti2SocketError
+/* 8034C15C 00347DBC 38 60 00 00 */ li r3, 0
+/* 8034C160 00347DC0 48 00 00 4C */ b lbl_8034C1AC
+lbl_8034C164:
+/* 8034C164 00347DC4 A0 61 00 12 */ lhz r3, 0x12(r1)
+/* 8034C168 00347DC8 4B FA AC 09 */ bl SONtoHs
+/* 8034C16C 00347DCC 7C 60 1B 78 */ mr r0, r3
+/* 8034C170 00347DD0 80 C1 00 14 */ lwz r6, 0x14(r1)
+/* 8034C174 00347DD4 7F E3 FB 78 */ mr r3, r31
+/* 8034C178 00347DD8 7F 05 C3 78 */ mr r5, r24
+/* 8034C17C 00347DDC 38 9B 0C 60 */ addi r4, r27, 0xc60
+/* 8034C180 00347DE0 54 07 04 3E */ clrlwi r7, r0, 0x10
+/* 8034C184 00347DE4 4B FF F6 6D */ bl gti2HandleMessage
+/* 8034C188 00347DE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C18C 00347DEC 40 82 00 0C */ bne lbl_8034C198
+/* 8034C190 00347DF0 38 60 00 00 */ li r3, 0
+/* 8034C194 00347DF4 48 00 00 18 */ b lbl_8034C1AC
+lbl_8034C198:
+/* 8034C198 00347DF8 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8034C19C 00347DFC 4B FE C6 B1 */ bl CanReceiveOnSocket
+/* 8034C1A0 00347E00 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C1A4 00347E04 40 82 FE 1C */ bne lbl_8034BFC0
+/* 8034C1A8 00347E08 38 60 00 01 */ li r3, 1
+lbl_8034C1AC:
+/* 8034C1AC 00347E0C 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034C1B0 00347E10 4B E7 AF B9 */ bl _restgpr_24
+/* 8034C1B4 00347E14 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8034C1B8 00347E18 7C 08 03 A6 */ mtlr r0
+/* 8034C1BC 00347E1C 38 21 00 40 */ addi r1, r1, 0x40
+/* 8034C1C0 00347E20 4E 80 00 20 */ blr
+
+.global gti2BeginReliableMessage
+gti2BeginReliableMessage:
+/* 8034C1C4 00347E24 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8034C1C8 00347E28 7C 08 02 A6 */ mflr r0
+/* 8034C1CC 00347E2C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8034C1D0 00347E30 39 61 00 50 */ addi r11, r1, 0x50
+/* 8034C1D4 00347E34 4B E7 AF 51 */ bl _savegpr_26
+/* 8034C1D8 00347E38 80 E3 00 08 */ lwz r7, 8(r3)
+/* 8034C1DC 00347E3C 7C 7E 1B 78 */ mr r30, r3
+/* 8034C1E0 00347E40 7C 9C 23 78 */ mr r28, r4
+/* 8034C1E4 00347E44 7C BB 2B 78 */ mr r27, r5
+/* 8034C1E8 00347E48 80 07 00 44 */ lwz r0, 0x44(r7)
+/* 8034C1EC 00347E4C 7C DF 33 78 */ mr r31, r6
+/* 8034C1F0 00347E50 38 63 00 50 */ addi r3, r3, 0x50
+/* 8034C1F4 00347E54 7C 00 28 50 */ subf r0, r0, r5
+/* 8034C1F8 00347E58 B0 01 00 0C */ sth r0, 0xc(r1)
+/* 8034C1FC 00347E5C 4B FF C7 55 */ bl gti2GetBufferFreeSpace
+/* 8034C200 00347E60 7C 03 D8 00 */ cmpw r3, r27
+/* 8034C204 00347E64 40 80 01 3C */ bge lbl_8034C340
+/* 8034C208 00347E68 83 BE 00 08 */ lwz r29, 8(r30)
+/* 8034C20C 00347E6C 3B 40 00 00 */ li r26, 0
+/* 8034C210 00347E70 A3 7E 00 04 */ lhz r27, 4(r30)
+/* 8034C214 00347E74 80 1D 00 40 */ lwz r0, 0x40(r29)
+/* 8034C218 00347E78 83 9E 00 00 */ lwz r28, 0(r30)
+/* 8034C21C 00347E7C 2C 00 00 02 */ cmpwi r0, 2
+/* 8034C220 00347E80 40 82 00 20 */ bne lbl_8034C240
+/* 8034C224 00347E84 38 00 00 03 */ li r0, 3
+/* 8034C228 00347E88 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034C22C 00347E8C B0 01 00 0A */ sth r0, 0xa(r1)
+/* 8034C230 00347E90 38 81 00 0A */ addi r4, r1, 0xa
+/* 8034C234 00347E94 38 A0 00 02 */ li r5, 2
+/* 8034C238 00347E98 4B CB 7D C9 */ bl memcpy
+/* 8034C23C 00347E9C 3B 40 00 02 */ li r26, 2
+lbl_8034C240:
+/* 8034C240 00347EA0 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034C244 00347EA4 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034C248 00347EA8 7C 63 D2 14 */ add r3, r3, r26
+/* 8034C24C 00347EAC 38 A0 00 02 */ li r5, 2
+/* 8034C250 00347EB0 4B CB 7D B1 */ bl memcpy
+/* 8034C254 00347EB4 3B 5A 00 02 */ addi r26, r26, 2
+/* 8034C258 00347EB8 38 C1 00 18 */ addi r6, r1, 0x18
+/* 8034C25C 00347EBC 38 00 00 68 */ li r0, 0x68
+/* 8034C260 00347EC0 7F A3 EB 78 */ mr r3, r29
+/* 8034C264 00347EC4 7C 06 D1 AE */ stbx r0, r6, r26
+/* 8034C268 00347EC8 7F 84 E3 78 */ mr r4, r28
+/* 8034C26C 00347ECC 7F 65 DB 78 */ mr r5, r27
+/* 8034C270 00347ED0 38 FA 00 01 */ addi r7, r26, 1
+/* 8034C274 00347ED4 48 00 13 D5 */ bl gti2SocketSend
+/* 8034C278 00347ED8 7C 03 00 D0 */ neg r0, r3
+/* 8034C27C 00347EDC 7C 00 1B 78 */ or r0, r0, r3
+/* 8034C280 00347EE0 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034C284 00347EE4 40 82 00 0C */ bne lbl_8034C290
+/* 8034C288 00347EE8 38 00 00 00 */ li r0, 0
+/* 8034C28C 00347EEC 48 00 00 94 */ b lbl_8034C320
+lbl_8034C290:
+/* 8034C290 00347EF0 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8034C294 00347EF4 2C 03 00 05 */ cmpwi r3, 5
+/* 8034C298 00347EF8 40 80 00 58 */ bge lbl_8034C2F0
+/* 8034C29C 00347EFC 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 8034C2A0 00347F00 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C2A4 00347F04 41 82 00 30 */ beq lbl_8034C2D4
+/* 8034C2A8 00347F08 7F C3 F3 78 */ mr r3, r30
+/* 8034C2AC 00347F0C 4B FF D6 45 */ bl gti2ConnectionClosed
+/* 8034C2B0 00347F10 7F C3 F3 78 */ mr r3, r30
+/* 8034C2B4 00347F14 38 80 00 01 */ li r4, 1
+/* 8034C2B8 00347F18 38 A0 00 00 */ li r5, 0
+/* 8034C2BC 00347F1C 38 C0 00 00 */ li r6, 0
+/* 8034C2C0 00347F20 4B FF C9 59 */ bl gti2ConnectedCallback
+/* 8034C2C4 00347F24 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C2C8 00347F28 40 82 00 54 */ bne lbl_8034C31C
+/* 8034C2CC 00347F2C 38 00 00 00 */ li r0, 0
+/* 8034C2D0 00347F30 48 00 00 50 */ b lbl_8034C320
+lbl_8034C2D4:
+/* 8034C2D4 00347F34 2C 03 00 04 */ cmpwi r3, 4
+/* 8034C2D8 00347F38 40 82 00 0C */ bne lbl_8034C2E4
+/* 8034C2DC 00347F3C 38 00 00 01 */ li r0, 1
+/* 8034C2E0 00347F40 90 1E 00 14 */ stw r0, 0x14(r30)
+lbl_8034C2E4:
+/* 8034C2E4 00347F44 7F C3 F3 78 */ mr r3, r30
+/* 8034C2E8 00347F48 4B FF D6 09 */ bl gti2ConnectionClosed
+/* 8034C2EC 00347F4C 48 00 00 30 */ b lbl_8034C31C
+lbl_8034C2F0:
+/* 8034C2F0 00347F50 2C 03 00 07 */ cmpwi r3, 7
+/* 8034C2F4 00347F54 41 82 00 28 */ beq lbl_8034C31C
+/* 8034C2F8 00347F58 7F C3 F3 78 */ mr r3, r30
+/* 8034C2FC 00347F5C 4B FF D5 F5 */ bl gti2ConnectionClosed
+/* 8034C300 00347F60 7F C3 F3 78 */ mr r3, r30
+/* 8034C304 00347F64 38 80 00 04 */ li r4, 4
+/* 8034C308 00347F68 4B FF CA C5 */ bl gti2ClosedCallback
+/* 8034C30C 00347F6C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C310 00347F70 40 82 00 0C */ bne lbl_8034C31C
+/* 8034C314 00347F74 38 00 00 00 */ li r0, 0
+/* 8034C318 00347F78 48 00 00 08 */ b lbl_8034C320
+lbl_8034C31C:
+/* 8034C31C 00347F7C 38 00 00 01 */ li r0, 1
+lbl_8034C320:
+/* 8034C320 00347F80 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C324 00347F84 40 82 00 0C */ bne lbl_8034C330
+/* 8034C328 00347F88 38 60 00 00 */ li r3, 0
+/* 8034C32C 00347F8C 48 00 02 14 */ b lbl_8034C540
+lbl_8034C330:
+/* 8034C330 00347F90 38 00 00 01 */ li r0, 1
+/* 8034C334 00347F94 38 60 00 01 */ li r3, 1
+/* 8034C338 00347F98 90 1F 00 00 */ stw r0, 0(r31)
+/* 8034C33C 00347F9C 48 00 02 04 */ b lbl_8034C540
+lbl_8034C340:
+/* 8034C340 00347FA0 A3 5E 00 64 */ lhz r26, 0x64(r30)
+/* 8034C344 00347FA4 38 61 00 20 */ addi r3, r1, 0x20
+/* 8034C348 00347FA8 38 80 00 00 */ li r4, 0
+/* 8034C34C 00347FAC 38 A0 00 10 */ li r5, 0x10
+/* 8034C350 00347FB0 4B CB 7D B5 */ bl memset
+/* 8034C354 00347FB4 80 1E 00 58 */ lwz r0, 0x58(r30)
+/* 8034C358 00347FB8 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8034C35C 00347FBC 93 61 00 24 */ stw r27, 0x24(r1)
+/* 8034C360 00347FC0 B3 41 00 28 */ sth r26, 0x28(r1)
+/* 8034C364 00347FC4 4B FE CC 75 */ bl current_time
+/* 8034C368 00347FC8 90 61 00 2C */ stw r3, 0x2c(r1)
+/* 8034C36C 00347FCC 80 7E 00 60 */ lwz r3, 0x60(r30)
+/* 8034C370 00347FD0 4B FE 9B 79 */ bl ArrayLength
+/* 8034C374 00347FD4 7C 7D 1B 78 */ mr r29, r3
+/* 8034C378 00347FD8 80 7E 00 60 */ lwz r3, 0x60(r30)
+/* 8034C37C 00347FDC 38 81 00 20 */ addi r4, r1, 0x20
+/* 8034C380 00347FE0 4B FE 9B A1 */ bl ArrayAppend
+/* 8034C384 00347FE4 80 7E 00 60 */ lwz r3, 0x60(r30)
+/* 8034C388 00347FE8 4B FE 9B 61 */ bl ArrayLength
+/* 8034C38C 00347FEC 38 1D 00 01 */ addi r0, r29, 1
+/* 8034C390 00347FF0 7C 00 18 50 */ subf r0, r0, r3
+/* 8034C394 00347FF4 7C 00 00 34 */ cntlzw r0, r0
+/* 8034C398 00347FF8 54 00 D9 7F */ rlwinm. r0, r0, 0x1b, 5, 0x1f
+/* 8034C39C 00347FFC 40 82 01 3C */ bne lbl_8034C4D8
+/* 8034C3A0 00348000 83 5E 00 08 */ lwz r26, 8(r30)
+/* 8034C3A4 00348004 3B A0 00 00 */ li r29, 0
+/* 8034C3A8 00348008 A3 9E 00 04 */ lhz r28, 4(r30)
+/* 8034C3AC 0034800C 80 1A 00 40 */ lwz r0, 0x40(r26)
+/* 8034C3B0 00348010 83 7E 00 00 */ lwz r27, 0(r30)
+/* 8034C3B4 00348014 2C 00 00 02 */ cmpwi r0, 2
+/* 8034C3B8 00348018 40 82 00 20 */ bne lbl_8034C3D8
+/* 8034C3BC 0034801C 38 00 00 03 */ li r0, 3
+/* 8034C3C0 00348020 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034C3C4 00348024 B0 01 00 08 */ sth r0, 8(r1)
+/* 8034C3C8 00348028 38 81 00 08 */ addi r4, r1, 8
+/* 8034C3CC 0034802C 38 A0 00 02 */ li r5, 2
+/* 8034C3D0 00348030 4B CB 7C 31 */ bl memcpy
+/* 8034C3D4 00348034 3B A0 00 02 */ li r29, 2
+lbl_8034C3D8:
+/* 8034C3D8 00348038 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034C3DC 0034803C 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034C3E0 00348040 7C 63 EA 14 */ add r3, r3, r29
+/* 8034C3E4 00348044 38 A0 00 02 */ li r5, 2
+/* 8034C3E8 00348048 4B CB 7C 19 */ bl memcpy
+/* 8034C3EC 0034804C 3B BD 00 02 */ addi r29, r29, 2
+/* 8034C3F0 00348050 38 C1 00 10 */ addi r6, r1, 0x10
+/* 8034C3F4 00348054 38 00 00 68 */ li r0, 0x68
+/* 8034C3F8 00348058 7F 43 D3 78 */ mr r3, r26
+/* 8034C3FC 0034805C 7C 06 E9 AE */ stbx r0, r6, r29
+/* 8034C400 00348060 7F 64 DB 78 */ mr r4, r27
+/* 8034C404 00348064 7F 85 E3 78 */ mr r5, r28
+/* 8034C408 00348068 38 FD 00 01 */ addi r7, r29, 1
+/* 8034C40C 0034806C 48 00 12 3D */ bl gti2SocketSend
+/* 8034C410 00348070 7C 03 00 D0 */ neg r0, r3
+/* 8034C414 00348074 7C 00 1B 78 */ or r0, r0, r3
+/* 8034C418 00348078 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
+/* 8034C41C 0034807C 40 82 00 0C */ bne lbl_8034C428
+/* 8034C420 00348080 38 00 00 00 */ li r0, 0
+/* 8034C424 00348084 48 00 00 94 */ b lbl_8034C4B8
+lbl_8034C428:
+/* 8034C428 00348088 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8034C42C 0034808C 2C 03 00 05 */ cmpwi r3, 5
+/* 8034C430 00348090 40 80 00 58 */ bge lbl_8034C488
+/* 8034C434 00348094 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 8034C438 00348098 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C43C 0034809C 41 82 00 30 */ beq lbl_8034C46C
+/* 8034C440 003480A0 7F C3 F3 78 */ mr r3, r30
+/* 8034C444 003480A4 4B FF D4 AD */ bl gti2ConnectionClosed
+/* 8034C448 003480A8 7F C3 F3 78 */ mr r3, r30
+/* 8034C44C 003480AC 38 80 00 01 */ li r4, 1
+/* 8034C450 003480B0 38 A0 00 00 */ li r5, 0
+/* 8034C454 003480B4 38 C0 00 00 */ li r6, 0
+/* 8034C458 003480B8 4B FF C7 C1 */ bl gti2ConnectedCallback
+/* 8034C45C 003480BC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C460 003480C0 40 82 00 54 */ bne lbl_8034C4B4
+/* 8034C464 003480C4 38 00 00 00 */ li r0, 0
+/* 8034C468 003480C8 48 00 00 50 */ b lbl_8034C4B8
+lbl_8034C46C:
+/* 8034C46C 003480CC 2C 03 00 04 */ cmpwi r3, 4
+/* 8034C470 003480D0 40 82 00 0C */ bne lbl_8034C47C
+/* 8034C474 003480D4 38 00 00 01 */ li r0, 1
+/* 8034C478 003480D8 90 1E 00 14 */ stw r0, 0x14(r30)
+lbl_8034C47C:
+/* 8034C47C 003480DC 7F C3 F3 78 */ mr r3, r30
+/* 8034C480 003480E0 4B FF D4 71 */ bl gti2ConnectionClosed
+/* 8034C484 003480E4 48 00 00 30 */ b lbl_8034C4B4
+lbl_8034C488:
+/* 8034C488 003480E8 2C 03 00 07 */ cmpwi r3, 7
+/* 8034C48C 003480EC 41 82 00 28 */ beq lbl_8034C4B4
+/* 8034C490 003480F0 7F C3 F3 78 */ mr r3, r30
+/* 8034C494 003480F4 4B FF D4 5D */ bl gti2ConnectionClosed
+/* 8034C498 003480F8 7F C3 F3 78 */ mr r3, r30
+/* 8034C49C 003480FC 38 80 00 04 */ li r4, 4
+/* 8034C4A0 00348100 4B FF C9 2D */ bl gti2ClosedCallback
+/* 8034C4A4 00348104 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C4A8 00348108 40 82 00 0C */ bne lbl_8034C4B4
+/* 8034C4AC 0034810C 38 00 00 00 */ li r0, 0
+/* 8034C4B0 00348110 48 00 00 08 */ b lbl_8034C4B8
+lbl_8034C4B4:
+/* 8034C4B4 00348114 38 00 00 01 */ li r0, 1
+lbl_8034C4B8:
+/* 8034C4B8 00348118 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C4BC 0034811C 40 82 00 0C */ bne lbl_8034C4C8
+/* 8034C4C0 00348120 38 60 00 00 */ li r3, 0
+/* 8034C4C4 00348124 48 00 00 7C */ b lbl_8034C540
+lbl_8034C4C8:
+/* 8034C4C8 00348128 38 00 00 01 */ li r0, 1
+/* 8034C4CC 0034812C 38 60 00 01 */ li r3, 1
+/* 8034C4D0 00348130 90 1F 00 00 */ stw r0, 0(r31)
+/* 8034C4D4 00348134 48 00 00 6C */ b lbl_8034C540
+lbl_8034C4D8:
+/* 8034C4D8 00348138 80 7E 00 08 */ lwz r3, 8(r30)
+/* 8034C4DC 0034813C 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 8034C4E0 00348140 2C 00 00 02 */ cmpwi r0, 2
+/* 8034C4E4 00348144 40 82 00 14 */ bne lbl_8034C4F8
+/* 8034C4E8 00348148 80 A3 00 44 */ lwz r5, 0x44(r3)
+/* 8034C4EC 0034814C 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034C4F0 00348150 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034C4F4 00348154 4B FF C4 B1 */ bl gti2BufferWriteData
+lbl_8034C4F8:
+/* 8034C4F8 00348158 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034C4FC 0034815C 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034C500 00348160 38 A0 00 02 */ li r5, 2
+/* 8034C504 00348164 4B FF C4 A1 */ bl gti2BufferWriteData
+/* 8034C508 00348168 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034C50C 0034816C 57 84 06 3E */ clrlwi r4, r28, 0x18
+/* 8034C510 00348170 4B FF C4 51 */ bl gti2BufferWriteByte
+/* 8034C514 00348174 A0 9E 00 64 */ lhz r4, 0x64(r30)
+/* 8034C518 00348178 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034C51C 0034817C 38 04 00 01 */ addi r0, r4, 1
+/* 8034C520 00348180 B0 1E 00 64 */ sth r0, 0x64(r30)
+/* 8034C524 00348184 4B FF C4 55 */ bl gti2BufferWriteUShort
+/* 8034C528 00348188 A0 9E 00 66 */ lhz r4, 0x66(r30)
+/* 8034C52C 0034818C 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034C530 00348190 4B FF C4 49 */ bl gti2BufferWriteUShort
+/* 8034C534 00348194 38 00 00 00 */ li r0, 0
+/* 8034C538 00348198 38 60 00 01 */ li r3, 1
+/* 8034C53C 0034819C 90 1F 00 00 */ stw r0, 0(r31)
+lbl_8034C540:
+/* 8034C540 003481A0 39 61 00 50 */ addi r11, r1, 0x50
+/* 8034C544 003481A4 4B E7 AC 2D */ bl _restgpr_26
+/* 8034C548 003481A8 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8034C54C 003481AC 7C 08 03 A6 */ mtlr r0
+/* 8034C550 003481B0 38 21 00 50 */ addi r1, r1, 0x50
+/* 8034C554 003481B4 4E 80 00 20 */ blr
+
+.global gti2SendClientChallenge
+gti2SendClientChallenge:
+/* 8034C558 003481B8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034C55C 003481BC 7C 08 02 A6 */ mflr r0
+/* 8034C560 003481C0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034C564 003481C4 38 C1 00 08 */ addi r6, r1, 8
+/* 8034C568 003481C8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034C56C 003481CC 7C 9F 23 78 */ mr r31, r4
+/* 8034C570 003481D0 38 80 00 01 */ li r4, 1
+/* 8034C574 003481D4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034C578 003481D8 7C 7E 1B 78 */ mr r30, r3
+/* 8034C57C 003481DC 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8034C580 003481E0 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 8034C584 003481E4 38 A5 00 27 */ addi r5, r5, 0x27
+/* 8034C588 003481E8 4B FF FC 3D */ bl gti2BeginReliableMessage
+/* 8034C58C 003481EC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C590 003481F0 40 82 00 0C */ bne lbl_8034C59C
+/* 8034C594 003481F4 38 60 00 00 */ li r3, 0
+/* 8034C598 003481F8 48 00 00 8C */ b lbl_8034C624
+lbl_8034C59C:
+/* 8034C59C 003481FC 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034C5A0 00348200 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C5A4 00348204 41 82 00 0C */ beq lbl_8034C5B0
+/* 8034C5A8 00348208 38 60 00 01 */ li r3, 1
+/* 8034C5AC 0034820C 48 00 00 78 */ b lbl_8034C624
+lbl_8034C5B0:
+/* 8034C5B0 00348210 7F E4 FB 78 */ mr r4, r31
+/* 8034C5B4 00348214 38 7E 00 50 */ addi r3, r30, 0x50
+/* 8034C5B8 00348218 38 A0 00 20 */ li r5, 0x20
+/* 8034C5BC 0034821C 4B FF C3 E9 */ bl gti2BufferWriteData
+/* 8034C5C0 00348220 80 7E 00 60 */ lwz r3, 0x60(r30)
+/* 8034C5C4 00348224 4B FE 99 25 */ bl ArrayLength
+/* 8034C5C8 00348228 7C 64 1B 78 */ mr r4, r3
+/* 8034C5CC 0034822C 80 7E 00 60 */ lwz r3, 0x60(r30)
+/* 8034C5D0 00348230 38 84 FF FF */ addi r4, r4, -1
+/* 8034C5D4 00348234 4B FE 99 1D */ bl ArrayNth
+/* 8034C5D8 00348238 7C 65 1B 78 */ mr r5, r3
+/* 8034C5DC 0034823C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034C5E0 00348240 80 9E 00 50 */ lwz r4, 0x50(r30)
+/* 8034C5E4 00348244 7F C3 F3 78 */ mr r3, r30
+/* 8034C5E8 00348248 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034C5EC 0034824C 7C 84 02 14 */ add r4, r4, r0
+/* 8034C5F0 00348250 4B FF CF B5 */ bl gti2ConnectionSendData
+/* 8034C5F4 00348254 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C5F8 00348258 40 82 00 0C */ bne lbl_8034C604
+/* 8034C5FC 0034825C 38 60 00 00 */ li r3, 0
+/* 8034C600 00348260 48 00 00 10 */ b lbl_8034C610
+lbl_8034C604:
+/* 8034C604 00348264 38 00 00 00 */ li r0, 0
+/* 8034C608 00348268 38 60 00 01 */ li r3, 1
+/* 8034C60C 0034826C 90 1E 00 90 */ stw r0, 0x90(r30)
+lbl_8034C610:
+/* 8034C610 00348270 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C614 00348274 40 82 00 0C */ bne lbl_8034C620
+/* 8034C618 00348278 38 60 00 00 */ li r3, 0
+/* 8034C61C 0034827C 48 00 00 08 */ b lbl_8034C624
+lbl_8034C620:
+/* 8034C620 00348280 38 60 00 01 */ li r3, 1
+lbl_8034C624:
+/* 8034C624 00348284 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034C628 00348288 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034C62C 0034828C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034C630 00348290 7C 08 03 A6 */ mtlr r0
+/* 8034C634 00348294 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034C638 00348298 4E 80 00 20 */ blr
+
+.global gti2SendAccept
+gti2SendAccept:
+/* 8034C63C 0034829C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034C640 003482A0 7C 08 02 A6 */ mflr r0
+/* 8034C644 003482A4 38 80 00 04 */ li r4, 4
+/* 8034C648 003482A8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034C64C 003482AC 38 C1 00 08 */ addi r6, r1, 8
+/* 8034C650 003482B0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034C654 003482B4 7C 7F 1B 78 */ mr r31, r3
+/* 8034C658 003482B8 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8034C65C 003482BC 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 8034C660 003482C0 38 A5 00 07 */ addi r5, r5, 7
+/* 8034C664 003482C4 4B FF FB 61 */ bl gti2BeginReliableMessage
+/* 8034C668 003482C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C66C 003482CC 40 82 00 0C */ bne lbl_8034C678
+/* 8034C670 003482D0 38 60 00 00 */ li r3, 0
+/* 8034C674 003482D4 48 00 00 7C */ b lbl_8034C6F0
+lbl_8034C678:
+/* 8034C678 003482D8 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034C67C 003482DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C680 003482E0 41 82 00 0C */ beq lbl_8034C68C
+/* 8034C684 003482E4 38 60 00 01 */ li r3, 1
+/* 8034C688 003482E8 48 00 00 68 */ b lbl_8034C6F0
+lbl_8034C68C:
+/* 8034C68C 003482EC 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034C690 003482F0 4B FE 98 59 */ bl ArrayLength
+/* 8034C694 003482F4 7C 64 1B 78 */ mr r4, r3
+/* 8034C698 003482F8 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034C69C 003482FC 38 84 FF FF */ addi r4, r4, -1
+/* 8034C6A0 00348300 4B FE 98 51 */ bl ArrayNth
+/* 8034C6A4 00348304 7C 65 1B 78 */ mr r5, r3
+/* 8034C6A8 00348308 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034C6AC 0034830C 80 9F 00 50 */ lwz r4, 0x50(r31)
+/* 8034C6B0 00348310 7F E3 FB 78 */ mr r3, r31
+/* 8034C6B4 00348314 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034C6B8 00348318 7C 84 02 14 */ add r4, r4, r0
+/* 8034C6BC 0034831C 4B FF CE E9 */ bl gti2ConnectionSendData
+/* 8034C6C0 00348320 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C6C4 00348324 40 82 00 0C */ bne lbl_8034C6D0
+/* 8034C6C8 00348328 38 60 00 00 */ li r3, 0
+/* 8034C6CC 0034832C 48 00 00 10 */ b lbl_8034C6DC
+lbl_8034C6D0:
+/* 8034C6D0 00348330 38 00 00 00 */ li r0, 0
+/* 8034C6D4 00348334 38 60 00 01 */ li r3, 1
+/* 8034C6D8 00348338 90 1F 00 90 */ stw r0, 0x90(r31)
+lbl_8034C6DC:
+/* 8034C6DC 0034833C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C6E0 00348340 40 82 00 0C */ bne lbl_8034C6EC
+/* 8034C6E4 00348344 38 60 00 00 */ li r3, 0
+/* 8034C6E8 00348348 48 00 00 08 */ b lbl_8034C6F0
+lbl_8034C6EC:
+/* 8034C6EC 0034834C 38 60 00 01 */ li r3, 1
+lbl_8034C6F0:
+/* 8034C6F0 00348350 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034C6F4 00348354 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034C6F8 00348358 7C 08 03 A6 */ mtlr r0
+/* 8034C6FC 0034835C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034C700 00348360 4E 80 00 20 */ blr
+
+.global gti2SendReject
+gti2SendReject:
+/* 8034C704 00348364 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034C708 00348368 7C 08 02 A6 */ mflr r0
+/* 8034C70C 0034836C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034C710 00348370 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034C714 00348374 7C BF 2B 78 */ mr r31, r5
+/* 8034C718 00348378 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034C71C 0034837C 7C 9E 23 78 */ mr r30, r4
+/* 8034C720 00348380 38 80 00 05 */ li r4, 5
+/* 8034C724 00348384 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034C728 00348388 7C 7D 1B 78 */ mr r29, r3
+/* 8034C72C 0034838C 80 C3 00 08 */ lwz r6, 8(r3)
+/* 8034C730 00348390 80 06 00 44 */ lwz r0, 0x44(r6)
+/* 8034C734 00348394 38 C1 00 08 */ addi r6, r1, 8
+/* 8034C738 00348398 7C A5 02 14 */ add r5, r5, r0
+/* 8034C73C 0034839C 38 A5 00 07 */ addi r5, r5, 7
+/* 8034C740 003483A0 4B FF FA 85 */ bl gti2BeginReliableMessage
+/* 8034C744 003483A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C748 003483A8 40 82 00 0C */ bne lbl_8034C754
+/* 8034C74C 003483AC 38 60 00 00 */ li r3, 0
+/* 8034C750 003483B0 48 00 00 8C */ b lbl_8034C7DC
+lbl_8034C754:
+/* 8034C754 003483B4 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034C758 003483B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C75C 003483BC 41 82 00 0C */ beq lbl_8034C768
+/* 8034C760 003483C0 38 60 00 01 */ li r3, 1
+/* 8034C764 003483C4 48 00 00 78 */ b lbl_8034C7DC
+lbl_8034C768:
+/* 8034C768 003483C8 7F C4 F3 78 */ mr r4, r30
+/* 8034C76C 003483CC 7F E5 FB 78 */ mr r5, r31
+/* 8034C770 003483D0 38 7D 00 50 */ addi r3, r29, 0x50
+/* 8034C774 003483D4 4B FF C2 31 */ bl gti2BufferWriteData
+/* 8034C778 003483D8 80 7D 00 60 */ lwz r3, 0x60(r29)
+/* 8034C77C 003483DC 4B FE 97 6D */ bl ArrayLength
+/* 8034C780 003483E0 7C 64 1B 78 */ mr r4, r3
+/* 8034C784 003483E4 80 7D 00 60 */ lwz r3, 0x60(r29)
+/* 8034C788 003483E8 38 84 FF FF */ addi r4, r4, -1
+/* 8034C78C 003483EC 4B FE 97 65 */ bl ArrayNth
+/* 8034C790 003483F0 7C 65 1B 78 */ mr r5, r3
+/* 8034C794 003483F4 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034C798 003483F8 80 9D 00 50 */ lwz r4, 0x50(r29)
+/* 8034C79C 003483FC 7F A3 EB 78 */ mr r3, r29
+/* 8034C7A0 00348400 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034C7A4 00348404 7C 84 02 14 */ add r4, r4, r0
+/* 8034C7A8 00348408 4B FF CD FD */ bl gti2ConnectionSendData
+/* 8034C7AC 0034840C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C7B0 00348410 40 82 00 0C */ bne lbl_8034C7BC
+/* 8034C7B4 00348414 38 60 00 00 */ li r3, 0
+/* 8034C7B8 00348418 48 00 00 10 */ b lbl_8034C7C8
+lbl_8034C7BC:
+/* 8034C7BC 0034841C 38 00 00 00 */ li r0, 0
+/* 8034C7C0 00348420 38 60 00 01 */ li r3, 1
+/* 8034C7C4 00348424 90 1D 00 90 */ stw r0, 0x90(r29)
+lbl_8034C7C8:
+/* 8034C7C8 00348428 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C7CC 0034842C 40 82 00 0C */ bne lbl_8034C7D8
+/* 8034C7D0 00348430 38 60 00 00 */ li r3, 0
+/* 8034C7D4 00348434 48 00 00 08 */ b lbl_8034C7DC
+lbl_8034C7D8:
+/* 8034C7D8 00348438 38 60 00 01 */ li r3, 1
+lbl_8034C7DC:
+/* 8034C7DC 0034843C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034C7E0 00348440 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034C7E4 00348444 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034C7E8 00348448 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034C7EC 0034844C 7C 08 03 A6 */ mtlr r0
+/* 8034C7F0 00348450 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034C7F4 00348454 4E 80 00 20 */ blr
+
+.global gti2SendClose
+gti2SendClose:
+/* 8034C7F8 00348458 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034C7FC 0034845C 7C 08 02 A6 */ mflr r0
+/* 8034C800 00348460 38 80 00 06 */ li r4, 6
+/* 8034C804 00348464 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034C808 00348468 38 C1 00 08 */ addi r6, r1, 8
+/* 8034C80C 0034846C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034C810 00348470 7C 7F 1B 78 */ mr r31, r3
+/* 8034C814 00348474 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8034C818 00348478 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 8034C81C 0034847C 38 A5 00 07 */ addi r5, r5, 7
+/* 8034C820 00348480 4B FF F9 A5 */ bl gti2BeginReliableMessage
+/* 8034C824 00348484 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C828 00348488 40 82 00 0C */ bne lbl_8034C834
+/* 8034C82C 0034848C 38 60 00 00 */ li r3, 0
+/* 8034C830 00348490 48 00 00 7C */ b lbl_8034C8AC
+lbl_8034C834:
+/* 8034C834 00348494 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034C838 00348498 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C83C 0034849C 41 82 00 0C */ beq lbl_8034C848
+/* 8034C840 003484A0 38 60 00 01 */ li r3, 1
+/* 8034C844 003484A4 48 00 00 68 */ b lbl_8034C8AC
+lbl_8034C848:
+/* 8034C848 003484A8 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034C84C 003484AC 4B FE 96 9D */ bl ArrayLength
+/* 8034C850 003484B0 7C 64 1B 78 */ mr r4, r3
+/* 8034C854 003484B4 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034C858 003484B8 38 84 FF FF */ addi r4, r4, -1
+/* 8034C85C 003484BC 4B FE 96 95 */ bl ArrayNth
+/* 8034C860 003484C0 7C 65 1B 78 */ mr r5, r3
+/* 8034C864 003484C4 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034C868 003484C8 80 9F 00 50 */ lwz r4, 0x50(r31)
+/* 8034C86C 003484CC 7F E3 FB 78 */ mr r3, r31
+/* 8034C870 003484D0 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034C874 003484D4 7C 84 02 14 */ add r4, r4, r0
+/* 8034C878 003484D8 4B FF CD 2D */ bl gti2ConnectionSendData
+/* 8034C87C 003484DC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C880 003484E0 40 82 00 0C */ bne lbl_8034C88C
+/* 8034C884 003484E4 38 60 00 00 */ li r3, 0
+/* 8034C888 003484E8 48 00 00 10 */ b lbl_8034C898
+lbl_8034C88C:
+/* 8034C88C 003484EC 38 00 00 00 */ li r0, 0
+/* 8034C890 003484F0 38 60 00 01 */ li r3, 1
+/* 8034C894 003484F4 90 1F 00 90 */ stw r0, 0x90(r31)
+lbl_8034C898:
+/* 8034C898 003484F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C89C 003484FC 40 82 00 0C */ bne lbl_8034C8A8
+/* 8034C8A0 00348500 38 60 00 00 */ li r3, 0
+/* 8034C8A4 00348504 48 00 00 08 */ b lbl_8034C8AC
+lbl_8034C8A8:
+/* 8034C8A8 00348508 38 60 00 01 */ li r3, 1
+lbl_8034C8AC:
+/* 8034C8AC 0034850C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034C8B0 00348510 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034C8B4 00348514 7C 08 03 A6 */ mtlr r0
+/* 8034C8B8 00348518 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034C8BC 0034851C 4E 80 00 20 */ blr
+
+.global gti2SendKeepAlive
+gti2SendKeepAlive:
+/* 8034C8C0 00348520 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034C8C4 00348524 7C 08 02 A6 */ mflr r0
+/* 8034C8C8 00348528 38 80 00 07 */ li r4, 7
+/* 8034C8CC 0034852C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034C8D0 00348530 38 C1 00 08 */ addi r6, r1, 8
+/* 8034C8D4 00348534 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034C8D8 00348538 7C 7F 1B 78 */ mr r31, r3
+/* 8034C8DC 0034853C 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8034C8E0 00348540 80 A5 00 44 */ lwz r5, 0x44(r5)
+/* 8034C8E4 00348544 38 A5 00 07 */ addi r5, r5, 7
+/* 8034C8E8 00348548 4B FF F8 DD */ bl gti2BeginReliableMessage
+/* 8034C8EC 0034854C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C8F0 00348550 40 82 00 0C */ bne lbl_8034C8FC
+/* 8034C8F4 00348554 38 60 00 00 */ li r3, 0
+/* 8034C8F8 00348558 48 00 00 7C */ b lbl_8034C974
+lbl_8034C8FC:
+/* 8034C8FC 0034855C 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034C900 00348560 2C 00 00 00 */ cmpwi r0, 0
+/* 8034C904 00348564 41 82 00 0C */ beq lbl_8034C910
+/* 8034C908 00348568 38 60 00 01 */ li r3, 1
+/* 8034C90C 0034856C 48 00 00 68 */ b lbl_8034C974
+lbl_8034C910:
+/* 8034C910 00348570 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034C914 00348574 4B FE 95 D5 */ bl ArrayLength
+/* 8034C918 00348578 7C 64 1B 78 */ mr r4, r3
+/* 8034C91C 0034857C 80 7F 00 60 */ lwz r3, 0x60(r31)
+/* 8034C920 00348580 38 84 FF FF */ addi r4, r4, -1
+/* 8034C924 00348584 4B FE 95 CD */ bl ArrayNth
+/* 8034C928 00348588 7C 65 1B 78 */ mr r5, r3
+/* 8034C92C 0034858C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034C930 00348590 80 9F 00 50 */ lwz r4, 0x50(r31)
+/* 8034C934 00348594 7F E3 FB 78 */ mr r3, r31
+/* 8034C938 00348598 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034C93C 0034859C 7C 84 02 14 */ add r4, r4, r0
+/* 8034C940 003485A0 4B FF CC 65 */ bl gti2ConnectionSendData
+/* 8034C944 003485A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C948 003485A8 40 82 00 0C */ bne lbl_8034C954
+/* 8034C94C 003485AC 38 60 00 00 */ li r3, 0
+/* 8034C950 003485B0 48 00 00 10 */ b lbl_8034C960
+lbl_8034C954:
+/* 8034C954 003485B4 38 00 00 00 */ li r0, 0
+/* 8034C958 003485B8 38 60 00 01 */ li r3, 1
+/* 8034C95C 003485BC 90 1F 00 90 */ stw r0, 0x90(r31)
+lbl_8034C960:
+/* 8034C960 003485C0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C964 003485C4 40 82 00 0C */ bne lbl_8034C970
+/* 8034C968 003485C8 38 60 00 00 */ li r3, 0
+/* 8034C96C 003485CC 48 00 00 08 */ b lbl_8034C974
+lbl_8034C970:
+/* 8034C970 003485D0 38 60 00 01 */ li r3, 1
+lbl_8034C974:
+/* 8034C974 003485D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034C978 003485D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034C97C 003485DC 7C 08 03 A6 */ mtlr r0
+/* 8034C980 003485E0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034C984 003485E4 4E 80 00 20 */ blr
+
+.global gti2SendAppUnreliable
+gti2SendAppUnreliable:
+/* 8034C988 003485E8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034C98C 003485EC 7C 08 02 A6 */ mflr r0
+/* 8034C990 003485F0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034C994 003485F4 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034C998 003485F8 4B E7 A7 91 */ bl _savegpr_27
+/* 8034C99C 003485FC 2C 05 00 02 */ cmpwi r5, 2
+/* 8034C9A0 00348600 7C 7B 1B 78 */ mr r27, r3
+/* 8034C9A4 00348604 7C 9C 23 78 */ mr r28, r4
+/* 8034C9A8 00348608 7C BD 2B 78 */ mr r29, r5
+/* 8034C9AC 0034860C 41 80 00 24 */ blt lbl_8034C9D0
+/* 8034C9B0 00348610 80 63 00 08 */ lwz r3, 8(r3)
+/* 8034C9B4 00348614 38 A0 00 02 */ li r5, 2
+/* 8034C9B8 00348618 80 03 00 44 */ lwz r0, 0x44(r3)
+/* 8034C9BC 0034861C 7C 64 02 14 */ add r3, r4, r0
+/* 8034C9C0 00348620 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034C9C4 00348624 4B E7 D9 D5 */ bl memcmp
+/* 8034C9C8 00348628 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C9CC 0034862C 41 82 00 2C */ beq lbl_8034C9F8
+lbl_8034C9D0:
+/* 8034C9D0 00348630 7F 63 DB 78 */ mr r3, r27
+/* 8034C9D4 00348634 7F 84 E3 78 */ mr r4, r28
+/* 8034C9D8 00348638 7F A5 EB 78 */ mr r5, r29
+/* 8034C9DC 0034863C 4B FF CB C9 */ bl gti2ConnectionSendData
+/* 8034C9E0 00348640 2C 03 00 00 */ cmpwi r3, 0
+/* 8034C9E4 00348644 40 82 00 0C */ bne lbl_8034C9F0
+/* 8034C9E8 00348648 38 60 00 00 */ li r3, 0
+/* 8034C9EC 0034864C 48 00 00 B0 */ b lbl_8034CA9C
+lbl_8034C9F0:
+/* 8034C9F0 00348650 38 60 00 01 */ li r3, 1
+/* 8034C9F4 00348654 48 00 00 A8 */ b lbl_8034CA9C
+lbl_8034C9F8:
+/* 8034C9F8 00348658 3B FD 00 02 */ addi r31, r29, 2
+/* 8034C9FC 0034865C 38 7B 00 50 */ addi r3, r27, 0x50
+/* 8034CA00 00348660 4B FF BF 51 */ bl gti2GetBufferFreeSpace
+/* 8034CA04 00348664 7C 03 F8 00 */ cmpw r3, r31
+/* 8034CA08 00348668 40 80 00 0C */ bge lbl_8034CA14
+/* 8034CA0C 0034866C 38 60 00 01 */ li r3, 1
+/* 8034CA10 00348670 48 00 00 8C */ b lbl_8034CA9C
+lbl_8034CA14:
+/* 8034CA14 00348674 80 7B 00 08 */ lwz r3, 8(r27)
+/* 8034CA18 00348678 80 9B 00 50 */ lwz r4, 0x50(r27)
+/* 8034CA1C 0034867C 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 8034CA20 00348680 80 7B 00 58 */ lwz r3, 0x58(r27)
+/* 8034CA24 00348684 2C 00 00 02 */ cmpwi r0, 2
+/* 8034CA28 00348688 7F C4 1A 14 */ add r30, r4, r3
+/* 8034CA2C 0034868C 40 82 00 14 */ bne lbl_8034CA40
+/* 8034CA30 00348690 7F 84 E3 78 */ mr r4, r28
+/* 8034CA34 00348694 38 7B 00 50 */ addi r3, r27, 0x50
+/* 8034CA38 00348698 38 A0 00 02 */ li r5, 2
+/* 8034CA3C 0034869C 4B FF BF 69 */ bl gti2BufferWriteData
+lbl_8034CA40:
+/* 8034CA40 003486A0 38 7B 00 50 */ addi r3, r27, 0x50
+/* 8034CA44 003486A4 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034CA48 003486A8 38 A0 00 02 */ li r5, 2
+/* 8034CA4C 003486AC 4B FF BF 59 */ bl gti2BufferWriteData
+/* 8034CA50 003486B0 80 9B 00 08 */ lwz r4, 8(r27)
+/* 8034CA54 003486B4 38 7B 00 50 */ addi r3, r27, 0x50
+/* 8034CA58 003486B8 80 04 00 44 */ lwz r0, 0x44(r4)
+/* 8034CA5C 003486BC 7C 9C 02 14 */ add r4, r28, r0
+/* 8034CA60 003486C0 7C A0 E8 50 */ subf r5, r0, r29
+/* 8034CA64 003486C4 4B FF BF 41 */ bl gti2BufferWriteData
+/* 8034CA68 003486C8 7F 63 DB 78 */ mr r3, r27
+/* 8034CA6C 003486CC 7F C4 F3 78 */ mr r4, r30
+/* 8034CA70 003486D0 7F E5 FB 78 */ mr r5, r31
+/* 8034CA74 003486D4 4B FF CB 31 */ bl gti2ConnectionSendData
+/* 8034CA78 003486D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034CA7C 003486DC 40 82 00 0C */ bne lbl_8034CA88
+/* 8034CA80 003486E0 38 60 00 00 */ li r3, 0
+/* 8034CA84 003486E4 48 00 00 18 */ b lbl_8034CA9C
+lbl_8034CA88:
+/* 8034CA88 003486E8 7F E5 FB 78 */ mr r5, r31
+/* 8034CA8C 003486EC 38 7B 00 50 */ addi r3, r27, 0x50
+/* 8034CA90 003486F0 38 80 FF FF */ li r4, -1
+/* 8034CA94 003486F4 4B FF BF 9D */ bl gti2BufferShorten
+/* 8034CA98 003486F8 38 60 00 01 */ li r3, 1
+lbl_8034CA9C:
+/* 8034CA9C 003486FC 39 61 00 20 */ addi r11, r1, 0x20
+/* 8034CAA0 00348700 4B E7 A6 D5 */ bl _restgpr_27
+/* 8034CAA4 00348704 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034CAA8 00348708 7C 08 03 A6 */ mtlr r0
+/* 8034CAAC 0034870C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034CAB0 00348710 4E 80 00 20 */ blr
+
+.global gti2SendAck
+gti2SendAck:
+/* 8034CAB4 00348714 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034CAB8 00348718 7C 08 02 A6 */ mflr r0
+/* 8034CABC 0034871C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034CAC0 00348720 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034CAC4 00348724 3B E0 00 00 */ li r31, 0
+/* 8034CAC8 00348728 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034CACC 0034872C 7C 7E 1B 78 */ mr r30, r3
+/* 8034CAD0 00348730 80 83 00 08 */ lwz r4, 8(r3)
+/* 8034CAD4 00348734 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 8034CAD8 00348738 2C 00 00 02 */ cmpwi r0, 2
+/* 8034CADC 0034873C 40 82 00 20 */ bne lbl_8034CAFC
+/* 8034CAE0 00348740 38 00 00 05 */ li r0, 5
+/* 8034CAE4 00348744 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034CAE8 00348748 B0 01 00 08 */ sth r0, 8(r1)
+/* 8034CAEC 0034874C 38 81 00 08 */ addi r4, r1, 8
+/* 8034CAF0 00348750 38 A0 00 02 */ li r5, 2
+/* 8034CAF4 00348754 4B CB 75 0D */ bl memcpy
+/* 8034CAF8 00348758 3B E0 00 02 */ li r31, 2
+lbl_8034CAFC:
+/* 8034CAFC 0034875C 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034CB00 00348760 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034CB04 00348764 7C 63 FA 14 */ add r3, r3, r31
+/* 8034CB08 00348768 38 A0 00 02 */ li r5, 2
+/* 8034CB0C 0034876C 4B CB 74 F5 */ bl memcpy
+/* 8034CB10 00348770 3B FF 00 02 */ addi r31, r31, 2
+/* 8034CB14 00348774 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034CB18 00348778 38 00 00 64 */ li r0, 0x64
+/* 8034CB1C 0034877C 7F C3 F3 78 */ mr r3, r30
+/* 8034CB20 00348780 7C 04 F9 AE */ stbx r0, r4, r31
+/* 8034CB24 00348784 38 DF 00 02 */ addi r6, r31, 2
+/* 8034CB28 00348788 38 BF 00 03 */ addi r5, r31, 3
+/* 8034CB2C 0034878C 3B FF 00 01 */ addi r31, r31, 1
+/* 8034CB30 00348790 A0 FE 00 66 */ lhz r7, 0x66(r30)
+/* 8034CB34 00348794 54 E0 C6 3E */ rlwinm r0, r7, 0x18, 0x18, 0x1f
+/* 8034CB38 00348798 7C 04 F9 AE */ stbx r0, r4, r31
+/* 8034CB3C 0034879C 7C E4 31 AE */ stbx r7, r4, r6
+/* 8034CB40 003487A0 4B FF CA 65 */ bl gti2ConnectionSendData
+/* 8034CB44 003487A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034CB48 003487A8 40 82 00 0C */ bne lbl_8034CB54
+/* 8034CB4C 003487AC 38 60 00 00 */ li r3, 0
+/* 8034CB50 003487B0 48 00 00 10 */ b lbl_8034CB60
+lbl_8034CB54:
+/* 8034CB54 003487B4 38 00 00 00 */ li r0, 0
+/* 8034CB58 003487B8 38 60 00 01 */ li r3, 1
+/* 8034CB5C 003487BC 90 1E 00 90 */ stw r0, 0x90(r30)
+lbl_8034CB60:
+/* 8034CB60 003487C0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034CB64 003487C4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034CB68 003487C8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034CB6C 003487CC 7C 08 03 A6 */ mtlr r0
+/* 8034CB70 003487D0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034CB74 003487D4 4E 80 00 20 */ blr
+
+.global gti2SendNack
+gti2SendNack:
+/* 8034CB78 003487D8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034CB7C 003487DC 7C 08 02 A6 */ mflr r0
+/* 8034CB80 003487E0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034CB84 003487E4 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8034CB88 003487E8 3B E0 00 00 */ li r31, 0
+/* 8034CB8C 003487EC 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8034CB90 003487F0 7C BE 2B 78 */ mr r30, r5
+/* 8034CB94 003487F4 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8034CB98 003487F8 7C 9D 23 78 */ mr r29, r4
+/* 8034CB9C 003487FC 93 81 00 20 */ stw r28, 0x20(r1)
+/* 8034CBA0 00348800 7C 7C 1B 78 */ mr r28, r3
+/* 8034CBA4 00348804 80 C3 00 08 */ lwz r6, 8(r3)
+/* 8034CBA8 00348808 80 06 00 40 */ lwz r0, 0x40(r6)
+/* 8034CBAC 0034880C 2C 00 00 02 */ cmpwi r0, 2
+/* 8034CBB0 00348810 40 82 00 20 */ bne lbl_8034CBD0
+/* 8034CBB4 00348814 38 00 00 07 */ li r0, 7
+/* 8034CBB8 00348818 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034CBBC 0034881C B0 01 00 08 */ sth r0, 8(r1)
+/* 8034CBC0 00348820 38 81 00 08 */ addi r4, r1, 8
+/* 8034CBC4 00348824 38 A0 00 02 */ li r5, 2
+/* 8034CBC8 00348828 4B CB 74 39 */ bl memcpy
+/* 8034CBCC 0034882C 3B E0 00 02 */ li r31, 2
+lbl_8034CBD0:
+/* 8034CBD0 00348830 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034CBD4 00348834 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034CBD8 00348838 7C 63 FA 14 */ add r3, r3, r31
+/* 8034CBDC 0034883C 38 A0 00 02 */ li r5, 2
+/* 8034CBE0 00348840 4B CB 74 21 */ bl memcpy
+/* 8034CBE4 00348844 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034CBE8 00348848 38 80 00 65 */ li r4, 0x65
+/* 8034CBEC 0034884C 3B FF 00 02 */ addi r31, r31, 2
+/* 8034CBF0 00348850 57 A0 C6 3E */ rlwinm r0, r29, 0x18, 0x18, 0x1f
+/* 8034CBF4 00348854 7C 83 F9 AE */ stbx r4, r3, r31
+/* 8034CBF8 00348858 3B FF 00 01 */ addi r31, r31, 1
+/* 8034CBFC 0034885C 7C 1D F0 40 */ cmplw r29, r30
+/* 8034CC00 00348860 7C 03 F9 AE */ stbx r0, r3, r31
+/* 8034CC04 00348864 38 1F 00 01 */ addi r0, r31, 1
+/* 8034CC08 00348868 3B FF 00 02 */ addi r31, r31, 2
+/* 8034CC0C 0034886C 7F A3 01 AE */ stbx r29, r3, r0
+/* 8034CC10 00348870 41 82 00 18 */ beq lbl_8034CC28
+/* 8034CC14 00348874 57 C0 C6 3E */ rlwinm r0, r30, 0x18, 0x18, 0x1f
+/* 8034CC18 00348878 38 9F 00 01 */ addi r4, r31, 1
+/* 8034CC1C 0034887C 7C 03 F9 AE */ stbx r0, r3, r31
+/* 8034CC20 00348880 3B FF 00 02 */ addi r31, r31, 2
+/* 8034CC24 00348884 7F C3 21 AE */ stbx r30, r3, r4
+lbl_8034CC28:
+/* 8034CC28 00348888 7F 83 E3 78 */ mr r3, r28
+/* 8034CC2C 0034888C 7F E5 FB 78 */ mr r5, r31
+/* 8034CC30 00348890 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034CC34 00348894 4B FF C9 71 */ bl gti2ConnectionSendData
+/* 8034CC38 00348898 2C 03 00 00 */ cmpwi r3, 0
+/* 8034CC3C 0034889C 40 82 00 0C */ bne lbl_8034CC48
+/* 8034CC40 003488A0 38 60 00 00 */ li r3, 0
+/* 8034CC44 003488A4 48 00 00 08 */ b lbl_8034CC4C
+lbl_8034CC48:
+/* 8034CC48 003488A8 38 60 00 01 */ li r3, 1
+lbl_8034CC4C:
+/* 8034CC4C 003488AC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034CC50 003488B0 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8034CC54 003488B4 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8034CC58 003488B8 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8034CC5C 003488BC 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 8034CC60 003488C0 7C 08 03 A6 */ mtlr r0
+/* 8034CC64 003488C4 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034CC68 003488C8 4E 80 00 20 */ blr
+
+.global func_8034CC6C
+func_8034CC6C:
+/* 8034CC6C 003488CC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034CC70 003488D0 7C 08 02 A6 */ mflr r0
+/* 8034CC74 003488D4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034CC78 003488D8 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8034CC7C 003488DC 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8034CC80 003488E0 3B C0 00 00 */ li r30, 0
+/* 8034CC84 003488E4 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8034CC88 003488E8 7C 7D 1B 78 */ mr r29, r3
+/* 8034CC8C 003488EC 80 83 00 08 */ lwz r4, 8(r3)
+/* 8034CC90 003488F0 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 8034CC94 003488F4 2C 00 00 02 */ cmpwi r0, 2
+/* 8034CC98 003488F8 40 82 00 20 */ bne lbl_8034CCB8
+/* 8034CC9C 003488FC 38 00 00 0B */ li r0, 0xb
+/* 8034CCA0 00348900 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034CCA4 00348904 B0 01 00 08 */ sth r0, 8(r1)
+/* 8034CCA8 00348908 38 81 00 08 */ addi r4, r1, 8
+/* 8034CCAC 0034890C 38 A0 00 02 */ li r5, 2
+/* 8034CCB0 00348910 4B CB 73 51 */ bl memcpy
+/* 8034CCB4 00348914 3B C0 00 02 */ li r30, 2
+lbl_8034CCB8:
+/* 8034CCB8 00348918 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034CCBC 0034891C 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034CCC0 00348920 7C 63 F2 14 */ add r3, r3, r30
+/* 8034CCC4 00348924 38 A0 00 02 */ li r5, 2
+/* 8034CCC8 00348928 4B CB 73 39 */ bl memcpy
+/* 8034CCCC 0034892C 3B E1 00 10 */ addi r31, r1, 0x10
+/* 8034CCD0 00348930 38 00 00 66 */ li r0, 0x66
+/* 8034CCD4 00348934 3B DE 00 02 */ addi r30, r30, 2
+/* 8034CCD8 00348938 38 8D 92 C4 */ addi r4, r13, lbl_8063E584-_SDA_BASE_
+/* 8034CCDC 0034893C 7C 1F F1 AE */ stbx r0, r31, r30
+/* 8034CCE0 00348940 7F E3 FB 78 */ mr r3, r31
+/* 8034CCE4 00348944 3B DE 00 01 */ addi r30, r30, 1
+/* 8034CCE8 00348948 38 A0 00 04 */ li r5, 4
+/* 8034CCEC 0034894C 7C 63 F2 14 */ add r3, r3, r30
+/* 8034CCF0 00348950 4B CB 73 11 */ bl memcpy
+/* 8034CCF4 00348954 4B FE C2 E5 */ bl current_time
+/* 8034CCF8 00348958 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8034CCFC 0034895C 7F E3 FB 78 */ mr r3, r31
+/* 8034CD00 00348960 7C 7E 1A 14 */ add r3, r30, r3
+/* 8034CD04 00348964 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034CD08 00348968 38 63 00 04 */ addi r3, r3, 4
+/* 8034CD0C 0034896C 38 A0 00 04 */ li r5, 4
+/* 8034CD10 00348970 4B CB 72 F1 */ bl memcpy
+/* 8034CD14 00348974 7F A3 EB 78 */ mr r3, r29
+/* 8034CD18 00348978 7F E4 FB 78 */ mr r4, r31
+/* 8034CD1C 0034897C 38 BE 00 08 */ addi r5, r30, 8
+/* 8034CD20 00348980 4B FF C8 85 */ bl gti2ConnectionSendData
+/* 8034CD24 00348984 2C 03 00 00 */ cmpwi r3, 0
+/* 8034CD28 00348988 40 82 00 0C */ bne lbl_8034CD34
+/* 8034CD2C 0034898C 38 60 00 00 */ li r3, 0
+/* 8034CD30 00348990 48 00 00 08 */ b lbl_8034CD38
+lbl_8034CD34:
+/* 8034CD34 00348994 38 60 00 01 */ li r3, 1
+lbl_8034CD38:
+/* 8034CD38 00348998 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034CD3C 0034899C 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8034CD40 003489A0 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8034CD44 003489A4 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8034CD48 003489A8 7C 08 03 A6 */ mtlr r0
+/* 8034CD4C 003489AC 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034CD50 003489B0 4E 80 00 20 */ blr
+
+.global gti2SendClosed
+gti2SendClosed:
+/* 8034CD54 003489B4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034CD58 003489B8 7C 08 02 A6 */ mflr r0
+/* 8034CD5C 003489BC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034CD60 003489C0 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8034CD64 003489C4 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8034CD68 003489C8 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8034CD6C 003489CC 93 81 00 20 */ stw r28, 0x20(r1)
+/* 8034CD70 003489D0 3B 80 00 00 */ li r28, 0
+/* 8034CD74 003489D4 83 E3 00 08 */ lwz r31, 8(r3)
+/* 8034CD78 003489D8 A3 A3 00 04 */ lhz r29, 4(r3)
+/* 8034CD7C 003489DC 80 1F 00 40 */ lwz r0, 0x40(r31)
+/* 8034CD80 003489E0 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8034CD84 003489E4 2C 00 00 02 */ cmpwi r0, 2
+/* 8034CD88 003489E8 40 82 00 20 */ bne lbl_8034CDA8
+/* 8034CD8C 003489EC 38 00 00 03 */ li r0, 3
+/* 8034CD90 003489F0 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034CD94 003489F4 B0 01 00 08 */ sth r0, 8(r1)
+/* 8034CD98 003489F8 38 81 00 08 */ addi r4, r1, 8
+/* 8034CD9C 003489FC 38 A0 00 02 */ li r5, 2
+/* 8034CDA0 00348A00 4B CB 72 61 */ bl memcpy
+/* 8034CDA4 00348A04 3B 80 00 02 */ li r28, 2
+lbl_8034CDA8:
+/* 8034CDA8 00348A08 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034CDAC 00348A0C 38 8D 92 C0 */ addi r4, r13, lbl_8063E580-_SDA_BASE_
+/* 8034CDB0 00348A10 7C 63 E2 14 */ add r3, r3, r28
+/* 8034CDB4 00348A14 38 A0 00 02 */ li r5, 2
+/* 8034CDB8 00348A18 4B CB 72 49 */ bl memcpy
+/* 8034CDBC 00348A1C 3B 9C 00 02 */ addi r28, r28, 2
+/* 8034CDC0 00348A20 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8034CDC4 00348A24 38 00 00 68 */ li r0, 0x68
+/* 8034CDC8 00348A28 7F E3 FB 78 */ mr r3, r31
+/* 8034CDCC 00348A2C 7C 06 E1 AE */ stbx r0, r6, r28
+/* 8034CDD0 00348A30 7F C4 F3 78 */ mr r4, r30
+/* 8034CDD4 00348A34 7F A5 EB 78 */ mr r5, r29
+/* 8034CDD8 00348A38 38 FC 00 01 */ addi r7, r28, 1
+/* 8034CDDC 00348A3C 48 00 08 6D */ bl gti2SocketSend
+/* 8034CDE0 00348A40 7C 03 00 D0 */ neg r0, r3
+/* 8034CDE4 00348A44 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8034CDE8 00348A48 7C 00 1B 78 */ or r0, r0, r3
+/* 8034CDEC 00348A4C 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8034CDF0 00348A50 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8034CDF4 00348A54 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034CDF8 00348A58 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 8034CDFC 00348A5C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034CE00 00348A60 7C 08 03 A6 */ mtlr r0
+/* 8034CE04 00348A64 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034CE08 00348A68 4E 80 00 20 */ blr
+
+.global gti2ResendMessage
+gti2ResendMessage:
+/* 8034CE0C 00348A6C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034CE10 00348A70 7C 08 02 A6 */ mflr r0
+/* 8034CE14 00348A74 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034CE18 00348A78 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034CE1C 00348A7C 7C 7F 1B 78 */ mr r31, r3
+/* 8034CE20 00348A80 93 C1 00 08 */ stw r30, 8(r1)
+/* 8034CE24 00348A84 7C 9E 23 78 */ mr r30, r4
+/* 8034CE28 00348A88 80 A3 00 08 */ lwz r5, 8(r3)
+/* 8034CE2C 00348A8C A1 03 00 66 */ lhz r8, 0x66(r3)
+/* 8034CE30 00348A90 80 C5 00 44 */ lwz r6, 0x44(r5)
+/* 8034CE34 00348A94 80 A4 00 00 */ lwz r5, 0(r4)
+/* 8034CE38 00348A98 55 00 C6 3E */ rlwinm r0, r8, 0x18, 0x18, 0x1f
+/* 8034CE3C 00348A9C 80 E3 00 50 */ lwz r7, 0x50(r3)
+/* 8034CE40 00348AA0 7C A5 32 14 */ add r5, r5, r6
+/* 8034CE44 00348AA4 38 A5 00 05 */ addi r5, r5, 5
+/* 8034CE48 00348AA8 7C 07 29 AE */ stbx r0, r7, r5
+/* 8034CE4C 00348AAC 38 A5 00 01 */ addi r5, r5, 1
+/* 8034CE50 00348AB0 7D 07 29 AE */ stbx r8, r7, r5
+/* 8034CE54 00348AB4 80 C3 00 50 */ lwz r6, 0x50(r3)
+/* 8034CE58 00348AB8 80 04 00 00 */ lwz r0, 0(r4)
+/* 8034CE5C 00348ABC 80 A4 00 04 */ lwz r5, 4(r4)
+/* 8034CE60 00348AC0 7C 86 02 14 */ add r4, r6, r0
+/* 8034CE64 00348AC4 4B FF C7 41 */ bl gti2ConnectionSendData
+/* 8034CE68 00348AC8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034CE6C 00348ACC 40 82 00 0C */ bne lbl_8034CE78
+/* 8034CE70 00348AD0 38 60 00 00 */ li r3, 0
+/* 8034CE74 00348AD4 48 00 00 3C */ b lbl_8034CEB0
+lbl_8034CE78:
+/* 8034CE78 00348AD8 80 7F 00 88 */ lwz r3, 0x88(r31)
+/* 8034CE7C 00348ADC 80 1E 00 00 */ lwz r0, 0(r30)
+/* 8034CE80 00348AE0 90 7E 00 0C */ stw r3, 0xc(r30)
+/* 8034CE84 00348AE4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8034CE88 00348AE8 80 9F 00 50 */ lwz r4, 0x50(r31)
+/* 8034CE8C 00348AEC 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 8034CE90 00348AF0 7C 00 1A 14 */ add r0, r0, r3
+/* 8034CE94 00348AF4 7C 60 22 14 */ add r3, r0, r4
+/* 8034CE98 00348AF8 88 03 00 02 */ lbz r0, 2(r3)
+/* 8034CE9C 00348AFC 2C 00 00 02 */ cmpwi r0, 2
+/* 8034CEA0 00348B00 40 82 00 0C */ bne lbl_8034CEAC
+/* 8034CEA4 00348B04 80 1F 00 88 */ lwz r0, 0x88(r31)
+/* 8034CEA8 00348B08 90 1F 00 8C */ stw r0, 0x8c(r31)
+lbl_8034CEAC:
+/* 8034CEAC 00348B0C 38 60 00 01 */ li r3, 1
+lbl_8034CEB0:
+/* 8034CEB0 00348B10 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034CEB4 00348B14 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034CEB8 00348B18 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8034CEBC 00348B1C 7C 08 03 A6 */ mtlr r0
+/* 8034CEC0 00348B20 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034CEC4 00348B24 4E 80 00 20 */ blr
+
+.global gti2Send
+gti2Send:
+/* 8034CEC8 00348B28 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034CECC 00348B2C 7C 08 02 A6 */ mflr r0
+/* 8034CED0 00348B30 2C 06 00 00 */ cmpwi r6, 0
+/* 8034CED4 00348B34 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034CED8 00348B38 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034CEDC 00348B3C 7C BF 2B 78 */ mr r31, r5
+/* 8034CEE0 00348B40 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034CEE4 00348B44 7C 9E 23 78 */ mr r30, r4
+/* 8034CEE8 00348B48 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034CEEC 00348B4C 7C 7D 1B 78 */ mr r29, r3
+/* 8034CEF0 00348B50 41 82 00 A8 */ beq lbl_8034CF98
+/* 8034CEF4 00348B54 38 C1 00 08 */ addi r6, r1, 8
+/* 8034CEF8 00348B58 38 80 00 00 */ li r4, 0
+/* 8034CEFC 00348B5C 38 A5 00 07 */ addi r5, r5, 7
+/* 8034CF00 00348B60 4B FF F2 C5 */ bl gti2BeginReliableMessage
+/* 8034CF04 00348B64 2C 03 00 00 */ cmpwi r3, 0
+/* 8034CF08 00348B68 40 82 00 0C */ bne lbl_8034CF14
+/* 8034CF0C 00348B6C 38 60 00 00 */ li r3, 0
+/* 8034CF10 00348B70 48 00 00 8C */ b lbl_8034CF9C
+lbl_8034CF14:
+/* 8034CF14 00348B74 80 01 00 08 */ lwz r0, 8(r1)
+/* 8034CF18 00348B78 2C 00 00 00 */ cmpwi r0, 0
+/* 8034CF1C 00348B7C 41 82 00 0C */ beq lbl_8034CF28
+/* 8034CF20 00348B80 38 60 00 01 */ li r3, 1
+/* 8034CF24 00348B84 48 00 00 78 */ b lbl_8034CF9C
+lbl_8034CF28:
+/* 8034CF28 00348B88 7F C4 F3 78 */ mr r4, r30
+/* 8034CF2C 00348B8C 7F E5 FB 78 */ mr r5, r31
+/* 8034CF30 00348B90 38 7D 00 50 */ addi r3, r29, 0x50
+/* 8034CF34 00348B94 4B FF BA 71 */ bl gti2BufferWriteData
+/* 8034CF38 00348B98 80 7D 00 60 */ lwz r3, 0x60(r29)
+/* 8034CF3C 00348B9C 4B FE 8F AD */ bl ArrayLength
+/* 8034CF40 00348BA0 7C 64 1B 78 */ mr r4, r3
+/* 8034CF44 00348BA4 80 7D 00 60 */ lwz r3, 0x60(r29)
+/* 8034CF48 00348BA8 38 84 FF FF */ addi r4, r4, -1
+/* 8034CF4C 00348BAC 4B FE 8F A5 */ bl ArrayNth
+/* 8034CF50 00348BB0 7C 65 1B 78 */ mr r5, r3
+/* 8034CF54 00348BB4 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034CF58 00348BB8 80 9D 00 50 */ lwz r4, 0x50(r29)
+/* 8034CF5C 00348BBC 7F A3 EB 78 */ mr r3, r29
+/* 8034CF60 00348BC0 80 A5 00 04 */ lwz r5, 4(r5)
+/* 8034CF64 00348BC4 7C 84 02 14 */ add r4, r4, r0
+/* 8034CF68 00348BC8 4B FF C6 3D */ bl gti2ConnectionSendData
+/* 8034CF6C 00348BCC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034CF70 00348BD0 40 82 00 0C */ bne lbl_8034CF7C
+/* 8034CF74 00348BD4 38 60 00 00 */ li r3, 0
+/* 8034CF78 00348BD8 48 00 00 10 */ b lbl_8034CF88
+lbl_8034CF7C:
+/* 8034CF7C 00348BDC 38 00 00 00 */ li r0, 0
+/* 8034CF80 00348BE0 38 60 00 01 */ li r3, 1
+/* 8034CF84 00348BE4 90 1D 00 90 */ stw r0, 0x90(r29)
+lbl_8034CF88:
+/* 8034CF88 00348BE8 7C 03 00 D0 */ neg r0, r3
+/* 8034CF8C 00348BEC 7C 00 1B 78 */ or r0, r0, r3
+/* 8034CF90 00348BF0 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034CF94 00348BF4 48 00 00 08 */ b lbl_8034CF9C
+lbl_8034CF98:
+/* 8034CF98 00348BF8 4B FF F9 F1 */ bl gti2SendAppUnreliable
+lbl_8034CF9C:
+/* 8034CF9C 00348BFC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034CFA0 00348C00 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034CFA4 00348C04 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034CFA8 00348C08 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034CFAC 00348C0C 7C 08 03 A6 */ mtlr r0
+/* 8034CFB0 00348C10 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034CFB4 00348C14 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Socket.s b/asm/SDK/DWC/gamespy/gt2Socket.s new file mode 100644 index 0000000..8c7b314 --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Socket.s @@ -0,0 +1,847 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2ConnectionHash
+gti2ConnectionHash:
+/* 8034CFB8 00348C18 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8034CFBC 00348C1C 80 65 00 00 */ lwz r3, 0(r5)
+/* 8034CFC0 00348C20 A0 05 00 04 */ lhz r0, 4(r5)
+/* 8034CFC4 00348C24 7C 63 01 D6 */ mullw r3, r3, r0
+/* 8034CFC8 00348C28 7C 03 23 96 */ divwu r0, r3, r4
+/* 8034CFCC 00348C2C 7C 00 21 D6 */ mullw r0, r0, r4
+/* 8034CFD0 00348C30 7C 60 18 50 */ subf r3, r0, r3
+/* 8034CFD4 00348C34 4E 80 00 20 */ blr
+
+.global gti2ConnectionCompare
+gti2ConnectionCompare:
+/* 8034CFD8 00348C38 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8034CFDC 00348C3C 80 84 00 00 */ lwz r4, 0(r4)
+/* 8034CFE0 00348C40 80 65 00 00 */ lwz r3, 0(r5)
+/* 8034CFE4 00348C44 80 04 00 00 */ lwz r0, 0(r4)
+/* 8034CFE8 00348C48 7C 03 00 40 */ cmplw r3, r0
+/* 8034CFEC 00348C4C 41 82 00 0C */ beq lbl_8034CFF8
+/* 8034CFF0 00348C50 7C 60 18 50 */ subf r3, r0, r3
+/* 8034CFF4 00348C54 4E 80 00 20 */ blr
+lbl_8034CFF8:
+/* 8034CFF8 00348C58 A0 64 00 04 */ lhz r3, 4(r4)
+/* 8034CFFC 00348C5C A0 05 00 04 */ lhz r0, 4(r5)
+/* 8034D000 00348C60 7C 03 00 50 */ subf r0, r3, r0
+/* 8034D004 00348C64 7C 03 07 34 */ extsh r3, r0
+/* 8034D008 00348C68 4E 80 00 20 */ blr
+
+.global gti2ConnectionFree
+gti2ConnectionFree:
+/* 8034D00C 00348C6C 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034D010 00348C70 4B FF C9 3C */ b gti2ConnectionCleanup
+
+.global gti2SocketFindConnection
+gti2SocketFindConnection:
+/* 8034D014 00348C74 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 8034D018 00348C78 7C 08 02 A6 */ mflr r0
+/* 8034D01C 00348C7C 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 8034D020 00348C80 38 01 00 10 */ addi r0, r1, 0x10
+/* 8034D024 00348C84 90 81 00 10 */ stw r4, 0x10(r1)
+/* 8034D028 00348C88 38 81 00 08 */ addi r4, r1, 8
+/* 8034D02C 00348C8C B0 A1 00 14 */ sth r5, 0x14(r1)
+/* 8034D030 00348C90 90 01 00 08 */ stw r0, 8(r1)
+/* 8034D034 00348C94 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034D038 00348C98 4B FE 9A E5 */ bl TableLookup
+/* 8034D03C 00348C9C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D040 00348CA0 41 82 00 0C */ beq lbl_8034D04C
+/* 8034D044 00348CA4 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034D048 00348CA8 48 00 00 08 */ b lbl_8034D050
+lbl_8034D04C:
+/* 8034D04C 00348CAC 38 60 00 00 */ li r3, 0
+lbl_8034D050:
+/* 8034D050 00348CB0 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 8034D054 00348CB4 7C 08 03 A6 */ mtlr r0
+/* 8034D058 00348CB8 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 8034D05C 00348CBC 4E 80 00 20 */ blr
+
+.global gti2CreateSocket
+gti2CreateSocket:
+/* 8034D060 00348CC0 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8034D064 00348CC4 7C 08 02 A6 */ mflr r0
+/* 8034D068 00348CC8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8034D06C 00348CCC 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034D070 00348CD0 4B E7 A0 B5 */ bl _savegpr_26
+/* 8034D074 00348CD4 7C 7A 1B 78 */ mr r26, r3
+/* 8034D078 00348CD8 7C 9F 23 78 */ mr r31, r4
+/* 8034D07C 00348CDC 7C BB 2B 78 */ mr r27, r5
+/* 8034D080 00348CE0 7C DC 33 78 */ mr r28, r6
+/* 8034D084 00348CE4 7C FD 3B 78 */ mr r29, r7
+/* 8034D088 00348CE8 7D 1E 43 78 */ mr r30, r8
+/* 8034D08C 00348CEC 4B FE BF 45 */ bl SocketStartUp
+/* 8034D090 00348CF0 2C 1C 00 00 */ cmpwi r28, 0
+/* 8034D094 00348CF4 40 82 00 08 */ bne lbl_8034D09C
+/* 8034D098 00348CF8 3F 80 00 01 */ lis r28, 1
+lbl_8034D09C:
+/* 8034D09C 00348CFC 2C 1B 00 00 */ cmpwi r27, 0
+/* 8034D0A0 00348D00 40 82 00 08 */ bne lbl_8034D0A8
+/* 8034D0A4 00348D04 3F 60 00 01 */ lis r27, 1
+lbl_8034D0A8:
+/* 8034D0A8 00348D08 7F E3 FB 78 */ mr r3, r31
+/* 8034D0AC 00348D0C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8034D0B0 00348D10 38 A1 00 08 */ addi r5, r1, 8
+/* 8034D0B4 00348D14 48 00 0B 7D */ bl gt2StringToAddress
+/* 8034D0B8 00348D18 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D0BC 00348D1C 40 82 00 0C */ bne lbl_8034D0C8
+/* 8034D0C0 00348D20 38 60 00 04 */ li r3, 4
+/* 8034D0C4 00348D24 48 00 01 C0 */ b lbl_8034D284
+lbl_8034D0C8:
+/* 8034D0C8 00348D28 38 60 00 4C */ li r3, 0x4c
+/* 8034D0CC 00348D2C 4B FE C2 49 */ bl gsimalloc
+/* 8034D0D0 00348D30 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D0D4 00348D34 7C 7F 1B 78 */ mr r31, r3
+/* 8034D0D8 00348D38 40 82 00 0C */ bne lbl_8034D0E4
+/* 8034D0DC 00348D3C 38 60 00 01 */ li r3, 1
+/* 8034D0E0 00348D40 48 00 01 A4 */ b lbl_8034D284
+lbl_8034D0E4:
+/* 8034D0E4 00348D44 38 80 00 00 */ li r4, 0
+/* 8034D0E8 00348D48 38 A0 00 4C */ li r5, 0x4c
+/* 8034D0EC 00348D4C 4B CB 70 19 */ bl memset
+/* 8034D0F0 00348D50 38 00 FF FF */ li r0, -1
+/* 8034D0F4 00348D54 3C C0 80 35 */ lis r6, gti2ConnectionHash@ha
+/* 8034D0F8 00348D58 90 1F 00 00 */ stw r0, 0(r31)
+/* 8034D0FC 00348D5C 3C E0 80 35 */ lis r7, gti2ConnectionCompare@ha
+/* 8034D100 00348D60 38 C6 CF B8 */ addi r6, r6, gti2ConnectionHash@l
+/* 8034D104 00348D64 38 60 00 04 */ li r3, 4
+/* 8034D108 00348D68 93 9F 00 3C */ stw r28, 0x3c(r31)
+/* 8034D10C 00348D6C 38 E7 CF D8 */ addi r7, r7, gti2ConnectionCompare@l
+/* 8034D110 00348D70 38 80 00 20 */ li r4, 0x20
+/* 8034D114 00348D74 38 A0 00 02 */ li r5, 2
+/* 8034D118 00348D78 93 7F 00 38 */ stw r27, 0x38(r31)
+/* 8034D11C 00348D7C 39 00 00 00 */ li r8, 0
+/* 8034D120 00348D80 93 BF 00 24 */ stw r29, 0x24(r31)
+/* 8034D124 00348D84 4B FE 97 05 */ bl TableNew2
+/* 8034D128 00348D88 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D12C 00348D8C 90 7F 00 0C */ stw r3, 0xc(r31)
+/* 8034D130 00348D90 40 82 00 14 */ bne lbl_8034D144
+/* 8034D134 00348D94 7F E3 FB 78 */ mr r3, r31
+/* 8034D138 00348D98 4B FE C2 01 */ bl gsifree
+/* 8034D13C 00348D9C 38 60 00 01 */ li r3, 1
+/* 8034D140 00348DA0 48 00 01 44 */ b lbl_8034D284
+lbl_8034D144:
+/* 8034D144 00348DA4 3C A0 80 35 */ lis r5, gti2ConnectionFree@ha
+/* 8034D148 00348DA8 38 60 00 04 */ li r3, 4
+/* 8034D14C 00348DAC 38 A5 D0 0C */ addi r5, r5, gti2ConnectionFree@l
+/* 8034D150 00348DB0 38 80 00 04 */ li r4, 4
+/* 8034D154 00348DB4 4B FE 8C 65 */ bl ArrayNew
+/* 8034D158 00348DB8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D15C 00348DBC 90 7F 00 10 */ stw r3, 0x10(r31)
+/* 8034D160 00348DC0 40 82 00 1C */ bne lbl_8034D17C
+/* 8034D164 00348DC4 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034D168 00348DC8 4B FE 97 65 */ bl TableFree
+/* 8034D16C 00348DCC 7F E3 FB 78 */ mr r3, r31
+/* 8034D170 00348DD0 4B FE C1 C9 */ bl gsifree
+/* 8034D174 00348DD4 38 60 00 01 */ li r3, 1
+/* 8034D178 00348DD8 48 00 01 0C */ b lbl_8034D284
+lbl_8034D17C:
+/* 8034D17C 00348DDC 38 60 00 02 */ li r3, 2
+/* 8034D180 00348DE0 38 80 00 02 */ li r4, 2
+/* 8034D184 00348DE4 38 A0 00 11 */ li r5, 0x11
+/* 8034D188 00348DE8 4B FE AA 3D */ bl socket
+/* 8034D18C 00348DEC 90 7F 00 00 */ stw r3, 0(r31)
+/* 8034D190 00348DF0 2C 1E 00 03 */ cmpwi r30, 3
+/* 8034D194 00348DF4 93 DF 00 40 */ stw r30, 0x40(r31)
+/* 8034D198 00348DF8 40 82 00 10 */ bne lbl_8034D1A8
+/* 8034D19C 00348DFC 38 00 00 00 */ li r0, 0
+/* 8034D1A0 00348E00 90 1F 00 44 */ stw r0, 0x44(r31)
+/* 8034D1A4 00348E04 48 00 00 08 */ b lbl_8034D1AC
+lbl_8034D1A8:
+/* 8034D1A8 00348E08 93 DF 00 44 */ stw r30, 0x44(r31)
+lbl_8034D1AC:
+/* 8034D1AC 00348E0C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8034D1B0 00348E10 2C 00 FF FF */ cmpwi r0, -1
+/* 8034D1B4 00348E14 40 82 00 24 */ bne lbl_8034D1D8
+/* 8034D1B8 00348E18 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034D1BC 00348E1C 4B FE 97 11 */ bl TableFree
+/* 8034D1C0 00348E20 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8034D1C4 00348E24 4B FE 8C 91 */ bl ArrayFree
+/* 8034D1C8 00348E28 7F E3 FB 78 */ mr r3, r31
+/* 8034D1CC 00348E2C 4B FE C1 6D */ bl gsifree
+/* 8034D1D0 00348E30 38 60 00 03 */ li r3, 3
+/* 8034D1D4 00348E34 48 00 00 B0 */ b lbl_8034D284
+lbl_8034D1D8:
+/* 8034D1D8 00348E38 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034D1DC 00348E3C 38 80 00 00 */ li r4, 0
+/* 8034D1E0 00348E40 38 A0 00 08 */ li r5, 8
+/* 8034D1E4 00348E44 4B CB 6F 21 */ bl memset
+/* 8034D1E8 00348E48 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 8034D1EC 00348E4C 38 60 00 02 */ li r3, 2
+/* 8034D1F0 00348E50 98 61 00 19 */ stb r3, 0x19(r1)
+/* 8034D1F4 00348E54 A0 61 00 08 */ lhz r3, 8(r1)
+/* 8034D1F8 00348E58 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 8034D1FC 00348E5C 4B FA 9B 81 */ bl SOHtoNs
+/* 8034D200 00348E60 2C 1E 00 03 */ cmpwi r30, 3
+/* 8034D204 00348E64 B0 61 00 1A */ sth r3, 0x1a(r1)
+/* 8034D208 00348E68 41 82 00 18 */ beq lbl_8034D220
+/* 8034D20C 00348E6C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8034D210 00348E70 38 81 00 18 */ addi r4, r1, 0x18
+/* 8034D214 00348E74 38 A0 00 08 */ li r5, 8
+/* 8034D218 00348E78 4B FE AA 4D */ bl bind
+/* 8034D21C 00348E7C 7C 7E 1B 78 */ mr r30, r3
+lbl_8034D220:
+/* 8034D220 00348E80 2C 1E FF FF */ cmpwi r30, -1
+/* 8034D224 00348E84 40 82 00 2C */ bne lbl_8034D250
+/* 8034D228 00348E88 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8034D22C 00348E8C 4B FE A9 D1 */ bl closesocket
+/* 8034D230 00348E90 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034D234 00348E94 4B FE 96 99 */ bl TableFree
+/* 8034D238 00348E98 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8034D23C 00348E9C 4B FE 8C 19 */ bl ArrayFree
+/* 8034D240 00348EA0 7F E3 FB 78 */ mr r3, r31
+/* 8034D244 00348EA4 4B FE C0 F5 */ bl gsifree
+/* 8034D248 00348EA8 38 60 00 03 */ li r3, 3
+/* 8034D24C 00348EAC 48 00 00 38 */ b lbl_8034D284
+lbl_8034D250:
+/* 8034D250 00348EB0 38 00 00 08 */ li r0, 8
+/* 8034D254 00348EB4 38 81 00 18 */ addi r4, r1, 0x18
+/* 8034D258 00348EB8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8034D25C 00348EBC 38 A1 00 0C */ addi r5, r1, 0xc
+/* 8034D260 00348EC0 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8034D264 00348EC4 4B FE AC B1 */ bl getsockname
+/* 8034D268 00348EC8 80 01 00 1C */ lwz r0, 0x1c(r1)
+/* 8034D26C 00348ECC 90 1F 00 04 */ stw r0, 4(r31)
+/* 8034D270 00348ED0 A0 61 00 1A */ lhz r3, 0x1a(r1)
+/* 8034D274 00348ED4 4B FA 9A FD */ bl SONtoHs
+/* 8034D278 00348ED8 B0 7F 00 08 */ sth r3, 8(r31)
+/* 8034D27C 00348EDC 38 60 00 00 */ li r3, 0
+/* 8034D280 00348EE0 93 FA 00 00 */ stw r31, 0(r26)
+lbl_8034D284:
+/* 8034D284 00348EE4 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034D288 00348EE8 4B E7 9E E9 */ bl _restgpr_26
+/* 8034D28C 00348EEC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8034D290 00348EF0 7C 08 03 A6 */ mtlr r0
+/* 8034D294 00348EF4 38 21 00 40 */ addi r1, r1, 0x40
+/* 8034D298 00348EF8 4E 80 00 20 */ blr
+
+.global gti2CloseSocket
+gti2CloseSocket:
+/* 8034D29C 00348EFC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034D2A0 00348F00 7C 08 02 A6 */ mflr r0
+/* 8034D2A4 00348F04 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034D2A8 00348F08 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034D2AC 00348F0C 7C 7F 1B 78 */ mr r31, r3
+/* 8034D2B0 00348F10 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 8034D2B4 00348F14 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D2B8 00348F18 41 82 00 10 */ beq lbl_8034D2C8
+/* 8034D2BC 00348F1C 38 00 00 01 */ li r0, 1
+/* 8034D2C0 00348F20 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8034D2C4 00348F24 48 00 00 28 */ b lbl_8034D2EC
+lbl_8034D2C8:
+/* 8034D2C8 00348F28 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034D2CC 00348F2C 4B FE A9 31 */ bl closesocket
+/* 8034D2D0 00348F30 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034D2D4 00348F34 4B FE 95 F9 */ bl TableFree
+/* 8034D2D8 00348F38 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8034D2DC 00348F3C 4B FE 8B 79 */ bl ArrayFree
+/* 8034D2E0 00348F40 7F E3 FB 78 */ mr r3, r31
+/* 8034D2E4 00348F44 4B FE C0 55 */ bl gsifree
+/* 8034D2E8 00348F48 4B FE BC ED */ bl SocketShutDown
+lbl_8034D2EC:
+/* 8034D2EC 00348F4C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034D2F0 00348F50 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034D2F4 00348F54 7C 08 03 A6 */ mtlr r0
+/* 8034D2F8 00348F58 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034D2FC 00348F5C 4E 80 00 20 */ blr
+
+.global gti2Listen
+gti2Listen:
+/* 8034D300 00348F60 90 83 00 20 */ stw r4, 0x20(r3)
+/* 8034D304 00348F64 4E 80 00 20 */ blr
+
+.global gti2NewSocketConnection
+gti2NewSocketConnection:
+/* 8034D308 00348F68 94 21 FE 90 */ stwu r1, -0x170(r1)
+/* 8034D30C 00348F6C 7C 08 02 A6 */ mflr r0
+/* 8034D310 00348F70 90 01 01 74 */ stw r0, 0x174(r1)
+/* 8034D314 00348F74 39 61 01 70 */ addi r11, r1, 0x170
+/* 8034D318 00348F78 4B E7 9E 11 */ bl _savegpr_27
+/* 8034D31C 00348F7C 38 01 00 B8 */ addi r0, r1, 0xb8
+/* 8034D320 00348F80 3B E0 00 00 */ li r31, 0
+/* 8034D324 00348F84 93 E1 00 10 */ stw r31, 0x10(r1)
+/* 8034D328 00348F88 7C 9C 23 78 */ mr r28, r4
+/* 8034D32C 00348F8C 7C 7B 1B 78 */ mr r27, r3
+/* 8034D330 00348F90 7C BD 2B 78 */ mr r29, r5
+/* 8034D334 00348F94 90 A1 00 B8 */ stw r5, 0xb8(r1)
+/* 8034D338 00348F98 7C DE 33 78 */ mr r30, r6
+/* 8034D33C 00348F9C 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034D340 00348FA0 B0 C1 00 BC */ sth r6, 0xbc(r1)
+/* 8034D344 00348FA4 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8034D348 00348FA8 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034D34C 00348FAC 4B FE 97 D1 */ bl TableLookup
+/* 8034D350 00348FB0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D354 00348FB4 41 82 00 08 */ beq lbl_8034D35C
+/* 8034D358 00348FB8 83 E3 00 00 */ lwz r31, 0(r3)
+lbl_8034D35C:
+/* 8034D35C 00348FBC 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034D360 00348FC0 41 82 00 0C */ beq lbl_8034D36C
+/* 8034D364 00348FC4 38 60 00 05 */ li r3, 5
+/* 8034D368 00348FC8 48 00 01 FC */ b lbl_8034D564
+lbl_8034D36C:
+/* 8034D36C 00348FCC 38 60 00 A0 */ li r3, 0xa0
+/* 8034D370 00348FD0 4B FE BF A5 */ bl gsimalloc
+/* 8034D374 00348FD4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D378 00348FD8 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8034D37C 00348FDC 41 82 01 6C */ beq lbl_8034D4E8
+/* 8034D380 00348FE0 38 80 00 00 */ li r4, 0
+/* 8034D384 00348FE4 38 A0 00 A0 */ li r5, 0xa0
+/* 8034D388 00348FE8 4B CB 6D 7D */ bl memset
+/* 8034D38C 00348FEC 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D390 00348FF0 93 A3 00 00 */ stw r29, 0(r3)
+/* 8034D394 00348FF4 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D398 00348FF8 B3 C3 00 04 */ sth r30, 4(r3)
+/* 8034D39C 00348FFC 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D3A0 00349000 93 63 00 08 */ stw r27, 8(r3)
+/* 8034D3A4 00349004 4B FE BC 35 */ bl current_time
+/* 8034D3A8 00349008 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 8034D3AC 0034900C 3B E0 00 00 */ li r31, 0
+/* 8034D3B0 00349010 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 8034D3B4 00349014 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D3B8 00349018 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 8034D3BC 0034901C 90 03 00 88 */ stw r0, 0x88(r3)
+/* 8034D3C0 00349020 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D3C4 00349024 B3 E3 00 64 */ sth r31, 0x64(r3)
+/* 8034D3C8 00349028 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D3CC 0034902C B3 E3 00 66 */ sth r31, 0x66(r3)
+/* 8034D3D0 00349030 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D3D4 00349034 80 9B 00 3C */ lwz r4, 0x3c(r27)
+/* 8034D3D8 00349038 38 63 00 44 */ addi r3, r3, 0x44
+/* 8034D3DC 0034903C 4B FF B5 1D */ bl gti2AllocateBuffer
+/* 8034D3E0 00349040 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D3E4 00349044 41 82 01 04 */ beq lbl_8034D4E8
+/* 8034D3E8 00349048 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D3EC 0034904C 80 9B 00 38 */ lwz r4, 0x38(r27)
+/* 8034D3F0 00349050 38 63 00 50 */ addi r3, r3, 0x50
+/* 8034D3F4 00349054 4B FF B5 05 */ bl gti2AllocateBuffer
+/* 8034D3F8 00349058 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D3FC 0034905C 41 82 00 EC */ beq lbl_8034D4E8
+/* 8034D400 00349060 38 60 00 10 */ li r3, 0x10
+/* 8034D404 00349064 38 80 00 40 */ li r4, 0x40
+/* 8034D408 00349068 38 A0 00 00 */ li r5, 0
+/* 8034D40C 0034906C 4B FE 89 AD */ bl ArrayNew
+/* 8034D410 00349070 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 8034D414 00349074 90 64 00 5C */ stw r3, 0x5c(r4)
+/* 8034D418 00349078 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D41C 0034907C 80 03 00 5C */ lwz r0, 0x5c(r3)
+/* 8034D420 00349080 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D424 00349084 41 82 00 C4 */ beq lbl_8034D4E8
+/* 8034D428 00349088 38 60 00 10 */ li r3, 0x10
+/* 8034D42C 0034908C 38 80 00 40 */ li r4, 0x40
+/* 8034D430 00349090 38 A0 00 00 */ li r5, 0
+/* 8034D434 00349094 4B FE 89 85 */ bl ArrayNew
+/* 8034D438 00349098 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 8034D43C 0034909C 90 64 00 60 */ stw r3, 0x60(r4)
+/* 8034D440 003490A0 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D444 003490A4 80 03 00 60 */ lwz r0, 0x60(r3)
+/* 8034D448 003490A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D44C 003490AC 41 82 00 9C */ beq lbl_8034D4E8
+/* 8034D450 003490B0 38 60 00 04 */ li r3, 4
+/* 8034D454 003490B4 38 80 00 02 */ li r4, 2
+/* 8034D458 003490B8 38 A0 00 00 */ li r5, 0
+/* 8034D45C 003490BC 4B FE 89 5D */ bl ArrayNew
+/* 8034D460 003490C0 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 8034D464 003490C4 90 64 00 98 */ stw r3, 0x98(r4)
+/* 8034D468 003490C8 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D46C 003490CC 80 03 00 98 */ lwz r0, 0x98(r3)
+/* 8034D470 003490D0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D474 003490D4 41 82 00 74 */ beq lbl_8034D4E8
+/* 8034D478 003490D8 38 60 00 04 */ li r3, 4
+/* 8034D47C 003490DC 38 80 00 02 */ li r4, 2
+/* 8034D480 003490E0 38 A0 00 00 */ li r5, 0
+/* 8034D484 003490E4 4B FE 89 35 */ bl ArrayNew
+/* 8034D488 003490E8 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 8034D48C 003490EC 90 64 00 9C */ stw r3, 0x9c(r4)
+/* 8034D490 003490F0 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D494 003490F4 80 03 00 9C */ lwz r0, 0x9c(r3)
+/* 8034D498 003490F8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D49C 003490FC 41 82 00 4C */ beq lbl_8034D4E8
+/* 8034D4A0 00349100 80 7B 00 0C */ lwz r3, 0xc(r27)
+/* 8034D4A4 00349104 38 81 00 10 */ addi r4, r1, 0x10
+/* 8034D4A8 00349108 4B FE 95 29 */ bl TableEnter
+/* 8034D4AC 0034910C 38 01 00 18 */ addi r0, r1, 0x18
+/* 8034D4B0 00349110 93 A1 00 18 */ stw r29, 0x18(r1)
+/* 8034D4B4 00349114 38 81 00 08 */ addi r4, r1, 8
+/* 8034D4B8 00349118 B3 C1 00 1C */ sth r30, 0x1c(r1)
+/* 8034D4BC 0034911C 90 01 00 08 */ stw r0, 8(r1)
+/* 8034D4C0 00349120 80 7B 00 0C */ lwz r3, 0xc(r27)
+/* 8034D4C4 00349124 4B FE 96 59 */ bl TableLookup
+/* 8034D4C8 00349128 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D4CC 0034912C 41 82 00 08 */ beq lbl_8034D4D4
+/* 8034D4D0 00349130 83 E3 00 00 */ lwz r31, 0(r3)
+lbl_8034D4D4:
+/* 8034D4D4 00349134 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034D4D8 00349138 93 FC 00 00 */ stw r31, 0(r28)
+/* 8034D4DC 0034913C 41 82 00 0C */ beq lbl_8034D4E8
+/* 8034D4E0 00349140 38 60 00 00 */ li r3, 0
+/* 8034D4E4 00349144 48 00 00 80 */ b lbl_8034D564
+lbl_8034D4E8:
+/* 8034D4E8 00349148 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D4EC 0034914C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D4F0 00349150 41 82 00 70 */ beq lbl_8034D560
+/* 8034D4F4 00349154 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 8034D4F8 00349158 4B FE BE 41 */ bl gsifree
+/* 8034D4FC 0034915C 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D500 00349160 80 63 00 50 */ lwz r3, 0x50(r3)
+/* 8034D504 00349164 4B FE BE 35 */ bl gsifree
+/* 8034D508 00349168 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D50C 0034916C 80 63 00 5C */ lwz r3, 0x5c(r3)
+/* 8034D510 00349170 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D514 00349174 41 82 00 08 */ beq lbl_8034D51C
+/* 8034D518 00349178 4B FE 89 3D */ bl ArrayFree
+lbl_8034D51C:
+/* 8034D51C 0034917C 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D520 00349180 80 63 00 60 */ lwz r3, 0x60(r3)
+/* 8034D524 00349184 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D528 00349188 41 82 00 08 */ beq lbl_8034D530
+/* 8034D52C 0034918C 4B FE 89 29 */ bl ArrayFree
+lbl_8034D530:
+/* 8034D530 00349190 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D534 00349194 80 63 00 98 */ lwz r3, 0x98(r3)
+/* 8034D538 00349198 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D53C 0034919C 41 82 00 08 */ beq lbl_8034D544
+/* 8034D540 003491A0 4B FE 89 15 */ bl ArrayFree
+lbl_8034D544:
+/* 8034D544 003491A4 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D548 003491A8 80 63 00 9C */ lwz r3, 0x9c(r3)
+/* 8034D54C 003491AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D550 003491B0 41 82 00 08 */ beq lbl_8034D558
+/* 8034D554 003491B4 4B FE 89 01 */ bl ArrayFree
+lbl_8034D558:
+/* 8034D558 003491B8 80 61 00 10 */ lwz r3, 0x10(r1)
+/* 8034D55C 003491BC 4B FE BD DD */ bl gsifree
+lbl_8034D560:
+/* 8034D560 003491C0 38 60 00 01 */ li r3, 1
+lbl_8034D564:
+/* 8034D564 003491C4 39 61 01 70 */ addi r11, r1, 0x170
+/* 8034D568 003491C8 4B E7 9C 0D */ bl _restgpr_27
+/* 8034D56C 003491CC 80 01 01 74 */ lwz r0, 0x174(r1)
+/* 8034D570 003491D0 7C 08 03 A6 */ mtlr r0
+/* 8034D574 003491D4 38 21 01 70 */ addi r1, r1, 0x170
+/* 8034D578 003491D8 4E 80 00 20 */ blr
+
+.global gti2FreeSocketConnection
+gti2FreeSocketConnection:
+/* 8034D57C 003491DC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034D580 003491E0 7C 08 02 A6 */ mflr r0
+/* 8034D584 003491E4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034D588 003491E8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034D58C 003491EC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034D590 003491F0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034D594 003491F4 90 61 00 08 */ stw r3, 8(r1)
+/* 8034D598 003491F8 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8034D59C 003491FC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D5A0 00349200 40 82 00 8C */ bne lbl_8034D62C
+/* 8034D5A4 00349204 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 8034D5A8 00349208 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D5AC 0034920C 41 82 00 08 */ beq lbl_8034D5B4
+/* 8034D5B0 00349210 48 00 00 7C */ b lbl_8034D62C
+lbl_8034D5B4:
+/* 8034D5B4 00349214 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 8034D5B8 00349218 2C 00 00 07 */ cmpwi r0, 7
+/* 8034D5BC 0034921C 40 82 00 60 */ bne lbl_8034D61C
+/* 8034D5C0 00349220 80 63 00 08 */ lwz r3, 8(r3)
+/* 8034D5C4 00349224 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034D5C8 00349228 4B FE 89 21 */ bl ArrayLength
+/* 8034D5CC 0034922C 7C 7F 1B 78 */ mr r31, r3
+/* 8034D5D0 00349230 3B A0 00 00 */ li r29, 0
+/* 8034D5D4 00349234 48 00 00 3C */ b lbl_8034D610
+lbl_8034D5D8:
+/* 8034D5D8 00349238 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8034D5DC 0034923C 7F A4 EB 78 */ mr r4, r29
+/* 8034D5E0 00349240 80 7E 00 08 */ lwz r3, 8(r30)
+/* 8034D5E4 00349244 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034D5E8 00349248 4B FE 89 09 */ bl ArrayNth
+/* 8034D5EC 0034924C 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034D5F0 00349250 7C 1E 00 40 */ cmplw r30, r0
+/* 8034D5F4 00349254 40 82 00 18 */ bne lbl_8034D60C
+/* 8034D5F8 00349258 80 7E 00 08 */ lwz r3, 8(r30)
+/* 8034D5FC 0034925C 7F A4 EB 78 */ mr r4, r29
+/* 8034D600 00349260 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034D604 00349264 4B FE 8C 6D */ bl ArrayDeleteAt
+/* 8034D608 00349268 48 00 00 24 */ b lbl_8034D62C
+lbl_8034D60C:
+/* 8034D60C 0034926C 3B BD 00 01 */ addi r29, r29, 1
+lbl_8034D610:
+/* 8034D610 00349270 7C 1D F8 00 */ cmpw r29, r31
+/* 8034D614 00349274 41 80 FF C4 */ blt lbl_8034D5D8
+/* 8034D618 00349278 48 00 00 14 */ b lbl_8034D62C
+lbl_8034D61C:
+/* 8034D61C 0034927C 80 63 00 08 */ lwz r3, 8(r3)
+/* 8034D620 00349280 38 81 00 08 */ addi r4, r1, 8
+/* 8034D624 00349284 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034D628 00349288 4B FE 94 51 */ bl TableRemove
+lbl_8034D62C:
+/* 8034D62C 0034928C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034D630 00349290 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034D634 00349294 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034D638 00349298 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034D63C 0034929C 7C 08 03 A6 */ mtlr r0
+/* 8034D640 003492A0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034D644 003492A4 4E 80 00 20 */ blr
+
+.global gti2SocketSend
+gti2SocketSend:
+/* 8034D648 003492A8 94 21 FF 30 */ stwu r1, -0xd0(r1)
+/* 8034D64C 003492AC 7C 08 02 A6 */ mflr r0
+/* 8034D650 003492B0 90 01 00 D4 */ stw r0, 0xd4(r1)
+/* 8034D654 003492B4 93 E1 00 CC */ stw r31, 0xcc(r1)
+/* 8034D658 003492B8 7C BF 2B 78 */ mr r31, r5
+/* 8034D65C 003492BC 93 C1 00 C8 */ stw r30, 0xc8(r1)
+/* 8034D660 003492C0 7C 9E 23 78 */ mr r30, r4
+/* 8034D664 003492C4 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034D668 003492C8 93 A1 00 C4 */ stw r29, 0xc4(r1)
+/* 8034D66C 003492CC 7C 7D 1B 78 */ mr r29, r3
+/* 8034D670 003492D0 38 61 00 08 */ addi r3, r1, 8
+/* 8034D674 003492D4 90 C1 00 08 */ stw r6, 8(r1)
+/* 8034D678 003492D8 90 E1 00 0C */ stw r7, 0xc(r1)
+/* 8034D67C 003492DC 48 00 07 59 */ bl gti2MessageCheck
+/* 8034D680 003492E0 80 1D 00 40 */ lwz r0, 0x40(r29)
+/* 8034D684 003492E4 2C 00 00 03 */ cmpwi r0, 3
+/* 8034D688 003492E8 41 82 00 1C */ beq lbl_8034D6A4
+/* 8034D68C 003492EC 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8034D690 003492F0 4B FE B2 05 */ bl CanSendOnSocket
+/* 8034D694 003492F4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D698 003492F8 40 82 00 0C */ bne lbl_8034D6A4
+/* 8034D69C 003492FC 38 60 00 01 */ li r3, 1
+/* 8034D6A0 00349300 48 00 01 A8 */ b lbl_8034D848
+lbl_8034D6A4:
+/* 8034D6A4 00349304 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034D6A8 00349308 38 80 00 00 */ li r4, 0
+/* 8034D6AC 0034930C 38 A0 00 08 */ li r5, 8
+/* 8034D6B0 00349310 4B CB 6A 55 */ bl memset
+/* 8034D6B4 00349314 38 00 00 02 */ li r0, 2
+/* 8034D6B8 00349318 93 C1 00 1C */ stw r30, 0x1c(r1)
+/* 8034D6BC 0034931C 7F E3 FB 78 */ mr r3, r31
+/* 8034D6C0 00349320 98 01 00 19 */ stb r0, 0x19(r1)
+/* 8034D6C4 00349324 4B FA 96 B9 */ bl SOHtoNs
+/* 8034D6C8 00349328 B0 61 00 1A */ sth r3, 0x1a(r1)
+/* 8034D6CC 0034932C 38 E1 00 18 */ addi r7, r1, 0x18
+/* 8034D6D0 00349330 80 81 00 08 */ lwz r4, 8(r1)
+/* 8034D6D4 00349334 38 C0 00 00 */ li r6, 0
+/* 8034D6D8 00349338 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8034D6DC 0034933C 39 00 00 08 */ li r8, 8
+/* 8034D6E0 00349340 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 8034D6E4 00349344 4B FE A7 B1 */ bl sendto
+/* 8034D6E8 00349348 2C 03 FF FF */ cmpwi r3, -1
+/* 8034D6EC 0034934C 40 82 00 EC */ bne lbl_8034D7D8
+/* 8034D6F0 00349350 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8034D6F4 00349354 4B FE A8 B5 */ bl GOAGetLastError
+/* 8034D6F8 00349358 2C 03 FF F1 */ cmpwi r3, -15
+/* 8034D6FC 0034935C 40 82 00 24 */ bne lbl_8034D720
+/* 8034D700 00349360 7F A3 EB 78 */ mr r3, r29
+/* 8034D704 00349364 7F C4 F3 78 */ mr r4, r30
+/* 8034D708 00349368 7F E5 FB 78 */ mr r5, r31
+/* 8034D70C 0034936C 4B FF E5 41 */ bl gti2HandleConnectionReset
+/* 8034D710 00349370 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D714 00349374 40 82 01 30 */ bne lbl_8034D844
+/* 8034D718 00349378 38 60 00 00 */ li r3, 0
+/* 8034D71C 0034937C 48 00 01 2C */ b lbl_8034D848
+lbl_8034D720:
+/* 8034D720 00349380 2C 03 FF E9 */ cmpwi r3, -23
+/* 8034D724 00349384 40 82 00 28 */ bne lbl_8034D74C
+/* 8034D728 00349388 7F A3 EB 78 */ mr r3, r29
+/* 8034D72C 0034938C 7F C4 F3 78 */ mr r4, r30
+/* 8034D730 00349390 7F E5 FB 78 */ mr r5, r31
+/* 8034D734 00349394 38 C0 00 01 */ li r6, 1
+/* 8034D738 00349398 4B FF E7 2D */ bl gti2HandleHostUnreachable
+/* 8034D73C 0034939C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D740 003493A0 40 82 01 04 */ bne lbl_8034D844
+/* 8034D744 003493A4 38 60 00 00 */ li r3, 0
+/* 8034D748 003493A8 48 00 01 00 */ b lbl_8034D848
+lbl_8034D74C:
+/* 8034D74C 003493AC 2C 03 FF D6 */ cmpwi r3, -42
+/* 8034D750 003493B0 41 82 00 0C */ beq lbl_8034D75C
+/* 8034D754 003493B4 2C 03 FF FA */ cmpwi r3, -6
+/* 8034D758 003493B8 40 82 00 0C */ bne lbl_8034D764
+lbl_8034D75C:
+/* 8034D75C 003493BC 38 60 00 01 */ li r3, 1
+/* 8034D760 003493C0 48 00 00 E8 */ b lbl_8034D848
+lbl_8034D764:
+/* 8034D764 003493C4 2C 03 FF DD */ cmpwi r3, -35
+/* 8034D768 003493C8 41 82 00 DC */ beq lbl_8034D844
+/* 8034D76C 003493CC 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 8034D770 003493D0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D774 003493D4 40 82 00 5C */ bne lbl_8034D7D0
+/* 8034D778 003493D8 3B E0 00 01 */ li r31, 1
+/* 8034D77C 003493DC 7F A3 EB 78 */ mr r3, r29
+/* 8034D780 003493E0 93 FD 00 18 */ stw r31, 0x18(r29)
+/* 8034D784 003493E4 4B FF C5 ED */ bl gt2CloseAllConnectionsHard
+/* 8034D788 003493E8 7F A3 EB 78 */ mr r3, r29
+/* 8034D78C 003493EC 4B FF B3 11 */ bl gti2SocketErrorCallback
+/* 8034D790 003493F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D794 003493F4 41 82 00 3C */ beq lbl_8034D7D0
+/* 8034D798 003493F8 80 1D 00 1C */ lwz r0, 0x1c(r29)
+/* 8034D79C 003493FC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D7A0 00349400 41 82 00 0C */ beq lbl_8034D7AC
+/* 8034D7A4 00349404 93 FD 00 14 */ stw r31, 0x14(r29)
+/* 8034D7A8 00349408 48 00 00 28 */ b lbl_8034D7D0
+lbl_8034D7AC:
+/* 8034D7AC 0034940C 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8034D7B0 00349410 4B FE A4 4D */ bl closesocket
+/* 8034D7B4 00349414 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 8034D7B8 00349418 4B FE 91 15 */ bl TableFree
+/* 8034D7BC 0034941C 80 7D 00 10 */ lwz r3, 0x10(r29)
+/* 8034D7C0 00349420 4B FE 86 95 */ bl ArrayFree
+/* 8034D7C4 00349424 7F A3 EB 78 */ mr r3, r29
+/* 8034D7C8 00349428 4B FE BB 71 */ bl gsifree
+/* 8034D7CC 0034942C 4B FE B8 09 */ bl SocketShutDown
+lbl_8034D7D0:
+/* 8034D7D0 00349430 38 60 00 00 */ li r3, 0
+/* 8034D7D4 00349434 48 00 00 74 */ b lbl_8034D848
+lbl_8034D7D8:
+/* 8034D7D8 00349438 80 1D 00 28 */ lwz r0, 0x28(r29)
+/* 8034D7DC 0034943C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D7E0 00349440 41 82 00 64 */ beq lbl_8034D844
+/* 8034D7E4 00349444 38 01 00 20 */ addi r0, r1, 0x20
+/* 8034D7E8 00349448 93 C1 00 20 */ stw r30, 0x20(r1)
+/* 8034D7EC 0034944C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8034D7F0 00349450 B3 E1 00 24 */ sth r31, 0x24(r1)
+/* 8034D7F4 00349454 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8034D7F8 00349458 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 8034D7FC 0034945C 4B FE 93 21 */ bl TableLookup
+/* 8034D800 00349460 7C 64 1B 79 */ or. r4, r3, r3
+/* 8034D804 00349464 7F A3 EB 78 */ mr r3, r29
+/* 8034D808 00349468 41 82 00 0C */ beq lbl_8034D814
+/* 8034D80C 0034946C 80 84 00 00 */ lwz r4, 0(r4)
+/* 8034D810 00349470 48 00 00 08 */ b lbl_8034D818
+lbl_8034D814:
+/* 8034D814 00349474 38 80 00 00 */ li r4, 0
+lbl_8034D818:
+/* 8034D818 00349478 81 01 00 08 */ lwz r8, 8(r1)
+/* 8034D81C 0034947C 7F C5 F3 78 */ mr r5, r30
+/* 8034D820 00349480 81 21 00 0C */ lwz r9, 0xc(r1)
+/* 8034D824 00349484 7F E6 FB 78 */ mr r6, r31
+/* 8034D828 00349488 38 E0 00 00 */ li r7, 0
+/* 8034D82C 0034948C 39 40 00 01 */ li r10, 1
+/* 8034D830 00349490 4B FF B9 25 */ bl gti2DumpCallback
+/* 8034D834 00349494 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D838 00349498 40 82 00 0C */ bne lbl_8034D844
+/* 8034D83C 0034949C 38 60 00 00 */ li r3, 0
+/* 8034D840 003494A0 48 00 00 08 */ b lbl_8034D848
+lbl_8034D844:
+/* 8034D844 003494A4 38 60 00 01 */ li r3, 1
+lbl_8034D848:
+/* 8034D848 003494A8 80 01 00 D4 */ lwz r0, 0xd4(r1)
+/* 8034D84C 003494AC 83 E1 00 CC */ lwz r31, 0xcc(r1)
+/* 8034D850 003494B0 83 C1 00 C8 */ lwz r30, 0xc8(r1)
+/* 8034D854 003494B4 83 A1 00 C4 */ lwz r29, 0xc4(r1)
+/* 8034D858 003494B8 7C 08 03 A6 */ mtlr r0
+/* 8034D85C 003494BC 38 21 00 D0 */ addi r1, r1, 0xd0
+/* 8034D860 003494C0 4E 80 00 20 */ blr
+
+.global gti2SocketConnectionsThinkMap
+gti2SocketConnectionsThinkMap:
+/* 8034D864 003494C4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034D868 003494C8 7C 08 02 A6 */ mflr r0
+/* 8034D86C 003494CC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034D870 003494D0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034D874 003494D4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034D878 003494D8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034D87C 003494DC 83 A3 00 00 */ lwz r29, 0(r3)
+/* 8034D880 003494E0 80 84 00 00 */ lwz r4, 0(r4)
+/* 8034D884 003494E4 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8034D888 003494E8 2C 00 00 07 */ cmpwi r0, 7
+/* 8034D88C 003494EC 41 82 00 1C */ beq lbl_8034D8A8
+/* 8034D890 003494F0 7F A3 EB 78 */ mr r3, r29
+/* 8034D894 003494F4 4B FF BE 69 */ bl gti2ConnectionThink
+/* 8034D898 003494F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D89C 003494FC 40 82 00 0C */ bne lbl_8034D8A8
+/* 8034D8A0 00349500 38 60 00 00 */ li r3, 0
+/* 8034D8A4 00349504 48 00 00 C0 */ b lbl_8034D964
+lbl_8034D8A8:
+/* 8034D8A8 00349508 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8034D8AC 0034950C 2C 00 00 07 */ cmpwi r0, 7
+/* 8034D8B0 00349510 40 82 00 B0 */ bne lbl_8034D960
+/* 8034D8B4 00349514 80 1D 00 14 */ lwz r0, 0x14(r29)
+/* 8034D8B8 00349518 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D8BC 0034951C 40 82 00 A4 */ bne lbl_8034D960
+/* 8034D8C0 00349520 80 1D 00 24 */ lwz r0, 0x24(r29)
+/* 8034D8C4 00349524 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D8C8 00349528 40 82 00 98 */ bne lbl_8034D960
+/* 8034D8CC 0034952C 93 A1 00 08 */ stw r29, 8(r1)
+/* 8034D8D0 00349530 80 1D 00 14 */ lwz r0, 0x14(r29)
+/* 8034D8D4 00349534 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D8D8 00349538 40 82 00 88 */ bne lbl_8034D960
+/* 8034D8DC 0034953C 80 1D 00 24 */ lwz r0, 0x24(r29)
+/* 8034D8E0 00349540 2C 00 00 00 */ cmpwi r0, 0
+/* 8034D8E4 00349544 40 82 00 7C */ bne lbl_8034D960
+/* 8034D8E8 00349548 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8034D8EC 0034954C 2C 00 00 07 */ cmpwi r0, 7
+/* 8034D8F0 00349550 40 82 00 60 */ bne lbl_8034D950
+/* 8034D8F4 00349554 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034D8F8 00349558 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034D8FC 0034955C 4B FE 85 ED */ bl ArrayLength
+/* 8034D900 00349560 7C 7F 1B 78 */ mr r31, r3
+/* 8034D904 00349564 3B C0 00 00 */ li r30, 0
+/* 8034D908 00349568 48 00 00 3C */ b lbl_8034D944
+lbl_8034D90C:
+/* 8034D90C 0034956C 83 A1 00 08 */ lwz r29, 8(r1)
+/* 8034D910 00349570 7F C4 F3 78 */ mr r4, r30
+/* 8034D914 00349574 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034D918 00349578 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034D91C 0034957C 4B FE 85 D5 */ bl ArrayNth
+/* 8034D920 00349580 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034D924 00349584 7C 1D 00 40 */ cmplw r29, r0
+/* 8034D928 00349588 40 82 00 18 */ bne lbl_8034D940
+/* 8034D92C 0034958C 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034D930 00349590 7F C4 F3 78 */ mr r4, r30
+/* 8034D934 00349594 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034D938 00349598 4B FE 89 39 */ bl ArrayDeleteAt
+/* 8034D93C 0034959C 48 00 00 24 */ b lbl_8034D960
+lbl_8034D940:
+/* 8034D940 003495A0 3B DE 00 01 */ addi r30, r30, 1
+lbl_8034D944:
+/* 8034D944 003495A4 7C 1E F8 00 */ cmpw r30, r31
+/* 8034D948 003495A8 41 80 FF C4 */ blt lbl_8034D90C
+/* 8034D94C 003495AC 48 00 00 14 */ b lbl_8034D960
+lbl_8034D950:
+/* 8034D950 003495B0 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034D954 003495B4 38 81 00 08 */ addi r4, r1, 8
+/* 8034D958 003495B8 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034D95C 003495BC 4B FE 91 1D */ bl TableRemove
+lbl_8034D960:
+/* 8034D960 003495C0 38 60 00 01 */ li r3, 1
+lbl_8034D964:
+/* 8034D964 003495C4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034D968 003495C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034D96C 003495CC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034D970 003495D0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034D974 003495D4 7C 08 03 A6 */ mtlr r0
+/* 8034D978 003495D8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034D97C 003495DC 4E 80 00 20 */ blr
+
+.global gti2SocketConnectionsThink
+gti2SocketConnectionsThink:
+/* 8034D980 003495E0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034D984 003495E4 7C 08 02 A6 */ mflr r0
+/* 8034D988 003495E8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034D98C 003495EC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034D990 003495F0 7C 7F 1B 78 */ mr r31, r3
+/* 8034D994 003495F4 4B FE B6 45 */ bl current_time
+/* 8034D998 003495F8 90 61 00 08 */ stw r3, 8(r1)
+/* 8034D99C 003495FC 3C 80 80 35 */ lis r4, gti2SocketConnectionsThinkMap@ha
+/* 8034D9A0 00349600 38 84 D8 64 */ addi r4, r4, gti2SocketConnectionsThinkMap@l
+/* 8034D9A4 00349604 38 A1 00 08 */ addi r5, r1, 8
+/* 8034D9A8 00349608 80 7F 00 0C */ lwz r3, 0xc(r31)
+/* 8034D9AC 0034960C 4B FE 92 7D */ bl TableMapSafe2
+/* 8034D9B0 00349610 7C 60 00 34 */ cntlzw r0, r3
+/* 8034D9B4 00349614 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034D9B8 00349618 54 03 D9 7E */ srwi r3, r0, 5
+/* 8034D9BC 0034961C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034D9C0 00349620 7C 08 03 A6 */ mtlr r0
+/* 8034D9C4 00349624 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034D9C8 00349628 4E 80 00 20 */ blr
+
+.global gti2FreeClosedConnections
+gti2FreeClosedConnections:
+/* 8034D9CC 0034962C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034D9D0 00349630 7C 08 02 A6 */ mflr r0
+/* 8034D9D4 00349634 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034D9D8 00349638 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034D9DC 0034963C 4B E7 97 4D */ bl _savegpr_27
+/* 8034D9E0 00349640 7C 7B 1B 78 */ mr r27, r3
+/* 8034D9E4 00349644 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034D9E8 00349648 4B FE 85 01 */ bl ArrayLength
+/* 8034D9EC 0034964C 3B 83 FF FF */ addi r28, r3, -1
+/* 8034D9F0 00349650 48 00 00 AC */ b lbl_8034DA9C
+lbl_8034D9F4:
+/* 8034D9F4 00349654 80 7B 00 10 */ lwz r3, 0x10(r27)
+/* 8034D9F8 00349658 7F 84 E3 78 */ mr r4, r28
+/* 8034D9FC 0034965C 4B FE 84 F5 */ bl ArrayNth
+/* 8034DA00 00349660 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034DA04 00349664 90 61 00 08 */ stw r3, 8(r1)
+/* 8034DA08 00349668 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8034DA0C 0034966C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034DA10 00349670 40 82 00 88 */ bne lbl_8034DA98
+/* 8034DA14 00349674 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 8034DA18 00349678 2C 00 00 00 */ cmpwi r0, 0
+/* 8034DA1C 0034967C 40 82 00 7C */ bne lbl_8034DA98
+/* 8034DA20 00349680 80 03 00 0C */ lwz r0, 0xc(r3)
+/* 8034DA24 00349684 2C 00 00 07 */ cmpwi r0, 7
+/* 8034DA28 00349688 40 82 00 60 */ bne lbl_8034DA88
+/* 8034DA2C 0034968C 80 63 00 08 */ lwz r3, 8(r3)
+/* 8034DA30 00349690 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034DA34 00349694 4B FE 84 B5 */ bl ArrayLength
+/* 8034DA38 00349698 7C 7F 1B 78 */ mr r31, r3
+/* 8034DA3C 0034969C 3B C0 00 00 */ li r30, 0
+/* 8034DA40 003496A0 48 00 00 3C */ b lbl_8034DA7C
+lbl_8034DA44:
+/* 8034DA44 003496A4 83 A1 00 08 */ lwz r29, 8(r1)
+/* 8034DA48 003496A8 7F C4 F3 78 */ mr r4, r30
+/* 8034DA4C 003496AC 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034DA50 003496B0 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034DA54 003496B4 4B FE 84 9D */ bl ArrayNth
+/* 8034DA58 003496B8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034DA5C 003496BC 7C 1D 00 40 */ cmplw r29, r0
+/* 8034DA60 003496C0 40 82 00 18 */ bne lbl_8034DA78
+/* 8034DA64 003496C4 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8034DA68 003496C8 7F C4 F3 78 */ mr r4, r30
+/* 8034DA6C 003496CC 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 8034DA70 003496D0 4B FE 88 01 */ bl ArrayDeleteAt
+/* 8034DA74 003496D4 48 00 00 24 */ b lbl_8034DA98
+lbl_8034DA78:
+/* 8034DA78 003496D8 3B DE 00 01 */ addi r30, r30, 1
+lbl_8034DA7C:
+/* 8034DA7C 003496DC 7C 1E F8 00 */ cmpw r30, r31
+/* 8034DA80 003496E0 41 80 FF C4 */ blt lbl_8034DA44
+/* 8034DA84 003496E4 48 00 00 14 */ b lbl_8034DA98
+lbl_8034DA88:
+/* 8034DA88 003496E8 80 63 00 08 */ lwz r3, 8(r3)
+/* 8034DA8C 003496EC 38 81 00 08 */ addi r4, r1, 8
+/* 8034DA90 003496F0 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034DA94 003496F4 4B FE 8F E5 */ bl TableRemove
+lbl_8034DA98:
+/* 8034DA98 003496F8 3B 9C FF FF */ addi r28, r28, -1
+lbl_8034DA9C:
+/* 8034DA9C 003496FC 2C 1C 00 00 */ cmpwi r28, 0
+/* 8034DAA0 00349700 40 80 FF 54 */ bge lbl_8034D9F4
+/* 8034DAA4 00349704 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034DAA8 00349708 4B E7 96 CD */ bl _restgpr_27
+/* 8034DAAC 0034970C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034DAB0 00349710 7C 08 03 A6 */ mtlr r0
+/* 8034DAB4 00349714 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034DAB8 00349718 4E 80 00 20 */ blr
+
+.global gti2SocketError
+gti2SocketError:
+/* 8034DABC 0034971C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034DAC0 00349720 7C 08 02 A6 */ mflr r0
+/* 8034DAC4 00349724 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034DAC8 00349728 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034DACC 0034972C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8034DAD0 00349730 7C 7E 1B 78 */ mr r30, r3
+/* 8034DAD4 00349734 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8034DAD8 00349738 2C 00 00 00 */ cmpwi r0, 0
+/* 8034DADC 0034973C 40 82 00 58 */ bne lbl_8034DB34
+/* 8034DAE0 00349740 3B E0 00 01 */ li r31, 1
+/* 8034DAE4 00349744 93 E3 00 18 */ stw r31, 0x18(r3)
+/* 8034DAE8 00349748 4B FF C2 89 */ bl gt2CloseAllConnectionsHard
+/* 8034DAEC 0034974C 7F C3 F3 78 */ mr r3, r30
+/* 8034DAF0 00349750 4B FF AF AD */ bl gti2SocketErrorCallback
+/* 8034DAF4 00349754 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DAF8 00349758 41 82 00 3C */ beq lbl_8034DB34
+/* 8034DAFC 0034975C 80 1E 00 1C */ lwz r0, 0x1c(r30)
+/* 8034DB00 00349760 2C 00 00 00 */ cmpwi r0, 0
+/* 8034DB04 00349764 41 82 00 0C */ beq lbl_8034DB10
+/* 8034DB08 00349768 93 FE 00 14 */ stw r31, 0x14(r30)
+/* 8034DB0C 0034976C 48 00 00 28 */ b lbl_8034DB34
+lbl_8034DB10:
+/* 8034DB10 00349770 80 7E 00 00 */ lwz r3, 0(r30)
+/* 8034DB14 00349774 4B FE A0 E9 */ bl closesocket
+/* 8034DB18 00349778 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8034DB1C 0034977C 4B FE 8D B1 */ bl TableFree
+/* 8034DB20 00349780 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 8034DB24 00349784 4B FE 83 31 */ bl ArrayFree
+/* 8034DB28 00349788 7F C3 F3 78 */ mr r3, r30
+/* 8034DB2C 0034978C 4B FE B8 0D */ bl gsifree
+/* 8034DB30 00349790 4B FE B4 A5 */ bl SocketShutDown
+lbl_8034DB34:
+/* 8034DB34 00349794 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034DB38 00349798 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034DB3C 0034979C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8034DB40 003497A0 7C 08 03 A6 */ mtlr r0
+/* 8034DB44 003497A4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034DB48 003497A8 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/gt2Utility.s b/asm/SDK/DWC/gamespy/gt2Utility.s new file mode 100644 index 0000000..0667b2a --- /dev/null +++ b/asm/SDK/DWC/gamespy/gt2Utility.s @@ -0,0 +1,227 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gt2AddressToString
+gt2AddressToString:
+/* 8034DB4C 003497AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034DB50 003497B0 7C 08 02 A6 */ mflr r0
+/* 8034DB54 003497B4 2C 05 00 00 */ cmpwi r5, 0
+/* 8034DB58 003497B8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034DB5C 003497BC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034DB60 003497C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034DB64 003497C4 7C 9E 23 78 */ mr r30, r4
+/* 8034DB68 003497C8 41 82 00 0C */ beq lbl_8034DB74
+/* 8034DB6C 003497CC 7C BF 2B 78 */ mr r31, r5
+/* 8034DB70 003497D0 48 00 00 20 */ b lbl_8034DB90
+lbl_8034DB74:
+/* 8034DB74 003497D4 80 0D B0 B0 */ lwz r0, lbl_80640370-_SDA_BASE_(r13)
+/* 8034DB78 003497D8 3C A0 80 62 */ lis r5, lbl_80620C60@ha
+/* 8034DB7C 003497DC 38 A5 0C 60 */ addi r5, r5, lbl_80620C60@l
+/* 8034DB80 003497E0 68 06 00 01 */ xori r6, r0, 1
+/* 8034DB84 003497E4 1C 06 00 16 */ mulli r0, r6, 0x16
+/* 8034DB88 003497E8 90 CD B0 B0 */ stw r6, lbl_80640370-_SDA_BASE_(r13)
+/* 8034DB8C 003497EC 7F E5 02 14 */ add r31, r5, r0
+lbl_8034DB90:
+/* 8034DB90 003497F0 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DB94 003497F4 41 82 00 58 */ beq lbl_8034DBEC
+/* 8034DB98 003497F8 2C 04 00 00 */ cmpwi r4, 0
+/* 8034DB9C 003497FC 41 82 00 2C */ beq lbl_8034DBC8
+/* 8034DBA0 00349800 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8034DBA4 00349804 38 61 00 0C */ addi r3, r1, 0xc
+/* 8034DBA8 00349808 4B FA 91 71 */ bl SOInetNtoA
+/* 8034DBAC 0034980C 7C 65 1B 78 */ mr r5, r3
+/* 8034DBB0 00349810 7F E3 FB 78 */ mr r3, r31
+/* 8034DBB4 00349814 7F C6 F3 78 */ mr r6, r30
+/* 8034DBB8 00349818 38 8D 92 D0 */ addi r4, r13, lbl_8063E590-_SDA_BASE_
+/* 8034DBBC 0034981C 4C C6 31 82 */ crclr 6
+/* 8034DBC0 00349820 4B E7 EF 3D */ bl sprintf
+/* 8034DBC4 00349824 48 00 00 50 */ b lbl_8034DC14
+lbl_8034DBC8:
+/* 8034DBC8 00349828 90 61 00 08 */ stw r3, 8(r1)
+/* 8034DBCC 0034982C 38 61 00 08 */ addi r3, r1, 8
+/* 8034DBD0 00349830 4B FA 91 49 */ bl SOInetNtoA
+/* 8034DBD4 00349834 7C 65 1B 78 */ mr r5, r3
+/* 8034DBD8 00349838 7F E3 FB 78 */ mr r3, r31
+/* 8034DBDC 0034983C 38 8D 92 D8 */ addi r4, r13, lbl_8063E598-_SDA_BASE_
+/* 8034DBE0 00349840 4C C6 31 82 */ crclr 6
+/* 8034DBE4 00349844 4B E7 EF 19 */ bl sprintf
+/* 8034DBE8 00349848 48 00 00 2C */ b lbl_8034DC14
+lbl_8034DBEC:
+/* 8034DBEC 0034984C 2C 04 00 00 */ cmpwi r4, 0
+/* 8034DBF0 00349850 41 82 00 1C */ beq lbl_8034DC0C
+/* 8034DBF4 00349854 7F E3 FB 78 */ mr r3, r31
+/* 8034DBF8 00349858 7F C5 F3 78 */ mr r5, r30
+/* 8034DBFC 0034985C 38 8D 92 DC */ addi r4, r13, lbl_8063E59C-_SDA_BASE_
+/* 8034DC00 00349860 4C C6 31 82 */ crclr 6
+/* 8034DC04 00349864 4B E7 EE F9 */ bl sprintf
+/* 8034DC08 00349868 48 00 00 0C */ b lbl_8034DC14
+lbl_8034DC0C:
+/* 8034DC0C 0034986C 38 00 00 00 */ li r0, 0
+/* 8034DC10 00349870 98 1F 00 00 */ stb r0, 0(r31)
+lbl_8034DC14:
+/* 8034DC14 00349874 7F E3 FB 78 */ mr r3, r31
+/* 8034DC18 00349878 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034DC1C 0034987C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034DC20 00349880 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034DC24 00349884 7C 08 03 A6 */ mtlr r0
+/* 8034DC28 00349888 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034DC2C 0034988C 4E 80 00 20 */ blr
+
+.global gt2StringToAddress
+gt2StringToAddress:
+/* 8034DC30 00349890 94 21 FE D0 */ stwu r1, -0x130(r1)
+/* 8034DC34 00349894 7C 08 02 A6 */ mflr r0
+/* 8034DC38 00349898 90 01 01 34 */ stw r0, 0x134(r1)
+/* 8034DC3C 0034989C 39 61 01 30 */ addi r11, r1, 0x130
+/* 8034DC40 003498A0 4B E7 94 E5 */ bl _savegpr_26
+/* 8034DC44 003498A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DC48 003498A8 7C 7C 1B 78 */ mr r28, r3
+/* 8034DC4C 003498AC 7C 9D 23 78 */ mr r29, r4
+/* 8034DC50 003498B0 7C BE 2B 78 */ mr r30, r5
+/* 8034DC54 003498B4 3B E0 00 00 */ li r31, 0
+/* 8034DC58 003498B8 41 82 00 10 */ beq lbl_8034DC68
+/* 8034DC5C 003498BC 88 03 00 00 */ lbz r0, 0(r3)
+/* 8034DC60 003498C0 7C 00 07 75 */ extsb. r0, r0
+/* 8034DC64 003498C4 40 82 00 10 */ bne lbl_8034DC74
+lbl_8034DC68:
+/* 8034DC68 003498C8 3B E0 00 00 */ li r31, 0
+/* 8034DC6C 003498CC 3B 60 00 00 */ li r27, 0
+/* 8034DC70 003498D0 48 00 01 30 */ b lbl_8034DDA0
+lbl_8034DC74:
+/* 8034DC74 003498D4 38 80 00 3A */ li r4, 0x3a
+/* 8034DC78 003498D8 4B E8 09 31 */ bl strchr
+/* 8034DC7C 003498DC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DC80 003498E0 7C 7B 1B 78 */ mr r27, r3
+/* 8034DC84 003498E4 40 82 00 0C */ bne lbl_8034DC90
+/* 8034DC88 003498E8 3B 60 00 00 */ li r27, 0
+/* 8034DC8C 003498EC 48 00 00 D0 */ b lbl_8034DD5C
+lbl_8034DC90:
+/* 8034DC90 003498F0 7C 03 E0 40 */ cmplw r3, r28
+/* 8034DC94 003498F4 40 82 00 10 */ bne lbl_8034DCA4
+/* 8034DC98 003498F8 3B 80 00 00 */ li r28, 0
+/* 8034DC9C 003498FC 3B E0 00 00 */ li r31, 0
+/* 8034DCA0 00349900 48 00 00 24 */ b lbl_8034DCC4
+lbl_8034DCA4:
+/* 8034DCA4 00349904 7F 5C 18 50 */ subf r26, r28, r3
+/* 8034DCA8 00349908 7F 84 E3 78 */ mr r4, r28
+/* 8034DCAC 0034990C 7F 45 D3 78 */ mr r5, r26
+/* 8034DCB0 00349910 38 61 00 08 */ addi r3, r1, 8
+/* 8034DCB4 00349914 4B CB 63 4D */ bl memcpy
+/* 8034DCB8 00349918 3B 81 00 08 */ addi r28, r1, 8
+/* 8034DCBC 0034991C 38 00 00 00 */ li r0, 0
+/* 8034DCC0 00349920 7C 1C D1 AE */ stbx r0, r28, r26
+lbl_8034DCC4:
+/* 8034DCC4 00349924 3C 60 80 42 */ lis r3, lbl_80422D48@ha
+/* 8034DCC8 00349928 38 DB 00 01 */ addi r6, r27, 1
+/* 8034DCCC 0034992C 38 63 2D 48 */ addi r3, r3, lbl_80422D48@l
+/* 8034DCD0 00349930 80 83 00 38 */ lwz r4, 0x38(r3)
+/* 8034DCD4 00349934 48 00 00 50 */ b lbl_8034DD24
+lbl_8034DCD8:
+/* 8034DCD8 00349938 7C 65 07 75 */ extsb. r5, r3
+/* 8034DCDC 0034993C 38 00 00 00 */ li r0, 0
+/* 8034DCE0 00349940 41 80 00 0C */ blt lbl_8034DCEC
+/* 8034DCE4 00349944 2C 05 01 00 */ cmpwi r5, 0x100
+/* 8034DCE8 00349948 41 80 00 08 */ blt lbl_8034DCF0
+lbl_8034DCEC:
+/* 8034DCEC 0034994C 38 00 00 01 */ li r0, 1
+lbl_8034DCF0:
+/* 8034DCF0 00349950 2C 00 00 00 */ cmpwi r0, 0
+/* 8034DCF4 00349954 41 82 00 0C */ beq lbl_8034DD00
+/* 8034DCF8 00349958 38 00 00 00 */ li r0, 0
+/* 8034DCFC 0034995C 48 00 00 14 */ b lbl_8034DD10
+lbl_8034DD00:
+/* 8034DD00 00349960 80 64 00 08 */ lwz r3, 8(r4)
+/* 8034DD04 00349964 54 A0 08 3C */ slwi r0, r5, 1
+/* 8034DD08 00349968 7C 03 02 2E */ lhzx r0, r3, r0
+/* 8034DD0C 0034996C 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_8034DD10:
+/* 8034DD10 00349970 2C 00 00 00 */ cmpwi r0, 0
+/* 8034DD14 00349974 40 82 00 0C */ bne lbl_8034DD20
+/* 8034DD18 00349978 38 60 00 00 */ li r3, 0
+/* 8034DD1C 0034997C 48 00 00 A0 */ b lbl_8034DDBC
+lbl_8034DD20:
+/* 8034DD20 00349980 38 C6 00 01 */ addi r6, r6, 1
+lbl_8034DD24:
+/* 8034DD24 00349984 88 66 00 00 */ lbz r3, 0(r6)
+/* 8034DD28 00349988 7C 60 07 75 */ extsb. r0, r3
+/* 8034DD2C 0034998C 40 82 FF AC */ bne lbl_8034DCD8
+/* 8034DD30 00349990 38 7B 00 01 */ addi r3, r27, 1
+/* 8034DD34 00349994 4B E8 29 D9 */ bl atoi
+/* 8034DD38 00349998 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DD3C 0034999C 41 80 00 14 */ blt lbl_8034DD50
+/* 8034DD40 003499A0 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
+/* 8034DD44 003499A4 38 04 FF FF */ addi r0, r4, 0x0000FFFF@l
+/* 8034DD48 003499A8 7C 03 00 00 */ cmpw r3, r0
+/* 8034DD4C 003499AC 40 81 00 0C */ ble lbl_8034DD58
+lbl_8034DD50:
+/* 8034DD50 003499B0 38 60 00 00 */ li r3, 0
+/* 8034DD54 003499B4 48 00 00 68 */ b lbl_8034DDBC
+lbl_8034DD58:
+/* 8034DD58 003499B8 54 7B 04 3E */ clrlwi r27, r3, 0x10
+lbl_8034DD5C:
+/* 8034DD5C 003499BC 2C 1C 00 00 */ cmpwi r28, 0
+/* 8034DD60 003499C0 41 82 00 40 */ beq lbl_8034DDA0
+/* 8034DD64 003499C4 7F 83 E3 78 */ mr r3, r28
+/* 8034DD68 003499C8 4B FE A2 09 */ bl inet_addr
+/* 8034DD6C 003499CC 3C 03 00 01 */ addis r0, r3, 1
+/* 8034DD70 003499D0 7C 7F 1B 78 */ mr r31, r3
+/* 8034DD74 003499D4 28 00 FF FF */ cmplwi r0, 0xffff
+/* 8034DD78 003499D8 40 82 00 28 */ bne lbl_8034DDA0
+/* 8034DD7C 003499DC 7F 83 E3 78 */ mr r3, r28
+/* 8034DD80 003499E0 4B FE A3 59 */ bl gethostbyname
+/* 8034DD84 003499E4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DD88 003499E8 40 82 00 0C */ bne lbl_8034DD94
+/* 8034DD8C 003499EC 38 60 00 00 */ li r3, 0
+/* 8034DD90 003499F0 48 00 00 2C */ b lbl_8034DDBC
+lbl_8034DD94:
+/* 8034DD94 003499F4 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034DD98 003499F8 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034DD9C 003499FC 83 E3 00 00 */ lwz r31, 0(r3)
+lbl_8034DDA0:
+/* 8034DDA0 00349A00 2C 1D 00 00 */ cmpwi r29, 0
+/* 8034DDA4 00349A04 41 82 00 08 */ beq lbl_8034DDAC
+/* 8034DDA8 00349A08 93 FD 00 00 */ stw r31, 0(r29)
+lbl_8034DDAC:
+/* 8034DDAC 00349A0C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8034DDB0 00349A10 41 82 00 08 */ beq lbl_8034DDB8
+/* 8034DDB4 00349A14 B3 7E 00 00 */ sth r27, 0(r30)
+lbl_8034DDB8:
+/* 8034DDB8 00349A18 38 60 00 01 */ li r3, 1
+lbl_8034DDBC:
+/* 8034DDBC 00349A1C 39 61 01 30 */ addi r11, r1, 0x130
+/* 8034DDC0 00349A20 4B E7 93 B1 */ bl _restgpr_26
+/* 8034DDC4 00349A24 80 01 01 34 */ lwz r0, 0x134(r1)
+/* 8034DDC8 00349A28 7C 08 03 A6 */ mtlr r0
+/* 8034DDCC 00349A2C 38 21 01 30 */ addi r1, r1, 0x130
+/* 8034DDD0 00349A30 4E 80 00 20 */ blr
+
+.global gti2MessageCheck
+gti2MessageCheck:
+/* 8034DDD4 00349A34 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034DDD8 00349A38 7C 08 02 A6 */ mflr r0
+/* 8034DDDC 00349A3C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034DDE0 00349A40 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034DDE4 00349A44 7C 9F 23 78 */ mr r31, r4
+/* 8034DDE8 00349A48 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8034DDEC 00349A4C 2C 05 00 00 */ cmpwi r5, 0
+/* 8034DDF0 00349A50 40 82 00 18 */ bne lbl_8034DE08
+/* 8034DDF4 00349A54 38 AD 92 E0 */ addi r5, r13, lbl_8063E5A0-_SDA_BASE_
+/* 8034DDF8 00349A58 38 00 00 00 */ li r0, 0
+/* 8034DDFC 00349A5C 90 A3 00 00 */ stw r5, 0(r3)
+/* 8034DE00 00349A60 90 04 00 00 */ stw r0, 0(r4)
+/* 8034DE04 00349A64 48 00 00 20 */ b lbl_8034DE24
+lbl_8034DE08:
+/* 8034DE08 00349A68 80 04 00 00 */ lwz r0, 0(r4)
+/* 8034DE0C 00349A6C 2C 00 FF FF */ cmpwi r0, -1
+/* 8034DE10 00349A70 40 82 00 14 */ bne lbl_8034DE24
+/* 8034DE14 00349A74 7C A3 2B 78 */ mr r3, r5
+/* 8034DE18 00349A78 4B E7 8D 4D */ bl strlen
+/* 8034DE1C 00349A7C 38 03 00 01 */ addi r0, r3, 1
+/* 8034DE20 00349A80 90 1F 00 00 */ stw r0, 0(r31)
+lbl_8034DE24:
+/* 8034DE24 00349A84 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034DE28 00349A88 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034DE2C 00349A8C 7C 08 03 A6 */ mtlr r0
+/* 8034DE30 00349A90 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034DE34 00349A94 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/md5c.s b/asm/SDK/DWC/gamespy/md5c.s new file mode 100644 index 0000000..ea906fe --- /dev/null +++ b/asm/SDK/DWC/gamespy/md5c.s @@ -0,0 +1,995 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global MD5Init
+MD5Init:
+/* 80336CA4 00332904 3C E0 67 45 */ lis r7, 0x67452301@ha
+/* 80336CA8 00332908 3C C0 EF CE */ lis r6, 0xEFCDAB89@ha
+/* 80336CAC 0033290C 39 00 00 00 */ li r8, 0
+/* 80336CB0 00332910 3C A0 98 BB */ lis r5, 0x98BADCFE@ha
+/* 80336CB4 00332914 3C 80 10 32 */ lis r4, 0x10325476@ha
+/* 80336CB8 00332918 38 E7 23 01 */ addi r7, r7, 0x67452301@l
+/* 80336CBC 0033291C 38 C6 AB 89 */ addi r6, r6, 0xEFCDAB89@l
+/* 80336CC0 00332920 38 A5 DC FE */ addi r5, r5, 0x98BADCFE@l
+/* 80336CC4 00332924 38 04 54 76 */ addi r0, r4, 0x10325476@l
+/* 80336CC8 00332928 91 03 00 14 */ stw r8, 0x14(r3)
+/* 80336CCC 0033292C 91 03 00 10 */ stw r8, 0x10(r3)
+/* 80336CD0 00332930 90 E3 00 00 */ stw r7, 0(r3)
+/* 80336CD4 00332934 90 C3 00 04 */ stw r6, 4(r3)
+/* 80336CD8 00332938 90 A3 00 08 */ stw r5, 8(r3)
+/* 80336CDC 0033293C 90 03 00 0C */ stw r0, 0xc(r3)
+/* 80336CE0 00332940 4E 80 00 20 */ blr
+
+.global MD5Update
+MD5Update:
+/* 80336CE4 00332944 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80336CE8 00332948 7C 08 02 A6 */ mflr r0
+/* 80336CEC 0033294C 54 A7 18 38 */ slwi r7, r5, 3
+/* 80336CF0 00332950 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80336CF4 00332954 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80336CF8 00332958 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80336CFC 0033295C 7C BE 2B 78 */ mr r30, r5
+/* 80336D00 00332960 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80336D04 00332964 7C 9D 23 78 */ mr r29, r4
+/* 80336D08 00332968 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80336D0C 0033296C 7C 7C 1B 78 */ mr r28, r3
+/* 80336D10 00332970 80 C3 00 10 */ lwz r6, 0x10(r3)
+/* 80336D14 00332974 7C 06 3A 14 */ add r0, r6, r7
+/* 80336D18 00332978 54 C6 EE BE */ rlwinm r6, r6, 0x1d, 0x1a, 0x1f
+/* 80336D1C 0033297C 7C 00 38 40 */ cmplw r0, r7
+/* 80336D20 00332980 90 03 00 10 */ stw r0, 0x10(r3)
+/* 80336D24 00332984 40 80 00 10 */ bge lbl_80336D34
+/* 80336D28 00332988 80 83 00 14 */ lwz r4, 0x14(r3)
+/* 80336D2C 0033298C 38 04 00 01 */ addi r0, r4, 1
+/* 80336D30 00332990 90 03 00 14 */ stw r0, 0x14(r3)
+lbl_80336D34:
+/* 80336D34 00332994 80 83 00 14 */ lwz r4, 0x14(r3)
+/* 80336D38 00332998 54 A0 1F 7E */ srwi r0, r5, 0x1d
+/* 80336D3C 0033299C 23 E6 00 40 */ subfic r31, r6, 0x40
+/* 80336D40 003329A0 7C 04 02 14 */ add r0, r4, r0
+/* 80336D44 003329A4 7C 05 F8 40 */ cmplw r5, r31
+/* 80336D48 003329A8 90 03 00 14 */ stw r0, 0x14(r3)
+/* 80336D4C 003329AC 41 80 00 4C */ blt lbl_80336D98
+/* 80336D50 003329B0 7C 63 32 14 */ add r3, r3, r6
+/* 80336D54 003329B4 7F A4 EB 78 */ mr r4, r29
+/* 80336D58 003329B8 7F E5 FB 78 */ mr r5, r31
+/* 80336D5C 003329BC 38 63 00 18 */ addi r3, r3, 0x18
+/* 80336D60 003329C0 4B CC D2 A1 */ bl memcpy
+/* 80336D64 003329C4 7F 83 E3 78 */ mr r3, r28
+/* 80336D68 003329C8 38 9C 00 18 */ addi r4, r28, 0x18
+/* 80336D6C 003329CC 48 00 01 E9 */ bl MD5Transform
+/* 80336D70 003329D0 48 00 00 14 */ b lbl_80336D84
+lbl_80336D74:
+/* 80336D74 003329D4 7F 83 E3 78 */ mr r3, r28
+/* 80336D78 003329D8 7C 9D FA 14 */ add r4, r29, r31
+/* 80336D7C 003329DC 48 00 01 D9 */ bl MD5Transform
+/* 80336D80 003329E0 3B FF 00 40 */ addi r31, r31, 0x40
+lbl_80336D84:
+/* 80336D84 003329E4 38 1F 00 3F */ addi r0, r31, 0x3f
+/* 80336D88 003329E8 7C 00 F0 40 */ cmplw r0, r30
+/* 80336D8C 003329EC 41 80 FF E8 */ blt lbl_80336D74
+/* 80336D90 003329F0 38 C0 00 00 */ li r6, 0
+/* 80336D94 003329F4 48 00 00 08 */ b lbl_80336D9C
+lbl_80336D98:
+/* 80336D98 003329F8 3B E0 00 00 */ li r31, 0
+lbl_80336D9C:
+/* 80336D9C 003329FC 7C 7C 32 14 */ add r3, r28, r6
+/* 80336DA0 00332A00 7C 9D FA 14 */ add r4, r29, r31
+/* 80336DA4 00332A04 38 63 00 18 */ addi r3, r3, 0x18
+/* 80336DA8 00332A08 7C BF F0 50 */ subf r5, r31, r30
+/* 80336DAC 00332A0C 4B CC D2 55 */ bl memcpy
+/* 80336DB0 00332A10 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80336DB4 00332A14 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80336DB8 00332A18 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80336DBC 00332A1C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80336DC0 00332A20 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80336DC4 00332A24 7C 08 03 A6 */ mtlr r0
+/* 80336DC8 00332A28 38 21 00 20 */ addi r1, r1, 0x20
+/* 80336DCC 00332A2C 4E 80 00 20 */ blr
+
+.global MD5Final
+MD5Final:
+/* 80336DD0 00332A30 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80336DD4 00332A34 7C 08 02 A6 */ mflr r0
+/* 80336DD8 00332A38 3C A0 80 45 */ lis r5, lbl_8044A3E0@ha
+/* 80336DDC 00332A3C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80336DE0 00332A40 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80336DE4 00332A44 7C 9F 23 78 */ mr r31, r4
+/* 80336DE8 00332A48 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80336DEC 00332A4C 7C 7E 1B 78 */ mr r30, r3
+/* 80336DF0 00332A50 7F E3 FB 78 */ mr r3, r31
+/* 80336DF4 00332A54 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 80336DF8 00332A58 98 01 00 08 */ stb r0, 8(r1)
+/* 80336DFC 00332A5C 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 80336E00 00332A60 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 80336E04 00332A64 98 01 00 09 */ stb r0, 9(r1)
+/* 80336E08 00332A68 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 80336E0C 00332A6C 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
+/* 80336E10 00332A70 98 01 00 0A */ stb r0, 0xa(r1)
+/* 80336E14 00332A74 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 80336E18 00332A78 54 00 46 3E */ srwi r0, r0, 0x18
+/* 80336E1C 00332A7C 98 01 00 0B */ stb r0, 0xb(r1)
+/* 80336E20 00332A80 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 80336E24 00332A84 98 01 00 0C */ stb r0, 0xc(r1)
+/* 80336E28 00332A88 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 80336E2C 00332A8C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 80336E30 00332A90 98 01 00 0D */ stb r0, 0xd(r1)
+/* 80336E34 00332A94 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 80336E38 00332A98 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
+/* 80336E3C 00332A9C 98 01 00 0E */ stb r0, 0xe(r1)
+/* 80336E40 00332AA0 80 04 00 14 */ lwz r0, 0x14(r4)
+/* 80336E44 00332AA4 54 00 46 3E */ srwi r0, r0, 0x18
+/* 80336E48 00332AA8 98 01 00 0F */ stb r0, 0xf(r1)
+/* 80336E4C 00332AAC 80 04 00 10 */ lwz r0, 0x10(r4)
+/* 80336E50 00332AB0 38 85 A3 E0 */ addi r4, r5, lbl_8044A3E0@l
+/* 80336E54 00332AB4 54 00 EE BE */ rlwinm r0, r0, 0x1d, 0x1a, 0x1f
+/* 80336E58 00332AB8 28 00 00 38 */ cmplwi r0, 0x38
+/* 80336E5C 00332ABC 20 A0 00 78 */ subfic r5, r0, 0x78
+/* 80336E60 00332AC0 40 80 00 08 */ bge lbl_80336E68
+/* 80336E64 00332AC4 20 A0 00 38 */ subfic r5, r0, 0x38
+lbl_80336E68:
+/* 80336E68 00332AC8 4B FF FE 7D */ bl MD5Update
+/* 80336E6C 00332ACC 7F E3 FB 78 */ mr r3, r31
+/* 80336E70 00332AD0 38 81 00 08 */ addi r4, r1, 8
+/* 80336E74 00332AD4 38 A0 00 08 */ li r5, 8
+/* 80336E78 00332AD8 4B FF FE 6D */ bl MD5Update
+/* 80336E7C 00332ADC 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80336E80 00332AE0 7F E3 FB 78 */ mr r3, r31
+/* 80336E84 00332AE4 38 80 00 00 */ li r4, 0
+/* 80336E88 00332AE8 38 A0 00 58 */ li r5, 0x58
+/* 80336E8C 00332AEC 98 1E 00 00 */ stb r0, 0(r30)
+/* 80336E90 00332AF0 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80336E94 00332AF4 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 80336E98 00332AF8 98 1E 00 01 */ stb r0, 1(r30)
+/* 80336E9C 00332AFC 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80336EA0 00332B00 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
+/* 80336EA4 00332B04 98 1E 00 02 */ stb r0, 2(r30)
+/* 80336EA8 00332B08 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80336EAC 00332B0C 54 00 46 3E */ srwi r0, r0, 0x18
+/* 80336EB0 00332B10 98 1E 00 03 */ stb r0, 3(r30)
+/* 80336EB4 00332B14 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80336EB8 00332B18 98 1E 00 04 */ stb r0, 4(r30)
+/* 80336EBC 00332B1C 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80336EC0 00332B20 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 80336EC4 00332B24 98 1E 00 05 */ stb r0, 5(r30)
+/* 80336EC8 00332B28 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80336ECC 00332B2C 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
+/* 80336ED0 00332B30 98 1E 00 06 */ stb r0, 6(r30)
+/* 80336ED4 00332B34 80 1F 00 04 */ lwz r0, 4(r31)
+/* 80336ED8 00332B38 54 00 46 3E */ srwi r0, r0, 0x18
+/* 80336EDC 00332B3C 98 1E 00 07 */ stb r0, 7(r30)
+/* 80336EE0 00332B40 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80336EE4 00332B44 98 1E 00 08 */ stb r0, 8(r30)
+/* 80336EE8 00332B48 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80336EEC 00332B4C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 80336EF0 00332B50 98 1E 00 09 */ stb r0, 9(r30)
+/* 80336EF4 00332B54 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80336EF8 00332B58 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
+/* 80336EFC 00332B5C 98 1E 00 0A */ stb r0, 0xa(r30)
+/* 80336F00 00332B60 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80336F04 00332B64 54 00 46 3E */ srwi r0, r0, 0x18
+/* 80336F08 00332B68 98 1E 00 0B */ stb r0, 0xb(r30)
+/* 80336F0C 00332B6C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80336F10 00332B70 98 1E 00 0C */ stb r0, 0xc(r30)
+/* 80336F14 00332B74 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80336F18 00332B78 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f
+/* 80336F1C 00332B7C 98 1E 00 0D */ stb r0, 0xd(r30)
+/* 80336F20 00332B80 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80336F24 00332B84 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f
+/* 80336F28 00332B88 98 1E 00 0E */ stb r0, 0xe(r30)
+/* 80336F2C 00332B8C 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80336F30 00332B90 54 00 46 3E */ srwi r0, r0, 0x18
+/* 80336F34 00332B94 98 1E 00 0F */ stb r0, 0xf(r30)
+/* 80336F38 00332B98 4B CC D1 CD */ bl memset
+/* 80336F3C 00332B9C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80336F40 00332BA0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80336F44 00332BA4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80336F48 00332BA8 7C 08 03 A6 */ mtlr r0
+/* 80336F4C 00332BAC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80336F50 00332BB0 4E 80 00 20 */ blr
+
+.global MD5Transform
+MD5Transform:
+/* 80336F54 00332BB4 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 80336F58 00332BB8 7C 08 02 A6 */ mflr r0
+/* 80336F5C 00332BBC 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 80336F60 00332BC0 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 80336F64 00332BC4 4B E9 01 91 */ bl __save_gpr
+/* 80336F68 00332BC8 39 00 00 02 */ li r8, 2
+/* 80336F6C 00332BCC 38 A1 00 08 */ addi r5, r1, 8
+/* 80336F70 00332BD0 80 03 00 00 */ lwz r0, 0(r3)
+/* 80336F74 00332BD4 38 E0 00 00 */ li r7, 0
+/* 80336F78 00332BD8 81 63 00 04 */ lwz r11, 4(r3)
+/* 80336F7C 00332BDC 39 40 00 00 */ li r10, 0
+/* 80336F80 00332BE0 81 83 00 08 */ lwz r12, 8(r3)
+/* 80336F84 00332BE4 38 C0 00 00 */ li r6, 0
+/* 80336F88 00332BE8 81 23 00 0C */ lwz r9, 0xc(r3)
+/* 80336F8C 00332BEC 7D 09 03 A6 */ mtctr r8
+lbl_80336F90:
+/* 80336F90 00332BF0 7D 04 32 14 */ add r8, r4, r6
+/* 80336F94 00332BF4 7E A4 30 AE */ lbzx r21, r4, r6
+/* 80336F98 00332BF8 89 C8 00 01 */ lbz r14, 1(r8)
+/* 80336F9C 00332BFC 3A 87 00 01 */ addi r20, r7, 1
+/* 80336FA0 00332C00 3A 67 00 02 */ addi r19, r7, 2
+/* 80336FA4 00332C04 3A 47 00 03 */ addi r18, r7, 3
+/* 80336FA8 00332C08 51 D5 44 2E */ rlwimi r21, r14, 8, 0x10, 0x17
+/* 80336FAC 00332C0C 89 E8 00 02 */ lbz r15, 2(r8)
+/* 80336FB0 00332C10 89 C8 00 03 */ lbz r14, 3(r8)
+/* 80336FB4 00332C14 3A 27 00 04 */ addi r17, r7, 4
+/* 80336FB8 00332C18 51 F5 82 1E */ rlwimi r21, r15, 0x10, 8, 0xf
+/* 80336FBC 00332C1C 3A 07 00 05 */ addi r16, r7, 5
+/* 80336FC0 00332C20 51 D5 C0 0E */ rlwimi r21, r14, 0x18, 0, 7
+/* 80336FC4 00332C24 39 E7 00 06 */ addi r15, r7, 6
+/* 80336FC8 00332C28 7E A5 51 2E */ stwx r21, r5, r10
+/* 80336FCC 00332C2C 39 C7 00 07 */ addi r14, r7, 7
+/* 80336FD0 00332C30 56 94 10 3A */ slwi r20, r20, 2
+/* 80336FD4 00332C34 56 73 10 3A */ slwi r19, r19, 2
+/* 80336FD8 00332C38 8A C8 00 05 */ lbz r22, 5(r8)
+/* 80336FDC 00332C3C 56 52 10 3A */ slwi r18, r18, 2
+/* 80336FE0 00332C40 8A A8 00 04 */ lbz r21, 4(r8)
+/* 80336FE4 00332C44 56 31 10 3A */ slwi r17, r17, 2
+/* 80336FE8 00332C48 52 D5 44 2E */ rlwimi r21, r22, 8, 0x10, 0x17
+/* 80336FEC 00332C4C 8A E8 00 06 */ lbz r23, 6(r8)
+/* 80336FF0 00332C50 8A C8 00 07 */ lbz r22, 7(r8)
+/* 80336FF4 00332C54 56 10 10 3A */ slwi r16, r16, 2
+/* 80336FF8 00332C58 52 F5 82 1E */ rlwimi r21, r23, 0x10, 8, 0xf
+/* 80336FFC 00332C5C 55 EF 10 3A */ slwi r15, r15, 2
+/* 80337000 00332C60 52 D5 C0 0E */ rlwimi r21, r22, 0x18, 0, 7
+/* 80337004 00332C64 55 CE 10 3A */ slwi r14, r14, 2
+/* 80337008 00332C68 7E A5 A1 2E */ stwx r21, r5, r20
+/* 8033700C 00332C6C 38 E7 00 08 */ addi r7, r7, 8
+/* 80337010 00332C70 39 4A 00 20 */ addi r10, r10, 0x20
+/* 80337014 00332C74 38 C6 00 20 */ addi r6, r6, 0x20
+/* 80337018 00332C78 8A A8 00 09 */ lbz r21, 9(r8)
+/* 8033701C 00332C7C 8A 88 00 08 */ lbz r20, 8(r8)
+/* 80337020 00332C80 52 B4 44 2E */ rlwimi r20, r21, 8, 0x10, 0x17
+/* 80337024 00332C84 8A C8 00 0A */ lbz r22, 0xa(r8)
+/* 80337028 00332C88 8A A8 00 0B */ lbz r21, 0xb(r8)
+/* 8033702C 00332C8C 52 D4 82 1E */ rlwimi r20, r22, 0x10, 8, 0xf
+/* 80337030 00332C90 52 B4 C0 0E */ rlwimi r20, r21, 0x18, 0, 7
+/* 80337034 00332C94 7E 85 99 2E */ stwx r20, r5, r19
+/* 80337038 00332C98 8A 88 00 0D */ lbz r20, 0xd(r8)
+/* 8033703C 00332C9C 8A 68 00 0C */ lbz r19, 0xc(r8)
+/* 80337040 00332CA0 52 93 44 2E */ rlwimi r19, r20, 8, 0x10, 0x17
+/* 80337044 00332CA4 8A A8 00 0E */ lbz r21, 0xe(r8)
+/* 80337048 00332CA8 8A 88 00 0F */ lbz r20, 0xf(r8)
+/* 8033704C 00332CAC 52 B3 82 1E */ rlwimi r19, r21, 0x10, 8, 0xf
+/* 80337050 00332CB0 52 93 C0 0E */ rlwimi r19, r20, 0x18, 0, 7
+/* 80337054 00332CB4 7E 65 91 2E */ stwx r19, r5, r18
+/* 80337058 00332CB8 8A 68 00 11 */ lbz r19, 0x11(r8)
+/* 8033705C 00332CBC 8A 48 00 10 */ lbz r18, 0x10(r8)
+/* 80337060 00332CC0 52 72 44 2E */ rlwimi r18, r19, 8, 0x10, 0x17
+/* 80337064 00332CC4 8A 88 00 12 */ lbz r20, 0x12(r8)
+/* 80337068 00332CC8 8A 68 00 13 */ lbz r19, 0x13(r8)
+/* 8033706C 00332CCC 52 92 82 1E */ rlwimi r18, r20, 0x10, 8, 0xf
+/* 80337070 00332CD0 52 72 C0 0E */ rlwimi r18, r19, 0x18, 0, 7
+/* 80337074 00332CD4 7E 45 89 2E */ stwx r18, r5, r17
+/* 80337078 00332CD8 8A 48 00 15 */ lbz r18, 0x15(r8)
+/* 8033707C 00332CDC 8A 28 00 14 */ lbz r17, 0x14(r8)
+/* 80337080 00332CE0 52 51 44 2E */ rlwimi r17, r18, 8, 0x10, 0x17
+/* 80337084 00332CE4 8A 68 00 16 */ lbz r19, 0x16(r8)
+/* 80337088 00332CE8 8A 48 00 17 */ lbz r18, 0x17(r8)
+/* 8033708C 00332CEC 52 71 82 1E */ rlwimi r17, r19, 0x10, 8, 0xf
+/* 80337090 00332CF0 52 51 C0 0E */ rlwimi r17, r18, 0x18, 0, 7
+/* 80337094 00332CF4 7E 25 81 2E */ stwx r17, r5, r16
+/* 80337098 00332CF8 8A 28 00 19 */ lbz r17, 0x19(r8)
+/* 8033709C 00332CFC 8A 08 00 18 */ lbz r16, 0x18(r8)
+/* 803370A0 00332D00 52 30 44 2E */ rlwimi r16, r17, 8, 0x10, 0x17
+/* 803370A4 00332D04 8A 48 00 1A */ lbz r18, 0x1a(r8)
+/* 803370A8 00332D08 8A 28 00 1B */ lbz r17, 0x1b(r8)
+/* 803370AC 00332D0C 52 50 82 1E */ rlwimi r16, r18, 0x10, 8, 0xf
+/* 803370B0 00332D10 52 30 C0 0E */ rlwimi r16, r17, 0x18, 0, 7
+/* 803370B4 00332D14 7E 05 79 2E */ stwx r16, r5, r15
+/* 803370B8 00332D18 8A 28 00 1E */ lbz r17, 0x1e(r8)
+/* 803370BC 00332D1C 8A 08 00 1D */ lbz r16, 0x1d(r8)
+/* 803370C0 00332D20 89 E8 00 1C */ lbz r15, 0x1c(r8)
+/* 803370C4 00332D24 52 0F 44 2E */ rlwimi r15, r16, 8, 0x10, 0x17
+/* 803370C8 00332D28 89 08 00 1F */ lbz r8, 0x1f(r8)
+/* 803370CC 00332D2C 52 2F 82 1E */ rlwimi r15, r17, 0x10, 8, 0xf
+/* 803370D0 00332D30 51 0F C0 0E */ rlwimi r15, r8, 0x18, 0, 7
+/* 803370D4 00332D34 7D E5 71 2E */ stwx r15, r5, r14
+/* 803370D8 00332D38 42 00 FE B8 */ bdnz lbl_80336F90
+/* 803370DC 00332D3C 83 21 00 08 */ lwz r25, 8(r1)
+/* 803370E0 00332D40 7D 66 60 38 */ and r6, r11, r12
+/* 803370E4 00332D44 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 803370E8 00332D48 7D 25 58 78 */ andc r5, r9, r11
+/* 803370EC 00332D4C 3C F9 D7 6B */ addis r7, r25, 0xd76b
+/* 803370F0 00332D50 83 E1 00 14 */ lwz r31, 0x14(r1)
+/* 803370F4 00332D54 7C E7 02 14 */ add r7, r7, r0
+/* 803370F8 00332D58 7C C0 2B 78 */ or r0, r6, r5
+/* 803370FC 00332D5C 7C A7 02 14 */ add r5, r7, r0
+/* 80337100 00332D60 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 80337104 00332D64 38 05 A4 78 */ addi r0, r5, -23432
+/* 80337108 00332D68 3E 1C 24 20 */ addis r16, r28, 0x2420
+/* 8033710C 00332D6C 54 00 38 3E */ rotlwi r0, r0, 7
+/* 80337110 00332D70 3C E4 E8 C8 */ addis r7, r4, 0xe8c8
+/* 80337114 00332D74 7C 00 5A 14 */ add r0, r0, r11
+/* 80337118 00332D78 81 41 00 18 */ lwz r10, 0x18(r1)
+/* 8033711C 00332D7C 7C 06 58 38 */ and r6, r0, r11
+/* 80337120 00332D80 3D DF C1 BE */ addis r14, r31, 0xc1be
+/* 80337124 00332D84 7D 85 00 78 */ andc r5, r12, r0
+/* 80337128 00332D88 7C E7 4A 14 */ add r7, r7, r9
+/* 8033712C 00332D8C 7C C5 2B 78 */ or r5, r6, r5
+/* 80337130 00332D90 3D 0A F5 7C */ addis r8, r10, 0xf57c
+/* 80337134 00332D94 7C A7 2A 14 */ add r5, r7, r5
+/* 80337138 00332D98 80 E1 00 1C */ lwz r7, 0x1c(r1)
+/* 8033713C 00332D9C 39 25 B7 56 */ addi r9, r5, -18602
+/* 80337140 00332DA0 7E 10 62 14 */ add r16, r16, r12
+/* 80337144 00332DA4 55 29 60 3E */ rotlwi r9, r9, 0xc
+/* 80337148 00332DA8 7E 4E 5A 14 */ add r18, r14, r11
+/* 8033714C 00332DAC 7D 29 02 14 */ add r9, r9, r0
+/* 80337150 00332DB0 83 61 00 24 */ lwz r27, 0x24(r1)
+/* 80337154 00332DB4 7D 2F 00 38 */ and r15, r9, r0
+/* 80337158 00332DB8 7E 28 02 14 */ add r17, r8, r0
+/* 8033715C 00332DBC 7D 6C 48 78 */ andc r12, r11, r9
+/* 80337160 00332DC0 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 80337164 00332DC4 7D EC 63 78 */ or r12, r15, r12
+/* 80337168 00332DC8 3C C7 47 88 */ addis r6, r7, 0x4788
+/* 8033716C 00332DCC 7D 70 62 14 */ add r11, r16, r12
+/* 80337170 00332DD0 3D DB FD 47 */ addis r14, r27, 0xfd47
+/* 80337174 00332DD4 39 8B 70 DB */ addi r12, r11, 0x70db
+/* 80337178 00332DD8 7E 06 4A 14 */ add r16, r6, r9
+/* 8033717C 00332DDC 55 88 88 3E */ rotlwi r8, r12, 0x11
+/* 80337180 00332DE0 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80337184 00332DE4 7D 08 4A 14 */ add r8, r8, r9
+/* 80337188 00332DE8 3C C5 A8 30 */ addis r6, r5, 0xa830
+/* 8033718C 00332DEC 7D 0B 48 38 */ and r11, r8, r9
+/* 80337190 00332DF0 3D 9E 69 81 */ addis r12, r30, 0x6981
+/* 80337194 00332DF4 7C 00 40 78 */ andc r0, r0, r8
+/* 80337198 00332DF8 7D E6 42 14 */ add r15, r6, r8
+/* 8033719C 00332DFC 7D 60 03 78 */ or r0, r11, r0
+/* 803371A0 00332E00 7C D2 02 14 */ add r6, r18, r0
+/* 803371A4 00332E04 39 66 CE EE */ addi r11, r6, -12562
+/* 803371A8 00332E08 55 66 B0 3E */ rotlwi r6, r11, 0x16
+/* 803371AC 00332E0C 7C C6 42 14 */ add r6, r6, r8
+/* 803371B0 00332E10 7C CB 40 38 */ and r11, r6, r8
+/* 803371B4 00332E14 7D 20 30 78 */ andc r0, r9, r6
+/* 803371B8 00332E18 7D CE 32 14 */ add r14, r14, r6
+/* 803371BC 00332E1C 7D 60 03 78 */ or r0, r11, r0
+/* 803371C0 00332E20 7D 31 02 14 */ add r9, r17, r0
+/* 803371C4 00332E24 38 09 0F AF */ addi r0, r9, 0xfaf
+/* 803371C8 00332E28 54 00 38 3E */ rotlwi r0, r0, 7
+/* 803371CC 00332E2C 7C 00 32 14 */ add r0, r0, r6
+/* 803371D0 00332E30 7C 09 30 38 */ and r9, r0, r6
+/* 803371D4 00332E34 7D 08 00 78 */ andc r8, r8, r0
+/* 803371D8 00332E38 7D 6C 02 14 */ add r11, r12, r0
+/* 803371DC 00332E3C 7D 28 43 78 */ or r8, r9, r8
+/* 803371E0 00332E40 7D 10 42 14 */ add r8, r16, r8
+/* 803371E4 00332E44 39 28 C6 2A */ addi r9, r8, -14806
+/* 803371E8 00332E48 55 29 60 3E */ rotlwi r9, r9, 0xc
+/* 803371EC 00332E4C 7D 29 02 14 */ add r9, r9, r0
+/* 803371F0 00332E50 7D 28 00 38 */ and r8, r9, r0
+/* 803371F4 00332E54 7C C6 48 78 */ andc r6, r6, r9
+/* 803371F8 00332E58 7D 06 33 78 */ or r6, r8, r6
+/* 803371FC 00332E5C 7C CF 32 14 */ add r6, r15, r6
+/* 80337200 00332E60 39 06 46 13 */ addi r8, r6, 0x4613
+/* 80337204 00332E64 55 0F 88 3E */ rotlwi r15, r8, 0x11
+/* 80337208 00332E68 7D EF 4A 14 */ add r15, r15, r9
+/* 8033720C 00332E6C 7D E6 48 38 */ and r6, r15, r9
+/* 80337210 00332E70 7C 00 78 78 */ andc r0, r0, r15
+/* 80337214 00332E74 7C C0 03 78 */ or r0, r6, r0
+/* 80337218 00332E78 7C CE 02 14 */ add r6, r14, r0
+/* 8033721C 00332E7C 38 C6 95 01 */ addi r6, r6, -27391
+/* 80337220 00332E80 54 CE B0 3E */ rotlwi r14, r6, 0x16
+/* 80337224 00332E84 7D CE 7A 14 */ add r14, r14, r15
+/* 80337228 00332E88 7D C6 78 38 */ and r6, r14, r15
+/* 8033722C 00332E8C 7D 20 70 78 */ andc r0, r9, r14
+/* 80337230 00332E90 7C C0 03 78 */ or r0, r6, r0
+/* 80337234 00332E94 7C CB 02 14 */ add r6, r11, r0
+/* 80337238 00332E98 38 06 98 D8 */ addi r0, r6, -26408
+/* 8033723C 00332E9C 54 12 38 3E */ rotlwi r18, r0, 7
+/* 80337240 00332EA0 81 61 00 2C */ lwz r11, 0x2c(r1)
+/* 80337244 00332EA4 7E 52 72 14 */ add r18, r18, r14
+/* 80337248 00332EA8 80 C1 00 34 */ lwz r6, 0x34(r1)
+/* 8033724C 00332EAC 3D 8B 8B 45 */ addis r12, r11, 0x8b45
+/* 80337250 00332EB0 83 A1 00 3C */ lwz r29, 0x3c(r1)
+/* 80337254 00332EB4 7E 50 70 38 */ and r16, r18, r14
+/* 80337258 00332EB8 7D E0 90 78 */ andc r0, r15, r18
+/* 8033725C 00332EBC 7D 2C 4A 14 */ add r9, r12, r9
+/* 80337260 00332EC0 81 01 00 30 */ lwz r8, 0x30(r1)
+/* 80337264 00332EC4 7E 00 03 78 */ or r0, r16, r0
+/* 80337268 00332EC8 83 41 00 38 */ lwz r26, 0x38(r1)
+/* 8033726C 00332ECC 7D 29 02 14 */ add r9, r9, r0
+/* 80337270 00332ED0 3D 88 FF FF */ addis r12, r8, 0xffff
+/* 80337274 00332ED4 39 29 F7 AF */ addi r9, r9, -2129
+/* 80337278 00332ED8 3C 1A 6B 90 */ addis r0, r26, 0x6b90
+/* 8033727C 00332EDC 55 30 60 3E */ rotlwi r16, r9, 0xc
+/* 80337280 00332EE0 7E 8C 7A 14 */ add r20, r12, r15
+/* 80337284 00332EE4 7E 10 92 14 */ add r16, r16, r18
+/* 80337288 00332EE8 3E 3D FD 98 */ addis r17, r29, 0xfd98
+/* 8033728C 00332EEC 7E 0F 90 38 */ and r15, r16, r18
+/* 80337290 00332EF0 3E 66 89 5D */ addis r19, r6, 0x895d
+/* 80337294 00332EF4 7D C9 80 78 */ andc r9, r14, r16
+/* 80337298 00332EF8 7C 00 92 14 */ add r0, r0, r18
+/* 8033729C 00332EFC 7D EF 4B 78 */ or r15, r15, r9
+/* 803372A0 00332F00 7D D3 72 14 */ add r14, r19, r14
+/* 803372A4 00332F04 7D F4 7A 14 */ add r15, r20, r15
+/* 803372A8 00332F08 81 21 00 44 */ lwz r9, 0x44(r1)
+/* 803372AC 00332F0C 39 EF 5B B1 */ addi r15, r15, 0x5bb1
+/* 803372B0 00332F10 7E B1 82 14 */ add r21, r17, r16
+/* 803372B4 00332F14 55 EF 88 3E */ rotlwi r15, r15, 0x11
+/* 803372B8 00332F18 81 81 00 40 */ lwz r12, 0x40(r1)
+/* 803372BC 00332F1C 7D EF 82 14 */ add r15, r15, r16
+/* 803372C0 00332F20 3E 69 49 B4 */ addis r19, r9, 0x49b4
+/* 803372C4 00332F24 7D F6 80 38 */ and r22, r15, r16
+/* 803372C8 00332F28 3E 2C A6 79 */ addis r17, r12, 0xa679
+/* 803372CC 00332F2C 7E 52 78 78 */ andc r18, r18, r15
+/* 803372D0 00332F30 7E D2 93 78 */ or r18, r22, r18
+/* 803372D4 00332F34 7E 91 7A 14 */ add r20, r17, r15
+/* 803372D8 00332F38 7D CE 92 14 */ add r14, r14, r18
+/* 803372DC 00332F3C 3E 24 F6 1E */ addis r17, r4, 0xf61e
+/* 803372E0 00332F40 39 CE D7 BE */ addi r14, r14, -10306
+/* 803372E4 00332F44 55 CE B0 3E */ rotlwi r14, r14, 0x16
+/* 803372E8 00332F48 7D CE 7A 14 */ add r14, r14, r15
+/* 803372EC 00332F4C 7D D2 78 38 */ and r18, r14, r15
+/* 803372F0 00332F50 7E 10 70 78 */ andc r16, r16, r14
+/* 803372F4 00332F54 7E 73 72 14 */ add r19, r19, r14
+/* 803372F8 00332F58 7E 50 83 78 */ or r16, r18, r16
+/* 803372FC 00332F5C 7E 00 82 14 */ add r16, r0, r16
+/* 80337300 00332F60 3A 50 11 22 */ addi r18, r16, 0x1122
+/* 80337304 00332F64 56 40 38 3E */ rotlwi r0, r18, 7
+/* 80337308 00332F68 7C 00 72 14 */ add r0, r0, r14
+/* 8033730C 00332F6C 7C 10 70 38 */ and r16, r0, r14
+/* 80337310 00332F70 7D EF 00 78 */ andc r15, r15, r0
+/* 80337314 00332F74 7E 51 02 14 */ add r18, r17, r0
+/* 80337318 00332F78 7E 0F 7B 78 */ or r15, r16, r15
+/* 8033731C 00332F7C 7D F5 7A 14 */ add r15, r21, r15
+/* 80337320 00332F80 3A 0F 71 93 */ addi r16, r15, 0x7193
+/* 80337324 00332F84 56 11 60 3E */ rotlwi r17, r16, 0xc
+/* 80337328 00332F88 7E 31 02 14 */ add r17, r17, r0
+/* 8033732C 00332F8C 7E 35 88 F8 */ nor r21, r17, r17
+/* 80337330 00332F90 7E 2F 00 38 */ and r15, r17, r0
+/* 80337334 00332F94 7E AE 70 38 */ and r14, r21, r14
+/* 80337338 00332F98 7D EE 73 78 */ or r14, r15, r14
+/* 8033733C 00332F9C 7D D4 72 14 */ add r14, r20, r14
+/* 80337340 00332FA0 39 EE 43 8E */ addi r15, r14, 0x438e
+/* 80337344 00332FA4 55 F0 88 3E */ rotlwi r16, r15, 0x11
+/* 80337348 00332FA8 7E 10 8A 14 */ add r16, r16, r17
+/* 8033734C 00332FAC 7E 0F 80 F8 */ nor r15, r16, r16
+/* 80337350 00332FB0 7E 0E 88 38 */ and r14, r16, r17
+/* 80337354 00332FB4 7E 14 A8 38 */ and r20, r16, r21
+/* 80337358 00332FB8 7D E0 00 38 */ and r0, r15, r0
+/* 8033735C 00332FBC 7D C0 03 78 */ or r0, r14, r0
+/* 80337360 00332FC0 7D D3 02 14 */ add r14, r19, r0
+/* 80337364 00332FC4 39 CE 08 21 */ addi r14, r14, 0x821
+/* 80337368 00332FC8 55 D6 B0 3E */ rotlwi r22, r14, 0x16
+/* 8033736C 00332FCC 7E D6 82 14 */ add r22, r22, r16
+/* 80337370 00332FD0 7E C0 88 38 */ and r0, r22, r17
+/* 80337374 00332FD4 7C 00 A3 78 */ or r0, r0, r20
+/* 80337378 00332FD8 7D D2 02 14 */ add r14, r18, r0
+/* 8033737C 00332FDC 38 0E 25 62 */ addi r0, r14, 0x2562
+/* 80337380 00332FE0 54 14 28 3E */ rotlwi r20, r0, 5
+/* 80337384 00332FE4 7E 94 B2 14 */ add r20, r20, r22
+/* 80337388 00332FE8 3E 45 C0 41 */ addis r18, r5, 0xc041
+/* 8033738C 00332FEC 7E C0 78 38 */ and r0, r22, r15
+/* 80337390 00332FF0 7E 93 80 38 */ and r19, r20, r16
+/* 80337394 00332FF4 3D C6 26 5E */ addis r14, r6, 0x265e
+/* 80337398 00332FF8 7D F2 8A 14 */ add r15, r18, r17
+/* 8033739C 00332FFC 3E 59 E9 B7 */ addis r18, r25, 0xe9b7
+/* 803373A0 00333000 7E 60 03 78 */ or r0, r19, r0
+/* 803373A4 00333004 3E 67 D6 2F */ addis r19, r7, 0xd62f
+/* 803373A8 00333008 7D EF 02 14 */ add r15, r15, r0
+/* 803373AC 0033300C 7E 52 B2 14 */ add r18, r18, r22
+/* 803373B0 00333010 3A 2F B3 40 */ addi r17, r15, -19648
+/* 803373B4 00333014 7E 80 B0 78 */ andc r0, r20, r22
+/* 803373B8 00333018 7D EE 82 14 */ add r15, r14, r16
+/* 803373BC 0033301C 3E 08 02 44 */ addis r16, r8, 0x244
+/* 803373C0 00333020 56 2E 48 3E */ rotlwi r14, r17, 9
+/* 803373C4 00333024 7E B3 A2 14 */ add r21, r19, r20
+/* 803373C8 00333028 7D CE A2 14 */ add r14, r14, r20
+/* 803373CC 0033302C 3E EC C3 37 */ addis r23, r12, 0xc337
+/* 803373D0 00333030 7D D1 B0 38 */ and r17, r14, r22
+/* 803373D4 00333034 7E 20 03 78 */ or r0, r17, r0
+/* 803373D8 00333038 7E 70 72 14 */ add r19, r16, r14
+/* 803373DC 0033303C 7D EF 02 14 */ add r15, r15, r0
+/* 803373E0 00333040 7D D6 A0 78 */ andc r22, r14, r20
+/* 803373E4 00333044 3A 0F 5A 51 */ addi r16, r15, 0x5a51
+/* 803373E8 00333048 3E 2A E7 D4 */ addis r17, r10, 0xe7d4
+/* 803373EC 0033304C 56 00 70 3E */ rotlwi r0, r16, 0xe
+/* 803373F0 00333050 3D E9 D8 A2 */ addis r15, r9, 0xd8a2
+/* 803373F4 00333054 7C 00 72 14 */ add r0, r0, r14
+/* 803373F8 00333058 3E 0B 21 E2 */ addis r16, r11, 0x21e2
+/* 803373FC 0033305C 7C 14 A0 38 */ and r20, r0, r20
+/* 80337400 00333060 7E 96 B3 78 */ or r22, r20, r22
+/* 80337404 00333064 7E D2 B2 14 */ add r22, r18, r22
+/* 80337408 00333068 7E 4F 02 14 */ add r18, r15, r0
+/* 8033740C 0033306C 3A D6 C7 AA */ addi r22, r22, -14422
+/* 80337410 00333070 7C 14 70 78 */ andc r20, r0, r14
+/* 80337414 00333074 56 D6 A0 3E */ rotlwi r22, r22, 0x14
+/* 80337418 00333078 3D FF F4 D5 */ addis r15, r31, 0xf4d5
+/* 8033741C 0033307C 7E D6 02 14 */ add r22, r22, r0
+/* 80337420 00333080 7E CE 70 38 */ and r14, r22, r14
+/* 80337424 00333084 7D D4 A3 78 */ or r20, r14, r20
+/* 80337428 00333088 7E 31 B2 14 */ add r17, r17, r22
+/* 8033742C 0033308C 7E 95 A2 14 */ add r20, r21, r20
+/* 80337430 00333090 7E CE 00 78 */ andc r14, r22, r0
+/* 80337434 00333094 3A 94 10 5D */ addi r20, r20, 0x105d
+/* 80337438 00333098 56 94 28 3E */ rotlwi r20, r20, 5
+/* 8033743C 0033309C 7E 94 B2 14 */ add r20, r20, r22
+/* 80337440 003330A0 7E 80 00 38 */ and r0, r20, r0
+/* 80337444 003330A4 7C 0E 73 78 */ or r14, r0, r14
+/* 80337448 003330A8 7E 10 A2 14 */ add r16, r16, r20
+/* 8033744C 003330AC 7D D3 72 14 */ add r14, r19, r14
+/* 80337450 003330B0 7E 80 B0 78 */ andc r0, r20, r22
+/* 80337454 003330B4 39 CE 14 53 */ addi r14, r14, 0x1453
+/* 80337458 003330B8 55 CE 48 3E */ rotlwi r14, r14, 9
+/* 8033745C 003330BC 7D CE A2 14 */ add r14, r14, r20
+/* 80337460 003330C0 7D D3 B0 38 */ and r19, r14, r22
+/* 80337464 003330C4 7E 60 03 78 */ or r0, r19, r0
+/* 80337468 003330C8 7D D5 A0 78 */ andc r21, r14, r20
+/* 8033746C 003330CC 7E 72 02 14 */ add r19, r18, r0
+/* 80337470 003330D0 7E 57 72 14 */ add r18, r23, r14
+/* 80337474 003330D4 38 13 E6 81 */ addi r0, r19, -6527
+/* 80337478 003330D8 54 13 70 3E */ rotlwi r19, r0, 0xe
+/* 8033747C 003330DC 7E 73 72 14 */ add r19, r19, r14
+/* 80337480 003330E0 7E 60 A0 38 */ and r0, r19, r20
+/* 80337484 003330E4 7C 14 AB 78 */ or r20, r0, r21
+/* 80337488 003330E8 7E 91 A2 14 */ add r20, r17, r20
+/* 8033748C 003330EC 7E 2F 9A 14 */ add r17, r15, r19
+/* 80337490 003330F0 3A D4 FB C8 */ addi r22, r20, -1080
+/* 80337494 003330F4 7E 60 70 78 */ andc r0, r19, r14
+/* 80337498 003330F8 56 CF A0 3E */ rotlwi r15, r22, 0x14
+/* 8033749C 003330FC 7D EF 9A 14 */ add r15, r15, r19
+/* 803374A0 00333100 7D EE 70 38 */ and r14, r15, r14
+/* 803374A4 00333104 7D C0 03 78 */ or r0, r14, r0
+/* 803374A8 00333108 7E 10 02 14 */ add r16, r16, r0
+/* 803374AC 0033310C 7D EE 98 78 */ andc r14, r15, r19
+/* 803374B0 00333110 3A 90 CD E6 */ addi r20, r16, -12826
+/* 803374B4 00333114 56 80 28 3E */ rotlwi r0, r20, 5
+/* 803374B8 00333118 7C 00 7A 14 */ add r0, r0, r15
+/* 803374BC 0033311C 7C 10 98 38 */ and r16, r0, r19
+/* 803374C0 00333120 7E 0E 73 78 */ or r14, r16, r14
+/* 803374C4 00333124 7D D2 72 14 */ add r14, r18, r14
+/* 803374C8 00333128 7C 10 78 78 */ andc r16, r0, r15
+/* 803374CC 0033312C 39 CE 07 D6 */ addi r14, r14, 0x7d6
+/* 803374D0 00333130 55 D6 48 3E */ rotlwi r22, r14, 9
+/* 803374D4 00333134 7E D6 02 14 */ add r22, r22, r0
+/* 803374D8 00333138 7E CE 78 38 */ and r14, r22, r15
+/* 803374DC 0033313C 7D CE 83 78 */ or r14, r14, r16
+/* 803374E0 00333140 7D D1 72 14 */ add r14, r17, r14
+/* 803374E4 00333144 3A 6E 0D 87 */ addi r19, r14, 0xd87
+/* 803374E8 00333148 56 71 70 3E */ rotlwi r17, r19, 0xe
+/* 803374EC 0033314C 3E 5E 45 5A */ addis r18, r30, 0x455a
+/* 803374F0 00333150 7E 31 B2 14 */ add r17, r17, r22
+/* 803374F4 00333154 7E CE 00 78 */ andc r14, r22, r0
+/* 803374F8 00333158 7E 30 00 38 */ and r16, r17, r0
+/* 803374FC 0033315C 7D F2 7A 14 */ add r15, r18, r15
+/* 80337500 00333160 7E 0E 73 78 */ or r14, r16, r14
+/* 80337504 00333164 3E 7D A9 E4 */ addis r19, r29, 0xa9e4
+/* 80337508 00333168 7D EF 72 14 */ add r15, r15, r14
+/* 8033750C 0033316C 3E 5C FC F0 */ addis r18, r28, 0xfcf0
+/* 80337510 00333170 39 EF 14 ED */ addi r15, r15, 0x14ed
+/* 80337514 00333174 7C 13 02 14 */ add r0, r19, r0
+/* 80337518 00333178 55 F5 A0 3E */ rotlwi r21, r15, 0x14
+/* 8033751C 0033317C 7E 2E B0 78 */ andc r14, r17, r22
+/* 80337520 00333180 7E B5 8A 14 */ add r21, r21, r17
+/* 80337524 00333184 3E 1B 67 6F */ addis r16, r27, 0x676f
+/* 80337528 00333188 7E B4 B0 38 */ and r20, r21, r22
+/* 8033752C 0033318C 7E 72 B2 14 */ add r19, r18, r22
+/* 80337530 00333190 7E 8E 73 78 */ or r14, r20, r14
+/* 80337534 00333194 7E 50 8A 14 */ add r18, r16, r17
+/* 80337538 00333198 7D C0 72 14 */ add r14, r0, r14
+/* 8033753C 0033319C 3D FA 8D 2A */ addis r15, r26, 0x8d2a
+/* 80337540 003331A0 38 0E E9 05 */ addi r0, r14, -5883
+/* 80337544 003331A4 7E B6 88 78 */ andc r22, r21, r17
+/* 80337548 003331A8 54 14 28 3E */ rotlwi r20, r0, 5
+/* 8033754C 003331AC 7E 0F AA 14 */ add r16, r15, r21
+/* 80337550 003331B0 7E 94 AA 14 */ add r20, r20, r21
+/* 80337554 003331B4 3D E7 FF FA */ addis r15, r7, 0xfffa
+/* 80337558 003331B8 7E 91 88 38 */ and r17, r20, r17
+/* 8033755C 003331BC 3D DE 87 72 */ addis r14, r30, 0x8772
+/* 80337560 003331C0 7E 36 B3 78 */ or r22, r17, r22
+/* 80337564 003331C4 3C 06 6D 9D */ addis r0, r6, 0x6d9d
+/* 80337568 003331C8 7E 73 B2 14 */ add r19, r19, r22
+/* 8033756C 003331CC 7E 91 A8 78 */ andc r17, r20, r21
+/* 80337570 003331D0 3A D3 A3 F8 */ addi r22, r19, -23560
+/* 80337574 003331D4 3E EC FD E5 */ addis r23, r12, 0xfde5
+/* 80337578 003331D8 56 D3 48 3E */ rotlwi r19, r22, 9
+/* 8033757C 003331DC 3F 04 A4 BF */ addis r24, r4, 0xa4bf
+/* 80337580 003331E0 7E 73 A2 14 */ add r19, r19, r20
+/* 80337584 003331E4 7E 75 A8 38 */ and r21, r19, r21
+/* 80337588 003331E8 7E B1 8B 78 */ or r17, r21, r17
+/* 8033758C 003331EC 7E 32 8A 14 */ add r17, r18, r17
+/* 80337590 003331F0 7E 75 A0 78 */ andc r21, r19, r20
+/* 80337594 003331F4 3A 31 02 D9 */ addi r17, r17, 0x2d9
+/* 80337598 003331F8 56 31 70 3E */ rotlwi r17, r17, 0xe
+/* 8033759C 003331FC 7E 31 9A 14 */ add r17, r17, r19
+/* 803375A0 00333200 7E 32 A0 38 */ and r18, r17, r20
+/* 803375A4 00333204 7E 52 AB 78 */ or r18, r18, r21
+/* 803375A8 00333208 7E 10 92 14 */ add r16, r16, r18
+/* 803375AC 0033320C 3A B0 4C 8A */ addi r21, r16, 0x4c8a
+/* 803375B0 00333210 56 B0 A0 3E */ rotlwi r16, r21, 0x14
+/* 803375B4 00333214 7E 10 8A 14 */ add r16, r16, r17
+/* 803375B8 00333218 7E 72 82 78 */ xor r18, r19, r16
+/* 803375BC 0033321C 7E 52 8A 78 */ xor r18, r18, r17
+/* 803375C0 00333220 7E 54 92 14 */ add r18, r20, r18
+/* 803375C4 00333224 7E 92 7A 14 */ add r20, r18, r15
+/* 803375C8 00333228 3A 94 39 42 */ addi r20, r20, 0x3942
+/* 803375CC 0033322C 56 8F 20 3E */ rotlwi r15, r20, 4
+/* 803375D0 00333230 7D EF 82 14 */ add r15, r15, r16
+/* 803375D4 00333234 7E 32 7A 78 */ xor r18, r17, r15
+/* 803375D8 00333238 7E 52 82 78 */ xor r18, r18, r16
+/* 803375DC 0033323C 7E 53 92 14 */ add r18, r19, r18
+/* 803375E0 00333240 7E 72 72 14 */ add r19, r18, r14
+/* 803375E4 00333244 3A 73 F6 81 */ addi r19, r19, -2431
+/* 803375E8 00333248 56 6E 58 3E */ rotlwi r14, r19, 0xb
+/* 803375EC 0033324C 7D CE 7A 14 */ add r14, r14, r15
+/* 803375F0 00333250 7E 12 72 78 */ xor r18, r16, r14
+/* 803375F4 00333254 7E 52 7A 78 */ xor r18, r18, r15
+/* 803375F8 00333258 7E 31 92 14 */ add r17, r17, r18
+/* 803375FC 0033325C 7E 31 02 14 */ add r17, r17, r0
+/* 80337600 00333260 3A 31 61 22 */ addi r17, r17, 0x6122
+/* 80337604 00333264 56 36 80 3E */ rotlwi r22, r17, 0x10
+/* 80337608 00333268 7E D6 72 14 */ add r22, r22, r14
+/* 8033760C 0033326C 7D E0 B2 78 */ xor r0, r15, r22
+/* 80337610 00333270 7C 00 72 78 */ xor r0, r0, r14
+/* 80337614 00333274 7C 10 02 14 */ add r0, r16, r0
+/* 80337618 00333278 7E 00 BA 14 */ add r16, r0, r23
+/* 8033761C 0033327C 3A 10 38 0C */ addi r16, r16, 0x380c
+/* 80337620 00333280 56 17 B8 3E */ rotlwi r23, r16, 0x17
+/* 80337624 00333284 7E F7 B2 14 */ add r23, r23, r22
+/* 80337628 00333288 7D C0 BA 78 */ xor r0, r14, r23
+/* 8033762C 0033328C 7C 00 B2 78 */ xor r0, r0, r22
+/* 80337630 00333290 7C 0F 02 14 */ add r0, r15, r0
+/* 80337634 00333294 7D E0 C2 14 */ add r15, r0, r24
+/* 80337638 00333298 39 EF EA 44 */ addi r15, r15, -5564
+/* 8033763C 0033329C 55 F8 20 3E */ rotlwi r24, r15, 4
+/* 80337640 003332A0 3D EA 4B DF */ addis r15, r10, 0x4bdf
+/* 80337644 003332A4 7F 18 BA 14 */ add r24, r24, r23
+/* 80337648 003332A8 3E 1B F6 BB */ addis r16, r27, 0xf6bb
+/* 8033764C 003332AC 7E C0 C2 78 */ xor r0, r22, r24
+/* 80337650 003332B0 3E 28 BE C0 */ addis r17, r8, 0xbec0
+/* 80337654 003332B4 7C 00 BA 78 */ xor r0, r0, r23
+/* 80337658 003332B8 3E 5D 28 9B */ addis r18, r29, 0x289b
+/* 8033765C 003332BC 7C 0E 02 14 */ add r0, r14, r0
+/* 80337660 003332C0 3E 79 EA A1 */ addis r19, r25, 0xeaa1
+/* 80337664 003332C4 7D C0 7A 14 */ add r14, r0, r15
+/* 80337668 003332C8 3E 8B D9 D5 */ addis r20, r11, 0xd9d5
+/* 8033766C 003332CC 39 CE CF A9 */ addi r14, r14, -12375
+/* 80337670 003332D0 3C 1F D4 EF */ addis r0, r31, 0xd4ef
+/* 80337674 003332D4 55 D5 58 3E */ rotlwi r21, r14, 0xb
+/* 80337678 003332D8 90 01 00 48 */ stw r0, 0x48(r1)
+/* 8033767C 003332DC 7E B5 C2 14 */ add r21, r21, r24
+/* 80337680 003332E0 3C 05 04 88 */ addis r0, r5, 0x488
+/* 80337684 003332E4 7E EF AA 78 */ xor r15, r23, r21
+/* 80337688 003332E8 90 01 00 4C */ stw r0, 0x4c(r1)
+/* 8033768C 003332EC 7D EF C2 78 */ xor r15, r15, r24
+/* 80337690 003332F0 3C 1A E6 DC */ addis r0, r26, 0xe6dc
+/* 80337694 003332F4 7D F6 7A 14 */ add r15, r22, r15
+/* 80337698 003332F8 3D C9 1F A2 */ addis r14, r9, 0x1fa2
+/* 8033769C 003332FC 7E CF 82 14 */ add r22, r15, r16
+/* 803376A0 00333300 3A D6 4B 60 */ addi r22, r22, 0x4b60
+/* 803376A4 00333304 56 CF 80 3E */ rotlwi r15, r22, 0x10
+/* 803376A8 00333308 7D EF AA 14 */ add r15, r15, r21
+/* 803376AC 0033330C 7F 10 7A 78 */ xor r16, r24, r15
+/* 803376B0 00333310 7E 10 AA 78 */ xor r16, r16, r21
+/* 803376B4 00333314 7E 17 82 14 */ add r16, r23, r16
+/* 803376B8 00333318 7E F0 8A 14 */ add r23, r16, r17
+/* 803376BC 0033331C 3A F7 BC 70 */ addi r23, r23, -17296
+/* 803376C0 00333320 56 F1 B8 3E */ rotlwi r17, r23, 0x17
+/* 803376C4 00333324 7E 31 7A 14 */ add r17, r17, r15
+/* 803376C8 00333328 7E B0 8A 78 */ xor r16, r21, r17
+/* 803376CC 0033332C 7E 10 7A 78 */ xor r16, r16, r15
+/* 803376D0 00333330 7E 18 82 14 */ add r16, r24, r16
+/* 803376D4 00333334 7F 10 92 14 */ add r24, r16, r18
+/* 803376D8 00333338 3B 18 7E C6 */ addi r24, r24, 0x7ec6
+/* 803376DC 0033333C 57 10 20 3E */ rotlwi r16, r24, 4
+/* 803376E0 00333340 7E 10 8A 14 */ add r16, r16, r17
+/* 803376E4 00333344 7D F2 82 78 */ xor r18, r15, r16
+/* 803376E8 00333348 7E 52 8A 78 */ xor r18, r18, r17
+/* 803376EC 0033334C 7E 55 92 14 */ add r18, r21, r18
+/* 803376F0 00333350 7E B2 9A 14 */ add r21, r18, r19
+/* 803376F4 00333354 3A B5 27 FA */ addi r21, r21, 0x27fa
+/* 803376F8 00333358 56 B3 58 3E */ rotlwi r19, r21, 0xb
+/* 803376FC 0033335C 7E 73 82 14 */ add r19, r19, r16
+/* 80337700 00333360 7E 32 9A 78 */ xor r18, r17, r19
+/* 80337704 00333364 7E 52 82 78 */ xor r18, r18, r16
+/* 80337708 00333368 7E 4F 92 14 */ add r18, r15, r18
+/* 8033770C 0033336C 81 E1 00 48 */ lwz r15, 0x48(r1)
+/* 80337710 00333370 7D F2 7A 14 */ add r15, r18, r15
+/* 80337714 00333374 39 EF 30 85 */ addi r15, r15, 0x3085
+/* 80337718 00333378 55 F2 80 3E */ rotlwi r18, r15, 0x10
+/* 8033771C 0033337C 7E 52 9A 14 */ add r18, r18, r19
+/* 80337720 00333380 7E 0F 92 78 */ xor r15, r16, r18
+/* 80337724 00333384 7D EF 9A 78 */ xor r15, r15, r19
+/* 80337728 00333388 7E 31 7A 14 */ add r17, r17, r15
+/* 8033772C 0033338C 81 E1 00 4C */ lwz r15, 0x4c(r1)
+/* 80337730 00333390 7E 31 7A 14 */ add r17, r17, r15
+/* 80337734 00333394 3A 31 1D 05 */ addi r17, r17, 0x1d05
+/* 80337738 00333398 56 31 B8 3E */ rotlwi r17, r17, 0x17
+/* 8033773C 0033339C 7E 31 92 14 */ add r17, r17, r18
+/* 80337740 003333A0 7E 6F 8A 78 */ xor r15, r19, r17
+/* 80337744 003333A4 7D EF 92 78 */ xor r15, r15, r18
+/* 80337748 003333A8 7D F0 7A 14 */ add r15, r16, r15
+/* 8033774C 003333AC 7E 0F A2 14 */ add r16, r15, r20
+/* 80337750 003333B0 3A 10 D0 39 */ addi r16, r16, -12231
+/* 80337754 003333B4 56 0F 20 3E */ rotlwi r15, r16, 4
+/* 80337758 003333B8 7D EF 8A 14 */ add r15, r15, r17
+/* 8033775C 003333BC 7E 50 7A 78 */ xor r16, r18, r15
+/* 80337760 003333C0 7E 10 8A 78 */ xor r16, r16, r17
+/* 80337764 003333C4 7E 13 82 14 */ add r16, r19, r16
+/* 80337768 003333C8 7E 70 02 14 */ add r19, r16, r0
+/* 8033776C 003333CC 3A 73 99 E5 */ addi r19, r19, -26139
+/* 80337770 003333D0 56 60 58 3E */ rotlwi r0, r19, 0xb
+/* 80337774 003333D4 7C 00 7A 14 */ add r0, r0, r15
+/* 80337778 003333D8 7E 30 02 78 */ xor r16, r17, r0
+/* 8033777C 003333DC 7E 10 7A 78 */ xor r16, r16, r15
+/* 80337780 003333E0 7E 12 82 14 */ add r16, r18, r16
+/* 80337784 003333E4 7E 50 72 14 */ add r18, r16, r14
+/* 80337788 003333E8 3A 52 7C F8 */ addi r18, r18, 0x7cf8
+/* 8033778C 003333EC 56 52 80 3E */ rotlwi r18, r18, 0x10
+/* 80337790 003333F0 7E 52 02 14 */ add r18, r18, r0
+/* 80337794 003333F4 3D DB 43 2B */ addis r14, r27, 0x432b
+/* 80337798 003333F8 7D F3 92 78 */ xor r19, r15, r18
+/* 8033779C 003333FC 3E 19 F4 29 */ addis r16, r25, 0xf429
+/* 803377A0 00333400 7E 74 02 78 */ xor r20, r19, r0
+/* 803377A4 00333404 3D 8C AB 94 */ addis r12, r12, 0xab94
+/* 803377A8 00333408 7D F0 7A 14 */ add r15, r16, r15
+/* 803377AC 0033340C 3E 7C C4 AC */ addis r19, r28, 0xc4ac
+/* 803377B0 00333410 7E 11 A2 14 */ add r16, r17, r20
+/* 803377B4 00333414 7D CE 02 14 */ add r14, r14, r0
+/* 803377B8 00333418 7E 30 9A 14 */ add r17, r16, r19
+/* 803377BC 0033341C 3E 88 FF F0 */ addis r20, r8, 0xfff0
+/* 803377C0 00333420 3A 31 56 65 */ addi r17, r17, 0x5665
+/* 803377C4 00333424 3E 64 85 84 */ addis r19, r4, 0x8584
+/* 803377C8 00333428 56 30 B8 3E */ rotlwi r16, r17, 0x17
+/* 803377CC 0033342C 7D 8C 92 14 */ add r12, r12, r18
+/* 803377D0 00333430 7E 10 92 14 */ add r16, r16, r18
+/* 803377D4 00333434 3C E7 FC 94 */ addis r7, r7, 0xfc94
+/* 803377D8 00333438 7E 00 03 38 */ orc r0, r16, r0
+/* 803377DC 0033343C 3E DA 65 5B */ addis r22, r26, 0x655b
+/* 803377E0 00333440 7E 40 02 78 */ xor r0, r18, r0
+/* 803377E4 00333444 7C E7 82 14 */ add r7, r7, r16
+/* 803377E8 00333448 7D 0F 02 14 */ add r8, r15, r0
+/* 803377EC 0033344C 3E BF 8F 0D */ addis r21, r31, 0x8f0d
+/* 803377F0 00333450 39 E8 22 44 */ addi r15, r8, 0x2244
+/* 803377F4 00333454 3E 3E 6F A8 */ addis r17, r30, 0x6fa8
+/* 803377F8 00333458 55 E4 30 3E */ rotlwi r4, r15, 6
+/* 803377FC 0033345C 7C 84 82 14 */ add r4, r4, r16
+/* 80337800 00333460 7C 80 93 38 */ orc r0, r4, r18
+/* 80337804 00333464 7E 00 02 78 */ xor r0, r16, r0
+/* 80337808 00333468 7E D6 22 14 */ add r22, r22, r4
+/* 8033780C 0033346C 7D 0E 02 14 */ add r8, r14, r0
+/* 80337810 00333470 38 08 FF 97 */ addi r0, r8, -105
+/* 80337814 00333474 54 08 50 3E */ rotlwi r8, r0, 0xa
+/* 80337818 00333478 7D 08 22 14 */ add r8, r8, r4
+/* 8033781C 0033347C 7D 00 83 38 */ orc r0, r8, r16
+/* 80337820 00333480 7C 80 02 78 */ xor r0, r4, r0
+/* 80337824 00333484 7D F5 42 14 */ add r15, r21, r8
+/* 80337828 00333488 7D 8C 02 14 */ add r12, r12, r0
+/* 8033782C 0033348C 3A 4C 23 A7 */ addi r18, r12, 0x23a7
+/* 80337830 00333490 56 40 78 3E */ rotlwi r0, r18, 0xf
+/* 80337834 00333494 7C 00 42 14 */ add r0, r0, r8
+/* 80337838 00333498 7C 04 23 38 */ orc r4, r0, r4
+/* 8033783C 0033349C 7D 04 22 78 */ xor r4, r8, r4
+/* 80337840 003334A0 7D D4 02 14 */ add r14, r20, r0
+/* 80337844 003334A4 7C 87 22 14 */ add r4, r7, r4
+/* 80337848 003334A8 3A 04 A0 39 */ addi r16, r4, -24519
+/* 8033784C 003334AC 56 12 A8 3E */ rotlwi r18, r16, 0x15
+/* 80337850 003334B0 7E 52 02 14 */ add r18, r18, r0
+/* 80337854 003334B4 7E 44 43 38 */ orc r4, r18, r8
+/* 80337858 003334B8 7C 04 22 78 */ xor r4, r0, r4
+/* 8033785C 003334BC 7C F3 92 14 */ add r7, r19, r18
+/* 80337860 003334C0 7C 96 22 14 */ add r4, r22, r4
+/* 80337864 003334C4 38 84 59 C3 */ addi r4, r4, 0x59c3
+/* 80337868 003334C8 54 90 30 3E */ rotlwi r16, r4, 6
+/* 8033786C 003334CC 7E 10 92 14 */ add r16, r16, r18
+/* 80337870 003334D0 7E 00 03 38 */ orc r0, r16, r0
+/* 80337874 003334D4 7E 40 02 78 */ xor r0, r18, r0
+/* 80337878 003334D8 7D 91 82 14 */ add r12, r17, r16
+/* 8033787C 003334DC 7C 8F 02 14 */ add r4, r15, r0
+/* 80337880 003334E0 39 04 CC 92 */ addi r8, r4, -13166
+/* 80337884 003334E4 55 08 50 3E */ rotlwi r8, r8, 0xa
+/* 80337888 003334E8 7D 08 82 14 */ add r8, r8, r16
+/* 8033788C 003334EC 7D 00 93 38 */ orc r0, r8, r18
+/* 80337890 003334F0 7E 00 02 78 */ xor r0, r16, r0
+/* 80337894 003334F4 7C 8E 02 14 */ add r4, r14, r0
+/* 80337898 003334F8 38 04 F4 7D */ addi r0, r4, -2947
+/* 8033789C 003334FC 54 04 78 3E */ rotlwi r4, r0, 0xf
+/* 803378A0 00333500 7C 84 42 14 */ add r4, r4, r8
+/* 803378A4 00333504 7C 80 83 38 */ orc r0, r4, r16
+/* 803378A8 00333508 7D 00 02 78 */ xor r0, r8, r0
+/* 803378AC 0033350C 7C E7 02 14 */ add r7, r7, r0
+/* 803378B0 00333510 3A 47 5D D1 */ addi r18, r7, 0x5dd1
+/* 803378B4 00333514 56 47 A8 3E */ rotlwi r7, r18, 0x15
+/* 803378B8 00333518 7C E7 22 14 */ add r7, r7, r4
+/* 803378BC 0033351C 7C E0 43 38 */ orc r0, r7, r8
+/* 803378C0 00333520 7C 80 02 78 */ xor r0, r4, r0
+/* 803378C4 00333524 7D 8C 02 14 */ add r12, r12, r0
+/* 803378C8 00333528 3A 0C 7E 4F */ addi r16, r12, 0x7e4f
+/* 803378CC 0033352C 56 00 30 3E */ rotlwi r0, r16, 6
+/* 803378D0 00333530 7C 00 3A 14 */ add r0, r0, r7
+/* 803378D4 00333534 3D 89 FE 2D */ addis r12, r9, 0xfe2d
+/* 803378D8 00333538 7C 09 23 38 */ orc r9, r0, r4
+/* 803378DC 0033353C 7D 0C 42 14 */ add r8, r12, r8
+/* 803378E0 00333540 3D 85 A3 01 */ addis r12, r5, 0xa301
+/* 803378E4 00333544 7C E5 4A 78 */ xor r5, r7, r9
+/* 803378E8 00333548 7D 08 2A 14 */ add r8, r8, r5
+/* 803378EC 0033354C 3D 3D 4E 08 */ addis r9, r29, 0x4e08
+/* 803378F0 00333550 39 08 E6 E0 */ addi r8, r8, -6432
+/* 803378F4 00333554 3C AA F7 53 */ addis r5, r10, 0xf753
+/* 803378F8 00333558 55 08 50 3E */ rotlwi r8, r8, 0xa
+/* 803378FC 0033355C 7D 4C 22 14 */ add r10, r12, r4
+/* 80337900 00333560 7D 08 02 14 */ add r8, r8, r0
+/* 80337904 00333564 3C 86 BD 3B */ addis r4, r6, 0xbd3b
+/* 80337908 00333568 7D 06 3B 38 */ orc r6, r8, r7
+/* 8033790C 0033356C 7E 05 02 14 */ add r16, r5, r0
+/* 80337910 00333570 7C 05 32 78 */ xor r5, r0, r6
+/* 80337914 00333574 7D E4 42 14 */ add r15, r4, r8
+/* 80337918 00333578 7C 8A 2A 14 */ add r4, r10, r5
+/* 8033791C 0033357C 7E 29 3A 14 */ add r17, r9, r7
+/* 80337920 00333580 38 84 43 14 */ addi r4, r4, 0x4314
+/* 80337924 00333584 3D 8B EB 87 */ addis r12, r11, 0xeb87
+/* 80337928 00333588 54 92 78 3E */ rotlwi r18, r4, 0xf
+/* 8033792C 0033358C 81 63 00 00 */ lwz r11, 0(r3)
+/* 80337930 00333590 7E 52 42 14 */ add r18, r18, r8
+/* 80337934 00333594 3C BC 2A D8 */ addis r5, r28, 0x2ad8
+/* 80337938 00333598 7E 40 03 38 */ orc r0, r18, r0
+/* 8033793C 0033359C 80 C3 00 0C */ lwz r6, 0xc(r3)
+/* 80337940 003335A0 7D 00 02 78 */ xor r0, r8, r0
+/* 80337944 003335A4 7D C5 92 14 */ add r14, r5, r18
+/* 80337948 003335A8 7C 91 02 14 */ add r4, r17, r0
+/* 8033794C 003335AC 81 23 00 08 */ lwz r9, 8(r3)
+/* 80337950 003335B0 38 E4 11 A1 */ addi r7, r4, 0x11a1
+/* 80337954 003335B4 81 43 00 04 */ lwz r10, 4(r3)
+/* 80337958 003335B8 54 F1 A8 3E */ rotlwi r17, r7, 0x15
+/* 8033795C 003335BC 38 80 00 00 */ li r4, 0
+/* 80337960 003335C0 7E 31 92 14 */ add r17, r17, r18
+/* 80337964 003335C4 38 A0 00 40 */ li r5, 0x40
+/* 80337968 003335C8 7E 20 43 38 */ orc r0, r17, r8
+/* 8033796C 003335CC 7E 40 02 78 */ xor r0, r18, r0
+/* 80337970 003335D0 7C EC 8A 14 */ add r7, r12, r17
+/* 80337974 003335D4 7D 10 02 14 */ add r8, r16, r0
+/* 80337978 003335D8 38 08 7E 82 */ addi r0, r8, 0x7e82
+/* 8033797C 003335DC 54 0C 30 3E */ rotlwi r12, r0, 6
+/* 80337980 003335E0 7D 8C 8A 14 */ add r12, r12, r17
+/* 80337984 003335E4 7D 80 93 38 */ orc r0, r12, r18
+/* 80337988 003335E8 7E 28 02 78 */ xor r8, r17, r0
+/* 8033798C 003335EC 7D 0F 42 14 */ add r8, r15, r8
+/* 80337990 003335F0 7C 0B 62 14 */ add r0, r11, r12
+/* 80337994 003335F4 39 08 F2 35 */ addi r8, r8, -3531
+/* 80337998 003335F8 90 03 00 00 */ stw r0, 0(r3)
+/* 8033799C 003335FC 55 0B 50 3E */ rotlwi r11, r8, 0xa
+/* 803379A0 00333600 7D 6B 62 14 */ add r11, r11, r12
+/* 803379A4 00333604 7D 60 8B 38 */ orc r0, r11, r17
+/* 803379A8 00333608 7D 88 02 78 */ xor r8, r12, r0
+/* 803379AC 0033360C 7C 06 5A 14 */ add r0, r6, r11
+/* 803379B0 00333610 7C CE 42 14 */ add r6, r14, r8
+/* 803379B4 00333614 90 03 00 0C */ stw r0, 0xc(r3)
+/* 803379B8 00333618 3A 46 D2 BB */ addi r18, r6, -11589
+/* 803379BC 0033361C 56 48 78 3E */ rotlwi r8, r18, 0xf
+/* 803379C0 00333620 7D 08 5A 14 */ add r8, r8, r11
+/* 803379C4 00333624 7D 00 63 38 */ orc r0, r8, r12
+/* 803379C8 00333628 7D 66 02 78 */ xor r6, r11, r0
+/* 803379CC 0033362C 7C C7 32 14 */ add r6, r7, r6
+/* 803379D0 00333630 7C 09 42 14 */ add r0, r9, r8
+/* 803379D4 00333634 3A 26 D3 91 */ addi r17, r6, -11375
+/* 803379D8 00333638 90 03 00 08 */ stw r0, 8(r3)
+/* 803379DC 0033363C 56 20 A8 3E */ rotlwi r0, r17, 0x15
+/* 803379E0 00333640 7C 00 42 14 */ add r0, r0, r8
+/* 803379E4 00333644 7C 0A 02 14 */ add r0, r10, r0
+/* 803379E8 00333648 90 03 00 04 */ stw r0, 4(r3)
+/* 803379EC 0033364C 38 61 00 08 */ addi r3, r1, 8
+/* 803379F0 00333650 4B CC C7 15 */ bl memset
+/* 803379F4 00333654 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 803379F8 00333658 4B E8 F7 49 */ bl __restore_gpr
+/* 803379FC 0033365C 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 80337A00 00333660 7C 08 03 A6 */ mtlr r0
+/* 80337A04 00333664 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 80337A08 00333668 4E 80 00 20 */ blr
+
+.global MD5Digest
+MD5Digest:
+/* 80337A0C 0033366C 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 80337A10 00333670 7C 08 02 A6 */ mflr r0
+/* 80337A14 00333674 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 80337A18 00333678 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 80337A1C 0033367C 4B E8 F7 01 */ bl _savegpr_24
+/* 80337A20 00333680 3D 20 67 45 */ lis r9, 0x67452301@ha
+/* 80337A24 00333684 3D 00 EF CE */ lis r8, 0xEFCDAB89@ha
+/* 80337A28 00333688 39 40 00 00 */ li r10, 0
+/* 80337A2C 0033368C 3C E0 98 BB */ lis r7, 0x98BADCFE@ha
+/* 80337A30 00333690 3C C0 10 32 */ lis r6, 0x10325476@ha
+/* 80337A34 00333694 39 29 23 01 */ addi r9, r9, 0x67452301@l
+/* 80337A38 00333698 38 06 54 76 */ addi r0, r6, 0x10325476@l
+/* 80337A3C 0033369C 39 08 AB 89 */ addi r8, r8, 0xEFCDAB89@l
+/* 80337A40 003336A0 38 E7 DC FE */ addi r7, r7, 0x98BADCFE@l
+/* 80337A44 003336A4 7C 86 23 78 */ mr r6, r4
+/* 80337A48 003336A8 7C BF 2B 78 */ mr r31, r5
+/* 80337A4C 003336AC 7C 64 1B 78 */ mr r4, r3
+/* 80337A50 003336B0 91 41 00 34 */ stw r10, 0x34(r1)
+/* 80337A54 003336B4 7C C5 33 78 */ mr r5, r6
+/* 80337A58 003336B8 38 61 00 20 */ addi r3, r1, 0x20
+/* 80337A5C 003336BC 91 41 00 30 */ stw r10, 0x30(r1)
+/* 80337A60 003336C0 91 21 00 20 */ stw r9, 0x20(r1)
+/* 80337A64 003336C4 91 01 00 24 */ stw r8, 0x24(r1)
+/* 80337A68 003336C8 90 E1 00 28 */ stw r7, 0x28(r1)
+/* 80337A6C 003336CC 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 80337A70 003336D0 4B FF F2 75 */ bl MD5Update
+/* 80337A74 003336D4 81 01 00 30 */ lwz r8, 0x30(r1)
+/* 80337A78 003336D8 3C 80 80 45 */ lis r4, lbl_8044A3E0@ha
+/* 80337A7C 003336DC 38 61 00 20 */ addi r3, r1, 0x20
+/* 80337A80 003336E0 55 09 EE BE */ rlwinm r9, r8, 0x1d, 0x1a, 0x1f
+/* 80337A84 003336E4 55 07 C6 3E */ rlwinm r7, r8, 0x18, 0x18, 0x1f
+/* 80337A88 003336E8 55 06 86 3E */ rlwinm r6, r8, 0x10, 0x18, 0x1f
+/* 80337A8C 003336EC 55 00 46 3E */ srwi r0, r8, 0x18
+/* 80337A90 003336F0 99 01 00 08 */ stb r8, 8(r1)
+/* 80337A94 003336F4 28 09 00 38 */ cmplwi r9, 0x38
+/* 80337A98 003336F8 81 01 00 34 */ lwz r8, 0x34(r1)
+/* 80337A9C 003336FC 38 84 A3 E0 */ addi r4, r4, lbl_8044A3E0@l
+/* 80337AA0 00333700 98 E1 00 09 */ stb r7, 9(r1)
+/* 80337AA4 00333704 20 A9 00 78 */ subfic r5, r9, 0x78
+/* 80337AA8 00333708 55 07 C6 3E */ rlwinm r7, r8, 0x18, 0x18, 0x1f
+/* 80337AAC 0033370C 98 C1 00 0A */ stb r6, 0xa(r1)
+/* 80337AB0 00333710 55 06 86 3E */ rlwinm r6, r8, 0x10, 0x18, 0x1f
+/* 80337AB4 00333714 98 01 00 0B */ stb r0, 0xb(r1)
+/* 80337AB8 00333718 55 00 46 3E */ srwi r0, r8, 0x18
+/* 80337ABC 0033371C 99 01 00 0C */ stb r8, 0xc(r1)
+/* 80337AC0 00333720 98 E1 00 0D */ stb r7, 0xd(r1)
+/* 80337AC4 00333724 98 C1 00 0E */ stb r6, 0xe(r1)
+/* 80337AC8 00333728 98 01 00 0F */ stb r0, 0xf(r1)
+/* 80337ACC 0033372C 40 80 00 08 */ bge lbl_80337AD4
+/* 80337AD0 00333730 20 A9 00 38 */ subfic r5, r9, 0x38
+lbl_80337AD4:
+/* 80337AD4 00333734 4B FF F2 11 */ bl MD5Update
+/* 80337AD8 00333738 38 61 00 20 */ addi r3, r1, 0x20
+/* 80337ADC 0033373C 38 81 00 08 */ addi r4, r1, 8
+/* 80337AE0 00333740 38 A0 00 08 */ li r5, 8
+/* 80337AE4 00333744 4B FF F2 01 */ bl MD5Update
+/* 80337AE8 00333748 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 80337AEC 0033374C 38 61 00 20 */ addi r3, r1, 0x20
+/* 80337AF0 00333750 83 41 00 24 */ lwz r26, 0x24(r1)
+/* 80337AF4 00333754 38 80 00 00 */ li r4, 0
+/* 80337AF8 00333758 83 21 00 28 */ lwz r25, 0x28(r1)
+/* 80337AFC 0033375C 54 BB C6 3E */ rlwinm r27, r5, 0x18, 0x18, 0x1f
+/* 80337B00 00333760 83 01 00 2C */ lwz r24, 0x2c(r1)
+/* 80337B04 00333764 54 BC 86 3E */ rlwinm r28, r5, 0x10, 0x18, 0x1f
+/* 80337B08 00333768 54 BD 46 3E */ srwi r29, r5, 0x18
+/* 80337B0C 0033376C 57 5E C6 3E */ rlwinm r30, r26, 0x18, 0x18, 0x1f
+/* 80337B10 00333770 57 4C 86 3E */ rlwinm r12, r26, 0x10, 0x18, 0x1f
+/* 80337B14 00333774 57 4B 46 3E */ srwi r11, r26, 0x18
+/* 80337B18 00333778 57 2A C6 3E */ rlwinm r10, r25, 0x18, 0x18, 0x1f
+/* 80337B1C 0033377C 57 29 86 3E */ rlwinm r9, r25, 0x10, 0x18, 0x1f
+/* 80337B20 00333780 57 28 46 3E */ srwi r8, r25, 0x18
+/* 80337B24 00333784 57 07 C6 3E */ rlwinm r7, r24, 0x18, 0x18, 0x1f
+/* 80337B28 00333788 57 06 86 3E */ rlwinm r6, r24, 0x10, 0x18, 0x1f
+/* 80337B2C 0033378C 57 00 46 3E */ srwi r0, r24, 0x18
+/* 80337B30 00333790 98 A1 00 10 */ stb r5, 0x10(r1)
+/* 80337B34 00333794 38 A0 00 58 */ li r5, 0x58
+/* 80337B38 00333798 9B 61 00 11 */ stb r27, 0x11(r1)
+/* 80337B3C 0033379C 9B 81 00 12 */ stb r28, 0x12(r1)
+/* 80337B40 003337A0 9B A1 00 13 */ stb r29, 0x13(r1)
+/* 80337B44 003337A4 9B 41 00 14 */ stb r26, 0x14(r1)
+/* 80337B48 003337A8 9B C1 00 15 */ stb r30, 0x15(r1)
+/* 80337B4C 003337AC 99 81 00 16 */ stb r12, 0x16(r1)
+/* 80337B50 003337B0 99 61 00 17 */ stb r11, 0x17(r1)
+/* 80337B54 003337B4 9B 21 00 18 */ stb r25, 0x18(r1)
+/* 80337B58 003337B8 99 41 00 19 */ stb r10, 0x19(r1)
+/* 80337B5C 003337BC 99 21 00 1A */ stb r9, 0x1a(r1)
+/* 80337B60 003337C0 99 01 00 1B */ stb r8, 0x1b(r1)
+/* 80337B64 003337C4 9B 01 00 1C */ stb r24, 0x1c(r1)
+/* 80337B68 003337C8 98 E1 00 1D */ stb r7, 0x1d(r1)
+/* 80337B6C 003337CC 98 C1 00 1E */ stb r6, 0x1e(r1)
+/* 80337B70 003337D0 98 01 00 1F */ stb r0, 0x1f(r1)
+/* 80337B74 003337D4 4B CC C5 91 */ bl memset
+/* 80337B78 003337D8 3B 81 00 10 */ addi r28, r1, 0x10
+/* 80337B7C 003337DC 3B 60 00 00 */ li r27, 0
+/* 80337B80 003337E0 3B A0 00 00 */ li r29, 0
+lbl_80337B84:
+/* 80337B84 003337E4 88 BC 00 00 */ lbz r5, 0(r28)
+/* 80337B88 003337E8 7C 7F EA 14 */ add r3, r31, r29
+/* 80337B8C 003337EC 38 8D 8F 20 */ addi r4, r13, lbl_8063E1E0-_SDA_BASE_
+/* 80337B90 003337F0 4C C6 31 82 */ crclr 6
+/* 80337B94 003337F4 4B E9 4F 69 */ bl sprintf
+/* 80337B98 003337F8 3B 7B 00 01 */ addi r27, r27, 1
+/* 80337B9C 003337FC 3B BD 00 02 */ addi r29, r29, 2
+/* 80337BA0 00333800 28 1B 00 10 */ cmplwi r27, 0x10
+/* 80337BA4 00333804 3B 9C 00 01 */ addi r28, r28, 1
+/* 80337BA8 00333808 41 80 FF DC */ blt lbl_80337B84
+/* 80337BAC 0033380C 39 61 00 A0 */ addi r11, r1, 0xa0
+/* 80337BB0 00333810 4B E8 F5 B9 */ bl _restgpr_24
+/* 80337BB4 00333814 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 80337BB8 00333818 7C 08 03 A6 */ mtlr r0
+/* 80337BBC 0033381C 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 80337BC0 00333820 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/natneg.s b/asm/SDK/DWC/gamespy/natneg.s new file mode 100644 index 0000000..a2ad575 --- /dev/null +++ b/asm/SDK/DWC/gamespy/natneg.s @@ -0,0 +1,1796 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global NNFreeNegotiateList
+NNFreeNegotiateList:
+/* 8035ABB4 00356814 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035ABB8 00356818 7C 08 02 A6 */ mflr r0
+/* 8035ABBC 0035681C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035ABC0 00356820 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035ABC4 00356824 2C 03 00 00 */ cmpwi r3, 0
+/* 8035ABC8 00356828 41 82 00 10 */ beq lbl_8035ABD8
+/* 8035ABCC 0035682C 4B FD B2 89 */ bl ArrayFree
+/* 8035ABD0 00356830 38 00 00 00 */ li r0, 0
+/* 8035ABD4 00356834 90 0D B1 50 */ stw r0, lbl_80640410-_SDA_BASE_(r13)
+lbl_8035ABD8:
+/* 8035ABD8 00356838 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035ABDC 0035683C 7C 08 03 A6 */ mtlr r0
+/* 8035ABE0 00356840 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035ABE4 00356844 4E 80 00 20 */ blr
+
+.global GetLocalIP_12389
+GetLocalIP_12389:
+/* 8035ABE8 00356848 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035ABEC 0035684C 7C 08 02 A6 */ mflr r0
+/* 8035ABF0 00356850 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035ABF4 00356854 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035ABF8 00356858 4B E6 C5 2D */ bl _savegpr_26
+/* 8035ABFC 0035685C 3B 40 00 00 */ li r26, 0
+/* 8035AC00 00356860 4B FD DC DD */ bl getlocalhost
+/* 8035AC04 00356864 2C 03 00 00 */ cmpwi r3, 0
+/* 8035AC08 00356868 7C 7E 1B 78 */ mr r30, r3
+/* 8035AC0C 0035686C 40 82 00 0C */ bne lbl_8035AC18
+/* 8035AC10 00356870 38 60 00 00 */ li r3, 0
+/* 8035AC14 00356874 48 00 00 58 */ b lbl_8035AC6C
+lbl_8035AC18:
+/* 8035AC18 00356878 3B A0 00 00 */ li r29, 0
+/* 8035AC1C 0035687C 3F E0 7F 00 */ lis r31, 0x7f00
+lbl_8035AC20:
+/* 8035AC20 00356880 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8035AC24 00356884 7F 63 E8 2E */ lwzx r27, r3, r29
+/* 8035AC28 00356888 2C 1B 00 00 */ cmpwi r27, 0
+/* 8035AC2C 0035688C 41 82 00 3C */ beq lbl_8035AC68
+/* 8035AC30 00356890 83 9B 00 00 */ lwz r28, 0(r27)
+/* 8035AC34 00356894 38 7F 00 01 */ addi r3, r31, 1
+/* 8035AC38 00356898 4B F9 C1 41 */ bl SOHtoNl
+/* 8035AC3C 0035689C 7C 1C 18 40 */ cmplw r28, r3
+/* 8035AC40 003568A0 41 82 00 20 */ beq lbl_8035AC60
+/* 8035AC44 003568A4 7F 9A E3 78 */ mr r26, r28
+/* 8035AC48 003568A8 7F 63 DB 78 */ mr r3, r27
+/* 8035AC4C 003568AC 4B FD DE 45 */ bl IsPrivateIP
+/* 8035AC50 003568B0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035AC54 003568B4 41 82 00 0C */ beq lbl_8035AC60
+/* 8035AC58 003568B8 7F 83 E3 78 */ mr r3, r28
+/* 8035AC5C 003568BC 48 00 00 10 */ b lbl_8035AC6C
+lbl_8035AC60:
+/* 8035AC60 003568C0 3B BD 00 04 */ addi r29, r29, 4
+/* 8035AC64 003568C4 4B FF FF BC */ b lbl_8035AC20
+lbl_8035AC68:
+/* 8035AC68 003568C8 7F 43 D3 78 */ mr r3, r26
+lbl_8035AC6C:
+/* 8035AC6C 003568CC 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035AC70 003568D0 4B E6 C5 01 */ bl _restgpr_26
+/* 8035AC74 003568D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035AC78 003568D8 7C 08 03 A6 */ mtlr r0
+/* 8035AC7C 003568DC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035AC80 003568E0 4E 80 00 20 */ blr
+
+.global StartReport
+StartReport:
+/* 8035AC84 003568E4 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 8035AC88 003568E8 7C 08 02 A6 */ mflr r0
+/* 8035AC8C 003568EC 2C 06 00 00 */ cmpwi r6, 0
+/* 8035AC90 003568F0 90 01 00 84 */ stw r0, 0x84(r1)
+/* 8035AC94 003568F4 93 E1 00 7C */ stw r31, 0x7c(r1)
+/* 8035AC98 003568F8 7C 7F 1B 78 */ mr r31, r3
+/* 8035AC9C 003568FC 93 C1 00 78 */ stw r30, 0x78(r1)
+/* 8035ACA0 00356900 93 A1 00 74 */ stw r29, 0x74(r1)
+/* 8035ACA4 00356904 7C 9D 23 78 */ mr r29, r4
+/* 8035ACA8 00356908 90 83 00 44 */ stw r4, 0x44(r3)
+/* 8035ACAC 0035690C 90 A3 00 48 */ stw r5, 0x48(r3)
+/* 8035ACB0 00356910 41 82 00 14 */ beq lbl_8035ACC4
+/* 8035ACB4 00356914 7C C4 33 78 */ mr r4, r6
+/* 8035ACB8 00356918 38 A0 00 08 */ li r5, 8
+/* 8035ACBC 0035691C 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035ACC0 00356920 4B CA 93 41 */ bl memcpy
+lbl_8035ACC4:
+/* 8035ACC4 00356924 38 1D FF FF */ addi r0, r29, -1
+/* 8035ACC8 00356928 28 00 00 01 */ cmplwi r0, 1
+/* 8035ACCC 0035692C 41 81 00 AC */ bgt lbl_8035AD78
+/* 8035ACD0 00356930 81 9F 00 3C */ lwz r12, 0x3c(r31)
+/* 8035ACD4 00356934 38 00 00 03 */ li r0, 3
+/* 8035ACD8 00356938 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 8035ACDC 0035693C 38 BF 00 4C */ addi r5, r31, 0x4c
+/* 8035ACE0 00356940 80 7F 00 44 */ lwz r3, 0x44(r31)
+/* 8035ACE4 00356944 80 9F 00 48 */ lwz r4, 0x48(r31)
+/* 8035ACE8 00356948 80 DF 00 40 */ lwz r6, 0x40(r31)
+/* 8035ACEC 0035694C 7D 89 03 A6 */ mtctr r12
+/* 8035ACF0 00356950 4E 80 04 21 */ bctrl
+/* 8035ACF4 00356954 80 0D B1 50 */ lwz r0, lbl_80640410-_SDA_BASE_(r13)
+/* 8035ACF8 00356958 83 DF 00 08 */ lwz r30, 8(r31)
+/* 8035ACFC 0035695C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035AD00 00356960 40 82 00 0C */ bne lbl_8035AD0C
+/* 8035AD04 00356964 3B C0 00 00 */ li r30, 0
+/* 8035AD08 00356968 48 00 00 44 */ b lbl_8035AD4C
+lbl_8035AD0C:
+/* 8035AD0C 0035696C 3B E0 00 00 */ li r31, 0
+/* 8035AD10 00356970 48 00 00 28 */ b lbl_8035AD38
+lbl_8035AD14:
+/* 8035AD14 00356974 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035AD18 00356978 7F E4 FB 78 */ mr r4, r31
+/* 8035AD1C 0035697C 4B FD B1 D5 */ bl ArrayNth
+/* 8035AD20 00356980 80 03 00 08 */ lwz r0, 8(r3)
+/* 8035AD24 00356984 7C 00 F0 00 */ cmpw r0, r30
+/* 8035AD28 00356988 40 82 00 0C */ bne lbl_8035AD34
+/* 8035AD2C 0035698C 7C 7E 1B 78 */ mr r30, r3
+/* 8035AD30 00356990 48 00 00 1C */ b lbl_8035AD4C
+lbl_8035AD34:
+/* 8035AD34 00356994 3B FF 00 01 */ addi r31, r31, 1
+lbl_8035AD38:
+/* 8035AD38 00356998 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035AD3C 0035699C 4B FD B1 AD */ bl ArrayLength
+/* 8035AD40 003569A0 7C 1F 18 00 */ cmpw r31, r3
+/* 8035AD44 003569A4 41 80 FF D0 */ blt lbl_8035AD14
+/* 8035AD48 003569A8 3B C0 00 00 */ li r30, 0
+lbl_8035AD4C:
+/* 8035AD4C 003569AC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035AD50 003569B0 41 82 01 0C */ beq lbl_8035AE5C
+/* 8035AD54 003569B4 80 7E 00 00 */ lwz r3, 0(r30)
+/* 8035AD58 003569B8 2C 03 FF FF */ cmpwi r3, -1
+/* 8035AD5C 003569BC 41 82 00 08 */ beq lbl_8035AD64
+/* 8035AD60 003569C0 4B FD CE 9D */ bl closesocket
+lbl_8035AD64:
+/* 8035AD64 003569C4 38 60 FF FF */ li r3, -1
+/* 8035AD68 003569C8 38 00 00 04 */ li r0, 4
+/* 8035AD6C 003569CC 90 7E 00 00 */ stw r3, 0(r30)
+/* 8035AD70 003569D0 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 8035AD74 003569D4 48 00 00 E8 */ b lbl_8035AE5C
+lbl_8035AD78:
+/* 8035AD78 003569D8 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035AD7C 003569DC 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035AD80 003569E0 38 A0 00 06 */ li r5, 6
+/* 8035AD84 003569E4 4B CA 92 7D */ bl memcpy
+/* 8035AD88 003569E8 38 60 00 03 */ li r3, 3
+/* 8035AD8C 003569EC 38 00 00 0D */ li r0, 0xd
+/* 8035AD90 003569F0 98 61 00 1E */ stb r3, 0x1e(r1)
+/* 8035AD94 003569F4 98 01 00 1F */ stb r0, 0x1f(r1)
+/* 8035AD98 003569F8 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8035AD9C 003569FC 4B F9 BF DD */ bl SOHtoNl
+/* 8035ADA0 00356A00 90 61 00 20 */ stw r3, 0x20(r1)
+/* 8035ADA4 00356A04 3F C0 80 61 */ lis r30, lbl_80610AF8@ha
+/* 8035ADA8 00356A08 80 8D 94 B8 */ lwz r4, lbl_8063E778-_SDA_BASE_(r13)
+/* 8035ADAC 00356A0C 38 7E 0A F8 */ addi r3, r30, lbl_80610AF8@l
+/* 8035ADB0 00356A10 80 BF 00 0C */ lwz r5, 0xc(r31)
+/* 8035ADB4 00356A14 80 0D B1 64 */ lwz r0, lbl_80640424-_SDA_BASE_(r13)
+/* 8035ADB8 00356A18 98 A1 00 25 */ stb r5, 0x25(r1)
+/* 8035ADBC 00356A1C 80 BF 00 44 */ lwz r5, 0x44(r31)
+/* 8035ADC0 00356A20 7C A5 00 34 */ cntlzw r5, r5
+/* 8035ADC4 00356A24 90 81 00 27 */ stw r4, 0x27(r1)
+/* 8035ADC8 00356A28 54 A4 DE 3E */ rlwinm r4, r5, 0x1b, 0x18, 0x1f
+/* 8035ADCC 00356A2C 98 81 00 26 */ stb r4, 0x26(r1)
+/* 8035ADD0 00356A30 90 01 00 2B */ stw r0, 0x2b(r1)
+/* 8035ADD4 00356A34 4B E6 BD 91 */ bl strlen
+/* 8035ADD8 00356A38 2C 03 00 00 */ cmpwi r3, 0
+/* 8035ADDC 00356A3C 41 82 00 14 */ beq lbl_8035ADF0
+/* 8035ADE0 00356A40 38 61 00 2F */ addi r3, r1, 0x2f
+/* 8035ADE4 00356A44 38 9E 0A F8 */ addi r4, r30, 0xaf8
+/* 8035ADE8 00356A48 38 A0 00 32 */ li r5, 0x32
+/* 8035ADEC 00356A4C 4B CA 92 15 */ bl memcpy
+lbl_8035ADF0:
+/* 8035ADF0 00356A50 80 0D B1 54 */ lwz r0, lbl_80640414-_SDA_BASE_(r13)
+/* 8035ADF4 00356A54 38 61 00 08 */ addi r3, r1, 8
+/* 8035ADF8 00356A58 90 01 00 08 */ stw r0, 8(r1)
+/* 8035ADFC 00356A5C 4B F9 BF 1D */ bl SOInetNtoA
+/* 8035AE00 00356A60 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8035AE04 00356A64 38 00 00 02 */ li r0, 2
+/* 8035AE08 00356A68 83 CD B1 54 */ lwz r30, lbl_80640414-_SDA_BASE_(r13)
+/* 8035AE0C 00356A6C 38 60 6C FD */ li r3, 0x6cfd
+/* 8035AE10 00356A70 98 01 00 11 */ stb r0, 0x11(r1)
+/* 8035AE14 00356A74 4B F9 BF 69 */ bl SOHtoNs
+/* 8035AE18 00356A78 B0 61 00 12 */ sth r3, 0x12(r1)
+/* 8035AE1C 00356A7C 7F A3 EB 78 */ mr r3, r29
+/* 8035AE20 00356A80 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035AE24 00356A84 38 E1 00 10 */ addi r7, r1, 0x10
+/* 8035AE28 00356A88 93 C1 00 14 */ stw r30, 0x14(r1)
+/* 8035AE2C 00356A8C 38 A0 00 49 */ li r5, 0x49
+/* 8035AE30 00356A90 38 C0 00 00 */ li r6, 0
+/* 8035AE34 00356A94 39 00 00 08 */ li r8, 8
+/* 8035AE38 00356A98 4B FD D0 5D */ bl sendto
+/* 8035AE3C 00356A9C 3B C0 00 05 */ li r30, 5
+/* 8035AE40 00356AA0 93 DF 00 10 */ stw r30, 0x10(r31)
+/* 8035AE44 00356AA4 4B FD E1 95 */ bl current_time
+/* 8035AE48 00356AA8 38 63 03 E8 */ addi r3, r3, 0x3e8
+/* 8035AE4C 00356AAC 38 00 00 00 */ li r0, 0
+/* 8035AE50 00356AB0 90 7F 00 2C */ stw r3, 0x2c(r31)
+/* 8035AE54 00356AB4 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 8035AE58 00356AB8 93 DF 00 28 */ stw r30, 0x28(r31)
+lbl_8035AE5C:
+/* 8035AE5C 00356ABC 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 8035AE60 00356AC0 83 E1 00 7C */ lwz r31, 0x7c(r1)
+/* 8035AE64 00356AC4 83 C1 00 78 */ lwz r30, 0x78(r1)
+/* 8035AE68 00356AC8 83 A1 00 74 */ lwz r29, 0x74(r1)
+/* 8035AE6C 00356ACC 7C 08 03 A6 */ mtlr r0
+/* 8035AE70 00356AD0 38 21 00 80 */ addi r1, r1, 0x80
+/* 8035AE74 00356AD4 4E 80 00 20 */ blr
+
+.global SendInitPackets
+SendInitPackets:
+/* 8035AE78 00356AD8 94 21 FF 40 */ stwu r1, -0xc0(r1)
+/* 8035AE7C 00356ADC 7C 08 02 A6 */ mflr r0
+/* 8035AE80 00356AE0 90 01 00 C4 */ stw r0, 0xc4(r1)
+/* 8035AE84 00356AE4 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 8035AE88 00356AE8 4B E6 C2 9D */ bl _savegpr_26
+/* 8035AE8C 00356AEC 3B E1 00 48 */ addi r31, r1, 0x48
+/* 8035AE90 00356AF0 7C 7D 1B 78 */ mr r29, r3
+/* 8035AE94 00356AF4 7F E3 FB 78 */ mr r3, r31
+/* 8035AE98 00356AF8 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035AE9C 00356AFC 38 A0 00 06 */ li r5, 6
+/* 8035AEA0 00356B00 4B CA 91 61 */ bl memcpy
+/* 8035AEA4 00356B04 38 00 00 03 */ li r0, 3
+/* 8035AEA8 00356B08 3B 60 00 00 */ li r27, 0
+/* 8035AEAC 00356B0C 98 01 00 4E */ stb r0, 0x4e(r1)
+/* 8035AEB0 00356B10 9B 61 00 4F */ stb r27, 0x4f(r1)
+/* 8035AEB4 00356B14 80 7D 00 08 */ lwz r3, 8(r29)
+/* 8035AEB8 00356B18 4B F9 BE C1 */ bl SOHtoNl
+/* 8035AEBC 00356B1C 90 61 00 50 */ stw r3, 0x50(r1)
+/* 8035AEC0 00356B20 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8035AEC4 00356B24 98 01 00 55 */ stb r0, 0x55(r1)
+/* 8035AEC8 00356B28 80 9D 00 04 */ lwz r4, 4(r29)
+/* 8035AECC 00356B2C 20 64 FF FF */ subfic r3, r4, -1
+/* 8035AED0 00356B30 38 04 00 01 */ addi r0, r4, 1
+/* 8035AED4 00356B34 7C 60 03 78 */ or r0, r3, r0
+/* 8035AED8 00356B38 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035AEDC 00356B3C 98 01 00 56 */ stb r0, 0x56(r1)
+/* 8035AEE0 00356B40 4B FF FD 09 */ bl GetLocalIP_12389
+/* 8035AEE4 00356B44 4B F9 BE 89 */ bl SONtoHl
+/* 8035AEE8 00356B48 54 64 46 3E */ srwi r4, r3, 0x18
+/* 8035AEEC 00356B4C 54 65 86 3E */ rlwinm r5, r3, 0x10, 0x18, 0x1f
+/* 8035AEF0 00356B50 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f
+/* 8035AEF4 00356B54 98 61 00 5A */ stb r3, 0x5a(r1)
+/* 8035AEF8 00356B58 3F 80 80 61 */ lis r28, lbl_80610AF8@ha
+/* 8035AEFC 00356B5C 38 61 00 5D */ addi r3, r1, 0x5d
+/* 8035AF00 00356B60 98 81 00 57 */ stb r4, 0x57(r1)
+/* 8035AF04 00356B64 38 9C 0A F8 */ addi r4, r28, lbl_80610AF8@l
+/* 8035AF08 00356B68 98 A1 00 58 */ stb r5, 0x58(r1)
+/* 8035AF0C 00356B6C 98 01 00 59 */ stb r0, 0x59(r1)
+/* 8035AF10 00356B70 9B 61 00 5B */ stb r27, 0x5b(r1)
+/* 8035AF14 00356B74 9B 61 00 5C */ stb r27, 0x5c(r1)
+/* 8035AF18 00356B78 4B E7 33 B9 */ bl strcpy
+/* 8035AF1C 00356B7C 38 7C 0A F8 */ addi r3, r28, 0xaf8
+/* 8035AF20 00356B80 4B E6 BC 45 */ bl strlen
+/* 8035AF24 00356B84 88 01 00 56 */ lbz r0, 0x56(r1)
+/* 8035AF28 00356B88 3B C3 00 16 */ addi r30, r3, 0x16
+/* 8035AF2C 00356B8C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035AF30 00356B90 41 82 00 60 */ beq lbl_8035AF90
+/* 8035AF34 00356B94 80 1D 00 14 */ lwz r0, 0x14(r29)
+/* 8035AF38 00356B98 2C 00 00 00 */ cmpwi r0, 0
+/* 8035AF3C 00356B9C 40 82 00 54 */ bne lbl_8035AF90
+/* 8035AF40 00356BA0 80 0D B1 54 */ lwz r0, lbl_80640414-_SDA_BASE_(r13)
+/* 8035AF44 00356BA4 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035AF48 00356BA8 9B 61 00 54 */ stb r27, 0x54(r1)
+/* 8035AF4C 00356BAC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8035AF50 00356BB0 4B F9 BD C9 */ bl SOInetNtoA
+/* 8035AF54 00356BB4 83 7D 00 04 */ lwz r27, 4(r29)
+/* 8035AF58 00356BB8 38 00 00 02 */ li r0, 2
+/* 8035AF5C 00356BBC 83 8D B1 54 */ lwz r28, lbl_80640414-_SDA_BASE_(r13)
+/* 8035AF60 00356BC0 38 60 6C FD */ li r3, 0x6cfd
+/* 8035AF64 00356BC4 98 01 00 41 */ stb r0, 0x41(r1)
+/* 8035AF68 00356BC8 4B F9 BE 15 */ bl SOHtoNs
+/* 8035AF6C 00356BCC B0 61 00 42 */ sth r3, 0x42(r1)
+/* 8035AF70 00356BD0 7F 63 DB 78 */ mr r3, r27
+/* 8035AF74 00356BD4 7F E4 FB 78 */ mr r4, r31
+/* 8035AF78 00356BD8 7F C5 F3 78 */ mr r5, r30
+/* 8035AF7C 00356BDC 93 81 00 44 */ stw r28, 0x44(r1)
+/* 8035AF80 00356BE0 38 E1 00 40 */ addi r7, r1, 0x40
+/* 8035AF84 00356BE4 38 C0 00 00 */ li r6, 0
+/* 8035AF88 00356BE8 39 00 00 08 */ li r8, 8
+/* 8035AF8C 00356BEC 4B FD CF 09 */ bl sendto
+lbl_8035AF90:
+/* 8035AF90 00356BF0 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 8035AF94 00356BF4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035AF98 00356BF8 40 82 00 58 */ bne lbl_8035AFF0
+/* 8035AF9C 00356BFC 80 0D B1 54 */ lwz r0, lbl_80640414-_SDA_BASE_(r13)
+/* 8035AFA0 00356C00 38 60 00 01 */ li r3, 1
+/* 8035AFA4 00356C04 98 61 00 54 */ stb r3, 0x54(r1)
+/* 8035AFA8 00356C08 38 61 00 14 */ addi r3, r1, 0x14
+/* 8035AFAC 00356C0C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035AFB0 00356C10 4B F9 BD 69 */ bl SOInetNtoA
+/* 8035AFB4 00356C14 83 7D 00 00 */ lwz r27, 0(r29)
+/* 8035AFB8 00356C18 38 00 00 02 */ li r0, 2
+/* 8035AFBC 00356C1C 83 8D B1 54 */ lwz r28, lbl_80640414-_SDA_BASE_(r13)
+/* 8035AFC0 00356C20 38 60 6C FD */ li r3, 0x6cfd
+/* 8035AFC4 00356C24 98 01 00 39 */ stb r0, 0x39(r1)
+/* 8035AFC8 00356C28 4B F9 BD B5 */ bl SOHtoNs
+/* 8035AFCC 00356C2C B0 61 00 3A */ sth r3, 0x3a(r1)
+/* 8035AFD0 00356C30 7F 63 DB 78 */ mr r3, r27
+/* 8035AFD4 00356C34 7F E4 FB 78 */ mr r4, r31
+/* 8035AFD8 00356C38 7F C5 F3 78 */ mr r5, r30
+/* 8035AFDC 00356C3C 93 81 00 3C */ stw r28, 0x3c(r1)
+/* 8035AFE0 00356C40 38 E1 00 38 */ addi r7, r1, 0x38
+/* 8035AFE4 00356C44 38 C0 00 00 */ li r6, 0
+/* 8035AFE8 00356C48 39 00 00 08 */ li r8, 8
+/* 8035AFEC 00356C4C 4B FD CE A9 */ bl sendto
+lbl_8035AFF0:
+/* 8035AFF0 00356C50 88 01 00 56 */ lbz r0, 0x56(r1)
+/* 8035AFF4 00356C54 2C 00 00 00 */ cmpwi r0, 0
+/* 8035AFF8 00356C58 41 82 00 0C */ beq lbl_8035B004
+/* 8035AFFC 00356C5C 80 7D 00 04 */ lwz r3, 4(r29)
+/* 8035B000 00356C60 48 00 00 08 */ b lbl_8035B008
+lbl_8035B004:
+/* 8035B004 00356C64 80 7D 00 00 */ lwz r3, 0(r29)
+lbl_8035B008:
+/* 8035B008 00356C68 38 00 00 08 */ li r0, 8
+/* 8035B00C 00356C6C 38 81 00 30 */ addi r4, r1, 0x30
+/* 8035B010 00356C70 90 01 00 08 */ stw r0, 8(r1)
+/* 8035B014 00356C74 38 A1 00 08 */ addi r5, r1, 8
+/* 8035B018 00356C78 4B FD CE FD */ bl getsockname
+/* 8035B01C 00356C7C 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B020 00356C80 40 82 00 0C */ bne lbl_8035B02C
+/* 8035B024 00356C84 38 60 00 00 */ li r3, 0
+/* 8035B028 00356C88 48 00 00 08 */ b lbl_8035B030
+lbl_8035B02C:
+/* 8035B02C 00356C8C A0 61 00 32 */ lhz r3, 0x32(r1)
+lbl_8035B030:
+/* 8035B030 00356C90 4B F9 BD 41 */ bl SONtoHs
+/* 8035B034 00356C94 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f
+/* 8035B038 00356C98 98 61 00 5C */ stb r3, 0x5c(r1)
+/* 8035B03C 00356C9C 98 01 00 5B */ stb r0, 0x5b(r1)
+/* 8035B040 00356CA0 80 1D 00 1C */ lwz r0, 0x1c(r29)
+/* 8035B044 00356CA4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B048 00356CA8 40 82 00 54 */ bne lbl_8035B09C
+/* 8035B04C 00356CAC 80 0D B1 58 */ lwz r0, lbl_80640418-_SDA_BASE_(r13)
+/* 8035B050 00356CB0 3B 80 00 02 */ li r28, 2
+/* 8035B054 00356CB4 9B 81 00 54 */ stb r28, 0x54(r1)
+/* 8035B058 00356CB8 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035B05C 00356CBC 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8035B060 00356CC0 4B F9 BC B9 */ bl SOInetNtoA
+/* 8035B064 00356CC4 83 7D 00 00 */ lwz r27, 0(r29)
+/* 8035B068 00356CC8 38 60 6C FD */ li r3, 0x6cfd
+/* 8035B06C 00356CCC 83 4D B1 58 */ lwz r26, lbl_80640418-_SDA_BASE_(r13)
+/* 8035B070 00356CD0 9B 81 00 29 */ stb r28, 0x29(r1)
+/* 8035B074 00356CD4 4B F9 BD 09 */ bl SOHtoNs
+/* 8035B078 00356CD8 B0 61 00 2A */ sth r3, 0x2a(r1)
+/* 8035B07C 00356CDC 7F 63 DB 78 */ mr r3, r27
+/* 8035B080 00356CE0 7F E4 FB 78 */ mr r4, r31
+/* 8035B084 00356CE4 7F C5 F3 78 */ mr r5, r30
+/* 8035B088 00356CE8 93 41 00 2C */ stw r26, 0x2c(r1)
+/* 8035B08C 00356CEC 38 E1 00 28 */ addi r7, r1, 0x28
+/* 8035B090 00356CF0 38 C0 00 00 */ li r6, 0
+/* 8035B094 00356CF4 39 00 00 08 */ li r8, 8
+/* 8035B098 00356CF8 4B FD CD FD */ bl sendto
+lbl_8035B09C:
+/* 8035B09C 00356CFC 80 1D 00 20 */ lwz r0, 0x20(r29)
+/* 8035B0A0 00356D00 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B0A4 00356D04 40 82 00 58 */ bne lbl_8035B0FC
+/* 8035B0A8 00356D08 80 0D B1 5C */ lwz r0, lbl_8064041C-_SDA_BASE_(r13)
+/* 8035B0AC 00356D0C 38 60 00 03 */ li r3, 3
+/* 8035B0B0 00356D10 98 61 00 54 */ stb r3, 0x54(r1)
+/* 8035B0B4 00356D14 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035B0B8 00356D18 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8035B0BC 00356D1C 4B F9 BC 5D */ bl SOInetNtoA
+/* 8035B0C0 00356D20 83 5D 00 00 */ lwz r26, 0(r29)
+/* 8035B0C4 00356D24 38 00 00 02 */ li r0, 2
+/* 8035B0C8 00356D28 83 6D B1 5C */ lwz r27, lbl_8064041C-_SDA_BASE_(r13)
+/* 8035B0CC 00356D2C 38 60 6C FD */ li r3, 0x6cfd
+/* 8035B0D0 00356D30 98 01 00 21 */ stb r0, 0x21(r1)
+/* 8035B0D4 00356D34 4B F9 BC A9 */ bl SOHtoNs
+/* 8035B0D8 00356D38 B0 61 00 22 */ sth r3, 0x22(r1)
+/* 8035B0DC 00356D3C 7F 43 D3 78 */ mr r3, r26
+/* 8035B0E0 00356D40 7F E4 FB 78 */ mr r4, r31
+/* 8035B0E4 00356D44 7F C5 F3 78 */ mr r5, r30
+/* 8035B0E8 00356D48 93 61 00 24 */ stw r27, 0x24(r1)
+/* 8035B0EC 00356D4C 38 E1 00 20 */ addi r7, r1, 0x20
+/* 8035B0F0 00356D50 38 C0 00 00 */ li r6, 0
+/* 8035B0F4 00356D54 39 00 00 08 */ li r8, 8
+/* 8035B0F8 00356D58 4B FD CD 9D */ bl sendto
+lbl_8035B0FC:
+/* 8035B0FC 00356D5C 4B FD DE DD */ bl current_time
+/* 8035B100 00356D60 38 63 01 F4 */ addi r3, r3, 0x1f4
+/* 8035B104 00356D64 38 00 00 0A */ li r0, 0xa
+/* 8035B108 00356D68 90 7D 00 2C */ stw r3, 0x2c(r29)
+/* 8035B10C 00356D6C 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 8035B110 00356D70 90 1D 00 28 */ stw r0, 0x28(r29)
+/* 8035B114 00356D74 4B E6 C0 5D */ bl _restgpr_26
+/* 8035B118 00356D78 80 01 00 C4 */ lwz r0, 0xc4(r1)
+/* 8035B11C 00356D7C 7C 08 03 A6 */ mtlr r0
+/* 8035B120 00356D80 38 21 00 C0 */ addi r1, r1, 0xc0
+/* 8035B124 00356D84 4E 80 00 20 */ blr
+
+.global CheckNatifyStatus
+CheckNatifyStatus:
+/* 8035B128 00356D88 94 21 FF 10 */ stwu r1, -0xf0(r1)
+/* 8035B12C 00356D8C 7C 08 02 A6 */ mflr r0
+/* 8035B130 00356D90 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B134 00356D94 90 01 00 F4 */ stw r0, 0xf4(r1)
+/* 8035B138 00356D98 93 E1 00 EC */ stw r31, 0xec(r1)
+/* 8035B13C 00356D9C 7C 7F 1B 78 */ mr r31, r3
+/* 8035B140 00356DA0 93 C1 00 E8 */ stw r30, 0xe8(r1)
+/* 8035B144 00356DA4 3B C0 00 01 */ li r30, 1
+/* 8035B148 00356DA8 41 82 00 C8 */ beq lbl_8035B210
+/* 8035B14C 00356DAC 4B FD DE 8D */ bl current_time
+/* 8035B150 00356DB0 80 0D B1 68 */ lwz r0, lbl_80640428-_SDA_BASE_(r13)
+/* 8035B154 00356DB4 7C 00 18 50 */ subf r0, r0, r3
+/* 8035B158 00356DB8 28 00 27 10 */ cmplwi r0, 0x2710
+/* 8035B15C 00356DBC 40 80 00 18 */ bge lbl_8035B174
+/* 8035B160 00356DC0 3C 80 80 62 */ lis r4, lbl_80621418@ha
+/* 8035B164 00356DC4 7F E3 FB 78 */ mr r3, r31
+/* 8035B168 00356DC8 38 84 14 18 */ addi r4, r4, lbl_80621418@l
+/* 8035B16C 00356DCC 4B FF F7 85 */ bl NatifyThink
+/* 8035B170 00356DD0 48 00 00 08 */ b lbl_8035B178
+lbl_8035B174:
+/* 8035B174 00356DD4 38 60 00 00 */ li r3, 0
+lbl_8035B178:
+/* 8035B178 00356DD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035B17C 00356DDC 7C 7E 1B 78 */ mr r30, r3
+/* 8035B180 00356DE0 40 82 00 90 */ bne lbl_8035B210
+/* 8035B184 00356DE4 3F E0 80 62 */ lis r31, lbl_80621418@ha
+/* 8035B188 00356DE8 38 7F 14 18 */ addi r3, r31, lbl_80621418@l
+/* 8035B18C 00356DEC 4B FF F7 69 */ bl DetermineNatType
+/* 8035B190 00356DF0 38 9F 14 18 */ addi r4, r31, 0x1418
+/* 8035B194 00356DF4 38 00 00 1B */ li r0, 0x1b
+/* 8035B198 00356DF8 38 C1 00 04 */ addi r6, r1, 4
+/* 8035B19C 00356DFC 38 A4 FF FC */ addi r5, r4, -4
+/* 8035B1A0 00356E00 7C 09 03 A6 */ mtctr r0
+lbl_8035B1A4:
+/* 8035B1A4 00356E04 80 85 00 04 */ lwz r4, 4(r5)
+/* 8035B1A8 00356E08 84 05 00 08 */ lwzu r0, 8(r5)
+/* 8035B1AC 00356E0C 90 86 00 04 */ stw r4, 4(r6)
+/* 8035B1B0 00356E10 94 06 00 08 */ stwu r0, 8(r6)
+/* 8035B1B4 00356E14 42 00 FF F0 */ bdnz lbl_8035B1A4
+/* 8035B1B8 00356E18 81 8D B1 6C */ lwz r12, lbl_8064042C-_SDA_BASE_(r13)
+/* 8035B1BC 00356E1C 38 81 00 08 */ addi r4, r1, 8
+/* 8035B1C0 00356E20 7D 89 03 A6 */ mtctr r12
+/* 8035B1C4 00356E24 4E 80 04 21 */ bctrl
+/* 8035B1C8 00356E28 3C A0 80 62 */ lis r5, lbl_80621418@ha
+/* 8035B1CC 00356E2C 80 6D 94 B0 */ lwz r3, lbl_8063E770-_SDA_BASE_(r13)
+/* 8035B1D0 00356E30 38 A5 14 18 */ addi r5, r5, lbl_80621418@l
+/* 8035B1D4 00356E34 80 85 00 8C */ lwz r4, 0x8c(r5)
+/* 8035B1D8 00356E38 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B1DC 00356E3C 80 05 00 90 */ lwz r0, 0x90(r5)
+/* 8035B1E0 00356E40 90 8D 94 B8 */ stw r4, lbl_8063E778-_SDA_BASE_(r13)
+/* 8035B1E4 00356E44 90 0D B1 64 */ stw r0, lbl_80640424-_SDA_BASE_(r13)
+/* 8035B1E8 00356E48 41 82 00 08 */ beq lbl_8035B1F0
+/* 8035B1EC 00356E4C 4B FD CA 11 */ bl closesocket
+lbl_8035B1F0:
+/* 8035B1F0 00356E50 80 6D 94 B4 */ lwz r3, lbl_8063E774-_SDA_BASE_(r13)
+/* 8035B1F4 00356E54 38 00 FF FF */ li r0, -1
+/* 8035B1F8 00356E58 90 0D 94 B0 */ stw r0, lbl_8063E770-_SDA_BASE_(r13)
+/* 8035B1FC 00356E5C 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B200 00356E60 41 82 00 08 */ beq lbl_8035B208
+/* 8035B204 00356E64 4B FD C9 F9 */ bl closesocket
+lbl_8035B208:
+/* 8035B208 00356E68 38 00 FF FF */ li r0, -1
+/* 8035B20C 00356E6C 90 0D 94 B4 */ stw r0, lbl_8063E774-_SDA_BASE_(r13)
+lbl_8035B210:
+/* 8035B210 00356E70 7F C3 F3 78 */ mr r3, r30
+/* 8035B214 00356E74 83 E1 00 EC */ lwz r31, 0xec(r1)
+/* 8035B218 00356E78 83 C1 00 E8 */ lwz r30, 0xe8(r1)
+/* 8035B21C 00356E7C 80 01 00 F4 */ lwz r0, 0xf4(r1)
+/* 8035B220 00356E80 7C 08 03 A6 */ mtlr r0
+/* 8035B224 00356E84 38 21 00 F0 */ addi r1, r1, 0xf0
+/* 8035B228 00356E88 4E 80 00 20 */ blr
+
+.global NNBeginNegotiationWithSocket
+NNBeginNegotiationWithSocket:
+/* 8035B22C 00356E8C 94 21 FE C0 */ stwu r1, -0x140(r1)
+/* 8035B230 00356E90 7C 08 02 A6 */ mflr r0
+/* 8035B234 00356E94 90 01 01 44 */ stw r0, 0x144(r1)
+/* 8035B238 00356E98 39 61 01 40 */ addi r11, r1, 0x140
+/* 8035B23C 00356E9C 4B E6 BE E1 */ bl _savegpr_24
+/* 8035B240 00356EA0 80 0D B0 A8 */ lwz r0, lbl_80640368-_SDA_BASE_(r13)
+/* 8035B244 00356EA4 3F 20 80 45 */ lis r25, lbl_8044C560@ha
+/* 8035B248 00356EA8 7C 7A 1B 78 */ mr r26, r3
+/* 8035B24C 00356EAC 7C 9B 23 78 */ mr r27, r4
+/* 8035B250 00356EB0 2C 00 00 01 */ cmpwi r0, 1
+/* 8035B254 00356EB4 7C BC 2B 78 */ mr r28, r5
+/* 8035B258 00356EB8 7C DD 33 78 */ mr r29, r6
+/* 8035B25C 00356EBC 7C FE 3B 78 */ mr r30, r7
+/* 8035B260 00356EC0 7D 1F 43 78 */ mr r31, r8
+/* 8035B264 00356EC4 3B 39 C5 60 */ addi r25, r25, lbl_8044C560@l
+/* 8035B268 00356EC8 41 82 00 0C */ beq lbl_8035B274
+/* 8035B26C 00356ECC 38 60 00 02 */ li r3, 2
+/* 8035B270 00356ED0 48 00 02 C0 */ b lbl_8035B530
+lbl_8035B274:
+/* 8035B274 00356ED4 80 0D B1 54 */ lwz r0, lbl_80640414-_SDA_BASE_(r13)
+/* 8035B278 00356ED8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B27C 00356EDC 40 82 00 70 */ bne lbl_8035B2EC
+/* 8035B280 00356EE0 83 0D B1 78 */ lwz r24, lbl_80640438-_SDA_BASE_(r13)
+/* 8035B284 00356EE4 38 F9 00 00 */ addi r7, r25, 0
+/* 8035B288 00356EE8 2C 18 00 00 */ cmpwi r24, 0
+/* 8035B28C 00356EEC 40 82 00 24 */ bne lbl_8035B2B0
+/* 8035B290 00356EF0 3C C0 80 61 */ lis r6, lbl_80610AF8@ha
+/* 8035B294 00356EF4 38 61 00 08 */ addi r3, r1, 8
+/* 8035B298 00356EF8 38 80 00 40 */ li r4, 0x40
+/* 8035B29C 00356EFC 38 AD 94 BC */ addi r5, r13, lbl_8063E77C-_SDA_BASE_
+/* 8035B2A0 00356F00 38 C6 0A F8 */ addi r6, r6, lbl_80610AF8@l
+/* 8035B2A4 00356F04 4C C6 31 82 */ crclr 6
+/* 8035B2A8 00356F08 4B E7 17 7D */ bl snprintf
+/* 8035B2AC 00356F0C 3B 01 00 08 */ addi r24, r1, 8
+lbl_8035B2B0:
+/* 8035B2B0 00356F10 7F 03 C3 78 */ mr r3, r24
+/* 8035B2B4 00356F14 4B FD CC BD */ bl inet_addr
+/* 8035B2B8 00356F18 3C 03 00 01 */ addis r0, r3, 1
+/* 8035B2BC 00356F1C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 8035B2C0 00356F20 40 82 00 28 */ bne lbl_8035B2E8
+/* 8035B2C4 00356F24 7F 03 C3 78 */ mr r3, r24
+/* 8035B2C8 00356F28 4B FD CE 11 */ bl gethostbyname
+/* 8035B2CC 00356F2C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035B2D0 00356F30 40 82 00 0C */ bne lbl_8035B2DC
+/* 8035B2D4 00356F34 38 60 00 00 */ li r3, 0
+/* 8035B2D8 00356F38 48 00 00 10 */ b lbl_8035B2E8
+lbl_8035B2DC:
+/* 8035B2DC 00356F3C 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8035B2E0 00356F40 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035B2E4 00356F44 80 63 00 00 */ lwz r3, 0(r3)
+lbl_8035B2E8:
+/* 8035B2E8 00356F48 90 6D B1 54 */ stw r3, lbl_80640414-_SDA_BASE_(r13)
+lbl_8035B2EC:
+/* 8035B2EC 00356F4C 80 0D B1 58 */ lwz r0, lbl_80640418-_SDA_BASE_(r13)
+/* 8035B2F0 00356F50 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B2F4 00356F54 40 82 00 70 */ bne lbl_8035B364
+/* 8035B2F8 00356F58 83 0D B1 74 */ lwz r24, lbl_80640434-_SDA_BASE_(r13)
+/* 8035B2FC 00356F5C 38 F9 00 1C */ addi r7, r25, 0x1c
+/* 8035B300 00356F60 2C 18 00 00 */ cmpwi r24, 0
+/* 8035B304 00356F64 40 82 00 24 */ bne lbl_8035B328
+/* 8035B308 00356F68 3C C0 80 61 */ lis r6, lbl_80610AF8@ha
+/* 8035B30C 00356F6C 38 61 00 48 */ addi r3, r1, 0x48
+/* 8035B310 00356F70 38 80 00 40 */ li r4, 0x40
+/* 8035B314 00356F74 38 AD 94 BC */ addi r5, r13, lbl_8063E77C-_SDA_BASE_
+/* 8035B318 00356F78 38 C6 0A F8 */ addi r6, r6, lbl_80610AF8@l
+/* 8035B31C 00356F7C 4C C6 31 82 */ crclr 6
+/* 8035B320 00356F80 4B E7 17 05 */ bl snprintf
+/* 8035B324 00356F84 3B 01 00 48 */ addi r24, r1, 0x48
+lbl_8035B328:
+/* 8035B328 00356F88 7F 03 C3 78 */ mr r3, r24
+/* 8035B32C 00356F8C 4B FD CC 45 */ bl inet_addr
+/* 8035B330 00356F90 3C 03 00 01 */ addis r0, r3, 1
+/* 8035B334 00356F94 28 00 FF FF */ cmplwi r0, 0xffff
+/* 8035B338 00356F98 40 82 00 28 */ bne lbl_8035B360
+/* 8035B33C 00356F9C 7F 03 C3 78 */ mr r3, r24
+/* 8035B340 00356FA0 4B FD CD 99 */ bl gethostbyname
+/* 8035B344 00356FA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8035B348 00356FA8 40 82 00 0C */ bne lbl_8035B354
+/* 8035B34C 00356FAC 38 60 00 00 */ li r3, 0
+/* 8035B350 00356FB0 48 00 00 10 */ b lbl_8035B360
+lbl_8035B354:
+/* 8035B354 00356FB4 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8035B358 00356FB8 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035B35C 00356FBC 80 63 00 00 */ lwz r3, 0(r3)
+lbl_8035B360:
+/* 8035B360 00356FC0 90 6D B1 58 */ stw r3, lbl_80640418-_SDA_BASE_(r13)
+lbl_8035B364:
+/* 8035B364 00356FC4 80 0D B1 5C */ lwz r0, lbl_8064041C-_SDA_BASE_(r13)
+/* 8035B368 00356FC8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B36C 00356FCC 40 82 00 70 */ bne lbl_8035B3DC
+/* 8035B370 00356FD0 83 0D B1 70 */ lwz r24, lbl_80640430-_SDA_BASE_(r13)
+/* 8035B374 00356FD4 38 F9 00 38 */ addi r7, r25, 0x38
+/* 8035B378 00356FD8 2C 18 00 00 */ cmpwi r24, 0
+/* 8035B37C 00356FDC 40 82 00 24 */ bne lbl_8035B3A0
+/* 8035B380 00356FE0 3C C0 80 61 */ lis r6, lbl_80610AF8@ha
+/* 8035B384 00356FE4 38 61 00 88 */ addi r3, r1, 0x88
+/* 8035B388 00356FE8 38 80 00 40 */ li r4, 0x40
+/* 8035B38C 00356FEC 38 AD 94 BC */ addi r5, r13, lbl_8063E77C-_SDA_BASE_
+/* 8035B390 00356FF0 38 C6 0A F8 */ addi r6, r6, lbl_80610AF8@l
+/* 8035B394 00356FF4 4C C6 31 82 */ crclr 6
+/* 8035B398 00356FF8 4B E7 16 8D */ bl snprintf
+/* 8035B39C 00356FFC 3B 01 00 88 */ addi r24, r1, 0x88
+lbl_8035B3A0:
+/* 8035B3A0 00357000 7F 03 C3 78 */ mr r3, r24
+/* 8035B3A4 00357004 4B FD CB CD */ bl inet_addr
+/* 8035B3A8 00357008 3C 03 00 01 */ addis r0, r3, 1
+/* 8035B3AC 0035700C 28 00 FF FF */ cmplwi r0, 0xffff
+/* 8035B3B0 00357010 40 82 00 28 */ bne lbl_8035B3D8
+/* 8035B3B4 00357014 7F 03 C3 78 */ mr r3, r24
+/* 8035B3B8 00357018 4B FD CD 21 */ bl gethostbyname
+/* 8035B3BC 0035701C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035B3C0 00357020 40 82 00 0C */ bne lbl_8035B3CC
+/* 8035B3C4 00357024 38 60 00 00 */ li r3, 0
+/* 8035B3C8 00357028 48 00 00 10 */ b lbl_8035B3D8
+lbl_8035B3CC:
+/* 8035B3CC 0035702C 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8035B3D0 00357030 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035B3D4 00357034 80 63 00 00 */ lwz r3, 0(r3)
+lbl_8035B3D8:
+/* 8035B3D8 00357038 90 6D B1 5C */ stw r3, lbl_8064041C-_SDA_BASE_(r13)
+lbl_8035B3DC:
+/* 8035B3DC 0035703C 80 0D B1 54 */ lwz r0, lbl_80640414-_SDA_BASE_(r13)
+/* 8035B3E0 00357040 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B3E4 00357044 41 82 00 1C */ beq lbl_8035B400
+/* 8035B3E8 00357048 80 0D B1 58 */ lwz r0, lbl_80640418-_SDA_BASE_(r13)
+/* 8035B3EC 0035704C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B3F0 00357050 41 82 00 10 */ beq lbl_8035B400
+/* 8035B3F4 00357054 80 0D B1 5C */ lwz r0, lbl_8064041C-_SDA_BASE_(r13)
+/* 8035B3F8 00357058 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B3FC 0035705C 40 82 00 0C */ bne lbl_8035B408
+lbl_8035B400:
+/* 8035B400 00357060 38 00 00 00 */ li r0, 0
+/* 8035B404 00357064 48 00 00 08 */ b lbl_8035B40C
+lbl_8035B408:
+/* 8035B408 00357068 38 00 00 01 */ li r0, 1
+lbl_8035B40C:
+/* 8035B40C 0035706C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B410 00357070 40 82 00 0C */ bne lbl_8035B41C
+/* 8035B414 00357074 38 60 00 03 */ li r3, 3
+/* 8035B418 00357078 48 00 01 18 */ b lbl_8035B530
+lbl_8035B41C:
+/* 8035B41C 0035707C 38 61 00 C8 */ addi r3, r1, 0xc8
+/* 8035B420 00357080 38 80 00 00 */ li r4, 0
+/* 8035B424 00357084 38 A0 00 54 */ li r5, 0x54
+/* 8035B428 00357088 4B CA 8C DD */ bl memset
+/* 8035B42C 0035708C 80 0D B1 50 */ lwz r0, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B430 00357090 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B434 00357094 40 82 00 18 */ bne lbl_8035B44C
+/* 8035B438 00357098 38 60 00 54 */ li r3, 0x54
+/* 8035B43C 0035709C 38 80 00 04 */ li r4, 4
+/* 8035B440 003570A0 38 A0 00 00 */ li r5, 0
+/* 8035B444 003570A4 4B FD A9 75 */ bl ArrayNew
+/* 8035B448 003570A8 90 6D B1 50 */ stw r3, lbl_80640410-_SDA_BASE_(r13)
+lbl_8035B44C:
+/* 8035B44C 003570AC 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B450 003570B0 38 81 00 C8 */ addi r4, r1, 0xc8
+/* 8035B454 003570B4 4B FD AA CD */ bl ArrayAppend
+/* 8035B458 003570B8 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B45C 003570BC 4B FD AA 8D */ bl ArrayLength
+/* 8035B460 003570C0 7C 64 1B 78 */ mr r4, r3
+/* 8035B464 003570C4 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B468 003570C8 38 84 FF FF */ addi r4, r4, -1
+/* 8035B46C 003570CC 4B FD AA 85 */ bl ArrayNth
+/* 8035B470 003570D0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035B474 003570D4 7C 78 1B 78 */ mr r24, r3
+/* 8035B478 003570D8 40 82 00 0C */ bne lbl_8035B484
+/* 8035B47C 003570DC 38 60 00 01 */ li r3, 1
+/* 8035B480 003570E0 48 00 00 B0 */ b lbl_8035B530
+lbl_8035B484:
+/* 8035B484 003570E4 93 43 00 04 */ stw r26, 4(r3)
+/* 8035B488 003570E8 38 80 00 02 */ li r4, 2
+/* 8035B48C 003570EC 38 A0 00 11 */ li r5, 0x11
+/* 8035B490 003570F0 93 83 00 0C */ stw r28, 0xc(r3)
+/* 8035B494 003570F4 93 63 00 08 */ stw r27, 8(r3)
+/* 8035B498 003570F8 93 A3 00 38 */ stw r29, 0x38(r3)
+/* 8035B49C 003570FC 93 C3 00 3C */ stw r30, 0x3c(r3)
+/* 8035B4A0 00357100 93 E3 00 40 */ stw r31, 0x40(r3)
+/* 8035B4A4 00357104 38 60 00 02 */ li r3, 2
+/* 8035B4A8 00357108 4B FD C7 1D */ bl socket
+/* 8035B4AC 0035710C 90 78 00 00 */ stw r3, 0(r24)
+/* 8035B4B0 00357110 38 80 00 00 */ li r4, 0
+/* 8035B4B4 00357114 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B4B8 00357118 38 00 00 05 */ li r0, 5
+/* 8035B4BC 0035711C 90 98 00 24 */ stw r4, 0x24(r24)
+/* 8035B4C0 00357120 98 98 00 36 */ stb r4, 0x36(r24)
+/* 8035B4C4 00357124 98 98 00 37 */ stb r4, 0x37(r24)
+/* 8035B4C8 00357128 90 98 00 30 */ stw r4, 0x30(r24)
+/* 8035B4CC 0035712C B0 98 00 34 */ sth r4, 0x34(r24)
+/* 8035B4D0 00357130 90 98 00 28 */ stw r4, 0x28(r24)
+/* 8035B4D4 00357134 90 18 00 44 */ stw r0, 0x44(r24)
+/* 8035B4D8 00357138 40 82 00 4C */ bne lbl_8035B524
+/* 8035B4DC 0035713C 3B 20 00 00 */ li r25, 0
+/* 8035B4E0 00357140 48 00 00 2C */ b lbl_8035B50C
+lbl_8035B4E4:
+/* 8035B4E4 00357144 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B4E8 00357148 7F 24 CB 78 */ mr r4, r25
+/* 8035B4EC 0035714C 4B FD AA 05 */ bl ArrayNth
+/* 8035B4F0 00357150 7C 18 18 40 */ cmplw r24, r3
+/* 8035B4F4 00357154 40 82 00 14 */ bne lbl_8035B508
+/* 8035B4F8 00357158 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B4FC 0035715C 7F 24 CB 78 */ mr r4, r25
+/* 8035B500 00357160 4B FD AC C5 */ bl ArrayRemoveAt
+/* 8035B504 00357164 48 00 00 18 */ b lbl_8035B51C
+lbl_8035B508:
+/* 8035B508 00357168 3B 39 00 01 */ addi r25, r25, 1
+lbl_8035B50C:
+/* 8035B50C 0035716C 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B510 00357170 4B FD A9 D9 */ bl ArrayLength
+/* 8035B514 00357174 7C 19 18 00 */ cmpw r25, r3
+/* 8035B518 00357178 41 80 FF CC */ blt lbl_8035B4E4
+lbl_8035B51C:
+/* 8035B51C 0035717C 38 60 00 02 */ li r3, 2
+/* 8035B520 00357180 48 00 00 10 */ b lbl_8035B530
+lbl_8035B524:
+/* 8035B524 00357184 7F 03 C3 78 */ mr r3, r24
+/* 8035B528 00357188 4B FF F9 51 */ bl SendInitPackets
+/* 8035B52C 0035718C 38 60 00 00 */ li r3, 0
+lbl_8035B530:
+/* 8035B530 00357190 39 61 01 40 */ addi r11, r1, 0x140
+/* 8035B534 00357194 4B E6 BC 35 */ bl _restgpr_24
+/* 8035B538 00357198 80 01 01 44 */ lwz r0, 0x144(r1)
+/* 8035B53C 0035719C 7C 08 03 A6 */ mtlr r0
+/* 8035B540 003571A0 38 21 01 40 */ addi r1, r1, 0x140
+/* 8035B544 003571A4 4E 80 00 20 */ blr
+
+.global NNCancel
+NNCancel:
+/* 8035B548 003571A8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035B54C 003571AC 7C 08 02 A6 */ mflr r0
+/* 8035B550 003571B0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035B554 003571B4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035B558 003571B8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8035B55C 003571BC 7C 7E 1B 78 */ mr r30, r3
+/* 8035B560 003571C0 80 0D B1 50 */ lwz r0, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B564 003571C4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B568 003571C8 40 82 00 0C */ bne lbl_8035B574
+/* 8035B56C 003571CC 3B E0 00 00 */ li r31, 0
+/* 8035B570 003571D0 48 00 00 44 */ b lbl_8035B5B4
+lbl_8035B574:
+/* 8035B574 003571D4 3B E0 00 00 */ li r31, 0
+/* 8035B578 003571D8 48 00 00 28 */ b lbl_8035B5A0
+lbl_8035B57C:
+/* 8035B57C 003571DC 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B580 003571E0 7F E4 FB 78 */ mr r4, r31
+/* 8035B584 003571E4 4B FD A9 6D */ bl ArrayNth
+/* 8035B588 003571E8 80 03 00 08 */ lwz r0, 8(r3)
+/* 8035B58C 003571EC 7C 00 F0 00 */ cmpw r0, r30
+/* 8035B590 003571F0 40 82 00 0C */ bne lbl_8035B59C
+/* 8035B594 003571F4 7C 7F 1B 78 */ mr r31, r3
+/* 8035B598 003571F8 48 00 00 1C */ b lbl_8035B5B4
+lbl_8035B59C:
+/* 8035B59C 003571FC 3B FF 00 01 */ addi r31, r31, 1
+lbl_8035B5A0:
+/* 8035B5A0 00357200 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B5A4 00357204 4B FD A9 45 */ bl ArrayLength
+/* 8035B5A8 00357208 7C 1F 18 00 */ cmpw r31, r3
+/* 8035B5AC 0035720C 41 80 FF D0 */ blt lbl_8035B57C
+/* 8035B5B0 00357210 3B E0 00 00 */ li r31, 0
+lbl_8035B5B4:
+/* 8035B5B4 00357214 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035B5B8 00357218 41 82 00 24 */ beq lbl_8035B5DC
+/* 8035B5BC 0035721C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8035B5C0 00357220 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B5C4 00357224 41 82 00 08 */ beq lbl_8035B5CC
+/* 8035B5C8 00357228 4B FD C6 35 */ bl closesocket
+lbl_8035B5CC:
+/* 8035B5CC 0035722C 38 60 FF FF */ li r3, -1
+/* 8035B5D0 00357230 38 00 00 04 */ li r0, 4
+/* 8035B5D4 00357234 90 7F 00 00 */ stw r3, 0(r31)
+/* 8035B5D8 00357238 90 1F 00 10 */ stw r0, 0x10(r31)
+lbl_8035B5DC:
+/* 8035B5DC 0035723C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035B5E0 00357240 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035B5E4 00357244 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8035B5E8 00357248 7C 08 03 A6 */ mtlr r0
+/* 8035B5EC 0035724C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035B5F0 00357250 4E 80 00 20 */ blr
+
+.global NegotiateThink
+NegotiateThink:
+/* 8035B5F4 00357254 94 21 FF 20 */ stwu r1, -0xe0(r1)
+/* 8035B5F8 00357258 7C 08 02 A6 */ mflr r0
+/* 8035B5FC 0035725C 38 80 00 08 */ li r4, 8
+/* 8035B600 00357260 90 01 00 E4 */ stw r0, 0xe4(r1)
+/* 8035B604 00357264 93 E1 00 DC */ stw r31, 0xdc(r1)
+/* 8035B608 00357268 7C 7F 1B 78 */ mr r31, r3
+/* 8035B60C 0035726C 93 C1 00 D8 */ stw r30, 0xd8(r1)
+/* 8035B610 00357270 93 A1 00 D4 */ stw r29, 0xd4(r1)
+/* 8035B614 00357274 80 0D B1 60 */ lwz r0, lbl_80640420-_SDA_BASE_(r13)
+/* 8035B618 00357278 90 81 00 10 */ stw r4, 0x10(r1)
+/* 8035B61C 0035727C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B620 00357280 41 82 00 1C */ beq lbl_8035B63C
+/* 8035B624 00357284 80 6D 94 B0 */ lwz r3, lbl_8063E770-_SDA_BASE_(r13)
+/* 8035B628 00357288 4B FF FB 01 */ bl CheckNatifyStatus
+/* 8035B62C 0035728C 90 6D B1 60 */ stw r3, lbl_80640420-_SDA_BASE_(r13)
+/* 8035B630 00357290 80 6D 94 B4 */ lwz r3, lbl_8063E774-_SDA_BASE_(r13)
+/* 8035B634 00357294 4B FF FA F5 */ bl CheckNatifyStatus
+/* 8035B638 00357298 90 6D B1 60 */ stw r3, lbl_80640420-_SDA_BASE_(r13)
+lbl_8035B63C:
+/* 8035B63C 0035729C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035B640 003572A0 41 82 04 80 */ beq lbl_8035BAC0
+/* 8035B644 003572A4 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B648 003572A8 2C 00 00 04 */ cmpwi r0, 4
+/* 8035B64C 003572AC 40 82 00 48 */ bne lbl_8035B694
+/* 8035B650 003572B0 3B C0 00 00 */ li r30, 0
+/* 8035B654 003572B4 48 00 00 2C */ b lbl_8035B680
+lbl_8035B658:
+/* 8035B658 003572B8 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B65C 003572BC 7F C4 F3 78 */ mr r4, r30
+/* 8035B660 003572C0 4B FD A8 91 */ bl ArrayNth
+/* 8035B664 003572C4 7C 1F 18 40 */ cmplw r31, r3
+/* 8035B668 003572C8 40 82 00 14 */ bne lbl_8035B67C
+/* 8035B66C 003572CC 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B670 003572D0 7F C4 F3 78 */ mr r4, r30
+/* 8035B674 003572D4 4B FD AB 51 */ bl ArrayRemoveAt
+/* 8035B678 003572D8 48 00 04 48 */ b lbl_8035BAC0
+lbl_8035B67C:
+/* 8035B67C 003572DC 3B DE 00 01 */ addi r30, r30, 1
+lbl_8035B680:
+/* 8035B680 003572E0 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B684 003572E4 4B FD A8 65 */ bl ArrayLength
+/* 8035B688 003572E8 7C 1E 18 00 */ cmpw r30, r3
+/* 8035B68C 003572EC 41 80 FF CC */ blt lbl_8035B658
+/* 8035B690 003572F0 48 00 04 30 */ b lbl_8035BAC0
+lbl_8035B694:
+/* 8035B694 003572F4 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8035B698 003572F8 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B69C 003572FC 41 82 00 6C */ beq lbl_8035B708
+/* 8035B6A0 00357300 3F C0 80 62 */ lis r30, 0x8062
+lbl_8035B6A4:
+/* 8035B6A4 00357304 4B FD D1 A9 */ bl CanReceiveOnSocket
+/* 8035B6A8 00357308 2C 03 00 00 */ cmpwi r3, 0
+/* 8035B6AC 0035730C 41 82 00 5C */ beq lbl_8035B708
+/* 8035B6B0 00357310 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8035B6B4 00357314 38 9E 14 F0 */ addi r4, r30, 0x14f0
+/* 8035B6B8 00357318 38 E1 00 30 */ addi r7, r1, 0x30
+/* 8035B6BC 0035731C 39 01 00 10 */ addi r8, r1, 0x10
+/* 8035B6C0 00357320 38 A0 02 00 */ li r5, 0x200
+/* 8035B6C4 00357324 38 C0 00 00 */ li r6, 0
+/* 8035B6C8 00357328 4B FD C7 3D */ bl recvfrom
+/* 8035B6CC 0035732C 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B6D0 00357330 40 82 00 10 */ bne lbl_8035B6E0
+/* 8035B6D4 00357334 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8035B6D8 00357338 4B FD C8 D1 */ bl GOAGetLastError
+/* 8035B6DC 0035733C 48 00 00 2C */ b lbl_8035B708
+lbl_8035B6E0:
+/* 8035B6E0 00357340 7C 64 1B 78 */ mr r4, r3
+/* 8035B6E4 00357344 38 7E 14 F0 */ addi r3, r30, 0x14f0
+/* 8035B6E8 00357348 38 A1 00 30 */ addi r5, r1, 0x30
+/* 8035B6EC 0035734C 48 00 0C 51 */ bl NNProcessData
+/* 8035B6F0 00357350 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B6F4 00357354 2C 00 00 04 */ cmpwi r0, 4
+/* 8035B6F8 00357358 41 82 00 10 */ beq lbl_8035B708
+/* 8035B6FC 0035735C 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8035B700 00357360 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B704 00357364 40 82 FF A0 */ bne lbl_8035B6A4
+lbl_8035B708:
+/* 8035B708 00357368 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B70C 0035736C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B710 00357370 41 82 00 0C */ beq lbl_8035B71C
+/* 8035B714 00357374 2C 00 00 02 */ cmpwi r0, 2
+/* 8035B718 00357378 40 82 01 64 */ bne lbl_8035B87C
+lbl_8035B71C:
+/* 8035B71C 0035737C 4B FD D8 BD */ bl current_time
+/* 8035B720 00357380 80 1F 00 2C */ lwz r0, 0x2c(r31)
+/* 8035B724 00357384 7C 03 00 40 */ cmplw r3, r0
+/* 8035B728 00357388 40 81 01 54 */ ble lbl_8035B87C
+/* 8035B72C 0035738C 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 8035B730 00357390 80 1F 00 28 */ lwz r0, 0x28(r31)
+/* 8035B734 00357394 7C 03 00 00 */ cmpw r3, r0
+/* 8035B738 00357398 40 81 00 40 */ ble lbl_8035B778
+/* 8035B73C 0035739C 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B740 003573A0 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B744 003573A4 40 82 00 1C */ bne lbl_8035B760
+/* 8035B748 003573A8 7F E3 FB 78 */ mr r3, r31
+/* 8035B74C 003573AC 38 80 00 02 */ li r4, 2
+/* 8035B750 003573B0 38 A0 FF FF */ li r5, -1
+/* 8035B754 003573B4 38 C0 00 00 */ li r6, 0
+/* 8035B758 003573B8 4B FF F5 2D */ bl StartReport
+/* 8035B75C 003573BC 48 00 01 20 */ b lbl_8035B87C
+lbl_8035B760:
+/* 8035B760 003573C0 7F E3 FB 78 */ mr r3, r31
+/* 8035B764 003573C4 38 80 00 03 */ li r4, 3
+/* 8035B768 003573C8 38 A0 FF FF */ li r5, -1
+/* 8035B76C 003573CC 38 C0 00 00 */ li r6, 0
+/* 8035B770 003573D0 4B FF F5 15 */ bl StartReport
+/* 8035B774 003573D4 48 00 01 08 */ b lbl_8035B87C
+lbl_8035B778:
+/* 8035B778 003573D8 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B77C 003573DC 38 63 00 01 */ addi r3, r3, 1
+/* 8035B780 003573E0 90 7F 00 24 */ stw r3, 0x24(r31)
+/* 8035B784 003573E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B788 003573E8 40 82 00 10 */ bne lbl_8035B798
+/* 8035B78C 003573EC 7F E3 FB 78 */ mr r3, r31
+/* 8035B790 003573F0 4B FF F6 E9 */ bl SendInitPackets
+/* 8035B794 003573F4 48 00 00 E8 */ b lbl_8035B87C
+lbl_8035B798:
+/* 8035B798 003573F8 38 61 00 84 */ addi r3, r1, 0x84
+/* 8035B79C 003573FC 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035B7A0 00357400 38 A0 00 06 */ li r5, 6
+/* 8035B7A4 00357404 4B CA 88 5D */ bl memcpy
+/* 8035B7A8 00357408 38 60 00 03 */ li r3, 3
+/* 8035B7AC 0035740C 38 00 00 07 */ li r0, 7
+/* 8035B7B0 00357410 98 61 00 8A */ stb r3, 0x8a(r1)
+/* 8035B7B4 00357414 98 01 00 8B */ stb r0, 0x8b(r1)
+/* 8035B7B8 00357418 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8035B7BC 0035741C 4B F9 B5 BD */ bl SOHtoNl
+/* 8035B7C0 00357420 90 61 00 8C */ stw r3, 0x8c(r1)
+/* 8035B7C4 00357424 80 1F 00 30 */ lwz r0, 0x30(r31)
+/* 8035B7C8 00357428 90 01 00 90 */ stw r0, 0x90(r1)
+/* 8035B7CC 0035742C A0 7F 00 34 */ lhz r3, 0x34(r31)
+/* 8035B7D0 00357430 4B F9 B5 AD */ bl SOHtoNs
+/* 8035B7D4 00357434 B0 61 00 94 */ sth r3, 0x94(r1)
+/* 8035B7D8 00357438 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035B7DC 0035743C 88 1F 00 36 */ lbz r0, 0x36(r31)
+/* 8035B7E0 00357440 98 01 00 96 */ stb r0, 0x96(r1)
+/* 8035B7E4 00357444 80 BF 00 10 */ lwz r5, 0x10(r31)
+/* 8035B7E8 00357448 20 85 00 02 */ subfic r4, r5, 2
+/* 8035B7EC 0035744C 38 05 FF FE */ addi r0, r5, -2
+/* 8035B7F0 00357450 7C 80 03 78 */ or r0, r4, r0
+/* 8035B7F4 00357454 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035B7F8 00357458 98 01 00 97 */ stb r0, 0x97(r1)
+/* 8035B7FC 0035745C 80 1F 00 30 */ lwz r0, 0x30(r31)
+/* 8035B800 00357460 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8035B804 00357464 4B F9 B5 15 */ bl SOInetNtoA
+/* 8035B808 00357468 83 BF 00 04 */ lwz r29, 4(r31)
+/* 8035B80C 0035746C A0 7F 00 34 */ lhz r3, 0x34(r31)
+/* 8035B810 00357470 2C 1D FF FF */ cmpwi r29, -1
+/* 8035B814 00357474 83 DF 00 30 */ lwz r30, 0x30(r31)
+/* 8035B818 00357478 41 82 00 08 */ beq lbl_8035B820
+/* 8035B81C 0035747C 48 00 00 08 */ b lbl_8035B824
+lbl_8035B820:
+/* 8035B820 00357480 83 BF 00 00 */ lwz r29, 0(r31)
+lbl_8035B824:
+/* 8035B824 00357484 38 00 00 02 */ li r0, 2
+/* 8035B828 00357488 98 01 00 21 */ stb r0, 0x21(r1)
+/* 8035B82C 0035748C 4B F9 B5 51 */ bl SOHtoNs
+/* 8035B830 00357490 B0 61 00 22 */ sth r3, 0x22(r1)
+/* 8035B834 00357494 7F A3 EB 78 */ mr r3, r29
+/* 8035B838 00357498 38 81 00 84 */ addi r4, r1, 0x84
+/* 8035B83C 0035749C 38 E1 00 20 */ addi r7, r1, 0x20
+/* 8035B840 003574A0 93 C1 00 24 */ stw r30, 0x24(r1)
+/* 8035B844 003574A4 38 A0 00 14 */ li r5, 0x14
+/* 8035B848 003574A8 38 C0 00 00 */ li r6, 0
+/* 8035B84C 003574AC 39 00 00 08 */ li r8, 8
+/* 8035B850 003574B0 4B FD C6 45 */ bl sendto
+/* 8035B854 003574B4 4B FD D7 85 */ bl current_time
+/* 8035B858 003574B8 88 1F 00 36 */ lbz r0, 0x36(r31)
+/* 8035B85C 003574BC 38 83 02 BC */ addi r4, r3, 0x2bc
+/* 8035B860 003574C0 38 60 00 07 */ li r3, 7
+/* 8035B864 003574C4 90 9F 00 2C */ stw r4, 0x2c(r31)
+/* 8035B868 003574C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B86C 003574CC 90 7F 00 28 */ stw r3, 0x28(r31)
+/* 8035B870 003574D0 41 82 00 0C */ beq lbl_8035B87C
+/* 8035B874 003574D4 38 00 00 01 */ li r0, 1
+/* 8035B878 003574D8 98 1F 00 37 */ stb r0, 0x37(r31)
+lbl_8035B87C:
+/* 8035B87C 003574DC 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B880 003574E0 2C 00 00 03 */ cmpwi r0, 3
+/* 8035B884 003574E4 40 82 00 50 */ bne lbl_8035B8D4
+/* 8035B888 003574E8 4B FD D7 51 */ bl current_time
+/* 8035B88C 003574EC 80 1F 00 2C */ lwz r0, 0x2c(r31)
+/* 8035B890 003574F0 7C 03 00 40 */ cmplw r3, r0
+/* 8035B894 003574F4 40 81 00 40 */ ble lbl_8035B8D4
+/* 8035B898 003574F8 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8035B89C 003574FC 2C 00 FF FF */ cmpwi r0, -1
+/* 8035B8A0 00357500 40 82 00 34 */ bne lbl_8035B8D4
+/* 8035B8A4 00357504 38 00 00 02 */ li r0, 2
+/* 8035B8A8 00357508 98 01 00 29 */ stb r0, 0x29(r1)
+/* 8035B8AC 0035750C A0 7F 00 34 */ lhz r3, 0x34(r31)
+/* 8035B8B0 00357510 4B F9 B4 CD */ bl SOHtoNs
+/* 8035B8B4 00357514 B0 61 00 2A */ sth r3, 0x2a(r1)
+/* 8035B8B8 00357518 7F E3 FB 78 */ mr r3, r31
+/* 8035B8BC 0035751C 38 C1 00 28 */ addi r6, r1, 0x28
+/* 8035B8C0 00357520 38 80 00 00 */ li r4, 0
+/* 8035B8C4 00357524 80 1F 00 30 */ lwz r0, 0x30(r31)
+/* 8035B8C8 00357528 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8035B8CC 0035752C 80 BF 00 00 */ lwz r5, 0(r31)
+/* 8035B8D0 00357530 4B FF F3 B5 */ bl StartReport
+lbl_8035B8D4:
+/* 8035B8D4 00357534 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B8D8 00357538 2C 00 00 01 */ cmpwi r0, 1
+/* 8035B8DC 0035753C 40 82 00 28 */ bne lbl_8035B904
+/* 8035B8E0 00357540 4B FD D6 F9 */ bl current_time
+/* 8035B8E4 00357544 80 1F 00 2C */ lwz r0, 0x2c(r31)
+/* 8035B8E8 00357548 7C 03 00 40 */ cmplw r3, r0
+/* 8035B8EC 0035754C 40 81 00 18 */ ble lbl_8035B904
+/* 8035B8F0 00357550 7F E3 FB 78 */ mr r3, r31
+/* 8035B8F4 00357554 38 80 00 01 */ li r4, 1
+/* 8035B8F8 00357558 38 A0 FF FF */ li r5, -1
+/* 8035B8FC 0035755C 38 C0 00 00 */ li r6, 0
+/* 8035B900 00357560 4B FF F3 85 */ bl StartReport
+lbl_8035B904:
+/* 8035B904 00357564 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035B908 00357568 2C 00 00 05 */ cmpwi r0, 5
+/* 8035B90C 0035756C 40 82 01 B4 */ bne lbl_8035BAC0
+/* 8035B910 00357570 4B FD D6 C9 */ bl current_time
+/* 8035B914 00357574 80 1F 00 2C */ lwz r0, 0x2c(r31)
+/* 8035B918 00357578 7C 03 00 40 */ cmplw r3, r0
+/* 8035B91C 0035757C 40 81 01 A4 */ ble lbl_8035BAC0
+/* 8035B920 00357580 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 8035B924 00357584 80 1F 00 28 */ lwz r0, 0x28(r31)
+/* 8035B928 00357588 7C 03 00 00 */ cmpw r3, r0
+/* 8035B92C 0035758C 40 81 00 B8 */ ble lbl_8035B9E4
+/* 8035B930 00357590 81 9F 00 3C */ lwz r12, 0x3c(r31)
+/* 8035B934 00357594 38 BF 00 4C */ addi r5, r31, 0x4c
+/* 8035B938 00357598 80 7F 00 44 */ lwz r3, 0x44(r31)
+/* 8035B93C 0035759C 80 9F 00 48 */ lwz r4, 0x48(r31)
+/* 8035B940 003575A0 80 DF 00 40 */ lwz r6, 0x40(r31)
+/* 8035B944 003575A4 7D 89 03 A6 */ mtctr r12
+/* 8035B948 003575A8 4E 80 04 21 */ bctrl
+/* 8035B94C 003575AC 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8035B950 003575B0 2C 00 FF FF */ cmpwi r0, -1
+/* 8035B954 003575B4 40 82 00 0C */ bne lbl_8035B960
+/* 8035B958 003575B8 38 00 FF FF */ li r0, -1
+/* 8035B95C 003575BC 90 1F 00 00 */ stw r0, 0(r31)
+lbl_8035B960:
+/* 8035B960 003575C0 80 0D B1 50 */ lwz r0, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B964 003575C4 83 DF 00 08 */ lwz r30, 8(r31)
+/* 8035B968 003575C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035B96C 003575CC 40 82 00 0C */ bne lbl_8035B978
+/* 8035B970 003575D0 3B C0 00 00 */ li r30, 0
+/* 8035B974 003575D4 48 00 00 44 */ b lbl_8035B9B8
+lbl_8035B978:
+/* 8035B978 003575D8 3B E0 00 00 */ li r31, 0
+/* 8035B97C 003575DC 48 00 00 28 */ b lbl_8035B9A4
+lbl_8035B980:
+/* 8035B980 003575E0 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B984 003575E4 7F E4 FB 78 */ mr r4, r31
+/* 8035B988 003575E8 4B FD A5 69 */ bl ArrayNth
+/* 8035B98C 003575EC 80 03 00 08 */ lwz r0, 8(r3)
+/* 8035B990 003575F0 7C 00 F0 00 */ cmpw r0, r30
+/* 8035B994 003575F4 40 82 00 0C */ bne lbl_8035B9A0
+/* 8035B998 003575F8 7C 7E 1B 78 */ mr r30, r3
+/* 8035B99C 003575FC 48 00 00 1C */ b lbl_8035B9B8
+lbl_8035B9A0:
+/* 8035B9A0 00357600 3B FF 00 01 */ addi r31, r31, 1
+lbl_8035B9A4:
+/* 8035B9A4 00357604 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035B9A8 00357608 4B FD A5 41 */ bl ArrayLength
+/* 8035B9AC 0035760C 7C 1F 18 00 */ cmpw r31, r3
+/* 8035B9B0 00357610 41 80 FF D0 */ blt lbl_8035B980
+/* 8035B9B4 00357614 3B C0 00 00 */ li r30, 0
+lbl_8035B9B8:
+/* 8035B9B8 00357618 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035B9BC 0035761C 41 82 01 04 */ beq lbl_8035BAC0
+/* 8035B9C0 00357620 80 7E 00 00 */ lwz r3, 0(r30)
+/* 8035B9C4 00357624 2C 03 FF FF */ cmpwi r3, -1
+/* 8035B9C8 00357628 41 82 00 08 */ beq lbl_8035B9D0
+/* 8035B9CC 0035762C 4B FD C2 31 */ bl closesocket
+lbl_8035B9D0:
+/* 8035B9D0 00357630 38 60 FF FF */ li r3, -1
+/* 8035B9D4 00357634 38 00 00 04 */ li r0, 4
+/* 8035B9D8 00357638 90 7E 00 00 */ stw r3, 0(r30)
+/* 8035B9DC 0035763C 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 8035B9E0 00357640 48 00 00 E0 */ b lbl_8035BAC0
+lbl_8035B9E4:
+/* 8035B9E4 00357644 38 61 00 38 */ addi r3, r1, 0x38
+/* 8035B9E8 00357648 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035B9EC 0035764C 38 A0 00 06 */ li r5, 6
+/* 8035B9F0 00357650 4B CA 86 11 */ bl memcpy
+/* 8035B9F4 00357654 38 60 00 03 */ li r3, 3
+/* 8035B9F8 00357658 38 00 00 0D */ li r0, 0xd
+/* 8035B9FC 0035765C 98 61 00 3E */ stb r3, 0x3e(r1)
+/* 8035BA00 00357660 98 01 00 3F */ stb r0, 0x3f(r1)
+/* 8035BA04 00357664 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8035BA08 00357668 4B F9 B3 71 */ bl SOHtoNl
+/* 8035BA0C 0035766C 90 61 00 40 */ stw r3, 0x40(r1)
+/* 8035BA10 00357670 3F C0 80 61 */ lis r30, lbl_80610AF8@ha
+/* 8035BA14 00357674 80 8D 94 B8 */ lwz r4, lbl_8063E778-_SDA_BASE_(r13)
+/* 8035BA18 00357678 38 7E 0A F8 */ addi r3, r30, lbl_80610AF8@l
+/* 8035BA1C 0035767C 80 BF 00 0C */ lwz r5, 0xc(r31)
+/* 8035BA20 00357680 80 0D B1 64 */ lwz r0, lbl_80640424-_SDA_BASE_(r13)
+/* 8035BA24 00357684 98 A1 00 45 */ stb r5, 0x45(r1)
+/* 8035BA28 00357688 80 BF 00 44 */ lwz r5, 0x44(r31)
+/* 8035BA2C 0035768C 7C A5 00 34 */ cntlzw r5, r5
+/* 8035BA30 00357690 90 81 00 47 */ stw r4, 0x47(r1)
+/* 8035BA34 00357694 54 A4 DE 3E */ rlwinm r4, r5, 0x1b, 0x18, 0x1f
+/* 8035BA38 00357698 98 81 00 46 */ stb r4, 0x46(r1)
+/* 8035BA3C 0035769C 90 01 00 4B */ stw r0, 0x4b(r1)
+/* 8035BA40 003576A0 4B E6 B1 25 */ bl strlen
+/* 8035BA44 003576A4 2C 03 00 00 */ cmpwi r3, 0
+/* 8035BA48 003576A8 41 82 00 14 */ beq lbl_8035BA5C
+/* 8035BA4C 003576AC 38 61 00 4F */ addi r3, r1, 0x4f
+/* 8035BA50 003576B0 38 9E 0A F8 */ addi r4, r30, 0xaf8
+/* 8035BA54 003576B4 38 A0 00 32 */ li r5, 0x32
+/* 8035BA58 003576B8 4B CA 85 A9 */ bl memcpy
+lbl_8035BA5C:
+/* 8035BA5C 003576BC 80 0D B1 54 */ lwz r0, lbl_80640414-_SDA_BASE_(r13)
+/* 8035BA60 003576C0 38 61 00 08 */ addi r3, r1, 8
+/* 8035BA64 003576C4 90 01 00 08 */ stw r0, 8(r1)
+/* 8035BA68 003576C8 4B F9 B2 B1 */ bl SOInetNtoA
+/* 8035BA6C 003576CC 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8035BA70 003576D0 38 00 00 02 */ li r0, 2
+/* 8035BA74 003576D4 83 CD B1 54 */ lwz r30, lbl_80640414-_SDA_BASE_(r13)
+/* 8035BA78 003576D8 38 60 6C FD */ li r3, 0x6cfd
+/* 8035BA7C 003576DC 98 01 00 19 */ stb r0, 0x19(r1)
+/* 8035BA80 003576E0 4B F9 B2 FD */ bl SOHtoNs
+/* 8035BA84 003576E4 B0 61 00 1A */ sth r3, 0x1a(r1)
+/* 8035BA88 003576E8 7F A3 EB 78 */ mr r3, r29
+/* 8035BA8C 003576EC 38 81 00 38 */ addi r4, r1, 0x38
+/* 8035BA90 003576F0 38 E1 00 18 */ addi r7, r1, 0x18
+/* 8035BA94 003576F4 93 C1 00 1C */ stw r30, 0x1c(r1)
+/* 8035BA98 003576F8 38 A0 00 49 */ li r5, 0x49
+/* 8035BA9C 003576FC 38 C0 00 00 */ li r6, 0
+/* 8035BAA0 00357700 39 00 00 08 */ li r8, 8
+/* 8035BAA4 00357704 4B FD C3 F1 */ bl sendto
+/* 8035BAA8 00357708 80 7F 00 24 */ lwz r3, 0x24(r31)
+/* 8035BAAC 0035770C 38 03 00 01 */ addi r0, r3, 1
+/* 8035BAB0 00357710 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 8035BAB4 00357714 4B FD D5 25 */ bl current_time
+/* 8035BAB8 00357718 38 03 03 E8 */ addi r0, r3, 0x3e8
+/* 8035BABC 0035771C 90 1F 00 2C */ stw r0, 0x2c(r31)
+lbl_8035BAC0:
+/* 8035BAC0 00357720 80 01 00 E4 */ lwz r0, 0xe4(r1)
+/* 8035BAC4 00357724 83 E1 00 DC */ lwz r31, 0xdc(r1)
+/* 8035BAC8 00357728 83 C1 00 D8 */ lwz r30, 0xd8(r1)
+/* 8035BACC 0035772C 83 A1 00 D4 */ lwz r29, 0xd4(r1)
+/* 8035BAD0 00357730 7C 08 03 A6 */ mtlr r0
+/* 8035BAD4 00357734 38 21 00 E0 */ addi r1, r1, 0xe0
+/* 8035BAD8 00357738 4E 80 00 20 */ blr
+
+.global NNThink
+NNThink:
+/* 8035BADC 0035773C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035BAE0 00357740 7C 08 02 A6 */ mflr r0
+/* 8035BAE4 00357744 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035BAE8 00357748 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035BAEC 0035774C 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035BAF0 00357750 2C 03 00 00 */ cmpwi r3, 0
+/* 8035BAF4 00357754 41 82 00 10 */ beq lbl_8035BB04
+/* 8035BAF8 00357758 4B FD A3 F1 */ bl ArrayLength
+/* 8035BAFC 0035775C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035BB00 00357760 40 82 00 10 */ bne lbl_8035BB10
+lbl_8035BB04:
+/* 8035BB04 00357764 38 60 00 00 */ li r3, 0
+/* 8035BB08 00357768 4B FF FA ED */ bl NegotiateThink
+/* 8035BB0C 0035776C 48 00 00 30 */ b lbl_8035BB3C
+lbl_8035BB10:
+/* 8035BB10 00357770 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035BB14 00357774 4B FD A3 D5 */ bl ArrayLength
+/* 8035BB18 00357778 3B E3 FF FF */ addi r31, r3, -1
+/* 8035BB1C 0035777C 48 00 00 18 */ b lbl_8035BB34
+lbl_8035BB20:
+/* 8035BB20 00357780 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035BB24 00357784 7F E4 FB 78 */ mr r4, r31
+/* 8035BB28 00357788 4B FD A3 C9 */ bl ArrayNth
+/* 8035BB2C 0035778C 4B FF FA C9 */ bl NegotiateThink
+/* 8035BB30 00357790 3B FF FF FF */ addi r31, r31, -1
+lbl_8035BB34:
+/* 8035BB34 00357794 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035BB38 00357798 40 80 FF E8 */ bge lbl_8035BB20
+lbl_8035BB3C:
+/* 8035BB3C 0035779C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035BB40 003577A0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035BB44 003577A4 7C 08 03 A6 */ mtlr r0
+/* 8035BB48 003577A8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035BB4C 003577AC 4E 80 00 20 */ blr
+
+.global ProcessConnectPacket
+ProcessConnectPacket:
+/* 8035BB50 003577B0 94 21 FF 30 */ stwu r1, -0xd0(r1)
+/* 8035BB54 003577B4 7C 08 02 A6 */ mflr r0
+/* 8035BB58 003577B8 90 01 00 D4 */ stw r0, 0xd4(r1)
+/* 8035BB5C 003577BC 93 E1 00 CC */ stw r31, 0xcc(r1)
+/* 8035BB60 003577C0 7C 7F 1B 78 */ mr r31, r3
+/* 8035BB64 003577C4 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035BB68 003577C8 93 C1 00 C8 */ stw r30, 0xc8(r1)
+/* 8035BB6C 003577CC 93 A1 00 C4 */ stw r29, 0xc4(r1)
+/* 8035BB70 003577D0 7C BD 2B 78 */ mr r29, r5
+/* 8035BB74 003577D4 93 81 00 C0 */ stw r28, 0xc0(r1)
+/* 8035BB78 003577D8 7C 9C 23 78 */ mr r28, r4
+/* 8035BB7C 003577DC 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 8035BB80 003577E0 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8035BB84 003577E4 4B F9 B1 95 */ bl SOInetNtoA
+/* 8035BB88 003577E8 A0 7C 00 10 */ lhz r3, 0x10(r28)
+/* 8035BB8C 003577EC 4B F9 B1 E5 */ bl SONtoHs
+/* 8035BB90 003577F0 88 1C 00 13 */ lbz r0, 0x13(r28)
+/* 8035BB94 003577F4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035BB98 003577F8 40 82 00 7C */ bne lbl_8035BC14
+/* 8035BB9C 003577FC 38 61 00 6C */ addi r3, r1, 0x6c
+/* 8035BBA0 00357800 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035BBA4 00357804 38 A0 00 06 */ li r5, 6
+/* 8035BBA8 00357808 4B CA 84 59 */ bl memcpy
+/* 8035BBAC 0035780C 38 60 00 03 */ li r3, 3
+/* 8035BBB0 00357810 38 00 00 06 */ li r0, 6
+/* 8035BBB4 00357814 98 61 00 72 */ stb r3, 0x72(r1)
+/* 8035BBB8 00357818 98 01 00 73 */ stb r0, 0x73(r1)
+/* 8035BBBC 0035781C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8035BBC0 00357820 4B F9 B1 B9 */ bl SOHtoNl
+/* 8035BBC4 00357824 90 61 00 74 */ stw r3, 0x74(r1)
+/* 8035BBC8 00357828 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 8035BBCC 0035782C 98 01 00 79 */ stb r0, 0x79(r1)
+/* 8035BBD0 00357830 A0 7D 00 02 */ lhz r3, 2(r29)
+/* 8035BBD4 00357834 4B F9 B1 9D */ bl SONtoHs
+/* 8035BBD8 00357838 83 DD 00 04 */ lwz r30, 4(r29)
+/* 8035BBDC 0035783C 38 00 00 02 */ li r0, 2
+/* 8035BBE0 00357840 83 BF 00 00 */ lwz r29, 0(r31)
+/* 8035BBE4 00357844 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 8035BBE8 00357848 98 01 00 19 */ stb r0, 0x19(r1)
+/* 8035BBEC 0035784C 4B F9 B1 91 */ bl SOHtoNs
+/* 8035BBF0 00357850 B0 61 00 1A */ sth r3, 0x1a(r1)
+/* 8035BBF4 00357854 7F A3 EB 78 */ mr r3, r29
+/* 8035BBF8 00357858 38 81 00 6C */ addi r4, r1, 0x6c
+/* 8035BBFC 0035785C 38 E1 00 18 */ addi r7, r1, 0x18
+/* 8035BC00 00357860 93 C1 00 1C */ stw r30, 0x1c(r1)
+/* 8035BC04 00357864 38 A0 00 15 */ li r5, 0x15
+/* 8035BC08 00357868 38 C0 00 00 */ li r6, 0
+/* 8035BC0C 0035786C 39 00 00 08 */ li r8, 8
+/* 8035BC10 00357870 4B FD C2 85 */ bl sendto
+lbl_8035BC14:
+/* 8035BC14 00357874 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035BC18 00357878 2C 00 00 02 */ cmpwi r0, 2
+/* 8035BC1C 0035787C 40 80 01 60 */ bge lbl_8035BD7C
+/* 8035BC20 00357880 88 1C 00 13 */ lbz r0, 0x13(r28)
+/* 8035BC24 00357884 2C 00 00 00 */ cmpwi r0, 0
+/* 8035BC28 00357888 41 82 00 38 */ beq lbl_8035BC60
+/* 8035BC2C 0035788C 28 00 00 01 */ cmplwi r0, 1
+/* 8035BC30 00357890 38 80 00 04 */ li r4, 4
+/* 8035BC34 00357894 40 82 00 0C */ bne lbl_8035BC40
+/* 8035BC38 00357898 38 80 00 01 */ li r4, 1
+/* 8035BC3C 0035789C 48 00 00 10 */ b lbl_8035BC4C
+lbl_8035BC40:
+/* 8035BC40 003578A0 28 00 00 02 */ cmplwi r0, 2
+/* 8035BC44 003578A4 40 82 00 08 */ bne lbl_8035BC4C
+/* 8035BC48 003578A8 38 80 00 02 */ li r4, 2
+lbl_8035BC4C:
+/* 8035BC4C 003578AC 7F E3 FB 78 */ mr r3, r31
+/* 8035BC50 003578B0 38 A0 FF FF */ li r5, -1
+/* 8035BC54 003578B4 38 C0 00 00 */ li r6, 0
+/* 8035BC58 003578B8 4B FF F0 2D */ bl StartReport
+/* 8035BC5C 003578BC 48 00 01 20 */ b lbl_8035BD7C
+lbl_8035BC60:
+/* 8035BC60 003578C0 80 1C 00 0C */ lwz r0, 0xc(r28)
+/* 8035BC64 003578C4 90 1F 00 30 */ stw r0, 0x30(r31)
+/* 8035BC68 003578C8 A0 7C 00 10 */ lhz r3, 0x10(r28)
+/* 8035BC6C 003578CC 4B F9 B1 05 */ bl SONtoHs
+/* 8035BC70 003578D0 81 9F 00 38 */ lwz r12, 0x38(r31)
+/* 8035BC74 003578D4 38 A0 00 00 */ li r5, 0
+/* 8035BC78 003578D8 38 00 00 02 */ li r0, 2
+/* 8035BC7C 003578DC B0 7F 00 34 */ sth r3, 0x34(r31)
+/* 8035BC80 003578E0 80 9F 00 40 */ lwz r4, 0x40(r31)
+/* 8035BC84 003578E4 38 60 00 02 */ li r3, 2
+/* 8035BC88 003578E8 90 BF 00 24 */ stw r5, 0x24(r31)
+/* 8035BC8C 003578EC 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 8035BC90 003578F0 7D 89 03 A6 */ mtctr r12
+/* 8035BC94 003578F4 4E 80 04 21 */ bctrl
+/* 8035BC98 003578F8 38 61 00 20 */ addi r3, r1, 0x20
+/* 8035BC9C 003578FC 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035BCA0 00357900 38 A0 00 06 */ li r5, 6
+/* 8035BCA4 00357904 4B CA 83 5D */ bl memcpy
+/* 8035BCA8 00357908 38 60 00 03 */ li r3, 3
+/* 8035BCAC 0035790C 38 00 00 07 */ li r0, 7
+/* 8035BCB0 00357910 98 61 00 26 */ stb r3, 0x26(r1)
+/* 8035BCB4 00357914 98 01 00 27 */ stb r0, 0x27(r1)
+/* 8035BCB8 00357918 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8035BCBC 0035791C 4B F9 B0 BD */ bl SOHtoNl
+/* 8035BCC0 00357920 90 61 00 28 */ stw r3, 0x28(r1)
+/* 8035BCC4 00357924 80 1F 00 30 */ lwz r0, 0x30(r31)
+/* 8035BCC8 00357928 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8035BCCC 0035792C A0 7F 00 34 */ lhz r3, 0x34(r31)
+/* 8035BCD0 00357930 4B F9 B0 AD */ bl SOHtoNs
+/* 8035BCD4 00357934 B0 61 00 30 */ sth r3, 0x30(r1)
+/* 8035BCD8 00357938 38 61 00 08 */ addi r3, r1, 8
+/* 8035BCDC 0035793C 88 1F 00 36 */ lbz r0, 0x36(r31)
+/* 8035BCE0 00357940 98 01 00 32 */ stb r0, 0x32(r1)
+/* 8035BCE4 00357944 80 BF 00 10 */ lwz r5, 0x10(r31)
+/* 8035BCE8 00357948 20 85 00 02 */ subfic r4, r5, 2
+/* 8035BCEC 0035794C 38 05 FF FE */ addi r0, r5, -2
+/* 8035BCF0 00357950 7C 80 03 78 */ or r0, r4, r0
+/* 8035BCF4 00357954 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035BCF8 00357958 98 01 00 33 */ stb r0, 0x33(r1)
+/* 8035BCFC 0035795C 80 1F 00 30 */ lwz r0, 0x30(r31)
+/* 8035BD00 00357960 90 01 00 08 */ stw r0, 8(r1)
+/* 8035BD04 00357964 4B F9 B0 15 */ bl SOInetNtoA
+/* 8035BD08 00357968 83 DF 00 04 */ lwz r30, 4(r31)
+/* 8035BD0C 0035796C A0 7F 00 34 */ lhz r3, 0x34(r31)
+/* 8035BD10 00357970 2C 1E FF FF */ cmpwi r30, -1
+/* 8035BD14 00357974 83 BF 00 30 */ lwz r29, 0x30(r31)
+/* 8035BD18 00357978 41 82 00 08 */ beq lbl_8035BD20
+/* 8035BD1C 0035797C 48 00 00 08 */ b lbl_8035BD24
+lbl_8035BD20:
+/* 8035BD20 00357980 83 DF 00 00 */ lwz r30, 0(r31)
+lbl_8035BD24:
+/* 8035BD24 00357984 38 00 00 02 */ li r0, 2
+/* 8035BD28 00357988 98 01 00 11 */ stb r0, 0x11(r1)
+/* 8035BD2C 0035798C 4B F9 B0 51 */ bl SOHtoNs
+/* 8035BD30 00357990 B0 61 00 12 */ sth r3, 0x12(r1)
+/* 8035BD34 00357994 7F C3 F3 78 */ mr r3, r30
+/* 8035BD38 00357998 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035BD3C 0035799C 38 E1 00 10 */ addi r7, r1, 0x10
+/* 8035BD40 003579A0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035BD44 003579A4 38 A0 00 14 */ li r5, 0x14
+/* 8035BD48 003579A8 38 C0 00 00 */ li r6, 0
+/* 8035BD4C 003579AC 39 00 00 08 */ li r8, 8
+/* 8035BD50 003579B0 4B FD C1 45 */ bl sendto
+/* 8035BD54 003579B4 4B FD D2 85 */ bl current_time
+/* 8035BD58 003579B8 88 1F 00 36 */ lbz r0, 0x36(r31)
+/* 8035BD5C 003579BC 38 83 02 BC */ addi r4, r3, 0x2bc
+/* 8035BD60 003579C0 38 60 00 07 */ li r3, 7
+/* 8035BD64 003579C4 90 9F 00 2C */ stw r4, 0x2c(r31)
+/* 8035BD68 003579C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035BD6C 003579CC 90 7F 00 28 */ stw r3, 0x28(r31)
+/* 8035BD70 003579D0 41 82 00 0C */ beq lbl_8035BD7C
+/* 8035BD74 003579D4 38 00 00 01 */ li r0, 1
+/* 8035BD78 003579D8 98 1F 00 37 */ stb r0, 0x37(r31)
+lbl_8035BD7C:
+/* 8035BD7C 003579DC 80 01 00 D4 */ lwz r0, 0xd4(r1)
+/* 8035BD80 003579E0 83 E1 00 CC */ lwz r31, 0xcc(r1)
+/* 8035BD84 003579E4 83 C1 00 C8 */ lwz r30, 0xc8(r1)
+/* 8035BD88 003579E8 83 A1 00 C4 */ lwz r29, 0xc4(r1)
+/* 8035BD8C 003579EC 83 81 00 C0 */ lwz r28, 0xc0(r1)
+/* 8035BD90 003579F0 7C 08 03 A6 */ mtlr r0
+/* 8035BD94 003579F4 38 21 00 D0 */ addi r1, r1, 0xd0
+/* 8035BD98 003579F8 4E 80 00 20 */ blr
+
+.global ProcessPingPacket
+ProcessPingPacket:
+/* 8035BD9C 003579FC 94 21 FE D0 */ stwu r1, -0x130(r1)
+/* 8035BDA0 00357A00 7C 08 02 A6 */ mflr r0
+/* 8035BDA4 00357A04 90 01 01 34 */ stw r0, 0x134(r1)
+/* 8035BDA8 00357A08 93 E1 01 2C */ stw r31, 0x12c(r1)
+/* 8035BDAC 00357A0C 7C BF 2B 78 */ mr r31, r5
+/* 8035BDB0 00357A10 93 C1 01 28 */ stw r30, 0x128(r1)
+/* 8035BDB4 00357A14 7C 7E 1B 78 */ mr r30, r3
+/* 8035BDB8 00357A18 93 A1 01 24 */ stw r29, 0x124(r1)
+/* 8035BDBC 00357A1C 93 81 01 20 */ stw r28, 0x120(r1)
+/* 8035BDC0 00357A20 7C 9C 23 78 */ mr r28, r4
+/* 8035BDC4 00357A24 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8035BDC8 00357A28 2C 00 00 02 */ cmpwi r0, 2
+/* 8035BDCC 00357A2C 41 80 03 4C */ blt lbl_8035C118
+/* 8035BDD0 00357A30 80 05 00 04 */ lwz r0, 4(r5)
+/* 8035BDD4 00357A34 38 61 00 14 */ addi r3, r1, 0x14
+/* 8035BDD8 00357A38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035BDDC 00357A3C 4B F9 AF 3D */ bl SOInetNtoA
+/* 8035BDE0 00357A40 A0 7F 00 02 */ lhz r3, 2(r31)
+/* 8035BDE4 00357A44 4B F9 AF 8D */ bl SONtoHs
+/* 8035BDE8 00357A48 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8035BDEC 00357A4C 90 1E 00 30 */ stw r0, 0x30(r30)
+/* 8035BDF0 00357A50 A0 7F 00 02 */ lhz r3, 2(r31)
+/* 8035BDF4 00357A54 4B F9 AF 7D */ bl SONtoHs
+/* 8035BDF8 00357A58 38 00 00 01 */ li r0, 1
+/* 8035BDFC 00357A5C B0 7E 00 34 */ sth r3, 0x34(r30)
+/* 8035BE00 00357A60 98 1E 00 36 */ stb r0, 0x36(r30)
+/* 8035BE04 00357A64 88 1C 00 12 */ lbz r0, 0x12(r28)
+/* 8035BE08 00357A68 2C 00 00 00 */ cmpwi r0, 0
+/* 8035BE0C 00357A6C 40 82 00 EC */ bne lbl_8035BEF8
+/* 8035BE10 00357A70 38 61 00 C8 */ addi r3, r1, 0xc8
+/* 8035BE14 00357A74 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035BE18 00357A78 38 A0 00 06 */ li r5, 6
+/* 8035BE1C 00357A7C 4B CA 81 E5 */ bl memcpy
+/* 8035BE20 00357A80 38 60 00 03 */ li r3, 3
+/* 8035BE24 00357A84 38 00 00 07 */ li r0, 7
+/* 8035BE28 00357A88 98 61 00 CE */ stb r3, 0xce(r1)
+/* 8035BE2C 00357A8C 98 01 00 CF */ stb r0, 0xcf(r1)
+/* 8035BE30 00357A90 80 7E 00 08 */ lwz r3, 8(r30)
+/* 8035BE34 00357A94 4B F9 AF 45 */ bl SOHtoNl
+/* 8035BE38 00357A98 90 61 00 D0 */ stw r3, 0xd0(r1)
+/* 8035BE3C 00357A9C 80 1E 00 30 */ lwz r0, 0x30(r30)
+/* 8035BE40 00357AA0 90 01 00 D4 */ stw r0, 0xd4(r1)
+/* 8035BE44 00357AA4 A0 7E 00 34 */ lhz r3, 0x34(r30)
+/* 8035BE48 00357AA8 4B F9 AF 35 */ bl SOHtoNs
+/* 8035BE4C 00357AAC B0 61 00 D8 */ sth r3, 0xd8(r1)
+/* 8035BE50 00357AB0 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035BE54 00357AB4 88 1E 00 36 */ lbz r0, 0x36(r30)
+/* 8035BE58 00357AB8 98 01 00 DA */ stb r0, 0xda(r1)
+/* 8035BE5C 00357ABC 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 8035BE60 00357AC0 20 85 00 02 */ subfic r4, r5, 2
+/* 8035BE64 00357AC4 38 05 FF FE */ addi r0, r5, -2
+/* 8035BE68 00357AC8 7C 80 03 78 */ or r0, r4, r0
+/* 8035BE6C 00357ACC 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035BE70 00357AD0 98 01 00 DB */ stb r0, 0xdb(r1)
+/* 8035BE74 00357AD4 80 1E 00 30 */ lwz r0, 0x30(r30)
+/* 8035BE78 00357AD8 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8035BE7C 00357ADC 4B F9 AE 9D */ bl SOInetNtoA
+/* 8035BE80 00357AE0 83 BE 00 04 */ lwz r29, 4(r30)
+/* 8035BE84 00357AE4 A0 7E 00 34 */ lhz r3, 0x34(r30)
+/* 8035BE88 00357AE8 2C 1D FF FF */ cmpwi r29, -1
+/* 8035BE8C 00357AEC 83 FE 00 30 */ lwz r31, 0x30(r30)
+/* 8035BE90 00357AF0 41 82 00 08 */ beq lbl_8035BE98
+/* 8035BE94 00357AF4 48 00 00 08 */ b lbl_8035BE9C
+lbl_8035BE98:
+/* 8035BE98 00357AF8 83 BE 00 00 */ lwz r29, 0(r30)
+lbl_8035BE9C:
+/* 8035BE9C 00357AFC 38 00 00 02 */ li r0, 2
+/* 8035BEA0 00357B00 98 01 00 29 */ stb r0, 0x29(r1)
+/* 8035BEA4 00357B04 4B F9 AE D9 */ bl SOHtoNs
+/* 8035BEA8 00357B08 B0 61 00 2A */ sth r3, 0x2a(r1)
+/* 8035BEAC 00357B0C 7F A3 EB 78 */ mr r3, r29
+/* 8035BEB0 00357B10 38 81 00 C8 */ addi r4, r1, 0xc8
+/* 8035BEB4 00357B14 38 E1 00 28 */ addi r7, r1, 0x28
+/* 8035BEB8 00357B18 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8035BEBC 00357B1C 38 A0 00 14 */ li r5, 0x14
+/* 8035BEC0 00357B20 38 C0 00 00 */ li r6, 0
+/* 8035BEC4 00357B24 39 00 00 08 */ li r8, 8
+/* 8035BEC8 00357B28 4B FD BF CD */ bl sendto
+/* 8035BECC 00357B2C 4B FD D1 0D */ bl current_time
+/* 8035BED0 00357B30 88 1E 00 36 */ lbz r0, 0x36(r30)
+/* 8035BED4 00357B34 38 83 02 BC */ addi r4, r3, 0x2bc
+/* 8035BED8 00357B38 38 60 00 07 */ li r3, 7
+/* 8035BEDC 00357B3C 90 9E 00 2C */ stw r4, 0x2c(r30)
+/* 8035BEE0 00357B40 2C 00 00 00 */ cmpwi r0, 0
+/* 8035BEE4 00357B44 90 7E 00 28 */ stw r3, 0x28(r30)
+/* 8035BEE8 00357B48 41 82 02 30 */ beq lbl_8035C118
+/* 8035BEEC 00357B4C 38 00 00 01 */ li r0, 1
+/* 8035BEF0 00357B50 98 1E 00 37 */ stb r0, 0x37(r30)
+/* 8035BEF4 00357B54 48 00 02 24 */ b lbl_8035C118
+lbl_8035BEF8:
+/* 8035BEF8 00357B58 80 1E 00 10 */ lwz r0, 0x10(r30)
+/* 8035BEFC 00357B5C 2C 00 00 02 */ cmpwi r0, 2
+/* 8035BF00 00357B60 40 82 01 28 */ bne lbl_8035C028
+/* 8035BF04 00357B64 88 1E 00 37 */ lbz r0, 0x37(r30)
+/* 8035BF08 00357B68 2C 00 00 00 */ cmpwi r0, 0
+/* 8035BF0C 00357B6C 40 82 00 E8 */ bne lbl_8035BFF4
+/* 8035BF10 00357B70 38 61 00 7C */ addi r3, r1, 0x7c
+/* 8035BF14 00357B74 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035BF18 00357B78 38 A0 00 06 */ li r5, 6
+/* 8035BF1C 00357B7C 4B CA 80 E5 */ bl memcpy
+/* 8035BF20 00357B80 38 60 00 03 */ li r3, 3
+/* 8035BF24 00357B84 38 00 00 07 */ li r0, 7
+/* 8035BF28 00357B88 98 61 00 82 */ stb r3, 0x82(r1)
+/* 8035BF2C 00357B8C 98 01 00 83 */ stb r0, 0x83(r1)
+/* 8035BF30 00357B90 80 7E 00 08 */ lwz r3, 8(r30)
+/* 8035BF34 00357B94 4B F9 AE 45 */ bl SOHtoNl
+/* 8035BF38 00357B98 90 61 00 84 */ stw r3, 0x84(r1)
+/* 8035BF3C 00357B9C 80 1E 00 30 */ lwz r0, 0x30(r30)
+/* 8035BF40 00357BA0 90 01 00 88 */ stw r0, 0x88(r1)
+/* 8035BF44 00357BA4 A0 7E 00 34 */ lhz r3, 0x34(r30)
+/* 8035BF48 00357BA8 4B F9 AE 35 */ bl SOHtoNs
+/* 8035BF4C 00357BAC B0 61 00 8C */ sth r3, 0x8c(r1)
+/* 8035BF50 00357BB0 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035BF54 00357BB4 88 1E 00 36 */ lbz r0, 0x36(r30)
+/* 8035BF58 00357BB8 98 01 00 8E */ stb r0, 0x8e(r1)
+/* 8035BF5C 00357BBC 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 8035BF60 00357BC0 20 85 00 02 */ subfic r4, r5, 2
+/* 8035BF64 00357BC4 38 05 FF FE */ addi r0, r5, -2
+/* 8035BF68 00357BC8 7C 80 03 78 */ or r0, r4, r0
+/* 8035BF6C 00357BCC 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035BF70 00357BD0 98 01 00 8F */ stb r0, 0x8f(r1)
+/* 8035BF74 00357BD4 80 1E 00 30 */ lwz r0, 0x30(r30)
+/* 8035BF78 00357BD8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8035BF7C 00357BDC 4B F9 AD 9D */ bl SOInetNtoA
+/* 8035BF80 00357BE0 83 9E 00 04 */ lwz r28, 4(r30)
+/* 8035BF84 00357BE4 A0 7E 00 34 */ lhz r3, 0x34(r30)
+/* 8035BF88 00357BE8 2C 1C FF FF */ cmpwi r28, -1
+/* 8035BF8C 00357BEC 83 BE 00 30 */ lwz r29, 0x30(r30)
+/* 8035BF90 00357BF0 41 82 00 08 */ beq lbl_8035BF98
+/* 8035BF94 00357BF4 48 00 00 08 */ b lbl_8035BF9C
+lbl_8035BF98:
+/* 8035BF98 00357BF8 83 9E 00 00 */ lwz r28, 0(r30)
+lbl_8035BF9C:
+/* 8035BF9C 00357BFC 38 00 00 02 */ li r0, 2
+/* 8035BFA0 00357C00 98 01 00 21 */ stb r0, 0x21(r1)
+/* 8035BFA4 00357C04 4B F9 AD D9 */ bl SOHtoNs
+/* 8035BFA8 00357C08 B0 61 00 22 */ sth r3, 0x22(r1)
+/* 8035BFAC 00357C0C 7F 83 E3 78 */ mr r3, r28
+/* 8035BFB0 00357C10 38 81 00 7C */ addi r4, r1, 0x7c
+/* 8035BFB4 00357C14 38 E1 00 20 */ addi r7, r1, 0x20
+/* 8035BFB8 00357C18 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8035BFBC 00357C1C 38 A0 00 14 */ li r5, 0x14
+/* 8035BFC0 00357C20 38 C0 00 00 */ li r6, 0
+/* 8035BFC4 00357C24 39 00 00 08 */ li r8, 8
+/* 8035BFC8 00357C28 4B FD BE CD */ bl sendto
+/* 8035BFCC 00357C2C 4B FD D0 0D */ bl current_time
+/* 8035BFD0 00357C30 88 1E 00 36 */ lbz r0, 0x36(r30)
+/* 8035BFD4 00357C34 38 83 02 BC */ addi r4, r3, 0x2bc
+/* 8035BFD8 00357C38 38 60 00 07 */ li r3, 7
+/* 8035BFDC 00357C3C 90 9E 00 2C */ stw r4, 0x2c(r30)
+/* 8035BFE0 00357C40 2C 00 00 00 */ cmpwi r0, 0
+/* 8035BFE4 00357C44 90 7E 00 28 */ stw r3, 0x28(r30)
+/* 8035BFE8 00357C48 41 82 00 0C */ beq lbl_8035BFF4
+/* 8035BFEC 00357C4C 38 00 00 01 */ li r0, 1
+/* 8035BFF0 00357C50 98 1E 00 37 */ stb r0, 0x37(r30)
+lbl_8035BFF4:
+/* 8035BFF4 00357C54 38 00 00 03 */ li r0, 3
+/* 8035BFF8 00357C58 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 8035BFFC 00357C5C 4B FD CF DD */ bl current_time
+/* 8035C000 00357C60 80 BE 00 04 */ lwz r5, 4(r30)
+/* 8035C004 00357C64 38 03 13 88 */ addi r0, r3, 0x1388
+/* 8035C008 00357C68 90 1E 00 2C */ stw r0, 0x2c(r30)
+/* 8035C00C 00357C6C 2C 05 FF FF */ cmpwi r5, -1
+/* 8035C010 00357C70 41 82 01 08 */ beq lbl_8035C118
+/* 8035C014 00357C74 7F C3 F3 78 */ mr r3, r30
+/* 8035C018 00357C78 7F E6 FB 78 */ mr r6, r31
+/* 8035C01C 00357C7C 38 80 00 00 */ li r4, 0
+/* 8035C020 00357C80 4B FF EC 65 */ bl StartReport
+/* 8035C024 00357C84 48 00 00 F4 */ b lbl_8035C118
+lbl_8035C028:
+/* 8035C028 00357C88 88 1C 00 13 */ lbz r0, 0x13(r28)
+/* 8035C02C 00357C8C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C030 00357C90 40 82 00 E8 */ bne lbl_8035C118
+/* 8035C034 00357C94 38 61 00 30 */ addi r3, r1, 0x30
+/* 8035C038 00357C98 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035C03C 00357C9C 38 A0 00 06 */ li r5, 6
+/* 8035C040 00357CA0 4B CA 7F C1 */ bl memcpy
+/* 8035C044 00357CA4 38 60 00 03 */ li r3, 3
+/* 8035C048 00357CA8 38 00 00 07 */ li r0, 7
+/* 8035C04C 00357CAC 98 61 00 36 */ stb r3, 0x36(r1)
+/* 8035C050 00357CB0 98 01 00 37 */ stb r0, 0x37(r1)
+/* 8035C054 00357CB4 80 7E 00 08 */ lwz r3, 8(r30)
+/* 8035C058 00357CB8 4B F9 AD 21 */ bl SOHtoNl
+/* 8035C05C 00357CBC 90 61 00 38 */ stw r3, 0x38(r1)
+/* 8035C060 00357CC0 80 1E 00 30 */ lwz r0, 0x30(r30)
+/* 8035C064 00357CC4 90 01 00 3C */ stw r0, 0x3c(r1)
+/* 8035C068 00357CC8 A0 7E 00 34 */ lhz r3, 0x34(r30)
+/* 8035C06C 00357CCC 4B F9 AD 11 */ bl SOHtoNs
+/* 8035C070 00357CD0 B0 61 00 40 */ sth r3, 0x40(r1)
+/* 8035C074 00357CD4 38 61 00 08 */ addi r3, r1, 8
+/* 8035C078 00357CD8 88 1E 00 36 */ lbz r0, 0x36(r30)
+/* 8035C07C 00357CDC 98 01 00 42 */ stb r0, 0x42(r1)
+/* 8035C080 00357CE0 80 BE 00 10 */ lwz r5, 0x10(r30)
+/* 8035C084 00357CE4 20 85 00 02 */ subfic r4, r5, 2
+/* 8035C088 00357CE8 38 05 FF FE */ addi r0, r5, -2
+/* 8035C08C 00357CEC 7C 80 03 78 */ or r0, r4, r0
+/* 8035C090 00357CF0 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035C094 00357CF4 98 01 00 43 */ stb r0, 0x43(r1)
+/* 8035C098 00357CF8 80 1E 00 30 */ lwz r0, 0x30(r30)
+/* 8035C09C 00357CFC 90 01 00 08 */ stw r0, 8(r1)
+/* 8035C0A0 00357D00 4B F9 AC 79 */ bl SOInetNtoA
+/* 8035C0A4 00357D04 83 9E 00 04 */ lwz r28, 4(r30)
+/* 8035C0A8 00357D08 A0 7E 00 34 */ lhz r3, 0x34(r30)
+/* 8035C0AC 00357D0C 2C 1C FF FF */ cmpwi r28, -1
+/* 8035C0B0 00357D10 83 BE 00 30 */ lwz r29, 0x30(r30)
+/* 8035C0B4 00357D14 41 82 00 08 */ beq lbl_8035C0BC
+/* 8035C0B8 00357D18 48 00 00 08 */ b lbl_8035C0C0
+lbl_8035C0BC:
+/* 8035C0BC 00357D1C 83 9E 00 00 */ lwz r28, 0(r30)
+lbl_8035C0C0:
+/* 8035C0C0 00357D20 38 00 00 02 */ li r0, 2
+/* 8035C0C4 00357D24 98 01 00 19 */ stb r0, 0x19(r1)
+/* 8035C0C8 00357D28 4B F9 AC B5 */ bl SOHtoNs
+/* 8035C0CC 00357D2C B0 61 00 1A */ sth r3, 0x1a(r1)
+/* 8035C0D0 00357D30 7F 83 E3 78 */ mr r3, r28
+/* 8035C0D4 00357D34 38 81 00 30 */ addi r4, r1, 0x30
+/* 8035C0D8 00357D38 38 E1 00 18 */ addi r7, r1, 0x18
+/* 8035C0DC 00357D3C 93 A1 00 1C */ stw r29, 0x1c(r1)
+/* 8035C0E0 00357D40 38 A0 00 14 */ li r5, 0x14
+/* 8035C0E4 00357D44 38 C0 00 00 */ li r6, 0
+/* 8035C0E8 00357D48 39 00 00 08 */ li r8, 8
+/* 8035C0EC 00357D4C 4B FD BD A9 */ bl sendto
+/* 8035C0F0 00357D50 4B FD CE E9 */ bl current_time
+/* 8035C0F4 00357D54 88 1E 00 36 */ lbz r0, 0x36(r30)
+/* 8035C0F8 00357D58 38 83 02 BC */ addi r4, r3, 0x2bc
+/* 8035C0FC 00357D5C 38 60 00 07 */ li r3, 7
+/* 8035C100 00357D60 90 9E 00 2C */ stw r4, 0x2c(r30)
+/* 8035C104 00357D64 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C108 00357D68 90 7E 00 28 */ stw r3, 0x28(r30)
+/* 8035C10C 00357D6C 41 82 00 0C */ beq lbl_8035C118
+/* 8035C110 00357D70 38 00 00 01 */ li r0, 1
+/* 8035C114 00357D74 98 1E 00 37 */ stb r0, 0x37(r30)
+lbl_8035C118:
+/* 8035C118 00357D78 80 01 01 34 */ lwz r0, 0x134(r1)
+/* 8035C11C 00357D7C 83 E1 01 2C */ lwz r31, 0x12c(r1)
+/* 8035C120 00357D80 83 C1 01 28 */ lwz r30, 0x128(r1)
+/* 8035C124 00357D84 83 A1 01 24 */ lwz r29, 0x124(r1)
+/* 8035C128 00357D88 83 81 01 20 */ lwz r28, 0x120(r1)
+/* 8035C12C 00357D8C 7C 08 03 A6 */ mtlr r0
+/* 8035C130 00357D90 38 21 01 30 */ addi r1, r1, 0x130
+/* 8035C134 00357D94 4E 80 00 20 */ blr
+
+.global ProcessInitPacket
+ProcessInitPacket:
+/* 8035C138 00357D98 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035C13C 00357D9C 7C 08 02 A6 */ mflr r0
+/* 8035C140 00357DA0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035C144 00357DA4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035C148 00357DA8 7C 7F 1B 78 */ mr r31, r3
+/* 8035C14C 00357DAC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035C150 00357DB0 7C BE 2B 78 */ mr r30, r5
+/* 8035C154 00357DB4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035C158 00357DB8 7C 9D 23 78 */ mr r29, r4
+/* 8035C15C 00357DBC 88 04 00 07 */ lbz r0, 7(r4)
+/* 8035C160 00357DC0 2C 00 00 02 */ cmpwi r0, 2
+/* 8035C164 00357DC4 41 82 00 B4 */ beq lbl_8035C218
+/* 8035C168 00357DC8 40 80 00 10 */ bge lbl_8035C178
+/* 8035C16C 00357DCC 2C 00 00 01 */ cmpwi r0, 1
+/* 8035C170 00357DD0 40 80 00 14 */ bge lbl_8035C184
+/* 8035C174 00357DD4 48 00 01 AC */ b lbl_8035C320
+lbl_8035C178:
+/* 8035C178 00357DD8 2C 00 00 0E */ cmpwi r0, 0xe
+/* 8035C17C 00357DDC 41 82 00 EC */ beq lbl_8035C268
+/* 8035C180 00357DE0 48 00 01 A0 */ b lbl_8035C320
+lbl_8035C184:
+/* 8035C184 00357DE4 88 04 00 0C */ lbz r0, 0xc(r4)
+/* 8035C188 00357DE8 28 00 00 03 */ cmplwi r0, 3
+/* 8035C18C 00357DEC 41 81 01 94 */ bgt lbl_8035C320
+/* 8035C190 00357DF0 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d
+/* 8035C194 00357DF4 38 A0 00 01 */ li r5, 1
+/* 8035C198 00357DF8 7C 83 02 14 */ add r4, r3, r0
+/* 8035C19C 00357DFC 90 A4 00 14 */ stw r5, 0x14(r4)
+/* 8035C1A0 00357E00 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8035C1A4 00357E04 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C1A8 00357E08 40 82 01 78 */ bne lbl_8035C320
+/* 8035C1AC 00357E0C 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8035C1B0 00357E10 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C1B4 00357E14 41 82 01 6C */ beq lbl_8035C320
+/* 8035C1B8 00357E18 80 03 00 1C */ lwz r0, 0x1c(r3)
+/* 8035C1BC 00357E1C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C1C0 00357E20 41 82 01 60 */ beq lbl_8035C320
+/* 8035C1C4 00357E24 80 03 00 20 */ lwz r0, 0x20(r3)
+/* 8035C1C8 00357E28 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C1CC 00357E2C 41 82 01 54 */ beq lbl_8035C320
+/* 8035C1D0 00357E30 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035C1D4 00357E34 2C 00 FF FF */ cmpwi r0, -1
+/* 8035C1D8 00357E38 41 82 00 10 */ beq lbl_8035C1E8
+/* 8035C1DC 00357E3C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8035C1E0 00357E40 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C1E4 00357E44 41 82 01 3C */ beq lbl_8035C320
+lbl_8035C1E8:
+/* 8035C1E8 00357E48 38 00 00 01 */ li r0, 1
+/* 8035C1EC 00357E4C 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8035C1F0 00357E50 4B FD CD E9 */ bl current_time
+/* 8035C1F4 00357E54 3C 63 00 01 */ addis r3, r3, 1
+/* 8035C1F8 00357E58 81 9F 00 38 */ lwz r12, 0x38(r31)
+/* 8035C1FC 00357E5C 38 03 EA 60 */ addi r0, r3, -5536
+/* 8035C200 00357E60 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8035C204 00357E64 90 1F 00 2C */ stw r0, 0x2c(r31)
+/* 8035C208 00357E68 80 9F 00 40 */ lwz r4, 0x40(r31)
+/* 8035C20C 00357E6C 7D 89 03 A6 */ mtctr r12
+/* 8035C210 00357E70 4E 80 04 21 */ bctrl
+/* 8035C214 00357E74 48 00 01 0C */ b lbl_8035C320
+lbl_8035C218:
+/* 8035C218 00357E78 38 00 00 03 */ li r0, 3
+/* 8035C21C 00357E7C 98 04 00 07 */ stb r0, 7(r4)
+/* 8035C220 00357E80 A0 65 00 02 */ lhz r3, 2(r5)
+/* 8035C224 00357E84 4B F9 AB 4D */ bl SONtoHs
+/* 8035C228 00357E88 83 DE 00 04 */ lwz r30, 4(r30)
+/* 8035C22C 00357E8C 38 00 00 02 */ li r0, 2
+/* 8035C230 00357E90 83 FF 00 00 */ lwz r31, 0(r31)
+/* 8035C234 00357E94 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 8035C238 00357E98 98 01 00 09 */ stb r0, 9(r1)
+/* 8035C23C 00357E9C 4B F9 AB 41 */ bl SOHtoNs
+/* 8035C240 00357EA0 B0 61 00 0A */ sth r3, 0xa(r1)
+/* 8035C244 00357EA4 7F E3 FB 78 */ mr r3, r31
+/* 8035C248 00357EA8 7F A4 EB 78 */ mr r4, r29
+/* 8035C24C 00357EAC 38 E1 00 08 */ addi r7, r1, 8
+/* 8035C250 00357EB0 93 C1 00 0C */ stw r30, 0xc(r1)
+/* 8035C254 00357EB4 38 A0 00 15 */ li r5, 0x15
+/* 8035C258 00357EB8 38 C0 00 00 */ li r6, 0
+/* 8035C25C 00357EBC 39 00 00 08 */ li r8, 8
+/* 8035C260 00357EC0 4B FD BC 35 */ bl sendto
+/* 8035C264 00357EC4 48 00 00 BC */ b lbl_8035C320
+lbl_8035C268:
+/* 8035C268 00357EC8 81 9F 00 3C */ lwz r12, 0x3c(r31)
+/* 8035C26C 00357ECC 38 00 00 06 */ li r0, 6
+/* 8035C270 00357ED0 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8035C274 00357ED4 38 BF 00 4C */ addi r5, r31, 0x4c
+/* 8035C278 00357ED8 80 63 00 44 */ lwz r3, 0x44(r3)
+/* 8035C27C 00357EDC 80 9F 00 48 */ lwz r4, 0x48(r31)
+/* 8035C280 00357EE0 80 DF 00 40 */ lwz r6, 0x40(r31)
+/* 8035C284 00357EE4 7D 89 03 A6 */ mtctr r12
+/* 8035C288 00357EE8 4E 80 04 21 */ bctrl
+/* 8035C28C 00357EEC 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8035C290 00357EF0 2C 00 FF FF */ cmpwi r0, -1
+/* 8035C294 00357EF4 40 82 00 0C */ bne lbl_8035C2A0
+/* 8035C298 00357EF8 38 00 FF FF */ li r0, -1
+/* 8035C29C 00357EFC 90 1F 00 00 */ stw r0, 0(r31)
+lbl_8035C2A0:
+/* 8035C2A0 00357F00 80 0D B1 50 */ lwz r0, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C2A4 00357F04 83 DF 00 08 */ lwz r30, 8(r31)
+/* 8035C2A8 00357F08 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C2AC 00357F0C 40 82 00 0C */ bne lbl_8035C2B8
+/* 8035C2B0 00357F10 3B C0 00 00 */ li r30, 0
+/* 8035C2B4 00357F14 48 00 00 44 */ b lbl_8035C2F8
+lbl_8035C2B8:
+/* 8035C2B8 00357F18 3B E0 00 00 */ li r31, 0
+/* 8035C2BC 00357F1C 48 00 00 28 */ b lbl_8035C2E4
+lbl_8035C2C0:
+/* 8035C2C0 00357F20 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C2C4 00357F24 7F E4 FB 78 */ mr r4, r31
+/* 8035C2C8 00357F28 4B FD 9C 29 */ bl ArrayNth
+/* 8035C2CC 00357F2C 80 03 00 08 */ lwz r0, 8(r3)
+/* 8035C2D0 00357F30 7C 00 F0 00 */ cmpw r0, r30
+/* 8035C2D4 00357F34 40 82 00 0C */ bne lbl_8035C2E0
+/* 8035C2D8 00357F38 7C 7E 1B 78 */ mr r30, r3
+/* 8035C2DC 00357F3C 48 00 00 1C */ b lbl_8035C2F8
+lbl_8035C2E0:
+/* 8035C2E0 00357F40 3B FF 00 01 */ addi r31, r31, 1
+lbl_8035C2E4:
+/* 8035C2E4 00357F44 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C2E8 00357F48 4B FD 9C 01 */ bl ArrayLength
+/* 8035C2EC 00357F4C 7C 1F 18 00 */ cmpw r31, r3
+/* 8035C2F0 00357F50 41 80 FF D0 */ blt lbl_8035C2C0
+/* 8035C2F4 00357F54 3B C0 00 00 */ li r30, 0
+lbl_8035C2F8:
+/* 8035C2F8 00357F58 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035C2FC 00357F5C 41 82 00 24 */ beq lbl_8035C320
+/* 8035C300 00357F60 80 7E 00 00 */ lwz r3, 0(r30)
+/* 8035C304 00357F64 2C 03 FF FF */ cmpwi r3, -1
+/* 8035C308 00357F68 41 82 00 08 */ beq lbl_8035C310
+/* 8035C30C 00357F6C 4B FD B8 F1 */ bl closesocket
+lbl_8035C310:
+/* 8035C310 00357F70 38 60 FF FF */ li r3, -1
+/* 8035C314 00357F74 38 00 00 04 */ li r0, 4
+/* 8035C318 00357F78 90 7E 00 00 */ stw r3, 0(r30)
+/* 8035C31C 00357F7C 90 1E 00 10 */ stw r0, 0x10(r30)
+lbl_8035C320:
+/* 8035C320 00357F80 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035C324 00357F84 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035C328 00357F88 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035C32C 00357F8C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035C330 00357F90 7C 08 03 A6 */ mtlr r0
+/* 8035C334 00357F94 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035C338 00357F98 4E 80 00 20 */ blr
+
+.global NNProcessData
+NNProcessData:
+/* 8035C33C 00357F9C 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 8035C340 00357FA0 7C 08 02 A6 */ mflr r0
+/* 8035C344 00357FA4 90 01 00 74 */ stw r0, 0x74(r1)
+/* 8035C348 00357FA8 93 E1 00 6C */ stw r31, 0x6c(r1)
+/* 8035C34C 00357FAC 7C 7F 1B 78 */ mr r31, r3
+/* 8035C350 00357FB0 93 C1 00 68 */ stw r30, 0x68(r1)
+/* 8035C354 00357FB4 7C 9E 23 78 */ mr r30, r4
+/* 8035C358 00357FB8 38 8D 94 A8 */ addi r4, r13, lbl_8063E768-_SDA_BASE_
+/* 8035C35C 00357FBC 93 A1 00 64 */ stw r29, 0x64(r1)
+/* 8035C360 00357FC0 93 81 00 60 */ stw r28, 0x60(r1)
+/* 8035C364 00357FC4 7C BC 2B 78 */ mr r28, r5
+/* 8035C368 00357FC8 38 A0 00 06 */ li r5, 6
+/* 8035C36C 00357FCC 4B E6 E0 2D */ bl memcmp
+/* 8035C370 00357FD0 7C 60 00 34 */ cntlzw r0, r3
+/* 8035C374 00357FD4 54 00 D9 7F */ rlwinm. r0, r0, 0x1b, 5, 0x1f
+/* 8035C378 00357FD8 41 82 01 5C */ beq lbl_8035C4D4
+/* 8035C37C 00357FDC 8B BF 00 07 */ lbz r29, 7(r31)
+/* 8035C380 00357FE0 38 61 00 08 */ addi r3, r1, 8
+/* 8035C384 00357FE4 80 1C 00 04 */ lwz r0, 4(r28)
+/* 8035C388 00357FE8 90 01 00 08 */ stw r0, 8(r1)
+/* 8035C38C 00357FEC 4B F9 A9 8D */ bl SOInetNtoA
+/* 8035C390 00357FF0 A0 7C 00 02 */ lhz r3, 2(r28)
+/* 8035C394 00357FF4 4B F9 A9 DD */ bl SONtoHs
+/* 8035C398 00357FF8 28 1D 00 05 */ cmplwi r29, 5
+/* 8035C39C 00357FFC 41 82 00 0C */ beq lbl_8035C3A8
+/* 8035C3A0 00358000 28 1D 00 07 */ cmplwi r29, 7
+/* 8035C3A4 00358004 40 82 00 A8 */ bne lbl_8035C44C
+lbl_8035C3A8:
+/* 8035C3A8 00358008 2C 1E 00 14 */ cmpwi r30, 0x14
+/* 8035C3AC 0035800C 41 80 01 28 */ blt lbl_8035C4D4
+/* 8035C3B0 00358010 7F E4 FB 78 */ mr r4, r31
+/* 8035C3B4 00358014 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035C3B8 00358018 38 A0 00 14 */ li r5, 0x14
+/* 8035C3BC 0035801C 4B CA 7C 45 */ bl memcpy
+/* 8035C3C0 00358020 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8035C3C4 00358024 4B F9 A9 A9 */ bl SONtoHl
+/* 8035C3C8 00358028 80 0D B1 50 */ lwz r0, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C3CC 0035802C 7C 7F 1B 78 */ mr r31, r3
+/* 8035C3D0 00358030 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C3D4 00358034 40 82 00 0C */ bne lbl_8035C3E0
+/* 8035C3D8 00358038 38 60 00 00 */ li r3, 0
+/* 8035C3DC 0035803C 48 00 00 40 */ b lbl_8035C41C
+lbl_8035C3E0:
+/* 8035C3E0 00358040 3B C0 00 00 */ li r30, 0
+/* 8035C3E4 00358044 48 00 00 24 */ b lbl_8035C408
+lbl_8035C3E8:
+/* 8035C3E8 00358048 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C3EC 0035804C 7F C4 F3 78 */ mr r4, r30
+/* 8035C3F0 00358050 4B FD 9B 01 */ bl ArrayNth
+/* 8035C3F4 00358054 80 03 00 08 */ lwz r0, 8(r3)
+/* 8035C3F8 00358058 7C 00 F8 00 */ cmpw r0, r31
+/* 8035C3FC 0035805C 40 82 00 08 */ bne lbl_8035C404
+/* 8035C400 00358060 48 00 00 1C */ b lbl_8035C41C
+lbl_8035C404:
+/* 8035C404 00358064 3B DE 00 01 */ addi r30, r30, 1
+lbl_8035C408:
+/* 8035C408 00358068 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C40C 0035806C 4B FD 9A DD */ bl ArrayLength
+/* 8035C410 00358070 7C 1E 18 00 */ cmpw r30, r3
+/* 8035C414 00358074 41 80 FF D4 */ blt lbl_8035C3E8
+/* 8035C418 00358078 38 60 00 00 */ li r3, 0
+lbl_8035C41C:
+/* 8035C41C 0035807C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035C420 00358080 41 82 00 B4 */ beq lbl_8035C4D4
+/* 8035C424 00358084 28 1D 00 05 */ cmplwi r29, 5
+/* 8035C428 00358088 40 82 00 14 */ bne lbl_8035C43C
+/* 8035C42C 0035808C 7F 85 E3 78 */ mr r5, r28
+/* 8035C430 00358090 38 81 00 0C */ addi r4, r1, 0xc
+/* 8035C434 00358094 4B FF F7 1D */ bl ProcessConnectPacket
+/* 8035C438 00358098 48 00 00 9C */ b lbl_8035C4D4
+lbl_8035C43C:
+/* 8035C43C 0035809C 7F 85 E3 78 */ mr r5, r28
+/* 8035C440 003580A0 38 81 00 0C */ addi r4, r1, 0xc
+/* 8035C444 003580A4 4B FF F9 59 */ bl ProcessPingPacket
+/* 8035C448 003580A8 48 00 00 8C */ b lbl_8035C4D4
+lbl_8035C44C:
+/* 8035C44C 003580AC 2C 1E 00 15 */ cmpwi r30, 0x15
+/* 8035C450 003580B0 41 80 00 84 */ blt lbl_8035C4D4
+/* 8035C454 003580B4 7F E4 FB 78 */ mr r4, r31
+/* 8035C458 003580B8 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035C45C 003580BC 38 A0 00 15 */ li r5, 0x15
+/* 8035C460 003580C0 4B CA 7B A1 */ bl memcpy
+/* 8035C464 003580C4 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8035C468 003580C8 4B F9 A9 05 */ bl SONtoHl
+/* 8035C46C 003580CC 80 0D B1 50 */ lwz r0, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C470 003580D0 7C 7F 1B 78 */ mr r31, r3
+/* 8035C474 003580D4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035C478 003580D8 40 82 00 0C */ bne lbl_8035C484
+/* 8035C47C 003580DC 38 60 00 00 */ li r3, 0
+/* 8035C480 003580E0 48 00 00 40 */ b lbl_8035C4C0
+lbl_8035C484:
+/* 8035C484 003580E4 3B C0 00 00 */ li r30, 0
+/* 8035C488 003580E8 48 00 00 24 */ b lbl_8035C4AC
+lbl_8035C48C:
+/* 8035C48C 003580EC 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C490 003580F0 7F C4 F3 78 */ mr r4, r30
+/* 8035C494 003580F4 4B FD 9A 5D */ bl ArrayNth
+/* 8035C498 003580F8 80 03 00 08 */ lwz r0, 8(r3)
+/* 8035C49C 003580FC 7C 00 F8 00 */ cmpw r0, r31
+/* 8035C4A0 00358100 40 82 00 08 */ bne lbl_8035C4A8
+/* 8035C4A4 00358104 48 00 00 1C */ b lbl_8035C4C0
+lbl_8035C4A8:
+/* 8035C4A8 00358108 3B DE 00 01 */ addi r30, r30, 1
+lbl_8035C4AC:
+/* 8035C4AC 0035810C 80 6D B1 50 */ lwz r3, lbl_80640410-_SDA_BASE_(r13)
+/* 8035C4B0 00358110 4B FD 9A 39 */ bl ArrayLength
+/* 8035C4B4 00358114 7C 1E 18 00 */ cmpw r30, r3
+/* 8035C4B8 00358118 41 80 FF D4 */ blt lbl_8035C48C
+/* 8035C4BC 0035811C 38 60 00 00 */ li r3, 0
+lbl_8035C4C0:
+/* 8035C4C0 00358120 2C 03 00 00 */ cmpwi r3, 0
+/* 8035C4C4 00358124 41 82 00 10 */ beq lbl_8035C4D4
+/* 8035C4C8 00358128 7F 85 E3 78 */ mr r5, r28
+/* 8035C4CC 0035812C 38 81 00 0C */ addi r4, r1, 0xc
+/* 8035C4D0 00358130 4B FF FC 69 */ bl ProcessInitPacket
+lbl_8035C4D4:
+/* 8035C4D4 00358134 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 8035C4D8 00358138 83 E1 00 6C */ lwz r31, 0x6c(r1)
+/* 8035C4DC 0035813C 83 C1 00 68 */ lwz r30, 0x68(r1)
+/* 8035C4E0 00358140 83 A1 00 64 */ lwz r29, 0x64(r1)
+/* 8035C4E4 00358144 83 81 00 60 */ lwz r28, 0x60(r1)
+/* 8035C4E8 00358148 7C 08 03 A6 */ mtlr r0
+/* 8035C4EC 0035814C 38 21 00 70 */ addi r1, r1, 0x70
+/* 8035C4F0 00358150 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/nonport.s b/asm/SDK/DWC/gamespy/nonport.s new file mode 100644 index 0000000..e9f73a7 --- /dev/null +++ b/asm/SDK/DWC/gamespy/nonport.s @@ -0,0 +1,1795 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global socket
+socket:
+/* 80337BC4 00333824 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337BC8 00333828 7C 08 02 A6 */ mflr r0
+/* 80337BCC 0033382C 38 A0 00 00 */ li r5, 0
+/* 80337BD0 00333830 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337BD4 00333834 4B FB E6 29 */ bl __SOCreateSocket
+/* 80337BD8 00333838 2C 03 00 00 */ cmpwi r3, 0
+/* 80337BDC 0033383C 41 80 00 08 */ blt lbl_80337BE4
+/* 80337BE0 00333840 48 00 00 0C */ b lbl_80337BEC
+lbl_80337BE4:
+/* 80337BE4 00333844 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337BE8 00333848 38 60 FF FF */ li r3, -1
+lbl_80337BEC:
+/* 80337BEC 0033384C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337BF0 00333850 7C 08 03 A6 */ mtlr r0
+/* 80337BF4 00333854 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337BF8 00333858 4E 80 00 20 */ blr
+
+.global closesocket
+closesocket:
+/* 80337BFC 0033385C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337C00 00333860 7C 08 02 A6 */ mflr r0
+/* 80337C04 00333864 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337C08 00333868 4B FB E6 C9 */ bl SOClose
+/* 80337C0C 0033386C 2C 03 00 00 */ cmpwi r3, 0
+/* 80337C10 00333870 41 80 00 08 */ blt lbl_80337C18
+/* 80337C14 00333874 48 00 00 0C */ b lbl_80337C20
+lbl_80337C18:
+/* 80337C18 00333878 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337C1C 0033387C 38 60 FF FF */ li r3, -1
+lbl_80337C20:
+/* 80337C20 00333880 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337C24 00333884 7C 08 03 A6 */ mtlr r0
+/* 80337C28 00333888 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337C2C 0033388C 4E 80 00 20 */ blr
+
+.global shutdown
+shutdown:
+/* 80337C30 00333890 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337C34 00333894 7C 08 02 A6 */ mflr r0
+/* 80337C38 00333898 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337C3C 0033389C 4B FB ED C1 */ bl SOShutdown
+/* 80337C40 003338A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80337C44 003338A4 41 80 00 08 */ blt lbl_80337C4C
+/* 80337C48 003338A8 48 00 00 0C */ b lbl_80337C54
+lbl_80337C4C:
+/* 80337C4C 003338AC 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337C50 003338B0 38 60 FF FF */ li r3, -1
+lbl_80337C54:
+/* 80337C54 003338B4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337C58 003338B8 7C 08 03 A6 */ mtlr r0
+/* 80337C5C 003338BC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337C60 003338C0 4E 80 00 20 */ blr
+
+.global bind
+bind:
+/* 80337C64 003338C4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80337C68 003338C8 7C 08 02 A6 */ mflr r0
+/* 80337C6C 003338CC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80337C70 003338D0 A0 04 00 02 */ lhz r0, 2(r4)
+/* 80337C74 003338D4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80337C78 003338D8 7C BF 2B 78 */ mr r31, r5
+/* 80337C7C 003338DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80337C80 003338E0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80337C84 003338E4 7C 7E 1B 78 */ mr r30, r3
+/* 80337C88 003338E8 40 82 00 0C */ bne lbl_80337C94
+/* 80337C8C 003338EC 38 60 00 00 */ li r3, 0
+/* 80337C90 003338F0 48 00 00 34 */ b lbl_80337CC4
+lbl_80337C94:
+/* 80337C94 003338F4 38 61 00 08 */ addi r3, r1, 8
+/* 80337C98 003338F8 38 A0 00 08 */ li r5, 8
+/* 80337C9C 003338FC 4B CC C3 65 */ bl memcpy
+/* 80337CA0 00333900 9B E1 00 08 */ stb r31, 8(r1)
+/* 80337CA4 00333904 7F C3 F3 78 */ mr r3, r30
+/* 80337CA8 00333908 38 81 00 08 */ addi r4, r1, 8
+/* 80337CAC 0033390C 4B FB E8 BD */ bl SOBind
+/* 80337CB0 00333910 2C 03 00 00 */ cmpwi r3, 0
+/* 80337CB4 00333914 41 80 00 08 */ blt lbl_80337CBC
+/* 80337CB8 00333918 48 00 00 0C */ b lbl_80337CC4
+lbl_80337CBC:
+/* 80337CBC 0033391C 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337CC0 00333920 38 60 FF FF */ li r3, -1
+lbl_80337CC4:
+/* 80337CC4 00333924 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80337CC8 00333928 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80337CCC 0033392C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80337CD0 00333930 7C 08 03 A6 */ mtlr r0
+/* 80337CD4 00333934 38 21 00 20 */ addi r1, r1, 0x20
+/* 80337CD8 00333938 4E 80 00 20 */ blr
+
+.global connect
+connect:
+/* 80337CDC 0033393C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80337CE0 00333940 7C 08 02 A6 */ mflr r0
+/* 80337CE4 00333944 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80337CE8 00333948 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80337CEC 0033394C 7C BF 2B 78 */ mr r31, r5
+/* 80337CF0 00333950 38 A0 00 08 */ li r5, 8
+/* 80337CF4 00333954 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80337CF8 00333958 7C 7E 1B 78 */ mr r30, r3
+/* 80337CFC 0033395C 38 61 00 08 */ addi r3, r1, 8
+/* 80337D00 00333960 4B CC C3 01 */ bl memcpy
+/* 80337D04 00333964 9B E1 00 08 */ stb r31, 8(r1)
+/* 80337D08 00333968 7F C3 F3 78 */ mr r3, r30
+/* 80337D0C 0033396C 38 81 00 08 */ addi r4, r1, 8
+/* 80337D10 00333970 4B FB E9 41 */ bl SOConnect
+/* 80337D14 00333974 2C 03 00 00 */ cmpwi r3, 0
+/* 80337D18 00333978 41 80 00 08 */ blt lbl_80337D20
+/* 80337D1C 0033397C 48 00 00 0C */ b lbl_80337D28
+lbl_80337D20:
+/* 80337D20 00333980 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337D24 00333984 38 60 FF FF */ li r3, -1
+lbl_80337D28:
+/* 80337D28 00333988 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80337D2C 0033398C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80337D30 00333990 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80337D34 00333994 7C 08 03 A6 */ mtlr r0
+/* 80337D38 00333998 38 21 00 20 */ addi r1, r1, 0x20
+/* 80337D3C 0033399C 4E 80 00 20 */ blr
+
+.global listen
+listen:
+/* 80337D40 003339A0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337D44 003339A4 7C 08 02 A6 */ mflr r0
+/* 80337D48 003339A8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337D4C 003339AC 4B FB E6 29 */ bl SOListen
+/* 80337D50 003339B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80337D54 003339B4 41 80 00 08 */ blt lbl_80337D5C
+/* 80337D58 003339B8 48 00 00 0C */ b lbl_80337D64
+lbl_80337D5C:
+/* 80337D5C 003339BC 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337D60 003339C0 38 60 FF FF */ li r3, -1
+lbl_80337D64:
+/* 80337D64 003339C4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337D68 003339C8 7C 08 03 A6 */ mtlr r0
+/* 80337D6C 003339CC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337D70 003339D0 4E 80 00 20 */ blr
+
+.global accept
+accept:
+/* 80337D74 003339D4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337D78 003339D8 7C 08 02 A6 */ mflr r0
+/* 80337D7C 003339DC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337D80 003339E0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80337D84 003339E4 7C BF 2B 78 */ mr r31, r5
+/* 80337D88 003339E8 93 C1 00 08 */ stw r30, 8(r1)
+/* 80337D8C 003339EC 7C 9E 23 78 */ mr r30, r4
+/* 80337D90 003339F0 80 05 00 00 */ lwz r0, 0(r5)
+/* 80337D94 003339F4 98 04 00 00 */ stb r0, 0(r4)
+/* 80337D98 003339F8 4B FB E6 91 */ bl SOAccept
+/* 80337D9C 003339FC 88 1E 00 00 */ lbz r0, 0(r30)
+/* 80337DA0 00333A00 2C 03 00 00 */ cmpwi r3, 0
+/* 80337DA4 00333A04 90 1F 00 00 */ stw r0, 0(r31)
+/* 80337DA8 00333A08 41 80 00 08 */ blt lbl_80337DB0
+/* 80337DAC 00333A0C 48 00 00 0C */ b lbl_80337DB8
+lbl_80337DB0:
+/* 80337DB0 00333A10 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337DB4 00333A14 38 60 FF FF */ li r3, -1
+lbl_80337DB8:
+/* 80337DB8 00333A18 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337DBC 00333A1C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80337DC0 00333A20 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80337DC4 00333A24 7C 08 03 A6 */ mtlr r0
+/* 80337DC8 00333A28 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337DCC 00333A2C 4E 80 00 20 */ blr
+
+.global recv
+recv:
+/* 80337DD0 00333A30 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337DD4 00333A34 7C 08 02 A6 */ mflr r0
+/* 80337DD8 00333A38 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337DDC 00333A3C 4B FB EA 81 */ bl SORecv
+/* 80337DE0 00333A40 2C 03 00 00 */ cmpwi r3, 0
+/* 80337DE4 00333A44 41 80 00 08 */ blt lbl_80337DEC
+/* 80337DE8 00333A48 48 00 00 0C */ b lbl_80337DF4
+lbl_80337DEC:
+/* 80337DEC 00333A4C 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337DF0 00333A50 38 60 FF FF */ li r3, -1
+lbl_80337DF4:
+/* 80337DF4 00333A54 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337DF8 00333A58 7C 08 03 A6 */ mtlr r0
+/* 80337DFC 00333A5C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337E00 00333A60 4E 80 00 20 */ blr
+
+.global recvfrom
+recvfrom:
+/* 80337E04 00333A64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337E08 00333A68 7C 08 02 A6 */ mflr r0
+/* 80337E0C 00333A6C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337E10 00333A70 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80337E14 00333A74 7D 1F 43 78 */ mr r31, r8
+/* 80337E18 00333A78 93 C1 00 08 */ stw r30, 8(r1)
+/* 80337E1C 00333A7C 7C FE 3B 78 */ mr r30, r7
+/* 80337E20 00333A80 80 08 00 00 */ lwz r0, 0(r8)
+/* 80337E24 00333A84 98 07 00 00 */ stb r0, 0(r7)
+/* 80337E28 00333A88 4B FB EA 0D */ bl SORecvFrom
+/* 80337E2C 00333A8C 88 1E 00 00 */ lbz r0, 0(r30)
+/* 80337E30 00333A90 2C 03 00 00 */ cmpwi r3, 0
+/* 80337E34 00333A94 90 1F 00 00 */ stw r0, 0(r31)
+/* 80337E38 00333A98 41 80 00 08 */ blt lbl_80337E40
+/* 80337E3C 00333A9C 48 00 00 0C */ b lbl_80337E48
+lbl_80337E40:
+/* 80337E40 00333AA0 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337E44 00333AA4 38 60 FF FF */ li r3, -1
+lbl_80337E48:
+/* 80337E48 00333AA8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337E4C 00333AAC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80337E50 00333AB0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80337E54 00333AB4 7C 08 03 A6 */ mtlr r0
+/* 80337E58 00333AB8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337E5C 00333ABC 4E 80 00 20 */ blr
+
+.global send
+send:
+/* 80337E60 00333AC0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337E64 00333AC4 7C 08 02 A6 */ mflr r0
+/* 80337E68 00333AC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337E6C 00333ACC 4B FB EA 3D */ bl SOSend
+/* 80337E70 00333AD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80337E74 00333AD4 41 80 00 08 */ blt lbl_80337E7C
+/* 80337E78 00333AD8 48 00 00 0C */ b lbl_80337E84
+lbl_80337E7C:
+/* 80337E7C 00333ADC 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337E80 00333AE0 38 60 FF FF */ li r3, -1
+lbl_80337E84:
+/* 80337E84 00333AE4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337E88 00333AE8 7C 08 03 A6 */ mtlr r0
+/* 80337E8C 00333AEC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337E90 00333AF0 4E 80 00 20 */ blr
+
+.global sendto
+sendto:
+/* 80337E94 00333AF4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80337E98 00333AF8 7C 08 02 A6 */ mflr r0
+/* 80337E9C 00333AFC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80337EA0 00333B00 39 61 00 30 */ addi r11, r1, 0x30
+/* 80337EA4 00333B04 4B E8 F2 85 */ bl _savegpr_27
+/* 80337EA8 00333B08 7C 7B 1B 78 */ mr r27, r3
+/* 80337EAC 00333B0C 7C 9C 23 78 */ mr r28, r4
+/* 80337EB0 00333B10 7C BD 2B 78 */ mr r29, r5
+/* 80337EB4 00333B14 7C DE 33 78 */ mr r30, r6
+/* 80337EB8 00333B18 7C E4 3B 78 */ mr r4, r7
+/* 80337EBC 00333B1C 7D 1F 43 78 */ mr r31, r8
+/* 80337EC0 00333B20 38 61 00 08 */ addi r3, r1, 8
+/* 80337EC4 00333B24 38 A0 00 08 */ li r5, 8
+/* 80337EC8 00333B28 4B CC C1 39 */ bl memcpy
+/* 80337ECC 00333B2C 9B E1 00 08 */ stb r31, 8(r1)
+/* 80337ED0 00333B30 7F 63 DB 78 */ mr r3, r27
+/* 80337ED4 00333B34 7F 84 E3 78 */ mr r4, r28
+/* 80337ED8 00333B38 7F A5 EB 78 */ mr r5, r29
+/* 80337EDC 00333B3C 7F C6 F3 78 */ mr r6, r30
+/* 80337EE0 00333B40 38 E1 00 08 */ addi r7, r1, 8
+/* 80337EE4 00333B44 4B FB E9 9D */ bl SOSendTo
+/* 80337EE8 00333B48 2C 03 00 00 */ cmpwi r3, 0
+/* 80337EEC 00333B4C 41 80 00 08 */ blt lbl_80337EF4
+/* 80337EF0 00333B50 48 00 00 0C */ b lbl_80337EFC
+lbl_80337EF4:
+/* 80337EF4 00333B54 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337EF8 00333B58 38 60 FF FF */ li r3, -1
+lbl_80337EFC:
+/* 80337EFC 00333B5C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80337F00 00333B60 4B E8 F2 75 */ bl _restgpr_27
+/* 80337F04 00333B64 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80337F08 00333B68 7C 08 03 A6 */ mtlr r0
+/* 80337F0C 00333B6C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80337F10 00333B70 4E 80 00 20 */ blr
+
+.global getsockname
+getsockname:
+/* 80337F14 00333B74 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337F18 00333B78 7C 08 02 A6 */ mflr r0
+/* 80337F1C 00333B7C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337F20 00333B80 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80337F24 00333B84 7C BF 2B 78 */ mr r31, r5
+/* 80337F28 00333B88 93 C1 00 08 */ stw r30, 8(r1)
+/* 80337F2C 00333B8C 7C 9E 23 78 */ mr r30, r4
+/* 80337F30 00333B90 80 05 00 00 */ lwz r0, 0(r5)
+/* 80337F34 00333B94 98 04 00 00 */ stb r0, 0(r4)
+/* 80337F38 00333B98 4B FB E8 01 */ bl SOGetSockName
+/* 80337F3C 00333B9C 88 1E 00 00 */ lbz r0, 0(r30)
+/* 80337F40 00333BA0 2C 03 00 00 */ cmpwi r3, 0
+/* 80337F44 00333BA4 90 1F 00 00 */ stw r0, 0(r31)
+/* 80337F48 00333BA8 41 80 00 08 */ blt lbl_80337F50
+/* 80337F4C 00333BAC 48 00 00 0C */ b lbl_80337F58
+lbl_80337F50:
+/* 80337F50 00333BB0 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337F54 00333BB4 38 60 FF FF */ li r3, -1
+lbl_80337F58:
+/* 80337F58 00333BB8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337F5C 00333BBC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80337F60 00333BC0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80337F64 00333BC4 7C 08 03 A6 */ mtlr r0
+/* 80337F68 00333BC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337F6C 00333BCC 4E 80 00 20 */ blr
+
+.global inet_addr
+inet_addr:
+/* 80337F70 00333BD0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80337F74 00333BD4 7C 08 02 A6 */ mflr r0
+/* 80337F78 00333BD8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80337F7C 00333BDC 38 81 00 08 */ addi r4, r1, 8
+/* 80337F80 00333BE0 4B FB EC 8D */ bl SOInetAtoN
+/* 80337F84 00333BE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80337F88 00333BE8 40 82 00 0C */ bne lbl_80337F94
+/* 80337F8C 00333BEC 38 60 FF FF */ li r3, -1
+/* 80337F90 00333BF0 48 00 00 08 */ b lbl_80337F98
+lbl_80337F94:
+/* 80337F94 00333BF4 80 61 00 08 */ lwz r3, 8(r1)
+lbl_80337F98:
+/* 80337F98 00333BF8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80337F9C 00333BFC 7C 08 03 A6 */ mtlr r0
+/* 80337FA0 00333C00 38 21 00 10 */ addi r1, r1, 0x10
+/* 80337FA4 00333C04 4E 80 00 20 */ blr
+
+.global GOAGetLastError
+GOAGetLastError:
+/* 80337FA8 00333C08 80 6D B0 A4 */ lwz r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80337FAC 00333C0C 4E 80 00 20 */ blr
+
+.global GSISocketSelect
+GSISocketSelect:
+/* 80337FB0 00333C10 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80337FB4 00333C14 7C 08 02 A6 */ mflr r0
+/* 80337FB8 00333C18 2C 04 00 00 */ cmpwi r4, 0
+/* 80337FBC 00333C1C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80337FC0 00333C20 38 00 00 00 */ li r0, 0
+/* 80337FC4 00333C24 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80337FC8 00333C28 7C DF 33 78 */ mr r31, r6
+/* 80337FCC 00333C2C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80337FD0 00333C30 7C BE 2B 78 */ mr r30, r5
+/* 80337FD4 00333C34 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80337FD8 00333C38 7C 9D 23 78 */ mr r29, r4
+/* 80337FDC 00333C3C 90 61 00 08 */ stw r3, 8(r1)
+/* 80337FE0 00333C40 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80337FE4 00333C44 41 82 00 0C */ beq lbl_80337FF0
+/* 80337FE8 00333C48 60 00 00 01 */ ori r0, r0, 1
+/* 80337FEC 00333C4C 90 01 00 0C */ stw r0, 0xc(r1)
+lbl_80337FF0:
+/* 80337FF0 00333C50 2C 05 00 00 */ cmpwi r5, 0
+/* 80337FF4 00333C54 41 82 00 10 */ beq lbl_80338004
+/* 80337FF8 00333C58 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80337FFC 00333C5C 60 00 00 08 */ ori r0, r0, 8
+/* 80338000 00333C60 90 01 00 0C */ stw r0, 0xc(r1)
+lbl_80338004:
+/* 80338004 00333C64 38 00 00 00 */ li r0, 0
+/* 80338008 00333C68 38 61 00 08 */ addi r3, r1, 8
+/* 8033800C 00333C6C 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80338010 00333C70 38 80 00 01 */ li r4, 1
+/* 80338014 00333C74 38 C0 00 00 */ li r6, 0
+/* 80338018 00333C78 38 A0 00 00 */ li r5, 0
+/* 8033801C 00333C7C 4B FB EA 95 */ bl SOPoll
+/* 80338020 00333C80 2C 83 00 00 */ cmpwi cr1, r3, 0
+/* 80338024 00333C84 40 84 00 0C */ bge cr1, lbl_80338030
+/* 80338028 00333C88 38 60 FF FF */ li r3, -1
+/* 8033802C 00333C8C 48 00 00 90 */ b lbl_803380BC
+lbl_80338030:
+/* 80338030 00333C90 2C 1D 00 00 */ cmpwi r29, 0
+/* 80338034 00333C94 41 82 00 28 */ beq lbl_8033805C
+/* 80338038 00333C98 40 85 00 1C */ ble cr1, lbl_80338054
+/* 8033803C 00333C9C 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80338040 00333CA0 70 00 00 41 */ andi. r0, r0, 0x41
+/* 80338044 00333CA4 41 82 00 10 */ beq lbl_80338054
+/* 80338048 00333CA8 38 00 00 01 */ li r0, 1
+/* 8033804C 00333CAC 90 1D 00 00 */ stw r0, 0(r29)
+/* 80338050 00333CB0 48 00 00 0C */ b lbl_8033805C
+lbl_80338054:
+/* 80338054 00333CB4 38 00 00 00 */ li r0, 0
+/* 80338058 00333CB8 90 1D 00 00 */ stw r0, 0(r29)
+lbl_8033805C:
+/* 8033805C 00333CBC 2C 1E 00 00 */ cmpwi r30, 0
+/* 80338060 00333CC0 41 82 00 2C */ beq lbl_8033808C
+/* 80338064 00333CC4 2C 03 00 00 */ cmpwi r3, 0
+/* 80338068 00333CC8 40 81 00 1C */ ble lbl_80338084
+/* 8033806C 00333CCC 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80338070 00333CD0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 80338074 00333CD4 41 82 00 10 */ beq lbl_80338084
+/* 80338078 00333CD8 38 00 00 01 */ li r0, 1
+/* 8033807C 00333CDC 90 1E 00 00 */ stw r0, 0(r30)
+/* 80338080 00333CE0 48 00 00 0C */ b lbl_8033808C
+lbl_80338084:
+/* 80338084 00333CE4 38 00 00 00 */ li r0, 0
+/* 80338088 00333CE8 90 1E 00 00 */ stw r0, 0(r30)
+lbl_8033808C:
+/* 8033808C 00333CEC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80338090 00333CF0 41 82 00 2C */ beq lbl_803380BC
+/* 80338094 00333CF4 2C 03 00 00 */ cmpwi r3, 0
+/* 80338098 00333CF8 40 81 00 1C */ ble lbl_803380B4
+/* 8033809C 00333CFC 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 803380A0 00333D00 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
+/* 803380A4 00333D04 41 82 00 10 */ beq lbl_803380B4
+/* 803380A8 00333D08 38 00 00 01 */ li r0, 1
+/* 803380AC 00333D0C 90 1F 00 00 */ stw r0, 0(r31)
+/* 803380B0 00333D10 48 00 00 0C */ b lbl_803380BC
+lbl_803380B4:
+/* 803380B4 00333D14 38 00 00 00 */ li r0, 0
+/* 803380B8 00333D18 90 1F 00 00 */ stw r0, 0(r31)
+lbl_803380BC:
+/* 803380BC 00333D1C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803380C0 00333D20 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 803380C4 00333D24 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 803380C8 00333D28 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 803380CC 00333D2C 7C 08 03 A6 */ mtlr r0
+/* 803380D0 00333D30 38 21 00 30 */ addi r1, r1, 0x30
+/* 803380D4 00333D34 4E 80 00 20 */ blr
+
+.global gethostbyname
+gethostbyname:
+/* 803380D8 00333D38 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803380DC 00333D3C 7C 08 02 A6 */ mflr r0
+/* 803380E0 00333D40 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803380E4 00333D44 39 61 00 30 */ addi r11, r1, 0x30
+/* 803380E8 00333D48 4B E8 F0 31 */ bl _savegpr_23
+/* 803380EC 00333D4C 7C 7B 1B 78 */ mr r27, r3
+/* 803380F0 00333D50 38 6D 8F 28 */ addi r3, r13, lbl_8063E1E8-_SDA_BASE_
+/* 803380F4 00333D54 4B E8 EA 71 */ bl strlen
+/* 803380F8 00333D58 7C 65 1B 78 */ mr r5, r3
+/* 803380FC 00333D5C 7F 64 DB 78 */ mr r4, r27
+/* 80338100 00333D60 38 6D 8F 28 */ addi r3, r13, lbl_8063E1E8-_SDA_BASE_
+/* 80338104 00333D64 4B E9 64 65 */ bl strncmp
+/* 80338108 00333D68 2C 03 00 00 */ cmpwi r3, 0
+/* 8033810C 00333D6C 40 82 01 28 */ bne lbl_80338234
+/* 80338110 00333D70 80 0D B0 98 */ lwz r0, lbl_80640358-_SDA_BASE_(r13)
+/* 80338114 00333D74 2C 00 00 00 */ cmpwi r0, 0
+/* 80338118 00333D78 41 82 01 14 */ beq lbl_8033822C
+/* 8033811C 00333D7C 3C 60 80 61 */ lis r3, lbl_80610928@ha
+/* 80338120 00333D80 3A E0 00 00 */ li r23, 0
+/* 80338124 00333D84 3B 20 00 00 */ li r25, 0
+/* 80338128 00333D88 3B 03 09 28 */ addi r24, r3, lbl_80610928@l
+lbl_8033812C:
+/* 8033812C 00333D8C 80 6D B0 98 */ lwz r3, lbl_80640358-_SDA_BASE_(r13)
+/* 80338130 00333D90 7C 03 C8 2E */ lwzx r0, r3, r25
+/* 80338134 00333D94 2C 00 00 00 */ cmpwi r0, 0
+/* 80338138 00333D98 41 82 00 A0 */ beq lbl_803381D8
+/* 8033813C 00333D9C 3B 60 00 00 */ li r27, 0
+/* 80338140 00333DA0 3B 40 00 00 */ li r26, 0
+/* 80338144 00333DA4 48 00 00 20 */ b lbl_80338164
+lbl_80338148:
+/* 80338148 00333DA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8033814C 00333DAC 41 82 00 10 */ beq lbl_8033815C
+/* 80338150 00333DB0 81 98 00 04 */ lwz r12, 4(r24)
+/* 80338154 00333DB4 7D 89 03 A6 */ mtctr r12
+/* 80338158 00333DB8 4E 80 04 21 */ bctrl
+lbl_8033815C:
+/* 8033815C 00333DBC 3B 5A 00 04 */ addi r26, r26, 4
+/* 80338160 00333DC0 3B 7B 00 01 */ addi r27, r27, 1
+lbl_80338164:
+/* 80338164 00333DC4 80 0D B0 98 */ lwz r0, lbl_80640358-_SDA_BASE_(r13)
+/* 80338168 00333DC8 7C 79 00 2E */ lwzx r3, r25, r0
+/* 8033816C 00333DCC 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 80338170 00333DD0 7C 64 D0 2E */ lwzx r3, r4, r26
+/* 80338174 00333DD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80338178 00333DD8 40 82 FF D0 */ bne lbl_80338148
+/* 8033817C 00333DDC 57 60 10 3A */ slwi r0, r27, 2
+/* 80338180 00333DE0 7C 64 00 2E */ lwzx r3, r4, r0
+/* 80338184 00333DE4 2C 03 00 00 */ cmpwi r3, 0
+/* 80338188 00333DE8 41 82 00 10 */ beq lbl_80338198
+/* 8033818C 00333DEC 81 98 00 04 */ lwz r12, 4(r24)
+/* 80338190 00333DF0 7D 89 03 A6 */ mtctr r12
+/* 80338194 00333DF4 4E 80 04 21 */ bctrl
+lbl_80338198:
+/* 80338198 00333DF8 80 6D B0 98 */ lwz r3, lbl_80640358-_SDA_BASE_(r13)
+/* 8033819C 00333DFC 7C 63 C8 2E */ lwzx r3, r3, r25
+/* 803381A0 00333E00 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 803381A4 00333E04 2C 03 00 00 */ cmpwi r3, 0
+/* 803381A8 00333E08 41 82 00 10 */ beq lbl_803381B8
+/* 803381AC 00333E0C 81 98 00 04 */ lwz r12, 4(r24)
+/* 803381B0 00333E10 7D 89 03 A6 */ mtctr r12
+/* 803381B4 00333E14 4E 80 04 21 */ bctrl
+lbl_803381B8:
+/* 803381B8 00333E18 80 6D B0 98 */ lwz r3, lbl_80640358-_SDA_BASE_(r13)
+/* 803381BC 00333E1C 7C 63 C8 2E */ lwzx r3, r3, r25
+/* 803381C0 00333E20 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 803381C4 00333E24 2C 03 00 00 */ cmpwi r3, 0
+/* 803381C8 00333E28 41 82 00 10 */ beq lbl_803381D8
+/* 803381CC 00333E2C 81 98 00 04 */ lwz r12, 4(r24)
+/* 803381D0 00333E30 7D 89 03 A6 */ mtctr r12
+/* 803381D4 00333E34 4E 80 04 21 */ bctrl
+lbl_803381D8:
+/* 803381D8 00333E38 80 6D B0 98 */ lwz r3, lbl_80640358-_SDA_BASE_(r13)
+/* 803381DC 00333E3C 7C 63 C8 2E */ lwzx r3, r3, r25
+/* 803381E0 00333E40 2C 03 00 00 */ cmpwi r3, 0
+/* 803381E4 00333E44 41 82 00 10 */ beq lbl_803381F4
+/* 803381E8 00333E48 81 98 00 04 */ lwz r12, 4(r24)
+/* 803381EC 00333E4C 7D 89 03 A6 */ mtctr r12
+/* 803381F0 00333E50 4E 80 04 21 */ bctrl
+lbl_803381F4:
+/* 803381F4 00333E54 3A F7 00 01 */ addi r23, r23, 1
+/* 803381F8 00333E58 3B 39 00 04 */ addi r25, r25, 4
+/* 803381FC 00333E5C 28 17 00 1F */ cmplwi r23, 0x1f
+/* 80338200 00333E60 41 80 FF 2C */ blt lbl_8033812C
+/* 80338204 00333E64 80 6D B0 98 */ lwz r3, lbl_80640358-_SDA_BASE_(r13)
+/* 80338208 00333E68 2C 03 00 00 */ cmpwi r3, 0
+/* 8033820C 00333E6C 41 82 00 18 */ beq lbl_80338224
+/* 80338210 00333E70 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338214 00333E74 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338218 00333E78 81 84 00 04 */ lwz r12, 4(r4)
+/* 8033821C 00333E7C 7D 89 03 A6 */ mtctr r12
+/* 80338220 00333E80 4E 80 04 21 */ bctrl
+lbl_80338224:
+/* 80338224 00333E84 38 00 00 00 */ li r0, 0
+/* 80338228 00333E88 90 0D B0 98 */ stw r0, lbl_80640358-_SDA_BASE_(r13)
+lbl_8033822C:
+/* 8033822C 00333E8C 38 60 00 00 */ li r3, 0
+/* 80338230 00333E90 48 00 04 0C */ b lbl_8033863C
+lbl_80338234:
+/* 80338234 00333E94 80 0D B0 98 */ lwz r0, lbl_80640358-_SDA_BASE_(r13)
+/* 80338238 00333E98 2C 00 00 00 */ cmpwi r0, 0
+/* 8033823C 00333E9C 40 82 00 28 */ bne lbl_80338264
+/* 80338240 00333EA0 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338244 00333EA4 38 60 00 7C */ li r3, 0x7c
+/* 80338248 00333EA8 81 84 09 28 */ lwz r12, lbl_80610928@l(r4)
+/* 8033824C 00333EAC 7D 89 03 A6 */ mtctr r12
+/* 80338250 00333EB0 4E 80 04 21 */ bctrl
+/* 80338254 00333EB4 90 6D B0 98 */ stw r3, lbl_80640358-_SDA_BASE_(r13)
+/* 80338258 00333EB8 38 80 00 00 */ li r4, 0
+/* 8033825C 00333EBC 38 A0 00 7C */ li r5, 0x7c
+/* 80338260 00333EC0 4B CC BE A5 */ bl memset
+lbl_80338264:
+/* 80338264 00333EC4 7F 63 DB 78 */ mr r3, r27
+/* 80338268 00333EC8 4B E8 E8 FD */ bl strlen
+/* 8033826C 00333ECC 2C 03 00 00 */ cmpwi r3, 0
+/* 80338270 00333ED0 3B 80 00 00 */ li r28, 0
+/* 80338274 00333ED4 38 80 00 00 */ li r4, 0
+/* 80338278 00333ED8 41 82 01 20 */ beq lbl_80338398
+/* 8033827C 00333EDC 28 03 00 08 */ cmplwi r3, 8
+/* 80338280 00333EE0 38 A3 FF F8 */ addi r5, r3, -8
+/* 80338284 00333EE4 40 81 00 E0 */ ble lbl_80338364
+/* 80338288 00333EE8 38 05 00 07 */ addi r0, r5, 7
+/* 8033828C 00333EEC 54 00 E8 FE */ srwi r0, r0, 3
+/* 80338290 00333EF0 7C 09 03 A6 */ mtctr r0
+/* 80338294 00333EF4 28 05 00 00 */ cmplwi r5, 0
+/* 80338298 00333EF8 40 81 00 CC */ ble lbl_80338364
+lbl_8033829C:
+/* 8033829C 00333EFC 7E FB 22 14 */ add r23, r27, r4
+/* 803382A0 00333F00 7C 1B 20 AE */ lbzx r0, r27, r4
+/* 803382A4 00333F04 8B 37 00 01 */ lbz r25, 1(r23)
+/* 803382A8 00333F08 3B 44 00 01 */ addi r26, r4, 1
+/* 803382AC 00333F0C 8B F7 00 02 */ lbz r31, 2(r23)
+/* 803382B0 00333F10 7C 05 07 74 */ extsb r5, r0
+/* 803382B4 00333F14 54 80 16 FA */ rlwinm r0, r4, 2, 0x1b, 0x1d
+/* 803382B8 00333F18 3B C4 00 02 */ addi r30, r4, 2
+/* 803382BC 00333F1C 7C B8 00 30 */ slw r24, r5, r0
+/* 803382C0 00333F20 8B B7 00 03 */ lbz r29, 3(r23)
+/* 803382C4 00333F24 39 84 00 03 */ addi r12, r4, 3
+/* 803382C8 00333F28 89 77 00 04 */ lbz r11, 4(r23)
+/* 803382CC 00333F2C 39 44 00 04 */ addi r10, r4, 4
+/* 803382D0 00333F30 89 37 00 05 */ lbz r9, 5(r23)
+/* 803382D4 00333F34 39 04 00 05 */ addi r8, r4, 5
+/* 803382D8 00333F38 88 F7 00 06 */ lbz r7, 6(r23)
+/* 803382DC 00333F3C 38 C4 00 06 */ addi r6, r4, 6
+/* 803382E0 00333F40 38 04 00 07 */ addi r0, r4, 7
+/* 803382E4 00333F44 88 B7 00 07 */ lbz r5, 7(r23)
+/* 803382E8 00333F48 7F 39 07 74 */ extsb r25, r25
+/* 803382EC 00333F4C 57 5A 16 FA */ rlwinm r26, r26, 2, 0x1b, 0x1d
+/* 803382F0 00333F50 7F 9C C2 14 */ add r28, r28, r24
+/* 803382F4 00333F54 7F 3A D0 30 */ slw r26, r25, r26
+/* 803382F8 00333F58 7F FF 07 74 */ extsb r31, r31
+/* 803382FC 00333F5C 57 DE 16 FA */ rlwinm r30, r30, 2, 0x1b, 0x1d
+/* 80338300 00333F60 7F BD 07 74 */ extsb r29, r29
+/* 80338304 00333F64 55 8C 16 FA */ rlwinm r12, r12, 2, 0x1b, 0x1d
+/* 80338308 00333F68 7F 9C D2 14 */ add r28, r28, r26
+/* 8033830C 00333F6C 7F FE F0 30 */ slw r30, r31, r30
+/* 80338310 00333F70 7D 6B 07 74 */ extsb r11, r11
+/* 80338314 00333F74 55 4A 16 FA */ rlwinm r10, r10, 2, 0x1b, 0x1d
+/* 80338318 00333F78 7F AC 60 30 */ slw r12, r29, r12
+/* 8033831C 00333F7C 7F 9C F2 14 */ add r28, r28, r30
+/* 80338320 00333F80 7D 29 07 74 */ extsb r9, r9
+/* 80338324 00333F84 55 08 16 FA */ rlwinm r8, r8, 2, 0x1b, 0x1d
+/* 80338328 00333F88 7D 6A 50 30 */ slw r10, r11, r10
+/* 8033832C 00333F8C 7F 9C 62 14 */ add r28, r28, r12
+/* 80338330 00333F90 7C E7 07 74 */ extsb r7, r7
+/* 80338334 00333F94 54 C6 16 FA */ rlwinm r6, r6, 2, 0x1b, 0x1d
+/* 80338338 00333F98 7D 28 40 30 */ slw r8, r9, r8
+/* 8033833C 00333F9C 7F 9C 52 14 */ add r28, r28, r10
+/* 80338340 00333FA0 7C A5 07 74 */ extsb r5, r5
+/* 80338344 00333FA4 54 00 16 FA */ rlwinm r0, r0, 2, 0x1b, 0x1d
+/* 80338348 00333FA8 7C E6 30 30 */ slw r6, r7, r6
+/* 8033834C 00333FAC 7F 9C 42 14 */ add r28, r28, r8
+/* 80338350 00333FB0 38 84 00 08 */ addi r4, r4, 8
+/* 80338354 00333FB4 7F 9C 32 14 */ add r28, r28, r6
+/* 80338358 00333FB8 7C A0 00 30 */ slw r0, r5, r0
+/* 8033835C 00333FBC 7F 9C 02 14 */ add r28, r28, r0
+/* 80338360 00333FC0 42 00 FF 3C */ bdnz lbl_8033829C
+lbl_80338364:
+/* 80338364 00333FC4 7C 04 18 50 */ subf r0, r4, r3
+/* 80338368 00333FC8 7C BB 22 14 */ add r5, r27, r4
+/* 8033836C 00333FCC 7C 09 03 A6 */ mtctr r0
+/* 80338370 00333FD0 7C 04 18 40 */ cmplw r4, r3
+/* 80338374 00333FD4 40 80 00 24 */ bge lbl_80338398
+lbl_80338378:
+/* 80338378 00333FD8 88 65 00 00 */ lbz r3, 0(r5)
+/* 8033837C 00333FDC 54 80 16 FA */ rlwinm r0, r4, 2, 0x1b, 0x1d
+/* 80338380 00333FE0 38 84 00 01 */ addi r4, r4, 1
+/* 80338384 00333FE4 38 A5 00 01 */ addi r5, r5, 1
+/* 80338388 00333FE8 7C 63 07 74 */ extsb r3, r3
+/* 8033838C 00333FEC 7C 60 00 30 */ slw r0, r3, r0
+/* 80338390 00333FF0 7F 9C 02 14 */ add r28, r28, r0
+/* 80338394 00333FF4 42 00 FF E4 */ bdnz lbl_80338378
+lbl_80338398:
+/* 80338398 00333FF8 3C 60 08 42 */ lis r3, 0x08421085@ha
+/* 8033839C 00333FFC 83 CD B0 98 */ lwz r30, lbl_80640358-_SDA_BASE_(r13)
+/* 803383A0 00334000 3B E3 10 85 */ addi r31, r3, 0x08421085@l
+/* 803383A4 00334004 3B A0 00 00 */ li r29, 0
+/* 803383A8 00334008 7C 7F E0 16 */ mulhwu r3, r31, r28
+/* 803383AC 0033400C 7C 03 E0 50 */ subf r0, r3, r28
+/* 803383B0 00334010 54 00 F8 7E */ srwi r0, r0, 1
+/* 803383B4 00334014 7C 00 1A 14 */ add r0, r0, r3
+/* 803383B8 00334018 54 00 E1 3E */ srwi r0, r0, 4
+/* 803383BC 0033401C 1C 00 00 1F */ mulli r0, r0, 0x1f
+/* 803383C0 00334020 7F 80 E0 50 */ subf r28, r0, r28
+lbl_803383C4:
+/* 803383C4 00334024 7C 1D E9 D6 */ mullw r0, r29, r29
+/* 803383C8 00334028 7C 9C 02 14 */ add r4, r28, r0
+/* 803383CC 0033402C 7C 7F 20 16 */ mulhwu r3, r31, r4
+/* 803383D0 00334030 7C 03 20 50 */ subf r0, r3, r4
+/* 803383D4 00334034 54 00 F8 7E */ srwi r0, r0, 1
+/* 803383D8 00334038 7C 00 1A 14 */ add r0, r0, r3
+/* 803383DC 0033403C 54 00 E1 3E */ srwi r0, r0, 4
+/* 803383E0 00334040 1C 00 00 1F */ mulli r0, r0, 0x1f
+/* 803383E4 00334044 7C 00 20 50 */ subf r0, r0, r4
+/* 803383E8 00334048 54 00 10 3A */ slwi r0, r0, 2
+/* 803383EC 0033404C 7E FE 00 2E */ lwzx r23, r30, r0
+/* 803383F0 00334050 2C 17 00 00 */ cmpwi r23, 0
+/* 803383F4 00334054 41 82 00 20 */ beq lbl_80338414
+/* 803383F8 00334058 80 77 00 10 */ lwz r3, 0x10(r23)
+/* 803383FC 0033405C 7F 64 DB 78 */ mr r4, r27
+/* 80338400 00334060 4B E9 60 4D */ bl strcmp
+/* 80338404 00334064 2C 03 00 00 */ cmpwi r3, 0
+/* 80338408 00334068 40 82 00 0C */ bne lbl_80338414
+/* 8033840C 0033406C 7E E3 BB 78 */ mr r3, r23
+/* 80338410 00334070 48 00 02 2C */ b lbl_8033863C
+lbl_80338414:
+/* 80338414 00334074 3B BD 00 01 */ addi r29, r29, 1
+/* 80338418 00334078 28 1D 00 0F */ cmplwi r29, 0xf
+/* 8033841C 0033407C 41 80 FF A8 */ blt lbl_803383C4
+/* 80338420 00334080 57 80 10 3A */ slwi r0, r28, 2
+/* 80338424 00334084 7C 1E 00 2E */ lwzx r0, r30, r0
+/* 80338428 00334088 2C 00 00 00 */ cmpwi r0, 0
+/* 8033842C 0033408C 41 82 00 B0 */ beq lbl_803384DC
+/* 80338430 00334090 3C 60 08 42 */ lis r3, 0x08421085@ha
+/* 80338434 00334094 38 00 00 07 */ li r0, 7
+/* 80338438 00334098 38 63 10 85 */ addi r3, r3, 0x08421085@l
+/* 8033843C 0033409C 38 C0 00 01 */ li r6, 1
+/* 80338440 003340A0 7C 09 03 A6 */ mtctr r0
+lbl_80338444:
+/* 80338444 003340A4 7C 06 31 D6 */ mullw r0, r6, r6
+/* 80338448 003340A8 7C BC 02 14 */ add r5, r28, r0
+/* 8033844C 003340AC 7C 83 28 16 */ mulhwu r4, r3, r5
+/* 80338450 003340B0 7C 04 28 50 */ subf r0, r4, r5
+/* 80338454 003340B4 54 00 F8 7E */ srwi r0, r0, 1
+/* 80338458 003340B8 7C 00 22 14 */ add r0, r0, r4
+/* 8033845C 003340BC 54 00 E1 3E */ srwi r0, r0, 4
+/* 80338460 003340C0 1C 00 00 1F */ mulli r0, r0, 0x1f
+/* 80338464 003340C4 7C 80 28 50 */ subf r4, r0, r5
+/* 80338468 003340C8 54 80 10 3A */ slwi r0, r4, 2
+/* 8033846C 003340CC 7C 1E 00 2E */ lwzx r0, r30, r0
+/* 80338470 003340D0 2C 00 00 00 */ cmpwi r0, 0
+/* 80338474 003340D4 40 82 00 0C */ bne lbl_80338480
+/* 80338478 003340D8 7C 9C 23 78 */ mr r28, r4
+/* 8033847C 003340DC 48 00 00 4C */ b lbl_803384C8
+lbl_80338480:
+/* 80338480 003340E0 38 C6 00 01 */ addi r6, r6, 1
+/* 80338484 003340E4 7C 06 31 D6 */ mullw r0, r6, r6
+/* 80338488 003340E8 7C BC 02 14 */ add r5, r28, r0
+/* 8033848C 003340EC 7C 83 28 16 */ mulhwu r4, r3, r5
+/* 80338490 003340F0 7C 04 28 50 */ subf r0, r4, r5
+/* 80338494 003340F4 54 00 F8 7E */ srwi r0, r0, 1
+/* 80338498 003340F8 7C 00 22 14 */ add r0, r0, r4
+/* 8033849C 003340FC 54 00 E1 3E */ srwi r0, r0, 4
+/* 803384A0 00334100 1C 00 00 1F */ mulli r0, r0, 0x1f
+/* 803384A4 00334104 7C 80 28 50 */ subf r4, r0, r5
+/* 803384A8 00334108 54 80 10 3A */ slwi r0, r4, 2
+/* 803384AC 0033410C 7C 1E 00 2E */ lwzx r0, r30, r0
+/* 803384B0 00334110 2C 00 00 00 */ cmpwi r0, 0
+/* 803384B4 00334114 40 82 00 0C */ bne lbl_803384C0
+/* 803384B8 00334118 7C 9C 23 78 */ mr r28, r4
+/* 803384BC 0033411C 48 00 00 0C */ b lbl_803384C8
+lbl_803384C0:
+/* 803384C0 00334120 38 C6 00 01 */ addi r6, r6, 1
+/* 803384C4 00334124 42 00 FF 80 */ bdnz lbl_80338444
+lbl_803384C8:
+/* 803384C8 00334128 28 06 00 0F */ cmplwi r6, 0xf
+/* 803384CC 0033412C 40 82 00 10 */ bne lbl_803384DC
+/* 803384D0 00334130 7F 63 DB 78 */ mr r3, r27
+/* 803384D4 00334134 4B FB ED F5 */ bl SOGetHostByName
+/* 803384D8 00334138 48 00 01 64 */ b lbl_8033863C
+lbl_803384DC:
+/* 803384DC 0033413C 7F 63 DB 78 */ mr r3, r27
+/* 803384E0 00334140 4B FB ED E9 */ bl SOGetHostByName
+/* 803384E4 00334144 2C 03 00 00 */ cmpwi r3, 0
+/* 803384E8 00334148 7C 7D 1B 78 */ mr r29, r3
+/* 803384EC 0033414C 40 82 00 0C */ bne lbl_803384F8
+/* 803384F0 00334150 38 60 00 00 */ li r3, 0
+/* 803384F4 00334154 48 00 01 48 */ b lbl_8033863C
+lbl_803384F8:
+/* 803384F8 00334158 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 803384FC 0033415C 38 60 00 14 */ li r3, 0x14
+/* 80338500 00334160 81 84 09 28 */ lwz r12, lbl_80610928@l(r4)
+/* 80338504 00334164 7D 89 03 A6 */ mtctr r12
+/* 80338508 00334168 4E 80 04 21 */ bctrl
+/* 8033850C 0033416C 80 CD B0 98 */ lwz r6, lbl_80640358-_SDA_BASE_(r13)
+/* 80338510 00334170 57 9E 10 3A */ slwi r30, r28, 2
+/* 80338514 00334174 38 A0 00 00 */ li r5, 0
+/* 80338518 00334178 7C 66 F1 2E */ stwx r3, r6, r30
+/* 8033851C 0033417C 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 80338520 00334180 48 00 00 0C */ b lbl_8033852C
+lbl_80338524:
+/* 80338524 00334184 38 63 00 04 */ addi r3, r3, 4
+/* 80338528 00334188 38 A5 00 01 */ addi r5, r5, 1
+lbl_8033852C:
+/* 8033852C 0033418C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80338530 00334190 2C 00 00 00 */ cmpwi r0, 0
+/* 80338534 00334194 40 82 FF F0 */ bne lbl_80338524
+/* 80338538 00334198 7C 66 F0 2E */ lwzx r3, r6, r30
+/* 8033853C 0033419C 38 80 00 02 */ li r4, 2
+/* 80338540 003341A0 38 05 00 01 */ addi r0, r5, 1
+/* 80338544 003341A4 38 A0 00 00 */ li r5, 0
+/* 80338548 003341A8 B0 83 00 08 */ sth r4, 8(r3)
+/* 8033854C 003341AC 54 03 10 3A */ slwi r3, r0, 2
+/* 80338550 003341B0 3F 80 80 61 */ lis r28, lbl_80610928@ha
+/* 80338554 003341B4 A8 1D 00 0A */ lha r0, 0xa(r29)
+/* 80338558 003341B8 7C 86 F0 2E */ lwzx r4, r6, r30
+/* 8033855C 003341BC B0 04 00 0A */ sth r0, 0xa(r4)
+/* 80338560 003341C0 7C 86 F0 2E */ lwzx r4, r6, r30
+/* 80338564 003341C4 90 A4 00 00 */ stw r5, 0(r4)
+/* 80338568 003341C8 7C 86 F0 2E */ lwzx r4, r6, r30
+/* 8033856C 003341CC 90 A4 00 04 */ stw r5, 4(r4)
+/* 80338570 003341D0 81 9C 09 28 */ lwz r12, lbl_80610928@l(r28)
+/* 80338574 003341D4 7D 89 03 A6 */ mtctr r12
+/* 80338578 003341D8 4E 80 04 21 */ bctrl
+/* 8033857C 003341DC 80 8D B0 98 */ lwz r4, lbl_80640358-_SDA_BASE_(r13)
+/* 80338580 003341E0 3A E0 00 00 */ li r23, 0
+/* 80338584 003341E4 3B 00 00 00 */ li r24, 0
+/* 80338588 003341E8 7C 84 F0 2E */ lwzx r4, r4, r30
+/* 8033858C 003341EC 90 64 00 0C */ stw r3, 0xc(r4)
+/* 80338590 003341F0 48 00 00 48 */ b lbl_803385D8
+lbl_80338594:
+/* 80338594 003341F4 81 9C 09 28 */ lwz r12, 0x928(r28)
+/* 80338598 003341F8 A8 7D 00 0A */ lha r3, 0xa(r29)
+/* 8033859C 003341FC 7D 89 03 A6 */ mtctr r12
+/* 803385A0 00334200 4E 80 04 21 */ bctrl
+/* 803385A4 00334204 80 0D B0 98 */ lwz r0, lbl_80640358-_SDA_BASE_(r13)
+/* 803385A8 00334208 7C 9E 00 2E */ lwzx r4, r30, r0
+/* 803385AC 0033420C 80 84 00 0C */ lwz r4, 0xc(r4)
+/* 803385B0 00334210 7C 64 C1 2E */ stwx r3, r4, r24
+/* 803385B4 00334214 7C 9E 00 2E */ lwzx r4, r30, r0
+/* 803385B8 00334218 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 803385BC 0033421C 80 A4 00 0C */ lwz r5, 0xc(r4)
+/* 803385C0 00334220 7C 83 C0 2E */ lwzx r4, r3, r24
+/* 803385C4 00334224 7C 65 C0 2E */ lwzx r3, r5, r24
+/* 803385C8 00334228 A8 BD 00 0A */ lha r5, 0xa(r29)
+/* 803385CC 0033422C 4B CC BA 35 */ bl memcpy
+/* 803385D0 00334230 3B 18 00 04 */ addi r24, r24, 4
+/* 803385D4 00334234 3A F7 00 01 */ addi r23, r23, 1
+lbl_803385D8:
+/* 803385D8 00334238 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 803385DC 0033423C 7C 03 C0 2E */ lwzx r0, r3, r24
+/* 803385E0 00334240 2C 00 00 00 */ cmpwi r0, 0
+/* 803385E4 00334244 40 82 FF B0 */ bne lbl_80338594
+/* 803385E8 00334248 80 8D B0 98 */ lwz r4, lbl_80640358-_SDA_BASE_(r13)
+/* 803385EC 0033424C 56 E0 10 3A */ slwi r0, r23, 2
+/* 803385F0 00334250 38 A0 00 00 */ li r5, 0
+/* 803385F4 00334254 7F 63 DB 78 */ mr r3, r27
+/* 803385F8 00334258 7C 84 F0 2E */ lwzx r4, r4, r30
+/* 803385FC 0033425C 80 84 00 0C */ lwz r4, 0xc(r4)
+/* 80338600 00334260 7C A4 01 2E */ stwx r5, r4, r0
+/* 80338604 00334264 4B E8 E5 61 */ bl strlen
+/* 80338608 00334268 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 8033860C 0033426C 81 84 09 28 */ lwz r12, lbl_80610928@l(r4)
+/* 80338610 00334270 7D 89 03 A6 */ mtctr r12
+/* 80338614 00334274 38 63 00 01 */ addi r3, r3, 1
+/* 80338618 00334278 4E 80 04 21 */ bctrl
+/* 8033861C 0033427C 80 CD B0 98 */ lwz r6, lbl_80640358-_SDA_BASE_(r13)
+/* 80338620 00334280 7F 64 DB 78 */ mr r4, r27
+/* 80338624 00334284 7C A6 F0 2E */ lwzx r5, r6, r30
+/* 80338628 00334288 90 65 00 10 */ stw r3, 0x10(r5)
+/* 8033862C 0033428C 7C 66 F0 2E */ lwzx r3, r6, r30
+/* 80338630 00334290 80 63 00 10 */ lwz r3, 0x10(r3)
+/* 80338634 00334294 4B E9 5C 9D */ bl strcpy
+/* 80338638 00334298 7F A3 EB 78 */ mr r3, r29
+lbl_8033863C:
+/* 8033863C 0033429C 39 61 00 30 */ addi r11, r1, 0x30
+/* 80338640 003342A0 4B E8 EB 25 */ bl _restgpr_23
+/* 80338644 003342A4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80338648 003342A8 7C 08 03 A6 */ mtlr r0
+/* 8033864C 003342AC 38 21 00 30 */ addi r1, r1, 0x30
+/* 80338650 003342B0 4E 80 00 20 */ blr
+
+.global SetSockBlocking
+SetSockBlocking:
+/* 80338654 003342B4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338658 003342B8 7C 08 02 A6 */ mflr r0
+/* 8033865C 003342BC 38 A0 00 00 */ li r5, 0
+/* 80338660 003342C0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80338664 003342C4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80338668 003342C8 7C 9F 23 78 */ mr r31, r4
+/* 8033866C 003342CC 38 80 00 03 */ li r4, 3
+/* 80338670 003342D0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80338674 003342D4 7C 7E 1B 78 */ mr r30, r3
+/* 80338678 003342D8 4C C6 31 82 */ crclr 6
+/* 8033867C 003342DC 4B FB E2 51 */ bl SOFcntl
+/* 80338680 003342E0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80338684 003342E4 60 65 00 04 */ ori r5, r3, 4
+/* 80338688 003342E8 41 82 00 08 */ beq lbl_80338690
+/* 8033868C 003342EC 54 65 07 B8 */ rlwinm r5, r3, 0, 0x1e, 0x1c
+lbl_80338690:
+/* 80338690 003342F0 7F C3 F3 78 */ mr r3, r30
+/* 80338694 003342F4 38 80 00 04 */ li r4, 4
+/* 80338698 003342F8 4C C6 31 82 */ crclr 6
+/* 8033869C 003342FC 4B FB E2 31 */ bl SOFcntl
+/* 803386A0 00334300 2C 03 00 00 */ cmpwi r3, 0
+/* 803386A4 00334304 40 82 00 0C */ bne lbl_803386B0
+/* 803386A8 00334308 38 60 00 01 */ li r3, 1
+/* 803386AC 0033430C 48 00 00 08 */ b lbl_803386B4
+lbl_803386B0:
+/* 803386B0 00334310 38 60 00 00 */ li r3, 0
+lbl_803386B4:
+/* 803386B4 00334314 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803386B8 00334318 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 803386BC 0033431C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 803386C0 00334320 7C 08 03 A6 */ mtlr r0
+/* 803386C4 00334324 38 21 00 10 */ addi r1, r1, 0x10
+/* 803386C8 00334328 4E 80 00 20 */ blr
+
+.global SetReceiveBufferSize
+SetReceiveBufferSize:
+/* 803386CC 0033432C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803386D0 00334330 7C 08 02 A6 */ mflr r0
+/* 803386D4 00334334 38 A0 10 02 */ li r5, 0x1002
+/* 803386D8 00334338 38 E0 00 04 */ li r7, 4
+/* 803386DC 0033433C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803386E0 00334340 38 C1 00 08 */ addi r6, r1, 8
+/* 803386E4 00334344 90 81 00 08 */ stw r4, 8(r1)
+/* 803386E8 00334348 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
+/* 803386EC 0033434C 38 84 FF FF */ addi r4, r4, 0x0000FFFF@l
+/* 803386F0 00334350 4B FB F1 65 */ bl SOSetSockOpt
+/* 803386F4 00334354 2C 03 00 00 */ cmpwi r3, 0
+/* 803386F8 00334358 41 80 00 08 */ blt lbl_80338700
+/* 803386FC 0033435C 48 00 00 0C */ b lbl_80338708
+lbl_80338700:
+/* 80338700 00334360 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80338704 00334364 38 60 FF FF */ li r3, -1
+lbl_80338708:
+/* 80338708 00334368 20 83 FF FF */ subfic r4, r3, -1
+/* 8033870C 0033436C 38 03 00 01 */ addi r0, r3, 1
+/* 80338710 00334370 7C 80 03 78 */ or r0, r4, r0
+/* 80338714 00334374 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80338718 00334378 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8033871C 0033437C 7C 08 03 A6 */ mtlr r0
+/* 80338720 00334380 38 21 00 10 */ addi r1, r1, 0x10
+/* 80338724 00334384 4E 80 00 20 */ blr
+
+.global SetSendBufferSize
+SetSendBufferSize:
+/* 80338728 00334388 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8033872C 0033438C 7C 08 02 A6 */ mflr r0
+/* 80338730 00334390 38 A0 10 01 */ li r5, 0x1001
+/* 80338734 00334394 38 E0 00 04 */ li r7, 4
+/* 80338738 00334398 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8033873C 0033439C 38 C1 00 08 */ addi r6, r1, 8
+/* 80338740 003343A0 90 81 00 08 */ stw r4, 8(r1)
+/* 80338744 003343A4 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
+/* 80338748 003343A8 38 84 FF FF */ addi r4, r4, 0x0000FFFF@l
+/* 8033874C 003343AC 4B FB F1 09 */ bl SOSetSockOpt
+/* 80338750 003343B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80338754 003343B4 41 80 00 08 */ blt lbl_8033875C
+/* 80338758 003343B8 48 00 00 0C */ b lbl_80338764
+lbl_8033875C:
+/* 8033875C 003343BC 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80338760 003343C0 38 60 FF FF */ li r3, -1
+lbl_80338764:
+/* 80338764 003343C4 20 83 FF FF */ subfic r4, r3, -1
+/* 80338768 003343C8 38 03 00 01 */ addi r0, r3, 1
+/* 8033876C 003343CC 7C 80 03 78 */ or r0, r4, r0
+/* 80338770 003343D0 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80338774 003343D4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80338778 003343D8 7C 08 03 A6 */ mtlr r0
+/* 8033877C 003343DC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80338780 003343E0 4E 80 00 20 */ blr
+
+.global GetReceiveBufferSize
+GetReceiveBufferSize:
+/* 80338784 003343E4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338788 003343E8 7C 08 02 A6 */ mflr r0
+/* 8033878C 003343EC 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
+/* 80338790 003343F0 38 A0 10 02 */ li r5, 0x1002
+/* 80338794 003343F4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80338798 003343F8 38 00 00 04 */ li r0, 4
+/* 8033879C 003343FC 38 84 FF FF */ addi r4, r4, 0x0000FFFF@l
+/* 803387A0 00334400 38 C1 00 0C */ addi r6, r1, 0xc
+/* 803387A4 00334404 90 01 00 08 */ stw r0, 8(r1)
+/* 803387A8 00334408 38 E1 00 08 */ addi r7, r1, 8
+/* 803387AC 0033440C 4B FB EF A5 */ bl SOGetSockOpt
+/* 803387B0 00334410 2C 03 00 00 */ cmpwi r3, 0
+/* 803387B4 00334414 41 80 00 08 */ blt lbl_803387BC
+/* 803387B8 00334418 48 00 00 0C */ b lbl_803387C4
+lbl_803387BC:
+/* 803387BC 0033441C 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 803387C0 00334420 38 60 FF FF */ li r3, -1
+lbl_803387C4:
+/* 803387C4 00334424 2C 03 FF FF */ cmpwi r3, -1
+/* 803387C8 00334428 40 82 00 0C */ bne lbl_803387D4
+/* 803387CC 0033442C 38 60 FF FF */ li r3, -1
+/* 803387D0 00334430 48 00 00 08 */ b lbl_803387D8
+lbl_803387D4:
+/* 803387D4 00334434 80 61 00 0C */ lwz r3, 0xc(r1)
+lbl_803387D8:
+/* 803387D8 00334438 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803387DC 0033443C 7C 08 03 A6 */ mtlr r0
+/* 803387E0 00334440 38 21 00 10 */ addi r1, r1, 0x10
+/* 803387E4 00334444 4E 80 00 20 */ blr
+
+.global GetSendBufferSize
+GetSendBufferSize:
+/* 803387E8 00334448 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 803387EC 0033444C 7C 08 02 A6 */ mflr r0
+/* 803387F0 00334450 3C 80 00 01 */ lis r4, 0x0000FFFF@ha
+/* 803387F4 00334454 38 A0 10 01 */ li r5, 0x1001
+/* 803387F8 00334458 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803387FC 0033445C 38 00 00 04 */ li r0, 4
+/* 80338800 00334460 38 84 FF FF */ addi r4, r4, 0x0000FFFF@l
+/* 80338804 00334464 38 C1 00 0C */ addi r6, r1, 0xc
+/* 80338808 00334468 90 01 00 08 */ stw r0, 8(r1)
+/* 8033880C 0033446C 38 E1 00 08 */ addi r7, r1, 8
+/* 80338810 00334470 4B FB EF 41 */ bl SOGetSockOpt
+/* 80338814 00334474 2C 03 00 00 */ cmpwi r3, 0
+/* 80338818 00334478 41 80 00 08 */ blt lbl_80338820
+/* 8033881C 0033447C 48 00 00 0C */ b lbl_80338828
+lbl_80338820:
+/* 80338820 00334480 90 6D B0 A4 */ stw r3, lbl_80640364-_SDA_BASE_(r13)
+/* 80338824 00334484 38 60 FF FF */ li r3, -1
+lbl_80338828:
+/* 80338828 00334488 2C 03 FF FF */ cmpwi r3, -1
+/* 8033882C 0033448C 40 82 00 0C */ bne lbl_80338838
+/* 80338830 00334490 38 60 FF FF */ li r3, -1
+/* 80338834 00334494 48 00 00 08 */ b lbl_8033883C
+lbl_80338838:
+/* 80338838 00334498 80 61 00 0C */ lwz r3, 0xc(r1)
+lbl_8033883C:
+/* 8033883C 0033449C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80338840 003344A0 7C 08 03 A6 */ mtlr r0
+/* 80338844 003344A4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80338848 003344A8 4E 80 00 20 */ blr
+
+.global CanReceiveOnSocket
+CanReceiveOnSocket:
+/* 8033884C 003344AC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338850 003344B0 7C 08 02 A6 */ mflr r0
+/* 80338854 003344B4 38 A0 00 00 */ li r5, 0
+/* 80338858 003344B8 38 C0 00 00 */ li r6, 0
+/* 8033885C 003344BC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80338860 003344C0 38 00 00 00 */ li r0, 0
+/* 80338864 003344C4 38 81 00 08 */ addi r4, r1, 8
+/* 80338868 003344C8 90 01 00 08 */ stw r0, 8(r1)
+/* 8033886C 003344CC 4B FF F7 45 */ bl GSISocketSelect
+/* 80338870 003344D0 2C 03 00 01 */ cmpwi r3, 1
+/* 80338874 003344D4 40 82 00 0C */ bne lbl_80338880
+/* 80338878 003344D8 80 61 00 08 */ lwz r3, 8(r1)
+/* 8033887C 003344DC 48 00 00 08 */ b lbl_80338884
+lbl_80338880:
+/* 80338880 003344E0 38 60 00 00 */ li r3, 0
+lbl_80338884:
+/* 80338884 003344E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80338888 003344E8 7C 08 03 A6 */ mtlr r0
+/* 8033888C 003344EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80338890 003344F0 4E 80 00 20 */ blr
+
+.global CanSendOnSocket
+CanSendOnSocket:
+/* 80338894 003344F4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338898 003344F8 7C 08 02 A6 */ mflr r0
+/* 8033889C 003344FC 38 80 00 00 */ li r4, 0
+/* 803388A0 00334500 38 C0 00 00 */ li r6, 0
+/* 803388A4 00334504 90 01 00 14 */ stw r0, 0x14(r1)
+/* 803388A8 00334508 38 00 00 00 */ li r0, 0
+/* 803388AC 0033450C 38 A1 00 08 */ addi r5, r1, 8
+/* 803388B0 00334510 90 01 00 08 */ stw r0, 8(r1)
+/* 803388B4 00334514 4B FF F6 FD */ bl GSISocketSelect
+/* 803388B8 00334518 2C 03 00 01 */ cmpwi r3, 1
+/* 803388BC 0033451C 40 82 00 0C */ bne lbl_803388C8
+/* 803388C0 00334520 80 61 00 08 */ lwz r3, 8(r1)
+/* 803388C4 00334524 48 00 00 08 */ b lbl_803388CC
+lbl_803388C8:
+/* 803388C8 00334528 38 60 00 00 */ li r3, 0
+lbl_803388CC:
+/* 803388CC 0033452C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 803388D0 00334530 7C 08 03 A6 */ mtlr r0
+/* 803388D4 00334534 38 21 00 10 */ addi r1, r1, 0x10
+/* 803388D8 00334538 4E 80 00 20 */ blr
+
+.global getlocalhost
+getlocalhost:
+/* 803388DC 0033453C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803388E0 00334540 7C 08 02 A6 */ mflr r0
+/* 803388E4 00334544 38 60 00 00 */ li r3, 0
+/* 803388E8 00334548 38 A0 40 02 */ li r5, 0x4002
+/* 803388EC 0033454C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803388F0 00334550 38 00 00 04 */ li r0, 4
+/* 803388F4 00334554 38 C1 00 10 */ addi r6, r1, 0x10
+/* 803388F8 00334558 38 E1 00 0C */ addi r7, r1, 0xc
+/* 803388FC 0033455C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80338900 00334560 3F E0 80 61 */ lis r31, lbl_80610928@ha
+/* 80338904 00334564 3B FF 09 28 */ addi r31, r31, lbl_80610928@l
+/* 80338908 00334568 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8033890C 0033456C 3F C0 00 01 */ lis r30, 0x0000FFFE@ha
+/* 80338910 00334570 38 9E FF FE */ addi r4, r30, 0x0000FFFE@l
+/* 80338914 00334574 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80338918 00334578 4B FB F0 41 */ bl SOGetInterfaceOpt
+/* 8033891C 0033457C 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80338920 00334580 38 7F 00 60 */ addi r3, r31, 0x60
+/* 80338924 00334584 38 80 00 BE */ li r4, 0xbe
+/* 80338928 00334588 1C A0 00 0C */ mulli r5, r0, 0xc
+/* 8033892C 0033458C 4B CC B7 D9 */ bl memset
+/* 80338930 00334590 80 01 00 10 */ lwz r0, 0x10(r1)
+/* 80338934 00334594 38 9E FF FE */ addi r4, r30, -2
+/* 80338938 00334598 38 DF 00 60 */ addi r6, r31, 0x60
+/* 8033893C 0033459C 38 E1 00 08 */ addi r7, r1, 8
+/* 80338940 003345A0 1C 00 00 0C */ mulli r0, r0, 0xc
+/* 80338944 003345A4 38 60 00 00 */ li r3, 0
+/* 80338948 003345A8 38 A0 40 03 */ li r5, 0x4003
+/* 8033894C 003345AC 90 01 00 08 */ stw r0, 8(r1)
+/* 80338950 003345B0 4B FB F0 09 */ bl SOGetInterfaceOpt
+/* 80338954 003345B4 80 E1 00 10 */ lwz r7, 0x10(r1)
+/* 80338958 003345B8 3C 80 80 45 */ lis r4, lbl_8044A420@ha
+/* 8033895C 003345BC 38 84 A4 20 */ addi r4, r4, lbl_8044A420@l
+/* 80338960 003345C0 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80338964 003345C4 38 AD B0 9C */ addi r5, r13, lbl_8064035C-_SDA_BASE_
+/* 80338968 003345C8 38 00 00 02 */ li r0, 2
+/* 8033896C 003345CC 90 9F 00 10 */ stw r4, 0x10(r31)
+/* 80338970 003345D0 2C 87 00 00 */ cmpwi cr1, r7, 0
+/* 80338974 003345D4 38 80 00 00 */ li r4, 0
+/* 80338978 003345D8 90 A3 00 04 */ stw r5, 4(r3)
+/* 8033897C 003345DC B0 03 00 08 */ sth r0, 8(r3)
+/* 80338980 003345E0 B0 E3 00 0A */ sth r7, 0xa(r3)
+/* 80338984 003345E4 40 85 00 DC */ ble cr1, lbl_80338A60
+/* 80338988 003345E8 2C 07 00 08 */ cmpwi r7, 8
+/* 8033898C 003345EC 38 A7 FF F8 */ addi r5, r7, -8
+/* 80338990 003345F0 40 81 00 90 */ ble lbl_80338A20
+/* 80338994 003345F4 38 C0 00 00 */ li r6, 0
+/* 80338998 003345F8 41 84 00 18 */ blt cr1, lbl_803389B0
+/* 8033899C 003345FC 3C 60 80 00 */ lis r3, 0x7FFFFFFE@ha
+/* 803389A0 00334600 38 03 FF FE */ addi r0, r3, 0x7FFFFFFE@l
+/* 803389A4 00334604 7C 07 00 00 */ cmpw r7, r0
+/* 803389A8 00334608 41 81 00 08 */ bgt lbl_803389B0
+/* 803389AC 0033460C 38 C0 00 01 */ li r6, 1
+lbl_803389B0:
+/* 803389B0 00334610 2C 06 00 00 */ cmpwi r6, 0
+/* 803389B4 00334614 41 82 00 6C */ beq lbl_80338A20
+/* 803389B8 00334618 38 05 00 07 */ addi r0, r5, 7
+/* 803389BC 0033461C 39 1F 00 60 */ addi r8, r31, 0x60
+/* 803389C0 00334620 54 00 E8 FE */ srwi r0, r0, 3
+/* 803389C4 00334624 39 3F 00 20 */ addi r9, r31, 0x20
+/* 803389C8 00334628 7C 09 03 A6 */ mtctr r0
+/* 803389CC 0033462C 2C 05 00 00 */ cmpwi r5, 0
+/* 803389D0 00334630 40 81 00 50 */ ble lbl_80338A20
+lbl_803389D4:
+/* 803389D4 00334634 91 09 00 00 */ stw r8, 0(r9)
+/* 803389D8 00334638 38 68 00 0C */ addi r3, r8, 0xc
+/* 803389DC 0033463C 38 08 00 18 */ addi r0, r8, 0x18
+/* 803389E0 00334640 38 E8 00 24 */ addi r7, r8, 0x24
+/* 803389E4 00334644 90 69 00 04 */ stw r3, 4(r9)
+/* 803389E8 00334648 38 C8 00 30 */ addi r6, r8, 0x30
+/* 803389EC 0033464C 38 A8 00 3C */ addi r5, r8, 0x3c
+/* 803389F0 00334650 38 68 00 48 */ addi r3, r8, 0x48
+/* 803389F4 00334654 90 09 00 08 */ stw r0, 8(r9)
+/* 803389F8 00334658 38 08 00 54 */ addi r0, r8, 0x54
+/* 803389FC 0033465C 39 08 00 60 */ addi r8, r8, 0x60
+/* 80338A00 00334660 38 84 00 08 */ addi r4, r4, 8
+/* 80338A04 00334664 90 E9 00 0C */ stw r7, 0xc(r9)
+/* 80338A08 00334668 90 C9 00 10 */ stw r6, 0x10(r9)
+/* 80338A0C 0033466C 90 A9 00 14 */ stw r5, 0x14(r9)
+/* 80338A10 00334670 90 69 00 18 */ stw r3, 0x18(r9)
+/* 80338A14 00334674 90 09 00 1C */ stw r0, 0x1c(r9)
+/* 80338A18 00334678 39 29 00 20 */ addi r9, r9, 0x20
+/* 80338A1C 0033467C 42 00 FF B8 */ bdnz lbl_803389D4
+lbl_80338A20:
+/* 80338A20 00334680 81 01 00 10 */ lwz r8, 0x10(r1)
+/* 80338A24 00334684 1C E4 00 0C */ mulli r7, r4, 0xc
+/* 80338A28 00334688 38 DF 00 60 */ addi r6, r31, 0x60
+/* 80338A2C 0033468C 54 85 10 3A */ slwi r5, r4, 2
+/* 80338A30 00334690 38 7F 00 20 */ addi r3, r31, 0x20
+/* 80338A34 00334694 7C 04 40 50 */ subf r0, r4, r8
+/* 80338A38 00334698 7C C6 3A 14 */ add r6, r6, r7
+/* 80338A3C 0033469C 7C 63 2A 14 */ add r3, r3, r5
+/* 80338A40 003346A0 7C 09 03 A6 */ mtctr r0
+/* 80338A44 003346A4 7C 04 40 00 */ cmpw r4, r8
+/* 80338A48 003346A8 40 80 00 18 */ bge lbl_80338A60
+lbl_80338A4C:
+/* 80338A4C 003346AC 90 C3 00 00 */ stw r6, 0(r3)
+/* 80338A50 003346B0 38 C6 00 0C */ addi r6, r6, 0xc
+/* 80338A54 003346B4 38 63 00 04 */ addi r3, r3, 4
+/* 80338A58 003346B8 38 84 00 01 */ addi r4, r4, 1
+/* 80338A5C 003346BC 42 00 FF F0 */ bdnz lbl_80338A4C
+lbl_80338A60:
+/* 80338A60 003346C0 54 80 10 3A */ slwi r0, r4, 2
+/* 80338A64 003346C4 38 7F 00 10 */ addi r3, r31, 0x10
+/* 80338A68 003346C8 38 BF 00 20 */ addi r5, r31, 0x20
+/* 80338A6C 003346CC 38 80 00 00 */ li r4, 0
+/* 80338A70 003346D0 7C 85 01 2E */ stwx r4, r5, r0
+/* 80338A74 003346D4 90 A3 00 0C */ stw r5, 0xc(r3)
+/* 80338A78 003346D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80338A7C 003346DC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80338A80 003346E0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80338A84 003346E4 7C 08 03 A6 */ mtlr r0
+/* 80338A88 003346E8 38 21 00 20 */ addi r1, r1, 0x20
+/* 80338A8C 003346EC 4E 80 00 20 */ blr
+
+.global IsPrivateIP
+IsPrivateIP:
+/* 80338A90 003346F0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338A94 003346F4 7C 08 02 A6 */ mflr r0
+/* 80338A98 003346F8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80338A9C 003346FC 80 63 00 00 */ lwz r3, 0(r3)
+/* 80338AA0 00334700 4B FB E2 CD */ bl SONtoHl
+/* 80338AA4 00334704 54 60 46 3E */ srwi r0, r3, 0x18
+/* 80338AA8 00334708 54 63 86 3E */ rlwinm r3, r3, 0x10, 0x18, 0x1f
+/* 80338AAC 0033470C 2C 00 00 0A */ cmpwi r0, 0xa
+/* 80338AB0 00334710 40 82 00 0C */ bne lbl_80338ABC
+/* 80338AB4 00334714 38 60 00 01 */ li r3, 1
+/* 80338AB8 00334718 48 00 00 40 */ b lbl_80338AF8
+lbl_80338ABC:
+/* 80338ABC 0033471C 2C 00 00 AC */ cmpwi r0, 0xac
+/* 80338AC0 00334720 40 82 00 1C */ bne lbl_80338ADC
+/* 80338AC4 00334724 2C 03 00 10 */ cmpwi r3, 0x10
+/* 80338AC8 00334728 41 80 00 14 */ blt lbl_80338ADC
+/* 80338ACC 0033472C 2C 03 00 1F */ cmpwi r3, 0x1f
+/* 80338AD0 00334730 41 81 00 0C */ bgt lbl_80338ADC
+/* 80338AD4 00334734 38 60 00 01 */ li r3, 1
+/* 80338AD8 00334738 48 00 00 20 */ b lbl_80338AF8
+lbl_80338ADC:
+/* 80338ADC 0033473C 2C 00 00 C0 */ cmpwi r0, 0xc0
+/* 80338AE0 00334740 40 82 00 14 */ bne lbl_80338AF4
+/* 80338AE4 00334744 2C 03 00 A8 */ cmpwi r3, 0xa8
+/* 80338AE8 00334748 40 82 00 0C */ bne lbl_80338AF4
+/* 80338AEC 0033474C 38 60 00 01 */ li r3, 1
+/* 80338AF0 00334750 48 00 00 08 */ b lbl_80338AF8
+lbl_80338AF4:
+/* 80338AF4 00334754 38 60 00 00 */ li r3, 0
+lbl_80338AF8:
+/* 80338AF8 00334758 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80338AFC 0033475C 7C 08 03 A6 */ mtlr r0
+/* 80338B00 00334760 38 21 00 10 */ addi r1, r1, 0x10
+/* 80338B04 00334764 4E 80 00 20 */ blr
+
+.global gsiTimeInSec
+gsiTimeInSec:
+/* 80338B08 00334768 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338B0C 0033476C 7C 08 02 A6 */ mflr r0
+/* 80338B10 00334770 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80338B14 00334774 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80338B18 00334778 7C 7F 1B 78 */ mr r31, r3
+/* 80338B1C 0033477C 4B F3 9C 9D */ bl OSGetTime
+/* 80338B20 00334780 3C C0 80 00 */ lis r6, 0x800000F8@ha
+/* 80338B24 00334784 38 A0 00 00 */ li r5, 0
+/* 80338B28 00334788 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
+/* 80338B2C 0033478C 54 06 F0 BE */ srwi r6, r0, 2
+/* 80338B30 00334790 4B E8 E7 49 */ bl __div2i
+/* 80338B34 00334794 2C 1F 00 00 */ cmpwi r31, 0
+/* 80338B38 00334798 41 82 00 0C */ beq lbl_80338B44
+/* 80338B3C 0033479C 90 9F 00 04 */ stw r4, 4(r31)
+/* 80338B40 003347A0 90 7F 00 00 */ stw r3, 0(r31)
+lbl_80338B44:
+/* 80338B44 003347A4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80338B48 003347A8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80338B4C 003347AC 7C 08 03 A6 */ mtlr r0
+/* 80338B50 003347B0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80338B54 003347B4 4E 80 00 20 */ blr
+lbl_80338B58:
+/* 80338B58 003347B8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80338B5C 003347BC 7C 08 02 A6 */ mflr r0
+/* 80338B60 003347C0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80338B64 003347C4 80 0D B0 A0 */ lwz r0, lbl_80640360-_SDA_BASE_(r13)
+/* 80338B68 003347C8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80338B6C 003347CC 7C 7F 1B 78 */ mr r31, r3
+/* 80338B70 003347D0 2C 00 00 00 */ cmpwi r0, 0
+/* 80338B74 003347D4 40 82 00 18 */ bne lbl_80338B8C
+/* 80338B78 003347D8 3C 60 80 61 */ lis r3, lbl_80610AA0@ha
+/* 80338B7C 003347DC 38 63 0A A0 */ addi r3, r3, lbl_80610AA0@l
+/* 80338B80 003347E0 4B F3 6D 91 */ bl OSInitMutex
+/* 80338B84 003347E4 38 00 00 01 */ li r0, 1
+/* 80338B88 003347E8 90 0D B0 A0 */ stw r0, lbl_80640360-_SDA_BASE_(r13)
+lbl_80338B8C:
+/* 80338B8C 003347EC 3C 60 80 61 */ lis r3, lbl_80610AA0@ha
+/* 80338B90 003347F0 38 63 0A A0 */ addi r3, r3, lbl_80610AA0@l
+/* 80338B94 003347F4 4B F3 6D B5 */ bl OSLockMutex
+/* 80338B98 003347F8 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80338B9C 003347FC 4B FF F5 3D */ bl gethostbyname
+/* 80338BA0 00334800 2C 03 00 00 */ cmpwi r3, 0
+/* 80338BA4 00334804 41 82 00 40 */ beq lbl_80338BE4
+/* 80338BA8 00334808 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 80338BAC 0033480C 38 61 00 0C */ addi r3, r1, 0xc
+/* 80338BB0 00334810 80 84 00 00 */ lwz r4, 0(r4)
+/* 80338BB4 00334814 80 04 00 00 */ lwz r0, 0(r4)
+/* 80338BB8 00334818 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80338BBC 0033481C 4B FB E1 5D */ bl SOInetNtoA
+/* 80338BC0 00334820 38 81 00 08 */ addi r4, r1, 8
+/* 80338BC4 00334824 4B FB E0 49 */ bl SOInetAtoN
+/* 80338BC8 00334828 2C 03 00 00 */ cmpwi r3, 0
+/* 80338BCC 0033482C 40 82 00 0C */ bne lbl_80338BD8
+/* 80338BD0 00334830 38 00 FF FF */ li r0, -1
+/* 80338BD4 00334834 48 00 00 08 */ b lbl_80338BDC
+lbl_80338BD8:
+/* 80338BD8 00334838 80 01 00 08 */ lwz r0, 8(r1)
+lbl_80338BDC:
+/* 80338BDC 0033483C 90 1F 00 04 */ stw r0, 4(r31)
+/* 80338BE0 00334840 48 00 00 0C */ b lbl_80338BEC
+lbl_80338BE4:
+/* 80338BE4 00334844 38 00 FF FF */ li r0, -1
+/* 80338BE8 00334848 90 1F 00 04 */ stw r0, 4(r31)
+lbl_80338BEC:
+/* 80338BEC 0033484C 38 00 00 01 */ li r0, 1
+/* 80338BF0 00334850 3C 60 80 61 */ lis r3, lbl_80610AA0@ha
+/* 80338BF4 00334854 90 1F 00 08 */ stw r0, 8(r31)
+/* 80338BF8 00334858 38 63 0A A0 */ addi r3, r3, lbl_80610AA0@l
+/* 80338BFC 0033485C 4B F3 6E 29 */ bl OSUnlockMutex
+/* 80338C00 00334860 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80338C04 00334864 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80338C08 00334868 7C 08 03 A6 */ mtlr r0
+/* 80338C0C 0033486C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80338C10 00334870 4E 80 00 20 */ blr
+
+.global gsiStartResolvingHostname
+gsiStartResolvingHostname:
+/* 80338C14 00334874 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80338C18 00334878 7C 08 02 A6 */ mflr r0
+/* 80338C1C 0033487C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80338C20 00334880 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80338C24 00334884 3F E0 80 61 */ lis r31, lbl_80610928@ha
+/* 80338C28 00334888 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80338C2C 0033488C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80338C30 00334890 7C 9D 23 78 */ mr r29, r4
+/* 80338C34 00334894 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80338C38 00334898 7C 7C 1B 78 */ mr r28, r3
+/* 80338C3C 0033489C 38 60 03 30 */ li r3, 0x330
+/* 80338C40 003348A0 81 9F 09 28 */ lwz r12, lbl_80610928@l(r31)
+/* 80338C44 003348A4 7D 89 03 A6 */ mtctr r12
+/* 80338C48 003348A8 4E 80 04 21 */ bctrl
+/* 80338C4C 003348AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80338C50 003348B0 7C 7E 1B 78 */ mr r30, r3
+/* 80338C54 003348B4 40 82 00 0C */ bne lbl_80338C60
+/* 80338C58 003348B8 38 60 FF FF */ li r3, -1
+/* 80338C5C 003348BC 48 00 00 CC */ b lbl_80338D28
+lbl_80338C60:
+/* 80338C60 003348C0 2C 1C 00 00 */ cmpwi r28, 0
+/* 80338C64 003348C4 40 82 00 0C */ bne lbl_80338C70
+/* 80338C68 003348C8 3B E0 00 00 */ li r31, 0
+/* 80338C6C 003348CC 48 00 00 30 */ b lbl_80338C9C
+lbl_80338C70:
+/* 80338C70 003348D0 7F 83 E3 78 */ mr r3, r28
+/* 80338C74 003348D4 4B E8 DE F1 */ bl strlen
+/* 80338C78 003348D8 81 9F 09 28 */ lwz r12, 0x928(r31)
+/* 80338C7C 003348DC 7D 89 03 A6 */ mtctr r12
+/* 80338C80 003348E0 38 63 00 01 */ addi r3, r3, 1
+/* 80338C84 003348E4 4E 80 04 21 */ bctrl
+/* 80338C88 003348E8 2C 03 00 00 */ cmpwi r3, 0
+/* 80338C8C 003348EC 7C 7F 1B 78 */ mr r31, r3
+/* 80338C90 003348F0 41 82 00 0C */ beq lbl_80338C9C
+/* 80338C94 003348F4 7F 84 E3 78 */ mr r4, r28
+/* 80338C98 003348F8 4B E9 56 39 */ bl strcpy
+lbl_80338C9C:
+/* 80338C9C 003348FC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80338CA0 00334900 93 FE 00 00 */ stw r31, 0(r30)
+/* 80338CA4 00334904 40 82 00 2C */ bne lbl_80338CD0
+/* 80338CA8 00334908 2C 1E 00 00 */ cmpwi r30, 0
+/* 80338CAC 0033490C 41 82 00 1C */ beq lbl_80338CC8
+/* 80338CB0 00334910 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338CB4 00334914 7F C3 F3 78 */ mr r3, r30
+/* 80338CB8 00334918 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338CBC 0033491C 81 84 00 04 */ lwz r12, 4(r4)
+/* 80338CC0 00334920 7D 89 03 A6 */ mtctr r12
+/* 80338CC4 00334924 4E 80 04 21 */ bctrl
+lbl_80338CC8:
+/* 80338CC8 00334928 38 60 FF FF */ li r3, -1
+/* 80338CCC 0033492C 48 00 00 5C */ b lbl_80338D28
+lbl_80338CD0:
+/* 80338CD0 00334930 38 00 00 00 */ li r0, 0
+/* 80338CD4 00334934 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338CD8 00334938 90 1E 00 08 */ stw r0, 8(r30)
+/* 80338CDC 0033493C 38 60 10 00 */ li r3, 0x1000
+/* 80338CE0 00334940 81 84 09 28 */ lwz r12, lbl_80610928@l(r4)
+/* 80338CE4 00334944 7D 89 03 A6 */ mtctr r12
+/* 80338CE8 00334948 4E 80 04 21 */ bctrl
+/* 80338CEC 0033494C 7C 66 1B 78 */ mr r6, r3
+/* 80338CF0 00334950 90 7E 03 28 */ stw r3, 0x328(r30)
+/* 80338CF4 00334954 3C 80 80 34 */ lis r4, lbl_80338B58@ha
+/* 80338CF8 00334958 7F C5 F3 78 */ mr r5, r30
+/* 80338CFC 0033495C 38 7E 00 10 */ addi r3, r30, 0x10
+/* 80338D00 00334960 38 C6 10 00 */ addi r6, r6, 0x1000
+/* 80338D04 00334964 38 84 8B 58 */ addi r4, r4, lbl_80338B58@l
+/* 80338D08 00334968 38 E0 10 00 */ li r7, 0x1000
+/* 80338D0C 0033496C 39 00 00 10 */ li r8, 0x10
+/* 80338D10 00334970 39 20 00 01 */ li r9, 1
+/* 80338D14 00334974 4B F3 8B CD */ bl OSCreateThread
+/* 80338D18 00334978 38 7E 00 10 */ addi r3, r30, 0x10
+/* 80338D1C 0033497C 4B F3 92 2D */ bl OSResumeThread
+/* 80338D20 00334980 93 DD 00 00 */ stw r30, 0(r29)
+/* 80338D24 00334984 38 60 00 00 */ li r3, 0
+lbl_80338D28:
+/* 80338D28 00334988 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80338D2C 0033498C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80338D30 00334990 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80338D34 00334994 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80338D38 00334998 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80338D3C 0033499C 7C 08 03 A6 */ mtlr r0
+/* 80338D40 003349A0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80338D44 003349A4 4E 80 00 20 */ blr
+
+.global gsiCancelResolvingHostname
+gsiCancelResolvingHostname:
+/* 80338D48 003349A8 94 21 FC D0 */ stwu r1, -0x330(r1)
+/* 80338D4C 003349AC 7C 08 02 A6 */ mflr r0
+/* 80338D50 003349B0 38 83 00 0C */ addi r4, r3, 0xc
+/* 80338D54 003349B4 90 01 03 34 */ stw r0, 0x334(r1)
+/* 80338D58 003349B8 38 00 00 64 */ li r0, 0x64
+/* 80338D5C 003349BC 38 A1 00 04 */ addi r5, r1, 4
+/* 80338D60 003349C0 93 E1 03 2C */ stw r31, 0x32c(r1)
+/* 80338D64 003349C4 7C 7F 1B 78 */ mr r31, r3
+/* 80338D68 003349C8 7C 09 03 A6 */ mtctr r0
+lbl_80338D6C:
+/* 80338D6C 003349CC 80 64 00 04 */ lwz r3, 4(r4)
+/* 80338D70 003349D0 84 04 00 08 */ lwzu r0, 8(r4)
+/* 80338D74 003349D4 90 65 00 04 */ stw r3, 4(r5)
+/* 80338D78 003349D8 94 05 00 08 */ stwu r0, 8(r5)
+/* 80338D7C 003349DC 42 00 FF F0 */ bdnz lbl_80338D6C
+/* 80338D80 003349E0 38 61 00 08 */ addi r3, r1, 8
+/* 80338D84 003349E4 4B F3 8E AD */ bl OSCancelThread
+/* 80338D88 003349E8 80 61 03 20 */ lwz r3, 0x320(r1)
+/* 80338D8C 003349EC 2C 03 00 00 */ cmpwi r3, 0
+/* 80338D90 003349F0 41 82 00 24 */ beq lbl_80338DB4
+/* 80338D94 003349F4 41 82 00 18 */ beq lbl_80338DAC
+/* 80338D98 003349F8 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338D9C 003349FC 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338DA0 00334A00 81 84 00 04 */ lwz r12, 4(r4)
+/* 80338DA4 00334A04 7D 89 03 A6 */ mtctr r12
+/* 80338DA8 00334A08 4E 80 04 21 */ bctrl
+lbl_80338DAC:
+/* 80338DAC 00334A0C 38 00 00 00 */ li r0, 0
+/* 80338DB0 00334A10 90 01 03 20 */ stw r0, 0x320(r1)
+lbl_80338DB4:
+/* 80338DB4 00334A14 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80338DB8 00334A18 2C 03 00 00 */ cmpwi r3, 0
+/* 80338DBC 00334A1C 41 82 00 18 */ beq lbl_80338DD4
+/* 80338DC0 00334A20 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338DC4 00334A24 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338DC8 00334A28 81 84 00 04 */ lwz r12, 4(r4)
+/* 80338DCC 00334A2C 7D 89 03 A6 */ mtctr r12
+/* 80338DD0 00334A30 4E 80 04 21 */ bctrl
+lbl_80338DD4:
+/* 80338DD4 00334A34 38 00 00 00 */ li r0, 0
+/* 80338DD8 00334A38 2C 1F 00 00 */ cmpwi r31, 0
+/* 80338DDC 00334A3C 90 1F 00 00 */ stw r0, 0(r31)
+/* 80338DE0 00334A40 41 82 00 1C */ beq lbl_80338DFC
+/* 80338DE4 00334A44 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338DE8 00334A48 7F E3 FB 78 */ mr r3, r31
+/* 80338DEC 00334A4C 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338DF0 00334A50 81 84 00 04 */ lwz r12, 4(r4)
+/* 80338DF4 00334A54 7D 89 03 A6 */ mtctr r12
+/* 80338DF8 00334A58 4E 80 04 21 */ bctrl
+lbl_80338DFC:
+/* 80338DFC 00334A5C 80 01 03 34 */ lwz r0, 0x334(r1)
+/* 80338E00 00334A60 83 E1 03 2C */ lwz r31, 0x32c(r1)
+/* 80338E04 00334A64 7C 08 03 A6 */ mtlr r0
+/* 80338E08 00334A68 38 21 03 30 */ addi r1, r1, 0x330
+/* 80338E0C 00334A6C 4E 80 00 20 */ blr
+
+.global gsiGetResolvedIP
+gsiGetResolvedIP:
+/* 80338E10 00334A70 94 21 FC D0 */ stwu r1, -0x330(r1)
+/* 80338E14 00334A74 7C 08 02 A6 */ mflr r0
+/* 80338E18 00334A78 90 01 03 34 */ stw r0, 0x334(r1)
+/* 80338E1C 00334A7C 93 E1 03 2C */ stw r31, 0x32c(r1)
+/* 80338E20 00334A80 93 C1 03 28 */ stw r30, 0x328(r1)
+/* 80338E24 00334A84 7C 7E 1B 78 */ mr r30, r3
+/* 80338E28 00334A88 80 03 00 08 */ lwz r0, 8(r3)
+/* 80338E2C 00334A8C 2C 00 00 00 */ cmpwi r0, 0
+/* 80338E30 00334A90 40 82 00 0C */ bne lbl_80338E3C
+/* 80338E34 00334A94 38 60 00 00 */ li r3, 0
+/* 80338E38 00334A98 48 00 00 B4 */ b lbl_80338EEC
+lbl_80338E3C:
+/* 80338E3C 00334A9C 38 00 00 64 */ li r0, 0x64
+/* 80338E40 00334AA0 38 A1 00 04 */ addi r5, r1, 4
+/* 80338E44 00334AA4 38 83 00 0C */ addi r4, r3, 0xc
+/* 80338E48 00334AA8 83 E3 00 04 */ lwz r31, 4(r3)
+/* 80338E4C 00334AAC 7C 09 03 A6 */ mtctr r0
+lbl_80338E50:
+/* 80338E50 00334AB0 80 64 00 04 */ lwz r3, 4(r4)
+/* 80338E54 00334AB4 84 04 00 08 */ lwzu r0, 8(r4)
+/* 80338E58 00334AB8 90 65 00 04 */ stw r3, 4(r5)
+/* 80338E5C 00334ABC 94 05 00 08 */ stwu r0, 8(r5)
+/* 80338E60 00334AC0 42 00 FF F0 */ bdnz lbl_80338E50
+/* 80338E64 00334AC4 38 61 00 08 */ addi r3, r1, 8
+/* 80338E68 00334AC8 4B F3 84 B1 */ bl OSIsThreadTerminated
+/* 80338E6C 00334ACC 2C 03 00 00 */ cmpwi r3, 0
+/* 80338E70 00334AD0 40 82 00 0C */ bne lbl_80338E7C
+/* 80338E74 00334AD4 38 61 00 08 */ addi r3, r1, 8
+/* 80338E78 00334AD8 4B F3 8D B9 */ bl OSCancelThread
+lbl_80338E7C:
+/* 80338E7C 00334ADC 80 61 03 20 */ lwz r3, 0x320(r1)
+/* 80338E80 00334AE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80338E84 00334AE4 41 82 00 24 */ beq lbl_80338EA8
+/* 80338E88 00334AE8 41 82 00 18 */ beq lbl_80338EA0
+/* 80338E8C 00334AEC 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338E90 00334AF0 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338E94 00334AF4 81 84 00 04 */ lwz r12, 4(r4)
+/* 80338E98 00334AF8 7D 89 03 A6 */ mtctr r12
+/* 80338E9C 00334AFC 4E 80 04 21 */ bctrl
+lbl_80338EA0:
+/* 80338EA0 00334B00 38 00 00 00 */ li r0, 0
+/* 80338EA4 00334B04 90 01 03 20 */ stw r0, 0x320(r1)
+lbl_80338EA8:
+/* 80338EA8 00334B08 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80338EAC 00334B0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80338EB0 00334B10 41 82 00 18 */ beq lbl_80338EC8
+/* 80338EB4 00334B14 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338EB8 00334B18 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338EBC 00334B1C 81 84 00 04 */ lwz r12, 4(r4)
+/* 80338EC0 00334B20 7D 89 03 A6 */ mtctr r12
+/* 80338EC4 00334B24 4E 80 04 21 */ bctrl
+lbl_80338EC8:
+/* 80338EC8 00334B28 2C 1E 00 00 */ cmpwi r30, 0
+/* 80338ECC 00334B2C 41 82 00 1C */ beq lbl_80338EE8
+/* 80338ED0 00334B30 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338ED4 00334B34 7F C3 F3 78 */ mr r3, r30
+/* 80338ED8 00334B38 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80338EDC 00334B3C 81 84 00 04 */ lwz r12, 4(r4)
+/* 80338EE0 00334B40 7D 89 03 A6 */ mtctr r12
+/* 80338EE4 00334B44 4E 80 04 21 */ bctrl
+lbl_80338EE8:
+/* 80338EE8 00334B48 7F E3 FB 78 */ mr r3, r31
+lbl_80338EEC:
+/* 80338EEC 00334B4C 80 01 03 34 */ lwz r0, 0x334(r1)
+/* 80338EF0 00334B50 83 E1 03 2C */ lwz r31, 0x32c(r1)
+/* 80338EF4 00334B54 83 C1 03 28 */ lwz r30, 0x328(r1)
+/* 80338EF8 00334B58 7C 08 03 A6 */ mtlr r0
+/* 80338EFC 00334B5C 38 21 03 30 */ addi r1, r1, 0x330
+/* 80338F00 00334B60 4E 80 00 20 */ blr
+
+.global goastrdup
+goastrdup:
+/* 80338F04 00334B64 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338F08 00334B68 7C 08 02 A6 */ mflr r0
+/* 80338F0C 00334B6C 2C 03 00 00 */ cmpwi r3, 0
+/* 80338F10 00334B70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80338F14 00334B74 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80338F18 00334B78 93 C1 00 08 */ stw r30, 8(r1)
+/* 80338F1C 00334B7C 7C 7E 1B 78 */ mr r30, r3
+/* 80338F20 00334B80 40 82 00 0C */ bne lbl_80338F2C
+/* 80338F24 00334B84 38 60 00 00 */ li r3, 0
+/* 80338F28 00334B88 48 00 00 34 */ b lbl_80338F5C
+lbl_80338F2C:
+/* 80338F2C 00334B8C 4B E8 DC 39 */ bl strlen
+/* 80338F30 00334B90 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80338F34 00334B94 81 84 09 28 */ lwz r12, lbl_80610928@l(r4)
+/* 80338F38 00334B98 7D 89 03 A6 */ mtctr r12
+/* 80338F3C 00334B9C 38 63 00 01 */ addi r3, r3, 1
+/* 80338F40 00334BA0 4E 80 04 21 */ bctrl
+/* 80338F44 00334BA4 2C 03 00 00 */ cmpwi r3, 0
+/* 80338F48 00334BA8 7C 7F 1B 78 */ mr r31, r3
+/* 80338F4C 00334BAC 41 82 00 0C */ beq lbl_80338F58
+/* 80338F50 00334BB0 7F C4 F3 78 */ mr r4, r30
+/* 80338F54 00334BB4 4B E9 53 7D */ bl strcpy
+lbl_80338F58:
+/* 80338F58 00334BB8 7F E3 FB 78 */ mr r3, r31
+lbl_80338F5C:
+/* 80338F5C 00334BBC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80338F60 00334BC0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80338F64 00334BC4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80338F68 00334BC8 7C 08 03 A6 */ mtlr r0
+/* 80338F6C 00334BCC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80338F70 00334BD0 4E 80 00 20 */ blr
+
+.global _strlwr
+_strlwr:
+/* 80338F74 00334BD4 3C A0 80 42 */ lis r5, lbl_80422D48@ha
+/* 80338F78 00334BD8 7C 67 1B 78 */ mr r7, r3
+/* 80338F7C 00334BDC 38 A5 2D 48 */ addi r5, r5, lbl_80422D48@l
+/* 80338F80 00334BE0 48 00 00 3C */ b lbl_80338FBC
+lbl_80338F84:
+/* 80338F84 00334BE4 7C 86 07 75 */ extsb. r6, r4
+/* 80338F88 00334BE8 38 00 00 00 */ li r0, 0
+/* 80338F8C 00334BEC 41 80 00 0C */ blt lbl_80338F98
+/* 80338F90 00334BF0 2C 06 01 00 */ cmpwi r6, 0x100
+/* 80338F94 00334BF4 41 80 00 08 */ blt lbl_80338F9C
+lbl_80338F98:
+/* 80338F98 00334BF8 38 00 00 01 */ li r0, 1
+lbl_80338F9C:
+/* 80338F9C 00334BFC 2C 00 00 00 */ cmpwi r0, 0
+/* 80338FA0 00334C00 41 82 00 08 */ beq lbl_80338FA8
+/* 80338FA4 00334C04 48 00 00 10 */ b lbl_80338FB4
+lbl_80338FA8:
+/* 80338FA8 00334C08 80 85 00 38 */ lwz r4, 0x38(r5)
+/* 80338FAC 00334C0C 80 84 00 10 */ lwz r4, 0x10(r4)
+/* 80338FB0 00334C10 7C C4 30 AE */ lbzx r6, r4, r6
+lbl_80338FB4:
+/* 80338FB4 00334C14 98 C3 00 00 */ stb r6, 0(r3)
+/* 80338FB8 00334C18 38 63 00 01 */ addi r3, r3, 1
+lbl_80338FBC:
+/* 80338FBC 00334C1C 88 83 00 00 */ lbz r4, 0(r3)
+/* 80338FC0 00334C20 7C 80 07 75 */ extsb. r0, r4
+/* 80338FC4 00334C24 40 82 FF C0 */ bne lbl_80338F84
+/* 80338FC8 00334C28 7C E3 3B 78 */ mr r3, r7
+/* 80338FCC 00334C2C 4E 80 00 20 */ blr
+
+.global SocketStartUp
+SocketStartUp:
+/* 80338FD0 00334C30 4E 80 00 20 */ blr
+
+.global SocketShutDown
+SocketShutDown:
+/* 80338FD4 00334C34 4E 80 00 20 */ blr
+
+.global current_time
+current_time:
+/* 80338FD8 00334C38 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80338FDC 00334C3C 7C 08 02 A6 */ mflr r0
+/* 80338FE0 00334C40 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80338FE4 00334C44 4B F3 97 D5 */ bl OSGetTime
+/* 80338FE8 00334C48 3C C0 80 00 */ lis r6, 0x800000F8@ha
+/* 80338FEC 00334C4C 3C A0 10 62 */ lis r5, 0x10624DD3@ha
+/* 80338FF0 00334C50 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
+/* 80338FF4 00334C54 38 C5 4D D3 */ addi r6, r5, 0x10624DD3@l
+/* 80338FF8 00334C58 38 A0 00 00 */ li r5, 0
+/* 80338FFC 00334C5C 54 00 F0 BE */ srwi r0, r0, 2
+/* 80339000 00334C60 7C 06 00 16 */ mulhwu r0, r6, r0
+/* 80339004 00334C64 54 06 D1 BE */ srwi r6, r0, 6
+/* 80339008 00334C68 4B E8 E2 71 */ bl __div2i
+/* 8033900C 00334C6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80339010 00334C70 7C 83 23 78 */ mr r3, r4
+/* 80339014 00334C74 7C 08 03 A6 */ mtlr r0
+/* 80339018 00334C78 38 21 00 10 */ addi r1, r1, 0x10
+/* 8033901C 00334C7C 4E 80 00 20 */ blr
+
+.global current_time_hires
+current_time_hires:
+/* 80339020 00334C80 4E 80 00 20 */ blr
+
+.global msleep
+msleep:
+/* 80339024 00334C84 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 80339028 00334C88 3C 80 10 62 */ lis r4, 0x10624DD3@ha
+/* 8033902C 00334C8C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 80339030 00334C90 38 84 4D D3 */ addi r4, r4, 0x10624DD3@l
+/* 80339034 00334C94 38 C0 00 00 */ li r6, 0
+/* 80339038 00334C98 54 00 F0 BE */ srwi r0, r0, 2
+/* 8033903C 00334C9C 7C 84 00 16 */ mulhwu r4, r4, r0
+/* 80339040 00334CA0 7C 03 31 D6 */ mullw r0, r3, r6
+/* 80339044 00334CA4 54 84 D1 BE */ srwi r4, r4, 6
+/* 80339048 00334CA8 7C A3 20 16 */ mulhwu r5, r3, r4
+/* 8033904C 00334CAC 7C C6 21 D6 */ mullw r6, r6, r4
+/* 80339050 00334CB0 7C 83 21 D6 */ mullw r4, r3, r4
+/* 80339054 00334CB4 7C 65 32 14 */ add r3, r5, r6
+/* 80339058 00334CB8 7C 63 02 14 */ add r3, r3, r0
+/* 8033905C 00334CBC 4B F3 96 A8 */ b OSSleepTicks
+
+.global Util_RandSeed
+Util_RandSeed:
+/* 80339060 00334CC0 2C 03 00 00 */ cmpwi r3, 0
+/* 80339064 00334CC4 38 00 00 01 */ li r0, 1
+/* 80339068 00334CC8 41 82 00 08 */ beq lbl_80339070
+/* 8033906C 00334CCC 54 60 00 7E */ clrlwi r0, r3, 1
+lbl_80339070:
+/* 80339070 00334CD0 90 0D 8F 30 */ stw r0, lbl_8063E1F0-_SDA_BASE_(r13)
+/* 80339074 00334CD4 4E 80 00 20 */ blr
+
+.global Util_RandInt
+Util_RandInt:
+/* 80339078 00334CD8 7C E3 20 51 */ subf. r7, r3, r4
+/* 8033907C 00334CDC 4D 82 00 20 */ beqlr
+/* 80339080 00334CE0 80 AD 8F 30 */ lwz r5, lbl_8063E1F0-_SDA_BASE_(r13)
+/* 80339084 00334CE4 3C 80 80 00 */ lis r4, 0x7FFFFFFF@ha
+/* 80339088 00334CE8 38 04 FF FF */ addi r0, r4, 0x7FFFFFFF@l
+/* 8033908C 00334CEC 54 A4 84 3E */ srwi r4, r5, 0x10
+/* 80339090 00334CF0 54 A5 04 3E */ clrlwi r5, r5, 0x10
+/* 80339094 00334CF4 1C C4 41 A7 */ mulli r6, r4, 0x41a7
+/* 80339098 00334CF8 1C A5 41 A7 */ mulli r5, r5, 0x41a7
+/* 8033909C 00334CFC 54 C4 80 5E */ rlwinm r4, r6, 0x10, 1, 0xf
+/* 803390A0 00334D00 7C A5 22 14 */ add r5, r5, r4
+/* 803390A4 00334D04 7C 05 00 40 */ cmplw r5, r0
+/* 803390A8 00334D08 40 81 00 0C */ ble lbl_803390B4
+/* 803390AC 00334D0C 54 A5 00 7E */ clrlwi r5, r5, 1
+/* 803390B0 00334D10 38 A5 00 01 */ addi r5, r5, 1
+lbl_803390B4:
+/* 803390B4 00334D14 54 C0 8B FE */ srwi r0, r6, 0xf
+/* 803390B8 00334D18 3C 80 80 00 */ lis r4, 0x7FFFFFFF@ha
+/* 803390BC 00334D1C 7C A5 02 14 */ add r5, r5, r0
+/* 803390C0 00334D20 38 04 FF FF */ addi r0, r4, 0x7FFFFFFF@l
+/* 803390C4 00334D24 7C 05 00 40 */ cmplw r5, r0
+/* 803390C8 00334D28 40 81 00 0C */ ble lbl_803390D4
+/* 803390CC 00334D2C 54 A5 00 7E */ clrlwi r5, r5, 1
+/* 803390D0 00334D30 38 A5 00 01 */ addi r5, r5, 1
+lbl_803390D4:
+/* 803390D4 00334D34 7C 05 3B 96 */ divwu r0, r5, r7
+/* 803390D8 00334D38 90 AD 8F 30 */ stw r5, lbl_8063E1F0-_SDA_BASE_(r13)
+/* 803390DC 00334D3C 7C 00 39 D6 */ mullw r0, r0, r7
+/* 803390E0 00334D40 7C 00 28 50 */ subf r0, r0, r5
+/* 803390E4 00334D44 7C 60 1A 14 */ add r3, r0, r3
+/* 803390E8 00334D48 4E 80 00 20 */ blr
+
+.global B64Encode
+B64Encode:
+/* 803390EC 00334D4C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803390F0 00334D50 2C 06 00 02 */ cmpwi r6, 2
+/* 803390F4 00334D54 7C 80 23 78 */ mr r0, r4
+/* 803390F8 00334D58 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 803390FC 00334D5C 7C BF 2B 78 */ mr r31, r5
+/* 80339100 00334D60 41 82 00 1C */ beq lbl_8033911C
+/* 80339104 00334D64 40 80 00 20 */ bge lbl_80339124
+/* 80339108 00334D68 2C 06 00 01 */ cmpwi r6, 1
+/* 8033910C 00334D6C 40 80 00 08 */ bge lbl_80339114
+/* 80339110 00334D70 48 00 00 14 */ b lbl_80339124
+lbl_80339114:
+/* 80339114 00334D74 38 C2 A4 BC */ addi r6, r2, lbl_80642ABC-_SDA2_BASE_
+/* 80339118 00334D78 48 00 00 10 */ b lbl_80339128
+lbl_8033911C:
+/* 8033911C 00334D7C 38 C2 A4 C0 */ addi r6, r2, lbl_80642AC0-_SDA2_BASE_
+/* 80339120 00334D80 48 00 00 08 */ b lbl_80339128
+lbl_80339124:
+/* 80339124 00334D84 38 C2 A4 B8 */ addi r6, r2, lbl_80642AB8-_SDA2_BASE_
+lbl_80339128:
+/* 80339128 00334D88 39 80 00 00 */ li r12, 0
+/* 8033912C 00334D8C 48 00 00 E0 */ b lbl_8033920C
+lbl_80339130:
+/* 80339130 00334D90 7C 67 1B 78 */ mr r7, r3
+/* 80339134 00334D94 39 41 00 08 */ addi r10, r1, 8
+/* 80339138 00334D98 39 20 00 00 */ li r9, 0
+/* 8033913C 00334D9C 48 00 00 18 */ b lbl_80339154
+lbl_80339140:
+/* 80339140 00334DA0 89 07 00 00 */ lbz r8, 0(r7)
+/* 80339144 00334DA4 39 29 00 01 */ addi r9, r9, 1
+/* 80339148 00334DA8 38 E7 00 01 */ addi r7, r7, 1
+/* 8033914C 00334DAC 99 0A 00 00 */ stb r8, 0(r10)
+/* 80339150 00334DB0 39 4A 00 01 */ addi r10, r10, 1
+lbl_80339154:
+/* 80339154 00334DB4 2C 1F 00 03 */ cmpwi r31, 3
+/* 80339158 00334DB8 39 00 00 03 */ li r8, 3
+/* 8033915C 00334DBC 40 80 00 08 */ bge lbl_80339164
+/* 80339160 00334DC0 7F E8 FB 78 */ mr r8, r31
+lbl_80339164:
+/* 80339164 00334DC4 7C 09 40 00 */ cmpw r9, r8
+/* 80339168 00334DC8 41 80 FF D8 */ blt lbl_80339140
+/* 8033916C 00334DCC 2C 09 00 03 */ cmpwi r9, 3
+/* 80339170 00334DD0 39 41 00 08 */ addi r10, r1, 8
+/* 80339174 00334DD4 7D 4A 4A 14 */ add r10, r10, r9
+/* 80339178 00334DD8 21 09 00 03 */ subfic r8, r9, 3
+/* 8033917C 00334DDC 40 80 00 50 */ bge lbl_803391CC
+/* 80339180 00334DE0 55 07 E8 FF */ rlwinm. r7, r8, 0x1d, 3, 0x1f
+/* 80339184 00334DE4 7C E9 03 A6 */ mtctr r7
+/* 80339188 00334DE8 41 82 00 34 */ beq lbl_803391BC
+lbl_8033918C:
+/* 8033918C 00334DEC 99 8A 00 00 */ stb r12, 0(r10)
+/* 80339190 00334DF0 99 8A 00 01 */ stb r12, 1(r10)
+/* 80339194 00334DF4 99 8A 00 02 */ stb r12, 2(r10)
+/* 80339198 00334DF8 99 8A 00 03 */ stb r12, 3(r10)
+/* 8033919C 00334DFC 99 8A 00 04 */ stb r12, 4(r10)
+/* 803391A0 00334E00 99 8A 00 05 */ stb r12, 5(r10)
+/* 803391A4 00334E04 99 8A 00 06 */ stb r12, 6(r10)
+/* 803391A8 00334E08 99 8A 00 07 */ stb r12, 7(r10)
+/* 803391AC 00334E0C 39 4A 00 08 */ addi r10, r10, 8
+/* 803391B0 00334E10 42 00 FF DC */ bdnz lbl_8033918C
+/* 803391B4 00334E14 71 08 00 07 */ andi. r8, r8, 7
+/* 803391B8 00334E18 41 82 00 14 */ beq lbl_803391CC
+lbl_803391BC:
+/* 803391BC 00334E1C 7D 09 03 A6 */ mtctr r8
+lbl_803391C0:
+/* 803391C0 00334E20 99 8A 00 00 */ stb r12, 0(r10)
+/* 803391C4 00334E24 39 4A 00 01 */ addi r10, r10, 1
+/* 803391C8 00334E28 42 00 FF F8 */ bdnz lbl_803391C0
+lbl_803391CC:
+/* 803391CC 00334E2C 89 61 00 08 */ lbz r11, 8(r1)
+/* 803391D0 00334E30 38 63 00 03 */ addi r3, r3, 3
+/* 803391D4 00334E34 89 41 00 09 */ lbz r10, 9(r1)
+/* 803391D8 00334E38 3B FF FF FD */ addi r31, r31, -3
+/* 803391DC 00334E3C 7D 67 16 70 */ srawi r7, r11, 2
+/* 803391E0 00334E40 89 01 00 0A */ lbz r8, 0xa(r1)
+/* 803391E4 00334E44 98 E4 00 00 */ stb r7, 0(r4)
+/* 803391E8 00334E48 7D 49 26 70 */ srawi r9, r10, 4
+/* 803391EC 00334E4C 51 69 26 B6 */ rlwimi r9, r11, 4, 0x1a, 0x1b
+/* 803391F0 00334E50 55 07 06 BE */ clrlwi r7, r8, 0x1a
+/* 803391F4 00334E54 99 24 00 01 */ stb r9, 1(r4)
+/* 803391F8 00334E58 7D 08 36 70 */ srawi r8, r8, 6
+/* 803391FC 00334E5C 51 48 16 BA */ rlwimi r8, r10, 2, 0x1a, 0x1d
+/* 80339200 00334E60 99 04 00 02 */ stb r8, 2(r4)
+/* 80339204 00334E64 98 E4 00 03 */ stb r7, 3(r4)
+/* 80339208 00334E68 38 84 00 04 */ addi r4, r4, 4
+lbl_8033920C:
+/* 8033920C 00334E6C 2C 1F 00 00 */ cmpwi r31, 0
+/* 80339210 00334E70 41 81 FF 20 */ bgt lbl_80339130
+/* 80339214 00334E74 3C 60 55 55 */ lis r3, 0x55555556@ha
+/* 80339218 00334E78 7C 88 23 78 */ mr r8, r4
+/* 8033921C 00334E7C 38 63 55 56 */ addi r3, r3, 0x55555556@l
+/* 80339220 00334E80 7C E3 28 96 */ mulhw r7, r3, r5
+/* 80339224 00334E84 54 E3 0F FE */ srwi r3, r7, 0x1f
+/* 80339228 00334E88 7C 67 1A 14 */ add r3, r7, r3
+/* 8033922C 00334E8C 1C 63 00 03 */ mulli r3, r3, 3
+/* 80339230 00334E90 7C 63 28 50 */ subf r3, r3, r5
+/* 80339234 00334E94 2C 03 00 01 */ cmpwi r3, 1
+/* 80339238 00334E98 40 82 00 0C */ bne lbl_80339244
+/* 8033923C 00334E9C 39 04 FF FE */ addi r8, r4, -2
+/* 80339240 00334EA0 48 00 00 10 */ b lbl_80339250
+lbl_80339244:
+/* 80339244 00334EA4 2C 03 00 02 */ cmpwi r3, 2
+/* 80339248 00334EA8 40 82 00 08 */ bne lbl_80339250
+/* 8033924C 00334EAC 39 04 FF FF */ addi r8, r4, -1
+lbl_80339250:
+/* 80339250 00334EB0 38 A0 00 00 */ li r5, 0
+/* 80339254 00334EB4 7C 60 20 50 */ subf r3, r0, r4
+/* 80339258 00334EB8 98 A4 00 00 */ stb r5, 0(r4)
+/* 8033925C 00334EBC 7C 69 03 A6 */ mtctr r3
+/* 80339260 00334EC0 7C 04 00 40 */ cmplw r4, r0
+/* 80339264 00334EC4 40 81 00 88 */ ble lbl_803392EC
+lbl_80339268:
+/* 80339268 00334EC8 38 84 FF FF */ addi r4, r4, -1
+/* 8033926C 00334ECC 7C 04 40 40 */ cmplw r4, r8
+/* 80339270 00334ED0 41 80 00 10 */ blt lbl_80339280
+/* 80339274 00334ED4 88 06 00 02 */ lbz r0, 2(r6)
+/* 80339278 00334ED8 98 04 00 00 */ stb r0, 0(r4)
+/* 8033927C 00334EDC 48 00 00 6C */ b lbl_803392E8
+lbl_80339280:
+/* 80339280 00334EE0 88 64 00 00 */ lbz r3, 0(r4)
+/* 80339284 00334EE4 7C 60 07 74 */ extsb r0, r3
+/* 80339288 00334EE8 2C 00 00 19 */ cmpwi r0, 0x19
+/* 8033928C 00334EEC 41 81 00 10 */ bgt lbl_8033929C
+/* 80339290 00334EF0 38 03 00 41 */ addi r0, r3, 0x41
+/* 80339294 00334EF4 98 04 00 00 */ stb r0, 0(r4)
+/* 80339298 00334EF8 48 00 00 50 */ b lbl_803392E8
+lbl_8033929C:
+/* 8033929C 00334EFC 2C 00 00 33 */ cmpwi r0, 0x33
+/* 803392A0 00334F00 41 81 00 10 */ bgt lbl_803392B0
+/* 803392A4 00334F04 38 03 00 47 */ addi r0, r3, 0x47
+/* 803392A8 00334F08 98 04 00 00 */ stb r0, 0(r4)
+/* 803392AC 00334F0C 48 00 00 3C */ b lbl_803392E8
+lbl_803392B0:
+/* 803392B0 00334F10 2C 00 00 3D */ cmpwi r0, 0x3d
+/* 803392B4 00334F14 41 81 00 10 */ bgt lbl_803392C4
+/* 803392B8 00334F18 38 03 FF FC */ addi r0, r3, -4
+/* 803392BC 00334F1C 98 04 00 00 */ stb r0, 0(r4)
+/* 803392C0 00334F20 48 00 00 28 */ b lbl_803392E8
+lbl_803392C4:
+/* 803392C4 00334F24 2C 00 00 3E */ cmpwi r0, 0x3e
+/* 803392C8 00334F28 40 82 00 10 */ bne lbl_803392D8
+/* 803392CC 00334F2C 88 06 00 00 */ lbz r0, 0(r6)
+/* 803392D0 00334F30 98 04 00 00 */ stb r0, 0(r4)
+/* 803392D4 00334F34 48 00 00 14 */ b lbl_803392E8
+lbl_803392D8:
+/* 803392D8 00334F38 2C 00 00 3F */ cmpwi r0, 0x3f
+/* 803392DC 00334F3C 40 82 00 0C */ bne lbl_803392E8
+/* 803392E0 00334F40 88 06 00 01 */ lbz r0, 1(r6)
+/* 803392E4 00334F44 98 04 00 00 */ stb r0, 0(r4)
+lbl_803392E8:
+/* 803392E8 00334F48 42 00 FF 80 */ bdnz lbl_80339268
+lbl_803392EC:
+/* 803392EC 00334F4C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803392F0 00334F50 38 21 00 20 */ addi r1, r1, 0x20
+/* 803392F4 00334F54 4E 80 00 20 */ blr
+
+.global gsiMemoryCallbacksSet
+gsiMemoryCallbacksSet:
+/* 803392F8 00334F58 3D 00 80 61 */ lis r8, lbl_80610928@ha
+/* 803392FC 00334F5C 38 E8 09 28 */ addi r7, r8, lbl_80610928@l
+/* 80339300 00334F60 90 68 09 28 */ stw r3, 0x928(r8)
+/* 80339304 00334F64 90 87 00 04 */ stw r4, 4(r7)
+/* 80339308 00334F68 90 A7 00 08 */ stw r5, 8(r7)
+/* 8033930C 00334F6C 90 C7 00 0C */ stw r6, 0xc(r7)
+/* 80339310 00334F70 4E 80 00 20 */ blr
+
+.global gsimalloc
+gsimalloc:
+/* 80339314 00334F74 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80339318 00334F78 81 84 09 28 */ lwz r12, lbl_80610928@l(r4)
+/* 8033931C 00334F7C 7D 89 03 A6 */ mtctr r12
+/* 80339320 00334F80 4E 80 04 20 */ bctr
+
+.global gsirealloc
+gsirealloc:
+/* 80339324 00334F84 3C A0 80 61 */ lis r5, lbl_80610928@ha
+/* 80339328 00334F88 38 A5 09 28 */ addi r5, r5, lbl_80610928@l
+/* 8033932C 00334F8C 81 85 00 08 */ lwz r12, 8(r5)
+/* 80339330 00334F90 7D 89 03 A6 */ mtctr r12
+/* 80339334 00334F94 4E 80 04 20 */ bctr
+
+.global gsifree
+gsifree:
+/* 80339338 00334F98 2C 03 00 00 */ cmpwi r3, 0
+/* 8033933C 00334F9C 4D 82 00 20 */ beqlr
+/* 80339340 00334FA0 3C 80 80 61 */ lis r4, lbl_80610928@ha
+/* 80339344 00334FA4 38 84 09 28 */ addi r4, r4, lbl_80610928@l
+/* 80339348 00334FA8 81 84 00 04 */ lwz r12, 4(r4)
+/* 8033934C 00334FAC 7D 89 03 A6 */ mtctr r12
+/* 80339350 00334FB0 4E 80 04 20 */ bctr
+/* 80339354 00334FB4 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/qr2.s b/asm/SDK/DWC/gamespy/qr2.s new file mode 100644 index 0000000..5d4c0cc --- /dev/null +++ b/asm/SDK/DWC/gamespy/qr2.s @@ -0,0 +1,2957 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global qr2_init_socketA
+qr2_init_socketA:
+/* 8034DE38 00349A98 94 21 FF 70 */ stwu r1, -0x90(r1)
+/* 8034DE3C 00349A9C 7C 08 02 A6 */ mflr r0
+/* 8034DE40 00349AA0 90 01 00 94 */ stw r0, 0x94(r1)
+/* 8034DE44 00349AA4 39 61 00 90 */ addi r11, r1, 0x90
+/* 8034DE48 00349AA8 4B E7 92 B9 */ bl _savegpr_17
+/* 8034DE4C 00349AAC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DE50 00349AB0 82 81 00 98 */ lwz r20, 0x98(r1)
+/* 8034DE54 00349AB4 82 A1 00 9C */ lwz r21, 0x9c(r1)
+/* 8034DE58 00349AB8 7C 71 1B 78 */ mr r17, r3
+/* 8034DE5C 00349ABC 82 C1 00 A0 */ lwz r22, 0xa0(r1)
+/* 8034DE60 00349AC0 7C 9C 23 78 */ mr r28, r4
+/* 8034DE64 00349AC4 82 E1 00 A4 */ lwz r23, 0xa4(r1)
+/* 8034DE68 00349AC8 7C BB 2B 78 */ mr r27, r5
+/* 8034DE6C 00349ACC 83 01 00 A8 */ lwz r24, 0xa8(r1)
+/* 8034DE70 00349AD0 7C DD 33 78 */ mr r29, r6
+/* 8034DE74 00349AD4 83 21 00 AC */ lwz r25, 0xac(r1)
+/* 8034DE78 00349AD8 7C FA 3B 78 */ mr r26, r7
+/* 8034DE7C 00349ADC 7D 1E 43 78 */ mr r30, r8
+/* 8034DE80 00349AE0 7D 32 4B 78 */ mr r18, r9
+/* 8034DE84 00349AE4 7D 53 53 78 */ mr r19, r10
+/* 8034DE88 00349AE8 40 82 00 10 */ bne lbl_8034DE98
+/* 8034DE8C 00349AEC 3F E0 80 45 */ lis r31, lbl_8044B608@ha
+/* 8034DE90 00349AF0 3B FF B6 08 */ addi r31, r31, lbl_8044B608@l
+/* 8034DE94 00349AF4 48 00 00 14 */ b lbl_8034DEA8
+lbl_8034DE98:
+/* 8034DE98 00349AF8 38 60 03 94 */ li r3, 0x394
+/* 8034DE9C 00349AFC 4B FE B4 79 */ bl gsimalloc
+/* 8034DEA0 00349B00 7C 7F 1B 78 */ mr r31, r3
+/* 8034DEA4 00349B04 90 71 00 00 */ stw r3, 0(r17)
+lbl_8034DEA8:
+/* 8034DEA8 00349B08 4B FE B1 31 */ bl current_time
+/* 8034DEAC 00349B0C 4B E7 EE B1 */ bl srand
+/* 8034DEB0 00349B10 7F A4 EB 78 */ mr r4, r29
+/* 8034DEB4 00349B14 38 7F 00 04 */ addi r3, r31, 4
+/* 8034DEB8 00349B18 4B E8 04 19 */ bl strcpy
+/* 8034DEBC 00349B1C 7F 44 D3 78 */ mr r4, r26
+/* 8034DEC0 00349B20 38 7F 00 44 */ addi r3, r31, 0x44
+/* 8034DEC4 00349B24 4B E8 04 0D */ bl strcpy
+/* 8034DEC8 00349B28 93 7F 00 C0 */ stw r27, 0xc0(r31)
+/* 8034DECC 00349B2C 38 80 00 00 */ li r4, 0
+/* 8034DED0 00349B30 3C 60 80 81 */ lis r3, 0x80808081@ha
+/* 8034DED4 00349B34 38 00 00 01 */ li r0, 1
+/* 8034DED8 00349B38 90 9F 00 AC */ stw r4, 0xac(r31)
+/* 8034DEDC 00349B3C 3B 43 80 81 */ addi r26, r3, 0x80808081@l
+/* 8034DEE0 00349B40 3B 60 00 00 */ li r27, 0
+/* 8034DEE4 00349B44 90 9F 00 B0 */ stw r4, 0xb0(r31)
+/* 8034DEE8 00349B48 93 9F 00 00 */ stw r28, 0(r31)
+/* 8034DEEC 00349B4C 90 1F 00 B8 */ stw r0, 0xb8(r31)
+/* 8034DEF0 00349B50 93 3F 01 0C */ stw r25, 0x10c(r31)
+/* 8034DEF4 00349B54 92 7F 00 88 */ stw r19, 0x88(r31)
+/* 8034DEF8 00349B58 92 9F 00 8C */ stw r20, 0x8c(r31)
+/* 8034DEFC 00349B5C 92 BF 00 90 */ stw r21, 0x90(r31)
+/* 8034DF00 00349B60 92 DF 00 94 */ stw r22, 0x94(r31)
+/* 8034DF04 00349B64 92 FF 00 98 */ stw r23, 0x98(r31)
+/* 8034DF08 00349B68 93 1F 00 9C */ stw r24, 0x9c(r31)
+/* 8034DF0C 00349B6C 90 9F 00 A0 */ stw r4, 0xa0(r31)
+/* 8034DF10 00349B70 90 9F 00 A4 */ stw r4, 0xa4(r31)
+/* 8034DF14 00349B74 90 9F 00 D4 */ stw r4, 0xd4(r31)
+/* 8034DF18 00349B78 93 DF 00 BC */ stw r30, 0xbc(r31)
+/* 8034DF1C 00349B7C 90 9F 00 C4 */ stw r4, 0xc4(r31)
+/* 8034DF20 00349B80 92 5F 00 C8 */ stw r18, 0xc8(r31)
+/* 8034DF24 00349B84 90 9F 01 04 */ stw r4, 0x104(r31)
+/* 8034DF28 00349B88 B0 9F 01 08 */ sth r4, 0x108(r31)
+/* 8034DF2C 00349B8C 90 9F 00 A8 */ stw r4, 0xa8(r31)
+/* 8034DF30 00349B90 90 9F 00 B4 */ stw r4, 0xb4(r31)
+/* 8034DF34 00349B94 98 9F 01 10 */ stb r4, 0x110(r31)
+lbl_8034DF38:
+/* 8034DF38 00349B98 4B E7 EE 05 */ bl rand
+/* 8034DF3C 00349B9C 7C 1A 18 96 */ mulhw r0, r26, r3
+/* 8034DF40 00349BA0 7C 9F DA 14 */ add r4, r31, r27
+/* 8034DF44 00349BA4 3B 7B 00 01 */ addi r27, r27, 1
+/* 8034DF48 00349BA8 2C 1B 00 04 */ cmpwi r27, 4
+/* 8034DF4C 00349BAC 7C 00 1A 14 */ add r0, r0, r3
+/* 8034DF50 00349BB0 7C 00 3E 70 */ srawi r0, r0, 7
+/* 8034DF54 00349BB4 54 05 0F FE */ srwi r5, r0, 0x1f
+/* 8034DF58 00349BB8 7C 00 2A 14 */ add r0, r0, r5
+/* 8034DF5C 00349BBC 1C 00 00 FF */ mulli r0, r0, 0xff
+/* 8034DF60 00349BC0 7C 00 18 50 */ subf r0, r0, r3
+/* 8034DF64 00349BC4 98 04 00 84 */ stb r0, 0x84(r4)
+/* 8034DF68 00349BC8 41 80 FF D0 */ blt lbl_8034DF38
+/* 8034DF6C 00349BCC 38 00 FF FF */ li r0, -1
+/* 8034DF70 00349BD0 38 C0 00 00 */ li r6, 0
+/* 8034DF74 00349BD4 90 1F 00 D8 */ stw r0, 0xd8(r31)
+/* 8034DF78 00349BD8 38 7F 01 14 */ addi r3, r31, 0x114
+/* 8034DF7C 00349BDC 3B 40 00 00 */ li r26, 0
+/* 8034DF80 00349BE0 38 80 00 00 */ li r4, 0
+/* 8034DF84 00349BE4 90 1F 00 DC */ stw r0, 0xdc(r31)
+/* 8034DF88 00349BE8 38 A0 02 80 */ li r5, 0x280
+/* 8034DF8C 00349BEC 90 1F 00 E0 */ stw r0, 0xe0(r31)
+/* 8034DF90 00349BF0 90 1F 00 E4 */ stw r0, 0xe4(r31)
+/* 8034DF94 00349BF4 90 1F 00 E8 */ stw r0, 0xe8(r31)
+/* 8034DF98 00349BF8 90 1F 00 EC */ stw r0, 0xec(r31)
+/* 8034DF9C 00349BFC 90 1F 00 F0 */ stw r0, 0xf0(r31)
+/* 8034DFA0 00349C00 90 1F 00 F4 */ stw r0, 0xf4(r31)
+/* 8034DFA4 00349C04 90 1F 00 F8 */ stw r0, 0xf8(r31)
+/* 8034DFA8 00349C08 90 1F 00 FC */ stw r0, 0xfc(r31)
+/* 8034DFAC 00349C0C 90 DF 01 00 */ stw r6, 0x100(r31)
+/* 8034DFB0 00349C10 4B CB 61 55 */ bl memset
+/* 8034DFB4 00349C14 4B FE A9 29 */ bl getlocalhost
+/* 8034DFB8 00349C18 2C 03 00 00 */ cmpwi r3, 0
+/* 8034DFBC 00349C1C 7C 7B 1B 78 */ mr r27, r3
+/* 8034DFC0 00349C20 41 82 00 48 */ beq lbl_8034E008
+/* 8034DFC4 00349C24 3F 80 80 62 */ lis r28, lbl_80620C90@ha
+/* 8034DFC8 00349C28 93 4D B0 B8 */ stw r26, lbl_80640378-_SDA_BASE_(r13)
+/* 8034DFCC 00349C2C 3B 9C 0C 90 */ addi r28, r28, lbl_80620C90@l
+/* 8034DFD0 00349C30 48 00 00 30 */ b lbl_8034E000
+lbl_8034DFD4:
+/* 8034DFD4 00349C34 80 7B 00 0C */ lwz r3, 0xc(r27)
+/* 8034DFD8 00349C38 57 40 10 3A */ slwi r0, r26, 2
+/* 8034DFDC 00349C3C 7C 83 00 2E */ lwzx r4, r3, r0
+/* 8034DFE0 00349C40 2C 04 00 00 */ cmpwi r4, 0
+/* 8034DFE4 00349C44 41 82 00 24 */ beq lbl_8034E008
+/* 8034DFE8 00349C48 7C 7C 02 14 */ add r3, r28, r0
+/* 8034DFEC 00349C4C 38 A0 00 04 */ li r5, 4
+/* 8034DFF0 00349C50 4B CB 60 11 */ bl memcpy
+/* 8034DFF4 00349C54 80 6D B0 B8 */ lwz r3, lbl_80640378-_SDA_BASE_(r13)
+/* 8034DFF8 00349C58 3B 43 00 01 */ addi r26, r3, 1
+/* 8034DFFC 00349C5C 93 4D B0 B8 */ stw r26, lbl_80640378-_SDA_BASE_(r13)
+lbl_8034E000:
+/* 8034E000 00349C60 2C 1A 00 05 */ cmpwi r26, 5
+/* 8034E004 00349C64 41 80 FF D0 */ blt lbl_8034DFD4
+lbl_8034E008:
+/* 8034E008 00349C68 2C 1E 00 00 */ cmpwi r30, 0
+/* 8034E00C 00349C6C 41 82 00 70 */ beq lbl_8034E07C
+/* 8034E010 00349C70 3C 60 80 62 */ lis r3, lbl_80620CA8@ha
+/* 8034E014 00349C74 8B 43 0C A8 */ lbz r26, lbl_80620CA8@l(r3)
+/* 8034E018 00349C78 7F 5A 07 75 */ extsb. r26, r26
+/* 8034E01C 00349C7C 40 82 00 1C */ bne lbl_8034E038
+/* 8034E020 00349C80 3C 80 80 45 */ lis r4, lbl_8044B99C@ha
+/* 8034E024 00349C84 7F A5 EB 78 */ mr r5, r29
+/* 8034E028 00349C88 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034E02C 00349C8C 38 84 B9 9C */ addi r4, r4, lbl_8044B99C@l
+/* 8034E030 00349C90 4C C6 31 82 */ crclr 6
+/* 8034E034 00349C94 4B E7 EA C9 */ bl sprintf
+lbl_8034E038:
+/* 8034E038 00349C98 2C 1A 00 00 */ cmpwi r26, 0
+/* 8034E03C 00349C9C 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034E040 00349CA0 41 82 00 0C */ beq lbl_8034E04C
+/* 8034E044 00349CA4 3C 60 80 62 */ lis r3, lbl_80620CA8@ha
+/* 8034E048 00349CA8 38 63 0C A8 */ addi r3, r3, lbl_80620CA8@l
+lbl_8034E04C:
+/* 8034E04C 00349CAC 38 BF 00 CC */ addi r5, r31, 0xcc
+/* 8034E050 00349CB0 38 80 6C FC */ li r4, 0x6cfc
+/* 8034E054 00349CB4 38 C0 00 00 */ li r6, 0
+/* 8034E058 00349CB8 48 00 07 F5 */ bl get_sockaddrin
+/* 8034E05C 00349CBC 2C 03 00 01 */ cmpwi r3, 1
+/* 8034E060 00349CC0 7C 7A 1B 78 */ mr r26, r3
+/* 8034E064 00349CC4 40 82 00 1C */ bne lbl_8034E080
+/* 8034E068 00349CC8 80 1F 00 D0 */ lwz r0, 0xd0(r31)
+/* 8034E06C 00349CCC 38 61 00 08 */ addi r3, r1, 8
+/* 8034E070 00349CD0 90 01 00 08 */ stw r0, 8(r1)
+/* 8034E074 00349CD4 4B FA 8C A5 */ bl SOInetNtoA
+/* 8034E078 00349CD8 48 00 00 08 */ b lbl_8034E080
+lbl_8034E07C:
+/* 8034E07C 00349CDC 3B 40 00 01 */ li r26, 1
+lbl_8034E080:
+/* 8034E080 00349CE0 2C 1A 00 00 */ cmpwi r26, 0
+/* 8034E084 00349CE4 38 60 00 03 */ li r3, 3
+/* 8034E088 00349CE8 41 82 00 08 */ beq lbl_8034E090
+/* 8034E08C 00349CEC 38 60 00 00 */ li r3, 0
+lbl_8034E090:
+/* 8034E090 00349CF0 39 61 00 90 */ addi r11, r1, 0x90
+/* 8034E094 00349CF4 4B E7 90 B9 */ bl _restgpr_17
+/* 8034E098 00349CF8 80 01 00 94 */ lwz r0, 0x94(r1)
+/* 8034E09C 00349CFC 7C 08 03 A6 */ mtlr r0
+/* 8034E0A0 00349D00 38 21 00 90 */ addi r1, r1, 0x90
+/* 8034E0A4 00349D04 4E 80 00 20 */ blr
+
+.global func_8034E0A8
+func_8034E0A8:
+/* 8034E0A8 00349D08 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8034E0AC 00349D0C 7C 08 02 A6 */ mflr r0
+/* 8034E0B0 00349D10 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8034E0B4 00349D14 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034E0B8 00349D18 4B E7 90 61 */ bl _savegpr_23
+/* 8034E0BC 00349D1C 83 45 00 00 */ lwz r26, 0(r5)
+/* 8034E0C0 00349D20 7C 77 1B 78 */ mr r23, r3
+/* 8034E0C4 00349D24 7C 98 23 78 */ mr r24, r4
+/* 8034E0C8 00349D28 7C B9 2B 78 */ mr r25, r5
+/* 8034E0CC 00349D2C 3B 60 00 00 */ li r27, 0
+/* 8034E0D0 00349D30 4B FE AF 01 */ bl SocketStartUp
+/* 8034E0D4 00349D34 38 60 00 02 */ li r3, 2
+/* 8034E0D8 00349D38 38 80 00 02 */ li r4, 2
+/* 8034E0DC 00349D3C 38 A0 00 11 */ li r5, 0x11
+/* 8034E0E0 00349D40 4B FE 9A E5 */ bl socket
+/* 8034E0E4 00349D44 2C 03 FF FF */ cmpwi r3, -1
+/* 8034E0E8 00349D48 7C 7D 1B 78 */ mr r29, r3
+/* 8034E0EC 00349D4C 40 82 00 0C */ bne lbl_8034E0F8
+/* 8034E0F0 00349D50 38 60 00 01 */ li r3, 1
+/* 8034E0F4 00349D54 48 00 00 C0 */ b lbl_8034E1B4
+lbl_8034E0F8:
+/* 8034E0F8 00349D58 3B 9A 00 64 */ addi r28, r26, 0x64
+/* 8034E0FC 00349D5C 3F C0 7F 00 */ lis r30, 0x7f00
+/* 8034E100 00349D60 3B E0 00 00 */ li r31, 0
+/* 8034E104 00349D64 48 00 00 50 */ b lbl_8034E154
+lbl_8034E108:
+/* 8034E108 00349D68 7F 03 C3 78 */ mr r3, r24
+/* 8034E10C 00349D6C 7F 44 D3 78 */ mr r4, r26
+/* 8034E110 00349D70 38 A1 00 10 */ addi r5, r1, 0x10
+/* 8034E114 00349D74 38 C0 00 00 */ li r6, 0
+/* 8034E118 00349D78 48 00 07 35 */ bl get_sockaddrin
+/* 8034E11C 00349D7C 38 7E 00 01 */ addi r3, r30, 1
+/* 8034E120 00349D80 4B FA 8C 59 */ bl SOHtoNl
+/* 8034E124 00349D84 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034E128 00349D88 7C 00 18 40 */ cmplw r0, r3
+/* 8034E12C 00349D8C 40 82 00 08 */ bne lbl_8034E134
+/* 8034E130 00349D90 93 E1 00 14 */ stw r31, 0x14(r1)
+lbl_8034E134:
+/* 8034E134 00349D94 7F A3 EB 78 */ mr r3, r29
+/* 8034E138 00349D98 38 81 00 10 */ addi r4, r1, 0x10
+/* 8034E13C 00349D9C 38 A0 00 08 */ li r5, 8
+/* 8034E140 00349DA0 4B FE 9B 25 */ bl bind
+/* 8034E144 00349DA4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E148 00349DA8 7C 7B 1B 78 */ mr r27, r3
+/* 8034E14C 00349DAC 41 82 00 10 */ beq lbl_8034E15C
+/* 8034E150 00349DB0 3B 5A 00 01 */ addi r26, r26, 1
+lbl_8034E154:
+/* 8034E154 00349DB4 7C 1A E0 00 */ cmpw r26, r28
+/* 8034E158 00349DB8 41 80 FF B0 */ blt lbl_8034E108
+lbl_8034E15C:
+/* 8034E15C 00349DBC 2C 1B 00 00 */ cmpwi r27, 0
+/* 8034E160 00349DC0 41 82 00 0C */ beq lbl_8034E16C
+/* 8034E164 00349DC4 38 60 00 02 */ li r3, 2
+/* 8034E168 00349DC8 48 00 00 4C */ b lbl_8034E1B4
+lbl_8034E16C:
+/* 8034E16C 00349DCC 2C 1A 00 00 */ cmpwi r26, 0
+/* 8034E170 00349DD0 40 82 00 38 */ bne lbl_8034E1A8
+/* 8034E174 00349DD4 38 00 00 08 */ li r0, 8
+/* 8034E178 00349DD8 7F A3 EB 78 */ mr r3, r29
+/* 8034E17C 00349DDC 90 01 00 08 */ stw r0, 8(r1)
+/* 8034E180 00349DE0 38 81 00 10 */ addi r4, r1, 0x10
+/* 8034E184 00349DE4 38 A1 00 08 */ addi r5, r1, 8
+/* 8034E188 00349DE8 4B FE 9D 8D */ bl getsockname
+/* 8034E18C 00349DEC 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E190 00349DF0 41 82 00 0C */ beq lbl_8034E19C
+/* 8034E194 00349DF4 38 60 00 02 */ li r3, 2
+/* 8034E198 00349DF8 48 00 00 1C */ b lbl_8034E1B4
+lbl_8034E19C:
+/* 8034E19C 00349DFC A0 61 00 12 */ lhz r3, 0x12(r1)
+/* 8034E1A0 00349E00 4B FA 8B D1 */ bl SONtoHs
+/* 8034E1A4 00349E04 54 7A 04 3E */ clrlwi r26, r3, 0x10
+lbl_8034E1A8:
+/* 8034E1A8 00349E08 93 B7 00 00 */ stw r29, 0(r23)
+/* 8034E1AC 00349E0C 38 60 00 00 */ li r3, 0
+/* 8034E1B0 00349E10 93 59 00 00 */ stw r26, 0(r25)
+lbl_8034E1B4:
+/* 8034E1B4 00349E14 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034E1B8 00349E18 4B E7 8F AD */ bl _restgpr_23
+/* 8034E1BC 00349E1C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8034E1C0 00349E20 7C 08 03 A6 */ mtlr r0
+/* 8034E1C4 00349E24 38 21 00 40 */ addi r1, r1, 0x40
+/* 8034E1C8 00349E28 4E 80 00 20 */ blr
+
+.global func_8034E1CC
+func_8034E1CC:
+/* 8034E1CC 00349E2C 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 8034E1D0 00349E30 7C 08 02 A6 */ mflr r0
+/* 8034E1D4 00349E34 90 01 00 64 */ stw r0, 0x64(r1)
+/* 8034E1D8 00349E38 39 61 00 60 */ addi r11, r1, 0x60
+/* 8034E1DC 00349E3C 4B E7 8F 2D */ bl _savegpr_19
+/* 8034E1E0 00349E40 90 A1 00 20 */ stw r5, 0x20(r1)
+/* 8034E1E4 00349E44 7C 73 1B 78 */ mr r19, r3
+/* 8034E1E8 00349E48 83 21 00 68 */ lwz r25, 0x68(r1)
+/* 8034E1EC 00349E4C 7C D4 33 78 */ mr r20, r6
+/* 8034E1F0 00349E50 83 41 00 6C */ lwz r26, 0x6c(r1)
+/* 8034E1F4 00349E54 7C F5 3B 78 */ mr r21, r7
+/* 8034E1F8 00349E58 83 61 00 70 */ lwz r27, 0x70(r1)
+/* 8034E1FC 00349E5C 7D 16 43 78 */ mr r22, r8
+/* 8034E200 00349E60 83 81 00 74 */ lwz r28, 0x74(r1)
+/* 8034E204 00349E64 7D 37 4B 78 */ mr r23, r9
+/* 8034E208 00349E68 83 A1 00 78 */ lwz r29, 0x78(r1)
+/* 8034E20C 00349E6C 7D 58 53 78 */ mr r24, r10
+/* 8034E210 00349E70 83 C1 00 7C */ lwz r30, 0x7c(r1)
+/* 8034E214 00349E74 38 61 00 24 */ addi r3, r1, 0x24
+/* 8034E218 00349E78 38 A1 00 20 */ addi r5, r1, 0x20
+/* 8034E21C 00349E7C 4B FF FE 8D */ bl func_8034E0A8
+/* 8034E220 00349E80 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E224 00349E84 7C 7F 1B 78 */ mr r31, r3
+/* 8034E228 00349E88 41 82 00 10 */ beq lbl_8034E238
+/* 8034E22C 00349E8C 4B FE AD A9 */ bl SocketShutDown
+/* 8034E230 00349E90 7F E3 FB 78 */ mr r3, r31
+/* 8034E234 00349E94 48 00 00 58 */ b lbl_8034E28C
+lbl_8034E238:
+/* 8034E238 00349E98 93 21 00 08 */ stw r25, 8(r1)
+/* 8034E23C 00349E9C 7E 63 9B 78 */ mr r3, r19
+/* 8034E240 00349EA0 7E 86 A3 78 */ mr r6, r20
+/* 8034E244 00349EA4 7E A7 AB 78 */ mr r7, r21
+/* 8034E248 00349EA8 93 41 00 0C */ stw r26, 0xc(r1)
+/* 8034E24C 00349EAC 7E C8 B3 78 */ mr r8, r22
+/* 8034E250 00349EB0 7E E9 BB 78 */ mr r9, r23
+/* 8034E254 00349EB4 7F 0A C3 78 */ mr r10, r24
+/* 8034E258 00349EB8 93 61 00 10 */ stw r27, 0x10(r1)
+/* 8034E25C 00349EBC 93 81 00 14 */ stw r28, 0x14(r1)
+/* 8034E260 00349EC0 93 A1 00 18 */ stw r29, 0x18(r1)
+/* 8034E264 00349EC4 93 C1 00 1C */ stw r30, 0x1c(r1)
+/* 8034E268 00349EC8 80 81 00 24 */ lwz r4, 0x24(r1)
+/* 8034E26C 00349ECC 80 A1 00 20 */ lwz r5, 0x20(r1)
+/* 8034E270 00349ED0 4B FF FB C9 */ bl qr2_init_socketA
+/* 8034E274 00349ED4 2C 13 00 00 */ cmpwi r19, 0
+/* 8034E278 00349ED8 40 82 00 08 */ bne lbl_8034E280
+/* 8034E27C 00349EDC 3A 6D 92 E8 */ addi r19, r13, lbl_8063E5A8-_SDA_BASE_
+lbl_8034E280:
+/* 8034E280 00349EE0 80 93 00 00 */ lwz r4, 0(r19)
+/* 8034E284 00349EE4 38 00 00 01 */ li r0, 1
+/* 8034E288 00349EE8 90 04 00 C4 */ stw r0, 0xc4(r4)
+lbl_8034E28C:
+/* 8034E28C 00349EEC 39 61 00 60 */ addi r11, r1, 0x60
+/* 8034E290 00349EF0 4B E7 8E C5 */ bl _restgpr_19
+/* 8034E294 00349EF4 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 8034E298 00349EF8 7C 08 03 A6 */ mtlr r0
+/* 8034E29C 00349EFC 38 21 00 60 */ addi r1, r1, 0x60
+/* 8034E2A0 00349F00 4E 80 00 20 */ blr
+
+.global qr2_register_natneg_callback
+qr2_register_natneg_callback:
+/* 8034E2A4 00349F04 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E2A8 00349F08 40 82 00 08 */ bne lbl_8034E2B0
+/* 8034E2AC 00349F0C 80 6D 92 E8 */ lwz r3, lbl_8063E5A8-_SDA_BASE_(r13)
+lbl_8034E2B0:
+/* 8034E2B0 00349F10 90 83 00 A0 */ stw r4, 0xa0(r3)
+/* 8034E2B4 00349F14 4E 80 00 20 */ blr
+
+.global qr2_register_clientmessage_callback
+qr2_register_clientmessage_callback:
+/* 8034E2B8 00349F18 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E2BC 00349F1C 40 82 00 08 */ bne lbl_8034E2C4
+/* 8034E2C0 00349F20 80 6D 92 E8 */ lwz r3, lbl_8063E5A8-_SDA_BASE_(r13)
+lbl_8034E2C4:
+/* 8034E2C4 00349F24 90 83 00 A4 */ stw r4, 0xa4(r3)
+/* 8034E2C8 00349F28 4E 80 00 20 */ blr
+
+.global qr2_register_publicaddress_callback
+qr2_register_publicaddress_callback:
+/* 8034E2CC 00349F2C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E2D0 00349F30 40 82 00 08 */ bne lbl_8034E2D8
+/* 8034E2D4 00349F34 80 6D 92 E8 */ lwz r3, lbl_8063E5A8-_SDA_BASE_(r13)
+lbl_8034E2D8:
+/* 8034E2D8 00349F38 90 83 00 A8 */ stw r4, 0xa8(r3)
+/* 8034E2DC 00349F3C 4E 80 00 20 */ blr
+
+.global qr2_think
+qr2_think:
+/* 8034E2E0 00349F40 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034E2E4 00349F44 7C 08 02 A6 */ mflr r0
+/* 8034E2E8 00349F48 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E2EC 00349F4C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034E2F0 00349F50 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034E2F4 00349F54 93 C1 00 08 */ stw r30, 8(r1)
+/* 8034E2F8 00349F58 7C 7E 1B 78 */ mr r30, r3
+/* 8034E2FC 00349F5C 40 82 00 08 */ bne lbl_8034E304
+/* 8034E300 00349F60 83 CD 92 E8 */ lwz r30, lbl_8063E5A8-_SDA_BASE_(r13)
+lbl_8034E304:
+/* 8034E304 00349F64 80 1E 00 BC */ lwz r0, 0xbc(r30)
+/* 8034E308 00349F68 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E30C 00349F6C 41 82 00 0C */ beq lbl_8034E318
+/* 8034E310 00349F70 7F C3 F3 78 */ mr r3, r30
+/* 8034E314 00349F74 48 00 01 99 */ bl qr2_check_send_heartbeat
+lbl_8034E318:
+/* 8034E318 00349F78 7F C3 F3 78 */ mr r3, r30
+/* 8034E31C 00349F7C 48 00 00 DD */ bl qr2_check_queries
+/* 8034E320 00349F80 3B E0 00 00 */ li r31, 0
+/* 8034E324 00349F84 4B FE AC B5 */ bl current_time
+/* 8034E328 00349F88 38 00 00 08 */ li r0, 8
+/* 8034E32C 00349F8C 38 80 00 00 */ li r4, 0
+/* 8034E330 00349F90 7C 09 03 A6 */ mtctr r0
+lbl_8034E334:
+/* 8034E334 00349F94 80 1E 01 18 */ lwz r0, 0x118(r30)
+/* 8034E338 00349F98 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E33C 00349F9C 41 82 00 18 */ beq lbl_8034E354
+/* 8034E340 00349FA0 80 1E 01 20 */ lwz r0, 0x120(r30)
+/* 8034E344 00349FA4 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E348 00349FA8 28 00 0F A0 */ cmplwi r0, 0xfa0
+/* 8034E34C 00349FAC 40 81 00 08 */ ble lbl_8034E354
+/* 8034E350 00349FB0 90 9E 01 18 */ stw r4, 0x118(r30)
+lbl_8034E354:
+/* 8034E354 00349FB4 80 1E 01 28 */ lwz r0, 0x128(r30)
+/* 8034E358 00349FB8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E35C 00349FBC 41 82 00 18 */ beq lbl_8034E374
+/* 8034E360 00349FC0 80 1E 01 30 */ lwz r0, 0x130(r30)
+/* 8034E364 00349FC4 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E368 00349FC8 28 00 0F A0 */ cmplwi r0, 0xfa0
+/* 8034E36C 00349FCC 40 81 00 08 */ ble lbl_8034E374
+/* 8034E370 00349FD0 90 9E 01 28 */ stw r4, 0x128(r30)
+lbl_8034E374:
+/* 8034E374 00349FD4 80 1E 01 38 */ lwz r0, 0x138(r30)
+/* 8034E378 00349FD8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E37C 00349FDC 41 82 00 18 */ beq lbl_8034E394
+/* 8034E380 00349FE0 80 1E 01 40 */ lwz r0, 0x140(r30)
+/* 8034E384 00349FE4 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E388 00349FE8 28 00 0F A0 */ cmplwi r0, 0xfa0
+/* 8034E38C 00349FEC 40 81 00 08 */ ble lbl_8034E394
+/* 8034E390 00349FF0 90 9E 01 38 */ stw r4, 0x138(r30)
+lbl_8034E394:
+/* 8034E394 00349FF4 80 1E 01 48 */ lwz r0, 0x148(r30)
+/* 8034E398 00349FF8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E39C 00349FFC 41 82 00 18 */ beq lbl_8034E3B4
+/* 8034E3A0 0034A000 80 1E 01 50 */ lwz r0, 0x150(r30)
+/* 8034E3A4 0034A004 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E3A8 0034A008 28 00 0F A0 */ cmplwi r0, 0xfa0
+/* 8034E3AC 0034A00C 40 81 00 08 */ ble lbl_8034E3B4
+/* 8034E3B0 0034A010 90 9E 01 48 */ stw r4, 0x148(r30)
+lbl_8034E3B4:
+/* 8034E3B4 0034A014 80 1E 01 58 */ lwz r0, 0x158(r30)
+/* 8034E3B8 0034A018 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E3BC 0034A01C 41 82 00 18 */ beq lbl_8034E3D4
+/* 8034E3C0 0034A020 80 1E 01 60 */ lwz r0, 0x160(r30)
+/* 8034E3C4 0034A024 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E3C8 0034A028 28 00 0F A0 */ cmplwi r0, 0xfa0
+/* 8034E3CC 0034A02C 40 81 00 08 */ ble lbl_8034E3D4
+/* 8034E3D0 0034A030 90 9E 01 58 */ stw r4, 0x158(r30)
+lbl_8034E3D4:
+/* 8034E3D4 0034A034 3B DE 00 50 */ addi r30, r30, 0x50
+/* 8034E3D8 0034A038 3B FF 00 04 */ addi r31, r31, 4
+/* 8034E3DC 0034A03C 42 00 FF 58 */ bdnz lbl_8034E334
+/* 8034E3E0 0034A040 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034E3E4 0034A044 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034E3E8 0034A048 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8034E3EC 0034A04C 7C 08 03 A6 */ mtlr r0
+/* 8034E3F0 0034A050 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034E3F4 0034A054 4E 80 00 20 */ blr
+
+.global qr2_check_queries
+qr2_check_queries:
+/* 8034E3F8 0034A058 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034E3FC 0034A05C 7C 08 02 A6 */ mflr r0
+/* 8034E400 0034A060 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034E404 0034A064 38 00 00 08 */ li r0, 8
+/* 8034E408 0034A068 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8034E40C 0034A06C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8034E410 0034A070 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 8034E414 0034A074 93 81 00 20 */ stw r28, 0x20(r1)
+/* 8034E418 0034A078 7C 7C 1B 78 */ mr r28, r3
+/* 8034E41C 0034A07C 90 01 00 08 */ stw r0, 8(r1)
+/* 8034E420 0034A080 80 03 00 C4 */ lwz r0, 0xc4(r3)
+/* 8034E424 0034A084 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E428 0034A088 40 82 00 08 */ bne lbl_8034E430
+/* 8034E42C 0034A08C 48 00 00 60 */ b lbl_8034E48C
+lbl_8034E430:
+/* 8034E430 0034A090 3F A0 80 62 */ lis r29, lbl_80620CE8@ha
+/* 8034E434 0034A094 3B C0 00 00 */ li r30, 0
+/* 8034E438 0034A098 3B FD 0C E8 */ addi r31, r29, lbl_80620CE8@l
+/* 8034E43C 0034A09C 48 00 00 40 */ b lbl_8034E47C
+lbl_8034E440:
+/* 8034E440 0034A0A0 80 7C 00 00 */ lwz r3, 0(r28)
+/* 8034E444 0034A0A4 38 9D 0C E8 */ addi r4, r29, 0xce8
+/* 8034E448 0034A0A8 38 E1 00 10 */ addi r7, r1, 0x10
+/* 8034E44C 0034A0AC 39 01 00 08 */ addi r8, r1, 8
+/* 8034E450 0034A0B0 38 A0 00 FF */ li r5, 0xff
+/* 8034E454 0034A0B4 38 C0 00 00 */ li r6, 0
+/* 8034E458 0034A0B8 4B FE 99 AD */ bl recvfrom
+/* 8034E45C 0034A0BC 2C 03 FF FF */ cmpwi r3, -1
+/* 8034E460 0034A0C0 7C 65 1B 78 */ mr r5, r3
+/* 8034E464 0034A0C4 41 82 00 18 */ beq lbl_8034E47C
+/* 8034E468 0034A0C8 7F DF 19 AE */ stbx r30, r31, r3
+/* 8034E46C 0034A0CC 7F 83 E3 78 */ mr r3, r28
+/* 8034E470 0034A0D0 7F E4 FB 78 */ mr r4, r31
+/* 8034E474 0034A0D4 38 C1 00 10 */ addi r6, r1, 0x10
+/* 8034E478 0034A0D8 48 00 13 A5 */ bl qr2_parse_queryA
+lbl_8034E47C:
+/* 8034E47C 0034A0DC 80 7C 00 00 */ lwz r3, 0(r28)
+/* 8034E480 0034A0E0 4B FE A3 CD */ bl CanReceiveOnSocket
+/* 8034E484 0034A0E4 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E488 0034A0E8 40 82 FF B8 */ bne lbl_8034E440
+lbl_8034E48C:
+/* 8034E48C 0034A0EC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034E490 0034A0F0 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8034E494 0034A0F4 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8034E498 0034A0F8 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 8034E49C 0034A0FC 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 8034E4A0 0034A100 7C 08 03 A6 */ mtlr r0
+/* 8034E4A4 0034A104 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034E4A8 0034A108 4E 80 00 20 */ blr
+
+.global qr2_check_send_heartbeat
+qr2_check_send_heartbeat:
+/* 8034E4AC 0034A10C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034E4B0 0034A110 7C 08 02 A6 */ mflr r0
+/* 8034E4B4 0034A114 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034E4B8 0034A118 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034E4BC 0034A11C 7C 7F 1B 78 */ mr r31, r3
+/* 8034E4C0 0034A120 4B FE AB 19 */ bl current_time
+/* 8034E4C4 0034A124 80 1F 00 00 */ lwz r0, 0(r31)
+/* 8034E4C8 0034A128 2C 00 FF FF */ cmpwi r0, -1
+/* 8034E4CC 0034A12C 41 82 00 E0 */ beq lbl_8034E5AC
+/* 8034E4D0 0034A130 80 9F 00 B8 */ lwz r4, 0xb8(r31)
+/* 8034E4D4 0034A134 2C 04 00 00 */ cmpwi r4, 0
+/* 8034E4D8 0034A138 40 81 00 60 */ ble lbl_8034E538
+/* 8034E4DC 0034A13C 80 1F 00 AC */ lwz r0, 0xac(r31)
+/* 8034E4E0 0034A140 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E4E4 0034A144 28 00 27 10 */ cmplwi r0, 0x2710
+/* 8034E4E8 0034A148 40 81 00 50 */ ble lbl_8034E538
+/* 8034E4EC 0034A14C 2C 04 00 04 */ cmpwi r4, 4
+/* 8034E4F0 0034A150 41 80 00 2C */ blt lbl_8034E51C
+/* 8034E4F4 0034A154 81 9F 00 9C */ lwz r12, 0x9c(r31)
+/* 8034E4F8 0034A158 38 00 00 00 */ li r0, 0
+/* 8034E4FC 0034A15C 3C 80 80 45 */ lis r4, lbl_8044B9C0@ha
+/* 8034E500 0034A160 90 1F 00 B8 */ stw r0, 0xb8(r31)
+/* 8034E504 0034A164 38 84 B9 C0 */ addi r4, r4, lbl_8044B9C0@l
+/* 8034E508 0034A168 80 BF 01 0C */ lwz r5, 0x10c(r31)
+/* 8034E50C 0034A16C 38 60 00 05 */ li r3, 5
+/* 8034E510 0034A170 7D 89 03 A6 */ mtctr r12
+/* 8034E514 0034A174 4E 80 04 21 */ bctrl
+/* 8034E518 0034A178 48 00 00 94 */ b lbl_8034E5AC
+lbl_8034E51C:
+/* 8034E51C 0034A17C 7F E3 FB 78 */ mr r3, r31
+/* 8034E520 0034A180 38 80 00 03 */ li r4, 3
+/* 8034E524 0034A184 48 00 1B 69 */ bl send_heartbeat
+/* 8034E528 0034A188 80 7F 00 B8 */ lwz r3, 0xb8(r31)
+/* 8034E52C 0034A18C 38 03 00 01 */ addi r0, r3, 1
+/* 8034E530 0034A190 90 1F 00 B8 */ stw r0, 0xb8(r31)
+/* 8034E534 0034A194 48 00 00 5C */ b lbl_8034E590
+lbl_8034E538:
+/* 8034E538 0034A198 80 1F 00 B4 */ lwz r0, 0xb4(r31)
+/* 8034E53C 0034A19C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E540 0034A1A0 41 82 00 24 */ beq lbl_8034E564
+/* 8034E544 0034A1A4 80 1F 00 AC */ lwz r0, 0xac(r31)
+/* 8034E548 0034A1A8 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E54C 0034A1AC 28 00 27 10 */ cmplwi r0, 0x2710
+/* 8034E550 0034A1B0 40 81 00 14 */ ble lbl_8034E564
+/* 8034E554 0034A1B4 7F E3 FB 78 */ mr r3, r31
+/* 8034E558 0034A1B8 38 80 00 01 */ li r4, 1
+/* 8034E55C 0034A1BC 48 00 1B 31 */ bl send_heartbeat
+/* 8034E560 0034A1C0 48 00 00 30 */ b lbl_8034E590
+lbl_8034E564:
+/* 8034E564 0034A1C4 80 9F 00 AC */ lwz r4, 0xac(r31)
+/* 8034E568 0034A1C8 7C 04 18 50 */ subf r0, r4, r3
+/* 8034E56C 0034A1CC 28 00 EA 60 */ cmplwi r0, 0xea60
+/* 8034E570 0034A1D0 41 81 00 14 */ bgt lbl_8034E584
+/* 8034E574 0034A1D4 2C 04 00 00 */ cmpwi r4, 0
+/* 8034E578 0034A1D8 41 82 00 0C */ beq lbl_8034E584
+/* 8034E57C 0034A1DC 7C 03 20 40 */ cmplw r3, r4
+/* 8034E580 0034A1E0 40 80 00 10 */ bge lbl_8034E590
+lbl_8034E584:
+/* 8034E584 0034A1E4 7F E3 FB 78 */ mr r3, r31
+/* 8034E588 0034A1E8 38 80 00 00 */ li r4, 0
+/* 8034E58C 0034A1EC 48 00 1B 01 */ bl send_heartbeat
+lbl_8034E590:
+/* 8034E590 0034A1F0 4B FE AA 49 */ bl current_time
+/* 8034E594 0034A1F4 80 1F 00 B0 */ lwz r0, 0xb0(r31)
+/* 8034E598 0034A1F8 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E59C 0034A1FC 28 00 4E 20 */ cmplwi r0, 0x4e20
+/* 8034E5A0 0034A200 40 81 00 0C */ ble lbl_8034E5AC
+/* 8034E5A4 0034A204 7F E3 FB 78 */ mr r3, r31
+/* 8034E5A8 0034A208 48 00 1A 71 */ bl send_keepalive
+lbl_8034E5AC:
+/* 8034E5AC 0034A20C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034E5B0 0034A210 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034E5B4 0034A214 7C 08 03 A6 */ mtlr r0
+/* 8034E5B8 0034A218 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034E5BC 0034A21C 4E 80 00 20 */ blr
+
+.global qr2_send_statechanged
+qr2_send_statechanged:
+/* 8034E5C0 0034A220 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034E5C4 0034A224 7C 08 02 A6 */ mflr r0
+/* 8034E5C8 0034A228 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E5CC 0034A22C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034E5D0 0034A230 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034E5D4 0034A234 7C 7F 1B 78 */ mr r31, r3
+/* 8034E5D8 0034A238 40 82 00 08 */ bne lbl_8034E5E0
+/* 8034E5DC 0034A23C 83 ED 92 E8 */ lwz r31, lbl_8063E5A8-_SDA_BASE_(r13)
+lbl_8034E5E0:
+/* 8034E5E0 0034A240 80 1F 00 BC */ lwz r0, 0xbc(r31)
+/* 8034E5E4 0034A244 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E5E8 0034A248 41 82 00 38 */ beq lbl_8034E620
+/* 8034E5EC 0034A24C 4B FE A9 ED */ bl current_time
+/* 8034E5F0 0034A250 80 1F 00 AC */ lwz r0, 0xac(r31)
+/* 8034E5F4 0034A254 7C 00 18 50 */ subf r0, r0, r3
+/* 8034E5F8 0034A258 28 00 27 10 */ cmplwi r0, 0x2710
+/* 8034E5FC 0034A25C 40 80 00 10 */ bge lbl_8034E60C
+/* 8034E600 0034A260 38 00 00 01 */ li r0, 1
+/* 8034E604 0034A264 90 1F 00 B4 */ stw r0, 0xb4(r31)
+/* 8034E608 0034A268 48 00 00 18 */ b lbl_8034E620
+lbl_8034E60C:
+/* 8034E60C 0034A26C 7F E3 FB 78 */ mr r3, r31
+/* 8034E610 0034A270 38 80 00 01 */ li r4, 1
+/* 8034E614 0034A274 48 00 1A 79 */ bl send_heartbeat
+/* 8034E618 0034A278 38 00 00 00 */ li r0, 0
+/* 8034E61C 0034A27C 90 1F 00 B4 */ stw r0, 0xb4(r31)
+lbl_8034E620:
+/* 8034E620 0034A280 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034E624 0034A284 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034E628 0034A288 7C 08 03 A6 */ mtlr r0
+/* 8034E62C 0034A28C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034E630 0034A290 4E 80 00 20 */ blr
+
+.global qr2_shutdown
+qr2_shutdown:
+/* 8034E634 0034A294 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8034E638 0034A298 7C 08 02 A6 */ mflr r0
+/* 8034E63C 0034A29C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E640 0034A2A0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034E644 0034A2A4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8034E648 0034A2A8 7C 7F 1B 78 */ mr r31, r3
+/* 8034E64C 0034A2AC 40 82 00 08 */ bne lbl_8034E654
+/* 8034E650 0034A2B0 83 ED 92 E8 */ lwz r31, lbl_8063E5A8-_SDA_BASE_(r13)
+lbl_8034E654:
+/* 8034E654 0034A2B4 80 1F 00 BC */ lwz r0, 0xbc(r31)
+/* 8034E658 0034A2B8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E65C 0034A2BC 41 82 00 10 */ beq lbl_8034E66C
+/* 8034E660 0034A2C0 7F E3 FB 78 */ mr r3, r31
+/* 8034E664 0034A2C4 38 80 00 02 */ li r4, 2
+/* 8034E668 0034A2C8 48 00 1A 25 */ bl send_heartbeat
+lbl_8034E66C:
+/* 8034E66C 0034A2CC 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8034E670 0034A2D0 2C 03 FF FF */ cmpwi r3, -1
+/* 8034E674 0034A2D4 41 82 00 14 */ beq lbl_8034E688
+/* 8034E678 0034A2D8 80 1F 00 C4 */ lwz r0, 0xc4(r31)
+/* 8034E67C 0034A2DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E680 0034A2E0 41 82 00 08 */ beq lbl_8034E688
+/* 8034E684 0034A2E4 4B FE 95 79 */ bl closesocket
+lbl_8034E688:
+/* 8034E688 0034A2E8 38 60 FF FF */ li r3, -1
+/* 8034E68C 0034A2EC 38 00 00 00 */ li r0, 0
+/* 8034E690 0034A2F0 90 7F 00 00 */ stw r3, 0(r31)
+/* 8034E694 0034A2F4 90 1F 00 AC */ stw r0, 0xac(r31)
+/* 8034E698 0034A2F8 80 1F 00 C4 */ lwz r0, 0xc4(r31)
+/* 8034E69C 0034A2FC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034E6A0 0034A300 41 82 00 08 */ beq lbl_8034E6A8
+/* 8034E6A4 0034A304 4B FE A9 31 */ bl SocketShutDown
+lbl_8034E6A8:
+/* 8034E6A8 0034A308 3C 60 80 45 */ lis r3, lbl_8044B608@ha
+/* 8034E6AC 0034A30C 38 63 B6 08 */ addi r3, r3, lbl_8044B608@l
+/* 8034E6B0 0034A310 7C 1F 18 40 */ cmplw r31, r3
+/* 8034E6B4 0034A314 41 82 00 0C */ beq lbl_8034E6C0
+/* 8034E6B8 0034A318 7F E3 FB 78 */ mr r3, r31
+/* 8034E6BC 0034A31C 4B FE AC 7D */ bl gsifree
+lbl_8034E6C0:
+/* 8034E6C0 0034A320 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034E6C4 0034A324 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8034E6C8 0034A328 7C 08 03 A6 */ mtlr r0
+/* 8034E6CC 0034A32C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8034E6D0 0034A330 4E 80 00 20 */ blr
+
+.global qr2_keybuffer_add
+qr2_keybuffer_add:
+/* 8034E6D4 0034A334 80 A3 01 00 */ lwz r5, 0x100(r3)
+/* 8034E6D8 0034A338 2C 05 00 FE */ cmpwi r5, 0xfe
+/* 8034E6DC 0034A33C 41 80 00 0C */ blt lbl_8034E6E8
+/* 8034E6E0 0034A340 38 60 00 00 */ li r3, 0
+/* 8034E6E4 0034A344 4E 80 00 20 */ blr
+lbl_8034E6E8:
+/* 8034E6E8 0034A348 2C 04 00 01 */ cmpwi r4, 1
+/* 8034E6EC 0034A34C 41 80 00 0C */ blt lbl_8034E6F8
+/* 8034E6F0 0034A350 2C 04 00 FE */ cmpwi r4, 0xfe
+/* 8034E6F4 0034A354 40 81 00 0C */ ble lbl_8034E700
+lbl_8034E6F8:
+/* 8034E6F8 0034A358 38 60 00 00 */ li r3, 0
+/* 8034E6FC 0034A35C 4E 80 00 20 */ blr
+lbl_8034E700:
+/* 8034E700 0034A360 7C 83 29 AE */ stbx r4, r3, r5
+/* 8034E704 0034A364 38 05 00 01 */ addi r0, r5, 1
+/* 8034E708 0034A368 90 03 01 00 */ stw r0, 0x100(r3)
+/* 8034E70C 0034A36C 38 60 00 01 */ li r3, 1
+/* 8034E710 0034A370 4E 80 00 20 */ blr
+
+.global qr2_buffer_add_int
+qr2_buffer_add_int:
+/* 8034E714 0034A374 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034E718 0034A378 7C 08 02 A6 */ mflr r0
+/* 8034E71C 0034A37C 7C 85 23 78 */ mr r5, r4
+/* 8034E720 0034A380 38 8D 92 EC */ addi r4, r13, lbl_8063E5AC-_SDA_BASE_
+/* 8034E724 0034A384 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034E728 0034A388 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8034E72C 0034A38C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8034E730 0034A390 7C 7E 1B 78 */ mr r30, r3
+/* 8034E734 0034A394 38 61 00 08 */ addi r3, r1, 8
+/* 8034E738 0034A398 4C C6 31 82 */ crclr 6
+/* 8034E73C 0034A39C 4B E7 E3 C1 */ bl sprintf
+/* 8034E740 0034A3A0 38 61 00 08 */ addi r3, r1, 8
+/* 8034E744 0034A3A4 4B E7 84 21 */ bl strlen
+/* 8034E748 0034A3A8 80 1E 05 78 */ lwz r0, 0x578(r30)
+/* 8034E74C 0034A3AC 3B E3 00 01 */ addi r31, r3, 1
+/* 8034E750 0034A3B0 20 60 05 78 */ subfic r3, r0, 0x578
+/* 8034E754 0034A3B4 7C 1F 18 00 */ cmpw r31, r3
+/* 8034E758 0034A3B8 40 81 00 08 */ ble lbl_8034E760
+/* 8034E75C 0034A3BC 7C 7F 1B 78 */ mr r31, r3
+lbl_8034E760:
+/* 8034E760 0034A3C0 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034E764 0034A3C4 41 81 00 0C */ bgt lbl_8034E770
+/* 8034E768 0034A3C8 38 60 00 00 */ li r3, 0
+/* 8034E76C 0034A3CC 48 00 00 30 */ b lbl_8034E79C
+lbl_8034E770:
+/* 8034E770 0034A3D0 7F E5 FB 78 */ mr r5, r31
+/* 8034E774 0034A3D4 7C 7E 02 14 */ add r3, r30, r0
+/* 8034E778 0034A3D8 38 81 00 08 */ addi r4, r1, 8
+/* 8034E77C 0034A3DC 4B CB 58 85 */ bl memcpy
+/* 8034E780 0034A3E0 80 9E 05 78 */ lwz r4, 0x578(r30)
+/* 8034E784 0034A3E4 38 00 00 00 */ li r0, 0
+/* 8034E788 0034A3E8 38 60 00 01 */ li r3, 1
+/* 8034E78C 0034A3EC 7C 84 FA 14 */ add r4, r4, r31
+/* 8034E790 0034A3F0 90 9E 05 78 */ stw r4, 0x578(r30)
+/* 8034E794 0034A3F4 7C 84 F2 14 */ add r4, r4, r30
+/* 8034E798 0034A3F8 98 04 FF FF */ stb r0, -1(r4)
+lbl_8034E79C:
+/* 8034E79C 0034A3FC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034E7A0 0034A400 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8034E7A4 0034A404 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8034E7A8 0034A408 7C 08 03 A6 */ mtlr r0
+/* 8034E7AC 0034A40C 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034E7B0 0034A410 4E 80 00 20 */ blr
+
+.global qr2_buffer_addA
+qr2_buffer_addA:
+/* 8034E7B4 0034A414 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034E7B8 0034A418 7C 08 02 A6 */ mflr r0
+/* 8034E7BC 0034A41C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034E7C0 0034A420 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034E7C4 0034A424 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034E7C8 0034A428 7C 9E 23 78 */ mr r30, r4
+/* 8034E7CC 0034A42C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034E7D0 0034A430 7C 7D 1B 78 */ mr r29, r3
+/* 8034E7D4 0034A434 7F C3 F3 78 */ mr r3, r30
+/* 8034E7D8 0034A438 4B E7 83 8D */ bl strlen
+/* 8034E7DC 0034A43C 80 1D 05 78 */ lwz r0, 0x578(r29)
+/* 8034E7E0 0034A440 3B E3 00 01 */ addi r31, r3, 1
+/* 8034E7E4 0034A444 20 60 05 78 */ subfic r3, r0, 0x578
+/* 8034E7E8 0034A448 7C 1F 18 00 */ cmpw r31, r3
+/* 8034E7EC 0034A44C 40 81 00 08 */ ble lbl_8034E7F4
+/* 8034E7F0 0034A450 7C 7F 1B 78 */ mr r31, r3
+lbl_8034E7F4:
+/* 8034E7F4 0034A454 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034E7F8 0034A458 41 81 00 0C */ bgt lbl_8034E804
+/* 8034E7FC 0034A45C 38 60 00 00 */ li r3, 0
+/* 8034E800 0034A460 48 00 00 30 */ b lbl_8034E830
+lbl_8034E804:
+/* 8034E804 0034A464 7F C4 F3 78 */ mr r4, r30
+/* 8034E808 0034A468 7F E5 FB 78 */ mr r5, r31
+/* 8034E80C 0034A46C 7C 7D 02 14 */ add r3, r29, r0
+/* 8034E810 0034A470 4B CB 57 F1 */ bl memcpy
+/* 8034E814 0034A474 80 9D 05 78 */ lwz r4, 0x578(r29)
+/* 8034E818 0034A478 38 00 00 00 */ li r0, 0
+/* 8034E81C 0034A47C 38 60 00 01 */ li r3, 1
+/* 8034E820 0034A480 7C 84 FA 14 */ add r4, r4, r31
+/* 8034E824 0034A484 90 9D 05 78 */ stw r4, 0x578(r29)
+/* 8034E828 0034A488 7C 84 EA 14 */ add r4, r4, r29
+/* 8034E82C 0034A48C 98 04 FF FF */ stb r0, -1(r4)
+lbl_8034E830:
+/* 8034E830 0034A490 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034E834 0034A494 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034E838 0034A498 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034E83C 0034A49C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034E840 0034A4A0 7C 08 03 A6 */ mtlr r0
+/* 8034E844 0034A4A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034E848 0034A4A8 4E 80 00 20 */ blr
+
+.global get_sockaddrin
+get_sockaddrin:
+/* 8034E84C 0034A4AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034E850 0034A4B0 7C 08 02 A6 */ mflr r0
+/* 8034E854 0034A4B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034E858 0034A4B8 38 00 00 02 */ li r0, 2
+/* 8034E85C 0034A4BC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034E860 0034A4C0 3B E0 00 00 */ li r31, 0
+/* 8034E864 0034A4C4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8034E868 0034A4C8 7C DE 33 78 */ mr r30, r6
+/* 8034E86C 0034A4CC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8034E870 0034A4D0 7C BD 2B 78 */ mr r29, r5
+/* 8034E874 0034A4D4 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8034E878 0034A4D8 7C 7C 1B 78 */ mr r28, r3
+/* 8034E87C 0034A4DC 54 83 04 3E */ clrlwi r3, r4, 0x10
+/* 8034E880 0034A4E0 98 05 00 01 */ stb r0, 1(r5)
+/* 8034E884 0034A4E4 4B FA 84 F9 */ bl SOHtoNs
+/* 8034E888 0034A4E8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8034E88C 0034A4EC B0 7D 00 02 */ sth r3, 2(r29)
+/* 8034E890 0034A4F0 40 82 00 10 */ bne lbl_8034E8A0
+/* 8034E894 0034A4F4 38 00 00 00 */ li r0, 0
+/* 8034E898 0034A4F8 90 1D 00 04 */ stw r0, 4(r29)
+/* 8034E89C 0034A4FC 48 00 00 10 */ b lbl_8034E8AC
+lbl_8034E8A0:
+/* 8034E8A0 0034A500 7F 83 E3 78 */ mr r3, r28
+/* 8034E8A4 0034A504 4B FE 96 CD */ bl inet_addr
+/* 8034E8A8 0034A508 90 7D 00 04 */ stw r3, 4(r29)
+lbl_8034E8AC:
+/* 8034E8AC 0034A50C 80 7D 00 04 */ lwz r3, 4(r29)
+/* 8034E8B0 0034A510 3C 03 00 01 */ addis r0, r3, 1
+/* 8034E8B4 0034A514 28 00 FF FF */ cmplwi r0, 0xffff
+/* 8034E8B8 0034A518 40 82 00 48 */ bne lbl_8034E900
+/* 8034E8BC 0034A51C 3C 80 80 45 */ lis r4, lbl_8044B9F8@ha
+/* 8034E8C0 0034A520 7F 83 E3 78 */ mr r3, r28
+/* 8034E8C4 0034A524 38 84 B9 F8 */ addi r4, r4, lbl_8044B9F8@l
+/* 8034E8C8 0034A528 4B E7 FB 85 */ bl strcmp
+/* 8034E8CC 0034A52C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E8D0 0034A530 41 82 00 30 */ beq lbl_8034E900
+/* 8034E8D4 0034A534 7F 83 E3 78 */ mr r3, r28
+/* 8034E8D8 0034A538 4B FE 98 01 */ bl gethostbyname
+/* 8034E8DC 0034A53C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034E8E0 0034A540 7C 7F 1B 78 */ mr r31, r3
+/* 8034E8E4 0034A544 40 82 00 0C */ bne lbl_8034E8F0
+/* 8034E8E8 0034A548 38 60 00 00 */ li r3, 0
+/* 8034E8EC 0034A54C 48 00 00 24 */ b lbl_8034E910
+lbl_8034E8F0:
+/* 8034E8F0 0034A550 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034E8F4 0034A554 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034E8F8 0034A558 80 03 00 00 */ lwz r0, 0(r3)
+/* 8034E8FC 0034A55C 90 1D 00 04 */ stw r0, 4(r29)
+lbl_8034E900:
+/* 8034E900 0034A560 2C 1E 00 00 */ cmpwi r30, 0
+/* 8034E904 0034A564 41 82 00 08 */ beq lbl_8034E90C
+/* 8034E908 0034A568 93 FE 00 00 */ stw r31, 0(r30)
+lbl_8034E90C:
+/* 8034E90C 0034A56C 38 60 00 01 */ li r3, 1
+lbl_8034E910:
+/* 8034E910 0034A570 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034E914 0034A574 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034E918 0034A578 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8034E91C 0034A57C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8034E920 0034A580 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8034E924 0034A584 7C 08 03 A6 */ mtlr r0
+/* 8034E928 0034A588 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034E92C 0034A58C 4E 80 00 20 */ blr
+
+.global gs_encode
+gs_encode:
+/* 8034E930 0034A590 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034E934 0034A594 39 00 00 02 */ li r8, 2
+/* 8034E938 0034A598 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034E93C 0034A59C 3B E0 00 00 */ li r31, 0
+/* 8034E940 0034A5A0 48 00 01 6C */ b lbl_8034EAAC
+lbl_8034E944:
+/* 8034E944 0034A5A4 7C 1F 20 00 */ cmpw r31, r4
+/* 8034E948 0034A5A8 40 80 00 10 */ bge lbl_8034E958
+/* 8034E94C 0034A5AC 88 E3 00 00 */ lbz r7, 0(r3)
+/* 8034E950 0034A5B0 38 63 00 01 */ addi r3, r3, 1
+/* 8034E954 0034A5B4 48 00 00 08 */ b lbl_8034E95C
+lbl_8034E958:
+/* 8034E958 0034A5B8 38 E0 00 00 */ li r7, 0
+lbl_8034E95C:
+/* 8034E95C 0034A5BC 3B FF 00 01 */ addi r31, r31, 1
+/* 8034E960 0034A5C0 7C 1F 20 00 */ cmpw r31, r4
+/* 8034E964 0034A5C4 40 80 00 10 */ bge lbl_8034E974
+/* 8034E968 0034A5C8 88 C3 00 00 */ lbz r6, 0(r3)
+/* 8034E96C 0034A5CC 38 63 00 01 */ addi r3, r3, 1
+/* 8034E970 0034A5D0 48 00 00 08 */ b lbl_8034E978
+lbl_8034E974:
+/* 8034E974 0034A5D4 38 C0 00 00 */ li r6, 0
+lbl_8034E978:
+/* 8034E978 0034A5D8 3B FF 00 01 */ addi r31, r31, 1
+/* 8034E97C 0034A5DC 7C 1F 20 00 */ cmpw r31, r4
+/* 8034E980 0034A5E0 40 80 00 10 */ bge lbl_8034E990
+/* 8034E984 0034A5E4 88 03 00 00 */ lbz r0, 0(r3)
+/* 8034E988 0034A5E8 38 63 00 01 */ addi r3, r3, 1
+/* 8034E98C 0034A5EC 48 00 00 08 */ b lbl_8034E994
+lbl_8034E990:
+/* 8034E990 0034A5F0 38 00 00 00 */ li r0, 0
+lbl_8034E994:
+/* 8034E994 0034A5F4 54 09 06 BE */ clrlwi r9, r0, 0x1a
+/* 8034E998 0034A5F8 54 CA E7 3E */ rlwinm r10, r6, 0x1c, 0x1c, 0x1f
+/* 8034E99C 0034A5FC 54 EC F6 BE */ rlwinm r12, r7, 0x1e, 0x1a, 0x1f
+/* 8034E9A0 0034A600 54 EB 26 B6 */ rlwinm r11, r7, 4, 0x1a, 0x1b
+/* 8034E9A4 0034A604 7C EB 52 14 */ add r7, r11, r10
+/* 8034E9A8 0034A608 54 C6 16 BA */ rlwinm r6, r6, 2, 0x1a, 0x1d
+/* 8034E9AC 0034A60C 54 00 D7 BE */ rlwinm r0, r0, 0x1a, 0x1e, 0x1f
+/* 8034E9B0 0034A610 99 81 00 08 */ stb r12, 8(r1)
+/* 8034E9B4 0034A614 7C 06 02 14 */ add r0, r6, r0
+/* 8034E9B8 0034A618 39 41 00 08 */ addi r10, r1, 8
+/* 8034E9BC 0034A61C 98 E1 00 09 */ stb r7, 9(r1)
+/* 8034E9C0 0034A620 39 60 00 00 */ li r11, 0
+/* 8034E9C4 0034A624 98 01 00 0A */ stb r0, 0xa(r1)
+/* 8034E9C8 0034A628 99 21 00 0B */ stb r9, 0xb(r1)
+/* 8034E9CC 0034A62C 7D 09 03 A6 */ mtctr r8
+/* 8034E9D0 0034A630 3B FF 00 01 */ addi r31, r31, 1
+lbl_8034E9D4:
+/* 8034E9D4 0034A634 88 EA 00 00 */ lbz r7, 0(r10)
+/* 8034E9D8 0034A638 28 07 00 1A */ cmplwi r7, 0x1a
+/* 8034E9DC 0034A63C 40 80 00 10 */ bge lbl_8034E9EC
+/* 8034E9E0 0034A640 38 07 00 41 */ addi r0, r7, 0x41
+/* 8034E9E4 0034A644 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8034E9E8 0034A648 48 00 00 4C */ b lbl_8034EA34
+lbl_8034E9EC:
+/* 8034E9EC 0034A64C 28 07 00 34 */ cmplwi r7, 0x34
+/* 8034E9F0 0034A650 40 80 00 10 */ bge lbl_8034EA00
+/* 8034E9F4 0034A654 38 07 00 47 */ addi r0, r7, 0x47
+/* 8034E9F8 0034A658 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8034E9FC 0034A65C 48 00 00 38 */ b lbl_8034EA34
+lbl_8034EA00:
+/* 8034EA00 0034A660 28 07 00 3E */ cmplwi r7, 0x3e
+/* 8034EA04 0034A664 40 80 00 10 */ bge lbl_8034EA14
+/* 8034EA08 0034A668 38 07 FF FC */ addi r0, r7, -4
+/* 8034EA0C 0034A66C 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8034EA10 0034A670 48 00 00 24 */ b lbl_8034EA34
+lbl_8034EA14:
+/* 8034EA14 0034A674 40 82 00 0C */ bne lbl_8034EA20
+/* 8034EA18 0034A678 38 00 00 2B */ li r0, 0x2b
+/* 8034EA1C 0034A67C 48 00 00 18 */ b lbl_8034EA34
+lbl_8034EA20:
+/* 8034EA20 0034A680 38 C7 FF C1 */ addi r6, r7, -63
+/* 8034EA24 0034A684 20 07 00 3F */ subfic r0, r7, 0x3f
+/* 8034EA28 0034A688 7C C0 00 F8 */ nor r0, r6, r0
+/* 8034EA2C 0034A68C 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 8034EA30 0034A690 70 00 00 2F */ andi. r0, r0, 0x2f
+lbl_8034EA34:
+/* 8034EA34 0034A694 88 EA 00 01 */ lbz r7, 1(r10)
+/* 8034EA38 0034A698 98 05 00 00 */ stb r0, 0(r5)
+/* 8034EA3C 0034A69C 28 07 00 1A */ cmplwi r7, 0x1a
+/* 8034EA40 0034A6A0 40 80 00 10 */ bge lbl_8034EA50
+/* 8034EA44 0034A6A4 38 07 00 41 */ addi r0, r7, 0x41
+/* 8034EA48 0034A6A8 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8034EA4C 0034A6AC 48 00 00 4C */ b lbl_8034EA98
+lbl_8034EA50:
+/* 8034EA50 0034A6B0 28 07 00 34 */ cmplwi r7, 0x34
+/* 8034EA54 0034A6B4 40 80 00 10 */ bge lbl_8034EA64
+/* 8034EA58 0034A6B8 38 07 00 47 */ addi r0, r7, 0x47
+/* 8034EA5C 0034A6BC 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8034EA60 0034A6C0 48 00 00 38 */ b lbl_8034EA98
+lbl_8034EA64:
+/* 8034EA64 0034A6C4 28 07 00 3E */ cmplwi r7, 0x3e
+/* 8034EA68 0034A6C8 40 80 00 10 */ bge lbl_8034EA78
+/* 8034EA6C 0034A6CC 38 07 FF FC */ addi r0, r7, -4
+/* 8034EA70 0034A6D0 54 00 06 3E */ clrlwi r0, r0, 0x18
+/* 8034EA74 0034A6D4 48 00 00 24 */ b lbl_8034EA98
+lbl_8034EA78:
+/* 8034EA78 0034A6D8 40 82 00 0C */ bne lbl_8034EA84
+/* 8034EA7C 0034A6DC 38 00 00 2B */ li r0, 0x2b
+/* 8034EA80 0034A6E0 48 00 00 18 */ b lbl_8034EA98
+lbl_8034EA84:
+/* 8034EA84 0034A6E4 38 C7 FF C1 */ addi r6, r7, -63
+/* 8034EA88 0034A6E8 20 07 00 3F */ subfic r0, r7, 0x3f
+/* 8034EA8C 0034A6EC 7C C0 00 F8 */ nor r0, r6, r0
+/* 8034EA90 0034A6F0 7C 00 FE 70 */ srawi r0, r0, 0x1f
+/* 8034EA94 0034A6F4 70 00 00 2F */ andi. r0, r0, 0x2f
+lbl_8034EA98:
+/* 8034EA98 0034A6F8 98 05 00 01 */ stb r0, 1(r5)
+/* 8034EA9C 0034A6FC 38 A5 00 02 */ addi r5, r5, 2
+/* 8034EAA0 0034A700 39 4A 00 02 */ addi r10, r10, 2
+/* 8034EAA4 0034A704 39 6B 00 01 */ addi r11, r11, 1
+/* 8034EAA8 0034A708 42 00 FF 2C */ bdnz lbl_8034E9D4
+lbl_8034EAAC:
+/* 8034EAAC 0034A70C 7C 1F 20 00 */ cmpw r31, r4
+/* 8034EAB0 0034A710 41 80 FE 94 */ blt lbl_8034E944
+/* 8034EAB4 0034A714 38 00 00 00 */ li r0, 0
+/* 8034EAB8 0034A718 98 05 00 00 */ stb r0, 0(r5)
+/* 8034EABC 0034A71C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034EAC0 0034A720 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034EAC4 0034A724 4E 80 00 20 */ blr
+
+.global gs_encrypt
+gs_encrypt:
+/* 8034EAC8 0034A728 94 21 FE D0 */ stwu r1, -0x130(r1)
+/* 8034EACC 0034A72C 7C 08 02 A6 */ mflr r0
+/* 8034EAD0 0034A730 90 01 01 34 */ stw r0, 0x134(r1)
+/* 8034EAD4 0034A734 39 61 01 30 */ addi r11, r1, 0x130
+/* 8034EAD8 0034A738 4B E7 86 3D */ bl _savegpr_22
+/* 8034EADC 0034A73C 38 00 00 10 */ li r0, 0x10
+/* 8034EAE0 0034A740 3A E1 00 08 */ addi r23, r1, 8
+/* 8034EAE4 0034A744 3A C0 00 00 */ li r22, 0
+/* 8034EAE8 0034A748 7C 09 03 A6 */ mtctr r0
+lbl_8034EAEC:
+/* 8034EAEC 0034A74C 9A D7 00 00 */ stb r22, 0(r23)
+/* 8034EAF0 0034A750 39 96 00 01 */ addi r12, r22, 1
+/* 8034EAF4 0034A754 39 76 00 02 */ addi r11, r22, 2
+/* 8034EAF8 0034A758 39 56 00 03 */ addi r10, r22, 3
+/* 8034EAFC 0034A75C 99 97 00 01 */ stb r12, 1(r23)
+/* 8034EB00 0034A760 39 36 00 04 */ addi r9, r22, 4
+/* 8034EB04 0034A764 39 16 00 05 */ addi r8, r22, 5
+/* 8034EB08 0034A768 38 F6 00 06 */ addi r7, r22, 6
+/* 8034EB0C 0034A76C 99 77 00 02 */ stb r11, 2(r23)
+/* 8034EB10 0034A770 38 16 00 07 */ addi r0, r22, 7
+/* 8034EB14 0034A774 39 96 00 09 */ addi r12, r22, 9
+/* 8034EB18 0034A778 39 76 00 0A */ addi r11, r22, 0xa
+/* 8034EB1C 0034A77C 99 57 00 03 */ stb r10, 3(r23)
+/* 8034EB20 0034A780 39 56 00 0B */ addi r10, r22, 0xb
+/* 8034EB24 0034A784 99 37 00 04 */ stb r9, 4(r23)
+/* 8034EB28 0034A788 39 36 00 0C */ addi r9, r22, 0xc
+/* 8034EB2C 0034A78C 3A D6 00 08 */ addi r22, r22, 8
+/* 8034EB30 0034A790 99 17 00 05 */ stb r8, 5(r23)
+/* 8034EB34 0034A794 39 16 00 05 */ addi r8, r22, 5
+/* 8034EB38 0034A798 98 F7 00 06 */ stb r7, 6(r23)
+/* 8034EB3C 0034A79C 38 F6 00 06 */ addi r7, r22, 6
+/* 8034EB40 0034A7A0 98 17 00 07 */ stb r0, 7(r23)
+/* 8034EB44 0034A7A4 38 16 00 07 */ addi r0, r22, 7
+/* 8034EB48 0034A7A8 9A D7 00 08 */ stb r22, 8(r23)
+/* 8034EB4C 0034A7AC 3A D6 00 08 */ addi r22, r22, 8
+/* 8034EB50 0034A7B0 99 97 00 09 */ stb r12, 9(r23)
+/* 8034EB54 0034A7B4 99 77 00 0A */ stb r11, 0xa(r23)
+/* 8034EB58 0034A7B8 99 57 00 0B */ stb r10, 0xb(r23)
+/* 8034EB5C 0034A7BC 99 37 00 0C */ stb r9, 0xc(r23)
+/* 8034EB60 0034A7C0 99 17 00 0D */ stb r8, 0xd(r23)
+/* 8034EB64 0034A7C4 98 F7 00 0E */ stb r7, 0xe(r23)
+/* 8034EB68 0034A7C8 98 17 00 0F */ stb r0, 0xf(r23)
+/* 8034EB6C 0034A7CC 3A F7 00 10 */ addi r23, r23, 0x10
+/* 8034EB70 0034A7D0 42 00 FF 7C */ bdnz lbl_8034EAEC
+/* 8034EB74 0034A7D4 38 E1 00 08 */ addi r7, r1, 8
+/* 8034EB78 0034A7D8 38 00 00 20 */ li r0, 0x20
+/* 8034EB7C 0034A7DC 7C E8 3B 78 */ mr r8, r7
+/* 8034EB80 0034A7E0 3B 60 00 00 */ li r27, 0
+/* 8034EB84 0034A7E4 7C E9 3B 78 */ mr r9, r7
+/* 8034EB88 0034A7E8 7C EA 3B 78 */ mr r10, r7
+/* 8034EB8C 0034A7EC 7C EB 3B 78 */ mr r11, r7
+/* 8034EB90 0034A7F0 7C EC 3B 78 */ mr r12, r7
+/* 8034EB94 0034A7F4 7C FF 3B 78 */ mr r31, r7
+/* 8034EB98 0034A7F8 7C FE 3B 78 */ mr r30, r7
+/* 8034EB9C 0034A7FC 7C FD 3B 78 */ mr r29, r7
+/* 8034EBA0 0034A800 3A C0 00 00 */ li r22, 0
+/* 8034EBA4 0034A804 3B 80 00 00 */ li r28, 0
+/* 8034EBA8 0034A808 7C 09 03 A6 */ mtctr r0
+lbl_8034EBAC:
+/* 8034EBAC 0034A80C 3B 1B 00 01 */ addi r24, r27, 1
+/* 8034EBB0 0034A810 88 07 00 00 */ lbz r0, 0(r7)
+/* 8034EBB4 0034A814 7E F8 23 D6 */ divw r23, r24, r4
+/* 8034EBB8 0034A818 7F 43 D8 AE */ lbzx r26, r3, r27
+/* 8034EBBC 0034A81C 7F 36 02 14 */ add r25, r22, r0
+/* 8034EBC0 0034A820 7F 5A CA 14 */ add r26, r26, r25
+/* 8034EBC4 0034A824 57 59 C0 0E */ slwi r25, r26, 0x18
+/* 8034EBC8 0034A828 57 5A 0F FE */ srwi r26, r26, 0x1f
+/* 8034EBCC 0034A82C 7E F7 21 D6 */ mullw r23, r23, r4
+/* 8034EBD0 0034A830 7F 3A C8 50 */ subf r25, r26, r25
+/* 8034EBD4 0034A834 57 39 40 3E */ rotlwi r25, r25, 8
+/* 8034EBD8 0034A838 7F 39 D2 14 */ add r25, r25, r26
+/* 8034EBDC 0034A83C 7E F7 C0 50 */ subf r23, r23, r24
+/* 8034EBE0 0034A840 56 F6 06 3E */ clrlwi r22, r23, 0x18
+/* 8034EBE4 0034A844 57 3B 06 3E */ clrlwi r27, r25, 0x18
+/* 8034EBE8 0034A848 3B 16 00 01 */ addi r24, r22, 1
+/* 8034EBEC 0034A84C 7F 28 D8 AE */ lbzx r25, r8, r27
+/* 8034EBF0 0034A850 7E F8 23 D6 */ divw r23, r24, r4
+/* 8034EBF4 0034A854 7F 43 B0 AE */ lbzx r26, r3, r22
+/* 8034EBF8 0034A858 9B 27 00 00 */ stb r25, 0(r7)
+/* 8034EBFC 0034A85C 7C 08 D9 AE */ stbx r0, r8, r27
+/* 8034EC00 0034A860 88 07 00 01 */ lbz r0, 1(r7)
+/* 8034EC04 0034A864 7F 3B 02 14 */ add r25, r27, r0
+/* 8034EC08 0034A868 7E F7 21 D6 */ mullw r23, r23, r4
+/* 8034EC0C 0034A86C 7F 5A CA 14 */ add r26, r26, r25
+/* 8034EC10 0034A870 57 59 C0 0E */ slwi r25, r26, 0x18
+/* 8034EC14 0034A874 57 5B 0F FE */ srwi r27, r26, 0x1f
+/* 8034EC18 0034A878 7E F7 C0 50 */ subf r23, r23, r24
+/* 8034EC1C 0034A87C 7F 3B C8 50 */ subf r25, r27, r25
+/* 8034EC20 0034A880 56 F6 06 3E */ clrlwi r22, r23, 0x18
+/* 8034EC24 0034A884 3B 16 00 01 */ addi r24, r22, 1
+/* 8034EC28 0034A888 57 39 40 3E */ rotlwi r25, r25, 8
+/* 8034EC2C 0034A88C 7E F8 23 D6 */ divw r23, r24, r4
+/* 8034EC30 0034A890 7F 43 B0 AE */ lbzx r26, r3, r22
+/* 8034EC34 0034A894 7F 39 DA 14 */ add r25, r25, r27
+/* 8034EC38 0034A898 57 36 06 3E */ clrlwi r22, r25, 0x18
+/* 8034EC3C 0034A89C 7F 29 B0 AE */ lbzx r25, r9, r22
+/* 8034EC40 0034A8A0 9B 27 00 01 */ stb r25, 1(r7)
+/* 8034EC44 0034A8A4 7C 09 B1 AE */ stbx r0, r9, r22
+/* 8034EC48 0034A8A8 7E F7 21 D6 */ mullw r23, r23, r4
+/* 8034EC4C 0034A8AC 88 07 00 02 */ lbz r0, 2(r7)
+/* 8034EC50 0034A8B0 7F 36 02 14 */ add r25, r22, r0
+/* 8034EC54 0034A8B4 7F 3A CA 14 */ add r25, r26, r25
+/* 8034EC58 0034A8B8 7E F7 C0 50 */ subf r23, r23, r24
+/* 8034EC5C 0034A8BC 56 F6 06 3E */ clrlwi r22, r23, 0x18
+/* 8034EC60 0034A8C0 57 3B 0F FE */ srwi r27, r25, 0x1f
+/* 8034EC64 0034A8C4 57 37 C0 0E */ slwi r23, r25, 0x18
+/* 8034EC68 0034A8C8 7F 23 B0 AE */ lbzx r25, r3, r22
+/* 8034EC6C 0034A8CC 7E FB B8 50 */ subf r23, r27, r23
+/* 8034EC70 0034A8D0 3B 16 00 01 */ addi r24, r22, 1
+/* 8034EC74 0034A8D4 56 FA 40 3E */ rotlwi r26, r23, 8
+/* 8034EC78 0034A8D8 7E F8 23 D6 */ divw r23, r24, r4
+/* 8034EC7C 0034A8DC 7F 5A DA 14 */ add r26, r26, r27
+/* 8034EC80 0034A8E0 57 56 06 3E */ clrlwi r22, r26, 0x18
+/* 8034EC84 0034A8E4 7F 4A B0 AE */ lbzx r26, r10, r22
+/* 8034EC88 0034A8E8 9B 47 00 02 */ stb r26, 2(r7)
+/* 8034EC8C 0034A8EC 7C 0A B1 AE */ stbx r0, r10, r22
+/* 8034EC90 0034A8F0 7C 17 21 D6 */ mullw r0, r23, r4
+/* 8034EC94 0034A8F4 8B 47 00 03 */ lbz r26, 3(r7)
+/* 8034EC98 0034A8F8 7E F6 D2 14 */ add r23, r22, r26
+/* 8034EC9C 0034A8FC 7F 39 BA 14 */ add r25, r25, r23
+/* 8034ECA0 0034A900 7C 00 C0 50 */ subf r0, r0, r24
+/* 8034ECA4 0034A904 57 37 C0 0E */ slwi r23, r25, 0x18
+/* 8034ECA8 0034A908 57 38 0F FE */ srwi r24, r25, 0x1f
+/* 8034ECAC 0034A90C 7E F8 B8 50 */ subf r23, r24, r23
+/* 8034ECB0 0034A910 54 16 06 3E */ clrlwi r22, r0, 0x18
+/* 8034ECB4 0034A914 56 E0 40 3E */ rotlwi r0, r23, 8
+/* 8034ECB8 0034A918 7C 00 C2 14 */ add r0, r0, r24
+/* 8034ECBC 0034A91C 54 19 06 3E */ clrlwi r25, r0, 0x18
+/* 8034ECC0 0034A920 7C 0B C8 AE */ lbzx r0, r11, r25
+/* 8034ECC4 0034A924 98 07 00 03 */ stb r0, 3(r7)
+/* 8034ECC8 0034A928 7F 4B C9 AE */ stbx r26, r11, r25
+/* 8034ECCC 0034A92C 88 07 00 04 */ lbz r0, 4(r7)
+/* 8034ECD0 0034A930 3B 16 00 01 */ addi r24, r22, 1
+/* 8034ECD4 0034A934 7F 43 B0 AE */ lbzx r26, r3, r22
+/* 8034ECD8 0034A938 7E F8 23 D6 */ divw r23, r24, r4
+/* 8034ECDC 0034A93C 7F 39 02 14 */ add r25, r25, r0
+/* 8034ECE0 0034A940 3B 9C 00 08 */ addi r28, r28, 8
+/* 8034ECE4 0034A944 7F 5A CA 14 */ add r26, r26, r25
+/* 8034ECE8 0034A948 57 59 C0 0E */ slwi r25, r26, 0x18
+/* 8034ECEC 0034A94C 57 5A 0F FE */ srwi r26, r26, 0x1f
+/* 8034ECF0 0034A950 7E F7 21 D6 */ mullw r23, r23, r4
+/* 8034ECF4 0034A954 7F 3A C8 50 */ subf r25, r26, r25
+/* 8034ECF8 0034A958 57 39 40 3E */ rotlwi r25, r25, 8
+/* 8034ECFC 0034A95C 7F 39 D2 14 */ add r25, r25, r26
+/* 8034ED00 0034A960 7E F7 C0 50 */ subf r23, r23, r24
+/* 8034ED04 0034A964 56 F6 06 3E */ clrlwi r22, r23, 0x18
+/* 8034ED08 0034A968 3B 16 00 01 */ addi r24, r22, 1
+/* 8034ED0C 0034A96C 7F 43 B0 AE */ lbzx r26, r3, r22
+/* 8034ED10 0034A970 7E F8 23 D6 */ divw r23, r24, r4
+/* 8034ED14 0034A974 57 36 06 3E */ clrlwi r22, r25, 0x18
+/* 8034ED18 0034A978 7F 2C B0 AE */ lbzx r25, r12, r22
+/* 8034ED1C 0034A97C 9B 27 00 04 */ stb r25, 4(r7)
+/* 8034ED20 0034A980 7C 0C B1 AE */ stbx r0, r12, r22
+/* 8034ED24 0034A984 88 07 00 05 */ lbz r0, 5(r7)
+/* 8034ED28 0034A988 7E F7 21 D6 */ mullw r23, r23, r4
+/* 8034ED2C 0034A98C 7F 36 02 14 */ add r25, r22, r0
+/* 8034ED30 0034A990 7F 3A CA 14 */ add r25, r26, r25
+/* 8034ED34 0034A994 57 3A C0 0E */ slwi r26, r25, 0x18
+/* 8034ED38 0034A998 7E F7 C0 50 */ subf r23, r23, r24
+/* 8034ED3C 0034A99C 57 3B 0F FE */ srwi r27, r25, 0x1f
+/* 8034ED40 0034A9A0 56 F6 06 3E */ clrlwi r22, r23, 0x18
+/* 8034ED44 0034A9A4 3B 36 00 01 */ addi r25, r22, 1
+/* 8034ED48 0034A9A8 7E FB D0 50 */ subf r23, r27, r26
+/* 8034ED4C 0034A9AC 7F 19 23 D6 */ divw r24, r25, r4
+/* 8034ED50 0034A9B0 7F 43 B0 AE */ lbzx r26, r3, r22
+/* 8034ED54 0034A9B4 56 F7 40 3E */ rotlwi r23, r23, 8
+/* 8034ED58 0034A9B8 7E F7 DA 14 */ add r23, r23, r27
+/* 8034ED5C 0034A9BC 56 F6 06 3E */ clrlwi r22, r23, 0x18
+/* 8034ED60 0034A9C0 7E FF B0 AE */ lbzx r23, r31, r22
+/* 8034ED64 0034A9C4 9A E7 00 05 */ stb r23, 5(r7)
+/* 8034ED68 0034A9C8 7F 18 21 D6 */ mullw r24, r24, r4
+/* 8034ED6C 0034A9CC 7C 1F B1 AE */ stbx r0, r31, r22
+/* 8034ED70 0034A9D0 88 07 00 06 */ lbz r0, 6(r7)
+/* 8034ED74 0034A9D4 7F 18 C8 50 */ subf r24, r24, r25
+/* 8034ED78 0034A9D8 57 18 06 3E */ clrlwi r24, r24, 0x18
+/* 8034ED7C 0034A9DC 7E F6 02 14 */ add r23, r22, r0
+/* 8034ED80 0034A9E0 7E FA BA 14 */ add r23, r26, r23
+/* 8034ED84 0034A9E4 7F 23 C0 AE */ lbzx r25, r3, r24
+/* 8034ED88 0034A9E8 3B 58 00 01 */ addi r26, r24, 1
+/* 8034ED8C 0034A9EC 7F 7A 23 D6 */ divw r27, r26, r4
+/* 8034ED90 0034A9F0 56 F8 C0 0E */ slwi r24, r23, 0x18
+/* 8034ED94 0034A9F4 56 F7 0F FE */ srwi r23, r23, 0x1f
+/* 8034ED98 0034A9F8 7F 17 C0 50 */ subf r24, r23, r24
+/* 8034ED9C 0034A9FC 57 18 40 3E */ rotlwi r24, r24, 8
+/* 8034EDA0 0034AA00 7E F8 BA 14 */ add r23, r24, r23
+/* 8034EDA4 0034AA04 56 F6 06 3E */ clrlwi r22, r23, 0x18
+/* 8034EDA8 0034AA08 7F 1E B0 AE */ lbzx r24, r30, r22
+/* 8034EDAC 0034AA0C 7F 7B 21 D6 */ mullw r27, r27, r4
+/* 8034EDB0 0034AA10 9B 07 00 06 */ stb r24, 6(r7)
+/* 8034EDB4 0034AA14 7C 1E B1 AE */ stbx r0, r30, r22
+/* 8034EDB8 0034AA18 7C 1B D0 50 */ subf r0, r27, r26
+/* 8034EDBC 0034AA1C 8A E7 00 07 */ lbz r23, 7(r7)
+/* 8034EDC0 0034AA20 54 1B 06 3E */ clrlwi r27, r0, 0x18
+/* 8034EDC4 0034AA24 7C 16 BA 14 */ add r0, r22, r23
+/* 8034EDC8 0034AA28 7F 59 02 14 */ add r26, r25, r0
+/* 8034EDCC 0034AA2C 57 40 C0 0E */ slwi r0, r26, 0x18
+/* 8034EDD0 0034AA30 57 5A 0F FE */ srwi r26, r26, 0x1f
+/* 8034EDD4 0034AA34 7C 1A 00 50 */ subf r0, r26, r0
+/* 8034EDD8 0034AA38 54 00 40 3E */ rotlwi r0, r0, 8
+/* 8034EDDC 0034AA3C 7C 00 D2 14 */ add r0, r0, r26
+/* 8034EDE0 0034AA40 54 16 06 3E */ clrlwi r22, r0, 0x18
+/* 8034EDE4 0034AA44 7C 1D B0 AE */ lbzx r0, r29, r22
+/* 8034EDE8 0034AA48 98 07 00 07 */ stb r0, 7(r7)
+/* 8034EDEC 0034AA4C 38 E7 00 08 */ addi r7, r7, 8
+/* 8034EDF0 0034AA50 7E FD B1 AE */ stbx r23, r29, r22
+/* 8034EDF4 0034AA54 42 00 FD B8 */ bdnz lbl_8034EBAC
+/* 8034EDF8 0034AA58 38 81 00 08 */ addi r4, r1, 8
+/* 8034EDFC 0034AA5C 39 60 00 00 */ li r11, 0
+/* 8034EE00 0034AA60 39 80 00 00 */ li r12, 0
+/* 8034EE04 0034AA64 38 E0 00 00 */ li r7, 0
+/* 8034EE08 0034AA68 48 00 00 88 */ b lbl_8034EE90
+lbl_8034EE0C:
+/* 8034EE0C 0034AA6C 7C E3 07 34 */ extsh r3, r7
+/* 8034EE10 0034AA70 38 E7 00 01 */ addi r7, r7, 1
+/* 8034EE14 0034AA74 7C 05 18 AE */ lbzx r0, r5, r3
+/* 8034EE18 0034AA78 7D 0B 02 14 */ add r8, r11, r0
+/* 8034EE1C 0034AA7C 39 28 00 01 */ addi r9, r8, 1
+/* 8034EE20 0034AA80 55 28 C0 0E */ slwi r8, r9, 0x18
+/* 8034EE24 0034AA84 55 29 0F FE */ srwi r9, r9, 0x1f
+/* 8034EE28 0034AA88 7D 09 40 50 */ subf r8, r9, r8
+/* 8034EE2C 0034AA8C 55 08 40 3E */ rotlwi r8, r8, 8
+/* 8034EE30 0034AA90 7D 08 4A 14 */ add r8, r8, r9
+/* 8034EE34 0034AA94 55 0B 06 3E */ clrlwi r11, r8, 0x18
+/* 8034EE38 0034AA98 7D 44 58 AE */ lbzx r10, r4, r11
+/* 8034EE3C 0034AA9C 7D 2A 62 14 */ add r9, r10, r12
+/* 8034EE40 0034AAA0 55 28 C0 0E */ slwi r8, r9, 0x18
+/* 8034EE44 0034AAA4 55 29 0F FE */ srwi r9, r9, 0x1f
+/* 8034EE48 0034AAA8 7D 09 40 50 */ subf r8, r9, r8
+/* 8034EE4C 0034AAAC 55 08 40 3E */ rotlwi r8, r8, 8
+/* 8034EE50 0034AAB0 7D 08 4A 14 */ add r8, r8, r9
+/* 8034EE54 0034AAB4 55 0C 06 3E */ clrlwi r12, r8, 0x18
+/* 8034EE58 0034AAB8 7D 04 60 AE */ lbzx r8, r4, r12
+/* 8034EE5C 0034AABC 7D 04 59 AE */ stbx r8, r4, r11
+/* 8034EE60 0034AAC0 7D 44 61 AE */ stbx r10, r4, r12
+/* 8034EE64 0034AAC4 7D 04 58 AE */ lbzx r8, r4, r11
+/* 8034EE68 0034AAC8 7D 28 52 14 */ add r9, r8, r10
+/* 8034EE6C 0034AACC 55 28 C0 0E */ slwi r8, r9, 0x18
+/* 8034EE70 0034AAD0 55 29 0F FE */ srwi r9, r9, 0x1f
+/* 8034EE74 0034AAD4 7D 09 40 50 */ subf r8, r9, r8
+/* 8034EE78 0034AAD8 55 08 40 3E */ rotlwi r8, r8, 8
+/* 8034EE7C 0034AADC 7D 08 4A 14 */ add r8, r8, r9
+/* 8034EE80 0034AAE0 55 08 06 3E */ clrlwi r8, r8, 0x18
+/* 8034EE84 0034AAE4 7D 04 40 AE */ lbzx r8, r4, r8
+/* 8034EE88 0034AAE8 7C 00 42 78 */ xor r0, r0, r8
+/* 8034EE8C 0034AAEC 7C 05 19 AE */ stbx r0, r5, r3
+lbl_8034EE90:
+/* 8034EE90 0034AAF0 7C E0 07 34 */ extsh r0, r7
+/* 8034EE94 0034AAF4 7C 00 30 00 */ cmpw r0, r6
+/* 8034EE98 0034AAF8 41 80 FF 74 */ blt lbl_8034EE0C
+/* 8034EE9C 0034AAFC 39 61 01 30 */ addi r11, r1, 0x130
+/* 8034EEA0 0034AB00 4B E7 82 C1 */ bl _restgpr_22
+/* 8034EEA4 0034AB04 80 01 01 34 */ lwz r0, 0x134(r1)
+/* 8034EEA8 0034AB08 7C 08 03 A6 */ mtlr r0
+/* 8034EEAC 0034AB0C 38 21 01 30 */ addi r1, r1, 0x130
+/* 8034EEB0 0034AB10 4E 80 00 20 */ blr
+
+.global qr_build_partial_query_reply
+qr_build_partial_query_reply:
+/* 8034EEB4 0034AB14 94 21 FE B0 */ stwu r1, -0x150(r1)
+/* 8034EEB8 0034AB18 7C 08 02 A6 */ mflr r0
+/* 8034EEBC 0034AB1C 90 01 01 54 */ stw r0, 0x154(r1)
+/* 8034EEC0 0034AB20 39 61 01 50 */ addi r11, r1, 0x150
+/* 8034EEC4 0034AB24 4B E7 82 45 */ bl _savegpr_19
+/* 8034EEC8 0034AB28 38 00 00 00 */ li r0, 0
+/* 8034EECC 0034AB2C 2C 06 00 00 */ cmpwi r6, 0
+/* 8034EED0 0034AB30 90 01 01 0C */ stw r0, 0x10c(r1)
+/* 8034EED4 0034AB34 7C 79 1B 78 */ mr r25, r3
+/* 8034EED8 0034AB38 7C 9A 23 78 */ mr r26, r4
+/* 8034EEDC 0034AB3C 7C BB 2B 78 */ mr r27, r5
+/* 8034EEE0 0034AB40 7C DF 33 78 */ mr r31, r6
+/* 8034EEE4 0034AB44 7C FE 3B 78 */ mr r30, r7
+/* 8034EEE8 0034AB48 41 82 02 C8 */ beq lbl_8034F1B0
+/* 8034EEEC 0034AB4C 38 05 FF FF */ addi r0, r5, -1
+/* 8034EEF0 0034AB50 28 00 00 01 */ cmplwi r0, 1
+/* 8034EEF4 0034AB54 41 81 00 5C */ bgt lbl_8034EF50
+/* 8034EEF8 0034AB58 80 04 05 78 */ lwz r0, 0x578(r4)
+/* 8034EEFC 0034AB5C 20 00 05 78 */ subfic r0, r0, 0x578
+/* 8034EF00 0034AB60 28 00 00 02 */ cmplwi r0, 2
+/* 8034EF04 0034AB64 41 80 02 AC */ blt lbl_8034F1B0
+/* 8034EF08 0034AB68 81 99 00 98 */ lwz r12, 0x98(r25)
+/* 8034EF0C 0034AB6C 7F 63 DB 78 */ mr r3, r27
+/* 8034EF10 0034AB70 80 99 01 0C */ lwz r4, 0x10c(r25)
+/* 8034EF14 0034AB74 7D 89 03 A6 */ mtctr r12
+/* 8034EF18 0034AB78 4E 80 04 21 */ bctrl
+/* 8034EF1C 0034AB7C 7C 7D 1B 78 */ mr r29, r3
+/* 8034EF20 0034AB80 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 8034EF24 0034AB84 4B FA 7E 59 */ bl SOHtoNs
+/* 8034EF28 0034AB88 B0 61 00 08 */ sth r3, 8(r1)
+/* 8034EF2C 0034AB8C 38 81 00 08 */ addi r4, r1, 8
+/* 8034EF30 0034AB90 38 A0 00 02 */ li r5, 2
+/* 8034EF34 0034AB94 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034EF38 0034AB98 7C 7A 02 14 */ add r3, r26, r0
+/* 8034EF3C 0034AB9C 4B CB 50 C5 */ bl memcpy
+/* 8034EF40 0034ABA0 80 7A 05 78 */ lwz r3, 0x578(r26)
+/* 8034EF44 0034ABA4 38 03 00 02 */ addi r0, r3, 2
+/* 8034EF48 0034ABA8 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034EF4C 0034ABAC 48 00 00 08 */ b lbl_8034EF54
+lbl_8034EF50:
+/* 8034EF50 0034ABB0 3B A0 00 01 */ li r29, 1
+lbl_8034EF54:
+/* 8034EF54 0034ABB4 2C 1F 00 FF */ cmpwi r31, 0xff
+/* 8034EF58 0034ABB8 40 82 01 58 */ bne lbl_8034F0B0
+/* 8034EF5C 0034ABBC 81 99 00 94 */ lwz r12, 0x94(r25)
+/* 8034EF60 0034ABC0 7F 63 DB 78 */ mr r3, r27
+/* 8034EF64 0034ABC4 38 81 00 0C */ addi r4, r1, 0xc
+/* 8034EF68 0034ABC8 80 B9 01 0C */ lwz r5, 0x10c(r25)
+/* 8034EF6C 0034ABCC 7D 89 03 A6 */ mtctr r12
+/* 8034EF70 0034ABD0 4E 80 04 21 */ bctrl
+/* 8034EF74 0034ABD4 3F 00 80 45 */ lis r24, lbl_8044BB78@ha
+/* 8034EF78 0034ABD8 3B C1 00 0C */ addi r30, r1, 0xc
+/* 8034EF7C 0034ABDC 3B 18 BB 78 */ addi r24, r24, lbl_8044BB78@l
+/* 8034EF80 0034ABE0 3B 80 00 00 */ li r28, 0
+/* 8034EF84 0034ABE4 3A E0 00 00 */ li r23, 0
+/* 8034EF88 0034ABE8 3B ED 92 F8 */ addi r31, r13, lbl_8063E5B8-_SDA_BASE_
+/* 8034EF8C 0034ABEC 48 00 00 E8 */ b lbl_8034F074
+lbl_8034EF90:
+/* 8034EF90 0034ABF0 88 1E 00 00 */ lbz r0, 0(r30)
+/* 8034EF94 0034ABF4 54 00 10 3A */ slwi r0, r0, 2
+/* 8034EF98 0034ABF8 7E 78 00 2E */ lwzx r19, r24, r0
+/* 8034EF9C 0034ABFC 2C 13 00 00 */ cmpwi r19, 0
+/* 8034EFA0 0034AC00 40 82 00 08 */ bne lbl_8034EFA8
+/* 8034EFA4 0034AC04 3A 6D 92 F0 */ addi r19, r13, lbl_8063E5B0-_SDA_BASE_
+lbl_8034EFA8:
+/* 8034EFA8 0034AC08 7E 63 9B 78 */ mr r3, r19
+/* 8034EFAC 0034AC0C 4B E7 7B B9 */ bl strlen
+/* 8034EFB0 0034AC10 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034EFB4 0034AC14 3A C3 00 01 */ addi r22, r3, 1
+/* 8034EFB8 0034AC18 20 60 05 78 */ subfic r3, r0, 0x578
+/* 8034EFBC 0034AC1C 7C 16 18 00 */ cmpw r22, r3
+/* 8034EFC0 0034AC20 40 81 00 08 */ ble lbl_8034EFC8
+/* 8034EFC4 0034AC24 7C 76 1B 78 */ mr r22, r3
+lbl_8034EFC8:
+/* 8034EFC8 0034AC28 2C 16 00 00 */ cmpwi r22, 0
+/* 8034EFCC 0034AC2C 40 81 00 28 */ ble lbl_8034EFF4
+/* 8034EFD0 0034AC30 7E 64 9B 78 */ mr r4, r19
+/* 8034EFD4 0034AC34 7E C5 B3 78 */ mr r5, r22
+/* 8034EFD8 0034AC38 7C 7A 02 14 */ add r3, r26, r0
+/* 8034EFDC 0034AC3C 4B CB 50 25 */ bl memcpy
+/* 8034EFE0 0034AC40 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034EFE4 0034AC44 7C 00 B2 14 */ add r0, r0, r22
+/* 8034EFE8 0034AC48 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034EFEC 0034AC4C 7C 7A 02 14 */ add r3, r26, r0
+/* 8034EFF0 0034AC50 9A E3 FF FF */ stb r23, -1(r3)
+lbl_8034EFF4:
+/* 8034EFF4 0034AC54 2C 1B 00 00 */ cmpwi r27, 0
+/* 8034EFF8 0034AC58 40 82 00 74 */ bne lbl_8034F06C
+/* 8034EFFC 0034AC5C 81 99 00 88 */ lwz r12, 0x88(r25)
+/* 8034F000 0034AC60 7F 44 D3 78 */ mr r4, r26
+/* 8034F004 0034AC64 82 7A 05 78 */ lwz r19, 0x578(r26)
+/* 8034F008 0034AC68 88 7E 00 00 */ lbz r3, 0(r30)
+/* 8034F00C 0034AC6C 80 B9 01 0C */ lwz r5, 0x10c(r25)
+/* 8034F010 0034AC70 7D 89 03 A6 */ mtctr r12
+/* 8034F014 0034AC74 4E 80 04 21 */ bctrl
+/* 8034F018 0034AC78 82 BA 05 78 */ lwz r21, 0x578(r26)
+/* 8034F01C 0034AC7C 7C 13 A8 00 */ cmpw r19, r21
+/* 8034F020 0034AC80 40 82 00 4C */ bne lbl_8034F06C
+/* 8034F024 0034AC84 7F E3 FB 78 */ mr r3, r31
+/* 8034F028 0034AC88 4B E7 7B 3D */ bl strlen
+/* 8034F02C 0034AC8C 3A C3 00 01 */ addi r22, r3, 1
+/* 8034F030 0034AC90 20 15 05 78 */ subfic r0, r21, 0x578
+/* 8034F034 0034AC94 7C 16 00 00 */ cmpw r22, r0
+/* 8034F038 0034AC98 40 81 00 08 */ ble lbl_8034F040
+/* 8034F03C 0034AC9C 7C 16 03 78 */ mr r22, r0
+lbl_8034F040:
+/* 8034F040 0034ACA0 2C 16 00 00 */ cmpwi r22, 0
+/* 8034F044 0034ACA4 40 81 00 28 */ ble lbl_8034F06C
+/* 8034F048 0034ACA8 7F E4 FB 78 */ mr r4, r31
+/* 8034F04C 0034ACAC 7E C5 B3 78 */ mr r5, r22
+/* 8034F050 0034ACB0 7C 7A AA 14 */ add r3, r26, r21
+/* 8034F054 0034ACB4 4B CB 4F AD */ bl memcpy
+/* 8034F058 0034ACB8 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034F05C 0034ACBC 7C 00 B2 14 */ add r0, r0, r22
+/* 8034F060 0034ACC0 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034F064 0034ACC4 7C 7A 02 14 */ add r3, r26, r0
+/* 8034F068 0034ACC8 9A E3 FF FF */ stb r23, -1(r3)
+lbl_8034F06C:
+/* 8034F06C 0034ACCC 3B DE 00 01 */ addi r30, r30, 1
+/* 8034F070 0034ACD0 3B 9C 00 01 */ addi r28, r28, 1
+lbl_8034F074:
+/* 8034F074 0034ACD4 80 01 01 0C */ lwz r0, 0x10c(r1)
+/* 8034F078 0034ACD8 7C 1C 00 00 */ cmpw r28, r0
+/* 8034F07C 0034ACDC 41 80 FF 14 */ blt lbl_8034EF90
+/* 8034F080 0034ACE0 80 9A 05 78 */ lwz r4, 0x578(r26)
+/* 8034F084 0034ACE4 20 04 05 78 */ subfic r0, r4, 0x578
+/* 8034F088 0034ACE8 2C 00 00 01 */ cmpwi r0, 1
+/* 8034F08C 0034ACEC 41 80 01 24 */ blt lbl_8034F1B0
+/* 8034F090 0034ACF0 38 60 00 00 */ li r3, 0
+/* 8034F094 0034ACF4 38 04 00 01 */ addi r0, r4, 1
+/* 8034F098 0034ACF8 7C 7A 21 AE */ stbx r3, r26, r4
+/* 8034F09C 0034ACFC 2C 1B 00 00 */ cmpwi r27, 0
+/* 8034F0A0 0034AD00 3B C1 00 0C */ addi r30, r1, 0xc
+/* 8034F0A4 0034AD04 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034F0A8 0034AD08 83 E1 01 0C */ lwz r31, 0x10c(r1)
+/* 8034F0AC 0034AD0C 41 82 01 04 */ beq lbl_8034F1B0
+lbl_8034F0B0:
+/* 8034F0B0 0034AD10 3B 80 00 00 */ li r28, 0
+/* 8034F0B4 0034AD14 3A CD 92 F8 */ addi r22, r13, lbl_8063E5B8-_SDA_BASE_
+/* 8034F0B8 0034AD18 3A E0 00 00 */ li r23, 0
+/* 8034F0BC 0034AD1C 48 00 00 EC */ b lbl_8034F1A8
+lbl_8034F0C0:
+/* 8034F0C0 0034AD20 7F D8 F3 78 */ mr r24, r30
+/* 8034F0C4 0034AD24 3A 60 00 00 */ li r19, 0
+/* 8034F0C8 0034AD28 48 00 00 D4 */ b lbl_8034F19C
+lbl_8034F0CC:
+/* 8034F0CC 0034AD2C 2C 1B 00 00 */ cmpwi r27, 0
+/* 8034F0D0 0034AD30 82 BA 05 78 */ lwz r21, 0x578(r26)
+/* 8034F0D4 0034AD34 40 82 00 20 */ bne lbl_8034F0F4
+/* 8034F0D8 0034AD38 81 99 00 88 */ lwz r12, 0x88(r25)
+/* 8034F0DC 0034AD3C 7F 44 D3 78 */ mr r4, r26
+/* 8034F0E0 0034AD40 88 78 00 00 */ lbz r3, 0(r24)
+/* 8034F0E4 0034AD44 80 B9 01 0C */ lwz r5, 0x10c(r25)
+/* 8034F0E8 0034AD48 7D 89 03 A6 */ mtctr r12
+/* 8034F0EC 0034AD4C 4E 80 04 21 */ bctrl
+/* 8034F0F0 0034AD50 48 00 00 50 */ b lbl_8034F140
+lbl_8034F0F4:
+/* 8034F0F4 0034AD54 2C 1B 00 01 */ cmpwi r27, 1
+/* 8034F0F8 0034AD58 40 82 00 24 */ bne lbl_8034F11C
+/* 8034F0FC 0034AD5C 81 99 00 8C */ lwz r12, 0x8c(r25)
+/* 8034F100 0034AD60 7F 84 E3 78 */ mr r4, r28
+/* 8034F104 0034AD64 7F 45 D3 78 */ mr r5, r26
+/* 8034F108 0034AD68 88 78 00 00 */ lbz r3, 0(r24)
+/* 8034F10C 0034AD6C 80 D9 01 0C */ lwz r6, 0x10c(r25)
+/* 8034F110 0034AD70 7D 89 03 A6 */ mtctr r12
+/* 8034F114 0034AD74 4E 80 04 21 */ bctrl
+/* 8034F118 0034AD78 48 00 00 28 */ b lbl_8034F140
+lbl_8034F11C:
+/* 8034F11C 0034AD7C 2C 1B 00 02 */ cmpwi r27, 2
+/* 8034F120 0034AD80 40 82 00 20 */ bne lbl_8034F140
+/* 8034F124 0034AD84 81 99 00 90 */ lwz r12, 0x90(r25)
+/* 8034F128 0034AD88 7F 84 E3 78 */ mr r4, r28
+/* 8034F12C 0034AD8C 7F 45 D3 78 */ mr r5, r26
+/* 8034F130 0034AD90 88 78 00 00 */ lbz r3, 0(r24)
+/* 8034F134 0034AD94 80 D9 01 0C */ lwz r6, 0x10c(r25)
+/* 8034F138 0034AD98 7D 89 03 A6 */ mtctr r12
+/* 8034F13C 0034AD9C 4E 80 04 21 */ bctrl
+lbl_8034F140:
+/* 8034F140 0034ADA0 82 9A 05 78 */ lwz r20, 0x578(r26)
+/* 8034F144 0034ADA4 7C 15 A0 00 */ cmpw r21, r20
+/* 8034F148 0034ADA8 40 82 00 4C */ bne lbl_8034F194
+/* 8034F14C 0034ADAC 7E C3 B3 78 */ mr r3, r22
+/* 8034F150 0034ADB0 4B E7 7A 15 */ bl strlen
+/* 8034F154 0034ADB4 3A A3 00 01 */ addi r21, r3, 1
+/* 8034F158 0034ADB8 20 14 05 78 */ subfic r0, r20, 0x578
+/* 8034F15C 0034ADBC 7C 15 00 00 */ cmpw r21, r0
+/* 8034F160 0034ADC0 40 81 00 08 */ ble lbl_8034F168
+/* 8034F164 0034ADC4 7C 15 03 78 */ mr r21, r0
+lbl_8034F168:
+/* 8034F168 0034ADC8 2C 15 00 00 */ cmpwi r21, 0
+/* 8034F16C 0034ADCC 40 81 00 28 */ ble lbl_8034F194
+/* 8034F170 0034ADD0 7E C4 B3 78 */ mr r4, r22
+/* 8034F174 0034ADD4 7E A5 AB 78 */ mr r5, r21
+/* 8034F178 0034ADD8 7C 7A A2 14 */ add r3, r26, r20
+/* 8034F17C 0034ADDC 4B CB 4E 85 */ bl memcpy
+/* 8034F180 0034ADE0 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034F184 0034ADE4 7C 00 AA 14 */ add r0, r0, r21
+/* 8034F188 0034ADE8 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034F18C 0034ADEC 7C 7A 02 14 */ add r3, r26, r0
+/* 8034F190 0034ADF0 9A E3 FF FF */ stb r23, -1(r3)
+lbl_8034F194:
+/* 8034F194 0034ADF4 3A 73 00 01 */ addi r19, r19, 1
+/* 8034F198 0034ADF8 3B 18 00 01 */ addi r24, r24, 1
+lbl_8034F19C:
+/* 8034F19C 0034ADFC 7C 13 F8 00 */ cmpw r19, r31
+/* 8034F1A0 0034AE00 41 80 FF 2C */ blt lbl_8034F0CC
+/* 8034F1A4 0034AE04 3B 9C 00 01 */ addi r28, r28, 1
+lbl_8034F1A8:
+/* 8034F1A8 0034AE08 7C 1C E8 00 */ cmpw r28, r29
+/* 8034F1AC 0034AE0C 41 80 FF 14 */ blt lbl_8034F0C0
+lbl_8034F1B0:
+/* 8034F1B0 0034AE10 39 61 01 50 */ addi r11, r1, 0x150
+/* 8034F1B4 0034AE14 4B E7 7F A1 */ bl _restgpr_19
+/* 8034F1B8 0034AE18 80 01 01 54 */ lwz r0, 0x154(r1)
+/* 8034F1BC 0034AE1C 7C 08 03 A6 */ mtlr r0
+/* 8034F1C0 0034AE20 38 21 01 50 */ addi r1, r1, 0x150
+/* 8034F1C4 0034AE24 4E 80 00 20 */ blr
+
+.global qr_build_split_query_reply
+qr_build_split_query_reply:
+/* 8034F1C8 0034AE28 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8034F1CC 0034AE2C 7C 08 02 A6 */ mflr r0
+/* 8034F1D0 0034AE30 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8034F1D4 0034AE34 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034F1D8 0034AE38 4B E7 7F 41 */ bl _savegpr_23
+/* 8034F1DC 0034AE3C 80 05 00 00 */ lwz r0, 0(r5)
+/* 8034F1E0 0034AE40 7C 79 1B 78 */ mr r25, r3
+/* 8034F1E4 0034AE44 7C 9A 23 78 */ mr r26, r4
+/* 8034F1E8 0034AE48 7C BB 2B 78 */ mr r27, r5
+/* 8034F1EC 0034AE4C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F1F0 0034AE50 41 80 00 0C */ blt lbl_8034F1FC
+/* 8034F1F4 0034AE54 2C 00 00 03 */ cmpwi r0, 3
+/* 8034F1F8 0034AE58 41 80 00 0C */ blt lbl_8034F204
+lbl_8034F1FC:
+/* 8034F1FC 0034AE5C 38 60 00 00 */ li r3, 0
+/* 8034F200 0034AE60 48 00 03 00 */ b lbl_8034F500
+lbl_8034F204:
+/* 8034F204 0034AE64 83 04 05 78 */ lwz r24, 0x578(r4)
+/* 8034F208 0034AE68 23 D8 05 78 */ subfic r30, r24, 0x578
+/* 8034F20C 0034AE6C 2C 1E 00 20 */ cmpwi r30, 0x20
+/* 8034F210 0034AE70 40 80 00 0C */ bge lbl_8034F21C
+/* 8034F214 0034AE74 38 60 00 00 */ li r3, 0
+/* 8034F218 0034AE78 48 00 02 E8 */ b lbl_8034F500
+lbl_8034F21C:
+/* 8034F21C 0034AE7C 3F 80 80 45 */ lis r28, lbl_8044BA08@ha
+/* 8034F220 0034AE80 3B 9C BA 08 */ addi r28, r28, lbl_8044BA08@l
+/* 8034F224 0034AE84 7F 83 E3 78 */ mr r3, r28
+/* 8034F228 0034AE88 4B E7 79 3D */ bl strlen
+/* 8034F22C 0034AE8C 3B A3 00 01 */ addi r29, r3, 1
+/* 8034F230 0034AE90 7C 1D F0 00 */ cmpw r29, r30
+/* 8034F234 0034AE94 40 81 00 08 */ ble lbl_8034F23C
+/* 8034F238 0034AE98 7F DD F3 78 */ mr r29, r30
+lbl_8034F23C:
+/* 8034F23C 0034AE9C 2C 1D 00 00 */ cmpwi r29, 0
+/* 8034F240 0034AEA0 40 81 00 2C */ ble lbl_8034F26C
+/* 8034F244 0034AEA4 7F 84 E3 78 */ mr r4, r28
+/* 8034F248 0034AEA8 7F A5 EB 78 */ mr r5, r29
+/* 8034F24C 0034AEAC 7C 7A C2 14 */ add r3, r26, r24
+/* 8034F250 0034AEB0 4B CB 4D B1 */ bl memcpy
+/* 8034F254 0034AEB4 80 7A 05 78 */ lwz r3, 0x578(r26)
+/* 8034F258 0034AEB8 38 00 00 00 */ li r0, 0
+/* 8034F25C 0034AEBC 7C 63 EA 14 */ add r3, r3, r29
+/* 8034F260 0034AEC0 90 7A 05 78 */ stw r3, 0x578(r26)
+/* 8034F264 0034AEC4 7C 63 D2 14 */ add r3, r3, r26
+/* 8034F268 0034AEC8 98 03 FF FF */ stb r0, -1(r3)
+lbl_8034F26C:
+/* 8034F26C 0034AECC 83 BA 05 78 */ lwz r29, 0x578(r26)
+/* 8034F270 0034AED0 3F C0 80 45 */ lis r30, lbl_8044BB78@ha
+/* 8034F274 0034AED4 3B DE BB 78 */ addi r30, r30, lbl_8044BB78@l
+/* 8034F278 0034AED8 3B E0 00 00 */ li r31, 0
+/* 8034F27C 0034AEDC 38 1D 00 01 */ addi r0, r29, 1
+/* 8034F280 0034AEE0 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034F284 0034AEE4 80 7B 00 04 */ lwz r3, 4(r27)
+/* 8034F288 0034AEE8 7C 7A E9 AE */ stbx r3, r26, r29
+/* 8034F28C 0034AEEC 38 03 00 01 */ addi r0, r3, 1
+/* 8034F290 0034AEF0 90 1B 00 04 */ stw r0, 4(r27)
+/* 8034F294 0034AEF4 48 00 02 50 */ b lbl_8034F4E4
+lbl_8034F298:
+/* 8034F298 0034AEF8 80 1B 01 14 */ lwz r0, 0x114(r27)
+/* 8034F29C 0034AEFC 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F2A0 0034AF00 40 82 00 1C */ bne lbl_8034F2BC
+/* 8034F2A4 0034AF04 81 99 00 94 */ lwz r12, 0x94(r25)
+/* 8034F2A8 0034AF08 38 9B 00 14 */ addi r4, r27, 0x14
+/* 8034F2AC 0034AF0C 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8034F2B0 0034AF10 80 B9 01 0C */ lwz r5, 0x10c(r25)
+/* 8034F2B4 0034AF14 7D 89 03 A6 */ mtctr r12
+/* 8034F2B8 0034AF18 4E 80 04 21 */ bctrl
+lbl_8034F2BC:
+/* 8034F2BC 0034AF1C 80 1B 00 0C */ lwz r0, 0xc(r27)
+/* 8034F2C0 0034AF20 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F2C4 0034AF24 40 82 00 24 */ bne lbl_8034F2E8
+/* 8034F2C8 0034AF28 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8034F2CC 0034AF2C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034F2D0 0034AF30 41 82 00 18 */ beq lbl_8034F2E8
+/* 8034F2D4 0034AF34 81 99 00 98 */ lwz r12, 0x98(r25)
+/* 8034F2D8 0034AF38 80 99 01 0C */ lwz r4, 0x10c(r25)
+/* 8034F2DC 0034AF3C 7D 89 03 A6 */ mtctr r12
+/* 8034F2E0 0034AF40 4E 80 04 21 */ bctrl
+/* 8034F2E4 0034AF44 90 7B 00 0C */ stw r3, 0xc(r27)
+lbl_8034F2E8:
+/* 8034F2E8 0034AF48 80 9A 05 78 */ lwz r4, 0x578(r26)
+/* 8034F2EC 0034AF4C 20 04 05 78 */ subfic r0, r4, 0x578
+/* 8034F2F0 0034AF50 2C 00 00 64 */ cmpwi r0, 0x64
+/* 8034F2F4 0034AF54 40 80 00 0C */ bge lbl_8034F300
+/* 8034F2F8 0034AF58 38 60 00 01 */ li r3, 1
+/* 8034F2FC 0034AF5C 48 00 02 04 */ b lbl_8034F500
+lbl_8034F300:
+/* 8034F300 0034AF60 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8034F304 0034AF64 38 04 00 01 */ addi r0, r4, 1
+/* 8034F308 0034AF68 7C 7A 21 AE */ stbx r3, r26, r4
+/* 8034F30C 0034AF6C 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034F310 0034AF70 48 00 01 8C */ b lbl_8034F49C
+lbl_8034F314:
+/* 8034F314 0034AF74 7C 7B 1A 14 */ add r3, r27, r3
+/* 8034F318 0034AF78 8B 83 00 14 */ lbz r28, 0x14(r3)
+/* 8034F31C 0034AF7C 57 80 10 3A */ slwi r0, r28, 2
+/* 8034F320 0034AF80 7E FE 00 2E */ lwzx r23, r30, r0
+/* 8034F324 0034AF84 7E E3 BB 78 */ mr r3, r23
+/* 8034F328 0034AF88 4B E7 78 3D */ bl strlen
+/* 8034F32C 0034AF8C 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034F330 0034AF90 3B 03 00 01 */ addi r24, r3, 1
+/* 8034F334 0034AF94 20 60 05 78 */ subfic r3, r0, 0x578
+/* 8034F338 0034AF98 7C 18 18 00 */ cmpw r24, r3
+/* 8034F33C 0034AF9C 40 81 00 08 */ ble lbl_8034F344
+/* 8034F340 0034AFA0 7C 78 1B 78 */ mr r24, r3
+lbl_8034F344:
+/* 8034F344 0034AFA4 2C 18 00 00 */ cmpwi r24, 0
+/* 8034F348 0034AFA8 41 81 00 0C */ bgt lbl_8034F354
+/* 8034F34C 0034AFAC 38 80 00 00 */ li r4, 0
+/* 8034F350 0034AFB0 48 00 00 2C */ b lbl_8034F37C
+lbl_8034F354:
+/* 8034F354 0034AFB4 7E E4 BB 78 */ mr r4, r23
+/* 8034F358 0034AFB8 7F 05 C3 78 */ mr r5, r24
+/* 8034F35C 0034AFBC 7C 7A 02 14 */ add r3, r26, r0
+/* 8034F360 0034AFC0 4B CB 4C A1 */ bl memcpy
+/* 8034F364 0034AFC4 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034F368 0034AFC8 38 80 00 01 */ li r4, 1
+/* 8034F36C 0034AFCC 7C 00 C2 14 */ add r0, r0, r24
+/* 8034F370 0034AFD0 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034F374 0034AFD4 7C 7A 02 14 */ add r3, r26, r0
+/* 8034F378 0034AFD8 9B E3 FF FF */ stb r31, -1(r3)
+lbl_8034F37C:
+/* 8034F37C 0034AFDC 2C 04 00 00 */ cmpwi r4, 0
+/* 8034F380 0034AFE0 40 82 00 0C */ bne lbl_8034F38C
+/* 8034F384 0034AFE4 38 60 00 01 */ li r3, 1
+/* 8034F388 0034AFE8 48 00 01 78 */ b lbl_8034F500
+lbl_8034F38C:
+/* 8034F38C 0034AFEC 80 1B 00 00 */ lwz r0, 0(r27)
+/* 8034F390 0034AFF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F394 0034AFF4 40 82 00 34 */ bne lbl_8034F3C8
+/* 8034F398 0034AFF8 81 99 00 88 */ lwz r12, 0x88(r25)
+/* 8034F39C 0034AFFC 7F 83 E3 78 */ mr r3, r28
+/* 8034F3A0 0034B000 7F 44 D3 78 */ mr r4, r26
+/* 8034F3A4 0034B004 80 B9 01 0C */ lwz r5, 0x10c(r25)
+/* 8034F3A8 0034B008 7D 89 03 A6 */ mtctr r12
+/* 8034F3AC 0034B00C 4E 80 04 21 */ bctrl
+/* 8034F3B0 0034B010 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034F3B4 0034B014 20 00 05 78 */ subfic r0, r0, 0x578
+/* 8034F3B8 0034B018 2C 00 00 01 */ cmpwi r0, 1
+/* 8034F3BC 0034B01C 40 80 00 D0 */ bge lbl_8034F48C
+/* 8034F3C0 0034B020 38 60 00 01 */ li r3, 1
+/* 8034F3C4 0034B024 48 00 01 3C */ b lbl_8034F500
+lbl_8034F3C8:
+/* 8034F3C8 0034B028 80 9A 05 78 */ lwz r4, 0x578(r26)
+/* 8034F3CC 0034B02C 20 04 05 78 */ subfic r0, r4, 0x578
+/* 8034F3D0 0034B030 2C 00 00 01 */ cmpwi r0, 1
+/* 8034F3D4 0034B034 40 80 00 0C */ bge lbl_8034F3E0
+/* 8034F3D8 0034B038 38 60 00 01 */ li r3, 1
+/* 8034F3DC 0034B03C 48 00 01 24 */ b lbl_8034F500
+lbl_8034F3E0:
+/* 8034F3E0 0034B040 80 7B 00 10 */ lwz r3, 0x10(r27)
+/* 8034F3E4 0034B044 38 04 00 01 */ addi r0, r4, 1
+/* 8034F3E8 0034B048 7C 7A 21 AE */ stbx r3, r26, r4
+/* 8034F3EC 0034B04C 90 1A 05 78 */ stw r0, 0x578(r26)
+/* 8034F3F0 0034B050 48 00 00 70 */ b lbl_8034F460
+lbl_8034F3F4:
+/* 8034F3F4 0034B054 80 1B 00 00 */ lwz r0, 0(r27)
+/* 8034F3F8 0034B058 2C 00 00 01 */ cmpwi r0, 1
+/* 8034F3FC 0034B05C 40 82 00 20 */ bne lbl_8034F41C
+/* 8034F400 0034B060 81 99 00 8C */ lwz r12, 0x8c(r25)
+/* 8034F404 0034B064 7F 83 E3 78 */ mr r3, r28
+/* 8034F408 0034B068 7F 45 D3 78 */ mr r5, r26
+/* 8034F40C 0034B06C 80 D9 01 0C */ lwz r6, 0x10c(r25)
+/* 8034F410 0034B070 7D 89 03 A6 */ mtctr r12
+/* 8034F414 0034B074 4E 80 04 21 */ bctrl
+/* 8034F418 0034B078 48 00 00 24 */ b lbl_8034F43C
+lbl_8034F41C:
+/* 8034F41C 0034B07C 2C 00 00 02 */ cmpwi r0, 2
+/* 8034F420 0034B080 40 82 00 1C */ bne lbl_8034F43C
+/* 8034F424 0034B084 81 99 00 90 */ lwz r12, 0x90(r25)
+/* 8034F428 0034B088 7F 83 E3 78 */ mr r3, r28
+/* 8034F42C 0034B08C 7F 45 D3 78 */ mr r5, r26
+/* 8034F430 0034B090 80 D9 01 0C */ lwz r6, 0x10c(r25)
+/* 8034F434 0034B094 7D 89 03 A6 */ mtctr r12
+/* 8034F438 0034B098 4E 80 04 21 */ bctrl
+lbl_8034F43C:
+/* 8034F43C 0034B09C 80 1A 05 78 */ lwz r0, 0x578(r26)
+/* 8034F440 0034B0A0 20 00 05 78 */ subfic r0, r0, 0x578
+/* 8034F444 0034B0A4 2C 00 00 01 */ cmpwi r0, 1
+/* 8034F448 0034B0A8 40 80 00 0C */ bge lbl_8034F454
+/* 8034F44C 0034B0AC 38 60 00 01 */ li r3, 1
+/* 8034F450 0034B0B0 48 00 00 B0 */ b lbl_8034F500
+lbl_8034F454:
+/* 8034F454 0034B0B4 80 7B 00 10 */ lwz r3, 0x10(r27)
+/* 8034F458 0034B0B8 38 03 00 01 */ addi r0, r3, 1
+/* 8034F45C 0034B0BC 90 1B 00 10 */ stw r0, 0x10(r27)
+lbl_8034F460:
+/* 8034F460 0034B0C0 80 9B 00 10 */ lwz r4, 0x10(r27)
+/* 8034F464 0034B0C4 80 1B 00 0C */ lwz r0, 0xc(r27)
+/* 8034F468 0034B0C8 7C 04 00 00 */ cmpw r4, r0
+/* 8034F46C 0034B0CC 41 80 FF 88 */ blt lbl_8034F3F4
+/* 8034F470 0034B0D0 80 7A 05 78 */ lwz r3, 0x578(r26)
+/* 8034F474 0034B0D4 20 03 05 78 */ subfic r0, r3, 0x578
+/* 8034F478 0034B0D8 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F47C 0034B0DC 40 81 00 10 */ ble lbl_8034F48C
+/* 8034F480 0034B0E0 7F FA 19 AE */ stbx r31, r26, r3
+/* 8034F484 0034B0E4 38 03 00 01 */ addi r0, r3, 1
+/* 8034F488 0034B0E8 90 1A 05 78 */ stw r0, 0x578(r26)
+lbl_8034F48C:
+/* 8034F48C 0034B0EC 80 7B 00 08 */ lwz r3, 8(r27)
+/* 8034F490 0034B0F0 93 FB 00 10 */ stw r31, 0x10(r27)
+/* 8034F494 0034B0F4 38 03 00 01 */ addi r0, r3, 1
+/* 8034F498 0034B0F8 90 1B 00 08 */ stw r0, 8(r27)
+lbl_8034F49C:
+/* 8034F49C 0034B0FC 80 7B 00 08 */ lwz r3, 8(r27)
+/* 8034F4A0 0034B100 80 1B 01 14 */ lwz r0, 0x114(r27)
+/* 8034F4A4 0034B104 7C 03 00 00 */ cmpw r3, r0
+/* 8034F4A8 0034B108 41 80 FE 6C */ blt lbl_8034F314
+/* 8034F4AC 0034B10C 80 7A 05 78 */ lwz r3, 0x578(r26)
+/* 8034F4B0 0034B110 20 03 05 78 */ subfic r0, r3, 0x578
+/* 8034F4B4 0034B114 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F4B8 0034B118 40 81 00 10 */ ble lbl_8034F4C8
+/* 8034F4BC 0034B11C 7F FA 19 AE */ stbx r31, r26, r3
+/* 8034F4C0 0034B120 38 03 00 01 */ addi r0, r3, 1
+/* 8034F4C4 0034B124 90 1A 05 78 */ stw r0, 0x578(r26)
+lbl_8034F4C8:
+/* 8034F4C8 0034B128 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8034F4CC 0034B12C 93 FB 00 08 */ stw r31, 8(r27)
+/* 8034F4D0 0034B130 38 03 00 01 */ addi r0, r3, 1
+/* 8034F4D4 0034B134 90 1B 00 00 */ stw r0, 0(r27)
+/* 8034F4D8 0034B138 93 FB 00 0C */ stw r31, 0xc(r27)
+/* 8034F4DC 0034B13C 93 FB 00 10 */ stw r31, 0x10(r27)
+/* 8034F4E0 0034B140 93 FB 01 14 */ stw r31, 0x114(r27)
+lbl_8034F4E4:
+/* 8034F4E4 0034B144 80 1B 00 00 */ lwz r0, 0(r27)
+/* 8034F4E8 0034B148 2C 00 00 03 */ cmpwi r0, 3
+/* 8034F4EC 0034B14C 41 80 FD AC */ blt lbl_8034F298
+/* 8034F4F0 0034B150 7C 1A E8 AE */ lbzx r0, r26, r29
+/* 8034F4F4 0034B154 38 60 00 01 */ li r3, 1
+/* 8034F4F8 0034B158 60 00 00 80 */ ori r0, r0, 0x80
+/* 8034F4FC 0034B15C 7C 1A E9 AE */ stbx r0, r26, r29
+lbl_8034F500:
+/* 8034F500 0034B160 39 61 00 30 */ addi r11, r1, 0x30
+/* 8034F504 0034B164 4B E7 7C 61 */ bl _restgpr_23
+/* 8034F508 0034B168 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8034F50C 0034B16C 7C 08 03 A6 */ mtlr r0
+/* 8034F510 0034B170 38 21 00 30 */ addi r1, r1, 0x30
+/* 8034F514 0034B174 4E 80 00 20 */ blr
+
+.global qr_process_query
+qr_process_query:
+/* 8034F518 0034B178 94 21 FE C0 */ stwu r1, -0x140(r1)
+/* 8034F51C 0034B17C 7C 08 02 A6 */ mflr r0
+/* 8034F520 0034B180 90 01 01 44 */ stw r0, 0x144(r1)
+/* 8034F524 0034B184 39 61 01 40 */ addi r11, r1, 0x140
+/* 8034F528 0034B188 4B E7 7B F9 */ bl _savegpr_25
+/* 8034F52C 0034B18C 2C 06 00 03 */ cmpwi r6, 3
+/* 8034F530 0034B190 7C FB 3B 78 */ mr r27, r7
+/* 8034F534 0034B194 7C 79 1B 78 */ mr r25, r3
+/* 8034F538 0034B198 7C 9A 23 78 */ mr r26, r4
+/* 8034F53C 0034B19C 38 00 00 00 */ li r0, 0
+/* 8034F540 0034B1A0 38 E0 00 00 */ li r7, 0
+/* 8034F544 0034B1A4 3B A0 00 00 */ li r29, 0
+/* 8034F548 0034B1A8 3B 80 00 00 */ li r28, 0
+/* 8034F54C 0034B1AC 41 80 01 74 */ blt lbl_8034F6C0
+/* 8034F550 0034B1B0 89 05 00 00 */ lbz r8, 0(r5)
+/* 8034F554 0034B1B4 38 85 00 01 */ addi r4, r5, 1
+/* 8034F558 0034B1B8 38 66 FF FF */ addi r3, r6, -1
+/* 8034F55C 0034B1BC 2C 08 00 00 */ cmpwi r8, 0
+/* 8034F560 0034B1C0 41 82 00 18 */ beq lbl_8034F578
+/* 8034F564 0034B1C4 28 08 00 FF */ cmplwi r8, 0xff
+/* 8034F568 0034B1C8 41 82 00 10 */ beq lbl_8034F578
+/* 8034F56C 0034B1CC 7C 87 23 78 */ mr r7, r4
+/* 8034F570 0034B1D0 7C 84 42 14 */ add r4, r4, r8
+/* 8034F574 0034B1D4 7C 68 18 50 */ subf r3, r8, r3
+lbl_8034F578:
+/* 8034F578 0034B1D8 2C 03 00 02 */ cmpwi r3, 2
+/* 8034F57C 0034B1DC 41 80 01 44 */ blt lbl_8034F6C0
+/* 8034F580 0034B1E0 8B E4 00 00 */ lbz r31, 0(r4)
+/* 8034F584 0034B1E4 38 84 00 01 */ addi r4, r4, 1
+/* 8034F588 0034B1E8 38 63 FF FF */ addi r3, r3, -1
+/* 8034F58C 0034B1EC 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034F590 0034B1F0 41 82 00 18 */ beq lbl_8034F5A8
+/* 8034F594 0034B1F4 28 1F 00 FF */ cmplwi r31, 0xff
+/* 8034F598 0034B1F8 41 82 00 10 */ beq lbl_8034F5A8
+/* 8034F59C 0034B1FC 7C 9D 23 78 */ mr r29, r4
+/* 8034F5A0 0034B200 7C 84 FA 14 */ add r4, r4, r31
+/* 8034F5A4 0034B204 7C 7F 18 50 */ subf r3, r31, r3
+lbl_8034F5A8:
+/* 8034F5A8 0034B208 2C 03 00 01 */ cmpwi r3, 1
+/* 8034F5AC 0034B20C 41 80 01 14 */ blt lbl_8034F6C0
+/* 8034F5B0 0034B210 8B C4 00 00 */ lbz r30, 0(r4)
+/* 8034F5B4 0034B214 38 84 00 01 */ addi r4, r4, 1
+/* 8034F5B8 0034B218 38 63 FF FF */ addi r3, r3, -1
+/* 8034F5BC 0034B21C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8034F5C0 0034B220 41 82 00 18 */ beq lbl_8034F5D8
+/* 8034F5C4 0034B224 28 1E 00 FF */ cmplwi r30, 0xff
+/* 8034F5C8 0034B228 41 82 00 10 */ beq lbl_8034F5D8
+/* 8034F5CC 0034B22C 7C 9C 23 78 */ mr r28, r4
+/* 8034F5D0 0034B230 7C 84 F2 14 */ add r4, r4, r30
+/* 8034F5D4 0034B234 7C 7E 18 50 */ subf r3, r30, r3
+lbl_8034F5D8:
+/* 8034F5D8 0034B238 2C 03 00 00 */ cmpwi r3, 0
+/* 8034F5DC 0034B23C 41 80 00 E4 */ blt lbl_8034F6C0
+/* 8034F5E0 0034B240 40 81 00 08 */ ble lbl_8034F5E8
+/* 8034F5E4 0034B244 88 04 00 00 */ lbz r0, 0(r4)
+lbl_8034F5E8:
+/* 8034F5E8 0034B248 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 8034F5EC 0034B24C 2C 00 00 01 */ cmpwi r0, 1
+/* 8034F5F0 0034B250 40 82 00 70 */ bne lbl_8034F660
+/* 8034F5F4 0034B254 38 00 00 00 */ li r0, 0
+/* 8034F5F8 0034B258 3B E0 00 05 */ li r31, 5
+/* 8034F5FC 0034B25C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8034F600 0034B260 90 01 00 08 */ stw r0, 8(r1)
+/* 8034F604 0034B264 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8034F608 0034B268 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8034F60C 0034B26C 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034F610 0034B270 90 01 01 1C */ stw r0, 0x11c(r1)
+/* 8034F614 0034B274 48 00 00 30 */ b lbl_8034F644
+lbl_8034F618:
+/* 8034F618 0034B278 80 79 00 00 */ lwz r3, 0(r25)
+/* 8034F61C 0034B27C 7F 44 D3 78 */ mr r4, r26
+/* 8034F620 0034B280 80 BA 05 78 */ lwz r5, 0x578(r26)
+/* 8034F624 0034B284 7F 67 DB 78 */ mr r7, r27
+/* 8034F628 0034B288 38 C0 00 00 */ li r6, 0
+/* 8034F62C 0034B28C 39 00 00 08 */ li r8, 8
+/* 8034F630 0034B290 4B FE 88 65 */ bl sendto
+/* 8034F634 0034B294 93 FA 05 78 */ stw r31, 0x578(r26)
+/* 8034F638 0034B298 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8034F63C 0034B29C 2C 00 00 07 */ cmpwi r0, 7
+/* 8034F640 0034B2A0 41 81 00 80 */ bgt lbl_8034F6C0
+lbl_8034F644:
+/* 8034F644 0034B2A4 7F 23 CB 78 */ mr r3, r25
+/* 8034F648 0034B2A8 7F 44 D3 78 */ mr r4, r26
+/* 8034F64C 0034B2AC 38 A1 00 08 */ addi r5, r1, 8
+/* 8034F650 0034B2B0 4B FF FB 79 */ bl qr_build_split_query_reply
+/* 8034F654 0034B2B4 2C 03 00 01 */ cmpwi r3, 1
+/* 8034F658 0034B2B8 41 82 FF C0 */ beq lbl_8034F618
+/* 8034F65C 0034B2BC 48 00 00 64 */ b lbl_8034F6C0
+lbl_8034F660:
+/* 8034F660 0034B2C0 7F 23 CB 78 */ mr r3, r25
+/* 8034F664 0034B2C4 7F 44 D3 78 */ mr r4, r26
+/* 8034F668 0034B2C8 7D 06 43 78 */ mr r6, r8
+/* 8034F66C 0034B2CC 38 A0 00 00 */ li r5, 0
+/* 8034F670 0034B2D0 4B FF F8 45 */ bl qr_build_partial_query_reply
+/* 8034F674 0034B2D4 7F 23 CB 78 */ mr r3, r25
+/* 8034F678 0034B2D8 7F 44 D3 78 */ mr r4, r26
+/* 8034F67C 0034B2DC 7F E6 FB 78 */ mr r6, r31
+/* 8034F680 0034B2E0 7F A7 EB 78 */ mr r7, r29
+/* 8034F684 0034B2E4 38 A0 00 01 */ li r5, 1
+/* 8034F688 0034B2E8 4B FF F8 2D */ bl qr_build_partial_query_reply
+/* 8034F68C 0034B2EC 7F 23 CB 78 */ mr r3, r25
+/* 8034F690 0034B2F0 7F 44 D3 78 */ mr r4, r26
+/* 8034F694 0034B2F4 7F C6 F3 78 */ mr r6, r30
+/* 8034F698 0034B2F8 7F 87 E3 78 */ mr r7, r28
+/* 8034F69C 0034B2FC 38 A0 00 02 */ li r5, 2
+/* 8034F6A0 0034B300 4B FF F8 15 */ bl qr_build_partial_query_reply
+/* 8034F6A4 0034B304 80 79 00 00 */ lwz r3, 0(r25)
+/* 8034F6A8 0034B308 7F 44 D3 78 */ mr r4, r26
+/* 8034F6AC 0034B30C 80 BA 05 78 */ lwz r5, 0x578(r26)
+/* 8034F6B0 0034B310 7F 67 DB 78 */ mr r7, r27
+/* 8034F6B4 0034B314 38 C0 00 00 */ li r6, 0
+/* 8034F6B8 0034B318 39 00 00 08 */ li r8, 8
+/* 8034F6BC 0034B31C 4B FE 87 D9 */ bl sendto
+lbl_8034F6C0:
+/* 8034F6C0 0034B320 39 61 01 40 */ addi r11, r1, 0x140
+/* 8034F6C4 0034B324 4B E7 7A A9 */ bl _restgpr_25
+/* 8034F6C8 0034B328 80 01 01 44 */ lwz r0, 0x144(r1)
+/* 8034F6CC 0034B32C 7C 08 03 A6 */ mtlr r0
+/* 8034F6D0 0034B330 38 21 01 40 */ addi r1, r1, 0x140
+/* 8034F6D4 0034B334 4E 80 00 20 */ blr
+
+.global qr_process_client_message
+qr_process_client_message:
+/* 8034F6D8 0034B338 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8034F6DC 0034B33C 7C 08 02 A6 */ mflr r0
+/* 8034F6E0 0034B340 2C 05 00 0A */ cmpwi r5, 0xa
+/* 8034F6E4 0034B344 39 80 00 01 */ li r12, 1
+/* 8034F6E8 0034B348 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8034F6EC 0034B34C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8034F6F0 0034B350 7C 7F 1B 78 */ mr r31, r3
+/* 8034F6F4 0034B354 88 C2 A4 D0 */ lbz r6, lbl_80642AD0-_SDA2_BASE_(r2)
+/* 8034F6F8 0034B358 89 62 A4 D1 */ lbz r11, lbl_80642AD1-_SDA2_BASE_(r2)
+/* 8034F6FC 0034B35C 89 42 A4 D2 */ lbz r10, lbl_80642AD2-_SDA2_BASE_(r2)
+/* 8034F700 0034B360 89 22 A4 D3 */ lbz r9, lbl_80642AD3-_SDA2_BASE_(r2)
+/* 8034F704 0034B364 89 02 A4 D4 */ lbz r8, lbl_80642AD4-_SDA2_BASE_(r2)
+/* 8034F708 0034B368 88 E2 A4 D5 */ lbz r7, lbl_80642AD5-_SDA2_BASE_(r2)
+/* 8034F70C 0034B36C 41 80 00 98 */ blt lbl_8034F7A4
+/* 8034F710 0034B370 88 04 00 00 */ lbz r0, 0(r4)
+/* 8034F714 0034B374 54 C6 06 3E */ clrlwi r6, r6, 0x18
+/* 8034F718 0034B378 7C 06 00 40 */ cmplw r6, r0
+/* 8034F71C 0034B37C 41 82 00 0C */ beq lbl_8034F728
+/* 8034F720 0034B380 39 80 00 00 */ li r12, 0
+/* 8034F724 0034B384 48 00 00 84 */ b lbl_8034F7A8
+lbl_8034F728:
+/* 8034F728 0034B388 88 04 00 01 */ lbz r0, 1(r4)
+/* 8034F72C 0034B38C 55 66 06 3E */ clrlwi r6, r11, 0x18
+/* 8034F730 0034B390 7C 06 00 40 */ cmplw r6, r0
+/* 8034F734 0034B394 41 82 00 0C */ beq lbl_8034F740
+/* 8034F738 0034B398 39 80 00 00 */ li r12, 0
+/* 8034F73C 0034B39C 48 00 00 6C */ b lbl_8034F7A8
+lbl_8034F740:
+/* 8034F740 0034B3A0 88 04 00 02 */ lbz r0, 2(r4)
+/* 8034F744 0034B3A4 55 46 06 3E */ clrlwi r6, r10, 0x18
+/* 8034F748 0034B3A8 7C 06 00 40 */ cmplw r6, r0
+/* 8034F74C 0034B3AC 41 82 00 0C */ beq lbl_8034F758
+/* 8034F750 0034B3B0 39 80 00 00 */ li r12, 0
+/* 8034F754 0034B3B4 48 00 00 54 */ b lbl_8034F7A8
+lbl_8034F758:
+/* 8034F758 0034B3B8 88 04 00 03 */ lbz r0, 3(r4)
+/* 8034F75C 0034B3BC 55 26 06 3E */ clrlwi r6, r9, 0x18
+/* 8034F760 0034B3C0 7C 06 00 40 */ cmplw r6, r0
+/* 8034F764 0034B3C4 41 82 00 0C */ beq lbl_8034F770
+/* 8034F768 0034B3C8 39 80 00 00 */ li r12, 0
+/* 8034F76C 0034B3CC 48 00 00 3C */ b lbl_8034F7A8
+lbl_8034F770:
+/* 8034F770 0034B3D0 88 04 00 04 */ lbz r0, 4(r4)
+/* 8034F774 0034B3D4 55 06 06 3E */ clrlwi r6, r8, 0x18
+/* 8034F778 0034B3D8 7C 06 00 40 */ cmplw r6, r0
+/* 8034F77C 0034B3DC 41 82 00 0C */ beq lbl_8034F788
+/* 8034F780 0034B3E0 39 80 00 00 */ li r12, 0
+/* 8034F784 0034B3E4 48 00 00 24 */ b lbl_8034F7A8
+lbl_8034F788:
+/* 8034F788 0034B3E8 88 04 00 05 */ lbz r0, 5(r4)
+/* 8034F78C 0034B3EC 54 E6 06 3E */ clrlwi r6, r7, 0x18
+/* 8034F790 0034B3F0 7C 06 00 40 */ cmplw r6, r0
+/* 8034F794 0034B3F4 41 82 00 14 */ beq lbl_8034F7A8
+/* 8034F798 0034B3F8 39 80 00 00 */ li r12, 0
+/* 8034F79C 0034B3FC 48 00 00 0C */ b lbl_8034F7A8
+/* 8034F7A0 0034B400 48 00 00 08 */ b lbl_8034F7A8
+lbl_8034F7A4:
+/* 8034F7A4 0034B404 39 80 00 00 */ li r12, 0
+lbl_8034F7A8:
+/* 8034F7A8 0034B408 2C 0C 00 00 */ cmpwi r12, 0
+/* 8034F7AC 0034B40C 41 82 00 3C */ beq lbl_8034F7E8
+/* 8034F7B0 0034B410 38 61 00 08 */ addi r3, r1, 8
+/* 8034F7B4 0034B414 38 A0 00 04 */ li r5, 4
+/* 8034F7B8 0034B418 38 84 00 06 */ addi r4, r4, 6
+/* 8034F7BC 0034B41C 4B CB 48 45 */ bl memcpy
+/* 8034F7C0 0034B420 80 1F 00 A0 */ lwz r0, 0xa0(r31)
+/* 8034F7C4 0034B424 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F7C8 0034B428 41 82 00 40 */ beq lbl_8034F808
+/* 8034F7CC 0034B42C 80 61 00 08 */ lwz r3, 8(r1)
+/* 8034F7D0 0034B430 4B FA 75 9D */ bl SONtoHl
+/* 8034F7D4 0034B434 81 9F 00 A0 */ lwz r12, 0xa0(r31)
+/* 8034F7D8 0034B438 80 9F 01 0C */ lwz r4, 0x10c(r31)
+/* 8034F7DC 0034B43C 7D 89 03 A6 */ mtctr r12
+/* 8034F7E0 0034B440 4E 80 04 21 */ bctrl
+/* 8034F7E4 0034B444 48 00 00 24 */ b lbl_8034F808
+lbl_8034F7E8:
+/* 8034F7E8 0034B448 81 83 00 A4 */ lwz r12, 0xa4(r3)
+/* 8034F7EC 0034B44C 2C 0C 00 00 */ cmpwi r12, 0
+/* 8034F7F0 0034B450 41 82 00 18 */ beq lbl_8034F808
+/* 8034F7F4 0034B454 7C 83 23 78 */ mr r3, r4
+/* 8034F7F8 0034B458 7C A4 2B 78 */ mr r4, r5
+/* 8034F7FC 0034B45C 80 BF 01 0C */ lwz r5, 0x10c(r31)
+/* 8034F800 0034B460 7D 89 03 A6 */ mtctr r12
+/* 8034F804 0034B464 4E 80 04 21 */ bctrl
+lbl_8034F808:
+/* 8034F808 0034B468 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8034F80C 0034B46C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8034F810 0034B470 7C 08 03 A6 */ mtlr r0
+/* 8034F814 0034B474 38 21 00 20 */ addi r1, r1, 0x20
+/* 8034F818 0034B478 4E 80 00 20 */ blr
+
+.global qr2_parse_queryA
+qr2_parse_queryA:
+/* 8034F81C 0034B47C 94 21 F9 E0 */ stwu r1, -0x620(r1)
+/* 8034F820 0034B480 7C 08 02 A6 */ mflr r0
+/* 8034F824 0034B484 90 01 06 24 */ stw r0, 0x624(r1)
+/* 8034F828 0034B488 39 61 06 20 */ addi r11, r1, 0x620
+/* 8034F82C 0034B48C 4B E7 78 F9 */ bl _savegpr_26
+/* 8034F830 0034B490 38 00 00 00 */ li r0, 0
+/* 8034F834 0034B494 2C 03 00 00 */ cmpwi r3, 0
+/* 8034F838 0034B498 90 01 06 00 */ stw r0, 0x600(r1)
+/* 8034F83C 0034B49C 7C 7B 1B 78 */ mr r27, r3
+/* 8034F840 0034B4A0 7C BC 2B 78 */ mr r28, r5
+/* 8034F844 0034B4A4 7C DD 33 78 */ mr r29, r6
+/* 8034F848 0034B4A8 40 82 00 08 */ bne lbl_8034F850
+/* 8034F84C 0034B4AC 83 6D 92 E8 */ lwz r27, lbl_8063E5A8-_SDA_BASE_(r13)
+lbl_8034F850:
+/* 8034F850 0034B4B0 88 64 00 00 */ lbz r3, 0(r4)
+/* 8034F854 0034B4B4 2C 03 00 3B */ cmpwi r3, 0x3b
+/* 8034F858 0034B4B8 40 82 00 28 */ bne lbl_8034F880
+/* 8034F85C 0034B4BC 81 9B 00 D4 */ lwz r12, 0xd4(r27)
+/* 8034F860 0034B4C0 2C 0C 00 00 */ cmpwi r12, 0
+/* 8034F864 0034B4C4 41 82 07 9C */ beq lbl_80350000
+/* 8034F868 0034B4C8 7C 83 23 78 */ mr r3, r4
+/* 8034F86C 0034B4CC 7F 84 E3 78 */ mr r4, r28
+/* 8034F870 0034B4D0 7F A5 EB 78 */ mr r5, r29
+/* 8034F874 0034B4D4 7D 89 03 A6 */ mtctr r12
+/* 8034F878 0034B4D8 4E 80 04 21 */ bctrl
+/* 8034F87C 0034B4DC 48 00 07 84 */ b lbl_80350000
+lbl_8034F880:
+/* 8034F880 0034B4E0 2C 05 00 07 */ cmpwi r5, 7
+/* 8034F884 0034B4E4 41 80 07 7C */ blt lbl_80350000
+/* 8034F888 0034B4E8 28 03 00 FE */ cmplwi r3, 0xfe
+/* 8034F88C 0034B4EC 40 82 07 74 */ bne lbl_80350000
+/* 8034F890 0034B4F0 88 04 00 01 */ lbz r0, 1(r4)
+/* 8034F894 0034B4F4 28 00 00 FD */ cmplwi r0, 0xfd
+/* 8034F898 0034B4F8 41 82 00 08 */ beq lbl_8034F8A0
+/* 8034F89C 0034B4FC 48 00 07 64 */ b lbl_80350000
+lbl_8034F8A0:
+/* 8034F8A0 0034B500 80 1B 00 B8 */ lwz r0, 0xb8(r27)
+/* 8034F8A4 0034B504 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F8A8 0034B508 40 81 00 0C */ ble lbl_8034F8B4
+/* 8034F8AC 0034B50C 38 00 00 00 */ li r0, 0
+/* 8034F8B0 0034B510 90 1B 00 B8 */ stw r0, 0xb8(r27)
+lbl_8034F8B4:
+/* 8034F8B4 0034B514 8B 44 00 02 */ lbz r26, 2(r4)
+/* 8034F8B8 0034B518 3B E4 00 03 */ addi r31, r4, 3
+/* 8034F8BC 0034B51C 3B C4 00 07 */ addi r30, r4, 7
+/* 8034F8C0 0034B520 38 61 00 89 */ addi r3, r1, 0x89
+/* 8034F8C4 0034B524 9B 41 00 88 */ stb r26, 0x88(r1)
+/* 8034F8C8 0034B528 7F E4 FB 78 */ mr r4, r31
+/* 8034F8CC 0034B52C 38 A0 00 04 */ li r5, 4
+/* 8034F8D0 0034B530 3B 9C FF F9 */ addi r28, r28, -7
+/* 8034F8D4 0034B534 4B CB 47 2D */ bl memcpy
+/* 8034F8D8 0034B538 7F 40 07 74 */ extsb r0, r26
+/* 8034F8DC 0034B53C 38 A0 00 05 */ li r5, 5
+/* 8034F8E0 0034B540 28 00 00 09 */ cmplwi r0, 9
+/* 8034F8E4 0034B544 90 A1 06 00 */ stw r5, 0x600(r1)
+/* 8034F8E8 0034B548 41 81 07 18 */ bgt lbl_80350000
+/* 8034F8EC 0034B54C 3C 60 80 45 */ lis r3, lbl_8044BA20@ha
+/* 8034F8F0 0034B550 54 00 10 3A */ slwi r0, r0, 2
+/* 8034F8F4 0034B554 38 63 BA 20 */ addi r3, r3, lbl_8044BA20@l
+/* 8034F8F8 0034B558 7C 63 00 2E */ lwzx r3, r3, r0
+/* 8034F8FC 0034B55C 7C 69 03 A6 */ mtctr r3
+/* 8034F900 0034B560 4E 80 04 20 */ bctr
+/* 8034F904 0034B564 3B 80 00 00 */ li r28, 0
+/* 8034F908 0034B568 4B FE 96 D1 */ bl current_time
+/* 8034F90C 0034B56C 88 1B 01 10 */ lbz r0, 0x110(r27)
+/* 8034F910 0034B570 7C 7F 1B 78 */ mr r31, r3
+/* 8034F914 0034B574 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
+/* 8034F918 0034B578 40 82 00 78 */ bne lbl_8034F990
+/* 8034F91C 0034B57C 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8034F920 0034B580 38 8D 92 EC */ addi r4, r13, lbl_8063E5AC-_SDA_BASE_
+/* 8034F924 0034B584 38 A0 00 00 */ li r5, 0
+/* 8034F928 0034B588 4C C6 31 82 */ crclr 6
+/* 8034F92C 0034B58C 4B E7 D1 D1 */ bl sprintf
+/* 8034F930 0034B590 38 61 00 1C */ addi r3, r1, 0x1c
+/* 8034F934 0034B594 4B E7 72 31 */ bl strlen
+/* 8034F938 0034B598 80 01 06 00 */ lwz r0, 0x600(r1)
+/* 8034F93C 0034B59C 3B 83 00 01 */ addi r28, r3, 1
+/* 8034F940 0034B5A0 20 60 05 78 */ subfic r3, r0, 0x578
+/* 8034F944 0034B5A4 7C 1C 18 00 */ cmpw r28, r3
+/* 8034F948 0034B5A8 40 81 00 08 */ ble lbl_8034F950
+/* 8034F94C 0034B5AC 7C 7C 1B 78 */ mr r28, r3
+lbl_8034F950:
+/* 8034F950 0034B5B0 2C 1C 00 00 */ cmpwi r28, 0
+/* 8034F954 0034B5B4 40 81 00 34 */ ble lbl_8034F988
+/* 8034F958 0034B5B8 38 61 00 88 */ addi r3, r1, 0x88
+/* 8034F95C 0034B5BC 7F 85 E3 78 */ mr r5, r28
+/* 8034F960 0034B5C0 7C 63 02 14 */ add r3, r3, r0
+/* 8034F964 0034B5C4 38 81 00 1C */ addi r4, r1, 0x1c
+/* 8034F968 0034B5C8 4B CB 46 99 */ bl memcpy
+/* 8034F96C 0034B5CC 80 61 06 00 */ lwz r3, 0x600(r1)
+/* 8034F970 0034B5D0 38 01 00 88 */ addi r0, r1, 0x88
+/* 8034F974 0034B5D4 38 80 00 00 */ li r4, 0
+/* 8034F978 0034B5D8 7C 63 E2 14 */ add r3, r3, r28
+/* 8034F97C 0034B5DC 90 61 06 00 */ stw r3, 0x600(r1)
+/* 8034F980 0034B5E0 7C 63 02 14 */ add r3, r3, r0
+/* 8034F984 0034B5E4 98 83 FF FF */ stb r4, -1(r3)
+lbl_8034F988:
+/* 8034F988 0034B5E8 38 00 00 01 */ li r0, 1
+/* 8034F98C 0034B5EC 48 00 00 D8 */ b lbl_8034FA64
+lbl_8034F990:
+/* 8034F990 0034B5F0 38 00 00 28 */ li r0, 0x28
+/* 8034F994 0034B5F4 7F 63 DB 78 */ mr r3, r27
+/* 8034F998 0034B5F8 7C 09 03 A6 */ mtctr r0
+lbl_8034F99C:
+/* 8034F99C 0034B5FC 80 03 01 18 */ lwz r0, 0x118(r3)
+/* 8034F9A0 0034B600 2C 00 00 00 */ cmpwi r0, 0
+/* 8034F9A4 0034B604 40 82 00 B0 */ bne lbl_8034FA54
+/* 8034F9A8 0034B608 57 9A 20 36 */ slwi r26, r28, 4
+/* 8034F9AC 0034B60C 80 7D 00 00 */ lwz r3, 0(r29)
+/* 8034F9B0 0034B610 80 1D 00 04 */ lwz r0, 4(r29)
+/* 8034F9B4 0034B614 7F DB D2 14 */ add r30, r27, r26
+/* 8034F9B8 0034B618 90 7E 01 14 */ stw r3, 0x114(r30)
+/* 8034F9BC 0034B61C 90 1E 01 18 */ stw r0, 0x118(r30)
+/* 8034F9C0 0034B620 4B E7 D3 7D */ bl rand
+/* 8034F9C4 0034B624 7C 7C 1B 78 */ mr r28, r3
+/* 8034F9C8 0034B628 4B E7 D3 75 */ bl rand
+/* 8034F9CC 0034B62C 54 60 80 1E */ slwi r0, r3, 0x10
+/* 8034F9D0 0034B630 7C 03 E3 78 */ or r3, r0, r28
+/* 8034F9D4 0034B634 4B FA 73 A5 */ bl SOHtoNl
+/* 8034F9D8 0034B638 90 7E 01 1C */ stw r3, 0x11c(r30)
+/* 8034F9DC 0034B63C 38 61 00 30 */ addi r3, r1, 0x30
+/* 8034F9E0 0034B640 38 8D 92 EC */ addi r4, r13, lbl_8063E5AC-_SDA_BASE_
+/* 8034F9E4 0034B644 93 FE 01 20 */ stw r31, 0x120(r30)
+/* 8034F9E8 0034B648 80 BE 01 1C */ lwz r5, 0x11c(r30)
+/* 8034F9EC 0034B64C 4C C6 31 82 */ crclr 6
+/* 8034F9F0 0034B650 4B E7 D1 0D */ bl sprintf
+/* 8034F9F4 0034B654 38 61 00 30 */ addi r3, r1, 0x30
+/* 8034F9F8 0034B658 4B E7 71 6D */ bl strlen
+/* 8034F9FC 0034B65C 80 01 06 00 */ lwz r0, 0x600(r1)
+/* 8034FA00 0034B660 3B 83 00 01 */ addi r28, r3, 1
+/* 8034FA04 0034B664 20 60 05 78 */ subfic r3, r0, 0x578
+/* 8034FA08 0034B668 7C 1C 18 00 */ cmpw r28, r3
+/* 8034FA0C 0034B66C 40 81 00 08 */ ble lbl_8034FA14
+/* 8034FA10 0034B670 7C 7C 1B 78 */ mr r28, r3
+lbl_8034FA14:
+/* 8034FA14 0034B674 2C 1C 00 00 */ cmpwi r28, 0
+/* 8034FA18 0034B678 40 81 00 34 */ ble lbl_8034FA4C
+/* 8034FA1C 0034B67C 38 61 00 88 */ addi r3, r1, 0x88
+/* 8034FA20 0034B680 7F 85 E3 78 */ mr r5, r28
+/* 8034FA24 0034B684 7C 63 02 14 */ add r3, r3, r0
+/* 8034FA28 0034B688 38 81 00 30 */ addi r4, r1, 0x30
+/* 8034FA2C 0034B68C 4B CB 45 D5 */ bl memcpy
+/* 8034FA30 0034B690 80 61 06 00 */ lwz r3, 0x600(r1)
+/* 8034FA34 0034B694 38 01 00 88 */ addi r0, r1, 0x88
+/* 8034FA38 0034B698 38 80 00 00 */ li r4, 0
+/* 8034FA3C 0034B69C 7C 63 E2 14 */ add r3, r3, r28
+/* 8034FA40 0034B6A0 90 61 06 00 */ stw r3, 0x600(r1)
+/* 8034FA44 0034B6A4 7C 63 02 14 */ add r3, r3, r0
+/* 8034FA48 0034B6A8 98 83 FF FF */ stb r4, -1(r3)
+lbl_8034FA4C:
+/* 8034FA4C 0034B6AC 38 00 00 01 */ li r0, 1
+/* 8034FA50 0034B6B0 48 00 00 14 */ b lbl_8034FA64
+lbl_8034FA54:
+/* 8034FA54 0034B6B4 38 63 00 10 */ addi r3, r3, 0x10
+/* 8034FA58 0034B6B8 3B 9C 00 01 */ addi r28, r28, 1
+/* 8034FA5C 0034B6BC 42 00 FF 40 */ bdnz lbl_8034F99C
+/* 8034FA60 0034B6C0 38 00 00 00 */ li r0, 0
+lbl_8034FA64:
+/* 8034FA64 0034B6C4 2C 00 00 00 */ cmpwi r0, 0
+/* 8034FA68 0034B6C8 40 82 05 7C */ bne lbl_8034FFE4
+/* 8034FA6C 0034B6CC 48 00 05 94 */ b lbl_80350000
+/* 8034FA70 0034B6D0 88 1B 01 10 */ lbz r0, 0x110(r27)
+/* 8034FA74 0034B6D4 54 00 06 30 */ rlwinm r0, r0, 0, 0x18, 0x18
+/* 8034FA78 0034B6D8 2C 00 00 80 */ cmpwi r0, 0x80
+/* 8034FA7C 0034B6DC 40 82 00 A0 */ bne lbl_8034FB1C
+/* 8034FA80 0034B6E0 2C 1C 00 04 */ cmpwi r28, 4
+/* 8034FA84 0034B6E4 41 80 05 7C */ blt lbl_80350000
+/* 8034FA88 0034B6E8 80 7E 00 00 */ lwz r3, 0(r30)
+/* 8034FA8C 0034B6EC 4B FA 72 E1 */ bl SONtoHl
+/* 8034FA90 0034B6F0 38 00 00 28 */ li r0, 0x28
+/* 8034FA94 0034B6F4 7F 67 DB 78 */ mr r7, r27
+/* 8034FA98 0034B6F8 38 C0 00 00 */ li r6, 0
+/* 8034FA9C 0034B6FC 7C 09 03 A6 */ mtctr r0
+/* 8034FAA0 0034B700 3B DE 00 04 */ addi r30, r30, 4
+/* 8034FAA4 0034B704 3B 9C FF FC */ addi r28, r28, -4
+lbl_8034FAA8:
+/* 8034FAA8 0034B708 80 BD 00 04 */ lwz r5, 4(r29)
+/* 8034FAAC 0034B70C 80 07 01 18 */ lwz r0, 0x118(r7)
+/* 8034FAB0 0034B710 7C 05 00 40 */ cmplw r5, r0
+/* 8034FAB4 0034B714 40 82 00 50 */ bne lbl_8034FB04
+/* 8034FAB8 0034B718 A0 9D 00 02 */ lhz r4, 2(r29)
+/* 8034FABC 0034B71C A0 07 01 16 */ lhz r0, 0x116(r7)
+/* 8034FAC0 0034B720 7C 04 00 40 */ cmplw r4, r0
+/* 8034FAC4 0034B724 40 82 00 40 */ bne lbl_8034FB04
+/* 8034FAC8 0034B728 54 C0 20 36 */ slwi r0, r6, 4
+/* 8034FACC 0034B72C 7C 9B 02 14 */ add r4, r27, r0
+/* 8034FAD0 0034B730 80 04 01 1C */ lwz r0, 0x11c(r4)
+/* 8034FAD4 0034B734 7C 03 00 40 */ cmplw r3, r0
+/* 8034FAD8 0034B738 40 82 00 18 */ bne lbl_8034FAF0
+/* 8034FADC 0034B73C 38 00 00 00 */ li r0, 0
+/* 8034FAE0 0034B740 38 60 00 01 */ li r3, 1
+/* 8034FAE4 0034B744 90 04 01 18 */ stw r0, 0x118(r4)
+/* 8034FAE8 0034B748 B0 04 01 16 */ sth r0, 0x116(r4)
+/* 8034FAEC 0034B74C 48 00 00 28 */ b lbl_8034FB14
+lbl_8034FAF0:
+/* 8034FAF0 0034B750 90 A1 00 10 */ stw r5, 0x10(r1)
+/* 8034FAF4 0034B754 38 61 00 10 */ addi r3, r1, 0x10
+/* 8034FAF8 0034B758 4B FA 72 21 */ bl SOInetNtoA
+/* 8034FAFC 0034B75C 38 60 00 00 */ li r3, 0
+/* 8034FB00 0034B760 48 00 00 14 */ b lbl_8034FB14
+lbl_8034FB04:
+/* 8034FB04 0034B764 38 E7 00 10 */ addi r7, r7, 0x10
+/* 8034FB08 0034B768 38 C6 00 01 */ addi r6, r6, 1
+/* 8034FB0C 0034B76C 42 00 FF 9C */ bdnz lbl_8034FAA8
+/* 8034FB10 0034B770 38 60 00 00 */ li r3, 0
+lbl_8034FB14:
+/* 8034FB14 0034B774 2C 03 00 00 */ cmpwi r3, 0
+/* 8034FB18 0034B778 41 82 04 E8 */ beq lbl_80350000
+lbl_8034FB1C:
+/* 8034FB1C 0034B77C 7F 63 DB 78 */ mr r3, r27
+/* 8034FB20 0034B780 7F C5 F3 78 */ mr r5, r30
+/* 8034FB24 0034B784 7F 86 E3 78 */ mr r6, r28
+/* 8034FB28 0034B788 7F A7 EB 78 */ mr r7, r29
+/* 8034FB2C 0034B78C 38 81 00 88 */ addi r4, r1, 0x88
+/* 8034FB30 0034B790 4B FF F9 E9 */ bl qr_process_query
+/* 8034FB34 0034B794 48 00 04 CC */ b lbl_80350000
+/* 8034FB38 0034B798 38 00 00 00 */ li r0, 0
+/* 8034FB3C 0034B79C 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FB40 0034B7A0 88 7F 00 00 */ lbz r3, 0(r31)
+/* 8034FB44 0034B7A4 88 1B 00 84 */ lbz r0, 0x84(r27)
+/* 8034FB48 0034B7A8 7C 63 07 74 */ extsb r3, r3
+/* 8034FB4C 0034B7AC 7C 00 07 74 */ extsb r0, r0
+/* 8034FB50 0034B7B0 7C 03 00 00 */ cmpw r3, r0
+/* 8034FB54 0034B7B4 40 82 04 AC */ bne lbl_80350000
+/* 8034FB58 0034B7B8 38 00 00 01 */ li r0, 1
+/* 8034FB5C 0034B7BC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FB60 0034B7C0 88 7F 00 01 */ lbz r3, 1(r31)
+/* 8034FB64 0034B7C4 88 1B 00 85 */ lbz r0, 0x85(r27)
+/* 8034FB68 0034B7C8 7C 63 07 74 */ extsb r3, r3
+/* 8034FB6C 0034B7CC 7C 00 07 74 */ extsb r0, r0
+/* 8034FB70 0034B7D0 7C 03 00 00 */ cmpw r3, r0
+/* 8034FB74 0034B7D4 40 82 04 8C */ bne lbl_80350000
+/* 8034FB78 0034B7D8 38 00 00 02 */ li r0, 2
+/* 8034FB7C 0034B7DC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FB80 0034B7E0 88 7F 00 02 */ lbz r3, 2(r31)
+/* 8034FB84 0034B7E4 88 1B 00 86 */ lbz r0, 0x86(r27)
+/* 8034FB88 0034B7E8 7C 63 07 74 */ extsb r3, r3
+/* 8034FB8C 0034B7EC 7C 00 07 74 */ extsb r0, r0
+/* 8034FB90 0034B7F0 7C 03 00 00 */ cmpw r3, r0
+/* 8034FB94 0034B7F4 40 82 04 6C */ bne lbl_80350000
+/* 8034FB98 0034B7F8 38 00 00 03 */ li r0, 3
+/* 8034FB9C 0034B7FC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FBA0 0034B800 88 7F 00 03 */ lbz r3, 3(r31)
+/* 8034FBA4 0034B804 88 1B 00 87 */ lbz r0, 0x87(r27)
+/* 8034FBA8 0034B808 7C 63 07 74 */ extsb r3, r3
+/* 8034FBAC 0034B80C 7C 00 07 74 */ extsb r0, r0
+/* 8034FBB0 0034B810 7C 03 00 00 */ cmpw r3, r0
+/* 8034FBB4 0034B814 40 82 04 4C */ bne lbl_80350000
+/* 8034FBB8 0034B818 38 00 00 04 */ li r0, 4
+/* 8034FBBC 0034B81C 2C 1C 00 0F */ cmpwi r28, 0xf
+/* 8034FBC0 0034B820 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FBC4 0034B824 41 80 00 A8 */ blt lbl_8034FC6C
+/* 8034FBC8 0034B828 7F 5E E2 14 */ add r26, r30, r28
+/* 8034FBCC 0034B82C 38 A1 00 14 */ addi r5, r1, 0x14
+/* 8034FBD0 0034B830 38 7A FF F1 */ addi r3, r26, -15
+/* 8034FBD4 0034B834 38 8D 92 FC */ addi r4, r13, lbl_8063E5BC-_SDA_BASE_
+/* 8034FBD8 0034B838 4C C6 31 82 */ crclr 6
+/* 8034FBDC 0034B83C 4B E7 E6 2D */ bl sscanf
+/* 8034FBE0 0034B840 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8034FBE4 0034B844 98 1B 01 10 */ stb r0, 0x110(r27)
+/* 8034FBE8 0034B848 80 1B 00 A8 */ lwz r0, 0xa8(r27)
+/* 8034FBEC 0034B84C 2C 00 00 00 */ cmpwi r0, 0
+/* 8034FBF0 0034B850 41 82 00 7C */ beq lbl_8034FC6C
+/* 8034FBF4 0034B854 3C 80 80 45 */ lis r4, lbl_8044BA14@ha
+/* 8034FBF8 0034B858 38 7A FF F3 */ addi r3, r26, -13
+/* 8034FBFC 0034B85C 38 84 BA 14 */ addi r4, r4, lbl_8044BA14@l
+/* 8034FC00 0034B860 38 A1 00 08 */ addi r5, r1, 8
+/* 8034FC04 0034B864 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8034FC08 0034B868 4C C6 31 82 */ crclr 6
+/* 8034FC0C 0034B86C 4B E7 E5 FD */ bl sscanf
+/* 8034FC10 0034B870 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 8034FC14 0034B874 80 61 00 08 */ lwz r3, 8(r1)
+/* 8034FC18 0034B878 54 1F 04 3E */ clrlwi r31, r0, 0x10
+/* 8034FC1C 0034B87C 4B FA 71 5D */ bl SOHtoNl
+/* 8034FC20 0034B880 2C 03 00 00 */ cmpwi r3, 0
+/* 8034FC24 0034B884 90 61 00 08 */ stw r3, 8(r1)
+/* 8034FC28 0034B888 41 82 00 44 */ beq lbl_8034FC6C
+/* 8034FC2C 0034B88C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8034FC30 0034B890 41 82 00 3C */ beq lbl_8034FC6C
+/* 8034FC34 0034B894 80 1B 01 04 */ lwz r0, 0x104(r27)
+/* 8034FC38 0034B898 7C 00 18 40 */ cmplw r0, r3
+/* 8034FC3C 0034B89C 40 82 00 10 */ bne lbl_8034FC4C
+/* 8034FC40 0034B8A0 A0 1B 01 08 */ lhz r0, 0x108(r27)
+/* 8034FC44 0034B8A4 7C 00 F8 40 */ cmplw r0, r31
+/* 8034FC48 0034B8A8 41 82 00 24 */ beq lbl_8034FC6C
+lbl_8034FC4C:
+/* 8034FC4C 0034B8AC 90 7B 01 04 */ stw r3, 0x104(r27)
+/* 8034FC50 0034B8B0 7F E4 FB 78 */ mr r4, r31
+/* 8034FC54 0034B8B4 B3 FB 01 08 */ sth r31, 0x108(r27)
+/* 8034FC58 0034B8B8 81 9B 00 A8 */ lwz r12, 0xa8(r27)
+/* 8034FC5C 0034B8BC 80 61 00 08 */ lwz r3, 8(r1)
+/* 8034FC60 0034B8C0 80 BB 01 0C */ lwz r5, 0x10c(r27)
+/* 8034FC64 0034B8C4 7D 89 03 A6 */ mtctr r12
+/* 8034FC68 0034B8C8 4E 80 04 21 */ bctrl
+lbl_8034FC6C:
+/* 8034FC6C 0034B8CC 2C 1C 00 01 */ cmpwi r28, 1
+/* 8034FC70 0034B8D0 41 80 03 74 */ blt lbl_8034FFE4
+/* 8034FC74 0034B8D4 2C 1C 00 41 */ cmpwi r28, 0x41
+/* 8034FC78 0034B8D8 41 81 03 6C */ bgt lbl_8034FFE4
+/* 8034FC7C 0034B8DC 7C 7C F2 14 */ add r3, r28, r30
+/* 8034FC80 0034B8E0 88 03 FF FF */ lbz r0, -1(r3)
+/* 8034FC84 0034B8E4 7C 00 07 75 */ extsb. r0, r0
+/* 8034FC88 0034B8E8 40 82 03 5C */ bne lbl_8034FFE4
+/* 8034FC8C 0034B8EC 7F C4 F3 78 */ mr r4, r30
+/* 8034FC90 0034B8F0 38 61 00 44 */ addi r3, r1, 0x44
+/* 8034FC94 0034B8F4 4B E7 E6 3D */ bl strcpy
+/* 8034FC98 0034B8F8 38 7B 00 44 */ addi r3, r27, 0x44
+/* 8034FC9C 0034B8FC 4B E7 6E C9 */ bl strlen
+/* 8034FCA0 0034B900 7C 64 1B 78 */ mr r4, r3
+/* 8034FCA4 0034B904 38 7B 00 44 */ addi r3, r27, 0x44
+/* 8034FCA8 0034B908 38 A1 00 44 */ addi r5, r1, 0x44
+/* 8034FCAC 0034B90C 38 DC FF FF */ addi r6, r28, -1
+/* 8034FCB0 0034B910 4B FF EE 19 */ bl gs_encrypt
+/* 8034FCB4 0034B914 80 01 06 00 */ lwz r0, 0x600(r1)
+/* 8034FCB8 0034B918 38 A1 00 88 */ addi r5, r1, 0x88
+/* 8034FCBC 0034B91C 38 61 00 44 */ addi r3, r1, 0x44
+/* 8034FCC0 0034B920 38 9C FF FF */ addi r4, r28, -1
+/* 8034FCC4 0034B924 7C A5 02 14 */ add r5, r5, r0
+/* 8034FCC8 0034B928 4B FF EC 69 */ bl gs_encode
+/* 8034FCCC 0034B92C 80 01 06 00 */ lwz r0, 0x600(r1)
+/* 8034FCD0 0034B930 38 61 00 88 */ addi r3, r1, 0x88
+/* 8034FCD4 0034B934 7C 63 02 14 */ add r3, r3, r0
+/* 8034FCD8 0034B938 4B E7 6E 8D */ bl strlen
+/* 8034FCDC 0034B93C 80 01 06 00 */ lwz r0, 0x600(r1)
+/* 8034FCE0 0034B940 7C 63 02 14 */ add r3, r3, r0
+/* 8034FCE4 0034B944 38 03 00 01 */ addi r0, r3, 1
+/* 8034FCE8 0034B948 90 01 06 00 */ stw r0, 0x600(r1)
+/* 8034FCEC 0034B94C 48 00 02 F8 */ b lbl_8034FFE4
+/* 8034FCF0 0034B950 2C 1C 00 20 */ cmpwi r28, 0x20
+/* 8034FCF4 0034B954 40 81 00 08 */ ble lbl_8034FCFC
+/* 8034FCF8 0034B958 3B 80 00 20 */ li r28, 0x20
+lbl_8034FCFC:
+/* 8034FCFC 0034B95C 38 80 00 05 */ li r4, 5
+/* 8034FD00 0034B960 80 01 06 00 */ lwz r0, 0x600(r1)
+/* 8034FD04 0034B964 38 61 00 88 */ addi r3, r1, 0x88
+/* 8034FD08 0034B968 98 81 00 88 */ stb r4, 0x88(r1)
+/* 8034FD0C 0034B96C 7F C4 F3 78 */ mr r4, r30
+/* 8034FD10 0034B970 7F 85 E3 78 */ mr r5, r28
+/* 8034FD14 0034B974 7C 63 02 14 */ add r3, r3, r0
+/* 8034FD18 0034B978 4B CB 42 E9 */ bl memcpy
+/* 8034FD1C 0034B97C 80 01 06 00 */ lwz r0, 0x600(r1)
+/* 8034FD20 0034B980 7C 00 E2 14 */ add r0, r0, r28
+/* 8034FD24 0034B984 90 01 06 00 */ stw r0, 0x600(r1)
+/* 8034FD28 0034B988 48 00 02 BC */ b lbl_8034FFE4
+/* 8034FD2C 0034B98C 80 1B 00 B8 */ lwz r0, 0xb8(r27)
+/* 8034FD30 0034B990 2C 00 FF FF */ cmpwi r0, -1
+/* 8034FD34 0034B994 41 82 02 CC */ beq lbl_80350000
+/* 8034FD38 0034B998 38 00 00 00 */ li r0, 0
+/* 8034FD3C 0034B99C 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FD40 0034B9A0 88 7F 00 00 */ lbz r3, 0(r31)
+/* 8034FD44 0034B9A4 88 1B 00 84 */ lbz r0, 0x84(r27)
+/* 8034FD48 0034B9A8 7C 63 07 74 */ extsb r3, r3
+/* 8034FD4C 0034B9AC 7C 00 07 74 */ extsb r0, r0
+/* 8034FD50 0034B9B0 7C 03 00 00 */ cmpw r3, r0
+/* 8034FD54 0034B9B4 40 82 02 AC */ bne lbl_80350000
+/* 8034FD58 0034B9B8 38 00 00 01 */ li r0, 1
+/* 8034FD5C 0034B9BC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FD60 0034B9C0 88 7F 00 01 */ lbz r3, 1(r31)
+/* 8034FD64 0034B9C4 88 1B 00 85 */ lbz r0, 0x85(r27)
+/* 8034FD68 0034B9C8 7C 63 07 74 */ extsb r3, r3
+/* 8034FD6C 0034B9CC 7C 00 07 74 */ extsb r0, r0
+/* 8034FD70 0034B9D0 7C 03 00 00 */ cmpw r3, r0
+/* 8034FD74 0034B9D4 40 82 02 8C */ bne lbl_80350000
+/* 8034FD78 0034B9D8 38 00 00 02 */ li r0, 2
+/* 8034FD7C 0034B9DC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FD80 0034B9E0 88 7F 00 02 */ lbz r3, 2(r31)
+/* 8034FD84 0034B9E4 88 1B 00 86 */ lbz r0, 0x86(r27)
+/* 8034FD88 0034B9E8 7C 63 07 74 */ extsb r3, r3
+/* 8034FD8C 0034B9EC 7C 00 07 74 */ extsb r0, r0
+/* 8034FD90 0034B9F0 7C 03 00 00 */ cmpw r3, r0
+/* 8034FD94 0034B9F4 40 82 02 6C */ bne lbl_80350000
+/* 8034FD98 0034B9F8 38 00 00 03 */ li r0, 3
+/* 8034FD9C 0034B9FC 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FDA0 0034BA00 88 7F 00 03 */ lbz r3, 3(r31)
+/* 8034FDA4 0034BA04 88 1B 00 87 */ lbz r0, 0x87(r27)
+/* 8034FDA8 0034BA08 7C 63 07 74 */ extsb r3, r3
+/* 8034FDAC 0034BA0C 7C 00 07 74 */ extsb r0, r0
+/* 8034FDB0 0034BA10 7C 03 00 00 */ cmpw r3, r0
+/* 8034FDB4 0034BA14 40 82 02 4C */ bne lbl_80350000
+/* 8034FDB8 0034BA18 38 00 00 04 */ li r0, 4
+/* 8034FDBC 0034BA1C 2C 1C 00 02 */ cmpwi r28, 2
+/* 8034FDC0 0034BA20 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FDC4 0034BA24 41 80 02 3C */ blt lbl_80350000
+/* 8034FDC8 0034BA28 38 00 FF FF */ li r0, -1
+/* 8034FDCC 0034BA2C 38 9E 00 01 */ addi r4, r30, 1
+/* 8034FDD0 0034BA30 90 1B 00 B8 */ stw r0, 0xb8(r27)
+/* 8034FDD4 0034BA34 88 7E 00 00 */ lbz r3, 0(r30)
+/* 8034FDD8 0034BA38 81 9B 00 9C */ lwz r12, 0x9c(r27)
+/* 8034FDDC 0034BA3C 7C 63 07 74 */ extsb r3, r3
+/* 8034FDE0 0034BA40 80 BB 01 0C */ lwz r5, 0x10c(r27)
+/* 8034FDE4 0034BA44 7D 89 03 A6 */ mtctr r12
+/* 8034FDE8 0034BA48 4E 80 04 21 */ bctrl
+/* 8034FDEC 0034BA4C 48 00 02 14 */ b lbl_80350000
+/* 8034FDF0 0034BA50 38 00 00 00 */ li r0, 0
+/* 8034FDF4 0034BA54 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FDF8 0034BA58 88 7F 00 00 */ lbz r3, 0(r31)
+/* 8034FDFC 0034BA5C 88 1B 00 84 */ lbz r0, 0x84(r27)
+/* 8034FE00 0034BA60 7C 63 07 74 */ extsb r3, r3
+/* 8034FE04 0034BA64 7C 00 07 74 */ extsb r0, r0
+/* 8034FE08 0034BA68 7C 03 00 00 */ cmpw r3, r0
+/* 8034FE0C 0034BA6C 40 82 01 F4 */ bne lbl_80350000
+/* 8034FE10 0034BA70 38 00 00 01 */ li r0, 1
+/* 8034FE14 0034BA74 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FE18 0034BA78 88 7F 00 01 */ lbz r3, 1(r31)
+/* 8034FE1C 0034BA7C 88 1B 00 85 */ lbz r0, 0x85(r27)
+/* 8034FE20 0034BA80 7C 63 07 74 */ extsb r3, r3
+/* 8034FE24 0034BA84 7C 00 07 74 */ extsb r0, r0
+/* 8034FE28 0034BA88 7C 03 00 00 */ cmpw r3, r0
+/* 8034FE2C 0034BA8C 40 82 01 D4 */ bne lbl_80350000
+/* 8034FE30 0034BA90 38 00 00 02 */ li r0, 2
+/* 8034FE34 0034BA94 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FE38 0034BA98 88 7F 00 02 */ lbz r3, 2(r31)
+/* 8034FE3C 0034BA9C 88 1B 00 86 */ lbz r0, 0x86(r27)
+/* 8034FE40 0034BAA0 7C 63 07 74 */ extsb r3, r3
+/* 8034FE44 0034BAA4 7C 00 07 74 */ extsb r0, r0
+/* 8034FE48 0034BAA8 7C 03 00 00 */ cmpw r3, r0
+/* 8034FE4C 0034BAAC 40 82 01 B4 */ bne lbl_80350000
+/* 8034FE50 0034BAB0 38 00 00 03 */ li r0, 3
+/* 8034FE54 0034BAB4 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FE58 0034BAB8 88 7F 00 03 */ lbz r3, 3(r31)
+/* 8034FE5C 0034BABC 88 1B 00 87 */ lbz r0, 0x87(r27)
+/* 8034FE60 0034BAC0 7C 63 07 74 */ extsb r3, r3
+/* 8034FE64 0034BAC4 7C 00 07 74 */ extsb r0, r0
+/* 8034FE68 0034BAC8 7C 03 00 00 */ cmpw r3, r0
+/* 8034FE6C 0034BACC 40 82 01 94 */ bne lbl_80350000
+/* 8034FE70 0034BAD0 38 00 00 04 */ li r0, 4
+/* 8034FE74 0034BAD4 2C 1C 00 04 */ cmpwi r28, 4
+/* 8034FE78 0034BAD8 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8034FE7C 0034BADC 41 80 01 84 */ blt lbl_80350000
+/* 8034FE80 0034BAE0 38 00 00 07 */ li r0, 7
+/* 8034FE84 0034BAE4 38 61 00 88 */ addi r3, r1, 0x88
+/* 8034FE88 0034BAE8 98 01 00 88 */ stb r0, 0x88(r1)
+/* 8034FE8C 0034BAEC 7C 63 2A 14 */ add r3, r3, r5
+/* 8034FE90 0034BAF0 7F C4 F3 78 */ mr r4, r30
+/* 8034FE94 0034BAF4 38 A0 00 04 */ li r5, 4
+/* 8034FE98 0034BAF8 4B CB 41 69 */ bl memcpy
+/* 8034FE9C 0034BAFC 80 C1 06 00 */ lwz r6, 0x600(r1)
+/* 8034FEA0 0034BB00 7F C4 F3 78 */ mr r4, r30
+/* 8034FEA4 0034BB04 38 61 00 18 */ addi r3, r1, 0x18
+/* 8034FEA8 0034BB08 38 A0 00 04 */ li r5, 4
+/* 8034FEAC 0034BB0C 38 06 00 04 */ addi r0, r6, 4
+/* 8034FEB0 0034BB10 90 01 06 00 */ stw r0, 0x600(r1)
+/* 8034FEB4 0034BB14 4B CB 41 4D */ bl memcpy
+/* 8034FEB8 0034BB18 80 C1 00 18 */ lwz r6, 0x18(r1)
+/* 8034FEBC 0034BB1C 80 1B 00 D8 */ lwz r0, 0xd8(r27)
+/* 8034FEC0 0034BB20 7C 06 00 00 */ cmpw r6, r0
+/* 8034FEC4 0034BB24 40 82 00 0C */ bne lbl_8034FED0
+/* 8034FEC8 0034BB28 38 A0 00 01 */ li r5, 1
+/* 8034FECC 0034BB2C 48 00 00 F4 */ b lbl_8034FFC0
+lbl_8034FED0:
+/* 8034FED0 0034BB30 80 1B 00 DC */ lwz r0, 0xdc(r27)
+/* 8034FED4 0034BB34 7C 06 00 00 */ cmpw r6, r0
+/* 8034FED8 0034BB38 40 82 00 0C */ bne lbl_8034FEE4
+/* 8034FEDC 0034BB3C 38 A0 00 01 */ li r5, 1
+/* 8034FEE0 0034BB40 48 00 00 E0 */ b lbl_8034FFC0
+lbl_8034FEE4:
+/* 8034FEE4 0034BB44 80 1B 00 E0 */ lwz r0, 0xe0(r27)
+/* 8034FEE8 0034BB48 7C 06 00 00 */ cmpw r6, r0
+/* 8034FEEC 0034BB4C 40 82 00 0C */ bne lbl_8034FEF8
+/* 8034FEF0 0034BB50 38 A0 00 01 */ li r5, 1
+/* 8034FEF4 0034BB54 48 00 00 CC */ b lbl_8034FFC0
+lbl_8034FEF8:
+/* 8034FEF8 0034BB58 80 1B 00 E4 */ lwz r0, 0xe4(r27)
+/* 8034FEFC 0034BB5C 7C 06 00 00 */ cmpw r6, r0
+/* 8034FF00 0034BB60 40 82 00 0C */ bne lbl_8034FF0C
+/* 8034FF04 0034BB64 38 A0 00 01 */ li r5, 1
+/* 8034FF08 0034BB68 48 00 00 B8 */ b lbl_8034FFC0
+lbl_8034FF0C:
+/* 8034FF0C 0034BB6C 80 1B 00 E8 */ lwz r0, 0xe8(r27)
+/* 8034FF10 0034BB70 7C 06 00 00 */ cmpw r6, r0
+/* 8034FF14 0034BB74 40 82 00 0C */ bne lbl_8034FF20
+/* 8034FF18 0034BB78 38 A0 00 01 */ li r5, 1
+/* 8034FF1C 0034BB7C 48 00 00 A4 */ b lbl_8034FFC0
+lbl_8034FF20:
+/* 8034FF20 0034BB80 80 1B 00 EC */ lwz r0, 0xec(r27)
+/* 8034FF24 0034BB84 7C 06 00 00 */ cmpw r6, r0
+/* 8034FF28 0034BB88 40 82 00 0C */ bne lbl_8034FF34
+/* 8034FF2C 0034BB8C 38 A0 00 01 */ li r5, 1
+/* 8034FF30 0034BB90 48 00 00 90 */ b lbl_8034FFC0
+lbl_8034FF34:
+/* 8034FF34 0034BB94 80 1B 00 F0 */ lwz r0, 0xf0(r27)
+/* 8034FF38 0034BB98 7C 06 00 00 */ cmpw r6, r0
+/* 8034FF3C 0034BB9C 40 82 00 0C */ bne lbl_8034FF48
+/* 8034FF40 0034BBA0 38 A0 00 01 */ li r5, 1
+/* 8034FF44 0034BBA4 48 00 00 7C */ b lbl_8034FFC0
+lbl_8034FF48:
+/* 8034FF48 0034BBA8 80 1B 00 F4 */ lwz r0, 0xf4(r27)
+/* 8034FF4C 0034BBAC 7C 06 00 00 */ cmpw r6, r0
+/* 8034FF50 0034BBB0 40 82 00 0C */ bne lbl_8034FF5C
+/* 8034FF54 0034BBB4 38 A0 00 01 */ li r5, 1
+/* 8034FF58 0034BBB8 48 00 00 68 */ b lbl_8034FFC0
+lbl_8034FF5C:
+/* 8034FF5C 0034BBBC 80 1B 00 F8 */ lwz r0, 0xf8(r27)
+/* 8034FF60 0034BBC0 7C 06 00 00 */ cmpw r6, r0
+/* 8034FF64 0034BBC4 40 82 00 0C */ bne lbl_8034FF70
+/* 8034FF68 0034BBC8 38 A0 00 01 */ li r5, 1
+/* 8034FF6C 0034BBCC 48 00 00 54 */ b lbl_8034FFC0
+lbl_8034FF70:
+/* 8034FF70 0034BBD0 80 1B 00 FC */ lwz r0, 0xfc(r27)
+/* 8034FF74 0034BBD4 7C 06 00 00 */ cmpw r6, r0
+/* 8034FF78 0034BBD8 40 82 00 0C */ bne lbl_8034FF84
+/* 8034FF7C 0034BBDC 38 A0 00 01 */ li r5, 1
+/* 8034FF80 0034BBE0 48 00 00 40 */ b lbl_8034FFC0
+lbl_8034FF84:
+/* 8034FF84 0034BBE4 80 9B 01 00 */ lwz r4, 0x100(r27)
+/* 8034FF88 0034BBE8 3C 60 66 66 */ lis r3, 0x66666667@ha
+/* 8034FF8C 0034BBEC 38 03 66 67 */ addi r0, r3, 0x66666667@l
+/* 8034FF90 0034BBF0 38 A0 00 00 */ li r5, 0
+/* 8034FF94 0034BBF4 38 84 00 01 */ addi r4, r4, 1
+/* 8034FF98 0034BBF8 7C 00 20 96 */ mulhw r0, r0, r4
+/* 8034FF9C 0034BBFC 7C 00 16 70 */ srawi r0, r0, 2
+/* 8034FFA0 0034BC00 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 8034FFA4 0034BC04 7C 00 1A 14 */ add r0, r0, r3
+/* 8034FFA8 0034BC08 1C 00 00 0A */ mulli r0, r0, 0xa
+/* 8034FFAC 0034BC0C 7C 60 20 50 */ subf r3, r0, r4
+/* 8034FFB0 0034BC10 54 60 10 3A */ slwi r0, r3, 2
+/* 8034FFB4 0034BC14 90 7B 01 00 */ stw r3, 0x100(r27)
+/* 8034FFB8 0034BC18 7C 7B 02 14 */ add r3, r27, r0
+/* 8034FFBC 0034BC1C 90 C3 00 D8 */ stw r6, 0xd8(r3)
+lbl_8034FFC0:
+/* 8034FFC0 0034BC20 2C 05 00 00 */ cmpwi r5, 0
+/* 8034FFC4 0034BC24 40 82 00 20 */ bne lbl_8034FFE4
+/* 8034FFC8 0034BC28 7F 63 DB 78 */ mr r3, r27
+/* 8034FFCC 0034BC2C 38 9E 00 04 */ addi r4, r30, 4
+/* 8034FFD0 0034BC30 38 BC FF FC */ addi r5, r28, -4
+/* 8034FFD4 0034BC34 4B FF F7 05 */ bl qr_process_client_message
+/* 8034FFD8 0034BC38 48 00 00 0C */ b lbl_8034FFE4
+/* 8034FFDC 0034BC3C 48 00 00 24 */ b lbl_80350000
+/* 8034FFE0 0034BC40 48 00 00 20 */ b lbl_80350000
+lbl_8034FFE4:
+/* 8034FFE4 0034BC44 80 7B 00 00 */ lwz r3, 0(r27)
+/* 8034FFE8 0034BC48 7F A7 EB 78 */ mr r7, r29
+/* 8034FFEC 0034BC4C 80 A1 06 00 */ lwz r5, 0x600(r1)
+/* 8034FFF0 0034BC50 38 81 00 88 */ addi r4, r1, 0x88
+/* 8034FFF4 0034BC54 38 C0 00 00 */ li r6, 0
+/* 8034FFF8 0034BC58 39 00 00 08 */ li r8, 8
+/* 8034FFFC 0034BC5C 4B FE 7E 99 */ bl sendto
+lbl_80350000:
+/* 80350000 0034BC60 39 61 06 20 */ addi r11, r1, 0x620
+/* 80350004 0034BC64 4B E7 71 6D */ bl _restgpr_26
+/* 80350008 0034BC68 80 01 06 24 */ lwz r0, 0x624(r1)
+/* 8035000C 0034BC6C 7C 08 03 A6 */ mtlr r0
+/* 80350010 0034BC70 38 21 06 20 */ addi r1, r1, 0x620
+/* 80350014 0034BC74 4E 80 00 20 */ blr
+
+.global send_keepalive
+send_keepalive:
+/* 80350018 0034BC78 94 21 FA 70 */ stwu r1, -0x590(r1)
+/* 8035001C 0034BC7C 7C 08 02 A6 */ mflr r0
+/* 80350020 0034BC80 38 80 00 00 */ li r4, 0
+/* 80350024 0034BC84 38 A0 00 04 */ li r5, 4
+/* 80350028 0034BC88 90 01 05 94 */ stw r0, 0x594(r1)
+/* 8035002C 0034BC8C 38 00 00 08 */ li r0, 8
+/* 80350030 0034BC90 93 E1 05 8C */ stw r31, 0x58c(r1)
+/* 80350034 0034BC94 7C 7F 1B 78 */ mr r31, r3
+/* 80350038 0034BC98 38 61 00 09 */ addi r3, r1, 9
+/* 8035003C 0034BC9C 90 81 05 80 */ stw r4, 0x580(r1)
+/* 80350040 0034BCA0 38 9F 00 84 */ addi r4, r31, 0x84
+/* 80350044 0034BCA4 98 01 00 08 */ stb r0, 8(r1)
+/* 80350048 0034BCA8 4B CB 3F B9 */ bl memcpy
+/* 8035004C 0034BCAC 38 00 00 05 */ li r0, 5
+/* 80350050 0034BCB0 38 81 00 08 */ addi r4, r1, 8
+/* 80350054 0034BCB4 90 01 05 80 */ stw r0, 0x580(r1)
+/* 80350058 0034BCB8 38 FF 00 CC */ addi r7, r31, 0xcc
+/* 8035005C 0034BCBC 38 A0 00 05 */ li r5, 5
+/* 80350060 0034BCC0 38 C0 00 00 */ li r6, 0
+/* 80350064 0034BCC4 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80350068 0034BCC8 39 00 00 08 */ li r8, 8
+/* 8035006C 0034BCCC 4B FE 7E 29 */ bl sendto
+/* 80350070 0034BCD0 4B FE 8F 69 */ bl current_time
+/* 80350074 0034BCD4 90 7F 00 B0 */ stw r3, 0xb0(r31)
+/* 80350078 0034BCD8 83 E1 05 8C */ lwz r31, 0x58c(r1)
+/* 8035007C 0034BCDC 80 01 05 94 */ lwz r0, 0x594(r1)
+/* 80350080 0034BCE0 7C 08 03 A6 */ mtlr r0
+/* 80350084 0034BCE4 38 21 05 90 */ addi r1, r1, 0x590
+/* 80350088 0034BCE8 4E 80 00 20 */ blr
+
+.global send_heartbeat
+send_heartbeat:
+/* 8035008C 0034BCEC 94 21 F4 70 */ stwu r1, -0xb90(r1)
+/* 80350090 0034BCF0 7C 08 02 A6 */ mflr r0
+/* 80350094 0034BCF4 90 01 0B 94 */ stw r0, 0xb94(r1)
+/* 80350098 0034BCF8 39 61 0B 90 */ addi r11, r1, 0xb90
+/* 8035009C 0034BCFC 4B E7 70 7D */ bl _savegpr_23
+/* 803500A0 0034BD00 3B 20 00 00 */ li r25, 0
+/* 803500A4 0034BD04 38 00 00 03 */ li r0, 3
+/* 803500A8 0034BD08 7C 7B 1B 78 */ mr r27, r3
+/* 803500AC 0034BD0C 3F E0 80 45 */ lis r31, lbl_8044B608@ha
+/* 803500B0 0034BD10 7C 9C 23 78 */ mr r28, r4
+/* 803500B4 0034BD14 93 21 0B 64 */ stw r25, 0xb64(r1)
+/* 803500B8 0034BD18 3B FF B6 08 */ addi r31, r31, lbl_8044B608@l
+/* 803500BC 0034BD1C 38 61 05 ED */ addi r3, r1, 0x5ed
+/* 803500C0 0034BD20 98 01 05 EC */ stb r0, 0x5ec(r1)
+/* 803500C4 0034BD24 38 9B 00 84 */ addi r4, r27, 0x84
+/* 803500C8 0034BD28 38 A0 00 04 */ li r5, 4
+/* 803500CC 0034BD2C 4B CB 3F 35 */ bl memcpy
+/* 803500D0 0034BD30 38 00 00 05 */ li r0, 5
+/* 803500D4 0034BD34 3F C0 80 62 */ lis r30, lbl_80620C90@ha
+/* 803500D8 0034BD38 90 01 0B 64 */ stw r0, 0xb64(r1)
+/* 803500DC 0034BD3C 3B DE 0C 90 */ addi r30, r30, lbl_80620C90@l
+/* 803500E0 0034BD40 3B 41 05 EC */ addi r26, r1, 0x5ec
+/* 803500E4 0034BD44 3B A0 00 00 */ li r29, 0
+/* 803500E8 0034BD48 48 00 00 D0 */ b lbl_803501B8
+lbl_803500EC:
+/* 803500EC 0034BD4C 7F A5 EB 78 */ mr r5, r29
+/* 803500F0 0034BD50 38 61 00 5C */ addi r3, r1, 0x5c
+/* 803500F4 0034BD54 38 9F 04 40 */ addi r4, r31, 0x440
+/* 803500F8 0034BD58 4C C6 31 82 */ crclr 6
+/* 803500FC 0034BD5C 4B E7 CA 01 */ bl sprintf
+/* 80350100 0034BD60 38 61 00 5C */ addi r3, r1, 0x5c
+/* 80350104 0034BD64 4B E7 6A 61 */ bl strlen
+/* 80350108 0034BD68 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 8035010C 0034BD6C 3B 03 00 01 */ addi r24, r3, 1
+/* 80350110 0034BD70 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350114 0034BD74 7C 18 18 00 */ cmpw r24, r3
+/* 80350118 0034BD78 40 81 00 08 */ ble lbl_80350120
+/* 8035011C 0034BD7C 7C 78 1B 78 */ mr r24, r3
+lbl_80350120:
+/* 80350120 0034BD80 2C 18 00 00 */ cmpwi r24, 0
+/* 80350124 0034BD84 40 81 00 2C */ ble lbl_80350150
+/* 80350128 0034BD88 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 8035012C 0034BD8C 7F 05 C3 78 */ mr r5, r24
+/* 80350130 0034BD90 7C 63 02 14 */ add r3, r3, r0
+/* 80350134 0034BD94 38 81 00 5C */ addi r4, r1, 0x5c
+/* 80350138 0034BD98 4B CB 3E C9 */ bl memcpy
+/* 8035013C 0034BD9C 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 80350140 0034BDA0 7C 00 C2 14 */ add r0, r0, r24
+/* 80350144 0034BDA4 90 01 0B 64 */ stw r0, 0xb64(r1)
+/* 80350148 0034BDA8 7C 7A 02 14 */ add r3, r26, r0
+/* 8035014C 0034BDAC 9B 23 FF FF */ stb r25, -1(r3)
+lbl_80350150:
+/* 80350150 0034BDB0 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80350154 0034BDB4 38 61 00 08 */ addi r3, r1, 8
+/* 80350158 0034BDB8 90 01 00 08 */ stw r0, 8(r1)
+/* 8035015C 0034BDBC 4B FA 6B BD */ bl SOInetNtoA
+/* 80350160 0034BDC0 7C 78 1B 78 */ mr r24, r3
+/* 80350164 0034BDC4 4B E7 6A 01 */ bl strlen
+/* 80350168 0034BDC8 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 8035016C 0034BDCC 3A E3 00 01 */ addi r23, r3, 1
+/* 80350170 0034BDD0 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350174 0034BDD4 7C 17 18 00 */ cmpw r23, r3
+/* 80350178 0034BDD8 40 81 00 08 */ ble lbl_80350180
+/* 8035017C 0034BDDC 7C 77 1B 78 */ mr r23, r3
+lbl_80350180:
+/* 80350180 0034BDE0 2C 17 00 00 */ cmpwi r23, 0
+/* 80350184 0034BDE4 40 81 00 2C */ ble lbl_803501B0
+/* 80350188 0034BDE8 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 8035018C 0034BDEC 7F 04 C3 78 */ mr r4, r24
+/* 80350190 0034BDF0 7E E5 BB 78 */ mr r5, r23
+/* 80350194 0034BDF4 7C 63 02 14 */ add r3, r3, r0
+/* 80350198 0034BDF8 4B CB 3E 69 */ bl memcpy
+/* 8035019C 0034BDFC 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 803501A0 0034BE00 7C 00 BA 14 */ add r0, r0, r23
+/* 803501A4 0034BE04 90 01 0B 64 */ stw r0, 0xb64(r1)
+/* 803501A8 0034BE08 7C 7A 02 14 */ add r3, r26, r0
+/* 803501AC 0034BE0C 9B 23 FF FF */ stb r25, -1(r3)
+lbl_803501B0:
+/* 803501B0 0034BE10 3B DE 00 04 */ addi r30, r30, 4
+/* 803501B4 0034BE14 3B BD 00 01 */ addi r29, r29, 1
+lbl_803501B8:
+/* 803501B8 0034BE18 80 0D B0 B8 */ lwz r0, lbl_80640378-_SDA_BASE_(r13)
+/* 803501BC 0034BE1C 7C 1D 00 00 */ cmpw r29, r0
+/* 803501C0 0034BE20 41 80 FF 2C */ blt lbl_803500EC
+/* 803501C4 0034BE24 3A FF 04 4C */ addi r23, r31, 0x44c
+/* 803501C8 0034BE28 7E E3 BB 78 */ mr r3, r23
+/* 803501CC 0034BE2C 4B E7 69 99 */ bl strlen
+/* 803501D0 0034BE30 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 803501D4 0034BE34 3B 03 00 01 */ addi r24, r3, 1
+/* 803501D8 0034BE38 20 60 05 78 */ subfic r3, r0, 0x578
+/* 803501DC 0034BE3C 7C 18 18 00 */ cmpw r24, r3
+/* 803501E0 0034BE40 40 81 00 08 */ ble lbl_803501E8
+/* 803501E4 0034BE44 7C 78 1B 78 */ mr r24, r3
+lbl_803501E8:
+/* 803501E8 0034BE48 2C 18 00 00 */ cmpwi r24, 0
+/* 803501EC 0034BE4C 40 81 00 34 */ ble lbl_80350220
+/* 803501F0 0034BE50 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 803501F4 0034BE54 7E E4 BB 78 */ mr r4, r23
+/* 803501F8 0034BE58 7F 05 C3 78 */ mr r5, r24
+/* 803501FC 0034BE5C 7C 63 02 14 */ add r3, r3, r0
+/* 80350200 0034BE60 4B CB 3E 01 */ bl memcpy
+/* 80350204 0034BE64 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 80350208 0034BE68 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 8035020C 0034BE6C 38 80 00 00 */ li r4, 0
+/* 80350210 0034BE70 7C 63 C2 14 */ add r3, r3, r24
+/* 80350214 0034BE74 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 80350218 0034BE78 7C 63 02 14 */ add r3, r3, r0
+/* 8035021C 0034BE7C 98 83 FF FF */ stb r4, -1(r3)
+lbl_80350220:
+/* 80350220 0034BE80 80 BB 00 C0 */ lwz r5, 0xc0(r27)
+/* 80350224 0034BE84 38 61 00 48 */ addi r3, r1, 0x48
+/* 80350228 0034BE88 38 8D 92 EC */ addi r4, r13, lbl_8063E5AC-_SDA_BASE_
+/* 8035022C 0034BE8C 4C C6 31 82 */ crclr 6
+/* 80350230 0034BE90 4B E7 C8 CD */ bl sprintf
+/* 80350234 0034BE94 38 61 00 48 */ addi r3, r1, 0x48
+/* 80350238 0034BE98 4B E7 69 2D */ bl strlen
+/* 8035023C 0034BE9C 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 80350240 0034BEA0 3A E3 00 01 */ addi r23, r3, 1
+/* 80350244 0034BEA4 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350248 0034BEA8 7C 17 18 00 */ cmpw r23, r3
+/* 8035024C 0034BEAC 40 81 00 08 */ ble lbl_80350254
+/* 80350250 0034BEB0 7C 77 1B 78 */ mr r23, r3
+lbl_80350254:
+/* 80350254 0034BEB4 2C 17 00 00 */ cmpwi r23, 0
+/* 80350258 0034BEB8 40 81 00 34 */ ble lbl_8035028C
+/* 8035025C 0034BEBC 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 80350260 0034BEC0 7E E5 BB 78 */ mr r5, r23
+/* 80350264 0034BEC4 7C 63 02 14 */ add r3, r3, r0
+/* 80350268 0034BEC8 38 81 00 48 */ addi r4, r1, 0x48
+/* 8035026C 0034BECC 4B CB 3D 95 */ bl memcpy
+/* 80350270 0034BED0 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 80350274 0034BED4 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 80350278 0034BED8 38 80 00 00 */ li r4, 0
+/* 8035027C 0034BEDC 7C 63 BA 14 */ add r3, r3, r23
+/* 80350280 0034BEE0 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 80350284 0034BEE4 7C 63 02 14 */ add r3, r3, r0
+/* 80350288 0034BEE8 98 83 FF FF */ stb r4, -1(r3)
+lbl_8035028C:
+/* 8035028C 0034BEEC 3A ED 93 04 */ addi r23, r13, lbl_8063E5C4-_SDA_BASE_
+/* 80350290 0034BEF0 7E E3 BB 78 */ mr r3, r23
+/* 80350294 0034BEF4 4B E7 68 D1 */ bl strlen
+/* 80350298 0034BEF8 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 8035029C 0034BEFC 3B 03 00 01 */ addi r24, r3, 1
+/* 803502A0 0034BF00 20 60 05 78 */ subfic r3, r0, 0x578
+/* 803502A4 0034BF04 7C 18 18 00 */ cmpw r24, r3
+/* 803502A8 0034BF08 40 81 00 08 */ ble lbl_803502B0
+/* 803502AC 0034BF0C 7C 78 1B 78 */ mr r24, r3
+lbl_803502B0:
+/* 803502B0 0034BF10 2C 18 00 00 */ cmpwi r24, 0
+/* 803502B4 0034BF14 40 81 00 34 */ ble lbl_803502E8
+/* 803502B8 0034BF18 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 803502BC 0034BF1C 7E E4 BB 78 */ mr r4, r23
+/* 803502C0 0034BF20 7F 05 C3 78 */ mr r5, r24
+/* 803502C4 0034BF24 7C 63 02 14 */ add r3, r3, r0
+/* 803502C8 0034BF28 4B CB 3D 39 */ bl memcpy
+/* 803502CC 0034BF2C 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 803502D0 0034BF30 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 803502D4 0034BF34 38 80 00 00 */ li r4, 0
+/* 803502D8 0034BF38 7C 63 C2 14 */ add r3, r3, r24
+/* 803502DC 0034BF3C 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 803502E0 0034BF40 7C 63 02 14 */ add r3, r3, r0
+/* 803502E4 0034BF44 98 83 FF FF */ stb r4, -1(r3)
+lbl_803502E8:
+/* 803502E8 0034BF48 80 1B 00 C8 */ lwz r0, 0xc8(r27)
+/* 803502EC 0034BF4C 3B 0D 93 10 */ addi r24, r13, lbl_8063E5D0-_SDA_BASE_
+/* 803502F0 0034BF50 2C 00 00 00 */ cmpwi r0, 0
+/* 803502F4 0034BF54 41 82 00 08 */ beq lbl_803502FC
+/* 803502F8 0034BF58 3B 0D 93 0C */ addi r24, r13, lbl_8063E5CC-_SDA_BASE_
+lbl_803502FC:
+/* 803502FC 0034BF5C 7F 03 C3 78 */ mr r3, r24
+/* 80350300 0034BF60 4B E7 68 65 */ bl strlen
+/* 80350304 0034BF64 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 80350308 0034BF68 3A E3 00 01 */ addi r23, r3, 1
+/* 8035030C 0034BF6C 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350310 0034BF70 7C 17 18 00 */ cmpw r23, r3
+/* 80350314 0034BF74 40 81 00 08 */ ble lbl_8035031C
+/* 80350318 0034BF78 7C 77 1B 78 */ mr r23, r3
+lbl_8035031C:
+/* 8035031C 0034BF7C 2C 17 00 00 */ cmpwi r23, 0
+/* 80350320 0034BF80 40 81 00 34 */ ble lbl_80350354
+/* 80350324 0034BF84 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 80350328 0034BF88 7F 04 C3 78 */ mr r4, r24
+/* 8035032C 0034BF8C 7E E5 BB 78 */ mr r5, r23
+/* 80350330 0034BF90 7C 63 02 14 */ add r3, r3, r0
+/* 80350334 0034BF94 4B CB 3C CD */ bl memcpy
+/* 80350338 0034BF98 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 8035033C 0034BF9C 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 80350340 0034BFA0 38 80 00 00 */ li r4, 0
+/* 80350344 0034BFA4 7C 63 BA 14 */ add r3, r3, r23
+/* 80350348 0034BFA8 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 8035034C 0034BFAC 7C 63 02 14 */ add r3, r3, r0
+/* 80350350 0034BFB0 98 83 FF FF */ stb r4, -1(r3)
+lbl_80350354:
+/* 80350354 0034BFB4 2C 1C 00 00 */ cmpwi r28, 0
+/* 80350358 0034BFB8 41 82 00 CC */ beq lbl_80350424
+/* 8035035C 0034BFBC 3A FF 04 58 */ addi r23, r31, 0x458
+/* 80350360 0034BFC0 7E E3 BB 78 */ mr r3, r23
+/* 80350364 0034BFC4 4B E7 68 01 */ bl strlen
+/* 80350368 0034BFC8 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 8035036C 0034BFCC 3B 03 00 01 */ addi r24, r3, 1
+/* 80350370 0034BFD0 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350374 0034BFD4 7C 18 18 00 */ cmpw r24, r3
+/* 80350378 0034BFD8 40 81 00 08 */ ble lbl_80350380
+/* 8035037C 0034BFDC 7C 78 1B 78 */ mr r24, r3
+lbl_80350380:
+/* 80350380 0034BFE0 2C 18 00 00 */ cmpwi r24, 0
+/* 80350384 0034BFE4 40 81 00 34 */ ble lbl_803503B8
+/* 80350388 0034BFE8 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 8035038C 0034BFEC 7E E4 BB 78 */ mr r4, r23
+/* 80350390 0034BFF0 7F 05 C3 78 */ mr r5, r24
+/* 80350394 0034BFF4 7C 63 02 14 */ add r3, r3, r0
+/* 80350398 0034BFF8 4B CB 3C 69 */ bl memcpy
+/* 8035039C 0034BFFC 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 803503A0 0034C000 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 803503A4 0034C004 38 80 00 00 */ li r4, 0
+/* 803503A8 0034C008 7C 63 C2 14 */ add r3, r3, r24
+/* 803503AC 0034C00C 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 803503B0 0034C010 7C 63 02 14 */ add r3, r3, r0
+/* 803503B4 0034C014 98 83 FF FF */ stb r4, -1(r3)
+lbl_803503B8:
+/* 803503B8 0034C018 7F 85 E3 78 */ mr r5, r28
+/* 803503BC 0034C01C 38 61 00 34 */ addi r3, r1, 0x34
+/* 803503C0 0034C020 38 8D 92 EC */ addi r4, r13, lbl_8063E5AC-_SDA_BASE_
+/* 803503C4 0034C024 4C C6 31 82 */ crclr 6
+/* 803503C8 0034C028 4B E7 C7 35 */ bl sprintf
+/* 803503CC 0034C02C 38 61 00 34 */ addi r3, r1, 0x34
+/* 803503D0 0034C030 4B E7 67 95 */ bl strlen
+/* 803503D4 0034C034 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 803503D8 0034C038 3A E3 00 01 */ addi r23, r3, 1
+/* 803503DC 0034C03C 20 60 05 78 */ subfic r3, r0, 0x578
+/* 803503E0 0034C040 7C 17 18 00 */ cmpw r23, r3
+/* 803503E4 0034C044 40 81 00 08 */ ble lbl_803503EC
+/* 803503E8 0034C048 7C 77 1B 78 */ mr r23, r3
+lbl_803503EC:
+/* 803503EC 0034C04C 2C 17 00 00 */ cmpwi r23, 0
+/* 803503F0 0034C050 40 81 00 34 */ ble lbl_80350424
+/* 803503F4 0034C054 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 803503F8 0034C058 7E E5 BB 78 */ mr r5, r23
+/* 803503FC 0034C05C 7C 63 02 14 */ add r3, r3, r0
+/* 80350400 0034C060 38 81 00 34 */ addi r4, r1, 0x34
+/* 80350404 0034C064 4B CB 3B FD */ bl memcpy
+/* 80350408 0034C068 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 8035040C 0034C06C 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 80350410 0034C070 38 80 00 00 */ li r4, 0
+/* 80350414 0034C074 7C 63 BA 14 */ add r3, r3, r23
+/* 80350418 0034C078 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 8035041C 0034C07C 7C 63 02 14 */ add r3, r3, r0
+/* 80350420 0034C080 98 83 FF FF */ stb r4, -1(r3)
+lbl_80350424:
+/* 80350424 0034C084 3A FF 04 68 */ addi r23, r31, 0x468
+/* 80350428 0034C088 7E E3 BB 78 */ mr r3, r23
+/* 8035042C 0034C08C 4B E7 67 39 */ bl strlen
+/* 80350430 0034C090 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 80350434 0034C094 3B 03 00 01 */ addi r24, r3, 1
+/* 80350438 0034C098 20 60 05 78 */ subfic r3, r0, 0x578
+/* 8035043C 0034C09C 7C 18 18 00 */ cmpw r24, r3
+/* 80350440 0034C0A0 40 81 00 08 */ ble lbl_80350448
+/* 80350444 0034C0A4 7C 78 1B 78 */ mr r24, r3
+lbl_80350448:
+/* 80350448 0034C0A8 2C 18 00 00 */ cmpwi r24, 0
+/* 8035044C 0034C0AC 40 81 00 34 */ ble lbl_80350480
+/* 80350450 0034C0B0 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 80350454 0034C0B4 7E E4 BB 78 */ mr r4, r23
+/* 80350458 0034C0B8 7F 05 C3 78 */ mr r5, r24
+/* 8035045C 0034C0BC 7C 63 02 14 */ add r3, r3, r0
+/* 80350460 0034C0C0 4B CB 3B A1 */ bl memcpy
+/* 80350464 0034C0C4 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 80350468 0034C0C8 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 8035046C 0034C0CC 38 80 00 00 */ li r4, 0
+/* 80350470 0034C0D0 7C 63 C2 14 */ add r3, r3, r24
+/* 80350474 0034C0D4 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 80350478 0034C0D8 7C 63 02 14 */ add r3, r3, r0
+/* 8035047C 0034C0DC 98 83 FF FF */ stb r4, -1(r3)
+lbl_80350480:
+/* 80350480 0034C0E0 38 7B 00 04 */ addi r3, r27, 4
+/* 80350484 0034C0E4 4B E7 66 E1 */ bl strlen
+/* 80350488 0034C0E8 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 8035048C 0034C0EC 3A E3 00 01 */ addi r23, r3, 1
+/* 80350490 0034C0F0 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350494 0034C0F4 7C 17 18 00 */ cmpw r23, r3
+/* 80350498 0034C0F8 40 81 00 08 */ ble lbl_803504A0
+/* 8035049C 0034C0FC 7C 77 1B 78 */ mr r23, r3
+lbl_803504A0:
+/* 803504A0 0034C100 2C 17 00 00 */ cmpwi r23, 0
+/* 803504A4 0034C104 40 81 00 34 */ ble lbl_803504D8
+/* 803504A8 0034C108 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 803504AC 0034C10C 7E E5 BB 78 */ mr r5, r23
+/* 803504B0 0034C110 7C 63 02 14 */ add r3, r3, r0
+/* 803504B4 0034C114 38 9B 00 04 */ addi r4, r27, 4
+/* 803504B8 0034C118 4B CB 3B 49 */ bl memcpy
+/* 803504BC 0034C11C 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 803504C0 0034C120 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 803504C4 0034C124 38 80 00 00 */ li r4, 0
+/* 803504C8 0034C128 7C 63 BA 14 */ add r3, r3, r23
+/* 803504CC 0034C12C 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 803504D0 0034C130 7C 63 02 14 */ add r3, r3, r0
+/* 803504D4 0034C134 98 83 FF FF */ stb r4, -1(r3)
+lbl_803504D8:
+/* 803504D8 0034C138 80 1B 00 A8 */ lwz r0, 0xa8(r27)
+/* 803504DC 0034C13C 2C 00 00 00 */ cmpwi r0, 0
+/* 803504E0 0034C140 41 82 01 94 */ beq lbl_80350674
+/* 803504E4 0034C144 3A FF 04 74 */ addi r23, r31, 0x474
+/* 803504E8 0034C148 7E E3 BB 78 */ mr r3, r23
+/* 803504EC 0034C14C 4B E7 66 79 */ bl strlen
+/* 803504F0 0034C150 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 803504F4 0034C154 3B 03 00 01 */ addi r24, r3, 1
+/* 803504F8 0034C158 20 60 05 78 */ subfic r3, r0, 0x578
+/* 803504FC 0034C15C 7C 18 18 00 */ cmpw r24, r3
+/* 80350500 0034C160 40 81 00 08 */ ble lbl_80350508
+/* 80350504 0034C164 7C 78 1B 78 */ mr r24, r3
+lbl_80350508:
+/* 80350508 0034C168 2C 18 00 00 */ cmpwi r24, 0
+/* 8035050C 0034C16C 40 81 00 34 */ ble lbl_80350540
+/* 80350510 0034C170 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 80350514 0034C174 7E E4 BB 78 */ mr r4, r23
+/* 80350518 0034C178 7F 05 C3 78 */ mr r5, r24
+/* 8035051C 0034C17C 7C 63 02 14 */ add r3, r3, r0
+/* 80350520 0034C180 4B CB 3A E1 */ bl memcpy
+/* 80350524 0034C184 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 80350528 0034C188 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 8035052C 0034C18C 38 80 00 00 */ li r4, 0
+/* 80350530 0034C190 7C 63 C2 14 */ add r3, r3, r24
+/* 80350534 0034C194 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 80350538 0034C198 7C 63 02 14 */ add r3, r3, r0
+/* 8035053C 0034C19C 98 83 FF FF */ stb r4, -1(r3)
+lbl_80350540:
+/* 80350540 0034C1A0 80 BB 01 04 */ lwz r5, 0x104(r27)
+/* 80350544 0034C1A4 38 61 00 20 */ addi r3, r1, 0x20
+/* 80350548 0034C1A8 38 8D 92 EC */ addi r4, r13, lbl_8063E5AC-_SDA_BASE_
+/* 8035054C 0034C1AC 4C C6 31 82 */ crclr 6
+/* 80350550 0034C1B0 4B E7 C5 AD */ bl sprintf
+/* 80350554 0034C1B4 38 61 00 20 */ addi r3, r1, 0x20
+/* 80350558 0034C1B8 4B E7 66 0D */ bl strlen
+/* 8035055C 0034C1BC 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 80350560 0034C1C0 3A E3 00 01 */ addi r23, r3, 1
+/* 80350564 0034C1C4 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350568 0034C1C8 7C 17 18 00 */ cmpw r23, r3
+/* 8035056C 0034C1CC 40 81 00 08 */ ble lbl_80350574
+/* 80350570 0034C1D0 7C 77 1B 78 */ mr r23, r3
+lbl_80350574:
+/* 80350574 0034C1D4 2C 17 00 00 */ cmpwi r23, 0
+/* 80350578 0034C1D8 40 81 00 34 */ ble lbl_803505AC
+/* 8035057C 0034C1DC 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 80350580 0034C1E0 7E E5 BB 78 */ mr r5, r23
+/* 80350584 0034C1E4 7C 63 02 14 */ add r3, r3, r0
+/* 80350588 0034C1E8 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035058C 0034C1EC 4B CB 3A 75 */ bl memcpy
+/* 80350590 0034C1F0 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 80350594 0034C1F4 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 80350598 0034C1F8 38 80 00 00 */ li r4, 0
+/* 8035059C 0034C1FC 7C 63 BA 14 */ add r3, r3, r23
+/* 803505A0 0034C200 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 803505A4 0034C204 7C 63 02 14 */ add r3, r3, r0
+/* 803505A8 0034C208 98 83 FF FF */ stb r4, -1(r3)
+lbl_803505AC:
+/* 803505AC 0034C20C 3A FF 04 80 */ addi r23, r31, 0x480
+/* 803505B0 0034C210 7E E3 BB 78 */ mr r3, r23
+/* 803505B4 0034C214 4B E7 65 B1 */ bl strlen
+/* 803505B8 0034C218 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 803505BC 0034C21C 3B 03 00 01 */ addi r24, r3, 1
+/* 803505C0 0034C220 20 60 05 78 */ subfic r3, r0, 0x578
+/* 803505C4 0034C224 7C 18 18 00 */ cmpw r24, r3
+/* 803505C8 0034C228 40 81 00 08 */ ble lbl_803505D0
+/* 803505CC 0034C22C 7C 78 1B 78 */ mr r24, r3
+lbl_803505D0:
+/* 803505D0 0034C230 2C 18 00 00 */ cmpwi r24, 0
+/* 803505D4 0034C234 40 81 00 34 */ ble lbl_80350608
+/* 803505D8 0034C238 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 803505DC 0034C23C 7E E4 BB 78 */ mr r4, r23
+/* 803505E0 0034C240 7F 05 C3 78 */ mr r5, r24
+/* 803505E4 0034C244 7C 63 02 14 */ add r3, r3, r0
+/* 803505E8 0034C248 4B CB 3A 19 */ bl memcpy
+/* 803505EC 0034C24C 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 803505F0 0034C250 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 803505F4 0034C254 38 80 00 00 */ li r4, 0
+/* 803505F8 0034C258 7C 63 C2 14 */ add r3, r3, r24
+/* 803505FC 0034C25C 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 80350600 0034C260 7C 63 02 14 */ add r3, r3, r0
+/* 80350604 0034C264 98 83 FF FF */ stb r4, -1(r3)
+lbl_80350608:
+/* 80350608 0034C268 A0 BB 01 08 */ lhz r5, 0x108(r27)
+/* 8035060C 0034C26C 38 61 00 0C */ addi r3, r1, 0xc
+/* 80350610 0034C270 38 8D 92 EC */ addi r4, r13, lbl_8063E5AC-_SDA_BASE_
+/* 80350614 0034C274 4C C6 31 82 */ crclr 6
+/* 80350618 0034C278 4B E7 C4 E5 */ bl sprintf
+/* 8035061C 0034C27C 38 61 00 0C */ addi r3, r1, 0xc
+/* 80350620 0034C280 4B E7 65 45 */ bl strlen
+/* 80350624 0034C284 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 80350628 0034C288 3A E3 00 01 */ addi r23, r3, 1
+/* 8035062C 0034C28C 20 60 05 78 */ subfic r3, r0, 0x578
+/* 80350630 0034C290 7C 17 18 00 */ cmpw r23, r3
+/* 80350634 0034C294 40 81 00 08 */ ble lbl_8035063C
+/* 80350638 0034C298 7C 77 1B 78 */ mr r23, r3
+lbl_8035063C:
+/* 8035063C 0034C29C 2C 17 00 00 */ cmpwi r23, 0
+/* 80350640 0034C2A0 40 81 00 34 */ ble lbl_80350674
+/* 80350644 0034C2A4 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 80350648 0034C2A8 7E E5 BB 78 */ mr r5, r23
+/* 8035064C 0034C2AC 7C 63 02 14 */ add r3, r3, r0
+/* 80350650 0034C2B0 38 81 00 0C */ addi r4, r1, 0xc
+/* 80350654 0034C2B4 4B CB 39 AD */ bl memcpy
+/* 80350658 0034C2B8 80 61 0B 64 */ lwz r3, 0xb64(r1)
+/* 8035065C 0034C2BC 38 01 05 EC */ addi r0, r1, 0x5ec
+/* 80350660 0034C2C0 38 80 00 00 */ li r4, 0
+/* 80350664 0034C2C4 7C 63 BA 14 */ add r3, r3, r23
+/* 80350668 0034C2C8 90 61 0B 64 */ stw r3, 0xb64(r1)
+/* 8035066C 0034C2CC 7C 63 02 14 */ add r3, r3, r0
+/* 80350670 0034C2D0 98 83 FF FF */ stb r4, -1(r3)
+lbl_80350674:
+/* 80350674 0034C2D4 2C 1C 00 02 */ cmpwi r28, 2
+/* 80350678 0034C2D8 41 82 00 E0 */ beq lbl_80350758
+/* 8035067C 0034C2DC 80 A1 0B 64 */ lwz r5, 0xb64(r1)
+/* 80350680 0034C2E0 38 61 00 70 */ addi r3, r1, 0x70
+/* 80350684 0034C2E4 38 81 05 EC */ addi r4, r1, 0x5ec
+/* 80350688 0034C2E8 4B CB 39 79 */ bl memcpy
+/* 8035068C 0034C2EC 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 80350690 0034C2F0 7F 63 DB 78 */ mr r3, r27
+/* 80350694 0034C2F4 38 81 00 70 */ addi r4, r1, 0x70
+/* 80350698 0034C2F8 38 A0 00 00 */ li r5, 0
+/* 8035069C 0034C2FC 90 01 05 E8 */ stw r0, 0x5e8(r1)
+/* 803506A0 0034C300 38 C0 00 FF */ li r6, 0xff
+/* 803506A4 0034C304 38 E0 00 00 */ li r7, 0
+/* 803506A8 0034C308 4B FF E8 0D */ bl qr_build_partial_query_reply
+/* 803506AC 0034C30C 7F 63 DB 78 */ mr r3, r27
+/* 803506B0 0034C310 38 81 00 70 */ addi r4, r1, 0x70
+/* 803506B4 0034C314 38 A0 00 01 */ li r5, 1
+/* 803506B8 0034C318 38 C0 00 FF */ li r6, 0xff
+/* 803506BC 0034C31C 38 E0 00 00 */ li r7, 0
+/* 803506C0 0034C320 4B FF E7 F5 */ bl qr_build_partial_query_reply
+/* 803506C4 0034C324 7F 63 DB 78 */ mr r3, r27
+/* 803506C8 0034C328 38 81 00 70 */ addi r4, r1, 0x70
+/* 803506CC 0034C32C 38 A0 00 02 */ li r5, 2
+/* 803506D0 0034C330 38 C0 00 FF */ li r6, 0xff
+/* 803506D4 0034C334 38 E0 00 00 */ li r7, 0
+/* 803506D8 0034C338 4B FF E7 DD */ bl qr_build_partial_query_reply
+/* 803506DC 0034C33C 80 01 05 E8 */ lwz r0, 0x5e8(r1)
+/* 803506E0 0034C340 20 00 05 78 */ subfic r0, r0, 0x578
+/* 803506E4 0034C344 2C 00 00 01 */ cmpwi r0, 1
+/* 803506E8 0034C348 40 80 00 54 */ bge lbl_8035073C
+/* 803506EC 0034C34C 80 01 0B 64 */ lwz r0, 0xb64(r1)
+/* 803506F0 0034C350 7F 63 DB 78 */ mr r3, r27
+/* 803506F4 0034C354 38 81 00 70 */ addi r4, r1, 0x70
+/* 803506F8 0034C358 38 A0 00 00 */ li r5, 0
+/* 803506FC 0034C35C 90 01 05 E8 */ stw r0, 0x5e8(r1)
+/* 80350700 0034C360 38 C0 00 FF */ li r6, 0xff
+/* 80350704 0034C364 38 E0 00 00 */ li r7, 0
+/* 80350708 0034C368 4B FF E7 AD */ bl qr_build_partial_query_reply
+/* 8035070C 0034C36C 7F 63 DB 78 */ mr r3, r27
+/* 80350710 0034C370 38 81 00 70 */ addi r4, r1, 0x70
+/* 80350714 0034C374 38 A0 00 01 */ li r5, 1
+/* 80350718 0034C378 38 C0 00 00 */ li r6, 0
+/* 8035071C 0034C37C 38 E0 00 00 */ li r7, 0
+/* 80350720 0034C380 4B FF E7 95 */ bl qr_build_partial_query_reply
+/* 80350724 0034C384 7F 63 DB 78 */ mr r3, r27
+/* 80350728 0034C388 38 81 00 70 */ addi r4, r1, 0x70
+/* 8035072C 0034C38C 38 A0 00 02 */ li r5, 2
+/* 80350730 0034C390 38 C0 00 00 */ li r6, 0
+/* 80350734 0034C394 38 E0 00 00 */ li r7, 0
+/* 80350738 0034C398 4B FF E7 7D */ bl qr_build_partial_query_reply
+lbl_8035073C:
+/* 8035073C 0034C39C 80 A1 05 E8 */ lwz r5, 0x5e8(r1)
+/* 80350740 0034C3A0 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 80350744 0034C3A4 38 81 00 70 */ addi r4, r1, 0x70
+/* 80350748 0034C3A8 4B CB 38 B9 */ bl memcpy
+/* 8035074C 0034C3AC 80 01 05 E8 */ lwz r0, 0x5e8(r1)
+/* 80350750 0034C3B0 90 01 0B 64 */ stw r0, 0xb64(r1)
+/* 80350754 0034C3B4 48 00 00 28 */ b lbl_8035077C
+lbl_80350758:
+/* 80350758 0034C3B8 80 81 0B 64 */ lwz r4, 0xb64(r1)
+/* 8035075C 0034C3BC 20 04 05 78 */ subfic r0, r4, 0x578
+/* 80350760 0034C3C0 2C 00 00 01 */ cmpwi r0, 1
+/* 80350764 0034C3C4 41 80 00 18 */ blt lbl_8035077C
+/* 80350768 0034C3C8 38 61 05 EC */ addi r3, r1, 0x5ec
+/* 8035076C 0034C3CC 38 00 00 00 */ li r0, 0
+/* 80350770 0034C3D0 7C 03 21 AE */ stbx r0, r3, r4
+/* 80350774 0034C3D4 38 04 00 01 */ addi r0, r4, 1
+/* 80350778 0034C3D8 90 01 0B 64 */ stw r0, 0xb64(r1)
+lbl_8035077C:
+/* 8035077C 0034C3DC 80 7B 00 00 */ lwz r3, 0(r27)
+/* 80350780 0034C3E0 38 81 05 EC */ addi r4, r1, 0x5ec
+/* 80350784 0034C3E4 80 A1 0B 64 */ lwz r5, 0xb64(r1)
+/* 80350788 0034C3E8 38 FB 00 CC */ addi r7, r27, 0xcc
+/* 8035078C 0034C3EC 38 C0 00 00 */ li r6, 0
+/* 80350790 0034C3F0 39 00 00 08 */ li r8, 8
+/* 80350794 0034C3F4 4B FE 77 01 */ bl sendto
+/* 80350798 0034C3F8 4B FE 88 41 */ bl current_time
+/* 8035079C 0034C3FC 2C 1C 00 00 */ cmpwi r28, 0
+/* 803507A0 0034C400 90 7B 00 AC */ stw r3, 0xac(r27)
+/* 803507A4 0034C404 90 7B 00 B0 */ stw r3, 0xb0(r27)
+/* 803507A8 0034C408 41 82 00 0C */ beq lbl_803507B4
+/* 803507AC 0034C40C 38 00 00 00 */ li r0, 0
+/* 803507B0 0034C410 90 1B 00 B4 */ stw r0, 0xb4(r27)
+lbl_803507B4:
+/* 803507B4 0034C414 39 61 0B 90 */ addi r11, r1, 0xb90
+/* 803507B8 0034C418 4B E7 69 AD */ bl _restgpr_23
+/* 803507BC 0034C41C 80 01 0B 94 */ lwz r0, 0xb94(r1)
+/* 803507C0 0034C420 7C 08 03 A6 */ mtlr r0
+/* 803507C4 0034C424 38 21 0B 90 */ addi r1, r1, 0xb90
+/* 803507C8 0034C428 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/qr2regkeys.s b/asm/SDK/DWC/gamespy/qr2regkeys.s new file mode 100644 index 0000000..8e8f896 --- /dev/null +++ b/asm/SDK/DWC/gamespy/qr2regkeys.s @@ -0,0 +1,17 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global qr2_register_keyA
+qr2_register_keyA:
+/* 803507CC 0034C42C 2C 03 00 32 */ cmpwi r3, 0x32
+/* 803507D0 0034C430 4D 80 00 20 */ bltlr
+/* 803507D4 0034C434 2C 03 00 FE */ cmpwi r3, 0xfe
+/* 803507D8 0034C438 40 81 00 08 */ ble lbl_803507E0
+/* 803507DC 0034C43C 4E 80 00 20 */ blr
+lbl_803507E0:
+/* 803507E0 0034C440 3C A0 80 45 */ lis r5, lbl_8044BB78@ha
+/* 803507E4 0034C444 54 60 10 3A */ slwi r0, r3, 2
+/* 803507E8 0034C448 38 A5 BB 78 */ addi r5, r5, lbl_8044BB78@l
+/* 803507EC 0034C44C 7C 85 01 2E */ stwx r4, r5, r0
+/* 803507F0 0034C450 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/sb_crypt.s b/asm/SDK/DWC/gamespy/sb_crypt.s new file mode 100644 index 0000000..ebda0e7 --- /dev/null +++ b/asm/SDK/DWC/gamespy/sb_crypt.s @@ -0,0 +1,294 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global keyrand
+keyrand:
+/* 8035C4F4 00358154 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035C4F8 00358158 2C 04 00 00 */ cmpwi r4, 0
+/* 8035C4FC 0035815C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035C500 00358160 40 82 00 0C */ bne lbl_8035C50C
+/* 8035C504 00358164 38 60 00 00 */ li r3, 0
+/* 8035C508 00358168 48 00 00 88 */ b lbl_8035C590
+lbl_8035C50C:
+/* 8035C50C 0035816C 39 80 00 00 */ li r12, 0
+/* 8035C510 00358170 3B E0 00 01 */ li r31, 1
+/* 8035C514 00358174 48 00 00 0C */ b lbl_8035C520
+lbl_8035C518:
+/* 8035C518 00358178 57 E9 08 3C */ slwi r9, r31, 1
+/* 8035C51C 0035817C 3B E9 00 01 */ addi r31, r9, 1
+lbl_8035C520:
+/* 8035C520 00358180 7C 1F 20 40 */ cmplw r31, r4
+/* 8035C524 00358184 41 80 FF F4 */ blt lbl_8035C518
+/* 8035C528 00358188 39 20 00 00 */ li r9, 0
+lbl_8035C52C:
+/* 8035C52C 0035818C 81 48 00 00 */ lwz r10, 0(r8)
+/* 8035C530 00358190 89 67 00 00 */ lbz r11, 0(r7)
+/* 8035C534 00358194 7C 05 50 AE */ lbzx r0, r5, r10
+/* 8035C538 00358198 39 4A 00 01 */ addi r10, r10, 1
+/* 8035C53C 0035819C 7D 63 58 AE */ lbzx r11, r3, r11
+/* 8035C540 003581A0 7C 0A 30 40 */ cmplw r10, r6
+/* 8035C544 003581A4 7C 0B 02 14 */ add r0, r11, r0
+/* 8035C548 003581A8 98 07 00 00 */ stb r0, 0(r7)
+/* 8035C54C 003581AC 91 48 00 00 */ stw r10, 0(r8)
+/* 8035C550 003581B0 41 80 00 14 */ blt lbl_8035C564
+/* 8035C554 003581B4 91 28 00 00 */ stw r9, 0(r8)
+/* 8035C558 003581B8 88 07 00 00 */ lbz r0, 0(r7)
+/* 8035C55C 003581BC 7C 00 32 14 */ add r0, r0, r6
+/* 8035C560 003581C0 98 07 00 00 */ stb r0, 0(r7)
+lbl_8035C564:
+/* 8035C564 003581C4 39 8C 00 01 */ addi r12, r12, 1
+/* 8035C568 003581C8 88 07 00 00 */ lbz r0, 0(r7)
+/* 8035C56C 003581CC 28 0C 00 0B */ cmplwi r12, 0xb
+/* 8035C570 003581D0 7F EA 00 38 */ and r10, r31, r0
+/* 8035C574 003581D4 40 81 00 10 */ ble lbl_8035C584
+/* 8035C578 003581D8 7C 0A 23 96 */ divwu r0, r10, r4
+/* 8035C57C 003581DC 7C 00 21 D6 */ mullw r0, r0, r4
+/* 8035C580 003581E0 7D 40 50 50 */ subf r10, r0, r10
+lbl_8035C584:
+/* 8035C584 003581E4 7C 0A 20 40 */ cmplw r10, r4
+/* 8035C588 003581E8 41 81 FF A4 */ bgt lbl_8035C52C
+/* 8035C58C 003581EC 55 43 06 3E */ clrlwi r3, r10, 0x18
+lbl_8035C590:
+/* 8035C590 003581F0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035C594 003581F4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035C598 003581F8 4E 80 00 20 */ blr
+
+.global GOACryptInit
+GOACryptInit:
+/* 8035C59C 003581FC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035C5A0 00358200 7C 08 02 A6 */ mflr r0
+/* 8035C5A4 00358204 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035C5A8 00358208 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035C5AC 0035820C 4B E6 AB 7D */ bl _savegpr_27
+/* 8035C5B0 00358210 28 05 00 01 */ cmplwi r5, 1
+/* 8035C5B4 00358214 7C 7D 1B 78 */ mr r29, r3
+/* 8035C5B8 00358218 7C 9E 23 78 */ mr r30, r4
+/* 8035C5BC 0035821C 7C BF 2B 78 */ mr r31, r5
+/* 8035C5C0 00358220 40 80 00 D4 */ bge lbl_8035C694
+/* 8035C5C4 00358224 39 00 00 01 */ li r8, 1
+/* 8035C5C8 00358228 38 E0 00 03 */ li r7, 3
+/* 8035C5CC 0035822C 38 C0 00 05 */ li r6, 5
+/* 8035C5D0 00358230 38 A0 00 07 */ li r5, 7
+/* 8035C5D4 00358234 38 80 00 0B */ li r4, 0xb
+/* 8035C5D8 00358238 38 00 00 10 */ li r0, 0x10
+/* 8035C5DC 0035823C 99 03 01 00 */ stb r8, 0x100(r3)
+/* 8035C5E0 00358240 39 60 00 00 */ li r11, 0
+/* 8035C5E4 00358244 39 40 00 FF */ li r10, 0xff
+/* 8035C5E8 00358248 98 E3 01 01 */ stb r7, 0x101(r3)
+/* 8035C5EC 0035824C 98 C3 01 02 */ stb r6, 0x102(r3)
+/* 8035C5F0 00358250 98 A3 01 03 */ stb r5, 0x103(r3)
+/* 8035C5F4 00358254 98 83 01 04 */ stb r4, 0x104(r3)
+/* 8035C5F8 00358258 7C 09 03 A6 */ mtctr r0
+lbl_8035C5FC:
+/* 8035C5FC 0035825C 7D 43 59 AE */ stbx r10, r3, r11
+/* 8035C600 00358260 7D 83 5A 14 */ add r12, r3, r11
+/* 8035C604 00358264 39 2A FF FF */ addi r9, r10, -1
+/* 8035C608 00358268 39 0A FF FE */ addi r8, r10, -2
+/* 8035C60C 0035826C 99 2C 00 01 */ stb r9, 1(r12)
+/* 8035C610 00358270 38 EA FF FD */ addi r7, r10, -3
+/* 8035C614 00358274 38 CA FF FC */ addi r6, r10, -4
+/* 8035C618 00358278 38 AA FF FB */ addi r5, r10, -5
+/* 8035C61C 0035827C 99 0C 00 02 */ stb r8, 2(r12)
+/* 8035C620 00358280 38 8A FF FA */ addi r4, r10, -6
+/* 8035C624 00358284 38 0A FF F9 */ addi r0, r10, -7
+/* 8035C628 00358288 39 2A FF F7 */ addi r9, r10, -9
+/* 8035C62C 0035828C 98 EC 00 03 */ stb r7, 3(r12)
+/* 8035C630 00358290 39 0A FF F6 */ addi r8, r10, -10
+/* 8035C634 00358294 38 EA FF F5 */ addi r7, r10, -11
+/* 8035C638 00358298 39 6B 00 08 */ addi r11, r11, 8
+/* 8035C63C 0035829C 98 CC 00 04 */ stb r6, 4(r12)
+/* 8035C640 003582A0 38 CA FF F4 */ addi r6, r10, -12
+/* 8035C644 003582A4 98 AC 00 05 */ stb r5, 5(r12)
+/* 8035C648 003582A8 38 AA FF F3 */ addi r5, r10, -13
+/* 8035C64C 003582AC 98 8C 00 06 */ stb r4, 6(r12)
+/* 8035C650 003582B0 38 8A FF F2 */ addi r4, r10, -14
+/* 8035C654 003582B4 98 0C 00 07 */ stb r0, 7(r12)
+/* 8035C658 003582B8 38 0A FF F1 */ addi r0, r10, -15
+/* 8035C65C 003582BC 39 4A FF F8 */ addi r10, r10, -8
+/* 8035C660 003582C0 7D 83 5A 14 */ add r12, r3, r11
+/* 8035C664 003582C4 7D 43 59 AE */ stbx r10, r3, r11
+/* 8035C668 003582C8 39 6B 00 08 */ addi r11, r11, 8
+/* 8035C66C 003582CC 39 4A FF F8 */ addi r10, r10, -8
+/* 8035C670 003582D0 99 2C 00 01 */ stb r9, 1(r12)
+/* 8035C674 003582D4 99 0C 00 02 */ stb r8, 2(r12)
+/* 8035C678 003582D8 98 EC 00 03 */ stb r7, 3(r12)
+/* 8035C67C 003582DC 98 CC 00 04 */ stb r6, 4(r12)
+/* 8035C680 003582E0 98 AC 00 05 */ stb r5, 5(r12)
+/* 8035C684 003582E4 98 8C 00 06 */ stb r4, 6(r12)
+/* 8035C688 003582E8 98 0C 00 07 */ stb r0, 7(r12)
+/* 8035C68C 003582EC 42 00 FF 70 */ bdnz lbl_8035C5FC
+/* 8035C690 003582F0 48 00 01 A0 */ b lbl_8035C830
+lbl_8035C694:
+/* 8035C694 003582F4 38 00 00 08 */ li r0, 8
+/* 8035C698 003582F8 39 60 00 00 */ li r11, 0
+/* 8035C69C 003582FC 7C 09 03 A6 */ mtctr r0
+lbl_8035C6A0:
+/* 8035C6A0 00358300 7D 63 59 AE */ stbx r11, r3, r11
+/* 8035C6A4 00358304 7D 43 5A 14 */ add r10, r3, r11
+/* 8035C6A8 00358308 39 2B 00 01 */ addi r9, r11, 1
+/* 8035C6AC 0035830C 39 0B 00 02 */ addi r8, r11, 2
+/* 8035C6B0 00358310 99 2A 00 01 */ stb r9, 1(r10)
+/* 8035C6B4 00358314 38 EB 00 03 */ addi r7, r11, 3
+/* 8035C6B8 00358318 38 CB 00 04 */ addi r6, r11, 4
+/* 8035C6BC 0035831C 38 AB 00 05 */ addi r5, r11, 5
+/* 8035C6C0 00358320 99 0A 00 02 */ stb r8, 2(r10)
+/* 8035C6C4 00358324 38 8B 00 06 */ addi r4, r11, 6
+/* 8035C6C8 00358328 38 0B 00 07 */ addi r0, r11, 7
+/* 8035C6CC 0035832C 39 2B 00 09 */ addi r9, r11, 9
+/* 8035C6D0 00358330 98 EA 00 03 */ stb r7, 3(r10)
+/* 8035C6D4 00358334 39 0B 00 0A */ addi r8, r11, 0xa
+/* 8035C6D8 00358338 38 EB 00 0B */ addi r7, r11, 0xb
+/* 8035C6DC 0035833C 98 CA 00 04 */ stb r6, 4(r10)
+/* 8035C6E0 00358340 38 CB 00 0C */ addi r6, r11, 0xc
+/* 8035C6E4 00358344 98 AA 00 05 */ stb r5, 5(r10)
+/* 8035C6E8 00358348 38 AB 00 0D */ addi r5, r11, 0xd
+/* 8035C6EC 0035834C 98 8A 00 06 */ stb r4, 6(r10)
+/* 8035C6F0 00358350 38 8B 00 0E */ addi r4, r11, 0xe
+/* 8035C6F4 00358354 39 6B 00 08 */ addi r11, r11, 8
+/* 8035C6F8 00358358 98 0A 00 07 */ stb r0, 7(r10)
+/* 8035C6FC 0035835C 7D 43 5A 14 */ add r10, r3, r11
+/* 8035C700 00358360 38 0B 00 07 */ addi r0, r11, 7
+/* 8035C704 00358364 7D 63 59 AE */ stbx r11, r3, r11
+/* 8035C708 00358368 99 2A 00 01 */ stb r9, 1(r10)
+/* 8035C70C 0035836C 39 2B 00 09 */ addi r9, r11, 9
+/* 8035C710 00358370 99 0A 00 02 */ stb r8, 2(r10)
+/* 8035C714 00358374 39 0B 00 0A */ addi r8, r11, 0xa
+/* 8035C718 00358378 98 EA 00 03 */ stb r7, 3(r10)
+/* 8035C71C 0035837C 38 EB 00 0B */ addi r7, r11, 0xb
+/* 8035C720 00358380 98 CA 00 04 */ stb r6, 4(r10)
+/* 8035C724 00358384 38 CB 00 0C */ addi r6, r11, 0xc
+/* 8035C728 00358388 98 AA 00 05 */ stb r5, 5(r10)
+/* 8035C72C 0035838C 38 AB 00 0D */ addi r5, r11, 0xd
+/* 8035C730 00358390 98 8A 00 06 */ stb r4, 6(r10)
+/* 8035C734 00358394 38 8B 00 0E */ addi r4, r11, 0xe
+/* 8035C738 00358398 39 6B 00 08 */ addi r11, r11, 8
+/* 8035C73C 0035839C 98 0A 00 07 */ stb r0, 7(r10)
+/* 8035C740 003583A0 7D 43 5A 14 */ add r10, r3, r11
+/* 8035C744 003583A4 38 0B 00 07 */ addi r0, r11, 7
+/* 8035C748 003583A8 7D 63 59 AE */ stbx r11, r3, r11
+/* 8035C74C 003583AC 99 2A 00 01 */ stb r9, 1(r10)
+/* 8035C750 003583B0 39 2B 00 09 */ addi r9, r11, 9
+/* 8035C754 003583B4 99 0A 00 02 */ stb r8, 2(r10)
+/* 8035C758 003583B8 39 0B 00 0A */ addi r8, r11, 0xa
+/* 8035C75C 003583BC 98 EA 00 03 */ stb r7, 3(r10)
+/* 8035C760 003583C0 38 EB 00 0B */ addi r7, r11, 0xb
+/* 8035C764 003583C4 98 CA 00 04 */ stb r6, 4(r10)
+/* 8035C768 003583C8 38 CB 00 0C */ addi r6, r11, 0xc
+/* 8035C76C 003583CC 98 AA 00 05 */ stb r5, 5(r10)
+/* 8035C770 003583D0 38 AB 00 0D */ addi r5, r11, 0xd
+/* 8035C774 003583D4 98 8A 00 06 */ stb r4, 6(r10)
+/* 8035C778 003583D8 38 8B 00 0E */ addi r4, r11, 0xe
+/* 8035C77C 003583DC 39 6B 00 08 */ addi r11, r11, 8
+/* 8035C780 003583E0 98 0A 00 07 */ stb r0, 7(r10)
+/* 8035C784 003583E4 7D 43 5A 14 */ add r10, r3, r11
+/* 8035C788 003583E8 38 0B 00 07 */ addi r0, r11, 7
+/* 8035C78C 003583EC 7D 63 59 AE */ stbx r11, r3, r11
+/* 8035C790 003583F0 39 6B 00 08 */ addi r11, r11, 8
+/* 8035C794 003583F4 99 2A 00 01 */ stb r9, 1(r10)
+/* 8035C798 003583F8 99 0A 00 02 */ stb r8, 2(r10)
+/* 8035C79C 003583FC 98 EA 00 03 */ stb r7, 3(r10)
+/* 8035C7A0 00358400 98 CA 00 04 */ stb r6, 4(r10)
+/* 8035C7A4 00358404 98 AA 00 05 */ stb r5, 5(r10)
+/* 8035C7A8 00358408 98 8A 00 06 */ stb r4, 6(r10)
+/* 8035C7AC 0035840C 98 0A 00 07 */ stb r0, 7(r10)
+/* 8035C7B0 00358410 42 00 FE F0 */ bdnz lbl_8035C6A0
+/* 8035C7B4 00358414 38 00 00 00 */ li r0, 0
+/* 8035C7B8 00358418 3B 83 00 FF */ addi r28, r3, 0xff
+/* 8035C7BC 0035841C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8035C7C0 00358420 3B 60 00 FF */ li r27, 0xff
+/* 8035C7C4 00358424 98 01 00 08 */ stb r0, 8(r1)
+lbl_8035C7C8:
+/* 8035C7C8 00358428 7F A3 EB 78 */ mr r3, r29
+/* 8035C7CC 0035842C 7F 64 DB 78 */ mr r4, r27
+/* 8035C7D0 00358430 7F C5 F3 78 */ mr r5, r30
+/* 8035C7D4 00358434 7F E6 FB 78 */ mr r6, r31
+/* 8035C7D8 00358438 38 E1 00 08 */ addi r7, r1, 8
+/* 8035C7DC 0035843C 39 01 00 0C */ addi r8, r1, 0xc
+/* 8035C7E0 00358440 4B FF FD 15 */ bl keyrand
+/* 8035C7E4 00358444 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 8035C7E8 00358448 88 9C 00 00 */ lbz r4, 0(r28)
+/* 8035C7EC 0035844C 7C 1D 18 AE */ lbzx r0, r29, r3
+/* 8035C7F0 00358450 37 7B FF FF */ addic. r27, r27, -1
+/* 8035C7F4 00358454 98 1C 00 00 */ stb r0, 0(r28)
+/* 8035C7F8 00358458 3B 9C FF FF */ addi r28, r28, -1
+/* 8035C7FC 0035845C 7C 9D 19 AE */ stbx r4, r29, r3
+/* 8035C800 00358460 40 80 FF C8 */ bge lbl_8035C7C8
+/* 8035C804 00358464 88 BD 00 01 */ lbz r5, 1(r29)
+/* 8035C808 00358468 88 9D 00 03 */ lbz r4, 3(r29)
+/* 8035C80C 0035846C 88 7D 00 05 */ lbz r3, 5(r29)
+/* 8035C810 00358470 88 1D 00 07 */ lbz r0, 7(r29)
+/* 8035C814 00358474 98 BD 01 00 */ stb r5, 0x100(r29)
+/* 8035C818 00358478 98 9D 01 01 */ stb r4, 0x101(r29)
+/* 8035C81C 0035847C 98 7D 01 02 */ stb r3, 0x102(r29)
+/* 8035C820 00358480 98 1D 01 03 */ stb r0, 0x103(r29)
+/* 8035C824 00358484 88 01 00 08 */ lbz r0, 8(r1)
+/* 8035C828 00358488 7C 1D 00 AE */ lbzx r0, r29, r0
+/* 8035C82C 0035848C 98 1D 01 04 */ stb r0, 0x104(r29)
+lbl_8035C830:
+/* 8035C830 00358490 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035C834 00358494 4B E6 A9 41 */ bl _restgpr_27
+/* 8035C838 00358498 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035C83C 0035849C 7C 08 03 A6 */ mtlr r0
+/* 8035C840 003584A0 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035C844 003584A4 4E 80 00 20 */ blr
+
+.global GOADecrypt
+GOADecrypt:
+/* 8035C848 003584A8 7C A9 03 A6 */ mtctr r5
+/* 8035C84C 003584AC 2C 05 00 00 */ cmpwi r5, 0
+/* 8035C850 003584B0 4C 81 00 20 */ blelr
+lbl_8035C854:
+/* 8035C854 003584B4 88 C3 01 00 */ lbz r6, 0x100(r3)
+/* 8035C858 003584B8 89 03 01 01 */ lbz r8, 0x101(r3)
+/* 8035C85C 003584BC 7C A3 30 AE */ lbzx r5, r3, r6
+/* 8035C860 003584C0 38 E6 00 01 */ addi r7, r6, 1
+/* 8035C864 003584C4 88 04 00 00 */ lbz r0, 0(r4)
+/* 8035C868 003584C8 7C A8 2A 14 */ add r5, r8, r5
+/* 8035C86C 003584CC 88 C3 01 04 */ lbz r6, 0x104(r3)
+/* 8035C870 003584D0 98 A3 01 01 */ stb r5, 0x101(r3)
+/* 8035C874 003584D4 54 A5 06 3E */ clrlwi r5, r5, 0x18
+/* 8035C878 003584D8 98 E3 01 00 */ stb r7, 0x100(r3)
+/* 8035C87C 003584DC 7C E3 30 AE */ lbzx r7, r3, r6
+/* 8035C880 003584E0 7C A3 28 AE */ lbzx r5, r3, r5
+/* 8035C884 003584E4 7C A3 31 AE */ stbx r5, r3, r6
+/* 8035C888 003584E8 88 C3 01 03 */ lbz r6, 0x103(r3)
+/* 8035C88C 003584EC 88 A3 01 01 */ lbz r5, 0x101(r3)
+/* 8035C890 003584F0 7C C3 30 AE */ lbzx r6, r3, r6
+/* 8035C894 003584F4 7C C3 29 AE */ stbx r6, r3, r5
+/* 8035C898 003584F8 88 C3 01 00 */ lbz r6, 0x100(r3)
+/* 8035C89C 003584FC 88 A3 01 03 */ lbz r5, 0x103(r3)
+/* 8035C8A0 00358500 7C C3 30 AE */ lbzx r6, r3, r6
+/* 8035C8A4 00358504 7C C3 29 AE */ stbx r6, r3, r5
+/* 8035C8A8 00358508 88 A3 01 00 */ lbz r5, 0x100(r3)
+/* 8035C8AC 0035850C 7C E3 29 AE */ stbx r7, r3, r5
+/* 8035C8B0 00358510 7C A3 38 AE */ lbzx r5, r3, r7
+/* 8035C8B4 00358514 88 C3 01 02 */ lbz r6, 0x102(r3)
+/* 8035C8B8 00358518 88 E3 01 01 */ lbz r7, 0x101(r3)
+/* 8035C8BC 0035851C 7C A6 2A 14 */ add r5, r6, r5
+/* 8035C8C0 00358520 88 C3 01 03 */ lbz r6, 0x103(r3)
+/* 8035C8C4 00358524 98 A3 01 02 */ stb r5, 0x102(r3)
+/* 8035C8C8 00358528 54 AA 06 3E */ clrlwi r10, r5, 0x18
+/* 8035C8CC 0035852C 88 A3 01 04 */ lbz r5, 0x104(r3)
+/* 8035C8D0 00358530 7D 03 38 AE */ lbzx r8, r3, r7
+/* 8035C8D4 00358534 7C E3 30 AE */ lbzx r7, r3, r6
+/* 8035C8D8 00358538 7C C3 28 AE */ lbzx r6, r3, r5
+/* 8035C8DC 0035853C 7C A8 3A 14 */ add r5, r8, r7
+/* 8035C8E0 00358540 89 23 01 00 */ lbz r9, 0x100(r3)
+/* 8035C8E4 00358544 7C A6 2A 14 */ add r5, r6, r5
+/* 8035C8E8 00358548 7D 03 50 AE */ lbzx r8, r3, r10
+/* 8035C8EC 0035854C 7C E3 48 AE */ lbzx r7, r3, r9
+/* 8035C8F0 00358550 54 A5 06 3E */ clrlwi r5, r5, 0x18
+/* 8035C8F4 00358554 7C A3 28 AE */ lbzx r5, r3, r5
+/* 8035C8F8 00358558 7C C8 3A 14 */ add r6, r8, r7
+/* 8035C8FC 0035855C 54 C6 06 3E */ clrlwi r6, r6, 0x18
+/* 8035C900 00358560 7C A3 28 AE */ lbzx r5, r3, r5
+/* 8035C904 00358564 7C C3 30 AE */ lbzx r6, r3, r6
+/* 8035C908 00358568 7C 06 32 78 */ xor r6, r0, r6
+/* 8035C90C 0035856C 98 03 01 04 */ stb r0, 0x104(r3)
+/* 8035C910 00358570 7C C5 2A 78 */ xor r5, r6, r5
+/* 8035C914 00358574 98 A3 01 03 */ stb r5, 0x103(r3)
+/* 8035C918 00358578 98 A4 00 00 */ stb r5, 0(r4)
+/* 8035C91C 0035857C 38 84 00 01 */ addi r4, r4, 1
+/* 8035C920 00358580 42 00 FF 34 */ bdnz lbl_8035C854
+/* 8035C924 00358584 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/sb_queryengine.s b/asm/SDK/DWC/gamespy/sb_queryengine.s new file mode 100644 index 0000000..ff0282f --- /dev/null +++ b/asm/SDK/DWC/gamespy/sb_queryengine.s @@ -0,0 +1,787 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global FIFORemove
+FIFORemove:
+/* 8035C928 00358588 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8035C92C 0035858C 38 C0 00 00 */ li r6, 0
+/* 8035C930 00358590 48 00 00 5C */ b lbl_8035C98C
+lbl_8035C934:
+/* 8035C934 00358594 7C 05 20 40 */ cmplw r5, r4
+/* 8035C938 00358598 40 82 00 4C */ bne lbl_8035C984
+/* 8035C93C 0035859C 2C 06 00 00 */ cmpwi r6, 0
+/* 8035C940 003585A0 41 82 00 0C */ beq lbl_8035C94C
+/* 8035C944 003585A4 80 05 00 24 */ lwz r0, 0x24(r5)
+/* 8035C948 003585A8 90 06 00 24 */ stw r0, 0x24(r6)
+lbl_8035C94C:
+/* 8035C94C 003585AC 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035C950 003585B0 7C 00 28 40 */ cmplw r0, r5
+/* 8035C954 003585B4 40 82 00 0C */ bne lbl_8035C960
+/* 8035C958 003585B8 80 05 00 24 */ lwz r0, 0x24(r5)
+/* 8035C95C 003585BC 90 03 00 00 */ stw r0, 0(r3)
+lbl_8035C960:
+/* 8035C960 003585C0 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035C964 003585C4 7C 00 28 40 */ cmplw r0, r5
+/* 8035C968 003585C8 40 82 00 08 */ bne lbl_8035C970
+/* 8035C96C 003585CC 90 C3 00 04 */ stw r6, 4(r3)
+lbl_8035C970:
+/* 8035C970 003585D0 80 83 00 08 */ lwz r4, 8(r3)
+/* 8035C974 003585D4 38 04 FF FF */ addi r0, r4, -1
+/* 8035C978 003585D8 90 03 00 08 */ stw r0, 8(r3)
+/* 8035C97C 003585DC 38 60 00 01 */ li r3, 1
+/* 8035C980 003585E0 4E 80 00 20 */ blr
+lbl_8035C984:
+/* 8035C984 003585E4 7C A6 2B 78 */ mr r6, r5
+/* 8035C988 003585E8 80 A5 00 24 */ lwz r5, 0x24(r5)
+lbl_8035C98C:
+/* 8035C98C 003585EC 2C 05 00 00 */ cmpwi r5, 0
+/* 8035C990 003585F0 40 82 FF A4 */ bne lbl_8035C934
+/* 8035C994 003585F4 38 60 00 00 */ li r3, 0
+/* 8035C998 003585F8 4E 80 00 20 */ blr
+
+.global QEStartQuery
+QEStartQuery:
+/* 8035C99C 003585FC 94 21 FE D0 */ stwu r1, -0x130(r1)
+/* 8035C9A0 00358600 7C 08 02 A6 */ mflr r0
+/* 8035C9A4 00358604 90 01 01 34 */ stw r0, 0x134(r1)
+/* 8035C9A8 00358608 38 00 00 02 */ li r0, 2
+/* 8035C9AC 0035860C 93 E1 01 2C */ stw r31, 0x12c(r1)
+/* 8035C9B0 00358610 7C 9F 23 78 */ mr r31, r4
+/* 8035C9B4 00358614 93 C1 01 28 */ stw r30, 0x128(r1)
+/* 8035C9B8 00358618 7C 7E 1B 78 */ mr r30, r3
+/* 8035C9BC 0035861C 93 A1 01 24 */ stw r29, 0x124(r1)
+/* 8035C9C0 00358620 3B A0 00 00 */ li r29, 0
+/* 8035C9C4 00358624 98 01 00 11 */ stb r0, 0x11(r1)
+/* 8035C9C8 00358628 4B FD C6 11 */ bl current_time
+/* 8035C9CC 0035862C 88 9F 00 14 */ lbz r4, 0x14(r31)
+/* 8035C9D0 00358630 90 7F 00 1C */ stw r3, 0x1c(r31)
+/* 8035C9D4 00358634 54 80 06 B5 */ rlwinm. r0, r4, 0, 0x1a, 0x1a
+/* 8035C9D8 00358638 40 82 01 DC */ bne lbl_8035CBB4
+/* 8035C9DC 0035863C 80 1E 00 00 */ lwz r0, 0(r30)
+/* 8035C9E0 00358640 2C 00 00 01 */ cmpwi r0, 1
+/* 8035C9E4 00358644 40 82 01 3C */ bne lbl_8035CB20
+/* 8035C9E8 00358648 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
+/* 8035C9EC 0035864C 41 82 00 38 */ beq lbl_8035CA24
+/* 8035C9F0 00358650 38 80 00 FE */ li r4, 0xfe
+/* 8035C9F4 00358654 38 C0 00 FD */ li r6, 0xfd
+/* 8035C9F8 00358658 38 00 00 09 */ li r0, 9
+/* 8035C9FC 0035865C 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035CA00 00358660 98 81 00 18 */ stb r4, 0x18(r1)
+/* 8035CA04 00358664 38 9F 00 1C */ addi r4, r31, 0x1c
+/* 8035CA08 00358668 38 A0 00 04 */ li r5, 4
+/* 8035CA0C 0035866C 38 63 00 03 */ addi r3, r3, 3
+/* 8035CA10 00358670 98 C1 00 19 */ stb r6, 0x19(r1)
+/* 8035CA14 00358674 98 01 00 1A */ stb r0, 0x1a(r1)
+/* 8035CA18 00358678 4B CA 75 E9 */ bl memcpy
+/* 8035CA1C 0035867C 38 A0 00 07 */ li r5, 7
+/* 8035CA20 00358680 48 00 01 3C */ b lbl_8035CB5C
+lbl_8035CA24:
+/* 8035CA24 00358684 80 7F 00 20 */ lwz r3, 0x20(r31)
+/* 8035CA28 00358688 4B F9 A3 51 */ bl SOHtoNl
+/* 8035CA2C 0035868C 38 E0 00 FE */ li r7, 0xfe
+/* 8035CA30 00358690 38 C0 00 FD */ li r6, 0xfd
+/* 8035CA34 00358694 38 00 00 00 */ li r0, 0
+/* 8035CA38 00358698 3B A1 00 18 */ addi r29, r1, 0x18
+/* 8035CA3C 0035869C 90 61 00 08 */ stw r3, 8(r1)
+/* 8035CA40 003586A0 7F A3 EB 78 */ mr r3, r29
+/* 8035CA44 003586A4 38 9F 00 1C */ addi r4, r31, 0x1c
+/* 8035CA48 003586A8 38 A0 00 04 */ li r5, 4
+/* 8035CA4C 003586AC 98 E1 00 18 */ stb r7, 0x18(r1)
+/* 8035CA50 003586B0 38 63 00 03 */ addi r3, r3, 3
+/* 8035CA54 003586B4 98 C1 00 19 */ stb r6, 0x19(r1)
+/* 8035CA58 003586B8 98 01 00 1A */ stb r0, 0x1a(r1)
+/* 8035CA5C 003586BC 4B CA 75 A5 */ bl memcpy
+/* 8035CA60 003586C0 80 01 00 08 */ lwz r0, 8(r1)
+/* 8035CA64 003586C4 38 C0 00 07 */ li r6, 7
+/* 8035CA68 003586C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035CA6C 003586CC 41 82 00 1C */ beq lbl_8035CA88
+/* 8035CA70 003586D0 7F A3 EB 78 */ mr r3, r29
+/* 8035CA74 003586D4 38 81 00 08 */ addi r4, r1, 8
+/* 8035CA78 003586D8 38 A0 00 04 */ li r5, 4
+/* 8035CA7C 003586DC 38 63 00 07 */ addi r3, r3, 7
+/* 8035CA80 003586E0 4B CA 75 81 */ bl memcpy
+/* 8035CA84 003586E4 38 C0 00 0B */ li r6, 0xb
+lbl_8035CA88:
+/* 8035CA88 003586E8 88 1F 00 14 */ lbz r0, 0x14(r31)
+/* 8035CA8C 003586EC 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
+/* 8035CA90 003586F0 41 82 00 60 */ beq lbl_8035CAF0
+/* 8035CA94 003586F4 80 1E 00 40 */ lwz r0, 0x40(r30)
+/* 8035CA98 003586F8 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035CA9C 003586FC 38 A0 00 00 */ li r5, 0
+/* 8035CAA0 00358700 7C 03 31 AE */ stbx r0, r3, r6
+/* 8035CAA4 00358704 38 C6 00 01 */ addi r6, r6, 1
+/* 8035CAA8 00358708 7C 63 32 14 */ add r3, r3, r6
+/* 8035CAAC 0035870C 48 00 00 1C */ b lbl_8035CAC8
+lbl_8035CAB0:
+/* 8035CAB0 00358710 7C 9E 2A 14 */ add r4, r30, r5
+/* 8035CAB4 00358714 38 A5 00 01 */ addi r5, r5, 1
+/* 8035CAB8 00358718 88 04 00 2C */ lbz r0, 0x2c(r4)
+/* 8035CABC 0035871C 38 C6 00 01 */ addi r6, r6, 1
+/* 8035CAC0 00358720 98 03 00 00 */ stb r0, 0(r3)
+/* 8035CAC4 00358724 38 63 00 01 */ addi r3, r3, 1
+lbl_8035CAC8:
+/* 8035CAC8 00358728 80 1E 00 40 */ lwz r0, 0x40(r30)
+/* 8035CACC 0035872C 7C 05 00 00 */ cmpw r5, r0
+/* 8035CAD0 00358730 41 80 FF E0 */ blt lbl_8035CAB0
+/* 8035CAD4 00358734 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035CAD8 00358738 38 00 00 00 */ li r0, 0
+/* 8035CADC 0035873C 7C 03 31 AE */ stbx r0, r3, r6
+/* 8035CAE0 00358740 38 A6 00 02 */ addi r5, r6, 2
+/* 8035CAE4 00358744 38 C6 00 01 */ addi r6, r6, 1
+/* 8035CAE8 00358748 7C 03 31 AE */ stbx r0, r3, r6
+/* 8035CAEC 0035874C 48 00 00 70 */ b lbl_8035CB5C
+lbl_8035CAF0:
+/* 8035CAF0 00358750 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035CAF4 00358754 38 80 00 FF */ li r4, 0xff
+/* 8035CAF8 00358758 7C 83 31 AE */ stbx r4, r3, r6
+/* 8035CAFC 0035875C 38 C6 00 01 */ addi r6, r6, 1
+/* 8035CB00 00358760 38 00 00 01 */ li r0, 1
+/* 8035CB04 00358764 7C 83 31 AE */ stbx r4, r3, r6
+/* 8035CB08 00358768 38 C6 00 01 */ addi r6, r6, 1
+/* 8035CB0C 0035876C 38 A6 00 02 */ addi r5, r6, 2
+/* 8035CB10 00358770 7C 83 31 AE */ stbx r4, r3, r6
+/* 8035CB14 00358774 38 C6 00 01 */ addi r6, r6, 1
+/* 8035CB18 00358778 7C 03 31 AE */ stbx r0, r3, r6
+/* 8035CB1C 0035877C 48 00 00 40 */ b lbl_8035CB5C
+lbl_8035CB20:
+/* 8035CB20 00358780 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d
+/* 8035CB24 00358784 41 82 00 20 */ beq lbl_8035CB44
+/* 8035CB28 00358788 3C 80 80 45 */ lis r4, lbl_8044C5B8@ha
+/* 8035CB2C 0035878C 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035CB30 00358790 38 84 C5 B8 */ addi r4, r4, lbl_8044C5B8@l
+/* 8035CB34 00358794 38 A0 00 0D */ li r5, 0xd
+/* 8035CB38 00358798 4B CA 74 C9 */ bl memcpy
+/* 8035CB3C 0035879C 38 A0 00 0D */ li r5, 0xd
+/* 8035CB40 003587A0 48 00 00 1C */ b lbl_8035CB5C
+lbl_8035CB44:
+/* 8035CB44 003587A4 3C 80 80 45 */ lis r4, lbl_8044C5C8@ha
+/* 8035CB48 003587A8 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035CB4C 003587AC 38 84 C5 C8 */ addi r4, r4, lbl_8044C5C8@l
+/* 8035CB50 003587B0 38 A0 00 08 */ li r5, 8
+/* 8035CB54 003587B4 4B CA 74 AD */ bl memcpy
+/* 8035CB58 003587B8 38 A0 00 08 */ li r5, 8
+lbl_8035CB5C:
+/* 8035CB5C 003587BC 80 7F 00 00 */ lwz r3, 0(r31)
+/* 8035CB60 003587C0 80 1E 00 28 */ lwz r0, 0x28(r30)
+/* 8035CB64 003587C4 7C 03 00 40 */ cmplw r3, r0
+/* 8035CB68 003587C8 40 82 00 24 */ bne lbl_8035CB8C
+/* 8035CB6C 003587CC 88 1F 00 15 */ lbz r0, 0x15(r31)
+/* 8035CB70 003587D0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 8035CB74 003587D4 41 82 00 18 */ beq lbl_8035CB8C
+/* 8035CB78 003587D8 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8035CB7C 003587DC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035CB80 003587E0 A0 1F 00 0C */ lhz r0, 0xc(r31)
+/* 8035CB84 003587E4 B0 01 00 12 */ sth r0, 0x12(r1)
+/* 8035CB88 003587E8 48 00 00 10 */ b lbl_8035CB98
+lbl_8035CB8C:
+/* 8035CB8C 003587EC 90 61 00 14 */ stw r3, 0x14(r1)
+/* 8035CB90 003587F0 A0 1F 00 04 */ lhz r0, 4(r31)
+/* 8035CB94 003587F4 B0 01 00 12 */ sth r0, 0x12(r1)
+lbl_8035CB98:
+/* 8035CB98 003587F8 80 7E 00 20 */ lwz r3, 0x20(r30)
+/* 8035CB9C 003587FC 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035CBA0 00358800 38 E1 00 10 */ addi r7, r1, 0x10
+/* 8035CBA4 00358804 38 C0 00 00 */ li r6, 0
+/* 8035CBA8 00358808 39 00 00 08 */ li r8, 8
+/* 8035CBAC 0035880C 4B FD B2 E9 */ bl sendto
+/* 8035CBB0 00358810 3B A0 00 01 */ li r29, 1
+lbl_8035CBB4:
+/* 8035CBB4 00358814 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035CBB8 00358818 41 82 00 40 */ beq lbl_8035CBF8
+/* 8035CBBC 0035881C 80 7E 00 0C */ lwz r3, 0xc(r30)
+/* 8035CBC0 00358820 2C 03 00 00 */ cmpwi r3, 0
+/* 8035CBC4 00358824 41 82 00 08 */ beq lbl_8035CBCC
+/* 8035CBC8 00358828 93 E3 00 24 */ stw r31, 0x24(r3)
+lbl_8035CBCC:
+/* 8035CBCC 0035882C 93 FE 00 0C */ stw r31, 0xc(r30)
+/* 8035CBD0 00358830 38 00 00 00 */ li r0, 0
+/* 8035CBD4 00358834 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 8035CBD8 00358838 80 1E 00 08 */ lwz r0, 8(r30)
+/* 8035CBDC 0035883C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035CBE0 00358840 40 82 00 08 */ bne lbl_8035CBE8
+/* 8035CBE4 00358844 93 FE 00 08 */ stw r31, 8(r30)
+lbl_8035CBE8:
+/* 8035CBE8 00358848 80 7E 00 10 */ lwz r3, 0x10(r30)
+/* 8035CBEC 0035884C 38 03 00 01 */ addi r0, r3, 1
+/* 8035CBF0 00358850 90 1E 00 10 */ stw r0, 0x10(r30)
+/* 8035CBF4 00358854 48 00 00 0C */ b lbl_8035CC00
+lbl_8035CBF8:
+/* 8035CBF8 00358858 38 00 00 00 */ li r0, 0
+/* 8035CBFC 0035885C 90 1F 00 1C */ stw r0, 0x1c(r31)
+lbl_8035CC00:
+/* 8035CC00 00358860 80 01 01 34 */ lwz r0, 0x134(r1)
+/* 8035CC04 00358864 83 E1 01 2C */ lwz r31, 0x12c(r1)
+/* 8035CC08 00358868 83 C1 01 28 */ lwz r30, 0x128(r1)
+/* 8035CC0C 0035886C 83 A1 01 24 */ lwz r29, 0x124(r1)
+/* 8035CC10 00358870 7C 08 03 A6 */ mtlr r0
+/* 8035CC14 00358874 38 21 01 30 */ addi r1, r1, 0x130
+/* 8035CC18 00358878 4E 80 00 20 */ blr
+
+.global SBQueryEngineInit
+SBQueryEngineInit:
+/* 8035CC1C 0035887C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035CC20 00358880 7C 08 02 A6 */ mflr r0
+/* 8035CC24 00358884 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035CC28 00358888 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035CC2C 0035888C 4B E6 A4 F9 */ bl _savegpr_26
+/* 8035CC30 00358890 2C 06 00 00 */ cmpwi r6, 0
+/* 8035CC34 00358894 7C 7A 1B 78 */ mr r26, r3
+/* 8035CC38 00358898 7C 9B 23 78 */ mr r27, r4
+/* 8035CC3C 0035889C 7C BC 2B 78 */ mr r28, r5
+/* 8035CC40 003588A0 7C FD 3B 78 */ mr r29, r7
+/* 8035CC44 003588A4 7D 1E 43 78 */ mr r30, r8
+/* 8035CC48 003588A8 40 82 00 10 */ bne lbl_8035CC58
+/* 8035CC4C 003588AC 80 0D B0 A8 */ lwz r0, lbl_80640368-_SDA_BASE_(r13)
+/* 8035CC50 003588B0 2C 00 00 01 */ cmpwi r0, 1
+/* 8035CC54 003588B4 40 82 00 50 */ bne lbl_8035CCA4
+lbl_8035CC58:
+/* 8035CC58 003588B8 4B FD C3 79 */ bl SocketStartUp
+/* 8035CC5C 003588BC 3B E0 00 00 */ li r31, 0
+/* 8035CC60 003588C0 93 9A 00 00 */ stw r28, 0(r26)
+/* 8035CC64 003588C4 38 60 00 02 */ li r3, 2
+/* 8035CC68 003588C8 38 80 00 02 */ li r4, 2
+/* 8035CC6C 003588CC 93 7A 00 04 */ stw r27, 4(r26)
+/* 8035CC70 003588D0 38 A0 00 11 */ li r5, 0x11
+/* 8035CC74 003588D4 93 FA 00 40 */ stw r31, 0x40(r26)
+/* 8035CC78 003588D8 93 BA 00 44 */ stw r29, 0x44(r26)
+/* 8035CC7C 003588DC 93 DA 00 48 */ stw r30, 0x48(r26)
+/* 8035CC80 003588E0 93 FA 00 28 */ stw r31, 0x28(r26)
+/* 8035CC84 003588E4 4B FD AF 41 */ bl socket
+/* 8035CC88 003588E8 90 7A 00 20 */ stw r3, 0x20(r26)
+/* 8035CC8C 003588EC 93 FA 00 18 */ stw r31, 0x18(r26)
+/* 8035CC90 003588F0 93 FA 00 14 */ stw r31, 0x14(r26)
+/* 8035CC94 003588F4 93 FA 00 1C */ stw r31, 0x1c(r26)
+/* 8035CC98 003588F8 93 FA 00 0C */ stw r31, 0xc(r26)
+/* 8035CC9C 003588FC 93 FA 00 08 */ stw r31, 8(r26)
+/* 8035CCA0 00358900 93 FA 00 10 */ stw r31, 0x10(r26)
+lbl_8035CCA4:
+/* 8035CCA4 00358904 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035CCA8 00358908 4B E6 A4 C9 */ bl _restgpr_26
+/* 8035CCAC 0035890C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035CCB0 00358910 7C 08 03 A6 */ mtlr r0
+/* 8035CCB4 00358914 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035CCB8 00358918 4E 80 00 20 */ blr
+
+.global SBQueryEngineSetPublicIP
+SBQueryEngineSetPublicIP:
+/* 8035CCBC 0035891C 90 83 00 28 */ stw r4, 0x28(r3)
+/* 8035CCC0 00358920 4E 80 00 20 */ blr
+
+.global SBEngineHaltUpdates
+SBEngineHaltUpdates:
+/* 8035CCC4 00358924 38 00 00 00 */ li r0, 0
+/* 8035CCC8 00358928 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8035CCCC 0035892C 90 03 00 14 */ stw r0, 0x14(r3)
+/* 8035CCD0 00358930 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 8035CCD4 00358934 90 03 00 0C */ stw r0, 0xc(r3)
+/* 8035CCD8 00358938 90 03 00 08 */ stw r0, 8(r3)
+/* 8035CCDC 0035893C 90 03 00 10 */ stw r0, 0x10(r3)
+/* 8035CCE0 00358940 4E 80 00 20 */ blr
+
+.global SBEngineCleanup
+SBEngineCleanup:
+/* 8035CCE4 00358944 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035CCE8 00358948 7C 08 02 A6 */ mflr r0
+/* 8035CCEC 0035894C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035CCF0 00358950 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035CCF4 00358954 7C 7F 1B 78 */ mr r31, r3
+/* 8035CCF8 00358958 80 63 00 20 */ lwz r3, 0x20(r3)
+/* 8035CCFC 0035895C 4B FD AF 01 */ bl closesocket
+/* 8035CD00 00358960 38 00 00 00 */ li r0, 0
+/* 8035CD04 00358964 38 60 FF FF */ li r3, -1
+/* 8035CD08 00358968 90 7F 00 20 */ stw r3, 0x20(r31)
+/* 8035CD0C 0035896C 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 8035CD10 00358970 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 8035CD14 00358974 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 8035CD18 00358978 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8035CD1C 0035897C 90 1F 00 08 */ stw r0, 8(r31)
+/* 8035CD20 00358980 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 8035CD24 00358984 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035CD28 00358988 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035CD2C 0035898C 7C 08 03 A6 */ mtlr r0
+/* 8035CD30 00358990 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035CD34 00358994 4E 80 00 20 */ blr
+
+.global SBQueryEngineUpdateServer
+SBQueryEngineUpdateServer:
+/* 8035CD38 00358998 89 04 00 14 */ lbz r8, 0x14(r4)
+/* 8035CD3C 0035899C 38 00 00 00 */ li r0, 0
+/* 8035CD40 003589A0 2C 86 00 02 */ cmpwi cr1, r6, 2
+/* 8035CD44 003589A4 98 04 00 28 */ stb r0, 0x28(r4)
+/* 8035CD48 003589A8 71 08 00 43 */ andi. r8, r8, 0x43
+/* 8035CD4C 003589AC 90 04 00 20 */ stw r0, 0x20(r4)
+/* 8035CD50 003589B0 99 04 00 14 */ stb r8, 0x14(r4)
+/* 8035CD54 003589B4 4D 86 00 20 */ beqlr cr1
+/* 8035CD58 003589B8 2C 06 00 00 */ cmpwi r6, 0
+/* 8035CD5C 003589BC 40 82 00 10 */ bne lbl_8035CD6C
+/* 8035CD60 003589C0 61 00 00 04 */ ori r0, r8, 4
+/* 8035CD64 003589C4 98 04 00 14 */ stb r0, 0x14(r4)
+/* 8035CD68 003589C8 48 00 00 2C */ b lbl_8035CD94
+lbl_8035CD6C:
+/* 8035CD6C 003589CC 2C 06 00 01 */ cmpwi r6, 1
+/* 8035CD70 003589D0 40 82 00 10 */ bne lbl_8035CD80
+/* 8035CD74 003589D4 61 00 00 08 */ ori r0, r8, 8
+/* 8035CD78 003589D8 98 04 00 14 */ stb r0, 0x14(r4)
+/* 8035CD7C 003589DC 48 00 00 18 */ b lbl_8035CD94
+lbl_8035CD80:
+/* 8035CD80 003589E0 4C 86 00 20 */ bnelr cr1
+/* 8035CD84 003589E4 61 00 00 20 */ ori r0, r8, 0x20
+/* 8035CD88 003589E8 98 04 00 14 */ stb r0, 0x14(r4)
+/* 8035CD8C 003589EC 48 00 00 08 */ b lbl_8035CD94
+/* 8035CD90 003589F0 4E 80 00 20 */ blr
+lbl_8035CD94:
+/* 8035CD94 003589F4 2C 07 00 00 */ cmpwi r7, 0
+/* 8035CD98 003589F8 41 82 00 18 */ beq lbl_8035CDB0
+/* 8035CD9C 003589FC 28 06 00 01 */ cmplwi r6, 1
+/* 8035CDA0 00358A00 41 81 00 10 */ bgt lbl_8035CDB0
+/* 8035CDA4 00358A04 88 04 00 14 */ lbz r0, 0x14(r4)
+/* 8035CDA8 00358A08 60 00 00 80 */ ori r0, r0, 0x80
+/* 8035CDAC 00358A0C 98 04 00 14 */ stb r0, 0x14(r4)
+lbl_8035CDB0:
+/* 8035CDB0 00358A10 80 C3 00 10 */ lwz r6, 0x10(r3)
+/* 8035CDB4 00358A14 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035CDB8 00358A18 7C 06 00 00 */ cmpw r6, r0
+/* 8035CDBC 00358A1C 40 80 00 08 */ bge lbl_8035CDC4
+/* 8035CDC0 00358A20 4B FF FB DC */ b QEStartQuery
+lbl_8035CDC4:
+/* 8035CDC4 00358A24 2C 05 00 00 */ cmpwi r5, 0
+/* 8035CDC8 00358A28 41 82 00 30 */ beq lbl_8035CDF8
+/* 8035CDCC 00358A2C 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8035CDD0 00358A30 90 04 00 24 */ stw r0, 0x24(r4)
+/* 8035CDD4 00358A34 80 03 00 18 */ lwz r0, 0x18(r3)
+/* 8035CDD8 00358A38 90 83 00 14 */ stw r4, 0x14(r3)
+/* 8035CDDC 00358A3C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035CDE0 00358A40 40 82 00 08 */ bne lbl_8035CDE8
+/* 8035CDE4 00358A44 90 83 00 18 */ stw r4, 0x18(r3)
+lbl_8035CDE8:
+/* 8035CDE8 00358A48 80 83 00 1C */ lwz r4, 0x1c(r3)
+/* 8035CDEC 00358A4C 38 04 00 01 */ addi r0, r4, 1
+/* 8035CDF0 00358A50 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 8035CDF4 00358A54 4E 80 00 20 */ blr
+lbl_8035CDF8:
+/* 8035CDF8 00358A58 80 A3 00 18 */ lwz r5, 0x18(r3)
+/* 8035CDFC 00358A5C 2C 05 00 00 */ cmpwi r5, 0
+/* 8035CE00 00358A60 41 82 00 08 */ beq lbl_8035CE08
+/* 8035CE04 00358A64 90 85 00 24 */ stw r4, 0x24(r5)
+lbl_8035CE08:
+/* 8035CE08 00358A68 90 83 00 18 */ stw r4, 0x18(r3)
+/* 8035CE0C 00358A6C 38 00 00 00 */ li r0, 0
+/* 8035CE10 00358A70 90 04 00 24 */ stw r0, 0x24(r4)
+/* 8035CE14 00358A74 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 8035CE18 00358A78 2C 00 00 00 */ cmpwi r0, 0
+/* 8035CE1C 00358A7C 40 82 00 08 */ bne lbl_8035CE24
+/* 8035CE20 00358A80 90 83 00 14 */ stw r4, 0x14(r3)
+lbl_8035CE24:
+/* 8035CE24 00358A84 80 83 00 1C */ lwz r4, 0x1c(r3)
+/* 8035CE28 00358A88 38 04 00 01 */ addi r0, r4, 1
+/* 8035CE2C 00358A8C 90 03 00 1C */ stw r0, 0x1c(r3)
+/* 8035CE30 00358A90 4E 80 00 20 */ blr
+
+.global ParseSingleQR2Reply
+ParseSingleQR2Reply:
+/* 8035CE34 00358A94 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035CE38 00358A98 7C 08 02 A6 */ mflr r0
+/* 8035CE3C 00358A9C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035CE40 00358AA0 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035CE44 00358AA4 4B E6 A2 DD */ bl _savegpr_25
+/* 8035CE48 00358AA8 88 05 00 00 */ lbz r0, 0(r5)
+/* 8035CE4C 00358AAC 7C 7E 1B 78 */ mr r30, r3
+/* 8035CE50 00358AB0 7C 9F 23 78 */ mr r31, r4
+/* 8035CE54 00358AB4 7C 00 07 75 */ extsb. r0, r0
+/* 8035CE58 00358AB8 41 82 00 0C */ beq lbl_8035CE64
+/* 8035CE5C 00358ABC 2C 00 00 09 */ cmpwi r0, 9
+/* 8035CE60 00358AC0 40 82 01 94 */ bne lbl_8035CFF4
+lbl_8035CE64:
+/* 8035CE64 00358AC4 88 64 00 14 */ lbz r3, 0x14(r4)
+/* 8035CE68 00358AC8 3B 25 00 05 */ addi r25, r5, 5
+/* 8035CE6C 00358ACC 3B 46 FF FB */ addi r26, r6, -5
+/* 8035CE70 00358AD0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18
+/* 8035CE74 00358AD4 41 82 00 58 */ beq lbl_8035CECC
+/* 8035CE78 00358AD8 54 60 06 7E */ clrlwi r0, r3, 0x19
+/* 8035CE7C 00358ADC 2C 1A 00 00 */ cmpwi r26, 0
+/* 8035CE80 00358AE0 98 04 00 14 */ stb r0, 0x14(r4)
+/* 8035CE84 00358AE4 40 81 01 2C */ ble lbl_8035CFB0
+/* 8035CE88 00358AE8 7F 23 CB 78 */ mr r3, r25
+/* 8035CE8C 00358AEC 4B E7 38 81 */ bl atoi
+/* 8035CE90 00358AF0 90 7F 00 20 */ stw r3, 0x20(r31)
+/* 8035CE94 00358AF4 7F E4 FB 78 */ mr r4, r31
+/* 8035CE98 00358AF8 38 7E 00 08 */ addi r3, r30, 8
+/* 8035CE9C 00358AFC 4B FF FA 8D */ bl FIFORemove
+/* 8035CEA0 00358B00 7F C3 F3 78 */ mr r3, r30
+/* 8035CEA4 00358B04 7F E4 FB 78 */ mr r4, r31
+/* 8035CEA8 00358B08 4B FF FA F5 */ bl QEStartQuery
+/* 8035CEAC 00358B0C 81 9E 00 44 */ lwz r12, 0x44(r30)
+/* 8035CEB0 00358B10 7F C3 F3 78 */ mr r3, r30
+/* 8035CEB4 00358B14 7F E5 FB 78 */ mr r5, r31
+/* 8035CEB8 00358B18 80 DE 00 48 */ lwz r6, 0x48(r30)
+/* 8035CEBC 00358B1C 38 80 00 03 */ li r4, 3
+/* 8035CEC0 00358B20 7D 89 03 A6 */ mtctr r12
+/* 8035CEC4 00358B24 4E 80 04 21 */ bctrl
+/* 8035CEC8 00358B28 48 00 01 2C */ b lbl_8035CFF4
+lbl_8035CECC:
+/* 8035CECC 00358B2C 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
+/* 8035CED0 00358B30 41 82 00 70 */ beq lbl_8035CF40
+/* 8035CED4 00358B34 3F A0 80 45 */ lis r29, lbl_8044BB78@ha
+/* 8035CED8 00358B38 3B 60 00 00 */ li r27, 0
+/* 8035CEDC 00358B3C 3B BD BB 78 */ addi r29, r29, lbl_8044BB78@l
+/* 8035CEE0 00358B40 48 00 00 44 */ b lbl_8035CF24
+lbl_8035CEE4:
+/* 8035CEE4 00358B44 7F 23 CB 78 */ mr r3, r25
+/* 8035CEE8 00358B48 7F 44 D3 78 */ mr r4, r26
+/* 8035CEEC 00358B4C 48 00 23 29 */ bl NTSLengthSB
+/* 8035CEF0 00358B50 2C 03 00 00 */ cmpwi r3, 0
+/* 8035CEF4 00358B54 7C 7C 1B 78 */ mr r28, r3
+/* 8035CEF8 00358B58 41 80 00 38 */ blt lbl_8035CF30
+/* 8035CEFC 00358B5C 7C 9E DA 14 */ add r4, r30, r27
+/* 8035CF00 00358B60 7F E3 FB 78 */ mr r3, r31
+/* 8035CF04 00358B64 88 04 00 2C */ lbz r0, 0x2c(r4)
+/* 8035CF08 00358B68 7F 25 CB 78 */ mr r5, r25
+/* 8035CF0C 00358B6C 54 00 10 3A */ slwi r0, r0, 2
+/* 8035CF10 00358B70 7C 9D 00 2E */ lwzx r4, r29, r0
+/* 8035CF14 00358B74 48 00 06 25 */ bl SBServerAddKeyValue
+/* 8035CF18 00358B78 7F 39 E2 14 */ add r25, r25, r28
+/* 8035CF1C 00358B7C 7F 5C D0 50 */ subf r26, r28, r26
+/* 8035CF20 00358B80 3B 7B 00 01 */ addi r27, r27, 1
+lbl_8035CF24:
+/* 8035CF24 00358B84 80 1E 00 40 */ lwz r0, 0x40(r30)
+/* 8035CF28 00358B88 7C 1B 00 00 */ cmpw r27, r0
+/* 8035CF2C 00358B8C 41 80 FF B8 */ blt lbl_8035CEE4
+lbl_8035CF30:
+/* 8035CF30 00358B90 88 1F 00 14 */ lbz r0, 0x14(r31)
+/* 8035CF34 00358B94 60 00 00 41 */ ori r0, r0, 0x41
+/* 8035CF38 00358B98 98 1F 00 14 */ stb r0, 0x14(r31)
+/* 8035CF3C 00358B9C 48 00 00 74 */ b lbl_8035CFB0
+lbl_8035CF40:
+/* 8035CF40 00358BA0 88 19 00 00 */ lbz r0, 0(r25)
+/* 8035CF44 00358BA4 7C 00 07 75 */ extsb. r0, r0
+/* 8035CF48 00358BA8 41 82 00 4C */ beq lbl_8035CF94
+/* 8035CF4C 00358BAC 3C 60 80 45 */ lis r3, lbl_8044C5D4@ha
+/* 8035CF50 00358BB0 7F 24 CB 78 */ mr r4, r25
+/* 8035CF54 00358BB4 38 63 C5 D4 */ addi r3, r3, lbl_8044C5D4@l
+/* 8035CF58 00358BB8 38 A0 00 08 */ li r5, 8
+/* 8035CF5C 00358BBC 4B E7 16 0D */ bl strncmp
+/* 8035CF60 00358BC0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035CF64 00358BC4 40 82 00 30 */ bne lbl_8035CF94
+/* 8035CF68 00358BC8 7F E3 FB 78 */ mr r3, r31
+/* 8035CF6C 00358BCC 7F 24 CB 78 */ mr r4, r25
+/* 8035CF70 00358BD0 7F 45 D3 78 */ mr r5, r26
+/* 8035CF74 00358BD4 48 00 0C C1 */ bl SBServerParseQR2FullKeysSplit
+/* 8035CF78 00358BD8 88 1F 00 28 */ lbz r0, 0x28(r31)
+/* 8035CF7C 00358BDC 28 00 00 FF */ cmplwi r0, 0xff
+/* 8035CF80 00358BE0 40 82 00 74 */ bne lbl_8035CFF4
+/* 8035CF84 00358BE4 88 1F 00 14 */ lbz r0, 0x14(r31)
+/* 8035CF88 00358BE8 60 00 00 43 */ ori r0, r0, 0x43
+/* 8035CF8C 00358BEC 98 1F 00 14 */ stb r0, 0x14(r31)
+/* 8035CF90 00358BF0 48 00 00 20 */ b lbl_8035CFB0
+lbl_8035CF94:
+/* 8035CF94 00358BF4 7F E3 FB 78 */ mr r3, r31
+/* 8035CF98 00358BF8 7F 24 CB 78 */ mr r4, r25
+/* 8035CF9C 00358BFC 7F 45 D3 78 */ mr r5, r26
+/* 8035CFA0 00358C00 48 00 0A B1 */ bl SBServerParseQR2FullKeysSingle
+/* 8035CFA4 00358C04 88 1F 00 14 */ lbz r0, 0x14(r31)
+/* 8035CFA8 00358C08 60 00 00 43 */ ori r0, r0, 0x43
+/* 8035CFAC 00358C0C 98 1F 00 14 */ stb r0, 0x14(r31)
+lbl_8035CFB0:
+/* 8035CFB0 00358C10 88 1F 00 14 */ lbz r0, 0x14(r31)
+/* 8035CFB4 00358C14 70 00 00 F3 */ andi. r0, r0, 0xf3
+/* 8035CFB8 00358C18 98 1F 00 14 */ stb r0, 0x14(r31)
+/* 8035CFBC 00358C1C 4B FD C0 1D */ bl current_time
+/* 8035CFC0 00358C20 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 8035CFC4 00358C24 7F E4 FB 78 */ mr r4, r31
+/* 8035CFC8 00358C28 7C 00 18 50 */ subf r0, r0, r3
+/* 8035CFCC 00358C2C 38 7E 00 08 */ addi r3, r30, 8
+/* 8035CFD0 00358C30 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 8035CFD4 00358C34 4B FF F9 55 */ bl FIFORemove
+/* 8035CFD8 00358C38 81 9E 00 44 */ lwz r12, 0x44(r30)
+/* 8035CFDC 00358C3C 7F C3 F3 78 */ mr r3, r30
+/* 8035CFE0 00358C40 7F E5 FB 78 */ mr r5, r31
+/* 8035CFE4 00358C44 80 DE 00 48 */ lwz r6, 0x48(r30)
+/* 8035CFE8 00358C48 38 80 00 00 */ li r4, 0
+/* 8035CFEC 00358C4C 7D 89 03 A6 */ mtctr r12
+/* 8035CFF0 00358C50 4E 80 04 21 */ bctrl
+lbl_8035CFF4:
+/* 8035CFF4 00358C54 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035CFF8 00358C58 4B E6 A1 75 */ bl _restgpr_25
+/* 8035CFFC 00358C5C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035D000 00358C60 7C 08 03 A6 */ mtlr r0
+/* 8035D004 00358C64 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035D008 00358C68 4E 80 00 20 */ blr
+
+.global ProcessIncomingReplies
+ProcessIncomingReplies:
+/* 8035D00C 00358C6C 94 21 F7 C0 */ stwu r1, -0x840(r1)
+/* 8035D010 00358C70 7C 08 02 A6 */ mflr r0
+/* 8035D014 00358C74 90 01 08 44 */ stw r0, 0x844(r1)
+/* 8035D018 00358C78 39 61 08 40 */ addi r11, r1, 0x840
+/* 8035D01C 00358C7C 4B E6 A1 05 */ bl _savegpr_25
+/* 8035D020 00358C80 38 00 00 08 */ li r0, 8
+/* 8035D024 00358C84 2C 04 00 00 */ cmpwi r4, 0
+/* 8035D028 00358C88 90 01 00 08 */ stw r0, 8(r1)
+/* 8035D02C 00358C8C 7C 7A 1B 78 */ mr r26, r3
+/* 8035D030 00358C90 7C 9B 23 78 */ mr r27, r4
+/* 8035D034 00358C94 3B 80 00 00 */ li r28, 0
+/* 8035D038 00358C98 40 82 00 08 */ bne lbl_8035D040
+/* 8035D03C 00358C9C 83 83 00 20 */ lwz r28, 0x20(r3)
+lbl_8035D040:
+/* 8035D040 00358CA0 3B E1 00 18 */ addi r31, r1, 0x18
+/* 8035D044 00358CA4 3B C0 00 00 */ li r30, 0
+/* 8035D048 00358CA8 48 00 01 78 */ b lbl_8035D1C0
+lbl_8035D04C:
+/* 8035D04C 00358CAC 7F 83 E3 78 */ mr r3, r28
+/* 8035D050 00358CB0 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035D054 00358CB4 38 E1 00 10 */ addi r7, r1, 0x10
+/* 8035D058 00358CB8 39 01 00 08 */ addi r8, r1, 8
+/* 8035D05C 00358CBC 38 A0 07 FF */ li r5, 0x7ff
+/* 8035D060 00358CC0 38 C0 00 00 */ li r6, 0
+/* 8035D064 00358CC4 4B FD AD A1 */ bl recvfrom
+/* 8035D068 00358CC8 2C 03 FF FF */ cmpwi r3, -1
+/* 8035D06C 00358CCC 7C 66 1B 78 */ mr r6, r3
+/* 8035D070 00358CD0 41 82 01 60 */ beq lbl_8035D1D0
+/* 8035D074 00358CD4 7F DF 19 AE */ stbx r30, r31, r3
+/* 8035D078 00358CD8 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 8035D07C 00358CDC 83 BA 00 08 */ lwz r29, 8(r26)
+/* 8035D080 00358CE0 A0 81 00 12 */ lhz r4, 0x12(r1)
+/* 8035D084 00358CE4 48 00 01 34 */ b lbl_8035D1B8
+lbl_8035D088:
+/* 8035D088 00358CE8 2C 1B 00 00 */ cmpwi r27, 0
+/* 8035D08C 00358CEC 41 82 00 1C */ beq lbl_8035D0A8
+/* 8035D090 00358CF0 88 1D 00 15 */ lbz r0, 0x15(r29)
+/* 8035D094 00358CF4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 8035D098 00358CF8 41 82 00 10 */ beq lbl_8035D0A8
+/* 8035D09C 00358CFC 80 1D 00 10 */ lwz r0, 0x10(r29)
+/* 8035D0A0 00358D00 7C 00 18 40 */ cmplw r0, r3
+/* 8035D0A4 00358D04 41 82 00 54 */ beq lbl_8035D0F8
+lbl_8035D0A8:
+/* 8035D0A8 00358D08 80 BD 00 00 */ lwz r5, 0(r29)
+/* 8035D0AC 00358D0C 7C 05 18 40 */ cmplw r5, r3
+/* 8035D0B0 00358D10 40 82 00 18 */ bne lbl_8035D0C8
+/* 8035D0B4 00358D14 A0 1D 00 04 */ lhz r0, 4(r29)
+/* 8035D0B8 00358D18 7C 00 20 40 */ cmplw r0, r4
+/* 8035D0BC 00358D1C 41 82 00 3C */ beq lbl_8035D0F8
+/* 8035D0C0 00358D20 2C 1B 00 00 */ cmpwi r27, 0
+/* 8035D0C4 00358D24 40 82 00 34 */ bne lbl_8035D0F8
+lbl_8035D0C8:
+/* 8035D0C8 00358D28 80 1A 00 28 */ lwz r0, 0x28(r26)
+/* 8035D0CC 00358D2C 7C 05 00 40 */ cmplw r5, r0
+/* 8035D0D0 00358D30 40 82 00 E4 */ bne lbl_8035D1B4
+/* 8035D0D4 00358D34 88 1D 00 15 */ lbz r0, 0x15(r29)
+/* 8035D0D8 00358D38 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 8035D0DC 00358D3C 41 82 00 D8 */ beq lbl_8035D1B4
+/* 8035D0E0 00358D40 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8035D0E4 00358D44 7C 00 18 40 */ cmplw r0, r3
+/* 8035D0E8 00358D48 40 82 00 CC */ bne lbl_8035D1B4
+/* 8035D0EC 00358D4C A0 1D 00 0C */ lhz r0, 0xc(r29)
+/* 8035D0F0 00358D50 7C 00 20 40 */ cmplw r0, r4
+/* 8035D0F4 00358D54 40 82 00 C0 */ bne lbl_8035D1B4
+lbl_8035D0F8:
+/* 8035D0F8 00358D58 2C 1B 00 00 */ cmpwi r27, 0
+/* 8035D0FC 00358D5C 40 82 00 C4 */ bne lbl_8035D1C0
+/* 8035D100 00358D60 80 1A 00 00 */ lwz r0, 0(r26)
+/* 8035D104 00358D64 2C 00 00 01 */ cmpwi r0, 1
+/* 8035D108 00358D68 40 82 00 18 */ bne lbl_8035D120
+/* 8035D10C 00358D6C 7F 43 D3 78 */ mr r3, r26
+/* 8035D110 00358D70 7F A4 EB 78 */ mr r4, r29
+/* 8035D114 00358D74 38 A1 00 18 */ addi r5, r1, 0x18
+/* 8035D118 00358D78 4B FF FD 1D */ bl ParseSingleQR2Reply
+/* 8035D11C 00358D7C 48 00 00 A4 */ b lbl_8035D1C0
+lbl_8035D120:
+/* 8035D120 00358D80 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035D124 00358D84 38 8D 94 C8 */ addi r4, r13, lbl_8063E788-_SDA_BASE_
+/* 8035D128 00358D88 4B E7 16 79 */ bl strstr
+/* 8035D12C 00358D8C 7C 03 00 D0 */ neg r0, r3
+/* 8035D130 00358D90 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035D134 00358D94 7C 00 1B 78 */ or r0, r0, r3
+/* 8035D138 00358D98 7F A3 EB 78 */ mr r3, r29
+/* 8035D13C 00358D9C 54 19 0F FE */ srwi r25, r0, 0x1f
+/* 8035D140 00358DA0 48 00 07 55 */ bl SBServerParseKeyVals
+/* 8035D144 00358DA4 2C 19 00 00 */ cmpwi r25, 0
+/* 8035D148 00358DA8 41 82 00 78 */ beq lbl_8035D1C0
+/* 8035D14C 00358DAC 88 7D 00 14 */ lbz r3, 0x14(r29)
+/* 8035D150 00358DB0 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
+/* 8035D154 00358DB4 41 82 00 10 */ beq lbl_8035D164
+/* 8035D158 00358DB8 60 60 00 41 */ ori r0, r3, 0x41
+/* 8035D15C 00358DBC 98 1D 00 14 */ stb r0, 0x14(r29)
+/* 8035D160 00358DC0 48 00 00 0C */ b lbl_8035D16C
+lbl_8035D164:
+/* 8035D164 00358DC4 60 60 00 42 */ ori r0, r3, 0x42
+/* 8035D168 00358DC8 98 1D 00 14 */ stb r0, 0x14(r29)
+lbl_8035D16C:
+/* 8035D16C 00358DCC 88 1D 00 14 */ lbz r0, 0x14(r29)
+/* 8035D170 00358DD0 70 00 00 F3 */ andi. r0, r0, 0xf3
+/* 8035D174 00358DD4 98 1D 00 14 */ stb r0, 0x14(r29)
+/* 8035D178 00358DD8 4B FD BE 61 */ bl current_time
+/* 8035D17C 00358DDC 80 1D 00 1C */ lwz r0, 0x1c(r29)
+/* 8035D180 00358DE0 7F A4 EB 78 */ mr r4, r29
+/* 8035D184 00358DE4 7C 00 18 50 */ subf r0, r0, r3
+/* 8035D188 00358DE8 38 7A 00 08 */ addi r3, r26, 8
+/* 8035D18C 00358DEC 90 1D 00 1C */ stw r0, 0x1c(r29)
+/* 8035D190 00358DF0 4B FF F7 99 */ bl FIFORemove
+/* 8035D194 00358DF4 81 9A 00 44 */ lwz r12, 0x44(r26)
+/* 8035D198 00358DF8 7F 43 D3 78 */ mr r3, r26
+/* 8035D19C 00358DFC 7F A5 EB 78 */ mr r5, r29
+/* 8035D1A0 00358E00 80 DA 00 48 */ lwz r6, 0x48(r26)
+/* 8035D1A4 00358E04 38 80 00 00 */ li r4, 0
+/* 8035D1A8 00358E08 7D 89 03 A6 */ mtctr r12
+/* 8035D1AC 00358E0C 4E 80 04 21 */ bctrl
+/* 8035D1B0 00358E10 48 00 00 10 */ b lbl_8035D1C0
+lbl_8035D1B4:
+/* 8035D1B4 00358E14 83 BD 00 24 */ lwz r29, 0x24(r29)
+lbl_8035D1B8:
+/* 8035D1B8 00358E18 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035D1BC 00358E1C 40 82 FE CC */ bne lbl_8035D088
+lbl_8035D1C0:
+/* 8035D1C0 00358E20 7F 83 E3 78 */ mr r3, r28
+/* 8035D1C4 00358E24 4B FD B6 89 */ bl CanReceiveOnSocket
+/* 8035D1C8 00358E28 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D1CC 00358E2C 40 82 FE 80 */ bne lbl_8035D04C
+lbl_8035D1D0:
+/* 8035D1D0 00358E30 39 61 08 40 */ addi r11, r1, 0x840
+/* 8035D1D4 00358E34 4B E6 9F 99 */ bl _restgpr_25
+/* 8035D1D8 00358E38 80 01 08 44 */ lwz r0, 0x844(r1)
+/* 8035D1DC 00358E3C 7C 08 03 A6 */ mtlr r0
+/* 8035D1E0 00358E40 38 21 08 40 */ addi r1, r1, 0x840
+/* 8035D1E4 00358E44 4E 80 00 20 */ blr
+
+.global SBQueryEngineThink
+SBQueryEngineThink:
+/* 8035D1E8 00358E48 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035D1EC 00358E4C 7C 08 02 A6 */ mflr r0
+/* 8035D1F0 00358E50 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035D1F4 00358E54 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035D1F8 00358E58 7C 7F 1B 78 */ mr r31, r3
+/* 8035D1FC 00358E5C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035D200 00358E60 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035D204 00358E64 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035D208 00358E68 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8035D20C 00358E6C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D210 00358E70 41 82 01 34 */ beq lbl_8035D344
+/* 8035D214 00358E74 38 80 00 00 */ li r4, 0
+/* 8035D218 00358E78 4B FF FD F5 */ bl ProcessIncomingReplies
+/* 8035D21C 00358E7C 4B FD BD BD */ bl current_time
+/* 8035D220 00358E80 7C 7C 1B 78 */ mr r28, r3
+/* 8035D224 00358E84 3B A0 09 C4 */ li r29, 0x9c4
+/* 8035D228 00358E88 3B C0 00 00 */ li r30, 0
+/* 8035D22C 00358E8C 48 00 00 80 */ b lbl_8035D2AC
+lbl_8035D230:
+/* 8035D230 00358E90 80 65 00 1C */ lwz r3, 0x1c(r5)
+/* 8035D234 00358E94 38 03 09 C4 */ addi r0, r3, 0x9c4
+/* 8035D238 00358E98 7C 1C 00 40 */ cmplw r28, r0
+/* 8035D23C 00358E9C 40 81 00 7C */ ble lbl_8035D2B8
+/* 8035D240 00358EA0 88 05 00 15 */ lbz r0, 0x15(r5)
+/* 8035D244 00358EA4 7F E3 FB 78 */ mr r3, r31
+/* 8035D248 00358EA8 38 80 00 01 */ li r4, 1
+/* 8035D24C 00358EAC 60 00 00 10 */ ori r0, r0, 0x10
+/* 8035D250 00358EB0 98 05 00 15 */ stb r0, 0x15(r5)
+/* 8035D254 00358EB4 80 BF 00 08 */ lwz r5, 8(r31)
+/* 8035D258 00358EB8 93 A5 00 1C */ stw r29, 0x1c(r5)
+/* 8035D25C 00358EBC 80 BF 00 08 */ lwz r5, 8(r31)
+/* 8035D260 00358EC0 88 05 00 15 */ lbz r0, 0x15(r5)
+/* 8035D264 00358EC4 70 00 00 D3 */ andi. r0, r0, 0xd3
+/* 8035D268 00358EC8 98 05 00 15 */ stb r0, 0x15(r5)
+/* 8035D26C 00358ECC 81 9F 00 44 */ lwz r12, 0x44(r31)
+/* 8035D270 00358ED0 80 BF 00 08 */ lwz r5, 8(r31)
+/* 8035D274 00358ED4 80 DF 00 48 */ lwz r6, 0x48(r31)
+/* 8035D278 00358ED8 7D 89 03 A6 */ mtctr r12
+/* 8035D27C 00358EDC 4E 80 04 21 */ bctrl
+/* 8035D280 00358EE0 80 7F 00 08 */ lwz r3, 8(r31)
+/* 8035D284 00358EE4 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D288 00358EE8 41 82 00 24 */ beq lbl_8035D2AC
+/* 8035D28C 00358EEC 80 03 00 24 */ lwz r0, 0x24(r3)
+/* 8035D290 00358EF0 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D294 00358EF4 90 1F 00 08 */ stw r0, 8(r31)
+/* 8035D298 00358EF8 40 82 00 08 */ bne lbl_8035D2A0
+/* 8035D29C 00358EFC 93 DF 00 0C */ stw r30, 0xc(r31)
+lbl_8035D2A0:
+/* 8035D2A0 00358F00 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8035D2A4 00358F04 38 03 FF FF */ addi r0, r3, -1
+/* 8035D2A8 00358F08 90 1F 00 10 */ stw r0, 0x10(r31)
+lbl_8035D2AC:
+/* 8035D2AC 00358F0C 80 BF 00 08 */ lwz r5, 8(r31)
+/* 8035D2B0 00358F10 2C 05 00 00 */ cmpwi r5, 0
+/* 8035D2B4 00358F14 40 82 FF 7C */ bne lbl_8035D230
+lbl_8035D2B8:
+/* 8035D2B8 00358F18 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 8035D2BC 00358F1C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D2C0 00358F20 40 81 00 5C */ ble lbl_8035D31C
+/* 8035D2C4 00358F24 3B C0 00 00 */ li r30, 0
+/* 8035D2C8 00358F28 48 00 00 38 */ b lbl_8035D300
+lbl_8035D2CC:
+/* 8035D2CC 00358F2C 80 9F 00 14 */ lwz r4, 0x14(r31)
+/* 8035D2D0 00358F30 2C 04 00 00 */ cmpwi r4, 0
+/* 8035D2D4 00358F34 41 82 00 24 */ beq lbl_8035D2F8
+/* 8035D2D8 00358F38 80 04 00 24 */ lwz r0, 0x24(r4)
+/* 8035D2DC 00358F3C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D2E0 00358F40 90 1F 00 14 */ stw r0, 0x14(r31)
+/* 8035D2E4 00358F44 40 82 00 08 */ bne lbl_8035D2EC
+/* 8035D2E8 00358F48 93 DF 00 18 */ stw r30, 0x18(r31)
+lbl_8035D2EC:
+/* 8035D2EC 00358F4C 80 7F 00 1C */ lwz r3, 0x1c(r31)
+/* 8035D2F0 00358F50 38 03 FF FF */ addi r0, r3, -1
+/* 8035D2F4 00358F54 90 1F 00 1C */ stw r0, 0x1c(r31)
+lbl_8035D2F8:
+/* 8035D2F8 00358F58 7F E3 FB 78 */ mr r3, r31
+/* 8035D2FC 00358F5C 4B FF F6 A1 */ bl QEStartQuery
+lbl_8035D300:
+/* 8035D300 00358F60 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8035D304 00358F64 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8035D308 00358F68 7C 03 00 00 */ cmpw r3, r0
+/* 8035D30C 00358F6C 40 80 00 10 */ bge lbl_8035D31C
+/* 8035D310 00358F70 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 8035D314 00358F74 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D318 00358F78 41 81 FF B4 */ bgt lbl_8035D2CC
+lbl_8035D31C:
+/* 8035D31C 00358F7C 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035D320 00358F80 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D324 00358F84 40 82 00 20 */ bne lbl_8035D344
+/* 8035D328 00358F88 81 9F 00 44 */ lwz r12, 0x44(r31)
+/* 8035D32C 00358F8C 7F E3 FB 78 */ mr r3, r31
+/* 8035D330 00358F90 80 DF 00 48 */ lwz r6, 0x48(r31)
+/* 8035D334 00358F94 38 80 00 02 */ li r4, 2
+/* 8035D338 00358F98 38 A0 00 00 */ li r5, 0
+/* 8035D33C 00358F9C 7D 89 03 A6 */ mtctr r12
+/* 8035D340 00358FA0 4E 80 04 21 */ bctrl
+lbl_8035D344:
+/* 8035D344 00358FA4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035D348 00358FA8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035D34C 00358FAC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035D350 00358FB0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035D354 00358FB4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035D358 00358FB8 7C 08 03 A6 */ mtlr r0
+/* 8035D35C 00358FBC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035D360 00358FC0 4E 80 00 20 */ blr
+
+.global SBQueryEngineAddQueryKey
+SBQueryEngineAddQueryKey:
+/* 8035D364 00358FC4 80 C3 00 40 */ lwz r6, 0x40(r3)
+/* 8035D368 00358FC8 2C 06 00 14 */ cmpwi r6, 0x14
+/* 8035D36C 00358FCC 4C 80 00 20 */ bgelr
+/* 8035D370 00358FD0 7C A3 32 14 */ add r5, r3, r6
+/* 8035D374 00358FD4 38 06 00 01 */ addi r0, r6, 1
+/* 8035D378 00358FD8 98 85 00 2C */ stb r4, 0x2c(r5)
+/* 8035D37C 00358FDC 90 03 00 40 */ stw r0, 0x40(r3)
+/* 8035D380 00358FE0 4E 80 00 20 */ blr
+
+.global SBQueryEngineRemoveServerFromFIFOs
+SBQueryEngineRemoveServerFromFIFOs:
+/* 8035D384 00358FE4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035D388 00358FE8 7C 08 02 A6 */ mflr r0
+/* 8035D38C 00358FEC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035D390 00358FF0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035D394 00358FF4 7C 9F 23 78 */ mr r31, r4
+/* 8035D398 00358FF8 93 C1 00 08 */ stw r30, 8(r1)
+/* 8035D39C 00358FFC 7C 7E 1B 78 */ mr r30, r3
+/* 8035D3A0 00359000 38 63 00 08 */ addi r3, r3, 8
+/* 8035D3A4 00359004 4B FF F5 85 */ bl FIFORemove
+/* 8035D3A8 00359008 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D3AC 0035900C 40 82 00 10 */ bne lbl_8035D3BC
+/* 8035D3B0 00359010 7F E4 FB 78 */ mr r4, r31
+/* 8035D3B4 00359014 38 7E 00 14 */ addi r3, r30, 0x14
+/* 8035D3B8 00359018 4B FF F5 71 */ bl FIFORemove
+lbl_8035D3BC:
+/* 8035D3BC 0035901C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035D3C0 00359020 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035D3C4 00359024 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8035D3C8 00359028 7C 08 03 A6 */ mtlr r0
+/* 8035D3CC 0035902C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035D3D0 00359030 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/sb_server.s b/asm/SDK/DWC/gamespy/sb_server.s new file mode 100644 index 0000000..e2d9550 --- /dev/null +++ b/asm/SDK/DWC/gamespy/sb_server.s @@ -0,0 +1,1001 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global RefStringHash
+RefStringHash:
+/* 8035D3D4 00359034 3C C0 80 42 */ lis r6, lbl_80422D48@ha
+/* 8035D3D8 00359038 81 03 00 00 */ lwz r8, 0(r3)
+/* 8035D3DC 0035903C 38 C6 2D 48 */ addi r6, r6, lbl_80422D48@l
+/* 8035D3E0 00359040 3C A0 9C D0 */ lis r5, 0x9CCF9319@ha
+/* 8035D3E4 00359044 80 E6 00 38 */ lwz r7, 0x38(r6)
+/* 8035D3E8 00359048 38 C5 93 19 */ addi r6, r5, 0x9CCF9319@l
+/* 8035D3EC 0035904C 38 60 00 00 */ li r3, 0
+/* 8035D3F0 00359050 48 00 00 3C */ b lbl_8035D42C
+lbl_8035D3F4:
+/* 8035D3F4 00359054 7C A3 31 D6 */ mullw r5, r3, r6
+/* 8035D3F8 00359058 7D 29 07 75 */ extsb. r9, r9
+/* 8035D3FC 0035905C 38 00 00 00 */ li r0, 0
+/* 8035D400 00359060 41 80 00 0C */ blt lbl_8035D40C
+/* 8035D404 00359064 2C 09 01 00 */ cmpwi r9, 0x100
+/* 8035D408 00359068 41 80 00 08 */ blt lbl_8035D410
+lbl_8035D40C:
+/* 8035D40C 0035906C 38 00 00 01 */ li r0, 1
+lbl_8035D410:
+/* 8035D410 00359070 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D414 00359074 41 82 00 08 */ beq lbl_8035D41C
+/* 8035D418 00359078 48 00 00 0C */ b lbl_8035D424
+lbl_8035D41C:
+/* 8035D41C 0035907C 80 67 00 10 */ lwz r3, 0x10(r7)
+/* 8035D420 00359080 7D 23 48 AE */ lbzx r9, r3, r9
+lbl_8035D424:
+/* 8035D424 00359084 7C 65 4A 14 */ add r3, r5, r9
+/* 8035D428 00359088 39 08 00 01 */ addi r8, r8, 1
+lbl_8035D42C:
+/* 8035D42C 0035908C 89 28 00 00 */ lbz r9, 0(r8)
+/* 8035D430 00359090 7D 20 07 75 */ extsb. r0, r9
+/* 8035D434 00359094 40 82 FF C0 */ bne lbl_8035D3F4
+/* 8035D438 00359098 7C 03 23 96 */ divwu r0, r3, r4
+/* 8035D43C 0035909C 7C 00 21 D6 */ mullw r0, r0, r4
+/* 8035D440 003590A0 7C 60 18 50 */ subf r3, r0, r3
+/* 8035D444 003590A4 4E 80 00 20 */ blr
+
+.global RefStringCompare
+RefStringCompare:
+/* 8035D448 003590A8 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035D44C 003590AC 80 84 00 00 */ lwz r4, 0(r4)
+/* 8035D450 003590B0 4B E7 37 04 */ b strcasecmp
+
+.global RefStringFree
+RefStringFree:
+/* 8035D454 003590B4 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035D458 003590B8 4B FD BE E0 */ b gsifree
+
+.global SBRefStrHash
+SBRefStrHash:
+/* 8035D45C 003590BC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035D460 003590C0 7C 08 02 A6 */ mflr r0
+/* 8035D464 003590C4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035D468 003590C8 80 0D B1 80 */ lwz r0, lbl_80640440-_SDA_BASE_(r13)
+/* 8035D46C 003590CC 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D470 003590D0 40 82 00 30 */ bne lbl_8035D4A0
+/* 8035D474 003590D4 3C C0 80 36 */ lis r6, RefStringHash@ha
+/* 8035D478 003590D8 3C E0 80 36 */ lis r7, RefStringCompare@ha
+/* 8035D47C 003590DC 3D 00 80 36 */ lis r8, RefStringFree@ha
+/* 8035D480 003590E0 38 60 00 08 */ li r3, 8
+/* 8035D484 003590E4 38 C6 D3 D4 */ addi r6, r6, RefStringHash@l
+/* 8035D488 003590E8 38 E7 D4 48 */ addi r7, r7, RefStringCompare@l
+/* 8035D48C 003590EC 39 08 D4 54 */ addi r8, r8, RefStringFree@l
+/* 8035D490 003590F0 38 80 01 F4 */ li r4, 0x1f4
+/* 8035D494 003590F4 38 A0 00 04 */ li r5, 4
+/* 8035D498 003590F8 4B FD 93 91 */ bl TableNew2
+/* 8035D49C 003590FC 90 6D B1 80 */ stw r3, lbl_80640440-_SDA_BASE_(r13)
+lbl_8035D4A0:
+/* 8035D4A0 00359100 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035D4A4 00359104 80 6D B1 80 */ lwz r3, lbl_80640440-_SDA_BASE_(r13)
+/* 8035D4A8 00359108 7C 08 03 A6 */ mtlr r0
+/* 8035D4AC 0035910C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035D4B0 00359110 4E 80 00 20 */ blr
+
+.global SBRefStrHashCleanup
+SBRefStrHashCleanup:
+/* 8035D4B4 00359114 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035D4B8 00359118 7C 08 02 A6 */ mflr r0
+/* 8035D4BC 0035911C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035D4C0 00359120 80 6D B1 80 */ lwz r3, lbl_80640440-_SDA_BASE_(r13)
+/* 8035D4C4 00359124 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D4C8 00359128 41 82 00 20 */ beq lbl_8035D4E8
+/* 8035D4CC 0035912C 4B FD 94 7D */ bl TableCount
+/* 8035D4D0 00359130 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D4D4 00359134 40 82 00 14 */ bne lbl_8035D4E8
+/* 8035D4D8 00359138 80 6D B1 80 */ lwz r3, lbl_80640440-_SDA_BASE_(r13)
+/* 8035D4DC 0035913C 4B FD 93 F1 */ bl TableFree
+/* 8035D4E0 00359140 38 00 00 00 */ li r0, 0
+/* 8035D4E4 00359144 90 0D B1 80 */ stw r0, lbl_80640440-_SDA_BASE_(r13)
+lbl_8035D4E8:
+/* 8035D4E8 00359148 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035D4EC 0035914C 7C 08 03 A6 */ mtlr r0
+/* 8035D4F0 00359150 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035D4F4 00359154 4E 80 00 20 */ blr
+
+.global SBServerFree
+SBServerFree:
+/* 8035D4F8 00359158 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035D4FC 0035915C 7C 08 02 A6 */ mflr r0
+/* 8035D500 00359160 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035D504 00359164 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035D508 00359168 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8035D50C 0035916C 80 7F 00 18 */ lwz r3, 0x18(r31)
+/* 8035D510 00359170 4B FD 93 BD */ bl TableFree
+/* 8035D514 00359174 38 00 00 00 */ li r0, 0
+/* 8035D518 00359178 7F E3 FB 78 */ mr r3, r31
+/* 8035D51C 0035917C 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 8035D520 00359180 4B FD BE 19 */ bl gsifree
+/* 8035D524 00359184 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035D528 00359188 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035D52C 0035918C 7C 08 03 A6 */ mtlr r0
+/* 8035D530 00359190 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035D534 00359194 4E 80 00 20 */ blr
+
+.global SBServerAddKeyValue
+SBServerAddKeyValue:
+/* 8035D538 00359198 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035D53C 0035919C 7C 08 02 A6 */ mflr r0
+/* 8035D540 003591A0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035D544 003591A4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035D548 003591A8 7C BF 2B 78 */ mr r31, r5
+/* 8035D54C 003591AC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035D550 003591B0 7C 7E 1B 78 */ mr r30, r3
+/* 8035D554 003591B4 38 60 00 00 */ li r3, 0
+/* 8035D558 003591B8 48 00 1B D5 */ bl SBRefStr
+/* 8035D55C 003591BC 90 61 00 08 */ stw r3, 8(r1)
+/* 8035D560 003591C0 7F E4 FB 78 */ mr r4, r31
+/* 8035D564 003591C4 38 60 00 00 */ li r3, 0
+/* 8035D568 003591C8 48 00 1B C5 */ bl SBRefStr
+/* 8035D56C 003591CC 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8035D570 003591D0 38 81 00 08 */ addi r4, r1, 8
+/* 8035D574 003591D4 80 7E 00 18 */ lwz r3, 0x18(r30)
+/* 8035D578 003591D8 4B FD 94 59 */ bl TableEnter
+/* 8035D57C 003591DC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035D580 003591E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035D584 003591E4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035D588 003591E8 7C 08 03 A6 */ mtlr r0
+/* 8035D58C 003591EC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035D590 003591F0 4E 80 00 20 */ blr
+
+.global SBServerAddIntKeyValue
+SBServerAddIntKeyValue:
+/* 8035D594 003591F4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035D598 003591F8 7C 08 02 A6 */ mflr r0
+/* 8035D59C 003591FC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035D5A0 00359200 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8035D5A4 00359204 7C 9F 23 78 */ mr r31, r4
+/* 8035D5A8 00359208 38 8D 94 D0 */ addi r4, r13, lbl_8063E790-_SDA_BASE_
+/* 8035D5AC 0035920C 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8035D5B0 00359210 7C 7E 1B 78 */ mr r30, r3
+/* 8035D5B4 00359214 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035D5B8 00359218 4C C6 31 82 */ crclr 6
+/* 8035D5BC 0035921C 4B E6 F5 41 */ bl sprintf
+/* 8035D5C0 00359220 7F E4 FB 78 */ mr r4, r31
+/* 8035D5C4 00359224 38 60 00 00 */ li r3, 0
+/* 8035D5C8 00359228 48 00 1B 65 */ bl SBRefStr
+/* 8035D5CC 0035922C 90 61 00 08 */ stw r3, 8(r1)
+/* 8035D5D0 00359230 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035D5D4 00359234 38 60 00 00 */ li r3, 0
+/* 8035D5D8 00359238 48 00 1B 55 */ bl SBRefStr
+/* 8035D5DC 0035923C 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8035D5E0 00359240 38 81 00 08 */ addi r4, r1, 8
+/* 8035D5E4 00359244 80 7E 00 18 */ lwz r3, 0x18(r30)
+/* 8035D5E8 00359248 4B FD 93 E9 */ bl TableEnter
+/* 8035D5EC 0035924C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035D5F0 00359250 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8035D5F4 00359254 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8035D5F8 00359258 7C 08 03 A6 */ mtlr r0
+/* 8035D5FC 0035925C 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035D600 00359260 4E 80 00 20 */ blr
+
+.global SBServerGetStringValueA
+SBServerGetStringValueA:
+/* 8035D604 00359264 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035D608 00359268 7C 08 02 A6 */ mflr r0
+/* 8035D60C 0035926C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D610 00359270 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035D614 00359274 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035D618 00359278 7C BF 2B 78 */ mr r31, r5
+/* 8035D61C 0035927C 40 82 00 0C */ bne lbl_8035D628
+/* 8035D620 00359280 38 60 00 00 */ li r3, 0
+/* 8035D624 00359284 48 00 00 28 */ b lbl_8035D64C
+lbl_8035D628:
+/* 8035D628 00359288 90 81 00 08 */ stw r4, 8(r1)
+/* 8035D62C 0035928C 38 81 00 08 */ addi r4, r1, 8
+/* 8035D630 00359290 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 8035D634 00359294 4B FD 94 E9 */ bl TableLookup
+/* 8035D638 00359298 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D63C 0035929C 40 82 00 0C */ bne lbl_8035D648
+/* 8035D640 003592A0 7F E3 FB 78 */ mr r3, r31
+/* 8035D644 003592A4 48 00 00 08 */ b lbl_8035D64C
+lbl_8035D648:
+/* 8035D648 003592A8 80 63 00 04 */ lwz r3, 4(r3)
+lbl_8035D64C:
+/* 8035D64C 003592AC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035D650 003592B0 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035D654 003592B4 7C 08 03 A6 */ mtlr r0
+/* 8035D658 003592B8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035D65C 003592BC 4E 80 00 20 */ blr
+
+.global SBServerGetIntValueA
+SBServerGetIntValueA:
+/* 8035D660 003592C0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035D664 003592C4 7C 08 02 A6 */ mflr r0
+/* 8035D668 003592C8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D66C 003592CC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035D670 003592D0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035D674 003592D4 7C BF 2B 78 */ mr r31, r5
+/* 8035D678 003592D8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035D67C 003592DC 7C 9E 23 78 */ mr r30, r4
+/* 8035D680 003592E0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035D684 003592E4 7C 7D 1B 78 */ mr r29, r3
+/* 8035D688 003592E8 40 82 00 0C */ bne lbl_8035D694
+/* 8035D68C 003592EC 7F E3 FB 78 */ mr r3, r31
+/* 8035D690 003592F0 48 00 00 D8 */ b lbl_8035D768
+lbl_8035D694:
+/* 8035D694 003592F4 7F C3 F3 78 */ mr r3, r30
+/* 8035D698 003592F8 38 8D 94 D4 */ addi r4, r13, lbl_8063E794-_SDA_BASE_
+/* 8035D69C 003592FC 4B E7 0D B1 */ bl strcmp
+/* 8035D6A0 00359300 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D6A4 00359304 40 82 00 0C */ bne lbl_8035D6B0
+/* 8035D6A8 00359308 80 7D 00 1C */ lwz r3, 0x1c(r29)
+/* 8035D6AC 0035930C 48 00 00 BC */ b lbl_8035D768
+lbl_8035D6B0:
+/* 8035D6B0 00359310 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035D6B4 00359314 40 82 00 0C */ bne lbl_8035D6C0
+/* 8035D6B8 00359318 38 60 00 00 */ li r3, 0
+/* 8035D6BC 0035931C 48 00 00 28 */ b lbl_8035D6E4
+lbl_8035D6C0:
+/* 8035D6C0 00359320 93 C1 00 08 */ stw r30, 8(r1)
+/* 8035D6C4 00359324 38 81 00 08 */ addi r4, r1, 8
+/* 8035D6C8 00359328 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 8035D6CC 0035932C 4B FD 94 51 */ bl TableLookup
+/* 8035D6D0 00359330 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D6D4 00359334 40 82 00 0C */ bne lbl_8035D6E0
+/* 8035D6D8 00359338 38 60 00 00 */ li r3, 0
+/* 8035D6DC 0035933C 48 00 00 08 */ b lbl_8035D6E4
+lbl_8035D6E0:
+/* 8035D6E0 00359340 80 63 00 04 */ lwz r3, 4(r3)
+lbl_8035D6E4:
+/* 8035D6E4 00359344 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D6E8 00359348 40 82 00 0C */ bne lbl_8035D6F4
+/* 8035D6EC 0035934C 7F E3 FB 78 */ mr r3, r31
+/* 8035D6F0 00359350 48 00 00 78 */ b lbl_8035D768
+lbl_8035D6F4:
+/* 8035D6F4 00359354 88 03 00 00 */ lbz r0, 0(r3)
+/* 8035D6F8 00359358 2C 00 00 2D */ cmpwi r0, 0x2d
+/* 8035D6FC 0035935C 41 82 00 0C */ beq lbl_8035D708
+/* 8035D700 00359360 7C 64 1B 78 */ mr r4, r3
+/* 8035D704 00359364 48 00 00 08 */ b lbl_8035D70C
+lbl_8035D708:
+/* 8035D708 00359368 38 83 00 01 */ addi r4, r3, 1
+lbl_8035D70C:
+/* 8035D70C 0035936C 88 A4 00 00 */ lbz r5, 0(r4)
+/* 8035D710 00359370 38 00 00 00 */ li r0, 0
+/* 8035D714 00359374 2C 05 00 00 */ cmpwi r5, 0
+/* 8035D718 00359378 41 80 00 0C */ blt lbl_8035D724
+/* 8035D71C 0035937C 2C 05 01 00 */ cmpwi r5, 0x100
+/* 8035D720 00359380 41 80 00 08 */ blt lbl_8035D728
+lbl_8035D724:
+/* 8035D724 00359384 38 00 00 01 */ li r0, 1
+lbl_8035D728:
+/* 8035D728 00359388 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D72C 0035938C 41 82 00 0C */ beq lbl_8035D738
+/* 8035D730 00359390 38 00 00 00 */ li r0, 0
+/* 8035D734 00359394 48 00 00 20 */ b lbl_8035D754
+lbl_8035D738:
+/* 8035D738 00359398 3C 80 80 42 */ lis r4, lbl_80422D48@ha
+/* 8035D73C 0035939C 54 A0 08 3C */ slwi r0, r5, 1
+/* 8035D740 003593A0 38 84 2D 48 */ addi r4, r4, lbl_80422D48@l
+/* 8035D744 003593A4 80 84 00 38 */ lwz r4, 0x38(r4)
+/* 8035D748 003593A8 80 84 00 08 */ lwz r4, 8(r4)
+/* 8035D74C 003593AC 7C 04 02 2E */ lhzx r0, r4, r0
+/* 8035D750 003593B0 54 00 07 38 */ rlwinm r0, r0, 0, 0x1c, 0x1c
+lbl_8035D754:
+/* 8035D754 003593B4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D758 003593B8 40 82 00 0C */ bne lbl_8035D764
+/* 8035D75C 003593BC 7F E3 FB 78 */ mr r3, r31
+/* 8035D760 003593C0 48 00 00 08 */ b lbl_8035D768
+lbl_8035D764:
+/* 8035D764 003593C4 4B E7 2F A9 */ bl atoi
+lbl_8035D768:
+/* 8035D768 003593C8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035D76C 003593CC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035D770 003593D0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035D774 003593D4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035D778 003593D8 7C 08 03 A6 */ mtlr r0
+/* 8035D77C 003593DC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035D780 003593E0 4E 80 00 20 */ blr
+
+.global SBServerGetFloatValueA
+SBServerGetFloatValueA:
+/* 8035D784 003593E4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035D788 003593E8 7C 08 02 A6 */ mflr r0
+/* 8035D78C 003593EC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035D790 003593F0 DB E1 00 18 */ stfd f31, 0x18(r1)
+/* 8035D794 003593F4 FF E0 08 90 */ fmr f31, f1
+/* 8035D798 003593F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D79C 003593FC 40 82 00 0C */ bne lbl_8035D7A8
+/* 8035D7A0 00359400 38 60 00 00 */ li r3, 0
+/* 8035D7A4 00359404 48 00 00 28 */ b lbl_8035D7CC
+lbl_8035D7A8:
+/* 8035D7A8 00359408 90 81 00 08 */ stw r4, 8(r1)
+/* 8035D7AC 0035940C 38 81 00 08 */ addi r4, r1, 8
+/* 8035D7B0 00359410 80 63 00 18 */ lwz r3, 0x18(r3)
+/* 8035D7B4 00359414 4B FD 93 69 */ bl TableLookup
+/* 8035D7B8 00359418 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D7BC 0035941C 40 82 00 0C */ bne lbl_8035D7C8
+/* 8035D7C0 00359420 38 60 00 00 */ li r3, 0
+/* 8035D7C4 00359424 48 00 00 08 */ b lbl_8035D7CC
+lbl_8035D7C8:
+/* 8035D7C8 00359428 80 63 00 04 */ lwz r3, 4(r3)
+lbl_8035D7CC:
+/* 8035D7CC 0035942C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D7D0 00359430 40 82 00 08 */ bne lbl_8035D7D8
+/* 8035D7D4 00359434 48 00 00 0C */ b lbl_8035D7E0
+lbl_8035D7D8:
+/* 8035D7D8 00359438 4B E7 24 29 */ bl atof
+/* 8035D7DC 0035943C FF E0 08 90 */ fmr f31, f1
+lbl_8035D7E0:
+/* 8035D7E0 00359440 FC 20 F8 90 */ fmr f1, f31
+/* 8035D7E4 00359444 CB E1 00 18 */ lfd f31, 0x18(r1)
+/* 8035D7E8 00359448 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035D7EC 0035944C 7C 08 03 A6 */ mtlr r0
+/* 8035D7F0 00359450 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035D7F4 00359454 4E 80 00 20 */ blr
+
+.global SBServerGetPublicAddress
+SBServerGetPublicAddress:
+/* 8035D7F8 00359458 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035D7FC 0035945C 7C 08 02 A6 */ mflr r0
+/* 8035D800 00359460 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035D804 00359464 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035D808 00359468 38 61 00 08 */ addi r3, r1, 8
+/* 8035D80C 0035946C 90 01 00 08 */ stw r0, 8(r1)
+/* 8035D810 00359470 4B F9 95 09 */ bl SOInetNtoA
+/* 8035D814 00359474 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035D818 00359478 7C 08 03 A6 */ mtlr r0
+/* 8035D81C 0035947C 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035D820 00359480 4E 80 00 20 */ blr
+
+.global SBServerGetPublicInetAddress
+SBServerGetPublicInetAddress:
+/* 8035D824 00359484 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035D828 00359488 4E 80 00 20 */ blr
+
+.global SBServerGetPublicQueryPort
+SBServerGetPublicQueryPort:
+/* 8035D82C 0035948C A0 63 00 04 */ lhz r3, 4(r3)
+/* 8035D830 00359490 4B F9 95 40 */ b SONtoHs
+
+.global SBServerGetPublicQueryPortNBO
+SBServerGetPublicQueryPortNBO:
+/* 8035D834 00359494 A0 63 00 04 */ lhz r3, 4(r3)
+/* 8035D838 00359498 4E 80 00 20 */ blr
+
+.global SBServerHasPrivateAddress
+SBServerHasPrivateAddress:
+/* 8035D83C 0035949C 88 03 00 15 */ lbz r0, 0x15(r3)
+/* 8035D840 003594A0 54 03 FF FE */ rlwinm r3, r0, 0x1f, 0x1f, 0x1f
+/* 8035D844 003594A4 4E 80 00 20 */ blr
+
+.global SBServerGetPrivateAddress
+SBServerGetPrivateAddress:
+/* 8035D848 003594A8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035D84C 003594AC 7C 08 02 A6 */ mflr r0
+/* 8035D850 003594B0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035D854 003594B4 80 03 00 08 */ lwz r0, 8(r3)
+/* 8035D858 003594B8 38 61 00 08 */ addi r3, r1, 8
+/* 8035D85C 003594BC 90 01 00 08 */ stw r0, 8(r1)
+/* 8035D860 003594C0 4B F9 94 B9 */ bl SOInetNtoA
+/* 8035D864 003594C4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035D868 003594C8 7C 08 03 A6 */ mtlr r0
+/* 8035D86C 003594CC 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035D870 003594D0 4E 80 00 20 */ blr
+
+.global SBServerGetPrivateInetAddress
+SBServerGetPrivateInetAddress:
+/* 8035D874 003594D4 80 63 00 08 */ lwz r3, 8(r3)
+/* 8035D878 003594D8 4E 80 00 20 */ blr
+
+.global SBServerGetPrivateQueryPort
+SBServerGetPrivateQueryPort:
+/* 8035D87C 003594DC A0 63 00 0C */ lhz r3, 0xc(r3)
+/* 8035D880 003594E0 4B F9 94 F0 */ b SONtoHs
+
+.global SBServerSetNext
+SBServerSetNext:
+/* 8035D884 003594E4 90 83 00 24 */ stw r4, 0x24(r3)
+/* 8035D888 003594E8 4E 80 00 20 */ blr
+
+.global SBServerGetNext
+SBServerGetNext:
+/* 8035D88C 003594EC 80 63 00 24 */ lwz r3, 0x24(r3)
+/* 8035D890 003594F0 4E 80 00 20 */ blr
+
+.global SBServerParseKeyVals
+SBServerParseKeyVals:
+/* 8035D894 003594F4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035D898 003594F8 7C 08 02 A6 */ mflr r0
+/* 8035D89C 003594FC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035D8A0 00359500 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035D8A4 00359504 4B E6 98 81 */ bl _savegpr_26
+/* 8035D8A8 00359508 34 04 00 01 */ addic. r0, r4, 1
+/* 8035D8AC 0035950C 7C 7E 1B 78 */ mr r30, r3
+/* 8035D8B0 00359510 41 82 00 08 */ beq lbl_8035D8B8
+/* 8035D8B4 00359514 90 0D B1 84 */ stw r0, lbl_80640444-_SDA_BASE_(r13)
+lbl_8035D8B8:
+/* 8035D8B8 00359518 83 ED B1 84 */ lwz r31, lbl_80640444-_SDA_BASE_(r13)
+/* 8035D8BC 0035951C 7F E3 FB 78 */ mr r3, r31
+/* 8035D8C0 00359520 48 00 00 0C */ b lbl_8035D8CC
+lbl_8035D8C4:
+/* 8035D8C4 00359524 38 63 00 01 */ addi r3, r3, 1
+/* 8035D8C8 00359528 90 6D B1 84 */ stw r3, lbl_80640444-_SDA_BASE_(r13)
+lbl_8035D8CC:
+/* 8035D8CC 0035952C 88 83 00 00 */ lbz r4, 0(r3)
+/* 8035D8D0 00359530 7C 80 07 75 */ extsb. r0, r4
+/* 8035D8D4 00359534 41 82 00 0C */ beq lbl_8035D8E0
+/* 8035D8D8 00359538 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8035D8DC 0035953C 40 82 FF E8 */ bne lbl_8035D8C4
+lbl_8035D8E0:
+/* 8035D8E0 00359540 7C 03 F8 40 */ cmplw r3, r31
+/* 8035D8E4 00359544 40 82 00 08 */ bne lbl_8035D8EC
+/* 8035D8E8 00359548 3B E0 00 00 */ li r31, 0
+lbl_8035D8EC:
+/* 8035D8EC 0035954C 7C 80 07 75 */ extsb. r0, r4
+/* 8035D8F0 00359550 41 82 00 18 */ beq lbl_8035D908
+/* 8035D8F4 00359554 80 6D B1 84 */ lwz r3, lbl_80640444-_SDA_BASE_(r13)
+/* 8035D8F8 00359558 38 80 00 00 */ li r4, 0
+/* 8035D8FC 0035955C 38 03 00 01 */ addi r0, r3, 1
+/* 8035D900 00359560 98 83 00 00 */ stb r4, 0(r3)
+/* 8035D904 00359564 90 0D B1 84 */ stw r0, lbl_80640444-_SDA_BASE_(r13)
+lbl_8035D908:
+/* 8035D908 00359568 3B A0 00 00 */ li r29, 0
+/* 8035D90C 0035956C 48 00 01 24 */ b lbl_8035DA30
+lbl_8035D910:
+/* 8035D910 00359570 83 4D B1 84 */ lwz r26, lbl_80640444-_SDA_BASE_(r13)
+/* 8035D914 00359574 7F 43 D3 78 */ mr r3, r26
+/* 8035D918 00359578 48 00 00 0C */ b lbl_8035D924
+lbl_8035D91C:
+/* 8035D91C 0035957C 38 63 00 01 */ addi r3, r3, 1
+/* 8035D920 00359580 90 6D B1 84 */ stw r3, lbl_80640444-_SDA_BASE_(r13)
+lbl_8035D924:
+/* 8035D924 00359584 88 83 00 00 */ lbz r4, 0(r3)
+/* 8035D928 00359588 7C 80 07 75 */ extsb. r0, r4
+/* 8035D92C 0035958C 41 82 00 0C */ beq lbl_8035D938
+/* 8035D930 00359590 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8035D934 00359594 40 82 FF E8 */ bne lbl_8035D91C
+lbl_8035D938:
+/* 8035D938 00359598 7C 03 D0 40 */ cmplw r3, r26
+/* 8035D93C 0035959C 40 82 00 08 */ bne lbl_8035D944
+/* 8035D940 003595A0 3B 40 00 00 */ li r26, 0
+lbl_8035D944:
+/* 8035D944 003595A4 7C 80 07 75 */ extsb. r0, r4
+/* 8035D948 003595A8 41 82 00 14 */ beq lbl_8035D95C
+/* 8035D94C 003595AC 80 6D B1 84 */ lwz r3, lbl_80640444-_SDA_BASE_(r13)
+/* 8035D950 003595B0 38 03 00 01 */ addi r0, r3, 1
+/* 8035D954 003595B4 9B A3 00 00 */ stb r29, 0(r3)
+/* 8035D958 003595B8 90 0D B1 84 */ stw r0, lbl_80640444-_SDA_BASE_(r13)
+lbl_8035D95C:
+/* 8035D95C 003595BC 2C 1A 00 00 */ cmpwi r26, 0
+/* 8035D960 003595C0 40 82 00 08 */ bne lbl_8035D968
+/* 8035D964 003595C4 3B 4D 94 F0 */ addi r26, r13, lbl_8063E7B0-_SDA_BASE_
+lbl_8035D968:
+/* 8035D968 003595C8 80 62 A4 E8 */ lwz r3, lbl_80642AE8-_SDA2_BASE_(r2)
+/* 8035D96C 003595CC 3B 61 00 10 */ addi r27, r1, 0x10
+/* 8035D970 003595D0 80 02 A4 EC */ lwz r0, lbl_80642AEC-_SDA2_BASE_(r2)
+/* 8035D974 003595D4 3B 80 00 00 */ li r28, 0
+/* 8035D978 003595D8 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8035D97C 003595DC 90 01 00 14 */ stw r0, 0x14(r1)
+lbl_8035D980:
+/* 8035D980 003595E0 80 9B 00 00 */ lwz r4, 0(r27)
+/* 8035D984 003595E4 7F E3 FB 78 */ mr r3, r31
+/* 8035D988 003595E8 4B E7 0A C5 */ bl strcmp
+/* 8035D98C 003595EC 2C 03 00 00 */ cmpwi r3, 0
+/* 8035D990 003595F0 40 82 00 0C */ bne lbl_8035D99C
+/* 8035D994 003595F4 38 00 00 00 */ li r0, 0
+/* 8035D998 003595F8 48 00 00 18 */ b lbl_8035D9B0
+lbl_8035D99C:
+/* 8035D99C 003595FC 3B 9C 00 01 */ addi r28, r28, 1
+/* 8035D9A0 00359600 3B 7B 00 04 */ addi r27, r27, 4
+/* 8035D9A4 00359604 28 1C 00 02 */ cmplwi r28, 2
+/* 8035D9A8 00359608 41 80 FF D8 */ blt lbl_8035D980
+/* 8035D9AC 0035960C 38 00 00 01 */ li r0, 1
+lbl_8035D9B0:
+/* 8035D9B0 00359610 2C 00 00 00 */ cmpwi r0, 0
+/* 8035D9B4 00359614 41 82 00 30 */ beq lbl_8035D9E4
+/* 8035D9B8 00359618 7F E4 FB 78 */ mr r4, r31
+/* 8035D9BC 0035961C 38 60 00 00 */ li r3, 0
+/* 8035D9C0 00359620 48 00 17 6D */ bl SBRefStr
+/* 8035D9C4 00359624 90 61 00 08 */ stw r3, 8(r1)
+/* 8035D9C8 00359628 7F 44 D3 78 */ mr r4, r26
+/* 8035D9CC 0035962C 38 60 00 00 */ li r3, 0
+/* 8035D9D0 00359630 48 00 17 5D */ bl SBRefStr
+/* 8035D9D4 00359634 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8035D9D8 00359638 38 81 00 08 */ addi r4, r1, 8
+/* 8035D9DC 0035963C 80 7E 00 18 */ lwz r3, 0x18(r30)
+/* 8035D9E0 00359640 4B FD 8F F1 */ bl TableEnter
+lbl_8035D9E4:
+/* 8035D9E4 00359644 83 ED B1 84 */ lwz r31, lbl_80640444-_SDA_BASE_(r13)
+/* 8035D9E8 00359648 7F E3 FB 78 */ mr r3, r31
+/* 8035D9EC 0035964C 48 00 00 0C */ b lbl_8035D9F8
+lbl_8035D9F0:
+/* 8035D9F0 00359650 38 63 00 01 */ addi r3, r3, 1
+/* 8035D9F4 00359654 90 6D B1 84 */ stw r3, lbl_80640444-_SDA_BASE_(r13)
+lbl_8035D9F8:
+/* 8035D9F8 00359658 88 83 00 00 */ lbz r4, 0(r3)
+/* 8035D9FC 0035965C 7C 80 07 75 */ extsb. r0, r4
+/* 8035DA00 00359660 41 82 00 0C */ beq lbl_8035DA0C
+/* 8035DA04 00359664 2C 00 00 5C */ cmpwi r0, 0x5c
+/* 8035DA08 00359668 40 82 FF E8 */ bne lbl_8035D9F0
+lbl_8035DA0C:
+/* 8035DA0C 0035966C 7C 03 F8 40 */ cmplw r3, r31
+/* 8035DA10 00359670 40 82 00 08 */ bne lbl_8035DA18
+/* 8035DA14 00359674 3B E0 00 00 */ li r31, 0
+lbl_8035DA18:
+/* 8035DA18 00359678 7C 80 07 75 */ extsb. r0, r4
+/* 8035DA1C 0035967C 41 82 00 14 */ beq lbl_8035DA30
+/* 8035DA20 00359680 80 6D B1 84 */ lwz r3, lbl_80640444-_SDA_BASE_(r13)
+/* 8035DA24 00359684 38 03 00 01 */ addi r0, r3, 1
+/* 8035DA28 00359688 9B A3 00 00 */ stb r29, 0(r3)
+/* 8035DA2C 0035968C 90 0D B1 84 */ stw r0, lbl_80640444-_SDA_BASE_(r13)
+lbl_8035DA30:
+/* 8035DA30 00359690 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035DA34 00359694 40 82 FE DC */ bne lbl_8035D910
+/* 8035DA38 00359698 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035DA3C 0035969C 4B E6 97 35 */ bl _restgpr_26
+/* 8035DA40 003596A0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035DA44 003596A4 7C 08 03 A6 */ mtlr r0
+/* 8035DA48 003596A8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035DA4C 003596AC 4E 80 00 20 */ blr
+
+.global SBServerParseQR2FullKeysSingle
+SBServerParseQR2FullKeysSingle:
+/* 8035DA50 003596B0 94 21 FF 30 */ stwu r1, -0xd0(r1)
+/* 8035DA54 003596B4 7C 08 02 A6 */ mflr r0
+/* 8035DA58 003596B8 90 01 00 D4 */ stw r0, 0xd4(r1)
+/* 8035DA5C 003596BC 39 61 00 D0 */ addi r11, r1, 0xd0
+/* 8035DA60 003596C0 4B E6 96 B5 */ bl _savegpr_22
+/* 8035DA64 003596C4 7C 7D 1B 78 */ mr r29, r3
+/* 8035DA68 003596C8 7C 9E 23 78 */ mr r30, r4
+/* 8035DA6C 003596CC 7C BF 2B 78 */ mr r31, r5
+/* 8035DA70 003596D0 48 00 00 70 */ b lbl_8035DAE0
+lbl_8035DA74:
+/* 8035DA74 003596D4 7F C3 F3 78 */ mr r3, r30
+/* 8035DA78 003596D8 7F E4 FB 78 */ mr r4, r31
+/* 8035DA7C 003596DC 48 00 17 99 */ bl NTSLengthSB
+/* 8035DA80 003596E0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DA84 003596E4 41 80 01 98 */ blt lbl_8035DC1C
+/* 8035DA88 003596E8 7F DB F3 78 */ mr r27, r30
+/* 8035DA8C 003596EC 7F E3 F8 50 */ subf r31, r3, r31
+/* 8035DA90 003596F0 7F DE 1A 14 */ add r30, r30, r3
+/* 8035DA94 003596F4 7F C3 F3 78 */ mr r3, r30
+/* 8035DA98 003596F8 7F E4 FB 78 */ mr r4, r31
+/* 8035DA9C 003596FC 48 00 17 79 */ bl NTSLengthSB
+/* 8035DAA0 00359700 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DAA4 00359704 41 80 01 78 */ blt lbl_8035DC1C
+/* 8035DAA8 00359708 7F DC F3 78 */ mr r28, r30
+/* 8035DAAC 0035970C 7F 64 DB 78 */ mr r4, r27
+/* 8035DAB0 00359710 7F DE 1A 14 */ add r30, r30, r3
+/* 8035DAB4 00359714 7F E3 F8 50 */ subf r31, r3, r31
+/* 8035DAB8 00359718 38 60 00 00 */ li r3, 0
+/* 8035DABC 0035971C 48 00 16 71 */ bl SBRefStr
+/* 8035DAC0 00359720 90 61 00 18 */ stw r3, 0x18(r1)
+/* 8035DAC4 00359724 7F 84 E3 78 */ mr r4, r28
+/* 8035DAC8 00359728 38 60 00 00 */ li r3, 0
+/* 8035DACC 0035972C 48 00 16 61 */ bl SBRefStr
+/* 8035DAD0 00359730 90 61 00 1C */ stw r3, 0x1c(r1)
+/* 8035DAD4 00359734 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035DAD8 00359738 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 8035DADC 0035973C 4B FD 8E F5 */ bl TableEnter
+lbl_8035DAE0:
+/* 8035DAE0 00359740 88 1E 00 00 */ lbz r0, 0(r30)
+/* 8035DAE4 00359744 7C 00 07 75 */ extsb. r0, r0
+/* 8035DAE8 00359748 40 82 FF 8C */ bne lbl_8035DA74
+/* 8035DAEC 0035974C 3B 00 00 00 */ li r24, 0
+/* 8035DAF0 00359750 3B DE 00 01 */ addi r30, r30, 1
+/* 8035DAF4 00359754 3B FF FF FF */ addi r31, r31, -1
+lbl_8035DAF8:
+/* 8035DAF8 00359758 2C 1F 00 02 */ cmpwi r31, 2
+/* 8035DAFC 0035975C 41 80 01 20 */ blt lbl_8035DC1C
+/* 8035DB00 00359760 7F C4 F3 78 */ mr r4, r30
+/* 8035DB04 00359764 38 61 00 08 */ addi r3, r1, 8
+/* 8035DB08 00359768 38 A0 00 02 */ li r5, 2
+/* 8035DB0C 0035976C 4B CA 64 F5 */ bl memcpy
+/* 8035DB10 00359770 A0 61 00 08 */ lhz r3, 8(r1)
+/* 8035DB14 00359774 4B F9 92 5D */ bl SONtoHs
+/* 8035DB18 00359778 3B DE 00 02 */ addi r30, r30, 2
+/* 8035DB1C 0035977C B0 61 00 08 */ sth r3, 8(r1)
+/* 8035DB20 00359780 7F DA F3 78 */ mr r26, r30
+/* 8035DB24 00359784 3B 20 00 00 */ li r25, 0
+/* 8035DB28 00359788 3B FF FF FE */ addi r31, r31, -2
+/* 8035DB2C 0035978C 48 00 00 2C */ b lbl_8035DB58
+lbl_8035DB30:
+/* 8035DB30 00359790 7F C3 F3 78 */ mr r3, r30
+/* 8035DB34 00359794 7F E4 FB 78 */ mr r4, r31
+/* 8035DB38 00359798 48 00 16 DD */ bl NTSLengthSB
+/* 8035DB3C 0035979C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DB40 003597A0 41 80 00 DC */ blt lbl_8035DC1C
+/* 8035DB44 003597A4 2C 03 00 64 */ cmpwi r3, 0x64
+/* 8035DB48 003597A8 41 81 00 D4 */ bgt lbl_8035DC1C
+/* 8035DB4C 003597AC 7F DE 1A 14 */ add r30, r30, r3
+/* 8035DB50 003597B0 7F E3 F8 50 */ subf r31, r3, r31
+/* 8035DB54 003597B4 3B 39 00 01 */ addi r25, r25, 1
+lbl_8035DB58:
+/* 8035DB58 003597B8 88 1E 00 00 */ lbz r0, 0(r30)
+/* 8035DB5C 003597BC 7C 00 07 75 */ extsb. r0, r0
+/* 8035DB60 003597C0 40 82 FF D0 */ bne lbl_8035DB30
+/* 8035DB64 003597C4 3A E0 00 00 */ li r23, 0
+/* 8035DB68 003597C8 3B DE 00 01 */ addi r30, r30, 1
+/* 8035DB6C 003597CC 3B FF FF FF */ addi r31, r31, -1
+/* 8035DB70 003597D0 48 00 00 94 */ b lbl_8035DC04
+lbl_8035DB74:
+/* 8035DB74 003597D4 7F 5B D3 78 */ mr r27, r26
+/* 8035DB78 003597D8 3A C0 00 00 */ li r22, 0
+/* 8035DB7C 003597DC 48 00 00 7C */ b lbl_8035DBF8
+lbl_8035DB80:
+/* 8035DB80 003597E0 7F C3 F3 78 */ mr r3, r30
+/* 8035DB84 003597E4 7F E4 FB 78 */ mr r4, r31
+/* 8035DB88 003597E8 48 00 16 8D */ bl NTSLengthSB
+/* 8035DB8C 003597EC 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DB90 003597F0 7C 7C 1B 78 */ mr r28, r3
+/* 8035DB94 003597F4 41 80 00 88 */ blt lbl_8035DC1C
+/* 8035DB98 003597F8 7F 65 DB 78 */ mr r5, r27
+/* 8035DB9C 003597FC 7E E6 BB 78 */ mr r6, r23
+/* 8035DBA0 00359800 38 61 00 20 */ addi r3, r1, 0x20
+/* 8035DBA4 00359804 38 8D 94 F4 */ addi r4, r13, lbl_8063E7B4-_SDA_BASE_
+/* 8035DBA8 00359808 4C C6 31 82 */ crclr 6
+/* 8035DBAC 0035980C 4B E6 EF 51 */ bl sprintf
+/* 8035DBB0 00359810 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035DBB4 00359814 38 60 00 00 */ li r3, 0
+/* 8035DBB8 00359818 48 00 15 75 */ bl SBRefStr
+/* 8035DBBC 0035981C 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8035DBC0 00359820 7F C4 F3 78 */ mr r4, r30
+/* 8035DBC4 00359824 38 60 00 00 */ li r3, 0
+/* 8035DBC8 00359828 48 00 15 65 */ bl SBRefStr
+/* 8035DBCC 0035982C 90 61 00 14 */ stw r3, 0x14(r1)
+/* 8035DBD0 00359830 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035DBD4 00359834 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 8035DBD8 00359838 4B FD 8D F9 */ bl TableEnter
+/* 8035DBDC 0035983C 7F 63 DB 78 */ mr r3, r27
+/* 8035DBE0 00359840 7F DE E2 14 */ add r30, r30, r28
+/* 8035DBE4 00359844 7F FC F8 50 */ subf r31, r28, r31
+/* 8035DBE8 00359848 4B E6 8F 7D */ bl strlen
+/* 8035DBEC 0035984C 7C 63 DA 14 */ add r3, r3, r27
+/* 8035DBF0 00359850 3A D6 00 01 */ addi r22, r22, 1
+/* 8035DBF4 00359854 3B 63 00 01 */ addi r27, r3, 1
+lbl_8035DBF8:
+/* 8035DBF8 00359858 7C 16 C8 00 */ cmpw r22, r25
+/* 8035DBFC 0035985C 41 80 FF 84 */ blt lbl_8035DB80
+/* 8035DC00 00359860 3A F7 00 01 */ addi r23, r23, 1
+lbl_8035DC04:
+/* 8035DC04 00359864 A0 01 00 08 */ lhz r0, 8(r1)
+/* 8035DC08 00359868 7C 17 00 00 */ cmpw r23, r0
+/* 8035DC0C 0035986C 41 80 FF 68 */ blt lbl_8035DB74
+/* 8035DC10 00359870 3B 18 00 01 */ addi r24, r24, 1
+/* 8035DC14 00359874 2C 18 00 02 */ cmpwi r24, 2
+/* 8035DC18 00359878 41 80 FE E0 */ blt lbl_8035DAF8
+lbl_8035DC1C:
+/* 8035DC1C 0035987C 39 61 00 D0 */ addi r11, r1, 0xd0
+/* 8035DC20 00359880 4B E6 95 41 */ bl _restgpr_22
+/* 8035DC24 00359884 80 01 00 D4 */ lwz r0, 0xd4(r1)
+/* 8035DC28 00359888 7C 08 03 A6 */ mtlr r0
+/* 8035DC2C 0035988C 38 21 00 D0 */ addi r1, r1, 0xd0
+/* 8035DC30 00359890 4E 80 00 20 */ blr
+
+.global SBServerParseQR2FullKeysSplit
+SBServerParseQR2FullKeysSplit:
+/* 8035DC34 00359894 94 21 FF 40 */ stwu r1, -0xc0(r1)
+/* 8035DC38 00359898 7C 08 02 A6 */ mflr r0
+/* 8035DC3C 0035989C 90 01 00 C4 */ stw r0, 0xc4(r1)
+/* 8035DC40 003598A0 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 8035DC44 003598A4 4B E6 94 DD */ bl _savegpr_25
+/* 8035DC48 003598A8 88 04 00 00 */ lbz r0, 0(r4)
+/* 8035DC4C 003598AC 7C 7D 1B 78 */ mr r29, r3
+/* 8035DC50 003598B0 7C 9E 23 78 */ mr r30, r4
+/* 8035DC54 003598B4 7C BF 2B 78 */ mr r31, r5
+/* 8035DC58 003598B8 7C 00 07 75 */ extsb. r0, r0
+/* 8035DC5C 003598BC 3B 40 00 00 */ li r26, 0
+/* 8035DC60 003598C0 41 82 02 28 */ beq lbl_8035DE88
+/* 8035DC64 003598C4 7F C3 F3 78 */ mr r3, r30
+/* 8035DC68 003598C8 7F E4 FB 78 */ mr r4, r31
+/* 8035DC6C 003598CC 48 00 15 A9 */ bl NTSLengthSB
+/* 8035DC70 003598D0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DC74 003598D4 41 80 02 14 */ blt lbl_8035DE88
+/* 8035DC78 003598D8 3F 80 80 45 */ lis r28, lbl_8044C5E0@ha
+/* 8035DC7C 003598DC 7F DB F3 78 */ mr r27, r30
+/* 8035DC80 003598E0 7F DE 1A 14 */ add r30, r30, r3
+/* 8035DC84 003598E4 7F E3 F8 50 */ subf r31, r3, r31
+/* 8035DC88 003598E8 38 7C C5 E0 */ addi r3, r28, lbl_8044C5E0@l
+/* 8035DC8C 003598EC 4B E6 8E D9 */ bl strlen
+/* 8035DC90 003598F0 7C 65 1B 78 */ mr r5, r3
+/* 8035DC94 003598F4 7F 64 DB 78 */ mr r4, r27
+/* 8035DC98 003598F8 38 7C C5 E0 */ addi r3, r28, -14880
+/* 8035DC9C 003598FC 4B E7 2E 0D */ bl strncasecmp
+/* 8035DCA0 00359900 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DCA4 00359904 40 82 01 E4 */ bne lbl_8035DE88
+/* 8035DCA8 00359908 2C 1F 00 01 */ cmpwi r31, 1
+/* 8035DCAC 0035990C 41 80 01 DC */ blt lbl_8035DE88
+/* 8035DCB0 00359910 88 9E 00 00 */ lbz r4, 0(r30)
+/* 8035DCB4 00359914 3B DE 00 01 */ addi r30, r30, 1
+/* 8035DCB8 00359918 3B FF FF FF */ addi r31, r31, -1
+/* 8035DCBC 0035991C 54 80 06 30 */ rlwinm r0, r4, 0, 0x18, 0x18
+/* 8035DCC0 00359920 28 00 00 80 */ cmplwi r0, 0x80
+/* 8035DCC4 00359924 40 82 00 0C */ bne lbl_8035DCD0
+/* 8035DCC8 00359928 3B 40 00 01 */ li r26, 1
+/* 8035DCCC 0035992C 68 84 00 80 */ xori r4, r4, 0x80
+lbl_8035DCD0:
+/* 8035DCD0 00359930 28 04 00 07 */ cmplwi r4, 7
+/* 8035DCD4 00359934 41 81 01 B4 */ bgt lbl_8035DE88
+/* 8035DCD8 00359938 2C 1A 00 01 */ cmpwi r26, 1
+/* 8035DCDC 0035993C 40 82 00 20 */ bne lbl_8035DCFC
+/* 8035DCE0 00359940 38 00 00 FF */ li r0, 0xff
+/* 8035DCE4 00359944 88 7D 00 28 */ lbz r3, 0x28(r29)
+/* 8035DCE8 00359948 7C 00 20 30 */ slw r0, r0, r4
+/* 8035DCEC 0035994C 7C 00 07 74 */ extsb r0, r0
+/* 8035DCF0 00359950 7C 60 03 78 */ or r0, r3, r0
+/* 8035DCF4 00359954 98 1D 00 28 */ stb r0, 0x28(r29)
+/* 8035DCF8 00359958 48 00 00 18 */ b lbl_8035DD10
+lbl_8035DCFC:
+/* 8035DCFC 0035995C 38 00 00 01 */ li r0, 1
+/* 8035DD00 00359960 88 7D 00 28 */ lbz r3, 0x28(r29)
+/* 8035DD04 00359964 7C 00 20 30 */ slw r0, r0, r4
+/* 8035DD08 00359968 7C 60 03 78 */ or r0, r3, r0
+/* 8035DD0C 0035996C 98 1D 00 28 */ stb r0, 0x28(r29)
+lbl_8035DD10:
+/* 8035DD10 00359970 2C 1F 00 01 */ cmpwi r31, 1
+/* 8035DD14 00359974 40 80 01 6C */ bge lbl_8035DE80
+/* 8035DD18 00359978 48 00 01 70 */ b lbl_8035DE88
+/* 8035DD1C 0035997C 48 00 01 64 */ b lbl_8035DE80
+lbl_8035DD20:
+/* 8035DD20 00359980 8B 5E 00 00 */ lbz r26, 0(r30)
+/* 8035DD24 00359984 3B DE 00 01 */ addi r30, r30, 1
+/* 8035DD28 00359988 3B FF FF FF */ addi r31, r31, -1
+/* 8035DD2C 0035998C 7F 5A 07 75 */ extsb. r26, r26
+/* 8035DD30 00359990 41 80 01 58 */ blt lbl_8035DE88
+/* 8035DD34 00359994 2C 1A 00 02 */ cmpwi r26, 2
+/* 8035DD38 00359998 40 81 01 24 */ ble lbl_8035DE5C
+/* 8035DD3C 0035999C 48 00 01 4C */ b lbl_8035DE88
+/* 8035DD40 003599A0 48 00 01 1C */ b lbl_8035DE5C
+lbl_8035DD44:
+/* 8035DD44 003599A4 7F C3 F3 78 */ mr r3, r30
+/* 8035DD48 003599A8 7F E4 FB 78 */ mr r4, r31
+/* 8035DD4C 003599AC 48 00 14 C9 */ bl NTSLengthSB
+/* 8035DD50 003599B0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DD54 003599B4 41 80 01 34 */ blt lbl_8035DE88
+/* 8035DD58 003599B8 2C 1A 00 00 */ cmpwi r26, 0
+/* 8035DD5C 003599BC 7F DC F3 78 */ mr r28, r30
+/* 8035DD60 003599C0 7F DE 1A 14 */ add r30, r30, r3
+/* 8035DD64 003599C4 7F E3 F8 50 */ subf r31, r3, r31
+/* 8035DD68 003599C8 40 82 00 54 */ bne lbl_8035DDBC
+/* 8035DD6C 003599CC 7F C3 F3 78 */ mr r3, r30
+/* 8035DD70 003599D0 7F E4 FB 78 */ mr r4, r31
+/* 8035DD74 003599D4 48 00 14 A1 */ bl NTSLengthSB
+/* 8035DD78 003599D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DD7C 003599DC 41 80 01 0C */ blt lbl_8035DE88
+/* 8035DD80 003599E0 7F DB F3 78 */ mr r27, r30
+/* 8035DD84 003599E4 7F 84 E3 78 */ mr r4, r28
+/* 8035DD88 003599E8 7F DE 1A 14 */ add r30, r30, r3
+/* 8035DD8C 003599EC 7F E3 F8 50 */ subf r31, r3, r31
+/* 8035DD90 003599F0 38 60 00 00 */ li r3, 0
+/* 8035DD94 003599F4 48 00 13 99 */ bl SBRefStr
+/* 8035DD98 003599F8 90 61 00 10 */ stw r3, 0x10(r1)
+/* 8035DD9C 003599FC 7F 64 DB 78 */ mr r4, r27
+/* 8035DDA0 00359A00 38 60 00 00 */ li r3, 0
+/* 8035DDA4 00359A04 48 00 13 89 */ bl SBRefStr
+/* 8035DDA8 00359A08 90 61 00 14 */ stw r3, 0x14(r1)
+/* 8035DDAC 00359A0C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035DDB0 00359A10 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 8035DDB4 00359A14 4B FD 8C 1D */ bl TableEnter
+/* 8035DDB8 00359A18 48 00 00 A4 */ b lbl_8035DE5C
+lbl_8035DDBC:
+/* 8035DDBC 00359A1C 2C 1F 00 01 */ cmpwi r31, 1
+/* 8035DDC0 00359A20 41 80 00 C8 */ blt lbl_8035DE88
+/* 8035DDC4 00359A24 8B 3E 00 00 */ lbz r25, 0(r30)
+/* 8035DDC8 00359A28 3B DE 00 01 */ addi r30, r30, 1
+/* 8035DDCC 00359A2C 3B FF FF FF */ addi r31, r31, -1
+/* 8035DDD0 00359A30 7F 39 07 74 */ extsb r25, r25
+/* 8035DDD4 00359A34 48 00 00 6C */ b lbl_8035DE40
+lbl_8035DDD8:
+/* 8035DDD8 00359A38 7F C3 F3 78 */ mr r3, r30
+/* 8035DDDC 00359A3C 7F E4 FB 78 */ mr r4, r31
+/* 8035DDE0 00359A40 48 00 14 35 */ bl NTSLengthSB
+/* 8035DDE4 00359A44 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DDE8 00359A48 41 80 00 A0 */ blt lbl_8035DE88
+/* 8035DDEC 00359A4C 7F DB F3 78 */ mr r27, r30
+/* 8035DDF0 00359A50 7F 85 E3 78 */ mr r5, r28
+/* 8035DDF4 00359A54 7F 26 CB 78 */ mr r6, r25
+/* 8035DDF8 00359A58 7F DE 1A 14 */ add r30, r30, r3
+/* 8035DDFC 00359A5C 7F E3 F8 50 */ subf r31, r3, r31
+/* 8035DE00 00359A60 38 61 00 18 */ addi r3, r1, 0x18
+/* 8035DE04 00359A64 38 8D 94 F4 */ addi r4, r13, lbl_8063E7B4-_SDA_BASE_
+/* 8035DE08 00359A68 4C C6 31 82 */ crclr 6
+/* 8035DE0C 00359A6C 4B E6 EC F1 */ bl sprintf
+/* 8035DE10 00359A70 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035DE14 00359A74 38 60 00 00 */ li r3, 0
+/* 8035DE18 00359A78 48 00 13 15 */ bl SBRefStr
+/* 8035DE1C 00359A7C 90 61 00 08 */ stw r3, 8(r1)
+/* 8035DE20 00359A80 7F 64 DB 78 */ mr r4, r27
+/* 8035DE24 00359A84 38 60 00 00 */ li r3, 0
+/* 8035DE28 00359A88 48 00 13 05 */ bl SBRefStr
+/* 8035DE2C 00359A8C 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8035DE30 00359A90 38 81 00 08 */ addi r4, r1, 8
+/* 8035DE34 00359A94 80 7D 00 18 */ lwz r3, 0x18(r29)
+/* 8035DE38 00359A98 4B FD 8B 99 */ bl TableEnter
+/* 8035DE3C 00359A9C 3B 39 00 01 */ addi r25, r25, 1
+lbl_8035DE40:
+/* 8035DE40 00359AA0 88 1E 00 00 */ lbz r0, 0(r30)
+/* 8035DE44 00359AA4 7C 00 07 75 */ extsb. r0, r0
+/* 8035DE48 00359AA8 40 82 FF 90 */ bne lbl_8035DDD8
+/* 8035DE4C 00359AAC 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035DE50 00359AB0 40 81 00 0C */ ble lbl_8035DE5C
+/* 8035DE54 00359AB4 3B DE 00 01 */ addi r30, r30, 1
+/* 8035DE58 00359AB8 3B FF FF FF */ addi r31, r31, -1
+lbl_8035DE5C:
+/* 8035DE5C 00359ABC 88 1E 00 00 */ lbz r0, 0(r30)
+/* 8035DE60 00359AC0 7C 00 07 74 */ extsb r0, r0
+/* 8035DE64 00359AC4 2C 80 00 00 */ cmpwi cr1, r0, 0
+/* 8035DE68 00359AC8 40 86 FE DC */ bne cr1, lbl_8035DD44
+/* 8035DE6C 00359ACC 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035DE70 00359AD0 40 81 00 10 */ ble lbl_8035DE80
+/* 8035DE74 00359AD4 40 86 00 14 */ bne cr1, lbl_8035DE88
+/* 8035DE78 00359AD8 3B DE 00 01 */ addi r30, r30, 1
+/* 8035DE7C 00359ADC 3B FF FF FF */ addi r31, r31, -1
+lbl_8035DE80:
+/* 8035DE80 00359AE0 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035DE84 00359AE4 41 81 FE 9C */ bgt lbl_8035DD20
+lbl_8035DE88:
+/* 8035DE88 00359AE8 39 61 00 C0 */ addi r11, r1, 0xc0
+/* 8035DE8C 00359AEC 4B E6 92 E1 */ bl _restgpr_25
+/* 8035DE90 00359AF0 80 01 00 C4 */ lwz r0, 0xc4(r1)
+/* 8035DE94 00359AF4 7C 08 03 A6 */ mtlr r0
+/* 8035DE98 00359AF8 38 21 00 C0 */ addi r1, r1, 0xc0
+/* 8035DE9C 00359AFC 4E 80 00 20 */ blr
+
+.global KeyValFree
+KeyValFree:
+/* 8035DEA0 00359B00 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035DEA4 00359B04 7C 08 02 A6 */ mflr r0
+/* 8035DEA8 00359B08 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035DEAC 00359B0C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035DEB0 00359B10 7C 7F 1B 78 */ mr r31, r3
+/* 8035DEB4 00359B14 38 60 00 00 */ li r3, 0
+/* 8035DEB8 00359B18 80 9F 00 00 */ lwz r4, 0(r31)
+/* 8035DEBC 00359B1C 48 00 12 F9 */ bl SBReleaseStr
+/* 8035DEC0 00359B20 80 9F 00 04 */ lwz r4, 4(r31)
+/* 8035DEC4 00359B24 38 60 00 00 */ li r3, 0
+/* 8035DEC8 00359B28 48 00 12 ED */ bl SBReleaseStr
+/* 8035DECC 00359B2C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035DED0 00359B30 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035DED4 00359B34 7C 08 03 A6 */ mtlr r0
+/* 8035DED8 00359B38 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035DEDC 00359B3C 4E 80 00 20 */ blr
+
+.global KeyValHashKey
+KeyValHashKey:
+/* 8035DEE0 00359B40 3C C0 80 42 */ lis r6, lbl_80422D48@ha
+/* 8035DEE4 00359B44 81 03 00 00 */ lwz r8, 0(r3)
+/* 8035DEE8 00359B48 38 C6 2D 48 */ addi r6, r6, lbl_80422D48@l
+/* 8035DEEC 00359B4C 3C A0 9C D0 */ lis r5, 0x9CCF9319@ha
+/* 8035DEF0 00359B50 80 E6 00 38 */ lwz r7, 0x38(r6)
+/* 8035DEF4 00359B54 38 C5 93 19 */ addi r6, r5, 0x9CCF9319@l
+/* 8035DEF8 00359B58 38 60 00 00 */ li r3, 0
+/* 8035DEFC 00359B5C 48 00 00 3C */ b lbl_8035DF38
+lbl_8035DF00:
+/* 8035DF00 00359B60 7C A3 31 D6 */ mullw r5, r3, r6
+/* 8035DF04 00359B64 7D 29 07 75 */ extsb. r9, r9
+/* 8035DF08 00359B68 38 00 00 00 */ li r0, 0
+/* 8035DF0C 00359B6C 41 80 00 0C */ blt lbl_8035DF18
+/* 8035DF10 00359B70 2C 09 01 00 */ cmpwi r9, 0x100
+/* 8035DF14 00359B74 41 80 00 08 */ blt lbl_8035DF1C
+lbl_8035DF18:
+/* 8035DF18 00359B78 38 00 00 01 */ li r0, 1
+lbl_8035DF1C:
+/* 8035DF1C 00359B7C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035DF20 00359B80 41 82 00 08 */ beq lbl_8035DF28
+/* 8035DF24 00359B84 48 00 00 0C */ b lbl_8035DF30
+lbl_8035DF28:
+/* 8035DF28 00359B88 80 67 00 10 */ lwz r3, 0x10(r7)
+/* 8035DF2C 00359B8C 7D 23 48 AE */ lbzx r9, r3, r9
+lbl_8035DF30:
+/* 8035DF30 00359B90 7C 65 4A 14 */ add r3, r5, r9
+/* 8035DF34 00359B94 39 08 00 01 */ addi r8, r8, 1
+lbl_8035DF38:
+/* 8035DF38 00359B98 89 28 00 00 */ lbz r9, 0(r8)
+/* 8035DF3C 00359B9C 7D 20 07 75 */ extsb. r0, r9
+/* 8035DF40 00359BA0 40 82 FF C0 */ bne lbl_8035DF00
+/* 8035DF44 00359BA4 7C 03 23 96 */ divwu r0, r3, r4
+/* 8035DF48 00359BA8 7C 00 21 D6 */ mullw r0, r0, r4
+/* 8035DF4C 00359BAC 7C 60 18 50 */ subf r3, r0, r3
+/* 8035DF50 00359BB0 4E 80 00 20 */ blr
+
+.global KeyValCompareKey
+KeyValCompareKey:
+/* 8035DF54 00359BB4 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035DF58 00359BB8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DF5C 00359BBC 41 82 00 10 */ beq lbl_8035DF6C
+/* 8035DF60 00359BC0 80 84 00 00 */ lwz r4, 0(r4)
+/* 8035DF64 00359BC4 2C 04 00 00 */ cmpwi r4, 0
+/* 8035DF68 00359BC8 40 82 00 0C */ bne lbl_8035DF74
+lbl_8035DF6C:
+/* 8035DF6C 00359BCC 38 60 00 01 */ li r3, 1
+/* 8035DF70 00359BD0 4E 80 00 20 */ blr
+lbl_8035DF74:
+/* 8035DF74 00359BD4 4B E7 2B E0 */ b strcasecmp
+/* 8035DF78 00359BD8 4E 80 00 20 */ blr
+
+.global SBAllocServer
+SBAllocServer:
+/* 8035DF7C 00359BDC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035DF80 00359BE0 7C 08 02 A6 */ mflr r0
+/* 8035DF84 00359BE4 38 60 00 2C */ li r3, 0x2c
+/* 8035DF88 00359BE8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035DF8C 00359BEC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035DF90 00359BF0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035DF94 00359BF4 7C BE 2B 78 */ mr r30, r5
+/* 8035DF98 00359BF8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035DF9C 00359BFC 7C 9D 23 78 */ mr r29, r4
+/* 8035DFA0 00359C00 4B FD B3 75 */ bl gsimalloc
+/* 8035DFA4 00359C04 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DFA8 00359C08 7C 7F 1B 78 */ mr r31, r3
+/* 8035DFAC 00359C0C 40 82 00 0C */ bne lbl_8035DFB8
+/* 8035DFB0 00359C10 38 60 00 00 */ li r3, 0
+/* 8035DFB4 00359C14 48 00 00 74 */ b lbl_8035E028
+lbl_8035DFB8:
+/* 8035DFB8 00359C18 3C C0 80 36 */ lis r6, KeyValHashKey@ha
+/* 8035DFBC 00359C1C 3C E0 80 36 */ lis r7, KeyValCompareKey@ha
+/* 8035DFC0 00359C20 3D 00 80 36 */ lis r8, KeyValFree@ha
+/* 8035DFC4 00359C24 38 60 00 08 */ li r3, 8
+/* 8035DFC8 00359C28 38 C6 DE E0 */ addi r6, r6, KeyValHashKey@l
+/* 8035DFCC 00359C2C 38 E7 DF 54 */ addi r7, r7, KeyValCompareKey@l
+/* 8035DFD0 00359C30 39 08 DE A0 */ addi r8, r8, KeyValFree@l
+/* 8035DFD4 00359C34 38 80 00 08 */ li r4, 8
+/* 8035DFD8 00359C38 38 A0 00 04 */ li r5, 4
+/* 8035DFDC 00359C3C 4B FD 88 4D */ bl TableNew2
+/* 8035DFE0 00359C40 2C 03 00 00 */ cmpwi r3, 0
+/* 8035DFE4 00359C44 90 7F 00 18 */ stw r3, 0x18(r31)
+/* 8035DFE8 00359C48 40 82 00 14 */ bne lbl_8035DFFC
+/* 8035DFEC 00359C4C 7F E3 FB 78 */ mr r3, r31
+/* 8035DFF0 00359C50 4B FD B3 49 */ bl gsifree
+/* 8035DFF4 00359C54 38 60 00 00 */ li r3, 0
+/* 8035DFF8 00359C58 48 00 00 30 */ b lbl_8035E028
+lbl_8035DFFC:
+/* 8035DFFC 00359C5C 38 00 00 00 */ li r0, 0
+/* 8035E000 00359C60 7F E3 FB 78 */ mr r3, r31
+/* 8035E004 00359C64 98 1F 00 14 */ stb r0, 0x14(r31)
+/* 8035E008 00359C68 98 1F 00 15 */ stb r0, 0x15(r31)
+/* 8035E00C 00359C6C 90 1F 00 24 */ stw r0, 0x24(r31)
+/* 8035E010 00359C70 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 8035E014 00359C74 90 1F 00 10 */ stw r0, 0x10(r31)
+/* 8035E018 00359C78 93 BF 00 00 */ stw r29, 0(r31)
+/* 8035E01C 00359C7C B3 DF 00 04 */ sth r30, 4(r31)
+/* 8035E020 00359C80 90 1F 00 08 */ stw r0, 8(r31)
+/* 8035E024 00359C84 B0 1F 00 0C */ sth r0, 0xc(r31)
+lbl_8035E028:
+/* 8035E028 00359C88 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035E02C 00359C8C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035E030 00359C90 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035E034 00359C94 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035E038 00359C98 7C 08 03 A6 */ mtlr r0
+/* 8035E03C 00359C9C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035E040 00359CA0 4E 80 00 20 */ blr
+
+.global SBServerSetFlags
+SBServerSetFlags:
+/* 8035E044 00359CA4 98 83 00 15 */ stb r4, 0x15(r3)
+/* 8035E048 00359CA8 4E 80 00 20 */ blr
+
+.global SBServerSetPrivateAddr
+SBServerSetPrivateAddr:
+/* 8035E04C 00359CAC 90 83 00 08 */ stw r4, 8(r3)
+/* 8035E050 00359CB0 B0 A3 00 0C */ sth r5, 0xc(r3)
+/* 8035E054 00359CB4 4E 80 00 20 */ blr
+
+.global SBServerSetICMPIP
+SBServerSetICMPIP:
+/* 8035E058 00359CB8 90 83 00 10 */ stw r4, 0x10(r3)
+/* 8035E05C 00359CBC 4E 80 00 20 */ blr
+
+.global SBServerSetState
+SBServerSetState:
+/* 8035E060 00359CC0 98 83 00 14 */ stb r4, 0x14(r3)
+/* 8035E064 00359CC4 4E 80 00 20 */ blr
+
+.global SBServerGetState
+SBServerGetState:
+/* 8035E068 00359CC8 88 63 00 14 */ lbz r3, 0x14(r3)
+/* 8035E06C 00359CCC 4E 80 00 20 */ blr
+
+.global SBIsNullServer
+SBIsNullServer:
+/* 8035E070 00359CD0 80 0D B1 88 */ lwz r0, lbl_80640448-_SDA_BASE_(r13)
+/* 8035E074 00359CD4 7C 03 00 50 */ subf r0, r3, r0
+/* 8035E078 00359CD8 7C 00 00 34 */ cntlzw r0, r0
+/* 8035E07C 00359CDC 54 03 D9 7E */ srwi r3, r0, 5
+/* 8035E080 00359CE0 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/sb_serverbrowsing.s b/asm/SDK/DWC/gamespy/sb_serverbrowsing.s new file mode 100644 index 0000000..d88b753 --- /dev/null +++ b/asm/SDK/DWC/gamespy/sb_serverbrowsing.s @@ -0,0 +1,653 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global ListCallback
+ListCallback:
+/* 8035E084 00359CE4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035E088 00359CE8 7C 08 02 A6 */ mflr r0
+/* 8035E08C 00359CEC 28 04 00 07 */ cmplwi r4, 7
+/* 8035E090 00359CF0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035E094 00359CF4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035E098 00359CF8 7C DF 33 78 */ mr r31, r6
+/* 8035E09C 00359CFC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035E0A0 00359D00 7C BE 2B 78 */ mr r30, r5
+/* 8035E0A4 00359D04 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035E0A8 00359D08 7C 7D 1B 78 */ mr r29, r3
+/* 8035E0AC 00359D0C 41 81 01 C4 */ bgt lbl_8035E270
+/* 8035E0B0 00359D10 3C E0 80 45 */ lis r7, lbl_8044C5F0@ha
+/* 8035E0B4 00359D14 54 80 10 3A */ slwi r0, r4, 2
+/* 8035E0B8 00359D18 38 E7 C5 F0 */ addi r7, r7, lbl_8044C5F0@l
+/* 8035E0BC 00359D1C 7C E7 00 2E */ lwzx r7, r7, r0
+/* 8035E0C0 00359D20 7C E9 03 A6 */ mtctr r7
+/* 8035E0C4 00359D24 4E 80 04 20 */ bctr
+/* 8035E0C8 00359D28 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E0CC 00359D2C 7F E3 FB 78 */ mr r3, r31
+/* 8035E0D0 00359D30 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E0D4 00359D34 38 80 00 00 */ li r4, 0
+/* 8035E0D8 00359D38 7D 89 03 A6 */ mtctr r12
+/* 8035E0DC 00359D3C 4E 80 04 21 */ bctrl
+/* 8035E0E0 00359D40 88 7E 00 14 */ lbz r3, 0x14(r30)
+/* 8035E0E4 00359D44 54 60 07 BF */ clrlwi. r0, r3, 0x1e
+/* 8035E0E8 00359D48 41 82 00 0C */ beq lbl_8035E0F4
+/* 8035E0EC 00359D4C 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19
+/* 8035E0F0 00359D50 40 82 01 80 */ bne lbl_8035E270
+lbl_8035E0F4:
+/* 8035E0F4 00359D54 70 60 00 2C */ andi. r0, r3, 0x2c
+/* 8035E0F8 00359D58 40 82 01 78 */ bne lbl_8035E270
+/* 8035E0FC 00359D5C 80 1F 08 2C */ lwz r0, 0x82c(r31)
+/* 8035E100 00359D60 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E104 00359D64 40 82 01 6C */ bne lbl_8035E270
+/* 8035E108 00359D68 88 1E 00 15 */ lbz r0, 0x15(r30)
+/* 8035E10C 00359D6C 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8035E110 00359D70 41 82 00 2C */ beq lbl_8035E13C
+/* 8035E114 00359D74 80 1F 00 4C */ lwz r0, 0x4c(r31)
+/* 8035E118 00359D78 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E11C 00359D7C 41 82 00 10 */ beq lbl_8035E12C
+/* 8035E120 00359D80 80 1F 00 40 */ lwz r0, 0x40(r31)
+/* 8035E124 00359D84 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E128 00359D88 40 82 00 0C */ bne lbl_8035E134
+lbl_8035E12C:
+/* 8035E12C 00359D8C 38 C0 00 01 */ li r6, 1
+/* 8035E130 00359D90 48 00 00 10 */ b lbl_8035E140
+lbl_8035E134:
+/* 8035E134 00359D94 38 C0 00 00 */ li r6, 0
+/* 8035E138 00359D98 48 00 00 08 */ b lbl_8035E140
+lbl_8035E13C:
+/* 8035E13C 00359D9C 38 C0 00 02 */ li r6, 2
+lbl_8035E140:
+/* 8035E140 00359DA0 A0 1D 07 D0 */ lhz r0, 0x7d0(r29)
+/* 8035E144 00359DA4 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
+/* 8035E148 00359DA8 41 82 00 1C */ beq lbl_8035E164
+/* 8035E14C 00359DAC 7F E3 FB 78 */ mr r3, r31
+/* 8035E150 00359DB0 7F C4 F3 78 */ mr r4, r30
+/* 8035E154 00359DB4 38 A0 00 00 */ li r5, 0
+/* 8035E158 00359DB8 38 E0 00 01 */ li r7, 1
+/* 8035E15C 00359DBC 4B FF EB DD */ bl SBQueryEngineUpdateServer
+/* 8035E160 00359DC0 48 00 01 10 */ b lbl_8035E270
+lbl_8035E164:
+/* 8035E164 00359DC4 7F E3 FB 78 */ mr r3, r31
+/* 8035E168 00359DC8 7F C4 F3 78 */ mr r4, r30
+/* 8035E16C 00359DCC 38 A0 00 00 */ li r5, 0
+/* 8035E170 00359DD0 38 E0 00 00 */ li r7, 0
+/* 8035E174 00359DD4 4B FF EB C5 */ bl SBQueryEngineUpdateServer
+/* 8035E178 00359DD8 48 00 00 F8 */ b lbl_8035E270
+/* 8035E17C 00359DDC 88 05 00 14 */ lbz r0, 0x14(r5)
+/* 8035E180 00359DE0 70 00 00 43 */ andi. r0, r0, 0x43
+/* 8035E184 00359DE4 40 82 00 20 */ bne lbl_8035E1A4
+/* 8035E188 00359DE8 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E18C 00359DEC 7F E3 FB 78 */ mr r3, r31
+/* 8035E190 00359DF0 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E194 00359DF4 38 80 00 02 */ li r4, 2
+/* 8035E198 00359DF8 7D 89 03 A6 */ mtctr r12
+/* 8035E19C 00359DFC 4E 80 04 21 */ bctrl
+/* 8035E1A0 00359E00 48 00 00 D0 */ b lbl_8035E270
+lbl_8035E1A4:
+/* 8035E1A4 00359E04 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E1A8 00359E08 7F E3 FB 78 */ mr r3, r31
+/* 8035E1AC 00359E0C 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E1B0 00359E10 38 80 00 01 */ li r4, 1
+/* 8035E1B4 00359E14 7D 89 03 A6 */ mtctr r12
+/* 8035E1B8 00359E18 4E 80 04 21 */ bctrl
+/* 8035E1BC 00359E1C 48 00 00 B4 */ b lbl_8035E270
+/* 8035E1C0 00359E20 88 05 00 14 */ lbz r0, 0x14(r5)
+/* 8035E1C4 00359E24 70 00 00 2C */ andi. r0, r0, 0x2c
+/* 8035E1C8 00359E28 41 82 00 10 */ beq lbl_8035E1D8
+/* 8035E1CC 00359E2C 7F E3 FB 78 */ mr r3, r31
+/* 8035E1D0 00359E30 7F C4 F3 78 */ mr r4, r30
+/* 8035E1D4 00359E34 4B FF F1 B1 */ bl SBQueryEngineRemoveServerFromFIFOs
+lbl_8035E1D8:
+/* 8035E1D8 00359E38 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E1DC 00359E3C 7F E3 FB 78 */ mr r3, r31
+/* 8035E1E0 00359E40 7F C5 F3 78 */ mr r5, r30
+/* 8035E1E4 00359E44 80 DF 08 3C */ lwz r6, 0x83c(r31)
+/* 8035E1E8 00359E48 38 80 00 03 */ li r4, 3
+/* 8035E1EC 00359E4C 7D 89 03 A6 */ mtctr r12
+/* 8035E1F0 00359E50 4E 80 04 21 */ bctrl
+/* 8035E1F4 00359E54 48 00 00 7C */ b lbl_8035E270
+/* 8035E1F8 00359E58 80 06 08 28 */ lwz r0, 0x828(r6)
+/* 8035E1FC 00359E5C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E200 00359E60 41 82 00 08 */ beq lbl_8035E208
+/* 8035E204 00359E64 48 00 1E 41 */ bl SBServerListDisconnect
+lbl_8035E208:
+/* 8035E208 00359E68 80 7D 00 04 */ lwz r3, 4(r29)
+/* 8035E20C 00359E6C 4B FD 7C DD */ bl ArrayLength
+/* 8035E210 00359E70 2C 03 00 00 */ cmpwi r3, 0
+/* 8035E214 00359E74 41 82 00 10 */ beq lbl_8035E224
+/* 8035E218 00359E78 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 8035E21C 00359E7C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E220 00359E80 40 82 00 50 */ bne lbl_8035E270
+lbl_8035E224:
+/* 8035E224 00359E84 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E228 00359E88 7F E3 FB 78 */ mr r3, r31
+/* 8035E22C 00359E8C 80 DF 08 3C */ lwz r6, 0x83c(r31)
+/* 8035E230 00359E90 38 80 00 04 */ li r4, 4
+/* 8035E234 00359E94 38 A0 00 00 */ li r5, 0
+/* 8035E238 00359E98 7D 89 03 A6 */ mtctr r12
+/* 8035E23C 00359E9C 4E 80 04 21 */ bctrl
+/* 8035E240 00359EA0 48 00 00 30 */ b lbl_8035E270
+/* 8035E244 00359EA4 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E248 00359EA8 7F E3 FB 78 */ mr r3, r31
+/* 8035E24C 00359EAC 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E250 00359EB0 38 80 00 05 */ li r4, 5
+/* 8035E254 00359EB4 38 A0 00 00 */ li r5, 0
+/* 8035E258 00359EB8 7D 89 03 A6 */ mtctr r12
+/* 8035E25C 00359EBC 4E 80 04 21 */ bctrl
+/* 8035E260 00359EC0 48 00 00 10 */ b lbl_8035E270
+/* 8035E264 00359EC4 80 86 06 F0 */ lwz r4, 0x6f0(r6)
+/* 8035E268 00359EC8 7F E3 FB 78 */ mr r3, r31
+/* 8035E26C 00359ECC 4B FF EA 51 */ bl SBQueryEngineSetPublicIP
+lbl_8035E270:
+/* 8035E270 00359ED0 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035E274 00359ED4 41 82 00 2C */ beq lbl_8035E2A0
+/* 8035E278 00359ED8 80 7E 00 00 */ lwz r3, 0(r30)
+/* 8035E27C 00359EDC 80 1F 08 30 */ lwz r0, 0x830(r31)
+/* 8035E280 00359EE0 7C 03 00 40 */ cmplw r3, r0
+/* 8035E284 00359EE4 40 82 00 1C */ bne lbl_8035E2A0
+/* 8035E288 00359EE8 A0 7E 00 04 */ lhz r3, 4(r30)
+/* 8035E28C 00359EEC A0 1F 08 34 */ lhz r0, 0x834(r31)
+/* 8035E290 00359EF0 7C 03 00 40 */ cmplw r3, r0
+/* 8035E294 00359EF4 40 82 00 0C */ bne lbl_8035E2A0
+/* 8035E298 00359EF8 38 00 00 00 */ li r0, 0
+/* 8035E29C 00359EFC 90 1F 08 30 */ stw r0, 0x830(r31)
+lbl_8035E2A0:
+/* 8035E2A0 00359F00 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035E2A4 00359F04 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035E2A8 00359F08 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035E2AC 00359F0C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035E2B0 00359F10 7C 08 03 A6 */ mtlr r0
+/* 8035E2B4 00359F14 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035E2B8 00359F18 4E 80 00 20 */ blr
+
+.global EngineCallback
+EngineCallback:
+/* 8035E2BC 00359F1C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035E2C0 00359F20 7C 08 02 A6 */ mflr r0
+/* 8035E2C4 00359F24 2C 04 00 02 */ cmpwi r4, 2
+/* 8035E2C8 00359F28 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035E2CC 00359F2C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035E2D0 00359F30 7C DF 33 78 */ mr r31, r6
+/* 8035E2D4 00359F34 93 C1 00 08 */ stw r30, 8(r1)
+/* 8035E2D8 00359F38 7C BE 2B 78 */ mr r30, r5
+/* 8035E2DC 00359F3C 41 82 00 5C */ beq lbl_8035E338
+/* 8035E2E0 00359F40 40 80 00 14 */ bge lbl_8035E2F4
+/* 8035E2E4 00359F44 2C 04 00 00 */ cmpwi r4, 0
+/* 8035E2E8 00359F48 41 82 00 34 */ beq lbl_8035E31C
+/* 8035E2EC 00359F4C 40 80 00 14 */ bge lbl_8035E300
+/* 8035E2F0 00359F50 48 00 00 80 */ b lbl_8035E370
+lbl_8035E2F4:
+/* 8035E2F4 00359F54 2C 04 00 04 */ cmpwi r4, 4
+/* 8035E2F8 00359F58 40 80 00 78 */ bge lbl_8035E370
+/* 8035E2FC 00359F5C 48 00 00 58 */ b lbl_8035E354
+lbl_8035E300:
+/* 8035E300 00359F60 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E304 00359F64 7F E3 FB 78 */ mr r3, r31
+/* 8035E308 00359F68 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E30C 00359F6C 38 80 00 02 */ li r4, 2
+/* 8035E310 00359F70 7D 89 03 A6 */ mtctr r12
+/* 8035E314 00359F74 4E 80 04 21 */ bctrl
+/* 8035E318 00359F78 48 00 00 58 */ b lbl_8035E370
+lbl_8035E31C:
+/* 8035E31C 00359F7C 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E320 00359F80 7F E3 FB 78 */ mr r3, r31
+/* 8035E324 00359F84 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E328 00359F88 38 80 00 01 */ li r4, 1
+/* 8035E32C 00359F8C 7D 89 03 A6 */ mtctr r12
+/* 8035E330 00359F90 4E 80 04 21 */ bctrl
+/* 8035E334 00359F94 48 00 00 3C */ b lbl_8035E370
+lbl_8035E338:
+/* 8035E338 00359F98 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E33C 00359F9C 7F E3 FB 78 */ mr r3, r31
+/* 8035E340 00359FA0 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E344 00359FA4 38 80 00 04 */ li r4, 4
+/* 8035E348 00359FA8 7D 89 03 A6 */ mtctr r12
+/* 8035E34C 00359FAC 4E 80 04 21 */ bctrl
+/* 8035E350 00359FB0 48 00 00 20 */ b lbl_8035E370
+lbl_8035E354:
+/* 8035E354 00359FB4 81 9F 08 38 */ lwz r12, 0x838(r31)
+/* 8035E358 00359FB8 7F E3 FB 78 */ mr r3, r31
+/* 8035E35C 00359FBC 80 C6 08 3C */ lwz r6, 0x83c(r6)
+/* 8035E360 00359FC0 38 80 00 06 */ li r4, 6
+/* 8035E364 00359FC4 7D 89 03 A6 */ mtctr r12
+/* 8035E368 00359FC8 4E 80 04 21 */ bctrl
+/* 8035E36C 00359FCC 48 00 00 34 */ b lbl_8035E3A0
+lbl_8035E370:
+/* 8035E370 00359FD0 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035E374 00359FD4 41 82 00 2C */ beq lbl_8035E3A0
+/* 8035E378 00359FD8 80 7E 00 00 */ lwz r3, 0(r30)
+/* 8035E37C 00359FDC 80 1F 08 30 */ lwz r0, 0x830(r31)
+/* 8035E380 00359FE0 7C 03 00 40 */ cmplw r3, r0
+/* 8035E384 00359FE4 40 82 00 1C */ bne lbl_8035E3A0
+/* 8035E388 00359FE8 A0 7E 00 04 */ lhz r3, 4(r30)
+/* 8035E38C 00359FEC A0 1F 08 34 */ lhz r0, 0x834(r31)
+/* 8035E390 00359FF0 7C 03 00 40 */ cmplw r3, r0
+/* 8035E394 00359FF4 40 82 00 0C */ bne lbl_8035E3A0
+/* 8035E398 00359FF8 38 00 00 00 */ li r0, 0
+/* 8035E39C 00359FFC 90 1F 08 30 */ stw r0, 0x830(r31)
+lbl_8035E3A0:
+/* 8035E3A0 0035A000 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035E3A4 0035A004 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035E3A8 0035A008 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8035E3AC 0035A00C 7C 08 03 A6 */ mtlr r0
+/* 8035E3B0 0035A010 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035E3B4 0035A014 4E 80 00 20 */ blr
+
+.global ServerBrowserNewA
+ServerBrowserNewA:
+/* 8035E3B8 0035A018 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035E3BC 0035A01C 7C 08 02 A6 */ mflr r0
+/* 8035E3C0 0035A020 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035E3C4 0035A024 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035E3C8 0035A028 4B E6 8D 4D */ bl _savegpr_22
+/* 8035E3CC 0035A02C 2C 09 00 00 */ cmpwi r9, 0
+/* 8035E3D0 0035A030 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 8035E3D4 0035A034 7C 76 1B 78 */ mr r22, r3
+/* 8035E3D8 0035A038 7C 97 23 78 */ mr r23, r4
+/* 8035E3DC 0035A03C 7C B8 2B 78 */ mr r24, r5
+/* 8035E3E0 0035A040 7C D9 33 78 */ mr r25, r6
+/* 8035E3E4 0035A044 7C FA 3B 78 */ mr r26, r7
+/* 8035E3E8 0035A048 7D 1B 43 78 */ mr r27, r8
+/* 8035E3EC 0035A04C 7D 3C 4B 78 */ mr r28, r9
+/* 8035E3F0 0035A050 7D 5D 53 78 */ mr r29, r10
+/* 8035E3F4 0035A054 40 82 00 18 */ bne lbl_8035E40C
+/* 8035E3F8 0035A058 80 0D B0 A8 */ lwz r0, lbl_80640368-_SDA_BASE_(r13)
+/* 8035E3FC 0035A05C 2C 00 00 01 */ cmpwi r0, 1
+/* 8035E400 0035A060 41 82 00 0C */ beq lbl_8035E40C
+/* 8035E404 0035A064 38 60 00 00 */ li r3, 0
+/* 8035E408 0035A068 48 00 00 7C */ b lbl_8035E484
+lbl_8035E40C:
+/* 8035E40C 0035A06C 38 60 08 40 */ li r3, 0x840
+/* 8035E410 0035A070 4B FD AF 05 */ bl gsimalloc
+/* 8035E414 0035A074 2C 03 00 00 */ cmpwi r3, 0
+/* 8035E418 0035A078 7C 7F 1B 78 */ mr r31, r3
+/* 8035E41C 0035A07C 40 82 00 0C */ bne lbl_8035E428
+/* 8035E420 0035A080 38 60 00 00 */ li r3, 0
+/* 8035E424 0035A084 48 00 00 60 */ b lbl_8035E484
+lbl_8035E428:
+/* 8035E428 0035A088 93 A3 08 38 */ stw r29, 0x838(r3)
+/* 8035E42C 0035A08C 3D 20 80 36 */ lis r9, ListCallback@ha
+/* 8035E430 0035A090 38 00 00 00 */ li r0, 0
+/* 8035E434 0035A094 7E C4 B3 78 */ mr r4, r22
+/* 8035E438 0035A098 93 C3 08 3C */ stw r30, 0x83c(r3)
+/* 8035E43C 0035A09C 7E E5 BB 78 */ mr r5, r23
+/* 8035E440 0035A0A0 7F 06 C3 78 */ mr r6, r24
+/* 8035E444 0035A0A4 7F 27 CB 78 */ mr r7, r25
+/* 8035E448 0035A0A8 90 03 08 2C */ stw r0, 0x82c(r3)
+/* 8035E44C 0035A0AC 7F 88 E3 78 */ mr r8, r28
+/* 8035E450 0035A0B0 7F EA FB 78 */ mr r10, r31
+/* 8035E454 0035A0B4 39 29 E0 84 */ addi r9, r9, ListCallback@l
+/* 8035E458 0035A0B8 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035E45C 0035A0BC 48 00 0D F1 */ bl SBServerListInit
+/* 8035E460 0035A0C0 3C E0 80 36 */ lis r7, EngineCallback@ha
+/* 8035E464 0035A0C4 7F E3 FB 78 */ mr r3, r31
+/* 8035E468 0035A0C8 7F 44 D3 78 */ mr r4, r26
+/* 8035E46C 0035A0CC 7F 65 DB 78 */ mr r5, r27
+/* 8035E470 0035A0D0 7F 86 E3 78 */ mr r6, r28
+/* 8035E474 0035A0D4 7F E8 FB 78 */ mr r8, r31
+/* 8035E478 0035A0D8 38 E7 E2 BC */ addi r7, r7, EngineCallback@l
+/* 8035E47C 0035A0DC 4B FF E7 A1 */ bl SBQueryEngineInit
+/* 8035E480 0035A0E0 7F E3 FB 78 */ mr r3, r31
+lbl_8035E484:
+/* 8035E484 0035A0E4 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035E488 0035A0E8 4B E6 8C D9 */ bl _restgpr_22
+/* 8035E48C 0035A0EC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035E490 0035A0F0 7C 08 03 A6 */ mtlr r0
+/* 8035E494 0035A0F4 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035E498 0035A0F8 4E 80 00 20 */ blr
+
+.global ServerBrowserFree
+ServerBrowserFree:
+/* 8035E49C 0035A0FC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035E4A0 0035A100 7C 08 02 A6 */ mflr r0
+/* 8035E4A4 0035A104 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035E4A8 0035A108 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035E4AC 0035A10C 7C 7F 1B 78 */ mr r31, r3
+/* 8035E4B0 0035A110 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035E4B4 0035A114 48 00 1C FD */ bl SBServerListCleanup
+/* 8035E4B8 0035A118 7F E3 FB 78 */ mr r3, r31
+/* 8035E4BC 0035A11C 4B FF E8 29 */ bl SBEngineCleanup
+/* 8035E4C0 0035A120 7F E3 FB 78 */ mr r3, r31
+/* 8035E4C4 0035A124 4B FD AE 75 */ bl gsifree
+/* 8035E4C8 0035A128 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035E4CC 0035A12C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035E4D0 0035A130 7C 08 03 A6 */ mtlr r0
+/* 8035E4D4 0035A134 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035E4D8 0035A138 4E 80 00 20 */ blr
+
+.global ServerBrowserBeginUpdate2
+ServerBrowserBeginUpdate2:
+/* 8035E4DC 0035A13C 94 21 FE C0 */ stwu r1, -0x140(r1)
+/* 8035E4E0 0035A140 7C 08 02 A6 */ mflr r0
+/* 8035E4E4 0035A144 90 01 01 44 */ stw r0, 0x144(r1)
+/* 8035E4E8 0035A148 39 61 01 40 */ addi r11, r1, 0x140
+/* 8035E4EC 0035A14C 4B E6 8C 25 */ bl _savegpr_21
+/* 8035E4F0 0035A150 38 00 00 20 */ li r0, 0x20
+/* 8035E4F4 0035A154 7C 9B 23 78 */ mr r27, r4
+/* 8035E4F8 0035A158 7C FC 3B 78 */ mr r28, r7
+/* 8035E4FC 0035A15C 7C 7A 1B 78 */ mr r26, r3
+/* 8035E500 0035A160 7D 1D 43 78 */ mr r29, r8
+/* 8035E504 0035A164 7D 3E 4B 78 */ mr r30, r9
+/* 8035E508 0035A168 7D 5F 53 78 */ mr r31, r10
+/* 8035E50C 0035A16C 38 E1 00 04 */ addi r7, r1, 4
+/* 8035E510 0035A170 38 80 00 00 */ li r4, 0
+/* 8035E514 0035A174 7C 09 03 A6 */ mtctr r0
+lbl_8035E518:
+/* 8035E518 0035A178 90 87 00 04 */ stw r4, 4(r7)
+/* 8035E51C 0035A17C 94 87 00 08 */ stwu r4, 8(r7)
+/* 8035E520 0035A180 42 00 FF F8 */ bdnz lbl_8035E518
+/* 8035E524 0035A184 3A C0 00 00 */ li r22, 0
+/* 8035E528 0035A188 3F 00 80 45 */ lis r24, lbl_8044BB78@ha
+/* 8035E52C 0035A18C 90 A3 08 28 */ stw r5, 0x828(r3)
+/* 8035E530 0035A190 7C D9 33 78 */ mr r25, r6
+/* 8035E534 0035A194 3B 18 BB 78 */ addi r24, r24, lbl_8044BB78@l
+/* 8035E538 0035A198 3A A0 00 00 */ li r21, 0
+/* 8035E53C 0035A19C 92 C3 00 40 */ stw r22, 0x40(r3)
+/* 8035E540 0035A1A0 48 00 00 58 */ b lbl_8035E598
+lbl_8035E544:
+/* 8035E544 0035A1A4 88 19 00 00 */ lbz r0, 0(r25)
+/* 8035E548 0035A1A8 54 00 10 3A */ slwi r0, r0, 2
+/* 8035E54C 0035A1AC 7E F8 00 2E */ lwzx r23, r24, r0
+/* 8035E550 0035A1B0 7E E3 BB 78 */ mr r3, r23
+/* 8035E554 0035A1B4 4B E6 86 11 */ bl strlen
+/* 8035E558 0035A1B8 7C 76 1A 14 */ add r3, r22, r3
+/* 8035E55C 0035A1BC 38 03 00 01 */ addi r0, r3, 1
+/* 8035E560 0035A1C0 2C 00 01 00 */ cmpwi r0, 0x100
+/* 8035E564 0035A1C4 40 80 00 3C */ bge lbl_8035E5A0
+/* 8035E568 0035A1C8 38 61 00 08 */ addi r3, r1, 8
+/* 8035E56C 0035A1CC 7E E5 BB 78 */ mr r5, r23
+/* 8035E570 0035A1D0 7C 63 B2 14 */ add r3, r3, r22
+/* 8035E574 0035A1D4 38 8D 95 00 */ addi r4, r13, lbl_8063E7C0-_SDA_BASE_
+/* 8035E578 0035A1D8 4C C6 31 82 */ crclr 6
+/* 8035E57C 0035A1DC 4B E6 E5 81 */ bl sprintf
+/* 8035E580 0035A1E0 88 99 00 00 */ lbz r4, 0(r25)
+/* 8035E584 0035A1E4 7E D6 1A 14 */ add r22, r22, r3
+/* 8035E588 0035A1E8 7F 43 D3 78 */ mr r3, r26
+/* 8035E58C 0035A1EC 4B FF ED D9 */ bl SBQueryEngineAddQueryKey
+/* 8035E590 0035A1F0 3A B5 00 01 */ addi r21, r21, 1
+/* 8035E594 0035A1F4 3B 39 00 01 */ addi r25, r25, 1
+lbl_8035E598:
+/* 8035E598 0035A1F8 7C 15 E0 00 */ cmpw r21, r28
+/* 8035E59C 0035A1FC 41 80 FF A8 */ blt lbl_8035E544
+lbl_8035E5A0:
+/* 8035E5A0 0035A200 7F A5 EB 78 */ mr r5, r29
+/* 8035E5A4 0035A204 7F C6 F3 78 */ mr r6, r30
+/* 8035E5A8 0035A208 7F E7 FB 78 */ mr r7, r31
+/* 8035E5AC 0035A20C 38 7A 00 4C */ addi r3, r26, 0x4c
+/* 8035E5B0 0035A210 38 81 00 08 */ addi r4, r1, 8
+/* 8035E5B4 0035A214 48 00 12 CD */ bl SBServerListConnectAndQuery
+/* 8035E5B8 0035A218 2C 03 00 00 */ cmpwi r3, 0
+/* 8035E5BC 0035A21C 41 82 00 08 */ beq lbl_8035E5C4
+/* 8035E5C0 0035A220 48 00 00 48 */ b lbl_8035E608
+lbl_8035E5C4:
+/* 8035E5C4 0035A224 2C 1B 00 00 */ cmpwi r27, 0
+/* 8035E5C8 0035A228 40 82 00 40 */ bne lbl_8035E608
+/* 8035E5CC 0035A22C 48 00 00 1C */ b lbl_8035E5E8
+lbl_8035E5D0:
+/* 8035E5D0 0035A230 38 60 00 0A */ li r3, 0xa
+/* 8035E5D4 0035A234 4B FD AA 51 */ bl msleep
+/* 8035E5D8 0035A238 7F 43 D3 78 */ mr r3, r26
+/* 8035E5DC 0035A23C 4B FF EC 0D */ bl SBQueryEngineThink
+/* 8035E5E0 0035A240 38 7A 00 4C */ addi r3, r26, 0x4c
+/* 8035E5E4 0035A244 48 00 3F 35 */ bl SBListThink
+lbl_8035E5E8:
+/* 8035E5E8 0035A248 80 1A 00 4C */ lwz r0, 0x4c(r26)
+/* 8035E5EC 0035A24C 2C 00 00 03 */ cmpwi r0, 3
+/* 8035E5F0 0035A250 41 82 FF E0 */ beq lbl_8035E5D0
+/* 8035E5F4 0035A254 80 1A 00 10 */ lwz r0, 0x10(r26)
+/* 8035E5F8 0035A258 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E5FC 0035A25C 40 81 00 0C */ ble lbl_8035E608
+/* 8035E600 0035A260 2C 03 00 00 */ cmpwi r3, 0
+/* 8035E604 0035A264 41 82 FF CC */ beq lbl_8035E5D0
+lbl_8035E608:
+/* 8035E608 0035A268 39 61 01 40 */ addi r11, r1, 0x140
+/* 8035E60C 0035A26C 4B E6 8B 51 */ bl _restgpr_21
+/* 8035E610 0035A270 80 01 01 44 */ lwz r0, 0x144(r1)
+/* 8035E614 0035A274 7C 08 03 A6 */ mtlr r0
+/* 8035E618 0035A278 38 21 01 40 */ addi r1, r1, 0x140
+/* 8035E61C 0035A27C 4E 80 00 20 */ blr
+
+.global ServerBrowserLimitUpdateA
+ServerBrowserLimitUpdateA:
+/* 8035E620 0035A280 7D 2A 4B 78 */ mr r10, r9
+/* 8035E624 0035A284 39 20 00 80 */ li r9, 0x80
+/* 8035E628 0035A288 4B FF FE B4 */ b ServerBrowserBeginUpdate2
+
+.global func_8035E62C
+func_8035E62C:
+/* 8035E62C 0035A28C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035E630 0035A290 7C 08 02 A6 */ mflr r0
+/* 8035E634 0035A294 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035E638 0035A298 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035E63C 0035A29C 4B E6 8A ED */ bl _savegpr_27
+/* 8035E640 0035A2A0 7C 7B 1B 78 */ mr r27, r3
+/* 8035E644 0035A2A4 7C 9C 23 78 */ mr r28, r4
+/* 8035E648 0035A2A8 7C BD 2B 78 */ mr r29, r5
+/* 8035E64C 0035A2AC 7C DE 33 78 */ mr r30, r6
+/* 8035E650 0035A2B0 3B E0 00 00 */ li r31, 0
+/* 8035E654 0035A2B4 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035E658 0035A2B8 48 00 19 ED */ bl SBServerListDisconnect
+/* 8035E65C 0035A2BC 7F 63 DB 78 */ mr r3, r27
+/* 8035E660 0035A2C0 4B FF E6 65 */ bl SBEngineHaltUpdates
+/* 8035E664 0035A2C4 80 DB 00 00 */ lwz r6, 0(r27)
+/* 8035E668 0035A2C8 7F A4 EB 78 */ mr r4, r29
+/* 8035E66C 0035A2CC 7F C5 F3 78 */ mr r5, r30
+/* 8035E670 0035A2D0 38 7B 00 4C */ addi r3, r27, 0x4c
+/* 8035E674 0035A2D4 48 00 17 0D */ bl func_8035FD80
+/* 8035E678 0035A2D8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8035E67C 0035A2DC 40 82 00 44 */ bne lbl_8035E6C0
+/* 8035E680 0035A2E0 48 00 00 20 */ b lbl_8035E6A0
+lbl_8035E684:
+/* 8035E684 0035A2E4 38 60 00 0A */ li r3, 0xa
+/* 8035E688 0035A2E8 4B FD A9 9D */ bl msleep
+/* 8035E68C 0035A2EC 7F 63 DB 78 */ mr r3, r27
+/* 8035E690 0035A2F0 4B FF EB 59 */ bl SBQueryEngineThink
+/* 8035E694 0035A2F4 38 7B 00 4C */ addi r3, r27, 0x4c
+/* 8035E698 0035A2F8 48 00 3E 81 */ bl SBListThink
+/* 8035E69C 0035A2FC 7C 7F 1B 78 */ mr r31, r3
+lbl_8035E6A0:
+/* 8035E6A0 0035A300 80 1B 00 4C */ lwz r0, 0x4c(r27)
+/* 8035E6A4 0035A304 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E6A8 0035A308 41 82 FF DC */ beq lbl_8035E684
+/* 8035E6AC 0035A30C 80 1B 00 10 */ lwz r0, 0x10(r27)
+/* 8035E6B0 0035A310 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E6B4 0035A314 40 81 00 0C */ ble lbl_8035E6C0
+/* 8035E6B8 0035A318 2C 1F 00 00 */ cmpwi r31, 0
+/* 8035E6BC 0035A31C 41 82 FF C8 */ beq lbl_8035E684
+lbl_8035E6C0:
+/* 8035E6C0 0035A320 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035E6C4 0035A324 7F E3 FB 78 */ mr r3, r31
+/* 8035E6C8 0035A328 4B E6 8A AD */ bl _restgpr_27
+/* 8035E6CC 0035A32C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035E6D0 0035A330 7C 08 03 A6 */ mtlr r0
+/* 8035E6D4 0035A334 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035E6D8 0035A338 4E 80 00 20 */ blr
+
+.global ServerBrowserSendMessageToServerA
+ServerBrowserSendMessageToServerA:
+/* 8035E6DC 0035A33C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035E6E0 0035A340 7C 08 02 A6 */ mflr r0
+/* 8035E6E4 0035A344 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035E6E8 0035A348 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035E6EC 0035A34C 4B E6 8A 3D */ bl _savegpr_27
+/* 8035E6F0 0035A350 7C 7B 1B 78 */ mr r27, r3
+/* 8035E6F4 0035A354 7C 9C 23 78 */ mr r28, r4
+/* 8035E6F8 0035A358 7C A3 2B 78 */ mr r3, r5
+/* 8035E6FC 0035A35C 7C DD 33 78 */ mr r29, r6
+/* 8035E700 0035A360 7C FE 3B 78 */ mr r30, r7
+/* 8035E704 0035A364 4B F9 86 79 */ bl SOHtoNs
+/* 8035E708 0035A368 7C 7F 1B 78 */ mr r31, r3
+/* 8035E70C 0035A36C 7F 83 E3 78 */ mr r3, r28
+/* 8035E710 0035A370 4B FD 98 61 */ bl inet_addr
+/* 8035E714 0035A374 7C 64 1B 78 */ mr r4, r3
+/* 8035E718 0035A378 7F A6 EB 78 */ mr r6, r29
+/* 8035E71C 0035A37C 7F C7 F3 78 */ mr r7, r30
+/* 8035E720 0035A380 38 7B 00 4C */ addi r3, r27, 0x4c
+/* 8035E724 0035A384 57 E5 04 3E */ clrlwi r5, r31, 0x10
+/* 8035E728 0035A388 48 00 3A BD */ bl SBSendMessageToServer
+/* 8035E72C 0035A38C 39 61 00 20 */ addi r11, r1, 0x20
+/* 8035E730 0035A390 4B E6 8A 45 */ bl _restgpr_27
+/* 8035E734 0035A394 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035E738 0035A398 7C 08 03 A6 */ mtlr r0
+/* 8035E73C 0035A39C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035E740 0035A3A0 4E 80 00 20 */ blr
+
+.global ServerBrowserSendNatNegotiateCookieToServerA
+ServerBrowserSendNatNegotiateCookieToServerA:
+/* 8035E744 0035A3A4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035E748 0035A3A8 7C 08 02 A6 */ mflr r0
+/* 8035E74C 0035A3AC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035E750 0035A3B0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035E754 0035A3B4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035E758 0035A3B8 7C DE 33 78 */ mr r30, r6
+/* 8035E75C 0035A3BC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035E760 0035A3C0 7C 9D 23 78 */ mr r29, r4
+/* 8035E764 0035A3C4 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035E768 0035A3C8 7C 7C 1B 78 */ mr r28, r3
+/* 8035E76C 0035A3CC 7C A3 2B 78 */ mr r3, r5
+/* 8035E770 0035A3D0 4B F9 86 0D */ bl SOHtoNs
+/* 8035E774 0035A3D4 7C 7F 1B 78 */ mr r31, r3
+/* 8035E778 0035A3D8 7F A3 EB 78 */ mr r3, r29
+/* 8035E77C 0035A3DC 4B FD 97 F5 */ bl inet_addr
+/* 8035E780 0035A3E0 7C 64 1B 78 */ mr r4, r3
+/* 8035E784 0035A3E4 7F C6 F3 78 */ mr r6, r30
+/* 8035E788 0035A3E8 38 7C 00 4C */ addi r3, r28, 0x4c
+/* 8035E78C 0035A3EC 57 E5 04 3E */ clrlwi r5, r31, 0x10
+/* 8035E790 0035A3F0 48 00 3B 59 */ bl SBSendNatNegotiateCookieToServer
+/* 8035E794 0035A3F4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035E798 0035A3F8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035E79C 0035A3FC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035E7A0 0035A400 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035E7A4 0035A404 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035E7A8 0035A408 7C 08 03 A6 */ mtlr r0
+/* 8035E7AC 0035A40C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035E7B0 0035A410 4E 80 00 20 */ blr
+
+.global ServerBrowserRemoveServer
+ServerBrowserRemoveServer:
+/* 8035E7B4 0035A414 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035E7B8 0035A418 7C 08 02 A6 */ mflr r0
+/* 8035E7BC 0035A41C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035E7C0 0035A420 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035E7C4 0035A424 7C 7F 1B 78 */ mr r31, r3
+/* 8035E7C8 0035A428 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035E7CC 0035A42C 48 00 07 35 */ bl SBServerListFindServer
+/* 8035E7D0 0035A430 2C 03 FF FF */ cmpwi r3, -1
+/* 8035E7D4 0035A434 41 82 00 10 */ beq lbl_8035E7E4
+/* 8035E7D8 0035A438 7C 64 1B 78 */ mr r4, r3
+/* 8035E7DC 0035A43C 38 7F 00 4C */ addi r3, r31, 0x4c
+/* 8035E7E0 0035A440 48 00 07 A9 */ bl SBServerListRemoveAt
+lbl_8035E7E4:
+/* 8035E7E4 0035A444 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035E7E8 0035A448 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035E7EC 0035A44C 7C 08 03 A6 */ mtlr r0
+/* 8035E7F0 0035A450 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035E7F4 0035A454 4E 80 00 20 */ blr
+
+.global ServerBrowserThink
+ServerBrowserThink:
+/* 8035E7F8 0035A458 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035E7FC 0035A45C 7C 08 02 A6 */ mflr r0
+/* 8035E800 0035A460 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035E804 0035A464 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035E808 0035A468 7C 7F 1B 78 */ mr r31, r3
+/* 8035E80C 0035A46C 4B FF E9 DD */ bl SBQueryEngineThink
+/* 8035E810 0035A470 38 7F 00 4C */ addi r3, r31, 0x4c
+/* 8035E814 0035A474 48 00 3D 05 */ bl SBListThink
+/* 8035E818 0035A478 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035E81C 0035A47C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035E820 0035A480 7C 08 03 A6 */ mtlr r0
+/* 8035E824 0035A484 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035E828 0035A488 4E 80 00 20 */ blr
+
+.global ServerBrowserClear
+ServerBrowserClear:
+/* 8035E82C 0035A48C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035E830 0035A490 7C 08 02 A6 */ mflr r0
+/* 8035E834 0035A494 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035E838 0035A498 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8035E83C 0035A49C 7C 7F 1B 78 */ mr r31, r3
+/* 8035E840 0035A4A0 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035E844 0035A4A4 48 00 18 01 */ bl SBServerListDisconnect
+/* 8035E848 0035A4A8 7F E3 FB 78 */ mr r3, r31
+/* 8035E84C 0035A4AC 4B FF E4 79 */ bl SBEngineHaltUpdates
+/* 8035E850 0035A4B0 38 7F 00 4C */ addi r3, r31, 0x4c
+/* 8035E854 0035A4B4 48 00 07 FD */ bl SBServerListClear
+/* 8035E858 0035A4B8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035E85C 0035A4BC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8035E860 0035A4C0 7C 08 03 A6 */ mtlr r0
+/* 8035E864 0035A4C4 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035E868 0035A4C8 4E 80 00 20 */ blr
+
+.global ServerBrowserState
+ServerBrowserState:
+/* 8035E86C 0035A4CC 80 03 00 10 */ lwz r0, 0x10(r3)
+/* 8035E870 0035A4D0 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E874 0035A4D4 40 81 00 0C */ ble lbl_8035E880
+/* 8035E878 0035A4D8 38 60 00 02 */ li r3, 2
+/* 8035E87C 0035A4DC 4E 80 00 20 */ blr
+lbl_8035E880:
+/* 8035E880 0035A4E0 80 03 00 4C */ lwz r0, 0x4c(r3)
+/* 8035E884 0035A4E4 2C 00 00 03 */ cmpwi r0, 3
+/* 8035E888 0035A4E8 41 82 00 0C */ beq lbl_8035E894
+/* 8035E88C 0035A4EC 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E890 0035A4F0 40 82 00 0C */ bne lbl_8035E89C
+lbl_8035E894:
+/* 8035E894 0035A4F4 38 60 00 01 */ li r3, 1
+/* 8035E898 0035A4F8 4E 80 00 20 */ blr
+lbl_8035E89C:
+/* 8035E89C 0035A4FC 2C 00 00 01 */ cmpwi r0, 1
+/* 8035E8A0 0035A500 38 60 00 03 */ li r3, 3
+/* 8035E8A4 0035A504 4C 82 00 20 */ bnelr
+/* 8035E8A8 0035A508 38 60 00 00 */ li r3, 0
+/* 8035E8AC 0035A50C 4E 80 00 20 */ blr
+
+.global ServerBrowserGetServer
+ServerBrowserGetServer:
+/* 8035E8B0 0035A510 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035E8B4 0035A514 48 00 07 74 */ b SBServerListNth
+
+.global ServerBrowserCount
+ServerBrowserCount:
+/* 8035E8B8 0035A518 38 63 00 4C */ addi r3, r3, 0x4c
+/* 8035E8BC 0035A51C 48 00 07 64 */ b SBServerListCount
+
+.global ServerBrowserSortA
+ServerBrowserSortA:
+/* 8035E8C0 0035A520 94 21 FD E0 */ stwu r1, -0x220(r1)
+/* 8035E8C4 0035A524 7C 08 02 A6 */ mflr r0
+/* 8035E8C8 0035A528 90 01 02 24 */ stw r0, 0x224(r1)
+/* 8035E8CC 0035A52C 93 E1 02 1C */ stw r31, 0x21c(r1)
+/* 8035E8D0 0035A530 7C 9F 23 78 */ mr r31, r4
+/* 8035E8D4 0035A534 7C A4 2B 78 */ mr r4, r5
+/* 8035E8D8 0035A538 93 C1 02 18 */ stw r30, 0x218(r1)
+/* 8035E8DC 0035A53C 7C 7E 1B 78 */ mr r30, r3
+/* 8035E8E0 0035A540 38 61 01 0C */ addi r3, r1, 0x10c
+/* 8035E8E4 0035A544 90 C1 02 0C */ stw r6, 0x20c(r1)
+/* 8035E8E8 0035A548 4B E6 F9 E9 */ bl strcpy
+/* 8035E8EC 0035A54C 38 00 00 20 */ li r0, 0x20
+/* 8035E8F0 0035A550 38 C1 00 04 */ addi r6, r1, 4
+/* 8035E8F4 0035A554 38 81 01 08 */ addi r4, r1, 0x108
+/* 8035E8F8 0035A558 7C 09 03 A6 */ mtctr r0
+lbl_8035E8FC:
+/* 8035E8FC 0035A55C 80 64 00 04 */ lwz r3, 4(r4)
+/* 8035E900 0035A560 84 04 00 08 */ lwzu r0, 8(r4)
+/* 8035E904 0035A564 90 66 00 04 */ stw r3, 4(r6)
+/* 8035E908 0035A568 94 06 00 08 */ stwu r0, 8(r6)
+/* 8035E90C 0035A56C 42 00 FF F0 */ bdnz lbl_8035E8FC
+/* 8035E910 0035A570 80 04 00 04 */ lwz r0, 4(r4)
+/* 8035E914 0035A574 7F E4 FB 78 */ mr r4, r31
+/* 8035E918 0035A578 38 7E 00 4C */ addi r3, r30, 0x4c
+/* 8035E91C 0035A57C 38 A1 00 08 */ addi r5, r1, 8
+/* 8035E920 0035A580 90 06 00 04 */ stw r0, 4(r6)
+/* 8035E924 0035A584 48 00 04 71 */ bl SBServerListSort
+/* 8035E928 0035A588 80 01 02 24 */ lwz r0, 0x224(r1)
+/* 8035E92C 0035A58C 83 E1 02 1C */ lwz r31, 0x21c(r1)
+/* 8035E930 0035A590 83 C1 02 18 */ lwz r30, 0x218(r1)
+/* 8035E934 0035A594 7C 08 03 A6 */ mtlr r0
+/* 8035E938 0035A598 38 21 02 20 */ addi r1, r1, 0x220
+/* 8035E93C 0035A59C 4E 80 00 20 */ blr
+
+.global ServerBrowserGetMyPublicIPAddr
+ServerBrowserGetMyPublicIPAddr:
+/* 8035E940 0035A5A0 80 63 06 F0 */ lwz r3, 0x6f0(r3)
+/* 8035E944 0035A5A4 4E 80 00 20 */ blr
diff --git a/asm/SDK/DWC/gamespy/sb_serverlist.s b/asm/SDK/DWC/gamespy/sb_serverlist.s new file mode 100644 index 0000000..fab8072 --- /dev/null +++ b/asm/SDK/DWC/gamespy/sb_serverlist.s @@ -0,0 +1,4387 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global prevKeyCompare
+prevKeyCompare:
+/* 8035E948 0035A5A8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035E94C 0035A5AC 7C 08 02 A6 */ mflr r0
+/* 8035E950 0035A5B0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035E954 0035A5B4 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8035E958 0035A5B8 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
+/* 8035E95C 0035A5BC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035E960 0035A5C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035E964 0035A5C4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035E968 0035A5C8 7C 9D 23 78 */ mr r29, r4
+/* 8035E96C 0035A5CC 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035E970 0035A5D0 7C 7C 1B 78 */ mr r28, r3
+/* 8035E974 0035A5D4 80 AD B1 94 */ lwz r5, lbl_80640454-_SDA_BASE_(r13)
+/* 8035E978 0035A5D8 80 05 06 9C */ lwz r0, 0x69c(r5)
+/* 8035E97C 0035A5DC 3B C5 05 9C */ addi r30, r5, 0x59c
+/* 8035E980 0035A5E0 2C 00 00 02 */ cmpwi r0, 2
+/* 8035E984 0035A5E4 41 82 00 B0 */ beq lbl_8035EA34
+/* 8035E988 0035A5E8 40 80 00 14 */ bge lbl_8035E99C
+/* 8035E98C 0035A5EC 2C 00 00 00 */ cmpwi r0, 0
+/* 8035E990 0035A5F0 41 82 00 18 */ beq lbl_8035E9A8
+/* 8035E994 0035A5F4 40 80 00 3C */ bge lbl_8035E9D0
+/* 8035E998 0035A5F8 48 00 00 FC */ b lbl_8035EA94
+lbl_8035E99C:
+/* 8035E99C 0035A5FC 2C 00 00 04 */ cmpwi r0, 4
+/* 8035E9A0 0035A600 40 80 00 F4 */ bge lbl_8035EA94
+/* 8035E9A4 0035A604 48 00 00 C0 */ b lbl_8035EA64
+lbl_8035E9A8:
+/* 8035E9A8 0035A608 7F C4 F3 78 */ mr r4, r30
+/* 8035E9AC 0035A60C 38 A0 00 00 */ li r5, 0
+/* 8035E9B0 0035A610 4B FF EC B1 */ bl SBServerGetIntValueA
+/* 8035E9B4 0035A614 7C 7F 1B 78 */ mr r31, r3
+/* 8035E9B8 0035A618 7F A3 EB 78 */ mr r3, r29
+/* 8035E9BC 0035A61C 7F C4 F3 78 */ mr r4, r30
+/* 8035E9C0 0035A620 38 A0 00 00 */ li r5, 0
+/* 8035E9C4 0035A624 4B FF EC 9D */ bl SBServerGetIntValueA
+/* 8035E9C8 0035A628 7C 63 F8 50 */ subf r3, r3, r31
+/* 8035E9CC 0035A62C 48 00 00 D0 */ b lbl_8035EA9C
+lbl_8035E9D0:
+/* 8035E9D0 0035A630 C8 22 A4 F0 */ lfd f1, lbl_80642AF0-_SDA2_BASE_(r2)
+/* 8035E9D4 0035A634 7F A3 EB 78 */ mr r3, r29
+/* 8035E9D8 0035A638 7F C4 F3 78 */ mr r4, r30
+/* 8035E9DC 0035A63C 4B FF ED A9 */ bl SBServerGetFloatValueA
+/* 8035E9E0 0035A640 FF E0 08 90 */ fmr f31, f1
+/* 8035E9E4 0035A644 C8 22 A4 F0 */ lfd f1, lbl_80642AF0-_SDA2_BASE_(r2)
+/* 8035E9E8 0035A648 7F 83 E3 78 */ mr r3, r28
+/* 8035E9EC 0035A64C 7F C4 F3 78 */ mr r4, r30
+/* 8035E9F0 0035A650 4B FF ED 95 */ bl SBServerGetFloatValueA
+/* 8035E9F4 0035A654 80 6D B1 94 */ lwz r3, lbl_80640454-_SDA_BASE_(r13)
+/* 8035E9F8 0035A658 FC 01 F8 28 */ fsub f0, f1, f31
+/* 8035E9FC 0035A65C 80 03 06 A0 */ lwz r0, 0x6a0(r3)
+/* 8035EA00 0035A660 2C 00 00 00 */ cmpwi r0, 0
+/* 8035EA04 0035A664 40 82 00 08 */ bne lbl_8035EA0C
+/* 8035EA08 0035A668 FC 00 00 50 */ fneg f0, f0
+lbl_8035EA0C:
+/* 8035EA0C 0035A66C FC 20 00 18 */ frsp f1, f0
+/* 8035EA10 0035A670 C0 02 A4 F8 */ lfs f0, lbl_80642AF8-_SDA2_BASE_(r2)
+/* 8035EA14 0035A674 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8035EA18 0035A678 40 81 00 0C */ ble lbl_8035EA24
+/* 8035EA1C 0035A67C 38 60 00 01 */ li r3, 1
+/* 8035EA20 0035A680 48 00 00 90 */ b lbl_8035EAB0
+lbl_8035EA24:
+/* 8035EA24 0035A684 7C 00 00 26 */ mfcr r0
+/* 8035EA28 0035A688 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035EA2C 0035A68C 7C 60 00 D0 */ neg r3, r0
+/* 8035EA30 0035A690 48 00 00 80 */ b lbl_8035EAB0
+lbl_8035EA34:
+/* 8035EA34 0035A694 7F A3 EB 78 */ mr r3, r29
+/* 8035EA38 0035A698 7F C4 F3 78 */ mr r4, r30
+/* 8035EA3C 0035A69C 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035EA40 0035A6A0 4B FF EB C5 */ bl SBServerGetStringValueA
+/* 8035EA44 0035A6A4 7C 7F 1B 78 */ mr r31, r3
+/* 8035EA48 0035A6A8 7F 83 E3 78 */ mr r3, r28
+/* 8035EA4C 0035A6AC 7F C4 F3 78 */ mr r4, r30
+/* 8035EA50 0035A6B0 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035EA54 0035A6B4 4B FF EB B1 */ bl SBServerGetStringValueA
+/* 8035EA58 0035A6B8 7F E4 FB 78 */ mr r4, r31
+/* 8035EA5C 0035A6BC 4B E6 F9 F1 */ bl strcmp
+/* 8035EA60 0035A6C0 48 00 00 3C */ b lbl_8035EA9C
+lbl_8035EA64:
+/* 8035EA64 0035A6C4 7F A3 EB 78 */ mr r3, r29
+/* 8035EA68 0035A6C8 7F C4 F3 78 */ mr r4, r30
+/* 8035EA6C 0035A6CC 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035EA70 0035A6D0 4B FF EB 95 */ bl SBServerGetStringValueA
+/* 8035EA74 0035A6D4 7C 7F 1B 78 */ mr r31, r3
+/* 8035EA78 0035A6D8 7F 83 E3 78 */ mr r3, r28
+/* 8035EA7C 0035A6DC 7F C4 F3 78 */ mr r4, r30
+/* 8035EA80 0035A6E0 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035EA84 0035A6E4 4B FF EB 81 */ bl SBServerGetStringValueA
+/* 8035EA88 0035A6E8 7F E4 FB 78 */ mr r4, r31
+/* 8035EA8C 0035A6EC 4B E7 20 C9 */ bl strcasecmp
+/* 8035EA90 0035A6F0 48 00 00 0C */ b lbl_8035EA9C
+lbl_8035EA94:
+/* 8035EA94 0035A6F4 38 60 00 00 */ li r3, 0
+/* 8035EA98 0035A6F8 48 00 00 18 */ b lbl_8035EAB0
+lbl_8035EA9C:
+/* 8035EA9C 0035A6FC 80 8D B1 94 */ lwz r4, lbl_80640454-_SDA_BASE_(r13)
+/* 8035EAA0 0035A700 80 04 06 A0 */ lwz r0, 0x6a0(r4)
+/* 8035EAA4 0035A704 2C 00 00 00 */ cmpwi r0, 0
+/* 8035EAA8 0035A708 40 82 00 08 */ bne lbl_8035EAB0
+/* 8035EAAC 0035A70C 7C 63 00 D0 */ neg r3, r3
+lbl_8035EAB0:
+/* 8035EAB0 0035A710 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
+/* 8035EAB4 0035A714 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035EAB8 0035A718 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8035EABC 0035A71C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035EAC0 0035A720 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035EAC4 0035A724 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035EAC8 0035A728 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035EACC 0035A72C 7C 08 03 A6 */ mtlr r0
+/* 8035EAD0 0035A730 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035EAD4 0035A734 4E 80 00 20 */ blr
+
+.global IntKeyCompare
+IntKeyCompare:
+/* 8035EAD8 0035A738 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035EADC 0035A73C 7C 08 02 A6 */ mflr r0
+/* 8035EAE0 0035A740 38 A0 00 00 */ li r5, 0
+/* 8035EAE4 0035A744 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035EAE8 0035A748 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035EAEC 0035A74C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035EAF0 0035A750 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8035EAF4 0035A754 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035EAF8 0035A758 83 A4 00 00 */ lwz r29, 0(r4)
+/* 8035EAFC 0035A75C 7F C3 F3 78 */ mr r3, r30
+/* 8035EB00 0035A760 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035EB04 0035A764 80 CD B1 94 */ lwz r6, lbl_80640454-_SDA_BASE_(r13)
+/* 8035EB08 0035A768 3B 86 04 98 */ addi r28, r6, 0x498
+/* 8035EB0C 0035A76C 7F 84 E3 78 */ mr r4, r28
+/* 8035EB10 0035A770 4B FF EB 51 */ bl SBServerGetIntValueA
+/* 8035EB14 0035A774 7C 7F 1B 78 */ mr r31, r3
+/* 8035EB18 0035A778 7F A3 EB 78 */ mr r3, r29
+/* 8035EB1C 0035A77C 7F 84 E3 78 */ mr r4, r28
+/* 8035EB20 0035A780 38 A0 00 00 */ li r5, 0
+/* 8035EB24 0035A784 4B FF EB 3D */ bl SBServerGetIntValueA
+/* 8035EB28 0035A788 7C 63 F8 51 */ subf. r3, r3, r31
+/* 8035EB2C 0035A78C 40 82 00 14 */ bne lbl_8035EB40
+/* 8035EB30 0035A790 7F C3 F3 78 */ mr r3, r30
+/* 8035EB34 0035A794 7F A4 EB 78 */ mr r4, r29
+/* 8035EB38 0035A798 4B FF FE 11 */ bl prevKeyCompare
+/* 8035EB3C 0035A79C 48 00 00 18 */ b lbl_8035EB54
+lbl_8035EB40:
+/* 8035EB40 0035A7A0 80 8D B1 94 */ lwz r4, lbl_80640454-_SDA_BASE_(r13)
+/* 8035EB44 0035A7A4 80 04 06 A0 */ lwz r0, 0x6a0(r4)
+/* 8035EB48 0035A7A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035EB4C 0035A7AC 40 82 00 08 */ bne lbl_8035EB54
+/* 8035EB50 0035A7B0 7C 63 00 D0 */ neg r3, r3
+lbl_8035EB54:
+/* 8035EB54 0035A7B4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035EB58 0035A7B8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035EB5C 0035A7BC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035EB60 0035A7C0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035EB64 0035A7C4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035EB68 0035A7C8 7C 08 03 A6 */ mtlr r0
+/* 8035EB6C 0035A7CC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035EB70 0035A7D0 4E 80 00 20 */ blr
+
+.global FloatKeyCompare
+FloatKeyCompare:
+/* 8035EB74 0035A7D4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035EB78 0035A7D8 7C 08 02 A6 */ mflr r0
+/* 8035EB7C 0035A7DC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035EB80 0035A7E0 DB E1 00 20 */ stfd f31, 0x20(r1)
+/* 8035EB84 0035A7E4 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
+/* 8035EB88 0035A7E8 C8 22 A4 F0 */ lfd f1, lbl_80642AF0-_SDA2_BASE_(r2)
+/* 8035EB8C 0035A7EC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035EB90 0035A7F0 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8035EB94 0035A7F4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035EB98 0035A7F8 83 C4 00 00 */ lwz r30, 0(r4)
+/* 8035EB9C 0035A7FC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035EBA0 0035A800 7F C3 F3 78 */ mr r3, r30
+/* 8035EBA4 0035A804 80 AD B1 94 */ lwz r5, lbl_80640454-_SDA_BASE_(r13)
+/* 8035EBA8 0035A808 3B A5 04 98 */ addi r29, r5, 0x498
+/* 8035EBAC 0035A80C 7F A4 EB 78 */ mr r4, r29
+/* 8035EBB0 0035A810 4B FF EB D5 */ bl SBServerGetFloatValueA
+/* 8035EBB4 0035A814 FF E0 08 90 */ fmr f31, f1
+/* 8035EBB8 0035A818 C8 22 A4 F0 */ lfd f1, lbl_80642AF0-_SDA2_BASE_(r2)
+/* 8035EBBC 0035A81C 7F E3 FB 78 */ mr r3, r31
+/* 8035EBC0 0035A820 7F A4 EB 78 */ mr r4, r29
+/* 8035EBC4 0035A824 4B FF EB C1 */ bl SBServerGetFloatValueA
+/* 8035EBC8 0035A828 FC 41 F8 28 */ fsub f2, f1, f31
+/* 8035EBCC 0035A82C C0 02 A4 F8 */ lfs f0, lbl_80642AF8-_SDA2_BASE_(r2)
+/* 8035EBD0 0035A830 FC 20 10 18 */ frsp f1, f2
+/* 8035EBD4 0035A834 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8035EBD8 0035A838 41 81 00 18 */ bgt lbl_8035EBF0
+/* 8035EBDC 0035A83C 41 80 00 14 */ blt lbl_8035EBF0
+/* 8035EBE0 0035A840 7F E3 FB 78 */ mr r3, r31
+/* 8035EBE4 0035A844 7F C4 F3 78 */ mr r4, r30
+/* 8035EBE8 0035A848 4B FF FD 61 */ bl prevKeyCompare
+/* 8035EBEC 0035A84C 48 00 00 3C */ b lbl_8035EC28
+lbl_8035EBF0:
+/* 8035EBF0 0035A850 80 6D B1 94 */ lwz r3, lbl_80640454-_SDA_BASE_(r13)
+/* 8035EBF4 0035A854 80 03 06 A0 */ lwz r0, 0x6a0(r3)
+/* 8035EBF8 0035A858 2C 00 00 00 */ cmpwi r0, 0
+/* 8035EBFC 0035A85C 40 82 00 08 */ bne lbl_8035EC04
+/* 8035EC00 0035A860 FC 40 10 50 */ fneg f2, f2
+lbl_8035EC04:
+/* 8035EC04 0035A864 FC 20 10 18 */ frsp f1, f2
+/* 8035EC08 0035A868 C0 02 A4 F8 */ lfs f0, lbl_80642AF8-_SDA2_BASE_(r2)
+/* 8035EC0C 0035A86C FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 8035EC10 0035A870 40 81 00 0C */ ble lbl_8035EC1C
+/* 8035EC14 0035A874 38 60 00 01 */ li r3, 1
+/* 8035EC18 0035A878 48 00 00 10 */ b lbl_8035EC28
+lbl_8035EC1C:
+/* 8035EC1C 0035A87C 7C 00 00 26 */ mfcr r0
+/* 8035EC20 0035A880 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035EC24 0035A884 7C 60 00 D0 */ neg r3, r0
+lbl_8035EC28:
+/* 8035EC28 0035A888 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
+/* 8035EC2C 0035A88C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035EC30 0035A890 CB E1 00 20 */ lfd f31, 0x20(r1)
+/* 8035EC34 0035A894 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035EC38 0035A898 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035EC3C 0035A89C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035EC40 0035A8A0 7C 08 03 A6 */ mtlr r0
+/* 8035EC44 0035A8A4 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035EC48 0035A8A8 4E 80 00 20 */ blr
+
+.global StrCaseKeyCompare
+StrCaseKeyCompare:
+/* 8035EC4C 0035A8AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035EC50 0035A8B0 7C 08 02 A6 */ mflr r0
+/* 8035EC54 0035A8B4 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035EC58 0035A8B8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035EC5C 0035A8BC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035EC60 0035A8C0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035EC64 0035A8C4 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8035EC68 0035A8C8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035EC6C 0035A8CC 83 A4 00 00 */ lwz r29, 0(r4)
+/* 8035EC70 0035A8D0 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035EC74 0035A8D4 7F A3 EB 78 */ mr r3, r29
+/* 8035EC78 0035A8D8 80 CD B1 94 */ lwz r6, lbl_80640454-_SDA_BASE_(r13)
+/* 8035EC7C 0035A8DC 3B 86 04 98 */ addi r28, r6, 0x498
+/* 8035EC80 0035A8E0 7F 84 E3 78 */ mr r4, r28
+/* 8035EC84 0035A8E4 4B FF E9 81 */ bl SBServerGetStringValueA
+/* 8035EC88 0035A8E8 7C 7F 1B 78 */ mr r31, r3
+/* 8035EC8C 0035A8EC 7F C3 F3 78 */ mr r3, r30
+/* 8035EC90 0035A8F0 7F 84 E3 78 */ mr r4, r28
+/* 8035EC94 0035A8F4 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035EC98 0035A8F8 4B FF E9 6D */ bl SBServerGetStringValueA
+/* 8035EC9C 0035A8FC 7F E4 FB 78 */ mr r4, r31
+/* 8035ECA0 0035A900 4B E6 F7 AD */ bl strcmp
+/* 8035ECA4 0035A904 2C 03 00 00 */ cmpwi r3, 0
+/* 8035ECA8 0035A908 40 82 00 14 */ bne lbl_8035ECBC
+/* 8035ECAC 0035A90C 7F C3 F3 78 */ mr r3, r30
+/* 8035ECB0 0035A910 7F A4 EB 78 */ mr r4, r29
+/* 8035ECB4 0035A914 4B FF FC 95 */ bl prevKeyCompare
+/* 8035ECB8 0035A918 48 00 00 18 */ b lbl_8035ECD0
+lbl_8035ECBC:
+/* 8035ECBC 0035A91C 80 8D B1 94 */ lwz r4, lbl_80640454-_SDA_BASE_(r13)
+/* 8035ECC0 0035A920 80 04 06 A0 */ lwz r0, 0x6a0(r4)
+/* 8035ECC4 0035A924 2C 00 00 00 */ cmpwi r0, 0
+/* 8035ECC8 0035A928 40 82 00 08 */ bne lbl_8035ECD0
+/* 8035ECCC 0035A92C 7C 63 00 D0 */ neg r3, r3
+lbl_8035ECD0:
+/* 8035ECD0 0035A930 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035ECD4 0035A934 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035ECD8 0035A938 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035ECDC 0035A93C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035ECE0 0035A940 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035ECE4 0035A944 7C 08 03 A6 */ mtlr r0
+/* 8035ECE8 0035A948 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035ECEC 0035A94C 4E 80 00 20 */ blr
+
+.global StrNoCaseKeyCompare
+StrNoCaseKeyCompare:
+/* 8035ECF0 0035A950 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035ECF4 0035A954 7C 08 02 A6 */ mflr r0
+/* 8035ECF8 0035A958 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035ECFC 0035A95C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035ED00 0035A960 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035ED04 0035A964 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035ED08 0035A968 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8035ED0C 0035A96C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035ED10 0035A970 83 A4 00 00 */ lwz r29, 0(r4)
+/* 8035ED14 0035A974 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035ED18 0035A978 7F A3 EB 78 */ mr r3, r29
+/* 8035ED1C 0035A97C 80 CD B1 94 */ lwz r6, lbl_80640454-_SDA_BASE_(r13)
+/* 8035ED20 0035A980 3B 86 04 98 */ addi r28, r6, 0x498
+/* 8035ED24 0035A984 7F 84 E3 78 */ mr r4, r28
+/* 8035ED28 0035A988 4B FF E8 DD */ bl SBServerGetStringValueA
+/* 8035ED2C 0035A98C 7C 7F 1B 78 */ mr r31, r3
+/* 8035ED30 0035A990 7F C3 F3 78 */ mr r3, r30
+/* 8035ED34 0035A994 7F 84 E3 78 */ mr r4, r28
+/* 8035ED38 0035A998 38 AD 95 08 */ addi r5, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035ED3C 0035A99C 4B FF E8 C9 */ bl SBServerGetStringValueA
+/* 8035ED40 0035A9A0 7F E4 FB 78 */ mr r4, r31
+/* 8035ED44 0035A9A4 4B E7 1E 11 */ bl strcasecmp
+/* 8035ED48 0035A9A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035ED4C 0035A9AC 40 82 00 14 */ bne lbl_8035ED60
+/* 8035ED50 0035A9B0 7F C3 F3 78 */ mr r3, r30
+/* 8035ED54 0035A9B4 7F A4 EB 78 */ mr r4, r29
+/* 8035ED58 0035A9B8 4B FF FB F1 */ bl prevKeyCompare
+/* 8035ED5C 0035A9BC 48 00 00 18 */ b lbl_8035ED74
+lbl_8035ED60:
+/* 8035ED60 0035A9C0 80 8D B1 94 */ lwz r4, lbl_80640454-_SDA_BASE_(r13)
+/* 8035ED64 0035A9C4 80 04 06 A0 */ lwz r0, 0x6a0(r4)
+/* 8035ED68 0035A9C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035ED6C 0035A9CC 40 82 00 08 */ bne lbl_8035ED74
+/* 8035ED70 0035A9D0 7C 63 00 D0 */ neg r3, r3
+lbl_8035ED74:
+/* 8035ED74 0035A9D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035ED78 0035A9D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035ED7C 0035A9DC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035ED80 0035A9E0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035ED84 0035A9E4 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035ED88 0035A9E8 7C 08 03 A6 */ mtlr r0
+/* 8035ED8C 0035A9EC 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035ED90 0035A9F0 4E 80 00 20 */ blr
+
+.global SBServerListSort
+SBServerListSort:
+/* 8035ED94 0035A9F4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035ED98 0035A9F8 7C 08 02 A6 */ mflr r0
+/* 8035ED9C 0035A9FC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035EDA0 0035AA00 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035EDA4 0035AA04 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035EDA8 0035AA08 7C BE 2B 78 */ mr r30, r5
+/* 8035EDAC 0035AA0C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035EDB0 0035AA10 7C 9D 23 78 */ mr r29, r4
+/* 8035EDB4 0035AA14 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035EDB8 0035AA18 7C 7C 1B 78 */ mr r28, r3
+/* 8035EDBC 0035AA1C 80 05 01 00 */ lwz r0, 0x100(r5)
+/* 8035EDC0 0035AA20 2C 00 00 02 */ cmpwi r0, 2
+/* 8035EDC4 0035AA24 41 82 00 3C */ beq lbl_8035EE00
+/* 8035EDC8 0035AA28 40 80 00 14 */ bge lbl_8035EDDC
+/* 8035EDCC 0035AA2C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035EDD0 0035AA30 41 82 00 18 */ beq lbl_8035EDE8
+/* 8035EDD4 0035AA34 40 80 00 20 */ bge lbl_8035EDF4
+/* 8035EDD8 0035AA38 48 00 00 40 */ b lbl_8035EE18
+lbl_8035EDDC:
+/* 8035EDDC 0035AA3C 2C 00 00 04 */ cmpwi r0, 4
+/* 8035EDE0 0035AA40 40 80 00 38 */ bge lbl_8035EE18
+/* 8035EDE4 0035AA44 48 00 00 28 */ b lbl_8035EE0C
+lbl_8035EDE8:
+/* 8035EDE8 0035AA48 3F E0 80 36 */ lis r31, IntKeyCompare@ha
+/* 8035EDEC 0035AA4C 3B FF EA D8 */ addi r31, r31, IntKeyCompare@l
+/* 8035EDF0 0035AA50 48 00 00 30 */ b lbl_8035EE20
+lbl_8035EDF4:
+/* 8035EDF4 0035AA54 3F E0 80 36 */ lis r31, FloatKeyCompare@ha
+/* 8035EDF8 0035AA58 3B FF EB 74 */ addi r31, r31, FloatKeyCompare@l
+/* 8035EDFC 0035AA5C 48 00 00 24 */ b lbl_8035EE20
+lbl_8035EE00:
+/* 8035EE00 0035AA60 3F E0 80 36 */ lis r31, StrCaseKeyCompare@ha
+/* 8035EE04 0035AA64 3B FF EC 4C */ addi r31, r31, StrCaseKeyCompare@l
+/* 8035EE08 0035AA68 48 00 00 18 */ b lbl_8035EE20
+lbl_8035EE0C:
+/* 8035EE0C 0035AA6C 3F E0 80 36 */ lis r31, StrNoCaseKeyCompare@ha
+/* 8035EE10 0035AA70 3B FF EC F0 */ addi r31, r31, StrNoCaseKeyCompare@l
+/* 8035EE14 0035AA74 48 00 00 0C */ b lbl_8035EE20
+lbl_8035EE18:
+/* 8035EE18 0035AA78 3F E0 80 36 */ lis r31, StrNoCaseKeyCompare@ha
+/* 8035EE1C 0035AA7C 3B FF EC F0 */ addi r31, r31, StrNoCaseKeyCompare@l
+lbl_8035EE20:
+/* 8035EE20 0035AA80 38 63 05 9C */ addi r3, r3, 0x59c
+/* 8035EE24 0035AA84 4B E6 7D 41 */ bl strlen
+/* 8035EE28 0035AA88 2C 03 00 00 */ cmpwi r3, 0
+/* 8035EE2C 0035AA8C 40 82 00 34 */ bne lbl_8035EE60
+/* 8035EE30 0035AA90 38 00 00 20 */ li r0, 0x20
+/* 8035EE34 0035AA94 38 BC 05 98 */ addi r5, r28, 0x598
+/* 8035EE38 0035AA98 38 9E FF FC */ addi r4, r30, -4
+/* 8035EE3C 0035AA9C 7C 09 03 A6 */ mtctr r0
+lbl_8035EE40:
+/* 8035EE40 0035AAA0 80 64 00 04 */ lwz r3, 4(r4)
+/* 8035EE44 0035AAA4 84 04 00 08 */ lwzu r0, 8(r4)
+/* 8035EE48 0035AAA8 90 65 00 04 */ stw r3, 4(r5)
+/* 8035EE4C 0035AAAC 94 05 00 08 */ stwu r0, 8(r5)
+/* 8035EE50 0035AAB0 42 00 FF F0 */ bdnz lbl_8035EE40
+/* 8035EE54 0035AAB4 80 04 00 04 */ lwz r0, 4(r4)
+/* 8035EE58 0035AAB8 90 05 00 04 */ stw r0, 4(r5)
+/* 8035EE5C 0035AABC 48 00 00 44 */ b lbl_8035EEA0
+lbl_8035EE60:
+/* 8035EE60 0035AAC0 7F C3 F3 78 */ mr r3, r30
+/* 8035EE64 0035AAC4 38 9C 04 98 */ addi r4, r28, 0x498
+/* 8035EE68 0035AAC8 4B E6 F5 E5 */ bl strcmp
+/* 8035EE6C 0035AACC 2C 03 00 00 */ cmpwi r3, 0
+/* 8035EE70 0035AAD0 41 82 00 30 */ beq lbl_8035EEA0
+/* 8035EE74 0035AAD4 38 00 00 20 */ li r0, 0x20
+/* 8035EE78 0035AAD8 38 BC 05 98 */ addi r5, r28, 0x598
+/* 8035EE7C 0035AADC 38 9C 04 94 */ addi r4, r28, 0x494
+/* 8035EE80 0035AAE0 7C 09 03 A6 */ mtctr r0
+lbl_8035EE84:
+/* 8035EE84 0035AAE4 80 64 00 04 */ lwz r3, 4(r4)
+/* 8035EE88 0035AAE8 84 04 00 08 */ lwzu r0, 8(r4)
+/* 8035EE8C 0035AAEC 90 65 00 04 */ stw r3, 4(r5)
+/* 8035EE90 0035AAF0 94 05 00 08 */ stwu r0, 8(r5)
+/* 8035EE94 0035AAF4 42 00 FF F0 */ bdnz lbl_8035EE84
+/* 8035EE98 0035AAF8 80 04 00 04 */ lwz r0, 4(r4)
+/* 8035EE9C 0035AAFC 90 05 00 04 */ stw r0, 4(r5)
+lbl_8035EEA0:
+/* 8035EEA0 0035AB00 38 00 00 20 */ li r0, 0x20
+/* 8035EEA4 0035AB04 38 BC 04 94 */ addi r5, r28, 0x494
+/* 8035EEA8 0035AB08 38 9E FF FC */ addi r4, r30, -4
+/* 8035EEAC 0035AB0C 7C 09 03 A6 */ mtctr r0
+lbl_8035EEB0:
+/* 8035EEB0 0035AB10 80 64 00 04 */ lwz r3, 4(r4)
+/* 8035EEB4 0035AB14 84 04 00 08 */ lwzu r0, 8(r4)
+/* 8035EEB8 0035AB18 90 65 00 04 */ stw r3, 4(r5)
+/* 8035EEBC 0035AB1C 94 05 00 08 */ stwu r0, 8(r5)
+/* 8035EEC0 0035AB20 42 00 FF F0 */ bdnz lbl_8035EEB0
+/* 8035EEC4 0035AB24 80 04 00 04 */ lwz r0, 4(r4)
+/* 8035EEC8 0035AB28 7F E4 FB 78 */ mr r4, r31
+/* 8035EECC 0035AB2C 90 05 00 04 */ stw r0, 4(r5)
+/* 8035EED0 0035AB30 93 BC 06 A0 */ stw r29, 0x6a0(r28)
+/* 8035EED4 0035AB34 93 8D B1 94 */ stw r28, lbl_80640454-_SDA_BASE_(r13)
+/* 8035EED8 0035AB38 80 7C 00 04 */ lwz r3, 4(r28)
+/* 8035EEDC 0035AB3C 4B FD 75 3D */ bl ArraySort
+/* 8035EEE0 0035AB40 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035EEE4 0035AB44 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035EEE8 0035AB48 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035EEEC 0035AB4C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035EEF0 0035AB50 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035EEF4 0035AB54 7C 08 03 A6 */ mtlr r0
+/* 8035EEF8 0035AB58 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035EEFC 0035AB5C 4E 80 00 20 */ blr
+
+.global SBServerListFindServer
+SBServerListFindServer:
+/* 8035EF00 0035AB60 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035EF04 0035AB64 7C 08 02 A6 */ mflr r0
+/* 8035EF08 0035AB68 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035EF0C 0035AB6C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035EF10 0035AB70 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035EF14 0035AB74 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035EF18 0035AB78 7C 9D 23 78 */ mr r29, r4
+/* 8035EF1C 0035AB7C 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035EF20 0035AB80 7C 7C 1B 78 */ mr r28, r3
+/* 8035EF24 0035AB84 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035EF28 0035AB88 4B FD 6F C1 */ bl ArrayLength
+/* 8035EF2C 0035AB8C 7C 7F 1B 78 */ mr r31, r3
+/* 8035EF30 0035AB90 3B C0 00 00 */ li r30, 0
+/* 8035EF34 0035AB94 48 00 00 28 */ b lbl_8035EF5C
+lbl_8035EF38:
+/* 8035EF38 0035AB98 80 7C 00 04 */ lwz r3, 4(r28)
+/* 8035EF3C 0035AB9C 7F C4 F3 78 */ mr r4, r30
+/* 8035EF40 0035ABA0 4B FD 6F B1 */ bl ArrayNth
+/* 8035EF44 0035ABA4 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035EF48 0035ABA8 7C 1D 00 40 */ cmplw r29, r0
+/* 8035EF4C 0035ABAC 40 82 00 0C */ bne lbl_8035EF58
+/* 8035EF50 0035ABB0 7F C3 F3 78 */ mr r3, r30
+/* 8035EF54 0035ABB4 48 00 00 14 */ b lbl_8035EF68
+lbl_8035EF58:
+/* 8035EF58 0035ABB8 3B DE 00 01 */ addi r30, r30, 1
+lbl_8035EF5C:
+/* 8035EF5C 0035ABBC 7C 1E F8 00 */ cmpw r30, r31
+/* 8035EF60 0035ABC0 41 80 FF D8 */ blt lbl_8035EF38
+/* 8035EF64 0035ABC4 38 60 FF FF */ li r3, -1
+lbl_8035EF68:
+/* 8035EF68 0035ABC8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035EF6C 0035ABCC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035EF70 0035ABD0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035EF74 0035ABD4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035EF78 0035ABD8 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035EF7C 0035ABDC 7C 08 03 A6 */ mtlr r0
+/* 8035EF80 0035ABE0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035EF84 0035ABE4 4E 80 00 20 */ blr
+
+.global SBServerListRemoveAt
+SBServerListRemoveAt:
+/* 8035EF88 0035ABE8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035EF8C 0035ABEC 7C 08 02 A6 */ mflr r0
+/* 8035EF90 0035ABF0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035EF94 0035ABF4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035EF98 0035ABF8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035EF9C 0035ABFC 7C 9E 23 78 */ mr r30, r4
+/* 8035EFA0 0035AC00 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035EFA4 0035AC04 7C 7D 1B 78 */ mr r29, r3
+/* 8035EFA8 0035AC08 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035EFAC 0035AC0C 4B FD 6F 45 */ bl ArrayNth
+/* 8035EFB0 0035AC10 83 E3 00 00 */ lwz r31, 0(r3)
+/* 8035EFB4 0035AC14 7F A3 EB 78 */ mr r3, r29
+/* 8035EFB8 0035AC18 81 9D 04 88 */ lwz r12, 0x488(r29)
+/* 8035EFBC 0035AC1C 38 80 00 02 */ li r4, 2
+/* 8035EFC0 0035AC20 7F E5 FB 78 */ mr r5, r31
+/* 8035EFC4 0035AC24 80 DD 04 94 */ lwz r6, 0x494(r29)
+/* 8035EFC8 0035AC28 7D 89 03 A6 */ mtctr r12
+/* 8035EFCC 0035AC2C 4E 80 04 21 */ bctrl
+/* 8035EFD0 0035AC30 80 7D 00 04 */ lwz r3, 4(r29)
+/* 8035EFD4 0035AC34 7F C4 F3 78 */ mr r4, r30
+/* 8035EFD8 0035AC38 4B FD 72 99 */ bl ArrayDeleteAt
+/* 8035EFDC 0035AC3C 80 9D 07 D8 */ lwz r4, 0x7d8(r29)
+/* 8035EFE0 0035AC40 2C 04 00 00 */ cmpwi r4, 0
+/* 8035EFE4 0035AC44 40 82 00 14 */ bne lbl_8035EFF8
+/* 8035EFE8 0035AC48 7F E3 FB 78 */ mr r3, r31
+/* 8035EFEC 0035AC4C 38 80 00 00 */ li r4, 0
+/* 8035EFF0 0035AC50 4B FF E8 95 */ bl SBServerSetNext
+/* 8035EFF4 0035AC54 48 00 00 0C */ b lbl_8035F000
+lbl_8035EFF8:
+/* 8035EFF8 0035AC58 7F E3 FB 78 */ mr r3, r31
+/* 8035EFFC 0035AC5C 4B FF E8 89 */ bl SBServerSetNext
+lbl_8035F000:
+/* 8035F000 0035AC60 93 FD 07 D8 */ stw r31, 0x7d8(r29)
+/* 8035F004 0035AC64 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035F008 0035AC68 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035F00C 0035AC6C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035F010 0035AC70 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035F014 0035AC74 7C 08 03 A6 */ mtlr r0
+/* 8035F018 0035AC78 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035F01C 0035AC7C 4E 80 00 20 */ blr
+
+.global SBServerListCount
+SBServerListCount:
+/* 8035F020 0035AC80 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035F024 0035AC84 4B FD 6E C4 */ b ArrayLength
+
+.global SBServerListNth
+SBServerListNth:
+/* 8035F028 0035AC88 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8035F02C 0035AC8C 7C 08 02 A6 */ mflr r0
+/* 8035F030 0035AC90 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8035F034 0035AC94 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035F038 0035AC98 4B FD 6E B9 */ bl ArrayNth
+/* 8035F03C 0035AC9C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8035F040 0035ACA0 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035F044 0035ACA4 7C 08 03 A6 */ mtlr r0
+/* 8035F048 0035ACA8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8035F04C 0035ACAC 4E 80 00 20 */ blr
+
+.global SBServerListClear
+SBServerListClear:
+/* 8035F050 0035ACB0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035F054 0035ACB4 7C 08 02 A6 */ mflr r0
+/* 8035F058 0035ACB8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035F05C 0035ACBC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035F060 0035ACC0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035F064 0035ACC4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8035F068 0035ACC8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8035F06C 0035ACCC 7C 7C 1B 78 */ mr r28, r3
+/* 8035F070 0035ACD0 80 63 00 04 */ lwz r3, 4(r3)
+/* 8035F074 0035ACD4 4B FD 6E 75 */ bl ArrayLength
+/* 8035F078 0035ACD8 7C 7F 1B 78 */ mr r31, r3
+/* 8035F07C 0035ACDC 3B A0 00 00 */ li r29, 0
+/* 8035F080 0035ACE0 48 00 00 40 */ b lbl_8035F0C0
+lbl_8035F084:
+/* 8035F084 0035ACE4 80 7C 00 04 */ lwz r3, 4(r28)
+/* 8035F088 0035ACE8 7F A4 EB 78 */ mr r4, r29
+/* 8035F08C 0035ACEC 4B FD 6E 65 */ bl ArrayNth
+/* 8035F090 0035ACF0 80 9C 07 D8 */ lwz r4, 0x7d8(r28)
+/* 8035F094 0035ACF4 83 C3 00 00 */ lwz r30, 0(r3)
+/* 8035F098 0035ACF8 2C 04 00 00 */ cmpwi r4, 0
+/* 8035F09C 0035ACFC 40 82 00 14 */ bne lbl_8035F0B0
+/* 8035F0A0 0035AD00 7F C3 F3 78 */ mr r3, r30
+/* 8035F0A4 0035AD04 38 80 00 00 */ li r4, 0
+/* 8035F0A8 0035AD08 4B FF E7 DD */ bl SBServerSetNext
+/* 8035F0AC 0035AD0C 48 00 00 0C */ b lbl_8035F0B8
+lbl_8035F0B0:
+/* 8035F0B0 0035AD10 7F C3 F3 78 */ mr r3, r30
+/* 8035F0B4 0035AD14 4B FF E7 D1 */ bl SBServerSetNext
+lbl_8035F0B8:
+/* 8035F0B8 0035AD18 93 DC 07 D8 */ stw r30, 0x7d8(r28)
+/* 8035F0BC 0035AD1C 3B BD 00 01 */ addi r29, r29, 1
+lbl_8035F0C0:
+/* 8035F0C0 0035AD20 7C 1D F8 00 */ cmpw r29, r31
+/* 8035F0C4 0035AD24 41 80 FF C0 */ blt lbl_8035F084
+/* 8035F0C8 0035AD28 80 7C 00 04 */ lwz r3, 4(r28)
+/* 8035F0CC 0035AD2C 4B FD 76 3D */ bl ArrayClear
+/* 8035F0D0 0035AD30 83 DC 07 D8 */ lwz r30, 0x7d8(r28)
+/* 8035F0D4 0035AD34 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035F0D8 0035AD38 41 82 00 34 */ beq lbl_8035F10C
+/* 8035F0DC 0035AD3C 93 C1 00 08 */ stw r30, 8(r1)
+/* 8035F0E0 0035AD40 48 00 00 18 */ b lbl_8035F0F8
+lbl_8035F0E4:
+/* 8035F0E4 0035AD44 4B FF E7 A9 */ bl SBServerGetNext
+/* 8035F0E8 0035AD48 7C 7E 1B 78 */ mr r30, r3
+/* 8035F0EC 0035AD4C 38 61 00 08 */ addi r3, r1, 8
+/* 8035F0F0 0035AD50 4B FF E4 09 */ bl SBServerFree
+/* 8035F0F4 0035AD54 93 C1 00 08 */ stw r30, 8(r1)
+lbl_8035F0F8:
+/* 8035F0F8 0035AD58 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035F0FC 0035AD5C 7F C3 F3 78 */ mr r3, r30
+/* 8035F100 0035AD60 40 82 FF E4 */ bne lbl_8035F0E4
+/* 8035F104 0035AD64 38 00 00 00 */ li r0, 0
+/* 8035F108 0035AD68 90 1C 07 D8 */ stw r0, 0x7d8(r28)
+lbl_8035F10C:
+/* 8035F10C 0035AD6C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035F110 0035AD70 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035F114 0035AD74 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035F118 0035AD78 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8035F11C 0035AD7C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8035F120 0035AD80 7C 08 03 A6 */ mtlr r0
+/* 8035F124 0035AD84 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035F128 0035AD88 4E 80 00 20 */ blr
+
+.global SBRefStr
+SBRefStr:
+/* 8035F12C 0035AD8C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035F130 0035AD90 7C 08 02 A6 */ mflr r0
+/* 8035F134 0035AD94 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035F138 0035AD98 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035F13C 0035AD9C 7C 9F 23 78 */ mr r31, r4
+/* 8035F140 0035ADA0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8035F144 0035ADA4 7C 7E 1B 78 */ mr r30, r3
+/* 8035F148 0035ADA8 90 81 00 08 */ stw r4, 8(r1)
+/* 8035F14C 0035ADAC 4B FF E3 11 */ bl SBRefStrHash
+/* 8035F150 0035ADB0 38 81 00 08 */ addi r4, r1, 8
+/* 8035F154 0035ADB4 4B FD 79 C9 */ bl TableLookup
+/* 8035F158 0035ADB8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F15C 0035ADBC 41 82 00 18 */ beq lbl_8035F174
+/* 8035F160 0035ADC0 80 83 00 04 */ lwz r4, 4(r3)
+/* 8035F164 0035ADC4 38 04 00 01 */ addi r0, r4, 1
+/* 8035F168 0035ADC8 90 03 00 04 */ stw r0, 4(r3)
+/* 8035F16C 0035ADCC 80 63 00 00 */ lwz r3, 0(r3)
+/* 8035F170 0035ADD0 48 00 00 2C */ b lbl_8035F19C
+lbl_8035F174:
+/* 8035F174 0035ADD4 7F E3 FB 78 */ mr r3, r31
+/* 8035F178 0035ADD8 4B FD 9D 8D */ bl goastrdup
+/* 8035F17C 0035ADDC 38 00 00 01 */ li r0, 1
+/* 8035F180 0035ADE0 90 61 00 08 */ stw r3, 8(r1)
+/* 8035F184 0035ADE4 7F C3 F3 78 */ mr r3, r30
+/* 8035F188 0035ADE8 90 01 00 0C */ stw r0, 0xc(r1)
+/* 8035F18C 0035ADEC 4B FF E2 D1 */ bl SBRefStrHash
+/* 8035F190 0035ADF0 38 81 00 08 */ addi r4, r1, 8
+/* 8035F194 0035ADF4 4B FD 78 3D */ bl TableEnter
+/* 8035F198 0035ADF8 80 61 00 08 */ lwz r3, 8(r1)
+lbl_8035F19C:
+/* 8035F19C 0035ADFC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035F1A0 0035AE00 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035F1A4 0035AE04 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8035F1A8 0035AE08 7C 08 03 A6 */ mtlr r0
+/* 8035F1AC 0035AE0C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035F1B0 0035AE10 4E 80 00 20 */ blr
+
+.global SBReleaseStr
+SBReleaseStr:
+/* 8035F1B4 0035AE14 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8035F1B8 0035AE18 7C 08 02 A6 */ mflr r0
+/* 8035F1BC 0035AE1C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8035F1C0 0035AE20 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8035F1C4 0035AE24 7C 7F 1B 78 */ mr r31, r3
+/* 8035F1C8 0035AE28 90 81 00 08 */ stw r4, 8(r1)
+/* 8035F1CC 0035AE2C 4B FF E2 91 */ bl SBRefStrHash
+/* 8035F1D0 0035AE30 38 81 00 08 */ addi r4, r1, 8
+/* 8035F1D4 0035AE34 4B FD 79 49 */ bl TableLookup
+/* 8035F1D8 0035AE38 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F1DC 0035AE3C 41 82 00 24 */ beq lbl_8035F200
+/* 8035F1E0 0035AE40 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035F1E4 0035AE44 34 00 FF FF */ addic. r0, r0, -1
+/* 8035F1E8 0035AE48 90 03 00 04 */ stw r0, 4(r3)
+/* 8035F1EC 0035AE4C 40 82 00 14 */ bne lbl_8035F200
+/* 8035F1F0 0035AE50 7F E3 FB 78 */ mr r3, r31
+/* 8035F1F4 0035AE54 4B FF E2 69 */ bl SBRefStrHash
+/* 8035F1F8 0035AE58 38 81 00 08 */ addi r4, r1, 8
+/* 8035F1FC 0035AE5C 4B FD 78 7D */ bl TableRemove
+lbl_8035F200:
+/* 8035F200 0035AE60 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8035F204 0035AE64 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8035F208 0035AE68 7C 08 03 A6 */ mtlr r0
+/* 8035F20C 0035AE6C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8035F210 0035AE70 4E 80 00 20 */ blr
+
+.global NTSLengthSB
+NTSLengthSB:
+/* 8035F214 0035AE74 38 A0 00 00 */ li r5, 0
+/* 8035F218 0035AE78 7C 89 03 A6 */ mtctr r4
+/* 8035F21C 0035AE7C 2C 04 00 00 */ cmpwi r4, 0
+/* 8035F220 0035AE80 40 81 00 24 */ ble lbl_8035F244
+lbl_8035F224:
+/* 8035F224 0035AE84 88 03 00 00 */ lbz r0, 0(r3)
+/* 8035F228 0035AE88 7C 00 07 75 */ extsb. r0, r0
+/* 8035F22C 0035AE8C 40 82 00 0C */ bne lbl_8035F238
+/* 8035F230 0035AE90 38 65 00 01 */ addi r3, r5, 1
+/* 8035F234 0035AE94 4E 80 00 20 */ blr
+lbl_8035F238:
+/* 8035F238 0035AE98 38 A5 00 01 */ addi r5, r5, 1
+/* 8035F23C 0035AE9C 38 63 00 01 */ addi r3, r3, 1
+/* 8035F240 0035AEA0 42 00 FF E4 */ bdnz lbl_8035F224
+lbl_8035F244:
+/* 8035F244 0035AEA4 38 60 FF FF */ li r3, -1
+/* 8035F248 0035AEA8 4E 80 00 20 */ blr
+
+.global SBServerListInit
+SBServerListInit:
+/* 8035F24C 0035AEAC 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8035F250 0035AEB0 7C 08 02 A6 */ mflr r0
+/* 8035F254 0035AEB4 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8035F258 0035AEB8 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035F25C 0035AEBC 4B E6 7E C1 */ bl _savegpr_24
+/* 8035F260 0035AEC0 2C 08 00 00 */ cmpwi r8, 0
+/* 8035F264 0035AEC4 7C 78 1B 78 */ mr r24, r3
+/* 8035F268 0035AEC8 7C 99 23 78 */ mr r25, r4
+/* 8035F26C 0035AECC 7C BA 2B 78 */ mr r26, r5
+/* 8035F270 0035AED0 7C DB 33 78 */ mr r27, r6
+/* 8035F274 0035AED4 7C FC 3B 78 */ mr r28, r7
+/* 8035F278 0035AED8 7D 3D 4B 78 */ mr r29, r9
+/* 8035F27C 0035AEDC 7D 5E 53 78 */ mr r30, r10
+/* 8035F280 0035AEE0 40 82 00 10 */ bne lbl_8035F290
+/* 8035F284 0035AEE4 80 0D B0 A8 */ lwz r0, lbl_80640368-_SDA_BASE_(r13)
+/* 8035F288 0035AEE8 2C 00 00 01 */ cmpwi r0, 1
+/* 8035F28C 0035AEEC 40 82 00 C0 */ bne lbl_8035F34C
+lbl_8035F290:
+/* 8035F290 0035AEF0 38 00 00 01 */ li r0, 1
+/* 8035F294 0035AEF4 38 80 00 64 */ li r4, 0x64
+/* 8035F298 0035AEF8 90 03 00 00 */ stw r0, 0(r3)
+/* 8035F29C 0035AEFC 38 60 00 04 */ li r3, 4
+/* 8035F2A0 0035AF00 38 A0 00 00 */ li r5, 0
+/* 8035F2A4 0035AF04 4B FD 6B 15 */ bl ArrayNew
+/* 8035F2A8 0035AF08 3B E0 00 00 */ li r31, 0
+/* 8035F2AC 0035AF0C 90 78 00 04 */ stw r3, 4(r24)
+/* 8035F2B0 0035AF10 7F 03 C3 78 */ mr r3, r24
+/* 8035F2B4 0035AF14 93 F8 07 D8 */ stw r31, 0x7d8(r24)
+/* 8035F2B8 0035AF18 4B FF E1 A5 */ bl SBRefStrHash
+/* 8035F2BC 0035AF1C 7F 24 CB 78 */ mr r4, r25
+/* 8035F2C0 0035AF20 38 78 00 0C */ addi r3, r24, 0xc
+/* 8035F2C4 0035AF24 4B E6 F0 0D */ bl strcpy
+/* 8035F2C8 0035AF28 7F 44 D3 78 */ mr r4, r26
+/* 8035F2CC 0035AF2C 38 78 00 30 */ addi r3, r24, 0x30
+/* 8035F2D0 0035AF30 4B E6 F0 01 */ bl strcpy
+/* 8035F2D4 0035AF34 7F 64 DB 78 */ mr r4, r27
+/* 8035F2D8 0035AF38 38 78 00 54 */ addi r3, r24, 0x54
+/* 8035F2DC 0035AF3C 4B E6 EF F5 */ bl strcpy
+/* 8035F2E0 0035AF40 38 00 FF FF */ li r0, -1
+/* 8035F2E4 0035AF44 93 B8 04 88 */ stw r29, 0x488(r24)
+/* 8035F2E8 0035AF48 38 78 04 98 */ addi r3, r24, 0x498
+/* 8035F2EC 0035AF4C 38 8D 95 08 */ addi r4, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035F2F0 0035AF50 93 F8 04 8C */ stw r31, 0x48c(r24)
+/* 8035F2F4 0035AF54 93 D8 04 94 */ stw r30, 0x494(r24)
+/* 8035F2F8 0035AF58 93 F8 06 A4 */ stw r31, 0x6a4(r24)
+/* 8035F2FC 0035AF5C 90 18 06 B4 */ stw r0, 0x6b4(r24)
+/* 8035F300 0035AF60 93 F8 00 7C */ stw r31, 0x7c(r24)
+/* 8035F304 0035AF64 93 F8 00 80 */ stw r31, 0x80(r24)
+/* 8035F308 0035AF68 93 F8 00 08 */ stw r31, 8(r24)
+/* 8035F30C 0035AF6C 90 18 04 84 */ stw r0, 0x484(r24)
+/* 8035F310 0035AF70 93 F8 04 80 */ stw r31, 0x480(r24)
+/* 8035F314 0035AF74 93 F8 06 A8 */ stw r31, 0x6a8(r24)
+/* 8035F318 0035AF78 93 98 06 BC */ stw r28, 0x6bc(r24)
+/* 8035F31C 0035AF7C 4B E6 EF B5 */ bl strcpy
+/* 8035F320 0035AF80 38 78 05 9C */ addi r3, r24, 0x59c
+/* 8035F324 0035AF84 38 8D 95 08 */ addi r4, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035F328 0035AF88 4B E6 EF A9 */ bl strcpy
+/* 8035F32C 0035AF8C 38 6D 95 08 */ addi r3, r13, lbl_8063E7C8-_SDA_BASE_
+/* 8035F330 0035AF90 38 00 00 80 */ li r0, 0x80
+/* 8035F334 0035AF94 90 78 06 B0 */ stw r3, 0x6b0(r24)
+/* 8035F338 0035AF98 93 F8 07 D4 */ stw r31, 0x7d4(r24)
+/* 8035F33C 0035AF9C B0 18 07 D0 */ sth r0, 0x7d0(r24)
+/* 8035F340 0035AFA0 4B FD 9C 99 */ bl current_time
+/* 8035F344 0035AFA4 4B E6 DA 19 */ bl srand
+/* 8035F348 0035AFA8 4B FD 9C 89 */ bl SocketStartUp
+lbl_8035F34C:
+/* 8035F34C 0035AFAC 39 61 00 30 */ addi r11, r1, 0x30
+/* 8035F350 0035AFB0 4B E6 7E 19 */ bl _restgpr_24
+/* 8035F354 0035AFB4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8035F358 0035AFB8 7C 08 03 A6 */ mtlr r0
+/* 8035F35C 0035AFBC 38 21 00 30 */ addi r1, r1, 0x30
+/* 8035F360 0035AFC0 4E 80 00 20 */ blr
+
+.global ServerListConnect
+ServerListConnect:
+/* 8035F364 0035AFC4 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 8035F368 0035AFC8 7C 08 02 A6 */ mflr r0
+/* 8035F36C 0035AFCC 3C A0 80 42 */ lis r5, lbl_80422D48@ha
+/* 8035F370 0035AFD0 3C 80 9C D0 */ lis r4, 0x9CCF9319@ha
+/* 8035F374 0035AFD4 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 8035F378 0035AFD8 38 A5 2D 48 */ addi r5, r5, lbl_80422D48@l
+/* 8035F37C 0035AFDC 38 E3 00 0C */ addi r7, r3, 0xc
+/* 8035F380 0035AFE0 39 00 00 00 */ li r8, 0
+/* 8035F384 0035AFE4 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 8035F388 0035AFE8 7C 7F 1B 78 */ mr r31, r3
+/* 8035F38C 0035AFEC 80 C5 00 38 */ lwz r6, 0x38(r5)
+/* 8035F390 0035AFF0 38 A4 93 19 */ addi r5, r4, 0x9CCF9319@l
+/* 8035F394 0035AFF4 48 00 00 3C */ b lbl_8035F3D0
+lbl_8035F398:
+/* 8035F398 0035AFF8 7C 88 29 D6 */ mullw r4, r8, r5
+/* 8035F39C 0035AFFC 7C 68 07 75 */ extsb. r8, r3
+/* 8035F3A0 0035B000 38 00 00 00 */ li r0, 0
+/* 8035F3A4 0035B004 41 80 00 0C */ blt lbl_8035F3B0
+/* 8035F3A8 0035B008 2C 08 01 00 */ cmpwi r8, 0x100
+/* 8035F3AC 0035B00C 41 80 00 08 */ blt lbl_8035F3B4
+lbl_8035F3B0:
+/* 8035F3B0 0035B010 38 00 00 01 */ li r0, 1
+lbl_8035F3B4:
+/* 8035F3B4 0035B014 2C 00 00 00 */ cmpwi r0, 0
+/* 8035F3B8 0035B018 41 82 00 08 */ beq lbl_8035F3C0
+/* 8035F3BC 0035B01C 48 00 00 0C */ b lbl_8035F3C8
+lbl_8035F3C0:
+/* 8035F3C0 0035B020 80 66 00 10 */ lwz r3, 0x10(r6)
+/* 8035F3C4 0035B024 7D 03 40 AE */ lbzx r8, r3, r8
+lbl_8035F3C8:
+/* 8035F3C8 0035B028 7D 04 42 14 */ add r8, r4, r8
+/* 8035F3CC 0035B02C 38 E7 00 01 */ addi r7, r7, 1
+lbl_8035F3D0:
+/* 8035F3D0 0035B030 88 67 00 00 */ lbz r3, 0(r7)
+/* 8035F3D4 0035B034 7C 60 07 75 */ extsb. r0, r3
+/* 8035F3D8 0035B038 40 82 FF C0 */ bne lbl_8035F398
+/* 8035F3DC 0035B03C 3C 60 CC CD */ lis r3, 0xCCCCCCCD@ha
+/* 8035F3E0 0035B040 80 8D B1 90 */ lwz r4, lbl_80640450-_SDA_BASE_(r13)
+/* 8035F3E4 0035B044 38 03 CC CD */ addi r0, r3, 0xCCCCCCCD@l
+/* 8035F3E8 0035B048 7C 00 40 16 */ mulhwu r0, r0, r8
+/* 8035F3EC 0035B04C 2C 04 00 00 */ cmpwi r4, 0
+/* 8035F3F0 0035B050 54 00 E1 3E */ srwi r0, r0, 4
+/* 8035F3F4 0035B054 1C 00 00 14 */ mulli r0, r0, 0x14
+/* 8035F3F8 0035B058 7C C0 40 50 */ subf r6, r0, r8
+/* 8035F3FC 0035B05C 41 82 00 10 */ beq lbl_8035F40C
+/* 8035F400 0035B060 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035F404 0035B064 4B E6 EE CD */ bl strcpy
+/* 8035F408 0035B068 48 00 00 1C */ b lbl_8035F424
+lbl_8035F40C:
+/* 8035F40C 0035B06C 3C 80 80 45 */ lis r4, lbl_8044C620@ha
+/* 8035F410 0035B070 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035F414 0035B074 38 BF 00 0C */ addi r5, r31, 0xc
+/* 8035F418 0035B078 38 84 C6 20 */ addi r4, r4, lbl_8044C620@l
+/* 8035F41C 0035B07C 4C C6 31 82 */ crclr 6
+/* 8035F420 0035B080 4B E6 D6 DD */ bl sprintf
+lbl_8035F424:
+/* 8035F424 0035B084 38 00 00 02 */ li r0, 2
+/* 8035F428 0035B088 38 60 70 EE */ li r3, 0x70ee
+/* 8035F42C 0035B08C 98 01 00 09 */ stb r0, 9(r1)
+/* 8035F430 0035B090 4B F9 79 4D */ bl SOHtoNs
+/* 8035F434 0035B094 B0 61 00 0A */ sth r3, 0xa(r1)
+/* 8035F438 0035B098 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035F43C 0035B09C 4B FD 8B 35 */ bl inet_addr
+/* 8035F440 0035B0A0 3C 03 00 01 */ addis r0, r3, 1
+/* 8035F444 0035B0A4 90 61 00 0C */ stw r3, 0xc(r1)
+/* 8035F448 0035B0A8 28 00 FF FF */ cmplwi r0, 0xffff
+/* 8035F44C 0035B0AC 40 82 00 30 */ bne lbl_8035F47C
+/* 8035F450 0035B0B0 38 61 00 10 */ addi r3, r1, 0x10
+/* 8035F454 0035B0B4 4B FD 8C 85 */ bl gethostbyname
+/* 8035F458 0035B0B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F45C 0035B0BC 40 82 00 0C */ bne lbl_8035F468
+/* 8035F460 0035B0C0 38 60 00 02 */ li r3, 2
+/* 8035F464 0035B0C4 48 00 00 78 */ b lbl_8035F4DC
+lbl_8035F468:
+/* 8035F468 0035B0C8 80 83 00 0C */ lwz r4, 0xc(r3)
+/* 8035F46C 0035B0CC 38 61 00 0C */ addi r3, r1, 0xc
+/* 8035F470 0035B0D0 38 A0 00 04 */ li r5, 4
+/* 8035F474 0035B0D4 80 84 00 00 */ lwz r4, 0(r4)
+/* 8035F478 0035B0D8 4B CA 4B 89 */ bl memcpy
+lbl_8035F47C:
+/* 8035F47C 0035B0DC 80 7F 06 B4 */ lwz r3, 0x6b4(r31)
+/* 8035F480 0035B0E0 2C 03 FF FF */ cmpwi r3, -1
+/* 8035F484 0035B0E4 40 82 00 28 */ bne lbl_8035F4AC
+/* 8035F488 0035B0E8 38 60 00 02 */ li r3, 2
+/* 8035F48C 0035B0EC 38 80 00 01 */ li r4, 1
+/* 8035F490 0035B0F0 38 A0 00 06 */ li r5, 6
+/* 8035F494 0035B0F4 4B FD 87 31 */ bl socket
+/* 8035F498 0035B0F8 2C 03 FF FF */ cmpwi r3, -1
+/* 8035F49C 0035B0FC 90 7F 06 B4 */ stw r3, 0x6b4(r31)
+/* 8035F4A0 0035B100 40 82 00 0C */ bne lbl_8035F4AC
+/* 8035F4A4 0035B104 38 60 00 01 */ li r3, 1
+/* 8035F4A8 0035B108 48 00 00 34 */ b lbl_8035F4DC
+lbl_8035F4AC:
+/* 8035F4AC 0035B10C 38 81 00 08 */ addi r4, r1, 8
+/* 8035F4B0 0035B110 38 A0 00 08 */ li r5, 8
+/* 8035F4B4 0035B114 4B FD 88 29 */ bl connect
+/* 8035F4B8 0035B118 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F4BC 0035B11C 41 82 00 1C */ beq lbl_8035F4D8
+/* 8035F4C0 0035B120 80 7F 06 B4 */ lwz r3, 0x6b4(r31)
+/* 8035F4C4 0035B124 4B FD 87 39 */ bl closesocket
+/* 8035F4C8 0035B128 38 00 FF FF */ li r0, -1
+/* 8035F4CC 0035B12C 38 60 00 03 */ li r3, 3
+/* 8035F4D0 0035B130 90 1F 06 B4 */ stw r0, 0x6b4(r31)
+/* 8035F4D4 0035B134 48 00 00 08 */ b lbl_8035F4DC
+lbl_8035F4D8:
+/* 8035F4D8 0035B138 38 60 00 00 */ li r3, 0
+lbl_8035F4DC:
+/* 8035F4DC 0035B13C 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 8035F4E0 0035B140 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 8035F4E4 0035B144 7C 08 03 A6 */ mtlr r0
+/* 8035F4E8 0035B148 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 8035F4EC 0035B14C 4E 80 00 20 */ blr
+
+.global SendWithRetry
+SendWithRetry:
+/* 8035F4F0 0035B150 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8035F4F4 0035B154 7C 08 02 A6 */ mflr r0
+/* 8035F4F8 0035B158 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8035F4FC 0035B15C 39 61 00 50 */ addi r11, r1, 0x50
+/* 8035F500 0035B160 4B E6 7C 15 */ bl _savegpr_22
+/* 8035F504 0035B164 7C 7A 1B 78 */ mr r26, r3
+/* 8035F508 0035B168 7C 9B 23 78 */ mr r27, r4
+/* 8035F50C 0035B16C 7C BC 2B 78 */ mr r28, r5
+/* 8035F510 0035B170 3B A0 00 01 */ li r29, 1
+/* 8035F514 0035B174 3A E0 00 00 */ li r23, 0
+/* 8035F518 0035B178 3B 00 FF FF */ li r24, -1
+/* 8035F51C 0035B17C 3B 20 00 01 */ li r25, 1
+lbl_8035F520:
+/* 8035F520 0035B180 80 7A 06 B4 */ lwz r3, 0x6b4(r26)
+/* 8035F524 0035B184 7F 64 DB 78 */ mr r4, r27
+/* 8035F528 0035B188 7F 85 E3 78 */ mr r5, r28
+/* 8035F52C 0035B18C 38 C0 00 00 */ li r6, 0
+/* 8035F530 0035B190 3B BD FF FF */ addi r29, r29, -1
+/* 8035F534 0035B194 4B FD 89 2D */ bl send
+/* 8035F538 0035B198 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F53C 0035B19C 7C 7E 1B 78 */ mr r30, r3
+/* 8035F540 0035B1A0 41 81 03 18 */ bgt lbl_8035F858
+/* 8035F544 0035B1A4 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035F548 0035B1A8 41 80 03 10 */ blt lbl_8035F858
+/* 8035F54C 0035B1AC 80 7A 00 7C */ lwz r3, 0x7c(r26)
+/* 8035F550 0035B1B0 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F554 0035B1B4 41 82 00 08 */ beq lbl_8035F55C
+/* 8035F558 0035B1B8 4B FD 9D E1 */ bl gsifree
+lbl_8035F55C:
+/* 8035F55C 0035B1BC 80 7A 06 B4 */ lwz r3, 0x6b4(r26)
+/* 8035F560 0035B1C0 92 FA 00 7C */ stw r23, 0x7c(r26)
+/* 8035F564 0035B1C4 2C 03 FF FF */ cmpwi r3, -1
+/* 8035F568 0035B1C8 92 FA 00 80 */ stw r23, 0x80(r26)
+/* 8035F56C 0035B1CC 41 82 00 08 */ beq lbl_8035F574
+/* 8035F570 0035B1D0 4B FD 86 8D */ bl closesocket
+lbl_8035F574:
+/* 8035F574 0035B1D4 80 1A 00 08 */ lwz r0, 8(r26)
+/* 8035F578 0035B1D8 93 1A 06 B4 */ stw r24, 0x6b4(r26)
+/* 8035F57C 0035B1DC 2C 00 00 00 */ cmpwi r0, 0
+/* 8035F580 0035B1E0 93 3A 00 00 */ stw r25, 0(r26)
+/* 8035F584 0035B1E4 41 82 00 78 */ beq lbl_8035F5FC
+/* 8035F588 0035B1E8 3B E0 00 00 */ li r31, 0
+/* 8035F58C 0035B1EC 48 00 00 54 */ b lbl_8035F5E0
+lbl_8035F590:
+/* 8035F590 0035B1F0 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8035F594 0035B1F4 7F E4 FB 78 */ mr r4, r31
+/* 8035F598 0035B1F8 4B FD 69 59 */ bl ArrayNth
+/* 8035F59C 0035B1FC 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035F5A0 0035B200 7F 43 D3 78 */ mr r3, r26
+/* 8035F5A4 0035B204 90 01 00 18 */ stw r0, 0x18(r1)
+/* 8035F5A8 0035B208 4B FF DE B5 */ bl SBRefStrHash
+/* 8035F5AC 0035B20C 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035F5B0 0035B210 4B FD 75 6D */ bl TableLookup
+/* 8035F5B4 0035B214 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F5B8 0035B218 41 82 00 24 */ beq lbl_8035F5DC
+/* 8035F5BC 0035B21C 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035F5C0 0035B220 34 00 FF FF */ addic. r0, r0, -1
+/* 8035F5C4 0035B224 90 03 00 04 */ stw r0, 4(r3)
+/* 8035F5C8 0035B228 40 82 00 14 */ bne lbl_8035F5DC
+/* 8035F5CC 0035B22C 7F 43 D3 78 */ mr r3, r26
+/* 8035F5D0 0035B230 4B FF DE 8D */ bl SBRefStrHash
+/* 8035F5D4 0035B234 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035F5D8 0035B238 4B FD 74 A1 */ bl TableRemove
+lbl_8035F5DC:
+/* 8035F5DC 0035B23C 3B FF 00 01 */ addi r31, r31, 1
+lbl_8035F5E0:
+/* 8035F5E0 0035B240 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8035F5E4 0035B244 4B FD 69 05 */ bl ArrayLength
+/* 8035F5E8 0035B248 7C 1F 18 00 */ cmpw r31, r3
+/* 8035F5EC 0035B24C 41 80 FF A4 */ blt lbl_8035F590
+/* 8035F5F0 0035B250 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8035F5F4 0035B254 4B FD 68 61 */ bl ArrayFree
+/* 8035F5F8 0035B258 92 FA 00 08 */ stw r23, 8(r26)
+lbl_8035F5FC:
+/* 8035F5FC 0035B25C 93 1A 04 84 */ stw r24, 0x484(r26)
+/* 8035F600 0035B260 7F 56 D3 78 */ mr r22, r26
+/* 8035F604 0035B264 3B E0 00 00 */ li r31, 0
+/* 8035F608 0035B268 48 00 00 4C */ b lbl_8035F654
+lbl_8035F60C:
+/* 8035F60C 0035B26C 80 16 00 84 */ lwz r0, 0x84(r22)
+/* 8035F610 0035B270 7F 43 D3 78 */ mr r3, r26
+/* 8035F614 0035B274 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8035F618 0035B278 4B FF DE 45 */ bl SBRefStrHash
+/* 8035F61C 0035B27C 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035F620 0035B280 4B FD 74 FD */ bl TableLookup
+/* 8035F624 0035B284 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F628 0035B288 41 82 00 24 */ beq lbl_8035F64C
+/* 8035F62C 0035B28C 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035F630 0035B290 34 00 FF FF */ addic. r0, r0, -1
+/* 8035F634 0035B294 90 03 00 04 */ stw r0, 4(r3)
+/* 8035F638 0035B298 40 82 00 14 */ bne lbl_8035F64C
+/* 8035F63C 0035B29C 7F 43 D3 78 */ mr r3, r26
+/* 8035F640 0035B2A0 4B FF DE 1D */ bl SBRefStrHash
+/* 8035F644 0035B2A4 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035F648 0035B2A8 4B FD 74 31 */ bl TableRemove
+lbl_8035F64C:
+/* 8035F64C 0035B2AC 3A D6 00 04 */ addi r22, r22, 4
+/* 8035F650 0035B2B0 3B FF 00 01 */ addi r31, r31, 1
+lbl_8035F654:
+/* 8035F654 0035B2B4 80 1A 04 80 */ lwz r0, 0x480(r26)
+/* 8035F658 0035B2B8 7C 1F 00 00 */ cmpw r31, r0
+/* 8035F65C 0035B2BC 41 80 FF B0 */ blt lbl_8035F60C
+/* 8035F660 0035B2C0 92 FA 04 80 */ stw r23, 0x480(r26)
+/* 8035F664 0035B2C4 7F 43 D3 78 */ mr r3, r26
+/* 8035F668 0035B2C8 38 80 00 00 */ li r4, 0
+/* 8035F66C 0035B2CC 38 A0 00 00 */ li r5, 0
+/* 8035F670 0035B2D0 38 C0 00 02 */ li r6, 2
+/* 8035F674 0035B2D4 38 E0 00 00 */ li r7, 0
+/* 8035F678 0035B2D8 48 00 02 09 */ bl SBServerListConnectAndQuery
+/* 8035F67C 0035B2DC 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F680 0035B2E0 7C 7F 1B 78 */ mr r31, r3
+/* 8035F684 0035B2E4 41 82 01 CC */ beq lbl_8035F850
+/* 8035F688 0035B2E8 82 DA 00 80 */ lwz r22, 0x80(r26)
+/* 8035F68C 0035B2EC 2C 16 00 00 */ cmpwi r22, 0
+/* 8035F690 0035B2F0 40 81 00 6C */ ble lbl_8035F6FC
+/* 8035F694 0035B2F4 82 ED 95 0C */ lwz r23, lbl_8063E7CC-_SDA_BASE_(r13)
+/* 8035F698 0035B2F8 7E E3 BB 78 */ mr r3, r23
+/* 8035F69C 0035B2FC 4B E6 74 C9 */ bl strlen
+/* 8035F6A0 0035B300 7C 16 18 40 */ cmplw r22, r3
+/* 8035F6A4 0035B304 40 81 00 58 */ ble lbl_8035F6FC
+/* 8035F6A8 0035B308 83 0D 95 0C */ lwz r24, lbl_8063E7CC-_SDA_BASE_(r13)
+/* 8035F6AC 0035B30C 82 DA 00 7C */ lwz r22, 0x7c(r26)
+/* 8035F6B0 0035B310 7F 03 C3 78 */ mr r3, r24
+/* 8035F6B4 0035B314 4B E6 74 B1 */ bl strlen
+/* 8035F6B8 0035B318 7C 65 1B 78 */ mr r5, r3
+/* 8035F6BC 0035B31C 7E C3 B3 78 */ mr r3, r22
+/* 8035F6C0 0035B320 7F 04 C3 78 */ mr r4, r24
+/* 8035F6C4 0035B324 4B E6 EE A5 */ bl strncmp
+/* 8035F6C8 0035B328 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F6CC 0035B32C 40 82 00 30 */ bne lbl_8035F6FC
+/* 8035F6D0 0035B330 7E E3 BB 78 */ mr r3, r23
+/* 8035F6D4 0035B334 4B E6 74 91 */ bl strlen
+/* 8035F6D8 0035B338 7C 16 1A 14 */ add r0, r22, r3
+/* 8035F6DC 0035B33C 81 9A 04 88 */ lwz r12, 0x488(r26)
+/* 8035F6E0 0035B340 90 1A 06 B0 */ stw r0, 0x6b0(r26)
+/* 8035F6E4 0035B344 7F 43 D3 78 */ mr r3, r26
+/* 8035F6E8 0035B348 80 DA 04 94 */ lwz r6, 0x494(r26)
+/* 8035F6EC 0035B34C 38 80 00 05 */ li r4, 5
+/* 8035F6F0 0035B350 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 8035F6F4 0035B354 7D 89 03 A6 */ mtctr r12
+/* 8035F6F8 0035B358 4E 80 04 21 */ bctrl
+lbl_8035F6FC:
+/* 8035F6FC 0035B35C 81 9A 04 88 */ lwz r12, 0x488(r26)
+/* 8035F700 0035B360 7F 43 D3 78 */ mr r3, r26
+/* 8035F704 0035B364 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 8035F708 0035B368 38 80 00 04 */ li r4, 4
+/* 8035F70C 0035B36C 80 DA 04 94 */ lwz r6, 0x494(r26)
+/* 8035F710 0035B370 7D 89 03 A6 */ mtctr r12
+/* 8035F714 0035B374 4E 80 04 21 */ bctrl
+/* 8035F718 0035B378 80 7A 00 7C */ lwz r3, 0x7c(r26)
+/* 8035F71C 0035B37C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F720 0035B380 41 82 00 08 */ beq lbl_8035F728
+/* 8035F724 0035B384 4B FD 9C 15 */ bl gsifree
+lbl_8035F728:
+/* 8035F728 0035B388 80 7A 06 B4 */ lwz r3, 0x6b4(r26)
+/* 8035F72C 0035B38C 38 00 00 00 */ li r0, 0
+/* 8035F730 0035B390 90 1A 00 7C */ stw r0, 0x7c(r26)
+/* 8035F734 0035B394 2C 03 FF FF */ cmpwi r3, -1
+/* 8035F738 0035B398 90 1A 00 80 */ stw r0, 0x80(r26)
+/* 8035F73C 0035B39C 41 82 00 08 */ beq lbl_8035F744
+/* 8035F740 0035B3A0 4B FD 84 BD */ bl closesocket
+lbl_8035F744:
+/* 8035F744 0035B3A4 80 1A 00 08 */ lwz r0, 8(r26)
+/* 8035F748 0035B3A8 38 80 FF FF */ li r4, -1
+/* 8035F74C 0035B3AC 38 60 00 01 */ li r3, 1
+/* 8035F750 0035B3B0 90 9A 06 B4 */ stw r4, 0x6b4(r26)
+/* 8035F754 0035B3B4 2C 00 00 00 */ cmpwi r0, 0
+/* 8035F758 0035B3B8 90 7A 00 00 */ stw r3, 0(r26)
+/* 8035F75C 0035B3BC 41 82 00 7C */ beq lbl_8035F7D8
+/* 8035F760 0035B3C0 3A E0 00 00 */ li r23, 0
+/* 8035F764 0035B3C4 48 00 00 54 */ b lbl_8035F7B8
+lbl_8035F768:
+/* 8035F768 0035B3C8 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8035F76C 0035B3CC 7E E4 BB 78 */ mr r4, r23
+/* 8035F770 0035B3D0 4B FD 67 81 */ bl ArrayNth
+/* 8035F774 0035B3D4 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035F778 0035B3D8 7F 43 D3 78 */ mr r3, r26
+/* 8035F77C 0035B3DC 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8035F780 0035B3E0 4B FF DC DD */ bl SBRefStrHash
+/* 8035F784 0035B3E4 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035F788 0035B3E8 4B FD 73 95 */ bl TableLookup
+/* 8035F78C 0035B3EC 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F790 0035B3F0 41 82 00 24 */ beq lbl_8035F7B4
+/* 8035F794 0035B3F4 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035F798 0035B3F8 34 00 FF FF */ addic. r0, r0, -1
+/* 8035F79C 0035B3FC 90 03 00 04 */ stw r0, 4(r3)
+/* 8035F7A0 0035B400 40 82 00 14 */ bne lbl_8035F7B4
+/* 8035F7A4 0035B404 7F 43 D3 78 */ mr r3, r26
+/* 8035F7A8 0035B408 4B FF DC B5 */ bl SBRefStrHash
+/* 8035F7AC 0035B40C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035F7B0 0035B410 4B FD 72 C9 */ bl TableRemove
+lbl_8035F7B4:
+/* 8035F7B4 0035B414 3A F7 00 01 */ addi r23, r23, 1
+lbl_8035F7B8:
+/* 8035F7B8 0035B418 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8035F7BC 0035B41C 4B FD 67 2D */ bl ArrayLength
+/* 8035F7C0 0035B420 7C 17 18 00 */ cmpw r23, r3
+/* 8035F7C4 0035B424 41 80 FF A4 */ blt lbl_8035F768
+/* 8035F7C8 0035B428 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8035F7CC 0035B42C 4B FD 66 89 */ bl ArrayFree
+/* 8035F7D0 0035B430 38 00 00 00 */ li r0, 0
+/* 8035F7D4 0035B434 90 1A 00 08 */ stw r0, 8(r26)
+lbl_8035F7D8:
+/* 8035F7D8 0035B438 38 00 FF FF */ li r0, -1
+/* 8035F7DC 0035B43C 7F 58 D3 78 */ mr r24, r26
+/* 8035F7E0 0035B440 90 1A 04 84 */ stw r0, 0x484(r26)
+/* 8035F7E4 0035B444 3A E0 00 00 */ li r23, 0
+/* 8035F7E8 0035B448 48 00 00 4C */ b lbl_8035F834
+lbl_8035F7EC:
+/* 8035F7EC 0035B44C 80 18 00 84 */ lwz r0, 0x84(r24)
+/* 8035F7F0 0035B450 7F 43 D3 78 */ mr r3, r26
+/* 8035F7F4 0035B454 90 01 00 08 */ stw r0, 8(r1)
+/* 8035F7F8 0035B458 4B FF DC 65 */ bl SBRefStrHash
+/* 8035F7FC 0035B45C 38 81 00 08 */ addi r4, r1, 8
+/* 8035F800 0035B460 4B FD 73 1D */ bl TableLookup
+/* 8035F804 0035B464 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F808 0035B468 41 82 00 24 */ beq lbl_8035F82C
+/* 8035F80C 0035B46C 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035F810 0035B470 34 00 FF FF */ addic. r0, r0, -1
+/* 8035F814 0035B474 90 03 00 04 */ stw r0, 4(r3)
+/* 8035F818 0035B478 40 82 00 14 */ bne lbl_8035F82C
+/* 8035F81C 0035B47C 7F 43 D3 78 */ mr r3, r26
+/* 8035F820 0035B480 4B FF DC 3D */ bl SBRefStrHash
+/* 8035F824 0035B484 38 81 00 08 */ addi r4, r1, 8
+/* 8035F828 0035B488 4B FD 72 51 */ bl TableRemove
+lbl_8035F82C:
+/* 8035F82C 0035B48C 3B 18 00 04 */ addi r24, r24, 4
+/* 8035F830 0035B490 3A F7 00 01 */ addi r23, r23, 1
+lbl_8035F834:
+/* 8035F834 0035B494 80 1A 04 80 */ lwz r0, 0x480(r26)
+/* 8035F838 0035B498 7C 17 00 00 */ cmpw r23, r0
+/* 8035F83C 0035B49C 41 80 FF B0 */ blt lbl_8035F7EC
+/* 8035F840 0035B4A0 38 00 00 00 */ li r0, 0
+/* 8035F844 0035B4A4 7F E3 FB 78 */ mr r3, r31
+/* 8035F848 0035B4A8 90 1A 04 80 */ stw r0, 0x480(r26)
+/* 8035F84C 0035B4AC 48 00 00 1C */ b lbl_8035F868
+lbl_8035F850:
+/* 8035F850 0035B4B0 2C 1D 00 00 */ cmpwi r29, 0
+/* 8035F854 0035B4B4 40 80 FC CC */ bge lbl_8035F520
+lbl_8035F858:
+/* 8035F858 0035B4B8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035F85C 0035B4BC 38 60 00 00 */ li r3, 0
+/* 8035F860 0035B4C0 41 81 00 08 */ bgt lbl_8035F868
+/* 8035F864 0035B4C4 38 60 00 03 */ li r3, 3
+lbl_8035F868:
+/* 8035F868 0035B4C8 39 61 00 50 */ addi r11, r1, 0x50
+/* 8035F86C 0035B4CC 4B E6 78 F5 */ bl _restgpr_22
+/* 8035F870 0035B4D0 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8035F874 0035B4D4 7C 08 03 A6 */ mtlr r0
+/* 8035F878 0035B4D8 38 21 00 50 */ addi r1, r1, 0x50
+/* 8035F87C 0035B4DC 4E 80 00 20 */ blr
+
+.global SBServerListConnectAndQuery
+SBServerListConnectAndQuery:
+/* 8035F880 0035B4E0 94 21 FC A0 */ stwu r1, -0x360(r1)
+/* 8035F884 0035B4E4 7C 08 02 A6 */ mflr r0
+/* 8035F888 0035B4E8 90 01 03 64 */ stw r0, 0x364(r1)
+/* 8035F88C 0035B4EC 39 61 03 60 */ addi r11, r1, 0x360
+/* 8035F890 0035B4F0 4B E6 78 89 */ bl _savegpr_23
+/* 8035F894 0035B4F4 2C 04 00 00 */ cmpwi r4, 0
+/* 8035F898 0035B4F8 7C 77 1B 78 */ mr r23, r3
+/* 8035F89C 0035B4FC 7C 98 23 78 */ mr r24, r4
+/* 8035F8A0 0035B500 7C B9 2B 78 */ mr r25, r5
+/* 8035F8A4 0035B504 7C DA 33 78 */ mr r26, r6
+/* 8035F8A8 0035B508 7C FB 3B 78 */ mr r27, r7
+/* 8035F8AC 0035B50C 40 82 00 08 */ bne lbl_8035F8B4
+/* 8035F8B0 0035B510 3B 0D 95 08 */ addi r24, r13, lbl_8063E7C8-_SDA_BASE_
+lbl_8035F8B4:
+/* 8035F8B4 0035B514 2C 05 00 00 */ cmpwi r5, 0
+/* 8035F8B8 0035B518 40 82 00 08 */ bne lbl_8035F8C0
+/* 8035F8BC 0035B51C 3B 2D 95 08 */ addi r25, r13, lbl_8063E7C8-_SDA_BASE_
+lbl_8035F8C0:
+/* 8035F8C0 0035B520 7F 03 C3 78 */ mr r3, r24
+/* 8035F8C4 0035B524 4B E6 72 A1 */ bl strlen
+/* 8035F8C8 0035B528 28 03 01 00 */ cmplwi r3, 0x100
+/* 8035F8CC 0035B52C 40 81 00 0C */ ble lbl_8035F8D8
+/* 8035F8D0 0035B530 38 60 00 06 */ li r3, 6
+/* 8035F8D4 0035B534 48 00 04 94 */ b lbl_8035FD68
+lbl_8035F8D8:
+/* 8035F8D8 0035B538 7F 23 CB 78 */ mr r3, r25
+/* 8035F8DC 0035B53C 4B E6 72 89 */ bl strlen
+/* 8035F8E0 0035B540 28 03 01 00 */ cmplwi r3, 0x100
+/* 8035F8E4 0035B544 40 81 00 0C */ ble lbl_8035F8F0
+/* 8035F8E8 0035B548 38 60 00 06 */ li r3, 6
+/* 8035F8EC 0035B54C 48 00 04 7C */ b lbl_8035FD68
+lbl_8035F8F0:
+/* 8035F8F0 0035B550 7E E3 BB 78 */ mr r3, r23
+/* 8035F8F4 0035B554 4B FF FA 71 */ bl ServerListConnect
+/* 8035F8F8 0035B558 2C 03 00 00 */ cmpwi r3, 0
+/* 8035F8FC 0035B55C 41 82 00 08 */ beq lbl_8035F904
+/* 8035F900 0035B560 48 00 04 68 */ b lbl_8035FD68
+lbl_8035F904:
+/* 8035F904 0035B564 93 57 07 C8 */ stw r26, 0x7c8(r23)
+/* 8035F908 0035B568 4B E6 D4 35 */ bl rand
+/* 8035F90C 0035B56C 3C 80 2C 0B */ lis r4, 0x2C0B02C1@ha
+/* 8035F910 0035B570 3B C0 00 00 */ li r30, 0
+/* 8035F914 0035B574 3B E4 02 C1 */ addi r31, r4, 0x2C0B02C1@l
+/* 8035F918 0035B578 3B A0 00 01 */ li r29, 1
+/* 8035F91C 0035B57C 7C 1F 18 96 */ mulhw r0, r31, r3
+/* 8035F920 0035B580 7C 00 26 70 */ srawi r0, r0, 4
+/* 8035F924 0035B584 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 8035F928 0035B588 7C 00 22 14 */ add r0, r0, r4
+/* 8035F92C 0035B58C 1C 00 00 5D */ mulli r0, r0, 0x5d
+/* 8035F930 0035B590 7C 60 18 50 */ subf r3, r0, r3
+/* 8035F934 0035B594 38 03 00 21 */ addi r0, r3, 0x21
+/* 8035F938 0035B598 98 17 00 74 */ stb r0, 0x74(r23)
+lbl_8035F93C:
+/* 8035F93C 0035B59C 88 17 00 74 */ lbz r0, 0x74(r23)
+/* 8035F940 0035B5A0 7F 97 EA 14 */ add r28, r23, r29
+/* 8035F944 0035B5A4 88 7C 00 73 */ lbz r3, 0x73(r28)
+/* 8035F948 0035B5A8 7C 08 07 74 */ extsb r8, r0
+/* 8035F94C 0035B5AC 54 05 07 FE */ clrlwi r5, r0, 0x1f
+/* 8035F950 0035B5B0 7C 60 07 74 */ extsb r0, r3
+/* 8035F954 0035B5B4 7D 06 02 78 */ xor r6, r8, r0
+/* 8035F958 0035B5B8 69 03 00 4F */ xori r3, r8, 0x4f
+/* 8035F95C 0035B5BC 7F A4 02 78 */ xor r4, r29, r0
+/* 8035F960 0035B5C0 7C A5 F2 78 */ xor r5, r5, r30
+/* 8035F964 0035B5C4 7C C7 0E 70 */ srawi r7, r6, 1
+/* 8035F968 0035B5C8 70 60 00 4F */ andi. r0, r3, 0x4f
+/* 8035F96C 0035B5CC 7C 63 0E 70 */ srawi r3, r3, 1
+/* 8035F970 0035B5D0 7C C6 40 38 */ and r6, r6, r8
+/* 8035F974 0035B5D4 54 84 07 FE */ clrlwi r4, r4, 0x1f
+/* 8035F978 0035B5D8 7C 00 18 50 */ subf r0, r0, r3
+/* 8035F97C 0035B5DC 7C C6 38 50 */ subf r6, r6, r7
+/* 8035F980 0035B5E0 7C A3 22 78 */ xor r3, r5, r4
+/* 8035F984 0035B5E4 54 00 0F FE */ srwi r0, r0, 0x1f
+/* 8035F988 0035B5E8 54 C4 0F FE */ srwi r4, r6, 0x1f
+/* 8035F98C 0035B5EC 7C 60 02 78 */ xor r0, r3, r0
+/* 8035F990 0035B5F0 7C 1E 22 78 */ xor r30, r0, r4
+/* 8035F994 0035B5F4 4B E6 D3 A9 */ bl rand
+/* 8035F998 0035B5F8 7C 1F 18 96 */ mulhw r0, r31, r3
+/* 8035F99C 0035B5FC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035F9A0 0035B600 7C 00 26 70 */ srawi r0, r0, 4
+/* 8035F9A4 0035B604 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 8035F9A8 0035B608 7C 00 22 14 */ add r0, r0, r4
+/* 8035F9AC 0035B60C 1C 00 00 5D */ mulli r0, r0, 0x5d
+/* 8035F9B0 0035B610 7C 60 18 50 */ subf r3, r0, r3
+/* 8035F9B4 0035B614 38 03 00 21 */ addi r0, r3, 0x21
+/* 8035F9B8 0035B618 98 1C 00 74 */ stb r0, 0x74(r28)
+/* 8035F9BC 0035B61C 41 82 00 10 */ beq lbl_8035F9CC
+/* 8035F9C0 0035B620 88 1C 00 74 */ lbz r0, 0x74(r28)
+/* 8035F9C4 0035B624 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 8035F9C8 0035B628 41 82 00 1C */ beq lbl_8035F9E4
+lbl_8035F9CC:
+/* 8035F9CC 0035B62C 2C 1E 00 00 */ cmpwi r30, 0
+/* 8035F9D0 0035B630 40 82 00 20 */ bne lbl_8035F9F0
+/* 8035F9D4 0035B634 88 1C 00 74 */ lbz r0, 0x74(r28)
+/* 8035F9D8 0035B638 54 00 07 FE */ clrlwi r0, r0, 0x1f
+/* 8035F9DC 0035B63C 2C 00 00 01 */ cmpwi r0, 1
+/* 8035F9E0 0035B640 40 82 00 10 */ bne lbl_8035F9F0
+lbl_8035F9E4:
+/* 8035F9E4 0035B644 88 7C 00 74 */ lbz r3, 0x74(r28)
+/* 8035F9E8 0035B648 38 03 00 01 */ addi r0, r3, 1
+/* 8035F9EC 0035B64C 98 1C 00 74 */ stb r0, 0x74(r28)
+lbl_8035F9F0:
+/* 8035F9F0 0035B650 3B BD 00 01 */ addi r29, r29, 1
+/* 8035F9F4 0035B654 2C 1D 00 08 */ cmpwi r29, 8
+/* 8035F9F8 0035B658 41 80 FF 44 */ blt lbl_8035F93C
+/* 8035F9FC 0035B65C 38 80 00 00 */ li r4, 0
+/* 8035FA00 0035B660 38 60 00 01 */ li r3, 1
+/* 8035FA04 0035B664 38 00 00 03 */ li r0, 3
+/* 8035FA08 0035B668 98 81 00 32 */ stb r4, 0x32(r1)
+/* 8035FA0C 0035B66C 98 61 00 33 */ stb r3, 0x33(r1)
+/* 8035FA10 0035B670 98 01 00 34 */ stb r0, 0x34(r1)
+/* 8035FA14 0035B674 80 77 06 BC */ lwz r3, 0x6bc(r23)
+/* 8035FA18 0035B678 4B F9 73 61 */ bl SOHtoNl
+/* 8035FA1C 0035B67C 54 65 42 1E */ rlwinm r5, r3, 8, 8, 0xf
+/* 8035FA20 0035B680 54 64 C4 2E */ rlwinm r4, r3, 0x18, 0x10, 0x17
+/* 8035FA24 0035B684 50 65 C0 0E */ rlwimi r5, r3, 0x18, 0, 7
+/* 8035FA28 0035B688 54 60 46 3E */ srwi r0, r3, 0x18
+/* 8035FA2C 0035B68C 7C A5 23 78 */ or r5, r5, r4
+/* 8035FA30 0035B690 38 61 00 35 */ addi r3, r1, 0x35
+/* 8035FA34 0035B694 7C A5 03 78 */ or r5, r5, r0
+/* 8035FA38 0035B698 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035FA3C 0035B69C 90 A1 00 18 */ stw r5, 0x18(r1)
+/* 8035FA40 0035B6A0 38 A0 00 04 */ li r5, 4
+/* 8035FA44 0035B6A4 4B CA 45 BD */ bl memcpy
+/* 8035FA48 0035B6A8 37 97 00 0C */ addic. r28, r23, 0xc
+/* 8035FA4C 0035B6AC 3B A1 00 39 */ addi r29, r1, 0x39
+/* 8035FA50 0035B6B0 40 82 00 08 */ bne lbl_8035FA58
+/* 8035FA54 0035B6B4 3B 8D 95 08 */ addi r28, r13, lbl_8063E7C8-_SDA_BASE_
+lbl_8035FA58:
+/* 8035FA58 0035B6B8 7F 83 E3 78 */ mr r3, r28
+/* 8035FA5C 0035B6BC 4B E6 71 09 */ bl strlen
+/* 8035FA60 0035B6C0 3B C3 00 01 */ addi r30, r3, 1
+/* 8035FA64 0035B6C4 7F A3 EB 78 */ mr r3, r29
+/* 8035FA68 0035B6C8 7F 84 E3 78 */ mr r4, r28
+/* 8035FA6C 0035B6CC 7F C5 F3 78 */ mr r5, r30
+/* 8035FA70 0035B6D0 4B CA 45 91 */ bl memcpy
+/* 8035FA74 0035B6D4 37 F7 00 30 */ addic. r31, r23, 0x30
+/* 8035FA78 0035B6D8 3B 9E 00 09 */ addi r28, r30, 9
+/* 8035FA7C 0035B6DC 7F BD F2 14 */ add r29, r29, r30
+/* 8035FA80 0035B6E0 40 82 00 08 */ bne lbl_8035FA88
+/* 8035FA84 0035B6E4 3B ED 95 08 */ addi r31, r13, lbl_8063E7C8-_SDA_BASE_
+lbl_8035FA88:
+/* 8035FA88 0035B6E8 7F E3 FB 78 */ mr r3, r31
+/* 8035FA8C 0035B6EC 4B E6 70 D9 */ bl strlen
+/* 8035FA90 0035B6F0 3B C3 00 01 */ addi r30, r3, 1
+/* 8035FA94 0035B6F4 7F A3 EB 78 */ mr r3, r29
+/* 8035FA98 0035B6F8 7F E4 FB 78 */ mr r4, r31
+/* 8035FA9C 0035B6FC 7F C5 F3 78 */ mr r5, r30
+/* 8035FAA0 0035B700 4B CA 45 61 */ bl memcpy
+/* 8035FAA4 0035B704 7F BD F2 14 */ add r29, r29, r30
+/* 8035FAA8 0035B708 7F 9C F2 14 */ add r28, r28, r30
+/* 8035FAAC 0035B70C 7F A3 EB 78 */ mr r3, r29
+/* 8035FAB0 0035B710 38 97 00 74 */ addi r4, r23, 0x74
+/* 8035FAB4 0035B714 38 A0 00 08 */ li r5, 8
+/* 8035FAB8 0035B718 4B CA 45 49 */ bl memcpy
+/* 8035FABC 0035B71C 2C 19 00 00 */ cmpwi r25, 0
+/* 8035FAC0 0035B720 3B 9C 00 08 */ addi r28, r28, 8
+/* 8035FAC4 0035B724 3B BD 00 08 */ addi r29, r29, 8
+/* 8035FAC8 0035B728 40 82 00 08 */ bne lbl_8035FAD0
+/* 8035FACC 0035B72C 3B 2D 95 08 */ addi r25, r13, lbl_8063E7C8-_SDA_BASE_
+lbl_8035FAD0:
+/* 8035FAD0 0035B730 7F 23 CB 78 */ mr r3, r25
+/* 8035FAD4 0035B734 4B E6 70 91 */ bl strlen
+/* 8035FAD8 0035B738 3B C3 00 01 */ addi r30, r3, 1
+/* 8035FADC 0035B73C 7F A3 EB 78 */ mr r3, r29
+/* 8035FAE0 0035B740 7F 24 CB 78 */ mr r4, r25
+/* 8035FAE4 0035B744 7F C5 F3 78 */ mr r5, r30
+/* 8035FAE8 0035B748 4B CA 45 19 */ bl memcpy
+/* 8035FAEC 0035B74C 2C 18 00 00 */ cmpwi r24, 0
+/* 8035FAF0 0035B750 7F 9C F2 14 */ add r28, r28, r30
+/* 8035FAF4 0035B754 7F BD F2 14 */ add r29, r29, r30
+/* 8035FAF8 0035B758 40 82 00 08 */ bne lbl_8035FB00
+/* 8035FAFC 0035B75C 3B 0D 95 08 */ addi r24, r13, lbl_8063E7C8-_SDA_BASE_
+lbl_8035FB00:
+/* 8035FB00 0035B760 7F 03 C3 78 */ mr r3, r24
+/* 8035FB04 0035B764 4B E6 70 61 */ bl strlen
+/* 8035FB08 0035B768 3B 23 00 01 */ addi r25, r3, 1
+/* 8035FB0C 0035B76C 7F A3 EB 78 */ mr r3, r29
+/* 8035FB10 0035B770 7F 04 C3 78 */ mr r4, r24
+/* 8035FB14 0035B774 7F 25 CB 78 */ mr r5, r25
+/* 8035FB18 0035B778 4B CA 44 E9 */ bl memcpy
+/* 8035FB1C 0035B77C 7F 43 D3 78 */ mr r3, r26
+/* 8035FB20 0035B780 7F 9C CA 14 */ add r28, r28, r25
+/* 8035FB24 0035B784 7F BD CA 14 */ add r29, r29, r25
+/* 8035FB28 0035B788 4B F9 72 51 */ bl SOHtoNl
+/* 8035FB2C 0035B78C 90 61 00 14 */ stw r3, 0x14(r1)
+/* 8035FB30 0035B790 7F A3 EB 78 */ mr r3, r29
+/* 8035FB34 0035B794 38 81 00 14 */ addi r4, r1, 0x14
+/* 8035FB38 0035B798 38 A0 00 04 */ li r5, 4
+/* 8035FB3C 0035B79C 4B CA 44 C5 */ bl memcpy
+/* 8035FB40 0035B7A0 80 17 07 C8 */ lwz r0, 0x7c8(r23)
+/* 8035FB44 0035B7A4 3B 9C 00 04 */ addi r28, r28, 4
+/* 8035FB48 0035B7A8 3B BD 00 04 */ addi r29, r29, 4
+/* 8035FB4C 0035B7AC 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
+/* 8035FB50 0035B7B0 41 82 00 24 */ beq lbl_8035FB74
+/* 8035FB54 0035B7B4 80 17 06 A8 */ lwz r0, 0x6a8(r23)
+/* 8035FB58 0035B7B8 7F A3 EB 78 */ mr r3, r29
+/* 8035FB5C 0035B7BC 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035FB60 0035B7C0 38 A0 00 04 */ li r5, 4
+/* 8035FB64 0035B7C4 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8035FB68 0035B7C8 4B CA 44 99 */ bl memcpy
+/* 8035FB6C 0035B7CC 3B 9C 00 04 */ addi r28, r28, 4
+/* 8035FB70 0035B7D0 3B BD 00 04 */ addi r29, r29, 4
+lbl_8035FB74:
+/* 8035FB74 0035B7D4 80 17 07 C8 */ lwz r0, 0x7c8(r23)
+/* 8035FB78 0035B7D8 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
+/* 8035FB7C 0035B7DC 41 82 00 3C */ beq lbl_8035FBB8
+/* 8035FB80 0035B7E0 7F 63 DB 78 */ mr r3, r27
+/* 8035FB84 0035B7E4 4B F9 71 F5 */ bl SOHtoNl
+/* 8035FB88 0035B7E8 54 65 42 1E */ rlwinm r5, r3, 8, 8, 0xf
+/* 8035FB8C 0035B7EC 54 64 C4 2E */ rlwinm r4, r3, 0x18, 0x10, 0x17
+/* 8035FB90 0035B7F0 50 65 C0 0E */ rlwimi r5, r3, 0x18, 0, 7
+/* 8035FB94 0035B7F4 54 60 46 3E */ srwi r0, r3, 0x18
+/* 8035FB98 0035B7F8 7C A5 23 78 */ or r5, r5, r4
+/* 8035FB9C 0035B7FC 7F A3 EB 78 */ mr r3, r29
+/* 8035FBA0 0035B800 7C A5 03 78 */ or r5, r5, r0
+/* 8035FBA4 0035B804 38 81 00 0C */ addi r4, r1, 0xc
+/* 8035FBA8 0035B808 90 A1 00 0C */ stw r5, 0xc(r1)
+/* 8035FBAC 0035B80C 38 A0 00 04 */ li r5, 4
+/* 8035FBB0 0035B810 4B CA 44 51 */ bl memcpy
+/* 8035FBB4 0035B814 3B 9C 00 04 */ addi r28, r28, 4
+lbl_8035FBB8:
+/* 8035FBB8 0035B818 57 83 04 3E */ clrlwi r3, r28, 0x10
+/* 8035FBBC 0035B81C 4B F9 71 C1 */ bl SOHtoNs
+/* 8035FBC0 0035B820 B0 61 00 08 */ sth r3, 8(r1)
+/* 8035FBC4 0035B824 38 61 00 30 */ addi r3, r1, 0x30
+/* 8035FBC8 0035B828 38 81 00 08 */ addi r4, r1, 8
+/* 8035FBCC 0035B82C 38 A0 00 02 */ li r5, 2
+/* 8035FBD0 0035B830 4B CA 44 31 */ bl memcpy
+/* 8035FBD4 0035B834 80 77 06 B4 */ lwz r3, 0x6b4(r23)
+/* 8035FBD8 0035B838 7F 85 E3 78 */ mr r5, r28
+/* 8035FBDC 0035B83C 38 81 00 30 */ addi r4, r1, 0x30
+/* 8035FBE0 0035B840 38 C0 00 00 */ li r6, 0
+/* 8035FBE4 0035B844 4B FD 82 7D */ bl send
+/* 8035FBE8 0035B848 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FBEC 0035B84C 41 81 01 3C */ bgt lbl_8035FD28
+/* 8035FBF0 0035B850 80 77 00 7C */ lwz r3, 0x7c(r23)
+/* 8035FBF4 0035B854 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FBF8 0035B858 41 82 00 08 */ beq lbl_8035FC00
+/* 8035FBFC 0035B85C 4B FD 97 3D */ bl gsifree
+lbl_8035FC00:
+/* 8035FC00 0035B860 80 77 06 B4 */ lwz r3, 0x6b4(r23)
+/* 8035FC04 0035B864 38 00 00 00 */ li r0, 0
+/* 8035FC08 0035B868 90 17 00 7C */ stw r0, 0x7c(r23)
+/* 8035FC0C 0035B86C 2C 03 FF FF */ cmpwi r3, -1
+/* 8035FC10 0035B870 90 17 00 80 */ stw r0, 0x80(r23)
+/* 8035FC14 0035B874 41 82 00 08 */ beq lbl_8035FC1C
+/* 8035FC18 0035B878 4B FD 7F E5 */ bl closesocket
+lbl_8035FC1C:
+/* 8035FC1C 0035B87C 80 17 00 08 */ lwz r0, 8(r23)
+/* 8035FC20 0035B880 38 80 FF FF */ li r4, -1
+/* 8035FC24 0035B884 38 60 00 01 */ li r3, 1
+/* 8035FC28 0035B888 90 97 06 B4 */ stw r4, 0x6b4(r23)
+/* 8035FC2C 0035B88C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035FC30 0035B890 90 77 00 00 */ stw r3, 0(r23)
+/* 8035FC34 0035B894 41 82 00 7C */ beq lbl_8035FCB0
+/* 8035FC38 0035B898 3B 00 00 00 */ li r24, 0
+/* 8035FC3C 0035B89C 48 00 00 54 */ b lbl_8035FC90
+lbl_8035FC40:
+/* 8035FC40 0035B8A0 80 77 00 08 */ lwz r3, 8(r23)
+/* 8035FC44 0035B8A4 7F 04 C3 78 */ mr r4, r24
+/* 8035FC48 0035B8A8 4B FD 62 A9 */ bl ArrayNth
+/* 8035FC4C 0035B8AC 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035FC50 0035B8B0 7E E3 BB 78 */ mr r3, r23
+/* 8035FC54 0035B8B4 90 01 00 20 */ stw r0, 0x20(r1)
+/* 8035FC58 0035B8B8 4B FF D8 05 */ bl SBRefStrHash
+/* 8035FC5C 0035B8BC 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035FC60 0035B8C0 4B FD 6E BD */ bl TableLookup
+/* 8035FC64 0035B8C4 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FC68 0035B8C8 41 82 00 24 */ beq lbl_8035FC8C
+/* 8035FC6C 0035B8CC 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035FC70 0035B8D0 34 00 FF FF */ addic. r0, r0, -1
+/* 8035FC74 0035B8D4 90 03 00 04 */ stw r0, 4(r3)
+/* 8035FC78 0035B8D8 40 82 00 14 */ bne lbl_8035FC8C
+/* 8035FC7C 0035B8DC 7E E3 BB 78 */ mr r3, r23
+/* 8035FC80 0035B8E0 4B FF D7 DD */ bl SBRefStrHash
+/* 8035FC84 0035B8E4 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035FC88 0035B8E8 4B FD 6D F1 */ bl TableRemove
+lbl_8035FC8C:
+/* 8035FC8C 0035B8EC 3B 18 00 01 */ addi r24, r24, 1
+lbl_8035FC90:
+/* 8035FC90 0035B8F0 80 77 00 08 */ lwz r3, 8(r23)
+/* 8035FC94 0035B8F4 4B FD 62 55 */ bl ArrayLength
+/* 8035FC98 0035B8F8 7C 18 18 00 */ cmpw r24, r3
+/* 8035FC9C 0035B8FC 41 80 FF A4 */ blt lbl_8035FC40
+/* 8035FCA0 0035B900 80 77 00 08 */ lwz r3, 8(r23)
+/* 8035FCA4 0035B904 4B FD 61 B1 */ bl ArrayFree
+/* 8035FCA8 0035B908 38 00 00 00 */ li r0, 0
+/* 8035FCAC 0035B90C 90 17 00 08 */ stw r0, 8(r23)
+lbl_8035FCB0:
+/* 8035FCB0 0035B910 38 00 FF FF */ li r0, -1
+/* 8035FCB4 0035B914 7E F9 BB 78 */ mr r25, r23
+/* 8035FCB8 0035B918 90 17 04 84 */ stw r0, 0x484(r23)
+/* 8035FCBC 0035B91C 3B 00 00 00 */ li r24, 0
+/* 8035FCC0 0035B920 48 00 00 4C */ b lbl_8035FD0C
+lbl_8035FCC4:
+/* 8035FCC4 0035B924 80 19 00 84 */ lwz r0, 0x84(r25)
+/* 8035FCC8 0035B928 7E E3 BB 78 */ mr r3, r23
+/* 8035FCCC 0035B92C 90 01 00 28 */ stw r0, 0x28(r1)
+/* 8035FCD0 0035B930 4B FF D7 8D */ bl SBRefStrHash
+/* 8035FCD4 0035B934 38 81 00 28 */ addi r4, r1, 0x28
+/* 8035FCD8 0035B938 4B FD 6E 45 */ bl TableLookup
+/* 8035FCDC 0035B93C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FCE0 0035B940 41 82 00 24 */ beq lbl_8035FD04
+/* 8035FCE4 0035B944 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035FCE8 0035B948 34 00 FF FF */ addic. r0, r0, -1
+/* 8035FCEC 0035B94C 90 03 00 04 */ stw r0, 4(r3)
+/* 8035FCF0 0035B950 40 82 00 14 */ bne lbl_8035FD04
+/* 8035FCF4 0035B954 7E E3 BB 78 */ mr r3, r23
+/* 8035FCF8 0035B958 4B FF D7 65 */ bl SBRefStrHash
+/* 8035FCFC 0035B95C 38 81 00 28 */ addi r4, r1, 0x28
+/* 8035FD00 0035B960 4B FD 6D 79 */ bl TableRemove
+lbl_8035FD04:
+/* 8035FD04 0035B964 3B 39 00 04 */ addi r25, r25, 4
+/* 8035FD08 0035B968 3B 18 00 01 */ addi r24, r24, 1
+lbl_8035FD0C:
+/* 8035FD0C 0035B96C 80 17 04 80 */ lwz r0, 0x480(r23)
+/* 8035FD10 0035B970 7C 18 00 00 */ cmpw r24, r0
+/* 8035FD14 0035B974 41 80 FF B0 */ blt lbl_8035FCC4
+/* 8035FD18 0035B978 38 00 00 00 */ li r0, 0
+/* 8035FD1C 0035B97C 38 60 00 03 */ li r3, 3
+/* 8035FD20 0035B980 90 17 04 80 */ stw r0, 0x480(r23)
+/* 8035FD24 0035B984 48 00 00 44 */ b lbl_8035FD68
+lbl_8035FD28:
+/* 8035FD28 0035B988 80 17 00 7C */ lwz r0, 0x7c(r23)
+/* 8035FD2C 0035B98C 38 60 00 03 */ li r3, 3
+/* 8035FD30 0035B990 3B 00 00 00 */ li r24, 0
+/* 8035FD34 0035B994 90 77 00 00 */ stw r3, 0(r23)
+/* 8035FD38 0035B998 2C 00 00 00 */ cmpwi r0, 0
+/* 8035FD3C 0035B99C 93 17 07 CC */ stw r24, 0x7cc(r23)
+/* 8035FD40 0035B9A0 40 82 00 24 */ bne lbl_8035FD64
+/* 8035FD44 0035B9A4 38 60 10 00 */ li r3, 0x1000
+/* 8035FD48 0035B9A8 4B FD 95 CD */ bl gsimalloc
+/* 8035FD4C 0035B9AC 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FD50 0035B9B0 90 77 00 7C */ stw r3, 0x7c(r23)
+/* 8035FD54 0035B9B4 40 82 00 0C */ bne lbl_8035FD60
+/* 8035FD58 0035B9B8 38 60 00 05 */ li r3, 5
+/* 8035FD5C 0035B9BC 48 00 00 0C */ b lbl_8035FD68
+lbl_8035FD60:
+/* 8035FD60 0035B9C0 93 17 00 80 */ stw r24, 0x80(r23)
+lbl_8035FD64:
+/* 8035FD64 0035B9C4 38 60 00 00 */ li r3, 0
+lbl_8035FD68:
+/* 8035FD68 0035B9C8 39 61 03 60 */ addi r11, r1, 0x360
+/* 8035FD6C 0035B9CC 4B E6 73 F9 */ bl _restgpr_23
+/* 8035FD70 0035B9D0 80 01 03 64 */ lwz r0, 0x364(r1)
+/* 8035FD74 0035B9D4 7C 08 03 A6 */ mtlr r0
+/* 8035FD78 0035B9D8 38 21 03 60 */ addi r1, r1, 0x360
+/* 8035FD7C 0035B9DC 4E 80 00 20 */ blr
+
+.global func_8035FD80
+func_8035FD80:
+/* 8035FD80 0035B9E0 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 8035FD84 0035B9E4 7C 08 02 A6 */ mflr r0
+/* 8035FD88 0035B9E8 90 01 00 54 */ stw r0, 0x54(r1)
+/* 8035FD8C 0035B9EC 39 61 00 50 */ addi r11, r1, 0x50
+/* 8035FD90 0035B9F0 4B E6 73 95 */ bl _savegpr_26
+/* 8035FD94 0035B9F4 89 42 A5 00 */ lbz r10, lbl_80642B00-_SDA2_BASE_(r2)
+/* 8035FD98 0035B9F8 7C 9D 23 78 */ mr r29, r4
+/* 8035FD9C 0035B9FC 89 22 A5 01 */ lbz r9, lbl_80642B01-_SDA2_BASE_(r2)
+/* 8035FDA0 0035BA00 7C BE 2B 78 */ mr r30, r5
+/* 8035FDA4 0035BA04 89 02 A5 02 */ lbz r8, lbl_80642B02-_SDA2_BASE_(r2)
+/* 8035FDA8 0035BA08 7C DF 33 78 */ mr r31, r6
+/* 8035FDAC 0035BA0C 88 E2 A5 03 */ lbz r7, lbl_80642B03-_SDA2_BASE_(r2)
+/* 8035FDB0 0035BA10 7C 7C 1B 78 */ mr r28, r3
+/* 8035FDB4 0035BA14 88 C2 A5 04 */ lbz r6, lbl_80642B04-_SDA2_BASE_(r2)
+/* 8035FDB8 0035BA18 88 A2 A5 05 */ lbz r5, lbl_80642B05-_SDA2_BASE_(r2)
+/* 8035FDBC 0035BA1C 88 82 A5 06 */ lbz r4, lbl_80642B06-_SDA2_BASE_(r2)
+/* 8035FDC0 0035BA20 88 02 A5 07 */ lbz r0, lbl_80642B07-_SDA2_BASE_(r2)
+/* 8035FDC4 0035BA24 99 41 00 20 */ stb r10, 0x20(r1)
+/* 8035FDC8 0035BA28 99 21 00 21 */ stb r9, 0x21(r1)
+/* 8035FDCC 0035BA2C 99 01 00 22 */ stb r8, 0x22(r1)
+/* 8035FDD0 0035BA30 98 E1 00 23 */ stb r7, 0x23(r1)
+/* 8035FDD4 0035BA34 98 C1 00 24 */ stb r6, 0x24(r1)
+/* 8035FDD8 0035BA38 98 A1 00 25 */ stb r5, 0x25(r1)
+/* 8035FDDC 0035BA3C 98 81 00 26 */ stb r4, 0x26(r1)
+/* 8035FDE0 0035BA40 98 01 00 27 */ stb r0, 0x27(r1)
+/* 8035FDE4 0035BA44 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035FDE8 0035BA48 2C 00 00 01 */ cmpwi r0, 1
+/* 8035FDEC 0035BA4C 41 82 01 34 */ beq lbl_8035FF20
+/* 8035FDF0 0035BA50 80 63 00 7C */ lwz r3, 0x7c(r3)
+/* 8035FDF4 0035BA54 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FDF8 0035BA58 41 82 00 08 */ beq lbl_8035FE00
+/* 8035FDFC 0035BA5C 4B FD 95 3D */ bl gsifree
+lbl_8035FE00:
+/* 8035FE00 0035BA60 80 7C 06 B4 */ lwz r3, 0x6b4(r28)
+/* 8035FE04 0035BA64 38 00 00 00 */ li r0, 0
+/* 8035FE08 0035BA68 90 1C 00 7C */ stw r0, 0x7c(r28)
+/* 8035FE0C 0035BA6C 2C 03 FF FF */ cmpwi r3, -1
+/* 8035FE10 0035BA70 90 1C 00 80 */ stw r0, 0x80(r28)
+/* 8035FE14 0035BA74 41 82 00 08 */ beq lbl_8035FE1C
+/* 8035FE18 0035BA78 4B FD 7D E5 */ bl closesocket
+lbl_8035FE1C:
+/* 8035FE1C 0035BA7C 80 1C 00 08 */ lwz r0, 8(r28)
+/* 8035FE20 0035BA80 38 80 FF FF */ li r4, -1
+/* 8035FE24 0035BA84 38 60 00 01 */ li r3, 1
+/* 8035FE28 0035BA88 90 9C 06 B4 */ stw r4, 0x6b4(r28)
+/* 8035FE2C 0035BA8C 2C 00 00 00 */ cmpwi r0, 0
+/* 8035FE30 0035BA90 90 7C 00 00 */ stw r3, 0(r28)
+/* 8035FE34 0035BA94 41 82 00 7C */ beq lbl_8035FEB0
+/* 8035FE38 0035BA98 3B 60 00 00 */ li r27, 0
+/* 8035FE3C 0035BA9C 48 00 00 54 */ b lbl_8035FE90
+lbl_8035FE40:
+/* 8035FE40 0035BAA0 80 7C 00 08 */ lwz r3, 8(r28)
+/* 8035FE44 0035BAA4 7F 64 DB 78 */ mr r4, r27
+/* 8035FE48 0035BAA8 4B FD 60 A9 */ bl ArrayNth
+/* 8035FE4C 0035BAAC 80 03 00 00 */ lwz r0, 0(r3)
+/* 8035FE50 0035BAB0 7F 83 E3 78 */ mr r3, r28
+/* 8035FE54 0035BAB4 90 01 00 08 */ stw r0, 8(r1)
+/* 8035FE58 0035BAB8 4B FF D6 05 */ bl SBRefStrHash
+/* 8035FE5C 0035BABC 38 81 00 08 */ addi r4, r1, 8
+/* 8035FE60 0035BAC0 4B FD 6C BD */ bl TableLookup
+/* 8035FE64 0035BAC4 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FE68 0035BAC8 41 82 00 24 */ beq lbl_8035FE8C
+/* 8035FE6C 0035BACC 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035FE70 0035BAD0 34 00 FF FF */ addic. r0, r0, -1
+/* 8035FE74 0035BAD4 90 03 00 04 */ stw r0, 4(r3)
+/* 8035FE78 0035BAD8 40 82 00 14 */ bne lbl_8035FE8C
+/* 8035FE7C 0035BADC 7F 83 E3 78 */ mr r3, r28
+/* 8035FE80 0035BAE0 4B FF D5 DD */ bl SBRefStrHash
+/* 8035FE84 0035BAE4 38 81 00 08 */ addi r4, r1, 8
+/* 8035FE88 0035BAE8 4B FD 6B F1 */ bl TableRemove
+lbl_8035FE8C:
+/* 8035FE8C 0035BAEC 3B 7B 00 01 */ addi r27, r27, 1
+lbl_8035FE90:
+/* 8035FE90 0035BAF0 80 7C 00 08 */ lwz r3, 8(r28)
+/* 8035FE94 0035BAF4 4B FD 60 55 */ bl ArrayLength
+/* 8035FE98 0035BAF8 7C 1B 18 00 */ cmpw r27, r3
+/* 8035FE9C 0035BAFC 41 80 FF A4 */ blt lbl_8035FE40
+/* 8035FEA0 0035BB00 80 7C 00 08 */ lwz r3, 8(r28)
+/* 8035FEA4 0035BB04 4B FD 5F B1 */ bl ArrayFree
+/* 8035FEA8 0035BB08 38 00 00 00 */ li r0, 0
+/* 8035FEAC 0035BB0C 90 1C 00 08 */ stw r0, 8(r28)
+lbl_8035FEB0:
+/* 8035FEB0 0035BB10 38 00 FF FF */ li r0, -1
+/* 8035FEB4 0035BB14 7F 9A E3 78 */ mr r26, r28
+/* 8035FEB8 0035BB18 90 1C 04 84 */ stw r0, 0x484(r28)
+/* 8035FEBC 0035BB1C 3B 60 00 00 */ li r27, 0
+/* 8035FEC0 0035BB20 48 00 00 4C */ b lbl_8035FF0C
+lbl_8035FEC4:
+/* 8035FEC4 0035BB24 80 1A 00 84 */ lwz r0, 0x84(r26)
+/* 8035FEC8 0035BB28 7F 83 E3 78 */ mr r3, r28
+/* 8035FECC 0035BB2C 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8035FED0 0035BB30 4B FF D5 8D */ bl SBRefStrHash
+/* 8035FED4 0035BB34 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035FED8 0035BB38 4B FD 6C 45 */ bl TableLookup
+/* 8035FEDC 0035BB3C 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FEE0 0035BB40 41 82 00 24 */ beq lbl_8035FF04
+/* 8035FEE4 0035BB44 80 03 00 04 */ lwz r0, 4(r3)
+/* 8035FEE8 0035BB48 34 00 FF FF */ addic. r0, r0, -1
+/* 8035FEEC 0035BB4C 90 03 00 04 */ stw r0, 4(r3)
+/* 8035FEF0 0035BB50 40 82 00 14 */ bne lbl_8035FF04
+/* 8035FEF4 0035BB54 7F 83 E3 78 */ mr r3, r28
+/* 8035FEF8 0035BB58 4B FF D5 65 */ bl SBRefStrHash
+/* 8035FEFC 0035BB5C 38 81 00 10 */ addi r4, r1, 0x10
+/* 8035FF00 0035BB60 4B FD 6B 79 */ bl TableRemove
+lbl_8035FF04:
+/* 8035FF04 0035BB64 3B 5A 00 04 */ addi r26, r26, 4
+/* 8035FF08 0035BB68 3B 7B 00 01 */ addi r27, r27, 1
+lbl_8035FF0C:
+/* 8035FF0C 0035BB6C 80 1C 04 80 */ lwz r0, 0x480(r28)
+/* 8035FF10 0035BB70 7C 1B 00 00 */ cmpw r27, r0
+/* 8035FF14 0035BB74 41 80 FF B0 */ blt lbl_8035FEC4
+/* 8035FF18 0035BB78 38 00 00 00 */ li r0, 0
+/* 8035FF1C 0035BB7C 90 1C 04 80 */ stw r0, 0x480(r28)
+lbl_8035FF20:
+/* 8035FF20 0035BB80 38 60 00 02 */ li r3, 2
+/* 8035FF24 0035BB84 38 80 00 02 */ li r4, 2
+/* 8035FF28 0035BB88 38 A0 00 11 */ li r5, 0x11
+/* 8035FF2C 0035BB8C 4B FD 7C 99 */ bl socket
+/* 8035FF30 0035BB90 2C 03 FF FF */ cmpwi r3, -1
+/* 8035FF34 0035BB94 90 7C 06 B4 */ stw r3, 0x6b4(r28)
+/* 8035FF38 0035BB98 40 82 00 0C */ bne lbl_8035FF44
+/* 8035FF3C 0035BB9C 38 60 00 01 */ li r3, 1
+/* 8035FF40 0035BBA0 48 00 00 EC */ b lbl_8036002C
+lbl_8035FF44:
+/* 8035FF44 0035BBA4 38 60 00 02 */ li r3, 2
+/* 8035FF48 0035BBA8 38 00 FF FF */ li r0, -1
+/* 8035FF4C 0035BBAC 98 61 00 29 */ stb r3, 0x29(r1)
+/* 8035FF50 0035BBB0 90 01 00 2C */ stw r0, 0x2c(r1)
+/* 8035FF54 0035BBB4 80 1C 07 D4 */ lwz r0, 0x7d4(r28)
+/* 8035FF58 0035BBB8 2C 00 00 00 */ cmpwi r0, 0
+/* 8035FF5C 0035BBBC 41 82 00 3C */ beq lbl_8035FF98
+/* 8035FF60 0035BBC0 98 61 00 19 */ stb r3, 0x19(r1)
+/* 8035FF64 0035BBC4 80 7C 07 D4 */ lwz r3, 0x7d4(r28)
+/* 8035FF68 0035BBC8 4B FD 80 09 */ bl inet_addr
+/* 8035FF6C 0035BBCC 38 00 00 00 */ li r0, 0
+/* 8035FF70 0035BBD0 90 61 00 1C */ stw r3, 0x1c(r1)
+/* 8035FF74 0035BBD4 38 81 00 18 */ addi r4, r1, 0x18
+/* 8035FF78 0035BBD8 38 A0 00 08 */ li r5, 8
+/* 8035FF7C 0035BBDC B0 01 00 1A */ sth r0, 0x1a(r1)
+/* 8035FF80 0035BBE0 80 7C 06 B4 */ lwz r3, 0x6b4(r28)
+/* 8035FF84 0035BBE4 4B FD 7C E1 */ bl bind
+/* 8035FF88 0035BBE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8035FF8C 0035BBEC 41 82 00 0C */ beq lbl_8035FF98
+/* 8035FF90 0035BBF0 38 60 00 01 */ li r3, 1
+/* 8035FF94 0035BBF4 48 00 00 98 */ b lbl_8036002C
+lbl_8035FF98:
+/* 8035FF98 0035BBF8 7C 1D F0 50 */ subf r0, r29, r30
+/* 8035FF9C 0035BBFC 2C 00 01 F4 */ cmpwi r0, 0x1f4
+/* 8035FFA0 0035BC00 40 81 00 0C */ ble lbl_8035FFAC
+/* 8035FFA4 0035BC04 38 1D 01 F4 */ addi r0, r29, 0x1f4
+/* 8035FFA8 0035BC08 54 1E 04 3E */ clrlwi r30, r0, 0x10
+lbl_8035FFAC:
+/* 8035FFAC 0035BC0C 3F 60 80 45 */ lis r27, 0x8045
+/* 8035FFB0 0035BC10 48 00 00 5C */ b lbl_8036000C
+lbl_8035FFB4:
+/* 8035FFB4 0035BC14 57 A3 04 3E */ clrlwi r3, r29, 0x10
+/* 8035FFB8 0035BC18 4B F9 6D C5 */ bl SOHtoNs
+/* 8035FFBC 0035BC1C 2C 1F 00 01 */ cmpwi r31, 1
+/* 8035FFC0 0035BC20 B0 61 00 2A */ sth r3, 0x2a(r1)
+/* 8035FFC4 0035BC24 40 82 00 24 */ bne lbl_8035FFE8
+/* 8035FFC8 0035BC28 80 7C 06 B4 */ lwz r3, 0x6b4(r28)
+/* 8035FFCC 0035BC2C 38 81 00 20 */ addi r4, r1, 0x20
+/* 8035FFD0 0035BC30 38 E1 00 28 */ addi r7, r1, 0x28
+/* 8035FFD4 0035BC34 38 A0 00 08 */ li r5, 8
+/* 8035FFD8 0035BC38 38 C0 00 00 */ li r6, 0
+/* 8035FFDC 0035BC3C 39 00 00 08 */ li r8, 8
+/* 8035FFE0 0035BC40 4B FD 7E B5 */ bl sendto
+/* 8035FFE4 0035BC44 48 00 00 20 */ b lbl_80360004
+lbl_8035FFE8:
+/* 8035FFE8 0035BC48 80 7C 06 B4 */ lwz r3, 0x6b4(r28)
+/* 8035FFEC 0035BC4C 38 9B C6 3C */ addi r4, r27, -14788
+/* 8035FFF0 0035BC50 38 E1 00 28 */ addi r7, r1, 0x28
+/* 8035FFF4 0035BC54 38 A0 00 0A */ li r5, 0xa
+/* 8035FFF8 0035BC58 38 C0 00 00 */ li r6, 0
+/* 8035FFFC 0035BC5C 39 00 00 08 */ li r8, 8
+/* 80360000 0035BC60 4B FD 7E 95 */ bl sendto
+lbl_80360004:
+/* 80360004 0035BC64 38 1D 00 01 */ addi r0, r29, 1
+/* 80360008 0035BC68 54 1D 04 3E */ clrlwi r29, r0, 0x10
+lbl_8036000C:
+/* 8036000C 0035BC6C 57 A0 04 3E */ clrlwi r0, r29, 0x10
+/* 80360010 0035BC70 7C 00 F0 40 */ cmplw r0, r30
+/* 80360014 0035BC74 40 81 FF A0 */ ble lbl_8035FFB4
+/* 80360018 0035BC78 38 00 00 00 */ li r0, 0
+/* 8036001C 0035BC7C 90 1C 00 00 */ stw r0, 0(r28)
+/* 80360020 0035BC80 4B FD 8F B9 */ bl current_time
+/* 80360024 0035BC84 90 7C 06 B8 */ stw r3, 0x6b8(r28)
+/* 80360028 0035BC88 38 60 00 00 */ li r3, 0
+lbl_8036002C:
+/* 8036002C 0035BC8C 39 61 00 50 */ addi r11, r1, 0x50
+/* 80360030 0035BC90 4B E6 71 41 */ bl _restgpr_26
+/* 80360034 0035BC94 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 80360038 0035BC98 7C 08 03 A6 */ mtlr r0
+/* 8036003C 0035BC9C 38 21 00 50 */ addi r1, r1, 0x50
+/* 80360040 0035BCA0 4E 80 00 20 */ blr
+
+.global SBServerListDisconnect
+SBServerListDisconnect:
+/* 80360044 0035BCA4 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80360048 0035BCA8 7C 08 02 A6 */ mflr r0
+/* 8036004C 0035BCAC 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80360050 0035BCB0 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80360054 0035BCB4 7C 7F 1B 78 */ mr r31, r3
+/* 80360058 0035BCB8 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 8036005C 0035BCBC 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80360060 0035BCC0 80 03 00 7C */ lwz r0, 0x7c(r3)
+/* 80360064 0035BCC4 2C 00 00 00 */ cmpwi r0, 0
+/* 80360068 0035BCC8 41 82 00 0C */ beq lbl_80360074
+/* 8036006C 0035BCCC 7C 03 03 78 */ mr r3, r0
+/* 80360070 0035BCD0 4B FD 92 C9 */ bl gsifree
+lbl_80360074:
+/* 80360074 0035BCD4 80 7F 06 B4 */ lwz r3, 0x6b4(r31)
+/* 80360078 0035BCD8 38 00 00 00 */ li r0, 0
+/* 8036007C 0035BCDC 90 1F 00 7C */ stw r0, 0x7c(r31)
+/* 80360080 0035BCE0 2C 03 FF FF */ cmpwi r3, -1
+/* 80360084 0035BCE4 90 1F 00 80 */ stw r0, 0x80(r31)
+/* 80360088 0035BCE8 41 82 00 08 */ beq lbl_80360090
+/* 8036008C 0035BCEC 4B FD 7B 71 */ bl closesocket
+lbl_80360090:
+/* 80360090 0035BCF0 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80360094 0035BCF4 38 80 FF FF */ li r4, -1
+/* 80360098 0035BCF8 38 60 00 01 */ li r3, 1
+/* 8036009C 0035BCFC 90 9F 06 B4 */ stw r4, 0x6b4(r31)
+/* 803600A0 0035BD00 2C 00 00 00 */ cmpwi r0, 0
+/* 803600A4 0035BD04 90 7F 00 00 */ stw r3, 0(r31)
+/* 803600A8 0035BD08 41 82 00 7C */ beq lbl_80360124
+/* 803600AC 0035BD0C 3B C0 00 00 */ li r30, 0
+/* 803600B0 0035BD10 48 00 00 54 */ b lbl_80360104
+lbl_803600B4:
+/* 803600B4 0035BD14 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803600B8 0035BD18 7F C4 F3 78 */ mr r4, r30
+/* 803600BC 0035BD1C 4B FD 5E 35 */ bl ArrayNth
+/* 803600C0 0035BD20 80 03 00 00 */ lwz r0, 0(r3)
+/* 803600C4 0035BD24 7F E3 FB 78 */ mr r3, r31
+/* 803600C8 0035BD28 90 01 00 10 */ stw r0, 0x10(r1)
+/* 803600CC 0035BD2C 4B FF D3 91 */ bl SBRefStrHash
+/* 803600D0 0035BD30 38 81 00 10 */ addi r4, r1, 0x10
+/* 803600D4 0035BD34 4B FD 6A 49 */ bl TableLookup
+/* 803600D8 0035BD38 2C 03 00 00 */ cmpwi r3, 0
+/* 803600DC 0035BD3C 41 82 00 24 */ beq lbl_80360100
+/* 803600E0 0035BD40 80 03 00 04 */ lwz r0, 4(r3)
+/* 803600E4 0035BD44 34 00 FF FF */ addic. r0, r0, -1
+/* 803600E8 0035BD48 90 03 00 04 */ stw r0, 4(r3)
+/* 803600EC 0035BD4C 40 82 00 14 */ bne lbl_80360100
+/* 803600F0 0035BD50 7F E3 FB 78 */ mr r3, r31
+/* 803600F4 0035BD54 4B FF D3 69 */ bl SBRefStrHash
+/* 803600F8 0035BD58 38 81 00 10 */ addi r4, r1, 0x10
+/* 803600FC 0035BD5C 4B FD 69 7D */ bl TableRemove
+lbl_80360100:
+/* 80360100 0035BD60 3B DE 00 01 */ addi r30, r30, 1
+lbl_80360104:
+/* 80360104 0035BD64 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80360108 0035BD68 4B FD 5D E1 */ bl ArrayLength
+/* 8036010C 0035BD6C 7C 1E 18 00 */ cmpw r30, r3
+/* 80360110 0035BD70 41 80 FF A4 */ blt lbl_803600B4
+/* 80360114 0035BD74 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80360118 0035BD78 4B FD 5D 3D */ bl ArrayFree
+/* 8036011C 0035BD7C 38 00 00 00 */ li r0, 0
+/* 80360120 0035BD80 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80360124:
+/* 80360124 0035BD84 38 00 FF FF */ li r0, -1
+/* 80360128 0035BD88 7F FD FB 78 */ mr r29, r31
+/* 8036012C 0035BD8C 90 1F 04 84 */ stw r0, 0x484(r31)
+/* 80360130 0035BD90 3B C0 00 00 */ li r30, 0
+/* 80360134 0035BD94 48 00 00 4C */ b lbl_80360180
+lbl_80360138:
+/* 80360138 0035BD98 80 1D 00 84 */ lwz r0, 0x84(r29)
+/* 8036013C 0035BD9C 7F E3 FB 78 */ mr r3, r31
+/* 80360140 0035BDA0 90 01 00 08 */ stw r0, 8(r1)
+/* 80360144 0035BDA4 4B FF D3 19 */ bl SBRefStrHash
+/* 80360148 0035BDA8 38 81 00 08 */ addi r4, r1, 8
+/* 8036014C 0035BDAC 4B FD 69 D1 */ bl TableLookup
+/* 80360150 0035BDB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80360154 0035BDB4 41 82 00 24 */ beq lbl_80360178
+/* 80360158 0035BDB8 80 03 00 04 */ lwz r0, 4(r3)
+/* 8036015C 0035BDBC 34 00 FF FF */ addic. r0, r0, -1
+/* 80360160 0035BDC0 90 03 00 04 */ stw r0, 4(r3)
+/* 80360164 0035BDC4 40 82 00 14 */ bne lbl_80360178
+/* 80360168 0035BDC8 7F E3 FB 78 */ mr r3, r31
+/* 8036016C 0035BDCC 4B FF D2 F1 */ bl SBRefStrHash
+/* 80360170 0035BDD0 38 81 00 08 */ addi r4, r1, 8
+/* 80360174 0035BDD4 4B FD 69 05 */ bl TableRemove
+lbl_80360178:
+/* 80360178 0035BDD8 3B BD 00 04 */ addi r29, r29, 4
+/* 8036017C 0035BDDC 3B DE 00 01 */ addi r30, r30, 1
+lbl_80360180:
+/* 80360180 0035BDE0 80 1F 04 80 */ lwz r0, 0x480(r31)
+/* 80360184 0035BDE4 7C 1E 00 00 */ cmpw r30, r0
+/* 80360188 0035BDE8 41 80 FF B0 */ blt lbl_80360138
+/* 8036018C 0035BDEC 38 00 00 00 */ li r0, 0
+/* 80360190 0035BDF0 90 1F 04 80 */ stw r0, 0x480(r31)
+/* 80360194 0035BDF4 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 80360198 0035BDF8 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 8036019C 0035BDFC 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 803601A0 0035BE00 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803601A4 0035BE04 7C 08 03 A6 */ mtlr r0
+/* 803601A8 0035BE08 38 21 00 30 */ addi r1, r1, 0x30
+/* 803601AC 0035BE0C 4E 80 00 20 */ blr
+
+.global SBServerListCleanup
+SBServerListCleanup:
+/* 803601B0 0035BE10 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803601B4 0035BE14 7C 08 02 A6 */ mflr r0
+/* 803601B8 0035BE18 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803601BC 0035BE1C 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 803601C0 0035BE20 7C 7F 1B 78 */ mr r31, r3
+/* 803601C4 0035BE24 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 803601C8 0035BE28 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 803601CC 0035BE2C 93 81 00 20 */ stw r28, 0x20(r1)
+/* 803601D0 0035BE30 80 03 00 7C */ lwz r0, 0x7c(r3)
+/* 803601D4 0035BE34 2C 00 00 00 */ cmpwi r0, 0
+/* 803601D8 0035BE38 41 82 00 0C */ beq lbl_803601E4
+/* 803601DC 0035BE3C 7C 03 03 78 */ mr r3, r0
+/* 803601E0 0035BE40 4B FD 91 59 */ bl gsifree
+lbl_803601E4:
+/* 803601E4 0035BE44 80 7F 06 B4 */ lwz r3, 0x6b4(r31)
+/* 803601E8 0035BE48 38 00 00 00 */ li r0, 0
+/* 803601EC 0035BE4C 90 1F 00 7C */ stw r0, 0x7c(r31)
+/* 803601F0 0035BE50 2C 03 FF FF */ cmpwi r3, -1
+/* 803601F4 0035BE54 90 1F 00 80 */ stw r0, 0x80(r31)
+/* 803601F8 0035BE58 41 82 00 08 */ beq lbl_80360200
+/* 803601FC 0035BE5C 4B FD 7A 01 */ bl closesocket
+lbl_80360200:
+/* 80360200 0035BE60 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80360204 0035BE64 38 80 FF FF */ li r4, -1
+/* 80360208 0035BE68 38 60 00 01 */ li r3, 1
+/* 8036020C 0035BE6C 90 9F 06 B4 */ stw r4, 0x6b4(r31)
+/* 80360210 0035BE70 2C 00 00 00 */ cmpwi r0, 0
+/* 80360214 0035BE74 90 7F 00 00 */ stw r3, 0(r31)
+/* 80360218 0035BE78 41 82 00 7C */ beq lbl_80360294
+/* 8036021C 0035BE7C 3B C0 00 00 */ li r30, 0
+/* 80360220 0035BE80 48 00 00 54 */ b lbl_80360274
+lbl_80360224:
+/* 80360224 0035BE84 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80360228 0035BE88 7F C4 F3 78 */ mr r4, r30
+/* 8036022C 0035BE8C 4B FD 5C C5 */ bl ArrayNth
+/* 80360230 0035BE90 80 03 00 00 */ lwz r0, 0(r3)
+/* 80360234 0035BE94 7F E3 FB 78 */ mr r3, r31
+/* 80360238 0035BE98 90 01 00 10 */ stw r0, 0x10(r1)
+/* 8036023C 0035BE9C 4B FF D2 21 */ bl SBRefStrHash
+/* 80360240 0035BEA0 38 81 00 10 */ addi r4, r1, 0x10
+/* 80360244 0035BEA4 4B FD 68 D9 */ bl TableLookup
+/* 80360248 0035BEA8 2C 03 00 00 */ cmpwi r3, 0
+/* 8036024C 0035BEAC 41 82 00 24 */ beq lbl_80360270
+/* 80360250 0035BEB0 80 03 00 04 */ lwz r0, 4(r3)
+/* 80360254 0035BEB4 34 00 FF FF */ addic. r0, r0, -1
+/* 80360258 0035BEB8 90 03 00 04 */ stw r0, 4(r3)
+/* 8036025C 0035BEBC 40 82 00 14 */ bne lbl_80360270
+/* 80360260 0035BEC0 7F E3 FB 78 */ mr r3, r31
+/* 80360264 0035BEC4 4B FF D1 F9 */ bl SBRefStrHash
+/* 80360268 0035BEC8 38 81 00 10 */ addi r4, r1, 0x10
+/* 8036026C 0035BECC 4B FD 68 0D */ bl TableRemove
+lbl_80360270:
+/* 80360270 0035BED0 3B DE 00 01 */ addi r30, r30, 1
+lbl_80360274:
+/* 80360274 0035BED4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80360278 0035BED8 4B FD 5C 71 */ bl ArrayLength
+/* 8036027C 0035BEDC 7C 1E 18 00 */ cmpw r30, r3
+/* 80360280 0035BEE0 41 80 FF A4 */ blt lbl_80360224
+/* 80360284 0035BEE4 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80360288 0035BEE8 4B FD 5B CD */ bl ArrayFree
+/* 8036028C 0035BEEC 38 00 00 00 */ li r0, 0
+/* 80360290 0035BEF0 90 1F 00 08 */ stw r0, 8(r31)
+lbl_80360294:
+/* 80360294 0035BEF4 38 00 FF FF */ li r0, -1
+/* 80360298 0035BEF8 7F FC FB 78 */ mr r28, r31
+/* 8036029C 0035BEFC 90 1F 04 84 */ stw r0, 0x484(r31)
+/* 803602A0 0035BF00 3B C0 00 00 */ li r30, 0
+/* 803602A4 0035BF04 48 00 00 4C */ b lbl_803602F0
+lbl_803602A8:
+/* 803602A8 0035BF08 80 1C 00 84 */ lwz r0, 0x84(r28)
+/* 803602AC 0035BF0C 7F E3 FB 78 */ mr r3, r31
+/* 803602B0 0035BF10 90 01 00 18 */ stw r0, 0x18(r1)
+/* 803602B4 0035BF14 4B FF D1 A9 */ bl SBRefStrHash
+/* 803602B8 0035BF18 38 81 00 18 */ addi r4, r1, 0x18
+/* 803602BC 0035BF1C 4B FD 68 61 */ bl TableLookup
+/* 803602C0 0035BF20 2C 03 00 00 */ cmpwi r3, 0
+/* 803602C4 0035BF24 41 82 00 24 */ beq lbl_803602E8
+/* 803602C8 0035BF28 80 03 00 04 */ lwz r0, 4(r3)
+/* 803602CC 0035BF2C 34 00 FF FF */ addic. r0, r0, -1
+/* 803602D0 0035BF30 90 03 00 04 */ stw r0, 4(r3)
+/* 803602D4 0035BF34 40 82 00 14 */ bne lbl_803602E8
+/* 803602D8 0035BF38 7F E3 FB 78 */ mr r3, r31
+/* 803602DC 0035BF3C 4B FF D1 81 */ bl SBRefStrHash
+/* 803602E0 0035BF40 38 81 00 18 */ addi r4, r1, 0x18
+/* 803602E4 0035BF44 4B FD 67 95 */ bl TableRemove
+lbl_803602E8:
+/* 803602E8 0035BF48 3B 9C 00 04 */ addi r28, r28, 4
+/* 803602EC 0035BF4C 3B DE 00 01 */ addi r30, r30, 1
+lbl_803602F0:
+/* 803602F0 0035BF50 80 1F 04 80 */ lwz r0, 0x480(r31)
+/* 803602F4 0035BF54 7C 1E 00 00 */ cmpw r30, r0
+/* 803602F8 0035BF58 41 80 FF B0 */ blt lbl_803602A8
+/* 803602FC 0035BF5C 38 00 00 00 */ li r0, 0
+/* 80360300 0035BF60 80 7F 00 04 */ lwz r3, 4(r31)
+/* 80360304 0035BF64 90 1F 04 80 */ stw r0, 0x480(r31)
+/* 80360308 0035BF68 4B FD 5B E1 */ bl ArrayLength
+/* 8036030C 0035BF6C 7C 7E 1B 78 */ mr r30, r3
+/* 80360310 0035BF70 3B 80 00 00 */ li r28, 0
+/* 80360314 0035BF74 48 00 00 40 */ b lbl_80360354
+lbl_80360318:
+/* 80360318 0035BF78 80 7F 00 04 */ lwz r3, 4(r31)
+/* 8036031C 0035BF7C 7F 84 E3 78 */ mr r4, r28
+/* 80360320 0035BF80 4B FD 5B D1 */ bl ArrayNth
+/* 80360324 0035BF84 80 9F 07 D8 */ lwz r4, 0x7d8(r31)
+/* 80360328 0035BF88 83 A3 00 00 */ lwz r29, 0(r3)
+/* 8036032C 0035BF8C 2C 04 00 00 */ cmpwi r4, 0
+/* 80360330 0035BF90 40 82 00 14 */ bne lbl_80360344
+/* 80360334 0035BF94 7F A3 EB 78 */ mr r3, r29
+/* 80360338 0035BF98 38 80 00 00 */ li r4, 0
+/* 8036033C 0035BF9C 4B FF D5 49 */ bl SBServerSetNext
+/* 80360340 0035BFA0 48 00 00 0C */ b lbl_8036034C
+lbl_80360344:
+/* 80360344 0035BFA4 7F A3 EB 78 */ mr r3, r29
+/* 80360348 0035BFA8 4B FF D5 3D */ bl SBServerSetNext
+lbl_8036034C:
+/* 8036034C 0035BFAC 93 BF 07 D8 */ stw r29, 0x7d8(r31)
+/* 80360350 0035BFB0 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80360354:
+/* 80360354 0035BFB4 7C 1C F0 00 */ cmpw r28, r30
+/* 80360358 0035BFB8 41 80 FF C0 */ blt lbl_80360318
+/* 8036035C 0035BFBC 80 7F 00 04 */ lwz r3, 4(r31)
+/* 80360360 0035BFC0 4B FD 63 A9 */ bl ArrayClear
+/* 80360364 0035BFC4 83 9F 07 D8 */ lwz r28, 0x7d8(r31)
+/* 80360368 0035BFC8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8036036C 0035BFCC 41 82 00 34 */ beq lbl_803603A0
+/* 80360370 0035BFD0 93 81 00 08 */ stw r28, 8(r1)
+/* 80360374 0035BFD4 48 00 00 18 */ b lbl_8036038C
+lbl_80360378:
+/* 80360378 0035BFD8 4B FF D5 15 */ bl SBServerGetNext
+/* 8036037C 0035BFDC 7C 7C 1B 78 */ mr r28, r3
+/* 80360380 0035BFE0 38 61 00 08 */ addi r3, r1, 8
+/* 80360384 0035BFE4 4B FF D1 75 */ bl SBServerFree
+/* 80360388 0035BFE8 93 81 00 08 */ stw r28, 8(r1)
+lbl_8036038C:
+/* 8036038C 0035BFEC 2C 1C 00 00 */ cmpwi r28, 0
+/* 80360390 0035BFF0 7F 83 E3 78 */ mr r3, r28
+/* 80360394 0035BFF4 40 82 FF E4 */ bne lbl_80360378
+/* 80360398 0035BFF8 38 00 00 00 */ li r0, 0
+/* 8036039C 0035BFFC 90 1F 07 D8 */ stw r0, 0x7d8(r31)
+lbl_803603A0:
+/* 803603A0 0035C000 7F E3 FB 78 */ mr r3, r31
+/* 803603A4 0035C004 4B FF D1 11 */ bl SBRefStrHashCleanup
+/* 803603A8 0035C008 80 7F 00 04 */ lwz r3, 4(r31)
+/* 803603AC 0035C00C 2C 03 00 00 */ cmpwi r3, 0
+/* 803603B0 0035C010 41 82 00 08 */ beq lbl_803603B8
+/* 803603B4 0035C014 4B FD 5A A1 */ bl ArrayFree
+lbl_803603B8:
+/* 803603B8 0035C018 38 00 00 00 */ li r0, 0
+/* 803603BC 0035C01C 90 1F 00 04 */ stw r0, 4(r31)
+/* 803603C0 0035C020 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 803603C4 0035C024 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 803603C8 0035C028 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 803603CC 0035C02C 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 803603D0 0035C030 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803603D4 0035C034 7C 08 03 A6 */ mtlr r0
+/* 803603D8 0035C038 38 21 00 30 */ addi r1, r1, 0x30
+/* 803603DC 0035C03C 4E 80 00 20 */ blr
+
+.global FullRulesPresent
+FullRulesPresent:
+/* 803603E0 0035C040 48 00 00 A0 */ b lbl_80360480
+lbl_803603E4:
+/* 803603E4 0035C044 7C 65 1B 78 */ mr r5, r3
+/* 803603E8 0035C048 38 C0 00 00 */ li r6, 0
+/* 803603EC 0035C04C 7C 89 03 A6 */ mtctr r4
+/* 803603F0 0035C050 2C 04 00 00 */ cmpwi r4, 0
+/* 803603F4 0035C054 40 81 00 24 */ ble lbl_80360418
+lbl_803603F8:
+/* 803603F8 0035C058 88 05 00 00 */ lbz r0, 0(r5)
+/* 803603FC 0035C05C 7C 00 07 75 */ extsb. r0, r0
+/* 80360400 0035C060 40 82 00 0C */ bne lbl_8036040C
+/* 80360404 0035C064 38 06 00 01 */ addi r0, r6, 1
+/* 80360408 0035C068 48 00 00 14 */ b lbl_8036041C
+lbl_8036040C:
+/* 8036040C 0035C06C 38 C6 00 01 */ addi r6, r6, 1
+/* 80360410 0035C070 38 A5 00 01 */ addi r5, r5, 1
+/* 80360414 0035C074 42 00 FF E4 */ bdnz lbl_803603F8
+lbl_80360418:
+/* 80360418 0035C078 38 00 FF FF */ li r0, -1
+lbl_8036041C:
+/* 8036041C 0035C07C 2C 00 00 00 */ cmpwi r0, 0
+/* 80360420 0035C080 40 80 00 0C */ bge lbl_8036042C
+/* 80360424 0035C084 38 60 00 00 */ li r3, 0
+/* 80360428 0035C088 4E 80 00 20 */ blr
+lbl_8036042C:
+/* 8036042C 0035C08C 7C 80 20 51 */ subf. r4, r0, r4
+/* 80360430 0035C090 7C 63 02 14 */ add r3, r3, r0
+/* 80360434 0035C094 7C 65 1B 78 */ mr r5, r3
+/* 80360438 0035C098 38 C0 00 00 */ li r6, 0
+/* 8036043C 0035C09C 7C 89 03 A6 */ mtctr r4
+/* 80360440 0035C0A0 40 81 00 24 */ ble lbl_80360464
+lbl_80360444:
+/* 80360444 0035C0A4 88 05 00 00 */ lbz r0, 0(r5)
+/* 80360448 0035C0A8 7C 00 07 75 */ extsb. r0, r0
+/* 8036044C 0035C0AC 40 82 00 0C */ bne lbl_80360458
+/* 80360450 0035C0B0 38 06 00 01 */ addi r0, r6, 1
+/* 80360454 0035C0B4 48 00 00 14 */ b lbl_80360468
+lbl_80360458:
+/* 80360458 0035C0B8 38 C6 00 01 */ addi r6, r6, 1
+/* 8036045C 0035C0BC 38 A5 00 01 */ addi r5, r5, 1
+/* 80360460 0035C0C0 42 00 FF E4 */ bdnz lbl_80360444
+lbl_80360464:
+/* 80360464 0035C0C4 38 00 FF FF */ li r0, -1
+lbl_80360468:
+/* 80360468 0035C0C8 2C 00 00 00 */ cmpwi r0, 0
+/* 8036046C 0035C0CC 40 80 00 0C */ bge lbl_80360478
+/* 80360470 0035C0D0 38 60 00 00 */ li r3, 0
+/* 80360474 0035C0D4 4E 80 00 20 */ blr
+lbl_80360478:
+/* 80360478 0035C0D8 7C 63 02 14 */ add r3, r3, r0
+/* 8036047C 0035C0DC 7C 80 20 50 */ subf r4, r0, r4
+lbl_80360480:
+/* 80360480 0035C0E0 2C 04 00 00 */ cmpwi r4, 0
+/* 80360484 0035C0E4 40 81 00 10 */ ble lbl_80360494
+/* 80360488 0035C0E8 88 03 00 00 */ lbz r0, 0(r3)
+/* 8036048C 0035C0EC 7C 00 07 75 */ extsb. r0, r0
+/* 80360490 0035C0F0 40 82 FF 54 */ bne lbl_803603E4
+lbl_80360494:
+/* 80360494 0035C0F4 2C 04 00 00 */ cmpwi r4, 0
+/* 80360498 0035C0F8 40 82 00 0C */ bne lbl_803604A4
+/* 8036049C 0035C0FC 38 60 00 00 */ li r3, 0
+/* 803604A0 0035C100 4E 80 00 20 */ blr
+lbl_803604A4:
+/* 803604A4 0035C104 88 03 00 00 */ lbz r0, 0(r3)
+/* 803604A8 0035C108 7C 00 07 74 */ extsb r0, r0
+/* 803604AC 0035C10C 7C 00 00 34 */ cntlzw r0, r0
+/* 803604B0 0035C110 54 03 D9 7E */ srwi r3, r0, 5
+/* 803604B4 0035C114 4E 80 00 20 */ blr
+
+.global AllKeysPresent
+AllKeysPresent:
+/* 803604B8 0035C118 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 803604BC 0035C11C 7C 08 02 A6 */ mflr r0
+/* 803604C0 0035C120 90 01 00 24 */ stw r0, 0x24(r1)
+/* 803604C4 0035C124 39 61 00 20 */ addi r11, r1, 0x20
+/* 803604C8 0035C128 4B E6 6C 61 */ bl _savegpr_27
+/* 803604CC 0035C12C 7C 7B 1B 78 */ mr r27, r3
+/* 803604D0 0035C130 80 63 00 08 */ lwz r3, 8(r3)
+/* 803604D4 0035C134 7C 9C 23 78 */ mr r28, r4
+/* 803604D8 0035C138 7C BD 2B 78 */ mr r29, r5
+/* 803604DC 0035C13C 4B FD 5A 0D */ bl ArrayLength
+/* 803604E0 0035C140 7C 7F 1B 78 */ mr r31, r3
+/* 803604E4 0035C144 3B C0 00 00 */ li r30, 0
+/* 803604E8 0035C148 48 00 00 E4 */ b lbl_803605CC
+lbl_803604EC:
+/* 803604EC 0035C14C 80 7B 00 08 */ lwz r3, 8(r27)
+/* 803604F0 0035C150 7F C4 F3 78 */ mr r4, r30
+/* 803604F4 0035C154 4B FD 59 FD */ bl ArrayNth
+/* 803604F8 0035C158 80 03 00 04 */ lwz r0, 4(r3)
+/* 803604FC 0035C15C 2C 00 00 01 */ cmpwi r0, 1
+/* 80360500 0035C160 41 82 00 20 */ beq lbl_80360520
+/* 80360504 0035C164 40 80 00 10 */ bge lbl_80360514
+/* 80360508 0035C168 2C 00 00 00 */ cmpwi r0, 0
+/* 8036050C 0035C16C 40 80 00 2C */ bge lbl_80360538
+/* 80360510 0035C170 48 00 00 A0 */ b lbl_803605B0
+lbl_80360514:
+/* 80360514 0035C174 2C 00 00 03 */ cmpwi r0, 3
+/* 80360518 0035C178 40 80 00 98 */ bge lbl_803605B0
+/* 8036051C 0035C17C 48 00 00 10 */ b lbl_8036052C
+lbl_80360520:
+/* 80360520 0035C180 3B 9C 00 01 */ addi r28, r28, 1
+/* 80360524 0035C184 3B BD FF FF */ addi r29, r29, -1
+/* 80360528 0035C188 48 00 00 90 */ b lbl_803605B8
+lbl_8036052C:
+/* 8036052C 0035C18C 3B 9C 00 02 */ addi r28, r28, 2
+/* 80360530 0035C190 3B BD FF FE */ addi r29, r29, -2
+/* 80360534 0035C194 48 00 00 84 */ b lbl_803605B8
+lbl_80360538:
+/* 80360538 0035C198 2C 1D 00 01 */ cmpwi r29, 1
+/* 8036053C 0035C19C 40 80 00 0C */ bge lbl_80360548
+/* 80360540 0035C1A0 38 60 00 00 */ li r3, 0
+/* 80360544 0035C1A4 48 00 00 94 */ b lbl_803605D8
+lbl_80360548:
+/* 80360548 0035C1A8 88 1C 00 00 */ lbz r0, 0(r28)
+/* 8036054C 0035C1AC 3B 9C 00 01 */ addi r28, r28, 1
+/* 80360550 0035C1B0 3B BD FF FF */ addi r29, r29, -1
+/* 80360554 0035C1B4 2C 00 00 FF */ cmpwi r0, 0xff
+/* 80360558 0035C1B8 40 82 00 60 */ bne lbl_803605B8
+/* 8036055C 0035C1BC 7F 83 E3 78 */ mr r3, r28
+/* 80360560 0035C1C0 38 80 00 00 */ li r4, 0
+/* 80360564 0035C1C4 7F A9 03 A6 */ mtctr r29
+/* 80360568 0035C1C8 2C 1D 00 00 */ cmpwi r29, 0
+/* 8036056C 0035C1CC 40 81 00 24 */ ble lbl_80360590
+lbl_80360570:
+/* 80360570 0035C1D0 88 03 00 00 */ lbz r0, 0(r3)
+/* 80360574 0035C1D4 7C 00 07 75 */ extsb. r0, r0
+/* 80360578 0035C1D8 40 82 00 0C */ bne lbl_80360584
+/* 8036057C 0035C1DC 38 04 00 01 */ addi r0, r4, 1
+/* 80360580 0035C1E0 48 00 00 14 */ b lbl_80360594
+lbl_80360584:
+/* 80360584 0035C1E4 38 84 00 01 */ addi r4, r4, 1
+/* 80360588 0035C1E8 38 63 00 01 */ addi r3, r3, 1
+/* 8036058C 0035C1EC 42 00 FF E4 */ bdnz lbl_80360570
+lbl_80360590:
+/* 80360590 0035C1F0 38 00 FF FF */ li r0, -1
+lbl_80360594:
+/* 80360594 0035C1F4 2C 00 FF FF */ cmpwi r0, -1
+/* 80360598 0035C1F8 40 82 00 0C */ bne lbl_803605A4
+/* 8036059C 0035C1FC 38 60 00 00 */ li r3, 0
+/* 803605A0 0035C200 48 00 00 38 */ b lbl_803605D8
+lbl_803605A4:
+/* 803605A4 0035C204 7F 9C 02 14 */ add r28, r28, r0
+/* 803605A8 0035C208 7F A0 E8 50 */ subf r29, r0, r29
+/* 803605AC 0035C20C 48 00 00 0C */ b lbl_803605B8
+lbl_803605B0:
+/* 803605B0 0035C210 38 60 00 00 */ li r3, 0
+/* 803605B4 0035C214 48 00 00 24 */ b lbl_803605D8
+lbl_803605B8:
+/* 803605B8 0035C218 2C 1D 00 00 */ cmpwi r29, 0
+/* 803605BC 0035C21C 40 80 00 0C */ bge lbl_803605C8
+/* 803605C0 0035C220 38 60 00 00 */ li r3, 0
+/* 803605C4 0035C224 48 00 00 14 */ b lbl_803605D8
+lbl_803605C8:
+/* 803605C8 0035C228 3B DE 00 01 */ addi r30, r30, 1
+lbl_803605CC:
+/* 803605CC 0035C22C 7C 1E F8 00 */ cmpw r30, r31
+/* 803605D0 0035C230 41 80 FF 1C */ blt lbl_803604EC
+/* 803605D4 0035C234 38 60 00 01 */ li r3, 1
+lbl_803605D8:
+/* 803605D8 0035C238 39 61 00 20 */ addi r11, r1, 0x20
+/* 803605DC 0035C23C 4B E6 6B 99 */ bl _restgpr_27
+/* 803605E0 0035C240 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803605E4 0035C244 7C 08 03 A6 */ mtlr r0
+/* 803605E8 0035C248 38 21 00 20 */ addi r1, r1, 0x20
+/* 803605EC 0035C24C 4E 80 00 20 */ blr
+
+.global ParseServer
+ParseServer:
+/* 803605F0 0035C250 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803605F4 0035C254 7C 08 02 A6 */ mflr r0
+/* 803605F8 0035C258 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803605FC 0035C25C 39 61 00 40 */ addi r11, r1, 0x40
+/* 80360600 0035C260 4B E6 6B 15 */ bl _savegpr_22
+/* 80360604 0035C264 8B C5 00 00 */ lbz r30, 0(r5)
+/* 80360608 0035C268 7C 9A 23 78 */ mr r26, r4
+/* 8036060C 0035C26C 7C DC 33 78 */ mr r28, r6
+/* 80360610 0035C270 7C 79 1B 78 */ mr r25, r3
+/* 80360614 0035C274 7C BB 2B 78 */ mr r27, r5
+/* 80360618 0035C278 7C FD 3B 78 */ mr r29, r7
+/* 8036061C 0035C27C 7F 9F E3 78 */ mr r31, r28
+/* 80360620 0035C280 7F 43 D3 78 */ mr r3, r26
+/* 80360624 0035C284 7F C4 F3 78 */ mr r4, r30
+/* 80360628 0035C288 4B FF DA 1D */ bl SBServerSetFlags
+/* 8036062C 0035C28C 57 C0 06 F7 */ rlwinm. r0, r30, 0, 0x1b, 0x1b
+/* 80360630 0035C290 3B 9C FF FB */ addi r28, r28, -5
+/* 80360634 0035C294 3B 7B 00 05 */ addi r27, r27, 5
+/* 80360638 0035C298 41 82 00 0C */ beq lbl_80360644
+/* 8036063C 0035C29C 3B 7B 00 02 */ addi r27, r27, 2
+/* 80360640 0035C2A0 3B 9C FF FE */ addi r28, r28, -2
+lbl_80360644:
+/* 80360644 0035C2A4 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e
+/* 80360648 0035C2A8 41 82 00 20 */ beq lbl_80360668
+/* 8036064C 0035C2AC 7F 64 DB 78 */ mr r4, r27
+/* 80360650 0035C2B0 38 61 00 0C */ addi r3, r1, 0xc
+/* 80360654 0035C2B4 38 A0 00 04 */ li r5, 4
+/* 80360658 0035C2B8 4B CA 39 A9 */ bl memcpy
+/* 8036065C 0035C2BC 3B 7B 00 04 */ addi r27, r27, 4
+/* 80360660 0035C2C0 3B 9C FF FC */ addi r28, r28, -4
+/* 80360664 0035C2C4 48 00 00 0C */ b lbl_80360670
+lbl_80360668:
+/* 80360668 0035C2C8 38 00 00 00 */ li r0, 0
+/* 8036066C 0035C2CC 90 01 00 0C */ stw r0, 0xc(r1)
+lbl_80360670:
+/* 80360670 0035C2D0 57 C0 06 B5 */ rlwinm. r0, r30, 0, 0x1a, 0x1a
+/* 80360674 0035C2D4 41 82 00 20 */ beq lbl_80360694
+/* 80360678 0035C2D8 7F 64 DB 78 */ mr r4, r27
+/* 8036067C 0035C2DC 38 61 00 08 */ addi r3, r1, 8
+/* 80360680 0035C2E0 38 A0 00 02 */ li r5, 2
+/* 80360684 0035C2E4 4B CA 39 7D */ bl memcpy
+/* 80360688 0035C2E8 3B 7B 00 02 */ addi r27, r27, 2
+/* 8036068C 0035C2EC 3B 9C FF FE */ addi r28, r28, -2
+/* 80360690 0035C2F0 48 00 00 0C */ b lbl_8036069C
+lbl_80360694:
+/* 80360694 0035C2F4 A0 19 06 AC */ lhz r0, 0x6ac(r25)
+/* 80360698 0035C2F8 B0 01 00 08 */ sth r0, 8(r1)
+lbl_8036069C:
+/* 8036069C 0035C2FC 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 803606A0 0035C300 7F 43 D3 78 */ mr r3, r26
+/* 803606A4 0035C304 A0 A1 00 08 */ lhz r5, 8(r1)
+/* 803606A8 0035C308 4B FF D9 A5 */ bl SBServerSetPrivateAddr
+/* 803606AC 0035C30C 57 C0 07 39 */ rlwinm. r0, r30, 0, 0x1c, 0x1c
+/* 803606B0 0035C310 41 82 00 28 */ beq lbl_803606D8
+/* 803606B4 0035C314 7F 64 DB 78 */ mr r4, r27
+/* 803606B8 0035C318 38 61 00 0C */ addi r3, r1, 0xc
+/* 803606BC 0035C31C 38 A0 00 04 */ li r5, 4
+/* 803606C0 0035C320 4B CA 39 41 */ bl memcpy
+/* 803606C4 0035C324 80 81 00 0C */ lwz r4, 0xc(r1)
+/* 803606C8 0035C328 7F 43 D3 78 */ mr r3, r26
+/* 803606CC 0035C32C 3B 7B 00 04 */ addi r27, r27, 4
+/* 803606D0 0035C330 3B 9C FF FC */ addi r28, r28, -4
+/* 803606D4 0035C334 4B FF D9 85 */ bl SBServerSetICMPIP
+lbl_803606D8:
+/* 803606D8 0035C338 57 C0 06 73 */ rlwinm. r0, r30, 0, 0x19, 0x19
+/* 803606DC 0035C33C 41 82 01 28 */ beq lbl_80360804
+/* 803606E0 0035C340 80 79 00 08 */ lwz r3, 8(r25)
+/* 803606E4 0035C344 4B FD 58 05 */ bl ArrayLength
+/* 803606E8 0035C348 7C 77 1B 78 */ mr r23, r3
+/* 803606EC 0035C34C 3A C0 00 00 */ li r22, 0
+/* 803606F0 0035C350 48 00 00 F4 */ b lbl_803607E4
+lbl_803606F4:
+/* 803606F4 0035C354 80 79 00 08 */ lwz r3, 8(r25)
+/* 803606F8 0035C358 7E C4 B3 78 */ mr r4, r22
+/* 803606FC 0035C35C 4B FD 57 F5 */ bl ArrayNth
+/* 80360700 0035C360 80 03 00 04 */ lwz r0, 4(r3)
+/* 80360704 0035C364 7C 78 1B 78 */ mr r24, r3
+/* 80360708 0035C368 2C 00 00 01 */ cmpwi r0, 1
+/* 8036070C 0035C36C 41 82 00 20 */ beq lbl_8036072C
+/* 80360710 0035C370 40 80 00 10 */ bge lbl_80360720
+/* 80360714 0035C374 2C 00 00 00 */ cmpwi r0, 0
+/* 80360718 0035C378 40 80 00 64 */ bge lbl_8036077C
+/* 8036071C 0035C37C 48 00 00 C4 */ b lbl_803607E0
+lbl_80360720:
+/* 80360720 0035C380 2C 00 00 03 */ cmpwi r0, 3
+/* 80360724 0035C384 40 80 00 BC */ bge lbl_803607E0
+/* 80360728 0035C388 48 00 00 20 */ b lbl_80360748
+lbl_8036072C:
+/* 8036072C 0035C38C 80 98 00 00 */ lwz r4, 0(r24)
+/* 80360730 0035C390 7F 43 D3 78 */ mr r3, r26
+/* 80360734 0035C394 88 BB 00 00 */ lbz r5, 0(r27)
+/* 80360738 0035C398 4B FF CE 5D */ bl SBServerAddIntKeyValue
+/* 8036073C 0035C39C 3B 7B 00 01 */ addi r27, r27, 1
+/* 80360740 0035C3A0 3B 9C FF FF */ addi r28, r28, -1
+/* 80360744 0035C3A4 48 00 00 9C */ b lbl_803607E0
+lbl_80360748:
+/* 80360748 0035C3A8 7F 64 DB 78 */ mr r4, r27
+/* 8036074C 0035C3AC 38 61 00 0A */ addi r3, r1, 0xa
+/* 80360750 0035C3B0 38 A0 00 02 */ li r5, 2
+/* 80360754 0035C3B4 4B CA 38 AD */ bl memcpy
+/* 80360758 0035C3B8 A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 8036075C 0035C3BC 4B F9 66 15 */ bl SONtoHs
+/* 80360760 0035C3C0 80 98 00 00 */ lwz r4, 0(r24)
+/* 80360764 0035C3C4 54 65 04 3E */ clrlwi r5, r3, 0x10
+/* 80360768 0035C3C8 7F 43 D3 78 */ mr r3, r26
+/* 8036076C 0035C3CC 4B FF CE 29 */ bl SBServerAddIntKeyValue
+/* 80360770 0035C3D0 3B 7B 00 02 */ addi r27, r27, 2
+/* 80360774 0035C3D4 3B 9C FF FE */ addi r28, r28, -2
+/* 80360778 0035C3D8 48 00 00 68 */ b lbl_803607E0
+lbl_8036077C:
+/* 8036077C 0035C3DC 2C 1D 00 00 */ cmpwi r29, 0
+/* 80360780 0035C3E0 41 82 00 14 */ beq lbl_80360794
+/* 80360784 0035C3E4 88 1B 00 00 */ lbz r0, 0(r27)
+/* 80360788 0035C3E8 3B 7B 00 01 */ addi r27, r27, 1
+/* 8036078C 0035C3EC 3B 9C FF FF */ addi r28, r28, -1
+/* 80360790 0035C3F0 48 00 00 08 */ b lbl_80360798
+lbl_80360794:
+/* 80360794 0035C3F4 38 00 00 FF */ li r0, 0xff
+lbl_80360798:
+/* 80360798 0035C3F8 2C 00 00 FF */ cmpwi r0, 0xff
+/* 8036079C 0035C3FC 40 82 00 2C */ bne lbl_803607C8
+/* 803607A0 0035C400 80 98 00 00 */ lwz r4, 0(r24)
+/* 803607A4 0035C404 7F 43 D3 78 */ mr r3, r26
+/* 803607A8 0035C408 7F 65 DB 78 */ mr r5, r27
+/* 803607AC 0035C40C 4B FF CD 8D */ bl SBServerAddKeyValue
+/* 803607B0 0035C410 7F 63 DB 78 */ mr r3, r27
+/* 803607B4 0035C414 4B E6 63 B1 */ bl strlen
+/* 803607B8 0035C418 38 03 00 01 */ addi r0, r3, 1
+/* 803607BC 0035C41C 7F 7B 02 14 */ add r27, r27, r0
+/* 803607C0 0035C420 7F 80 E0 50 */ subf r28, r0, r28
+/* 803607C4 0035C424 48 00 00 1C */ b lbl_803607E0
+lbl_803607C8:
+/* 803607C8 0035C428 54 00 10 3A */ slwi r0, r0, 2
+/* 803607CC 0035C42C 80 98 00 00 */ lwz r4, 0(r24)
+/* 803607D0 0035C430 7C B9 02 14 */ add r5, r25, r0
+/* 803607D4 0035C434 7F 43 D3 78 */ mr r3, r26
+/* 803607D8 0035C438 80 A5 00 84 */ lwz r5, 0x84(r5)
+/* 803607DC 0035C43C 4B FF CD 5D */ bl SBServerAddKeyValue
+lbl_803607E0:
+/* 803607E0 0035C440 3A D6 00 01 */ addi r22, r22, 1
+lbl_803607E4:
+/* 803607E4 0035C444 7C 16 B8 00 */ cmpw r22, r23
+/* 803607E8 0035C448 41 80 FF 0C */ blt lbl_803606F4
+/* 803607EC 0035C44C 7F 43 D3 78 */ mr r3, r26
+/* 803607F0 0035C450 4B FF D8 79 */ bl SBServerGetState
+/* 803607F4 0035C454 60 60 00 01 */ ori r0, r3, 1
+/* 803607F8 0035C458 7F 43 D3 78 */ mr r3, r26
+/* 803607FC 0035C45C 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 80360800 0035C460 4B FF D8 61 */ bl SBServerSetState
+lbl_80360804:
+/* 80360804 0035C464 57 C0 06 31 */ rlwinm. r0, r30, 0, 0x18, 0x18
+/* 80360808 0035C468 41 82 00 74 */ beq lbl_8036087C
+/* 8036080C 0035C46C 48 00 00 40 */ b lbl_8036084C
+lbl_80360810:
+/* 80360810 0035C470 7F 76 DB 78 */ mr r22, r27
+/* 80360814 0035C474 7F 63 DB 78 */ mr r3, r27
+/* 80360818 0035C478 4B E6 63 4D */ bl strlen
+/* 8036081C 0035C47C 38 03 00 01 */ addi r0, r3, 1
+/* 80360820 0035C480 7F 43 D3 78 */ mr r3, r26
+/* 80360824 0035C484 7F 7B 02 14 */ add r27, r27, r0
+/* 80360828 0035C488 7E C4 B3 78 */ mr r4, r22
+/* 8036082C 0035C48C 7F 65 DB 78 */ mr r5, r27
+/* 80360830 0035C490 7F 80 E0 50 */ subf r28, r0, r28
+/* 80360834 0035C494 4B FF CD 05 */ bl SBServerAddKeyValue
+/* 80360838 0035C498 7F 63 DB 78 */ mr r3, r27
+/* 8036083C 0035C49C 4B E6 63 29 */ bl strlen
+/* 80360840 0035C4A0 38 03 00 01 */ addi r0, r3, 1
+/* 80360844 0035C4A4 7F 7B 02 14 */ add r27, r27, r0
+/* 80360848 0035C4A8 7F 80 E0 50 */ subf r28, r0, r28
+lbl_8036084C:
+/* 8036084C 0035C4AC 88 1B 00 00 */ lbz r0, 0(r27)
+/* 80360850 0035C4B0 7C 00 07 75 */ extsb. r0, r0
+/* 80360854 0035C4B4 41 82 00 0C */ beq lbl_80360860
+/* 80360858 0035C4B8 2C 1C 00 00 */ cmpwi r28, 0
+/* 8036085C 0035C4BC 41 81 FF B4 */ bgt lbl_80360810
+lbl_80360860:
+/* 80360860 0035C4C0 7F 43 D3 78 */ mr r3, r26
+/* 80360864 0035C4C4 3B 9C FF FF */ addi r28, r28, -1
+/* 80360868 0035C4C8 4B FF D8 01 */ bl SBServerGetState
+/* 8036086C 0035C4CC 60 60 00 02 */ ori r0, r3, 2
+/* 80360870 0035C4D0 7F 43 D3 78 */ mr r3, r26
+/* 80360874 0035C4D4 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 80360878 0035C4D8 4B FF D7 E9 */ bl SBServerSetState
+lbl_8036087C:
+/* 8036087C 0035C4DC 7F 43 D3 78 */ mr r3, r26
+/* 80360880 0035C4E0 4B FF D7 E9 */ bl SBServerGetState
+/* 80360884 0035C4E4 57 C0 06 33 */ rlwinm. r0, r30, 0, 0x18, 0x19
+/* 80360888 0035C4E8 7C 64 1B 78 */ mr r4, r3
+/* 8036088C 0035C4EC 40 82 00 18 */ bne lbl_803608A4
+/* 80360890 0035C4F0 54 60 07 BF */ clrlwi. r0, r3, 0x1e
+/* 80360894 0035C4F4 41 82 00 10 */ beq lbl_803608A4
+/* 80360898 0035C4F8 7F 43 D3 78 */ mr r3, r26
+/* 8036089C 0035C4FC 54 84 06 3A */ rlwinm r4, r4, 0, 0x18, 0x1d
+/* 803608A0 0035C500 4B FF D7 C1 */ bl SBServerSetState
+lbl_803608A4:
+/* 803608A4 0035C504 39 61 00 40 */ addi r11, r1, 0x40
+/* 803608A8 0035C508 7C 7C F8 50 */ subf r3, r28, r31
+/* 803608AC 0035C50C 4B E6 68 B5 */ bl _restgpr_22
+/* 803608B0 0035C510 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 803608B4 0035C514 7C 08 03 A6 */ mtlr r0
+/* 803608B8 0035C518 38 21 00 40 */ addi r1, r1, 0x40
+/* 803608BC 0035C51C 4E 80 00 20 */ blr
+
+.global IncomingListParseServer
+IncomingListParseServer:
+/* 803608C0 0035C520 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803608C4 0035C524 7C 08 02 A6 */ mflr r0
+/* 803608C8 0035C528 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803608CC 0035C52C 39 61 00 30 */ addi r11, r1, 0x30
+/* 803608D0 0035C530 4B E6 68 59 */ bl _savegpr_27
+/* 803608D4 0035C534 2C 05 00 01 */ cmpwi r5, 1
+/* 803608D8 0035C538 7C 7B 1B 78 */ mr r27, r3
+/* 803608DC 0035C53C 7C 9C 23 78 */ mr r28, r4
+/* 803608E0 0035C540 7C BD 2B 78 */ mr r29, r5
+/* 803608E4 0035C544 40 80 00 0C */ bge lbl_803608F0
+/* 803608E8 0035C548 38 60 00 00 */ li r3, 0
+/* 803608EC 0035C54C 48 00 01 78 */ b lbl_80360A64
+lbl_803608F0:
+/* 803608F0 0035C550 8B E4 00 00 */ lbz r31, 0(r4)
+/* 803608F4 0035C554 3B C0 00 05 */ li r30, 5
+/* 803608F8 0035C558 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e
+/* 803608FC 0035C55C 41 82 00 08 */ beq lbl_80360904
+/* 80360900 0035C560 3B C0 00 09 */ li r30, 9
+lbl_80360904:
+/* 80360904 0035C564 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c
+/* 80360908 0035C568 41 82 00 08 */ beq lbl_80360910
+/* 8036090C 0035C56C 3B DE 00 04 */ addi r30, r30, 4
+lbl_80360910:
+/* 80360910 0035C570 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b
+/* 80360914 0035C574 41 82 00 08 */ beq lbl_8036091C
+/* 80360918 0035C578 3B DE 00 02 */ addi r30, r30, 2
+lbl_8036091C:
+/* 8036091C 0035C57C 57 E0 06 B5 */ rlwinm. r0, r31, 0, 0x1a, 0x1a
+/* 80360920 0035C580 41 82 00 08 */ beq lbl_80360928
+/* 80360924 0035C584 3B DE 00 02 */ addi r30, r30, 2
+lbl_80360928:
+/* 80360928 0035C588 7C 05 F0 00 */ cmpw r5, r30
+/* 8036092C 0035C58C 40 80 00 0C */ bge lbl_80360938
+/* 80360930 0035C590 38 60 00 00 */ li r3, 0
+/* 80360934 0035C594 48 00 01 30 */ b lbl_80360A64
+lbl_80360938:
+/* 80360938 0035C598 57 E0 06 73 */ rlwinm. r0, r31, 0, 0x19, 0x19
+/* 8036093C 0035C59C 41 82 00 24 */ beq lbl_80360960
+/* 80360940 0035C5A0 7F 63 DB 78 */ mr r3, r27
+/* 80360944 0035C5A4 7C 84 F2 14 */ add r4, r4, r30
+/* 80360948 0035C5A8 7C BE 28 50 */ subf r5, r30, r5
+/* 8036094C 0035C5AC 4B FF FB 6D */ bl AllKeysPresent
+/* 80360950 0035C5B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80360954 0035C5B4 40 82 00 0C */ bne lbl_80360960
+/* 80360958 0035C5B8 38 60 00 00 */ li r3, 0
+/* 8036095C 0035C5BC 48 00 01 08 */ b lbl_80360A64
+lbl_80360960:
+/* 80360960 0035C5C0 57 E0 06 31 */ rlwinm. r0, r31, 0, 0x18, 0x18
+/* 80360964 0035C5C4 41 82 00 20 */ beq lbl_80360984
+/* 80360968 0035C5C8 7C 7C F2 14 */ add r3, r28, r30
+/* 8036096C 0035C5CC 7C 9E E8 50 */ subf r4, r30, r29
+/* 80360970 0035C5D0 4B FF FA 71 */ bl FullRulesPresent
+/* 80360974 0035C5D4 2C 03 00 00 */ cmpwi r3, 0
+/* 80360978 0035C5D8 40 82 00 0C */ bne lbl_80360984
+/* 8036097C 0035C5DC 38 60 00 00 */ li r3, 0
+/* 80360980 0035C5E0 48 00 00 E4 */ b lbl_80360A64
+lbl_80360984:
+/* 80360984 0035C5E4 38 7C 00 01 */ addi r3, r28, 1
+/* 80360988 0035C5E8 38 8D 95 10 */ addi r4, r13, lbl_8063E7D0-_SDA_BASE_
+/* 8036098C 0035C5EC 38 A0 00 04 */ li r5, 4
+/* 80360990 0035C5F0 4B E6 9A 09 */ bl memcmp
+/* 80360994 0035C5F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80360998 0035C5F8 40 82 00 0C */ bne lbl_803609A4
+/* 8036099C 0035C5FC 38 60 FF FF */ li r3, -1
+/* 803609A0 0035C600 48 00 00 C4 */ b lbl_80360A64
+lbl_803609A4:
+/* 803609A4 0035C604 2C 1D 00 05 */ cmpwi r29, 5
+/* 803609A8 0035C608 41 80 00 48 */ blt lbl_803609F0
+/* 803609AC 0035C60C 8B FC 00 00 */ lbz r31, 0(r28)
+/* 803609B0 0035C610 38 61 00 10 */ addi r3, r1, 0x10
+/* 803609B4 0035C614 38 9C 00 01 */ addi r4, r28, 1
+/* 803609B8 0035C618 38 A0 00 04 */ li r5, 4
+/* 803609BC 0035C61C 4B CA 36 45 */ bl memcpy
+/* 803609C0 0035C620 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b
+/* 803609C4 0035C624 41 82 00 24 */ beq lbl_803609E8
+/* 803609C8 0035C628 38 1D FF FB */ addi r0, r29, -5
+/* 803609CC 0035C62C 2C 00 00 02 */ cmpwi r0, 2
+/* 803609D0 0035C630 41 80 00 20 */ blt lbl_803609F0
+/* 803609D4 0035C634 38 61 00 08 */ addi r3, r1, 8
+/* 803609D8 0035C638 38 9C 00 05 */ addi r4, r28, 5
+/* 803609DC 0035C63C 38 A0 00 02 */ li r5, 2
+/* 803609E0 0035C640 4B CA 36 21 */ bl memcpy
+/* 803609E4 0035C644 48 00 00 0C */ b lbl_803609F0
+lbl_803609E8:
+/* 803609E8 0035C648 A0 1B 06 AC */ lhz r0, 0x6ac(r27)
+/* 803609EC 0035C64C B0 01 00 08 */ sth r0, 8(r1)
+lbl_803609F0:
+/* 803609F0 0035C650 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 803609F4 0035C654 7F 63 DB 78 */ mr r3, r27
+/* 803609F8 0035C658 A0 A1 00 08 */ lhz r5, 8(r1)
+/* 803609FC 0035C65C 4B FF D5 81 */ bl SBAllocServer
+/* 80360A00 0035C660 7C 7E 1B 78 */ mr r30, r3
+/* 80360A04 0035C664 4B FF D6 6D */ bl SBIsNullServer
+/* 80360A08 0035C668 2C 03 00 00 */ cmpwi r3, 0
+/* 80360A0C 0035C66C 41 82 00 0C */ beq lbl_80360A18
+/* 80360A10 0035C670 38 60 FF FE */ li r3, -2
+/* 80360A14 0035C674 48 00 00 50 */ b lbl_80360A64
+lbl_80360A18:
+/* 80360A18 0035C678 7F 63 DB 78 */ mr r3, r27
+/* 80360A1C 0035C67C 7F C4 F3 78 */ mr r4, r30
+/* 80360A20 0035C680 7F 85 E3 78 */ mr r5, r28
+/* 80360A24 0035C684 7F A6 EB 78 */ mr r6, r29
+/* 80360A28 0035C688 38 E0 00 01 */ li r7, 1
+/* 80360A2C 0035C68C 4B FF FB C5 */ bl ParseServer
+/* 80360A30 0035C690 93 C1 00 0C */ stw r30, 0xc(r1)
+/* 80360A34 0035C694 7C 7E 1B 78 */ mr r30, r3
+/* 80360A38 0035C698 38 81 00 0C */ addi r4, r1, 0xc
+/* 80360A3C 0035C69C 80 7B 00 04 */ lwz r3, 4(r27)
+/* 80360A40 0035C6A0 4B FD 54 E1 */ bl ArrayAppend
+/* 80360A44 0035C6A4 81 9B 04 88 */ lwz r12, 0x488(r27)
+/* 80360A48 0035C6A8 7F 63 DB 78 */ mr r3, r27
+/* 80360A4C 0035C6AC 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 80360A50 0035C6B0 38 80 00 00 */ li r4, 0
+/* 80360A54 0035C6B4 80 DB 04 94 */ lwz r6, 0x494(r27)
+/* 80360A58 0035C6B8 7D 89 03 A6 */ mtctr r12
+/* 80360A5C 0035C6BC 4E 80 04 21 */ bctrl
+/* 80360A60 0035C6C0 7F C3 F3 78 */ mr r3, r30
+lbl_80360A64:
+/* 80360A64 0035C6C4 39 61 00 30 */ addi r11, r1, 0x30
+/* 80360A68 0035C6C8 4B E6 67 0D */ bl _restgpr_27
+/* 80360A6C 0035C6CC 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80360A70 0035C6D0 7C 08 03 A6 */ mtlr r0
+/* 80360A74 0035C6D4 38 21 00 30 */ addi r1, r1, 0x30
+/* 80360A78 0035C6D8 4E 80 00 20 */ blr
+
+.global ProcessMainListData
+ProcessMainListData:
+/* 80360A7C 0035C6DC 94 21 FF A0 */ stwu r1, -0x60(r1)
+/* 80360A80 0035C6E0 7C 08 02 A6 */ mflr r0
+/* 80360A84 0035C6E4 90 01 00 64 */ stw r0, 0x64(r1)
+/* 80360A88 0035C6E8 39 61 00 60 */ addi r11, r1, 0x60
+/* 80360A8C 0035C6EC 4B E6 66 7D */ bl _savegpr_19
+/* 80360A90 0035C6F0 80 03 07 CC */ lwz r0, 0x7cc(r3)
+/* 80360A94 0035C6F4 7C 7A 1B 78 */ mr r26, r3
+/* 80360A98 0035C6F8 83 83 00 7C */ lwz r28, 0x7c(r3)
+/* 80360A9C 0035C6FC 2C 00 00 02 */ cmpwi r0, 2
+/* 80360AA0 0035C700 83 63 00 80 */ lwz r27, 0x80(r3)
+/* 80360AA4 0035C704 41 82 05 DC */ beq lbl_80361080
+/* 80360AA8 0035C708 40 80 00 14 */ bge lbl_80360ABC
+/* 80360AAC 0035C70C 2C 00 00 00 */ cmpwi r0, 0
+/* 80360AB0 0035C710 41 82 00 1C */ beq lbl_80360ACC
+/* 80360AB4 0035C714 40 80 04 CC */ bge lbl_80360F80
+/* 80360AB8 0035C718 48 00 08 A0 */ b lbl_80361358
+lbl_80360ABC:
+/* 80360ABC 0035C71C 2C 00 00 04 */ cmpwi r0, 4
+/* 80360AC0 0035C720 41 82 08 10 */ beq lbl_803612D0
+/* 80360AC4 0035C724 40 80 08 94 */ bge lbl_80361358
+/* 80360AC8 0035C728 48 00 07 00 */ b lbl_803611C8
+lbl_80360ACC:
+/* 80360ACC 0035C72C 2C 1B 00 01 */ cmpwi r27, 1
+/* 80360AD0 0035C730 41 80 08 88 */ blt lbl_80361358
+/* 80360AD4 0035C734 88 1C 00 00 */ lbz r0, 0(r28)
+/* 80360AD8 0035C738 68 04 00 EC */ xori r4, r0, 0xec
+/* 80360ADC 0035C73C 3B E4 00 02 */ addi r31, r4, 2
+/* 80360AE0 0035C740 7C 1B F8 00 */ cmpw r27, r31
+/* 80360AE4 0035C744 41 80 08 74 */ blt lbl_80361358
+/* 80360AE8 0035C748 7C 9F E2 14 */ add r4, r31, r28
+/* 80360AEC 0035C74C 7F FE FB 78 */ mr r30, r31
+/* 80360AF0 0035C750 88 04 FF FF */ lbz r0, -1(r4)
+/* 80360AF4 0035C754 68 1D 00 EA */ xori r29, r0, 0xea
+/* 80360AF8 0035C758 7F FF EA 14 */ add r31, r31, r29
+/* 80360AFC 0035C75C 7C 1B F8 00 */ cmpw r27, r31
+/* 80360B00 0035C760 41 80 08 58 */ blt lbl_80361358
+/* 80360B04 0035C764 38 63 00 54 */ addi r3, r3, 0x54
+/* 80360B08 0035C768 4B E6 60 5D */ bl strlen
+/* 80360B0C 0035C76C 2C 9D 00 00 */ cmpwi cr1, r29, 0
+/* 80360B10 0035C770 39 7A 00 54 */ addi r11, r26, 0x54
+/* 80360B14 0035C774 39 80 00 00 */ li r12, 0
+/* 80360B18 0035C778 40 85 04 1C */ ble cr1, lbl_80360F34
+/* 80360B1C 0035C77C 2C 1D 00 08 */ cmpwi r29, 8
+/* 80360B20 0035C780 38 BD FF F8 */ addi r5, r29, -8
+/* 80360B24 0035C784 40 81 03 88 */ ble lbl_80360EAC
+/* 80360B28 0035C788 38 C0 00 00 */ li r6, 0
+/* 80360B2C 0035C78C 41 84 00 18 */ blt cr1, lbl_80360B44
+/* 80360B30 0035C790 3C 80 80 00 */ lis r4, 0x7FFFFFFE@ha
+/* 80360B34 0035C794 38 04 FF FE */ addi r0, r4, 0x7FFFFFFE@l
+/* 80360B38 0035C798 7C 1D 00 00 */ cmpw r29, r0
+/* 80360B3C 0035C79C 41 81 00 08 */ bgt lbl_80360B44
+/* 80360B40 0035C7A0 38 C0 00 01 */ li r6, 1
+lbl_80360B44:
+/* 80360B44 0035C7A4 2C 06 00 00 */ cmpwi r6, 0
+/* 80360B48 0035C7A8 41 82 03 64 */ beq lbl_80360EAC
+/* 80360B4C 0035C7AC 38 05 00 07 */ addi r0, r5, 7
+/* 80360B50 0035C7B0 7F 3C F2 14 */ add r25, r28, r30
+/* 80360B54 0035C7B4 54 00 E8 FE */ srwi r0, r0, 3
+/* 80360B58 0035C7B8 7C 09 03 A6 */ mtctr r0
+/* 80360B5C 0035C7BC 2C 05 00 00 */ cmpwi r5, 0
+/* 80360B60 0035C7C0 40 81 03 4C */ ble lbl_80360EAC
+lbl_80360B64:
+/* 80360B64 0035C7C4 7E 6C 1B D6 */ divw r19, r12, r3
+/* 80360B68 0035C7C8 38 EC 00 01 */ addi r7, r12, 1
+/* 80360B6C 0035C7CC 38 AC 00 02 */ addi r5, r12, 2
+/* 80360B70 0035C7D0 89 19 00 00 */ lbz r8, 0(r25)
+/* 80360B74 0035C7D4 55 86 E8 04 */ slwi r6, r12, 0x1d
+/* 80360B78 0035C7D8 55 8A 0F FE */ srwi r10, r12, 0x1f
+/* 80360B7C 0035C7DC 7E A7 1B D6 */ divw r21, r7, r3
+/* 80360B80 0035C7E0 7C CA 30 50 */ subf r6, r10, r6
+/* 80360B84 0035C7E4 54 E4 E8 04 */ slwi r4, r7, 0x1d
+/* 80360B88 0035C7E8 54 C6 18 3E */ rotlwi r6, r6, 3
+/* 80360B8C 0035C7EC 54 E9 0F FE */ srwi r9, r7, 0x1f
+/* 80360B90 0035C7F0 7C C6 52 14 */ add r6, r6, r10
+/* 80360B94 0035C7F4 7C DA 32 14 */ add r6, r26, r6
+/* 80360B98 0035C7F8 7C 89 20 50 */ subf r4, r9, r4
+/* 80360B9C 0035C7FC 89 46 00 74 */ lbz r10, 0x74(r6)
+/* 80360BA0 0035C800 54 86 18 3E */ rotlwi r6, r4, 3
+/* 80360BA4 0035C804 7C C6 4A 14 */ add r6, r6, r9
+/* 80360BA8 0035C808 54 A9 E8 04 */ slwi r9, r5, 0x1d
+/* 80360BAC 0035C80C 7E 73 19 D6 */ mullw r19, r19, r3
+/* 80360BB0 0035C810 7D 48 42 78 */ xor r8, r10, r8
+/* 80360BB4 0035C814 54 B4 0F FE */ srwi r20, r5, 0x1f
+/* 80360BB8 0035C818 38 0C 00 03 */ addi r0, r12, 3
+/* 80360BBC 0035C81C 7D 08 07 74 */ extsb r8, r8
+/* 80360BC0 0035C820 7C DA 32 14 */ add r6, r26, r6
+/* 80360BC4 0035C824 7C 93 60 50 */ subf r4, r19, r12
+/* 80360BC8 0035C828 7D 4B 20 AE */ lbzx r10, r11, r4
+/* 80360BCC 0035C82C 7C 85 1B D6 */ divw r4, r5, r3
+/* 80360BD0 0035C830 7D 4A 07 74 */ extsb r10, r10
+/* 80360BD4 0035C834 7E CC 51 D6 */ mullw r22, r12, r10
+/* 80360BD8 0035C838 7D 54 48 50 */ subf r10, r20, r9
+/* 80360BDC 0035C83C 54 09 E8 04 */ slwi r9, r0, 0x1d
+/* 80360BE0 0035C840 55 53 18 3E */ rotlwi r19, r10, 3
+/* 80360BE4 0035C844 54 0A 0F FE */ srwi r10, r0, 0x1f
+/* 80360BE8 0035C848 7E 73 A2 14 */ add r19, r19, r20
+/* 80360BEC 0035C84C 56 D7 E8 04 */ slwi r23, r22, 0x1d
+/* 80360BF0 0035C850 7D 2A 48 50 */ subf r9, r10, r9
+/* 80360BF4 0035C854 7E B5 19 D6 */ mullw r21, r21, r3
+/* 80360BF8 0035C858 56 D6 0F FE */ srwi r22, r22, 0x1f
+/* 80360BFC 0035C85C 7E 9A 9A 14 */ add r20, r26, r19
+/* 80360C00 0035C860 7E 76 B8 50 */ subf r19, r22, r23
+/* 80360C04 0035C864 55 29 18 3E */ rotlwi r9, r9, 3
+/* 80360C08 0035C868 56 73 18 3E */ rotlwi r19, r19, 3
+/* 80360C0C 0035C86C 7E 73 B2 14 */ add r19, r19, r22
+/* 80360C10 0035C870 7E B5 38 50 */ subf r21, r21, r7
+/* 80360C14 0035C874 7E FA 9A 14 */ add r23, r26, r19
+/* 80360C18 0035C878 8A D7 00 74 */ lbz r22, 0x74(r23)
+/* 80360C1C 0035C87C 7E 60 1B D6 */ divw r19, r0, r3
+/* 80360C20 0035C880 7E C8 42 78 */ xor r8, r22, r8
+/* 80360C24 0035C884 99 17 00 74 */ stb r8, 0x74(r23)
+/* 80360C28 0035C888 7D 09 52 14 */ add r8, r9, r10
+/* 80360C2C 0035C88C 7D 2B A8 AE */ lbzx r9, r11, r21
+/* 80360C30 0035C890 7D 2A 07 74 */ extsb r10, r9
+/* 80360C34 0035C894 7D 47 51 D6 */ mullw r10, r7, r10
+/* 80360C38 0035C898 89 26 00 74 */ lbz r9, 0x74(r6)
+/* 80360C3C 0035C89C 88 F9 00 01 */ lbz r7, 1(r25)
+/* 80360C40 0035C8A0 7C DA 42 14 */ add r6, r26, r8
+/* 80360C44 0035C8A4 7D 27 3A 78 */ xor r7, r9, r7
+/* 80360C48 0035C8A8 7C E8 07 74 */ extsb r8, r7
+/* 80360C4C 0035C8AC 55 47 E8 04 */ slwi r7, r10, 0x1d
+/* 80360C50 0035C8B0 55 49 0F FE */ srwi r9, r10, 0x1f
+/* 80360C54 0035C8B4 7C E9 38 50 */ subf r7, r9, r7
+/* 80360C58 0035C8B8 54 E7 18 3E */ rotlwi r7, r7, 3
+/* 80360C5C 0035C8BC 7D 27 4A 14 */ add r9, r7, r9
+/* 80360C60 0035C8C0 7C 84 19 D6 */ mullw r4, r4, r3
+/* 80360C64 0035C8C4 7D 5A 4A 14 */ add r10, r26, r9
+/* 80360C68 0035C8C8 89 2A 00 74 */ lbz r9, 0x74(r10)
+/* 80360C6C 0035C8CC 7D 28 42 78 */ xor r8, r9, r8
+/* 80360C70 0035C8D0 99 0A 00 74 */ stb r8, 0x74(r10)
+/* 80360C74 0035C8D4 7C E4 28 50 */ subf r7, r4, r5
+/* 80360C78 0035C8D8 7C 93 19 D6 */ mullw r4, r19, r3
+/* 80360C7C 0035C8DC 7C EB 38 AE */ lbzx r7, r11, r7
+/* 80360C80 0035C8E0 89 14 00 74 */ lbz r8, 0x74(r20)
+/* 80360C84 0035C8E4 7C E9 07 74 */ extsb r9, r7
+/* 80360C88 0035C8E8 88 F9 00 02 */ lbz r7, 2(r25)
+/* 80360C8C 0035C8EC 7D 25 49 D6 */ mullw r9, r5, r9
+/* 80360C90 0035C8F0 7D 05 3A 78 */ xor r5, r8, r7
+/* 80360C94 0035C8F4 7C 84 00 50 */ subf r4, r4, r0
+/* 80360C98 0035C8F8 7C A5 07 74 */ extsb r5, r5
+/* 80360C9C 0035C8FC 55 27 E8 04 */ slwi r7, r9, 0x1d
+/* 80360CA0 0035C900 55 28 0F FE */ srwi r8, r9, 0x1f
+/* 80360CA4 0035C904 7C E8 38 50 */ subf r7, r8, r7
+/* 80360CA8 0035C908 54 E7 18 3E */ rotlwi r7, r7, 3
+/* 80360CAC 0035C90C 7C E7 42 14 */ add r7, r7, r8
+/* 80360CB0 0035C910 7D 1A 3A 14 */ add r8, r26, r7
+/* 80360CB4 0035C914 88 E8 00 74 */ lbz r7, 0x74(r8)
+/* 80360CB8 0035C918 7C E5 2A 78 */ xor r5, r7, r5
+/* 80360CBC 0035C91C 98 A8 00 74 */ stb r5, 0x74(r8)
+/* 80360CC0 0035C920 7C 8B 20 AE */ lbzx r4, r11, r4
+/* 80360CC4 0035C924 88 A6 00 74 */ lbz r5, 0x74(r6)
+/* 80360CC8 0035C928 7C 86 07 74 */ extsb r6, r4
+/* 80360CCC 0035C92C 88 99 00 03 */ lbz r4, 3(r25)
+/* 80360CD0 0035C930 7C C0 31 D6 */ mullw r6, r0, r6
+/* 80360CD4 0035C934 7C A0 22 78 */ xor r0, r5, r4
+/* 80360CD8 0035C938 7C 00 07 74 */ extsb r0, r0
+/* 80360CDC 0035C93C 54 C4 E8 04 */ slwi r4, r6, 0x1d
+/* 80360CE0 0035C940 54 C5 0F FE */ srwi r5, r6, 0x1f
+/* 80360CE4 0035C944 7C 85 20 50 */ subf r4, r5, r4
+/* 80360CE8 0035C948 54 84 18 3E */ rotlwi r4, r4, 3
+/* 80360CEC 0035C94C 7C 84 2A 14 */ add r4, r4, r5
+/* 80360CF0 0035C950 7C BA 22 14 */ add r5, r26, r4
+/* 80360CF4 0035C954 88 85 00 74 */ lbz r4, 0x74(r5)
+/* 80360CF8 0035C958 7C 80 02 78 */ xor r0, r4, r0
+/* 80360CFC 0035C95C 98 05 00 74 */ stb r0, 0x74(r5)
+/* 80360D00 0035C960 39 4C 00 04 */ addi r10, r12, 4
+/* 80360D04 0035C964 39 0C 00 05 */ addi r8, r12, 5
+/* 80360D08 0035C968 7E 6A 1B D6 */ divw r19, r10, r3
+/* 80360D0C 0035C96C 38 AC 00 06 */ addi r5, r12, 6
+/* 80360D10 0035C970 38 0C 00 07 */ addi r0, r12, 7
+/* 80360D14 0035C974 89 39 00 04 */ lbz r9, 4(r25)
+/* 80360D18 0035C978 55 44 E8 04 */ slwi r4, r10, 0x1d
+/* 80360D1C 0035C97C 55 55 0F FE */ srwi r21, r10, 0x1f
+/* 80360D20 0035C980 7E 73 19 D6 */ mullw r19, r19, r3
+/* 80360D24 0035C984 7C D5 20 50 */ subf r6, r21, r4
+/* 80360D28 0035C988 55 04 E8 04 */ slwi r4, r8, 0x1d
+/* 80360D2C 0035C98C 54 C6 18 3E */ rotlwi r6, r6, 3
+/* 80360D30 0035C990 55 16 0F FE */ srwi r22, r8, 0x1f
+/* 80360D34 0035C994 7C C6 AA 14 */ add r6, r6, r21
+/* 80360D38 0035C998 7E 73 50 50 */ subf r19, r19, r10
+/* 80360D3C 0035C99C 7C DA 32 14 */ add r6, r26, r6
+/* 80360D40 0035C9A0 7E 6B 98 AE */ lbzx r19, r11, r19
+/* 80360D44 0035C9A4 7C E8 1B D6 */ divw r7, r8, r3
+/* 80360D48 0035C9A8 8A A6 00 74 */ lbz r21, 0x74(r6)
+/* 80360D4C 0035C9AC 7C D6 20 50 */ subf r6, r22, r4
+/* 80360D50 0035C9B0 7E 73 07 74 */ extsb r19, r19
+/* 80360D54 0035C9B4 7E A4 4A 78 */ xor r4, r21, r9
+/* 80360D58 0035C9B8 54 C6 18 3E */ rotlwi r6, r6, 3
+/* 80360D5C 0035C9BC 7C C6 B2 14 */ add r6, r6, r22
+/* 80360D60 0035C9C0 7C 89 07 74 */ extsb r9, r4
+/* 80360D64 0035C9C4 7C 85 1B D6 */ divw r4, r5, r3
+/* 80360D68 0035C9C8 54 B7 E8 04 */ slwi r23, r5, 0x1d
+/* 80360D6C 0035C9CC 54 B6 0F FE */ srwi r22, r5, 0x1f
+/* 80360D70 0035C9D0 54 18 E8 04 */ slwi r24, r0, 0x1d
+/* 80360D74 0035C9D4 7C DA 32 14 */ add r6, r26, r6
+/* 80360D78 0035C9D8 7E 6A 99 D6 */ mullw r19, r10, r19
+/* 80360D7C 0035C9DC 7D 56 B8 50 */ subf r10, r22, r23
+/* 80360D80 0035C9E0 55 57 18 3E */ rotlwi r23, r10, 3
+/* 80360D84 0035C9E4 54 0A 0F FE */ srwi r10, r0, 0x1f
+/* 80360D88 0035C9E8 7E A7 19 D6 */ mullw r21, r7, r3
+/* 80360D8C 0035C9EC 7E D7 B2 14 */ add r22, r23, r22
+/* 80360D90 0035C9F0 56 67 E8 04 */ slwi r7, r19, 0x1d
+/* 80360D94 0035C9F4 56 73 0F FE */ srwi r19, r19, 0x1f
+/* 80360D98 0035C9F8 7E FA B2 14 */ add r23, r26, r22
+/* 80360D9C 0035C9FC 7E 93 38 50 */ subf r20, r19, r7
+/* 80360DA0 0035CA00 7C EA C0 50 */ subf r7, r10, r24
+/* 80360DA4 0035CA04 56 94 18 3E */ rotlwi r20, r20, 3
+/* 80360DA8 0035CA08 7E 74 9A 14 */ add r19, r20, r19
+/* 80360DAC 0035CA0C 7E D5 40 50 */ subf r22, r21, r8
+/* 80360DB0 0035CA10 7E 9A 9A 14 */ add r20, r26, r19
+/* 80360DB4 0035CA14 54 E7 18 3E */ rotlwi r7, r7, 3
+/* 80360DB8 0035CA18 8A B4 00 74 */ lbz r21, 0x74(r20)
+/* 80360DBC 0035CA1C 7C E7 52 14 */ add r7, r7, r10
+/* 80360DC0 0035CA20 7F 00 1B D6 */ divw r24, r0, r3
+/* 80360DC4 0035CA24 7E A9 4A 78 */ xor r9, r21, r9
+/* 80360DC8 0035CA28 99 34 00 74 */ stb r9, 0x74(r20)
+/* 80360DCC 0035CA2C 7C FA 3A 14 */ add r7, r26, r7
+/* 80360DD0 0035CA30 7D 2B B0 AE */ lbzx r9, r11, r22
+/* 80360DD4 0035CA34 7D 2A 07 74 */ extsb r10, r9
+/* 80360DD8 0035CA38 89 26 00 74 */ lbz r9, 0x74(r6)
+/* 80360DDC 0035CA3C 7D 48 51 D6 */ mullw r10, r8, r10
+/* 80360DE0 0035CA40 88 D9 00 05 */ lbz r6, 5(r25)
+/* 80360DE4 0035CA44 7D 26 32 78 */ xor r6, r9, r6
+/* 80360DE8 0035CA48 7C C8 07 74 */ extsb r8, r6
+/* 80360DEC 0035CA4C 55 46 E8 04 */ slwi r6, r10, 0x1d
+/* 80360DF0 0035CA50 55 49 0F FE */ srwi r9, r10, 0x1f
+/* 80360DF4 0035CA54 7C C9 30 50 */ subf r6, r9, r6
+/* 80360DF8 0035CA58 54 C6 18 3E */ rotlwi r6, r6, 3
+/* 80360DFC 0035CA5C 7D 26 4A 14 */ add r9, r6, r9
+/* 80360E00 0035CA60 7C 84 19 D6 */ mullw r4, r4, r3
+/* 80360E04 0035CA64 7D 5A 4A 14 */ add r10, r26, r9
+/* 80360E08 0035CA68 89 2A 00 74 */ lbz r9, 0x74(r10)
+/* 80360E0C 0035CA6C 7D 28 42 78 */ xor r8, r9, r8
+/* 80360E10 0035CA70 99 0A 00 74 */ stb r8, 0x74(r10)
+/* 80360E14 0035CA74 7C C4 28 50 */ subf r6, r4, r5
+/* 80360E18 0035CA78 7C 98 19 D6 */ mullw r4, r24, r3
+/* 80360E1C 0035CA7C 7C CB 30 AE */ lbzx r6, r11, r6
+/* 80360E20 0035CA80 89 17 00 74 */ lbz r8, 0x74(r23)
+/* 80360E24 0035CA84 7C C9 07 74 */ extsb r9, r6
+/* 80360E28 0035CA88 88 D9 00 06 */ lbz r6, 6(r25)
+/* 80360E2C 0035CA8C 7D 25 49 D6 */ mullw r9, r5, r9
+/* 80360E30 0035CA90 7D 05 32 78 */ xor r5, r8, r6
+/* 80360E34 0035CA94 7C 84 00 50 */ subf r4, r4, r0
+/* 80360E38 0035CA98 7C A5 07 74 */ extsb r5, r5
+/* 80360E3C 0035CA9C 55 26 E8 04 */ slwi r6, r9, 0x1d
+/* 80360E40 0035CAA0 55 28 0F FE */ srwi r8, r9, 0x1f
+/* 80360E44 0035CAA4 7C C8 30 50 */ subf r6, r8, r6
+/* 80360E48 0035CAA8 54 C6 18 3E */ rotlwi r6, r6, 3
+/* 80360E4C 0035CAAC 7C C6 42 14 */ add r6, r6, r8
+/* 80360E50 0035CAB0 7D 1A 32 14 */ add r8, r26, r6
+/* 80360E54 0035CAB4 88 C8 00 74 */ lbz r6, 0x74(r8)
+/* 80360E58 0035CAB8 7C C5 2A 78 */ xor r5, r6, r5
+/* 80360E5C 0035CABC 98 A8 00 74 */ stb r5, 0x74(r8)
+/* 80360E60 0035CAC0 7C 8B 20 AE */ lbzx r4, r11, r4
+/* 80360E64 0035CAC4 88 A7 00 74 */ lbz r5, 0x74(r7)
+/* 80360E68 0035CAC8 7C 86 07 74 */ extsb r6, r4
+/* 80360E6C 0035CACC 88 99 00 07 */ lbz r4, 7(r25)
+/* 80360E70 0035CAD0 7C C0 31 D6 */ mullw r6, r0, r6
+/* 80360E74 0035CAD4 7C A0 22 78 */ xor r0, r5, r4
+/* 80360E78 0035CAD8 7C 00 07 74 */ extsb r0, r0
+/* 80360E7C 0035CADC 54 C4 E8 04 */ slwi r4, r6, 0x1d
+/* 80360E80 0035CAE0 54 C5 0F FE */ srwi r5, r6, 0x1f
+/* 80360E84 0035CAE4 7C 85 20 50 */ subf r4, r5, r4
+/* 80360E88 0035CAE8 54 84 18 3E */ rotlwi r4, r4, 3
+/* 80360E8C 0035CAEC 7C 84 2A 14 */ add r4, r4, r5
+/* 80360E90 0035CAF0 7C BA 22 14 */ add r5, r26, r4
+/* 80360E94 0035CAF4 88 85 00 74 */ lbz r4, 0x74(r5)
+/* 80360E98 0035CAF8 7C 80 02 78 */ xor r0, r4, r0
+/* 80360E9C 0035CAFC 98 05 00 74 */ stb r0, 0x74(r5)
+/* 80360EA0 0035CB00 3B 39 00 08 */ addi r25, r25, 8
+/* 80360EA4 0035CB04 39 8C 00 08 */ addi r12, r12, 8
+/* 80360EA8 0035CB08 42 00 FC BC */ bdnz lbl_80360B64
+lbl_80360EAC:
+/* 80360EAC 0035CB0C 7C 9C F2 14 */ add r4, r28, r30
+/* 80360EB0 0035CB10 7C 0C E8 50 */ subf r0, r12, r29
+/* 80360EB4 0035CB14 7C 8C 22 14 */ add r4, r12, r4
+/* 80360EB8 0035CB18 7C 09 03 A6 */ mtctr r0
+/* 80360EBC 0035CB1C 7C 0C E8 00 */ cmpw r12, r29
+/* 80360EC0 0035CB20 40 80 00 74 */ bge lbl_80360F34
+lbl_80360EC4:
+/* 80360EC4 0035CB24 7C EC 1B D6 */ divw r7, r12, r3
+/* 80360EC8 0035CB28 88 04 00 00 */ lbz r0, 0(r4)
+/* 80360ECC 0035CB2C 55 85 E8 04 */ slwi r5, r12, 0x1d
+/* 80360ED0 0035CB30 55 86 0F FE */ srwi r6, r12, 0x1f
+/* 80360ED4 0035CB34 38 84 00 01 */ addi r4, r4, 1
+/* 80360ED8 0035CB38 7C A6 28 50 */ subf r5, r6, r5
+/* 80360EDC 0035CB3C 7C E7 19 D6 */ mullw r7, r7, r3
+/* 80360EE0 0035CB40 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 80360EE4 0035CB44 7C A5 32 14 */ add r5, r5, r6
+/* 80360EE8 0035CB48 7C BA 2A 14 */ add r5, r26, r5
+/* 80360EEC 0035CB4C 7C C7 60 50 */ subf r6, r7, r12
+/* 80360EF0 0035CB50 88 A5 00 74 */ lbz r5, 0x74(r5)
+/* 80360EF4 0035CB54 7C CB 30 AE */ lbzx r6, r11, r6
+/* 80360EF8 0035CB58 7C A0 02 78 */ xor r0, r5, r0
+/* 80360EFC 0035CB5C 7C C5 07 74 */ extsb r5, r6
+/* 80360F00 0035CB60 7C CC 29 D6 */ mullw r6, r12, r5
+/* 80360F04 0035CB64 7C 00 07 74 */ extsb r0, r0
+/* 80360F08 0035CB68 39 8C 00 01 */ addi r12, r12, 1
+/* 80360F0C 0035CB6C 54 C5 E8 04 */ slwi r5, r6, 0x1d
+/* 80360F10 0035CB70 54 C6 0F FE */ srwi r6, r6, 0x1f
+/* 80360F14 0035CB74 7C A6 28 50 */ subf r5, r6, r5
+/* 80360F18 0035CB78 54 A5 18 3E */ rotlwi r5, r5, 3
+/* 80360F1C 0035CB7C 7C A5 32 14 */ add r5, r5, r6
+/* 80360F20 0035CB80 7C DA 2A 14 */ add r6, r26, r5
+/* 80360F24 0035CB84 88 A6 00 74 */ lbz r5, 0x74(r6)
+/* 80360F28 0035CB88 7C A0 02 78 */ xor r0, r5, r0
+/* 80360F2C 0035CB8C 98 06 00 74 */ stb r0, 0x74(r6)
+/* 80360F30 0035CB90 42 00 FF 94 */ bdnz lbl_80360EC4
+lbl_80360F34:
+/* 80360F34 0035CB94 38 7A 06 C0 */ addi r3, r26, 0x6c0
+/* 80360F38 0035CB98 38 9A 00 74 */ addi r4, r26, 0x74
+/* 80360F3C 0035CB9C 38 A0 00 08 */ li r5, 8
+/* 80360F40 0035CBA0 4B FF B6 5D */ bl GOACryptInit
+/* 80360F44 0035CBA4 38 00 00 01 */ li r0, 1
+/* 80360F48 0035CBA8 38 7A 07 D0 */ addi r3, r26, 0x7d0
+/* 80360F4C 0035CBAC 90 1A 07 CC */ stw r0, 0x7cc(r26)
+/* 80360F50 0035CBB0 38 9C 00 01 */ addi r4, r28, 1
+/* 80360F54 0035CBB4 38 A0 00 02 */ li r5, 2
+/* 80360F58 0035CBB8 4B CA 30 A9 */ bl memcpy
+/* 80360F5C 0035CBBC A0 7A 07 D0 */ lhz r3, 0x7d0(r26)
+/* 80360F60 0035CBC0 4B F9 5E 11 */ bl SONtoHs
+/* 80360F64 0035CBC4 B0 7A 07 D0 */ sth r3, 0x7d0(r26)
+/* 80360F68 0035CBC8 7F 9C FA 14 */ add r28, r28, r31
+/* 80360F6C 0035CBCC 7F 7F D8 50 */ subf r27, r31, r27
+/* 80360F70 0035CBD0 38 7A 06 C0 */ addi r3, r26, 0x6c0
+/* 80360F74 0035CBD4 7F 84 E3 78 */ mr r4, r28
+/* 80360F78 0035CBD8 7F 65 DB 78 */ mr r5, r27
+/* 80360F7C 0035CBDC 4B FF B8 CD */ bl GOADecrypt
+lbl_80360F80:
+/* 80360F80 0035CBE0 2C 1B 00 06 */ cmpwi r27, 6
+/* 80360F84 0035CBE4 41 80 03 D4 */ blt lbl_80361358
+/* 80360F88 0035CBE8 7F 84 E3 78 */ mr r4, r28
+/* 80360F8C 0035CBEC 38 7A 06 A4 */ addi r3, r26, 0x6a4
+/* 80360F90 0035CBF0 38 A0 00 04 */ li r5, 4
+/* 80360F94 0035CBF4 4B CA 30 6D */ bl memcpy
+/* 80360F98 0035CBF8 81 9A 04 88 */ lwz r12, 0x488(r26)
+/* 80360F9C 0035CBFC 7F 43 D3 78 */ mr r3, r26
+/* 80360FA0 0035CC00 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 80360FA4 0035CC04 38 80 00 06 */ li r4, 6
+/* 80360FA8 0035CC08 80 DA 04 94 */ lwz r6, 0x494(r26)
+/* 80360FAC 0035CC0C 7D 89 03 A6 */ mtctr r12
+/* 80360FB0 0035CC10 4E 80 04 21 */ bctrl
+/* 80360FB4 0035CC14 38 7A 06 AC */ addi r3, r26, 0x6ac
+/* 80360FB8 0035CC18 38 9C 00 04 */ addi r4, r28, 4
+/* 80360FBC 0035CC1C 38 A0 00 02 */ li r5, 2
+/* 80360FC0 0035CC20 4B CA 30 41 */ bl memcpy
+/* 80360FC4 0035CC24 A0 1A 06 AC */ lhz r0, 0x6ac(r26)
+/* 80360FC8 0035CC28 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80360FCC 0035CC2C 40 82 00 70 */ bne lbl_8036103C
+/* 80360FD0 0035CC30 34 1B FF FA */ addic. r0, r27, -6
+/* 80360FD4 0035CC34 38 80 00 00 */ li r4, 0
+/* 80360FD8 0035CC38 7C 09 03 A6 */ mtctr r0
+/* 80360FDC 0035CC3C 40 81 00 24 */ ble lbl_80361000
+lbl_80360FE0:
+/* 80360FE0 0035CC40 7C 7C 22 14 */ add r3, r28, r4
+/* 80360FE4 0035CC44 88 03 00 06 */ lbz r0, 6(r3)
+/* 80360FE8 0035CC48 7C 00 07 75 */ extsb. r0, r0
+/* 80360FEC 0035CC4C 40 82 00 0C */ bne lbl_80360FF8
+/* 80360FF0 0035CC50 38 04 00 01 */ addi r0, r4, 1
+/* 80360FF4 0035CC54 48 00 00 10 */ b lbl_80361004
+lbl_80360FF8:
+/* 80360FF8 0035CC58 38 84 00 01 */ addi r4, r4, 1
+/* 80360FFC 0035CC5C 42 00 FF E4 */ bdnz lbl_80360FE0
+lbl_80361000:
+/* 80361000 0035CC60 38 00 FF FF */ li r0, -1
+lbl_80361004:
+/* 80361004 0035CC64 2C 00 FF FF */ cmpwi r0, -1
+/* 80361008 0035CC68 41 82 03 50 */ beq lbl_80361358
+/* 8036100C 0035CC6C 38 1C 00 06 */ addi r0, r28, 6
+/* 80361010 0035CC70 81 9A 04 88 */ lwz r12, 0x488(r26)
+/* 80361014 0035CC74 90 1A 06 B0 */ stw r0, 0x6b0(r26)
+/* 80361018 0035CC78 7F 43 D3 78 */ mr r3, r26
+/* 8036101C 0035CC7C 80 DA 04 94 */ lwz r6, 0x494(r26)
+/* 80361020 0035CC80 38 80 00 05 */ li r4, 5
+/* 80361024 0035CC84 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 80361028 0035CC88 7D 89 03 A6 */ mtctr r12
+/* 8036102C 0035CC8C 4E 80 04 21 */ bctrl
+/* 80361030 0035CC90 80 1A 00 7C */ lwz r0, 0x7c(r26)
+/* 80361034 0035CC94 2C 00 00 00 */ cmpwi r0, 0
+/* 80361038 0035CC98 41 82 03 20 */ beq lbl_80361358
+lbl_8036103C:
+/* 8036103C 0035CC9C 80 1A 07 C8 */ lwz r0, 0x7c8(r26)
+/* 80361040 0035CCA0 3B 9C 00 06 */ addi r28, r28, 6
+/* 80361044 0035CCA4 3B 7B FF FA */ addi r27, r27, -6
+/* 80361048 0035CCA8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 8036104C 0035CCAC 40 82 00 10 */ bne lbl_8036105C
+/* 80361050 0035CCB0 A0 1A 06 AC */ lhz r0, 0x6ac(r26)
+/* 80361054 0035CCB4 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80361058 0035CCB8 40 82 00 18 */ bne lbl_80361070
+lbl_8036105C:
+/* 8036105C 0035CCBC 38 60 00 05 */ li r3, 5
+/* 80361060 0035CCC0 38 00 00 02 */ li r0, 2
+/* 80361064 0035CCC4 90 7A 07 CC */ stw r3, 0x7cc(r26)
+/* 80361068 0035CCC8 90 1A 00 00 */ stw r0, 0(r26)
+/* 8036106C 0035CCCC 48 00 02 EC */ b lbl_80361358
+lbl_80361070:
+/* 80361070 0035CCD0 38 60 00 02 */ li r3, 2
+/* 80361074 0035CCD4 38 00 FF FF */ li r0, -1
+/* 80361078 0035CCD8 90 7A 07 CC */ stw r3, 0x7cc(r26)
+/* 8036107C 0035CCDC 90 1A 04 84 */ stw r0, 0x484(r26)
+lbl_80361080:
+/* 80361080 0035CCE0 80 1A 04 84 */ lwz r0, 0x484(r26)
+/* 80361084 0035CCE4 2C 00 FF FF */ cmpwi r0, -1
+/* 80361088 0035CCE8 40 82 00 3C */ bne lbl_803610C4
+/* 8036108C 0035CCEC 2C 1B 00 01 */ cmpwi r27, 1
+/* 80361090 0035CCF0 41 80 02 C8 */ blt lbl_80361358
+/* 80361094 0035CCF4 88 9C 00 00 */ lbz r4, 0(r28)
+/* 80361098 0035CCF8 38 60 00 08 */ li r3, 8
+/* 8036109C 0035CCFC 38 A0 00 00 */ li r5, 0
+/* 803610A0 0035CD00 90 9A 04 84 */ stw r4, 0x484(r26)
+/* 803610A4 0035CD04 4B FD 4D 15 */ bl ArrayNew
+/* 803610A8 0035CD08 2C 03 00 00 */ cmpwi r3, 0
+/* 803610AC 0035CD0C 90 7A 00 08 */ stw r3, 8(r26)
+/* 803610B0 0035CD10 40 82 00 0C */ bne lbl_803610BC
+/* 803610B4 0035CD14 38 60 00 05 */ li r3, 5
+/* 803610B8 0035CD18 48 00 02 D0 */ b lbl_80361388
+lbl_803610BC:
+/* 803610BC 0035CD1C 3B 9C 00 01 */ addi r28, r28, 1
+/* 803610C0 0035CD20 3B 7B FF FF */ addi r27, r27, -1
+lbl_803610C4:
+/* 803610C4 0035CD24 3B 20 00 01 */ li r25, 1
+/* 803610C8 0035CD28 48 00 00 C8 */ b lbl_80361190
+lbl_803610CC:
+/* 803610CC 0035CD2C 2C 1B 00 02 */ cmpwi r27, 2
+/* 803610D0 0035CD30 41 80 00 D4 */ blt lbl_803611A4
+/* 803610D4 0035CD34 34 1B FF FF */ addic. r0, r27, -1
+/* 803610D8 0035CD38 38 80 00 00 */ li r4, 0
+/* 803610DC 0035CD3C 7C 09 03 A6 */ mtctr r0
+/* 803610E0 0035CD40 40 81 00 24 */ ble lbl_80361104
+lbl_803610E4:
+/* 803610E4 0035CD44 7C 7C 22 14 */ add r3, r28, r4
+/* 803610E8 0035CD48 88 03 00 01 */ lbz r0, 1(r3)
+/* 803610EC 0035CD4C 7C 00 07 75 */ extsb. r0, r0
+/* 803610F0 0035CD50 40 82 00 0C */ bne lbl_803610FC
+/* 803610F4 0035CD54 3A 64 00 01 */ addi r19, r4, 1
+/* 803610F8 0035CD58 48 00 00 10 */ b lbl_80361108
+lbl_803610FC:
+/* 803610FC 0035CD5C 38 84 00 01 */ addi r4, r4, 1
+/* 80361100 0035CD60 42 00 FF E4 */ bdnz lbl_803610E4
+lbl_80361104:
+/* 80361104 0035CD64 3A 60 FF FF */ li r19, -1
+lbl_80361108:
+/* 80361108 0035CD68 2C 13 FF FF */ cmpwi r19, -1
+/* 8036110C 0035CD6C 41 82 00 98 */ beq lbl_803611A4
+/* 80361110 0035CD70 88 9C 00 00 */ lbz r4, 0(r28)
+/* 80361114 0035CD74 38 1C 00 01 */ addi r0, r28, 1
+/* 80361118 0035CD78 7F 43 D3 78 */ mr r3, r26
+/* 8036111C 0035CD7C 90 81 00 1C */ stw r4, 0x1c(r1)
+/* 80361120 0035CD80 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80361124 0035CD84 4B FF C3 39 */ bl SBRefStrHash
+/* 80361128 0035CD88 38 81 00 10 */ addi r4, r1, 0x10
+/* 8036112C 0035CD8C 4B FD 59 F1 */ bl TableLookup
+/* 80361130 0035CD90 2C 03 00 00 */ cmpwi r3, 0
+/* 80361134 0035CD94 41 82 00 18 */ beq lbl_8036114C
+/* 80361138 0035CD98 80 83 00 04 */ lwz r4, 4(r3)
+/* 8036113C 0035CD9C 38 04 00 01 */ addi r0, r4, 1
+/* 80361140 0035CDA0 90 03 00 04 */ stw r0, 4(r3)
+/* 80361144 0035CDA4 80 03 00 00 */ lwz r0, 0(r3)
+/* 80361148 0035CDA8 48 00 00 28 */ b lbl_80361170
+lbl_8036114C:
+/* 8036114C 0035CDAC 38 7C 00 01 */ addi r3, r28, 1
+/* 80361150 0035CDB0 4B FD 7D B5 */ bl goastrdup
+/* 80361154 0035CDB4 90 61 00 10 */ stw r3, 0x10(r1)
+/* 80361158 0035CDB8 7F 43 D3 78 */ mr r3, r26
+/* 8036115C 0035CDBC 93 21 00 14 */ stw r25, 0x14(r1)
+/* 80361160 0035CDC0 4B FF C2 FD */ bl SBRefStrHash
+/* 80361164 0035CDC4 38 81 00 10 */ addi r4, r1, 0x10
+/* 80361168 0035CDC8 4B FD 58 69 */ bl TableEnter
+/* 8036116C 0035CDCC 80 01 00 10 */ lwz r0, 0x10(r1)
+lbl_80361170:
+/* 80361170 0035CDD0 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80361174 0035CDD4 38 81 00 18 */ addi r4, r1, 0x18
+/* 80361178 0035CDD8 80 7A 00 08 */ lwz r3, 8(r26)
+/* 8036117C 0035CDDC 4B FD 4D A5 */ bl ArrayAppend
+/* 80361180 0035CDE0 7C 73 E2 14 */ add r3, r19, r28
+/* 80361184 0035CDE4 38 13 00 01 */ addi r0, r19, 1
+/* 80361188 0035CDE8 3B 83 00 01 */ addi r28, r3, 1
+/* 8036118C 0035CDEC 7F 60 D8 50 */ subf r27, r0, r27
+lbl_80361190:
+/* 80361190 0035CDF0 80 7A 00 08 */ lwz r3, 8(r26)
+/* 80361194 0035CDF4 4B FD 4D 55 */ bl ArrayLength
+/* 80361198 0035CDF8 80 1A 04 84 */ lwz r0, 0x484(r26)
+/* 8036119C 0035CDFC 7C 00 18 00 */ cmpw r0, r3
+/* 803611A0 0035CE00 41 81 FF 2C */ bgt lbl_803610CC
+lbl_803611A4:
+/* 803611A4 0035CE04 80 7A 00 08 */ lwz r3, 8(r26)
+/* 803611A8 0035CE08 4B FD 4D 41 */ bl ArrayLength
+/* 803611AC 0035CE0C 80 1A 04 84 */ lwz r0, 0x484(r26)
+/* 803611B0 0035CE10 7C 00 18 00 */ cmpw r0, r3
+/* 803611B4 0035CE14 41 81 01 A4 */ bgt lbl_80361358
+/* 803611B8 0035CE18 38 60 00 03 */ li r3, 3
+/* 803611BC 0035CE1C 38 00 FF FF */ li r0, -1
+/* 803611C0 0035CE20 90 7A 07 CC */ stw r3, 0x7cc(r26)
+/* 803611C4 0035CE24 90 1A 04 84 */ stw r0, 0x484(r26)
+lbl_803611C8:
+/* 803611C8 0035CE28 80 1A 04 84 */ lwz r0, 0x484(r26)
+/* 803611CC 0035CE2C 2C 00 FF FF */ cmpwi r0, -1
+/* 803611D0 0035CE30 40 82 00 24 */ bne lbl_803611F4
+/* 803611D4 0035CE34 2C 1B 00 01 */ cmpwi r27, 1
+/* 803611D8 0035CE38 41 80 01 80 */ blt lbl_80361358
+/* 803611DC 0035CE3C 88 7C 00 00 */ lbz r3, 0(r28)
+/* 803611E0 0035CE40 38 00 00 00 */ li r0, 0
+/* 803611E4 0035CE44 3B 9C 00 01 */ addi r28, r28, 1
+/* 803611E8 0035CE48 3B 7B FF FF */ addi r27, r27, -1
+/* 803611EC 0035CE4C 90 7A 04 84 */ stw r3, 0x484(r26)
+/* 803611F0 0035CE50 90 1A 04 80 */ stw r0, 0x480(r26)
+lbl_803611F4:
+/* 803611F4 0035CE54 3B 20 00 01 */ li r25, 1
+/* 803611F8 0035CE58 48 00 00 B8 */ b lbl_803612B0
+lbl_803611FC:
+/* 803611FC 0035CE5C 7F 83 E3 78 */ mr r3, r28
+/* 80361200 0035CE60 38 80 00 00 */ li r4, 0
+/* 80361204 0035CE64 7F 69 03 A6 */ mtctr r27
+/* 80361208 0035CE68 2C 1B 00 00 */ cmpwi r27, 0
+/* 8036120C 0035CE6C 40 81 00 24 */ ble lbl_80361230
+lbl_80361210:
+/* 80361210 0035CE70 88 03 00 00 */ lbz r0, 0(r3)
+/* 80361214 0035CE74 7C 00 07 75 */ extsb. r0, r0
+/* 80361218 0035CE78 40 82 00 0C */ bne lbl_80361224
+/* 8036121C 0035CE7C 3A 64 00 01 */ addi r19, r4, 1
+/* 80361220 0035CE80 48 00 00 14 */ b lbl_80361234
+lbl_80361224:
+/* 80361224 0035CE84 38 84 00 01 */ addi r4, r4, 1
+/* 80361228 0035CE88 38 63 00 01 */ addi r3, r3, 1
+/* 8036122C 0035CE8C 42 00 FF E4 */ bdnz lbl_80361210
+lbl_80361230:
+/* 80361230 0035CE90 3A 60 FF FF */ li r19, -1
+lbl_80361234:
+/* 80361234 0035CE94 2C 13 FF FF */ cmpwi r19, -1
+/* 80361238 0035CE98 41 82 00 88 */ beq lbl_803612C0
+/* 8036123C 0035CE9C 93 81 00 08 */ stw r28, 8(r1)
+/* 80361240 0035CEA0 7F 43 D3 78 */ mr r3, r26
+/* 80361244 0035CEA4 4B FF C2 19 */ bl SBRefStrHash
+/* 80361248 0035CEA8 38 81 00 08 */ addi r4, r1, 8
+/* 8036124C 0035CEAC 4B FD 58 D1 */ bl TableLookup
+/* 80361250 0035CEB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80361254 0035CEB4 41 82 00 18 */ beq lbl_8036126C
+/* 80361258 0035CEB8 80 83 00 04 */ lwz r4, 4(r3)
+/* 8036125C 0035CEBC 38 04 00 01 */ addi r0, r4, 1
+/* 80361260 0035CEC0 90 03 00 04 */ stw r0, 4(r3)
+/* 80361264 0035CEC4 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80361268 0035CEC8 48 00 00 28 */ b lbl_80361290
+lbl_8036126C:
+/* 8036126C 0035CECC 7F 83 E3 78 */ mr r3, r28
+/* 80361270 0035CED0 4B FD 7C 95 */ bl goastrdup
+/* 80361274 0035CED4 90 61 00 08 */ stw r3, 8(r1)
+/* 80361278 0035CED8 7F 43 D3 78 */ mr r3, r26
+/* 8036127C 0035CEDC 93 21 00 0C */ stw r25, 0xc(r1)
+/* 80361280 0035CEE0 4B FF C1 DD */ bl SBRefStrHash
+/* 80361284 0035CEE4 38 81 00 08 */ addi r4, r1, 8
+/* 80361288 0035CEE8 4B FD 57 49 */ bl TableEnter
+/* 8036128C 0035CEEC 80 A1 00 08 */ lwz r5, 8(r1)
+lbl_80361290:
+/* 80361290 0035CEF0 80 7A 04 80 */ lwz r3, 0x480(r26)
+/* 80361294 0035CEF4 7F 9C 9A 14 */ add r28, r28, r19
+/* 80361298 0035CEF8 7F 73 D8 50 */ subf r27, r19, r27
+/* 8036129C 0035CEFC 54 60 10 3A */ slwi r0, r3, 2
+/* 803612A0 0035CF00 38 83 00 01 */ addi r4, r3, 1
+/* 803612A4 0035CF04 7C 7A 02 14 */ add r3, r26, r0
+/* 803612A8 0035CF08 90 A3 00 84 */ stw r5, 0x84(r3)
+/* 803612AC 0035CF0C 90 9A 04 80 */ stw r4, 0x480(r26)
+lbl_803612B0:
+/* 803612B0 0035CF10 80 BA 04 80 */ lwz r5, 0x480(r26)
+/* 803612B4 0035CF14 80 DA 04 84 */ lwz r6, 0x484(r26)
+/* 803612B8 0035CF18 7C 06 28 00 */ cmpw r6, r5
+/* 803612BC 0035CF1C 41 81 FF 40 */ bgt lbl_803611FC
+lbl_803612C0:
+/* 803612C0 0035CF20 7C 06 28 00 */ cmpw r6, r5
+/* 803612C4 0035CF24 41 81 00 94 */ bgt lbl_80361358
+/* 803612C8 0035CF28 38 00 00 04 */ li r0, 4
+/* 803612CC 0035CF2C 90 1A 07 CC */ stw r0, 0x7cc(r26)
+lbl_803612D0:
+/* 803612D0 0035CF30 2C 1B 00 05 */ cmpwi r27, 5
+/* 803612D4 0035CF34 41 80 00 84 */ blt lbl_80361358
+lbl_803612D8:
+/* 803612D8 0035CF38 7F 43 D3 78 */ mr r3, r26
+/* 803612DC 0035CF3C 7F 84 E3 78 */ mr r4, r28
+/* 803612E0 0035CF40 7F 65 DB 78 */ mr r5, r27
+/* 803612E4 0035CF44 4B FF F5 DD */ bl IncomingListParseServer
+/* 803612E8 0035CF48 2C 03 FF FE */ cmpwi r3, -2
+/* 803612EC 0035CF4C 40 82 00 0C */ bne lbl_803612F8
+/* 803612F0 0035CF50 38 60 00 05 */ li r3, 5
+/* 803612F4 0035CF54 48 00 00 94 */ b lbl_80361388
+lbl_803612F8:
+/* 803612F8 0035CF58 2C 03 FF FF */ cmpwi r3, -1
+/* 803612FC 0035CF5C 40 82 00 3C */ bne lbl_80361338
+/* 80361300 0035CF60 38 60 00 05 */ li r3, 5
+/* 80361304 0035CF64 38 00 00 02 */ li r0, 2
+/* 80361308 0035CF68 90 7A 07 CC */ stw r3, 0x7cc(r26)
+/* 8036130C 0035CF6C 7F 43 D3 78 */ mr r3, r26
+/* 80361310 0035CF70 81 9A 04 88 */ lwz r12, 0x488(r26)
+/* 80361314 0035CF74 38 80 00 03 */ li r4, 3
+/* 80361318 0035CF78 90 1A 00 00 */ stw r0, 0(r26)
+/* 8036131C 0035CF7C 80 DA 04 94 */ lwz r6, 0x494(r26)
+/* 80361320 0035CF80 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 80361324 0035CF84 7D 89 03 A6 */ mtctr r12
+/* 80361328 0035CF88 3B 7B FF FB */ addi r27, r27, -5
+/* 8036132C 0035CF8C 3B 9C 00 05 */ addi r28, r28, 5
+/* 80361330 0035CF90 4E 80 04 21 */ bctrl
+/* 80361334 0035CF94 48 00 00 24 */ b lbl_80361358
+lbl_80361338:
+/* 80361338 0035CF98 80 1A 00 7C */ lwz r0, 0x7c(r26)
+/* 8036133C 0035CF9C 7F 9C 1A 14 */ add r28, r28, r3
+/* 80361340 0035CFA0 7F 63 D8 50 */ subf r27, r3, r27
+/* 80361344 0035CFA4 2C 00 00 00 */ cmpwi r0, 0
+/* 80361348 0035CFA8 40 82 00 08 */ bne lbl_80361350
+/* 8036134C 0035CFAC 38 60 00 00 */ li r3, 0
+lbl_80361350:
+/* 80361350 0035CFB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80361354 0035CFB4 40 82 FF 84 */ bne lbl_803612D8
+lbl_80361358:
+/* 80361358 0035CFB8 80 7A 00 7C */ lwz r3, 0x7c(r26)
+/* 8036135C 0035CFBC 2C 03 00 00 */ cmpwi r3, 0
+/* 80361360 0035CFC0 40 82 00 0C */ bne lbl_8036136C
+/* 80361364 0035CFC4 38 60 00 00 */ li r3, 0
+/* 80361368 0035CFC8 48 00 00 20 */ b lbl_80361388
+lbl_8036136C:
+/* 8036136C 0035CFCC 2C 1B 00 00 */ cmpwi r27, 0
+/* 80361370 0035CFD0 41 82 00 10 */ beq lbl_80361380
+/* 80361374 0035CFD4 7F 84 E3 78 */ mr r4, r28
+/* 80361378 0035CFD8 7F 65 DB 78 */ mr r5, r27
+/* 8036137C 0035CFDC 4B E6 8E F9 */ bl memmove
+lbl_80361380:
+/* 80361380 0035CFE0 93 7A 00 80 */ stw r27, 0x80(r26)
+/* 80361384 0035CFE4 38 60 00 00 */ li r3, 0
+lbl_80361388:
+/* 80361388 0035CFE8 39 61 00 60 */ addi r11, r1, 0x60
+/* 8036138C 0035CFEC 4B E6 5D C9 */ bl _restgpr_19
+/* 80361390 0035CFF0 80 01 00 64 */ lwz r0, 0x64(r1)
+/* 80361394 0035CFF4 7C 08 03 A6 */ mtlr r0
+/* 80361398 0035CFF8 38 21 00 60 */ addi r1, r1, 0x60
+/* 8036139C 0035CFFC 4E 80 00 20 */ blr
+
+.global ProcessPushKeyList
+ProcessPushKeyList:
+/* 803613A0 0035D000 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 803613A4 0035D004 7C 08 02 A6 */ mflr r0
+/* 803613A8 0035D008 90 01 00 44 */ stw r0, 0x44(r1)
+/* 803613AC 0035D00C 39 61 00 40 */ addi r11, r1, 0x40
+/* 803613B0 0035D010 4B E6 5D 71 */ bl _savegpr_25
+/* 803613B4 0035D014 80 03 00 08 */ lwz r0, 8(r3)
+/* 803613B8 0035D018 7C 7B 1B 78 */ mr r27, r3
+/* 803613BC 0035D01C 8B C4 00 00 */ lbz r30, 0(r4)
+/* 803613C0 0035D020 3B 84 00 01 */ addi r28, r4, 1
+/* 803613C4 0035D024 2C 00 00 00 */ cmpwi r0, 0
+/* 803613C8 0035D028 3B A5 FF FF */ addi r29, r5, -1
+/* 803613CC 0035D02C 41 82 00 80 */ beq lbl_8036144C
+/* 803613D0 0035D030 41 82 00 7C */ beq lbl_8036144C
+/* 803613D4 0035D034 3B 40 00 00 */ li r26, 0
+/* 803613D8 0035D038 48 00 00 54 */ b lbl_8036142C
+lbl_803613DC:
+/* 803613DC 0035D03C 80 7B 00 08 */ lwz r3, 8(r27)
+/* 803613E0 0035D040 7F 44 D3 78 */ mr r4, r26
+/* 803613E4 0035D044 4B FD 4B 0D */ bl ArrayNth
+/* 803613E8 0035D048 80 03 00 00 */ lwz r0, 0(r3)
+/* 803613EC 0035D04C 7F 63 DB 78 */ mr r3, r27
+/* 803613F0 0035D050 90 01 00 10 */ stw r0, 0x10(r1)
+/* 803613F4 0035D054 4B FF C0 69 */ bl SBRefStrHash
+/* 803613F8 0035D058 38 81 00 10 */ addi r4, r1, 0x10
+/* 803613FC 0035D05C 4B FD 57 21 */ bl TableLookup
+/* 80361400 0035D060 2C 03 00 00 */ cmpwi r3, 0
+/* 80361404 0035D064 41 82 00 24 */ beq lbl_80361428
+/* 80361408 0035D068 80 03 00 04 */ lwz r0, 4(r3)
+/* 8036140C 0035D06C 34 00 FF FF */ addic. r0, r0, -1
+/* 80361410 0035D070 90 03 00 04 */ stw r0, 4(r3)
+/* 80361414 0035D074 40 82 00 14 */ bne lbl_80361428
+/* 80361418 0035D078 7F 63 DB 78 */ mr r3, r27
+/* 8036141C 0035D07C 4B FF C0 41 */ bl SBRefStrHash
+/* 80361420 0035D080 38 81 00 10 */ addi r4, r1, 0x10
+/* 80361424 0035D084 4B FD 56 55 */ bl TableRemove
+lbl_80361428:
+/* 80361428 0035D088 3B 5A 00 01 */ addi r26, r26, 1
+lbl_8036142C:
+/* 8036142C 0035D08C 80 7B 00 08 */ lwz r3, 8(r27)
+/* 80361430 0035D090 4B FD 4A B9 */ bl ArrayLength
+/* 80361434 0035D094 7C 1A 18 00 */ cmpw r26, r3
+/* 80361438 0035D098 41 80 FF A4 */ blt lbl_803613DC
+/* 8036143C 0035D09C 80 7B 00 08 */ lwz r3, 8(r27)
+/* 80361440 0035D0A0 4B FD 4A 15 */ bl ArrayFree
+/* 80361444 0035D0A4 38 00 00 00 */ li r0, 0
+/* 80361448 0035D0A8 90 1B 00 08 */ stw r0, 8(r27)
+lbl_8036144C:
+/* 8036144C 0035D0AC 7F C4 F3 78 */ mr r4, r30
+/* 80361450 0035D0B0 38 60 00 08 */ li r3, 8
+/* 80361454 0035D0B4 38 A0 00 00 */ li r5, 0
+/* 80361458 0035D0B8 4B FD 49 61 */ bl ArrayNew
+/* 8036145C 0035D0BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80361460 0035D0C0 90 7B 00 08 */ stw r3, 8(r27)
+/* 80361464 0035D0C4 40 82 00 0C */ bne lbl_80361470
+/* 80361468 0035D0C8 38 60 00 05 */ li r3, 5
+/* 8036146C 0035D0CC 48 00 00 F4 */ b lbl_80361560
+lbl_80361470:
+/* 80361470 0035D0D0 3B E0 00 00 */ li r31, 0
+/* 80361474 0035D0D4 3B 40 00 01 */ li r26, 1
+/* 80361478 0035D0D8 48 00 00 DC */ b lbl_80361554
+lbl_8036147C:
+/* 8036147C 0035D0DC 2C 1D 00 02 */ cmpwi r29, 2
+/* 80361480 0035D0E0 40 80 00 0C */ bge lbl_8036148C
+/* 80361484 0035D0E4 38 60 00 04 */ li r3, 4
+/* 80361488 0035D0E8 48 00 00 D8 */ b lbl_80361560
+lbl_8036148C:
+/* 8036148C 0035D0EC 34 1D FF FF */ addic. r0, r29, -1
+/* 80361490 0035D0F0 38 80 00 00 */ li r4, 0
+/* 80361494 0035D0F4 7C 09 03 A6 */ mtctr r0
+/* 80361498 0035D0F8 40 81 00 24 */ ble lbl_803614BC
+lbl_8036149C:
+/* 8036149C 0035D0FC 7C 7C 22 14 */ add r3, r28, r4
+/* 803614A0 0035D100 88 03 00 01 */ lbz r0, 1(r3)
+/* 803614A4 0035D104 7C 00 07 75 */ extsb. r0, r0
+/* 803614A8 0035D108 40 82 00 0C */ bne lbl_803614B4
+/* 803614AC 0035D10C 3B 24 00 01 */ addi r25, r4, 1
+/* 803614B0 0035D110 48 00 00 10 */ b lbl_803614C0
+lbl_803614B4:
+/* 803614B4 0035D114 38 84 00 01 */ addi r4, r4, 1
+/* 803614B8 0035D118 42 00 FF E4 */ bdnz lbl_8036149C
+lbl_803614BC:
+/* 803614BC 0035D11C 3B 20 FF FF */ li r25, -1
+lbl_803614C0:
+/* 803614C0 0035D120 2C 19 FF FF */ cmpwi r25, -1
+/* 803614C4 0035D124 40 82 00 0C */ bne lbl_803614D0
+/* 803614C8 0035D128 38 60 00 04 */ li r3, 4
+/* 803614CC 0035D12C 48 00 00 94 */ b lbl_80361560
+lbl_803614D0:
+/* 803614D0 0035D130 88 9C 00 00 */ lbz r4, 0(r28)
+/* 803614D4 0035D134 38 1C 00 01 */ addi r0, r28, 1
+/* 803614D8 0035D138 7F 63 DB 78 */ mr r3, r27
+/* 803614DC 0035D13C 90 81 00 1C */ stw r4, 0x1c(r1)
+/* 803614E0 0035D140 90 01 00 08 */ stw r0, 8(r1)
+/* 803614E4 0035D144 4B FF BF 79 */ bl SBRefStrHash
+/* 803614E8 0035D148 38 81 00 08 */ addi r4, r1, 8
+/* 803614EC 0035D14C 4B FD 56 31 */ bl TableLookup
+/* 803614F0 0035D150 2C 03 00 00 */ cmpwi r3, 0
+/* 803614F4 0035D154 41 82 00 18 */ beq lbl_8036150C
+/* 803614F8 0035D158 80 83 00 04 */ lwz r4, 4(r3)
+/* 803614FC 0035D15C 38 04 00 01 */ addi r0, r4, 1
+/* 80361500 0035D160 90 03 00 04 */ stw r0, 4(r3)
+/* 80361504 0035D164 80 03 00 00 */ lwz r0, 0(r3)
+/* 80361508 0035D168 48 00 00 28 */ b lbl_80361530
+lbl_8036150C:
+/* 8036150C 0035D16C 38 7C 00 01 */ addi r3, r28, 1
+/* 80361510 0035D170 4B FD 79 F5 */ bl goastrdup
+/* 80361514 0035D174 90 61 00 08 */ stw r3, 8(r1)
+/* 80361518 0035D178 7F 63 DB 78 */ mr r3, r27
+/* 8036151C 0035D17C 93 41 00 0C */ stw r26, 0xc(r1)
+/* 80361520 0035D180 4B FF BF 3D */ bl SBRefStrHash
+/* 80361524 0035D184 38 81 00 08 */ addi r4, r1, 8
+/* 80361528 0035D188 4B FD 54 A9 */ bl TableEnter
+/* 8036152C 0035D18C 80 01 00 08 */ lwz r0, 8(r1)
+lbl_80361530:
+/* 80361530 0035D190 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80361534 0035D194 38 81 00 18 */ addi r4, r1, 0x18
+/* 80361538 0035D198 80 7B 00 08 */ lwz r3, 8(r27)
+/* 8036153C 0035D19C 4B FD 49 E5 */ bl ArrayAppend
+/* 80361540 0035D1A0 7C 79 E2 14 */ add r3, r25, r28
+/* 80361544 0035D1A4 38 19 00 01 */ addi r0, r25, 1
+/* 80361548 0035D1A8 3B 83 00 01 */ addi r28, r3, 1
+/* 8036154C 0035D1AC 3B FF 00 01 */ addi r31, r31, 1
+/* 80361550 0035D1B0 7F A0 E8 50 */ subf r29, r0, r29
+lbl_80361554:
+/* 80361554 0035D1B4 7C 1F F0 00 */ cmpw r31, r30
+/* 80361558 0035D1B8 41 80 FF 24 */ blt lbl_8036147C
+/* 8036155C 0035D1BC 38 60 00 00 */ li r3, 0
+lbl_80361560:
+/* 80361560 0035D1C0 39 61 00 40 */ addi r11, r1, 0x40
+/* 80361564 0035D1C4 4B E6 5C 09 */ bl _restgpr_25
+/* 80361568 0035D1C8 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 8036156C 0035D1CC 7C 08 03 A6 */ mtlr r0
+/* 80361570 0035D1D0 38 21 00 40 */ addi r1, r1, 0x40
+/* 80361574 0035D1D4 4E 80 00 20 */ blr
+
+.global ProcessPlayerSearch
+ProcessPlayerSearch:
+/* 80361578 0035D1D8 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8036157C 0035D1DC 7C 08 02 A6 */ mflr r0
+/* 80361580 0035D1E0 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80361584 0035D1E4 39 61 00 40 */ addi r11, r1, 0x40
+/* 80361588 0035D1E8 4B E6 5B 91 */ bl _savegpr_23
+/* 8036158C 0035D1EC 2C 05 00 02 */ cmpwi r5, 2
+/* 80361590 0035D1F0 7C 7B 1B 78 */ mr r27, r3
+/* 80361594 0035D1F4 40 80 00 0C */ bge lbl_803615A0
+/* 80361598 0035D1F8 38 60 00 04 */ li r3, 4
+/* 8036159C 0035D1FC 48 00 01 88 */ b lbl_80361724
+lbl_803615A0:
+/* 803615A0 0035D200 8B 04 00 00 */ lbz r24, 0(r4)
+/* 803615A4 0035D204 3B 84 00 02 */ addi r28, r4, 2
+/* 803615A8 0035D208 8B 24 00 01 */ lbz r25, 1(r4)
+/* 803615AC 0035D20C 3B A5 FF FE */ addi r29, r5, -2
+/* 803615B0 0035D210 3B C0 00 00 */ li r30, 0
+/* 803615B4 0035D214 3B 40 00 00 */ li r26, 0
+/* 803615B8 0035D218 48 00 01 2C */ b lbl_803616E4
+lbl_803615BC:
+/* 803615BC 0035D21C 7F 9F E3 78 */ mr r31, r28
+/* 803615C0 0035D220 7F 83 E3 78 */ mr r3, r28
+/* 803615C4 0035D224 38 80 00 00 */ li r4, 0
+/* 803615C8 0035D228 7F A9 03 A6 */ mtctr r29
+/* 803615CC 0035D22C 2C 1D 00 00 */ cmpwi r29, 0
+/* 803615D0 0035D230 40 81 00 24 */ ble lbl_803615F4
+lbl_803615D4:
+/* 803615D4 0035D234 88 03 00 00 */ lbz r0, 0(r3)
+/* 803615D8 0035D238 7C 00 07 75 */ extsb. r0, r0
+/* 803615DC 0035D23C 40 82 00 0C */ bne lbl_803615E8
+/* 803615E0 0035D240 38 04 00 01 */ addi r0, r4, 1
+/* 803615E4 0035D244 48 00 00 14 */ b lbl_803615F8
+lbl_803615E8:
+/* 803615E8 0035D248 38 84 00 01 */ addi r4, r4, 1
+/* 803615EC 0035D24C 38 63 00 01 */ addi r3, r3, 1
+/* 803615F0 0035D250 42 00 FF E4 */ bdnz lbl_803615D4
+lbl_803615F4:
+/* 803615F4 0035D254 38 00 FF FF */ li r0, -1
+lbl_803615F8:
+/* 803615F8 0035D258 2C 00 FF FF */ cmpwi r0, -1
+/* 803615FC 0035D25C 40 82 00 0C */ bne lbl_80361608
+/* 80361600 0035D260 38 60 00 04 */ li r3, 4
+/* 80361604 0035D264 48 00 01 20 */ b lbl_80361724
+lbl_80361608:
+/* 80361608 0035D268 7F A0 E8 50 */ subf r29, r0, r29
+/* 8036160C 0035D26C 7F 9C 02 14 */ add r28, r28, r0
+/* 80361610 0035D270 2C 1D 00 0B */ cmpwi r29, 0xb
+/* 80361614 0035D274 40 80 00 0C */ bge lbl_80361620
+/* 80361618 0035D278 38 60 00 04 */ li r3, 4
+/* 8036161C 0035D27C 48 00 01 08 */ b lbl_80361724
+lbl_80361620:
+/* 80361620 0035D280 7F 84 E3 78 */ mr r4, r28
+/* 80361624 0035D284 38 61 00 0C */ addi r3, r1, 0xc
+/* 80361628 0035D288 38 A0 00 04 */ li r5, 4
+/* 8036162C 0035D28C 4B CA 29 D5 */ bl memcpy
+/* 80361630 0035D290 38 61 00 08 */ addi r3, r1, 8
+/* 80361634 0035D294 38 9C 00 04 */ addi r4, r28, 4
+/* 80361638 0035D298 38 A0 00 02 */ li r5, 2
+/* 8036163C 0035D29C 4B CA 29 C5 */ bl memcpy
+/* 80361640 0035D2A0 38 61 00 10 */ addi r3, r1, 0x10
+/* 80361644 0035D2A4 38 9C 00 06 */ addi r4, r28, 6
+/* 80361648 0035D2A8 38 A0 00 04 */ li r5, 4
+/* 8036164C 0035D2AC 4B CA 29 B5 */ bl memcpy
+/* 80361650 0035D2B0 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 80361654 0035D2B4 4B F9 57 19 */ bl SONtoHl
+/* 80361658 0035D2B8 37 BD FF F6 */ addic. r29, r29, -10
+/* 8036165C 0035D2BC 3B 9C 00 0A */ addi r28, r28, 0xa
+/* 80361660 0035D2C0 90 61 00 14 */ stw r3, 0x14(r1)
+/* 80361664 0035D2C4 7F 84 E3 78 */ mr r4, r28
+/* 80361668 0035D2C8 38 60 00 00 */ li r3, 0
+/* 8036166C 0035D2CC 93 41 00 10 */ stw r26, 0x10(r1)
+/* 80361670 0035D2D0 7F A9 03 A6 */ mtctr r29
+/* 80361674 0035D2D4 40 81 00 24 */ ble lbl_80361698
+lbl_80361678:
+/* 80361678 0035D2D8 88 04 00 00 */ lbz r0, 0(r4)
+/* 8036167C 0035D2DC 7C 00 07 75 */ extsb. r0, r0
+/* 80361680 0035D2E0 40 82 00 0C */ bne lbl_8036168C
+/* 80361684 0035D2E4 3A E3 00 01 */ addi r23, r3, 1
+/* 80361688 0035D2E8 48 00 00 14 */ b lbl_8036169C
+lbl_8036168C:
+/* 8036168C 0035D2EC 38 63 00 01 */ addi r3, r3, 1
+/* 80361690 0035D2F0 38 84 00 01 */ addi r4, r4, 1
+/* 80361694 0035D2F4 42 00 FF E4 */ bdnz lbl_80361678
+lbl_80361698:
+/* 80361698 0035D2F8 3A E0 FF FF */ li r23, -1
+lbl_8036169C:
+/* 8036169C 0035D2FC 2C 17 FF FF */ cmpwi r23, -1
+/* 803616A0 0035D300 40 82 00 0C */ bne lbl_803616AC
+/* 803616A4 0035D304 38 60 00 04 */ li r3, 4
+/* 803616A8 0035D308 48 00 00 7C */ b lbl_80361724
+lbl_803616AC:
+/* 803616AC 0035D30C 81 9B 04 90 */ lwz r12, 0x490(r27)
+/* 803616B0 0035D310 7F 63 DB 78 */ mr r3, r27
+/* 803616B4 0035D314 7F E4 FB 78 */ mr r4, r31
+/* 803616B8 0035D318 7F 89 E3 78 */ mr r9, r28
+/* 803616BC 0035D31C 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 803616C0 0035D320 A0 C1 00 08 */ lhz r6, 8(r1)
+/* 803616C4 0035D324 80 E1 00 10 */ lwz r7, 0x10(r1)
+/* 803616C8 0035D328 81 01 00 14 */ lwz r8, 0x14(r1)
+/* 803616CC 0035D32C 81 5B 04 94 */ lwz r10, 0x494(r27)
+/* 803616D0 0035D330 7D 89 03 A6 */ mtctr r12
+/* 803616D4 0035D334 4E 80 04 21 */ bctrl
+/* 803616D8 0035D338 7F 9C BA 14 */ add r28, r28, r23
+/* 803616DC 0035D33C 7F B7 E8 50 */ subf r29, r23, r29
+/* 803616E0 0035D340 3B DE 00 01 */ addi r30, r30, 1
+lbl_803616E4:
+/* 803616E4 0035D344 7C 1E C8 00 */ cmpw r30, r25
+/* 803616E8 0035D348 41 80 FE D4 */ blt lbl_803615BC
+/* 803616EC 0035D34C 2C 18 00 00 */ cmpwi r24, 0
+/* 803616F0 0035D350 41 82 00 30 */ beq lbl_80361720
+/* 803616F4 0035D354 81 9B 04 90 */ lwz r12, 0x490(r27)
+/* 803616F8 0035D358 7F 63 DB 78 */ mr r3, r27
+/* 803616FC 0035D35C 81 5B 04 94 */ lwz r10, 0x494(r27)
+/* 80361700 0035D360 38 80 00 00 */ li r4, 0
+/* 80361704 0035D364 38 A0 00 00 */ li r5, 0
+/* 80361708 0035D368 38 C0 00 00 */ li r6, 0
+/* 8036170C 0035D36C 39 00 00 00 */ li r8, 0
+/* 80361710 0035D370 38 E0 00 00 */ li r7, 0
+/* 80361714 0035D374 39 20 00 00 */ li r9, 0
+/* 80361718 0035D378 7D 89 03 A6 */ mtctr r12
+/* 8036171C 0035D37C 4E 80 04 21 */ bctrl
+lbl_80361720:
+/* 80361720 0035D380 38 60 00 00 */ li r3, 0
+lbl_80361724:
+/* 80361724 0035D384 39 61 00 40 */ addi r11, r1, 0x40
+/* 80361728 0035D388 4B E6 5A 3D */ bl _restgpr_23
+/* 8036172C 0035D38C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80361730 0035D390 7C 08 03 A6 */ mtlr r0
+/* 80361734 0035D394 38 21 00 40 */ addi r1, r1, 0x40
+/* 80361738 0035D398 4E 80 00 20 */ blr
+
+.global ProcessMaploop
+ProcessMaploop:
+/* 8036173C 0035D39C 94 21 FF 80 */ stwu r1, -0x80(r1)
+/* 80361740 0035D3A0 7C 08 02 A6 */ mflr r0
+/* 80361744 0035D3A4 90 01 00 84 */ stw r0, 0x84(r1)
+/* 80361748 0035D3A8 39 61 00 80 */ addi r11, r1, 0x80
+/* 8036174C 0035D3AC 4B E6 59 D1 */ bl _savegpr_24
+/* 80361750 0035D3B0 2C 05 00 0B */ cmpwi r5, 0xb
+/* 80361754 0035D3B4 7C 7D 1B 78 */ mr r29, r3
+/* 80361758 0035D3B8 7C 9E 23 78 */ mr r30, r4
+/* 8036175C 0035D3BC 7C BF 2B 78 */ mr r31, r5
+/* 80361760 0035D3C0 40 80 00 0C */ bge lbl_8036176C
+/* 80361764 0035D3C4 38 60 00 04 */ li r3, 4
+/* 80361768 0035D3C8 48 00 01 8C */ b lbl_803618F4
+lbl_8036176C:
+/* 8036176C 0035D3CC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80361770 0035D3D0 38 A0 00 04 */ li r5, 4
+/* 80361774 0035D3D4 4B CA 28 8D */ bl memcpy
+/* 80361778 0035D3D8 38 61 00 08 */ addi r3, r1, 8
+/* 8036177C 0035D3DC 38 9E 00 04 */ addi r4, r30, 4
+/* 80361780 0035D3E0 38 A0 00 02 */ li r5, 2
+/* 80361784 0035D3E4 4B CA 28 7D */ bl memcpy
+/* 80361788 0035D3E8 A3 41 00 08 */ lhz r26, 8(r1)
+/* 8036178C 0035D3EC 83 61 00 0C */ lwz r27, 0xc(r1)
+/* 80361790 0035D3F0 80 7D 00 04 */ lwz r3, 4(r29)
+/* 80361794 0035D3F4 4B FD 47 55 */ bl ArrayLength
+/* 80361798 0035D3F8 7C 7C 1B 78 */ mr r28, r3
+/* 8036179C 0035D3FC 3B 20 00 00 */ li r25, 0
+/* 803617A0 0035D400 48 00 00 40 */ b lbl_803617E0
+lbl_803617A4:
+/* 803617A4 0035D404 80 7D 00 04 */ lwz r3, 4(r29)
+/* 803617A8 0035D408 7F 24 CB 78 */ mr r4, r25
+/* 803617AC 0035D40C 4B FD 47 45 */ bl ArrayNth
+/* 803617B0 0035D410 83 03 00 00 */ lwz r24, 0(r3)
+/* 803617B4 0035D414 7F 03 C3 78 */ mr r3, r24
+/* 803617B8 0035D418 4B FF C0 6D */ bl SBServerGetPublicInetAddress
+/* 803617BC 0035D41C 7C 1B 18 40 */ cmplw r27, r3
+/* 803617C0 0035D420 40 82 00 1C */ bne lbl_803617DC
+/* 803617C4 0035D424 7F 03 C3 78 */ mr r3, r24
+/* 803617C8 0035D428 4B FF C0 6D */ bl SBServerGetPublicQueryPortNBO
+/* 803617CC 0035D42C 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 803617D0 0035D430 7C 1A 00 40 */ cmplw r26, r0
+/* 803617D4 0035D434 40 82 00 08 */ bne lbl_803617DC
+/* 803617D8 0035D438 48 00 00 14 */ b lbl_803617EC
+lbl_803617DC:
+/* 803617DC 0035D43C 3B 39 00 01 */ addi r25, r25, 1
+lbl_803617E0:
+/* 803617E0 0035D440 7C 19 E0 00 */ cmpw r25, r28
+/* 803617E4 0035D444 41 80 FF C0 */ blt lbl_803617A4
+/* 803617E8 0035D448 3B 20 FF FF */ li r25, -1
+lbl_803617EC:
+/* 803617EC 0035D44C 2C 19 FF FF */ cmpwi r25, -1
+/* 803617F0 0035D450 40 82 00 0C */ bne lbl_803617FC
+/* 803617F4 0035D454 38 60 00 00 */ li r3, 0
+/* 803617F8 0035D458 48 00 00 FC */ b lbl_803618F4
+lbl_803617FC:
+/* 803617FC 0035D45C 80 7D 00 04 */ lwz r3, 4(r29)
+/* 80361800 0035D460 7F 24 CB 78 */ mr r4, r25
+/* 80361804 0035D464 4B FD 46 ED */ bl ArrayNth
+/* 80361808 0035D468 83 03 00 00 */ lwz r24, 0(r3)
+/* 8036180C 0035D46C 38 61 00 10 */ addi r3, r1, 0x10
+/* 80361810 0035D470 38 9E 00 06 */ addi r4, r30, 6
+/* 80361814 0035D474 38 A0 00 04 */ li r5, 4
+/* 80361818 0035D478 4B CA 27 E9 */ bl memcpy
+/* 8036181C 0035D47C 80 61 00 14 */ lwz r3, 0x14(r1)
+/* 80361820 0035D480 4B F9 55 4D */ bl SONtoHl
+/* 80361824 0035D484 38 00 00 00 */ li r0, 0
+/* 80361828 0035D488 90 61 00 14 */ stw r3, 0x14(r1)
+/* 8036182C 0035D48C 38 C1 00 18 */ addi r6, r1, 0x18
+/* 80361830 0035D490 38 E0 00 00 */ li r7, 0
+/* 80361834 0035D494 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80361838 0035D498 3B FF FF F5 */ addi r31, r31, -11
+/* 8036183C 0035D49C 88 9E 00 0A */ lbz r4, 0xa(r30)
+/* 80361840 0035D4A0 3B DE 00 0B */ addi r30, r30, 0xb
+/* 80361844 0035D4A4 48 00 00 68 */ b lbl_803618AC
+lbl_80361848:
+/* 80361848 0035D4A8 2C 1F 00 01 */ cmpwi r31, 1
+/* 8036184C 0035D4AC 41 80 00 70 */ blt lbl_803618BC
+/* 80361850 0035D4B0 7F C3 F3 78 */ mr r3, r30
+/* 80361854 0035D4B4 38 A0 00 00 */ li r5, 0
+/* 80361858 0035D4B8 7F E9 03 A6 */ mtctr r31
+/* 8036185C 0035D4BC 2C 1F 00 00 */ cmpwi r31, 0
+/* 80361860 0035D4C0 40 81 00 24 */ ble lbl_80361884
+lbl_80361864:
+/* 80361864 0035D4C4 88 03 00 00 */ lbz r0, 0(r3)
+/* 80361868 0035D4C8 7C 00 07 75 */ extsb. r0, r0
+/* 8036186C 0035D4CC 40 82 00 0C */ bne lbl_80361878
+/* 80361870 0035D4D0 38 05 00 01 */ addi r0, r5, 1
+/* 80361874 0035D4D4 48 00 00 14 */ b lbl_80361888
+lbl_80361878:
+/* 80361878 0035D4D8 38 A5 00 01 */ addi r5, r5, 1
+/* 8036187C 0035D4DC 38 63 00 01 */ addi r3, r3, 1
+/* 80361880 0035D4E0 42 00 FF E4 */ bdnz lbl_80361864
+lbl_80361884:
+/* 80361884 0035D4E4 38 00 FF FF */ li r0, -1
+lbl_80361888:
+/* 80361888 0035D4E8 2C 00 FF FF */ cmpwi r0, -1
+/* 8036188C 0035D4EC 40 82 00 0C */ bne lbl_80361898
+/* 80361890 0035D4F0 38 60 00 04 */ li r3, 4
+/* 80361894 0035D4F4 48 00 00 60 */ b lbl_803618F4
+lbl_80361898:
+/* 80361898 0035D4F8 93 C6 00 00 */ stw r30, 0(r6)
+/* 8036189C 0035D4FC 7F DE 02 14 */ add r30, r30, r0
+/* 803618A0 0035D500 7F E0 F8 50 */ subf r31, r0, r31
+/* 803618A4 0035D504 38 C6 00 04 */ addi r6, r6, 4
+/* 803618A8 0035D508 38 E7 00 01 */ addi r7, r7, 1
+lbl_803618AC:
+/* 803618AC 0035D50C 7C 07 20 00 */ cmpw r7, r4
+/* 803618B0 0035D510 40 80 00 0C */ bge lbl_803618BC
+/* 803618B4 0035D514 2C 07 00 10 */ cmpwi r7, 0x10
+/* 803618B8 0035D518 41 80 FF 90 */ blt lbl_80361848
+lbl_803618BC:
+/* 803618BC 0035D51C 81 9D 04 8C */ lwz r12, 0x48c(r29)
+/* 803618C0 0035D520 2C 0C 00 00 */ cmpwi r12, 0
+/* 803618C4 0035D524 40 82 00 0C */ bne lbl_803618D0
+/* 803618C8 0035D528 38 60 00 00 */ li r3, 0
+/* 803618CC 0035D52C 48 00 00 28 */ b lbl_803618F4
+lbl_803618D0:
+/* 803618D0 0035D530 7F A3 EB 78 */ mr r3, r29
+/* 803618D4 0035D534 7F 04 C3 78 */ mr r4, r24
+/* 803618D8 0035D538 39 01 00 18 */ addi r8, r1, 0x18
+/* 803618DC 0035D53C 80 A1 00 10 */ lwz r5, 0x10(r1)
+/* 803618E0 0035D540 80 C1 00 14 */ lwz r6, 0x14(r1)
+/* 803618E4 0035D544 81 3D 04 94 */ lwz r9, 0x494(r29)
+/* 803618E8 0035D548 7D 89 03 A6 */ mtctr r12
+/* 803618EC 0035D54C 4E 80 04 21 */ bctrl
+/* 803618F0 0035D550 38 60 00 00 */ li r3, 0
+lbl_803618F4:
+/* 803618F4 0035D554 39 61 00 80 */ addi r11, r1, 0x80
+/* 803618F8 0035D558 4B E6 58 71 */ bl _restgpr_24
+/* 803618FC 0035D55C 80 01 00 84 */ lwz r0, 0x84(r1)
+/* 80361900 0035D560 7C 08 03 A6 */ mtlr r0
+/* 80361904 0035D564 38 21 00 80 */ addi r1, r1, 0x80
+/* 80361908 0035D568 4E 80 00 20 */ blr
+
+.global ProcessPushServer
+ProcessPushServer:
+/* 8036190C 0035D56C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80361910 0035D570 7C 08 02 A6 */ mflr r0
+/* 80361914 0035D574 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80361918 0035D578 39 61 00 40 */ addi r11, r1, 0x40
+/* 8036191C 0035D57C 4B E6 58 01 */ bl _savegpr_24
+/* 80361920 0035D580 2C 05 00 05 */ cmpwi r5, 5
+/* 80361924 0035D584 7C 78 1B 78 */ mr r24, r3
+/* 80361928 0035D588 7C 99 23 78 */ mr r25, r4
+/* 8036192C 0035D58C 7C BA 2B 78 */ mr r26, r5
+/* 80361930 0035D590 40 80 00 0C */ bge lbl_8036193C
+/* 80361934 0035D594 38 60 00 04 */ li r3, 4
+/* 80361938 0035D598 48 00 01 6C */ b lbl_80361AA4
+lbl_8036193C:
+/* 8036193C 0035D59C 41 80 00 48 */ blt lbl_80361984
+/* 80361940 0035D5A0 8B E4 00 00 */ lbz r31, 0(r4)
+/* 80361944 0035D5A4 38 61 00 10 */ addi r3, r1, 0x10
+/* 80361948 0035D5A8 38 A0 00 04 */ li r5, 4
+/* 8036194C 0035D5AC 38 84 00 01 */ addi r4, r4, 1
+/* 80361950 0035D5B0 4B CA 26 B1 */ bl memcpy
+/* 80361954 0035D5B4 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b
+/* 80361958 0035D5B8 41 82 00 24 */ beq lbl_8036197C
+/* 8036195C 0035D5BC 38 1A FF FB */ addi r0, r26, -5
+/* 80361960 0035D5C0 2C 00 00 02 */ cmpwi r0, 2
+/* 80361964 0035D5C4 41 80 00 20 */ blt lbl_80361984
+/* 80361968 0035D5C8 38 61 00 08 */ addi r3, r1, 8
+/* 8036196C 0035D5CC 38 99 00 05 */ addi r4, r25, 5
+/* 80361970 0035D5D0 38 A0 00 02 */ li r5, 2
+/* 80361974 0035D5D4 4B CA 26 8D */ bl memcpy
+/* 80361978 0035D5D8 48 00 00 0C */ b lbl_80361984
+lbl_8036197C:
+/* 8036197C 0035D5DC A0 18 06 AC */ lhz r0, 0x6ac(r24)
+/* 80361980 0035D5E0 B0 01 00 08 */ sth r0, 8(r1)
+lbl_80361984:
+/* 80361984 0035D5E4 A3 A1 00 08 */ lhz r29, 8(r1)
+/* 80361988 0035D5E8 83 C1 00 10 */ lwz r30, 0x10(r1)
+/* 8036198C 0035D5EC 80 78 00 04 */ lwz r3, 4(r24)
+/* 80361990 0035D5F0 4B FD 45 59 */ bl ArrayLength
+/* 80361994 0035D5F4 7C 7F 1B 78 */ mr r31, r3
+/* 80361998 0035D5F8 3B 80 00 00 */ li r28, 0
+/* 8036199C 0035D5FC 48 00 00 40 */ b lbl_803619DC
+lbl_803619A0:
+/* 803619A0 0035D600 80 78 00 04 */ lwz r3, 4(r24)
+/* 803619A4 0035D604 7F 84 E3 78 */ mr r4, r28
+/* 803619A8 0035D608 4B FD 45 49 */ bl ArrayNth
+/* 803619AC 0035D60C 83 63 00 00 */ lwz r27, 0(r3)
+/* 803619B0 0035D610 7F 63 DB 78 */ mr r3, r27
+/* 803619B4 0035D614 4B FF BE 71 */ bl SBServerGetPublicInetAddress
+/* 803619B8 0035D618 7C 1E 18 40 */ cmplw r30, r3
+/* 803619BC 0035D61C 40 82 00 1C */ bne lbl_803619D8
+/* 803619C0 0035D620 7F 63 DB 78 */ mr r3, r27
+/* 803619C4 0035D624 4B FF BE 71 */ bl SBServerGetPublicQueryPortNBO
+/* 803619C8 0035D628 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 803619CC 0035D62C 7C 1D 00 40 */ cmplw r29, r0
+/* 803619D0 0035D630 40 82 00 08 */ bne lbl_803619D8
+/* 803619D4 0035D634 48 00 00 14 */ b lbl_803619E8
+lbl_803619D8:
+/* 803619D8 0035D638 3B 9C 00 01 */ addi r28, r28, 1
+lbl_803619DC:
+/* 803619DC 0035D63C 7C 1C F8 00 */ cmpw r28, r31
+/* 803619E0 0035D640 41 80 FF C0 */ blt lbl_803619A0
+/* 803619E4 0035D644 3B 80 FF FF */ li r28, -1
+lbl_803619E8:
+/* 803619E8 0035D648 2C 1C FF FF */ cmpwi r28, -1
+/* 803619EC 0035D64C 40 82 00 2C */ bne lbl_80361A18
+/* 803619F0 0035D650 80 81 00 10 */ lwz r4, 0x10(r1)
+/* 803619F4 0035D654 7F 03 C3 78 */ mr r3, r24
+/* 803619F8 0035D658 A0 A1 00 08 */ lhz r5, 8(r1)
+/* 803619FC 0035D65C 4B FF C5 81 */ bl SBAllocServer
+/* 80361A00 0035D660 7C 7B 1B 78 */ mr r27, r3
+/* 80361A04 0035D664 4B FF C6 6D */ bl SBIsNullServer
+/* 80361A08 0035D668 2C 03 00 00 */ cmpwi r3, 0
+/* 80361A0C 0035D66C 41 82 00 1C */ beq lbl_80361A28
+/* 80361A10 0035D670 38 60 00 05 */ li r3, 5
+/* 80361A14 0035D674 48 00 00 90 */ b lbl_80361AA4
+lbl_80361A18:
+/* 80361A18 0035D678 80 78 00 04 */ lwz r3, 4(r24)
+/* 80361A1C 0035D67C 7F 84 E3 78 */ mr r4, r28
+/* 80361A20 0035D680 4B FD 44 D1 */ bl ArrayNth
+/* 80361A24 0035D684 83 63 00 00 */ lwz r27, 0(r3)
+lbl_80361A28:
+/* 80361A28 0035D688 7F 03 C3 78 */ mr r3, r24
+/* 80361A2C 0035D68C 7F 64 DB 78 */ mr r4, r27
+/* 80361A30 0035D690 7F 25 CB 78 */ mr r5, r25
+/* 80361A34 0035D694 7F 46 D3 78 */ mr r6, r26
+/* 80361A38 0035D698 38 E0 00 00 */ li r7, 0
+/* 80361A3C 0035D69C 4B FF EB B5 */ bl ParseServer
+/* 80361A40 0035D6A0 2C 03 00 00 */ cmpwi r3, 0
+/* 80361A44 0035D6A4 40 80 00 0C */ bge lbl_80361A50
+/* 80361A48 0035D6A8 38 60 00 04 */ li r3, 4
+/* 80361A4C 0035D6AC 48 00 00 58 */ b lbl_80361AA4
+lbl_80361A50:
+/* 80361A50 0035D6B0 2C 1C FF FF */ cmpwi r28, -1
+/* 80361A54 0035D6B4 40 82 00 30 */ bne lbl_80361A84
+/* 80361A58 0035D6B8 93 61 00 0C */ stw r27, 0xc(r1)
+/* 80361A5C 0035D6BC 38 81 00 0C */ addi r4, r1, 0xc
+/* 80361A60 0035D6C0 80 78 00 04 */ lwz r3, 4(r24)
+/* 80361A64 0035D6C4 4B FD 44 BD */ bl ArrayAppend
+/* 80361A68 0035D6C8 81 98 04 88 */ lwz r12, 0x488(r24)
+/* 80361A6C 0035D6CC 7F 03 C3 78 */ mr r3, r24
+/* 80361A70 0035D6D0 80 A1 00 0C */ lwz r5, 0xc(r1)
+/* 80361A74 0035D6D4 38 80 00 00 */ li r4, 0
+/* 80361A78 0035D6D8 80 D8 04 94 */ lwz r6, 0x494(r24)
+/* 80361A7C 0035D6DC 7D 89 03 A6 */ mtctr r12
+/* 80361A80 0035D6E0 4E 80 04 21 */ bctrl
+lbl_80361A84:
+/* 80361A84 0035D6E4 81 98 04 88 */ lwz r12, 0x488(r24)
+/* 80361A88 0035D6E8 7F 03 C3 78 */ mr r3, r24
+/* 80361A8C 0035D6EC 7F 65 DB 78 */ mr r5, r27
+/* 80361A90 0035D6F0 80 D8 04 94 */ lwz r6, 0x494(r24)
+/* 80361A94 0035D6F4 38 80 00 01 */ li r4, 1
+/* 80361A98 0035D6F8 7D 89 03 A6 */ mtctr r12
+/* 80361A9C 0035D6FC 4E 80 04 21 */ bctrl
+/* 80361AA0 0035D700 38 60 00 00 */ li r3, 0
+lbl_80361AA4:
+/* 80361AA4 0035D704 39 61 00 40 */ addi r11, r1, 0x40
+/* 80361AA8 0035D708 4B E6 56 C1 */ bl _restgpr_24
+/* 80361AAC 0035D70C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80361AB0 0035D710 7C 08 03 A6 */ mtlr r0
+/* 80361AB4 0035D714 38 21 00 40 */ addi r1, r1, 0x40
+/* 80361AB8 0035D718 4E 80 00 20 */ blr
+
+.global ProcessAdHocData
+ProcessAdHocData:
+/* 80361ABC 0035D71C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80361AC0 0035D720 7C 08 02 A6 */ mflr r0
+/* 80361AC4 0035D724 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80361AC8 0035D728 39 61 00 40 */ addi r11, r1, 0x40
+/* 80361ACC 0035D72C 4B E6 56 59 */ bl _savegpr_26
+/* 80361AD0 0035D730 7C 7E 1B 78 */ mr r30, r3
+/* 80361AD4 0035D734 3B E0 00 00 */ li r31, 0
+/* 80361AD8 0035D738 48 00 02 44 */ b lbl_80361D1C
+lbl_80361ADC:
+/* 80361ADC 0035D73C 80 9E 00 7C */ lwz r4, 0x7c(r30)
+/* 80361AE0 0035D740 38 61 00 0A */ addi r3, r1, 0xa
+/* 80361AE4 0035D744 38 A0 00 02 */ li r5, 2
+/* 80361AE8 0035D748 4B CA 25 19 */ bl memcpy
+/* 80361AEC 0035D74C A0 61 00 0A */ lhz r3, 0xa(r1)
+/* 80361AF0 0035D750 4B F9 52 81 */ bl SONtoHs
+/* 80361AF4 0035D754 54 65 04 3E */ clrlwi r5, r3, 0x10
+/* 80361AF8 0035D758 B0 61 00 0A */ sth r3, 0xa(r1)
+/* 80361AFC 0035D75C 28 05 10 00 */ cmplwi r5, 0x1000
+/* 80361B00 0035D760 40 81 00 0C */ ble lbl_80361B0C
+/* 80361B04 0035D764 3B E0 00 04 */ li r31, 4
+/* 80361B08 0035D768 48 00 02 20 */ b lbl_80361D28
+lbl_80361B0C:
+/* 80361B0C 0035D76C 80 1E 00 80 */ lwz r0, 0x80(r30)
+/* 80361B10 0035D770 7C 00 28 00 */ cmpw r0, r5
+/* 80361B14 0035D774 40 80 00 0C */ bge lbl_80361B20
+/* 80361B18 0035D778 38 60 00 00 */ li r3, 0
+/* 80361B1C 0035D77C 48 00 03 D8 */ b lbl_80361EF4
+lbl_80361B20:
+/* 80361B20 0035D780 80 9E 00 7C */ lwz r4, 0x7c(r30)
+/* 80361B24 0035D784 88 04 00 02 */ lbz r0, 2(r4)
+/* 80361B28 0035D788 7C 00 07 74 */ extsb r0, r0
+/* 80361B2C 0035D78C 2C 00 00 04 */ cmpwi r0, 4
+/* 80361B30 0035D790 41 82 00 7C */ beq lbl_80361BAC
+/* 80361B34 0035D794 40 80 00 1C */ bge lbl_80361B50
+/* 80361B38 0035D798 2C 00 00 02 */ cmpwi r0, 2
+/* 80361B3C 0035D79C 41 82 00 3C */ beq lbl_80361B78
+/* 80361B40 0035D7A0 40 80 00 50 */ bge lbl_80361B90
+/* 80361B44 0035D7A4 2C 00 00 01 */ cmpwi r0, 1
+/* 80361B48 0035D7A8 40 80 00 18 */ bge lbl_80361B60
+/* 80361B4C 0035D7AC 48 00 01 A0 */ b lbl_80361CEC
+lbl_80361B50:
+/* 80361B50 0035D7B0 2C 00 00 06 */ cmpwi r0, 6
+/* 80361B54 0035D7B4 41 82 01 84 */ beq lbl_80361CD8
+/* 80361B58 0035D7B8 40 80 01 94 */ bge lbl_80361CEC
+/* 80361B5C 0035D7BC 48 00 01 64 */ b lbl_80361CC0
+lbl_80361B60:
+/* 80361B60 0035D7C0 7F C3 F3 78 */ mr r3, r30
+/* 80361B64 0035D7C4 38 84 00 03 */ addi r4, r4, 3
+/* 80361B68 0035D7C8 38 A5 FF FD */ addi r5, r5, -3
+/* 80361B6C 0035D7CC 4B FF F8 35 */ bl ProcessPushKeyList
+/* 80361B70 0035D7D0 7C 7F 1B 78 */ mr r31, r3
+/* 80361B74 0035D7D4 48 00 01 78 */ b lbl_80361CEC
+lbl_80361B78:
+/* 80361B78 0035D7D8 7F C3 F3 78 */ mr r3, r30
+/* 80361B7C 0035D7DC 38 84 00 03 */ addi r4, r4, 3
+/* 80361B80 0035D7E0 38 A5 FF FD */ addi r5, r5, -3
+/* 80361B84 0035D7E4 4B FF FD 89 */ bl ProcessPushServer
+/* 80361B88 0035D7E8 7C 7F 1B 78 */ mr r31, r3
+/* 80361B8C 0035D7EC 48 00 01 60 */ b lbl_80361CEC
+lbl_80361B90:
+/* 80361B90 0035D7F0 80 7E 06 B4 */ lwz r3, 0x6b4(r30)
+/* 80361B94 0035D7F4 38 C0 00 00 */ li r6, 0
+/* 80361B98 0035D7F8 4B FD 62 C9 */ bl send
+/* 80361B9C 0035D7FC 2C 03 00 00 */ cmpwi r3, 0
+/* 80361BA0 0035D800 41 81 01 4C */ bgt lbl_80361CEC
+/* 80361BA4 0035D804 38 60 00 03 */ li r3, 3
+/* 80361BA8 0035D808 48 00 03 4C */ b lbl_80361EF4
+lbl_80361BAC:
+/* 80361BAC 0035D80C 38 05 FF FD */ addi r0, r5, -3
+/* 80361BB0 0035D810 3B E4 00 03 */ addi r31, r4, 3
+/* 80361BB4 0035D814 2C 00 00 06 */ cmpwi r0, 6
+/* 80361BB8 0035D818 40 80 00 0C */ bge lbl_80361BC4
+/* 80361BBC 0035D81C 3B E0 00 04 */ li r31, 4
+/* 80361BC0 0035D820 48 00 01 2C */ b lbl_80361CEC
+lbl_80361BC4:
+/* 80361BC4 0035D824 7F E4 FB 78 */ mr r4, r31
+/* 80361BC8 0035D828 38 61 00 0C */ addi r3, r1, 0xc
+/* 80361BCC 0035D82C 38 A0 00 04 */ li r5, 4
+/* 80361BD0 0035D830 4B CA 24 31 */ bl memcpy
+/* 80361BD4 0035D834 38 61 00 08 */ addi r3, r1, 8
+/* 80361BD8 0035D838 38 9F 00 04 */ addi r4, r31, 4
+/* 80361BDC 0035D83C 38 A0 00 02 */ li r5, 2
+/* 80361BE0 0035D840 4B CA 24 21 */ bl memcpy
+/* 80361BE4 0035D844 A3 81 00 08 */ lhz r28, 8(r1)
+/* 80361BE8 0035D848 83 61 00 0C */ lwz r27, 0xc(r1)
+/* 80361BEC 0035D84C 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80361BF0 0035D850 4B FD 42 F9 */ bl ArrayLength
+/* 80361BF4 0035D854 7C 7F 1B 78 */ mr r31, r3
+/* 80361BF8 0035D858 3B 40 00 00 */ li r26, 0
+/* 80361BFC 0035D85C 48 00 00 40 */ b lbl_80361C3C
+lbl_80361C00:
+/* 80361C00 0035D860 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80361C04 0035D864 7F 44 D3 78 */ mr r4, r26
+/* 80361C08 0035D868 4B FD 42 E9 */ bl ArrayNth
+/* 80361C0C 0035D86C 83 A3 00 00 */ lwz r29, 0(r3)
+/* 80361C10 0035D870 7F A3 EB 78 */ mr r3, r29
+/* 80361C14 0035D874 4B FF BC 11 */ bl SBServerGetPublicInetAddress
+/* 80361C18 0035D878 7C 1B 18 40 */ cmplw r27, r3
+/* 80361C1C 0035D87C 40 82 00 1C */ bne lbl_80361C38
+/* 80361C20 0035D880 7F A3 EB 78 */ mr r3, r29
+/* 80361C24 0035D884 4B FF BC 11 */ bl SBServerGetPublicQueryPortNBO
+/* 80361C28 0035D888 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 80361C2C 0035D88C 7C 1C 00 40 */ cmplw r28, r0
+/* 80361C30 0035D890 40 82 00 08 */ bne lbl_80361C38
+/* 80361C34 0035D894 48 00 00 14 */ b lbl_80361C48
+lbl_80361C38:
+/* 80361C38 0035D898 3B 5A 00 01 */ addi r26, r26, 1
+lbl_80361C3C:
+/* 80361C3C 0035D89C 7C 1A F8 00 */ cmpw r26, r31
+/* 80361C40 0035D8A0 41 80 FF C0 */ blt lbl_80361C00
+/* 80361C44 0035D8A4 3B 40 FF FF */ li r26, -1
+lbl_80361C48:
+/* 80361C48 0035D8A8 2C 1A FF FF */ cmpwi r26, -1
+/* 80361C4C 0035D8AC 40 82 00 0C */ bne lbl_80361C58
+/* 80361C50 0035D8B0 3B E0 00 00 */ li r31, 0
+/* 80361C54 0035D8B4 48 00 00 98 */ b lbl_80361CEC
+lbl_80361C58:
+/* 80361C58 0035D8B8 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80361C5C 0035D8BC 7F 44 D3 78 */ mr r4, r26
+/* 80361C60 0035D8C0 4B FD 42 91 */ bl ArrayNth
+/* 80361C64 0035D8C4 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80361C68 0035D8C8 7F C3 F3 78 */ mr r3, r30
+/* 80361C6C 0035D8CC 81 9E 04 88 */ lwz r12, 0x488(r30)
+/* 80361C70 0035D8D0 38 80 00 02 */ li r4, 2
+/* 80361C74 0035D8D4 7F E5 FB 78 */ mr r5, r31
+/* 80361C78 0035D8D8 80 DE 04 94 */ lwz r6, 0x494(r30)
+/* 80361C7C 0035D8DC 7D 89 03 A6 */ mtctr r12
+/* 80361C80 0035D8E0 4E 80 04 21 */ bctrl
+/* 80361C84 0035D8E4 80 7E 00 04 */ lwz r3, 4(r30)
+/* 80361C88 0035D8E8 7F 44 D3 78 */ mr r4, r26
+/* 80361C8C 0035D8EC 4B FD 45 E5 */ bl ArrayDeleteAt
+/* 80361C90 0035D8F0 80 9E 07 D8 */ lwz r4, 0x7d8(r30)
+/* 80361C94 0035D8F4 2C 04 00 00 */ cmpwi r4, 0
+/* 80361C98 0035D8F8 40 82 00 14 */ bne lbl_80361CAC
+/* 80361C9C 0035D8FC 7F E3 FB 78 */ mr r3, r31
+/* 80361CA0 0035D900 38 80 00 00 */ li r4, 0
+/* 80361CA4 0035D904 4B FF BB E1 */ bl SBServerSetNext
+/* 80361CA8 0035D908 48 00 00 0C */ b lbl_80361CB4
+lbl_80361CAC:
+/* 80361CAC 0035D90C 7F E3 FB 78 */ mr r3, r31
+/* 80361CB0 0035D910 4B FF BB D5 */ bl SBServerSetNext
+lbl_80361CB4:
+/* 80361CB4 0035D914 93 FE 07 D8 */ stw r31, 0x7d8(r30)
+/* 80361CB8 0035D918 3B E0 00 00 */ li r31, 0
+/* 80361CBC 0035D91C 48 00 00 30 */ b lbl_80361CEC
+lbl_80361CC0:
+/* 80361CC0 0035D920 7F C3 F3 78 */ mr r3, r30
+/* 80361CC4 0035D924 38 84 00 03 */ addi r4, r4, 3
+/* 80361CC8 0035D928 38 A5 FF FD */ addi r5, r5, -3
+/* 80361CCC 0035D92C 4B FF FA 71 */ bl ProcessMaploop
+/* 80361CD0 0035D930 7C 7F 1B 78 */ mr r31, r3
+/* 80361CD4 0035D934 48 00 00 18 */ b lbl_80361CEC
+lbl_80361CD8:
+/* 80361CD8 0035D938 7F C3 F3 78 */ mr r3, r30
+/* 80361CDC 0035D93C 38 84 00 03 */ addi r4, r4, 3
+/* 80361CE0 0035D940 38 A5 FF FD */ addi r5, r5, -3
+/* 80361CE4 0035D944 4B FF F8 95 */ bl ProcessPlayerSearch
+/* 80361CE8 0035D948 7C 7F 1B 78 */ mr r31, r3
+lbl_80361CEC:
+/* 80361CEC 0035D94C A0 81 00 0A */ lhz r4, 0xa(r1)
+/* 80361CF0 0035D950 80 1E 00 80 */ lwz r0, 0x80(r30)
+/* 80361CF4 0035D954 7C A4 00 51 */ subf. r5, r4, r0
+/* 80361CF8 0035D958 90 BE 00 80 */ stw r5, 0x80(r30)
+/* 80361CFC 0035D95C 41 82 00 18 */ beq lbl_80361D14
+/* 80361D00 0035D960 80 7E 00 7C */ lwz r3, 0x7c(r30)
+/* 80361D04 0035D964 2C 03 00 00 */ cmpwi r3, 0
+/* 80361D08 0035D968 41 82 00 0C */ beq lbl_80361D14
+/* 80361D0C 0035D96C 7C 83 22 14 */ add r4, r3, r4
+/* 80361D10 0035D970 4B E6 85 65 */ bl memmove
+lbl_80361D14:
+/* 80361D14 0035D974 2C 1F 00 00 */ cmpwi r31, 0
+/* 80361D18 0035D978 40 82 00 10 */ bne lbl_80361D28
+lbl_80361D1C:
+/* 80361D1C 0035D97C 80 1E 00 80 */ lwz r0, 0x80(r30)
+/* 80361D20 0035D980 2C 00 00 03 */ cmpwi r0, 3
+/* 80361D24 0035D984 40 80 FD B8 */ bge lbl_80361ADC
+lbl_80361D28:
+/* 80361D28 0035D988 2C 1F 00 00 */ cmpwi r31, 0
+/* 80361D2C 0035D98C 41 82 01 C4 */ beq lbl_80361EF0
+/* 80361D30 0035D990 83 5E 00 80 */ lwz r26, 0x80(r30)
+/* 80361D34 0035D994 2C 1A 00 00 */ cmpwi r26, 0
+/* 80361D38 0035D998 40 81 00 6C */ ble lbl_80361DA4
+/* 80361D3C 0035D99C 83 6D 95 0C */ lwz r27, lbl_8063E7CC-_SDA_BASE_(r13)
+/* 80361D40 0035D9A0 7F 63 DB 78 */ mr r3, r27
+/* 80361D44 0035D9A4 4B E6 4E 21 */ bl strlen
+/* 80361D48 0035D9A8 7C 1A 18 40 */ cmplw r26, r3
+/* 80361D4C 0035D9AC 40 81 00 58 */ ble lbl_80361DA4
+/* 80361D50 0035D9B0 83 8D 95 0C */ lwz r28, lbl_8063E7CC-_SDA_BASE_(r13)
+/* 80361D54 0035D9B4 83 5E 00 7C */ lwz r26, 0x7c(r30)
+/* 80361D58 0035D9B8 7F 83 E3 78 */ mr r3, r28
+/* 80361D5C 0035D9BC 4B E6 4E 09 */ bl strlen
+/* 80361D60 0035D9C0 7C 65 1B 78 */ mr r5, r3
+/* 80361D64 0035D9C4 7F 43 D3 78 */ mr r3, r26
+/* 80361D68 0035D9C8 7F 84 E3 78 */ mr r4, r28
+/* 80361D6C 0035D9CC 4B E6 C7 FD */ bl strncmp
+/* 80361D70 0035D9D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80361D74 0035D9D4 40 82 00 30 */ bne lbl_80361DA4
+/* 80361D78 0035D9D8 7F 63 DB 78 */ mr r3, r27
+/* 80361D7C 0035D9DC 4B E6 4D E9 */ bl strlen
+/* 80361D80 0035D9E0 7C 1A 1A 14 */ add r0, r26, r3
+/* 80361D84 0035D9E4 81 9E 04 88 */ lwz r12, 0x488(r30)
+/* 80361D88 0035D9E8 90 1E 06 B0 */ stw r0, 0x6b0(r30)
+/* 80361D8C 0035D9EC 7F C3 F3 78 */ mr r3, r30
+/* 80361D90 0035D9F0 80 DE 04 94 */ lwz r6, 0x494(r30)
+/* 80361D94 0035D9F4 38 80 00 05 */ li r4, 5
+/* 80361D98 0035D9F8 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 80361D9C 0035D9FC 7D 89 03 A6 */ mtctr r12
+/* 80361DA0 0035DA00 4E 80 04 21 */ bctrl
+lbl_80361DA4:
+/* 80361DA4 0035DA04 81 9E 04 88 */ lwz r12, 0x488(r30)
+/* 80361DA8 0035DA08 7F C3 F3 78 */ mr r3, r30
+/* 80361DAC 0035DA0C 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 80361DB0 0035DA10 38 80 00 04 */ li r4, 4
+/* 80361DB4 0035DA14 80 DE 04 94 */ lwz r6, 0x494(r30)
+/* 80361DB8 0035DA18 7D 89 03 A6 */ mtctr r12
+/* 80361DBC 0035DA1C 4E 80 04 21 */ bctrl
+/* 80361DC0 0035DA20 80 7E 00 7C */ lwz r3, 0x7c(r30)
+/* 80361DC4 0035DA24 2C 03 00 00 */ cmpwi r3, 0
+/* 80361DC8 0035DA28 41 82 00 08 */ beq lbl_80361DD0
+/* 80361DCC 0035DA2C 4B FD 75 6D */ bl gsifree
+lbl_80361DD0:
+/* 80361DD0 0035DA30 80 7E 06 B4 */ lwz r3, 0x6b4(r30)
+/* 80361DD4 0035DA34 38 00 00 00 */ li r0, 0
+/* 80361DD8 0035DA38 90 1E 00 7C */ stw r0, 0x7c(r30)
+/* 80361DDC 0035DA3C 2C 03 FF FF */ cmpwi r3, -1
+/* 80361DE0 0035DA40 90 1E 00 80 */ stw r0, 0x80(r30)
+/* 80361DE4 0035DA44 41 82 00 08 */ beq lbl_80361DEC
+/* 80361DE8 0035DA48 4B FD 5E 15 */ bl closesocket
+lbl_80361DEC:
+/* 80361DEC 0035DA4C 80 1E 00 08 */ lwz r0, 8(r30)
+/* 80361DF0 0035DA50 38 80 FF FF */ li r4, -1
+/* 80361DF4 0035DA54 38 60 00 01 */ li r3, 1
+/* 80361DF8 0035DA58 90 9E 06 B4 */ stw r4, 0x6b4(r30)
+/* 80361DFC 0035DA5C 2C 00 00 00 */ cmpwi r0, 0
+/* 80361E00 0035DA60 90 7E 00 00 */ stw r3, 0(r30)
+/* 80361E04 0035DA64 41 82 00 7C */ beq lbl_80361E80
+/* 80361E08 0035DA68 3B 40 00 00 */ li r26, 0
+/* 80361E0C 0035DA6C 48 00 00 54 */ b lbl_80361E60
+lbl_80361E10:
+/* 80361E10 0035DA70 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80361E14 0035DA74 7F 44 D3 78 */ mr r4, r26
+/* 80361E18 0035DA78 4B FD 40 D9 */ bl ArrayNth
+/* 80361E1C 0035DA7C 80 03 00 00 */ lwz r0, 0(r3)
+/* 80361E20 0035DA80 7F C3 F3 78 */ mr r3, r30
+/* 80361E24 0035DA84 90 01 00 18 */ stw r0, 0x18(r1)
+/* 80361E28 0035DA88 4B FF B6 35 */ bl SBRefStrHash
+/* 80361E2C 0035DA8C 38 81 00 18 */ addi r4, r1, 0x18
+/* 80361E30 0035DA90 4B FD 4C ED */ bl TableLookup
+/* 80361E34 0035DA94 2C 03 00 00 */ cmpwi r3, 0
+/* 80361E38 0035DA98 41 82 00 24 */ beq lbl_80361E5C
+/* 80361E3C 0035DA9C 80 03 00 04 */ lwz r0, 4(r3)
+/* 80361E40 0035DAA0 34 00 FF FF */ addic. r0, r0, -1
+/* 80361E44 0035DAA4 90 03 00 04 */ stw r0, 4(r3)
+/* 80361E48 0035DAA8 40 82 00 14 */ bne lbl_80361E5C
+/* 80361E4C 0035DAAC 7F C3 F3 78 */ mr r3, r30
+/* 80361E50 0035DAB0 4B FF B6 0D */ bl SBRefStrHash
+/* 80361E54 0035DAB4 38 81 00 18 */ addi r4, r1, 0x18
+/* 80361E58 0035DAB8 4B FD 4C 21 */ bl TableRemove
+lbl_80361E5C:
+/* 80361E5C 0035DABC 3B 5A 00 01 */ addi r26, r26, 1
+lbl_80361E60:
+/* 80361E60 0035DAC0 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80361E64 0035DAC4 4B FD 40 85 */ bl ArrayLength
+/* 80361E68 0035DAC8 7C 1A 18 00 */ cmpw r26, r3
+/* 80361E6C 0035DACC 41 80 FF A4 */ blt lbl_80361E10
+/* 80361E70 0035DAD0 80 7E 00 08 */ lwz r3, 8(r30)
+/* 80361E74 0035DAD4 4B FD 3F E1 */ bl ArrayFree
+/* 80361E78 0035DAD8 38 00 00 00 */ li r0, 0
+/* 80361E7C 0035DADC 90 1E 00 08 */ stw r0, 8(r30)
+lbl_80361E80:
+/* 80361E80 0035DAE0 38 00 FF FF */ li r0, -1
+/* 80361E84 0035DAE4 7F DB F3 78 */ mr r27, r30
+/* 80361E88 0035DAE8 90 1E 04 84 */ stw r0, 0x484(r30)
+/* 80361E8C 0035DAEC 3B 40 00 00 */ li r26, 0
+/* 80361E90 0035DAF0 48 00 00 4C */ b lbl_80361EDC
+lbl_80361E94:
+/* 80361E94 0035DAF4 80 1B 00 84 */ lwz r0, 0x84(r27)
+/* 80361E98 0035DAF8 7F C3 F3 78 */ mr r3, r30
+/* 80361E9C 0035DAFC 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80361EA0 0035DB00 4B FF B5 BD */ bl SBRefStrHash
+/* 80361EA4 0035DB04 38 81 00 10 */ addi r4, r1, 0x10
+/* 80361EA8 0035DB08 4B FD 4C 75 */ bl TableLookup
+/* 80361EAC 0035DB0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80361EB0 0035DB10 41 82 00 24 */ beq lbl_80361ED4
+/* 80361EB4 0035DB14 80 03 00 04 */ lwz r0, 4(r3)
+/* 80361EB8 0035DB18 34 00 FF FF */ addic. r0, r0, -1
+/* 80361EBC 0035DB1C 90 03 00 04 */ stw r0, 4(r3)
+/* 80361EC0 0035DB20 40 82 00 14 */ bne lbl_80361ED4
+/* 80361EC4 0035DB24 7F C3 F3 78 */ mr r3, r30
+/* 80361EC8 0035DB28 4B FF B5 95 */ bl SBRefStrHash
+/* 80361ECC 0035DB2C 38 81 00 10 */ addi r4, r1, 0x10
+/* 80361ED0 0035DB30 4B FD 4B A9 */ bl TableRemove
+lbl_80361ED4:
+/* 80361ED4 0035DB34 3B 7B 00 04 */ addi r27, r27, 4
+/* 80361ED8 0035DB38 3B 5A 00 01 */ addi r26, r26, 1
+lbl_80361EDC:
+/* 80361EDC 0035DB3C 80 1E 04 80 */ lwz r0, 0x480(r30)
+/* 80361EE0 0035DB40 7C 1A 00 00 */ cmpw r26, r0
+/* 80361EE4 0035DB44 41 80 FF B0 */ blt lbl_80361E94
+/* 80361EE8 0035DB48 38 00 00 00 */ li r0, 0
+/* 80361EEC 0035DB4C 90 1E 04 80 */ stw r0, 0x480(r30)
+lbl_80361EF0:
+/* 80361EF0 0035DB50 7F E3 FB 78 */ mr r3, r31
+lbl_80361EF4:
+/* 80361EF4 0035DB54 39 61 00 40 */ addi r11, r1, 0x40
+/* 80361EF8 0035DB58 4B E6 52 79 */ bl _restgpr_26
+/* 80361EFC 0035DB5C 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80361F00 0035DB60 7C 08 03 A6 */ mtlr r0
+/* 80361F04 0035DB64 38 21 00 40 */ addi r1, r1, 0x40
+/* 80361F08 0035DB68 4E 80 00 20 */ blr
+
+.global ProcessIncomingData
+ProcessIncomingData:
+/* 80361F0C 0035DB6C 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80361F10 0035DB70 7C 08 02 A6 */ mflr r0
+/* 80361F14 0035DB74 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80361F18 0035DB78 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80361F1C 0035DB7C 7C 7F 1B 78 */ mr r31, r3
+/* 80361F20 0035DB80 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80361F24 0035DB84 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80361F28 0035DB88 93 81 00 20 */ stw r28, 0x20(r1)
+/* 80361F2C 0035DB8C 80 63 06 B4 */ lwz r3, 0x6b4(r3)
+/* 80361F30 0035DB90 4B FD 69 1D */ bl CanReceiveOnSocket
+/* 80361F34 0035DB94 2C 03 00 00 */ cmpwi r3, 0
+/* 80361F38 0035DB98 40 82 00 0C */ bne lbl_80361F44
+/* 80361F3C 0035DB9C 38 60 00 00 */ li r3, 0
+/* 80361F40 0035DBA0 48 00 02 84 */ b lbl_803621C4
+lbl_80361F44:
+/* 80361F44 0035DBA4 83 BF 00 80 */ lwz r29, 0x80(r31)
+/* 80361F48 0035DBA8 38 C0 00 00 */ li r6, 0
+/* 80361F4C 0035DBAC 80 1F 00 7C */ lwz r0, 0x7c(r31)
+/* 80361F50 0035DBB0 80 7F 06 B4 */ lwz r3, 0x6b4(r31)
+/* 80361F54 0035DBB4 20 BD 10 00 */ subfic r5, r29, 0x1000
+/* 80361F58 0035DBB8 7C 80 EA 14 */ add r4, r0, r29
+/* 80361F5C 0035DBBC 4B FD 5E 75 */ bl recv
+/* 80361F60 0035DBC0 38 03 00 01 */ addi r0, r3, 1
+/* 80361F64 0035DBC4 28 00 00 01 */ cmplwi r0, 1
+/* 80361F68 0035DBC8 41 81 01 CC */ bgt lbl_80362134
+/* 80361F6C 0035DBCC 83 BF 00 80 */ lwz r29, 0x80(r31)
+/* 80361F70 0035DBD0 2C 1D 00 00 */ cmpwi r29, 0
+/* 80361F74 0035DBD4 40 81 00 6C */ ble lbl_80361FE0
+/* 80361F78 0035DBD8 83 CD 95 0C */ lwz r30, lbl_8063E7CC-_SDA_BASE_(r13)
+/* 80361F7C 0035DBDC 7F C3 F3 78 */ mr r3, r30
+/* 80361F80 0035DBE0 4B E6 4B E5 */ bl strlen
+/* 80361F84 0035DBE4 7C 1D 18 40 */ cmplw r29, r3
+/* 80361F88 0035DBE8 40 81 00 58 */ ble lbl_80361FE0
+/* 80361F8C 0035DBEC 83 8D 95 0C */ lwz r28, lbl_8063E7CC-_SDA_BASE_(r13)
+/* 80361F90 0035DBF0 83 BF 00 7C */ lwz r29, 0x7c(r31)
+/* 80361F94 0035DBF4 7F 83 E3 78 */ mr r3, r28
+/* 80361F98 0035DBF8 4B E6 4B CD */ bl strlen
+/* 80361F9C 0035DBFC 7C 65 1B 78 */ mr r5, r3
+/* 80361FA0 0035DC00 7F A3 EB 78 */ mr r3, r29
+/* 80361FA4 0035DC04 7F 84 E3 78 */ mr r4, r28
+/* 80361FA8 0035DC08 4B E6 C5 C1 */ bl strncmp
+/* 80361FAC 0035DC0C 2C 03 00 00 */ cmpwi r3, 0
+/* 80361FB0 0035DC10 40 82 00 30 */ bne lbl_80361FE0
+/* 80361FB4 0035DC14 7F C3 F3 78 */ mr r3, r30
+/* 80361FB8 0035DC18 4B E6 4B AD */ bl strlen
+/* 80361FBC 0035DC1C 7C 1D 1A 14 */ add r0, r29, r3
+/* 80361FC0 0035DC20 81 9F 04 88 */ lwz r12, 0x488(r31)
+/* 80361FC4 0035DC24 90 1F 06 B0 */ stw r0, 0x6b0(r31)
+/* 80361FC8 0035DC28 7F E3 FB 78 */ mr r3, r31
+/* 80361FCC 0035DC2C 80 DF 04 94 */ lwz r6, 0x494(r31)
+/* 80361FD0 0035DC30 38 80 00 05 */ li r4, 5
+/* 80361FD4 0035DC34 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 80361FD8 0035DC38 7D 89 03 A6 */ mtctr r12
+/* 80361FDC 0035DC3C 4E 80 04 21 */ bctrl
+lbl_80361FE0:
+/* 80361FE0 0035DC40 81 9F 04 88 */ lwz r12, 0x488(r31)
+/* 80361FE4 0035DC44 7F E3 FB 78 */ mr r3, r31
+/* 80361FE8 0035DC48 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 80361FEC 0035DC4C 38 80 00 04 */ li r4, 4
+/* 80361FF0 0035DC50 80 DF 04 94 */ lwz r6, 0x494(r31)
+/* 80361FF4 0035DC54 7D 89 03 A6 */ mtctr r12
+/* 80361FF8 0035DC58 4E 80 04 21 */ bctrl
+/* 80361FFC 0035DC5C 80 7F 00 7C */ lwz r3, 0x7c(r31)
+/* 80362000 0035DC60 2C 03 00 00 */ cmpwi r3, 0
+/* 80362004 0035DC64 41 82 00 08 */ beq lbl_8036200C
+/* 80362008 0035DC68 4B FD 73 31 */ bl gsifree
+lbl_8036200C:
+/* 8036200C 0035DC6C 80 7F 06 B4 */ lwz r3, 0x6b4(r31)
+/* 80362010 0035DC70 38 00 00 00 */ li r0, 0
+/* 80362014 0035DC74 90 1F 00 7C */ stw r0, 0x7c(r31)
+/* 80362018 0035DC78 2C 03 FF FF */ cmpwi r3, -1
+/* 8036201C 0035DC7C 90 1F 00 80 */ stw r0, 0x80(r31)
+/* 80362020 0035DC80 41 82 00 08 */ beq lbl_80362028
+/* 80362024 0035DC84 4B FD 5B D9 */ bl closesocket
+lbl_80362028:
+/* 80362028 0035DC88 80 1F 00 08 */ lwz r0, 8(r31)
+/* 8036202C 0035DC8C 38 80 FF FF */ li r4, -1
+/* 80362030 0035DC90 38 60 00 01 */ li r3, 1
+/* 80362034 0035DC94 90 9F 06 B4 */ stw r4, 0x6b4(r31)
+/* 80362038 0035DC98 2C 00 00 00 */ cmpwi r0, 0
+/* 8036203C 0035DC9C 90 7F 00 00 */ stw r3, 0(r31)
+/* 80362040 0035DCA0 41 82 00 7C */ beq lbl_803620BC
+/* 80362044 0035DCA4 3B C0 00 00 */ li r30, 0
+/* 80362048 0035DCA8 48 00 00 54 */ b lbl_8036209C
+lbl_8036204C:
+/* 8036204C 0035DCAC 80 7F 00 08 */ lwz r3, 8(r31)
+/* 80362050 0035DCB0 7F C4 F3 78 */ mr r4, r30
+/* 80362054 0035DCB4 4B FD 3E 9D */ bl ArrayNth
+/* 80362058 0035DCB8 80 03 00 00 */ lwz r0, 0(r3)
+/* 8036205C 0035DCBC 7F E3 FB 78 */ mr r3, r31
+/* 80362060 0035DCC0 90 01 00 10 */ stw r0, 0x10(r1)
+/* 80362064 0035DCC4 4B FF B3 F9 */ bl SBRefStrHash
+/* 80362068 0035DCC8 38 81 00 10 */ addi r4, r1, 0x10
+/* 8036206C 0035DCCC 4B FD 4A B1 */ bl TableLookup
+/* 80362070 0035DCD0 2C 03 00 00 */ cmpwi r3, 0
+/* 80362074 0035DCD4 41 82 00 24 */ beq lbl_80362098
+/* 80362078 0035DCD8 80 03 00 04 */ lwz r0, 4(r3)
+/* 8036207C 0035DCDC 34 00 FF FF */ addic. r0, r0, -1
+/* 80362080 0035DCE0 90 03 00 04 */ stw r0, 4(r3)
+/* 80362084 0035DCE4 40 82 00 14 */ bne lbl_80362098
+/* 80362088 0035DCE8 7F E3 FB 78 */ mr r3, r31
+/* 8036208C 0035DCEC 4B FF B3 D1 */ bl SBRefStrHash
+/* 80362090 0035DCF0 38 81 00 10 */ addi r4, r1, 0x10
+/* 80362094 0035DCF4 4B FD 49 E5 */ bl TableRemove
+lbl_80362098:
+/* 80362098 0035DCF8 3B DE 00 01 */ addi r30, r30, 1
+lbl_8036209C:
+/* 8036209C 0035DCFC 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803620A0 0035DD00 4B FD 3E 49 */ bl ArrayLength
+/* 803620A4 0035DD04 7C 1E 18 00 */ cmpw r30, r3
+/* 803620A8 0035DD08 41 80 FF A4 */ blt lbl_8036204C
+/* 803620AC 0035DD0C 80 7F 00 08 */ lwz r3, 8(r31)
+/* 803620B0 0035DD10 4B FD 3D A5 */ bl ArrayFree
+/* 803620B4 0035DD14 38 00 00 00 */ li r0, 0
+/* 803620B8 0035DD18 90 1F 00 08 */ stw r0, 8(r31)
+lbl_803620BC:
+/* 803620BC 0035DD1C 38 00 FF FF */ li r0, -1
+/* 803620C0 0035DD20 7F FD FB 78 */ mr r29, r31
+/* 803620C4 0035DD24 90 1F 04 84 */ stw r0, 0x484(r31)
+/* 803620C8 0035DD28 3B C0 00 00 */ li r30, 0
+/* 803620CC 0035DD2C 48 00 00 4C */ b lbl_80362118
+lbl_803620D0:
+/* 803620D0 0035DD30 80 1D 00 84 */ lwz r0, 0x84(r29)
+/* 803620D4 0035DD34 7F E3 FB 78 */ mr r3, r31
+/* 803620D8 0035DD38 90 01 00 08 */ stw r0, 8(r1)
+/* 803620DC 0035DD3C 4B FF B3 81 */ bl SBRefStrHash
+/* 803620E0 0035DD40 38 81 00 08 */ addi r4, r1, 8
+/* 803620E4 0035DD44 4B FD 4A 39 */ bl TableLookup
+/* 803620E8 0035DD48 2C 03 00 00 */ cmpwi r3, 0
+/* 803620EC 0035DD4C 41 82 00 24 */ beq lbl_80362110
+/* 803620F0 0035DD50 80 03 00 04 */ lwz r0, 4(r3)
+/* 803620F4 0035DD54 34 00 FF FF */ addic. r0, r0, -1
+/* 803620F8 0035DD58 90 03 00 04 */ stw r0, 4(r3)
+/* 803620FC 0035DD5C 40 82 00 14 */ bne lbl_80362110
+/* 80362100 0035DD60 7F E3 FB 78 */ mr r3, r31
+/* 80362104 0035DD64 4B FF B3 59 */ bl SBRefStrHash
+/* 80362108 0035DD68 38 81 00 08 */ addi r4, r1, 8
+/* 8036210C 0035DD6C 4B FD 49 6D */ bl TableRemove
+lbl_80362110:
+/* 80362110 0035DD70 3B BD 00 04 */ addi r29, r29, 4
+/* 80362114 0035DD74 3B DE 00 01 */ addi r30, r30, 1
+lbl_80362118:
+/* 80362118 0035DD78 80 1F 04 80 */ lwz r0, 0x480(r31)
+/* 8036211C 0035DD7C 7C 1E 00 00 */ cmpw r30, r0
+/* 80362120 0035DD80 41 80 FF B0 */ blt lbl_803620D0
+/* 80362124 0035DD84 38 00 00 00 */ li r0, 0
+/* 80362128 0035DD88 38 60 00 03 */ li r3, 3
+/* 8036212C 0035DD8C 90 1F 04 80 */ stw r0, 0x480(r31)
+/* 80362130 0035DD90 48 00 00 94 */ b lbl_803621C4
+lbl_80362134:
+/* 80362134 0035DD94 80 9F 00 80 */ lwz r4, 0x80(r31)
+/* 80362138 0035DD98 3B 80 00 00 */ li r28, 0
+/* 8036213C 0035DD9C 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80362140 0035DDA0 7C 64 1A 14 */ add r3, r4, r3
+/* 80362144 0035DDA4 2C 00 00 02 */ cmpwi r0, 2
+/* 80362148 0035DDA8 90 7F 00 80 */ stw r3, 0x80(r31)
+/* 8036214C 0035DDAC 41 82 00 10 */ beq lbl_8036215C
+/* 80362150 0035DDB0 80 1F 07 CC */ lwz r0, 0x7cc(r31)
+/* 80362154 0035DDB4 2C 00 00 00 */ cmpwi r0, 0
+/* 80362158 0035DDB8 40 81 00 1C */ ble lbl_80362174
+lbl_8036215C:
+/* 8036215C 0035DDBC 80 9F 00 7C */ lwz r4, 0x7c(r31)
+/* 80362160 0035DDC0 38 7F 06 C0 */ addi r3, r31, 0x6c0
+/* 80362164 0035DDC4 80 1F 00 80 */ lwz r0, 0x80(r31)
+/* 80362168 0035DDC8 7C 84 EA 14 */ add r4, r4, r29
+/* 8036216C 0035DDCC 7C BD 00 50 */ subf r5, r29, r0
+/* 80362170 0035DDD0 4B FF A6 D9 */ bl GOADecrypt
+lbl_80362174:
+/* 80362174 0035DDD4 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80362178 0035DDD8 2C 00 00 03 */ cmpwi r0, 3
+/* 8036217C 0035DDDC 40 82 00 10 */ bne lbl_8036218C
+/* 80362180 0035DDE0 7F E3 FB 78 */ mr r3, r31
+/* 80362184 0035DDE4 4B FF E8 F9 */ bl ProcessMainListData
+/* 80362188 0035DDE8 7C 7C 1B 78 */ mr r28, r3
+lbl_8036218C:
+/* 8036218C 0035DDEC 2C 1C 00 00 */ cmpwi r28, 0
+/* 80362190 0035DDF0 41 82 00 0C */ beq lbl_8036219C
+/* 80362194 0035DDF4 7F 83 E3 78 */ mr r3, r28
+/* 80362198 0035DDF8 48 00 00 2C */ b lbl_803621C4
+lbl_8036219C:
+/* 8036219C 0035DDFC 80 1F 00 00 */ lwz r0, 0(r31)
+/* 803621A0 0035DE00 2C 00 00 02 */ cmpwi r0, 2
+/* 803621A4 0035DE04 40 82 00 1C */ bne lbl_803621C0
+/* 803621A8 0035DE08 80 1F 00 80 */ lwz r0, 0x80(r31)
+/* 803621AC 0035DE0C 2C 00 00 00 */ cmpwi r0, 0
+/* 803621B0 0035DE10 40 81 00 10 */ ble lbl_803621C0
+/* 803621B4 0035DE14 7F E3 FB 78 */ mr r3, r31
+/* 803621B8 0035DE18 4B FF F9 05 */ bl ProcessAdHocData
+/* 803621BC 0035DE1C 48 00 00 08 */ b lbl_803621C4
+lbl_803621C0:
+/* 803621C0 0035DE20 38 60 00 00 */ li r3, 0
+lbl_803621C4:
+/* 803621C4 0035DE24 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803621C8 0035DE28 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 803621CC 0035DE2C 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 803621D0 0035DE30 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 803621D4 0035DE34 83 81 00 20 */ lwz r28, 0x20(r1)
+/* 803621D8 0035DE38 7C 08 03 A6 */ mtlr r0
+/* 803621DC 0035DE3C 38 21 00 30 */ addi r1, r1, 0x30
+/* 803621E0 0035DE40 4E 80 00 20 */ blr
+
+.global SBSendMessageToServer
+SBSendMessageToServer:
+/* 803621E4 0035DE44 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803621E8 0035DE48 7C 08 02 A6 */ mflr r0
+/* 803621EC 0035DE4C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803621F0 0035DE50 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 803621F4 0035DE54 7C FF 3B 78 */ mr r31, r7
+/* 803621F8 0035DE58 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 803621FC 0035DE5C 7C DE 33 78 */ mr r30, r6
+/* 80362200 0035DE60 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80362204 0035DE64 7C 7D 1B 78 */ mr r29, r3
+/* 80362208 0035DE68 90 81 00 08 */ stw r4, 8(r1)
+/* 8036220C 0035DE6C B0 A1 00 0C */ sth r5, 0xc(r1)
+/* 80362210 0035DE70 80 03 00 00 */ lwz r0, 0(r3)
+/* 80362214 0035DE74 2C 00 00 01 */ cmpwi r0, 1
+/* 80362218 0035DE78 40 82 00 18 */ bne lbl_80362230
+/* 8036221C 0035DE7C 38 80 00 00 */ li r4, 0
+/* 80362220 0035DE80 38 A0 00 00 */ li r5, 0
+/* 80362224 0035DE84 38 C0 00 02 */ li r6, 2
+/* 80362228 0035DE88 38 E0 00 00 */ li r7, 0
+/* 8036222C 0035DE8C 4B FF D6 55 */ bl SBServerListConnectAndQuery
+lbl_80362230:
+/* 80362230 0035DE90 80 1D 00 00 */ lwz r0, 0(r29)
+/* 80362234 0035DE94 2C 00 00 01 */ cmpwi r0, 1
+/* 80362238 0035DE98 40 82 00 0C */ bne lbl_80362244
+/* 8036223C 0035DE9C 38 60 00 03 */ li r3, 3
+/* 80362240 0035DEA0 48 00 00 8C */ b lbl_803622CC
+lbl_80362244:
+/* 80362244 0035DEA4 38 1F 00 09 */ addi r0, r31, 9
+/* 80362248 0035DEA8 54 03 04 3E */ clrlwi r3, r0, 0x10
+/* 8036224C 0035DEAC 4B F9 4B 31 */ bl SOHtoNs
+/* 80362250 0035DEB0 B0 61 00 0E */ sth r3, 0xe(r1)
+/* 80362254 0035DEB4 38 61 00 10 */ addi r3, r1, 0x10
+/* 80362258 0035DEB8 38 81 00 0E */ addi r4, r1, 0xe
+/* 8036225C 0035DEBC 38 A0 00 02 */ li r5, 2
+/* 80362260 0035DEC0 4B CA 1D A1 */ bl memcpy
+/* 80362264 0035DEC4 38 00 00 02 */ li r0, 2
+/* 80362268 0035DEC8 38 61 00 13 */ addi r3, r1, 0x13
+/* 8036226C 0035DECC 98 01 00 12 */ stb r0, 0x12(r1)
+/* 80362270 0035DED0 38 81 00 08 */ addi r4, r1, 8
+/* 80362274 0035DED4 38 A0 00 04 */ li r5, 4
+/* 80362278 0035DED8 4B CA 1D 89 */ bl memcpy
+/* 8036227C 0035DEDC 38 61 00 17 */ addi r3, r1, 0x17
+/* 80362280 0035DEE0 38 81 00 0C */ addi r4, r1, 0xc
+/* 80362284 0035DEE4 38 A0 00 02 */ li r5, 2
+/* 80362288 0035DEE8 4B CA 1D 79 */ bl memcpy
+/* 8036228C 0035DEEC 7F A3 EB 78 */ mr r3, r29
+/* 80362290 0035DEF0 38 81 00 10 */ addi r4, r1, 0x10
+/* 80362294 0035DEF4 38 A0 00 09 */ li r5, 9
+/* 80362298 0035DEF8 4B FF D2 59 */ bl SendWithRetry
+/* 8036229C 0035DEFC 2C 03 00 00 */ cmpwi r3, 0
+/* 803622A0 0035DF00 41 82 00 08 */ beq lbl_803622A8
+/* 803622A4 0035DF04 48 00 00 28 */ b lbl_803622CC
+lbl_803622A8:
+/* 803622A8 0035DF08 80 7D 06 B4 */ lwz r3, 0x6b4(r29)
+/* 803622AC 0035DF0C 7F C4 F3 78 */ mr r4, r30
+/* 803622B0 0035DF10 7F E5 FB 78 */ mr r5, r31
+/* 803622B4 0035DF14 38 C0 00 00 */ li r6, 0
+/* 803622B8 0035DF18 4B FD 5B A9 */ bl send
+/* 803622BC 0035DF1C 2C 03 00 00 */ cmpwi r3, 0
+/* 803622C0 0035DF20 38 60 00 00 */ li r3, 0
+/* 803622C4 0035DF24 40 80 00 08 */ bge lbl_803622CC
+/* 803622C8 0035DF28 38 60 00 03 */ li r3, 3
+lbl_803622CC:
+/* 803622CC 0035DF2C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 803622D0 0035DF30 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 803622D4 0035DF34 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 803622D8 0035DF38 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 803622DC 0035DF3C 7C 08 03 A6 */ mtlr r0
+/* 803622E0 0035DF40 38 21 00 30 */ addi r1, r1, 0x30
+/* 803622E4 0035DF44 4E 80 00 20 */ blr
+
+.global SBSendNatNegotiateCookieToServer
+SBSendNatNegotiateCookieToServer:
+/* 803622E8 0035DF48 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 803622EC 0035DF4C 7C 08 02 A6 */ mflr r0
+/* 803622F0 0035DF50 39 60 00 FD */ li r11, 0xfd
+/* 803622F4 0035DF54 39 40 00 FC */ li r10, 0xfc
+/* 803622F8 0035DF58 90 01 00 34 */ stw r0, 0x34(r1)
+/* 803622FC 0035DF5C 39 20 00 1E */ li r9, 0x1e
+/* 80362300 0035DF60 39 00 00 66 */ li r8, 0x66
+/* 80362304 0035DF64 38 E0 00 6A */ li r7, 0x6a
+/* 80362308 0035DF68 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 8036230C 0035DF6C 38 00 00 B2 */ li r0, 0xb2
+/* 80362310 0035DF70 7C BF 2B 78 */ mr r31, r5
+/* 80362314 0035DF74 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80362318 0035DF78 7C 9E 23 78 */ mr r30, r4
+/* 8036231C 0035DF7C 93 A1 00 24 */ stw r29, 0x24(r1)
+/* 80362320 0035DF80 7C 7D 1B 78 */ mr r29, r3
+/* 80362324 0035DF84 7C C3 33 78 */ mr r3, r6
+/* 80362328 0035DF88 90 C1 00 08 */ stw r6, 8(r1)
+/* 8036232C 0035DF8C 99 61 00 0C */ stb r11, 0xc(r1)
+/* 80362330 0035DF90 99 41 00 0D */ stb r10, 0xd(r1)
+/* 80362334 0035DF94 99 21 00 0E */ stb r9, 0xe(r1)
+/* 80362338 0035DF98 99 01 00 0F */ stb r8, 0xf(r1)
+/* 8036233C 0035DF9C 98 E1 00 10 */ stb r7, 0x10(r1)
+/* 80362340 0035DFA0 98 01 00 11 */ stb r0, 0x11(r1)
+/* 80362344 0035DFA4 4B F9 4A 35 */ bl SOHtoNl
+/* 80362348 0035DFA8 90 61 00 08 */ stw r3, 8(r1)
+/* 8036234C 0035DFAC 38 61 00 12 */ addi r3, r1, 0x12
+/* 80362350 0035DFB0 38 81 00 08 */ addi r4, r1, 8
+/* 80362354 0035DFB4 38 A0 00 04 */ li r5, 4
+/* 80362358 0035DFB8 4B CA 1C A9 */ bl memcpy
+/* 8036235C 0035DFBC 7F A3 EB 78 */ mr r3, r29
+/* 80362360 0035DFC0 7F C4 F3 78 */ mr r4, r30
+/* 80362364 0035DFC4 7F E5 FB 78 */ mr r5, r31
+/* 80362368 0035DFC8 38 C1 00 0C */ addi r6, r1, 0xc
+/* 8036236C 0035DFCC 38 E0 00 0A */ li r7, 0xa
+/* 80362370 0035DFD0 4B FF FE 75 */ bl SBSendMessageToServer
+/* 80362374 0035DFD4 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80362378 0035DFD8 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 8036237C 0035DFDC 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 80362380 0035DFE0 83 A1 00 24 */ lwz r29, 0x24(r1)
+/* 80362384 0035DFE4 7C 08 03 A6 */ mtlr r0
+/* 80362388 0035DFE8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8036238C 0035DFEC 4E 80 00 20 */ blr
+
+.global ProcessLanData
+ProcessLanData:
+/* 80362390 0035DFF0 94 21 F9 F0 */ stwu r1, -0x610(r1)
+/* 80362394 0035DFF4 7C 08 02 A6 */ mflr r0
+/* 80362398 0035DFF8 90 01 06 14 */ stw r0, 0x614(r1)
+/* 8036239C 0035DFFC 39 61 06 10 */ addi r11, r1, 0x610
+/* 803623A0 0035E000 4B E6 4D 85 */ bl _savegpr_26
+/* 803623A4 0035E004 38 00 00 08 */ li r0, 8
+/* 803623A8 0035E008 7C 7A 1B 78 */ mr r26, r3
+/* 803623AC 0035E00C 90 01 00 0C */ stw r0, 0xc(r1)
+/* 803623B0 0035E010 48 00 00 F4 */ b lbl_803624A4
+lbl_803623B4:
+/* 803623B4 0035E014 80 7A 06 B4 */ lwz r3, 0x6b4(r26)
+/* 803623B8 0035E018 38 81 00 18 */ addi r4, r1, 0x18
+/* 803623BC 0035E01C 38 E1 00 10 */ addi r7, r1, 0x10
+/* 803623C0 0035E020 39 01 00 0C */ addi r8, r1, 0xc
+/* 803623C4 0035E024 38 A0 05 DB */ li r5, 0x5db
+/* 803623C8 0035E028 38 C0 00 00 */ li r6, 0
+/* 803623CC 0035E02C 4B FD 5A 39 */ bl recvfrom
+/* 803623D0 0035E030 2C 03 FF FF */ cmpwi r3, -1
+/* 803623D4 0035E034 41 82 00 D0 */ beq lbl_803624A4
+/* 803623D8 0035E038 A3 A1 00 12 */ lhz r29, 0x12(r1)
+/* 803623DC 0035E03C 83 C1 00 14 */ lwz r30, 0x14(r1)
+/* 803623E0 0035E040 80 7A 00 04 */ lwz r3, 4(r26)
+/* 803623E4 0035E044 4B FD 3B 05 */ bl ArrayLength
+/* 803623E8 0035E048 7C 7F 1B 78 */ mr r31, r3
+/* 803623EC 0035E04C 3B 80 00 00 */ li r28, 0
+/* 803623F0 0035E050 48 00 00 40 */ b lbl_80362430
+lbl_803623F4:
+/* 803623F4 0035E054 80 7A 00 04 */ lwz r3, 4(r26)
+/* 803623F8 0035E058 7F 84 E3 78 */ mr r4, r28
+/* 803623FC 0035E05C 4B FD 3A F5 */ bl ArrayNth
+/* 80362400 0035E060 83 63 00 00 */ lwz r27, 0(r3)
+/* 80362404 0035E064 7F 63 DB 78 */ mr r3, r27
+/* 80362408 0035E068 4B FF B4 1D */ bl SBServerGetPublicInetAddress
+/* 8036240C 0035E06C 7C 1E 18 40 */ cmplw r30, r3
+/* 80362410 0035E070 40 82 00 1C */ bne lbl_8036242C
+/* 80362414 0035E074 7F 63 DB 78 */ mr r3, r27
+/* 80362418 0035E078 4B FF B4 1D */ bl SBServerGetPublicQueryPortNBO
+/* 8036241C 0035E07C 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 80362420 0035E080 7C 1D 00 40 */ cmplw r29, r0
+/* 80362424 0035E084 40 82 00 08 */ bne lbl_8036242C
+/* 80362428 0035E088 48 00 00 14 */ b lbl_8036243C
+lbl_8036242C:
+/* 8036242C 0035E08C 3B 9C 00 01 */ addi r28, r28, 1
+lbl_80362430:
+/* 80362430 0035E090 7C 1C F8 00 */ cmpw r28, r31
+/* 80362434 0035E094 41 80 FF C0 */ blt lbl_803623F4
+/* 80362438 0035E098 3B 80 FF FF */ li r28, -1
+lbl_8036243C:
+/* 8036243C 0035E09C 2C 1C FF FF */ cmpwi r28, -1
+/* 80362440 0035E0A0 40 82 00 64 */ bne lbl_803624A4
+/* 80362444 0035E0A4 80 81 00 14 */ lwz r4, 0x14(r1)
+/* 80362448 0035E0A8 7F 43 D3 78 */ mr r3, r26
+/* 8036244C 0035E0AC A0 A1 00 12 */ lhz r5, 0x12(r1)
+/* 80362450 0035E0B0 4B FF BB 2D */ bl SBAllocServer
+/* 80362454 0035E0B4 7C 7B 1B 78 */ mr r27, r3
+/* 80362458 0035E0B8 4B FF BC 19 */ bl SBIsNullServer
+/* 8036245C 0035E0BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80362460 0035E0C0 41 82 00 0C */ beq lbl_8036246C
+/* 80362464 0035E0C4 38 60 00 05 */ li r3, 5
+/* 80362468 0035E0C8 48 00 00 98 */ b lbl_80362500
+lbl_8036246C:
+/* 8036246C 0035E0CC 7F 63 DB 78 */ mr r3, r27
+/* 80362470 0035E0D0 38 80 00 11 */ li r4, 0x11
+/* 80362474 0035E0D4 4B FF BB D1 */ bl SBServerSetFlags
+/* 80362478 0035E0D8 93 61 00 08 */ stw r27, 8(r1)
+/* 8036247C 0035E0DC 38 81 00 08 */ addi r4, r1, 8
+/* 80362480 0035E0E0 80 7A 00 04 */ lwz r3, 4(r26)
+/* 80362484 0035E0E4 4B FD 3A 9D */ bl ArrayAppend
+/* 80362488 0035E0E8 81 9A 04 88 */ lwz r12, 0x488(r26)
+/* 8036248C 0035E0EC 7F 43 D3 78 */ mr r3, r26
+/* 80362490 0035E0F0 80 A1 00 08 */ lwz r5, 8(r1)
+/* 80362494 0035E0F4 38 80 00 00 */ li r4, 0
+/* 80362498 0035E0F8 80 DA 04 94 */ lwz r6, 0x494(r26)
+/* 8036249C 0035E0FC 7D 89 03 A6 */ mtctr r12
+/* 803624A0 0035E100 4E 80 04 21 */ bctrl
+lbl_803624A4:
+/* 803624A4 0035E104 80 7A 06 B4 */ lwz r3, 0x6b4(r26)
+/* 803624A8 0035E108 4B FD 63 A5 */ bl CanReceiveOnSocket
+/* 803624AC 0035E10C 2C 03 00 00 */ cmpwi r3, 0
+/* 803624B0 0035E110 40 82 FF 04 */ bne lbl_803623B4
+/* 803624B4 0035E114 4B FD 6B 25 */ bl current_time
+/* 803624B8 0035E118 80 1A 06 B8 */ lwz r0, 0x6b8(r26)
+/* 803624BC 0035E11C 7C 00 18 50 */ subf r0, r0, r3
+/* 803624C0 0035E120 28 00 07 D0 */ cmplwi r0, 0x7d0
+/* 803624C4 0035E124 40 81 00 38 */ ble lbl_803624FC
+/* 803624C8 0035E128 80 7A 06 B4 */ lwz r3, 0x6b4(r26)
+/* 803624CC 0035E12C 4B FD 57 31 */ bl closesocket
+/* 803624D0 0035E130 38 60 FF FF */ li r3, -1
+/* 803624D4 0035E134 38 00 00 01 */ li r0, 1
+/* 803624D8 0035E138 90 7A 06 B4 */ stw r3, 0x6b4(r26)
+/* 803624DC 0035E13C 7F 43 D3 78 */ mr r3, r26
+/* 803624E0 0035E140 81 9A 04 88 */ lwz r12, 0x488(r26)
+/* 803624E4 0035E144 38 80 00 03 */ li r4, 3
+/* 803624E8 0035E148 90 1A 00 00 */ stw r0, 0(r26)
+/* 803624EC 0035E14C 80 DA 04 94 */ lwz r6, 0x494(r26)
+/* 803624F0 0035E150 80 AD B1 88 */ lwz r5, lbl_80640448-_SDA_BASE_(r13)
+/* 803624F4 0035E154 7D 89 03 A6 */ mtctr r12
+/* 803624F8 0035E158 4E 80 04 21 */ bctrl
+lbl_803624FC:
+/* 803624FC 0035E15C 38 60 00 00 */ li r3, 0
+lbl_80362500:
+/* 80362500 0035E160 39 61 06 10 */ addi r11, r1, 0x610
+/* 80362504 0035E164 4B E6 4C 6D */ bl _restgpr_26
+/* 80362508 0035E168 80 01 06 14 */ lwz r0, 0x614(r1)
+/* 8036250C 0035E16C 7C 08 03 A6 */ mtlr r0
+/* 80362510 0035E170 38 21 06 10 */ addi r1, r1, 0x610
+/* 80362514 0035E174 4E 80 00 20 */ blr
+
+.global SBListThink
+SBListThink:
+/* 80362518 0035E178 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8036251C 0035E17C 7C 08 02 A6 */ mflr r0
+/* 80362520 0035E180 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80362524 0035E184 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80362528 0035E188 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8036252C 0035E18C 7C 7E 1B 78 */ mr r30, r3
+/* 80362530 0035E190 83 E3 07 D8 */ lwz r31, 0x7d8(r3)
+/* 80362534 0035E194 2C 1F 00 00 */ cmpwi r31, 0
+/* 80362538 0035E198 41 82 00 34 */ beq lbl_8036256C
+/* 8036253C 0035E19C 93 E1 00 08 */ stw r31, 8(r1)
+/* 80362540 0035E1A0 48 00 00 18 */ b lbl_80362558
+lbl_80362544:
+/* 80362544 0035E1A4 4B FF B3 49 */ bl SBServerGetNext
+/* 80362548 0035E1A8 7C 7F 1B 78 */ mr r31, r3
+/* 8036254C 0035E1AC 38 61 00 08 */ addi r3, r1, 8
+/* 80362550 0035E1B0 4B FF AF A9 */ bl SBServerFree
+/* 80362554 0035E1B4 93 E1 00 08 */ stw r31, 8(r1)
+lbl_80362558:
+/* 80362558 0035E1B8 2C 1F 00 00 */ cmpwi r31, 0
+/* 8036255C 0035E1BC 7F E3 FB 78 */ mr r3, r31
+/* 80362560 0035E1C0 40 82 FF E4 */ bne lbl_80362544
+/* 80362564 0035E1C4 38 00 00 00 */ li r0, 0
+/* 80362568 0035E1C8 90 1E 07 D8 */ stw r0, 0x7d8(r30)
+lbl_8036256C:
+/* 8036256C 0035E1CC 80 1E 00 00 */ lwz r0, 0(r30)
+/* 80362570 0035E1D0 2C 00 00 01 */ cmpwi r0, 1
+/* 80362574 0035E1D4 41 82 00 34 */ beq lbl_803625A8
+/* 80362578 0035E1D8 40 80 00 10 */ bge lbl_80362588
+/* 8036257C 0035E1DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80362580 0035E1E0 40 80 00 1C */ bge lbl_8036259C
+/* 80362584 0035E1E4 48 00 00 24 */ b lbl_803625A8
+lbl_80362588:
+/* 80362588 0035E1E8 2C 00 00 04 */ cmpwi r0, 4
+/* 8036258C 0035E1EC 40 80 00 1C */ bge lbl_803625A8
+/* 80362590 0035E1F0 7F C3 F3 78 */ mr r3, r30
+/* 80362594 0035E1F4 4B FF F9 79 */ bl ProcessIncomingData
+/* 80362598 0035E1F8 48 00 00 14 */ b lbl_803625AC
+lbl_8036259C:
+/* 8036259C 0035E1FC 7F C3 F3 78 */ mr r3, r30
+/* 803625A0 0035E200 4B FF FD F1 */ bl ProcessLanData
+/* 803625A4 0035E204 48 00 00 08 */ b lbl_803625AC
+lbl_803625A8:
+/* 803625A8 0035E208 38 60 00 00 */ li r3, 0
+lbl_803625AC:
+/* 803625AC 0035E20C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 803625B0 0035E210 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 803625B4 0035E214 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 803625B8 0035E218 7C 08 03 A6 */ mtlr r0
+/* 803625BC 0035E21C 38 21 00 20 */ addi r1, r1, 0x20
+/* 803625C0 0035E220 4E 80 00 20 */ blr
|