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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global OSGetTime
OSGetTime:
/* 802727B8 0026E418 7C 6D 42 E6 */ mftbu r3
/* 802727BC 0026E41C 7C 8C 42 E6 */ mftb r4, 0x10c
/* 802727C0 0026E420 7C AD 42 E6 */ mftbu r5
/* 802727C4 0026E424 7C 03 28 00 */ cmpw r3, r5
/* 802727C8 0026E428 40 82 FF F0 */ bne OSGetTime
/* 802727CC 0026E42C 4E 80 00 20 */ blr
.global OSGetTick
OSGetTick:
/* 802727D0 0026E430 7C 6C 42 E6 */ mftb r3, 0x10c
/* 802727D4 0026E434 4E 80 00 20 */ blr
.global __OSGetSystemTime
__OSGetSystemTime:
/* 802727D8 0026E438 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802727DC 0026E43C 7C 08 02 A6 */ mflr r0
/* 802727E0 0026E440 90 01 00 24 */ stw r0, 0x24(r1)
/* 802727E4 0026E444 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802727E8 0026E448 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802727EC 0026E44C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802727F0 0026E450 4B FF BF 6D */ bl OSDisableInterrupts
/* 802727F4 0026E454 7C 7F 1B 78 */ mr r31, r3
/* 802727F8 0026E458 4B FF FF C1 */ bl OSGetTime
/* 802727FC 0026E45C 3C C0 80 00 */ lis r6, 0x800030DC@ha
/* 80272800 0026E460 80 A6 30 DC */ lwz r5, 0x800030DC@l(r6)
/* 80272804 0026E464 80 06 30 D8 */ lwz r0, 0x30d8(r6)
/* 80272808 0026E468 7F A5 20 14 */ addc r29, r5, r4
/* 8027280C 0026E46C 7F C0 19 14 */ adde r30, r0, r3
/* 80272810 0026E470 7F E3 FB 78 */ mr r3, r31
/* 80272814 0026E474 4B FF BF 71 */ bl OSRestoreInterrupts
/* 80272818 0026E478 7F A4 EB 78 */ mr r4, r29
/* 8027281C 0026E47C 7F C3 F3 78 */ mr r3, r30
/* 80272820 0026E480 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80272824 0026E484 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80272828 0026E488 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8027282C 0026E48C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80272830 0026E490 7C 08 03 A6 */ mtlr r0
/* 80272834 0026E494 38 21 00 20 */ addi r1, r1, 0x20
/* 80272838 0026E498 4E 80 00 20 */ blr
.global __OSTimeToSystemTime
__OSTimeToSystemTime:
/* 8027283C 0026E49C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80272840 0026E4A0 7C 08 02 A6 */ mflr r0
/* 80272844 0026E4A4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80272848 0026E4A8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8027284C 0026E4AC 7C 7F 1B 78 */ mr r31, r3
/* 80272850 0026E4B0 93 C1 00 08 */ stw r30, 8(r1)
/* 80272854 0026E4B4 7C 9E 23 78 */ mr r30, r4
/* 80272858 0026E4B8 4B FF BF 05 */ bl OSDisableInterrupts
/* 8027285C 0026E4BC 3C A0 80 00 */ lis r5, 0x800030DC@ha
/* 80272860 0026E4C0 80 85 30 DC */ lwz r4, 0x800030DC@l(r5)
/* 80272864 0026E4C4 80 05 30 D8 */ lwz r0, 0x30d8(r5)
/* 80272868 0026E4C8 7F C4 F0 14 */ addc r30, r4, r30
/* 8027286C 0026E4CC 7F E0 F9 14 */ adde r31, r0, r31
/* 80272870 0026E4D0 4B FF BF 15 */ bl OSRestoreInterrupts
/* 80272874 0026E4D4 7F E3 FB 78 */ mr r3, r31
/* 80272878 0026E4D8 7F C4 F3 78 */ mr r4, r30
/* 8027287C 0026E4DC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80272880 0026E4E0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80272884 0026E4E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80272888 0026E4E8 7C 08 03 A6 */ mtlr r0
/* 8027288C 0026E4EC 38 21 00 10 */ addi r1, r1, 0x10
/* 80272890 0026E4F0 4E 80 00 20 */ blr
.global GetDates
GetDates:
/* 80272894 0026E4F4 3C E0 92 49 */ lis r7, 0x92492493@ha
/* 80272898 0026E4F8 3C C0 B3 8D */ lis r6, 0xB38CF9B1@ha
/* 8027289C 0026E4FC 39 03 00 06 */ addi r8, r3, 6
/* 802728A0 0026E500 3C A0 51 EC */ lis r5, 0x51EB851F@ha
/* 802728A4 0026E504 38 06 F9 B1 */ addi r0, r6, 0xB38CF9B1@l
/* 802728A8 0026E508 38 E7 24 93 */ addi r7, r7, 0x92492493@l
/* 802728AC 0026E50C 7C C7 40 96 */ mulhw r6, r7, r8
/* 802728B0 0026E510 39 45 85 1F */ addi r10, r5, 0x51EB851F@l
/* 802728B4 0026E514 7C 00 18 96 */ mulhw r0, r0, r3
/* 802728B8 0026E518 7C A6 42 14 */ add r5, r6, r8
/* 802728BC 0026E51C 7C A5 16 70 */ srawi r5, r5, 2
/* 802728C0 0026E520 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 802728C4 0026E524 7C A5 32 14 */ add r5, r5, r6
/* 802728C8 0026E528 7C 00 1A 14 */ add r0, r0, r3
/* 802728CC 0026E52C 1C C5 00 07 */ mulli r6, r5, 7
/* 802728D0 0026E530 7C 00 46 70 */ srawi r0, r0, 8
/* 802728D4 0026E534 54 05 0F FE */ srwi r5, r0, 0x1f
/* 802728D8 0026E538 7C A0 2A 14 */ add r5, r0, r5
/* 802728DC 0026E53C 7C 06 40 50 */ subf r0, r6, r8
/* 802728E0 0026E540 1D 65 01 6D */ mulli r11, r5, 0x16d
/* 802728E4 0026E544 90 04 00 18 */ stw r0, 0x18(r4)
/* 802728E8 0026E548 48 00 00 0C */ b lbl_802728F4
lbl_802728EC:
/* 802728EC 0026E54C 39 6B FE 93 */ addi r11, r11, -365
/* 802728F0 0026E550 38 A5 FF FF */ addi r5, r5, -1
lbl_802728F4:
/* 802728F4 0026E554 2C 05 00 01 */ cmpwi r5, 1
/* 802728F8 0026E558 41 80 00 3C */ blt lbl_80272934
/* 802728FC 0026E55C 38 C5 FF FF */ addi r6, r5, -1
/* 80272900 0026E560 38 05 00 03 */ addi r0, r5, 3
/* 80272904 0026E564 7C CA 30 96 */ mulhw r6, r10, r6
/* 80272908 0026E568 7C C8 3E 70 */ srawi r8, r6, 7
/* 8027290C 0026E56C 7C C6 2E 70 */ srawi r6, r6, 5
/* 80272910 0026E570 54 C7 0F FE */ srwi r7, r6, 0x1f
/* 80272914 0026E574 7C 00 16 70 */ srawi r0, r0, 2
/* 80272918 0026E578 55 09 0F FE */ srwi r9, r8, 0x1f
/* 8027291C 0026E57C 7C C6 3A 14 */ add r6, r6, r7
/* 80272920 0026E580 7C 00 01 94 */ addze r0, r0
/* 80272924 0026E584 7C E8 4A 14 */ add r7, r8, r9
/* 80272928 0026E588 7C 06 00 50 */ subf r0, r6, r0
/* 8027292C 0026E58C 7C 07 02 14 */ add r0, r7, r0
/* 80272930 0026E590 48 00 00 08 */ b lbl_80272938
lbl_80272934:
/* 80272934 0026E594 38 00 00 00 */ li r0, 0
lbl_80272938:
/* 80272938 0026E598 7D 0B 02 14 */ add r8, r11, r0
/* 8027293C 0026E59C 7C 03 40 00 */ cmpw r3, r8
/* 80272940 0026E5A0 41 80 FF AC */ blt lbl_802728EC
/* 80272944 0026E5A4 54 A0 F0 02 */ slwi r0, r5, 0x1e
/* 80272948 0026E5A8 54 A7 0F FE */ srwi r7, r5, 0x1f
/* 8027294C 0026E5AC 7C C7 00 50 */ subf r6, r7, r0
/* 80272950 0026E5B0 90 A4 00 14 */ stw r5, 0x14(r4)
/* 80272954 0026E5B4 7C 08 18 50 */ subf r0, r8, r3
/* 80272958 0026E5B8 54 C3 10 3E */ rotlwi r3, r6, 2
/* 8027295C 0026E5BC 90 04 00 1C */ stw r0, 0x1c(r4)
/* 80272960 0026E5C0 7C 63 3A 15 */ add. r3, r3, r7
/* 80272964 0026E5C4 38 E0 00 00 */ li r7, 0
/* 80272968 0026E5C8 40 82 00 28 */ bne lbl_80272990
/* 8027296C 0026E5CC 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 80272970 0026E5D0 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
/* 80272974 0026E5D4 7C 63 28 96 */ mulhw r3, r3, r5
/* 80272978 0026E5D8 7C 63 2E 70 */ srawi r3, r3, 5
/* 8027297C 0026E5DC 54 66 0F FE */ srwi r6, r3, 0x1f
/* 80272980 0026E5E0 7C 63 32 14 */ add r3, r3, r6
/* 80272984 0026E5E4 1C 63 00 64 */ mulli r3, r3, 0x64
/* 80272988 0026E5E8 7C 63 28 51 */ subf. r3, r3, r5
/* 8027298C 0026E5EC 40 82 00 28 */ bne lbl_802729B4
lbl_80272990:
/* 80272990 0026E5F0 3C 60 51 EC */ lis r3, 0x51EB851F@ha
/* 80272994 0026E5F4 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
/* 80272998 0026E5F8 7C 63 28 96 */ mulhw r3, r3, r5
/* 8027299C 0026E5FC 7C 63 3E 70 */ srawi r3, r3, 7
/* 802729A0 0026E600 54 66 0F FE */ srwi r6, r3, 0x1f
/* 802729A4 0026E604 7C 63 32 14 */ add r3, r3, r6
/* 802729A8 0026E608 1C 63 01 90 */ mulli r3, r3, 0x190
/* 802729AC 0026E60C 7C 63 28 51 */ subf. r3, r3, r5
/* 802729B0 0026E610 40 82 00 08 */ bne lbl_802729B8
lbl_802729B4:
/* 802729B4 0026E614 38 E0 00 01 */ li r7, 1
lbl_802729B8:
/* 802729B8 0026E618 2C 07 00 00 */ cmpwi r7, 0
/* 802729BC 0026E61C 3C C0 80 42 */ lis r6, lbl_80427DC8@ha
/* 802729C0 0026E620 38 C6 7D C8 */ addi r6, r6, lbl_80427DC8@l
/* 802729C4 0026E624 41 82 00 0C */ beq lbl_802729D0
/* 802729C8 0026E628 3C C0 80 42 */ lis r6, lbl_80427DF8@ha
/* 802729CC 0026E62C 38 C6 7D F8 */ addi r6, r6, lbl_80427DF8@l
lbl_802729D0:
/* 802729D0 0026E630 38 E0 00 0C */ li r7, 0xc
/* 802729D4 0026E634 38 60 00 30 */ li r3, 0x30
lbl_802729D8:
/* 802729D8 0026E638 38 63 FF FC */ addi r3, r3, -4
/* 802729DC 0026E63C 38 E7 FF FF */ addi r7, r7, -1
/* 802729E0 0026E640 7C A6 18 2E */ lwzx r5, r6, r3
/* 802729E4 0026E644 7C 00 28 00 */ cmpw r0, r5
/* 802729E8 0026E648 41 80 FF F0 */ blt lbl_802729D8
/* 802729EC 0026E64C 90 E4 00 10 */ stw r7, 0x10(r4)
/* 802729F0 0026E650 7C 66 18 2E */ lwzx r3, r6, r3
/* 802729F4 0026E654 7C 63 00 50 */ subf r3, r3, r0
/* 802729F8 0026E658 38 03 00 01 */ addi r0, r3, 1
/* 802729FC 0026E65C 90 04 00 0C */ stw r0, 0xc(r4)
/* 80272A00 0026E660 4E 80 00 20 */ blr
.global OSTicksToCalendarTime
OSTicksToCalendarTime:
/* 80272A04 0026E664 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80272A08 0026E668 7C 08 02 A6 */ mflr r0
/* 80272A0C 0026E66C 90 01 00 24 */ stw r0, 0x24(r1)
/* 80272A10 0026E670 39 61 00 20 */ addi r11, r1, 0x20
/* 80272A14 0026E674 4B F5 47 11 */ bl _savegpr_26
/* 80272A18 0026E678 3C C0 80 00 */ lis r6, 0x800000F8@ha
/* 80272A1C 0026E67C 7C BD 2B 78 */ mr r29, r5
/* 80272A20 0026E680 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
/* 80272A24 0026E684 7C 7C 1B 78 */ mr r28, r3
/* 80272A28 0026E688 7C 9B 23 78 */ mr r27, r4
/* 80272A2C 0026E68C 38 A0 00 00 */ li r5, 0
/* 80272A30 0026E690 54 1A F0 BE */ srwi r26, r0, 2
/* 80272A34 0026E694 7F 46 D3 78 */ mr r6, r26
/* 80272A38 0026E698 4B F5 4A 5D */ bl __mod2i
/* 80272A3C 0026E69C 38 E0 00 00 */ li r7, 0
/* 80272A40 0026E6A0 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 80272A44 0026E6A4 6C E6 80 00 */ xoris r6, r7, 0x8000
/* 80272A48 0026E6A8 7C 9E 23 78 */ mr r30, r4
/* 80272A4C 0026E6AC 7C A7 20 10 */ subfc r5, r7, r4
/* 80272A50 0026E6B0 7C 7F 1B 78 */ mr r31, r3
/* 80272A54 0026E6B4 7C C6 01 10 */ subfe r6, r6, r0
/* 80272A58 0026E6B8 7C C0 01 10 */ subfe r6, r0, r0
/* 80272A5C 0026E6BC 7C C6 00 D1 */ neg. r6, r6
/* 80272A60 0026E6C0 41 82 00 0C */ beq lbl_80272A6C
/* 80272A64 0026E6C4 7F C4 D0 14 */ addc r30, r4, r26
/* 80272A68 0026E6C8 7F E3 39 14 */ adde r31, r3, r7
lbl_80272A6C:
/* 80272A6C 0026E6CC 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 80272A70 0026E6D0 57 E3 18 38 */ slwi r3, r31, 3
/* 80272A74 0026E6D4 38 04 DE 83 */ addi r0, r4, 0x431BDE83@l
/* 80272A78 0026E6D8 38 A0 00 00 */ li r5, 0
/* 80272A7C 0026E6DC 7C 00 D0 16 */ mulhwu r0, r0, r26
/* 80272A80 0026E6E0 57 C4 18 38 */ slwi r4, r30, 3
/* 80272A84 0026E6E4 53 C3 1F 7E */ rlwimi r3, r30, 3, 0x1d, 0x1f
/* 80272A88 0026E6E8 54 06 8B FE */ srwi r6, r0, 0xf
/* 80272A8C 0026E6EC 4B F5 47 ED */ bl __div2i
/* 80272A90 0026E6F0 38 C0 03 E8 */ li r6, 0x3e8
/* 80272A94 0026E6F4 38 A0 00 00 */ li r5, 0
/* 80272A98 0026E6F8 4B F5 49 FD */ bl __mod2i
/* 80272A9C 0026E6FC 90 9D 00 24 */ stw r4, 0x24(r29)
/* 80272AA0 0026E700 3F 40 80 00 */ lis r26, 0x800000F8@ha
/* 80272AA4 0026E704 3C 80 10 62 */ lis r4, 0x10624DD3@ha
/* 80272AA8 0026E708 7F E3 FB 78 */ mr r3, r31
/* 80272AAC 0026E70C 80 1A 00 F8 */ lwz r0, 0x800000F8@l(r26)
/* 80272AB0 0026E710 38 C4 4D D3 */ addi r6, r4, 0x10624DD3@l
/* 80272AB4 0026E714 7F C4 F3 78 */ mr r4, r30
/* 80272AB8 0026E718 38 A0 00 00 */ li r5, 0
/* 80272ABC 0026E71C 54 00 F0 BE */ srwi r0, r0, 2
/* 80272AC0 0026E720 7C 06 00 16 */ mulhwu r0, r6, r0
/* 80272AC4 0026E724 54 06 D1 BE */ srwi r6, r0, 6
/* 80272AC8 0026E728 4B F5 47 B1 */ bl __div2i
/* 80272ACC 0026E72C 38 C0 03 E8 */ li r6, 0x3e8
/* 80272AD0 0026E730 38 A0 00 00 */ li r5, 0
/* 80272AD4 0026E734 4B F5 49 C1 */ bl __mod2i
/* 80272AD8 0026E738 90 9D 00 20 */ stw r4, 0x20(r29)
/* 80272ADC 0026E73C 7C 9E D8 10 */ subfc r4, r30, r27
/* 80272AE0 0026E740 7C 7F E1 10 */ subfe r3, r31, r28
/* 80272AE4 0026E744 38 A0 00 00 */ li r5, 0
/* 80272AE8 0026E748 80 1A 00 F8 */ lwz r0, 0xf8(r26)
/* 80272AEC 0026E74C 54 06 F0 BE */ srwi r6, r0, 2
/* 80272AF0 0026E750 4B F5 47 89 */ bl __div2i
/* 80272AF4 0026E754 3F 60 00 01 */ lis r27, 0x00015180@ha
/* 80272AF8 0026E758 7C 9C 23 78 */ mr r28, r4
/* 80272AFC 0026E75C 7C 7A 1B 78 */ mr r26, r3
/* 80272B00 0026E760 38 A0 00 00 */ li r5, 0
/* 80272B04 0026E764 38 DB 51 80 */ addi r6, r27, 0x00015180@l
/* 80272B08 0026E768 4B F5 47 71 */ bl __div2i
/* 80272B0C 0026E76C 3C 60 00 0B */ lis r3, 0x000B2575@ha
/* 80272B10 0026E770 38 DB 51 80 */ addi r6, r27, 0x5180
/* 80272B14 0026E774 38 03 25 75 */ addi r0, r3, 0x000B2575@l
/* 80272B18 0026E778 38 A0 00 00 */ li r5, 0
/* 80272B1C 0026E77C 7F 43 D3 78 */ mr r3, r26
/* 80272B20 0026E780 7F 44 00 14 */ addc r26, r4, r0
/* 80272B24 0026E784 7F 84 E3 78 */ mr r4, r28
/* 80272B28 0026E788 4B F5 49 6D */ bl __mod2i
/* 80272B2C 0026E78C 2C 04 00 00 */ cmpwi r4, 0
/* 80272B30 0026E790 7C 9F 23 78 */ mr r31, r4
/* 80272B34 0026E794 40 80 00 10 */ bge lbl_80272B44
/* 80272B38 0026E798 3F E4 00 01 */ addis r31, r4, 1
/* 80272B3C 0026E79C 3B 5A FF FF */ addi r26, r26, -1
/* 80272B40 0026E7A0 3B FF 51 80 */ addi r31, r31, 0x5180
lbl_80272B44:
/* 80272B44 0026E7A4 7F 43 D3 78 */ mr r3, r26
/* 80272B48 0026E7A8 7F A4 EB 78 */ mr r4, r29
/* 80272B4C 0026E7AC 4B FF FD 49 */ bl GetDates
/* 80272B50 0026E7B0 3C 60 88 89 */ lis r3, 0x88888889@ha
/* 80272B54 0026E7B4 39 61 00 20 */ addi r11, r1, 0x20
/* 80272B58 0026E7B8 38 A3 88 89 */ addi r5, r3, 0x88888889@l
/* 80272B5C 0026E7BC 7C 05 F8 96 */ mulhw r0, r5, r31
/* 80272B60 0026E7C0 7C 60 FA 14 */ add r3, r0, r31
/* 80272B64 0026E7C4 7C 60 2E 70 */ srawi r0, r3, 5
/* 80272B68 0026E7C8 54 04 0F FE */ srwi r4, r0, 0x1f
/* 80272B6C 0026E7CC 7D 00 22 14 */ add r8, r0, r4
/* 80272B70 0026E7D0 7C 05 40 96 */ mulhw r0, r5, r8
/* 80272B74 0026E7D4 7C 00 42 14 */ add r0, r0, r8
/* 80272B78 0026E7D8 7C 06 2E 70 */ srawi r6, r0, 5
/* 80272B7C 0026E7DC 7C 04 2E 70 */ srawi r4, r0, 5
/* 80272B80 0026E7E0 7C 60 2E 70 */ srawi r0, r3, 5
/* 80272B84 0026E7E4 54 C7 0F FE */ srwi r7, r6, 0x1f
/* 80272B88 0026E7E8 54 85 0F FE */ srwi r5, r4, 0x1f
/* 80272B8C 0026E7EC 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80272B90 0026E7F0 7C C6 3A 14 */ add r6, r6, r7
/* 80272B94 0026E7F4 7C 00 1A 14 */ add r0, r0, r3
/* 80272B98 0026E7F8 7C 84 2A 14 */ add r4, r4, r5
/* 80272B9C 0026E7FC 1C 64 00 3C */ mulli r3, r4, 0x3c
/* 80272BA0 0026E800 90 DD 00 08 */ stw r6, 8(r29)
/* 80272BA4 0026E804 1C 00 00 3C */ mulli r0, r0, 0x3c
/* 80272BA8 0026E808 7C 63 40 50 */ subf r3, r3, r8
/* 80272BAC 0026E80C 90 7D 00 04 */ stw r3, 4(r29)
/* 80272BB0 0026E810 7C 00 F8 50 */ subf r0, r0, r31
/* 80272BB4 0026E814 90 1D 00 00 */ stw r0, 0(r29)
/* 80272BB8 0026E818 4B F5 45 B9 */ bl _restgpr_26
/* 80272BBC 0026E81C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80272BC0 0026E820 7C 08 03 A6 */ mtlr r0
/* 80272BC4 0026E824 38 21 00 20 */ addi r1, r1, 0x20
/* 80272BC8 0026E828 4E 80 00 20 */ blr
.global OSCalendarTimeToTicks
OSCalendarTimeToTicks:
/* 80272BCC 0026E82C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80272BD0 0026E830 7C 08 02 A6 */ mflr r0
/* 80272BD4 0026E834 90 01 00 44 */ stw r0, 0x44(r1)
/* 80272BD8 0026E838 39 61 00 40 */ addi r11, r1, 0x40
/* 80272BDC 0026E83C 4B F5 45 31 */ bl _savegpr_20
/* 80272BE0 0026E840 3C 80 2A AB */ lis r4, 0x2AAAAAAB@ha
/* 80272BE4 0026E844 80 A3 00 10 */ lwz r5, 0x10(r3)
/* 80272BE8 0026E848 38 04 AA AB */ addi r0, r4, 0x2AAAAAAB@l
/* 80272BEC 0026E84C 7C 00 28 96 */ mulhw r0, r0, r5
/* 80272BF0 0026E850 7C 00 0E 70 */ srawi r0, r0, 1
/* 80272BF4 0026E854 54 04 0F FE */ srwi r4, r0, 0x1f
/* 80272BF8 0026E858 7C C0 22 14 */ add r6, r0, r4
/* 80272BFC 0026E85C 1C 06 00 0C */ mulli r0, r6, 0xc
/* 80272C00 0026E860 7C 80 28 51 */ subf. r4, r0, r5
/* 80272C04 0026E864 40 80 00 0C */ bge lbl_80272C10
/* 80272C08 0026E868 38 84 00 0C */ addi r4, r4, 0xc
/* 80272C0C 0026E86C 38 C6 FF FF */ addi r6, r6, -1
lbl_80272C10:
/* 80272C10 0026E870 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80272C14 0026E874 7D 20 32 14 */ add r9, r0, r6
/* 80272C18 0026E878 2C 09 00 01 */ cmpwi r9, 1
/* 80272C1C 0026E87C 40 80 00 0C */ bge lbl_80272C28
/* 80272C20 0026E880 38 E0 00 00 */ li r7, 0
/* 80272C24 0026E884 48 00 00 40 */ b lbl_80272C64
lbl_80272C28:
/* 80272C28 0026E888 3C A0 51 EC */ lis r5, 0x51EB851F@ha
/* 80272C2C 0026E88C 38 C9 FF FF */ addi r6, r9, -1
/* 80272C30 0026E890 38 A5 85 1F */ addi r5, r5, 0x51EB851F@l
/* 80272C34 0026E894 38 09 00 03 */ addi r0, r9, 3
/* 80272C38 0026E898 7C A5 30 96 */ mulhw r5, r5, r6
/* 80272C3C 0026E89C 7C A7 3E 70 */ srawi r7, r5, 7
/* 80272C40 0026E8A0 7C A5 2E 70 */ srawi r5, r5, 5
/* 80272C44 0026E8A4 54 A6 0F FE */ srwi r6, r5, 0x1f
/* 80272C48 0026E8A8 7C 00 16 70 */ srawi r0, r0, 2
/* 80272C4C 0026E8AC 54 E8 0F FE */ srwi r8, r7, 0x1f
/* 80272C50 0026E8B0 7C A5 32 14 */ add r5, r5, r6
/* 80272C54 0026E8B4 7C 00 01 94 */ addze r0, r0
/* 80272C58 0026E8B8 7C C7 42 14 */ add r6, r7, r8
/* 80272C5C 0026E8BC 7C 05 00 50 */ subf r0, r5, r0
/* 80272C60 0026E8C0 7C E6 02 14 */ add r7, r6, r0
lbl_80272C64:
/* 80272C64 0026E8C4 55 20 F0 02 */ slwi r0, r9, 0x1e
/* 80272C68 0026E8C8 55 25 0F FE */ srwi r5, r9, 0x1f
/* 80272C6C 0026E8CC 7C 05 00 50 */ subf r0, r5, r0
/* 80272C70 0026E8D0 38 C0 00 00 */ li r6, 0
/* 80272C74 0026E8D4 54 00 10 3E */ rotlwi r0, r0, 2
/* 80272C78 0026E8D8 7C 00 2A 15 */ add. r0, r0, r5
/* 80272C7C 0026E8DC 40 82 00 28 */ bne lbl_80272CA4
/* 80272C80 0026E8E0 3C A0 51 EC */ lis r5, 0x51EB851F@ha
/* 80272C84 0026E8E4 38 05 85 1F */ addi r0, r5, 0x51EB851F@l
/* 80272C88 0026E8E8 7C 00 48 96 */ mulhw r0, r0, r9
/* 80272C8C 0026E8EC 7C 00 2E 70 */ srawi r0, r0, 5
/* 80272C90 0026E8F0 54 05 0F FE */ srwi r5, r0, 0x1f
/* 80272C94 0026E8F4 7C 00 2A 14 */ add r0, r0, r5
/* 80272C98 0026E8F8 1C 00 00 64 */ mulli r0, r0, 0x64
/* 80272C9C 0026E8FC 7C 00 48 51 */ subf. r0, r0, r9
/* 80272CA0 0026E900 40 82 00 28 */ bne lbl_80272CC8
lbl_80272CA4:
/* 80272CA4 0026E904 3C A0 51 EC */ lis r5, 0x51EB851F@ha
/* 80272CA8 0026E908 38 05 85 1F */ addi r0, r5, 0x51EB851F@l
/* 80272CAC 0026E90C 7C 00 48 96 */ mulhw r0, r0, r9
/* 80272CB0 0026E910 7C 00 3E 70 */ srawi r0, r0, 7
/* 80272CB4 0026E914 54 05 0F FE */ srwi r5, r0, 0x1f
/* 80272CB8 0026E918 7C 00 2A 14 */ add r0, r0, r5
/* 80272CBC 0026E91C 1C 00 01 90 */ mulli r0, r0, 0x190
/* 80272CC0 0026E920 7C 00 48 51 */ subf. r0, r0, r9
/* 80272CC4 0026E924 40 82 00 08 */ bne lbl_80272CCC
lbl_80272CC8:
/* 80272CC8 0026E928 38 C0 00 01 */ li r6, 1
lbl_80272CCC:
/* 80272CCC 0026E92C 2C 06 00 00 */ cmpwi r6, 0
/* 80272CD0 0026E930 3E C0 80 42 */ lis r22, lbl_80427DC8@ha
/* 80272CD4 0026E934 3A D6 7D C8 */ addi r22, r22, lbl_80427DC8@l
/* 80272CD8 0026E938 41 82 00 0C */ beq lbl_80272CE4
/* 80272CDC 0026E93C 3E C0 80 42 */ lis r22, lbl_80427DF8@ha
/* 80272CE0 0026E940 3A D6 7D F8 */ addi r22, r22, lbl_80427DF8@l
lbl_80272CE4:
/* 80272CE4 0026E944 3C A0 80 00 */ lis r5, 0x800000F8@ha
/* 80272CE8 0026E948 80 C3 00 24 */ lwz r6, 0x24(r3)
/* 80272CEC 0026E94C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
/* 80272CF0 0026E950 54 8C 10 3A */ slwi r12, r4, 2
/* 80272CF4 0026E954 3D 40 43 1C */ lis r10, 0x431BDE83@ha
/* 80272CF8 0026E958 38 A0 00 00 */ li r5, 0
/* 80272CFC 0026E95C 54 08 F0 BE */ srwi r8, r0, 2
/* 80272D00 0026E960 7C D4 FE 70 */ srawi r20, r6, 0x1f
/* 80272D04 0026E964 38 0A DE 83 */ addi r0, r10, 0x431BDE83@l
/* 80272D08 0026E968 82 E3 00 0C */ lwz r23, 0xc(r3)
/* 80272D0C 0026E96C 7C 00 40 16 */ mulhwu r0, r0, r8
/* 80272D10 0026E970 7E D6 60 2E */ lwzx r22, r22, r12
/* 80272D14 0026E974 7D 97 3A 14 */ add r12, r23, r7
/* 80272D18 0026E978 83 63 00 04 */ lwz r27, 4(r3)
/* 80272D1C 0026E97C 3D 40 00 01 */ lis r10, 0x00015180@ha
/* 80272D20 0026E980 83 A3 00 08 */ lwz r29, 8(r3)
/* 80272D24 0026E984 54 04 8B FE */ srwi r4, r0, 0xf
/* 80272D28 0026E988 3C E0 10 62 */ lis r7, 0x10624DD3@ha
/* 80272D2C 0026E98C 7E A4 30 16 */ mulhwu r21, r4, r6
/* 80272D30 0026E990 3D 60 01 E1 */ lis r11, 0x01E13380@ha
/* 80272D34 0026E994 38 E7 4D D3 */ addi r7, r7, 0x10624DD3@l
/* 80272D38 0026E998 83 43 00 00 */ lwz r26, 0(r3)
/* 80272D3C 0026E99C 38 0B 33 80 */ addi r0, r11, 0x01E13380@l
/* 80272D40 0026E9A0 81 63 00 20 */ lwz r11, 0x20(r3)
/* 80272D44 0026E9A4 7F 05 31 D6 */ mullw r24, r5, r6
/* 80272D48 0026E9A8 3A EA 51 80 */ addi r23, r10, 0x00015180@l
/* 80272D4C 0026E9AC 7C 76 62 14 */ add r3, r22, r12
/* 80272D50 0026E9B0 3B 80 00 3C */ li r28, 0x3c
/* 80272D54 0026E9B4 3A C3 FF FF */ addi r22, r3, -1
/* 80272D58 0026E9B8 3C 60 4E 1E */ lis r3, 0x4E1E4080@ha
/* 80272D5C 0026E9BC 7F 24 31 D6 */ mullw r25, r4, r6
/* 80272D60 0026E9C0 7D 55 C2 14 */ add r10, r21, r24
/* 80272D64 0026E9C4 3B E3 40 80 */ addi r31, r3, 0x4E1E4080@l
/* 80272D68 0026E9C8 3B C0 0E 10 */ li r30, 0xe10
/* 80272D6C 0026E9CC 39 80 FF F1 */ li r12, -15
/* 80272D70 0026E9D0 7C C4 A1 D6 */ mullw r6, r4, r20
/* 80272D74 0026E9D4 57 24 E8 3E */ rotlwi r4, r25, 0x1d
/* 80272D78 0026E9D8 7D 4A 32 14 */ add r10, r10, r6
/* 80272D7C 0026E9DC 7C C7 40 16 */ mulhwu r6, r7, r8
/* 80272D80 0026E9E0 7D 43 53 78 */ mr r3, r10
/* 80272D84 0026E9E4 51 44 E8 04 */ rlwimi r4, r10, 0x1d, 0, 2
/* 80272D88 0026E9E8 53 23 07 7E */ rlwimi r3, r25, 0, 0x1d, 0x1f
/* 80272D8C 0026E9EC 7C 63 1E 70 */ srawi r3, r3, 3
/* 80272D90 0026E9F0 54 CA D1 BE */ srwi r10, r6, 6
/* 80272D94 0026E9F4 7C 84 01 94 */ addze r4, r4
/* 80272D98 0026E9F8 7C 63 01 94 */ addze r3, r3
/* 80272D9C 0026E9FC 7D 38 FE 70 */ srawi r24, r9, 0x1f
/* 80272DA0 0026EA00 7C E0 48 16 */ mulhwu r7, r0, r9
/* 80272DA4 0026EA04 7E D9 FE 70 */ srawi r25, r22, 0x1f
/* 80272DA8 0026EA08 7E A5 49 D6 */ mullw r21, r5, r9
/* 80272DAC 0026EA0C 7E 87 AA 14 */ add r20, r7, r21
/* 80272DB0 0026EA10 7E A0 C1 D6 */ mullw r21, r0, r24
/* 80272DB4 0026EA14 7C D7 B0 16 */ mulhwu r6, r23, r22
/* 80272DB8 0026EA18 7E 94 AA 14 */ add r20, r20, r21
/* 80272DBC 0026EA1C 7C E5 B1 D6 */ mullw r7, r5, r22
/* 80272DC0 0026EA20 7F 06 3A 14 */ add r24, r6, r7
/* 80272DC4 0026EA24 7C E0 49 D6 */ mullw r7, r0, r9
/* 80272DC8 0026EA28 7C D7 C9 D6 */ mullw r6, r23, r25
/* 80272DCC 0026EA2C 7C 17 B1 D6 */ mullw r0, r23, r22
/* 80272DD0 0026EA30 7F 18 32 14 */ add r24, r24, r6
/* 80272DD4 0026EA34 7F 27 00 14 */ addc r25, r7, r0
/* 80272DD8 0026EA38 7C FB E0 96 */ mulhw r7, r27, r28
/* 80272DDC 0026EA3C 7F 94 C1 14 */ adde r28, r20, r24
/* 80272DE0 0026EA40 7C 1D F0 96 */ mulhw r0, r29, r30
/* 80272DE4 0026EA44 1D 3B 00 3C */ mulli r9, r27, 0x3c
/* 80272DE8 0026EA48 1C DD 0E 10 */ mulli r6, r29, 0xe10
/* 80272DEC 0026EA4C 7C C9 30 14 */ addc r6, r9, r6
/* 80272DF0 0026EA50 7C E7 01 14 */ adde r7, r7, r0
/* 80272DF4 0026EA54 7F 40 FE 70 */ srawi r0, r26, 0x1f
/* 80272DF8 0026EA58 7C C6 D0 14 */ addc r6, r6, r26
/* 80272DFC 0026EA5C 7C 07 01 14 */ adde r0, r7, r0
/* 80272E00 0026EA60 7C C6 F8 14 */ addc r6, r6, r31
/* 80272E04 0026EA64 7C 00 61 14 */ adde r0, r0, r12
/* 80272E08 0026EA68 7D 99 30 14 */ addc r12, r25, r6
/* 80272E0C 0026EA6C 7C DC 01 14 */ adde r6, r28, r0
/* 80272E10 0026EA70 7D 26 41 D6 */ mullw r9, r6, r8
/* 80272E14 0026EA74 7D 60 FE 70 */ srawi r0, r11, 0x1f
/* 80272E18 0026EA78 7C EC 40 16 */ mulhwu r7, r12, r8
/* 80272E1C 0026EA7C 7C CA 58 16 */ mulhwu r6, r10, r11
/* 80272E20 0026EA80 7D 27 4A 14 */ add r9, r7, r9
/* 80272E24 0026EA84 7C E5 59 D6 */ mullw r7, r5, r11
/* 80272E28 0026EA88 7C AC 29 D6 */ mullw r5, r12, r5
/* 80272E2C 0026EA8C 7C C6 3A 14 */ add r6, r6, r7
/* 80272E30 0026EA90 7C 0A 01 D6 */ mullw r0, r10, r0
/* 80272E34 0026EA94 7C E9 2A 14 */ add r7, r9, r5
/* 80272E38 0026EA98 7C C6 02 14 */ add r6, r6, r0
/* 80272E3C 0026EA9C 7C 0A 59 D6 */ mullw r0, r10, r11
/* 80272E40 0026EAA0 39 61 00 40 */ addi r11, r1, 0x40
/* 80272E44 0026EAA4 7C AC 41 D6 */ mullw r5, r12, r8
/* 80272E48 0026EAA8 7C A5 00 14 */ addc r5, r5, r0
/* 80272E4C 0026EAAC 7C 07 31 14 */ adde r0, r7, r6
/* 80272E50 0026EAB0 7C 84 28 14 */ addc r4, r4, r5
/* 80272E54 0026EAB4 7C 63 01 14 */ adde r3, r3, r0
/* 80272E58 0026EAB8 4B F5 43 01 */ bl _restgpr_20
/* 80272E5C 0026EABC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80272E60 0026EAC0 7C 08 03 A6 */ mtlr r0
/* 80272E64 0026EAC4 38 21 00 40 */ addi r1, r1, 0x40
/* 80272E68 0026EAC8 4E 80 00 20 */ blr
|