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

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

.global func_801DBB3C
func_801DBB3C:
/* 801DBB3C 001D779C  38 60 00 00 */	li r3, 0
/* 801DBB40 001D77A0  4E 80 00 20 */	blr

.global func_801DBB44
func_801DBB44:
/* 801DBB44 001D77A4  4E 80 00 20 */	blr

.global func_801DBB48
func_801DBB48:
/* 801DBB48 001D77A8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DBB4C 001D77AC  7C 08 02 A6 */	mflr r0
/* 801DBB50 001D77B0  38 A5 00 07 */	addi r5, r5, 7
/* 801DBB54 001D77B4  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DBB58 001D77B8  38 04 00 01 */	addi r0, r4, 1
/* 801DBB5C 001D77BC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DBB60 001D77C0  54 BF 00 3A */	rlwinm r31, r5, 0, 0, 0x1d
/* 801DBB64 001D77C4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DBB68 001D77C8  7C 9E 23 78 */	mr r30, r4
/* 801DBB6C 001D77CC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DBB70 001D77D0  7C 7D 1B 78 */	mr r29, r3
/* 801DBB74 001D77D4  90 83 00 08 */	stw r4, 8(r3)
/* 801DBB78 001D77D8  93 E3 00 0C */	stw r31, 0xc(r3)
/* 801DBB7C 001D77DC  7C 60 F9 D6 */	mullw r3, r0, r31
/* 801DBB80 001D77E0  4B FF F2 19 */	bl func_801DAD98
/* 801DBB84 001D77E4  7C 1E F9 D6 */	mullw r0, r30, r31
/* 801DBB88 001D77E8  2C 1E 00 00 */	cmpwi r30, 0
/* 801DBB8C 001D77EC  90 7D 00 10 */	stw r3, 0x10(r29)
/* 801DBB90 001D77F0  39 00 00 00 */	li r8, 0
/* 801DBB94 001D77F4  38 E0 00 00 */	li r7, 0
/* 801DBB98 001D77F8  90 7D 00 18 */	stw r3, 0x18(r29)
/* 801DBB9C 001D77FC  7C 03 02 14 */	add r0, r3, r0
/* 801DBBA0 001D7800  90 1D 00 14 */	stw r0, 0x14(r29)
/* 801DBBA4 001D7804  41 82 00 90 */	beq lbl_801DBC34
/* 801DBBA8 001D7808  28 1E 00 08 */	cmplwi r30, 8
/* 801DBBAC 001D780C  38 9E FF F8 */	addi r4, r30, -8
/* 801DBBB0 001D7810  40 81 00 60 */	ble lbl_801DBC10
/* 801DBBB4 001D7814  38 04 00 07 */	addi r0, r4, 7
/* 801DBBB8 001D7818  54 00 E8 FE */	srwi r0, r0, 3
/* 801DBBBC 001D781C  7C 09 03 A6 */	mtctr r0
/* 801DBBC0 001D7820  28 04 00 00 */	cmplwi r4, 0
/* 801DBBC4 001D7824  40 81 00 4C */	ble lbl_801DBC10
lbl_801DBBC8:
/* 801DBBC8 001D7828  7C A3 FA 14 */	add r5, r3, r31
/* 801DBBCC 001D782C  38 E7 00 08 */	addi r7, r7, 8
/* 801DBBD0 001D7830  90 A3 00 00 */	stw r5, 0(r3)
/* 801DBBD4 001D7834  7C 85 FA 14 */	add r4, r5, r31
/* 801DBBD8 001D7838  7C 64 FA 14 */	add r3, r4, r31
/* 801DBBDC 001D783C  90 85 00 00 */	stw r4, 0(r5)
/* 801DBBE0 001D7840  7C C3 FA 14 */	add r6, r3, r31
/* 801DBBE4 001D7844  7C A6 FA 14 */	add r5, r6, r31
/* 801DBBE8 001D7848  90 64 00 00 */	stw r3, 0(r4)
/* 801DBBEC 001D784C  7C 85 FA 14 */	add r4, r5, r31
/* 801DBBF0 001D7850  7D 04 FA 14 */	add r8, r4, r31
/* 801DBBF4 001D7854  90 C3 00 00 */	stw r6, 0(r3)
/* 801DBBF8 001D7858  7C 68 FA 14 */	add r3, r8, r31
/* 801DBBFC 001D785C  90 A6 00 00 */	stw r5, 0(r6)
/* 801DBC00 001D7860  7C 86 F9 2E */	stwx r4, r6, r31
/* 801DBC04 001D7864  7D 05 F9 2E */	stwx r8, r5, r31
/* 801DBC08 001D7868  7C 64 F9 2E */	stwx r3, r4, r31
/* 801DBC0C 001D786C  42 00 FF BC */	bdnz lbl_801DBBC8
lbl_801DBC10:
/* 801DBC10 001D7870  7C 07 F0 50 */	subf r0, r7, r30
/* 801DBC14 001D7874  7C 09 03 A6 */	mtctr r0
/* 801DBC18 001D7878  7C 07 F0 40 */	cmplw r7, r30
/* 801DBC1C 001D787C  40 80 00 18 */	bge lbl_801DBC34
lbl_801DBC20:
/* 801DBC20 001D7880  7C 03 FA 14 */	add r0, r3, r31
/* 801DBC24 001D7884  7C 68 1B 78 */	mr r8, r3
/* 801DBC28 001D7888  90 03 00 00 */	stw r0, 0(r3)
/* 801DBC2C 001D788C  7C 03 03 78 */	mr r3, r0
/* 801DBC30 001D7890  42 00 FF F0 */	bdnz lbl_801DBC20
lbl_801DBC34:
/* 801DBC34 001D7894  38 00 00 00 */	li r0, 0
/* 801DBC38 001D7898  90 08 00 00 */	stw r0, 0(r8)
/* 801DBC3C 001D789C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DBC40 001D78A0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DBC44 001D78A4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DBC48 001D78A8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DBC4C 001D78AC  7C 08 03 A6 */	mtlr r0
/* 801DBC50 001D78B0  38 21 00 20 */	addi r1, r1, 0x20
/* 801DBC54 001D78B4  4E 80 00 20 */	blr

