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

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

.global func_80164FA0
func_80164FA0:
/* 80164FA0 00160C00  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80164FA4 00160C04  7C 08 02 A6 */	mflr r0
/* 80164FA8 00160C08  90 01 00 14 */	stw r0, 0x14(r1)
/* 80164FAC 00160C0C  4B FF DB C5 */	bl func_80162B70
/* 80164FB0 00160C10  2C 03 00 07 */	cmpwi r3, 7
/* 80164FB4 00160C14  41 82 00 1C */	beq lbl_80164FD0
/* 80164FB8 00160C18  40 80 00 20 */	bge lbl_80164FD8
/* 80164FBC 00160C1C  2C 03 00 05 */	cmpwi r3, 5
/* 80164FC0 00160C20  40 80 00 08 */	bge lbl_80164FC8
/* 80164FC4 00160C24  48 00 00 14 */	b lbl_80164FD8
lbl_80164FC8:
/* 80164FC8 00160C28  38 60 00 01 */	li r3, 1
/* 80164FCC 00160C2C  48 00 00 10 */	b lbl_80164FDC
lbl_80164FD0:
/* 80164FD0 00160C30  38 60 00 00 */	li r3, 0
/* 80164FD4 00160C34  48 00 00 08 */	b lbl_80164FDC
lbl_80164FD8:
/* 80164FD8 00160C38  38 60 00 00 */	li r3, 0
lbl_80164FDC:
/* 80164FDC 00160C3C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80164FE0 00160C40  7C 08 03 A6 */	mtlr r0
/* 80164FE4 00160C44  38 21 00 10 */	addi r1, r1, 0x10
/* 80164FE8 00160C48  4E 80 00 20 */	blr

.global func_80164FEC
func_80164FEC:
/* 80164FEC 00160C4C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80164FF0 00160C50  7C 08 02 A6 */	mflr r0
/* 80164FF4 00160C54  90 01 00 14 */	stw r0, 0x14(r1)
/* 80164FF8 00160C58  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80164FFC 00160C5C  7C 9F 23 78 */	mr r31, r4
/* 80165000 00160C60  93 C1 00 08 */	stw r30, 8(r1)
/* 80165004 00160C64  7C 7E 1B 78 */	mr r30, r3
/* 80165008 00160C68  48 0F 8F C9 */	bl func_8025DFD0
/* 8016500C 00160C6C  48 0F 93 11 */	bl func_8025E31C
/* 80165010 00160C70  81 83 00 00 */	lwz r12, 0(r3)
/* 80165014 00160C74  81 8C 00 20 */	lwz r12, 0x20(r12)
/* 80165018 00160C78  7D 89 03 A6 */	mtctr r12
/* 8016501C 00160C7C  4E 80 04 21 */	bctrl
/* 80165020 00160C80  2C 03 00 00 */	cmpwi r3, 0
/* 80165024 00160C84  41 82 00 1C */	beq lbl_80165040
/* 80165028 00160C88  48 0F 8F A9 */	bl func_8025DFD0
/* 8016502C 00160C8C  48 0F 92 F1 */	bl func_8025E31C
/* 80165030 00160C90  7F C4 F3 78 */	mr r4, r30
/* 80165034 00160C94  7F E5 FB 78 */	mr r5, r31
/* 80165038 00160C98  48 10 0D F5 */	bl func_80265E2C
/* 8016503C 00160C9C  48 00 00 1C */	b lbl_80165058
lbl_80165040:
/* 80165040 00160CA0  48 0F 8F 91 */	bl func_8025DFD0
/* 80165044 00160CA4  48 0F 92 D9 */	bl func_8025E31C
/* 80165048 00160CA8  7F C4 F3 78 */	mr r4, r30
/* 8016504C 00160CAC  7F E5 FB 78 */	mr r5, r31
/* 80165050 00160CB0  48 0F 98 1D */	bl func_8025E86C
/* 80165054 00160CB4  38 60 00 00 */	li r3, 0
lbl_80165058:
/* 80165058 00160CB8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8016505C 00160CBC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80165060 00160CC0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80165064 00160CC4  7C 08 03 A6 */	mtlr r0
/* 80165068 00160CC8  38 21 00 10 */	addi r1, r1, 0x10
/* 8016506C 00160CCC  4E 80 00 20 */	blr

