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

	.section .rodata

	.global UNK_020FB788
UNK_020FB788: ; 0x020FB788
	.byte 0x62, 0x00, 0x00, 0x00

	.global UNK_020FB78C
UNK_020FB78C: ; 0x020FB78C
	.byte 0x48, 0x00

	.global UNK_020FB78E
UNK_020FB78E: ; 0x020FB78E
	.byte 0x00, 0x00

	.global UNK_020FB790
UNK_020FB790: ; 0x020FB790
	.byte 0x00, 0x00

	.global UNK_020FB792
UNK_020FB792: ; 0x020FB792
	.byte 0x50, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x49, 0x00, 0x00, 0x00, 0x01, 0x00, 0x51, 0x00, 0x4F, 0x00
	.byte 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x52, 0x00, 0x50, 0x00, 0x00, 0x00, 0x4B, 0x00
	.byte 0x00, 0x00, 0x03, 0x00, 0x53, 0x00, 0x51, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x04, 0x00
	.byte 0x54, 0x00, 0x52, 0x00, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x05, 0x00, 0x55, 0x00, 0x53, 0x00
	.byte 0x00, 0x00, 0x4A, 0x00, 0x01, 0x00, 0x06, 0x00, 0x56, 0x00, 0x54, 0x00, 0x00, 0x00, 0x4B, 0x00
	.byte 0x01, 0x00, 0x07, 0x00, 0x57, 0x00, 0x55, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x01, 0x00, 0x08, 0x00
	.byte 0x58, 0x00, 0x56, 0x00, 0x00, 0x00, 0x49, 0x00, 0x02, 0x00, 0x09, 0x00, 0x59, 0x00, 0x57, 0x00
	.byte 0x00, 0x00, 0x4A, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x5A, 0x00, 0x58, 0x00, 0x00, 0x00, 0x4B, 0x00
	.byte 0x02, 0x00, 0x0B, 0x00, 0x5B, 0x00, 0x59, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x02, 0x00, 0x0C, 0x00
	.byte 0x5C, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x49, 0x00, 0x03, 0x00, 0x0D, 0x00, 0x5D, 0x00, 0x5B, 0x00
	.byte 0x00, 0x00, 0x4A, 0x00, 0x03, 0x00, 0x0E, 0x00, 0x5E, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x4B, 0x00
	.byte 0x03, 0x00, 0x0F, 0x00, 0x5F, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x03, 0x00, 0x10, 0x00
	.byte 0x60, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x49, 0x00, 0x04, 0x00, 0x11, 0x00, 0x61, 0x00, 0x5F, 0x00
	.byte 0x00, 0x00, 0x4A, 0x00, 0x04, 0x00, 0x12, 0x00, 0x62, 0x00, 0x60, 0x00, 0x00, 0x00, 0x4B, 0x00
	.byte 0x04, 0x00, 0x13, 0x00, 0x63, 0x00, 0x61, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x04, 0x00, 0x14, 0x00
	.byte 0x64, 0x00, 0x63, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x00, 0x15, 0x00, 0x65, 0x00, 0x64, 0x00
	.byte 0x00, 0x00, 0x4D, 0x00, 0x00, 0x00, 0x16, 0x00, 0x66, 0x00, 0x65, 0x00, 0x00, 0x00, 0x4F, 0x00
	.byte 0x01, 0x00, 0x17, 0x00, 0x67, 0x00, 0x66, 0x00, 0x00, 0x00, 0x50, 0x00, 0x02, 0x00, 0x18, 0x00
	.byte 0x68, 0x00, 0x67, 0x00, 0x00, 0x00, 0x51, 0x00, 0x01, 0x00, 0x19, 0x00, 0x00, 0x80, 0x68, 0x00
	.byte 0x00, 0x00, 0x51, 0x00, 0x03, 0x00, 0x1A, 0x00, 0x01, 0x80, 0x69, 0x00, 0x00, 0x00, 0x51, 0x00
	.byte 0x04, 0x00, 0x1B, 0x00, 0x02, 0x80, 0x6A, 0x00, 0x00, 0x00, 0x52, 0x00, 0x03, 0x00, 0x1C, 0x00
	.byte 0xB2, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x52, 0x00, 0x04, 0x00, 0x1D, 0x00, 0xBE, 0x00, 0x6C, 0x00
	.byte 0x00, 0x00, 0x53, 0x00, 0x00, 0x00, 0x1E, 0x00, 0xBF, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x53, 0x00
	.byte 0x01, 0x00, 0x1F, 0x00, 0xB2, 0x00, 0x19, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x20, 0x00
	.byte 0x69, 0x00, 0x7A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x00, 0x00, 0x21, 0x00, 0x6A, 0x00, 0x7B, 0x00
	.byte 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x22, 0x00, 0x6B, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x5B, 0x00
	.byte 0x00, 0x00, 0x23, 0x00, 0x6C, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x24, 0x00
	.byte 0x6D, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x59, 0x00, 0x01, 0x00, 0x25, 0x00, 0x6E, 0x00, 0x7F, 0x00
	.byte 0x00, 0x00, 0x5A, 0x00, 0x01, 0x00, 0x26, 0x00, 0x6F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x5B, 0x00
	.byte 0x01, 0x00, 0x27, 0x00, 0x70, 0x00, 0x81, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x01, 0x00, 0x28, 0x00
	.byte 0x71, 0x00, 0x82, 0x00, 0x00, 0x00, 0x59, 0x00, 0x02, 0x00, 0x29, 0x00, 0x72, 0x00, 0x83, 0x00
	.byte 0x00, 0x00, 0x5A, 0x00, 0x02, 0x00, 0x2A, 0x00, 0x73, 0x00, 0x84, 0x00, 0x00, 0x00, 0x5B, 0x00
	.byte 0x02, 0x00, 0x2B, 0x00, 0x74, 0x00, 0x85, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x02, 0x00, 0x2C, 0x00
	.byte 0x75, 0x00, 0x86, 0x00, 0x00, 0x00, 0x59, 0x00, 0x03, 0x00, 0x2D, 0x00, 0x76, 0x00, 0x87, 0x00
	.byte 0x00, 0x00, 0x5A, 0x00, 0x03, 0x00, 0x2E, 0x00, 0x77, 0x00, 0x88, 0x00, 0x00, 0x00, 0x5B, 0x00
	.byte 0x03, 0x00, 0x2F, 0x00, 0x78, 0x00, 0x89, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x03, 0x00, 0x30, 0x00
	.byte 0x79, 0x00, 0x8A, 0x00, 0x00, 0x00, 0x59, 0x00, 0x04, 0x00, 0x31, 0x00, 0x7A, 0x00, 0x8B, 0x00
	.byte 0x00, 0x00, 0x5A, 0x00, 0x04, 0x00, 0x32, 0x00, 0x7B, 0x00, 0x8C, 0x00, 0x00, 0x00, 0x5B, 0x00
	.byte 0x04, 0x00, 0x33, 0x00, 0x7C, 0x00, 0x8D, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x04, 0x00, 0x34, 0x00
	.byte 0x7D, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x5D, 0x00, 0x00, 0x00, 0x35, 0x00, 0x7E, 0x00, 0x1B, 0x00
	.byte 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x36, 0x00, 0x7F, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x5F, 0x00
	.byte 0x00, 0x00, 0x37, 0x00, 0x80, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x38, 0x00
	.byte 0x81, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x39, 0x00, 0x82, 0x00, 0x1F, 0x00
	.byte 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x83, 0x00, 0x20, 0x00, 0x00, 0x00, 0x63, 0x00
	.byte 0x02, 0x00, 0x3B, 0x00, 0x84, 0x00, 0x21, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x3C, 0x00
	.byte 0x85, 0x00, 0x22, 0x00, 0x00, 0x00, 0x65, 0x00, 0x01, 0x00, 0x3D, 0x00, 0x86, 0x00, 0x23, 0x00
	.byte 0x00, 0x00, 0x66, 0x00, 0x02, 0x00, 0x3E, 0x00, 0x87, 0x00, 0x24, 0x00, 0x00, 0x00, 0x67, 0x00
	.byte 0x03, 0x00, 0x3F, 0x00, 0x88, 0x00, 0x25, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x40, 0x00
	.byte 0x89, 0x00, 0x26, 0x00, 0x00, 0x00, 0x69, 0x00, 0x02, 0x00, 0x41, 0x00, 0x8A, 0x00, 0x27, 0x00
	.byte 0x00, 0x00, 0x6A, 0x00, 0x01, 0x00, 0x42, 0x00, 0x8B, 0x00, 0x28, 0x00, 0x00, 0x00, 0x6B, 0x00
	.byte 0x03, 0x00, 0x43, 0x00, 0x8C, 0x00, 0x29, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x44, 0x00
	.byte 0x8D, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x6D, 0x00, 0x00, 0x00, 0x45, 0x00, 0x8E, 0x00, 0x2B, 0x00
	.byte 0x00, 0x00, 0x6E, 0x00, 0x01, 0x00, 0x46, 0x00, 0x8F, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x6F, 0x00
	.byte 0x03, 0x00, 0x47, 0x00, 0x90, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x48, 0x00
	.byte 0x91, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x49, 0x00, 0x07, 0x80, 0x2F, 0x00
	.byte 0x00, 0x00, 0x72, 0x00, 0x03, 0x00, 0x4A, 0x00, 0x08, 0x80, 0x30, 0x00, 0x00, 0x00, 0x73, 0x00
	.byte 0x01, 0x00, 0x4B, 0x00, 0x09, 0x80, 0x31, 0x00, 0x00, 0x00, 0x74, 0x00, 0x01, 0x00, 0x4C, 0x00
	.byte 0x0A, 0x80, 0x32, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x0B, 0x80, 0x33, 0x00
	.byte 0x00, 0x00, 0x76, 0x00, 0x01, 0x00, 0x4E, 0x00, 0x0C, 0x80, 0x34, 0x00, 0x00, 0x00, 0x77, 0x00
	.byte 0x00, 0x00, 0x4F, 0x00, 0x0D, 0x80

	.text

	thumb_func_start FUN_0207FC5C
