summaryrefslogtreecommitdiff
path: root/arm9/asm/unk_0206B688.s
blob: 9b6e863e2b82edecc82d280f085ba24124509501 (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
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
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
    .include "asm/macros.inc"
    .include "global.inc"

	.section .rodata

	.global UNK_020F8074
UNK_020F8074: ; 0x020F8074
	.byte 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x01, 0x00, 0x01, 0x02, 0x02
	.byte 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02
	.byte 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02
	.byte 0x02, 0x02, 0x00, 0x02, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02
	.byte 0x02, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01, 0x02, 0x02, 0x01
	.byte 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x02, 0x01, 0x00, 0x02
	.byte 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02
	.byte 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x01, 0x02
	.byte 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x01
	.byte 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x02
	.byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00
	.byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01
	.byte 0x01, 0x01, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x00, 0x02, 0x01, 0x01, 0x01
	.byte 0x01, 0x01, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x00, 0x01, 0x01, 0x02
	.byte 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x02, 0x02, 0x02, 0x01, 0x02, 0x00, 0x00, 0x02, 0x02, 0x02
	.byte 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x02, 0x00, 0x00
	.byte 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00
	.byte 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00
	.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00
	.byte 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x00
	.byte 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02
	.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x01, 0x00
	.byte 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02
	.byte 0x02, 0x01, 0x01, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01
	.byte 0x00, 0x02, 0x01, 0x00, 0x02, 0x01, 0x01, 0x00, 0x02, 0x02, 0x00, 0x01, 0x00, 0x02, 0x02, 0x00
	.byte 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
	.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
	.byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

	.text

	thumb_func_start FUN_0206B688
FUN_0206B688: ; 0x0206B688
	push {r3-r7, lr}
	add r5, r0, #0x0
	bl AcquireBoxMonLock
	add r7, r0, #0x0
	add r0, r5, #0x0
	mov r1, #0x5
	mov r2, #0x0
	bl GetBoxMonData
	add r4, r0, #0x0
	add r0, r5, #0x0
	mov r1, #0x4c
	mov r2, #0x0
	bl GetBoxMonData
	add r6, r0, #0x0
	add r0, r5, #0x0
	bl FUN_0206B754
	add r2, r0, #0x0
	add r0, r4, #0x0
	add r1, r6, #0x0
	bl FUN_0206B6D4
	add r4, r0, #0x0
	add r0, r5, #0x0
	add r1, r7, #0x0
	bl ReleaseBoxMonLock
	add r0, r4, #0x0
	pop {r3-r7, pc}

	thumb_func_start FUN_0206B6C8
FUN_0206B6C8: ; 0x0206B6C8
	push {r3, lr}
	bl FUN_020690E4
	bl FUN_0206B688
	pop {r3, pc}

	thumb_func_start FUN_0206B6D4
FUN_0206B6D4: ; 0x0206B6D4
	cmp r1, #0x1
	bne _0206B6E8
	ldr r1, _0206B748 ; =0x000001EA
	cmp r0, r1
	bne _0206B6E2
	add r1, #0xc
	b _0206B6E4
_0206B6E2:
	add r1, #0xb
_0206B6E4:
	add r0, r1, #0x0
	bx lr
_0206B6E8:
	cmp r2, #0x0
	beq _0206B73A
	ldr r3, _0206B74C ; =0x00000182
	cmp r0, r3
	bne _0206B6F8
	add r3, #0x74
	add r0, r2, r3
	bx lr
_0206B6F8:
	cmp r0, #0xc9
	bne _0206B702
	add r3, #0x78
	add r0, r2, r3
	bx lr
_0206B702:
	add r1, r3, #0x0
	add r1, #0x1a
	cmp r0, r1
	bne _0206B710
	add r3, #0x93
	add r0, r2, r3
	bx lr
_0206B710:
	add r1, r3, #0x0
	add r1, #0x1b
	cmp r0, r1
	bne _0206B71E
	add r3, #0x95
	add r0, r2, r3
	bx lr
_0206B71E:
	add r1, r3, #0x0
	add r1, #0x24
	cmp r0, r1
	bne _0206B72C
	add r3, #0x97
	add r0, r2, r3
	bx lr
_0206B72C:
	add r1, r3, #0x0
	add r1, #0x25
	cmp r0, r1
	bne _0206B73A
	add r3, #0x98
	add r0, r2, r3
	bx lr
_0206B73A:
	ldr r1, _0206B750 ; =0x000001ED
	cmp r0, r1
	bls _0206B742
	mov r0, #0x0
_0206B742:
	add r0, r0, #0x7
	bx lr
	nop
_0206B748: .word 0x000001EA
_0206B74C: .word 0x00000182
_0206B750: .word 0x000001ED

	thumb_func_start FUN_0206B754
FUN_0206B754: ; 0x0206B754
	push {r4, lr}
	mov r1, #0xad
	mov r2, #0x0
	add r4, r0, #0x0
	bl GetBoxMonData
	ldr r2, _0206B7B8 ; =0x0000019D
	cmp r0, r2
	bhi _0206B784
	sub r1, r2, #0x1
	cmp r0, r1
	blo _0206B774
	beq _0206B7A4
	cmp r0, r2
	beq _0206B7A4
	b _0206B7B4
_0206B774:
	cmp r0, #0xc9
	bhi _0206B77C
	beq _0206B79C
	b _0206B7B4
_0206B77C:
	sub r2, #0x1b
	cmp r0, r2
	beq _0206B7A4
	b _0206B7B4
_0206B784:
	add r1, r2, #0x0
	add r1, #0x9
	cmp r0, r1
	bhi _0206B794
	add r2, #0x9
	cmp r0, r2
	beq _0206B7A4
	b _0206B7B4
_0206B794:
	add r2, #0xa
	cmp r0, r2
	beq _0206B7A4
	b _0206B7B4
_0206B79C:
	add r0, r4, #0x0
	bl FUN_020690D4
	pop {r4, pc}
_0206B7A4:
	add r0, r4, #0x0
	mov r1, #0x70
	mov r2, #0x0
	bl GetBoxMonData
	lsl r0, r0, #0x10
	lsr r0, r0, #0x10
	pop {r4, pc}
_0206B7B4:
	mov r0, #0x0
	pop {r4, pc}
	.balign 4
_0206B7B8: .word 0x0000019D

	thumb_func_start FUN_0206B7BC
FUN_0206B7BC: ; 0x0206B7BC
	cmp r2, #0x1
	bne _0206B7CE
	ldr r1, _0206B830 ; =0x000001EA
	cmp r0, r1
	bne _0206B7CA
	add r0, r1, #0x5
	b _0206B82A
_0206B7CA:
	add r0, r1, #0x4
	b _0206B82A
_0206B7CE:
	ldr r3, _0206B834 ; =0x000001ED
	cmp r0, r3
	bls _0206B7D8
	mov r0, #0x0
	b _0206B82A
_0206B7D8:
	cmp r1, #0x0
	beq _0206B82A
	add r2, r3, #0x0
	sub r2, #0x6b
	cmp r0, r2
	bne _0206B7EA
	add r0, r3, #0x2
	add r0, r1, r0
	b _0206B82A
_0206B7EA:
	cmp r0, #0xc9
	bne _0206B7F4
	add r0, r3, #0x5
	add r0, r1, r0
	b _0206B82A
_0206B7F4:
	add r2, r3, #0x0
	sub r2, #0x51
	cmp r0, r2
	bne _0206B802
	add r3, #0x21
	add r0, r1, r3
	b _0206B82A
_0206B802:
	add r2, r3, #0x0
	sub r2, #0x50
	cmp r0, r2
	bne _0206B810
	add r3, #0x23
	add r0, r1, r3
	b _0206B82A
_0206B810:
	add r2, r3, #0x0
	sub r2, #0x47
	cmp r0, r2
	bne _0206B81E
	add r3, #0x25
	add r0, r1, r3
	b _0206B82A
_0206B81E:
	add r2, r3, #0x0
	sub r2, #0x46
	cmp r0, r2
	bne _0206B82A
	add r3, #0x26
	add r0, r1, r3
_0206B82A:
	ldr r1, _0206B838 ; =UNK_020F8074
	ldrb r0, [r1, r0]
	bx lr
	.balign 4
_0206B830: .word 0x000001EA
_0206B834: .word 0x000001ED
_0206B838: .word UNK_020F8074

	thumb_func_start FUN_0206B83C
FUN_0206B83C: ; 0x0206B83C
	push {r3-r7, lr}
	add r5, r0, #0x0
	bl AcquireBoxMonLock
	add r4, r0, #0x0
	add r0, r5, #0x0
	bl FUN_0206B754
	add r6, r0, #0x0
	add r0, r5, #0x0
	mov r1, #0x5
	mov r2, #0x0
	bl GetBoxMonData
	add r7, r0, #0x0
	add r0, r5, #0x0
	mov r1, #0x4c
	mov r2, #0x0
	bl GetBoxMonData
	str r0, [sp, #0x0]
	add r0, r5, #0x0
	add r1, r4, #0x0
	bl ReleaseBoxMonLock
	ldr r2, [sp, #0x0]
	add r0, r7, #0x0
	add r1, r6, #0x0
	bl FUN_0206B7BC
	pop {r3-r7, pc}
	.balign 4

	thumb_func_start FUN_0206B87C
FUN_0206B87C: ; 0x0206B87C
	push {r3, lr}
	bl FUN_020690E4
	bl FUN_0206B83C
	pop {r3, pc}

	thumb_func_start FUN_0206B888
FUN_0206B888: ; 0x0206B888
	mov r0, #0x0
	bx lr

	thumb_func_start FUN_0206B88C
FUN_0206B88C: ; 0x0206B88C
	mov r0, #0x2
	bx lr

	thumb_func_start FUN_0206B890
FUN_0206B890: ; 0x0206B890
	mov r0, #0x4
	bx lr

	thumb_func_start FUN_0206B894
FUN_0206B894: ; 0x0206B894
	mov r0, #0x6
	bx lr

	thumb_func_start FUN_0206B898
FUN_0206B898: ; 0x0206B898
	mov r0, #0x1
	bx lr

	thumb_func_start FUN_0206B89C
FUN_0206B89C: ; 0x0206B89C
	mov r0, #0x3
	bx lr

	thumb_func_start FUN_0206B8A0
FUN_0206B8A0: ; 0x0206B8A0
	mov r0, #0x5
	bx lr