.global func_80165070
func_80165070:
/* 80165070 00160CD0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165074 00160CD4  7C 08 02 A6 */	mflr r0
/* 80165078 00160CD8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8016507C 00160CDC  4B FF FF 25 */	bl func_80164FA0
/* 80165080 00160CE0  2C 03 00 00 */	cmpwi r3, 0
/* 80165084 00160CE4  41 82 00 14 */	beq lbl_80165098
/* 80165088 00160CE8  48 0F 8F 49 */	bl func_8025DFD0
/* 8016508C 00160CEC  48 0F 92 91 */	bl func_8025E31C
/* 80165090 00160CF0  48 0F F4 61 */	bl func_802644F0
/* 80165094 00160CF4  48 00 00 08 */	b lbl_8016509C
lbl_80165098:
/* 80165098 00160CF8  38 60 00 00 */	li r3, 0
lbl_8016509C:
/* 8016509C 00160CFC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801650A0 00160D00  7C 08 03 A6 */	mtlr r0
/* 801650A4 00160D04  38 21 00 10 */	addi r1, r1, 0x10
/* 801650A8 00160D08  4E 80 00 20 */	blr

.global func_801650AC
func_801650AC:
/* 801650AC 00160D0C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801650B0 00160D10  7C 08 02 A6 */	mflr r0
/* 801650B4 00160D14  90 01 00 14 */	stw r0, 0x14(r1)
/* 801650B8 00160D18  4B FF FE E9 */	bl func_80164FA0
/* 801650BC 00160D1C  2C 03 00 00 */	cmpwi r3, 0
/* 801650C0 00160D20  40 82 00 0C */	bne lbl_801650CC
/* 801650C4 00160D24  38 60 00 00 */	li r3, 0
/* 801650C8 00160D28  48 00 00 38 */	b lbl_80165100
lbl_801650CC:
/* 801650CC 00160D2C  48 0F 8F 05 */	bl func_8025DFD0
/* 801650D0 00160D30  48 0F 92 4D */	bl func_8025E31C
/* 801650D4 00160D34  48 0F F4 1D */	bl func_802644F0
/* 801650D8 00160D38  2C 03 00 00 */	cmpwi r3, 0
/* 801650DC 00160D3C  41 82 00 0C */	beq lbl_801650E8
/* 801650E0 00160D40  38 60 00 01 */	li r3, 1
/* 801650E4 00160D44  48 00 00 1C */	b lbl_80165100
lbl_801650E8:
/* 801650E8 00160D48  48 0F 8E E9 */	bl func_8025DFD0
/* 801650EC 00160D4C  48 0F 92 31 */	bl func_8025E31C
/* 801650F0 00160D50  81 83 00 00 */	lwz r12, 0(r3)
/* 801650F4 00160D54  81 8C 00 20 */	lwz r12, 0x20(r12)
/* 801650F8 00160D58  7D 89 03 A6 */	mtctr r12
/* 801650FC 00160D5C  4E 80 04 21 */	bctrl
lbl_80165100:
/* 80165100 00160D60  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165104 00160D64  7C 08 03 A6 */	mtlr r0
/* 80165108 00160D68  38 21 00 10 */	addi r1, r1, 0x10
/* 8016510C 00160D6C  4E 80 00 20 */	blr

.global func_80165110
func_80165110:
/* 80165110 00160D70  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165114 00160D74  7C 08 02 A6 */	mflr r0
/* 80165118 00160D78  90 01 00 14 */	stw r0, 0x14(r1)
/* 8016511C 00160D7C  48 0F 8E B5 */	bl func_8025DFD0
/* 80165120 00160D80  48 0F 91 FD */	bl func_8025E31C
/* 80165124 00160D84  48 0F F7 D9 */	bl func_802648FC
/* 80165128 00160D88  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8016512C 00160D8C  7C 08 03 A6 */	mtlr r0
/* 80165130 00160D90  38 21 00 10 */	addi r1, r1, 0x10
/* 80165134 00160D94  4E 80 00 20 */	blr

