1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

ARM Linux lzma work

This commit is contained in:
John Reiser 2006-07-22 20:53:15 -07:00
parent cd1dec9fc7
commit 2f6ce88e28
5 changed files with 3137 additions and 1418 deletions

View File

@ -214,7 +214,8 @@ tmp/amd64-linux.elf-main.o : $(srcdir)/src/$$T.c
arm-linux.elf% : tc_list = arm-linux.elf default arm-linux.elf% : tc_list = arm-linux.elf default
arm-linux.elf% : tc_bfdname = elf32-littlearm arm-linux.elf% : tc_bfdname = elf32-littlearm
tc.arm-linux.elf.gcc = arm-9tdmi-linux-gnu-gcc-3.4.5 -march=armv4 -nostdinc -MMD #tc.arm-linux.elf.gcc = arm-9tdmi-linux-gnu-gcc-3.4.5 -march=armv4 -nostdinc -MMD
tc.arm-linux.elf.gcc = arm-unknown-linux-gnu-gcc-4.1.0 -march=armv4 -nostdinc -MMD
tc.arm-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables tc.arm-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
tc.arm-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wwrite-strings -Werror tc.arm-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wwrite-strings -Werror
tc.arm-linux.elf.ld = $(call tc,m-ld) tc.arm-linux.elf.ld = $(call tc,m-ld)

File diff suppressed because it is too large Load Diff

View File

@ -28,18 +28,18 @@ lzma_d_c%.S : tc_bfdname = elf32-littlearm
tc.arm-lzma.gcc = $(tc.arm-linux.elf.gcc) tc.arm-lzma.gcc = $(tc.arm-linux.elf.gcc)
tc.arm-lzma.gcc += -march=armv4 -fPIC tc.arm-lzma.gcc += -march=armv4 -fPIC
#tc.arm-lzma.gcc += -Os tc.arm-lzma.gcc += -Os
tc.arm-lzma.gcc += -ffunction-sections tc.arm-lzma.gcc += -ffunction-sections
tc.arm-lzma.gcc += -I$(UPX_LZMADIR) tc.arm-lzma.gcc += -I$(UPX_LZMADIR)
tc.arm-lzma.gcc += -I$(top_srcdir)/src tc.arm-lzma.gcc += -I$(top_srcdir)/src
lzma_d_c%.S : lzma_d_c.c lzma_d_cf.S : lzma_d_c.c
$(call tc,gcc) $(PP_FLAGS) -c $< -o tmp/$T.o $(call tc,gcc) $(PP_FLAGS) -S $< -o tmp/$T.s
$(call tc,objstrip) tmp/$T.o sed -e '1,/LzmaDecode:/d' -e '/\.size/d' -e '/\.ident/d' -e 's/\.L/f.L/g' <tmp/$T.s >$@
$(call tc,objcopy) -O binary --only-section .text.LzmaDecode tmp/$T.o tmp/$T.bin
head -c-0 tmp/$T.bin > tmp/$T.out lzma_d_cs.S : lzma_d_c.c
$(call tc,objdump) -b binary -m armv4 -D tmp/$T.out > tmp/$T.out.lst $(call tc,gcc) $(PP_FLAGS) -S $< -o tmp/$T.s
$(call tc,bin2h) --mode=gas tmp/$T.out $@ sed -e '1,/LzmaDecode:/d' -e '/\.size/d' -e '/\.ident/d' -e 's/\.L/s.L/g' <tmp/$T.s >$@
lzma_d_cf.% : PP_FLAGS = -DFAST lzma_d_cf.% : PP_FLAGS = -DFAST
lzma_d_cs.% : PP_FLAGS = -DSMALL lzma_d_cs.% : PP_FLAGS = -DSMALL

View File

