summaryrefslogtreecommitdiff
path: root/asm/SDK/NHTTP/NHTTP_response.s
blob: bcab04c9e99af99f9df4fa9acfa2476bafeeefa5 (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
.include "macros.inc"

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

.global NHTTP_DestroyResponse
NHTTP_DestroyResponse:
/* 802F9680 002F52E0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F9684 002F52E4  7C 08 02 A6 */	mflr r0
/* 802F9688 002F52E8  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F968C 002F52EC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802F9690 002F52F0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802F9694 002F52F4  7C 9E 23 78 */	mr r30, r4
/* 802F9698 002F52F8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802F969C 002F52FC  7C 7D 1B 78 */	mr r29, r3
/* 802F96A0 002F5300  48 00 00 10 */	b lbl_802F96B0
lbl_802F96A4:
/* 802F96A4 002F5304  83 E3 00 00 */	lwz r31, 0(r3)
/* 802F96A8 002F5308  4B FF E5 15 */	bl NHTTPi_free
/* 802F96AC 002F530C  93 FE 00 34 */	stw r31, 0x34(r30)
lbl_802F96B0:
/* 802F96B0 002F5310  80 7E 00 34 */	lwz r3, 0x34(r30)
/* 802F96B4 002F5314  2C 03 00 00 */	cmpwi r3, 0
/* 802F96B8 002F5318  40 82 FF EC */	bne lbl_802F96A4
/* 802F96BC 002F531C  80 7E 00 20 */	lwz r3, 0x20(r30)
/* 802F96C0 002F5320  2C 03 00 00 */	cmpwi r3, 0
/* 802F96C4 002F5324  41 82 00 08 */	beq lbl_802F96CC
/* 802F96C8 002F5328  4B FF E4 F5 */	bl NHTTPi_free
lbl_802F96CC:
/* 802F96CC 002F532C  80 7E 00 24 */	lwz r3, 0x24(r30)
/* 802F96D0 002F5330  2C 03 00 00 */	cmpwi r3, 0
/* 802F96D4 002F5334  41 82 00 08 */	beq lbl_802F96DC
/* 802F96D8 002F5338  4B FF E4 E5 */	bl NHTTPi_free
lbl_802F96DC:
/* 802F96DC 002F533C  81 9E 00 30 */	lwz r12, 0x30(r30)
/* 802F96E0 002F5340  2C 0C 00 00 */	cmpwi r12, 0
/* 802F96E4 002F5344  41 82 00 28 */	beq lbl_802F970C
/* 802F96E8 002F5348  3C 80 80 2F */	lis r4, NHTTPi_free@ha
/* 802F96EC 002F534C  80 7E 00 28 */	lwz r3, 0x28(r30)
/* 802F96F0 002F5350  38 84 7B BC */	addi r4, r4, NHTTPi_free@l
/* 802F96F4 002F5354  80 BE 04 38 */	lwz r5, 0x438(r30)
/* 802F96F8 002F5358  7D 89 03 A6 */	mtctr r12
/* 802F96FC 002F535C  4E 80 04 21 */	bctrl
/* 802F9700 002F5360  38 00 00 00 */	li r0, 0
/* 802F9704 002F5364  90 1E 00 28 */	stw r0, 0x28(r30)
/* 802F9708 002F5368  90 1E 00 1C */	stw r0, 0x1c(r30)
lbl_802F970C:
/* 802F970C 002F536C  7F A3 EB 78 */	mr r3, r29
/* 802F9710 002F5370  7F C4 F3 78 */	mr r4, r30
/* 802F9714 002F5374  48 00 63 2D */	bl NHTTPi_Response2Connection
/* 802F9718 002F5378  2C 03 00 00 */	cmpwi r3, 0
/* 802F971C 002F537C  41 82 00 0C */	beq lbl_802F9728
/* 802F9720 002F5380  38 00 00 00 */	li r0, 0
/* 802F9724 002F5384  90 03 00 30 */	stw r0, 0x30(r3)
lbl_802F9728:
/* 802F9728 002F5388  7F C3 F3 78 */	mr r3, r30
/* 802F972C 002F538C  4B FF E4 91 */	bl NHTTPi_free
/* 802F9730 002F5390  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F9734 002F5394  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802F9738 002F5398  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802F973C 002F539C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802F9740 002F53A0  7C 08 03 A6 */	mtlr r0
/* 802F9744 002F53A4  38 21 00 20 */	addi r1, r1, 0x20
/* 802F9748 002F53A8  4E 80 00 20 */	blr

.global NHTTPi_getHeaderValue
NHTTPi_getHeaderValue:
/* 802F974C 002F53AC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802F9750 002F53B0  7C 08 02 A6 */	mflr r0
/* 802F9754 002F53B4  90 01 00 34 */	stw r0, 0x34(r1)
/* 802F9758 002F53B8  39 61 00 30 */	addi r11, r1, 0x30
/* 802F975C 002F53BC  4B EC D9 CD */	bl _savegpr_27
/* 802F9760 002F53C0  38 00 00 00 */	li r0, 0
/* 802F9764 002F53C4  7C BD 2B 78 */	mr r29, r5
/* 802F9768 002F53C8  90 01 00 08 */	stw r0, 8(r1)
/* 802F976C 002F53CC  7C 9C 23 78 */	mr r28, r4
/* 802F9770 002F53D0  80 A3 00 00 */	lwz r5, 0(r3)
/* 802F9774 002F53D4  7C 7B 1B 78 */	mr r27, r3
/* 802F9778 002F53D8  38 C1 00 0C */	addi r6, r1, 0xc
/* 802F977C 002F53DC  38 E1 00 08 */	addi r7, r1, 8
/* 802F9780 002F53E0  38 80 00 0C */	li r4, 0xc
/* 802F9784 002F53E4  4B FF EE 95 */	bl NHTTPi_findNextLineHdrRecvBuf
/* 802F9788 002F53E8  7C 7F 1B 78 */	mr r31, r3
/* 802F978C 002F53EC  48 00 00 D0 */	b lbl_802F985C
lbl_802F9790:
/* 802F9790 002F53F0  80 BB 00 00 */	lwz r5, 0(r27)
/* 802F9794 002F53F4  7F 63 DB 78 */	mr r3, r27
/* 802F9798 002F53F8  7F E4 FB 78 */	mr r4, r31
/* 802F979C 002F53FC  38 C1 00 0C */	addi r6, r1, 0xc
/* 802F97A0 002F5400  38 E1 00 08 */	addi r7, r1, 8
/* 802F97A4 002F5404  4B FF EE 75 */	bl NHTTPi_findNextLineHdrRecvBuf
/* 802F97A8 002F5408  80 A1 00 0C */	lwz r5, 0xc(r1)
/* 802F97AC 002F540C  7C 7E 1B 78 */	mr r30, r3
/* 802F97B0 002F5410  2C 05 00 00 */	cmpwi r5, 0
/* 802F97B4 002F5414  40 81 00 A4 */	ble lbl_802F9858
/* 802F97B8 002F5418  7F 63 DB 78 */	mr r3, r27
/* 802F97BC 002F541C  7F E4 FB 78 */	mr r4, r31
/* 802F97C0 002F5420  7F 86 E3 78 */	mr r6, r28
/* 802F97C4 002F5424  38 E0 00 00 */	li r7, 0
/* 802F97C8 002F5428  4B FF F1 41 */	bl NHTTPi_compareTokenN_HdrRecvBuf
/* 802F97CC 002F542C  2C 03 00 00 */	cmpwi r3, 0
/* 802F97D0 002F5430  40 82 00 88 */	bne lbl_802F9858
/* 802F97D4 002F5434  80 61 00 0C */	lwz r3, 0xc(r1)
/* 802F97D8 002F5438  80 1B 00 00 */	lwz r0, 0(r27)
/* 802F97DC 002F543C  38 83 00 01 */	addi r4, r3, 1
/* 802F97E0 002F5440  7C 04 00 00 */	cmpw r4, r0
/* 802F97E4 002F5444  40 80 00 6C */	bge lbl_802F9850
/* 802F97E8 002F5448  80 BB 00 00 */	lwz r5, 0(r27)
/* 802F97EC 002F544C  7F 63 DB 78 */	mr r3, r27
/* 802F97F0 002F5450  38 E1 00 08 */	addi r7, r1, 8
/* 802F97F4 002F5454  38 C0 00 00 */	li r6, 0
/* 802F97F8 002F5458  4B FF EE 21 */	bl NHTTPi_findNextLineHdrRecvBuf
/* 802F97FC 002F545C  2C 03 00 00 */	cmpwi r3, 0
/* 802F9800 002F5460  41 81 00 0C */	bgt lbl_802F980C
/* 802F9804 002F5464  83 DB 00 00 */	lwz r30, 0(r27)
/* 802F9808 002F5468  48 00 00 1C */	b lbl_802F9824
lbl_802F980C:
/* 802F980C 002F546C  80 01 00 08 */	lwz r0, 8(r1)
/* 802F9810 002F5470  7C 03 00 00 */	cmpw r3, r0
/* 802F9814 002F5474  40 80 00 0C */	bge lbl_802F9820
/* 802F9818 002F5478  38 60 FF FF */	li r3, -1
/* 802F981C 002F547C  48 00 00 4C */	b lbl_802F9868
lbl_802F9820:
/* 802F9820 002F5480  7F C0 18 50 */	subf r30, r0, r3
lbl_802F9824:
/* 802F9824 002F5484  80 81 00 0C */	lwz r4, 0xc(r1)
/* 802F9828 002F5488  7F 63 DB 78 */	mr r3, r27
/* 802F982C 002F548C  7F C5 F3 78 */	mr r5, r30
/* 802F9830 002F5490  38 84 00 01 */	addi r4, r4, 1
/* 802F9834 002F5494  4B FF EF DD */	bl NHTTPi_skipSpaceHdrRecvBuf
/* 802F9838 002F5498  2C 03 00 00 */	cmpwi r3, 0
/* 802F983C 002F549C  40 80 00 08 */	bge lbl_802F9844
/* 802F9840 002F54A0  7F C3 F3 78 */	mr r3, r30
lbl_802F9844:
/* 802F9844 002F54A4  90 7D 00 00 */	stw r3, 0(r29)
/* 802F9848 002F54A8  7C 63 F0 50 */	subf r3, r3, r30
/* 802F984C 002F54AC  48 00 00 1C */	b lbl_802F9868
lbl_802F9850:
/* 802F9850 002F54B0  38 60 00 00 */	li r3, 0
/* 802F9854 002F54B4  48 00 00 14 */	b lbl_802F9868
lbl_802F9858:
/* 802F9858 002F54B8  7F DF F3 78 */	mr r31, r30
lbl_802F985C:
/* 802F985C 002F54BC  2C 1F 00 00 */	cmpwi r31, 0
/* 802F9860 002F54C0  41 81 FF 30 */	bgt lbl_802F9790
/* 802F9864 002F54C4  38 60 FF FF */	li r3, -1
lbl_802F9868:
/* 802F9868 002F54C8  39 61 00 30 */	addi r11, r1, 0x30
/* 802F986C 002F54CC  4B EC D9 09 */	bl _restgpr_27
/* 802F9870 002F54D0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802F9874 002F54D4  7C 08 03 A6 */	mtlr r0
/* 802F9878 002F54D8  38 21 00 30 */	addi r1, r1, 0x30
/* 802F987C 002F54DC  4E 80 00 20 */	blr