.global func_80165138
func_80165138:
/* 80165138 00160D98  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8016513C 00160D9C  7C 08 02 A6 */	mflr r0
/* 80165140 00160DA0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165144 00160DA4  48 0F 8E 8D */	bl func_8025DFD0
/* 80165148 00160DA8  48 0F 91 D5 */	bl func_8025E31C
/* 8016514C 00160DAC  48 0F F4 A1 */	bl func_802645EC
/* 80165150 00160DB0  7C 03 00 D0 */	neg r0, r3
/* 80165154 00160DB4  7C 00 1B 78 */	or r0, r0, r3
/* 80165158 00160DB8  54 03 0F FE */	srwi r3, r0, 0x1f
/* 8016515C 00160DBC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165160 00160DC0  7C 08 03 A6 */	mtlr r0
/* 80165164 00160DC4  38 21 00 10 */	addi r1, r1, 0x10
/* 80165168 00160DC8  4E 80 00 20 */	blr

.global func_8016516C
func_8016516C:
/* 8016516C 00160DCC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165170 00160DD0  7C 08 02 A6 */	mflr r0
/* 80165174 00160DD4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165178 00160DD8  48 0F 8E 59 */	bl func_8025DFD0
/* 8016517C 00160DDC  48 0F 91 A1 */	bl func_8025E31C
/* 80165180 00160DE0  81 83 00 00 */	lwz r12, 0(r3)
/* 80165184 00160DE4  81 8C 00 48 */	lwz r12, 0x48(r12)
/* 80165188 00160DE8  7D 89 03 A6 */	mtctr r12
/* 8016518C 00160DEC  4E 80 04 21 */	bctrl
/* 80165190 00160DF0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165194 00160DF4  7C 08 03 A6 */	mtlr r0
/* 80165198 00160DF8  38 21 00 10 */	addi r1, r1, 0x10
/* 8016519C 00160DFC  4E 80 00 20 */	blr

.global func_801651A0
func_801651A0:
/* 801651A0 00160E00  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801651A4 00160E04  7C 08 02 A6 */	mflr r0
/* 801651A8 00160E08  90 01 00 14 */	stw r0, 0x14(r1)
/* 801651AC 00160E0C  48 0F 8E 25 */	bl func_8025DFD0
/* 801651B0 00160E10  48 0F 91 6D */	bl func_8025E31C
/* 801651B4 00160E14  81 83 00 00 */	lwz r12, 0(r3)
/* 801651B8 00160E18  81 8C 00 44 */	lwz r12, 0x44(r12)
/* 801651BC 00160E1C  7D 89 03 A6 */	mtctr r12
/* 801651C0 00160E20  4E 80 04 21 */	bctrl
/* 801651C4 00160E24  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801651C8 00160E28  7C 08 03 A6 */	mtlr r0
/* 801651CC 00160E2C  38 21 00 10 */	addi r1, r1, 0x10
/* 801651D0 00160E30  4E 80 00 20 */	blr

.global func_801651D4
func_801651D4:
/* 801651D4 00160E34  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801651D8 00160E38  7C 08 02 A6 */	mflr r0
/* 801651DC 00160E3C  90 01 00 14 */	stw r0, 0x14(r1)
/* 801651E0 00160E40  48 0F 8D F1 */	bl func_8025DFD0
/* 801651E4 00160E44  48 0F 91 39 */	bl func_8025E31C
/* 801651E8 00160E48  48 10 1D 95 */	bl func_80266F7C
/* 801651EC 00160E4C  2C 03 00 00 */	cmpwi r3, 0
/* 801651F0 00160E50  40 81 00 14 */	ble lbl_80165204
/* 801651F4 00160E54  48 0F 8D DD */	bl func_8025DFD0
/* 801651F8 00160E58  48 0F 91 25 */	bl func_8025E31C
/* 801651FC 00160E5C  48 10 1D 81 */	bl func_80266F7C
/* 80165200 00160E60  48 00 00 14 */	b lbl_80165214
lbl_80165204:
/* 80165204 00160E64  48 0F 8D CD */	bl func_8025DFD0
/* 80165208 00160E68  48 0F 91 15 */	bl func_8025E31C
/* 8016520C 00160E6C  48 10 1D 71 */	bl func_80266F7C
/* 80165210 00160E70  7C 63 00 D0 */	neg r3, r3
lbl_80165214:
/* 80165214 00160E74  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165218 00160E78  7C 08 03 A6 */	mtlr r0
/* 8016521C 00160E7C  38 21 00 10 */	addi r1, r1, 0x10
/* 80165220 00160E80  4E 80 00 20 */	blr

