summaryrefslogtreecommitdiff
path: root/asm/text_10_3.s
blob: 2b2ce2013493f09aaadbacdb342d45662cc41c94 (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
.include "macros.inc"

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

/* 80363F2C 0035FB8C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80363F30 0035FB90  7C 08 02 A6 */	mflr r0
/* 80363F34 0035FB94  2C 03 00 00 */	cmpwi r3, 0
/* 80363F38 0035FB98  90 01 00 14 */	stw r0, 0x14(r1)
/* 80363F3C 0035FB9C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80363F40 0035FBA0  7C 7F 1B 78 */	mr r31, r3
/* 80363F44 0035FBA4  41 82 00 10 */	beq lbl_80363F54
/* 80363F48 0035FBA8  2C 04 00 00 */	cmpwi r4, 0
/* 80363F4C 0035FBAC  40 81 00 08 */	ble lbl_80363F54
/* 80363F50 0035FBB0  4B E7 6B 69 */	bl func_801DAAB8
lbl_80363F54:
/* 80363F54 0035FBB4  7F E3 FB 78 */	mr r3, r31
/* 80363F58 0035FBB8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80363F5C 0035FBBC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80363F60 0035FBC0  7C 08 03 A6 */	mtlr r0
/* 80363F64 0035FBC4  38 21 00 10 */	addi r1, r1, 0x10
/* 80363F68 0035FBC8  4E 80 00 20 */	blr

.global func_80363F6C
func_80363F6C:
/* 80363F6C 0035FBCC  3C A0 80 45 */	lis r5, lbl_8044C7F0@ha
/* 80363F70 0035FBD0  3C 80 80 45 */	lis r4, lbl_8044C858@ha
/* 80363F74 0035FBD4  38 A5 C7 F0 */	addi r5, r5, lbl_8044C7F0@l
/* 80363F78 0035FBD8  3C E0 80 45 */	lis r7, lbl_80450004@ha
/* 80363F7C 0035FBDC  90 A3 00 00 */	stw r5, 0(r3)
/* 80363F80 0035FBE0  38 84 C8 58 */	addi r4, r4, lbl_8044C858@l
/* 80363F84 0035FBE4  38 00 00 00 */	li r0, 0
/* 80363F88 0035FBE8  84 C7 C8 48 */	lwzu r6, -0x37b8(r7)
/* 80363F8C 0035FBEC  80 A7 00 04 */	lwz r5, lbl_80450004@l(r7)
/* 80363F90 0035FBF0  90 C3 00 04 */	stw r6, 4(r3)
/* 80363F94 0035FBF4  90 A3 00 08 */	stw r5, 8(r3)
/* 80363F98 0035FBF8  80 A7 00 08 */	lwz r5, 8(r7)
/* 80363F9C 0035FBFC  90 A3 00 0C */	stw r5, 0xc(r3)
/* 80363FA0 0035FC00  90 83 00 00 */	stw r4, 0(r3)
/* 80363FA4 0035FC04  90 03 00 10 */	stw r0, 0x10(r3)
/* 80363FA8 0035FC08  90 03 00 14 */	stw r0, 0x14(r3)
/* 80363FAC 0035FC0C  4E 80 00 20 */	blr

.global func_80363FB0
func_80363FB0:
/* 80363FB0 0035FC10  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80363FB4 0035FC14  7C 08 02 A6 */	mflr r0
/* 80363FB8 0035FC18  2C 03 00 00 */	cmpwi r3, 0
/* 80363FBC 0035FC1C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80363FC0 0035FC20  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80363FC4 0035FC24  7C 7F 1B 78 */	mr r31, r3
/* 80363FC8 0035FC28  41 82 00 10 */	beq lbl_80363FD8
/* 80363FCC 0035FC2C  2C 04 00 00 */	cmpwi r4, 0
/* 80363FD0 0035FC30  40 81 00 08 */	ble lbl_80363FD8
/* 80363FD4 0035FC34  4B E7 6A E5 */	bl func_801DAAB8
lbl_80363FD8:
/* 80363FD8 0035FC38  7F E3 FB 78 */	mr r3, r31
/* 80363FDC 0035FC3C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80363FE0 0035FC40  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80363FE4 0035FC44  7C 08 03 A6 */	mtlr r0
/* 80363FE8 0035FC48  38 21 00 10 */	addi r1, r1, 0x10
/* 80363FEC 0035FC4C  4E 80 00 20 */	blr

.global func_80363FF0
func_80363FF0:
/* 80363FF0 0035FC50  90 83 00 10 */	stw r4, 0x10(r3)
/* 80363FF4 0035FC54  90 A3 00 14 */	stw r5, 0x14(r3)
/* 80363FF8 0035FC58  4E 80 00 20 */	blr
/* 80363FFC 0035FC5C  80 63 00 14 */	lwz r3, 0x14(r3)
/* 80364000 0035FC60  88 63 00 15 */	lbz r3, 0x15(r3)
/* 80364004 0035FC64  4E 80 00 20 */	blr
/* 80364008 0035FC68  80 63 00 14 */	lwz r3, 0x14(r3)
/* 8036400C 0035FC6C  88 63 00 14 */	lbz r3, 0x14(r3)
/* 80364010 0035FC70  4E 80 00 20 */	blr
/* 80364014 0035FC74  80 63 00 14 */	lwz r3, 0x14(r3)
/* 80364018 0035FC78  88 63 00 16 */	lbz r3, 0x16(r3)
/* 8036401C 0035FC7C  4E 80 00 20 */	blr
/* 80364020 0035FC80  80 83 00 14 */	lwz r4, 0x14(r3)
/* 80364024 0035FC84  88 64 00 16 */	lbz r3, 0x16(r4)
/* 80364028 0035FC88  88 04 00 14 */	lbz r0, 0x14(r4)
/* 8036402C 0035FC8C  7C 63 00 50 */	subf r3, r3, r0
/* 80364030 0035FC90  4E 80 00 20 */	blr
/* 80364034 0035FC94  80 63 00 14 */	lwz r3, 0x14(r3)
/* 80364038 0035FC98  80 63 00 08 */	lwz r3, 8(r3)
/* 8036403C 0035FC9C  88 63 00 02 */	lbz r3, 2(r3)
/* 80364040 0035FCA0  7C 63 07 74 */	extsb r3, r3
/* 80364044 0035FCA4  4E 80 00 20 */	blr
/* 80364048 0035FCA8  80 63 00 14 */	lwz r3, 0x14(r3)
/* 8036404C 0035FCAC  80 63 00 08 */	lwz r3, 8(r3)
/* 80364050 0035FCB0  88 63 00 01 */	lbz r3, 1(r3)
/* 80364054 0035FCB4  4E 80 00 20 */	blr
/* 80364058 0035FCB8  80 63 00 14 */	lwz r3, 0x14(r3)
/* 8036405C 0035FCBC  80 63 00 08 */	lwz r3, 8(r3)
/* 80364060 0035FCC0  88 63 00 00 */	lbz r3, 0(r3)
/* 80364064 0035FCC4  4E 80 00 20 */	blr
/* 80364068 0035FCC8  80 63 00 14 */	lwz r3, 0x14(r3)
/* 8036406C 0035FCCC  80 63 00 08 */	lwz r3, 8(r3)
/* 80364070 0035FCD0  88 63 00 03 */	lbz r3, 3(r3)
/* 80364074 0035FCD4  4E 80 00 20 */	blr
/* 80364078 0035FCD8  38 60 00 02 */	li r3, 2
/* 8036407C 0035FCDC  4E 80 00 20 */	blr
/* 80364080 0035FCE0  80 63 00 14 */	lwz r3, 0x14(r3)
/* 80364084 0035FCE4  80 63 00 08 */	lwz r3, 8(r3)
/* 80364088 0035FCE8  A0 63 00 0A */	lhz r3, 0xa(r3)
/* 8036408C 0035FCEC  4E 80 00 20 */	blr
/* 80364090 0035FCF0  80 63 00 14 */	lwz r3, 0x14(r3)
/* 80364094 0035FCF4  88 63 00 01 */	lbz r3, 1(r3)
/* 80364098 0035FCF8  7C 63 07 74 */	extsb r3, r3
/* 8036409C 0035FCFC  4E 80 00 20 */	blr
/* 803640A0 0035FD00  80 83 00 14 */	lwz r4, 0x14(r3)
/* 803640A4 0035FD04  A0 04 00 04 */	lhz r0, 4(r4)
/* 803640A8 0035FD08  54 03 80 1E */	slwi r3, r0, 0x10
/* 803640AC 0035FD0C  88 04 00 06 */	lbz r0, 6(r4)
/* 803640B0 0035FD10  50 03 44 2E */	rlwimi r3, r0, 8, 0x10, 0x17
/* 803640B4 0035FD14  4E 80 00 20 */	blr
/* 803640B8 0035FD18  80 A3 00 14 */	lwz r5, 0x14(r3)
/* 803640BC 0035FD1C  88 04 00 00 */	lbz r0, 0(r4)
/* 803640C0 0035FD20  88 64 00 01 */	lbz r3, 1(r4)
/* 803640C4 0035FD24  98 05 00 04 */	stb r0, 4(r5)
/* 803640C8 0035FD28  88 04 00 02 */	lbz r0, 2(r4)
/* 803640CC 0035FD2C  98 65 00 05 */	stb r3, 5(r5)
/* 803640D0 0035FD30  98 05 00 06 */	stb r0, 6(r5)
/* 803640D4 0035FD34  4E 80 00 20 */	blr
/* 803640D8 0035FD38  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803640DC 0035FD3C  7C 08 02 A6 */	mflr r0
/* 803640E0 0035FD40  7C 85 23 78 */	mr r5, r4
/* 803640E4 0035FD44  90 01 00 14 */	stw r0, 0x14(r1)
/* 803640E8 0035FD48  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803640EC 0035FD4C  7C 7F 1B 78 */	mr r31, r3
/* 803640F0 0035FD50  80 C3 00 14 */	lwz r6, 0x14(r3)
/* 803640F4 0035FD54  80 C6 00 10 */	lwz r6, 0x10(r6)
/* 803640F8 0035FD58  48 00 00 34 */	b lbl_8036412C
lbl_803640FC:
/* 803640FC 0035FD5C  A0 06 00 00 */	lhz r0, 0(r6)
/* 80364100 0035FD60  7C 00 20 40 */	cmplw r0, r4
/* 80364104 0035FD64  41 81 00 24 */	bgt lbl_80364128
/* 80364108 0035FD68  A0 06 00 02 */	lhz r0, 2(r6)
/* 8036410C 0035FD6C  7C 04 00 40 */	cmplw r4, r0
/* 80364110 0035FD70  41 81 00 18 */	bgt lbl_80364128
/* 80364114 0035FD74  7F E3 FB 78 */	mr r3, r31
/* 80364118 0035FD78  7C C4 33 78 */	mr r4, r6
/* 8036411C 0035FD7C  48 00 02 49 */	bl func_80364364
/* 80364120 0035FD80  7C 65 1B 78 */	mr r5, r3
/* 80364124 0035FD84  48 00 00 18 */	b lbl_8036413C
lbl_80364128:
/* 80364128 0035FD88  80 C6 00 08 */	lwz r6, 8(r6)
lbl_8036412C:
/* 8036412C 0035FD8C  2C 06 00 00 */	cmpwi r6, 0
/* 80364130 0035FD90  40 82 FF CC */	bne lbl_803640FC
/* 80364134 0035FD94  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 80364138 0035FD98  38 A3 FF FF */	addi r5, r3, 0x0000FFFF@l
lbl_8036413C:
/* 8036413C 0035FD9C  54 A0 04 3E */	clrlwi r0, r5, 0x10
/* 80364140 0035FDA0  28 00 FF FF */	cmplwi r0, 0xffff
/* 80364144 0035FDA4  41 82 00 14 */	beq lbl_80364158
/* 80364148 0035FDA8  80 9F 00 14 */	lwz r4, 0x14(r31)
/* 8036414C 0035FDAC  38 60 00 01 */	li r3, 1
/* 80364150 0035FDB0  B0 A4 00 02 */	sth r5, 2(r4)
/* 80364154 0035FDB4  48 00 00 08 */	b lbl_8036415C
lbl_80364158:
/* 80364158 0035FDB8  38 60 00 00 */	li r3, 0
lbl_8036415C:
/* 8036415C 0035FDBC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80364160 0035FDC0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80364164 0035FDC4  7C 08 03 A6 */	mtlr r0
/* 80364168 0035FDC8  38 21 00 10 */	addi r1, r1, 0x10
/* 8036416C 0035FDCC  4E 80 00 20 */	blr

.global AnimatedModelExplodable_SetUnexplodedModelVisibility
AnimatedModelExplodable_SetUnexplodedModelVisibility:
/* 80364170 0035FDD0  80 63 00 14 */	lwz r3, 0x14(r3)
/* 80364174 0035FDD4  98 83 00 01 */	stb r4, 1(r3)
/* 80364178 0035FDD8  4E 80 00 20 */	blr
/* 8036417C 0035FDDC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80364180 0035FDE0  7C 08 02 A6 */	mflr r0
/* 80364184 0035FDE4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80364188 0035FDE8  81 83 00 00 */	lwz r12, 0(r3)
/* 8036418C 0035FDEC  81 8C 00 4C */	lwz r12, 0x4c(r12)
/* 80364190 0035FDF0  7D 89 03 A6 */	mtctr r12
/* 80364194 0035FDF4  4E 80 04 21 */	bctrl
/* 80364198 0035FDF8  54 60 46 3E */	srwi r0, r3, 0x18
/* 8036419C 0035FDFC  98 01 00 08 */	stb r0, 8(r1)
/* 803641A0 0035FE00  54 60 86 3E */	rlwinm r0, r3, 0x10, 0x18, 0x1f
/* 803641A4 0035FE04  98 01 00 09 */	stb r0, 9(r1)
/* 803641A8 0035FE08  54 60 C6 3E */	rlwinm r0, r3, 0x18, 0x18, 0x1f
/* 803641AC 0035FE0C  7C 03 03 78 */	mr r3, r0
/* 803641B0 0035FE10  98 01 00 0A */	stb r0, 0xa(r1)
/* 803641B4 0035FE14  7C 63 07 74 */	extsb r3, r3
/* 803641B8 0035FE18  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803641BC 0035FE1C  7C 08 03 A6 */	mtlr r0
/* 803641C0 0035FE20  38 21 00 10 */	addi r1, r1, 0x10
/* 803641C4 0035FE24  4E 80 00 20 */	blr
/* 803641C8 0035FE28  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803641CC 0035FE2C  7C 08 02 A6 */	mflr r0
/* 803641D0 0035FE30  80 C3 00 14 */	lwz r6, 0x14(r3)
/* 803641D4 0035FE34  7C 85 23 78 */	mr r5, r4
/* 803641D8 0035FE38  90 01 00 14 */	stw r0, 0x14(r1)
/* 803641DC 0035FE3C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803641E0 0035FE40  7C 7F 1B 78 */	mr r31, r3
/* 803641E4 0035FE44  80 C6 00 10 */	lwz r6, 0x10(r6)
/* 803641E8 0035FE48  48 00 00 30 */	b lbl_80364218
lbl_803641EC:
/* 803641EC 0035FE4C  A0 06 00 00 */	lhz r0, 0(r6)
/* 803641F0 0035FE50  7C 00 20 40 */	cmplw r0, r4
/* 803641F4 0035FE54  41 81 00 20 */	bgt lbl_80364214
/* 803641F8 0035FE58  A0 06 00 02 */	lhz r0, 2(r6)
/* 803641FC 0035FE5C  7C 04 00 40 */	cmplw r4, r0
/* 80364200 0035FE60  41 81 00 14 */	bgt lbl_80364214
/* 80364204 0035FE64  7F E3 FB 78 */	mr r3, r31
/* 80364208 0035FE68  7C C4 33 78 */	mr r4, r6
/* 8036420C 0035FE6C  48 00 01 59 */	bl func_80364364
/* 80364210 0035FE70  48 00 00 18 */	b lbl_80364228
lbl_80364214:
/* 80364214 0035FE74  80 C6 00 08 */	lwz r6, 8(r6)
lbl_80364218:
/* 80364218 0035FE78  2C 06 00 00 */	cmpwi r6, 0
/* 8036421C 0035FE7C  40 82 FF D0 */	bne lbl_803641EC
/* 80364220 0035FE80  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 80364224 0035FE84  38 63 FF FF */	addi r3, r3, 0x0000FFFF@l
lbl_80364228:
/* 80364228 0035FE88  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 8036422C 0035FE8C  28 00 FF FF */	cmplwi r0, 0xffff
/* 80364230 0035FE90  41 82 00 08 */	beq lbl_80364238
/* 80364234 0035FE94  48 00 00 0C */	b lbl_80364240
lbl_80364238:
/* 80364238 0035FE98  80 7F 00 14 */	lwz r3, 0x14(r31)
/* 8036423C 0035FE9C  A0 63 00 02 */	lhz r3, 2(r3)
lbl_80364240:
/* 80364240 0035FEA0  80 DF 00 14 */	lwz r6, 0x14(r31)
/* 80364244 0035FEA4  54 63 04 3E */	clrlwi r3, r3, 0x10
/* 80364248 0035FEA8  80 86 00 0C */	lwz r4, 0xc(r6)
/* 8036424C 0035FEAC  48 00 00 38 */	b lbl_80364284
lbl_80364250:
/* 80364250 0035FEB0  A0 A4 00 00 */	lhz r5, 0(r4)
/* 80364254 0035FEB4  7C 05 18 40 */	cmplw r5, r3
/* 80364258 0035FEB8  41 81 00 28 */	bgt lbl_80364280
/* 8036425C 0035FEBC  A0 04 00 02 */	lhz r0, 2(r4)
/* 80364260 0035FEC0  7C 03 00 40 */	cmplw r3, r0
/* 80364264 0035FEC4  41 81 00 1C */	bgt lbl_80364280
/* 80364268 0035FEC8  7C 65 18 50 */	subf r3, r5, r3
/* 8036426C 0035FECC  54 60 10 3A */	slwi r0, r3, 2
/* 80364270 0035FED0  7C 03 00 50 */	subf r0, r3, r0
/* 80364274 0035FED4  7C 64 02 14 */	add r3, r4, r0
/* 80364278 0035FED8  38 83 00 08 */	addi r4, r3, 8
/* 8036427C 0035FEDC  48 00 00 14 */	b lbl_80364290
lbl_80364280:
/* 80364280 0035FEE0  80 84 00 04 */	lwz r4, 4(r4)
lbl_80364284:
/* 80364284 0035FEE4  2C 04 00 00 */	cmpwi r4, 0
/* 80364288 0035FEE8  40 82 FF C8 */	bne lbl_80364250
/* 8036428C 0035FEEC  38 86 00 04 */	addi r4, r6, 4
lbl_80364290:
/* 80364290 0035FEF0  A0 04 00 00 */	lhz r0, 0(r4)
/* 80364294 0035FEF4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80364298 0035FEF8  54 03 80 1E */	slwi r3, r0, 0x10
/* 8036429C 0035FEFC  88 04 00 02 */	lbz r0, 2(r4)
/* 803642A0 0035FF00  50 03 44 2E */	rlwimi r3, r0, 8, 0x10, 0x17
/* 803642A4 0035FF04  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803642A8 0035FF08  7C 08 03 A6 */	mtlr r0
/* 803642AC 0035FF0C  38 21 00 10 */	addi r1, r1, 0x10
/* 803642B0 0035FF10  4E 80 00 20 */	blr
/* 803642B4 0035FF14  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803642B8 0035FF18  7C 08 02 A6 */	mflr r0
/* 803642BC 0035FF1C  80 C3 00 14 */	lwz r6, 0x14(r3)
/* 803642C0 0035FF20  90 01 00 14 */	stw r0, 0x14(r1)
/* 803642C4 0035FF24  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803642C8 0035FF28  7C 9F 23 78 */	mr r31, r4
/* 803642CC 0035FF2C  93 C1 00 08 */	stw r30, 8(r1)
/* 803642D0 0035FF30  7C 7E 1B 78 */	mr r30, r3
/* 803642D4 0035FF34  80 86 00 10 */	lwz r4, 0x10(r6)
/* 803642D8 0035FF38  48 00 00 30 */	b lbl_80364308
lbl_803642DC:
/* 803642DC 0035FF3C  A0 04 00 00 */	lhz r0, 0(r4)
/* 803642E0 0035FF40  7C 00 28 40 */	cmplw r0, r5
/* 803642E4 0035FF44  41 81 00 20 */	bgt lbl_80364304
/* 803642E8 0035FF48  A0 04 00 02 */	lhz r0, 2(r4)
/* 803642EC 0035FF4C  7C 05 00 40 */	cmplw r5, r0
/* 803642F0 0035FF50  41 81 00 14 */	bgt lbl_80364304
/* 803642F4 0035FF54  7F C3 F3 78 */	mr r3, r30
/* 803642F8 0035FF58  48 00 00 6D */	bl func_80364364
/* 803642FC 0035FF5C  7C 65 1B 78 */	mr r5, r3
/* 80364300 0035FF60  48 00 00 18 */	b lbl_80364318
lbl_80364304:
/* 80364304 0035FF64  80 84 00 08 */	lwz r4, 8(r4)
lbl_80364308:
/* 80364308 0035FF68  2C 04 00 00 */	cmpwi r4, 0
/* 8036430C 0035FF6C  40 82 FF D0 */	bne lbl_803642DC
/* 80364310 0035FF70  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 80364314 0035FF74  38 A3 FF FF */	addi r5, r3, 0x0000FFFF@l
lbl_80364318:
/* 80364318 0035FF78  54 A0 04 3E */	clrlwi r0, r5, 0x10
/* 8036431C 0035FF7C  7F C3 F3 78 */	mr r3, r30
/* 80364320 0035FF80  28 00 FF FF */	cmplwi r0, 0xffff
/* 80364324 0035FF84  7F E4 FB 78 */	mr r4, r31
/* 80364328 0035FF88  41 82 00 08 */	beq lbl_80364330
/* 8036432C 0035FF8C  48 00 00 0C */	b lbl_80364338
lbl_80364330:
/* 80364330 0035FF90  80 BE 00 14 */	lwz r5, 0x14(r30)
/* 80364334 0035FF94  A0 A5 00 02 */	lhz r5, 2(r5)
lbl_80364338:
/* 80364338 0035FF98  54 A5 04 3E */	clrlwi r5, r5, 0x10
/* 8036433C 0035FF9C  48 00 00 FD */	bl func_80364438
/* 80364340 0035FFA0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80364344 0035FFA4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80364348 0035FFA8  83 C1 00 08 */	lwz r30, 8(r1)
/* 8036434C 0035FFAC  7C 08 03 A6 */	mtlr r0
/* 80364350 0035FFB0  38 21 00 10 */	addi r1, r1, 0x10
/* 80364354 0035FFB4  4E 80 00 20 */	blr

.global EmissionController_IsLingering
EmissionController_IsLingering:
/* 80364358 0035FFB8  80 63 00 14 */	lwz r3, 0x14(r3)
/* 8036435C 0035FFBC  88 63 00 07 */	lbz r3, 7(r3)
/* 80364360 0035FFC0  4E 80 00 20 */	blr

.global func_80364364
func_80364364:
/* 80364364 0035FFC4  A0 04 00 04 */	lhz r0, 4(r4)
/* 80364368 0035FFC8  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 8036436C 0035FFCC  38 63 FF FF */	addi r3, r3, 0x0000FFFF@l
/* 80364370 0035FFD0  2C 00 00 01 */	cmpwi r0, 1
/* 80364374 0035FFD4  41 82 00 38 */	beq lbl_803643AC
/* 80364378 0035FFD8  40 80 00 10 */	bge lbl_80364388
/* 8036437C 0035FFDC  2C 00 00 00 */	cmpwi r0, 0
/* 80364380 0035FFE0  40 80 00 14 */	bge lbl_80364394
/* 80364384 0035FFE4  4E 80 00 20 */	blr
lbl_80364388:
/* 80364388 0035FFE8  2C 00 00 03 */	cmpwi r0, 3
/* 8036438C 0035FFEC  4C 80 00 20 */	bgelr
/* 80364390 0035FFF0  48 00 00 34 */	b lbl_803643C4
lbl_80364394:
/* 80364394 0035FFF4  A0 04 00 00 */	lhz r0, 0(r4)
/* 80364398 0035FFF8  A0 64 00 0C */	lhz r3, 0xc(r4)
/* 8036439C 0035FFFC  7C 00 28 50 */	subf r0, r0, r5
/* 803643A0 00360000  7C 03 02 14 */	add r0, r3, r0
/* 803643A4 00360004  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 803643A8 00360008  4E 80 00 20 */	blr
lbl_803643AC:
/* 803643AC 0036000C  A0 04 00 00 */	lhz r0, 0(r4)
/* 803643B0 00360010  7C 00 28 50 */	subf r0, r0, r5
/* 803643B4 00360014  54 00 08 3C */	slwi r0, r0, 1
/* 803643B8 00360018  7C 64 02 14 */	add r3, r4, r0
/* 803643BC 0036001C  A0 63 00 0C */	lhz r3, 0xc(r3)
/* 803643C0 00360020  4E 80 00 20 */	blr
lbl_803643C4:
/* 803643C4 00360024  38 C4 00 0C */	addi r6, r4, 0xc
/* 803643C8 00360028  A0 84 00 0C */	lhz r4, 0xc(r4)
/* 803643CC 0036002C  38 E6 00 02 */	addi r7, r6, 2
/* 803643D0 00360030  38 04 FF FF */	addi r0, r4, -1
/* 803643D4 00360034  54 00 10 3A */	slwi r0, r0, 2
/* 803643D8 00360038  7C 86 02 14 */	add r4, r6, r0
/* 803643DC 0036003C  38 C4 00 02 */	addi r6, r4, 2
/* 803643E0 00360040  48 00 00 4C */	b lbl_8036442C
lbl_803643E4:
/* 803643E4 00360044  7C 07 30 50 */	subf r0, r7, r6
/* 803643E8 00360048  7C 00 16 70 */	srawi r0, r0, 2
/* 803643EC 0036004C  7C 80 01 94 */	addze r4, r0
/* 803643F0 00360050  54 80 0F FE */	srwi r0, r4, 0x1f
/* 803643F4 00360054  7C 00 22 14 */	add r0, r0, r4
/* 803643F8 00360058  54 00 08 3A */	rlwinm r0, r0, 1, 0, 0x1d
/* 803643FC 0036005C  7C 87 02 14 */	add r4, r7, r0
/* 80364400 00360060  7C 07 02 2E */	lhzx r0, r7, r0
/* 80364404 00360064  7C 00 28 40 */	cmplw r0, r5
/* 80364408 00360068  40 80 00 0C */	bge lbl_80364414
/* 8036440C 0036006C  38 E4 00 04 */	addi r7, r4, 4
/* 80364410 00360070  48 00 00 1C */	b lbl_8036442C
lbl_80364414:
/* 80364414 00360074  7C 05 00 40 */	cmplw r5, r0
/* 80364418 00360078  40 80 00 0C */	bge lbl_80364424
/* 8036441C 0036007C  38 C4 FF FC */	addi r6, r4, -4
/* 80364420 00360080  48 00 00 0C */	b lbl_8036442C
lbl_80364424:
/* 80364424 00360084  A0 64 00 02 */	lhz r3, 2(r4)
/* 80364428 00360088  4E 80 00 20 */	blr
lbl_8036442C:
/* 8036442C 0036008C  7C 07 30 40 */	cmplw r7, r6
/* 80364430 00360090  40 81 FF B4 */	ble lbl_803643E4
/* 80364434 00360094  4E 80 00 20 */	blr

.global func_80364438
func_80364438:
/* 80364438 00360098  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8036443C 0036009C  81 83 00 14 */	lwz r12, 0x14(r3)
/* 80364440 003600A0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80364444 003600A4  93 C1 00 08 */	stw r30, 8(r1)
/* 80364448 003600A8  80 6C 00 08 */	lwz r3, 8(r12)
/* 8036444C 003600AC  A3 E3 00 0C */	lhz r31, 0xc(r3)
/* 80364450 003600B0  A0 03 00 0E */	lhz r0, 0xe(r3)
/* 80364454 003600B4  88 C3 00 00 */	lbz r6, 0(r3)
/* 80364458 003600B8  7D 3F 01 D6 */	mullw r9, r31, r0
/* 8036445C 003600BC  88 E3 00 01 */	lbz r7, 1(r3)
/* 80364460 003600C0  39 06 00 01 */	addi r8, r6, 1
/* 80364464 003600C4  80 03 00 04 */	lwz r0, 4(r3)
/* 80364468 003600C8  80 C3 00 14 */	lwz r6, 0x14(r3)
/* 8036446C 003600CC  38 E7 00 01 */	addi r7, r7, 1
/* 80364470 003600D0  7D 65 4B 96 */	divwu r11, r5, r9
/* 80364474 003600D4  7D 2B 49 D6 */	mullw r9, r11, r9
/* 80364478 003600D8  7F C9 28 50 */	subf r30, r9, r5
/* 8036447C 003600DC  7D 5E FB 96 */	divwu r10, r30, r31
/* 80364480 003600E0  7D 2A F9 D6 */	mullw r9, r10, r31
/* 80364484 003600E4  7C 0B 01 D6 */	mullw r0, r11, r0
/* 80364488 003600E8  7D 29 F0 50 */	subf r9, r9, r30
/* 8036448C 003600EC  7C 06 02 14 */	add r0, r6, r0
/* 80364490 003600F0  7D 09 41 D6 */	mullw r8, r9, r8
/* 80364494 003600F4  90 04 00 00 */	stw r0, 0(r4)
/* 80364498 003600F8  80 CC 00 0C */	lwz r6, 0xc(r12)
/* 8036449C 003600FC  7D 2A 39 D6 */	mullw r9, r10, r7
/* 803644A0 00360100  48 00 00 38 */	b lbl_803644D8
lbl_803644A4:
/* 803644A4 00360104  A0 E6 00 00 */	lhz r7, 0(r6)
/* 803644A8 00360108  7C 07 28 40 */	cmplw r7, r5
/* 803644AC 0036010C  41 81 00 28 */	bgt lbl_803644D4
/* 803644B0 00360110  A0 06 00 02 */	lhz r0, 2(r6)
/* 803644B4 00360114  7C 05 00 40 */	cmplw r5, r0
/* 803644B8 00360118  41 81 00 1C */	bgt lbl_803644D4
/* 803644BC 0036011C  7C A7 28 50 */	subf r5, r7, r5
/* 803644C0 00360120  54 A0 10 3A */	slwi r0, r5, 2
/* 803644C4 00360124  7C 05 00 50 */	subf r0, r5, r0
/* 803644C8 00360128  7C A6 02 14 */	add r5, r6, r0
/* 803644CC 0036012C  38 E5 00 08 */	addi r7, r5, 8
/* 803644D0 00360130  48 00 00 14 */	b lbl_803644E4
lbl_803644D4:
/* 803644D4 00360134  80 C6 00 04 */	lwz r6, 4(r6)
lbl_803644D8:
/* 803644D8 00360138  2C 06 00 00 */	cmpwi r6, 0
/* 803644DC 0036013C  40 82 FF C8 */	bne lbl_803644A4
/* 803644E0 00360140  38 EC 00 04 */	addi r7, r12, 4
lbl_803644E4:
/* 803644E4 00360144  88 C7 00 00 */	lbz r6, 0(r7)
/* 803644E8 00360148  38 A8 00 01 */	addi r5, r8, 1
/* 803644EC 0036014C  38 09 00 01 */	addi r0, r9, 1
/* 803644F0 00360150  98 C4 00 04 */	stb r6, 4(r4)
/* 803644F4 00360154  88 C7 00 01 */	lbz r6, 1(r7)
/* 803644F8 00360158  98 C4 00 05 */	stb r6, 5(r4)
/* 803644FC 0036015C  88 C7 00 02 */	lbz r6, 2(r7)
/* 80364500 00360160  98 C4 00 06 */	stb r6, 6(r4)
/* 80364504 00360164  88 C3 00 01 */	lbz r6, 1(r3)
/* 80364508 00360168  98 C4 00 07 */	stb r6, 7(r4)
/* 8036450C 0036016C  A0 C3 00 0A */	lhz r6, 0xa(r3)
/* 80364510 00360170  90 C4 00 08 */	stw r6, 8(r4)
/* 80364514 00360174  A0 C3 00 10 */	lhz r6, 0x10(r3)
/* 80364518 00360178  B0 C4 00 0C */	sth r6, 0xc(r4)
/* 8036451C 0036017C  A0 63 00 12 */	lhz r3, 0x12(r3)
/* 80364520 00360180  B0 64 00 0E */	sth r3, 0xe(r4)
/* 80364524 00360184  B0 A4 00 10 */	sth r5, 0x10(r4)
/* 80364528 00360188  B0 04 00 12 */	sth r0, 0x12(r4)
/* 8036452C 0036018C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80364530 00360190  83 C1 00 08 */	lwz r30, 8(r1)
/* 80364534 00360194  38 21 00 10 */	addi r1, r1, 0x10
/* 80364538 00360198  4E 80 00 20 */	blr