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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global strzcpy
strzcpy:
/* 80347F50 00343BB0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80347F54 00343BB4 7C 08 02 A6 */ mflr r0
/* 80347F58 00343BB8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80347F5C 00343BBC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80347F60 00343BC0 7C BF 2B 78 */ mr r31, r5
/* 80347F64 00343BC4 93 C1 00 08 */ stw r30, 8(r1)
/* 80347F68 00343BC8 7C 7E 1B 78 */ mr r30, r3
/* 80347F6C 00343BCC 4B E8 64 25 */ bl strncpy
/* 80347F70 00343BD0 7C 7E FA 14 */ add r3, r30, r31
/* 80347F74 00343BD4 38 00 00 00 */ li r0, 0
/* 80347F78 00343BD8 98 03 FF FF */ stb r0, -1(r3)
/* 80347F7C 00343BDC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80347F80 00343BE0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80347F84 00343BE4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80347F88 00343BE8 7C 08 03 A6 */ mtlr r0
/* 80347F8C 00343BEC 38 21 00 10 */ addi r1, r1, 0x10
/* 80347F90 00343BF0 4E 80 00 20 */ blr
.global gpiCheckForError
gpiCheckForError:
/* 80347F94 00343BF4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80347F98 00343BF8 7C 08 02 A6 */ mflr r0
/* 80347F9C 00343BFC 90 01 00 34 */ stw r0, 0x34(r1)
/* 80347FA0 00343C00 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80347FA4 00343C04 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80347FA8 00343C08 7C BE 2B 78 */ mr r30, r5
/* 80347FAC 00343C0C 38 A0 00 07 */ li r5, 7
/* 80347FB0 00343C10 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80347FB4 00343C14 7C 9D 23 78 */ mr r29, r4
/* 80347FB8 00343C18 38 8D 92 A8 */ addi r4, r13, lbl_8063E568-_SDA_BASE_
/* 80347FBC 00343C1C 93 81 00 20 */ stw r28, 0x20(r1)
/* 80347FC0 00343C20 7C 7C 1B 78 */ mr r28, r3
/* 80347FC4 00343C24 83 E3 00 00 */ lwz r31, 0(r3)
/* 80347FC8 00343C28 7F A3 EB 78 */ mr r3, r29
/* 80347FCC 00343C2C 4B E8 65 9D */ bl strncmp
/* 80347FD0 00343C30 2C 03 00 00 */ cmpwi r3, 0
/* 80347FD4 00343C34 40 82 00 94 */ bne lbl_80348068
/* 80347FD8 00343C38 7F A3 EB 78 */ mr r3, r29
/* 80347FDC 00343C3C 38 A1 00 08 */ addi r5, r1, 8
/* 80347FE0 00343C40 38 8D 92 B0 */ addi r4, r13, lbl_8063E570-_SDA_BASE_
/* 80347FE4 00343C44 38 C0 00 10 */ li r6, 0x10
/* 80347FE8 00343C48 48 00 00 A5 */ bl gpiValueForKey
/* 80347FEC 00343C4C 2C 03 00 00 */ cmpwi r3, 0
/* 80347FF0 00343C50 41 82 00 10 */ beq lbl_80348000
/* 80347FF4 00343C54 38 61 00 08 */ addi r3, r1, 8
/* 80347FF8 00343C58 4B E8 87 15 */ bl atoi
/* 80347FFC 00343C5C 90 7F 04 34 */ stw r3, 0x434(r31)
lbl_80348000:
/* 80348000 00343C60 3C 80 80 45 */ lis r4, lbl_8044B588@ha
/* 80348004 00343C64 7F A3 EB 78 */ mr r3, r29
/* 80348008 00343C68 7F E5 FB 78 */ mr r5, r31
/* 8034800C 00343C6C 38 C0 01 00 */ li r6, 0x100
/* 80348010 00343C70 38 84 B5 88 */ addi r4, r4, lbl_8044B588@l
/* 80348014 00343C74 48 00 00 79 */ bl gpiValueForKey
/* 80348018 00343C78 2C 03 00 00 */ cmpwi r3, 0
/* 8034801C 00343C7C 40 82 00 0C */ bne lbl_80348028
/* 80348020 00343C80 38 00 00 00 */ li r0, 0
/* 80348024 00343C84 98 1F 00 00 */ stb r0, 0(r31)
lbl_80348028:
/* 80348028 00343C88 2C 1E 00 00 */ cmpwi r30, 0
/* 8034802C 00343C8C 41 82 00 34 */ beq lbl_80348060
/* 80348030 00343C90 7F A3 EB 78 */ mr r3, r29
/* 80348034 00343C94 38 8D 92 B8 */ addi r4, r13, lbl_8063E578-_SDA_BASE_
/* 80348038 00343C98 4B E8 67 69 */ bl strstr
/* 8034803C 00343C9C 7C 03 00 D0 */ neg r0, r3
/* 80348040 00343CA0 38 80 00 04 */ li r4, 4
/* 80348044 00343CA4 7C 00 1B 78 */ or r0, r0, r3
/* 80348048 00343CA8 7F 83 E3 78 */ mr r3, r28
/* 8034804C 00343CAC 54 05 0F FE */ srwi r5, r0, 0x1f
/* 80348050 00343CB0 7C 05 00 D0 */ neg r0, r5
/* 80348054 00343CB4 7C 00 2B 78 */ or r0, r0, r5
/* 80348058 00343CB8 54 05 0F FE */ srwi r5, r0, 0x1f
/* 8034805C 00343CBC 4B FF 7C 0D */ bl gpiCallErrorCallback
lbl_80348060:
/* 80348060 00343CC0 38 60 00 01 */ li r3, 1
/* 80348064 00343CC4 48 00 00 08 */ b lbl_8034806C
lbl_80348068:
/* 80348068 00343CC8 38 60 00 00 */ li r3, 0
lbl_8034806C:
/* 8034806C 00343CCC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80348070 00343CD0 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80348074 00343CD4 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80348078 00343CD8 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8034807C 00343CDC 83 81 00 20 */ lwz r28, 0x20(r1)
/* 80348080 00343CE0 7C 08 03 A6 */ mtlr r0
/* 80348084 00343CE4 38 21 00 30 */ addi r1, r1, 0x30
/* 80348088 00343CE8 4E 80 00 20 */ blr
.global gpiValueForKey
gpiValueForKey:
/* 8034808C 00343CEC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80348090 00343CF0 7C 08 02 A6 */ mflr r0
/* 80348094 00343CF4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80348098 00343CF8 39 61 00 20 */ addi r11, r1, 0x20
/* 8034809C 00343CFC 4B E7 F0 8D */ bl _savegpr_27
/* 803480A0 00343D00 88 04 00 00 */ lbz r0, 0(r4)
/* 803480A4 00343D04 7C 9B 23 78 */ mr r27, r4
/* 803480A8 00343D08 7C BC 2B 78 */ mr r28, r5
/* 803480AC 00343D0C 7C DD 33 78 */ mr r29, r6
/* 803480B0 00343D10 7C 1E 07 74 */ extsb r30, r0
/* 803480B4 00343D14 4B E8 66 ED */ bl strstr
/* 803480B8 00343D18 2C 03 00 00 */ cmpwi r3, 0
/* 803480BC 00343D1C 7C 7F 1B 78 */ mr r31, r3
/* 803480C0 00343D20 40 82 00 0C */ bne lbl_803480CC
/* 803480C4 00343D24 38 60 00 00 */ li r3, 0
/* 803480C8 00343D28 48 00 00 58 */ b lbl_80348120
lbl_803480CC:
/* 803480CC 00343D2C 7F 63 DB 78 */ mr r3, r27
/* 803480D0 00343D30 4B E7 EA 95 */ bl strlen
/* 803480D4 00343D34 7F 84 E3 78 */ mr r4, r28
/* 803480D8 00343D38 38 BD FF FF */ addi r5, r29, -1
/* 803480DC 00343D3C 7C 7F 1A 14 */ add r3, r31, r3
/* 803480E0 00343D40 38 C0 00 00 */ li r6, 0
/* 803480E4 00343D44 48 00 00 14 */ b lbl_803480F8
lbl_803480E8:
/* 803480E8 00343D48 98 04 00 00 */ stb r0, 0(r4)
/* 803480EC 00343D4C 38 C6 00 01 */ addi r6, r6, 1
/* 803480F0 00343D50 38 63 00 01 */ addi r3, r3, 1
/* 803480F4 00343D54 38 84 00 01 */ addi r4, r4, 1
lbl_803480F8:
/* 803480F8 00343D58 7C 06 28 00 */ cmpw r6, r5
/* 803480FC 00343D5C 40 80 00 18 */ bge lbl_80348114
/* 80348100 00343D60 88 03 00 00 */ lbz r0, 0(r3)
/* 80348104 00343D64 7C 00 07 75 */ extsb. r0, r0
/* 80348108 00343D68 41 82 00 0C */ beq lbl_80348114
/* 8034810C 00343D6C 7C 00 F0 00 */ cmpw r0, r30
/* 80348110 00343D70 40 82 FF D8 */ bne lbl_803480E8
lbl_80348114:
/* 80348114 00343D74 38 00 00 00 */ li r0, 0
/* 80348118 00343D78 38 60 00 01 */ li r3, 1
/* 8034811C 00343D7C 7C 1C 31 AE */ stbx r0, r28, r6
lbl_80348120:
/* 80348120 00343D80 39 61 00 20 */ addi r11, r1, 0x20
/* 80348124 00343D84 4B E7 F0 51 */ bl _restgpr_27
/* 80348128 00343D88 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034812C 00343D8C 7C 08 03 A6 */ mtlr r0
/* 80348130 00343D90 38 21 00 20 */ addi r1, r1, 0x20
/* 80348134 00343D94 4E 80 00 20 */ blr
.global gpiCheckSocketConnect
gpiCheckSocketConnect:
/* 80348138 00343D98 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034813C 00343D9C 7C 08 02 A6 */ mflr r0
/* 80348140 00343DA0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80348144 00343DA4 38 C1 00 08 */ addi r6, r1, 8
/* 80348148 00343DA8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034814C 00343DAC 3B E0 00 00 */ li r31, 0
/* 80348150 00343DB0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80348154 00343DB4 7C BE 2B 78 */ mr r30, r5
/* 80348158 00343DB8 38 A1 00 0C */ addi r5, r1, 0xc
/* 8034815C 00343DBC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80348160 00343DC0 7C 7D 1B 78 */ mr r29, r3
/* 80348164 00343DC4 7C 83 23 78 */ mr r3, r4
/* 80348168 00343DC8 38 80 00 00 */ li r4, 0
/* 8034816C 00343DCC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80348170 00343DD0 93 E1 00 08 */ stw r31, 8(r1)
/* 80348174 00343DD4 4B FE FE 3D */ bl GSISocketSelect
/* 80348178 00343DD8 2C 03 FF FF */ cmpwi r3, -1
/* 8034817C 00343DDC 40 82 00 40 */ bne lbl_803481BC
/* 80348180 00343DE0 83 DD 00 00 */ lwz r30, 0(r29)
/* 80348184 00343DE4 3C 80 80 45 */ lis r4, lbl_8044B598@ha
/* 80348188 00343DE8 38 84 B5 98 */ addi r4, r4, lbl_8044B598@l
/* 8034818C 00343DEC 38 A0 01 00 */ li r5, 0x100
/* 80348190 00343DF0 7F C3 F3 78 */ mr r3, r30
/* 80348194 00343DF4 4B E8 61 FD */ bl strncpy
/* 80348198 00343DF8 9B FE 00 FF */ stb r31, 0xff(r30)
/* 8034819C 00343DFC 38 00 00 05 */ li r0, 5
/* 803481A0 00343E00 7F A3 EB 78 */ mr r3, r29
/* 803481A4 00343E04 38 80 00 03 */ li r4, 3
/* 803481A8 00343E08 90 1E 04 34 */ stw r0, 0x434(r30)
/* 803481AC 00343E0C 38 A0 00 01 */ li r5, 1
/* 803481B0 00343E10 4B FF 7A B9 */ bl gpiCallErrorCallback
/* 803481B4 00343E14 38 60 00 03 */ li r3, 3
/* 803481B8 00343E18 48 00 00 50 */ b lbl_80348208
lbl_803481BC:
/* 803481BC 00343E1C 2C 03 00 00 */ cmpwi r3, 0
/* 803481C0 00343E20 40 81 00 3C */ ble lbl_803481FC
/* 803481C4 00343E24 80 01 00 08 */ lwz r0, 8(r1)
/* 803481C8 00343E28 2C 00 00 00 */ cmpwi r0, 0
/* 803481CC 00343E2C 41 82 00 14 */ beq lbl_803481E0
/* 803481D0 00343E30 38 00 00 04 */ li r0, 4
/* 803481D4 00343E34 38 60 00 00 */ li r3, 0
/* 803481D8 00343E38 90 1E 00 00 */ stw r0, 0(r30)
/* 803481DC 00343E3C 48 00 00 2C */ b lbl_80348208
lbl_803481E0:
/* 803481E0 00343E40 80 01 00 0C */ lwz r0, 0xc(r1)
/* 803481E4 00343E44 2C 00 00 00 */ cmpwi r0, 0
/* 803481E8 00343E48 41 82 00 14 */ beq lbl_803481FC
/* 803481EC 00343E4C 38 00 00 03 */ li r0, 3
/* 803481F0 00343E50 38 60 00 00 */ li r3, 0
/* 803481F4 00343E54 90 1E 00 00 */ stw r0, 0(r30)
/* 803481F8 00343E58 48 00 00 10 */ b lbl_80348208
lbl_803481FC:
/* 803481FC 00343E5C 38 00 00 00 */ li r0, 0
/* 80348200 00343E60 38 60 00 00 */ li r3, 0
/* 80348204 00343E64 90 1E 00 00 */ stw r0, 0(r30)
lbl_80348208:
/* 80348208 00343E68 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034820C 00343E6C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80348210 00343E70 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80348214 00343E74 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80348218 00343E78 7C 08 03 A6 */ mtlr r0
/* 8034821C 00343E7C 38 21 00 20 */ addi r1, r1, 0x20
/* 80348220 00343E80 4E 80 00 20 */ blr
.global gpiReadKeyAndValue
gpiReadKeyAndValue:
/* 80348224 00343E84 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80348228 00343E88 7C 08 02 A6 */ mflr r0
/* 8034822C 00343E8C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80348230 00343E90 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80348234 00343E94 7C 7F 1B 78 */ mr r31, r3
/* 80348238 00343E98 93 C1 00 08 */ stw r30, 8(r1)
/* 8034823C 00343E9C 80 05 00 00 */ lwz r0, 0(r5)
/* 80348240 00343EA0 7D 24 02 14 */ add r9, r4, r0
/* 80348244 00343EA4 7C 04 00 AE */ lbzx r0, r4, r0
/* 80348248 00343EA8 7D 28 4B 78 */ mr r8, r9
/* 8034824C 00343EAC 2C 00 00 5C */ cmpwi r0, 0x5c
/* 80348250 00343EB0 39 29 00 01 */ addi r9, r9, 1
/* 80348254 00343EB4 41 82 00 44 */ beq lbl_80348298
/* 80348258 00343EB8 83 C3 00 00 */ lwz r30, 0(r3)
/* 8034825C 00343EBC 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
/* 80348260 00343EC0 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
/* 80348264 00343EC4 38 A0 01 00 */ li r5, 0x100
/* 80348268 00343EC8 7F C3 F3 78 */ mr r3, r30
/* 8034826C 00343ECC 4B E8 61 25 */ bl strncpy
/* 80348270 00343ED0 38 60 00 00 */ li r3, 0
/* 80348274 00343ED4 38 00 00 01 */ li r0, 1
/* 80348278 00343ED8 98 7E 00 FF */ stb r3, 0xff(r30)
/* 8034827C 00343EDC 7F E3 FB 78 */ mr r3, r31
/* 80348280 00343EE0 38 80 00 03 */ li r4, 3
/* 80348284 00343EE4 38 A0 00 01 */ li r5, 1
/* 80348288 00343EE8 90 1E 04 34 */ stw r0, 0x434(r30)
/* 8034828C 00343EEC 4B FF 79 DD */ bl gpiCallErrorCallback
/* 80348290 00343EF0 38 60 00 03 */ li r3, 3
/* 80348294 00343EF4 48 00 01 5C */ b lbl_803483F0
lbl_80348298:
/* 80348298 00343EF8 38 80 00 00 */ li r4, 0
/* 8034829C 00343EFC 48 00 00 A0 */ b lbl_8034833C
lbl_803482A0:
/* 803482A0 00343F00 2C 00 00 00 */ cmpwi r0, 0
/* 803482A4 00343F04 40 82 00 44 */ bne lbl_803482E8
/* 803482A8 00343F08 83 C3 00 00 */ lwz r30, 0(r3)
/* 803482AC 00343F0C 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
/* 803482B0 00343F10 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
/* 803482B4 00343F14 38 A0 01 00 */ li r5, 0x100
/* 803482B8 00343F18 7F C3 F3 78 */ mr r3, r30
/* 803482BC 00343F1C 4B E8 60 D5 */ bl strncpy
/* 803482C0 00343F20 38 60 00 00 */ li r3, 0
/* 803482C4 00343F24 38 00 00 01 */ li r0, 1
/* 803482C8 00343F28 98 7E 00 FF */ stb r3, 0xff(r30)
/* 803482CC 00343F2C 7F E3 FB 78 */ mr r3, r31
/* 803482D0 00343F30 38 80 00 03 */ li r4, 3
/* 803482D4 00343F34 38 A0 00 01 */ li r5, 1
/* 803482D8 00343F38 90 1E 04 34 */ stw r0, 0x434(r30)
/* 803482DC 00343F3C 4B FF 79 8D */ bl gpiCallErrorCallback
/* 803482E0 00343F40 38 60 00 03 */ li r3, 3
/* 803482E4 00343F44 48 00 01 0C */ b lbl_803483F0
lbl_803482E8:
/* 803482E8 00343F48 2C 04 01 FF */ cmpwi r4, 0x1ff
/* 803482EC 00343F4C 40 82 00 44 */ bne lbl_80348330
/* 803482F0 00343F50 83 C3 00 00 */ lwz r30, 0(r3)
/* 803482F4 00343F54 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
/* 803482F8 00343F58 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
/* 803482FC 00343F5C 38 A0 01 00 */ li r5, 0x100
/* 80348300 00343F60 7F C3 F3 78 */ mr r3, r30
/* 80348304 00343F64 4B E8 60 8D */ bl strncpy
/* 80348308 00343F68 38 60 00 00 */ li r3, 0
/* 8034830C 00343F6C 38 00 00 01 */ li r0, 1
/* 80348310 00343F70 98 7E 00 FF */ stb r3, 0xff(r30)
/* 80348314 00343F74 7F E3 FB 78 */ mr r3, r31
/* 80348318 00343F78 38 80 00 03 */ li r4, 3
/* 8034831C 00343F7C 38 A0 00 01 */ li r5, 1
/* 80348320 00343F80 90 1E 04 34 */ stw r0, 0x434(r30)
/* 80348324 00343F84 4B FF 79 45 */ bl gpiCallErrorCallback
/* 80348328 00343F88 38 60 00 03 */ li r3, 3
/* 8034832C 00343F8C 48 00 00 C4 */ b lbl_803483F0
lbl_80348330:
/* 80348330 00343F90 98 06 00 00 */ stb r0, 0(r6)
/* 80348334 00343F94 38 C6 00 01 */ addi r6, r6, 1
/* 80348338 00343F98 38 84 00 01 */ addi r4, r4, 1
lbl_8034833C:
/* 8034833C 00343F9C 88 09 00 00 */ lbz r0, 0(r9)
/* 80348340 00343FA0 39 29 00 01 */ addi r9, r9, 1
/* 80348344 00343FA4 7C 00 07 74 */ extsb r0, r0
/* 80348348 00343FA8 2C 00 00 5C */ cmpwi r0, 0x5c
/* 8034834C 00343FAC 40 82 FF 54 */ bne lbl_803482A0
/* 80348350 00343FB0 38 00 00 00 */ li r0, 0
/* 80348354 00343FB4 38 80 00 00 */ li r4, 0
/* 80348358 00343FB8 98 06 00 00 */ stb r0, 0(r6)
/* 8034835C 00343FBC 48 00 00 58 */ b lbl_803483B4
lbl_80348360:
/* 80348360 00343FC0 2C 04 01 FF */ cmpwi r4, 0x1ff
/* 80348364 00343FC4 40 82 00 44 */ bne lbl_803483A8
/* 80348368 00343FC8 83 C3 00 00 */ lwz r30, 0(r3)
/* 8034836C 00343FCC 3C 80 80 45 */ lis r4, lbl_8044B5D0@ha
/* 80348370 00343FD0 38 84 B5 D0 */ addi r4, r4, lbl_8044B5D0@l
/* 80348374 00343FD4 38 A0 01 00 */ li r5, 0x100
/* 80348378 00343FD8 7F C3 F3 78 */ mr r3, r30
/* 8034837C 00343FDC 4B E8 60 15 */ bl strncpy
/* 80348380 00343FE0 38 60 00 00 */ li r3, 0
/* 80348384 00343FE4 38 00 00 01 */ li r0, 1
/* 80348388 00343FE8 98 7E 00 FF */ stb r3, 0xff(r30)
/* 8034838C 00343FEC 7F E3 FB 78 */ mr r3, r31
/* 80348390 00343FF0 38 80 00 03 */ li r4, 3
/* 80348394 00343FF4 38 A0 00 01 */ li r5, 1
/* 80348398 00343FF8 90 1E 04 34 */ stw r0, 0x434(r30)
/* 8034839C 00343FFC 4B FF 78 CD */ bl gpiCallErrorCallback
/* 803483A0 00344000 38 60 00 03 */ li r3, 3
/* 803483A4 00344004 48 00 00 4C */ b lbl_803483F0
lbl_803483A8:
/* 803483A8 00344008 98 07 00 00 */ stb r0, 0(r7)
/* 803483AC 0034400C 38 E7 00 01 */ addi r7, r7, 1
/* 803483B0 00344010 38 84 00 01 */ addi r4, r4, 1
lbl_803483B4:
/* 803483B4 00344014 88 09 00 00 */ lbz r0, 0(r9)
/* 803483B8 00344018 39 29 00 01 */ addi r9, r9, 1
/* 803483BC 0034401C 7C 00 07 74 */ extsb r0, r0
/* 803483C0 00344020 2C 00 00 5C */ cmpwi r0, 0x5c
/* 803483C4 00344024 41 82 00 0C */ beq lbl_803483D0
/* 803483C8 00344028 2C 00 00 00 */ cmpwi r0, 0
/* 803483CC 0034402C 40 82 FF 94 */ bne lbl_80348360
lbl_803483D0:
/* 803483D0 00344030 38 60 00 00 */ li r3, 0
/* 803483D4 00344034 7C 08 48 50 */ subf r0, r8, r9
/* 803483D8 00344038 98 67 00 00 */ stb r3, 0(r7)
/* 803483DC 0034403C 38 60 00 00 */ li r3, 0
/* 803483E0 00344040 80 85 00 00 */ lwz r4, 0(r5)
/* 803483E4 00344044 7C 80 22 14 */ add r4, r0, r4
/* 803483E8 00344048 38 04 FF FF */ addi r0, r4, -1
/* 803483EC 0034404C 90 05 00 00 */ stw r0, 0(r5)
lbl_803483F0:
/* 803483F0 00344050 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803483F4 00344054 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803483F8 00344058 83 C1 00 08 */ lwz r30, 8(r1)
/* 803483FC 0034405C 7C 08 03 A6 */ mtlr r0
/* 80348400 00344060 38 21 00 10 */ addi r1, r1, 0x10
/* 80348404 00344064 4E 80 00 20 */ blr
.global gpiSetError
gpiSetError:
/* 80348408 00344068 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034840C 0034406C 7C 08 02 A6 */ mflr r0
/* 80348410 00344070 90 01 00 14 */ stw r0, 0x14(r1)
/* 80348414 00344074 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80348418 00344078 93 C1 00 08 */ stw r30, 8(r1)
/* 8034841C 0034407C 7C 9E 23 78 */ mr r30, r4
/* 80348420 00344080 7C A4 2B 78 */ mr r4, r5
/* 80348424 00344084 38 A0 01 00 */ li r5, 0x100
/* 80348428 00344088 83 E3 00 00 */ lwz r31, 0(r3)
/* 8034842C 0034408C 7F E3 FB 78 */ mr r3, r31
/* 80348430 00344090 4B E8 5F 61 */ bl strncpy
/* 80348434 00344094 38 00 00 00 */ li r0, 0
/* 80348438 00344098 98 1F 00 FF */ stb r0, 0xff(r31)
/* 8034843C 0034409C 93 DF 04 34 */ stw r30, 0x434(r31)
/* 80348440 003440A0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80348444 003440A4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80348448 003440A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034844C 003440AC 7C 08 03 A6 */ mtlr r0
/* 80348450 003440B0 38 21 00 10 */ addi r1, r1, 0x10
/* 80348454 003440B4 4E 80 00 20 */ blr
.global gpiSetErrorString
gpiSetErrorString:
/* 80348458 003440B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034845C 003440BC 7C 08 02 A6 */ mflr r0
/* 80348460 003440C0 38 A0 01 00 */ li r5, 0x100
/* 80348464 003440C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80348468 003440C8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034846C 003440CC 83 E3 00 00 */ lwz r31, 0(r3)
/* 80348470 003440D0 7F E3 FB 78 */ mr r3, r31
/* 80348474 003440D4 4B E8 5F 1D */ bl strncpy
/* 80348478 003440D8 38 00 00 00 */ li r0, 0
/* 8034847C 003440DC 98 1F 00 FF */ stb r0, 0xff(r31)
/* 80348480 003440E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80348484 003440E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80348488 003440E8 7C 08 03 A6 */ mtlr r0
/* 8034848C 003440EC 38 21 00 10 */ addi r1, r1, 0x10
/* 80348490 003440F0 4E 80 00 20 */ blr
.global gpiEncodeString
gpiEncodeString:
/* 80348494 003440F4 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80348498 003440F8 7C 08 02 A6 */ mflr r0
/* 8034849C 003440FC 90 01 00 44 */ stw r0, 0x44(r1)
/* 803484A0 00344100 39 61 00 40 */ addi r11, r1, 0x40
/* 803484A4 00344104 4B E7 EC 85 */ bl _savegpr_27
/* 803484A8 00344108 7C 7B 1B 78 */ mr r27, r3
/* 803484AC 0034410C 7C 9C 23 78 */ mr r28, r4
/* 803484B0 00344110 4B E7 E6 B5 */ bl strlen
/* 803484B4 00344114 3C 80 79 70 */ lis r4, 0x79707367@ha
/* 803484B8 00344118 7C 7D 1B 78 */ mr r29, r3
/* 803484BC 0034411C 38 64 73 67 */ addi r3, r4, 0x79707367@l
/* 803484C0 00344120 4B FF 0B A1 */ bl Util_RandSeed
/* 803484C4 00344124 3B E1 00 08 */ addi r31, r1, 8
/* 803484C8 00344128 3B C0 00 00 */ li r30, 0
/* 803484CC 0034412C 48 00 00 2C */ b lbl_803484F8
lbl_803484D0:
/* 803484D0 00344130 38 60 00 00 */ li r3, 0
/* 803484D4 00344134 38 80 00 FF */ li r4, 0xff
/* 803484D8 00344138 4B FF 0B A1 */ bl Util_RandInt
/* 803484DC 0034413C 88 1B 00 00 */ lbz r0, 0(r27)
/* 803484E0 00344140 7C 63 07 74 */ extsb r3, r3
/* 803484E4 00344144 3B DE 00 01 */ addi r30, r30, 1
/* 803484E8 00344148 3B 7B 00 01 */ addi r27, r27, 1
/* 803484EC 0034414C 7C 60 02 78 */ xor r0, r3, r0
/* 803484F0 00344150 98 1F 00 00 */ stb r0, 0(r31)
/* 803484F4 00344154 3B FF 00 01 */ addi r31, r31, 1
lbl_803484F8:
/* 803484F8 00344158 7C 1E E8 40 */ cmplw r30, r29
/* 803484FC 0034415C 41 80 FF D4 */ blt lbl_803484D0
/* 80348500 00344160 38 61 00 08 */ addi r3, r1, 8
/* 80348504 00344164 38 00 00 00 */ li r0, 0
/* 80348508 00344168 7C 03 F1 AE */ stbx r0, r3, r30
/* 8034850C 0034416C 7F 84 E3 78 */ mr r4, r28
/* 80348510 00344170 7F A5 EB 78 */ mr r5, r29
/* 80348514 00344174 38 C0 00 01 */ li r6, 1
/* 80348518 00344178 4B FF 0B D5 */ bl B64Encode
/* 8034851C 0034417C 39 61 00 40 */ addi r11, r1, 0x40
/* 80348520 00344180 4B E7 EC 55 */ bl _restgpr_27
/* 80348524 00344184 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80348528 00344188 7C 08 03 A6 */ mtlr r0
/* 8034852C 0034418C 38 21 00 40 */ addi r1, r1, 0x40
/* 80348530 00344190 4E 80 00 20 */ blr
|