FUN_0207FC5C: ; 0x0207FC5C
	cmp r1, #0x4
	bhi _0207FCA8
	add r1, r1, r1
	add r1, pc
	ldrh r1, [r1, #0x6]
	lsl r1, r1, #0x10
	asr r1, r1, #0x10
	add pc, r1
_0207FC6C: ; jump table (using 16-bit offset)
	.short _0207FC76 - _0207FC6C - 2; case 0
	.short _0207FC80 - _0207FC6C - 2; case 1
	.short _0207FC8A - _0207FC6C - 2; case 2
	.short _0207FC94 - _0207FC6C - 2; case 3
	.short _0207FC9E - _0207FC6C - 2; case 4
_0207FC76:
	mov r1, #0xc
	mul r1, r0
	ldr r0, _0207FCAC ; =UNK_020FB788
	ldr r0, [r0, r1]
	bx lr
_0207FC80:
	mov r1, #0xc
	mul r1, r0
	ldr r0, _0207FCB0 ; =UNK_020FB78C
	ldrh r0, [r0, r1]
	bx lr
_0207FC8A:
	mov r1, #0xc
	mul r1, r0
	ldr r0, _0207FCB4 ; =UNK_020FB78E
	ldrh r0, [r0, r1]
	bx lr
_0207FC94:
	mov r1, #0xc
	mul r1, r0
	ldr r0, _0207FCB8 ; =UNK_020FB790
	ldrh r0, [r0, r1]
	bx lr
_0207FC9E:
	mov r1, #0xc
	mul r1, r0
	ldr r0, _0207FCBC ; =UNK_020FB792
	ldrh r0, [r0, r1]
	bx lr
_0207FCA8:
	mov r0, #0x0
	bx lr
	.balign 4
_0207FCAC: .word UNK_020FB788
_0207FCB0: .word UNK_020FB78C
_0207FCB4: .word UNK_020FB78E
_0207FCB8: .word UNK_020FB790
_0207FCBC: .word UNK_020FB792

	thumb_func_start FUN_0207FCC0
FUN_0207FCC0: ; 0x0207FCC0
	mov r2, #0xc
	mul r2, r1
	ldr r1, _0207FCDC ; =UNK_020FB792
	ldrh r2, [r1, r2]
	mov r1, #0x2
	lsl r1, r1, #0xe
	tst r1, r2
	beq _0207FCD8
	lsl r1, r2, #0x18
	lsr r1, r1, #0x18
	ldrb r2, [r0, r1]
	add r2, #0x92
_0207FCD8:
	add r0, r2, #0x0
	bx lr
	.balign 4
_0207FCDC: .word UNK_020FB792

	thumb_func_start FUN_0207FCE0
FUN_0207FCE0: ; 0x0207FCE0
	mov r1, #0xc
	mul r1, r0
	ldr r0, _0207FCFC ; =UNK_020FB792
	ldrh r1, [r0, r1]
	mov r0, #0x2
	lsl r0, r0, #0xe
	tst r0, r1
	beq _0207FCF6
	lsl r0, r1, #0x18
	lsr r0, r0, #0x18
	bx lr
_0207FCF6:
	mov r0, #0xff
	bx lr
	nop
_0207FCFC: .word UNK_020FB792