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
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
|
.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start FUN_0206B16C
FUN_0206B16C: ; 0x0206B16C
push {r3, lr}
bl FUN_0206B180
bl FUN_02022830
pop {r3, pc}
thumb_func_start FUN_0206B178
FUN_0206B178: ; 0x0206B178
ldr r0, _0206B17C ; =0x000121C8
bx lr
.balign 4
_0206B17C: .word 0x000121C8
thumb_func_start FUN_0206B180
FUN_0206B180: ; 0x0206B180
push {r3-r7, lr}
str r0, [sp, #0x0]
mov r7, #0x0
add r6, r0, #0x4
_0206B188:
mov r4, #0x0
add r5, r6, #0x0
_0206B18C:
add r0, r5, #0x0
bl ZeroBoxMonData
add r4, r4, #0x1
add r5, #0x88
cmp r4, #0x1e
blo _0206B18C
mov r0, #0xff
lsl r0, r0, #0x4
add r7, r7, #0x1
add r6, r6, r0
cmp r7, #0x12
blo _0206B188
mov r3, #0x0
ldr r1, _0206B200 ; =0x000121B4
add r4, r3, #0x0
add r2, r3, #0x0
_0206B1AE:
ldr r0, [sp, #0x0]
add r0, r0, r3
strb r4, [r0, r1]
add r4, r4, #0x1
cmp r4, #0x10
blo _0206B1BC
add r4, r2, #0x0
_0206B1BC:
add r3, r3, #0x1
cmp r3, #0x12
blo _0206B1AE
ldr r1, _0206B204 ; =0x000121C6
ldr r0, [sp, #0x0]
mov r3, #0x0
strb r3, [r0, r1]
mov r0, #0x1
mov r1, #0x1a
mov r2, #0xe
bl NewMsgDataFromNarc
add r6, r0, #0x0
beq _0206B1F8
ldr r1, _0206B208 ; =0x00011EE4
ldr r0, [sp, #0x0]
mov r5, #0x0
add r4, r0, r1
_0206B1E0:
add r0, r6, #0x0
add r1, r5, #0x6
add r2, r4, #0x0
bl ReadMsgDataIntoU16Array
add r5, r5, #0x1
add r4, #0x28
cmp r5, #0x12
blo _0206B1E0
add r0, r6, #0x0
bl DestroyMsgData
_0206B1F8:
ldr r0, [sp, #0x0]
mov r1, #0x0
str r1, [r0, #0x0]
pop {r3-r7, pc}
.balign 4
_0206B200: .word 0x000121B4
_0206B204: .word 0x000121C6
_0206B208: .word 0x00011EE4
thumb_func_start FUN_0206B20C
FUN_0206B20C: ; 0x0206B20C
push {r3-r7, lr}
add r5, r0, #0x0
ldr r4, [r5, #0x0]
add r6, r1, #0x0
mov r7, #0x0
_0206B216:
add r0, r6, #0x0
bl FUN_0206AAB4
add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
bl FUN_0206B244
cmp r0, #0x0
beq _0206B232
bl FUN_02022830
mov r0, #0x1
pop {r3-r7, pc}
_0206B232:
add r4, r4, #0x1
cmp r4, #0x12
blo _0206B23A
add r4, r7, #0x0
_0206B23A:
ldr r0, [r5, #0x0]
cmp r4, r0
bne _0206B216
mov r0, #0x0
pop {r3-r7, pc}
thumb_func_start FUN_0206B244
FUN_0206B244: ; 0x0206B244
push {r3-r7, lr}
sub sp, #0x8
add r6, r0, #0x0
add r0, r2, #0x0
add r5, r1, #0x0
str r2, [sp, #0x0]
bl FUN_0206AAB4
mov r0, #0x0
mvn r0, r0
cmp r5, r0
bne _0206B25E
ldr r5, [r6, #0x0]
_0206B25E:
mov r0, #0xff
lsl r0, r0, #0x4
add r1, r6, #0x4
mul r0, r5
mov r4, #0x0
add r5, r1, r0
str r5, [sp, #0x4]
mov r6, #0x5
add r7, r4, #0x0
_0206B270:
add r0, r5, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
bl GetBoxMonData
cmp r0, #0x0
bne _0206B2A0
mov r0, #0x88
add r1, r4, #0x0
mul r1, r0
ldr r0, [sp, #0x4]
mov r3, #0x11
add r4, r0, r1
_0206B28A:
ldr r2, [sp, #0x0]
sub r3, r3, #0x1
ldmia r2!, {r0-r1}
str r2, [sp, #0x0]
stmia r4!, {r0-r1}
bne _0206B28A
bl FUN_02022830
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
_0206B2A0:
add r4, r4, #0x1
add r5, #0x88
cmp r4, #0x1e
blo _0206B270
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_0206B2B0
FUN_0206B2B0: ; 0x0206B2B0
push {r3-r7, lr}
add r7, r3, #0x0
add r5, r0, #0x0
add r0, r7, #0x0
add r4, r1, #0x0
add r6, r2, #0x0
bl FUN_0206AAB4
mov r0, #0x0
mvn r0, r0
cmp r4, r0
bne _0206B2CA
ldr r4, [r5, #0x0]
_0206B2CA:
cmp r4, #0x12
bhs _0206B2F4
cmp r6, #0x1e
bhs _0206B2F4
mov r0, #0xff
lsl r0, r0, #0x4
mul r0, r4
add r1, r5, r0
mov r0, #0x88
mul r0, r6
add r0, r1, r0
add r3, r0, #0x4
mov r2, #0x11
_0206B2E4:
ldmia r7!, {r0-r1}
stmia r3!, {r0-r1}
sub r2, r2, #0x1
bne _0206B2E4
bl FUN_02022830
mov r0, #0x1
pop {r3-r7, pc}
_0206B2F4:
bl ErrorHandling
mov r0, #0x0
pop {r3-r7, pc}
thumb_func_start FUN_0206B2FC
FUN_0206B2FC: ; 0x0206B2FC
push {r3, lr}
mov r3, #0x0
mvn r3, r3
cmp r1, r3
bne _0206B308
ldr r1, [r0, #0x0]
_0206B308:
cmp r2, #0x1e
bhs _0206B32A
cmp r1, #0x12
bhs _0206B32A
add r3, r0, #0x4
mov r0, #0xff
lsl r0, r0, #0x4
mul r0, r1
add r1, r3, r0
mov r0, #0x88
mul r0, r2
add r0, r1, r0
bl ZeroBoxMonData
bl FUN_02022830
pop {r3, pc}
_0206B32A:
bl ErrorHandling
pop {r3, pc}
thumb_func_start FUN_0206B330
FUN_0206B330: ; 0x0206B330
ldr r0, [r0, #0x0]
bx lr
thumb_func_start FUN_0206B334
FUN_0206B334: ; 0x0206B334
push {r3-r7, lr}
sub sp, #0x8
str r0, [sp, #0x0]
ldr r6, [r0, #0x0]
add r0, r0, #0x4
mov r7, #0xab
str r0, [sp, #0x4]
_0206B342:
mov r0, #0xff
lsl r0, r0, #0x4
add r1, r6, #0x0
mul r1, r0
ldr r0, [sp, #0x4]
mov r4, #0x0
add r5, r0, r1
_0206B350:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
bne _0206B364
add sp, #0x8
add r0, r6, #0x0
pop {r3-r7, pc}
_0206B364:
add r4, r4, #0x1
add r5, #0x88
cmp r4, #0x1e
blt _0206B350
add r6, r6, #0x1
cmp r6, #0x12
blt _0206B374
mov r6, #0x0
_0206B374:
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x0]
cmp r6, r0
bne _0206B342
mov r0, #0x12
add sp, #0x8
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_0206B384
FUN_0206B384: ; 0x0206B384
push {r3-r7, lr}
add r6, r1, #0x0
str r2, [sp, #0x0]
mov r1, #0x0
ldr r2, [r6, #0x0]
mvn r1, r1
cmp r2, r1
bne _0206B398
ldr r1, [r0, #0x0]
str r1, [r6, #0x0]
_0206B398:
ldr r1, [sp, #0x0]
ldr r4, [r6, #0x0]
ldr r5, [r1, #0x0]
add r7, r0, #0x4
b _0206B3C8
_0206B3A2:
mov r0, #0xff
lsl r0, r0, #0x4
mul r0, r4
add r1, r7, r0
mov r0, #0x88
mul r0, r5
add r0, r1, r0
mov r1, #0xab
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
bne _0206B3C6
ldr r0, [sp, #0x0]
str r4, [r6, #0x0]
str r5, [r0, #0x0]
mov r0, #0x1
pop {r3-r7, pc}
_0206B3C6:
add r5, r5, #0x1
_0206B3C8:
cmp r5, #0x1e
blt _0206B3A2
add r4, r4, #0x1
cmp r4, #0x12
blt _0206B3D4
mov r4, #0x0
_0206B3D4:
ldr r0, [r6, #0x0]
cmp r4, r0
beq _0206B3DE
mov r5, #0x0
b _0206B3C8
_0206B3DE:
mov r0, #0x12
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_0206B3E4
FUN_0206B3E4: ; 0x0206B3E4
push {r3-r7, lr}
sub sp, #0x8
mov r6, #0x0
add r0, r0, #0x4
str r6, [sp, #0x4]
str r0, [sp, #0x0]
mov r7, #0xab
_0206B3F2:
ldr r5, [sp, #0x0]
mov r4, #0x0
_0206B3F6:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
beq _0206B406
add r6, r6, #0x1
_0206B406:
add r4, r4, #0x1
add r5, #0x88
cmp r4, #0x1e
blt _0206B3F6
mov r0, #0xff
ldr r1, [sp, #0x0]
lsl r0, r0, #0x4
add r0, r1, r0
str r0, [sp, #0x0]
ldr r0, [sp, #0x4]
add r0, r0, #0x1
str r0, [sp, #0x4]
cmp r0, #0x12
blt _0206B3F2
add r0, r6, #0x0
add sp, #0x8
pop {r3-r7, pc}
thumb_func_start FUN_0206B428
FUN_0206B428: ; 0x0206B428
push {r3, lr}
cmp r1, #0x12
bhs _0206B436
str r1, [r0, #0x0]
bl FUN_02022830
pop {r3, pc}
_0206B436:
bl ErrorHandling
pop {r3, pc}
thumb_func_start FUN_0206B43C
FUN_0206B43C: ; 0x0206B43C
push {r3, lr}
cmp r1, #0x12
bhs _0206B44A
add r1, r0, r1
ldr r0, _0206B454 ; =0x000121B4
ldrb r0, [r1, r0]
pop {r3, pc}
_0206B44A:
bl ErrorHandling
mov r0, #0x0
pop {r3, pc}
nop
_0206B454: .word 0x000121B4
thumb_func_start FUN_0206B458
FUN_0206B458: ; 0x0206B458
push {r3, lr}
mov r3, #0x0
mvn r3, r3
cmp r1, r3
bne _0206B464
ldr r1, [r0, #0x0]
_0206B464:
cmp r1, #0x12
bhs _0206B478
cmp r2, #0x18
bhs _0206B478
add r1, r0, r1
ldr r0, _0206B480 ; =0x000121B4
strb r2, [r1, r0]
bl FUN_02022830
pop {r3, pc}
_0206B478:
bl ErrorHandling
pop {r3, pc}
nop
_0206B480: .word 0x000121B4
thumb_func_start FUN_0206B484
FUN_0206B484: ; 0x0206B484
push {r3, lr}
add r3, r0, #0x0
mov r0, #0x0
mvn r0, r0
cmp r1, r0
bne _0206B492
ldr r1, [r3, #0x0]
_0206B492:
cmp r1, #0x12
bhs _0206B4A8
add r0, r2, #0x0
ldr r2, _0206B4B0 ; =0x00011EE4
add r3, r3, r2
mov r2, #0x28
mul r2, r1
add r1, r3, r2
bl FUN_02021E28
pop {r3, pc}
_0206B4A8:
bl ErrorHandling
pop {r3, pc}
nop
_0206B4B0: .word 0x00011EE4
thumb_func_start FUN_0206B4B4
FUN_0206B4B4: ; 0x0206B4B4
push {r3, lr}
add r3, r0, #0x0
mov r0, #0x0
mvn r0, r0
cmp r1, r0
bne _0206B4C2
ldr r1, [r3, #0x0]
_0206B4C2:
cmp r1, #0x12
bhs _0206B4DC
add r0, r2, #0x0
ldr r2, _0206B4E0 ; =0x00011EE4
add r3, r3, r2
mov r2, #0x28
mul r2, r1
add r1, r3, r2
mov r2, #0x14
bl FUN_02021EF0
bl FUN_02022830
_0206B4DC:
pop {r3, pc}
nop
_0206B4E0: .word 0x00011EE4
thumb_func_start FUN_0206B4E4
FUN_0206B4E4: ; 0x0206B4E4
push {r3-r7, lr}
mov r2, #0x0
mvn r2, r2
cmp r1, r2
bne _0206B4F0
ldr r1, [r0, #0x0]
_0206B4F0:
cmp r1, #0x12
bhs _0206B520
add r2, r0, #0x4
mov r0, #0xff
lsl r0, r0, #0x4
mov r4, #0x0
mul r0, r1
add r6, r4, #0x0
add r5, r2, r0
mov r7, #0xab
_0206B504:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
beq _0206B514
add r4, r4, #0x1
_0206B514:
add r6, r6, #0x1
add r5, #0x88
cmp r6, #0x1e
blt _0206B504
add r0, r4, #0x0
pop {r3-r7, pc}
_0206B520:
bl ErrorHandling
mov r0, #0x0
pop {r3-r7, pc}
thumb_func_start FUN_0206B528
FUN_0206B528: ; 0x0206B528
push {r3-r7, lr}
mov r2, #0x0
mvn r2, r2
cmp r1, r2
bne _0206B534
ldr r1, [r0, #0x0]
_0206B534:
cmp r1, #0x12
bhs _0206B572
add r2, r0, #0x4
mov r0, #0xff
lsl r0, r0, #0x4
mov r4, #0x0
mul r0, r1
add r6, r4, #0x0
add r5, r2, r0
mov r7, #0xab
_0206B548:
add r0, r5, #0x0
add r1, r7, #0x0
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
beq _0206B566
add r0, r5, #0x0
mov r1, #0x4c
mov r2, #0x0
bl GetBoxMonData
cmp r0, #0x0
bne _0206B566
add r4, r4, #0x1
_0206B566:
add r6, r6, #0x1
add r5, #0x88
cmp r6, #0x1e
blt _0206B548
add r0, r4, #0x0
pop {r3-r7, pc}
_0206B572:
bl ErrorHandling
mov r0, #0x0
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_0206B57C
FUN_0206B57C: ; 0x0206B57C
push {r4-r6, lr}
mov r5, #0x0
add r6, r0, #0x0
add r4, r5, #0x0
_0206B584:
add r0, r6, #0x0
add r1, r5, #0x0
bl FUN_0206B528
add r5, r5, #0x1
add r4, r4, r0
cmp r5, #0x12
blo _0206B584
add r0, r4, #0x0
pop {r4-r6, pc}
thumb_func_start FUN_0206B598
FUN_0206B598: ; 0x0206B598
push {r3-r7, lr}
add r4, r1, #0x0
add r5, r0, #0x0
add r6, r2, #0x0
add r7, r3, #0x0
cmp r4, #0x12
blo _0206B5B2
mov r0, #0x0
mvn r0, r0
cmp r4, r0
beq _0206B5B2
bl ErrorHandling
_0206B5B2:
cmp r6, #0x1e
blo _0206B5BA
bl ErrorHandling
_0206B5BA:
mov r0, #0x0
mvn r0, r0
cmp r4, r0
bne _0206B5C4
ldr r4, [r5, #0x0]
_0206B5C4:
mov r0, #0xff
lsl r0, r0, #0x4
add r1, r5, #0x4
mul r0, r4
add r1, r1, r0
mov r0, #0x88
mul r0, r6
add r0, r1, r0
ldr r2, [sp, #0x18]
add r1, r7, #0x0
bl SetBoxMonData
bl FUN_02022830
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_0206B5E4
FUN_0206B5E4: ; 0x0206B5E4
push {r4-r6, lr}
add r4, r1, #0x0
add r5, r0, #0x0
add r6, r2, #0x0
cmp r4, #0x12
blo _0206B5FC
mov r0, #0x0
mvn r0, r0
cmp r4, r0
beq _0206B5FC
bl ErrorHandling
_0206B5FC:
cmp r6, #0x1e
blo _0206B604
bl ErrorHandling
_0206B604:
mov r0, #0x0
mvn r0, r0
cmp r4, r0
bne _0206B60E
ldr r4, [r5, #0x0]
_0206B60E:
mov r0, #0xff
lsl r0, r0, #0x4
add r1, r5, #0x4
mul r0, r4
add r1, r1, r0
mov r0, #0x88
mul r0, r6
add r0, r1, r0
pop {r4-r6, pc}
thumb_func_start FUN_0206B620
FUN_0206B620: ; 0x0206B620
push {r3-r5, lr}
add r4, r1, #0x0
add r5, r0, #0x0
cmp r4, #0x8
blo _0206B62E
bl ErrorHandling
_0206B62E:
ldr r0, _0206B640 ; =0x000121C6
mov r1, #0x1
ldrb r2, [r5, r0]
lsl r1, r4
orr r1, r2
strb r1, [r5, r0]
bl FUN_02022830
pop {r3-r5, pc}
.balign 4
_0206B640: .word 0x000121C6
thumb_func_start FUN_0206B644
FUN_0206B644: ; 0x0206B644
push {r3-r5, lr}
add r4, r1, #0x0
add r5, r0, #0x0
cmp r4, #0x8
blo _0206B652
bl ErrorHandling
_0206B652:
ldr r0, _0206B664 ; =0x000121C6
ldrb r2, [r5, r0]
mov r0, #0x1
add r1, r0, #0x0
lsl r1, r4
tst r1, r2
bne _0206B662
mov r0, #0x0
_0206B662:
pop {r3-r5, pc}
.balign 4
_0206B664: .word 0x000121C6
thumb_func_start FUN_0206B668
FUN_0206B668: ; 0x0206B668
push {r4-r6, lr}
mov r4, #0x0
add r6, r0, #0x0
add r5, r4, #0x0
_0206B670:
add r0, r6, #0x0
add r1, r4, #0x0
bl FUN_0206B644
cmp r0, #0x0
beq _0206B67E
add r5, r5, #0x1
_0206B67E:
add r4, r4, #0x1
cmp r4, #0x8
blo _0206B670
add r0, r5, #0x0
pop {r4-r6, pc}
|