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

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

.global addHdrList
addHdrList:
/* 802F7E94 002F3AF4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F7E98 002F3AF8  7C 08 02 A6 */	mflr r0
/* 802F7E9C 002F3AFC  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F7EA0 002F3B00  39 61 00 20 */	addi r11, r1, 0x20
/* 802F7EA4 002F3B04  4B EC F2 81 */	bl _savegpr_26
/* 802F7EA8 002F3B08  83 C3 00 00 */	lwz r30, 0(r3)
/* 802F7EAC 002F3B0C  7C 7A 1B 78 */	mr r26, r3
/* 802F7EB0 002F3B10  7C 9B 23 78 */	mr r27, r4
/* 802F7EB4 002F3B14  7C BC 2B 78 */	mr r28, r5
/* 802F7EB8 002F3B18  2C 1E 00 00 */	cmpwi r30, 0
/* 802F7EBC 002F3B1C  7C DD 33 78 */	mr r29, r6
/* 802F7EC0 002F3B20  3B E0 00 00 */	li r31, 0
/* 802F7EC4 002F3B24  41 82 00 54 */	beq lbl_802F7F18
/* 802F7EC8 002F3B28  80 9E 00 08 */	lwz r4, 8(r30)
/* 802F7ECC 002F3B2C  7F 83 E3 78 */	mr r3, r28
/* 802F7ED0 002F3B30  48 00 27 B5 */	bl NHTTPi_compareToken
/* 802F7ED4 002F3B34  2C 03 00 00 */	cmpwi r3, 0
/* 802F7ED8 002F3B38  41 82 00 3C */	beq lbl_802F7F14
/* 802F7EDC 002F3B3C  83 DE 00 04 */	lwz r30, 4(r30)
/* 802F7EE0 002F3B40  48 00 00 24 */	b lbl_802F7F04
lbl_802F7EE4:
/* 802F7EE4 002F3B44  80 9E 00 08 */	lwz r4, 8(r30)
/* 802F7EE8 002F3B48  7F 83 E3 78 */	mr r3, r28
/* 802F7EEC 002F3B4C  48 00 27 99 */	bl NHTTPi_compareToken
/* 802F7EF0 002F3B50  2C 03 00 00 */	cmpwi r3, 0
/* 802F7EF4 002F3B54  40 82 00 0C */	bne lbl_802F7F00
/* 802F7EF8 002F3B58  3B E0 00 01 */	li r31, 1
/* 802F7EFC 002F3B5C  48 00 00 1C */	b lbl_802F7F18
lbl_802F7F00:
/* 802F7F00 002F3B60  83 DE 00 04 */	lwz r30, 4(r30)
lbl_802F7F04:
/* 802F7F04 002F3B64  80 1A 00 00 */	lwz r0, 0(r26)
/* 802F7F08 002F3B68  7C 1E 00 40 */	cmplw r30, r0
/* 802F7F0C 002F3B6C  40 82 FF D8 */	bne lbl_802F7EE4
/* 802F7F10 002F3B70  48 00 00 08 */	b lbl_802F7F18
lbl_802F7F14:
/* 802F7F14 002F3B74  3B E0 00 01 */	li r31, 1
lbl_802F7F18:
/* 802F7F18 002F3B78  2C 1F 00 00 */	cmpwi r31, 0
/* 802F7F1C 002F3B7C  41 82 00 0C */	beq lbl_802F7F28
/* 802F7F20 002F3B80  93 BE 00 0C */	stw r29, 0xc(r30)
/* 802F7F24 002F3B84  48 00 00 80 */	b lbl_802F7FA4
lbl_802F7F28:
/* 802F7F28 002F3B88  38 60 00 18 */	li r3, 0x18
/* 802F7F2C 002F3B8C  38 80 00 04 */	li r4, 4
/* 802F7F30 002F3B90  4B FF FC 31 */	bl NHTTPi_alloc
/* 802F7F34 002F3B94  2C 03 00 00 */	cmpwi r3, 0
/* 802F7F38 002F3B98  40 82 00 18 */	bne lbl_802F7F50
/* 802F7F3C 002F3B9C  7F 63 DB 78 */	mr r3, r27
/* 802F7F40 002F3BA0  38 80 00 01 */	li r4, 1
/* 802F7F44 002F3BA4  4B FF FC BD */	bl NHTTPi_SetError
/* 802F7F48 002F3BA8  38 60 00 00 */	li r3, 0
/* 802F7F4C 002F3BAC  48 00 00 5C */	b lbl_802F7FA8
lbl_802F7F50:
/* 802F7F50 002F3BB0  93 83 00 08 */	stw r28, 8(r3)
/* 802F7F54 002F3BB4  38 00 00 00 */	li r0, 0
/* 802F7F58 002F3BB8  93 A3 00 0C */	stw r29, 0xc(r3)
/* 802F7F5C 002F3BBC  90 03 00 10 */	stw r0, 0x10(r3)
/* 802F7F60 002F3BC0  90 03 00 14 */	stw r0, 0x14(r3)
/* 802F7F64 002F3BC4  80 9A 00 00 */	lwz r4, 0(r26)
/* 802F7F68 002F3BC8  2C 04 00 00 */	cmpwi r4, 0
/* 802F7F6C 002F3BCC  41 82 00 2C */	beq lbl_802F7F98
/* 802F7F70 002F3BD0  80 04 00 00 */	lwz r0, 0(r4)
/* 802F7F74 002F3BD4  90 03 00 00 */	stw r0, 0(r3)
/* 802F7F78 002F3BD8  80 1A 00 00 */	lwz r0, 0(r26)
/* 802F7F7C 002F3BDC  90 03 00 04 */	stw r0, 4(r3)
/* 802F7F80 002F3BE0  80 9A 00 00 */	lwz r4, 0(r26)
/* 802F7F84 002F3BE4  80 84 00 00 */	lwz r4, 0(r4)
/* 802F7F88 002F3BE8  90 64 00 04 */	stw r3, 4(r4)
/* 802F7F8C 002F3BEC  80 9A 00 00 */	lwz r4, 0(r26)
/* 802F7F90 002F3BF0  90 64 00 00 */	stw r3, 0(r4)
/* 802F7F94 002F3BF4  48 00 00 10 */	b lbl_802F7FA4
lbl_802F7F98:
/* 802F7F98 002F3BF8  90 63 00 04 */	stw r3, 4(r3)
/* 802F7F9C 002F3BFC  90 63 00 00 */	stw r3, 0(r3)
/* 802F7FA0 002F3C00  90 7A 00 00 */	stw r3, 0(r26)
lbl_802F7FA4:
/* 802F7FA4 002F3C04  38 60 00 01 */	li r3, 1
lbl_802F7FA8:
/* 802F7FA8 002F3C08  39 61 00 20 */	addi r11, r1, 0x20
/* 802F7FAC 002F3C0C  4B EC F1 C5 */	bl _restgpr_26
/* 802F7FB0 002F3C10  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F7FB4 002F3C14  7C 08 03 A6 */	mtlr r0
/* 802F7FB8 002F3C18  38 21 00 20 */	addi r1, r1, 0x20
/* 802F7FBC 002F3C1C  4E 80 00 20 */	blr

