summaryrefslogtreecommitdiff
path: root/arm9/modules/52/asm/module_52.s
blob: 7d33bbfb90f8e3564bd036ccf9fd3a82f15c77b0 (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
	.include "asm/macros.inc"
	.include "global.inc"
	.section .text
	.balign 4, 0

	thumb_func_start MOD52_021D74E0
MOD52_021D74E0: ; 0x021D74E0
	push {r3, lr}
	mov r2, #2
	mov r0, #3
	mov r1, #0x4d
	lsl r2, r2, #0x10
	bl FUN_0201681C
	bl InitializeMainRNG
	mov r0, #1
	pop {r3, pc}
	.align 2, 0
	thumb_func_end MOD52_021D74E0

	thumb_func_start MOD52_021D74F8
MOD52_021D74F8: ; 0x021D74F8
	push {r3, lr}
	bl FUN_0200628C
	ldr r1, [r0, #8]
	mov r0, #0x4d
	bl MOD52_021D769C
	mov r0, #1
	pop {r3, pc}
	.align 2, 0
	thumb_func_end MOD52_021D74F8

	thumb_func_start MOD52_021D750C
MOD52_021D750C: ; 0x021D750C
	push {r3, lr}
	mov r0, #0x4d
	bl FUN_020168D0
	mov r0, #0
	ldr r1, _021D7524 ; =UNK_020FD144
	mvn r0, r0
	bl FUN_02000E7C
	mov r0, #1
	pop {r3, pc}
	nop
_021D7524: .word UNK_020FD144
	thumb_func_end MOD52_021D750C

	thumb_func_start MOD52_021D7528
MOD52_021D7528: ; 0x021D7528
	push {r3, lr}
	mov r2, #2
	mov r0, #3
	mov r1, #0x4d
	lsl r2, r2, #0x10
	bl FUN_0201681C
	bl InitializeMainRNG
	mov r0, #1
	pop {r3, pc}
	.align 2, 0
	thumb_func_end MOD52_021D7528

	thumb_func_start MOD52_021D7540
MOD52_021D7540: ; 0x021D7540
	push {r4, lr}
	bl FUN_0200628C
	ldr r4, [r0, #8]
	mov r0, #0x4d
	add r1, r4, #0
	mov r2, #1
	bl MOD52_021D7604
	add r0, r4, #0
	bl FUN_02023918
	bl FUN_02015E3C
	mov r0, #1
	pop {r4, pc}
	thumb_func_end MOD52_021D7540

	thumb_func_start MOD52_021D7560
MOD52_021D7560: ; 0x021D7560
	push {r3, lr}
	mov r0, #0x4d
	bl FUN_020168D0
	mov r0, #0
	ldr r1, _021D7578 ; =UNK_020F2B7C
	mvn r0, r0
	bl FUN_02000E7C
	mov r0, #1
	pop {r3, pc}
	nop
_021D7578: .word UNK_020F2B7C
	thumb_func_end MOD52_021D7560

	thumb_func_start MOD52_021D757C
MOD52_021D757C: ; 0x021D757C
	push {r3, lr}
	mov r2, #2
	mov r0, #3
	mov r1, #0x4d
	lsl r2, r2, #0x10
	bl FUN_0201681C
	bl InitializeMainRNG
	mov r0, #1
	pop {r3, pc}
	.align 2, 0
	thumb_func_end MOD52_021D757C

	thumb_func_start MOD52_021D7594
MOD52_021D7594: ; 0x021D7594
	push {r3, r4, r5, lr}
	bl FUN_0200628C
	ldr r4, [r0, #8]
	add r0, r4, #0
	bl FUN_02023788
	add r5, r0, #0
	mov r0, #0x4d
	add r1, r4, #0
	bl MOD52_021D7688
	add r0, r4, #0
	mov r1, #0
	bl FUN_02024F9C
	add r0, r5, #0
	bl FUN_020237CC
	cmp r0, #0
	beq _021D75C8
	add r0, r5, #0
	bl FUN_020237FC
	cmp r0, #0
	bne _021D75D8
_021D75C8:
	add r0, r4, #0
	bl FUN_02023794
	bl FUN_020238A4
	add r0, r5, #0
	bl FUN_020237A0
_021D75D8:
	add r0, r4, #0
	bl FUN_02023918
	bl FUN_02015E3C
	mov r0, #1
	pop {r3, r4, r5, pc}
	.align 2, 0
	thumb_func_end MOD52_021D7594

	thumb_func_start MOD52_021D75E8
MOD52_021D75E8: ; 0x021D75E8
	push {r3, lr}
	mov r0, #0x4d
	bl FUN_020168D0
	mov r0, #0
	ldr r1, _021D7600 ; =UNK_020F2B8C
	mvn r0, r0
	bl FUN_02000E7C
	mov r0, #1
	pop {r3, pc}
	nop
_021D7600: .word UNK_020F2B8C
	thumb_func_end MOD52_021D75E8

	thumb_func_start MOD52_021D7604
MOD52_021D7604: ; 0x021D7604
	push {r3, r4, r5, r6, r7, lr}
	add r5, r1, #0
	str r0, [sp]
	add r0, r5, #0
	add r6, r2, #0
	bl FUN_02023788
	bl FUN_020237A0
	add r0, r5, #0
	bl FUN_02023794
	bl FUN_02023840
	add r0, r5, #0
	bl FUN_0202881C
	add r4, r0, #0
	bl MTRandom
	add r2, r0, #0
	add r0, r4, #0
	mov r1, #1
	bl FUN_02028788
	add r0, r5, #0
	bl FUN_0206007C
	add r0, r5, #0
	bl FUN_020238F4
	add r4, r0, #0
	bl MTRandom
	add r7, r0, #0
	cmp r6, #0
	beq _021D7656
	add r0, r4, #0
	add r1, r7, #0
	bl FUN_020239B8
_021D7656:
	add r0, r4, #0
	bl FUN_020239CC
	add r1, r0, #0
	add r0, r7, #0
	mov r2, #0
	bl FUN_02053678
	add r1, r0, #0
	lsl r1, r1, #0x18
	add r0, r4, #0
	lsr r1, r1, #0x18
	bl FUN_02023A2C
	add r0, r5, #0
	bl FUN_02024ECC
	ldr r1, [sp]
	ldr r2, _021D7684 ; =0x021D76F8
	mov r3, #0x76
	bl FUN_020250C4
	pop {r3, r4, r5, r6, r7, pc}
	.align 2, 0
_021D7684: .word MOD52_021D76F8
	thumb_func_end MOD52_021D7604

	thumb_func_start MOD52_021D7688
MOD52_021D7688: ; 0x021D7688
	push {r3, lr}
	add r0, r1, #0
	bl FUN_020226FC
	cmp r0, #0
	bne _021D769A
	mov r0, #0
	bl OS_ResetSystem
_021D769A:
	pop {r3, pc}
	thumb_func_end MOD52_021D7688

	thumb_func_start MOD52_021D769C
MOD52_021D769C: ; 0x021D769C
	push {r4, lr}
	add r4, r1, #0
	add r0, r4, #0
	bl FUN_020227DC
	add r0, r4, #0
	bl FUN_020377E0
	add r0, r4, #0
	bl FUN_020238F4
	ldr r1, _021D76C4 ; =0x00000BB8
	bl FUN_02023A14
	add r0, r4, #0
	bl FUN_020462AC
	bl FUN_0205ECD4
	pop {r4, pc}
	.align 2, 0
_021D76C4: .word 0x00000BB8
	thumb_func_end MOD52_021D769C

	.rodata
	.global MOD52_021D76C8
MOD52_021D76C8: ; 0x021D76C8
	.word MOD52_021D757C, MOD52_021D7594, MOD52_021D75E8, 0xFFFFFFFF

	.global MOD52_021D76D8
MOD52_021D76D8: ; 0x021D76D8
	.word MOD52_021D7528, MOD52_021D7540, MOD52_021D7560, 0xFFFFFFFF

	.global MOD52_021D76E8
MOD52_021D76E8: ; 0x021D76E8
	.word MOD52_021D74E0, MOD52_021D74F8, MOD52_021D750C, 0xFFFFFFFF

	.global MOD52_021D76F8
MOD52_021D76F8: ; 0x021D76F8
	.byte 0x9B, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00
	.byte 0x9B, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x02, 0x00
	.byte 0x95, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x02, 0x00, 0x9E, 0x00, 0x01, 0x00, 0xA7, 0x00, 0x02, 0x00
	.byte 0xA7, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00
	.byte 0x9B, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00
	.byte 0xA4, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x9B, 0x00, 0x01, 0x00
	.byte 0x9B, 0x00, 0x01, 0x00, 0xA5, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x02, 0x00, 0xA4, 0x00, 0x02, 0x00
	.byte 0xA5, 0x00, 0x02, 0x00, 0xA8, 0x00, 0x02, 0x00, 0x9A, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00
	.byte 0xA4, 0x00, 0x01, 0x00, 0xA4, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x01, 0x00
	.byte 0xA6, 0x00, 0x01, 0x00, 0x9F, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00
	.byte 0xA4, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00, 0x96, 0x00, 0x01, 0x00
	.byte 0xA0, 0x00, 0x01, 0x00, 0xA2, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00
	.byte 0xA3, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00, 0x99, 0x00, 0x01, 0x00
	.byte 0xAE, 0x00, 0x01, 0x00, 0x9D, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00
	.byte 0xA8, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00
	.byte 0xA6, 0x00, 0x01, 0x00, 0xA6, 0x00, 0x01, 0x00, 0xA2, 0x00, 0x01, 0x00, 0xA3, 0x00, 0x01, 0x00
	.byte 0x98, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x95, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x01, 0x00
	.byte 0x96, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00, 0x97, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x02, 0x00
	.byte 0xA0, 0x00, 0x01, 0x00, 0xA1, 0x00, 0x01, 0x00, 0x98, 0x00, 0x01, 0x00, 0x9C, 0x00, 0x01, 0x00
	.byte 0x9F, 0x00, 0x01, 0x00, 0xA8, 0x00, 0x02, 0x00, 0x9A, 0x00, 0x01, 0x00, 0x97, 0x00, 0x01, 0x00
	.byte 0xA1, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00, 0xA0, 0x00, 0x02, 0x00, 0xA1, 0x00, 0x02, 0x00
	.byte 0xA2, 0x00, 0x02, 0x00, 0xAB, 0x00, 0x01, 0x00, 0x9E, 0x00, 0x02, 0x00, 0xA5, 0x00, 0x03, 0x00
	.byte 0xA6, 0x00, 0x03, 0x00, 0xA7, 0x00, 0x03, 0x00, 0xA9, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00
	.byte 0xAC, 0x00, 0x02, 0x00, 0xAC, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x01, 0x00, 0xAA, 0x00, 0x01, 0x00
	.byte 0xAE, 0x00, 0x01, 0x00, 0xAE, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00
	.byte 0xA9, 0x00, 0x01, 0x00, 0xA9, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00, 0xAC, 0x00, 0x01, 0x00
	.byte 0xAE, 0x00, 0x01, 0x00, 0xAE, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00
	.byte 0xAB, 0x00, 0x01, 0x00, 0xAB, 0x00, 0x01, 0x00, 0x9D, 0x00, 0x01, 0x00, 0x9A, 0x00, 0x01, 0x00
	.byte 0xAB, 0x00, 0x02, 0x00, 0xAD, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x02, 0x00, 0xAA, 0x00, 0x02, 0x00
	.byte 0xAD, 0x00, 0x01, 0x00, 0xAD, 0x00, 0x01, 0x00

	.data
	.bss