diff options
Diffstat (limited to 'asm/SDK/DWC/gamespy/ghttpMain.s')
-rw-r--r-- | asm/SDK/DWC/gamespy/ghttpMain.s | 452 |
1 files changed, 452 insertions, 0 deletions
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
|