summaryrefslogtreecommitdiff
path: root/asm/SDK/SO/SOInformation.s
blob: ec83a57f9923e4aa41bdae6674520ef125349a47 (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
.include "macros.inc"

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

.global SOGetHostID
SOGetHostID:
/* 802F7250 002F2EB0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F7254 002F2EB4  7C 08 02 A6 */	mflr r0
/* 802F7258 002F2EB8  38 60 00 00 */	li r3, 0
/* 802F725C 002F2EBC  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F7260 002F2EC0  38 81 00 08 */	addi r4, r1, 8
/* 802F7264 002F2EC4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802F7268 002F2EC8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802F726C 002F2ECC  3B C0 00 00 */	li r30, 0
/* 802F7270 002F2ED0  4B FF E9 55 */	bl SOiPrepare
/* 802F7274 002F2ED4  2C 03 00 00 */	cmpwi r3, 0
/* 802F7278 002F2ED8  7C 7F 1B 78 */	mr r31, r3
/* 802F727C 002F2EDC  40 82 00 30 */	bne lbl_802F72AC
/* 802F7280 002F2EE0  80 61 00 08 */	lwz r3, 8(r1)
/* 802F7284 002F2EE4  38 80 00 10 */	li r4, 0x10
/* 802F7288 002F2EE8  38 A0 00 00 */	li r5, 0
/* 802F728C 002F2EEC  38 C0 00 00 */	li r6, 0
/* 802F7290 002F2EF0  38 E0 00 00 */	li r7, 0
/* 802F7294 002F2EF4  39 00 00 00 */	li r8, 0
/* 802F7298 002F2EF8  4B FA C8 59 */	bl IOS_Ioctl
/* 802F729C 002F2EFC  7C 7E 1B 78 */	mr r30, r3
/* 802F72A0 002F2F00  7F E4 FB 78 */	mr r4, r31
/* 802F72A4 002F2F04  38 60 00 00 */	li r3, 0
/* 802F72A8 002F2F08  4B FF EA 05 */	bl SOiConclude
lbl_802F72AC:
/* 802F72AC 002F2F0C  7F C3 F3 78 */	mr r3, r30
/* 802F72B0 002F2F10  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802F72B4 002F2F14  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802F72B8 002F2F18  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F72BC 002F2F1C  7C 08 03 A6 */	mtlr r0
/* 802F72C0 002F2F20  38 21 00 20 */	addi r1, r1, 0x20
/* 802F72C4 002F2F24  4E 80 00 20 */	blr

.global SOGetHostByName
SOGetHostByName:
/* 802F72C8 002F2F28  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802F72CC 002F2F2C  7C 08 02 A6 */	mflr r0
/* 802F72D0 002F2F30  90 01 00 34 */	stw r0, 0x34(r1)
/* 802F72D4 002F2F34  39 61 00 30 */	addi r11, r1, 0x30
/* 802F72D8 002F2F38  4B EC FE 4D */	bl _savegpr_26
/* 802F72DC 002F2F3C  7C 7A 1B 78 */	mr r26, r3
/* 802F72E0 002F2F40  38 81 00 08 */	addi r4, r1, 8
/* 802F72E4 002F2F44  3B 60 00 00 */	li r27, 0
/* 802F72E8 002F2F48  38 60 00 00 */	li r3, 0
/* 802F72EC 002F2F4C  4B FF E8 D9 */	bl SOiPrepare
/* 802F72F0 002F2F50  2C 03 00 00 */	cmpwi r3, 0
/* 802F72F4 002F2F54  40 82 00 F8 */	bne lbl_802F73EC
/* 802F72F8 002F2F58  2C 1A 00 00 */	cmpwi r26, 0
/* 802F72FC 002F2F5C  40 82 00 0C */	bne lbl_802F7308
/* 802F7300 002F2F60  3B A0 FF E4 */	li r29, -28
/* 802F7304 002F2F64  48 00 00 DC */	b lbl_802F73E0
lbl_802F7308:
/* 802F7308 002F2F68  7F 43 D3 78 */	mr r3, r26
/* 802F730C 002F2F6C  4B EC F8 59 */	bl strlen
/* 802F7310 002F2F70  38 03 00 20 */	addi r0, r3, 0x20
/* 802F7314 002F2F74  7C 7D 1B 78 */	mr r29, r3
/* 802F7318 002F2F78  54 1C 00 34 */	rlwinm r28, r0, 0, 0, 0x1a
/* 802F731C 002F2F7C  38 60 00 0C */	li r3, 0xc
/* 802F7320 002F2F80  7F 84 E3 78 */	mr r4, r28
/* 802F7324 002F2F84  4B FF E7 85 */	bl SOiAlloc
/* 802F7328 002F2F88  7C 7F 1B 78 */	mr r31, r3
/* 802F732C 002F2F8C  4B FF E7 19 */	bl SOiGetSysWork
/* 802F7330 002F2F90  2C 1F 00 00 */	cmpwi r31, 0
/* 802F7334 002F2F94  83 C3 00 10 */	lwz r30, 0x10(r3)
/* 802F7338 002F2F98  40 82 00 0C */	bne lbl_802F7344
/* 802F733C 002F2F9C  3B A0 FF CF */	li r29, -49
/* 802F7340 002F2FA0  48 00 00 A0 */	b lbl_802F73E0
lbl_802F7344:
/* 802F7344 002F2FA4  7F E3 FB 78 */	mr r3, r31
/* 802F7348 002F2FA8  7F 44 D3 78 */	mr r4, r26
/* 802F734C 002F2FAC  4B ED 6F 85 */	bl strcpy
/* 802F7350 002F2FB0  80 61 00 08 */	lwz r3, 8(r1)
/* 802F7354 002F2FB4  7F E5 FB 78 */	mr r5, r31
/* 802F7358 002F2FB8  7F C7 F3 78 */	mr r7, r30
/* 802F735C 002F2FBC  38 DD 00 01 */	addi r6, r29, 1
/* 802F7360 002F2FC0  38 80 00 11 */	li r4, 0x11
/* 802F7364 002F2FC4  39 00 04 60 */	li r8, 0x460
/* 802F7368 002F2FC8  4B FA C7 89 */	bl IOS_Ioctl
/* 802F736C 002F2FCC  2C 03 00 00 */	cmpwi r3, 0
/* 802F7370 002F2FD0  7C 7D 1B 78 */	mr r29, r3
/* 802F7374 002F2FD4  41 80 00 5C */	blt lbl_802F73D0
/* 802F7378 002F2FD8  80 7E 00 00 */	lwz r3, 0(r30)
/* 802F737C 002F2FDC  38 1E 00 10 */	addi r0, r30, 0x10
/* 802F7380 002F2FE0  38 9E 03 40 */	addi r4, r30, 0x340
/* 802F7384 002F2FE4  7C 63 00 50 */	subf r3, r3, r0
/* 802F7388 002F2FE8  48 00 00 14 */	b lbl_802F739C
lbl_802F738C:
/* 802F738C 002F2FEC  80 04 00 00 */	lwz r0, 0(r4)
/* 802F7390 002F2FF0  7C 00 1A 14 */	add r0, r0, r3
/* 802F7394 002F2FF4  90 04 00 00 */	stw r0, 0(r4)
/* 802F7398 002F2FF8  38 84 00 04 */	addi r4, r4, 4
lbl_802F739C:
/* 802F739C 002F2FFC  80 04 00 00 */	lwz r0, 0(r4)
/* 802F73A0 002F3000  2C 00 00 00 */	cmpwi r0, 0
/* 802F73A4 002F3004  40 82 FF E8 */	bne lbl_802F738C
/* 802F73A8 002F3008  80 1E 00 04 */	lwz r0, 4(r30)
/* 802F73AC 002F300C  7F DB F3 78 */	mr r27, r30
/* 802F73B0 002F3010  7C 00 1A 14 */	add r0, r0, r3
/* 802F73B4 002F3014  90 1E 00 04 */	stw r0, 4(r30)
/* 802F73B8 002F3018  80 1E 00 00 */	lwz r0, 0(r30)
/* 802F73BC 002F301C  7C 00 1A 14 */	add r0, r0, r3
/* 802F73C0 002F3020  90 1E 00 00 */	stw r0, 0(r30)
/* 802F73C4 002F3024  80 1E 00 0C */	lwz r0, 0xc(r30)
/* 802F73C8 002F3028  7C 00 1A 14 */	add r0, r0, r3
/* 802F73CC 002F302C  90 1E 00 0C */	stw r0, 0xc(r30)
lbl_802F73D0:
/* 802F73D0 002F3030  7F E4 FB 78 */	mr r4, r31
/* 802F73D4 002F3034  7F 85 E3 78 */	mr r5, r28
/* 802F73D8 002F3038  38 60 00 0C */	li r3, 0xc
/* 802F73DC 002F303C  4B FF E7 B5 */	bl SOiFree
lbl_802F73E0:
/* 802F73E0 002F3040  7F A4 EB 78 */	mr r4, r29
/* 802F73E4 002F3044  38 60 00 00 */	li r3, 0
/* 802F73E8 002F3048  4B FF E8 C5 */	bl SOiConclude
lbl_802F73EC:
/* 802F73EC 002F304C  39 61 00 30 */	addi r11, r1, 0x30
/* 802F73F0 002F3050  7F 63 DB 78 */	mr r3, r27
/* 802F73F4 002F3054  4B EC FD 7D */	bl _restgpr_26
/* 802F73F8 002F3058  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802F73FC 002F305C  7C 08 03 A6 */	mtlr r0
/* 802F7400 002F3060  38 21 00 30 */	addi r1, r1, 0x30
/* 802F7404 002F3064  4E 80 00 20 */	blr

.global SOGetAddrInfo
SOGetAddrInfo:
/* 802F7408 002F3068  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 802F740C 002F306C  7C 08 02 A6 */	mflr r0
/* 802F7410 002F3070  90 01 00 44 */	stw r0, 0x44(r1)
/* 802F7414 002F3074  39 61 00 40 */	addi r11, r1, 0x40
/* 802F7418 002F3078  4B EC FC FD */	bl _savegpr_22
/* 802F741C 002F307C  7C 79 1B 78 */	mr r25, r3
/* 802F7420 002F3080  7C 9A 23 78 */	mr r26, r4
/* 802F7424 002F3084  7C BB 2B 78 */	mr r27, r5
/* 802F7428 002F3088  7C DC 33 78 */	mr r28, r6
/* 802F742C 002F308C  38 81 00 08 */	addi r4, r1, 8
/* 802F7430 002F3090  38 60 00 00 */	li r3, 0
/* 802F7434 002F3094  4B FF E7 91 */	bl SOiPrepare
/* 802F7438 002F3098  2C 03 00 00 */	cmpwi r3, 0
/* 802F743C 002F309C  40 82 02 98 */	bne lbl_802F76D4
/* 802F7440 002F30A0  2C 1A 00 00 */	cmpwi r26, 0
/* 802F7444 002F30A4  40 82 00 0C */	bne lbl_802F7450
/* 802F7448 002F30A8  3B A0 00 00 */	li r29, 0
/* 802F744C 002F30AC  48 00 00 10 */	b lbl_802F745C
lbl_802F7450:
/* 802F7450 002F30B0  7F 23 CB 78 */	mr r3, r25
/* 802F7454 002F30B4  4B EC F7 11 */	bl strlen
/* 802F7458 002F30B8  3B A3 00 01 */	addi r29, r3, 1
lbl_802F745C:
/* 802F745C 002F30BC  2C 19 00 00 */	cmpwi r25, 0
/* 802F7460 002F30C0  40 82 00 0C */	bne lbl_802F746C
/* 802F7464 002F30C4  38 60 00 00 */	li r3, 0
/* 802F7468 002F30C8  48 00 00 10 */	b lbl_802F7478
lbl_802F746C:
/* 802F746C 002F30CC  7F 23 CB 78 */	mr r3, r25
/* 802F7470 002F30D0  4B EC F6 F5 */	bl strlen
/* 802F7474 002F30D4  38 63 00 01 */	addi r3, r3, 1
lbl_802F7478:
/* 802F7478 002F30D8  38 63 00 1F */	addi r3, r3, 0x1f
/* 802F747C 002F30DC  38 1D 00 1F */	addi r0, r29, 0x1f
/* 802F7480 002F30E0  54 64 00 34 */	rlwinm r4, r3, 0, 0, 0x1a
/* 802F7484 002F30E4  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 802F7488 002F30E8  38 60 00 0C */	li r3, 0xc
/* 802F748C 002F30EC  7C 84 02 14 */	add r4, r4, r0
/* 802F7490 002F30F0  38 04 00 5F */	addi r0, r4, 0x5f
/* 802F7494 002F30F4  54 1F 00 34 */	rlwinm r31, r0, 0, 0, 0x1a
/* 802F7498 002F30F8  7F E4 FB 78 */	mr r4, r31
/* 802F749C 002F30FC  4B FF E6 0D */	bl SOiAlloc
/* 802F74A0 002F3100  2C 03 00 00 */	cmpwi r3, 0
/* 802F74A4 002F3104  7C 7D 1B 78 */	mr r29, r3
/* 802F74A8 002F3108  40 82 00 0C */	bne lbl_802F74B4
/* 802F74AC 002F310C  3B 20 FF CF */	li r25, -49
/* 802F74B0 002F3110  48 00 02 18 */	b lbl_802F76C8
lbl_802F74B4:
/* 802F74B4 002F3114  38 60 00 0A */	li r3, 0xa
/* 802F74B8 002F3118  38 80 08 40 */	li r4, 0x840
/* 802F74BC 002F311C  4B FF E5 ED */	bl SOiAlloc
/* 802F74C0 002F3120  2C 03 00 00 */	cmpwi r3, 0
/* 802F74C4 002F3124  7C 7E 1B 78 */	mr r30, r3
/* 802F74C8 002F3128  40 82 00 1C */	bne lbl_802F74E4
/* 802F74CC 002F312C  7F A4 EB 78 */	mr r4, r29
/* 802F74D0 002F3130  7F E5 FB 78 */	mr r5, r31
/* 802F74D4 002F3134  38 60 00 0C */	li r3, 0xc
/* 802F74D8 002F3138  4B FF E6 B9 */	bl SOiFree
/* 802F74DC 002F313C  3B 20 FF CF */	li r25, -49
/* 802F74E0 002F3140  48 00 01 E8 */	b lbl_802F76C8
lbl_802F74E4:
/* 802F74E4 002F3144  2C 19 00 00 */	cmpwi r25, 0
/* 802F74E8 002F3148  3B 1D 00 20 */	addi r24, r29, 0x20
/* 802F74EC 002F314C  40 82 00 0C */	bne lbl_802F74F8
/* 802F74F0 002F3150  38 60 00 00 */	li r3, 0
/* 802F74F4 002F3154  48 00 00 10 */	b lbl_802F7504
lbl_802F74F8:
/* 802F74F8 002F3158  7F 23 CB 78 */	mr r3, r25
/* 802F74FC 002F315C  4B EC F6 69 */	bl strlen
/* 802F7500 002F3160  38 63 00 01 */	addi r3, r3, 1
lbl_802F7504:
/* 802F7504 002F3164  38 03 00 1F */	addi r0, r3, 0x1f
/* 802F7508 002F3168  2C 1A 00 00 */	cmpwi r26, 0
/* 802F750C 002F316C  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 802F7510 002F3170  7E F8 02 14 */	add r23, r24, r0
/* 802F7514 002F3174  40 82 00 0C */	bne lbl_802F7520
/* 802F7518 002F3178  38 60 00 00 */	li r3, 0
/* 802F751C 002F317C  48 00 00 10 */	b lbl_802F752C
lbl_802F7520:
/* 802F7520 002F3180  7F 23 CB 78 */	mr r3, r25
/* 802F7524 002F3184  4B EC F6 41 */	bl strlen
/* 802F7528 002F3188  38 63 00 01 */	addi r3, r3, 1
lbl_802F752C:
/* 802F752C 002F318C  38 03 00 1F */	addi r0, r3, 0x1f
/* 802F7530 002F3190  2C 19 00 00 */	cmpwi r25, 0
/* 802F7534 002F3194  54 00 00 34 */	rlwinm r0, r0, 0, 0, 0x1a
/* 802F7538 002F3198  7E D7 02 14 */	add r22, r23, r0
/* 802F753C 002F319C  41 82 00 10 */	beq lbl_802F754C
/* 802F7540 002F31A0  7F 03 C3 78 */	mr r3, r24
/* 802F7544 002F31A4  7F 24 CB 78 */	mr r4, r25
/* 802F7548 002F31A8  4B ED 6D 89 */	bl strcpy
lbl_802F754C:
/* 802F754C 002F31AC  2C 19 00 00 */	cmpwi r25, 0
/* 802F7550 002F31B0  41 82 00 08 */	beq lbl_802F7558
/* 802F7554 002F31B4  48 00 00 08 */	b lbl_802F755C
lbl_802F7558:
/* 802F7558 002F31B8  3B 00 00 00 */	li r24, 0
lbl_802F755C:
/* 802F755C 002F31BC  2C 19 00 00 */	cmpwi r25, 0
/* 802F7560 002F31C0  93 1D 00 00 */	stw r24, 0(r29)
/* 802F7564 002F31C4  40 82 00 0C */	bne lbl_802F7570
/* 802F7568 002F31C8  38 60 00 00 */	li r3, 0
/* 802F756C 002F31CC  48 00 00 0C */	b lbl_802F7578
lbl_802F7570:
/* 802F7570 002F31D0  7F 23 CB 78 */	mr r3, r25
/* 802F7574 002F31D4  4B EC F5 F1 */	bl strlen
lbl_802F7578:
/* 802F7578 002F31D8  2C 1A 00 00 */	cmpwi r26, 0
/* 802F757C 002F31DC  90 7D 00 04 */	stw r3, 4(r29)
/* 802F7580 002F31E0  41 82 00 10 */	beq lbl_802F7590
/* 802F7584 002F31E4  7E E3 BB 78 */	mr r3, r23
/* 802F7588 002F31E8  7F 44 D3 78 */	mr r4, r26
/* 802F758C 002F31EC  4B ED 6D 45 */	bl strcpy
lbl_802F7590:
/* 802F7590 002F31F0  2C 1A 00 00 */	cmpwi r26, 0
/* 802F7594 002F31F4  41 82 00 08 */	beq lbl_802F759C
/* 802F7598 002F31F8  48 00 00 08 */	b lbl_802F75A0
lbl_802F759C:
/* 802F759C 002F31FC  3A E0 00 00 */	li r23, 0
lbl_802F75A0:
/* 802F75A0 002F3200  2C 1A 00 00 */	cmpwi r26, 0
/* 802F75A4 002F3204  92 FD 00 08 */	stw r23, 8(r29)
/* 802F75A8 002F3208  40 82 00 0C */	bne lbl_802F75B4
/* 802F75AC 002F320C  38 60 00 00 */	li r3, 0
/* 802F75B0 002F3210  48 00 00 0C */	b lbl_802F75BC
lbl_802F75B4:
/* 802F75B4 002F3214  7F 43 D3 78 */	mr r3, r26
/* 802F75B8 002F3218  4B EC F5 AD */	bl strlen
lbl_802F75BC:
/* 802F75BC 002F321C  2C 1B 00 00 */	cmpwi r27, 0
/* 802F75C0 002F3220  90 7D 00 0C */	stw r3, 0xc(r29)
/* 802F75C4 002F3224  41 82 00 18 */	beq lbl_802F75DC
/* 802F75C8 002F3228  7E C3 B3 78 */	mr r3, r22
/* 802F75CC 002F322C  7F 64 DB 78 */	mr r4, r27
/* 802F75D0 002F3230  38 A0 00 20 */	li r5, 0x20
/* 802F75D4 002F3234  4B D0 CA 2D */	bl memcpy
/* 802F75D8 002F3238  48 00 00 14 */	b lbl_802F75EC
lbl_802F75DC:
/* 802F75DC 002F323C  7E C3 B3 78 */	mr r3, r22
/* 802F75E0 002F3240  38 80 00 00 */	li r4, 0
/* 802F75E4 002F3244  38 A0 00 20 */	li r5, 0x20
/* 802F75E8 002F3248  4B D0 CB 1D */	bl memset
lbl_802F75EC:
/* 802F75EC 002F324C  80 16 00 04 */	lwz r0, 4(r22)
/* 802F75F0 002F3250  2C 00 00 00 */	cmpwi r0, 0
/* 802F75F4 002F3254  40 82 00 0C */	bne lbl_802F7600
/* 802F75F8 002F3258  38 00 00 02 */	li r0, 2
/* 802F75FC 002F325C  90 16 00 04 */	stw r0, 4(r22)
lbl_802F7600:
/* 802F7600 002F3260  80 16 00 04 */	lwz r0, 4(r22)
/* 802F7604 002F3264  2C 00 00 17 */	cmpwi r0, 0x17
/* 802F7608 002F3268  40 82 00 24 */	bne lbl_802F762C
/* 802F760C 002F326C  38 00 00 00 */	li r0, 0
/* 802F7610 002F3270  7F C4 F3 78 */	mr r4, r30
/* 802F7614 002F3274  90 1C 00 00 */	stw r0, 0(r28)
/* 802F7618 002F3278  3B 20 FF BC */	li r25, -68
/* 802F761C 002F327C  38 60 00 0A */	li r3, 0xa
/* 802F7620 002F3280  38 A0 08 40 */	li r5, 0x840
/* 802F7624 002F3284  4B FF E5 6D */	bl SOiFree
/* 802F7628 002F3288  48 00 00 90 */	b lbl_802F76B8
lbl_802F762C:
/* 802F762C 002F328C  92 DD 00 10 */	stw r22, 0x10(r29)
/* 802F7630 002F3290  38 60 00 20 */	li r3, 0x20
/* 802F7634 002F3294  38 00 08 34 */	li r0, 0x834
/* 802F7638 002F3298  7F A7 EB 78 */	mr r7, r29
/* 802F763C 002F329C  90 7D 00 14 */	stw r3, 0x14(r29)
/* 802F7640 002F32A0  38 80 00 18 */	li r4, 0x18
/* 802F7644 002F32A4  38 A0 00 03 */	li r5, 3
/* 802F7648 002F32A8  38 C0 00 01 */	li r6, 1
/* 802F764C 002F32AC  93 DD 00 18 */	stw r30, 0x18(r29)
/* 802F7650 002F32B0  90 1D 00 1C */	stw r0, 0x1c(r29)
/* 802F7654 002F32B4  80 61 00 08 */	lwz r3, 8(r1)
/* 802F7658 002F32B8  4B FA C7 E9 */	bl IOS_Ioctlv
/* 802F765C 002F32BC  2C 03 00 00 */	cmpwi r3, 0
/* 802F7660 002F32C0  7C 79 1B 78 */	mr r25, r3
/* 802F7664 002F32C4  41 80 00 3C */	blt lbl_802F76A0
/* 802F7668 002F32C8  93 DC 00 00 */	stw r30, 0(r28)
/* 802F766C 002F32CC  38 7E 04 60 */	addi r3, r30, 0x460
/* 802F7670 002F32D0  48 00 00 24 */	b lbl_802F7694
lbl_802F7674:
/* 802F7674 002F32D4  90 7E 00 18 */	stw r3, 0x18(r30)
/* 802F7678 002F32D8  80 1E 00 1C */	lwz r0, 0x1c(r30)
/* 802F767C 002F32DC  2C 00 00 00 */	cmpwi r0, 0
/* 802F7680 002F32E0  41 82 00 0C */	beq lbl_802F768C
/* 802F7684 002F32E4  38 1E 00 20 */	addi r0, r30, 0x20
/* 802F7688 002F32E8  90 1E 00 1C */	stw r0, 0x1c(r30)
lbl_802F768C:
/* 802F768C 002F32EC  83 DE 00 1C */	lwz r30, 0x1c(r30)
/* 802F7690 002F32F0  38 63 00 1C */	addi r3, r3, 0x1c
lbl_802F7694:
/* 802F7694 002F32F4  2C 1E 00 00 */	cmpwi r30, 0
/* 802F7698 002F32F8  40 82 FF DC */	bne lbl_802F7674
/* 802F769C 002F32FC  48 00 00 1C */	b lbl_802F76B8
lbl_802F76A0:
/* 802F76A0 002F3300  38 00 00 00 */	li r0, 0
/* 802F76A4 002F3304  7F C4 F3 78 */	mr r4, r30
/* 802F76A8 002F3308  90 1C 00 00 */	stw r0, 0(r28)
/* 802F76AC 002F330C  38 60 00 0A */	li r3, 0xa
/* 802F76B0 002F3310  38 A0 08 40 */	li r5, 0x840
/* 802F76B4 002F3314  4B FF E4 DD */	bl SOiFree
lbl_802F76B8:
/* 802F76B8 002F3318  7F A4 EB 78 */	mr r4, r29
/* 802F76BC 002F331C  7F E5 FB 78 */	mr r5, r31
/* 802F76C0 002F3320  38 60 00 0C */	li r3, 0xc
/* 802F76C4 002F3324  4B FF E4 CD */	bl SOiFree
lbl_802F76C8:
/* 802F76C8 002F3328  7F 24 CB 78 */	mr r4, r25
/* 802F76CC 002F332C  38 60 00 00 */	li r3, 0
/* 802F76D0 002F3330  4B FF E5 DD */	bl SOiConclude
lbl_802F76D4:
/* 802F76D4 002F3334  39 61 00 40 */	addi r11, r1, 0x40
/* 802F76D8 002F3338  4B EC FA 89 */	bl _restgpr_22
/* 802F76DC 002F333C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 802F76E0 002F3340  7C 08 03 A6 */	mtlr r0
/* 802F76E4 002F3344  38 21 00 40 */	addi r1, r1, 0x40
/* 802F76E8 002F3348  4E 80 00 20 */	blr

.global SOFreeAddrInfo
SOFreeAddrInfo:
/* 802F76EC 002F334C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F76F0 002F3350  7C 08 02 A6 */	mflr r0
/* 802F76F4 002F3354  90 01 00 14 */	stw r0, 0x14(r1)
/* 802F76F8 002F3358  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F76FC 002F335C  93 C1 00 08 */	stw r30, 8(r1)
/* 802F7700 002F3360  7C 7E 1B 78 */	mr r30, r3
/* 802F7704 002F3364  4B F7 70 59 */	bl OSDisableInterrupts
/* 802F7708 002F3368  7C 7F 1B 78 */	mr r31, r3
/* 802F770C 002F336C  4B FF E3 4D */	bl SOiIsInitialized
/* 802F7710 002F3370  2C 03 00 01 */	cmpwi r3, 1
/* 802F7714 002F3374  40 82 00 1C */	bne lbl_802F7730
/* 802F7718 002F3378  2C 1E 00 00 */	cmpwi r30, 0
/* 802F771C 002F337C  41 82 00 14 */	beq lbl_802F7730
/* 802F7720 002F3380  7F C4 F3 78 */	mr r4, r30
/* 802F7724 002F3384  38 60 00 0A */	li r3, 0xa
/* 802F7728 002F3388  38 A0 08 40 */	li r5, 0x840
/* 802F772C 002F338C  4B FF E4 65 */	bl SOiFree
lbl_802F7730:
/* 802F7730 002F3390  7F E3 FB 78 */	mr r3, r31
/* 802F7734 002F3394  4B F7 70 51 */	bl OSRestoreInterrupts
/* 802F7738 002F3398  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802F773C 002F339C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F7740 002F33A0  83 C1 00 08 */	lwz r30, 8(r1)
/* 802F7744 002F33A4  7C 08 03 A6 */	mtlr r0
/* 802F7748 002F33A8  38 21 00 10 */	addi r1, r1, 0x10
/* 802F774C 002F33AC  4E 80 00 20 */	blr