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

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

.global func_801DB81C
func_801DB81C:
/* 801DB81C 001D747C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DB820 001D7480  7C 08 02 A6 */	mflr r0
/* 801DB824 001D7484  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DB828 001D7488  38 00 00 FF */	li r0, 0xff
/* 801DB82C 001D748C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DB830 001D7490  3F E0 80 49 */	lis r31, lbl_80491370@ha
/* 801DB834 001D7494  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DB838 001D7498  3B C0 00 00 */	li r30, 0
/* 801DB83C 001D749C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DB840 001D74A0  3B BF 13 70 */	addi r29, r31, lbl_80491370@l
/* 801DB844 001D74A4  93 81 00 10 */	stw r28, 0x10(r1)
/* 801DB848 001D74A8  7C 7C 1B 78 */	mr r28, r3
/* 801DB84C 001D74AC  98 1D 00 00 */	stb r0, 0(r29)
/* 801DB850 001D74B0  98 1D 00 08 */	stb r0, 8(r29)
/* 801DB854 001D74B4  98 1D 00 10 */	stb r0, 0x10(r29)
/* 801DB858 001D74B8  98 1D 00 18 */	stb r0, 0x18(r29)
/* 801DB85C 001D74BC  98 1D 00 20 */	stb r0, 0x20(r29)
/* 801DB860 001D74C0  98 1D 00 28 */	stb r0, 0x28(r29)
/* 801DB864 001D74C4  98 1D 00 30 */	stb r0, 0x30(r29)
/* 801DB868 001D74C8  98 1D 00 38 */	stb r0, 0x38(r29)
/* 801DB86C 001D74CC  98 1D 00 40 */	stb r0, 0x40(r29)
/* 801DB870 001D74D0  98 1D 00 48 */	stb r0, 0x48(r29)
/* 801DB874 001D74D4  98 1D 00 50 */	stb r0, 0x50(r29)
/* 801DB878 001D74D8  98 1D 00 58 */	stb r0, 0x58(r29)
/* 801DB87C 001D74DC  98 1D 00 60 */	stb r0, 0x60(r29)
/* 801DB880 001D74E0  98 1D 00 68 */	stb r0, 0x68(r29)
/* 801DB884 001D74E4  98 1D 00 70 */	stb r0, 0x70(r29)
/* 801DB888 001D74E8  98 1D 00 78 */	stb r0, 0x78(r29)
/* 801DB88C 001D74EC  98 1D 00 80 */	stb r0, 0x80(r29)
/* 801DB890 001D74F0  98 1D 00 88 */	stb r0, 0x88(r29)
/* 801DB894 001D74F4  98 1D 00 90 */	stb r0, 0x90(r29)
/* 801DB898 001D74F8  98 1D 00 98 */	stb r0, 0x98(r29)
/* 801DB89C 001D74FC  98 1D 00 A0 */	stb r0, 0xa0(r29)
/* 801DB8A0 001D7500  98 1D 00 A8 */	stb r0, 0xa8(r29)
/* 801DB8A4 001D7504  98 1D 00 B0 */	stb r0, 0xb0(r29)
/* 801DB8A8 001D7508  98 1D 00 B8 */	stb r0, 0xb8(r29)
/* 801DB8AC 001D750C  98 1D 00 C0 */	stb r0, 0xc0(r29)
/* 801DB8B0 001D7510  98 1D 00 C8 */	stb r0, 0xc8(r29)
/* 801DB8B4 001D7514  98 1D 00 D0 */	stb r0, 0xd0(r29)
/* 801DB8B8 001D7518  98 1D 00 D8 */	stb r0, 0xd8(r29)
/* 801DB8BC 001D751C  98 1D 00 E0 */	stb r0, 0xe0(r29)
/* 801DB8C0 001D7520  98 1D 00 E8 */	stb r0, 0xe8(r29)
/* 801DB8C4 001D7524  98 1D 00 F0 */	stb r0, 0xf0(r29)
/* 801DB8C8 001D7528  93 CD A0 48 */	stw r30, lbl_8063F308-_SDA_BASE_(r13)
/* 801DB8CC 001D752C  98 1D 00 F8 */	stb r0, 0xf8(r29)
/* 801DB8D0 001D7530  48 08 EF 8D */	bl LCEnable
/* 801DB8D4 001D7534  57 80 4B EC */	rlwinm r0, r28, 9, 0xf, 0x16
/* 801DB8D8 001D7538  3C 60 E0 00 */	lis r3, 0xe000
/* 801DB8DC 001D753C  2C 1C 00 00 */	cmpwi r28, 0
/* 801DB8E0 001D7540  90 6D A0 3C */	stw r3, lbl_8063F2FC-_SDA_BASE_(r13)
/* 801DB8E4 001D7544  90 0D A0 38 */	stw r0, lbl_8063F2F8-_SDA_BASE_(r13)
/* 801DB8E8 001D7548  41 82 00 1C */	beq lbl_801DB904
/* 801DB8EC 001D754C  7F 84 E3 78 */	mr r4, r28
/* 801DB8F0 001D7550  38 60 00 00 */	li r3, 0
/* 801DB8F4 001D7554  38 A0 00 01 */	li r5, 1
/* 801DB8F8 001D7558  48 00 00 35 */	bl func_801DB92C
/* 801DB8FC 001D755C  9B DF 13 70 */	stb r30, 0x1370(r31)
/* 801DB900 001D7560  9B 9D 00 01 */	stb r28, 1(r29)
lbl_801DB904:
/* 801DB904 001D7564  38 00 00 00 */	li r0, 0
/* 801DB908 001D7568  98 0D A0 44 */	stb r0, lbl_8063F304-_SDA_BASE_(r13)
/* 801DB90C 001D756C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DB910 001D7570  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DB914 001D7574  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DB918 001D7578  83 81 00 10 */	lwz r28, 0x10(r1)
/* 801DB91C 001D757C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DB920 001D7580  7C 08 03 A6 */	mtlr r0
/* 801DB924 001D7584  38 21 00 20 */	addi r1, r1, 0x20
/* 801DB928 001D7588  4E 80 00 20 */	blr