.global func_80165224
func_80165224:
/* 80165224 00160E84  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165228 00160E88  7C 08 02 A6 */	mflr r0
/* 8016522C 00160E8C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165230 00160E90  48 0F 8D A1 */	bl func_8025DFD0
/* 80165234 00160E94  48 0F 90 E9 */	bl func_8025E31C
/* 80165238 00160E98  81 83 00 00 */	lwz r12, 0(r3)
/* 8016523C 00160E9C  81 8C 00 3C */	lwz r12, 0x3c(r12)
/* 80165240 00160EA0  7D 89 03 A6 */	mtctr r12
/* 80165244 00160EA4  4E 80 04 21 */	bctrl
/* 80165248 00160EA8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8016524C 00160EAC  7C 08 03 A6 */	mtlr r0
/* 80165250 00160EB0  38 21 00 10 */	addi r1, r1, 0x10
/* 80165254 00160EB4  4E 80 00 20 */	blr

.global func_80165258
func_80165258:
/* 80165258 00160EB8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8016525C 00160EBC  7C 08 02 A6 */	mflr r0
/* 80165260 00160EC0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165264 00160EC4  4B FF FE 49 */	bl func_801650AC
/* 80165268 00160EC8  2C 03 00 00 */	cmpwi r3, 0
/* 8016526C 00160ECC  41 82 00 20 */	beq lbl_8016528C
/* 80165270 00160ED0  48 0F 8D 61 */	bl func_8025DFD0
/* 80165274 00160ED4  48 0F 90 A9 */	bl func_8025E31C
/* 80165278 00160ED8  81 83 00 00 */	lwz r12, 0(r3)
/* 8016527C 00160EDC  81 8C 00 24 */	lwz r12, 0x24(r12)
/* 80165280 00160EE0  7D 89 03 A6 */	mtctr r12
/* 80165284 00160EE4  4E 80 04 21 */	bctrl
/* 80165288 00160EE8  48 00 00 08 */	b lbl_80165290
lbl_8016528C:
/* 8016528C 00160EEC  38 60 00 00 */	li r3, 0
lbl_80165290:
/* 80165290 00160EF0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165294 00160EF4  7C 08 03 A6 */	mtlr r0
/* 80165298 00160EF8  38 21 00 10 */	addi r1, r1, 0x10
/* 8016529C 00160EFC  4E 80 00 20 */	blr

.global func_801652A0
func_801652A0:
/* 801652A0 00160F00  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801652A4 00160F04  7C 08 02 A6 */	mflr r0
/* 801652A8 00160F08  90 01 00 14 */	stw r0, 0x14(r1)
/* 801652AC 00160F0C  4B FF FE 01 */	bl func_801650AC
/* 801652B0 00160F10  2C 03 00 00 */	cmpwi r3, 0
/* 801652B4 00160F14  41 82 00 20 */	beq lbl_801652D4
/* 801652B8 00160F18  48 0F 8D 19 */	bl func_8025DFD0
/* 801652BC 00160F1C  48 0F 90 61 */	bl func_8025E31C
/* 801652C0 00160F20  81 83 00 00 */	lwz r12, 0(r3)
/* 801652C4 00160F24  81 8C 00 28 */	lwz r12, 0x28(r12)
/* 801652C8 00160F28  7D 89 03 A6 */	mtctr r12
/* 801652CC 00160F2C  4E 80 04 21 */	bctrl
/* 801652D0 00160F30  48 00 00 08 */	b lbl_801652D8
lbl_801652D4:
/* 801652D4 00160F34  38 60 00 00 */	li r3, 0
lbl_801652D8:
/* 801652D8 00160F38  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801652DC 00160F3C  7C 08 03 A6 */	mtlr r0
/* 801652E0 00160F40  38 21 00 10 */	addi r1, r1, 0x10
/* 801652E4 00160F44  4E 80 00 20 */	blr

