summaryrefslogtreecommitdiff
path: root/arm9/asm/unk_020254B8.s
blob: 65b3ddb11ce56ec20aba1b71be38d8cb31f803be (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
236
237
238
239
240
241
242
243
244
245
246
	.include "asm/macros.inc"
    .include "global.inc"

	.text

	thumb_func_start FUN_020254B8
FUN_020254B8: ; 0x020254B8
	mov r0, #0x22
	lsl r0, r0, #0x6
	bx lr
	.balign 4

	thumb_func_start FUN_020254C0
FUN_020254C0: ; 0x020254C0
	ldr r3, _020254C8 ; =FUN_02022610
	mov r1, #0x9
	bx r3
	nop
_020254C8: .word FUN_02022610

	thumb_func_start FUN_020254CC
FUN_020254CC: ; 0x020254CC
	push {r3-r7, lr}
	mov r4, #0x0
	ldr r6, _020254EC ; =0x0000FFFF
	add r5, r0, #0x0
	add r7, r4, #0x0
_020254D6:
	add r0, r5, #0x0
	add r1, r7, #0x0
	mov r2, #0x88
	bl memset
	strh r6, [r5, #0x0]
	add r4, r4, #0x1
	add r5, #0x88
	cmp r4, #0x10
	blt _020254D6
	pop {r3-r7, pc}
	.balign 4
_020254EC: .word 0x0000FFFF

	thumb_func_start FUN_020254F0
FUN_020254F0: ; 0x020254F0
	mov r2, #0x88
	mul r2, r1
	add r0, r0, r2
	bx lr

	thumb_func_start FUN_020254F8
FUN_020254F8: ; 0x020254F8
	add r0, r0, r1
	add r0, #0x68
	ldrb r0, [r0, #0x0]
	bx lr

	thumb_func_start FUN_02025500
FUN_02025500: ; 0x02025500
	push {r3-r5, lr}
	add r5, r0, #0x0
	add r4, r1, #0x0
	bl StringNotEqual
	cmp r0, #0x0
	bne _0202551A
	ldr r1, [r5, #0x10]
	ldr r0, [r4, #0x10]
	cmp r1, r0
	bne _0202551A
	mov r0, #0x1
	pop {r3-r5, pc}
_0202551A:
	mov r0, #0x0
	pop {r3-r5, pc}
	.balign 4

	thumb_func_start FUN_02025520
FUN_02025520: ; 0x02025520
	push {r4-r7, lr}
	sub sp, #0x2c
	str r1, [sp, #0x4]
	mov r1, #0x22
	str r0, [sp, #0x0]
	add r0, r3, #0x0
	lsl r1, r1, #0x6
	str r2, [sp, #0x8]
	bl AllocFromHeap
	str r0, [sp, #0x10]
	bl FUN_020254CC
	mov r0, #0x0
	str r0, [sp, #0x14]
	ldr r0, [sp, #0x8]
	cmp r0, #0x0
	ble _02025578
	ldr r7, [sp, #0x4]
	add r6, sp, #0x18
_02025548:
	mov r0, #0x0
	mvn r0, r0
	ldr r5, [sp, #0x0]
	str r0, [r6, #0x0]
	mov r4, #0x0
_02025552:
	add r0, r5, #0x0
	add r1, r7, #0x0
	bl FUN_02025500
	cmp r0, #0x0
	beq _02025560
	str r4, [r6, #0x0]
_02025560:
	add r4, r4, #0x1
	add r5, #0x88
	cmp r4, #0x10
	blt _02025552
	ldr r0, [sp, #0x14]
	add r6, r6, #0x4
	add r1, r0, #0x1
	ldr r0, [sp, #0x8]
	add r7, #0x88
	str r1, [sp, #0x14]
	cmp r1, r0
	blt _02025548
_02025578:
	ldr r0, [sp, #0x8]
	mov r4, #0x0
	str r4, [sp, #0xc]
	cmp r0, #0x0
	ble _020255BE
	ldr r5, [sp, #0x10]
	add r6, sp, #0x18
_02025586:
	ldr r3, [sp, #0x4]
	add r7, r5, #0x0
	mov r2, #0x11
_0202558C:
	ldmia r3!, {r0-r1}
	stmia r7!, {r0-r1}
	sub r2, r2, #0x1
	bne _0202558C
	ldr r1, [r6, #0x0]
	cmp r1, #0x0
	blt _020255A6
	add r2, r1, #0x0
	mov r0, #0x88
	mul r2, r0
	ldr r1, _02025610 ; =0x0000FFFF
	ldr r0, [sp, #0x0]
	strh r1, [r0, r2]
_020255A6:
	ldr r0, [sp, #0x4]
	add r5, #0x88
	add r0, #0x88
	str r0, [sp, #0x4]
	ldr r0, [sp, #0xc]
	add r4, r4, #0x1
	add r1, r0, #0x1
	ldr r0, [sp, #0x8]
	add r6, r6, #0x4
	str r1, [sp, #0xc]
	cmp r1, r0
	blt _02025586
_020255BE:
	mov r0, #0x0
	mov r12, r0
	mov r0, #0x88
	add r1, r4, #0x0
	mul r1, r0
	ldr r0, [sp, #0x10]
	ldr r3, [sp, #0x0]
	add r5, r0, r1
_020255CE:
	ldrh r1, [r3, #0x0]
	ldr r0, _02025610 ; =0x0000FFFF
	cmp r1, r0
	beq _020255EC
	add r6, r3, #0x0
	add r7, r5, #0x0
	mov r2, #0x11
_020255DC:
	ldmia r6!, {r0-r1}
	stmia r7!, {r0-r1}
	sub r2, r2, #0x1
	bne _020255DC
	add r4, r4, #0x1
	add r5, #0x88
	cmp r4, #0x10
	bge _020255F8
_020255EC:
	mov r0, r12
	add r0, r0, #0x1
	add r3, #0x88
	mov r12, r0
	cmp r0, #0x10
	blt _020255CE
_020255F8:
	mov r2, #0x22
	ldr r0, [sp, #0x0]
	ldr r1, [sp, #0x10]
	lsl r2, r2, #0x6
	bl memcpy
	ldr r0, [sp, #0x10]
	bl FreeToHeap
	add sp, #0x2c
	pop {r4-r7, pc}
	nop
_02025610: .word 0x0000FFFF

	thumb_func_start FUN_02025614
FUN_02025614: ; 0x02025614
	push {r3-r6}
	mov r3, #0x0
	add r4, r0, #0x0
_0202561A:
	ldr r2, [r4, #0x10]
	cmp r1, r2
	bne _02025626
	mov r0, #0x1
	pop {r3-r6}
	bx lr
_02025626:
	add r3, r3, #0x1
	add r4, #0x88
	cmp r3, #0x10
	blt _0202561A
	mov r6, #0x0
	add r3, r6, #0x0
_02025632:
	add r4, r3, #0x0
	add r5, r0, #0x0
_02025636:
	ldr r2, [r5, #0x18]
	cmp r1, r2
	bne _02025642
	add r0, r6, #0x2
	pop {r3-r6}
	bx lr
_02025642:
	add r4, r4, #0x1
	add r5, r5, #0x4
	cmp r4, #0x10
	blt _02025636
	add r6, r6, #0x1
	add r0, #0x88
	cmp r6, #0x10
	blt _02025632
	mov r0, #0x0
	pop {r3-r6}
	bx lr