@ -1,163 +1,655 @@
.byte 240, 75, 45,233, 64,208, 77,226, 56, 48,141,229, 0, 48,160,227 /* 0x0000 */ @ args = 12, pretend = 0, frame = 52
.byte 48, 48,141,229, 0,192,208,229, 1, 64,208,229, 2,224,208,229 /* 0x0010 */ @ frame_needed = 0, uses_anonymous_args = 0
.byte 36,192,141,229, 56,192,157,229, 0, 48,140,229,104,192,157,229 /* 0x0020 */ stmfd sp!, {r4, r5, r6, r7, r8, r9, fp, lr}
.byte 0, 48,140,229, 36, 48,157,229, 1,192,208,229, 12,192,131,224 /* 0x0030 */ sub sp, sp, #52
.byte 3, 60,160,227, 19, 60,160,225,115,206,131,226, 1, 48,160,227 /* 0x0040 */ str r3, [sp, #0]
.byte 19,238,160,225, 1,224, 78,226, 28, 48,141,229, 19, 52,160,225 /* 0x0050 */ ldrb r3, [r0, #0] @ zero_extendqisi2
.byte 44,224,141,229, 0, 64,160,227, 1,224,160,227, 1, 48, 67,226 /* 0x0060 */ ldrb r5, [r0, #2] @ zero_extendqisi2
.byte 4, 0,128,226, 6,192,140,226, 40, 48,141,229, 52, 0,141,229 /* 0x0070 */ ldrb lr, [r0, #1] @ zero_extendqisi2
.byte 32, 64,141,229, 24,224,141,229, 20,224,141,229, 16,224,141,229 /* 0x0080 */ ldr ip, [sp, #0]
.byte 60, 16,141,229, 12, 0, 84,225, 4, 16,160,225, 45, 0, 0, 42 /* 0x0090 */ str r3, [sp, #24]
.byte 129, 48,160,225, 52, 0,157,229, 1, 16,129,226, 1,235,160,227 /* 0x00a0 */ ldr r3, [sp, #92]
.byte 12, 0, 81,225,176,224,131,225, 37, 0, 0,234, 60, 0,157,229 /* 0x00b0 */ mov r4, #0
.byte 0,128,160,227, 2, 32,128,224, 12, 32,141,229, 0,112,160,225 /* 0x00c0 */ str r4, [ip, #0]
.byte 0,224,224,227, 8, 32,160,225, 12, 16,157,229, 1, 0, 87,225 /* 0x00d0 */ str r4, [r3, #0]
.byte 1, 32,130,226,125, 2, 0, 10, 1, 48,215,228, 4, 0, 82,227 /* 0x00e0 */ ldr ip, [sp, #24]
.byte 8,132,131,225, 52, 0, 0,218, 48, 32,157,229,100, 48,157,229 /* 0x00f0 */ ldrb r3, [r0, #1] @ zero_extendqisi2
.byte 3, 0, 82,225,119, 2, 0, 42, 44, 0,141,226, 1, 16,144,232 /* 0x0100 */ add r3, ip, r3
.byte 32, 16,157,229, 0,176, 12,224,255,148,224,227, 1, 50,139,224 /* 0x0110 */ mov ip, #768
.byte 9, 0, 94,225,131, 80,160,225, 79, 0, 0,138, 12, 32,157,229 /* 0x0120 */ mov ip, ip, asl r3
.byte 2, 0, 87,225,125, 2, 0, 10, 1, 48,215,228, 14,228,160,225 /* 0x0130 */ mov r3, #1
.byte 8,132,131,225, 52, 48,157,229,179, 16,149,225, 1, 40,160,225 /* 0x0140 */ mov lr, r3, asl lr
.byte 174, 53,160,225, 34, 8,160,225,144, 3, 12,224, 12, 0, 88,225 /* 0x0150 */ mov r3, r3, asl r5
.byte 202, 0, 0, 42, 36,224,157,229, 8, 48,110,226, 84, 51,160,225 /* 0x0160 */ add ip, ip, #1840
.byte 40,224,157,229, 48, 64,157,229, 14, 32, 4,224, 36, 64,157,229 /* 0x0170 */ sub r3, r3, #1
.byte 52,224,157,229, 18, 52,131,224,131, 48,131,224, 2, 43, 96,226 /* 0x0180 */ sub lr, lr, #1
.byte 32, 0,157,229,131, 52,142,224,194, 34,129,224,230, 78,131,226 /* 0x0190 */ add r0, r0, #4
.byte 6, 0, 80,227,190, 32,133,225, 12, 64,132,226, 12,224,160,225 /* 0x01a0 */ add ip, ip, #6
.byte 1,176,160,227,157, 0, 0,218, 48, 16,157,229, 28, 32,157,229 /* 0x01b0 */ str r1, [sp, #4]
.byte 96,192,157,229, 1, 48, 98,224, 3, 48,220,231, 8, 48,141,229 /* 0x01c0 */ str r3, [sp, #16]
.byte 8, 0,157,229,128, 0,160,225, 1,108, 0,226,139,144,160,225 /* 0x01d0 */ str lr, [sp, #20]
.byte 134, 48,132,224, 9, 48,131,224, 1, 4, 94,227, 8, 0,141,229 /* 0x01e0 */ str r0, [sp, #8]
.byte 2, 92,131,226,130, 0, 0, 42, 12, 16,157,229, 1, 0, 87,225 /* 0x01f0 */ b f.L14
.byte 14,228,160,225,125, 2, 0, 10, 1, 48,215,228, 8,132,131,225 /* 0x0200 */ f.L15:
.byte 176, 32,213,225, 2, 24,160,225, 33, 56,160,225,174, 5,160,225 /* 0x0210 */ ldr r0, [sp, #8]
.byte 147, 0, 12,224, 2, 59, 99,226, 12, 0, 88,225,195, 50,130,224 /* 0x0220 */ mov r1, #1024 @ movhi
.byte 9,176,160,225,161, 42, 66,224,146, 0, 0, 42, 0, 0, 86,227 /* 0x0230 */ strh r1, [r3, r0] @ movhi
.byte 176, 48,197,225, 12,224,160,225,152, 0, 0, 10,155, 0, 0,234 /* 0x0240 */ f.L14:
.byte 0, 0, 86,227,176, 32,197,225, 8,128,108,224, 1,176,137,226 /* 0x0250 */ cmp r4, ip
.byte 14,224,108,224,155, 0, 0, 10,255, 0, 91,227,114, 0, 0,218 /* 0x0260 */ mov r3, r4, asl #1
.byte 183, 0, 0,234,255, 0, 91,227,183, 0, 0,202,139, 80,160,225 /* 0x0270 */ add r4, r4, #1
.byte 1, 4, 94,227, 5,176,160,225,167, 0, 0, 42, 12, 32,157,229 /* 0x0280 */ bne f.L15
.byte 2, 0, 87,225, 14,228,160,225,125, 2, 0, 10, 1, 48,215,228 /* 0x0290 */ ldr r3, [sp, #4]
.byte 8,132,131,225,181, 32,148,225, 2, 8,160,225,174, 21,160,225 /* 0x02a0 */ mov r6, #0
.byte 32, 56,160,225,147, 1, 12,224, 2, 59, 99,226, 12, 0, 88,225 /* 0x02b0 */ add fp, r3, r2
.byte 195, 50,130,224, 14,224,108,224,160, 42, 66,224, 12,224,160, 49 /* 0x02c0 */ mov lr, r3
.byte 8,128,108, 32, 1,176,133, 34,181, 48,132, 49,181, 32,132, 33 /* 0x02d0 */ mov r2, r6
.byte 155, 0, 0,234, 32, 48,157,229, 48,192,157,229, 96, 0,157,229 /* 0x02e0 */ f.L17:
.byte 3, 0, 83,227,255, 64, 11,226, 0, 64,204,231, 0, 16,160,211 /* 0x02f0 */ ldr r5, [sp, #4]
.byte 1,192,140,226, 48,192,141,229, 32, 16,141,213,115, 2, 0,218 /* 0x0300 */ rsb r3, r5, fp
.byte 32, 32,157,229, 9, 0, 82,227, 32, 48,157,197, 3, 32, 66,210 /* 0x0310 */ cmp r2, r3
.byte 6, 48, 67,194, 32, 32,141,213, 32, 48,141,197,115, 2, 0,234 /* 0x0320 */ add lr, lr, #1
.byte 52, 64,157,229, 32, 0,157,229, 14,224,108,224,162, 58, 65,224 /* 0x0330 */ beq f.L18
.byte 128, 96,132,224, 9, 0, 94,225,180, 48,133,225, 8,128,108,224 /* 0x0340 */ ldrb r3, [r2, r5] @ zero_extendqisi2
.byte 6, 77,134,226,218, 0, 0,138, 12, 16,157,229, 1, 0, 87,225 /* 0x0350 */ add r2, r2, #1
.byte 125, 2, 0, 10, 1, 48,215,228, 14,228,160,225, 8,132,131,225 /* 0x0360 */ cmp r2, #5
.byte 176, 32,212,225, 2, 8,160,225,174, 53,160,225, 32, 24,160,225 /* 0x0370 */ orr r6, r3, r6, asl #8
.byte 145, 3, 12,224, 12, 0, 88,225,244, 0, 0, 42, 2, 59, 97,226 /* 0x0380 */ bne f.L17
.byte 195, 50,130,224,176, 48,196,225, 52, 32,157,229, 32, 48,157,229 /* 0x0390 */ mov r0, #0
.byte 20,224,157,229, 6, 0, 83,227, 24, 0,157,229,102, 78,130,226 /* 0x03a0 */ mov ip, #1
.byte 28, 16,157,229, 3, 48,160,195, 0, 48,160,211, 16,224,141,229 /* 0x03b0 */ str r0, [sp, #12]
.byte 4, 64,132,226, 12,224,160,225, 32, 48,141,229, 20, 0,141,229 /* 0x03c0 */ mov r7, r0
.byte 24, 16,141,229,128, 1, 0,234, 14,224,108,224,160, 58, 66,224 /* 0x03d0 */ str r0, [sp, #28]
.byte 9, 0, 94,225,176, 48,196,225, 8,128,108,224,102, 79,134,226 /* 0x03e0 */ mvn r0, #0
.byte 1, 1, 0,138, 12, 32,157,229, 2, 0, 87,225,125, 2, 0, 10 /* 0x03f0 */ str ip, [sp, #48]
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 16,212,225 /* 0x0400 */ str ip, [sp, #32]
.byte 1, 8,160,225,174, 53,160,225, 32, 40,160,225,146, 3, 12,224 /* 0x0410 */ str ip, [sp, #36]
.byte 12, 0, 88,225, 56, 1, 0, 42, 12,224,160,225, 32, 0,157,229 /* 0x0420 */ str ip, [sp, #40]
.byte 52,192,157,229, 2, 59, 98,226,128, 34,140,224,195, 50,129,224 /* 0x0430 */ b f.L172
.byte 139, 32,130,224, 9, 0, 94,225,176, 48,196,225, 30, 78,130,226 /* 0x0440 */ f.L22:
.byte 25, 1, 0,138, 12, 16,157,229, 1, 0, 87,225,125, 2, 0, 10 /* 0x0450 */ mvn r8, #-16777216
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 32,212,225 /* 0x0460 */ cmp r0, r8
.byte 2, 8,160,225,174, 53,160,225, 32, 24,160,225,145, 3, 12,224 /* 0x0470 */ bhi f.L23
.byte 12, 0, 88,225,160, 58, 66, 32, 8,128,108, 32, 14,224,108, 32 /* 0x0480 */ cmp lr, fp
.byte 176, 48,196, 33,120, 1, 0, 42, 2, 59, 97,226,195, 50,130,224 /* 0x0490 */ beq f.L18
.byte 48, 32,157,229, 0, 0, 82,227,176, 48,196,225, 12,224,160,225 /* 0x04a0 */ ldrb r3, [lr], #1 @ zero_extendqisi2
.byte 125, 2, 0, 10, 28, 64,157,229, 32, 0,157,229, 96,192,157,229 /* 0x04b0 */ mov r0, r0, asl #8
.byte 2, 48,100,224, 3, 64,220,231, 6, 0, 80,227, 11, 0,160,195 /* 0x04c0 */ orr r6, r3, r6, asl #8
.byte 9, 0,160,211, 32, 0,141,229, 12, 64,194,231, 1, 32,130,226 /* 0x04d0 */ f.L23:
.byte 48, 32,141,229,115, 2, 0,234, 14,224,108,224,160, 58, 65,224 /* 0x04e0 */ add r1, sp, #12
.byte 9, 0, 94,225,176, 48,196,225, 8,128,108,224, 27, 78,134,226 /* 0x04f0 */ ldmia r1, {r1, r2} @ phole ldm
.byte 69, 1, 0,138, 12, 16,157,229, 1, 0, 87,225,125, 2, 0, 10 /* 0x0500 */ ldr r3, [sp, #28]
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 32,212,225 /* 0x0510 */ and r9, r1, r2
.byte 2, 8,160,225,174, 53,160,225, 32, 24,160,225,145, 3, 12,224 /* 0x0520 */ mov r1, r3, asl #4
.byte 12, 0, 88,225, 82, 1, 0, 42, 2, 59, 97,226,195, 50,130,224 /* 0x0530 */ add r3, r9, r1
.byte 24, 32,157,229, 12,224,160,225,176, 48,196,225,117, 1, 0,234 /* 0x0540 */ ldr r2, [sp, #8]
.byte 14,224,108,224,160, 58, 66,224, 9, 0, 94,225,176, 48,196,225 /* 0x0550 */ mov r5, r3, asl #1
.byte 8,128,108,224,114, 79,134,226, 95, 1, 0,138, 12, 32,157,229 /* 0x0560 */ ldrh ip, [r2, r5]
.byte 2, 0, 87,225,125, 2, 0, 10, 1, 48,215,228, 14,228,160,225 /* 0x0570 */ mov r3, r0, lsr #11
.byte 8,132,131,225,176, 32,212,225, 2, 8,160,225,174, 53,160,225 /* 0x0580 */ mul r4, ip, r3
.byte 32, 24,160,225,145, 3, 12,224, 12, 0, 88,225,108, 1, 0, 42 /* 0x0590 */ cmp r6, r4
.byte 2, 59, 97,226,195, 50,130,224, 20, 32,157,229, 12,224,160,225 /* 0x05a0 */ bcs f.L26
.byte 176, 48,196,225,115, 1, 0,234,160, 58, 66,224,176, 48,196,225 /* 0x05b0 */ ldr r0, [sp, #24]
.byte 16, 32,141,226, 12, 0,146,232, 16, 48,141,229, 8,128,108,224 /* 0x05c0 */ rsb r3, r0, #8
.byte 14,224,108,224, 24, 64,157,229, 20, 64,141,229, 28,192,157,229 /* 0x05d0 */ mov r3, r7, asr r3
.byte 28, 32,141,229, 24,192,141,229, 32, 16,157,229, 52, 0,157,229 /* 0x05e0 */ ldr r1, [sp, #12]
.byte 6, 0, 81,227, 11, 16,160,195, 8, 16,160,211,166, 78,128,226 /* 0x05f0 */ ldr r0, [sp, #20]
.byte 32, 16,141,229, 8, 64,132,226,255, 84,224,227, 5, 0, 94,225 /* 0x0600 */ and r2, r1, r0
.byte 137, 1, 0,138, 12, 32,157,229, 2, 0, 87,225,125, 2, 0, 10 /* 0x0610 */ ldr r1, [sp, #24]
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 16,212,225 /* 0x0620 */ add r3, r3, r2, asl r1
.byte 1, 40,160,225,174, 53,160,225, 34, 8,160,225,144, 3, 12,224 /* 0x0630 */ ldr r0, [sp, #8]
.byte 12, 0, 88,225,154, 1, 0, 42, 11, 34,132,224, 2, 59, 96,226 /* 0x0640 */ mov r2, #1536
.byte 195, 50,129,224, 12,224,160,225, 4, 80,130,226, 3,192,160,227 /* 0x0650 */ mla r2, r3, r2, r0
.byte 0,144,160,227, 4,192,141,229,176, 48,196,225,191, 1, 0,234 /* 0x0660 */ ldr r1, [sp, #28]
.byte 14,224,108,224,162, 58, 65,224, 5, 0, 94,225, 8,128,108,224 /* 0x0670 */ rsb r3, ip, #2048
.byte 176, 48,196,225,166, 1, 0,138, 12, 0,157,229, 0, 0, 87,225 /* 0x0680 */ cmp r1, #6
.byte 125, 2, 0, 10, 1, 48,215,228, 14,228,160,225, 8,132,131,225 /* 0x0690 */ add r3, ip, r3, asr #5
.byte 178, 16,212,225, 1, 40,160,225,174, 53,160,225, 34, 8,160,225 /* 0x06a0 */ add r8, r2, #3680
.byte 144, 3, 12,224, 12, 0, 88,225,183, 1, 0, 42, 11, 34,132,224 /* 0x06b0 */ strh r3, [r0, r5] @ movhi
.byte 2, 59, 96,226,195, 50,129,224, 12,224,160,225, 3, 16,160,227 /* 0x06c0 */ add r8, r8, #12
.byte 65, 95,130,226, 8,144,160,227, 4, 16,141,229,178, 48,196,225 /* 0x06d0 */ movle r0, r4
.byte 191, 1, 0,234,162, 58, 65,224, 8, 32,160,227,178, 48,196,225 /* 0x06e0 */ movle r1, #1
.byte 4, 32,141,229, 8,128,108,224, 14,224,108,224,129, 95,132,226 /* 0x06f0 */ ble f.L171
.byte 16,144,160,227, 4, 96,157,229, 1,176,160,227,139, 64,160,225 /* 0x0700 */ ldr r2, [sp, #12]
.byte 1, 4, 94,227, 4,176,160,225,203, 1, 0, 42, 12, 48,157,229 /* 0x0710 */ ldr r5, [sp, #48]
.byte 3, 0, 87,225, 14,228,160,225,125, 2, 0, 10, 1, 48,215,228 /* 0x0720 */ ldr ip, [sp, #84]
.byte 8,132,131,225,180, 32,149,225, 2, 8,160,225,174, 21,160,225 /* 0x0730 */ rsb r3, r5, r2
.byte 32, 56,160,225,147, 1, 12,224, 2, 59, 99,226, 12, 0, 88,225 /* 0x0740 */ ldrb r7, [ip, r3] @ zero_extendqisi2
.byte 195, 50,130,224,160, 42, 66,224, 14,224,108,224,180, 48,133, 49 /* 0x0750 */ mov r0, r4
.byte 12,224,160, 49, 8,128,108, 32, 1,176,132, 34,180, 32,133, 33 /* 0x0760 */ mov r1, #1
.byte 1, 96, 86,226,193, 1, 0, 26, 4, 64,157,229, 32,192,157,229 /* 0x0770 */ f.L31:
.byte 1, 32,160,227, 18,180, 75,224, 3, 0, 92,227, 9,176,139,224 /* 0x0780 */ mov r7, r7, asl #1
.byte 92, 2, 0,202, 52, 0,157,229, 3, 0, 91,227, 11, 48,160,177 /* 0x0790 */ and r5, r7, #256
.byte 3, 48,160,163, 7,192,140,226,131, 51,128,224, 32,192,141,229 /* 0x07a0 */ mov r9, r1, asl #1
.byte 54, 78,131,226, 2, 96,160,225, 6,144,160,227,134, 80,160,225 /* 0x07b0 */ add r3, r8, r5, asl #1
.byte 1, 4, 94,227, 5, 96,160,225,247, 1, 0, 42, 12, 16,157,229 /* 0x07c0 */ add r3, r3, r9
.byte 1, 0, 87,225, 14,228,160,225,125, 2, 0, 10, 1, 48,215,228 /* 0x07d0 */ cmp r0, #16777216
.byte 8,132,131,225,181, 32,148,225, 2, 8,160,225,174, 21,160,225 /* 0x07e0 */ add r4, r3, #512
.byte 32, 56,160,225,147, 1, 12,224, 2, 59, 99,226, 12, 0, 88,225 /* 0x07f0 */ add ip, r1, #1
.byte 195, 50,130,224,160, 42, 66,224, 14,224,108,224,181, 48,132, 49 /* 0x0800 */ bcs f.L32
.byte 12,224,160, 49, 8,128,108, 32, 1, 96,133, 34,181, 32,132, 33 /* 0x0810 */ cmp lr, fp
.byte 1,144, 89,226,237, 1, 0, 26, 64, 96, 70,226, 3, 0, 86,227 /* 0x0820 */ mov r0, r0, asl #8
.byte 28, 96,141,213, 88, 2, 0,218, 1, 48, 6,226,198, 32,160,225 /* 0x0830 */ beq f.L18
.byte 13, 0, 86,227, 2, 48,131,227, 1, 80, 66,226, 28, 48,141,229 /* 0x0840 */ ldrb r3, [lr], #1 @ zero_extendqisi2
.byte 5, 80, 66,194, 28, 2, 0,202, 52, 32,157,229, 19, 53,160,225 /* 0x0850 */ orr r6, r3, r6, asl #8
.byte 28, 48,141,229,131, 48,130,224,134, 48, 67,224, 85, 78,131,226 /* 0x0860 */ f.L32:
.byte 14, 64,132,226, 53, 2, 0,234, 1, 4, 94,227, 36, 2, 0, 42 /* 0x0870 */ ldrh r3, [r4, #0]
.byte 12, 48,157,229, 3, 0, 87,225,125, 2, 0, 10, 1, 48,215,228 /* 0x0880 */ mov r2, r0, lsr #11
.byte 14,228,160,225, 8,132,131,225, 28, 64,157,229,174,224,160,225 /* 0x0890 */ add r1, r1, ip
.byte 14, 0, 88,225,132, 64,160,225, 28, 64,141,229, 1, 64,132, 35 /* 0x08a0 */ mul ip, r3, r2
.byte 8,128,110, 32, 28, 64,141, 37, 1, 80, 85,226, 28, 2, 0, 26 /* 0x08b0 */ rsb r2, r3, #2048
.byte 28, 0,157,229, 52,192,157,229, 0, 2,160,225, 25, 77,140,226 /* 0x08c0 */ cmp r6, ip
.byte 28, 0,141,229, 4, 64,132,226, 4, 80,160,227, 1,144,160,227 /* 0x08d0 */ add r2, r3, r2, asr #5
.byte 0,144,141,229, 0, 16,157,229, 1, 4, 94,227,129, 96,160,225 /* 0x08e0 */ sub r3, r3, r3, lsr #5
.byte 0, 96,141,229, 66, 2, 0, 42, 12, 32,157,229, 2, 0, 87,225 /* 0x08f0 */ bcs f.L35
.byte 14,228,160,225,125, 2, 0, 10, 1, 48,215,228, 8,132,131,225 /* 0x0900 */ cmp r5, #0
.byte 182, 32,148,225, 2, 8,160,225,174, 21,160,225, 32, 56,160,225 /* 0x0910 */ mov r0, ip
.byte 147, 1, 12,224, 12, 0, 88,225, 14,224,108,224, 8,128,108, 32 /* 0x0920 */ strh r2, [r4, #0] @ movhi
.byte 28,192,157, 37, 2, 59, 99,226,195, 50,130,224, 9,192,140, 33 /* 0x0930 */ mov r1, r9
.byte 1, 48,134, 34,160, 42, 66,224, 12,224,160, 49,182, 48,132, 49 /* 0x0940 */ beq f.L39
.byte 0, 48,141, 37,182, 32,132, 33, 28,192,141, 37, 1, 80, 85,226 /* 0x0950 */ mov r0, ip
.byte 137,144,160,225, 55, 2, 0, 26, 28, 0,157,229, 1, 0,144,226 /* 0x0960 */ b f.L171
.byte 28, 0,141,229,119, 2, 0, 10, 28, 16,157,229, 48, 32,157,229 /* 0x0970 */ f.L35:
.byte 2, 0, 81,225, 2,176,139,226,125, 2, 0,138, 48, 64,157,229 /* 0x0980 */ cmp r5, #0
.byte 28,192,157,229, 96, 0,157,229, 4, 48,108,224, 3, 64,208,231 /* 0x0990 */ strh r3, [r4, #0] @ movhi
.byte 48, 16,157,229, 0, 64,193,231, 1,176, 91,226,100, 32,157,229 /* 0x09a0 */ rsb r6, ip, r6
.byte 0, 48,160, 3, 1, 48,160, 19, 1, 16,129,226, 2, 0, 81,225 /* 0x09b0 */ rsb r0, ip, r0
.byte 0, 48,160, 35, 1, 48, 3, 50, 0, 0, 83,227, 48, 16,141,229 /* 0x09c0 */ beq f.L171
.byte 97, 2, 0, 26, 48, 48,157,229,100,192,157,229, 12, 0, 83,225 /* 0x09d0 */ f.L39:
.byte 63, 0, 0,234, 1, 4, 94,227,127, 2, 0, 42, 12,224,157,229 /* 0x09e0 */ cmp r1, #255
.byte 14, 0, 87,225, 1,112,135, 18,127, 2, 0, 26, 1, 0,160,227 /* 0x09f0 */ bgt f.L46
.byte 135, 2, 0,234, 60, 0,157,229, 56, 16,157,229, 7, 48, 96,224 /* 0x0a00 */ b f.L31
.byte 0, 48,129,229,104, 32,157,229, 48, 48,157,229, 0, 48,130,229 /* 0x0a10 */ f.L40:
.byte 0, 0,160,227, 64,208,141,226,240,139,189,232 /* 0x0a20 */ cmp r0, #16777216
add r1, r1, r3
bcs f.L41
cmp lr, fp
mov r0, r0, asl #8
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
f.L41:
ldrh r3, [r8, r4]
mov r2, r0, lsr #11
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
sub r5, r3, r3, lsr #5
add r3, r3, r2, asr #5
strcch r3, [r8, r4] @ movhi
strcsh r5, [r8, r4] @ movhi
rsb r0, ip, r0
movcc r1, r4
movcc r0, ip
rsbcs r6, ip, r6
f.L171:
cmp r1, #255
mov r4, r1, asl #1
add r3, r1, #1
ble f.L40
f.L46:
and r7, r1, #255
ldr r1, [sp, #28]
ldr r3, [sp, #12]
ldr r2, [sp, #84]
cmp r1, #3
strb r7, [r2, r3]
movle r5, #0
add r3, r3, #1
str r3, [sp, #12]
strle r5, [sp, #28]
ble f.L172
ldr ip, [sp, #28]
cmp ip, #9
ldrgt r1, [sp, #28]
suble ip, ip, #3
subgt r1, r1, #6
strle ip, [sp, #28]
strgt r1, [sp, #28]
b f.L172
f.L26:
sub r3, ip, ip, lsr #5
rsb r2, r4, r0
ldr ip, [sp, #8]
cmp r2, r8
strh r3, [ip, r5] @ movhi
rsb r6, r4, r6
bhi f.L51
cmp lr, fp
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
f.L51:
ldr r0, [sp, #8]
ldr r3, [sp, #28]
add r7, r0, r3, asl #1
add r0, r7, #384
ldrh ip, [r0, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs f.L54
ldr r2, [sp, #28]
ldr r5, [sp, #8]
cmp r2, #6
rsb r3, ip, #2048
add r1, r5, #1632
movgt r2, #3
ldr r5, [sp, #36]
movle r2, #0
add r3, ip, r3, asr #5
str r2, [sp, #28]
ldr ip, [sp, #32]
ldr r2, [sp, #48]
str r5, [sp, #40]
add r1, r1, #4
mov r5, r4
str ip, [sp, #36]
str r2, [sp, #32]
strh r3, [r0, #0] @ movhi
b f.L59
f.L54:
rsb r2, r4, r2
sub r3, ip, ip, lsr #5
cmp r2, r8
strh r3, [r0, #0] @ movhi
rsb r6, r4, r6
bhi f.L60
cmp lr, fp
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
f.L60:
add r5, r7, #408
ldrh ip, [r5, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs f.L63
rsb r3, ip, #2048
add r3, ip, r3, asr #5
cmp r4, r8
strh r3, [r5, #0] @ movhi
bhi f.L67
cmp lr, fp
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r4, r4, asl #8
orr r6, r3, r6, asl #8
f.L67:
ldr r5, [sp, #8]
add r3, r5, r1, asl #1
add r3, r3, r9, asl #1
add r1, r3, #480
ldrh ip, [r1, #0]
mov r3, r4, lsr #11
mul r2, ip, r3
cmp r6, r2
rsbcs r6, r2, r6
subcs r3, ip, ip, lsr #5
rsbcs r5, r2, r4
bcs f.L169
rsb r3, ip, #2048
add r3, ip, r3, asr #5
ldr ip, [sp, #12]
cmp ip, #0
strh r3, [r1, #0] @ movhi
beq f.L18
ldr r0, [sp, #48]
ldr r1, [sp, #84]
rsb r3, r0, ip
ldrb r7, [r1, r3] @ zero_extendqisi2
ldr r3, [sp, #28]
cmp r3, #6
movgt r3, #11
movle r3, #9
str r3, [sp, #28]
mov r0, r2
strb r7, [r1, ip]
add ip, ip, #1
str ip, [sp, #12]
b f.L172
f.L63:
rsb r2, r4, r2
sub r3, ip, ip, lsr #5
cmp r2, r8
strh r3, [r5, #0] @ movhi
rsb r6, r4, r6
bhi f.L76
cmp lr, fp
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
f.L76:
add r1, r7, #432
ldrh ip, [r1, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs f.L79
ldr r5, [sp, #48]
rsb r3, ip, #2048
ldr r2, [sp, #32]
add r3, ip, r3, asr #5
str r5, [sp, #32]
mov r5, r4
f.L170:
str r2, [sp, #48]
f.L169:
strh r3, [r1, #0] @ movhi
b f.L75
f.L79:
rsb r2, r4, r2
sub r3, ip, ip, lsr #5
cmp r2, r8
strh r3, [r1, #0] @ movhi
rsb r6, r4, r6
bhi f.L81
cmp lr, fp
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
f.L81:
add r1, r7, #456
ldrh ip, [r1, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs f.L84
rsb r3, ip, #2048
ldr r2, [sp, #36]
add r3, ip, r3, asr #5
ldr r0, [sp, #48]
ldr ip, [sp, #32]
mov r5, r4
str ip, [sp, #36]
str r0, [sp, #32]
b f.L170
f.L84:
sub r3, ip, ip, lsr #5
strh r3, [r1, #0] @ movhi
ldr ip, [sp, #48]
add r1, sp, #36
ldmia r1, {r1, r3} @ phole ldm
rsb r5, r4, r2
ldr r2, [sp, #32]
str r1, [sp, #40]
str r2, [sp, #36]
str ip, [sp, #32]
str r3, [sp, #48]
rsb r6, r4, r6
f.L75:
ldr r2, [sp, #28]
ldr r0, [sp, #8]
cmp r2, #6
movgt r2, #11
movle r2, #8
add r1, r0, #2656
str r2, [sp, #28]
add r1, r1, #8
f.L59:
mvn r7, #-16777216
cmp r5, r7
bhi f.L89
cmp lr, fp
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r5, r5, asl #8
orr r6, r3, r6, asl #8
f.L89:
ldrh ip, [r1, #0]
mov r3, r5, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs f.L92
add r2, r1, r9, asl #4
rsb r3, ip, #2048
add r3, ip, r3, asr #5
add r5, r2, #4
mov r0, r4
mov r9, #3
mov r8, #0
strh r3, [r1, #0] @ movhi
b f.L94
f.L92:
rsb r2, r4, r5
sub r3, ip, ip, lsr #5
cmp r2, r7
rsb r6, r4, r6
strh r3, [r1, #0] @ movhi
bhi f.L95
cmp lr, fp
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
f.L95:
ldrh ip, [r1, #2]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs f.L98
add r2, r1, r9, asl #4
rsb r3, ip, #2048
add r3, ip, r3, asr #5
add r5, r2, #260
mov r0, r4
mov r9, #3
mov r8, #8
strh r3, [r1, #2] @ movhi
b f.L94
f.L98:
sub r3, ip, ip, lsr #5
strh r3, [r1, #2] @ movhi
rsb r6, r4, r6
rsb r0, r4, r2
add r5, r1, #516
mov r9, #8
mov r8, #16
f.L94:
mov r7, r9
mov r1, #1
f.L100:
add r3, r1, #1
cmp r0, #16777216
mov r4, r1, asl #1
add r1, r1, r3
bcs f.L101
cmp lr, fp
mov r0, r0, asl #8
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
f.L101:
ldrh r3, [r5, r4]
mov r2, r0, lsr #11
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
add r2, r3, r2, asr #5
sub r3, r3, r3, lsr #5
rsb r0, ip, r0
movcc r1, r4
movcc r0, ip
strcch r2, [r5, r4] @ movhi
rsbcs r6, ip, r6
strcsh r3, [r5, r4] @ movhi
subs r7, r7, #1
bne f.L100
mov r2, #1
sub r3, r1, r2, asl r9
ldr r5, [sp, #28]
add r3, r3, r8
cmp r5, #3
str r3, [sp, #44]
bgt f.L108
ldr ip, [sp, #8]
cmp r3, #3
movge r3, #3
add r3, ip, r3, asl #7
add r5, r3, #864
mov r7, r2
mov r8, #6
f.L110:
add r3, r7, #1
cmp r0, #16777216
mov r4, r7, asl #1
add r7, r7, r3
bcs f.L111
cmp lr, fp
mov r0, r0, asl #8
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
f.L111:
ldrh r3, [r5, r4]
mov r2, r0, lsr #11
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
add r2, r3, r2, asr #5
sub r3, r3, r3, lsr #5
rsb r0, ip, r0
movcc r7, r4
movcc r0, ip
strcch r2, [r5, r4] @ movhi
rsbcs r6, ip, r6
strcsh r3, [r5, r4] @ movhi
subs r8, r8, #1
bne f.L110
sub r2, r7, #64
cmp r2, #3
movle r5, r2
ble f.L137
mov r4, r2, asr #1
cmp r2, #13
and r3, r2, #1
sub r7, r4, #1
orr ip, r3, #2
subgt r4, r4, #5
movgt r2, r8
bgt f.L123
mov r5, ip, asl r7
ldr r1, [sp, #8]
add r3, r1, r5, asl #1
sub r3, r3, r2, asl #1
add r4, r3, #1360
add r4, r4, #14
b f.L122
f.L123:
cmp r0, #16777216
add r2, r2, #1
bcs f.L124
cmp lr, fp
mov r0, r0, asl #8
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
f.L124:
mov r0, r0, lsr #1
cmp r6, r0
mov ip, ip, asl #1
rsbcs r6, r0, r6
orrcs ip, ip, #1
cmp r2, r4
bne f.L123
ldr r2, [sp, #8]
add r4, r2, #1600
add r4, r4, #4
mov r5, ip, asl #4
mov r7, #4
f.L122:
mov r9, #1
mov r8, r9
f.L130:
cmp r0, #16777216
mov r1, r8, asl #1
add ip, r8, #1
bcs f.L131
cmp lr, fp
mov r0, r0, asl #8
beq f.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
f.L131:
ldrh r3, [r4, r1]
mov r2, r0, lsr #11
add r8, r8, ip
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
add r2, r3, r2, asr #5
sub r3, r3, r3, lsr #5
orrcs r5, r5, r9
movcc r8, r1
movcc r0, ip
strcch r2, [r4, r1] @ movhi
strcsh r3, [r4, r1] @ movhi
rsbcs r6, ip, r6
rsbcs r0, ip, r0
subs r7, r7, #1
mov r9, r9, asl #1
bne f.L130
f.L137:
adds r5, r5, #1
str r5, [sp, #48]
beq f.L139
ldr r3, [sp, #28]
add r3, r3, #7
str r3, [sp, #28]
f.L108:
ldr r5, [sp, #48]
ldr ip, [sp, #12]
cmp r5, ip
bhi f.L18
rsb r3, r5, ip
ldr r1, [sp, #44]
ldr r5, [sp, #84]
add r2, r1, #2
add r4, r5, r3
add ip, r5, ip
f.L142:
ldr r1, [sp, #12]
add r1, r1, #1
subs r2, r2, #1
str r1, [sp, #12]
ldr r5, [sp, #88]
moveq r3, #0
movne r3, #1
cmp r1, r5
movcs r3, #0
andcc r3, r3, #1
ldrb r7, [r4], #1 @ zero_extendqisi2
cmp r3, #0
strb r7, [ip], #1
bne f.L142
f.L172:
ldr ip, [sp, #12]
ldr r1, [sp, #88]
cmp ip, r1
bcc f.L22
f.L139:
cmp r0, #16777216
bcs f.L143
cmp lr, fp
beq f.L18
add lr, lr, #1
f.L143:
ldr r2, [sp, #4]
ldr r5, [sp, #0]
ldr r1, [sp, #12]
ldr ip, [sp, #92]
rsb r3, r2, lr
mov r0, #0
str r3, [r5, #0]
str r1, [ip, #0]
b f.L146
f.L18:
mov r0, #1
f.L146:
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, r9, fp, pc}

View File

@ -1,163 +1,655 @@
.byte 240, 75, 45,233, 64,208, 77,226, 56, 48,141,229, 0, 48,160,227 /* 0x0000 */ @ args = 12, pretend = 0, frame = 52
.byte 48, 48,141,229, 0,192,208,229, 1, 64,208,229, 2,224,208,229 /* 0x0010 */ @ frame_needed = 0, uses_anonymous_args = 0
.byte 36,192,141,229, 56,192,157,229, 0, 48,140,229,104,192,157,229 /* 0x0020 */ stmfd sp!, {r4, r5, r6, r7, r8, r9, fp, lr}
.byte 0, 48,140,229, 36, 48,157,229, 1,192,208,229, 12,192,131,224 /* 0x0030 */ sub sp, sp, #52
.byte 3, 60,160,227, 19, 60,160,225,115,206,131,226, 1, 48,160,227 /* 0x0040 */ str r3, [sp, #0]
.byte 19,238,160,225, 1,224, 78,226, 28, 48,141,229, 19, 52,160,225 /* 0x0050 */ ldrb r3, [r0, #0] @ zero_extendqisi2
.byte 44,224,141,229, 0, 64,160,227, 1,224,160,227, 1, 48, 67,226 /* 0x0060 */ ldrb r5, [r0, #2] @ zero_extendqisi2
.byte 4, 0,128,226, 6,192,140,226, 40, 48,141,229, 52, 0,141,229 /* 0x0070 */ ldrb lr, [r0, #1] @ zero_extendqisi2
.byte 32, 64,141,229, 24,224,141,229, 20,224,141,229, 16,224,141,229 /* 0x0080 */ ldr ip, [sp, #0]
.byte 60, 16,141,229, 12, 0, 84,225, 4, 16,160,225, 45, 0, 0, 42 /* 0x0090 */ str r3, [sp, #24]
.byte 129, 48,160,225, 52, 0,157,229, 1, 16,129,226, 1,235,160,227 /* 0x00a0 */ ldr r3, [sp, #92]
.byte 12, 0, 81,225,176,224,131,225, 37, 0, 0,234, 60, 0,157,229 /* 0x00b0 */ mov r4, #0
.byte 0,128,160,227, 2, 32,128,224, 12, 32,141,229, 0,112,160,225 /* 0x00c0 */ str r4, [ip, #0]
.byte 0,224,224,227, 8, 32,160,225, 12, 16,157,229, 1, 0, 87,225 /* 0x00d0 */ str r4, [r3, #0]
.byte 1, 32,130,226,125, 2, 0, 10, 1, 48,215,228, 4, 0, 82,227 /* 0x00e0 */ ldr ip, [sp, #24]
.byte 8,132,131,225, 52, 0, 0,218, 48, 32,157,229,100, 48,157,229 /* 0x00f0 */ ldrb r3, [r0, #1] @ zero_extendqisi2
.byte 3, 0, 82,225,119, 2, 0, 42, 44, 0,141,226, 1, 16,144,232 /* 0x0100 */ add r3, ip, r3
.byte 32, 16,157,229, 0,176, 12,224,255,148,224,227, 1, 50,139,224 /* 0x0110 */ mov ip, #768
.byte 9, 0, 94,225,131, 80,160,225, 79, 0, 0,138, 12, 32,157,229 /* 0x0120 */ mov ip, ip, asl r3
.byte 2, 0, 87,225,125, 2, 0, 10, 1, 48,215,228, 14,228,160,225 /* 0x0130 */ mov r3, #1
.byte 8,132,131,225, 52, 48,157,229,179, 16,149,225, 1, 40,160,225 /* 0x0140 */ mov lr, r3, asl lr
.byte 174, 53,160,225, 34, 8,160,225,144, 3, 12,224, 12, 0, 88,225 /* 0x0150 */ mov r3, r3, asl r5
.byte 202, 0, 0, 42, 36,224,157,229, 8, 48,110,226, 84, 51,160,225 /* 0x0160 */ add ip, ip, #1840
.byte 40,224,157,229, 48, 64,157,229, 14, 32, 4,224, 36, 64,157,229 /* 0x0170 */ sub r3, r3, #1
.byte 52,224,157,229, 18, 52,131,224,131, 48,131,224, 2, 43, 96,226 /* 0x0180 */ sub lr, lr, #1
.byte 32, 0,157,229,131, 52,142,224,194, 34,129,224,230, 78,131,226 /* 0x0190 */ add r0, r0, #4
.byte 6, 0, 80,227,190, 32,133,225, 12, 64,132,226, 12,224,160,225 /* 0x01a0 */ add ip, ip, #6
.byte 1,176,160,227,157, 0, 0,218, 48, 16,157,229, 28, 32,157,229 /* 0x01b0 */ str r1, [sp, #4]
.byte 96,192,157,229, 1, 48, 98,224, 3, 48,220,231, 8, 48,141,229 /* 0x01c0 */ str r3, [sp, #16]
.byte 8, 0,157,229,128, 0,160,225, 1,108, 0,226,139,144,160,225 /* 0x01d0 */ str lr, [sp, #20]
.byte 134, 48,132,224, 9, 48,131,224, 1, 4, 94,227, 8, 0,141,229 /* 0x01e0 */ str r0, [sp, #8]
.byte 2, 92,131,226,130, 0, 0, 42, 12, 16,157,229, 1, 0, 87,225 /* 0x01f0 */ b s.L14
.byte 14,228,160,225,125, 2, 0, 10, 1, 48,215,228, 8,132,131,225 /* 0x0200 */ s.L15:
.byte 176, 32,213,225, 2, 24,160,225, 33, 56,160,225,174, 5,160,225 /* 0x0210 */ ldr r0, [sp, #8]
.byte 147, 0, 12,224, 2, 59, 99,226, 12, 0, 88,225,195, 50,130,224 /* 0x0220 */ mov r1, #1024 @ movhi
.byte 9,176,160,225,161, 42, 66,224,146, 0, 0, 42, 0, 0, 86,227 /* 0x0230 */ strh r1, [r3, r0] @ movhi
.byte 176, 48,197,225, 12,224,160,225,152, 0, 0, 10,155, 0, 0,234 /* 0x0240 */ s.L14:
.byte 0, 0, 86,227,176, 32,197,225, 8,128,108,224, 1,176,137,226 /* 0x0250 */ cmp r4, ip
.byte 14,224,108,224,155, 0, 0, 10,255, 0, 91,227,114, 0, 0,218 /* 0x0260 */ mov r3, r4, asl #1
.byte 183, 0, 0,234,255, 0, 91,227,183, 0, 0,202,139, 80,160,225 /* 0x0270 */ add r4, r4, #1
.byte 1, 4, 94,227, 5,176,160,225,167, 0, 0, 42, 12, 32,157,229 /* 0x0280 */ bne s.L15
.byte 2, 0, 87,225, 14,228,160,225,125, 2, 0, 10, 1, 48,215,228 /* 0x0290 */ ldr r3, [sp, #4]
.byte 8,132,131,225,181, 32,148,225, 2, 8,160,225,174, 21,160,225 /* 0x02a0 */ mov r6, #0
.byte 32, 56,160,225,147, 1, 12,224, 2, 59, 99,226, 12, 0, 88,225 /* 0x02b0 */ add fp, r3, r2
.byte 195, 50,130,224, 14,224,108,224,160, 42, 66,224, 12,224,160, 49 /* 0x02c0 */ mov lr, r3
.byte 8,128,108, 32, 1,176,133, 34,181, 48,132, 49,181, 32,132, 33 /* 0x02d0 */ mov r2, r6
.byte 155, 0, 0,234, 32, 48,157,229, 48,192,157,229, 96, 0,157,229 /* 0x02e0 */ s.L17:
.byte 3, 0, 83,227,255, 64, 11,226, 0, 64,204,231, 0, 16,160,211 /* 0x02f0 */ ldr r5, [sp, #4]
.byte 1,192,140,226, 48,192,141,229, 32, 16,141,213,115, 2, 0,218 /* 0x0300 */ rsb r3, r5, fp
.byte 32, 32,157,229, 9, 0, 82,227, 32, 48,157,197, 3, 32, 66,210 /* 0x0310 */ cmp r2, r3
.byte 6, 48, 67,194, 32, 32,141,213, 32, 48,141,197,115, 2, 0,234 /* 0x0320 */ add lr, lr, #1
.byte 52, 64,157,229, 32, 0,157,229, 14,224,108,224,162, 58, 65,224 /* 0x0330 */ beq s.L18
.byte 128, 96,132,224, 9, 0, 94,225,180, 48,133,225, 8,128,108,224 /* 0x0340 */ ldrb r3, [r2, r5] @ zero_extendqisi2
.byte 6, 77,134,226,218, 0, 0,138, 12, 16,157,229, 1, 0, 87,225 /* 0x0350 */ add r2, r2, #1
.byte 125, 2, 0, 10, 1, 48,215,228, 14,228,160,225, 8,132,131,225 /* 0x0360 */ cmp r2, #5
.byte 176, 32,212,225, 2, 8,160,225,174, 53,160,225, 32, 24,160,225 /* 0x0370 */ orr r6, r3, r6, asl #8
.byte 145, 3, 12,224, 12, 0, 88,225,244, 0, 0, 42, 2, 59, 97,226 /* 0x0380 */ bne s.L17
.byte 195, 50,130,224,176, 48,196,225, 52, 32,157,229, 32, 48,157,229 /* 0x0390 */ mov r0, #0
.byte 20,224,157,229, 6, 0, 83,227, 24, 0,157,229,102, 78,130,226 /* 0x03a0 */ mov ip, #1
.byte 28, 16,157,229, 3, 48,160,195, 0, 48,160,211, 16,224,141,229 /* 0x03b0 */ str r0, [sp, #12]
.byte 4, 64,132,226, 12,224,160,225, 32, 48,141,229, 20, 0,141,229 /* 0x03c0 */ mov r7, r0
.byte 24, 16,141,229,128, 1, 0,234, 14,224,108,224,160, 58, 66,224 /* 0x03d0 */ str r0, [sp, #28]
.byte 9, 0, 94,225,176, 48,196,225, 8,128,108,224,102, 79,134,226 /* 0x03e0 */ mvn r0, #0
.byte 1, 1, 0,138, 12, 32,157,229, 2, 0, 87,225,125, 2, 0, 10 /* 0x03f0 */ str ip, [sp, #48]
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 16,212,225 /* 0x0400 */ str ip, [sp, #32]
.byte 1, 8,160,225,174, 53,160,225, 32, 40,160,225,146, 3, 12,224 /* 0x0410 */ str ip, [sp, #36]
.byte 12, 0, 88,225, 56, 1, 0, 42, 12,224,160,225, 32, 0,157,229 /* 0x0420 */ str ip, [sp, #40]
.byte 52,192,157,229, 2, 59, 98,226,128, 34,140,224,195, 50,129,224 /* 0x0430 */ b s.L172
.byte 139, 32,130,224, 9, 0, 94,225,176, 48,196,225, 30, 78,130,226 /* 0x0440 */ s.L22:
.byte 25, 1, 0,138, 12, 16,157,229, 1, 0, 87,225,125, 2, 0, 10 /* 0x0450 */ mvn r8, #-16777216
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 32,212,225 /* 0x0460 */ cmp r0, r8
.byte 2, 8,160,225,174, 53,160,225, 32, 24,160,225,145, 3, 12,224 /* 0x0470 */ bhi s.L23
.byte 12, 0, 88,225,160, 58, 66, 32, 8,128,108, 32, 14,224,108, 32 /* 0x0480 */ cmp lr, fp
.byte 176, 48,196, 33,120, 1, 0, 42, 2, 59, 97,226,195, 50,130,224 /* 0x0490 */ beq s.L18
.byte 48, 32,157,229, 0, 0, 82,227,176, 48,196,225, 12,224,160,225 /* 0x04a0 */ ldrb r3, [lr], #1 @ zero_extendqisi2
.byte 125, 2, 0, 10, 28, 64,157,229, 32, 0,157,229, 96,192,157,229 /* 0x04b0 */ mov r0, r0, asl #8
.byte 2, 48,100,224, 3, 64,220,231, 6, 0, 80,227, 11, 0,160,195 /* 0x04c0 */ orr r6, r3, r6, asl #8
.byte 9, 0,160,211, 32, 0,141,229, 12, 64,194,231, 1, 32,130,226 /* 0x04d0 */ s.L23:
.byte 48, 32,141,229,115, 2, 0,234, 14,224,108,224,160, 58, 65,224 /* 0x04e0 */ add r1, sp, #12
.byte 9, 0, 94,225,176, 48,196,225, 8,128,108,224, 27, 78,134,226 /* 0x04f0 */ ldmia r1, {r1, r2} @ phole ldm
.byte 69, 1, 0,138, 12, 16,157,229, 1, 0, 87,225,125, 2, 0, 10 /* 0x0500 */ ldr r3, [sp, #28]
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 32,212,225 /* 0x0510 */ and r9, r1, r2
.byte 2, 8,160,225,174, 53,160,225, 32, 24,160,225,145, 3, 12,224 /* 0x0520 */ mov r1, r3, asl #4
.byte 12, 0, 88,225, 82, 1, 0, 42, 2, 59, 97,226,195, 50,130,224 /* 0x0530 */ add r3, r9, r1
.byte 24, 32,157,229, 12,224,160,225,176, 48,196,225,117, 1, 0,234 /* 0x0540 */ ldr r2, [sp, #8]
.byte 14,224,108,224,160, 58, 66,224, 9, 0, 94,225,176, 48,196,225 /* 0x0550 */ mov r5, r3, asl #1
.byte 8,128,108,224,114, 79,134,226, 95, 1, 0,138, 12, 32,157,229 /* 0x0560 */ ldrh ip, [r2, r5]
.byte 2, 0, 87,225,125, 2, 0, 10, 1, 48,215,228, 14,228,160,225 /* 0x0570 */ mov r3, r0, lsr #11
.byte 8,132,131,225,176, 32,212,225, 2, 8,160,225,174, 53,160,225 /* 0x0580 */ mul r4, ip, r3
.byte 32, 24,160,225,145, 3, 12,224, 12, 0, 88,225,108, 1, 0, 42 /* 0x0590 */ cmp r6, r4
.byte 2, 59, 97,226,195, 50,130,224, 20, 32,157,229, 12,224,160,225 /* 0x05a0 */ bcs s.L26
.byte 176, 48,196,225,115, 1, 0,234,160, 58, 66,224,176, 48,196,225 /* 0x05b0 */ ldr r0, [sp, #24]
.byte 16, 32,141,226, 12, 0,146,232, 16, 48,141,229, 8,128,108,224 /* 0x05c0 */ rsb r3, r0, #8
.byte 14,224,108,224, 24, 64,157,229, 20, 64,141,229, 28,192,157,229 /* 0x05d0 */ mov r3, r7, asr r3
.byte 28, 32,141,229, 24,192,141,229, 32, 16,157,229, 52, 0,157,229 /* 0x05e0 */ ldr r1, [sp, #12]
.byte 6, 0, 81,227, 11, 16,160,195, 8, 16,160,211,166, 78,128,226 /* 0x05f0 */ ldr r0, [sp, #20]
.byte 32, 16,141,229, 8, 64,132,226,255, 84,224,227, 5, 0, 94,225 /* 0x0600 */ and r2, r1, r0
.byte 137, 1, 0,138, 12, 32,157,229, 2, 0, 87,225,125, 2, 0, 10 /* 0x0610 */ ldr r1, [sp, #24]
.byte 1, 48,215,228, 14,228,160,225, 8,132,131,225,176, 16,212,225 /* 0x0620 */ add r3, r3, r2, asl r1
.byte 1, 40,160,225,174, 53,160,225, 34, 8,160,225,144, 3, 12,224 /* 0x0630 */ ldr r0, [sp, #8]
.byte 12, 0, 88,225,154, 1, 0, 42, 11, 34,132,224, 2, 59, 96,226 /* 0x0640 */ mov r2, #1536
.byte 195, 50,129,224, 12,224,160,225, 4, 80,130,226, 3,192,160,227 /* 0x0650 */ mla r2, r3, r2, r0
.byte 0,144,160,227, 4,192,141,229,176, 48,196,225,191, 1, 0,234 /* 0x0660 */ ldr r1, [sp, #28]
.byte 14,224,108,224,162, 58, 65,224, 5, 0, 94,225, 8,128,108,224 /* 0x0670 */ rsb r3, ip, #2048
.byte 176, 48,196,225,166, 1, 0,138, 12, 0,157,229, 0, 0, 87,225 /* 0x0680 */ cmp r1, #6
.byte 125, 2, 0, 10, 1, 48,215,228, 14,228,160,225, 8,132,131,225 /* 0x0690 */ add r3, ip, r3, asr #5
.byte 178, 16,212,225, 1, 40,160,225,174, 53,160,225, 34, 8,160,225 /* 0x06a0 */ add r8, r2, #3680
.byte 144, 3, 12,224, 12, 0, 88,225,183, 1, 0, 42, 11, 34,132,224 /* 0x06b0 */ strh r3, [r0, r5] @ movhi
.byte 2, 59, 96,226,195, 50,129,224, 12,224,160,225, 3, 16,160,227 /* 0x06c0 */ add r8, r8, #12
.byte 65, 95,130,226, 8,144,160,227, 4, 16,141,229,178, 48,196,225 /* 0x06d0 */ movle r0, r4
.byte 191, 1, 0,234,162, 58, 65,224, 8, 32,160,227,178, 48,196,225 /* 0x06e0 */ movle r1, #1
.byte 4, 32,141,229, 8,128,108,224, 14,224,108,224,129, 95,132,226 /* 0x06f0 */ ble s.L171
.byte 16,144,160,227, 4, 96,157,229, 1,176,160,227,139, 64,160,225 /* 0x0700 */ ldr r2, [sp, #12]
.byte 1, 4, 94,227, 4,176,160,225,203, 1, 0, 42, 12, 48,157,229 /* 0x0710 */ ldr r5, [sp, #48]
.byte 3, 0, 87,225, 14,228,160,225,125, 2, 0, 10, 1, 48,215,228 /* 0x0720 */ ldr ip, [sp, #84]
.byte 8,132,131,225,180, 32,149,225, 2, 8,160,225,174, 21,160,225 /* 0x0730 */ rsb r3, r5, r2
.byte 32, 56,160,225,147, 1, 12,224, 2, 59, 99,226, 12, 0, 88,225 /* 0x0740 */ ldrb r7, [ip, r3] @ zero_extendqisi2
.byte 195, 50,130,224,160, 42, 66,224, 14,224,108,224,180, 48,133, 49 /* 0x0750 */ mov r0, r4
.byte 12,224,160, 49, 8,128,108, 32, 1,176,132, 34,180, 32,133, 33 /* 0x0760 */ mov r1, #1
.byte 1, 96, 86,226,193, 1, 0, 26, 4, 64,157,229, 32,192,157,229 /* 0x0770 */ s.L31:
.byte 1, 32,160,227, 18,180, 75,224, 3, 0, 92,227, 9,176,139,224 /* 0x0780 */ mov r7, r7, asl #1
.byte 92, 2, 0,202, 52, 0,157,229, 3, 0, 91,227, 11, 48,160,177 /* 0x0790 */ and r5, r7, #256
.byte 3, 48,160,163, 7,192,140,226,131, 51,128,224, 32,192,141,229 /* 0x07a0 */ mov r9, r1, asl #1
.byte 54, 78,131,226, 2, 96,160,225, 6,144,160,227,134, 80,160,225 /* 0x07b0 */ add r3, r8, r5, asl #1
.byte 1, 4, 94,227, 5, 96,160,225,247, 1, 0, 42, 12, 16,157,229 /* 0x07c0 */ add r3, r3, r9
.byte 1, 0, 87,225, 14,228,160,225,125, 2, 0, 10, 1, 48,215,228 /* 0x07d0 */ cmp r0, #16777216
.byte 8,132,131,225,181, 32,148,225, 2, 8,160,225,174, 21,160,225 /* 0x07e0 */ add r4, r3, #512
.byte 32, 56,160,225,147, 1, 12,224, 2, 59, 99,226, 12, 0, 88,225 /* 0x07f0 */ add ip, r1, #1
.byte 195, 50,130,224,160, 42, 66,224, 14,224,108,224,181, 48,132, 49 /* 0x0800 */ bcs s.L32
.byte 12,224,160, 49, 8,128,108, 32, 1, 96,133, 34,181, 32,132, 33 /* 0x0810 */ cmp lr, fp
.byte 1,144, 89,226,237, 1, 0, 26, 64, 96, 70,226, 3, 0, 86,227 /* 0x0820 */ mov r0, r0, asl #8
.byte 28, 96,141,213, 88, 2, 0,218, 1, 48, 6,226,198, 32,160,225 /* 0x0830 */ beq s.L18
.byte 13, 0, 86,227, 2, 48,131,227, 1, 80, 66,226, 28, 48,141,229 /* 0x0840 */ ldrb r3, [lr], #1 @ zero_extendqisi2
.byte 5, 80, 66,194, 28, 2, 0,202, 52, 32,157,229, 19, 53,160,225 /* 0x0850 */ orr r6, r3, r6, asl #8
.byte 28, 48,141,229,131, 48,130,224,134, 48, 67,224, 85, 78,131,226 /* 0x0860 */ s.L32:
.byte 14, 64,132,226, 53, 2, 0,234, 1, 4, 94,227, 36, 2, 0, 42 /* 0x0870 */ ldrh r3, [r4, #0]
.byte 12, 48,157,229, 3, 0, 87,225,125, 2, 0, 10, 1, 48,215,228 /* 0x0880 */ mov r2, r0, lsr #11
.byte 14,228,160,225, 8,132,131,225, 28, 64,157,229,174,224,160,225 /* 0x0890 */ add r1, r1, ip
.byte 14, 0, 88,225,132, 64,160,225, 28, 64,141,229, 1, 64,132, 35 /* 0x08a0 */ mul ip, r3, r2
.byte 8,128,110, 32, 28, 64,141, 37, 1, 80, 85,226, 28, 2, 0, 26 /* 0x08b0 */ rsb r2, r3, #2048
.byte 28, 0,157,229, 52,192,157,229, 0, 2,160,225, 25, 77,140,226 /* 0x08c0 */ cmp r6, ip
.byte 28, 0,141,229, 4, 64,132,226, 4, 80,160,227, 1,144,160,227 /* 0x08d0 */ add r2, r3, r2, asr #5
.byte 0,144,141,229, 0, 16,157,229, 1, 4, 94,227,129, 96,160,225 /* 0x08e0 */ sub r3, r3, r3, lsr #5
.byte 0, 96,141,229, 66, 2, 0, 42, 12, 32,157,229, 2, 0, 87,225 /* 0x08f0 */ bcs s.L35
.byte 14,228,160,225,125, 2, 0, 10, 1, 48,215,228, 8,132,131,225 /* 0x0900 */ cmp r5, #0
.byte 182, 32,148,225, 2, 8,160,225,174, 21,160,225, 32, 56,160,225 /* 0x0910 */ mov r0, ip
.byte 147, 1, 12,224, 12, 0, 88,225, 14,224,108,224, 8,128,108, 32 /* 0x0920 */ strh r2, [r4, #0] @ movhi
.byte 28,192,157, 37, 2, 59, 99,226,195, 50,130,224, 9,192,140, 33 /* 0x0930 */ mov r1, r9
.byte 1, 48,134, 34,160, 42, 66,224, 12,224,160, 49,182, 48,132, 49 /* 0x0940 */ beq s.L39
.byte 0, 48,141, 37,182, 32,132, 33, 28,192,141, 37, 1, 80, 85,226 /* 0x0950 */ mov r0, ip
.byte 137,144,160,225, 55, 2, 0, 26, 28, 0,157,229, 1, 0,144,226 /* 0x0960 */ b s.L171
.byte 28, 0,141,229,119, 2, 0, 10, 28, 16,157,229, 48, 32,157,229 /* 0x0970 */ s.L35:
.byte 2, 0, 81,225, 2,176,139,226,125, 2, 0,138, 48, 64,157,229 /* 0x0980 */ cmp r5, #0
.byte 28,192,157,229, 96, 0,157,229, 4, 48,108,224, 3, 64,208,231 /* 0x0990 */ strh r3, [r4, #0] @ movhi
.byte 48, 16,157,229, 0, 64,193,231, 1,176, 91,226,100, 32,157,229 /* 0x09a0 */ rsb r6, ip, r6
.byte 0, 48,160, 3, 1, 48,160, 19, 1, 16,129,226, 2, 0, 81,225 /* 0x09b0 */ rsb r0, ip, r0
.byte 0, 48,160, 35, 1, 48, 3, 50, 0, 0, 83,227, 48, 16,141,229 /* 0x09c0 */ beq s.L171
.byte 97, 2, 0, 26, 48, 48,157,229,100,192,157,229, 12, 0, 83,225 /* 0x09d0 */ s.L39:
.byte 63, 0, 0,234, 1, 4, 94,227,127, 2, 0, 42, 12,224,157,229 /* 0x09e0 */ cmp r1, #255
.byte 14, 0, 87,225, 1,112,135, 18,127, 2, 0, 26, 1, 0,160,227 /* 0x09f0 */ bgt s.L46
.byte 135, 2, 0,234, 60, 0,157,229, 56, 16,157,229, 7, 48, 96,224 /* 0x0a00 */ b s.L31
.byte 0, 48,129,229,104, 32,157,229, 48, 48,157,229, 0, 48,130,229 /* 0x0a10 */ s.L40:
.byte 0, 0,160,227, 64,208,141,226,240,139,189,232 /* 0x0a20 */ cmp r0, #16777216
add r1, r1, r3
bcs s.L41
cmp lr, fp
mov r0, r0, asl #8
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
s.L41:
ldrh r3, [r8, r4]
mov r2, r0, lsr #11
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
sub r5, r3, r3, lsr #5
add r3, r3, r2, asr #5
strcch r3, [r8, r4] @ movhi
strcsh r5, [r8, r4] @ movhi
rsb r0, ip, r0
movcc r1, r4
movcc r0, ip
rsbcs r6, ip, r6
s.L171:
cmp r1, #255
mov r4, r1, asl #1
add r3, r1, #1
ble s.L40
s.L46:
and r7, r1, #255
ldr r1, [sp, #28]
ldr r3, [sp, #12]
ldr r2, [sp, #84]
cmp r1, #3
strb r7, [r2, r3]
movle r5, #0
add r3, r3, #1
str r3, [sp, #12]
strle r5, [sp, #28]
ble s.L172
ldr ip, [sp, #28]
cmp ip, #9
ldrgt r1, [sp, #28]
suble ip, ip, #3
subgt r1, r1, #6
strle ip, [sp, #28]
strgt r1, [sp, #28]
b s.L172
s.L26:
sub r3, ip, ip, lsr #5
rsb r2, r4, r0
ldr ip, [sp, #8]
cmp r2, r8
strh r3, [ip, r5] @ movhi
rsb r6, r4, r6
bhi s.L51
cmp lr, fp
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
s.L51:
ldr r0, [sp, #8]
ldr r3, [sp, #28]
add r7, r0, r3, asl #1
add r0, r7, #384
ldrh ip, [r0, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs s.L54
ldr r2, [sp, #28]
ldr r5, [sp, #8]
cmp r2, #6
rsb r3, ip, #2048
add r1, r5, #1632
movgt r2, #3
ldr r5, [sp, #36]
movle r2, #0
add r3, ip, r3, asr #5
str r2, [sp, #28]
ldr ip, [sp, #32]
ldr r2, [sp, #48]
str r5, [sp, #40]
add r1, r1, #4
mov r5, r4
str ip, [sp, #36]
str r2, [sp, #32]
strh r3, [r0, #0] @ movhi
b s.L59
s.L54:
rsb r2, r4, r2
sub r3, ip, ip, lsr #5
cmp r2, r8
strh r3, [r0, #0] @ movhi
rsb r6, r4, r6
bhi s.L60
cmp lr, fp
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
s.L60:
add r5, r7, #408
ldrh ip, [r5, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs s.L63
rsb r3, ip, #2048
add r3, ip, r3, asr #5
cmp r4, r8
strh r3, [r5, #0] @ movhi
bhi s.L67
cmp lr, fp
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r4, r4, asl #8
orr r6, r3, r6, asl #8
s.L67:
ldr r5, [sp, #8]
add r3, r5, r1, asl #1
add r3, r3, r9, asl #1
add r1, r3, #480
ldrh ip, [r1, #0]
mov r3, r4, lsr #11
mul r2, ip, r3
cmp r6, r2
rsbcs r6, r2, r6
subcs r3, ip, ip, lsr #5
rsbcs r5, r2, r4
bcs s.L169
rsb r3, ip, #2048
add r3, ip, r3, asr #5
ldr ip, [sp, #12]
cmp ip, #0
strh r3, [r1, #0] @ movhi
beq s.L18
ldr r0, [sp, #48]
ldr r1, [sp, #84]
rsb r3, r0, ip
ldrb r7, [r1, r3] @ zero_extendqisi2
ldr r3, [sp, #28]
cmp r3, #6
movgt r3, #11
movle r3, #9
str r3, [sp, #28]
mov r0, r2
strb r7, [r1, ip]
add ip, ip, #1
str ip, [sp, #12]
b s.L172
s.L63:
rsb r2, r4, r2
sub r3, ip, ip, lsr #5
cmp r2, r8
strh r3, [r5, #0] @ movhi
rsb r6, r4, r6
bhi s.L76
cmp lr, fp
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
s.L76:
add r1, r7, #432
ldrh ip, [r1, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs s.L79
ldr r5, [sp, #48]
rsb r3, ip, #2048
ldr r2, [sp, #32]
add r3, ip, r3, asr #5
str r5, [sp, #32]
mov r5, r4
s.L170:
str r2, [sp, #48]
s.L169:
strh r3, [r1, #0] @ movhi
b s.L75
s.L79:
rsb r2, r4, r2
sub r3, ip, ip, lsr #5
cmp r2, r8
strh r3, [r1, #0] @ movhi
rsb r6, r4, r6
bhi s.L81
cmp lr, fp
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
s.L81:
add r1, r7, #456
ldrh ip, [r1, #0]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs s.L84
rsb r3, ip, #2048
ldr r2, [sp, #36]
add r3, ip, r3, asr #5
ldr r0, [sp, #48]
ldr ip, [sp, #32]
mov r5, r4
str ip, [sp, #36]
str r0, [sp, #32]
b s.L170
s.L84:
sub r3, ip, ip, lsr #5
strh r3, [r1, #0] @ movhi
ldr ip, [sp, #48]
add r1, sp, #36
ldmia r1, {r1, r3} @ phole ldm
rsb r5, r4, r2
ldr r2, [sp, #32]
str r1, [sp, #40]
str r2, [sp, #36]
str ip, [sp, #32]
str r3, [sp, #48]
rsb r6, r4, r6
s.L75:
ldr r2, [sp, #28]
ldr r0, [sp, #8]
cmp r2, #6
movgt r2, #11
movle r2, #8
add r1, r0, #2656
str r2, [sp, #28]
add r1, r1, #8
s.L59:
mvn r7, #-16777216
cmp r5, r7
bhi s.L89
cmp lr, fp
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r5, r5, asl #8
orr r6, r3, r6, asl #8
s.L89:
ldrh ip, [r1, #0]
mov r3, r5, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs s.L92
add r2, r1, r9, asl #4
rsb r3, ip, #2048
add r3, ip, r3, asr #5
add r5, r2, #4
mov r0, r4
mov r9, #3
mov r8, #0
strh r3, [r1, #0] @ movhi
b s.L94
s.L92:
rsb r2, r4, r5
sub r3, ip, ip, lsr #5
cmp r2, r7
rsb r6, r4, r6
strh r3, [r1, #0] @ movhi
bhi s.L95
cmp lr, fp
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
mov r2, r2, asl #8
orr r6, r3, r6, asl #8
s.L95:
ldrh ip, [r1, #2]
mov r3, r2, lsr #11
mul r4, ip, r3
cmp r6, r4
bcs s.L98
add r2, r1, r9, asl #4
rsb r3, ip, #2048
add r3, ip, r3, asr #5
add r5, r2, #260
mov r0, r4
mov r9, #3
mov r8, #8
strh r3, [r1, #2] @ movhi
b s.L94
s.L98:
sub r3, ip, ip, lsr #5
strh r3, [r1, #2] @ movhi
rsb r6, r4, r6
rsb r0, r4, r2
add r5, r1, #516
mov r9, #8
mov r8, #16
s.L94:
mov r7, r9
mov r1, #1
s.L100:
add r3, r1, #1
cmp r0, #16777216
mov r4, r1, asl #1
add r1, r1, r3
bcs s.L101
cmp lr, fp
mov r0, r0, asl #8
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
s.L101:
ldrh r3, [r5, r4]
mov r2, r0, lsr #11
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
add r2, r3, r2, asr #5
sub r3, r3, r3, lsr #5
rsb r0, ip, r0
movcc r1, r4
movcc r0, ip
strcch r2, [r5, r4] @ movhi
rsbcs r6, ip, r6
strcsh r3, [r5, r4] @ movhi
subs r7, r7, #1
bne s.L100
mov r2, #1
sub r3, r1, r2, asl r9
ldr r5, [sp, #28]
add r3, r3, r8
cmp r5, #3
str r3, [sp, #44]
bgt s.L108
ldr ip, [sp, #8]
cmp r3, #3
movge r3, #3
add r3, ip, r3, asl #7
add r5, r3, #864
mov r7, r2
mov r8, #6
s.L110:
add r3, r7, #1
cmp r0, #16777216
mov r4, r7, asl #1
add r7, r7, r3
bcs s.L111
cmp lr, fp
mov r0, r0, asl #8
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
s.L111:
ldrh r3, [r5, r4]
mov r2, r0, lsr #11
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
add r2, r3, r2, asr #5
sub r3, r3, r3, lsr #5
rsb r0, ip, r0
movcc r7, r4
movcc r0, ip
strcch r2, [r5, r4] @ movhi
rsbcs r6, ip, r6
strcsh r3, [r5, r4] @ movhi
subs r8, r8, #1
bne s.L110
sub r2, r7, #64
cmp r2, #3
movle r5, r2
ble s.L137
mov r4, r2, asr #1
cmp r2, #13
and r3, r2, #1
sub r7, r4, #1
orr ip, r3, #2
subgt r4, r4, #5
movgt r2, r8
bgt s.L123
mov r5, ip, asl r7
ldr r1, [sp, #8]
add r3, r1, r5, asl #1
sub r3, r3, r2, asl #1
add r4, r3, #1360
add r4, r4, #14
b s.L122
s.L123:
cmp r0, #16777216
add r2, r2, #1
bcs s.L124
cmp lr, fp
mov r0, r0, asl #8
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
s.L124:
mov r0, r0, lsr #1
cmp r6, r0
mov ip, ip, asl #1
rsbcs r6, r0, r6
orrcs ip, ip, #1
cmp r2, r4
bne s.L123
ldr r2, [sp, #8]
add r4, r2, #1600
add r4, r4, #4
mov r5, ip, asl #4
mov r7, #4
s.L122:
mov r9, #1
mov r8, r9
s.L130:
cmp r0, #16777216
mov r1, r8, asl #1
add ip, r8, #1
bcs s.L131
cmp lr, fp
mov r0, r0, asl #8
beq s.L18
ldrb r3, [lr], #1 @ zero_extendqisi2
orr r6, r3, r6, asl #8
s.L131:
ldrh r3, [r4, r1]
mov r2, r0, lsr #11
add r8, r8, ip
mul ip, r3, r2
rsb r2, r3, #2048
cmp r6, ip
add r2, r3, r2, asr #5
sub r3, r3, r3, lsr #5
orrcs r5, r5, r9
movcc r8, r1
movcc r0, ip
strcch r2, [r4, r1] @ movhi
strcsh r3, [r4, r1] @ movhi
rsbcs r6, ip, r6
rsbcs r0, ip, r0
subs r7, r7, #1
mov r9, r9, asl #1
bne s.L130
s.L137:
adds r5, r5, #1
str r5, [sp, #48]
beq s.L139
ldr r3, [sp, #28]
add r3, r3, #7
str r3, [sp, #28]
s.L108:
ldr r5, [sp, #48]
ldr ip, [sp, #12]
cmp r5, ip
bhi s.L18
rsb r3, r5, ip
ldr r1, [sp, #44]
ldr r5, [sp, #84]
add r2, r1, #2
add r4, r5, r3
add ip, r5, ip
s.L142:
ldr r1, [sp, #12]
add r1, r1, #1
subs r2, r2, #1
str r1, [sp, #12]
ldr r5, [sp, #88]
moveq r3, #0
movne r3, #1
cmp r1, r5
movcs r3, #0
andcc r3, r3, #1
ldrb r7, [r4], #1 @ zero_extendqisi2
cmp r3, #0
strb r7, [ip], #1
bne s.L142
s.L172:
ldr ip, [sp, #12]
ldr r1, [sp, #88]
cmp ip, r1
bcc s.L22
s.L139:
cmp r0, #16777216
bcs s.L143
cmp lr, fp
beq s.L18
add lr, lr, #1
s.L143:
ldr r2, [sp, #4]
ldr r5, [sp, #0]
ldr r1, [sp, #12]
ldr ip, [sp, #92]
rsb r3, r2, lr
mov r0, #0
str r3, [r5, #0]
str r1, [ip, #0]
b s.L146
s.L18:
mov r0, #1
s.L146:
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, r9, fp, pc}