summaryrefslogtreecommitdiff
path: root/asm/code_801E0810.s
blob: 82d275fa0ec8fad2c48efa08e068c5129b93f318 (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
.include "macros.inc"

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

.global func_801E0810
func_801E0810:
/* 801E0810 001DC470  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801E0814 001DC474  7C 08 02 A6 */	mflr r0
/* 801E0818 001DC478  90 01 00 24 */	stw r0, 0x24(r1)
/* 801E081C 001DC47C  39 61 00 20 */	addi r11, r1, 0x20
/* 801E0820 001DC480  4B FE 69 09 */	bl _savegpr_27
/* 801E0824 001DC484  80 0D A1 50 */	lwz r0, lbl_8063F410-_SDA_BASE_(r13)
/* 801E0828 001DC488  7C 7F 1B 78 */	mr r31, r3
/* 801E082C 001DC48C  7C 9B 23 78 */	mr r27, r4
/* 801E0830 001DC490  7C BC 2B 78 */	mr r28, r5
/* 801E0834 001DC494  2C 00 00 00 */	cmpwi r0, 0
/* 801E0838 001DC498  7C DE 33 78 */	mr r30, r6
/* 801E083C 001DC49C  40 82 00 0C */	bne lbl_801E0848
/* 801E0840 001DC4A0  38 60 00 00 */	li r3, 0
/* 801E0844 001DC4A4  48 00 00 A8 */	b lbl_801E08EC
lbl_801E0848:
/* 801E0848 001DC4A8  7C 03 03 78 */	mr r3, r0
/* 801E084C 001DC4AC  48 01 AF C1 */	bl func_801FB80C
/* 801E0850 001DC4B0  2C 03 00 00 */	cmpwi r3, 0
/* 801E0854 001DC4B4  7C 7D 1B 78 */	mr r29, r3
/* 801E0858 001DC4B8  40 82 00 0C */	bne lbl_801E0864
/* 801E085C 001DC4BC  38 60 00 00 */	li r3, 0
/* 801E0860 001DC4C0  48 00 00 8C */	b lbl_801E08EC
lbl_801E0864:
/* 801E0864 001DC4C4  38 00 00 01 */	li r0, 1
/* 801E0868 001DC4C8  2C 1E 00 00 */	cmpwi r30, 0
/* 801E086C 001DC4CC  98 03 00 01 */	stb r0, 1(r3)
/* 801E0870 001DC4D0  9B 83 00 02 */	stb r28, 2(r3)
/* 801E0874 001DC4D4  9B C3 00 03 */	stb r30, 3(r3)
/* 801E0878 001DC4D8  93 63 00 04 */	stw r27, 4(r3)
/* 801E087C 001DC4DC  41 82 00 24 */	beq lbl_801E08A0
/* 801E0880 001DC4E0  80 6D A1 50 */	lwz r3, lbl_8063F410-_SDA_BASE_(r13)
/* 801E0884 001DC4E4  83 C3 00 10 */	lwz r30, 0x10(r3)
/* 801E0888 001DC4E8  57 C3 86 3E */	rlwinm r3, r30, 0x10, 0x18, 0x1f
/* 801E088C 001DC4EC  48 05 A7 CD */	bl func_8023B058
/* 801E0890 001DC4F0  2C 03 00 00 */	cmpwi r3, 0
/* 801E0894 001DC4F4  41 82 00 0C */	beq lbl_801E08A0
/* 801E0898 001DC4F8  7F C4 F3 78 */	mr r4, r30
/* 801E089C 001DC4FC  48 05 AB 1D */	bl func_8023B3B8
lbl_801E08A0:
/* 801E08A0 001DC500  88 1D 00 01 */	lbz r0, 1(r29)
/* 801E08A4 001DC504  80 6D A1 50 */	lwz r3, lbl_8063F410-_SDA_BASE_(r13)
/* 801E08A8 001DC508  2C 00 00 00 */	cmpwi r0, 0
/* 801E08AC 001DC50C  41 82 00 18 */	beq lbl_801E08C4
/* 801E08B0 001DC510  88 1D 00 00 */	lbz r0, 0(r29)
/* 801E08B4 001DC514  80 63 03 F0 */	lwz r3, 0x3f0(r3)
/* 801E08B8 001DC518  54 00 10 3A */	slwi r0, r0, 2
/* 801E08BC 001DC51C  7C 83 02 14 */	add r4, r3, r0
/* 801E08C0 001DC520  48 00 00 08 */	b lbl_801E08C8
lbl_801E08C4:
/* 801E08C4 001DC524  38 80 00 00 */	li r4, 0
lbl_801E08C8:
/* 801E08C8 001DC528  88 1F 00 00 */	lbz r0, 0(r31)
/* 801E08CC 001DC52C  7F A3 EB 78 */	mr r3, r29
/* 801E08D0 001DC530  98 04 00 00 */	stb r0, 0(r4)
/* 801E08D4 001DC534  88 1F 00 01 */	lbz r0, 1(r31)
/* 801E08D8 001DC538  98 04 00 01 */	stb r0, 1(r4)
/* 801E08DC 001DC53C  88 1F 00 02 */	lbz r0, 2(r31)
/* 801E08E0 001DC540  98 04 00 02 */	stb r0, 2(r4)
/* 801E08E4 001DC544  88 1F 00 03 */	lbz r0, 3(r31)
/* 801E08E8 001DC548  98 04 00 03 */	stb r0, 3(r4)
lbl_801E08EC:
/* 801E08EC 001DC54C  39 61 00 20 */	addi r11, r1, 0x20
/* 801E08F0 001DC550  4B FE 68 85 */	bl _restgpr_27
/* 801E08F4 001DC554  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801E08F8 001DC558  7C 08 03 A6 */	mtlr r0
/* 801E08FC 001DC55C  38 21 00 20 */	addi r1, r1, 0x20
/* 801E0900 001DC560  4E 80 00 20 */	blr

.global func_801E0904
func_801E0904:
/* 801E0904 001DC564  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801E0908 001DC568  7C 08 02 A6 */	mflr r0
/* 801E090C 001DC56C  90 01 00 14 */	stw r0, 0x14(r1)
/* 801E0910 001DC570  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801E0914 001DC574  93 C1 00 08 */	stw r30, 8(r1)
/* 801E0918 001DC578  7C 7E 1B 78 */	mr r30, r3
/* 801E091C 001DC57C  88 03 00 01 */	lbz r0, 1(r3)
/* 801E0920 001DC580  2C 00 00 00 */	cmpwi r0, 0
/* 801E0924 001DC584  41 82 00 3C */	beq lbl_801E0960
/* 801E0928 001DC588  88 03 00 03 */	lbz r0, 3(r3)
/* 801E092C 001DC58C  2C 00 00 00 */	cmpwi r0, 0
/* 801E0930 001DC590  41 82 00 24 */	beq lbl_801E0954
/* 801E0934 001DC594  80 6D A1 50 */	lwz r3, lbl_8063F410-_SDA_BASE_(r13)
/* 801E0938 001DC598  83 E3 00 10 */	lwz r31, 0x10(r3)
/* 801E093C 001DC59C  57 E3 86 3E */	rlwinm r3, r31, 0x10, 0x18, 0x1f
/* 801E0940 001DC5A0  48 05 A7 19 */	bl func_8023B058
/* 801E0944 001DC5A4  2C 03 00 00 */	cmpwi r3, 0
/* 801E0948 001DC5A8  41 82 00 0C */	beq lbl_801E0954
/* 801E094C 001DC5AC  7F E4 FB 78 */	mr r4, r31
/* 801E0950 001DC5B0  48 05 AA D1 */	bl func_8023B420
lbl_801E0954:
/* 801E0954 001DC5B4  38 00 00 00 */	li r0, 0
/* 801E0958 001DC5B8  98 1E 00 01 */	stb r0, 1(r30)
/* 801E095C 001DC5BC  90 1E 00 04 */	stw r0, 4(r30)
lbl_801E0960:
/* 801E0960 001DC5C0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801E0964 001DC5C4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801E0968 001DC5C8  83 C1 00 08 */	lwz r30, 8(r1)
/* 801E096C 001DC5CC  7C 08 03 A6 */	mtlr r0
/* 801E0970 001DC5D0  38 21 00 10 */	addi r1, r1, 0x10
/* 801E0974 001DC5D4  4E 80 00 20 */	blr

.global func_801E0978
func_801E0978:
/* 801E0978 001DC5D8  88 03 00 01 */	lbz r0, 1(r3)
/* 801E097C 001DC5DC  2C 00 00 00 */	cmpwi r0, 0
/* 801E0980 001DC5E0  41 82 00 48 */	beq lbl_801E09C8
/* 801E0984 001DC5E4  80 AD A1 50 */	lwz r5, lbl_8063F410-_SDA_BASE_(r13)
/* 801E0988 001DC5E8  41 82 00 18 */	beq lbl_801E09A0
/* 801E098C 001DC5EC  88 03 00 00 */	lbz r0, 0(r3)
/* 801E0990 001DC5F0  80 65 03 F0 */	lwz r3, 0x3f0(r5)
/* 801E0994 001DC5F4  54 00 10 3A */	slwi r0, r0, 2
/* 801E0998 001DC5F8  7C 63 02 14 */	add r3, r3, r0
/* 801E099C 001DC5FC  48 00 00 08 */	b lbl_801E09A4
lbl_801E09A0:
/* 801E09A0 001DC600  38 60 00 00 */	li r3, 0
lbl_801E09A4:
/* 801E09A4 001DC604  88 03 00 00 */	lbz r0, 0(r3)
/* 801E09A8 001DC608  98 04 00 00 */	stb r0, 0(r4)
/* 801E09AC 001DC60C  88 03 00 01 */	lbz r0, 1(r3)
/* 801E09B0 001DC610  98 04 00 01 */	stb r0, 1(r4)
/* 801E09B4 001DC614  88 03 00 02 */	lbz r0, 2(r3)
/* 801E09B8 001DC618  98 04 00 02 */	stb r0, 2(r4)
/* 801E09BC 001DC61C  88 03 00 03 */	lbz r0, 3(r3)
/* 801E09C0 001DC620  98 04 00 03 */	stb r0, 3(r4)
/* 801E09C4 001DC624  4E 80 00 20 */	blr
lbl_801E09C8:
/* 801E09C8 001DC628  7C 83 23 78 */	mr r3, r4
/* 801E09CC 001DC62C  38 80 00 00 */	li r4, 0
/* 801E09D0 001DC630  38 A0 00 04 */	li r5, 4
/* 801E09D4 001DC634  4B E2 37 30 */	b memset
/* 801E09D8 001DC638  4E 80 00 20 */	blr

.global func_801E09DC
func_801E09DC:
/* 801E09DC 001DC63C  88 03 00 01 */	lbz r0, 1(r3)
/* 801E09E0 001DC640  2C 00 00 00 */	cmpwi r0, 0
/* 801E09E4 001DC644  4D 82 00 20 */	beqlr
/* 801E09E8 001DC648  80 AD A1 50 */	lwz r5, lbl_8063F410-_SDA_BASE_(r13)
/* 801E09EC 001DC64C  41 82 00 18 */	beq lbl_801E0A04
/* 801E09F0 001DC650  88 03 00 00 */	lbz r0, 0(r3)
/* 801E09F4 001DC654  80 65 03 F0 */	lwz r3, 0x3f0(r5)
/* 801E09F8 001DC658  54 00 10 3A */	slwi r0, r0, 2
/* 801E09FC 001DC65C  7C 63 02 14 */	add r3, r3, r0
/* 801E0A00 001DC660  48 00 00 08 */	b lbl_801E0A08
lbl_801E0A04:
/* 801E0A04 001DC664  38 60 00 00 */	li r3, 0
lbl_801E0A08:
/* 801E0A08 001DC668  88 04 00 00 */	lbz r0, 0(r4)
/* 801E0A0C 001DC66C  98 03 00 00 */	stb r0, 0(r3)
/* 801E0A10 001DC670  88 04 00 01 */	lbz r0, 1(r4)
/* 801E0A14 001DC674  98 03 00 01 */	stb r0, 1(r3)
/* 801E0A18 001DC678  88 04 00 02 */	lbz r0, 2(r4)
/* 801E0A1C 001DC67C  98 03 00 02 */	stb r0, 2(r3)
/* 801E0A20 001DC680  88 04 00 03 */	lbz r0, 3(r4)
/* 801E0A24 001DC684  38 80 00 04 */	li r4, 4
/* 801E0A28 001DC688  98 03 00 03 */	stb r0, 3(r3)
/* 801E0A2C 001DC68C  48 08 9C 28 */	b DCFlushRange
/* 801E0A30 001DC690  4E 80 00 20 */	blr

.global func_801E0A34
func_801E0A34:
/* 801E0A34 001DC694  38 A0 00 01 */	li r5, 1
/* 801E0A38 001DC698  38 6D A0 B0 */	addi r3, r13, lbl_8063F370-_SDA_BASE_
/* 801E0A3C 001DC69C  38 80 00 04 */	li r4, 4
/* 801E0A40 001DC6A0  38 00 00 00 */	li r0, 0
/* 801E0A44 001DC6A4  98 AD A0 B0 */	stb r5, lbl_8063F370-_SDA_BASE_(r13)
/* 801E0A48 001DC6A8  B0 83 00 02 */	sth r4, 2(r3)
/* 801E0A4C 001DC6AC  98 03 00 04 */	stb r0, 4(r3)
/* 801E0A50 001DC6B0  4E 80 00 20 */	blr