summaryrefslogtreecommitdiff
path: root/asm/SDK/BTE/gki_time.s
blob: b7192a7fdfc5d03ed7a242e845b95518e470cf20 (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
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
.include "macros.inc"

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

.global gki_timers_init
gki_timers_init:
/* 802BAA10 002B6670  3C 60 80 54 */	lis r3, lbl_8053C2C0@ha
/* 802BAA14 002B6674  38 00 00 00 */	li r0, 0
/* 802BAA18 002B6678  38 63 C2 C0 */	addi r3, r3, lbl_8053C2C0@l
/* 802BAA1C 002B667C  3C 63 00 03 */	addis r3, r3, 3
/* 802BAA20 002B6680  90 03 88 38 */	stw r0, -0x77c8(r3)
/* 802BAA24 002B6684  90 03 88 3C */	stw r0, -0x77c4(r3)
/* 802BAA28 002B6688  90 03 88 40 */	stw r0, -0x77c0(r3)
/* 802BAA2C 002B668C  90 03 88 60 */	stw r0, -0x77a0(r3)
/* 802BAA30 002B6690  90 03 88 80 */	stw r0, -0x7780(r3)
/* 802BAA34 002B6694  90 03 88 A0 */	stw r0, -0x7760(r3)
/* 802BAA38 002B6698  90 03 88 C0 */	stw r0, -0x7740(r3)
/* 802BAA3C 002B669C  90 03 88 44 */	stw r0, -0x77bc(r3)
/* 802BAA40 002B66A0  90 03 88 64 */	stw r0, -0x779c(r3)
/* 802BAA44 002B66A4  90 03 88 84 */	stw r0, -0x777c(r3)
/* 802BAA48 002B66A8  90 03 88 A4 */	stw r0, -0x775c(r3)
/* 802BAA4C 002B66AC  90 03 88 C4 */	stw r0, -0x773c(r3)
/* 802BAA50 002B66B0  90 03 88 48 */	stw r0, -0x77b8(r3)
/* 802BAA54 002B66B4  90 03 88 68 */	stw r0, -0x7798(r3)
/* 802BAA58 002B66B8  90 03 88 88 */	stw r0, -0x7778(r3)
/* 802BAA5C 002B66BC  90 03 88 A8 */	stw r0, -0x7758(r3)
/* 802BAA60 002B66C0  90 03 88 C8 */	stw r0, -0x7738(r3)
/* 802BAA64 002B66C4  90 03 88 4C */	stw r0, -0x77b4(r3)
/* 802BAA68 002B66C8  90 03 88 6C */	stw r0, -0x7794(r3)
/* 802BAA6C 002B66CC  90 03 88 8C */	stw r0, -0x7774(r3)
/* 802BAA70 002B66D0  90 03 88 AC */	stw r0, -0x7754(r3)
/* 802BAA74 002B66D4  90 03 88 CC */	stw r0, -0x7734(r3)
/* 802BAA78 002B66D8  90 03 88 50 */	stw r0, -0x77b0(r3)
/* 802BAA7C 002B66DC  90 03 88 70 */	stw r0, -0x7790(r3)
/* 802BAA80 002B66E0  90 03 88 90 */	stw r0, -0x7770(r3)
/* 802BAA84 002B66E4  90 03 88 B0 */	stw r0, -0x7750(r3)
/* 802BAA88 002B66E8  90 03 88 D0 */	stw r0, -0x7730(r3)
/* 802BAA8C 002B66EC  90 03 88 54 */	stw r0, -0x77ac(r3)
/* 802BAA90 002B66F0  90 03 88 74 */	stw r0, -0x778c(r3)
/* 802BAA94 002B66F4  90 03 88 94 */	stw r0, -0x776c(r3)
/* 802BAA98 002B66F8  90 03 88 B4 */	stw r0, -0x774c(r3)
/* 802BAA9C 002B66FC  90 03 88 D4 */	stw r0, -0x772c(r3)
/* 802BAAA0 002B6700  90 03 88 58 */	stw r0, -0x77a8(r3)
/* 802BAAA4 002B6704  90 03 88 78 */	stw r0, -0x7788(r3)
/* 802BAAA8 002B6708  90 03 88 98 */	stw r0, -0x7768(r3)
/* 802BAAAC 002B670C  90 03 88 B8 */	stw r0, -0x7748(r3)
/* 802BAAB0 002B6710  90 03 88 D8 */	stw r0, -0x7728(r3)
/* 802BAAB4 002B6714  90 03 88 5C */	stw r0, -0x77a4(r3)
/* 802BAAB8 002B6718  90 03 88 7C */	stw r0, -0x7784(r3)
/* 802BAABC 002B671C  90 03 88 9C */	stw r0, -0x7764(r3)
/* 802BAAC0 002B6720  90 03 88 BC */	stw r0, -0x7744(r3)
/* 802BAAC4 002B6724  90 03 88 DC */	stw r0, -0x7724(r3)
/* 802BAAC8 002B6728  4E 80 00 20 */	blr

.global GKI_get_tick_count
GKI_get_tick_count:
/* 802BAACC 002B672C  3C 60 80 54 */	lis r3, lbl_8053C2C0@ha
/* 802BAAD0 002B6730  38 63 C2 C0 */	addi r3, r3, lbl_8053C2C0@l
/* 802BAAD4 002B6734  3C 63 00 03 */	addis r3, r3, 3
/* 802BAAD8 002B6738  80 63 88 28 */	lwz r3, -0x77d8(r3)
/* 802BAADC 002B673C  4E 80 00 20 */	blr

.global GKI_start_timer
GKI_start_timer:
/* 802BAAE0 002B6740  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802BAAE4 002B6744  7C 08 02 A6 */	mflr r0
/* 802BAAE8 002B6748  90 01 00 24 */	stw r0, 0x24(r1)
/* 802BAAEC 002B674C  39 61 00 20 */	addi r11, r1, 0x20
/* 802BAAF0 002B6750  4B F0 C6 39 */	bl _savegpr_27
/* 802BAAF4 002B6754  7C 7B 1B 78 */	mr r27, r3
/* 802BAAF8 002B6758  7C 9D 23 78 */	mr r29, r4
/* 802BAAFC 002B675C  7C BF 2B 78 */	mr r31, r5
/* 802BAB00 002B6760  48 00 06 55 */	bl GKI_get_taskid
/* 802BAB04 002B6764  2C 1D 00 00 */	cmpwi r29, 0
/* 802BAB08 002B6768  7C 7C 1B 78 */	mr r28, r3
/* 802BAB0C 002B676C  3B C0 00 00 */	li r30, 0
/* 802BAB10 002B6770  41 81 00 08 */	bgt lbl_802BAB18
/* 802BAB14 002B6774  3B A0 00 01 */	li r29, 1
lbl_802BAB18:
/* 802BAB18 002B6778  7C 1F 00 D0 */	neg r0, r31
/* 802BAB1C 002B677C  7C 00 FB 78 */	or r0, r0, r31
/* 802BAB20 002B6780  7C 00 FE 70 */	srawi r0, r0, 0x1f
/* 802BAB24 002B6784  7F BF 00 38 */	and r31, r29, r0
/* 802BAB28 002B6788  48 00 06 59 */	bl GKI_disable
/* 802BAB2C 002B678C  3C 80 80 54 */	lis r4, lbl_8053C2C0@ha
/* 802BAB30 002B6790  3C 60 80 00 */	lis r3, 0x7FFFFFFF@ha
/* 802BAB34 002B6794  38 84 C2 C0 */	addi r4, r4, lbl_8053C2C0@l
/* 802BAB38 002B6798  3C A4 00 03 */	addis r5, r4, 3
/* 802BAB3C 002B679C  38 83 FF FF */	addi r4, r3, 0x7FFFFFFF@l
/* 802BAB40 002B67A0  80 65 88 38 */	lwz r3, -0x77c8(r5)
/* 802BAB44 002B67A4  80 05 88 3C */	lwz r0, -0x77c4(r5)
/* 802BAB48 002B67A8  7C 63 00 50 */	subf r3, r3, r0
/* 802BAB4C 002B67AC  7C 03 20 50 */	subf r0, r3, r4
/* 802BAB50 002B67B0  7C 00 E8 00 */	cmpw r0, r29
/* 802BAB54 002B67B4  40 81 00 08 */	ble lbl_802BAB5C
/* 802BAB58 002B67B8  7C 9D 1A 14 */	add r4, r29, r3
lbl_802BAB5C:
/* 802BAB5C 002B67BC  2C 1B 00 01 */	cmpwi r27, 1
/* 802BAB60 002B67C0  41 82 00 34 */	beq lbl_802BAB94
/* 802BAB64 002B67C4  40 80 00 50 */	bge lbl_802BABB4
/* 802BAB68 002B67C8  2C 1B 00 00 */	cmpwi r27, 0
/* 802BAB6C 002B67CC  40 80 00 08 */	bge lbl_802BAB74
/* 802BAB70 002B67D0  48 00 00 44 */	b lbl_802BABB4
lbl_802BAB74:
/* 802BAB74 002B67D4  3C 60 80 54 */	lis r3, lbl_8053C2C0@ha
/* 802BAB78 002B67D8  57 85 15 BA */	rlwinm r5, r28, 2, 0x16, 0x1d
/* 802BAB7C 002B67DC  38 63 C2 C0 */	addi r3, r3, lbl_8053C2C0@l
/* 802BAB80 002B67E0  3C 03 00 03 */	addis r0, r3, 3
/* 802BAB84 002B67E4  7C 60 2A 14 */	add r3, r0, r5
/* 802BAB88 002B67E8  93 E3 88 80 */	stw r31, -0x7780(r3)
/* 802BAB8C 002B67EC  90 83 88 60 */	stw r4, -0x77a0(r3)
/* 802BAB90 002B67F0  48 00 00 28 */	b lbl_802BABB8
lbl_802BAB94:
/* 802BAB94 002B67F4  3C 60 80 54 */	lis r3, lbl_8053C2C0@ha
/* 802BAB98 002B67F8  57 85 15 BA */	rlwinm r5, r28, 2, 0x16, 0x1d
/* 802BAB9C 002B67FC  38 63 C2 C0 */	addi r3, r3, lbl_8053C2C0@l
/* 802BABA0 002B6800  3C 03 00 03 */	addis r0, r3, 3
/* 802BABA4 002B6804  7C 60 2A 14 */	add r3, r0, r5
/* 802BABA8 002B6808  93 E3 88 C0 */	stw r31, -0x7740(r3)
/* 802BABAC 002B680C  90 83 88 A0 */	stw r4, -0x7760(r3)
/* 802BABB0 002B6810  48 00 00 08 */	b lbl_802BABB8
lbl_802BABB4:
/* 802BABB4 002B6814  3B C0 00 01 */	li r30, 1
lbl_802BABB8:
/* 802BABB8 002B6818  2C 1E 00 00 */	cmpwi r30, 0
/* 802BABBC 002B681C  40 82 00 58 */	bne lbl_802BAC14
/* 802BABC0 002B6820  2C 1D 00 00 */	cmpwi r29, 0
/* 802BABC4 002B6824  40 81 00 50 */	ble lbl_802BAC14
/* 802BABC8 002B6828  3C 60 80 54 */	lis r3, lbl_8053C2C0@ha
/* 802BABCC 002B682C  38 63 C2 C0 */	addi r3, r3, lbl_8053C2C0@l
/* 802BABD0 002B6830  3C 63 00 03 */	addis r3, r3, 3
/* 802BABD4 002B6834  80 83 88 3C */	lwz r4, -0x77c4(r3)
/* 802BABD8 002B6838  2C 04 00 00 */	cmpwi r4, 0
/* 802BABDC 002B683C  41 82 00 18 */	beq lbl_802BABF4
/* 802BABE0 002B6840  80 03 88 38 */	lwz r0, -0x77c8(r3)
/* 802BABE4 002B6844  7C 1D 00 00 */	cmpw r29, r0
/* 802BABE8 002B6848  40 80 00 2C */	bge lbl_802BAC14
/* 802BABEC 002B684C  2C 00 00 00 */	cmpwi r0, 0
/* 802BABF0 002B6850  40 81 00 24 */	ble lbl_802BAC14
lbl_802BABF4:
/* 802BABF4 002B6854  3C 60 80 54 */	lis r3, lbl_8053C2C0@ha
/* 802BABF8 002B6858  38 63 C2 C0 */	addi r3, r3, lbl_8053C2C0@l
/* 802BABFC 002B685C  3C 63 00 03 */	addis r3, r3, 3
/* 802BAC00 002B6860  80 03 88 38 */	lwz r0, -0x77c8(r3)
/* 802BAC04 002B6864  7C 00 20 50 */	subf r0, r0, r4
/* 802BAC08 002B6868  7C 1D 02 14 */	add r0, r29, r0
/* 802BAC0C 002B686C  90 03 88 3C */	stw r0, -0x77c4(r3)
/* 802BAC10 002B6870  93 A3 88 38 */	stw r29, -0x77c8(r3)
lbl_802BAC14:
/* 802BAC14 002B6874  48 00 05 49 */	bl GKI_enable
/* 802BAC18 002B6878  39 61 00 20 */	addi r11, r1, 0x20
/* 802BAC1C 002B687C  4B F0 C5 59 */	bl _restgpr_27
/* 802BAC20 002B6880  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802BAC24 002B6884  7C 08 03 A6 */	mtlr r0
/* 802BAC28 002B6888  38 21 00 20 */	addi r1, r1, 0x20
/* 802BAC2C 002B688C  4E 80 00 20 */	blr

.global GKI_stop_timer
GKI_stop_timer:
/* 802BAC30 002B6890  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802BAC34 002B6894  7C 08 02 A6 */	mflr r0
/* 802BAC38 002B6898  90 01 00 14 */	stw r0, 0x14(r1)
/* 802BAC3C 002B689C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802BAC40 002B68A0  7C 7F 1B 78 */	mr r31, r3
/* 802BAC44 002B68A4  48 00 05 11 */	bl GKI_get_taskid
/* 802BAC48 002B68A8  2C 1F 00 01 */	cmpwi r31, 1
/* 802BAC4C 002B68AC  41 82 00 38 */	beq lbl_802BAC84
/* 802BAC50 002B68B0  40 80 00 54 */	bge lbl_802BACA4
/* 802BAC54 002B68B4  2C 1F 00 00 */	cmpwi r31, 0
/* 802BAC58 002B68B8  40 80 00 08 */	bge lbl_802BAC60
/* 802BAC5C 002B68BC  48 00 00 48 */	b lbl_802BACA4
lbl_802BAC60:
/* 802BAC60 002B68C0  3C 80 80 54 */	lis r4, lbl_8053C2C0@ha
/* 802BAC64 002B68C4  54 63 15 BA */	rlwinm r3, r3, 2, 0x16, 0x1d
/* 802BAC68 002B68C8  38 84 C2 C0 */	addi r4, r4, lbl_8053C2C0@l
/* 802BAC6C 002B68CC  38 A0 00 00 */	li r5, 0
/* 802BAC70 002B68D0  3C 04 00 03 */	addis r0, r4, 3
/* 802BAC74 002B68D4  7C 60 1A 14 */	add r3, r0, r3
/* 802BAC78 002B68D8  90 A3 88 80 */	stw r5, -0x7780(r3)
/* 802BAC7C 002B68DC  90 A3 88 60 */	stw r5, -0x77a0(r3)
/* 802BAC80 002B68E0  48 00 00 24 */	b lbl_802BACA4
lbl_802BAC84:
/* 802BAC84 002B68E4  3C 80 80 54 */	lis r4, lbl_8053C2C0@ha
/* 802BAC88 002B68E8  54 63 15 BA */	rlwinm r3, r3, 2, 0x16, 0x1d
/* 802BAC8C 002B68EC  38 84 C2 C0 */	addi r4, r4, lbl_8053C2C0@l
/* 802BAC90 002B68F0  38 A0 00 00 */	li r5, 0
/* 802BAC94 002B68F4  3C 04 00 03 */	addis r0, r4, 3
/* 802BAC98 002B68F8  7C 60 1A 14 */	add r3, r0, r3
/* 802BAC9C 002B68FC  90 A3 88 C0 */	stw r5, -0x7740(r3)
/* 802BACA0 002B6900  90 A3 88 A0 */	stw r5, -0x7760(r3)
lbl_802BACA4:
/* 802BACA4 002B6904  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802BACA8 002B6908  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802BACAC 002B690C  7C 08 03 A6 */	mtlr r0
/* 802BACB0 002B6910  38 21 00 10 */	addi r1, r1, 0x10
/* 802BACB4 002B6914  4E 80 00 20 */	blr

.global GKI_init_timer_list
GKI_init_timer_list:
/* 802BACB8 002B6918  38 00 00 00 */	li r0, 0
/* 802BACBC 002B691C  90 03 00 00 */	stw r0, 0(r3)
/* 802BACC0 002B6920  90 03 00 04 */	stw r0, 4(r3)
/* 802BACC4 002B6924  90 03 00 08 */	stw r0, 8(r3)
/* 802BACC8 002B6928  4E 80 00 20 */	blr

.global GKI_update_timer_list
GKI_update_timer_list:
/* 802BACCC 002B692C  80 C3 00 00 */	lwz r6, 0(r3)
/* 802BACD0 002B6930  38 E0 00 00 */	li r7, 0
/* 802BACD4 002B6934  48 00 00 0C */	b lbl_802BACE0
lbl_802BACD8:
/* 802BACD8 002B6938  80 C6 00 00 */	lwz r6, 0(r6)
/* 802BACDC 002B693C  38 E7 00 01 */	addi r7, r7, 1
lbl_802BACE0:
/* 802BACE0 002B6940  2C 06 00 00 */	cmpwi r6, 0
/* 802BACE4 002B6944  41 82 00 10 */	beq lbl_802BACF4
/* 802BACE8 002B6948  80 06 00 0C */	lwz r0, 0xc(r6)
/* 802BACEC 002B694C  2C 00 00 00 */	cmpwi r0, 0
/* 802BACF0 002B6950  40 81 FF E8 */	ble lbl_802BACD8
lbl_802BACF4:
/* 802BACF4 002B6954  7C 88 23 78 */	mr r8, r4
/* 802BACF8 002B6958  38 00 00 00 */	li r0, 0
/* 802BACFC 002B695C  48 00 00 24 */	b lbl_802BAD20
lbl_802BAD00:
/* 802BAD00 002B6960  81 26 00 0C */	lwz r9, 0xc(r6)
/* 802BAD04 002B6964  7C A8 48 51 */	subf. r5, r8, r9
/* 802BAD08 002B6968  90 A6 00 0C */	stw r5, 0xc(r6)
/* 802BAD0C 002B696C  41 81 00 0C */	bgt lbl_802BAD18
/* 802BAD10 002B6970  90 06 00 0C */	stw r0, 0xc(r6)
/* 802BAD14 002B6974  38 E7 00 01 */	addi r7, r7, 1
lbl_802BAD18:
/* 802BAD18 002B6978  7D 09 40 50 */	subf r8, r9, r8
/* 802BAD1C 002B697C  80 C6 00 00 */	lwz r6, 0(r6)
lbl_802BAD20:
/* 802BAD20 002B6980  2C 06 00 00 */	cmpwi r6, 0
/* 802BAD24 002B6984  41 82 00 0C */	beq lbl_802BAD30
/* 802BAD28 002B6988  2C 08 00 00 */	cmpwi r8, 0
/* 802BAD2C 002B698C  41 81 FF D4 */	bgt lbl_802BAD00
lbl_802BAD30:
/* 802BAD30 002B6990  80 03 00 08 */	lwz r0, 8(r3)
/* 802BAD34 002B6994  2C 00 00 00 */	cmpwi r0, 0
/* 802BAD38 002B6998  40 81 00 18 */	ble lbl_802BAD50
/* 802BAD3C 002B699C  7C 04 00 51 */	subf. r0, r4, r0
/* 802BAD40 002B69A0  90 03 00 08 */	stw r0, 8(r3)
/* 802BAD44 002B69A4  40 80 00 0C */	bge lbl_802BAD50
/* 802BAD48 002B69A8  38 00 00 00 */	li r0, 0
/* 802BAD4C 002B69AC  90 03 00 08 */	stw r0, 8(r3)
lbl_802BAD50:
/* 802BAD50 002B69B0  7C E3 3B 78 */	mr r3, r7
/* 802BAD54 002B69B4  4E 80 00 20 */	blr

.global GKI_add_to_timer_list
GKI_add_to_timer_list:
/* 802BAD58 002B69B8  80 A4 00 0C */	lwz r5, 0xc(r4)
/* 802BAD5C 002B69BC  2C 05 00 00 */	cmpwi r5, 0
/* 802BAD60 002B69C0  4D 80 00 20 */	bltlr
/* 802BAD64 002B69C4  80 03 00 08 */	lwz r0, 8(r3)
/* 802BAD68 002B69C8  7C 05 00 00 */	cmpw r5, r0
/* 802BAD6C 002B69CC  41 80 00 54 */	blt lbl_802BADC0
/* 802BAD70 002B69D0  80 03 00 00 */	lwz r0, 0(r3)
/* 802BAD74 002B69D4  2C 00 00 00 */	cmpwi r0, 0
/* 802BAD78 002B69D8  40 82 00 0C */	bne lbl_802BAD84
/* 802BAD7C 002B69DC  90 83 00 00 */	stw r4, 0(r3)
/* 802BAD80 002B69E0  48 00 00 1C */	b lbl_802BAD9C
lbl_802BAD84:
/* 802BAD84 002B69E4  80 A3 00 04 */	lwz r5, 4(r3)
/* 802BAD88 002B69E8  2C 05 00 00 */	cmpwi r5, 0
/* 802BAD8C 002B69EC  41 82 00 08 */	beq lbl_802BAD94
/* 802BAD90 002B69F0  90 85 00 00 */	stw r4, 0(r5)
lbl_802BAD94:
/* 802BAD94 002B69F4  80 03 00 04 */	lwz r0, 4(r3)
/* 802BAD98 002B69F8  90 04 00 04 */	stw r0, 4(r4)
lbl_802BAD9C:
/* 802BAD9C 002B69FC  38 00 00 00 */	li r0, 0
/* 802BADA0 002B6A00  90 04 00 00 */	stw r0, 0(r4)
/* 802BADA4 002B6A04  90 83 00 04 */	stw r4, 4(r3)
/* 802BADA8 002B6A08  80 03 00 08 */	lwz r0, 8(r3)
/* 802BADAC 002B6A0C  80 A4 00 0C */	lwz r5, 0xc(r4)
/* 802BADB0 002B6A10  7C 00 28 50 */	subf r0, r0, r5
/* 802BADB4 002B6A14  90 04 00 0C */	stw r0, 0xc(r4)
/* 802BADB8 002B6A18  90 A3 00 08 */	stw r5, 8(r3)
/* 802BADBC 002B6A1C  48 00 00 7C */	b lbl_802BAE38
lbl_802BADC0:
/* 802BADC0 002B6A20  80 C3 00 00 */	lwz r6, 0(r3)
/* 802BADC4 002B6A24  48 00 00 1C */	b lbl_802BADE0
lbl_802BADC8:
/* 802BADC8 002B6A28  2C 05 00 00 */	cmpwi r5, 0
/* 802BADCC 002B6A2C  40 81 00 10 */	ble lbl_802BADDC
/* 802BADD0 002B6A30  80 04 00 0C */	lwz r0, 0xc(r4)
/* 802BADD4 002B6A34  7C 05 00 50 */	subf r0, r5, r0
/* 802BADD8 002B6A38  90 04 00 0C */	stw r0, 0xc(r4)
lbl_802BADDC:
/* 802BADDC 002B6A3C  80 C6 00 00 */	lwz r6, 0(r6)
lbl_802BADE0:
/* 802BADE0 002B6A40  80 A6 00 0C */	lwz r5, 0xc(r6)
/* 802BADE4 002B6A44  80 04 00 0C */	lwz r0, 0xc(r4)
/* 802BADE8 002B6A48  7C 00 28 00 */	cmpw r0, r5
/* 802BADEC 002B6A4C  41 81 FF DC */	bgt lbl_802BADC8
/* 802BADF0 002B6A50  80 03 00 00 */	lwz r0, 0(r3)
/* 802BADF4 002B6A54  7C 06 00 40 */	cmplw r6, r0
/* 802BADF8 002B6A58  40 82 00 18 */	bne lbl_802BAE10
/* 802BADFC 002B6A5C  90 04 00 00 */	stw r0, 0(r4)
/* 802BAE00 002B6A60  80 A3 00 00 */	lwz r5, 0(r3)
/* 802BAE04 002B6A64  90 85 00 04 */	stw r4, 4(r5)
/* 802BAE08 002B6A68  90 83 00 00 */	stw r4, 0(r3)
/* 802BAE0C 002B6A6C  48 00 00 1C */	b lbl_802BAE28
lbl_802BAE10:
/* 802BAE10 002B6A70  80 66 00 04 */	lwz r3, 4(r6)
/* 802BAE14 002B6A74  90 83 00 00 */	stw r4, 0(r3)
/* 802BAE18 002B6A78  80 06 00 04 */	lwz r0, 4(r6)
/* 802BAE1C 002B6A7C  90 04 00 04 */	stw r0, 4(r4)
/* 802BAE20 002B6A80  90 86 00 04 */	stw r4, 4(r6)
/* 802BAE24 002B6A84  90 C4 00 00 */	stw r6, 0(r4)
lbl_802BAE28:
/* 802BAE28 002B6A88  80 64 00 0C */	lwz r3, 0xc(r4)
/* 802BAE2C 002B6A8C  80 06 00 0C */	lwz r0, 0xc(r6)
/* 802BAE30 002B6A90  7C 03 00 50 */	subf r0, r3, r0
/* 802BAE34 002B6A94  90 06 00 0C */	stw r0, 0xc(r6)
lbl_802BAE38:
/* 802BAE38 002B6A98  38 00 00 01 */	li r0, 1
/* 802BAE3C 002B6A9C  98 04 00 16 */	stb r0, 0x16(r4)
/* 802BAE40 002B6AA0  4E 80 00 20 */	blr

.global GKI_remove_from_timer_list
GKI_remove_from_timer_list:
/* 802BAE44 002B6AA4  2C 04 00 00 */	cmpwi r4, 0
/* 802BAE48 002B6AA8  4D 82 00 20 */	beqlr
/* 802BAE4C 002B6AAC  88 04 00 16 */	lbz r0, 0x16(r4)
/* 802BAE50 002B6AB0  2C 00 00 00 */	cmpwi r0, 0
/* 802BAE54 002B6AB4  4D 82 00 20 */	beqlr
/* 802BAE58 002B6AB8  80 03 00 00 */	lwz r0, 0(r3)
/* 802BAE5C 002B6ABC  2C 00 00 00 */	cmpwi r0, 0
/* 802BAE60 002B6AC0  40 82 00 08 */	bne lbl_802BAE68
/* 802BAE64 002B6AC4  4E 80 00 20 */	blr
lbl_802BAE68:
/* 802BAE68 002B6AC8  80 C4 00 00 */	lwz r6, 0(r4)
/* 802BAE6C 002B6ACC  2C 06 00 00 */	cmpwi r6, 0
/* 802BAE70 002B6AD0  41 82 00 18 */	beq lbl_802BAE88
/* 802BAE74 002B6AD4  80 A6 00 0C */	lwz r5, 0xc(r6)
/* 802BAE78 002B6AD8  80 04 00 0C */	lwz r0, 0xc(r4)
/* 802BAE7C 002B6ADC  7C 05 02 14 */	add r0, r5, r0
/* 802BAE80 002B6AE0  90 06 00 0C */	stw r0, 0xc(r6)
/* 802BAE84 002B6AE4  48 00 00 14 */	b lbl_802BAE98
lbl_802BAE88:
/* 802BAE88 002B6AE8  80 A4 00 0C */	lwz r5, 0xc(r4)
/* 802BAE8C 002B6AEC  80 03 00 08 */	lwz r0, 8(r3)
/* 802BAE90 002B6AF0  7C 05 00 50 */	subf r0, r5, r0
/* 802BAE94 002B6AF4  90 03 00 08 */	stw r0, 8(r3)
lbl_802BAE98:
/* 802BAE98 002B6AF8  80 03 00 00 */	lwz r0, 0(r3)
/* 802BAE9C 002B6AFC  7C 00 20 40 */	cmplw r0, r4
/* 802BAEA0 002B6B00  40 82 00 34 */	bne lbl_802BAED4
/* 802BAEA4 002B6B04  80 A4 00 00 */	lwz r5, 0(r4)
/* 802BAEA8 002B6B08  2C 05 00 00 */	cmpwi r5, 0
/* 802BAEAC 002B6B0C  90 A3 00 00 */	stw r5, 0(r3)
/* 802BAEB0 002B6B10  41 82 00 0C */	beq lbl_802BAEBC
/* 802BAEB4 002B6B14  38 00 00 00 */	li r0, 0
/* 802BAEB8 002B6B18  90 05 00 04 */	stw r0, 4(r5)
lbl_802BAEBC:
/* 802BAEBC 002B6B1C  80 03 00 04 */	lwz r0, 4(r3)
/* 802BAEC0 002B6B20  7C 00 20 40 */	cmplw r0, r4
/* 802BAEC4 002B6B24  40 82 00 88 */	bne lbl_802BAF4C
/* 802BAEC8 002B6B28  38 00 00 00 */	li r0, 0
/* 802BAECC 002B6B2C  90 03 00 04 */	stw r0, 4(r3)
/* 802BAED0 002B6B30  48 00 00 7C */	b lbl_802BAF4C
lbl_802BAED4:
/* 802BAED4 002B6B34  80 03 00 04 */	lwz r0, 4(r3)
/* 802BAED8 002B6B38  7C 00 20 40 */	cmplw r0, r4
/* 802BAEDC 002B6B3C  40 82 00 20 */	bne lbl_802BAEFC
/* 802BAEE0 002B6B40  80 A4 00 04 */	lwz r5, 4(r4)
/* 802BAEE4 002B6B44  2C 05 00 00 */	cmpwi r5, 0
/* 802BAEE8 002B6B48  90 A3 00 04 */	stw r5, 4(r3)
/* 802BAEEC 002B6B4C  41 82 00 60 */	beq lbl_802BAF4C
/* 802BAEF0 002B6B50  38 00 00 00 */	li r0, 0
/* 802BAEF4 002B6B54  90 05 00 00 */	stw r0, 0(r5)
/* 802BAEF8 002B6B58  48 00 00 54 */	b lbl_802BAF4C
lbl_802BAEFC:
/* 802BAEFC 002B6B5C  80 64 00 00 */	lwz r3, 0(r4)
/* 802BAF00 002B6B60  2C 03 00 00 */	cmpwi r3, 0
/* 802BAF04 002B6B64  4D 82 00 20 */	beqlr
/* 802BAF08 002B6B68  80 03 00 04 */	lwz r0, 4(r3)
/* 802BAF0C 002B6B6C  7C 00 20 40 */	cmplw r0, r4
/* 802BAF10 002B6B70  4C 82 00 20 */	bnelr
/* 802BAF14 002B6B74  80 04 00 04 */	lwz r0, 4(r4)
/* 802BAF18 002B6B78  90 03 00 04 */	stw r0, 4(r3)
/* 802BAF1C 002B6B7C  48 00 00 08 */	b lbl_802BAF24
/* 802BAF20 002B6B80  4E 80 00 20 */	blr
lbl_802BAF24:
/* 802BAF24 002B6B84  80 64 00 04 */	lwz r3, 4(r4)
/* 802BAF28 002B6B88  2C 03 00 00 */	cmpwi r3, 0
/* 802BAF2C 002B6B8C  4D 82 00 20 */	beqlr
/* 802BAF30 002B6B90  80 03 00 00 */	lwz r0, 0(r3)
/* 802BAF34 002B6B94  7C 00 20 40 */	cmplw r0, r4
/* 802BAF38 002B6B98  4C 82 00 20 */	bnelr
/* 802BAF3C 002B6B9C  80 04 00 00 */	lwz r0, 0(r4)
/* 802BAF40 002B6BA0  90 03 00 00 */	stw r0, 0(r3)
/* 802BAF44 002B6BA4  48 00 00 08 */	b lbl_802BAF4C
/* 802BAF48 002B6BA8  4E 80 00 20 */	blr
lbl_802BAF4C:
/* 802BAF4C 002B6BAC  38 60 00 00 */	li r3, 0
/* 802BAF50 002B6BB0  3C 00 80 00 */	lis r0, 0x8000
/* 802BAF54 002B6BB4  90 64 00 04 */	stw r3, 4(r4)
/* 802BAF58 002B6BB8  90 64 00 00 */	stw r3, 0(r4)
/* 802BAF5C 002B6BBC  90 04 00 0C */	stw r0, 0xc(r4)
/* 802BAF60 002B6BC0  98 64 00 16 */	stb r3, 0x16(r4)
/* 802BAF64 002B6BC4  4E 80 00 20 */	blr