gps/GPSResources/tcpmp 0.73/amr/Pocket PC 2003 (ARMV4)/Release/dec_gain.asm

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