summaryrefslogtreecommitdiff
path: root/asm/SDK/NHTTP/NHTTP_bgnend.s
blob: 9fa8c2598ed718b3e40d6796b585fe4ed2cbaea5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global NHTTPi_InitBgnEndInfo
NHTTPi_InitBgnEndInfo:
/* 802F7B34 002F3794  38 80 00 00 */	li r4, 0
/* 802F7B38 002F3798  38 00 FF FF */	li r0, -1
/* 802F7B3C 002F379C  90 83 07 D4 */	stw r4, 0x7d4(r3)
/* 802F7B40 002F37A0  90 83 07 D8 */	stw r4, 0x7d8(r3)
/* 802F7B44 002F37A4  90 83 07 C4 */	stw r4, 0x7c4(r3)
/* 802F7B48 002F37A8  90 83 07 C8 */	stw r4, 0x7c8(r3)
/* 802F7B4C 002F37AC  90 83 07 CC */	stw r4, 0x7cc(r3)
/* 802F7B50 002F37B0  90 03 07 D0 */	stw r0, 0x7d0(r3)
/* 802F7B54 002F37B4  90 83 07 DC */	stw r4, 0x7dc(r3)
/* 802F7B58 002F37B8  90 83 07 E0 */	stw r4, 0x7e0(r3)
/* 802F7B5C 002F37BC  4E 80 00 20 */	blr

.global NHTTPi_alloc
NHTTPi_alloc:
/* 802F7B60 002F37C0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F7B64 002F37C4  7C 08 02 A6 */	mflr r0
/* 802F7B68 002F37C8  90 01 00 14 */	stw r0, 0x14(r1)
/* 802F7B6C 002F37CC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F7B70 002F37D0  7C 9F 23 78 */	mr r31, r4
/* 802F7B74 002F37D4  93 C1 00 08 */	stw r30, 8(r1)
/* 802F7B78 002F37D8  7C 7E 1B 78 */	mr r30, r3
/* 802F7B7C 002F37DC  48 00 82 ED */	bl NHTTPi_GetSystemInfoP
/* 802F7B80 002F37E0  81 83 07 C4 */	lwz r12, 0x7c4(r3)
/* 802F7B84 002F37E4  2C 0C 00 00 */	cmpwi r12, 0
/* 802F7B88 002F37E8  41 82 00 18 */	beq lbl_802F7BA0
/* 802F7B8C 002F37EC  7F C3 F3 78 */	mr r3, r30
/* 802F7B90 002F37F0  7F E4 FB 78 */	mr r4, r31
/* 802F7B94 002F37F4  7D 89 03 A6 */	mtctr r12
/* 802F7B98 002F37F8  4E 80 04 21 */	bctrl
/* 802F7B9C 002F37FC  48 00 00 08 */	b lbl_802F7BA4
lbl_802F7BA0:
/* 802F7BA0 002F3800  38 60 00 00 */	li r3, 0
lbl_802F7BA4:
/* 802F7BA4 002F3804  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802F7BA8 002F3808  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F7BAC 002F380C  83 C1 00 08 */	lwz r30, 8(r1)
/* 802F7BB0 002F3810  7C 08 03 A6 */	mtlr r0
/* 802F7BB4 002F3814  38 21 00 10 */	addi r1, r1, 0x10
/* 802F7BB8 002F3818  4E 80 00 20 */	blr

.global NHTTPi_free
NHTTPi_free:
/* 802F7BBC 002F381C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F7BC0 002F3820  7C 08 02 A6 */	mflr r0
/* 802F7BC4 002F3824  90 01 00 14 */	stw r0, 0x14(r1)
/* 802F7BC8 002F3828  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F7BCC 002F382C  7C 7F 1B 78 */	mr r31, r3
/* 802F7BD0 002F3830  48 00 82 99 */	bl NHTTPi_GetSystemInfoP
/* 802F7BD4 002F3834  81 83 07 C8 */	lwz r12, 0x7c8(r3)
/* 802F7BD8 002F3838  2C 0C 00 00 */	cmpwi r12, 0
/* 802F7BDC 002F383C  41 82 00 10 */	beq lbl_802F7BEC
/* 802F7BE0 002F3840  7F E3 FB 78 */	mr r3, r31
/* 802F7BE4 002F3844  7D 89 03 A6 */	mtctr r12
/* 802F7BE8 002F3848  4E 80 04 21 */	bctrl
lbl_802F7BEC:
/* 802F7BEC 002F384C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802F7BF0 002F3850  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F7BF4 002F3854  7C 08 03 A6 */	mtlr r0
/* 802F7BF8 002F3858  38 21 00 10 */	addi r1, r1, 0x10
/* 802F7BFC 002F385C  4E 80 00 20 */	blr

