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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global func_801DBB3C
func_801DBB3C:
/* 801DBB3C 001D779C 38 60 00 00 */ li r3, 0
/* 801DBB40 001D77A0 4E 80 00 20 */ blr
.global func_801DBB44
func_801DBB44:
/* 801DBB44 001D77A4 4E 80 00 20 */ blr
.global func_801DBB48
func_801DBB48:
/* 801DBB48 001D77A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801DBB4C 001D77AC 7C 08 02 A6 */ mflr r0
/* 801DBB50 001D77B0 38 A5 00 07 */ addi r5, r5, 7
/* 801DBB54 001D77B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 801DBB58 001D77B8 38 04 00 01 */ addi r0, r4, 1
/* 801DBB5C 001D77BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801DBB60 001D77C0 54 BF 00 3A */ rlwinm r31, r5, 0, 0, 0x1d
/* 801DBB64 001D77C4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801DBB68 001D77C8 7C 9E 23 78 */ mr r30, r4
/* 801DBB6C 001D77CC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801DBB70 001D77D0 7C 7D 1B 78 */ mr r29, r3
/* 801DBB74 001D77D4 90 83 00 08 */ stw r4, 8(r3)
/* 801DBB78 001D77D8 93 E3 00 0C */ stw r31, 0xc(r3)
/* 801DBB7C 001D77DC 7C 60 F9 D6 */ mullw r3, r0, r31
/* 801DBB80 001D77E0 4B FF F2 19 */ bl func_801DAD98
/* 801DBB84 001D77E4 7C 1E F9 D6 */ mullw r0, r30, r31
/* 801DBB88 001D77E8 2C 1E 00 00 */ cmpwi r30, 0
/* 801DBB8C 001D77EC 90 7D 00 10 */ stw r3, 0x10(r29)
/* 801DBB90 001D77F0 39 00 00 00 */ li r8, 0
/* 801DBB94 001D77F4 38 E0 00 00 */ li r7, 0
/* 801DBB98 001D77F8 90 7D 00 18 */ stw r3, 0x18(r29)
/* 801DBB9C 001D77FC 7C 03 02 14 */ add r0, r3, r0
/* 801DBBA0 001D7800 90 1D 00 14 */ stw r0, 0x14(r29)
/* 801DBBA4 001D7804 41 82 00 90 */ beq lbl_801DBC34
/* 801DBBA8 001D7808 28 1E 00 08 */ cmplwi r30, 8
/* 801DBBAC 001D780C 38 9E FF F8 */ addi r4, r30, -8
/* 801DBBB0 001D7810 40 81 00 60 */ ble lbl_801DBC10
/* 801DBBB4 001D7814 38 04 00 07 */ addi r0, r4, 7
/* 801DBBB8 001D7818 54 00 E8 FE */ srwi r0, r0, 3
/* 801DBBBC 001D781C 7C 09 03 A6 */ mtctr r0
/* 801DBBC0 001D7820 28 04 00 00 */ cmplwi r4, 0
/* 801DBBC4 001D7824 40 81 00 4C */ ble lbl_801DBC10
lbl_801DBBC8:
/* 801DBBC8 001D7828 7C A3 FA 14 */ add r5, r3, r31
/* 801DBBCC 001D782C 38 E7 00 08 */ addi r7, r7, 8
/* 801DBBD0 001D7830 90 A3 00 00 */ stw r5, 0(r3)
/* 801DBBD4 001D7834 7C 85 FA 14 */ add r4, r5, r31
/* 801DBBD8 001D7838 7C 64 FA 14 */ add r3, r4, r31
/* 801DBBDC 001D783C 90 85 00 00 */ stw r4, 0(r5)
/* 801DBBE0 001D7840 7C C3 FA 14 */ add r6, r3, r31
/* 801DBBE4 001D7844 7C A6 FA 14 */ add r5, r6, r31
/* 801DBBE8 001D7848 90 64 00 00 */ stw r3, 0(r4)
/* 801DBBEC 001D784C 7C 85 FA 14 */ add r4, r5, r31
/* 801DBBF0 001D7850 7D 04 FA 14 */ add r8, r4, r31
/* 801DBBF4 001D7854 90 C3 00 00 */ stw r6, 0(r3)
/* 801DBBF8 001D7858 7C 68 FA 14 */ add r3, r8, r31
/* 801DBBFC 001D785C 90 A6 00 00 */ stw r5, 0(r6)
/* 801DBC00 001D7860 7C 86 F9 2E */ stwx r4, r6, r31
/* 801DBC04 001D7864 7D 05 F9 2E */ stwx r8, r5, r31
/* 801DBC08 001D7868 7C 64 F9 2E */ stwx r3, r4, r31
/* 801DBC0C 001D786C 42 00 FF BC */ bdnz lbl_801DBBC8
lbl_801DBC10:
/* 801DBC10 001D7870 7C 07 F0 50 */ subf r0, r7, r30
/* 801DBC14 001D7874 7C 09 03 A6 */ mtctr r0
/* 801DBC18 001D7878 7C 07 F0 40 */ cmplw r7, r30
/* 801DBC1C 001D787C 40 80 00 18 */ bge lbl_801DBC34
lbl_801DBC20:
/* 801DBC20 001D7880 7C 03 FA 14 */ add r0, r3, r31
/* 801DBC24 001D7884 7C 68 1B 78 */ mr r8, r3
/* 801DBC28 001D7888 90 03 00 00 */ stw r0, 0(r3)
/* 801DBC2C 001D788C 7C 03 03 78 */ mr r3, r0
/* 801DBC30 001D7890 42 00 FF F0 */ bdnz lbl_801DBC20
lbl_801DBC34:
/* 801DBC34 001D7894 38 00 00 00 */ li r0, 0
/* 801DBC38 001D7898 90 08 00 00 */ stw r0, 0(r8)
/* 801DBC3C 001D789C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801DBC40 001D78A0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 801DBC44 001D78A4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 801DBC48 001D78A8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801DBC4C 001D78AC 7C 08 03 A6 */ mtlr r0
/* 801DBC50 001D78B0 38 21 00 20 */ addi r1, r1, 0x20
/* 801DBC54 001D78B4 4E 80 00 20 */ blr
.global func_801DBC58
func_801DBC58:
/* 801DBC58 001D78B8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801DBC5C 001D78BC 7C 08 02 A6 */ mflr r0
/* 801DBC60 001D78C0 90 01 00 24 */ stw r0, 0x24(r1)
/* 801DBC64 001D78C4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801DBC68 001D78C8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801DBC6C 001D78CC 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801DBC70 001D78D0 7C 7D 1B 78 */ mr r29, r3
/* 801DBC74 001D78D4 83 E3 00 18 */ lwz r31, 0x18(r3)
/* 801DBC78 001D78D8 4B FF FE C5 */ bl func_801DBB3C
/* 801DBC7C 001D78DC 7C 7E 1B 78 */ mr r30, r3
/* 801DBC80 001D78E0 38 60 00 00 */ li r3, 0
/* 801DBC84 001D78E4 4B FF FE C1 */ bl func_801DBB44
/* 801DBC88 001D78E8 2C 1F 00 00 */ cmpwi r31, 0
/* 801DBC8C 001D78EC 41 82 00 10 */ beq lbl_801DBC9C
/* 801DBC90 001D78F0 80 1F 00 00 */ lwz r0, 0(r31)
/* 801DBC94 001D78F4 90 1D 00 18 */ stw r0, 0x18(r29)
/* 801DBC98 001D78F8 48 00 00 14 */ b lbl_801DBCAC
lbl_801DBC9C:
/* 801DBC9C 001D78FC 7F C3 F3 78 */ mr r3, r30
/* 801DBCA0 001D7900 4B FF FE A5 */ bl func_801DBB44
/* 801DBCA4 001D7904 38 60 00 00 */ li r3, 0
/* 801DBCA8 001D7908 48 00 00 3C */ b lbl_801DBCE4
lbl_801DBCAC:
/* 801DBCAC 001D790C 7F C3 F3 78 */ mr r3, r30
/* 801DBCB0 001D7910 4B FF FE 95 */ bl func_801DBB44
/* 801DBCB4 001D7914 80 BD 00 0C */ lwz r5, 0xc(r29)
/* 801DBCB8 001D7918 7F E3 FB 78 */ mr r3, r31
/* 801DBCBC 001D791C 38 80 00 00 */ li r4, 0
/* 801DBCC0 001D7920 4B E2 84 45 */ bl memset
/* 801DBCC4 001D7924 80 7D 00 00 */ lwz r3, 0(r29)
/* 801DBCC8 001D7928 80 1D 00 04 */ lwz r0, 4(r29)
/* 801DBCCC 001D792C 38 63 00 01 */ addi r3, r3, 1
/* 801DBCD0 001D7930 7C 03 00 40 */ cmplw r3, r0
/* 801DBCD4 001D7934 90 7D 00 00 */ stw r3, 0(r29)
/* 801DBCD8 001D7938 40 81 00 08 */ ble lbl_801DBCE0
/* 801DBCDC 001D793C 90 7D 00 04 */ stw r3, 4(r29)
lbl_801DBCE0:
/* 801DBCE0 001D7940 38 7F 00 04 */ addi r3, r31, 4
lbl_801DBCE4:
/* 801DBCE4 001D7944 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801DBCE8 001D7948 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801DBCEC 001D794C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 801DBCF0 001D7950 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 801DBCF4 001D7954 7C 08 03 A6 */ mtlr r0
/* 801DBCF8 001D7958 38 21 00 20 */ addi r1, r1, 0x20
/* 801DBCFC 001D795C 4E 80 00 20 */ blr
.global func_801DBD00
func_801DBD00:
/* 801DBD00 001D7960 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801DBD04 001D7964 7C 08 02 A6 */ mflr r0
/* 801DBD08 001D7968 2C 04 00 00 */ cmpwi r4, 0
/* 801DBD0C 001D796C 90 01 00 24 */ stw r0, 0x24(r1)
/* 801DBD10 001D7970 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801DBD14 001D7974 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801DBD18 001D7978 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801DBD1C 001D797C 7C 7D 1B 78 */ mr r29, r3
/* 801DBD20 001D7980 41 82 00 38 */ beq lbl_801DBD58
/* 801DBD24 001D7984 80 03 00 18 */ lwz r0, 0x18(r3)
/* 801DBD28 001D7988 3B C4 FF FC */ addi r30, r4, -4
/* 801DBD2C 001D798C 90 04 FF FC */ stw r0, -4(r4)
/* 801DBD30 001D7990 80 83 00 00 */ lwz r4, 0(r3)
/* 801DBD34 001D7994 38 04 FF FF */ addi r0, r4, -1
/* 801DBD38 001D7998 90 03 00 00 */ stw r0, 0(r3)
/* 801DBD3C 001D799C 4B FF FE 01 */ bl func_801DBB3C
/* 801DBD40 001D79A0 7C 7F 1B 78 */ mr r31, r3
/* 801DBD44 001D79A4 38 60 00 00 */ li r3, 0
/* 801DBD48 001D79A8 4B FF FD FD */ bl func_801DBB44
/* 801DBD4C 001D79AC 93 DD 00 18 */ stw r30, 0x18(r29)
/* 801DBD50 001D79B0 7F E3 FB 78 */ mr r3, r31
/* 801DBD54 001D79B4 4B FF FD F1 */ bl func_801DBB44
lbl_801DBD58:
/* 801DBD58 001D79B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801DBD5C 001D79BC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801DBD60 001D79C0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 801DBD64 001D79C4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 801DBD68 001D79C8 7C 08 03 A6 */ mtlr r0
/* 801DBD6C 001D79CC 38 21 00 20 */ addi r1, r1, 0x20
/* 801DBD70 001D79D0 4E 80 00 20 */ blr
.global func_801DBD74
func_801DBD74:
/* 801DBD74 001D79D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801DBD78 001D79D8 7C 08 02 A6 */ mflr r0
/* 801DBD7C 001D79DC 3C C0 80 49 */ lis r6, lbl_80491470@ha
/* 801DBD80 001D79E0 7C 67 1B 78 */ mr r7, r3
/* 801DBD84 001D79E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 801DBD88 001D79E8 38 00 00 04 */ li r0, 4
/* 801DBD8C 001D79EC 7C 85 23 78 */ mr r5, r4
/* 801DBD90 001D79F0 38 C6 14 70 */ addi r6, r6, lbl_80491470@l
/* 801DBD94 001D79F4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801DBD98 001D79F8 38 60 00 00 */ li r3, 0
/* 801DBD9C 001D79FC 7C 09 03 A6 */ mtctr r0
lbl_801DBDA0:
/* 801DBDA0 001D7A00 80 06 00 08 */ lwz r0, 8(r6)
/* 801DBDA4 001D7A04 2C 00 00 00 */ cmpwi r0, 0
/* 801DBDA8 001D7A08 41 82 00 80 */ beq lbl_801DBE28
/* 801DBDAC 001D7A0C 80 06 00 24 */ lwz r0, 0x24(r6)
/* 801DBDB0 001D7A10 38 63 00 01 */ addi r3, r3, 1
/* 801DBDB4 001D7A14 2C 00 00 00 */ cmpwi r0, 0
/* 801DBDB8 001D7A18 41 82 00 70 */ beq lbl_801DBE28
/* 801DBDBC 001D7A1C 80 06 00 40 */ lwz r0, 0x40(r6)
/* 801DBDC0 001D7A20 38 63 00 01 */ addi r3, r3, 1
/* 801DBDC4 001D7A24 2C 00 00 00 */ cmpwi r0, 0
/* 801DBDC8 001D7A28 41 82 00 60 */ beq lbl_801DBE28
/* 801DBDCC 001D7A2C 80 06 00 5C */ lwz r0, 0x5c(r6)
/* 801DBDD0 001D7A30 38 63 00 01 */ addi r3, r3, 1
/* 801DBDD4 001D7A34 2C 00 00 00 */ cmpwi r0, 0
/* 801DBDD8 001D7A38 41 82 00 50 */ beq lbl_801DBE28
/* 801DBDDC 001D7A3C 80 06 00 78 */ lwz r0, 0x78(r6)
/* 801DBDE0 001D7A40 38 63 00 01 */ addi r3, r3, 1
/* 801DBDE4 001D7A44 2C 00 00 00 */ cmpwi r0, 0
/* 801DBDE8 001D7A48 41 82 00 40 */ beq lbl_801DBE28
/* 801DBDEC 001D7A4C 80 06 00 94 */ lwz r0, 0x94(r6)
/* 801DBDF0 001D7A50 38 63 00 01 */ addi r3, r3, 1
/* 801DBDF4 001D7A54 2C 00 00 00 */ cmpwi r0, 0
/* 801DBDF8 001D7A58 41 82 00 30 */ beq lbl_801DBE28
/* 801DBDFC 001D7A5C 80 06 00 B0 */ lwz r0, 0xb0(r6)
/* 801DBE00 001D7A60 38 63 00 01 */ addi r3, r3, 1
/* 801DBE04 001D7A64 2C 00 00 00 */ cmpwi r0, 0
/* 801DBE08 001D7A68 41 82 00 20 */ beq lbl_801DBE28
/* 801DBE0C 001D7A6C 80 06 00 CC */ lwz r0, 0xcc(r6)
/* 801DBE10 001D7A70 38 63 00 01 */ addi r3, r3, 1
/* 801DBE14 001D7A74 2C 00 00 00 */ cmpwi r0, 0
/* 801DBE18 001D7A78 41 82 00 10 */ beq lbl_801DBE28
/* 801DBE1C 001D7A7C 38 C6 00 E0 */ addi r6, r6, 0xe0
/* 801DBE20 001D7A80 38 63 00 01 */ addi r3, r3, 1
/* 801DBE24 001D7A84 42 00 FF 7C */ bdnz lbl_801DBDA0
lbl_801DBE28:
/* 801DBE28 001D7A88 1C 03 00 1C */ mulli r0, r3, 0x1c
/* 801DBE2C 001D7A8C 3C 60 80 49 */ lis r3, lbl_80491470@ha
/* 801DBE30 001D7A90 38 63 14 70 */ addi r3, r3, lbl_80491470@l
/* 801DBE34 001D7A94 7F E3 02 14 */ add r31, r3, r0
/* 801DBE38 001D7A98 80 1F 00 08 */ lwz r0, 8(r31)
/* 801DBE3C 001D7A9C 2C 00 00 00 */ cmpwi r0, 0
/* 801DBE40 001D7AA0 41 82 00 0C */ beq lbl_801DBE4C
/* 801DBE44 001D7AA4 38 60 00 00 */ li r3, 0
/* 801DBE48 001D7AA8 48 00 00 14 */ b lbl_801DBE5C
lbl_801DBE4C:
/* 801DBE4C 001D7AAC 7F E3 FB 78 */ mr r3, r31
/* 801DBE50 001D7AB0 7C E4 3B 78 */ mr r4, r7
/* 801DBE54 001D7AB4 4B FF FC F5 */ bl func_801DBB48
/* 801DBE58 001D7AB8 7F E3 FB 78 */ mr r3, r31
lbl_801DBE5C:
/* 801DBE5C 001D7ABC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801DBE60 001D7AC0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801DBE64 001D7AC4 7C 08 03 A6 */ mtlr r0
/* 801DBE68 001D7AC8 38 21 00 10 */ addi r1, r1, 0x10
/* 801DBE6C 001D7ACC 4E 80 00 20 */ blr
.global func_801DBE70
func_801DBE70:
/* 801DBE70 001D7AD0 38 A0 00 01 */ li r5, 1
/* 801DBE74 001D7AD4 38 6D A0 50 */ addi r3, r13, lbl_8063F310-_SDA_BASE_
/* 801DBE78 001D7AD8 38 80 00 04 */ li r4, 4
/* 801DBE7C 001D7ADC 38 00 00 00 */ li r0, 0
/* 801DBE80 001D7AE0 98 AD A0 50 */ stb r5, lbl_8063F310-_SDA_BASE_(r13)
/* 801DBE84 001D7AE4 B0 83 00 02 */ sth r4, 2(r3)
/* 801DBE88 001D7AE8 98 03 00 04 */ stb r0, 4(r3)
/* 801DBE8C 001D7AEC 4E 80 00 20 */ blr
|