summaryrefslogtreecommitdiff
path: root/asm/code_80253FEC.s
blob: 28c9cdf97edf0143881f7a3fbc40d9c162c31af8 (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 lbl_80253FEC
lbl_80253FEC:
/* 80253FEC 0024FC4C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80253FF0 0024FC50  7C 08 02 A6 */	mflr r0
/* 80253FF4 0024FC54  2C 03 00 00 */	cmpwi r3, 0
/* 80253FF8 0024FC58  90 01 00 14 */	stw r0, 0x14(r1)
/* 80253FFC 0024FC5C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80254000 0024FC60  7C 7F 1B 78 */	mr r31, r3
/* 80254004 0024FC64  41 82 00 10 */	beq lbl_80254014
/* 80254008 0024FC68  2C 04 00 00 */	cmpwi r4, 0
/* 8025400C 0024FC6C  40 81 00 08 */	ble lbl_80254014
/* 80254010 0024FC70  4B F8 6A A9 */	bl __dl__FPv
lbl_80254014:
/* 80254014 0024FC74  7F E3 FB 78 */	mr r3, r31
/* 80254018 0024FC78  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8025401C 0024FC7C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80254020 0024FC80  7C 08 03 A6 */	mtlr r0
/* 80254024 0024FC84  38 21 00 10 */	addi r1, r1, 0x10
/* 80254028 0024FC88  4E 80 00 20 */	blr

.global lbl_8025402C
lbl_8025402C:
/* 8025402C 0024FC8C  2C 06 00 04 */	cmpwi r6, 4
/* 80254030 0024FC90  41 82 00 2C */	beq lbl_8025405C
/* 80254034 0024FC94  40 80 00 10 */	bge lbl_80254044
/* 80254038 0024FC98  2C 06 00 03 */	cmpwi r6, 3
/* 8025403C 0024FC9C  40 80 00 14 */	bge lbl_80254050
/* 80254040 0024FCA0  4E 80 00 20 */	blr
lbl_80254044:
/* 80254044 0024FCA4  2C 06 00 06 */	cmpwi r6, 6
/* 80254048 0024FCA8  4C 80 00 20 */	bgelr
/* 8025404C 0024FCAC  48 00 00 1C */	b lbl_80254068
lbl_80254050:
/* 80254050 0024FCB0  A0 05 00 00 */	lhz r0, 0(r5)
/* 80254054 0024FCB4  90 07 00 00 */	stw r0, 0(r7)
/* 80254058 0024FCB8  4E 80 00 20 */	blr
lbl_8025405C:
/* 8025405C 0024FCBC  A8 05 00 08 */	lha r0, 8(r5)
/* 80254060 0024FCC0  90 07 00 00 */	stw r0, 0(r7)
/* 80254064 0024FCC4  4E 80 00 20 */	blr
lbl_80254068:
/* 80254068 0024FCC8  1C 04 00 C0 */	mulli r0, r4, 0xc0
/* 8025406C 0024FCCC  80 63 00 08 */	lwz r3, 8(r3)
/* 80254070 0024FCD0  7C 63 02 14 */	add r3, r3, r0
/* 80254074 0024FCD4  38 03 00 88 */	addi r0, r3, 0x88
/* 80254078 0024FCD8  90 07 00 00 */	stw r0, 0(r7)
/* 8025407C 0024FCDC  4E 80 00 20 */	blr

.global func_80254080
func_80254080:
/* 80254080 0024FCE0  2C 06 00 02 */	cmpwi r6, 2
/* 80254084 0024FCE4  41 82 00 48 */	beq lbl_802540CC
/* 80254088 0024FCE8  4C 80 00 20 */	bgelr
/* 8025408C 0024FCEC  2C 06 00 01 */	cmpwi r6, 1
/* 80254090 0024FCF0  4D 80 00 20 */	bltlr
/* 80254094 0024FCF4  1D 04 00 C0 */	mulli r8, r4, 0xc0
/* 80254098 0024FCF8  80 C3 00 08 */	lwz r6, 8(r3)
/* 8025409C 0024FCFC  38 80 FF FF */	li r4, -1
/* 802540A0 0024FD00  38 00 00 FF */	li r0, 0xff
/* 802540A4 0024FD04  7C C6 42 14 */	add r6, r6, r8
/* 802540A8 0024FD08  90 E6 00 94 */	stw r7, 0x94(r6)
/* 802540AC 0024FD0C  B0 85 00 08 */	sth r4, 8(r5)
/* 802540B0 0024FD10  80 63 00 08 */	lwz r3, 8(r3)
/* 802540B4 0024FD14  7C 63 42 14 */	add r3, r3, r8
/* 802540B8 0024FD18  90 83 00 98 */	stw r4, 0x98(r3)
/* 802540BC 0024FD1C  98 05 00 04 */	stb r0, 4(r5)
/* 802540C0 0024FD20  98 05 00 03 */	stb r0, 3(r5)
/* 802540C4 0024FD24  98 05 00 02 */	stb r0, 2(r5)
/* 802540C8 0024FD28  4E 80 00 20 */	blr
lbl_802540CC:
/* 802540CC 0024FD2C  1D 04 00 C0 */	mulli r8, r4, 0xc0
/* 802540D0 0024FD30  80 C3 00 08 */	lwz r6, 8(r3)
/* 802540D4 0024FD34  38 80 00 00 */	li r4, 0
/* 802540D8 0024FD38  38 00 FF FF */	li r0, -1
/* 802540DC 0024FD3C  7C C6 42 14 */	add r6, r6, r8
/* 802540E0 0024FD40  90 E6 00 98 */	stw r7, 0x98(r6)
/* 802540E4 0024FD44  80 63 00 08 */	lwz r3, 8(r3)
/* 802540E8 0024FD48  7C 63 42 14 */	add r3, r3, r8
/* 802540EC 0024FD4C  90 83 00 94 */	stw r4, 0x94(r3)
/* 802540F0 0024FD50  B0 05 00 08 */	sth r0, 8(r5)
/* 802540F4 0024FD54  4E 80 00 20 */	blr

.global lbl_802540F8
lbl_802540F8:
/* 802540F8 0024FD58  2C 06 00 05 */	cmpwi r6, 5
/* 802540FC 0024FD5C  41 82 00 3C */	beq lbl_80254138
/* 80254100 0024FD60  40 80 00 14 */	bge lbl_80254114
/* 80254104 0024FD64  2C 06 00 03 */	cmpwi r6, 3
/* 80254108 0024FD68  41 82 00 18 */	beq lbl_80254120
/* 8025410C 0024FD6C  40 80 00 20 */	bge lbl_8025412C
/* 80254110 0024FD70  4E 80 00 20 */	blr
lbl_80254114:
/* 80254114 0024FD74  2C 06 00 07 */	cmpwi r6, 7
/* 80254118 0024FD78  4C 80 00 20 */	bgelr
/* 8025411C 0024FD7C  48 00 00 28 */	b lbl_80254144
lbl_80254120:
/* 80254120 0024FD80  38 C0 00 03 */	li r6, 3
/* 80254124 0024FD84  38 A5 00 0C */	addi r5, r5, 0xc
/* 80254128 0024FD88  4B FF FF 04 */	b lbl_8025402C
lbl_8025412C:
/* 8025412C 0024FD8C  38 C0 00 04 */	li r6, 4
/* 80254130 0024FD90  38 A5 00 0C */	addi r5, r5, 0xc
/* 80254134 0024FD94  4B FF FE F8 */	b lbl_8025402C
lbl_80254138:
/* 80254138 0024FD98  80 05 00 08 */	lwz r0, 8(r5)
/* 8025413C 0024FD9C  90 07 00 00 */	stw r0, 0(r7)
/* 80254140 0024FDA0  4E 80 00 20 */	blr
lbl_80254144:
/* 80254144 0024FDA4  C0 05 00 38 */	lfs f0, 0x38(r5)
/* 80254148 0024FDA8  D0 07 00 00 */	stfs f0, 0(r7)
/* 8025414C 0024FDAC  C0 05 00 3C */	lfs f0, 0x3c(r5)
/* 80254150 0024FDB0  D0 07 00 04 */	stfs f0, 4(r7)
/* 80254154 0024FDB4  C0 05 00 40 */	lfs f0, 0x40(r5)
/* 80254158 0024FDB8  D0 07 00 08 */	stfs f0, 8(r7)
/* 8025415C 0024FDBC  C0 05 00 44 */	lfs f0, 0x44(r5)
/* 80254160 0024FDC0  D0 07 00 0C */	stfs f0, 0xc(r7)
/* 80254164 0024FDC4  C0 05 00 48 */	lfs f0, 0x48(r5)
/* 80254168 0024FDC8  D0 07 00 10 */	stfs f0, 0x10(r7)
/* 8025416C 0024FDCC  C0 05 00 4C */	lfs f0, 0x4c(r5)
/* 80254170 0024FDD0  D0 07 00 14 */	stfs f0, 0x14(r7)
/* 80254174 0024FDD4  C0 05 00 50 */	lfs f0, 0x50(r5)
/* 80254178 0024FDD8  D0 07 00 18 */	stfs f0, 0x18(r7)
/* 8025417C 0024FDDC  C0 05 00 54 */	lfs f0, 0x54(r5)
/* 80254180 0024FDE0  D0 07 00 1C */	stfs f0, 0x1c(r7)
/* 80254184 0024FDE4  4E 80 00 20 */	blr

.global lbl_80254188
lbl_80254188:
/* 80254188 0024FDE8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025418C 0024FDEC  7C 08 02 A6 */	mflr r0
/* 80254190 0024FDF0  2C 06 00 02 */	cmpwi r6, 2
/* 80254194 0024FDF4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80254198 0024FDF8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8025419C 0024FDFC  7C FF 3B 78 */	mr r31, r7
/* 802541A0 0024FE00  93 C1 00 08 */	stw r30, 8(r1)
/* 802541A4 0024FE04  7C BE 2B 78 */	mr r30, r5
/* 802541A8 0024FE08  41 82 00 58 */	beq lbl_80254200
/* 802541AC 0024FE0C  40 80 00 7C */	bge lbl_80254228
/* 802541B0 0024FE10  2C 06 00 01 */	cmpwi r6, 1
/* 802541B4 0024FE14  40 80 00 08 */	bge lbl_802541BC
/* 802541B8 0024FE18  48 00 00 70 */	b lbl_80254228
lbl_802541BC:
/* 802541BC 0024FE1C  C0 07 00 00 */	lfs f0, 0(r7)
/* 802541C0 0024FE20  D0 05 00 58 */	stfs f0, 0x58(r5)
/* 802541C4 0024FE24  C0 07 00 04 */	lfs f0, 4(r7)
/* 802541C8 0024FE28  D0 05 00 5C */	stfs f0, 0x5c(r5)
/* 802541CC 0024FE2C  C0 07 00 08 */	lfs f0, 8(r7)
/* 802541D0 0024FE30  D0 05 00 60 */	stfs f0, 0x60(r5)
/* 802541D4 0024FE34  C0 07 00 0C */	lfs f0, 0xc(r7)
/* 802541D8 0024FE38  D0 05 00 64 */	stfs f0, 0x64(r5)
/* 802541DC 0024FE3C  C0 07 00 10 */	lfs f0, 0x10(r7)
/* 802541E0 0024FE40  D0 05 00 68 */	stfs f0, 0x68(r5)
/* 802541E4 0024FE44  C0 07 00 14 */	lfs f0, 0x14(r7)
/* 802541E8 0024FE48  D0 05 00 6C */	stfs f0, 0x6c(r5)
/* 802541EC 0024FE4C  C0 07 00 18 */	lfs f0, 0x18(r7)
/* 802541F0 0024FE50  D0 05 00 70 */	stfs f0, 0x70(r5)
/* 802541F4 0024FE54  C0 07 00 1C */	lfs f0, 0x1c(r7)
/* 802541F8 0024FE58  D0 05 00 74 */	stfs f0, 0x74(r5)
/* 802541FC 0024FE5C  48 00 00 2C */	b lbl_80254228
lbl_80254200:
/* 80254200 0024FE60  38 C0 00 01 */	li r6, 1
/* 80254204 0024FE64  38 A5 00 0C */	addi r5, r5, 0xc
/* 80254208 0024FE68  4B FF FE 79 */	bl func_80254080
/* 8025420C 0024FE6C  38 00 00 FF */	li r0, 0xff
/* 80254210 0024FE70  38 60 FF FF */	li r3, -1
/* 80254214 0024FE74  93 FE 00 84 */	stw r31, 0x84(r30)
/* 80254218 0024FE78  90 7E 00 08 */	stw r3, 8(r30)
/* 8025421C 0024FE7C  98 1E 00 10 */	stb r0, 0x10(r30)
/* 80254220 0024FE80  98 1E 00 0F */	stb r0, 0xf(r30)
/* 80254224 0024FE84  98 1E 00 0E */	stb r0, 0xe(r30)
lbl_80254228:
/* 80254228 0024FE88  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025422C 0024FE8C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80254230 0024FE90  83 C1 00 08 */	lwz r30, 8(r1)
/* 80254234 0024FE94  7C 08 03 A6 */	mtlr r0
/* 80254238 0024FE98  38 21 00 10 */	addi r1, r1, 0x10
/* 8025423C 0024FE9C  4E 80 00 20 */	blr

.global func_80254240
func_80254240:
/* 80254240 0024FEA0  38 A0 00 01 */	li r5, 1
/* 80254244 0024FEA4  38 6D A6 30 */	addi r3, r13, lbl_8063F8F0-_SDA_BASE_
/* 80254248 0024FEA8  38 80 00 04 */	li r4, 4
/* 8025424C 0024FEAC  38 00 00 00 */	li r0, 0
/* 80254250 0024FEB0  98 AD A6 30 */	stb r5, lbl_8063F8F0-_SDA_BASE_(r13)
/* 80254254 0024FEB4  B0 83 00 02 */	sth r4, 2(r3)
/* 80254258 0024FEB8  98 03 00 04 */	stb r0, 4(r3)
/* 8025425C 0024FEBC  4E 80 00 20 */	blr