.global func_801652E8
func_801652E8:
/* 801652E8 00160F48  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 801652EC 00160F4C  7C 08 02 A6 */	mflr r0
/* 801652F0 00160F50  90 01 00 34 */	stw r0, 0x34(r1)
/* 801652F4 00160F54  48 0F 8C DD */	bl func_8025DFD0
/* 801652F8 00160F58  48 0F 90 25 */	bl func_8025E31C
/* 801652FC 00160F5C  38 81 00 08 */	addi r4, r1, 8
/* 80165300 00160F60  38 A0 00 08 */	li r5, 8
/* 80165304 00160F64  48 10 01 85 */	bl func_80265488
/* 80165308 00160F68  2C 03 00 00 */	cmpwi r3, 0
/* 8016530C 00160F6C  41 81 00 0C */	bgt lbl_80165318
/* 80165310 00160F70  38 60 FF FF */	li r3, -1
/* 80165314 00160F74  48 00 00 08 */	b lbl_8016531C
lbl_80165318:
/* 80165318 00160F78  80 61 00 08 */	lwz r3, 8(r1)
lbl_8016531C:
/* 8016531C 00160F7C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80165320 00160F80  7C 08 03 A6 */	mtlr r0
/* 80165324 00160F84  38 21 00 30 */	addi r1, r1, 0x30
/* 80165328 00160F88  4E 80 00 20 */	blr

.global func_8016532C
func_8016532C:
/* 8016532C 00160F8C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165330 00160F90  7C 08 02 A6 */	mflr r0
/* 80165334 00160F94  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165338 00160F98  48 0F 8C 99 */	bl func_8025DFD0
/* 8016533C 00160F9C  48 0F 8F E1 */	bl func_8025E31C
/* 80165340 00160FA0  48 10 0A AD */	bl func_80265DEC
/* 80165344 00160FA4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80165348 00160FA8  7C 08 03 A6 */	mtlr r0
/* 8016534C 00160FAC  38 21 00 10 */	addi r1, r1, 0x10
/* 80165350 00160FB0  4E 80 00 20 */	blr

.global func_80165354
func_80165354:
/* 80165354 00160FB4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80165358 00160FB8  7C 08 02 A6 */	mflr r0
/* 8016535C 00160FBC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80165360 00160FC0  4B FF FD 4D */	bl func_801650AC
/* 80165364 00160FC4  2C 03 00 00 */	cmpwi r3, 0
/* 80165368 00160FC8  41 82 00 10 */	beq lbl_80165378
/* 8016536C 00160FCC  4B FF FE ED */	bl func_80165258
/* 80165370 00160FD0  2C 03 00 00 */	cmpwi r3, 0
/* 80165374 00160FD4  41 82 00 0C */	beq lbl_80165380
lbl_80165378:
/* 80165378 00160FD8  38 60 FF FF */	li r3, -1
/* 8016537C 00160FDC  48 00 00 1C */	b lbl_80165398
lbl_80165380:
/* 80165380 00160FE0  48 00 38 C9 */	bl func_80168C48
/* 80165384 00160FE4  48 00 41 1D */	bl func_801694A0
/* 80165388 00160FE8  48 0F 8C 49 */	bl func_8025DFD0
/* 8016538C 00160FEC  48 0F 8F 91 */	bl func_8025E31C
/* 80165390 00160FF0  38 80 00 02 */	li r4, 2
/* 80165394 00160FF4  48 10 08 1D */	bl func_80265BB0
lbl_80165398:
/* 80165398 00160FF8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8016539C 00160FFC  7C 08 03 A6 */	mtlr r0
/* 801653A0 00161000  38 21 00 10 */	addi r1, r1, 0x10
/* 801653A4 00161004  4E 80 00 20 */	blr

