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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global gpiResetProfile
gpiResetProfile:
/* 8033DD6C 003399CC 38 00 00 00 */ li r0, 0
/* 8033DD70 003399D0 38 60 00 01 */ li r3, 1
/* 8033DD74 003399D4 90 04 00 08 */ stw r0, 8(r4)
/* 8033DD78 003399D8 90 04 00 10 */ stw r0, 0x10(r4)
/* 8033DD7C 003399DC 90 04 00 14 */ stw r0, 0x14(r4)
/* 8033DD80 003399E0 90 04 00 18 */ stw r0, 0x18(r4)
/* 8033DD84 003399E4 4E 80 00 20 */ blr
.global gpiReset
gpiReset:
/* 8033DD88 003399E8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8033DD8C 003399EC 7C 08 02 A6 */ mflr r0
/* 8033DD90 003399F0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8033DD94 003399F4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8033DD98 003399F8 3B E0 FF FF */ li r31, -1
/* 8033DD9C 003399FC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8033DDA0 00339A00 3B C0 00 00 */ li r30, 0
/* 8033DDA4 00339A04 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8033DDA8 00339A08 93 81 00 10 */ stw r28, 0x10(r1)
/* 8033DDAC 00339A0C 7C 7C 1B 78 */ mr r28, r3
/* 8033DDB0 00339A10 83 A3 00 00 */ lwz r29, 0(r3)
/* 8033DDB4 00339A14 9B DD 01 10 */ stb r30, 0x110(r29)
/* 8033DDB8 00339A18 9B DD 01 2F */ stb r30, 0x12f(r29)
/* 8033DDBC 00339A1C 9B DD 01 44 */ stb r30, 0x144(r29)
/* 8033DDC0 00339A20 93 FD 01 F0 */ stw r31, 0x1f0(r29)
/* 8033DDC4 00339A24 93 DD 01 F4 */ stw r30, 0x1f4(r29)
/* 8033DDC8 00339A28 93 DD 02 00 */ stw r30, 0x200(r29)
/* 8033DDCC 00339A2C 93 DD 02 04 */ stw r30, 0x204(r29)
/* 8033DDD0 00339A30 93 DD 01 FC */ stw r30, 0x1fc(r29)
/* 8033DDD4 00339A34 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
/* 8033DDD8 00339A38 4B FF B5 61 */ bl gsifree
/* 8033DDDC 00339A3C 93 DD 01 F8 */ stw r30, 0x1f8(r29)
/* 8033DDE0 00339A40 93 DD 02 0C */ stw r30, 0x20c(r29)
/* 8033DDE4 00339A44 80 7D 02 08 */ lwz r3, 0x208(r29)
/* 8033DDE8 00339A48 4B FF B5 51 */ bl gsifree
/* 8033DDEC 00339A4C 93 DD 02 08 */ stw r30, 0x208(r29)
/* 8033DDF0 00339A50 93 DD 02 18 */ stw r30, 0x218(r29)
/* 8033DDF4 00339A54 93 DD 02 1C */ stw r30, 0x21c(r29)
/* 8033DDF8 00339A58 93 DD 02 14 */ stw r30, 0x214(r29)
/* 8033DDFC 00339A5C 80 7D 02 10 */ lwz r3, 0x210(r29)
/* 8033DE00 00339A60 4B FF B5 39 */ bl gsifree
/* 8033DE04 00339A64 93 DD 02 10 */ stw r30, 0x210(r29)
/* 8033DE08 00339A68 93 DD 04 64 */ stw r30, 0x464(r29)
/* 8033DE0C 00339A6C 93 DD 04 68 */ stw r30, 0x468(r29)
/* 8033DE10 00339A70 93 DD 04 60 */ stw r30, 0x460(r29)
/* 8033DE14 00339A74 80 7D 04 5C */ lwz r3, 0x45c(r29)
/* 8033DE18 00339A78 4B FF B5 21 */ bl gsifree
/* 8033DE1C 00339A7C 93 DD 04 5C */ stw r30, 0x45c(r29)
/* 8033DE20 00339A80 93 DD 04 74 */ stw r30, 0x474(r29)
/* 8033DE24 00339A84 93 DD 04 78 */ stw r30, 0x478(r29)
/* 8033DE28 00339A88 93 DD 04 70 */ stw r30, 0x470(r29)
/* 8033DE2C 00339A8C 80 7D 04 6C */ lwz r3, 0x46c(r29)
/* 8033DE30 00339A90 4B FF B5 09 */ bl gsifree
/* 8033DE34 00339A94 93 DD 04 6C */ stw r30, 0x46c(r29)
/* 8033DE38 00339A98 38 00 00 02 */ li r0, 2
/* 8033DE3C 00339A9C 93 FD 02 20 */ stw r31, 0x220(r29)
/* 8033DE40 00339AA0 90 1D 02 28 */ stw r0, 0x228(r29)
/* 8033DE44 00339AA4 48 00 00 0C */ b lbl_8033DE50
lbl_8033DE48:
/* 8033DE48 00339AA8 7F 83 E3 78 */ mr r3, r28
/* 8033DE4C 00339AAC 48 00 62 11 */ bl gpiRemoveOperation
lbl_8033DE50:
/* 8033DE50 00339AB0 80 9D 04 40 */ lwz r4, 0x440(r29)
/* 8033DE54 00339AB4 2C 04 00 00 */ cmpwi r4, 0
/* 8033DE58 00339AB8 40 82 FF F0 */ bne lbl_8033DE48
/* 8033DE5C 00339ABC 3B E0 00 00 */ li r31, 0
/* 8033DE60 00339AC0 3C 80 80 34 */ lis r4, gpiResetProfile@ha
/* 8033DE64 00339AC4 93 FD 04 40 */ stw r31, 0x440(r29)
/* 8033DE68 00339AC8 7F 83 E3 78 */ mr r3, r28
/* 8033DE6C 00339ACC 38 84 DD 6C */ addi r4, r4, gpiResetProfile@l
/* 8033DE70 00339AD0 38 A0 00 00 */ li r5, 0
/* 8033DE74 00339AD4 93 FD 04 4C */ stw r31, 0x44c(r29)
/* 8033DE78 00339AD8 48 00 7D 79 */ bl gpiProfileMap
/* 8033DE7C 00339ADC 93 FD 01 9C */ stw r31, 0x19c(r29)
/* 8033DE80 00339AE0 38 00 FF FF */ li r0, -1
/* 8033DE84 00339AE4 38 60 00 00 */ li r3, 0
/* 8033DE88 00339AE8 93 FD 01 A0 */ stw r31, 0x1a0(r29)
/* 8033DE8C 00339AEC 93 FD 01 98 */ stw r31, 0x198(r29)
/* 8033DE90 00339AF0 93 FD 02 2C */ stw r31, 0x22c(r29)
/* 8033DE94 00339AF4 93 FD 04 38 */ stw r31, 0x438(r29)
/* 8033DE98 00339AF8 93 FD 04 50 */ stw r31, 0x450(r29)
/* 8033DE9C 00339AFC 90 1D 02 30 */ stw r0, 0x230(r29)
/* 8033DEA0 00339B00 9B FD 02 34 */ stb r31, 0x234(r29)
/* 8033DEA4 00339B04 9B FD 03 34 */ stb r31, 0x334(r29)
/* 8033DEA8 00339B08 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8033DEAC 00339B0C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8033DEB0 00339B10 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8033DEB4 00339B14 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8033DEB8 00339B18 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8033DEBC 00339B1C 7C 08 03 A6 */ mtlr r0
/* 8033DEC0 00339B20 38 21 00 20 */ addi r1, r1, 0x20
/* 8033DEC4 00339B24 4E 80 00 20 */ blr
.global gpiProcessConnectionManager
gpiProcessConnectionManager:
/* 8033DEC8 00339B28 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8033DECC 00339B2C 7C 08 02 A6 */ mflr r0
/* 8033DED0 00339B30 90 01 00 34 */ stw r0, 0x34(r1)
/* 8033DED4 00339B34 39 61 00 30 */ addi r11, r1, 0x30
/* 8033DED8 00339B38 4B E8 92 51 */ bl _savegpr_27
/* 8033DEDC 00339B3C 3B E0 00 00 */ li r31, 0
/* 8033DEE0 00339B40 3F C0 80 45 */ lis r30, lbl_8044A688@ha
/* 8033DEE4 00339B44 93 E1 00 08 */ stw r31, 8(r1)
/* 8033DEE8 00339B48 7C 7C 1B 78 */ mr r28, r3
/* 8033DEEC 00339B4C 3B DE A6 88 */ addi r30, r30, lbl_8044A688@l
/* 8033DEF0 00339B50 83 A3 00 00 */ lwz r29, 0(r3)
lbl_8033DEF4:
/* 8033DEF4 00339B54 7F 83 E3 78 */ mr r3, r28
/* 8033DEF8 00339B58 38 9D 02 10 */ addi r4, r29, 0x210
/* 8033DEFC 00339B5C 48 00 44 31 */ bl gpiAddLocalInfo
/* 8033DF00 00339B60 80 9D 01 F0 */ lwz r4, 0x1f0(r29)
/* 8033DF04 00339B64 7F 83 E3 78 */ mr r3, r28
/* 8033DF08 00339B68 38 BD 02 10 */ addi r5, r29, 0x210
/* 8033DF0C 00339B6C 38 C1 00 08 */ addi r6, r1, 8
/* 8033DF10 00339B70 38 E0 00 01 */ li r7, 1
/* 8033DF14 00339B74 39 0D 8F 50 */ addi r8, r13, lbl_8063E210-_SDA_BASE_
/* 8033DF18 00339B78 48 00 1A 7D */ bl gpiSendFromBuffer
/* 8033DF1C 00339B7C 2C 03 00 00 */ cmpwi r3, 0
/* 8033DF20 00339B80 41 82 00 08 */ beq lbl_8033DF28
/* 8033DF24 00339B84 48 00 02 70 */ b lbl_8033E194
lbl_8033DF28:
/* 8033DF28 00339B88 80 9D 01 F0 */ lwz r4, 0x1f0(r29)
/* 8033DF2C 00339B8C 7F 83 E3 78 */ mr r3, r28
/* 8033DF30 00339B90 38 BD 01 F8 */ addi r5, r29, 0x1f8
/* 8033DF34 00339B94 38 C1 00 0C */ addi r6, r1, 0xc
/* 8033DF38 00339B98 38 E1 00 08 */ addi r7, r1, 8
/* 8033DF3C 00339B9C 39 0D 8F 50 */ addi r8, r13, lbl_8063E210-_SDA_BASE_
/* 8033DF40 00339BA0 48 00 19 15 */ bl gpiRecvToBuffer
/* 8033DF44 00339BA4 2C 03 00 00 */ cmpwi r3, 0
/* 8033DF48 00339BA8 41 82 01 C4 */ beq lbl_8033E10C
/* 8033DF4C 00339BAC 2C 03 00 03 */ cmpwi r3, 3
/* 8033DF50 00339BB0 40 82 02 44 */ bne lbl_8033E194
/* 8033DF54 00339BB4 7F 83 E3 78 */ mr r3, r28
/* 8033DF58 00339BB8 38 BE 00 00 */ addi r5, r30, 0
/* 8033DF5C 00339BBC 38 80 00 05 */ li r4, 5
/* 8033DF60 00339BC0 48 00 A4 A9 */ bl gpiSetError
/* 8033DF64 00339BC4 7F 83 E3 78 */ mr r3, r28
/* 8033DF68 00339BC8 38 80 00 03 */ li r4, 3
/* 8033DF6C 00339BCC 38 A0 00 01 */ li r5, 1
/* 8033DF70 00339BD0 48 00 1C F9 */ bl gpiCallErrorCallback
/* 8033DF74 00339BD4 38 60 00 03 */ li r3, 3
/* 8033DF78 00339BD8 48 00 02 1C */ b lbl_8033E194
/* 8033DF7C 00339BDC 48 00 02 18 */ b lbl_8033E194
/* 8033DF80 00339BE0 48 00 01 8C */ b lbl_8033E10C
lbl_8033DF84:
/* 8033DF84 00339BE4 9B E3 00 00 */ stb r31, 0(r3)
/* 8033DF88 00339BE8 80 1D 01 F8 */ lwz r0, 0x1f8(r29)
/* 8033DF8C 00339BEC 7C 80 18 50 */ subf r4, r0, r3
/* 8033DF90 00339BF0 90 81 00 0C */ stw r4, 0xc(r1)
/* 8033DF94 00339BF4 80 1D 02 0C */ lwz r0, 0x20c(r29)
/* 8033DF98 00339BF8 7C 04 00 00 */ cmpw r4, r0
/* 8033DF9C 00339BFC 40 81 00 4C */ ble lbl_8033DFE8
/* 8033DFA0 00339C00 2C 04 40 00 */ cmpwi r4, 0x4000
/* 8033DFA4 00339C04 38 60 40 00 */ li r3, 0x4000
/* 8033DFA8 00339C08 41 80 00 08 */ blt lbl_8033DFB0
/* 8033DFAC 00339C0C 7C 83 23 78 */ mr r3, r4
lbl_8033DFB0:
/* 8033DFB0 00339C10 80 1D 02 0C */ lwz r0, 0x20c(r29)
/* 8033DFB4 00339C14 7C 60 1A 14 */ add r3, r0, r3
/* 8033DFB8 00339C18 90 7D 02 0C */ stw r3, 0x20c(r29)
/* 8033DFBC 00339C1C 38 83 00 01 */ addi r4, r3, 1
/* 8033DFC0 00339C20 80 7D 02 08 */ lwz r3, 0x208(r29)
/* 8033DFC4 00339C24 4B FF B3 61 */ bl gsirealloc
/* 8033DFC8 00339C28 2C 03 00 00 */ cmpwi r3, 0
/* 8033DFCC 00339C2C 40 82 00 18 */ bne lbl_8033DFE4
/* 8033DFD0 00339C30 7F 83 E3 78 */ mr r3, r28
/* 8033DFD4 00339C34 38 9E 00 2C */ addi r4, r30, 0x2c
/* 8033DFD8 00339C38 48 00 A4 81 */ bl gpiSetErrorString
/* 8033DFDC 00339C3C 38 60 00 01 */ li r3, 1
/* 8033DFE0 00339C40 48 00 01 B4 */ b lbl_8033E194
lbl_8033DFE4:
/* 8033DFE4 00339C44 90 7D 02 08 */ stw r3, 0x208(r29)
lbl_8033DFE8:
/* 8033DFE8 00339C48 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8033DFEC 00339C4C 80 7D 02 08 */ lwz r3, 0x208(r29)
/* 8033DFF0 00339C50 80 9D 01 F8 */ lwz r4, 0x1f8(r29)
/* 8033DFF4 00339C54 38 A5 00 01 */ addi r5, r5, 1
/* 8033DFF8 00339C58 4B CC 60 09 */ bl memcpy
/* 8033DFFC 00339C5C 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
/* 8033E000 00339C60 38 9B 00 07 */ addi r4, r27, 7
/* 8033E004 00339C64 80 1D 02 00 */ lwz r0, 0x200(r29)
/* 8033E008 00339C68 7C 63 20 50 */ subf r3, r3, r4
/* 8033E00C 00339C6C 7C 63 00 50 */ subf r3, r3, r0
/* 8033E010 00339C70 90 7D 02 00 */ stw r3, 0x200(r29)
/* 8033E014 00339C74 38 A3 00 01 */ addi r5, r3, 1
/* 8033E018 00339C78 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
/* 8033E01C 00339C7C 4B E8 C2 59 */ bl memmove
/* 8033E020 00339C80 83 7D 02 08 */ lwz r27, 0x208(r29)
/* 8033E024 00339C84 38 8D 8F 54 */ addi r4, r13, lbl_8063E214-_SDA_BASE_
/* 8033E028 00339C88 7F 63 DB 78 */ mr r3, r27
/* 8033E02C 00339C8C 4B E9 07 75 */ bl strstr
/* 8033E030 00339C90 2C 03 00 00 */ cmpwi r3, 0
/* 8033E034 00339C94 41 82 00 40 */ beq lbl_8033E074
/* 8033E038 00339C98 38 63 00 04 */ addi r3, r3, 4
/* 8033E03C 00339C9C 4B E9 26 D1 */ bl atoi
/* 8033E040 00339CA0 7C 65 1B 78 */ mr r5, r3
/* 8033E044 00339CA4 7F 83 E3 78 */ mr r3, r28
/* 8033E048 00339CA8 38 81 00 10 */ addi r4, r1, 0x10
/* 8033E04C 00339CAC 48 00 60 5D */ bl gpiFindOperationByID
/* 8033E050 00339CB0 2C 03 00 00 */ cmpwi r3, 0
/* 8033E054 00339CB4 41 82 00 B8 */ beq lbl_8033E10C
/* 8033E058 00339CB8 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8033E05C 00339CBC 7F 83 E3 78 */ mr r3, r28
/* 8033E060 00339CC0 80 BD 02 08 */ lwz r5, 0x208(r29)
/* 8033E064 00339CC4 48 00 60 D5 */ bl gpiProcessOperation
/* 8033E068 00339CC8 2C 03 00 00 */ cmpwi r3, 0
/* 8033E06C 00339CCC 41 82 00 A0 */ beq lbl_8033E10C
/* 8033E070 00339CD0 48 00 01 24 */ b lbl_8033E194
lbl_8033E074:
/* 8033E074 00339CD4 7F 83 E3 78 */ mr r3, r28
/* 8033E078 00339CD8 7F 64 DB 78 */ mr r4, r27
/* 8033E07C 00339CDC 38 A0 00 01 */ li r5, 1
/* 8033E080 00339CE0 48 00 9F 15 */ bl gpiCheckForError
/* 8033E084 00339CE4 2C 03 00 00 */ cmpwi r3, 0
/* 8033E088 00339CE8 41 82 00 0C */ beq lbl_8033E094
/* 8033E08C 00339CEC 38 60 00 04 */ li r3, 4
/* 8033E090 00339CF0 48 00 01 04 */ b lbl_8033E194
lbl_8033E094:
/* 8033E094 00339CF4 83 7D 02 08 */ lwz r27, 0x208(r29)
/* 8033E098 00339CF8 38 8D 8F 5C */ addi r4, r13, lbl_8063E21C-_SDA_BASE_
/* 8033E09C 00339CFC 38 A0 00 04 */ li r5, 4
/* 8033E0A0 00339D00 7F 63 DB 78 */ mr r3, r27
/* 8033E0A4 00339D04 4B E9 04 C5 */ bl strncmp
/* 8033E0A8 00339D08 2C 03 00 00 */ cmpwi r3, 0
/* 8033E0AC 00339D0C 40 82 00 1C */ bne lbl_8033E0C8
/* 8033E0B0 00339D10 7F 83 E3 78 */ mr r3, r28
/* 8033E0B4 00339D14 7F 64 DB 78 */ mr r4, r27
/* 8033E0B8 00339D18 48 00 02 99 */ bl gpiProcessRecvBuddyMessage
/* 8033E0BC 00339D1C 2C 03 00 00 */ cmpwi r3, 0
/* 8033E0C0 00339D20 41 82 00 4C */ beq lbl_8033E10C
/* 8033E0C4 00339D24 48 00 00 D0 */ b lbl_8033E194
lbl_8033E0C8:
/* 8033E0C8 00339D28 7F 63 DB 78 */ mr r3, r27
/* 8033E0CC 00339D2C 38 8D 8F 64 */ addi r4, r13, lbl_8063E224-_SDA_BASE_
/* 8033E0D0 00339D30 38 A0 00 04 */ li r5, 4
/* 8033E0D4 00339D34 4B E9 04 95 */ bl strncmp
/* 8033E0D8 00339D38 2C 03 00 00 */ cmpwi r3, 0
/* 8033E0DC 00339D3C 41 82 00 30 */ beq lbl_8033E10C
/* 8033E0E0 00339D40 7F 63 DB 78 */ mr r3, r27
/* 8033E0E4 00339D44 38 8D 8F 6C */ addi r4, r13, lbl_8063E22C-_SDA_BASE_
/* 8033E0E8 00339D48 38 A0 00 04 */ li r5, 4
/* 8033E0EC 00339D4C 4B E9 04 7D */ bl strncmp
/* 8033E0F0 00339D50 2C 03 00 00 */ cmpwi r3, 0
/* 8033E0F4 00339D54 40 82 00 18 */ bne lbl_8033E10C
/* 8033E0F8 00339D58 7F 63 DB 78 */ mr r3, r27
/* 8033E0FC 00339D5C 38 BD 04 8C */ addi r5, r29, 0x48c
/* 8033E100 00339D60 38 8D 8F 6C */ addi r4, r13, lbl_8063E22C-_SDA_BASE_
/* 8033E104 00339D64 38 C0 00 19 */ li r6, 0x19
/* 8033E108 00339D68 48 00 9F 85 */ bl gpiValueForKey
lbl_8033E10C:
/* 8033E10C 00339D6C 80 7D 01 F8 */ lwz r3, 0x1f8(r29)
/* 8033E110 00339D70 38 8D 8F 78 */ addi r4, r13, lbl_8063E238-_SDA_BASE_
/* 8033E114 00339D74 4B E9 06 8D */ bl strstr
/* 8033E118 00339D78 2C 03 00 00 */ cmpwi r3, 0
/* 8033E11C 00339D7C 7C 7B 1B 78 */ mr r27, r3
/* 8033E120 00339D80 40 82 FE 64 */ bne lbl_8033DF84
/* 8033E124 00339D84 80 01 00 08 */ lwz r0, 8(r1)
/* 8033E128 00339D88 2C 00 00 00 */ cmpwi r0, 0
/* 8033E12C 00339D8C 41 82 00 40 */ beq lbl_8033E16C
/* 8033E130 00339D90 80 1D 01 F4 */ lwz r0, 0x1f4(r29)
/* 8033E134 00339D94 2C 00 00 05 */ cmpwi r0, 5
/* 8033E138 00339D98 41 82 00 34 */ beq lbl_8033E16C
/* 8033E13C 00339D9C 38 00 00 04 */ li r0, 4
/* 8033E140 00339DA0 7F 83 E3 78 */ mr r3, r28
/* 8033E144 00339DA4 90 1D 01 F4 */ stw r0, 0x1f4(r29)
/* 8033E148 00339DA8 38 BE 00 3C */ addi r5, r30, 0x3c
/* 8033E14C 00339DAC 38 80 00 07 */ li r4, 7
/* 8033E150 00339DB0 48 00 A2 B9 */ bl gpiSetError
/* 8033E154 00339DB4 7F 83 E3 78 */ mr r3, r28
/* 8033E158 00339DB8 38 80 00 03 */ li r4, 3
/* 8033E15C 00339DBC 38 A0 00 01 */ li r5, 1
/* 8033E160 00339DC0 48 00 1B 09 */ bl gpiCallErrorCallback
/* 8033E164 00339DC4 38 60 00 00 */ li r3, 0
/* 8033E168 00339DC8 48 00 00 2C */ b lbl_8033E194
lbl_8033E16C:
/* 8033E16C 00339DCC 7F 83 E3 78 */ mr r3, r28
/* 8033E170 00339DD0 48 00 5F 89 */ bl gpiOperationsAreBlocking
/* 8033E174 00339DD4 2C 03 00 00 */ cmpwi r3, 0
/* 8033E178 00339DD8 7C 7B 1B 78 */ mr r27, r3
/* 8033E17C 00339DDC 41 82 00 0C */ beq lbl_8033E188
/* 8033E180 00339DE0 38 60 00 0A */ li r3, 0xa
/* 8033E184 00339DE4 4B FF AE A1 */ bl msleep
lbl_8033E188:
/* 8033E188 00339DE8 2C 1B 00 00 */ cmpwi r27, 0
/* 8033E18C 00339DEC 40 82 FD 68 */ bne lbl_8033DEF4
/* 8033E190 00339DF0 38 60 00 00 */ li r3, 0
lbl_8033E194:
/* 8033E194 00339DF4 39 61 00 30 */ addi r11, r1, 0x30
/* 8033E198 00339DF8 4B E8 8F DD */ bl _restgpr_27
/* 8033E19C 00339DFC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8033E1A0 00339E00 7C 08 03 A6 */ mtlr r0
/* 8033E1A4 00339E04 38 21 00 30 */ addi r1, r1, 0x30
/* 8033E1A8 00339E08 4E 80 00 20 */ blr
.global gpiProcess
gpiProcess:
/* 8033E1AC 00339E0C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8033E1B0 00339E10 7C 08 02 A6 */ mflr r0
/* 8033E1B4 00339E14 90 01 00 34 */ stw r0, 0x34(r1)
/* 8033E1B8 00339E18 39 61 00 30 */ addi r11, r1, 0x30
/* 8033E1BC 00339E1C 4B E8 8F 6D */ bl _savegpr_27
/* 8033E1C0 00339E20 83 C3 00 00 */ lwz r30, 0(r3)
/* 8033E1C4 00339E24 7C 7F 1B 78 */ mr r31, r3
/* 8033E1C8 00339E28 7C 9B 23 78 */ mr r27, r4
/* 8033E1CC 00339E2C 3B A0 00 00 */ li r29, 0
/* 8033E1D0 00339E30 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
/* 8033E1D4 00339E34 2C 00 00 01 */ cmpwi r0, 1
/* 8033E1D8 00339E38 40 82 00 80 */ bne lbl_8033E258
lbl_8033E1DC:
/* 8033E1DC 00339E3C 7F E3 FB 78 */ mr r3, r31
/* 8033E1E0 00339E40 48 00 31 B1 */ bl gpiCheckConnect
/* 8033E1E4 00339E44 2C 03 00 00 */ cmpwi r3, 0
/* 8033E1E8 00339E48 7C 7D 1B 78 */ mr r29, r3
/* 8033E1EC 00339E4C 38 60 00 00 */ li r3, 0
/* 8033E1F0 00339E50 40 82 00 1C */ bne lbl_8033E20C
/* 8033E1F4 00339E54 2C 1B 00 00 */ cmpwi r27, 0
/* 8033E1F8 00339E58 41 82 00 14 */ beq lbl_8033E20C
/* 8033E1FC 00339E5C 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
/* 8033E200 00339E60 2C 00 00 01 */ cmpwi r0, 1
/* 8033E204 00339E64 40 82 00 08 */ bne lbl_8033E20C
/* 8033E208 00339E68 38 60 00 01 */ li r3, 1
lbl_8033E20C:
/* 8033E20C 00339E6C 7C 03 00 D0 */ neg r0, r3
/* 8033E210 00339E70 7C 00 1B 78 */ or r0, r0, r3
/* 8033E214 00339E74 54 1C 0F FF */ rlwinm. r28, r0, 1, 0x1f, 0x1f
/* 8033E218 00339E78 41 82 00 0C */ beq lbl_8033E224
/* 8033E21C 00339E7C 38 60 00 0A */ li r3, 0xa
/* 8033E220 00339E80 4B FF AE 05 */ bl msleep
lbl_8033E224:
/* 8033E224 00339E84 2C 1C 00 00 */ cmpwi r28, 0
/* 8033E228 00339E88 40 82 FF B4 */ bne lbl_8033E1DC
/* 8033E22C 00339E8C 2C 1D 00 00 */ cmpwi r29, 0
/* 8033E230 00339E90 41 82 00 28 */ beq lbl_8033E258
/* 8033E234 00339E94 7F E3 FB 78 */ mr r3, r31
/* 8033E238 00339E98 38 81 00 08 */ addi r4, r1, 8
/* 8033E23C 00339E9C 38 A0 00 01 */ li r5, 1
/* 8033E240 00339EA0 48 00 5E 69 */ bl gpiFindOperationByID
/* 8033E244 00339EA4 2C 03 00 00 */ cmpwi r3, 0
/* 8033E248 00339EA8 41 82 00 10 */ beq lbl_8033E258
/* 8033E24C 00339EAC 80 61 00 08 */ lwz r3, 8(r1)
/* 8033E250 00339EB0 38 00 00 04 */ li r0, 4
/* 8033E254 00339EB4 90 03 00 1C */ stw r0, 0x1c(r3)
lbl_8033E258:
/* 8033E258 00339EB8 80 1E 01 F4 */ lwz r0, 0x1f4(r30)
/* 8033E25C 00339EBC 2C 00 00 03 */ cmpwi r0, 3
/* 8033E260 00339EC0 41 82 00 14 */ beq lbl_8033E274
/* 8033E264 00339EC4 2C 00 00 02 */ cmpwi r0, 2
/* 8033E268 00339EC8 41 82 00 0C */ beq lbl_8033E274
/* 8033E26C 00339ECC 2C 00 00 05 */ cmpwi r0, 5
/* 8033E270 00339ED0 40 82 00 2C */ bne lbl_8033E29C
lbl_8033E274:
/* 8033E274 00339ED4 2C 1D 00 00 */ cmpwi r29, 0
/* 8033E278 00339ED8 40 82 00 10 */ bne lbl_8033E288
/* 8033E27C 00339EDC 7F E3 FB 78 */ mr r3, r31
/* 8033E280 00339EE0 4B FF FC 49 */ bl gpiProcessConnectionManager
/* 8033E284 00339EE4 7C 7D 1B 78 */ mr r29, r3
lbl_8033E288:
/* 8033E288 00339EE8 2C 1D 00 00 */ cmpwi r29, 0
/* 8033E28C 00339EEC 40 82 00 10 */ bne lbl_8033E29C
/* 8033E290 00339EF0 7F E3 FB 78 */ mr r3, r31
/* 8033E294 00339EF4 48 00 69 E9 */ bl gpiProcessPeers
/* 8033E298 00339EF8 7C 7D 1B 78 */ mr r29, r3
lbl_8033E29C:
/* 8033E29C 00339EFC 2C 1D 00 00 */ cmpwi r29, 0
/* 8033E2A0 00339F00 40 82 00 10 */ bne lbl_8033E2B0
/* 8033E2A4 00339F04 7F E3 FB 78 */ mr r3, r31
/* 8033E2A8 00339F08 48 00 99 45 */ bl gpiProcessSearches
/* 8033E2AC 00339F0C 7C 7D 1B 78 */ mr r29, r3
lbl_8033E2B0:
/* 8033E2B0 00339F10 80 1E 04 40 */ lwz r0, 0x440(r30)
/* 8033E2B4 00339F14 90 01 00 08 */ stw r0, 8(r1)
/* 8033E2B8 00339F18 48 00 00 38 */ b lbl_8033E2F0
lbl_8033E2BC:
/* 8033E2BC 00339F1C 80 04 00 1C */ lwz r0, 0x1c(r4)
/* 8033E2C0 00339F20 2C 00 00 00 */ cmpwi r0, 0
/* 8033E2C4 00339F24 41 82 00 24 */ beq lbl_8033E2E8
/* 8033E2C8 00339F28 7F E3 FB 78 */ mr r3, r31
/* 8033E2CC 00339F2C 48 00 58 99 */ bl gpiFailedOpCallback
/* 8033E2D0 00339F30 80 81 00 08 */ lwz r4, 8(r1)
/* 8033E2D4 00339F34 7F E3 FB 78 */ mr r3, r31
/* 8033E2D8 00339F38 80 04 00 20 */ lwz r0, 0x20(r4)
/* 8033E2DC 00339F3C 90 01 00 08 */ stw r0, 8(r1)
/* 8033E2E0 00339F40 48 00 5D 7D */ bl gpiRemoveOperation
/* 8033E2E4 00339F44 48 00 00 0C */ b lbl_8033E2F0
lbl_8033E2E8:
/* 8033E2E8 00339F48 80 04 00 20 */ lwz r0, 0x20(r4)
/* 8033E2EC 00339F4C 90 01 00 08 */ stw r0, 8(r1)
lbl_8033E2F0:
/* 8033E2F0 00339F50 80 81 00 08 */ lwz r4, 8(r1)
/* 8033E2F4 00339F54 2C 04 00 00 */ cmpwi r4, 0
/* 8033E2F8 00339F58 40 82 FF C4 */ bne lbl_8033E2BC
/* 8033E2FC 00339F5C 7F E3 FB 78 */ mr r3, r31
/* 8033E300 00339F60 7F 64 DB 78 */ mr r4, r27
/* 8033E304 00339F64 48 00 1C FD */ bl gpiProcessCallbacks
/* 8033E308 00339F68 2C 03 00 00 */ cmpwi r3, 0
/* 8033E30C 00339F6C 41 82 00 08 */ beq lbl_8033E314
/* 8033E310 00339F70 48 00 00 28 */ b lbl_8033E338
lbl_8033E314:
/* 8033E314 00339F74 80 1E 04 38 */ lwz r0, 0x438(r30)
/* 8033E318 00339F78 2C 00 00 00 */ cmpwi r0, 0
/* 8033E31C 00339F7C 41 82 00 18 */ beq lbl_8033E334
/* 8033E320 00339F80 7F E3 FB 78 */ mr r3, r31
/* 8033E324 00339F84 38 80 00 00 */ li r4, 0
/* 8033E328 00339F88 48 00 31 F9 */ bl gpiDisconnect
/* 8033E32C 00339F8C 7F E3 FB 78 */ mr r3, r31
/* 8033E330 00339F90 4B FF FA 59 */ bl gpiReset
lbl_8033E334:
/* 8033E334 00339F94 7F A3 EB 78 */ mr r3, r29
lbl_8033E338:
/* 8033E338 00339F98 39 61 00 30 */ addi r11, r1, 0x30
/* 8033E33C 00339F9C 4B E8 8E 39 */ bl _restgpr_27
/* 8033E340 00339FA0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8033E344 00339FA4 7C 08 03 A6 */ mtlr r0
/* 8033E348 00339FA8 38 21 00 30 */ addi r1, r1, 0x30
/* 8033E34C 00339FAC 4E 80 00 20 */ blr
|