summaryrefslogtreecommitdiff
path: root/asm/SDK/DWC/gamespy/gpiCallback.s
blob: d7c0c593e55b9564baf0e77140a723fa42b68759 (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
.include "macros.inc"

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

.global gpiCallErrorCallback
gpiCallErrorCallback:
/* 8033FC68 0033B8C8  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8033FC6C 0033B8CC  7C 08 02 A6 */	mflr r0
/* 8033FC70 0033B8D0  2C 05 00 01 */	cmpwi r5, 1
/* 8033FC74 0033B8D4  90 01 00 34 */	stw r0, 0x34(r1)
/* 8033FC78 0033B8D8  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 8033FC7C 0033B8DC  93 C1 00 28 */	stw r30, 0x28(r1)
/* 8033FC80 0033B8E0  7C BE 2B 78 */	mr r30, r5
/* 8033FC84 0033B8E4  93 A1 00 24 */	stw r29, 0x24(r1)
/* 8033FC88 0033B8E8  7C 9D 23 78 */	mr r29, r4
/* 8033FC8C 0033B8EC  93 81 00 20 */	stw r28, 0x20(r1)
/* 8033FC90 0033B8F0  7C 7C 1B 78 */	mr r28, r3
/* 8033FC94 0033B8F4  83 E3 00 00 */	lwz r31, 0(r3)
/* 8033FC98 0033B8F8  40 82 00 0C */	bne lbl_8033FCA4
/* 8033FC9C 0033B8FC  38 00 00 01 */	li r0, 1
/* 8033FCA0 0033B900  90 1F 04 38 */	stw r0, 0x438(r31)
lbl_8033FCA4:
/* 8033FCA4 0033B904  80 7F 01 A8 */	lwz r3, 0x1a8(r31)
/* 8033FCA8 0033B908  80 1F 01 AC */	lwz r0, 0x1ac(r31)
/* 8033FCAC 0033B90C  2C 03 00 00 */	cmpwi r3, 0
/* 8033FCB0 0033B910  90 61 00 10 */	stw r3, 0x10(r1)
/* 8033FCB4 0033B914  90 01 00 14 */	stw r0, 0x14(r1)
/* 8033FCB8 0033B918  41 82 00 50 */	beq lbl_8033FD08
/* 8033FCBC 0033B91C  38 60 00 10 */	li r3, 0x10
/* 8033FCC0 0033B920  4B FF 96 55 */	bl gsimalloc
/* 8033FCC4 0033B924  2C 03 00 00 */	cmpwi r3, 0
/* 8033FCC8 0033B928  7C 65 1B 78 */	mr r5, r3
/* 8033FCCC 0033B92C  41 82 00 18 */	beq lbl_8033FCE4
/* 8033FCD0 0033B930  93 A3 00 00 */	stw r29, 0(r3)
/* 8033FCD4 0033B934  93 C3 00 0C */	stw r30, 0xc(r3)
/* 8033FCD8 0033B938  80 1F 04 34 */	lwz r0, 0x434(r31)
/* 8033FCDC 0033B93C  90 03 00 04 */	stw r0, 4(r3)
/* 8033FCE0 0033B940  93 E3 00 08 */	stw r31, 8(r3)
lbl_8033FCE4:
/* 8033FCE4 0033B944  80 81 00 10 */	lwz r4, 0x10(r1)
/* 8033FCE8 0033B948  7F 83 E3 78 */	mr r3, r28
/* 8033FCEC 0033B94C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8033FCF0 0033B950  38 C0 00 00 */	li r6, 0
/* 8033FCF4 0033B954  90 81 00 08 */	stw r4, 8(r1)
/* 8033FCF8 0033B958  38 81 00 08 */	addi r4, r1, 8
/* 8033FCFC 0033B95C  38 E0 00 01 */	li r7, 1
/* 8033FD00 0033B960  90 01 00 0C */	stw r0, 0xc(r1)
/* 8033FD04 0033B964  48 00 00 25 */	bl gpiAddCallback
lbl_8033FD08:
/* 8033FD08 0033B968  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8033FD0C 0033B96C  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 8033FD10 0033B970  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 8033FD14 0033B974  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 8033FD18 0033B978  83 81 00 20 */	lwz r28, 0x20(r1)
/* 8033FD1C 0033B97C  7C 08 03 A6 */	mtlr r0
/* 8033FD20 0033B980  38 21 00 30 */	addi r1, r1, 0x30
/* 8033FD24 0033B984  4E 80 00 20 */	blr

.global gpiAddCallback
gpiAddCallback:
/* 8033FD28 0033B988  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8033FD2C 0033B98C  7C 08 02 A6 */	mflr r0
/* 8033FD30 0033B990  90 01 00 24 */	stw r0, 0x24(r1)
/* 8033FD34 0033B994  39 61 00 20 */	addi r11, r1, 0x20
/* 8033FD38 0033B998  4B E8 73 ED */	bl _savegpr_26
/* 8033FD3C 0033B99C  83 E3 00 00 */	lwz r31, 0(r3)
/* 8033FD40 0033B9A0  7C 7A 1B 78 */	mr r26, r3
/* 8033FD44 0033B9A4  7C 9B 23 78 */	mr r27, r4
/* 8033FD48 0033B9A8  7C BC 2B 78 */	mr r28, r5
/* 8033FD4C 0033B9AC  7C DD 33 78 */	mr r29, r6
/* 8033FD50 0033B9B0  7C FE 3B 78 */	mr r30, r7
/* 8033FD54 0033B9B4  38 60 00 18 */	li r3, 0x18
/* 8033FD58 0033B9B8  4B FF 95 BD */	bl gsimalloc
/* 8033FD5C 0033B9BC  2C 03 00 00 */	cmpwi r3, 0
/* 8033FD60 0033B9C0  40 82 00 1C */	bne lbl_8033FD7C
/* 8033FD64 0033B9C4  3C 80 80 45 */	lis r4, lbl_8044A810@ha
/* 8033FD68 0033B9C8  7F 43 D3 78 */	mr r3, r26
/* 8033FD6C 0033B9CC  38 84 A8 10 */	addi r4, r4, lbl_8044A810@l
/* 8033FD70 0033B9D0  48 00 86 E9 */	bl gpiSetErrorString
/* 8033FD74 0033B9D4  38 60 00 01 */	li r3, 1
/* 8033FD78 0033B9D8  48 00 00 68 */	b lbl_8033FDE0
lbl_8033FD7C:
/* 8033FD7C 0033B9DC  80 9B 00 00 */	lwz r4, 0(r27)
/* 8033FD80 0033B9E0  2C 1D 00 00 */	cmpwi r29, 0
/* 8033FD84 0033B9E4  80 1B 00 04 */	lwz r0, 4(r27)
/* 8033FD88 0033B9E8  90 83 00 00 */	stw r4, 0(r3)
/* 8033FD8C 0033B9EC  90 03 00 04 */	stw r0, 4(r3)
/* 8033FD90 0033B9F0  93 83 00 08 */	stw r28, 8(r3)
/* 8033FD94 0033B9F4  41 82 00 10 */	beq lbl_8033FDA4
/* 8033FD98 0033B9F8  80 1D 00 18 */	lwz r0, 0x18(r29)
/* 8033FD9C 0033B9FC  90 03 00 10 */	stw r0, 0x10(r3)
/* 8033FDA0 0033BA00  48 00 00 0C */	b lbl_8033FDAC
lbl_8033FDA4:
/* 8033FDA4 0033BA04  38 00 00 00 */	li r0, 0
/* 8033FDA8 0033BA08  90 03 00 10 */	stw r0, 0x10(r3)
lbl_8033FDAC:
/* 8033FDAC 0033BA0C  93 C3 00 0C */	stw r30, 0xc(r3)
/* 8033FDB0 0033BA10  38 00 00 00 */	li r0, 0
/* 8033FDB4 0033BA14  90 03 00 14 */	stw r0, 0x14(r3)
/* 8033FDB8 0033BA18  80 1F 04 54 */	lwz r0, 0x454(r31)
/* 8033FDBC 0033BA1C  2C 00 00 00 */	cmpwi r0, 0
/* 8033FDC0 0033BA20  40 82 00 08 */	bne lbl_8033FDC8
/* 8033FDC4 0033BA24  90 7F 04 54 */	stw r3, 0x454(r31)
lbl_8033FDC8:
/* 8033FDC8 0033BA28  80 9F 04 58 */	lwz r4, 0x458(r31)
/* 8033FDCC 0033BA2C  2C 04 00 00 */	cmpwi r4, 0
/* 8033FDD0 0033BA30  41 82 00 08 */	beq lbl_8033FDD8
/* 8033FDD4 0033BA34  90 64 00 14 */	stw r3, 0x14(r4)
lbl_8033FDD8:
/* 8033FDD8 0033BA38  90 7F 04 58 */	stw r3, 0x458(r31)
/* 8033FDDC 0033BA3C  38 60 00 00 */	li r3, 0
lbl_8033FDE0:
/* 8033FDE0 0033BA40  39 61 00 20 */	addi r11, r1, 0x20
/* 8033FDE4 0033BA44  4B E8 73 8D */	bl _restgpr_26
/* 8033FDE8 0033BA48  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8033FDEC 0033BA4C  7C 08 03 A6 */	mtlr r0
/* 8033FDF0 0033BA50  38 21 00 20 */	addi r1, r1, 0x20
/* 8033FDF4 0033BA54  4E 80 00 20 */	blr

.global gpiCallCallback
gpiCallCallback:
/* 8033FDF8 0033BA58  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8033FDFC 0033BA5C  7C 08 02 A6 */	mflr r0
/* 8033FE00 0033BA60  90 01 00 24 */	stw r0, 0x24(r1)
/* 8033FE04 0033BA64  39 61 00 20 */	addi r11, r1, 0x20
/* 8033FE08 0033BA68  4B E8 73 21 */	bl _savegpr_27
/* 8033FE0C 0033BA6C  81 84 00 00 */	lwz r12, 0(r4)
/* 8033FE10 0033BA70  7C 9F 23 78 */	mr r31, r4
/* 8033FE14 0033BA74  7C 7B 1B 78 */	mr r27, r3
/* 8033FE18 0033BA78  80 84 00 08 */	lwz r4, 8(r4)
/* 8033FE1C 0033BA7C  80 BF 00 04 */	lwz r5, 4(r31)
/* 8033FE20 0033BA80  7D 89 03 A6 */	mtctr r12
/* 8033FE24 0033BA84  4E 80 04 21 */	bctrl
/* 8033FE28 0033BA88  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 8033FE2C 0033BA8C  2C 00 00 02 */	cmpwi r0, 2
/* 8033FE30 0033BA90  40 82 00 20 */	bne lbl_8033FE50
/* 8033FE34 0033BA94  80 7F 00 08 */	lwz r3, 8(r31)
/* 8033FE38 0033BA98  80 63 00 08 */	lwz r3, 8(r3)
/* 8033FE3C 0033BA9C  4B FF 94 FD */	bl gsifree
/* 8033FE40 0033BAA0  80 7F 00 08 */	lwz r3, 8(r31)
/* 8033FE44 0033BAA4  38 00 00 00 */	li r0, 0
/* 8033FE48 0033BAA8  90 03 00 08 */	stw r0, 8(r3)
/* 8033FE4C 0033BAAC  48 00 01 84 */	b lbl_8033FFD0
lbl_8033FE50:
/* 8033FE50 0033BAB0  2C 00 00 0B */	cmpwi r0, 0xb
/* 8033FE54 0033BAB4  40 82 00 20 */	bne lbl_8033FE74
/* 8033FE58 0033BAB8  80 7F 00 08 */	lwz r3, 8(r31)
/* 8033FE5C 0033BABC  80 63 00 08 */	lwz r3, 8(r3)
/* 8033FE60 0033BAC0  4B FF 94 D9 */	bl gsifree
/* 8033FE64 0033BAC4  80 7F 00 08 */	lwz r3, 8(r31)
/* 8033FE68 0033BAC8  38 00 00 00 */	li r0, 0
/* 8033FE6C 0033BACC  90 03 00 08 */	stw r0, 8(r3)
/* 8033FE70 0033BAD0  48 00 01 60 */	b lbl_8033FFD0
lbl_8033FE74:
/* 8033FE74 0033BAD4  2C 00 00 03 */	cmpwi r0, 3
/* 8033FE78 0033BAD8  40 82 00 74 */	bne lbl_8033FEEC
/* 8033FE7C 0033BADC  83 7F 00 08 */	lwz r27, 8(r31)
/* 8033FE80 0033BAE0  3B 80 00 00 */	li r28, 0
/* 8033FE84 0033BAE4  3B A0 00 00 */	li r29, 0
/* 8033FE88 0033BAE8  3B C0 00 00 */	li r30, 0
/* 8033FE8C 0033BAEC  48 00 00 34 */	b lbl_8033FEC0
lbl_8033FE90:
/* 8033FE90 0033BAF0  80 7B 00 3C */	lwz r3, 0x3c(r27)
/* 8033FE94 0033BAF4  7C 63 E8 2E */	lwzx r3, r3, r29
/* 8033FE98 0033BAF8  4B FF 94 A1 */	bl gsifree
/* 8033FE9C 0033BAFC  80 7B 00 3C */	lwz r3, 0x3c(r27)
/* 8033FEA0 0033BB00  7F C3 E9 2E */	stwx r30, r3, r29
/* 8033FEA4 0033BB04  80 7B 00 40 */	lwz r3, 0x40(r27)
/* 8033FEA8 0033BB08  7C 63 E8 2E */	lwzx r3, r3, r29
/* 8033FEAC 0033BB0C  4B FF 94 8D */	bl gsifree
/* 8033FEB0 0033BB10  80 7B 00 40 */	lwz r3, 0x40(r27)
/* 8033FEB4 0033BB14  3B 9C 00 01 */	addi r28, r28, 1
/* 8033FEB8 0033BB18  7F C3 E9 2E */	stwx r30, r3, r29
/* 8033FEBC 0033BB1C  3B BD 00 04 */	addi r29, r29, 4
lbl_8033FEC0:
/* 8033FEC0 0033BB20  80 1B 00 38 */	lwz r0, 0x38(r27)
/* 8033FEC4 0033BB24  7C 1C 00 00 */	cmpw r28, r0
/* 8033FEC8 0033BB28  41 80 FF C8 */	blt lbl_8033FE90
/* 8033FECC 0033BB2C  80 7B 00 3C */	lwz r3, 0x3c(r27)
/* 8033FED0 0033BB30  4B FF 94 69 */	bl gsifree
/* 8033FED4 0033BB34  3B C0 00 00 */	li r30, 0
/* 8033FED8 0033BB38  93 DB 00 3C */	stw r30, 0x3c(r27)
/* 8033FEDC 0033BB3C  80 7B 00 40 */	lwz r3, 0x40(r27)
/* 8033FEE0 0033BB40  4B FF 94 59 */	bl gsifree
/* 8033FEE4 0033BB44  93 DB 00 40 */	stw r30, 0x40(r27)
/* 8033FEE8 0033BB48  48 00 00 E8 */	b lbl_8033FFD0
lbl_8033FEEC:
/* 8033FEEC 0033BB4C  2C 00 00 04 */	cmpwi r0, 4
/* 8033FEF0 0033BB50  40 82 00 1C */	bne lbl_8033FF0C
/* 8033FEF4 0033BB54  83 7F 00 08 */	lwz r27, 8(r31)
/* 8033FEF8 0033BB58  80 7B 00 0C */	lwz r3, 0xc(r27)
/* 8033FEFC 0033BB5C  4B FF 94 3D */	bl gsifree
/* 8033FF00 0033BB60  38 00 00 00 */	li r0, 0
/* 8033FF04 0033BB64  90 1B 00 0C */	stw r0, 0xc(r27)
/* 8033FF08 0033BB68  48 00 00 C8 */	b lbl_8033FFD0
lbl_8033FF0C:
/* 8033FF0C 0033BB6C  2C 00 00 07 */	cmpwi r0, 7
/* 8033FF10 0033BB70  40 82 00 24 */	bne lbl_8033FF34
/* 8033FF14 0033BB74  83 7F 00 08 */	lwz r27, 8(r31)
/* 8033FF18 0033BB78  80 7B 00 10 */	lwz r3, 0x10(r27)
/* 8033FF1C 0033BB7C  2C 03 00 00 */	cmpwi r3, 0
/* 8033FF20 0033BB80  41 82 00 B0 */	beq lbl_8033FFD0
/* 8033FF24 0033BB84  4B FF 94 15 */	bl gsifree
/* 8033FF28 0033BB88  38 00 00 00 */	li r0, 0
/* 8033FF2C 0033BB8C  90 1B 00 10 */	stw r0, 0x10(r27)
/* 8033FF30 0033BB90  48 00 00 A0 */	b lbl_8033FFD0
lbl_8033FF34:
/* 8033FF34 0033BB94  2C 00 00 08 */	cmpwi r0, 8
/* 8033FF38 0033BB98  40 82 00 24 */	bne lbl_8033FF5C
/* 8033FF3C 0033BB9C  83 7F 00 08 */	lwz r27, 8(r31)
/* 8033FF40 0033BBA0  80 7B 00 08 */	lwz r3, 8(r27)
/* 8033FF44 0033BBA4  2C 03 00 00 */	cmpwi r3, 0
/* 8033FF48 0033BBA8  41 82 00 88 */	beq lbl_8033FFD0
/* 8033FF4C 0033BBAC  4B FF 93 ED */	bl gsifree
/* 8033FF50 0033BBB0  38 00 00 00 */	li r0, 0
/* 8033FF54 0033BBB4  90 1B 00 08 */	stw r0, 8(r27)
/* 8033FF58 0033BBB8  48 00 00 78 */	b lbl_8033FFD0
lbl_8033FF5C:
/* 8033FF5C 0033BBBC  2C 00 00 09 */	cmpwi r0, 9
/* 8033FF60 0033BBC0  40 82 00 54 */	bne lbl_8033FFB4
/* 8033FF64 0033BBC4  83 9F 00 08 */	lwz r28, 8(r31)
/* 8033FF68 0033BBC8  3B 60 00 00 */	li r27, 0
/* 8033FF6C 0033BBCC  3B A0 00 00 */	li r29, 0
/* 8033FF70 0033BBD0  3B C0 00 00 */	li r30, 0
/* 8033FF74 0033BBD4  48 00 00 20 */	b lbl_8033FF94
lbl_8033FF78:
/* 8033FF78 0033BBD8  80 7C 00 08 */	lwz r3, 8(r28)
/* 8033FF7C 0033BBDC  7C 63 E8 2E */	lwzx r3, r3, r29
/* 8033FF80 0033BBE0  4B FF 93 B9 */	bl gsifree
/* 8033FF84 0033BBE4  80 7C 00 08 */	lwz r3, 8(r28)
/* 8033FF88 0033BBE8  3B 7B 00 01 */	addi r27, r27, 1
/* 8033FF8C 0033BBEC  7F C3 E9 2E */	stwx r30, r3, r29
/* 8033FF90 0033BBF0  3B BD 00 04 */	addi r29, r29, 4
lbl_8033FF94:
/* 8033FF94 0033BBF4  80 1C 00 04 */	lwz r0, 4(r28)
/* 8033FF98 0033BBF8  7C 1B 00 00 */	cmpw r27, r0
/* 8033FF9C 0033BBFC  41 80 FF DC */	blt lbl_8033FF78
/* 8033FFA0 0033BC00  80 7C 00 08 */	lwz r3, 8(r28)
/* 8033FFA4 0033BC04  4B FF 93 95 */	bl gsifree
/* 8033FFA8 0033BC08  38 00 00 00 */	li r0, 0
/* 8033FFAC 0033BC0C  90 1C 00 08 */	stw r0, 8(r28)
/* 8033FFB0 0033BC10  48 00 00 20 */	b lbl_8033FFD0
lbl_8033FFB4:
/* 8033FFB4 0033BC14  2C 00 00 0C */	cmpwi r0, 0xc
/* 8033FFB8 0033BC18  40 82 00 18 */	bne lbl_8033FFD0
/* 8033FFBC 0033BC1C  80 9F 00 08 */	lwz r4, 8(r31)
/* 8033FFC0 0033BC20  7F 63 DB 78 */	mr r3, r27
/* 8033FFC4 0033BC24  38 A0 00 00 */	li r5, 0
/* 8033FFC8 0033BC28  80 84 00 00 */	lwz r4, 0(r4)
/* 8033FFCC 0033BC2C  4B FF F1 D5 */	bl gpiDeleteBuddy
lbl_8033FFD0:
/* 8033FFD0 0033BC30  80 7F 00 08 */	lwz r3, 8(r31)
/* 8033FFD4 0033BC34  4B FF 93 65 */	bl gsifree
/* 8033FFD8 0033BC38  38 00 00 00 */	li r0, 0
/* 8033FFDC 0033BC3C  7F E3 FB 78 */	mr r3, r31
/* 8033FFE0 0033BC40  90 1F 00 08 */	stw r0, 8(r31)
/* 8033FFE4 0033BC44  4B FF 93 55 */	bl gsifree
/* 8033FFE8 0033BC48  39 61 00 20 */	addi r11, r1, 0x20
/* 8033FFEC 0033BC4C  4B E8 71 89 */	bl _restgpr_27
/* 8033FFF0 0033BC50  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8033FFF4 0033BC54  7C 08 03 A6 */	mtlr r0
/* 8033FFF8 0033BC58  38 21 00 20 */	addi r1, r1, 0x20
/* 8033FFFC 0033BC5C  4E 80 00 20 */	blr

.global gpiProcessCallbacks
gpiProcessCallbacks:
/* 80340000 0033BC60  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80340004 0033BC64  7C 08 02 A6 */	mflr r0
/* 80340008 0033BC68  90 01 00 34 */	stw r0, 0x34(r1)
/* 8034000C 0033BC6C  39 61 00 30 */	addi r11, r1, 0x30
/* 80340010 0033BC70  4B E8 71 11 */	bl _savegpr_25
/* 80340014 0033BC74  2C 04 00 00 */	cmpwi r4, 0
/* 80340018 0033BC78  83 C3 00 00 */	lwz r30, 0(r3)
/* 8034001C 0033BC7C  7C 79 1B 78 */	mr r25, r3
/* 80340020 0033BC80  7C 9A 23 78 */	mr r26, r4
/* 80340024 0033BC84  41 82 00 A8 */	beq lbl_803400CC
/* 80340028 0033BC88  83 BE 04 54 */	lwz r29, 0x454(r30)
/* 8034002C 0033BC8C  38 00 00 00 */	li r0, 0
/* 80340030 0033BC90  83 9E 04 58 */	lwz r28, 0x458(r30)
/* 80340034 0033BC94  3B 60 00 00 */	li r27, 0
/* 80340038 0033BC98  7F A4 EB 78 */	mr r4, r29
/* 8034003C 0033BC9C  90 1E 04 54 */	stw r0, 0x454(r30)
/* 80340040 0033BCA0  90 1E 04 58 */	stw r0, 0x458(r30)
/* 80340044 0033BCA4  48 00 00 54 */	b lbl_80340098
lbl_80340048:
/* 80340048 0033BCA8  80 04 00 10 */	lwz r0, 0x10(r4)
/* 8034004C 0033BCAC  83 E4 00 14 */	lwz r31, 0x14(r4)
/* 80340050 0033BCB0  7C 00 D0 00 */	cmpw r0, r26
/* 80340054 0033BCB4  41 82 00 10 */	beq lbl_80340064
/* 80340058 0033BCB8  80 04 00 0C */	lwz r0, 0xc(r4)
/* 8034005C 0033BCBC  2C 00 00 01 */	cmpwi r0, 1
/* 80340060 0033BCC0  40 82 00 30 */	bne lbl_80340090
lbl_80340064:
/* 80340064 0033BCC4  2C 1B 00 00 */	cmpwi r27, 0
/* 80340068 0033BCC8  41 82 00 0C */	beq lbl_80340074
/* 8034006C 0033BCCC  93 FB 00 14 */	stw r31, 0x14(r27)
/* 80340070 0033BCD0  48 00 00 08 */	b lbl_80340078
lbl_80340074:
/* 80340074 0033BCD4  7F FD FB 78 */	mr r29, r31
lbl_80340078:
/* 80340078 0033BCD8  7C 1C 20 40 */	cmplw r28, r4
/* 8034007C 0033BCDC  40 82 00 08 */	bne lbl_80340084
/* 80340080 0033BCE0  7F 7C DB 78 */	mr r28, r27
lbl_80340084:
/* 80340084 0033BCE4  7F 23 CB 78 */	mr r3, r25
/* 80340088 0033BCE8  4B FF FD 71 */	bl gpiCallCallback
/* 8034008C 0033BCEC  48 00 00 08 */	b lbl_80340094
lbl_80340090:
/* 80340090 0033BCF0  7C 9B 23 78 */	mr r27, r4
lbl_80340094:
/* 80340094 0033BCF4  7F E4 FB 78 */	mr r4, r31
lbl_80340098:
/* 80340098 0033BCF8  2C 04 00 00 */	cmpwi r4, 0
/* 8034009C 0033BCFC  40 82 FF AC */	bne lbl_80340048
/* 803400A0 0033BD00  80 1E 04 54 */	lwz r0, 0x454(r30)
/* 803400A4 0033BD04  2C 00 00 00 */	cmpwi r0, 0
/* 803400A8 0033BD08  41 82 00 14 */	beq lbl_803400BC
/* 803400AC 0033BD0C  80 7E 04 58 */	lwz r3, 0x458(r30)
/* 803400B0 0033BD10  93 A3 00 14 */	stw r29, 0x14(r3)
/* 803400B4 0033BD14  93 9E 04 58 */	stw r28, 0x458(r30)
/* 803400B8 0033BD18  48 00 00 0C */	b lbl_803400C4
lbl_803400BC:
/* 803400BC 0033BD1C  93 BE 04 54 */	stw r29, 0x454(r30)
/* 803400C0 0033BD20  93 9E 04 58 */	stw r28, 0x458(r30)
lbl_803400C4:
/* 803400C4 0033BD24  38 60 00 00 */	li r3, 0
/* 803400C8 0033BD28  48 00 00 40 */	b lbl_80340108
lbl_803400CC:
/* 803400CC 0033BD2C  3B E0 00 00 */	li r31, 0
/* 803400D0 0033BD30  48 00 00 28 */	b lbl_803400F8
lbl_803400D4:
/* 803400D4 0033BD34  93 FE 04 54 */	stw r31, 0x454(r30)
/* 803400D8 0033BD38  93 FE 04 58 */	stw r31, 0x458(r30)
/* 803400DC 0033BD3C  48 00 00 14 */	b lbl_803400F0
lbl_803400E0:
/* 803400E0 0033BD40  83 84 00 14 */	lwz r28, 0x14(r4)
/* 803400E4 0033BD44  7F 23 CB 78 */	mr r3, r25
/* 803400E8 0033BD48  4B FF FD 11 */	bl gpiCallCallback
/* 803400EC 0033BD4C  7F 84 E3 78 */	mr r4, r28
lbl_803400F0:
/* 803400F0 0033BD50  2C 04 00 00 */	cmpwi r4, 0
/* 803400F4 0033BD54  40 82 FF EC */	bne lbl_803400E0
lbl_803400F8:
/* 803400F8 0033BD58  80 9E 04 54 */	lwz r4, 0x454(r30)
/* 803400FC 0033BD5C  2C 04 00 00 */	cmpwi r4, 0
/* 80340100 0033BD60  40 82 FF D4 */	bne lbl_803400D4
/* 80340104 0033BD64  38 60 00 00 */	li r3, 0
lbl_80340108:
/* 80340108 0033BD68  39 61 00 30 */	addi r11, r1, 0x30
/* 8034010C 0033BD6C  4B E8 70 61 */	bl _restgpr_25
/* 80340110 0033BD70  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80340114 0033BD74  7C 08 03 A6 */	mtlr r0
/* 80340118 0033BD78  38 21 00 30 */	addi r1, r1, 0x30
/* 8034011C 0033BD7C  4E 80 00 20 */	blr