.global func_801653A8
func_801653A8:
/* 801653A8 00161008  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801653AC 0016100C  7C 08 02 A6 */	mflr r0
/* 801653B0 00161010  90 01 00 14 */	stw r0, 0x14(r1)
/* 801653B4 00161014  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801653B8 00161018  7C 7F 1B 78 */	mr r31, r3
/* 801653BC 0016101C  4B FF FC F1 */	bl func_801650AC
/* 801653C0 00161020  2C 03 00 00 */	cmpwi r3, 0
/* 801653C4 00161024  41 82 00 10 */	beq lbl_801653D4
/* 801653C8 00161028  4B FF FE 91 */	bl func_80165258
/* 801653CC 0016102C  2C 03 00 00 */	cmpwi r3, 0
/* 801653D0 00161030  41 82 00 0C */	beq lbl_801653DC
lbl_801653D4:
/* 801653D4 00161034  38 60 FF FF */	li r3, -1
/* 801653D8 00161038  48 00 00 1C */	b lbl_801653F4
lbl_801653DC:
/* 801653DC 0016103C  48 00 38 6D */	bl func_80168C48
/* 801653E0 00161040  48 00 40 C1 */	bl func_801694A0
/* 801653E4 00161044  48 0F 8B ED */	bl func_8025DFD0
/* 801653E8 00161048  48 0F 8F 35 */	bl func_8025E31C
/* 801653EC 0016104C  7F E4 FB 78 */	mr r4, r31
/* 801653F0 00161050  48 10 08 2D */	bl func_80265C1C
lbl_801653F4:
/* 801653F4 00161054  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801653F8 00161058  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801653FC 0016105C  7C 08 03 A6 */	mtlr r0
/* 80165400 00161060  38 21 00 10 */	addi r1, r1, 0x10
/* 80165404 00161064  4E 80 00 20 */	blr

.global func_80165408
func_80165408:
/* 80165408 00161068  7C 64 1B 78 */	mr r4, r3
/* 8016540C 0016106C  48 00 00 08 */	b lbl_80165414
lbl_80165410:
/* 80165410 00161070  38 84 00 02 */	addi r4, r4, 2
lbl_80165414:
/* 80165414 00161074  A0 04 00 00 */	lhz r0, 0(r4)
/* 80165418 00161078  2C 00 00 00 */	cmpwi r0, 0
/* 8016541C 0016107C  40 82 FF F4 */	bne lbl_80165410
/* 80165420 00161080  7C 63 20 50 */	subf r3, r3, r4
/* 80165424 00161084  54 60 0F FE */	srwi r0, r3, 0x1f
/* 80165428 00161088  7C 00 1A 14 */	add r0, r0, r3
/* 8016542C 0016108C  7C 03 0E 70 */	srawi r3, r0, 1
/* 80165430 00161090  4E 80 00 20 */	blr

