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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global gpiFailedOpCallback
gpiFailedOpCallback:
/* 80343B64 0033F7C4 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80343B68 0033F7C8 7C 08 02 A6 */ mflr r0
/* 80343B6C 0033F7CC 80 A4 00 0C */ lwz r5, 0xc(r4)
/* 80343B70 0033F7D0 90 01 00 54 */ stw r0, 0x54(r1)
/* 80343B74 0033F7D4 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80343B78 0033F7D8 2C 05 00 00 */ cmpwi r5, 0
/* 80343B7C 0033F7DC 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 80343B80 0033F7E0 7C 9F 23 78 */ mr r31, r4
/* 80343B84 0033F7E4 93 C1 00 48 */ stw r30, 0x48(r1)
/* 80343B88 0033F7E8 7C 7E 1B 78 */ mr r30, r3
/* 80343B8C 0033F7EC 93 A1 00 44 */ stw r29, 0x44(r1)
/* 80343B90 0033F7F0 93 81 00 40 */ stw r28, 0x40(r1)
/* 80343B94 0033F7F4 90 A1 00 38 */ stw r5, 0x38(r1)
/* 80343B98 0033F7F8 83 A3 00 00 */ lwz r29, 0(r3)
/* 80343B9C 0033F7FC 90 01 00 3C */ stw r0, 0x3c(r1)
/* 80343BA0 0033F800 41 82 03 18 */ beq lbl_80343EB8
/* 80343BA4 0033F804 80 04 00 00 */ lwz r0, 0(r4)
/* 80343BA8 0033F808 2C 00 00 03 */ cmpwi r0, 3
/* 80343BAC 0033F80C 41 82 02 1C */ beq lbl_80343DC8
/* 80343BB0 0033F810 40 80 00 1C */ bge lbl_80343BCC
/* 80343BB4 0033F814 2C 00 00 01 */ cmpwi r0, 1
/* 80343BB8 0033F818 41 82 00 B4 */ beq lbl_80343C6C
/* 80343BBC 0033F81C 40 80 01 98 */ bge lbl_80343D54
/* 80343BC0 0033F820 2C 00 00 00 */ cmpwi r0, 0
/* 80343BC4 0033F824 40 80 00 18 */ bge lbl_80343BDC
/* 80343BC8 0033F828 48 00 02 F0 */ b lbl_80343EB8
lbl_80343BCC:
/* 80343BCC 0033F82C 2C 00 00 05 */ cmpwi r0, 5
/* 80343BD0 0033F830 41 82 01 10 */ beq lbl_80343CE0
/* 80343BD4 0033F834 40 80 02 E4 */ bge lbl_80343EB8
/* 80343BD8 0033F838 48 00 02 6C */ b lbl_80343E44
lbl_80343BDC:
/* 80343BDC 0033F83C 38 60 00 20 */ li r3, 0x20
/* 80343BE0 0033F840 4B FF 57 35 */ bl gsimalloc
/* 80343BE4 0033F844 2C 03 00 00 */ cmpwi r3, 0
/* 80343BE8 0033F848 7C 7C 1B 78 */ mr r28, r3
/* 80343BEC 0033F84C 40 82 00 1C */ bne lbl_80343C08
/* 80343BF0 0033F850 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
/* 80343BF4 0033F854 7F C3 F3 78 */ mr r3, r30
/* 80343BF8 0033F858 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
/* 80343BFC 0033F85C 48 00 48 5D */ bl gpiSetErrorString
/* 80343C00 0033F860 38 60 00 01 */ li r3, 1
/* 80343C04 0033F864 48 00 02 B8 */ b lbl_80343EBC
lbl_80343C08:
/* 80343C08 0033F868 38 80 00 00 */ li r4, 0
/* 80343C0C 0033F86C 38 A0 00 20 */ li r5, 0x20
/* 80343C10 0033F870 4B CC 04 F5 */ bl memset
/* 80343C14 0033F874 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80343C18 0033F878 90 1C 00 00 */ stw r0, 0(r28)
/* 80343C1C 0033F87C 80 1D 04 34 */ lwz r0, 0x434(r29)
/* 80343C20 0033F880 2C 00 02 01 */ cmpwi r0, 0x201
/* 80343C24 0033F884 40 82 00 14 */ bne lbl_80343C38
/* 80343C28 0033F888 80 7D 01 A0 */ lwz r3, 0x1a0(r29)
/* 80343C2C 0033F88C 38 00 00 00 */ li r0, 0
/* 80343C30 0033F890 90 7C 00 04 */ stw r3, 4(r28)
/* 80343C34 0033F894 90 1D 01 A0 */ stw r0, 0x1a0(r29)
lbl_80343C38:
/* 80343C38 0033F898 80 81 00 38 */ lwz r4, 0x38(r1)
/* 80343C3C 0033F89C 7F C3 F3 78 */ mr r3, r30
/* 80343C40 0033F8A0 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80343C44 0033F8A4 7F 85 E3 78 */ mr r5, r28
/* 80343C48 0033F8A8 90 81 00 30 */ stw r4, 0x30(r1)
/* 80343C4C 0033F8AC 7F E6 FB 78 */ mr r6, r31
/* 80343C50 0033F8B0 38 81 00 30 */ addi r4, r1, 0x30
/* 80343C54 0033F8B4 38 E0 00 00 */ li r7, 0
/* 80343C58 0033F8B8 90 01 00 34 */ stw r0, 0x34(r1)
/* 80343C5C 0033F8BC 4B FF C0 CD */ bl gpiAddCallback
/* 80343C60 0033F8C0 2C 03 00 00 */ cmpwi r3, 0
/* 80343C64 0033F8C4 41 82 02 54 */ beq lbl_80343EB8
/* 80343C68 0033F8C8 48 00 02 54 */ b lbl_80343EBC
lbl_80343C6C:
/* 80343C6C 0033F8CC 38 60 00 08 */ li r3, 8
/* 80343C70 0033F8D0 4B FF 56 A5 */ bl gsimalloc
/* 80343C74 0033F8D4 2C 03 00 00 */ cmpwi r3, 0
/* 80343C78 0033F8D8 7C 7C 1B 78 */ mr r28, r3
/* 80343C7C 0033F8DC 40 82 00 1C */ bne lbl_80343C98
/* 80343C80 0033F8E0 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
/* 80343C84 0033F8E4 7F C3 F3 78 */ mr r3, r30
/* 80343C88 0033F8E8 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
/* 80343C8C 0033F8EC 48 00 47 CD */ bl gpiSetErrorString
/* 80343C90 0033F8F0 38 60 00 01 */ li r3, 1
/* 80343C94 0033F8F4 48 00 02 28 */ b lbl_80343EBC
lbl_80343C98:
/* 80343C98 0033F8F8 38 80 00 00 */ li r4, 0
/* 80343C9C 0033F8FC 38 A0 00 08 */ li r5, 8
/* 80343CA0 0033F900 4B CC 04 65 */ bl memset
/* 80343CA4 0033F904 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80343CA8 0033F908 7F C3 F3 78 */ mr r3, r30
/* 80343CAC 0033F90C 80 E1 00 38 */ lwz r7, 0x38(r1)
/* 80343CB0 0033F910 7F 85 E3 78 */ mr r5, r28
/* 80343CB4 0033F914 90 1C 00 00 */ stw r0, 0(r28)
/* 80343CB8 0033F918 7F E6 FB 78 */ mr r6, r31
/* 80343CBC 0033F91C 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80343CC0 0033F920 38 81 00 28 */ addi r4, r1, 0x28
/* 80343CC4 0033F924 90 E1 00 28 */ stw r7, 0x28(r1)
/* 80343CC8 0033F928 38 E0 00 00 */ li r7, 0
/* 80343CCC 0033F92C 90 01 00 2C */ stw r0, 0x2c(r1)
/* 80343CD0 0033F930 4B FF C0 59 */ bl gpiAddCallback
/* 80343CD4 0033F934 2C 03 00 00 */ cmpwi r3, 0
/* 80343CD8 0033F938 41 82 01 E0 */ beq lbl_80343EB8
/* 80343CDC 0033F93C 48 00 01 E0 */ b lbl_80343EBC
lbl_80343CE0:
/* 80343CE0 0033F940 38 60 00 08 */ li r3, 8
/* 80343CE4 0033F944 4B FF 56 31 */ bl gsimalloc
/* 80343CE8 0033F948 2C 03 00 00 */ cmpwi r3, 0
/* 80343CEC 0033F94C 7C 7C 1B 78 */ mr r28, r3
/* 80343CF0 0033F950 40 82 00 1C */ bne lbl_80343D0C
/* 80343CF4 0033F954 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
/* 80343CF8 0033F958 7F C3 F3 78 */ mr r3, r30
/* 80343CFC 0033F95C 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
/* 80343D00 0033F960 48 00 47 59 */ bl gpiSetErrorString
/* 80343D04 0033F964 38 60 00 01 */ li r3, 1
/* 80343D08 0033F968 48 00 01 B4 */ b lbl_80343EBC
lbl_80343D0C:
/* 80343D0C 0033F96C 38 80 00 00 */ li r4, 0
/* 80343D10 0033F970 38 A0 00 08 */ li r5, 8
/* 80343D14 0033F974 4B CC 03 F1 */ bl memset
/* 80343D18 0033F978 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80343D1C 0033F97C 7F C3 F3 78 */ mr r3, r30
/* 80343D20 0033F980 80 E1 00 38 */ lwz r7, 0x38(r1)
/* 80343D24 0033F984 7F 85 E3 78 */ mr r5, r28
/* 80343D28 0033F988 90 1C 00 00 */ stw r0, 0(r28)
/* 80343D2C 0033F98C 7F E6 FB 78 */ mr r6, r31
/* 80343D30 0033F990 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80343D34 0033F994 38 81 00 20 */ addi r4, r1, 0x20
/* 80343D38 0033F998 90 E1 00 20 */ stw r7, 0x20(r1)
/* 80343D3C 0033F99C 38 E0 00 00 */ li r7, 0
/* 80343D40 0033F9A0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80343D44 0033F9A4 4B FF BF E5 */ bl gpiAddCallback
/* 80343D48 0033F9A8 2C 03 00 00 */ cmpwi r3, 0
/* 80343D4C 0033F9AC 41 82 01 6C */ beq lbl_80343EB8
/* 80343D50 0033F9B0 48 00 01 6C */ b lbl_80343EBC
lbl_80343D54:
/* 80343D54 0033F9B4 38 60 02 04 */ li r3, 0x204
/* 80343D58 0033F9B8 4B FF 55 BD */ bl gsimalloc
/* 80343D5C 0033F9BC 2C 03 00 00 */ cmpwi r3, 0
/* 80343D60 0033F9C0 7C 7C 1B 78 */ mr r28, r3
/* 80343D64 0033F9C4 40 82 00 1C */ bne lbl_80343D80
/* 80343D68 0033F9C8 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
/* 80343D6C 0033F9CC 7F C3 F3 78 */ mr r3, r30
/* 80343D70 0033F9D0 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
/* 80343D74 0033F9D4 48 00 46 E5 */ bl gpiSetErrorString
/* 80343D78 0033F9D8 38 60 00 01 */ li r3, 1
/* 80343D7C 0033F9DC 48 00 01 40 */ b lbl_80343EBC
lbl_80343D80:
/* 80343D80 0033F9E0 38 80 00 00 */ li r4, 0
/* 80343D84 0033F9E4 38 A0 02 04 */ li r5, 0x204
/* 80343D88 0033F9E8 4B CC 03 7D */ bl memset
/* 80343D8C 0033F9EC 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80343D90 0033F9F0 7F C3 F3 78 */ mr r3, r30
/* 80343D94 0033F9F4 80 E1 00 38 */ lwz r7, 0x38(r1)
/* 80343D98 0033F9F8 7F 85 E3 78 */ mr r5, r28
/* 80343D9C 0033F9FC 90 1C 00 00 */ stw r0, 0(r28)
/* 80343DA0 0033FA00 7F E6 FB 78 */ mr r6, r31
/* 80343DA4 0033FA04 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80343DA8 0033FA08 38 81 00 18 */ addi r4, r1, 0x18
/* 80343DAC 0033FA0C 90 E1 00 18 */ stw r7, 0x18(r1)
/* 80343DB0 0033FA10 38 E0 00 00 */ li r7, 0
/* 80343DB4 0033FA14 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80343DB8 0033FA18 4B FF BF 71 */ bl gpiAddCallback
/* 80343DBC 0033FA1C 2C 03 00 00 */ cmpwi r3, 0
/* 80343DC0 0033FA20 41 82 00 F8 */ beq lbl_80343EB8
/* 80343DC4 0033FA24 48 00 00 F8 */ b lbl_80343EBC
lbl_80343DC8:
/* 80343DC8 0033FA28 38 60 00 10 */ li r3, 0x10
/* 80343DCC 0033FA2C 4B FF 55 49 */ bl gsimalloc
/* 80343DD0 0033FA30 2C 03 00 00 */ cmpwi r3, 0
/* 80343DD4 0033FA34 7C 7C 1B 78 */ mr r28, r3
/* 80343DD8 0033FA38 40 82 00 1C */ bne lbl_80343DF4
/* 80343DDC 0033FA3C 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
/* 80343DE0 0033FA40 7F C3 F3 78 */ mr r3, r30
/* 80343DE4 0033FA44 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
/* 80343DE8 0033FA48 48 00 46 71 */ bl gpiSetErrorString
/* 80343DEC 0033FA4C 38 60 00 01 */ li r3, 1
/* 80343DF0 0033FA50 48 00 00 CC */ b lbl_80343EBC
lbl_80343DF4:
/* 80343DF4 0033FA54 38 80 00 00 */ li r4, 0
/* 80343DF8 0033FA58 38 A0 00 10 */ li r5, 0x10
/* 80343DFC 0033FA5C 4B CC 03 09 */ bl memset
/* 80343E00 0033FA60 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80343E04 0033FA64 38 80 00 00 */ li r4, 0
/* 80343E08 0033FA68 81 01 00 38 */ lwz r8, 0x38(r1)
/* 80343E0C 0033FA6C 7F C3 F3 78 */ mr r3, r30
/* 80343E10 0033FA70 90 1C 00 00 */ stw r0, 0(r28)
/* 80343E14 0033FA74 7F 85 E3 78 */ mr r5, r28
/* 80343E18 0033FA78 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80343E1C 0033FA7C 7F E6 FB 78 */ mr r6, r31
/* 80343E20 0033FA80 90 9C 00 0C */ stw r4, 0xc(r28)
/* 80343E24 0033FA84 38 81 00 10 */ addi r4, r1, 0x10
/* 80343E28 0033FA88 38 E0 00 00 */ li r7, 0
/* 80343E2C 0033FA8C 91 01 00 10 */ stw r8, 0x10(r1)
/* 80343E30 0033FA90 90 01 00 14 */ stw r0, 0x14(r1)
/* 80343E34 0033FA94 4B FF BE F5 */ bl gpiAddCallback
/* 80343E38 0033FA98 2C 03 00 00 */ cmpwi r3, 0
/* 80343E3C 0033FA9C 41 82 00 7C */ beq lbl_80343EB8
/* 80343E40 0033FAA0 48 00 00 7C */ b lbl_80343EBC
lbl_80343E44:
/* 80343E44 0033FAA4 38 60 00 04 */ li r3, 4
/* 80343E48 0033FAA8 4B FF 54 CD */ bl gsimalloc
/* 80343E4C 0033FAAC 2C 03 00 00 */ cmpwi r3, 0
/* 80343E50 0033FAB0 7C 7C 1B 78 */ mr r28, r3
/* 80343E54 0033FAB4 40 82 00 1C */ bne lbl_80343E70
/* 80343E58 0033FAB8 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
/* 80343E5C 0033FABC 7F C3 F3 78 */ mr r3, r30
/* 80343E60 0033FAC0 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
/* 80343E64 0033FAC4 48 00 45 F5 */ bl gpiSetErrorString
/* 80343E68 0033FAC8 38 60 00 01 */ li r3, 1
/* 80343E6C 0033FACC 48 00 00 50 */ b lbl_80343EBC
lbl_80343E70:
/* 80343E70 0033FAD0 38 80 00 00 */ li r4, 0
/* 80343E74 0033FAD4 38 A0 00 04 */ li r5, 4
/* 80343E78 0033FAD8 4B CC 02 8D */ bl memset
/* 80343E7C 0033FADC 80 1F 00 1C */ lwz r0, 0x1c(r31)
/* 80343E80 0033FAE0 7F C3 F3 78 */ mr r3, r30
/* 80343E84 0033FAE4 80 E1 00 38 */ lwz r7, 0x38(r1)
/* 80343E88 0033FAE8 7F 85 E3 78 */ mr r5, r28
/* 80343E8C 0033FAEC 90 1C 00 00 */ stw r0, 0(r28)
/* 80343E90 0033FAF0 7F E6 FB 78 */ mr r6, r31
/* 80343E94 0033FAF4 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80343E98 0033FAF8 38 81 00 08 */ addi r4, r1, 8
/* 80343E9C 0033FAFC 90 E1 00 08 */ stw r7, 8(r1)
/* 80343EA0 0033FB00 38 E0 00 00 */ li r7, 0
/* 80343EA4 0033FB04 90 01 00 0C */ stw r0, 0xc(r1)
/* 80343EA8 0033FB08 4B FF BE 81 */ bl gpiAddCallback
/* 80343EAC 0033FB0C 2C 03 00 00 */ cmpwi r3, 0
/* 80343EB0 0033FB10 41 82 00 08 */ beq lbl_80343EB8
/* 80343EB4 0033FB14 48 00 00 08 */ b lbl_80343EBC
lbl_80343EB8:
/* 80343EB8 0033FB18 38 60 00 00 */ li r3, 0
lbl_80343EBC:
/* 80343EBC 0033FB1C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80343EC0 0033FB20 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 80343EC4 0033FB24 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80343EC8 0033FB28 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 80343ECC 0033FB2C 83 81 00 40 */ lwz r28, 0x40(r1)
/* 80343ED0 0033FB30 7C 08 03 A6 */ mtlr r0
/* 80343ED4 0033FB34 38 21 00 50 */ addi r1, r1, 0x50
/* 80343ED8 0033FB38 4E 80 00 20 */ blr
.global gpiAddOperation
gpiAddOperation:
/* 80343EDC 0033FB3C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80343EE0 0033FB40 7C 08 02 A6 */ mflr r0
/* 80343EE4 0033FB44 90 01 00 34 */ stw r0, 0x34(r1)
/* 80343EE8 0033FB48 39 61 00 30 */ addi r11, r1, 0x30
/* 80343EEC 0033FB4C 4B E8 32 31 */ bl _savegpr_24
/* 80343EF0 0033FB50 83 E3 00 00 */ lwz r31, 0(r3)
/* 80343EF4 0033FB54 7C 78 1B 78 */ mr r24, r3
/* 80343EF8 0033FB58 7C 99 23 78 */ mr r25, r4
/* 80343EFC 0033FB5C 7C BA 2B 78 */ mr r26, r5
/* 80343F00 0033FB60 7C DB 33 78 */ mr r27, r6
/* 80343F04 0033FB64 7C FC 3B 78 */ mr r28, r7
/* 80343F08 0033FB68 7D 1D 43 78 */ mr r29, r8
/* 80343F0C 0033FB6C 7D 3E 4B 78 */ mr r30, r9
/* 80343F10 0033FB70 38 60 00 24 */ li r3, 0x24
/* 80343F14 0033FB74 4B FF 54 01 */ bl gsimalloc
/* 80343F18 0033FB78 2C 03 00 00 */ cmpwi r3, 0
/* 80343F1C 0033FB7C 40 82 00 1C */ bne lbl_80343F38
/* 80343F20 0033FB80 3C 80 80 45 */ lis r4, lbl_8044AF40@ha
/* 80343F24 0033FB84 7F 03 C3 78 */ mr r3, r24
/* 80343F28 0033FB88 38 84 AF 40 */ addi r4, r4, lbl_8044AF40@l
/* 80343F2C 0033FB8C 48 00 45 2D */ bl gpiSetErrorString
/* 80343F30 0033FB90 38 60 00 01 */ li r3, 1
/* 80343F34 0033FB94 48 00 00 70 */ b lbl_80343FA4
lbl_80343F38:
/* 80343F38 0033FB98 93 23 00 00 */ stw r25, 0(r3)
/* 80343F3C 0033FB9C 2C 19 00 00 */ cmpwi r25, 0
/* 80343F40 0033FBA0 38 00 00 00 */ li r0, 0
/* 80343F44 0033FBA4 93 43 00 04 */ stw r26, 4(r3)
/* 80343F48 0033FBA8 93 83 00 08 */ stw r28, 8(r3)
/* 80343F4C 0033FBAC 90 03 00 14 */ stw r0, 0x14(r3)
/* 80343F50 0033FBB0 40 82 00 10 */ bne lbl_80343F60
/* 80343F54 0033FBB4 38 00 00 01 */ li r0, 1
/* 80343F58 0033FBB8 90 03 00 18 */ stw r0, 0x18(r3)
/* 80343F5C 0033FBBC 48 00 00 24 */ b lbl_80343F80
lbl_80343F60:
/* 80343F60 0033FBC0 80 9F 02 28 */ lwz r4, 0x228(r31)
/* 80343F64 0033FBC4 38 04 00 01 */ addi r0, r4, 1
/* 80343F68 0033FBC8 90 83 00 18 */ stw r4, 0x18(r3)
/* 80343F6C 0033FBCC 2C 00 00 02 */ cmpwi r0, 2
/* 80343F70 0033FBD0 90 1F 02 28 */ stw r0, 0x228(r31)
/* 80343F74 0033FBD4 40 80 00 0C */ bge lbl_80343F80
/* 80343F78 0033FBD8 38 00 00 02 */ li r0, 2
/* 80343F7C 0033FBDC 90 1F 02 28 */ stw r0, 0x228(r31)
lbl_80343F80:
/* 80343F80 0033FBE0 38 00 00 00 */ li r0, 0
/* 80343F84 0033FBE4 90 03 00 1C */ stw r0, 0x1c(r3)
/* 80343F88 0033FBE8 93 A3 00 0C */ stw r29, 0xc(r3)
/* 80343F8C 0033FBEC 93 C3 00 10 */ stw r30, 0x10(r3)
/* 80343F90 0033FBF0 80 1F 04 40 */ lwz r0, 0x440(r31)
/* 80343F94 0033FBF4 90 03 00 20 */ stw r0, 0x20(r3)
/* 80343F98 0033FBF8 90 7F 04 40 */ stw r3, 0x440(r31)
/* 80343F9C 0033FBFC 90 7B 00 00 */ stw r3, 0(r27)
/* 80343FA0 0033FC00 38 60 00 00 */ li r3, 0
lbl_80343FA4:
/* 80343FA4 0033FC04 39 61 00 30 */ addi r11, r1, 0x30
/* 80343FA8 0033FC08 4B E8 31 C1 */ bl _restgpr_24
/* 80343FAC 0033FC0C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80343FB0 0033FC10 7C 08 03 A6 */ mtlr r0
/* 80343FB4 0033FC14 38 21 00 30 */ addi r1, r1, 0x30
/* 80343FB8 0033FC18 4E 80 00 20 */ blr
lbl_80343FBC:
/* 80343FBC 0033FC1C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80343FC0 0033FC20 7C 08 02 A6 */ mflr r0
/* 80343FC4 0033FC24 90 01 00 24 */ stw r0, 0x24(r1)
/* 80343FC8 0033FC28 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80343FCC 0033FC2C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80343FD0 0033FC30 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80343FD4 0033FC34 7C 9D 23 78 */ mr r29, r4
/* 80343FD8 0033FC38 80 04 00 00 */ lwz r0, 0(r4)
/* 80343FDC 0033FC3C 80 A3 00 00 */ lwz r5, 0(r3)
/* 80343FE0 0033FC40 2C 00 00 03 */ cmpwi r0, 3
/* 80343FE4 0033FC44 40 82 00 44 */ bne lbl_80344028
/* 80343FE8 0033FC48 80 65 02 2C */ lwz r3, 0x22c(r5)
/* 80343FEC 0033FC4C 83 C4 00 04 */ lwz r30, 4(r4)
/* 80343FF0 0033FC50 38 80 00 02 */ li r4, 2
/* 80343FF4 0033FC54 38 03 FF FF */ addi r0, r3, -1
/* 80343FF8 0033FC58 90 05 02 2C */ stw r0, 0x22c(r5)
/* 80343FFC 0033FC5C 80 7E 00 04 */ lwz r3, 4(r30)
/* 80344000 0033FC60 4B FF 3C 31 */ bl shutdown
/* 80344004 0033FC64 80 7E 00 04 */ lwz r3, 4(r30)
/* 80344008 0033FC68 4B FF 3B F5 */ bl closesocket
/* 8034400C 0033FC6C 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 80344010 0033FC70 4B FF 53 29 */ bl gsifree
/* 80344014 0033FC74 3B E0 00 00 */ li r31, 0
/* 80344018 0033FC78 93 FE 00 18 */ stw r31, 0x18(r30)
/* 8034401C 0033FC7C 80 7E 00 08 */ lwz r3, 8(r30)
/* 80344020 0033FC80 4B FF 53 19 */ bl gsifree
/* 80344024 0033FC84 93 FE 00 08 */ stw r31, 8(r30)
lbl_80344028:
/* 80344028 0033FC88 80 7D 00 04 */ lwz r3, 4(r29)
/* 8034402C 0033FC8C 4B FF 53 0D */ bl gsifree
/* 80344030 0033FC90 38 00 00 00 */ li r0, 0
/* 80344034 0033FC94 7F A3 EB 78 */ mr r3, r29
/* 80344038 0033FC98 90 1D 00 04 */ stw r0, 4(r29)
/* 8034403C 0033FC9C 4B FF 52 FD */ bl gsifree
/* 80344040 0033FCA0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80344044 0033FCA4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80344048 0033FCA8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8034404C 0033FCAC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80344050 0033FCB0 7C 08 03 A6 */ mtlr r0
/* 80344054 0033FCB4 38 21 00 20 */ addi r1, r1, 0x20
/* 80344058 0033FCB8 4E 80 00 20 */ blr
.global gpiRemoveOperation
gpiRemoveOperation:
/* 8034405C 0033FCBC 80 A3 00 00 */ lwz r5, 0(r3)
/* 80344060 0033FCC0 38 E0 00 00 */ li r7, 0
/* 80344064 0033FCC4 80 C5 04 40 */ lwz r6, 0x440(r5)
/* 80344068 0033FCC8 48 00 00 34 */ b lbl_8034409C
lbl_8034406C:
/* 8034406C 0033FCCC 7C 06 20 40 */ cmplw r6, r4
/* 80344070 0033FCD0 40 82 00 24 */ bne lbl_80344094
/* 80344074 0033FCD4 2C 07 00 00 */ cmpwi r7, 0
/* 80344078 0033FCD8 40 82 00 10 */ bne lbl_80344088
/* 8034407C 0033FCDC 80 06 00 20 */ lwz r0, 0x20(r6)
/* 80344080 0033FCE0 90 05 04 40 */ stw r0, 0x440(r5)
/* 80344084 0033FCE4 48 00 00 0C */ b lbl_80344090
lbl_80344088:
/* 80344088 0033FCE8 80 04 00 20 */ lwz r0, 0x20(r4)
/* 8034408C 0033FCEC 90 07 00 20 */ stw r0, 0x20(r7)
lbl_80344090:
/* 80344090 0033FCF0 4B FF FF 2C */ b lbl_80343FBC
lbl_80344094:
/* 80344094 0033FCF4 7C C7 33 78 */ mr r7, r6
/* 80344098 0033FCF8 80 C6 00 20 */ lwz r6, 0x20(r6)
lbl_8034409C:
/* 8034409C 0033FCFC 2C 06 00 00 */ cmpwi r6, 0
/* 803440A0 0033FD00 40 82 FF CC */ bne lbl_8034406C
/* 803440A4 0033FD04 4E 80 00 20 */ blr
.global gpiFindOperationByID
gpiFindOperationByID:
/* 803440A8 0033FD08 80 63 00 00 */ lwz r3, 0(r3)
/* 803440AC 0033FD0C 80 63 04 40 */ lwz r3, 0x440(r3)
/* 803440B0 0033FD10 48 00 00 28 */ b lbl_803440D8
lbl_803440B4:
/* 803440B4 0033FD14 80 03 00 18 */ lwz r0, 0x18(r3)
/* 803440B8 0033FD18 7C 00 28 00 */ cmpw r0, r5
/* 803440BC 0033FD1C 40 82 00 18 */ bne lbl_803440D4
/* 803440C0 0033FD20 2C 04 00 00 */ cmpwi r4, 0
/* 803440C4 0033FD24 41 82 00 08 */ beq lbl_803440CC
/* 803440C8 0033FD28 90 64 00 00 */ stw r3, 0(r4)
lbl_803440CC:
/* 803440CC 0033FD2C 38 60 00 01 */ li r3, 1
/* 803440D0 0033FD30 4E 80 00 20 */ blr
lbl_803440D4:
/* 803440D4 0033FD34 80 63 00 20 */ lwz r3, 0x20(r3)
lbl_803440D8:
/* 803440D8 0033FD38 2C 03 00 00 */ cmpwi r3, 0
/* 803440DC 0033FD3C 40 82 FF D8 */ bne lbl_803440B4
/* 803440E0 0033FD40 2C 04 00 00 */ cmpwi r4, 0
/* 803440E4 0033FD44 41 82 00 0C */ beq lbl_803440F0
/* 803440E8 0033FD48 38 00 00 00 */ li r0, 0
/* 803440EC 0033FD4C 90 04 00 00 */ stw r0, 0(r4)
lbl_803440F0:
/* 803440F0 0033FD50 38 60 00 00 */ li r3, 0
/* 803440F4 0033FD54 4E 80 00 20 */ blr
.global gpiOperationsAreBlocking
gpiOperationsAreBlocking:
/* 803440F8 0033FD58 80 63 00 00 */ lwz r3, 0(r3)
/* 803440FC 0033FD5C 80 63 04 40 */ lwz r3, 0x440(r3)
/* 80344100 0033FD60 48 00 00 28 */ b lbl_80344128
lbl_80344104:
/* 80344104 0033FD64 80 03 00 08 */ lwz r0, 8(r3)
/* 80344108 0033FD68 2C 00 00 00 */ cmpwi r0, 0
/* 8034410C 0033FD6C 41 82 00 18 */ beq lbl_80344124
/* 80344110 0033FD70 80 03 00 00 */ lwz r0, 0(r3)
/* 80344114 0033FD74 2C 00 00 03 */ cmpwi r0, 3
/* 80344118 0033FD78 41 82 00 0C */ beq lbl_80344124
/* 8034411C 0033FD7C 38 60 00 01 */ li r3, 1
/* 80344120 0033FD80 4E 80 00 20 */ blr
lbl_80344124:
/* 80344124 0033FD84 80 63 00 20 */ lwz r3, 0x20(r3)
lbl_80344128:
/* 80344128 0033FD88 2C 03 00 00 */ cmpwi r3, 0
/* 8034412C 0033FD8C 40 82 FF D8 */ bne lbl_80344104
/* 80344130 0033FD90 38 60 00 00 */ li r3, 0
/* 80344134 0033FD94 4E 80 00 20 */ blr
.global gpiProcessOperation
gpiProcessOperation:
/* 80344138 0033FD98 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034413C 0033FD9C 7C 08 02 A6 */ mflr r0
/* 80344140 0033FDA0 38 C0 00 00 */ li r6, 0
/* 80344144 0033FDA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80344148 0033FDA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034414C 0033FDAC 7C 9F 23 78 */ mr r31, r4
/* 80344150 0033FDB0 80 04 00 00 */ lwz r0, 0(r4)
/* 80344154 0033FDB4 2C 00 00 03 */ cmpwi r0, 3
/* 80344158 0033FDB8 41 82 00 68 */ beq lbl_803441C0
/* 8034415C 0033FDBC 40 80 00 1C */ bge lbl_80344178
/* 80344160 0033FDC0 2C 00 00 01 */ cmpwi r0, 1
/* 80344164 0033FDC4 41 82 00 30 */ beq lbl_80344194
/* 80344168 0033FDC8 40 80 00 44 */ bge lbl_803441AC
/* 8034416C 0033FDCC 2C 00 00 00 */ cmpwi r0, 0
/* 80344170 0033FDD0 40 80 00 18 */ bge lbl_80344188
/* 80344174 0033FDD4 48 00 00 4C */ b lbl_803441C0
lbl_80344178:
/* 80344178 0033FDD8 2C 00 00 05 */ cmpwi r0, 5
/* 8034417C 0033FDDC 41 82 00 24 */ beq lbl_803441A0
/* 80344180 0033FDE0 40 80 00 40 */ bge lbl_803441C0
/* 80344184 0033FDE4 48 00 00 34 */ b lbl_803441B8
lbl_80344188:
/* 80344188 0033FDE8 4B FF CB 7D */ bl gpiProcessConnect
/* 8034418C 0033FDEC 7C 66 1B 78 */ mr r6, r3
/* 80344190 0033FDF0 48 00 00 30 */ b lbl_803441C0
lbl_80344194:
/* 80344194 0033FDF4 48 00 14 E1 */ bl gpiProcessNewProfile
/* 80344198 0033FDF8 7C 66 1B 78 */ mr r6, r3
/* 8034419C 0033FDFC 48 00 00 24 */ b lbl_803441C0
lbl_803441A0:
/* 803441A0 0033FE00 48 00 17 85 */ bl gpiProcessDeleteProfle
/* 803441A4 0033FE04 7C 66 1B 78 */ mr r6, r3
/* 803441A8 0033FE08 48 00 00 18 */ b lbl_803441C0
lbl_803441AC:
/* 803441AC 0033FE0C 4B FF D8 C1 */ bl gpiProcessGetInfo
/* 803441B0 0033FE10 7C 66 1B 78 */ mr r6, r3
/* 803441B4 0033FE14 48 00 00 0C */ b lbl_803441C0
lbl_803441B8:
/* 803441B8 0033FE18 48 00 3C 6D */ bl gpiProcessRegisterUniqueNick
/* 803441BC 0033FE1C 7C 66 1B 78 */ mr r6, r3
lbl_803441C0:
/* 803441C0 0033FE20 2C 06 00 00 */ cmpwi r6, 0
/* 803441C4 0033FE24 41 82 00 08 */ beq lbl_803441CC
/* 803441C8 0033FE28 90 DF 00 1C */ stw r6, 0x1c(r31)
lbl_803441CC:
/* 803441CC 0033FE2C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803441D0 0033FE30 7C C3 33 78 */ mr r3, r6
/* 803441D4 0033FE34 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803441D8 0033FE38 7C 08 03 A6 */ mtlr r0
/* 803441DC 0033FE3C 38 21 00 10 */ addi r1, r1, 0x10
/* 803441E0 0033FE40 4E 80 00 20 */ blr
|