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
251
252
253
254
255
256
257
258
259
260
261
262
263
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global func_80246CCC
func_80246CCC:
/* 80246CCC 0024292C 80 0D A5 18 */ lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80246CD0 00242930 54 03 18 38 */ slwi r3, r0, 3
/* 80246CD4 00242934 4E 80 00 20 */ blr
.global func_80246CD8
func_80246CD8:
/* 80246CD8 00242938 80 0D A5 18 */ lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80246CDC 0024293C 54 03 10 3A */ slwi r3, r0, 2
/* 80246CE0 00242940 4E 80 00 20 */ blr
.global func_80246CE4
func_80246CE4:
/* 80246CE4 00242944 80 6D A5 18 */ lwz r3, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80246CE8 00242948 4E 80 00 20 */ blr
.global func_80246CEC
func_80246CEC:
/* 80246CEC 0024294C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80246CF0 00242950 7C 08 02 A6 */ mflr r0
/* 80246CF4 00242954 90 01 00 24 */ stw r0, 0x24(r1)
/* 80246CF8 00242958 39 61 00 20 */ addi r11, r1, 0x20
/* 80246CFC 0024295C 4B F8 04 29 */ bl _savegpr_26
/* 80246D00 00242960 2C 03 00 00 */ cmpwi r3, 0
/* 80246D04 00242964 7C 7A 1B 78 */ mr r26, r3
/* 80246D08 00242968 41 82 00 7C */ beq lbl_80246D84
/* 80246D0C 0024296C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80246D10 00242970 2C 00 00 04 */ cmpwi r0, 4
/* 80246D14 00242974 40 82 00 70 */ bne lbl_80246D84
/* 80246D18 00242978 48 02 7A 45 */ bl OSDisableInterrupts
/* 80246D1C 0024297C 7C 7C 1B 78 */ mr r28, r3
/* 80246D20 00242980 7F 43 D3 78 */ mr r3, r26
/* 80246D24 00242984 4B FF F1 8D */ bl func_80245EB0
/* 80246D28 00242988 2C 03 00 00 */ cmpwi r3, 0
/* 80246D2C 0024298C 7C 7D 1B 78 */ mr r29, r3
/* 80246D30 00242990 41 82 00 4C */ beq lbl_80246D7C
/* 80246D34 00242994 3B 60 00 00 */ li r27, 0
/* 80246D38 00242998 3B E0 00 00 */ li r31, 0
/* 80246D3C 0024299C 48 00 00 34 */ b lbl_80246D70
lbl_80246D40:
/* 80246D40 002429A0 7F 43 D3 78 */ mr r3, r26
/* 80246D44 002429A4 7F 64 DB 78 */ mr r4, r27
/* 80246D48 002429A8 4B FF F1 99 */ bl func_80245EE0
/* 80246D4C 002429AC 2C 03 00 00 */ cmpwi r3, 0
/* 80246D50 002429B0 7C 7E 1B 78 */ mr r30, r3
/* 80246D54 002429B4 41 82 00 18 */ beq lbl_80246D6C
/* 80246D58 002429B8 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 80246D5C 002429BC 2C 03 00 00 */ cmpwi r3, 0
/* 80246D60 002429C0 41 82 00 0C */ beq lbl_80246D6C
/* 80246D64 002429C4 4B FF E1 0D */ bl func_80244E70
/* 80246D68 002429C8 93 FE 00 2C */ stw r31, 0x2c(r30)
lbl_80246D6C:
/* 80246D6C 002429CC 3B 7B 00 01 */ addi r27, r27, 1
lbl_80246D70:
/* 80246D70 002429D0 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 80246D74 002429D4 7C 1B 00 40 */ cmplw r27, r0
/* 80246D78 002429D8 41 80 FF C8 */ blt lbl_80246D40
lbl_80246D7C:
/* 80246D7C 002429DC 7F 83 E3 78 */ mr r3, r28
/* 80246D80 002429E0 48 02 7A 05 */ bl OSRestoreInterrupts
lbl_80246D84:
/* 80246D84 002429E4 39 61 00 20 */ addi r11, r1, 0x20
/* 80246D88 002429E8 4B F8 03 E9 */ bl _restgpr_26
/* 80246D8C 002429EC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80246D90 002429F0 7C 08 03 A6 */ mtlr r0
/* 80246D94 002429F4 38 21 00 20 */ addi r1, r1, 0x20
/* 80246D98 002429F8 4E 80 00 20 */ blr
/* 80246D9C 002429FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80246DA0 00242A00 7C 08 02 A6 */ mflr r0
/* 80246DA4 00242A04 2C 03 00 00 */ cmpwi r3, 0
/* 80246DA8 00242A08 90 01 00 14 */ stw r0, 0x14(r1)
/* 80246DAC 00242A0C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80246DB0 00242A10 7C 7F 1B 78 */ mr r31, r3
/* 80246DB4 00242A14 40 82 00 0C */ bne lbl_80246DC0
/* 80246DB8 00242A18 41 82 00 44 */ beq lbl_80246DFC
/* 80246DBC 00242A1C 48 00 00 40 */ b lbl_80246DFC
lbl_80246DC0:
/* 80246DC0 00242A20 80 83 00 14 */ lwz r4, 0x14(r3)
/* 80246DC4 00242A24 80 A3 00 10 */ lwz r5, 0x10(r3)
/* 80246DC8 00242A28 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80246DCC 00242A2C 64 00 08 00 */ oris r0, r0, 0x800
/* 80246DD0 00242A30 90 04 00 0C */ stw r0, 0xc(r4)
/* 80246DD4 00242A34 81 83 00 18 */ lwz r12, 0x18(r3)
/* 80246DD8 00242A38 2C 0C 00 00 */ cmpwi r12, 0
/* 80246DDC 00242A3C 41 82 00 18 */ beq lbl_80246DF4
/* 80246DE0 00242A40 80 65 00 10 */ lwz r3, 0x10(r5)
/* 80246DE4 00242A44 80 9F 00 1C */ lwz r4, 0x1c(r31)
/* 80246DE8 00242A48 80 BF 00 20 */ lwz r5, 0x20(r31)
/* 80246DEC 00242A4C 7D 89 03 A6 */ mtctr r12
/* 80246DF0 00242A50 4E 80 04 21 */ bctrl
lbl_80246DF4:
/* 80246DF4 00242A54 38 00 00 00 */ li r0, 0
/* 80246DF8 00242A58 90 1F 00 18 */ stw r0, 0x18(r31)
lbl_80246DFC:
/* 80246DFC 00242A5C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80246E00 00242A60 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80246E04 00242A64 7C 08 03 A6 */ mtlr r0
/* 80246E08 00242A68 38 21 00 10 */ addi r1, r1, 0x10
/* 80246E0C 00242A6C 4E 80 00 20 */ blr
.global func_80246E10
func_80246E10:
/* 80246E10 00242A70 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80246E14 00242A74 7C 08 02 A6 */ mflr r0
/* 80246E18 00242A78 90 01 00 54 */ stw r0, 0x54(r1)
/* 80246E1C 00242A7C 39 61 00 50 */ addi r11, r1, 0x50
/* 80246E20 00242A80 4B F8 02 E1 */ bl _savegpr_17
/* 80246E24 00242A84 7C 73 1B 78 */ mr r19, r3
/* 80246E28 00242A88 7C 91 23 78 */ mr r17, r4
/* 80246E2C 00242A8C 7C B4 2B 78 */ mr r20, r5
/* 80246E30 00242A90 7C D5 33 78 */ mr r21, r6
/* 80246E34 00242A94 7C F6 3B 78 */ mr r22, r7
/* 80246E38 00242A98 7D 17 43 78 */ mr r23, r8
/* 80246E3C 00242A9C 7D 38 4B 78 */ mr r24, r9
/* 80246E40 00242AA0 7D 59 53 78 */ mr r25, r10
/* 80246E44 00242AA4 48 02 79 19 */ bl OSDisableInterrupts
/* 80246E48 00242AA8 2C 11 00 00 */ cmpwi r17, 0
/* 80246E4C 00242AAC 7C 7D 1B 78 */ mr r29, r3
/* 80246E50 00242AB0 40 82 00 18 */ bne lbl_80246E68
/* 80246E54 00242AB4 7E 63 9B 78 */ mr r3, r19
/* 80246E58 00242AB8 38 80 00 01 */ li r4, 1
/* 80246E5C 00242ABC 4B FF F0 85 */ bl func_80245EE0
/* 80246E60 00242AC0 7C 7C 1B 78 */ mr r28, r3
/* 80246E64 00242AC4 48 00 00 20 */ b lbl_80246E84
lbl_80246E68:
/* 80246E68 00242AC8 7E 63 9B 78 */ mr r3, r19
/* 80246E6C 00242ACC 7E 24 8B 78 */ mr r4, r17
/* 80246E70 00242AD0 48 00 0D ED */ bl func_80247C5C
/* 80246E74 00242AD4 7C 64 1B 78 */ mr r4, r3
/* 80246E78 00242AD8 7E 63 9B 78 */ mr r3, r19
/* 80246E7C 00242ADC 4B FF F0 65 */ bl func_80245EE0
/* 80246E80 00242AE0 7C 7C 1B 78 */ mr r28, r3
lbl_80246E84:
/* 80246E84 00242AE4 2C 1C 00 00 */ cmpwi r28, 0
/* 80246E88 00242AE8 41 82 01 48 */ beq lbl_80246FD0
/* 80246E8C 00242AEC 7E BB AB 78 */ mr r27, r21
/* 80246E90 00242AF0 3B 40 00 00 */ li r26, 0
/* 80246E94 00242AF4 4B FF FE 39 */ bl func_80246CCC
/* 80246E98 00242AF8 7C 16 1B 96 */ divwu r0, r22, r3
/* 80246E9C 00242AFC 3A 20 00 00 */ li r17, 0
/* 80246EA0 00242B00 3E 40 80 24 */ lis r18, 0x8024
/* 80246EA4 00242B04 7C 00 19 D6 */ mullw r0, r0, r3
/* 80246EA8 00242B08 7E C0 B0 50 */ subf r22, r0, r22
/* 80246EAC 00242B0C 48 00 00 DC */ b lbl_80246F88
lbl_80246EB0:
/* 80246EB0 00242B10 80 0D A5 18 */ lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80246EB4 00242B14 7F 7E DB 78 */ mr r30, r27
/* 80246EB8 00242B18 7C 1B 00 40 */ cmplw r27, r0
/* 80246EBC 00242B1C 41 80 00 08 */ blt lbl_80246EC4
/* 80246EC0 00242B20 7C 1E 03 78 */ mr r30, r0
lbl_80246EC4:
/* 80246EC4 00242B24 7E C3 B3 78 */ mr r3, r22
/* 80246EC8 00242B28 7F 7E D8 50 */ subf r27, r30, r27
/* 80246ECC 00242B2C 48 00 01 39 */ bl func_80247004
/* 80246ED0 00242B30 80 1C 00 4C */ lwz r0, 0x4c(r28)
/* 80246ED4 00242B34 7C 7F 1B 78 */ mr r31, r3
/* 80246ED8 00242B38 7C 00 18 39 */ and. r0, r0, r3
/* 80246EDC 00242B3C 40 82 00 0C */ bne lbl_80246EE8
/* 80246EE0 00242B40 38 60 00 00 */ li r3, 0
/* 80246EE4 00242B44 48 00 01 08 */ b lbl_80246FEC
lbl_80246EE8:
/* 80246EE8 00242B48 80 1C 00 0C */ lwz r0, 0xc(r28)
/* 80246EEC 00242B4C 2C 1B 00 00 */ cmpwi r27, 0
/* 80246EF0 00242B50 54 00 01 46 */ rlwinm r0, r0, 0, 5, 3
/* 80246EF4 00242B54 90 1C 00 0C */ stw r0, 0xc(r28)
/* 80246EF8 00242B58 41 82 00 3C */ beq lbl_80246F34
/* 80246EFC 00242B5C 92 21 00 08 */ stw r17, 8(r1)
/* 80246F00 00242B60 7E 63 9B 78 */ mr r3, r19
/* 80246F04 00242B64 7F 84 E3 78 */ mr r4, r28
/* 80246F08 00242B68 7E 85 A3 78 */ mr r5, r20
/* 80246F0C 00242B6C 7F C6 F3 78 */ mr r6, r30
/* 80246F10 00242B70 7E C7 B3 78 */ mr r7, r22
/* 80246F14 00242B74 39 00 00 00 */ li r8, 0
/* 80246F18 00242B78 39 20 00 00 */ li r9, 0
/* 80246F1C 00242B7C 39 40 00 00 */ li r10, 0
/* 80246F20 00242B80 4B FF EC 5D */ bl func_80245B7C
/* 80246F24 00242B84 2C 03 00 00 */ cmpwi r3, 0
/* 80246F28 00242B88 40 82 00 44 */ bne lbl_80246F6C
/* 80246F2C 00242B8C 38 60 00 00 */ li r3, 0
/* 80246F30 00242B90 48 00 00 BC */ b lbl_80246FEC
lbl_80246F34:
/* 80246F34 00242B94 93 21 00 08 */ stw r25, 8(r1)
/* 80246F38 00242B98 7E 63 9B 78 */ mr r3, r19
/* 80246F3C 00242B9C 7F 84 E3 78 */ mr r4, r28
/* 80246F40 00242BA0 7E 85 A3 78 */ mr r5, r20
/* 80246F44 00242BA4 7F C6 F3 78 */ mr r6, r30
/* 80246F48 00242BA8 7E C7 B3 78 */ mr r7, r22
/* 80246F4C 00242BAC 7E E9 BB 78 */ mr r9, r23
/* 80246F50 00242BB0 7F 0A C3 78 */ mr r10, r24
/* 80246F54 00242BB4 39 12 6D 9C */ addi r8, r18, 0x6d9c
/* 80246F58 00242BB8 4B FF EC 25 */ bl func_80245B7C
/* 80246F5C 00242BBC 2C 03 00 00 */ cmpwi r3, 0
/* 80246F60 00242BC0 40 82 00 0C */ bne lbl_80246F6C
/* 80246F64 00242BC4 38 60 00 00 */ li r3, 0
/* 80246F68 00242BC8 48 00 00 84 */ b lbl_80246FEC
lbl_80246F6C:
/* 80246F6C 00242BCC 7E 94 F2 14 */ add r20, r20, r30
/* 80246F70 00242BD0 7F 5A FB 78 */ or r26, r26, r31
/* 80246F74 00242BD4 7E D6 F2 14 */ add r22, r22, r30
/* 80246F78 00242BD8 4B FF FD 55 */ bl func_80246CCC
/* 80246F7C 00242BDC 7C 16 1B 96 */ divwu r0, r22, r3
/* 80246F80 00242BE0 7C 00 19 D6 */ mullw r0, r0, r3
/* 80246F84 00242BE4 7E C0 B0 50 */ subf r22, r0, r22
lbl_80246F88:
/* 80246F88 00242BE8 2C 1B 00 00 */ cmpwi r27, 0
/* 80246F8C 00242BEC 40 82 FF 24 */ bne lbl_80246EB0
/* 80246F90 00242BF0 80 1C 00 0C */ lwz r0, 0xc(r28)
/* 80246F94 00242BF4 54 00 02 11 */ rlwinm. r0, r0, 0, 8, 8
/* 80246F98 00242BF8 41 82 00 10 */ beq lbl_80246FA8
/* 80246F9C 00242BFC 80 1C 00 14 */ lwz r0, 0x14(r28)
/* 80246FA0 00242C00 90 1C 00 44 */ stw r0, 0x44(r28)
/* 80246FA4 00242C04 48 00 00 1C */ b lbl_80246FC0
lbl_80246FA8:
/* 80246FA8 00242C08 80 1C 00 44 */ lwz r0, 0x44(r28)
/* 80246FAC 00242C0C 7C 15 00 50 */ subf r0, r21, r0
/* 80246FB0 00242C10 90 1C 00 44 */ stw r0, 0x44(r28)
/* 80246FB4 00242C14 80 1C 00 4C */ lwz r0, 0x4c(r28)
/* 80246FB8 00242C18 7C 00 D0 78 */ andc r0, r0, r26
/* 80246FBC 00242C1C 90 1C 00 4C */ stw r0, 0x4c(r28)
lbl_80246FC0:
/* 80246FC0 00242C20 7F A3 EB 78 */ mr r3, r29
/* 80246FC4 00242C24 48 02 77 C1 */ bl OSRestoreInterrupts
/* 80246FC8 00242C28 38 60 00 01 */ li r3, 1
/* 80246FCC 00242C2C 48 00 00 20 */ b lbl_80246FEC
lbl_80246FD0:
/* 80246FD0 00242C30 7F A3 EB 78 */ mr r3, r29
/* 80246FD4 00242C34 48 02 77 B1 */ bl OSRestoreInterrupts
/* 80246FD8 00242C38 7E 83 A3 78 */ mr r3, r20
/* 80246FDC 00242C3C 7E A5 AB 78 */ mr r5, r21
/* 80246FE0 00242C40 38 80 00 00 */ li r4, 0
/* 80246FE4 00242C44 48 00 15 0D */ bl func_802484F0
/* 80246FE8 00242C48 38 60 00 00 */ li r3, 0
lbl_80246FEC:
/* 80246FEC 00242C4C 39 61 00 50 */ addi r11, r1, 0x50
/* 80246FF0 00242C50 4B F8 01 5D */ bl _restgpr_17
/* 80246FF4 00242C54 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80246FF8 00242C58 7C 08 03 A6 */ mtlr r0
/* 80246FFC 00242C5C 38 21 00 50 */ addi r1, r1, 0x50
/* 80247000 00242C60 4E 80 00 20 */ blr
.global func_80247004
func_80247004:
/* 80247004 00242C64 80 0D A5 18 */ lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80247008 00242C68 38 80 00 01 */ li r4, 1
/* 8024700C 00242C6C 7C 03 03 96 */ divwu r0, r3, r0
/* 80247010 00242C70 7C 83 00 30 */ slw r3, r4, r0
/* 80247014 00242C74 4E 80 00 20 */ blr
.global func_80247018
func_80247018:
/* 80247018 00242C78 38 A0 00 01 */ li r5, 1
/* 8024701C 00242C7C 38 6D A5 80 */ addi r3, r13, lbl_8063F840-_SDA_BASE_
/* 80247020 00242C80 38 80 00 04 */ li r4, 4
/* 80247024 00242C84 38 00 00 00 */ li r0, 0
/* 80247028 00242C88 98 AD A5 80 */ stb r5, lbl_8063F840-_SDA_BASE_(r13)
/* 8024702C 00242C8C B0 83 00 02 */ sth r4, 2(r3)
/* 80247030 00242C90 98 03 00 04 */ stb r0, 4(r3)
/* 80247034 00242C94 4E 80 00 20 */ blr
|