.global NHTTPi_getHdrFromList
NHTTPi_getHdrFromList:
/* 802F7FC0 002F3C20  80 A3 00 00 */	lwz r5, 0(r3)
/* 802F7FC4 002F3C24  2C 05 00 00 */	cmpwi r5, 0
/* 802F7FC8 002F3C28  41 82 00 38 */	beq lbl_802F8000
/* 802F7FCC 002F3C2C  80 85 00 00 */	lwz r4, 0(r5)
/* 802F7FD0 002F3C30  7C 05 20 40 */	cmplw r5, r4
/* 802F7FD4 002F3C34  41 82 00 24 */	beq lbl_802F7FF8
/* 802F7FD8 002F3C38  80 05 00 04 */	lwz r0, 4(r5)
/* 802F7FDC 002F3C3C  90 04 00 04 */	stw r0, 4(r4)
/* 802F7FE0 002F3C40  80 05 00 00 */	lwz r0, 0(r5)
/* 802F7FE4 002F3C44  80 85 00 04 */	lwz r4, 4(r5)
/* 802F7FE8 002F3C48  90 04 00 00 */	stw r0, 0(r4)
/* 802F7FEC 002F3C4C  80 05 00 04 */	lwz r0, 4(r5)
/* 802F7FF0 002F3C50  90 03 00 00 */	stw r0, 0(r3)
/* 802F7FF4 002F3C54  48 00 00 0C */	b lbl_802F8000
lbl_802F7FF8:
/* 802F7FF8 002F3C58  38 00 00 00 */	li r0, 0
/* 802F7FFC 002F3C5C  90 03 00 00 */	stw r0, 0(r3)
lbl_802F8000:
/* 802F8000 002F3C60  7C A3 2B 78 */	mr r3, r5
/* 802F8004 002F3C64  4E 80 00 20 */	blr

