summaryrefslogtreecommitdiff
path: root/asm/SDK/DWC/gamespy/ghttpBuffer.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/DWC/gamespy/ghttpBuffer.s')
-rw-r--r--asm/SDK/DWC/gamespy/ghttpBuffer.s751
1 files changed, 751 insertions, 0 deletions
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