.global func_801DBC58
func_801DBC58:
/* 801DBC58 001D78B8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DBC5C 001D78BC  7C 08 02 A6 */	mflr r0
/* 801DBC60 001D78C0  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DBC64 001D78C4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DBC68 001D78C8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DBC6C 001D78CC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DBC70 001D78D0  7C 7D 1B 78 */	mr r29, r3
/* 801DBC74 001D78D4  83 E3 00 18 */	lwz r31, 0x18(r3)
/* 801DBC78 001D78D8  4B FF FE C5 */	bl func_801DBB3C
/* 801DBC7C 001D78DC  7C 7E 1B 78 */	mr r30, r3
/* 801DBC80 001D78E0  38 60 00 00 */	li r3, 0
/* 801DBC84 001D78E4  4B FF FE C1 */	bl func_801DBB44
/* 801DBC88 001D78E8  2C 1F 00 00 */	cmpwi r31, 0
/* 801DBC8C 001D78EC  41 82 00 10 */	beq lbl_801DBC9C
/* 801DBC90 001D78F0  80 1F 00 00 */	lwz r0, 0(r31)
/* 801DBC94 001D78F4  90 1D 00 18 */	stw r0, 0x18(r29)
/* 801DBC98 001D78F8  48 00 00 14 */	b lbl_801DBCAC
lbl_801DBC9C:
/* 801DBC9C 001D78FC  7F C3 F3 78 */	mr r3, r30
/* 801DBCA0 001D7900  4B FF FE A5 */	bl func_801DBB44
/* 801DBCA4 001D7904  38 60 00 00 */	li r3, 0
/* 801DBCA8 001D7908  48 00 00 3C */	b lbl_801DBCE4
lbl_801DBCAC:
/* 801DBCAC 001D790C  7F C3 F3 78 */	mr r3, r30
/* 801DBCB0 001D7910  4B FF FE 95 */	bl func_801DBB44
/* 801DBCB4 001D7914  80 BD 00 0C */	lwz r5, 0xc(r29)
/* 801DBCB8 001D7918  7F E3 FB 78 */	mr r3, r31
/* 801DBCBC 001D791C  38 80 00 00 */	li r4, 0
/* 801DBCC0 001D7920  4B E2 84 45 */	bl memset
/* 801DBCC4 001D7924  80 7D 00 00 */	lwz r3, 0(r29)
/* 801DBCC8 001D7928  80 1D 00 04 */	lwz r0, 4(r29)
/* 801DBCCC 001D792C  38 63 00 01 */	addi r3, r3, 1
/* 801DBCD0 001D7930  7C 03 00 40 */	cmplw r3, r0
/* 801DBCD4 001D7934  90 7D 00 00 */	stw r3, 0(r29)
/* 801DBCD8 001D7938  40 81 00 08 */	ble lbl_801DBCE0
/* 801DBCDC 001D793C  90 7D 00 04 */	stw r3, 4(r29)
lbl_801DBCE0:
/* 801DBCE0 001D7940  38 7F 00 04 */	addi r3, r31, 4
lbl_801DBCE4:
/* 801DBCE4 001D7944  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DBCE8 001D7948  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DBCEC 001D794C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DBCF0 001D7950  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DBCF4 001D7954  7C 08 03 A6 */	mtlr r0
/* 801DBCF8 001D7958  38 21 00 20 */	addi r1, r1, 0x20
/* 801DBCFC 001D795C  4E 80 00 20 */	blr

