1152 lines
27 KiB
NASM
1152 lines
27 KiB
NASM
|
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727
|
||
|
|
||
|
TTL g:\MyPrograme\VS2005\GPSVersion2\tcpmp\ffmpeg\libavcodec\tscc.c
|
||
|
CODE32
|
||
|
|
||
|
AREA |.drectve|, DRECTVE
|
||
|
DCB "-defaultlib:LIBCMT "
|
||
|
DCB "-defaultlib:OLDNAMES "
|
||
|
|
||
|
EXPORT |tscc_decoder| [ DATA ]
|
||
|
|
||
|
AREA |.data|, DATA
|
||
|
|$SG3055| DCB "Camtasia warning: no End-of-picture code", 0xa, 0x0
|
||
|
% 2
|
||
|
|$SG3077| DCB "get_buffer() failed", 0xa, 0x0
|
||
|
% 3
|
||
|
|$SG3079| DCB "Inflate reset error: %d", 0xa, 0x0
|
||
|
% 3
|
||
|
|$SG3081| DCB "Inflate error: %d", 0xa, 0x0
|
||
|
% 1
|
||
|
|$SG3106| DCB "Camtasia error: unknown depth %i bpp", 0xa, 0x0
|
||
|
% 2
|
||
|
|$SG3110| DCB "Can't allocate decompression buffer.", 0xa, 0x0
|
||
|
% 2
|
||
|
|$SG3112| DCB "1.2.1", 0x0
|
||
|
% 2
|
||
|
|$SG3114| DCB "Inflate init error: %d", 0xa, 0x0
|
||
|
|$SG3122| DCB "camtasia", 0x0
|
||
|
% 3
|
||
|
|tscc_decoder| DCD |$SG3122|
|
||
|
DCD 0x0
|
||
|
DCD 0x39
|
||
|
DCD 0x118
|
||
|
DCD |decode_init|
|
||
|
DCD 0x0
|
||
|
DCD |decode_end|
|
||
|
DCD |decode_frame|
|
||
|
DCD 0x2
|
||
|
% 16
|
||
|
IMPORT |memcpy|
|
||
|
IMPORT |inflate|
|
||
|
IMPORT |inflateReset|
|
||
|
IMPORT |av_log|
|
||
|
IMPORT |memcpy|
|
||
|
|
||
|
AREA |.pdata|, PDATA
|
||
|
|$T3133| DCD |$LN12@decode_fra|
|
||
|
DCD 0x4000ae04
|
||
|
; Function compile flags: /Odsp
|
||
|
|
||
|
AREA |.text|, CODE, ARM
|
||
|
|
||
|
|decode_frame| PROC
|
||
|
; File g:\myprograme\vs2005\gpsversion2\tcpmp\ffmpeg\libavcodec\tscc.c
|
||
|
; Line 171
|
||
|
|$LN12@decode_fra|
|
||
|
mov r12, sp
|
||
|
stmdb sp!, {r0 - r3}
|
||
|
stmdb sp!, {r12, lr}
|
||
|
sub sp, sp, #0x24
|
||
|
|$M3130|
|
||
|
; Line 172
|
||
|
ldr r3, [sp, #0x2C]
|
||
|
add r3, r3, #0x88
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #0x10]
|
||
|
; Line 173
|
||
|
ldr r3, [sp, #0x38]
|
||
|
str r3, [sp]
|
||
|
; Line 178
|
||
|
ldr r3, [sp, #0x3C]
|
||
|
str r3, [sp, #8]
|
||
|
; Line 180
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r3, r3, #8
|
||
|
ldr r3, [r3]
|
||
|
cmp r3, #0
|
||
|
beq |$LN7@decode_fra|
|
||
|
; Line 181
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r1, r3, #8
|
||
|
ldr r0, [sp, #0x2C]
|
||
|
ldr r3, [sp, #0x2C]
|
||
|
add r3, r3, #0x42, 30
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
|$LN7@decode_fra|
|
||
|
; Line 183
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r2, r3, #0x58
|
||
|
mov r3, #1
|
||
|
str r3, [r2]
|
||
|
; Line 184
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r2, r3, #0xBC
|
||
|
mov r3, #1
|
||
|
str r3, [r2]
|
||
|
; Line 185
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r1, r3, #8
|
||
|
ldr r0, [sp, #0x2C]
|
||
|
ldr r3, [sp, #0x2C]
|
||
|
add r3, r3, #0x41, 30
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
str r0, [sp, #0x18]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
cmp r3, #0
|
||
|
bge |$LN6@decode_fra|
|
||
|
; Line 186
|
||
|
ldr r2, [pc, #0x1F8]
|
||
|
mov r1, #0
|
||
|
ldr r0, [sp, #0x2C]
|
||
|
bl av_log
|
||
|
; Line 187
|
||
|
mvn r3, #0
|
||
|
str r3, [sp, #0x14]
|
||
|
b |$LN8@decode_fra|
|
||
|
|$LN6@decode_fra|
|
||
|
; Line 190
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r3, r3, #8
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 193
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r0, r3, #0xE0
|
||
|
bl inflateReset
|
||
|
str r0, [sp, #0x1C]
|
||
|
ldr r3, [sp, #0x1C]
|
||
|
str r3, [sp, #4]
|
||
|
; Line 194
|
||
|
ldr r3, [sp, #4]
|
||
|
cmp r3, #0
|
||
|
beq |$LN5@decode_fra|
|
||
|
; Line 195
|
||
|
ldr r3, [sp, #4]
|
||
|
ldr r2, [pc, #0x1A0]
|
||
|
mov r1, #0
|
||
|
ldr r0, [sp, #0x2C]
|
||
|
bl av_log
|
||
|
; Line 196
|
||
|
mvn r3, #0
|
||
|
str r3, [sp, #0x14]
|
||
|
b |$LN8@decode_fra|
|
||
|
|$LN5@decode_fra|
|
||
|
; Line 198
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r2, r3, #0xE0
|
||
|
ldr r3, [sp]
|
||
|
str r3, [r2]
|
||
|
; Line 199
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r2, r3, #0xE4
|
||
|
ldr r3, [sp, #8]
|
||
|
str r3, [r2]
|
||
|
; Line 200
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r1, r3, #0xD8
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r2, r3, #0xEC
|
||
|
ldr r3, [r1]
|
||
|
str r3, [r2]
|
||
|
; Line 201
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r1, r3, #0xD4
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r2, r3, #0xF0
|
||
|
ldr r3, [r1]
|
||
|
str r3, [r2]
|
||
|
; Line 202
|
||
|
mov r1, #4
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r0, r3, #0xE0
|
||
|
bl inflate
|
||
|
str r0, [sp, #0x20]
|
||
|
ldr r3, [sp, #0x20]
|
||
|
str r3, [sp, #4]
|
||
|
; Line 204
|
||
|
ldr r3, [sp, #4]
|
||
|
cmp r3, #0
|
||
|
beq |$LN4@decode_fra|
|
||
|
ldr r3, [sp, #4]
|
||
|
cmp r3, #1
|
||
|
beq |$LN4@decode_fra|
|
||
|
ldr r3, [sp, #4]
|
||
|
cmn r3, #3
|
||
|
beq |$LN4@decode_fra|
|
||
|
; Line 205
|
||
|
ldr r3, [sp, #4]
|
||
|
ldr r2, [pc, #0xEC]
|
||
|
mov r1, #0
|
||
|
ldr r0, [sp, #0x2C]
|
||
|
bl av_log
|
||
|
; Line 206
|
||
|
mvn r3, #0
|
||
|
str r3, [sp, #0x14]
|
||
|
b |$LN8@decode_fra|
|
||
|
|$LN4@decode_fra|
|
||
|
; Line 210
|
||
|
ldr r3, [sp, #4]
|
||
|
cmn r3, #3
|
||
|
beq |$LN3@decode_fra|
|
||
|
; Line 211
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r3, r3, #0xF0
|
||
|
ldr r1, [r3]
|
||
|
ldr r0, [sp, #0x10]
|
||
|
bl decode_rle
|
||
|
|$LN3@decode_fra|
|
||
|
; Line 214
|
||
|
ldr r3, [sp, #0x10]
|
||
|
ldr r3, [r3]
|
||
|
add r3, r3, #0x34
|
||
|
ldr r3, [r3]
|
||
|
cmp r3, #0xE
|
||
|
bne |$LN2@decode_fra|
|
||
|
; Line 215
|
||
|
mov r2, #1, 22
|
||
|
ldr r3, [sp, #0x10]
|
||
|
ldr r3, [r3]
|
||
|
add r3, r3, #0x92, 30
|
||
|
ldr r3, [r3]
|
||
|
add r1, r3, #4
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r3, r3, #0xC
|
||
|
ldr r0, [r3]
|
||
|
bl memcpy
|
||
|
; Line 216
|
||
|
ldr r3, [sp, #0x10]
|
||
|
ldr r3, [r3]
|
||
|
add r3, r3, #0x92, 30
|
||
|
ldr r3, [r3]
|
||
|
ldr r3, [r3]
|
||
|
cmp r3, #0
|
||
|
beq |$LN1@decode_fra|
|
||
|
; Line 217
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r2, r3, #0xB8
|
||
|
mov r3, #1
|
||
|
str r3, [r2]
|
||
|
; Line 218
|
||
|
ldr r3, [sp, #0x10]
|
||
|
ldr r3, [r3]
|
||
|
add r3, r3, #0x92, 30
|
||
|
ldr r2, [r3]
|
||
|
mov r3, #0
|
||
|
str r3, [r2]
|
||
|
|$LN1@decode_fra|
|
||
|
|$LN2@decode_fra|
|
||
|
; Line 227
|
||
|
ldr r2, [sp, #0x34]
|
||
|
mov r3, #0xC8
|
||
|
str r3, [r2]
|
||
|
; Line 228
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r1, r3, #8
|
||
|
ldr r0, [sp, #0x30]
|
||
|
mov r2, #0xC8
|
||
|
bl memcpy
|
||
|
; Line 231
|
||
|
ldr r3, [sp, #0x3C]
|
||
|
str r3, [sp, #0x14]
|
||
|
|$LN8@decode_fra|
|
||
|
; Line 232
|
||
|
ldr r0, [sp, #0x14]
|
||
|
add sp, sp, #0x24
|
||
|
ldmia sp, {sp, pc}
|
||
|
|$LN13@decode_fra|
|
||
|
DCD |$SG3081|
|
||
|
DCD |$SG3079|
|
||
|
DCD |$SG3077|
|
||
|
|$M3131|
|
||
|
|
||
|
ENDP ; |decode_frame|
|
||
|
|
||
|
IMPORT |__imp___rt_sdiv|
|
||
|
|
||
|
AREA |.pdata|, PDATA
|
||
|
|$T3150| DCD |$LN41@decode_rle|
|
||
|
DCD 0x4001b304
|
||
|
; Function compile flags: /Odsp
|
||
|
|
||
|
AREA |.text|, CODE, ARM
|
||
|
|
||
|
|decode_rle| PROC
|
||
|
; Line 77
|
||
|
|$LN41@decode_rle|
|
||
|
mov r12, sp
|
||
|
stmdb sp!, {r0, r1}
|
||
|
stmdb sp!, {r4, r12, lr}
|
||
|
sub sp, sp, #0x3C
|
||
|
|$M3147|
|
||
|
; Line 78
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD8
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 80
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xDC
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #8]
|
||
|
mov r3, #0
|
||
|
str r3, [sp, #0x1C]
|
||
|
; Line 82
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r0, r3, #8
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xDC
|
||
|
ldr r3, [r3]
|
||
|
sub r1, r3, #1
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0x18
|
||
|
ldr r3, [r3]
|
||
|
mul r2, r1, r3
|
||
|
ldr r3, [r0]
|
||
|
add r3, r3, r2
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 83
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r0, r3, #8
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r2, r3, #0xDC
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0x18
|
||
|
ldr r1, [r2]
|
||
|
ldr r3, [r3]
|
||
|
mul r2, r1, r3
|
||
|
ldr r3, [r0]
|
||
|
add r3, r3, r2
|
||
|
str r3, [sp]
|
||
|
|$LN38@decode_rle|
|
||
|
|$LN37@decode_rle|
|
||
|
|$LN36@decode_rle|
|
||
|
|$LN35@decode_rle|
|
||
|
|$LN32@decode_rle|
|
||
|
; Line 84
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD8
|
||
|
ldr r2, [r3]
|
||
|
ldr r3, [sp, #0x4C]
|
||
|
add r2, r2, r3
|
||
|
ldr r3, [sp, #0x18]
|
||
|
cmp r3, r2
|
||
|
bcs |$LN31@decode_rle|
|
||
|
; Line 85
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x14]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 86
|
||
|
ldr r3, [sp, #0x14]
|
||
|
cmp r3, #0
|
||
|
bne |$LN30@decode_rle|
|
||
|
; Line 87
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x10]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 88
|
||
|
ldr r3, [sp, #0x10]
|
||
|
cmp r3, #0
|
||
|
bne |$LN29@decode_rle|
|
||
|
; Line 89
|
||
|
ldr r3, [sp, #8]
|
||
|
sub r3, r3, #1
|
||
|
str r3, [sp, #8]
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r0, r3, #8
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0x18
|
||
|
ldr r1, [sp, #8]
|
||
|
ldr r3, [r3]
|
||
|
mul r2, r1, r3
|
||
|
ldr r3, [r0]
|
||
|
add r3, r3, r2
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 90
|
||
|
ldr r3, [sp, #8]
|
||
|
cmp r3, #0
|
||
|
bge |$LN28@decode_rle|
|
||
|
; Line 91
|
||
|
mvn r3, #0
|
||
|
str r3, [sp, #0x30]
|
||
|
b |$LN33@decode_rle|
|
||
|
|$LN28@decode_rle|
|
||
|
; Line 92
|
||
|
mov r3, #0
|
||
|
str r3, [sp, #0x1C]
|
||
|
b |$LN32@decode_rle|
|
||
|
; Line 93
|
||
|
b |$LN27@decode_rle|
|
||
|
|$LN29@decode_rle|
|
||
|
; Line 94
|
||
|
ldr r3, [sp, #0x10]
|
||
|
cmp r3, #1
|
||
|
bne |$LN26@decode_rle|
|
||
|
; Line 95
|
||
|
mov r3, #0
|
||
|
str r3, [sp, #0x30]
|
||
|
b |$LN33@decode_rle|
|
||
|
b |$LN25@decode_rle|
|
||
|
|$LN26@decode_rle|
|
||
|
; Line 96
|
||
|
ldr r3, [sp, #0x10]
|
||
|
cmp r3, #2
|
||
|
bne |$LN24@decode_rle|
|
||
|
; Line 97
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x14]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 98
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x10]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 99
|
||
|
ldr r2, [sp, #8]
|
||
|
ldr r3, [sp, #0x10]
|
||
|
sub r3, r2, r3
|
||
|
str r3, [sp, #8]
|
||
|
; Line 100
|
||
|
ldr r3, [sp, #8]
|
||
|
cmp r3, #0
|
||
|
bge |$LN23@decode_rle|
|
||
|
; Line 101
|
||
|
mvn r3, #0
|
||
|
str r3, [sp, #0x30]
|
||
|
b |$LN33@decode_rle|
|
||
|
|$LN23@decode_rle|
|
||
|
; Line 102
|
||
|
ldr r2, [sp, #0x1C]
|
||
|
ldr r3, [sp, #0x14]
|
||
|
add r3, r2, r3
|
||
|
str r3, [sp, #0x1C]
|
||
|
; Line 103
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r0, r3, #8
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0x18
|
||
|
ldr r1, [sp, #8]
|
||
|
ldr r3, [r3]
|
||
|
mul r2, r1, r3
|
||
|
ldr r3, [r0]
|
||
|
add r4, r3, r2
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r1, [r3]
|
||
|
mov r0, #8
|
||
|
ldr r3, [pc, #0x49C]
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
ldr r2, [sp, #0x1C]
|
||
|
mul r3, r2, r0
|
||
|
add r3, r4, r3
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 104
|
||
|
b |$LN35@decode_rle|
|
||
|
|$LN24@decode_rle|
|
||
|
|$LN25@decode_rle|
|
||
|
|$LN27@decode_rle|
|
||
|
; Line 107
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r1, [r3]
|
||
|
mov r0, #8
|
||
|
ldr r3, [pc, #0x468]
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
ldr r3, [sp, #0x10]
|
||
|
mul r2, r3, r0
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r2, r3, r2
|
||
|
ldr r3, [sp]
|
||
|
cmp r2, r3
|
||
|
bls |$LN22@decode_rle|
|
||
|
; Line 108
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r1, [r3]
|
||
|
mov r0, #8
|
||
|
ldr r3, [pc, #0x42C]
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
ldr r3, [sp, #0x10]
|
||
|
mul r2, r3, r0
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, r2
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 109
|
||
|
b |$LN36@decode_rle|
|
||
|
|$LN22@decode_rle|
|
||
|
; Line 111
|
||
|
mov r3, #0
|
||
|
str r3, [sp, #4]
|
||
|
b |$LN21@decode_rle|
|
||
|
|$LN20@decode_rle|
|
||
|
ldr r3, [sp, #4]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #4]
|
||
|
|$LN21@decode_rle|
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r1, [r3]
|
||
|
mov r0, #8
|
||
|
ldr r3, [pc, #0x3DC]
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
ldr r3, [sp, #0x10]
|
||
|
mul r2, r3, r0
|
||
|
ldr r3, [sp, #4]
|
||
|
cmp r3, r2
|
||
|
bge |$LN19@decode_rle|
|
||
|
; Line 112
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 113
|
||
|
b |$LN20@decode_rle|
|
||
|
|$LN19@decode_rle|
|
||
|
; Line 115
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r3, [r3]
|
||
|
cmp r3, #8
|
||
|
bne |$LN18@decode_rle|
|
||
|
ldr r3, [sp, #0x10]
|
||
|
tst r3, #1
|
||
|
beq |$LN18@decode_rle|
|
||
|
; Line 116
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
|$LN18@decode_rle|
|
||
|
; Line 118
|
||
|
ldr r2, [sp, #0x1C]
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r3, r2, r3
|
||
|
str r3, [sp, #0x1C]
|
||
|
; Line 119
|
||
|
b |$LN17@decode_rle|
|
||
|
|$LN30@decode_rle|
|
||
|
; Line 121
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #0x34]
|
||
|
ldr r3, [sp, #0x34]
|
||
|
cmp r3, #8
|
||
|
beq |$LN14@decode_rle|
|
||
|
ldr r3, [sp, #0x34]
|
||
|
cmp r3, #0x10
|
||
|
beq |$LN13@decode_rle|
|
||
|
ldr r3, [sp, #0x34]
|
||
|
cmp r3, #0x18
|
||
|
beq |$LN12@decode_rle|
|
||
|
ldr r3, [sp, #0x34]
|
||
|
cmp r3, #0x20
|
||
|
beq |$LN11@decode_rle|
|
||
|
b |$LN15@decode_rle|
|
||
|
|$LN14@decode_rle|
|
||
|
; Line 122
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x20]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 123
|
||
|
b |$LN15@decode_rle|
|
||
|
|$LN13@decode_rle|
|
||
|
; Line 124
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x20]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 125
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x24]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 126
|
||
|
b |$LN15@decode_rle|
|
||
|
|$LN12@decode_rle|
|
||
|
; Line 127
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x20]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 128
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x24]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 129
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x28]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 130
|
||
|
b |$LN15@decode_rle|
|
||
|
|$LN11@decode_rle|
|
||
|
; Line 131
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x20]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 132
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x24]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 133
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x28]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
; Line 134
|
||
|
ldr r3, [sp, #0x18]
|
||
|
ldrb r3, [r3]
|
||
|
str r3, [sp, #0x2C]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0x18]
|
||
|
|$LN15@decode_rle|
|
||
|
; Line 137
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r1, [r3]
|
||
|
mov r0, #8
|
||
|
ldr r3, [pc, #0x1FC]
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
ldr r3, [sp, #0x14]
|
||
|
mul r2, r3, r0
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r2, r3, r2
|
||
|
ldr r3, [sp]
|
||
|
cmp r2, r3
|
||
|
bls |$LN10@decode_rle|
|
||
|
; Line 138
|
||
|
b |$LN37@decode_rle|
|
||
|
|$LN10@decode_rle|
|
||
|
; Line 139
|
||
|
mov r3, #0
|
||
|
str r3, [sp, #4]
|
||
|
b |$LN9@decode_rle|
|
||
|
|$LN8@decode_rle|
|
||
|
ldr r3, [sp, #4]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #4]
|
||
|
|$LN9@decode_rle|
|
||
|
ldr r2, [sp, #4]
|
||
|
ldr r3, [sp, #0x14]
|
||
|
cmp r2, r3
|
||
|
bge |$LN7@decode_rle|
|
||
|
; Line 140
|
||
|
ldr r3, [sp, #0x48]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #0x38]
|
||
|
ldr r3, [sp, #0x38]
|
||
|
cmp r3, #8
|
||
|
beq |$LN4@decode_rle|
|
||
|
ldr r3, [sp, #0x38]
|
||
|
cmp r3, #0x10
|
||
|
beq |$LN3@decode_rle|
|
||
|
ldr r3, [sp, #0x38]
|
||
|
cmp r3, #0x18
|
||
|
beq |$LN2@decode_rle|
|
||
|
ldr r3, [sp, #0x38]
|
||
|
cmp r3, #0x20
|
||
|
beq |$LN1@decode_rle|
|
||
|
b |$LN5@decode_rle|
|
||
|
|$LN4@decode_rle|
|
||
|
; Line 141
|
||
|
ldr r3, [sp, #0x20]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 142
|
||
|
b |$LN5@decode_rle|
|
||
|
|$LN3@decode_rle|
|
||
|
; Line 143
|
||
|
ldr r3, [sp, #0x20]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 144
|
||
|
ldr r3, [sp, #0x24]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 145
|
||
|
b |$LN5@decode_rle|
|
||
|
|$LN2@decode_rle|
|
||
|
; Line 146
|
||
|
ldr r3, [sp, #0x20]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 147
|
||
|
ldr r3, [sp, #0x24]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 148
|
||
|
ldr r3, [sp, #0x28]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 149
|
||
|
b |$LN5@decode_rle|
|
||
|
|$LN1@decode_rle|
|
||
|
; Line 150
|
||
|
ldr r3, [sp, #0x20]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 151
|
||
|
ldr r3, [sp, #0x24]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 152
|
||
|
ldr r3, [sp, #0x28]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
; Line 153
|
||
|
ldr r3, [sp, #0x2C]
|
||
|
and r2, r3, #0xFF
|
||
|
ldr r3, [sp, #0xC]
|
||
|
strb r2, [r3]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
add r3, r3, #1
|
||
|
str r3, [sp, #0xC]
|
||
|
|$LN5@decode_rle|
|
||
|
; Line 156
|
||
|
b |$LN8@decode_rle|
|
||
|
|$LN7@decode_rle|
|
||
|
; Line 157
|
||
|
ldr r2, [sp, #0x1C]
|
||
|
ldr r3, [sp, #0x14]
|
||
|
add r3, r2, r3
|
||
|
str r3, [sp, #0x1C]
|
||
|
|$LN17@decode_rle|
|
||
|
; Line 159
|
||
|
b |$LN38@decode_rle|
|
||
|
|$LN31@decode_rle|
|
||
|
; Line 161
|
||
|
ldr r2, [pc, #0x20]
|
||
|
mov r1, #0
|
||
|
ldr r3, [sp, #0x48]
|
||
|
ldr r0, [r3]
|
||
|
bl av_log
|
||
|
; Line 162
|
||
|
mov r3, #1
|
||
|
str r3, [sp, #0x30]
|
||
|
|$LN33@decode_rle|
|
||
|
; Line 163
|
||
|
ldr r0, [sp, #0x30]
|
||
|
add sp, sp, #0x3C
|
||
|
ldmia sp, {r4, sp, pc}
|
||
|
|$LN42@decode_rle|
|
||
|
DCD |$SG3055|
|
||
|
DCD |__imp___rt_sdiv|
|
||
|
|$M3148|
|
||
|
|
||
|
ENDP ; |decode_rle|
|
||
|
|
||
|
IMPORT |inflateInit_|
|
||
|
IMPORT |av_malloc|
|
||
|
IMPORT |memset|
|
||
|
IMPORT |avcodec_check_dimensions|
|
||
|
|
||
|
AREA |.pdata|, PDATA
|
||
|
|$T3158| DCD |$LN16@decode_ini|
|
||
|
DCD 0x4000bf04
|
||
|
; Function compile flags: /Odsp
|
||
|
|
||
|
AREA |.text|, CODE, ARM
|
||
|
|
||
|
|decode_init| PROC
|
||
|
; Line 242
|
||
|
|$LN16@decode_ini|
|
||
|
mov r12, sp
|
||
|
stmdb sp!, {r0}
|
||
|
stmdb sp!, {r4, r12, lr}
|
||
|
sub sp, sp, #0x1C
|
||
|
|$M3155|
|
||
|
; Line 243
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r3, r3, #0x88
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #4]
|
||
|
; Line 246
|
||
|
ldr r2, [sp, #0x28]
|
||
|
ldr r3, [sp, #4]
|
||
|
str r2, [r3]
|
||
|
; Line 247
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r2, r3, #0x43, 30
|
||
|
mov r3, #0
|
||
|
str r3, [r2]
|
||
|
; Line 249
|
||
|
ldr r3, [sp, #4]
|
||
|
add r2, r3, #8
|
||
|
mov r3, #0
|
||
|
str r3, [r2]
|
||
|
; Line 250
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r1, r3, #0x2C
|
||
|
ldr r3, [sp, #4]
|
||
|
add r2, r3, #0xDC
|
||
|
ldr r3, [r1]
|
||
|
str r3, [r2]
|
||
|
; Line 252
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r3, r3, #0x28
|
||
|
ldr r2, [r3]
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r3, r3, #0x2C
|
||
|
ldr r1, [r3]
|
||
|
ldr r0, [sp, #0x28]
|
||
|
bl avcodec_check_dimensions
|
||
|
str r0, [sp, #0xC]
|
||
|
ldr r3, [sp, #0xC]
|
||
|
cmp r3, #0
|
||
|
bge |$LN11@decode_ini|
|
||
|
; Line 253
|
||
|
mov r3, #1
|
||
|
str r3, [sp, #8]
|
||
|
b |$LN12@decode_ini|
|
||
|
|$LN11@decode_ini|
|
||
|
; Line 258
|
||
|
mov r2, #0x38
|
||
|
mov r1, #0
|
||
|
ldr r3, [sp, #4]
|
||
|
add r0, r3, #0xE0
|
||
|
bl memset
|
||
|
; Line 263
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r3, r3, #0x62, 30
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp, #0x10]
|
||
|
ldr r3, [sp, #0x10]
|
||
|
cmp r3, #8
|
||
|
beq |$LN8@decode_ini|
|
||
|
ldr r3, [sp, #0x10]
|
||
|
cmp r3, #0x10
|
||
|
beq |$LN7@decode_ini|
|
||
|
ldr r3, [sp, #0x10]
|
||
|
cmp r3, #0x18
|
||
|
beq |$LN6@decode_ini|
|
||
|
ldr r3, [sp, #0x10]
|
||
|
cmp r3, #0x20
|
||
|
beq |$LN5@decode_ini|
|
||
|
b |$LN4@decode_ini|
|
||
|
|$LN8@decode_ini|
|
||
|
; Line 264
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r2, r3, #0x34
|
||
|
mov r3, #0xE
|
||
|
str r3, [r2]
|
||
|
b |$LN9@decode_ini|
|
||
|
|$LN7@decode_ini|
|
||
|
; Line 265
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r2, r3, #0x34
|
||
|
mov r3, #0xA
|
||
|
str r3, [r2]
|
||
|
b |$LN9@decode_ini|
|
||
|
|$LN6@decode_ini|
|
||
|
; Line 267
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r2, r3, #0x34
|
||
|
mov r3, #3
|
||
|
str r3, [r2]
|
||
|
; Line 268
|
||
|
b |$LN9@decode_ini|
|
||
|
|$LN5@decode_ini|
|
||
|
; Line 269
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r2, r3, #0x34
|
||
|
mov r3, #6
|
||
|
str r3, [r2]
|
||
|
b |$LN9@decode_ini|
|
||
|
|$LN4@decode_ini|
|
||
|
; Line 270
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r3, r3, #0x62, 30
|
||
|
ldr r3, [r3]
|
||
|
ldr r2, [pc, #0x19C]
|
||
|
mov r1, #0
|
||
|
ldr r0, [sp, #0x28]
|
||
|
bl av_log
|
||
|
; Line 271
|
||
|
mvn r3, #0
|
||
|
str r3, [sp, #8]
|
||
|
b |$LN12@decode_ini|
|
||
|
|$LN9@decode_ini|
|
||
|
; Line 273
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r1, r3, #0x62, 30
|
||
|
ldr r3, [sp, #4]
|
||
|
add r2, r3, #0xD0
|
||
|
ldr r3, [r1]
|
||
|
str r3, [r2]
|
||
|
; Line 274
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r2, r3, #0x28
|
||
|
ldr r3, [sp, #4]
|
||
|
add r3, r3, #0xD0
|
||
|
ldr r2, [r2]
|
||
|
ldr r3, [r3]
|
||
|
mul r4, r2, r3
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r3, r3, #0x28
|
||
|
ldr r3, [r3]
|
||
|
add r1, r3, #0xFE
|
||
|
mov r0, #0xFF
|
||
|
ldr r3, [pc, #0x134]
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
add r3, r4, r0
|
||
|
add r2, r3, #2
|
||
|
ldr r3, [sp, #0x28]
|
||
|
add r3, r3, #0x2C
|
||
|
ldr r3, [r3]
|
||
|
mul r3, r2, r3
|
||
|
add r2, r3, #2
|
||
|
ldr r3, [sp, #4]
|
||
|
add r3, r3, #0xD4
|
||
|
str r2, [r3]
|
||
|
; Line 277
|
||
|
ldr r3, [sp, #4]
|
||
|
add r3, r3, #0xD4
|
||
|
ldr r3, [r3]
|
||
|
cmp r3, #0
|
||
|
beq |$LN3@decode_ini|
|
||
|
; Line 278
|
||
|
ldr r3, [sp, #4]
|
||
|
add r3, r3, #0xD4
|
||
|
ldr r0, [r3]
|
||
|
bl av_malloc
|
||
|
str r0, [sp, #0x14]
|
||
|
ldr r3, [sp, #4]
|
||
|
add r2, r3, #0xD8
|
||
|
ldr r3, [sp, #0x14]
|
||
|
str r3, [r2]
|
||
|
ldr r3, [sp, #4]
|
||
|
add r3, r3, #0xD8
|
||
|
ldr r3, [r3]
|
||
|
cmp r3, #0
|
||
|
bne |$LN2@decode_ini|
|
||
|
; Line 279
|
||
|
ldr r2, [pc, #0xAC]
|
||
|
mov r1, #0
|
||
|
ldr r0, [sp, #0x28]
|
||
|
bl av_log
|
||
|
; Line 280
|
||
|
mov r3, #1
|
||
|
str r3, [sp, #8]
|
||
|
b |$LN12@decode_ini|
|
||
|
|$LN2@decode_ini|
|
||
|
|$LN3@decode_ini|
|
||
|
; Line 285
|
||
|
ldr r3, [sp, #4]
|
||
|
add r2, r3, #1, 24
|
||
|
mov r3, #0
|
||
|
str r3, [r2]
|
||
|
; Line 286
|
||
|
ldr r3, [sp, #4]
|
||
|
add r2, r3, #0x41, 30
|
||
|
mov r3, #0
|
||
|
str r3, [r2]
|
||
|
; Line 287
|
||
|
ldr r3, [sp, #4]
|
||
|
add r2, r3, #0x42, 30
|
||
|
mov r3, #0
|
||
|
str r3, [r2]
|
||
|
; Line 288
|
||
|
mov r2, #0x38
|
||
|
ldr r1, [pc, #0x58]
|
||
|
ldr r3, [sp, #4]
|
||
|
add r0, r3, #0xE0
|
||
|
bl inflateInit_
|
||
|
str r0, [sp, #0x18]
|
||
|
ldr r3, [sp, #0x18]
|
||
|
str r3, [sp]
|
||
|
; Line 289
|
||
|
ldr r3, [sp]
|
||
|
cmp r3, #0
|
||
|
beq |$LN1@decode_ini|
|
||
|
; Line 290
|
||
|
ldr r3, [sp]
|
||
|
ldr r2, [pc, #0x28]
|
||
|
mov r1, #0
|
||
|
ldr r0, [sp, #0x28]
|
||
|
bl av_log
|
||
|
; Line 291
|
||
|
mov r3, #1
|
||
|
str r3, [sp, #8]
|
||
|
b |$LN12@decode_ini|
|
||
|
|$LN1@decode_ini|
|
||
|
; Line 295
|
||
|
mov r3, #0
|
||
|
str r3, [sp, #8]
|
||
|
|$LN12@decode_ini|
|
||
|
; Line 296
|
||
|
ldr r0, [sp, #8]
|
||
|
add sp, sp, #0x1C
|
||
|
ldmia sp, {r4, sp, pc}
|
||
|
|$LN17@decode_ini|
|
||
|
DCD |$SG3114|
|
||
|
DCD |$SG3112|
|
||
|
DCD |$SG3110|
|
||
|
DCD |__imp___rt_sdiv|
|
||
|
DCD |$SG3106|
|
||
|
|$M3156|
|
||
|
|
||
|
ENDP ; |decode_init|
|
||
|
|
||
|
IMPORT |inflateEnd|
|
||
|
IMPORT |av_freep|
|
||
|
|
||
|
AREA |.pdata|, PDATA
|
||
|
|$T3165| DCD |$LN6@decode_end|
|
||
|
DCD 0x40002004
|
||
|
; Function compile flags: /Odsp
|
||
|
|
||
|
AREA |.text|, CODE, ARM
|
||
|
|
||
|
|decode_end| PROC
|
||
|
; Line 306
|
||
|
|$LN6@decode_end|
|
||
|
mov r12, sp
|
||
|
stmdb sp!, {r0}
|
||
|
stmdb sp!, {r12, lr}
|
||
|
sub sp, sp, #8
|
||
|
|$M3162|
|
||
|
; Line 307
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r3, r3, #0x88
|
||
|
ldr r3, [r3]
|
||
|
str r3, [sp]
|
||
|
; Line 309
|
||
|
ldr r3, [sp]
|
||
|
add r0, r3, #0xD8
|
||
|
bl av_freep
|
||
|
; Line 311
|
||
|
ldr r3, [sp]
|
||
|
add r3, r3, #8
|
||
|
ldr r3, [r3]
|
||
|
cmp r3, #0
|
||
|
beq |$LN1@decode_end|
|
||
|
; Line 312
|
||
|
ldr r3, [sp]
|
||
|
add r1, r3, #8
|
||
|
ldr r0, [sp, #0x10]
|
||
|
ldr r3, [sp, #0x10]
|
||
|
add r3, r3, #0x42, 30
|
||
|
ldr r3, [r3]
|
||
|
mov lr, pc
|
||
|
mov pc, r3
|
||
|
|$LN1@decode_end|
|
||
|
; Line 314
|
||
|
ldr r3, [sp]
|
||
|
add r0, r3, #0xE0
|
||
|
bl inflateEnd
|
||
|
; Line 317
|
||
|
mov r3, #0
|
||
|
str r3, [sp, #4]
|
||
|
; Line 318
|
||
|
ldr r0, [sp, #4]
|
||
|
add sp, sp, #8
|
||
|
ldmia sp, {sp, pc}
|
||
|
|$M3163|
|
||
|
|
||
|
ENDP ; |decode_end|
|
||
|
|
||
|
END
|