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
|
.include "asm/macros.inc"
.include "global.inc"
.section .rodata
.global UNK_020F5AC4
UNK_020F5AC4: ; 0x020F5AC4
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
.byte 0x05, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.global UNK_020F5B44
UNK_020F5B44: ; 0x020F5B44
.byte 0x03, 0x00, 0x00, 0x00
.global UNK_020F5B48
UNK_020F5B48: ; 0x020F5B48
.byte 0x3C, 0x00, 0x00, 0x00
.global UNK_020F5B4C
UNK_020F5B4C: ; 0x020F5B4C
.byte 0x3C, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x0B, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00
.byte 0x39, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
.byte 0x3E, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00
.byte 0x31, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00
.byte 0x0D, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00
.byte 0x19, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00
.byte 0x55, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00
.byte 0x2A, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00
.byte 0x21, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00
.text
thumb_func_start FUN_0205363C
FUN_0205363C: ; 0x0205363C
push {r3-r7, lr}
add r7, r2, #0x0
lsl r0, r0, #0x1d
ldr r2, _02053670 ; =UNK_020F5AC4
lsr r0, r0, #0x19
add r5, r2, r0
lsl r2, r1, #0x3
mov r1, #0xc
ldr r0, _02053674 ; =UNK_020F5B44
mul r1, r2
mov r4, #0x0
add r6, r0, r1
_02053654:
ldr r3, [r5, #0x0]
mov r2, #0xc
mul r2, r3
add r2, r6, r2
ldr r2, [r2, #0x4]
add r0, r7, #0x0
add r1, r4, #0x0
bl BufferTrainerClassName
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x4
blt _02053654
pop {r3-r7, pc}
.balign 4
_02053670: .word UNK_020F5AC4
_02053674: .word UNK_020F5B44
thumb_func_start FUN_02053678
FUN_02053678: ; 0x02053678
lsl r0, r0, #0x1d
lsr r3, r0, #0x19
ldr r0, _02053694 ; =UNK_020F5AC4
lsl r2, r2, #0x2
add r0, r0, r3
ldr r0, [r2, r0]
lsl r1, r1, #0x3
add r1, r1, r0
mov r0, #0xc
add r2, r1, #0x0
mul r2, r0
ldr r0, _02053698 ; =UNK_020F5B44
ldr r0, [r0, r2]
bx lr
.balign 4
_02053694: .word UNK_020F5AC4
_02053698: .word UNK_020F5B44
thumb_func_start FUN_0205369C
FUN_0205369C: ; 0x0205369C
push {r3-r4}
lsl r4, r0, #0x3
mov r0, #0xc
ldr r2, _020536C4 ; =UNK_020F5B44
mul r0, r4
mov r3, #0x0
add r2, r2, r0
_020536AA:
ldr r0, [r2, #0x0]
cmp r1, r0
bne _020536B6
add r0, r3, r4
pop {r3-r4}
bx lr
_020536B6:
add r3, r3, #0x1
add r2, #0xc
cmp r3, #0x8
blt _020536AA
mov r0, #0x0
pop {r3-r4}
bx lr
.balign 4
_020536C4: .word UNK_020F5B44
thumb_func_start FUN_020536C8
FUN_020536C8: ; 0x020536C8
ldr r3, _020536CC ; =FUN_0205369C
bx r3
.balign 4
_020536CC: .word FUN_0205369C
thumb_func_start FUN_020536D0
FUN_020536D0: ; 0x020536D0
push {r4, lr}
add r4, r2, #0x0
bl FUN_0205369C
cmp r4, #0x0
beq _020536FE
cmp r4, #0x1
beq _020536EE
cmp r4, #0x2
bne _020536F8
mov r1, #0xc
mul r1, r0
ldr r0, _02053700 ; =UNK_020F5B48
ldr r0, [r0, r1]
pop {r4, pc}
_020536EE:
mov r1, #0xc
mul r1, r0
ldr r0, _02053704 ; =UNK_020F5B4C
ldr r0, [r0, r1]
pop {r4, pc}
_020536F8:
bl GF_AssertFail
mov r0, #0x0
_020536FE:
pop {r4, pc}
.balign 4
_02053700: .word UNK_020F5B48
_02053704: .word UNK_020F5B4C
thumb_func_start FUN_02053708
FUN_02053708: ; 0x02053708
push {r3-r6, lr}
sub sp, #0x4
add r5, r0, #0x0
mov r0, #0x56
mov r1, #0x7
add r2, sp, #0x0
add r3, r5, #0x0
bl GfGfxLoader_GetPlttData
mov r1, #0x9
add r4, r0, #0x0
add r0, r5, #0x0
lsl r1, r1, #0x6
bl AllocFromHeap
add r5, r0, #0x0
ldr r0, [sp, #0x0]
mov r2, #0x0
ldr r3, [r0, #0xc]
mov r0, #0x1
add r6, r5, #0x0
lsl r0, r0, #0x8
_02053734:
ldrh r1, [r3, #0x0]
add r2, r2, #0x1
add r3, r3, #0x2
strh r1, [r6, #0x0]
add r6, r6, #0x2
cmp r2, r0
blt _02053734
add r0, r4, #0x0
bl FreeToHeap
add r0, r5, #0x0
add sp, #0x4
pop {r3-r6, pc}
.balign 4
|