.global func_801DB92C
func_801DB92C:
/* 801DB92C 001D758C  3C C0 80 00 */	lis r6, 0x8000
/* 801DB930 001D7590  48 00 00 08 */	b lbl_801DB938
lbl_801DB934:
/* 801DB934 001D7594  54 C6 F8 7E */	srwi r6, r6, 1
lbl_801DB938:
/* 801DB938 001D7598  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 801DB93C 001D759C  38 63 FF FF */	addi r3, r3, -1
/* 801DB940 001D75A0  40 82 FF F4 */	bne lbl_801DB934
/* 801DB944 001D75A4  80 0D A0 48 */	lwz r0, lbl_8063F308-_SDA_BASE_(r13)
/* 801DB948 001D75A8  48 00 00 20 */	b lbl_801DB968
lbl_801DB94C:
/* 801DB94C 001D75AC  28 05 00 01 */	cmplwi r5, 1
/* 801DB950 001D75B0  7C 03 30 78 */	andc r3, r0, r6
/* 801DB954 001D75B4  40 82 00 08 */	bne lbl_801DB95C
/* 801DB958 001D75B8  7C 03 33 78 */	or r3, r0, r6
lbl_801DB95C:
/* 801DB95C 001D75BC  90 6D A0 48 */	stw r3, lbl_8063F308-_SDA_BASE_(r13)
/* 801DB960 001D75C0  7C 60 1B 78 */	mr r0, r3
/* 801DB964 001D75C4  54 C6 F8 7E */	srwi r6, r6, 1
lbl_801DB968:
/* 801DB968 001D75C8  54 83 06 3F */	clrlwi. r3, r4, 0x18
/* 801DB96C 001D75CC  38 84 FF FF */	addi r4, r4, -1
/* 801DB970 001D75D0  40 82 FF DC */	bne lbl_801DB94C
/* 801DB974 001D75D4  4E 80 00 20 */	blr

