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

3057 lines
75 KiB
NASM
Executable File

; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727
TTL d:\MyProject\VS2005\Tcpmp\tcpmp\amr\26204\dec_main.c
CODE32
AREA |.drectve|, DRECTVE
DCB "-defaultlib:LIBCMT "
DCB "-defaultlib:OLDNAMES "
EXPORT |D_MAIN_reset|
IMPORT |D_DTX_reset|
IMPORT |D_ROM_isf|
IMPORT |memcpy|
IMPORT |D_ROM_isp|
IMPORT |D_GAIN_lag_concealment_init|
IMPORT |D_GAIN_init|
IMPORT |memset|
AREA |.pdata|, PDATA
|$T1717| DCD |$LN9@D_MAIN_res|
DCD 0x4000cb04
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|D_MAIN_reset| PROC
; File d:\myproject\vs2005\tcpmp\tcpmp\amr\26204\dec_main.c
; Line 67
|$LN9@D_MAIN_res|
mov r12, sp
stmdb sp!, {r0, r1}
stmdb sp!, {r4, r12, lr}
sub sp, sp, #8
|$M1714|
; Line 72
ldr r3, [sp, #0x14]
str r3, [sp, #4]
; Line 73
mov r2, #0x1F, 28
mov r1, #0
ldr r3, [sp, #4]
add r0, r3, #4
bl memset
; Line 74
mov r2, #0x20
mov r1, #0
ldr r3, [sp, #4]
add r0, r3, #0x5D, 28
bl memset
; Line 75
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x78
mov r3, #0
strh r3, [r2]
; Line 76
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x76
mov r3, #0x40
strh r3, [r2]
; Line 77
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x82
mov r3, #1
strb r3, [r2]
; Line 78
ldr r2, [sp, #4]
mov r3, #0
str r3, [r2]
; Line 79
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x6A
mov r3, #0
strh r3, [r2]
; Line 80
mov r2, #0x10
mov r1, #0
ldr r3, [sp, #4]
add r0, r3, #0x63, 28
bl memset
; Line 83
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x6C
mov r3, #8
strh r3, [r2]
; Line 84
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x68
mov r3, #8
strh r3, [r2]
; Line 85
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x66
mov r3, #8
strh r3, [r2]
; Line 86
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x64
mov r3, #8
strh r3, [r2]
; Line 87
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x62
mov r3, #8
strh r3, [r2]
; Line 89
ldrsh r3, [sp, #0x18]
cmp r3, #0
beq |$LN4@D_MAIN_res|
; Line 92
ldr r3, [sp, #4]
add r3, r3, #5, 24
add r0, r3, #0x3A
bl D_GAIN_init
; Line 93
mov r2, #0x30
mov r1, #0
ldr r3, [sp, #4]
add r3, r3, #5, 24
add r0, r3, #0xA
bl memset
; Line 94
mov r2, #0xC
mov r1, #0
ldr r3, [sp, #4]
add r0, r3, #0x19, 26
bl memset
; Line 95
mov r2, #0x3C
mov r1, #0
ldr r3, [sp, #4]
add r3, r3, #1, 22
add r0, r3, #0x56
bl memset
; Line 96
mov r2, #0x3C
mov r1, #0
ldr r3, [sp, #4]
add r3, r3, #1, 22
add r0, r3, #0xCE
bl memset
; Line 97
mov r2, #0xC
mov r1, #0
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r0, r3, #0x4C
bl memset
; Line 98
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r0, r3, #0x58
bl D_GAIN_lag_concealment_init
; Line 101
mov r2, #0x20
ldr r1, [pc, #0x168]
ldr r3, [sp, #4]
add r0, r3, #0x59, 28
bl memcpy
; Line 102
mov r2, #0x20
ldr r1, [pc, #0x150]
ldr r3, [sp, #4]
add r0, r3, #0x5B, 28
bl memcpy
; Line 104
mov r3, #0
str r3, [sp]
b |$LN3@D_MAIN_res|
|$LN2@D_MAIN_res|
ldr r3, [sp]
add r3, r3, #1
str r3, [sp]
|$LN3@D_MAIN_res|
ldr r3, [sp]
cmp r3, #3
bge |$LN1@D_MAIN_res|
; Line 106
mov r2, #0x20
ldr r1, [pc, #0x118]
ldr r3, [sp, #4]
add r3, r3, #3, 24
add r4, r3, #0xF6
ldr lr, [sp]
mov r3, #0x10
mul r0, lr, r3
mov r3, #2
mul r3, r0, r3
add r0, r4, r3
bl memcpy
; Line 107
b |$LN2@D_MAIN_res|
|$LN1@D_MAIN_res|
; Line 110
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x6E
mov r3, #0
strh r3, [r2]
; Line 111
ldr r3, [sp, #4]
add r2, r3, #0x67, 28
mov r3, #0x55, 24
orr r3, r3, #0x55
strh r3, [r2]
; Line 112
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x72
mov r3, #0x55, 24
orr r3, r3, #0x55
strh r3, [r2]
; Line 113
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x74
mov r3, #0x55, 24
orr r3, r3, #0x55
strh r3, [r2]
; Line 114
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x81
mov r3, #0
strb r3, [r2]
; Line 115
ldr r3, [sp, #4]
add r2, r3, #0x1A, 26
mov r3, #0
strb r3, [r2]
; Line 118
mov r2, #0x28
mov r1, #0
ldr r3, [sp, #4]
add r3, r3, #5, 24
add r0, r3, #0x68
bl memset
; Line 119
mov r2, #0x20
mov r1, #0
ldr r3, [sp, #4]
add r0, r3, #0x5F, 28
bl memset
; Line 120
mov r2, #0x20
mov r1, #0
ldr r3, [sp, #4]
add r0, r3, #0x61, 28
bl memset
; Line 121
ldr r1, [pc, #0x2C]
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r3, r3, #0x7C
ldr r0, [r3]
bl D_DTX_reset
; Line 122
ldr r3, [sp, #4]
add r3, r3, #6, 24
add r2, r3, #0x7A
mov r3, #0
strh r3, [r2]
|$LN4@D_MAIN_res|
; Line 126
add sp, sp, #8
ldmia sp, {r4, sp, pc}
|$LN10@D_MAIN_res|
DCD |D_ROM_isf|
DCD |D_ROM_isp|
|$M1715|
ENDP ; |D_MAIN_reset|
EXPORT |D_MAIN_init|
IMPORT |D_DTX_init|
IMPORT |malloc|
AREA |.pdata|, PDATA
|$T1724| DCD |$LN6@D_MAIN_ini|
DCD 0x40002904
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|D_MAIN_init| PROC
; Line 143
|$LN6@D_MAIN_ini|
mov r12, sp
stmdb sp!, {r0}
stmdb sp!, {r12, lr}
sub sp, sp, #0xC
|$M1721|
; Line 147
ldr r2, [sp, #0x14]
mov r3, #0
str r3, [r2]
; Line 152
mov r0, #6, 24
orr r0, r0, #0x84
bl malloc
str r0, [sp, #8]
ldr r3, [sp, #8]
str r3, [sp]
ldr r3, [sp]
cmp r3, #0
bne |$LN1@D_MAIN_ini|
; Line 154
mvn r3, #0
str r3, [sp, #4]
b |$LN2@D_MAIN_ini|
|$LN1@D_MAIN_ini|
; Line 157
ldr r3, [sp]
add r3, r3, #6, 24
add r2, r3, #0x7C
mov r3, #0
str r3, [r2]
; Line 158
ldr r1, [pc, #0x38]
ldr r3, [sp]
add r3, r3, #6, 24
add r0, r3, #0x7C
bl D_DTX_init
; Line 159
mov r1, #1
ldr r0, [sp]
bl D_MAIN_reset
; Line 160
ldr r2, [sp]
ldr r3, [sp, #0x14]
str r2, [r3]
; Line 162
mov r3, #0
str r3, [sp, #4]
|$LN2@D_MAIN_ini|
; Line 163
ldr r0, [sp, #4]
add sp, sp, #0xC
ldmia sp, {sp, pc}
|$LN7@D_MAIN_ini|
DCD |D_ROM_isf|
|$M1722|
ENDP ; |D_MAIN_init|
EXPORT |D_MAIN_close|
IMPORT |free|
IMPORT |D_DTX_exit|
AREA |.pdata|, PDATA
|$T1730| DCD |$LN5@D_MAIN_clo|
DCD 0x40000c03
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|D_MAIN_close| PROC
; Line 179
|$LN5@D_MAIN_clo|
mov r12, sp
stmdb sp!, {r0}
stmdb sp!, {r12, lr}
|$M1727|
; Line 180
ldr r3, [sp, #8]
ldr r3, [r3]
add r3, r3, #6, 24
add r0, r3, #0x7C
bl D_DTX_exit
; Line 181
ldr r3, [sp, #8]
ldr r0, [r3]
bl free
; Line 184
ldmia sp, {sp, pc}
|$M1728|
ENDP ; |D_MAIN_close|
EXPORT |D_MAIN_decode|
IMPORT |D_DTX_activity_update|
IMPORT |memmove|
IMPORT |D_GAIN_adaptive_control|
IMPORT |D_UTIL_saturate|
IMPORT |D_UTIL_mpy_32_16|
IMPORT |D_ACELP_phase_dispersion|
IMPORT |D_UTIL_l_extract|
IMPORT |D_UTIL_norm_s|
IMPORT |abs|
IMPORT |D_GAIN_find_voice_factor|
IMPORT |D_UTIL_signal_down_scale|
IMPORT |D_UTIL_signal_up_scale|
IMPORT |D_GAIN_decode|
IMPORT |D_GAIN_pitch_sharpening|
IMPORT |D_UTIL_preemph|
IMPORT |D_ACELP_decode_4t|
IMPORT |D_ACELP_decode_2t|
IMPORT |D_UTIL_random|
IMPORT |D_GAIN_adaptive_codebook_excitation|
IMPORT |D_GAIN_lag_concealment|
IMPORT |D_LPC_int_isp_find|
IMPORT |D_LPC_isf_2s5s_decode|
IMPORT |D_LPC_isf_2s3s_decode|
IMPORT |D_UTIL_dec_synthesis|
IMPORT |D_ROM_interpol_frac|
IMPORT |D_LPC_isp_a_conversion|
IMPORT |D_LPC_isf_isp_conversion|
IMPORT |D_DTX_exe|
IMPORT |D_DTX_rx_handler|
IMPORT |__imp___rt_sdiv|
AREA |.pdata|, PDATA
|$T1798| DCD |$LN157@D_MAIN_dec|
DCD 0x40084704
; Function compile flags: /Odsp
AREA |.text|, CODE, ARM
|D_MAIN_decode| PROC
; Line 205
|$LN157@D_MAIN_dec|
mov r12, sp
stmdb sp!, {r0 - r3}
stmdb sp!, {r12, lr}
sub sp, sp, #0x6A, 28
|$M1795|
; Line 210
mov r3, #0
str r3, [sp, #0x54C]
; Line 222
mov r3, #0
strh r3, [sp, #0x1E]
; Line 224
mov r3, #0
add r12, sp, #5, 24
strh r3, [r12, #0x60]
; Line 225
mov r3, #0
add r12, sp, #1, 24
strh r3, [r12, #0xE2]
; Line 235
ldr r3, [sp, #0x6B4]
str r3, [sp, #0x2BC]
; Line 238
ldrb r1, [sp, #0x6B8]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7C
ldr r0, [r3]
bl D_DTX_rx_handler
strb r0, [sp, #0x65C]
ldrb r3, [sp, #0x65C]
strb r3, [sp, #0x551]
; Line 240
ldrb r3, [sp, #0x551]
cmp r3, #0
beq |$LN136@D_MAIN_dec|
; Line 242
mov r3, #6, 24
orr r3, r3, #0xAC
add r3, sp, r3
str r3, [sp]
add r3, sp, #0xB4
ldrb r2, [sp, #0x551]
add r1, sp, #0xB1, 30
ldr r0, [sp, #0x2BC]
add r0, r0, #6, 24
add r0, r0, #0x7C
ldr r0, [r0]
bl D_DTX_exe
|$LN136@D_MAIN_dec|
; Line 247
ldrb r3, [sp, #0x6B8]
cmp r3, #3
bne |$LN141@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x660]
b |$LN142@D_MAIN_dec|
|$LN141@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x660]
|$LN142@D_MAIN_dec|
ldrb r3, [sp, #0x6B8]
cmp r3, #1
bne |$LN139@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x664]
b |$LN140@D_MAIN_dec|
|$LN139@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x664]
|$LN140@D_MAIN_dec|
ldr r2, [sp, #0x660]
ldr r3, [sp, #0x664]
orrs r3, r2, r3
beq |$LN135@D_MAIN_dec|
; Line 250
mov r3, #1
strb r3, [sp, #0x550]
; Line 251
mov r3, #0
strb r3, [sp, #0x1C]
b |$LN134@D_MAIN_dec|
|$LN135@D_MAIN_dec|
; Line 253
ldrb r3, [sp, #0x6B8]
cmp r3, #7
bne |$LN145@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x668]
b |$LN146@D_MAIN_dec|
|$LN145@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x668]
|$LN146@D_MAIN_dec|
ldrb r3, [sp, #0x6B8]
cmp r3, #2
bne |$LN143@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x66C]
b |$LN144@D_MAIN_dec|
|$LN143@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x66C]
|$LN144@D_MAIN_dec|
ldr r2, [sp, #0x668]
ldr r3, [sp, #0x66C]
orrs r3, r2, r3
beq |$LN133@D_MAIN_dec|
; Line 256
mov r3, #1
strb r3, [sp, #0x550]
; Line 257
mov r3, #1
strb r3, [sp, #0x1C]
; Line 259
b |$LN132@D_MAIN_dec|
|$LN133@D_MAIN_dec|
; Line 261
mov r3, #0
strb r3, [sp, #0x550]
; Line 262
mov r3, #0
strb r3, [sp, #0x1C]
|$LN132@D_MAIN_dec|
|$LN134@D_MAIN_dec|
; Line 265
ldrb r3, [sp, #0x550]
cmp r3, #0
beq |$LN131@D_MAIN_dec|
; Line 267
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x81
ldrb r3, [r3]
add r3, r3, #1
and r2, r3, #0xFF
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x81
strb r2, [r3]
; Line 269
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x81
ldrb r3, [r3]
cmp r3, #6
ble |$LN130@D_MAIN_dec|
; Line 271
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x81
mov r3, #6
strb r3, [r2]
|$LN130@D_MAIN_dec|
; Line 274
b |$LN129@D_MAIN_dec|
|$LN131@D_MAIN_dec|
; Line 276
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x81
ldrb r3, [r3]
mov r3, r3, asr #1
and r2, r3, #0xFF
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x81
strb r2, [r3]
|$LN129@D_MAIN_dec|
; Line 291
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7C
ldr r3, [r3]
add r3, r3, #1, 24
add r3, r3, #0x61
ldrb r3, [r3]
cmp r3, #1
bne |$LN128@D_MAIN_dec|
; Line 293
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x81
mov r3, #5
strb r3, [r2]
; Line 294
ldr r3, [sp, #0x2BC]
add r2, r3, #0x1A, 26
mov r3, #0
strb r3, [r2]
b |$LN127@D_MAIN_dec|
|$LN128@D_MAIN_dec|
; Line 296
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7C
ldr r3, [r3]
add r3, r3, #1, 24
add r3, r3, #0x61
ldrb r3, [r3]
cmp r3, #2
bne |$LN126@D_MAIN_dec|
; Line 298
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x81
mov r3, #5
strb r3, [r2]
; Line 299
ldr r3, [sp, #0x2BC]
add r2, r3, #0x1A, 26
mov r3, #1
strb r3, [r2]
|$LN126@D_MAIN_dec|
|$LN127@D_MAIN_dec|
; Line 302
ldrb r3, [sp, #0x551]
cmp r3, #0
bne |$LN125@D_MAIN_dec|
; Line 304
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
and r3, r3, #0xFF
strb r3, [sp, #0x1E0]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 306
ldrb r3, [sp, #0x550]
cmp r3, #0
bne |$LN124@D_MAIN_dec|
; Line 308
ldrb r3, [sp, #0x1E0]
cmp r3, #0
bne |$LN123@D_MAIN_dec|
; Line 310
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7A
ldrh r3, [r3]
add r1, r3, #1
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x7A
mov r3, r1, lsl #16
mov r3, r3, lsr #16
strh r3, [r2]
; Line 312
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7A
ldrh r3, [r3]
mov r2, r3
mov r3, #0x7F, 24
orr r3, r3, #0xFF
cmp r2, r3
ble |$LN122@D_MAIN_dec|
; Line 314
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x7A
mov r3, #0x7F, 24
orr r3, r3, #0xFF
strh r3, [r2]
|$LN122@D_MAIN_dec|
; Line 317
b |$LN121@D_MAIN_dec|
|$LN123@D_MAIN_dec|
; Line 319
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x7A
mov r3, #0
strh r3, [r2]
|$LN121@D_MAIN_dec|
|$LN124@D_MAIN_dec|
|$LN125@D_MAIN_dec|
; Line 327
ldrb r3, [sp, #0x551]
cmp r3, #0
beq |$LN120@D_MAIN_dec|
; Line 333
mov r2, #0x10
mov r1, #5, 24
orr r1, r1, #0x64
add r1, sp, r1
add r0, sp, #0xB4
bl D_LPC_isf_isp_conversion
; Line 334
mov r3, #0x10
mov r2, #1
mov r1, #1, 22
orr r1, r1, #0xC4
add r1, sp, r1
mov r0, #5, 24
orr r0, r0, #0x64
add r0, sp, r0
bl D_LPC_isp_a_conversion
; Line 335
mov r2, #0x20
ldr r3, [sp, #0x2BC]
add r1, r3, #0x5B, 28
add r0, sp, #0x7A, 30
bl memcpy
; Line 337
mov r3, #0
str r3, [sp, #0xD4]
b |$LN119@D_MAIN_dec|
|$LN118@D_MAIN_dec|
ldr r3, [sp, #0xD4]
add r3, r3, #0x40
str r3, [sp, #0xD4]
|$LN119@D_MAIN_dec|
ldr r3, [sp, #0xD4]
cmp r3, #1, 24
bge |$LN117@D_MAIN_dec|
; Line 339
ldr r3, [sp, #0xD4]
mov r3, r3, asr #6
str r3, [sp, #0x5A8]
; Line 341
mov r3, #0
str r3, [sp, #0xDC]
b |$LN116@D_MAIN_dec|
|$LN115@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN116@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x10
bge |$LN114@D_MAIN_dec|
; Line 343
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x7A, 30
add r3, r3, r2
ldrsh r0, [r3]
ldr r1, [sp, #0x5A8]
mov r3, #2
mul r2, r1, r3
ldr r3, [pc, #0x3E8]
add r3, r3, r2
ldrsh r2, [r3]
mov r3, #0x7F, 24
orr r3, r3, #0xFF
rsb r3, r2, r3
mul r3, r0, r3
mov r3, r3, lsl #1
str r3, [sp, #0x5AC]
; Line 344
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xB4
add r3, r3, r2
ldrsh r0, [r3]
ldr r1, [sp, #0x5A8]
mov r3, #2
mul r2, r1, r3
ldr r3, [pc, #0x3A0]
add r3, r3, r2
ldrsh r3, [r3]
mul r3, r0, r3
mov r2, r3, lsl #1
ldr r3, [sp, #0x5AC]
add r3, r3, r2
str r3, [sp, #0x5AC]
; Line 345
ldr r3, [sp, #0x5AC]
add r3, r3, #2, 18
mov r3, r3, asr #16
mov r0, r3, lsl #16
mov r0, r0, asr #16
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xA3, 30
add r3, r3, r2
strh r0, [r3]
; Line 346
b |$LN115@D_MAIN_dec|
|$LN114@D_MAIN_dec|
; Line 349
ldr r3, [sp, #0x2BC]
str r3, [sp, #0x14]
ldrb r3, [sp, #0x550]
str r3, [sp, #0x10]
ldrb r3, [sp, #0x551]
str r3, [sp, #0xC]
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
str r3, [sp, #8]
add r3, sp, #0xA3, 30
str r3, [sp, #4]
mov r3, #1
str r3, [sp]
ldr r2, [sp, #0xD4]
mov r3, #5
mul r1, r2, r3
mov r0, #4
ldr r3, [pc, #0x310]
ldr r3, [r3]
mov lr, pc
mov pc, r3
mov r3, #2
mul r2, r0, r3
ldr r3, [sp, #0x6B0]
add r3, r3, r2
mov r2, #0
ldr lr, [sp, #0xD4]
mov r1, #2
mul r0, lr, r1
add r1, sp, #0xB1, 30
add r1, r1, r0
mov r0, #1, 22
orr r0, r0, #0xC4
add r0, sp, r0
bl D_UTIL_dec_synthesis
; Line 350
b |$LN118@D_MAIN_dec|
|$LN117@D_MAIN_dec|
; Line 353
mov r1, #0
ldr r0, [sp, #0x2BC]
bl D_MAIN_reset
; Line 354
mov r2, #0x20
add r1, sp, #0xB4
ldr r3, [sp, #0x2BC]
add r0, r3, #0x5B, 28
bl memcpy
; Line 355
ldr r3, [sp, #0x2BC]
add r2, r3, #0x1A, 26
ldrb r3, [sp, #0x550]
strb r3, [r2]
; Line 356
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7C
ldr r3, [r3]
add r3, r3, #1, 24
add r2, r3, #0x61
ldrb r3, [sp, #0x551]
strb r3, [r2]
; Line 358
mov r3, #0
str r3, [sp, #0x5CC]
b |$LN137@D_MAIN_dec|
|$LN120@D_MAIN_dec|
; Line 365
ldr r3, [sp, #0x2BC]
add r3, r3, #0x7D, 30
str r3, [sp, #0x58C]
; Line 368
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #0
bgt |$LN113@D_MAIN_dec|
; Line 370
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xA4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 371
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xA6]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 372
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xA8]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 373
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xAA]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 374
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xAC]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 376
ldrb r3, [sp, #0x550]
str r3, [sp, #4]
ldr r3, [sp, #0x2BC]
add r3, r3, #3, 24
add r3, r3, #0xF6
str r3, [sp]
ldr r3, [sp, #0x2BC]
add r3, r3, #0x5B, 28
ldr r2, [sp, #0x2BC]
add r2, r2, #0x5D, 28
add r1, sp, #0xB4
add r0, sp, #0xA4
bl D_LPC_isf_2s3s_decode
; Line 378
b |$LN112@D_MAIN_dec|
|$LN113@D_MAIN_dec|
; Line 380
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xA4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 381
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xA6]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 382
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xA8]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 383
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xAA]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 384
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xAC]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 385
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xAE]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 386
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xB0]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 388
ldrb r3, [sp, #0x550]
str r3, [sp, #4]
ldr r3, [sp, #0x2BC]
add r3, r3, #3, 24
add r3, r3, #0xF6
str r3, [sp]
ldr r3, [sp, #0x2BC]
add r3, r3, #0x5B, 28
ldr r2, [sp, #0x2BC]
add r2, r2, #0x5D, 28
add r1, sp, #0xB4
add r0, sp, #0xA4
bl D_LPC_isf_2s5s_decode
|$LN112@D_MAIN_dec|
; Line 392
mov r2, #0x10
mov r1, #5, 24
orr r1, r1, #0x64
add r1, sp, r1
add r0, sp, #0xB4
bl D_LPC_isf_isp_conversion
; Line 394
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x82
ldrb r3, [r3]
cmp r3, #0
beq |$LN111@D_MAIN_dec|
; Line 396
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x82
mov r3, #0
strb r3, [r2]
; Line 397
mov r2, #0x20
mov r1, #5, 24
orr r1, r1, #0x64
add r1, sp, r1
ldr r3, [sp, #0x2BC]
add r0, r3, #0x59, 28
bl memcpy
|$LN111@D_MAIN_dec|
; Line 401
mov r3, #1, 22
orr r3, r3, #0xC4
add r3, sp, r3
ldr r2, [pc, #0x50]
mov r1, #5, 24
orr r1, r1, #0x64
add r1, sp, r1
ldr r0, [sp, #0x2BC]
add r0, r0, #0x59, 28
bl D_LPC_int_isp_find
; Line 404
mov r2, #0x20
mov r1, #5, 24
orr r1, r1, #0x64
add r1, sp, r1
ldr r3, [sp, #0x2BC]
add r0, r3, #0x59, 28
bl memcpy
; Line 407
mov r3, #0
str r3, [sp, #0x5AC]
; Line 408
ldr r3, [sp, #0x2BC]
add r3, r3, #0x5B, 28
str r3, [sp, #0x59C]
; Line 410
mov r3, #0
str r3, [sp, #0xDC]
b |$LN110@D_MAIN_dec|
|$LN159@D_MAIN_dec|
DCD |D_ROM_interpol_frac|
DCD |__imp___rt_sdiv|
|$LN109@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN110@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0xF
bge |$LN108@D_MAIN_dec|
; Line 412
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xB4
add r3, r3, r2
ldrsh r0, [r3]
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x59C]
add r3, r3, r2
ldrsh r3, [r3]
sub r3, r0, r3
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r12, sp, #2, 24
strh r3, [r12, #0x88]
; Line 413
add r1, sp, #2, 24
ldrsh r1, [r1, #0x88]
add r3, sp, #2, 24
ldrsh r3, [r3, #0x88]
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
add r3, r3, r2
str r3, [sp, #0x5AC]
; Line 414
b |$LN109@D_MAIN_dec|
|$LN108@D_MAIN_dec|
; Line 416
ldr r2, [sp, #0x5AC]
mov r3, #0x32, 16
orr r3, r3, #0x80
cmp r2, r3
bge |$LN107@D_MAIN_dec|
; Line 418
ldr r3, [sp, #0x5AC]
mov r3, r3, asr #7
str r3, [sp, #0x5AC]
; Line 419
ldr r2, [sp, #0x5AC]
mov r3, #0x66, 24
orr r3, r3, #0x66
mul r3, r2, r3
mov r3, r3, asr #15
str r3, [sp, #0x5AC]
; Line 420
ldr r3, [sp, #0x5AC]
rsb r3, r3, #5, 20
str r3, [sp, #0x5AC]
; Line 421
ldr r3, [sp, #0x5AC]
mov r3, r3, lsl #1
str r3, [sp, #0x2B4]
; Line 423
ldr r2, [sp, #0x2B4]
mov r3, #0x7F, 24
orr r3, r3, #0xFF
cmp r2, r3
ble |$LN106@D_MAIN_dec|
; Line 425
mov r3, #0x7F, 24
orr r3, r3, #0xFF
str r3, [sp, #0x2B4]
|$LN106@D_MAIN_dec|
; Line 428
b |$LN105@D_MAIN_dec|
|$LN107@D_MAIN_dec|
; Line 430
mov r3, #0
str r3, [sp, #0x2B4]
|$LN105@D_MAIN_dec|
; Line 433
mov r2, #0x20
ldr r3, [sp, #0x2BC]
add r1, r3, #0x5B, 28
add r0, sp, #0x7A, 30
bl memcpy
; Line 434
mov r2, #0x20
add r1, sp, #0xB4
ldr r3, [sp, #0x2BC]
add r0, r3, #0x5B, 28
bl memcpy
; Line 448
mov r3, #1, 22
orr r3, r3, #0xC4
add r3, sp, r3
str r3, [sp, #0x554]
; Line 450
mov r3, #0
str r3, [sp, #0xD4]
b |$LN104@D_MAIN_dec|
|$LN103@D_MAIN_dec|
ldr r3, [sp, #0xD4]
add r3, r3, #0x40
str r3, [sp, #0xD4]
|$LN104@D_MAIN_dec|
ldr r3, [sp, #0xD4]
cmp r3, #1, 24
bge |$LN102@D_MAIN_dec|
; Line 452
ldr r3, [sp, #0xD4]
str r3, [sp, #0x598]
; Line 454
ldr r3, [sp, #0xD4]
cmp r3, #0x80
bne |$LN149@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x670]
b |$LN150@D_MAIN_dec|
|$LN149@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x670]
|$LN150@D_MAIN_dec|
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #0
ble |$LN147@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x674]
b |$LN148@D_MAIN_dec|
|$LN147@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x674]
|$LN148@D_MAIN_dec|
ldr r2, [sp, #0x670]
ldr r3, [sp, #0x674]
tst r2, r3
beq |$LN101@D_MAIN_dec|
; Line 456
mov r3, #0
str r3, [sp, #0x598]
|$LN101@D_MAIN_dec|
; Line 465
ldr r3, [sp, #0x598]
cmp r3, #0
bne |$LN100@D_MAIN_dec|
; Line 467
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN99@D_MAIN_dec|
; Line 469
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
add r12, sp, #1, 24
strh r3, [r12, #0xE4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 471
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
cmp r3, #0x74
bge |$LN98@D_MAIN_dec|
; Line 473
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
mov r3, r3, asr #1
add r3, r3, #0x22
str r3, [sp, #0x584]
; Line 474
add r2, sp, #1, 24
ldrsh r2, [r2, #0xE4]
ldr r3, [sp, #0x584]
sub r3, r3, #0x22
mov r3, r3, lsl #1
sub r3, r2, r3
str r3, [sp, #0x594]
; Line 475
ldr r3, [sp, #0x594]
mov r3, r3, lsl #1
str r3, [sp, #0x594]
; Line 477
b |$LN97@D_MAIN_dec|
|$LN98@D_MAIN_dec|
; Line 479
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
sub r3, r3, #0x18
str r3, [sp, #0x584]
; Line 480
mov r3, #0
str r3, [sp, #0x594]
|$LN97@D_MAIN_dec|
; Line 483
b |$LN96@D_MAIN_dec|
|$LN99@D_MAIN_dec|
; Line 485
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
add r12, sp, #1, 24
strh r3, [r12, #0xE4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 487
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
cmp r3, #0x5E, 30
bge |$LN95@D_MAIN_dec|
; Line 489
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
mov r3, r3, asr #2
add r3, r3, #0x22
str r3, [sp, #0x584]
; Line 490
add r2, sp, #1, 24
ldrsh r2, [r2, #0xE4]
ldr r3, [sp, #0x584]
sub r3, r3, #0x22
mov r3, r3, lsl #2
sub r3, r2, r3
str r3, [sp, #0x594]
; Line 492
b |$LN94@D_MAIN_dec|
|$LN95@D_MAIN_dec|
; Line 493
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
cmp r3, #0x6E, 30
bge |$LN93@D_MAIN_dec|
; Line 495
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
sub r3, r3, #0x5E, 30
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r12, sp, #1, 24
strh r3, [r12, #0xE4]
; Line 496
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
mov r3, r3, asr #1
add r3, r3, #0x80
str r3, [sp, #0x584]
; Line 497
add r2, sp, #1, 24
ldrsh r2, [r2, #0xE4]
ldr r3, [sp, #0x584]
sub r3, r3, #0x80
mov r3, r3, lsl #1
sub r3, r2, r3
str r3, [sp, #0x594]
; Line 498
ldr r3, [sp, #0x594]
mov r3, r3, lsl #1
str r3, [sp, #0x594]
; Line 500
b |$LN92@D_MAIN_dec|
|$LN93@D_MAIN_dec|
; Line 503
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
sub r3, r3, #0x46, 30
str r3, [sp, #0x584]
; Line 504
mov r3, #0
str r3, [sp, #0x594]
|$LN92@D_MAIN_dec|
|$LN94@D_MAIN_dec|
|$LN96@D_MAIN_dec|
; Line 509
ldr r3, [sp, #0x584]
sub r3, r3, #8
str r3, [sp, #0x54C]
; Line 511
ldr r3, [sp, #0x54C]
cmp r3, #0x22
bge |$LN91@D_MAIN_dec|
; Line 513
mov r3, #0x22
str r3, [sp, #0x54C]
|$LN91@D_MAIN_dec|
; Line 516
ldr r3, [sp, #0x54C]
add r3, r3, #0xF
str r3, [sp, #0x55C]
; Line 518
ldr r3, [sp, #0x55C]
cmp r3, #0xE7
ble |$LN90@D_MAIN_dec|
; Line 520
mov r3, #0xE7
str r3, [sp, #0x55C]
; Line 521
ldr r3, [sp, #0x55C]
sub r3, r3, #0xF
str r3, [sp, #0x54C]
|$LN90@D_MAIN_dec|
; Line 524
b |$LN89@D_MAIN_dec|
|$LN100@D_MAIN_dec|
; Line 527
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN88@D_MAIN_dec|
; Line 529
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
add r12, sp, #1, 24
strh r3, [r12, #0xE4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 530
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
mov r2, r3, asr #1
ldr r3, [sp, #0x54C]
add r3, r3, r2
str r3, [sp, #0x584]
; Line 531
add r1, sp, #1, 24
ldrsh r1, [r1, #0xE4]
ldr r2, [sp, #0x584]
ldr r3, [sp, #0x54C]
sub r3, r2, r3
mov r3, r3, lsl #1
sub r3, r1, r3
str r3, [sp, #0x594]
; Line 532
ldr r3, [sp, #0x594]
mov r3, r3, lsl #1
str r3, [sp, #0x594]
; Line 534
b |$LN87@D_MAIN_dec|
|$LN88@D_MAIN_dec|
; Line 536
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
add r12, sp, #1, 24
strh r3, [r12, #0xE4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 537
add r3, sp, #1, 24
ldrsh r3, [r3, #0xE4]
mov r2, r3, asr #2
ldr r3, [sp, #0x54C]
add r3, r3, r2
str r3, [sp, #0x584]
; Line 538
add r1, sp, #1, 24
ldrsh r1, [r1, #0xE4]
ldr r2, [sp, #0x584]
ldr r3, [sp, #0x54C]
sub r3, r2, r3
mov r3, r3, lsl #2
sub r3, r1, r3
str r3, [sp, #0x594]
|$LN87@D_MAIN_dec|
|$LN89@D_MAIN_dec|
; Line 543
ldrb r3, [sp, #0x550]
cmp r3, #0
beq |$LN86@D_MAIN_dec|
; Line 546
ldrb r3, [sp, #0x1C]
str r3, [sp, #4]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x74
str r3, [sp]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x76
mov r2, #5, 24
orr r2, r2, #0x84
add r2, sp, r2
ldr r1, [sp, #0x2BC]
add r1, r1, #6, 24
add r1, r1, #0x58
ldr r0, [sp, #0x2BC]
add r0, r0, #5, 24
add r0, r0, #0x5C
bl D_GAIN_lag_concealment
; Line 547
mov r3, #0
str r3, [sp, #0x594]
|$LN86@D_MAIN_dec|
; Line 555
ldr r2, [sp, #0x594]
ldr r1, [sp, #0x584]
ldr lr, [sp, #0xD4]
mov r3, #2
mul r0, lr, r3
ldr r3, [sp, #0x58C]
add r0, r3, r0
bl D_GAIN_adaptive_codebook_excitation
; Line 557
ldrb r3, [sp, #0x1C]
cmp r3, #0
beq |$LN85@D_MAIN_dec|
; Line 559
mov r3, #1
str r3, [sp, #0x5A4]
; Line 561
b |$LN84@D_MAIN_dec|
|$LN85@D_MAIN_dec|
; Line 563
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN83@D_MAIN_dec|
; Line 565
mov r3, #0
str r3, [sp, #0x5A4]
; Line 567
b |$LN82@D_MAIN_dec|
|$LN83@D_MAIN_dec|
; Line 569
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
str r3, [sp, #0x5A4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
|$LN82@D_MAIN_dec|
|$LN84@D_MAIN_dec|
; Line 573
ldr r3, [sp, #0x5A4]
cmp r3, #0
bne |$LN81@D_MAIN_dec|
; Line 576
mov r3, #0
str r3, [sp, #0xDC]
b |$LN80@D_MAIN_dec|
|$LN79@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN80@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x40
bge |$LN78@D_MAIN_dec|
; Line 578
ldr r3, [sp, #0xDC]
sub r2, r3, #1
ldr r3, [sp, #0xD4]
add r1, r2, r3
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x58C]
add r3, r3, r2
ldrsh r2, [r3]
mov r3, #0xB, 24
orr r3, r3, #0x85
mul r3, r2, r3
str r3, [sp, #0x5AC]
; Line 579
ldr r2, [sp, #0xDC]
ldr r3, [sp, #0xD4]
add r1, r2, r3
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x58C]
add r3, r3, r2
ldrsh r1, [r3]
mov r3, #0xA, 22
orr r3, r3, #0xF6
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
add r3, r3, r2
str r3, [sp, #0x5AC]
; Line 580
ldr r3, [sp, #0xDC]
add r2, r3, #1
ldr r3, [sp, #0xD4]
add r1, r2, r3
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x58C]
add r3, r3, r2
ldrsh r1, [r3]
mov r3, #0xB, 24
orr r3, r3, #0x85
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
add r3, r3, r2
str r3, [sp, #0x5AC]
; Line 581
ldr r3, [sp, #0x5AC]
add r3, r3, #2, 20
mov r3, r3, asr #14
mov r0, r3, lsl #16
mov r0, r0, asr #16
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x82, 30
add r3, r3, r2
strh r0, [r3]
; Line 582
b |$LN79@D_MAIN_dec|
|$LN78@D_MAIN_dec|
; Line 584
mov r2, #0x80
add r1, sp, #0x82, 30
ldr lr, [sp, #0xD4]
mov r3, #2
mul r0, lr, r3
ldr r3, [sp, #0x58C]
add r0, r3, r0
bl memcpy
|$LN81@D_MAIN_dec|
; Line 592
ldrb r3, [sp, #0x1C]
cmp r3, #0
beq |$LN77@D_MAIN_dec|
; Line 595
mov r3, #0
str r3, [sp, #0xDC]
b |$LN76@D_MAIN_dec|
|$LN75@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN76@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x40
bge |$LN74@D_MAIN_dec|
; Line 597
ldr r3, [sp, #0x2BC]
add r0, r3, #0x67, 28
bl D_UTIL_random
add r12, sp, #6, 24
strh r0, [r12, #0x78]
add r3, sp, #6, 24
ldrsh r3, [r3, #0x78]
mov r3, r3, asr #3
mov r0, r3, lsl #16
mov r0, r0, asr #16
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x82, 30
add r3, r3, r2
strh r0, [r3]
; Line 598
b |$LN75@D_MAIN_dec|
|$LN74@D_MAIN_dec|
; Line 600
b |$LN73@D_MAIN_dec|
|$LN77@D_MAIN_dec|
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #0
bgt |$LN72@D_MAIN_dec|
; Line 602
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
strh r3, [sp, #0xA4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 603
add r1, sp, #0x82, 30
ldrsh r0, [sp, #0xA4]
bl D_ACELP_decode_2t
b |$LN71@D_MAIN_dec|
|$LN72@D_MAIN_dec|
; Line 605
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN70@D_MAIN_dec|
; Line 607
mov r2, #8
ldr r1, [sp, #0x6AC]
add r0, sp, #0xA4
bl memcpy
; Line 608
ldr r3, [sp, #0x6AC]
add r3, r3, #8
str r3, [sp, #0x6AC]
; Line 609
add r2, sp, #0x82, 30
mov r1, #0x14
add r0, sp, #0xA4
bl D_ACELP_decode_4t
b |$LN69@D_MAIN_dec|
|$LN70@D_MAIN_dec|
; Line 611
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #2
bgt |$LN68@D_MAIN_dec|
; Line 613
mov r2, #8
ldr r1, [sp, #0x6AC]
add r0, sp, #0xA4
bl memcpy
; Line 614
ldr r3, [sp, #0x6AC]
add r3, r3, #8
str r3, [sp, #0x6AC]
; Line 615
add r2, sp, #0x82, 30
mov r1, #0x24
add r0, sp, #0xA4
bl D_ACELP_decode_4t
b |$LN67@D_MAIN_dec|
|$LN68@D_MAIN_dec|
; Line 617
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #3
bgt |$LN66@D_MAIN_dec|
; Line 619
mov r2, #8
ldr r1, [sp, #0x6AC]
add r0, sp, #0xA4
bl memcpy
; Line 620
ldr r3, [sp, #0x6AC]
add r3, r3, #8
str r3, [sp, #0x6AC]
; Line 621
add r2, sp, #0x82, 30
mov r1, #0x2C
add r0, sp, #0xA4
bl D_ACELP_decode_4t
b |$LN65@D_MAIN_dec|
|$LN66@D_MAIN_dec|
; Line 623
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #4
bgt |$LN64@D_MAIN_dec|
; Line 625
mov r2, #8
ldr r1, [sp, #0x6AC]
add r0, sp, #0xA4
bl memcpy
; Line 626
ldr r3, [sp, #0x6AC]
add r3, r3, #8
str r3, [sp, #0x6AC]
; Line 627
add r2, sp, #0x82, 30
mov r1, #0x34
add r0, sp, #0xA4
bl D_ACELP_decode_4t
b |$LN63@D_MAIN_dec|
|$LN64@D_MAIN_dec|
; Line 629
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #5
bgt |$LN62@D_MAIN_dec|
; Line 631
mov r2, #0x10
ldr r1, [sp, #0x6AC]
add r0, sp, #0xA4
bl memcpy
; Line 632
ldr r3, [sp, #0x6AC]
add r3, r3, #0x10
str r3, [sp, #0x6AC]
; Line 633
add r2, sp, #0x82, 30
mov r1, #0x40
add r0, sp, #0xA4
bl D_ACELP_decode_4t
b |$LN61@D_MAIN_dec|
|$LN62@D_MAIN_dec|
; Line 635
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #6
bgt |$LN60@D_MAIN_dec|
; Line 637
mov r2, #0x10
ldr r1, [sp, #0x6AC]
add r0, sp, #0xA4
bl memcpy
; Line 638
ldr r3, [sp, #0x6AC]
add r3, r3, #0x10
str r3, [sp, #0x6AC]
; Line 639
add r2, sp, #0x82, 30
mov r1, #0x48
add r0, sp, #0xA4
bl D_ACELP_decode_4t
; Line 641
b |$LN59@D_MAIN_dec|
|$LN60@D_MAIN_dec|
; Line 643
mov r2, #0x10
ldr r1, [sp, #0x6AC]
add r0, sp, #0xA4
bl memcpy
; Line 644
ldr r3, [sp, #0x6AC]
add r3, r3, #0x10
str r3, [sp, #0x6AC]
; Line 645
add r2, sp, #0x82, 30
mov r1, #0x58
add r0, sp, #0xA4
bl D_ACELP_decode_4t
|$LN59@D_MAIN_dec|
|$LN61@D_MAIN_dec|
|$LN63@D_MAIN_dec|
|$LN65@D_MAIN_dec|
|$LN67@D_MAIN_dec|
|$LN69@D_MAIN_dec|
|$LN71@D_MAIN_dec|
|$LN73@D_MAIN_dec|
; Line 648
mov r3, #0
add r12, sp, #2, 24
strh r3, [r12, #0x88]
; Line 649
add r3, sp, #0xA2, 30
mov r2, #0x40
ldr r1, [sp, #0x2BC]
add r1, r1, #6, 24
add r1, r1, #0x6A
ldrsh r1, [r1]
add r0, sp, #0x82, 30
bl D_UTIL_preemph
; Line 651
ldr r3, [sp, #0x584]
str r3, [sp, #0x5AC]
; Line 653
ldr r3, [sp, #0x594]
cmp r3, #2
ble |$LN58@D_MAIN_dec|
; Line 655
ldr r3, [sp, #0x5AC]
add r3, r3, #1
str r3, [sp, #0x5AC]
|$LN58@D_MAIN_dec|
; Line 658
mov r2, #0x1B, 22
orr r2, r2, #0xCD
ldr r1, [sp, #0x5AC]
add r0, sp, #0x82, 30
bl D_GAIN_pitch_sharpening
; Line 663
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
add r12, sp, #1, 24
strh r3, [r12, #0xE4]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 665
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN57@D_MAIN_dec|
; Line 669
ldr r3, [sp, #0x2BC]
add r3, r3, #5, 24
add r3, r3, #0x3A
str r3, [sp, #0x18]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7A
ldrsh r3, [r3]
str r3, [sp, #0x14]
ldrb r3, [sp, #0x1C]
str r3, [sp, #0x10]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x81
ldrb r3, [r3]
str r3, [sp, #0xC]
ldr r3, [sp, #0x2BC]
add r3, r3, #0x1A, 26
ldrb r3, [r3]
str r3, [sp, #8]
ldrb r3, [sp, #0x550]
str r3, [sp, #4]
add r3, sp, #0xAE, 30
str r3, [sp]
add r3, sp, #0x59, 28
add r2, sp, #0x82, 30
mov r1, #6
add r0, sp, #1, 24
ldrsh r0, [r0, #0xE4]
bl D_GAIN_decode
; Line 671
b |$LN56@D_MAIN_dec|
|$LN57@D_MAIN_dec|
; Line 675
ldr r3, [sp, #0x2BC]
add r3, r3, #5, 24
add r3, r3, #0x3A
str r3, [sp, #0x18]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7A
ldrsh r3, [r3]
str r3, [sp, #0x14]
ldrb r3, [sp, #0x1C]
str r3, [sp, #0x10]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x81
ldrb r3, [r3]
str r3, [sp, #0xC]
ldr r3, [sp, #0x2BC]
add r3, r3, #0x1A, 26
ldrb r3, [r3]
str r3, [sp, #8]
ldrb r3, [sp, #0x550]
str r3, [sp, #4]
add r3, sp, #0xAE, 30
str r3, [sp]
add r3, sp, #0x59, 28
add r2, sp, #0x82, 30
mov r1, #7
add r0, sp, #1, 24
ldrsh r0, [r0, #0xE4]
bl D_GAIN_decode
|$LN56@D_MAIN_dec|
; Line 679
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x62
ldrsh r3, [r3]
add r12, sp, #2, 24
strh r3, [r12, #0x88]
; Line 681
mov r3, #1
str r3, [sp, #0xDC]
b |$LN55@D_MAIN_dec|
|$LN54@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN55@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #4
bge |$LN53@D_MAIN_dec|
; Line 683
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r1, r3, #0x62
ldr r2, [sp, #0xDC]
mov r3, #2
mul r3, r2, r3
add r3, r1, r3
ldrsh r2, [r3]
add r3, sp, #2, 24
ldrsh r3, [r3, #0x88]
cmp r2, r3
bge |$LN52@D_MAIN_dec|
; Line 685
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r1, r3, #0x62
ldr r2, [sp, #0xDC]
mov r3, #2
mul r3, r2, r3
add r3, r1, r3
ldrsh r3, [r3]
add r12, sp, #2, 24
strh r3, [r12, #0x88]
|$LN52@D_MAIN_dec|
; Line 687
b |$LN54@D_MAIN_dec|
|$LN53@D_MAIN_dec|
; Line 690
add r3, sp, #2, 24
ldrsh r3, [r3, #0x88]
cmp r3, #8
ble |$LN51@D_MAIN_dec|
; Line 692
mov r3, #8
add r12, sp, #2, 24
strh r3, [r12, #0x88]
|$LN51@D_MAIN_dec|
; Line 695
mov r3, #0
strh r3, [sp, #0x1E]
; Line 696
ldr r3, [sp, #0x2B8]
str r3, [sp, #0x5AC]
|$LN50@D_MAIN_dec|
; Line 698
ldr r3, [sp, #0x5AC]
cmp r3, #2, 6
bge |$LN49@D_MAIN_dec|
ldrsh r2, [sp, #0x1E]
add r3, sp, #2, 24
ldrsh r3, [r3, #0x88]
cmp r2, r3
bge |$LN49@D_MAIN_dec|
; Line 700
ldr r3, [sp, #0x5AC]
mov r3, r3, lsl #1
str r3, [sp, #0x5AC]
; Line 701
ldrsh r3, [sp, #0x1E]
add r3, r3, #1
mov r3, r3, lsl #16
mov r3, r3, asr #16
strh r3, [sp, #0x1E]
; Line 702
b |$LN50@D_MAIN_dec|
|$LN49@D_MAIN_dec|
; Line 704
ldr r2, [sp, #0x5AC]
mvn r3, #2, 2
eor r3, r3, #2, 18
cmp r2, r3
bge |$LN48@D_MAIN_dec|
; Line 706
ldr r3, [sp, #0x5AC]
add r3, r3, #2, 18
mov r3, r3, asr #16
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r12, sp, #2, 24
strh r3, [r12, #0xC0]
; Line 709
b |$LN47@D_MAIN_dec|
|$LN48@D_MAIN_dec|
; Line 711
mov r3, #0x7F, 24
orr r3, r3, #0xFF
add r12, sp, #2, 24
strh r3, [r12, #0xC0]
|$LN47@D_MAIN_dec|
; Line 714
ldrsh r2, [sp, #0x1E]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x6C
ldrsh r3, [r3]
cmp r2, r3
ble |$LN46@D_MAIN_dec|
; Line 717
ldrsh r2, [sp, #0x1E]
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x6C
ldrsh r3, [r3]
sub r3, r2, r3
mov r2, r3, lsl #16
mov r2, r2, asr #16
mov r1, #0x4E, 30
ldr lr, [sp, #0xD4]
mov r3, #2
mul r0, lr, r3
ldr r3, [sp, #0x58C]
add r3, r3, r0
sub r0, r3, #0x1F, 28
bl D_UTIL_signal_up_scale
; Line 719
b |$LN45@D_MAIN_dec|
|$LN46@D_MAIN_dec|
; Line 722
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x6C
ldrsh r2, [r3]
ldrsh r3, [sp, #0x1E]
sub r3, r2, r3
mov r2, r3, lsl #16
mov r2, r2, asr #16
mov r1, #0x4E, 30
ldr lr, [sp, #0xD4]
mov r3, #2
mul r0, lr, r3
ldr r3, [sp, #0x58C]
add r3, r3, r0
sub r0, r3, #0x1F, 28
bl D_UTIL_signal_down_scale
|$LN45@D_MAIN_dec|
; Line 725
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x6C
ldrsh r3, [sp, #0x1E]
strh r3, [r2]
; Line 731
ldrb r3, [sp, #0x550]
cmp r3, #0
bne |$LN44@D_MAIN_dec|
; Line 734
mov r3, #4
str r3, [sp, #0xDC]
b |$LN43@D_MAIN_dec|
|$LN42@D_MAIN_dec|
ldr r3, [sp, #0xDC]
sub r3, r3, #1
str r3, [sp, #0xDC]
|$LN43@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0
ble |$LN41@D_MAIN_dec|
; Line 736
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r1, r3, #0x58
ldr r3, [sp, #0xDC]
sub r2, r3, #1
mov r3, #2
mul r3, r2, r3
add r0, r1, r3
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r1, r3, #0x58
ldr r2, [sp, #0xDC]
mov r3, #2
mul r3, r2, r3
add r2, r1, r3
ldrsh r3, [r0]
strh r3, [r2]
; Line 737
b |$LN42@D_MAIN_dec|
|$LN41@D_MAIN_dec|
; Line 738
ldr r3, [sp, #0x584]
mov r2, r3, lsl #16
mov r2, r2, asr #16
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x58
strh r2, [r3]
; Line 739
ldr r3, [sp, #0x584]
mov r2, r3, lsl #16
mov r2, r2, asr #16
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x76
strh r2, [r3]
; Line 740
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x78
mov r3, #0
strh r3, [r2]
|$LN44@D_MAIN_dec|
; Line 744
mov r2, #0x80
ldr r0, [sp, #0xD4]
mov r3, #2
mul r1, r0, r3
ldr r3, [sp, #0x58C]
add r1, r3, r1
add r0, sp, #0xB1, 30
bl memcpy
; Line 745
mov r2, #3
mov r1, #0x40
add r0, sp, #0xB1, 30
bl D_UTIL_signal_down_scale
; Line 748
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN40@D_MAIN_dec|
; Line 750
add r3, sp, #5, 24
ldrsh r3, [r3, #0x90]
mov r3, r3, lsl #1
mov r3, r3, lsl #16
mov r3, r3, lsr #16
add r12, sp, #1, 24
strh r3, [r12, #0xE2]
; Line 752
add r3, sp, #1, 24
ldrh r3, [r3, #0xE2]
cmp r3, #1, 18
ble |$LN39@D_MAIN_dec|
; Line 754
add r3, sp, #1, 24
ldrh r3, [r3, #0xE2]
mov r2, r3
mov r3, #0x7F, 24
orr r3, r3, #0xFF
cmp r2, r3
ble |$LN38@D_MAIN_dec|
; Line 756
mov r3, #0x7F, 24
orr r3, r3, #0xFF
add r12, sp, #1, 24
strh r3, [r12, #0xE2]
|$LN38@D_MAIN_dec|
; Line 759
mov r3, #0
str r3, [sp, #0xDC]
b |$LN37@D_MAIN_dec|
|$LN36@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN37@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x40
bge |$LN35@D_MAIN_dec|
; Line 761
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xB1, 30
add r3, r3, r2
ldrsh r2, [r3]
add r3, sp, #1, 24
ldrh r3, [r3, #0xE2]
mul r3, r2, r3
mov r3, r3, asr #15
str r3, [sp, #0x5AC]
; Line 762
add r3, sp, #5, 24
ldrsh r3, [r3, #0x90]
ldr r2, [sp, #0x5AC]
mul r3, r2, r3
str r3, [sp, #0x5AC]
; Line 763
ldr r3, [sp, #0x5AC]
add r3, r3, #2, 18
mov r3, r3, asr #16
mov r0, r3, lsl #16
mov r0, r0, asr #16
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x24
add r3, r3, r2
strh r0, [r3]
; Line 764
b |$LN36@D_MAIN_dec|
|$LN35@D_MAIN_dec|
|$LN39@D_MAIN_dec|
|$LN40@D_MAIN_dec|
; Line 769
mov r3, #0x40
str r3, [sp, #4]
add r3, sp, #2, 24
ldrsh r3, [r3, #0xC0]
str r3, [sp]
add r3, sp, #0x82, 30
add r2, sp, #5, 24
ldrsh r2, [r2, #0x90]
mvn r1, #2
add r0, sp, #0xB1, 30
bl D_GAIN_find_voice_factor
add r12, sp, #6, 24
strh r0, [r12, #0x7A]
add r3, sp, #6, 24
ldrsh r3, [r3, #0x7A]
strh r3, [sp, #0x20]
; Line 772
ldrsh r3, [sp, #0x20]
mov r3, r3, asr #2
add r3, r3, #2, 20
mov r2, r3, lsl #16
mov r2, r2, asr #16
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x6A
strh r2, [r3]
; Line 779
mov r2, #0x80
ldr r0, [sp, #0xD4]
mov r3, #2
mul r1, r0, r3
ldr r3, [sp, #0x58C]
add r1, r3, r1
add r0, sp, #0xB1, 30
bl memcpy
; Line 780
mov r3, #1
add r12, sp, #5, 24
strh r3, [r12, #0xA0]
; Line 782
mov r3, #0
str r3, [sp, #0xDC]
b |$LN34@D_MAIN_dec|
|$LN33@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN34@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x40
bge |$LN32@D_MAIN_dec|
; Line 784
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x82, 30
add r3, r3, r2
ldrsh r2, [r3]
add r3, sp, #2, 24
ldrsh r3, [r3, #0xC0]
mul r3, r2, r3
mov r3, r3, lsl #5
str r3, [sp, #0x5AC]
; Line 785
ldr r2, [sp, #0xDC]
ldr r3, [sp, #0xD4]
add r1, r2, r3
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x58C]
add r3, r3, r2
ldrsh r1, [r3]
add r3, sp, #5, 24
ldrsh r3, [r3, #0x90]
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
add r3, r3, r2
str r3, [sp, #0x5AC]
; Line 786
ldr r3, [sp, #0x5AC]
add r3, r3, #2, 20
mov r3, r3, asr #14
str r3, [sp, #0x5AC]
; Line 788
ldr r3, [sp, #0x5AC]
cmn r3, #2, 18
ble |$LN153@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x67C]
b |$LN154@D_MAIN_dec|
|$LN153@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x67C]
|$LN154@D_MAIN_dec|
ldr r3, [sp, #0x5AC]
cmp r3, #2, 18
bge |$LN151@D_MAIN_dec|
mov r3, #1
str r3, [sp, #0x680]
b |$LN152@D_MAIN_dec|
|$LN151@D_MAIN_dec|
mov r3, #0
str r3, [sp, #0x680]
|$LN152@D_MAIN_dec|
ldr r2, [sp, #0x67C]
ldr r3, [sp, #0x680]
tst r2, r3
beq |$LN31@D_MAIN_dec|
; Line 790
ldr r3, [sp, #0x5AC]
mov r0, r3, lsl #16
mov r0, r0, asr #16
ldr r2, [sp, #0xDC]
ldr r3, [sp, #0xD4]
add r1, r2, r3
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x58C]
add r3, r3, r2
strh r0, [r3]
; Line 791
ldr r0, [sp, #0x5AC]
bl abs
str r0, [sp, #0x684]
ldr r3, [sp, #0x684]
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r12, sp, #2, 24
strh r3, [r12, #0x88]
; Line 793
add r2, sp, #2, 24
ldrsh r2, [r2, #0x88]
add r3, sp, #5, 24
ldrsh r3, [r3, #0xA0]
cmp r2, r3
ble |$LN30@D_MAIN_dec|
; Line 795
add r3, sp, #2, 24
ldrsh r3, [r3, #0x88]
add r12, sp, #5, 24
strh r3, [r12, #0xA0]
|$LN30@D_MAIN_dec|
; Line 796
b |$LN29@D_MAIN_dec|
|$LN31@D_MAIN_dec|
; Line 798
ldr r2, [sp, #0x5AC]
mov r3, #0x7F, 24
orr r3, r3, #0xFF
cmp r2, r3
ble |$LN28@D_MAIN_dec|
; Line 800
ldr r2, [sp, #0xDC]
ldr r3, [sp, #0xD4]
add r1, r2, r3
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x58C]
add r2, r3, r2
mov r3, #0x7F, 24
orr r3, r3, #0xFF
strh r3, [r2]
; Line 801
mov r3, #0x7F, 24
orr r3, r3, #0xFF
add r12, sp, #5, 24
strh r3, [r12, #0xA0]
; Line 803
b |$LN27@D_MAIN_dec|
|$LN28@D_MAIN_dec|
; Line 805
ldr r2, [sp, #0xDC]
ldr r3, [sp, #0xD4]
add r1, r2, r3
mov r3, #2
mul r2, r1, r3
ldr r3, [sp, #0x58C]
add r2, r3, r2
mvn r3, #0xFF
mov r3, r3, lsl #7
strh r3, [r2]
; Line 806
mov r3, #0x7F, 24
orr r3, r3, #0xFF
add r12, sp, #5, 24
strh r3, [r12, #0xA0]
|$LN27@D_MAIN_dec|
|$LN29@D_MAIN_dec|
; Line 808
b |$LN33@D_MAIN_dec|
|$LN32@D_MAIN_dec|
; Line 811
add r0, sp, #5, 24
ldrsh r0, [r0, #0xA0]
bl D_UTIL_norm_s
add r12, sp, #6, 24
strh r0, [r12, #0x88]
add r2, sp, #6, 24
ldrsh r2, [r2, #0x88]
ldrsh r3, [sp, #0x1E]
add r3, r2, r3
sub r3, r3, #1
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r12, sp, #2, 24
strh r3, [r12, #0x88]
; Line 812
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r1, r3, #0x66
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x68
ldrsh r3, [r1]
strh r3, [r2]
; Line 813
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r1, r3, #0x64
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x66
ldrsh r3, [r1]
strh r3, [r2]
; Line 814
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r1, r3, #0x62
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x64
ldrsh r3, [r1]
strh r3, [r2]
; Line 815
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r2, r3, #0x62
add r3, sp, #2, 24
ldrsh r3, [r3, #0x88]
strh r3, [r2]
; Line 822
add r2, sp, #0xD8
add r1, sp, #0xB, 26
ldr r0, [sp, #0x2B8]
bl D_UTIL_l_extract
; Line 824
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #0
bgt |$LN26@D_MAIN_dec|
; Line 826
mov r3, #0
str r3, [sp, #0x5A8]
b |$LN25@D_MAIN_dec|
|$LN26@D_MAIN_dec|
; Line 828
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN24@D_MAIN_dec|
; Line 830
mov r3, #1
str r3, [sp, #0x5A8]
; Line 832
b |$LN23@D_MAIN_dec|
|$LN24@D_MAIN_dec|
; Line 834
mov r3, #2
str r3, [sp, #0x5A8]
|$LN23@D_MAIN_dec|
|$LN25@D_MAIN_dec|
; Line 838
ldr r3, [sp, #0x2BC]
add r3, r3, #0x63, 28
str r3, [sp]
ldr r3, [sp, #0x5A8]
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r2, sp, #0x82, 30
add r1, sp, #5, 24
ldrsh r1, [r1, #0x90]
add r0, sp, #2, 24
ldrsh r0, [r0, #0xC0]
bl D_ACELP_phase_dispersion
; Line 847
ldrsh r3, [sp, #0x20]
mov r3, r3, asr #1
rsb r3, r3, #1, 18
str r3, [sp, #0x5AC]
; Line 848
ldr r2, [sp, #0x2B4]
ldr r3, [sp, #0x5AC]
mul r3, r2, r3
mov r3, r3, asr #15
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r12, sp, #5, 24
strh r3, [r12, #0x58]
; Line 849
ldr r3, [sp, #0x2B8]
str r3, [sp, #0x5AC]
; Line 851
ldr r2, [sp, #0x5AC]
ldr r3, [sp, #0x2BC]
ldr r3, [r3]
cmp r2, r3
bge |$LN22@D_MAIN_dec|
; Line 853
mov r2, #6, 22
orr r2, r2, #0x52
ldrsh r1, [sp, #0xD8]
add r0, sp, #2, 24
ldrsh r0, [r0, #0xC0]
bl D_UTIL_mpy_32_16
str r0, [sp, #0x68C]
ldr r2, [sp, #0x5AC]
ldr r3, [sp, #0x68C]
add r3, r2, r3
str r3, [sp, #0x5AC]
; Line 855
ldr r2, [sp, #0x5AC]
ldr r3, [sp, #0x2BC]
ldr r3, [r3]
cmp r2, r3
ble |$LN21@D_MAIN_dec|
; Line 857
ldr r3, [sp, #0x2BC]
ldr r3, [r3]
str r3, [sp, #0x5AC]
|$LN21@D_MAIN_dec|
; Line 860
b |$LN20@D_MAIN_dec|
|$LN22@D_MAIN_dec|
; Line 862
mov r2, #0x6B, 24
orr r2, r2, #0x90
ldrsh r1, [sp, #0xD8]
add r0, sp, #2, 24
ldrsh r0, [r0, #0xC0]
bl D_UTIL_mpy_32_16
str r0, [sp, #0x690]
ldr r3, [sp, #0x690]
str r3, [sp, #0x5AC]
; Line 864
ldr r2, [sp, #0x5AC]
ldr r3, [sp, #0x2BC]
ldr r3, [r3]
cmp r2, r3
bge |$LN19@D_MAIN_dec|
; Line 866
ldr r3, [sp, #0x2BC]
ldr r3, [r3]
str r3, [sp, #0x5AC]
|$LN19@D_MAIN_dec|
|$LN20@D_MAIN_dec|
; Line 869
ldr r2, [sp, #0x5AC]
ldr r3, [sp, #0x2BC]
str r2, [r3]
; Line 871
add r2, sp, #5, 24
ldrsh r2, [r2, #0x58]
mov r3, #0x7F, 24
orr r3, r3, #0xFF
rsb r3, r2, r3
mov r2, r3, lsl #16
mov r2, r2, asr #16
ldrsh r1, [sp, #0xD8]
add r0, sp, #2, 24
ldrsh r0, [r0, #0xC0]
bl D_UTIL_mpy_32_16
str r0, [sp, #0x694]
ldr r3, [sp, #0x694]
str r3, [sp, #0x2B8]
; Line 872
add r2, sp, #0xD8
add r1, sp, #0xB, 26
ldr r0, [sp, #0x5AC]
bl D_UTIL_l_extract
; Line 874
add r2, sp, #5, 24
ldrsh r2, [r2, #0x58]
ldrsh r1, [sp, #0xD8]
add r0, sp, #2, 24
ldrsh r0, [r0, #0xC0]
bl D_UTIL_mpy_32_16
str r0, [sp, #0x698]
ldr r2, [sp, #0x2B8]
ldr r3, [sp, #0x698]
add r3, r2, r3
str r3, [sp, #0x2B8]
; Line 883
ldrsh r3, [sp, #0x20]
mov r3, r3, asr #3
add r3, r3, #1, 20
str r3, [sp, #0x588]
; Line 884
add r3, sp, #2, 24
ldrsh r3, [r3, #8]
mov r1, r3, lsl #15
add r2, sp, #2, 24
ldrsh r2, [r2, #0xA]
ldr r3, [sp, #0x588]
mul r3, r2, r3
sub r3, r1, r3
str r3, [sp, #0x5AC]
; Line 885
ldr r3, [sp, #0x5AC]
add r3, r3, #1, 18
mov r3, r3, asr #15
str r3, [sp, #0xE0]
; Line 887
mov r3, #1
str r3, [sp, #0xDC]
b |$LN18@D_MAIN_dec|
|$LN17@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN18@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x3F
bge |$LN16@D_MAIN_dec|
; Line 889
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x82, 30
add r3, r3, r2
ldrsh r3, [r3]
mov r3, r3, lsl #15
str r3, [sp, #0x5AC]
; Line 890
ldr r3, [sp, #0xDC]
add r1, r3, #1
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x82, 30
add r3, r3, r2
ldrsh r1, [r3]
ldr r3, [sp, #0x588]
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
sub r3, r3, r2
str r3, [sp, #0x5AC]
; Line 891
ldr r3, [sp, #0xDC]
sub r1, r3, #1
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x82, 30
add r3, r3, r2
ldrsh r1, [r3]
ldr r3, [sp, #0x588]
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
sub r3, r3, r2
str r3, [sp, #0x5AC]
; Line 892
ldr r3, [sp, #0x5AC]
add r3, r3, #1, 18
mov r0, r3, asr #15
ldr r1, [sp, #0xDC]
mov r3, #4
mul r2, r1, r3
add r3, sp, #0xE0
add r3, r3, r2
str r0, [r3]
; Line 893
b |$LN17@D_MAIN_dec|
|$LN16@D_MAIN_dec|
; Line 895
add r3, sp, #2, 24
ldrsh r3, [r3, #0x86]
mov r3, r3, lsl #15
str r3, [sp, #0x5AC]
; Line 896
add r1, sp, #2, 24
ldrsh r1, [r1, #0x84]
ldr r3, [sp, #0x588]
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
sub r3, r3, r2
str r3, [sp, #0x5AC]
; Line 897
ldr r3, [sp, #0x5AC]
add r3, r3, #1, 18
mov r3, r3, asr #15
str r3, [sp, #0x1DC]
; Line 900
ldrsh r2, [sp, #0x1E]
ldr r3, [sp, #0x2B8]
mov r3, r3, lsl r2
add r3, r3, #2, 18
mov r3, r3, asr #16
mov r3, r3, lsl #16
mov r3, r3, asr #16
add r12, sp, #2, 24
strh r3, [r12, #0xC0]
; Line 902
mov r3, #0
str r3, [sp, #0xDC]
b |$LN15@D_MAIN_dec|
|$LN14@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN15@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x40
bge |$LN13@D_MAIN_dec|
; Line 904
ldr r1, [sp, #0xDC]
mov r3, #4
mul r2, r1, r3
add r3, sp, #0xE0
add r2, r3, r2
add r3, sp, #2, 24
ldrsh r3, [r3, #0xC0]
ldr r2, [r2]
mul r3, r2, r3
mov r3, r3, lsl #5
str r3, [sp, #0x5AC]
; Line 905
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xB1, 30
add r3, r3, r2
ldrsh r1, [r3]
add r3, sp, #5, 24
ldrsh r3, [r3, #0x90]
mul r2, r1, r3
ldr r3, [sp, #0x5AC]
add r3, r3, r2
str r3, [sp, #0x5AC]
; Line 906
ldr r3, [sp, #0x5AC]
add r3, r3, #2, 20
mov r3, r3, asr #14
str r3, [sp, #0x5AC]
; Line 908
ldr r0, [sp, #0x5AC]
bl D_UTIL_saturate
add r12, sp, #6, 24
strh r0, [r12, #0x9C]
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xB1, 30
add r2, r3, r2
add r3, sp, #6, 24
ldrsh r3, [r3, #0x9C]
strh r3, [r2]
; Line 909
b |$LN14@D_MAIN_dec|
|$LN13@D_MAIN_dec|
; Line 911
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #1
bgt |$LN12@D_MAIN_dec|
; Line 913
add r3, sp, #1, 24
ldrh r3, [r3, #0xE2]
cmp r3, #1, 18
ble |$LN11@D_MAIN_dec|
; Line 915
mov r3, #0
str r3, [sp, #0xDC]
b |$LN10@D_MAIN_dec|
|$LN9@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN10@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x40
bge |$LN8@D_MAIN_dec|
; Line 917
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x24
add r3, r3, r2
ldrsh r0, [r3]
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xB1, 30
add r3, r3, r2
ldrsh r3, [r3]
add r3, r0, r3
str r3, [sp, #0x5AC]
; Line 918
ldr r0, [sp, #0x5AC]
bl D_UTIL_saturate
add r12, sp, #6, 24
strh r0, [r12, #0x9E]
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x24
add r2, r3, r2
add r3, sp, #6, 24
ldrsh r3, [r3, #0x9E]
strh r3, [r2]
; Line 919
b |$LN9@D_MAIN_dec|
|$LN8@D_MAIN_dec|
; Line 921
mov r2, #0x40
add r1, sp, #0x24
add r0, sp, #0xB1, 30
bl D_GAIN_adaptive_control
; Line 922
mov r2, #0x80
add r1, sp, #0x24
add r0, sp, #0xB1, 30
bl memcpy
|$LN11@D_MAIN_dec|
|$LN12@D_MAIN_dec|
; Line 926
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #0
bgt |$LN7@D_MAIN_dec|
; Line 928
ldr r3, [sp, #0xD4]
mov r3, r3, asr #6
str r3, [sp, #0x5A8]
; Line 930
mov r3, #0
str r3, [sp, #0xDC]
b |$LN6@D_MAIN_dec|
|$LN5@D_MAIN_dec|
ldr r3, [sp, #0xDC]
add r3, r3, #1
str r3, [sp, #0xDC]
|$LN6@D_MAIN_dec|
ldr r3, [sp, #0xDC]
cmp r3, #0x10
bge |$LN4@D_MAIN_dec|
; Line 932
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0x7A, 30
add r3, r3, r2
ldrsh r0, [r3]
ldr r1, [sp, #0x5A8]
mov r3, #2
mul r2, r1, r3
ldr r3, [pc, #0x25C]
add r3, r3, r2
ldrsh r2, [r3]
mov r3, #0x7F, 24
orr r3, r3, #0xFF
rsb r3, r2, r3
mul r3, r0, r3
str r3, [sp, #0x5AC]
; Line 933
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xB4
add r3, r3, r2
ldrsh r0, [r3]
ldr r1, [sp, #0x5A8]
mov r3, #2
mul r2, r1, r3
ldr r3, [pc, #0x218]
add r3, r3, r2
ldrsh r3, [r3]
mul r2, r0, r3
ldr r3, [sp, #0x5AC]
add r3, r3, r2
str r3, [sp, #0x5AC]
; Line 934
ldr r3, [sp, #0x5AC]
add r3, r3, #1, 18
mov r3, r3, asr #15
mov r0, r3, lsl #16
mov r0, r0, asr #16
ldr r1, [sp, #0xDC]
mov r3, #2
mul r2, r1, r3
add r3, sp, #0xA3, 30
add r3, r3, r2
strh r0, [r3]
; Line 935
b |$LN5@D_MAIN_dec|
|$LN4@D_MAIN_dec|
; Line 937
b |$LN3@D_MAIN_dec|
|$LN7@D_MAIN_dec|
; Line 939
mov r2, #8
mov r1, #0
ldr r3, [sp, #0x2BC]
add r3, r3, #5, 24
add r0, r3, #0x68
bl memset
|$LN3@D_MAIN_dec|
; Line 942
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
cmp r3, #8
blt |$LN2@D_MAIN_dec|
; Line 944
ldr r3, [sp, #0x6AC]
ldrsh r3, [r3]
add r12, sp, #5, 24
strh r3, [r12, #0x60]
ldr r3, [sp, #0x6AC]
add r3, r3, #2
str r3, [sp, #0x6AC]
; Line 946
ldr r3, [sp, #0x2BC]
str r3, [sp, #0x14]
ldrb r3, [sp, #0x550]
str r3, [sp, #0x10]
ldrb r3, [sp, #0x551]
str r3, [sp, #0xC]
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
str r3, [sp, #8]
add r3, sp, #0xA3, 30
str r3, [sp, #4]
add r3, sp, #5, 24
ldrsh r3, [r3, #0x60]
str r3, [sp]
ldr r2, [sp, #0xD4]
mov r3, #5
mul r1, r2, r3
mov r0, #4
ldr r3, [pc, #0x138]
ldr r3, [r3]
mov lr, pc
mov pc, r3
mov r3, #2
mul r2, r0, r3
ldr r3, [sp, #0x6B0]
add r3, r3, r2
ldrsh r2, [sp, #0x1E]
add r1, sp, #0xB1, 30
ldr r0, [sp, #0x554]
bl D_UTIL_dec_synthesis
; Line 948
b |$LN1@D_MAIN_dec|
|$LN2@D_MAIN_dec|
; Line 951
ldr r3, [sp, #0x2BC]
str r3, [sp, #0x14]
ldrb r3, [sp, #0x550]
str r3, [sp, #0x10]
ldrb r3, [sp, #0x551]
str r3, [sp, #0xC]
add r3, sp, #6, 24
ldrsh r3, [r3, #0xA8]
str r3, [sp, #8]
add r3, sp, #0xA3, 30
str r3, [sp, #4]
mov r3, #0
str r3, [sp]
ldr r2, [sp, #0xD4]
mov r3, #5
mul r1, r2, r3
mov r0, #4
ldr r3, [pc, #0xC0]
ldr r3, [r3]
mov lr, pc
mov pc, r3
mov r3, #2
mul r2, r0, r3
ldr r3, [sp, #0x6B0]
add r3, r3, r2
ldrsh r2, [sp, #0x1E]
add r1, sp, #0xB1, 30
ldr r0, [sp, #0x554]
bl D_UTIL_dec_synthesis
|$LN1@D_MAIN_dec|
; Line 954
ldr r3, [sp, #0x554]
add r3, r3, #0x22
str r3, [sp, #0x554]
; Line 955
b |$LN103@D_MAIN_dec|
|$LN102@D_MAIN_dec|
; Line 963
mov r2, #0x1F, 28
ldr r3, [sp, #0x2BC]
add r1, r3, #0x81, 30
ldr r3, [sp, #0x2BC]
add r0, r3, #4
bl memmove
; Line 964
ldrsh r2, [sp, #0x1E]
mov r1, #1, 24
ldr r0, [sp, #0x58C]
bl D_UTIL_signal_down_scale
; Line 965
ldr r2, [sp, #0x58C]
add r1, sp, #0xB4
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7C
ldr r0, [r3]
bl D_DTX_activity_update
; Line 966
ldr r3, [sp, #0x2BC]
add r3, r3, #6, 24
add r3, r3, #0x7C
ldr r3, [r3]
add r3, r3, #1, 24
add r2, r3, #0x61
ldrb r3, [sp, #0x551]
strb r3, [r2]
; Line 967
ldr r3, [sp, #0x2BC]
add r2, r3, #0x1A, 26
ldrb r3, [sp, #0x550]
strb r3, [r2]
; Line 969
mov r3, #0
str r3, [sp, #0x5CC]
|$LN137@D_MAIN_dec|
; Line 970
ldr r0, [sp, #0x5CC]
add sp, sp, #0x6A, 28
ldmia sp, {sp, pc}
|$LN158@D_MAIN_dec|
DCD |__imp___rt_sdiv|
DCD |D_ROM_interpol_frac|
|$M1796|
ENDP ; |D_MAIN_decode|
END