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

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

.global lbl_8002A910
lbl_8002A910:
/* 8002A910 00026570  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8002A914 00026574  7C 08 02 A6 */	mflr r0
/* 8002A918 00026578  90 01 00 24 */	stw r0, 0x24(r1)
/* 8002A91C 0002657C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8002A920 00026580  7C DF 33 78 */	mr r31, r6
/* 8002A924 00026584  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8002A928 00026588  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8002A92C 0002658C  7C BD 2B 78 */	mr r29, r5
/* 8002A930 00026590  93 81 00 10 */	stw r28, 0x10(r1)
/* 8002A934 00026594  7C 9C 23 78 */	mr r28, r4
/* 8002A938 00026598  A8 05 00 08 */	lha r0, 8(r5)
/* 8002A93C 0002659C  2C 00 00 01 */	cmpwi r0, 1
/* 8002A940 000265A0  40 82 00 0C */	bne lbl_8002A94C
/* 8002A944 000265A4  80 65 00 0C */	lwz r3, 0xc(r5)
/* 8002A948 000265A8  48 00 00 28 */	b lbl_8002A970
lbl_8002A94C:
/* 8002A94C 000265AC  2C 00 00 02 */	cmpwi r0, 2
/* 8002A950 000265B0  40 82 00 18 */	bne lbl_8002A968
/* 8002A954 000265B4  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 8002A958 000265B8  FC 00 00 1E */	fctiwz f0, f0
/* 8002A95C 000265BC  D8 01 00 08 */	stfd f0, 8(r1)
/* 8002A960 000265C0  80 61 00 0C */	lwz r3, 0xc(r1)
/* 8002A964 000265C4  48 00 00 0C */	b lbl_8002A970
lbl_8002A968:
/* 8002A968 000265C8  38 65 00 08 */	addi r3, r5, 8
/* 8002A96C 000265CC  48 20 33 C9 */	bl func_8022DD34
lbl_8002A970:
/* 8002A970 000265D0  48 21 9E 2D */	bl func_8024479C
/* 8002A974 000265D4  2C 03 00 00 */	cmpwi r3, 0
/* 8002A978 000265D8  7C 7E 1B 78 */	mr r30, r3
/* 8002A97C 000265DC  40 82 00 1C */	bne lbl_8002A998
/* 8002A980 000265E0  C0 02 81 20 */	lfs f0, lbl_80640720-_SDA2_BASE_(r2)
/* 8002A984 000265E4  38 00 00 02 */	li r0, 2
/* 8002A988 000265E8  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002A98C 000265EC  38 60 00 01 */	li r3, 1
/* 8002A990 000265F0  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002A994 000265F4  48 00 02 14 */	b lbl_8002ABA8
lbl_8002A998:
/* 8002A998 000265F8  28 1C 00 23 */	cmplwi r28, 0x23
/* 8002A99C 000265FC  41 81 01 F8 */	bgt lbl_8002AB94
/* 8002A9A0 00026600  3C 80 80 41 */	lis r4, lbl_80409A00@ha
/* 8002A9A4 00026604  57 80 10 3A */	slwi r0, r28, 2
/* 8002A9A8 00026608  38 84 9A 00 */	addi r4, r4, lbl_80409A00@l
/* 8002A9AC 0002660C  7C 84 00 2E */	lwzx r4, r4, r0
/* 8002A9B0 00026610  7C 89 03 A6 */	mtctr r4
/* 8002A9B4 00026614  4E 80 04 20 */	bctr
/* 8002A9B8 00026618  C0 03 00 0C */	lfs f0, 0xc(r3)
/* 8002A9BC 0002661C  38 00 00 02 */	li r0, 2
/* 8002A9C0 00026620  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002A9C4 00026624  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002A9C8 00026628  48 00 01 DC */	b lbl_8002ABA4
/* 8002A9CC 0002662C  C0 03 00 10 */	lfs f0, 0x10(r3)
/* 8002A9D0 00026630  38 00 00 02 */	li r0, 2
/* 8002A9D4 00026634  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002A9D8 00026638  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002A9DC 0002663C  48 00 01 C8 */	b lbl_8002ABA4
/* 8002A9E0 00026640  C0 03 00 18 */	lfs f0, 0x18(r3)
/* 8002A9E4 00026644  38 00 00 02 */	li r0, 2
/* 8002A9E8 00026648  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002A9EC 0002664C  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002A9F0 00026650  48 00 01 B4 */	b lbl_8002ABA4
/* 8002A9F4 00026654  C0 03 00 18 */	lfs f0, 0x18(r3)
/* 8002A9F8 00026658  38 00 00 02 */	li r0, 2
/* 8002A9FC 0002665C  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA00 00026660  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002AA04 00026664  48 00 01 A0 */	b lbl_8002ABA4
/* 8002AA08 00026668  C0 03 09 08 */	lfs f0, 0x908(r3)
/* 8002AA0C 0002666C  38 00 00 02 */	li r0, 2
/* 8002AA10 00026670  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA14 00026674  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002AA18 00026678  48 00 01 8C */	b lbl_8002ABA4
/* 8002AA1C 0002667C  C0 03 09 0C */	lfs f0, 0x90c(r3)
/* 8002AA20 00026680  38 00 00 02 */	li r0, 2
/* 8002AA24 00026684  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA28 00026688  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002AA2C 0002668C  48 00 01 78 */	b lbl_8002ABA4
/* 8002AA30 00026690  C0 03 09 10 */	lfs f0, 0x910(r3)
/* 8002AA34 00026694  38 00 00 02 */	li r0, 2
/* 8002AA38 00026698  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA3C 0002669C  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002AA40 000266A0  48 00 01 64 */	b lbl_8002ABA4
/* 8002AA44 000266A4  C0 03 09 14 */	lfs f0, 0x914(r3)
/* 8002AA48 000266A8  38 00 00 02 */	li r0, 2
/* 8002AA4C 000266AC  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA50 000266B0  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002AA54 000266B4  48 00 01 50 */	b lbl_8002ABA4
/* 8002AA58 000266B8  80 63 00 20 */	lwz r3, 0x20(r3)
/* 8002AA5C 000266BC  38 00 00 01 */	li r0, 1
/* 8002AA60 000266C0  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA64 000266C4  90 7F 00 04 */	stw r3, 4(r31)
/* 8002AA68 000266C8  48 00 01 3C */	b lbl_8002ABA4
/* 8002AA6C 000266CC  80 63 00 1C */	lwz r3, 0x1c(r3)
/* 8002AA70 000266D0  38 00 00 01 */	li r0, 1
/* 8002AA74 000266D4  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA78 000266D8  90 7F 00 04 */	stw r3, 4(r31)
/* 8002AA7C 000266DC  48 00 01 28 */	b lbl_8002ABA4
/* 8002AA80 000266E0  80 83 00 20 */	lwz r4, 0x20(r3)
/* 8002AA84 000266E4  38 00 00 01 */	li r0, 1
/* 8002AA88 000266E8  80 63 00 1C */	lwz r3, 0x1c(r3)
/* 8002AA8C 000266EC  7C 83 18 78 */	andc r3, r4, r3
/* 8002AA90 000266F0  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AA94 000266F4  90 7F 00 04 */	stw r3, 4(r31)
/* 8002AA98 000266F8  48 00 01 0C */	b lbl_8002ABA4
/* 8002AA9C 000266FC  80 63 08 90 */	lwz r3, 0x890(r3)
/* 8002AAA0 00026700  38 00 00 01 */	li r0, 1
/* 8002AAA4 00026704  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AAA8 00026708  90 7F 00 04 */	stw r3, 4(r31)
/* 8002AAAC 0002670C  48 00 00 F8 */	b lbl_8002ABA4
/* 8002AAB0 00026710  80 63 08 AC */	lwz r3, 0x8ac(r3)
/* 8002AAB4 00026714  38 00 00 01 */	li r0, 1
/* 8002AAB8 00026718  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AABC 0002671C  90 7F 00 04 */	stw r3, 4(r31)
/* 8002AAC0 00026720  48 00 00 E4 */	b lbl_8002ABA4
/* 8002AAC4 00026724  C0 03 00 28 */	lfs f0, 0x28(r3)
/* 8002AAC8 00026728  38 00 00 02 */	li r0, 2
/* 8002AACC 0002672C  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AAD0 00026730  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002AAD4 00026734  48 00 00 D0 */	b lbl_8002ABA4
/* 8002AAD8 00026738  C0 03 00 2C */	lfs f0, 0x2c(r3)
/* 8002AADC 0002673C  38 00 00 02 */	li r0, 2
/* 8002AAE0 00026740  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AAE4 00026744  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8002AAE8 00026748  48 00 00 BC */	b lbl_8002ABA4
/* 8002AAEC 0002674C  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 8002AAF0 00026750  2C 00 00 01 */	cmpwi r0, 1
/* 8002AAF4 00026754  40 82 00 0C */	bne lbl_8002AB00
/* 8002AAF8 00026758  80 9D 00 14 */	lwz r4, 0x14(r29)
/* 8002AAFC 0002675C  48 00 00 2C */	b lbl_8002AB28
lbl_8002AB00:
/* 8002AB00 00026760  2C 00 00 02 */	cmpwi r0, 2
/* 8002AB04 00026764  40 82 00 18 */	bne lbl_8002AB1C
/* 8002AB08 00026768  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 8002AB0C 0002676C  FC 00 00 1E */	fctiwz f0, f0
/* 8002AB10 00026770  D8 01 00 08 */	stfd f0, 8(r1)
/* 8002AB14 00026774  80 61 00 0C */	lwz r3, 0xc(r1)
/* 8002AB18 00026778  48 00 00 0C */	b lbl_8002AB24
lbl_8002AB1C:
/* 8002AB1C 0002677C  38 7D 00 10 */	addi r3, r29, 0x10
/* 8002AB20 00026780  48 20 32 15 */	bl func_8022DD34
lbl_8002AB24:
/* 8002AB24 00026784  7C 64 1B 78 */	mr r4, r3
lbl_8002AB28:
/* 8002AB28 00026788  7F C3 F3 78 */	mr r3, r30
/* 8002AB2C 0002678C  48 21 96 3D */	bl func_80244168
/* 8002AB30 00026790  38 00 00 02 */	li r0, 2
/* 8002AB34 00026794  D0 3F 00 04 */	stfs f1, 4(r31)
/* 8002AB38 00026798  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002AB3C 0002679C  48 00 00 68 */	b lbl_8002ABA4
/* 8002AB40 000267A0  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 8002AB44 000267A4  2C 00 00 01 */	cmpwi r0, 1
/* 8002AB48 000267A8  40 82 00 0C */	bne lbl_8002AB54
/* 8002AB4C 000267AC  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 8002AB50 000267B0  48 00 00 28 */	b lbl_8002AB78
lbl_8002AB54:
/* 8002AB54 000267B4  2C 00 00 02 */	cmpwi r0, 2
/* 8002AB58 000267B8  40 82 00 18 */	bne lbl_8002AB70
/* 8002AB5C 000267BC  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 8002AB60 000267C0  FC 00 00 1E */	fctiwz f0, f0
/* 8002AB64 000267C4  D8 01 00 08 */	stfd f0, 8(r1)
/* 8002AB68 000267C8  80 61 00 0C */	lwz r3, 0xc(r1)
/* 8002AB6C 000267CC  48 00 00 0C */	b lbl_8002AB78
lbl_8002AB70:
/* 8002AB70 000267D0  38 7D 00 10 */	addi r3, r29, 0x10
/* 8002AB74 000267D4  48 20 31 C1 */	bl func_8022DD34
lbl_8002AB78:
/* 8002AB78 000267D8  80 1E 00 1C */	lwz r0, 0x1c(r30)
/* 8002AB7C 000267DC  38 80 00 02 */	li r4, 2
/* 8002AB80 000267E0  7C 00 18 39 */	and. r0, r0, r3
/* 8002AB84 000267E4  41 82 00 08 */	beq lbl_8002AB8C
/* 8002AB88 000267E8  38 80 00 00 */	li r4, 0
lbl_8002AB8C:
/* 8002AB8C 000267EC  7C 83 23 78 */	mr r3, r4
/* 8002AB90 000267F0  48 00 00 18 */	b lbl_8002ABA8
lbl_8002AB94:
/* 8002AB94 000267F4  C0 02 81 20 */	lfs f0, lbl_80640720-_SDA2_BASE_(r2)
/* 8002AB98 000267F8  38 00 00 02 */	li r0, 2
/* 8002AB9C 000267FC  B0 1F 00 00 */	sth r0, 0(r31)
/* 8002ABA0 00026800  D0 1F 00 04 */	stfs f0, 4(r31)
lbl_8002ABA4:
/* 8002ABA4 00026804  38 60 00 01 */	li r3, 1
lbl_8002ABA8:
/* 8002ABA8 00026808  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8002ABAC 0002680C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8002ABB0 00026810  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8002ABB4 00026814  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8002ABB8 00026818  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8002ABBC 0002681C  7C 08 03 A6 */	mtlr r0
/* 8002ABC0 00026820  38 21 00 20 */	addi r1, r1, 0x20
/* 8002ABC4 00026824  4E 80 00 20 */	blr

.global func_8002ABC8
func_8002ABC8:
/* 8002ABC8 00026828  38 A0 00 01 */	li r5, 1
/* 8002ABCC 0002682C  38 6D 97 10 */	addi r3, r13, lbl_8063E9D0-_SDA_BASE_
/* 8002ABD0 00026830  38 80 00 04 */	li r4, 4
/* 8002ABD4 00026834  38 00 00 00 */	li r0, 0
/* 8002ABD8 00026838  98 AD 97 10 */	stb r5, lbl_8063E9D0-_SDA_BASE_(r13)
/* 8002ABDC 0002683C  B0 83 00 02 */	sth r4, 2(r3)
/* 8002ABE0 00026840  98 03 00 04 */	stb r0, 4(r3)
/* 8002ABE4 00026844  4E 80 00 20 */	blr