.global func_801DB978
func_801DB978:
/* 801DB978 001D75D8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DB97C 001D75DC  7C 08 02 A6 */	mflr r0
/* 801DB980 001D75E0  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DB984 001D75E4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DB988 001D75E8  7C 3F 0B 78 */	mr r31, r1
/* 801DB98C 001D75EC  93 C1 00 08 */	stw r30, 8(r1)
/* 801DB990 001D75F0  7C 7E 1B 78 */	mr r30, r3
/* 801DB994 001D75F4  7C 68 02 A6 */	mflr r3
/* 801DB998 001D75F8  90 6D A0 40 */	stw r3, lbl_8063F300-_SDA_BASE_(r13)
/* 801DB99C 001D75FC  7F C3 F3 78 */	mr r3, r30
/* 801DB9A0 001D7600  4B FF FE 7D */	bl func_801DB81C
/* 801DB9A4 001D7604  2C 1E 00 00 */	cmpwi r30, 0
/* 801DB9A8 001D7608  40 82 00 0C */	bne lbl_801DB9B4
/* 801DB9AC 001D760C  38 60 00 01 */	li r3, 1
/* 801DB9B0 001D7610  48 00 00 2C */	b lbl_801DB9DC
lbl_801DB9B4:
/* 801DB9B4 001D7614  80 6D A0 3C */	lwz r3, lbl_8063F2FC-_SDA_BASE_(r13)
/* 801DB9B8 001D7618  80 AD A0 38 */	lwz r5, lbl_8063F2F8-_SDA_BASE_(r13)
/* 801DB9BC 001D761C  7C 63 2A 14 */	add r3, r3, r5
/* 801DB9C0 001D7620  38 23 FF F8 */	addi r1, r3, -8
/* 801DB9C4 001D7624  38 60 FF FF */	li r3, -1
/* 801DB9C8 001D7628  90 61 00 00 */	stw r3, 0(r1)
/* 801DB9CC 001D762C  80 6D A0 40 */	lwz r3, lbl_8063F300-_SDA_BASE_(r13)
/* 801DB9D0 001D7630  7C 68 03 A6 */	mtlr r3
/* 801DB9D4 001D7634  4E 80 00 20 */	blr
/* 801DB9D8 001D7638  38 60 00 01 */	li r3, 1
lbl_801DB9DC:
/* 801DB9DC 001D763C  7F EA FB 78 */	mr r10, r31
/* 801DB9E0 001D7640  83 FF 00 0C */	lwz r31, 0xc(r31)
/* 801DB9E4 001D7644  83 CA 00 08 */	lwz r30, 8(r10)
/* 801DB9E8 001D7648  81 41 00 00 */	lwz r10, 0(r1)
/* 801DB9EC 001D764C  80 0A 00 04 */	lwz r0, 4(r10)
/* 801DB9F0 001D7650  7D 41 53 78 */	mr r1, r10
/* 801DB9F4 001D7654  7C 08 03 A6 */	mtlr r0
/* 801DB9F8 001D7658  4E 80 00 20 */	blr

.global func_801DB9FC
func_801DB9FC:
/* 801DB9FC 001D765C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DBA00 001D7660  7C 08 02 A6 */	mflr r0
/* 801DBA04 001D7664  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DBA08 001D7668  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DBA0C 001D766C  93 C1 00 08 */	stw r30, 8(r1)
/* 801DBA10 001D7670  88 0D A0 44 */	lbz r0, lbl_8063F304-_SDA_BASE_(r13)
/* 801DBA14 001D7674  28 00 00 01 */	cmplwi r0, 1
/* 801DBA18 001D7678  41 82 00 5C */	beq lbl_801DBA74
/* 801DBA1C 001D767C  3F C0 80 49 */	lis r30, lbl_80491370@ha
/* 801DBA20 001D7680  3B E0 00 1F */	li r31, 0x1f
/* 801DBA24 001D7684  3B DE 13 70 */	addi r30, r30, lbl_80491370@l
lbl_801DBA28:
/* 801DBA28 001D7688  88 1E 00 00 */	lbz r0, 0(r30)
/* 801DBA2C 001D768C  28 00 00 FF */	cmplwi r0, 0xff
/* 801DBA30 001D7690  41 82 00 2C */	beq lbl_801DBA5C
/* 801DBA34 001D7694  81 9E 00 04 */	lwz r12, 4(r30)
/* 801DBA38 001D7698  2C 0C 00 00 */	cmpwi r12, 0
/* 801DBA3C 001D769C  41 82 00 20 */	beq lbl_801DBA5C
/* 801DBA40 001D76A0  80 6D A0 3C */	lwz r3, lbl_8063F2FC-_SDA_BASE_(r13)
/* 801DBA44 001D76A4  54 00 4B EC */	rlwinm r0, r0, 9, 0xf, 0x16
/* 801DBA48 001D76A8  88 BE 00 01 */	lbz r5, 1(r30)
/* 801DBA4C 001D76AC  7C 83 02 14 */	add r4, r3, r0
/* 801DBA50 001D76B0  38 60 00 00 */	li r3, 0
/* 801DBA54 001D76B4  7D 89 03 A6 */	mtctr r12
/* 801DBA58 001D76B8  4E 80 04 21 */	bctrl
lbl_801DBA5C:
/* 801DBA5C 001D76BC  2C 1F 00 00 */	cmpwi r31, 0
/* 801DBA60 001D76C0  3B FF FF FF */	addi r31, r31, -1
/* 801DBA64 001D76C4  3B DE 00 08 */	addi r30, r30, 8
/* 801DBA68 001D76C8  40 82 FF C0 */	bne lbl_801DBA28
/* 801DBA6C 001D76CC  38 00 00 01 */	li r0, 1
/* 801DBA70 001D76D0  98 0D A0 44 */	stb r0, lbl_8063F304-_SDA_BASE_(r13)
lbl_801DBA74:
/* 801DBA74 001D76D4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DBA78 001D76D8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DBA7C 001D76DC  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DBA80 001D76E0  7C 08 03 A6 */	mtlr r0
/* 801DBA84 001D76E4  38 21 00 10 */	addi r1, r1, 0x10
/* 801DBA88 001D76E8  4E 80 00 20 */	blr

