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
|
.include "asm/macros.inc"
.include "global.inc"
.section .text
arm_func_start NNS_G2dGetAnimSequenceByIdx
NNS_G2dGetAnimSequenceByIdx: ; 0x020AFC04
ldrh r2, [r0, #0x0]
cmp r2, r1
ldrhi r0, [r0, #0x4]
addhi r0, r0, r1, lsl #0x4
movls r0, #0x0
bx lr
arm_func_end NNS_G2dGetAnimSequenceByIdx
arm_func_start NNS_G2dUnpackNAN
NNS_G2dUnpackNAN: ; 0x020AFC1C
stmdb sp!, {r4-r9,lr}
sub sp, sp, #0x4
ldr r1, [r0, #0x4]
mov r6, #0x0
add r1, r1, r0
str r1, [r0, #0x4]
ldr r1, [r0, #0x8]
add r1, r1, r0
str r1, [r0, #0x8]
ldr r1, [r0, #0xc]
add r1, r1, r0
str r1, [r0, #0xc]
ldrh r1, [r0, #0x0]
ldr r4, [r0, #0x4]
ldr lr, [r0, #0x8]
cmp r1, #0x0
ldr r12, [r0, #0xc]
bls _020AFCCC
mov r1, r6
_020AFC68:
add r2, r4, r6, lsl #0x4
ldr r5, [r2, #0xc]
mov r3, r6, lsl #0x4
add r5, lr, r5
str r5, [r2, #0xc]
ldrh r7, [r4, r3]
mov r5, r1
cmp r7, #0x0
bls _020AFCB4
_020AFC8C:
ldr r9, [r2, #0xc]
add r7, r5, #0x1
ldr r8, [r9, r5, lsl #0x3]
mov r7, r7, lsl #0x10
add r8, r12, r8
str r8, [r9, r5, lsl #0x3]
ldrh r8, [r4, r3]
mov r5, r7, lsr #0x10
cmp r5, r8
blo _020AFC8C
_020AFCB4:
add r2, r6, #0x1
mov r2, r2, lsl #0x10
ldrh r3, [r0, #0x0]
mov r6, r2, lsr #0x10
cmp r6, r3
blo _020AFC68
_020AFCCC:
ldr r1, [r0, #0x14]
cmp r1, #0x0
addeq sp, sp, #0x4
ldmeqia sp!, {r4-r9,pc}
add r1, r1, r0
str r1, [r0, #0x14]
ldr r1, [r0, #0x14]
mov r12, #0x0
add r2, r1, #0x8
ldr r0, [r2, #0x4]
add r0, r0, r2
str r0, [r2, #0x4]
ldrh r0, [r1, #0x8]
cmp r0, #0x0
addls sp, sp, #0x4
ldmlsia sp!, {r4-r9,pc}
mov r0, r12
mov r6, r12
_020AFD14:
ldr r5, [r2, #0x4]
mov r3, r6
add r1, r5, r0
ldr r4, [r1, #0x4]
add r4, r4, r2
str r4, [r1, #0x4]
ldr r4, [r1, #0x8]
add r4, r4, r2
str r4, [r1, #0x8]
ldrh r4, [r5, r0]
cmp r4, #0x0
bls _020AFD6C
mov r7, r6
_020AFD48:
ldr r5, [r1, #0x8]
add r3, r3, #0x1
ldr r4, [r5, r7]
add r4, r4, r2
str r4, [r5, r7]
ldrh r4, [r1, #0x0]
add r7, r7, #0x4
cmp r3, r4
blo _020AFD48
_020AFD6C:
ldrh r1, [r2, #0x0]
add r12, r12, #0x1
add r0, r0, #0xc
cmp r12, r1
blo _020AFD14
add sp, sp, #0x4
ldmia sp!, {r4-r9,pc}
arm_func_end NNS_G2dUnpackNAN
arm_func_start NNS_G2dGetUnpackedMCAnimBank
NNS_G2dGetUnpackedMCAnimBank: ; 0x020AFD88
ldr ip, _020AFD90 ; =GetUnpackedAnimBankImpl_
bx r12
.balign 4
_020AFD90: .word GetUnpackedAnimBankImpl_
arm_func_end NNS_G2dGetUnpackedMCAnimBank
arm_func_start NNS_G2dGetUnpackedAnimBank
NNS_G2dGetUnpackedAnimBank: ; 0x020AFD94
ldr ip, _020AFD9C ; =GetUnpackedAnimBankImpl_
bx r12
.balign 4
_020AFD9C: .word GetUnpackedAnimBankImpl_
arm_func_end NNS_G2dGetUnpackedAnimBank
arm_func_start GetUnpackedAnimBankImpl_
GetUnpackedAnimBankImpl_: ; 0x020AFDA0
stmdb sp!, {r4-r5,lr}
sub sp, sp, #0x4
mov r5, r1
ldr r1, _020AFDE4 ; =0x41424E4B
bl NNS_G2dFindBinaryBlock
movs r4, r0
moveq r0, #0x0
addeq sp, sp, #0x4
streq r0, [r5, #0x0]
ldmeqia sp!, {r4-r5,pc}
add r0, r4, #0x8
bl NNS_G2dUnpackNAN
add r0, r4, #0x8
str r0, [r5, #0x0]
mov r0, #0x1
add sp, sp, #0x4
ldmia sp!, {r4-r5,pc}
.balign 4
_020AFDE4: .word 0x41424E4B
arm_func_end GetUnpackedAnimBankImpl_
|