; 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