.global func_801DBA8C
func_801DBA8C:
/* 801DBA8C 001D76EC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DBA90 001D76F0  7C 08 02 A6 */	mflr r0
/* 801DBA94 001D76F4  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DBA98 001D76F8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DBA9C 001D76FC  93 C1 00 08 */	stw r30, 8(r1)
/* 801DBAA0 001D7700  88 0D A0 44 */	lbz r0, lbl_8063F304-_SDA_BASE_(r13)
/* 801DBAA4 001D7704  2C 00 00 00 */	cmpwi r0, 0
/* 801DBAA8 001D7708  41 82 00 5C */	beq lbl_801DBB04
/* 801DBAAC 001D770C  3F C0 80 49 */	lis r30, lbl_80491370@ha
/* 801DBAB0 001D7710  3B E0 00 1F */	li r31, 0x1f
/* 801DBAB4 001D7714  3B DE 13 70 */	addi r30, r30, lbl_80491370@l
lbl_801DBAB8:
/* 801DBAB8 001D7718  88 1E 00 00 */	lbz r0, 0(r30)
/* 801DBABC 001D771C  28 00 00 FF */	cmplwi r0, 0xff
/* 801DBAC0 001D7720  41 82 00 2C */	beq lbl_801DBAEC
/* 801DBAC4 001D7724  81 9E 00 04 */	lwz r12, 4(r30)
/* 801DBAC8 001D7728  2C 0C 00 00 */	cmpwi r12, 0
/* 801DBACC 001D772C  41 82 00 20 */	beq lbl_801DBAEC
/* 801DBAD0 001D7730  80 6D A0 3C */	lwz r3, lbl_8063F2FC-_SDA_BASE_(r13)
/* 801DBAD4 001D7734  54 00 4B EC */	rlwinm r0, r0, 9, 0xf, 0x16
/* 801DBAD8 001D7738  88 BE 00 01 */	lbz r5, 1(r30)
/* 801DBADC 001D773C  7C 83 02 14 */	add r4, r3, r0
/* 801DBAE0 001D7740  38 60 00 01 */	li r3, 1
/* 801DBAE4 001D7744  7D 89 03 A6 */	mtctr r12
/* 801DBAE8 001D7748  4E 80 04 21 */	bctrl
lbl_801DBAEC:
/* 801DBAEC 001D774C  2C 1F 00 00 */	cmpwi r31, 0
/* 801DBAF0 001D7750  3B FF FF FF */	addi r31, r31, -1
/* 801DBAF4 001D7754  3B DE 00 08 */	addi r30, r30, 8
/* 801DBAF8 001D7758  40 82 FF C0 */	bne lbl_801DBAB8
/* 801DBAFC 001D775C  38 00 00 00 */	li r0, 0
/* 801DBB00 001D7760  98 0D A0 44 */	stb r0, lbl_8063F304-_SDA_BASE_(r13)
lbl_801DBB04:
/* 801DBB04 001D7764  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DBB08 001D7768  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DBB0C 001D776C  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DBB10 001D7770  7C 08 03 A6 */	mtlr r0
/* 801DBB14 001D7774  38 21 00 10 */	addi r1, r1, 0x10
/* 801DBB18 001D7778  4E 80 00 20 */	blr

.global func_801DBB1C
func_801DBB1C:
/* 801DBB1C 001D777C  38 A0 00 01 */	li r5, 1
/* 801DBB20 001D7780  38 6D A0 30 */	addi r3, r13, lbl_8063F2F0-_SDA_BASE_
/* 801DBB24 001D7784  38 80 00 04 */	li r4, 4
/* 801DBB28 001D7788  38 00 00 00 */	li r0, 0
/* 801DBB2C 001D778C  98 AD A0 30 */	stb r5, lbl_8063F2F0-_SDA_BASE_(r13)
/* 801DBB30 001D7790  B0 83 00 02 */	sth r4, 2(r3)
/* 801DBB34 001D7794  98 03 00 04 */	stb r0, 4(r3)
/* 801DBB38 001D7798  4E 80 00 20 */	blr