summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSAlarm.s
blob: 7d9dcffedf045cbb5df098c07b78383d67458a99 (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
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
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
.include "macros.inc"

.section .text

.global func_8036cc5c
.type func_8036cc5c, @function
func_8036cc5c:
/* 8036CC5C 7C0802A6 */ mflr        r0
/* 8036CC60 38600008 */ li          r3, 0x8
/* 8036CC64 90010004 */ stw         r0, 4(r1)
/* 8036CC68 9421FFF8 */ stwu        r1, -8(r1)
/* 8036CC6C 4BFFFE9D */ bl          func_8036cb08
/* 8036CC70 3C808037 */ lis         r4, func_8036d2b8@ha
/* 8036CC74 3884D2B8 */ addi        r4, r4, func_8036d2b8@l
/* 8036CC78 7C032040 */ cmplw       r3, r4
/* 8036CC7C 4182001C */ beq-        lbl_8036cc98
/* 8036CC80 38000000 */ li          r0, 0x0
/* 8036CC84 386DCA28 */ addi        r3, 0, lbl_805c6848@sda21
/* 8036CC88 90030004 */ stw         r0, 4(r3)
/* 8036CC8C 38600008 */ li          r3, 0x8
/* 8036CC90 900DCA28 */ stw         r0, lbl_805c6848@sda21(0)
/* 8036CC94 4BFFFE59 */ bl          func_8036caec
lbl_8036cc98:
/* 8036CC98 8001000C */ lwz         r0, 0xc(r1)
/* 8036CC9C 38210008 */ addi        r1, r1, 0x8
/* 8036CCA0 7C0803A6 */ mtlr        r0
/* 8036CCA4 4E800020 */ blr         
.size func_8036cc5c, . - func_8036cc5c


.global func_8036cca8
.type func_8036cca8, @function
func_8036cca8:
/* 8036CCA8 38000000 */ li          r0, 0x0
/* 8036CCAC 90030000 */ stw         r0, 0(r3)
/* 8036CCB0 4E800020 */ blr         
.size func_8036cca8, . - func_8036cca8


.global func_8036ccb4
.type func_8036ccb4, @function
func_8036ccb4:
/* 8036CCB4 7C0802A6 */ mflr        r0
/* 8036CCB8 90010004 */ stw         r0, 4(r1)
/* 8036CCBC 9421FFC0 */ stwu        r1, -0x40(r1)
/* 8036CCC0 BF210024 */ stmw        r25, 0x24(r1)
/* 8036CCC4 3B800000 */ li          r28, 0x0
/* 8036CCC8 7C7D1B78 */ mr          r29, r3
/* 8036CCCC 6F848000 */ xoris       r4, r28, 0x8000
/* 8036CCD0 3B250000 */ addi        r25, r5, 0x0
/* 8036CCD4 3BC60000 */ addi        r30, r6, 0x0
/* 8036CCD8 3BE70000 */ addi        r31, r7, 0x0
/* 8036CCDC 80030018 */ lwz         r0, 0x18(r3)
/* 8036CCE0 8103001C */ lwz         r8, 0x1c(r3)
/* 8036CCE4 6C038000 */ xoris       r3, r0, 0x8000
/* 8036CCE8 7C08E010 */ subfc       r0, r8, r28
/* 8036CCEC 7C632110 */ subfe       r3, r3, r4
/* 8036CCF0 7C642110 */ subfe       r3, r4, r4
/* 8036CCF4 7C6300D1 */ neg.        r3, r3
/* 8036CCF8 4182007C */ beq-        lbl_8036cd74
/* 8036CCFC 48005AE9 */ bl          func_803727e4
/* 8036CD00 80FD0020 */ lwz         r7, 0x20(r29)
/* 8036CD04 6C658000 */ xoris       r5, r3, 0x8000
/* 8036CD08 811D0024 */ lwz         r8, 0x24(r29)
/* 8036CD0C 6CE68000 */ xoris       r6, r7, 0x8000
/* 8036CD10 7C044010 */ subfc       r0, r4, r8
/* 8036CD14 7CA53110 */ subfe       r5, r5, r6
/* 8036CD18 7CA63110 */ subfe       r5, r6, r6
/* 8036CD1C 7CA500D1 */ neg.        r5, r5
/* 8036CD20 3BC80000 */ addi        r30, r8, 0x0
/* 8036CD24 3B270000 */ addi        r25, r7, 0x0
/* 8036CD28 4182004C */ beq-        lbl_8036cd74
/* 8036CD2C 837D0018 */ lwz         r27, 0x18(r29)
/* 8036CD30 7C882010 */ subfc       r4, r8, r4
/* 8036CD34 835D001C */ lwz         r26, 0x1c(r29)
/* 8036CD38 7C671910 */ subfe       r3, r7, r3
/* 8036CD3C 38BB0000 */ addi        r5, r27, 0x0
/* 8036CD40 38DA0000 */ addi        r6, r26, 0x0
/* 8036CD44 4802686D */ bl          func_803935b0
/* 8036CD48 38000001 */ li          r0, 0x1
/* 8036CD4C 7CA40014 */ addc        r5, r4, r0
/* 8036CD50 7C9B29D6 */ mullw       r4, r27, r5
/* 8036CD54 7C1A2816 */ mulhwu      r0, r26, r5
/* 8036CD58 7C63E114 */ adde        r3, r3, r28
/* 8036CD5C 7C840214 */ add         r4, r4, r0
/* 8036CD60 7C1A19D6 */ mullw       r0, r26, r3
/* 8036CD64 7C7A29D6 */ mullw       r3, r26, r5
/* 8036CD68 7C040214 */ add         r0, r4, r0
/* 8036CD6C 7FDE1814 */ addc        r30, r30, r3
/* 8036CD70 7F390114 */ adde        r25, r25, r0
lbl_8036cd74:
/* 8036CD74 93FD0000 */ stw         r31, 0(r29)
/* 8036CD78 6F248000 */ xoris       r4, r25, 0x8000
/* 8036CD7C 93DD000C */ stw         r30, 0xc(r29)
/* 8036CD80 933D0008 */ stw         r25, 8(r29)
/* 8036CD84 80CDCA28 */ lwz         r6, lbl_805c6848@sda21(0)
/* 8036CD88 480000C4 */ b           lbl_8036ce4c
lbl_8036cd8c:
/* 8036CD8C 80060008 */ lwz         r0, 8(r6)
/* 8036CD90 80A6000C */ lwz         r5, 0xc(r6)
/* 8036CD94 6C038000 */ xoris       r3, r0, 0x8000
/* 8036CD98 7C05F010 */ subfc       r0, r5, r30
/* 8036CD9C 7C632110 */ subfe       r3, r3, r4
/* 8036CDA0 7C642110 */ subfe       r3, r4, r4
/* 8036CDA4 7C6300D1 */ neg.        r3, r3
/* 8036CDA8 418200A0 */ beq-        lbl_8036ce48
/* 8036CDAC 80060010 */ lwz         r0, 0x10(r6)
/* 8036CDB0 901D0010 */ stw         r0, 0x10(r29)
/* 8036CDB4 93A60010 */ stw         r29, 0x10(r6)
/* 8036CDB8 90DD0014 */ stw         r6, 0x14(r29)
/* 8036CDBC 807D0010 */ lwz         r3, 0x10(r29)
/* 8036CDC0 28030000 */ cmplwi      r3, 0
/* 8036CDC4 4182000C */ beq-        lbl_8036cdd0
/* 8036CDC8 93A30014 */ stw         r29, 0x14(r3)
/* 8036CDCC 48000124 */ b           lbl_8036cef0
lbl_8036cdd0:
/* 8036CDD0 93ADCA28 */ stw         r29, lbl_805c6848@sda21(0)
/* 8036CDD4 48005A11 */ bl          func_803727e4
/* 8036CDD8 80DD000C */ lwz         r6, 0xc(r29)
/* 8036CDDC 38E00000 */ li          r7, 0x0
/* 8036CDE0 801D0008 */ lwz         r0, 8(r29)
/* 8036CDE4 6CE58000 */ xoris       r5, r7, 0x8000
/* 8036CDE8 7D043010 */ subfc       r8, r4, r6
/* 8036CDEC 7C030110 */ subfe       r0, r3, r0
/* 8036CDF0 6C068000 */ xoris       r6, r0, 0x8000
/* 8036CDF4 7C074010 */ subfc       r0, r7, r8
/* 8036CDF8 7CA53110 */ subfe       r5, r5, r6
/* 8036CDFC 7CA63110 */ subfe       r5, r6, r6
/* 8036CE00 7CA500D1 */ neg.        r5, r5
/* 8036CE04 41820010 */ beq-        lbl_8036ce14
/* 8036CE08 38600000 */ li          r3, 0x0
/* 8036CE0C 4BFFF39D */ bl          func_8036c1a8
/* 8036CE10 480000E0 */ b           lbl_8036cef0
lbl_8036ce14:
/* 8036CE14 3C808000 */ lis         r4, 0x8000
/* 8036CE18 6CE38000 */ xoris       r3, r7, 0x8000
/* 8036CE1C 7C044010 */ subfc       r0, r4, r8
/* 8036CE20 7C633110 */ subfe       r3, r3, r6
/* 8036CE24 7C663110 */ subfe       r3, r6, r6
/* 8036CE28 7C6300D1 */ neg.        r3, r3
/* 8036CE2C 41820010 */ beq-        lbl_8036ce3c
/* 8036CE30 7D034378 */ mr          r3, r8
/* 8036CE34 4BFFF375 */ bl          func_8036c1a8
/* 8036CE38 480000B8 */ b           lbl_8036cef0
lbl_8036ce3c:
/* 8036CE3C 3864FFFF */ addi        r3, r4, -0x1
/* 8036CE40 4BFFF369 */ bl          func_8036c1a8
/* 8036CE44 480000AC */ b           lbl_8036cef0
lbl_8036ce48:
/* 8036CE48 80C60014 */ lwz         r6, 0x14(r6)
lbl_8036ce4c:
/* 8036CE4C 28060000 */ cmplwi      r6, 0
/* 8036CE50 4082FF3C */ bne+        lbl_8036cd8c
/* 8036CE54 3BC00000 */ li          r30, 0x0
/* 8036CE58 93DD0014 */ stw         r30, 0x14(r29)
/* 8036CE5C 386DCA28 */ addi        r3, 0, lbl_805c6848@sda21
/* 8036CE60 80830004 */ lwz         r4, 4(r3)
/* 8036CE64 97A30004 */ stwu        r29, 4(r3)
/* 8036CE68 28040000 */ cmplwi      r4, 0
/* 8036CE6C 909D0010 */ stw         r4, 0x10(r29)
/* 8036CE70 4182000C */ beq-        lbl_8036ce7c
/* 8036CE74 93A40014 */ stw         r29, 0x14(r4)
/* 8036CE78 48000078 */ b           lbl_8036cef0
lbl_8036ce7c:
/* 8036CE7C 93A30000 */ stw         r29, 0(r3)
/* 8036CE80 93ADCA28 */ stw         r29, lbl_805c6848@sda21(0)
/* 8036CE84 48005961 */ bl          func_803727e4
/* 8036CE88 80DD000C */ lwz         r6, 0xc(r29)
/* 8036CE8C 6FC58000 */ xoris       r5, r30, 0x8000
/* 8036CE90 801D0008 */ lwz         r0, 8(r29)
/* 8036CE94 7CE43010 */ subfc       r7, r4, r6
/* 8036CE98 7C030110 */ subfe       r0, r3, r0
/* 8036CE9C 6C068000 */ xoris       r6, r0, 0x8000
/* 8036CEA0 7C1E3810 */ subfc       r0, r30, r7
/* 8036CEA4 7CA53110 */ subfe       r5, r5, r6
/* 8036CEA8 7CA63110 */ subfe       r5, r6, r6
/* 8036CEAC 7CA500D1 */ neg.        r5, r5
/* 8036CEB0 41820010 */ beq-        lbl_8036cec0
/* 8036CEB4 38600000 */ li          r3, 0x0
/* 8036CEB8 4BFFF2F1 */ bl          func_8036c1a8
/* 8036CEBC 48000034 */ b           lbl_8036cef0
lbl_8036cec0:
/* 8036CEC0 3C808000 */ lis         r4, 0x8000
/* 8036CEC4 6FC38000 */ xoris       r3, r30, 0x8000
/* 8036CEC8 7C043810 */ subfc       r0, r4, r7
/* 8036CECC 7C633110 */ subfe       r3, r3, r6
/* 8036CED0 7C663110 */ subfe       r3, r6, r6
/* 8036CED4 7C6300D1 */ neg.        r3, r3
/* 8036CED8 41820010 */ beq-        lbl_8036cee8
/* 8036CEDC 7CE33B78 */ mr          r3, r7
/* 8036CEE0 4BFFF2C9 */ bl          func_8036c1a8
/* 8036CEE4 4800000C */ b           lbl_8036cef0
lbl_8036cee8:
/* 8036CEE8 3864FFFF */ addi        r3, r4, -0x1
/* 8036CEEC 4BFFF2BD */ bl          func_8036c1a8
lbl_8036cef0:
/* 8036CEF0 BB210024 */ lmw         r25, 0x24(r1)
/* 8036CEF4 80010044 */ lwz         r0, 0x44(r1)
/* 8036CEF8 38210040 */ addi        r1, r1, 0x40
/* 8036CEFC 7C0803A6 */ mtlr        r0
/* 8036CF00 4E800020 */ blr         
.size func_8036ccb4, . - func_8036ccb4


.global func_8036cf04
.type func_8036cf04, @function
func_8036cf04:
/* 8036CF04 7C0802A6 */ mflr        r0
/* 8036CF08 90010004 */ stw         r0, 4(r1)
/* 8036CF0C 9421FFC8 */ stwu        r1, -0x38(r1)
/* 8036CF10 BF610024 */ stmw        r27, 0x24(r1)
/* 8036CF14 3B630000 */ addi        r27, r3, 0x0
/* 8036CF18 3BA50000 */ addi        r29, r5, 0x0
/* 8036CF1C 3B860000 */ addi        r28, r6, 0x0
/* 8036CF20 3BC70000 */ addi        r30, r7, 0x0
/* 8036CF24 48001BB1 */ bl          func_8036ead4
/* 8036CF28 38000000 */ li          r0, 0x0
/* 8036CF2C 901B001C */ stw         r0, 0x1c(r27)
/* 8036CF30 7C7F1B78 */ mr          r31, r3
/* 8036CF34 901B0018 */ stw         r0, 0x18(r27)
/* 8036CF38 480058AD */ bl          func_803727e4
/* 8036CF3C 7CDC2014 */ addc        r6, r28, r4
/* 8036CF40 7CBD1914 */ adde        r5, r29, r3
/* 8036CF44 387B0000 */ addi        r3, r27, 0x0
/* 8036CF48 38FE0000 */ addi        r7, r30, 0x0
/* 8036CF4C 4BFFFD69 */ bl          func_8036ccb4
/* 8036CF50 7FE3FB78 */ mr          r3, r31
/* 8036CF54 48001BA9 */ bl          func_8036eafc
/* 8036CF58 BB610024 */ lmw         r27, 0x24(r1)
/* 8036CF5C 8001003C */ lwz         r0, 0x3c(r1)
/* 8036CF60 38210038 */ addi        r1, r1, 0x38
/* 8036CF64 7C0803A6 */ mtlr        r0
/* 8036CF68 4E800020 */ blr         
.size func_8036cf04, . - func_8036cf04


.global func_8036cf6c
.type func_8036cf6c, @function
func_8036cf6c:
/* 8036CF6C 7C0802A6 */ mflr        r0
/* 8036CF70 90010004 */ stw         r0, 4(r1)
/* 8036CF74 9421FFE0 */ stwu        r1, -0x20(r1)
/* 8036CF78 93E1001C */ stw         r31, 0x1c(r1)
/* 8036CF7C 93C10018 */ stw         r30, 0x18(r1)
/* 8036CF80 7C7E1B78 */ mr          r30, r3
/* 8036CF84 93A10014 */ stw         r29, 0x14(r1)
/* 8036CF88 48001B4D */ bl          func_8036ead4
/* 8036CF8C 801E0000 */ lwz         r0, 0(r30)
/* 8036CF90 3BE30000 */ addi        r31, r3, 0x0
/* 8036CF94 28000000 */ cmplwi      r0, 0
/* 8036CF98 40820010 */ bne-        lbl_8036cfa8
/* 8036CF9C 7FE3FB78 */ mr          r3, r31
/* 8036CFA0 48001B5D */ bl          func_8036eafc
/* 8036CFA4 480000C8 */ b           lbl_8036d06c
lbl_8036cfa8:
/* 8036CFA8 83BE0014 */ lwz         r29, 0x14(r30)
/* 8036CFAC 281D0000 */ cmplwi      r29, 0
/* 8036CFB0 40820014 */ bne-        lbl_8036cfc4
/* 8036CFB4 801E0010 */ lwz         r0, 0x10(r30)
/* 8036CFB8 386DCA28 */ addi        r3, 0, lbl_805c6848@sda21
/* 8036CFBC 90030004 */ stw         r0, 4(r3)
/* 8036CFC0 4800000C */ b           lbl_8036cfcc
lbl_8036cfc4:
/* 8036CFC4 801E0010 */ lwz         r0, 0x10(r30)
/* 8036CFC8 901D0010 */ stw         r0, 0x10(r29)
lbl_8036cfcc:
/* 8036CFCC 807E0010 */ lwz         r3, 0x10(r30)
/* 8036CFD0 28030000 */ cmplwi      r3, 0
/* 8036CFD4 4182000C */ beq-        lbl_8036cfe0
/* 8036CFD8 93A30014 */ stw         r29, 0x14(r3)
/* 8036CFDC 48000080 */ b           lbl_8036d05c
lbl_8036cfe0:
/* 8036CFE0 281D0000 */ cmplwi      r29, 0
/* 8036CFE4 93ADCA28 */ stw         r29, lbl_805c6848@sda21(0)
/* 8036CFE8 41820074 */ beq-        lbl_8036d05c
/* 8036CFEC 480057F9 */ bl          func_803727e4
/* 8036CFF0 80DD000C */ lwz         r6, 0xc(r29)
/* 8036CFF4 38E00000 */ li          r7, 0x0
/* 8036CFF8 801D0008 */ lwz         r0, 8(r29)
/* 8036CFFC 6CE58000 */ xoris       r5, r7, 0x8000
/* 8036D000 7D043010 */ subfc       r8, r4, r6
/* 8036D004 7C030110 */ subfe       r0, r3, r0
/* 8036D008 6C068000 */ xoris       r6, r0, 0x8000
/* 8036D00C 7C074010 */ subfc       r0, r7, r8
/* 8036D010 7CA53110 */ subfe       r5, r5, r6
/* 8036D014 7CA63110 */ subfe       r5, r6, r6
/* 8036D018 7CA500D1 */ neg.        r5, r5
/* 8036D01C 41820010 */ beq-        lbl_8036d02c
/* 8036D020 38600000 */ li          r3, 0x0
/* 8036D024 4BFFF185 */ bl          func_8036c1a8
/* 8036D028 48000034 */ b           lbl_8036d05c
lbl_8036d02c:
/* 8036D02C 3C808000 */ lis         r4, 0x8000
/* 8036D030 6CE38000 */ xoris       r3, r7, 0x8000
/* 8036D034 7C044010 */ subfc       r0, r4, r8
/* 8036D038 7C633110 */ subfe       r3, r3, r6
/* 8036D03C 7C663110 */ subfe       r3, r6, r6
/* 8036D040 7C6300D1 */ neg.        r3, r3
/* 8036D044 41820010 */ beq-        lbl_8036d054
/* 8036D048 7D034378 */ mr          r3, r8
/* 8036D04C 4BFFF15D */ bl          func_8036c1a8
/* 8036D050 4800000C */ b           lbl_8036d05c
lbl_8036d054:
/* 8036D054 3864FFFF */ addi        r3, r4, -0x1
/* 8036D058 4BFFF151 */ bl          func_8036c1a8
lbl_8036d05c:
/* 8036D05C 38000000 */ li          r0, 0x0
/* 8036D060 901E0000 */ stw         r0, 0(r30)
/* 8036D064 7FE3FB78 */ mr          r3, r31
/* 8036D068 48001A95 */ bl          func_8036eafc
lbl_8036d06c:
/* 8036D06C 80010024 */ lwz         r0, 0x24(r1)
/* 8036D070 83E1001C */ lwz         r31, 0x1c(r1)
/* 8036D074 83C10018 */ lwz         r30, 0x18(r1)
/* 8036D078 83A10014 */ lwz         r29, 0x14(r1)
/* 8036D07C 38210020 */ addi        r1, r1, 0x20
/* 8036D080 7C0803A6 */ mtlr        r0
/* 8036D084 4E800020 */ blr         
.size func_8036cf6c, . - func_8036cf6c


.global func_8036d088
.type func_8036d088, @function
func_8036d088:
/* 8036D088 7C0802A6 */ mflr        r0
/* 8036D08C 90010004 */ stw         r0, 4(r1)
/* 8036D090 9421FD10 */ stwu        r1, -0x2f0(r1)
/* 8036D094 93E102EC */ stw         r31, 0x2ec(r1)
/* 8036D098 93C102E8 */ stw         r30, 0x2e8(r1)
/* 8036D09C 93A102E4 */ stw         r29, 0x2e4(r1)
/* 8036D0A0 7C9D2378 */ mr          r29, r4
/* 8036D0A4 938102E0 */ stw         r28, 0x2e0(r1)
/* 8036D0A8 4800573D */ bl          func_803727e4
/* 8036D0AC 800DCA28 */ lwz         r0, lbl_805c6848@sda21(0)
/* 8036D0B0 3B840000 */ addi        r28, r4, 0x0
/* 8036D0B4 3BC30000 */ addi        r30, r3, 0x0
/* 8036D0B8 28000000 */ cmplwi      r0, 0
/* 8036D0BC 7C1F0378 */ mr          r31, r0
/* 8036D0C0 4082000C */ bne-        lbl_8036d0cc
/* 8036D0C4 7FA3EB78 */ mr          r3, r29
/* 8036D0C8 480010B9 */ bl          func_8036e180
lbl_8036d0cc:
/* 8036D0CC 801F0008 */ lwz         r0, 8(r31)
/* 8036D0D0 6FC48000 */ xoris       r4, r30, 0x8000
/* 8036D0D4 80BF000C */ lwz         r5, 0xc(r31)
/* 8036D0D8 6C038000 */ xoris       r3, r0, 0x8000
/* 8036D0DC 7C05E010 */ subfc       r0, r5, r28
/* 8036D0E0 7C632110 */ subfe       r3, r3, r4
/* 8036D0E4 7C642110 */ subfe       r3, r4, r4
/* 8036D0E8 7C6300D1 */ neg.        r3, r3
/* 8036D0EC 4182007C */ beq-        lbl_8036d168
/* 8036D0F0 480056F5 */ bl          func_803727e4
/* 8036D0F4 80DF000C */ lwz         r6, 0xc(r31)
/* 8036D0F8 38E00000 */ li          r7, 0x0
/* 8036D0FC 801F0008 */ lwz         r0, 8(r31)
/* 8036D100 6CE58000 */ xoris       r5, r7, 0x8000
/* 8036D104 7D043010 */ subfc       r8, r4, r6
/* 8036D108 7C030110 */ subfe       r0, r3, r0
/* 8036D10C 6C068000 */ xoris       r6, r0, 0x8000
/* 8036D110 7C074010 */ subfc       r0, r7, r8
/* 8036D114 7CA53110 */ subfe       r5, r5, r6
/* 8036D118 7CA63110 */ subfe       r5, r6, r6
/* 8036D11C 7CA500D1 */ neg.        r5, r5
/* 8036D120 41820010 */ beq-        lbl_8036d130
/* 8036D124 38600000 */ li          r3, 0x0
/* 8036D128 4BFFF081 */ bl          func_8036c1a8
/* 8036D12C 48000034 */ b           lbl_8036d160
lbl_8036d130:
/* 8036D130 3C808000 */ lis         r4, 0x8000
/* 8036D134 6CE38000 */ xoris       r3, r7, 0x8000
/* 8036D138 7C044010 */ subfc       r0, r4, r8
/* 8036D13C 7C633110 */ subfe       r3, r3, r6
/* 8036D140 7C663110 */ subfe       r3, r6, r6
/* 8036D144 7C6300D1 */ neg.        r3, r3
/* 8036D148 41820010 */ beq-        lbl_8036d158
/* 8036D14C 7D034378 */ mr          r3, r8
/* 8036D150 4BFFF059 */ bl          func_8036c1a8
/* 8036D154 4800000C */ b           lbl_8036d160
lbl_8036d158:
/* 8036D158 3864FFFF */ addi        r3, r4, -0x1
/* 8036D15C 4BFFF04D */ bl          func_8036c1a8
lbl_8036d160:
/* 8036D160 7FA3EB78 */ mr          r3, r29
/* 8036D164 4800101D */ bl          func_8036e180
lbl_8036d168:
/* 8036D168 807F0014 */ lwz         r3, 0x14(r31)
/* 8036D16C 28030000 */ cmplwi      r3, 0
/* 8036D170 906DCA28 */ stw         r3, lbl_805c6848@sda21(0)
/* 8036D174 40820014 */ bne-        lbl_8036d188
/* 8036D178 38000000 */ li          r0, 0x0
/* 8036D17C 386DCA28 */ addi        r3, 0, lbl_805c6848@sda21
/* 8036D180 90030004 */ stw         r0, 4(r3)
/* 8036D184 4800000C */ b           lbl_8036d190
lbl_8036d188:
/* 8036D188 38000000 */ li          r0, 0x0
/* 8036D18C 90030010 */ stw         r0, 0x10(r3)
lbl_8036d190:
/* 8036D190 83DF0000 */ lwz         r30, 0(r31)
/* 8036D194 38C00000 */ li          r6, 0x0
/* 8036D198 6CC48000 */ xoris       r4, r6, 0x8000
/* 8036D19C 90DF0000 */ stw         r6, 0(r31)
/* 8036D1A0 801F0018 */ lwz         r0, 0x18(r31)
/* 8036D1A4 80BF001C */ lwz         r5, 0x1c(r31)
/* 8036D1A8 6C038000 */ xoris       r3, r0, 0x8000
/* 8036D1AC 7C053010 */ subfc       r0, r5, r6
/* 8036D1B0 7C632110 */ subfe       r3, r3, r4
/* 8036D1B4 7C642110 */ subfe       r3, r4, r4
/* 8036D1B8 7C6300D1 */ neg.        r3, r3
/* 8036D1BC 41820018 */ beq-        lbl_8036d1d4
/* 8036D1C0 387F0000 */ addi        r3, r31, 0x0
/* 8036D1C4 38FE0000 */ addi        r7, r30, 0x0
/* 8036D1C8 38C00000 */ li          r6, 0x0
/* 8036D1CC 38A00000 */ li          r5, 0x0
/* 8036D1D0 4BFFFAE5 */ bl          func_8036ccb4
lbl_8036d1d4:
/* 8036D1D4 838DCA28 */ lwz         r28, lbl_805c6848@sda21(0)
/* 8036D1D8 281C0000 */ cmplwi      r28, 0
/* 8036D1DC 41820074 */ beq-        lbl_8036d250
/* 8036D1E0 48005605 */ bl          func_803727e4
/* 8036D1E4 80DC000C */ lwz         r6, 0xc(r28)
/* 8036D1E8 38E00000 */ li          r7, 0x0
/* 8036D1EC 801C0008 */ lwz         r0, 8(r28)
/* 8036D1F0 6CE58000 */ xoris       r5, r7, 0x8000
/* 8036D1F4 7D043010 */ subfc       r8, r4, r6
/* 8036D1F8 7C030110 */ subfe       r0, r3, r0
/* 8036D1FC 6C068000 */ xoris       r6, r0, 0x8000
/* 8036D200 7C074010 */ subfc       r0, r7, r8
/* 8036D204 7CA53110 */ subfe       r5, r5, r6
/* 8036D208 7CA63110 */ subfe       r5, r6, r6
/* 8036D20C 7CA500D1 */ neg.        r5, r5
/* 8036D210 41820010 */ beq-        lbl_8036d220
/* 8036D214 38600000 */ li          r3, 0x0
/* 8036D218 4BFFEF91 */ bl          func_8036c1a8
/* 8036D21C 48000034 */ b           lbl_8036d250
lbl_8036d220:
/* 8036D220 3C808000 */ lis         r4, 0x8000
/* 8036D224 6CE38000 */ xoris       r3, r7, 0x8000
/* 8036D228 7C044010 */ subfc       r0, r4, r8
/* 8036D22C 7C633110 */ subfe       r3, r3, r6
/* 8036D230 7C663110 */ subfe       r3, r6, r6
/* 8036D234 7C6300D1 */ neg.        r3, r3
/* 8036D238 41820010 */ beq-        lbl_8036d248
/* 8036D23C 7D034378 */ mr          r3, r8
/* 8036D240 4BFFEF69 */ bl          func_8036c1a8
/* 8036D244 4800000C */ b           lbl_8036d250
lbl_8036d248:
/* 8036D248 3864FFFF */ addi        r3, r4, -0x1
/* 8036D24C 4BFFEF5D */ bl          func_8036c1a8
lbl_8036d250:
/* 8036D250 48004565 */ bl          func_803717b4
/* 8036D254 38610018 */ addi        r3, r1, 0x18
/* 8036D258 48001009 */ bl          func_8036e260
/* 8036D25C 38610018 */ addi        r3, r1, 0x18
/* 8036D260 48000E39 */ bl          func_8036e098
/* 8036D264 399E0000 */ addi        r12, r30, 0x0
/* 8036D268 7D8803A6 */ mtlr        r12
/* 8036D26C 387F0000 */ addi        r3, r31, 0x0
/* 8036D270 389D0000 */ addi        r4, r29, 0x0
/* 8036D274 4E800021 */ blrl        
/* 8036D278 38610018 */ addi        r3, r1, 0x18
/* 8036D27C 48000FE5 */ bl          func_8036e260
/* 8036D280 7FA3EB78 */ mr          r3, r29
/* 8036D284 48000E15 */ bl          func_8036e098
/* 8036D288 4800456D */ bl          func_803717f4
/* 8036D28C 48004A5D */ bl          func_80371ce8
/* 8036D290 7FA3EB78 */ mr          r3, r29
/* 8036D294 48000EED */ bl          func_8036e180
/* 8036D298 800102F4 */ lwz         r0, 0x2f4(r1)
/* 8036D29C 83E102EC */ lwz         r31, 0x2ec(r1)
/* 8036D2A0 83C102E8 */ lwz         r30, 0x2e8(r1)
/* 8036D2A4 83A102E4 */ lwz         r29, 0x2e4(r1)
/* 8036D2A8 838102E0 */ lwz         r28, 0x2e0(r1)
/* 8036D2AC 382102F0 */ addi        r1, r1, 0x2f0
/* 8036D2B0 7C0803A6 */ mtlr        r0
/* 8036D2B4 4E800020 */ blr         
.size func_8036d088, . - func_8036d088


.global func_8036d2b8
.type func_8036d2b8, @function
func_8036d2b8:
/* 8036D2B8 90040000 */ stw         r0, 0(r4)
/* 8036D2BC 90240004 */ stw         r1, 4(r4)
/* 8036D2C0 90440008 */ stw         r2, 8(r4)
/* 8036D2C4 BCC40018 */ stmw        r6, 0x18(r4)
/* 8036D2C8 7C11E2A6 */ mfspr       r0, 0x391
/* 8036D2CC 900401A8 */ stw         r0, 0x1a8(r4)
/* 8036D2D0 7C12E2A6 */ mfspr       r0, 0x392
/* 8036D2D4 900401AC */ stw         r0, 0x1ac(r4)
/* 8036D2D8 7C13E2A6 */ mfspr       r0, 0x393
/* 8036D2DC 900401B0 */ stw         r0, 0x1b0(r4)
/* 8036D2E0 7C14E2A6 */ mfspr       r0, 0x394
/* 8036D2E4 900401B4 */ stw         r0, 0x1b4(r4)
/* 8036D2E8 7C15E2A6 */ mfspr       r0, 0x395
/* 8036D2EC 900401B8 */ stw         r0, 0x1b8(r4)
/* 8036D2F0 7C16E2A6 */ mfspr       r0, 0x396
/* 8036D2F4 900401BC */ stw         r0, 0x1bc(r4)
/* 8036D2F8 7C17E2A6 */ mfspr       r0, 0x397
/* 8036D2FC 900401C0 */ stw         r0, 0x1c0(r4)
/* 8036D300 9421FFF8 */ stwu        r1, -8(r1)
/* 8036D304 4BFFFD84 */ b           func_8036d088
.size func_8036d2b8, . - func_8036d2b8