.global NHTTP_AddHeaderField
NHTTP_AddHeaderField:
/* 802F8008 002F3C68  80 03 00 04 */	lwz r0, 4(r3)
/* 802F800C 002F3C6C  2C 00 00 00 */	cmpwi r0, 0
/* 802F8010 002F3C70  41 82 00 0C */	beq lbl_802F801C
/* 802F8014 002F3C74  38 60 00 00 */	li r3, 0
/* 802F8018 002F3C78  4E 80 00 20 */	blr
lbl_802F801C:
/* 802F801C 002F3C7C  38 63 00 30 */	addi r3, r3, 0x30
/* 802F8020 002F3C80  4B FF FE 74 */	b addHdrList
/* 802F8024 002F3C84  4E 80 00 20 */	blr

.global NHTTP_AddPostDataAscii
NHTTP_AddPostDataAscii:
/* 802F8028 002F3C88  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 802F802C 002F3C8C  7C 08 02 A6 */	mflr r0
/* 802F8030 002F3C90  90 01 00 44 */	stw r0, 0x44(r1)
/* 802F8034 002F3C94  39 61 00 40 */	addi r11, r1, 0x40
/* 802F8038 002F3C98  4B EC F0 D9 */	bl _savegpr_21
/* 802F803C 002F3C9C  80 03 00 04 */	lwz r0, 4(r3)
/* 802F8040 002F3CA0  7C 7B 1B 78 */	mr r27, r3
/* 802F8044 002F3CA4  7C 9C 23 78 */	mr r28, r4
/* 802F8048 002F3CA8  7C BD 2B 78 */	mr r29, r5
/* 802F804C 002F3CAC  2C 00 00 00 */	cmpwi r0, 0
/* 802F8050 002F3CB0  7C D5 33 78 */	mr r21, r6
/* 802F8054 002F3CB4  3B E0 00 00 */	li r31, 0
/* 802F8058 002F3CB8  3B C0 00 00 */	li r30, 0
/* 802F805C 002F3CBC  41 82 00 0C */	beq lbl_802F8068
/* 802F8060 002F3CC0  38 60 00 00 */	li r3, 0
/* 802F8064 002F3CC4  48 00 01 28 */	b lbl_802F818C
lbl_802F8068:
/* 802F8068 002F3CC8  80 03 00 10 */	lwz r0, 0x10(r3)
/* 802F806C 002F3CCC  2C 00 00 00 */	cmpwi r0, 0
/* 802F8070 002F3CD0  41 82 00 0C */	beq lbl_802F807C
/* 802F8074 002F3CD4  38 60 00 00 */	li r3, 0
/* 802F8078 002F3CD8  48 00 01 14 */	b lbl_802F818C
lbl_802F807C:
/* 802F807C 002F3CDC  2C 06 00 00 */	cmpwi r6, 0
/* 802F8080 002F3CE0  41 82 00 10 */	beq lbl_802F8090
/* 802F8084 002F3CE4  7E A3 AB 78 */	mr r3, r21
/* 802F8088 002F3CE8  48 00 20 59 */	bl NHTTPi_strlen
/* 802F808C 002F3CEC  7C 7E 1B 78 */	mr r30, r3
lbl_802F8090:
/* 802F8090 002F3CF0  7E A3 AB 78 */	mr r3, r21
/* 802F8094 002F3CF4  7F C4 F3 78 */	mr r4, r30
/* 802F8098 002F3CF8  38 BB 00 3A */	addi r5, r27, 0x3a
/* 802F809C 002F3CFC  38 C0 00 12 */	li r6, 0x12
/* 802F80A0 002F3D00  48 00 27 29 */	bl NHTTPi_memfind
/* 802F80A4 002F3D04  2C 03 00 00 */	cmpwi r3, 0
/* 802F80A8 002F3D08  40 80 00 0C */	bge lbl_802F80B4
/* 802F80AC 002F3D0C  38 00 00 01 */	li r0, 1
/* 802F80B0 002F3D10  48 00 00 A4 */	b lbl_802F8154
lbl_802F80B4:
/* 802F80B4 002F3D14  3C 60 80 40 */	lis r3, lbl_803FE108@ha
/* 802F80B8 002F3D18  3B 00 00 13 */	li r24, 0x13
/* 802F80BC 002F3D1C  38 63 E1 08 */	addi r3, r3, lbl_803FE108@l
/* 802F80C0 002F3D20  3A E3 00 13 */	addi r23, r3, 0x13
lbl_802F80C4:
/* 802F80C4 002F3D24  7E DB C2 14 */	add r22, r27, r24
/* 802F80C8 002F3D28  88 17 00 00 */	lbz r0, 0(r23)
/* 802F80CC 002F3D2C  8B 36 00 38 */	lbz r25, 0x38(r22)
/* 802F80D0 002F3D30  7C 1A 07 74 */	extsb r26, r0
lbl_802F80D4:
/* 802F80D4 002F3D34  57 23 06 3E */	clrlwi r3, r25, 0x18
/* 802F80D8 002F3D38  38 63 00 01 */	addi r3, r3, 1
/* 802F80DC 002F3D3C  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 802F80E0 002F3D40  28 00 00 7B */	cmplwi r0, 0x7b
/* 802F80E4 002F3D44  40 82 00 0C */	bne lbl_802F80F0
/* 802F80E8 002F3D48  38 60 00 30 */	li r3, 0x30
/* 802F80EC 002F3D4C  48 00 00 20 */	b lbl_802F810C
lbl_802F80F0:
/* 802F80F0 002F3D50  28 00 00 5B */	cmplwi r0, 0x5b
/* 802F80F4 002F3D54  40 82 00 0C */	bne lbl_802F8100
/* 802F80F8 002F3D58  38 60 00 61 */	li r3, 0x61
/* 802F80FC 002F3D5C  48 00 00 10 */	b lbl_802F810C
lbl_802F8100:
/* 802F8100 002F3D60  28 00 00 3A */	cmplwi r0, 0x3a
/* 802F8104 002F3D64  40 82 00 08 */	bne lbl_802F810C
/* 802F8108 002F3D68  38 60 00 41 */	li r3, 0x41
lbl_802F810C:
/* 802F810C 002F3D6C  7C 79 07 74 */	extsb r25, r3
/* 802F8110 002F3D70  98 76 00 38 */	stb r3, 0x38(r22)
/* 802F8114 002F3D74  7C 19 D0 00 */	cmpw r25, r26
/* 802F8118 002F3D78  41 82 00 28 */	beq lbl_802F8140
/* 802F811C 002F3D7C  7E A3 AB 78 */	mr r3, r21
/* 802F8120 002F3D80  7F C4 F3 78 */	mr r4, r30
/* 802F8124 002F3D84  38 BB 00 3A */	addi r5, r27, 0x3a
/* 802F8128 002F3D88  38 C0 00 12 */	li r6, 0x12
/* 802F812C 002F3D8C  48 00 26 9D */	bl NHTTPi_memfind
/* 802F8130 002F3D90  2C 03 00 00 */	cmpwi r3, 0
/* 802F8134 002F3D94  40 80 FF A0 */	bge lbl_802F80D4
/* 802F8138 002F3D98  38 00 00 01 */	li r0, 1
/* 802F813C 002F3D9C  48 00 00 18 */	b lbl_802F8154
lbl_802F8140:
/* 802F8140 002F3DA0  3B 18 FF FF */	addi r24, r24, -1
/* 802F8144 002F3DA4  3A F7 FF FF */	addi r23, r23, -1
/* 802F8148 002F3DA8  2C 18 00 02 */	cmpwi r24, 2
/* 802F814C 002F3DAC  40 80 FF 78 */	bge lbl_802F80C4
/* 802F8150 002F3DB0  38 00 00 00 */	li r0, 0
lbl_802F8154:
/* 802F8154 002F3DB4  2C 00 00 00 */	cmpwi r0, 0
/* 802F8158 002F3DB8  41 82 00 30 */	beq lbl_802F8188
/* 802F815C 002F3DBC  7F 84 E3 78 */	mr r4, r28
/* 802F8160 002F3DC0  7F A5 EB 78 */	mr r5, r29
/* 802F8164 002F3DC4  7E A6 AB 78 */	mr r6, r21
/* 802F8168 002F3DC8  38 7B 00 34 */	addi r3, r27, 0x34
/* 802F816C 002F3DCC  4B FF FD 29 */	bl addHdrList
/* 802F8170 002F3DD0  2C 03 00 00 */	cmpwi r3, 0
/* 802F8174 002F3DD4  7C 7F 1B 78 */	mr r31, r3
/* 802F8178 002F3DD8  41 82 00 10 */	beq lbl_802F8188
/* 802F817C 002F3DDC  80 7B 00 34 */	lwz r3, 0x34(r27)
/* 802F8180 002F3DE0  80 63 00 00 */	lwz r3, 0(r3)
/* 802F8184 002F3DE4  93 C3 00 10 */	stw r30, 0x10(r3)
lbl_802F8188:
/* 802F8188 002F3DE8  7F E3 FB 78 */	mr r3, r31
lbl_802F818C:
/* 802F818C 002F3DEC  39 61 00 40 */	addi r11, r1, 0x40
/* 802F8190 002F3DF0  4B EC EF CD */	bl _restgpr_21
/* 802F8194 002F3DF4  80 01 00 44 */	lwz r0, 0x44(r1)
/* 802F8198 002F3DF8  7C 08 03 A6 */	mtlr r0
/* 802F819C 002F3DFC  38 21 00 40 */	addi r1, r1, 0x40
/* 802F81A0 002F3E00  4E 80 00 20 */	blr