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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global func_8025DCC0
func_8025DCC0:
/* 8025DCC0 00259920 38 04 00 01 */ addi r0, r4, 1
/* 8025DCC4 00259924 38 A0 00 00 */ li r5, 0
/* 8025DCC8 00259928 54 00 F8 7E */ srwi r0, r0, 1
/* 8025DCCC 0025992C 7C 09 03 A6 */ mtctr r0
/* 8025DCD0 00259930 2C 04 00 00 */ cmpwi r4, 0
/* 8025DCD4 00259934 40 81 00 2C */ ble lbl_8025DD00
lbl_8025DCD8:
/* 8025DCD8 00259938 A0 83 00 00 */ lhz r4, 0(r3)
/* 8025DCDC 0025993C 54 A0 04 3E */ clrlwi r0, r5, 0x10
/* 8025DCE0 00259940 38 63 00 02 */ addi r3, r3, 2
/* 8025DCE4 00259944 7C A5 22 14 */ add r5, r5, r4
/* 8025DCE8 00259948 54 A4 04 3E */ clrlwi r4, r5, 0x10
/* 8025DCEC 0025994C 7C 00 20 40 */ cmplw r0, r4
/* 8025DCF0 00259950 40 81 00 0C */ ble lbl_8025DCFC
/* 8025DCF4 00259954 38 04 00 01 */ addi r0, r4, 1
/* 8025DCF8 00259958 54 05 04 3E */ clrlwi r5, r0, 0x10
lbl_8025DCFC:
/* 8025DCFC 0025995C 42 00 FF DC */ bdnz lbl_8025DCD8
lbl_8025DD00:
/* 8025DD00 00259960 7C A0 28 F8 */ nor r0, r5, r5
/* 8025DD04 00259964 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 8025DD08 00259968 4E 80 00 20 */ blr
.global func_8025DD0C
func_8025DD0C:
/* 8025DD0C 0025996C 90 83 00 00 */ stw r4, 0(r3)
/* 8025DD10 00259970 4E 80 00 20 */ blr
.global func_8025DD14
func_8025DD14:
/* 8025DD14 00259974 3C 80 41 C6 */ lis r4, 0x41C64E6D@ha
/* 8025DD18 00259978 80 A3 00 00 */ lwz r5, 0(r3)
/* 8025DD1C 0025997C 38 04 4E 6D */ addi r0, r4, 0x41C64E6D@l
/* 8025DD20 00259980 7C 85 01 D6 */ mullw r4, r5, r0
/* 8025DD24 00259984 38 04 30 39 */ addi r0, r4, 0x3039
/* 8025DD28 00259988 90 03 00 00 */ stw r0, 0(r3)
/* 8025DD2C 0025998C 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 8025DD30 00259990 4E 80 00 20 */ blr
.global func_8025DD34
func_8025DD34:
/* 8025DD34 00259994 B0 83 00 0A */ sth r4, 0xa(r3)
/* 8025DD38 00259998 4E 80 00 20 */ blr
.global func_8025DD3C
func_8025DD3C:
/* 8025DD3C 0025999C B0 83 00 08 */ sth r4, 8(r3)
/* 8025DD40 002599A0 4E 80 00 20 */ blr
.global func_8025DD44
func_8025DD44:
/* 8025DD44 002599A4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8025DD48 002599A8 7C 08 02 A6 */ mflr r0
/* 8025DD4C 002599AC 90 01 00 34 */ stw r0, 0x34(r1)
/* 8025DD50 002599B0 39 61 00 30 */ addi r11, r1, 0x30
/* 8025DD54 002599B4 4B F6 93 CD */ bl _savegpr_25
/* 8025DD58 002599B8 7C 9D 23 78 */ mr r29, r4
/* 8025DD5C 002599BC 7C BE 2B 78 */ mr r30, r5
/* 8025DD60 002599C0 7C 7C 1B 78 */ mr r28, r3
/* 8025DD64 002599C4 7C DF 33 78 */ mr r31, r6
/* 8025DD68 002599C8 7C F9 3B 78 */ mr r25, r7
/* 8025DD6C 002599CC 7F A3 EB 78 */ mr r3, r29
/* 8025DD70 002599D0 7F C4 F3 78 */ mr r4, r30
/* 8025DD74 002599D4 4B FF FF 4D */ bl func_8025DCC0
/* 8025DD78 002599D8 38 9E 00 01 */ addi r4, r30, 1
/* 8025DD7C 002599DC 7C 7B 1B 78 */ mr r27, r3
/* 8025DD80 002599E0 54 80 0F FE */ srwi r0, r4, 0x1f
/* 8025DD84 002599E4 7C 00 22 14 */ add r0, r0, r4
/* 8025DD88 002599E8 54 03 00 3C */ rlwinm r3, r0, 0, 0, 0x1e
/* 8025DD8C 002599EC 38 03 00 04 */ addi r0, r3, 4
/* 8025DD90 002599F0 7C 19 00 00 */ cmpw r25, r0
/* 8025DD94 002599F4 40 80 00 0C */ bge lbl_8025DDA0
/* 8025DD98 002599F8 38 60 00 00 */ li r3, 0
/* 8025DD9C 002599FC 48 00 00 90 */ b lbl_8025DE2C
lbl_8025DDA0:
/* 8025DDA0 00259A00 A0 9C 00 08 */ lhz r4, 8(r28)
/* 8025DDA4 00259A04 7F 83 E3 78 */ mr r3, r28
/* 8025DDA8 00259A08 4B FF FF 65 */ bl func_8025DD0C
/* 8025DDAC 00259A0C A0 7C 00 08 */ lhz r3, 8(r28)
/* 8025DDB0 00259A10 3B 40 00 02 */ li r26, 2
/* 8025DDB4 00259A14 A0 1C 00 0A */ lhz r0, 0xa(r28)
/* 8025DDB8 00259A18 7C 60 02 78 */ xor r0, r3, r0
/* 8025DDBC 00259A1C B0 1C 00 08 */ sth r0, 8(r28)
/* 8025DDC0 00259A20 B0 1F 00 00 */ sth r0, 0(r31)
/* 8025DDC4 00259A24 3B FF 00 02 */ addi r31, r31, 2
/* 8025DDC8 00259A28 48 00 00 3C */ b lbl_8025DE04
lbl_8025DDCC:
/* 8025DDCC 00259A2C A3 3D 00 00 */ lhz r25, 0(r29)
/* 8025DDD0 00259A30 7F 83 E3 78 */ mr r3, r28
/* 8025DDD4 00259A34 3B BD 00 02 */ addi r29, r29, 2
/* 8025DDD8 00259A38 4B FF FF 3D */ bl func_8025DD14
/* 8025DDDC 00259A3C A0 9C 00 08 */ lhz r4, 8(r28)
/* 8025DDE0 00259A40 7F 39 1A 78 */ xor r25, r25, r3
/* 8025DDE4 00259A44 38 7A 00 02 */ addi r3, r26, 2
/* 8025DDE8 00259A48 38 1E FF FE */ addi r0, r30, -2
/* 8025DDEC 00259A4C 7F 39 22 78 */ xor r25, r25, r4
/* 8025DDF0 00259A50 B3 3F 00 00 */ sth r25, 0(r31)
/* 8025DDF4 00259A54 54 7A 04 3E */ clrlwi r26, r3, 0x10
/* 8025DDF8 00259A58 54 1E 04 3E */ clrlwi r30, r0, 0x10
/* 8025DDFC 00259A5C 3B FF 00 02 */ addi r31, r31, 2
/* 8025DE00 00259A60 B3 3C 00 08 */ sth r25, 8(r28)
lbl_8025DE04:
/* 8025DE04 00259A64 2C 1E 00 00 */ cmpwi r30, 0
/* 8025DE08 00259A68 40 82 FF C4 */ bne lbl_8025DDCC
/* 8025DE0C 00259A6C 7F 83 E3 78 */ mr r3, r28
/* 8025DE10 00259A70 4B FF FF 05 */ bl func_8025DD14
/* 8025DE14 00259A74 A0 9C 00 08 */ lhz r4, 8(r28)
/* 8025DE18 00259A78 7F 63 1A 78 */ xor r3, r27, r3
/* 8025DE1C 00259A7C 38 1A 00 02 */ addi r0, r26, 2
/* 8025DE20 00259A80 7C 63 22 78 */ xor r3, r3, r4
/* 8025DE24 00259A84 B0 7F 00 00 */ sth r3, 0(r31)
/* 8025DE28 00259A88 54 03 04 3E */ clrlwi r3, r0, 0x10
lbl_8025DE2C:
/* 8025DE2C 00259A8C 39 61 00 30 */ addi r11, r1, 0x30
/* 8025DE30 00259A90 4B F6 93 3D */ bl _restgpr_25
/* 8025DE34 00259A94 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8025DE38 00259A98 7C 08 03 A6 */ mtlr r0
/* 8025DE3C 00259A9C 38 21 00 30 */ addi r1, r1, 0x30
/* 8025DE40 00259AA0 4E 80 00 20 */ blr
.global func_8025DE44
func_8025DE44:
/* 8025DE44 00259AA4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8025DE48 00259AA8 7C 08 02 A6 */ mflr r0
/* 8025DE4C 00259AAC 90 01 00 34 */ stw r0, 0x34(r1)
/* 8025DE50 00259AB0 39 61 00 30 */ addi r11, r1, 0x30
/* 8025DE54 00259AB4 4B F6 92 CD */ bl _savegpr_25
/* 8025DE58 00259AB8 2C 06 00 04 */ cmpwi r6, 4
/* 8025DE5C 00259ABC 7C BB 2B 78 */ mr r27, r5
/* 8025DE60 00259AC0 7C 79 1B 78 */ mr r25, r3
/* 8025DE64 00259AC4 7C 9A 23 78 */ mr r26, r4
/* 8025DE68 00259AC8 7C DC 33 78 */ mr r28, r6
/* 8025DE6C 00259ACC 7F 7D DB 78 */ mr r29, r27
/* 8025DE70 00259AD0 40 80 00 0C */ bge lbl_8025DE7C
/* 8025DE74 00259AD4 38 60 00 00 */ li r3, 0
/* 8025DE78 00259AD8 48 00 00 D0 */ b lbl_8025DF48
lbl_8025DE7C:
/* 8025DE7C 00259ADC A0 84 00 00 */ lhz r4, 0(r4)
/* 8025DE80 00259AE0 3B 5A 00 02 */ addi r26, r26, 2
/* 8025DE84 00259AE4 A0 03 00 0A */ lhz r0, 0xa(r3)
/* 8025DE88 00259AE8 7C 84 02 78 */ xor r4, r4, r0
/* 8025DE8C 00259AEC B0 83 00 08 */ sth r4, 8(r3)
/* 8025DE90 00259AF0 4B FF FE 7D */ bl func_8025DD0C
/* 8025DE94 00259AF4 A0 79 00 08 */ lhz r3, 8(r25)
/* 8025DE98 00259AF8 3B DC FF FC */ addi r30, r28, -4
/* 8025DE9C 00259AFC A0 19 00 0A */ lhz r0, 0xa(r25)
/* 8025DEA0 00259B00 7C 60 02 78 */ xor r0, r3, r0
/* 8025DEA4 00259B04 B0 19 00 08 */ sth r0, 8(r25)
/* 8025DEA8 00259B08 48 00 00 30 */ b lbl_8025DED8
lbl_8025DEAC:
/* 8025DEAC 00259B0C A0 9A 00 00 */ lhz r4, 0(r26)
/* 8025DEB0 00259B10 7F 23 CB 78 */ mr r3, r25
/* 8025DEB4 00259B14 A0 19 00 08 */ lhz r0, 8(r25)
/* 8025DEB8 00259B18 3B 5A 00 02 */ addi r26, r26, 2
/* 8025DEBC 00259B1C B0 99 00 08 */ sth r4, 8(r25)
/* 8025DEC0 00259B20 7C 9F 02 78 */ xor r31, r4, r0
/* 8025DEC4 00259B24 4B FF FE 51 */ bl func_8025DD14
/* 8025DEC8 00259B28 7F E0 1A 78 */ xor r0, r31, r3
/* 8025DECC 00259B2C 3B DE FF FE */ addi r30, r30, -2
/* 8025DED0 00259B30 B0 1B 00 00 */ sth r0, 0(r27)
/* 8025DED4 00259B34 3B 7B 00 02 */ addi r27, r27, 2
lbl_8025DED8:
/* 8025DED8 00259B38 2C 1E 00 00 */ cmpwi r30, 0
/* 8025DEDC 00259B3C 41 81 FF D0 */ bgt lbl_8025DEAC
/* 8025DEE0 00259B40 A0 9A 00 00 */ lhz r4, 0(r26)
/* 8025DEE4 00259B44 7F 23 CB 78 */ mr r3, r25
/* 8025DEE8 00259B48 A0 19 00 08 */ lhz r0, 8(r25)
/* 8025DEEC 00259B4C 7C 9F 02 78 */ xor r31, r4, r0
/* 8025DEF0 00259B50 4B FF FE 25 */ bl func_8025DD14
/* 8025DEF4 00259B54 7F E0 1A 78 */ xor r0, r31, r3
/* 8025DEF8 00259B58 3B FC FF FC */ addi r31, r28, -4
/* 8025DEFC 00259B5C 7F A3 EB 78 */ mr r3, r29
/* 8025DF00 00259B60 7F E4 FB 78 */ mr r4, r31
/* 8025DF04 00259B64 54 1E 04 3E */ clrlwi r30, r0, 0x10
/* 8025DF08 00259B68 4B FF FD B9 */ bl func_8025DCC0
/* 8025DF0C 00259B6C 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 8025DF10 00259B70 7C 1E 00 40 */ cmplw r30, r0
/* 8025DF14 00259B74 41 82 00 30 */ beq lbl_8025DF44
/* 8025DF18 00259B78 7F A3 EB 78 */ mr r3, r29
/* 8025DF1C 00259B7C 7F E4 FB 78 */ mr r4, r31
/* 8025DF20 00259B80 4B FF FD A1 */ bl func_8025DCC0
/* 8025DF24 00259B84 3C C0 80 42 */ lis r6, lbl_804255A8@ha
/* 8025DF28 00259B88 54 64 04 3E */ clrlwi r4, r3, 0x10
/* 8025DF2C 00259B8C 7F C5 F3 78 */ mr r5, r30
/* 8025DF30 00259B90 38 66 55 A8 */ addi r3, r6, lbl_804255A8@l
/* 8025DF34 00259B94 4C C6 31 82 */ crclr 6
/* 8025DF38 00259B98 4B DA 9B 8D */ bl OSReport
/* 8025DF3C 00259B9C 38 60 00 00 */ li r3, 0
/* 8025DF40 00259BA0 48 00 00 08 */ b lbl_8025DF48
lbl_8025DF44:
/* 8025DF44 00259BA4 57 E3 04 3E */ clrlwi r3, r31, 0x10
lbl_8025DF48:
/* 8025DF48 00259BA8 39 61 00 30 */ addi r11, r1, 0x30
/* 8025DF4C 00259BAC 4B F6 92 21 */ bl _restgpr_25
/* 8025DF50 00259BB0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8025DF54 00259BB4 7C 08 03 A6 */ mtlr r0
/* 8025DF58 00259BB8 38 21 00 30 */ addi r1, r1, 0x30
/* 8025DF5C 00259BBC 4E 80 00 20 */ blr
.global func_8025DF60
func_8025DF60:
/* 8025DF60 00259BC0 38 A0 00 01 */ li r5, 1
/* 8025DF64 00259BC4 38 6D A6 C8 */ addi r3, r13, lbl_8063F988-_SDA_BASE_
/* 8025DF68 00259BC8 38 80 00 04 */ li r4, 4
/* 8025DF6C 00259BCC 38 00 00 00 */ li r0, 0
/* 8025DF70 00259BD0 98 AD A6 C8 */ stb r5, lbl_8063F988-_SDA_BASE_(r13)
/* 8025DF74 00259BD4 B0 83 00 02 */ sth r4, 2(r3)
/* 8025DF78 00259BD8 98 03 00 04 */ stb r0, 4(r3)
/* 8025DF7C 00259BDC 4E 80 00 20 */ blr
|