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

	thumb_func_start MOD05_021F3BC0
MOD05_021F3BC0: ; 0x021F3BC0
	push {r3, r4, r5, r6, r7, lr}
	add r7, r0, #0
	mov r0, #4
	mov r1, #0x20
	bl AllocFromHeap
	add r5, r0, #0
	mov r4, #0
_021F3BD0:
	mov r1, #0xf
	lsl r1, r1, #0xc
	add r2, r4, #0
	mul r2, r1
	ldr r1, _021F3C2C ; =UNK05_021FD684
	lsl r0, r4, #2
	add r1, r1, r2
	add r6, r5, r0
	str r1, [r5, r0]
	ldr r0, [r5, r0]
	cmp r0, #0
	bne _021F3BEC
	mov r0, #0
	pop {r3, r4, r5, r6, r7, pc}
_021F3BEC:
	cmp r7, #0
	beq _021F3C0A
	mov r1, #9
	mov r0, #4
	lsl r1, r1, #0xc
	bl AllocFromHeap
	str r0, [r6, #0x10]
	cmp r0, #0
	bne _021F3C04
	mov r0, #0
	pop {r3, r4, r5, r6, r7, pc}
_021F3C04:
	mov r2, #9
	lsl r2, r2, #0xc
	b _021F3C10
_021F3C0A:
	mov r0, #0
	str r0, [r6, #0x10]
	add r2, r0, #0
_021F3C10:
	mov r1, #0xf
	add r0, r4, #0
	lsl r1, r1, #0xc
	add r3, r5, #0
	bl MOD05_021F3C74
	add r0, r4, #1
	lsl r0, r0, #0x18
	lsr r4, r0, #0x18
	cmp r4, #4
	blo _021F3BD0
	add r0, r5, #0
	pop {r3, r4, r5, r6, r7, pc}
	nop
_021F3C2C: .word UNK05_021FD684

	thumb_func_start MOD05_021F3C30
MOD05_021F3C30: ; 0x021F3C30
	push {r3, r4, r5, r6, r7, lr}
	mov r4, #0
	add r6, r0, #0
	add r7, r4, #0
_021F3C38:
	lsl r0, r4, #2
	add r5, r6, r0
	str r7, [r6, r0]
	ldr r0, [r5, #0x10]
	cmp r0, #0
	beq _021F3C4C
	bl FreeToHeap
	mov r0, #0
	str r0, [r5, #0x10]
_021F3C4C:
	add r0, r4, #1
	lsl r0, r0, #0x18
	lsr r4, r0, #0x18
	cmp r4, #4
	blo _021F3C38
	add r0, r6, #0
	bl FreeToHeap
	pop {r3, r4, r5, r6, r7, pc}
	.balign 4, 0

	thumb_func_start MOD05_021F3C60
MOD05_021F3C60: ; 0x021F3C60
	lsl r0, r0, #2
	ldr r0, [r1, r0]
	str r0, [r2]
	bx lr

	thumb_func_start MOD05_021F3C68
MOD05_021F3C68: ; 0x021F3C68
	lsl r0, r0, #2
	add r0, r1, r0
	ldr r0, [r0, #0x10]
	str r0, [r2]
	bx lr
	.balign 4, 0

	thumb_func_start MOD05_021F3C74
MOD05_021F3C74: ; 0x021F3C74
	push {r3, r4, r5, r6, r7, lr}
	add r5, r3, #0
	lsl r4, r0, #2
	add r6, r1, #0
	add r7, r2, #0
	ldr r0, [r5, r4]
	mov r1, #0
	add r2, r6, #0
	bl MI_CpuFill8
	add r0, r5, r4
	ldr r0, [r0, #0x10]
	mov r1, #0
	add r2, r7, #0
	bl MI_CpuFill8
	pop {r3, r4, r5, r6, r7, pc}
	.balign 4, 0

	.section .bss

	.global UNK05_021FD684
UNK05_021FD684: ; 0x021FD684
	.space 0x3C01C