2686 lines
64 KiB
NASM
Executable File
2686 lines
64 KiB
NASM
Executable File
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727
|
|
|
|
TTL d:\MyProject\VS2005\Tcpmp\tcpmp\amr\26204\dec_gain.c
|
|
CODE32
|
|
|
|
AREA |.drectve|, DRECTVE
|
|
DCB "-defaultlib:LIBCMT "
|
|
DCB "-defaultlib:OLDNAMES "
|
|
|
|
EXPORT |D_GAIN_init|
|
|
IMPORT |memset|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1573| DCD |$LN5@D_GAIN_ini|
|
|
DCD 0x40002103
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_init| PROC
|
|
; File d:\myproject\vs2005\tcpmp\tcpmp\amr\26204\dec_gain.c
|
|
; Line 38
|
|
|$LN5@D_GAIN_ini|
|
|
mov r12, sp
|
|
stmdb sp!, {r0}
|
|
stmdb sp!, {r12, lr}
|
|
|$M1570|
|
|
; Line 41
|
|
ldr r2, [sp, #8]
|
|
mvn r3, #0xDF
|
|
mov r3, r3, lsl #6
|
|
strh r3, [r2]
|
|
; Line 42
|
|
ldr r3, [sp, #8]
|
|
add r2, r3, #2
|
|
mvn r3, #0xDF
|
|
mov r3, r3, lsl #6
|
|
strh r3, [r2]
|
|
; Line 43
|
|
ldr r3, [sp, #8]
|
|
add r2, r3, #4
|
|
mvn r3, #0xDF
|
|
mov r3, r3, lsl #6
|
|
strh r3, [r2]
|
|
; Line 44
|
|
ldr r3, [sp, #8]
|
|
add r2, r3, #6
|
|
mvn r3, #0xDF
|
|
mov r3, r3, lsl #6
|
|
strh r3, [r2]
|
|
; Line 53
|
|
mov r2, #0x24
|
|
mov r1, #0
|
|
ldr r3, [sp, #8]
|
|
add r0, r3, #8
|
|
bl memset
|
|
; Line 55
|
|
ldr r3, [sp, #8]
|
|
add r2, r3, #0x2C
|
|
mov r3, #0x55, 24
|
|
orr r3, r3, #0x55
|
|
strh r3, [r2]
|
|
; Line 57
|
|
ldmia sp, {sp, pc}
|
|
|$M1571|
|
|
|
|
ENDP ; |D_GAIN_init|
|
|
|
|
EXPORT |D_GAIN_decode|
|
|
IMPORT |D_UTIL_log2|
|
|
IMPORT |D_UTIL_mpy_32_16|
|
|
IMPORT |D_ROM_qua_gain7b|
|
|
IMPORT |D_ROM_qua_gain6b|
|
|
IMPORT |D_UTIL_pow2|
|
|
IMPORT |D_UTIL_l_extract|
|
|
IMPORT |D_ROM_cdown_usable|
|
|
IMPORT |D_ROM_cdown_unusable|
|
|
IMPORT |D_ROM_pdown_usable|
|
|
IMPORT |D_ROM_pdown_unusable|
|
|
IMPORT |D_UTIL_normalised_inverse_sqrt|
|
|
IMPORT |D_UTIL_dot_product12|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1582| DCD |$LN45@D_GAIN_dec|
|
|
DCD 0x40026304
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_decode| PROC
|
|
; Line 169
|
|
|$LN45@D_GAIN_dec|
|
|
mov r12, sp
|
|
stmdb sp!, {r0 - r3}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #0x5C
|
|
|$M1579|
|
|
; Line 178
|
|
ldr r3, [sp, #0x8C]
|
|
str r3, [sp, #4]
|
|
; Line 179
|
|
ldr r3, [sp, #0x8C]
|
|
add r3, r3, #8
|
|
str r3, [sp, #0x24]
|
|
; Line 180
|
|
ldr r3, [sp, #0x8C]
|
|
add r3, r3, #0xA
|
|
str r3, [sp, #0x1C]
|
|
; Line 181
|
|
ldr r3, [sp, #0x8C]
|
|
add r3, r3, #0xC
|
|
str r3, [sp, #0x38]
|
|
; Line 182
|
|
ldr r3, [sp, #0x8C]
|
|
add r3, r3, #0xE
|
|
str r3, [sp, #0xC]
|
|
; Line 183
|
|
ldr r3, [sp, #0x8C]
|
|
add r3, r3, #0x18
|
|
str r3, [sp, #0x34]
|
|
; Line 184
|
|
ldr r3, [sp, #0x8C]
|
|
add r3, r3, #0x22
|
|
str r3, [sp, #0x2C]
|
|
; Line 191
|
|
add r3, sp, #8
|
|
mov r2, #0x40
|
|
ldr r1, [sp, #0x6C]
|
|
ldr r0, [sp, #0x6C]
|
|
bl D_UTIL_dot_product12
|
|
str r0, [sp, #0x40]
|
|
ldr r3, [sp, #0x40]
|
|
str r3, [sp, #0x3C]
|
|
; Line 192
|
|
ldrsh r3, [sp, #8]
|
|
sub r3, r3, #0x18
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #8]
|
|
; Line 193
|
|
add r1, sp, #8
|
|
add r0, sp, #0x3C
|
|
bl D_UTIL_normalised_inverse_sqrt
|
|
; Line 195
|
|
ldrsh r3, [sp, #8]
|
|
cmp r3, #3
|
|
ble |$LN36@D_GAIN_dec|
|
|
; Line 197
|
|
ldrsh r3, [sp, #8]
|
|
sub r2, r3, #3
|
|
ldr r3, [sp, #0x3C]
|
|
mov r3, r3, lsl r2
|
|
str r3, [sp, #0x3C]
|
|
; Line 199
|
|
b |$LN35@D_GAIN_dec|
|
|
|$LN36@D_GAIN_dec|
|
|
; Line 201
|
|
ldrsh r3, [sp, #8]
|
|
rsb r2, r3, #3
|
|
ldr r3, [sp, #0x3C]
|
|
mov r3, r3, asr r2
|
|
str r3, [sp, #0x3C]
|
|
|$LN35@D_GAIN_dec|
|
|
; Line 204
|
|
ldr r3, [sp, #0x3C]
|
|
mov r3, r3, asr #16
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0x30]
|
|
; Line 209
|
|
ldrsh r3, [sp, #0x78]
|
|
cmp r3, #0
|
|
beq |$LN34@D_GAIN_dec|
|
|
; Line 211
|
|
ldr r3, [sp, #0xC]
|
|
add r0, r3, #4
|
|
bl D_GAIN_median
|
|
strh r0, [sp, #0x44]
|
|
ldrsh r3, [sp, #0x44]
|
|
strh r3, [sp, #0x20]
|
|
; Line 212
|
|
ldrsh r2, [sp, #0x20]
|
|
ldr r3, [sp, #0x24]
|
|
strh r2, [r3]
|
|
; Line 214
|
|
ldr r3, [sp, #0x24]
|
|
ldrsh r2, [r3]
|
|
mov r3, #0xF, 22
|
|
orr r3, r3, #0xCD
|
|
cmp r2, r3
|
|
ble |$LN33@D_GAIN_dec|
|
|
; Line 216
|
|
ldr r2, [sp, #0x24]
|
|
mov r3, #0xF, 22
|
|
orr r3, r3, #0xCD
|
|
strh r3, [r2]
|
|
|$LN33@D_GAIN_dec|
|
|
; Line 219
|
|
ldrsh r3, [sp, #0x84]
|
|
cmp r3, #0
|
|
beq |$LN32@D_GAIN_dec|
|
|
; Line 222
|
|
ldrsh r1, [sp, #0x80]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [pc, #0x824]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0x24]
|
|
ldrsh r3, [r3]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
mov r2, r3, lsl #16
|
|
mov r2, r2, asr #16
|
|
ldr r3, [sp, #0x70]
|
|
strh r2, [r3]
|
|
; Line 224
|
|
b |$LN31@D_GAIN_dec|
|
|
|$LN32@D_GAIN_dec|
|
|
; Line 227
|
|
ldrsh r1, [sp, #0x80]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [pc, #0x7E4]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0x24]
|
|
ldrsh r3, [r3]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
mov r2, r3, lsl #16
|
|
mov r2, r2, asr #16
|
|
ldr r3, [sp, #0x70]
|
|
strh r2, [r3]
|
|
|$LN31@D_GAIN_dec|
|
|
; Line 230
|
|
ldr r3, [sp, #0x34]
|
|
add r0, r3, #4
|
|
bl D_GAIN_median
|
|
strh r0, [sp, #0x46]
|
|
ldrsh r3, [sp, #0x46]
|
|
strh r3, [sp, #0x20]
|
|
; Line 232
|
|
ldrsh r3, [sp, #0x88]
|
|
cmp r3, #2
|
|
ble |$LN30@D_GAIN_dec|
|
|
; Line 234
|
|
ldrsh r2, [sp, #0x20]
|
|
ldr r3, [sp, #0x1C]
|
|
strh r2, [r3]
|
|
; Line 236
|
|
b |$LN29@D_GAIN_dec|
|
|
|$LN30@D_GAIN_dec|
|
|
; Line 238
|
|
ldrsh r3, [sp, #0x84]
|
|
cmp r3, #0
|
|
beq |$LN28@D_GAIN_dec|
|
|
; Line 241
|
|
ldrsh r1, [sp, #0x80]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [pc, #0x768]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldrsh r3, [sp, #0x20]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
mov r2, r3, lsl #16
|
|
mov r2, r2, asr #16
|
|
ldr r3, [sp, #0x1C]
|
|
strh r2, [r3]
|
|
; Line 243
|
|
b |$LN27@D_GAIN_dec|
|
|
|$LN28@D_GAIN_dec|
|
|
; Line 246
|
|
ldrsh r1, [sp, #0x80]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [pc, #0x72C]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldrsh r3, [sp, #0x20]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
mov r2, r3, lsl #16
|
|
mov r2, r2, asr #16
|
|
ldr r3, [sp, #0x1C]
|
|
strh r2, [r3]
|
|
|$LN27@D_GAIN_dec|
|
|
|$LN29@D_GAIN_dec|
|
|
; Line 251
|
|
ldr r3, [sp, #4]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #2
|
|
ldrsh r3, [r3]
|
|
add r2, r2, r3
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #4
|
|
ldrsh r3, [r3]
|
|
add r2, r2, r3
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #6
|
|
ldrsh r3, [r3]
|
|
add r3, r2, r3
|
|
str r3, [sp, #0x3C]
|
|
; Line 252
|
|
ldr r3, [sp, #0x3C]
|
|
mov r3, r3, asr #2
|
|
str r3, [sp, #0x14]
|
|
; Line 253
|
|
ldr r3, [sp, #0x14]
|
|
sub r3, r3, #3, 22
|
|
str r3, [sp, #0x14]
|
|
; Line 255
|
|
ldr r3, [sp, #0x14]
|
|
cmn r3, #0xE, 22
|
|
bge |$LN26@D_GAIN_dec|
|
|
; Line 257
|
|
mvn r3, #0xDF
|
|
mov r3, r3, lsl #6
|
|
str r3, [sp, #0x14]
|
|
|$LN26@D_GAIN_dec|
|
|
; Line 260
|
|
ldr r3, [sp, #4]
|
|
add r1, r3, #4
|
|
ldr r3, [sp, #4]
|
|
add r2, r3, #6
|
|
ldrsh r3, [r1]
|
|
strh r3, [r2]
|
|
; Line 261
|
|
ldr r3, [sp, #4]
|
|
add r1, r3, #2
|
|
ldr r3, [sp, #4]
|
|
add r2, r3, #4
|
|
ldrsh r3, [r1]
|
|
strh r3, [r2]
|
|
; Line 262
|
|
ldr r3, [sp, #4]
|
|
add r2, r3, #2
|
|
ldr r3, [sp, #4]
|
|
ldrsh r3, [r3]
|
|
strh r3, [r2]
|
|
; Line 263
|
|
ldr r3, [sp, #0x14]
|
|
mov r2, r3, lsl #16
|
|
mov r2, r2, asr #16
|
|
ldr r3, [sp, #4]
|
|
strh r2, [r3]
|
|
; Line 265
|
|
mov r3, #1
|
|
strh r3, [sp, #0xA]
|
|
b |$LN25@D_GAIN_dec|
|
|
|$LN24@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
add r3, r3, #1
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0xA]
|
|
|$LN25@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
cmp r3, #5
|
|
bge |$LN23@D_GAIN_dec|
|
|
; Line 267
|
|
ldrsh r1, [sp, #0xA]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x34]
|
|
add r0, r3, r2
|
|
ldrsh r3, [sp, #0xA]
|
|
sub r1, r3, #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x34]
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 268
|
|
b |$LN24@D_GAIN_dec|
|
|
|$LN23@D_GAIN_dec|
|
|
; Line 269
|
|
ldr r3, [sp, #0x34]
|
|
add r2, r3, #8
|
|
ldr r3, [sp, #0x1C]
|
|
ldrsh r3, [r3]
|
|
strh r3, [r2]
|
|
; Line 271
|
|
mov r3, #1
|
|
strh r3, [sp, #0xA]
|
|
b |$LN22@D_GAIN_dec|
|
|
|$LN21@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
add r3, r3, #1
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0xA]
|
|
|$LN22@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
cmp r3, #5
|
|
bge |$LN20@D_GAIN_dec|
|
|
; Line 273
|
|
ldrsh r1, [sp, #0xA]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r0, r3, r2
|
|
ldrsh r3, [sp, #0xA]
|
|
sub r1, r3, #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 274
|
|
b |$LN21@D_GAIN_dec|
|
|
|$LN20@D_GAIN_dec|
|
|
; Line 275
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, #8
|
|
ldr r3, [sp, #0x24]
|
|
ldrsh r3, [r3]
|
|
strh r3, [r2]
|
|
; Line 279
|
|
ldr r3, [sp, #0x1C]
|
|
ldrsh r2, [r3]
|
|
ldrsh r3, [sp, #0x30]
|
|
mul r3, r2, r3
|
|
mov r2, r3, lsl #1
|
|
ldr r3, [sp, #0x74]
|
|
str r2, [r3]
|
|
; Line 281
|
|
b |$LN37@D_GAIN_dec|
|
|
|$LN34@D_GAIN_dec|
|
|
; Line 291
|
|
ldr r3, [sp, #4]
|
|
ldrsh r2, [r3]
|
|
mov r3, #1, 20
|
|
mul r3, r2, r3
|
|
add r3, r3, #0xF, 8
|
|
str r3, [sp, #0x3C]
|
|
; Line 292
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #2
|
|
ldrsh r1, [r3]
|
|
mov r3, #3, 22
|
|
orr r3, r3, #0xCD
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x3C]
|
|
add r3, r3, r2
|
|
str r3, [sp, #0x3C]
|
|
; Line 293
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #4
|
|
ldrsh r1, [r3]
|
|
mov r3, #9, 24
|
|
orr r3, r3, #0x9A
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x3C]
|
|
add r3, r3, r2
|
|
str r3, [sp, #0x3C]
|
|
; Line 294
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #6
|
|
ldrsh r1, [r3]
|
|
mov r3, #6, 24
|
|
orr r3, r3, #0x66
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x3C]
|
|
add r3, r3, r2
|
|
str r3, [sp, #0x3C]
|
|
; Line 295
|
|
ldr r3, [sp, #0x3C]
|
|
mov r3, r3, asr #15
|
|
str r3, [sp, #0x10]
|
|
; Line 302
|
|
ldr r2, [sp, #0x10]
|
|
mov r3, #0x15, 24
|
|
orr r3, r3, #0x43
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #7
|
|
str r3, [sp, #0x3C]
|
|
; Line 304
|
|
add r2, sp, #0x28
|
|
add r1, sp, #0x22
|
|
ldr r0, [sp, #0x3C]
|
|
bl D_UTIL_l_extract
|
|
; Line 306
|
|
ldrsh r1, [sp, #0x28]
|
|
mov r0, #0xE
|
|
bl D_UTIL_pow2
|
|
str r0, [sp, #0x48]
|
|
ldr r3, [sp, #0x48]
|
|
str r3, [sp, #0x10]
|
|
; Line 312
|
|
ldrsh r3, [sp, #0x22]
|
|
sub r3, r3, #0xE
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0x22]
|
|
; Line 315
|
|
ldrsh r3, [sp, #0x68]
|
|
cmp r3, #6
|
|
bne |$LN19@D_GAIN_dec|
|
|
; Line 317
|
|
ldrsh r3, [sp, #0x64]
|
|
mov r1, r3, lsl #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [pc, #0x42C]
|
|
add r3, r3, r2
|
|
str r3, [sp]
|
|
; Line 319
|
|
b |$LN18@D_GAIN_dec|
|
|
|$LN19@D_GAIN_dec|
|
|
; Line 321
|
|
ldrsh r3, [sp, #0x64]
|
|
mov r1, r3, lsl #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [pc, #0x408]
|
|
add r3, r3, r2
|
|
str r3, [sp]
|
|
|$LN18@D_GAIN_dec|
|
|
; Line 324
|
|
ldr r3, [sp]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0x70]
|
|
strh r2, [r3]
|
|
ldr r3, [sp]
|
|
add r3, r3, #2
|
|
str r3, [sp]
|
|
; Line 325
|
|
ldr r3, [sp]
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0x18]
|
|
ldr r3, [sp]
|
|
add r3, r3, #2
|
|
str r3, [sp]
|
|
; Line 326
|
|
ldrsh r2, [sp, #0x18]
|
|
ldr r3, [sp, #0x10]
|
|
mul r3, r2, r3
|
|
str r3, [sp, #0x3C]
|
|
; Line 327
|
|
ldrsh r3, [sp, #0x22]
|
|
add r3, r3, #5
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0x22]
|
|
; Line 329
|
|
ldrsh r3, [sp, #0x22]
|
|
cmp r3, #0
|
|
bmi |$LN17@D_GAIN_dec|
|
|
; Line 331
|
|
ldrsh r2, [sp, #0x22]
|
|
ldr r3, [sp, #0x3C]
|
|
mov r2, r3, lsl r2
|
|
ldr r3, [sp, #0x74]
|
|
str r2, [r3]
|
|
; Line 333
|
|
b |$LN16@D_GAIN_dec|
|
|
|$LN17@D_GAIN_dec|
|
|
; Line 335
|
|
ldrsh r3, [sp, #0x22]
|
|
rsb r2, r3, #0
|
|
ldr r3, [sp, #0x3C]
|
|
mov r2, r3, asr r2
|
|
ldr r3, [sp, #0x74]
|
|
str r2, [r3]
|
|
|$LN16@D_GAIN_dec|
|
|
; Line 338
|
|
ldrsh r3, [sp, #0x7C]
|
|
cmp r3, #1
|
|
bne |$LN15@D_GAIN_dec|
|
|
; Line 340
|
|
ldr r3, [sp, #0x38]
|
|
ldrsh r2, [r3]
|
|
mov r3, #5, 22
|
|
mul r3, r2, r3
|
|
mov r3, r3, lsl #1
|
|
str r3, [sp, #0x3C]
|
|
; Line 343
|
|
ldr r3, [sp, #0x74]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #0x3C]
|
|
cmp r2, r3
|
|
ble |$LN41@D_GAIN_dec|
|
|
mov r3, #1
|
|
str r3, [sp, #0x4C]
|
|
b |$LN42@D_GAIN_dec|
|
|
|$LN41@D_GAIN_dec|
|
|
mov r3, #0
|
|
str r3, [sp, #0x4C]
|
|
|$LN42@D_GAIN_dec|
|
|
ldr r3, [sp, #0x74]
|
|
ldr r3, [r3]
|
|
cmp r3, #0x19, 14
|
|
ble |$LN39@D_GAIN_dec|
|
|
mov r3, #1
|
|
str r3, [sp, #0x50]
|
|
b |$LN40@D_GAIN_dec|
|
|
|$LN39@D_GAIN_dec|
|
|
mov r3, #0
|
|
str r3, [sp, #0x50]
|
|
|$LN40@D_GAIN_dec|
|
|
ldr r2, [sp, #0x4C]
|
|
ldr r3, [sp, #0x50]
|
|
tst r2, r3
|
|
beq |$LN14@D_GAIN_dec|
|
|
; Line 345
|
|
ldr r2, [sp, #0x3C]
|
|
ldr r3, [sp, #0x74]
|
|
str r2, [r3]
|
|
|$LN14@D_GAIN_dec|
|
|
|$LN15@D_GAIN_dec|
|
|
; Line 350
|
|
ldr r3, [sp, #0x74]
|
|
ldr r3, [r3]
|
|
add r3, r3, #1, 20
|
|
mov r3, r3, asr #13
|
|
str r3, [sp, #0x3C]
|
|
; Line 352
|
|
ldr r3, [sp, #0x3C]
|
|
cmp r3, #2, 18
|
|
bge |$LN13@D_GAIN_dec|
|
|
; Line 354
|
|
ldr r3, [sp, #0x3C]
|
|
mov r2, r3, lsl #16
|
|
mov r2, r2, asr #16
|
|
ldr r3, [sp, #0x1C]
|
|
strh r2, [r3]
|
|
; Line 356
|
|
b |$LN12@D_GAIN_dec|
|
|
|$LN13@D_GAIN_dec|
|
|
; Line 358
|
|
ldr r2, [sp, #0x1C]
|
|
mov r3, #0x7F, 24
|
|
orr r3, r3, #0xFF
|
|
strh r3, [r2]
|
|
|$LN12@D_GAIN_dec|
|
|
; Line 361
|
|
ldr r3, [sp, #0x70]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0x24]
|
|
strh r2, [r3]
|
|
; Line 362
|
|
ldr r3, [sp, #0x1C]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0x38]
|
|
strh r2, [r3]
|
|
; Line 364
|
|
mov r3, #1
|
|
strh r3, [sp, #0xA]
|
|
b |$LN11@D_GAIN_dec|
|
|
|$LN10@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
add r3, r3, #1
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0xA]
|
|
|$LN11@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
cmp r3, #5
|
|
bge |$LN9@D_GAIN_dec|
|
|
; Line 366
|
|
ldrsh r1, [sp, #0xA]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x34]
|
|
add r0, r3, r2
|
|
ldrsh r3, [sp, #0xA]
|
|
sub r1, r3, #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x34]
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 367
|
|
b |$LN10@D_GAIN_dec|
|
|
|$LN9@D_GAIN_dec|
|
|
; Line 368
|
|
ldr r3, [sp, #0x34]
|
|
add r2, r3, #8
|
|
ldr r3, [sp, #0x1C]
|
|
ldrsh r3, [r3]
|
|
strh r3, [r2]
|
|
; Line 370
|
|
mov r3, #1
|
|
strh r3, [sp, #0xA]
|
|
b |$LN8@D_GAIN_dec|
|
|
|$LN7@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
add r3, r3, #1
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0xA]
|
|
|$LN8@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
cmp r3, #5
|
|
bge |$LN6@D_GAIN_dec|
|
|
; Line 372
|
|
ldrsh r1, [sp, #0xA]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r0, r3, r2
|
|
ldrsh r3, [sp, #0xA]
|
|
sub r1, r3, #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 373
|
|
b |$LN7@D_GAIN_dec|
|
|
|$LN6@D_GAIN_dec|
|
|
; Line 374
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, #8
|
|
ldr r3, [sp, #0x24]
|
|
ldrsh r3, [r3]
|
|
strh r3, [r2]
|
|
; Line 376
|
|
mov r3, #1
|
|
strh r3, [sp, #0xA]
|
|
b |$LN5@D_GAIN_dec|
|
|
|$LN4@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
add r3, r3, #1
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0xA]
|
|
|$LN5@D_GAIN_dec|
|
|
ldrsh r3, [sp, #0xA]
|
|
cmp r3, #5
|
|
bge |$LN3@D_GAIN_dec|
|
|
; Line 378
|
|
ldrsh r1, [sp, #0xA]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x2C]
|
|
add r0, r3, r2
|
|
ldrsh r3, [sp, #0xA]
|
|
sub r1, r3, #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x2C]
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 379
|
|
b |$LN4@D_GAIN_dec|
|
|
|$LN3@D_GAIN_dec|
|
|
; Line 380
|
|
ldr r3, [sp, #0x2C]
|
|
add r2, r3, #8
|
|
ldr r3, [sp, #0x24]
|
|
ldrsh r3, [r3]
|
|
strh r3, [r2]
|
|
; Line 383
|
|
add r2, sp, #0x28
|
|
add r1, sp, #8
|
|
ldr r3, [sp, #0x74]
|
|
ldr r0, [r3]
|
|
bl D_UTIL_l_extract
|
|
; Line 384
|
|
ldrsh r2, [sp, #0x30]
|
|
ldrsh r1, [sp, #0x28]
|
|
ldrsh r0, [sp, #8]
|
|
bl D_UTIL_mpy_32_16
|
|
str r0, [sp, #0x54]
|
|
ldr r3, [sp, #0x54]
|
|
str r3, [sp, #0x3C]
|
|
; Line 386
|
|
ldr r3, [sp, #0x3C]
|
|
cmn r3, #0x1F, 4
|
|
bge |$LN2@D_GAIN_dec|
|
|
; Line 388
|
|
ldr r3, [sp, #0x3C]
|
|
mov r2, r3, lsl #3
|
|
ldr r3, [sp, #0x74]
|
|
str r2, [r3]
|
|
; Line 390
|
|
b |$LN1@D_GAIN_dec|
|
|
|$LN2@D_GAIN_dec|
|
|
; Line 392
|
|
ldr r2, [sp, #0x74]
|
|
mvn r3, #2, 2
|
|
str r3, [r2]
|
|
|$LN1@D_GAIN_dec|
|
|
; Line 400
|
|
ldrsh r3, [sp, #0x18]
|
|
str r3, [sp, #0x3C]
|
|
; Line 401
|
|
add r2, sp, #0x28
|
|
add r1, sp, #8
|
|
ldr r0, [sp, #0x3C]
|
|
bl D_UTIL_log2
|
|
; Line 402
|
|
ldrsh r3, [sp, #8]
|
|
sub r3, r3, #0xB
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #8]
|
|
; Line 403
|
|
mov r2, #6, 20
|
|
orr r2, r2, #0x54
|
|
ldrsh r1, [sp, #0x28]
|
|
ldrsh r0, [sp, #8]
|
|
bl D_UTIL_mpy_32_16
|
|
str r0, [sp, #0x58]
|
|
ldr r3, [sp, #0x58]
|
|
str r3, [sp, #0x3C]
|
|
; Line 404
|
|
ldr r3, [sp, #0x3C]
|
|
mov r3, r3, asr #3
|
|
str r3, [sp, #0x14]
|
|
; Line 407
|
|
ldr r3, [sp, #4]
|
|
add r1, r3, #4
|
|
ldr r3, [sp, #4]
|
|
add r2, r3, #6
|
|
ldrsh r3, [r1]
|
|
strh r3, [r2]
|
|
; Line 408
|
|
ldr r3, [sp, #4]
|
|
add r1, r3, #2
|
|
ldr r3, [sp, #4]
|
|
add r2, r3, #4
|
|
ldrsh r3, [r1]
|
|
strh r3, [r2]
|
|
; Line 409
|
|
ldr r3, [sp, #4]
|
|
add r2, r3, #2
|
|
ldr r3, [sp, #4]
|
|
ldrsh r3, [r3]
|
|
strh r3, [r2]
|
|
; Line 410
|
|
ldr r3, [sp, #0x14]
|
|
mov r2, r3, lsl #16
|
|
mov r2, r2, asr #16
|
|
ldr r3, [sp, #4]
|
|
strh r2, [r3]
|
|
|$LN37@D_GAIN_dec|
|
|
; Line 413
|
|
add sp, sp, #0x5C
|
|
ldmia sp, {sp, pc}
|
|
|$LN46@D_GAIN_dec|
|
|
DCD |D_ROM_qua_gain7b|
|
|
DCD |D_ROM_qua_gain6b|
|
|
DCD |D_ROM_cdown_usable|
|
|
DCD |D_ROM_cdown_unusable|
|
|
DCD |D_ROM_pdown_usable|
|
|
DCD |D_ROM_pdown_unusable|
|
|
|$M1580|
|
|
|
|
ENDP ; |D_GAIN_decode|
|
|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1589| DCD |$LN14@D_GAIN_med|
|
|
DCD 0x40006604
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_median| PROC
|
|
; Line 73
|
|
|$LN14@D_GAIN_med|
|
|
mov r12, sp
|
|
stmdb sp!, {r0}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #0x10
|
|
|$M1586|
|
|
; Line 76
|
|
ldr r3, [sp, #0x18]
|
|
sub r3, r3, #4
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #8]
|
|
; Line 77
|
|
ldr r3, [sp, #0x18]
|
|
sub r3, r3, #2
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp]
|
|
; Line 78
|
|
ldr r3, [sp, #0x18]
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0xA]
|
|
; Line 79
|
|
ldr r3, [sp, #0x18]
|
|
add r3, r3, #2
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #6]
|
|
; Line 80
|
|
ldr r3, [sp, #0x18]
|
|
add r3, r3, #4
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #4]
|
|
; Line 82
|
|
ldrsh r2, [sp]
|
|
ldrsh r3, [sp, #8]
|
|
cmp r2, r3
|
|
bge |$LN9@D_GAIN_med|
|
|
; Line 84
|
|
ldrsh r3, [sp, #8]
|
|
strh r3, [sp, #2]
|
|
; Line 85
|
|
ldrsh r3, [sp]
|
|
strh r3, [sp, #8]
|
|
; Line 86
|
|
ldrsh r3, [sp, #2]
|
|
strh r3, [sp]
|
|
|$LN9@D_GAIN_med|
|
|
; Line 89
|
|
ldrsh r2, [sp, #0xA]
|
|
ldrsh r3, [sp, #8]
|
|
cmp r2, r3
|
|
bge |$LN8@D_GAIN_med|
|
|
; Line 91
|
|
ldrsh r3, [sp, #8]
|
|
strh r3, [sp, #2]
|
|
; Line 92
|
|
ldrsh r3, [sp, #0xA]
|
|
strh r3, [sp, #8]
|
|
; Line 93
|
|
ldrsh r3, [sp, #2]
|
|
strh r3, [sp, #0xA]
|
|
|$LN8@D_GAIN_med|
|
|
; Line 96
|
|
ldrsh r2, [sp, #6]
|
|
ldrsh r3, [sp, #8]
|
|
cmp r2, r3
|
|
bge |$LN7@D_GAIN_med|
|
|
; Line 98
|
|
ldrsh r3, [sp, #8]
|
|
strh r3, [sp, #2]
|
|
; Line 99
|
|
ldrsh r3, [sp, #6]
|
|
strh r3, [sp, #8]
|
|
; Line 100
|
|
ldrsh r3, [sp, #2]
|
|
strh r3, [sp, #6]
|
|
|$LN7@D_GAIN_med|
|
|
; Line 103
|
|
ldrsh r2, [sp, #4]
|
|
ldrsh r3, [sp, #8]
|
|
cmp r2, r3
|
|
bge |$LN6@D_GAIN_med|
|
|
; Line 105
|
|
ldrsh r3, [sp, #8]
|
|
strh r3, [sp, #4]
|
|
|$LN6@D_GAIN_med|
|
|
; Line 108
|
|
ldrsh r2, [sp, #0xA]
|
|
ldrsh r3, [sp]
|
|
cmp r2, r3
|
|
bge |$LN5@D_GAIN_med|
|
|
; Line 110
|
|
ldrsh r3, [sp]
|
|
strh r3, [sp, #2]
|
|
; Line 111
|
|
ldrsh r3, [sp, #0xA]
|
|
strh r3, [sp]
|
|
; Line 112
|
|
ldrsh r3, [sp, #2]
|
|
strh r3, [sp, #0xA]
|
|
|$LN5@D_GAIN_med|
|
|
; Line 115
|
|
ldrsh r2, [sp, #6]
|
|
ldrsh r3, [sp]
|
|
cmp r2, r3
|
|
bge |$LN4@D_GAIN_med|
|
|
; Line 117
|
|
ldrsh r3, [sp]
|
|
strh r3, [sp, #2]
|
|
; Line 118
|
|
ldrsh r3, [sp, #6]
|
|
strh r3, [sp]
|
|
; Line 119
|
|
ldrsh r3, [sp, #2]
|
|
strh r3, [sp, #6]
|
|
|$LN4@D_GAIN_med|
|
|
; Line 122
|
|
ldrsh r2, [sp, #4]
|
|
ldrsh r3, [sp]
|
|
cmp r2, r3
|
|
bge |$LN3@D_GAIN_med|
|
|
; Line 124
|
|
ldrsh r3, [sp]
|
|
strh r3, [sp, #4]
|
|
|$LN3@D_GAIN_med|
|
|
; Line 127
|
|
ldrsh r2, [sp, #6]
|
|
ldrsh r3, [sp, #0xA]
|
|
cmp r2, r3
|
|
bge |$LN2@D_GAIN_med|
|
|
; Line 129
|
|
ldrsh r3, [sp, #6]
|
|
strh r3, [sp, #0xA]
|
|
|$LN2@D_GAIN_med|
|
|
; Line 132
|
|
ldrsh r2, [sp, #4]
|
|
ldrsh r3, [sp, #0xA]
|
|
cmp r2, r3
|
|
bge |$LN1@D_GAIN_med|
|
|
; Line 134
|
|
ldrsh r3, [sp, #4]
|
|
strh r3, [sp, #0xA]
|
|
|$LN1@D_GAIN_med|
|
|
; Line 137
|
|
ldrsh r3, [sp, #0xA]
|
|
strh r3, [sp, #0xC]
|
|
; Line 138
|
|
ldrsh r0, [sp, #0xC]
|
|
add sp, sp, #0x10
|
|
ldmia sp, {sp, pc}
|
|
|$M1587|
|
|
|
|
ENDP ; |D_GAIN_median|
|
|
|
|
EXPORT |D_GAIN_adaptive_control|
|
|
IMPORT |D_UTIL_saturate|
|
|
IMPORT |D_UTIL_inverse_sqrt|
|
|
IMPORT |D_UTIL_norm_l|
|
|
IMPORT |__imp___rt_sdiv|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1600| DCD |$LN25@D_GAIN_ada|
|
|
DCD 0x4000cf04
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_adaptive_control| PROC
|
|
; Line 433
|
|
|$LN25@D_GAIN_ada|
|
|
mov r12, sp
|
|
stmdb sp!, {r0 - r2}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #0x30
|
|
|$M1597|
|
|
; Line 438
|
|
ldr r3, [sp, #0x3C]
|
|
ldrsh r3, [r3]
|
|
mov r3, r3, asr #2
|
|
str r3, [sp, #0x14]
|
|
; Line 439
|
|
ldr r2, [sp, #0x14]
|
|
ldr r3, [sp, #0x14]
|
|
mul r3, r2, r3
|
|
str r3, [sp, #0x10]
|
|
; Line 441
|
|
mov r3, #1
|
|
str r3, [sp, #0xC]
|
|
b |$LN16@D_GAIN_ada|
|
|
|$LN15@D_GAIN_ada|
|
|
ldr r3, [sp, #0xC]
|
|
add r3, r3, #1
|
|
str r3, [sp, #0xC]
|
|
|$LN16@D_GAIN_ada|
|
|
ldrsh r2, [sp, #0x40]
|
|
ldr r3, [sp, #0xC]
|
|
cmp r3, r2
|
|
bge |$LN14@D_GAIN_ada|
|
|
; Line 443
|
|
ldr r1, [sp, #0xC]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x3C]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
mov r3, r3, asr #2
|
|
str r3, [sp, #0x14]
|
|
; Line 444
|
|
ldr r1, [sp, #0x14]
|
|
ldr r3, [sp, #0x14]
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x10]
|
|
add r3, r3, r2
|
|
str r3, [sp, #0x10]
|
|
; Line 445
|
|
b |$LN15@D_GAIN_ada|
|
|
|$LN14@D_GAIN_ada|
|
|
; Line 447
|
|
ldr r3, [sp, #0x10]
|
|
mov r3, r3, lsl #1
|
|
str r3, [sp, #0x10]
|
|
; Line 449
|
|
ldr r3, [sp, #0x10]
|
|
cmp r3, #0
|
|
bne |$LN13@D_GAIN_ada|
|
|
; Line 451
|
|
b |$LN17@D_GAIN_ada|
|
|
|$LN13@D_GAIN_ada|
|
|
; Line 453
|
|
ldr r0, [sp, #0x10]
|
|
bl D_UTIL_norm_l
|
|
strh r0, [sp, #0x1C]
|
|
ldrsh r3, [sp, #0x1C]
|
|
sub r3, r3, #1
|
|
str r3, [sp, #8]
|
|
; Line 455
|
|
ldr r3, [sp, #8]
|
|
cmp r3, #0
|
|
blt |$LN12@D_GAIN_ada|
|
|
; Line 457
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #8]
|
|
mov r3, r2, lsl r3
|
|
add r3, r3, #2, 18
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #4]
|
|
; Line 459
|
|
b |$LN11@D_GAIN_ada|
|
|
|$LN12@D_GAIN_ada|
|
|
; Line 461
|
|
ldr r3, [sp, #8]
|
|
rsb r2, r3, #0
|
|
ldr r3, [sp, #0x10]
|
|
mov r3, r3, asr r2
|
|
add r3, r3, #2, 18
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #4]
|
|
|$LN11@D_GAIN_ada|
|
|
; Line 465
|
|
ldr r3, [sp, #0x38]
|
|
ldrsh r3, [r3]
|
|
mov r3, r3, asr #2
|
|
str r3, [sp, #0x14]
|
|
; Line 466
|
|
ldr r2, [sp, #0x14]
|
|
ldr r3, [sp, #0x14]
|
|
mul r3, r2, r3
|
|
str r3, [sp, #0x10]
|
|
; Line 468
|
|
mov r3, #1
|
|
str r3, [sp, #0xC]
|
|
b |$LN10@D_GAIN_ada|
|
|
|$LN9@D_GAIN_ada|
|
|
ldr r3, [sp, #0xC]
|
|
add r3, r3, #1
|
|
str r3, [sp, #0xC]
|
|
|$LN10@D_GAIN_ada|
|
|
ldrsh r2, [sp, #0x40]
|
|
ldr r3, [sp, #0xC]
|
|
cmp r3, r2
|
|
bge |$LN8@D_GAIN_ada|
|
|
; Line 470
|
|
ldr r1, [sp, #0xC]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x38]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
mov r3, r3, asr #2
|
|
str r3, [sp, #0x14]
|
|
; Line 471
|
|
ldr r1, [sp, #0x14]
|
|
ldr r3, [sp, #0x14]
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x10]
|
|
add r3, r3, r2
|
|
str r3, [sp, #0x10]
|
|
; Line 472
|
|
b |$LN9@D_GAIN_ada|
|
|
|$LN8@D_GAIN_ada|
|
|
; Line 474
|
|
ldr r3, [sp, #0x10]
|
|
mov r3, r3, lsl #1
|
|
str r3, [sp, #0x10]
|
|
; Line 476
|
|
ldr r3, [sp, #0x10]
|
|
cmp r3, #0
|
|
bne |$LN7@D_GAIN_ada|
|
|
; Line 478
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
; Line 480
|
|
b |$LN6@D_GAIN_ada|
|
|
|$LN7@D_GAIN_ada|
|
|
; Line 482
|
|
ldr r0, [sp, #0x10]
|
|
bl D_UTIL_norm_l
|
|
strh r0, [sp, #0x1E]
|
|
ldrsh r3, [sp, #0x1E]
|
|
str r3, [sp, #0xC]
|
|
; Line 483
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xC]
|
|
mov r3, r2, lsl r3
|
|
add r3, r3, #2, 18
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #0x10]
|
|
; Line 485
|
|
ldr r3, [sp, #0x10]
|
|
cmp r3, #2, 18
|
|
bge |$LN21@D_GAIN_ada|
|
|
mov r3, #1
|
|
str r3, [sp, #0x20]
|
|
b |$LN22@D_GAIN_ada|
|
|
|$LN21@D_GAIN_ada|
|
|
mov r3, #0
|
|
str r3, [sp, #0x20]
|
|
|$LN22@D_GAIN_ada|
|
|
ldr r3, [sp, #0x10]
|
|
cmp r3, #0
|
|
ble |$LN19@D_GAIN_ada|
|
|
mov r3, #1
|
|
str r3, [sp, #0x24]
|
|
b |$LN20@D_GAIN_ada|
|
|
|$LN19@D_GAIN_ada|
|
|
mov r3, #0
|
|
str r3, [sp, #0x24]
|
|
|$LN20@D_GAIN_ada|
|
|
ldr r2, [sp, #0x20]
|
|
ldr r3, [sp, #0x24]
|
|
tst r2, r3
|
|
beq |$LN5@D_GAIN_ada|
|
|
; Line 487
|
|
ldr r3, [sp, #0x10]
|
|
str r3, [sp, #0x18]
|
|
; Line 489
|
|
b |$LN4@D_GAIN_ada|
|
|
|$LN5@D_GAIN_ada|
|
|
; Line 491
|
|
mov r3, #0x7F, 24
|
|
orr r3, r3, #0xFF
|
|
str r3, [sp, #0x18]
|
|
|$LN4@D_GAIN_ada|
|
|
; Line 493
|
|
ldr r2, [sp, #8]
|
|
ldr r3, [sp, #0xC]
|
|
sub r3, r2, r3
|
|
str r3, [sp, #8]
|
|
; Line 498
|
|
ldr r3, [sp, #4]
|
|
mov r1, r3, lsl #15
|
|
ldr r0, [sp, #0x18]
|
|
ldr r3, [pc, #0xCC]
|
|
ldr r3, [r3]
|
|
mov lr, pc
|
|
mov pc, r3
|
|
str r0, [sp, #0x10]
|
|
; Line 499
|
|
ldr r3, [sp, #8]
|
|
rsb r2, r3, #7
|
|
ldr r3, [sp, #0x10]
|
|
mov r3, r3, lsl r2
|
|
str r3, [sp, #0x10]
|
|
; Line 500
|
|
ldr r0, [sp, #0x10]
|
|
bl D_UTIL_inverse_sqrt
|
|
str r0, [sp, #0x28]
|
|
ldr r3, [sp, #0x28]
|
|
str r3, [sp, #0x10]
|
|
; Line 501
|
|
ldr r3, [sp, #0x10]
|
|
mov r3, r3, lsl #9
|
|
add r3, r3, #2, 18
|
|
mov r3, r3, asr #16
|
|
str r3, [sp]
|
|
|$LN6@D_GAIN_ada|
|
|
; Line 505
|
|
mov r3, #0
|
|
str r3, [sp, #0xC]
|
|
b |$LN3@D_GAIN_ada|
|
|
|$LN2@D_GAIN_ada|
|
|
ldr r3, [sp, #0xC]
|
|
add r3, r3, #1
|
|
str r3, [sp, #0xC]
|
|
|$LN3@D_GAIN_ada|
|
|
ldrsh r2, [sp, #0x40]
|
|
ldr r3, [sp, #0xC]
|
|
cmp r3, r2
|
|
bge |$LN1@D_GAIN_ada|
|
|
; Line 507
|
|
ldr r1, [sp, #0xC]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x3C]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #13
|
|
str r3, [sp, #0x10]
|
|
; Line 508
|
|
ldr r0, [sp, #0x10]
|
|
bl D_UTIL_saturate
|
|
strh r0, [sp, #0x2C]
|
|
ldr r1, [sp, #0xC]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x3C]
|
|
add r2, r3, r2
|
|
ldrsh r3, [sp, #0x2C]
|
|
strh r3, [r2]
|
|
; Line 509
|
|
b |$LN2@D_GAIN_ada|
|
|
|$LN1@D_GAIN_ada|
|
|
|$LN17@D_GAIN_ada|
|
|
; Line 512
|
|
add sp, sp, #0x30
|
|
ldmia sp, {sp, pc}
|
|
|$LN26@D_GAIN_ada|
|
|
DCD |__imp___rt_sdiv|
|
|
|$M1598|
|
|
|
|
ENDP ; |D_GAIN_adaptive_control|
|
|
|
|
EXPORT |D_GAIN_lag_concealment_init|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1606| DCD |$LN8@D_GAIN_lag|
|
|
DCD 0x40001704
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_lag_concealment_init| PROC
|
|
; Line 586
|
|
|$LN8@D_GAIN_lag|
|
|
mov r12, sp
|
|
stmdb sp!, {r0}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #4
|
|
|$M1603|
|
|
; Line 589
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
b |$LN3@D_GAIN_lag|
|
|
|$LN2@D_GAIN_lag|
|
|
ldr r3, [sp]
|
|
add r3, r3, #1
|
|
str r3, [sp]
|
|
|$LN3@D_GAIN_lag|
|
|
ldr r3, [sp]
|
|
cmp r3, #5
|
|
bge |$LN1@D_GAIN_lag|
|
|
; Line 591
|
|
ldr r1, [sp]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, r2
|
|
mov r3, #0x40
|
|
strh r3, [r2]
|
|
; Line 592
|
|
b |$LN2@D_GAIN_lag|
|
|
|$LN1@D_GAIN_lag|
|
|
; Line 593
|
|
add sp, sp, #4
|
|
ldmia sp, {sp, pc}
|
|
|$M1604|
|
|
|
|
ENDP ; |D_GAIN_lag_concealment_init|
|
|
|
|
EXPORT |D_GAIN_lag_concealment|
|
|
IMPORT |D_UTIL_random|
|
|
IMPORT |memset|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1656| DCD |$LN96@D_GAIN_lag@2|
|
|
DCD 0x40025a04
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_lag_concealment| PROC
|
|
; Line 616
|
|
|$LN96@D_GAIN_lag@2|
|
|
mov r12, sp
|
|
stmdb sp!, {r0 - r3}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #0x98
|
|
|$M1653|
|
|
; Line 617
|
|
mov r3, #0
|
|
str r3, [sp, #0xC]
|
|
; Line 618
|
|
mov r3, #0
|
|
strh r3, [sp, #0x1C]
|
|
mov r2, #8
|
|
mov r1, #0
|
|
add r0, sp, #0x1E
|
|
bl memset
|
|
; Line 627
|
|
ldr r3, [sp, #0xA0]
|
|
add r3, r3, #8
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0x28]
|
|
; Line 628
|
|
ldr r3, [sp, #0xA0]
|
|
add r3, r3, #6
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0x12]
|
|
; Line 629
|
|
ldr r3, [sp, #0xA4]
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp]
|
|
; Line 632
|
|
ldr r3, [sp, #0xA4]
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0x10]
|
|
; Line 634
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
b |$LN47@D_GAIN_lag@2|
|
|
|$LN46@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
|$LN47@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #5
|
|
bge |$LN45@D_GAIN_lag@2|
|
|
; Line 636
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA4]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldrsh r3, [sp, #0x10]
|
|
cmp r2, r3
|
|
bge |$LN44@D_GAIN_lag@2|
|
|
; Line 638
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA4]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0x10]
|
|
|$LN44@D_GAIN_lag@2|
|
|
; Line 640
|
|
b |$LN46@D_GAIN_lag@2|
|
|
|$LN45@D_GAIN_lag@2|
|
|
; Line 643
|
|
ldr r3, [sp, #0xA4]
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #8]
|
|
; Line 645
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
b |$LN43@D_GAIN_lag@2|
|
|
|$LN42@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
|$LN43@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #5
|
|
bge |$LN41@D_GAIN_lag@2|
|
|
; Line 647
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA4]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldrsh r3, [sp, #8]
|
|
cmp r2, r3
|
|
ble |$LN40@D_GAIN_lag@2|
|
|
; Line 649
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA4]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #8]
|
|
|$LN40@D_GAIN_lag@2|
|
|
; Line 651
|
|
b |$LN42@D_GAIN_lag@2|
|
|
|$LN41@D_GAIN_lag@2|
|
|
; Line 654
|
|
ldr r3, [sp, #0xA0]
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0x30]
|
|
; Line 656
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
b |$LN39@D_GAIN_lag@2|
|
|
|$LN38@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
|$LN39@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #5
|
|
bge |$LN37@D_GAIN_lag@2|
|
|
; Line 658
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA0]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldrsh r3, [sp, #0x30]
|
|
cmp r2, r3
|
|
bge |$LN36@D_GAIN_lag@2|
|
|
; Line 660
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA0]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
strh r3, [sp, #0x30]
|
|
|$LN36@D_GAIN_lag@2|
|
|
; Line 662
|
|
b |$LN38@D_GAIN_lag@2|
|
|
|$LN37@D_GAIN_lag@2|
|
|
; Line 665
|
|
ldrsh r2, [sp, #8]
|
|
ldrsh r3, [sp, #0x10]
|
|
sub r3, r2, r3
|
|
str r3, [sp, #0x2C]
|
|
; Line 667
|
|
ldrsh r3, [sp, #0xB4]
|
|
cmp r3, #0
|
|
beq |$LN35@D_GAIN_lag@2|
|
|
; Line 673
|
|
ldrsh r3, [sp, #0x30]
|
|
cmp r3, #2, 20
|
|
ble |$LN52@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x38]
|
|
b |$LN53@D_GAIN_lag@2|
|
|
|$LN52@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x38]
|
|
|$LN53@D_GAIN_lag@2|
|
|
ldr r3, [sp, #0x2C]
|
|
cmp r3, #0xA
|
|
bge |$LN50@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x3C]
|
|
b |$LN51@D_GAIN_lag@2|
|
|
|$LN50@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x3C]
|
|
|$LN51@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x38]
|
|
ldr r3, [sp, #0x3C]
|
|
tst r2, r3
|
|
beq |$LN34@D_GAIN_lag@2|
|
|
; Line 675
|
|
ldr r3, [sp, #0xAC]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
b |$LN33@D_GAIN_lag@2|
|
|
|$LN34@D_GAIN_lag@2|
|
|
; Line 677
|
|
ldrsh r3, [sp, #0x28]
|
|
cmp r3, #2, 20
|
|
ble |$LN32@D_GAIN_lag@2|
|
|
ldrsh r3, [sp, #0x12]
|
|
cmp r3, #2, 20
|
|
ble |$LN32@D_GAIN_lag@2|
|
|
; Line 679
|
|
ldr r3, [sp, #0xA4]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
; Line 681
|
|
b |$LN31@D_GAIN_lag@2|
|
|
|$LN32@D_GAIN_lag@2|
|
|
; Line 687
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
b |$LN30@D_GAIN_lag@2|
|
|
|$LN29@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
|$LN30@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #5
|
|
bge |$LN28@D_GAIN_lag@2|
|
|
; Line 689
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA4]
|
|
add r0, r3, r2
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
add r3, sp, #0x1C
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 690
|
|
b |$LN29@D_GAIN_lag@2|
|
|
|$LN28@D_GAIN_lag@2|
|
|
; Line 691
|
|
mov r1, #5
|
|
add r0, sp, #0x1C
|
|
bl D_GAIN_sort_lag
|
|
; Line 697
|
|
ldrsh r2, [sp, #0x24]
|
|
ldrsh r3, [sp, #0x20]
|
|
sub r3, r2, r3
|
|
str r3, [sp, #0x2C]
|
|
; Line 699
|
|
ldr r3, [sp, #0x2C]
|
|
cmp r3, #0x28
|
|
ble |$LN27@D_GAIN_lag@2|
|
|
; Line 701
|
|
mov r3, #0x28
|
|
str r3, [sp, #0x2C]
|
|
|$LN27@D_GAIN_lag@2|
|
|
; Line 704
|
|
ldr r0, [sp, #0xB0]
|
|
bl D_UTIL_random
|
|
strh r0, [sp, #0x40]
|
|
ldrsh r3, [sp, #0x40]
|
|
strh r3, [sp, #0x26]
|
|
; Line 707
|
|
ldr r3, [sp, #0x2C]
|
|
mov r3, r3, asr #1
|
|
str r3, [sp, #0x14]
|
|
; Line 708
|
|
ldrsh r3, [sp, #0x26]
|
|
ldr r2, [sp, #0x14]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
str r3, [sp, #0x34]
|
|
; Line 709
|
|
ldrsh r2, [sp, #0x20]
|
|
ldrsh r3, [sp, #0x22]
|
|
add r2, r2, r3
|
|
ldrsh r3, [sp, #0x24]
|
|
add r3, r2, r3
|
|
str r3, [sp, #0x14]
|
|
; Line 710
|
|
ldr r2, [sp, #0x14]
|
|
mov r3, #0x2A, 24
|
|
orr r3, r3, #0xAB
|
|
mul r3, r2, r3
|
|
mov r2, r3, asr #15
|
|
ldr r3, [sp, #0x34]
|
|
add r2, r2, r3
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
|$LN31@D_GAIN_lag@2|
|
|
|$LN33@D_GAIN_lag@2|
|
|
; Line 714
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
ble |$LN26@D_GAIN_lag@2|
|
|
; Line 716
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
|$LN26@D_GAIN_lag@2|
|
|
; Line 719
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bge |$LN25@D_GAIN_lag@2|
|
|
; Line 721
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
|$LN25@D_GAIN_lag@2|
|
|
; Line 724
|
|
b |$LN24@D_GAIN_lag@2|
|
|
|$LN35@D_GAIN_lag@2|
|
|
; Line 730
|
|
mov r3, #0
|
|
str r3, [sp, #0xC]
|
|
; Line 732
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
b |$LN23@D_GAIN_lag@2|
|
|
|$LN22@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
|$LN23@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #5
|
|
bge |$LN21@D_GAIN_lag@2|
|
|
; Line 734
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA4]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0xC]
|
|
add r3, r3, r2
|
|
str r3, [sp, #0xC]
|
|
; Line 735
|
|
b |$LN22@D_GAIN_lag@2|
|
|
|$LN21@D_GAIN_lag@2|
|
|
; Line 737
|
|
ldr r2, [sp, #0xC]
|
|
mov r3, #0x19, 24
|
|
orr r3, r3, #0x9A
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
str r3, [sp, #0xC]
|
|
; Line 738
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
sub r3, r3, r2
|
|
str r3, [sp, #0x14]
|
|
; Line 739
|
|
ldrsh r2, [sp]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
sub r3, r3, r2
|
|
str r3, [sp, #0x18]
|
|
; Line 741
|
|
ldr r3, [sp, #0x2C]
|
|
cmp r3, #0xA
|
|
bge |$LN56@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x44]
|
|
b |$LN57@D_GAIN_lag@2|
|
|
|$LN56@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x44]
|
|
|$LN57@D_GAIN_lag@2|
|
|
ldrsh r3, [sp, #0x10]
|
|
sub r2, r3, #5
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
ble |$LN54@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x48]
|
|
b |$LN55@D_GAIN_lag@2|
|
|
|$LN54@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x48]
|
|
|$LN55@D_GAIN_lag@2|
|
|
ldr r3, [sp, #0x14]
|
|
cmp r3, #5
|
|
bge |$LN58@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x4C]
|
|
b |$LN59@D_GAIN_lag@2|
|
|
|$LN58@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x4C]
|
|
|$LN59@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x44]
|
|
ldr r3, [sp, #0x48]
|
|
and r2, r2, r3
|
|
ldr r3, [sp, #0x4C]
|
|
tst r2, r3
|
|
beq |$LN20@D_GAIN_lag@2|
|
|
; Line 743
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
; Line 745
|
|
b |$LN19@D_GAIN_lag@2|
|
|
|$LN20@D_GAIN_lag@2|
|
|
; Line 746
|
|
ldrsh r3, [sp, #0x28]
|
|
cmp r3, #2, 20
|
|
ble |$LN62@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x50]
|
|
b |$LN63@D_GAIN_lag@2|
|
|
|$LN62@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x50]
|
|
|$LN63@D_GAIN_lag@2|
|
|
ldrsh r3, [sp, #0x12]
|
|
cmp r3, #2, 20
|
|
ble |$LN60@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x54]
|
|
b |$LN61@D_GAIN_lag@2|
|
|
|$LN60@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x54]
|
|
|$LN61@D_GAIN_lag@2|
|
|
ldr r3, [sp, #0x18]
|
|
cmn r3, #0xA
|
|
ble |$LN66@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x58]
|
|
b |$LN67@D_GAIN_lag@2|
|
|
|$LN66@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x58]
|
|
|$LN67@D_GAIN_lag@2|
|
|
ldr r3, [sp, #0x18]
|
|
cmp r3, #0xA
|
|
bge |$LN64@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x5C]
|
|
b |$LN65@D_GAIN_lag@2|
|
|
|$LN64@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x5C]
|
|
|$LN65@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x50]
|
|
ldr r3, [sp, #0x54]
|
|
and r1, r2, r3
|
|
ldr r2, [sp, #0x58]
|
|
ldr r3, [sp, #0x5C]
|
|
and r3, r2, r3
|
|
tst r1, r3
|
|
beq |$LN18@D_GAIN_lag@2|
|
|
; Line 748
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
; Line 750
|
|
b |$LN17@D_GAIN_lag@2|
|
|
|$LN18@D_GAIN_lag@2|
|
|
; Line 751
|
|
ldrsh r2, [sp, #0x30]
|
|
mov r3, #0x19, 24
|
|
orr r3, r3, #0x9A
|
|
cmp r2, r3
|
|
bge |$LN70@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x60]
|
|
b |$LN71@D_GAIN_lag@2|
|
|
|$LN70@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x60]
|
|
|$LN71@D_GAIN_lag@2|
|
|
ldrsh r2, [sp, #0x28]
|
|
ldrsh r3, [sp, #0x30]
|
|
cmp r2, r3
|
|
bne |$LN68@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x64]
|
|
b |$LN69@D_GAIN_lag@2|
|
|
|$LN68@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x64]
|
|
|$LN69@D_GAIN_lag@2|
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
ble |$LN74@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x68]
|
|
b |$LN75@D_GAIN_lag@2|
|
|
|$LN74@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x68]
|
|
|$LN75@D_GAIN_lag@2|
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bge |$LN72@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x6C]
|
|
b |$LN73@D_GAIN_lag@2|
|
|
|$LN72@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x6C]
|
|
|$LN73@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x60]
|
|
ldr r3, [sp, #0x64]
|
|
and r1, r2, r3
|
|
ldr r2, [sp, #0x68]
|
|
ldr r3, [sp, #0x6C]
|
|
and r3, r2, r3
|
|
tst r1, r3
|
|
beq |$LN16@D_GAIN_lag@2|
|
|
; Line 753
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
b |$LN15@D_GAIN_lag@2|
|
|
|$LN16@D_GAIN_lag@2|
|
|
; Line 755
|
|
ldr r3, [sp, #0x2C]
|
|
cmp r3, #0x46
|
|
bge |$LN78@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x70]
|
|
b |$LN79@D_GAIN_lag@2|
|
|
|$LN78@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x70]
|
|
|$LN79@D_GAIN_lag@2|
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
ble |$LN76@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x74]
|
|
b |$LN77@D_GAIN_lag@2|
|
|
|$LN76@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x74]
|
|
|$LN77@D_GAIN_lag@2|
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bge |$LN80@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x78]
|
|
b |$LN81@D_GAIN_lag@2|
|
|
|$LN80@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x78]
|
|
|$LN81@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x70]
|
|
ldr r3, [sp, #0x74]
|
|
and r2, r2, r3
|
|
ldr r3, [sp, #0x78]
|
|
tst r2, r3
|
|
beq |$LN14@D_GAIN_lag@2|
|
|
; Line 757
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
b |$LN13@D_GAIN_lag@2|
|
|
|$LN14@D_GAIN_lag@2|
|
|
; Line 759
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #0xC]
|
|
cmp r2, r3
|
|
ble |$LN84@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x7C]
|
|
b |$LN85@D_GAIN_lag@2|
|
|
|$LN84@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x7C]
|
|
|$LN85@D_GAIN_lag@2|
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bge |$LN82@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x80]
|
|
b |$LN83@D_GAIN_lag@2|
|
|
|$LN82@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x80]
|
|
|$LN83@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x7C]
|
|
ldr r3, [sp, #0x80]
|
|
tst r2, r3
|
|
beq |$LN12@D_GAIN_lag@2|
|
|
; Line 761
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
; Line 763
|
|
b |$LN11@D_GAIN_lag@2|
|
|
|$LN12@D_GAIN_lag@2|
|
|
; Line 765
|
|
ldrsh r3, [sp, #0x30]
|
|
cmp r3, #2, 20
|
|
ble |$LN88@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x84]
|
|
b |$LN89@D_GAIN_lag@2|
|
|
|$LN88@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x84]
|
|
|$LN89@D_GAIN_lag@2|
|
|
ldr r3, [sp, #0x2C]
|
|
cmp r3, #0xA
|
|
bge |$LN86@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x88]
|
|
b |$LN87@D_GAIN_lag@2|
|
|
|$LN86@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x88]
|
|
|$LN87@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x84]
|
|
ldr r3, [sp, #0x88]
|
|
tst r2, r3
|
|
beq |$LN10@D_GAIN_lag@2|
|
|
; Line 767
|
|
ldr r3, [sp, #0xA4]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
b |$LN9@D_GAIN_lag@2|
|
|
|$LN10@D_GAIN_lag@2|
|
|
; Line 769
|
|
ldrsh r3, [sp, #0x28]
|
|
cmp r3, #2, 20
|
|
ble |$LN92@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x8C]
|
|
b |$LN93@D_GAIN_lag@2|
|
|
|$LN92@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x8C]
|
|
|$LN93@D_GAIN_lag@2|
|
|
ldrsh r3, [sp, #0x12]
|
|
cmp r3, #2, 20
|
|
ble |$LN90@D_GAIN_lag@2|
|
|
mov r3, #1
|
|
str r3, [sp, #0x90]
|
|
b |$LN91@D_GAIN_lag@2|
|
|
|$LN90@D_GAIN_lag@2|
|
|
mov r3, #0
|
|
str r3, [sp, #0x90]
|
|
|$LN91@D_GAIN_lag@2|
|
|
ldr r2, [sp, #0x8C]
|
|
ldr r3, [sp, #0x90]
|
|
tst r2, r3
|
|
beq |$LN8@D_GAIN_lag@2|
|
|
; Line 771
|
|
ldr r3, [sp, #0xA4]
|
|
ldrsh r2, [r3]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
; Line 773
|
|
b |$LN7@D_GAIN_lag@2|
|
|
|$LN8@D_GAIN_lag@2|
|
|
; Line 779
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
b |$LN6@D_GAIN_lag@2|
|
|
|$LN5@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
|$LN6@D_GAIN_lag@2|
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #5
|
|
bge |$LN4@D_GAIN_lag@2|
|
|
; Line 781
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xA4]
|
|
add r0, r3, r2
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
add r3, sp, #0x1C
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 782
|
|
b |$LN5@D_GAIN_lag@2|
|
|
|$LN4@D_GAIN_lag@2|
|
|
; Line 784
|
|
mov r1, #5
|
|
add r0, sp, #0x1C
|
|
bl D_GAIN_sort_lag
|
|
; Line 790
|
|
ldrsh r2, [sp, #0x24]
|
|
ldrsh r3, [sp, #0x20]
|
|
sub r3, r2, r3
|
|
str r3, [sp, #0x2C]
|
|
; Line 792
|
|
ldr r3, [sp, #0x2C]
|
|
cmp r3, #0x28
|
|
ble |$LN3@D_GAIN_lag@2|
|
|
; Line 794
|
|
mov r3, #0x28
|
|
str r3, [sp, #0x2C]
|
|
|$LN3@D_GAIN_lag@2|
|
|
; Line 797
|
|
ldr r0, [sp, #0xB0]
|
|
bl D_UTIL_random
|
|
strh r0, [sp, #0x94]
|
|
ldrsh r3, [sp, #0x94]
|
|
strh r3, [sp, #0x26]
|
|
; Line 800
|
|
ldr r3, [sp, #0x2C]
|
|
mov r3, r3, asr #1
|
|
str r3, [sp, #0x14]
|
|
; Line 801
|
|
ldrsh r3, [sp, #0x26]
|
|
ldr r2, [sp, #0x14]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
str r3, [sp, #0x34]
|
|
; Line 802
|
|
ldrsh r2, [sp, #0x20]
|
|
ldrsh r3, [sp, #0x22]
|
|
add r2, r2, r3
|
|
ldrsh r3, [sp, #0x24]
|
|
add r3, r2, r3
|
|
str r3, [sp, #0x14]
|
|
; Line 803
|
|
ldr r2, [sp, #0x14]
|
|
mov r3, #0x2A, 24
|
|
orr r3, r3, #0xAB
|
|
mul r3, r2, r3
|
|
mov r2, r3, asr #15
|
|
ldr r3, [sp, #0x34]
|
|
add r2, r2, r3
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
|$LN7@D_GAIN_lag@2|
|
|
|$LN9@D_GAIN_lag@2|
|
|
; Line 810
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
ble |$LN2@D_GAIN_lag@2|
|
|
; Line 812
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
|$LN2@D_GAIN_lag@2|
|
|
; Line 815
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xA8]
|
|
ldr r3, [r3]
|
|
cmp r3, r2
|
|
bge |$LN1@D_GAIN_lag@2|
|
|
; Line 817
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r3, [sp, #0xA8]
|
|
str r2, [r3]
|
|
|$LN1@D_GAIN_lag@2|
|
|
|$LN11@D_GAIN_lag@2|
|
|
|$LN13@D_GAIN_lag@2|
|
|
|$LN15@D_GAIN_lag@2|
|
|
|$LN17@D_GAIN_lag@2|
|
|
|$LN19@D_GAIN_lag@2|
|
|
|$LN24@D_GAIN_lag@2|
|
|
; Line 821
|
|
add sp, sp, #0x98
|
|
ldmia sp, {sp, pc}
|
|
|$M1654|
|
|
|
|
ENDP ; |D_GAIN_lag_concealment|
|
|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1661| DCD |$LN8@D_GAIN_sor|
|
|
DCD 0x40001a04
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_sort_lag| PROC
|
|
; Line 563
|
|
|$LN8@D_GAIN_sor|
|
|
mov r12, sp
|
|
stmdb sp!, {r0, r1}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #4
|
|
|$M1658|
|
|
; Line 566
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
b |$LN3@D_GAIN_sor|
|
|
|$LN2@D_GAIN_sor|
|
|
ldr r3, [sp]
|
|
add r3, r3, #1
|
|
str r3, [sp]
|
|
|$LN3@D_GAIN_sor|
|
|
ldrsh r2, [sp, #0x10]
|
|
ldr r3, [sp]
|
|
cmp r3, r2
|
|
bge |$LN1@D_GAIN_sor|
|
|
; Line 568
|
|
ldr r1, [sp]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r3, r3, r2
|
|
ldrsh r2, [r3]
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, #0xC]
|
|
bl D_GAIN_insert_lag
|
|
; Line 569
|
|
b |$LN2@D_GAIN_sor|
|
|
|$LN1@D_GAIN_sor|
|
|
; Line 570
|
|
add sp, sp, #4
|
|
ldmia sp, {sp, pc}
|
|
|$M1659|
|
|
|
|
ENDP ; |D_GAIN_sort_lag|
|
|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1666| DCD |$LN10@D_GAIN_ins|
|
|
DCD 0x40003104
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_insert_lag| PROC
|
|
; Line 530
|
|
|$LN10@D_GAIN_ins|
|
|
mov r12, sp
|
|
stmdb sp!, {r0 - r2}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #4
|
|
|$M1663|
|
|
; Line 533
|
|
ldr r3, [sp, #0x10]
|
|
sub r3, r3, #1
|
|
str r3, [sp]
|
|
b |$LN5@D_GAIN_ins|
|
|
|$LN4@D_GAIN_ins|
|
|
ldr r3, [sp]
|
|
sub r3, r3, #1
|
|
str r3, [sp]
|
|
|$LN5@D_GAIN_ins|
|
|
ldr r3, [sp]
|
|
cmp r3, #0
|
|
blt |$LN3@D_GAIN_ins|
|
|
; Line 535
|
|
ldrsh r0, [sp, #0x14]
|
|
ldr r1, [sp]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
cmp r0, r3
|
|
bge |$LN2@D_GAIN_ins|
|
|
; Line 537
|
|
ldr r1, [sp]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r0, r3, r2
|
|
ldr r3, [sp]
|
|
add r1, r3, #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, r2
|
|
ldrsh r3, [r0]
|
|
strh r3, [r2]
|
|
; Line 539
|
|
b |$LN1@D_GAIN_ins|
|
|
|$LN2@D_GAIN_ins|
|
|
; Line 541
|
|
b |$LN3@D_GAIN_ins|
|
|
|$LN1@D_GAIN_ins|
|
|
; Line 543
|
|
b |$LN4@D_GAIN_ins|
|
|
|$LN3@D_GAIN_ins|
|
|
; Line 545
|
|
ldr r3, [sp]
|
|
add r1, r3, #1
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, r2
|
|
ldrsh r3, [sp, #0x14]
|
|
strh r3, [r2]
|
|
; Line 546
|
|
add sp, sp, #4
|
|
ldmia sp, {sp, pc}
|
|
|$M1664|
|
|
|
|
ENDP ; |D_GAIN_insert_lag|
|
|
|
|
EXPORT |D_GAIN_adaptive_codebook_excitation|
|
|
IMPORT |D_ROM_inter4_2|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1671| DCD |$LN12@D_GAIN_ada@2|
|
|
DCD 0x40005b04
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_adaptive_codebook_excitation| PROC
|
|
; Line 840
|
|
|$LN12@D_GAIN_ada@2|
|
|
mov r12, sp
|
|
stmdb sp!, {r0 - r2}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #0x18
|
|
|$M1668|
|
|
; Line 844
|
|
ldr r3, [sp, #0x24]
|
|
rsb r1, r3, #0
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x20]
|
|
add r3, r3, r2
|
|
str r3, [sp]
|
|
; Line 845
|
|
ldr r3, [sp, #0x28]
|
|
rsb r3, r3, #0
|
|
str r3, [sp, #0x28]
|
|
; Line 847
|
|
ldr r3, [sp, #0x28]
|
|
cmp r3, #0
|
|
bge |$LN7@D_GAIN_ada@2|
|
|
; Line 849
|
|
ldr r3, [sp, #0x28]
|
|
add r3, r3, #4
|
|
str r3, [sp, #0x28]
|
|
; Line 850
|
|
ldr r3, [sp]
|
|
sub r3, r3, #2
|
|
str r3, [sp]
|
|
|$LN7@D_GAIN_ada@2|
|
|
; Line 852
|
|
ldr r3, [sp]
|
|
sub r3, r3, #0x20
|
|
add r3, r3, #2
|
|
str r3, [sp]
|
|
; Line 854
|
|
mov r3, #0
|
|
str r3, [sp, #0x10]
|
|
b |$LN6@D_GAIN_ada@2|
|
|
|$LN5@D_GAIN_ada@2|
|
|
ldr r3, [sp, #0x10]
|
|
add r3, r3, #1
|
|
str r3, [sp, #0x10]
|
|
|$LN6@D_GAIN_ada@2|
|
|
ldr r3, [sp, #0x10]
|
|
cmp r3, #0x41
|
|
bge |$LN4@D_GAIN_ada@2|
|
|
; Line 856
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
; Line 859
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #0x28]
|
|
rsb r3, r3, #3
|
|
str r3, [sp, #0xC]
|
|
b |$LN3@D_GAIN_ada@2|
|
|
|$LN2@D_GAIN_ada@2|
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #0xC]
|
|
add r3, r3, #4
|
|
str r3, [sp, #0xC]
|
|
|$LN3@D_GAIN_ada@2|
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #0x20
|
|
bge |$LN1@D_GAIN_ada@2|
|
|
; Line 861
|
|
ldr r1, [sp, #4]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp]
|
|
add r3, r3, r2
|
|
ldrsh r0, [r3]
|
|
ldr r1, [sp, #0xC]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [pc, #0x68]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
mul r2, r0, r3
|
|
ldr r3, [sp, #8]
|
|
add r3, r3, r2
|
|
str r3, [sp, #8]
|
|
; Line 862
|
|
b |$LN2@D_GAIN_ada@2|
|
|
|$LN1@D_GAIN_ada@2|
|
|
; Line 863
|
|
ldr r3, [sp, #8]
|
|
add r3, r3, #2, 20
|
|
mov r3, r3, asr #14
|
|
str r3, [sp, #8]
|
|
; Line 865
|
|
ldr r0, [sp, #8]
|
|
bl D_UTIL_saturate
|
|
strh r0, [sp, #0x14]
|
|
ldr r1, [sp, #0x10]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x20]
|
|
add r2, r3, r2
|
|
ldrsh r3, [sp, #0x14]
|
|
strh r3, [r2]
|
|
; Line 867
|
|
ldr r3, [sp]
|
|
add r3, r3, #2
|
|
str r3, [sp]
|
|
; Line 868
|
|
b |$LN5@D_GAIN_ada@2|
|
|
|$LN4@D_GAIN_ada@2|
|
|
; Line 870
|
|
add sp, sp, #0x18
|
|
ldmia sp, {sp, pc}
|
|
|$LN13@D_GAIN_ada@2|
|
|
DCD |D_ROM_inter4_2|
|
|
|$M1669|
|
|
|
|
ENDP ; |D_GAIN_adaptive_codebook_excitation|
|
|
|
|
EXPORT |D_GAIN_pitch_sharpening|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1677| DCD |$LN8@D_GAIN_pit|
|
|
DCD 0x40003004
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_pitch_sharpening| PROC
|
|
; Line 888
|
|
|$LN8@D_GAIN_pit|
|
|
mov r12, sp
|
|
stmdb sp!, {r0 - r2}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #8
|
|
|$M1674|
|
|
; Line 892
|
|
ldr r3, [sp, #0x14]
|
|
str r3, [sp]
|
|
b |$LN3@D_GAIN_pit|
|
|
|$LN2@D_GAIN_pit|
|
|
ldr r3, [sp]
|
|
add r3, r3, #1
|
|
str r3, [sp]
|
|
|$LN3@D_GAIN_pit|
|
|
ldr r3, [sp]
|
|
cmp r3, #0x40
|
|
bge |$LN1@D_GAIN_pit|
|
|
; Line 894
|
|
ldr r1, [sp]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x10]
|
|
add r3, r3, r2
|
|
ldrsh r3, [r3]
|
|
mov r3, r3, lsl #15
|
|
str r3, [sp, #4]
|
|
; Line 895
|
|
ldr r2, [sp]
|
|
ldr r3, [sp, #0x14]
|
|
sub r1, r2, r3
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x10]
|
|
add r3, r3, r2
|
|
ldrsh r1, [r3]
|
|
ldrsh r3, [sp, #0x18]
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, r2
|
|
str r3, [sp, #4]
|
|
; Line 896
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1, 18
|
|
mov r3, r3, asr #15
|
|
mov r0, r3, lsl #16
|
|
mov r0, r0, asr #16
|
|
ldr r1, [sp]
|
|
mov r3, #2
|
|
mul r2, r1, r3
|
|
ldr r3, [sp, #0x10]
|
|
add r3, r3, r2
|
|
strh r0, [r3]
|
|
; Line 897
|
|
b |$LN2@D_GAIN_pit|
|
|
|$LN1@D_GAIN_pit|
|
|
; Line 899
|
|
add sp, sp, #8
|
|
ldmia sp, {sp, pc}
|
|
|$M1675|
|
|
|
|
ENDP ; |D_GAIN_pitch_sharpening|
|
|
|
|
EXPORT |D_GAIN_find_voice_factor|
|
|
IMPORT |D_UTIL_norm_s|
|
|
|
|
AREA |.pdata|, PDATA
|
|
|$T1684| DCD |$LN9@D_GAIN_fin|
|
|
DCD 0x40008d04
|
|
; Function compile flags: /Odsp
|
|
|
|
AREA |.text|, CODE, ARM
|
|
|
|
|D_GAIN_find_voice_factor| PROC
|
|
; Line 922
|
|
|$LN9@D_GAIN_fin|
|
|
mov r12, sp
|
|
stmdb sp!, {r0 - r3}
|
|
stmdb sp!, {r12, lr}
|
|
sub sp, sp, #0x30
|
|
|$M1681|
|
|
; Line 927
|
|
add r3, sp, #0x14
|
|
ldrsh r2, [sp, #0x4C]
|
|
ldr r1, [sp, #0x38]
|
|
ldr r0, [sp, #0x38]
|
|
bl D_UTIL_dot_product12
|
|
str r0, [sp, #0x20]
|
|
ldr r3, [sp, #0x20]
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #4]
|
|
; Line 928
|
|
ldrsh r1, [sp, #0x14]
|
|
ldrsh r2, [sp, #0x3C]
|
|
ldrsh r3, [sp, #0x3C]
|
|
add r3, r2, r3
|
|
sub r3, r1, r3
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0x14]
|
|
; Line 929
|
|
ldrsh r2, [sp, #0x40]
|
|
ldrsh r3, [sp, #0x40]
|
|
mul r3, r2, r3
|
|
mov r3, r3, lsl #1
|
|
str r3, [sp, #0x10]
|
|
; Line 930
|
|
ldr r0, [sp, #0x10]
|
|
bl D_UTIL_norm_l
|
|
strh r0, [sp, #0x24]
|
|
ldrsh r3, [sp, #0x24]
|
|
strh r3, [sp, #8]
|
|
; Line 931
|
|
ldrsh r2, [sp, #8]
|
|
ldr r3, [sp, #0x10]
|
|
mov r3, r3, lsl r2
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #0x10]
|
|
; Line 932
|
|
ldr r2, [sp, #4]
|
|
ldr r3, [sp, #0x10]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
str r3, [sp, #4]
|
|
; Line 933
|
|
ldrsh r2, [sp, #0x14]
|
|
ldrsh r3, [sp, #8]
|
|
sub r3, r2, r3
|
|
sub r3, r3, #0xA
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0x14]
|
|
; Line 934
|
|
add r3, sp, #0
|
|
ldrsh r2, [sp, #0x4C]
|
|
ldr r1, [sp, #0x44]
|
|
ldr r0, [sp, #0x44]
|
|
bl D_UTIL_dot_product12
|
|
str r0, [sp, #0x28]
|
|
ldr r3, [sp, #0x28]
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #0x18]
|
|
; Line 935
|
|
ldrsh r0, [sp, #0x48]
|
|
bl D_UTIL_norm_s
|
|
strh r0, [sp, #0x2C]
|
|
ldrsh r3, [sp, #0x2C]
|
|
strh r3, [sp, #8]
|
|
; Line 936
|
|
ldrsh r2, [sp, #0x48]
|
|
ldrsh r3, [sp, #8]
|
|
mov r3, r2, lsl r3
|
|
str r3, [sp, #0x10]
|
|
; Line 937
|
|
ldr r2, [sp, #0x10]
|
|
ldr r3, [sp, #0x10]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
str r3, [sp, #0x10]
|
|
; Line 938
|
|
ldr r2, [sp, #0x18]
|
|
ldr r3, [sp, #0x10]
|
|
mul r3, r2, r3
|
|
mov r3, r3, asr #15
|
|
str r3, [sp, #0x18]
|
|
; Line 939
|
|
ldrsh r2, [sp]
|
|
ldrsh r3, [sp, #8]
|
|
mov r3, r3, lsl #1
|
|
sub r3, r2, r3
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp]
|
|
; Line 940
|
|
ldrsh r2, [sp, #0x14]
|
|
ldrsh r3, [sp]
|
|
sub r3, r2, r3
|
|
str r3, [sp, #0xC]
|
|
; Line 942
|
|
ldr r3, [sp, #0xC]
|
|
cmp r3, #0
|
|
blt |$LN4@D_GAIN_fin|
|
|
; Line 944
|
|
ldr r3, [sp, #4]
|
|
mov r3, r3, asr #1
|
|
str r3, [sp, #4]
|
|
; Line 945
|
|
ldr r3, [sp, #0xC]
|
|
add r2, r3, #1
|
|
ldr r3, [sp, #0x18]
|
|
mov r3, r3, asr r2
|
|
str r3, [sp, #0x18]
|
|
b |$LN3@D_GAIN_fin|
|
|
|$LN4@D_GAIN_fin|
|
|
; Line 947
|
|
ldr r3, [sp, #0xC]
|
|
cmn r3, #0x10
|
|
ble |$LN2@D_GAIN_fin|
|
|
; Line 949
|
|
ldr r3, [sp, #0xC]
|
|
rsb r2, r3, #1
|
|
ldr r3, [sp, #4]
|
|
mov r3, r3, asr r2
|
|
str r3, [sp, #4]
|
|
; Line 950
|
|
ldr r3, [sp, #0x18]
|
|
mov r3, r3, asr #1
|
|
str r3, [sp, #0x18]
|
|
; Line 952
|
|
b |$LN1@D_GAIN_fin|
|
|
|$LN2@D_GAIN_fin|
|
|
; Line 954
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
; Line 955
|
|
ldr r3, [sp, #0x18]
|
|
mov r3, r3, asr #1
|
|
str r3, [sp, #0x18]
|
|
|$LN1@D_GAIN_fin|
|
|
|$LN3@D_GAIN_fin|
|
|
; Line 958
|
|
ldr r2, [sp, #4]
|
|
ldr r3, [sp, #0x18]
|
|
sub r3, r2, r3
|
|
str r3, [sp, #0x10]
|
|
; Line 959
|
|
ldr r2, [sp, #4]
|
|
ldr r3, [sp, #0x18]
|
|
add r3, r2, r3
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
; Line 960
|
|
ldr r3, [sp, #0x10]
|
|
mov r1, r3, lsl #15
|
|
ldr r0, [sp, #4]
|
|
ldr r3, [pc, #0x28]
|
|
ldr r3, [r3]
|
|
mov lr, pc
|
|
mov pc, r3
|
|
str r0, [sp, #0x10]
|
|
; Line 962
|
|
ldr r3, [sp, #0x10]
|
|
mov r3, r3, lsl #16
|
|
mov r3, r3, asr #16
|
|
strh r3, [sp, #0x1C]
|
|
; Line 963
|
|
ldrsh r0, [sp, #0x1C]
|
|
add sp, sp, #0x30
|
|
ldmia sp, {sp, pc}
|
|
|$LN10@D_GAIN_fin|
|
|
DCD |__imp___rt_sdiv|
|
|
|$M1682|
|
|
|
|
ENDP ; |D_GAIN_find_voice_factor|
|
|
|
|
END
|