summaryrefslogtreecommitdiff
path: root/asm/nw4r/lyt/lyt_group.s
blob: ff9c0fe0b700a87e3aa8bf3c57d4f201b7e31df0 (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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
.include "macros.inc"

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

.global __ct__Q34nw4r3lyt5GroupFPCQ44nw4r3lyt3res5GroupPQ34nw4r3lyt4Pane
__ct__Q34nw4r3lyt5GroupFPCQ44nw4r3lyt3res5GroupPQ34nw4r3lyt4Pane:
/* 80385E20 00381A80  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80385E24 00381A84  7C 08 02 A6 */	mflr r0
/* 80385E28 00381A88  90 01 00 34 */	stw r0, 0x34(r1)
/* 80385E2C 00381A8C  39 61 00 30 */	addi r11, r1, 0x30
/* 80385E30 00381A90  4B E4 12 ED */	bl _savegpr_24
/* 80385E34 00381A94  3B C0 00 00 */	li r30, 0
/* 80385E38 00381A98  3C C0 80 45 */	lis r6, lbl_8044E2A0@ha
/* 80385E3C 00381A9C  93 C3 00 10 */	stw r30, 0x10(r3)
/* 80385E40 00381AA0  38 E3 00 10 */	addi r7, r3, 0x10
/* 80385E44 00381AA4  38 C6 E2 A0 */	addi r6, r6, lbl_8044E2A0@l
/* 80385E48 00381AA8  7C 99 23 78 */	mr r25, r4
/* 80385E4C 00381AAC  93 C3 00 14 */	stw r30, 0x14(r3)
/* 80385E50 00381AB0  7C BA 2B 78 */	mr r26, r5
/* 80385E54 00381AB4  7C 78 1B 78 */	mr r24, r3
/* 80385E58 00381AB8  38 A0 00 10 */	li r5, 0x10
/* 80385E5C 00381ABC  90 C3 00 00 */	stw r6, 0(r3)
/* 80385E60 00381AC0  38 84 00 08 */	addi r4, r4, 8
/* 80385E64 00381AC4  93 C3 00 04 */	stw r30, 4(r3)
/* 80385E68 00381AC8  93 C3 00 08 */	stw r30, 8(r3)
/* 80385E6C 00381ACC  93 C3 00 0C */	stw r30, 0xc(r3)
/* 80385E70 00381AD0  90 E3 00 10 */	stw r7, 0x10(r3)
/* 80385E74 00381AD4  90 E3 00 14 */	stw r7, 0x14(r3)
/* 80385E78 00381AD8  9B C3 00 29 */	stb r30, 0x29(r3)
/* 80385E7C 00381ADC  38 63 00 18 */	addi r3, r3, 0x18
/* 80385E80 00381AE0  4B E4 85 11 */	bl strncpy
/* 80385E84 00381AE4  9B D8 00 28 */	stb r30, 0x28(r24)
/* 80385E88 00381AE8  3B 99 00 1C */	addi r28, r25, 0x1c
/* 80385E8C 00381AEC  3B 60 00 00 */	li r27, 0
/* 80385E90 00381AF0  3B A0 00 00 */	li r29, 0
/* 80385E94 00381AF4  48 00 00 70 */	b lbl_80385F04
lbl_80385E98:
/* 80385E98 00381AF8  81 9A 00 00 */	lwz r12, 0(r26)
/* 80385E9C 00381AFC  7F 43 D3 78 */	mr r3, r26
/* 80385EA0 00381B00  7C 9C EA 14 */	add r4, r28, r29
/* 80385EA4 00381B04  38 A0 00 01 */	li r5, 1
/* 80385EA8 00381B08  81 8C 00 3C */	lwz r12, 0x3c(r12)
/* 80385EAC 00381B0C  7D 89 03 A6 */	mtctr r12
/* 80385EB0 00381B10  4E 80 04 21 */	bctrl 
/* 80385EB4 00381B14  2C 03 00 00 */	cmpwi r3, 0
/* 80385EB8 00381B18  7C 7F 1B 78 */	mr r31, r3
/* 80385EBC 00381B1C  41 82 00 40 */	beq lbl_80385EFC
/* 80385EC0 00381B20  80 6D B2 B0 */	lwz r3, lbl_80640570-_SDA_BASE_(r13)
/* 80385EC4 00381B24  38 80 00 0C */	li r4, 0xc
/* 80385EC8 00381B28  4B F1 18 5D */	bl MEMAllocFromAllocator
/* 80385ECC 00381B2C  2C 03 00 00 */	cmpwi r3, 0
/* 80385ED0 00381B30  41 82 00 2C */	beq lbl_80385EFC
/* 80385ED4 00381B34  7C 65 1B 78 */	mr r5, r3
/* 80385ED8 00381B38  41 82 00 0C */	beq lbl_80385EE4
/* 80385EDC 00381B3C  93 C3 00 00 */	stw r30, 0(r3)
/* 80385EE0 00381B40  93 C3 00 04 */	stw r30, 4(r3)
lbl_80385EE4:
/* 80385EE4 00381B44  93 E3 00 08 */	stw r31, 8(r3)
/* 80385EE8 00381B48  38 18 00 10 */	addi r0, r24, 0x10
/* 80385EEC 00381B4C  38 78 00 0C */	addi r3, r24, 0xc
/* 80385EF0 00381B50  38 81 00 08 */	addi r4, r1, 8
/* 80385EF4 00381B54  90 01 00 08 */	stw r0, 8(r1)
/* 80385EF8 00381B58  4B FD CD 51 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
lbl_80385EFC:
/* 80385EFC 00381B5C  3B BD 00 10 */	addi r29, r29, 0x10
/* 80385F00 00381B60  3B 7B 00 01 */	addi r27, r27, 1
lbl_80385F04:
/* 80385F04 00381B64  A0 19 00 18 */	lhz r0, 0x18(r25)
/* 80385F08 00381B68  7C 1B 00 00 */	cmpw r27, r0
/* 80385F0C 00381B6C  41 80 FF 8C */	blt lbl_80385E98
/* 80385F10 00381B70  39 61 00 30 */	addi r11, r1, 0x30
/* 80385F14 00381B74  7F 03 C3 78 */	mr r3, r24
/* 80385F18 00381B78  4B E4 12 51 */	bl _restgpr_24
/* 80385F1C 00381B7C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80385F20 00381B80  7C 08 03 A6 */	mtlr r0
/* 80385F24 00381B84  38 21 00 30 */	addi r1, r1, 0x30
/* 80385F28 00381B88  4E 80 00 20 */	blr 

.global __dt__Q34nw4r3lyt5GroupFv
__dt__Q34nw4r3lyt5GroupFv:
/* 80385F2C 00381B8C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80385F30 00381B90  7C 08 02 A6 */	mflr r0
/* 80385F34 00381B94  90 01 00 34 */	stw r0, 0x34(r1)
/* 80385F38 00381B98  39 61 00 30 */	addi r11, r1, 0x30
/* 80385F3C 00381B9C  4B E4 11 ED */	bl _savegpr_27
/* 80385F40 00381BA0  2C 03 00 00 */	cmpwi r3, 0
/* 80385F44 00381BA4  7C 7B 1B 78 */	mr r27, r3
/* 80385F48 00381BA8  7C 9C 23 78 */	mr r28, r4
/* 80385F4C 00381BAC  41 82 00 68 */	beq lbl_80385FB4
/* 80385F50 00381BB0  3C 80 80 45 */	lis r4, lbl_8044E2A0@ha
/* 80385F54 00381BB4  83 E3 00 10 */	lwz r31, 0x10(r3)
/* 80385F58 00381BB8  38 84 E2 A0 */	addi r4, r4, lbl_8044E2A0@l
/* 80385F5C 00381BBC  3B C3 00 10 */	addi r30, r3, 0x10
/* 80385F60 00381BC0  90 83 00 00 */	stw r4, 0(r3)
/* 80385F64 00381BC4  48 00 00 28 */	b lbl_80385F8C
lbl_80385F68:
/* 80385F68 00381BC8  7F FD FB 78 */	mr r29, r31
/* 80385F6C 00381BCC  83 FF 00 00 */	lwz r31, 0(r31)
/* 80385F70 00381BD0  38 7B 00 0C */	addi r3, r27, 0xc
/* 80385F74 00381BD4  38 81 00 08 */	addi r4, r1, 8
/* 80385F78 00381BD8  93 A1 00 08 */	stw r29, 8(r1)
/* 80385F7C 00381BDC  4B FD CC 41 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 80385F80 00381BE0  80 6D B2 B0 */	lwz r3, lbl_80640570-_SDA_BASE_(r13)
/* 80385F84 00381BE4  7F A4 EB 78 */	mr r4, r29
/* 80385F88 00381BE8  4B F1 17 AD */	bl MEMFreeToAllocator
lbl_80385F8C:
/* 80385F8C 00381BEC  7C 1F F0 40 */	cmplw r31, r30
/* 80385F90 00381BF0  40 82 FF D8 */	bne lbl_80385F68
/* 80385F94 00381BF4  34 7B 00 0C */	addic. r3, r27, 0xc
/* 80385F98 00381BF8  41 82 00 0C */	beq lbl_80385FA4
/* 80385F9C 00381BFC  38 80 00 00 */	li r4, 0
/* 80385FA0 00381C00  4B FD CB 99 */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_80385FA4:
/* 80385FA4 00381C04  2C 1C 00 00 */	cmpwi r28, 0
/* 80385FA8 00381C08  40 81 00 0C */	ble lbl_80385FB4
/* 80385FAC 00381C0C  7F 63 DB 78 */	mr r3, r27
/* 80385FB0 00381C10  4B E5 4B 09 */	bl __dl__FPv
lbl_80385FB4:
/* 80385FB4 00381C14  39 61 00 30 */	addi r11, r1, 0x30
/* 80385FB8 00381C18  7F 63 DB 78 */	mr r3, r27
/* 80385FBC 00381C1C  4B E4 11 B9 */	bl _restgpr_27
/* 80385FC0 00381C20  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80385FC4 00381C24  7C 08 03 A6 */	mtlr r0
/* 80385FC8 00381C28  38 21 00 30 */	addi r1, r1, 0x30
/* 80385FCC 00381C2C  4E 80 00 20 */	blr 

.global __dt__Q34nw4r3lyt14GroupContainerFv
__dt__Q34nw4r3lyt14GroupContainerFv:
/* 80385FD0 00381C30  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80385FD4 00381C34  7C 08 02 A6 */	mflr r0
/* 80385FD8 00381C38  90 01 00 34 */	stw r0, 0x34(r1)
/* 80385FDC 00381C3C  39 61 00 30 */	addi r11, r1, 0x30
/* 80385FE0 00381C40  4B E4 11 49 */	bl _savegpr_27
/* 80385FE4 00381C44  2C 03 00 00 */	cmpwi r3, 0
/* 80385FE8 00381C48  7C 7B 1B 78 */	mr r27, r3
/* 80385FEC 00381C4C  7C 9C 23 78 */	mr r28, r4
/* 80385FF0 00381C50  41 82 00 88 */	beq lbl_80386078
/* 80385FF4 00381C54  83 E3 00 04 */	lwz r31, 4(r3)
/* 80385FF8 00381C58  3B C3 00 04 */	addi r30, r3, 4
/* 80385FFC 00381C5C  48 00 00 50 */	b lbl_8038604C
lbl_80386000:
/* 80386000 00381C60  7F FD FB 78 */	mr r29, r31
/* 80386004 00381C64  83 FF 00 00 */	lwz r31, 0(r31)
/* 80386008 00381C68  7F 63 DB 78 */	mr r3, r27
/* 8038600C 00381C6C  38 81 00 08 */	addi r4, r1, 8
/* 80386010 00381C70  93 A1 00 08 */	stw r29, 8(r1)
/* 80386014 00381C74  4B FD CB A9 */	bl Erase__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8Iterator
/* 80386018 00381C78  88 1D 00 25 */	lbz r0, 0x25(r29)
/* 8038601C 00381C7C  2C 00 00 00 */	cmpwi r0, 0
/* 80386020 00381C80  40 82 00 2C */	bne lbl_8038604C
/* 80386024 00381C84  3B BD FF FC */	addi r29, r29, -4
/* 80386028 00381C88  38 80 FF FF */	li r4, -1
/* 8038602C 00381C8C  81 9D 00 00 */	lwz r12, 0(r29)
/* 80386030 00381C90  7F A3 EB 78 */	mr r3, r29
/* 80386034 00381C94  81 8C 00 08 */	lwz r12, 8(r12)
/* 80386038 00381C98  7D 89 03 A6 */	mtctr r12
/* 8038603C 00381C9C  4E 80 04 21 */	bctrl 
/* 80386040 00381CA0  80 6D B2 B0 */	lwz r3, lbl_80640570-_SDA_BASE_(r13)
/* 80386044 00381CA4  7F A4 EB 78 */	mr r4, r29
/* 80386048 00381CA8  4B F1 16 ED */	bl MEMFreeToAllocator
lbl_8038604C:
/* 8038604C 00381CAC  7C 1F F0 40 */	cmplw r31, r30
/* 80386050 00381CB0  40 82 FF B0 */	bne lbl_80386000
/* 80386054 00381CB4  2C 1B 00 00 */	cmpwi r27, 0
/* 80386058 00381CB8  41 82 00 10 */	beq lbl_80386068
/* 8038605C 00381CBC  7F 63 DB 78 */	mr r3, r27
/* 80386060 00381CC0  38 80 00 00 */	li r4, 0
/* 80386064 00381CC4  4B FD CA D5 */	bl __dt__Q44nw4r2ut6detail12LinkListImplFv
lbl_80386068:
/* 80386068 00381CC8  2C 1C 00 00 */	cmpwi r28, 0
/* 8038606C 00381CCC  40 81 00 0C */	ble lbl_80386078
/* 80386070 00381CD0  7F 63 DB 78 */	mr r3, r27
/* 80386074 00381CD4  4B E5 4A 45 */	bl __dl__FPv
lbl_80386078:
/* 80386078 00381CD8  39 61 00 30 */	addi r11, r1, 0x30
/* 8038607C 00381CDC  7F 63 DB 78 */	mr r3, r27
/* 80386080 00381CE0  4B E4 10 F5 */	bl _restgpr_27
/* 80386084 00381CE4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80386088 00381CE8  7C 08 03 A6 */	mtlr r0
/* 8038608C 00381CEC  38 21 00 30 */	addi r1, r1, 0x30
/* 80386090 00381CF0  4E 80 00 20 */	blr 

.global AppendGroup__Q34nw4r3lyt14GroupContainerFPQ34nw4r3lyt5Group
AppendGroup__Q34nw4r3lyt14GroupContainerFPQ34nw4r3lyt5Group:
/* 80386094 00381CF4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80386098 00381CF8  7C 08 02 A6 */	mflr r0
/* 8038609C 00381CFC  7C 85 23 78 */	mr r5, r4
/* 803860A0 00381D00  90 01 00 14 */	stw r0, 0x14(r1)
/* 803860A4 00381D04  38 03 00 04 */	addi r0, r3, 4
/* 803860A8 00381D08  38 81 00 08 */	addi r4, r1, 8
/* 803860AC 00381D0C  38 A5 00 04 */	addi r5, r5, 4
/* 803860B0 00381D10  90 01 00 08 */	stw r0, 8(r1)
/* 803860B4 00381D14  4B FD CB 95 */	bl Insert__Q44nw4r2ut6detail12LinkListImplFQ54nw4r2ut6detail12LinkListImpl8IteratorPQ34nw4r2ut12LinkListNode
/* 803860B8 00381D18  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803860BC 00381D1C  7C 08 03 A6 */	mtlr r0
/* 803860C0 00381D20  38 21 00 10 */	addi r1, r1, 0x10
/* 803860C4 00381D24  4E 80 00 20 */	blr 

.global FindGroupByName__Q34nw4r3lyt14GroupContainerFPCc
FindGroupByName__Q34nw4r3lyt14GroupContainerFPCc:
/* 803860C8 00381D28  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803860CC 00381D2C  7C 08 02 A6 */	mflr r0
/* 803860D0 00381D30  90 01 00 24 */	stw r0, 0x24(r1)
/* 803860D4 00381D34  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 803860D8 00381D38  93 C1 00 18 */	stw r30, 0x18(r1)
/* 803860DC 00381D3C  3B C3 00 04 */	addi r30, r3, 4
/* 803860E0 00381D40  93 A1 00 14 */	stw r29, 0x14(r1)
/* 803860E4 00381D44  93 81 00 10 */	stw r28, 0x10(r1)
/* 803860E8 00381D48  7C 9C 23 78 */	mr r28, r4
/* 803860EC 00381D4C  83 E3 00 04 */	lwz r31, 4(r3)
/* 803860F0 00381D50  48 00 00 28 */	b lbl_80386118
lbl_803860F4:
/* 803860F4 00381D54  3B BF FF FC */	addi r29, r31, -4
/* 803860F8 00381D58  7F 84 E3 78 */	mr r4, r28
/* 803860FC 00381D5C  38 7D 00 18 */	addi r3, r29, 0x18
/* 80386100 00381D60  4B E4 83 4D */	bl strcmp
/* 80386104 00381D64  2C 03 00 00 */	cmpwi r3, 0
/* 80386108 00381D68  40 82 00 0C */	bne lbl_80386114
/* 8038610C 00381D6C  7F A3 EB 78 */	mr r3, r29
/* 80386110 00381D70  48 00 00 14 */	b lbl_80386124
lbl_80386114:
/* 80386114 00381D74  83 FF 00 00 */	lwz r31, 0(r31)
lbl_80386118:
/* 80386118 00381D78  7C 1F F0 40 */	cmplw r31, r30
/* 8038611C 00381D7C  40 82 FF D8 */	bne lbl_803860F4
/* 80386120 00381D80  38 60 00 00 */	li r3, 0
lbl_80386124:
/* 80386124 00381D84  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80386128 00381D88  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8038612C 00381D8C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80386130 00381D90  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80386134 00381D94  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80386138 00381D98  7C 08 03 A6 */	mtlr r0
/* 8038613C 00381D9C  38 21 00 20 */	addi r1, r1, 0x20
/* 80386140 00381DA0  4E 80 00 20 */	blr