summaryrefslogtreecommitdiff
path: root/arm9/asm/unk_02046294.s
blob: c3840e617ad8874cfe329680004bd4d717df7f11 (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
    .include "asm/macros.inc"
    .include "global.inc"

	.section .bss

	.global UNK_021C5A14
UNK_021C5A14: ; 0x021C5A14
	.space 0x8

	.text

	thumb_func_start FUN_02046294
FUN_02046294: ; 0x02046294
	mov r0, #0xeb
	lsl r0, r0, #0x2
	bx lr
	.balign 4

	thumb_func_start FUN_0204629C
FUN_0204629C: ; 0x0204629C
	ldr r3, _020462A8 ; =memset
	mov r2, #0xeb
	mov r1, #0x0
	lsl r2, r2, #0x2
	bx r3
	nop
_020462A8: .word memset

	thumb_func_start FUN_020462AC
FUN_020462AC: ; 0x020462AC
	ldr r3, _020462B4 ; =FUN_02022610
	mov r1, #0x4
	bx r3
	nop
_020462B4: .word FUN_02022610

	thumb_func_start FUN_020462B8
FUN_020462B8: ; 0x020462B8
	push {r3-r5, lr}
	add r4, r1, #0x0
	bl FUN_02046338
	cmp r0, #0x0
	beq _020462DE
	lsr r3, r4, #0x1f
	lsl r2, r4, #0x1d
	ldrb r5, [r0, #0x0]
	sub r2, r2, r3
	mov r1, #0x1d
	ror r2, r1
	mov r0, #0x1
	add r1, r3, r2
	add r2, r0, #0x0
	lsl r2, r1
	add r1, r5, #0x0
	tst r1, r2
	bne _020462E0
_020462DE:
	mov r0, #0x0
_020462E0:
	pop {r3-r5, pc}
	.balign 4

	thumb_func_start FUN_020462E4
FUN_020462E4: ; 0x020462E4
	push {r4-r6, lr}
	add r4, r1, #0x0
	bl FUN_02046338
	cmp r0, #0x0
	beq _02046308
	lsr r5, r4, #0x1f
	lsl r3, r4, #0x1d
	sub r3, r3, r5
	mov r2, #0x1d
	ror r3, r2
	mov r6, #0x1
	add r2, r5, r3
	add r3, r6, #0x0
	ldrb r1, [r0, #0x0]
	lsl r3, r2
	orr r1, r3
	strb r1, [r0, #0x0]
_02046308:
	pop {r4-r6, pc}
	.balign 4

	thumb_func_start FUN_0204630C
FUN_0204630C: ; 0x0204630C
	push {r4-r6, lr}
	add r4, r1, #0x0
	bl FUN_02046338
	cmp r0, #0x0
	beq _02046334
	lsr r5, r4, #0x1f
	lsl r3, r4, #0x1d
	sub r3, r3, r5
	mov r2, #0x1d
	ror r3, r2
	mov r6, #0x1
	add r2, r5, r3
	add r3, r6, #0x0
	lsl r3, r2
	mov r2, #0xff
	ldrb r1, [r0, #0x0]
	eor r2, r3
	and r1, r2
	strb r1, [r0, #0x0]
_02046334:
	pop {r4-r6, pc}
	.balign 4

	thumb_func_start FUN_02046338
FUN_02046338: ; 0x02046338
	push {r3-r5, lr}
	add r5, r0, #0x0
	cmp r1, #0x0
	bne _02046344
	mov r0, #0x0
	pop {r3-r5, pc}
_02046344:
	mov r0, #0x1
	lsl r0, r0, #0xe
	cmp r1, r0
	bhs _02046364
	mov r0, #0x5b
	lsr r4, r1, #0x3
	lsl r0, r0, #0x2
	cmp r4, r0
	blt _0204635A
	bl ErrorHandling
_0204635A:
	mov r0, #0x9
	lsl r0, r0, #0x6
	add r0, r5, r0
	add r0, r0, r4
	pop {r3-r5, pc}
_02046364:
	sub r1, r1, r0
	asr r0, r1, #0x2
	lsr r0, r0, #0x1d
	add r0, r1, r0
	asr r4, r0, #0x3
	cmp r4, #0x8
	blt _02046376
	bl ErrorHandling
_02046376:
	ldr r0, _0204637C ; =UNK_021C5A14
	add r0, r0, r4
	pop {r3-r5, pc}
	.balign 4
_0204637C: .word UNK_021C5A14

	thumb_func_start FUN_02046380
FUN_02046380: ; 0x02046380
	push {r3-r5, lr}
	add r5, r0, #0x0
	mov r0, #0x1
	lsl r0, r0, #0xe
	sub r4, r1, r0
	mov r0, #0x12
	lsl r0, r0, #0x4
	cmp r4, r0
	blt _02046396
	bl ErrorHandling
_02046396:
	lsl r0, r4, #0x1
	add r0, r5, r0
	pop {r3-r5, pc}