.global func_80165434
func_80165434:
/* 80165434 00161094  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80165438 00161098  7C 08 02 A6 */	mflr r0
/* 8016543C 0016109C  90 01 00 44 */	stw r0, 0x44(r1)
/* 80165440 001610A0  39 61 00 40 */	addi r11, r1, 0x40
/* 80165444 001610A4  48 06 1C E5 */	bl _savegpr_27
/* 80165448 001610A8  7C 7B 1B 78 */	mr r27, r3
/* 8016544C 001610AC  7C 9D 23 78 */	mr r29, r4
/* 80165450 001610B0  7C BC 2B 78 */	mr r28, r5
/* 80165454 001610B4  4B FF FC 59 */	bl func_801650AC
/* 80165458 001610B8  2C 03 00 00 */	cmpwi r3, 0
/* 8016545C 001610BC  41 82 00 10 */	beq lbl_8016546C
/* 80165460 001610C0  4B FF FD F9 */	bl func_80165258
/* 80165464 001610C4  2C 03 00 00 */	cmpwi r3, 0
/* 80165468 001610C8  41 82 00 0C */	beq lbl_80165474
lbl_8016546C:
/* 8016546C 001610CC  38 60 FF FF */	li r3, -1
/* 80165470 001610D0  48 00 00 8C */	b lbl_801654FC
lbl_80165474:
/* 80165474 001610D4  2C 1D 00 0A */	cmpwi r29, 0xa
/* 80165478 001610D8  40 80 00 0C */	bge lbl_80165484
/* 8016547C 001610DC  3B A0 00 0A */	li r29, 0xa
/* 80165480 001610E0  48 00 00 0C */	b lbl_8016548C
lbl_80165484:
/* 80165484 001610E4  1C 1C 00 64 */	mulli r0, r28, 0x64
/* 80165488 001610E8  7F A0 EB D6 */	divw r29, r0, r29
lbl_8016548C:
/* 8016548C 001610EC  80 0D 9D F4 */	lwz r0, lbl_8063F0B4-_SDA_BASE_(r13)
/* 80165490 001610F0  2C 00 00 00 */	cmpwi r0, 0
/* 80165494 001610F4  41 82 00 08 */	beq lbl_8016549C
/* 80165498 001610F8  3B A0 00 0A */	li r29, 0xa
lbl_8016549C:
/* 8016549C 001610FC  83 8D 9D F0 */	lwz r28, lbl_8063F0B0-_SDA_BASE_(r13)
/* 801654A0 00161100  48 00 35 09 */	bl func_801689A8
/* 801654A4 00161104  7C 64 1B 78 */	mr r4, r3
/* 801654A8 00161108  38 61 00 08 */	addi r3, r1, 8
/* 801654AC 0016110C  38 A0 00 20 */	li r5, 0x20
/* 801654B0 00161110  48 01 1C 9D */	bl func_8017714C
/* 801654B4 00161114  48 00 34 F5 */	bl func_801689A8
/* 801654B8 00161118  4B FF FF 51 */	bl func_80165408
/* 801654BC 0016111C  7C 7E 1B 78 */	mr r30, r3
/* 801654C0 00161120  48 00 34 E9 */	bl func_801689A8
/* 801654C4 00161124  7C 7F 1B 78 */	mr r31, r3
/* 801654C8 00161128  48 0F 8B 09 */	bl func_8025DFD0
/* 801654CC 0016112C  48 0F 8E 51 */	bl func_8025E31C
/* 801654D0 00161130  7F E4 FB 78 */	mr r4, r31
/* 801654D4 00161134  7F C5 F3 78 */	mr r5, r30
/* 801654D8 00161138  48 10 09 55 */	bl func_80265E2C
/* 801654DC 0016113C  48 00 37 6D */	bl func_80168C48
/* 801654E0 00161140  48 00 3F C1 */	bl func_801694A0
/* 801654E4 00161144  48 0F 8A ED */	bl func_8025DFD0
/* 801654E8 00161148  48 0F 8E 35 */	bl func_8025E31C
/* 801654EC 0016114C  7F 64 DB 78 */	mr r4, r27
/* 801654F0 00161150  7F A5 EB 78 */	mr r5, r29
/* 801654F4 00161154  7F 86 E3 78 */	mr r6, r28
/* 801654F8 00161158  48 10 04 81 */	bl func_80265978
lbl_801654FC:
/* 801654FC 0016115C  39 61 00 40 */	addi r11, r1, 0x40
/* 80165500 00161160  48 06 1C 75 */	bl _restgpr_27
/* 80165504 00161164  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80165508 00161168  7C 08 03 A6 */	mtlr r0
/* 8016550C 0016116C  38 21 00 40 */	addi r1, r1, 0x40
/* 80165510 00161170  4E 80 00 20 */	blr

.global func_80165514
func_80165514:
/* 80165514 00161174  38 A0 00 01 */	li r5, 1
/* 80165518 00161178  38 6D 9D E8 */	addi r3, r13, lbl_8063F0A8-_SDA_BASE_
/* 8016551C 0016117C  38 80 00 04 */	li r4, 4
/* 80165520 00161180  38 00 00 00 */	li r0, 0
/* 80165524 00161184  98 AD 9D E8 */	stb r5, lbl_8063F0A8-_SDA_BASE_(r13)
/* 80165528 00161188  B0 83 00 02 */	sth r4, 2(r3)
/* 8016552C 0016118C  98 03 00 04 */	stb r0, 4(r3)
/* 80165530 00161190  4E 80 00 20 */	blr