summaryrefslogtreecommitdiff
path: root/arm9/asm/unk_0205363C.s
blob: 18c933844a34de08b078198f7ba35784a890db5c (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
	.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