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
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
lbl_8023B64C:
/* 8023B64C 002372AC 80 0D A3 D8 */ lwz r0, render_context_ptr-_SDA_BASE_(r13)
/* 8023B650 002372B0 2C 00 00 00 */ cmpwi r0, 0
/* 8023B654 002372B4 4D 82 00 20 */ beqlr
/* 8023B658 002372B8 3C 80 80 49 */ lis r4, lbl_804967A0@ha
/* 8023B65C 002372BC 88 AD A4 8A */ lbz r5, lbl_8063F74A-_SDA_BASE_(r13)
/* 8023B660 002372C0 38 C0 00 00 */ li r6, 0
/* 8023B664 002372C4 38 84 67 A0 */ addi r4, r4, lbl_804967A0@l
/* 8023B668 002372C8 48 00 00 34 */ b lbl_8023B69C
lbl_8023B66C:
/* 8023B66C 002372CC 54 C0 1D 78 */ rlwinm r0, r6, 3, 0x15, 0x1c
/* 8023B670 002372D0 7C E4 02 14 */ add r7, r4, r0
/* 8023B674 002372D4 7C 04 02 2E */ lhzx r0, r4, r0
/* 8023B678 002372D8 7C 00 18 40 */ cmplw r0, r3
/* 8023B67C 002372DC 41 81 00 1C */ bgt lbl_8023B698
/* 8023B680 002372E0 A0 07 00 02 */ lhz r0, 2(r7)
/* 8023B684 002372E4 7C 00 18 40 */ cmplw r0, r3
/* 8023B688 002372E8 41 80 00 10 */ blt lbl_8023B698
/* 8023B68C 002372EC 81 87 00 04 */ lwz r12, 4(r7)
/* 8023B690 002372F0 7D 89 03 A6 */ mtctr r12
/* 8023B694 002372F4 4E 80 04 20 */ bctr
lbl_8023B698:
/* 8023B698 002372F8 38 C6 00 01 */ addi r6, r6, 1
lbl_8023B69C:
/* 8023B69C 002372FC 54 C0 06 3E */ clrlwi r0, r6, 0x18
/* 8023B6A0 00237300 7C 00 28 40 */ cmplw r0, r5
/* 8023B6A4 00237304 41 80 FF C8 */ blt lbl_8023B66C
/* 8023B6A8 00237308 B0 6D A4 84 */ sth r3, lbl_8063F744-_SDA_BASE_(r13)
/* 8023B6AC 0023730C 4E 80 00 20 */ blr
.global func_8023B6B0
func_8023B6B0:
/* 8023B6B0 00237310 A0 0D A4 80 */ lhz r0, lbl_8063F740-_SDA_BASE_(r13)
/* 8023B6B4 00237314 B0 0D A4 84 */ sth r0, lbl_8063F744-_SDA_BASE_(r13)
/* 8023B6B8 00237318 4E 80 00 20 */ blr
.global func_8023B6BC
func_8023B6BC:
/* 8023B6BC 0023731C A0 6D A4 88 */ lhz r3, lbl_8063F748-_SDA_BASE_(r13)
/* 8023B6C0 00237320 38 00 00 01 */ li r0, 1
/* 8023B6C4 00237324 28 03 FF FF */ cmplwi r3, 0xffff
/* 8023B6C8 00237328 41 82 00 0C */ beq lbl_8023B6D4
/* 8023B6CC 0023732C 38 03 00 01 */ addi r0, r3, 1
/* 8023B6D0 00237330 54 00 04 3E */ clrlwi r0, r0, 0x10
lbl_8023B6D4:
/* 8023B6D4 00237334 A0 8D A4 7E */ lhz r4, lbl_8063F73E-_SDA_BASE_(r13)
/* 8023B6D8 00237338 A0 AD A4 86 */ lhz r5, lbl_8063F746-_SDA_BASE_(r13)
/* 8023B6DC 0023733C 38 64 08 00 */ addi r3, r4, 0x800
/* 8023B6E0 00237340 B0 0D A4 88 */ sth r0, lbl_8063F748-_SDA_BASE_(r13)
/* 8023B6E4 00237344 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 8023B6E8 00237348 7C 00 28 40 */ cmplw r0, r5
/* 8023B6EC 0023734C B0 8D A4 80 */ sth r4, lbl_8063F740-_SDA_BASE_(r13)
/* 8023B6F0 00237350 B0 6D A4 82 */ sth r3, lbl_8063F742-_SDA_BASE_(r13)
/* 8023B6F4 00237354 4D 80 00 20 */ bltlr
/* 8023B6F8 00237358 7C 05 00 50 */ subf r0, r5, r0
/* 8023B6FC 0023735C B0 0D A4 82 */ sth r0, lbl_8063F742-_SDA_BASE_(r13)
/* 8023B700 00237360 4E 80 00 20 */ blr
.global func_8023B704
func_8023B704:
/* 8023B704 00237364 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023B708 00237368 7C 08 02 A6 */ mflr r0
/* 8023B70C 0023736C 3C 80 00 01 */ lis r4, 0x0000E000@ha
/* 8023B710 00237370 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023B714 00237374 38 04 E0 00 */ addi r0, r4, 0x0000E000@l
/* 8023B718 00237378 38 80 00 01 */ li r4, 1
/* 8023B71C 0023737C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8023B720 00237380 3B E0 00 00 */ li r31, 0
/* 8023B724 00237384 B3 ED A4 84 */ sth r31, lbl_8063F744-_SDA_BASE_(r13)
/* 8023B728 00237388 B0 8D A4 7E */ sth r4, lbl_8063F73E-_SDA_BASE_(r13)
/* 8023B72C 0023738C B0 0D A4 86 */ sth r0, lbl_8063F746-_SDA_BASE_(r13)
/* 8023B730 00237390 B3 ED A4 88 */ sth r31, lbl_8063F748-_SDA_BASE_(r13)
/* 8023B734 00237394 4B FF FF 89 */ bl func_8023B6BC
/* 8023B738 00237398 3C 80 80 49 */ lis r4, lbl_804967A0@ha
/* 8023B73C 0023739C 3C 60 80 24 */ lis r3, lbl_8023B64C@ha
/* 8023B740 002373A0 38 84 67 A0 */ addi r4, r4, lbl_804967A0@l
/* 8023B744 002373A4 9B ED A4 8A */ stb r31, lbl_8063F74A-_SDA_BASE_(r13)
/* 8023B748 002373A8 38 63 B6 4C */ addi r3, r3, lbl_8023B64C@l
/* 8023B74C 002373AC 93 E4 00 04 */ stw r31, 4(r4)
/* 8023B750 002373B0 93 E4 00 0C */ stw r31, 0xc(r4)
/* 8023B754 002373B4 93 E4 00 14 */ stw r31, 0x14(r4)
/* 8023B758 002373B8 93 E4 00 1C */ stw r31, 0x1c(r4)
/* 8023B75C 002373BC 48 04 55 85 */ bl GXSetDrawSyncCallback
/* 8023B760 002373C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023B764 002373C4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8023B768 002373C8 7C 08 03 A6 */ mtlr r0
/* 8023B76C 002373CC 38 21 00 10 */ addi r1, r1, 0x10
/* 8023B770 002373D0 4E 80 00 20 */ blr
.global func_8023B774
func_8023B774:
/* 8023B774 002373D4 A0 0D A4 7E */ lhz r0, lbl_8063F73E-_SDA_BASE_(r13)
/* 8023B778 002373D8 7C 00 20 40 */ cmplw r0, r4
/* 8023B77C 002373DC 40 81 00 1C */ ble lbl_8023B798
/* 8023B780 002373E0 7C 03 20 40 */ cmplw r3, r4
/* 8023B784 002373E4 40 81 00 0C */ ble lbl_8023B790
/* 8023B788 002373E8 7C 03 00 40 */ cmplw r3, r0
/* 8023B78C 002373EC 40 81 00 24 */ ble lbl_8023B7B0
lbl_8023B790:
/* 8023B790 002373F0 38 60 00 01 */ li r3, 1
/* 8023B794 002373F4 4E 80 00 20 */ blr
lbl_8023B798:
/* 8023B798 002373F8 7C 03 00 40 */ cmplw r3, r0
/* 8023B79C 002373FC 40 81 00 14 */ ble lbl_8023B7B0
/* 8023B7A0 00237400 7C 03 20 40 */ cmplw r3, r4
/* 8023B7A4 00237404 41 81 00 0C */ bgt lbl_8023B7B0
/* 8023B7A8 00237408 38 60 00 01 */ li r3, 1
/* 8023B7AC 0023740C 4E 80 00 20 */ blr
lbl_8023B7B0:
/* 8023B7B0 00237410 38 60 00 00 */ li r3, 0
/* 8023B7B4 00237414 4E 80 00 20 */ blr
.global func_8023B7B8
func_8023B7B8:
/* 8023B7B8 00237418 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023B7BC 0023741C 7C 08 02 A6 */ mflr r0
/* 8023B7C0 00237420 54 65 84 3E */ srwi r5, r3, 0x10
/* 8023B7C4 00237424 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023B7C8 00237428 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8023B7CC 0023742C 54 7F 04 3E */ clrlwi r31, r3, 0x10
/* 8023B7D0 00237430 A0 8D A4 88 */ lhz r4, lbl_8063F748-_SDA_BASE_(r13)
/* 8023B7D4 00237434 7C 04 28 40 */ cmplw r4, r5
/* 8023B7D8 00237438 40 80 00 24 */ bge lbl_8023B7FC
/* 8023B7DC 0023743C 3C 60 00 01 */ lis r3, 0x0000FFFF@ha
/* 8023B7E0 00237440 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l
/* 8023B7E4 00237444 7C 05 00 50 */ subf r0, r5, r0
/* 8023B7E8 00237448 7C 00 22 14 */ add r0, r0, r4
/* 8023B7EC 0023744C 2C 00 00 01 */ cmpwi r0, 1
/* 8023B7F0 00237450 40 81 00 20 */ ble lbl_8023B810
/* 8023B7F4 00237454 38 60 00 01 */ li r3, 1
/* 8023B7F8 00237458 48 00 00 58 */ b lbl_8023B850
lbl_8023B7FC:
/* 8023B7FC 0023745C 7C 05 20 50 */ subf r0, r5, r4
/* 8023B800 00237460 2C 00 00 01 */ cmpwi r0, 1
/* 8023B804 00237464 40 81 00 0C */ ble lbl_8023B810
/* 8023B808 00237468 38 60 00 01 */ li r3, 1
/* 8023B80C 0023746C 48 00 00 44 */ b lbl_8023B850
lbl_8023B810:
/* 8023B810 00237470 A0 8D A4 84 */ lhz r4, lbl_8063F744-_SDA_BASE_(r13)
/* 8023B814 00237474 7F E3 FB 78 */ mr r3, r31
/* 8023B818 00237478 4B FF FF 5D */ bl func_8023B774
/* 8023B81C 0023747C 2C 03 00 00 */ cmpwi r3, 0
/* 8023B820 00237480 41 82 00 0C */ beq lbl_8023B82C
/* 8023B824 00237484 38 60 00 01 */ li r3, 1
/* 8023B828 00237488 48 00 00 28 */ b lbl_8023B850
lbl_8023B82C:
/* 8023B82C 0023748C 48 04 52 D5 */ bl GXReadDrawSync
/* 8023B830 00237490 A0 0D A4 86 */ lhz r0, lbl_8063F746-_SDA_BASE_(r13)
/* 8023B834 00237494 54 64 04 3E */ clrlwi r4, r3, 0x10
/* 8023B838 00237498 7C 04 00 40 */ cmplw r4, r0
/* 8023B83C 0023749C 41 80 00 0C */ blt lbl_8023B848
/* 8023B840 002374A0 38 60 00 00 */ li r3, 0
/* 8023B844 002374A4 48 00 00 0C */ b lbl_8023B850
lbl_8023B848:
/* 8023B848 002374A8 7F E3 FB 78 */ mr r3, r31
/* 8023B84C 002374AC 4B FF FF 29 */ bl func_8023B774
lbl_8023B850:
/* 8023B850 002374B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023B854 002374B4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8023B858 002374B8 7C 08 03 A6 */ mtlr r0
/* 8023B85C 002374BC 38 21 00 10 */ addi r1, r1, 0x10
/* 8023B860 002374C0 4E 80 00 20 */ blr
.global func_8023B864
func_8023B864:
/* 8023B864 002374C4 2C 04 00 00 */ cmpwi r4, 0
/* 8023B868 002374C8 41 82 00 10 */ beq lbl_8023B878
/* 8023B86C 002374CC 88 03 17 18 */ lbz r0, 0x1718(r3)
/* 8023B870 002374D0 2C 00 00 00 */ cmpwi r0, 0
/* 8023B874 002374D4 41 82 00 0C */ beq lbl_8023B880
lbl_8023B878:
/* 8023B878 002374D8 38 60 00 01 */ li r3, 1
/* 8023B87C 002374DC 4E 80 00 20 */ blr
lbl_8023B880:
/* 8023B880 002374E0 7C 83 23 78 */ mr r3, r4
/* 8023B884 002374E4 4B FF FF 34 */ b func_8023B7B8
/* 8023B888 002374E8 4E 80 00 20 */ blr
.global func_8023B88C
func_8023B88C:
/* 8023B88C 002374EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8023B890 002374F0 7C 08 02 A6 */ mflr r0
/* 8023B894 002374F4 2C 04 00 00 */ cmpwi r4, 0
/* 8023B898 002374F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8023B89C 002374FC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8023B8A0 00237500 7C 9F 23 78 */ mr r31, r4
/* 8023B8A4 00237504 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8023B8A8 00237508 7C 7E 1B 78 */ mr r30, r3
/* 8023B8AC 0023750C 41 82 00 84 */ beq lbl_8023B930
/* 8023B8B0 00237510 88 03 17 18 */ lbz r0, 0x1718(r3)
/* 8023B8B4 00237514 2C 00 00 00 */ cmpwi r0, 0
/* 8023B8B8 00237518 41 82 00 08 */ beq lbl_8023B8C0
/* 8023B8BC 0023751C 48 00 00 74 */ b lbl_8023B930
lbl_8023B8C0:
/* 8023B8C0 00237520 38 81 00 0C */ addi r4, r1, 0xc
/* 8023B8C4 00237524 4B FF 58 E9 */ bl func_802311AC
/* 8023B8C8 00237528 48 00 00 4C */ b lbl_8023B914
lbl_8023B8CC:
/* 8023B8CC 0023752C 7F C3 F3 78 */ mr r3, r30
/* 8023B8D0 00237530 38 81 00 0C */ addi r4, r1, 0xc
/* 8023B8D4 00237534 4B FF 58 E9 */ bl func_802311BC
/* 8023B8D8 00237538 88 1E 17 18 */ lbz r0, 0x1718(r30)
/* 8023B8DC 0023753C 2C 00 00 00 */ cmpwi r0, 0
/* 8023B8E0 00237540 40 82 00 44 */ bne lbl_8023B924
/* 8023B8E4 00237544 88 1E 17 19 */ lbz r0, 0x1719(r30)
/* 8023B8E8 00237548 2C 00 00 00 */ cmpwi r0, 0
/* 8023B8EC 0023754C 40 82 00 38 */ bne lbl_8023B924
/* 8023B8F0 00237550 38 61 00 08 */ addi r3, r1, 8
/* 8023B8F4 00237554 38 A1 00 09 */ addi r5, r1, 9
/* 8023B8F8 00237558 7C 64 1B 78 */ mr r4, r3
/* 8023B8FC 0023755C 7C 66 1B 78 */ mr r6, r3
/* 8023B900 00237560 7C 67 1B 78 */ mr r7, r3
/* 8023B904 00237564 48 04 37 45 */ bl GXGetGPStatus
/* 8023B908 00237568 88 01 00 09 */ lbz r0, 9(r1)
/* 8023B90C 0023756C 28 00 00 01 */ cmplwi r0, 1
/* 8023B910 00237570 41 82 00 14 */ beq lbl_8023B924
lbl_8023B914:
/* 8023B914 00237574 7F E3 FB 78 */ mr r3, r31
/* 8023B918 00237578 4B FF FE A1 */ bl func_8023B7B8
/* 8023B91C 0023757C 2C 03 00 00 */ cmpwi r3, 0
/* 8023B920 00237580 41 82 FF AC */ beq lbl_8023B8CC
lbl_8023B924:
/* 8023B924 00237584 7F C3 F3 78 */ mr r3, r30
/* 8023B928 00237588 38 81 00 0C */ addi r4, r1, 0xc
/* 8023B92C 0023758C 4B FF 59 31 */ bl func_8023125C
lbl_8023B930:
/* 8023B930 00237590 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8023B934 00237594 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8023B938 00237598 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8023B93C 0023759C 7C 08 03 A6 */ mtlr r0
/* 8023B940 002375A0 38 21 00 20 */ addi r1, r1, 0x20
/* 8023B944 002375A4 4E 80 00 20 */ blr
.global func_8023B948
func_8023B948:
/* 8023B948 002375A8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8023B94C 002375AC 7C 08 02 A6 */ mflr r0
/* 8023B950 002375B0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8023B954 002375B4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8023B958 002375B8 88 03 17 18 */ lbz r0, 0x1718(r3)
/* 8023B95C 002375BC 2C 00 00 00 */ cmpwi r0, 0
/* 8023B960 002375C0 41 82 00 0C */ beq lbl_8023B96C
/* 8023B964 002375C4 38 60 00 00 */ li r3, 0
/* 8023B968 002375C8 48 00 00 58 */ b lbl_8023B9C0
lbl_8023B96C:
/* 8023B96C 002375CC A0 6D A4 82 */ lhz r3, lbl_8063F742-_SDA_BASE_(r13)
/* 8023B970 002375D0 A3 ED A4 7E */ lhz r31, lbl_8063F73E-_SDA_BASE_(r13)
/* 8023B974 002375D4 7C 1F 18 40 */ cmplw r31, r3
/* 8023B978 002375D8 40 82 00 10 */ bne lbl_8023B988
/* 8023B97C 002375DC A0 0D A4 88 */ lhz r0, lbl_8063F748-_SDA_BASE_(r13)
/* 8023B980 002375E0 50 03 80 1E */ rlwimi r3, r0, 0x10, 0, 0xf
/* 8023B984 002375E4 48 00 00 3C */ b lbl_8023B9C0
lbl_8023B988:
/* 8023B988 002375E8 7F E3 FB 78 */ mr r3, r31
/* 8023B98C 002375EC 48 04 50 C1 */ bl GXSetDrawSync
/* 8023B990 002375F0 A0 6D A4 7E */ lhz r3, lbl_8063F73E-_SDA_BASE_(r13)
/* 8023B994 002375F4 A0 0D A4 86 */ lhz r0, lbl_8063F746-_SDA_BASE_(r13)
/* 8023B998 002375F8 38 83 00 01 */ addi r4, r3, 1
/* 8023B99C 002375FC 54 83 04 3E */ clrlwi r3, r4, 0x10
/* 8023B9A0 00237600 B0 8D A4 7E */ sth r4, lbl_8063F73E-_SDA_BASE_(r13)
/* 8023B9A4 00237604 7C 03 00 40 */ cmplw r3, r0
/* 8023B9A8 00237608 41 80 00 0C */ blt lbl_8023B9B4
/* 8023B9AC 0023760C 38 00 00 01 */ li r0, 1
/* 8023B9B0 00237610 B0 0D A4 7E */ sth r0, lbl_8063F73E-_SDA_BASE_(r13)
lbl_8023B9B4:
/* 8023B9B4 00237614 A0 0D A4 88 */ lhz r0, lbl_8063F748-_SDA_BASE_(r13)
/* 8023B9B8 00237618 7F E3 FB 78 */ mr r3, r31
/* 8023B9BC 0023761C 50 03 80 1E */ rlwimi r3, r0, 0x10, 0, 0xf
lbl_8023B9C0:
/* 8023B9C0 00237620 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8023B9C4 00237624 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8023B9C8 00237628 7C 08 03 A6 */ mtlr r0
/* 8023B9CC 0023762C 38 21 00 10 */ addi r1, r1, 0x10
/* 8023B9D0 00237630 4E 80 00 20 */ blr
.global func_8023B9D4
func_8023B9D4:
/* 8023B9D4 00237634 38 A0 00 01 */ li r5, 1
/* 8023B9D8 00237638 38 6D A4 78 */ addi r3, r13, lbl_8063F738-_SDA_BASE_
/* 8023B9DC 0023763C 38 80 00 04 */ li r4, 4
/* 8023B9E0 00237640 38 00 00 00 */ li r0, 0
/* 8023B9E4 00237644 98 AD A4 78 */ stb r5, lbl_8063F738-_SDA_BASE_(r13)
/* 8023B9E8 00237648 B0 83 00 02 */ sth r4, 2(r3)
/* 8023B9EC 0023764C 98 03 00 04 */ stb r0, 4(r3)
/* 8023B9F0 00237650 4E 80 00 20 */ blr
|