summaryrefslogtreecommitdiff
path: root/asm/SDK/DWC/dwc_ghttp/dwc_ghttp.s
blob: ecafba372b39c3cf9f8e0d2544e2a4ba1768656e (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
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
.include "macros.inc"

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

.global DWC_InitGHTTP
DWC_InitGHTTP:
/* 8031CE5C 00318ABC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8031CE60 00318AC0  7C 08 02 A6 */	mflr r0
/* 8031CE64 00318AC4  3C 80 80 44 */	lis r4, lbl_80446AD0@ha
/* 8031CE68 00318AC8  38 60 00 04 */	li r3, 4
/* 8031CE6C 00318ACC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8031CE70 00318AD0  38 84 6A D0 */	addi r4, r4, lbl_80446AD0@l
/* 8031CE74 00318AD4  4C C6 31 82 */	crclr 6
/* 8031CE78 00318AD8  4B FF FC BD */	bl DWC_Printf
/* 8031CE7C 00318ADC  48 03 70 4D */	bl ghttpStartup
/* 8031CE80 00318AE0  80 8D B0 34 */	lwz r4, lbl_806402F4-_SDA_BASE_(r13)
/* 8031CE84 00318AE4  38 60 00 01 */	li r3, 1
/* 8031CE88 00318AE8  38 04 00 01 */	addi r0, r4, 1
/* 8031CE8C 00318AEC  90 0D B0 34 */	stw r0, lbl_806402F4-_SDA_BASE_(r13)
/* 8031CE90 00318AF0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8031CE94 00318AF4  7C 08 03 A6 */	mtlr r0
/* 8031CE98 00318AF8  38 21 00 10 */	addi r1, r1, 0x10
/* 8031CE9C 00318AFC  4E 80 00 20 */	blr

.global DWC_ShutdownGHTTP
DWC_ShutdownGHTTP:
/* 8031CEA0 00318B00  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8031CEA4 00318B04  7C 08 02 A6 */	mflr r0
/* 8031CEA8 00318B08  3C 80 80 44 */	lis r4, lbl_80446AE0@ha
/* 8031CEAC 00318B0C  38 60 00 04 */	li r3, 4
/* 8031CEB0 00318B10  90 01 00 14 */	stw r0, 0x14(r1)
/* 8031CEB4 00318B14  38 84 6A E0 */	addi r4, r4, lbl_80446AE0@l
/* 8031CEB8 00318B18  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8031CEBC 00318B1C  93 C1 00 08 */	stw r30, 8(r1)
/* 8031CEC0 00318B20  4C C6 31 82 */	crclr 6
/* 8031CEC4 00318B24  4B FF FC 71 */	bl DWC_Printf
/* 8031CEC8 00318B28  80 0D B0 34 */	lwz r0, lbl_806402F4-_SDA_BASE_(r13)
/* 8031CECC 00318B2C  2C 00 00 00 */	cmpwi r0, 0
/* 8031CED0 00318B30  41 81 00 0C */	bgt lbl_8031CEDC
/* 8031CED4 00318B34  38 60 00 01 */	li r3, 1
/* 8031CED8 00318B38  48 00 00 64 */	b lbl_8031CF3C
lbl_8031CEDC:
/* 8031CEDC 00318B3C  48 03 70 3D */	bl ghttpCleanup
/* 8031CEE0 00318B40  80 0D B0 34 */	lwz r0, lbl_806402F4-_SDA_BASE_(r13)
/* 8031CEE4 00318B44  34 00 FF FF */	addic. r0, r0, -1
/* 8031CEE8 00318B48  90 0D B0 34 */	stw r0, lbl_806402F4-_SDA_BASE_(r13)
/* 8031CEEC 00318B4C  40 82 00 4C */	bne lbl_8031CF38
/* 8031CEF0 00318B50  83 CD B0 30 */	lwz r30, lbl_806402F0-_SDA_BASE_(r13)
/* 8031CEF4 00318B54  48 00 00 34 */	b lbl_8031CF28
lbl_8031CEF8:
/* 8031CEF8 00318B58  7F DF F3 78 */	mr r31, r30
/* 8031CEFC 00318B5C  83 DE 00 18 */	lwz r30, 0x18(r30)
/* 8031CF00 00318B60  80 9F 00 10 */	lwz r4, 0x10(r31)
/* 8031CF04 00318B64  2C 04 00 00 */	cmpwi r4, 0
/* 8031CF08 00318B68  41 82 00 10 */	beq lbl_8031CF18
/* 8031CF0C 00318B6C  38 60 00 06 */	li r3, 6
/* 8031CF10 00318B70  38 A0 00 00 */	li r5, 0
/* 8031CF14 00318B74  4B FF FA 75 */	bl DWC_Free
lbl_8031CF18:
/* 8031CF18 00318B78  7F E4 FB 78 */	mr r4, r31
/* 8031CF1C 00318B7C  38 60 00 06 */	li r3, 6
/* 8031CF20 00318B80  38 A0 00 00 */	li r5, 0
/* 8031CF24 00318B84  4B FF FA 65 */	bl DWC_Free
lbl_8031CF28:
/* 8031CF28 00318B88  2C 1E 00 00 */	cmpwi r30, 0
/* 8031CF2C 00318B8C  40 82 FF CC */	bne lbl_8031CEF8
/* 8031CF30 00318B90  38 00 00 00 */	li r0, 0
/* 8031CF34 00318B94  90 0D B0 30 */	stw r0, lbl_806402F0-_SDA_BASE_(r13)
lbl_8031CF38:
/* 8031CF38 00318B98  38 60 00 01 */	li r3, 1
lbl_8031CF3C:
/* 8031CF3C 00318B9C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8031CF40 00318BA0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8031CF44 00318BA4  83 C1 00 08 */	lwz r30, 8(r1)
/* 8031CF48 00318BA8  7C 08 03 A6 */	mtlr r0
/* 8031CF4C 00318BAC  38 21 00 10 */	addi r1, r1, 0x10
/* 8031CF50 00318BB0  4E 80 00 20 */	blr

.global DWC_ProcessGHTTP
DWC_ProcessGHTTP:
/* 8031CF54 00318BB4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8031CF58 00318BB8  7C 08 02 A6 */	mflr r0
/* 8031CF5C 00318BBC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8031CF60 00318BC0  4B FF F6 0D */	bl DWCi_IsError
/* 8031CF64 00318BC4  2C 03 00 00 */	cmpwi r3, 0
/* 8031CF68 00318BC8  41 82 00 0C */	beq lbl_8031CF74
/* 8031CF6C 00318BCC  38 60 00 00 */	li r3, 0
/* 8031CF70 00318BD0  48 00 00 0C */	b lbl_8031CF7C
lbl_8031CF74:
/* 8031CF74 00318BD4  48 03 72 5D */	bl ghttpThink
/* 8031CF78 00318BD8  38 60 00 01 */	li r3, 1
lbl_8031CF7C:
/* 8031CF7C 00318BDC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8031CF80 00318BE0  7C 08 03 A6 */	mtlr r0
/* 8031CF84 00318BE4  38 21 00 10 */	addi r1, r1, 0x10
/* 8031CF88 00318BE8  4E 80 00 20 */	blr

GHTTPCompletedCallback:
/* 8031CF8C 00318BEC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8031CF90 00318BF0  7C 08 02 A6 */	mflr r0
/* 8031CF94 00318BF4  90 01 00 34 */	stw r0, 0x34(r1)
/* 8031CF98 00318BF8  39 61 00 30 */	addi r11, r1, 0x30
/* 8031CF9C 00318BFC  4B EA A1 85 */	bl _savegpr_25
/* 8031CFA0 00318C00  7C 99 23 78 */	mr r25, r4
/* 8031CFA4 00318C04  3C 80 80 44 */	lis r4, lbl_80446AF4@ha
/* 8031CFA8 00318C08  7C BA 2B 78 */	mr r26, r5
/* 8031CFAC 00318C0C  83 C7 00 04 */	lwz r30, 4(r7)
/* 8031CFB0 00318C10  83 A7 00 0C */	lwz r29, 0xc(r7)
/* 8031CFB4 00318C14  7C DB 33 78 */	mr r27, r6
/* 8031CFB8 00318C18  7C FF 3B 78 */	mr r31, r7
/* 8031CFBC 00318C1C  7F 25 CB 78 */	mr r5, r25
/* 8031CFC0 00318C20  38 84 6A F4 */	addi r4, r4, lbl_80446AF4@l
/* 8031CFC4 00318C24  38 60 00 04 */	li r3, 4
/* 8031CFC8 00318C28  4C C6 31 82 */	crclr 6
/* 8031CFCC 00318C2C  4B FF FB 69 */	bl DWC_Printf
/* 8031CFD0 00318C30  2C 1E 00 00 */	cmpwi r30, 0
/* 8031CFD4 00318C34  41 82 00 A4 */	beq lbl_8031D078
/* 8031CFD8 00318C38  2C 19 00 00 */	cmpwi r25, 0
/* 8031CFDC 00318C3C  40 82 00 24 */	bne lbl_8031D000
/* 8031CFE0 00318C40  7F CC F3 78 */	mr r12, r30
/* 8031CFE4 00318C44  7F 43 D3 78 */	mr r3, r26
/* 8031CFE8 00318C48  7F 64 DB 78 */	mr r4, r27
/* 8031CFEC 00318C4C  7F 25 CB 78 */	mr r5, r25
/* 8031CFF0 00318C50  80 DF 00 00 */	lwz r6, 0(r31)
/* 8031CFF4 00318C54  7D 89 03 A6 */	mtctr r12
/* 8031CFF8 00318C58  4E 80 04 21 */	bctrl
/* 8031CFFC 00318C5C  48 00 00 90 */	b lbl_8031D08C
lbl_8031D000:
/* 8031D000 00318C60  2C 1B 00 00 */	cmpwi r27, 0
/* 8031D004 00318C64  40 81 00 4C */	ble lbl_8031D050
/* 8031D008 00318C68  38 9B 00 01 */	addi r4, r27, 1
/* 8031D00C 00318C6C  38 60 00 06 */	li r3, 6
/* 8031D010 00318C70  4B FF F8 DD */	bl DWC_Alloc
/* 8031D014 00318C74  7C 7C 1B 78 */	mr r28, r3
/* 8031D018 00318C78  7F 44 D3 78 */	mr r4, r26
/* 8031D01C 00318C7C  7F 65 DB 78 */	mr r5, r27
/* 8031D020 00318C80  4B CE 6F E1 */	bl memcpy
/* 8031D024 00318C84  38 00 00 00 */	li r0, 0
/* 8031D028 00318C88  7F 45 D3 78 */	mr r5, r26
/* 8031D02C 00318C8C  7C 1C D9 AE */	stbx r0, r28, r27
/* 8031D030 00318C90  38 60 00 04 */	li r3, 4
/* 8031D034 00318C94  38 8D 8D 40 */	addi r4, r13, lbl_8063E000-_SDA_BASE_
/* 8031D038 00318C98  4C C6 31 82 */	crclr 6
/* 8031D03C 00318C9C  4B FF FA F9 */	bl DWC_Printf
/* 8031D040 00318CA0  7F 84 E3 78 */	mr r4, r28
/* 8031D044 00318CA4  38 60 00 06 */	li r3, 6
/* 8031D048 00318CA8  38 A0 00 00 */	li r5, 0
/* 8031D04C 00318CAC  4B FF F9 3D */	bl DWC_Free
lbl_8031D050:
/* 8031D050 00318CB0  7F 23 CB 78 */	mr r3, r25
/* 8031D054 00318CB4  48 00 02 A9 */	bl DWCi_HandleGHTTPError
/* 8031D058 00318CB8  7F CC F3 78 */	mr r12, r30
/* 8031D05C 00318CBC  7F 25 CB 78 */	mr r5, r25
/* 8031D060 00318CC0  80 DF 00 00 */	lwz r6, 0(r31)
/* 8031D064 00318CC4  38 60 00 00 */	li r3, 0
/* 8031D068 00318CC8  38 80 00 00 */	li r4, 0
/* 8031D06C 00318CCC  7D 89 03 A6 */	mtctr r12
/* 8031D070 00318CD0  4E 80 04 21 */	bctrl
/* 8031D074 00318CD4  48 00 00 18 */	b lbl_8031D08C
lbl_8031D078:
/* 8031D078 00318CD8  3C 80 80 44 */	lis r4, lbl_80446B18@ha
/* 8031D07C 00318CDC  38 60 00 04 */	li r3, 4
/* 8031D080 00318CE0  38 84 6B 18 */	addi r4, r4, lbl_80446B18@l
/* 8031D084 00318CE4  4C C6 31 82 */	crclr 6
/* 8031D088 00318CE8  4B FF FA AD */	bl DWC_Printf
lbl_8031D08C:
/* 8031D08C 00318CEC  2C 19 00 00 */	cmpwi r25, 0
/* 8031D090 00318CF0  40 82 00 0C */	bne lbl_8031D09C
/* 8031D094 00318CF4  2C 1D 00 01 */	cmpwi r29, 1
/* 8031D098 00318CF8  40 82 00 24 */	bne lbl_8031D0BC
lbl_8031D09C:
/* 8031D09C 00318CFC  80 9F 00 10 */	lwz r4, 0x10(r31)
/* 8031D0A0 00318D00  2C 04 00 00 */	cmpwi r4, 0
/* 8031D0A4 00318D04  41 82 00 14 */	beq lbl_8031D0B8
/* 8031D0A8 00318D08  38 60 00 06 */	li r3, 6
/* 8031D0AC 00318D0C  38 A0 00 00 */	li r5, 0
/* 8031D0B0 00318D10  4B FF F8 D9 */	bl DWC_Free
/* 8031D0B4 00318D14  48 00 00 08 */	b lbl_8031D0BC
lbl_8031D0B8:
/* 8031D0B8 00318D18  3B A0 00 01 */	li r29, 1
lbl_8031D0BC:
/* 8031D0BC 00318D1C  7F E3 FB 78 */	mr r3, r31
/* 8031D0C0 00318D20  48 00 03 65 */	bl DWCi_RemoveDWCGHTTPParamEntry
/* 8031D0C4 00318D24  7C 1D 00 D0 */	neg r0, r29
/* 8031D0C8 00318D28  39 61 00 30 */	addi r11, r1, 0x30
/* 8031D0CC 00318D2C  7C 00 EB 78 */	or r0, r0, r29
/* 8031D0D0 00318D30  54 03 0F FE */	srwi r3, r0, 0x1f
/* 8031D0D4 00318D34  4B EA A0 99 */	bl _restgpr_25
/* 8031D0D8 00318D38  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8031D0DC 00318D3C  7C 08 03 A6 */	mtlr r0
/* 8031D0E0 00318D40  38 21 00 30 */	addi r1, r1, 0x30
/* 8031D0E4 00318D44  4E 80 00 20 */	blr

.global DWC_GetGHTTPData
DWC_GetGHTTPData:
/* 8031D0E8 00318D48  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8031D0EC 00318D4C  7C 08 02 A6 */	mflr r0
/* 8031D0F0 00318D50  3C C0 80 44 */	lis r6, lbl_80446B40@ha
/* 8031D0F4 00318D54  90 01 00 34 */	stw r0, 0x34(r1)
/* 8031D0F8 00318D58  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 8031D0FC 00318D5C  93 C1 00 28 */	stw r30, 0x28(r1)
/* 8031D100 00318D60  7C 7E 1B 78 */	mr r30, r3
/* 8031D104 00318D64  38 60 00 04 */	li r3, 4
/* 8031D108 00318D68  93 A1 00 24 */	stw r29, 0x24(r1)
/* 8031D10C 00318D6C  7C BD 2B 78 */	mr r29, r5
/* 8031D110 00318D70  93 81 00 20 */	stw r28, 0x20(r1)
/* 8031D114 00318D74  7C 9C 23 78 */	mr r28, r4
/* 8031D118 00318D78  38 86 6B 40 */	addi r4, r6, lbl_80446B40@l
/* 8031D11C 00318D7C  4C C6 31 82 */	crclr 6
/* 8031D120 00318D80  4B FF FA 15 */	bl DWC_Printf
/* 8031D124 00318D84  4B FF F4 49 */	bl DWCi_IsError
/* 8031D128 00318D88  2C 03 00 00 */	cmpwi r3, 0
/* 8031D12C 00318D8C  41 82 00 0C */	beq lbl_8031D138
/* 8031D130 00318D90  38 60 00 00 */	li r3, 0
/* 8031D134 00318D94  48 00 01 2C */	b lbl_8031D260
lbl_8031D138:
/* 8031D138 00318D98  3B E0 00 00 */	li r31, 0
/* 8031D13C 00318D9C  38 00 00 01 */	li r0, 1
/* 8031D140 00318DA0  93 A1 00 08 */	stw r29, 8(r1)
/* 8031D144 00318DA4  38 60 00 06 */	li r3, 6
/* 8031D148 00318DA8  38 80 00 1C */	li r4, 0x1c
/* 8031D14C 00318DAC  93 81 00 0C */	stw r28, 0xc(r1)
/* 8031D150 00318DB0  93 E1 00 10 */	stw r31, 0x10(r1)
/* 8031D154 00318DB4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8031D158 00318DB8  4B FF F7 95 */	bl DWC_Alloc
/* 8031D15C 00318DBC  2C 03 00 00 */	cmpwi r3, 0
/* 8031D160 00318DC0  40 82 00 0C */	bne lbl_8031D16C
/* 8031D164 00318DC4  3B E0 00 00 */	li r31, 0
/* 8031D168 00318DC8  48 00 00 50 */	b lbl_8031D1B8
lbl_8031D16C:
/* 8031D16C 00318DCC  7F A4 EB 78 */	mr r4, r29
/* 8031D170 00318DD0  7F 80 E3 78 */	mr r0, r28
/* 8031D174 00318DD4  90 83 00 00 */	stw r4, 0(r3)
/* 8031D178 00318DD8  7F E4 FB 78 */	mr r4, r31
/* 8031D17C 00318DDC  90 03 00 04 */	stw r0, 4(r3)
/* 8031D180 00318DE0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8031D184 00318DE4  90 83 00 08 */	stw r4, 8(r3)
/* 8031D188 00318DE8  90 03 00 0C */	stw r0, 0xc(r3)
/* 8031D18C 00318DEC  93 E3 00 18 */	stw r31, 0x18(r3)
/* 8031D190 00318DF0  93 E3 00 10 */	stw r31, 0x10(r3)
/* 8031D194 00318DF4  80 0D B0 30 */	lwz r0, lbl_806402F0-_SDA_BASE_(r13)
/* 8031D198 00318DF8  2C 00 00 00 */	cmpwi r0, 0
/* 8031D19C 00318DFC  40 82 00 10 */	bne lbl_8031D1AC
/* 8031D1A0 00318E00  90 6D B0 30 */	stw r3, lbl_806402F0-_SDA_BASE_(r13)
/* 8031D1A4 00318E04  7C 7F 1B 78 */	mr r31, r3
/* 8031D1A8 00318E08  48 00 00 10 */	b lbl_8031D1B8
lbl_8031D1AC:
/* 8031D1AC 00318E0C  90 03 00 18 */	stw r0, 0x18(r3)
/* 8031D1B0 00318E10  7C 7F 1B 78 */	mr r31, r3
/* 8031D1B4 00318E14  90 6D B0 30 */	stw r3, lbl_806402F0-_SDA_BASE_(r13)
lbl_8031D1B8:
/* 8031D1B8 00318E18  2C 1F 00 00 */	cmpwi r31, 0
/* 8031D1BC 00318E1C  40 82 00 44 */	bne lbl_8031D200
/* 8031D1C0 00318E20  38 60 FF FB */	li r3, -5
/* 8031D1C4 00318E24  48 00 01 39 */	bl DWCi_HandleGHTTPError
/* 8031D1C8 00318E28  3C 80 80 44 */	lis r4, lbl_80446B2C@ha
/* 8031D1CC 00318E2C  38 60 00 04 */	li r3, 4
/* 8031D1D0 00318E30  38 84 6B 2C */	addi r4, r4, lbl_80446B2C@l
/* 8031D1D4 00318E34  4C C6 31 82 */	crclr 6
/* 8031D1D8 00318E38  4B FF F9 5D */	bl DWC_Printf
/* 8031D1DC 00318E3C  7F 8C E3 78 */	mr r12, r28
/* 8031D1E0 00318E40  7F A6 EB 78 */	mr r6, r29
/* 8031D1E4 00318E44  38 60 00 00 */	li r3, 0
/* 8031D1E8 00318E48  38 80 00 00 */	li r4, 0
/* 8031D1EC 00318E4C  38 A0 FF FB */	li r5, -5
/* 8031D1F0 00318E50  7D 89 03 A6 */	mtctr r12
/* 8031D1F4 00318E54  4E 80 04 21 */	bctrl
/* 8031D1F8 00318E58  38 60 FF FB */	li r3, -5
/* 8031D1FC 00318E5C  48 00 00 64 */	b lbl_8031D260
lbl_8031D200:
/* 8031D200 00318E60  3C A0 80 32 */	lis r5, GHTTPCompletedCallback@ha
/* 8031D204 00318E64  7F C3 F3 78 */	mr r3, r30
/* 8031D208 00318E68  7F E6 FB 78 */	mr r6, r31
/* 8031D20C 00318E6C  38 80 00 00 */	li r4, 0
/* 8031D210 00318E70  38 A5 CF 8C */	addi r5, r5, GHTTPCompletedCallback@l
/* 8031D214 00318E74  48 03 6D 61 */	bl func_80353F74
/* 8031D218 00318E78  2C 03 00 00 */	cmpwi r3, 0
/* 8031D21C 00318E7C  7C 7E 1B 78 */	mr r30, r3
/* 8031D220 00318E80  40 80 00 2C */	bge lbl_8031D24C
/* 8031D224 00318E84  48 00 00 D9 */	bl DWCi_HandleGHTTPError
/* 8031D228 00318E88  7F 8C E3 78 */	mr r12, r28
/* 8031D22C 00318E8C  7F C5 F3 78 */	mr r5, r30
/* 8031D230 00318E90  7F A6 EB 78 */	mr r6, r29
/* 8031D234 00318E94  38 60 00 00 */	li r3, 0
/* 8031D238 00318E98  38 80 00 00 */	li r4, 0
/* 8031D23C 00318E9C  7D 89 03 A6 */	mtctr r12
/* 8031D240 00318EA0  4E 80 04 21 */	bctrl
/* 8031D244 00318EA4  7F E3 FB 78 */	mr r3, r31
/* 8031D248 00318EA8  48 00 01 DD */	bl DWCi_RemoveDWCGHTTPParamEntry
lbl_8031D24C:
/* 8031D24C 00318EAC  93 DF 00 14 */	stw r30, 0x14(r31)
/* 8031D250 00318EB0  7F C3 F3 78 */	mr r3, r30
/* 8031D254 00318EB4  38 80 00 01 */	li r4, 1
/* 8031D258 00318EB8  48 03 6F B1 */	bl ghttpSetMaxRecvTime
/* 8031D25C 00318EBC  7F C3 F3 78 */	mr r3, r30
lbl_8031D260:
/* 8031D260 00318EC0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8031D264 00318EC4  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 8031D268 00318EC8  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 8031D26C 00318ECC  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 8031D270 00318ED0  83 81 00 20 */	lwz r28, 0x20(r1)
/* 8031D274 00318ED4  7C 08 03 A6 */	mtlr r0
/* 8031D278 00318ED8  38 21 00 30 */	addi r1, r1, 0x30
/* 8031D27C 00318EDC  4E 80 00 20 */	blr

.global DWC_CancelGHTTPRequest
DWC_CancelGHTTPRequest:
/* 8031D280 00318EE0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8031D284 00318EE4  7C 08 02 A6 */	mflr r0
/* 8031D288 00318EE8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8031D28C 00318EEC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8031D290 00318EF0  93 C1 00 08 */	stw r30, 8(r1)
/* 8031D294 00318EF4  7C 7E 1B 78 */	mr r30, r3
/* 8031D298 00318EF8  48 03 6F 45 */	bl ghttpCancelRequest
/* 8031D29C 00318EFC  83 ED B0 30 */	lwz r31, lbl_806402F0-_SDA_BASE_(r13)
/* 8031D2A0 00318F00  48 00 00 08 */	b lbl_8031D2A8
lbl_8031D2A4:
/* 8031D2A4 00318F04  83 FF 00 18 */	lwz r31, 0x18(r31)
lbl_8031D2A8:
/* 8031D2A8 00318F08  2C 1F 00 00 */	cmpwi r31, 0
/* 8031D2AC 00318F0C  41 82 00 10 */	beq lbl_8031D2BC
/* 8031D2B0 00318F10  80 1F 00 14 */	lwz r0, 0x14(r31)
/* 8031D2B4 00318F14  7C 00 F0 00 */	cmpw r0, r30
/* 8031D2B8 00318F18  40 82 FF EC */	bne lbl_8031D2A4
lbl_8031D2BC:
/* 8031D2BC 00318F1C  2C 1F 00 00 */	cmpwi r31, 0
/* 8031D2C0 00318F20  41 82 00 24 */	beq lbl_8031D2E4
/* 8031D2C4 00318F24  80 9F 00 10 */	lwz r4, 0x10(r31)
/* 8031D2C8 00318F28  2C 04 00 00 */	cmpwi r4, 0
/* 8031D2CC 00318F2C  41 82 00 10 */	beq lbl_8031D2DC
/* 8031D2D0 00318F30  38 60 00 06 */	li r3, 6
/* 8031D2D4 00318F34  38 A0 00 00 */	li r5, 0
/* 8031D2D8 00318F38  4B FF F6 B1 */	bl DWC_Free
lbl_8031D2DC:
/* 8031D2DC 00318F3C  7F E3 FB 78 */	mr r3, r31
/* 8031D2E0 00318F40  48 00 01 45 */	bl DWCi_RemoveDWCGHTTPParamEntry
lbl_8031D2E4:
/* 8031D2E4 00318F44  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8031D2E8 00318F48  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8031D2EC 00318F4C  83 C1 00 08 */	lwz r30, 8(r1)
/* 8031D2F0 00318F50  7C 08 03 A6 */	mtlr r0
/* 8031D2F4 00318F54  38 21 00 10 */	addi r1, r1, 0x10
/* 8031D2F8 00318F58  4E 80 00 20 */	blr

.global DWCi_HandleGHTTPError
DWCi_HandleGHTTPError:
/* 8031D2FC 00318F5C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8031D300 00318F60  7C 08 02 A6 */	mflr r0
/* 8031D304 00318F64  2C 03 00 00 */	cmpwi r3, 0
/* 8031D308 00318F68  3C 80 FF FF */	lis r4, 0xFFFE8130@ha
/* 8031D30C 00318F6C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8031D310 00318F70  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8031D314 00318F74  3B E4 81 30 */	addi r31, r4, 0xFFFE8130@l
/* 8031D318 00318F78  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8031D31C 00318F7C  3B C0 00 07 */	li r30, 7
/* 8031D320 00318F80  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8031D324 00318F84  7C 7D 1B 78 */	mr r29, r3
/* 8031D328 00318F88  40 82 00 0C */	bne lbl_8031D334
/* 8031D32C 00318F8C  38 60 00 00 */	li r3, 0
/* 8031D330 00318F90  48 00 00 D8 */	b lbl_8031D408
lbl_8031D334:
/* 8031D334 00318F94  3C 80 80 44 */	lis r4, lbl_80446B54@ha
/* 8031D338 00318F98  7F A5 EB 78 */	mr r5, r29
/* 8031D33C 00318F9C  38 84 6B 54 */	addi r4, r4, lbl_80446B54@l
/* 8031D340 00318FA0  38 60 00 02 */	li r3, 2
/* 8031D344 00318FA4  4C C6 31 82 */	crclr 6
/* 8031D348 00318FA8  4B FF F7 ED */	bl DWC_Printf
/* 8031D34C 00318FAC  38 1D 00 07 */	addi r0, r29, 7
/* 8031D350 00318FB0  28 00 00 1B */	cmplwi r0, 0x1b
/* 8031D354 00318FB4  41 81 00 A4 */	bgt lbl_8031D3F8
/* 8031D358 00318FB8  3C 60 80 44 */	lis r3, lbl_80446B70@ha
/* 8031D35C 00318FBC  54 00 10 3A */	slwi r0, r0, 2
/* 8031D360 00318FC0  38 63 6B 70 */	addi r3, r3, lbl_80446B70@l
/* 8031D364 00318FC4  7C 63 00 2E */	lwzx r3, r3, r0
/* 8031D368 00318FC8  7C 69 03 A6 */	mtctr r3
/* 8031D36C 00318FCC  4E 80 04 20 */	bctr
/* 8031D370 00318FD0  3B FF FC E0 */	addi r31, r31, -800
/* 8031D374 00318FD4  48 00 00 84 */	b lbl_8031D3F8
/* 8031D378 00318FD8  3B FF FC D6 */	addi r31, r31, -810
/* 8031D37C 00318FDC  48 00 00 7C */	b lbl_8031D3F8
/* 8031D380 00318FE0  3B FF FC B8 */	addi r31, r31, -840
/* 8031D384 00318FE4  48 00 00 74 */	b lbl_8031D3F8
/* 8031D388 00318FE8  3B FF FC CC */	addi r31, r31, -820
/* 8031D38C 00318FEC  48 00 00 6C */	b lbl_8031D3F8
/* 8031D390 00318FF0  3B FF FC C2 */	addi r31, r31, -830
/* 8031D394 00318FF4  48 00 00 64 */	b lbl_8031D3F8
/* 8031D398 00318FF8  3B C0 00 09 */	li r30, 9
/* 8031D39C 00318FFC  3B FF FF FF */	addi r31, r31, -1
/* 8031D3A0 00319000  48 00 00 58 */	b lbl_8031D3F8
/* 8031D3A4 00319004  3B FF FC B8 */	addi r31, r31, -840
/* 8031D3A8 00319008  48 00 00 50 */	b lbl_8031D3F8
/* 8031D3AC 0031900C  3B FF FC AE */	addi r31, r31, -850
/* 8031D3B0 00319010  48 00 00 48 */	b lbl_8031D3F8
/* 8031D3B4 00319014  3B FF FF E2 */	addi r31, r31, -30
/* 8031D3B8 00319018  48 00 00 40 */	b lbl_8031D3F8
/* 8031D3BC 0031901C  3B FF FF CE */	addi r31, r31, -50
/* 8031D3C0 00319020  48 00 00 38 */	b lbl_8031D3F8
/* 8031D3C4 00319024  3B FF FF EC */	addi r31, r31, -20
/* 8031D3C8 00319028  48 00 00 30 */	b lbl_8031D3F8
/* 8031D3CC 0031902C  3B FF FC A4 */	addi r31, r31, -860
/* 8031D3D0 00319030  48 00 00 28 */	b lbl_8031D3F8
/* 8031D3D4 00319034  3B FF FC 9A */	addi r31, r31, -870
/* 8031D3D8 00319038  48 00 00 20 */	b lbl_8031D3F8
/* 8031D3DC 0031903C  3B FF FC 90 */	addi r31, r31, -880
/* 8031D3E0 00319040  48 00 00 18 */	b lbl_8031D3F8
/* 8031D3E4 00319044  3B FF FC 86 */	addi r31, r31, -890
/* 8031D3E8 00319048  48 00 00 10 */	b lbl_8031D3F8
/* 8031D3EC 0031904C  3B FF FC 7C */	addi r31, r31, -900
/* 8031D3F0 00319050  48 00 00 08 */	b lbl_8031D3F8
/* 8031D3F4 00319054  3B FF FC 72 */	addi r31, r31, -910
lbl_8031D3F8:
/* 8031D3F8 00319058  7F C3 F3 78 */	mr r3, r30
/* 8031D3FC 0031905C  7F E4 FB 78 */	mr r4, r31
/* 8031D400 00319060  4B FF F1 81 */	bl DWCi_SetError
/* 8031D404 00319064  7F A3 EB 78 */	mr r3, r29
lbl_8031D408:
/* 8031D408 00319068  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8031D40C 0031906C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8031D410 00319070  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8031D414 00319074  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8031D418 00319078  7C 08 03 A6 */	mtlr r0
/* 8031D41C 0031907C  38 21 00 20 */	addi r1, r1, 0x20
/* 8031D420 00319080  4E 80 00 20 */	blr

.global DWCi_RemoveDWCGHTTPParamEntry
DWCi_RemoveDWCGHTTPParamEntry:
/* 8031D424 00319084  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8031D428 00319088  7C 08 02 A6 */	mflr r0
/* 8031D42C 0031908C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8031D430 00319090  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8031D434 00319094  80 8D B0 30 */	lwz r4, lbl_806402F0-_SDA_BASE_(r13)
/* 8031D438 00319098  2C 04 00 00 */	cmpwi r4, 0
/* 8031D43C 0031909C  41 82 00 60 */	beq lbl_8031D49C
/* 8031D440 003190A0  7C 04 18 40 */	cmplw r4, r3
/* 8031D444 003190A4  40 82 00 1C */	bne lbl_8031D460
/* 8031D448 003190A8  83 E4 00 18 */	lwz r31, 0x18(r4)
/* 8031D44C 003190AC  38 60 00 06 */	li r3, 6
/* 8031D450 003190B0  38 A0 00 00 */	li r5, 0
/* 8031D454 003190B4  4B FF F5 35 */	bl DWC_Free
/* 8031D458 003190B8  93 ED B0 30 */	stw r31, lbl_806402F0-_SDA_BASE_(r13)
/* 8031D45C 003190BC  48 00 00 40 */	b lbl_8031D49C
lbl_8031D460:
/* 8031D460 003190C0  7C 86 23 78 */	mr r6, r4
/* 8031D464 003190C4  48 00 00 2C */	b lbl_8031D490
lbl_8031D468:
/* 8031D468 003190C8  7C 04 18 40 */	cmplw r4, r3
/* 8031D46C 003190CC  41 82 00 0C */	beq lbl_8031D478
/* 8031D470 003190D0  7C 86 23 78 */	mr r6, r4
/* 8031D474 003190D4  48 00 00 1C */	b lbl_8031D490
lbl_8031D478:
/* 8031D478 003190D8  80 04 00 18 */	lwz r0, 0x18(r4)
/* 8031D47C 003190DC  38 60 00 06 */	li r3, 6
/* 8031D480 003190E0  38 A0 00 00 */	li r5, 0
/* 8031D484 003190E4  90 06 00 18 */	stw r0, 0x18(r6)
/* 8031D488 003190E8  4B FF F5 01 */	bl DWC_Free
/* 8031D48C 003190EC  48 00 00 10 */	b lbl_8031D49C
lbl_8031D490:
/* 8031D490 003190F0  80 86 00 18 */	lwz r4, 0x18(r6)
/* 8031D494 003190F4  2C 04 00 00 */	cmpwi r4, 0
/* 8031D498 003190F8  40 82 FF D0 */	bne lbl_8031D468
lbl_8031D49C:
/* 8031D49C 003190FC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8031D4A0 00319100  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8031D4A4 00319104  7C 08 03 A6 */	mtlr r0
/* 8031D4A8 00319108  38 21 00 10 */	addi r1, r1, 0x10
/* 8031D4AC 0031910C  4E 80 00 20 */	blr