summaryrefslogtreecommitdiff
path: root/asm/SDK/NHTTP/NHTTP_recvbuf.s
blob: 83867abbff52ae86c9af40eeb074e204747626ce (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
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
.include "macros.inc"

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

.global NHTTPi_findNextLineHdrRecvBuf
NHTTPi_findNextLineHdrRecvBuf:
/* 802F8618 002F4278  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F861C 002F427C  2C 06 00 00 */	cmpwi r6, 0
/* 802F8620 002F4280  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F8624 002F4284  93 C1 00 08 */	stw r30, 8(r1)
/* 802F8628 002F4288  41 82 00 0C */	beq lbl_802F8634
/* 802F862C 002F428C  38 00 FF FF */	li r0, -1
/* 802F8630 002F4290  90 06 00 00 */	stw r0, 0(r6)
lbl_802F8634:
/* 802F8634 002F4294  7C 04 28 00 */	cmpw r4, r5
/* 802F8638 002F4298  40 80 01 C4 */	bge lbl_802F87FC
/* 802F863C 002F429C  2C 04 04 00 */	cmpwi r4, 0x400
/* 802F8640 002F42A0  39 40 FF FF */	li r10, -1
/* 802F8644 002F42A4  3B C0 00 00 */	li r30, 0
/* 802F8648 002F42A8  40 80 00 10 */	bge lbl_802F8658
/* 802F864C 002F42AC  7C 9F 23 78 */	mr r31, r4
/* 802F8650 002F42B0  39 80 00 00 */	li r12, 0
/* 802F8654 002F42B4  48 00 00 60 */	b lbl_802F86B4
lbl_802F8658:
/* 802F8658 002F42B8  38 04 FC 00 */	addi r0, r4, -1024
/* 802F865C 002F42BC  81 83 00 34 */	lwz r12, 0x34(r3)
/* 802F8660 002F42C0  7C 08 4E 71 */	srawi. r8, r0, 9
/* 802F8664 002F42C4  41 82 00 48 */	beq lbl_802F86AC
/* 802F8668 002F42C8  55 00 E8 FF */	rlwinm. r0, r8, 0x1d, 3, 0x1f
/* 802F866C 002F42CC  7C 09 03 A6 */	mtctr r0
/* 802F8670 002F42D0  41 82 00 30 */	beq lbl_802F86A0
lbl_802F8674:
/* 802F8674 002F42D4  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F8678 002F42D8  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F867C 002F42DC  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F8680 002F42E0  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F8684 002F42E4  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F8688 002F42E8  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F868C 002F42EC  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F8690 002F42F0  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F8694 002F42F4  42 00 FF E0 */	bdnz lbl_802F8674
/* 802F8698 002F42F8  71 08 00 07 */	andi. r8, r8, 7
/* 802F869C 002F42FC  41 82 00 10 */	beq lbl_802F86AC
lbl_802F86A0:
/* 802F86A0 002F4300  7D 09 03 A6 */	mtctr r8
lbl_802F86A4:
/* 802F86A4 002F4304  81 8C 00 00 */	lwz r12, 0(r12)
/* 802F86A8 002F4308  42 00 FF FC */	bdnz lbl_802F86A4
lbl_802F86AC:
/* 802F86AC 002F430C  38 04 FC 00 */	addi r0, r4, -1024
/* 802F86B0 002F4310  54 1F 05 FE */	clrlwi r31, r0, 0x17
lbl_802F86B4:
/* 802F86B4 002F4314  7C 04 28 50 */	subf r0, r4, r5
/* 802F86B8 002F4318  39 00 00 01 */	li r8, 1
/* 802F86BC 002F431C  7C 09 03 A6 */	mtctr r0
/* 802F86C0 002F4320  7C 04 28 00 */	cmpw r4, r5
/* 802F86C4 002F4324  40 80 01 38 */	bge lbl_802F87FC
lbl_802F86C8:
/* 802F86C8 002F4328  2C 0C 00 00 */	cmpwi r12, 0
/* 802F86CC 002F432C  40 82 00 2C */	bne lbl_802F86F8
/* 802F86D0 002F4330  2C 1F 04 00 */	cmpwi r31, 0x400
/* 802F86D4 002F4334  40 80 00 18 */	bge lbl_802F86EC
/* 802F86D8 002F4338  7D 23 FA 14 */	add r9, r3, r31
/* 802F86DC 002F433C  3B FF 00 01 */	addi r31, r31, 1
/* 802F86E0 002F4340  88 09 00 38 */	lbz r0, 0x38(r9)
/* 802F86E4 002F4344  7C 0B 07 74 */	extsb r11, r0
/* 802F86E8 002F4348  48 00 00 2C */	b lbl_802F8714
lbl_802F86EC:
/* 802F86EC 002F434C  81 83 00 34 */	lwz r12, 0x34(r3)
/* 802F86F0 002F4350  3B E0 00 00 */	li r31, 0
/* 802F86F4 002F4354  48 00 00 14 */	b lbl_802F8708
lbl_802F86F8:
/* 802F86F8 002F4358  2C 1F 02 00 */	cmpwi r31, 0x200
/* 802F86FC 002F435C  40 82 00 0C */	bne lbl_802F8708
/* 802F8700 002F4360  3B E0 00 00 */	li r31, 0
/* 802F8704 002F4364  81 8C 00 00 */	lwz r12, 0(r12)
lbl_802F8708:
/* 802F8708 002F4368  7D 2C FA 14 */	add r9, r12, r31
/* 802F870C 002F436C  3B FF 00 01 */	addi r31, r31, 1
/* 802F8710 002F4370  89 69 00 04 */	lbz r11, 4(r9)
lbl_802F8714:
/* 802F8714 002F4374  7D 60 07 74 */	extsb r0, r11
/* 802F8718 002F4378  2C 00 00 3A */	cmpwi r0, 0x3a
/* 802F871C 002F437C  40 82 00 1C */	bne lbl_802F8738
/* 802F8720 002F4380  2C 06 00 00 */	cmpwi r6, 0
/* 802F8724 002F4384  41 82 00 14 */	beq lbl_802F8738
/* 802F8728 002F4388  80 06 00 00 */	lwz r0, 0(r6)
/* 802F872C 002F438C  2C 00 00 00 */	cmpwi r0, 0
/* 802F8730 002F4390  40 80 00 08 */	bge lbl_802F8738
/* 802F8734 002F4394  90 86 00 00 */	stw r4, 0(r6)
lbl_802F8738:
/* 802F8738 002F4398  2C 1E 00 00 */	cmpwi r30, 0
/* 802F873C 002F439C  41 82 00 44 */	beq lbl_802F8780
/* 802F8740 002F43A0  7D 60 07 74 */	extsb r0, r11
/* 802F8744 002F43A4  2C 00 00 0A */	cmpwi r0, 0xa
/* 802F8748 002F43A8  40 82 00 30 */	bne lbl_802F8778
/* 802F874C 002F43AC  38 65 FF FF */	addi r3, r5, -1
/* 802F8750 002F43B0  2C 07 00 00 */	cmpwi r7, 0
/* 802F8754 002F43B4  7C A3 20 50 */	subf r5, r3, r4
/* 802F8758 002F43B8  38 04 00 01 */	addi r0, r4, 1
/* 802F875C 002F43BC  7C 64 18 50 */	subf r3, r4, r3
/* 802F8760 002F43C0  7C A3 18 F8 */	nor r3, r5, r3
/* 802F8764 002F43C4  7C 63 FE 70 */	srawi r3, r3, 0x1f
/* 802F8768 002F43C8  7C 0A 18 78 */	andc r10, r0, r3
/* 802F876C 002F43CC  41 82 00 0C */	beq lbl_802F8778
/* 802F8770 002F43D0  38 00 00 02 */	li r0, 2
/* 802F8774 002F43D4  90 07 00 00 */	stw r0, 0(r7)
lbl_802F8778:
/* 802F8778 002F43D8  7D 43 53 78 */	mr r3, r10
/* 802F877C 002F43DC  48 00 00 84 */	b lbl_802F8800
lbl_802F8780:
/* 802F8780 002F43E0  7D 60 07 74 */	extsb r0, r11
/* 802F8784 002F43E4  2C 00 00 0D */	cmpwi r0, 0xd
/* 802F8788 002F43E8  40 82 00 30 */	bne lbl_802F87B8
/* 802F878C 002F43EC  39 25 FF FF */	addi r9, r5, -1
/* 802F8790 002F43F0  2C 07 00 00 */	cmpwi r7, 0
/* 802F8794 002F43F4  7D 49 20 50 */	subf r10, r9, r4
/* 802F8798 002F43F8  38 04 00 01 */	addi r0, r4, 1
/* 802F879C 002F43FC  7D 24 48 50 */	subf r9, r4, r9
/* 802F87A0 002F4400  3B C0 00 01 */	li r30, 1
/* 802F87A4 002F4404  7D 49 48 F8 */	nor r9, r10, r9
/* 802F87A8 002F4408  7D 29 FE 70 */	srawi r9, r9, 0x1f
/* 802F87AC 002F440C  7C 0A 48 78 */	andc r10, r0, r9
/* 802F87B0 002F4410  41 82 00 08 */	beq lbl_802F87B8
/* 802F87B4 002F4414  91 07 00 00 */	stw r8, 0(r7)
lbl_802F87B8:
/* 802F87B8 002F4418  7D 60 07 74 */	extsb r0, r11
/* 802F87BC 002F441C  2C 00 00 0A */	cmpwi r0, 0xa
/* 802F87C0 002F4420  40 82 00 34 */	bne lbl_802F87F4
/* 802F87C4 002F4424  38 65 FF FF */	addi r3, r5, -1
/* 802F87C8 002F4428  2C 07 00 00 */	cmpwi r7, 0
/* 802F87CC 002F442C  7C A3 20 50 */	subf r5, r3, r4
/* 802F87D0 002F4430  38 04 00 01 */	addi r0, r4, 1
/* 802F87D4 002F4434  7C 64 18 50 */	subf r3, r4, r3
/* 802F87D8 002F4438  7C A3 18 F8 */	nor r3, r5, r3
/* 802F87DC 002F443C  7C 63 FE 70 */	srawi r3, r3, 0x1f
/* 802F87E0 002F4440  7C 03 18 78 */	andc r3, r0, r3
/* 802F87E4 002F4444  41 82 00 1C */	beq lbl_802F8800
/* 802F87E8 002F4448  38 00 00 01 */	li r0, 1
/* 802F87EC 002F444C  90 07 00 00 */	stw r0, 0(r7)
/* 802F87F0 002F4450  48 00 00 10 */	b lbl_802F8800
lbl_802F87F4:
/* 802F87F4 002F4454  38 84 00 01 */	addi r4, r4, 1
/* 802F87F8 002F4458  42 00 FE D0 */	bdnz lbl_802F86C8
lbl_802F87FC:
/* 802F87FC 002F445C  38 60 FF FF */	li r3, -1
lbl_802F8800:
/* 802F8800 002F4460  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F8804 002F4464  83 C1 00 08 */	lwz r30, 8(r1)
/* 802F8808 002F4468  38 21 00 10 */	addi r1, r1, 0x10
/* 802F880C 002F446C  4E 80 00 20 */	blr

.global NHTTPi_skipSpaceHdrRecvBuf
NHTTPi_skipSpaceHdrRecvBuf:
/* 802F8810 002F4470  7C 04 28 00 */	cmpw r4, r5
/* 802F8814 002F4474  40 80 00 EC */	bge lbl_802F8900
/* 802F8818 002F4478  2C 04 04 00 */	cmpwi r4, 0x400
/* 802F881C 002F447C  40 80 00 10 */	bge lbl_802F882C
/* 802F8820 002F4480  7C 86 23 78 */	mr r6, r4
/* 802F8824 002F4484  38 E0 00 00 */	li r7, 0
/* 802F8828 002F4488  48 00 00 60 */	b lbl_802F8888
lbl_802F882C:
/* 802F882C 002F448C  38 04 FC 00 */	addi r0, r4, -1024
/* 802F8830 002F4490  80 E3 00 34 */	lwz r7, 0x34(r3)
/* 802F8834 002F4494  7C 06 4E 71 */	srawi. r6, r0, 9
/* 802F8838 002F4498  41 82 00 48 */	beq lbl_802F8880
/* 802F883C 002F449C  54 C0 E8 FF */	rlwinm. r0, r6, 0x1d, 3, 0x1f
/* 802F8840 002F44A0  7C 09 03 A6 */	mtctr r0
/* 802F8844 002F44A4  41 82 00 30 */	beq lbl_802F8874
lbl_802F8848:
/* 802F8848 002F44A8  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F884C 002F44AC  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F8850 002F44B0  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F8854 002F44B4  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F8858 002F44B8  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F885C 002F44BC  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F8860 002F44C0  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F8864 002F44C4  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F8868 002F44C8  42 00 FF E0 */	bdnz lbl_802F8848
/* 802F886C 002F44CC  70 C6 00 07 */	andi. r6, r6, 7
/* 802F8870 002F44D0  41 82 00 10 */	beq lbl_802F8880
lbl_802F8874:
/* 802F8874 002F44D4  7C C9 03 A6 */	mtctr r6
lbl_802F8878:
/* 802F8878 002F44D8  80 E7 00 00 */	lwz r7, 0(r7)
/* 802F887C 002F44DC  42 00 FF FC */	bdnz lbl_802F8878
lbl_802F8880:
/* 802F8880 002F44E0  38 04 FC 00 */	addi r0, r4, -1024
/* 802F8884 002F44E4  54 06 05 FE */	clrlwi r6, r0, 0x17
lbl_802F8888:
/* 802F8888 002F44E8  7C 04 28 50 */	subf r0, r4, r5
/* 802F888C 002F44EC  7C 09 03 A6 */	mtctr r0
/* 802F8890 002F44F0  7C 04 28 00 */	cmpw r4, r5
/* 802F8894 002F44F4  40 80 00 6C */	bge lbl_802F8900
lbl_802F8898:
/* 802F8898 002F44F8  2C 07 00 00 */	cmpwi r7, 0
/* 802F889C 002F44FC  40 82 00 2C */	bne lbl_802F88C8
/* 802F88A0 002F4500  2C 06 04 00 */	cmpwi r6, 0x400
/* 802F88A4 002F4504  40 80 00 18 */	bge lbl_802F88BC
/* 802F88A8 002F4508  7C A3 32 14 */	add r5, r3, r6
/* 802F88AC 002F450C  38 C6 00 01 */	addi r6, r6, 1
/* 802F88B0 002F4510  88 05 00 38 */	lbz r0, 0x38(r5)
/* 802F88B4 002F4514  7C 00 07 74 */	extsb r0, r0
/* 802F88B8 002F4518  48 00 00 2C */	b lbl_802F88E4
lbl_802F88BC:
/* 802F88BC 002F451C  80 E3 00 34 */	lwz r7, 0x34(r3)
/* 802F88C0 002F4520  38 C0 00 00 */	li r6, 0
/* 802F88C4 002F4524  48 00 00 14 */	b lbl_802F88D8
lbl_802F88C8:
/* 802F88C8 002F4528  2C 06 02 00 */	cmpwi r6, 0x200
/* 802F88CC 002F452C  40 82 00 0C */	bne lbl_802F88D8
/* 802F88D0 002F4530  38 C0 00 00 */	li r6, 0
/* 802F88D4 002F4534  80 E7 00 00 */	lwz r7, 0(r7)
lbl_802F88D8:
/* 802F88D8 002F4538  7C A7 32 14 */	add r5, r7, r6
/* 802F88DC 002F453C  38 C6 00 01 */	addi r6, r6, 1
/* 802F88E0 002F4540  88 05 00 04 */	lbz r0, 4(r5)
lbl_802F88E4:
/* 802F88E4 002F4544  7C 00 07 74 */	extsb r0, r0
/* 802F88E8 002F4548  2C 00 00 20 */	cmpwi r0, 0x20
/* 802F88EC 002F454C  41 82 00 0C */	beq lbl_802F88F8
/* 802F88F0 002F4550  7C 83 23 78 */	mr r3, r4
/* 802F88F4 002F4554  4E 80 00 20 */	blr
lbl_802F88F8:
/* 802F88F8 002F4558  38 84 00 01 */	addi r4, r4, 1
/* 802F88FC 002F455C  42 00 FF 9C */	bdnz lbl_802F8898
lbl_802F8900:
/* 802F8900 002F4560  38 60 FF FF */	li r3, -1
/* 802F8904 002F4564  4E 80 00 20 */	blr

.global NHTTPi_compareTokenN_HdrRecvBuf
NHTTPi_compareTokenN_HdrRecvBuf:
/* 802F8908 002F4568  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802F890C 002F456C  7C 08 02 A6 */	mflr r0
/* 802F8910 002F4570  90 01 00 34 */	stw r0, 0x34(r1)
/* 802F8914 002F4574  39 61 00 30 */	addi r11, r1, 0x30
/* 802F8918 002F4578  4B EC E8 09 */	bl _savegpr_25
/* 802F891C 002F457C  7C 04 28 00 */	cmpw r4, r5
/* 802F8920 002F4580  40 80 01 BC */	bge lbl_802F8ADC
/* 802F8924 002F4584  2C 04 04 00 */	cmpwi r4, 0x400
/* 802F8928 002F4588  40 80 00 10 */	bge lbl_802F8938
/* 802F892C 002F458C  7C 89 23 78 */	mr r9, r4
/* 802F8930 002F4590  39 00 00 00 */	li r8, 0
/* 802F8934 002F4594  48 00 00 60 */	b lbl_802F8994
lbl_802F8938:
/* 802F8938 002F4598  38 04 FC 00 */	addi r0, r4, -1024
/* 802F893C 002F459C  81 03 00 34 */	lwz r8, 0x34(r3)
/* 802F8940 002F45A0  7C 09 4E 71 */	srawi. r9, r0, 9
/* 802F8944 002F45A4  41 82 00 48 */	beq lbl_802F898C
/* 802F8948 002F45A8  55 20 E8 FF */	rlwinm. r0, r9, 0x1d, 3, 0x1f
/* 802F894C 002F45AC  7C 09 03 A6 */	mtctr r0
/* 802F8950 002F45B0  41 82 00 30 */	beq lbl_802F8980
lbl_802F8954:
/* 802F8954 002F45B4  81 08 00 00 */	lwz r8, 0(r8)
/* 802F8958 002F45B8  81 08 00 00 */	lwz r8, 0(r8)
/* 802F895C 002F45BC  81 08 00 00 */	lwz r8, 0(r8)
/* 802F8960 002F45C0  81 08 00 00 */	lwz r8, 0(r8)
/* 802F8964 002F45C4  81 08 00 00 */	lwz r8, 0(r8)
/* 802F8968 002F45C8  81 08 00 00 */	lwz r8, 0(r8)
/* 802F896C 002F45CC  81 08 00 00 */	lwz r8, 0(r8)
/* 802F8970 002F45D0  81 08 00 00 */	lwz r8, 0(r8)
/* 802F8974 002F45D4  42 00 FF E0 */	bdnz lbl_802F8954
/* 802F8978 002F45D8  71 29 00 07 */	andi. r9, r9, 7
/* 802F897C 002F45DC  41 82 00 10 */	beq lbl_802F898C
lbl_802F8980:
/* 802F8980 002F45E0  7D 29 03 A6 */	mtctr r9
lbl_802F8984:
/* 802F8984 002F45E4  81 08 00 00 */	lwz r8, 0(r8)
/* 802F8988 002F45E8  42 00 FF FC */	bdnz lbl_802F8984
lbl_802F898C:
/* 802F898C 002F45EC  38 04 FC 00 */	addi r0, r4, -1024
/* 802F8990 002F45F0  54 09 05 FE */	clrlwi r9, r0, 0x17
lbl_802F8994:
/* 802F8994 002F45F4  2C 08 00 00 */	cmpwi r8, 0
/* 802F8998 002F45F8  40 82 00 2C */	bne lbl_802F89C4
/* 802F899C 002F45FC  2C 09 04 00 */	cmpwi r9, 0x400
/* 802F89A0 002F4600  40 80 00 18 */	bge lbl_802F89B8
/* 802F89A4 002F4604  7D 43 4A 14 */	add r10, r3, r9
/* 802F89A8 002F4608  39 29 00 01 */	addi r9, r9, 1
/* 802F89AC 002F460C  88 0A 00 38 */	lbz r0, 0x38(r10)
/* 802F89B0 002F4610  7C 19 07 74 */	extsb r25, r0
/* 802F89B4 002F4614  48 00 00 2C */	b lbl_802F89E0
lbl_802F89B8:
/* 802F89B8 002F4618  81 03 00 34 */	lwz r8, 0x34(r3)
/* 802F89BC 002F461C  39 20 00 00 */	li r9, 0
/* 802F89C0 002F4620  48 00 00 14 */	b lbl_802F89D4
lbl_802F89C4:
/* 802F89C4 002F4624  2C 09 02 00 */	cmpwi r9, 0x200
/* 802F89C8 002F4628  40 82 00 0C */	bne lbl_802F89D4
/* 802F89CC 002F462C  39 20 00 00 */	li r9, 0
/* 802F89D0 002F4630  81 08 00 00 */	lwz r8, 0(r8)
lbl_802F89D4:
/* 802F89D4 002F4634  7D 48 4A 14 */	add r10, r8, r9
/* 802F89D8 002F4638  39 29 00 01 */	addi r9, r9, 1
/* 802F89DC 002F463C  8B 2A 00 04 */	lbz r25, 4(r10)
lbl_802F89E0:
/* 802F89E0 002F4640  3B 80 00 41 */	li r28, 0x41
/* 802F89E4 002F4644  3B E0 00 5A */	li r31, 0x5a
/* 802F89E8 002F4648  7C E7 07 74 */	extsb r7, r7
/* 802F89EC 002F464C  38 05 FF FF */	addi r0, r5, -1
/* 802F89F0 002F4650  3B A0 00 00 */	li r29, 0
/* 802F89F4 002F4654  48 00 00 80 */	b lbl_802F8A74
lbl_802F89F8:
/* 802F89F8 002F4658  7C A5 07 75 */	extsb. r5, r5
/* 802F89FC 002F465C  41 82 00 1C */	beq lbl_802F8A18
/* 802F8A00 002F4660  2C 05 00 20 */	cmpwi r5, 0x20
/* 802F8A04 002F4664  41 82 00 14 */	beq lbl_802F8A18
/* 802F8A08 002F4668  7C 05 38 00 */	cmpw r5, r7
/* 802F8A0C 002F466C  41 82 00 0C */	beq lbl_802F8A18
/* 802F8A10 002F4670  7C 04 00 00 */	cmpw r4, r0
/* 802F8A14 002F4674  40 82 00 0C */	bne lbl_802F8A20
lbl_802F8A18:
/* 802F8A18 002F4678  38 60 00 00 */	li r3, 0
/* 802F8A1C 002F467C  48 00 00 C4 */	b lbl_802F8AE0
lbl_802F8A20:
/* 802F8A20 002F4680  2C 08 00 00 */	cmpwi r8, 0
/* 802F8A24 002F4684  40 82 00 2C */	bne lbl_802F8A50
/* 802F8A28 002F4688  2C 09 04 00 */	cmpwi r9, 0x400
/* 802F8A2C 002F468C  40 80 00 18 */	bge lbl_802F8A44
/* 802F8A30 002F4690  7C A3 4A 14 */	add r5, r3, r9
/* 802F8A34 002F4694  39 29 00 01 */	addi r9, r9, 1
/* 802F8A38 002F4698  88 A5 00 38 */	lbz r5, 0x38(r5)
/* 802F8A3C 002F469C  7C B9 07 74 */	extsb r25, r5
/* 802F8A40 002F46A0  48 00 00 2C */	b lbl_802F8A6C
lbl_802F8A44:
/* 802F8A44 002F46A4  81 03 00 34 */	lwz r8, 0x34(r3)
/* 802F8A48 002F46A8  39 20 00 00 */	li r9, 0
/* 802F8A4C 002F46AC  48 00 00 14 */	b lbl_802F8A60
lbl_802F8A50:
/* 802F8A50 002F46B0  2C 09 02 00 */	cmpwi r9, 0x200
/* 802F8A54 002F46B4  40 82 00 0C */	bne lbl_802F8A60
/* 802F8A58 002F46B8  39 20 00 00 */	li r9, 0
/* 802F8A5C 002F46BC  81 08 00 00 */	lwz r8, 0(r8)
lbl_802F8A60:
/* 802F8A60 002F46C0  7C A8 4A 14 */	add r5, r8, r9
/* 802F8A64 002F46C4  39 29 00 01 */	addi r9, r9, 1
/* 802F8A68 002F46C8  8B 25 00 04 */	lbz r25, 4(r5)
lbl_802F8A6C:
/* 802F8A6C 002F46CC  38 84 00 01 */	addi r4, r4, 1
/* 802F8A70 002F46D0  38 C6 00 01 */	addi r6, r6, 1
lbl_802F8A74:
/* 802F8A74 002F46D4  88 A6 00 00 */	lbz r5, 0(r6)
/* 802F8A78 002F46D8  7C BE 07 74 */	extsb r30, r5
/* 802F8A7C 002F46DC  7F CC FE 70 */	srawi r12, r30, 0x1f
/* 802F8A80 002F46E0  7D 5C F0 10 */	subfc r10, r28, r30
/* 802F8A84 002F46E4  57 CB 0F FE */	srwi r11, r30, 0x1f
/* 802F8A88 002F46E8  7F 6C E9 14 */	adde r27, r12, r29
/* 802F8A8C 002F46EC  3B 5E 00 20 */	addi r26, r30, 0x20
/* 802F8A90 002F46F0  7F EC FE 70 */	srawi r12, r31, 0x1f
/* 802F8A94 002F46F4  7D 5E F8 10 */	subfc r10, r30, r31
/* 802F8A98 002F46F8  7D 4C 59 14 */	adde r10, r12, r11
/* 802F8A9C 002F46FC  7F 6A 50 39 */	and. r10, r27, r10
/* 802F8AA0 002F4700  40 82 00 08 */	bne lbl_802F8AA8
/* 802F8AA4 002F4704  7F DA F3 78 */	mr r26, r30
lbl_802F8AA8:
/* 802F8AA8 002F4708  7F 3B 07 74 */	extsb r27, r25
/* 802F8AAC 002F470C  7F 6C FE 70 */	srawi r12, r27, 0x1f
/* 802F8AB0 002F4710  7D 5C D8 10 */	subfc r10, r28, r27
/* 802F8AB4 002F4714  57 6B 0F FE */	srwi r11, r27, 0x1f
/* 802F8AB8 002F4718  7F CC E9 14 */	adde r30, r12, r29
/* 802F8ABC 002F471C  7F EC FE 70 */	srawi r12, r31, 0x1f
/* 802F8AC0 002F4720  7D 5B F8 10 */	subfc r10, r27, r31
/* 802F8AC4 002F4724  7D 4C 59 14 */	adde r10, r12, r11
/* 802F8AC8 002F4728  7F CA 50 39 */	and. r10, r30, r10
/* 802F8ACC 002F472C  41 82 00 08 */	beq lbl_802F8AD4
/* 802F8AD0 002F4730  3B 7B 00 20 */	addi r27, r27, 0x20
lbl_802F8AD4:
/* 802F8AD4 002F4734  7C 1B D0 00 */	cmpw r27, r26
/* 802F8AD8 002F4738  41 82 FF 20 */	beq lbl_802F89F8
lbl_802F8ADC:
/* 802F8ADC 002F473C  38 60 FF FF */	li r3, -1
lbl_802F8AE0:
/* 802F8AE0 002F4740  39 61 00 30 */	addi r11, r1, 0x30
/* 802F8AE4 002F4744  4B EC E6 89 */	bl _restgpr_25
/* 802F8AE8 002F4748  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802F8AEC 002F474C  7C 08 03 A6 */	mtlr r0
/* 802F8AF0 002F4750  38 21 00 30 */	addi r1, r1, 0x30
/* 802F8AF4 002F4754  4E 80 00 20 */	blr

.global NHTTPi_loadFromHdrRecvBuf
NHTTPi_loadFromHdrRecvBuf:
/* 802F8AF8 002F4758  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F8AFC 002F475C  7C 08 02 A6 */	mflr r0
/* 802F8B00 002F4760  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F8B04 002F4764  39 61 00 20 */	addi r11, r1, 0x20
/* 802F8B08 002F4768  4B EC E6 21 */	bl _savegpr_27
/* 802F8B0C 002F476C  80 03 00 00 */	lwz r0, 0(r3)
/* 802F8B10 002F4770  7C E5 32 14 */	add r7, r5, r6
/* 802F8B14 002F4774  7C 7E 1B 78 */	mr r30, r3
/* 802F8B18 002F4778  7C 9B 23 78 */	mr r27, r4
/* 802F8B1C 002F477C  7C 07 00 00 */	cmpw r7, r0
/* 802F8B20 002F4780  7C BC 2B 78 */	mr r28, r5
/* 802F8B24 002F4784  7C DD 33 78 */	mr r29, r6
/* 802F8B28 002F4788  41 81 00 F8 */	bgt lbl_802F8C20
/* 802F8B2C 002F478C  2C 06 00 00 */	cmpwi r6, 0
/* 802F8B30 002F4790  41 82 00 E8 */	beq lbl_802F8C18
/* 802F8B34 002F4794  2C 05 04 00 */	cmpwi r5, 0x400
/* 802F8B38 002F4798  40 80 00 38 */	bge lbl_802F8B70
/* 802F8B3C 002F479C  20 05 04 00 */	subfic r0, r5, 0x400
/* 802F8B40 002F47A0  7F BF EB 78 */	mr r31, r29
/* 802F8B44 002F47A4  7C 06 00 00 */	cmpw r6, r0
/* 802F8B48 002F47A8  40 81 00 08 */	ble lbl_802F8B50
/* 802F8B4C 002F47AC  7C 1F 03 78 */	mr r31, r0
lbl_802F8B50:
/* 802F8B50 002F47B0  7C 9E 2A 14 */	add r4, r30, r5
/* 802F8B54 002F47B4  7F 63 DB 78 */	mr r3, r27
/* 802F8B58 002F47B8  7F E5 FB 78 */	mr r5, r31
/* 802F8B5C 002F47BC  38 84 00 38 */	addi r4, r4, 0x38
/* 802F8B60 002F47C0  48 00 15 7D */	bl NHTTPi_memcpy
/* 802F8B64 002F47C4  7F 9C FA 14 */	add r28, r28, r31
/* 802F8B68 002F47C8  7F BF E8 50 */	subf r29, r31, r29
/* 802F8B6C 002F47CC  7F 7B FA 14 */	add r27, r27, r31
lbl_802F8B70:
/* 802F8B70 002F47D0  2C 1D 00 00 */	cmpwi r29, 0
/* 802F8B74 002F47D4  41 82 00 A4 */	beq lbl_802F8C18
/* 802F8B78 002F47D8  3B 9C FC 00 */	addi r28, r28, -1024
/* 802F8B7C 002F47DC  83 DE 00 34 */	lwz r30, 0x34(r30)
/* 802F8B80 002F47E0  7F 83 4E 71 */	srawi. r3, r28, 9
/* 802F8B84 002F47E4  57 9C 05 FE */	clrlwi r28, r28, 0x17
/* 802F8B88 002F47E8  41 82 00 88 */	beq lbl_802F8C10
/* 802F8B8C 002F47EC  54 60 E8 FF */	rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 802F8B90 002F47F0  7C 09 03 A6 */	mtctr r0
/* 802F8B94 002F47F4  41 82 00 30 */	beq lbl_802F8BC4
lbl_802F8B98:
/* 802F8B98 002F47F8  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8B9C 002F47FC  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BA0 002F4800  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BA4 002F4804  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BA8 002F4808  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BAC 002F480C  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BB0 002F4810  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BB4 002F4814  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BB8 002F4818  42 00 FF E0 */	bdnz lbl_802F8B98
/* 802F8BBC 002F481C  70 63 00 07 */	andi. r3, r3, 7
/* 802F8BC0 002F4820  41 82 00 50 */	beq lbl_802F8C10
lbl_802F8BC4:
/* 802F8BC4 002F4824  7C 69 03 A6 */	mtctr r3
lbl_802F8BC8:
/* 802F8BC8 002F4828  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8BCC 002F482C  42 00 FF FC */	bdnz lbl_802F8BC8
/* 802F8BD0 002F4830  48 00 00 40 */	b lbl_802F8C10
lbl_802F8BD4:
/* 802F8BD4 002F4834  20 1C 02 00 */	subfic r0, r28, 0x200
/* 802F8BD8 002F4838  7F BF EB 78 */	mr r31, r29
/* 802F8BDC 002F483C  7C 1D 00 00 */	cmpw r29, r0
/* 802F8BE0 002F4840  40 81 00 08 */	ble lbl_802F8BE8
/* 802F8BE4 002F4844  7C 1F 03 78 */	mr r31, r0
lbl_802F8BE8:
/* 802F8BE8 002F4848  7C 9E E2 14 */	add r4, r30, r28
/* 802F8BEC 002F484C  7F 63 DB 78 */	mr r3, r27
/* 802F8BF0 002F4850  7F E5 FB 78 */	mr r5, r31
/* 802F8BF4 002F4854  38 84 00 04 */	addi r4, r4, 4
/* 802F8BF8 002F4858  48 00 14 E5 */	bl NHTTPi_memcpy
/* 802F8BFC 002F485C  7F 9C FA 14 */	add r28, r28, r31
/* 802F8C00 002F4860  83 DE 00 00 */	lwz r30, 0(r30)
/* 802F8C04 002F4864  57 9C 05 FE */	clrlwi r28, r28, 0x17
/* 802F8C08 002F4868  7F BF E8 50 */	subf r29, r31, r29
/* 802F8C0C 002F486C  7F 7B FA 14 */	add r27, r27, r31
lbl_802F8C10:
/* 802F8C10 002F4870  2C 1D 00 00 */	cmpwi r29, 0
/* 802F8C14 002F4874  40 82 FF C0 */	bne lbl_802F8BD4
lbl_802F8C18:
/* 802F8C18 002F4878  38 60 00 01 */	li r3, 1
/* 802F8C1C 002F487C  48 00 00 08 */	b lbl_802F8C24
lbl_802F8C20:
/* 802F8C20 002F4880  38 60 00 00 */	li r3, 0
lbl_802F8C24:
/* 802F8C24 002F4884  39 61 00 20 */	addi r11, r1, 0x20
/* 802F8C28 002F4888  4B EC E5 4D */	bl _restgpr_27
/* 802F8C2C 002F488C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F8C30 002F4890  7C 08 03 A6 */	mtlr r0
/* 802F8C34 002F4894  38 21 00 20 */	addi r1, r1, 0x20
/* 802F8C38 002F4898  4E 80 00 20 */	blr

.global NHTTPi_isRecvBufFull
NHTTPi_isRecvBufFull:
/* 802F8C3C 002F489C  80 63 00 1C */	lwz r3, 0x1c(r3)
/* 802F8C40 002F48A0  7C 03 20 50 */	subf r0, r3, r4
/* 802F8C44 002F48A4  7C 83 1B 38 */	orc r3, r4, r3
/* 802F8C48 002F48A8  54 00 F8 7E */	srwi r0, r0, 1
/* 802F8C4C 002F48AC  7C 00 18 50 */	subf r0, r0, r3
/* 802F8C50 002F48B0  54 03 0F FE */	srwi r3, r0, 0x1f
/* 802F8C54 002F48B4  4E 80 00 20 */	blr

.global NHTTPi_RecvBuf
NHTTPi_RecvBuf:
/* 802F8C58 002F48B8  81 03 00 2C */	lwz r8, 0x2c(r3)
/* 802F8C5C 002F48BC  7C C7 33 78 */	mr r7, r6
/* 802F8C60 002F48C0  7C A9 2B 78 */	mr r9, r5
/* 802F8C64 002F48C4  80 C8 00 28 */	lwz r6, 0x28(r8)
/* 802F8C68 002F48C8  80 08 00 1C */	lwz r0, 0x1c(r8)
/* 802F8C6C 002F48CC  7C A6 2A 14 */	add r5, r6, r5
/* 802F8C70 002F48D0  7C C9 00 50 */	subf r6, r9, r0
/* 802F8C74 002F48D4  48 00 10 B0 */	b NHTTPi_SocRecv

.global NHTTPi_RecvBufN
NHTTPi_RecvBufN:
/* 802F8C78 002F48D8  81 23 00 2C */	lwz r9, 0x2c(r3)
/* 802F8C7C 002F48DC  80 09 00 1C */	lwz r0, 0x1c(r9)
/* 802F8C80 002F48E0  7C 00 28 40 */	cmplw r0, r5
/* 802F8C84 002F48E4  41 81 00 0C */	bgt lbl_802F8C90
/* 802F8C88 002F48E8  38 60 FC 15 */	li r3, -1003
/* 802F8C8C 002F48EC  4E 80 00 20 */	blr
lbl_802F8C90:
/* 802F8C90 002F48F0  81 09 00 1C */	lwz r8, 0x1c(r9)
/* 802F8C94 002F48F4  80 09 00 28 */	lwz r0, 0x28(r9)
/* 802F8C98 002F48F8  7D 05 40 50 */	subf r8, r5, r8
/* 802F8C9C 002F48FC  7C 06 40 00 */	cmpw r6, r8
/* 802F8CA0 002F4900  7C A0 2A 14 */	add r5, r0, r5
/* 802F8CA4 002F4904  40 81 00 08 */	ble lbl_802F8CAC
/* 802F8CA8 002F4908  7D 06 43 78 */	mr r6, r8
lbl_802F8CAC:
/* 802F8CAC 002F490C  48 00 10 78 */	b NHTTPi_SocRecv
/* 802F8CB0 002F4910  4E 80 00 20 */	blr