.global func_801DBD00
func_801DBD00:
/* 801DBD00 001D7960  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DBD04 001D7964  7C 08 02 A6 */	mflr r0
/* 801DBD08 001D7968  2C 04 00 00 */	cmpwi r4, 0
/* 801DBD0C 001D796C  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DBD10 001D7970  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DBD14 001D7974  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DBD18 001D7978  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DBD1C 001D797C  7C 7D 1B 78 */	mr r29, r3
/* 801DBD20 001D7980  41 82 00 38 */	beq lbl_801DBD58
/* 801DBD24 001D7984  80 03 00 18 */	lwz r0, 0x18(r3)
/* 801DBD28 001D7988  3B C4 FF FC */	addi r30, r4, -4
/* 801DBD2C 001D798C  90 04 FF FC */	stw r0, -4(r4)
/* 801DBD30 001D7990  80 83 00 00 */	lwz r4, 0(r3)
/* 801DBD34 001D7994  38 04 FF FF */	addi r0, r4, -1
/* 801DBD38 001D7998  90 03 00 00 */	stw r0, 0(r3)
/* 801DBD3C 001D799C  4B FF FE 01 */	bl func_801DBB3C
/* 801DBD40 001D79A0  7C 7F 1B 78 */	mr r31, r3
/* 801DBD44 001D79A4  38 60 00 00 */	li r3, 0
/* 801DBD48 001D79A8  4B FF FD FD */	bl func_801DBB44
/* 801DBD4C 001D79AC  93 DD 00 18 */	stw r30, 0x18(r29)
/* 801DBD50 001D79B0  7F E3 FB 78 */	mr r3, r31
/* 801DBD54 001D79B4  4B FF FD F1 */	bl func_801DBB44
lbl_801DBD58:
/* 801DBD58 001D79B8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DBD5C 001D79BC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DBD60 001D79C0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DBD64 001D79C4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DBD68 001D79C8  7C 08 03 A6 */	mtlr r0
/* 801DBD6C 001D79CC  38 21 00 20 */	addi r1, r1, 0x20
/* 801DBD70 001D79D0  4E 80 00 20 */	blr

