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

	#in c file
	.extern MOD05_021E7388

	thumb_func_start MOD05_021E73B4
MOD05_021E73B4: ; 0x021E73B4
	push {r4, r5, r6, lr}
	bl FUN_0204652C
	add r4, r0, #0
	ldr r0, [r4, #0x10]
	bl FUN_020553A0
	add r6, r0, #0
	bl FUN_02058720
	lsl r0, r0, #0x18
	lsr r5, r0, #0x18
	ldr r0, [r4, #8]
	cmp r0, #0
	beq _021E73DC
	cmp r0, #1
	beq _021E73EE
	cmp r0, #2
	beq _021E741C
	b _021E74CA
_021E73DC:
	mov r1, #1
	add r0, r6, #0
	lsl r1, r1, #8
	bl FUN_02058410
	ldr r0, [r4, #8]
	add r0, r0, #1
	str r0, [r4, #8]
	b _021E74CA
_021E73EE:
	ldr r0, [r4, #0x10]
	bl FUN_02057254
	cmp r0, #0
	beq _021E74CA
	ldr r0, [r4]
	mov r1, #0xc
	bl FUN_0205AFDC
	add r1, r0, #0
	ldr r0, [r4, #0x10]
	bl FUN_02057260
	ldr r0, [r4, #0x10]
	ldr r1, [r4]
	bl FUN_02055304
	ldr r0, [r4, #8]
	add r0, r0, #1
	str r0, [r4, #8]
	mov r0, #7
	str r0, [r4, #4]
	b _021E74CA
_021E741C:
	ldr r0, [r4, #4]
	cmp r0, #2
	beq _021E742A
	cmp r0, #4
	beq _021E742A
	cmp r0, #6
	bne _021E743A
_021E742A:
	ldr r0, [r4]
	bl MOD05_021E7388
	str r0, [r4]
	ldr r0, [r4, #0x10]
	ldr r1, [r4]
	bl FUN_02055304
_021E743A:
	ldr r0, [r4, #4]
	sub r0, r0, #1
	str r0, [r4, #4]
	bne _021E74CA
	add r0, r5, #0
	bl FUN_02054B30
	cmp r0, #1
	bne _021E7452
	mov r0, #3
	str r0, [r4]
	b _021E748A
_021E7452:
	add r0, r5, #0
	bl FUN_02054B3C
	cmp r0, #1
	bne _021E7462
	mov r0, #2
	str r0, [r4]
	b _021E748A
_021E7462:
	add r0, r5, #0
	bl FUN_02054B48
	cmp r0, #1
	bne _021E7472
	mov r0, #0
	str r0, [r4]
	b _021E748A
_021E7472:
	add r0, r5, #0
	bl FUN_02054B54
	cmp r0, #1
	bne _021E7482
	mov r0, #1
	str r0, [r4]
	b _021E748A
_021E7482:
	ldr r0, [r4]
	bl MOD05_021E7388
	str r0, [r4]
_021E748A:
	ldr r0, [r4, #0x10]
	ldr r2, [r4]
	add r1, r6, #0
	bl FUN_02056B74
	cmp r0, #0
	bne _021E749E
	mov r0, #1
	str r0, [r4, #8]
	b _021E74CA
_021E749E:
	add r0, r6, #0
	mov r1, #0x80
	bl FUN_02058418
	mov r1, #1
	add r0, r6, #0
	lsl r1, r1, #8
	bl FUN_02058418
	ldr r0, [r4, #0x10]
	ldr r1, [r4]
	bl FUN_02055304
	add r0, r4, #0
	bl MOD05_021E74F8
	ldr r0, _021E74D0 ; =0x00000658
	mov r1, #0
	bl FUN_020054F0
	mov r0, #1
	pop {r4, r5, r6, pc}
_021E74CA:
	mov r0, #0
	pop {r4, r5, r6, pc}
	nop
_021E74D0: .word 0x00000658

	thumb_func_start MOD05_021E74D4
MOD05_021E74D4: ; 0x021E74D4
	push {r3, r4, r5, lr}
	add r5, r0, #0
	mov r0, #4
	add r1, r5, #0
	bl AllocFromHeapAtEnd
	add r4, r0, #0
	bne _021E74E8
	bl ErrorHandling
_021E74E8:
	add r0, r4, #0
	mov r1, #0
	add r2, r5, #0
	bl memset
	add r0, r4, #0
	pop {r3, r4, r5, pc}
	.balign 4, 0

	thumb_func_start MOD05_021E74F8
MOD05_021E74F8: ; 0x021E74F8
	ldr r3, _021E7500 ; =FUN_02016A8C
	add r1, r0, #0
	mov r0, #4
	bx r3
	.balign 4, 0
_021E7500: .word FUN_02016A8C