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

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

.global func_8016340C
func_8016340C:
/* 8016340C 0015F06C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80163410 0015F070  7C 08 02 A6 */	mflr r0
/* 80163414 0015F074  90 01 00 14 */	stw r0, 0x14(r1)
/* 80163418 0015F078  48 10 F3 A1 */	bl OSGetTime
/* 8016341C 0015F07C  90 8D 9D AC */	stw r4, lbl_8063F06C-_SDA_BASE_(r13)
/* 80163420 0015F080  90 6D 9D A8 */	stw r3, lbl_8063F068-_SDA_BASE_(r13)
/* 80163424 0015F084  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80163428 0015F088  7C 08 03 A6 */	mtlr r0
/* 8016342C 0015F08C  38 21 00 10 */	addi r1, r1, 0x10
/* 80163430 0015F090  4E 80 00 20 */	blr

.global func_80163434
func_80163434:
/* 80163434 0015F094  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80163438 0015F098  7C 08 02 A6 */	mflr r0
/* 8016343C 0015F09C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80163440 0015F0A0  48 10 F3 79 */	bl OSGetTime
/* 80163444 0015F0A4  3C C0 80 00 */	lis r6, 0x800000F8@ha
/* 80163448 0015F0A8  81 0D 9D AC */	lwz r8, lbl_8063F06C-_SDA_BASE_(r13)
/* 8016344C 0015F0AC  80 06 00 F8 */	lwz r0, 0x800000F8@l(r6)
/* 80163450 0015F0B0  3C A0 10 62 */	lis r5, 0x10624DD3@ha
/* 80163454 0015F0B4  38 C5 4D D3 */	addi r6, r5, 0x10624DD3@l
/* 80163458 0015F0B8  80 ED 9D A8 */	lwz r7, lbl_8063F068-_SDA_BASE_(r13)
/* 8016345C 0015F0BC  54 00 F0 BE */	srwi r0, r0, 2
/* 80163460 0015F0C0  7C 88 20 10 */	subfc r4, r8, r4
/* 80163464 0015F0C4  7C 06 00 16 */	mulhwu r0, r6, r0
/* 80163468 0015F0C8  38 A0 00 00 */	li r5, 0
/* 8016346C 0015F0CC  7C 67 19 10 */	subfe r3, r7, r3
/* 80163470 0015F0D0  54 06 D1 BE */	srwi r6, r0, 6
/* 80163474 0015F0D4  48 06 3E 05 */	bl __div2i
/* 80163478 0015F0D8  38 C0 00 0A */	li r6, 0xa
/* 8016347C 0015F0DC  38 A0 00 00 */	li r5, 0
/* 80163480 0015F0E0  48 06 3D F9 */	bl __div2i
/* 80163484 0015F0E4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80163488 0015F0E8  7C 83 23 78 */	mr r3, r4
/* 8016348C 0015F0EC  7C 08 03 A6 */	mtlr r0
/* 80163490 0015F0F0  38 21 00 10 */	addi r1, r1, 0x10
/* 80163494 0015F0F4  4E 80 00 20 */	blr

.global func_80163498
func_80163498:
/* 80163498 0015F0F8  38 00 00 00 */	li r0, 0
/* 8016349C 0015F0FC  90 03 00 00 */	stw r0, 0(r3)
/* 801634A0 0015F100  80 0D 9D B0 */	lwz r0, lbl_8063F070-_SDA_BASE_(r13)
/* 801634A4 0015F104  90 03 00 04 */	stw r0, 4(r3)
/* 801634A8 0015F108  80 8D 9D B0 */	lwz r4, lbl_8063F070-_SDA_BASE_(r13)
/* 801634AC 0015F10C  2C 04 00 00 */	cmpwi r4, 0
/* 801634B0 0015F110  41 82 00 08 */	beq lbl_801634B8
/* 801634B4 0015F114  90 64 00 00 */	stw r3, 0(r4)
lbl_801634B8:
/* 801634B8 0015F118  90 6D 9D B0 */	stw r3, lbl_8063F070-_SDA_BASE_(r13)
/* 801634BC 0015F11C  4E 80 00 20 */	blr