.global func_801DBD74
func_801DBD74:
/* 801DBD74 001D79D4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DBD78 001D79D8  7C 08 02 A6 */	mflr r0
/* 801DBD7C 001D79DC  3C C0 80 49 */	lis r6, lbl_80491470@ha
/* 801DBD80 001D79E0  7C 67 1B 78 */	mr r7, r3
/* 801DBD84 001D79E4  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DBD88 001D79E8  38 00 00 04 */	li r0, 4
/* 801DBD8C 001D79EC  7C 85 23 78 */	mr r5, r4
/* 801DBD90 001D79F0  38 C6 14 70 */	addi r6, r6, lbl_80491470@l
/* 801DBD94 001D79F4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DBD98 001D79F8  38 60 00 00 */	li r3, 0
/* 801DBD9C 001D79FC  7C 09 03 A6 */	mtctr r0
lbl_801DBDA0:
/* 801DBDA0 001D7A00  80 06 00 08 */	lwz r0, 8(r6)
/* 801DBDA4 001D7A04  2C 00 00 00 */	cmpwi r0, 0
/* 801DBDA8 001D7A08  41 82 00 80 */	beq lbl_801DBE28
/* 801DBDAC 001D7A0C  80 06 00 24 */	lwz r0, 0x24(r6)
/* 801DBDB0 001D7A10  38 63 00 01 */	addi r3, r3, 1
/* 801DBDB4 001D7A14  2C 00 00 00 */	cmpwi r0, 0
/* 801DBDB8 001D7A18  41 82 00 70 */	beq lbl_801DBE28
/* 801DBDBC 001D7A1C  80 06 00 40 */	lwz r0, 0x40(r6)
/* 801DBDC0 001D7A20  38 63 00 01 */	addi r3, r3, 1
/* 801DBDC4 001D7A24  2C 00 00 00 */	cmpwi r0, 0
/* 801DBDC8 001D7A28  41 82 00 60 */	beq lbl_801DBE28
/* 801DBDCC 001D7A2C  80 06 00 5C */	lwz r0, 0x5c(r6)
/* 801DBDD0 001D7A30  38 63 00 01 */	addi r3, r3, 1
/* 801DBDD4 001D7A34  2C 00 00 00 */	cmpwi r0, 0
/* 801DBDD8 001D7A38  41 82 00 50 */	beq lbl_801DBE28
/* 801DBDDC 001D7A3C  80 06 00 78 */	lwz r0, 0x78(r6)
/* 801DBDE0 001D7A40  38 63 00 01 */	addi r3, r3, 1
/* 801DBDE4 001D7A44  2C 00 00 00 */	cmpwi r0, 0
/* 801DBDE8 001D7A48  41 82 00 40 */	beq lbl_801DBE28
/* 801DBDEC 001D7A4C  80 06 00 94 */	lwz r0, 0x94(r6)
/* 801DBDF0 001D7A50  38 63 00 01 */	addi r3, r3, 1
/* 801DBDF4 001D7A54  2C 00 00 00 */	cmpwi r0, 0
/* 801DBDF8 001D7A58  41 82 00 30 */	beq lbl_801DBE28
/* 801DBDFC 001D7A5C  80 06 00 B0 */	lwz r0, 0xb0(r6)
/* 801DBE00 001D7A60  38 63 00 01 */	addi r3, r3, 1
/* 801DBE04 001D7A64  2C 00 00 00 */	cmpwi r0, 0
/* 801DBE08 001D7A68  41 82 00 20 */	beq lbl_801DBE28
/* 801DBE0C 001D7A6C  80 06 00 CC */	lwz r0, 0xcc(r6)
/* 801DBE10 001D7A70  38 63 00 01 */	addi r3, r3, 1
/* 801DBE14 001D7A74  2C 00 00 00 */	cmpwi r0, 0
/* 801DBE18 001D7A78  41 82 00 10 */	beq lbl_801DBE28
/* 801DBE1C 001D7A7C  38 C6 00 E0 */	addi r6, r6, 0xe0
/* 801DBE20 001D7A80  38 63 00 01 */	addi r3, r3, 1
/* 801DBE24 001D7A84  42 00 FF 7C */	bdnz lbl_801DBDA0
lbl_801DBE28:
/* 801DBE28 001D7A88  1C 03 00 1C */	mulli r0, r3, 0x1c
/* 801DBE2C 001D7A8C  3C 60 80 49 */	lis r3, lbl_80491470@ha
/* 801DBE30 001D7A90  38 63 14 70 */	addi r3, r3, lbl_80491470@l
/* 801DBE34 001D7A94  7F E3 02 14 */	add r31, r3, r0
/* 801DBE38 001D7A98  80 1F 00 08 */	lwz r0, 8(r31)
/* 801DBE3C 001D7A9C  2C 00 00 00 */	cmpwi r0, 0
/* 801DBE40 001D7AA0  41 82 00 0C */	beq lbl_801DBE4C
/* 801DBE44 001D7AA4  38 60 00 00 */	li r3, 0
/* 801DBE48 001D7AA8  48 00 00 14 */	b lbl_801DBE5C
lbl_801DBE4C:
/* 801DBE4C 001D7AAC  7F E3 FB 78 */	mr r3, r31
/* 801DBE50 001D7AB0  7C E4 3B 78 */	mr r4, r7
/* 801DBE54 001D7AB4  4B FF FC F5 */	bl func_801DBB48
/* 801DBE58 001D7AB8  7F E3 FB 78 */	mr r3, r31
lbl_801DBE5C:
/* 801DBE5C 001D7ABC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DBE60 001D7AC0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DBE64 001D7AC4  7C 08 03 A6 */	mtlr r0
/* 801DBE68 001D7AC8  38 21 00 10 */	addi r1, r1, 0x10
/* 801DBE6C 001D7ACC  4E 80 00 20 */	blr

.global func_801DBE70
func_801DBE70:
/* 801DBE70 001D7AD0  38 A0 00 01 */	li r5, 1
/* 801DBE74 001D7AD4  38 6D A0 50 */	addi r3, r13, lbl_8063F310-_SDA_BASE_
/* 801DBE78 001D7AD8  38 80 00 04 */	li r4, 4
/* 801DBE7C 001D7ADC  38 00 00 00 */	li r0, 0
/* 801DBE80 001D7AE0  98 AD A0 50 */	stb r5, lbl_8063F310-_SDA_BASE_(r13)
/* 801DBE84 001D7AE4  B0 83 00 02 */	sth r4, 2(r3)
/* 801DBE88 001D7AE8  98 03 00 04 */	stb r0, 4(r3)
/* 801DBE8C 001D7AEC  4E 80 00 20 */	blr