summaryrefslogtreecommitdiff
path: root/asm/code_801DBE90_asm.s
blob: 683d1b169dab4d62cba22d0d2638b8e78943301f (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
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
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global func_801DCBC0
func_801DCBC0:
/* 801DCBC0 001D8820  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DCBC4 001D8824  7C 08 02 A6 */	mflr r0
/* 801DCBC8 001D8828  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DCBCC 001D882C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DCBD0 001D8830  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DCBD4 001D8834  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DCBD8 001D8838  7C 7D 1B 78 */	mr r29, r3
/* 801DCBDC 001D883C  93 81 00 10 */	stw r28, 0x10(r1)
/* 801DCBE0 001D8840  7C 9C 23 78 */	mr r28, r4
/* 801DCBE4 001D8844  4B FF F7 9D */	bl func_801DC380
/* 801DCBE8 001D8848  2C 03 00 00 */	cmpwi r3, 0
/* 801DCBEC 001D884C  40 82 00 0C */	bne lbl_801DCBF8
/* 801DCBF0 001D8850  38 60 00 00 */	li r3, 0
/* 801DCBF4 001D8854  48 00 00 98 */	b lbl_801DCC8C
lbl_801DCBF8:
/* 801DCBF8 001D8858  7F A3 EB 78 */	mr r3, r29
/* 801DCBFC 001D885C  4B FF F6 D5 */	bl func_801DC2D0
/* 801DCC00 001D8860  2C 03 00 00 */	cmpwi r3, 0
/* 801DCC04 001D8864  7C 7F 1B 78 */	mr r31, r3
/* 801DCC08 001D8868  40 82 00 0C */	bne lbl_801DCC14
/* 801DCC0C 001D886C  38 60 00 00 */	li r3, 0
/* 801DCC10 001D8870  48 00 00 7C */	b lbl_801DCC8C
lbl_801DCC14:
/* 801DCC14 001D8874  4B FF FB 4D */	bl func_801DC760
/* 801DCC18 001D8878  38 03 00 1F */	addi r0, r3, 0x1f
/* 801DCC1C 001D887C  54 1E 00 35 */	rlwinm. r30, r0, 0, 0, 0x1a
/* 801DCC20 001D8880  40 82 00 0C */	bne lbl_801DCC2C
/* 801DCC24 001D8884  38 60 00 00 */	li r3, 0
/* 801DCC28 001D8888  48 00 00 64 */	b lbl_801DCC8C
lbl_801DCC2C:
/* 801DCC2C 001D888C  7F C3 F3 78 */	mr r3, r30
/* 801DCC30 001D8890  4B FF E1 35 */	bl func_801DAD64
/* 801DCC34 001D8894  2C 03 00 00 */	cmpwi r3, 0
/* 801DCC38 001D8898  7C 7D 1B 78 */	mr r29, r3
/* 801DCC3C 001D889C  40 82 00 0C */	bne lbl_801DCC48
/* 801DCC40 001D88A0  38 60 00 00 */	li r3, 0
/* 801DCC44 001D88A4  48 00 00 48 */	b lbl_801DCC8C
lbl_801DCC48:
/* 801DCC48 001D88A8  7F E3 FB 78 */	mr r3, r31
/* 801DCC4C 001D88AC  7F A4 EB 78 */	mr r4, r29
/* 801DCC50 001D88B0  7F C5 F3 78 */	mr r5, r30
/* 801DCC54 001D88B4  38 C0 00 00 */	li r6, 0
/* 801DCC58 001D88B8  4B FF F7 A5 */	bl func_801DC3FC
/* 801DCC5C 001D88BC  7C 03 F0 40 */	cmplw r3, r30
/* 801DCC60 001D88C0  41 82 00 14 */	beq lbl_801DCC74
/* 801DCC64 001D88C4  7F A3 EB 78 */	mr r3, r29
/* 801DCC68 001D88C8  4B FF E2 3D */	bl func_801DAEA4
/* 801DCC6C 001D88CC  38 60 00 00 */	li r3, 0
/* 801DCC70 001D88D0  48 00 00 1C */	b lbl_801DCC8C
lbl_801DCC74:
/* 801DCC74 001D88D4  7F E3 FB 78 */	mr r3, r31
/* 801DCC78 001D88D8  4B FF FA 4D */	bl func_801DC6C4
/* 801DCC7C 001D88DC  2C 1C 00 00 */	cmpwi r28, 0
/* 801DCC80 001D88E0  41 82 00 08 */	beq lbl_801DCC88
/* 801DCC84 001D88E4  93 DC 00 00 */	stw r30, 0(r28)
lbl_801DCC88:
/* 801DCC88 001D88E8  7F A3 EB 78 */	mr r3, r29
lbl_801DCC8C:
/* 801DCC8C 001D88EC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DCC90 001D88F0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DCC94 001D88F4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DCC98 001D88F8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DCC9C 001D88FC  83 81 00 10 */	lwz r28, 0x10(r1)
/* 801DCCA0 001D8900  7C 08 03 A6 */	mtlr r0
/* 801DCCA4 001D8904  38 21 00 20 */	addi r1, r1, 0x20
/* 801DCCA8 001D8908  4E 80 00 20 */	blr

.global func_801DCCAC
func_801DCCAC:
/* 801DCCAC 001D890C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DCCB0 001D8910  7C 08 02 A6 */	mflr r0
/* 801DCCB4 001D8914  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DCCB8 001D8918  39 61 00 20 */	addi r11, r1, 0x20
/* 801DCCBC 001D891C  4B FE A4 6D */	bl _savegpr_27
/* 801DCCC0 001D8920  7C 7D 1B 78 */	mr r29, r3
/* 801DCCC4 001D8924  7C 9B 23 78 */	mr r27, r4
/* 801DCCC8 001D8928  7C BC 2B 78 */	mr r28, r5
/* 801DCCCC 001D892C  4B FF F6 B5 */	bl func_801DC380
/* 801DCCD0 001D8930  2C 03 00 00 */	cmpwi r3, 0
/* 801DCCD4 001D8934  40 82 00 0C */	bne lbl_801DCCE0
/* 801DCCD8 001D8938  38 60 00 00 */	li r3, 0
/* 801DCCDC 001D893C  48 00 00 A0 */	b lbl_801DCD7C
lbl_801DCCE0:
/* 801DCCE0 001D8940  7F A3 EB 78 */	mr r3, r29
/* 801DCCE4 001D8944  4B FF F5 ED */	bl func_801DC2D0
/* 801DCCE8 001D8948  2C 03 00 00 */	cmpwi r3, 0
/* 801DCCEC 001D894C  7C 7F 1B 78 */	mr r31, r3
/* 801DCCF0 001D8950  40 82 00 0C */	bne lbl_801DCCFC
/* 801DCCF4 001D8954  38 60 00 00 */	li r3, 0
/* 801DCCF8 001D8958  48 00 00 84 */	b lbl_801DCD7C
lbl_801DCCFC:
/* 801DCCFC 001D895C  4B FF FA 65 */	bl func_801DC760
/* 801DCD00 001D8960  38 03 00 1F */	addi r0, r3, 0x1f
/* 801DCD04 001D8964  54 1E 00 35 */	rlwinm. r30, r0, 0, 0, 0x1a
/* 801DCD08 001D8968  40 82 00 0C */	bne lbl_801DCD14
/* 801DCD0C 001D896C  38 60 00 00 */	li r3, 0
/* 801DCD10 001D8970  48 00 00 6C */	b lbl_801DCD7C
lbl_801DCD14:
/* 801DCD14 001D8974  7F 63 DB 78 */	mr r3, r27
/* 801DCD18 001D8978  7F C4 F3 78 */	mr r4, r30
/* 801DCD1C 001D897C  4B FF DF 79 */	bl func_801DAC94
/* 801DCD20 001D8980  2C 03 00 00 */	cmpwi r3, 0
/* 801DCD24 001D8984  7C 7D 1B 78 */	mr r29, r3
/* 801DCD28 001D8988  40 82 00 0C */	bne lbl_801DCD34
/* 801DCD2C 001D898C  38 60 00 00 */	li r3, 0
/* 801DCD30 001D8990  48 00 00 4C */	b lbl_801DCD7C
lbl_801DCD34:
/* 801DCD34 001D8994  7F E3 FB 78 */	mr r3, r31
/* 801DCD38 001D8998  7F A4 EB 78 */	mr r4, r29
/* 801DCD3C 001D899C  7F C5 F3 78 */	mr r5, r30
/* 801DCD40 001D89A0  38 C0 00 00 */	li r6, 0
/* 801DCD44 001D89A4  4B FF F6 B9 */	bl func_801DC3FC
/* 801DCD48 001D89A8  7C 03 F0 40 */	cmplw r3, r30
/* 801DCD4C 001D89AC  41 82 00 18 */	beq lbl_801DCD64
/* 801DCD50 001D89B0  7F 63 DB 78 */	mr r3, r27
/* 801DCD54 001D89B4  7F A4 EB 78 */	mr r4, r29
/* 801DCD58 001D89B8  4B FF DF F1 */	bl func_801DAD48
/* 801DCD5C 001D89BC  38 60 00 00 */	li r3, 0
/* 801DCD60 001D89C0  48 00 00 1C */	b lbl_801DCD7C
lbl_801DCD64:
/* 801DCD64 001D89C4  7F E3 FB 78 */	mr r3, r31
/* 801DCD68 001D89C8  4B FF F9 5D */	bl func_801DC6C4
/* 801DCD6C 001D89CC  2C 1C 00 00 */	cmpwi r28, 0
/* 801DCD70 001D89D0  41 82 00 08 */	beq lbl_801DCD78
/* 801DCD74 001D89D4  93 DC 00 00 */	stw r30, 0(r28)
lbl_801DCD78:
/* 801DCD78 001D89D8  7F A3 EB 78 */	mr r3, r29
lbl_801DCD7C:
/* 801DCD7C 001D89DC  39 61 00 20 */	addi r11, r1, 0x20
/* 801DCD80 001D89E0  4B FE A3 F5 */	bl _restgpr_27
/* 801DCD84 001D89E4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DCD88 001D89E8  7C 08 03 A6 */	mtlr r0
/* 801DCD8C 001D89EC  38 21 00 20 */	addi r1, r1, 0x20
/* 801DCD90 001D89F0  4E 80 00 20 */	blr

.global func_801DCD94
func_801DCD94:
/* 801DCD94 001D89F4  80 0D A0 78 */	lwz r0, lbl_8063F338-_SDA_BASE_(r13)
/* 801DCD98 001D89F8  7C 64 1B 78 */	mr r4, r3
/* 801DCD9C 001D89FC  2C 00 00 00 */	cmpwi r0, 0
/* 801DCDA0 001D8A00  41 82 00 10 */	beq lbl_801DCDB0
/* 801DCDA4 001D8A04  7C 03 03 78 */	mr r3, r0
/* 801DCDA8 001D8A08  38 A0 00 00 */	li r5, 0
/* 801DCDAC 001D8A0C  48 00 04 E8 */	b lbl_801DD294
lbl_801DCDB0:
/* 801DCDB0 001D8A10  38 60 00 00 */	li r3, 0
/* 801DCDB4 001D8A14  4E 80 00 20 */	blr

.global func_801DCDB8
func_801DCDB8:
/* 801DCDB8 001D8A18  90 6D A0 70 */	stw r3, lbl_8063F330-_SDA_BASE_(r13)
/* 801DCDBC 001D8A1C  90 8D A0 74 */	stw r4, lbl_8063F334-_SDA_BASE_(r13)
/* 801DCDC0 001D8A20  4E 80 00 20 */	blr

.global func_801DCDC4
func_801DCDC4:
/* 801DCDC4 001D8A24  80 0D A0 68 */	lwz r0, lbl_8063F328-_SDA_BASE_(r13)
/* 801DCDC8 001D8A28  2C 00 00 05 */	cmpwi r0, 5
/* 801DCDCC 001D8A2C  40 80 00 1C */	bge lbl_801DCDE8
/* 801DCDD0 001D8A30  2C 00 00 00 */	cmpwi r0, 0
/* 801DCDD4 001D8A34  41 82 00 5C */	beq lbl_801DCE30
/* 801DCDD8 001D8A38  41 80 00 58 */	blt lbl_801DCE30
/* 801DCDDC 001D8A3C  2C 00 00 03 */	cmpwi r0, 3
/* 801DCDE0 001D8A40  40 80 00 30 */	bge lbl_801DCE10
/* 801DCDE4 001D8A44  48 00 00 24 */	b lbl_801DCE08
lbl_801DCDE8:
/* 801DCDE8 001D8A48  2C 00 00 09 */	cmpwi r0, 9
/* 801DCDEC 001D8A4C  40 80 00 10 */	bge lbl_801DCDFC
/* 801DCDF0 001D8A50  2C 00 00 07 */	cmpwi r0, 7
/* 801DCDF4 001D8A54  40 80 00 2C */	bge lbl_801DCE20
/* 801DCDF8 001D8A58  48 00 00 20 */	b lbl_801DCE18
lbl_801DCDFC:
/* 801DCDFC 001D8A5C  2C 00 00 0B */	cmpwi r0, 0xb
/* 801DCE00 001D8A60  40 80 00 30 */	bge lbl_801DCE30
/* 801DCE04 001D8A64  48 00 00 24 */	b lbl_801DCE28
lbl_801DCE08:
/* 801DCE08 001D8A68  38 60 00 01 */	li r3, 1
/* 801DCE0C 001D8A6C  4E 80 00 20 */	blr
lbl_801DCE10:
/* 801DCE10 001D8A70  38 60 00 02 */	li r3, 2
/* 801DCE14 001D8A74  4E 80 00 20 */	blr
lbl_801DCE18:
/* 801DCE18 001D8A78  38 60 00 03 */	li r3, 3
/* 801DCE1C 001D8A7C  4E 80 00 20 */	blr
lbl_801DCE20:
/* 801DCE20 001D8A80  38 60 00 04 */	li r3, 4
/* 801DCE24 001D8A84  4E 80 00 20 */	blr
lbl_801DCE28:
/* 801DCE28 001D8A88  38 60 00 05 */	li r3, 5
/* 801DCE2C 001D8A8C  4E 80 00 20 */	blr
lbl_801DCE30:
/* 801DCE30 001D8A90  38 60 00 00 */	li r3, 0
/* 801DCE34 001D8A94  4E 80 00 20 */	blr

.global func_801DCE38
func_801DCE38:
/* 801DCE38 001D8A98  38 00 00 01 */	li r0, 1
/* 801DCE3C 001D8A9C  98 0D A0 5F */	stb r0, lbl_8063F31F-_SDA_BASE_(r13)
/* 801DCE40 001D8AA0  4E 80 00 20 */	blr

.global func_801DCE44
func_801DCE44:
/* 801DCE44 001D8AA4  88 6D A0 5F */	lbz r3, lbl_8063F31F-_SDA_BASE_(r13)
/* 801DCE48 001D8AA8  4E 80 00 20 */	blr

.global func_801DCE4C
func_801DCE4C:
/* 801DCE4C 001D8AAC  38 A0 00 01 */	li r5, 1
/* 801DCE50 001D8AB0  38 6D A0 58 */	addi r3, r13, lbl_8063F318-_SDA_BASE_
/* 801DCE54 001D8AB4  38 80 00 04 */	li r4, 4
/* 801DCE58 001D8AB8  38 00 00 00 */	li r0, 0
/* 801DCE5C 001D8ABC  98 AD A0 58 */	stb r5, lbl_8063F318-_SDA_BASE_(r13)
/* 801DCE60 001D8AC0  B0 83 00 02 */	sth r4, 2(r3)
/* 801DCE64 001D8AC4  98 03 00 04 */	stb r0, 4(r3)
/* 801DCE68 001D8AC8  4E 80 00 20 */	blr