.global NHTTPi_SetError
NHTTPi_SetError:
/* 802F7C00 002F3860  90 83 07 D8 */	stw r4, 0x7d8(r3)
/* 802F7C04 002F3864  4E 80 00 20 */	blr

.global NHTTPi_SetSSLError
NHTTPi_SetSSLError:
/* 802F7C08 002F3868  90 83 07 D4 */	stw r4, 0x7d4(r3)
/* 802F7C0C 002F386C  4E 80 00 20 */	blr

.global NHTTPi_GetSSLError
NHTTPi_GetSSLError:
/* 802F7C10 002F3870  80 63 07 D4 */	lwz r3, 0x7d4(r3)
/* 802F7C14 002F3874  4E 80 00 20 */	blr

.global NHTTPi_Startup
NHTTPi_Startup:
/* 802F7C18 002F3878  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802F7C1C 002F387C  7C 08 02 A6 */	mflr r0
/* 802F7C20 002F3880  90 01 00 34 */	stw r0, 0x34(r1)
/* 802F7C24 002F3884  39 61 00 30 */	addi r11, r1, 0x30
/* 802F7C28 002F3888  4B EC F4 F1 */	bl _savegpr_23
/* 802F7C2C 002F388C  3F C0 80 44 */	lis r30, lbl_80445FF0@ha
/* 802F7C30 002F3890  7C 7F 1B 78 */	mr r31, r3
/* 802F7C34 002F3894  7C 99 23 78 */	mr r25, r4
/* 802F7C38 002F3898  7C B7 2B 78 */	mr r23, r5
/* 802F7C3C 002F389C  7C D8 33 78 */	mr r24, r6
/* 802F7C40 002F38A0  3B DE 5F F0 */	addi r30, r30, lbl_80445FF0@l
/* 802F7C44 002F38A4  48 00 82 8D */	bl NHTTPi_GetBgnEndInfoP
/* 802F7C48 002F38A8  7C 7D 1B 78 */	mr r29, r3
/* 802F7C4C 002F38AC  7F E3 FB 78 */	mr r3, r31
/* 802F7C50 002F38B0  48 00 82 85 */	bl NHTTPi_GetListInfoP
/* 802F7C54 002F38B4  7C 7C 1B 78 */	mr r28, r3
/* 802F7C58 002F38B8  7F E3 FB 78 */	mr r3, r31
/* 802F7C5C 002F38BC  48 00 82 81 */	bl NHTTPi_GetReqInfoP
/* 802F7C60 002F38C0  7C 7B 1B 78 */	mr r27, r3
/* 802F7C64 002F38C4  7F E3 FB 78 */	mr r3, r31
/* 802F7C68 002F38C8  48 00 82 85 */	bl NHTTPi_GetMutexInfoP
/* 802F7C6C 002F38CC  7C 7A 1B 78 */	mr r26, r3
/* 802F7C70 002F38D0  7F E3 FB 78 */	mr r3, r31
/* 802F7C74 002F38D4  48 00 82 71 */	bl NHTTPi_GetThreadInfoP
/* 802F7C78 002F38D8  93 3D 07 C4 */	stw r25, 0x7c4(r29)
/* 802F7C7C 002F38DC  7C 79 1B 78 */	mr r25, r3
/* 802F7C80 002F38E0  3B E0 00 00 */	li r31, 0
/* 802F7C84 002F38E4  7F 83 E3 78 */	mr r3, r28
/* 802F7C88 002F38E8  92 FD 07 C8 */	stw r23, 0x7c8(r29)
/* 802F7C8C 002F38EC  93 FD 07 D8 */	stw r31, 0x7d8(r29)
/* 802F7C90 002F38F0  93 FD 07 D4 */	stw r31, 0x7d4(r29)
/* 802F7C94 002F38F4  93 FD 07 DC */	stw r31, 0x7dc(r29)
/* 802F7C98 002F38F8  48 00 05 0D */	bl NHTTPi_InitListInfo
/* 802F7C9C 002F38FC  7F 63 DB 78 */	mr r3, r27
/* 802F7CA0 002F3900  48 00 10 15 */	bl NHTTPi_InitRequestInfo
/* 802F7CA4 002F3904  7F 43 D3 78 */	mr r3, r26
/* 802F7CA8 002F3908  48 00 07 59 */	bl NHTTPi_initLockReqList
/* 802F7CAC 002F390C  38 00 FF FF */	li r0, -1
/* 802F7CB0 002F3910  90 1D 07 D0 */	stw r0, 0x7d0(r29)
/* 802F7CB4 002F3914  48 00 81 B5 */	bl NHTTPi_GetSystemInfoP
/* 802F7CB8 002F3918  81 83 07 C4 */	lwz r12, 0x7c4(r3)
/* 802F7CBC 002F391C  2C 0C 00 00 */	cmpwi r12, 0
/* 802F7CC0 002F3920  41 82 00 18 */	beq lbl_802F7CD8
/* 802F7CC4 002F3924  38 60 20 00 */	li r3, 0x2000
/* 802F7CC8 002F3928  38 80 00 08 */	li r4, 8
/* 802F7CCC 002F392C  7D 89 03 A6 */	mtctr r12
/* 802F7CD0 002F3930  4E 80 04 21 */	bctrl
/* 802F7CD4 002F3934  7C 7F 1B 78 */	mr r31, r3
lbl_802F7CD8:
/* 802F7CD8 002F3938  2C 1F 00 00 */	cmpwi r31, 0
/* 802F7CDC 002F393C  93 FD 07 E0 */	stw r31, 0x7e0(r29)
/* 802F7CE0 002F3940  40 82 00 18 */	bne lbl_802F7CF8
/* 802F7CE4 002F3944  38 00 00 01 */	li r0, 1
/* 802F7CE8 002F3948  90 1D 07 D8 */	stw r0, 0x7d8(r29)
/* 802F7CEC 002F394C  48 00 07 55 */	bl NHTTPi_exitLockReqList
/* 802F7CF0 002F3950  38 60 00 00 */	li r3, 0
/* 802F7CF4 002F3954  48 00 00 98 */	b lbl_802F7D8C
lbl_802F7CF8:
/* 802F7CF8 002F3958  7F 23 CB 78 */	mr r3, r25
/* 802F7CFC 002F395C  7F 04 C3 78 */	mr r4, r24
/* 802F7D00 002F3960  7F E5 FB 78 */	mr r5, r31
/* 802F7D04 002F3964  48 00 07 49 */	bl NHTTPi_createCommThread
/* 802F7D08 002F3968  2C 03 00 00 */	cmpwi r3, 0
/* 802F7D0C 002F396C  40 82 00 40 */	bne lbl_802F7D4C
/* 802F7D10 002F3970  38 00 00 09 */	li r0, 9
/* 802F7D14 002F3974  90 1D 07 D8 */	stw r0, 0x7d8(r29)
/* 802F7D18 002F3978  83 DD 07 E0 */	lwz r30, 0x7e0(r29)
/* 802F7D1C 002F397C  48 00 81 4D */	bl NHTTPi_GetSystemInfoP
/* 802F7D20 002F3980  81 83 07 C8 */	lwz r12, 0x7c8(r3)
/* 802F7D24 002F3984  2C 0C 00 00 */	cmpwi r12, 0
/* 802F7D28 002F3988  41 82 00 10 */	beq lbl_802F7D38
/* 802F7D2C 002F398C  7F C3 F3 78 */	mr r3, r30
/* 802F7D30 002F3990  7D 89 03 A6 */	mtctr r12
/* 802F7D34 002F3994  4E 80 04 21 */	bctrl
lbl_802F7D38:
/* 802F7D38 002F3998  38 00 00 00 */	li r0, 0
/* 802F7D3C 002F399C  90 1D 07 E0 */	stw r0, 0x7e0(r29)
/* 802F7D40 002F39A0  48 00 07 01 */	bl NHTTPi_exitLockReqList
/* 802F7D44 002F39A4  38 60 00 00 */	li r3, 0
/* 802F7D48 002F39A8  48 00 00 44 */	b lbl_802F7D8C
lbl_802F7D4C:
/* 802F7D4C 002F39AC  7F A3 EB 78 */	mr r3, r29
/* 802F7D50 002F39B0  4B FF 56 7D */	bl NCDGetCurrentIpConfig
/* 802F7D54 002F39B4  2C 03 00 00 */	cmpwi r3, 0
/* 802F7D58 002F39B8  40 80 00 28 */	bge lbl_802F7D80
/* 802F7D5C 002F39BC  7C 64 1B 78 */	mr r4, r3
/* 802F7D60 002F39C0  38 7E 00 00 */	addi r3, r30, 0
/* 802F7D64 002F39C4  4C C6 31 82 */	crclr 6
/* 802F7D68 002F39C8  4B D0 FD 5D */	bl OSReport
/* 802F7D6C 002F39CC  38 7E 00 20 */	addi r3, r30, 0x20
/* 802F7D70 002F39D0  38 BE 00 30 */	addi r5, r30, 0x30
/* 802F7D74 002F39D4  38 80 00 E3 */	li r4, 0xe3
/* 802F7D78 002F39D8  4C C6 31 82 */	crclr 6
/* 802F7D7C 002F39DC  4B F7 37 21 */	bl OSPanic
lbl_802F7D80:
/* 802F7D80 002F39E0  38 00 00 01 */	li r0, 1
/* 802F7D84 002F39E4  38 60 00 01 */	li r3, 1
/* 802F7D88 002F39E8  90 1D 07 CC */	stw r0, 0x7cc(r29)
lbl_802F7D8C:
/* 802F7D8C 002F39EC  39 61 00 30 */	addi r11, r1, 0x30
/* 802F7D90 002F39F0  4B EC F3 D5 */	bl _restgpr_23
/* 802F7D94 002F39F4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802F7D98 002F39F8  7C 08 03 A6 */	mtlr r0
/* 802F7D9C 002F39FC  38 21 00 30 */	addi r1, r1, 0x30
/* 802F7DA0 002F3A00  4E 80 00 20 */	blr

