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
|
.include "asm/macros.inc"
.include "global.inc"
.text
arm_func_start NNS_FndGetPrevListObject
NNS_FndGetPrevListObject: ; 0x020ADA84
cmp r1, #0x0
ldreq r0, [r0, #0x4]
ldrneh r0, [r0, #0xa]
ldrne r0, [r1, r0]
bx lr
arm_func_end NNS_FndGetPrevListObject
arm_func_start NNS_FndGetNextListObject
NNS_FndGetNextListObject: ; 0x020ADA98
cmp r1, #0x0
ldreq r0, [r0, #0x0]
ldrneh r0, [r0, #0xa]
addne r0, r1, r0
ldrne r0, [r0, #0x4]
bx lr
arm_func_end NNS_FndGetNextListObject
arm_func_start NNS_FndRemoveListObject
NNS_FndRemoveListObject: ; 0x020ADAB0
stmdb sp!, {lr}
sub sp, sp, #0x4
ldrh r12, [r0, #0xa]
ldr r3, [r1, r12]
add lr, r1, r12
cmp r3, #0x0
ldreq r1, [lr, #0x4]
streq r1, [r0, #0x0]
ldrne r2, [lr, #0x4]
addne r1, r3, r12
strne r2, [r1, #0x4]
ldr r3, [lr, #0x4]
cmp r3, #0x0
ldreq r1, [lr, #0x0]
streq r1, [r0, #0x4]
ldrneh r1, [r0, #0xa]
ldrne r2, [lr, #0x0]
strne r2, [r3, r1]
mov r1, #0x0
str r1, [lr, #0x0]
str r1, [lr, #0x4]
ldrh r1, [r0, #0x8]
sub r1, r1, #0x1
strh r1, [r0, #0x8]
add sp, sp, #0x4
ldmia sp!, {pc}
arm_func_end NNS_FndRemoveListObject
arm_func_start NNS_FndInsertListObject
NNS_FndInsertListObject: ; 0x020ADB18
stmdb sp!, {lr}
sub sp, sp, #0x4
cmp r1, #0x0
bne _020ADB38
mov r1, r2
bl NNS_FndAppendListObject
add sp, sp, #0x4
ldmia sp!, {pc}
_020ADB38:
ldr r3, [r0, #0x0]
cmp r1, r3
bne _020ADB54
mov r1, r2
bl NNS_FndPrependListObject
add sp, sp, #0x4
ldmia sp!, {pc}
_020ADB54:
ldrh lr, [r0, #0xa]
ldr r3, [r1, lr]
add r12, r2, lr
str r3, [r2, lr]
str r1, [r12, #0x4]
add r3, r3, lr
str r2, [r3, #0x4]
ldrh r3, [r0, #0xa]
str r2, [r1, r3]
ldrh r1, [r0, #0x8]
add r1, r1, #0x1
strh r1, [r0, #0x8]
add sp, sp, #0x4
ldmia sp!, {pc}
arm_func_end NNS_FndInsertListObject
arm_func_start NNS_FndPrependListObject
NNS_FndPrependListObject: ; 0x020ADB8C
stmdb sp!, {lr}
sub sp, sp, #0x4
ldr r2, [r0, #0x0]
cmp r2, #0x0
bne _020ADBAC
bl SetFirstObject
add sp, sp, #0x4
ldmia sp!, {pc}
_020ADBAC:
ldrh r3, [r0, #0xa]
mov r2, #0x0
str r2, [r1, r3]
ldr r2, [r0, #0x0]
add r3, r1, r3
str r2, [r3, #0x4]
ldrh r2, [r0, #0xa]
ldr r3, [r0, #0x0]
str r1, [r3, r2]
str r1, [r0, #0x0]
ldrh r1, [r0, #0x8]
add r1, r1, #0x1
strh r1, [r0, #0x8]
add sp, sp, #0x4
ldmia sp!, {pc}
arm_func_end NNS_FndPrependListObject
arm_func_start NNS_FndAppendListObject
NNS_FndAppendListObject: ; 0x020ADBE8
stmdb sp!, {lr}
sub sp, sp, #0x4
ldr r2, [r0, #0x0]
cmp r2, #0x0
bne _020ADC08
bl SetFirstObject
add sp, sp, #0x4
ldmia sp!, {pc}
_020ADC08:
ldrh r12, [r0, #0xa]
ldr r3, [r0, #0x4]
mov r2, #0x0
str r3, [r1, r12]
add r3, r1, r12
str r2, [r3, #0x4]
ldrh r2, [r0, #0xa]
ldr r3, [r0, #0x4]
add r2, r3, r2
str r1, [r2, #0x4]
str r1, [r0, #0x4]
ldrh r1, [r0, #0x8]
add r1, r1, #0x1
strh r1, [r0, #0x8]
add sp, sp, #0x4
ldmia sp!, {pc}
arm_func_end NNS_FndAppendListObject
arm_func_start SetFirstObject
SetFirstObject: ; 0x020ADC48
ldrh r3, [r0, #0xa]
mov r2, #0x0
add r12, r1, r3
str r2, [r12, #0x4]
str r2, [r1, r3]
str r1, [r0, #0x0]
str r1, [r0, #0x4]
ldrh r1, [r0, #0x8]
add r1, r1, #0x1
strh r1, [r0, #0x8]
bx lr
arm_func_end SetFirstObject
arm_func_start NNS_FndInitList
NNS_FndInitList: ; 0x020ADC74
mov r2, #0x0
str r2, [r0, #0x0]
str r2, [r0, #0x4]
strh r2, [r0, #0x8]
strh r1, [r0, #0xa]
bx lr
arm_func_end NNS_FndInitList
|