.global func_801634C0
func_801634C0:
/* 801634C0 0015F120  80 83 00 00 */	lwz r4, 0(r3)
/* 801634C4 0015F124  2C 04 00 00 */	cmpwi r4, 0
/* 801634C8 0015F128  41 82 00 0C */	beq lbl_801634D4
/* 801634CC 0015F12C  90 64 00 04 */	stw r3, 4(r4)
/* 801634D0 0015F130  48 00 00 0C */	b lbl_801634DC
lbl_801634D4:
/* 801634D4 0015F134  80 03 00 04 */	lwz r0, 4(r3)
/* 801634D8 0015F138  90 0D 9D B0 */	stw r0, lbl_8063F070-_SDA_BASE_(r13)
lbl_801634DC:
/* 801634DC 0015F13C  80 83 00 04 */	lwz r4, 4(r3)
/* 801634E0 0015F140  2C 04 00 00 */	cmpwi r4, 0
/* 801634E4 0015F144  4D 82 00 20 */	beqlr
/* 801634E8 0015F148  80 03 00 00 */	lwz r0, 0(r3)
/* 801634EC 0015F14C  90 04 00 00 */	stw r0, 0(r4)
/* 801634F0 0015F150  4E 80 00 20 */	blr

.global func_801634F4
func_801634F4:
/* 801634F4 0015F154  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801634F8 0015F158  7C 08 02 A6 */	mflr r0
/* 801634FC 0015F15C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80163500 0015F160  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80163504 0015F164  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80163508 0015F168  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8016350C 0015F16C  93 81 00 10 */	stw r28, 0x10(r1)
/* 80163510 0015F170  4B FF FF 25 */	bl func_80163434
/* 80163514 0015F174  83 AD 9D B0 */	lwz r29, lbl_8063F070-_SDA_BASE_(r13)
/* 80163518 0015F178  7C 7E 1B 78 */	mr r30, r3
/* 8016351C 0015F17C  3B E0 00 02 */	li r31, 2
/* 80163520 0015F180  48 00 00 38 */	b lbl_80163558
lbl_80163524:
/* 80163524 0015F184  80 1D 00 14 */	lwz r0, 0x14(r29)
/* 80163528 0015F188  83 9D 00 04 */	lwz r28, 4(r29)
/* 8016352C 0015F18C  7C 00 F0 40 */	cmplw r0, r30
/* 80163530 0015F190  41 81 00 24 */	bgt lbl_80163554
/* 80163534 0015F194  7F A3 EB 78 */	mr r3, r29
/* 80163538 0015F198  4B FF FF 89 */	bl func_801634C0
/* 8016353C 0015F19C  93 FD 00 18 */	stw r31, 0x18(r29)
/* 80163540 0015F1A0  81 9D 00 08 */	lwz r12, 8(r29)
/* 80163544 0015F1A4  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 80163548 0015F1A8  80 9D 00 10 */	lwz r4, 0x10(r29)
/* 8016354C 0015F1AC  7D 89 03 A6 */	mtctr r12
/* 80163550 0015F1B0  4E 80 04 21 */	bctrl
lbl_80163554:
/* 80163554 0015F1B4  7F 9D E3 78 */	mr r29, r28
lbl_80163558:
/* 80163558 0015F1B8  2C 1D 00 00 */	cmpwi r29, 0
/* 8016355C 0015F1BC  40 82 FF C8 */	bne lbl_80163524
/* 80163560 0015F1C0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80163564 0015F1C4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80163568 0015F1C8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8016356C 0015F1CC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80163570 0015F1D0  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80163574 0015F1D4  7C 08 03 A6 */	mtlr r0
/* 80163578 0015F1D8  38 21 00 20 */	addi r1, r1, 0x20
/* 8016357C 0015F1DC  4E 80 00 20 */	blr

.global func_80163580
func_80163580:
/* 80163580 0015F1E0  38 80 00 00 */	li r4, 0
/* 80163584 0015F1E4  38 A0 00 04 */	li r5, 4
/* 80163588 0015F1E8  4B EA 0B 7C */	b memset