.global NHTTPi_CleanupAsync
NHTTPi_CleanupAsync:
/* 802F7DA4 002F3A04  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F7DA8 002F3A08  7C 08 02 A6 */	mflr r0
/* 802F7DAC 002F3A0C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F7DB0 002F3A10  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802F7DB4 002F3A14  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802F7DB8 002F3A18  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802F7DBC 002F3A1C  7C 9D 23 78 */	mr r29, r4
/* 802F7DC0 002F3A20  93 81 00 10 */	stw r28, 0x10(r1)
/* 802F7DC4 002F3A24  7C 7C 1B 78 */	mr r28, r3
/* 802F7DC8 002F3A28  48 00 81 09 */	bl NHTTPi_GetBgnEndInfoP
/* 802F7DCC 002F3A2C  7C 7E 1B 78 */	mr r30, r3
/* 802F7DD0 002F3A30  7F 83 E3 78 */	mr r3, r28
/* 802F7DD4 002F3A34  48 00 81 11 */	bl NHTTPi_GetThreadInfoP
/* 802F7DD8 002F3A38  7C 7F 1B 78 */	mr r31, r3
/* 802F7DDC 002F3A3C  38 80 00 01 */	li r4, 1
/* 802F7DE0 002F3A40  48 00 07 7D */	bl NHTTPi_CheckCurrentThread
/* 802F7DE4 002F3A44  7F 83 E3 78 */	mr r3, r28
/* 802F7DE8 002F3A48  48 00 17 F1 */	bl NHTTPi_cancelAllRequests
/* 802F7DEC 002F3A4C  7F E3 FB 78 */	mr r3, r31
/* 802F7DF0 002F3A50  7F C4 F3 78 */	mr r4, r30
/* 802F7DF4 002F3A54  48 00 06 ED */	bl NHTTPi_destroyCommThread
/* 802F7DF8 002F3A58  83 FE 07 E0 */	lwz r31, 0x7e0(r30)
/* 802F7DFC 002F3A5C  48 00 80 6D */	bl NHTTPi_GetSystemInfoP
/* 802F7E00 002F3A60  81 83 07 C8 */	lwz r12, 0x7c8(r3)
/* 802F7E04 002F3A64  2C 0C 00 00 */	cmpwi r12, 0
/* 802F7E08 002F3A68  41 82 00 10 */	beq lbl_802F7E18
/* 802F7E0C 002F3A6C  7F E3 FB 78 */	mr r3, r31
/* 802F7E10 002F3A70  7D 89 03 A6 */	mtctr r12
/* 802F7E14 002F3A74  4E 80 04 21 */	bctrl
lbl_802F7E18:
/* 802F7E18 002F3A78  3B E0 00 00 */	li r31, 0
/* 802F7E1C 002F3A7C  93 FE 07 E0 */	stw r31, 0x7e0(r30)
/* 802F7E20 002F3A80  48 00 06 21 */	bl NHTTPi_exitLockReqList
/* 802F7E24 002F3A84  2C 1D 00 00 */	cmpwi r29, 0
/* 802F7E28 002F3A88  93 FE 07 CC */	stw r31, 0x7cc(r30)
/* 802F7E2C 002F3A8C  41 82 00 10 */	beq lbl_802F7E3C
/* 802F7E30 002F3A90  7F AC EB 78 */	mr r12, r29
/* 802F7E34 002F3A94  7D 89 03 A6 */	mtctr r12
/* 802F7E38 002F3A98  4E 80 04 21 */	bctrl
lbl_802F7E3C:
/* 802F7E3C 002F3A9C  48 00 7C 9D */	bl NHTTPi_GetConnectionListLength
/* 802F7E40 002F3AA0  2C 03 00 00 */	cmpwi r3, 0
/* 802F7E44 002F3AA4  7C 64 1B 78 */	mr r4, r3
/* 802F7E48 002F3AA8  41 82 00 14 */	beq lbl_802F7E5C
/* 802F7E4C 002F3AAC  3C 60 80 44 */	lis r3, lbl_80446038@ha
/* 802F7E50 002F3AB0  38 63 60 38 */	addi r3, r3, lbl_80446038@l
/* 802F7E54 002F3AB4  4C C6 31 82 */	crclr 6
/* 802F7E58 002F3AB8  4B ED 4A 0D */	bl printf
lbl_802F7E5C:
/* 802F7E5C 002F3ABC  80 7E 07 D0 */	lwz r3, 0x7d0(r30)
/* 802F7E60 002F3AC0  2C 03 00 00 */	cmpwi r3, 0
/* 802F7E64 002F3AC4  41 80 00 10 */	blt lbl_802F7E74
/* 802F7E68 002F3AC8  4B FF E4 69 */	bl SOClose
/* 802F7E6C 002F3ACC  38 00 FF FF */	li r0, -1
/* 802F7E70 002F3AD0  90 1E 07 D0 */	stw r0, 0x7d0(r30)
lbl_802F7E74:
/* 802F7E74 002F3AD4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F7E78 002F3AD8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802F7E7C 002F3ADC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802F7E80 002F3AE0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802F7E84 002F3AE4  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802F7E88 002F3AE8  7C 08 03 A6 */	mtlr r0
/* 802F7E8C 002F3AEC  38 21 00 20 */	addi r1, r1, 0x20
/* 802F7E90 002F3AF0  4E 80 00 20 */	blr