.global func_8016358C
func_8016358C:
/* 8016358C 0015F1EC  90 A3 00 08 */	stw r5, 8(r3)
/* 80163590 0015F1F0  90 C3 00 0C */	stw r6, 0xc(r3)
/* 80163594 0015F1F4  90 E3 00 10 */	stw r7, 0x10(r3)
/* 80163598 0015F1F8  48 00 00 04 */	b lbl_8016359C
lbl_8016359C:
/* 8016359C 0015F1FC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801635A0 0015F200  7C 08 02 A6 */	mflr r0
/* 801635A4 0015F204  90 01 00 14 */	stw r0, 0x14(r1)
/* 801635A8 0015F208  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801635AC 0015F20C  7C 9F 23 78 */	mr r31, r4
/* 801635B0 0015F210  93 C1 00 08 */	stw r30, 8(r1)
/* 801635B4 0015F214  7C 7E 1B 78 */	mr r30, r3
/* 801635B8 0015F218  80 03 00 18 */	lwz r0, 0x18(r3)
/* 801635BC 0015F21C  28 00 00 01 */	cmplwi r0, 1
/* 801635C0 0015F220  40 82 00 08 */	bne lbl_801635C8
/* 801635C4 0015F224  4B FF FE FD */	bl func_801634C0
lbl_801635C8:
/* 801635C8 0015F228  4B FF FE 6D */	bl func_80163434
/* 801635CC 0015F22C  3C 80 66 66 */	lis r4, 0x66666667@ha
/* 801635D0 0015F230  38 00 00 01 */	li r0, 1
/* 801635D4 0015F234  38 84 66 67 */	addi r4, r4, 0x66666667@l
/* 801635D8 0015F238  90 1E 00 18 */	stw r0, 0x18(r30)
/* 801635DC 0015F23C  7C 04 F8 96 */	mulhw r0, r4, r31
/* 801635E0 0015F240  7C 00 16 70 */	srawi r0, r0, 2
/* 801635E4 0015F244  54 04 0F FE */	srwi r4, r0, 0x1f
/* 801635E8 0015F248  7C 00 22 14 */	add r0, r0, r4
/* 801635EC 0015F24C  7C 03 02 14 */	add r0, r3, r0
/* 801635F0 0015F250  7F C3 F3 78 */	mr r3, r30
/* 801635F4 0015F254  90 1E 00 14 */	stw r0, 0x14(r30)
/* 801635F8 0015F258  4B FF FE A1 */	bl func_80163498
/* 801635FC 0015F25C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80163600 0015F260  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80163604 0015F264  83 C1 00 08 */	lwz r30, 8(r1)
/* 80163608 0015F268  7C 08 03 A6 */	mtlr r0
/* 8016360C 0015F26C  38 21 00 10 */	addi r1, r1, 0x10
/* 80163610 0015F270  4E 80 00 20 */	blr

.global func_80163614
func_80163614:
/* 80163614 0015F274  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80163618 0015F278  7C 08 02 A6 */	mflr r0
/* 8016361C 0015F27C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80163620 0015F280  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80163624 0015F284  7C 7F 1B 78 */	mr r31, r3
/* 80163628 0015F288  80 03 00 18 */	lwz r0, 0x18(r3)
/* 8016362C 0015F28C  28 00 00 01 */	cmplwi r0, 1
/* 80163630 0015F290  40 82 00 08 */	bne lbl_80163638
/* 80163634 0015F294  4B FF FE 8D */	bl func_801634C0
lbl_80163638:
/* 80163638 0015F298  38 00 00 00 */	li r0, 0
/* 8016363C 0015F29C  90 1F 00 18 */	stw r0, 0x18(r31)
/* 80163640 0015F2A0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80163644 0015F2A4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80163648 0015F2A8  7C 08 03 A6 */	mtlr r0
/* 8016364C 0015F2AC  38 21 00 10 */	addi r1, r1, 0x10
/* 80163650 0015F2B0  4E 80 00 20 */	blr

.global func_80163654
func_80163654:
/* 80163654 0015F2B4  38 A0 00 01 */	li r5, 1
/* 80163658 0015F2B8  38 6D 9D A0 */	addi r3, r13, lbl_8063F060-_SDA_BASE_
/* 8016365C 0015F2BC  38 80 00 04 */	li r4, 4
/* 80163660 0015F2C0  38 00 00 00 */	li r0, 0
/* 80163664 0015F2C4  98 AD 9D A0 */	stb r5, lbl_8063F060-_SDA_BASE_(r13)
/* 80163668 0015F2C8  B0 83 00 02 */	sth r4, 2(r3)
/* 8016366C 0015F2CC  98 03 00 04 */	stb r0, 4(r3)
/* 80163670 0015F2D0  4E 80 00 20 */	blr