diff options
Diffstat (limited to 'gp2x/video.S')
-rw-r--r-- | gp2x/video.S | 78790 |
1 files changed, 78790 insertions, 0 deletions
diff --git a/gp2x/video.S b/gp2x/video.S new file mode 100644 index 0000000..4838fe5 --- /dev/null +++ b/gp2x/video.S @@ -0,0 +1,78790 @@ + .file "video.c" + .text + .align 2 + .global render_scanline_text_base_normal + .type render_scanline_text_base_normal, %function +render_scanline_text_base_normal: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L516 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + add r5, ip, r0, asl #2 + ldrh lr, [r5, #18] + ldrh r4, [ip, #6] + add ip, ip, r0, asl #1 + add r4, r4, lr + mov r7, r4, asl #23 + ldrh r6, [ip, #8] + mov r7, r7, lsr #23 + ldrh r0, [r5, #16] + cmp r7, #255 + movls lr, #0 + movhi lr, #1 + mov r5, r6, lsr #14 + rsb fp, r1, r2 + ldr r2, .L516+4 + ands lr, lr, r5, lsr #1 + add r8, r3, r1, asl #1 + mov ip, r6, asl #3 + subne r3, r7, #256 + ldr r9, .L516+8 + ldr r2, [r2, r5, asl #2] + movne r3, r3, lsr #3 + moveq r3, r4, asl #3 + add r0, r0, r1 + and ip, ip, #63488 + addne r3, r3, r2, lsr #3 + andeq r3, r3, #1984 + add ip, ip, r9 + mov r0, r0, asl #23 + addne r4, ip, r3, asl #6 + addeq r4, ip, r3 + mov r0, r0, lsr #23 + tst r5, #1 + andeq r0, r0, #255 + sub sp, sp, #8 + moveq r3, r0, lsr #3 + addeq sl, r4, r3, asl #1 + streq r4, [sp, #0] + beq .L9 + cmp r0, #255 + subhi r0, r0, #256 + movhi r3, r0, lsr #3 + movls r3, r0, lsr #3 + addhi r3, r4, r3, asl #1 + addls sl, r4, r3, asl #1 + addls r4, r4, #2048 + addhi sl, r3, #2048 + strhi r4, [sp, #0] + strls r4, [sp, #0] +.L9: + ands r5, r6, #128 + beq .L10 + and r3, r7, #7 + mov r2, r6, asl #12 + and r1, r0, #255 + mov r3, r3, asl #3 + and r2, r2, #49152 + add r2, r2, r3 + rsb r4, r1, #256 + mov r3, r3, asl #1 + rsb r3, r3, #56 + cmp fp, r4 + add r9, r2, r9 + str r3, [sp, #4] + and r0, r0, #7 + bls .L487 + cmp r0, #0 + moveq ip, r0 + bne .L488 +.L100: + rsb r3, ip, r4 + movs r7, r3, lsr #3 + beq .L124 + ldr lr, .L516+12 + mov r5, r8 + mov r6, #0 + b .L126 +.L490: + ldr r0, [ip, #4] + ldr ip, [ip, #0] + and r1, r0, #255 + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r3, r0, lsr #8 + and r3, r3, #255 + strh r1, [r5, #6] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r0, lsr #16 + and r2, r2, #255 + strh r3, [r5, #4] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r0, r0, lsr #24 + strh r2, [r5, #2] @ movhi + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + and r1, ip, #255 + strh r0, [r5, #0] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r2, ip, lsr #8 + and r2, r2, #255 + strh r1, [r5, #14] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r3, ip, lsr #16 + and r3, r3, #255 + strh r2, [r5, #12] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov ip, ip, lsr #24 + strh r3, [r5, #10] @ movhi + mov ip, ip, asl #1 + ldrh ip, [ip, lr] + add r6, r6, #1 + cmp r7, r6 + strh ip, [r5, #8] @ movhi + add sl, sl, #2 + add r5, r5, #16 + beq .L489 +.L126: + ldrh r2, [sl, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add ip, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + tst r2, #1024 + bne .L490 + ldmia ip, {r0, ip} @ phole ldm + and r1, r0, #255 + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r3, r0, lsr #8 + and r3, r3, #255 + strh r1, [r5, #0] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r0, lsr #16 + and r2, r2, #255 + strh r3, [r5, #2] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r0, r0, lsr #24 + strh r2, [r5, #4] @ movhi + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + and r1, ip, #255 + strh r0, [r5, #6] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r2, ip, lsr #8 + and r2, r2, #255 + strh r1, [r5, #8] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r3, ip, lsr #16 + and r3, r3, #255 + strh r2, [r5, #10] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov ip, ip, lsr #24 + strh r3, [r5, #12] @ movhi + mov ip, ip, asl #1 + ldrh ip, [ip, lr] + add r6, r6, #1 + cmp r7, r6 + strh ip, [r5, #14] @ movhi + add sl, sl, #2 + add r5, r5, #16 + bne .L126 +.L489: + add r8, r8, r7, asl #4 +.L124: + rsb sl, r4, fp + movs r4, sl, lsr #3 + ldreq r3, [sp, #0] + beq .L136 + ldr lr, .L516+12 + ldr r6, [sp, #0] + mov r5, r8 + mov r7, #0 + b .L137 +.L492: + ldr r0, [ip, #4] + ldr ip, [ip, #0] + and r1, r0, #255 + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r3, r0, lsr #8 + and r3, r3, #255 + strh r1, [r5, #6] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r0, lsr #16 + and r2, r2, #255 + strh r3, [r5, #4] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r0, r0, lsr #24 + strh r2, [r5, #2] @ movhi + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + and r1, ip, #255 + strh r0, [r5, #0] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r2, ip, lsr #8 + and r2, r2, #255 + strh r1, [r5, #14] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r3, ip, lsr #16 + and r3, r3, #255 + strh r2, [r5, #12] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov ip, ip, lsr #24 + strh r3, [r5, #10] @ movhi + mov ip, ip, asl #1 + ldrh ip, [ip, lr] + add r7, r7, #1 + cmp r4, r7 + strh ip, [r5, #8] @ movhi + add r6, r6, #2 + add r5, r5, #16 + beq .L491 +.L137: + ldrh r2, [r6, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add ip, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + tst r2, #1024 + bne .L492 + ldmia ip, {r0, ip} @ phole ldm + and r1, r0, #255 + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r3, r0, lsr #8 + and r3, r3, #255 + strh r1, [r5, #0] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r0, lsr #16 + and r2, r2, #255 + strh r3, [r5, #2] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r0, r0, lsr #24 + strh r2, [r5, #4] @ movhi + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + and r1, ip, #255 + strh r0, [r5, #6] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + mov r2, ip, lsr #8 + and r2, r2, #255 + strh r1, [r5, #8] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r3, ip, lsr #16 + and r3, r3, #255 + strh r2, [r5, #10] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov ip, ip, lsr #24 + strh r3, [r5, #12] @ movhi + mov ip, ip, asl #1 + ldrh ip, [ip, lr] + add r7, r7, #1 + cmp r4, r7 + strh ip, [r5, #14] @ movhi + add r6, r6, #2 + add r5, r5, #16 + bne .L137 +.L491: + ldr r2, [sp, #0] + add r8, r8, r4, asl #4 + add r3, r2, r4, asl #1 +.L136: + ands r5, sl, #7 + beq .L431 + ldrh r4, [r3, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add ip, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + tst r4, #1024 + beq .L147 + cmp r5, #3 + bhi .L493 + ldr r1, [ip, #4] + ldr lr, .L516+12 +.L152: + mov r0, #0 +.L153: + mov r3, r1, lsr #24 + mov r3, r3, asl #1 + add r0, r0, #1 + ldrh r3, [r3, lr] + cmp r5, r0 + strh r3, [r8], #2 @ movhi + mov r1, r1, asl #8 + bhi .L153 +.L431: + add sp, sp, #8 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L10: + and r1, r0, #255 + and r3, r7, #7 + mov r2, r6, asl #12 + mov r3, r3, asl #2 + and r2, r2, #49152 + rsb r4, r1, #256 + add r2, r2, r3 + cmp fp, r4 + mov r3, r3, asl #1 + add ip, r2, r9 + rsb lr, r3, #28 + and r0, r0, #7 + bls .L494 + cmp r0, #0 + moveq r6, r0 + bne .L495 +.L276: + rsb r3, r6, r4 + movs r9, r3, lsr #3 + beq .L296 + ldr r6, .L516+12 + mov r0, r8 + mov r7, #0 + b .L298 +.L496: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L329 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #14] @ movhi + streqh r3, [r0, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #12] @ movhi + streqh r3, [r0, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #10] @ movhi + streqh r3, [r0, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #8] @ movhi + streqh r3, [r0, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #6] @ movhi + streqh r3, [r0, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #4] @ movhi + streqh r3, [r0, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #2] @ movhi + streqh r3, [r0, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r2, [r6, #0] + strneh r3, [r0, #0] @ movhi + streqh r2, [r0, #0] @ movhi +.L328: + add r7, r7, #1 + cmp r9, r7 + add r0, r0, #16 + beq .L354 +.L497: + add sl, sl, #2 +.L298: + ldrh r1, [sl, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, ip, r2, asl #5 + addne r3, r3, lr + tst r1, #1024 + bne .L496 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L329 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #0] @ movhi + streqh r3, [r0, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #2] @ movhi + streqh r3, [r0, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #4] @ movhi + streqh r3, [r0, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #6] @ movhi + streqh r3, [r0, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #8] @ movhi + streqh r3, [r0, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #10] @ movhi + streqh r3, [r0, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #12] @ movhi + streqh r3, [r0, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r2, [r6, #0] + add r7, r7, #1 + strneh r3, [r0, #14] @ movhi + streqh r2, [r0, #14] @ movhi + cmp r9, r7 + add r0, r0, #16 + bne .L497 +.L354: + add r8, r8, r9, asl #4 +.L296: + rsb r9, r4, fp + movs r4, r9, lsr #3 + ldreq r2, [sp, #0] + beq .L358 + ldr r6, .L516+12 + ldr r7, [sp, #0] + mov r0, r8 + mov sl, #0 + b .L359 +.L499: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L390 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #14] @ movhi + streqh r3, [r0, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #12] @ movhi + streqh r3, [r0, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #10] @ movhi + streqh r3, [r0, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #8] @ movhi + streqh r3, [r0, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #6] @ movhi + streqh r3, [r0, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #4] @ movhi + streqh r3, [r0, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #2] @ movhi + streqh r3, [r0, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r2, [r6, #0] + strneh r3, [r0, #0] @ movhi + streqh r2, [r0, #0] @ movhi +.L389: + add sl, sl, #1 + cmp r4, sl + add r0, r0, #16 + add r7, r7, #2 + beq .L498 +.L359: + ldrh r1, [r7, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, ip, r2, asl #5 + addne r3, r3, lr + tst r1, #1024 + bne .L499 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L390 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #0] @ movhi + streqh r3, [r0, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #2] @ movhi + streqh r3, [r0, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #4] @ movhi + streqh r3, [r0, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #6] @ movhi + streqh r3, [r0, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #8] @ movhi + streqh r3, [r0, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #10] @ movhi + streqh r3, [r0, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + strneh r3, [r0, #12] @ movhi + streqh r3, [r0, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r2, [r6, #0] + add sl, sl, #1 + strneh r3, [r0, #14] @ movhi + streqh r2, [r0, #14] @ movhi + cmp r4, sl + add r0, r0, #16 + add r7, r7, #2 + bne .L359 +.L498: + ldr r3, [sp, #0] + add r8, r8, r4, asl #4 + add r2, r3, r4, asl #1 +.L358: + ands r5, r9, #7 + beq .L431 + ldrh r4, [r2, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r3, ip, r3, asl #5 + mov r2, r4, lsr #12 + addne r3, r3, lr + tst r4, #1024 + mov r0, r2, asl #4 + beq .L419 + ldr r2, [r3, #0] + ldr ip, .L516+12 + mov r1, #0 +.L421: + movs r3, r2, lsr #28 + orr r3, r0, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldreqh r3, [ip, #0] + add r1, r1, #1 + strneh r3, [r8, #0] @ movhi + streqh r3, [r8, #0] @ movhi + cmp r5, r1 + mov r2, r2, asl #4 + add r8, r8, #2 + bne .L421 + b .L431 +.L494: + cmp r0, #0 + bne .L500 +.L161: + movs r9, fp, lsr #3 + beq .L200 + ldr r5, .L516+12 + mov r0, r8 + mov r6, sl + mov r7, #0 + b .L202 +.L502: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L233 + ands r3, r2, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #14] @ movhi + streqh r3, [r0, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #12] @ movhi + streqh r3, [r0, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #10] @ movhi + streqh r3, [r0, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #8] @ movhi + streqh r3, [r0, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #6] @ movhi + streqh r3, [r0, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #4] @ movhi + streqh r3, [r0, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #2] @ movhi + streqh r3, [r0, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r2, [r5, #0] + strneh r3, [r0, #0] @ movhi + streqh r2, [r0, #0] @ movhi +.L232: + add r7, r7, #1 + cmp r9, r7 + add r0, r0, #16 + add r6, r6, #2 + beq .L501 +.L202: + ldrh r1, [r6, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r4, r3, asl #4 + add r3, ip, r2, asl #5 + addne r3, r3, lr + tst r1, #1024 + bne .L502 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L233 + ands r3, r2, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #0] @ movhi + streqh r3, [r0, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #2] @ movhi + streqh r3, [r0, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #4] @ movhi + streqh r3, [r0, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #6] @ movhi + streqh r3, [r0, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #8] @ movhi + streqh r3, [r0, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #10] @ movhi + streqh r3, [r0, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + strneh r3, [r0, #12] @ movhi + streqh r3, [r0, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r2, [r5, #0] + add r7, r7, #1 + strneh r3, [r0, #14] @ movhi + streqh r2, [r0, #14] @ movhi + cmp r9, r7 + add r0, r0, #16 + add r6, r6, #2 + bne .L202 +.L501: + add r8, r8, r9, asl #4 + add sl, sl, r9, asl #1 +.L200: + ands r4, fp, #7 + beq .L431 + ldrh r1, [sl, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r3, ip, r3, asl #5 + mov r2, r1, lsr #12 + addne r3, r3, lr + tst r1, #1024 + mov r0, r2, asl #4 + beq .L262 + ldr r2, [r3, #0] + ldr ip, .L516+12 + mov r1, #0 +.L264: + movs r3, r2, lsr #28 + orr r3, r0, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldreqh r3, [ip, #0] + add r1, r1, #1 + strneh r3, [r8, #0] @ movhi + streqh r3, [r8, #0] @ movhi + cmp r4, r1 + mov r2, r2, asl #4 + add r8, r8, #2 + bne .L264 + b .L431 +.L487: + cmp r0, #0 + bne .L503 +.L14: + movs lr, fp, lsr #3 + beq .L74 + ldr r5, .L516+12 + mov r4, r8 + mov r6, sl + mov r7, #0 + b .L76 +.L505: + ldr r0, [ip, #4] + ldr ip, [ip, #0] + and r1, r0, #255 + mov r1, r1, asl #1 + ldrh r1, [r1, r5] + mov r3, r0, lsr #8 + and r3, r3, #255 + strh r1, [r4, #6] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r5] + mov r2, r0, lsr #16 + and r2, r2, #255 + strh r3, [r4, #4] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r5] + mov r0, r0, lsr #24 + strh r2, [r4, #2] @ movhi + mov r0, r0, asl #1 + ldrh r0, [r0, r5] + and r1, ip, #255 + strh r0, [r4, #0] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, r5] + mov r2, ip, lsr #8 + and r2, r2, #255 + strh r1, [r4, #14] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r5] + mov r3, ip, lsr #16 + and r3, r3, #255 + strh r2, [r4, #12] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r5] + mov ip, ip, lsr #24 + strh r3, [r4, #10] @ movhi + mov ip, ip, asl #1 + ldrh ip, [ip, r5] + add r7, r7, #1 + cmp lr, r7 + strh ip, [r4, #8] @ movhi + add r6, r6, #2 + add r4, r4, #16 + beq .L504 +.L76: + ldrh r2, [r6, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add ip, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + tst r2, #1024 + bne .L505 + ldmia ip, {r0, ip} @ phole ldm + and r1, r0, #255 + mov r1, r1, asl #1 + ldrh r1, [r1, r5] + mov r3, r0, lsr #8 + and r3, r3, #255 + strh r1, [r4, #0] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r5] + mov r2, r0, lsr #16 + and r2, r2, #255 + strh r3, [r4, #2] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r5] + mov r0, r0, lsr #24 + strh r2, [r4, #4] @ movhi + mov r0, r0, asl #1 + ldrh r0, [r0, r5] + and r1, ip, #255 + strh r0, [r4, #6] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, r5] + mov r2, ip, lsr #8 + and r2, r2, #255 + strh r1, [r4, #8] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r5] + mov r3, ip, lsr #16 + and r3, r3, #255 + strh r2, [r4, #10] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r5] + mov ip, ip, lsr #24 + strh r3, [r4, #12] @ movhi + mov ip, ip, asl #1 + ldrh ip, [ip, r5] + add r7, r7, #1 + cmp lr, r7 + strh ip, [r4, #14] @ movhi + add r6, r6, #2 + add r4, r4, #16 + bne .L76 +.L504: + add r8, r8, lr, asl #4 + add sl, sl, lr, asl #1 +.L74: + ands r4, fp, #7 + beq .L431 + ldrh r2, [sl, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add ip, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + tst r2, #1024 + beq .L86 + cmp r4, #3 + bhi .L506 + ldr r1, [ip, #4] + ldr lr, .L516+12 +.L91: + mov r0, #0 +.L92: + mov r3, r1, lsr #24 + mov r3, r3, asl #1 + add r0, r0, #1 + ldrh r3, [r3, lr] + cmp r4, r0 + strh r3, [r8], #2 @ movhi + mov r1, r1, asl #8 + bhi .L92 + b .L431 +.L329: + ldrh r3, [r6, #0] + strh r3, [r0, #14] @ movhi + strh r3, [r0, #0] @ movhi + strh r3, [r0, #2] @ movhi + strh r3, [r0, #4] @ movhi + strh r3, [r0, #6] @ movhi + strh r3, [r0, #8] @ movhi + strh r3, [r0, #10] @ movhi + strh r3, [r0, #12] @ movhi + b .L328 +.L390: + ldrh r3, [r6, #0] + strh r3, [r0, #14] @ movhi + strh r3, [r0, #0] @ movhi + strh r3, [r0, #2] @ movhi + strh r3, [r0, #4] @ movhi + strh r3, [r0, #6] @ movhi + strh r3, [r0, #8] @ movhi + strh r3, [r0, #10] @ movhi + strh r3, [r0, #12] @ movhi + b .L389 +.L517: + .align 2 +.L516: + .word io_registers + .word map_widths + .word vram + .word palette_ram_converted +.L500: + rsb r4, r0, #8 + cmp fp, r4 + bcs .L163 + ldrh r1, [sl, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add ip, ip, r3, asl #5 + mov r2, r1, lsr #12 + addne ip, ip, lr + tst r1, #1024 + mov r4, r2, asl #4 + bne .L507 + cmp fp, #0 + ldr r2, [ip, #0] + beq .L431 + mov r3, r0, asl #2 + mov r0, r2, lsr r3 + ldr r2, .L516+12 + mov r1, #0 +.L176: + ands r3, r0, #15 + orr r3, r4, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldreqh r3, [r2, #0] + add r1, r1, #1 + strneh r3, [r8, #0] @ movhi + streqh r3, [r8, #0] @ movhi + cmp fp, r1 + mov r0, r0, lsr #4 + add r8, r8, #2 + bne .L176 + b .L431 +.L495: + ldrh r5, [sl, #0] + rsb r6, r0, #8 + mov r2, r5, asl #22 + mov r3, r5, lsr #12 + mov r2, r2, lsr #22 + tst r5, #2048 + mov r7, r3, asl #4 + add r3, ip, r2, asl #5 + addne r3, r3, lr + tst r5, #1024 + beq .L279 + cmp r6, #0 + ldr r2, [r3, #0] + beq .L281 + mov r3, r0, asl #2 + ldr r5, .L516+12 + mov r0, r2, asl r3 + mov r1, #0 + mov r2, r8 +.L283: + movs r3, r0, lsr #28 + orr r3, r7, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + add r1, r1, #1 + strneh r3, [r2, #0] @ movhi + streqh r3, [r2, #0] @ movhi + cmp r6, r1 + mov r0, r0, asl #4 + add r2, r2, #2 + bne .L283 + add r8, r8, r6, asl #1 +.L281: + add sl, sl, #2 + b .L276 +.L488: + ldrh r2, [sl, #0] + rsb ip, r0, #8 + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r5, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + ands r1, r2, #1024 + beq .L103 + cmp r0, #3 + bhi .L508 + subs lr, ip, #4 + ldr r2, [r5, #4] + ldreq r6, .L516+12 + beq .L111 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr r6, .L516+12 + mov r0, r2, asl r3 + mov r1, r8 + mov r2, #0 +.L113: + mov r3, r0, lsr #24 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r6] + cmp lr, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, asl #8 + bne .L113 + add r3, r8, ip, asl #1 + sub r8, r3, #8 +.L111: + ldr r3, [r5, #0] + mov ip, lr + and r0, r3, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, r6] + mov r2, r3, lsr #8 + and r2, r2, #255 + strh r0, [r8, #6] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r6] + mov r1, r3, lsr #16 + and r1, r1, #255 + strh r2, [r8, #4] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, r6] + mov r3, r3, lsr #24 + strh r1, [r8, #2] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r6] + strh r3, [r8], #8 @ movhi +.L107: + add sl, sl, #2 + b .L100 +.L503: + rsb ip, r0, #8 + cmp fp, ip + bcs .L16 + ldrh r2, [sl, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add ip, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + ands r4, r2, #1024 + bne .L509 + cmp r0, #3 + bls .L37 + cmp fp, #0 + ldr r2, [ip, #4] + beq .L431 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr r1, .L516+12 + mov r0, r2, lsr r3 + mov r2, r4 +.L40: + and r3, r0, #255 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r1] + cmp fp, r2 + strh r3, [r8], #2 @ movhi + mov r0, r0, lsr #8 + bne .L40 + b .L431 +.L233: + ldrh r3, [r5, #0] + strh r3, [r0, #14] @ movhi + strh r3, [r0, #0] @ movhi + strh r3, [r0, #2] @ movhi + strh r3, [r0, #4] @ movhi + strh r3, [r0, #6] @ movhi + strh r3, [r0, #8] @ movhi + strh r3, [r0, #10] @ movhi + strh r3, [r0, #12] @ movhi + b .L232 +.L147: + cmp r5, #3 + bhi .L510 + ldr r1, [ip, #0] + ldr lr, .L516+12 +.L157: + mov r0, #0 +.L158: + and r3, r1, #255 + mov r3, r3, asl #1 + add r0, r0, #1 + ldrh r3, [r3, lr] + cmp r5, r0 + strh r3, [r8], #2 @ movhi + mov r1, r1, lsr #8 + bhi .L158 + b .L431 +.L419: + ldr r2, [r3, #0] + ldr ip, .L516+12 + mov r1, #0 +.L426: + ands r3, r2, #15 + orr r3, r0, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldreqh r3, [ip, #0] + add r1, r1, #1 + strneh r3, [r8, #0] @ movhi + streqh r3, [r8, #0] @ movhi + cmp r5, r1 + mov r2, r2, lsr #4 + add r8, r8, #2 + bne .L426 + b .L431 +.L86: + cmp r4, #3 + bhi .L511 + ldr r1, [ip, #0] + ldr lr, .L516+12 +.L96: + mov r0, #0 +.L97: + and r3, r1, #255 + mov r3, r3, asl #1 + add r0, r0, #1 + ldrh r3, [r3, lr] + cmp r4, r0 + strh r3, [r8], #2 @ movhi + mov r1, r1, lsr #8 + bhi .L97 + b .L431 +.L262: + ldr r2, [r3, #0] + ldr ip, .L516+12 + mov r1, #0 +.L269: + ands r3, r2, #15 + orr r3, r0, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldreqh r3, [ip, #0] + add r1, r1, #1 + strneh r3, [r8, #0] @ movhi + streqh r3, [r8, #0] @ movhi + cmp r4, r1 + mov r2, r2, lsr #4 + add r8, r8, #2 + bne .L269 + b .L431 +.L279: + cmp r6, #0 + ldr r2, [r3, #0] + beq .L281 + mov r3, r0, asl #2 + ldr r5, .L516+12 + mov r0, r2, lsr r3 + mov r1, #0 + mov r2, r8 +.L290: + ands r3, r0, #15 + orr r3, r7, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldreqh r3, [r5, #0] + add r1, r1, #1 + strneh r3, [r2, #0] @ movhi + streqh r3, [r2, #0] @ movhi + cmp r6, r1 + mov r0, r0, lsr #4 + add r2, r2, #2 + bne .L290 + add r8, r8, r6, asl #1 + b .L281 +.L163: + ldrh r1, [sl, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, ip, r2, asl #5 + addne r3, r3, lr + tst r1, #1024 + bne .L512 + cmp r4, #0 + ldr r2, [r3, #0] + beq .L185 + mov r3, r0, asl #2 + ldr r6, .L516+12 + mov r0, r2, lsr r3 + mov r1, #0 + mov r2, r8 +.L194: + ands r3, r0, #15 + orr r3, r5, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + add r1, r1, #1 + strneh r3, [r2, #0] @ movhi + streqh r3, [r2, #0] @ movhi + cmp r4, r1 + mov r0, r0, lsr #4 + add r2, r2, #2 + bne .L194 +.L484: + add r8, r8, r4, asl #1 +.L185: + rsb fp, r4, fp + add sl, sl, #2 + b .L161 +.L103: + cmp r0, #3 + bhi .L513 + subs lr, ip, #4 + ldr r2, [r5, #0] + ldreq r6, .L516+12 + beq .L120 + mov r3, r0, asl #3 + ldr r6, .L516+12 + mov r0, r2, lsr r3 + mov r2, r1 + mov r1, r8 +.L122: + and r3, r0, #255 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r6] + cmp lr, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, lsr #8 + bne .L122 + add r3, r8, ip, asl #1 + sub r8, r3, #8 +.L120: + ldr r3, [r5, #4] + mov ip, lr + and r0, r3, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, r6] + mov r2, r3, lsr #8 + and r2, r2, #255 + strh r0, [r8, #0] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r6] + mov r1, r3, lsr #16 + and r1, r1, #255 + strh r2, [r8, #2] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, r6] + mov r3, r3, lsr #24 + strh r1, [r8, #4] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r6] + add sl, sl, #2 + strh r3, [r8, #6] @ movhi + add r8, r8, #8 + b .L100 +.L16: + ldrh r2, [sl, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add lr, r9, r3, asl #6 + ldrne r3, [sp, #4] + addne lr, lr, r3 + ands r1, r2, #1024 + bne .L514 + cmp r0, #3 + bls .L65 + cmp ip, #0 + ldr r2, [lr, #4] + beq .L57 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr lr, .L516+12 + mov r0, r2, lsr r3 + mov r2, r1 + mov r1, r8 +.L68: + and r3, r0, #255 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, lr] + cmp ip, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, lsr #8 + bne .L68 +.L482: + add r8, r8, ip, asl #1 +.L57: + rsb fp, ip, fp + add sl, sl, #2 + b .L14 +.L510: + ldr r1, [ip, #0] + ldr lr, .L516+12 + and r0, r1, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + mov r3, r1, lsr #8 + and r3, r3, #255 + strh r0, [r8, #0] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r1, lsr #16 + and r2, r2, #255 + strh r3, [r8, #2] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r1, r1, lsr #24 + strh r2, [r8, #4] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + subs r5, r5, #4 + strh r1, [r8, #6] @ movhi + ldr r1, [ip, #4] + addne r8, r8, #8 + bne .L157 + b .L431 +.L493: + ldr r1, [ip, #4] + ldr lr, .L516+12 + and r0, r1, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + mov r3, r1, lsr #8 + and r3, r3, #255 + strh r0, [r8, #6] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r1, lsr #16 + and r2, r2, #255 + strh r3, [r8, #4] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r1, r1, lsr #24 + strh r2, [r8, #2] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + subs r5, r5, #4 + strh r1, [r8, #0] @ movhi + ldr r1, [ip, #0] + addne r8, r8, #8 + bne .L152 + b .L431 +.L506: + ldr r1, [ip, #4] + ldr lr, .L516+12 + and r0, r1, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + mov r3, r1, lsr #8 + and r3, r3, #255 + strh r0, [r8, #6] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r1, lsr #16 + and r2, r2, #255 + strh r3, [r8, #4] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r1, r1, lsr #24 + strh r2, [r8, #2] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + subs r4, r4, #4 + strh r1, [r8, #0] @ movhi + ldr r1, [ip, #0] + addne r8, r8, #8 + bne .L91 + b .L431 +.L511: + ldr r1, [ip, #0] + ldr lr, .L516+12 + and r0, r1, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, lr] + mov r3, r1, lsr #8 + and r3, r3, #255 + strh r0, [r8, #0] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + mov r2, r1, lsr #16 + and r2, r2, #255 + strh r3, [r8, #2] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + mov r1, r1, lsr #24 + strh r2, [r8, #4] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, lr] + subs r4, r4, #4 + strh r1, [r8, #6] @ movhi + ldr r1, [ip, #4] + addne r8, r8, #8 + bne .L96 + b .L431 +.L509: + cmp r0, #3 + bls .L22 + cmp fp, #0 + ldr r2, [ip, #0] + beq .L431 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr r1, .L516+12 + mov r0, r2, asl r3 + mov r2, #0 +.L26: + mov r3, r0, lsr #24 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r1] + cmp fp, r2 + strh r3, [r8], #2 @ movhi + mov r0, r0, asl #8 + bne .L26 + b .L431 +.L508: + cmp ip, #0 + ldr r2, [r5, #0] + beq .L107 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr lr, .L516+12 + mov r0, r2, asl r3 + mov r1, r8 + mov r2, #0 +.L109: + mov r3, r0, lsr #24 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, lr] + cmp ip, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, asl #8 + bne .L109 + add r8, r8, ip, asl #1 +.L515: + add sl, sl, #2 + b .L100 +.L507: + cmp fp, #0 + ldr r2, [ip, #0] + beq .L431 + mov r3, r0, asl #2 + mov r0, r2, asl r3 + ldr r2, .L516+12 + mov r1, r5 +.L170: + movs r3, r0, lsr #28 + orr r3, r4, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldreqh r3, [r2, #0] + add r1, r1, #1 + strneh r3, [r8, #0] @ movhi + streqh r3, [r8, #0] @ movhi + cmp fp, r1 + mov r0, r0, asl #4 + add r8, r8, #2 + bne .L170 + b .L431 +.L514: + cmp r0, #3 + bls .L55 + cmp ip, #0 + ldr r2, [lr, #0] + beq .L57 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr lr, .L516+12 + mov r0, r2, asl r3 + mov r1, r8 + mov r2, #0 +.L59: + mov r3, r0, lsr #24 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, lr] + cmp ip, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, asl #8 + bne .L59 + b .L482 +.L513: + cmp ip, #0 + ldr r2, [r5, #4] + beq .L107 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr lr, .L516+12 + mov r0, r2, lsr r3 + mov r2, r1 + mov r1, r8 +.L118: + and r3, r0, #255 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, lr] + cmp ip, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, lsr #8 + bne .L118 + add r8, r8, ip, asl #1 + b .L515 +.L512: + cmp r4, #0 + ldr r2, [r3, #0] + beq .L185 + mov r3, r0, asl #2 + ldr r6, .L516+12 + mov r0, r2, asl r3 + mov r1, #0 + mov r2, r8 +.L187: + movs r3, r0, lsr #28 + orr r3, r5, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldreqh r3, [r6, #0] + add r1, r1, #1 + strneh r3, [r2, #0] @ movhi + streqh r3, [r2, #0] @ movhi + cmp r4, r1 + mov r0, r0, asl #4 + add r2, r2, #2 + bne .L187 + b .L484 +.L65: + subs r4, ip, #4 + ldr r2, [lr, #0] + ldreq r5, .L516+12 + beq .L70 + mov r3, r0, asl #3 + ldr r5, .L516+12 + mov r0, r2, lsr r3 + mov r2, r1 + mov r1, r8 +.L72: + and r3, r0, #255 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r5] + cmp r4, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, lsr #8 + bne .L72 + add r3, r8, ip, asl #1 + sub r8, r3, #8 +.L70: + ldr r3, [lr, #4] + and r0, r3, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, r5] + mov r2, r3, lsr #8 + and r2, r2, #255 + strh r0, [r8, #0] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r5] + mov r1, r3, lsr #16 + and r1, r1, #255 + strh r2, [r8, #2] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, r5] + mov r3, r3, lsr #24 + strh r1, [r8, #4] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r5] + strh r3, [r8, #6] @ movhi + add r8, r8, #8 + b .L57 +.L55: + subs r4, ip, #4 + ldr r2, [lr, #4] + ldreq r5, .L516+12 + beq .L61 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr r5, .L516+12 + mov r0, r2, asl r3 + mov r1, r8 + mov r2, #0 +.L63: + mov r3, r0, lsr #24 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r5] + cmp r4, r2 + strh r3, [r1], #2 @ movhi + mov r0, r0, asl #8 + bne .L63 + add r3, r8, ip, asl #1 + sub r8, r3, #8 +.L61: + ldr r3, [lr, #0] + and r0, r3, #255 + mov r0, r0, asl #1 + ldrh r0, [r0, r5] + mov r2, r3, lsr #8 + and r2, r2, #255 + strh r0, [r8, #6] @ movhi + mov r2, r2, asl #1 + ldrh r2, [r2, r5] + mov r1, r3, lsr #16 + and r1, r1, #255 + strh r2, [r8, #4] @ movhi + mov r1, r1, asl #1 + ldrh r1, [r1, r5] + mov r3, r3, lsr #24 + strh r1, [r8, #2] @ movhi + mov r3, r3, asl #1 + ldrh r3, [r3, r5] + strh r3, [r8], #8 @ movhi + b .L57 +.L22: + mov r3, r0, asl #3 + ldr r1, [ip, #4] + add r2, fp, r0 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L27 + cmp fp, #0 + ldrne r0, .L516+12 + movne r2, #0 + beq .L431 +.L36: + mov r3, r1, lsr #24 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r0] + cmp fp, r2 + strh r3, [r8], #2 @ movhi + mov r1, r1, asl #8 + bne .L36 + b .L431 +.L37: + add r2, fp, r0 + ldr r3, [ip, #0] + cmp r2, #4 + mov r1, r0, asl #3 + mov r2, r3, lsr r1 + bhi .L41 + cmp fp, #0 + ldrne r0, .L516+12 + movne r1, r4 + beq .L431 +.L50: + and r3, r2, #255 + mov r3, r3, asl #1 + add r1, r1, #1 + ldrh r3, [r3, r0] + cmp fp, r1 + strh r3, [r8], #2 @ movhi + mov r2, r2, lsr #8 + bne .L50 + b .L431 +.L27: + rsbs lr, r0, #4 + beq .L30 + ldr r4, .L516+12 + mov r0, r8 + mov r2, #0 +.L32: + mov r3, r1, lsr #24 + mov r3, r3, asl #1 + add r2, r2, #1 + ldrh r3, [r3, r4] + cmp lr, r2 + strh r3, [r0], #2 @ movhi + mov r1, r1, asl #8 + bne .L32 + add r8, r8, lr, asl #1 +.L30: + subs r0, fp, lr + ldr r2, [ip, #0] + beq .L431 + ldr ip, .L516+12 + mov r1, #0 +.L35: + mov r3, r2, lsr #24 + mov r3, r3, asl #1 + add r1, r1, #1 + ldrh r3, [r3, ip] + cmp r0, r1 + strh r3, [r8], #2 @ movhi + mov r2, r2, asl #8 + bne .L35 + b .L431 +.L41: + rsbs lr, r0, #4 + beq .L44 + ldr r5, .L516+12 + mov r1, r4 + mov r0, r8 +.L46: + and r3, r2, #255 + mov r3, r3, asl #1 + add r1, r1, #1 + ldrh r3, [r3, r5] + cmp lr, r1 + strh r3, [r0], #2 @ movhi + mov r2, r2, lsr #8 + bne .L46 + add r8, r8, lr, asl #1 +.L44: + subs r0, fp, lr + ldr r2, [ip, #4] + beq .L431 + ldr ip, .L516+12 + mov r1, #0 +.L49: + and r3, r2, #255 + mov r3, r3, asl #1 + add r1, r1, #1 + ldrh r3, [r3, ip] + cmp r0, r1 + strh r3, [r8], #2 @ movhi + mov r2, r2, lsr #8 + bne .L49 + b .L431 + .size render_scanline_text_base_normal, .-render_scanline_text_base_normal + .align 2 + .global render_scanline_text_transparent_normal + .type render_scanline_text_transparent_normal, %function +render_scanline_text_transparent_normal: + @ args = 0, pretend = 0, frame = 4 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L1161 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + add r5, ip, r0, asl #2 + ldrh lr, [r5, #18] + ldrh r4, [ip, #6] + add ip, ip, r0, asl #1 + add r4, r4, lr + mov r6, r4, asl #23 + ldrh r7, [ip, #8] + mov r6, r6, lsr #23 + ldrh r0, [r5, #16] + cmp r6, #255 + movls lr, #0 + movhi lr, #1 + mov r5, r7, lsr #14 + rsb r9, r1, r2 + ldr r2, .L1161+4 + ands lr, lr, r5, lsr #1 + mov ip, r7, asl #3 + add lr, r3, r1, asl #1 + ldr r8, .L1161+8 + subne r3, r6, #256 + ldr r2, [r2, r5, asl #2] + movne r3, r3, lsr #3 + moveq r3, r4, asl #3 + add r0, r0, r1 + and ip, ip, #63488 + addne r3, r3, r2, lsr #3 + andeq r3, r3, #1984 + add ip, ip, r8 + mov r0, r0, asl #23 + addne r4, ip, r3, asl #6 + addeq r4, ip, r3 + mov r0, r0, lsr #23 + tst r5, #1 + andeq r0, r0, #255 + sub sp, sp, #4 + moveq r3, r0, lsr #3 + addeq ip, r4, r3, asl #1 + streq r4, [sp, #0] + beq .L526 + cmp r0, #255 + subhi r0, r0, #256 + movhi r3, r0, lsr #3 + movls r3, r0, lsr #3 + addhi r3, r4, r3, asl #1 + addls ip, r4, r3, asl #1 + addls r4, r4, #2048 + addhi ip, r3, #2048 + strhi r4, [sp, #0] + strls r4, [sp, #0] +.L526: + tst r7, #128 + beq .L527 + and r1, r0, #255 + and r3, r6, #7 + mov r2, r7, asl #12 + mov r3, r3, asl #3 + and r2, r2, #49152 + rsb sl, r1, #256 + add r2, r2, r3 + cmp r9, sl + mov r3, r3, asl #1 + add r8, r2, r8 + rsb fp, r3, #56 + and r0, r0, #7 + bls .L1136 + cmp r0, #0 + moveq r5, r0 + bne .L1137 +.L729: + rsb r3, r5, sl + movs r7, r3, lsr #3 + beq .L783 + ldr r5, .L1161+12 + mov r0, lr + mov r6, #0 + b .L785 +.L1138: + ldr r2, [r1, #4] + cmp r2, #0 + beq .L790 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #2] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #0] @ movhi +.L790: + ldr r2, [r1, #0] + cmp r2, #0 + beq .L799 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #14] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #12] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #10] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #8] @ movhi +.L799: + add r6, r6, #1 + cmp r7, r6 + add r0, r0, #16 + beq .L825 +.L1139: + add ip, ip, #2 +.L785: + ldrh r2, [ip, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r1, r8, r3, asl #6 + addne r1, r1, fp + tst r2, #1024 + bne .L1138 + ldr r2, [r1, #0] + cmp r2, #0 + beq .L808 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #4] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #6] @ movhi +.L808: + ldr r2, [r1, #4] + cmp r2, #0 + beq .L799 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + add r6, r6, #1 + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #12] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #14] @ movhi + cmp r7, r6 + add r0, r0, #16 + bne .L1139 +.L825: + add lr, lr, r7, asl #4 +.L783: + rsb sl, sl, r9 + movs r4, sl, lsr #3 + ldreq r3, [sp, #0] + beq .L829 + ldr r7, .L1161+12 + ldr r6, [sp, #0] + mov r5, lr + mov r2, #0 + b .L830 +.L1141: + ldr r1, [r0, #4] + cmp r1, #0 + beq .L835 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #2] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #0] @ movhi +.L835: + ldr r1, [r0, #0] + cmp r1, #0 + beq .L844 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #10] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #8] @ movhi +.L844: + add r2, r2, #1 + cmp r4, r2 + add r5, r5, #16 + add r6, r6, #2 + beq .L1140 +.L830: + ldrh r1, [r6, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, r8, r3, asl #6 + addne r0, r0, fp + tst r1, #1024 + bne .L1141 + ldr r1, [r0, #0] + cmp r1, #0 + beq .L853 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #4] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #6] @ movhi +.L853: + ldr r1, [r0, #4] + cmp r1, #0 + beq .L844 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + add r2, r2, #1 + strneh r3, [r5, #8] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + add r6, r6, #2 + strneh r3, [r5, #10] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #12] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r5, #14] @ movhi + cmp r4, r2 + add r5, r5, #16 + bne .L830 +.L1140: + ldr r2, [sp, #0] + add lr, lr, r4, asl #4 + add r3, r2, r4, asl #1 +.L829: + ands r5, sl, #7 + beq .L1118 + ldrh r4, [r3, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add ip, r8, r3, asl #6 + addne ip, ip, fp + tst r4, #1024 + beq .L874 + cmp r5, #3 + ldrls r2, [ip, #4] + bls .L888 + ldr r1, [ip, #4] + cmp r1, #0 + beq .L878 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #6] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #4] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #2] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #0] @ movhi +.L878: + subs r5, r5, #4 + ldr r2, [ip, #0] + addne lr, lr, #8 + beq .L1118 +.L888: + mov r1, #0 +.L889: + movs r3, r2, lsr #24 + mov ip, r3, asl #1 + ldrne r3, .L1161+12 + mov r0, r1, asl #1 + ldrneh ip, [ip, r3] + add r1, r1, #1 + strneh ip, [r0, lr] @ movhi + cmp r1, r5 + mov r2, r2, asl #8 + bcc .L889 +.L1118: + add sp, sp, #4 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L527: + and r1, r0, #255 + and r3, r6, #7 + mov r2, r7, asl #12 + mov r3, r3, asl #2 + and r2, r2, #49152 + rsb r4, r1, #256 + add r2, r2, r3 + cmp r9, r4 + mov r3, r3, asl #1 + add r8, r2, r8 + rsb fp, r3, #28 + and r0, r0, #7 + bls .L1142 + cmp r0, #0 + moveq r6, r0 + bne .L1143 +.L1003: + rsb r3, r6, r4 + movs sl, r3, lsr #3 + beq .L1021 + ldr r6, .L1161+12 + mov r0, lr + mov r7, #0 + b .L1023 +.L1144: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1028 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #0] @ movhi +.L1028: + add r7, r7, #1 + cmp sl, r7 + add r0, r0, #16 + beq .L1061 +.L1145: + add ip, ip, #2 +.L1023: + ldrh r1, [ip, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, r8, r2, asl #5 + addne r3, r3, fp + tst r1, #1024 + bne .L1144 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1028 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + add r7, r7, #1 + strneh r3, [r0, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #14] @ movhi + cmp sl, r7 + add r0, r0, #16 + bne .L1145 +.L1061: + add lr, lr, sl, asl #4 +.L1021: + rsb sl, r4, r9 + movs r4, sl, lsr #3 + ldreq r2, [sp, #0] + beq .L1065 + ldr r7, .L1161+12 + ldr r6, [sp, #0] + mov r0, lr + mov ip, #0 + b .L1066 +.L1147: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1071 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #0] @ movhi +.L1071: + add ip, ip, #1 + cmp r4, ip + add r0, r0, #16 + add r6, r6, #2 + beq .L1146 +.L1066: + ldrh r1, [r6, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, r8, r2, asl #5 + addne r3, r3, fp + tst r1, #1024 + bne .L1147 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1071 + ands r3, r2, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + add ip, ip, #1 + strneh r3, [r0, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + add r6, r6, #2 + strneh r3, [r0, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #14] @ movhi + cmp r4, ip + add r0, r0, #16 + bne .L1066 +.L1146: + ldr r3, [sp, #0] + add lr, lr, r4, asl #4 + add r2, r3, r4, asl #1 +.L1065: + ands r5, sl, #7 + beq .L1118 + ldrh r4, [r2, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r3, r8, r3, asl #5 + mov r2, r4, lsr #12 + addne r3, r3, fp + tst r4, #1024 + mov ip, r2, asl #4 + beq .L1108 + ldr r2, [r3, #0] + ldr r4, .L1161+12 + mov r0, #0 +.L1110: + movs r3, r2, lsr #28 + orr r3, ip, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r5, r0 + mov r2, r2, asl #4 + bne .L1110 + b .L1118 +.L1142: + cmp r0, #0 + bne .L1148 +.L912: + movs sl, r9, lsr #3 + beq .L947 + ldr r6, .L1161+12 + mov r0, lr + mov r5, ip + mov r7, #0 + b .L949 +.L1150: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L954 + ands r3, r2, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #0] @ movhi +.L954: + add r7, r7, #1 + cmp sl, r7 + add r0, r0, #16 + add r5, r5, #2 + beq .L1149 +.L949: + ldrh r1, [r5, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r4, r3, asl #4 + add r3, r8, r2, asl #5 + addne r3, r3, fp + tst r1, #1024 + bne .L1150 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L954 + ands r3, r2, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + add r7, r7, #1 + strneh r3, [r0, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + add r5, r5, #2 + strneh r3, [r0, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r4, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #14] @ movhi + cmp sl, r7 + add r0, r0, #16 + bne .L949 +.L1149: + add lr, lr, sl, asl #4 + add ip, ip, sl, asl #1 +.L947: + ands r4, r9, #7 + beq .L1118 + ldrh r1, [ip, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r3, r8, r3, asl #5 + mov r2, r1, lsr #12 + addne r3, r3, fp + tst r1, #1024 + mov ip, r2, asl #4 + beq .L991 + ldr r2, [r3, #0] + ldr r5, .L1161+12 + mov r0, #0 +.L993: + movs r3, r2, lsr #28 + orr r3, ip, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r4, r0 + mov r2, r2, asl #4 + bne .L993 + b .L1118 +.L1136: + cmp r0, #0 + bne .L1151 +.L531: + movs r7, r9, lsr #3 + beq .L645 + ldr r5, .L1161+12 + mov r0, lr + mov r4, ip + mov r6, #0 + b .L647 +.L1153: + ldr r2, [r1, #4] + cmp r2, #0 + beq .L652 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #2] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #0] @ movhi +.L652: + ldr r2, [r1, #0] + cmp r2, #0 + beq .L661 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #14] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #12] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #10] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #8] @ movhi +.L661: + add r6, r6, #1 + cmp r7, r6 + add r0, r0, #16 + add r4, r4, #2 + beq .L1152 +.L647: + ldrh r2, [r4, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r1, r8, r3, asl #6 + addne r1, r1, fp + tst r2, #1024 + bne .L1153 + ldr r2, [r1, #0] + cmp r2, #0 + beq .L670 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #4] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #6] @ movhi +.L670: + ldr r2, [r1, #4] + cmp r2, #0 + beq .L661 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + add r6, r6, #1 + strneh r3, [r0, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + add r4, r4, #2 + strneh r3, [r0, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #12] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #14] @ movhi + cmp r7, r6 + add r0, r0, #16 + bne .L647 +.L1152: + add lr, lr, r7, asl #4 + add ip, ip, r7, asl #1 +.L645: + ands r4, r9, #7 + beq .L1118 + ldrh r2, [ip, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add ip, r8, r3, asl #6 + addne ip, ip, fp + tst r2, #1024 + beq .L691 + cmp r4, #3 + ldrls r2, [ip, #4] + bls .L705 + ldr r1, [ip, #4] + cmp r1, #0 + beq .L695 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #6] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #4] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #2] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #0] @ movhi +.L695: + subs r4, r4, #4 + ldr r2, [ip, #0] + addne lr, lr, #8 + beq .L1118 +.L705: + mov r1, #0 +.L706: + movs r3, r2, lsr #24 + mov ip, r3, asl #1 + ldrne r3, .L1161+12 + mov r0, r1, asl #1 + ldrneh ip, [ip, r3] + add r1, r1, #1 + strneh ip, [r0, lr] @ movhi + cmp r4, r1 + mov r2, r2, asl #8 + bhi .L706 + b .L1118 +.L1148: + rsb r4, r0, #8 + cmp r9, r4 + bcs .L914 + ldrh r1, [ip, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add ip, r8, r3, asl #5 + mov r2, r1, lsr #12 + addne ip, ip, fp + tst r1, #1024 + mov r2, r2, asl #4 + bne .L1154 + cmp r9, #0 + ldr ip, [ip, #0] + beq .L1118 + mov r3, r0, asl #2 + ldr r4, .L1161+12 + mov r0, ip, lsr r3 + mov ip, #0 +.L926: + ands r3, r0, #15 + orr r3, r2, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, lr] @ movhi + cmp r9, ip + mov r0, r0, lsr #4 + bne .L926 + b .L1118 +.L1162: + .align 2 +.L1161: + .word io_registers + .word map_widths + .word vram + .word palette_ram_converted +.L1137: + ldrh r2, [ip, #0] + rsb r5, r0, #8 + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r6, r8, r3, asl #6 + addne r6, r6, fp + ands r2, r2, #1024 + beq .L732 + cmp r0, #3 + bhi .L1155 + subs r4, r5, #4 + ldr r2, [r6, #4] + beq .L743 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r0, r2, asl r3 + ldr r7, .L1161+12 + mov r1, #0 +.L745: + movs r3, r0, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r7] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r4, r1 + mov r0, r0, asl #8 + bne .L745 + add r3, lr, r5, asl #1 + sub lr, r3, #8 +.L743: + ldr r1, [r6, #0] + cmp r1, #0 + beq .L774 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #6] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #4] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #2] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #0] @ movhi +.L774: + add lr, lr, #8 + mov r5, r4 +.L736: + add ip, ip, #2 + b .L729 +.L1143: + ldrh r5, [ip, #0] + rsb r6, r0, #8 + mov r2, r5, asl #22 + mov r3, r5, lsr #12 + mov r2, r2, lsr #22 + tst r5, #2048 + mov r7, r3, asl #4 + add r3, r8, r2, asl #5 + addne r3, r3, fp + tst r5, #1024 + beq .L1006 + cmp r6, #0 + ldr r2, [r3, #0] + beq .L1008 + mov r3, r0, asl #2 + mov r0, r2, asl r3 + ldr r5, .L1161+12 + mov r1, #0 +.L1010: + movs r3, r0, lsr #28 + orr r3, r7, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r6, r1 + mov r0, r0, asl #4 + bne .L1010 + add lr, lr, r6, asl #1 +.L1008: + add ip, ip, #2 + b .L1003 +.L1151: + rsb r4, r0, #8 + cmp r9, r4 + bcs .L533 + ldrh r2, [ip, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add ip, r8, r3, asl #6 + addne ip, ip, fp + tst r2, #1024 + bne .L1156 + cmp r0, #3 + bls .L566 + cmp r9, #0 + ldr r2, [ip, #4] + beq .L1118 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r0, r2, lsr r3 + ldr ip, .L1161+12 + mov r1, #0 +.L569: + ands r3, r0, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r9, r1 + mov r0, r0, lsr #8 + bne .L569 + b .L1118 +.L1108: + ldr r2, [r3, #0] + ldr r4, .L1161+12 + mov r0, #0 +.L1114: + ands r3, r2, #15 + orr r3, ip, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r5, r0 + mov r2, r2, lsr #4 + bne .L1114 + b .L1118 +.L874: + cmp r5, #3 + ldrls r2, [ip, #0] + bls .L905 + ldr r1, [ip, #0] + cmp r1, #0 + beq .L895 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #0] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #2] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #4] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #6] @ movhi +.L895: + subs r5, r5, #4 + ldr r2, [ip, #4] + addne lr, lr, #8 + beq .L1118 +.L905: + mov r1, #0 +.L906: + ands r3, r2, #255 + mov ip, r3, asl #1 + ldrne r3, .L1161+12 + mov r0, r1, asl #1 + ldrneh ip, [ip, r3] + add r1, r1, #1 + strneh ip, [r0, lr] @ movhi + cmp r1, r5 + mov r2, r2, lsr #8 + bcc .L906 + b .L1118 +.L991: + ldr r2, [r3, #0] + ldr r5, .L1161+12 + mov r0, #0 +.L997: + ands r3, r2, #15 + orr r3, ip, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r4, r0 + mov r2, r2, lsr #4 + bne .L997 + b .L1118 +.L691: + cmp r4, #3 + ldrls r2, [ip, #0] + bls .L722 + ldr r1, [ip, #0] + cmp r1, #0 + beq .L712 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #0] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #2] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #4] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #6] @ movhi +.L712: + subs r4, r4, #4 + ldr r2, [ip, #4] + addne lr, lr, #8 + beq .L1118 +.L722: + mov r1, #0 +.L723: + ands r3, r2, #255 + mov ip, r3, asl #1 + ldrne r3, .L1161+12 + mov r0, r1, asl #1 + ldrneh ip, [ip, r3] + add r1, r1, #1 + strneh ip, [r0, lr] @ movhi + cmp r4, r1 + mov r2, r2, lsr #8 + bhi .L723 + b .L1118 +.L732: + cmp r0, #3 + bhi .L1157 + subs r4, r5, #4 + ldr r2, [r6, #0] + beq .L767 + mov r3, r0, asl #3 + mov r0, r2, lsr r3 + ldr r7, .L1161+12 + mov r1, #0 +.L769: + ands r3, r0, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r7] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r4, r1 + mov r0, r0, lsr #8 + bne .L769 + add r3, lr, r5, asl #1 + sub lr, r3, #8 +.L767: + ldr r1, [r6, #4] + cmp r1, #0 + beq .L774 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #0] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #2] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #4] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #6] @ movhi + b .L774 +.L1006: + cmp r6, #0 + ldr r2, [r3, #0] + beq .L1008 + mov r3, r0, asl #2 + mov r0, r2, lsr r3 + ldr r5, .L1161+12 + mov r1, #0 +.L1016: + ands r3, r0, #15 + orr r3, r7, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r6, r1 + mov r0, r0, lsr #4 + bne .L1016 + add lr, lr, r6, asl #1 + b .L1008 +.L914: + ldrh r1, [ip, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, r8, r2, asl #5 + addne r3, r3, fp + tst r1, #1024 + bne .L1158 + cmp r4, #0 + ldr r2, [r3, #0] + beq .L934 + mov r3, r0, asl #2 + mov r0, r2, lsr r3 + ldr r6, .L1161+12 + mov r1, #0 +.L942: + ands r3, r0, #15 + orr r3, r5, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r4, r1 + mov r0, r0, lsr #4 + bne .L942 +.L1133: + add lr, lr, r4, asl #1 +.L934: + rsb r9, r4, r9 + add ip, ip, #2 + b .L912 +.L533: + ldrh r2, [ip, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r5, r8, r3, asl #6 + addne r5, r5, fp + ands r2, r2, #1024 + bne .L1159 + cmp r0, #3 + bls .L621 + cmp r4, #0 + ldr r1, [r5, #4] + beq .L598 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr r5, .L1161+12 + mov r0, r1, lsr r3 + mov r1, r2 +.L624: + ands r3, r0, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r4, r1 + mov r0, r0, lsr #8 + bne .L624 +.L1120: + add lr, lr, r4, asl #1 +.L598: + rsb r9, r4, r9 + add ip, ip, #2 + b .L531 +.L1155: + cmp r5, #0 + ldr r2, [r6, #0] + beq .L736 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r0, r2, asl r3 + ldr r4, .L1161+12 + mov r1, #0 +.L738: + movs r3, r0, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r5, r1 + mov r0, r0, asl #8 + bne .L738 + add lr, lr, r5, asl #1 +.L1160: + add ip, ip, #2 + b .L729 +.L1154: + cmp r9, #0 + ldr ip, [ip, #0] + beq .L1118 + mov r3, r0, asl #2 + ldr r4, .L1161+12 + mov r0, ip, asl r3 + mov ip, #0 +.L921: + movs r3, r0, lsr #28 + orr r3, r2, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, lr] @ movhi + cmp r9, ip + mov r0, r0, asl #4 + bne .L921 + b .L1118 +.L1159: + cmp r0, #3 + bls .L596 + cmp r4, #0 + ldr r2, [r5, #0] + beq .L598 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r0, r2, asl r3 + ldr r5, .L1161+12 + mov r1, #0 +.L600: + movs r3, r0, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r4, r1 + mov r0, r0, asl #8 + bne .L600 + b .L1120 +.L1157: + cmp r5, #0 + ldr r1, [r6, #4] + beq .L736 + mov r3, r0, asl #3 + sub r3, r3, #32 + ldr r4, .L1161+12 + mov r0, r1, lsr r3 + mov r1, r2 +.L762: + ands r3, r0, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r5, r1 + mov r0, r0, lsr #8 + bne .L762 + add lr, lr, r5, asl #1 + b .L1160 +.L1156: + cmp r0, #3 + bls .L539 + cmp r9, #0 + ldr r2, [ip, #0] + beq .L1118 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r0, r2, asl r3 + ldr ip, .L1161+12 + mov r1, #0 +.L543: + movs r3, r0, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r9, r1 + mov r0, r0, asl #8 + bne .L543 + b .L1118 +.L1158: + cmp r4, #0 + ldr r2, [r3, #0] + beq .L934 + mov r3, r0, asl #2 + mov r0, r2, asl r3 + ldr r6, .L1161+12 + mov r1, #0 +.L936: + movs r3, r0, lsr #28 + orr r3, r5, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r4, r1 + mov r0, r0, asl #4 + bne .L936 + b .L1133 +.L539: + mov r3, r0, asl #3 + ldr r1, [ip, #4] + add r2, r9, r0 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L547 + cmp r9, #0 + ldrne ip, .L1161+12 + movne r0, #0 + beq .L1118 +.L562: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, lr] @ movhi + cmp r9, r0 + mov r1, r1, asl #8 + bne .L562 + b .L1118 +.L596: + subs r6, r4, #4 + ldr r2, [r5, #4] + beq .L605 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r0, r2, asl r3 + ldr r7, .L1161+12 + mov r1, #0 +.L607: + movs r3, r0, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r7] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r6, r1 + mov r0, r0, asl #8 + bne .L607 + add r3, lr, r4, asl #1 + sub lr, r3, #8 +.L605: + ldr r1, [r5, #0] + cmp r1, #0 + beq .L636 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #6] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #4] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #2] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #0] @ movhi +.L636: + add lr, lr, #8 + b .L598 +.L566: + add r2, r9, r0 + ldr r3, [ip, #0] + cmp r2, #4 + mov r1, r0, asl #3 + mov r2, r3, lsr r1 + bhi .L573 + cmp r9, #0 + ldrne ip, .L1161+12 + movne r0, #0 + beq .L1118 +.L588: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r9, r0 + mov r2, r2, lsr #8 + bne .L588 + b .L1118 +.L621: + subs r6, r4, #4 + ldr r2, [r5, #0] + beq .L629 + mov r3, r0, asl #3 + mov r0, r2, lsr r3 + ldr r7, .L1161+12 + mov r1, #0 +.L631: + ands r3, r0, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r7] + mov r2, r1, asl #1 + add r1, r1, #1 + strneh r3, [r2, lr] @ movhi + cmp r6, r1 + mov r0, r0, lsr #8 + bne .L631 + add r3, lr, r4, asl #1 + sub lr, r3, #8 +.L629: + ldr r1, [r5, #4] + cmp r1, #0 + beq .L636 + ands r2, r1, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #8 + strneh r2, [lr, #0] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r3, r1, lsr #16 + strneh r2, [lr, #2] @ movhi + ands r2, r3, #255 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #4] @ movhi + movs r2, r1, lsr #24 + ldrne r3, .L1161+12 + movne r2, r2, asl #1 + ldrneh r2, [r2, r3] + strneh r2, [lr, #6] @ movhi + add lr, lr, #8 + b .L598 +.L547: + rsbs r4, r0, #4 + beq .L550 + ldr r5, .L1161+12 + mov r0, #0 +.L552: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, lr] @ movhi + cmp r4, r0 + mov r1, r1, asl #8 + bne .L552 + add lr, lr, r4, asl #1 +.L550: + subs r4, r9, r4 + ldr r2, [ip, #0] + beq .L1118 + ldr ip, .L1161+12 + mov r0, #0 +.L558: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r4, r0 + mov r2, r2, asl #8 + bne .L558 + b .L1118 +.L573: + rsbs r4, r0, #4 + beq .L576 + ldr r5, .L1161+12 + mov r0, #0 +.L578: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r4, r0 + mov r2, r2, lsr #8 + bne .L578 + add lr, lr, r4, asl #1 +.L576: + subs r4, r9, r4 + ldr r2, [ip, #4] + beq .L1118 + ldr ip, .L1161+12 + mov r0, #0 +.L584: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r4, r0 + mov r2, r2, lsr #8 + bne .L584 + b .L1118 + .size render_scanline_text_transparent_normal, .-render_scanline_text_transparent_normal + .align 2 + .global render_scanline_text_base_color16 + .type render_scanline_text_base_color16, %function +render_scanline_text_base_color16: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L1954 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldrh r5, [ip, #80] + add r7, r0, #7 + mov r8, r5, asr r0 + mov r7, r5, asr r7 + add r6, ip, r0, asl #2 + ldrh r4, [ip, #6] + ldrh lr, [r6, #18] + add ip, ip, r0, asl #1 + add fp, r4, lr + ldrh r9, [ip, #8] + mov sl, fp, asl #23 + rsb r2, r1, r2 + sub sp, sp, #16 + mov sl, sl, lsr #23 + cmp sl, #255 + movls r4, #0 + movhi r4, #1 + ldrh lr, [r6, #16] + str r2, [sp, #12] + mov r6, r9, lsr #14 + ldr r2, .L1954+4 + ands r4, r4, r6, lsr #1 + and r7, r7, #2 + and r8, r8, #1 + add lr, lr, r1 + orr r8, r8, r7 + mov ip, r9, asl #3 + add r7, r3, r1, asl #1 + ldr r2, [r2, r6, asl #2] + subne r3, sl, #256 + ldr r1, .L1954+8 + movne r3, r3, lsr #3 + moveq r3, fp, asl #3 + and ip, ip, #63488 + addne r3, r3, r2, lsr #3 + andeq r3, r3, #1984 + add ip, ip, r1 + mov lr, lr, asl #23 + addne r4, ip, r3, asl #6 + addeq r4, ip, r3 + mov r0, r5, lsr #12 + tst r6, #1 + mov lr, lr, lsr #23 + and r0, r0, #2 + mov r5, r5, asl #26 + andeq lr, lr, #255 + orr r0, r0, r5, lsr #31 + moveq r3, lr, lsr #3 + mov r0, r0, asl #9 + mov r8, r8, asl #9 + addeq fp, r4, r3, asl #1 + streq r4, [sp, #0] + beq .L1171 + cmp lr, #255 + subhi lr, lr, #256 + movhi r3, lr, lsr #3 + movls r3, lr, lsr #3 + addhi r3, r4, r3, asl #1 + addls fp, r4, r3, asl #1 + addls r4, r4, #2048 + addhi fp, r3, #2048 + strhi r4, [sp, #0] + strls r4, [sp, #0] +.L1171: + tst r9, #128 + beq .L1172 + mov r2, r9, asl #12 + and r3, sl, #7 + and r1, lr, #255 + mov r3, r3, asl #3 + and r2, r2, #49152 + ldr r4, [sp, #12] + rsb r9, r1, #256 + add r2, r2, r3 + ldr r1, .L1954+8 + mov r3, r3, asl #1 + rsb r3, r3, #56 + cmp r4, r9 + add r2, r2, r1 + str r3, [sp, #4] + and lr, lr, #7 + bls .L1925 + cmp lr, #0 + moveq r6, lr + bne .L1926 +.L1412: + rsb r3, r6, r9 + movs sl, r3, lsr #3 + beq .L1476 + mov lr, r7 + mov r6, #0 + b .L1478 +.L1927: + ldr r1, [r5, #4] + add r6, r6, #1 + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + streqh r0, [lr, #2] @ movhi + movs r3, r1, lsr #24 + ldr r1, [r5, #0] + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #14] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #12] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + streqh r0, [lr, #10] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + streqh r0, [lr, #8] @ movhi + cmp sl, r6 + add lr, lr, #16 + beq .L1530 +.L1928: + add fp, fp, #2 +.L1478: + ldrh r1, [fp, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r5, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + tst r1, #1024 + bne .L1927 + ldr r1, [r5, #0] + add r6, r6, #1 + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #0] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #2] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + streqh r0, [lr, #4] @ movhi + movs r3, r1, lsr #24 + ldr r1, [r5, #4] + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + streqh r0, [lr, #6] @ movhi + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + streqh r0, [lr, #12] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + streqh r0, [lr, #14] @ movhi + cmp sl, r6 + add lr, lr, #16 + bne .L1928 +.L1530: + add r7, r7, sl, asl #4 +.L1476: + ldr r4, [sp, #12] + rsb r9, r9, r4 + movs r4, r9, lsr #3 + ldreq r3, [sp, #0] + beq .L1534 + ldr r6, [sp, #0] + mov lr, r7 + mov sl, #0 + b .L1535 +.L1930: + ldr r1, [r5, #4] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + streqh r0, [lr, #2] @ movhi + movs r3, r1, lsr #24 + ldr r1, [r5, #0] + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #14] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #12] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + streqh r0, [lr, #10] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + streqh r0, [lr, #8] @ movhi + cmp r4, sl + add lr, lr, #16 + add r6, r6, #2 + beq .L1929 +.L1535: + ldrh r1, [r6, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r5, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + tst r1, #1024 + bne .L1930 + ldr r1, [r5, #0] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #0] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #2] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + streqh r0, [lr, #4] @ movhi + movs r3, r1, lsr #24 + ldr r1, [r5, #4] + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + streqh r0, [lr, #6] @ movhi + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + streqh r0, [lr, #12] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + streqh r0, [lr, #14] @ movhi + cmp r4, sl + add lr, lr, #16 + add r6, r6, #2 + bne .L1535 +.L1929: + ldr r1, [sp, #0] + add r7, r7, r4, asl #4 + add r3, r1, r4, asl #1 +.L1534: + ands lr, r9, #7 + beq .L1907 + ldrh r4, [r3, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r2, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r2, r2, r3 + tst r4, #1024 + beq .L1591 + cmp lr, #3 + ldrls r2, [r2, #4] + bhi .L1931 +.L1608: + mov r1, #0 +.L1609: + movs r3, r2, lsr #24 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, asl #8 + add r7, r7, #2 + bhi .L1609 +.L1907: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L1172: + and r1, lr, #255 + rsb r4, r1, #256 + and r3, sl, #7 + ldr r1, [sp, #12] + mov r2, r9, asl #12 + mov r3, r3, asl #2 + and r2, r2, #49152 + add r2, r2, r3 + cmp r1, r4 + mov r3, r3, asl #1 + ldr r1, .L1954+8 + rsb r3, r3, #28 + add ip, r2, r1 + str r3, [sp, #8] + and r1, lr, #7 + bls .L1932 + cmp r1, #0 + moveq r6, r1 + bne .L1933 +.L1752: + rsb r3, r6, r4 + movs r9, r3, lsr #3 + beq .L1772 + mov r3, r0, asl #16 + mov r5, r3, lsr #16 + mov lr, r7 + mov sl, #0 + b .L1774 +.L1934: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1805 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + mov r3, r2, lsr #4 + streqh r0, [lr, #14] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + mov r3, r2, lsr #8 + streqh r0, [lr, #12] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r2, lsr #12 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r2, lsr #16 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r2, lsr #20 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r2, lsr #24 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + streqh r0, [lr, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi +.L1804: + add sl, sl, #1 + cmp r9, sl + add lr, lr, #16 + beq .L1830 +.L1935: + add fp, fp, #2 +.L1774: + ldrh r1, [fp, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r6, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L1934 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1805 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + mov r3, r2, lsr #4 + streqh r0, [lr, #0] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + mov r3, r2, lsr #8 + streqh r0, [lr, #2] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r2, lsr #12 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r2, lsr #16 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r2, lsr #20 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r2, lsr #24 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + streqh r0, [lr, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, r8 + add sl, sl, #1 + strneh r3, [lr, #14] @ movhi + streqh r0, [lr, #14] @ movhi + cmp r9, sl + add lr, lr, #16 + bne .L1935 +.L1830: + add r7, r7, r9, asl #4 +.L1772: + ldr r3, [sp, #12] + rsb fp, r4, r3 + movs r4, fp, lsr #3 + ldreq r2, [sp, #0] + beq .L1834 + mov r3, r0, asl #16 + ldr sl, [sp, #0] + mov r5, r3, lsr #16 + mov lr, r7 + mov r9, #0 + b .L1835 +.L1937: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1866 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + mov r3, r2, lsr #4 + streqh r0, [lr, #14] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + mov r3, r2, lsr #8 + streqh r0, [lr, #12] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r2, lsr #12 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r2, lsr #16 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r2, lsr #20 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r2, lsr #24 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + streqh r0, [lr, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi +.L1865: + add r9, r9, #1 + cmp r4, r9 + add lr, lr, #16 + add sl, sl, #2 + beq .L1936 +.L1835: + ldrh r1, [sl, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r6, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L1937 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1866 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + mov r3, r2, lsr #4 + streqh r0, [lr, #0] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + mov r3, r2, lsr #8 + streqh r0, [lr, #2] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r2, lsr #12 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r2, lsr #16 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r2, lsr #20 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r2, lsr #24 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + streqh r0, [lr, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, r8 + add r9, r9, #1 + strneh r3, [lr, #14] @ movhi + streqh r0, [lr, #14] @ movhi + cmp r4, r9 + add lr, lr, #16 + add sl, sl, #2 + bne .L1835 +.L1936: + ldr r3, [sp, #0] + add r7, r7, r4, asl #4 + add r2, r3, r4, asl #1 +.L1834: + ands lr, fp, #7 + beq .L1907 + ldrh r4, [r2, #0] + tst r4, #2048 + mov r3, r4, asl #22 + ldrne r1, [sp, #8] + mov r3, r3, lsr #22 + add r3, ip, r3, asl #5 + addne r3, r3, r1 + mov r2, r4, lsr #12 + tst r4, #1024 + mov ip, r2, asl #4 + moveq r1, #0 + ldreq r2, [r3, #0] + beq .L1902 + ldr r2, [r3, #0] + mov r1, #0 +.L1897: + movs r3, r2, lsr #28 + orr r3, ip, r3 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, asl #4 + add r7, r7, #2 + bne .L1897 + b .L1907 +.L1932: + cmp r1, #0 + bne .L1938 +.L1637: + ldr r1, [sp, #12] + movs r4, r1, lsr #3 + beq .L1676 + mov r3, r0, asl #16 + mov r5, r3, lsr #16 + mov lr, r7 + mov sl, fp + mov r9, #0 + b .L1678 +.L1940: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1709 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + mov r3, r2, lsr #4 + streqh r0, [lr, #14] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + mov r3, r2, lsr #8 + streqh r0, [lr, #12] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r2, lsr #12 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r2, lsr #16 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r2, lsr #20 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r2, lsr #24 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + streqh r0, [lr, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi +.L1708: + add r9, r9, #1 + cmp r4, r9 + add lr, lr, #16 + add sl, sl, #2 + beq .L1939 +.L1678: + ldrh r1, [sl, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r6, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L1940 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L1709 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + mov r3, r2, lsr #4 + streqh r0, [lr, #0] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + mov r3, r2, lsr #8 + streqh r0, [lr, #2] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r2, lsr #12 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r2, lsr #16 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r2, lsr #20 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r2, lsr #24 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + streqh r0, [lr, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, r8 + add r9, r9, #1 + strneh r3, [lr, #14] @ movhi + streqh r0, [lr, #14] @ movhi + cmp r4, r9 + add lr, lr, #16 + add sl, sl, #2 + bne .L1678 +.L1939: + add r7, r7, r4, asl #4 + add fp, fp, r4, asl #1 +.L1676: + ldr r3, [sp, #12] + ands lr, r3, #7 + beq .L1907 + ldrh r1, [fp, #0] + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #8] + mov r3, r3, lsr #22 + add r3, ip, r3, asl #5 + mov r2, r1, lsr #12 + addne r3, r3, r4 + tst r1, #1024 + mov ip, r2, asl #4 + moveq r1, #0 + ldreq r2, [r3, #0] + beq .L1745 + ldr r2, [r3, #0] + mov r1, #0 +.L1740: + movs r3, r2, lsr #28 + orr r3, ip, r3 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, asl #4 + add r7, r7, #2 + bne .L1740 + b .L1907 +.L1925: + cmp lr, #0 + bne .L1941 +.L1176: + ldr r3, [sp, #12] + movs r9, r3, lsr #3 + beq .L1308 + mov lr, r7 + mov r6, fp + mov sl, #0 + b .L1310 +.L1943: + ldr r1, [r5, #4] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #6] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #4] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + streqh r0, [lr, #2] @ movhi + movs r3, r1, lsr #24 + ldr r1, [r5, #0] + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #14] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #12] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + streqh r0, [lr, #10] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + streqh r0, [lr, #8] @ movhi + cmp r9, sl + add lr, lr, #16 + add r6, r6, #2 + beq .L1942 +.L1310: + ldrh r1, [r6, #0] + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #4] + mov r3, r3, lsr #22 + add r5, r2, r3, asl #6 + addne r5, r5, r4 + tst r1, #1024 + bne .L1943 + ldr r1, [r5, #0] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #0] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #0] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #2] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #2] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #4] @ movhi + streqh r0, [lr, #4] @ movhi + movs r3, r1, lsr #24 + ldr r1, [r5, #4] + orrne r3, r3, r8 + strneh r3, [lr, #6] @ movhi + streqh r0, [lr, #6] @ movhi + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [lr, #8] @ movhi + mov r3, r1, lsr #8 + streqh r0, [lr, #8] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #10] @ movhi + mov r3, r1, lsr #16 + streqh r0, [lr, #10] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [lr, #12] @ movhi + streqh r0, [lr, #12] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [lr, #14] @ movhi + streqh r0, [lr, #14] @ movhi + cmp r9, sl + add lr, lr, #16 + add r6, r6, #2 + bne .L1310 +.L1942: + add r7, r7, r9, asl #4 + add fp, fp, r9, asl #1 +.L1308: + ldr r1, [sp, #12] + ands lr, r1, #7 + beq .L1907 + ldrh r1, [fp, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r2, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r2, r2, r3 + tst r1, #1024 + beq .L1366 + cmp lr, #3 + ldrls r2, [r2, #4] + bhi .L1944 +.L1383: + mov r1, #0 +.L1384: + movs r3, r2, lsr #24 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, asl #8 + add r7, r7, #2 + bhi .L1384 + b .L1907 +.L1805: + strh r5, [lr, #0] @ movhi + strh r5, [lr, #2] @ movhi + strh r5, [lr, #4] @ movhi + strh r5, [lr, #6] @ movhi + strh r5, [lr, #8] @ movhi + strh r5, [lr, #10] @ movhi + strh r5, [lr, #12] @ movhi + strh r5, [lr, #14] @ movhi + b .L1804 +.L1866: + strh r5, [lr, #0] @ movhi + strh r5, [lr, #2] @ movhi + strh r5, [lr, #4] @ movhi + strh r5, [lr, #6] @ movhi + strh r5, [lr, #8] @ movhi + strh r5, [lr, #10] @ movhi + strh r5, [lr, #12] @ movhi + strh r5, [lr, #14] @ movhi + b .L1865 +.L1902: + ands r3, r2, #15 + orr r3, ip, r3 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, lsr #4 + add r7, r7, #2 + bne .L1902 + b .L1907 +.L1938: + ldr r2, [sp, #12] + rsb r5, r1, #8 + cmp r2, r5 + bcs .L1639 + ldrh lr, [fp, #0] + mov r3, lr, asl #22 + mov r3, r3, lsr #22 + tst lr, #2048 + add ip, ip, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, lr, lsr #12 + addne ip, ip, r3 + tst lr, #1024 + mov r2, r2, asl #4 + bne .L1945 + ldr r4, [sp, #12] + ldr ip, [ip, #0] + cmp r4, #0 + beq .L1907 + mov r3, r1, asl #2 + mov r1, ip, lsr r3 + mov ip, #0 +.L1652: + ands r3, r1, #15 + orr r3, r2, r3 + orr r3, r3, r8 + strneh r3, [r7, #0] @ movhi + ldr r3, [sp, #12] + add ip, ip, #1 + streqh r0, [r7, #0] @ movhi + cmp r3, ip + mov r1, r1, lsr #4 + add r7, r7, #2 + bne .L1652 + b .L1907 +.L1955: + .align 2 +.L1954: + .word io_registers + .word map_widths + .word vram +.L1933: + ldrh r5, [fp, #0] + rsb r6, r1, #8 + mov r2, r5, asl #22 + mov r2, r2, lsr #22 + tst r5, #2048 + mov r3, r5, lsr #12 + mov sl, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r5, #1024 + beq .L1755 + cmp r6, #0 + ldr r2, [r3, #0] + beq .L1757 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov lr, #0 + mov r2, r7 +.L1759: + movs r3, r1, lsr #28 + orr r3, sl, r3 + orr r3, r3, r8 + add lr, lr, #1 + strneh r3, [r2, #0] @ movhi + streqh r0, [r2, #0] @ movhi + cmp r6, lr + mov r1, r1, asl #4 + add r2, r2, #2 + bne .L1759 + add r7, r7, r6, asl #1 +.L1757: + add fp, fp, #2 + b .L1752 +.L1926: + ldrh r1, [fp, #0] + rsb r6, lr, #8 + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #4] + mov r3, r3, lsr #22 + add sl, r2, r3, asl #6 + addne sl, sl, r4 + ands r5, r1, #1024 + beq .L1415 + cmp lr, #3 + bhi .L1946 + subs ip, r6, #4 + ldr r1, [sl, #4] + beq .L1427 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L1429: + movs r3, r1, lsr #24 + orr r3, r3, r8 + add r5, r5, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp ip, r5 + mov r1, r1, asl #8 + add lr, lr, #2 + bne .L1429 + add r3, r7, r6, asl #1 + sub r7, r3, #8 +.L1427: + ldr r1, [sl, #0] + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #6] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #4] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + streqh r0, [r7, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi +.L1475: + add r7, r7, #8 + mov r6, ip +.L1419: + add fp, fp, #2 + b .L1412 +.L1941: + ldr r3, [sp, #12] + rsb r4, lr, #8 + cmp r3, r4 + bcs .L1178 + ldrh r1, [fp, #0] + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #4] + mov r3, r3, lsr #22 + add ip, r2, r3, asl #6 + addne ip, ip, r4 + tst r1, #1024 + bne .L1947 + cmp lr, #3 + bls .L1215 + ldr r4, [sp, #12] + ldr r2, [ip, #4] + cmp r4, #0 + beq .L1907 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L1218: + ands r3, r1, #255 + orr r3, r3, r8 + strneh r3, [r7, #0] @ movhi + ldr r3, [sp, #12] + add r2, r2, #1 + streqh r0, [r7, #0] @ movhi + cmp r3, r2 + mov r1, r1, lsr #8 + add r7, r7, #2 + bne .L1218 + b .L1907 +.L1709: + strh r5, [lr, #0] @ movhi + strh r5, [lr, #2] @ movhi + strh r5, [lr, #4] @ movhi + strh r5, [lr, #6] @ movhi + strh r5, [lr, #8] @ movhi + strh r5, [lr, #10] @ movhi + strh r5, [lr, #12] @ movhi + strh r5, [lr, #14] @ movhi + b .L1708 +.L1745: + ands r3, r2, #15 + orr r3, ip, r3 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, lsr #4 + add r7, r7, #2 + bne .L1745 + b .L1907 +.L1591: + cmp lr, #3 + ldrls r2, [r2, #0] + bhi .L1948 +.L1629: + mov r1, #0 +.L1630: + ands r3, r2, #255 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, lsr #8 + add r7, r7, #2 + bhi .L1630 + b .L1907 +.L1366: + cmp lr, #3 + ldrls r2, [r2, #0] + bhi .L1949 +.L1404: + mov r1, #0 +.L1405: + ands r3, r2, #255 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, lsr #8 + add r7, r7, #2 + bhi .L1405 + b .L1907 +.L1755: + cmp r6, #0 + ldr r2, [r3, #0] + beq .L1757 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov lr, #0 + mov r2, r7 +.L1766: + ands r3, r1, #15 + orr r3, sl, r3 + orr r3, r3, r8 + add lr, lr, #1 + strneh r3, [r2, #0] @ movhi + streqh r0, [r2, #0] @ movhi + cmp r6, lr + mov r1, r1, lsr #4 + add r2, r2, #2 + bne .L1766 + add r7, r7, r6, asl #1 + b .L1757 +.L1639: + ldrh lr, [fp, #0] + mov r2, lr, asl #22 + mov r2, r2, lsr #22 + tst lr, #2048 + mov r3, lr, lsr #12 + mov r4, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst lr, #1024 + bne .L1950 + cmp r5, #0 + ldr r2, [r3, #0] + beq .L1661 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov lr, #0 + mov r2, r7 +.L1670: + ands r3, r1, #15 + orr r3, r4, r3 + orr r3, r3, r8 + add lr, lr, #1 + strneh r3, [r2, #0] @ movhi + streqh r0, [r2, #0] @ movhi + cmp r5, lr + mov r1, r1, lsr #4 + add r2, r2, #2 + bne .L1670 +.L1922: + add r7, r7, r5, asl #1 +.L1661: + ldr r3, [sp, #12] + add fp, fp, #2 + rsb r3, r5, r3 + str r3, [sp, #12] + b .L1637 +.L1415: + cmp lr, #3 + bhi .L1951 + subs ip, r6, #4 + ldr r1, [sl, #0] + beq .L1456 + mov r3, lr, asl #3 + mov r1, r1, lsr r3 + mov lr, r7 + mov r5, #0 +.L1458: + ands r3, r1, #255 + orr r3, r3, r8 + add r5, r5, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp ip, r5 + mov r1, r1, lsr #8 + add lr, lr, #2 + bne .L1458 + add r3, r7, r6, asl #1 + sub r7, r3, #8 +.L1456: + ldr r1, [sl, #4] + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #0] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #2] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + streqh r0, [r7, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + streqh r0, [r7, #6] @ movhi + b .L1475 +.L1178: + ldrh r1, [fp, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add ip, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + ands r5, r1, #1024 + bne .L1952 + cmp lr, #3 + bls .L1279 + cmp r4, #0 + ldr r1, [ip, #4] + beq .L1251 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov ip, r5 + mov lr, r7 +.L1282: + ands r3, r1, #255 + orr r3, r3, r8 + add ip, ip, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp r4, ip + mov r1, r1, lsr #8 + add lr, lr, #2 + bne .L1282 +.L1909: + add r7, r7, r4, asl #1 +.L1251: + ldr r1, [sp, #12] + add fp, fp, #2 + rsb r1, r4, r1 + str r1, [sp, #12] + b .L1176 +.L1948: + ldmia r2, {r1, r2} @ phole ldm + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #0] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #2] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + streqh r0, [r7, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + streqh r0, [r7, #6] @ movhi + subs lr, lr, #4 + addne r7, r7, #8 + bne .L1629 + b .L1907 +.L1931: + ldr r1, [r2, #4] + ldr r2, [r2, #0] + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #6] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #4] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + streqh r0, [r7, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + subs lr, lr, #4 + addne r7, r7, #8 + bne .L1608 + b .L1907 +.L1944: + ldr r1, [r2, #4] + ldr r2, [r2, #0] + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #6] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #4] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + streqh r0, [r7, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + subs lr, lr, #4 + addne r7, r7, #8 + bne .L1383 + b .L1907 +.L1949: + ldmia r2, {r1, r2} @ phole ldm + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #0] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #2] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + streqh r0, [r7, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + streqh r0, [r7, #6] @ movhi + subs lr, lr, #4 + addne r7, r7, #8 + bne .L1404 + b .L1907 +.L1946: + cmp r6, #0 + ldr r1, [sl, #0] + beq .L1419 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L1421: + movs r3, r1, lsr #24 + orr r3, r3, r8 + add r5, r5, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp r6, r5 + mov r1, r1, asl #8 + add lr, lr, #2 + bne .L1421 + add r7, r7, r6, asl #1 +.L1953: + add fp, fp, #2 + b .L1412 +.L1945: + ldr r4, [sp, #12] + ldr ip, [ip, #0] + cmp r4, #0 + beq .L1907 + mov r3, r1, asl #2 + mov r1, ip, asl r3 + mov ip, #0 +.L1646: + movs r3, r1, lsr #28 + orr r3, r2, r3 + orr r3, r3, r8 + strneh r3, [r7, #0] @ movhi + ldr r3, [sp, #12] + add ip, ip, #1 + streqh r0, [r7, #0] @ movhi + cmp r3, ip + mov r1, r1, asl #4 + add r7, r7, #2 + bne .L1646 + b .L1907 +.L1952: + cmp lr, #3 + bls .L1249 + cmp r4, #0 + ldr r1, [ip, #0] + beq .L1251 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L1253: + movs r3, r1, lsr #24 + orr r3, r3, r8 + add r5, r5, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp r4, r5 + mov r1, r1, asl #8 + add lr, lr, #2 + bne .L1253 + b .L1909 +.L1950: + cmp r5, #0 + ldr r2, [r3, #0] + beq .L1661 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov lr, #0 + mov r2, r7 +.L1663: + movs r3, r1, lsr #28 + orr r3, r4, r3 + orr r3, r3, r8 + add lr, lr, #1 + strneh r3, [r2, #0] @ movhi + streqh r0, [r2, #0] @ movhi + cmp r5, lr + mov r1, r1, asl #4 + add r2, r2, #2 + bne .L1663 + b .L1922 +.L1947: + cmp lr, #3 + bls .L1184 + ldr r1, [sp, #12] + ldr r2, [ip, #0] + cmp r1, #0 + beq .L1907 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, asl r3 + mov r2, #0 +.L1188: + movs r3, r1, lsr #24 + orr r3, r3, r8 + strneh r3, [r7, #0] @ movhi + ldr r3, [sp, #12] + add r2, r2, #1 + streqh r0, [r7, #0] @ movhi + cmp r3, r2 + mov r1, r1, asl #8 + add r7, r7, #2 + bne .L1188 + b .L1907 +.L1951: + cmp r6, #0 + ldr r1, [sl, #4] + beq .L1419 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov lr, r7 +.L1450: + ands r3, r1, #255 + orr r3, r3, r8 + add r5, r5, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp r6, r5 + mov r1, r1, lsr #8 + add lr, lr, #2 + bne .L1450 + add r7, r7, r6, asl #1 + b .L1953 +.L1184: + ldr r4, [sp, #12] + mov r3, lr, asl #3 + ldr r1, [ip, #4] + add r2, r4, lr + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L1193 + cmp r4, #0 + movne r2, #0 + beq .L1907 +.L1210: + movs r3, r1, lsr #24 + orr r3, r3, r8 + strneh r3, [r7, #0] @ movhi + ldr r3, [sp, #12] + add r2, r2, #1 + streqh r0, [r7, #0] @ movhi + cmp r3, r2 + mov r1, r1, asl #8 + add r7, r7, #2 + bne .L1210 + b .L1907 +.L1249: + subs r6, r4, #4 + ldr r1, [ip, #4] + beq .L1259 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L1261: + movs r3, r1, lsr #24 + orr r3, r3, r8 + add r5, r5, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp r6, r5 + mov r1, r1, asl #8 + add lr, lr, #2 + bne .L1261 + add r3, r7, r4, asl #1 + sub r7, r3, #8 +.L1259: + ldr r1, [ip, #0] + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #6] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #4] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + streqh r0, [r7, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi +.L1307: + add r7, r7, #8 + b .L1251 +.L1215: + ldr r4, [sp, #12] + ldr r3, [ip, #0] + add r2, r4, lr + cmp r2, #4 + mov r1, lr, asl #3 + mov r2, r3, lsr r1 + bhi .L1223 + cmp r4, #0 + movne r1, #0 + beq .L1907 +.L1240: + ands r3, r2, #255 + orr r3, r3, r8 + strneh r3, [r7, #0] @ movhi + ldr r3, [sp, #12] + add r1, r1, #1 + streqh r0, [r7, #0] @ movhi + cmp r3, r1 + mov r2, r2, lsr #8 + add r7, r7, #2 + bne .L1240 + b .L1907 +.L1279: + subs r6, r4, #4 + ldr r1, [ip, #0] + beq .L1288 + mov r3, lr, asl #3 + mov r1, r1, lsr r3 + mov lr, r7 + mov r5, #0 +.L1290: + ands r3, r1, #255 + orr r3, r3, r8 + add r5, r5, #1 + strneh r3, [lr, #0] @ movhi + streqh r0, [lr, #0] @ movhi + cmp r6, r5 + mov r1, r1, lsr #8 + add lr, lr, #2 + bne .L1290 + add r3, r7, r4, asl #1 + sub r7, r3, #8 +.L1288: + ldr r1, [ip, #4] + ands r3, r1, #255 + orrne r3, r3, r8 + strneh r3, [r7, #0] @ movhi + mov r3, r1, lsr #8 + streqh r0, [r7, #0] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #2] @ movhi + mov r3, r1, lsr #16 + streqh r0, [r7, #2] @ movhi + ands r3, r3, #255 + orrne r3, r3, r8 + strneh r3, [r7, #4] @ movhi + streqh r0, [r7, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, r8 + strneh r3, [r7, #6] @ movhi + bne .L1307 + strh r0, [r7, #6] @ movhi + add r7, r7, #8 + b .L1251 +.L1193: + rsbs r4, lr, #4 + beq .L1196 + mov r2, r7 + mov lr, #0 +.L1198: + movs r3, r1, lsr #24 + orr r3, r3, r8 + add lr, lr, #1 + strneh r3, [r2, #0] @ movhi + streqh r0, [r2, #0] @ movhi + cmp r4, lr + mov r1, r1, asl #8 + add r2, r2, #2 + bne .L1198 + add r7, r7, r4, asl #1 +.L1196: + ldr r1, [sp, #12] + ldr r2, [ip, #0] + subs lr, r1, r4 + beq .L1907 + mov r1, #0 +.L1205: + movs r3, r2, lsr #24 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, asl #8 + add r7, r7, #2 + bne .L1205 + b .L1907 +.L1223: + rsbs r4, lr, #4 + beq .L1226 + mov r1, r7 + mov lr, #0 +.L1228: + ands r3, r2, #255 + orr r3, r3, r8 + add lr, lr, #1 + strneh r3, [r1, #0] @ movhi + streqh r0, [r1, #0] @ movhi + cmp r4, lr + mov r2, r2, lsr #8 + add r1, r1, #2 + bne .L1228 + add r7, r7, r4, asl #1 +.L1226: + ldr r1, [sp, #12] + ldr r2, [ip, #4] + subs lr, r1, r4 + beq .L1907 + mov r1, #0 +.L1235: + ands r3, r2, #255 + orr r3, r3, r8 + add r1, r1, #1 + strneh r3, [r7, #0] @ movhi + streqh r0, [r7, #0] @ movhi + cmp lr, r1 + mov r2, r2, lsr #8 + add r7, r7, #2 + bne .L1235 + b .L1907 + .size render_scanline_text_base_color16, .-render_scanline_text_base_color16 + .align 2 + .global render_scanline_text_transparent_color16 + .type render_scanline_text_transparent_color16, %function +render_scanline_text_transparent_color16: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L2599 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldrh lr, [ip, #80] + add r6, r0, #7 + mov r6, lr, asr r6 + mov lr, lr, asr r0 + add r7, ip, r0, asl #2 + ldrh r5, [ip, #6] + ldrh r4, [r7, #18] + add ip, ip, r0, asl #1 + add sl, r5, r4 + ldrh r8, [ip, #8] + mov r5, sl, asl #23 + sub sp, sp, #8 + mov r5, r5, lsr #23 + rsb r2, r1, r2 + ldrh r4, [r7, #16] + cmp r5, #255 + movls ip, #0 + movhi ip, #1 + mov r7, r8, lsr #14 + str r2, [sp, #4] + ldr r2, .L2599+4 + ands ip, ip, r7, lsr #1 + add fp, r3, r1, asl #1 + ldr r2, [r2, r7, asl #2] + subne r3, r5, #256 + mov r0, r8, asl #3 + ldr r9, .L2599+8 + movne r3, r3, lsr #3 + moveq r3, sl, asl #3 + add r4, r4, r1 + and r0, r0, #63488 + add r0, r0, r9 + addne r3, r3, r2, lsr #3 + andeq r3, r3, #1984 + mov r4, r4, asl #23 + addne r0, r0, r3, asl #6 + addeq r0, r0, r3 + mov r4, r4, lsr #23 + tst r7, #1 + and lr, lr, #1 + and r6, r6, #2 + andeq r4, r4, #255 + orr lr, lr, r6 + moveq r3, r4, lsr #3 + mov lr, lr, asl #9 + addeq r7, r0, r3, asl #1 + streq r0, [sp, #0] + beq .L1964 + cmp r4, #255 + subhi r4, r4, #256 + movhi r3, r4, lsr #3 + movls r3, r4, lsr #3 + addhi r3, r0, r3, asl #1 + addls r7, r0, r3, asl #1 + addls r0, r0, #2048 + addhi r7, r3, #2048 + strhi r0, [sp, #0] + strls r0, [sp, #0] +.L1964: + tst r8, #128 + beq .L1965 + and r1, r4, #255 + rsb r0, r1, #256 + and r3, r5, #7 + mov r2, r8, asl #12 + ldr r1, [sp, #4] + mov r3, r3, asl #3 + and r2, r2, #49152 + add r2, r2, r3 + cmp r1, r0 + mov r3, r3, asl #1 + add r2, r2, r9 + rsb ip, r3, #56 + and r4, r4, #7 + bls .L2574 + cmp r4, #0 + moveq r8, r4 + bne .L2575 +.L2167: + rsb r3, r8, r0 + movs sl, r3, lsr #3 + beq .L2221 + mov r6, fp + mov r8, #0 + b .L2223 +.L2576: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L2228 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r6, #0] @ movhi +.L2228: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L2237 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #10] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r6, #8] @ movhi +.L2237: + add r8, r8, #1 + cmp sl, r8 + add r6, r6, #16 + beq .L2263 +.L2577: + add r7, r7, #2 +.L2223: + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r4, r2, r3, asl #6 + addne r4, r4, ip + tst r1, #1024 + bne .L2576 + ldr r1, [r4, #0] + cmp r1, #0 + beq .L2246 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r6, #6] @ movhi +.L2246: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L2237 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #8] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #10] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #12] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + add r8, r8, #1 + strneh r3, [r6, #14] @ movhi + cmp sl, r8 + add r6, r6, #16 + bne .L2577 +.L2263: + add fp, fp, sl, asl #4 +.L2221: + ldr r3, [sp, #4] + rsb sl, r0, r3 + movs r0, sl, lsr #3 + ldreq r0, [sp, #0] + beq .L2267 + ldr r7, [sp, #0] + mov r6, fp + mov r8, #0 + b .L2268 +.L2579: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L2273 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r6, #0] @ movhi +.L2273: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L2282 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #10] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r6, #8] @ movhi +.L2282: + add r8, r8, #1 + cmp r0, r8 + add r6, r6, #16 + add r7, r7, #2 + beq .L2578 +.L2268: + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r4, r2, r3, asl #6 + addne r4, r4, ip + tst r1, #1024 + bne .L2579 + ldr r1, [r4, #0] + cmp r1, #0 + beq .L2291 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r6, #6] @ movhi +.L2291: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L2282 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r6, #8] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #10] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r6, #12] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + add r8, r8, #1 + strneh r3, [r6, #14] @ movhi + cmp r0, r8 + add r6, r6, #16 + add r7, r7, #2 + bne .L2268 +.L2578: + ldr r1, [sp, #0] + add fp, fp, r0, asl #4 + add r0, r1, r0, asl #1 +.L2267: + ands r4, sl, #7 + beq .L2556 + ldrh r0, [r0, #0] + mov r3, r0, asl #22 + mov r3, r3, lsr #22 + tst r0, #2048 + add r2, r2, r3, asl #6 + addne r2, r2, ip + tst r0, #1024 + beq .L2312 + cmp r4, #3 + ldrls r0, [r2, #4] + bls .L2326 + ldr r1, [r2, #4] + cmp r1, #0 + beq .L2316 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi +.L2316: + subs r4, r4, #4 + ldr r0, [r2, #0] + addne fp, fp, #8 + beq .L2556 +.L2326: + mov r1, #0 +.L2327: + movs r3, r0, lsr #24 + mov r2, r1, asl #1 + orr r3, r3, lr + add r1, r1, #1 + strneh r3, [r2, fp] @ movhi + cmp r1, r4 + mov r0, r0, asl #8 + bcc .L2327 +.L2556: + add sp, sp, #8 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L1965: + and r1, r4, #255 + ldr ip, [sp, #4] + and r3, r5, #7 + mov r2, r8, asl #12 + mov r3, r3, asl #2 + rsb r0, r1, #256 + and r2, r2, #49152 + add r2, r2, r3 + cmp ip, r0 + mov r3, r3, asl #1 + add sl, r2, r9 + rsb ip, r3, #28 + and r1, r4, #7 + bls .L2580 + cmp r1, #0 + moveq r8, r1 + bne .L2581 +.L2441: + rsb r3, r8, r0 + movs r9, r3, lsr #3 + beq .L2459 + mov r4, fp + mov r8, #0 + b .L2461 +.L2582: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L2466 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi +.L2466: + add r8, r8, #1 + cmp r9, r8 + add r4, r4, #16 + beq .L2499 +.L2583: + add r7, r7, #2 +.L2461: + ldrh r1, [r7, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r6, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, ip + tst r1, #1024 + bne .L2582 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L2466 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, lr + add r8, r8, #1 + strneh r3, [r4, #14] @ movhi + cmp r9, r8 + add r4, r4, #16 + bne .L2583 +.L2499: + add fp, fp, r9, asl #4 +.L2459: + ldr r1, [sp, #4] + rsb r9, r0, r1 + movs r0, r9, lsr #3 + ldreq r0, [sp, #0] + beq .L2503 + ldr r7, [sp, #0] + mov r4, fp + mov r8, #0 + b .L2504 +.L2585: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L2509 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi +.L2509: + add r8, r8, #1 + cmp r0, r8 + add r4, r4, #16 + add r7, r7, #2 + beq .L2584 +.L2504: + ldrh r1, [r7, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r6, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, ip + tst r1, #1024 + bne .L2585 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L2509 + ands r3, r2, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r6, r3 + orrne r3, r3, lr + strneh r3, [r4, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r6, r3 + orrne r3, r3, lr + add r8, r8, #1 + strneh r3, [r4, #14] @ movhi + cmp r0, r8 + add r4, r4, #16 + add r7, r7, #2 + bne .L2504 +.L2584: + ldr r3, [sp, #0] + add fp, fp, r0, asl #4 + add r0, r3, r0, asl #1 +.L2503: + ands r4, r9, #7 + beq .L2556 + ldrh r0, [r0, #0] + mov r3, r0, asl #22 + mov r3, r3, lsr #22 + tst r0, #2048 + add r3, sl, r3, asl #5 + addne r3, r3, ip + mov r2, r0, lsr #12 + tst r0, #1024 + mov r2, r2, asl #4 + ldreq r0, [r3, #0] + moveq ip, #0 + beq .L2552 + ldr r0, [r3, #0] + mov ip, #0 +.L2548: + movs r3, r0, lsr #28 + orr r3, r2, r3 + mov r1, ip, asl #1 + orr r3, r3, lr + add ip, ip, #1 + strneh r3, [r1, fp] @ movhi + cmp r4, ip + mov r0, r0, asl #4 + bne .L2548 + b .L2556 +.L2580: + cmp r1, #0 + bne .L2586 +.L2350: + ldr r1, [sp, #4] + movs r0, r1, lsr #3 + beq .L2385 + mov r4, fp + mov r6, r7 + mov r8, #0 + b .L2387 +.L2588: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L2392 + ands r3, r2, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #14] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #12] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #10] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #8] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #2] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi +.L2392: + add r8, r8, #1 + cmp r0, r8 + add r4, r4, #16 + add r6, r6, #2 + beq .L2587 +.L2387: + ldrh r1, [r6, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, ip + tst r1, #1024 + bne .L2588 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L2392 + ands r3, r2, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r5, r3 + orrne r3, r3, lr + strneh r3, [r4, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r5, r3 + orrne r3, r3, lr + add r8, r8, #1 + strneh r3, [r4, #14] @ movhi + cmp r0, r8 + add r4, r4, #16 + add r6, r6, #2 + bne .L2387 +.L2587: + add fp, fp, r0, asl #4 + add r7, r7, r0, asl #1 +.L2385: + ldr r3, [sp, #4] + ands r4, r3, #7 + beq .L2556 + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, sl, r3, asl #5 + addne r0, r0, ip + mov r2, r1, lsr #12 + tst r1, #1024 + mov r2, r2, asl #4 + ldreq r0, [r0, #0] + moveq ip, #0 + beq .L2435 + ldr r0, [r0, #0] + mov ip, #0 +.L2431: + movs r3, r0, lsr #28 + orr r3, r2, r3 + mov r1, ip, asl #1 + orr r3, r3, lr + add ip, ip, #1 + strneh r3, [r1, fp] @ movhi + cmp r4, ip + mov r0, r0, asl #4 + bne .L2431 + b .L2556 +.L2574: + cmp r4, #0 + bne .L2589 +.L1969: + ldr r3, [sp, #4] + movs sl, r3, lsr #3 + beq .L2083 + mov r5, fp + mov r6, r7 + mov r8, #0 + b .L2085 +.L2591: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L2090 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r5, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r5, #0] @ movhi +.L2090: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L2099 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r5, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #10] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r5, #8] @ movhi +.L2099: + add r8, r8, #1 + cmp sl, r8 + add r5, r5, #16 + add r6, r6, #2 + beq .L2590 +.L2085: + ldrh r1, [r6, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r4, r2, r3, asl #6 + addne r4, r4, ip + tst r1, #1024 + bne .L2591 + ldr r1, [r4, #0] + cmp r1, #0 + beq .L2108 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r5, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [r5, #6] @ movhi +.L2108: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L2099 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [r5, #8] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #10] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [r5, #12] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + add r8, r8, #1 + strneh r3, [r5, #14] @ movhi + cmp sl, r8 + add r5, r5, #16 + add r6, r6, #2 + bne .L2085 +.L2590: + add fp, fp, sl, asl #4 + add r7, r7, sl, asl #1 +.L2083: + ldr r1, [sp, #4] + ands r4, r1, #7 + beq .L2556 + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, r2, r3, asl #6 + addne r0, r0, ip + tst r1, #1024 + beq .L2129 + cmp r4, #3 + ldrls r0, [r0, #4] + bls .L2143 + ldr r1, [r0, #4] + cmp r1, #0 + beq .L2133 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi +.L2133: + subs r4, r4, #4 + ldr r0, [r0, #0] + addne fp, fp, #8 + beq .L2556 +.L2143: + mov r1, #0 +.L2144: + movs r3, r0, lsr #24 + mov r2, r1, asl #1 + orr r3, r3, lr + add r1, r1, #1 + strneh r3, [r2, fp] @ movhi + cmp r4, r1 + mov r0, r0, asl #8 + bhi .L2144 + b .L2556 +.L2552: + ands r3, r0, #15 + orr r3, r2, r3 + mov r1, ip, asl #1 + orr r3, r3, lr + add ip, ip, #1 + strneh r3, [r1, fp] @ movhi + cmp r4, ip + mov r0, r0, lsr #4 + bne .L2552 + b .L2556 +.L2586: + ldr r3, [sp, #4] + rsb r5, r1, #8 + cmp r3, r5 + bcs .L2352 + ldrh r4, [r7, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r0, sl, r3, asl #5 + mov r2, r4, lsr #12 + addne r0, r0, ip + tst r4, #1024 + mov r2, r2, asl #4 + bne .L2592 + ldr r3, [sp, #4] + ldr r0, [r0, #0] + cmp r3, #0 + beq .L2556 + mov r3, r1, asl #2 + mov r0, r0, lsr r3 + mov ip, #0 +.L2364: + ands r3, r0, #15 + orr r3, r2, r3 + mov r1, ip, asl #1 + orr r3, r3, lr + strneh r3, [r1, fp] @ movhi + ldr r1, [sp, #4] + add ip, ip, #1 + cmp r1, ip + mov r0, r0, lsr #4 + bne .L2364 + b .L2556 +.L2581: + ldrh r6, [r7, #0] + rsb r8, r1, #8 + mov r2, r6, asl #22 + mov r3, r6, lsr #12 + mov r2, r2, lsr #22 + tst r6, #2048 + mov r9, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, ip + tst r6, #1024 + beq .L2444 + cmp r8, #0 + ldr r2, [r3, #0] + beq .L2446 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov r4, #0 +.L2448: + movs r3, r1, lsr #28 + orr r3, r9, r3 + mov r2, r4, asl #1 + orr r3, r3, lr + add r4, r4, #1 + strneh r3, [r2, fp] @ movhi + cmp r8, r4 + mov r1, r1, asl #4 + bne .L2448 + add fp, fp, r8, asl #1 +.L2446: + add r7, r7, #2 + b .L2441 +.L2575: + ldrh r1, [r7, #0] + rsb r8, r4, #8 + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add sl, r2, r3, asl #6 + addne sl, sl, ip + ands r6, r1, #1024 + beq .L2170 + cmp r4, #3 + bhi .L2593 + subs r5, r8, #4 + ldr r1, [sl, #4] + beq .L2181 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r6, #0 +.L2183: + movs r3, r1, lsr #24 + mov r4, r6, asl #1 + orr r3, r3, lr + add r6, r6, #1 + strneh r3, [r4, fp] @ movhi + cmp r5, r6 + mov r1, r1, asl #8 + bne .L2183 + add r3, fp, r8, asl #1 + sub fp, r3, #8 +.L2181: + ldr r1, [sl, #0] + cmp r1, #0 + beq .L2212 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi +.L2212: + add fp, fp, #8 + mov r8, r5 +.L2174: + add r7, r7, #2 + b .L2167 +.L2589: + rsb r0, r4, #8 + cmp r1, r0 + bcs .L1971 + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, r2, r3, asl #6 + addne r0, r0, ip + tst r1, #1024 + bne .L2594 + cmp r4, #3 + bls .L2004 + ldr ip, [sp, #4] + ldr r0, [r0, #4] + cmp ip, #0 + beq .L2556 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r0, r0, lsr r3 + mov r1, #0 +.L2007: + ands r3, r0, #255 + orr r3, r3, lr + mov r2, r1, asl #1 + strneh r3, [r2, fp] @ movhi + ldr r3, [sp, #4] + add r1, r1, #1 + cmp r3, r1 + mov r0, r0, lsr #8 + bne .L2007 + b .L2556 +.L2600: + .align 2 +.L2599: + .word io_registers + .word map_widths + .word vram +.L2435: + ands r3, r0, #15 + orr r3, r2, r3 + mov r1, ip, asl #1 + orr r3, r3, lr + add ip, ip, #1 + strneh r3, [r1, fp] @ movhi + cmp r4, ip + mov r0, r0, lsr #4 + bne .L2435 + b .L2556 +.L2312: + cmp r4, #3 + ldrls r0, [r2, #0] + bls .L2343 + ldr r1, [r2, #0] + cmp r1, #0 + beq .L2333 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi +.L2333: + subs r4, r4, #4 + ldr r0, [r2, #4] + addne fp, fp, #8 + beq .L2556 +.L2343: + mov r1, #0 +.L2344: + ands r3, r0, #255 + mov r2, r1, asl #1 + orr r3, r3, lr + add r1, r1, #1 + strneh r3, [r2, fp] @ movhi + cmp r1, r4 + mov r0, r0, lsr #8 + bcc .L2344 + b .L2556 +.L2129: + cmp r4, #3 + ldrls r0, [r0, #0] + bls .L2160 + ldr r1, [r0, #0] + cmp r1, #0 + beq .L2150 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi +.L2150: + subs r4, r4, #4 + ldr r0, [r0, #4] + addne fp, fp, #8 + beq .L2556 +.L2160: + mov r1, #0 +.L2161: + ands r3, r0, #255 + mov r2, r1, asl #1 + orr r3, r3, lr + add r1, r1, #1 + strneh r3, [r2, fp] @ movhi + cmp r4, r1 + mov r0, r0, lsr #8 + bhi .L2161 + b .L2556 +.L2352: + ldrh r4, [r7, #0] + mov r2, r4, asl #22 + mov r3, r4, lsr #12 + mov r2, r2, lsr #22 + tst r4, #2048 + mov r0, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, ip + tst r4, #1024 + bne .L2595 + cmp r5, #0 + ldr r2, [r3, #0] + beq .L2372 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov r4, #0 +.L2380: + ands r3, r1, #15 + orr r3, r0, r3 + mov r2, r4, asl #1 + orr r3, r3, lr + add r4, r4, #1 + strneh r3, [r2, fp] @ movhi + cmp r5, r4 + mov r1, r1, lsr #4 + bne .L2380 +.L2571: + add fp, fp, r5, asl #1 +.L2372: + ldr r3, [sp, #4] + add r7, r7, #2 + rsb r3, r5, r3 + str r3, [sp, #4] + b .L2350 +.L2444: + cmp r8, #0 + ldr r2, [r3, #0] + beq .L2446 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov r4, #0 +.L2454: + ands r3, r1, #15 + orr r3, r9, r3 + mov r2, r4, asl #1 + orr r3, r3, lr + add r4, r4, #1 + strneh r3, [r2, fp] @ movhi + cmp r8, r4 + mov r1, r1, lsr #4 + bne .L2454 + add fp, fp, r8, asl #1 + b .L2446 +.L2170: + cmp r4, #3 + bhi .L2596 + subs r5, r8, #4 + ldr r1, [sl, #0] + beq .L2205 + mov r3, r4, asl #3 + mov r1, r1, lsr r3 + mov r6, #0 +.L2207: + ands r3, r1, #255 + mov r4, r6, asl #1 + orr r3, r3, lr + add r6, r6, #1 + strneh r3, [r4, fp] @ movhi + cmp r5, r6 + mov r1, r1, lsr #8 + bne .L2207 + add r3, fp, r8, asl #1 + sub fp, r3, #8 +.L2205: + ldr r1, [sl, #4] + cmp r1, #0 + beq .L2212 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi + b .L2212 +.L1971: + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r6, r2, r3, asl #6 + addne r6, r6, ip + ands r5, r1, #1024 + bne .L2597 + cmp r4, #3 + bls .L2059 + cmp r0, #0 + ldr r1, [r6, #4] + beq .L2036 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 +.L2062: + ands r3, r1, #255 + mov r4, r5, asl #1 + orr r3, r3, lr + add r5, r5, #1 + strneh r3, [r4, fp] @ movhi + cmp r0, r5 + mov r1, r1, lsr #8 + bne .L2062 +.L2558: + add fp, fp, r0, asl #1 +.L2036: + ldr r1, [sp, #4] + add r7, r7, #2 + rsb r1, r0, r1 + str r1, [sp, #4] + b .L1969 +.L2593: + cmp r8, #0 + ldr r1, [sl, #0] + beq .L2174 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r6, #0 +.L2176: + movs r3, r1, lsr #24 + mov r4, r6, asl #1 + orr r3, r3, lr + add r6, r6, #1 + strneh r3, [r4, fp] @ movhi + cmp r8, r6 + mov r1, r1, asl #8 + bne .L2176 + add fp, fp, r8, asl #1 +.L2598: + add r7, r7, #2 + b .L2167 +.L2592: + ldr ip, [sp, #4] + ldr r0, [r0, #0] + cmp ip, #0 + beq .L2556 + mov r3, r1, asl #2 + mov r0, r0, asl r3 + mov ip, #0 +.L2359: + movs r3, r0, lsr #28 + orr r3, r2, r3 + mov r1, ip, asl #1 + orr r3, r3, lr + strneh r3, [r1, fp] @ movhi + ldr r1, [sp, #4] + add ip, ip, #1 + cmp r1, ip + mov r0, r0, asl #4 + bne .L2359 + b .L2556 +.L2597: + cmp r4, #3 + bls .L2034 + cmp r0, #0 + ldr r1, [r6, #0] + beq .L2036 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r5, #0 +.L2038: + movs r3, r1, lsr #24 + mov r4, r5, asl #1 + orr r3, r3, lr + add r5, r5, #1 + strneh r3, [r4, fp] @ movhi + cmp r0, r5 + mov r1, r1, asl #8 + bne .L2038 + b .L2558 +.L2595: + cmp r5, #0 + ldr r2, [r3, #0] + beq .L2372 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov r4, #0 +.L2374: + movs r3, r1, lsr #28 + orr r3, r0, r3 + mov r2, r4, asl #1 + orr r3, r3, lr + add r4, r4, #1 + strneh r3, [r2, fp] @ movhi + cmp r5, r4 + mov r1, r1, asl #4 + bne .L2374 + b .L2571 +.L2594: + cmp r4, #3 + bls .L1977 + ldr r3, [sp, #4] + ldr r0, [r0, #0] + cmp r3, #0 + beq .L2556 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r0, r0, asl r3 + mov r1, #0 +.L1981: + movs r3, r0, lsr #24 + ldr ip, [sp, #4] + mov r2, r1, asl #1 + orr r3, r3, lr + add r1, r1, #1 + strneh r3, [r2, fp] @ movhi + cmp ip, r1 + mov r0, r0, asl #8 + bne .L1981 + b .L2556 +.L2596: + cmp r8, #0 + ldr r1, [sl, #4] + beq .L2174 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 +.L2200: + ands r3, r1, #255 + mov r4, r6, asl #1 + orr r3, r3, lr + add r6, r6, #1 + strneh r3, [r4, fp] @ movhi + cmp r8, r6 + mov r1, r1, lsr #8 + bne .L2200 + add fp, fp, r8, asl #1 + b .L2598 +.L1977: + ldr ip, [sp, #4] + mov r3, r4, asl #3 + ldr r1, [r0, #4] + add r2, ip, r4 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L1985 + cmp ip, #0 + movne r0, #0 + beq .L2556 +.L2000: + movs r3, r1, lsr #24 + orr r3, r3, lr + mov r2, r0, asl #1 + strneh r3, [r2, fp] @ movhi + ldr r3, [sp, #4] + add r0, r0, #1 + cmp r3, r0 + mov r1, r1, asl #8 + bne .L2000 + b .L2556 +.L2034: + subs r8, r0, #4 + ldr r1, [r6, #4] + beq .L2043 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r5, #0 +.L2045: + movs r3, r1, lsr #24 + mov r4, r5, asl #1 + orr r3, r3, lr + add r5, r5, #1 + strneh r3, [r4, fp] @ movhi + cmp r8, r5 + mov r1, r1, asl #8 + bne .L2045 + add r3, fp, r0, asl #1 + sub fp, r3, #8 +.L2043: + ldr r1, [r6, #0] + cmp r1, #0 + beq .L2074 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi +.L2074: + add fp, fp, #8 + b .L2036 +.L2004: + ldr ip, [sp, #4] + ldr r3, [r0, #0] + add r2, ip, r4 + cmp r2, #4 + mov r1, r4, asl #3 + mov r2, r3, lsr r1 + bhi .L2011 + cmp ip, #0 + movne r0, #0 + beq .L2556 +.L2026: + ands r3, r2, #255 + orr r3, r3, lr + mov r1, r0, asl #1 + strneh r3, [r1, fp] @ movhi + ldr r3, [sp, #4] + add r0, r0, #1 + cmp r3, r0 + mov r2, r2, lsr #8 + bne .L2026 + b .L2556 +.L2059: + subs r8, r0, #4 + ldr r1, [r6, #0] + beq .L2067 + mov r3, r4, asl #3 + mov r1, r1, lsr r3 + mov r5, #0 +.L2069: + ands r3, r1, #255 + mov r4, r5, asl #1 + orr r3, r3, lr + add r5, r5, #1 + strneh r3, [r4, fp] @ movhi + cmp r8, r5 + mov r1, r1, lsr #8 + bne .L2069 + add r3, fp, r0, asl #1 + sub fp, r3, #8 +.L2067: + ldr r1, [r6, #4] + cmp r1, #0 + beq .L2074 + ands r3, r1, #255 + orrne r3, r3, lr + strneh r3, [fp, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, r3, lr + strneh r3, [fp, #4] @ movhi + movs r3, r1, lsr #24 + orrne r3, r3, lr + strneh r3, [fp, #6] @ movhi + add fp, fp, #8 + b .L2036 +.L1985: + rsbs r4, r4, #4 + beq .L1988 + mov ip, #0 +.L1990: + movs r3, r1, lsr #24 + mov r2, ip, asl #1 + orr r3, r3, lr + add ip, ip, #1 + strneh r3, [r2, fp] @ movhi + cmp r4, ip + mov r1, r1, asl #8 + bne .L1990 + add fp, fp, r4, asl #1 +.L1988: + ldr r1, [sp, #4] + ldr r0, [r0, #0] + subs ip, r1, r4 + beq .L2556 + mov r1, #0 +.L1996: + movs r3, r0, lsr #24 + mov r2, r1, asl #1 + orr r3, r3, lr + add r1, r1, #1 + strneh r3, [r2, fp] @ movhi + cmp ip, r1 + mov r0, r0, asl #8 + bne .L1996 + b .L2556 +.L2011: + rsbs r4, r4, #4 + beq .L2014 + mov ip, #0 +.L2016: + ands r3, r2, #255 + mov r1, ip, asl #1 + orr r3, r3, lr + add ip, ip, #1 + strneh r3, [r1, fp] @ movhi + cmp r4, ip + mov r2, r2, lsr #8 + bne .L2016 + add fp, fp, r4, asl #1 +.L2014: + ldr r1, [sp, #4] + ldr r0, [r0, #4] + subs ip, r1, r4 + beq .L2556 + mov r1, #0 +.L2022: + ands r3, r0, #255 + mov r2, r1, asl #1 + orr r3, r3, lr + add r1, r1, #1 + strneh r3, [r2, fp] @ movhi + cmp ip, r1 + mov r0, r0, lsr #8 + bne .L2022 + b .L2556 + .size render_scanline_text_transparent_color16, .-render_scanline_text_transparent_color16 + .align 2 + .global render_scanline_text_base_color32 + .type render_scanline_text_base_color32, %function +render_scanline_text_base_color32: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L3398 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldrh r5, [ip, #80] + add r7, r0, #7 + mov r8, r5, asr r0 + mov r7, r5, asr r7 + add r6, ip, r0, asl #2 + ldrh r4, [ip, #6] + ldrh lr, [r6, #18] + add ip, ip, r0, asl #1 + add fp, r4, lr + ldrh r9, [ip, #8] + mov sl, fp, asl #23 + rsb r2, r1, r2 + sub sp, sp, #16 + mov sl, sl, lsr #23 + cmp sl, #255 + movls r4, #0 + movhi r4, #1 + ldrh lr, [r6, #16] + str r2, [sp, #12] + mov r6, r9, lsr #14 + ldr r2, .L3398+4 + ands r4, r4, r6, lsr #1 + and r7, r7, #2 + and r8, r8, #1 + add lr, lr, r1 + orr r8, r8, r7 + mov ip, r9, asl #3 + add r7, r3, r1, asl #2 + ldr r2, [r2, r6, asl #2] + subne r3, sl, #256 + ldr r1, .L3398+8 + movne r3, r3, lsr #3 + moveq r3, fp, asl #3 + and ip, ip, #63488 + addne r3, r3, r2, lsr #3 + andeq r3, r3, #1984 + add ip, ip, r1 + mov lr, lr, asl #23 + addne r4, ip, r3, asl #6 + addeq r4, ip, r3 + mov r0, r5, lsr #12 + tst r6, #1 + mov lr, lr, lsr #23 + and r0, r0, #2 + mov r5, r5, asl #26 + andeq lr, lr, #255 + orr r0, r0, r5, lsr #31 + moveq r3, lr, lsr #3 + mov r0, r0, asl #9 + mov r8, r8, asl #9 + addeq fp, r4, r3, asl #1 + streq r4, [sp, #0] + beq .L2609 + cmp lr, #255 + subhi lr, lr, #256 + movhi r3, lr, lsr #3 + movls r3, lr, lsr #3 + addhi r3, r4, r3, asl #1 + addls fp, r4, r3, asl #1 + addls r4, r4, #2048 + addhi fp, r3, #2048 + strhi r4, [sp, #0] + strls r4, [sp, #0] +.L2609: + tst r9, #128 + beq .L2610 + mov r2, r9, asl #12 + and r3, sl, #7 + and r1, lr, #255 + mov r3, r3, asl #3 + and r2, r2, #49152 + ldr r4, [sp, #12] + rsb r9, r1, #256 + add r2, r2, r3 + ldr r1, .L3398+8 + mov r3, r3, asl #1 + rsb r3, r3, #56 + cmp r4, r9 + add r2, r2, r1 + str r3, [sp, #4] + and lr, lr, #7 + bls .L3366 + cmp lr, #0 + moveq r6, lr + bne .L3367 +.L2850: + rsb r3, r6, r9 + movs sl, r3, lsr #3 + beq .L2914 + mov lr, r7 + mov r6, #0 + b .L2916 +.L3368: + ldr r1, [r5, #4] + add r6, r6, #1 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #12] + mov r3, r1, lsr #8 + streq r0, [lr, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #8] + mov r3, r1, lsr #16 + streq r0, [lr, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #4] + streq r0, [lr, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #0] + streq r0, [lr, #0] + ldr r1, [r5, #0] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #28] + mov r3, r1, lsr #8 + streq r0, [lr, #28] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #24] + mov r3, r1, lsr #16 + streq r0, [lr, #24] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #20] + streq r0, [lr, #20] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #16] + streq r0, [lr, #16] + cmp sl, r6 + add lr, lr, #32 + beq .L2968 +.L3369: + add fp, fp, #2 +.L2916: + ldrh r1, [fp, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r5, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + tst r1, #1024 + bne .L3368 + ldr r1, [r5, #0] + add r6, r6, #1 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #0] + mov r3, r1, lsr #8 + streq r0, [lr, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #4] + mov r3, r1, lsr #16 + streq r0, [lr, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #8] + streq r0, [lr, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #12] + streq r0, [lr, #12] + ldr r1, [r5, #4] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #16] + mov r3, r1, lsr #8 + streq r0, [lr, #16] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #20] + mov r3, r1, lsr #16 + streq r0, [lr, #20] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #24] + streq r0, [lr, #24] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #28] + streq r0, [lr, #28] + cmp sl, r6 + add lr, lr, #32 + bne .L3369 +.L2968: + add r7, r7, sl, asl #5 +.L2914: + ldr r4, [sp, #12] + rsb r9, r9, r4 + movs r4, r9, lsr #3 + ldreq r3, [sp, #0] + beq .L2972 + ldr r6, [sp, #0] + mov lr, r7 + mov sl, #0 + b .L2973 +.L3371: + ldr r1, [r5, #4] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #12] + mov r3, r1, lsr #8 + streq r0, [lr, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #8] + mov r3, r1, lsr #16 + streq r0, [lr, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #4] + streq r0, [lr, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #0] + streq r0, [lr, #0] + ldr r1, [r5, #0] + add r6, r6, #2 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #28] + mov r3, r1, lsr #8 + streq r0, [lr, #28] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #24] + mov r3, r1, lsr #16 + streq r0, [lr, #24] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #20] + streq r0, [lr, #20] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #16] + streq r0, [lr, #16] + cmp r4, sl + add lr, lr, #32 + beq .L3370 +.L2973: + ldrh r1, [r6, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r5, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + tst r1, #1024 + bne .L3371 + ldr r1, [r5, #0] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #0] + mov r3, r1, lsr #8 + streq r0, [lr, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #4] + mov r3, r1, lsr #16 + streq r0, [lr, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #8] + streq r0, [lr, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #12] + streq r0, [lr, #12] + ldr r1, [r5, #4] + add r6, r6, #2 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #16] + mov r3, r1, lsr #8 + streq r0, [lr, #16] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #20] + mov r3, r1, lsr #16 + streq r0, [lr, #20] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #24] + streq r0, [lr, #24] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #28] + streq r0, [lr, #28] + cmp r4, sl + add lr, lr, #32 + bne .L2973 +.L3370: + ldr r1, [sp, #0] + add r7, r7, r4, asl #5 + add r3, r1, r4, asl #1 +.L2972: + ands lr, r9, #7 + beq .L3345 + ldrh r4, [r3, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r2, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r2, r2, r3 + tst r4, #1024 + beq .L3029 + cmp lr, #3 + ldrls r2, [r2, #4] + bhi .L3372 +.L3046: + mov r1, #0 +.L3047: + movs r3, r2, lsr #24 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp r1, lr + mov r2, r2, asl #8 + add r7, r7, #4 + bcc .L3047 +.L3345: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L2610: + mov r2, r9, asl #12 + and r3, sl, #7 + and r1, lr, #255 + mov r3, r3, asl #2 + and r2, r2, #49152 + ldr r4, [sp, #12] + rsb r9, r1, #256 + add r2, r2, r3 + ldr r1, .L3398+8 + mov r3, r3, asl #1 + rsb r3, r3, #28 + cmp r4, r9 + add ip, r2, r1 + str r3, [sp, #8] + and r1, lr, #7 + bls .L3373 + cmp r1, #0 + moveq r6, r1 + bne .L3374 +.L3190: + rsb r3, r6, r9 + movs sl, r3, lsr #3 + beq .L3210 + mov lr, r7 + mov r6, #0 + b .L3212 +.L3375: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3243 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #28] + mov r3, r2, lsr #4 + streq r0, [lr, #28] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #24] + mov r3, r2, lsr #8 + streq r0, [lr, #24] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #20] + mov r3, r2, lsr #12 + streq r0, [lr, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #16] + mov r3, r2, lsr #16 + streq r0, [lr, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #12] + mov r3, r2, lsr #20 + streq r0, [lr, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #8] + mov r3, r2, lsr #24 + streq r0, [lr, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #4] + streq r0, [lr, #4] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L3242: + add r6, r6, #1 + cmp sl, r6 + add lr, lr, #32 + beq .L3268 +.L3376: + add fp, fp, #2 +.L3212: + ldrh r1, [fp, #0] + tst r1, #2048 + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + ldrne r4, [sp, #8] + mov r2, r2, lsr #22 + mov r5, r3, asl #4 + add r3, ip, r2, asl #5 + addne r3, r3, r4 + tst r1, #1024 + bne .L3375 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3243 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #0] + mov r3, r2, lsr #4 + streq r0, [lr, #0] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #4] + mov r3, r2, lsr #8 + streq r0, [lr, #4] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #8] + mov r3, r2, lsr #12 + streq r0, [lr, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #12] + mov r3, r2, lsr #16 + streq r0, [lr, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #16] + mov r3, r2, lsr #20 + streq r0, [lr, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #20] + mov r3, r2, lsr #24 + streq r0, [lr, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #24] + streq r0, [lr, #24] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #28] + bne .L3242 + str r0, [lr, #28] +.L3386: + add r6, r6, #1 + cmp sl, r6 + add lr, lr, #32 + bne .L3376 +.L3268: + add r7, r7, sl, asl #5 +.L3210: + ldr r1, [sp, #12] + rsb r9, r9, r1 + movs r4, r9, lsr #3 + ldreq r2, [sp, #0] + beq .L3272 + ldr r6, [sp, #0] + mov lr, r7 + mov sl, #0 + b .L3273 +.L3378: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3304 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #28] + mov r3, r2, lsr #4 + streq r0, [lr, #28] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #24] + mov r3, r2, lsr #8 + streq r0, [lr, #24] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #20] + mov r3, r2, lsr #12 + streq r0, [lr, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #16] + mov r3, r2, lsr #16 + streq r0, [lr, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #12] + mov r3, r2, lsr #20 + streq r0, [lr, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #8] + mov r3, r2, lsr #24 + streq r0, [lr, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #4] + streq r0, [lr, #4] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L3303: + add sl, sl, #1 + cmp r4, sl + add lr, lr, #32 + add r6, r6, #2 + beq .L3377 +.L3273: + ldrh r1, [r6, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r5, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L3378 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3304 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #0] + mov r3, r2, lsr #4 + streq r0, [lr, #0] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #4] + mov r3, r2, lsr #8 + streq r0, [lr, #4] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #8] + mov r3, r2, lsr #12 + streq r0, [lr, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #12] + mov r3, r2, lsr #16 + streq r0, [lr, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #16] + mov r3, r2, lsr #20 + streq r0, [lr, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #20] + mov r3, r2, lsr #24 + streq r0, [lr, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #24] + streq r0, [lr, #24] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #28] + bne .L3303 + str r0, [lr, #28] +.L3387: + add sl, sl, #1 + cmp r4, sl + add lr, lr, #32 + add r6, r6, #2 + bne .L3273 +.L3377: + ldr r3, [sp, #0] + add r7, r7, r4, asl #5 + add r2, r3, r4, asl #1 +.L3272: + ands lr, r9, #7 + beq .L3345 + ldrh r4, [r2, #0] + tst r4, #2048 + mov r3, r4, asl #22 + ldrne r1, [sp, #8] + mov r3, r3, lsr #22 + add r3, ip, r3, asl #5 + addne r3, r3, r1 + mov r2, r4, lsr #12 + tst r4, #1024 + mov ip, r2, asl #4 + moveq r1, #0 + ldreq r2, [r3, #0] + beq .L3340 + ldr r2, [r3, #0] + mov r1, #0 +.L3335: + movs r3, r2, lsr #28 + orr r3, r8, r3 + orr r3, ip, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, asl #4 + add r7, r7, #4 + bne .L3335 + b .L3345 +.L3373: + cmp r1, #0 + bne .L3379 +.L3075: + ldr r4, [sp, #12] + movs r9, r4, lsr #3 + beq .L3114 + mov lr, r7 + mov r6, fp + mov sl, #0 + b .L3116 +.L3381: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3147 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #28] + mov r3, r2, lsr #4 + streq r0, [lr, #28] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #24] + mov r3, r2, lsr #8 + streq r0, [lr, #24] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #20] + mov r3, r2, lsr #12 + streq r0, [lr, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #16] + mov r3, r2, lsr #16 + streq r0, [lr, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #12] + mov r3, r2, lsr #20 + streq r0, [lr, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #8] + mov r3, r2, lsr #24 + streq r0, [lr, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #4] + streq r0, [lr, #4] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L3146: + add sl, sl, #1 + cmp r9, sl + add lr, lr, #32 + add r6, r6, #2 + beq .L3380 +.L3116: + ldrh r1, [r6, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r5, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L3381 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3147 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #0] + mov r3, r2, lsr #4 + streq r0, [lr, #0] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #4] + mov r3, r2, lsr #8 + streq r0, [lr, #4] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #8] + mov r3, r2, lsr #12 + streq r0, [lr, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #12] + mov r3, r2, lsr #16 + streq r0, [lr, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #16] + mov r3, r2, lsr #20 + streq r0, [lr, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #20] + mov r3, r2, lsr #24 + streq r0, [lr, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #24] + streq r0, [lr, #24] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r5, r3 + strne r3, [lr, #28] + bne .L3146 + str r0, [lr, #28] +.L3391: + add sl, sl, #1 + cmp r9, sl + add lr, lr, #32 + add r6, r6, #2 + bne .L3116 +.L3380: + add r7, r7, r9, asl #5 + add fp, fp, r9, asl #1 +.L3114: + ldr r3, [sp, #12] + ands lr, r3, #7 + beq .L3345 + ldrh r1, [fp, #0] + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #8] + mov r3, r3, lsr #22 + add r3, ip, r3, asl #5 + mov r2, r1, lsr #12 + addne r3, r3, r4 + tst r1, #1024 + mov ip, r2, asl #4 + moveq r1, #0 + ldreq r2, [r3, #0] + beq .L3183 + ldr r2, [r3, #0] + mov r1, #0 +.L3178: + movs r3, r2, lsr #28 + orr r3, r8, r3 + orr r3, ip, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, asl #4 + add r7, r7, #4 + bne .L3178 + b .L3345 +.L3366: + cmp lr, #0 + bne .L3382 +.L2614: + ldr r3, [sp, #12] + movs r9, r3, lsr #3 + beq .L2746 + mov lr, r7 + mov r6, fp + mov sl, #0 + b .L2748 +.L3384: + ldr r1, [r5, #4] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #12] + mov r3, r1, lsr #8 + streq r0, [lr, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #8] + mov r3, r1, lsr #16 + streq r0, [lr, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #4] + streq r0, [lr, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #0] + streq r0, [lr, #0] + ldr r1, [r5, #0] + add r6, r6, #2 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #28] + mov r3, r1, lsr #8 + streq r0, [lr, #28] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #24] + mov r3, r1, lsr #16 + streq r0, [lr, #24] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #20] + streq r0, [lr, #20] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #16] + streq r0, [lr, #16] + cmp r9, sl + add lr, lr, #32 + beq .L3383 +.L2748: + ldrh r1, [r6, #0] + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #4] + mov r3, r3, lsr #22 + add r5, r2, r3, asl #6 + addne r5, r5, r4 + tst r1, #1024 + bne .L3384 + ldr r1, [r5, #0] + add sl, sl, #1 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #0] + mov r3, r1, lsr #8 + streq r0, [lr, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #4] + mov r3, r1, lsr #16 + streq r0, [lr, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #8] + streq r0, [lr, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #12] + streq r0, [lr, #12] + ldr r1, [r5, #4] + add r6, r6, #2 + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [lr, #16] + mov r3, r1, lsr #8 + streq r0, [lr, #16] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #20] + mov r3, r1, lsr #16 + streq r0, [lr, #20] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [lr, #24] + streq r0, [lr, #24] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [lr, #28] + streq r0, [lr, #28] + cmp r9, sl + add lr, lr, #32 + bne .L2748 +.L3383: + add r7, r7, r9, asl #5 + add fp, fp, r9, asl #1 +.L2746: + ldr r1, [sp, #12] + ands lr, r1, #7 + beq .L3345 + ldrh r1, [fp, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r2, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne r2, r2, r3 + tst r1, #1024 + beq .L2804 + cmp lr, #3 + ldrls r2, [r2, #4] + bhi .L3385 +.L2821: + mov r1, #0 +.L2822: + movs r3, r2, lsr #24 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, asl #8 + add r7, r7, #4 + bhi .L2822 + b .L3345 +.L3243: + str r0, [lr, #0] + str r0, [lr, #4] + str r0, [lr, #8] + str r0, [lr, #12] + str r0, [lr, #16] + str r0, [lr, #20] + str r0, [lr, #24] + str r0, [lr, #28] + b .L3386 +.L3304: + str r0, [lr, #0] + str r0, [lr, #4] + str r0, [lr, #8] + str r0, [lr, #12] + str r0, [lr, #16] + str r0, [lr, #20] + str r0, [lr, #24] + str r0, [lr, #28] + b .L3387 +.L3340: + ands r3, r2, #15 + orr r3, r8, r3 + orr r3, ip, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, lsr #4 + add r7, r7, #4 + bne .L3340 + b .L3345 +.L3379: + rsb r5, r1, #8 + cmp r4, r5 + bcs .L3077 + ldrh lr, [fp, #0] + mov r3, lr, asl #22 + mov r3, r3, lsr #22 + tst lr, #2048 + add ip, ip, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, lr, lsr #12 + addne ip, ip, r3 + tst lr, #1024 + mov r2, r2, asl #4 + bne .L3388 + ldr r4, [sp, #12] + ldr ip, [ip, #0] + cmp r4, #0 + beq .L3345 + mov r3, r1, asl #2 + mov r1, ip, lsr r3 + mov ip, #0 +.L3090: + ands r3, r1, #15 + orr r3, r8, r3 + orr r3, r2, r3 + strne r3, [r7, #0] + ldr r3, [sp, #12] + add ip, ip, #1 + streq r0, [r7, #0] + cmp r3, ip + mov r1, r1, lsr #4 + add r7, r7, #4 + bne .L3090 + b .L3345 +.L3374: + ldrh r5, [fp, #0] + rsb r6, r1, #8 + mov r2, r5, asl #22 + mov r2, r2, lsr #22 + tst r5, #2048 + mov r3, r5, lsr #12 + mov sl, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r5, #1024 + beq .L3193 + cmp r6, #0 + ldr r2, [r3, #0] + beq .L3195 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov lr, #0 + mov r2, r7 +.L3197: + movs r3, r1, lsr #28 + orr r3, r8, r3 + orr r3, sl, r3 + add lr, lr, #1 + strne r3, [r2, #0] + streq r0, [r2, #0] + cmp r6, lr + mov r1, r1, asl #4 + add r2, r2, #4 + bne .L3197 + add r7, r7, r6, asl #2 +.L3195: + add fp, fp, #2 + b .L3190 +.L3399: + .align 2 +.L3398: + .word io_registers + .word map_widths + .word vram +.L3367: + ldrh r1, [fp, #0] + rsb r6, lr, #8 + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #4] + mov r3, r3, lsr #22 + add sl, r2, r3, asl #6 + addne sl, sl, r4 + ands r5, r1, #1024 + beq .L2853 + cmp lr, #3 + bhi .L3389 + subs ip, r6, #4 + ldr r1, [sl, #4] + beq .L2865 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L2867: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r5, r5, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp ip, r5 + mov r1, r1, asl #8 + add lr, lr, #4 + bne .L2867 + add r3, r7, r6, asl #2 + sub r7, r3, #16 +.L2865: + ldr r1, [sl, #0] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #12] + mov r3, r1, lsr #8 + streq r0, [r7, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + mov r3, r1, lsr #16 + streq r0, [r7, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + streq r0, [r7, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #0] + streq r0, [r7, #0] +.L2913: + add r7, r7, #16 + mov r6, ip +.L2857: + add fp, fp, #2 + b .L2850 +.L3382: + ldr r3, [sp, #12] + rsb r4, lr, #8 + cmp r3, r4 + bcs .L2616 + ldrh r1, [fp, #0] + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r4, [sp, #4] + mov r3, r3, lsr #22 + add ip, r2, r3, asl #6 + addne ip, ip, r4 + tst r1, #1024 + bne .L3390 + cmp lr, #3 + bls .L2653 + ldr r4, [sp, #12] + ldr r2, [ip, #4] + cmp r4, #0 + beq .L3345 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L2656: + ands r3, r1, #255 + orr r3, r8, r3 + strne r3, [r7, #0] + ldr r3, [sp, #12] + add r2, r2, #1 + streq r0, [r7, #0] + cmp r3, r2 + mov r1, r1, lsr #8 + add r7, r7, #4 + bne .L2656 + b .L3345 +.L3147: + str r0, [lr, #0] + str r0, [lr, #4] + str r0, [lr, #8] + str r0, [lr, #12] + str r0, [lr, #16] + str r0, [lr, #20] + str r0, [lr, #24] + str r0, [lr, #28] + b .L3391 +.L3183: + ands r3, r2, #15 + orr r3, r8, r3 + orr r3, ip, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, lsr #4 + add r7, r7, #4 + bne .L3183 + b .L3345 +.L3029: + cmp lr, #3 + ldrls r2, [r2, #0] + bhi .L3392 +.L3067: + mov r1, #0 +.L3068: + ands r3, r2, #255 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, lsr #8 + add r7, r7, #4 + bhi .L3068 + b .L3345 +.L2804: + cmp lr, #3 + ldrls r2, [r2, #0] + bhi .L3393 +.L2842: + mov r1, #0 +.L2843: + ands r3, r2, #255 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, lsr #8 + add r7, r7, #4 + bhi .L2843 + b .L3345 +.L3193: + cmp r6, #0 + ldr r2, [r3, #0] + beq .L3195 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov lr, #0 + mov r2, r7 +.L3204: + ands r3, r1, #15 + orr r3, r8, r3 + orr r3, sl, r3 + add lr, lr, #1 + strne r3, [r2, #0] + streq r0, [r2, #0] + cmp r6, lr + mov r1, r1, lsr #4 + add r2, r2, #4 + bne .L3204 + add r7, r7, r6, asl #2 + b .L3195 +.L3077: + ldrh lr, [fp, #0] + mov r2, lr, asl #22 + mov r2, r2, lsr #22 + tst lr, #2048 + mov r3, lr, lsr #12 + mov r4, r3, asl #4 + add r3, ip, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst lr, #1024 + bne .L3394 + cmp r5, #0 + ldr r2, [r3, #0] + beq .L3099 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov lr, #0 + mov r2, r7 +.L3108: + ands r3, r1, #15 + orr r3, r8, r3 + orr r3, r4, r3 + add lr, lr, #1 + strne r3, [r2, #0] + streq r0, [r2, #0] + cmp r5, lr + mov r1, r1, lsr #4 + add r2, r2, #4 + bne .L3108 +.L3360: + add r7, r7, r5, asl #2 +.L3099: + ldr r3, [sp, #12] + add fp, fp, #2 + rsb r3, r5, r3 + str r3, [sp, #12] + b .L3075 +.L2853: + cmp lr, #3 + bhi .L3395 + subs ip, r6, #4 + ldr r1, [sl, #0] + beq .L2894 + mov r3, lr, asl #3 + mov r1, r1, lsr r3 + mov lr, r7 + mov r5, #0 +.L2896: + ands r3, r1, #255 + orr r3, r8, r3 + add r5, r5, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp ip, r5 + mov r1, r1, lsr #8 + add lr, lr, #4 + bne .L2896 + add r3, r7, r6, asl #2 + sub r7, r3, #16 +.L2894: + ldr r1, [sl, #4] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #0] + mov r3, r1, lsr #8 + streq r0, [r7, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + mov r3, r1, lsr #16 + streq r0, [r7, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + streq r0, [r7, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #12] + streq r0, [r7, #12] + b .L2913 +.L2616: + ldrh r1, [fp, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add ip, r2, r3, asl #6 + ldrne r3, [sp, #4] + addne ip, ip, r3 + ands r5, r1, #1024 + bne .L3396 + cmp lr, #3 + bls .L2717 + cmp r4, #0 + ldr r1, [ip, #4] + beq .L2689 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov ip, r5 + mov lr, r7 +.L2720: + ands r3, r1, #255 + orr r3, r8, r3 + add ip, ip, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp r4, ip + mov r1, r1, lsr #8 + add lr, lr, #4 + bne .L2720 +.L3347: + add r7, r7, r4, asl #2 +.L2689: + ldr r1, [sp, #12] + add fp, fp, #2 + rsb r1, r4, r1 + str r1, [sp, #12] + b .L2614 +.L3392: + ldr r1, [r2, #0] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #0] + mov r3, r1, lsr #8 + streq r0, [r7, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + mov r3, r1, lsr #16 + streq r0, [r7, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + streq r0, [r7, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #12] + streq r0, [r7, #12] + subs lr, lr, #4 + ldr r2, [r2, #4] + addne r7, r7, #16 + bne .L3067 + b .L3345 +.L3372: + ldr r1, [r2, #4] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #12] + mov r3, r1, lsr #8 + streq r0, [r7, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + mov r3, r1, lsr #16 + streq r0, [r7, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + streq r0, [r7, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #0] + streq r0, [r7, #0] + subs lr, lr, #4 + ldr r2, [r2, #0] + addne r7, r7, #16 + bne .L3046 + b .L3345 +.L3385: + ldr r1, [r2, #4] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #12] + mov r3, r1, lsr #8 + streq r0, [r7, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + mov r3, r1, lsr #16 + streq r0, [r7, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + streq r0, [r7, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #0] + streq r0, [r7, #0] + subs lr, lr, #4 + ldr r2, [r2, #0] + addne r7, r7, #16 + bne .L2821 + b .L3345 +.L3393: + ldr r1, [r2, #0] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #0] + mov r3, r1, lsr #8 + streq r0, [r7, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + mov r3, r1, lsr #16 + streq r0, [r7, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + streq r0, [r7, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #12] + streq r0, [r7, #12] + subs lr, lr, #4 + ldr r2, [r2, #4] + addne r7, r7, #16 + bne .L2842 + b .L3345 +.L3389: + cmp r6, #0 + ldr r1, [sl, #0] + beq .L2857 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L2859: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r5, r5, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp r6, r5 + mov r1, r1, asl #8 + add lr, lr, #4 + bne .L2859 + add r7, r7, r6, asl #2 +.L3397: + add fp, fp, #2 + b .L2850 +.L3388: + ldr r4, [sp, #12] + ldr ip, [ip, #0] + cmp r4, #0 + beq .L3345 + mov r3, r1, asl #2 + mov r1, ip, asl r3 + mov ip, #0 +.L3084: + movs r3, r1, lsr #28 + orr r3, r8, r3 + orr r3, r2, r3 + strne r3, [r7, #0] + ldr r3, [sp, #12] + add ip, ip, #1 + streq r0, [r7, #0] + cmp r3, ip + mov r1, r1, asl #4 + add r7, r7, #4 + bne .L3084 + b .L3345 +.L3396: + cmp lr, #3 + bls .L2687 + cmp r4, #0 + ldr r1, [ip, #0] + beq .L2689 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L2691: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r5, r5, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp r4, r5 + mov r1, r1, asl #8 + add lr, lr, #4 + bne .L2691 + b .L3347 +.L3394: + cmp r5, #0 + ldr r2, [r3, #0] + beq .L3099 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov lr, #0 + mov r2, r7 +.L3101: + movs r3, r1, lsr #28 + orr r3, r8, r3 + orr r3, r4, r3 + add lr, lr, #1 + strne r3, [r2, #0] + streq r0, [r2, #0] + cmp r5, lr + mov r1, r1, asl #4 + add r2, r2, #4 + bne .L3101 + b .L3360 +.L3390: + cmp lr, #3 + bls .L2622 + ldr r1, [sp, #12] + ldr r2, [ip, #0] + cmp r1, #0 + beq .L3345 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, asl r3 + mov r2, #0 +.L2626: + movs r3, r1, lsr #24 + orr r3, r8, r3 + strne r3, [r7, #0] + ldr r3, [sp, #12] + add r2, r2, #1 + streq r0, [r7, #0] + cmp r3, r2 + mov r1, r1, asl #8 + add r7, r7, #4 + bne .L2626 + b .L3345 +.L3395: + cmp r6, #0 + ldr r1, [sl, #4] + beq .L2857 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov lr, r7 +.L2888: + ands r3, r1, #255 + orr r3, r8, r3 + add r5, r5, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp r6, r5 + mov r1, r1, lsr #8 + add lr, lr, #4 + bne .L2888 + add r7, r7, r6, asl #2 + b .L3397 +.L2622: + ldr r4, [sp, #12] + mov r3, lr, asl #3 + ldr r1, [ip, #4] + add r2, r4, lr + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L2631 + cmp r4, #0 + movne r2, #0 + beq .L3345 +.L2648: + movs r3, r1, lsr #24 + orr r3, r8, r3 + strne r3, [r7, #0] + ldr r3, [sp, #12] + add r2, r2, #1 + streq r0, [r7, #0] + cmp r3, r2 + mov r1, r1, asl #8 + add r7, r7, #4 + bne .L2648 + b .L3345 +.L2687: + subs r6, r4, #4 + ldr r1, [ip, #4] + beq .L2697 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov lr, r7 + mov r5, #0 +.L2699: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r5, r5, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp r6, r5 + mov r1, r1, asl #8 + add lr, lr, #4 + bne .L2699 + add r3, r7, r4, asl #2 + sub r7, r3, #16 +.L2697: + ldr r1, [ip, #0] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #12] + mov r3, r1, lsr #8 + streq r0, [r7, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + mov r3, r1, lsr #16 + streq r0, [r7, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + streq r0, [r7, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #0] + streq r0, [r7, #0] +.L2745: + add r7, r7, #16 + b .L2689 +.L2653: + ldr r4, [sp, #12] + ldr r3, [ip, #0] + add r2, r4, lr + cmp r2, #4 + mov r1, lr, asl #3 + mov r2, r3, lsr r1 + bhi .L2661 + cmp r4, #0 + movne r1, #0 + beq .L3345 +.L2678: + ands r3, r2, #255 + orr r3, r8, r3 + strne r3, [r7, #0] + ldr r3, [sp, #12] + add r1, r1, #1 + streq r0, [r7, #0] + cmp r3, r1 + mov r2, r2, lsr #8 + add r7, r7, #4 + bne .L2678 + b .L3345 +.L2717: + subs r6, r4, #4 + ldr r1, [ip, #0] + beq .L2726 + mov r3, lr, asl #3 + mov r1, r1, lsr r3 + mov lr, r7 + mov r5, #0 +.L2728: + ands r3, r1, #255 + orr r3, r8, r3 + add r5, r5, #1 + strne r3, [lr, #0] + streq r0, [lr, #0] + cmp r6, r5 + mov r1, r1, lsr #8 + add lr, lr, #4 + bne .L2728 + add r3, r7, r4, asl #2 + sub r7, r3, #16 +.L2726: + ldr r1, [ip, #4] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r7, #0] + mov r3, r1, lsr #8 + streq r0, [r7, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #4] + mov r3, r1, lsr #16 + streq r0, [r7, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r7, #8] + streq r0, [r7, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r7, #12] + bne .L2745 + str r0, [r7, #12] + add r7, r7, #16 + b .L2689 +.L2631: + rsbs r4, lr, #4 + beq .L2634 + mov r2, r7 + mov lr, #0 +.L2636: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add lr, lr, #1 + strne r3, [r2, #0] + streq r0, [r2, #0] + cmp r4, lr + mov r1, r1, asl #8 + add r2, r2, #4 + bne .L2636 + add r7, r7, r4, asl #2 +.L2634: + ldr r1, [sp, #12] + ldr r2, [ip, #0] + subs lr, r1, r4 + beq .L3345 + mov r1, #0 +.L2643: + movs r3, r2, lsr #24 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, asl #8 + add r7, r7, #4 + bne .L2643 + b .L3345 +.L2661: + rsbs r4, lr, #4 + beq .L2664 + mov r1, r7 + mov lr, #0 +.L2666: + ands r3, r2, #255 + orr r3, r8, r3 + add lr, lr, #1 + strne r3, [r1, #0] + streq r0, [r1, #0] + cmp r4, lr + mov r2, r2, lsr #8 + add r1, r1, #4 + bne .L2666 + add r7, r7, r4, asl #2 +.L2664: + ldr r1, [sp, #12] + ldr r2, [ip, #4] + subs lr, r1, r4 + beq .L3345 + mov r1, #0 +.L2673: + ands r3, r2, #255 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r7, #0] + streq r0, [r7, #0] + cmp lr, r1 + mov r2, r2, lsr #8 + add r7, r7, #4 + bne .L2673 + b .L3345 + .size render_scanline_text_base_color32, .-render_scanline_text_base_color32 + .align 2 + .global render_scanline_text_transparent_color32 + .type render_scanline_text_transparent_color32, %function +render_scanline_text_transparent_color32: + @ args = 0, pretend = 0, frame = 4 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L4043 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldrh lr, [ip, #80] + add r6, r0, #7 + mov r6, lr, asr r6 + mov lr, lr, asr r0 + add r7, ip, r0, asl #2 + ldrh r5, [ip, #6] + ldrh r4, [r7, #18] + add ip, ip, r0, asl #1 + add sl, r5, r4 + ldrh r8, [ip, #8] + mov r5, sl, asl #23 + mov r5, r5, lsr #23 + ldrh r4, [r7, #16] + cmp r5, #255 + movls ip, #0 + movhi ip, #1 + mov r7, r8, lsr #14 + rsb fp, r1, r2 + ldr r2, .L4043+4 + ands ip, ip, r7, lsr #1 + ldr r2, [r2, r7, asl #2] + add ip, r3, r1, asl #2 + mov r0, r8, asl #3 + subne r3, r5, #256 + ldr r9, .L4043+8 + movne r3, r3, lsr #3 + moveq r3, sl, asl #3 + add r4, r4, r1 + and r0, r0, #63488 + add r0, r0, r9 + addne r3, r3, r2, lsr #3 + andeq r3, r3, #1984 + mov r4, r4, asl #23 + addne r0, r0, r3, asl #6 + addeq r0, r0, r3 + mov r4, r4, lsr #23 + tst r7, #1 + and lr, lr, #1 + and r6, r6, #2 + andeq r4, r4, #255 + sub sp, sp, #4 + orr lr, lr, r6 + moveq r3, r4, lsr #3 + mov lr, lr, asl #9 + addeq r7, r0, r3, asl #1 + streq r0, [sp, #0] + beq .L3408 + cmp r4, #255 + subhi r4, r4, #256 + movhi r3, r4, lsr #3 + movls r3, r4, lsr #3 + addhi r3, r0, r3, asl #1 + addls r7, r0, r3, asl #1 + addls r0, r0, #2048 + addhi r7, r3, #2048 + strhi r0, [sp, #0] + strls r0, [sp, #0] +.L3408: + tst r8, #128 + beq .L3409 + and r1, r4, #255 + and r3, r5, #7 + mov r2, r8, asl #12 + mov r3, r3, asl #3 + and r2, r2, #49152 + rsb r0, r1, #256 + add r2, r2, r3 + cmp fp, r0 + mov r3, r3, asl #1 + add r2, r2, r9 + and r4, r4, #7 + rsb r9, r3, #56 + bls .L4018 + cmp r4, #0 + moveq r6, r4 + bne .L4019 +.L3611: + rsb r3, r6, r0 + movs sl, r3, lsr #3 + beq .L3665 + mov r6, ip + mov r8, #0 + b .L3667 +.L4020: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L3672 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #4] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r6, #0] +.L3672: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L3681 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #20] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r6, #16] +.L3681: + add r8, r8, #1 + cmp sl, r8 + add r6, r6, #32 + beq .L3707 +.L4021: + add r7, r7, #2 +.L3667: + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r4, r2, r3, asl #6 + addne r4, r4, r9 + tst r1, #1024 + bne .L4020 + ldr r1, [r4, #0] + cmp r1, #0 + beq .L3690 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #8] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r6, #12] +.L3690: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L3681 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #16] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #20] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #24] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + add r8, r8, #1 + strne r3, [r6, #28] + cmp sl, r8 + add r6, r6, #32 + bne .L4021 +.L3707: + add ip, ip, sl, asl #5 +.L3665: + rsb sl, r0, fp + movs r0, sl, lsr #3 + ldreq r0, [sp, #0] + beq .L3711 + ldr r7, [sp, #0] + mov r6, ip + mov r8, #0 + b .L3712 +.L4023: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L3717 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #4] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r6, #0] +.L3717: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L3726 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #20] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r6, #16] +.L3726: + add r8, r8, #1 + cmp r0, r8 + add r6, r6, #32 + add r7, r7, #2 + beq .L4022 +.L3712: + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r4, r2, r3, asl #6 + addne r4, r4, r9 + tst r1, #1024 + bne .L4023 + ldr r1, [r4, #0] + cmp r1, #0 + beq .L3735 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #8] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r6, #12] +.L3735: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L3726 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r6, #16] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #20] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r6, #24] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + add r8, r8, #1 + strne r3, [r6, #28] + cmp r0, r8 + add r6, r6, #32 + add r7, r7, #2 + bne .L3712 +.L4022: + ldr r3, [sp, #0] + add ip, ip, r0, asl #5 + add r0, r3, r0, asl #1 +.L3711: + ands r4, sl, #7 + beq .L4000 + ldrh r0, [r0, #0] + mov r3, r0, asl #22 + mov r3, r3, lsr #22 + tst r0, #2048 + add r2, r2, r3, asl #6 + addne r2, r2, r9 + tst r0, #1024 + beq .L3756 + cmp r4, #3 + ldrls r0, [r2, #4] + bls .L3770 + ldr r1, [r2, #4] + cmp r1, #0 + beq .L3760 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #0] +.L3760: + subs r4, r4, #4 + ldr r0, [r2, #0] + addne ip, ip, #16 + beq .L4000 +.L3770: + mov r1, #0 +.L3771: + movs r3, r0, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r4 + mov r0, r0, asl #8 + bcc .L3771 +.L4000: + add sp, sp, #4 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L3409: + and r3, r5, #7 + and r1, r4, #255 + mov r2, r8, asl #12 + mov r3, r3, asl #2 + rsb r5, r1, #256 + and r2, r2, #49152 + add r2, r2, r3 + cmp fp, r5 + mov r3, r3, asl #1 + add sl, r2, r9 + and r1, r4, #7 + rsb r9, r3, #28 + bls .L4024 + cmp r1, #0 + moveq r4, r1 + bne .L4025 +.L3885: + rsb r3, r4, r5 + movs r0, r3, lsr #3 + beq .L3903 + mov r4, ip + mov r8, #0 + b .L3905 +.L4026: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3910 + ands r3, r2, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + movs r3, r2, lsr #28 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] +.L3910: + add r8, r8, #1 + cmp r0, r8 + add r4, r4, #32 + beq .L3943 +.L4027: + add r7, r7, #2 +.L3905: + ldrh r1, [r7, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r6, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, r9 + tst r1, #1024 + bne .L4026 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3910 + ands r3, r2, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + movs r3, r2, lsr #28 + orrne r3, lr, r3 + orrne r3, r6, r3 + add r8, r8, #1 + strne r3, [r4, #28] + cmp r0, r8 + add r4, r4, #32 + bne .L4027 +.L3943: + add ip, ip, r0, asl #5 +.L3903: + rsb fp, r5, fp + movs r0, fp, lsr #3 + ldreq r0, [sp, #0] + beq .L3947 + ldr r7, [sp, #0] + mov r4, ip + mov r8, #0 + b .L3948 +.L4029: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3953 + ands r3, r2, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + movs r3, r2, lsr #28 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] +.L3953: + add r8, r8, #1 + cmp r0, r8 + add r4, r4, #32 + add r7, r7, #2 + beq .L4028 +.L3948: + ldrh r1, [r7, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r6, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, r9 + tst r1, #1024 + bne .L4029 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3953 + ands r3, r2, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + movs r3, r2, lsr #28 + orrne r3, lr, r3 + orrne r3, r6, r3 + add r8, r8, #1 + strne r3, [r4, #28] + cmp r0, r8 + add r4, r4, #32 + add r7, r7, #2 + bne .L3948 +.L4028: + ldr r3, [sp, #0] + add ip, ip, r0, asl #5 + add r0, r3, r0, asl #1 +.L3947: + ands r4, fp, #7 + beq .L4000 + ldrh r0, [r0, #0] + mov r3, r0, asl #22 + mov r3, r3, lsr #22 + tst r0, #2048 + add r3, sl, r3, asl #5 + mov r2, r0, lsr #12 + addne r3, r3, r9 + tst r0, #1024 + mov r2, r2, asl #4 + ldreq r0, [r3, #0] + moveq r1, #0 + beq .L3996 + ldr r0, [r3, #0] + mov r1, #0 +.L3992: + movs r3, r0, lsr #28 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, asl #4 + bne .L3992 + b .L4000 +.L4024: + cmp r1, #0 + bne .L4030 +.L3794: + movs r0, fp, lsr #3 + beq .L3829 + mov r4, ip + mov r6, r7 + mov r8, #0 + b .L3831 +.L4032: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3836 + ands r3, r2, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #28] + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #24] + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #4] + movs r3, r2, lsr #28 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #0] +.L3836: + add r8, r8, #1 + cmp r0, r8 + add r4, r4, #32 + add r6, r6, #2 + beq .L4031 +.L3831: + ldrh r1, [r6, #0] + mov r2, r1, asl #22 + mov r3, r1, lsr #12 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r5, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, r9 + tst r1, #1024 + bne .L4032 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L3836 + ands r3, r2, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, lr, r3 + orrne r3, r5, r3 + strne r3, [r4, #24] + movs r3, r2, lsr #28 + orrne r3, lr, r3 + orrne r3, r5, r3 + add r8, r8, #1 + strne r3, [r4, #28] + cmp r0, r8 + add r4, r4, #32 + add r6, r6, #2 + bne .L3831 +.L4031: + add ip, ip, r0, asl #5 + add r7, r7, r0, asl #1 +.L3829: + ands r4, fp, #7 + beq .L4000 + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, sl, r3, asl #5 + mov r2, r1, lsr #12 + addne r0, r0, r9 + tst r1, #1024 + mov r2, r2, asl #4 + ldreq r0, [r0, #0] + moveq r1, #0 + beq .L3879 + ldr r0, [r0, #0] + mov r1, #0 +.L3875: + movs r3, r0, lsr #28 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, asl #4 + bne .L3875 + b .L4000 +.L4018: + cmp r4, #0 + bne .L4033 +.L3413: + movs sl, fp, lsr #3 + beq .L3527 + mov r5, ip + mov r6, r7 + mov r8, #0 + b .L3529 +.L4035: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L3534 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r5, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #4] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r5, #0] +.L3534: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L3543 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r5, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #20] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r5, #16] +.L3543: + add r8, r8, #1 + cmp sl, r8 + add r5, r5, #32 + add r6, r6, #2 + beq .L4034 +.L3529: + ldrh r1, [r6, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r4, r2, r3, asl #6 + addne r4, r4, r9 + tst r1, #1024 + bne .L4035 + ldr r1, [r4, #0] + cmp r1, #0 + beq .L3552 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r5, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #8] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [r5, #12] +.L3552: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L3543 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [r5, #16] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #20] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [r5, #24] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + add r8, r8, #1 + strne r3, [r5, #28] + cmp sl, r8 + add r5, r5, #32 + add r6, r6, #2 + bne .L3529 +.L4034: + add ip, ip, sl, asl #5 + add r7, r7, sl, asl #1 +.L3527: + ands r4, fp, #7 + beq .L4000 + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, r2, r3, asl #6 + addne r0, r0, r9 + tst r1, #1024 + beq .L3573 + cmp r4, #3 + ldrls r0, [r0, #4] + bls .L3587 + ldr r1, [r0, #4] + cmp r1, #0 + beq .L3577 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #0] +.L3577: + subs r4, r4, #4 + ldr r0, [r0, #0] + addne ip, ip, #16 + beq .L4000 +.L3587: + mov r1, #0 +.L3588: + movs r3, r0, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, asl #8 + bhi .L3588 + b .L4000 +.L3996: + ands r3, r0, #15 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, lsr #4 + beq .L4000 + ands r3, r0, #15 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, lsr #4 + bne .L3996 + b .L4000 +.L4030: + rsb r5, r1, #8 + cmp fp, r5 + bcs .L3796 + ldrh r4, [r7, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r0, sl, r3, asl #5 + mov r2, r4, lsr #12 + addne r0, r0, r9 + tst r4, #1024 + mov r2, r2, asl #4 + bne .L4036 + cmp fp, #0 + ldr r0, [r0, #0] + beq .L4000 + mov r3, r1, asl #2 + mov r0, r0, lsr r3 + mov r1, #0 +.L3808: + ands r3, r0, #15 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp fp, r1 + mov r0, r0, lsr #4 + bne .L3808 + b .L4000 +.L4025: + ldrh r6, [r7, #0] + rsb r4, r1, #8 + mov r2, r6, asl #22 + mov r3, r6, lsr #12 + mov r2, r2, lsr #22 + tst r6, #2048 + mov r8, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, r9 + tst r6, #1024 + beq .L3888 + cmp r4, #0 + ldr r2, [r3, #0] + beq .L3890 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov r2, #0 +.L3892: + movs r3, r1, lsr #28 + orr r3, lr, r3 + orr r3, r8, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r4, r2 + mov r1, r1, asl #4 + bne .L3892 + add ip, ip, r4, asl #2 +.L3890: + add r7, r7, #2 + b .L3885 +.L4019: + ldrh r1, [r7, #0] + rsb r6, r4, #8 + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r8, r2, r3, asl #6 + addne r8, r8, r9 + ands sl, r1, #1024 + beq .L3614 + cmp r4, #3 + bhi .L4037 + subs r5, r6, #4 + ldr r1, [r8, #4] + beq .L3625 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r4, #0 +.L3627: + movs r3, r1, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r5, r4 + mov r1, r1, asl #8 + bne .L3627 + add r3, ip, r6, asl #2 + sub ip, r3, #16 +.L3625: + ldr r1, [r8, #0] + cmp r1, #0 + beq .L3656 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #0] +.L3656: + add ip, ip, #16 + mov r6, r5 +.L3618: + add r7, r7, #2 + b .L3611 +.L4033: + rsb r0, r4, #8 + cmp fp, r0 + bcs .L3415 + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, r2, r3, asl #6 + addne r0, r0, r9 + tst r1, #1024 + bne .L4038 + cmp r4, #3 + bls .L3448 + cmp fp, #0 + ldr r0, [r0, #4] + beq .L4000 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r0, r0, lsr r3 + mov r2, #0 +.L3451: + ands r3, r0, #255 + orr r3, lr, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp fp, r2 + mov r0, r0, lsr #8 + bne .L3451 + b .L4000 +.L3879: + ands r3, r0, #15 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, lsr #4 + beq .L4000 + ands r3, r0, #15 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, lsr #4 + bne .L3879 + b .L4000 +.L4044: + .align 2 +.L4043: + .word io_registers + .word map_widths + .word vram +.L3756: + cmp r4, #3 + ldrls r0, [r2, #0] + bls .L3787 + ldr r1, [r2, #0] + cmp r1, #0 + beq .L3777 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #12] +.L3777: + subs r4, r4, #4 + ldr r0, [r2, #4] + addne ip, ip, #16 + beq .L4000 +.L3787: + mov r1, #0 +.L3788: + ands r3, r0, #255 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r4 + mov r0, r0, lsr #8 + bcc .L3788 + b .L4000 +.L3573: + cmp r4, #3 + ldrls r0, [r0, #0] + bls .L3604 + ldr r1, [r0, #0] + cmp r1, #0 + beq .L3594 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #12] +.L3594: + subs r4, r4, #4 + ldr r0, [r0, #4] + addne ip, ip, #16 + beq .L4000 +.L3604: + mov r1, #0 +.L3605: + ands r3, r0, #255 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r0, r0, lsr #8 + bhi .L3605 + b .L4000 +.L3796: + ldrh r4, [r7, #0] + mov r2, r4, asl #22 + mov r3, r4, lsr #12 + mov r2, r2, lsr #22 + tst r4, #2048 + mov r0, r3, asl #4 + add r3, sl, r2, asl #5 + addne r3, r3, r9 + tst r4, #1024 + bne .L4039 + cmp r5, #0 + ldr r2, [r3, #0] + beq .L3816 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov r2, #0 +.L3824: + ands r3, r1, #15 + orr r3, lr, r3 + orr r3, r0, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r5, r2 + mov r1, r1, lsr #4 + bne .L3824 +.L4015: + add ip, ip, r5, asl #2 +.L3816: + rsb fp, r5, fp + add r7, r7, #2 + b .L3794 +.L3888: + cmp r4, #0 + ldr r2, [r3, #0] + beq .L3890 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov r2, #0 +.L3898: + ands r3, r1, #15 + orr r3, lr, r3 + orr r3, r8, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r4, r2 + mov r1, r1, lsr #4 + bne .L3898 + add ip, ip, r4, asl #2 + b .L3890 +.L3614: + cmp r4, #3 + bhi .L4040 + subs r5, r6, #4 + ldr r1, [r8, #0] + beq .L3649 + mov r3, r4, asl #3 + mov r1, r1, lsr r3 + mov r4, #0 +.L3651: + ands r3, r1, #255 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r5, r4 + mov r1, r1, lsr #8 + bne .L3651 + add r3, ip, r6, asl #2 + sub ip, r3, #16 +.L3649: + ldr r1, [r8, #4] + cmp r1, #0 + beq .L3656 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #12] + b .L3656 +.L3415: + ldrh r1, [r7, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r5, r2, r3, asl #6 + addne r5, r5, r9 + ands r6, r1, #1024 + bne .L4041 + cmp r4, #3 + bls .L3503 + cmp r0, #0 + ldr r1, [r5, #4] + beq .L3480 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov r4, r6 +.L3506: + ands r3, r1, #255 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r0, r4 + mov r1, r1, lsr #8 + bne .L3506 +.L4002: + add ip, ip, r0, asl #2 +.L3480: + rsb fp, r0, fp + add r7, r7, #2 + b .L3413 +.L4037: + cmp r6, #0 + ldr r1, [r8, #0] + beq .L3618 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r4, #0 +.L3620: + movs r3, r1, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r6, r4 + mov r1, r1, asl #8 + bne .L3620 + add ip, ip, r6, asl #2 +.L4042: + add r7, r7, #2 + b .L3611 +.L4036: + cmp fp, #0 + ldr r0, [r0, #0] + beq .L4000 + mov r3, r1, asl #2 + mov r0, r0, asl r3 + mov r1, #0 +.L3803: + movs r3, r0, lsr #28 + orr r3, lr, r3 + orr r3, r2, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp fp, r1 + mov r0, r0, asl #4 + bne .L3803 + b .L4000 +.L4041: + cmp r4, #3 + bls .L3478 + cmp r0, #0 + ldr r1, [r5, #0] + beq .L3480 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r4, #0 +.L3482: + movs r3, r1, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r0, r4 + mov r1, r1, asl #8 + bne .L3482 + b .L4002 +.L4039: + cmp r5, #0 + ldr r2, [r3, #0] + beq .L3816 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov r2, #0 +.L3818: + movs r3, r1, lsr #28 + orr r3, lr, r3 + orr r3, r0, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r5, r2 + mov r1, r1, asl #4 + bne .L3818 + b .L4015 +.L4038: + cmp r4, #3 + bls .L3421 + cmp fp, #0 + ldr r0, [r0, #0] + beq .L4000 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r0, r0, asl r3 + mov r2, #0 +.L3425: + movs r3, r0, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp fp, r2 + mov r0, r0, asl #8 + bne .L3425 + b .L4000 +.L4040: + cmp r6, #0 + ldr r1, [r8, #4] + beq .L3618 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov r4, sl +.L3644: + ands r3, r1, #255 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r6, r4 + mov r1, r1, lsr #8 + bne .L3644 + add ip, ip, r6, asl #2 + b .L4042 +.L3421: + mov r3, r4, asl #3 + ldr r1, [r0, #4] + add r2, fp, r4 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L3429 + cmp fp, #0 + movne r2, #0 + beq .L4000 +.L3444: + movs r3, r1, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp fp, r2 + mov r1, r1, asl #8 + bne .L3444 + b .L4000 +.L3478: + subs r6, r0, #4 + ldr r1, [r5, #4] + beq .L3487 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r4, #0 +.L3489: + movs r3, r1, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r6, r4 + mov r1, r1, asl #8 + bne .L3489 + add r3, ip, r0, asl #2 + sub ip, r3, #16 +.L3487: + ldr r1, [r5, #0] + cmp r1, #0 + beq .L3518 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #0] +.L3518: + add ip, ip, #16 + b .L3480 +.L3448: + add r2, fp, r4 + ldr r3, [r0, #0] + cmp r2, #4 + mov r1, r4, asl #3 + mov r2, r3, lsr r1 + bhi .L3455 + cmp fp, #0 + movne r1, #0 + beq .L4000 +.L3470: + ands r3, r2, #255 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp fp, r1 + mov r2, r2, lsr #8 + bne .L3470 + b .L4000 +.L3503: + subs r6, r0, #4 + ldr r1, [r5, #0] + beq .L3511 + mov r3, r4, asl #3 + mov r1, r1, lsr r3 + mov r4, #0 +.L3513: + ands r3, r1, #255 + orr r3, lr, r3 + strne r3, [ip, r4, asl #2] + add r4, r4, #1 + cmp r6, r4 + mov r1, r1, lsr #8 + bne .L3513 + add r3, ip, r0, asl #2 + sub ip, r3, #16 +.L3511: + ldr r1, [r5, #4] + cmp r1, #0 + beq .L3518 + ands r3, r1, #255 + orrne r3, lr, r3 + strne r3, [ip, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + orrne r3, lr, r3 + strne r3, [ip, #8] + movs r3, r1, lsr #24 + orrne r3, lr, r3 + strne r3, [ip, #12] + add ip, ip, #16 + b .L3480 +.L3429: + rsbs r4, r4, #4 + beq .L3432 + mov r2, #0 +.L3434: + movs r3, r1, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r4, r2 + mov r1, r1, asl #8 + bne .L3434 + add ip, ip, r4, asl #2 +.L3432: + subs r1, fp, r4 + ldr r0, [r0, #0] + beq .L4000 + mov r2, #0 +.L3440: + movs r3, r0, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r1, r2 + mov r0, r0, asl #8 + bne .L3440 + b .L4000 +.L3455: + rsbs r4, r4, #4 + beq .L3458 + mov r1, #0 +.L3460: + ands r3, r2, #255 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r2, r2, lsr #8 + bne .L3460 + add ip, ip, r4, asl #2 +.L3458: + subs r1, fp, r4 + ldr r0, [r0, #4] + beq .L4000 + mov r2, #0 +.L3466: + ands r3, r0, #255 + orr r3, lr, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r1, r2 + mov r0, r0, lsr #8 + bne .L3466 + b .L4000 + .size render_scanline_text_transparent_color32, .-render_scanline_text_transparent_color32 + .align 2 + .global render_scanline_text_base_alpha + .type render_scanline_text_base_alpha, %function +render_scanline_text_base_alpha: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r7, .L4840 + add lr, r0, #7 + ldrh ip, [r7, #80] + sub sp, sp, #16 + mov lr, ip, asr lr + mov r4, ip, asr r0 + mov r5, ip, lsr #12 + and r5, r5, #2 + mov ip, ip, asl #26 + orr r5, r5, ip, lsr #31 + and lr, lr, #2 + and r4, r4, #1 + orr r4, r4, lr + mov ip, r5, asl #25 + orr r8, ip, r4, asl #9 + tst r8, #512 + mov r6, r0 + mov lr, r1 + mov r9, r2 + mov fp, r3 + mov r5, r5, asl #9 + beq .L4813 + add r0, r7, r0, asl #2 + ldrh r1, [r7, #6] + ldrh r3, [r0, #18] + add r2, r7, r6, asl #1 + add sl, r1, r3 + ldrh r3, [r0, #16] + ldrh r7, [r2, #8] + mov r6, sl, asl #23 + mov r6, r6, lsr #23 + add r3, r3, lr + mov r4, r7, lsr #14 + cmp r6, #255 + movls r1, #0 + movhi r1, #1 + mov ip, r3, asl #23 + ldr r3, .L4840+4 + ands r1, r1, r4, lsr #1 + mov r2, r7, asl #3 + ldr r1, [r3, r4, asl #2] + ldr r0, .L4840+8 + subne r3, r6, #256 + movne r3, r3, lsr #3 + moveq r3, sl, asl #3 + and r2, r2, #63488 + addne r3, r3, r1, lsr #3 + andeq r3, r3, #1984 + add r2, r2, r0 + addne r1, r2, r3, asl #6 + addeq r1, r2, r3 + mov ip, ip, lsr #23 + tst r4, #1 + andeq ip, ip, #255 + rsb r9, lr, r9 + moveq r3, ip, lsr #3 + str r9, [sp, #12] + addeq sl, r1, r3, asl #1 + add r9, fp, lr, asl #2 + streq r1, [sp, #0] + bne .L4814 + tst r7, #128 + bne .L4815 +.L4056: + and r1, ip, #255 + and r3, r6, #7 + mov r2, r7, asl #12 + mov r3, r3, asl #2 + rsb fp, r1, #256 + and r2, r2, #49152 + ldr r1, [sp, #12] + add r2, r2, r3 + mov r3, r3, asl #1 + cmp r1, fp + rsb r3, r3, #28 + add r0, r2, r0 + str r3, [sp, #8] + and r1, ip, #7 + bls .L4816 + cmp r1, #0 + moveq r4, r1 + beq .L4636 + ldrh ip, [sl, #0] + rsb r4, r1, #8 + mov r2, ip, asl #22 + mov r2, r2, lsr #22 + tst ip, #2048 + mov r3, ip, lsr #12 + mov lr, r3, asl #4 + add r3, r0, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst ip, #1024 + bne .L4817 + cmp r4, #0 + ldr r2, [r3, #0] + beq .L4641 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov ip, #0 + mov r2, r9 +.L4650: + ands r3, r1, #15 + orr r3, r8, r3 + orr r3, lr, r3 + add ip, ip, #1 + strne r3, [r2, #0] + streq r5, [r2, #0] + cmp r4, ip + mov r1, r1, lsr #4 + add r2, r2, #4 + bne .L4650 + add r9, r9, r4, asl #2 +.L4641: + add sl, sl, #2 +.L4636: + rsb r3, r4, fp + movs r1, r3, lsr #3 + beq .L4656 + mov r4, r9 + mov r7, #0 + b .L4658 +.L4818: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L4689 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, r2, lsr #4 + streq r5, [r4, #28] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, r2, lsr #8 + streq r5, [r4, #24] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #12 + streq r5, [r4, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #16 + streq r5, [r4, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #20 + streq r5, [r4, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #24 + streq r5, [r4, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + streq r5, [r4, #4] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + streq r5, [r4, #0] +.L4688: + add r7, r7, #1 + cmp r1, r7 + add r4, r4, #32 + beq .L4714 +.L4819: + add sl, sl, #2 +.L4658: + ldrh ip, [sl, #0] + mov r2, ip, asl #22 + mov r2, r2, lsr #22 + tst ip, #2048 + mov r3, ip, lsr #12 + mov r6, r3, asl #4 + add r3, r0, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst ip, #1024 + bne .L4818 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L4689 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #4 + streq r5, [r4, #0] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #8 + streq r5, [r4, #4] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #12 + streq r5, [r4, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #16 + streq r5, [r4, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #20 + streq r5, [r4, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #24 + streq r5, [r4, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + streq r5, [r4, #24] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + bne .L4688 + str r5, [r4, #28] +.L4836: + add r7, r7, #1 + cmp r1, r7 + add r4, r4, #32 + bne .L4819 +.L4714: + add r9, r9, r1, asl #5 +.L4656: + ldr r3, [sp, #12] + rsb lr, fp, r3 + movs r1, lr, lsr #3 + ldreq r1, [sp, #0] + beq .L4718 + ldr r7, [sp, #0] + mov r4, r9 + mov sl, #0 + b .L4719 +.L4821: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L4750 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, r2, lsr #4 + streq r5, [r4, #28] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, r2, lsr #8 + streq r5, [r4, #24] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #12 + streq r5, [r4, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #16 + streq r5, [r4, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #20 + streq r5, [r4, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #24 + streq r5, [r4, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + streq r5, [r4, #4] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + streq r5, [r4, #0] +.L4749: + add sl, sl, #1 + cmp r1, sl + add r4, r4, #32 + add r7, r7, #2 + beq .L4820 +.L4719: + ldrh ip, [r7, #0] + mov r2, ip, asl #22 + mov r2, r2, lsr #22 + tst ip, #2048 + mov r3, ip, lsr #12 + mov r6, r3, asl #4 + add r3, r0, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst ip, #1024 + bne .L4821 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L4750 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #4 + streq r5, [r4, #0] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #8 + streq r5, [r4, #4] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #12 + streq r5, [r4, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #16 + streq r5, [r4, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #20 + streq r5, [r4, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #24 + streq r5, [r4, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + streq r5, [r4, #24] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + bne .L4749 + str r5, [r4, #28] +.L4837: + add sl, sl, #1 + cmp r1, sl + add r4, r4, #32 + add r7, r7, #2 + bne .L4719 +.L4820: + ldr r3, [sp, #0] + add r9, r9, r1, asl #5 + add r1, r3, r1, asl #1 +.L4718: + ands ip, lr, #7 + beq .L4791 + ldrh r1, [r1, #0] + mov r3, r1, asl #22 + tst r1, #2048 + mov r3, r3, lsr #22 + add r0, r0, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, r1, lsr #12 + addne r0, r0, r3 + tst r1, #1024 + mov r2, r2, asl #4 + ldreq r0, [r0, #0] + moveq r1, #0 + beq .L4786 + ldr r0, [r0, #0] + mov r1, #0 +.L4781: + movs r3, r0, lsr #28 + orr r3, r8, r3 + orr r3, r2, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp ip, r1 + mov r0, r0, asl #4 + add r9, r9, #4 + bne .L4781 +.L4791: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L4815: + and r1, ip, #255 + and r3, r6, #7 + mov r2, r7, asl #12 + mov r3, r3, asl #3 + rsb fp, r1, #256 + and r2, r2, #49152 + ldr r1, [sp, #12] + add r2, r2, r3 + mov r3, r3, asl #1 + rsb r3, r3, #56 + cmp r1, fp + add r0, r2, r0 + str r3, [sp, #4] + and r4, ip, #7 + bls .L4822 + cmp r4, #0 + moveq r2, r4 + beq .L4296 + ldrh ip, [sl, #0] + rsb r2, r4, #8 + tst ip, #2048 + mov r3, ip, asl #22 + ldrne r1, [sp, #4] + mov r3, r3, lsr #22 + add lr, r0, r3, asl #6 + addne lr, lr, r1 + ands ip, ip, #1024 + bne .L4823 + cmp r4, #3 + bls .L4331 + cmp r2, #0 + ldr r1, [lr, #4] + beq .L4303 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov r4, ip + mov ip, r9 +.L4334: + ands r3, r1, #255 + orr r3, r8, r3 + add r4, r4, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp r2, r4 + mov r1, r1, lsr #8 + add ip, ip, #4 + bne .L4334 + add r9, r9, r2, asl #2 +.L4303: + add sl, sl, #2 +.L4296: + rsb r3, r2, fp + movs r2, r3, lsr #3 + beq .L4360 + mov r4, r9 + mov r7, #0 + b .L4362 +.L4824: + ldr ip, [r6, #4] + add r7, r7, #1 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #12] + mov r3, ip, lsr #8 + streq r5, [r4, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #8] + mov r3, ip, lsr #16 + streq r5, [r4, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #4] + streq r5, [r4, #4] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #0] + streq r5, [r4, #0] + ldr ip, [r6, #0] + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #28] + mov r3, ip, lsr #8 + streq r5, [r4, #28] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #24] + mov r3, ip, lsr #16 + streq r5, [r4, #24] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #20] + streq r5, [r4, #20] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #16] + streq r5, [r4, #16] + cmp r2, r7 + add r4, r4, #32 + beq .L4414 +.L4825: + add sl, sl, #2 +.L4362: + ldrh ip, [sl, #0] + mov r3, ip, asl #22 + mov r3, r3, lsr #22 + tst ip, #2048 + add r6, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r6, r6, r3 + tst ip, #1024 + bne .L4824 + ldr ip, [r6, #0] + add r7, r7, #1 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #0] + mov r3, ip, lsr #8 + streq r5, [r4, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #4] + mov r3, ip, lsr #16 + streq r5, [r4, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #8] + streq r5, [r4, #8] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #12] + streq r5, [r4, #12] + ldr ip, [r6, #4] + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #16] + mov r3, ip, lsr #8 + streq r5, [r4, #16] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #20] + mov r3, ip, lsr #16 + streq r5, [r4, #20] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #24] + streq r5, [r4, #24] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #28] + streq r5, [r4, #28] + cmp r2, r7 + add r4, r4, #32 + bne .L4825 +.L4414: + add r9, r9, r2, asl #5 +.L4360: + ldr ip, [sp, #12] + rsb r2, fp, ip + movs r1, r2, lsr #3 + ldreq r1, [sp, #0] + beq .L4418 + ldr r7, [sp, #0] + mov r4, r9 + mov sl, #0 + b .L4419 +.L4827: + ldr ip, [r6, #4] + add sl, sl, #1 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #12] + mov r3, ip, lsr #8 + streq r5, [r4, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #8] + mov r3, ip, lsr #16 + streq r5, [r4, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #4] + streq r5, [r4, #4] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #0] + streq r5, [r4, #0] + ldr ip, [r6, #0] + add r7, r7, #2 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #28] + mov r3, ip, lsr #8 + streq r5, [r4, #28] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #24] + mov r3, ip, lsr #16 + streq r5, [r4, #24] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #20] + streq r5, [r4, #20] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #16] + streq r5, [r4, #16] + cmp r1, sl + add r4, r4, #32 + beq .L4826 +.L4419: + ldrh ip, [r7, #0] + mov r3, ip, asl #22 + mov r3, r3, lsr #22 + tst ip, #2048 + add r6, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r6, r6, r3 + tst ip, #1024 + bne .L4827 + ldr ip, [r6, #0] + add sl, sl, #1 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #0] + mov r3, ip, lsr #8 + streq r5, [r4, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #4] + mov r3, ip, lsr #16 + streq r5, [r4, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #8] + streq r5, [r4, #8] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #12] + streq r5, [r4, #12] + ldr ip, [r6, #4] + add r7, r7, #2 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #16] + mov r3, ip, lsr #8 + streq r5, [r4, #16] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #20] + mov r3, ip, lsr #16 + streq r5, [r4, #20] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #24] + streq r5, [r4, #24] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #28] + streq r5, [r4, #28] + cmp r1, sl + add r4, r4, #32 + bne .L4419 +.L4826: + ldr ip, [sp, #0] + add r9, r9, r1, asl #5 + add r1, ip, r1, asl #1 +.L4418: + ands ip, r2, #7 + beq .L4791 + ldrh r1, [r1, #0] + tst r1, #2048 + mov r3, r1, asl #22 + ldrne r2, [sp, #4] + mov r3, r3, lsr #22 + add r0, r0, r3, asl #6 + addne r0, r0, r2 + tst r1, #1024 + beq .L4475 + cmp ip, #3 + ldrls r0, [r0, #4] + bhi .L4828 +.L4492: + mov r1, #0 +.L4493: + movs r3, r0, lsr #24 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r1, ip + mov r0, r0, asl #8 + add r9, r9, #4 + bcc .L4493 + b .L4791 +.L4814: + cmp ip, #255 + subhi ip, ip, #256 + movhi r3, ip, lsr #3 + movls r3, ip, lsr #3 + addhi r3, r1, r3, asl #1 + addls sl, r1, r3, asl #1 + addls r1, r1, #2048 + addhi sl, r3, #2048 + strhi r1, [sp, #0] + strls r1, [sp, #0] + tst r7, #128 + beq .L4056 + b .L4815 +.L4813: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_text_base_color32 +.L4816: + cmp r1, #0 + beq .L4521 + ldr r2, [sp, #12] + rsb r4, r1, #8 + cmp r2, r4 + bcc .L4829 + ldrh ip, [sl, #0] + mov r2, ip, asl #22 + mov r2, r2, lsr #22 + tst ip, #2048 + mov r3, ip, lsr #12 + mov lr, r3, asl #4 + add r3, r0, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst ip, #1024 + beq .L4543 + cmp r4, #0 + ldr r2, [r3, #0] + beq .L4545 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov ip, #0 + mov r2, r9 +.L4547: + movs r3, r1, lsr #28 + orr r3, r8, r3 + orr r3, lr, r3 + add ip, ip, #1 + strne r3, [r2, #0] + streq r5, [r2, #0] + cmp r4, ip + mov r1, r1, asl #4 + add r2, r2, #4 + bne .L4547 +.L4806: + add r9, r9, r4, asl #2 +.L4545: + ldr r3, [sp, #12] + add sl, sl, #2 + rsb r3, r4, r3 + str r3, [sp, #12] +.L4521: + ldr ip, [sp, #12] + movs fp, ip, lsr #3 + beq .L4560 + mov r4, r9 + mov r7, sl + mov lr, #0 + b .L4562 +.L4831: + ldr r2, [r3, #0] + cmp r2, #0 + beq .L4593 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, r2, lsr #4 + streq r5, [r4, #28] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, r2, lsr #8 + streq r5, [r4, #24] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #12 + streq r5, [r4, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #16 + streq r5, [r4, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #20 + streq r5, [r4, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #24 + streq r5, [r4, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + streq r5, [r4, #4] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + streq r5, [r4, #0] +.L4592: + add lr, lr, #1 + cmp fp, lr + add r4, r4, #32 + add r7, r7, #2 + beq .L4830 +.L4562: + ldrh ip, [r7, #0] + tst ip, #2048 + mov r2, ip, asl #22 + mov r3, ip, lsr #12 + ldrne r1, [sp, #8] + mov r2, r2, lsr #22 + mov r6, r3, asl #4 + add r3, r0, r2, asl #5 + addne r3, r3, r1 + tst ip, #1024 + bne .L4831 + ldr r2, [r3, #0] + cmp r2, #0 + beq .L4593 + ands r3, r2, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #4 + streq r5, [r4, #0] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #8 + streq r5, [r4, #4] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #12 + streq r5, [r4, #8] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #16 + streq r5, [r4, #12] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, r2, lsr #20 + streq r5, [r4, #16] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, r2, lsr #24 + streq r5, [r4, #20] + ands r3, r3, #15 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + streq r5, [r4, #24] + movs r3, r2, lsr #28 + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + bne .L4592 + str r5, [r4, #28] +.L4838: + add lr, lr, #1 + cmp fp, lr + add r4, r4, #32 + add r7, r7, #2 + bne .L4562 +.L4830: + add r9, r9, fp, asl #5 + add sl, sl, fp, asl #1 +.L4560: + ldr r2, [sp, #12] + ands r4, r2, #7 + beq .L4791 + ldrh ip, [sl, #0] + mov r3, ip, asl #22 + mov r3, r3, lsr #22 + tst ip, #2048 + add r0, r0, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, ip, lsr #12 + addne r0, r0, r3 + tst ip, #1024 + mov r2, r2, asl #4 + ldreq r0, [r0, #0] + moveq r1, #0 + beq .L4629 + ldr r0, [r0, #0] + mov r1, #0 +.L4624: + movs r3, r0, lsr #28 + orr r3, r8, r3 + orr r3, r2, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r4, r1 + mov r0, r0, asl #4 + add r9, r9, #4 + bne .L4624 + b .L4791 +.L4822: + cmp r4, #0 + beq .L4060 + rsb lr, r4, #8 + cmp r1, lr + bcc .L4832 + ldrh ip, [sl, #0] + tst ip, #2048 + mov r3, ip, asl #22 + ldrne r1, [sp, #4] + mov r3, r3, lsr #22 + add r2, r0, r3, asl #6 + addne r2, r2, r1 + ands ip, ip, #1024 + beq .L4131 + cmp r4, #3 + bls .L4133 + cmp lr, #0 + ldr r2, [r2, #0] + beq .L4135 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r2, asl r3 + mov ip, r9 + mov r4, #0 +.L4137: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r4, r4, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp lr, r4 + mov r1, r1, asl #8 + add ip, ip, #4 + bne .L4137 +.L4793: + add r9, r9, lr, asl #2 +.L4135: + ldr r2, [sp, #12] + add sl, sl, #2 + rsb r2, lr, r2 + str r2, [sp, #12] +.L4060: + ldr r3, [sp, #12] + movs r2, r3, lsr #3 + beq .L4192 + mov r4, r9 + mov r7, sl + mov fp, #0 + b .L4194 +.L4841: + .align 2 +.L4840: + .word io_registers + .word map_widths + .word vram +.L4834: + ldr ip, [r6, #4] + add fp, fp, #1 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #12] + mov r3, ip, lsr #8 + streq r5, [r4, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #8] + mov r3, ip, lsr #16 + streq r5, [r4, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #4] + streq r5, [r4, #4] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #0] + streq r5, [r4, #0] + ldr ip, [r6, #0] + add r7, r7, #2 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #28] + mov r3, ip, lsr #8 + streq r5, [r4, #28] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #24] + mov r3, ip, lsr #16 + streq r5, [r4, #24] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #20] + streq r5, [r4, #20] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #16] + streq r5, [r4, #16] + cmp r2, fp + add r4, r4, #32 + beq .L4833 +.L4194: + ldrh ip, [r7, #0] + tst ip, #2048 + mov r3, ip, asl #22 + ldrne r1, [sp, #4] + mov r3, r3, lsr #22 + add r6, r0, r3, asl #6 + addne r6, r6, r1 + tst ip, #1024 + bne .L4834 + ldr ip, [r6, #0] + add fp, fp, #1 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #0] + mov r3, ip, lsr #8 + streq r5, [r4, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #4] + mov r3, ip, lsr #16 + streq r5, [r4, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #8] + streq r5, [r4, #8] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #12] + streq r5, [r4, #12] + ldr ip, [r6, #4] + add r7, r7, #2 + ands r3, ip, #255 + orrne r3, r8, r3 + strne r3, [r4, #16] + mov r3, ip, lsr #8 + streq r5, [r4, #16] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #20] + mov r3, ip, lsr #16 + streq r5, [r4, #20] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r4, #24] + streq r5, [r4, #24] + movs r3, ip, lsr #24 + orrne r3, r8, r3 + strne r3, [r4, #28] + streq r5, [r4, #28] + cmp r2, fp + add r4, r4, #32 + bne .L4194 +.L4833: + add r9, r9, r2, asl #5 + add sl, sl, r2, asl #1 +.L4192: + ldr r2, [sp, #12] + ands r4, r2, #7 + beq .L4791 + ldrh ip, [sl, #0] + mov r3, ip, asl #22 + mov r3, r3, lsr #22 + tst ip, #2048 + add r0, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r0, r0, r3 + tst ip, #1024 + bne .L4835 + cmp r4, #3 + ldrls r0, [r0, #0] + bls .L4288 + ldr r1, [r0, #0] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r9, #0] + mov r3, r1, lsr #8 + streq r5, [r9, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + mov r3, r1, lsr #16 + streq r5, [r9, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + streq r5, [r9, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #12] + streq r5, [r9, #12] + subs r4, r4, #4 + ldr r0, [r0, #4] + addne r9, r9, #16 + beq .L4791 +.L4288: + mov r1, #0 +.L4289: + ands r3, r0, #255 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r4, r1 + mov r0, r0, lsr #8 + add r9, r9, #4 + bhi .L4289 + b .L4791 +.L4689: + str r5, [r4, #0] + str r5, [r4, #4] + str r5, [r4, #8] + str r5, [r4, #12] + str r5, [r4, #16] + str r5, [r4, #20] + str r5, [r4, #24] + str r5, [r4, #28] + b .L4836 +.L4750: + str r5, [r4, #0] + str r5, [r4, #4] + str r5, [r4, #8] + str r5, [r4, #12] + str r5, [r4, #16] + str r5, [r4, #20] + str r5, [r4, #24] + str r5, [r4, #28] + b .L4837 +.L4786: + ands r3, r0, #15 + orr r3, r8, r3 + orr r3, r2, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp ip, r1 + mov r0, r0, lsr #4 + add r9, r9, #4 + bne .L4786 + b .L4791 +.L4593: + str r5, [r4, #0] + str r5, [r4, #4] + str r5, [r4, #8] + str r5, [r4, #12] + str r5, [r4, #16] + str r5, [r4, #20] + str r5, [r4, #24] + str r5, [r4, #28] + b .L4838 +.L4629: + ands r3, r0, #15 + orr r3, r8, r3 + orr r3, r2, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r4, r1 + mov r0, r0, lsr #4 + add r9, r9, #4 + bne .L4629 + b .L4791 +.L4475: + cmp ip, #3 + ldrls r0, [r0, #0] + bhi .L4839 +.L4513: + mov r1, #0 +.L4514: + ands r3, r0, #255 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp ip, r1 + mov r0, r0, lsr #8 + add r9, r9, #4 + bhi .L4514 + b .L4791 +.L4835: + cmp r4, #3 + ldrls r0, [r0, #4] + bls .L4267 + ldr r1, [r0, #4] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r9, #12] + mov r3, r1, lsr #8 + streq r5, [r9, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + mov r3, r1, lsr #16 + streq r5, [r9, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + streq r5, [r9, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #0] + streq r5, [r9, #0] + subs r4, r4, #4 + ldr r0, [r0, #0] + addne r9, r9, #16 + beq .L4791 +.L4267: + mov r1, #0 +.L4268: + movs r3, r0, lsr #24 + orr r3, r8, r3 + add r1, r1, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r4, r1 + mov r0, r0, asl #8 + add r9, r9, #4 + bhi .L4268 + b .L4791 +.L4823: + cmp r4, #3 + bls .L4301 + cmp r2, #0 + ldr r1, [lr, #0] + beq .L4303 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov ip, r9 + mov r4, #0 +.L4305: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r4, r4, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp r2, r4 + mov r1, r1, asl #8 + add ip, ip, #4 + bne .L4305 + add r9, r9, r2, asl #2 + b .L4303 +.L4817: + cmp r4, #0 + ldr r2, [r3, #0] + beq .L4641 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + mov ip, #0 + mov r2, r9 +.L4643: + movs r3, r1, lsr #28 + orr r3, r8, r3 + orr r3, lr, r3 + add ip, ip, #1 + strne r3, [r2, #0] + streq r5, [r2, #0] + cmp r4, ip + mov r1, r1, asl #4 + add r2, r2, #4 + bne .L4643 + add r9, r9, r4, asl #2 + b .L4641 +.L4829: + ldrh ip, [sl, #0] + mov r3, ip, asl #22 + mov r3, r3, lsr #22 + tst ip, #2048 + add r0, r0, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, ip, lsr #12 + addne r0, r0, r3 + tst ip, #1024 + mov r2, r2, asl #4 + beq .L4527 + ldr ip, [sp, #12] + ldr r0, [r0, #0] + cmp ip, #0 + beq .L4791 + mov r3, r1, asl #2 + mov r0, r0, asl r3 + mov r1, #0 +.L4530: + movs r3, r0, lsr #28 + orr r3, r8, r3 + orr r3, r2, r3 + strne r3, [r9, #0] + ldr r3, [sp, #12] + add r1, r1, #1 + streq r5, [r9, #0] + cmp r3, r1 + mov r0, r0, asl #4 + add r9, r9, #4 + bne .L4530 + b .L4791 +.L4832: + ldrh ip, [sl, #0] + tst ip, #2048 + mov r3, ip, asl #22 + ldrne r2, [sp, #4] + mov r3, r3, lsr #22 + add r0, r0, r3, asl #6 + addne r0, r0, r2 + tst ip, #1024 + beq .L4066 + cmp r4, #3 + bls .L4068 + ldr r3, [sp, #12] + ldr r0, [r0, #0] + cmp r3, #0 + beq .L4791 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r0, r0, asl r3 + mov r2, #0 +.L4072: + movs r3, r0, lsr #24 + ldr ip, [sp, #12] + orr r3, r8, r3 + add r2, r2, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp ip, r2 + mov r0, r0, asl #8 + add r9, r9, #4 + bne .L4072 + b .L4791 +.L4839: + ldr r1, [r0, #0] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r9, #0] + mov r3, r1, lsr #8 + streq r5, [r9, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + mov r3, r1, lsr #16 + streq r5, [r9, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + streq r5, [r9, #8] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #12] + streq r5, [r9, #12] + subs ip, ip, #4 + ldr r0, [r0, #4] + addne r9, r9, #16 + bne .L4513 + b .L4791 +.L4828: + ldr r1, [r0, #4] + ands r3, r1, #255 + orrne r3, r8, r3 + strne r3, [r9, #12] + mov r3, r1, lsr #8 + streq r5, [r9, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + mov r3, r1, lsr #16 + streq r5, [r9, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + streq r5, [r9, #4] + movs r3, r1, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #0] + streq r5, [r9, #0] + subs ip, ip, #4 + ldr r0, [r0, #0] + addne r9, r9, #16 + bne .L4492 + b .L4791 +.L4066: + cmp r4, #3 + bls .L4099 + ldr ip, [sp, #12] + ldr r0, [r0, #4] + cmp ip, #0 + beq .L4791 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r0, r0, lsr r3 + mov r2, #0 +.L4102: + ands r3, r0, #255 + ldr r1, [sp, #12] + orr r3, r8, r3 + add r2, r2, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r1, r2 + mov r0, r0, lsr #8 + add r9, r9, #4 + bne .L4102 + b .L4791 +.L4131: + cmp r4, #3 + bls .L4163 + cmp lr, #0 + ldr r2, [r2, #4] + beq .L4135 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, ip + mov ip, r9 +.L4166: + ands r3, r1, #255 + orr r3, r8, r3 + add r2, r2, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp lr, r2 + mov r1, r1, lsr #8 + add ip, ip, #4 + bne .L4166 + b .L4793 +.L4301: + subs r6, r2, #4 + ldr r1, [lr, #4] + beq .L4311 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov ip, r9 + mov r4, #0 +.L4313: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r4, r4, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp r6, r4 + mov r1, r1, asl #8 + add ip, ip, #4 + bne .L4313 + add r3, r9, r2, asl #2 + sub r9, r3, #16 +.L4311: + ldr r2, [lr, #0] + ands r3, r2, #255 + orrne r3, r8, r3 + strne r3, [r9, #12] + mov r3, r2, lsr #8 + streq r5, [r9, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + mov r3, r2, lsr #16 + streq r5, [r9, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + streq r5, [r9, #4] + movs r3, r2, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #0] + streq r5, [r9, #0] +.L4359: + add r9, r9, #16 + mov r2, r6 + add sl, sl, #2 + b .L4296 +.L4331: + subs r6, r2, #4 + ldr r1, [lr, #0] + beq .L4340 + mov r3, r4, asl #3 + mov r1, r1, lsr r3 + mov ip, r9 + mov r4, #0 +.L4342: + ands r3, r1, #255 + orr r3, r8, r3 + add r4, r4, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp r6, r4 + mov r1, r1, lsr #8 + add ip, ip, #4 + bne .L4342 + add r3, r9, r2, asl #2 + sub r9, r3, #16 +.L4340: + ldr r2, [lr, #4] + ands r3, r2, #255 + orrne r3, r8, r3 + strne r3, [r9, #0] + mov r3, r2, lsr #8 + streq r5, [r9, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + mov r3, r2, lsr #16 + streq r5, [r9, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + streq r5, [r9, #8] + movs r3, r2, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #12] + streq r5, [r9, #12] + b .L4359 +.L4527: + ldr ip, [sp, #12] + ldr r0, [r0, #0] + cmp ip, #0 + beq .L4791 + mov r3, r1, asl #2 + mov r0, r0, lsr r3 + mov r1, #0 +.L4536: + ands r3, r0, #15 + orr r3, r8, r3 + orr r3, r2, r3 + strne r3, [r9, #0] + ldr r3, [sp, #12] + add r1, r1, #1 + streq r5, [r9, #0] + cmp r3, r1 + mov r0, r0, lsr #4 + add r9, r9, #4 + bne .L4536 + b .L4791 +.L4543: + cmp r4, #0 + ldr r2, [r3, #0] + beq .L4545 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + mov ip, #0 + mov r2, r9 +.L4554: + ands r3, r1, #15 + orr r3, r8, r3 + orr r3, lr, r3 + add ip, ip, #1 + strne r3, [r2, #0] + streq r5, [r2, #0] + cmp r4, ip + mov r1, r1, lsr #4 + add r2, r2, #4 + bne .L4554 + b .L4806 +.L4068: + ldr ip, [sp, #12] + mov r3, r4, asl #3 + ldr r1, [r0, #4] + add r2, ip, r4 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L4077 + cmp ip, #0 + movne r2, #0 + beq .L4791 +.L4094: + movs r3, r1, lsr #24 + orr r3, r8, r3 + strne r3, [r9, #0] + ldr r3, [sp, #12] + add r2, r2, #1 + streq r5, [r9, #0] + cmp r3, r2 + mov r1, r1, asl #8 + add r9, r9, #4 + bne .L4094 + b .L4791 +.L4163: + subs r6, lr, #4 + ldr r1, [r2, #0] + beq .L4172 + mov r3, r4, asl #3 + mov r1, r1, lsr r3 + mov ip, r9 + mov r4, #0 +.L4174: + ands r3, r1, #255 + orr r3, r8, r3 + add r4, r4, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp r6, r4 + mov r1, r1, lsr #8 + add ip, ip, #4 + bne .L4174 + add r3, r9, lr, asl #2 + sub r9, r3, #16 +.L4172: + ldr r2, [r2, #4] + ands r3, r2, #255 + orrne r3, r8, r3 + strne r3, [r9, #0] + mov r3, r2, lsr #8 + streq r5, [r9, #0] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + mov r3, r2, lsr #16 + streq r5, [r9, #4] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + streq r5, [r9, #8] + movs r3, r2, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #12] + streq r5, [r9, #12] +.L4191: + add r9, r9, #16 + b .L4135 +.L4133: + subs r6, lr, #4 + ldr r1, [r2, #4] + beq .L4143 + mov r3, r4, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov ip, r9 + mov r4, #0 +.L4145: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add r4, r4, #1 + strne r3, [ip, #0] + streq r5, [ip, #0] + cmp r6, r4 + mov r1, r1, asl #8 + add ip, ip, #4 + bne .L4145 + add r3, r9, lr, asl #2 + sub r9, r3, #16 +.L4143: + ldr r2, [r2, #0] + ands r3, r2, #255 + orrne r3, r8, r3 + strne r3, [r9, #12] + mov r3, r2, lsr #8 + streq r5, [r9, #12] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #8] + mov r3, r2, lsr #16 + streq r5, [r9, #8] + ands r3, r3, #255 + orrne r3, r8, r3 + strne r3, [r9, #4] + streq r5, [r9, #4] + movs r3, r2, lsr #24 + orrne r3, r8, r3 + strne r3, [r9, #0] + streq r5, [r9, #0] + add r9, r9, #16 + b .L4135 +.L4099: + ldr ip, [sp, #12] + ldr r3, [r0, #0] + add r2, ip, r4 + cmp r2, #4 + mov r1, r4, asl #3 + mov r2, r3, lsr r1 + bhi .L4107 + cmp ip, #0 + movne r1, #0 + beq .L4791 +.L4124: + ands r3, r2, #255 + orr r3, r8, r3 + strne r3, [r9, #0] + ldr r3, [sp, #12] + add r1, r1, #1 + streq r5, [r9, #0] + cmp r3, r1 + mov r2, r2, lsr #8 + add r9, r9, #4 + bne .L4124 + b .L4791 +.L4077: + rsbs r4, r4, #4 + beq .L4080 + mov r2, r9 + mov ip, #0 +.L4082: + movs r3, r1, lsr #24 + orr r3, r8, r3 + add ip, ip, #1 + strne r3, [r2, #0] + streq r5, [r2, #0] + cmp r4, ip + mov r1, r1, asl #8 + add r2, r2, #4 + bne .L4082 + add r9, r9, r4, asl #2 +.L4080: + ldr r2, [sp, #12] + ldr r0, [r0, #0] + subs r1, r2, r4 + beq .L4791 + mov r2, #0 +.L4089: + movs r3, r0, lsr #24 + orr r3, r8, r3 + add r2, r2, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r1, r2 + mov r0, r0, asl #8 + add r9, r9, #4 + bne .L4089 + b .L4791 +.L4107: + rsbs r4, r4, #4 + beq .L4110 + mov r1, r9 + mov ip, #0 +.L4112: + ands r3, r2, #255 + orr r3, r8, r3 + add ip, ip, #1 + strne r3, [r1, #0] + streq r5, [r1, #0] + cmp r4, ip + mov r2, r2, lsr #8 + add r1, r1, #4 + bne .L4112 + add r9, r9, r4, asl #2 +.L4110: + ldr r2, [sp, #12] + ldr r0, [r0, #4] + subs r1, r2, r4 + beq .L4791 + mov r2, #0 +.L4119: + ands r3, r0, #255 + orr r3, r8, r3 + add r2, r2, #1 + strne r3, [r9, #0] + streq r5, [r9, #0] + cmp r1, r2 + mov r0, r0, lsr #8 + add r9, r9, #4 + bne .L4119 + b .L4791 + .size render_scanline_text_base_alpha, .-render_scanline_text_base_alpha + .align 2 + .global render_scanline_text_transparent_alpha + .type render_scanline_text_transparent_alpha, %function +render_scanline_text_transparent_alpha: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5485 + add lr, r0, #7 + ldrh ip, [r5, #80] + sub sp, sp, #16 + mov lr, ip, asr lr + mov ip, ip, asr r0 + and lr, lr, #2 + and ip, ip, #1 + orr ip, ip, lr + mov r6, ip, asl #9 + tst r6, #512 + mov r4, r0 + mov ip, r1 + mov r8, r2 + mov sl, r3 + beq .L5463 + add r0, r5, r0, asl #2 + ldrh r1, [r5, #6] + ldrh r3, [r0, #18] + add r2, r5, r4, asl #1 + add r7, r1, r3 + ldrh r3, [r0, #16] + ldrh lr, [r2, #8] + mov r5, r7, asl #23 + mov r5, r5, lsr #23 + add r3, r3, ip + mov r0, lr, lsr #14 + cmp r5, #255 + movls r1, #0 + movhi r1, #1 + mov r4, r3, asl #23 + ldr r3, .L5485+4 + ands r1, r1, r0, lsr #1 + mov r2, lr, asl #3 + ldr r1, [r3, r0, asl #2] + ldr r9, .L5485+8 + subne r3, r5, #256 + movne r3, r3, lsr #3 + moveq r3, r7, asl #3 + and r2, r2, #63488 + addne r3, r3, r1, lsr #3 + andeq r3, r3, #1984 + add r2, r2, r9 + addne r1, r2, r3, asl #6 + addeq r1, r2, r3 + mov r4, r4, lsr #23 + tst r0, #1 + andeq r4, r4, #255 + moveq r3, r4, lsr #3 + rsb fp, ip, r8 + addeq r7, r1, r3, asl #1 + add r8, sl, ip, asl #2 + streq r1, [sp, #0] + bne .L5464 + tst lr, #128 + bne .L5465 +.L4853: + mov r2, lr, asl #12 + and r3, r5, #7 + mov r3, r3, asl #2 + and r1, r4, #255 + and r2, r2, #49152 + rsb r1, r1, #256 + add r2, r2, r3 + mov r3, r3, asl #1 + cmp fp, r1 + rsb r3, r3, #28 + str r1, [sp, #12] + add lr, r2, r9 + str r3, [sp, #8] + and r1, r4, #7 + bls .L5466 + cmp r1, #0 + moveq r5, r1 + beq .L5329 + ldrh ip, [r7, #0] + rsb r5, r1, #8 + mov r2, ip, asl #22 + mov r2, r2, lsr #22 + tst ip, #2048 + mov r3, ip, lsr #12 + mov r0, r3, asl #4 + add r3, lr, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst ip, #1024 + bne .L5467 + cmp r5, #0 + ldr r2, [r3, #0] + beq .L5334 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + orr r0, r6, r0 + mov r2, r8 + mov ip, #0 +.L5342: + ands r4, r1, #15 + ldrne r3, [r2, #0] + add ip, ip, #1 + orrne r3, r4, r3, asl #16 + orrne r3, r3, r0 + strne r3, [r2, #0] + cmp r5, ip + mov r1, r1, lsr #4 + add r2, r2, #4 + bne .L5342 + add r8, r8, r5, asl #2 +.L5334: + add r7, r7, #2 +.L5329: + ldr r1, [sp, #12] + rsb r3, r5, r1 + movs sl, r3, lsr #3 + beq .L5347 + mov r4, r8 + mov ip, #0 + b .L5349 +.L5468: + ldr r1, [r3, #0] + cmp r1, #0 + beq .L5354 + ands r0, r1, #15 + ldrne r3, [r4, #28] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #28] + mov r3, r1, lsr #4 + ands r0, r3, #15 + ldrne r3, [r4, #24] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #24] + mov r3, r1, lsr #8 + ands r0, r3, #15 + ldrne r3, [r4, #20] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #20] + mov r3, r1, lsr #12 + ands r0, r3, #15 + ldrne r3, [r4, #16] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #16] + mov r3, r1, lsr #16 + ands r0, r3, #15 + ldrne r3, [r4, #12] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #12] + mov r3, r1, lsr #20 + ands r0, r3, #15 + ldrne r3, [r4, #8] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #8] + mov r3, r1, lsr #24 + ands r0, r3, #15 + ldrne r3, [r4, #4] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #4] + movs r1, r1, lsr #28 + beq .L5354 + ldr r3, [r4, #0] + orr r2, r6, r5 + orr r3, r1, r3, asl #16 + orr r3, r3, r2 + str r3, [r4, #0] +.L5354: + add ip, ip, #1 + cmp sl, ip + add r4, r4, #32 + beq .L5387 +.L5469: + add r7, r7, #2 +.L5349: + ldrh r1, [r7, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r5, r3, asl #4 + add r3, lr, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L5468 + ldr r1, [r3, #0] + cmp r1, #0 + beq .L5354 + ands r0, r1, #15 + ldrne r3, [r4, #0] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #0] + mov r3, r1, lsr #4 + ands r0, r3, #15 + ldrne r3, [r4, #4] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #4] + mov r3, r1, lsr #8 + ands r0, r3, #15 + ldrne r3, [r4, #8] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #8] + mov r3, r1, lsr #12 + ands r0, r3, #15 + ldrne r3, [r4, #12] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #12] + mov r3, r1, lsr #16 + ands r0, r3, #15 + ldrne r3, [r4, #16] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #16] + mov r3, r1, lsr #20 + ands r0, r3, #15 + ldrne r3, [r4, #20] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #20] + mov r3, r1, lsr #24 + ands r0, r3, #15 + ldrne r3, [r4, #24] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #24] + movs r1, r1, lsr #28 + ldrne r3, [r4, #28] + orrne r2, r6, r5 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + add ip, ip, #1 + strne r3, [r4, #28] + cmp sl, ip + add r4, r4, #32 + bne .L5469 +.L5387: + add r8, r8, sl, asl #5 +.L5347: + ldr r3, [sp, #12] + rsb r9, r3, fp + movs sl, r9, lsr #3 + ldreq r1, [sp, #0] + beq .L5391 + ldr ip, [sp, #0] + mov r4, r8 + mov r7, #0 + b .L5392 +.L5471: + ldr r1, [r3, #0] + cmp r1, #0 + beq .L5397 + ands r0, r1, #15 + ldrne r3, [r4, #28] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #28] + mov r3, r1, lsr #4 + ands r0, r3, #15 + ldrne r3, [r4, #24] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #24] + mov r3, r1, lsr #8 + ands r0, r3, #15 + ldrne r3, [r4, #20] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #20] + mov r3, r1, lsr #12 + ands r0, r3, #15 + ldrne r3, [r4, #16] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #16] + mov r3, r1, lsr #16 + ands r0, r3, #15 + ldrne r3, [r4, #12] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #12] + mov r3, r1, lsr #20 + ands r0, r3, #15 + ldrne r3, [r4, #8] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #8] + mov r3, r1, lsr #24 + ands r0, r3, #15 + ldrne r3, [r4, #4] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #4] + movs r1, r1, lsr #28 + beq .L5397 + ldr r3, [r4, #0] + orr r2, r6, r5 + orr r3, r1, r3, asl #16 + orr r3, r3, r2 + str r3, [r4, #0] +.L5397: + add r7, r7, #1 + cmp sl, r7 + add r4, r4, #32 + add ip, ip, #2 + beq .L5470 +.L5392: + ldrh r1, [ip, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r5, r3, asl #4 + add r3, lr, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L5471 + ldr r1, [r3, #0] + cmp r1, #0 + beq .L5397 + ands r0, r1, #15 + ldrne r3, [r4, #0] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #0] + mov r3, r1, lsr #4 + ands r0, r3, #15 + ldrne r3, [r4, #4] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #4] + mov r3, r1, lsr #8 + ands r0, r3, #15 + ldrne r3, [r4, #8] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #8] + mov r3, r1, lsr #12 + ands r0, r3, #15 + ldrne r3, [r4, #12] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #12] + mov r3, r1, lsr #16 + ands r0, r3, #15 + ldrne r3, [r4, #16] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #16] + mov r3, r1, lsr #20 + ands r0, r3, #15 + ldrne r3, [r4, #20] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #20] + mov r3, r1, lsr #24 + ands r0, r3, #15 + ldrne r3, [r4, #24] + orrne r2, r6, r5 + orrne r3, r0, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #24] + movs r1, r1, lsr #28 + ldrne r3, [r4, #28] + orrne r2, r6, r5 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + add r7, r7, #1 + strne r3, [r4, #28] + cmp sl, r7 + add r4, r4, #32 + add ip, ip, #2 + bne .L5392 +.L5470: + ldr r3, [sp, #0] + add r8, r8, sl, asl #5 + add r1, r3, sl, asl #1 +.L5391: + ands r4, r9, #7 + beq .L5444 + ldrh r1, [r1, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, lr, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, r1, lsr #12 + addne r0, r0, r3 + mov r2, r2, asl #4 + tst r1, #1024 + ldreq r0, [r0, #0] + orreq r2, r6, r2 + moveq lr, #0 + beq .L5440 + ldr r0, [r0, #0] + orr r2, r6, r2 + mov lr, #0 +.L5436: + movs r1, r0, lsr #28 + ldrne r3, [r8, #0] + add lr, lr, #1 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r8, #0] + cmp r4, lr + mov r0, r0, asl #4 + add r8, r8, #4 + bne .L5436 +.L5444: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5465: + and r3, r5, #7 + mov r2, lr, asl #12 + mov r3, r3, asl #3 + and r1, r4, #255 + and r2, r2, #49152 + add r2, r2, r3 + rsb sl, r1, #256 + mov r3, r3, asl #1 + rsb r3, r3, #56 + cmp fp, sl + add r0, r2, r9 + str r3, [sp, #4] + and ip, r4, #7 + bls .L5472 + cmp ip, #0 + moveq lr, ip + beq .L5055 + ldrh r2, [r7, #0] + rsb lr, ip, #8 + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r5, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + ands r2, r2, #1024 + bne .L5473 + cmp ip, #3 + bls .L5085 + cmp lr, #0 + ldr r1, [r5, #4] + beq .L5062 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov r4, r2 + mov r2, r8 +.L5088: + ands r3, r1, #255 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp lr, r4 + mov r1, r1, lsr #8 + add r2, r2, #4 + bne .L5088 + add r8, r8, lr, asl #2 +.L5062: + add r7, r7, #2 +.L5055: + rsb r3, lr, sl + movs lr, r3, lsr #3 + beq .L5109 + mov r4, r8 + mov ip, #0 + b .L5111 +.L5474: + ldr r1, [r5, #4] + cmp r1, #0 + beq .L5116 + ands r3, r1, #255 + ldrne r2, [r4, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #4] + movs r3, r1, lsr #24 + ldrne r2, [r4, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #0] +.L5116: + ldr r1, [r5, #0] + cmp r1, #0 + beq .L5125 + ands r3, r1, #255 + ldrne r2, [r4, #28] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #24] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #20] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #20] + movs r3, r1, lsr #24 + ldrne r2, [r4, #16] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #16] +.L5125: + add ip, ip, #1 + cmp lr, ip + add r4, r4, #32 + beq .L5151 +.L5475: + add r7, r7, #2 +.L5111: + ldrh r2, [r7, #0] + tst r2, #2048 + mov r3, r2, asl #22 + ldrne r1, [sp, #4] + mov r3, r3, lsr #22 + add r5, r0, r3, asl #6 + addne r5, r5, r1 + tst r2, #1024 + bne .L5474 + ldr r1, [r5, #0] + cmp r1, #0 + beq .L5134 + ands r3, r1, #255 + ldrne r2, [r4, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #8] + movs r3, r1, lsr #24 + ldrne r2, [r4, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #12] +.L5134: + ldr r1, [r5, #4] + cmp r1, #0 + beq .L5125 + ands r3, r1, #255 + ldrne r2, [r4, #16] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #16] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #20] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #20] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #24] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #24] + movs r3, r1, lsr #24 + ldrne r2, [r4, #28] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + add ip, ip, #1 + strne r3, [r4, #28] + cmp lr, ip + add r4, r4, #32 + bne .L5475 +.L5151: + add r8, r8, lr, asl #5 +.L5109: + rsb lr, sl, fp + movs sl, lr, lsr #3 + ldreq r1, [sp, #0] + beq .L5155 + ldr ip, [sp, #0] + mov r4, r8 + mov r7, #0 + b .L5156 +.L5477: + ldr r1, [r5, #4] + cmp r1, #0 + beq .L5161 + ands r3, r1, #255 + ldrne r2, [r4, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #4] + movs r3, r1, lsr #24 + ldrne r2, [r4, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #0] +.L5161: + ldr r1, [r5, #0] + cmp r1, #0 + beq .L5170 + ands r3, r1, #255 + ldrne r2, [r4, #28] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #24] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #20] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #20] + movs r3, r1, lsr #24 + ldrne r2, [r4, #16] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #16] +.L5170: + add r7, r7, #1 + cmp sl, r7 + add r4, r4, #32 + add ip, ip, #2 + beq .L5476 +.L5156: + ldrh r2, [ip, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r5, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + tst r2, #1024 + bne .L5477 + ldr r1, [r5, #0] + cmp r1, #0 + beq .L5179 + ands r3, r1, #255 + ldrne r2, [r4, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #8] + movs r3, r1, lsr #24 + ldrne r2, [r4, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #12] +.L5179: + ldr r1, [r5, #4] + cmp r1, #0 + beq .L5170 + ands r3, r1, #255 + ldrne r2, [r4, #16] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #16] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r4, #20] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #20] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r4, #24] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r4, #24] + movs r3, r1, lsr #24 + ldrne r2, [r4, #28] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + add r7, r7, #1 + strne r3, [r4, #28] + cmp sl, r7 + add r4, r4, #32 + add ip, ip, #2 + bne .L5156 +.L5476: + ldr r2, [sp, #0] + add r8, r8, sl, asl #5 + add r1, r2, sl, asl #1 +.L5155: + ands ip, lr, #7 + beq .L5444 + ldrh r1, [r1, #0] + mov r3, r1, asl #22 + mov r3, r3, lsr #22 + tst r1, #2048 + add r0, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r0, r0, r3 + tst r1, #1024 + beq .L5200 + cmp ip, #3 + ldrls r0, [r0, #4] + bls .L5214 + ldr r1, [r0, #4] + cmp r1, #0 + beq .L5204 + ands r3, r1, #255 + ldrne r2, [r8, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r8, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r8, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #4] + movs r3, r1, lsr #24 + ldrne r2, [r8, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #0] +.L5204: + subs ip, ip, #4 + ldr r0, [r0, #0] + addne r8, r8, #16 + beq .L5444 +.L5214: + mov r1, #0 +.L5215: + movs r3, r0, lsr #24 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp ip, r1 + mov r0, r0, asl #8 + add r8, r8, #4 + bhi .L5215 + b .L5444 +.L5464: + cmp r4, #255 + subhi r4, r4, #256 + movhi r3, r4, lsr #3 + movls r3, r4, lsr #3 + addhi r3, r1, r3, asl #1 + addls r7, r1, r3, asl #1 + addls r1, r1, #2048 + addhi r7, r3, #2048 + strhi r1, [sp, #0] + strls r1, [sp, #0] + tst lr, #128 + beq .L4853 + b .L5465 +.L5463: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_text_transparent_color32 +.L5466: + cmp r1, #0 + beq .L5238 + rsb r5, r1, #8 + cmp fp, r5 + bcc .L5478 + ldrh ip, [r7, #0] + mov r2, ip, asl #22 + mov r2, r2, lsr #22 + tst ip, #2048 + mov r3, ip, lsr #12 + mov r0, r3, asl #4 + add r3, lr, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst ip, #1024 + beq .L5258 + cmp r5, #0 + ldr r2, [r3, #0] + beq .L5260 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + orr r0, r6, r0 + mov r2, r8 + mov r4, #0 +.L5262: + movs ip, r1, lsr #28 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + orrne r3, r3, r0 + strne r3, [r2, #0] + cmp r5, r4 + mov r1, r1, asl #4 + add r2, r2, #4 + bne .L5262 +.L5459: + add r8, r8, r5, asl #2 +.L5260: + rsb fp, r5, fp + add r7, r7, #2 +.L5238: + movs r9, fp, lsr #3 + beq .L5273 + mov r4, r8 + mov ip, r7 + mov sl, #0 + b .L5275 +.L5486: + .align 2 +.L5485: + .word io_registers + .word map_widths + .word vram +.L5480: + ldr r5, [r3, #0] + cmp r5, #0 + beq .L5280 + ands r1, r5, #15 + ldrne r3, [r4, #28] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #28] + mov r3, r5, lsr #4 + ands r1, r3, #15 + ldrne r3, [r4, #24] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #24] + mov r3, r5, lsr #8 + ands r1, r3, #15 + ldrne r3, [r4, #20] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #20] + mov r3, r5, lsr #12 + ands r1, r3, #15 + ldrne r3, [r4, #16] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #16] + mov r3, r5, lsr #16 + ands r1, r3, #15 + ldrne r3, [r4, #12] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #12] + mov r3, r5, lsr #20 + ands r1, r3, #15 + ldrne r3, [r4, #8] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #8] + mov r3, r5, lsr #24 + ands r1, r3, #15 + ldrne r3, [r4, #4] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #4] + movs r5, r5, lsr #28 + beq .L5280 + ldr r3, [r4, #0] + orr r2, r6, r0 + orr r3, r5, r3, asl #16 + orr r3, r3, r2 + str r3, [r4, #0] +.L5280: + add sl, sl, #1 + cmp r9, sl + add r4, r4, #32 + add ip, ip, #2 + beq .L5479 +.L5275: + ldrh r1, [ip, #0] + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + tst r1, #2048 + mov r3, r1, lsr #12 + mov r0, r3, asl #4 + add r3, lr, r2, asl #5 + ldrne r2, [sp, #8] + addne r3, r3, r2 + tst r1, #1024 + bne .L5480 + ldr r5, [r3, #0] + cmp r5, #0 + beq .L5280 + ands r1, r5, #15 + ldrne r3, [r4, #0] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #0] + mov r3, r5, lsr #4 + ands r1, r3, #15 + ldrne r3, [r4, #4] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #4] + mov r3, r5, lsr #8 + ands r1, r3, #15 + ldrne r3, [r4, #8] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #8] + mov r3, r5, lsr #12 + ands r1, r3, #15 + ldrne r3, [r4, #12] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #12] + mov r3, r5, lsr #16 + ands r1, r3, #15 + ldrne r3, [r4, #16] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #16] + mov r3, r5, lsr #20 + ands r1, r3, #15 + ldrne r3, [r4, #20] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #20] + mov r3, r5, lsr #24 + ands r1, r3, #15 + ldrne r3, [r4, #24] + orrne r2, r6, r0 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r4, #24] + movs r5, r5, lsr #28 + ldrne r3, [r4, #28] + orrne r2, r6, r0 + orrne r3, r5, r3, asl #16 + orrne r3, r3, r2 + add sl, sl, #1 + strne r3, [r4, #28] + cmp r9, sl + add r4, r4, #32 + add ip, ip, #2 + bne .L5275 +.L5479: + add r8, r8, r9, asl #5 + add r7, r7, r9, asl #1 +.L5273: + ands r5, fp, #7 + beq .L5444 + ldrh r4, [r7, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r0, lr, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, r4, lsr #12 + addne r0, r0, r3 + mov r2, r2, asl #4 + tst r4, #1024 + ldreq r0, [r0, #0] + orreq r2, r6, r2 + moveq lr, #0 + beq .L5323 + ldr r0, [r0, #0] + orr r2, r6, r2 + mov lr, #0 +.L5319: + movs r1, r0, lsr #28 + ldrne r3, [r8, #0] + add lr, lr, #1 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r8, #0] + cmp r5, lr + mov r0, r0, asl #4 + add r8, r8, #4 + bne .L5319 + b .L5444 +.L5472: + cmp ip, #0 + beq .L4857 + rsb lr, ip, #8 + cmp fp, lr + bcc .L5481 + ldrh r2, [r7, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r5, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + ands r2, r2, #1024 + beq .L4920 + cmp ip, #3 + bls .L4922 + cmp lr, #0 + ldr r2, [r5, #0] + beq .L4924 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, asl r3 + mov r4, #0 + mov r2, r8 +.L4926: + movs r3, r1, lsr #24 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp lr, r4 + mov r1, r1, asl #8 + add r2, r2, #4 + bne .L4926 +.L5446: + add r8, r8, lr, asl #2 +.L4924: + rsb fp, lr, fp + add r7, r7, #2 +.L4857: + movs r9, fp, lsr #3 + beq .L4971 + mov r1, r8 + mov ip, r7 + mov sl, #0 + b .L4973 +.L5483: + ldr r4, [r5, #4] + cmp r4, #0 + beq .L4978 + ands r3, r4, #255 + ldrne r2, [r1, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #12] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [r1, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #8] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [r1, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #4] + movs r3, r4, lsr #24 + ldrne r2, [r1, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #0] +.L4978: + ldr r4, [r5, #0] + cmp r4, #0 + beq .L4987 + ands r3, r4, #255 + ldrne r2, [r1, #28] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #28] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [r1, #24] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #24] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [r1, #20] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #20] + movs r3, r4, lsr #24 + ldrne r2, [r1, #16] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #16] +.L4987: + add sl, sl, #1 + cmp r9, sl + add r1, r1, #32 + add ip, ip, #2 + beq .L5482 +.L4973: + ldrh r2, [ip, #0] + mov r3, r2, asl #22 + mov r3, r3, lsr #22 + tst r2, #2048 + add r5, r0, r3, asl #6 + ldrne r3, [sp, #4] + addne r5, r5, r3 + tst r2, #1024 + bne .L5483 + ldr r4, [r5, #0] + cmp r4, #0 + beq .L4996 + ands r3, r4, #255 + ldrne r2, [r1, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #0] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [r1, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #4] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [r1, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #8] + movs r3, r4, lsr #24 + ldrne r2, [r1, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #12] +.L4996: + ldr r4, [r5, #4] + cmp r4, #0 + beq .L4987 + ands r3, r4, #255 + ldrne r2, [r1, #16] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #16] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [r1, #20] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #20] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [r1, #24] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r1, #24] + movs r3, r4, lsr #24 + ldrne r2, [r1, #28] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + add sl, sl, #1 + strne r3, [r1, #28] + cmp r9, sl + add r1, r1, #32 + add ip, ip, #2 + bne .L4973 +.L5482: + add r8, r8, r9, asl #5 + add r7, r7, r9, asl #1 +.L4971: + ands ip, fp, #7 + beq .L5444 + ldrh r2, [r7, #0] + tst r2, #2048 + mov r3, r2, asl #22 + ldrne r1, [sp, #4] + mov r3, r3, lsr #22 + add r0, r0, r3, asl #6 + addne r0, r0, r1 + tst r2, #1024 + bne .L5484 + cmp ip, #3 + ldrls r0, [r0, #0] + bls .L5048 + ldr r1, [r0, #0] + cmp r1, #0 + beq .L5038 + ands r3, r1, #255 + ldrne r2, [r8, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r8, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r8, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #8] + movs r3, r1, lsr #24 + ldrne r2, [r8, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #12] +.L5038: + subs ip, ip, #4 + ldr r0, [r0, #4] + addne r8, r8, #16 + beq .L5444 +.L5048: + mov r1, #0 +.L5049: + ands r3, r0, #255 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp ip, r1 + mov r0, r0, lsr #8 + add r8, r8, #4 + bhi .L5049 + b .L5444 +.L5440: + ands r1, r0, #15 + ldrne r3, [r8, #0] + add lr, lr, #1 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r8, #0] + cmp r4, lr + mov r0, r0, lsr #4 + add r8, r8, #4 + bne .L5440 + b .L5444 +.L5323: + ands r1, r0, #15 + ldrne r3, [r8, #0] + add lr, lr, #1 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r8, #0] + cmp r5, lr + mov r0, r0, lsr #4 + add r8, r8, #4 + bne .L5323 + b .L5444 +.L5200: + cmp ip, #3 + ldrls r0, [r0, #0] + bls .L5231 + ldr r1, [r0, #0] + cmp r1, #0 + beq .L5221 + ands r3, r1, #255 + ldrne r2, [r8, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r8, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r8, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #8] + movs r3, r1, lsr #24 + ldrne r2, [r8, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #12] +.L5221: + subs ip, ip, #4 + ldr r0, [r0, #4] + addne r8, r8, #16 + beq .L5444 +.L5231: + mov r1, #0 +.L5232: + ands r3, r0, #255 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp ip, r1 + mov r0, r0, lsr #8 + add r8, r8, #4 + bhi .L5232 + b .L5444 +.L5484: + cmp ip, #3 + ldrls r0, [r0, #4] + bls .L5031 + ldr r1, [r0, #4] + cmp r1, #0 + beq .L5021 + ands r3, r1, #255 + ldrne r2, [r8, #12] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r2, [r8, #8] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r2, [r8, #4] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #4] + movs r3, r1, lsr #24 + ldrne r2, [r8, #0] + orrne r3, r6, r3 + orrne r3, r3, r2, asl #16 + strne r3, [r8, #0] +.L5021: + subs ip, ip, #4 + ldr r0, [r0, #0] + addne r8, r8, #16 + beq .L5444 +.L5031: + mov r1, #0 +.L5032: + movs r3, r0, lsr #24 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp ip, r1 + mov r0, r0, asl #8 + add r8, r8, #4 + bhi .L5032 + b .L5444 +.L5473: + cmp ip, #3 + bls .L5060 + cmp lr, #0 + ldr r2, [r5, #0] + beq .L5062 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, asl r3 + mov r4, #0 + mov r2, r8 +.L5064: + movs r3, r1, lsr #24 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp lr, r4 + mov r1, r1, asl #8 + add r2, r2, #4 + bne .L5064 + add r8, r8, lr, asl #2 + b .L5062 +.L5467: + cmp r5, #0 + ldr r2, [r3, #0] + beq .L5334 + mov r3, r1, asl #2 + mov r1, r2, asl r3 + orr r0, r6, r0 + mov r2, r8 + mov ip, #0 +.L5336: + movs r4, r1, lsr #28 + ldrne r3, [r2, #0] + add ip, ip, #1 + orrne r3, r4, r3, asl #16 + orrne r3, r3, r0 + strne r3, [r2, #0] + cmp r5, ip + mov r1, r1, asl #4 + add r2, r2, #4 + bne .L5336 + add r8, r8, r5, asl #2 + b .L5334 +.L5478: + ldrh r4, [r7, #0] + mov r3, r4, asl #22 + mov r3, r3, lsr #22 + tst r4, #2048 + add r0, lr, r3, asl #5 + ldrne r3, [sp, #8] + mov r2, r4, lsr #12 + addne r0, r0, r3 + tst r4, #1024 + mov r2, r2, asl #4 + beq .L5244 + cmp fp, #0 + ldr r0, [r0, #0] + beq .L5444 + mov r3, r1, asl #2 + mov r0, r0, asl r3 + orr r2, r6, r2 + mov lr, #0 +.L5247: + movs r1, r0, lsr #28 + ldrne r3, [r8, #0] + add lr, lr, #1 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r8, #0] + cmp fp, lr + mov r0, r0, asl #4 + add r8, r8, #4 + bne .L5247 + b .L5444 +.L5481: + ldrh r2, [r7, #0] + tst r2, #2048 + mov r3, r2, asl #22 + ldrne r1, [sp, #4] + mov r3, r3, lsr #22 + add r0, r0, r3, asl #6 + addne r0, r0, r1 + tst r2, #1024 + beq .L4863 + cmp ip, #3 + bls .L4865 + cmp fp, #0 + ldr r0, [r0, #0] + beq .L5444 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r0, r0, asl r3 + mov r1, #0 +.L4869: + movs r3, r0, lsr #24 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp fp, r1 + mov r0, r0, asl #8 + add r8, r8, #4 + bne .L4869 + b .L5444 +.L5060: + subs r9, lr, #4 + ldr r2, [r5, #4] + beq .L5069 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, asl r3 + mov r4, #0 + mov r2, r8 +.L5071: + movs r3, r1, lsr #24 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp r9, r4 + mov r1, r1, asl #8 + add r2, r2, #4 + bne .L5071 + add r3, r8, lr, asl #2 + sub r8, r3, #16 +.L5069: + ldr r2, [r5, #0] + cmp r2, #0 + beq .L5100 + ands r1, r2, #255 + ldrne r3, [r8, #12] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #12] + mov r3, r2, lsr #8 + ands r1, r3, #255 + ldrne r3, [r8, #8] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #8] + mov r3, r2, lsr #16 + ands r1, r3, #255 + ldrne r3, [r8, #4] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #4] + movs r2, r2, lsr #24 + ldrne r3, [r8, #0] + orrne r3, r6, r3, asl #16 + orrne r3, r2, r3 + strne r3, [r8, #0] +.L5100: + add r8, r8, #16 + mov lr, r9 + add r7, r7, #2 + b .L5055 +.L5258: + cmp r5, #0 + ldr r2, [r3, #0] + beq .L5260 + mov r3, r1, asl #2 + mov r1, r2, lsr r3 + orr r0, r6, r0 + mov r2, r8 + mov r4, #0 +.L5268: + ands ip, r1, #15 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + orrne r3, r3, r0 + strne r3, [r2, #0] + cmp r5, r4 + mov r1, r1, lsr #4 + add r2, r2, #4 + bne .L5268 + b .L5459 +.L4920: + cmp ip, #3 + bls .L4947 + cmp lr, #0 + ldr r1, [r5, #4] + beq .L4924 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, lsr r3 + mov r4, r2 + mov r2, r8 +.L4950: + ands r3, r1, #255 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp lr, r4 + mov r1, r1, lsr #8 + add r2, r2, #4 + bne .L4950 + b .L5446 +.L5244: + cmp fp, #0 + ldr r0, [r0, #0] + beq .L5444 + mov r3, r1, asl #2 + mov r0, r0, lsr r3 + orr r2, r6, r2 + mov lr, #0 +.L5252: + ands r1, r0, #15 + ldrne r3, [r8, #0] + add lr, lr, #1 + orrne r3, r1, r3, asl #16 + orrne r3, r3, r2 + strne r3, [r8, #0] + cmp fp, lr + mov r0, r0, lsr #4 + add r8, r8, #4 + bne .L5252 + b .L5444 +.L4863: + cmp ip, #3 + bls .L4892 + cmp fp, #0 + ldr r0, [r0, #4] + beq .L5444 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r0, r0, lsr r3 + mov r1, #0 +.L4895: + ands r3, r0, #255 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp fp, r1 + mov r0, r0, lsr #8 + add r8, r8, #4 + bne .L4895 + b .L5444 +.L5085: + subs r9, lr, #4 + ldr r2, [r5, #0] + beq .L5093 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r4, #0 + mov r2, r8 +.L5095: + ands r3, r1, #255 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp r9, r4 + mov r1, r1, lsr #8 + add r2, r2, #4 + bne .L5095 + add r3, r8, lr, asl #2 + sub r8, r3, #16 +.L5093: + ldr r2, [r5, #4] + cmp r2, #0 + beq .L5100 + ands r1, r2, #255 + ldrne r3, [r8, #0] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #0] + mov r3, r2, lsr #8 + ands r1, r3, #255 + ldrne r3, [r8, #4] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #4] + mov r3, r2, lsr #16 + ands r1, r3, #255 + ldrne r3, [r8, #8] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #8] + movs r2, r2, lsr #24 + ldrne r3, [r8, #12] + orrne r3, r6, r3, asl #16 + orrne r3, r2, r3 + strne r3, [r8, #12] + b .L5100 +.L4922: + subs sl, lr, #4 + ldr r2, [r5, #4] + beq .L4931 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, asl r3 + mov r4, #0 + mov r2, r8 +.L4933: + movs r3, r1, lsr #24 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp sl, r4 + mov r1, r1, asl #8 + add r2, r2, #4 + bne .L4933 + add r3, r8, lr, asl #2 + sub r8, r3, #16 +.L4931: + ldr r2, [r5, #0] + cmp r2, #0 + beq .L4962 + ands r1, r2, #255 + ldrne r3, [r8, #12] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #12] + mov r3, r2, lsr #8 + ands r1, r3, #255 + ldrne r3, [r8, #8] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #8] + mov r3, r2, lsr #16 + ands r1, r3, #255 + ldrne r3, [r8, #4] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #4] + movs r2, r2, lsr #24 + ldrne r3, [r8, #0] + orrne r3, r6, r3, asl #16 + orrne r3, r2, r3 + strne r3, [r8, #0] +.L4962: + add r8, r8, #16 + b .L4924 +.L4865: + mov r3, ip, asl #3 + ldr r1, [r0, #4] + add r2, fp, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L4873 + cmp fp, #0 + movne r0, #0 + beq .L5444 +.L4888: + movs r3, r1, lsr #24 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r0, r0, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp fp, r0 + mov r1, r1, asl #8 + add r8, r8, #4 + bne .L4888 + b .L5444 +.L4947: + subs sl, lr, #4 + ldr r2, [r5, #0] + beq .L4955 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r4, #0 + mov r2, r8 +.L4957: + ands r3, r1, #255 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp sl, r4 + mov r1, r1, lsr #8 + add r2, r2, #4 + bne .L4957 + add r3, r8, lr, asl #2 + sub r8, r3, #16 +.L4955: + ldr r2, [r5, #4] + cmp r2, #0 + beq .L4962 + ands r1, r2, #255 + ldrne r3, [r8, #0] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #0] + mov r3, r2, lsr #8 + ands r1, r3, #255 + ldrne r3, [r8, #4] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #4] + mov r3, r2, lsr #16 + ands r1, r3, #255 + ldrne r3, [r8, #8] + orrne r3, r6, r3, asl #16 + orrne r3, r1, r3 + strne r3, [r8, #8] + movs r2, r2, lsr #24 + ldrne r3, [r8, #12] + orrne r3, r6, r3, asl #16 + orrne r3, r2, r3 + strne r3, [r8, #12] + add r8, r8, #16 + b .L4924 +.L4892: + add r2, fp, ip + ldr r3, [r0, #0] + cmp r2, #4 + mov r1, ip, asl #3 + mov r2, r3, lsr r1 + bhi .L4899 + cmp fp, #0 + movne r0, #0 + beq .L5444 +.L4914: + ands r3, r2, #255 + orr r1, r6, r3 + ldrne r3, [r8, #0] + add r0, r0, #1 + orrne r3, r1, r3, asl #16 + strne r3, [r8, #0] + cmp fp, r0 + mov r2, r2, lsr #8 + add r8, r8, #4 + bne .L4914 + b .L5444 +.L4873: + rsbs r5, ip, #4 + beq .L4876 + mov r2, r8 + mov r4, #0 +.L4878: + movs r3, r1, lsr #24 + orr ip, r6, r3 + ldrne r3, [r2, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r2, #0] + cmp r5, r4 + mov r1, r1, asl #8 + add r2, r2, #4 + bne .L4878 + add r8, r8, r5, asl #2 +.L4876: + subs ip, fp, r5 + ldr r0, [r0, #0] + beq .L5444 + mov r1, #0 +.L4884: + movs r3, r0, lsr #24 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp ip, r1 + mov r0, r0, asl #8 + add r8, r8, #4 + bne .L4884 + b .L5444 +.L4899: + rsbs r5, ip, #4 + beq .L4902 + mov r1, r8 + mov r4, #0 +.L4904: + ands r3, r2, #255 + orr ip, r6, r3 + ldrne r3, [r1, #0] + add r4, r4, #1 + orrne r3, ip, r3, asl #16 + strne r3, [r1, #0] + cmp r5, r4 + mov r2, r2, lsr #8 + add r1, r1, #4 + bne .L4904 + add r8, r8, r5, asl #2 +.L4902: + subs ip, fp, r5 + ldr r0, [r0, #4] + beq .L5444 + mov r1, #0 +.L4910: + ands r3, r0, #255 + orr r2, r6, r3 + ldrne r3, [r8, #0] + add r1, r1, #1 + orrne r3, r2, r3, asl #16 + strne r3, [r8, #0] + cmp ip, r1 + mov r0, r0, lsr #8 + add r8, r8, #4 + bne .L4910 + b .L5444 + .size render_scanline_text_transparent_alpha, .-render_scanline_text_transparent_alpha + .align 2 + .global render_scanline_affine_base_normal + .type render_scanline_affine_base_normal, %function +render_scanline_affine_base_normal: + @ args = 0, pretend = 0, frame = 24 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5544 + mov lr, r0, asl #4 + add ip, r5, r0, asl #1 + ldrh r4, [ip, #8] + ldr ip, .L5544+4 + sub r0, r0, #2 + sub lr, lr, #32 + add lr, lr, r5 + ldr sl, [ip, r0, asl #2] + ldr ip, .L5544+8 + ldrsh fp, [lr, #36] + mov r6, r4, lsr #14 + ldr r7, .L5544+12 + mov r5, r4, lsr #12 + ldrsh r9, [lr, #32] + mov lr, r4, asl #3 + mov r4, r4, asl #12 + ldr r8, [ip, r0, asl #2] + and r5, r5, #2 + and lr, lr, #63488 + and r4, r4, #49152 + sub sp, sp, #24 + add ip, r6, #7 + add r4, r4, r7 + add lr, lr, r7 + mov r0, #1 + add r6, r6, #4 + cmp fp, #0 + orrne r5, r5, #1 + mov r0, r0, asl ip + str r4, [sp, #16] + mla ip, r9, r1, r8 + rsb r4, r1, r2 + str r6, [sp, #8] + str lr, [sp, #12] + add r7, r3, r1, asl #1 + mla r8, fp, r1, sl + cmp r5, #3 + ldrls pc, [pc, r5, asl #2] + b .L5531 + .p2align 2 +.L5493: + .word .L5489 + .word .L5490 + .word .L5491 + .word .L5492 +.L5491: + sub sl, r0, #1 + and r3, sl, r8, asr #8 + cmp r0, r3 + bhi .L5541 +.L5531: + add sp, sp, #24 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5489: + mov r3, r8, asr #8 + ldr sl, .L5544+16 + cmp r0, r3 + ldrh r1, [sl, #0] + bls .L5497 + ldr r5, [sp, #12] + ldr lr, [sp, #8] + mov r2, r3, lsr #3 + add r6, r5, r2, asl lr + ldr r2, [sp, #16] + and r3, r3, #7 + cmp r4, #0 + add fp, r2, r3, asl #3 + beq .L5497 + mov r5, ip, asr #8 + cmp r0, r5 + movhi r8, #0 + bhi .L5536 + mov r3, r1, asl #16 + mov r3, r3, lsr #16 + mov r8, #0 +.L5504: + add r8, r8, #1 + add ip, ip, r9 + cmp r4, r8 + mov r2, ip, asr #8 + strh r3, [r7], #2 @ movhi + beq .L5496 + cmp r0, r2 + bls .L5504 + mov r5, r2 + b .L5536 +.L5490: + ldr r5, .L5544+16 + cmp r4, #0 + ldrh r3, [r5, #0] + beq .L5531 + mov r1, r8, asr #8 + mov r5, ip, asr #8 + cmp r0, r5 + cmphi r0, r1 + movls r2, #0 + movhi r2, #1 + movls r3, r3, asl #16 + movls r1, r3, lsr #16 + movls sl, r2 + bls .L5512 + b .L5543 +.L5513: + cmp r0, r2 + cmphi r0, r3 + bhi .L5514 +.L5512: + add sl, sl, #1 + add ip, ip, r9 + add r8, r8, fp + cmp r4, sl + strh r1, [r7, #0] @ movhi + mov r2, ip, asr #8 + mov r3, r8, asr #8 + add r7, r7, #2 + bne .L5513 + b .L5531 +.L5492: + cmp r4, #0 + sub lr, r0, #1 + beq .L5531 + mvn r6, #0 + mov r0, #0 +.L5527: + and r3, lr, r8, asr #8 + ldr r5, [sp, #8] + mov r2, r3, lsr #3 + mov r2, r2, asl r5 + and r1, lr, ip, asr #8 + and sl, r3, #7 + add r3, r2, r1, lsr #3 + cmp r3, r6 + and r5, r1, #7 + ldrne r1, [sp, #12] + mov r6, r3 + ldrne r2, [sp, #16] + ldrneb r3, [r1, r3] @ zero_extendqisi2 + add r0, r0, #1 + addne r3, r2, r3, asl #6 + strne r3, [sp, #4] + ldr r3, [sp, #4] + cmp r4, r0 + add r2, r3, sl, asl #3 + ldrb r3, [r2, r5] @ zero_extendqisi2 + ldr r5, .L5544+16 + mov r3, r3, asl #1 + ldrh r3, [r3, r5] + add ip, ip, r9 + strh r3, [r7, #0] @ movhi + add r8, r8, fp + add r7, r7, #2 + bne .L5527 + b .L5531 +.L5541: + ldr r0, [sp, #12] + ldr r1, [sp, #8] + mov r2, r3, lsr #3 + add r6, r0, r2, asl r1 + ldr r2, [sp, #16] + and r3, r3, #7 + cmp r4, #0 + add r5, r2, r3, asl #3 + beq .L5531 + ldr lr, .L5544+16 + mov r0, #0 +.L5525: + and r3, sl, ip, asr #8 + ldrb r1, [r6, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r1, asl #6 + ldrb r2, [r3, r5] @ zero_extendqisi2 + add r0, r0, #1 + mov r2, r2, asl #1 + ldrh r2, [r2, lr] + cmp r4, r0 + strh r2, [r7], #2 @ movhi + add ip, ip, r9 + bne .L5525 + b .L5531 +.L5497: + mov r8, #0 +.L5496: + cmp r8, r4 + ldrh r3, [sl, #0] + bcs .L5531 + mov r3, r3, asl #16 + rsb r2, r8, r4 + mov r3, r3, lsr #16 + mov r1, #0 +.L5508: + add r1, r1, #1 + cmp r2, r1 + strh r3, [r7], #2 @ movhi + bne .L5508 + b .L5531 +.L5506: + cmp r0, r5 + bls .L5496 +.L5536: + ldrb r3, [r6, r5, lsr #3] @ zero_extendqisi2 + and r2, r5, #7 + add r2, r2, r3, asl #6 + ldrb r1, [r2, fp] @ zero_extendqisi2 + add r8, r8, #1 + mov r1, r1, asl #1 + ldrh r1, [r1, sl] + add ip, ip, r9 + cmp r4, r8 + mov r5, ip, asr #8 + strh r1, [r7], #2 @ movhi + bhi .L5506 + b .L5496 +.L5514: + mov r5, r2 + mov r1, r3 +.L5515: + cmp r0, r1 + cmphi r0, r5 + mvnhi r6, #0 + bhi .L5519 + b .L5516 +.L5518: + cmp r0, r1 + cmphi r0, r5 + bls .L5516 +.L5519: + ldr r2, [sp, #8] + mov r3, r1, lsr #3 + mov r3, r3, asl r2 + add r3, r3, r5, lsr #3 + cmp r3, r6 + ldrne r2, [sp, #12] + and r1, r1, #7 + str r1, [sp, #0] + mov r6, r3 + ldrneb r3, [r2, r3] @ zero_extendqisi2 + ldrne r2, [sp, #16] + and lr, r5, #7 + addne r3, r2, r3, asl #6 + strne r3, [sp, #20] + ldr r2, [sp, #0] + ldr r3, [sp, #20] + add sl, sl, #1 + add r3, r3, r2, asl #3 + str r3, [sp, #0] + ldrb r3, [r3, lr] @ zero_extendqisi2 + ldr lr, .L5544+16 + mov r3, r3, asl #1 + ldrh r3, [r3, lr] + add ip, ip, r9 + add r8, r8, fp + cmp r4, sl + strh r3, [r7, #0] @ movhi + mov r1, r8, asr #8 + mov r5, ip, asr #8 + add r7, r7, #2 + bhi .L5518 + b .L5531 +.L5516: + ldr lr, .L5544+16 + ldrh r3, [lr, #0] +.L5520: + add sl, sl, #1 + cmp r4, sl + strh r3, [r7], #2 @ movhi + bhi .L5520 + b .L5531 +.L5543: + mov sl, #0 + b .L5515 +.L5545: + .align 2 +.L5544: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .word palette_ram_converted + .size render_scanline_affine_base_normal, .-render_scanline_affine_base_normal + .align 2 + .global render_scanline_affine_transparent_normal + .type render_scanline_affine_transparent_normal, %function +render_scanline_affine_transparent_normal: + @ args = 0, pretend = 0, frame = 28 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5602 + mov lr, r0, asl #4 + add ip, r5, r0, asl #1 + ldrh r4, [ip, #8] + ldr ip, .L5602+4 + sub r0, r0, #2 + sub lr, lr, #32 + add lr, lr, r5 + ldr sl, [ip, r0, asl #2] + ldr ip, .L5602+8 + ldrsh fp, [lr, #36] + mov r6, r4, lsr #14 + ldr r7, .L5602+12 + mov r5, r4, lsr #12 + ldrsh r9, [lr, #32] + mov lr, r4, asl #3 + mov r4, r4, asl #12 + ldr r8, [ip, r0, asl #2] + and r5, r5, #2 + and lr, lr, #63488 + and r4, r4, #49152 + sub sp, sp, #28 + add ip, r6, #7 + add r4, r4, r7 + add lr, lr, r7 + mov r0, #1 + add r6, r6, #4 + cmp fp, #0 + orrne r5, r5, #1 + mov r0, r0, asl ip + str r4, [sp, #16] + str lr, [sp, #12] + rsb r4, r1, r2 + str r6, [sp, #8] + add lr, r3, r1, asl #1 + mla ip, r9, r1, r8 + mla r7, fp, r1, sl + cmp r5, #3 + ldrls pc, [pc, r5, asl #2] + b .L5594 + .p2align 2 +.L5552: + .word .L5548 + .word .L5549 + .word .L5550 + .word .L5551 +.L5548: + mov r3, r7, asr #8 + cmp r0, r3 + bhi .L5597 +.L5594: + add sp, sp, #28 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5549: + cmp r4, #0 + beq .L5594 + mov r5, ip, asr #8 + mov r1, r7, asr #8 + cmp r0, r5 + cmphi r0, r1 + movls r3, #0 + movhi r3, #1 + movls r8, r3 + bls .L5556 + b .L5600 +.L5570: + cmp r0, r2 + cmphi r0, r3 + bhi .L5571 +.L5556: + add r8, r8, #1 + add ip, ip, r9 + add r7, r7, fp + cmp r4, r8 + mov r2, ip, asr #8 + mov r3, r7, asr #8 + add lr, lr, #2 + bne .L5570 + b .L5594 +.L5550: + sub r8, r0, #1 + and r3, r8, r7, asr #8 + cmp r0, r3 + bls .L5594 + ldr r0, [sp, #12] + ldr r1, [sp, #8] + mov r2, r3, lsr #3 + add r6, r0, r2, asl r1 + ldr r2, [sp, #16] + and r3, r3, #7 + cmp r4, #0 + add r5, r2, r3, asl #3 + beq .L5594 + ldr r7, .L5602+16 + mov r0, #0 +.L5583: + and r3, r8, ip, asr #8 + ldrb r2, [r6, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r2, asl #6 + ldrb r1, [r3, r5] @ zero_extendqisi2 + mov r3, r0, asl #1 + cmp r1, #0 + mov r1, r1, asl #1 + ldrneh r1, [r1, r7] + add r0, r0, #1 + strneh r1, [r3, lr] @ movhi + cmp r4, r0 + add ip, ip, r9 + bne .L5583 + b .L5594 +.L5551: + cmp r4, #0 + sub r6, r0, #1 + beq .L5594 + mvn r3, #0 + str r3, [sp, #24] + mov r5, #0 +.L5588: + and r3, r6, r7, asr #8 + ldr sl, [sp, #8] + mov r2, r3, lsr #3 + mov r2, r2, asl sl + and r1, r6, ip, asr #8 + and r0, r3, #7 + and r8, r1, #7 + add r3, r2, r1, lsr #3 + ldr r1, [sp, #24] + str r3, [sp, #24] + cmp r3, r1 + ldrne r2, [sp, #12] + ldrne r1, [sp, #16] + ldrneb r3, [r2, r3] @ zero_extendqisi2 + mov sl, r5, asl #1 + addne r3, r1, r3, asl #6 + strne r3, [sp, #4] + ldr r2, [sp, #4] + add r5, r5, #1 + add r3, r2, r0, asl #3 + ldrb r2, [r3, r8] @ zero_extendqisi2 + add ip, ip, r9 + cmp r2, #0 + ldrne r3, .L5602+16 + mov r1, r2, asl #1 + ldrneh r1, [r1, r3] + add r7, r7, fp + strneh r1, [sl, lr] @ movhi + cmp r4, r5 + bne .L5588 + b .L5594 +.L5597: + ldr r1, [sp, #12] + ldr r5, [sp, #8] + ldr sl, [sp, #16] + mov r2, r3, lsr #3 + cmp r4, #0 + and r3, r3, #7 + add r6, r1, r2, asl r5 + add r8, sl, r3, asl #3 + beq .L5594 + mov r5, ip, asr #8 + cmp r0, r5 + movls r7, #0 + bls .L5563 + b .L5601 +.L5561: + cmp r0, r2 + add lr, lr, #2 + bhi .L5562 +.L5563: + add r7, r7, #1 + add ip, ip, r9 + cmp r4, r7 + mov r2, ip, asr #8 + bne .L5561 + b .L5594 +.L5571: + mov r5, r2 + mov r1, r3 +.L5572: + cmp r1, r0 + movcc r3, #0 + movcs r3, #1 + cmp r0, r5 + orrls r3, r3, #1 + cmp r3, #0 + mvneq r6, #0 + beq .L5574 + b .L5594 +.L5575: + cmp r0, r1 + cmphi r0, r5 + bls .L5594 +.L5574: + ldr r2, [sp, #8] + mov r3, r1, lsr #3 + mov r3, r3, asl r2 + add r3, r3, r5, lsr #3 + cmp r3, r6 + and r2, r5, #7 + str r2, [sp, #0] + ldrne r2, [sp, #12] + mov r6, r3 + ldrneb r3, [r2, r3] @ zero_extendqisi2 + ldrne r2, [sp, #16] + and sl, r1, #7 + addne r3, r2, r3, asl #6 + strne r3, [sp, #20] + ldr r2, [sp, #20] + add r8, r8, #1 + add r3, r2, sl, asl #3 + ldr sl, [sp, #0] + add ip, ip, r9 + ldrb r2, [r3, sl] @ zero_extendqisi2 + add r7, r7, fp + cmp r2, #0 + ldrne r3, .L5602+16 + mov r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov r1, r7, asr #8 + strneh r2, [lr, #0] @ movhi + cmp r4, r8 + mov r5, ip, asr #8 + add lr, lr, #2 + bhi .L5575 + b .L5594 +.L5562: + mov r5, r2 +.L5564: + cmp r5, r0 + bcc .L5596 + b .L5594 +.L5566: + cmp r0, r5 + bls .L5594 +.L5596: + ldrb r3, [r6, r5, lsr #3] @ zero_extendqisi2 + and r2, r5, #7 + add r2, r2, r3, asl #6 + ldrb r1, [r2, r8] @ zero_extendqisi2 + add r7, r7, #1 + cmp r1, #0 + ldrne r3, .L5602+16 + mov r1, r1, asl #1 + ldrneh r1, [r1, r3] + add ip, ip, r9 + strneh r1, [lr, #0] @ movhi + cmp r4, r7 + mov r5, ip, asr #8 + add lr, lr, #2 + bhi .L5566 + b .L5594 +.L5600: + mov r8, #0 + b .L5572 +.L5601: + mov r7, #0 + b .L5564 +.L5603: + .align 2 +.L5602: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .word palette_ram_converted + .size render_scanline_affine_transparent_normal, .-render_scanline_affine_transparent_normal + .align 2 + .global render_scanline_affine_base_color16 + .type render_scanline_affine_base_color16, %function +render_scanline_affine_base_color16: + @ args = 0, pretend = 0, frame = 36 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5672 + add r7, r0, #7 + ldrh r6, [r5, #80] + mov lr, r0, asl #4 + mov sl, r6, asr r0 + mov r7, r6, asr r7 + sub lr, lr, #32 + add ip, r5, r0, asl #1 + add lr, lr, r5 + ldrh r4, [ip, #8] + ldrsh ip, [lr, #36] + sub sp, sp, #36 + str ip, [sp, #24] + ldr ip, .L5672+4 + sub r0, r0, #2 + ldr ip, [ip, r0, asl #2] + mov r8, r4, lsr #12 + str ip, [sp, #4] + ldr ip, .L5672+8 + mov r9, r4, lsr #14 + ldr r0, [ip, r0, asl #2] + ldrsh lr, [lr, #32] + str r0, [sp, #8] + ldr r0, [sp, #24] + and r8, r8, #2 + add ip, r9, #7 + cmp r0, #0 + orrne r8, r8, #1 + mov r0, #1 + mov r5, r6, lsr #12 + str lr, [sp, #12] + mov ip, r0, asl ip + mov lr, r4, asl #3 + ldr r0, .L5672+12 + mov r4, r4, asl #12 + and r7, r7, #2 + mov r6, r6, asl #26 + and r5, r5, #2 + and sl, sl, #1 + and lr, lr, #63488 + and r4, r4, #49152 + orr r5, r5, r6, lsr #31 + orr sl, sl, r7 + add r4, r4, r0 + add lr, lr, r0 + rsb fp, r1, r2 + add r7, r3, r1, asl #1 + ldr r6, [sp, #8] + ldr r2, [sp, #12] + ldr r0, [sp, #4] + ldr r3, [sp, #24] + mov r5, r5, asl #9 + mov sl, sl, asl #9 + str r4, [sp, #32] + str r5, [sp, #16] + str sl, [sp, #20] + add r9, r9, #4 + str lr, [sp, #28] + mla r6, r2, r1, r6 + mla r0, r3, r1, r0 + cmp r8, #3 + ldrls pc, [pc, r8, asl #2] + b .L5661 + .p2align 2 +.L5610: + .word .L5606 + .word .L5607 + .word .L5608 + .word .L5609 +.L5608: + sub lr, ip, #1 + and r3, lr, r0, asr #8 + cmp ip, r3 + bhi .L5669 +.L5661: + add sp, sp, #36 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5606: + mov r3, r0, asr #8 + cmp ip, r3 + movls r0, #0 + bls .L5617 + ldr r0, [sp, #28] + ldr r1, [sp, #32] + mov r2, r3, lsr #3 + cmp fp, #0 + and r3, r3, #7 + add r9, r0, r2, asl r9 + add r4, r1, r3, asl #3 + beq .L5661 + mov r2, r6, asr #8 + cmp ip, r2 + movhi r0, #0 + bhi .L5664 + ldr r2, [sp, #16] + mov r0, #0 + mov r3, r2, asl #16 + mov r3, r3, lsr #16 + b .L5625 +.L5623: + cmp ip, r2 + bhi .L5664 +.L5625: + ldr r1, [sp, #12] + add r0, r0, #1 + add r6, r6, r1 + cmp fp, r0 + mov r2, r6, asr #8 + strh r3, [r7], #2 @ movhi + bne .L5623 +.L5617: + cmp r0, fp + bcs .L5661 + ldr r2, [sp, #16] + mov r1, #0 + mov r3, r2, asl #16 + mov r3, r3, lsr #16 + rsb r2, r0, fp +.L5632: + add r1, r1, #1 + cmp r1, r2 + strh r3, [r7], #2 @ movhi + bne .L5632 + b .L5661 +.L5607: + cmp fp, #0 + beq .L5661 + mov r1, r6, asr #8 + mov r2, r0, asr #8 + cmp ip, r1 + cmphi ip, r2 + ldrls r4, [sp, #16] + movls r8, #0 + movhi r8, #1 + movls r3, r4, asl #16 + movls r1, r3, lsr #16 + bls .L5614 + b .L5671 +.L5633: + cmp ip, r2 + cmphi ip, r3 + bhi .L5634 +.L5614: + ldr r3, [sp, #12] + ldr r4, [sp, #24] + add r8, r8, #1 + add r6, r6, r3 + add r0, r0, r4 + cmp fp, r8 + strh r1, [r7, #0] @ movhi + mov r2, r6, asr #8 + mov r3, r0, asr #8 + add r7, r7, #2 + bne .L5633 + b .L5661 +.L5609: + cmp fp, #0 + sub sl, ip, #1 + beq .L5661 + mvn r5, #0 + mov r4, #0 +.L5654: + and r3, sl, r0, asr #8 + mov r2, r3, lsr #3 + mov r2, r2, asl r9 + and r1, sl, r6, asr #8 + add ip, r2, r1, lsr #3 + cmp ip, r5 + and r8, r1, #7 + ldrne r1, [sp, #28] + and lr, r3, #7 + ldrne r2, [sp, #32] + ldrneb r3, [r1, ip] @ zero_extendqisi2 + add r4, r4, #1 + addne r3, r2, r3, asl #6 + strne r3, [sp, #0] + ldr r1, [sp, #0] + mov r5, ip + add r3, r1, lr, asl #3 + ldrb r2, [r3, r8] @ zero_extendqisi2 + ldr r3, [sp, #20] + cmp r2, #0 + orr r1, r2, r3 + ldreq r1, [sp, #16] + ldr r2, [sp, #12] + ldr r3, [sp, #24] + cmp fp, r4 + strh r1, [r7, #0] @ movhi + add r6, r6, r2 + add r0, r0, r3 + add r7, r7, #2 + bne .L5654 + b .L5661 +.L5669: + ldr r4, [sp, #28] + ldr ip, [sp, #32] + mov r2, r3, lsr #3 + cmp fp, #0 + and r3, r3, #7 + add r9, r4, r2, asl r9 + add r4, ip, r3, asl #3 + beq .L5661 + mov r0, #0 +.L5648: + and r3, lr, r6, asr #8 + ldrb r1, [r9, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r1, asl #6 + ldrb r2, [r3, r4] @ zero_extendqisi2 + ldr r1, [sp, #20] + cmp r2, #0 + add r0, r0, #1 + orr r2, r2, r1 + ldr r3, [sp, #12] + ldreq r2, [sp, #16] + cmp fp, r0 + strh r2, [r7, #0] @ movhi + add r6, r6, r3 + add r7, r7, #2 + bne .L5648 + b .L5661 +.L5627: + cmp ip, r2 + bls .L5617 +.L5664: + ldrb r3, [r9, r2, lsr #3] @ zero_extendqisi2 + and r2, r2, #7 + add r2, r2, r3, asl #6 + ldrb r1, [r2, r4] @ zero_extendqisi2 + ldr r2, [sp, #20] + cmp r1, #0 + orr r1, r1, r2 + strneh r1, [r7, #0] @ movhi + ldreq r3, [sp, #16] + ldr r1, [sp, #12] + add r0, r0, #1 + streqh r3, [r7, #0] @ movhi + add r6, r6, r1 + cmp fp, r0 + add r7, r7, #2 + mov r2, r6, asr #8 + bhi .L5627 + b .L5617 +.L5634: + mov r1, r2 + mov r2, r3 +.L5635: + cmp r2, ip + cmpcc r1, ip + mvncc r4, #0 + bcc .L5639 + b .L5636 +.L5638: + cmp ip, r2 + cmphi ip, r1 + bls .L5636 +.L5639: + mov r3, r2, lsr #3 + mov r3, r3, asl r9 + and lr, r2, #7 + and r2, r1, #7 + add r1, r3, r1, lsr #3 + cmp r1, r4 + ldrne r4, [sp, #28] + add r8, r8, #1 + ldrneb r3, [r4, r1] @ zero_extendqisi2 + ldrne r4, [sp, #32] + addne r5, r4, r3, asl #6 + add r3, r5, lr, asl #3 + ldrb r2, [r3, r2] @ zero_extendqisi2 + ldr r3, [sp, #20] + cmp r2, #0 + orr r2, r2, r3 + strneh r2, [r7, #0] @ movhi + ldreq r4, [sp, #16] + ldr r2, [sp, #12] + ldr r3, [sp, #24] + streqh r4, [r7, #0] @ movhi + add r6, r6, r2 + add r0, r0, r3 + cmp fp, r8 + mov r4, r1 + add r7, r7, #2 + mov r1, r6, asr #8 + mov r2, r0, asr #8 + bhi .L5638 + b .L5661 +.L5636: + ldr r4, [sp, #16] + mov r3, r4, asl #16 + mov r3, r3, lsr #16 +.L5640: + add r8, r8, #1 + cmp fp, r8 + strh r3, [r7], #2 @ movhi + bhi .L5640 + b .L5661 +.L5671: + mov r8, #0 + b .L5635 +.L5673: + .align 2 +.L5672: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .size render_scanline_affine_base_color16, .-render_scanline_affine_base_color16 + .align 2 + .global render_scanline_affine_transparent_color16 + .type render_scanline_affine_transparent_color16, %function +render_scanline_affine_transparent_color16: + @ args = 0, pretend = 0, frame = 36 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5730 + add r7, r0, #7 + ldrh r6, [r5, #80] + add ip, r5, r0, asl #1 + mov r7, r6, asr r7 + mov r6, r6, asr r0 + ldrh r4, [ip, #8] + mov lr, r0, asl #4 + ldr ip, .L5730+4 + sub r0, r0, #2 + sub lr, lr, #32 + add lr, lr, r5 + ldr ip, [ip, r0, asl #2] + sub sp, sp, #36 + ldrsh r9, [lr, #36] + mov r8, r4, lsr #14 + mov r5, r4, lsr #12 + str ip, [sp, #8] + ldrsh fp, [lr, #32] + ldr ip, .L5730+8 + ldr sl, .L5730+12 + mov lr, r4, asl #3 + mov r4, r4, asl #12 + str r9, [sp, #16] + and r4, r4, #49152 + ldr r9, [ip, r0, asl #2] + and r7, r7, #2 + ldr ip, [sp, #16] + add r4, r4, sl + and r6, r6, #1 + orr r6, r6, r7 + and r5, r5, #2 + and lr, lr, #63488 + str r4, [sp, #24] + ldr r7, [sp, #8] + rsb r4, r1, r2 + ldr r2, [sp, #16] + add lr, lr, sl + cmp ip, #0 + orrne r5, r5, #1 + mov r0, #1 + add ip, r8, #7 + mov r6, r6, asl #9 + mov r0, r0, asl ip + str lr, [sp, #20] + str r6, [sp, #12] + add r8, r8, #4 + add lr, r3, r1, asl #1 + mla ip, fp, r1, r9 + mla r7, r2, r1, r7 + cmp r5, #3 + ldrls pc, [pc, r5, asl #2] + b .L5722 + .p2align 2 +.L5680: + .word .L5676 + .word .L5677 + .word .L5678 + .word .L5679 +.L5676: + mov r3, r7, asr #8 + cmp r0, r3 + bhi .L5725 +.L5722: + add sp, sp, #36 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5677: + cmp r4, #0 + beq .L5722 + mov r5, ip, asr #8 + mov r1, r7, asr #8 + cmp r0, r5 + cmphi r0, r1 + movls r3, #0 + movhi r3, #1 + movls sl, r3 + bls .L5684 + b .L5728 +.L5698: + cmp r0, r2 + cmphi r0, r3 + bhi .L5699 +.L5684: + ldr r3, [sp, #16] + add sl, sl, #1 + add ip, ip, fp + add r7, r7, r3 + cmp r4, sl + mov r2, ip, asr #8 + mov r3, r7, asr #8 + add lr, lr, #2 + bne .L5698 + b .L5722 +.L5678: + sub r6, r0, #1 + and r3, r6, r7, asr #8 + cmp r0, r3 + bls .L5722 + ldr r9, [sp, #20] + ldr r0, [sp, #24] + mov r2, r3, lsr #3 + cmp r4, #0 + and r3, r3, #7 + add r8, r9, r2, asl r8 + add r5, r0, r3, asl #3 + beq .L5722 + mov r0, #0 +.L5711: + and r3, r6, ip, asr #8 + ldrb r2, [r8, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r2, asl #6 + ldrb r1, [r3, r5] @ zero_extendqisi2 + ldr r2, [sp, #12] + cmp r1, #0 + mov r3, r0, asl #1 + orr r1, r1, r2 + add r0, r0, #1 + strneh r1, [r3, lr] @ movhi + cmp r4, r0 + add ip, ip, fp + bne .L5711 + b .L5722 +.L5679: + cmp r4, #0 + sub r6, r0, #1 + beq .L5722 + mvn r3, #0 + str r3, [sp, #32] + mov sl, #0 +.L5716: + and r3, r6, r7, asr #8 + mov r2, r3, lsr #3 + mov r2, r2, asl r8 + and r1, r6, ip, asr #8 + and r9, r3, #7 + and r5, r1, #7 + add r3, r2, r1, lsr #3 + ldr r1, [sp, #32] + str r3, [sp, #32] + cmp r3, r1 + ldrne r2, [sp, #20] + ldrne r1, [sp, #24] + ldrneb r3, [r2, r3] @ zero_extendqisi2 + ldr r0, [sp, #16] + addne r3, r1, r3, asl #6 + strne r3, [sp, #4] + ldr r2, [sp, #4] + add r7, r7, r0 + add r3, r2, r9, asl #3 + ldrb r2, [r3, r5] @ zero_extendqisi2 + ldr r3, [sp, #12] + mov r0, sl, asl #1 + cmp r2, #0 + add sl, sl, #1 + orr r1, r2, r3 + strneh r1, [r0, lr] @ movhi + cmp r4, sl + add ip, ip, fp + bne .L5716 + b .L5722 +.L5725: + ldr r9, [sp, #20] + ldr r1, [sp, #24] + mov r2, r3, lsr #3 + cmp r4, #0 + and r3, r3, #7 + add r8, r9, r2, asl r8 + add r6, r1, r3, asl #3 + beq .L5722 + mov r5, ip, asr #8 + cmp r0, r5 + movls r7, #0 + bls .L5691 + b .L5729 +.L5689: + cmp r0, r2 + add lr, lr, #2 + bhi .L5690 +.L5691: + add r7, r7, #1 + add ip, ip, fp + cmp r4, r7 + mov r2, ip, asr #8 + bne .L5689 + b .L5722 +.L5699: + mov r5, r2 + mov r1, r3 +.L5700: + cmp r1, r0 + movcc r3, #0 + movcs r3, #1 + cmp r0, r5 + orrls r3, r3, #1 + cmp r3, #0 + mvneq r6, #0 + beq .L5702 + b .L5722 +.L5703: + cmp r0, r1 + cmphi r0, r5 + bls .L5722 +.L5702: + mov r3, r1, lsr #3 + mov r3, r3, asl r8 + add r3, r3, r5, lsr #3 + cmp r3, r6 + and r2, r5, #7 + str r2, [sp, #0] + ldrne r2, [sp, #20] + mov r6, r3 + ldrneb r3, [r2, r3] @ zero_extendqisi2 + ldrne r2, [sp, #24] + ldr r9, [sp, #16] + addne r3, r2, r3, asl #6 + strne r3, [sp, #28] + ldr r2, [sp, #28] + add r7, r7, r9 + and r9, r1, #7 + add r3, r2, r9, asl #3 + ldr r9, [sp, #0] + add sl, sl, #1 + ldrb r2, [r3, r9] @ zero_extendqisi2 + ldr r3, [sp, #12] + cmp r2, #0 + orr r2, r2, r3 + strneh r2, [lr, #0] @ movhi + add ip, ip, fp + cmp r4, sl + mov r1, r7, asr #8 + mov r5, ip, asr #8 + add lr, lr, #2 + bhi .L5703 + b .L5722 +.L5690: + mov r5, r2 +.L5692: + cmp r5, r0 + bcc .L5724 + b .L5722 +.L5694: + cmp r0, r5 + bls .L5722 +.L5724: + ldrb r3, [r8, r5, lsr #3] @ zero_extendqisi2 + and r2, r5, #7 + add r2, r2, r3, asl #6 + ldrb r1, [r2, r6] @ zero_extendqisi2 + ldr r2, [sp, #12] + cmp r1, #0 + add r7, r7, #1 + orr r1, r1, r2 + strneh r1, [lr, #0] @ movhi + add ip, ip, fp + cmp r4, r7 + mov r5, ip, asr #8 + add lr, lr, #2 + bhi .L5694 + b .L5722 +.L5728: + mov sl, #0 + b .L5700 +.L5729: + mov r7, #0 + b .L5692 +.L5731: + .align 2 +.L5730: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .size render_scanline_affine_transparent_color16, .-render_scanline_affine_transparent_color16 + .align 2 + .global render_scanline_affine_base_color32 + .type render_scanline_affine_base_color32, %function +render_scanline_affine_base_color32: + @ args = 0, pretend = 0, frame = 36 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5799 + add r7, r0, #7 + ldrh r6, [r5, #80] + add ip, r5, r0, asl #1 + mov sl, r6, asr r0 + mov r7, r6, asr r7 + ldrh r4, [ip, #8] + mov lr, r0, asl #4 + ldr ip, .L5799+4 + sub r0, r0, #2 + sub lr, lr, #32 + ldr ip, [ip, r0, asl #2] + add lr, lr, r5 + sub sp, sp, #36 + ldrsh r5, [lr, #36] + str ip, [sp, #4] + ldr ip, .L5799+8 + str r5, [sp, #24] + ldr r0, [ip, r0, asl #2] + mov r8, r4, lsr #12 + ldr ip, [sp, #24] + mov r9, r4, lsr #14 + ldrsh lr, [lr, #32] + and r8, r8, #2 + str r0, [sp, #8] + cmp ip, #0 + orrne r8, r8, #1 + mov r0, #1 + add ip, r9, #7 + mov r5, r6, lsr #12 + str lr, [sp, #12] + mov ip, r0, asl ip + mov lr, r4, asl #3 + ldr r0, .L5799+12 + mov r4, r4, asl #12 + and r7, r7, #2 + mov r6, r6, asl #26 + and r5, r5, #2 + and sl, sl, #1 + and lr, lr, #63488 + and r4, r4, #49152 + orr r5, r5, r6, lsr #31 + orr sl, sl, r7 + add r4, r4, r0 + add lr, lr, r0 + rsb fp, r1, r2 + add r6, r3, r1, asl #2 + ldr r7, [sp, #8] + ldr r2, [sp, #12] + ldr r0, [sp, #4] + ldr r3, [sp, #24] + mov r5, r5, asl #9 + mov sl, sl, asl #9 + str r4, [sp, #32] + str r5, [sp, #16] + str sl, [sp, #20] + add r9, r9, #4 + str lr, [sp, #28] + mla r7, r2, r1, r7 + mla r0, r3, r1, r0 + cmp r8, #3 + ldrls pc, [pc, r8, asl #2] + b .L5788 + .p2align 2 +.L5738: + .word .L5734 + .word .L5735 + .word .L5736 + .word .L5737 +.L5736: + sub lr, ip, #1 + and r3, lr, r0, asr #8 + cmp ip, r3 + bhi .L5796 +.L5788: + add sp, sp, #36 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5734: + mov r3, r0, asr #8 + cmp ip, r3 + movls r0, #0 + bls .L5745 + ldr r4, [sp, #28] + ldr r5, [sp, #32] + mov r2, r3, lsr #3 + cmp fp, #0 + and r3, r3, #7 + add r9, r4, r2, asl r9 + add r4, r5, r3, asl #3 + beq .L5788 + mov r2, r7, asr #8 + cmp ip, r2 + movhi r0, #0 + movls r0, #0 + bls .L5751 + b .L5793 +.L5752: + cmp ip, r2 + bhi .L5793 +.L5751: + ldr lr, [sp, #12] + add r0, r0, #1 + ldr r1, [sp, #16] + add r7, r7, lr + cmp fp, r0 + mov r2, r7, asr #8 + str r1, [r6], #4 + bne .L5752 +.L5745: + cmp r0, fp + bcs .L5788 + rsb r2, r0, fp + ldr r0, [sp, #16] + mov r3, #0 +.L5760: + add r3, r3, #1 + cmp r2, r3 + str r0, [r6], #4 + bne .L5760 + b .L5788 +.L5735: + cmp fp, #0 + beq .L5788 + mov r1, r7, asr #8 + mov r2, r0, asr #8 + cmp ip, r1 + cmphi ip, r2 + movls r3, #0 + movhi r3, #1 + movls r8, r3 + bls .L5742 + b .L5798 +.L5761: + cmp ip, r2 + cmphi ip, r3 + bhi .L5762 +.L5742: + ldr r2, [sp, #24] + ldr r1, [sp, #12] + add r8, r8, #1 + ldr r4, [sp, #16] + add r0, r0, r2 + add r7, r7, r1 + cmp fp, r8 + str r4, [r6, #0] + mov r2, r7, asr #8 + mov r3, r0, asr #8 + add r6, r6, #4 + bne .L5761 + b .L5788 +.L5737: + cmp fp, #0 + sub sl, ip, #1 + beq .L5788 + mvn r5, #0 + mov r4, #0 +.L5781: + and r3, sl, r0, asr #8 + mov r2, r3, lsr #3 + mov r2, r2, asl r9 + and r1, sl, r7, asr #8 + add ip, r2, r1, lsr #3 + cmp ip, r5 + ldrne r5, [sp, #28] + and lr, r3, #7 + and r8, r1, #7 + ldrneb r3, [r5, ip] @ zero_extendqisi2 + ldrne r1, [sp, #32] + add r4, r4, #1 + addne r3, r1, r3, asl #6 + strne r3, [sp, #0] + ldr r2, [sp, #0] + add r3, r2, lr, asl #3 + ldrb r2, [r3, r8] @ zero_extendqisi2 + ldr r3, [sp, #20] + cmp r2, #0 + ldreq r5, [sp, #16] + orr r1, r3, r2 + strne r1, [r6, #0] + ldr lr, [sp, #12] + ldr r1, [sp, #24] + streq r5, [r6, #0] + cmp fp, r4 + add r7, r7, lr + add r0, r0, r1 + add r6, r6, #4 + mov r5, ip + bne .L5781 + b .L5788 +.L5796: + ldr ip, [sp, #28] + ldr r0, [sp, #32] + mov r2, r3, lsr #3 + cmp fp, #0 + and r3, r3, #7 + add r9, ip, r2, asl r9 + add r4, r0, r3, asl #3 + beq .L5788 + mov r0, #0 +.L5775: + and r3, lr, r7, asr #8 + ldrb r1, [r9, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r1, asl #6 + ldrb r2, [r3, r4] @ zero_extendqisi2 + ldr r1, [sp, #20] + cmp r2, #0 + orr r3, r1, r2 + ldreq r2, [sp, #16] + strne r3, [r6, #0] + add r0, r0, #1 + ldr r3, [sp, #12] + streq r2, [r6, #0] + cmp fp, r0 + add r7, r7, r3 + add r6, r6, #4 + bne .L5775 + b .L5788 +.L5755: + cmp ip, r2 + bls .L5745 +.L5793: + ldrb r3, [r9, r2, lsr #3] @ zero_extendqisi2 + and r2, r2, #7 + add r2, r2, r3, asl #6 + ldrb r1, [r2, r4] @ zero_extendqisi2 + ldr r3, [sp, #20] + cmp r1, #0 + ldreq r5, [sp, #16] + ldr lr, [sp, #12] + orr r2, r3, r1 + add r0, r0, #1 + strne r2, [r6, #0] + streq r5, [r6, #0] + add r7, r7, lr + cmp fp, r0 + add r6, r6, #4 + mov r2, r7, asr #8 + bhi .L5755 + b .L5745 +.L5762: + mov r1, r2 + mov r2, r3 +.L5763: + cmp r2, ip + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + mvneq r5, #0 + beq .L5767 + b .L5789 +.L5766: + cmp ip, r2 + cmphi ip, r1 + bls .L5789 +.L5767: + mov r3, r2, lsr #3 + mov r3, r3, asl r9 + and lr, r2, #7 + and r2, r1, #7 + add r1, r3, r1, lsr #3 + cmp r1, r5 + ldrne r4, [sp, #28] + ldrne r5, [sp, #32] + ldrneb r3, [r4, r1] @ zero_extendqisi2 + add r8, r8, #1 + addne r4, r5, r3, asl #6 + add r3, r4, lr, asl #3 + ldrb r2, [r3, r2] @ zero_extendqisi2 + ldr lr, [sp, #20] + cmp r2, #0 + orr r3, lr, r2 + strne r3, [r6, #0] + ldreq r2, [sp, #16] + ldr r5, [sp, #24] + ldr r3, [sp, #12] + streq r2, [r6, #0] + add r0, r0, r5 + add r7, r7, r3 + cmp fp, r8 + mov r5, r1 + add r6, r6, #4 + mov r1, r7, asr #8 + mov r2, r0, asr #8 + bhi .L5766 + b .L5788 +.L5789: + add r8, r8, #1 + ldr r5, [sp, #16] + cmp fp, r8 + str r5, [r6], #4 + bls .L5788 + add r8, r8, #1 + ldr r5, [sp, #16] + cmp fp, r8 + str r5, [r6], #4 + bhi .L5789 + b .L5788 +.L5798: + mov r8, #0 + b .L5763 +.L5800: + .align 2 +.L5799: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .size render_scanline_affine_base_color32, .-render_scanline_affine_base_color32 + .align 2 + .global render_scanline_affine_transparent_color32 + .type render_scanline_affine_transparent_color32, %function +render_scanline_affine_transparent_color32: + @ args = 0, pretend = 0, frame = 32 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5857 + add r7, r0, #7 + ldrh r6, [r5, #80] + add ip, r5, r0, asl #1 + mov r7, r6, asr r7 + mov r6, r6, asr r0 + ldrh r4, [ip, #8] + mov lr, r0, asl #4 + ldr ip, .L5857+4 + sub r0, r0, #2 + sub lr, lr, #32 + add lr, lr, r5 + ldr ip, [ip, r0, asl #2] + sub sp, sp, #32 + ldrsh r9, [lr, #36] + mov r8, r4, lsr #14 + mov r5, r4, lsr #12 + str ip, [sp, #8] + ldrsh fp, [lr, #32] + ldr ip, .L5857+8 + ldr sl, .L5857+12 + mov lr, r4, asl #3 + mov r4, r4, asl #12 + str r9, [sp, #16] + and r4, r4, #49152 + ldr r9, [ip, r0, asl #2] + and r7, r7, #2 + ldr ip, [sp, #16] + add r4, r4, sl + and r6, r6, #1 + orr r6, r6, r7 + and r5, r5, #2 + and lr, lr, #63488 + str r4, [sp, #24] + ldr r7, [sp, #8] + rsb r4, r1, r2 + ldr r2, [sp, #16] + add lr, lr, sl + cmp ip, #0 + orrne r5, r5, #1 + mov r0, #1 + add ip, r8, #7 + mov r6, r6, asl #9 + mov r0, r0, asl ip + str lr, [sp, #20] + str r6, [sp, #12] + add r8, r8, #4 + add lr, r3, r1, asl #2 + mla ip, fp, r1, r9 + mla r7, r2, r1, r7 + cmp r5, #3 + ldrls pc, [pc, r5, asl #2] + b .L5849 + .p2align 2 +.L5807: + .word .L5803 + .word .L5804 + .word .L5805 + .word .L5806 +.L5803: + mov r3, r7, asr #8 + cmp r0, r3 + bhi .L5852 +.L5849: + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5804: + cmp r4, #0 + beq .L5849 + mov r5, ip, asr #8 + mov r1, r7, asr #8 + cmp r0, r5 + cmphi r0, r1 + movls r3, #0 + movhi r3, #1 + movls sl, r3 + bls .L5811 + b .L5855 +.L5825: + cmp r0, r2 + cmphi r0, r3 + bhi .L5826 +.L5811: + ldr r3, [sp, #16] + add sl, sl, #1 + add ip, ip, fp + add r7, r7, r3 + cmp r4, sl + mov r2, ip, asr #8 + mov r3, r7, asr #8 + add lr, lr, #4 + bne .L5825 + b .L5849 +.L5805: + sub r6, r0, #1 + and r3, r6, r7, asr #8 + cmp r0, r3 + bls .L5849 + ldr r0, [sp, #20] + ldr r1, [sp, #24] + mov r2, r3, lsr #3 + cmp r4, #0 + and r3, r3, #7 + add r8, r0, r2, asl r8 + add r5, r1, r3, asl #3 + beq .L5849 + mov r0, #0 +.L5838: + and r3, r6, ip, asr #8 + ldrb r2, [r8, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r2, asl #6 + ldrb r1, [r3, r5] @ zero_extendqisi2 + ldr r2, [sp, #12] + cmp r1, #0 + orr r3, r2, r1 + strne r3, [lr, r0, asl #2] + add r0, r0, #1 + cmp r4, r0 + add ip, ip, fp + bne .L5838 + b .L5849 +.L5806: + cmp r4, #0 + sub r0, r0, #1 + beq .L5849 + mov r9, #0 + mvn r6, #0 +.L5843: + and r3, r0, r7, asr #8 + mov r2, r3, lsr #3 + mov r2, r2, asl r8 + and r1, r0, ip, asr #8 + and sl, r3, #7 + add r3, r2, r1, lsr #3 + cmp r3, r6 + ldrne r2, [sp, #20] + and r5, r1, #7 + ldr r1, [sp, #16] + mov r6, r3 + add r7, r7, r1 + ldrneb r3, [r2, r3] @ zero_extendqisi2 + ldrne r1, [sp, #24] + add ip, ip, fp + addne r3, r1, r3, asl #6 + strne r3, [sp, #4] + ldr r2, [sp, #4] + add r3, r2, sl, asl #3 + ldrb r2, [r3, r5] @ zero_extendqisi2 + ldr r3, [sp, #12] + cmp r2, #0 + orr r1, r3, r2 + strne r1, [lr, r9, asl #2] + add r9, r9, #1 + cmp r4, r9 + bne .L5843 + b .L5849 +.L5852: + ldr r9, [sp, #20] + ldr r1, [sp, #24] + mov r2, r3, lsr #3 + cmp r4, #0 + and r3, r3, #7 + add r8, r9, r2, asl r8 + add r6, r1, r3, asl #3 + beq .L5849 + mov r5, ip, asr #8 + cmp r0, r5 + movls r7, #0 + bls .L5818 + b .L5856 +.L5816: + cmp r0, r2 + add lr, lr, #4 + bhi .L5817 +.L5818: + add r7, r7, #1 + add ip, ip, fp + cmp r4, r7 + mov r2, ip, asr #8 + bne .L5816 + b .L5849 +.L5826: + mov r5, r2 + mov r1, r3 +.L5827: + cmp r1, r0 + movcc r3, #0 + movcs r3, #1 + cmp r0, r5 + orrls r3, r3, #1 + cmp r3, #0 + mvneq r6, #0 + beq .L5829 + b .L5849 +.L5830: + cmp r0, r1 + cmphi r0, r5 + bls .L5849 +.L5829: + mov r3, r1, lsr #3 + mov r3, r3, asl r8 + add r3, r3, r5, lsr #3 + cmp r3, r6 + and r2, r5, #7 + str r2, [sp, #0] + ldrne r2, [sp, #20] + mov r6, r3 + ldrneb r3, [r2, r3] @ zero_extendqisi2 + ldrne r2, [sp, #24] + ldr r9, [sp, #16] + addne r3, r2, r3, asl #6 + strne r3, [sp, #28] + ldr r2, [sp, #28] + add r7, r7, r9 + and r9, r1, #7 + add r3, r2, r9, asl #3 + ldr r9, [sp, #0] + add sl, sl, #1 + ldrb r2, [r3, r9] @ zero_extendqisi2 + ldr r9, [sp, #12] + cmp r2, #0 + orr r3, r9, r2 + strne r3, [lr, #0] + add ip, ip, fp + cmp r4, sl + mov r1, r7, asr #8 + mov r5, ip, asr #8 + add lr, lr, #4 + bhi .L5830 + b .L5849 +.L5817: + mov r5, r2 +.L5819: + cmp r5, r0 + bcc .L5851 + b .L5849 +.L5821: + cmp r0, r5 + bls .L5849 +.L5851: + ldrb r3, [r8, r5, lsr #3] @ zero_extendqisi2 + and r2, r5, #7 + add r2, r2, r3, asl #6 + ldrb r1, [r2, r6] @ zero_extendqisi2 + ldr r2, [sp, #12] + cmp r1, #0 + add r7, r7, #1 + orr r3, r2, r1 + strne r3, [lr, #0] + add ip, ip, fp + cmp r4, r7 + mov r5, ip, asr #8 + add lr, lr, #4 + bhi .L5821 + b .L5849 +.L5855: + mov sl, #0 + b .L5827 +.L5856: + mov r7, #0 + b .L5819 +.L5858: + .align 2 +.L5857: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .size render_scanline_affine_transparent_color32, .-render_scanline_affine_transparent_color32 + .align 2 + .global render_scanline_affine_base_alpha + .type render_scanline_affine_base_alpha, %function +render_scanline_affine_base_alpha: + @ args = 0, pretend = 0, frame = 32 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r7, .L5933 + add lr, r0, #7 + ldrh ip, [r7, #80] + sub sp, sp, #32 + mov lr, ip, asr lr + mov r4, ip, asr r0 + mov r5, ip, lsr #12 + and r5, r5, #2 + mov ip, ip, asl #26 + orr r5, r5, ip, lsr #31 + and r4, r4, #1 + and lr, lr, #2 + mov ip, r5, asl #25 + orr r4, r4, lr + orr r4, ip, r4, asl #9 + mov r5, r5, asl #9 + tst r4, #512 + mov r6, r0 + str r4, [sp, #12] + mov r8, r1 + mov sl, r2 + stmib sp, {r3, r5} @ phole stm + beq .L5928 + add r3, r7, r0, asl #1 + ldrh r1, [r3, #8] + ldr r3, .L5933+4 + mov r2, r0, asl #4 + sub r0, r0, #2 + ldr r6, [r3, r0, asl #2] + ldr r3, .L5933+8 + mov lr, r1, lsr #14 + ldr r5, [r3, r0, asl #2] + ldr r4, .L5933+12 + mov ip, r1, lsr #12 + mov r0, r1, asl #3 + sub r2, r2, #32 + mov r1, r1, asl #12 + add r2, r2, r7 + and r1, r1, #49152 + ldrsh fp, [r2, #36] + add r1, r1, r4 + ldrsh r9, [r2, #32] + and ip, ip, #2 + and r0, r0, #63488 + str r1, [sp, #24] + ldr r1, [sp, #4] + add r0, r0, r4 + add r2, lr, #7 + mov r3, #1 + add lr, lr, #4 + cmp fp, #0 + orrne ip, ip, #1 + str r0, [sp, #20] + mov r7, r3, asl r2 + mla r0, r9, r8, r5 + rsb sl, r8, sl + str lr, [sp, #16] + add r4, r1, r8, asl #2 + mla r5, fp, r8, r6 + cmp ip, #3 + ldrls pc, [pc, ip, asl #2] + b .L5918 + .p2align 2 +.L5867: + .word .L5863 + .word .L5864 + .word .L5865 + .word .L5866 +.L5919: + add ip, ip, #1 + ldr r1, [sp, #8] + cmp sl, ip + str r1, [r4], #4 + bhi .L5919 +.L5918: + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5928: + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_affine_base_color32 +.L5863: + mov r1, r5, asr #8 + cmp r7, r1 + movls ip, #0 + bls .L5874 + ldr r6, [sp, #20] + ldr r8, [sp, #16] + ldr ip, [sp, #24] + mov r2, r1, lsr #3 + and r3, r1, #7 + cmp sl, #0 + add lr, r6, r2, asl r8 + add r5, ip, r3, asl #3 + beq .L5918 + mov r2, r0, asr #8 + cmp r7, r2 + movls ip, #0 + bls .L5881 + b .L5931 +.L5879: + cmp r7, r2 + bhi .L5882 +.L5881: + add ip, ip, #1 + ldr r1, [sp, #8] + add r0, r0, r9 + cmp sl, ip + mov r2, r0, asr #8 + str r1, [r4], #4 + bne .L5879 +.L5874: + cmp ip, sl + bcs .L5918 + ldr r8, [sp, #8] + rsb r2, ip, sl + mov r3, #0 +.L5890: + add r3, r3, #1 + cmp r2, r3 + str r8, [r4], #4 + bne .L5890 + b .L5918 +.L5866: + sub r7, r7, #1 + cmp sl, #0 + str r7, [sp, #28] + beq .L5918 + mvn r8, #0 + mov r7, #0 +.L5911: + ldr r2, [sp, #28] + ldr r6, [sp, #16] + and r3, r2, r5, asr #8 + mov r2, r3, lsr #3 + mov r2, r2, asl r6 + ldr ip, [sp, #28] + and lr, r3, #7 + and r1, ip, r0, asr #8 + add ip, r2, r1, lsr #3 + cmp ip, r8 + and r6, r1, #7 + ldrne r1, [sp, #20] + ldrne r2, [sp, #24] + ldrneb r3, [r1, ip] @ zero_extendqisi2 + add r7, r7, #1 + addne r3, r2, r3, asl #6 + strne r3, [sp, #0] + ldr r8, [sp, #0] + add r0, r0, r9 + add r3, r8, lr, asl #3 + ldrb r2, [r3, r6] @ zero_extendqisi2 + ldr lr, [sp, #12] + cmp r2, #0 + orr r1, lr, r2 + ldreq r1, [sp, #8] + cmp sl, r7 + str r1, [r4, #0] + add r5, r5, fp + add r4, r4, #4 + mov r8, ip + bne .L5911 + b .L5918 +.L5865: + sub r6, r7, #1 + and r1, r6, r5, asr #8 + cmp r7, r1 + bls .L5918 + mov r2, r1, lsr #3 + and r3, r1, #7 + ldr ip, [sp, #20] + ldr r1, [sp, #16] + cmp sl, #0 + add lr, ip, r2, asl r1 + ldr r2, [sp, #24] + add r5, r2, r3, asl #3 + beq .L5918 + mov ip, #0 +.L5905: + and r3, r6, r0, asr #8 + ldrb r1, [lr, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r1, asl #6 + ldrb r2, [r3, r5] @ zero_extendqisi2 + ldr r8, [sp, #12] + cmp r2, #0 + ldreq r1, [sp, #8] + orr r3, r8, r2 + add ip, ip, #1 + strne r3, [r4, #0] + streq r1, [r4, #0] + cmp sl, ip + add r0, r0, r9 + add r4, r4, #4 + bne .L5905 + b .L5918 +.L5864: + cmp sl, #0 + beq .L5918 + mov r1, r0, asr #8 + mov r2, r5, asr #8 + cmp r7, r1 + cmphi r7, r2 + movls r3, #0 + movhi r3, #1 + movls ip, r3 + bls .L5871 + b .L5932 +.L5891: + cmp r7, r2 + cmphi r7, r3 + bhi .L5892 +.L5871: + add ip, ip, #1 + ldr lr, [sp, #8] + add r0, r0, r9 + add r5, r5, fp + cmp sl, ip + str lr, [r4, #0] + mov r2, r0, asr #8 + mov r3, r5, asr #8 + add r4, r4, #4 + bne .L5891 + b .L5918 +.L5892: + mov r1, r2 + mov r2, r3 +.L5893: + cmp r7, r2 + cmphi r7, r1 + mvnhi r8, #0 + bhi .L5897 + b .L5919 +.L5896: + cmp r7, r2 + cmphi r7, r1 + bls .L5919 +.L5897: + ldr r6, [sp, #16] + mov r3, r2, lsr #3 + mov r3, r3, asl r6 + and r6, r2, #7 + and r2, r1, #7 + add r1, r3, r1, lsr #3 + cmp r1, r8 + ldrne r8, [sp, #20] + add ip, ip, #1 + ldrneb r3, [r8, r1] @ zero_extendqisi2 + ldrne r8, [sp, #24] + add r0, r0, r9 + addne lr, r8, r3, asl #6 + add r3, lr, r6, asl #3 + ldrb r2, [r3, r2] @ zero_extendqisi2 + ldr r6, [sp, #12] + cmp r2, #0 + ldreq r8, [sp, #8] + orr r3, r6, r2 + streq r8, [r4, #0] + strne r3, [r4, #0] + add r5, r5, fp + cmp sl, ip + mov r8, r1 + add r4, r4, #4 + mov r1, r0, asr #8 + mov r2, r5, asr #8 + bhi .L5896 + b .L5918 +.L5931: + mov ip, #0 +.L5882: + cmp r2, r7 + bcc .L5924 + b .L5874 +.L5885: + cmp r7, r2 + bls .L5874 +.L5924: + ldrb r3, [lr, r2, lsr #3] @ zero_extendqisi2 + and r2, r2, #7 + add r2, r2, r3, asl #6 + ldrb r1, [r2, r5] @ zero_extendqisi2 + ldr r3, [sp, #12] + cmp r1, #0 + ldreq r6, [sp, #8] + orr r2, r3, r1 + add ip, ip, #1 + strne r2, [r4, #0] + streq r6, [r4, #0] + add r0, r0, r9 + cmp sl, ip + add r4, r4, #4 + mov r2, r0, asr #8 + bhi .L5885 + b .L5874 +.L5932: + mov ip, #0 + b .L5893 +.L5934: + .align 2 +.L5933: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .size render_scanline_affine_base_alpha, .-render_scanline_affine_base_alpha + .align 2 + .global render_scanline_affine_transparent_alpha + .type render_scanline_affine_transparent_alpha, %function +render_scanline_affine_transparent_alpha: + @ args = 0, pretend = 0, frame = 36 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L5993 + add lr, r0, #7 + ldrh ip, [r5, #80] + sub sp, sp, #36 + mov lr, ip, asr lr + mov ip, ip, asr r0 + and lr, lr, #2 + and ip, ip, #1 + orr ip, ip, lr + mov ip, ip, asl #9 + tst ip, #512 + mov r4, r0 + str ip, [sp, #12] + mov r8, r1 + mov sl, r2 + str r3, [sp, #8] + beq .L5988 + add r3, r5, r0, asl #1 + ldrh r1, [r3, #8] + ldr r3, .L5993+4 + mov r2, r0, asl #4 + sub r0, r0, #2 + ldr r6, [r3, r0, asl #2] + ldr r3, .L5993+8 + sub r2, r2, #32 + add r2, r2, r5 + mov lr, r1, lsr #14 + ldr r5, [r3, r0, asl #2] + ldr r4, .L5993+12 + mov ip, r1, lsr #12 + mov r0, r1, asl #3 + mov r1, r1, asl #12 + and r1, r1, #49152 + ldrsh fp, [r2, #36] + add r1, r1, r4 + ldrsh r9, [r2, #32] + and ip, ip, #2 + and r0, r0, #63488 + str r1, [sp, #20] + ldr r1, [sp, #8] + add r0, r0, r4 + add r2, lr, #7 + mov r3, #1 + cmp fp, #0 + orrne ip, ip, #1 + str r0, [sp, #16] + mov r7, r3, asl r2 + mla r0, r9, r8, r5 + rsb sl, r8, sl + add lr, lr, #4 + add r4, r1, r8, asl #2 + mla r5, fp, r8, r6 + cmp ip, #3 + ldrls pc, [pc, ip, asl #2] + b .L5985 + .p2align 2 +.L5943: + .word .L5939 + .word .L5940 + .word .L5941 + .word .L5942 +.L5941: + sub r6, r7, #1 + and r1, r6, r5, asr #8 + cmp r7, r1 + bls .L5985 + ldr r5, [sp, #16] + ldr ip, [sp, #20] + mov r2, r1, lsr #3 + and r3, r1, #7 + cmp sl, #0 + add lr, r5, r2, asl lr + add r1, ip, r3, asl #3 + beq .L5985 + mov ip, #0 +.L5974: + and r3, r6, r0, asr #8 + ldrb r2, [lr, r3, lsr #3] @ zero_extendqisi2 + and r3, r3, #7 + add r3, r3, r2, asl #6 + ldrb r2, [r3, r1] @ zero_extendqisi2 + add ip, ip, #1 + cmp r2, #0 + ldrne r3, [r4, #0] + ldrne r5, [sp, #12] + add r0, r0, r9 + orrne r3, r5, r3, asl #16 + orrne r3, r2, r3 + strne r3, [r4, #0] + cmp sl, ip + add r4, r4, #4 + bne .L5974 +.L5985: + add sp, sp, #36 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5988: + add sp, sp, #36 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_affine_transparent_color32 +.L5939: + mov r1, r5, asr #8 + cmp r7, r1 + bls .L5985 + ldr r5, [sp, #16] + ldr r6, [sp, #20] + mov r2, r1, lsr #3 + and r3, r1, #7 + cmp sl, #0 + add lr, r5, r2, asl lr + add r1, r6, r3, asl #3 + beq .L5985 + mov ip, r0, asr #8 + cmp r7, ip + movls r5, #0 + bls .L5954 + b .L5991 +.L5952: + cmp r7, r3 + add r4, r4, #4 + bhi .L5953 +.L5954: + add r5, r5, #1 + add r0, r0, r9 + cmp sl, r5 + mov r3, r0, asr #8 + bne .L5952 + b .L5985 +.L5942: + cmp sl, #0 + sub r8, r7, #1 + beq .L5985 + mvn r6, #0 + str r6, [sp, #32] + mov r7, #0 +.L5979: + and r3, r8, r5, asr #8 + mov r2, r3, lsr #3 + mov r2, r2, asl lr + and r1, r8, r0, asr #8 + and r6, r3, #7 + and ip, r1, #7 + add r3, r2, r1, lsr #3 + ldr r1, [sp, #32] + str r3, [sp, #32] + cmp r3, r1 + ldrne r2, [sp, #16] + ldrne r1, [sp, #20] + ldrneb r3, [r2, r3] @ zero_extendqisi2 + add r7, r7, #1 + addne r3, r1, r3, asl #6 + strne r3, [sp, #4] + ldr r2, [sp, #4] + add r0, r0, r9 + add r3, r2, r6, asl #3 + ldrb r2, [r3, ip] @ zero_extendqisi2 + ldr r3, [sp, #12] + cmp r2, #0 + orr r1, r3, r2 + ldrne r3, [r4, #0] + add r5, r5, fp + orrne r3, r1, r3, asl #16 + strne r3, [r4, #0] + cmp sl, r7 + add r4, r4, #4 + bne .L5979 + b .L5985 +.L5940: + cmp sl, #0 + beq .L5985 + mov ip, r0, asr #8 + mov r1, r5, asr #8 + cmp r7, ip + cmphi r7, r1 + movls r3, #0 + movhi r3, #1 + movls r8, r3 + bls .L5947 + b .L5992 +.L5961: + cmp r7, r2 + cmphi r7, r3 + bhi .L5962 +.L5947: + add r8, r8, #1 + add r0, r0, r9 + add r5, r5, fp + cmp sl, r8 + mov r2, r0, asr #8 + mov r3, r5, asr #8 + add r4, r4, #4 + bne .L5961 + b .L5985 +.L5962: + mov ip, r2 + mov r1, r3 +.L5963: + cmp r1, r7 + movcc r3, #0 + movcs r3, #1 + cmp r7, ip + orrls r3, r3, #1 + cmp r3, #0 + mvneq r2, #0 + streq r2, [sp, #28] + beq .L5965 + b .L5985 +.L5966: + cmp r7, r1 + cmphi r7, ip + bls .L5985 +.L5965: + mov r3, r1, lsr #3 + mov r3, r3, asl lr + and r2, ip, #7 + str r2, [sp, #0] + ldr r2, [sp, #28] + add r3, r3, ip, lsr #3 + cmp r3, r2 + ldrne r2, [sp, #16] + str r3, [sp, #28] + ldrneb r3, [r2, r3] @ zero_extendqisi2 + ldrne r2, [sp, #20] + and r6, r1, #7 + addne r3, r2, r3, asl #6 + strne r3, [sp, #24] + ldr r2, [sp, #24] + add r8, r8, #1 + add r3, r2, r6, asl #3 + ldr r6, [sp, #0] + add r0, r0, r9 + ldrb r2, [r3, r6] @ zero_extendqisi2 + ldr r3, [sp, #12] + cmp r2, #0 + orr r6, r3, r2 + ldrne r3, [r4, #0] + add r5, r5, fp + orrne r3, r6, r3, asl #16 + strne r3, [r4, #0] + cmp sl, r8 + mov r1, r5, asr #8 + mov ip, r0, asr #8 + add r4, r4, #4 + bhi .L5966 + b .L5985 +.L5953: + mov ip, r3 +.L5955: + cmp ip, r7 + bcc .L5987 + b .L5985 +.L5957: + cmp r7, ip + bls .L5985 +.L5987: + ldrb r2, [lr, ip, lsr #3] @ zero_extendqisi2 + and r3, ip, #7 + add r3, r3, r2, asl #6 + ldrb r2, [r3, r1] @ zero_extendqisi2 + add r5, r5, #1 + cmp r2, #0 + ldrne r3, [r4, #0] + ldrne r6, [sp, #12] + add r0, r0, r9 + orrne r3, r6, r3, asl #16 + orrne r3, r2, r3 + strne r3, [r4, #0] + cmp sl, r5 + mov ip, r0, asr #8 + add r4, r4, #4 + bhi .L5957 + b .L5985 +.L5992: + mov r8, #0 + b .L5963 +.L5991: + mov r5, #0 + b .L5955 +.L5994: + .align 2 +.L5993: + .word io_registers + .word affine_reference_y + .word affine_reference_x + .word vram + .size render_scanline_affine_transparent_alpha, .-render_scanline_affine_transparent_alpha + .align 2 + .global render_scanline_bitmap_mode3_normal + .type render_scanline_bitmap_mode3_normal, %function +render_scanline_bitmap_mode3_normal: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L6038 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r3, .L6038+4 + ldrh r6, [ip, #36] + ldrh r9, [ip, #32] + ldr ip, .L6038+8 + ldr r4, [r3, #0] + ldr lr, [ip, #0] + mov r3, r9, asl #16 + mov ip, r6, asl #16 + mov sl, r3, asr #16 + mov r7, ip, asr #16 + cmp r6, #0 + mla lr, r7, r0, lr + add r5, r2, r0, asl #1 + rsb r8, r0, r1 + ldr fp, .L6038+12 + mla r0, sl, r0, r4 + beq .L5996 + cmp r8, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + mov r6, r0, asr #8 + mov r4, lr, asr #8 + cmp r6, #239 + cmpls r4, #159 + movhi r1, #0 + movls r1, #1 + mov r2, r6 + mov r3, r4 + movhi ip, r1 + bhi .L6002 + b .L6036 +.L6023: + cmp r3, #239 + cmpls r2, #159 + bls .L6024 +.L6002: + add ip, ip, #1 + add r0, r0, sl + add lr, lr, r7 + cmp r8, ip + mov r3, r0, asr #8 + mov r2, lr, asr #8 + add r5, r5, #2 + bne .L6023 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L5996: + mov r3, lr, asr #8 + cmp r3, #159 + ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + rsb r3, r3, r3, asl #4 + cmp r9, #256 + add r4, fp, r3, asl #5 + mov lr, r0, asr #8 + beq .L6004 + cmp r8, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + cmp lr, #239 + movhi ip, r6 + bhi .L6009 + b .L6037 +.L6019: + cmp r2, #239 + bls .L6020 +.L6009: + add ip, ip, #1 + add r0, r0, sl + cmp r8, ip + mov r2, r0, asr #8 + add r5, r5, #2 + bne .L6019 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6024: + mov r4, r2 + mov r6, r3 + mov r2, r3 + mov r3, r4 +.L6025: + cmp r3, #159 + cmpls r2, #239 + bls .L6032 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6027: + cmp r4, #159 + cmpls r6, #239 + ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6032: + rsb r3, r4, r4, asl #4 + add r3, r6, r3, asl #4 + mov r3, r3, asl #1 + ldrh r2, [r3, fp] + add ip, ip, #1 + mov r3, r2, lsr #10 + and r1, r2, #31 + orr r3, r3, r1, asl #11 + and r2, r2, #992 + add r0, r0, sl + add lr, lr, r7 + orr r3, r3, r2, asl #1 + cmp r8, ip + mov r4, lr, asr #8 + mov r6, r0, asr #8 + strh r3, [r5], #2 @ movhi + bhi .L6027 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6020: + mov lr, r2 + b .L6031 +.L6021: + cmp lr, #239 + ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6031: + mov r2, lr, asl #1 + ldrh r3, [r2, r4] + add ip, ip, #1 + mov r2, r3, lsr #10 + and r1, r3, #31 + orr r2, r2, r1, asl #11 + and r3, r3, #992 + add r0, r0, sl + orr r2, r2, r3, asl #1 + cmp r8, ip + mov lr, r0, asr #8 + strh r2, [r5], #2 @ movhi + bhi .L6021 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6004: + cmp lr, #0 + sublt r5, r5, lr, asl #1 + addlt r8, r8, lr + movlt lr, r6 + movlt r3, lr + blt .L6012 + addne r4, r4, lr, asl #1 + mov r3, lr +.L6012: + add r3, r8, r3 + cmp r3, #239 + rsbhi r8, lr, #240 + cmp r8, #0 + ldmlefd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + mov r0, #0 +.L6018: + ldrh r3, [r4], #2 + add r0, r0, #1 + mov r2, r3, lsr #10 + and r1, r3, #31 + orr r2, r2, r1, asl #11 + and r3, r3, #992 + orr r2, r2, r3, asl #1 + cmp r8, r0 + strh r2, [r5], #2 @ movhi + bne .L6018 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6036: + mov ip, #0 + b .L6025 +.L6037: + mov ip, r6 + b .L6031 +.L6039: + .align 2 +.L6038: + .word io_registers + .word affine_reference_x + .word affine_reference_y + .word vram + .size render_scanline_bitmap_mode3_normal, .-render_scanline_bitmap_mode3_normal + .align 2 + .global render_scanline_bitmap_mode4_normal + .type render_scanline_bitmap_mode4_normal, %function +render_scanline_bitmap_mode4_normal: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L6084 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldrh ip, [r3, #0] + ldr r4, .L6084+4 + ldrh sl, [r3, #36] + tst ip, #16 + ldrh r9, [r3, #32] + ldr ip, .L6084+8 + ldr r3, .L6084+12 + ldr r5, [ip, #0] + ldr r6, [r3, #0] + mov lr, r9, asl #16 + mov ip, sl, asl #16 + add r3, r4, #40960 + moveq fp, r4 + movne fp, r3 + mov r8, lr, asr #16 + mov r7, ip, asr #16 + cmp sl, #0 + mla r4, r7, r0, r5 + add ip, r2, r0, asl #1 + rsb lr, r0, r1 + mla r5, r8, r0, r6 + beq .L6044 + cmp lr, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + mov r1, r5, asr #8 + mov r0, r4, asr #8 + cmp r1, #239 + cmpls r0, #159 + mov r2, r1 + mov r3, r0 + movhi r6, #0 + movls r6, #1 + bhi .L6050 + b .L6082 +.L6071: + cmp r3, #239 + cmpls r2, #159 + bls .L6072 +.L6050: + add r6, r6, #1 + add r5, r5, r8 + add r4, r4, r7 + cmp lr, r6 + mov r3, r5, asr #8 + mov r2, r4, asr #8 + add ip, ip, #2 + bne .L6071 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6044: + mov r3, r4, asr #8 + cmp r3, #159 + ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + rsb r3, r3, r3, asl #4 + cmp r9, #256 + add r1, fp, r3, asl #4 + mov r0, r5, asr #8 + beq .L6052 + cmp lr, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + cmp r0, #239 + movhi r2, sl + bhi .L6057 + b .L6083 +.L6067: + cmp r3, #239 + bls .L6068 +.L6057: + add r2, r2, #1 + add r5, r5, r8 + cmp lr, r2 + mov r3, r5, asr #8 + add ip, ip, #2 + bne .L6067 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6072: + mov r0, r2 + mov r1, r3 + mov r2, r3 + mov r3, r0 +.L6073: + cmp r3, #159 + cmpls r2, #239 + ldrls sl, .L6084+16 + bls .L6074 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6075: + cmp r0, #159 + cmpls r1, #239 + ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6074: + rsb r3, r0, r0, asl #4 + add r3, fp, r3, asl #4 + ldrb r2, [r3, r1] @ zero_extendqisi2 + add r6, r6, #1 + mov r2, r2, asl #1 + ldrh r2, [r2, sl] + add r5, r5, r8 + add r4, r4, r7 + cmp lr, r6 + mov r0, r4, asr #8 + mov r1, r5, asr #8 + strh r2, [ip], #2 @ movhi + bhi .L6075 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6068: + ldr r4, .L6084+16 + mov r0, r3 + b .L6079 +.L6069: + cmp r0, #239 + ldmhifd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6079: + ldrb r3, [r1, r0] @ zero_extendqisi2 + add r2, r2, #1 + mov r3, r3, asl #1 + ldrh r3, [r3, r4] + add r5, r5, r8 + cmp lr, r2 + mov r0, r5, asr #8 + strh r3, [ip], #2 @ movhi + bhi .L6069 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6052: + cmp r0, #0 + sublt ip, ip, r0, asl #1 + addlt lr, lr, r0 + movlt r0, sl + movlt r3, r0 + blt .L6060 + addne r1, r1, r0 + mov r3, r0 +.L6060: + add r3, lr, r3 + cmp r3, #239 + rsbhi lr, r0, #240 + cmp lr, #0 + ldmlefd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + ldr r0, .L6084+16 + mov r2, #0 +.L6066: + ldrb r3, [r1], #1 @ zero_extendqisi2 + add r2, r2, #1 + mov r3, r3, asl #1 + ldrh r3, [r3, r0] + cmp lr, r2 + strh r3, [ip], #2 @ movhi + bne .L6066 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6082: + mov r6, #0 + b .L6073 +.L6083: + ldr r4, .L6084+16 + mov r2, sl + b .L6079 +.L6085: + .align 2 +.L6084: + .word io_registers + .word vram + .word affine_reference_y + .word affine_reference_x + .word palette_ram_converted + .size render_scanline_bitmap_mode4_normal, .-render_scanline_bitmap_mode4_normal + .align 2 + .global render_scanline_bitmap_mode5_normal + .type render_scanline_bitmap_mode5_normal, %function +render_scanline_bitmap_mode5_normal: + @ args = 0, pretend = 0, frame = 4 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L6132 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldrh ip, [r3, #0] + ldrh r9, [r3, #36] + tst ip, #16 + ldr r4, .L6132+4 + ldrh fp, [r3, #32] + ldr ip, .L6132+8 + ldr r3, .L6132+12 + ldr r5, [ip, #0] + ldr r6, [r3, #0] + mov ip, r9, asl #16 + mov lr, fp, asl #16 + add r3, r4, #40960 + movne r4, r3 + mov r7, ip, asr #16 + sub sp, sp, #4 + mov sl, lr, asr #16 + cmp r9, #0 + str r4, [sp, #0] + add ip, r2, r0, asl #1 + mla r4, r7, r0, r5 + rsb r8, r0, r1 + mla r0, sl, r0, r6 + beq .L6090 + cmp r8, #0 + beq .L6122 + mov lr, r0, asr #8 + mov r5, r4, asr #8 + cmp lr, #159 + cmpls r5, #127 + movhi r1, #0 + movls r1, #1 + mov r2, lr + mov r3, r5 + movhi r6, r1 + bhi .L6096 + b .L6130 +.L6117: + cmp r3, #159 + cmpls r2, #127 + bls .L6118 +.L6096: + add r6, r6, #1 + add r0, r0, sl + add r4, r4, r7 + cmp r8, r6 + mov r3, r0, asr #8 + mov r2, r4, asr #8 + add ip, ip, #2 + bne .L6117 +.L6122: + add sp, sp, #4 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6090: + mov r3, r4, asr #8 + cmp r3, #127 + bhi .L6122 + ldr r1, [sp, #0] + add r3, r3, r3, asl #2 + cmp fp, #256 + add lr, r1, r3, asl #6 + mov r5, r0, asr #8 + beq .L6098 + cmp r8, #0 + beq .L6122 + cmp r5, #159 + movhi r4, r9 + bhi .L6103 + b .L6131 +.L6113: + cmp r2, #159 + bls .L6114 +.L6103: + add r4, r4, #1 + add r0, r0, sl + cmp r8, r4 + mov r2, r0, asr #8 + add ip, ip, #2 + bne .L6113 + b .L6122 +.L6118: + mov r5, r2 + mov lr, r3 + mov r2, r3 + mov r3, r5 +.L6119: + cmp r3, #127 + cmpls r2, #159 + bls .L6126 + b .L6122 +.L6121: + cmp r5, #127 + cmpls lr, #159 + bhi .L6122 +.L6126: + add r3, r5, r5, asl #2 + add r3, lr, r3, asl #5 + ldr r1, [sp, #0] + mov r3, r3, asl #1 + ldrh r2, [r3, r1] + add r6, r6, #1 + mov r3, r2, lsr #10 + and r1, r2, #31 + orr r3, r3, r1, asl #11 + and r2, r2, #992 + add r0, r0, sl + add r4, r4, r7 + orr r3, r3, r2, asl #1 + cmp r8, r6 + mov r5, r4, asr #8 + mov lr, r0, asr #8 + strh r3, [ip], #2 @ movhi + bhi .L6121 + b .L6122 +.L6114: + mov r5, r2 + b .L6125 +.L6115: + cmp r5, #159 + bhi .L6122 +.L6125: + mov r2, r5, asl #1 + ldrh r3, [r2, lr] + add r4, r4, #1 + mov r2, r3, lsr #10 + and r1, r3, #31 + orr r2, r2, r1, asl #11 + and r3, r3, #992 + add r0, r0, sl + orr r2, r2, r3, asl #1 + cmp r8, r4 + mov r5, r0, asr #8 + strh r2, [ip], #2 @ movhi + bhi .L6115 + b .L6122 +.L6098: + cmp r5, #0 + sublt ip, ip, r5, asl #1 + addlt r8, r8, r5 + movlt r5, r9 + movlt r3, r5 + blt .L6106 + addne lr, lr, r5, asl #1 + mov r3, r5 +.L6106: + add r3, r8, r3 + cmp r3, #159 + rsbhi r8, r5, #160 + cmp r8, #0 + ble .L6122 + mov r0, #0 +.L6112: + ldrh r3, [lr], #2 + add r0, r0, #1 + mov r2, r3, lsr #10 + and r1, r3, #31 + orr r2, r2, r1, asl #11 + and r3, r3, #992 + orr r2, r2, r3, asl #1 + cmp r8, r0 + strh r2, [ip], #2 @ movhi + bne .L6112 + b .L6122 +.L6130: + mov r6, #0 + b .L6119 +.L6131: + mov r4, r9 + b .L6125 +.L6133: + .align 2 +.L6132: + .word io_registers + .word vram + .word affine_reference_y + .word affine_reference_x + .size render_scanline_bitmap_mode5_normal, .-render_scanline_bitmap_mode5_normal + .align 2 + .global render_scanline_obj_normal_1D + .type render_scanline_obj_normal_1D, %function +render_scanline_obj_normal_1D: + @ args = 0, pretend = 0, frame = 104 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L6976 + sub sp, sp, #104 + ldrh ip, [ip, #6] + add r0, r0, r0, asl #2 + add r0, ip, r0, asl #5 + str ip, [sp, #28] + ldr ip, .L6976+4 + str r1, [sp, #8] + ldr ip, [ip, r0, asl #2] + str r2, [sp, #4] + str ip, [sp, #32] + cmp ip, #0 + ldr ip, .L6976+8 + str r3, [sp, #0] + add r0, ip, r0, asl #7 + str r0, [sp, #36] + beq .L6922 + add r0, r3, r1, asl #1 + rsb r1, r1, r2 + mov r2, #0 + str r0, [sp, #76] + str r1, [sp, #100] + str r2, [sp, #24] + mov r4, r2 +.L6137: + ldr r5, [sp, #36] + ldr r6, .L6976+12 + ldrb r3, [r4, r5] @ zero_extendqisi2 + mov r3, r3, asl #3 + ldrh lr, [r3, r6] + add r3, r3, r6 + ldrh r1, [r3, #2] + mov r4, lr, lsr #12 + and r2, r4, #12 + orr r0, r2, r1, lsr #14 + and ip, lr, #255 + mov r2, r1, asl #23 + cmp ip, #160 + ldrh r6, [r3, #4] + mov r5, r2, asr #23 + ldr r3, .L6976+16 + ldr r2, .L6976+20 + subgt ip, ip, #256 + tst lr, #256 + ldr r7, [r2, r0, asl #2] + ldr sl, [r3, r0, asl #2] + beq .L6140 + tst lr, #8192 + beq .L6142 + mov r3, r1, lsr #4 + ldr r4, .L6976+12 + and r3, r3, #992 + add r3, r3, r4 + tst lr, #512 + ldrh lr, [r3, #30] + add r2, r7, r7, lsr #31 + add r1, sl, sl, lsr #31 + str lr, [sp, #12] + mov lr, r2, asr #1 + ldr r2, [sp, #8] + mov r4, r1, asr #1 + movne r0, lr, asl #1 + strne r0, [sp, #48] + moveq r9, r7 + streq lr, [sp, #48] + moveq r0, r4 + movne r9, r7, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh fp, [r3, #22] + bge .L6147 + rsb r2, r5, r2 + rsb r9, r2, r9 + cmp r9, #0 + ble .L6149 + ldr r3, [sp, #48] + ldr r5, [sp, #8] + rsb r3, r2, r3 + str r3, [sp, #48] +.L6147: + ldr r2, [sp, #4] + add r3, r5, r9 + cmp r3, r2 + blt .L6151 + rsb r9, r5, r2 + cmp r9, #0 + ble .L6149 +.L6151: + add r0, ip, r0 + ldr ip, [sp, #12] + mov r2, r1, asl #16 + mov lr, lr, asl #8 + mov r1, ip, asl #16 + mov r3, r8, asl #16 + mov ip, r1, asr #16 + str lr, [sp, #84] + ldr r1, [sp, #28] + ldr lr, [sp, #0] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + cmp fp, #0 + add r8, lr, r5, asl #1 + str r3, [sp, #40] + str r2, [sp, #44] + mov r4, r4, asl #8 + rsb lr, r0, r1 + bne .L6153 + mla r3, lr, ip, r4 + mov r0, r3, asr #8 + cmp r0, sl + bcs .L6149 + cmp r7, #0 + add r3, r7, #7 + movge r3, r7 + mov r3, r3, asr #3 + mov r2, r6, asl #22 + mov r3, r3, asl #1 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L6976+24 + add r0, r0, ip, asl #2 + cmp r9, #0 + add r4, r3, r0, asl #3 + ble .L6149 + ldr r3, [sp, #44] + ldr r2, [sp, #48] + ldr r5, [sp, #40] + mul r3, lr, r3 + mul r2, r5, r2 + ldr r6, [sp, #84] + rsb r3, r2, r3 + add r0, r6, r3 + mov lr, r0, asr #8 + cmp lr, r7 + movcs ip, fp + bcs .L6159 + b .L6972 +.L6160: + cmp lr, r7 + bcc .L6936 +.L6159: + ldr lr, [sp, #40] + add ip, ip, #1 + add r0, r0, lr + cmp r9, ip + mov lr, r0, asr #8 + add r8, r8, #2 + bne .L6160 +.L6149: + ldr lr, [sp, #24] + ldr r0, [sp, #32] + add lr, lr, #1 + cmp lr, r0 + str lr, [sp, #24] + beq .L6922 +.L6954: + ldr r4, [sp, #24] + b .L6137 +.L6140: + ldr lr, [sp, #28] + tst r1, #8192 + rsb ip, ip, lr + rsbne r3, ip, sl + subne ip, r3, #1 + mov r2, r1, asl #19 + and r3, r4, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L6149 + .p2align 2 +.L6221: + .word .L6217 + .word .L6218 + .word .L6219 + .word .L6220 +.L6217: + cmp r7, #0 + add r3, r7, #7 + mov r2, r6, asl #22 + movge r3, r7 + mov r8, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, r8, r3, r2 + and r1, ip, #7 + add r1, r1, r0, asl #3 + ldr r0, [sp, #8] + ldr r3, .L6976+24 + cmp r5, r0 + mov r2, r6, lsr #8 + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L6949 + ldr r2, [sp, #4] + add r3, r5, r7 + cmp r2, r3 + bhi .L6303 + rsb r8, r5, r2 + cmp r8, #0 + ble .L6149 + ldr r3, [sp, #0] + movs r7, r8, lsr #3 + add r2, r3, r5, asl #1 + beq .L6306 + ldr r6, .L6976+36 + mov r4, r2 + mov r5, r0 + mov ip, #0 +.L6308: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L6309 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi +.L6309: + add ip, ip, #1 + cmp ip, r7 + add r5, r5, #32 + add r4, r4, #16 + bne .L6308 + add r0, r0, r7, asl #5 + add r2, r2, r7, asl #4 +.L6306: + ands r4, r8, #7 + beq .L6149 + ldr r0, [r0, #0] + ldr r5, .L6976+36 + mov lr, #0 +.L6328: + ands r3, r0, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov ip, lr, asl #1 + add lr, lr, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r4 + mov r0, r0, lsr #4 + bne .L6328 + b .L6149 +.L6218: + cmp r7, #0 + add r3, r7, #7 + mov r2, r6, asl #22 + movge r3, r7 + mov r1, ip, lsr #3 + mov r8, r3, asr #3 + mov r2, r2, lsr #22 + mla r0, r8, r1, r2 + subs r3, r7, #8 + submi r3, r7, #1 + and r2, ip, #7 + ldr ip, [sp, #8] + add r0, r0, r3, asr #3 + ldr r3, .L6976+24 + add r2, r2, r0, asl #3 + mov r1, r6, lsr #8 + cmp r5, ip + add r0, r3, r2, asl #2 + and r1, r1, #240 + blt .L6950 + ldr r2, [sp, #4] + add r3, r5, r7 + cmp r2, r3 + bhi .L6433 + rsb r8, r5, r2 + cmp r8, #0 + ble .L6149 + ldr r3, [sp, #0] + movs r7, r8, lsr #3 + add r2, r3, r5, asl #1 + beq .L6436 + ldr r6, .L6976+36 + mov r4, r2 + mov r5, r0 + mov ip, #0 +.L6438: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L6439 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi +.L6439: + add ip, ip, #1 + cmp ip, r7 + sub r5, r5, #32 + add r4, r4, #16 + bne .L6438 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r2, r2, r7, asl #4 +.L6436: + ands r4, r8, #7 + beq .L6149 + ldr r0, [r0, #0] + ldr r5, .L6976+36 + mov lr, #0 +.L6458: + movs r3, r0, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov ip, lr, asl #1 + add lr, lr, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r4 + mov r0, r0, asl #4 + bne .L6458 + b .L6149 +.L6219: + cmp r7, #0 + add r3, r7, #7 + mov r1, r6, asl #22 + movge r3, r7 + mov r2, ip, lsr #3 + mov r6, r3, asr #3 + mov r1, r1, lsr #22 + mov r2, r2, asl #1 + mla r0, r2, r6, r1 + and r3, ip, #7 + add r3, r3, r0, asl #2 + ldr ip, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L6976+24 + cmp r5, ip + add r1, r0, r3 + blt .L6951 + ldr ip, [sp, #4] + add r3, r5, r7 + cmp ip, r3 + bhi .L6638 + rsb r8, r5, ip + cmp r8, #0 + ble .L6149 + ldr lr, [sp, #0] + movs r7, r8, lsr #3 + add r2, lr, r5, asl #1 + beq .L6641 + ldr r3, .L6976+32 + ldr r6, .L6976+36 + add r0, r0, r3 + mov r4, r2 + mov r5, r1 + mov ip, #0 +.L6643: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L6644 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi +.L6644: + ldr lr, [r0, #-60] + cmp lr, #0 + beq .L6653 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi +.L6653: + add ip, ip, #1 + cmp r7, ip + add r5, r5, #64 + add r4, r4, #16 + add r0, r0, #64 + bne .L6643 + add r1, r1, r7, asl #6 + add r2, r2, r7, asl #4 +.L6641: + ands lr, r8, #7 + beq .L6149 + cmp lr, #3 + ldrls r0, [r1, #0] + bls .L6676 + ldr r0, [r1, #0] + cmp r0, #0 + beq .L6666 + ands r3, r0, #255 + ldrne r4, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi + mov r3, r0, lsr #8 + ands r3, r3, #255 + ldrne r5, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r2, #2] @ movhi + mov r3, r0, lsr #16 + ands r3, r3, #255 + ldrne r6, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r2, #4] @ movhi + movs r3, r0, lsr #24 + ldrne r7, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r2, #6] @ movhi +.L6666: + subs lr, lr, #4 + ldr r0, [r1, #4] + addne r2, r2, #8 + beq .L6149 +.L6676: + mov r1, #0 +.L6677: + ands r3, r0, #255 + ldrne r4, .L6976+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov ip, r1, asl #1 + add r1, r1, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r1 + mov r0, r0, lsr #8 + bhi .L6677 + b .L6149 +.L6220: + cmp r7, #0 + add r2, r7, #7 + movge r2, r7 + subs r3, r7, #8 + submi r3, r7, #1 + mov r1, ip, lsr #3 + mov r8, r2, asr #3 + mov r3, r3, asr #3 + mla r0, r8, r1, r3 + mov r2, r6, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + and r3, ip, #7 + add r3, r3, r2, asl #2 + ldr ip, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L6976+24 + cmp r5, ip + add r1, r0, r3 + blt .L6952 + ldr ip, [sp, #4] + add r3, r5, r7 + cmp r3, ip + bcc .L6858 + rsb r8, r5, ip + cmp r8, #0 + ble .L6149 + ldr lr, [sp, #0] + movs r7, r8, lsr #3 + add sl, lr, r5, asl #1 + beq .L6861 + ldr r3, .L6976+28 + ldr r6, .L6976+36 + add r0, r0, r3 + mov r4, sl + mov r5, r1 + mov ip, #0 +.L6863: + ldr lr, [r0, #68] + cmp lr, #0 + beq .L6864 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi +.L6864: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L6873 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi +.L6873: + add ip, ip, #1 + cmp ip, r7 + sub r5, r5, #64 + add r4, r4, #16 + sub r0, r0, #64 + bne .L6863 + rsb r3, r7, r7, asl #26 + add r1, r1, r3, asl #6 + add sl, sl, r7, asl #4 +.L6861: + ands ip, r8, #7 + beq .L6149 + cmp ip, #3 + ldrls r2, [r1, #4] + bls .L6896 + ldr r2, [r1, #4] + cmp r2, #0 + beq .L6886 + ands r3, r2, #255 + ldrne r0, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [sl, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [sl, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [sl, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r6, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [sl, #0] @ movhi +.L6886: + subs ip, ip, #4 + ldr r2, [r1, #0] + addne sl, sl, #8 + beq .L6149 +.L6896: + mov r1, #0 +.L6897: + movs r3, r2, lsr #24 + ldrne r7, .L6976+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r7] + mov r0, r1, asl #1 + add r1, r1, #1 + strneh r3, [r0, sl] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L6897 + b .L6149 +.L6142: + mov r3, r1, lsr #4 + ldr r4, .L6976+12 + and r3, r3, #992 + add r3, r3, r4 + tst lr, #512 + ldrh lr, [r3, #30] + add r2, r7, r7, lsr #31 + add r1, sl, sl, lsr #31 + str lr, [sp, #20] + mov lr, r2, asr #1 + ldr r2, [sp, #8] + mov r4, r1, asr #1 + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, r7 + moveq r9, lr + moveq r0, r4 + movne fp, r7, asl #1 + movne r9, lr, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + str r3, [sp, #16] + bge .L6180 + rsb r2, r5, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L6149 + ldr r5, [sp, #8] + rsb r9, r2, r9 +.L6180: + ldr r2, [sp, #4] + add r3, r5, fp + cmp r3, r2 + blt .L6183 + rsb fp, r5, r2 + cmp fp, #0 + ble .L6149 +.L6183: + add ip, ip, r0 + ldr r0, [sp, #20] + mov r2, r1, asl #16 + mov r1, r0, asl #16 + ldr r0, [sp, #16] + mov r2, r2, asr #16 + mov r1, r1, asr #16 + mov r3, r8, asl #16 + cmp r0, #0 + str r2, [sp, #60] + mov r0, r6, lsr #8 + str r1, [sp, #68] + ldr r2, [sp, #28] + ldr r1, [sp, #0] + mov lr, lr, asl #8 + mov r3, r3, asr #16 + and r0, r0, #240 + str lr, [sp, #80] + str r3, [sp, #56] + mov r4, r4, asl #8 + add r8, r1, r5, asl #1 + rsb lr, ip, r2 + str r0, [sp, #96] + bne .L6185 + ldr r3, [sp, #68] + mla r3, lr, r3, r4 + mov r0, r3, asr #8 + cmp r0, sl + bcs .L6149 + cmp r7, #0 + add r3, r7, #7 + mov r2, r6, asl #22 + movge r3, r7 + mov r1, r0, lsr #3 + mov r3, r3, asr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L6976+24 + add r0, r0, ip, asl #3 + cmp fp, #0 + add r1, r3, r0, asl #2 + ble .L6149 + ldr r3, [sp, #60] + ldr r2, [sp, #56] + mul r3, lr, r3 + mul r2, r9, r2 + ldr r4, [sp, #80] + rsb r3, r2, r3 + add r0, r4, r3 + mov lr, r0, asr #8 + cmp lr, r7 + ldrcs r4, [sp, #16] + bcs .L6191 + b .L6973 +.L6192: + cmp lr, r7 + bcc .L6938 +.L6191: + ldr r5, [sp, #56] + add r4, r4, #1 + add r0, r0, r5 + cmp fp, r4 + mov lr, r0, asr #8 + add r8, r8, #2 + bne .L6192 + ldr lr, [sp, #24] + ldr r0, [sp, #32] + add lr, lr, #1 + cmp lr, r0 + str lr, [sp, #24] + bne .L6954 +.L6922: + add sp, sp, #104 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6153: + cmp r7, #0 + add r1, r7, #7 + mov r2, r6, asl #22 + movge r1, r7 + ldr r3, .L6976+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #6 + cmp r9, #0 + str r2, [sp, #92] + str r1, [sp, #52] + ble .L6149 + mov r3, fp, asl #16 + mov fp, r3, asr #16 + ldr r5, [sp, #40] + ldr r3, [sp, #44] + ldr r1, [sp, #48] + ldr r0, [sp, #48] + mul r2, lr, ip + mul r3, lr, r3 + mul r0, r5, r0 + mul r1, fp, r1 + ldr r6, [sp, #84] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, r6, r3 + add r4, r4, r2 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + cmp ip, r7 + cmpcc lr, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L6169 + b .L6974 +.L6170: + cmp ip, r7 + cmpcc lr, sl + bcc .L6171 +.L6169: + ldr ip, [sp, #40] + add r6, r6, #1 + add r5, r5, ip + add r4, r4, fp + cmp r9, r6 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + add r8, r8, #2 + bne .L6170 + b .L6149 +.L6185: + cmp r7, #0 + add r1, r7, #7 + mov r2, r6, asl #22 + movge r1, r7 + ldr r3, .L6976+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #5 + cmp fp, #0 + str r2, [sp, #88] + str r1, [sp, #72] + ble .L6149 + ldr r5, [sp, #16] + ldr r2, [sp, #68] + mov r3, r5, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #64] + ldr r1, [sp, #64] + ldr r3, [sp, #60] + ldr r0, [sp, #56] + mul r2, lr, r2 + mul r3, lr, r3 + mul r1, r9, r1 + mul r0, r9, r0 + ldr r6, [sp, #80] + rsb r2, r1, r2 + rsb r3, r0, r3 + add r5, r6, r3 + add r4, r4, r2 + mov lr, r5, asr #8 + mov r2, r4, asr #8 + cmp lr, r7 + cmpcc r2, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L6204 + b .L6975 +.L6205: + cmp lr, r7 + cmpcc r2, sl + bcc .L6207 +.L6204: + ldr lr, [sp, #64] + ldr ip, [sp, #56] + add r6, r6, #1 + add r4, r4, lr + add r5, r5, ip + cmp fp, r6 + mov lr, r5, asr #8 + mov r2, r4, asr #8 + add r8, r8, #2 + bne .L6205 + b .L6149 +.L6957: + ldr r1, [sp, #88] + and r0, r2, #7 + add r0, r1, r0, asl #2 + mov r3, r2, asr #3 + and r1, r2, #7 + ldr r2, [sp, #72] + mov ip, lr, asr #1 + mul r2, r3, r2 + and r9, ip, #3 + ldr ip, [sp, #88] + mov r3, lr, asr #1 + add r1, ip, r1, asl #2 + and ip, r3, #3 + mov r3, lr, asr #3 + add r2, r2, r3, asl #5 + add r3, r0, r2 + tst lr, #1 + add r0, r1, r2 + ldreqb r3, [r0, ip] @ zero_extendqisi2 + ldrneb r3, [r3, r9] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + ldr r2, [sp, #96] + cmp r0, #0 + orr r3, r0, r2 + ldrne ip, .L6976+36 + mov r3, r3, asl #1 + ldr lr, [sp, #56] + ldrneh r3, [r3, ip] + ldr r1, [sp, #64] + add r6, r6, #1 + strneh r3, [r8, #0] @ movhi + add r5, r5, lr + add r4, r4, r1 + cmp fp, r6 + mov lr, r5, asr #8 + mov r2, r4, asr #8 + add r8, r8, #2 + ble .L6149 +.L6207: + cmp r2, sl + cmpcc lr, r7 + bcc .L6957 + b .L6149 +.L6194: + cmp lr, r7 + bcs .L6149 +.L6938: + mov r3, lr, asr #1 + and r6, r3, #3 + mov r3, lr, asr #3 + mov r3, r3, asl #5 + mov r2, lr, asr #1 + tst lr, #1 + add ip, r3, r1 + and r5, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r5] @ zero_extendqisi2 + ldrneb r3, [ip, r6] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + ldr ip, [sp, #96] + cmp r2, #0 + orr r3, r2, ip + ldrne r2, .L6976+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldr r6, [sp, #56] + add r4, r4, #1 + strneh r3, [r8, #0] @ movhi + add r0, r0, r6 + cmp fp, r4 + mov lr, r0, asr #8 + add r8, r8, #2 + bgt .L6194 + b .L6149 +.L6162: + cmp lr, r7 + bcs .L6149 +.L6936: + ldr r1, [sp, #40] + mov r3, lr, asr #3 + add r3, r4, r3, asl #6 + add r0, r0, r1 + and r1, lr, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + add ip, ip, #1 + cmp r2, #0 + ldrne r3, .L6976+36 + mov r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov lr, r0, asr #8 + strneh r2, [r8, #0] @ movhi + cmp r9, ip + add r8, r8, #2 + bgt .L6162 + b .L6149 +.L6977: + .align 2 +.L6976: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_height_table + .word obj_width_table + .word vram+65536 + .word vram+65472 + .word vram+65600 + .word palette_ram_converted+512 +.L6952: + rsb r0, r5, ip + rsb r4, r0, r7 + cmp r4, #0 + ble .L6149 + ldr lr, [sp, #4] + add r3, r5, r7 + cmp lr, r3 + bhi .L6705 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r7, r1, r3, asl #6 + bne .L6707 + ldr r6, [sp, #100] + ldr r5, [sp, #76] +.L6709: + movs r4, r6, lsr #3 + beq .L6767 + ldr lr, .L6976+36 + mov r1, r5 + mov r0, r7 + mov ip, #0 +.L6769: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L6770 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #0] @ movhi +.L6770: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L6779 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #12] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #10] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #8] @ movhi +.L6779: + add ip, ip, #1 + cmp ip, r4 + sub r0, r0, #64 + add r1, r1, #16 + bne .L6769 + rsb r3, r4, r4, asl #26 + add r7, r7, r3, asl #6 + add r5, r5, r4, asl #4 +.L6767: + ands ip, r6, #7 + beq .L6149 + cmp ip, #3 + ldrls r2, [r7, #4] + bls .L6802 + ldr r2, [r7, #4] + cmp r2, #0 + beq .L6792 + ands r3, r2, #255 + ldrne lr, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r5, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r5, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r1] + strneh r3, [r5, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r2, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r5, #0] @ movhi +.L6792: + subs ip, ip, #4 + ldr r2, [r7, #0] + addne r5, r5, #8 + beq .L6149 +.L6802: + mov r1, #0 +.L6803: + movs r3, r2, lsr #24 + ldrne r4, .L6976+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r0, r1, asl #1 + add r1, r1, #1 + strneh r3, [r0, r5] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L6803 + b .L6149 +.L6951: + rsb r0, r5, ip + rsb r4, r0, r7 + cmp r4, #0 + ble .L6149 + ldr lr, [sp, #4] + add r3, r5, r7 + cmp lr, r3 + bhi .L6485 + mov r3, r0, lsr #3 + ands ip, r0, #7 + add r7, r1, r3, asl #6 + bne .L6487 + ldr r6, [sp, #100] + ldr r5, [sp, #76] +.L6489: + movs r4, r6, lsr #3 + beq .L6547 + ldr lr, .L6976+36 + mov r1, r5 + mov r0, r7 + mov ip, #0 +.L6549: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L6550 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #6] @ movhi +.L6550: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L6559 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #14] @ movhi +.L6559: + add ip, ip, #1 + cmp r4, ip + add r0, r0, #64 + add r1, r1, #16 + bne .L6549 + add r7, r7, r4, asl #6 + add r5, r5, r4, asl #4 +.L6547: + ands ip, r6, #7 + beq .L6149 + cmp ip, #3 + ldrls r1, [r7, #0] + bls .L6582 + ldr r2, [r7, #0] + cmp r2, #0 + beq .L6572 + ands r3, r2, #255 + ldrne lr, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r5, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r5, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r1] + strneh r3, [r5, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r2, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r5, #6] @ movhi +.L6572: + subs ip, ip, #4 + ldr r1, [r7, #4] + addne r5, r5, #8 + beq .L6149 +.L6582: + mov r2, #0 +.L6583: + ands r3, r1, #255 + ldrne r4, .L6976+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r0, r2, asl #1 + add r2, r2, #1 + strneh r3, [r0, r5] @ movhi + cmp ip, r2 + mov r1, r1, lsr #8 + bhi .L6583 + b .L6149 +.L6950: + rsb lr, r5, ip + rsb ip, lr, r7 + cmp ip, #0 + ble .L6149 + ldr r2, [sp, #4] + add r3, r5, r7 + cmp r2, r3 + bhi .L6355 + mov r3, lr, lsr #3 + ands r4, lr, #7 + sub r0, r0, r3, asl #5 + bne .L6357 + ldr r2, [sp, #100] + ldr sl, [sp, #76] +.L6359: + movs r8, r2, lsr #3 + beq .L6376 + ldr r7, .L6976+36 + mov r4, sl + mov r5, r0 + mov r6, #0 +.L6378: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L6379 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #0] @ movhi +.L6379: + add r6, r6, #1 + cmp r6, r8 + sub r5, r5, #32 + add r4, r4, #16 + bne .L6378 + rsb r3, r8, r8, asl #27 + add r0, r0, r3, asl #5 + add sl, sl, r8, asl #4 +.L6376: + ands lr, r2, #7 + beq .L6149 + ldr r0, [r0, #0] + ldr r4, .L6976+36 + mov ip, #0 +.L6398: + movs r3, r0, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, sl] @ movhi + cmp ip, lr + mov r0, r0, asl #4 + bne .L6398 + b .L6149 +.L6949: + ldr r2, [sp, #8] + rsb lr, r5, r2 + rsb r4, lr, r7 + cmp r4, #0 + ble .L6149 + add r3, r5, r7 + ldr r5, [sp, #4] + cmp r5, r3 + bhi .L6225 + mov r3, lr, lsr #3 + mov r2, r3, asl #5 + ands r3, lr, #7 + add r6, r0, r2 + bne .L6227 + ldr r8, [sp, #100] + ldr r7, [sp, #76] +.L6229: + movs r5, r8, lsr #3 + beq .L6246 + ldr r4, .L6976+36 + mov ip, r7 + mov r0, r6 + mov lr, #0 +.L6248: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L6249 + ands r3, r2, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #14] @ movhi +.L6249: + add lr, lr, #1 + cmp r5, lr + add r0, r0, #32 + add ip, ip, #16 + bne .L6248 + add r6, r6, r5, asl #5 + add r7, r7, r5, asl #4 +.L6246: + ands lr, r8, #7 + beq .L6149 + ldr r2, [r6, #0] + ldr r4, .L6976+36 + mov r0, #0 +.L6268: + ands r3, r2, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov ip, r0, asl #1 + add r0, r0, #1 + strneh r3, [ip, r7] @ movhi + cmp r0, lr + mov r2, r2, lsr #4 + bne .L6268 + b .L6149 +.L6974: + mov r6, #0 +.L6171: + cmp lr, sl + movcc r3, #0 + movcs r3, #1 + cmp r7, ip + orrls r3, r3, #1 + cmp r3, #0 + beq .L6937 + b .L6149 +.L6172: + cmp lr, sl + cmpcc ip, r7 + bcs .L6149 +.L6937: + ldr r0, [sp, #40] + and r3, lr, #7 + mov r2, ip, asr #3 + ldr r1, [sp, #92] + mov r3, r3, asl #3 + add r5, r5, r0 + add r3, r3, r2, asl #6 + ldr r0, [sp, #52] + mov r2, lr, asr #3 + add r3, r3, r1 + mla r0, r2, r0, r3 + and r1, ip, #7 + ldrb r3, [r0, r1] @ zero_extendqisi2 + add r6, r6, #1 + cmp r3, #0 + ldrne r2, .L6976+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + add r4, r4, fp + strneh r3, [r8, #0] @ movhi + cmp r9, r6 + mov lr, r4, asr #8 + mov ip, r5, asr #8 + add r8, r8, #2 + bgt .L6172 + b .L6149 +.L6433: + cmp r8, #0 + beq .L6149 + ldr r6, [sp, #0] + ldr r4, .L6976+36 + add r2, r6, r5, asl #1 + mov ip, #0 + b .L6463 +.L6958: + sub r0, r0, #32 + add r2, r2, #16 +.L6463: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L6464 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi +.L6464: + add ip, ip, #1 + cmp r8, ip + bne .L6958 + b .L6149 +.L6858: + cmp r8, #0 + beq .L6149 + ldr ip, [sp, #0] + ldr r3, .L6976+28 + ldr r4, .L6976+36 + add r2, ip, r5, asl #1 + add r0, r0, r3 + mov ip, #0 + b .L6902 +.L6959: + sub r1, r1, #64 + add r2, r2, #16 +.L6902: + ldr lr, [r0, #68] + cmp lr, #0 + beq .L6903 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi +.L6903: + ldr lr, [r1, #0] + cmp lr, #0 + beq .L6912 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi +.L6912: + add ip, ip, #1 + cmp r8, ip + sub r0, r0, #64 + bne .L6959 + b .L6149 +.L6303: + cmp r8, #0 + beq .L6149 + ldr r6, [sp, #0] + ldr r4, .L6976+36 + add r2, r6, r5, asl #1 + mov ip, #0 + b .L6333 +.L6960: + add r0, r0, #32 + add r2, r2, #16 +.L6333: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L6334 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi +.L6334: + add ip, ip, #1 + cmp r8, ip + bne .L6960 + b .L6149 +.L6638: + cmp r6, #0 + beq .L6149 + ldr r3, .L6976+32 + ldr r7, [sp, #0] + ldr r4, .L6976+36 + add r0, r0, r3 + add r2, r7, r5, asl #1 + mov ip, #0 + b .L6682 +.L6961: + add r1, r1, #64 + add r2, r2, #16 +.L6682: + ldr lr, [r1, #0] + cmp lr, #0 + beq .L6683 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi +.L6683: + ldr lr, [r0, #-60] + cmp lr, #0 + beq .L6692 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi +.L6692: + add ip, ip, #1 + cmp r6, ip + add r0, r0, #64 + bne .L6961 + b .L6149 +.L6485: + ands r2, r0, #7 + mov r3, r0, lsr #3 + add r0, r1, r3, asl #6 + ldreq r1, [sp, #76] + beq .L6589 + cmp r2, #3 + rsb lr, r2, #8 + bhi .L6962 + subs r5, lr, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #76] + beq .L6602 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + ldr r6, .L6976+36 + mov ip, #0 +.L6603: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldrne r7, [sp, #76] + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, r7] @ movhi + cmp ip, r5 + mov r2, r2, lsr #8 + bne .L6603 + ldr ip, [sp, #76] + add r3, ip, lr, asl #1 + sub r1, r3, #8 +.L6602: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L6608 + ands r3, r2, #255 + ldrne lr, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r5, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r6, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r7, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r1, #6] @ movhi +.L6608: + add r1, r1, #8 +.L6594: + add r0, r0, #64 +.L6589: + movs r4, r4, lsr #3 + beq .L6149 + ldr ip, .L6976+36 + mov lr, #0 + b .L6618 +.L6963: + add r0, r0, #64 + add r1, r1, #16 +.L6618: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L6619 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #6] @ movhi +.L6619: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L6628 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #14] @ movhi +.L6628: + add lr, lr, #1 + cmp r4, lr + bne .L6963 + b .L6149 +.L6355: + ands r2, lr, #7 + mov r3, lr, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r4, [sp, #76] + beq .L6404 + rsbs r6, r2, #8 + ldr lr, [r0, #0] + ldreq r4, [sp, #76] + beq .L6407 + mov r3, r2, asl #2 + mov lr, lr, asl r3 + ldr r2, .L6976+36 + mov r5, #0 +.L6408: + movs r3, lr, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldrne r7, [sp, #76] + mov r4, r5, asl #1 + add r5, r5, #1 + strneh r3, [r4, r7] @ movhi + cmp r6, r5 + mov lr, lr, asl #4 + bne .L6408 + ldr lr, [sp, #76] + add r4, lr, r6, asl #1 +.L6407: + sub r0, r0, #32 +.L6404: + movs r5, ip, lsr #3 + beq .L6149 + ldr r2, .L6976+36 + mov ip, #0 + b .L6414 +.L6964: + sub r0, r0, #32 + add r4, r4, #16 +.L6414: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L6415 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #0] @ movhi +.L6415: + add ip, ip, #1 + cmp ip, r5 + bne .L6964 + b .L6149 +.L6705: + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r2, r1, r3, asl #6 + ldreq r0, [sp, #76] + beq .L6809 + cmp ip, #3 + rsb lr, ip, #8 + bhi .L6965 + subs r5, lr, #4 + ldr r1, [r2, #4] + ldreq r0, [sp, #76] + beq .L6822 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + ldr r6, .L6976+36 + mov ip, #0 +.L6823: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldrne r7, [sp, #76] + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r7] @ movhi + cmp r5, ip + mov r1, r1, asl #8 + bne .L6823 + ldr ip, [sp, #76] + add r3, ip, lr, asl #1 + sub r0, r3, #8 +.L6822: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L6828 + ands r3, r1, #255 + ldrne lr, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r5, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r6, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + ldrne r7, .L6976+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #0] @ movhi +.L6828: + add r0, r0, #8 +.L6814: + sub r2, r2, #64 +.L6809: + movs r4, r4, lsr #3 + beq .L6149 + ldr ip, .L6976+36 + mov lr, #0 + b .L6838 +.L6966: + sub r2, r2, #64 + add r0, r0, #16 +.L6838: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L6839 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #0] @ movhi +.L6839: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L6848 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #10] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #8] @ movhi +.L6848: + add lr, lr, #1 + cmp lr, r4 + bne .L6966 + b .L6149 +.L6225: + mov r3, lr, lsr #3 + mov r2, r3, asl #5 + ands r3, lr, #7 + ldreq ip, [sp, #76] + add lr, r0, r2 + beq .L6274 + rsbs r5, r3, #8 + ldr r0, [r0, r2] + ldreq ip, [sp, #76] + beq .L6277 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + ldr r6, .L6976+36 + mov ip, #0 +.L6278: + ands r3, r0, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldrne r7, [sp, #76] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, r7] @ movhi + cmp ip, r5 + mov r0, r0, lsr #4 + bne .L6278 + ldr r0, [sp, #76] + add ip, r0, r5, asl #1 +.L6277: + add lr, lr, #32 +.L6274: + movs r5, r4, lsr #3 + beq .L6149 + ldr r0, .L6978 + mov r4, #0 + b .L6284 +.L6967: + add lr, lr, #32 + add ip, ip, #16 +.L6284: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L6285 + ands r3, r2, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #14] @ movhi +.L6285: + add r4, r4, #1 + cmp r4, r5 + bne .L6967 + b .L6149 +.L6487: + ldr r0, [sp, #100] + rsb lr, ip, #8 + cmp r0, lr + blt .L6968 + cmp ip, #3 + bls .L6520 + cmp lr, #0 + ldr r2, [r7, #4] + ldreq r5, [sp, #76] + beq .L6524 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + ldr ip, .L6978 + mov r0, #0 +.L6525: + ands r3, r1, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r4, [sp, #76] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp lr, r0 + mov r1, r1, lsr #8 + bne .L6525 + ldr r6, [sp, #76] + add r5, r6, lr, asl #1 +.L6524: + ldr ip, [sp, #100] + add r7, r7, #64 + rsb r6, lr, ip + b .L6489 +.L6357: + ldr r3, [sp, #100] + rsb r6, r4, #8 + cmp r3, r6 + blt .L6969 + cmp r6, #0 + ldr r2, [r0, #0] + ldreq sl, [sp, #76] + beq .L6370 + mov r3, r4, asl #2 + mov lr, r2, asl r3 + ldr r2, .L6978 + mov r5, #0 +.L6371: + movs r3, lr, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldrne r7, [sp, #76] + mov r4, r5, asl #1 + add r5, r5, #1 + strneh r3, [r4, r7] @ movhi + cmp r6, r5 + mov lr, lr, asl #4 + bne .L6371 + ldr ip, [sp, #76] + add sl, ip, r6, asl #1 +.L6370: + ldr lr, [sp, #100] + sub r0, r0, #32 + rsb r2, r6, lr + b .L6359 +.L6227: + ldr r7, [sp, #100] + rsb lr, r3, #8 + cmp r7, lr + blt .L6970 + cmp lr, #0 + ldr r2, [r6, #0] + ldreq r7, [sp, #76] + beq .L6240 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + ldr r4, .L6978 + mov ip, #0 +.L6241: + ands r3, r2, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + ldrne r7, [sp, #76] + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r7] @ movhi + cmp lr, ip + mov r2, r2, lsr #4 + bne .L6241 + ldr ip, [sp, #76] + add r7, ip, lr, asl #1 +.L6240: + ldr r0, [sp, #100] + add r6, r6, #32 + rsb r8, lr, r0 + b .L6229 +.L6707: + ldr r0, [sp, #100] + rsb lr, ip, #8 + cmp r0, lr + blt .L6971 + cmp ip, #3 + bls .L6740 + cmp lr, #0 + ldr r2, [r7, #0] + ldreq r5, [sp, #76] + beq .L6744 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + ldr ip, .L6978 + mov r0, #0 +.L6745: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r4, [sp, #76] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp lr, r0 + mov r2, r2, asl #8 + bne .L6745 + ldr r6, [sp, #76] + add r5, r6, lr, asl #1 +.L6744: + ldr ip, [sp, #100] + sub r7, r7, #64 + rsb r6, lr, ip + b .L6709 +.L6971: + cmp r0, #0 + ble .L6149 + cmp ip, #3 + bls .L6713 + mov r3, ip, asl #3 + ldr r2, [r7, #0] + sub r3, r3, #32 + mov r2, r2, asl r3 + ldr ip, .L6978 + mov r0, #0 +.L6716: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r4, [sp, #76] + ldr r5, [sp, #100] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp r5, r0 + mov r2, r2, asl #8 + bne .L6716 + b .L6149 +.L6970: + cmp r7, #0 + ble .L6149 + ldr r2, [r0, r2] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + ldr lr, .L6978 + mov ip, #0 +.L6234: + ands r3, r0, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #76] + ldr r5, [sp, #100] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, ip + mov r0, r0, lsr #4 + bne .L6234 + b .L6149 +.L6969: + cmp r3, #0 + ble .L6149 + ldr r2, [r0, #0] + mov r3, r4, asl #2 + mov r0, r2, asl r3 + ldr lr, .L6978 + mov ip, #0 +.L6364: + movs r3, r0, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #76] + ldr r5, [sp, #100] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, ip + mov r0, r0, asl #4 + bne .L6364 + b .L6149 +.L6965: + cmp lr, #0 + ldr r1, [r2, #0] + ldreq r0, [sp, #76] + beq .L6814 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + ldr r5, .L6978 + mov ip, #0 +.L6815: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldrne r6, [sp, #76] + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r6] @ movhi + cmp ip, lr + mov r1, r1, asl #8 + bne .L6815 + ldr r7, [sp, #76] + sub r2, r2, #64 + add r0, r7, lr, asl #1 + b .L6809 +.L6962: + cmp lr, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #76] + beq .L6594 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + ldr r5, .L6978 + mov ip, #0 +.L6595: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldrne r6, [sp, #76] + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, r6] @ movhi + cmp ip, lr + mov r2, r2, lsr #8 + bne .L6595 + ldr r7, [sp, #76] + add r0, r0, #64 + add r1, r7, lr, asl #1 + b .L6589 +.L6968: + cmp r0, #0 + ble .L6149 + cmp ip, #3 + bls .L6493 + mov r3, ip, asl #3 + ldr r2, [r7, #4] + sub r3, r3, #32 + mov r1, r2, lsr r3 + ldr ip, .L6978 + mov r0, #0 +.L6496: + ands r3, r1, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r4, [sp, #76] + ldr r5, [sp, #100] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, r0 + mov r1, r1, lsr #8 + bne .L6496 + b .L6149 +.L6975: + mov r6, #0 + b .L6207 +.L6740: + subs r4, lr, #4 + ldr r2, [r7, #4] + ldreq r1, [sp, #76] + beq .L6752 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + ldr ip, .L6978 + mov r0, #0 +.L6753: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r5, [sp, #76] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r5] @ movhi + cmp r4, r0 + mov r2, r2, asl #8 + bne .L6753 + ldr r6, [sp, #76] + add r3, r6, lr, asl #1 + sub r1, r3, #8 +.L6752: + ldr r2, [r7, #0] + cmp r2, #0 + beq .L6758 + ands r3, r2, #255 + ldrne ip, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r5, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r1, #0] @ movhi +.L6758: + add r5, r1, #8 + b .L6744 +.L6520: + subs r4, lr, #4 + ldr r2, [r7, #0] + ldreq r1, [sp, #76] + beq .L6532 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + ldr ip, .L6978 + mov r0, #0 +.L6533: + ands r3, r1, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r5, [sp, #76] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r5] @ movhi + cmp r0, r4 + mov r1, r1, lsr #8 + bne .L6533 + ldr r6, [sp, #76] + add r3, r6, lr, asl #1 + sub r1, r3, #8 +.L6532: + ldr r2, [r7, #4] + cmp r2, #0 + beq .L6538 + ands r3, r2, #255 + ldrne ip, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r5, .L6978 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r1, #6] @ movhi +.L6538: + add r5, r1, #8 + b .L6524 +.L6973: + ldr r4, [sp, #16] + b .L6938 +.L6972: + mov ip, fp + b .L6936 +.L6713: + ldr r6, [sp, #100] + mov r3, ip, asl #3 + ldr r1, [r7, #4] + add r2, r6, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L6720 + cmp r6, #0 + ldrne ip, .L6978 + movne r0, #0 + beq .L6149 +.L6736: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r7, [sp, #76] + ldr lr, [sp, #100] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r7] @ movhi + cmp lr, r0 + mov r1, r1, asl #8 + bne .L6736 + b .L6149 +.L6493: + ldr r6, [sp, #100] + ldr r3, [r7, #0] + add r2, r6, ip + cmp r2, #4 + mov r1, ip, asl #3 + mov r2, r3, lsr r1 + bhi .L6500 + cmp r6, #0 + ldrne ip, .L6978 + movne r0, #0 + beq .L6149 +.L6516: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r7, [sp, #76] + ldr lr, [sp, #100] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r7] @ movhi + cmp lr, r0 + mov r2, r2, lsr #8 + bne .L6516 + b .L6149 +.L6720: + rsbs ip, ip, #4 + ldreq lr, [sp, #76] + beq .L6725 + ldr lr, .L6978 + mov r0, #0 +.L6726: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #76] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp r0, ip + mov r1, r1, asl #8 + bne .L6726 + ldr r5, [sp, #76] + add lr, r5, ip, asl #1 +.L6725: + ldr r6, [sp, #100] + ldr r2, [r7, #0] + subs ip, r6, ip + beq .L6149 + ldr r4, .L6978 + mov r0, #0 +.L6732: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L6732 + b .L6149 +.L6500: + rsbs ip, ip, #4 + ldreq lr, [sp, #76] + beq .L6505 + ldr lr, .L6978 + mov r0, #0 +.L6506: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #76] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L6506 + ldr r5, [sp, #76] + add lr, r5, ip, asl #1 +.L6505: + ldr r6, [sp, #100] + ldr r2, [r7, #4] + subs ip, r6, ip + beq .L6149 + ldr r4, .L6978 + mov r0, #0 +.L6512: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L6512 + b .L6149 +.L6979: + .align 2 +.L6978: + .word palette_ram_converted+512 + .size render_scanline_obj_normal_1D, .-render_scanline_obj_normal_1D + .align 2 + .global render_scanline_obj_normal_2D + .type render_scanline_obj_normal_2D, %function +render_scanline_obj_normal_2D: + @ args = 0, pretend = 0, frame = 92 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L7822 + sub sp, sp, #92 + ldrh ip, [ip, #6] + add r0, r0, r0, asl #2 + add r0, ip, r0, asl #5 + str ip, [sp, #32] + ldr ip, .L7822+4 + str r1, [sp, #12] + ldr ip, [ip, r0, asl #2] + str r2, [sp, #8] + str ip, [sp, #36] + cmp ip, #0 + ldr ip, .L7822+8 + str r3, [sp, #4] + add r0, ip, r0, asl #7 + str r0, [sp, #40] + beq .L7768 + add r0, r3, r1, asl #1 + rsb r1, r1, r2 + mov r2, #0 + str r0, [sp, #64] + str r1, [sp, #88] + str r2, [sp, #28] + mov r4, r2 +.L6983: + ldr r5, [sp, #40] + ldr r6, .L7822+12 + ldrb r3, [r4, r5] @ zero_extendqisi2 + ldr r7, .L7822+16 + mov r3, r3, asl #3 + ldrh lr, [r3, r6] + add r3, r3, r6 + ldrh r1, [r3, #2] + mov r4, lr, lsr #12 + and r2, r4, #12 + orr r0, r2, r1, lsr #14 + and ip, lr, #255 + mov r2, r1, asl #23 + cmp ip, #160 + mov r5, r2, asr #23 + ldr r2, .L7822+20 + subgt ip, ip, #256 + tst lr, #256 + ldrh r6, [r3, #4] + ldr r8, [r7, r0, asl #2] + ldr sl, [r2, r0, asl #2] + beq .L6986 + tst lr, #8192 + beq .L6988 + mov r3, r1, lsr #4 + ldr r4, .L7822+12 + add r2, r8, r8, lsr #31 + and r3, r3, #992 + tst lr, #512 + add r3, r3, r4 + mov lr, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #12] + mov r4, r1, asr #1 + movne r0, lr, asl #1 + ldrh r7, [r3, #30] + strne r0, [sp, #48] + moveq r9, r8 + streq lr, [sp, #48] + moveq r0, r4 + movne r9, r8, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + str r7, [sp, #16] + ldrh r1, [r3, #14] + ldrh r7, [r3, #6] + ldrh fp, [r3, #22] + bge .L6993 + rsb r2, r5, r2 + rsb r9, r2, r9 + cmp r9, #0 + ble .L6995 + ldr r3, [sp, #48] + ldr r5, [sp, #12] + rsb r3, r2, r3 + str r3, [sp, #48] +.L6993: + ldr r2, [sp, #8] + add r3, r5, r9 + cmp r3, r2 + blt .L6997 + rsb r9, r5, r2 + cmp r9, #0 + ble .L6995 +.L6997: + mov r3, r7, asl #16 + mov r2, r1, asl #16 + ldr r7, [sp, #16] + mov r3, r3, asr #16 + add r0, ip, r0 + str r3, [sp, #44] + mov ip, r2, asr #16 + ldr r3, [sp, #32] + ldr r2, [sp, #4] + mov r1, r7, asl #16 + mov lr, lr, asl #8 + cmp fp, #0 + str lr, [sp, #72] + mov r1, r1, asr #16 + mov lr, r4, asl #8 + add r7, r2, r5, asl #1 + rsb r0, r0, r3 + bne .L6999 + mla r3, r0, r1, lr + mov r1, r3, asr #8 + cmp r1, sl + bcs .L6995 + mov r3, r6, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #2 + ldr r3, .L7822+24 + cmp r9, #0 + add r4, r3, r1, asl #3 + ble .L6995 + ldr r2, [sp, #48] + ldr r5, [sp, #44] + mul r3, r0, ip + mul r2, r5, r2 + ldr r6, [sp, #72] + rsb r3, r2, r3 + add r0, r6, r3 + mov lr, r0, asr #8 + cmp lr, r8 + movcs ip, fp + bcs .L7005 + b .L7818 +.L7006: + cmp lr, r8 + bcc .L7782 +.L7005: + ldr lr, [sp, #44] + add ip, ip, #1 + add r0, r0, lr + cmp r9, ip + mov lr, r0, asr #8 + add r7, r7, #2 + bne .L7006 +.L6995: + ldr r0, [sp, #28] + ldr r1, [sp, #36] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #28] + beq .L7768 +.L7800: + ldr r4, [sp, #28] + b .L6983 +.L6986: + ldr r2, [sp, #32] + tst r1, #8192 + rsb r0, ip, r2 + rsbne r3, r0, sl + subne r0, r3, #1 + mov r2, r1, asl #19 + and r3, r4, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L6995 + .p2align 2 +.L7067: + .word .L7063 + .word .L7064 + .word .L7065 + .word .L7066 +.L7063: + mov r3, r6, asl #22 + mov r2, r0, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + add r1, r1, r3, asl #3 + ldr r3, [sp, #12] + mov r2, r6, lsr #8 + cmp r5, r3 + ldr r3, .L7822+24 + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L7795 + ldr r2, [sp, #8] + add r3, r5, r8 + cmp r2, r3 + bhi .L7149 + rsb r8, r5, r2 + cmp r8, #0 + ble .L6995 + ldr r3, [sp, #4] + movs r7, r8, lsr #3 + add r2, r3, r5, asl #1 + beq .L7152 + ldr r6, .L7822+36 + mov r4, r2 + mov r5, r0 + mov ip, #0 +.L7154: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L7155 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi +.L7155: + add ip, ip, #1 + cmp ip, r7 + add r5, r5, #32 + add r4, r4, #16 + bne .L7154 + add r0, r0, r7, asl #5 + add r2, r2, r7, asl #4 +.L7152: + ands r4, r8, #7 + beq .L6995 + ldr r0, [r0, #0] + ldr r5, .L7822+36 + mov lr, #0 +.L7174: + ands r3, r0, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov ip, lr, asl #1 + add lr, lr, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r4 + mov r0, r0, lsr #4 + bne .L7174 + b .L6995 +.L7064: + mov r3, r6, asl #22 + mov r1, r0, lsr #3 + subs r2, r8, #8 + mov r3, r3, lsr #22 + submi r2, r8, #1 + add r3, r3, r1, asl #5 + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr ip, [sp, #12] + add r1, r1, r3, asl #3 + ldr r3, .L7822+24 + mov r2, r6, lsr #8 + cmp r5, ip + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L7796 + ldr r2, [sp, #8] + add r3, r5, r8 + cmp r2, r3 + bhi .L7279 + rsb r8, r5, r2 + cmp r8, #0 + ble .L6995 + ldr r3, [sp, #4] + movs r7, r8, lsr #3 + add r2, r3, r5, asl #1 + beq .L7282 + ldr r6, .L7822+36 + mov r4, r2 + mov r5, r0 + mov ip, #0 +.L7284: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L7285 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi +.L7285: + add ip, ip, #1 + cmp ip, r7 + sub r5, r5, #32 + add r4, r4, #16 + bne .L7284 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r2, r2, r7, asl #4 +.L7282: + ands r4, r8, #7 + beq .L6995 + ldr r0, [r0, #0] + ldr r5, .L7822+36 + mov lr, #0 +.L7304: + movs r3, r0, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + mov ip, lr, asl #1 + add lr, lr, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r4 + mov r0, r0, asl #4 + bne .L7304 + b .L6995 +.L7065: + mov r2, r6, asl #22 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + and r3, r0, #7 + add r2, r2, r1, asl #5 + add r3, r3, r2, asl #2 + ldr ip, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L7822+24 + cmp r5, ip + add ip, r0, r3 + blt .L7797 + ldr lr, [sp, #8] + add r3, r5, r8 + cmp lr, r3 + bhi .L7484 + rsb r8, r5, lr + cmp r8, #0 + ble .L6995 + ldr r1, [sp, #4] + movs r7, r8, lsr #3 + add r2, r1, r5, asl #1 + beq .L7487 + ldr r3, .L7822+32 + ldr r6, .L7822+36 + add r0, r0, r3 + mov r4, r2 + mov r5, ip + mov r1, #0 +.L7489: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L7490 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi +.L7490: + ldr lr, [r0, #-60] + cmp lr, #0 + beq .L7499 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi +.L7499: + add r1, r1, #1 + cmp r7, r1 + add r5, r5, #64 + add r4, r4, #16 + add r0, r0, #64 + bne .L7489 + add ip, ip, r7, asl #6 + add r2, r2, r7, asl #4 +.L7487: + ands lr, r8, #7 + beq .L6995 + cmp lr, #3 + ldrls r0, [ip, #0] + bls .L7522 + ldr r1, [ip, #0] + cmp r1, #0 + beq .L7512 + ands r3, r1, #255 + ldrne r4, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r5, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r2, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r6, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r2, #4] @ movhi + movs r3, r1, lsr #24 + ldrne r7, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r2, #6] @ movhi +.L7512: + subs lr, lr, #4 + ldr r0, [ip, #4] + addne r2, r2, #8 + beq .L6995 +.L7522: + mov r1, #0 +.L7523: + ands r3, r0, #255 + ldrne r4, .L7822+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov ip, r1, asl #1 + add r1, r1, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r1 + mov r0, r0, lsr #8 + bhi .L7523 + b .L6995 +.L7066: + subs r2, r8, #8 + submi r2, r8, #1 + mov r3, r0, lsr #3 + mov r2, r2, asr #3 + mov r1, r6, asl #22 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + and r3, r0, #7 + add r1, r1, r2, asl #1 + add r3, r3, r1, asl #2 + ldr ip, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L7822+24 + cmp r5, ip + add ip, r0, r3 + blt .L7798 + ldr lr, [sp, #8] + add r3, r5, r8 + cmp r3, lr + bcc .L7704 + rsb r8, r5, lr + cmp r8, #0 + ble .L6995 + ldr r1, [sp, #4] + movs r7, r8, lsr #3 + add sl, r1, r5, asl #1 + beq .L7707 + ldr r3, .L7822+28 + ldr r6, .L7822+36 + add r0, r0, r3 + mov r4, sl + mov r5, ip + mov r1, #0 +.L7709: + ldr lr, [r0, #68] + cmp lr, #0 + beq .L7710 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #0] @ movhi +.L7710: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L7719 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #10] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r4, #8] @ movhi +.L7719: + add r1, r1, #1 + cmp r1, r7 + sub r5, r5, #64 + add r4, r4, #16 + sub r0, r0, #64 + bne .L7709 + rsb r3, r7, r7, asl #26 + add ip, ip, r3, asl #6 + add sl, sl, r7, asl #4 +.L7707: + ands lr, r8, #7 + beq .L6995 + cmp lr, #3 + ldrls r2, [ip, #4] + bls .L7742 + ldr r2, [ip, #4] + cmp r2, #0 + beq .L7732 + ands r3, r2, #255 + ldrne r4, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [sl, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r5, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [sl, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r6, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [sl, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r7, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [sl, #0] @ movhi +.L7732: + subs lr, lr, #4 + ldr r2, [ip, #0] + addne sl, sl, #8 + beq .L6995 +.L7742: + mov r1, #0 +.L7743: + movs r3, r2, lsr #24 + ldrne ip, .L7822+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + mov r0, r1, asl #1 + add r1, r1, #1 + strneh r3, [r0, sl] @ movhi + cmp lr, r1 + mov r2, r2, asl #8 + bhi .L7743 + b .L6995 +.L6988: + mov r3, r1, lsr #4 + ldr r4, .L7822+12 + and r3, r3, #992 + add r3, r3, r4 + ldrh r7, [r3, #30] + add r2, r8, r8, lsr #31 + tst lr, #512 + add r1, sl, sl, lsr #31 + mov lr, r2, asr #1 + ldr r2, [sp, #12] + mov r4, r1, asr #1 + str r7, [sp, #24] + ldrh r1, [r3, #14] + ldrh r7, [r3, #6] + ldrh r3, [r3, #22] + moveq fp, r8 + moveq r9, lr + moveq r0, r4 + movne fp, r8, asl #1 + movne r9, lr, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + str r3, [sp, #20] + bge .L7026 + rsb r2, r5, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L6995 + ldr r5, [sp, #12] + rsb r9, r2, r9 +.L7026: + ldr r2, [sp, #8] + add r3, r5, fp + cmp r3, r2 + blt .L7029 + rsb fp, r5, r2 + cmp fp, #0 + ble .L6995 +.L7029: + add ip, ip, r0 + mov r3, r7, asl #16 + mov r2, r1, asl #16 + ldr r0, [sp, #20] + ldr r7, [sp, #24] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + cmp r0, #0 + str r3, [sp, #52] + mov r0, r6, lsr #8 + str r2, [sp, #56] + ldr r3, [sp, #32] + ldr r2, [sp, #4] + mov r1, r7, asl #16 + mov lr, lr, asl #8 + and r0, r0, #240 + str lr, [sp, #68] + mov r1, r1, asr #16 + mov lr, r4, asl #8 + add r7, r2, r5, asl #1 + rsb ip, ip, r3 + str r0, [sp, #84] + bne .L7031 + mla r3, ip, r1, lr + mov r1, r3, asr #8 + cmp r1, sl + bcs .L6995 + mov r3, r6, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #3 + ldr r3, .L7822+24 + cmp fp, #0 + add r1, r3, r1, asl #2 + ble .L6995 + ldr r3, [sp, #56] + ldr r2, [sp, #52] + mul r3, ip, r3 + mul r2, r9, r2 + ldr r4, [sp, #68] + rsb r3, r2, r3 + add r0, r4, r3 + mov lr, r0, asr #8 + cmp lr, r8 + ldrcs r4, [sp, #20] + bcs .L7037 + b .L7819 +.L7038: + cmp lr, r8 + bcc .L7784 +.L7037: + ldr r5, [sp, #52] + add r4, r4, #1 + add r0, r0, r5 + cmp fp, r4 + mov lr, r0, asr #8 + add r7, r7, #2 + bne .L7038 + ldr r0, [sp, #28] + ldr r1, [sp, #36] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #28] + bne .L7800 +.L7768: + add sp, sp, #92 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L6999: + mov r3, r6, asl #22 + ldr r2, .L7822+24 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp r9, #0 + str r3, [sp, #80] + ble .L6995 + mov r3, fp, asl #16 + mul r2, r0, r1 + mov fp, r3, asr #16 + ldr r4, [sp, #44] + mul r3, r0, ip + ldr r1, [sp, #48] + ldr r0, [sp, #48] + mul r1, fp, r1 + mul r0, r4, r0 + ldr r6, [sp, #72] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, r6, r3 + add r4, lr, r2 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + cmp ip, r8 + cmpcc lr, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L7015 + b .L7820 +.L7016: + cmp ip, r8 + cmpcc lr, sl + bcc .L7017 +.L7015: + ldr ip, [sp, #44] + add r6, r6, #1 + add r5, r5, ip + add r4, r4, fp + cmp r9, r6 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + add r7, r7, #2 + bne .L7016 + b .L6995 +.L7031: + mov r3, r6, asl #22 + ldr r2, .L7822+24 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp fp, #0 + str r3, [sp, #76] + ble .L6995 + ldr r4, [sp, #20] + mul r2, ip, r1 + mov r3, r4, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #60] + ldr r1, [sp, #60] + ldr r3, [sp, #56] + ldr r0, [sp, #52] + mul r3, ip, r3 + mul r1, r9, r1 + mul r0, r9, r0 + ldr r6, [sp, #68] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, r6, r3 + add r4, lr, r2 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + cmp ip, r8 + cmpcc lr, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L7050 + b .L7821 +.L7051: + cmp ip, r8 + cmpcc lr, sl + bcc .L7053 +.L7050: + ldr ip, [sp, #52] + ldr lr, [sp, #60] + add r6, r6, #1 + add r5, r5, ip + add r4, r4, lr + cmp fp, r6 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + add r7, r7, #2 + bne .L7051 + b .L6995 +.L7803: + mov r3, ip, asr #1 + ldr r1, [sp, #76] + and r3, r3, #3 + str r3, [sp, #0] + and r0, lr, #7 + ldr r3, [sp, #76] + add r0, r1, r0, asl #2 + and r1, lr, #7 + mov r2, ip, asr #1 + add r1, r3, r1, asl #2 + mov r3, lr, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, ip, asr #3 + tst ip, #1 + add r3, r3, r2, asl #5 + add r2, r0, r3 + movne ip, r9 + add r0, r1, r3 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + ldrneb r3, [r2, ip] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + ldr r2, [sp, #84] + cmp r0, #0 + orr r3, r0, r2 + ldrne r0, .L7822+36 + mov r3, r3, asl #1 + ldr lr, [sp, #52] + ldrneh r3, [r3, r0] + ldr r1, [sp, #60] + add r6, r6, #1 + add r5, r5, lr + strneh r3, [r7, #0] @ movhi + add r4, r4, r1 + cmp fp, r6 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + add r7, r7, #2 + ble .L6995 +.L7053: + cmp lr, sl + cmpcc ip, r8 + bcc .L7803 + b .L6995 +.L7040: + cmp lr, r8 + bcs .L6995 +.L7784: + mov r3, lr, asr #1 + and r6, r3, #3 + mov r3, lr, asr #3 + mov r3, r3, asl #5 + mov r2, lr, asr #1 + tst lr, #1 + add ip, r3, r1 + and r5, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r5] @ zero_extendqisi2 + ldrneb r3, [ip, r6] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + ldr ip, [sp, #84] + cmp r2, #0 + orr r3, r2, ip + ldrne r2, .L7822+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldr r6, [sp, #52] + add r4, r4, #1 + strneh r3, [r7, #0] @ movhi + add r0, r0, r6 + cmp fp, r4 + mov lr, r0, asr #8 + add r7, r7, #2 + bgt .L7040 + b .L6995 +.L7008: + cmp lr, r8 + bcs .L6995 +.L7782: + ldr r1, [sp, #44] + mov r3, lr, asr #3 + add r3, r4, r3, asl #6 + add r0, r0, r1 + and r1, lr, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + add ip, ip, #1 + cmp r2, #0 + ldrne r3, .L7822+36 + mov r2, r2, asl #1 + ldrneh r2, [r2, r3] + mov lr, r0, asr #8 + strneh r2, [r7, #0] @ movhi + cmp r9, ip + add r7, r7, #2 + bgt .L7008 + b .L6995 +.L7823: + .align 2 +.L7822: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_width_table + .word obj_height_table + .word vram+65536 + .word vram+65472 + .word vram+65600 + .word palette_ram_converted+512 +.L7798: + ldr lr, [sp, #12] + rsb r1, r5, lr + rsb r4, r1, r8 + cmp r4, #0 + ble .L6995 + ldr r0, [sp, #8] + add r3, r5, r8 + cmp r0, r3 + bhi .L7551 + mov r3, r1, lsr #3 + ands r0, r1, #7 + sub r7, ip, r3, asl #6 + bne .L7553 + ldr r6, [sp, #88] + ldr r5, [sp, #64] +.L7555: + movs r4, r6, lsr #3 + beq .L7613 + ldr lr, .L7822+36 + mov r1, r5 + mov r0, r7 + mov ip, #0 +.L7615: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L7616 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #0] @ movhi +.L7616: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L7625 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #12] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #10] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #8] @ movhi +.L7625: + add ip, ip, #1 + cmp ip, r4 + sub r0, r0, #64 + add r1, r1, #16 + bne .L7615 + rsb r3, r4, r4, asl #26 + add r7, r7, r3, asl #6 + add r5, r5, r4, asl #4 +.L7613: + ands ip, r6, #7 + beq .L6995 + cmp ip, #3 + ldrls r2, [r7, #4] + bls .L7648 + ldr r2, [r7, #4] + cmp r2, #0 + beq .L7638 + ands r3, r2, #255 + ldrne r0, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r5, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r1, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r1] + strneh r3, [r5, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r5, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r6, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r5, #0] @ movhi +.L7638: + subs ip, ip, #4 + ldr r2, [r7, #0] + addne r5, r5, #8 + beq .L6995 +.L7648: + mov r1, #0 +.L7649: + movs r3, r2, lsr #24 + ldrne r7, .L7822+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r7] + mov r0, r1, asl #1 + add r1, r1, #1 + strneh r3, [r0, r5] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L7649 + b .L6995 +.L7797: + ldr lr, [sp, #12] + rsb r1, r5, lr + rsb r4, r1, r8 + cmp r4, #0 + ble .L6995 + ldr r0, [sp, #8] + add r3, r5, r8 + cmp r0, r3 + bhi .L7331 + mov r3, r1, lsr #3 + ands r0, r1, #7 + add r7, ip, r3, asl #6 + bne .L7333 + ldr r6, [sp, #88] + ldr r5, [sp, #64] +.L7335: + movs r4, r6, lsr #3 + beq .L7393 + ldr lr, .L7822+36 + mov r1, r5 + mov r0, r7 + mov ip, #0 +.L7395: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L7396 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #6] @ movhi +.L7396: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L7405 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #14] @ movhi +.L7405: + add ip, ip, #1 + cmp r4, ip + add r0, r0, #64 + add r1, r1, #16 + bne .L7395 + add r7, r7, r4, asl #6 + add r5, r5, r4, asl #4 +.L7393: + ands ip, r6, #7 + beq .L6995 + cmp ip, #3 + ldrls r1, [r7, #0] + bls .L7428 + ldr r2, [r7, #0] + cmp r2, #0 + beq .L7418 + ands r3, r2, #255 + ldrne r0, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r5, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r1, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r1] + strneh r3, [r5, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r5, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r6, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r5, #6] @ movhi +.L7418: + subs ip, ip, #4 + ldr r1, [r7, #4] + addne r5, r5, #8 + beq .L6995 +.L7428: + mov r2, #0 +.L7429: + ands r3, r1, #255 + ldrne r7, .L7822+36 + mov r3, r3, asl #1 + ldrneh r3, [r3, r7] + mov r0, r2, asl #1 + add r2, r2, #1 + strneh r3, [r0, r5] @ movhi + cmp ip, r2 + mov r1, r1, lsr #8 + bhi .L7429 + b .L6995 +.L7796: + rsb lr, r5, ip + rsb ip, lr, r8 + cmp ip, #0 + ble .L6995 + ldr r2, [sp, #8] + add r3, r5, r8 + cmp r2, r3 + bhi .L7201 + mov r3, lr, lsr #3 + ands r4, lr, #7 + sub r0, r0, r3, asl #5 + bne .L7203 + ldr r2, [sp, #88] + ldr sl, [sp, #64] +.L7205: + movs r8, r2, lsr #3 + beq .L7222 + ldr r7, .L7822+36 + mov r4, sl + mov r5, r0 + mov r6, #0 +.L7224: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L7225 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r4, #0] @ movhi +.L7225: + add r6, r6, #1 + cmp r6, r8 + sub r5, r5, #32 + add r4, r4, #16 + bne .L7224 + rsb r3, r8, r8, asl #27 + add r0, r0, r3, asl #5 + add sl, sl, r8, asl #4 +.L7222: + ands lr, r2, #7 + beq .L6995 + ldr r0, [r0, #0] + ldr r4, .L7822+36 + mov ip, #0 +.L7244: + movs r3, r0, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, sl] @ movhi + cmp ip, lr + mov r0, r0, asl #4 + bne .L7244 + b .L6995 +.L7795: + ldr r4, [sp, #12] + rsb lr, r5, r4 + rsb r4, lr, r8 + cmp r4, #0 + ble .L6995 + add r3, r5, r8 + ldr r5, [sp, #8] + cmp r5, r3 + bhi .L7071 + mov r3, lr, lsr #3 + mov r2, r3, asl #5 + ands r3, lr, #7 + add r6, r0, r2 + bne .L7073 + ldr r8, [sp, #88] + ldr r7, [sp, #64] +.L7075: + movs r5, r8, lsr #3 + beq .L7092 + ldr r4, .L7822+36 + mov ip, r7 + mov r0, r6 + mov lr, #0 +.L7094: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L7095 + ands r3, r2, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [ip, #14] @ movhi +.L7095: + add lr, lr, #1 + cmp r5, lr + add r0, r0, #32 + add ip, ip, #16 + bne .L7094 + add r6, r6, r5, asl #5 + add r7, r7, r5, asl #4 +.L7092: + ands lr, r8, #7 + beq .L6995 + ldr r2, [r6, #0] + ldr r4, .L7822+36 + mov r0, #0 +.L7114: + ands r3, r2, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov ip, r0, asl #1 + add r0, r0, #1 + strneh r3, [ip, r7] @ movhi + cmp r0, lr + mov r2, r2, lsr #4 + bne .L7114 + b .L6995 +.L7820: + mov r6, #0 +.L7017: + cmp lr, sl + movcc r3, #0 + movcs r3, #1 + cmp r8, ip + orrls r3, r3, #1 + cmp r3, #0 + beq .L7783 + b .L6995 +.L7018: + cmp lr, sl + cmpcc ip, r8 + bcs .L6995 +.L7783: + and r3, lr, #7 + mov r2, ip, asr #3 + mov r3, r3, asl #3 + mov r1, lr, asr #3 + add r3, r3, r2, asl #6 + ldr r0, [sp, #44] + add r3, r3, r1, asl #10 + ldr r1, [sp, #80] + add r5, r5, r0 + add r3, r3, r1 + and r0, ip, #7 + ldrb r2, [r3, r0] @ zero_extendqisi2 + add r6, r6, #1 + cmp r2, #0 + ldrne r3, .L7822+36 + mov r2, r2, asl #1 + ldrneh r2, [r2, r3] + add r4, r4, fp + strneh r2, [r7, #0] @ movhi + cmp r9, r6 + mov lr, r4, asr #8 + mov ip, r5, asr #8 + add r7, r7, #2 + bgt .L7018 + b .L6995 +.L7279: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r6, r3, asr #3 + beq .L6995 + ldr r7, [sp, #4] + ldr r4, .L7822+36 + add r2, r7, r5, asl #1 + mov ip, #0 + b .L7309 +.L7804: + sub r0, r0, #32 + add r2, r2, #16 +.L7309: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L7310 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi +.L7310: + add ip, ip, #1 + cmp r6, ip + bne .L7804 + b .L6995 +.L7704: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r6, r3, asr #3 + beq .L6995 + ldr r3, .L7822+28 + ldr lr, [sp, #4] + ldr r4, .L7822+36 + add r0, r0, r3 + add r2, lr, r5, asl #1 + mov r1, #0 + b .L7748 +.L7805: + sub ip, ip, #64 + add r2, r2, #16 +.L7748: + ldr lr, [r0, #68] + cmp lr, #0 + beq .L7749 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi +.L7749: + ldr lr, [ip, #0] + cmp lr, #0 + beq .L7758 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi +.L7758: + add r1, r1, #1 + cmp r6, r1 + sub r0, r0, #64 + bne .L7805 + b .L6995 +.L7149: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r6, r3, asr #3 + beq .L6995 + ldr r7, [sp, #4] + ldr r4, .L7822+36 + add r2, r7, r5, asl #1 + mov ip, #0 + b .L7179 +.L7806: + add r0, r0, #32 + add r2, r2, #16 +.L7179: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L7180 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi +.L7180: + add ip, ip, #1 + cmp r6, ip + bne .L7806 + b .L6995 +.L7484: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r6, r3, asr #3 + beq .L6995 + ldr r3, .L7822+32 + ldr r7, [sp, #4] + ldr r4, .L7822+36 + add r0, r0, r3 + add r2, r7, r5, asl #1 + mov r1, #0 + b .L7528 +.L7807: + add ip, ip, #64 + add r2, r2, #16 +.L7528: + ldr lr, [ip, #0] + cmp lr, #0 + beq .L7529 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #0] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #2] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #4] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #6] @ movhi +.L7529: + ldr lr, [r0, #-60] + cmp lr, #0 + beq .L7538 + ands r3, lr, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #8] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #10] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #12] @ movhi + movs r3, lr, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r2, #14] @ movhi +.L7538: + add r1, r1, #1 + cmp r6, r1 + add r0, r0, #64 + bne .L7807 + b .L6995 +.L7331: + mov r3, r1, lsr #3 + ands r2, r1, #7 + add r0, ip, r3, asl #6 + ldreq r1, [sp, #64] + beq .L7435 + cmp r2, #3 + rsb lr, r2, #8 + bhi .L7808 + subs r5, lr, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #64] + beq .L7448 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + ldr r6, .L7822+36 + mov ip, #0 +.L7449: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldrne r7, [sp, #64] + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, r7] @ movhi + cmp ip, r5 + mov r2, r2, lsr #8 + bne .L7449 + ldr ip, [sp, #64] + add r3, ip, lr, asl #1 + sub r1, r3, #8 +.L7448: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L7454 + ands r3, r2, #255 + ldrne lr, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r5, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r6, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r7, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r1, #6] @ movhi +.L7454: + add r1, r1, #8 +.L7440: + add r0, r0, #64 +.L7435: + movs r4, r4, lsr #3 + beq .L6995 + ldr ip, .L7822+36 + mov lr, #0 + b .L7464 +.L7809: + add r0, r0, #64 + add r1, r1, #16 +.L7464: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L7465 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #6] @ movhi +.L7465: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L7474 + ands r3, r2, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r1, #14] @ movhi +.L7474: + add lr, lr, #1 + cmp r4, lr + bne .L7809 + b .L6995 +.L7201: + ands r2, lr, #7 + mov r3, lr, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r4, [sp, #64] + beq .L7250 + rsbs r6, r2, #8 + ldr lr, [r0, #0] + ldreq r4, [sp, #64] + beq .L7253 + mov r3, r2, asl #2 + mov lr, lr, asl r3 + ldr r2, .L7822+36 + mov r5, #0 +.L7254: + movs r3, lr, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldrne r7, [sp, #64] + mov r4, r5, asl #1 + add r5, r5, #1 + strneh r3, [r4, r7] @ movhi + cmp r6, r5 + mov lr, lr, asl #4 + bne .L7254 + ldr lr, [sp, #64] + add r4, lr, r6, asl #1 +.L7253: + sub r0, r0, #32 +.L7250: + movs r5, ip, lsr #3 + beq .L6995 + ldr r2, .L7822+36 + mov ip, #0 + b .L7260 +.L7810: + sub r0, r0, #32 + add r4, r4, #16 +.L7260: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L7261 + ands r3, lr, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #14] @ movhi + mov r3, lr, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #12] @ movhi + mov r3, lr, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #10] @ movhi + mov r3, lr, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #8] @ movhi + mov r3, lr, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #6] @ movhi + mov r3, lr, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #4] @ movhi + mov r3, lr, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #2] @ movhi + movs r3, lr, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r2] + strneh r3, [r4, #0] @ movhi +.L7261: + add ip, ip, #1 + cmp ip, r5 + bne .L7810 + b .L6995 +.L7551: + ands r0, r1, #7 + mov r3, r1, lsr #3 + sub r2, ip, r3, asl #6 + ldreq r0, [sp, #64] + beq .L7655 + cmp r0, #3 + rsb lr, r0, #8 + bhi .L7811 + subs r5, lr, #4 + ldr r1, [r2, #4] + ldreq r0, [sp, #64] + beq .L7668 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + ldr r6, .L7822+36 + mov ip, #0 +.L7669: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldrne r7, [sp, #64] + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r7] @ movhi + cmp r5, ip + mov r1, r1, asl #8 + bne .L7669 + ldr ip, [sp, #64] + add r3, ip, lr, asl #1 + sub r0, r3, #8 +.L7668: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L7674 + ands r3, r1, #255 + ldrne lr, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r5, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r6, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r6] + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + ldrne r7, .L7822+36 + movne r3, r3, asl #1 + ldrneh r3, [r3, r7] + strneh r3, [r0, #0] @ movhi +.L7674: + add r0, r0, #8 +.L7660: + sub r2, r2, #64 +.L7655: + movs r4, r4, lsr #3 + beq .L6995 + ldr ip, .L7822+36 + mov lr, #0 + b .L7684 +.L7812: + sub r2, r2, #64 + add r0, r0, #16 +.L7684: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L7685 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #0] @ movhi +.L7685: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L7694 + ands r3, r1, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #10] @ movhi + movs r3, r1, lsr #24 + movne r3, r3, asl #1 + ldrneh r3, [r3, ip] + strneh r3, [r0, #8] @ movhi +.L7694: + add lr, lr, #1 + cmp lr, r4 + bne .L7812 + b .L6995 +.L7071: + mov r3, lr, lsr #3 + mov r2, r3, asl #5 + ands r3, lr, #7 + ldreq ip, [sp, #64] + add lr, r0, r2 + beq .L7120 + rsbs r5, r3, #8 + ldr r0, [r0, r2] + ldreq ip, [sp, #64] + beq .L7123 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + ldr r6, .L7824 + mov ip, #0 +.L7124: + ands r3, r0, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r6] + ldrne r7, [sp, #64] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, r7] @ movhi + cmp ip, r5 + mov r0, r0, lsr #4 + bne .L7124 + ldr r0, [sp, #64] + add ip, r0, r5, asl #1 +.L7123: + add lr, lr, #32 +.L7120: + movs r5, r4, lsr #3 + beq .L6995 + ldr r0, .L7824 + mov r4, #0 + b .L7130 +.L7813: + add lr, lr, #32 + add ip, ip, #16 +.L7130: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L7131 + ands r3, r2, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + orrne r3, r1, r3 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [ip, #14] @ movhi +.L7131: + add r4, r4, #1 + cmp r4, r5 + bne .L7813 + b .L6995 +.L7333: + ldr r1, [sp, #88] + rsb ip, r0, #8 + cmp r1, ip + blt .L7814 + cmp r0, #3 + bls .L7366 + cmp ip, #0 + ldr r2, [r7, #4] + ldreq r5, [sp, #64] + beq .L7370 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + ldr lr, .L7824 + mov r0, #0 +.L7371: + ands r3, r1, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #64] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp ip, r0 + mov r1, r1, lsr #8 + bne .L7371 + ldr r6, [sp, #64] + add r5, r6, ip, asl #1 +.L7370: + ldr lr, [sp, #88] + add r7, r7, #64 + rsb r6, ip, lr + b .L7335 +.L7203: + ldr r3, [sp, #88] + rsb r6, r4, #8 + cmp r3, r6 + blt .L7815 + cmp r6, #0 + ldr r2, [r0, #0] + ldreq sl, [sp, #64] + beq .L7216 + mov r3, r4, asl #2 + mov lr, r2, asl r3 + ldr r2, .L7824 + mov r5, #0 +.L7217: + movs r3, lr, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r2] + ldrne r7, [sp, #64] + mov r4, r5, asl #1 + add r5, r5, #1 + strneh r3, [r4, r7] @ movhi + cmp r6, r5 + mov lr, lr, asl #4 + bne .L7217 + ldr ip, [sp, #64] + add sl, ip, r6, asl #1 +.L7216: + ldr lr, [sp, #88] + sub r0, r0, #32 + rsb r2, r6, lr + b .L7205 +.L7073: + ldr r7, [sp, #88] + rsb lr, r3, #8 + cmp r7, lr + blt .L7816 + cmp lr, #0 + ldr r2, [r6, #0] + ldreq r7, [sp, #64] + beq .L7086 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + ldr r4, .L7824 + mov ip, #0 +.L7087: + ands r3, r2, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + ldrne r7, [sp, #64] + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r7] @ movhi + cmp lr, ip + mov r2, r2, lsr #4 + bne .L7087 + ldr ip, [sp, #64] + add r7, ip, lr, asl #1 +.L7086: + ldr r0, [sp, #88] + add r6, r6, #32 + rsb r8, lr, r0 + b .L7075 +.L7553: + ldr r1, [sp, #88] + rsb ip, r0, #8 + cmp r1, ip + blt .L7817 + cmp r0, #3 + bls .L7586 + cmp ip, #0 + ldr r2, [r7, #0] + ldreq r5, [sp, #64] + beq .L7590 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + ldr lr, .L7824 + mov r0, #0 +.L7591: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #64] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp ip, r0 + mov r2, r2, asl #8 + bne .L7591 + ldr r6, [sp, #64] + add r5, r6, ip, asl #1 +.L7590: + ldr lr, [sp, #88] + sub r7, r7, #64 + rsb r6, ip, lr + b .L7555 +.L7817: + cmp r1, #0 + ble .L6995 + cmp r0, #3 + bls .L7559 + mov r3, r0, asl #3 + ldr r2, [r7, #0] + sub r3, r3, #32 + mov r2, r2, asl r3 + ldr ip, .L7824 + mov r0, #0 +.L7562: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r4, [sp, #64] + ldr r5, [sp, #88] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp r5, r0 + mov r2, r2, asl #8 + bne .L7562 + b .L6995 +.L7816: + cmp r7, #0 + ble .L6995 + ldr r2, [r0, r2] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + ldr lr, .L7824 + mov ip, #0 +.L7080: + ands r3, r0, #15 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #64] + ldr r5, [sp, #88] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, ip + mov r0, r0, lsr #4 + bne .L7080 + b .L6995 +.L7815: + cmp r3, #0 + ble .L6995 + ldr r2, [r0, #0] + mov r3, r4, asl #2 + mov r0, r2, asl r3 + ldr lr, .L7824 + mov ip, #0 +.L7210: + movs r3, r0, lsr #28 + orr r3, r1, r3 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #64] + ldr r5, [sp, #88] + mov r2, ip, asl #1 + add ip, ip, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, ip + mov r0, r0, asl #4 + bne .L7210 + b .L6995 +.L7811: + cmp lr, #0 + ldr r1, [r2, #0] + ldreq r0, [sp, #64] + beq .L7660 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + ldr r5, .L7824 + mov ip, #0 +.L7661: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldrne r6, [sp, #64] + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r6] @ movhi + cmp ip, lr + mov r1, r1, asl #8 + bne .L7661 + ldr r7, [sp, #64] + sub r2, r2, #64 + add r0, r7, lr, asl #1 + b .L7655 +.L7808: + cmp lr, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #64] + beq .L7440 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + ldr r5, .L7824 + mov ip, #0 +.L7441: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r5] + ldrne r6, [sp, #64] + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, r6] @ movhi + cmp ip, lr + mov r2, r2, lsr #8 + bne .L7441 + ldr r7, [sp, #64] + add r0, r0, #64 + add r1, r7, lr, asl #1 + b .L7435 +.L7814: + cmp r1, #0 + ble .L6995 + cmp r0, #3 + bls .L7339 + mov r3, r0, asl #3 + ldr r2, [r7, #4] + sub r3, r3, #32 + mov r1, r2, lsr r3 + ldr ip, .L7824 + mov r0, #0 +.L7342: + ands r3, r1, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r4, [sp, #64] + ldr r5, [sp, #88] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, r0 + mov r1, r1, lsr #8 + bne .L7342 + b .L6995 +.L7821: + mov r6, #0 + b .L7053 +.L7586: + subs lr, ip, #4 + ldr r2, [r7, #4] + ldreq r1, [sp, #64] + beq .L7598 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + ldr r4, .L7824 + mov r0, #0 +.L7599: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + ldrne r5, [sp, #64] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r5] @ movhi + cmp lr, r0 + mov r2, r2, asl #8 + bne .L7599 + ldr r6, [sp, #64] + add r3, r6, ip, asl #1 + sub r1, r3, #8 +.L7598: + ldr r2, [r7, #0] + cmp r2, #0 + beq .L7604 + ands r3, r2, #255 + ldrne lr, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r5, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r1, #0] @ movhi +.L7604: + add r5, r1, #8 + b .L7590 +.L7366: + subs lr, ip, #4 + ldr r2, [r7, #0] + ldreq r1, [sp, #64] + beq .L7378 + mov r3, r0, asl #3 + mov r1, r2, lsr r3 + ldr r4, .L7824 + mov r0, #0 +.L7379: + ands r3, r1, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + ldrne r5, [sp, #64] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r5] @ movhi + cmp r0, lr + mov r1, r1, lsr #8 + bne .L7379 + ldr r6, [sp, #64] + add r3, r6, ip, asl #1 + sub r1, r3, #8 +.L7378: + ldr r2, [r7, #4] + cmp r2, #0 + beq .L7384 + ands r3, r2, #255 + ldrne lr, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, lr] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, r0] + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, r4] + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r5, .L7824 + movne r3, r3, asl #1 + ldrneh r3, [r3, r5] + strneh r3, [r1, #6] @ movhi +.L7384: + add r5, r1, #8 + b .L7370 +.L7819: + ldr r4, [sp, #20] + b .L7784 +.L7818: + mov ip, fp + b .L7782 +.L7559: + ldr r6, [sp, #88] + mov r3, r0, asl #3 + ldr r1, [r7, #4] + add r2, r6, r0 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L7566 + cmp r6, #0 + ldrne ip, .L7824 + movne r0, #0 + beq .L6995 +.L7582: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r7, [sp, #64] + ldr lr, [sp, #88] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r7] @ movhi + cmp lr, r0 + mov r1, r1, asl #8 + bne .L7582 + b .L6995 +.L7339: + ldr r6, [sp, #88] + ldr r3, [r7, #0] + add r2, r6, r0 + cmp r2, #4 + mov r1, r0, asl #3 + mov r2, r3, lsr r1 + bhi .L7346 + cmp r6, #0 + ldrne ip, .L7824 + movne r0, #0 + beq .L6995 +.L7362: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, ip] + ldrne r7, [sp, #64] + ldr lr, [sp, #88] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r7] @ movhi + cmp lr, r0 + mov r2, r2, lsr #8 + bne .L7362 + b .L6995 +.L7566: + rsbs ip, r0, #4 + ldreq lr, [sp, #64] + beq .L7571 + ldr lr, .L7824 + mov r0, #0 +.L7572: + movs r3, r1, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #64] + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp r0, ip + mov r1, r1, asl #8 + bne .L7572 + ldr r5, [sp, #64] + add lr, r5, ip, asl #1 +.L7571: + ldr r6, [sp, #88] + ldr r2, [r7, #0] + subs ip, r6, ip + beq .L6995 + ldr r4, .L7824 + mov r0, #0 +.L7578: + movs r3, r2, lsr #24 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L7578 + b .L6995 +.L7346: + rsbs ip, r0, #4 + ldreq lr, [sp, #64] + beq .L7351 + ldr lr, .L7824 + mov r0, #0 +.L7352: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, lr] + ldrne r4, [sp, #64] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L7352 + ldr r5, [sp, #64] + add lr, r5, ip, asl #1 +.L7351: + ldr r6, [sp, #88] + ldr r2, [r7, #4] + subs ip, r6, ip + beq .L6995 + ldr r4, .L7824 + mov r0, #0 +.L7358: + ands r3, r2, #255 + mov r3, r3, asl #1 + ldrneh r3, [r3, r4] + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L7358 + b .L6995 +.L7825: + .align 2 +.L7824: + .word palette_ram_converted+512 + .size render_scanline_obj_normal_2D, .-render_scanline_obj_normal_2D + .align 2 + .global render_scanline_obj_color16_1D + .type render_scanline_obj_color16_1D, %function +render_scanline_obj_color16_1D: + @ args = 0, pretend = 0, frame = 112 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L8668 + sub sp, sp, #112 + ldrh r4, [ip, #6] + add r0, r0, r0, asl #2 + str r4, [sp, #32] + ldr r5, [sp, #32] + ldrh r4, [ip, #80] + ldr ip, .L8668+4 + add r0, r5, r0, asl #5 + ldr ip, [ip, r0, asl #2] + mov lr, r4, lsr #11 + and lr, lr, #2 + mov r4, r4, asl #27 + str ip, [sp, #36] + orr lr, lr, r4, lsr #31 + cmp ip, #0 + ldr ip, .L8668+8 + mov lr, lr, asl #9 + add r0, ip, r0, asl #7 + orr lr, lr, #256 + str r0, [sp, #40] + str r1, [sp, #8] + str r2, [sp, #4] + str r3, [sp, #0] + str lr, [sp, #24] + beq .L8614 + mov r8, #0 + add r6, r3, r1, asl #1 + rsb r7, r1, r2 + str r6, [sp, #84] + str r7, [sp, #108] + str r8, [sp, #28] + mov ip, r8 +.L7829: + ldr lr, [sp, #40] + ldr r0, .L8668+12 + ldrb r3, [ip, lr] @ zero_extendqisi2 + mov r3, r3, asl #3 + ldrh r4, [r3, r0] + add r3, r3, r0 + ldrh r1, [r3, #2] + mov r5, r4, lsr #12 + and r2, r5, #12 + orr r0, r2, r1, lsr #14 + and ip, r4, #255 + mov r2, r1, asl #23 + cmp ip, #160 + ldrh lr, [r3, #4] + mov r6, r2, asr #23 + ldr r3, .L8668+16 + ldr r2, .L8668+20 + subgt ip, ip, #256 + tst r4, #256 + ldr r7, [r2, r0, asl #2] + ldr sl, [r3, r0, asl #2] + beq .L7832 + tst r4, #8192 + beq .L7834 + tst r4, #512 + mov r3, r1, lsr #4 + ldr r4, .L8668+12 + and r3, r3, #992 + add r3, r3, r4 + add r2, r7, r7, lsr #31 + ldrh r5, [r3, #30] + mov r4, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #8] + movne r0, r4, asl #1 + str r5, [sp, #12] + mov r5, r1, asr #1 + strne r0, [sp, #56] + moveq r9, r7 + streq r4, [sp, #56] + moveq r0, r5 + movne r9, r7, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh fp, [r3, #22] + bge .L7839 + rsb r2, r6, r2 + rsb r9, r2, r9 + cmp r9, #0 + ble .L7841 + ldr r3, [sp, #56] + ldr r6, [sp, #8] + rsb r3, r2, r3 + str r3, [sp, #56] +.L7839: + ldr r2, [sp, #4] + add r3, r6, r9 + cmp r3, r2 + blt .L7843 + rsb r9, r6, r2 + cmp r9, #0 + ble .L7841 +.L7843: + mov r3, r8, asl #16 + ldr r8, [sp, #12] + mov r2, r1, asl #16 + mov r2, r2, asr #16 + mov r1, r8, asl #16 + add r0, ip, r0 + str r2, [sp, #48] + mov ip, r1, asr #16 + ldr r2, [sp, #32] + ldr r1, [sp, #0] + mov r4, r4, asl #8 + mov r3, r3, asr #16 + mov r5, r5, asl #8 + cmp fp, #0 + str r4, [sp, #92] + str r3, [sp, #44] + str r5, [sp, #52] + add r8, r1, r6, asl #1 + rsb r4, r0, r2 + bne .L7845 + mov r3, r5 + mla r3, r4, ip, r3 + mov r0, r3, asr #8 + cmp r0, sl + bcs .L7841 + cmp r7, #0 + add r3, r7, #7 + movge r3, r7 + mov r2, lr, asl #22 + mov r3, r3, asr #3 + mov r3, r3, asl #1 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L8668+24 + add r0, r0, ip, asl #2 + cmp r9, #0 + add lr, r3, r0, asl #3 + ble .L7841 + ldr r3, [sp, #48] + ldr r2, [sp, #56] + mul r3, r4, r3 + ldr r4, [sp, #44] + ldr r5, [sp, #92] + mul r2, r4, r2 + rsb r3, r2, r3 + add r0, r5, r3 + mov r4, r0, asr #8 + cmp r4, r7 + movcs ip, fp + bcs .L7851 + b .L8664 +.L7852: + cmp r4, r7 + bcc .L8628 +.L7851: + ldr r6, [sp, #44] + add ip, ip, #1 + add r0, r0, r6 + cmp r9, ip + mov r4, r0, asr #8 + add r8, r8, #2 + bne .L7852 +.L7841: + ldr r0, [sp, #28] + ldr r1, [sp, #36] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #28] + beq .L8614 +.L8646: + ldr ip, [sp, #28] + b .L7829 +.L7832: + ldr r0, [sp, #32] + tst r1, #8192 + rsb ip, ip, r0 + rsbne r3, ip, sl + subne ip, r3, #1 + mov r2, r1, asl #19 + and r3, r5, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L7841 + .p2align 2 +.L7913: + .word .L7909 + .word .L7910 + .word .L7911 + .word .L7912 +.L7909: + cmp r7, #0 + add r3, r7, #7 + mov r2, lr, asl #22 + movge r3, r7 + mov r5, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, r5, r3, r2 + ldr r2, [sp, #8] + and r1, ip, #7 + ldr r3, .L8668+24 + add r1, r1, r0, asl #3 + cmp r6, r2 + mov r2, lr, lsr #8 + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L8641 + ldr ip, [sp, #4] + add r3, r6, r7 + cmp ip, r3 + bhi .L7995 + rsb r8, r6, ip + cmp r8, #0 + ble .L7841 + ldr lr, [sp, #0] + movs r7, r8, lsr #3 + add r2, lr, r6, asl #1 + beq .L7998 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L8000: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8001 + ands r3, r4, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #0] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #2] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #12] @ movhi + movs r3, r4, lsr #28 + ldrne r4, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r4 + strneh r3, [r5, #14] @ movhi +.L8001: + add ip, ip, #1 + cmp ip, r7 + add lr, lr, #32 + add r5, r5, #16 + bne .L8000 + add r0, r0, r7, asl #5 + add r2, r2, r7, asl #4 +.L7998: + ands lr, r8, #7 + beq .L7841 + ldr r0, [r0, #0] + mov r4, #0 +.L8020: + ands r3, r0, #15 + ldr r5, [sp, #24] + orr r3, r1, r3 + mov ip, r4, asl #1 + orr r3, r3, r5 + add r4, r4, #1 + strneh r3, [ip, r2] @ movhi + cmp r4, lr + mov r0, r0, lsr #4 + bne .L8020 + b .L7841 +.L7910: + cmp r7, #0 + add r3, r7, #7 + mov r2, lr, asl #22 + movge r3, r7 + mov r5, r3, asr #3 + mov r2, r2, lsr #22 + mov r1, ip, lsr #3 + mla r0, r5, r1, r2 + subs r3, r7, #8 + submi r3, r7, #1 + ldr r8, [sp, #8] + add r0, r0, r3, asr #3 + and r2, ip, #7 + ldr r3, .L8668+24 + add r2, r2, r0, asl #3 + mov r1, lr, lsr #8 + cmp r6, r8 + add r0, r3, r2, asl #2 + and r1, r1, #240 + blt .L8642 + ldr r2, [sp, #4] + add r3, r6, r7 + cmp r2, r3 + bhi .L8125 + rsb r8, r6, r2 + cmp r8, #0 + ble .L7841 + ldr r3, [sp, #0] + movs r7, r8, lsr #3 + add r2, r3, r6, asl #1 + beq .L8128 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L8130: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8131 + ands r3, r4, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #28 + ldrne r4, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r4 + strneh r3, [r5, #0] @ movhi +.L8131: + add ip, ip, #1 + cmp ip, r7 + sub lr, lr, #32 + add r5, r5, #16 + bne .L8130 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r2, r2, r7, asl #4 +.L8128: + ands lr, r8, #7 + beq .L7841 + ldr r0, [r0, #0] + mov r4, #0 +.L8150: + movs r3, r0, lsr #28 + ldr r5, [sp, #24] + orr r3, r1, r3 + mov ip, r4, asl #1 + orr r3, r3, r5 + add r4, r4, #1 + strneh r3, [ip, r2] @ movhi + cmp r4, lr + mov r0, r0, asl #4 + bne .L8150 + b .L7841 +.L7911: + cmp r7, #0 + add r3, r7, #7 + mov r1, lr, asl #22 + movge r3, r7 + mov r2, ip, lsr #3 + mov lr, r3, asr #3 + mov r1, r1, lsr #22 + mov r2, r2, asl #1 + mla r0, r2, lr, r1 + and r3, ip, #7 + add r3, r3, r0, asl #2 + ldr r8, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L8668+24 + cmp r6, r8 + add r1, r0, r3 + blt .L8643 + add r3, r6, r7 + ldr r7, [sp, #4] + cmp r7, r3 + bhi .L8330 + rsb r8, r6, r7 + cmp r8, #0 + ble .L7841 + ldr ip, [sp, #0] + movs r7, r8, lsr #3 + add r2, ip, r6, asl #1 + beq .L8333 + ldr r3, .L8668+32 + mov r5, r2 + add r0, r0, r3 + mov lr, r1 + mov ip, #0 +.L8335: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8336 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r5, #0] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r5, #2] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r5, #4] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r5, #6] @ movhi +.L8336: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L8345 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r5, #12] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r5, #14] @ movhi +.L8345: + add ip, ip, #1 + cmp r7, ip + add lr, lr, #64 + add r5, r5, #16 + add r0, r0, #64 + bne .L8335 + add r1, r1, r7, asl #6 + add r2, r2, r7, asl #4 +.L8333: + ands lr, r8, #7 + beq .L7841 + cmp lr, #3 + ldrls r0, [r1, #0] + bls .L8368 + ldr r0, [r1, #0] + cmp r0, #0 + beq .L8358 + ands r3, r0, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r2, #0] @ movhi + mov r3, r0, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r2, #2] @ movhi + mov r3, r0, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r2, #4] @ movhi + movs r3, r0, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r2, #6] @ movhi +.L8358: + subs lr, lr, #4 + ldr r0, [r1, #4] + addne r2, r2, #8 + beq .L7841 +.L8368: + mov r1, #0 +.L8369: + ldr ip, [sp, #24] + ands r3, r0, #255 + orr r3, r3, ip + mov ip, r1, asl #1 + add r1, r1, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r1 + mov r0, r0, lsr #8 + bhi .L8369 + b .L7841 +.L7912: + cmp r7, #0 + add r2, r7, #7 + movge r2, r7 + subs r3, r7, #8 + submi r3, r7, #1 + mov r1, ip, lsr #3 + mov r5, r2, asr #3 + mov r3, r3, asr #3 + mla r0, r5, r1, r3 + mov r2, lr, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + and r3, ip, #7 + add r3, r3, r2, asl #2 + ldr ip, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L8668+24 + cmp r6, ip + add r1, r0, r3 + blt .L8644 + add r3, r6, r7 + ldr r7, [sp, #4] + cmp r3, r7 + bcc .L8550 + rsb r8, r6, r7 + cmp r8, #0 + ble .L7841 + ldr ip, [sp, #0] + movs r7, r8, lsr #3 + add r6, ip, r6, asl #1 + beq .L8553 + ldr r3, .L8668+28 + mov r5, r6 + add r0, r0, r3 + mov lr, r1 + mov ip, #0 +.L8555: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L8556 + ands r3, r4, #255 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r5, #0] @ movhi +.L8556: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8565 + ands r3, r4, #255 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r5, #10] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r5, #8] @ movhi +.L8565: + add ip, ip, #1 + cmp ip, r7 + sub lr, lr, #64 + add r5, r5, #16 + sub r0, r0, #64 + bne .L8555 + rsb r3, r7, r7, asl #26 + add r1, r1, r3, asl #6 + add r6, r6, r7, asl #4 +.L8553: + ands ip, r8, #7 + beq .L7841 + cmp ip, #3 + ldrls r2, [r1, #4] + bls .L8588 + ldr r2, [r1, #4] + cmp r2, #0 + beq .L8578 + ands r3, r2, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r6, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r6, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r6, #2] @ movhi + movs r3, r2, lsr #24 + ldrne lr, [sp, #24] + orrne r3, r3, lr + strneh r3, [r6, #0] @ movhi +.L8578: + subs ip, ip, #4 + ldr r2, [r1, #0] + addne r6, r6, #8 + beq .L7841 +.L8588: + mov r1, #0 +.L8589: + ldr r0, [sp, #24] + movs r3, r2, lsr #24 + orr r3, r3, r0 + mov r0, r1, asl #1 + add r1, r1, #1 + strneh r3, [r0, r6] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L8589 + b .L7841 +.L7834: + mov r3, r1, lsr #4 + ldr r1, .L8668+12 + and r3, r3, #992 + add r3, r3, r1 + tst r4, #512 + ldrh r4, [r3, #30] + add r2, r7, r7, lsr #31 + add r1, sl, sl, lsr #31 + str r4, [sp, #20] + mov r4, r2, asr #1 + ldr r2, [sp, #8] + mov r5, r1, asr #1 + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, r7 + moveq r9, r4 + moveq r0, r5 + movne fp, r7, asl #1 + movne r9, r4, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + str r3, [sp, #16] + bge .L7872 + rsb r2, r6, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L7841 + ldr r6, [sp, #8] + rsb r9, r2, r9 +.L7872: + ldr r2, [sp, #4] + add r3, r6, fp + cmp r3, r2 + blt .L7875 + rsb fp, r6, r2 + cmp fp, #0 + ble .L7841 +.L7875: + mov r3, r8, asl #16 + ldr r8, [sp, #20] + add ip, ip, r0 + mov r2, r1, asl #16 + ldr r0, [sp, #16] + mov r1, r8, asl #16 + mov r2, r2, asr #16 + mov r1, r1, asr #16 + cmp r0, #0 + str r2, [sp, #68] + mov r0, lr, lsr #8 + str r1, [sp, #76] + ldr r2, [sp, #32] + ldr r1, [sp, #0] + mov r4, r4, asl #8 + mov r3, r3, asr #16 + and r0, r0, #240 + str r4, [sp, #88] + str r3, [sp, #64] + mov r5, r5, asl #8 + add r8, r1, r6, asl #1 + rsb r4, ip, r2 + str r0, [sp, #104] + bne .L7877 + ldr r3, [sp, #76] + mla r3, r4, r3, r5 + mov r0, r3, asr #8 + cmp r0, sl + bcs .L7841 + cmp r7, #0 + add r3, r7, #7 + mov r2, lr, asl #22 + movge r3, r7 + mov r1, r0, lsr #3 + mov r3, r3, asr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L8668+24 + add r0, r0, ip, asl #3 + cmp fp, #0 + add r1, r3, r0, asl #2 + ble .L7841 + ldr r3, [sp, #68] + ldr r2, [sp, #64] + mul r3, r4, r3 + mul r2, r9, r2 + ldr r4, [sp, #88] + rsb r3, r2, r3 + add r0, r4, r3 + mov r4, r0, asr #8 + cmp r4, r7 + ldrcs r5, [sp, #16] + bcs .L7883 + b .L8665 +.L7884: + cmp r4, r7 + bcc .L8630 +.L7883: + ldr r6, [sp, #64] + add r5, r5, #1 + add r0, r0, r6 + cmp fp, r5 + mov r4, r0, asr #8 + add r8, r8, #2 + bne .L7884 + ldr r0, [sp, #28] + ldr r1, [sp, #36] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #28] + bne .L8646 +.L8614: + add sp, sp, #112 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L7845: + cmp r7, #0 + add r1, r7, #7 + mov r2, lr, asl #22 + movge r1, r7 + ldr r3, .L8668+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #6 + cmp r9, #0 + str r2, [sp, #100] + str r1, [sp, #60] + ble .L7841 + mov r3, fp, asl #16 + mov fp, r3, asr #16 + ldr r3, [sp, #48] + mul r2, r4, ip + mul r3, r4, r3 + ldr r1, [sp, #56] + ldr r4, [sp, #44] + ldr r0, [sp, #56] + mul r1, fp, r1 + mul r0, r4, r0 + ldr r6, [sp, #92] + ldr ip, [sp, #52] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, r6, r3 + add lr, ip, r2 + mov r4, lr, asr #8 + mov ip, r5, asr #8 + cmp ip, r7 + cmpcc r4, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L7861 + b .L8666 +.L7862: + cmp ip, r7 + cmpcc r4, sl + bcc .L7863 +.L7861: + ldr r0, [sp, #44] + add r6, r6, #1 + add r5, r5, r0 + add lr, lr, fp + cmp r9, r6 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + add r8, r8, #2 + bne .L7862 + b .L7841 +.L7877: + cmp r7, #0 + add r1, r7, #7 + mov r2, lr, asl #22 + movge r1, r7 + ldr r3, .L8668+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #5 + cmp fp, #0 + str r2, [sp, #96] + str r1, [sp, #80] + ble .L7841 + ldr r6, [sp, #16] + ldr r2, [sp, #76] + mov r3, r6, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #72] + ldr r1, [sp, #72] + ldr r3, [sp, #68] + ldr r0, [sp, #64] + mul r2, r4, r2 + mul r3, r4, r3 + mul r1, r9, r1 + mul r0, r9, r0 + ldr ip, [sp, #88] + rsb r2, r1, r2 + rsb r3, r0, r3 + add lr, ip, r3 + add r5, r5, r2 + mov r4, lr, asr #8 + mov r2, r5, asr #8 + cmp r4, r7 + cmpcc r2, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L7896 + b .L8667 +.L7897: + cmp r4, r7 + cmpcc r2, sl + bcc .L7899 +.L7896: + ldr r0, [sp, #64] + ldr r1, [sp, #72] + add r6, r6, #1 + add lr, lr, r0 + add r5, r5, r1 + cmp fp, r6 + mov r4, lr, asr #8 + mov r2, r5, asr #8 + add r8, r8, #2 + bne .L7897 + b .L7841 +.L8649: + ldr r3, [sp, #96] + and r0, r2, #7 + add r0, r3, r0, asl #2 + and r1, r2, #7 + mov r3, r2, asr #3 + ldr r2, [sp, #80] + mov ip, r4, asr #1 + mul r2, r3, r2 + and r9, ip, #3 + ldr ip, [sp, #96] + mov r3, r4, asr #1 + add r1, ip, r1, asl #2 + and ip, r3, #3 + mov r3, r4, asr #3 + add r2, r2, r3, asl #5 + add r3, r0, r2 + tst r4, #1 + add r0, r1, r2 + ldreqb r3, [r0, ip] @ zero_extendqisi2 + ldrneb r3, [r3, r9] @ zero_extendqisi2 + ldr r4, [sp, #104] + movne r0, r3, lsr #4 + andeq r0, r3, #15 + ldr ip, [sp, #24] + ldr r2, [sp, #72] + orr r3, r0, r4 + ldr r1, [sp, #64] + cmp r0, #0 + add r6, r6, #1 + orr r3, r3, ip + strneh r3, [r8, #0] @ movhi + add lr, lr, r1 + add r5, r5, r2 + cmp fp, r6 + mov r4, lr, asr #8 + mov r2, r5, asr #8 + add r8, r8, #2 + ble .L7841 +.L7899: + cmp r2, sl + cmpcc r4, r7 + bcc .L8649 + b .L7841 +.L7886: + cmp r4, r7 + bcs .L7841 +.L8630: + mov r3, r4, asr #1 + and sl, r3, #3 + mov r3, r4, asr #3 + mov r3, r3, asl #5 + mov r2, r4, asr #1 + tst r4, #1 + add ip, r3, r1 + and r6, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r6] @ zero_extendqisi2 + ldrneb r3, [ip, sl] @ zero_extendqisi2 + ldr lr, [sp, #104] + movne r2, r3, lsr #4 + andeq r2, r3, #15 + cmp r2, #0 + orr r3, r2, lr + ldr r2, [sp, #24] + ldr ip, [sp, #64] + add r5, r5, #1 + orr r3, r3, r2 + strneh r3, [r8, #0] @ movhi + add r0, r0, ip + cmp fp, r5 + mov r4, r0, asr #8 + add r8, r8, #2 + bgt .L7886 + b .L7841 +.L7854: + cmp r4, r7 + bcs .L7841 +.L8628: + ldr r1, [sp, #44] + mov r3, r4, asr #3 + add r0, r0, r1 + add r3, lr, r3, asl #6 + and r1, r4, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r3, [sp, #24] + cmp r2, #0 + add ip, ip, #1 + orr r2, r2, r3 + strneh r2, [r8, #0] @ movhi + cmp r9, ip + mov r4, r0, asr #8 + add r8, r8, #2 + bgt .L7854 + b .L7841 +.L8669: + .align 2 +.L8668: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_height_table + .word obj_width_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L8644: + rsb r0, r6, ip + rsb r4, r0, r7 + cmp r4, #0 + ble .L7841 + ldr lr, [sp, #4] + add r3, r6, r7 + cmp lr, r3 + bhi .L8397 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r6, r1, r3, asl #6 + bne .L8399 + ldr r5, [sp, #108] + ldr r4, [sp, #84] +.L8401: + movs lr, r5, lsr #3 + beq .L8459 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L8461: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L8462 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #0] @ movhi +.L8462: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L8471 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #12] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #10] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #8] @ movhi +.L8471: + add ip, ip, #1 + cmp ip, lr + sub r0, r0, #64 + add r1, r1, #16 + bne .L8461 + rsb r3, lr, lr, asl #26 + add r6, r6, r3, asl #6 + add r4, r4, lr, asl #4 +.L8459: + ands ip, r5, #7 + beq .L7841 + cmp ip, #3 + ldrls r2, [r6, #4] + bls .L8494 + ldr r2, [r6, #4] + cmp r2, #0 + beq .L8484 + ands r3, r2, #255 + ldrne lr, [sp, #24] + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, [sp, #24] + orrne r3, r3, r0 + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #24] + orrne r3, r3, r1 + strneh r3, [r4, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r4, #0] @ movhi +.L8484: + subs ip, ip, #4 + ldr r2, [r6, #0] + addne r4, r4, #8 + beq .L7841 +.L8494: + mov r1, #0 +.L8495: + ldr r5, [sp, #24] + movs r3, r2, lsr #24 + mov r0, r1, asl #1 + orr r3, r3, r5 + add r1, r1, #1 + strneh r3, [r0, r4] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L8495 + b .L7841 +.L8643: + rsb r0, r6, r8 + rsb r4, r0, r7 + cmp r4, #0 + ble .L7841 + ldr ip, [sp, #4] + add r3, r6, r7 + cmp ip, r3 + bhi .L8177 + mov r3, r0, lsr #3 + ands ip, r0, #7 + add r6, r1, r3, asl #6 + bne .L8179 + ldr r5, [sp, #108] + ldr r4, [sp, #84] +.L8181: + movs lr, r5, lsr #3 + beq .L8239 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L8241: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L8242 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #6] @ movhi +.L8242: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L8251 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #14] @ movhi +.L8251: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #64 + add r1, r1, #16 + bne .L8241 + add r6, r6, lr, asl #6 + add r4, r4, lr, asl #4 +.L8239: + ands ip, r5, #7 + beq .L7841 + cmp ip, #3 + ldrls r1, [r6, #0] + bls .L8274 + ldr r2, [r6, #0] + cmp r2, #0 + beq .L8264 + ands r3, r2, #255 + ldrne lr, [sp, #24] + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, [sp, #24] + orrne r3, r3, r0 + strneh r3, [r4, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #24] + orrne r3, r3, r1 + strneh r3, [r4, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r4, #6] @ movhi +.L8264: + subs ip, ip, #4 + ldr r1, [r6, #4] + addne r4, r4, #8 + beq .L7841 +.L8274: + mov r2, #0 +.L8275: + ldr r5, [sp, #24] + ands r3, r1, #255 + mov r0, r2, asl #1 + orr r3, r3, r5 + add r2, r2, #1 + strneh r3, [r0, r4] @ movhi + cmp ip, r2 + mov r1, r1, lsr #8 + bhi .L8275 + b .L7841 +.L8642: + rsb r4, r6, r8 + rsb ip, r4, r7 + cmp ip, #0 + ble .L7841 + ldr lr, [sp, #4] + add r3, r6, r7 + cmp lr, r3 + bhi .L8047 + mov r3, r4, lsr #3 + ands lr, r4, #7 + sub r0, r0, r3, asl #5 + bne .L8049 + ldr r2, [sp, #108] + ldr r8, [sp, #84] +.L8051: + movs r7, r2, lsr #3 + beq .L8068 + mov r5, r8 + mov lr, r0 + mov r6, #0 +.L8070: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8071 + ands r3, r4, #15 + ldrne ip, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne ip, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne ip, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne ip, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne ip, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne ip, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne ip, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #28 + ldrne r4, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r4 + strneh r3, [r5, #0] @ movhi +.L8071: + add r6, r6, #1 + cmp r6, r7 + sub lr, lr, #32 + add r5, r5, #16 + bne .L8070 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r8, r8, r7, asl #4 +.L8068: + ands lr, r2, #7 + beq .L7841 + ldr r0, [r0, #0] + mov ip, #0 +.L8090: + movs r3, r0, lsr #28 + ldr r5, [sp, #24] + orr r3, r1, r3 + mov r2, ip, asl #1 + orr r3, r3, r5 + add ip, ip, #1 + strneh r3, [r2, r8] @ movhi + cmp ip, lr + mov r0, r0, asl #4 + bne .L8090 + b .L7841 +.L8641: + ldr r3, [sp, #8] + rsb r4, r6, r3 + rsb r5, r4, r7 + cmp r5, #0 + ble .L7841 + add r3, r6, r7 + ldr r6, [sp, #4] + cmp r6, r3 + bhi .L7917 + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add r5, r0, r2 + bne .L7919 + ldr r7, [sp, #108] + ldr r6, [sp, #84] +.L7921: + movs r4, r7, lsr #3 + beq .L7938 + mov ip, r6 + mov r0, r5 + mov lr, #0 +.L7940: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L7941 + ands r3, r2, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + ldrne r2, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r2 + strneh r3, [ip, #14] @ movhi +.L7941: + add lr, lr, #1 + cmp r4, lr + add r0, r0, #32 + add ip, ip, #16 + bne .L7940 + add r5, r5, r4, asl #5 + add r6, r6, r4, asl #4 +.L7938: + ands lr, r7, #7 + beq .L7841 + ldr r2, [r5, #0] + mov r0, #0 +.L7960: + ands r3, r2, #15 + ldr r4, [sp, #24] + orr r3, r1, r3 + mov ip, r0, asl #1 + orr r3, r3, r4 + add r0, r0, #1 + strneh r3, [ip, r6] @ movhi + cmp r0, lr + mov r2, r2, lsr #4 + bne .L7960 + b .L7841 +.L8666: + mov r6, #0 +.L7863: + cmp r4, sl + movcc r3, #0 + movcs r3, #1 + cmp r7, ip + orrls r3, r3, #1 + cmp r3, #0 + beq .L8629 + b .L7841 +.L7864: + cmp r4, sl + cmpcc ip, r7 + bcs .L7841 +.L8629: + and r3, r4, #7 + mov r2, ip, asr #3 + mov r3, r3, asl #3 + add r3, r3, r2, asl #6 + ldr r2, [sp, #100] + ldr r0, [sp, #60] + add r3, r3, r2 + mov r2, r4, asr #3 + mla r0, r2, r0, r3 + ldr r1, [sp, #44] + add r6, r6, #1 + add r5, r5, r1 + and r1, ip, #7 + ldrb r3, [r0, r1] @ zero_extendqisi2 + ldr r0, [sp, #24] + cmp r3, #0 + orr r3, r3, r0 + strneh r3, [r8, #0] @ movhi + add lr, lr, fp + cmp r9, r6 + mov r4, lr, asr #8 + mov ip, r5, asr #8 + add r8, r8, #2 + bgt .L7864 + b .L7841 +.L8125: + cmp r5, #0 + beq .L7841 + ldr r7, [sp, #0] + mov ip, #0 + add r2, r7, r6, asl #1 + b .L8155 +.L8650: + sub r0, r0, #32 + add r2, r2, #16 +.L8155: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L8156 + ands r3, r4, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r2, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r2, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #2] @ movhi + movs r3, r4, lsr #28 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #0] @ movhi +.L8156: + add ip, ip, #1 + cmp r5, ip + bne .L8650 + b .L7841 +.L8550: + cmp r5, #0 + beq .L7841 + ldr r3, [sp, #0] + mov ip, #0 + add r2, r3, r6, asl #1 + ldr r3, .L8668+28 + add r0, r0, r3 + b .L8594 +.L8651: + sub r1, r1, #64 + add r2, r2, #16 +.L8594: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L8595 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r2, #6] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r2, #4] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r2, #2] @ movhi + movs r3, r4, lsr #24 + ldrne lr, [sp, #24] + orrne r3, r3, lr + strneh r3, [r2, #0] @ movhi +.L8595: + ldr r4, [r1, #0] + cmp r4, #0 + beq .L8604 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r2, #14] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r2, #12] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r2, #10] @ movhi + movs r3, r4, lsr #24 + ldrne lr, [sp, #24] + orrne r3, r3, lr + strneh r3, [r2, #8] @ movhi +.L8604: + add ip, ip, #1 + cmp r5, ip + sub r0, r0, #64 + bne .L8651 + b .L7841 +.L7995: + cmp r5, #0 + beq .L7841 + ldr r7, [sp, #0] + mov ip, #0 + add r2, r7, r6, asl #1 + b .L8025 +.L8652: + add r0, r0, #32 + add r2, r2, #16 +.L8025: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L8026 + ands r3, r4, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #0] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r2, #2] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #4] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #6] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #8] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r2, #10] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #12] @ movhi + movs r3, r4, lsr #28 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #14] @ movhi +.L8026: + add ip, ip, #1 + cmp r5, ip + bne .L8652 + b .L7841 +.L8330: + cmp lr, #0 + beq .L7841 + ldr r3, [sp, #0] + mov ip, #0 + add r2, r3, r6, asl #1 + ldr r3, .L8668+32 + add r0, r0, r3 + b .L8374 +.L8653: + add r1, r1, #64 + add r2, r2, #16 +.L8374: + ldr r4, [r1, #0] + cmp r4, #0 + beq .L8375 + ands r3, r4, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r2, #0] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r2, #2] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r2, #4] @ movhi + movs r3, r4, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r2, #6] @ movhi +.L8375: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L8384 + ands r3, r4, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r2, #8] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r2, #10] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r2, #12] @ movhi + movs r3, r4, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r2, #14] @ movhi +.L8384: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #64 + bne .L8653 + b .L7841 +.L8177: + ands r2, r0, #7 + mov r3, r0, lsr #3 + add r0, r1, r3, asl #6 + ldreq r1, [sp, #84] + beq .L8281 + cmp r2, #3 + rsb lr, r2, #8 + bhi .L8654 + subs r5, lr, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #84] + beq .L8294 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + mov ip, #0 +.L8295: + ands r3, r2, #255 + ldr r1, [sp, #24] + ldrne r6, [sp, #84] + orr r3, r3, r1 + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, r6] @ movhi + cmp ip, r5 + mov r2, r2, lsr #8 + bne .L8295 + ldr r7, [sp, #84] + add r3, r7, lr, asl #1 + sub r1, r3, #8 +.L8294: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L8300 + ands r3, r2, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, r3, ip + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #24] + orrne r3, r3, lr + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r1, #6] @ movhi +.L8300: + add r1, r1, #8 +.L8286: + add r0, r0, #64 +.L8281: + movs lr, r4, lsr #3 + beq .L7841 + mov ip, #0 + b .L8310 +.L8655: + add r0, r0, #64 + add r1, r1, #16 +.L8310: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L8311 + ands r3, r2, #255 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r1, #6] @ movhi +.L8311: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L8320 + ands r3, r2, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r1, #14] @ movhi +.L8320: + add ip, ip, #1 + cmp lr, ip + bne .L8655 + b .L7841 +.L8047: + ands r2, r4, #7 + mov r3, r4, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r5, [sp, #84] + beq .L8096 + rsbs lr, r2, #8 + ldr r4, [r0, #0] + ldreq r5, [sp, #84] + beq .L8099 + mov r3, r2, asl #2 + mov r4, r4, asl r3 + mov r6, #0 +.L8100: + movs r3, r4, lsr #28 + ldr r7, [sp, #24] + ldrne r8, [sp, #84] + orr r3, r1, r3 + mov r5, r6, asl #1 + orr r3, r3, r7 + add r6, r6, #1 + strneh r3, [r5, r8] @ movhi + cmp lr, r6 + mov r4, r4, asl #4 + bne .L8100 + ldr r2, [sp, #84] + add r5, r2, lr, asl #1 +.L8099: + sub r0, r0, #32 +.L8096: + movs ip, ip, lsr #3 + beq .L7841 + mov r2, #0 + b .L8106 +.L8656: + sub r0, r0, #32 + add r5, r5, #16 +.L8106: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L8107 + ands r3, r4, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #28 + ldrne lr, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r5, #0] @ movhi +.L8107: + add r2, r2, #1 + cmp r2, ip + bne .L8656 + b .L7841 +.L8397: + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r2, r1, r3, asl #6 + ldreq r0, [sp, #84] + beq .L8501 + cmp ip, #3 + rsb lr, ip, #8 + bhi .L8657 + subs r5, lr, #4 + ldr r1, [r2, #4] + ldreq r0, [sp, #84] + beq .L8514 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov ip, #0 +.L8515: + movs r3, r1, lsr #24 + ldr r0, [sp, #24] + ldrne r6, [sp, #84] + orr r3, r3, r0 + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r6] @ movhi + cmp r5, ip + mov r1, r1, asl #8 + bne .L8515 + ldr r7, [sp, #84] + add r3, r7, lr, asl #1 + sub r0, r3, #8 +.L8514: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L8520 + ands r3, r1, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, r3, ip + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #24] + orrne r3, r3, lr + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + ldrne r1, [sp, #24] + orrne r3, r3, r1 + strneh r3, [r0, #0] @ movhi +.L8520: + add r0, r0, #8 +.L8506: + sub r2, r2, #64 +.L8501: + movs lr, r4, lsr #3 + beq .L7841 + mov ip, #0 + b .L8530 +.L8658: + sub r2, r2, #64 + add r0, r0, #16 +.L8530: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L8531 + ands r3, r1, #255 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + ldrne r7, [sp, #24] + orrne r3, r3, r7 + strneh r3, [r0, #0] @ movhi +.L8531: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L8540 + ands r3, r1, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r0, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #24] + orrne r3, r3, r4 + strneh r3, [r0, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #24] + orrne r3, r3, r5 + strneh r3, [r0, #10] @ movhi + movs r3, r1, lsr #24 + ldrne r6, [sp, #24] + orrne r3, r3, r6 + strneh r3, [r0, #8] @ movhi +.L8540: + add ip, ip, #1 + cmp ip, lr + bne .L8658 + b .L7841 +.L7917: + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add lr, r0, r2 + ldreq ip, [sp, #84] + beq .L7966 + rsbs r4, r3, #8 + ldr r0, [r0, r2] + ldreq ip, [sp, #84] + beq .L7969 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov ip, #0 +.L7970: + ands r3, r0, #15 + ldr r6, [sp, #24] + ldrne r7, [sp, #84] + orr r3, r1, r3 + mov r2, ip, asl #1 + orr r3, r3, r6 + add ip, ip, #1 + strneh r3, [r2, r7] @ movhi + cmp ip, r4 + mov r0, r0, lsr #4 + bne .L7970 + ldr r8, [sp, #84] + add ip, r8, r4, asl #1 +.L7969: + add lr, lr, #32 +.L7966: + movs r4, r5, lsr #3 + beq .L7841 + mov r0, #0 + b .L7976 +.L8659: + add lr, lr, #32 + add ip, ip, #16 +.L7976: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L7977 + ands r3, r2, #15 + ldrne r5, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + ldrne r8, [sp, #24] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #14] @ movhi +.L7977: + add r0, r0, #1 + cmp r0, r4 + bne .L8659 + b .L7841 +.L8179: + ldr r0, [sp, #108] + rsb lr, ip, #8 + cmp r0, lr + blt .L8660 + cmp ip, #3 + bls .L8212 + cmp lr, #0 + ldr r2, [r6, #4] + ldreq r4, [sp, #84] + beq .L8216 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r0, #0 +.L8217: + ands r3, r1, #255 + ldr r8, [sp, #24] + ldrne ip, [sp, #84] + mov r2, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r2, ip] @ movhi + cmp lr, r0 + mov r1, r1, lsr #8 + bne .L8217 + ldr r0, [sp, #84] + add r4, r0, lr, asl #1 +.L8216: + ldr r3, [sp, #108] + add r6, r6, #64 + rsb r5, lr, r3 + b .L8181 +.L8049: + ldr r2, [sp, #108] + rsb r6, lr, #8 + cmp r2, r6 + blt .L8661 + cmp r6, #0 + ldr r2, [r0, #0] + ldreq r8, [sp, #84] + beq .L8062 + mov r3, lr, asl #2 + mov lr, r2, asl r3 + mov r5, #0 +.L8063: + movs r3, lr, lsr #28 + ldr r7, [sp, #24] + ldrne r8, [sp, #84] + orr r3, r1, r3 + mov r4, r5, asl #1 + orr r3, r3, r7 + add r5, r5, #1 + strneh r3, [r4, r8] @ movhi + cmp r6, r5 + mov lr, lr, asl #4 + bne .L8063 + ldr ip, [sp, #84] + add r8, ip, r6, asl #1 +.L8062: + ldr lr, [sp, #108] + sub r0, r0, #32 + rsb r2, r6, lr + b .L8051 +.L7919: + ldr r7, [sp, #108] + rsb lr, r3, #8 + cmp r7, lr + blt .L8662 + cmp lr, #0 + ldr r2, [r5, #0] + ldreq r6, [sp, #84] + beq .L7932 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + mov ip, #0 +.L7933: + ands r3, r2, #15 + ldr r4, [sp, #24] + ldrne r6, [sp, #84] + orr r3, r1, r3 + mov r0, ip, asl #1 + orr r3, r3, r4 + add ip, ip, #1 + strneh r3, [r0, r6] @ movhi + cmp lr, ip + mov r2, r2, lsr #4 + bne .L7933 + ldr r7, [sp, #84] + add r6, r7, lr, asl #1 +.L7932: + ldr r8, [sp, #108] + add r5, r5, #32 + rsb r7, lr, r8 + b .L7921 +.L8399: + ldr r0, [sp, #108] + rsb lr, ip, #8 + cmp r0, lr + blt .L8663 + cmp ip, #3 + bls .L8432 + cmp lr, #0 + ldr r2, [r6, #0] + ldreq r4, [sp, #84] + beq .L8436 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r0, #0 +.L8437: + movs r3, r2, lsr #24 + ldr r8, [sp, #24] + ldrne ip, [sp, #84] + mov r1, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r1, ip] @ movhi + cmp lr, r0 + mov r2, r2, asl #8 + bne .L8437 + ldr r0, [sp, #84] + add r4, r0, lr, asl #1 +.L8436: + ldr r3, [sp, #108] + sub r6, r6, #64 + rsb r5, lr, r3 + b .L8401 +.L8663: + cmp r0, #0 + ble .L7841 + cmp ip, #3 + bls .L8405 + ldr r2, [r6, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r0, #0 +.L8408: + movs r3, r2, lsr #24 + ldr r1, [sp, #24] + ldrne r4, [sp, #84] + ldr r5, [sp, #108] + orr r3, r3, r1 + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp r5, r0 + mov r2, r2, asl #8 + bne .L8408 + b .L7841 +.L8662: + cmp r7, #0 + ble .L7841 + ldr r2, [r0, r2] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov ip, #0 +.L7926: + ands r3, r0, #15 + ldr r8, [sp, #24] + ldrne lr, [sp, #84] + orr r3, r1, r3 + mov r2, ip, asl #1 + orr r3, r3, r8 + strneh r3, [r2, lr] @ movhi + ldr r2, [sp, #108] + add ip, ip, #1 + cmp r2, ip + mov r0, r0, lsr #4 + bne .L7926 + b .L7841 +.L8661: + cmp r2, #0 + ble .L7841 + ldr r2, [r0, #0] + mov r3, lr, asl #2 + mov r0, r2, asl r3 + mov ip, #0 +.L8056: + movs r3, r0, lsr #28 + ldr r4, [sp, #24] + ldrne r5, [sp, #84] + orr r3, r1, r3 + ldr r6, [sp, #108] + mov r2, ip, asl #1 + orr r3, r3, r4 + add ip, ip, #1 + strneh r3, [r2, r5] @ movhi + cmp r6, ip + mov r0, r0, asl #4 + bne .L8056 + b .L7841 +.L8657: + cmp lr, #0 + ldr r1, [r2, #0] + ldreq r0, [sp, #84] + beq .L8506 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov ip, #0 +.L8507: + movs r3, r1, lsr #24 + ldr r6, [sp, #24] + ldrne r7, [sp, #84] + mov r0, ip, asl #1 + orr r3, r3, r6 + add ip, ip, #1 + strneh r3, [r0, r7] @ movhi + cmp ip, lr + mov r1, r1, asl #8 + bne .L8507 + ldr r8, [sp, #84] + sub r2, r2, #64 + add r0, r8, lr, asl #1 + b .L8501 +.L8654: + cmp lr, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #84] + beq .L8286 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + mov ip, #0 +.L8287: + ands r3, r2, #255 + ldr r6, [sp, #24] + ldrne r7, [sp, #84] + mov r1, ip, asl #1 + orr r3, r3, r6 + add ip, ip, #1 + strneh r3, [r1, r7] @ movhi + cmp ip, lr + mov r2, r2, lsr #8 + bne .L8287 + ldr r8, [sp, #84] + add r0, r0, #64 + add r1, r8, lr, asl #1 + b .L8281 +.L8660: + cmp r0, #0 + ble .L7841 + cmp ip, #3 + bls .L8185 + ldr r2, [r6, #4] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r0, #0 +.L8188: + ands r3, r1, #255 + ldr r2, [sp, #24] + ldrne r4, [sp, #84] + ldr r5, [sp, #108] + orr r3, r3, r2 + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, r0 + mov r1, r1, lsr #8 + bne .L8188 + b .L7841 +.L8667: + mov r6, #0 + b .L7899 +.L8432: + subs r4, lr, #4 + ldr r2, [r6, #4] + ldreq r1, [sp, #84] + beq .L8444 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r0, #0 +.L8445: + movs r3, r2, lsr #24 + ldr r1, [sp, #24] + ldrne r5, [sp, #84] + orr r3, r3, r1 + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r5] @ movhi + cmp r4, r0 + mov r2, r2, asl #8 + bne .L8445 + ldr r7, [sp, #84] + add r3, r7, lr, asl #1 + sub r1, r3, #8 +.L8444: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L8450 + ands r3, r2, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, r3, ip + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r0, [sp, #24] + orrne r3, r3, r0 + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r1, #0] @ movhi +.L8450: + add r4, r1, #8 + b .L8436 +.L8212: + subs r4, lr, #4 + ldr r2, [r6, #0] + ldreq r1, [sp, #84] + beq .L8224 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r0, #0 +.L8225: + ands r3, r1, #255 + ldr r2, [sp, #24] + ldrne r5, [sp, #84] + orr r3, r3, r2 + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r5] @ movhi + cmp r0, r4 + mov r1, r1, lsr #8 + bne .L8225 + ldr r7, [sp, #84] + add r3, r7, lr, asl #1 + sub r1, r3, #8 +.L8224: + ldr r2, [r6, #4] + cmp r2, #0 + beq .L8230 + ands r3, r2, #255 + ldrne r8, [sp, #24] + orrne r3, r3, r8 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, r3, ip + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r0, [sp, #24] + orrne r3, r3, r0 + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r3, r2 + strneh r3, [r1, #6] @ movhi +.L8230: + add r4, r1, #8 + b .L8216 +.L8665: + ldr r5, [sp, #16] + b .L8630 +.L8664: + mov ip, fp + b .L8628 +.L8405: + ldr r7, [sp, #108] + mov r3, ip, asl #3 + ldr r1, [r6, #4] + add r2, r7, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L8412 + cmp r7, #0 + movne r0, #0 + beq .L7841 +.L8428: + movs r3, r1, lsr #24 + ldr r5, [sp, #24] + ldrne r6, [sp, #84] + ldr r7, [sp, #108] + mov r2, r0, asl #1 + orr r3, r3, r5 + add r0, r0, #1 + strneh r3, [r2, r6] @ movhi + cmp r7, r0 + mov r1, r1, asl #8 + bne .L8428 + b .L7841 +.L8185: + ldr r7, [sp, #108] + ldr r3, [r6, #0] + add r2, r7, ip + cmp r2, #4 + mov r1, ip, asl #3 + mov r2, r3, lsr r1 + bhi .L8192 + cmp r7, #0 + movne r0, #0 + beq .L7841 +.L8208: + ands r3, r2, #255 + ldr r5, [sp, #24] + ldrne r6, [sp, #84] + ldr r7, [sp, #108] + mov r1, r0, asl #1 + orr r3, r3, r5 + add r0, r0, #1 + strneh r3, [r1, r6] @ movhi + cmp r7, r0 + mov r2, r2, lsr #8 + bne .L8208 + b .L7841 +.L8412: + rsbs ip, ip, #4 + ldreq lr, [sp, #84] + beq .L8417 + mov r0, #0 +.L8418: + movs r3, r1, lsr #24 + ldr r8, [sp, #24] + ldrne lr, [sp, #84] + mov r2, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r2, lr] @ movhi + cmp r0, ip + mov r1, r1, asl #8 + bne .L8418 + ldr r0, [sp, #84] + add lr, r0, ip, asl #1 +.L8417: + ldr r1, [sp, #108] + ldr r2, [r6, #0] + subs ip, r1, ip + beq .L7841 + mov r0, #0 +.L8424: + ldr r4, [sp, #24] + movs r3, r2, lsr #24 + mov r1, r0, asl #1 + orr r3, r3, r4 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L8424 + b .L7841 +.L8192: + rsbs ip, ip, #4 + ldreq lr, [sp, #84] + beq .L8197 + mov r0, #0 +.L8198: + ands r3, r2, #255 + ldr r8, [sp, #24] + ldrne lr, [sp, #84] + mov r1, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L8198 + ldr r0, [sp, #84] + add lr, r0, ip, asl #1 +.L8197: + ldr r1, [sp, #108] + ldr r2, [r6, #4] + subs ip, r1, ip + beq .L7841 + mov r0, #0 +.L8204: + ldr r4, [sp, #24] + ands r3, r2, #255 + mov r1, r0, asl #1 + orr r3, r3, r4 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L8204 + b .L7841 + .size render_scanline_obj_color16_1D, .-render_scanline_obj_color16_1D + .align 2 + .global render_scanline_obj_color16_2D + .type render_scanline_obj_color16_2D, %function +render_scanline_obj_color16_2D: + @ args = 0, pretend = 0, frame = 96 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L9512 + sub sp, sp, #96 + ldrh r4, [ip, #6] + add r0, r0, r0, asl #2 + str r4, [sp, #36] + ldr r5, [sp, #36] + ldrh r4, [ip, #80] + ldr ip, .L9512+4 + add r0, r5, r0, asl #5 + ldr ip, [ip, r0, asl #2] + mov lr, r4, lsr #11 + and lr, lr, #2 + mov r4, r4, asl #27 + str ip, [sp, #40] + orr lr, lr, r4, lsr #31 + cmp ip, #0 + ldr ip, .L9512+8 + mov lr, lr, asl #9 + add r0, ip, r0, asl #7 + orr lr, lr, #256 + str r0, [sp, #44] + str r1, [sp, #12] + str r2, [sp, #8] + str r3, [sp, #4] + str lr, [sp, #28] + beq .L9458 + mov r8, #0 + add r6, r3, r1, asl #1 + rsb r7, r1, r2 + str r6, [sp, #68] + str r7, [sp, #92] + str r8, [sp, #32] + mov ip, r8 +.L8673: + ldr lr, [sp, #44] + ldr r0, .L9512+12 + ldrb r3, [ip, lr] @ zero_extendqisi2 + mov r3, r3, asl #3 + ldrh r4, [r3, r0] + add r3, r3, r0 + ldrh r1, [r3, #2] + mov r5, r4, lsr #12 + and r2, r5, #12 + orr r0, r2, r1, lsr #14 + and ip, r4, #255 + mov r2, r1, asl #23 + cmp ip, #160 + ldrh lr, [r3, #4] + mov r6, r2, asr #23 + ldr r3, .L9512+16 + ldr r2, .L9512+20 + subgt ip, ip, #256 + tst r4, #256 + ldr r8, [r2, r0, asl #2] + ldr sl, [r3, r0, asl #2] + beq .L8676 + tst r4, #8192 + beq .L8678 + tst r4, #512 + mov r3, r1, lsr #4 + ldr r4, .L9512+12 + and r3, r3, #992 + add r3, r3, r4 + add r2, r8, r8, lsr #31 + ldrh r5, [r3, #30] + mov r4, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #12] + movne r0, r4, asl #1 + str r5, [sp, #16] + mov r5, r1, asr #1 + strne r0, [sp, #52] + moveq r9, r8 + streq r4, [sp, #52] + moveq r0, r5 + movne r9, r8, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + ldrh r7, [r3, #6] + ldrh r1, [r3, #14] + ldrh fp, [r3, #22] + bge .L8683 + rsb r2, r6, r2 + rsb r9, r2, r9 + cmp r9, #0 + ble .L8685 + ldr r3, [sp, #52] + ldr r6, [sp, #12] + rsb r3, r2, r3 + str r3, [sp, #52] +.L8683: + ldr r2, [sp, #8] + add r3, r6, r9 + cmp r3, r2 + blt .L8687 + rsb r9, r6, r2 + cmp r9, #0 + ble .L8685 +.L8687: + mov r3, r7, asl #16 + mov r2, r1, asl #16 + ldr r7, [sp, #16] + mov r3, r3, asr #16 + add r0, ip, r0 + str r3, [sp, #48] + mov ip, r2, asr #16 + ldr r3, [sp, #36] + ldr r2, [sp, #4] + mov r1, r7, asl #16 + mov r4, r4, asl #8 + cmp fp, #0 + str r4, [sp, #76] + mov r1, r1, asr #16 + mov r4, r5, asl #8 + add r7, r2, r6, asl #1 + rsb r0, r0, r3 + bne .L8689 + mla r3, r0, r1, r4 + mov r1, r3, asr #8 + cmp r1, sl + bcs .L8685 + mov r3, lr, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #2 + ldr r3, .L9512+24 + cmp r9, #0 + add lr, r3, r1, asl #3 + ble .L8685 + ldr r4, [sp, #48] + ldr r2, [sp, #52] + mul r3, r0, ip + mul r2, r4, r2 + ldr r5, [sp, #76] + rsb r3, r2, r3 + add r0, r5, r3 + mov r4, r0, asr #8 + cmp r4, r8 + movcs ip, fp + bcs .L8695 + b .L9508 +.L8696: + cmp r4, r8 + bcc .L9472 +.L8695: + ldr r6, [sp, #48] + add ip, ip, #1 + add r0, r0, r6 + cmp r9, ip + mov r4, r0, asr #8 + add r7, r7, #2 + bne .L8696 +.L8685: + ldr ip, [sp, #32] + ldr lr, [sp, #40] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #32] + beq .L9458 +.L9490: + ldr ip, [sp, #32] + b .L8673 +.L8676: + ldr r2, [sp, #36] + tst r1, #8192 + rsb r0, ip, r2 + rsbne r3, r0, sl + subne r0, r3, #1 + mov r2, r1, asl #19 + and r3, r5, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L8685 + .p2align 2 +.L8757: + .word .L8753 + .word .L8754 + .word .L8755 + .word .L8756 +.L8753: + mov r3, lr, asl #22 + mov r2, r0, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + add r1, r1, r3, asl #3 + ldr r3, [sp, #12] + mov r2, lr, lsr #8 + cmp r6, r3 + ldr r3, .L9512+24 + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L9485 + ldr ip, [sp, #8] + add r3, r6, r8 + cmp ip, r3 + bhi .L8839 + rsb r8, r6, ip + cmp r8, #0 + ble .L8685 + ldr lr, [sp, #4] + movs r7, r8, lsr #3 + add r2, lr, r6, asl #1 + beq .L8842 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L8844: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8845 + ands r3, r4, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #0] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #2] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #12] @ movhi + movs r3, r4, lsr #28 + ldrne r4, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r4 + strneh r3, [r5, #14] @ movhi +.L8845: + add ip, ip, #1 + cmp ip, r7 + add lr, lr, #32 + add r5, r5, #16 + bne .L8844 + add r0, r0, r7, asl #5 + add r2, r2, r7, asl #4 +.L8842: + ands lr, r8, #7 + beq .L8685 + ldr r0, [r0, #0] + mov r4, #0 +.L8864: + ands r3, r0, #15 + ldr r5, [sp, #28] + orr r3, r1, r3 + mov ip, r4, asl #1 + orr r3, r3, r5 + add r4, r4, #1 + strneh r3, [ip, r2] @ movhi + cmp r4, lr + mov r0, r0, lsr #4 + bne .L8864 + b .L8685 +.L8754: + mov r3, lr, asl #22 + mov r1, r0, lsr #3 + subs r2, r8, #8 + mov r3, r3, lsr #22 + submi r2, r8, #1 + add r3, r3, r1, asl #5 + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr ip, [sp, #12] + add r1, r1, r3, asl #3 + ldr r3, .L9512+24 + mov r2, lr, lsr #8 + cmp r6, ip + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L9486 + ldr r2, [sp, #8] + add r3, r6, r8 + cmp r2, r3 + bhi .L8969 + rsb r8, r6, r2 + cmp r8, #0 + ble .L8685 + ldr r3, [sp, #4] + movs r7, r8, lsr #3 + add r2, r3, r6, asl #1 + beq .L8972 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L8974: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8975 + ands r3, r4, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #28 + ldrne r4, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r4 + strneh r3, [r5, #0] @ movhi +.L8975: + add ip, ip, #1 + cmp ip, r7 + sub lr, lr, #32 + add r5, r5, #16 + bne .L8974 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r2, r2, r7, asl #4 +.L8972: + ands lr, r8, #7 + beq .L8685 + ldr r0, [r0, #0] + mov r4, #0 +.L8994: + movs r3, r0, lsr #28 + ldr r5, [sp, #28] + orr r3, r1, r3 + mov ip, r4, asl #1 + orr r3, r3, r5 + add r4, r4, #1 + strneh r3, [ip, r2] @ movhi + cmp r4, lr + mov r0, r0, asl #4 + bne .L8994 + b .L8685 +.L8755: + mov r2, lr, asl #22 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + and r3, r0, #7 + add r2, r2, r1, asl #5 + add r3, r3, r2, asl #2 + ldr ip, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L9512+24 + cmp r6, ip + add ip, r0, r3 + blt .L9487 + ldr r7, [sp, #8] + add r3, r6, r8 + cmp r7, r3 + bhi .L9174 + rsb r8, r6, r7 + cmp r8, #0 + ble .L8685 + ldr lr, [sp, #4] + movs r7, r8, lsr #3 + add r2, lr, r6, asl #1 + beq .L9177 + ldr r3, .L9512+32 + mov r5, r2 + add r0, r0, r3 + mov lr, ip + mov r1, #0 +.L9179: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L9180 + ands r3, r4, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r5, #0] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r5, #2] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r5, #4] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r5, #6] @ movhi +.L9180: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L9189 + ands r3, r4, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r5, #12] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r5, #14] @ movhi +.L9189: + add r1, r1, #1 + cmp r7, r1 + add lr, lr, #64 + add r5, r5, #16 + add r0, r0, #64 + bne .L9179 + add ip, ip, r7, asl #6 + add r2, r2, r7, asl #4 +.L9177: + ands lr, r8, #7 + beq .L8685 + cmp lr, #3 + ldrls r0, [ip, #0] + bls .L9212 + ldr r1, [ip, #0] + cmp r1, #0 + beq .L9202 + ands r3, r1, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r2, #0] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r2, #2] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r2, #4] @ movhi + movs r3, r1, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r2, #6] @ movhi +.L9202: + subs lr, lr, #4 + ldr r0, [ip, #4] + addne r2, r2, #8 + beq .L8685 +.L9212: + mov r1, #0 +.L9213: + ldr ip, [sp, #28] + ands r3, r0, #255 + orr r3, r3, ip + mov ip, r1, asl #1 + add r1, r1, #1 + strneh r3, [ip, r2] @ movhi + cmp lr, r1 + mov r0, r0, lsr #8 + bhi .L9213 + b .L8685 +.L8756: + subs r2, r8, #8 + submi r2, r8, #1 + mov r3, r0, lsr #3 + mov r2, r2, asr #3 + mov r1, lr, asl #22 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + and r3, r0, #7 + add r1, r1, r2, asl #1 + add r3, r3, r1, asl #2 + ldr ip, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L9512+24 + cmp r6, ip + add ip, r0, r3 + blt .L9488 + ldr r7, [sp, #8] + add r3, r6, r8 + cmp r3, r7 + bcc .L9394 + rsb r8, r6, r7 + cmp r8, #0 + ble .L8685 + ldr lr, [sp, #4] + movs r7, r8, lsr #3 + add r6, lr, r6, asl #1 + beq .L9397 + ldr r3, .L9512+28 + mov r5, r6 + add r0, r0, r3 + mov lr, ip + mov r1, #0 +.L9399: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L9400 + ands r3, r4, #255 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r5, #0] @ movhi +.L9400: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L9409 + ands r3, r4, #255 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r5, #10] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r5, #8] @ movhi +.L9409: + add r1, r1, #1 + cmp r1, r7 + sub lr, lr, #64 + add r5, r5, #16 + sub r0, r0, #64 + bne .L9399 + rsb r3, r7, r7, asl #26 + add ip, ip, r3, asl #6 + add r6, r6, r7, asl #4 +.L9397: + ands lr, r8, #7 + beq .L8685 + cmp lr, #3 + ldrls r2, [ip, #4] + bls .L9432 + ldr r2, [ip, #4] + cmp r2, #0 + beq .L9422 + ands r3, r2, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r6, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r6, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r6, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r0, [sp, #28] + orrne r3, r3, r0 + strneh r3, [r6, #0] @ movhi +.L9422: + subs lr, lr, #4 + ldr r2, [ip, #0] + addne r6, r6, #8 + beq .L8685 +.L9432: + mov r1, #0 +.L9433: + ldr r4, [sp, #28] + movs r3, r2, lsr #24 + mov r0, r1, asl #1 + orr r3, r3, r4 + add r1, r1, #1 + strneh r3, [r0, r6] @ movhi + cmp lr, r1 + mov r2, r2, asl #8 + bhi .L9433 + b .L8685 +.L8678: + tst r4, #512 + mov r3, r1, lsr #4 + ldr r4, .L9512+12 + and r3, r3, #992 + add r3, r3, r4 + ldrh r5, [r3, #30] + add r2, r8, r8, lsr #31 + mov r4, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #12] + str r5, [sp, #24] + ldrh r7, [r3, #6] + mov r5, r1, asr #1 + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, r8 + moveq r9, r4 + moveq r0, r5 + movne fp, r8, asl #1 + movne r9, r4, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + str r3, [sp, #20] + bge .L8716 + rsb r2, r6, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L8685 + ldr r6, [sp, #12] + rsb r9, r2, r9 +.L8716: + ldr r2, [sp, #8] + add r3, r6, fp + cmp r3, r2 + blt .L8719 + rsb fp, r6, r2 + cmp fp, #0 + ble .L8685 +.L8719: + add ip, ip, r0 + mov r3, r7, asl #16 + mov r2, r1, asl #16 + ldr r0, [sp, #20] + ldr r7, [sp, #24] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + cmp r0, #0 + str r3, [sp, #56] + mov r0, lr, lsr #8 + str r2, [sp, #60] + ldr r3, [sp, #36] + ldr r2, [sp, #4] + mov r1, r7, asl #16 + mov r4, r4, asl #8 + and r0, r0, #240 + str r4, [sp, #72] + mov r1, r1, asr #16 + mov r4, r5, asl #8 + add r7, r2, r6, asl #1 + rsb ip, ip, r3 + str r0, [sp, #88] + bne .L8721 + mla r3, ip, r1, r4 + mov r1, r3, asr #8 + cmp r1, sl + bcs .L8685 + mov r3, lr, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #3 + ldr r3, .L9512+24 + cmp fp, #0 + add r1, r3, r1, asl #2 + ble .L8685 + ldr r3, [sp, #60] + ldr r2, [sp, #56] + mul r3, ip, r3 + mul r2, r9, r2 + ldr r4, [sp, #72] + rsb r3, r2, r3 + add r0, r4, r3 + mov r4, r0, asr #8 + cmp r4, r8 + ldrcs r5, [sp, #20] + bcs .L8727 + b .L9509 +.L8728: + cmp r4, r8 + bcc .L9474 +.L8727: + ldr r6, [sp, #56] + add r5, r5, #1 + add r0, r0, r6 + cmp fp, r5 + mov r4, r0, asr #8 + add r7, r7, #2 + bne .L8728 + ldr ip, [sp, #32] + ldr lr, [sp, #40] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #32] + bne .L9490 +.L9458: + add sp, sp, #96 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L8689: + mov r3, lr, asl #22 + ldr r2, .L9512+24 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp r9, #0 + str r3, [sp, #84] + ble .L8685 + mov r3, fp, asl #16 + mul r2, r0, r1 + mov fp, r3, asr #16 + ldr r5, [sp, #48] + mul r3, r0, ip + ldr r1, [sp, #52] + ldr r0, [sp, #52] + mul r1, fp, r1 + mul r0, r5, r0 + ldr r6, [sp, #76] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, r6, r3 + add lr, r4, r2 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + cmp ip, r8 + cmpcc r4, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L8705 + b .L9510 +.L8706: + cmp ip, r8 + cmpcc r4, sl + bcc .L8707 +.L8705: + ldr ip, [sp, #48] + add r6, r6, #1 + add r5, r5, ip + add lr, lr, fp + cmp r9, r6 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + add r7, r7, #2 + bne .L8706 + b .L8685 +.L8721: + mov r3, lr, asl #22 + ldr r2, .L9512+24 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp fp, #0 + str r3, [sp, #80] + ble .L8685 + ldr r5, [sp, #20] + mul r2, ip, r1 + mov r3, r5, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #64] + ldr r1, [sp, #64] + ldr r3, [sp, #60] + ldr r0, [sp, #56] + mul r3, ip, r3 + mul r1, r9, r1 + mul r0, r9, r0 + ldr r6, [sp, #72] + rsb r3, r0, r3 + rsb r2, r1, r2 + add lr, r6, r3 + add r5, r4, r2 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + cmp ip, r8 + cmpcc r4, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L8740 + b .L9511 +.L8741: + cmp ip, r8 + cmpcc r4, sl + bcc .L8743 +.L8740: + ldr ip, [sp, #56] + ldr r0, [sp, #64] + add r6, r6, #1 + add lr, lr, ip + add r5, r5, r0 + cmp fp, r6 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + add r7, r7, #2 + bne .L8741 + b .L8685 +.L9493: + mov r3, ip, asr #1 + ldr r1, [sp, #80] + and r3, r3, #3 + and r0, r4, #7 + str r3, [sp, #0] + ldr r3, [sp, #80] + add r0, r1, r0, asl #2 + and r1, r4, #7 + mov r2, ip, asr #1 + add r1, r3, r1, asl #2 + mov r3, r4, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, ip, asr #3 + tst ip, #1 + add r3, r3, r2, asl #5 + add r2, r0, r3 + movne r4, r9 + add r0, r1, r3 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + ldrneb r3, [r2, r4] @ zero_extendqisi2 + ldr r2, [sp, #88] + movne r0, r3, lsr #4 + andeq r0, r3, #15 + cmp r0, #0 + orr r3, r0, r2 + ldr r0, [sp, #28] + ldr ip, [sp, #56] + ldr r1, [sp, #64] + add r6, r6, #1 + orr r3, r3, r0 + strneh r3, [r7, #0] @ movhi + add lr, lr, ip + add r5, r5, r1 + cmp fp, r6 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + add r7, r7, #2 + ble .L8685 +.L8743: + cmp r4, sl + cmpcc ip, r8 + bcc .L9493 + b .L8685 +.L8730: + cmp r4, r8 + bcs .L8685 +.L9474: + mov r3, r4, asr #1 + and sl, r3, #3 + mov r3, r4, asr #3 + mov r3, r3, asl #5 + mov r2, r4, asr #1 + tst r4, #1 + add ip, r3, r1 + and r6, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r6] @ zero_extendqisi2 + ldrneb r3, [ip, sl] @ zero_extendqisi2 + ldr lr, [sp, #88] + movne r2, r3, lsr #4 + andeq r2, r3, #15 + cmp r2, #0 + orr r3, r2, lr + ldr r2, [sp, #28] + ldr ip, [sp, #56] + add r5, r5, #1 + orr r3, r3, r2 + strneh r3, [r7, #0] @ movhi + add r0, r0, ip + cmp fp, r5 + mov r4, r0, asr #8 + add r7, r7, #2 + bgt .L8730 + b .L8685 +.L8698: + cmp r4, r8 + bcs .L8685 +.L9472: + ldr r1, [sp, #48] + mov r3, r4, asr #3 + add r0, r0, r1 + add r3, lr, r3, asl #6 + and r1, r4, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r3, [sp, #28] + cmp r2, #0 + add ip, ip, #1 + orr r2, r2, r3 + strneh r2, [r7, #0] @ movhi + cmp r9, ip + mov r4, r0, asr #8 + add r7, r7, #2 + bgt .L8698 + b .L8685 +.L9488: + ldr lr, [sp, #12] + rsb r1, r6, lr + rsb r4, r1, r8 + cmp r4, #0 + ble .L8685 + ldr r0, [sp, #8] + add r3, r6, r8 + cmp r0, r3 + bhi .L9241 + mov r3, r1, lsr #3 + ands r0, r1, #7 + sub r6, ip, r3, asl #6 + bne .L9243 + ldr r5, [sp, #92] + ldr r4, [sp, #68] +.L9245: + movs lr, r5, lsr #3 + beq .L9303 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L9305: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L9306 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #0] @ movhi +.L9306: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L9315 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #12] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #10] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #8] @ movhi +.L9315: + add ip, ip, #1 + cmp ip, lr + sub r0, r0, #64 + add r1, r1, #16 + bne .L9305 + rsb r3, lr, lr, asl #26 + add r6, r6, r3, asl #6 + add r4, r4, lr, asl #4 +.L9303: + ands ip, r5, #7 + beq .L8685 + cmp ip, #3 + ldrls r2, [r6, #4] + bls .L9338 + ldr r2, [r6, #4] + cmp r2, #0 + beq .L9328 + ands r3, r2, #255 + ldrne lr, [sp, #28] + orrne r3, r3, lr + strneh r3, [r4, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, [sp, #28] + orrne r3, r3, r0 + strneh r3, [r4, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #28] + orrne r3, r3, r1 + strneh r3, [r4, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r4, #0] @ movhi +.L9328: + subs ip, ip, #4 + ldr r2, [r6, #0] + addne r4, r4, #8 + beq .L8685 +.L9338: + mov r1, #0 +.L9339: + ldr r5, [sp, #28] + movs r3, r2, lsr #24 + mov r0, r1, asl #1 + orr r3, r3, r5 + add r1, r1, #1 + strneh r3, [r0, r4] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L9339 + b .L8685 +.L9513: + .align 2 +.L9512: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_height_table + .word obj_width_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L9487: + ldr lr, [sp, #12] + rsb r1, r6, lr + rsb r4, r1, r8 + cmp r4, #0 + ble .L8685 + ldr r0, [sp, #8] + add r3, r6, r8 + cmp r0, r3 + bhi .L9021 + mov r3, r1, lsr #3 + ands r0, r1, #7 + add r6, ip, r3, asl #6 + bne .L9023 + ldr r5, [sp, #92] + ldr r4, [sp, #68] +.L9025: + movs lr, r5, lsr #3 + beq .L9083 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L9085: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L9086 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #6] @ movhi +.L9086: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L9095 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #14] @ movhi +.L9095: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #64 + add r1, r1, #16 + bne .L9085 + add r6, r6, lr, asl #6 + add r4, r4, lr, asl #4 +.L9083: + ands ip, r5, #7 + beq .L8685 + cmp ip, #3 + ldrls r1, [r6, #0] + bls .L9118 + ldr r2, [r6, #0] + cmp r2, #0 + beq .L9108 + ands r3, r2, #255 + ldrne lr, [sp, #28] + orrne r3, r3, lr + strneh r3, [r4, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r0, [sp, #28] + orrne r3, r3, r0 + strneh r3, [r4, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #28] + orrne r3, r3, r1 + strneh r3, [r4, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r4, #6] @ movhi +.L9108: + subs ip, ip, #4 + ldr r1, [r6, #4] + addne r4, r4, #8 + beq .L8685 +.L9118: + mov r2, #0 +.L9119: + ldr r5, [sp, #28] + ands r3, r1, #255 + mov r0, r2, asl #1 + orr r3, r3, r5 + add r2, r2, #1 + strneh r3, [r0, r4] @ movhi + cmp ip, r2 + mov r1, r1, lsr #8 + bhi .L9119 + b .L8685 +.L9486: + rsb r4, r6, ip + rsb ip, r4, r8 + cmp ip, #0 + ble .L8685 + ldr lr, [sp, #8] + add r3, r6, r8 + cmp lr, r3 + bhi .L8891 + mov r3, r4, lsr #3 + ands lr, r4, #7 + sub r0, r0, r3, asl #5 + bne .L8893 + ldr r2, [sp, #92] + ldr r8, [sp, #68] +.L8895: + movs r7, r2, lsr #3 + beq .L8912 + mov r5, r8 + mov lr, r0 + mov r6, #0 +.L8914: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L8915 + ands r3, r4, #15 + ldrne ip, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, ip + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #28 + ldrne r4, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r4 + strneh r3, [r5, #0] @ movhi +.L8915: + add r6, r6, #1 + cmp r6, r7 + sub lr, lr, #32 + add r5, r5, #16 + bne .L8914 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r8, r8, r7, asl #4 +.L8912: + ands lr, r2, #7 + beq .L8685 + ldr r0, [r0, #0] + mov ip, #0 +.L8934: + movs r3, r0, lsr #28 + ldr r5, [sp, #28] + orr r3, r1, r3 + mov r2, ip, asl #1 + orr r3, r3, r5 + add ip, ip, #1 + strneh r3, [r2, r8] @ movhi + cmp ip, lr + mov r0, r0, asl #4 + bne .L8934 + b .L8685 +.L9485: + ldr r5, [sp, #12] + rsb r4, r6, r5 + rsb r5, r4, r8 + cmp r5, #0 + ble .L8685 + add r3, r6, r8 + ldr r6, [sp, #8] + cmp r6, r3 + bhi .L8761 + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add r5, r0, r2 + bne .L8763 + ldr r7, [sp, #92] + ldr r6, [sp, #68] +.L8765: + movs r4, r7, lsr #3 + beq .L8782 + mov ip, r6 + mov r0, r5 + mov lr, #0 +.L8784: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L8785 + ands r3, r2, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + ldrne r2, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r2 + strneh r3, [ip, #14] @ movhi +.L8785: + add lr, lr, #1 + cmp r4, lr + add r0, r0, #32 + add ip, ip, #16 + bne .L8784 + add r5, r5, r4, asl #5 + add r6, r6, r4, asl #4 +.L8782: + ands lr, r7, #7 + beq .L8685 + ldr r2, [r5, #0] + mov r0, #0 +.L8804: + ands r3, r2, #15 + ldr r4, [sp, #28] + orr r3, r1, r3 + mov ip, r0, asl #1 + orr r3, r3, r4 + add r0, r0, #1 + strneh r3, [ip, r6] @ movhi + cmp r0, lr + mov r2, r2, lsr #4 + bne .L8804 + b .L8685 +.L9510: + mov r6, #0 +.L8707: + cmp r4, sl + movcc r3, #0 + movcs r3, #1 + cmp r8, ip + orrls r3, r3, #1 + cmp r3, #0 + beq .L9473 + b .L8685 +.L8708: + cmp r4, sl + cmpcc ip, r8 + bcs .L8685 +.L9473: + and r3, r4, #7 + mov r2, ip, asr #3 + mov r3, r3, asl #3 + mov r1, r4, asr #3 + add r3, r3, r2, asl #6 + ldr r0, [sp, #48] + add r3, r3, r1, asl #10 + ldr r1, [sp, #84] + add r5, r5, r0 + add r3, r3, r1 + and r0, ip, #7 + ldrb r2, [r3, r0] @ zero_extendqisi2 + ldr r3, [sp, #28] + cmp r2, #0 + add r6, r6, #1 + orr r2, r2, r3 + strneh r2, [r7, #0] @ movhi + add lr, lr, fp + cmp r9, r6 + mov r4, lr, asr #8 + mov ip, r5, asr #8 + add r7, r7, #2 + bgt .L8708 + b .L8685 +.L8969: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L8685 + ldr r7, [sp, #4] + mov ip, #0 + add r2, r7, r6, asl #1 + b .L8999 +.L9494: + sub r0, r0, #32 + add r2, r2, #16 +.L8999: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L9000 + ands r3, r4, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [r2, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [r2, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #2] @ movhi + movs r3, r4, lsr #28 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #0] @ movhi +.L9000: + add ip, ip, #1 + cmp lr, ip + bne .L9494 + b .L8685 +.L9394: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L8685 + ldr r5, [sp, #4] + ldr r3, .L9512+28 + add r2, r5, r6, asl #1 + add r0, r0, r3 + mov r1, #0 + b .L9438 +.L9495: + sub ip, ip, #64 + add r2, r2, #16 +.L9438: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L9439 + ands r3, r4, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r2, #6] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r2, #4] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r2, #2] @ movhi + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r2, #0] @ movhi +.L9439: + ldr r4, [ip, #0] + cmp r4, #0 + beq .L9448 + ands r3, r4, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r2, #14] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r2, #12] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r2, #10] @ movhi + movs r3, r4, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r2, #8] @ movhi +.L9448: + add r1, r1, #1 + cmp lr, r1 + sub r0, r0, #64 + bne .L9495 + b .L8685 +.L8839: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L8685 + ldr r7, [sp, #4] + mov ip, #0 + add r2, r7, r6, asl #1 + b .L8869 +.L9496: + add r0, r0, #32 + add r2, r2, #16 +.L8869: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L8870 + ands r3, r4, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #0] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [r2, #2] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #4] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #6] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r2, #8] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [r2, #10] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r2, #12] @ movhi + movs r3, r4, lsr #28 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r2, #14] @ movhi +.L8870: + add ip, ip, #1 + cmp lr, ip + bne .L9496 + b .L8685 +.L9174: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L8685 + ldr r1, [sp, #4] + ldr r3, .L9512+32 + add r2, r1, r6, asl #1 + add r0, r0, r3 + mov r1, #0 + b .L9218 +.L9497: + add ip, ip, #64 + add r2, r2, #16 +.L9218: + ldr r4, [ip, #0] + cmp r4, #0 + beq .L9219 + ands r3, r4, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r2, #0] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r2, #2] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r2, #4] @ movhi + movs r3, r4, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r2, #6] @ movhi +.L9219: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L9228 + ands r3, r4, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r2, #8] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r2, #10] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r2, #12] @ movhi + movs r3, r4, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r2, #14] @ movhi +.L9228: + add r1, r1, #1 + cmp lr, r1 + add r0, r0, #64 + bne .L9497 + b .L8685 +.L9021: + mov r3, r1, lsr #3 + ands r2, r1, #7 + add r0, ip, r3, asl #6 + ldreq r1, [sp, #68] + beq .L9125 + cmp r2, #3 + rsb lr, r2, #8 + bhi .L9498 + subs r5, lr, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #68] + beq .L9138 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + mov ip, #0 +.L9139: + ands r3, r2, #255 + ldr r1, [sp, #28] + ldrne r6, [sp, #68] + orr r3, r3, r1 + mov r1, ip, asl #1 + add ip, ip, #1 + strneh r3, [r1, r6] @ movhi + cmp ip, r5 + mov r2, r2, lsr #8 + bne .L9139 + ldr r7, [sp, #68] + add r3, r7, lr, asl #1 + sub r1, r3, #8 +.L9138: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L9144 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #28] + orrne r3, r3, ip + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, r3, lr + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r3, r2 + strneh r3, [r1, #6] @ movhi +.L9144: + add r1, r1, #8 +.L9130: + add r0, r0, #64 +.L9125: + movs lr, r4, lsr #3 + beq .L8685 + mov ip, #0 + b .L9154 +.L9499: + add r0, r0, #64 + add r1, r1, #16 +.L9154: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L9155 + ands r3, r2, #255 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #6] @ movhi +.L9155: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L9164 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r1, #10] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r1, #12] @ movhi + movs r3, r2, lsr #24 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r1, #14] @ movhi +.L9164: + add ip, ip, #1 + cmp lr, ip + bne .L9499 + b .L8685 +.L8891: + ands r2, r4, #7 + mov r3, r4, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r5, [sp, #68] + beq .L8940 + rsbs lr, r2, #8 + ldr r4, [r0, #0] + ldreq r5, [sp, #68] + beq .L8943 + mov r3, r2, asl #2 + mov r4, r4, asl r3 + mov r6, #0 +.L8944: + movs r3, r4, lsr #28 + ldr r7, [sp, #28] + ldrne r8, [sp, #68] + orr r3, r1, r3 + mov r5, r6, asl #1 + orr r3, r3, r7 + add r6, r6, #1 + strneh r3, [r5, r8] @ movhi + cmp lr, r6 + mov r4, r4, asl #4 + bne .L8944 + ldr r2, [sp, #68] + add r5, r2, lr, asl #1 +.L8943: + sub r0, r0, #32 +.L8940: + movs ip, ip, lsr #3 + beq .L8685 + mov r2, #0 + b .L8950 +.L9500: + sub r0, r0, #32 + add r5, r5, #16 +.L8950: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L8951 + ands r3, r4, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #14] @ movhi + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r5, #12] @ movhi + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r5, #10] @ movhi + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne lr, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r5, #8] @ movhi + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [r5, #6] @ movhi + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [r5, #4] @ movhi + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [r5, #2] @ movhi + movs r3, r4, lsr #28 + ldrne lr, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, lr + strneh r3, [r5, #0] @ movhi +.L8951: + add r2, r2, #1 + cmp r2, ip + bne .L9500 + b .L8685 +.L9241: + ands r0, r1, #7 + mov r3, r1, lsr #3 + sub r2, ip, r3, asl #6 + ldreq r0, [sp, #68] + beq .L9345 + cmp r0, #3 + rsb lr, r0, #8 + bhi .L9501 + subs r5, lr, #4 + ldr r1, [r2, #4] + ldreq r0, [sp, #68] + beq .L9358 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov ip, #0 +.L9359: + movs r3, r1, lsr #24 + ldr r0, [sp, #28] + ldrne r6, [sp, #68] + orr r3, r3, r0 + mov r0, ip, asl #1 + add ip, ip, #1 + strneh r3, [r0, r6] @ movhi + cmp r5, ip + mov r1, r1, asl #8 + bne .L9359 + ldr r7, [sp, #68] + add r3, r7, lr, asl #1 + sub r0, r3, #8 +.L9358: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L9364 + ands r3, r1, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #28] + orrne r3, r3, ip + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, r3, lr + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + ldrne r1, [sp, #28] + orrne r3, r3, r1 + strneh r3, [r0, #0] @ movhi +.L9364: + add r0, r0, #8 +.L9350: + sub r2, r2, #64 +.L9345: + movs lr, r4, lsr #3 + beq .L8685 + mov ip, #0 + b .L9374 +.L9502: + sub r2, r2, #64 + add r0, r0, #16 +.L9374: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L9375 + ands r3, r1, #255 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r0, #6] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r0, #4] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r0, #2] @ movhi + movs r3, r1, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r0, #0] @ movhi +.L9375: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L9384 + ands r3, r1, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r0, #14] @ movhi + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r3, r4 + strneh r3, [r0, #12] @ movhi + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r3, r5 + strneh r3, [r0, #10] @ movhi + movs r3, r1, lsr #24 + ldrne r6, [sp, #28] + orrne r3, r3, r6 + strneh r3, [r0, #8] @ movhi +.L9384: + add ip, ip, #1 + cmp ip, lr + bne .L9502 + b .L8685 +.L8761: + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add lr, r0, r2 + ldreq ip, [sp, #68] + beq .L8810 + rsbs r4, r3, #8 + ldr r0, [r0, r2] + ldreq ip, [sp, #68] + beq .L8813 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov ip, #0 +.L8814: + ands r3, r0, #15 + ldr r6, [sp, #28] + ldrne r7, [sp, #68] + orr r3, r1, r3 + mov r2, ip, asl #1 + orr r3, r3, r6 + add ip, ip, #1 + strneh r3, [r2, r7] @ movhi + cmp ip, r4 + mov r0, r0, lsr #4 + bne .L8814 + ldr r8, [sp, #68] + add ip, r8, r4, asl #1 +.L8813: + add lr, lr, #32 +.L8810: + movs r4, r5, lsr #3 + beq .L8685 + mov r0, #0 + b .L8820 +.L9503: + add lr, lr, #32 + add ip, ip, #16 +.L8820: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L8821 + ands r3, r2, #15 + ldrne r5, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [ip, #0] @ movhi + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [ip, #2] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [ip, #4] @ movhi + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #6] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r5 + strneh r3, [ip, #8] @ movhi + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r6 + strneh r3, [ip, #10] @ movhi + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r7 + strneh r3, [ip, #12] @ movhi + movs r3, r2, lsr #28 + ldrne r8, [sp, #28] + orrne r3, r1, r3 + orrne r3, r3, r8 + strneh r3, [ip, #14] @ movhi +.L8821: + add r0, r0, #1 + cmp r0, r4 + bne .L9503 + b .L8685 +.L9023: + ldr r1, [sp, #92] + rsb ip, r0, #8 + cmp r1, ip + blt .L9504 + cmp r0, #3 + bls .L9056 + cmp ip, #0 + ldr r2, [r6, #4] + ldreq r4, [sp, #68] + beq .L9060 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r0, #0 +.L9061: + ands r3, r1, #255 + ldr r8, [sp, #28] + ldrne lr, [sp, #68] + mov r2, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r2, lr] @ movhi + cmp ip, r0 + mov r1, r1, lsr #8 + bne .L9061 + ldr r0, [sp, #68] + add r4, r0, ip, asl #1 +.L9060: + ldr r1, [sp, #92] + add r6, r6, #64 + rsb r5, ip, r1 + b .L9025 +.L8893: + ldr r2, [sp, #92] + rsb r6, lr, #8 + cmp r2, r6 + blt .L9505 + cmp r6, #0 + ldr r2, [r0, #0] + ldreq r8, [sp, #68] + beq .L8906 + mov r3, lr, asl #2 + mov lr, r2, asl r3 + mov r5, #0 +.L8907: + movs r3, lr, lsr #28 + ldr r7, [sp, #28] + ldrne r8, [sp, #68] + orr r3, r1, r3 + mov r4, r5, asl #1 + orr r3, r3, r7 + add r5, r5, #1 + strneh r3, [r4, r8] @ movhi + cmp r6, r5 + mov lr, lr, asl #4 + bne .L8907 + ldr ip, [sp, #68] + add r8, ip, r6, asl #1 +.L8906: + ldr lr, [sp, #92] + sub r0, r0, #32 + rsb r2, r6, lr + b .L8895 +.L8763: + ldr r7, [sp, #92] + rsb lr, r3, #8 + cmp r7, lr + blt .L9506 + cmp lr, #0 + ldr r2, [r5, #0] + ldreq r6, [sp, #68] + beq .L8776 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + mov ip, #0 +.L8777: + ands r3, r2, #15 + ldr r4, [sp, #28] + ldrne r6, [sp, #68] + orr r3, r1, r3 + mov r0, ip, asl #1 + orr r3, r3, r4 + add ip, ip, #1 + strneh r3, [r0, r6] @ movhi + cmp lr, ip + mov r2, r2, lsr #4 + bne .L8777 + ldr r7, [sp, #68] + add r6, r7, lr, asl #1 +.L8776: + ldr r8, [sp, #92] + add r5, r5, #32 + rsb r7, lr, r8 + b .L8765 +.L9243: + ldr r1, [sp, #92] + rsb ip, r0, #8 + cmp r1, ip + blt .L9507 + cmp r0, #3 + bls .L9276 + cmp ip, #0 + ldr r2, [r6, #0] + ldreq r4, [sp, #68] + beq .L9280 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r0, #0 +.L9281: + movs r3, r2, lsr #24 + ldr r8, [sp, #28] + ldrne lr, [sp, #68] + mov r1, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp ip, r0 + mov r2, r2, asl #8 + bne .L9281 + ldr r0, [sp, #68] + add r4, r0, ip, asl #1 +.L9280: + ldr r1, [sp, #92] + sub r6, r6, #64 + rsb r5, ip, r1 + b .L9245 +.L9507: + cmp r1, #0 + ble .L8685 + cmp r0, #3 + bls .L9249 + mov r3, r0, asl #3 + ldr r2, [r6, #0] + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r0, #0 +.L9252: + movs r3, r2, lsr #24 + ldr r4, [sp, #28] + ldrne r5, [sp, #68] + ldr r6, [sp, #92] + mov r1, r0, asl #1 + orr r3, r3, r4 + add r0, r0, #1 + strneh r3, [r1, r5] @ movhi + cmp r6, r0 + mov r2, r2, asl #8 + bne .L9252 + b .L8685 +.L9506: + cmp r7, #0 + ble .L8685 + ldr r2, [r0, r2] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov ip, #0 +.L8770: + ands r3, r0, #15 + ldr r8, [sp, #28] + ldrne lr, [sp, #68] + orr r3, r1, r3 + mov r2, ip, asl #1 + orr r3, r3, r8 + strneh r3, [r2, lr] @ movhi + ldr r2, [sp, #92] + add ip, ip, #1 + cmp r2, ip + mov r0, r0, lsr #4 + bne .L8770 + b .L8685 +.L9505: + cmp r2, #0 + ble .L8685 + ldr r2, [r0, #0] + mov r3, lr, asl #2 + mov r0, r2, asl r3 + mov ip, #0 +.L8900: + movs r3, r0, lsr #28 + ldr r4, [sp, #28] + ldrne r5, [sp, #68] + orr r3, r1, r3 + ldr r6, [sp, #92] + mov r2, ip, asl #1 + orr r3, r3, r4 + add ip, ip, #1 + strneh r3, [r2, r5] @ movhi + cmp r6, ip + mov r0, r0, asl #4 + bne .L8900 + b .L8685 +.L9501: + cmp lr, #0 + ldr r1, [r2, #0] + ldreq r0, [sp, #68] + beq .L9350 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov ip, #0 +.L9351: + movs r3, r1, lsr #24 + ldr r6, [sp, #28] + ldrne r7, [sp, #68] + mov r0, ip, asl #1 + orr r3, r3, r6 + add ip, ip, #1 + strneh r3, [r0, r7] @ movhi + cmp ip, lr + mov r1, r1, asl #8 + bne .L9351 + ldr r8, [sp, #68] + sub r2, r2, #64 + add r0, r8, lr, asl #1 + b .L9345 +.L9498: + cmp lr, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #68] + beq .L9130 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + mov ip, #0 +.L9131: + ands r3, r2, #255 + ldr r6, [sp, #28] + ldrne r7, [sp, #68] + mov r1, ip, asl #1 + orr r3, r3, r6 + add ip, ip, #1 + strneh r3, [r1, r7] @ movhi + cmp ip, lr + mov r2, r2, lsr #8 + bne .L9131 + ldr r8, [sp, #68] + add r0, r0, #64 + add r1, r8, lr, asl #1 + b .L9125 +.L9504: + cmp r1, #0 + ble .L8685 + cmp r0, #3 + bls .L9029 + mov r3, r0, asl #3 + ldr r2, [r6, #4] + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r0, #0 +.L9032: + ands r3, r1, #255 + ldr r2, [sp, #28] + ldrne r4, [sp, #68] + ldr r5, [sp, #92] + orr r3, r3, r2 + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp r5, r0 + mov r1, r1, lsr #8 + bne .L9032 + b .L8685 +.L9511: + mov r6, #0 + b .L8743 +.L9276: + subs lr, ip, #4 + ldr r2, [r6, #4] + ldreq r1, [sp, #68] + beq .L9288 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r0, #0 +.L9289: + movs r3, r2, lsr #24 + ldr r1, [sp, #28] + ldrne r4, [sp, #68] + orr r3, r3, r1 + mov r1, r0, asl #1 + add r0, r0, #1 + strneh r3, [r1, r4] @ movhi + cmp lr, r0 + mov r2, r2, asl #8 + bne .L9289 + ldr r5, [sp, #68] + add r3, r5, ip, asl #1 + sub r1, r3, #8 +.L9288: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L9294 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, r3, lr + strneh r3, [r1, #2] @ movhi + movs r3, r2, lsr #24 + ldrne r0, [sp, #28] + orrne r3, r3, r0 + strneh r3, [r1, #0] @ movhi +.L9294: + add r4, r1, #8 + b .L9280 +.L9056: + subs lr, ip, #4 + ldr r2, [r6, #0] + ldreq r1, [sp, #68] + beq .L9068 + mov r3, r0, asl #3 + mov r1, r2, lsr r3 + mov r0, #0 +.L9069: + ands r3, r1, #255 + ldr r2, [sp, #28] + ldrne r4, [sp, #68] + orr r3, r3, r2 + mov r2, r0, asl #1 + add r0, r0, #1 + strneh r3, [r2, r4] @ movhi + cmp r0, lr + mov r1, r1, lsr #8 + bne .L9069 + ldr r5, [sp, #68] + add r3, r5, ip, asl #1 + sub r1, r3, #8 +.L9068: + ldr r2, [r6, #4] + cmp r2, #0 + beq .L9074 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r3, r7 + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r3, r8 + strneh r3, [r1, #2] @ movhi + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, r3, lr + strneh r3, [r1, #4] @ movhi + movs r3, r2, lsr #24 + ldrne r0, [sp, #28] + orrne r3, r3, r0 + strneh r3, [r1, #6] @ movhi +.L9074: + add r4, r1, #8 + b .L9060 +.L9509: + ldr r5, [sp, #20] + b .L9474 +.L9508: + mov ip, fp + b .L9472 +.L9249: + ldr r7, [sp, #92] + mov r3, r0, asl #3 + ldr r1, [r6, #4] + add r2, r7, r0 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L9256 + cmp r7, #0 + movne r0, #0 + beq .L8685 +.L9272: + movs r3, r1, lsr #24 + ldr r5, [sp, #28] + ldrne r6, [sp, #68] + ldr r7, [sp, #92] + mov r2, r0, asl #1 + orr r3, r3, r5 + add r0, r0, #1 + strneh r3, [r2, r6] @ movhi + cmp r7, r0 + mov r1, r1, asl #8 + bne .L9272 + b .L8685 +.L9029: + ldr r7, [sp, #92] + ldr r3, [r6, #0] + add r2, r7, r0 + cmp r2, #4 + mov r1, r0, asl #3 + mov r2, r3, lsr r1 + bhi .L9036 + cmp r7, #0 + movne r0, #0 + beq .L8685 +.L9052: + ands r3, r2, #255 + ldr r5, [sp, #28] + ldrne r6, [sp, #68] + ldr r7, [sp, #92] + mov r1, r0, asl #1 + orr r3, r3, r5 + add r0, r0, #1 + strneh r3, [r1, r6] @ movhi + cmp r7, r0 + mov r2, r2, lsr #8 + bne .L9052 + b .L8685 +.L9256: + rsbs ip, r0, #4 + ldreq lr, [sp, #68] + beq .L9261 + mov r0, #0 +.L9262: + movs r3, r1, lsr #24 + ldr r8, [sp, #28] + ldrne lr, [sp, #68] + mov r2, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r2, lr] @ movhi + cmp r0, ip + mov r1, r1, asl #8 + bne .L9262 + ldr r0, [sp, #68] + add lr, r0, ip, asl #1 +.L9261: + ldr r1, [sp, #92] + ldr r2, [r6, #0] + subs ip, r1, ip + beq .L8685 + mov r0, #0 +.L9268: + ldr r4, [sp, #28] + movs r3, r2, lsr #24 + mov r1, r0, asl #1 + orr r3, r3, r4 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L9268 + b .L8685 +.L9036: + rsbs ip, r0, #4 + ldreq lr, [sp, #68] + beq .L9041 + mov r0, #0 +.L9042: + ands r3, r2, #255 + ldr r8, [sp, #28] + ldrne lr, [sp, #68] + mov r1, r0, asl #1 + orr r3, r3, r8 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L9042 + ldr r0, [sp, #68] + add lr, r0, ip, asl #1 +.L9041: + ldr r1, [sp, #92] + ldr r2, [r6, #4] + subs ip, r1, ip + beq .L8685 + mov r0, #0 +.L9048: + ldr r4, [sp, #28] + ands r3, r2, #255 + mov r1, r0, asl #1 + orr r3, r3, r4 + add r0, r0, #1 + strneh r3, [r1, lr] @ movhi + cmp r0, ip + mov r2, r2, lsr #8 + bne .L9048 + b .L8685 + .size render_scanline_obj_color16_2D, .-render_scanline_obj_color16_2D + .align 2 + .global render_scanline_obj_color32_1D + .type render_scanline_obj_color32_1D, %function +render_scanline_obj_color32_1D: + @ args = 0, pretend = 0, frame = 112 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L10356 + sub sp, sp, #112 + ldrh r4, [ip, #6] + add r0, r0, r0, asl #2 + str r4, [sp, #32] + ldr r5, [sp, #32] + ldrh r4, [ip, #80] + ldr ip, .L10356+4 + add r0, r5, r0, asl #5 + ldr ip, [ip, r0, asl #2] + mov lr, r4, lsr #11 + and lr, lr, #2 + mov r4, r4, asl #27 + str ip, [sp, #36] + orr lr, lr, r4, lsr #31 + cmp ip, #0 + ldr ip, .L10356+8 + mov lr, lr, asl #9 + add r0, ip, r0, asl #7 + orr lr, lr, #256 + str r0, [sp, #40] + str r1, [sp, #8] + str r2, [sp, #4] + str r3, [sp, #0] + str lr, [sp, #24] + beq .L10302 + mov r8, #0 + add r6, r3, r1, asl #2 + rsb r7, r1, r2 + str r6, [sp, #84] + str r7, [sp, #108] + str r8, [sp, #28] + mov ip, r8 +.L9517: + ldr lr, [sp, #40] + ldr r0, .L10356+12 + ldrb r3, [ip, lr] @ zero_extendqisi2 + mov r3, r3, asl #3 + ldrh r4, [r3, r0] + add r3, r3, r0 + ldrh r1, [r3, #2] + mov r5, r4, lsr #12 + and r2, r5, #12 + orr r0, r2, r1, lsr #14 + and ip, r4, #255 + mov r2, r1, asl #23 + cmp ip, #160 + ldrh lr, [r3, #4] + mov r6, r2, asr #23 + ldr r3, .L10356+16 + ldr r2, .L10356+20 + subgt ip, ip, #256 + tst r4, #256 + ldr r7, [r2, r0, asl #2] + ldr sl, [r3, r0, asl #2] + beq .L9520 + tst r4, #8192 + beq .L9522 + tst r4, #512 + mov r3, r1, lsr #4 + ldr r4, .L10356+12 + and r3, r3, #992 + add r3, r3, r4 + add r2, r7, r7, lsr #31 + ldrh r5, [r3, #30] + mov r4, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #8] + movne r0, r4, asl #1 + str r5, [sp, #12] + mov r5, r1, asr #1 + strne r0, [sp, #56] + moveq r9, r7 + streq r4, [sp, #56] + moveq r0, r5 + movne r9, r7, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh fp, [r3, #22] + bge .L9527 + rsb r2, r6, r2 + rsb r9, r2, r9 + cmp r9, #0 + ble .L9529 + ldr r3, [sp, #56] + ldr r6, [sp, #8] + rsb r3, r2, r3 + str r3, [sp, #56] +.L9527: + ldr r2, [sp, #4] + add r3, r6, r9 + cmp r3, r2 + blt .L9531 + rsb r9, r6, r2 + cmp r9, #0 + ble .L9529 +.L9531: + mov r3, r8, asl #16 + ldr r8, [sp, #12] + mov r2, r1, asl #16 + mov r2, r2, asr #16 + mov r1, r8, asl #16 + add r0, ip, r0 + str r2, [sp, #48] + mov ip, r1, asr #16 + ldr r2, [sp, #32] + ldr r1, [sp, #0] + mov r4, r4, asl #8 + mov r3, r3, asr #16 + mov r5, r5, asl #8 + cmp fp, #0 + str r4, [sp, #92] + str r3, [sp, #44] + str r5, [sp, #52] + add r8, r1, r6, asl #2 + rsb r4, r0, r2 + bne .L9533 + mov r3, r5 + mla r3, r4, ip, r3 + mov r0, r3, asr #8 + cmp r0, sl + bcs .L9529 + cmp r7, #0 + add r3, r7, #7 + movge r3, r7 + mov r2, lr, asl #22 + mov r3, r3, asr #3 + mov r3, r3, asl #1 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L10356+24 + add r0, r0, ip, asl #2 + cmp r9, #0 + add lr, r3, r0, asl #3 + ble .L9529 + ldr r3, [sp, #48] + ldr r2, [sp, #56] + mul r3, r4, r3 + ldr r4, [sp, #44] + ldr r5, [sp, #92] + mul r2, r4, r2 + rsb r3, r2, r3 + add r0, r5, r3 + mov r4, r0, asr #8 + cmp r4, r7 + movcs ip, fp + bcs .L9539 + b .L10352 +.L9540: + cmp r4, r7 + bcc .L10316 +.L9539: + ldr r6, [sp, #44] + add ip, ip, #1 + add r0, r0, r6 + cmp r9, ip + mov r4, r0, asr #8 + add r8, r8, #4 + bne .L9540 +.L9529: + ldr r0, [sp, #28] + ldr r1, [sp, #36] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #28] + beq .L10302 +.L10334: + ldr ip, [sp, #28] + b .L9517 +.L9520: + ldr r0, [sp, #32] + tst r1, #8192 + rsb ip, ip, r0 + rsbne r3, ip, sl + subne ip, r3, #1 + mov r2, r1, asl #19 + and r3, r5, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L9529 + .p2align 2 +.L9601: + .word .L9597 + .word .L9598 + .word .L9599 + .word .L9600 +.L9597: + cmp r7, #0 + add r3, r7, #7 + mov r2, lr, asl #22 + movge r3, r7 + mov r5, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, r5, r3, r2 + ldr r2, [sp, #8] + and r1, ip, #7 + ldr r3, .L10356+24 + add r1, r1, r0, asl #3 + cmp r6, r2 + mov r2, lr, lsr #8 + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L10329 + ldr ip, [sp, #4] + add r3, r6, r7 + cmp ip, r3 + bhi .L9683 + rsb r7, r6, ip + cmp r7, #0 + ble .L9529 + ldr lr, [sp, #0] + movs r8, r7, lsr #3 + add r2, lr, r6, asl #2 + beq .L9686 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L9688: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L9689 + ands r3, r4, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + movs r3, r4, lsr #28 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] +.L9689: + add ip, ip, #1 + cmp ip, r8 + add lr, lr, #32 + add r5, r5, #32 + bne .L9688 + mov r3, r8, asl #5 + add r0, r0, r3 + add r2, r2, r3 +.L9686: + ands lr, r7, #7 + beq .L9529 + ldr r0, [r0, #0] + mov ip, #0 +.L9708: + ldr r5, [sp, #24] + ands r3, r0, #15 + orr r3, r5, r3 + orr r3, r1, r3 + strne r3, [r2, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, lsr #4 + bne .L9708 + b .L9529 +.L9598: + cmp r7, #0 + add r3, r7, #7 + mov r2, lr, asl #22 + movge r3, r7 + mov r5, r3, asr #3 + mov r2, r2, lsr #22 + mov r1, ip, lsr #3 + mla r0, r5, r1, r2 + subs r3, r7, #8 + submi r3, r7, #1 + ldr r8, [sp, #8] + add r0, r0, r3, asr #3 + and r2, ip, #7 + ldr r3, .L10356+24 + add r2, r2, r0, asl #3 + mov r1, lr, lsr #8 + cmp r6, r8 + add r0, r3, r2, asl #2 + and r1, r1, #240 + blt .L10330 + ldr ip, [sp, #4] + add r3, r6, r7 + cmp ip, r3 + bhi .L9813 + rsb r8, r6, ip + cmp r8, #0 + ble .L9529 + ldr lr, [sp, #0] + movs r7, r8, lsr #3 + add r2, lr, r6, asl #2 + beq .L9816 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L9818: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L9819 + ands r3, r4, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] +.L9819: + add ip, ip, #1 + cmp ip, r7 + sub lr, lr, #32 + add r5, r5, #32 + bne .L9818 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r2, r2, r7, asl #5 +.L9816: + ands lr, r8, #7 + beq .L9529 + ldr r0, [r0, #0] + mov ip, #0 +.L9838: + ldr r5, [sp, #24] + movs r3, r0, lsr #28 + orr r3, r5, r3 + orr r3, r1, r3 + strne r3, [r2, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, asl #4 + bne .L9838 + b .L9529 +.L9599: + cmp r7, #0 + add r3, r7, #7 + mov r1, lr, asl #22 + movge r3, r7 + mov r2, ip, lsr #3 + mov lr, r3, asr #3 + mov r1, r1, lsr #22 + mov r2, r2, asl #1 + mla r0, r2, lr, r1 + and r3, ip, #7 + add r3, r3, r0, asl #2 + ldr r8, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L10356+24 + cmp r6, r8 + add r1, r0, r3 + blt .L10331 + ldr r8, [sp, #4] + add r3, r6, r7 + cmp r8, r3 + bhi .L10018 + rsb r8, r6, r8 + cmp r8, #0 + ble .L9529 + ldr ip, [sp, #0] + movs r7, r8, lsr #3 + add r2, ip, r6, asl #2 + beq .L10021 + ldr r3, .L10356+32 + mov r5, r2 + add r0, r0, r3 + mov lr, r1 + mov ip, #0 +.L10023: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L10024 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r5, #0] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r5, #4] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r5, #8] + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r5, #12] +.L10024: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L10033 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r5, #24] + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r5, #28] +.L10033: + add ip, ip, #1 + cmp r7, ip + add lr, lr, #64 + add r5, r5, #32 + add r0, r0, #64 + bne .L10023 + add r1, r1, r7, asl #6 + add r2, r2, r7, asl #5 +.L10021: + ands ip, r8, #7 + beq .L9529 + cmp ip, #3 + ldrls r0, [r1, #0] + bls .L10056 + ldr r0, [r1, #0] + cmp r0, #0 + beq .L10046 + ands r3, r0, #255 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r2, #0] + mov r3, r0, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r2, #4] + mov r3, r0, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r2, #8] + movs r3, r0, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r2, #12] +.L10046: + subs ip, ip, #4 + ldr r0, [r1, #4] + addne r2, r2, #16 + beq .L9529 +.L10056: + mov r1, #0 +.L10057: + ldr lr, [sp, #24] + ands r3, r0, #255 + orr r3, lr, r3 + strne r3, [r2, r1, asl #2] + add r1, r1, #1 + cmp ip, r1 + mov r0, r0, lsr #8 + bhi .L10057 + b .L9529 +.L9600: + cmp r7, #0 + add r2, r7, #7 + movge r2, r7 + subs r3, r7, #8 + submi r3, r7, #1 + mov r1, ip, lsr #3 + mov r5, r2, asr #3 + mov r3, r3, asr #3 + mla r0, r5, r1, r3 + mov r2, lr, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + and r3, ip, #7 + add r3, r3, r2, asl #2 + ldr ip, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L10356+24 + cmp r6, ip + add r1, r0, r3 + blt .L10332 + add r3, r6, r7 + ldr r7, [sp, #4] + cmp r3, r7 + bcc .L10238 + rsb r8, r6, r7 + cmp r8, #0 + ble .L9529 + ldr ip, [sp, #0] + movs r7, r8, lsr #3 + add r6, ip, r6, asl #2 + beq .L10241 + ldr r3, .L10356+28 + mov r5, r6 + add r0, r0, r3 + mov lr, r1 + mov ip, #0 +.L10243: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L10244 + ands r3, r4, #255 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r5, #0] +.L10244: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L10253 + ands r3, r4, #255 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r5, #20] + movs r3, r4, lsr #24 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r5, #16] +.L10253: + add ip, ip, #1 + cmp ip, r7 + sub lr, lr, #64 + add r5, r5, #32 + sub r0, r0, #64 + bne .L10243 + rsb r3, r7, r7, asl #26 + add r1, r1, r3, asl #6 + add r6, r6, r7, asl #5 +.L10241: + ands r0, r8, #7 + beq .L9529 + cmp r0, #3 + ldrls r2, [r1, #4] + bls .L10276 + ldr r2, [r1, #4] + cmp r2, #0 + beq .L10266 + ands r3, r2, #255 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r6, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r6, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r6, #4] + movs r3, r2, lsr #24 + ldrne ip, [sp, #24] + orrne r3, ip, r3 + strne r3, [r6, #0] +.L10266: + subs r0, r0, #4 + ldr r2, [r1, #0] + addne r6, r6, #16 + beq .L9529 +.L10276: + mov r1, #0 +.L10277: + ldr lr, [sp, #24] + movs r3, r2, lsr #24 + orr r3, lr, r3 + strne r3, [r6, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bhi .L10277 + b .L9529 +.L9522: + mov r3, r1, lsr #4 + ldr r2, .L10356+12 + and r3, r3, #992 + add r3, r3, r2 + tst r4, #512 + ldrh r4, [r3, #30] + add r2, r7, r7, lsr #31 + add r1, sl, sl, lsr #31 + str r4, [sp, #20] + mov r4, r2, asr #1 + ldr r2, [sp, #8] + mov r5, r1, asr #1 + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, r7 + moveq r9, r4 + moveq r0, r5 + movne fp, r7, asl #1 + movne r9, r4, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + str r3, [sp, #16] + bge .L9560 + rsb r2, r6, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L9529 + ldr r6, [sp, #8] + rsb r9, r2, r9 +.L9560: + ldr r2, [sp, #4] + add r3, r6, fp + cmp r3, r2 + blt .L9563 + rsb fp, r6, r2 + cmp fp, #0 + ble .L9529 +.L9563: + mov r3, r8, asl #16 + ldr r8, [sp, #20] + add ip, ip, r0 + mov r2, r1, asl #16 + ldr r0, [sp, #16] + mov r1, r8, asl #16 + mov r2, r2, asr #16 + mov r1, r1, asr #16 + cmp r0, #0 + str r2, [sp, #68] + mov r0, lr, lsr #8 + str r1, [sp, #76] + ldr r2, [sp, #32] + ldr r1, [sp, #0] + mov r4, r4, asl #8 + mov r3, r3, asr #16 + and r0, r0, #240 + str r4, [sp, #88] + str r3, [sp, #64] + mov r5, r5, asl #8 + add r8, r1, r6, asl #2 + rsb r4, ip, r2 + str r0, [sp, #104] + bne .L9565 + ldr r3, [sp, #76] + mla r3, r4, r3, r5 + mov r0, r3, asr #8 + cmp r0, sl + bcs .L9529 + cmp r7, #0 + add r3, r7, #7 + mov r2, lr, asl #22 + movge r3, r7 + mov r1, r0, lsr #3 + mov r3, r3, asr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L10356+24 + add r0, r0, ip, asl #3 + cmp fp, #0 + add r1, r3, r0, asl #2 + ble .L9529 + ldr r3, [sp, #68] + ldr r2, [sp, #64] + mul r3, r4, r3 + mul r2, r9, r2 + ldr r4, [sp, #88] + rsb r3, r2, r3 + add r0, r4, r3 + mov r4, r0, asr #8 + cmp r4, r7 + ldrcs r5, [sp, #16] + bcs .L9571 + b .L10353 +.L9572: + cmp r4, r7 + bcc .L10318 +.L9571: + ldr r6, [sp, #64] + add r5, r5, #1 + add r0, r0, r6 + cmp fp, r5 + mov r4, r0, asr #8 + add r8, r8, #4 + bne .L9572 + ldr r0, [sp, #28] + ldr r1, [sp, #36] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #28] + bne .L10334 +.L10302: + add sp, sp, #112 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L9533: + cmp r7, #0 + add r1, r7, #7 + mov r2, lr, asl #22 + movge r1, r7 + ldr r3, .L10356+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #6 + cmp r9, #0 + str r2, [sp, #100] + str r1, [sp, #60] + ble .L9529 + mov r3, fp, asl #16 + mov fp, r3, asr #16 + ldr r6, [sp, #44] + ldr r3, [sp, #48] + ldr r0, [sp, #56] + ldr r1, [sp, #56] + mul r0, r6, r0 + mul r3, r4, r3 + mul r2, r4, ip + mul r1, fp, r1 + rsb r3, r0, r3 + ldr ip, [sp, #92] + ldr r0, [sp, #52] + rsb r2, r1, r2 + add r5, ip, r3 + add lr, r0, r2 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + cmp ip, r7 + cmpcc r4, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L9549 + b .L10354 +.L9550: + cmp ip, r7 + cmpcc r4, sl + bcc .L9551 +.L9549: + ldr r1, [sp, #44] + add r6, r6, #1 + add r5, r5, r1 + add lr, lr, fp + cmp r9, r6 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + add r8, r8, #4 + bne .L9550 + b .L9529 +.L9565: + cmp r7, #0 + add r1, r7, #7 + mov r2, lr, asl #22 + movge r1, r7 + ldr r3, .L10356+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #5 + cmp fp, #0 + str r2, [sp, #96] + str r1, [sp, #80] + ble .L9529 + ldr r6, [sp, #16] + ldr r2, [sp, #76] + mov r3, r6, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #72] + ldr r1, [sp, #72] + ldr r3, [sp, #68] + ldr r0, [sp, #64] + mul r2, r4, r2 + mul r3, r4, r3 + mul r1, r9, r1 + mul r0, r9, r0 + ldr ip, [sp, #88] + rsb r2, r1, r2 + rsb r3, r0, r3 + add lr, ip, r3 + add r5, r5, r2 + mov r4, lr, asr #8 + mov r2, r5, asr #8 + cmp r4, r7 + cmpcc r2, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L9584 + b .L10355 +.L9585: + cmp r4, r7 + cmpcc r2, sl + bcc .L9587 +.L9584: + ldr r0, [sp, #64] + ldr r1, [sp, #72] + add r6, r6, #1 + add lr, lr, r0 + add r5, r5, r1 + cmp fp, r6 + mov r4, lr, asr #8 + mov r2, r5, asr #8 + add r8, r8, #4 + bne .L9585 + b .L9529 +.L10337: + ldr r3, [sp, #96] + and r0, r2, #7 + add r0, r3, r0, asl #2 + and r1, r2, #7 + mov r3, r2, asr #3 + ldr r2, [sp, #80] + mov ip, r4, asr #1 + mul r2, r3, r2 + and r9, ip, #3 + ldr ip, [sp, #96] + mov r3, r4, asr #1 + add r1, ip, r1, asl #2 + and ip, r3, #3 + mov r3, r4, asr #3 + add r2, r2, r3, asl #5 + add r3, r0, r2 + tst r4, #1 + add r0, r1, r2 + ldreqb r3, [r0, ip] @ zero_extendqisi2 + ldrneb r3, [r3, r9] @ zero_extendqisi2 + ldr r4, [sp, #24] + movne r0, r3, lsr #4 + andeq r0, r3, #15 + ldr ip, [sp, #104] + ldr r2, [sp, #72] + orr r3, r0, r4 + ldr r1, [sp, #64] + cmp r0, #0 + add r6, r6, #1 + orr r3, ip, r3 + strne r3, [r8, #0] + add lr, lr, r1 + add r5, r5, r2 + cmp fp, r6 + mov r4, lr, asr #8 + mov r2, r5, asr #8 + add r8, r8, #4 + ble .L9529 +.L9587: + cmp r2, sl + cmpcc r4, r7 + bcc .L10337 + b .L9529 +.L9574: + cmp r4, r7 + bcs .L9529 +.L10318: + mov r3, r4, asr #1 + and sl, r3, #3 + mov r3, r4, asr #3 + mov r3, r3, asl #5 + mov r2, r4, asr #1 + tst r4, #1 + add ip, r3, r1 + and r6, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r6] @ zero_extendqisi2 + ldrneb r3, [ip, sl] @ zero_extendqisi2 + ldr lr, [sp, #24] + movne r2, r3, lsr #4 + andeq r2, r3, #15 + cmp r2, #0 + orr r3, r2, lr + ldr r2, [sp, #104] + ldr ip, [sp, #64] + add r5, r5, #1 + orr r3, r2, r3 + strne r3, [r8, #0] + add r0, r0, ip + cmp fp, r5 + mov r4, r0, asr #8 + add r8, r8, #4 + bgt .L9574 + b .L9529 +.L9542: + cmp r4, r7 + bcs .L9529 +.L10316: + ldr r1, [sp, #44] + mov r3, r4, asr #3 + add r0, r0, r1 + add r3, lr, r3, asl #6 + and r1, r4, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r5, [sp, #24] + cmp r2, #0 + add ip, ip, #1 + orr r3, r5, r2 + strne r3, [r8, #0] + cmp r9, ip + mov r4, r0, asr #8 + add r8, r8, #4 + bgt .L9542 + b .L9529 +.L10357: + .align 2 +.L10356: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_height_table + .word obj_width_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L10332: + rsb r0, r6, ip + rsb r4, r0, r7 + cmp r4, #0 + ble .L9529 + ldr lr, [sp, #4] + add r3, r6, r7 + cmp lr, r3 + bhi .L10085 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r6, r1, r3, asl #6 + bne .L10087 + ldr r5, [sp, #108] + ldr r4, [sp, #84] +.L10089: + movs lr, r5, lsr #3 + beq .L10147 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L10149: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L10150 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #0] +.L10150: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L10159 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #28] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #24] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #20] + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #16] +.L10159: + add ip, ip, #1 + cmp ip, lr + sub r0, r0, #64 + add r1, r1, #32 + bne .L10149 + rsb r3, lr, lr, asl #26 + add r6, r6, r3, asl #6 + add r4, r4, lr, asl #5 +.L10147: + ands r0, r5, #7 + beq .L9529 + cmp r0, #3 + ldrls r2, [r6, #4] + bls .L10182 + ldr r2, [r6, #4] + cmp r2, #0 + beq .L10172 + ands r3, r2, #255 + ldrne ip, [sp, #24] + orrne r3, ip, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #24] + orrne r3, r1, r3 + strne r3, [r4, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r4, #0] +.L10172: + subs r0, r0, #4 + ldr r2, [r6, #0] + addne r4, r4, #16 + beq .L9529 +.L10182: + mov r1, #0 +.L10183: + ldr r5, [sp, #24] + movs r3, r2, lsr #24 + orr r3, r5, r3 + strne r3, [r4, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bhi .L10183 + b .L9529 +.L10331: + rsb r0, r6, r8 + rsb lr, r0, r7 + cmp lr, #0 + ble .L9529 + ldr ip, [sp, #4] + add r3, r6, r7 + cmp ip, r3 + bhi .L9865 + mov r3, r0, lsr #3 + ands ip, r0, #7 + add r6, r1, r3, asl #6 + bne .L9867 + ldr r5, [sp, #108] + ldr r4, [sp, #84] +.L9869: + movs lr, r5, lsr #3 + beq .L9927 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L9929: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L9930 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #12] +.L9930: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L9939 + ands r3, r2, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #28] +.L9939: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #64 + add r1, r1, #32 + bne .L9929 + add r6, r6, lr, asl #6 + add r4, r4, lr, asl #5 +.L9927: + ands r0, r5, #7 + beq .L9529 + cmp r0, #3 + ldrls r1, [r6, #0] + bls .L9962 + ldr r2, [r6, #0] + cmp r2, #0 + beq .L9952 + ands r3, r2, #255 + ldrne ip, [sp, #24] + orrne r3, ip, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #24] + orrne r3, r1, r3 + strne r3, [r4, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r4, #12] +.L9952: + subs r0, r0, #4 + ldr r1, [r6, #4] + addne r4, r4, #16 + beq .L9529 +.L9962: + mov r2, #0 +.L9963: + ldr r5, [sp, #24] + ands r3, r1, #255 + orr r3, r5, r3 + strne r3, [r4, r2, asl #2] + add r2, r2, #1 + cmp r0, r2 + mov r1, r1, lsr #8 + bhi .L9963 + b .L9529 +.L10330: + rsb r4, r6, r8 + rsb ip, r4, r7 + cmp ip, #0 + ble .L9529 + ldr lr, [sp, #4] + add r3, r6, r7 + cmp lr, r3 + bhi .L9735 + mov r3, r4, lsr #3 + ands lr, r4, #7 + sub r0, r0, r3, asl #5 + bne .L9737 + ldr r2, [sp, #108] + ldr ip, [sp, #84] +.L9739: + movs r7, r2, lsr #3 + beq .L9756 + mov r5, ip + mov lr, r0 + mov r6, #0 +.L9758: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L9759 + ands r3, r4, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] +.L9759: + add r6, r6, #1 + cmp r6, r7 + sub lr, lr, #32 + add r5, r5, #32 + bne .L9758 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add ip, ip, r7, asl #5 +.L9756: + ands lr, r2, #7 + beq .L9529 + ldr r0, [r0, #0] + mov r2, #0 +.L9778: + ldr r5, [sp, #24] + movs r3, r0, lsr #28 + orr r3, r5, r3 + orr r3, r1, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r2, lr + mov r0, r0, asl #4 + bne .L9778 + b .L9529 +.L10329: + ldr r3, [sp, #8] + rsb r4, r6, r3 + rsb r5, r4, r7 + cmp r5, #0 + ble .L9529 + add r3, r6, r7 + ldr r6, [sp, #4] + cmp r6, r3 + bhi .L9605 + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add r5, r0, r2 + bne .L9607 + ldr r7, [sp, #108] + ldr r6, [sp, #84] +.L9609: + movs r4, r7, lsr #3 + beq .L9626 + mov ip, r6 + mov r0, r5 + mov lr, #0 +.L9628: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L9629 + ands r3, r2, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #24] + movs r3, r2, lsr #28 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + orrne r3, r1, r3 + strne r3, [ip, #28] +.L9629: + add lr, lr, #1 + cmp r4, lr + add r0, r0, #32 + add ip, ip, #32 + bne .L9628 + mov r3, r4, asl #5 + add r5, r5, r3 + add r6, r6, r3 +.L9626: + ands ip, r7, #7 + beq .L9529 + ldr r2, [r5, #0] + mov r0, #0 +.L9648: + ldr r4, [sp, #24] + ands r3, r2, #15 + orr r3, r4, r3 + orr r3, r1, r3 + strne r3, [r6, r0, asl #2] + add r0, r0, #1 + cmp r0, ip + mov r2, r2, lsr #4 + bne .L9648 + b .L9529 +.L10354: + mov r6, #0 +.L9551: + cmp r4, sl + movcc r3, #0 + movcs r3, #1 + cmp r7, ip + orrls r3, r3, #1 + cmp r3, #0 + beq .L10317 + b .L9529 +.L9552: + cmp r4, sl + cmpcc ip, r7 + bcs .L9529 +.L10317: + ldr r2, [sp, #44] + and r3, r4, #7 + add r5, r5, r2 + ldr r0, [sp, #100] + mov r2, ip, asr #3 + mov r3, r3, asl #3 + add r3, r3, r2, asl #6 + add r3, r3, r0 + ldr r0, [sp, #60] + mov r2, r4, asr #3 + mla r0, r2, r0, r3 + and r1, ip, #7 + ldrb r3, [r0, r1] @ zero_extendqisi2 + ldr r1, [sp, #24] + cmp r3, #0 + add r6, r6, #1 + orr r3, r1, r3 + strne r3, [r8, #0] + add lr, lr, fp + cmp r9, r6 + mov r4, lr, asr #8 + mov ip, r5, asr #8 + add r8, r8, #4 + bgt .L9552 + b .L9529 +.L9813: + cmp r5, #0 + beq .L9529 + ldr r7, [sp, #0] + mov ip, #0 + add r2, r7, r6, asl #2 + b .L9843 +.L10338: + sub r0, r0, #32 + add r2, r2, #32 +.L9843: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L9844 + ands r3, r4, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r2, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r2, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #4] + movs r3, r4, lsr #28 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #0] +.L9844: + add ip, ip, #1 + cmp r5, ip + bne .L10338 + b .L9529 +.L10238: + cmp r5, #0 + beq .L9529 + ldr r3, [sp, #0] + mov ip, #0 + add r2, r3, r6, asl #2 + ldr r3, .L10356+28 + add r0, r0, r3 + b .L10282 +.L10339: + sub r1, r1, #64 + add r2, r2, #32 +.L10282: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L10283 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r2, #12] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r2, #8] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r2, #4] + movs r3, r4, lsr #24 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + strne r3, [r2, #0] +.L10283: + ldr r4, [r1, #0] + cmp r4, #0 + beq .L10292 + ands r3, r4, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r2, #28] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r2, #24] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r2, #20] + movs r3, r4, lsr #24 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + strne r3, [r2, #16] +.L10292: + add ip, ip, #1 + cmp r5, ip + sub r0, r0, #64 + bne .L10339 + b .L9529 +.L9683: + cmp r5, #0 + beq .L9529 + ldr r7, [sp, #0] + mov ip, #0 + add r2, r7, r6, asl #2 + b .L9713 +.L10340: + add r0, r0, #32 + add r2, r2, #32 +.L9713: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L9714 + ands r3, r4, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #0] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r2, #4] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #8] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #12] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #16] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r2, #20] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #24] + movs r3, r4, lsr #28 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #28] +.L9714: + add ip, ip, #1 + cmp r5, ip + bne .L10340 + b .L9529 +.L10018: + cmp lr, #0 + beq .L9529 + ldr r3, [sp, #0] + mov ip, #0 + add r2, r3, r6, asl #2 + ldr r3, .L10356+32 + add r0, r0, r3 + b .L10062 +.L10341: + add r1, r1, #64 + add r2, r2, #32 +.L10062: + ldr r4, [r1, #0] + cmp r4, #0 + beq .L10063 + ands r3, r4, #255 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r2, #0] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r2, #4] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r2, #8] + movs r3, r4, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r2, #12] +.L10063: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L10072 + ands r3, r4, #255 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r2, #16] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r2, #20] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r2, #24] + movs r3, r4, lsr #24 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r2, #28] +.L10072: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #64 + bne .L10341 + b .L9529 +.L9865: + ands r2, r0, #7 + mov r3, r0, lsr #3 + add r0, r1, r3, asl #6 + ldreq r1, [sp, #84] + beq .L9969 + cmp r2, #3 + rsb ip, r2, #8 + bhi .L10342 + subs r4, ip, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #84] + beq .L9982 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + mov r1, #0 +.L9983: + ands r3, r2, #255 + ldr r5, [sp, #24] + ldrne r6, [sp, #84] + orr r3, r5, r3 + strne r3, [r6, r1, asl #2] + add r1, r1, #1 + cmp r1, r4 + mov r2, r2, lsr #8 + bne .L9983 + ldr r7, [sp, #84] + add r3, r7, ip, asl #2 + sub r1, r3, #16 +.L9982: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L9988 + ands r3, r2, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, ip, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r1, #12] +.L9988: + add r1, r1, #16 +.L9974: + add r0, r0, #64 +.L9969: + movs lr, lr, lsr #3 + beq .L9529 + mov ip, #0 + b .L9998 +.L10343: + add r0, r0, #64 + add r1, r1, #32 +.L9998: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L9999 + ands r3, r2, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r1, #12] +.L9999: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L10008 + ands r3, r2, #255 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r1, #28] +.L10008: + add ip, ip, #1 + cmp lr, ip + bne .L10343 + b .L9529 +.L9735: + ands r2, r4, #7 + mov r3, r4, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r5, [sp, #84] + beq .L9784 + rsbs r5, r2, #8 + ldr lr, [r0, #0] + ldreq r5, [sp, #84] + beq .L9787 + mov r3, r2, asl #2 + mov r4, lr, asl r3 + mov lr, #0 +.L9788: + ldr r6, [sp, #24] + movs r3, r4, lsr #28 + ldrne r7, [sp, #84] + orr r3, r6, r3 + orr r3, r1, r3 + strne r3, [r7, lr, asl #2] + add lr, lr, #1 + cmp r5, lr + mov r4, r4, asl #4 + bne .L9788 + ldr r8, [sp, #84] + add r5, r8, r5, asl #2 +.L9787: + sub r0, r0, #32 +.L9784: + movs ip, ip, lsr #3 + beq .L9529 + mov r2, #0 + b .L9794 +.L10344: + sub r0, r0, #32 + add r5, r5, #32 +.L9794: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L9795 + ands r3, r4, #15 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] +.L9795: + add r2, r2, #1 + cmp r2, ip + bne .L10344 + b .L9529 +.L10085: + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r2, r1, r3, asl #6 + ldreq r0, [sp, #84] + beq .L10189 + cmp ip, #3 + rsb lr, ip, #8 + bhi .L10345 + subs r5, lr, #4 + ldr r1, [r2, #4] + ldreq r0, [sp, #84] + beq .L10202 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r0, #0 +.L10203: + movs r3, r1, lsr #24 + ldr ip, [sp, #24] + ldrne r6, [sp, #84] + orr r3, ip, r3 + strne r3, [r6, r0, asl #2] + add r0, r0, #1 + cmp r5, r0 + mov r1, r1, asl #8 + bne .L10203 + ldr r7, [sp, #84] + add r3, r7, lr, asl #2 + sub r0, r3, #16 +.L10202: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L10208 + ands r3, r1, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, ip, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r1, [sp, #24] + orrne r3, r1, r3 + strne r3, [r0, #0] +.L10208: + add r0, r0, #16 +.L10194: + sub r2, r2, #64 +.L10189: + movs lr, r4, lsr #3 + beq .L9529 + mov ip, #0 + b .L10218 +.L10346: + sub r2, r2, #64 + add r0, r0, #32 +.L10218: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L10219 + ands r3, r1, #255 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + strne r3, [r0, #0] +.L10219: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L10228 + ands r3, r1, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r0, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #24] + orrne r3, r4, r3 + strne r3, [r0, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + strne r3, [r0, #20] + movs r3, r1, lsr #24 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + strne r3, [r0, #16] +.L10228: + add ip, ip, #1 + cmp ip, lr + bne .L10346 + b .L9529 +.L9605: + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add lr, r0, r2 + ldreq ip, [sp, #84] + beq .L9654 + rsbs r4, r3, #8 + ldr r0, [r0, r2] + ldreq ip, [sp, #84] + beq .L9657 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L9658: + ldr r6, [sp, #24] + ands r3, r0, #15 + ldrne r7, [sp, #84] + orr r3, r6, r3 + orr r3, r1, r3 + strne r3, [r7, r2, asl #2] + add r2, r2, #1 + cmp r2, r4 + mov r0, r0, lsr #4 + bne .L9658 + ldr r8, [sp, #84] + add ip, r8, r4, asl #2 +.L9657: + add lr, lr, #32 +.L9654: + movs r4, r5, lsr #3 + beq .L9529 + mov r0, #0 + b .L9664 +.L10347: + add lr, lr, #32 + add ip, ip, #32 +.L9664: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L9665 + ands r3, r2, #15 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [ip, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [ip, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [ip, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #24] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [ip, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #24] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [ip, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #24] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [ip, #24] + movs r3, r2, lsr #28 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #28] +.L9665: + add r0, r0, #1 + cmp r0, r4 + bne .L10347 + b .L9529 +.L9867: + ldr lr, [sp, #108] + rsb r0, ip, #8 + cmp lr, r0 + blt .L10348 + cmp ip, #3 + bls .L9900 + cmp r0, #0 + ldr r2, [r6, #4] + ldreq r4, [sp, #84] + beq .L9904 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L9905: + ands r3, r1, #255 + ldr r8, [sp, #24] + ldrne ip, [sp, #84] + orr r3, r8, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r0, r2 + mov r1, r1, lsr #8 + bne .L9905 + ldr lr, [sp, #84] + add r4, lr, r0, asl #2 +.L9904: + ldr r3, [sp, #108] + add r6, r6, #64 + rsb r5, r0, r3 + b .L9869 +.L9737: + ldr r2, [sp, #108] + rsb r5, lr, #8 + cmp r2, r5 + blt .L10349 + cmp r5, #0 + ldr r2, [r0, #0] + ldreq ip, [sp, #84] + beq .L9750 + mov r3, lr, asl #2 + mov r4, r2, asl r3 + mov lr, #0 +.L9751: + ldr r7, [sp, #24] + movs r3, r4, lsr #28 + ldrne r8, [sp, #84] + orr r3, r7, r3 + orr r3, r1, r3 + strne r3, [r8, lr, asl #2] + add lr, lr, #1 + cmp r5, lr + mov r4, r4, asl #4 + bne .L9751 + ldr lr, [sp, #84] + add ip, lr, r5, asl #2 +.L9750: + ldr r3, [sp, #108] + sub r0, r0, #32 + rsb r2, r5, r3 + b .L9739 +.L9607: + ldr r7, [sp, #108] + rsb lr, r3, #8 + cmp r7, lr + blt .L10350 + cmp lr, #0 + ldr r2, [r5, #0] + ldreq r6, [sp, #84] + beq .L9620 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + mov r0, #0 +.L9621: + ldr r4, [sp, #24] + ands r3, r2, #15 + ldrne r6, [sp, #84] + orr r3, r4, r3 + orr r3, r1, r3 + strne r3, [r6, r0, asl #2] + add r0, r0, #1 + cmp lr, r0 + mov r2, r2, lsr #4 + bne .L9621 + ldr r7, [sp, #84] + add r6, r7, lr, asl #2 +.L9620: + ldr r8, [sp, #108] + add r5, r5, #32 + rsb r7, lr, r8 + b .L9609 +.L10087: + ldr r1, [sp, #108] + rsb r0, ip, #8 + cmp r1, r0 + blt .L10351 + cmp ip, #3 + bls .L10120 + cmp r0, #0 + ldr r2, [r6, #0] + ldreq r4, [sp, #84] + beq .L10124 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L10125: + movs r3, r2, lsr #24 + ldr r8, [sp, #24] + ldrne ip, [sp, #84] + orr r3, r8, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bne .L10125 + ldr lr, [sp, #84] + add r4, lr, r0, asl #2 +.L10124: + ldr r3, [sp, #108] + sub r6, r6, #64 + rsb r5, r0, r3 + b .L10089 +.L10351: + cmp r1, #0 + ble .L9529 + cmp ip, #3 + bls .L10093 + ldr r2, [r6, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L10096: + movs r3, r2, lsr #24 + ldr r4, [sp, #24] + ldrne r5, [sp, #84] + orr r3, r4, r3 + ldr r6, [sp, #108] + strne r3, [r5, r1, asl #2] + add r1, r1, #1 + cmp r6, r1 + mov r2, r2, asl #8 + bne .L10096 + b .L9529 +.L10350: + cmp r7, #0 + ble .L9529 + ldr r2, [r0, r2] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L9614: + ldr r8, [sp, #24] + ands r3, r0, #15 + ldrne ip, [sp, #84] + orr r3, r8, r3 + orr r3, r1, r3 + ldr lr, [sp, #108] + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp lr, r2 + mov r0, r0, lsr #4 + bne .L9614 + b .L9529 +.L10349: + cmp r2, #0 + ble .L9529 + ldr r2, [r0, #0] + mov r3, lr, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L9744: + ldr r4, [sp, #24] + movs r3, r0, lsr #28 + ldrne r5, [sp, #84] + orr r3, r4, r3 + orr r3, r1, r3 + ldr r6, [sp, #108] + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r6, r2 + mov r0, r0, asl #4 + bne .L9744 + b .L9529 +.L10345: + cmp lr, #0 + ldr r1, [r2, #0] + ldreq r0, [sp, #84] + beq .L10194 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r0, #0 +.L10195: + movs r3, r1, lsr #24 + ldr r6, [sp, #24] + ldrne r7, [sp, #84] + orr r3, r6, r3 + strne r3, [r7, r0, asl #2] + add r0, r0, #1 + cmp r0, lr + mov r1, r1, asl #8 + bne .L10195 + ldr r8, [sp, #84] + sub r2, r2, #64 + add r0, r8, lr, asl #2 + b .L10189 +.L10342: + cmp ip, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #84] + beq .L9974 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + mov r1, #0 +.L9975: + ands r3, r2, #255 + ldr r6, [sp, #24] + ldrne r7, [sp, #84] + orr r3, r6, r3 + strne r3, [r7, r1, asl #2] + add r1, r1, #1 + cmp r1, ip + mov r2, r2, lsr #8 + bne .L9975 + ldr r8, [sp, #84] + add r0, r0, #64 + add r1, r8, ip, asl #2 + b .L9969 +.L10348: + cmp lr, #0 + ble .L9529 + cmp ip, #3 + bls .L9873 + ldr r2, [r6, #4] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L9876: + ands r3, r1, #255 + ldr r0, [sp, #24] + ldrne r4, [sp, #84] + orr r3, r0, r3 + ldr r5, [sp, #108] + strne r3, [r4, r2, asl #2] + add r2, r2, #1 + cmp r5, r2 + mov r1, r1, lsr #8 + bne .L9876 + b .L9529 +.L10355: + mov r6, #0 + b .L9587 +.L10120: + subs lr, r0, #4 + ldr r2, [r6, #4] + ldreq r1, [sp, #84] + beq .L10132 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L10133: + movs r3, r2, lsr #24 + ldr r4, [sp, #24] + ldrne r5, [sp, #84] + orr r3, r4, r3 + strne r3, [r5, r1, asl #2] + add r1, r1, #1 + cmp lr, r1 + mov r2, r2, asl #8 + bne .L10133 + ldr r7, [sp, #84] + add r3, r7, r0, asl #2 + sub r1, r3, #16 +.L10132: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L10138 + ands r3, r2, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, ip, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r1, #0] +.L10138: + add r4, r1, #16 + b .L10124 +.L9900: + subs lr, r0, #4 + ldr r2, [r6, #0] + ldreq r1, [sp, #84] + beq .L9912 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L9913: + ands r3, r1, #255 + ldr r4, [sp, #24] + ldrne r5, [sp, #84] + orr r3, r4, r3 + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r2, lr + mov r1, r1, lsr #8 + bne .L9913 + ldr r7, [sp, #84] + add r3, r7, r0, asl #2 + sub r1, r3, #16 +.L9912: + ldr r2, [r6, #4] + cmp r2, #0 + beq .L9918 + ands r3, r2, #255 + ldrne r8, [sp, #24] + orrne r3, r8, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #24] + orrne r3, ip, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #24] + orrne r3, lr, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #24] + orrne r3, r2, r3 + strne r3, [r1, #12] +.L9918: + add r4, r1, #16 + b .L9904 +.L10353: + ldr r5, [sp, #16] + b .L10318 +.L10352: + mov ip, fp + b .L10316 +.L10093: + ldr r7, [sp, #108] + mov r3, ip, asl #3 + ldr r1, [r6, #4] + add r2, r7, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L10100 + cmp r7, #0 + movne r2, #0 + beq .L9529 +.L10116: + movs r3, r1, lsr #24 + ldr r5, [sp, #24] + ldrne r6, [sp, #84] + orr r3, r5, r3 + ldr r7, [sp, #108] + strne r3, [r6, r2, asl #2] + add r2, r2, #1 + cmp r7, r2 + mov r1, r1, asl #8 + bne .L10116 + b .L9529 +.L9873: + ldr r7, [sp, #108] + ldr r3, [r6, #0] + add r2, r7, ip + cmp r2, #4 + mov r1, ip, asl #3 + mov r2, r3, lsr r1 + bhi .L9880 + cmp r7, #0 + movne r1, #0 + beq .L9529 +.L9896: + ands r3, r2, #255 + ldr r5, [sp, #24] + ldrne r6, [sp, #84] + orr r3, r5, r3 + ldr r7, [sp, #108] + strne r3, [r6, r1, asl #2] + add r1, r1, #1 + cmp r7, r1 + mov r2, r2, lsr #8 + bne .L9896 + b .L9529 +.L10100: + rsbs r0, ip, #4 + ldreq ip, [sp, #84] + beq .L10105 + mov r2, #0 +.L10106: + movs r3, r1, lsr #24 + ldr r8, [sp, #24] + ldrne ip, [sp, #84] + orr r3, r8, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r2, r0 + mov r1, r1, asl #8 + bne .L10106 + ldr lr, [sp, #84] + add ip, lr, r0, asl #2 +.L10105: + ldr r1, [sp, #108] + ldr r2, [r6, #0] + subs r0, r1, r0 + beq .L9529 + mov r1, #0 +.L10112: + ldr r4, [sp, #24] + movs r3, r2, lsr #24 + orr r3, r4, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, asl #8 + bne .L10112 + b .L9529 +.L9880: + rsbs r0, ip, #4 + ldreq ip, [sp, #84] + beq .L9885 + mov r1, #0 +.L9886: + ands r3, r2, #255 + ldr r8, [sp, #24] + ldrne ip, [sp, #84] + orr r3, r8, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L9886 + ldr lr, [sp, #84] + add ip, lr, r0, asl #2 +.L9885: + ldr r1, [sp, #108] + ldr r2, [r6, #4] + subs r0, r1, r0 + beq .L9529 + mov r1, #0 +.L9892: + ldr r4, [sp, #24] + ands r3, r2, #255 + orr r3, r4, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L9892 + b .L9529 + .size render_scanline_obj_color32_1D, .-render_scanline_obj_color32_1D + .align 2 + .global render_scanline_obj_color32_2D + .type render_scanline_obj_color32_2D, %function +render_scanline_obj_color32_2D: + @ args = 0, pretend = 0, frame = 96 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L11200 + sub sp, sp, #96 + ldrh r4, [ip, #6] + add r0, r0, r0, asl #2 + str r4, [sp, #36] + ldr r5, [sp, #36] + ldrh r4, [ip, #80] + ldr ip, .L11200+4 + add r0, r5, r0, asl #5 + ldr ip, [ip, r0, asl #2] + mov lr, r4, lsr #11 + and lr, lr, #2 + mov r4, r4, asl #27 + str ip, [sp, #40] + orr lr, lr, r4, lsr #31 + cmp ip, #0 + ldr ip, .L11200+8 + mov lr, lr, asl #9 + add r0, ip, r0, asl #7 + orr lr, lr, #256 + str r0, [sp, #44] + str r1, [sp, #12] + str r2, [sp, #8] + str r3, [sp, #4] + str lr, [sp, #28] + beq .L11146 + mov r8, #0 + add r6, r3, r1, asl #2 + rsb r7, r1, r2 + str r6, [sp, #68] + str r7, [sp, #92] + str r8, [sp, #32] + mov ip, r8 +.L10361: + ldr lr, [sp, #44] + ldr r0, .L11200+12 + ldrb r3, [ip, lr] @ zero_extendqisi2 + mov r3, r3, asl #3 + ldrh r4, [r3, r0] + add r3, r3, r0 + ldrh r1, [r3, #2] + mov r5, r4, lsr #12 + and r2, r5, #12 + orr r0, r2, r1, lsr #14 + and ip, r4, #255 + mov r2, r1, asl #23 + cmp ip, #160 + ldrh lr, [r3, #4] + mov r6, r2, asr #23 + ldr r3, .L11200+16 + ldr r2, .L11200+20 + subgt ip, ip, #256 + tst r4, #256 + ldr r8, [r2, r0, asl #2] + ldr sl, [r3, r0, asl #2] + beq .L10364 + tst r4, #8192 + beq .L10366 + tst r4, #512 + mov r3, r1, lsr #4 + ldr r4, .L11200+12 + and r3, r3, #992 + add r3, r3, r4 + add r2, r8, r8, lsr #31 + ldrh r5, [r3, #30] + mov r4, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #12] + movne r0, r4, asl #1 + str r5, [sp, #16] + mov r5, r1, asr #1 + strne r0, [sp, #52] + moveq r9, r8 + streq r4, [sp, #52] + moveq r0, r5 + movne r9, r8, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + ldrh r7, [r3, #6] + ldrh r1, [r3, #14] + ldrh fp, [r3, #22] + bge .L10371 + rsb r2, r6, r2 + rsb r9, r2, r9 + cmp r9, #0 + ble .L10373 + ldr r3, [sp, #52] + ldr r6, [sp, #12] + rsb r3, r2, r3 + str r3, [sp, #52] +.L10371: + ldr r2, [sp, #8] + add r3, r6, r9 + cmp r3, r2 + blt .L10375 + rsb r9, r6, r2 + cmp r9, #0 + ble .L10373 +.L10375: + mov r3, r7, asl #16 + mov r2, r1, asl #16 + ldr r7, [sp, #16] + mov r3, r3, asr #16 + add r0, ip, r0 + str r3, [sp, #48] + mov ip, r2, asr #16 + ldr r3, [sp, #36] + ldr r2, [sp, #4] + mov r1, r7, asl #16 + mov r4, r4, asl #8 + cmp fp, #0 + str r4, [sp, #76] + mov r1, r1, asr #16 + mov r4, r5, asl #8 + add r7, r2, r6, asl #2 + rsb r0, r0, r3 + bne .L10377 + mla r3, r0, r1, r4 + mov r1, r3, asr #8 + cmp r1, sl + bcs .L10373 + mov r3, lr, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #2 + ldr r3, .L11200+24 + cmp r9, #0 + add lr, r3, r1, asl #3 + ble .L10373 + ldr r4, [sp, #48] + ldr r2, [sp, #52] + mul r3, r0, ip + mul r2, r4, r2 + ldr r5, [sp, #76] + rsb r3, r2, r3 + add r0, r5, r3 + mov r4, r0, asr #8 + cmp r4, r8 + movcs ip, fp + bcs .L10383 + b .L11196 +.L10384: + cmp r4, r8 + bcc .L11160 +.L10383: + ldr r6, [sp, #48] + add ip, ip, #1 + add r0, r0, r6 + cmp r9, ip + mov r4, r0, asr #8 + add r7, r7, #4 + bne .L10384 +.L10373: + ldr ip, [sp, #32] + ldr lr, [sp, #40] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #32] + beq .L11146 +.L11178: + ldr ip, [sp, #32] + b .L10361 +.L10364: + ldr r2, [sp, #36] + tst r1, #8192 + rsb r0, ip, r2 + rsbne r3, r0, sl + subne r0, r3, #1 + mov r2, r1, asl #19 + and r3, r5, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L10373 + .p2align 2 +.L10445: + .word .L10441 + .word .L10442 + .word .L10443 + .word .L10444 +.L10441: + mov r3, lr, asl #22 + mov r2, r0, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + add r1, r1, r3, asl #3 + ldr r3, [sp, #12] + mov r2, lr, lsr #8 + cmp r6, r3 + ldr r3, .L11200+24 + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L11173 + ldr ip, [sp, #8] + add r3, r6, r8 + cmp ip, r3 + bhi .L10527 + rsb r7, r6, ip + cmp r7, #0 + ble .L10373 + ldr lr, [sp, #4] + movs r8, r7, lsr #3 + add r2, lr, r6, asl #2 + beq .L10530 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L10532: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L10533 + ands r3, r4, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + movs r3, r4, lsr #28 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] +.L10533: + add ip, ip, #1 + cmp ip, r8 + add lr, lr, #32 + add r5, r5, #32 + bne .L10532 + mov r3, r8, asl #5 + add r0, r0, r3 + add r2, r2, r3 +.L10530: + ands lr, r7, #7 + beq .L10373 + ldr r0, [r0, #0] + mov ip, #0 +.L10552: + ldr r5, [sp, #28] + ands r3, r0, #15 + orr r3, r5, r3 + orr r3, r1, r3 + strne r3, [r2, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, lsr #4 + bne .L10552 + b .L10373 +.L10442: + mov r3, lr, asl #22 + mov r1, r0, lsr #3 + subs r2, r8, #8 + mov r3, r3, lsr #22 + submi r2, r8, #1 + add r3, r3, r1, asl #5 + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr ip, [sp, #12] + add r1, r1, r3, asl #3 + ldr r3, .L11200+24 + mov r2, lr, lsr #8 + cmp r6, ip + add r0, r3, r1, asl #2 + and r1, r2, #240 + blt .L11174 + ldr ip, [sp, #8] + add r3, r6, r8 + cmp ip, r3 + bhi .L10657 + rsb r8, r6, ip + cmp r8, #0 + ble .L10373 + ldr lr, [sp, #4] + movs r7, r8, lsr #3 + add r2, lr, r6, asl #2 + beq .L10660 + mov r5, r2 + mov lr, r0 + mov ip, #0 +.L10662: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L10663 + ands r3, r4, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] +.L10663: + add ip, ip, #1 + cmp ip, r7 + sub lr, lr, #32 + add r5, r5, #32 + bne .L10662 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r2, r2, r7, asl #5 +.L10660: + ands lr, r8, #7 + beq .L10373 + ldr r0, [r0, #0] + mov ip, #0 +.L10682: + ldr r5, [sp, #28] + movs r3, r0, lsr #28 + orr r3, r5, r3 + orr r3, r1, r3 + strne r3, [r2, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, asl #4 + bne .L10682 + b .L10373 +.L10443: + mov r2, lr, asl #22 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + and r3, r0, #7 + add r2, r2, r1, asl #5 + add r3, r3, r2, asl #2 + ldr ip, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L11200+24 + cmp r6, ip + add ip, r0, r3 + blt .L11175 + ldr lr, [sp, #8] + add r3, r6, r8 + cmp lr, r3 + bhi .L10862 + rsb r8, r6, lr + cmp r8, #0 + ble .L10373 + ldr r1, [sp, #4] + movs r7, r8, lsr #3 + add r2, r1, r6, asl #2 + beq .L10865 + ldr r3, .L11200+32 + mov r5, r2 + add r0, r0, r3 + mov lr, ip + mov r1, #0 +.L10867: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L10868 + ands r3, r4, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r5, #0] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r5, #4] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r5, #8] + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r5, #12] +.L10868: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L10877 + ands r3, r4, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r5, #24] + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r5, #28] +.L10877: + add r1, r1, #1 + cmp r7, r1 + add lr, lr, #64 + add r5, r5, #32 + add r0, r0, #64 + bne .L10867 + add ip, ip, r7, asl #6 + add r2, r2, r7, asl #5 +.L10865: + ands lr, r8, #7 + beq .L10373 + cmp lr, #3 + ldrls r0, [ip, #0] + bls .L10900 + ldr r1, [ip, #0] + cmp r1, #0 + beq .L10890 + ands r3, r1, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r2, #0] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r2, #4] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r2, #8] + movs r3, r1, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r2, #12] +.L10890: + subs lr, lr, #4 + ldr r0, [ip, #4] + addne r2, r2, #16 + beq .L10373 +.L10900: + mov r1, #0 +.L10901: + ldr ip, [sp, #28] + ands r3, r0, #255 + orr r3, ip, r3 + strne r3, [r2, r1, asl #2] + add r1, r1, #1 + cmp lr, r1 + mov r0, r0, lsr #8 + bhi .L10901 + b .L10373 +.L10444: + subs r2, r8, #8 + submi r2, r8, #1 + mov r3, r0, lsr #3 + mov r2, r2, asr #3 + mov r1, lr, asl #22 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + and r3, r0, #7 + add r1, r1, r2, asl #1 + add r3, r3, r1, asl #2 + ldr ip, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L11200+24 + cmp r6, ip + add ip, r0, r3 + blt .L11176 + ldr lr, [sp, #8] + add r3, r6, r8 + cmp r3, lr + bcc .L11082 + rsb r8, r6, lr + cmp r8, #0 + ble .L10373 + ldr r1, [sp, #4] + movs r7, r8, lsr #3 + add r6, r1, r6, asl #2 + beq .L11085 + ldr r3, .L11200+28 + mov r5, r6 + add r0, r0, r3 + mov lr, ip + mov r1, #0 +.L11087: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L11088 + ands r3, r4, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r5, #0] +.L11088: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L11097 + ands r3, r4, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r5, #20] + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r5, #16] +.L11097: + add r1, r1, #1 + cmp r1, r7 + sub lr, lr, #64 + add r5, r5, #32 + sub r0, r0, #64 + bne .L11087 + rsb r3, r7, r7, asl #26 + add ip, ip, r3, asl #6 + add r6, r6, r7, asl #5 +.L11085: + ands r0, r8, #7 + beq .L10373 + cmp r0, #3 + ldrls r2, [ip, #4] + bls .L11120 + ldr r2, [ip, #4] + cmp r2, #0 + beq .L11110 + ands r3, r2, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r6, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r6, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r6, #4] + movs r3, r2, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r6, #0] +.L11110: + subs r0, r0, #4 + ldr r2, [ip, #0] + addne r6, r6, #16 + beq .L10373 +.L11120: + mov r1, #0 +.L11121: + ldr r4, [sp, #28] + movs r3, r2, lsr #24 + orr r3, r4, r3 + strne r3, [r6, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bhi .L11121 + b .L10373 +.L10366: + mov r3, r1, lsr #4 + ldr r1, .L11200+12 + and r3, r3, #992 + add r3, r3, r1 + tst r4, #512 + ldrh r4, [r3, #30] + add r2, r8, r8, lsr #31 + add r1, sl, sl, lsr #31 + str r4, [sp, #24] + mov r4, r2, asr #1 + ldr r2, [sp, #12] + mov r5, r1, asr #1 + ldrh r7, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, r8 + moveq r9, r4 + moveq r0, r5 + movne fp, r8, asl #1 + movne r9, r4, asl #1 + movne r0, r5, asl #1 + cmp r6, r2 + str r3, [sp, #20] + bge .L10404 + rsb r2, r6, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L10373 + ldr r6, [sp, #12] + rsb r9, r2, r9 +.L10404: + ldr r2, [sp, #8] + add r3, r6, fp + cmp r3, r2 + blt .L10407 + rsb fp, r6, r2 + cmp fp, #0 + ble .L10373 +.L10407: + add ip, ip, r0 + mov r3, r7, asl #16 + mov r2, r1, asl #16 + ldr r0, [sp, #20] + ldr r7, [sp, #24] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + cmp r0, #0 + str r3, [sp, #56] + mov r0, lr, lsr #8 + str r2, [sp, #60] + ldr r3, [sp, #36] + ldr r2, [sp, #4] + mov r1, r7, asl #16 + mov r4, r4, asl #8 + and r0, r0, #240 + str r4, [sp, #72] + mov r1, r1, asr #16 + mov r4, r5, asl #8 + add r7, r2, r6, asl #2 + rsb ip, ip, r3 + str r0, [sp, #88] + bne .L10409 + mla r3, ip, r1, r4 + mov r1, r3, asr #8 + cmp r1, sl + bcs .L10373 + mov r3, lr, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #3 + ldr r3, .L11200+24 + cmp fp, #0 + add r1, r3, r1, asl #2 + ble .L10373 + ldr r3, [sp, #60] + ldr r2, [sp, #56] + mul r3, ip, r3 + mul r2, r9, r2 + ldr r4, [sp, #72] + rsb r3, r2, r3 + add r0, r4, r3 + mov r4, r0, asr #8 + cmp r4, r8 + ldrcs r5, [sp, #20] + bcs .L10415 + b .L11197 +.L10416: + cmp r4, r8 + bcc .L11162 +.L10415: + ldr r6, [sp, #56] + add r5, r5, #1 + add r0, r0, r6 + cmp fp, r5 + mov r4, r0, asr #8 + add r7, r7, #4 + bne .L10416 + ldr ip, [sp, #32] + ldr lr, [sp, #40] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #32] + bne .L11178 +.L11146: + add sp, sp, #96 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L10377: + mov r3, lr, asl #22 + ldr r2, .L11200+24 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp r9, #0 + str r3, [sp, #84] + ble .L10373 + mov r3, fp, asl #16 + mul r2, r0, r1 + mov fp, r3, asr #16 + ldr r6, [sp, #48] + mul r3, r0, ip + ldr r1, [sp, #52] + ldr r0, [sp, #52] + mul r1, fp, r1 + mul r0, r6, r0 + ldr ip, [sp, #76] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, ip, r3 + add lr, r4, r2 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + cmp ip, r8 + cmpcc r4, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L10393 + b .L11198 +.L10394: + cmp ip, r8 + cmpcc r4, sl + bcc .L10395 +.L10393: + ldr r0, [sp, #48] + add r6, r6, #1 + add r5, r5, r0 + add lr, lr, fp + cmp r9, r6 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + add r7, r7, #4 + bne .L10394 + b .L10373 +.L10409: + mov r3, lr, asl #22 + ldr r2, .L11200+24 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp fp, #0 + str r3, [sp, #80] + ble .L10373 + ldr r5, [sp, #20] + mul r2, ip, r1 + mov r3, r5, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #64] + ldr r1, [sp, #64] + ldr r3, [sp, #60] + ldr r0, [sp, #56] + mul r3, ip, r3 + mul r1, r9, r1 + mul r0, r9, r0 + ldr r6, [sp, #72] + rsb r3, r0, r3 + rsb r2, r1, r2 + add lr, r6, r3 + add r5, r4, r2 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + cmp ip, r8 + cmpcc r4, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L10428 + b .L11199 +.L10429: + cmp ip, r8 + cmpcc r4, sl + bcc .L10431 +.L10428: + ldr ip, [sp, #56] + ldr r0, [sp, #64] + add r6, r6, #1 + add lr, lr, ip + add r5, r5, r0 + cmp fp, r6 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + add r7, r7, #4 + bne .L10429 + b .L10373 +.L11181: + mov r3, ip, asr #1 + ldr r1, [sp, #80] + and r3, r3, #3 + and r0, r4, #7 + str r3, [sp, #0] + ldr r3, [sp, #80] + add r0, r1, r0, asl #2 + and r1, r4, #7 + mov r2, ip, asr #1 + add r1, r3, r1, asl #2 + mov r3, r4, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, ip, asr #3 + tst ip, #1 + add r3, r3, r2, asl #5 + add r2, r0, r3 + movne r4, r9 + add r0, r1, r3 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + ldrneb r3, [r2, r4] @ zero_extendqisi2 + ldr r2, [sp, #28] + movne r0, r3, lsr #4 + andeq r0, r3, #15 + cmp r0, #0 + orr r3, r0, r2 + ldr r0, [sp, #88] + ldr ip, [sp, #56] + ldr r1, [sp, #64] + add r6, r6, #1 + orr r3, r0, r3 + strne r3, [r7, #0] + add lr, lr, ip + add r5, r5, r1 + cmp fp, r6 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + add r7, r7, #4 + ble .L10373 +.L10431: + cmp r4, sl + cmpcc ip, r8 + bcc .L11181 + b .L10373 +.L10418: + cmp r4, r8 + bcs .L10373 +.L11162: + mov r3, r4, asr #1 + and sl, r3, #3 + mov r3, r4, asr #3 + mov r3, r3, asl #5 + mov r2, r4, asr #1 + tst r4, #1 + add ip, r3, r1 + and r6, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r6] @ zero_extendqisi2 + ldrneb r3, [ip, sl] @ zero_extendqisi2 + ldr lr, [sp, #28] + movne r2, r3, lsr #4 + andeq r2, r3, #15 + cmp r2, #0 + orr r3, r2, lr + ldr r2, [sp, #88] + ldr ip, [sp, #56] + add r5, r5, #1 + orr r3, r2, r3 + strne r3, [r7, #0] + add r0, r0, ip + cmp fp, r5 + mov r4, r0, asr #8 + add r7, r7, #4 + bgt .L10418 + b .L10373 +.L10386: + cmp r4, r8 + bcs .L10373 +.L11160: + ldr r1, [sp, #48] + mov r3, r4, asr #3 + add r0, r0, r1 + add r3, lr, r3, asl #6 + and r1, r4, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r5, [sp, #28] + cmp r2, #0 + add ip, ip, #1 + orr r3, r5, r2 + strne r3, [r7, #0] + cmp r9, ip + mov r4, r0, asr #8 + add r7, r7, #4 + bgt .L10386 + b .L10373 +.L11176: + ldr lr, [sp, #12] + rsb r1, r6, lr + rsb lr, r1, r8 + cmp lr, #0 + ble .L10373 + ldr r0, [sp, #8] + add r3, r6, r8 + cmp r0, r3 + bhi .L10929 + mov r3, r1, lsr #3 + ands r0, r1, #7 + sub r6, ip, r3, asl #6 + bne .L10931 + ldr r5, [sp, #92] + ldr r4, [sp, #68] +.L10933: + movs lr, r5, lsr #3 + beq .L10991 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L10993: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L10994 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #0] +.L10994: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L11003 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #28] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #24] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #20] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #16] +.L11003: + add ip, ip, #1 + cmp ip, lr + sub r0, r0, #64 + add r1, r1, #32 + bne .L10993 + rsb r3, lr, lr, asl #26 + add r6, r6, r3, asl #6 + add r4, r4, lr, asl #5 +.L10991: + ands r0, r5, #7 + beq .L10373 + cmp r0, #3 + ldrls r2, [r6, #4] + bls .L11026 + ldr r2, [r6, #4] + cmp r2, #0 + beq .L11016 + ands r3, r2, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #28] + orrne r3, r1, r3 + strne r3, [r4, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #0] +.L11016: + subs r0, r0, #4 + ldr r2, [r6, #0] + addne r4, r4, #16 + beq .L10373 +.L11026: + mov r1, #0 +.L11027: + ldr r5, [sp, #28] + movs r3, r2, lsr #24 + orr r3, r5, r3 + strne r3, [r4, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bhi .L11027 + b .L10373 +.L11201: + .align 2 +.L11200: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_height_table + .word obj_width_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L11175: + ldr lr, [sp, #12] + rsb r1, r6, lr + rsb lr, r1, r8 + cmp lr, #0 + ble .L10373 + ldr r0, [sp, #8] + add r3, r6, r8 + cmp r0, r3 + bhi .L10709 + mov r3, r1, lsr #3 + ands r0, r1, #7 + add r6, ip, r3, asl #6 + bne .L10711 + ldr r5, [sp, #92] + ldr r4, [sp, #68] +.L10713: + movs lr, r5, lsr #3 + beq .L10771 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L10773: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L10774 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #12] +.L10774: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L10783 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #28] +.L10783: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #64 + add r1, r1, #32 + bne .L10773 + add r6, r6, lr, asl #6 + add r4, r4, lr, asl #5 +.L10771: + ands r0, r5, #7 + beq .L10373 + cmp r0, #3 + ldrls r1, [r6, #0] + bls .L10806 + ldr r2, [r6, #0] + cmp r2, #0 + beq .L10796 + ands r3, r2, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #28] + orrne r3, r1, r3 + strne r3, [r4, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #12] +.L10796: + subs r0, r0, #4 + ldr r1, [r6, #4] + addne r4, r4, #16 + beq .L10373 +.L10806: + mov r2, #0 +.L10807: + ldr r5, [sp, #28] + ands r3, r1, #255 + orr r3, r5, r3 + strne r3, [r4, r2, asl #2] + add r2, r2, #1 + cmp r0, r2 + mov r1, r1, lsr #8 + bhi .L10807 + b .L10373 +.L11174: + rsb r4, r6, ip + rsb ip, r4, r8 + cmp ip, #0 + ble .L10373 + ldr lr, [sp, #8] + add r3, r6, r8 + cmp lr, r3 + bhi .L10579 + mov r3, r4, lsr #3 + ands lr, r4, #7 + sub r0, r0, r3, asl #5 + bne .L10581 + ldr r2, [sp, #92] + ldr ip, [sp, #68] +.L10583: + movs r7, r2, lsr #3 + beq .L10600 + mov r5, ip + mov lr, r0 + mov r6, #0 +.L10602: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L10603 + ands r3, r4, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] +.L10603: + add r6, r6, #1 + cmp r6, r7 + sub lr, lr, #32 + add r5, r5, #32 + bne .L10602 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add ip, ip, r7, asl #5 +.L10600: + ands lr, r2, #7 + beq .L10373 + ldr r0, [r0, #0] + mov r2, #0 +.L10622: + ldr r5, [sp, #28] + movs r3, r0, lsr #28 + orr r3, r5, r3 + orr r3, r1, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r2, lr + mov r0, r0, asl #4 + bne .L10622 + b .L10373 +.L11173: + ldr r5, [sp, #12] + rsb r4, r6, r5 + rsb r5, r4, r8 + cmp r5, #0 + ble .L10373 + add r3, r6, r8 + ldr r6, [sp, #8] + cmp r6, r3 + bhi .L10449 + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add r5, r0, r2 + bne .L10451 + ldr r7, [sp, #92] + ldr r6, [sp, #68] +.L10453: + movs r4, r7, lsr #3 + beq .L10470 + mov ip, r6 + mov r0, r5 + mov lr, #0 +.L10472: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L10473 + ands r3, r2, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #24] + movs r3, r2, lsr #28 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r1, r3 + strne r3, [ip, #28] +.L10473: + add lr, lr, #1 + cmp r4, lr + add r0, r0, #32 + add ip, ip, #32 + bne .L10472 + mov r3, r4, asl #5 + add r5, r5, r3 + add r6, r6, r3 +.L10470: + ands ip, r7, #7 + beq .L10373 + ldr r2, [r5, #0] + mov r0, #0 +.L10492: + ldr r4, [sp, #28] + ands r3, r2, #15 + orr r3, r4, r3 + orr r3, r1, r3 + strne r3, [r6, r0, asl #2] + add r0, r0, #1 + cmp r0, ip + mov r2, r2, lsr #4 + bne .L10492 + b .L10373 +.L11198: + mov r6, #0 +.L10395: + cmp r4, sl + movcc r3, #0 + movcs r3, #1 + cmp r8, ip + orrls r3, r3, #1 + cmp r3, #0 + beq .L11161 + b .L10373 +.L10396: + cmp r4, sl + cmpcc ip, r8 + bcs .L10373 +.L11161: + ldr r1, [sp, #48] + and r3, r4, #7 + mov r2, ip, asr #3 + mov r3, r3, asl #3 + add r5, r5, r1 + add r3, r3, r2, asl #6 + mov r1, r4, asr #3 + ldr r2, [sp, #84] + add r3, r3, r1, asl #10 + and r0, ip, #7 + add r3, r3, r2 + ldrb r2, [r3, r0] @ zero_extendqisi2 + ldr r0, [sp, #28] + cmp r2, #0 + add r6, r6, #1 + orr r3, r0, r2 + strne r3, [r7, #0] + add lr, lr, fp + cmp r9, r6 + mov r4, lr, asr #8 + mov ip, r5, asr #8 + add r7, r7, #4 + bgt .L10396 + b .L10373 +.L10657: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L10373 + ldr r7, [sp, #4] + mov ip, #0 + add r2, r7, r6, asl #2 + b .L10687 +.L11182: + sub r0, r0, #32 + add r2, r2, #32 +.L10687: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L10688 + ands r3, r4, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [r2, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [r2, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #4] + movs r3, r4, lsr #28 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #0] +.L10688: + add ip, ip, #1 + cmp lr, ip + bne .L11182 + b .L10373 +.L11082: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L10373 + ldr r5, [sp, #4] + ldr r3, .L11200+28 + add r2, r5, r6, asl #2 + add r0, r0, r3 + mov r1, #0 + b .L11126 +.L11183: + sub ip, ip, #64 + add r2, r2, #32 +.L11126: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L11127 + ands r3, r4, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r2, #12] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r2, #8] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r2, #4] + movs r3, r4, lsr #24 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r2, #0] +.L11127: + ldr r4, [ip, #0] + cmp r4, #0 + beq .L11136 + ands r3, r4, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r2, #28] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r2, #24] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r2, #20] + movs r3, r4, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r2, #16] +.L11136: + add r1, r1, #1 + cmp lr, r1 + sub r0, r0, #64 + bne .L11183 + b .L10373 +.L10527: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L10373 + ldr r7, [sp, #4] + mov ip, #0 + add r2, r7, r6, asl #2 + b .L10557 +.L11184: + add r0, r0, #32 + add r2, r2, #32 +.L10557: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L10558 + ands r3, r4, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #0] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [r2, #4] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #8] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #12] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r2, #16] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [r2, #20] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r2, #24] + movs r3, r4, lsr #28 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r2, #28] +.L10558: + add ip, ip, #1 + cmp lr, ip + bne .L11184 + b .L10373 +.L10862: + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs lr, r3, asr #3 + beq .L10373 + ldr r1, [sp, #4] + ldr r3, .L11200+32 + add r2, r1, r6, asl #2 + add r0, r0, r3 + mov r1, #0 + b .L10906 +.L11185: + add ip, ip, #64 + add r2, r2, #32 +.L10906: + ldr r4, [ip, #0] + cmp r4, #0 + beq .L10907 + ands r3, r4, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r2, #0] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r2, #4] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r2, #8] + movs r3, r4, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r2, #12] +.L10907: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L10916 + ands r3, r4, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r2, #16] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r2, #20] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r2, #24] + movs r3, r4, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r2, #28] +.L10916: + add r1, r1, #1 + cmp lr, r1 + add r0, r0, #64 + bne .L11185 + b .L10373 +.L10709: + mov r3, r1, lsr #3 + ands r2, r1, #7 + add r0, ip, r3, asl #6 + ldreq r1, [sp, #68] + beq .L10813 + cmp r2, #3 + rsb ip, r2, #8 + bhi .L11186 + subs r4, ip, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #68] + beq .L10826 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + mov r1, #0 +.L10827: + ands r3, r2, #255 + ldr r5, [sp, #28] + ldrne r6, [sp, #68] + orr r3, r5, r3 + strne r3, [r6, r1, asl #2] + add r1, r1, #1 + cmp r1, r4 + mov r2, r2, lsr #8 + bne .L10827 + ldr r7, [sp, #68] + add r3, r7, ip, asl #2 + sub r1, r3, #16 +.L10826: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L10832 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #12] +.L10832: + add r1, r1, #16 +.L10818: + add r0, r0, #64 +.L10813: + movs lr, lr, lsr #3 + beq .L10373 + mov ip, #0 + b .L10842 +.L11187: + add r0, r0, #64 + add r1, r1, #32 +.L10842: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L10843 + ands r3, r2, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r1, #12] +.L10843: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L10852 + ands r3, r2, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #28] +.L10852: + add ip, ip, #1 + cmp lr, ip + bne .L11187 + b .L10373 +.L10579: + ands r2, r4, #7 + mov r3, r4, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r5, [sp, #68] + beq .L10628 + rsbs r5, r2, #8 + ldr lr, [r0, #0] + ldreq r5, [sp, #68] + beq .L10631 + mov r3, r2, asl #2 + mov r4, lr, asl r3 + mov lr, #0 +.L10632: + ldr r6, [sp, #28] + movs r3, r4, lsr #28 + ldrne r7, [sp, #68] + orr r3, r6, r3 + orr r3, r1, r3 + strne r3, [r7, lr, asl #2] + add lr, lr, #1 + cmp r5, lr + mov r4, r4, asl #4 + bne .L10632 + ldr r8, [sp, #68] + add r5, r8, r5, asl #2 +.L10631: + sub r0, r0, #32 +.L10628: + movs ip, ip, lsr #3 + beq .L10373 + mov r2, #0 + b .L10638 +.L11188: + sub r0, r0, #32 + add r5, r5, #32 +.L10638: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L10639 + ands r3, r4, #15 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + orrne r3, r1, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [r5, #0] +.L10639: + add r2, r2, #1 + cmp r2, ip + bne .L11188 + b .L10373 +.L10929: + ands r0, r1, #7 + mov r3, r1, lsr #3 + sub r2, ip, r3, asl #6 + ldreq r0, [sp, #68] + beq .L11033 + cmp r0, #3 + rsb ip, r0, #8 + bhi .L11189 + subs r4, ip, #4 + ldr r1, [r2, #4] + ldreq r0, [sp, #68] + beq .L11046 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r0, #0 +.L11047: + movs r3, r1, lsr #24 + ldr r5, [sp, #28] + ldrne r6, [sp, #68] + orr r3, r5, r3 + strne r3, [r6, r0, asl #2] + add r0, r0, #1 + cmp r4, r0 + mov r1, r1, asl #8 + bne .L11047 + ldr r7, [sp, #68] + add r3, r7, ip, asl #2 + sub r0, r3, #16 +.L11046: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L11052 + ands r3, r1, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r0, #0] +.L11052: + add r0, r0, #16 +.L11038: + sub r2, r2, #64 +.L11033: + movs lr, lr, lsr #3 + beq .L10373 + mov ip, #0 + b .L11062 +.L11190: + sub r2, r2, #64 + add r0, r0, #32 +.L11062: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L11063 + ands r3, r1, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r1, [sp, #28] + orrne r3, r1, r3 + strne r3, [r0, #0] +.L11063: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L11072 + ands r3, r1, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r0, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r0, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + strne r3, [r0, #20] + movs r3, r1, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r0, #16] +.L11072: + add ip, ip, #1 + cmp ip, lr + bne .L11190 + b .L10373 +.L10449: + mov r3, r4, lsr #3 + mov r2, r3, asl #5 + ands r3, r4, #7 + add lr, r0, r2 + ldreq ip, [sp, #68] + beq .L10498 + rsbs r4, r3, #8 + ldr r0, [r0, r2] + ldreq ip, [sp, #68] + beq .L10501 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L10502: + ldr r6, [sp, #28] + ands r3, r0, #15 + ldrne r7, [sp, #68] + orr r3, r6, r3 + orr r3, r1, r3 + strne r3, [r7, r2, asl #2] + add r2, r2, #1 + cmp r2, r4 + mov r0, r0, lsr #4 + bne .L10502 + ldr r8, [sp, #68] + add ip, r8, r4, asl #2 +.L10501: + add lr, lr, #32 +.L10498: + movs r4, r5, lsr #3 + beq .L10373 + mov r0, #0 + b .L10508 +.L11191: + add lr, lr, #32 + add ip, ip, #32 +.L10508: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L10509 + ands r3, r2, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [ip, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [ip, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [ip, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r1, r3 + strne r3, [ip, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r6, [sp, #28] + orrne r3, r6, r3 + orrne r3, r1, r3 + strne r3, [ip, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r1, r3 + strne r3, [ip, #24] + movs r3, r2, lsr #28 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r1, r3 + strne r3, [ip, #28] +.L10509: + add r0, r0, #1 + cmp r0, r4 + bne .L11191 + b .L10373 +.L10711: + ldr r1, [sp, #92] + rsb ip, r0, #8 + cmp r1, ip + blt .L11192 + cmp r0, #3 + bls .L10744 + cmp ip, #0 + ldr r2, [r6, #4] + ldreq r4, [sp, #68] + beq .L10748 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L10749: + ands r3, r1, #255 + ldr r8, [sp, #28] + ldrne lr, [sp, #68] + orr r3, r8, r3 + strne r3, [lr, r2, asl #2] + add r2, r2, #1 + cmp ip, r2 + mov r1, r1, lsr #8 + bne .L10749 + ldr r0, [sp, #68] + add r4, r0, ip, asl #2 +.L10748: + ldr r3, [sp, #92] + add r6, r6, #64 + rsb r5, ip, r3 + b .L10713 +.L10581: + ldr r2, [sp, #92] + rsb r5, lr, #8 + cmp r2, r5 + blt .L11193 + cmp r5, #0 + ldr r2, [r0, #0] + ldreq ip, [sp, #68] + beq .L10594 + mov r3, lr, asl #2 + mov r4, r2, asl r3 + mov lr, #0 +.L10595: + ldr r7, [sp, #28] + movs r3, r4, lsr #28 + ldrne r8, [sp, #68] + orr r3, r7, r3 + orr r3, r1, r3 + strne r3, [r8, lr, asl #2] + add lr, lr, #1 + cmp r5, lr + mov r4, r4, asl #4 + bne .L10595 + ldr lr, [sp, #68] + add ip, lr, r5, asl #2 +.L10594: + ldr r3, [sp, #92] + sub r0, r0, #32 + rsb r2, r5, r3 + b .L10583 +.L10451: + ldr r7, [sp, #92] + rsb lr, r3, #8 + cmp r7, lr + blt .L11194 + cmp lr, #0 + ldr r2, [r5, #0] + ldreq r6, [sp, #68] + beq .L10464 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + mov r0, #0 +.L10465: + ldr r4, [sp, #28] + ands r3, r2, #15 + ldrne r6, [sp, #68] + orr r3, r4, r3 + orr r3, r1, r3 + strne r3, [r6, r0, asl #2] + add r0, r0, #1 + cmp lr, r0 + mov r2, r2, lsr #4 + bne .L10465 + ldr r7, [sp, #68] + add r6, r7, lr, asl #2 +.L10464: + ldr r8, [sp, #92] + add r5, r5, #32 + rsb r7, lr, r8 + b .L10453 +.L10931: + ldr r1, [sp, #92] + rsb ip, r0, #8 + cmp r1, ip + blt .L11195 + cmp r0, #3 + bls .L10964 + cmp ip, #0 + ldr r2, [r6, #0] + ldreq r4, [sp, #68] + beq .L10968 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L10969: + movs r3, r2, lsr #24 + ldr r8, [sp, #28] + ldrne lr, [sp, #68] + orr r3, r8, r3 + strne r3, [lr, r1, asl #2] + add r1, r1, #1 + cmp ip, r1 + mov r2, r2, asl #8 + bne .L10969 + ldr r0, [sp, #68] + add r4, r0, ip, asl #2 +.L10968: + ldr r3, [sp, #92] + sub r6, r6, #64 + rsb r5, ip, r3 + b .L10933 +.L11195: + cmp r1, #0 + ble .L10373 + cmp r0, #3 + bls .L10937 + ldr r2, [r6, #0] + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L10940: + movs r3, r2, lsr #24 + ldr r4, [sp, #28] + ldrne r5, [sp, #68] + orr r3, r4, r3 + ldr r6, [sp, #92] + strne r3, [r5, r1, asl #2] + add r1, r1, #1 + cmp r6, r1 + mov r2, r2, asl #8 + bne .L10940 + b .L10373 +.L11194: + cmp r7, #0 + ble .L10373 + ldr r2, [r0, r2] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L10458: + ldr r8, [sp, #28] + ands r3, r0, #15 + ldrne ip, [sp, #68] + orr r3, r8, r3 + orr r3, r1, r3 + ldr lr, [sp, #92] + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp lr, r2 + mov r0, r0, lsr #4 + bne .L10458 + b .L10373 +.L11193: + cmp r2, #0 + ble .L10373 + ldr r2, [r0, #0] + mov r3, lr, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L10588: + ldr r4, [sp, #28] + movs r3, r0, lsr #28 + ldrne r5, [sp, #68] + orr r3, r4, r3 + orr r3, r1, r3 + ldr r6, [sp, #92] + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r6, r2 + mov r0, r0, asl #4 + bne .L10588 + b .L10373 +.L11189: + cmp ip, #0 + ldr r1, [r2, #0] + ldreq r0, [sp, #68] + beq .L11038 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r1, asl r3 + mov r0, #0 +.L11039: + movs r3, r1, lsr #24 + ldr r6, [sp, #28] + ldrne r7, [sp, #68] + orr r3, r6, r3 + strne r3, [r7, r0, asl #2] + add r0, r0, #1 + cmp r0, ip + mov r1, r1, asl #8 + bne .L11039 + ldr r8, [sp, #68] + sub r2, r2, #64 + add r0, r8, ip, asl #2 + b .L11033 +.L11186: + cmp ip, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #68] + beq .L10818 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + mov r1, #0 +.L10819: + ands r3, r2, #255 + ldr r6, [sp, #28] + ldrne r7, [sp, #68] + orr r3, r6, r3 + strne r3, [r7, r1, asl #2] + add r1, r1, #1 + cmp r1, ip + mov r2, r2, lsr #8 + bne .L10819 + ldr r8, [sp, #68] + add r0, r0, #64 + add r1, r8, ip, asl #2 + b .L10813 +.L11192: + cmp r1, #0 + ble .L10373 + cmp r0, #3 + bls .L10717 + ldr r2, [r6, #4] + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L10720: + ands r3, r1, #255 + ldr r4, [sp, #28] + ldrne r5, [sp, #68] + orr r3, r4, r3 + ldr r6, [sp, #92] + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r6, r2 + mov r1, r1, lsr #8 + bne .L10720 + b .L10373 +.L11199: + mov r6, #0 + b .L10431 +.L10964: + subs lr, ip, #4 + ldr r2, [r6, #4] + ldreq r1, [sp, #68] + beq .L10976 + mov r3, r0, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L10977: + movs r3, r2, lsr #24 + ldr r4, [sp, #28] + ldrne r5, [sp, #68] + orr r3, r4, r3 + strne r3, [r5, r1, asl #2] + add r1, r1, #1 + cmp lr, r1 + mov r2, r2, asl #8 + bne .L10977 + ldr r7, [sp, #68] + add r3, r7, ip, asl #2 + sub r1, r3, #16 +.L10976: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L10982 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r0, [sp, #28] + orrne r3, r0, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r1, #0] +.L10982: + add r4, r1, #16 + b .L10968 +.L10744: + subs lr, ip, #4 + ldr r2, [r6, #0] + ldreq r1, [sp, #68] + beq .L10756 + mov r3, r0, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L10757: + ands r3, r1, #255 + ldr r4, [sp, #28] + ldrne r5, [sp, #68] + orr r3, r4, r3 + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r2, lr + mov r1, r1, lsr #8 + bne .L10757 + ldr r7, [sp, #68] + add r3, r7, ip, asl #2 + sub r1, r3, #16 +.L10756: + ldr r2, [r6, #4] + cmp r2, #0 + beq .L10762 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r0, [sp, #28] + orrne r3, r0, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r1, #12] +.L10762: + add r4, r1, #16 + b .L10748 +.L11197: + ldr r5, [sp, #20] + b .L11162 +.L11196: + mov ip, fp + b .L11160 +.L10937: + ldr r7, [sp, #92] + mov r3, r0, asl #3 + ldr r1, [r6, #4] + add r2, r7, r0 + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L10944 + cmp r7, #0 + movne r2, #0 + beq .L10373 +.L10960: + movs r3, r1, lsr #24 + ldr r5, [sp, #28] + ldrne r6, [sp, #68] + orr r3, r5, r3 + ldr r7, [sp, #92] + strne r3, [r6, r2, asl #2] + add r2, r2, #1 + cmp r7, r2 + mov r1, r1, asl #8 + bne .L10960 + b .L10373 +.L10717: + ldr r7, [sp, #92] + ldr r3, [r6, #0] + add r2, r7, r0 + cmp r2, #4 + mov r1, r0, asl #3 + mov r2, r3, lsr r1 + bhi .L10724 + cmp r7, #0 + movne r1, #0 + beq .L10373 +.L10740: + ands r3, r2, #255 + ldr r5, [sp, #28] + ldrne r6, [sp, #68] + orr r3, r5, r3 + ldr r7, [sp, #92] + strne r3, [r6, r1, asl #2] + add r1, r1, #1 + cmp r7, r1 + mov r2, r2, lsr #8 + bne .L10740 + b .L10373 +.L10944: + rsbs r0, r0, #4 + ldreq ip, [sp, #68] + beq .L10949 + mov r2, #0 +.L10950: + movs r3, r1, lsr #24 + ldr r8, [sp, #28] + ldrne ip, [sp, #68] + orr r3, r8, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r2, r0 + mov r1, r1, asl #8 + bne .L10950 + ldr lr, [sp, #68] + add ip, lr, r0, asl #2 +.L10949: + ldr r1, [sp, #92] + ldr r2, [r6, #0] + subs r0, r1, r0 + beq .L10373 + mov r1, #0 +.L10956: + ldr r4, [sp, #28] + movs r3, r2, lsr #24 + orr r3, r4, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, asl #8 + bne .L10956 + b .L10373 +.L10724: + rsbs r0, r0, #4 + ldreq ip, [sp, #68] + beq .L10729 + mov r1, #0 +.L10730: + ands r3, r2, #255 + ldr r8, [sp, #28] + ldrne ip, [sp, #68] + orr r3, r8, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L10730 + ldr lr, [sp, #68] + add ip, lr, r0, asl #2 +.L10729: + ldr r1, [sp, #92] + ldr r2, [r6, #4] + subs r0, r1, r0 + beq .L10373 + mov r1, #0 +.L10736: + ldr r4, [sp, #28] + ands r3, r2, #255 + orr r3, r4, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L10736 + b .L10373 + .size render_scanline_obj_color32_2D, .-render_scanline_obj_color32_2D + .align 2 + .global render_scanline_obj_alpha_obj_1D + .type render_scanline_obj_alpha_obj_1D, %function +render_scanline_obj_alpha_obj_1D: + @ args = 0, pretend = 0, frame = 96 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L12434 + sub sp, sp, #96 + ldrh lr, [r5, #80] + mov r4, r0 + mov ip, lr, lsr #11 + and ip, ip, #2 + mov lr, lr, asl #27 + orr ip, ip, lr, lsr #31 + mov ip, ip, asl #9 + orr ip, ip, #256 + tst ip, #512 + str r1, [sp, #8] + str ip, [sp, #20] + str r2, [sp, #4] + str r3, [sp, #0] + beq .L12407 + ldrh r5, [r5, #6] + add r3, r0, r0, asl #2 + ldr r2, .L12434+4 + add r3, r5, r3, asl #5 + ldr r2, [r2, r3, asl #2] + str r5, [sp, #32] + str r2, [sp, #36] + cmp r2, #0 + ldr r2, .L12434+8 + add r3, r2, r3, asl #7 + str r3, [sp, #40] + beq .L12381 + ldr r1, [sp, #8] + ldmia sp, {r0, r2} @ phole ldm + mov r3, #0 + add r0, r0, r1, asl #2 + rsb r2, r1, r2 + str r0, [sp, #68] + str r2, [sp, #92] + str r3, [sp, #24] + mov r4, r3 +.L11207: + ldr r5, [sp, #40] + ldr r6, .L12434+20 + ldrb r3, [r4, r5] @ zero_extendqisi2 + ldr r8, .L12434+12 + mov r3, r3, asl #3 + ldrh lr, [r3, r6] + add r3, r3, r6 + ldrh r4, [r3, #2] + and r0, lr, #255 + mov r5, lr, lsr #12 + and r2, r5, #12 + cmp r0, #160 + ldrh r3, [r3, #4] + ldr sl, .L12434+16 + orr r1, r2, r4, lsr #14 + subgt r0, r0, #256 + mov r2, r4, asl #23 + tst lr, #256 + str r3, [sp, #28] + mov r6, r2, asr #23 + ldr r7, [r8, r1, asl #2] + ldr r9, [sl, r1, asl #2] + beq .L11210 + tst lr, #8192 + beq .L11212 + ldr fp, .L12434+20 + mov r3, r4, lsr #4 + add r2, r7, r7, lsr #31 + and r3, r3, #992 + tst lr, #512 + add r3, r3, fp + mov lr, r2, asr #1 + add r1, r9, r9, lsr #31 + ldr r2, [sp, #8] + mov r4, r1, asr #1 + ldrh sl, [r3, #30] + ldrh r5, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq r8, r7 + moveq fp, lr + moveq ip, r4 + movne r8, r7, asl #1 + movne fp, lr, asl #1 + movne ip, r4, asl #1 + cmp r6, r2 + str r3, [sp, #12] + bge .L11217 + rsb r2, r6, r2 + rsb r8, r2, r8 + cmp r8, #0 + ble .L11219 + ldr r6, [sp, #8] + rsb fp, r2, fp +.L11217: + ldr r2, [sp, #4] + add r3, r6, r8 + cmp r3, r2 + blt .L11221 + rsb r8, r6, r2 + cmp r8, #0 + ble .L11219 +.L11221: + mov r3, r5, asl #16 + mov r2, r1, asl #16 + ldr r5, [sp, #12] + mov r1, sl, asl #16 + mov lr, lr, asl #8 + add r0, r0, ip + str lr, [sp, #80] + mov ip, r1, asr #16 + ldr lr, [sp, #0] + ldr r1, [sp, #32] + cmp r5, #0 + mov r2, r2, asr #16 + add r5, lr, r6, asl #2 + mov sl, r3, asr #16 + str r2, [sp, #44] + mov r4, r4, asl #8 + rsb lr, r0, r1 + bne .L11223 + mla r3, lr, ip, r4 + mov r0, r3, asr #8 + cmp r0, r9 + bcs .L11219 + cmp r7, #0 + ldr r4, [sp, #28] + add r3, r7, #7 + movge r3, r7 + mov r3, r3, asr #3 + mov r2, r4, asl #22 + mov r3, r3, asl #1 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L12434+24 + add r0, r0, ip, asl #2 + cmp r8, #0 + add r6, r3, r0, asl #3 + ble .L11219 + ldr r3, [sp, #44] + mul r2, sl, fp + mul r3, lr, r3 + ldr r9, [sp, #80] + rsb r3, r2, r3 + add r0, r9, r3 + mov r2, r0, asr #8 + cmp r7, r2 + ldrls lr, [sp, #12] + bls .L11229 + b .L12431 +.L11230: + cmp r7, r2 + bhi .L12395 +.L11229: + add lr, lr, #1 + add r0, r0, sl + cmp r8, lr + mov r2, r0, asr #8 + add r5, r5, #4 + bne .L11230 +.L11219: + ldr r9, [sp, #24] + ldr sl, [sp, #36] + add r9, r9, #1 + cmp r9, sl + str r9, [sp, #24] + beq .L12381 + ldr r4, [sp, #24] + b .L11207 +.L11210: + ldr r1, [sp, #32] + tst r4, #8192 + rsb ip, r0, r1 + rsbne r3, ip, r9 + subne ip, r3, #1 + mov r2, r4, asl #19 + and r3, r5, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L11219 + .p2align 2 +.L11300: + .word .L11296 + .word .L11297 + .word .L11298 + .word .L11299 +.L11296: + ldr r4, [sp, #28] + cmp r7, #0 + add r3, r7, #7 + mov r2, r4, asl #22 + movge r3, r7 + mov r5, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, r5, r3, r2 + ldr r8, [sp, #8] + and r1, ip, #7 + ldr r3, .L12434+24 + add r1, r1, r0, asl #3 + cmp r6, r8 + mov r2, r4, lsr #8 + add r0, r3, r1, asl #2 + and r8, r2, #240 + bge .L11301 + ldr r9, [sp, #8] + rsb lr, r6, r9 + rsb r5, lr, r7 + cmp r5, #0 + ble .L11219 + ldr sl, [sp, #4] + add r3, r6, r7 + cmp sl, r3 + bhi .L11304 + mov r3, lr, lsr #3 + mov r1, r3, asl #5 + ands r3, lr, #7 + add r6, r0, r1 + bne .L11306 + ldr sl, [sp, #92] + ldr r4, [sp, #68] +.L11308: + movs r7, sl, lsr #3 + beq .L11329 + mov r0, r4 + mov lr, r6 + mov r5, #0 +.L11331: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L11332 + ands r3, r1, #15 + beq .L11334 + ldr r2, [r0, #0] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L11334: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L11338 + ldr r2, [r0, #4] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L11338: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L11342 + ldr r2, [r0, #8] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L11342: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L11346 + ldr r2, [r0, #12] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L11346: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L11350 + ldr r2, [r0, #16] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L11350: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L11354 + ldr r2, [r0, #20] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L11354: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L11358 + ldr r2, [r0, #24] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L11358: + movs r3, r1, lsr #28 + beq .L11332 + ldr r2, [r0, #28] + orr r1, r8, r3 + tst r2, #256 + ldrne ip, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r1 + orrne r2, ip, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L11332: + add r5, r5, #1 + cmp r5, r7 + add lr, lr, #32 + add r0, r0, #32 + bne .L11331 + mov r3, r7, asl #5 + add r6, r6, r3 + add r4, r4, r3 +.L11329: + ands r5, sl, #7 + beq .L11219 + ldr ip, [r6, #0] + mov lr, #0 +.L11367: + ands r3, ip, #15 + beq .L11368 + ldr r1, [r4, #0] + ldr sl, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L11368: + add lr, lr, #1 + cmp r5, lr + mov ip, ip, lsr #4 + add r4, r4, #4 + bne .L11367 + b .L11219 +.L11297: + ldr r5, [sp, #28] + cmp r7, #0 + add r3, r7, #7 + mov r2, r5, asl #22 + movge r3, r7 + mov r5, r3, asr #3 + mov r2, r2, lsr #22 + mov r1, ip, lsr #3 + mla r0, r5, r1, r2 + subs r3, r7, #8 + submi r3, r7, #1 + ldr r8, [sp, #8] + ldr r9, [sp, #28] + add r0, r0, r3, asr #3 + and r2, ip, #7 + ldr r3, .L12434+24 + add r2, r2, r0, asl #3 + cmp r6, r8 + mov r1, r9, lsr #8 + add r0, r3, r2, asl #2 + and r8, r1, #240 + bge .L11505 + ldr sl, [sp, #8] + rsb lr, r6, sl + rsb sl, lr, r7 + cmp sl, #0 + ble .L11219 + ldr fp, [sp, #4] + add r3, r6, r7 + cmp fp, r3 + bhi .L11508 + mov r3, lr, lsr #3 + ands r4, lr, #7 + sub ip, r0, r3, asl #5 + bne .L11510 + ldr sl, [sp, #92] + ldr r5, [sp, #68] +.L11512: + movs r7, sl, lsr #3 + beq .L11533 + mov r0, r5 + mov r4, ip + mov r6, #0 +.L11535: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L11536 + ands r3, r1, #15 + beq .L11538 + ldr r2, [r0, #28] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L11538: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L11542 + ldr r2, [r0, #24] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L11542: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L11546 + ldr r2, [r0, #20] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L11546: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L11550 + ldr r2, [r0, #16] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L11550: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L11554 + ldr r2, [r0, #12] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L11554: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L11558 + ldr r2, [r0, #8] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L11558: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L11562 + ldr r2, [r0, #4] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L11562: + movs r3, r1, lsr #28 + beq .L11536 + ldr r2, [r0, #0] + orr r1, r8, r3 + tst r2, #256 + ldrne lr, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r1 + orrne r2, lr, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L11536: + add r6, r6, #1 + cmp r7, r6 + sub r4, r4, #32 + add r0, r0, #32 + bne .L11535 + rsb r3, r7, r7, asl #27 + add ip, ip, r3, asl #5 + add r5, r5, r7, asl #5 +.L11533: + ands r4, sl, #7 + beq .L11219 + ldr ip, [ip, #0] + mov lr, #0 +.L11571: + movs r3, ip, lsr #28 + beq .L11572 + ldr r1, [r5, #0] + ldr sl, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r5, #0] + streq r2, [r5, #0] +.L11572: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #4 + add r5, r5, #4 + bne .L11571 + b .L11219 +.L11298: + ldr r5, [sp, #28] + cmp r7, #0 + add r3, r7, #7 + mov r2, ip, lsr #3 + movge r3, r7 + mov r1, r5, asl #22 + mov r4, r3, asr #3 + mov r2, r2, asl #1 + mov r1, r1, lsr #22 + mla r0, r2, r4, r1 + and r3, ip, #7 + add r3, r3, r0, asl #2 + ldr r8, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L12434+24 + cmp r6, r8 + add ip, r0, r3 + bge .L11709 + rsb r0, r6, r8 + rsb r8, r0, r7 + cmp r8, #0 + ble .L11219 + ldr r9, [sp, #4] + add r3, r6, r7 + cmp r9, r3 + bhi .L11712 + mov r3, r0, lsr #3 + ands lr, r0, #7 + add r7, ip, r3, asl #6 + bne .L11714 + ldr r6, [sp, #92] + ldr r4, [sp, #68] +.L11716: + movs r5, r6, lsr #3 + beq .L11794 + mov r1, r4 + mov ip, r7 + mov lr, #0 +.L11796: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L11797 + ands r0, r2, #255 + beq .L11799 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L11799: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L11803 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L11803: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L11807 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L11807: + movs r0, r2, lsr #24 + beq .L11797 + ldr r2, [r1, #12] + tst r2, #256 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r0 + orrne r2, sl, r0 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L11797: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L11814 + ands r0, r2, #255 + beq .L11816 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L11816: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L11820 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L11820: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L11824 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L11824: + movs r2, r2, lsr #24 + beq .L11814 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L11814: + add lr, lr, #1 + cmp lr, r5 + add ip, ip, #64 + add r1, r1, #32 + bne .L11796 + add r7, r7, r5, asl #6 + add r4, r4, r5, asl #5 +.L11794: + ands r5, r6, #7 + beq .L11219 + cmp r5, #3 + ldrls ip, [r7, #0] + bls .L11853 + ldr r2, [r7, #0] + cmp r2, #0 + beq .L11835 + ands r1, r2, #255 + beq .L11837 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #20] + ldreq lr, [sp, #20] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L11837: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L11841 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r0, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L11841: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L11845 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L11845: + movs r1, r2, lsr #24 + beq .L11835 + ldr r2, [r4, #12] + tst r2, #256 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r1 + orrne r2, sl, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L11835: + subs r5, r5, #4 + ldr ip, [r7, #4] + addne r4, r4, #16 + beq .L11219 +.L11853: + mov lr, #0 +.L11854: + ands r3, ip, #255 + beq .L11855 + ldr r2, [r4, #0] + ldr r0, [sp, #20] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r4, #0] + streq r1, [r4, #0] +.L11855: + add lr, lr, #1 + cmp r5, lr + mov ip, ip, lsr #8 + add r4, r4, #4 + bhi .L11854 + b .L11219 +.L12435: + .align 2 +.L12434: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word obj_width_table + .word obj_height_table + .word oam_ram + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L11299: + cmp r7, #0 + add r2, r7, #7 + movge r2, r7 + subs r3, r7, #8 + submi r3, r7, #1 + mov r5, r2, asr #3 + mov r3, r3, asr #3 + mov r1, ip, lsr #3 + mla r0, r5, r1, r3 + ldr sl, [sp, #28] + and r3, ip, #7 + mov r2, sl, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + add r3, r3, r2, asl #2 + ldr fp, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L12434+24 + cmp r6, fp + add ip, r0, r3 + bge .L12045 + rsb r0, r6, fp + rsb r8, r0, r7 + cmp r8, #0 + ble .L11219 + ldr lr, [sp, #4] + add r3, r6, r7 + cmp lr, r3 + bhi .L12048 + mov r3, r0, lsr #3 + ands lr, r0, #7 + sub r8, ip, r3, asl #6 + bne .L12050 + ldr r7, [sp, #92] + ldr r4, [sp, #68] +.L12052: + movs r6, r7, lsr #3 + beq .L12130 + mov r0, r4 + mov lr, r8 + mov r5, #0 +.L12132: + ldr r2, [lr, #4] + cmp r2, #0 + beq .L12133 + ands r1, r2, #255 + beq .L12135 + ldr r3, [r0, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L12135: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L12139 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L12139: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L12143 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L12143: + movs r2, r2, lsr #24 + beq .L12133 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L12133: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L12150 + ands ip, r1, #255 + beq .L12152 + ldr r2, [r0, #28] + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L12152: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L12156 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L12156: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L12160 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L12160: + movs r1, r1, lsr #24 + beq .L12150 + ldr r2, [r0, #16] + tst r2, #256 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, ip, r1 + orrne r2, fp, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L12150: + add r5, r5, #1 + cmp r5, r6 + sub lr, lr, #64 + add r0, r0, #32 + bne .L12132 + rsb r3, r6, r6, asl #26 + add r8, r8, r3, asl #6 + add r4, r4, r6, asl #5 +.L12130: + ands r5, r7, #7 + beq .L11219 + cmp r5, #3 + ldrls ip, [r8, #4] + bls .L12189 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L12171 + ands r1, r2, #255 + beq .L12173 + ldr r3, [r4, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #20] + ldreq r0, [sp, #20] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r0, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L12173: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L12177 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L12177: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L12181 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L12181: + movs r2, r2, lsr #24 + beq .L12171 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L12171: + subs r5, r5, #4 + ldr ip, [r8, #0] + addne r4, r4, #16 + beq .L11219 +.L12189: + mov lr, #0 +.L12190: + movs r3, ip, lsr #24 + beq .L12191 + ldr r2, [r4, #0] + ldr r0, [sp, #20] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r4, #0] + streq r1, [r4, #0] +.L12191: + add lr, lr, #1 + cmp r5, lr + mov ip, ip, asl #8 + add r4, r4, #4 + bhi .L12190 + b .L11219 +.L11212: + ldr ip, .L12434+20 + mov r3, r4, lsr #4 + add r2, r7, r7, lsr #31 + and r3, r3, #992 + tst lr, #512 + add r3, r3, ip + mov lr, r2, asr #1 + add r1, r9, r9, lsr #31 + ldr r2, [sp, #8] + mov r4, r1, asr #1 + ldrh sl, [r3, #30] + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, r7 + moveq r5, lr + moveq ip, r4 + movne fp, r7, asl #1 + movne r5, lr, asl #1 + movne ip, r4, asl #1 + cmp r6, r2 + str r3, [sp, #16] + bge .L11254 + rsb r2, r6, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L11219 + ldr r6, [sp, #8] + rsb r5, r2, r5 +.L11254: + ldr r2, [sp, #4] + add r3, r6, fp + cmp r3, r2 + blt .L11257 + rsb fp, r6, r2 + cmp fp, #0 + ble .L11219 +.L11257: + mov r3, r8, asl #16 + mov r2, r1, asl #16 + ldr r8, [sp, #16] + mov r1, sl, asl #16 + ldr sl, [sp, #28] + mov lr, lr, asl #8 + add ip, r0, ip + cmp r8, #0 + mov r0, sl, lsr #8 + mov r8, r1, asr #16 + str lr, [sp, #88] + ldr r1, [sp, #32] + ldr lr, [sp, #0] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + and r0, r0, #240 + add sl, lr, r6, asl #2 + str r3, [sp, #52] + str r2, [sp, #56] + mov r4, r4, asl #8 + rsb lr, ip, r1 + str r0, [sp, #84] + bne .L11259 + mla r3, lr, r8, r4 + mov r0, r3, asr #8 + cmp r0, r9 + bcs .L11219 + ldr r4, [sp, #28] + cmp r7, #0 + add r3, r7, #7 + mov r2, r4, asl #22 + movge r3, r7 + mov r3, r3, asr #3 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L12434+24 + add r0, r0, ip, asl #3 + cmp fp, #0 + add r6, r3, r0, asl #2 + ble .L11219 + ldr r3, [sp, #56] + ldr r2, [sp, #52] + mul r3, lr, r3 + mul r2, r5, r2 + ldr r5, [sp, #88] + rsb r3, r2, r3 + add ip, r5, r3 + mov r1, ip, asr #8 + cmp r1, r7 + ldrcc r4, [sp, #16] + ldrcs r4, [sp, #16] + bcs .L11266 + b .L12397 +.L11267: + cmp r7, r2 + bhi .L11268 +.L11266: + ldr r8, [sp, #52] + add r4, r4, #1 + add ip, ip, r8 + cmp fp, r4 + mov r2, ip, asr #8 + add sl, sl, #4 + bne .L11267 + b .L11219 +.L12381: + add sp, sp, #96 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L11223: + ldr r0, [sp, #28] + cmp r7, #0 + add r1, r7, #7 + mov r2, r0, asl #22 + movge r1, r7 + ldr r3, .L12434+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #6 + cmp r8, #0 + str r2, [sp, #76] + str r1, [sp, #48] + ble .L11219 + ldr r1, [sp, #12] + mul r2, lr, ip + mov r3, r1, asl #16 + mov r6, r3, asr #16 + ldr r3, [sp, #44] + mul r1, r6, fp + mul r0, sl, fp + mul r3, lr, r3 + ldr fp, [sp, #80] + rsb r3, r0, r3 + rsb r2, r1, r2 + add ip, fp, r3 + add lr, r4, r2 + mov r1, ip, asr #8 + mov r0, lr, asr #8 + cmp r1, r7 + cmpcc r0, r9 + movcs r3, #0 + movcc r3, #1 + movcs r4, r3 + bcs .L11241 + b .L12432 +.L11242: + cmp r7, r1 + cmphi r9, r0 + bhi .L11244 +.L11241: + add r4, r4, #1 + add ip, ip, sl + add lr, lr, r6 + cmp r8, r4 + mov r1, ip, asr #8 + mov r0, lr, asr #8 + add r5, r5, #4 + bne .L11242 + b .L11219 +.L12410: + and r3, r0, #7 + mov r2, r1, asr #3 + mov r3, r3, asl #3 + add r3, r3, r2, asl #6 + ldr r2, [sp, #76] + and r1, r1, #7 + add r3, r3, r2 + mov r2, r0, asr #3 + ldr r0, [sp, #48] + mla r0, r2, r0, r3 + ldrb r0, [r0, r1] @ zero_extendqisi2 + cmp r0, #0 + beq .L11247 + ldr r3, [r5, #0] + ldr fp, [sp, #20] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r2, fp, r2 + orr r1, fp, r3, asl #16 + tst r3, #256 + orr r2, r0, r2 + orr r1, r0, r1 + strne r2, [r5, #0] + streq r1, [r5, #0] +.L11247: + add r4, r4, #1 + add ip, ip, sl + add lr, lr, r6 + cmp r8, r4 + mov r1, ip, asr #8 + mov r0, lr, asr #8 + add r5, r5, #4 + ble .L11219 +.L11244: + cmp r9, r0 + cmphi r7, r1 + bhi .L12410 + b .L11219 +.L11259: + ldr r3, [sp, #28] + cmp r7, #0 + add r1, r7, #7 + mov r2, r3, asl #22 + movge r1, r7 + ldr r3, .L12434+24 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #5 + cmp fp, #0 + str r2, [sp, #72] + str r1, [sp, #64] + ble .L11219 + ldr r6, [sp, #16] + ldr r0, [sp, #52] + mov r3, r6, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #60] + ldr r1, [sp, #60] + ldr r3, [sp, #56] + mul r2, lr, r8 + mul r1, r5, r1 + mul r0, r5, r0 + mul r3, lr, r3 + ldr r8, [sp, #88] + rsb r2, r1, r2 + rsb r3, r0, r3 + add r6, r8, r3 + add r5, r4, r2 + mov r3, r5, asr #8 + mov r4, r6, asr #8 + cmp r4, r7 + cmpcc r3, r9 + movcs r2, #0 + movcc r2, #1 + movcs r8, r2 + bcs .L11281 + b .L12433 +.L11282: + cmp r7, r4 + cmphi r9, r3 + bhi .L11284 +.L11281: + ldr ip, [sp, #52] + ldr lr, [sp, #60] + add r8, r8, #1 + add r6, r6, ip + add r5, r5, lr + cmp fp, r8 + mov r4, r6, asr #8 + mov r3, r5, asr #8 + add sl, sl, #4 + bne .L11282 + b .L11219 +.L12412: + ldr r2, [sp, #64] + and r0, r3, #7 + and ip, r3, #7 + mov r3, r3, asr #3 + mul r2, r3, r2 + ldr r3, [sp, #72] + ldr r1, [sp, #72] + add ip, r3, ip, asl #2 + mov r3, r4, asr #3 + add r0, r1, r0, asl #2 + mov lr, r4, asr #1 + mov r1, r4, asr #1 + add r2, r2, r3, asl #5 + tst r4, #1 + add r3, r0, r2 + and lr, lr, #3 + add r0, ip, r2 + and r1, r1, #3 + ldreqb r3, [r0, r1] @ zero_extendqisi2 + ldrneb r3, [r3, lr] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + ldr r4, [sp, #84] + cmp r0, #0 + orr r0, r0, r4 + beq .L11290 + ldr r2, [sl, #0] + ldr ip, [sp, #20] + mov r3, r2, lsr #16 + orr r1, ip, r0 + mov r3, r3, asl #16 + orr r0, ip, r0 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [sl, #0] + streq r0, [sl, #0] +.L11290: + ldr lr, [sp, #52] + ldr r0, [sp, #60] + add r8, r8, #1 + add r6, r6, lr + add r5, r5, r0 + cmp fp, r8 + add sl, sl, #4 + mov r4, r6, asr #8 + mov r3, r5, asr #8 + ble .L11219 +.L11284: + cmp r9, r3 + cmphi r7, r4 + bhi .L12412 + b .L11219 +.L11269: + cmp r7, r1 + bls .L11219 +.L12397: + mov r3, r1, asr #1 + and lr, r3, #3 + mov r3, r1, asr #3 + mov r3, r3, asl #5 + mov r2, r1, asr #1 + tst r1, #1 + and r0, r2, #3 + add r1, r3, r6 + add r2, r3, r6 + ldreqb r3, [r2, r0] @ zero_extendqisi2 + ldrneb r3, [r1, lr] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + ldr r9, [sp, #84] + cmp r2, #0 + orr r3, r2, r9 + beq .L11274 + ldr r2, [sl, #0] + ldr lr, [sp, #20] + tst r2, #256 + orr r1, lr, r3 + orr r0, lr, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r1, r3, r1 + orr r3, r0, r2, asl #16 + strne r1, [sl, #0] + streq r3, [sl, #0] +.L11274: + ldr r0, [sp, #52] + add r4, r4, #1 + add ip, ip, r0 + cmp fp, r4 + add sl, sl, #4 + mov r1, ip, asr #8 + bgt .L11269 + b .L11219 +.L11232: + cmp r7, r2 + bls .L11219 +.L12395: + mov r3, r2, asr #3 + add r3, r6, r3, asl #6 + and r2, r2, #7 + ldrb ip, [r3, r2] @ zero_extendqisi2 + cmp ip, #0 + beq .L11234 + ldr r3, [r5, #0] + ldr fp, [sp, #20] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r2, fp, r2 + orr r1, fp, r3, asl #16 + orr r4, ip, r2 + tst r3, #256 + orr r2, ip, r1 + strne r4, [r5, #0] + streq r2, [r5, #0] +.L11234: + add lr, lr, #1 + add r0, r0, sl + cmp r8, lr + add r5, r5, #4 + mov r2, r0, asr #8 + bgt .L11232 + b .L11219 +.L12045: + add r3, r6, r7 + ldr r7, [sp, #4] + cmp r3, r7 + bcs .L12413 + cmp r5, #0 + beq .L11219 + ldr r2, [sp, #0] + ldr r3, .L12434+28 + add r1, r2, r6, asl #2 + add r0, r0, r3 + mov r6, #0 + b .L12345 +.L12414: + sub ip, ip, #64 + add r1, r1, #32 +.L12345: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L12346 + ands lr, r2, #255 + beq .L12348 + ldr r3, [r1, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r7, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L12348: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L12352 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L12352: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L12356 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L12356: + movs r2, r2, lsr #24 + beq .L12346 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #20] + ldreq r4, [sp, #20] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r4, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L12346: + ldr lr, [ip, #0] + cmp lr, #0 + beq .L12363 + ands r4, lr, #255 + beq .L12365 + ldr r2, [r1, #28] + tst r2, #256 + ldrne r7, [sp, #20] + ldreq r8, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r7, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L12365: + mov r3, lr, lsr #8 + ands r2, r3, #255 + beq .L12369 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L12369: + mov r3, lr, lsr #16 + ands r2, r3, #255 + beq .L12373 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq r4, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, r4, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L12373: + movs lr, lr, lsr #24 + beq .L12363 + ldr r2, [r1, #16] + tst r2, #256 + ldrne r7, [sp, #20] + ldreq r8, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, lr + orrne r2, r7, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L12363: + add r6, r6, #1 + cmp r5, r6 + sub r0, r0, #64 + bne .L12414 + b .L11219 +.L11709: + add r3, r6, r7 + ldr r7, [sp, #4] + cmp r7, r3 + bls .L12415 + cmp r4, #0 + beq .L11219 + ldr fp, [sp, #0] + ldr r3, .L12434+32 + add r1, fp, r6, asl #2 + add r0, r0, r3 + mov r5, #0 + b .L12009 +.L12416: + add ip, ip, #64 + add r1, r1, #32 +.L12009: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L12010 + ands lr, r2, #255 + beq .L12012 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L12012: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L12016 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L12016: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L12020 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L12020: + movs lr, r2, lsr #24 + beq .L12010 + ldr r2, [r1, #12] + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, lr + orrne r2, r6, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L12010: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L12027 + ands lr, r2, #255 + beq .L12029 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L12029: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L12033 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L12033: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L12037 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L12037: + movs r2, r2, lsr #24 + beq .L12027 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L12027: + add r5, r5, #1 + cmp r4, r5 + add r0, r0, #64 + bne .L12416 + b .L11219 +.L11505: + ldr r1, [sp, #4] + add r3, r6, r7 + cmp r1, r3 + bls .L12417 + cmp r5, #0 + beq .L11219 + ldr fp, [sp, #0] + mov ip, #0 + add r1, fp, r6, asl #2 + b .L11674 +.L12418: + sub r0, r0, #32 + add r1, r1, #32 +.L11674: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L11675 + ands r3, lr, #15 + beq .L11677 + ldr r2, [r1, #28] + orr r4, r8, r3 + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, r4 + orrne r2, r6, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L11677: + mov r3, lr, lsr #4 + ands r3, r3, #15 + beq .L11681 + ldr r2, [r1, #24] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L11681: + mov r3, lr, lsr #8 + ands r3, r3, #15 + beq .L11685 + ldr r2, [r1, #20] + orr r4, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r6, r4 + orrne r2, fp, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L11685: + mov r3, lr, lsr #12 + ands r3, r3, #15 + beq .L11689 + ldr r2, [r1, #16] + orr r4, r8, r3 + tst r2, #256 + ldrne r7, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r4 + orrne r2, r7, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L11689: + mov r3, lr, lsr #16 + ands r3, r3, #15 + beq .L11693 + ldr r2, [r1, #12] + orr r4, r8, r3 + tst r2, #256 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, sl, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L11693: + mov r3, lr, lsr #20 + ands r3, r3, #15 + beq .L11697 + ldr r2, [r1, #8] + orr r4, r8, r3 + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, r4 + orrne r2, r6, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L11697: + mov r3, lr, lsr #24 + ands r3, r3, #15 + beq .L11701 + ldr r2, [r1, #4] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L11701: + movs r3, lr, lsr #28 + beq .L11675 + ldr r2, [r1, #0] + orr lr, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq r4, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r4, lr + orrne r2, fp, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L11675: + add ip, ip, #1 + cmp r5, ip + bne .L12418 + b .L11219 +.L11301: + ldr lr, [sp, #4] + add r3, r6, r7 + cmp lr, r3 + bls .L12419 + cmp r5, #0 + beq .L11219 + ldr fp, [sp, #0] + mov ip, #0 + add r1, fp, r6, asl #2 + b .L11470 +.L12420: + add r0, r0, #32 + add r1, r1, #32 +.L11470: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L11471 + ands r3, lr, #15 + beq .L11473 + ldr r2, [r1, #0] + orr r4, r8, r3 + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, r4 + orrne r2, r6, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L11473: + mov r3, lr, lsr #4 + ands r3, r3, #15 + beq .L11477 + ldr r2, [r1, #4] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L11477: + mov r3, lr, lsr #8 + ands r3, r3, #15 + beq .L11481 + ldr r2, [r1, #8] + orr r4, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r6, r4 + orrne r2, fp, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L11481: + mov r3, lr, lsr #12 + ands r3, r3, #15 + beq .L11485 + ldr r2, [r1, #12] + orr r4, r8, r3 + tst r2, #256 + ldrne r7, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r4 + orrne r2, r7, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L11485: + mov r3, lr, lsr #16 + ands r3, r3, #15 + beq .L11489 + ldr r2, [r1, #16] + orr r4, r8, r3 + tst r2, #256 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, sl, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L11489: + mov r3, lr, lsr #20 + ands r3, r3, #15 + beq .L11493 + ldr r2, [r1, #20] + orr r4, r8, r3 + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, r4 + orrne r2, r6, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L11493: + mov r3, lr, lsr #24 + ands r3, r3, #15 + beq .L11497 + ldr r2, [r1, #24] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L11497: + movs r3, lr, lsr #28 + beq .L11471 + ldr r2, [r1, #28] + orr lr, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq r4, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r4, lr + orrne r2, fp, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L11471: + add ip, ip, #1 + cmp r5, ip + bne .L12420 + b .L11219 +.L12407: + add sp, sp, #96 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_color32_1D +.L12419: + rsb ip, r6, lr + cmp ip, #0 + ble .L11219 + ldr r1, [sp, #0] + movs sl, ip, lsr #3 + add r7, r1, r6, asl #2 + beq .L11425 + mov r4, r7 + mov r6, r0 + mov r1, #0 +.L11427: + ldr lr, [r6, #0] + cmp lr, #0 + beq .L11428 + ands r3, lr, #15 + beq .L11430 + ldr r2, [r4, #0] + orr r5, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L11430: + mov r3, lr, lsr #4 + ands r3, r3, #15 + beq .L11434 + ldr r2, [r4, #4] + orr r5, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L11434: + mov r3, lr, lsr #8 + ands r3, r3, #15 + beq .L11438 + ldr r2, [r4, #8] + orr r5, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L11438: + mov r3, lr, lsr #12 + ands r3, r3, #15 + beq .L11442 + ldr r2, [r4, #12] + orr r5, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L11442: + mov r3, lr, lsr #16 + ands r3, r3, #15 + beq .L11446 + ldr r2, [r4, #16] + orr r5, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L11446: + mov r3, lr, lsr #20 + ands r3, r3, #15 + beq .L11450 + ldr r2, [r4, #20] + orr r5, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L11450: + mov r3, lr, lsr #24 + ands r3, r3, #15 + beq .L11454 + ldr r2, [r4, #24] + orr r5, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L11454: + movs r3, lr, lsr #28 + beq .L11428 + ldr r2, [r4, #28] + orr lr, r8, r3 + tst r2, #256 + ldrne r5, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r5, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L11428: + add r1, r1, #1 + cmp sl, r1 + add r6, r6, #32 + add r4, r4, #32 + bne .L11427 + mov r3, sl, asl #5 + add r0, r0, r3 + add r7, r7, r3 +.L11425: + ands r4, ip, #7 + beq .L11219 + ldr ip, [r0, #0] + mov lr, #0 +.L11463: + ands r3, ip, #15 + beq .L11464 + ldr r1, [r7, #0] + ldr sl, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r7, #0] + streq r2, [r7, #0] +.L11464: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, lsr #4 + add r7, r7, #4 + bne .L11463 + b .L11219 +.L12417: + rsb sl, r6, r1 + cmp sl, #0 + ble .L11219 + ldr r2, [sp, #0] + movs r7, sl, lsr #3 + add r6, r2, r6, asl #2 + beq .L11629 + mov lr, r6 + mov r5, r0 + mov ip, #0 +.L11631: + ldr r1, [r5, #0] + cmp r1, #0 + beq .L11632 + ands r3, r1, #15 + beq .L11634 + ldr r2, [lr, #28] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #28] + streq r3, [lr, #28] +.L11634: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L11638 + ldr r2, [lr, #24] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #24] + streq r3, [lr, #24] +.L11638: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L11642 + ldr r2, [lr, #20] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #20] + streq r3, [lr, #20] +.L11642: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L11646 + ldr r2, [lr, #16] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #16] + streq r3, [lr, #16] +.L11646: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L11650 + ldr r2, [lr, #12] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #12] + streq r3, [lr, #12] +.L11650: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L11654 + ldr r2, [lr, #8] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #8] + streq r3, [lr, #8] +.L11654: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L11658 + ldr r2, [lr, #4] + orr r4, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #4] + streq r3, [lr, #4] +.L11658: + movs r3, r1, lsr #28 + beq .L11632 + ldr r2, [lr, #0] + orr r1, r8, r3 + tst r2, #256 + ldrne r4, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r1 + orrne r2, r4, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #0] + streq r3, [lr, #0] +.L11632: + add ip, ip, #1 + cmp r7, ip + sub r5, r5, #32 + add lr, lr, #32 + bne .L11631 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r6, r6, r7, asl #5 +.L11629: + ands r4, sl, #7 + beq .L11219 + ldr ip, [r0, #0] + mov lr, #0 +.L11667: + movs r3, ip, lsr #28 + beq .L11668 + ldr r1, [r6, #0] + ldr sl, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r6, #0] + streq r2, [r6, #0] +.L11668: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #4 + add r6, r6, #4 + bne .L11667 + b .L11219 +.L12415: + rsb r8, r6, r7 + cmp r8, #0 + ble .L11219 + ldr r9, [sp, #0] + movs r7, r8, lsr #3 + add r6, r9, r6, asl #2 + beq .L11942 + ldr r3, .L12436 + mov lr, r6 + add r0, r0, r3 + mov r5, ip + mov r1, #0 +.L11944: + ldr r2, [r5, #0] + cmp r2, #0 + beq .L11945 + ands r4, r2, #255 + beq .L11947 + ldr r3, [lr, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #0] + streq r3, [lr, #0] +.L11947: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L11951 + ldr r3, [lr, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #4] + streq r3, [lr, #4] +.L11951: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L11955 + ldr r3, [lr, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #8] + streq r3, [lr, #8] +.L11955: + movs r4, r2, lsr #24 + beq .L11945 + ldr r2, [lr, #12] + tst r2, #256 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r4 + orrne r2, sl, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #12] + streq r3, [lr, #12] +.L11945: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L11962 + ands r4, r2, #255 + beq .L11964 + ldr r3, [lr, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #16] + streq r3, [lr, #16] +.L11964: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L11968 + ldr r3, [lr, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #20] + streq r3, [lr, #20] +.L11968: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L11972 + ldr r3, [lr, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #24] + streq r3, [lr, #24] +.L11972: + movs r2, r2, lsr #24 + beq .L11962 + ldr r3, [lr, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [lr, #28] + streq r3, [lr, #28] +.L11962: + add r1, r1, #1 + cmp r7, r1 + add r5, r5, #64 + add lr, lr, #32 + add r0, r0, #64 + bne .L11944 + add ip, ip, r7, asl #6 + add r6, r6, r7, asl #5 +.L11942: + ands r4, r8, #7 + beq .L11219 + cmp r4, #3 + ldrls ip, [ip, #0] + bls .L12001 + ldr r2, [ip, #0] + cmp r2, #0 + beq .L11983 + ands r1, r2, #255 + beq .L11985 + ldr r3, [r6, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r6, #0] + streq r3, [r6, #0] +.L11985: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L11989 + ldr r3, [r6, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #20] + ldreq r0, [sp, #20] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r0, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r6, #4] + streq r3, [r6, #4] +.L11989: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L11993 + ldr r3, [r6, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r6, #8] + streq r3, [r6, #8] +.L11993: + movs r1, r2, lsr #24 + beq .L11983 + ldr r2, [r6, #12] + tst r2, #256 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r1 + orrne r2, r8, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r6, #12] + streq r3, [r6, #12] +.L11983: + subs r4, r4, #4 + ldr ip, [ip, #4] + addne r6, r6, #16 + beq .L11219 +.L12001: + mov lr, #0 +.L12002: + ands r3, ip, #255 + beq .L12003 + ldr r2, [r6, #0] + ldr sl, [sp, #20] + tst r2, #256 + orr r1, sl, r3 + orr r0, sl, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r6, #0] + streq r1, [r6, #0] +.L12003: + add lr, lr, #1 + cmp lr, r4 + mov ip, ip, lsr #8 + add r6, r6, #4 + bcc .L12002 + b .L11219 +.L12413: + rsb sl, r6, r7 + cmp sl, #0 + ble .L11219 + ldr r9, [sp, #0] + movs r8, sl, lsr #3 + add r7, r9, r6, asl #2 + beq .L12278 + ldr r3, .L12436+4 + mov r4, r7 + add r0, r0, r3 + mov r6, ip + mov r1, #0 +.L12280: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L12281 + ands lr, r2, #255 + beq .L12283 + ldr r3, [r4, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq r5, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, r5, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L12283: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L12287 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, fp, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L12287: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L12291 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L12291: + movs r2, r2, lsr #24 + beq .L12281 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq lr, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L12281: + ldr lr, [r6, #0] + cmp lr, #0 + beq .L12298 + ands r5, lr, #255 + beq .L12300 + ldr r2, [r4, #28] + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L12300: + mov r3, lr, lsr #8 + ands r2, r3, #255 + beq .L12304 + ldr r3, [r4, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L12304: + mov r3, lr, lsr #16 + ands r2, r3, #255 + beq .L12308 + ldr r3, [r4, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq r5, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, r5, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L12308: + movs lr, lr, lsr #24 + beq .L12298 + ldr r2, [r4, #16] + tst r2, #256 + ldrne r9, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L12298: + add r1, r1, #1 + cmp r8, r1 + sub r6, r6, #64 + add r4, r4, #32 + sub r0, r0, #64 + bne .L12280 + rsb r3, r8, r8, asl #26 + add ip, ip, r3, asl #6 + add r7, r7, r8, asl #5 +.L12278: + ands r4, sl, #7 + beq .L11219 + cmp r4, #3 + ldrls ip, [ip, #4] + bls .L12337 + ldr r2, [ip, #4] + cmp r2, #0 + beq .L12319 + ands r1, r2, #255 + beq .L12321 + ldr r3, [r7, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #20] + ldreq r0, [sp, #20] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r0, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r7, #12] + streq r3, [r7, #12] +.L12321: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L12325 + ldr r3, [r7, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r7, #8] + streq r3, [r7, #8] +.L12325: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L12329 + ldr r3, [r7, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r7, #4] + streq r3, [r7, #4] +.L12329: + movs r2, r2, lsr #24 + beq .L12319 + ldr r3, [r7, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r7, #0] + streq r3, [r7, #0] +.L12319: + subs r4, r4, #4 + ldr ip, [ip, #0] + addne r7, r7, #16 + beq .L11219 +.L12337: + mov lr, #0 +.L12338: + movs r3, ip, lsr #24 + beq .L12339 + ldr r2, [r7, #0] + ldr r0, [sp, #20] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r7, #0] + streq r1, [r7, #0] +.L12339: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #8 + add r7, r7, #4 + bhi .L12338 + b .L11219 +.L12048: + mov r3, r0, lsr #3 + ands r2, r0, #7 + sub r4, ip, r3, asl #6 + ldreq r0, [sp, #68] + beq .L12198 + cmp r2, #3 + rsb r6, r2, #8 + bhi .L12421 + subs r7, r6, #4 + ldr r1, [r4, #4] + ldreq r1, [sp, #68] + beq .L12213 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr lr, [sp, #68] + mov r5, #0 +.L12214: + movs r3, ip, lsr #24 + beq .L12215 + ldr r2, [lr, #0] + ldr r9, [sp, #20] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12215: + add r5, r5, #1 + cmp r7, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12214 + ldr sl, [sp, #68] + add r3, sl, r6, asl #2 + sub r1, r3, #16 +.L12213: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L12221 + ands r0, r2, #255 + beq .L12223 + ldr r3, [r1, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L12223: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L12227 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #20] + ldreq r5, [sp, #20] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r5, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L12227: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L12231 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L12231: + movs r2, r2, lsr #24 + beq .L12221 + ldr r3, [r1, #0] + tst r3, #256 + beq .L12236 + mov r3, r3, lsr #16 + ldr r9, [sp, #20] + mov r3, r3, asl #16 + orr r3, r9, r3 + orr r3, r2, r3 + str r3, [r1, #0] +.L12221: + add r0, r1, #16 +.L12203: + sub r4, r4, #64 +.L12198: + movs r5, r8, lsr #3 + beq .L11219 + mov lr, #0 + b .L12239 +.L12422: + sub r4, r4, #64 + add r0, r0, #32 +.L12239: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L12240 + ands r1, r2, #255 + beq .L12242 + ldr r3, [r0, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L12242: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L12246 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #20] + ldreq r8, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L12246: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L12250 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L12250: + movs r2, r2, lsr #24 + beq .L12240 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L12240: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L12257 + ands ip, r1, #255 + beq .L12259 + ldr r2, [r0, #28] + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, ip + orrne r2, r6, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L12259: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L12263 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L12263: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L12267 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L12267: + movs r1, r1, lsr #24 + beq .L12257 + ldr r2, [r0, #16] + tst r2, #256 + ldrne ip, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r6, r1 + orrne r2, ip, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L12257: + add lr, lr, #1 + cmp lr, r5 + bne .L12422 + b .L11219 +.L11712: + ands r2, r0, #7 + mov r3, r0, lsr #3 + add r4, ip, r3, asl #6 + ldreq r1, [sp, #68] + beq .L11862 + cmp r2, #3 + rsb r6, r2, #8 + bhi .L12423 + subs r7, r6, #4 + ldr r1, [r4, #0] + ldreq r1, [sp, #68] + beq .L11877 + mov r3, r2, asl #3 + mov ip, r1, lsr r3 + ldr lr, [sp, #68] + mov r5, #0 +.L11878: + ands r3, ip, #255 + beq .L11879 + ldr r2, [lr, #0] + ldr r9, [sp, #20] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11879: + add r5, r5, #1 + cmp r7, r5 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11878 + ldr sl, [sp, #68] + add r3, sl, r6, asl #2 + sub r1, r3, #16 +.L11877: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L11885 + ands r0, r2, #255 + beq .L11887 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L11887: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L11891 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #20] + ldreq r5, [sp, #20] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r5, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L11891: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L11895 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L11895: + movs r2, r2, lsr #24 + beq .L11885 + ldr r3, [r1, #12] + tst r3, #256 + beq .L11900 + mov r3, r3, lsr #16 + ldr r9, [sp, #20] + mov r3, r3, asl #16 + orr r3, r9, r3 + orr r3, r2, r3 + str r3, [r1, #12] +.L11885: + add r1, r1, #16 +.L11867: + add r4, r4, #64 +.L11862: + movs lr, r8, lsr #3 + beq .L11219 + mov ip, #0 + b .L11903 +.L12424: + add r4, r4, #64 + add r1, r1, #32 +.L11903: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L11904 + ands r0, r2, #255 + beq .L11906 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L11906: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L11910 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #20] + ldreq r8, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L11910: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L11914 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L11914: + movs r0, r2, lsr #24 + beq .L11904 + ldr r2, [r1, #12] + tst r2, #256 + ldrne fp, [sp, #20] + ldreq r5, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r5, r0 + orrne r2, fp, r0 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L11904: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L11921 + ands r0, r2, #255 + beq .L11923 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L11923: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L11927 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L11927: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L11931 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L11931: + movs r2, r2, lsr #24 + beq .L11921 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r0, [sp, #20] + ldreq r5, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r5, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L11921: + add ip, ip, #1 + cmp ip, lr + bne .L12424 + b .L11219 +.L11508: + ands r2, lr, #7 + mov r3, lr, lsr #3 + sub ip, r0, r3, asl #5 + ldreq r0, [sp, #68] + beq .L11579 + rsbs r6, r2, #8 + ldr r1, [ip, #0] + ldreq r0, [sp, #68] + beq .L11582 + mov r3, r2, asl #2 + mov lr, r1, asl r3 + ldr r4, [sp, #68] + mov r5, #0 +.L11583: + movs r3, lr, lsr #28 + beq .L11584 + ldr r1, [r4, #0] + ldr fp, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, fp, r2 + mov r3, r3, asl #16 + orr r2, fp, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L11584: + add r5, r5, #1 + cmp r5, r6 + mov lr, lr, asl #4 + add r4, r4, #4 + bne .L11583 + ldr lr, [sp, #68] + add r0, lr, r6, asl #2 +.L11582: + sub ip, ip, #32 +.L11579: + movs r5, sl, lsr #3 + beq .L11219 + mov r4, #0 + b .L11591 +.L12437: + .align 2 +.L12436: + .word vram+65600 + .word vram+65472 +.L12425: + sub ip, ip, #32 + add r0, r0, #32 +.L11591: + ldr r1, [ip, #0] + cmp r1, #0 + beq .L11592 + ands r3, r1, #15 + beq .L11594 + ldr r2, [r0, #28] + orr lr, r8, r3 + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, lr + orrne r2, r6, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L11594: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L11598 + ldr r2, [r0, #24] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L11598: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L11602 + ldr r2, [r0, #20] + orr lr, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r6, lr + orrne r2, fp, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L11602: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L11606 + ldr r2, [r0, #16] + orr lr, r8, r3 + tst r2, #256 + ldrne r7, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r7, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L11606: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L11610 + ldr r2, [r0, #12] + orr lr, r8, r3 + tst r2, #256 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, lr + orrne r2, sl, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L11610: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L11614 + ldr r2, [r0, #8] + orr lr, r8, r3 + tst r2, #256 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, lr + orrne r2, r6, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L11614: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L11618 + ldr r2, [r0, #4] + orr lr, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L11618: + movs r3, r1, lsr #28 + beq .L11592 + ldr r2, [r0, #0] + orr r1, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq lr, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, lr, r1 + orrne r2, fp, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L11592: + add r4, r4, #1 + cmp r5, r4 + bne .L12425 + b .L11219 +.L11304: + mov r3, lr, lsr #3 + mov r1, r3, asl #5 + ands r3, lr, #7 + add r6, r0, r1 + ldreq r0, [sp, #68] + beq .L11375 + rsbs r7, r3, #8 + ldr r0, [r0, r1] + ldreq r0, [sp, #68] + beq .L11378 + mov r3, r3, asl #2 + mov ip, r0, lsr r3 + ldr lr, [sp, #68] + mov r4, #0 +.L11379: + ands r3, ip, #15 + beq .L11380 + ldr r1, [lr, #0] + ldr fp, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, fp, r2 + mov r3, r3, asl #16 + orr r2, fp, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L11380: + add r4, r4, #1 + cmp r7, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L11379 + ldr ip, [sp, #68] + add r0, ip, r7, asl #2 +.L11378: + add r6, r6, #32 +.L11375: + movs r4, r5, lsr #3 + beq .L11219 + mov lr, #0 + b .L11387 +.L12426: + add r6, r6, #32 + add r0, r0, #32 +.L11387: + ldr r1, [r6, #0] + cmp r1, #0 + beq .L11388 + ands r3, r1, #15 + beq .L11390 + ldr r2, [r0, #0] + orr ip, r8, r3 + tst r2, #256 + ldrne r5, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, ip + orrne r2, r5, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L11390: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L11394 + ldr r2, [r0, #4] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L11394: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L11398 + ldr r2, [r0, #8] + orr ip, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq r5, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r5, ip + orrne r2, fp, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L11398: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L11402 + ldr r2, [r0, #12] + orr ip, r8, r3 + tst r2, #256 + ldrne r7, [sp, #20] + ldreq r9, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r7, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L11402: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L11406 + ldr r2, [r0, #16] + orr ip, r8, r3 + tst r2, #256 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, fp, ip + orrne r2, sl, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L11406: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L11410 + ldr r2, [r0, #20] + orr ip, r8, r3 + tst r2, #256 + ldrne r5, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r7, ip + orrne r2, r5, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L11410: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L11414 + ldr r2, [r0, #24] + orr ip, r8, r3 + tst r2, #256 + ldrne r9, [sp, #20] + ldreq sl, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L11414: + movs r3, r1, lsr #28 + beq .L11388 + ldr r2, [r0, #28] + orr r1, r8, r3 + tst r2, #256 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, ip, r1 + orrne r2, fp, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L11388: + add lr, lr, #1 + cmp r4, lr + bne .L12426 + b .L11219 +.L11268: + mov r1, r2 + b .L12397 +.L11510: + ldr lr, [sp, #92] + rsb r6, r4, #8 + cmp lr, r6 + blt .L12427 + cmp r6, #0 + ldr r2, [ip, #0] + ldreq r5, [sp, #68] + beq .L11525 + mov r3, r4, asl #2 + mov lr, r2, asl r3 + ldr r4, [sp, #68] + mov r5, #0 +.L11526: + movs r3, lr, lsr #28 + beq .L11527 + ldr r1, [r4, #0] + ldr r7, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, r7, r2 + mov r3, r3, asl #16 + orr r2, r7, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L11527: + add r5, r5, #1 + cmp r6, r5 + mov lr, lr, asl #4 + add r4, r4, #4 + bne .L11526 + ldr r9, [sp, #68] + add r5, r9, r6, asl #2 +.L11525: + ldr fp, [sp, #92] + sub ip, ip, #32 + rsb sl, r6, fp + b .L11512 +.L12050: + ldr r0, [sp, #92] + rsb r5, lr, #8 + cmp r0, r5 + blt .L12428 + cmp lr, #3 + bls .L12091 + cmp r5, #0 + ldr r2, [r8, #0] + ldreq r4, [sp, #68] + beq .L12095 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #68] + mov r4, #0 +.L12096: + movs r3, ip, lsr #24 + beq .L12097 + ldr r2, [lr, #0] + ldr r7, [sp, #20] + tst r2, #256 + orr r1, r7, r3 + orr r0, r7, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12097: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12096 + ldr sl, [sp, #68] + add r4, sl, r5, asl #2 +.L12095: + ldr ip, [sp, #92] + sub r8, r8, #64 + rsb r7, r5, ip + b .L12052 +.L11714: + ldr sl, [sp, #92] + rsb r5, lr, #8 + cmp sl, r5 + blt .L12429 + cmp lr, #3 + bls .L11755 + cmp r5, #0 + ldr r2, [r7, #4] + ldreq r4, [sp, #68] + beq .L11759 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #68] + mov r4, #0 +.L11760: + ands r3, ip, #255 + beq .L11761 + ldr r2, [lr, #0] + ldr r6, [sp, #20] + tst r2, #256 + orr r1, r6, r3 + orr r0, r6, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11761: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11760 + ldr r9, [sp, #68] + add r4, r9, r5, asl #2 +.L11759: + ldr fp, [sp, #92] + add r7, r7, #64 + rsb r6, r5, fp + b .L11716 +.L11306: + ldr fp, [sp, #92] + rsb r5, r3, #8 + cmp fp, r5 + blt .L12430 + cmp r5, #0 + ldr r2, [r6, #0] + ldreq r4, [sp, #68] + beq .L11321 + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr lr, [sp, #68] + mov r4, #0 +.L11322: + ands r3, ip, #15 + beq .L11323 + ldr r1, [lr, #0] + ldr r7, [sp, #20] + orr r2, r8, r3 + mov r3, r1, lsr #16 + orr r0, r7, r2 + mov r3, r3, asl #16 + orr r2, r7, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L11323: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L11322 + ldr r9, [sp, #68] + add r4, r9, r5, asl #2 +.L11321: + ldr fp, [sp, #92] + add r6, r6, #32 + rsb sl, r5, fp + b .L11308 +.L12423: + cmp r6, #0 + ldr r1, [r4, #4] + ldreq r1, [sp, #68] + beq .L11867 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, lsr r3 + ldr lr, [sp, #68] + mov r5, #0 +.L11868: + ands r3, ip, #255 + beq .L11869 + ldr r2, [lr, #0] + ldr r7, [sp, #20] + tst r2, #256 + orr r1, r7, r3 + orr r0, r7, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11869: + add r5, r5, #1 + cmp r5, r6 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11868 + ldr sl, [sp, #68] + add r4, r4, #64 + add r1, sl, r6, asl #2 + b .L11862 +.L12430: + cmp fp, #0 + ble .L11219 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr lr, [sp, #68] + mov r4, #0 +.L11313: + ands r3, ip, #15 + beq .L11314 + ldr r1, [lr, #0] + orr r2, r8, r3 + ldr r3, [sp, #20] + ldr r5, [sp, #20] + orr r0, r3, r2 + mov r3, r1, lsr #16 + mov r3, r3, asl #16 + orr r2, r5, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L11314: + ldr r6, [sp, #92] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L11313 + b .L11219 +.L12421: + cmp r6, #0 + ldr r1, [r4, #0] + ldreq r0, [sp, #68] + beq .L12203 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr lr, [sp, #68] + mov r5, #0 +.L12204: + movs r3, ip, lsr #24 + beq .L12205 + ldr r2, [lr, #0] + ldr r7, [sp, #20] + tst r2, #256 + orr r1, r7, r3 + orr r0, r7, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12205: + add r5, r5, #1 + cmp r5, r6 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12204 + ldr sl, [sp, #68] + sub r4, r4, #64 + add r0, sl, r6, asl #2 + b .L12198 +.L12428: + cmp r0, #0 + ble .L11219 + cmp lr, #3 + bls .L12056 + mov r3, lr, asl #3 + ldr r2, [r8, #0] + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #68] + mov r4, #0 +.L12059: + movs r3, ip, lsr #24 + beq .L12060 + ldr r2, [lr, #0] + ldr r5, [sp, #20] + tst r2, #256 + orr r1, r5, r3 + orr r0, r5, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12060: + ldr r6, [sp, #92] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12059 + b .L11219 +.L12429: + cmp sl, #0 + ble .L11219 + cmp lr, #3 + bls .L11720 + mov r3, lr, asl #3 + ldr r2, [r7, #4] + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #68] + mov r4, #0 +.L11723: + ands r3, ip, #255 + beq .L11724 + ldr r2, [lr, #0] + ldr fp, [sp, #20] + tst r2, #256 + orr r1, fp, r3 + orr r0, fp, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11724: + ldr r0, [sp, #92] + add r4, r4, #1 + cmp r0, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11723 + b .L11219 +.L12427: + cmp lr, #0 + ble .L11219 + ldr r2, [ip, #0] + mov r3, r4, asl #2 + mov ip, r2, asl r3 + ldr lr, [sp, #68] + mov r4, #0 +.L11517: + movs r3, ip, lsr #28 + beq .L11518 + ldr r1, [lr, #0] + orr r2, r8, r3 + ldr r3, [sp, #20] + ldr r5, [sp, #20] + orr r0, r3, r2 + mov r3, r1, lsr #16 + mov r3, r3, asl #16 + orr r2, r5, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L11518: + ldr r6, [sp, #92] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, asl #4 + add lr, lr, #4 + bne .L11517 + b .L11219 +.L12433: + mov r8, #0 + b .L11284 +.L12432: + mov r4, #0 + b .L11244 +.L12091: + subs r6, r5, #4 + ldr r2, [r8, #4] + ldreq r2, [sp, #68] + beq .L12105 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #68] + mov r4, #0 +.L12106: + movs r3, ip, lsr #24 + beq .L12107 + ldr r2, [lr, #0] + ldr r9, [sp, #20] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12107: + add r4, r4, #1 + cmp r4, r6 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12106 + ldr sl, [sp, #68] + add r3, sl, r5, asl #2 + sub r2, r3, #16 +.L12105: + ldr r1, [r8, #0] + cmp r1, #0 + beq .L12113 + ands r0, r1, #255 + beq .L12115 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne fp, [sp, #20] + ldreq ip, [sp, #20] + movne r3, r3, asl #16 + orrne r3, fp, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #12] + streq r3, [r2, #12] +.L12115: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L12119 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #20] + ldreq r4, [sp, #20] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r4, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L12119: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L12123 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #20] + ldreq r7, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L12123: + movs r1, r1, lsr #24 + beq .L12113 + ldr r3, [r2, #0] + tst r3, #256 + beq .L12128 + mov r3, r3, lsr #16 + ldr r9, [sp, #20] + mov r3, r3, asl #16 + orr r3, r9, r3 + orr r3, r1, r3 + str r3, [r2, #0] +.L12113: + add r4, r2, #16 + b .L12095 +.L11755: + subs r6, r5, #4 + ldr r2, [r7, #0] + ldreq r2, [sp, #68] + beq .L11769 + mov r3, lr, asl #3 + mov ip, r2, lsr r3 + ldr lr, [sp, #68] + mov r4, #0 +.L11770: + ands r3, ip, #255 + beq .L11771 + ldr r2, [lr, #0] + ldr r8, [sp, #20] + tst r2, #256 + orr r1, r8, r3 + orr r0, r8, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11771: + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11770 + ldr r9, [sp, #68] + add r3, r9, r5, asl #2 + sub r2, r3, #16 +.L11769: + ldr r1, [r7, #4] + cmp r1, #0 + beq .L11777 + ands r0, r1, #255 + beq .L11779 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #20] + ldreq fp, [sp, #20] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, fp, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #0] + streq r3, [r2, #0] +.L11779: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L11783 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #20] + ldreq lr, [sp, #20] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L11783: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L11787 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #20] + ldreq r6, [sp, #20] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L11787: + movs r1, r1, lsr #24 + beq .L11777 + ldr r3, [r2, #12] + tst r3, #256 + beq .L11792 + mov r3, r3, lsr #16 + ldr r8, [sp, #20] + mov r3, r3, asl #16 + orr r3, r8, r3 + orr r3, r1, r3 + str r3, [r2, #12] +.L11777: + add r4, r2, #16 + b .L11759 +.L12431: + ldr lr, [sp, #12] + b .L12395 +.L12056: + ldr r7, [sp, #92] + mov r3, lr, asl #3 + ldr r1, [r8, #4] + add r2, r7, lr + sub r3, r3, #32 + cmp r2, #4 + mov ip, r1, asl r3 + bhi .L12065 + cmp r7, #0 + ldrne lr, [sp, #68] + movne r4, #0 + beq .L11219 +.L12085: + movs r3, ip, lsr #24 + beq .L12086 + ldr r2, [lr, #0] + ldr r5, [sp, #20] + tst r2, #256 + orr r1, r5, r3 + orr r0, r5, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12086: + ldr r6, [sp, #92] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12085 + b .L11219 +.L11720: + ldr r1, [sp, #92] + ldr r3, [r7, #0] + add r2, r1, lr + cmp r2, #4 + mov r1, lr, asl #3 + mov ip, r3, lsr r1 + bhi .L11729 + ldr r2, [sp, #92] + cmp r2, #0 + ldrne lr, [sp, #68] + movne r4, #0 + beq .L11219 +.L11749: + ands r3, ip, #255 + beq .L11750 + ldr r2, [lr, #0] + ldr fp, [sp, #20] + tst r2, #256 + orr r1, fp, r3 + orr r0, fp, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11750: + ldr r0, [sp, #92] + add r4, r4, #1 + cmp r0, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11749 + b .L11219 +.L11729: + rsbs r5, lr, #4 + ldreq lr, [sp, #68] + beq .L11734 + ldr lr, [sp, #68] + mov r4, #0 +.L11735: + ands r3, ip, #255 + beq .L11736 + ldr r2, [lr, #0] + ldr r6, [sp, #20] + tst r2, #256 + orr r1, r6, r3 + orr r0, r6, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11736: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11735 + ldr r8, [sp, #68] + add lr, r8, r5, asl #2 +.L11734: + ldr r9, [sp, #92] + ldr ip, [r7, #4] + subs r5, r9, r5 + beq .L11219 + mov r4, #0 +.L11743: + ands r3, ip, #255 + beq .L11744 + ldr r2, [lr, #0] + ldr sl, [sp, #20] + tst r2, #256 + orr r1, sl, r3 + orr r0, sl, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L11744: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L11743 + b .L11219 +.L12065: + rsbs r5, lr, #4 + ldreq lr, [sp, #68] + beq .L12070 + ldr lr, [sp, #68] + mov r4, #0 +.L12071: + movs r3, ip, lsr #24 + beq .L12072 + ldr r2, [lr, #0] + ldr r9, [sp, #20] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12072: + add r4, r4, #1 + cmp r4, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12071 + ldr sl, [sp, #68] + add lr, sl, r5, asl #2 +.L12070: + ldr fp, [sp, #92] + ldr ip, [r8, #0] + subs r5, fp, r5 + beq .L11219 + mov r4, #0 +.L12079: + movs r3, ip, lsr #24 + beq .L12080 + ldr r2, [lr, #0] + ldr r0, [sp, #20] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12080: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L12079 + b .L11219 +.L11900: + ldr fp, [sp, #20] + orr r3, fp, r3, asl #16 + orr r3, r2, r3 + str r3, [r1, #12] + add r1, r1, #16 + b .L11867 +.L12236: + ldr fp, [sp, #20] + add r0, r1, #16 + orr r3, fp, r3, asl #16 + orr r3, r2, r3 + str r3, [r1, #0] + b .L12203 +.L12128: + ldr fp, [sp, #20] + add r4, r2, #16 + orr r3, fp, r3, asl #16 + orr r3, r1, r3 + str r3, [r2, #0] + b .L12095 +.L11792: + ldr sl, [sp, #20] + add r4, r2, #16 + orr r3, sl, r3, asl #16 + orr r3, r1, r3 + str r3, [r2, #12] + b .L11759 + .size render_scanline_obj_alpha_obj_1D, .-render_scanline_obj_alpha_obj_1D + .align 2 + .global render_scanline_obj_alpha_obj_2D + .type render_scanline_obj_alpha_obj_2D, %function +render_scanline_obj_alpha_obj_2D: + @ args = 0, pretend = 0, frame = 88 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L13670 + sub sp, sp, #88 + ldrh lr, [r5, #80] + mov r4, r0 + mov ip, lr, lsr #11 + and ip, ip, #2 + mov lr, lr, asl #27 + orr ip, ip, lr, lsr #31 + mov ip, ip, asl #9 + orr ip, ip, #256 + tst ip, #512 + str r1, [sp, #12] + str ip, [sp, #24] + str r2, [sp, #8] + str r3, [sp, #4] + beq .L13643 + ldrh r5, [r5, #6] + add r3, r0, r0, asl #2 + ldr r2, .L13670+4 + add r3, r5, r3, asl #5 + ldr r2, [r2, r3, asl #2] + str r5, [sp, #32] + str r2, [sp, #36] + cmp r2, #0 + ldr r2, .L13670+8 + add r3, r2, r3, asl #7 + str r3, [sp, #40] + beq .L13617 + ldr r1, [sp, #12] + ldmib sp, {r0, r2} @ phole ldm + mov r3, #0 + add r0, r0, r1, asl #2 + rsb r2, r1, r2 + str r0, [sp, #60] + str r2, [sp, #80] + str r3, [sp, #28] + mov r4, r3 +.L12443: + ldr r5, [sp, #40] + ldr r6, .L13670+20 + ldrb r3, [r4, r5] @ zero_extendqisi2 + ldr r7, .L13670+12 + mov r3, r3, asl #3 + ldrh lr, [r3, r6] + add r3, r3, r6 + ldrh r1, [r3, #2] + mov r4, lr, lsr #12 + and r2, r4, #12 + orr r0, r2, r1, lsr #14 + and ip, lr, #255 + mov r2, r1, asl #23 + cmp ip, #160 + mov r5, r2, asr #23 + ldr r2, .L13670+16 + subgt ip, ip, #256 + tst lr, #256 + ldrh r9, [r3, #4] + ldr r8, [r7, r0, asl #2] + ldr sl, [r2, r0, asl #2] + beq .L12446 + tst lr, #8192 + beq .L12448 + mov r3, r1, lsr #4 + ldr r4, .L13670+20 + and r3, r3, #992 + add r3, r3, r4 + add r2, r8, r8, lsr #31 + tst lr, #512 + ldrh r6, [r3, #30] + mov lr, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #12] + mov r4, r1, asr #1 + movne r0, lr, asl #1 + str r6, [sp, #16] + strne r0, [sp, #44] + moveq r6, r8 + streq lr, [sp, #44] + moveq r0, r4 + movne r6, r8, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + ldrh fp, [r3, #6] + ldrh r1, [r3, #14] + ldrh r7, [r3, #22] + bge .L12453 + rsb r2, r5, r2 + rsb r6, r2, r6 + cmp r6, #0 + ble .L12455 + ldr r3, [sp, #44] + ldr r5, [sp, #12] + rsb r3, r2, r3 + str r3, [sp, #44] +.L12453: + ldr r2, [sp, #8] + add r3, r5, r6 + cmp r3, r2 + blt .L12457 + rsb r6, r5, r2 + cmp r6, #0 + ble .L12455 +.L12457: + add r0, ip, r0 + ldr ip, [sp, #16] + mov r2, r1, asl #16 + mov r3, fp, asl #16 + mov r1, ip, asl #16 + mov fp, r3, asr #16 + mov ip, r2, asr #16 + ldr r3, [sp, #32] + ldr r2, [sp, #4] + mov lr, lr, asl #8 + cmp r7, #0 + str lr, [sp, #72] + mov r1, r1, asr #16 + mov lr, r4, asl #8 + add r5, r2, r5, asl #2 + rsb r0, r0, r3 + bne .L12459 + mla r3, r0, r1, lr + mov r1, r3, asr #8 + cmp r1, sl + bcs .L12455 + mov r3, r9, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #2 + ldr r3, .L13670+24 + cmp r6, #0 + add sl, r3, r1, asl #3 + ble .L12455 + ldr r2, [sp, #44] + mul r3, r0, ip + mul r2, fp, r2 + ldr r4, [sp, #72] + rsb r3, r2, r3 + add r0, r4, r3 + mov r2, r0, asr #8 + cmp r8, r2 + movls lr, r7 + bls .L12465 + b .L13667 +.L12466: + cmp r8, r2 + bhi .L13631 +.L12465: + add lr, lr, #1 + add r0, r0, fp + cmp r6, lr + mov r2, r0, asr #8 + add r5, r5, #4 + bne .L12466 +.L12455: + ldr r5, [sp, #28] + ldr r6, [sp, #36] + add r5, r5, #1 + cmp r5, r6 + str r5, [sp, #28] + beq .L13617 + ldr r4, [sp, #28] + b .L12443 +.L12446: + ldr r2, [sp, #32] + tst r1, #8192 + rsb r0, ip, r2 + rsbne r3, r0, sl + subne r0, r3, #1 + mov r2, r1, asl #19 + and r3, r4, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L12455 + .p2align 2 +.L12536: + .word .L12532 + .word .L12533 + .word .L12534 + .word .L12535 +.L12532: + mov r3, r9, asl #22 + mov r2, r0, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + add r1, r1, r3, asl #3 + ldr r3, [sp, #12] + mov r2, r9, lsr #8 + cmp r5, r3 + ldr r3, .L13670+24 + and r6, r2, #240 + add ip, r3, r1, asl #2 + bge .L12537 + ldr r4, [sp, #12] + rsb lr, r5, r4 + rsb r7, lr, r8 + cmp r7, #0 + ble .L12455 + add r3, r5, r8 + ldr r5, [sp, #8] + cmp r5, r3 + bhi .L12540 + mov r3, lr, lsr #3 + mov r0, r3, asl #5 + ands r3, lr, #7 + add r7, ip, r0 + bne .L12542 + ldr sl, [sp, #80] + ldr r4, [sp, #60] +.L12544: + movs r8, sl, lsr #3 + beq .L12565 + mov r0, r4 + mov lr, r7 + mov r5, #0 +.L12567: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L12568 + ands r3, r1, #15 + beq .L12570 + ldr r2, [r0, #0] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L12570: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L12574 + ldr r2, [r0, #4] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L12574: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L12578 + ldr r2, [r0, #8] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L12578: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L12582 + ldr r2, [r0, #12] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L12582: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L12586 + ldr r2, [r0, #16] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L12586: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L12590 + ldr r2, [r0, #20] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L12590: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L12594 + ldr r2, [r0, #24] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L12594: + movs r3, r1, lsr #28 + beq .L12568 + ldr r2, [r0, #28] + orr r1, r6, r3 + tst r2, #256 + ldrne ip, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r1 + orrne r2, ip, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L12568: + add r5, r5, #1 + cmp r5, r8 + add lr, lr, #32 + add r0, r0, #32 + bne .L12567 + mov r3, r8, asl #5 + add r7, r7, r3 + add r4, r4, r3 +.L12565: + ands r5, sl, #7 + beq .L12455 + ldr ip, [r7, #0] + mov lr, #0 +.L12603: + ands r3, ip, #15 + beq .L12604 + ldr r1, [r4, #0] + ldr sl, [sp, #24] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L12604: + add lr, lr, #1 + cmp r5, lr + mov ip, ip, lsr #4 + add r4, r4, #4 + bne .L12603 + b .L12455 +.L12533: + mov r3, r9, asl #22 + mov r1, r0, lsr #3 + subs r2, r8, #8 + mov r3, r3, lsr #22 + submi r2, r8, #1 + add r3, r3, r1, asl #5 + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr ip, [sp, #12] + add r1, r1, r3, asl #3 + ldr r3, .L13670+24 + mov r2, r9, lsr #8 + cmp r5, ip + add r0, r3, r1, asl #2 + and r6, r2, #240 + bge .L12741 + rsb lr, r5, ip + rsb r7, lr, r8 + cmp r7, #0 + ble .L12455 + ldr r1, [sp, #8] + add r3, r5, r8 + cmp r1, r3 + bhi .L12744 + mov r3, lr, lsr #3 + ands r4, lr, #7 + sub ip, r0, r3, asl #5 + bne .L12746 + ldr sl, [sp, #80] + ldr r5, [sp, #60] +.L12748: + movs r8, sl, lsr #3 + beq .L12769 + mov r0, r5 + mov r4, ip + mov r7, #0 +.L12771: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L12772 + ands r3, r1, #15 + beq .L12774 + ldr r2, [r0, #28] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L12774: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L12778 + ldr r2, [r0, #24] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L12778: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L12782 + ldr r2, [r0, #20] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L12782: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L12786 + ldr r2, [r0, #16] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L12786: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L12790 + ldr r2, [r0, #12] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L12790: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L12794 + ldr r2, [r0, #8] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L12794: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L12798 + ldr r2, [r0, #4] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L12798: + movs r3, r1, lsr #28 + beq .L12772 + ldr r2, [r0, #0] + orr r1, r6, r3 + tst r2, #256 + ldrne lr, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r1 + orrne r2, lr, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L12772: + add r7, r7, #1 + cmp r8, r7 + sub r4, r4, #32 + add r0, r0, #32 + bne .L12771 + rsb r3, r8, r8, asl #27 + add ip, ip, r3, asl #5 + add r5, r5, r8, asl #5 +.L12769: + ands r4, sl, #7 + beq .L12455 + ldr ip, [ip, #0] + mov lr, #0 +.L12807: + movs r3, ip, lsr #28 + beq .L12808 + ldr r1, [r5, #0] + ldr sl, [sp, #24] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r5, #0] + streq r2, [r5, #0] +.L12808: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #4 + add r5, r5, #4 + bne .L12807 + b .L12455 +.L12534: + mov r2, r9, asl #22 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + and r3, r0, #7 + add r2, r2, r1, asl #5 + add r3, r3, r2, asl #2 + ldr ip, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L13670+24 + cmp r5, ip + add ip, r0, r3 + bge .L12945 + ldr lr, [sp, #12] + rsb r0, r5, lr + rsb r7, r0, r8 + cmp r7, #0 + ble .L12455 + ldr r1, [sp, #8] + add r3, r5, r8 + cmp r1, r3 + bhi .L12948 + mov r3, r0, lsr #3 + ands lr, r0, #7 + add r7, ip, r3, asl #6 + bne .L12950 + ldr r6, [sp, #80] + ldr r4, [sp, #60] +.L12952: + movs r5, r6, lsr #3 + beq .L13030 + mov r1, r4 + mov ip, r7 + mov lr, #0 +.L13032: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L13033 + ands r0, r2, #255 + beq .L13035 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L13035: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L13039 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L13039: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L13043 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L13043: + movs r0, r2, lsr #24 + beq .L13033 + ldr r2, [r1, #12] + tst r2, #256 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r0 + orrne r2, r8, r0 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L13033: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L13050 + ands r0, r2, #255 + beq .L13052 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L13052: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L13056 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L13056: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L13060 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L13060: + movs r2, r2, lsr #24 + beq .L13050 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq r0, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, r0, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L13050: + add lr, lr, #1 + cmp lr, r5 + add ip, ip, #64 + add r1, r1, #32 + bne .L13032 + add r7, r7, r5, asl #6 + add r4, r4, r5, asl #5 +.L13030: + ands r5, r6, #7 + beq .L12455 + cmp r5, #3 + ldrls ip, [r7, #0] + bls .L13089 + ldr r2, [r7, #0] + cmp r2, #0 + beq .L13071 + ands r1, r2, #255 + beq .L13073 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L13073: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L13077 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L13077: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L13081 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L13081: + movs r1, r2, lsr #24 + beq .L13071 + ldr r2, [r4, #12] + tst r2, #256 + ldrne r0, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r6, r1 + orrne r2, r0, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L13071: + subs r5, r5, #4 + ldr ip, [r7, #4] + addne r4, r4, #16 + beq .L12455 +.L13089: + mov lr, #0 +.L13090: + ands r3, ip, #255 + beq .L13091 + ldr r2, [r4, #0] + ldr r7, [sp, #24] + tst r2, #256 + orr r1, r7, r3 + orr r0, r7, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r4, #0] + streq r1, [r4, #0] +.L13091: + add lr, lr, #1 + cmp r5, lr + mov ip, ip, lsr #8 + add r4, r4, #4 + bhi .L13090 + b .L12455 +.L13671: + .align 2 +.L13670: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word obj_width_table + .word obj_height_table + .word oam_ram + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L12535: + subs r2, r8, #8 + submi r2, r8, #1 + mov r3, r0, lsr #3 + mov r2, r2, asr #3 + mov r1, r9, asl #22 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + add r1, r1, r2, asl #1 + and r3, r0, #7 + add r3, r3, r1, asl #2 + ldr r1, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L13670+24 + cmp r5, r1 + add ip, r0, r3 + bge .L13281 + rsb r0, r5, r1 + rsb r7, r0, r8 + cmp r7, #0 + ble .L12455 + ldr r2, [sp, #8] + add r3, r5, r8 + cmp r2, r3 + bhi .L13284 + mov r3, r0, lsr #3 + ands lr, r0, #7 + sub r8, ip, r3, asl #6 + bne .L13286 + ldr r7, [sp, #80] + ldr r4, [sp, #60] +.L13288: + movs r6, r7, lsr #3 + beq .L13366 + mov r0, r4 + mov lr, r8 + mov r5, #0 +.L13368: + ldr r2, [lr, #4] + cmp r2, #0 + beq .L13369 + ands r1, r2, #255 + beq .L13371 + ldr r3, [r0, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L13371: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L13375 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L13375: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L13379 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq ip, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L13379: + movs r2, r2, lsr #24 + beq .L13369 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r1, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L13369: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L13386 + ands ip, r1, #255 + beq .L13388 + ldr r2, [r0, #28] + tst r2, #256 + ldrne sl, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, ip + orrne r2, sl, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L13388: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L13392 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq ip, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L13392: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L13396 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L13396: + movs r1, r1, lsr #24 + beq .L13386 + ldr r2, [r0, #16] + tst r2, #256 + ldrne ip, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r1 + orrne r2, ip, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L13386: + add r5, r5, #1 + cmp r5, r6 + sub lr, lr, #64 + add r0, r0, #32 + bne .L13368 + rsb r3, r6, r6, asl #26 + add r8, r8, r3, asl #6 + add r4, r4, r6, asl #5 +.L13366: + ands r5, r7, #7 + beq .L12455 + cmp r5, #3 + ldrls ip, [r8, #4] + bls .L13425 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L13407 + ands r1, r2, #255 + beq .L13409 + ldr r3, [r4, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq ip, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L13409: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L13413 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #24] + ldreq r0, [sp, #24] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r0, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L13413: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L13417 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #24] + ldreq r7, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L13417: + movs r2, r2, lsr #24 + beq .L13407 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L13407: + subs r5, r5, #4 + ldr ip, [r8, #0] + addne r4, r4, #16 + beq .L12455 +.L13425: + mov lr, #0 +.L13426: + movs r3, ip, lsr #24 + beq .L13427 + ldr r2, [r4, #0] + ldr r0, [sp, #24] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r4, #0] + streq r1, [r4, #0] +.L13427: + add lr, lr, #1 + cmp r5, lr + mov ip, ip, asl #8 + add r4, r4, #4 + bhi .L13426 + b .L12455 +.L12448: + mov r3, r1, lsr #4 + ldr r4, .L13670+20 + and r3, r3, #992 + add r3, r3, r4 + add r2, r8, r8, lsr #31 + tst lr, #512 + ldrh r6, [r3, #30] + mov lr, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #12] + mov r4, r1, asr #1 + movne r0, r8, asl #1 + str r6, [sp, #20] + strne r0, [sp, #84] + streq r8, [sp, #84] + moveq r6, lr + moveq r0, r4 + movne r6, lr, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + ldrh r7, [r3, #6] + ldrh r1, [r3, #14] + ldrh fp, [r3, #22] + bge .L12490 + ldr r3, [sp, #84] + rsb r2, r5, r2 + rsb r3, r2, r3 + cmp r3, #0 + str r3, [sp, #84] + ble .L12455 + ldr r5, [sp, #12] + rsb r6, r2, r6 +.L12490: + ldr r2, [sp, #84] + add r3, r5, r2 + ldr r2, [sp, #8] + cmp r3, r2 + blt .L12493 + rsb r3, r5, r2 + cmp r3, #0 + str r3, [sp, #84] + ble .L12455 +.L12493: + mov r3, r7, asl #16 + mov r2, r1, asl #16 + ldr r7, [sp, #20] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + add ip, ip, r0 + str r3, [sp, #48] + mov r0, r9, lsr #8 + str r2, [sp, #52] + ldr r3, [sp, #32] + ldr r2, [sp, #4] + mov r1, r7, asl #16 + mov lr, lr, asl #8 + and r0, r0, #240 + cmp fp, #0 + str lr, [sp, #64] + mov r1, r1, asr #16 + mov lr, r4, asl #8 + add r7, r2, r5, asl #2 + rsb ip, ip, r3 + str r0, [sp, #76] + bne .L12495 + mla r3, ip, r1, lr + mov r1, r3, asr #8 + cmp r1, sl + bcs .L12455 + mov r3, r9, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + ldr r4, [sp, #84] + add r1, r1, r3, asl #3 + ldr r3, .L13670+24 + cmp r4, #0 + add r5, r3, r1, asl #2 + ble .L12455 + ldr r3, [sp, #52] + ldr r2, [sp, #48] + mul r3, ip, r3 + mul r2, r6, r2 + ldr r6, [sp, #64] + rsb r3, r2, r3 + add ip, r6, r3 + mov r1, ip, asr #8 + cmp r1, r8 + movcc r4, fp + movcs r4, fp + bcs .L12502 + b .L13633 +.L12503: + cmp r8, r2 + bhi .L12504 +.L12502: + ldr r9, [sp, #48] + ldr sl, [sp, #84] + add r4, r4, #1 + add ip, ip, r9 + cmp sl, r4 + mov r2, ip, asr #8 + add r7, r7, #4 + bne .L12503 + b .L12455 +.L13617: + add sp, sp, #88 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L12459: + mov r3, r9, asl #22 + ldr r2, .L13670+24 + mov r3, r3, lsr #22 + cmp r6, #0 + add r9, r2, r3, asl #5 + ble .L12455 + mov r3, r7, asl #16 + mul r2, r0, r1 + mov r7, r3, asr #16 + mul r3, r0, ip + ldr r0, [sp, #44] + ldr r1, [sp, #44] + mul r0, fp, r0 + mul r1, r7, r1 + rsb r3, r0, r3 + ldr r0, [sp, #72] + rsb r2, r1, r2 + add ip, r0, r3 + add r0, lr, r2 + mov r1, r0, asr #8 + mov lr, ip, asr #8 + cmp lr, r8 + cmpcc r1, sl + movcs r3, #0 + movcc r3, #1 + movcs r4, r3 + bcs .L12477 + b .L13668 +.L12478: + cmp r8, lr + cmphi sl, r1 + bhi .L12480 +.L12477: + add r4, r4, #1 + add ip, ip, fp + add r0, r0, r7 + cmp r6, r4 + mov lr, ip, asr #8 + mov r1, r0, asr #8 + add r5, r5, #4 + bne .L12478 + b .L12455 +.L13646: + and r3, r1, #7 + mov r2, lr, asr #3 + mov r3, r3, asl #3 + add r3, r3, r2, asl #6 + mov r1, r1, asr #3 + add r3, r3, r1, asl #10 + and r2, lr, #7 + add r3, r3, r9 + ldrb lr, [r3, r2] @ zero_extendqisi2 + cmp lr, #0 + beq .L12483 + ldr r3, [r5, #0] + ldr r1, [sp, #24] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r2, r1, r2 + orr r1, r1, r3, asl #16 + orr r2, lr, r2 + tst r3, #256 + orr r1, lr, r1 + str r2, [sp, #0] + strne r2, [r5, #0] + streq r1, [r5, #0] +.L12483: + add r4, r4, #1 + add ip, ip, fp + add r0, r0, r7 + cmp r6, r4 + mov lr, ip, asr #8 + mov r1, r0, asr #8 + add r5, r5, #4 + ble .L12455 +.L12480: + cmp sl, r1 + cmphi r8, lr + bhi .L13646 + b .L12455 +.L12495: + mov r3, r9, asl #22 + ldr r4, [sp, #84] + ldr r2, .L13670+24 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp r4, #0 + str r3, [sp, #68] + ble .L12455 + mov r3, fp, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #56] + mul r2, ip, r1 + ldr r3, [sp, #52] + ldr r1, [sp, #56] + ldr r0, [sp, #48] + mul r3, ip, r3 + mul r1, r6, r1 + mul r0, r6, r0 + ldr r6, [sp, #64] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, r6, r3 + add r4, lr, r2 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + cmp ip, r8 + cmpcc lr, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L12517 + b .L13669 +.L12518: + cmp r8, ip + cmphi sl, lr + bhi .L12520 +.L12517: + ldr ip, [sp, #56] + ldr r9, [sp, #48] + ldr r0, [sp, #84] + add r6, r6, #1 + add r4, r4, ip + add r5, r5, r9 + cmp r0, r6 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + add r7, r7, #4 + bne .L12518 + b .L12455 +.L13648: + mov r3, ip, asr #1 + ldr r2, [sp, #68] + and fp, r3, #3 + ldr r3, [sp, #68] + and r1, lr, #7 + and r0, lr, #7 + add r1, r2, r1, asl #2 + add r0, r3, r0, asl #2 + mov r2, ip, asr #1 + mov r3, lr, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, ip, asr #3 + add r3, r3, r2, asl #5 + add r0, r0, r3 + tst ip, #1 + add r1, r1, r3 + ldrneb r3, [r1, fp] @ zero_extendqisi2 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + movne r0, r3, lsr #4 + andeq r0, r3, #15 + ldr r9, [sp, #76] + cmp r0, #0 + orr r0, r0, r9 + beq .L12526 + ldr r2, [r7, #0] + ldr ip, [sp, #24] + mov r3, r2, lsr #16 + orr r1, ip, r0 + mov r3, r3, asl #16 + orr r0, ip, r0 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r7, #0] + streq r0, [r7, #0] +.L12526: + ldr lr, [sp, #48] + ldr r0, [sp, #56] + ldr r1, [sp, #84] + add r6, r6, #1 + add r5, r5, lr + add r4, r4, r0 + cmp r1, r6 + add r7, r7, #4 + mov ip, r5, asr #8 + mov lr, r4, asr #8 + ble .L12455 +.L12520: + cmp sl, lr + cmphi r8, ip + bhi .L13648 + b .L12455 +.L12505: + cmp r8, r1 + bls .L12455 +.L13633: + mov r3, r1, asr #1 + and lr, r3, #3 + mov r3, r1, asr #3 + mov r3, r3, asl #5 + mov r2, r1, asr #1 + tst r1, #1 + and r0, r2, #3 + add r1, r3, r5 + add r2, r3, r5 + ldreqb r3, [r2, r0] @ zero_extendqisi2 + ldrneb r3, [r1, lr] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + ldr lr, [sp, #76] + cmp r2, #0 + orr r3, r2, lr + beq .L12510 + ldr r2, [r7, #0] + ldr r0, [sp, #24] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r1, r3, r1 + orr r3, r0, r2, asl #16 + strne r1, [r7, #0] + streq r3, [r7, #0] +.L12510: + ldr r1, [sp, #48] + ldr r2, [sp, #84] + add r4, r4, #1 + add ip, ip, r1 + cmp r2, r4 + add r7, r7, #4 + mov r1, ip, asr #8 + bgt .L12505 + b .L12455 +.L12468: + cmp r8, r2 + bls .L12455 +.L13631: + mov r3, r2, asr #3 + add r3, sl, r3, asl #6 + and r2, r2, #7 + ldrb ip, [r3, r2] @ zero_extendqisi2 + cmp ip, #0 + beq .L12470 + ldr r3, [r5, #0] + ldr r7, [sp, #24] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r2, r7, r2 + orr r1, r7, r3, asl #16 + orr r4, ip, r2 + tst r3, #256 + orr r2, ip, r1 + strne r4, [r5, #0] + streq r2, [r5, #0] +.L12470: + add lr, lr, #1 + add r0, r0, fp + cmp r6, lr + add r5, r5, #4 + mov r2, r0, asr #8 + bgt .L12468 + b .L12455 +.L13281: + ldr r9, [sp, #8] + add r3, r5, r8 + cmp r3, r9 + bcs .L13649 + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r6, r3, asr #3 + beq .L12455 + ldr r2, [sp, #4] + ldr r3, .L13670+28 + add r1, r2, r5, asl #2 + add r0, r0, r3 + mov r5, #0 + b .L13581 +.L13650: + sub ip, ip, #64 + add r1, r1, #32 +.L13581: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L13582 + ands lr, r2, #255 + beq .L13584 + ldr r3, [r1, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #24] + ldreq r7, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r7, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L13584: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L13588 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L13588: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L13592 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq r4, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, r4, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L13592: + movs r2, r2, lsr #24 + beq .L13582 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L13582: + ldr lr, [ip, #0] + cmp lr, #0 + beq .L13599 + ands r4, lr, #255 + beq .L13601 + ldr r2, [r1, #28] + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L13601: + mov r3, lr, lsr #8 + ands r2, r3, #255 + beq .L13605 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #24] + ldreq r7, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L13605: + mov r3, lr, lsr #16 + ands r2, r3, #255 + beq .L13609 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L13609: + movs lr, lr, lsr #24 + beq .L13599 + ldr r2, [r1, #16] + tst r2, #256 + ldrne sl, [sp, #24] + ldreq r4, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r4, lr + orrne r2, sl, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L13599: + add r5, r5, #1 + cmp r6, r5 + sub r0, r0, #64 + bne .L13650 + b .L12455 +.L12945: + ldr r9, [sp, #8] + add r3, r5, r8 + cmp r9, r3 + bls .L13651 + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r6, r3, asr #3 + beq .L12455 + ldr r2, [sp, #4] + ldr r3, .L13670+32 + add r1, r2, r5, asl #2 + add r0, r0, r3 + mov r4, #0 + b .L13245 +.L13652: + add ip, ip, #64 + add r1, r1, #32 +.L13245: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L13246 + ands lr, r2, #255 + beq .L13248 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r7, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r7, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L13248: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L13252 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L13252: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L13256 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq r5, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, r5, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L13256: + movs lr, r2, lsr #24 + beq .L13246 + ldr r2, [r1, #12] + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, lr + orrne r2, r7, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L13246: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L13263 + ands lr, r2, #255 + beq .L13265 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L13265: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L13269 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r7, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r7, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L13269: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L13273 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L13273: + movs r2, r2, lsr #24 + beq .L13263 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L13263: + add r4, r4, #1 + cmp r6, r4 + add r0, r0, #64 + bne .L13652 + b .L12455 +.L12741: + ldr ip, [sp, #8] + add r3, r5, r8 + cmp ip, r3 + bls .L13653 + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r7, r3, asr #3 + beq .L12455 + ldr ip, [sp, #4] + add r1, ip, r5, asl #2 + mov ip, #0 + b .L12910 +.L13654: + sub r0, r0, #32 + add r1, r1, #32 +.L12910: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L12911 + ands r3, lr, #15 + beq .L12913 + ldr r2, [r1, #28] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L12913: + mov r3, lr, lsr #4 + ands r3, r3, #15 + beq .L12917 + ldr r2, [r1, #24] + orr r4, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L12917: + mov r3, lr, lsr #8 + ands r3, r3, #15 + beq .L12921 + ldr r2, [r1, #20] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L12921: + mov r3, lr, lsr #12 + ands r3, r3, #15 + beq .L12925 + ldr r2, [r1, #16] + orr r4, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L12925: + mov r3, lr, lsr #16 + ands r3, r3, #15 + beq .L12929 + ldr r2, [r1, #12] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L12929: + mov r3, lr, lsr #20 + ands r3, r3, #15 + beq .L12933 + ldr r2, [r1, #8] + orr r4, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L12933: + mov r3, lr, lsr #24 + ands r3, r3, #15 + beq .L12937 + ldr r2, [r1, #4] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L12937: + movs r3, lr, lsr #28 + beq .L12911 + ldr r2, [r1, #0] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L12911: + add ip, ip, #1 + cmp r7, ip + bne .L13654 + b .L12455 +.L12537: + ldr lr, [sp, #8] + add r3, r5, r8 + cmp lr, r3 + bls .L13655 + cmp r8, #0 + add r3, r8, #7 + movge r3, r8 + movs r7, r3, asr #3 + beq .L12455 + ldr lr, [sp, #4] + mov r0, #0 + add r1, lr, r5, asl #2 + b .L12706 +.L13656: + add ip, ip, #32 + add r1, r1, #32 +.L12706: + ldr lr, [ip, #0] + cmp lr, #0 + beq .L12707 + ands r3, lr, #15 + beq .L12709 + ldr r2, [r1, #0] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L12709: + mov r3, lr, lsr #4 + ands r3, r3, #15 + beq .L12713 + ldr r2, [r1, #4] + orr r4, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L12713: + mov r3, lr, lsr #8 + ands r3, r3, #15 + beq .L12717 + ldr r2, [r1, #8] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L12717: + mov r3, lr, lsr #12 + ands r3, r3, #15 + beq .L12721 + ldr r2, [r1, #12] + orr r4, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L12721: + mov r3, lr, lsr #16 + ands r3, r3, #15 + beq .L12725 + ldr r2, [r1, #16] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L12725: + mov r3, lr, lsr #20 + ands r3, r3, #15 + beq .L12729 + ldr r2, [r1, #20] + orr r4, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L12729: + mov r3, lr, lsr #24 + ands r3, r3, #15 + beq .L12733 + ldr r2, [r1, #24] + orr r4, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r4 + orrne r2, r5, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L12733: + movs r3, lr, lsr #28 + beq .L12707 + ldr r2, [r1, #28] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L12707: + add r0, r0, #1 + cmp r7, r0 + bne .L13656 + b .L12455 +.L13643: + add sp, sp, #88 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_color32_2D +.L13655: + rsb r0, r5, lr + cmp r0, #0 + ble .L12455 + ldr r1, [sp, #4] + movs sl, r0, lsr #3 + add r8, r1, r5, asl #2 + beq .L12661 + mov r4, r8 + mov r7, ip + mov r1, #0 +.L12663: + ldr lr, [r7, #0] + cmp lr, #0 + beq .L12664 + ands r3, lr, #15 + beq .L12666 + ldr r2, [r4, #0] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L12666: + mov r3, lr, lsr #4 + ands r3, r3, #15 + beq .L12670 + ldr r2, [r4, #4] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L12670: + mov r3, lr, lsr #8 + ands r3, r3, #15 + beq .L12674 + ldr r2, [r4, #8] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L12674: + mov r3, lr, lsr #12 + ands r3, r3, #15 + beq .L12678 + ldr r2, [r4, #12] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L12678: + mov r3, lr, lsr #16 + ands r3, r3, #15 + beq .L12682 + ldr r2, [r4, #16] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L12682: + mov r3, lr, lsr #20 + ands r3, r3, #15 + beq .L12686 + ldr r2, [r4, #20] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L12686: + mov r3, lr, lsr #24 + ands r3, r3, #15 + beq .L12690 + ldr r2, [r4, #24] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L12690: + movs r3, lr, lsr #28 + beq .L12664 + ldr r2, [r4, #28] + orr lr, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r5, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L12664: + add r1, r1, #1 + cmp sl, r1 + add r7, r7, #32 + add r4, r4, #32 + bne .L12663 + mov r3, sl, asl #5 + add ip, ip, r3 + add r8, r8, r3 +.L12661: + ands r4, r0, #7 + beq .L12455 + ldr ip, [ip, #0] + mov lr, #0 +.L12699: + ands r3, ip, #15 + beq .L12700 + ldr r1, [r8, #0] + ldr sl, [sp, #24] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r8, #0] + streq r2, [r8, #0] +.L12700: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, lsr #4 + add r8, r8, #4 + bne .L12699 + b .L12455 +.L13653: + rsb sl, r5, ip + cmp sl, #0 + ble .L12455 + ldr lr, [sp, #4] + movs ip, sl, lsr #3 + add r8, lr, r5, asl #2 + beq .L12865 + mov r4, r8 + mov r7, r0 + mov r1, #0 +.L12867: + ldr lr, [r7, #0] + cmp lr, #0 + beq .L12868 + ands r3, lr, #15 + beq .L12870 + ldr r2, [r4, #28] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L12870: + mov r3, lr, lsr #4 + ands r3, r3, #15 + beq .L12874 + ldr r2, [r4, #24] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L12874: + mov r3, lr, lsr #8 + ands r3, r3, #15 + beq .L12878 + ldr r2, [r4, #20] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L12878: + mov r3, lr, lsr #12 + ands r3, r3, #15 + beq .L12882 + ldr r2, [r4, #16] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L12882: + mov r3, lr, lsr #16 + ands r3, r3, #15 + beq .L12886 + ldr r2, [r4, #12] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L12886: + mov r3, lr, lsr #20 + ands r3, r3, #15 + beq .L12890 + ldr r2, [r4, #8] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L12890: + mov r3, lr, lsr #24 + ands r3, r3, #15 + beq .L12894 + ldr r2, [r4, #4] + orr r5, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L12894: + movs r3, lr, lsr #28 + beq .L12868 + ldr r2, [r4, #0] + orr lr, r6, r3 + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r5, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L12868: + add r1, r1, #1 + cmp ip, r1 + sub r7, r7, #32 + add r4, r4, #32 + bne .L12867 + rsb r3, ip, ip, asl #27 + add r0, r0, r3, asl #5 + add r8, r8, ip, asl #5 +.L12865: + ands r4, sl, #7 + beq .L12455 + ldr ip, [r0, #0] + mov lr, #0 +.L12903: + movs r3, ip, lsr #28 + beq .L12904 + ldr r1, [r8, #0] + ldr sl, [sp, #24] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, sl, r2 + mov r3, r3, asl #16 + orr r2, sl, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r8, #0] + streq r2, [r8, #0] +.L12904: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #4 + add r8, r8, #4 + bne .L12903 + b .L12455 +.L13651: + rsb r8, r5, r9 + cmp r8, #0 + ble .L12455 + ldr sl, [sp, #4] + movs r7, r8, lsr #3 + add r6, sl, r5, asl #2 + beq .L13178 + ldr r3, .L13672 + mov lr, r6 + add r0, r0, r3 + mov r5, ip + mov r1, #0 +.L13180: + ldr r2, [r5, #0] + cmp r2, #0 + beq .L13181 + ands r4, r2, #255 + beq .L13183 + ldr r3, [lr, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #0] + streq r3, [lr, #0] +.L13183: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L13187 + ldr r3, [lr, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #4] + streq r3, [lr, #4] +.L13187: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L13191 + ldr r3, [lr, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #8] + streq r3, [lr, #8] +.L13191: + movs r4, r2, lsr #24 + beq .L13181 + ldr r2, [lr, #12] + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r4 + orrne r2, r9, r4 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [lr, #12] + streq r3, [lr, #12] +.L13181: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L13198 + ands r4, r2, #255 + beq .L13200 + ldr r3, [lr, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #16] + streq r3, [lr, #16] +.L13200: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L13204 + ldr r3, [lr, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #20] + streq r3, [lr, #20] +.L13204: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L13208 + ldr r3, [lr, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r4, r3 + strne r3, [lr, #24] + streq r3, [lr, #24] +.L13208: + movs r2, r2, lsr #24 + beq .L13198 + ldr r3, [lr, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [lr, #28] + streq r3, [lr, #28] +.L13198: + add r1, r1, #1 + cmp r7, r1 + add r5, r5, #64 + add lr, lr, #32 + add r0, r0, #64 + bne .L13180 + add ip, ip, r7, asl #6 + add r6, r6, r7, asl #5 +.L13178: + ands r4, r8, #7 + beq .L12455 + cmp r4, #3 + ldrls ip, [ip, #0] + bls .L13237 + ldr r2, [ip, #0] + cmp r2, #0 + beq .L13219 + ands r1, r2, #255 + beq .L13221 + ldr r3, [r6, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r6, #0] + streq r3, [r6, #0] +.L13221: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L13225 + ldr r3, [r6, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r0, [sp, #24] + ldreq r5, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r5, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r6, #4] + streq r3, [r6, #4] +.L13225: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L13229 + ldr r3, [r6, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r6, #8] + streq r3, [r6, #8] +.L13229: + movs r1, r2, lsr #24 + beq .L13219 + ldr r2, [r6, #12] + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r1 + orrne r2, r9, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r6, #12] + streq r3, [r6, #12] +.L13219: + subs r4, r4, #4 + ldr ip, [ip, #4] + addne r6, r6, #16 + beq .L12455 +.L13237: + mov lr, #0 +.L13238: + ands r3, ip, #255 + beq .L13239 + ldr r2, [r6, #0] + ldr r0, [sp, #24] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r6, #0] + streq r1, [r6, #0] +.L13239: + add lr, lr, #1 + cmp lr, r4 + mov ip, ip, lsr #8 + add r6, r6, #4 + bcc .L13238 + b .L12455 +.L13649: + rsb sl, r5, r9 + cmp sl, #0 + ble .L12455 + ldr lr, [sp, #4] + movs r8, sl, lsr #3 + add r7, lr, r5, asl #2 + beq .L13514 + ldr r3, .L13672+4 + mov r4, r7 + add r0, r0, r3 + mov r6, ip + mov r1, #0 +.L13516: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L13517 + ands lr, r2, #255 + beq .L13519 + ldr r3, [r4, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L13519: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L13523 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L13523: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L13527 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r9, r3, asl #16 + orrne r3, lr, r3 + orreq r3, lr, r3 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L13527: + movs r2, r2, lsr #24 + beq .L13517 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne lr, [sp, #24] + ldreq r5, [sp, #24] + movne r3, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r5, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L13517: + ldr lr, [r6, #0] + cmp lr, #0 + beq .L13534 + ands r5, lr, #255 + beq .L13536 + ldr r2, [r4, #28] + tst r2, #256 + ldrne r9, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, r5 + orrne r2, r9, r5 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L13536: + mov r3, lr, lsr #8 + ands r2, r3, #255 + beq .L13540 + ldr r3, [r4, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L13540: + mov r3, lr, lsr #16 + ands r2, r3, #255 + beq .L13544 + ldr r3, [r4, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L13544: + movs lr, lr, lsr #24 + beq .L13534 + ldr r2, [r4, #16] + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r9, lr + orrne r2, r5, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L13534: + add r1, r1, #1 + cmp r8, r1 + sub r6, r6, #64 + add r4, r4, #32 + sub r0, r0, #64 + bne .L13516 + rsb r3, r8, r8, asl #26 + add ip, ip, r3, asl #6 + add r7, r7, r8, asl #5 +.L13514: + ands r4, sl, #7 + beq .L12455 + cmp r4, #3 + ldrls ip, [ip, #4] + bls .L13573 + ldr r2, [ip, #4] + cmp r2, #0 + beq .L13555 + ands r1, r2, #255 + beq .L13557 + ldr r3, [r7, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r7, #12] + streq r3, [r7, #12] +.L13557: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L13561 + ldr r3, [r7, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r0, [sp, #24] + ldreq r5, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r5, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r7, #8] + streq r3, [r7, #8] +.L13561: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L13565 + ldr r3, [r7, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r7, #4] + streq r3, [r7, #4] +.L13565: + movs r2, r2, lsr #24 + beq .L13555 + ldr r3, [r7, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r7, #0] + streq r3, [r7, #0] +.L13555: + subs r4, r4, #4 + ldr ip, [ip, #0] + addne r7, r7, #16 + beq .L12455 +.L13573: + mov lr, #0 +.L13574: + movs r3, ip, lsr #24 + beq .L13575 + ldr r2, [r7, #0] + ldr r0, [sp, #24] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [r7, #0] + streq r1, [r7, #0] +.L13575: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #8 + add r7, r7, #4 + bhi .L13574 + b .L12455 +.L13284: + mov r3, r0, lsr #3 + ands r2, r0, #7 + sub r4, ip, r3, asl #6 + ldreq r0, [sp, #60] + beq .L13434 + cmp r2, #3 + rsb r6, r2, #8 + bhi .L13657 + subs r8, r6, #4 + ldr r1, [r4, #4] + ldreq r1, [sp, #60] + beq .L13449 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr lr, [sp, #60] + mov r5, #0 +.L13450: + movs r3, ip, lsr #24 + beq .L13451 + ldr r2, [lr, #0] + ldr r9, [sp, #24] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13451: + add r5, r5, #1 + cmp r8, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13450 + ldr sl, [sp, #60] + add r3, sl, r6, asl #2 + sub r1, r3, #16 +.L13449: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L13457 + ands r0, r2, #255 + beq .L13459 + ldr r3, [r1, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L13459: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L13463 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L13463: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L13467 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L13467: + movs r2, r2, lsr #24 + beq .L13457 + ldr r3, [r1, #0] + tst r3, #256 + beq .L13472 + mov r3, r3, lsr #16 + ldr sl, [sp, #24] + mov r3, r3, asl #16 + orr r3, sl, r3 + orr r3, r2, r3 + str r3, [r1, #0] +.L13457: + add r0, r1, #16 +.L13439: + sub r4, r4, #64 +.L13434: + movs r5, r7, lsr #3 + beq .L12455 + mov lr, #0 + b .L13475 +.L13658: + sub r4, r4, #64 + add r0, r0, #32 +.L13475: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L13476 + ands r1, r2, #255 + beq .L13478 + ldr r3, [r0, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r6, [sp, #24] + ldreq r7, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r6, r3 + orreq r3, r7, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L13478: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L13482 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L13482: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L13486 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne sl, [sp, #24] + ldreq ip, [sp, #24] + movne r3, r3, asl #16 + orrne r3, sl, r3 + orreq r3, ip, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r1, r3 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L13486: + movs r2, r2, lsr #24 + beq .L13476 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r1, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L13476: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L13493 + ands ip, r1, #255 + beq .L13495 + ldr r2, [r0, #28] + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, ip + orrne r2, r7, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L13495: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L13499 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L13499: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L13503 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L13503: + movs r1, r1, lsr #24 + beq .L13493 + ldr r2, [r0, #16] + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, r1 + orrne r2, r7, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L13493: + add lr, lr, #1 + cmp lr, r5 + bne .L13658 + b .L12455 +.L12948: + ands r2, r0, #7 + mov r3, r0, lsr #3 + add r4, ip, r3, asl #6 + ldreq r1, [sp, #60] + beq .L13098 + cmp r2, #3 + rsb r6, r2, #8 + bhi .L13659 + subs r8, r6, #4 + ldr r1, [r4, #0] + ldreq r1, [sp, #60] + beq .L13113 + mov r3, r2, asl #3 + mov ip, r1, lsr r3 + ldr lr, [sp, #60] + mov r5, #0 +.L13114: + ands r3, ip, #255 + beq .L13115 + ldr r2, [lr, #0] + ldr r9, [sp, #24] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13115: + add r5, r5, #1 + cmp r8, r5 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L13114 + ldr sl, [sp, #60] + add r3, sl, r6, asl #2 + sub r1, r3, #16 +.L13113: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L13121 + ands r0, r2, #255 + beq .L13123 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L13123: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L13127 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L13127: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L13131 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L13131: + movs r2, r2, lsr #24 + beq .L13121 + ldr r3, [r1, #12] + tst r3, #256 + beq .L13136 + mov r3, r3, lsr #16 + ldr sl, [sp, #24] + mov r3, r3, asl #16 + orr r3, sl, r3 + orr r3, r2, r3 + str r3, [r1, #12] +.L13121: + add r1, r1, #16 +.L13103: + add r4, r4, #64 +.L13098: + movs lr, r7, lsr #3 + beq .L12455 + mov ip, #0 + b .L13139 +.L13660: + add r4, r4, #64 + add r1, r1, #32 +.L13139: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L13140 + ands r0, r2, #255 + beq .L13142 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L13142: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L13146 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L13146: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L13150 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L13150: + movs r0, r2, lsr #24 + beq .L13140 + ldr r2, [r1, #12] + tst r2, #256 + ldrne r5, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r6, r0 + orrne r2, r5, r0 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L13140: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L13157 + ands r0, r2, #255 + beq .L13159 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L13159: + mov r3, r2, lsr #8 + ands r0, r3, #255 + beq .L13163 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r9, r3 + orreq r3, sl, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L13163: + mov r3, r2, lsr #16 + ands r0, r3, #255 + beq .L13167 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r5, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r5, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L13167: + movs r2, r2, lsr #24 + beq .L13157 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r8, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r2, r3 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L13157: + add ip, ip, #1 + cmp ip, lr + bne .L13660 + b .L12455 +.L12744: + ands r2, lr, #7 + mov r3, lr, lsr #3 + sub ip, r0, r3, asl #5 + ldreq r0, [sp, #60] + beq .L12815 + rsbs r8, r2, #8 + ldr r1, [ip, #0] + ldreq r0, [sp, #60] + beq .L12818 + mov r3, r2, asl #2 + mov lr, r1, asl r3 + ldr r4, [sp, #60] + mov r5, #0 +.L12819: + movs r3, lr, lsr #28 + beq .L12820 + ldr r1, [r4, #0] + orr r2, r6, r3 + ldr r3, [sp, #24] + ldr r9, [sp, #24] + orr r0, r3, r2 + mov r3, r1, lsr #16 + mov r3, r3, asl #16 + orr r2, r9, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L12820: + add r5, r5, #1 + cmp r5, r8 + mov lr, lr, asl #4 + add r4, r4, #4 + bne .L12819 + ldr sl, [sp, #60] + add r0, sl, r8, asl #2 +.L12818: + sub ip, ip, #32 +.L12815: + movs r5, r7, lsr #3 + beq .L12455 + mov r4, #0 + b .L12827 +.L13673: + .align 2 +.L13672: + .word vram+65600 + .word vram+65472 +.L13661: + sub ip, ip, #32 + add r0, r0, #32 +.L12827: + ldr r1, [ip, #0] + cmp r1, #0 + beq .L12828 + ands r3, r1, #15 + beq .L12830 + ldr r2, [r0, #28] + orr lr, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, lr + orrne r2, r7, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L12830: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L12834 + ldr r2, [r0, #24] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L12834: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L12838 + ldr r2, [r0, #20] + orr lr, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, lr + orrne r2, r7, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L12838: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L12842 + ldr r2, [r0, #16] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L12842: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L12846 + ldr r2, [r0, #12] + orr lr, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, lr + orrne r2, r7, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L12846: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L12850 + ldr r2, [r0, #8] + orr lr, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, lr + orrne r2, r9, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L12850: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L12854 + ldr r2, [r0, #4] + orr lr, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, lr + orrne r2, r7, lr + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L12854: + movs r3, r1, lsr #28 + beq .L12828 + ldr r2, [r0, #0] + orr r1, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r1 + orrne r2, r9, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L12828: + add r4, r4, #1 + cmp r5, r4 + bne .L13661 + b .L12455 +.L12540: + mov r3, lr, lsr #3 + mov r0, r3, asl #5 + ands r3, lr, #7 + add r5, ip, r0 + ldreq r0, [sp, #60] + beq .L12611 + rsbs r8, r3, #8 + ldr r0, [ip, r0] + ldreq r0, [sp, #60] + beq .L12614 + mov r3, r3, asl #2 + mov ip, r0, lsr r3 + ldr lr, [sp, #60] + mov r4, #0 +.L12615: + ands r3, ip, #15 + beq .L12616 + ldr r1, [lr, #0] + orr r2, r6, r3 + ldr r3, [sp, #24] + ldr r9, [sp, #24] + orr r0, r3, r2 + mov r3, r1, lsr #16 + mov r3, r3, asl #16 + orr r2, r9, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L12616: + add r4, r4, #1 + cmp r8, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L12615 + ldr sl, [sp, #60] + add r0, sl, r8, asl #2 +.L12614: + add r5, r5, #32 +.L12611: + movs r4, r7, lsr #3 + beq .L12455 + mov lr, #0 + b .L12623 +.L13662: + add r5, r5, #32 + add r0, r0, #32 +.L12623: + ldr r1, [r5, #0] + cmp r1, #0 + beq .L12624 + ands r3, r1, #15 + beq .L12626 + ldr r2, [r0, #0] + orr ip, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, ip + orrne r2, r7, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L12626: + mov r3, r1, lsr #4 + ands r3, r3, #15 + beq .L12630 + ldr r2, [r0, #4] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L12630: + mov r3, r1, lsr #8 + ands r3, r3, #15 + beq .L12634 + ldr r2, [r0, #8] + orr ip, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, ip + orrne r2, r7, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L12634: + mov r3, r1, lsr #12 + ands r3, r3, #15 + beq .L12638 + ldr r2, [r0, #12] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L12638: + mov r3, r1, lsr #16 + ands r3, r3, #15 + beq .L12642 + ldr r2, [r0, #16] + orr ip, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, ip + orrne r2, r7, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L12642: + mov r3, r1, lsr #20 + ands r3, r3, #15 + beq .L12646 + ldr r2, [r0, #20] + orr ip, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, ip + orrne r2, r9, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L12646: + mov r3, r1, lsr #24 + ands r3, r3, #15 + beq .L12650 + ldr r2, [r0, #24] + orr ip, r6, r3 + tst r2, #256 + ldrne r7, [sp, #24] + ldreq r8, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, r8, ip + orrne r2, r7, ip + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L12650: + movs r3, r1, lsr #28 + beq .L12624 + ldr r2, [r0, #28] + orr r1, r6, r3 + tst r2, #256 + ldrne r9, [sp, #24] + ldreq sl, [sp, #24] + movne r3, r2, lsr #16 + movne r3, r3, asl #16 + orreq r3, sl, r1 + orrne r2, r9, r1 + orrne r3, r3, r2 + orreq r3, r3, r2, asl #16 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L12624: + add lr, lr, #1 + cmp r4, lr + bne .L13662 + b .L12455 +.L12504: + mov r1, r2 + b .L13633 +.L12746: + ldr r2, [sp, #80] + rsb r7, r4, #8 + cmp r2, r7 + blt .L13663 + cmp r7, #0 + ldr r2, [ip, #0] + ldreq r5, [sp, #60] + beq .L12761 + mov r3, r4, asl #2 + mov lr, r2, asl r3 + ldr r4, [sp, #60] + mov r5, #0 +.L12762: + movs r3, lr, lsr #28 + beq .L12763 + ldr r1, [r4, #0] + ldr r8, [sp, #24] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r8, r2 + mov r3, r3, asl #16 + orr r2, r8, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L12763: + add r5, r5, #1 + cmp r7, r5 + mov lr, lr, asl #4 + add r4, r4, #4 + bne .L12762 + ldr r9, [sp, #60] + add r5, r9, r7, asl #2 +.L12761: + ldr lr, [sp, #80] + sub ip, ip, #32 + rsb sl, r7, lr + b .L12748 +.L13286: + ldr r3, [sp, #80] + rsb r5, lr, #8 + cmp r3, r5 + blt .L13664 + cmp lr, #3 + bls .L13327 + cmp r5, #0 + ldr r2, [r8, #0] + ldreq r4, [sp, #60] + beq .L13331 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #60] + mov r4, #0 +.L13332: + movs r3, ip, lsr #24 + beq .L13333 + ldr r2, [lr, #0] + ldr r7, [sp, #24] + tst r2, #256 + orr r1, r7, r3 + orr r0, r7, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13333: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13332 + ldr ip, [sp, #60] + add r4, ip, r5, asl #2 +.L13331: + ldr r0, [sp, #80] + sub r8, r8, #64 + rsb r7, r5, r0 + b .L13288 +.L12950: + ldr r2, [sp, #80] + rsb r5, lr, #8 + cmp r2, r5 + blt .L13665 + cmp lr, #3 + bls .L12991 + cmp r5, #0 + ldr r2, [r7, #4] + ldreq r4, [sp, #60] + beq .L12995 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #60] + mov r4, #0 +.L12996: + ands r3, ip, #255 + beq .L12997 + ldr r2, [lr, #0] + ldr r8, [sp, #24] + tst r2, #256 + orr r1, r8, r3 + orr r0, r8, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12997: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L12996 + ldr ip, [sp, #60] + add r4, ip, r5, asl #2 +.L12995: + ldr r0, [sp, #80] + add r7, r7, #64 + rsb r6, r5, r0 + b .L12952 +.L12542: + ldr r8, [sp, #80] + rsb r5, r3, #8 + cmp r8, r5 + blt .L13666 + cmp r5, #0 + ldr r2, [r7, #0] + ldreq r4, [sp, #60] + beq .L12557 + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr lr, [sp, #60] + mov r4, #0 +.L12558: + ands r3, ip, #15 + beq .L12559 + ldr r1, [lr, #0] + orr r2, r6, r3 + ldr r3, [sp, #24] + ldr r8, [sp, #24] + orr r0, r3, r2 + mov r3, r1, lsr #16 + mov r3, r3, asl #16 + orr r2, r8, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L12559: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L12558 + ldr r9, [sp, #60] + add r4, r9, r5, asl #2 +.L12557: + ldr ip, [sp, #80] + add r7, r7, #32 + rsb sl, r5, ip + b .L12544 +.L13659: + cmp r6, #0 + ldr r1, [r4, #4] + ldreq r1, [sp, #60] + beq .L13103 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, lsr r3 + ldr lr, [sp, #60] + mov r5, #0 +.L13104: + ands r3, ip, #255 + beq .L13105 + ldr r2, [lr, #0] + ldr r8, [sp, #24] + tst r2, #256 + orr r1, r8, r3 + orr r0, r8, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13105: + add r5, r5, #1 + cmp r5, r6 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L13104 + ldr ip, [sp, #60] + add r4, r4, #64 + add r1, ip, r6, asl #2 + b .L13098 +.L13666: + cmp r8, #0 + ble .L12455 + ldr r2, [ip, r0] + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr lr, [sp, #60] + mov r4, #0 +.L12549: + ands r3, ip, #15 + beq .L12550 + ldr r1, [lr, #0] + ldr r9, [sp, #24] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r9, r2 + mov r3, r3, asl #16 + orr r2, r9, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L12550: + ldr sl, [sp, #80] + add r4, r4, #1 + cmp sl, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L12549 + b .L12455 +.L13657: + cmp r6, #0 + ldr r1, [r4, #0] + ldreq r0, [sp, #60] + beq .L13439 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr lr, [sp, #60] + mov r5, #0 +.L13440: + movs r3, ip, lsr #24 + beq .L13441 + ldr r2, [lr, #0] + ldr r8, [sp, #24] + tst r2, #256 + orr r1, r8, r3 + orr r0, r8, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13441: + add r5, r5, #1 + cmp r5, r6 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13440 + ldr ip, [sp, #60] + sub r4, r4, #64 + add r0, ip, r6, asl #2 + b .L13434 +.L13664: + cmp r3, #0 + ble .L12455 + cmp lr, #3 + bls .L13292 + mov r3, lr, asl #3 + ldr r2, [r8, #0] + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #60] + mov r4, #0 +.L13295: + movs r3, ip, lsr #24 + beq .L13296 + ldr r2, [lr, #0] + ldr r5, [sp, #24] + tst r2, #256 + orr r1, r5, r3 + orr r0, r5, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13296: + ldr r6, [sp, #80] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13295 + b .L12455 +.L13665: + cmp r2, #0 + ble .L12455 + cmp lr, #3 + bls .L12956 + mov r3, lr, asl #3 + ldr r2, [r7, #4] + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #60] + mov r4, #0 +.L12959: + ands r3, ip, #255 + beq .L12960 + ldr r2, [lr, #0] + ldr r5, [sp, #24] + tst r2, #256 + orr r1, r5, r3 + orr r0, r5, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12960: + ldr r6, [sp, #80] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L12959 + b .L12455 +.L13663: + cmp r2, #0 + ble .L12455 + ldr r2, [ip, #0] + mov r3, r4, asl #2 + mov ip, r2, asl r3 + ldr lr, [sp, #60] + mov r4, #0 +.L12753: + movs r3, ip, lsr #28 + beq .L12754 + ldr r1, [lr, #0] + orr r2, r6, r3 + ldr r3, [sp, #24] + ldr r5, [sp, #24] + orr r0, r3, r2 + mov r3, r1, lsr #16 + mov r3, r3, asl #16 + orr r2, r5, r2 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L12754: + ldr r7, [sp, #80] + add r4, r4, #1 + cmp r7, r4 + mov ip, ip, asl #4 + add lr, lr, #4 + bne .L12753 + b .L12455 +.L13669: + mov r6, #0 + b .L12520 +.L13668: + mov r4, #0 + b .L12480 +.L13327: + subs r6, r5, #4 + ldr r2, [r8, #4] + ldreq r2, [sp, #60] + beq .L13341 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #60] + mov r4, #0 +.L13342: + movs r3, ip, lsr #24 + beq .L13343 + ldr r2, [lr, #0] + ldr r9, [sp, #24] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13343: + add r4, r4, #1 + cmp r4, r6 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13342 + ldr sl, [sp, #60] + add r3, sl, r5, asl #2 + sub r2, r3, #16 +.L13341: + ldr r1, [r8, #0] + cmp r1, #0 + beq .L13349 + ands r0, r1, #255 + beq .L13351 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #12] + streq r3, [r2, #12] +.L13351: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L13355 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L13355: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L13359 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r7, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r7, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L13359: + movs r1, r1, lsr #24 + beq .L13349 + ldr r3, [r2, #0] + tst r3, #256 + beq .L13364 + mov r3, r3, lsr #16 + ldr sl, [sp, #24] + mov r3, r3, asl #16 + orr r3, sl, r3 + orr r3, r1, r3 + str r3, [r2, #0] +.L13349: + add r4, r2, #16 + b .L13331 +.L12991: + subs r6, r5, #4 + ldr r2, [r7, #0] + ldreq r2, [sp, #60] + beq .L13005 + mov r3, lr, asl #3 + mov ip, r2, lsr r3 + ldr lr, [sp, #60] + mov r4, #0 +.L13006: + ands r3, ip, #255 + beq .L13007 + ldr r2, [lr, #0] + ldr r9, [sp, #24] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13007: + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L13006 + ldr sl, [sp, #60] + add r3, sl, r5, asl #2 + sub r2, r3, #16 +.L13005: + ldr r1, [r7, #4] + cmp r1, #0 + beq .L13013 + ands r0, r1, #255 + beq .L13015 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne ip, [sp, #24] + ldreq lr, [sp, #24] + movne r3, r3, asl #16 + orrne r3, ip, r3 + orreq r3, lr, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #0] + streq r3, [r2, #0] +.L13015: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L13019 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r4, [sp, #24] + ldreq r6, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r6, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L13019: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L13023 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + ldrne r8, [sp, #24] + ldreq r9, [sp, #24] + movne r3, r3, asl #16 + orrne r3, r8, r3 + orreq r3, r9, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r0, r3 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L13023: + movs r1, r1, lsr #24 + beq .L13013 + ldr r3, [r2, #12] + tst r3, #256 + beq .L13028 + mov r3, r3, lsr #16 + ldr sl, [sp, #24] + mov r3, r3, asl #16 + orr r3, sl, r3 + orr r3, r1, r3 + str r3, [r2, #12] +.L13013: + add r4, r2, #16 + b .L12995 +.L13667: + mov lr, r7 + b .L13631 +.L13292: + ldr r7, [sp, #80] + mov r3, lr, asl #3 + ldr r1, [r8, #4] + add r2, r7, lr + sub r3, r3, #32 + cmp r2, #4 + mov ip, r1, asl r3 + bhi .L13301 + cmp r7, #0 + ldrne lr, [sp, #60] + movne r4, #0 + beq .L12455 +.L13321: + movs r3, ip, lsr #24 + beq .L13322 + ldr r2, [lr, #0] + ldr r5, [sp, #24] + tst r2, #256 + orr r1, r5, r3 + orr r0, r5, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13322: + ldr r6, [sp, #80] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13321 + b .L12455 +.L12956: + ldr r8, [sp, #80] + ldr r3, [r7, #0] + add r2, r8, lr + mov r1, lr, asl #3 + cmp r2, #4 + mov ip, r3, lsr r1 + bhi .L12965 + cmp r8, #0 + ldrne lr, [sp, #60] + movne r4, #0 + beq .L12455 +.L12985: + ands r3, ip, #255 + beq .L12986 + ldr r2, [lr, #0] + ldr r5, [sp, #24] + tst r2, #256 + orr r1, r5, r3 + orr r0, r5, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12986: + ldr r6, [sp, #80] + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L12985 + b .L12455 +.L12965: + rsbs r5, lr, #4 + ldreq lr, [sp, #60] + beq .L12970 + ldr lr, [sp, #60] + mov r4, #0 +.L12971: + ands r3, ip, #255 + beq .L12972 + ldr r2, [lr, #0] + ldr r9, [sp, #24] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12972: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L12971 + ldr sl, [sp, #60] + add lr, sl, r5, asl #2 +.L12970: + ldr ip, [sp, #80] + subs r5, ip, r5 + ldr ip, [r7, #4] + beq .L12455 + mov r4, #0 +.L12979: + ands r3, ip, #255 + beq .L12980 + ldr r2, [lr, #0] + ldr r0, [sp, #24] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L12980: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L12979 + b .L12455 +.L13301: + rsbs r5, lr, #4 + ldreq lr, [sp, #60] + beq .L13306 + ldr lr, [sp, #60] + mov r4, #0 +.L13307: + movs r3, ip, lsr #24 + beq .L13308 + ldr r2, [lr, #0] + ldr r9, [sp, #24] + tst r2, #256 + orr r1, r9, r3 + orr r0, r9, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13308: + add r4, r4, #1 + cmp r4, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13307 + ldr sl, [sp, #60] + add lr, sl, r5, asl #2 +.L13306: + ldr ip, [sp, #80] + subs r5, ip, r5 + ldr ip, [r8, #0] + beq .L12455 + mov r4, #0 +.L13315: + movs r3, ip, lsr #24 + beq .L13316 + ldr r2, [lr, #0] + ldr r0, [sp, #24] + tst r2, #256 + orr r1, r0, r3 + orr r0, r0, r3 + mov r3, r2, lsr #16 + mov r3, r3, asl #16 + orr r3, r3, r1 + orr r1, r0, r2, asl #16 + strne r3, [lr, #0] + streq r1, [lr, #0] +.L13316: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L13315 + b .L12455 +.L13136: + ldr lr, [sp, #24] + orr r3, lr, r3, asl #16 + orr r3, r2, r3 + str r3, [r1, #12] + add r1, r1, #16 + b .L13103 +.L13472: + ldr lr, [sp, #24] + add r0, r1, #16 + orr r3, lr, r3, asl #16 + orr r3, r2, r3 + str r3, [r1, #0] + b .L13439 +.L13364: + ldr lr, [sp, #24] + add r4, r2, #16 + orr r3, lr, r3, asl #16 + orr r3, r1, r3 + str r3, [r2, #0] + b .L13331 +.L13028: + ldr lr, [sp, #24] + add r4, r2, #16 + orr r3, lr, r3, asl #16 + orr r3, r1, r3 + str r3, [r2, #12] + b .L12995 + .size render_scanline_obj_alpha_obj_2D, .-render_scanline_obj_alpha_obj_2D + .align 2 + .global render_scanline_obj_partial_alpha_1D + .type render_scanline_obj_partial_alpha_1D, %function +render_scanline_obj_partial_alpha_1D: + @ args = 0, pretend = 0, frame = 148 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L15733 + sub sp, sp, #148 + ldrh r4, [ip, #6] + add r0, r0, r0, asl #2 + str r4, [sp, #40] + ldr r5, [sp, #40] + ldrh r4, [ip, #80] + ldr ip, .L15733+4 + add r0, r5, r0, asl #5 + ldr ip, [ip, r0, asl #2] + mov lr, r4, lsr #11 + and lr, lr, #2 + mov r4, r4, asl #27 + str ip, [sp, #44] + orr lr, lr, r4, lsr #31 + cmp ip, #0 + ldr ip, .L15733+8 + mov lr, lr, asl #9 + add r0, ip, r0, asl #7 + orr lr, lr, #256 + str r0, [sp, #48] + str r1, [sp, #8] + str r2, [sp, #4] + str r3, [sp, #0] + str lr, [sp, #28] + beq .L15634 + mov ip, #0 + add r7, r3, r1, asl #2 + rsb r8, r1, r2 + str r7, [sp, #108] + str r8, [sp, #144] + str ip, [sp, #32] + mov lr, ip +.L13677: + ldr r0, [sp, #48] + ldr r1, .L15733+12 + ldrb r3, [lr, r0] @ zero_extendqisi2 + mov r3, r3, asl #3 + ldrh lr, [r3, r1] + add r3, r3, r1 + ldrh r4, [r3, #2] + mov r0, lr, lsr #12 + and r2, r0, #12 + ldrh r3, [r3, #4] + orr r1, r2, r4, lsr #14 + and ip, lr, #255 + mov r2, r4, asl #23 + cmp ip, #160 + str r3, [sp, #36] + mov r5, r2, asr #23 + ldr r3, .L15733+16 + ldr r2, .L15733+20 + subgt ip, ip, #256 + tst lr, #3072 + ldr r7, [r2, r1, asl #2] + ldr sl, [r3, r1, asl #2] + beq .L13680 + tst lr, #256 + beq .L13682 + tst lr, #8192 + beq .L13684 + mov r3, r4, lsr #4 + ldr r4, .L15733+12 + add r2, r7, r7, lsr #31 + and r3, r3, #992 + tst lr, #512 + add r3, r3, r4 + mov lr, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #8] + mov r4, r1, asr #1 + ldrh r9, [r3, #30] + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq r6, r7 + moveq fp, lr + moveq r0, r4 + movne r6, r7, asl #1 + movne fp, lr, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + str r3, [sp, #12] + bge .L13689 + rsb r2, r5, r2 + rsb r6, r2, r6 + cmp r6, #0 + ble .L13691 + ldr r5, [sp, #8] + rsb fp, r2, fp +.L13689: + ldr r2, [sp, #4] + add r3, r5, r6 + cmp r3, r2 + blt .L13693 + rsb r6, r5, r2 + cmp r6, #0 + ble .L13691 +.L13693: + mov r2, r1, asl #16 + mov r3, r8, asl #16 + mov r2, r2, asr #16 + ldr r8, [sp, #12] + add r0, ip, r0 + str r2, [sp, #52] + ldr ip, [sp, #0] + ldr r2, [sp, #40] + mov r1, r9, asl #16 + mov lr, lr, asl #8 + cmp r8, #0 + str lr, [sp, #128] + mov r9, r3, asr #16 + mov r1, r1, asr #16 + mov r4, r4, asl #8 + add r5, ip, r5, asl #2 + rsb lr, r0, r2 + bne .L13695 + mla r3, lr, r1, r4 + mov r2, r3, asr #8 + cmp r2, sl + bcs .L13691 + cmp r7, #0 + ldr r4, [sp, #36] + add r3, r7, #7 + movge r3, r7 + mov r1, r4, asl #22 + mov r3, r3, asr #3 + mov r0, r2, lsr #3 + mov r3, r3, asl #1 + mov r1, r1, lsr #22 + mla ip, r3, r0, r1 + and r2, r2, #7 + ldr r8, .L15733+24 + add r2, r2, ip, asl #2 + cmp r6, #0 + add r4, r8, r2, asl #3 + ble .L13691 + ldr r3, [sp, #52] + mul r2, r9, fp + mul r3, lr, r3 + ldr ip, [sp, #128] + rsb r3, r2, r3 + add r0, ip, r3 + mov r2, r0, asr #8 + cmp r2, r7 + ldrcs ip, [sp, #12] + bcs .L13701 + b .L15725 +.L13702: + cmp r2, r7 + bcc .L15660 +.L13701: + add ip, ip, #1 + add r0, r0, r9 + cmp r6, ip + mov r2, r0, asr #8 + add r5, r5, #4 + bne .L13702 +.L13691: + ldr r0, [sp, #32] + ldr r1, [sp, #44] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #32] + beq .L15634 +.L15686: + ldr lr, [sp, #32] + b .L13677 +.L13680: + tst lr, #256 + beq .L14852 + tst lr, #8192 + beq .L14854 + mov r3, r4, lsr #4 + ldr r4, .L15733+12 + add r1, sl, sl, lsr #31 + and r3, r3, #992 + add r3, r3, r4 + add r2, r7, r7, lsr #31 + mov r4, r1, asr #1 + ldr r1, [sp, #8] + tst lr, #512 + ldrh r8, [r3, #30] + mov lr, r2, asr #1 + moveq r9, r7 + moveq r6, lr + moveq r0, r4 + movne r9, r7, asl #1 + movne r6, lr, asl #1 + movne r0, r4, asl #1 + cmp r5, r1 + str r8, [sp, #20] + ldrh r2, [r3, #14] + ldrh r8, [r3, #6] + ldrh fp, [r3, #22] + bge .L14859 + rsb r1, r5, r1 + rsb r9, r1, r9 + cmp r9, #0 + ble .L13691 + ldr r5, [sp, #8] + rsb r6, r1, r6 +.L14859: + ldr r1, [sp, #4] + add r3, r5, r9 + cmp r3, r1 + blt .L14862 + rsb r9, r5, r1 + cmp r9, #0 + ble .L13691 +.L14862: + mov r2, r2, asl #16 + mov r3, r8, asl #16 + mov r2, r2, asr #16 + ldr r8, [sp, #20] + mov lr, lr, asl #8 + str r2, [sp, #76] + str lr, [sp, #80] + ldr r2, [sp, #40] + ldr lr, [sp, #0] + add r0, ip, r0 + mov r1, r8, asl #16 + mov r3, r3, asr #16 + cmp fp, #0 + add r8, lr, r5, asl #2 + str r3, [sp, #72] + mov r1, r1, asr #16 + mov ip, r4, asl #8 + rsb lr, r0, r2 + bne .L14864 + mla r3, lr, r1, ip + mov r2, r3, asr #8 + cmp r2, sl + bcs .L13691 + cmp r7, #0 + ldr r4, [sp, #36] + add r3, r7, #7 + movge r3, r7 + mov r1, r4, asl #22 + mov r3, r3, asr #3 + mov r0, r2, lsr #3 + mov r3, r3, asl #1 + mov r1, r1, lsr #22 + mla ip, r3, r0, r1 + and r2, r2, #7 + ldr r5, .L15733+24 + add r2, r2, ip, asl #2 + cmp r9, #0 + add r4, r5, r2, asl #3 + ble .L13691 + ldr r3, [sp, #76] + ldr r2, [sp, #72] + mul r3, lr, r3 + mul r2, r6, r2 + ldr ip, [sp, #80] + rsb r3, r2, r3 + add r0, ip, r3 + mov lr, r0, asr #8 + cmp lr, r7 + movcs ip, fp + bcs .L14870 + b .L15726 +.L14871: + cmp lr, r7 + bcc .L15672 +.L14870: + ldr lr, [sp, #72] + add ip, ip, #1 + add r0, r0, lr + cmp r9, ip + mov lr, r0, asr #8 + add r8, r8, #4 + bne .L14871 + ldr r0, [sp, #32] + ldr r1, [sp, #44] + add r0, r0, #1 + cmp r0, r1 + str r0, [sp, #32] + bne .L15686 +.L15634: + add sp, sp, #148 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L13682: + ldr r1, [sp, #40] + tst r4, #8192 + rsb ip, ip, r1 + rsbne r3, ip, sl + subne ip, r3, #1 + mov r2, r4, asl #19 + and r3, r0, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L13691 + .p2align 2 +.L13771: + .word .L13767 + .word .L13768 + .word .L13769 + .word .L13770 +.L14852: + ldr lr, [sp, #40] + tst r4, #8192 + rsb ip, ip, lr + rsbne r3, ip, sl + subne ip, r3, #1 + mov r2, r4, asl #19 + and r3, r0, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L13691 + .p2align 2 +.L14933: + .word .L14929 + .word .L14930 + .word .L14931 + .word .L14932 +.L14854: + mov r3, r4, lsr #4 + ldr r1, .L15733+12 + and r3, r3, #992 + add r3, r3, r1 + ldrh r4, [r3, #30] + add r1, sl, sl, lsr #31 + add r2, r7, r7, lsr #31 + str r4, [sp, #24] + mov r4, r1, asr #1 + ldr r1, [sp, #8] + tst lr, #512 + mov lr, r2, asr #1 + moveq fp, r7 + moveq r6, lr + moveq r0, r4 + movne fp, r7, asl #1 + movne r6, lr, asl #1 + movne r0, r4, asl #1 + cmp r5, r1 + ldrh r8, [r3, #6] + ldrh r2, [r3, #14] + ldrh r9, [r3, #22] + bge .L14891 + rsb r1, r5, r1 + rsb fp, r1, fp + cmp fp, #0 + ble .L13691 + ldr r5, [sp, #8] + rsb r6, r1, r6 +.L14891: + ldr r1, [sp, #4] + add r3, r5, fp + cmp r3, r1 + blt .L14894 + rsb fp, r5, r1 + cmp fp, #0 + ble .L13691 +.L14894: + mov r3, r8, asl #16 + ldr r8, [sp, #24] + mov r2, r2, asl #16 + mov r1, r8, asl #16 + ldr r8, [sp, #36] + mov r2, r2, asr #16 + mov lr, lr, asl #8 + add ip, ip, r0 + str r2, [sp, #92] + mov r0, r8, lsr #8 + str lr, [sp, #100] + ldr r2, [sp, #40] + ldr lr, [sp, #0] + mov r3, r3, asr #16 + and r0, r0, #240 + cmp r9, #0 + add r8, lr, r5, asl #2 + str r3, [sp, #88] + mov r1, r1, asr #16 + mov r4, r4, asl #8 + rsb lr, ip, r2 + str r0, [sp, #136] + bne .L14896 + mla r3, lr, r1, r4 + mov r3, r3, asr #8 + cmp r3, sl + bcs .L13691 + ldr r4, [sp, #36] + cmp r7, #0 + add r2, r7, #7 + mov r1, r4, asl #22 + movge r2, r7 + mov r1, r1, lsr #22 + mov r0, r3, lsr #3 + mov r2, r2, asr #3 + mla ip, r2, r0, r1 + and r3, r3, #7 + ldr r5, .L15733+24 + add r3, r3, ip, asl #3 + cmp fp, #0 + add r1, r5, r3, asl #2 + ble .L13691 + ldr r3, [sp, #92] + ldr r2, [sp, #88] + mul r3, lr, r3 + mul r2, r6, r2 + ldr ip, [sp, #100] + rsb r3, r2, r3 + add r0, ip, r3 + mov r3, r0, asr #8 + cmp r3, r7 + mov lr, r3 + movcs r4, r9 + bcs .L14902 + b .L15727 +.L14903: + cmp r3, r7 + bcc .L14904 +.L14902: + ldr lr, [sp, #88] + add r4, r4, #1 + add r0, r0, lr + mov r3, r0, asr #8 + cmp fp, r4 + add r8, r8, #4 + mov lr, r3 + bne .L14903 + b .L13691 +.L13684: + mov r3, r4, lsr #4 + ldr r4, .L15733+12 + add r2, r7, r7, lsr #31 + and r3, r3, #992 + tst lr, #512 + add r3, r3, r4 + mov lr, r2, asr #1 + add r1, sl, sl, lsr #31 + ldr r2, [sp, #8] + mov r4, r1, asr #1 + ldrh r9, [r3, #30] + ldrh r8, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, r7 + moveq r6, lr + moveq r0, r4 + movne fp, r7, asl #1 + movne r6, lr, asl #1 + movne r0, r4, asl #1 + cmp r5, r2 + str r3, [sp, #16] + bge .L13726 + rsb r2, r5, r2 + rsb fp, r2, fp + cmp fp, #0 + ble .L13691 + ldr r5, [sp, #8] + rsb r6, r2, r6 +.L13726: + ldr r2, [sp, #4] + add r3, r5, fp + cmp r3, r2 + blt .L13729 + rsb fp, r5, r2 + cmp fp, #0 + ble .L13691 +.L13729: + mov r3, r8, asl #16 + ldr r8, [sp, #16] + mov r2, r1, asl #16 + cmp r8, #0 + ldr r8, [sp, #36] + mov lr, lr, asl #8 + add ip, ip, r0 + str lr, [sp, #132] + mov r0, r8, lsr #8 + ldr lr, [sp, #0] + mov r8, r2, asr #16 + ldr r2, [sp, #40] + mov r1, r9, asl #16 + mov r3, r3, asr #16 + and r0, r0, #240 + add r9, lr, r5, asl #2 + str r3, [sp, #60] + mov r1, r1, asr #16 + mov r4, r4, asl #8 + rsb lr, ip, r2 + str r0, [sp, #140] + bne .L13731 + mla r3, lr, r1, r4 + mov r3, r3, asr #8 + cmp r3, sl + bcs .L13691 + ldr r4, [sp, #36] + cmp r7, #0 + add r2, r7, #7 + mov r1, r4, asl #22 + movge r2, r7 + mov r0, r3, lsr #3 + mov r1, r1, lsr #22 + mov r2, r2, asr #3 + mla ip, r2, r0, r1 + and r3, r3, #7 + add r3, r3, ip, asl #3 + ldr ip, .L15733+24 + cmp fp, #0 + add r5, ip, r3, asl #2 + ble .L13691 + ldr r2, [sp, #60] + mul r3, lr, r8 + mul r2, r6, r2 + ldr lr, [sp, #132] + rsb r3, r2, r3 + add ip, lr, r3 + mov r1, ip, asr #8 + cmp r1, r7 + ldrcs lr, [sp, #16] + bcs .L13737 + b .L15728 +.L13738: + cmp r1, r7 + bcc .L15662 +.L13737: + ldr r0, [sp, #60] + add lr, lr, #1 + add ip, ip, r0 + cmp fp, lr + mov r1, ip, asr #8 + add r9, r9, #4 + bne .L13738 + b .L13691 +.L13740: + cmp r1, r7 + bcs .L13691 +.L15662: + mov r3, r1, asr #1 + and r4, r3, #3 + mov r3, r1, asr #3 + mov r3, r3, asl #5 + mov r2, r1, asr #1 + and r0, r2, #3 + tst r1, #1 + add r2, r3, r5 + add r1, r3, r5 + ldrneb r3, [r1, r4] @ zero_extendqisi2 + ldreqb r3, [r2, r0] @ zero_extendqisi2 + movne r0, r3, lsr #4 + andeq r0, r3, #15 + ldr r1, [sp, #140] + cmp r0, #0 + orr r0, r0, r1 + beq .L13745 + ldr r2, [r9, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r9, #0] + streq r0, [r9, #0] +.L13745: + ldr r2, [sp, #60] + add lr, lr, #1 + add ip, ip, r2 + cmp fp, lr + add r9, r9, #4 + mov r1, ip, asr #8 + bgt .L13740 + b .L13691 +.L13731: + ldr r5, [sp, #36] + cmp r7, #0 + add r2, r7, #7 + mov r3, r5, asl #22 + movge r2, r7 + ldr ip, .L15733+24 + mov r3, r3, lsr #22 + mov r2, r2, asr #3 + add r3, ip, r3, asl #5 + mov r2, r2, asl #5 + cmp fp, #0 + str r3, [sp, #120] + str r2, [sp, #68] + ble .L13691 + ldr r0, [sp, #16] + mul r2, lr, r1 + mov r3, r0, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #64] + ldr r1, [sp, #64] + ldr r0, [sp, #60] + mul r1, r6, r1 + mul r3, lr, r8 + mul r0, r6, r0 + rsb r2, r1, r2 + ldr r1, [sp, #132] + rsb r3, r0, r3 + add r5, r4, r2 + add r6, r1, r3 + mov r4, r6, asr #8 + mov r3, r5, asr #8 + cmp r4, r7 + cmpcc r3, sl + movcs r2, #0 + movcc r2, #1 + movcs r8, r2 + bcs .L13752 + b .L15729 +.L13753: + cmp r4, r7 + cmpcc r3, sl + bcc .L13754 +.L13752: + ldr r3, [sp, #64] + ldr r2, [sp, #60] + add r8, r8, #1 + add r6, r6, r2 + add r5, r5, r3 + cmp fp, r8 + mov r4, r6, asr #8 + mov r3, r5, asr #8 + add r9, r9, #4 + bne .L13753 + b .L13691 +.L14896: + ldr r0, [sp, #36] + cmp r7, #0 + add r2, r7, #7 + mov r3, r0, asl #22 + movge r2, r7 + ldr r5, .L15733+24 + mov r3, r3, lsr #22 + mov r2, r2, asr #3 + add r3, r5, r3, asl #5 + mov r2, r2, asl #5 + cmp fp, #0 + str r3, [sp, #112] + str r2, [sp, #104] + ble .L13691 + mov r3, r9, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #96] + mul r2, lr, r1 + ldr r3, [sp, #92] + ldr r1, [sp, #96] + ldr r0, [sp, #88] + mul r3, lr, r3 + mul r1, r6, r1 + mul r0, r6, r0 + ldr ip, [sp, #100] + rsb r2, r1, r2 + rsb r3, r0, r3 + add r5, ip, r3 + add r4, r4, r2 + mov lr, r5, asr #8 + mov r2, r4, asr #8 + cmp lr, r7 + cmpcc r2, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L14916 + b .L15730 +.L14917: + cmp lr, r7 + cmpcc r2, sl + bcc .L14918 +.L14916: + ldr lr, [sp, #88] + ldr r0, [sp, #96] + add r6, r6, #1 + add r5, r5, lr + add r4, r4, r0 + cmp fp, r6 + mov lr, r5, asr #8 + mov r2, r4, asr #8 + add r8, r8, #4 + bne .L14917 + b .L13691 +.L14873: + cmp lr, r7 + bcs .L13691 +.L15672: + ldr r1, [sp, #72] + mov r3, lr, asr #3 + add r0, r0, r1 + add r3, r4, r3, asl #6 + and r1, lr, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r5, [sp, #28] + cmp r2, #0 + add ip, ip, #1 + orr r3, r5, r2 + strne r3, [r8, #0] + cmp r9, ip + mov lr, r0, asr #8 + add r8, r8, #4 + bgt .L14873 + b .L13691 +.L13704: + cmp r2, r7 + bcs .L13691 +.L15660: + mov r3, r2, asr #3 + add r3, r4, r3, asl #6 + and r2, r2, #7 + ldrb lr, [r3, r2] @ zero_extendqisi2 + cmp lr, #0 + beq .L13706 + ldr r3, [r5, #0] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r1, lr, r3, asl #16 + orr r2, r2, #768 + tst r3, #256 + orr r2, lr, r2 + orr r1, r1, #768 + strne r2, [r5, #0] + streq r1, [r5, #0] +.L13706: + add ip, ip, #1 + add r0, r0, r9 + cmp r6, ip + add r5, r5, #4 + mov r2, r0, asr #8 + bgt .L13704 + b .L13691 +.L13695: + ldr r0, [sp, #36] + cmp r7, #0 + add r2, r7, #7 + mov r3, r0, asl #22 + movge r2, r7 + ldr r8, .L15733+24 + mov r3, r3, lsr #22 + mov r2, r2, asr #3 + add r3, r8, r3, asl #5 + mov r2, r2, asl #6 + cmp r6, #0 + str r3, [sp, #124] + str r2, [sp, #56] + ble .L13691 + ldr ip, [sp, #12] + mul r2, lr, r1 + mov r3, ip, asl #16 + mov r8, r3, asr #16 + ldr r3, [sp, #52] + mul r1, r8, fp + mul r3, lr, r3 + mul r0, r9, fp + ldr lr, [sp, #128] + rsb r3, r0, r3 + rsb r2, r1, r2 + add ip, lr, r3 + add lr, r4, r2 + mov r1, ip, asr #8 + mov r0, lr, asr #8 + cmp r1, r7 + cmpcc r0, sl + movcs r3, #0 + movcc r3, #1 + movcs r4, r3 + bcs .L13713 + b .L15731 +.L13714: + cmp r1, r7 + cmpcc r0, sl + bcc .L13715 +.L13713: + add r4, r4, #1 + add ip, ip, r9 + add lr, lr, r8 + cmp r6, r4 + mov r1, ip, asr #8 + mov r0, lr, asr #8 + add r5, r5, #4 + bne .L13714 + b .L13691 +.L14864: + ldr r0, [sp, #36] + cmp r7, #0 + add r2, r7, #7 + mov r3, r0, asl #22 + movge r2, r7 + ldr r4, .L15733+24 + mov r3, r3, lsr #22 + mov r2, r2, asr #3 + add r3, r4, r3, asl #5 + mov r2, r2, asl #6 + cmp r9, #0 + str r3, [sp, #116] + str r2, [sp, #84] + ble .L13691 + mov r3, fp, asl #16 + mov fp, r3, asr #16 + ldr r0, [sp, #72] + ldr r3, [sp, #76] + mul r2, lr, r1 + mul r3, lr, r3 + mul r1, fp, r6 + mul r0, r6, r0 + ldr lr, [sp, #80] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, lr, r3 + add ip, ip, r2 + mov r4, r5, asr #8 + mov lr, ip, asr #8 + cmp r4, r7 + cmpcc lr, sl + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L14880 + b .L15732 +.L14881: + cmp r4, r7 + cmpcc lr, sl + bcc .L14882 +.L14880: + ldr r0, [sp, #72] + add r6, r6, #1 + add r5, r5, r0 + add ip, ip, fp + cmp r9, r6 + mov r4, r5, asr #8 + mov lr, ip, asr #8 + add r8, r8, #4 + bne .L14881 + b .L13691 +.L14929: + ldr r0, [sp, #36] + cmp r7, #0 + add r3, r7, #7 + mov r2, r0, asl #22 + movge r3, r7 + mov r4, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, r4, r3, r2 + ldr r8, [sp, #36] + ldr r2, [sp, #8] + and r1, ip, #7 + ldr ip, .L15733+24 + add r1, r1, r0, asl #3 + mov r3, r8, lsr #8 + cmp r5, r2 + and r6, r3, #240 + add r0, ip, r1, asl #2 + bge .L14934 + rsb lr, r5, r2 + rsb r4, lr, r7 + cmp r4, #0 + ble .L13691 + ldr r1, [sp, #4] + add r3, r5, r7 + cmp r1, r3 + bhi .L14937 + mov r3, lr, lsr #3 + mov r1, r3, asl #5 + ands r3, lr, #7 + add r4, r0, r1 + bne .L14939 + ldr r5, [sp, #144] + ldr r7, [sp, #108] +.L14941: + movs lr, r5, lsr #3 + beq .L14958 + mov r1, r7 + mov r0, r4 + mov ip, #0 +.L14960: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L14961 + ands r3, r2, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #28 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r1, #28] +.L14961: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #32 + add r1, r1, #32 + bne .L14960 + mov r3, lr, asl #5 + add r4, r4, r3 + add r7, r7, r3 +.L14958: + ands r0, r5, #7 + beq .L13691 + ldr r2, [r4, #0] + mov r1, #0 +.L14980: + ldr r4, [sp, #28] + ands r3, r2, #15 + orr r3, r4, r3 + orr r3, r6, r3 + strne r3, [r7, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #4 + bne .L14980 + b .L13691 +.L14930: + ldr lr, [sp, #36] + cmp r7, #0 + add r3, r7, #7 + mov r2, lr, asl #22 + movge r3, r7 + mov r4, r3, asr #3 + mov r2, r2, lsr #22 + mov r1, ip, lsr #3 + mla r0, r4, r1, r2 + subs r3, r7, #8 + submi r3, r7, #1 + add r0, r0, r3, asr #3 + and r2, ip, #7 + add r2, r2, r0, asl #3 + ldr r0, [sp, #8] + ldr r1, .L15733+24 + cmp r5, r0 + mov r3, lr, lsr #8 + and r6, r3, #240 + add r0, r1, r2, asl #2 + bge .L15064 + ldr r2, [sp, #8] + rsb lr, r5, r2 + rsb r1, lr, r7 + cmp r1, #0 + ble .L13691 + ldr r4, [sp, #4] + add r3, r5, r7 + cmp r4, r3 + bhi .L15067 + mov r3, lr, lsr #3 + ands r4, lr, #7 + sub r0, r0, r3, asl #5 + bne .L15069 + ldr r2, [sp, #144] + ldr r1, [sp, #108] +.L15071: + movs r8, r2, lsr #3 + beq .L15088 + mov r4, r1 + mov r5, r0 + mov r7, #0 +.L15090: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L15091 + ands r3, lr, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, lr, lsr #4 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, lr, lsr #8 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, lr, lsr #12 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, lr, lsr #16 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, lr, lsr #20 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, lr, lsr #24 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + movs r3, lr, lsr #28 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] +.L15091: + add r7, r7, #1 + cmp r7, r8 + sub r5, r5, #32 + add r4, r4, #32 + bne .L15090 + rsb r3, r8, r8, asl #27 + add r0, r0, r3, asl #5 + add r1, r1, r8, asl #5 +.L15088: + ands lr, r2, #7 + beq .L13691 + ldr r0, [r0, #0] + mov r2, #0 +.L15110: + ldr r4, [sp, #28] + movs r3, r0, lsr #28 + orr r3, r4, r3 + orr r3, r6, r3 + strne r3, [r1, r2, asl #2] + add r2, r2, #1 + cmp r2, lr + mov r0, r0, asl #4 + bne .L15110 + b .L13691 +.L15734: + .align 2 +.L15733: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_height_table + .word obj_width_table + .word vram+65536 +.L14931: + ldr lr, [sp, #36] + cmp r7, #0 + add r3, r7, #7 + mov r2, ip, lsr #3 + movge r3, r7 + mov r1, lr, asl #22 + mov r4, r3, asr #3 + mov r2, r2, asl #1 + mov r1, r1, lsr #22 + mla r0, r2, r4, r1 + and r3, ip, #7 + ldr r1, [sp, #8] + add r3, r3, r0, asl #2 + ldr r2, .L15733+24 + mov r0, r3, asl #3 + cmp r5, r1 + add ip, r0, r2 + bge .L15194 + rsb r0, r5, r1 + rsb lr, r0, r7 + cmp lr, #0 + ble .L13691 + ldr r4, [sp, #4] + add r3, r5, r7 + cmp r4, r3 + bhi .L15197 + mov r3, r0, lsr #3 + ands lr, r0, #7 + add r6, ip, r3, asl #6 + bne .L15199 + ldr r5, [sp, #144] + ldr r4, [sp, #108] +.L15201: + movs lr, r5, lsr #3 + beq .L15259 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L15261: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L15262 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #12] +.L15262: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L15271 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #28] +.L15271: + add ip, ip, #1 + cmp ip, lr + add r0, r0, #64 + add r1, r1, #32 + bne .L15261 + add r6, r6, lr, asl #6 + add r4, r4, lr, asl #5 +.L15259: + ands r0, r5, #7 + beq .L13691 + cmp r0, #3 + ldrls r1, [r6, #0] + bls .L15294 + ldr r2, [r6, #0] + cmp r2, #0 + beq .L15284 + ands r3, r2, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #28] + orrne r3, r1, r3 + strne r3, [r4, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #12] +.L15284: + subs r0, r0, #4 + ldr r1, [r6, #4] + addne r4, r4, #16 + beq .L13691 +.L15294: + mov r2, #0 +.L15295: + ldr r5, [sp, #28] + ands r3, r1, #255 + orr r3, r5, r3 + strne r3, [r4, r2, asl #2] + add r2, r2, #1 + cmp r0, r2 + mov r1, r1, lsr #8 + bhi .L15295 + b .L13691 +.L13769: + ldr r4, [sp, #36] + cmp r7, #0 + add r3, r7, #7 + mov r1, r4, asl #22 + movge r3, r7 + mov r2, ip, lsr #3 + mov r4, r3, asr #3 + mov r2, r2, asl #1 + mov r1, r1, lsr #22 + mla r0, r2, r4, r1 + and r3, ip, #7 + ldr r8, [sp, #8] + add r3, r3, r0, asl #2 + ldr lr, .L15733+24 + mov r0, r3, asl #3 + cmp r5, r8 + add ip, r0, lr + bge .L14180 + rsb r0, r5, r8 + rsb r8, r0, r7 + cmp r8, #0 + ble .L13691 + ldr r1, [sp, #4] + add r3, r5, r7 + cmp r1, r3 + bhi .L14183 + mov r3, r0, lsr #3 + ands lr, r0, #7 + add r7, ip, r3, asl #6 + bne .L14185 + ldr r6, [sp, #144] + ldr r4, [sp, #108] +.L14187: + movs r5, r6, lsr #3 + beq .L14265 + mov r0, r4 + mov ip, r7 + mov lr, #0 +.L14267: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L14268 + ands r1, r2, #255 + beq .L14270 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L14270: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14274 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L14274: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14278 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L14278: + movs r2, r2, lsr #24 + beq .L14268 + ldr r1, [r0, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L14268: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L14285 + ands r1, r2, #255 + beq .L14287 + ldr r3, [r0, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L14287: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14291 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L14291: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14295 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L14295: + movs r2, r2, lsr #24 + beq .L14285 + ldr r3, [r0, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L14285: + add lr, lr, #1 + cmp r5, lr + add ip, ip, #64 + add r0, r0, #32 + bne .L14267 + add r7, r7, r5, asl #6 + add r4, r4, r5, asl #5 +.L14265: + ands r5, r6, #7 + beq .L13691 + cmp r5, #3 + ldrls ip, [r7, #0] + bls .L14324 + ldr r2, [r7, #0] + cmp r2, #0 + beq .L14306 + ands r1, r2, #255 + beq .L14308 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L14308: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14312 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L14312: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14316 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L14316: + movs r2, r2, lsr #24 + beq .L14306 + ldr r1, [r4, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L14306: + subs r5, r5, #4 + ldr ip, [r7, #4] + addne r4, r4, #16 + beq .L13691 +.L14324: + mov lr, #0 +.L14325: + ands r0, ip, #255 + beq .L14326 + ldr r2, [r4, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r4, #0] + streq r0, [r4, #0] +.L14326: + add lr, lr, #1 + cmp lr, r5 + mov ip, ip, lsr #8 + add r4, r4, #4 + bcc .L14325 + b .L13691 +.L13767: + ldr r4, [sp, #36] + cmp r7, #0 + add r3, r7, #7 + mov r2, r4, asl #22 + movge r3, r7 + mov r8, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, r8, r3, r2 + and r1, ip, #7 + ldr ip, [sp, #8] + ldr lr, .L15733+24 + add r1, r1, r0, asl #3 + mov r3, r4, lsr #8 + cmp r5, ip + and r6, r3, #240 + add r0, lr, r1, asl #2 + bge .L13772 + rsb lr, r5, ip + rsb r8, lr, r7 + cmp r8, #0 + ble .L13691 + ldr r1, [sp, #4] + add r3, r5, r7 + cmp r1, r3 + bhi .L13775 + mov r3, lr, lsr #3 + mov r1, r3, asl #5 + ands r3, lr, #7 + add r8, r0, r1 + bne .L13777 + ldr sl, [sp, #144] + ldr r4, [sp, #108] +.L13779: + movs r7, sl, lsr #3 + beq .L13800 + mov ip, r4 + mov lr, r8 + mov r5, #0 +.L13802: + ldr r0, [lr, #0] + cmp r0, #0 + beq .L13803 + ands r2, r0, #15 + beq .L13805 + ldr r1, [ip, #0] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L13805: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L13809 + ldr r1, [ip, #4] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L13809: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L13813 + ldr r1, [ip, #8] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L13813: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L13817 + ldr r1, [ip, #12] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L13817: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L13821 + ldr r1, [ip, #16] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L13821: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L13825 + ldr r1, [ip, #20] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L13825: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L13829 + ldr r1, [ip, #24] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L13829: + movs r2, r0, lsr #28 + beq .L13803 + ldr r1, [ip, #28] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L13803: + add r5, r5, #1 + cmp r7, r5 + add lr, lr, #32 + add ip, ip, #32 + bne .L13802 + mov r3, r7, asl #5 + add r8, r8, r3 + add r4, r4, r3 +.L13800: + ands r5, sl, #7 + beq .L13691 + ldr ip, [r8, #0] + mov lr, #0 +.L13838: + ands r3, ip, #15 + beq .L13839 + ldr r1, [r4, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L13839: + add lr, lr, #1 + cmp r5, lr + mov ip, ip, lsr #4 + add r4, r4, #4 + bne .L13838 + b .L13691 +.L13770: + cmp r7, #0 + add r2, r7, #7 + movge r2, r7 + subs r3, r7, #8 + submi r3, r7, #1 + mov r6, r2, asr #3 + mov r3, r3, asr #3 + mov r1, ip, lsr #3 + mla r0, r6, r1, r3 + ldr r3, [sp, #36] + ldr r4, [sp, #8] + mov r2, r3, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + and r3, ip, #7 + add r3, r3, r2, asl #2 + ldr r8, .L15733+24 + mov r0, r3, asl #3 + cmp r5, r4 + add ip, r0, r8 + bge .L14516 + rsb r0, r5, r4 + rsb r8, r0, r7 + cmp r8, #0 + ble .L13691 + ldr lr, [sp, #4] + add r3, r5, r7 + cmp lr, r3 + bhi .L14519 + mov r3, r0, lsr #3 + ands lr, r0, #7 + sub r8, ip, r3, asl #6 + bne .L14521 + ldr r7, [sp, #144] + ldr r4, [sp, #108] +.L14523: + movs r6, r7, lsr #3 + beq .L14601 + mov ip, r4 + mov lr, r8 + mov r5, #0 +.L14603: + ldr r2, [lr, #4] + cmp r2, #0 + beq .L14604 + ands r1, r2, #255 + beq .L14606 + ldr r3, [ip, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L14606: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14610 + ldr r3, [ip, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L14610: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14614 + ldr r3, [ip, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L14614: + movs r2, r2, lsr #24 + beq .L14604 + ldr r3, [ip, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L14604: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L14621 + ands r2, r1, #255 + beq .L14623 + ldr r0, [ip, #28] + tst r0, #256 + movne r3, r0, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r0, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L14623: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L14627 + ldr r3, [ip, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L14627: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L14631 + ldr r3, [ip, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L14631: + movs r2, r1, lsr #24 + beq .L14621 + ldr r1, [ip, #16] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L14621: + add r5, r5, #1 + cmp r5, r6 + sub lr, lr, #64 + add ip, ip, #32 + bne .L14603 + rsb r3, r6, r6, asl #26 + add r8, r8, r3, asl #6 + add r4, r4, r6, asl #5 +.L14601: + ands r5, r7, #7 + beq .L13691 + cmp r5, #3 + ldrls ip, [r8, #4] + bls .L14660 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L14642 + ands r1, r2, #255 + beq .L14644 + ldr r3, [r4, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L14644: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14648 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L14648: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14652 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L14652: + movs r2, r2, lsr #24 + beq .L14642 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L14642: + subs r5, r5, #4 + ldr ip, [r8, #0] + addne r4, r4, #16 + beq .L13691 +.L14660: + mov lr, #0 +.L14661: + movs r0, ip, lsr #24 + beq .L14662 + ldr r2, [r4, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r4, #0] + streq r0, [r4, #0] +.L14662: + add lr, lr, #1 + cmp lr, r5 + mov ip, ip, asl #8 + add r4, r4, #4 + bcc .L14661 + b .L13691 +.L14932: + cmp r7, #0 + add r2, r7, #7 + movge r2, r7 + subs r3, r7, #8 + submi r3, r7, #1 + mov r4, r2, asr #3 + mov r3, r3, asr #3 + mov r1, ip, lsr #3 + mla r0, r4, r1, r3 + ldr r1, [sp, #36] + and r3, ip, #7 + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + add r3, r3, r2, asl #2 + ldr r2, [sp, #8] + mov r0, r3, asl #3 + ldr r3, .L15733+24 + cmp r5, r2 + add r2, r0, r3 + bge .L15414 + ldr r4, [sp, #8] + rsb r0, r5, r4 + rsb lr, r0, r7 + cmp lr, #0 + ble .L13691 + add r3, r5, r7 + ldr r5, [sp, #4] + cmp r5, r3 + bhi .L15417 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r6, r2, r3, asl #6 + bne .L15419 + ldr r5, [sp, #144] + ldr r4, [sp, #108] +.L15421: + movs lr, r5, lsr #3 + beq .L15479 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L15481: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L15482 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #0] +.L15482: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L15491 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #28] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #24] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #20] + movs r3, r2, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #16] +.L15491: + add ip, ip, #1 + cmp ip, lr + sub r0, r0, #64 + add r1, r1, #32 + bne .L15481 + rsb r3, lr, lr, asl #26 + add r6, r6, r3, asl #6 + add r4, r4, lr, asl #5 +.L15479: + ands r0, r5, #7 + beq .L13691 + cmp r0, #3 + ldrls r2, [r6, #4] + bls .L15514 + ldr r2, [r6, #4] + cmp r2, #0 + beq .L15504 + ands r3, r2, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #28] + orrne r3, r1, r3 + strne r3, [r4, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #0] +.L15504: + subs r0, r0, #4 + ldr r2, [r6, #0] + addne r4, r4, #16 + beq .L13691 +.L15514: + mov r1, #0 +.L15515: + ldr r5, [sp, #28] + movs r3, r2, lsr #24 + orr r3, r5, r3 + strne r3, [r4, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bhi .L15515 + b .L13691 +.L13768: + ldr r4, [sp, #36] + cmp r7, #0 + add r3, r7, #7 + mov r2, r4, asl #22 + movge r3, r7 + mov r8, r3, asr #3 + mov r2, r2, lsr #22 + mov r1, ip, lsr #3 + mla r0, r8, r1, r2 + subs r3, r7, #8 + submi r3, r7, #1 + and r2, ip, #7 + ldr ip, [sp, #8] + add r0, r0, r3, asr #3 + ldr lr, .L15733+24 + add r2, r2, r0, asl #3 + mov r3, r4, lsr #8 + cmp r5, ip + and r6, r3, #240 + add r0, lr, r2, asl #2 + bge .L13976 + rsb lr, r5, ip + rsb r8, lr, r7 + cmp r8, #0 + ble .L13691 + ldr r1, [sp, #4] + add r3, r5, r7 + cmp r1, r3 + bhi .L13979 + mov r3, lr, lsr #3 + ands r4, lr, #7 + sub ip, r0, r3, asl #5 + bne .L13981 + ldr sl, [sp, #144] + ldr r5, [sp, #108] +.L13983: + movs r8, sl, lsr #3 + beq .L14004 + mov lr, r5 + mov r4, ip + mov r7, #0 +.L14006: + ldr r0, [r4, #0] + cmp r0, #0 + beq .L14007 + ands r2, r0, #15 + beq .L14009 + ldr r1, [lr, #28] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #28] + streq r3, [lr, #28] +.L14009: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L14013 + ldr r1, [lr, #24] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #24] + streq r3, [lr, #24] +.L14013: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L14017 + ldr r1, [lr, #20] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #20] + streq r3, [lr, #20] +.L14017: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L14021 + ldr r1, [lr, #16] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #16] + streq r3, [lr, #16] +.L14021: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L14025 + ldr r1, [lr, #12] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #12] + streq r3, [lr, #12] +.L14025: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L14029 + ldr r1, [lr, #8] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #8] + streq r3, [lr, #8] +.L14029: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L14033 + ldr r1, [lr, #4] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #4] + streq r3, [lr, #4] +.L14033: + movs r2, r0, lsr #28 + beq .L14007 + ldr r1, [lr, #0] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #0] + streq r3, [lr, #0] +.L14007: + add r7, r7, #1 + cmp r8, r7 + sub r4, r4, #32 + add lr, lr, #32 + bne .L14006 + rsb r3, r8, r8, asl #27 + add ip, ip, r3, asl #5 + add r5, r5, r8, asl #5 +.L14004: + ands r4, sl, #7 + beq .L13691 + ldr ip, [ip, #0] + mov lr, #0 +.L14042: + movs r3, ip, lsr #28 + beq .L14043 + ldr r1, [r5, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r5, #0] + streq r2, [r5, #0] +.L14043: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #4 + add r5, r5, #4 + bne .L14042 + b .L13691 +.L13976: + ldr r1, [sp, #4] + add r3, r5, r7 + cmp r1, r3 + bls .L15693 + cmp r8, #0 + beq .L13691 + ldr r3, [sp, #0] + mov ip, #0 + add r1, r3, r5, asl #2 + b .L14145 +.L15694: + sub r0, r0, #32 + add r1, r1, #32 +.L14145: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L14146 + ands r2, r4, #15 + beq .L14148 + ldr lr, [r1, #28] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L14148: + mov r3, r4, lsr #4 + ands r2, r3, #15 + beq .L14152 + ldr lr, [r1, #24] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L14152: + mov r3, r4, lsr #8 + ands r2, r3, #15 + beq .L14156 + ldr lr, [r1, #20] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L14156: + mov r3, r4, lsr #12 + ands r2, r3, #15 + beq .L14160 + ldr lr, [r1, #16] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L14160: + mov r3, r4, lsr #16 + ands r2, r3, #15 + beq .L14164 + ldr lr, [r1, #12] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L14164: + mov r3, r4, lsr #20 + ands r2, r3, #15 + beq .L14168 + ldr lr, [r1, #8] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L14168: + mov r3, r4, lsr #24 + ands r2, r3, #15 + beq .L14172 + ldr lr, [r1, #4] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L14172: + movs r2, r4, lsr #28 + beq .L14146 + ldr lr, [r1, #0] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L14146: + add ip, ip, #1 + cmp r8, ip + bne .L15694 + b .L13691 +.L14934: + ldr ip, [sp, #4] + add r3, r5, r7 + cmp ip, r3 + bls .L15695 + cmp r4, #0 + beq .L13691 + ldr r3, [sp, #0] + mov r2, #0 + add r1, r3, r5, asl #2 + b .L15045 +.L15696: + add r0, r0, #32 + add r1, r1, #32 +.L15045: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L15046 + ands r3, lr, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r1, #0] + mov r3, lr, lsr #4 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r1, #4] + mov r3, lr, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #8] + mov r3, lr, lsr #12 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r1, #12] + mov r3, lr, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r1, #16] + mov r3, lr, lsr #20 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r1, #20] + mov r3, lr, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #24] + movs r3, lr, lsr #28 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r1, #28] +.L15046: + add r2, r2, #1 + cmp r4, r2 + bne .L15696 + b .L13691 +.L15194: + ldr r8, [sp, #4] + add r3, r5, r7 + cmp r8, r3 + bls .L15697 + cmp r4, #0 + beq .L13691 + ldr lr, [sp, #0] + ldr r3, .L15735+4 + add r1, lr, r5, asl #2 + add r0, r0, r3 + mov r2, #0 + b .L15394 +.L15698: + add ip, ip, #64 + add r1, r1, #32 +.L15394: + ldr lr, [ip, #0] + cmp lr, #0 + beq .L15395 + ands r3, lr, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #0] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #8] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #12] +.L15395: + ldr lr, [r0, #-60] + cmp lr, #0 + beq .L15404 + ands r3, lr, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #16] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #20] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #24] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #28] +.L15404: + add r2, r2, #1 + cmp r4, r2 + add r0, r0, #64 + bne .L15698 + b .L13691 +.L13772: + ldr r1, [sp, #4] + add r3, r5, r7 + cmp r1, r3 + bls .L15699 + cmp r8, #0 + beq .L13691 + ldr r3, [sp, #0] + mov ip, #0 + add r1, r3, r5, asl #2 + b .L13941 +.L15700: + add r0, r0, #32 + add r1, r1, #32 +.L13941: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L13942 + ands r2, r4, #15 + beq .L13944 + ldr lr, [r1, #0] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L13944: + mov r3, r4, lsr #4 + ands r2, r3, #15 + beq .L13948 + ldr lr, [r1, #4] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L13948: + mov r3, r4, lsr #8 + ands r2, r3, #15 + beq .L13952 + ldr lr, [r1, #8] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L13952: + mov r3, r4, lsr #12 + ands r2, r3, #15 + beq .L13956 + ldr lr, [r1, #12] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L13956: + mov r3, r4, lsr #16 + ands r2, r3, #15 + beq .L13960 + ldr lr, [r1, #16] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L13960: + mov r3, r4, lsr #20 + ands r2, r3, #15 + beq .L13964 + ldr lr, [r1, #20] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L13964: + mov r3, r4, lsr #24 + ands r2, r3, #15 + beq .L13968 + ldr lr, [r1, #24] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L13968: + movs r2, r4, lsr #28 + beq .L13942 + ldr lr, [r1, #28] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L13942: + add ip, ip, #1 + cmp r8, ip + bne .L15700 + b .L13691 +.L15064: + ldr ip, [sp, #4] + add r3, r5, r7 + cmp ip, r3 + bls .L15701 + cmp r4, #0 + beq .L13691 + ldr r3, [sp, #0] + mov r2, #0 + add r1, r3, r5, asl #2 + b .L15175 +.L15702: + sub r0, r0, #32 + add r1, r1, #32 +.L15175: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L15176 + ands r3, lr, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r1, #28] + mov r3, lr, lsr #4 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r1, #24] + mov r3, lr, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #20] + mov r3, lr, lsr #12 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r1, #16] + mov r3, lr, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r1, #12] + mov r3, lr, lsr #20 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r1, #8] + mov r3, lr, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #4] + movs r3, lr, lsr #28 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r1, #0] +.L15176: + add r2, r2, #1 + cmp r4, r2 + bne .L15702 + b .L13691 +.L14516: + ldr r4, [sp, #4] + add r3, r5, r7 + cmp r4, r3 + bls .L15703 + cmp r6, #0 + beq .L13691 + ldr r2, [sp, #0] + ldr r3, .L15735 + add r1, r2, r5, asl #2 + add r0, r0, r3 + mov r5, #0 + b .L14816 +.L15704: + sub ip, ip, #64 + add r1, r1, #32 +.L14816: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L14817 + ands lr, r2, #255 + beq .L14819 + ldr r3, [r1, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L14819: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L14823 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L14823: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L14827 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L14827: + movs r2, r2, lsr #24 + beq .L14817 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L14817: + ldr lr, [ip, #0] + cmp lr, #0 + beq .L14834 + ands r2, lr, #255 + beq .L14836 + ldr r4, [r1, #28] + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L14836: + mov r3, lr, lsr #8 + ands r2, r3, #255 + beq .L14840 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L14840: + mov r3, lr, lsr #16 + ands r2, r3, #255 + beq .L14844 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L14844: + movs r2, lr, lsr #24 + beq .L14834 + ldr lr, [r1, #16] + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L14834: + add r5, r5, #1 + cmp r6, r5 + sub r0, r0, #64 + bne .L15704 + b .L13691 +.L14180: + ldr r8, [sp, #4] + add r3, r5, r7 + cmp r8, r3 + bls .L15705 + cmp r4, #0 + beq .L13691 + ldr r2, [sp, #0] + ldr r3, .L15735+4 + add r1, r2, r5, asl #2 + add r0, r0, r3 + mov r5, #0 + b .L14480 +.L15706: + add ip, ip, #64 + add r1, r1, #32 +.L14480: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L14481 + ands lr, r2, #255 + beq .L14483 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L14483: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L14487 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L14487: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L14491 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L14491: + movs r2, r2, lsr #24 + beq .L14481 + ldr lr, [r1, #12] + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L14481: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L14498 + ands lr, r2, #255 + beq .L14500 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L14500: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L14504 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L14504: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L14508 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L14508: + movs r2, r2, lsr #24 + beq .L14498 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L14498: + add r5, r5, #1 + cmp r4, r5 + add r0, r0, #64 + bne .L15706 + b .L13691 +.L15414: + ldr r8, [sp, #4] + add r3, r5, r7 + cmp r3, r8 + bcs .L15707 + cmp r4, #0 + beq .L13691 + ldr r3, [sp, #0] + mov ip, #0 + add r1, r3, r5, asl #2 + ldr r3, .L15735 + add r0, r0, r3 + b .L15614 +.L15708: + sub r2, r2, #64 + add r1, r1, #32 +.L15614: + ldr lr, [r0, #68] + cmp lr, #0 + beq .L15615 + ands r3, lr, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #12] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #8] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #4] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #0] +.L15615: + ldr lr, [r2, #0] + cmp lr, #0 + beq .L15624 + ands r3, lr, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #28] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #24] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #20] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #16] +.L15624: + add ip, ip, #1 + cmp r4, ip + sub r0, r0, #64 + bne .L15708 + b .L13691 +.L15729: + mov r8, #0 +.L13754: + cmp sl, r3 + cmphi r7, r4 + bhi .L15663 + b .L13691 +.L13755: + cmp r3, sl + cmpcc r4, r7 + bcs .L13691 +.L15663: + ldr r2, [sp, #68] + and r0, r3, #7 + and ip, r3, #7 + mov r3, r3, asr #3 + mul r2, r3, r2 + ldr r3, [sp, #120] + ldr r1, [sp, #120] + add ip, r3, ip, asl #2 + mov r3, r4, asr #3 + add r0, r1, r0, asl #2 + mov lr, r4, asr #1 + mov r1, r4, asr #1 + add r2, r2, r3, asl #5 + tst r4, #1 + add r3, r0, r2 + and lr, lr, #3 + add r0, ip, r2 + and r1, r1, #3 + ldreqb r3, [r0, r1] @ zero_extendqisi2 + ldrneb r3, [r3, lr] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + ldr r4, [sp, #140] + cmp r0, #0 + orr r0, r0, r4 + beq .L13761 + ldr r2, [r9, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r9, #0] + streq r0, [r9, #0] +.L13761: + ldr ip, [sp, #60] + ldr lr, [sp, #64] + add r8, r8, #1 + add r6, r6, ip + add r5, r5, lr + cmp fp, r8 + add r9, r9, #4 + mov r4, r6, asr #8 + mov r3, r5, asr #8 + bgt .L13755 + b .L13691 +.L15732: + mov r6, #0 +.L14882: + cmp sl, lr + cmphi r7, r4 + bhi .L15673 + b .L13691 +.L14883: + cmp lr, sl + cmpcc r4, r7 + bcs .L13691 +.L15673: + and r3, lr, #7 + mov r2, r4, asr #3 + mov r3, r3, asl #3 + add r3, r3, r2, asl #6 + ldr r2, [sp, #116] + ldr r0, [sp, #84] + add r3, r3, r2 + mov r2, lr, asr #3 + mla r0, r2, r0, r3 + ldr r1, [sp, #72] + add r6, r6, #1 + add r5, r5, r1 + and r1, r4, #7 + ldrb r3, [r0, r1] @ zero_extendqisi2 + ldr r0, [sp, #28] + cmp r3, #0 + orr r3, r0, r3 + strne r3, [r8, #0] + add ip, ip, fp + cmp r9, r6 + mov lr, ip, asr #8 + mov r4, r5, asr #8 + add r8, r8, #4 + bgt .L14883 + b .L13691 +.L15730: + mov r6, #0 +.L14918: + cmp sl, r2 + cmphi r7, lr + bhi .L15675 + b .L13691 +.L14919: + cmp r2, sl + cmpcc lr, r7 + bcs .L13691 +.L15675: + ldr r1, [sp, #112] + and r0, r2, #7 + add r0, r1, r0, asl #2 + mov r3, r2, asr #3 + and r1, r2, #7 + ldr r2, [sp, #104] + mov ip, lr, asr #1 + mul r2, r3, r2 + and r9, ip, #3 + ldr ip, [sp, #112] + mov r3, lr, asr #1 + add r1, ip, r1, asl #2 + and ip, r3, #3 + mov r3, lr, asr #3 + add r2, r2, r3, asl #5 + add r3, r0, r2 + tst lr, #1 + add r0, r1, r2 + ldreqb r3, [r0, ip] @ zero_extendqisi2 + ldrneb r3, [r3, r9] @ zero_extendqisi2 + ldr r2, [sp, #28] + movne r0, r3, lsr #4 + andeq r0, r3, #15 + ldr ip, [sp, #136] + ldr lr, [sp, #88] + orr r3, r0, r2 + ldr r1, [sp, #96] + cmp r0, #0 + add r6, r6, #1 + orr r3, ip, r3 + strne r3, [r8, #0] + add r5, r5, lr + add r4, r4, r1 + cmp fp, r6 + mov lr, r5, asr #8 + mov r2, r4, asr #8 + add r8, r8, #4 + bgt .L14919 + b .L13691 +.L15731: + mov r4, #0 +.L13715: + cmp sl, r0 + cmphi r7, r1 + bhi .L15661 + b .L13691 +.L13716: + cmp r0, sl + cmpcc r1, r7 + bcs .L13691 +.L15661: + and r3, r0, #7 + mov r2, r1, asr #3 + mov r3, r3, asl #3 + add r3, r3, r2, asl #6 + ldr r2, [sp, #124] + and r1, r1, #7 + add r3, r3, r2 + mov r2, r0, asr #3 + ldr r0, [sp, #56] + mla r0, r2, r0, r3 + ldrb r0, [r0, r1] @ zero_extendqisi2 + cmp r0, #0 + beq .L13719 + ldr r3, [r5, #0] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r1, r0, r3, asl #16 + orr r2, r2, #768 + tst r3, #256 + orr r2, r0, r2 + orr r1, r1, #768 + strne r2, [r5, #0] + streq r1, [r5, #0] +.L13719: + add r4, r4, #1 + add ip, ip, r9 + add lr, lr, r8 + cmp r6, r4 + mov r1, ip, asr #8 + mov r0, lr, asr #8 + add r5, r5, #4 + bgt .L13716 + b .L13691 +.L15707: + rsb r7, r5, r8 + cmp r7, #0 + ble .L13691 + ldr ip, [sp, #0] + movs r6, r7, lsr #3 + add r1, ip, r5, asl #2 + beq .L15573 + ldr r3, .L15735 + mov r4, r1 + add r0, r0, r3 + mov r5, r2 + mov ip, #0 +.L15575: + ldr lr, [r0, #68] + cmp lr, #0 + beq .L15576 + ands r3, lr, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r4, #12] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r4, #8] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r4, #4] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #0] +.L15576: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L15585 + ands r3, lr, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r4, #28] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r4, #24] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r4, #20] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #16] +.L15585: + add ip, ip, #1 + cmp ip, r6 + sub r5, r5, #64 + add r4, r4, #32 + sub r0, r0, #64 + bne .L15575 + rsb r3, r6, r6, asl #26 + add r2, r2, r3, asl #6 + add r1, r1, r6, asl #5 +.L15573: + ands ip, r7, #7 + beq .L13691 + cmp ip, #3 + ldrls r2, [r2, #4] + bls .L15608 + ldr r0, [r2, #4] + cmp r0, #0 + beq .L15598 + ands r3, r0, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r1, #12] + mov r3, r0, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #8] + mov r3, r0, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #4] + movs r3, r0, lsr #24 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #0] +.L15598: + subs ip, ip, #4 + ldr r2, [r2, #0] + addne r1, r1, #16 + beq .L13691 +.L15608: + mov r0, #0 +.L15609: + ldr lr, [sp, #28] + movs r3, r2, lsr #24 + orr r3, lr, r3 + strne r3, [r1, r0, asl #2] + add r0, r0, #1 + cmp ip, r0 + mov r2, r2, asl #8 + bhi .L15609 + b .L13691 +.L15699: + rsb ip, r5, r1 + cmp ip, #0 + ble .L13691 + ldr r2, [sp, #0] + movs sl, ip, lsr #3 + add r8, r2, r5, asl #2 + beq .L13896 + mov r5, r8 + mov r7, r0 + mov r1, #0 +.L13898: + ldr r4, [r7, #0] + cmp r4, #0 + beq .L13899 + ands r2, r4, #15 + beq .L13901 + ldr lr, [r5, #0] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #0] + streq r3, [r5, #0] +.L13901: + mov r3, r4, lsr #4 + ands r2, r3, #15 + beq .L13905 + ldr lr, [r5, #4] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #4] + streq r3, [r5, #4] +.L13905: + mov r3, r4, lsr #8 + ands r2, r3, #15 + beq .L13909 + ldr lr, [r5, #8] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #8] + streq r3, [r5, #8] +.L13909: + mov r3, r4, lsr #12 + ands r2, r3, #15 + beq .L13913 + ldr lr, [r5, #12] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #12] + streq r3, [r5, #12] +.L13913: + mov r3, r4, lsr #16 + ands r2, r3, #15 + beq .L13917 + ldr lr, [r5, #16] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #16] + streq r3, [r5, #16] +.L13917: + mov r3, r4, lsr #20 + ands r2, r3, #15 + beq .L13921 + ldr lr, [r5, #20] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #20] + streq r3, [r5, #20] +.L13921: + mov r3, r4, lsr #24 + ands r2, r3, #15 + beq .L13925 + ldr lr, [r5, #24] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #24] + streq r3, [r5, #24] +.L13925: + movs r2, r4, lsr #28 + beq .L13899 + ldr lr, [r5, #28] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #28] + streq r3, [r5, #28] +.L13899: + add r1, r1, #1 + cmp sl, r1 + add r7, r7, #32 + add r5, r5, #32 + bne .L13898 + mov r3, sl, asl #5 + add r0, r0, r3 + add r8, r8, r3 +.L13896: + ands r4, ip, #7 + beq .L13691 + ldr ip, [r0, #0] + mov lr, #0 +.L13934: + ands r3, ip, #15 + beq .L13935 + ldr r1, [r8, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r8, #0] + streq r2, [r8, #0] +.L13935: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, lsr #4 + add r8, r8, #4 + bne .L13934 + b .L13691 +.L15736: + .align 2 +.L15735: + .word vram+65472 + .word vram+65600 +.L15703: + rsb sl, r5, r4 + cmp sl, #0 + ble .L13691 + ldr lr, [sp, #0] + movs r8, sl, lsr #3 + add r7, lr, r5, asl #2 + beq .L14749 + ldr r3, .L15735 + mov r5, r7 + add r0, r0, r3 + mov r6, ip + mov r1, #0 +.L14751: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L14752 + ands lr, r2, #255 + beq .L14754 + ldr r3, [r5, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r5, #12] + streq r3, [r5, #12] +.L14754: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L14758 + ldr r3, [r5, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r5, #8] + streq r3, [r5, #8] +.L14758: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L14762 + ldr r3, [r5, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r5, #4] + streq r3, [r5, #4] +.L14762: + movs r2, r2, lsr #24 + beq .L14752 + ldr r3, [r5, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r5, #0] + streq r3, [r5, #0] +.L14752: + ldr lr, [r6, #0] + cmp lr, #0 + beq .L14769 + ands r2, lr, #255 + beq .L14771 + ldr r4, [r5, #28] + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r5, #28] + streq r3, [r5, #28] +.L14771: + mov r3, lr, lsr #8 + ands r2, r3, #255 + beq .L14775 + ldr r3, [r5, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r5, #24] + streq r3, [r5, #24] +.L14775: + mov r3, lr, lsr #16 + ands r2, r3, #255 + beq .L14779 + ldr r3, [r5, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r5, #20] + streq r3, [r5, #20] +.L14779: + movs r2, lr, lsr #24 + beq .L14769 + ldr lr, [r5, #16] + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #16] + streq r3, [r5, #16] +.L14769: + add r1, r1, #1 + cmp r1, r8 + sub r6, r6, #64 + add r5, r5, #32 + sub r0, r0, #64 + bne .L14751 + rsb r3, r8, r8, asl #26 + add ip, ip, r3, asl #6 + add r7, r7, r8, asl #5 +.L14749: + ands r4, sl, #7 + beq .L13691 + cmp r4, #3 + ldrls ip, [ip, #4] + bls .L14808 + ldr r2, [ip, #4] + cmp r2, #0 + beq .L14790 + ands r1, r2, #255 + beq .L14792 + ldr r3, [r7, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r7, #12] + streq r3, [r7, #12] +.L14792: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14796 + ldr r3, [r7, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r7, #8] + streq r3, [r7, #8] +.L14796: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14800 + ldr r3, [r7, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r7, #4] + streq r3, [r7, #4] +.L14800: + movs r2, r2, lsr #24 + beq .L14790 + ldr r3, [r7, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r7, #0] + streq r3, [r7, #0] +.L14790: + subs r4, r4, #4 + ldr ip, [ip, #0] + addne r7, r7, #16 + beq .L13691 +.L14808: + mov lr, #0 +.L14809: + movs r0, ip, lsr #24 + beq .L14810 + ldr r2, [r7, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r7, #0] + streq r0, [r7, #0] +.L14810: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, asl #8 + add r7, r7, #4 + bhi .L14809 + b .L13691 +.L15695: + rsb r7, r5, ip + cmp r7, #0 + ble .L13691 + ldr lr, [sp, #0] + movs r8, r7, lsr #3 + add r1, lr, r5, asl #2 + beq .L15018 + mov r4, r1 + mov r5, r0 + mov ip, #0 +.L15020: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L15021 + ands r3, lr, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] + mov r3, lr, lsr #4 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + mov r3, lr, lsr #8 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, lr, lsr #12 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, lr, lsr #16 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, lr, lsr #20 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, lr, lsr #24 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + movs r3, lr, lsr #28 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] +.L15021: + add ip, ip, #1 + cmp r8, ip + add r5, r5, #32 + add r4, r4, #32 + bne .L15020 + mov r3, r8, asl #5 + add r0, r0, r3 + add r1, r1, r3 +.L15018: + ands lr, r7, #7 + beq .L13691 + ldr r0, [r0, #0] + mov ip, #0 +.L15040: + ldr r2, [sp, #28] + ands r3, r0, #15 + orr r3, r2, r3 + orr r3, r6, r3 + strne r3, [r1, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, lsr #4 + bne .L15040 + b .L13691 +.L15705: + rsb r8, r5, r8 + cmp r8, #0 + ble .L13691 + ldr lr, [sp, #0] + movs r7, r8, lsr #3 + add r6, lr, r5, asl #2 + beq .L14413 + ldr r3, .L15735+4 + mov r4, r6 + add r0, r0, r3 + mov r5, ip + mov r1, #0 +.L14415: + ldr r2, [r5, #0] + cmp r2, #0 + beq .L14416 + ands lr, r2, #255 + beq .L14418 + ldr r3, [r4, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L14418: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L14422 + ldr r3, [r4, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L14422: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L14426 + ldr r3, [r4, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L14426: + movs r2, r2, lsr #24 + beq .L14416 + ldr lr, [r4, #12] + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L14416: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L14433 + ands lr, r2, #255 + beq .L14435 + ldr r3, [r4, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L14435: + mov r3, r2, lsr #8 + ands lr, r3, #255 + beq .L14439 + ldr r3, [r4, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L14439: + mov r3, r2, lsr #16 + ands lr, r3, #255 + beq .L14443 + ldr r3, [r4, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, lr, r3, asl #16 + orrne r3, lr, r3 + orreq r3, r3, #768 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L14443: + movs r2, r2, lsr #24 + beq .L14433 + ldr r3, [r4, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L14433: + add r1, r1, #1 + cmp r1, r7 + add r5, r5, #64 + add r4, r4, #32 + add r0, r0, #64 + bne .L14415 + add ip, ip, r7, asl #6 + add r6, r6, r7, asl #5 +.L14413: + ands r4, r8, #7 + beq .L13691 + cmp r4, #3 + ldrls ip, [ip, #0] + bls .L14472 + ldr r2, [ip, #0] + cmp r2, #0 + beq .L14454 + ands r1, r2, #255 + beq .L14456 + ldr r3, [r6, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r6, #0] + streq r3, [r6, #0] +.L14456: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14460 + ldr r3, [r6, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r6, #4] + streq r3, [r6, #4] +.L14460: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14464 + ldr r3, [r6, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r6, #8] + streq r3, [r6, #8] +.L14464: + movs r2, r2, lsr #24 + beq .L14454 + ldr r1, [r6, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r6, #12] + streq r3, [r6, #12] +.L14454: + subs r4, r4, #4 + ldr ip, [ip, #4] + addne r6, r6, #16 + beq .L13691 +.L14472: + mov lr, #0 +.L14473: + ands r0, ip, #255 + beq .L14474 + ldr r2, [r6, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r6, #0] + streq r0, [r6, #0] +.L14474: + add lr, lr, #1 + cmp r4, lr + mov ip, ip, lsr #8 + add r6, r6, #4 + bhi .L14473 + b .L13691 +.L15697: + rsb r8, r5, r8 + cmp r8, #0 + ble .L13691 + ldr lr, [sp, #0] + movs r7, r8, lsr #3 + add r1, lr, r5, asl #2 + beq .L15353 + ldr r3, .L15735+4 + mov r4, r1 + add r0, r0, r3 + mov r5, ip + mov r6, #0 +.L15355: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L15356 + ands r3, lr, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #0] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #4] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #8] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #12] +.L15356: + ldr lr, [r0, #-60] + cmp lr, #0 + beq .L15365 + ands r3, lr, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #16] + mov r3, lr, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #20] + mov r3, lr, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r4, #24] + movs r3, lr, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r4, #28] +.L15365: + add r6, r6, #1 + cmp r6, r7 + add r5, r5, #64 + add r4, r4, #32 + add r0, r0, #64 + bne .L15355 + add ip, ip, r7, asl #6 + add r1, r1, r7, asl #5 +.L15353: + ands lr, r8, #7 + beq .L13691 + cmp lr, #3 + ldrls ip, [ip, #0] + bls .L15388 + ldr r2, [ip, #0] + cmp r2, #0 + beq .L15378 + ands r3, r2, #255 + ldrne r0, [sp, #28] + orrne r3, r0, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #12] +.L15378: + subs lr, lr, #4 + ldr ip, [ip, #4] + addne r1, r1, #16 + beq .L13691 +.L15388: + mov r0, #0 +.L15389: + ldr r8, [sp, #28] + ands r3, ip, #255 + orr r3, r8, r3 + strne r3, [r1, r0, asl #2] + add r0, r0, #1 + cmp lr, r0 + mov ip, ip, lsr #8 + bhi .L15389 + b .L13691 +.L15701: + rsb r8, r5, ip + cmp r8, #0 + ble .L13691 + ldr lr, [sp, #0] + movs r7, r8, lsr #3 + add r1, lr, r5, asl #2 + beq .L15148 + mov r4, r1 + mov r5, r0 + mov ip, #0 +.L15150: + ldr lr, [r5, #0] + cmp lr, #0 + beq .L15151 + ands r3, lr, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, lr, lsr #4 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, lr, lsr #8 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, lr, lsr #12 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, lr, lsr #16 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, lr, lsr #20 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, lr, lsr #24 + ands r3, r3, #15 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + movs r3, lr, lsr #28 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] +.L15151: + add ip, ip, #1 + cmp ip, r7 + sub r5, r5, #32 + add r4, r4, #32 + bne .L15150 + rsb r3, r7, r7, asl #27 + add r0, r0, r3, asl #5 + add r1, r1, r7, asl #5 +.L15148: + ands lr, r8, #7 + beq .L13691 + ldr r0, [r0, #0] + mov ip, #0 +.L15170: + ldr r2, [sp, #28] + movs r3, r0, lsr #28 + orr r3, r2, r3 + orr r3, r6, r3 + strne r3, [r1, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, asl #4 + bne .L15170 + b .L13691 +.L15693: + rsb sl, r5, r1 + cmp sl, #0 + ble .L13691 + ldr r2, [sp, #0] + movs ip, sl, lsr #3 + add r8, r2, r5, asl #2 + beq .L14100 + mov r5, r8 + mov r7, r0 + mov r1, #0 +.L14102: + ldr r4, [r7, #0] + cmp r4, #0 + beq .L14103 + ands r2, r4, #15 + beq .L14105 + ldr lr, [r5, #28] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #28] + streq r3, [r5, #28] +.L14105: + mov r3, r4, lsr #4 + ands r2, r3, #15 + beq .L14109 + ldr lr, [r5, #24] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #24] + streq r3, [r5, #24] +.L14109: + mov r3, r4, lsr #8 + ands r2, r3, #15 + beq .L14113 + ldr lr, [r5, #20] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #20] + streq r3, [r5, #20] +.L14113: + mov r3, r4, lsr #12 + ands r2, r3, #15 + beq .L14117 + ldr lr, [r5, #16] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #16] + streq r3, [r5, #16] +.L14117: + mov r3, r4, lsr #16 + ands r2, r3, #15 + beq .L14121 + ldr lr, [r5, #12] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #12] + streq r3, [r5, #12] +.L14121: + mov r3, r4, lsr #20 + ands r2, r3, #15 + beq .L14125 + ldr lr, [r5, #8] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #8] + streq r3, [r5, #8] +.L14125: + mov r3, r4, lsr #24 + ands r2, r3, #15 + beq .L14129 + ldr lr, [r5, #4] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #4] + streq r3, [r5, #4] +.L14129: + movs r2, r4, lsr #28 + beq .L14103 + ldr lr, [r5, #0] + orr r2, r6, r2 + tst lr, #256 + movne r3, lr, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, lr, asl #16 + strne r3, [r5, #0] + streq r3, [r5, #0] +.L14103: + add r1, r1, #1 + cmp ip, r1 + sub r7, r7, #32 + add r5, r5, #32 + bne .L14102 + rsb r3, ip, ip, asl #27 + add r0, r0, r3, asl #5 + add r8, r8, ip, asl #5 +.L14100: + ands r4, sl, #7 + beq .L13691 + ldr ip, [r0, #0] + mov lr, #0 +.L14138: + movs r3, ip, lsr #28 + beq .L14139 + ldr r1, [r8, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r8, #0] + streq r2, [r8, #0] +.L14139: + add lr, lr, #1 + cmp lr, r4 + mov ip, ip, asl #4 + add r8, r8, #4 + bne .L14138 + b .L13691 +.L15727: + mov r4, r9 +.L14904: + cmp r7, r3 + bhi .L15674 + b .L13691 +.L14905: + cmp lr, r7 + bcs .L13691 +.L15674: + mov r3, lr, asr #1 + and r6, r3, #3 + mov r3, lr, asr #3 + mov r3, r3, asl #5 + mov r2, lr, asr #1 + tst lr, #1 + add ip, r3, r1 + and r5, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r5] @ zero_extendqisi2 + ldrneb r3, [ip, r6] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + ldr r5, [sp, #28] + ldr r3, [sp, #88] + ldr ip, [sp, #136] + add r0, r0, r3 + orr r3, r2, r5 + cmp r2, #0 + add r4, r4, #1 + orr r3, ip, r3 + strne r3, [r8, #0] + cmp fp, r4 + mov lr, r0, asr #8 + add r8, r8, #4 + bgt .L14905 + b .L13691 +.L14183: + mov r3, r0, lsr #3 + ands r2, r0, #7 + add r4, ip, r3, asl #6 + ldreq r0, [sp, #108] + bne .L15709 +.L14333: + movs lr, r8, lsr #3 + beq .L13691 + mov ip, #0 + b .L14374 +.L15710: + add r4, r4, #64 + add r0, r0, #32 +.L14374: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L14375 + ands r1, r2, #255 + beq .L14377 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L14377: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14381 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L14381: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14385 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L14385: + movs r2, r2, lsr #24 + beq .L14375 + ldr r1, [r0, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L14375: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L14392 + ands r1, r2, #255 + beq .L14394 + ldr r3, [r0, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L14394: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14398 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L14398: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14402 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L14402: + movs r2, r2, lsr #24 + beq .L14392 + ldr r3, [r0, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L14392: + add ip, ip, #1 + cmp ip, lr + bne .L15710 + b .L13691 +.L13775: + mov r3, lr, lsr #3 + mov r1, r3, asl #5 + ands r3, lr, #7 + add r5, r0, r1 + ldreq ip, [sp, #108] + bne .L15711 +.L13846: + movs r4, r8, lsr #3 + beq .L13691 + mov lr, #0 + b .L13858 +.L15712: + add r5, r5, #32 + add ip, ip, #32 +.L13858: + ldr r0, [r5, #0] + cmp r0, #0 + beq .L13859 + ands r2, r0, #15 + beq .L13861 + ldr r1, [ip, #0] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L13861: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L13865 + ldr r1, [ip, #4] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L13865: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L13869 + ldr r1, [ip, #8] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L13869: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L13873 + ldr r1, [ip, #12] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L13873: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L13877 + ldr r1, [ip, #16] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L13877: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L13881 + ldr r1, [ip, #20] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L13881: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L13885 + ldr r1, [ip, #24] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L13885: + movs r2, r0, lsr #28 + beq .L13859 + ldr r1, [ip, #28] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L13859: + add lr, lr, #1 + cmp r4, lr + bne .L15712 + b .L13691 +.L15417: + mov r3, r0, lsr #3 + ands r1, r0, #7 + sub r2, r2, r3, asl #6 + ldreq r0, [sp, #108] + bne .L15713 +.L15521: + movs lr, lr, lsr #3 + beq .L13691 + mov ip, #0 + b .L15550 +.L15714: + sub r2, r2, #64 + add r0, r0, #32 +.L15550: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L15551 + ands r3, r1, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r0, #0] +.L15551: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L15560 + ands r3, r1, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r0, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r0, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r0, #20] + movs r3, r1, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r0, #16] +.L15560: + add ip, ip, #1 + cmp ip, lr + bne .L15714 + b .L13691 +.L14519: + ands r2, r0, #7 + mov r3, r0, lsr #3 + sub r4, ip, r3, asl #6 + ldreq ip, [sp, #108] + bne .L15715 +.L14669: + movs r5, r8, lsr #3 + beq .L13691 + mov lr, #0 + b .L14710 +.L15716: + sub r4, r4, #64 + add ip, ip, #32 +.L14710: + ldr r2, [r4, #4] + cmp r2, #0 + beq .L14711 + ands r1, r2, #255 + beq .L14713 + ldr r3, [ip, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L14713: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L14717 + ldr r3, [ip, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L14717: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L14721 + ldr r3, [ip, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L14721: + movs r2, r2, lsr #24 + beq .L14711 + ldr r3, [ip, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L14711: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L14728 + ands r2, r1, #255 + beq .L14730 + ldr r0, [ip, #28] + tst r0, #256 + movne r3, r0, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r0, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L14730: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L14734 + ldr r3, [ip, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L14734: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L14738 + ldr r3, [ip, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L14738: + movs r2, r1, lsr #24 + beq .L14728 + ldr r1, [ip, #16] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L14728: + add lr, lr, #1 + cmp r5, lr + bne .L15716 + b .L13691 +.L13979: + mov r3, lr, lsr #3 + ands r2, lr, #7 + sub ip, r0, r3, asl #5 + ldreq lr, [sp, #108] + bne .L15717 +.L14050: + movs r5, r8, lsr #3 + beq .L13691 + mov r4, #0 + b .L14062 +.L15718: + sub ip, ip, #32 + add lr, lr, #32 +.L14062: + ldr r0, [ip, #0] + cmp r0, #0 + beq .L14063 + ands r2, r0, #15 + beq .L14065 + ldr r1, [lr, #28] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #28] + streq r3, [lr, #28] +.L14065: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L14069 + ldr r1, [lr, #24] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #24] + streq r3, [lr, #24] +.L14069: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L14073 + ldr r1, [lr, #20] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #20] + streq r3, [lr, #20] +.L14073: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L14077 + ldr r1, [lr, #16] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #16] + streq r3, [lr, #16] +.L14077: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L14081 + ldr r1, [lr, #12] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #12] + streq r3, [lr, #12] +.L14081: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L14085 + ldr r1, [lr, #8] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #8] + streq r3, [lr, #8] +.L14085: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L14089 + ldr r1, [lr, #4] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #4] + streq r3, [lr, #4] +.L14089: + movs r2, r0, lsr #28 + beq .L14063 + ldr r1, [lr, #0] + orr r2, r6, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #0] + streq r3, [lr, #0] +.L14063: + add r4, r4, #1 + cmp r4, r5 + bne .L15718 + b .L13691 +.L14937: + mov r3, lr, lsr #3 + mov r1, r3, asl #5 + ands r3, lr, #7 + add lr, r0, r1 + ldreq r1, [sp, #108] + bne .L15719 +.L14986: + movs ip, r4, lsr #3 + beq .L13691 + mov r0, #0 + b .L14996 +.L15720: + add lr, lr, #32 + add r1, r1, #32 +.L14996: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L14997 + ands r3, r2, #15 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + orrne r3, r6, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + orrne r3, r6, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #28 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r1, #28] +.L14997: + add r0, r0, #1 + cmp r0, ip + bne .L15720 + b .L13691 +.L15197: + ands r2, r0, #7 + mov r3, r0, lsr #3 + add r0, ip, r3, asl #6 + ldreq r1, [sp, #108] + bne .L15721 +.L15301: + movs lr, lr, lsr #3 + beq .L13691 + mov ip, #0 + b .L15330 +.L15722: + add r0, r0, #64 + add r1, r1, #32 +.L15330: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L15331 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #12] +.L15331: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L15340 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #28] +.L15340: + add ip, ip, #1 + cmp ip, lr + bne .L15722 + b .L13691 +.L15067: + ands r2, lr, #7 + mov r3, lr, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r4, [sp, #108] + bne .L15723 +.L15116: + movs r1, r1, lsr #3 + beq .L13691 + mov r2, #0 + b .L15126 +.L15724: + sub r0, r0, #32 + add r4, r4, #32 +.L15126: + ldr lr, [r0, #0] + cmp lr, #0 + beq .L15127 + ands r3, lr, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #28] + mov r3, lr, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r4, #24] + mov r3, lr, lsr #8 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r4, #20] + mov r3, lr, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #16] + mov r3, lr, lsr #16 + ands r3, r3, #15 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + orrne r3, r6, r3 + strne r3, [r4, #12] + mov r3, lr, lsr #20 + ands r3, r3, #15 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + orrne r3, r6, r3 + strne r3, [r4, #8] + mov r3, lr, lsr #24 + ands r3, r3, #15 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + orrne r3, r6, r3 + strne r3, [r4, #4] + movs r3, lr, lsr #28 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + orrne r3, r6, r3 + strne r3, [r4, #0] +.L15127: + add r2, r2, #1 + cmp r1, r2 + bne .L15724 + b .L13691 +.L15723: + rsbs ip, r2, #8 + ldr lr, [r0, #0] + ldreq r4, [sp, #108] + beq .L15119 + mov r3, r2, asl #2 + mov lr, lr, asl r3 + mov r4, #0 +.L15120: + ldr r5, [sp, #28] + movs r3, lr, lsr #28 + ldrne r7, [sp, #108] + orr r3, r5, r3 + orr r3, r6, r3 + strne r3, [r7, r4, asl #2] + add r4, r4, #1 + cmp ip, r4 + mov lr, lr, asl #4 + bne .L15120 + ldr r8, [sp, #108] + add r4, r8, ip, asl #2 +.L15119: + sub r0, r0, #32 + b .L15116 +.L15721: + cmp r2, #3 + rsb ip, r2, #8 + bls .L15302 + cmp ip, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #108] + beq .L15306 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + mov r1, #0 +.L15307: + ands r3, r2, #255 + ldr r7, [sp, #28] + ldrne r8, [sp, #108] + orr r3, r7, r3 + strne r3, [r8, r1, asl #2] + add r1, r1, #1 + cmp r1, ip + mov r2, r2, lsr #8 + bne .L15307 + ldr r2, [sp, #108] + add r1, r2, ip, asl #2 +.L15306: + add r0, r0, #64 + b .L15301 +.L15719: + rsbs r5, r3, #8 + ldr r0, [r0, r1] + ldreq r1, [sp, #108] + beq .L14989 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L14990: + ldr r7, [sp, #28] + ands r3, r0, #15 + ldrne r8, [sp, #108] + orr r3, r7, r3 + orr r3, r6, r3 + strne r3, [r8, r2, asl #2] + add r2, r2, #1 + cmp r2, r5 + mov r0, r0, lsr #4 + bne .L14990 + ldr ip, [sp, #108] + add r1, ip, r5, asl #2 +.L14989: + add lr, lr, #32 + b .L14986 +.L15715: + cmp r2, #3 + rsb r6, r2, #8 + bls .L14670 + cmp r6, #0 + ldr r1, [r4, #0] + ldreq ip, [sp, #108] + beq .L14674 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr lr, [sp, #108] + mov r5, #0 +.L14675: + movs r0, ip, lsr #24 + beq .L14676 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14676: + add r5, r5, #1 + cmp r5, r6 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14675 + ldr r2, [sp, #108] + add ip, r2, r6, asl #2 +.L14674: + sub r4, r4, #64 + b .L14669 +.L15713: + cmp r1, #3 + rsb ip, r1, #8 + bls .L15522 + cmp ip, #0 + ldr r0, [r2, #0] + ldreq r0, [sp, #108] + beq .L15526 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r1, r0, asl r3 + mov r0, #0 +.L15527: + movs r3, r1, lsr #24 + ldr r7, [sp, #28] + ldrne r8, [sp, #108] + orr r3, r7, r3 + strne r3, [r8, r0, asl #2] + add r0, r0, #1 + cmp ip, r0 + mov r1, r1, asl #8 + bne .L15527 + ldr r1, [sp, #108] + add r0, r1, ip, asl #2 +.L15526: + sub r2, r2, #64 + b .L15521 +.L15717: + rsbs r7, r2, #8 + ldr r1, [ip, #0] + ldreq lr, [sp, #108] + beq .L14053 + mov r3, r2, asl #2 + mov lr, r1, asl r3 + ldr r4, [sp, #108] + mov r5, #0 +.L14054: + movs r3, lr, lsr #28 + beq .L14055 + ldr r1, [r4, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L14055: + add r5, r5, #1 + cmp r5, r7 + mov lr, lr, asl #4 + add r4, r4, #4 + bne .L14054 + ldr r0, [sp, #108] + add lr, r0, r7, asl #2 +.L14053: + sub ip, ip, #32 + b .L14050 +.L15711: + rsbs r7, r3, #8 + ldr r0, [r0, r1] + ldreq ip, [sp, #108] + beq .L13849 + mov r3, r3, asl #2 + mov ip, r0, lsr r3 + ldr lr, [sp, #108] + mov r4, #0 +.L13850: + ands r3, ip, #15 + beq .L13851 + ldr r1, [lr, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L13851: + add r4, r4, #1 + cmp r7, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L13850 + ldr lr, [sp, #108] + add ip, lr, r7, asl #2 +.L13849: + add r5, r5, #32 + b .L13846 +.L15709: + cmp r2, #3 + rsb r6, r2, #8 + bls .L14334 + cmp r6, #0 + ldr r1, [r4, #4] + ldreq r0, [sp, #108] + beq .L14338 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, lsr r3 + ldr lr, [sp, #108] + mov r5, #0 +.L14339: + ands r0, ip, #255 + beq .L14340 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14340: + add r5, r5, #1 + cmp r6, r5 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14339 + ldr r7, [sp, #108] + add r0, r7, r6, asl #2 +.L14338: + add r4, r4, #64 + b .L14333 +.L14185: + ldr r2, [sp, #144] + rsb r5, lr, #8 + cmp r2, r5 + bge .L14188 + cmp r2, #0 + ble .L13691 + cmp lr, #3 + bls .L14191 + mov r3, lr, asl #3 + ldr r2, [r7, #4] + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #108] + mov r4, #0 +.L14194: + ands r0, ip, #255 + beq .L14195 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14195: + ldr r3, [sp, #144] + add r4, r4, #1 + cmp r3, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14194 + b .L13691 +.L15069: + ldr r7, [sp, #144] + rsb r5, r4, #8 + cmp r7, r5 + bge .L15072 + cmp r7, #0 + ble .L13691 + ldr r2, [r0, #0] + mov r3, r4, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L15076: + ldr r8, [sp, #28] + movs r3, r0, lsr #28 + ldrne ip, [sp, #108] + orr r3, r8, r3 + orr r3, r6, r3 + ldr lr, [sp, #144] + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp lr, r2 + mov r0, r0, asl #4 + bne .L15076 + b .L13691 +.L15419: + ldr r7, [sp, #144] + rsb r0, ip, #8 + cmp r7, r0 + bge .L15422 + cmp r7, #0 + ble .L13691 + cmp ip, #3 + bls .L15425 + ldr r2, [r6, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L15428: + movs r3, r2, lsr #24 + ldr r8, [sp, #28] + ldrne ip, [sp, #108] + orr r3, r8, r3 + ldr lr, [sp, #144] + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp lr, r1 + mov r2, r2, asl #8 + bne .L15428 + b .L13691 +.L13981: + ldr r2, [sp, #144] + rsb r7, r4, #8 + cmp r2, r7 + bge .L13984 + cmp r2, #0 + ble .L13691 + ldr r2, [ip, #0] + mov r3, r4, asl #2 + mov ip, r2, asl r3 + ldr lr, [sp, #108] + mov r4, #0 +.L13988: + movs r3, ip, lsr #28 + beq .L13989 + ldr r1, [lr, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L13989: + ldr r3, [sp, #144] + add r4, r4, #1 + cmp r3, r4 + mov ip, ip, asl #4 + add lr, lr, #4 + bne .L13988 + b .L13691 +.L14521: + ldr r0, [sp, #144] + rsb r5, lr, #8 + cmp r0, r5 + bge .L14524 + cmp r0, #0 + ble .L13691 + cmp lr, #3 + bls .L14527 + mov r3, lr, asl #3 + ldr r2, [r8, #0] + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #108] + mov r4, #0 +.L14530: + movs r0, ip, lsr #24 + beq .L14531 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14531: + ldr r1, [sp, #144] + add r4, r4, #1 + cmp r1, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14530 + b .L13691 +.L14939: + ldr r2, [sp, #144] + rsb lr, r3, #8 + cmp r2, lr + bge .L14942 + cmp r2, #0 + ble .L13691 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L14946: + ldr r4, [sp, #28] + ands r3, r0, #15 + ldrne r5, [sp, #108] + orr r3, r4, r3 + orr r3, r6, r3 + ldr r7, [sp, #144] + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r7, r2 + mov r0, r0, lsr #4 + bne .L14946 + b .L13691 +.L13777: + ldr r2, [sp, #144] + rsb r5, r3, #8 + cmp r2, r5 + bge .L13780 + cmp r2, #0 + ble .L13691 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr lr, [sp, #108] + mov r4, #0 +.L13784: + ands r3, ip, #15 + beq .L13785 + ldr r1, [lr, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L13785: + ldr r3, [sp, #144] + add r4, r4, #1 + cmp r3, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L13784 + b .L13691 +.L15199: + ldr r5, [sp, #144] + rsb r0, lr, #8 + cmp r5, r0 + bge .L15202 + cmp r5, #0 + ble .L13691 + cmp lr, #3 + bls .L15205 + ldr r2, [r6, #4] + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L15208: + ands r3, r1, #255 + ldr r7, [sp, #28] + ldrne r8, [sp, #108] + orr r3, r7, r3 + ldr ip, [sp, #144] + strne r3, [r8, r2, asl #2] + add r2, r2, #1 + cmp ip, r2 + mov r1, r1, lsr #8 + bne .L15208 + b .L13691 +.L13984: + cmp r7, #0 + ldr r2, [ip, #0] + ldreq r5, [sp, #108] + beq .L13996 + mov r3, r4, asl #2 + mov lr, r2, asl r3 + ldr r4, [sp, #108] + mov r5, #0 +.L13997: + movs r3, lr, lsr #28 + beq .L13998 + ldr r1, [r4, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L13998: + add r5, r5, #1 + cmp r7, r5 + mov lr, lr, asl #4 + add r4, r4, #4 + bne .L13997 + ldr r4, [sp, #108] + add r5, r4, r7, asl #2 +.L13996: + ldr r8, [sp, #144] + sub ip, ip, #32 + rsb sl, r7, r8 + b .L13983 +.L14188: + cmp lr, #3 + bls .L14226 + cmp r5, #0 + ldr r2, [r7, #4] + ldreq r4, [sp, #108] + beq .L14230 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #108] + mov r4, #0 +.L14231: + ands r0, ip, #255 + beq .L14232 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14232: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14231 + ldr r2, [sp, #108] + add r4, r2, r5, asl #2 +.L14230: + ldr r3, [sp, #144] + add r7, r7, #64 + rsb r6, r5, r3 + b .L14187 +.L14524: + cmp lr, #3 + bls .L14562 + cmp r5, #0 + ldr r2, [r8, #0] + ldreq r4, [sp, #108] + beq .L14566 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #108] + mov r4, #0 +.L14567: + movs r0, ip, lsr #24 + beq .L14568 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14568: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14567 + ldr lr, [sp, #108] + add r4, lr, r5, asl #2 +.L14566: + ldr r0, [sp, #144] + sub r8, r8, #64 + rsb r7, r5, r0 + b .L14523 +.L15302: + subs r4, ip, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #108] + beq .L15314 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + mov r1, #0 +.L15315: + ands r3, r2, #255 + ldr r5, [sp, #28] + ldrne r7, [sp, #108] + orr r3, r5, r3 + strne r3, [r7, r1, asl #2] + add r1, r1, #1 + cmp r4, r1 + mov r2, r2, lsr #8 + bne .L15315 + ldr r8, [sp, #108] + add r3, r8, ip, asl #2 + sub r1, r3, #16 +.L15314: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L15320 + ands r3, r2, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #12] +.L15320: + add r1, r1, #16 + add r0, r0, #64 + b .L15301 +.L15522: + subs r4, ip, #4 + ldr r0, [r2, #4] + ldreq r0, [sp, #108] + beq .L15534 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r1, r0, asl r3 + mov r0, #0 +.L15535: + movs r3, r1, lsr #24 + ldr r5, [sp, #28] + ldrne r7, [sp, #108] + orr r3, r5, r3 + strne r3, [r7, r0, asl #2] + add r0, r0, #1 + cmp r0, r4 + mov r1, r1, asl #8 + bne .L15535 + ldr r8, [sp, #108] + add r3, r8, ip, asl #2 + sub r0, r3, #16 +.L15534: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L15540 + ands r3, r1, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #28] + orrne r3, r4, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #28] + orrne r3, r5, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r0, #0] +.L15540: + add r0, r0, #16 + sub r2, r2, #64 + b .L15521 +.L15202: + cmp lr, #3 + bls .L15232 + cmp r0, #0 + ldr r2, [r6, #4] + ldreq r4, [sp, #108] + beq .L15236 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L15237: + ands r3, r1, #255 + ldr r7, [sp, #28] + ldrne r8, [sp, #108] + orr r3, r7, r3 + strne r3, [r8, r2, asl #2] + add r2, r2, #1 + cmp r0, r2 + mov r1, r1, lsr #8 + bne .L15237 + ldr ip, [sp, #108] + add r4, ip, r0, asl #2 +.L15236: + ldr r1, [sp, #144] + add r6, r6, #64 + rsb r5, r0, r1 + b .L15201 +.L13780: + cmp r5, #0 + ldr r2, [r8, #0] + ldreq r4, [sp, #108] + beq .L13792 + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr lr, [sp, #108] + mov r4, #0 +.L13793: + ands r3, ip, #15 + beq .L13794 + ldr r1, [lr, #0] + orr r2, r6, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [lr, #0] + streq r2, [lr, #0] +.L13794: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #4 + add lr, lr, #4 + bne .L13793 + ldr r7, [sp, #108] + add r4, r7, r5, asl #2 +.L13792: + ldr ip, [sp, #144] + add r8, r8, #32 + rsb sl, r5, ip + b .L13779 +.L15422: + cmp ip, #3 + bls .L15452 + cmp r0, #0 + ldr r2, [r6, #0] + ldreq r4, [sp, #108] + beq .L15456 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L15457: + movs r3, r2, lsr #24 + ldr r7, [sp, #28] + ldrne r8, [sp, #108] + orr r3, r7, r3 + strne r3, [r8, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bne .L15457 + ldr ip, [sp, #108] + add r4, ip, r0, asl #2 +.L15456: + ldr r3, [sp, #144] + sub r6, r6, #64 + rsb r5, r0, r3 + b .L15421 +.L15072: + cmp r5, #0 + ldr r2, [r0, #0] + ldreq r1, [sp, #108] + beq .L15082 + mov r3, r4, asl #2 + mov lr, r2, asl r3 + mov r4, #0 +.L15083: + ldr r1, [sp, #28] + movs r3, lr, lsr #28 + ldrne r2, [sp, #108] + orr r3, r1, r3 + orr r3, r6, r3 + strne r3, [r2, r4, asl #2] + add r4, r4, #1 + cmp r5, r4 + mov lr, lr, asl #4 + bne .L15083 + ldr r3, [sp, #108] + add r1, r3, r5, asl #2 +.L15082: + ldr r4, [sp, #144] + sub r0, r0, #32 + rsb r2, r5, r4 + b .L15071 +.L14334: + subs r7, r6, #4 + ldr r1, [r4, #0] + ldreq r2, [sp, #108] + beq .L14348 + mov r3, r2, asl #3 + mov ip, r1, lsr r3 + ldr lr, [sp, #108] + mov r5, #0 +.L14349: + ands r0, ip, #255 + beq .L14350 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14350: + add r5, r5, #1 + cmp r7, r5 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14349 + ldr r5, [sp, #108] + add r3, r5, r6, asl #2 + sub r2, r3, #16 +.L14348: + ldr r1, [r4, #4] + cmp r1, #0 + beq .L14356 + ands r0, r1, #255 + beq .L14358 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #0] + streq r3, [r2, #0] +.L14358: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L14362 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L14362: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L14366 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L14366: + movs r1, r1, lsr #24 + beq .L14356 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #12] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #12] +.L14356: + add r0, r2, #16 + add r4, r4, #64 + b .L14333 +.L14670: + subs r7, r6, #4 + ldr r1, [r4, #4] + ldreq r2, [sp, #108] + beq .L14684 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr lr, [sp, #108] + mov r5, #0 +.L14685: + movs r0, ip, lsr #24 + beq .L14686 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14686: + add r5, r5, #1 + cmp r5, r7 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14685 + ldr r1, [sp, #108] + add r3, r1, r6, asl #2 + sub r2, r3, #16 +.L14684: + ldr r1, [r4, #0] + cmp r1, #0 + beq .L14692 + ands r0, r1, #255 + beq .L14694 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #12] + streq r3, [r2, #12] +.L14694: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L14698 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L14698: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L14702 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L14702: + movs r1, r1, lsr #24 + beq .L14692 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #0] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #0] +.L14692: + add ip, r2, #16 + sub r4, r4, #64 + b .L14669 +.L14942: + cmp lr, #0 + ldr r2, [r4, #0] + ldreq r7, [sp, #108] + beq .L14952 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + mov r1, #0 +.L14953: + ldr r8, [sp, #28] + ands r3, r2, #15 + ldrne ip, [sp, #108] + orr r3, r8, r3 + orr r3, r6, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp lr, r1 + mov r2, r2, lsr #4 + bne .L14953 + ldr r0, [sp, #108] + add r7, r0, lr, asl #2 +.L14952: + ldr r1, [sp, #144] + add r4, r4, #32 + rsb r5, lr, r1 + b .L14941 +.L15726: + mov ip, fp + b .L15672 +.L15725: + ldr ip, [sp, #12] + b .L15660 +.L15728: + ldr lr, [sp, #16] + b .L15662 +.L15452: + subs lr, r0, #4 + ldr r2, [r6, #4] + ldreq r1, [sp, #108] + beq .L15464 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L15465: + movs r3, r2, lsr #24 + ldr r4, [sp, #28] + ldrne r5, [sp, #108] + orr r3, r4, r3 + strne r3, [r5, r1, asl #2] + add r1, r1, #1 + cmp r1, lr + mov r2, r2, asl #8 + bne .L15465 + ldr r7, [sp, #108] + add r3, r7, r0, asl #2 + sub r1, r3, #16 +.L15464: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L15470 + ands r3, r2, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #28] + orrne r3, r2, r3 + strne r3, [r1, #0] +.L15470: + add r4, r1, #16 + b .L15456 +.L15232: + subs ip, r0, #4 + ldr r2, [r6, #0] + ldreq r1, [sp, #108] + beq .L15244 + mov r3, lr, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L15245: + ands r3, r1, #255 + ldr lr, [sp, #28] + ldrne r4, [sp, #108] + orr r3, lr, r3 + strne r3, [r4, r2, asl #2] + add r2, r2, #1 + cmp ip, r2 + mov r1, r1, lsr #8 + bne .L15245 + ldr r5, [sp, #108] + add r3, r5, r0, asl #2 + sub r1, r3, #16 +.L15244: + ldr r2, [r6, #4] + cmp r2, #0 + beq .L15250 + ands r3, r2, #255 + ldrne r7, [sp, #28] + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #28] + orrne r3, r8, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne ip, [sp, #28] + orrne r3, ip, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne lr, [sp, #28] + orrne r3, lr, r3 + strne r3, [r1, #12] +.L15250: + add r4, r1, #16 + b .L15236 +.L14562: + subs r6, r5, #4 + ldr r2, [r8, #4] + ldreq r2, [sp, #108] + beq .L14576 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #108] + mov r4, #0 +.L14577: + movs r0, ip, lsr #24 + beq .L14578 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14578: + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14577 + ldr ip, [sp, #108] + add r3, ip, r5, asl #2 + sub r2, r3, #16 +.L14576: + ldr r1, [r8, #0] + cmp r1, #0 + beq .L14584 + ands r0, r1, #255 + beq .L14586 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #12] + streq r3, [r2, #12] +.L14586: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L14590 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L14590: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L14594 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L14594: + movs r1, r1, lsr #24 + beq .L14584 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #0] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #0] +.L14584: + add r4, r2, #16 + b .L14566 +.L14226: + subs r6, r5, #4 + ldr r2, [r7, #0] + ldreq r2, [sp, #108] + beq .L14240 + mov r3, lr, asl #3 + mov ip, r2, lsr r3 + ldr lr, [sp, #108] + mov r4, #0 +.L14241: + ands r0, ip, #255 + beq .L14242 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14242: + add r4, r4, #1 + cmp r4, r6 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14241 + ldr r1, [sp, #108] + add r3, r1, r5, asl #2 + sub r2, r3, #16 +.L14240: + ldr r1, [r7, #4] + cmp r1, #0 + beq .L14248 + ands r0, r1, #255 + beq .L14250 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #0] + streq r3, [r2, #0] +.L14250: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L14254 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L14254: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L14258 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L14258: + movs r1, r1, lsr #24 + beq .L14248 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #12] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #12] +.L14248: + add r4, r2, #16 + b .L14230 +.L15205: + ldr r0, [sp, #144] + ldr r3, [r6, #0] + add r2, r0, lr + cmp r2, #4 + mov r1, lr, asl #3 + mov r2, r3, lsr r1 + bhi .L15212 + cmp r0, #0 + movne r1, #0 + beq .L13691 +.L15228: + ands r3, r2, #255 + ldr r0, [sp, #28] + ldrne r4, [sp, #108] + orr r3, r0, r3 + ldr r5, [sp, #144] + strne r3, [r4, r1, asl #2] + add r1, r1, #1 + cmp r5, r1 + mov r2, r2, lsr #8 + bne .L15228 + b .L13691 +.L14527: + ldr r4, [sp, #144] + mov r3, lr, asl #3 + ldr r1, [r8, #4] + add r2, r4, lr + sub r3, r3, #32 + cmp r2, #4 + mov ip, r1, asl r3 + bhi .L14536 + cmp r4, #0 + ldrne lr, [sp, #108] + movne r4, #0 + beq .L13691 +.L14556: + movs r0, ip, lsr #24 + beq .L14557 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14557: + ldr r8, [sp, #144] + add r4, r4, #1 + cmp r8, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14556 + b .L13691 +.L15425: + ldr r0, [sp, #144] + mov r3, ip, asl #3 + ldr r1, [r6, #4] + add r2, r0, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L15432 + cmp r0, #0 + movne r2, #0 + beq .L13691 +.L15448: + movs r3, r1, lsr #24 + ldr r0, [sp, #28] + ldrne r4, [sp, #108] + orr r3, r0, r3 + ldr r5, [sp, #144] + strne r3, [r4, r2, asl #2] + add r2, r2, #1 + cmp r5, r2 + mov r1, r1, asl #8 + bne .L15448 + b .L13691 +.L14191: + ldr r4, [sp, #144] + ldr r3, [r7, #0] + add r2, r4, lr + mov r1, lr, asl #3 + cmp r2, #4 + mov ip, r3, lsr r1 + bhi .L14200 + cmp r4, #0 + ldrne lr, [sp, #108] + movne r4, #0 + beq .L13691 +.L14220: + ands r0, ip, #255 + beq .L14221 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14221: + ldr r0, [sp, #144] + add r4, r4, #1 + cmp r0, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14220 + b .L13691 +.L14200: + rsbs r4, lr, #4 + ldreq lr, [sp, #108] + beq .L14205 + ldr lr, [sp, #108] + mov r5, #0 +.L14206: + ands r0, ip, #255 + beq .L14207 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14207: + add r5, r5, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14206 + ldr r5, [sp, #108] + add lr, r5, r4, asl #2 +.L14205: + ldr r8, [sp, #144] + ldr ip, [r7, #4] + subs r5, r8, r4 + beq .L13691 + mov r4, #0 +.L14214: + ands r0, ip, #255 + beq .L14215 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14215: + add r4, r4, #1 + cmp r4, r5 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L14214 + b .L13691 +.L15432: + rsbs r0, ip, #4 + ldreq ip, [sp, #108] + beq .L15437 + mov r2, #0 +.L15438: + movs r3, r1, lsr #24 + ldr r4, [sp, #28] + ldrne r5, [sp, #108] + orr r3, r4, r3 + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r2, r0 + mov r1, r1, asl #8 + bne .L15438 + ldr r7, [sp, #108] + add ip, r7, r0, asl #2 +.L15437: + ldr r8, [sp, #144] + ldr r2, [r6, #0] + subs r0, r8, r0 + beq .L13691 + mov r1, #0 +.L15444: + ldr lr, [sp, #28] + movs r3, r2, lsr #24 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, asl #8 + bne .L15444 + b .L13691 +.L14536: + rsbs r4, lr, #4 + ldreq lr, [sp, #108] + beq .L14541 + ldr lr, [sp, #108] + mov r5, #0 +.L14542: + movs r0, ip, lsr #24 + beq .L14543 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14543: + add r5, r5, #1 + cmp r4, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14542 + ldr r5, [sp, #108] + add lr, r5, r4, asl #2 +.L14541: + ldr r7, [sp, #144] + ldr ip, [r8, #0] + subs r5, r7, r4 + beq .L13691 + mov r4, #0 +.L14550: + movs r0, ip, lsr #24 + beq .L14551 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L14551: + add r4, r4, #1 + cmp r4, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L14550 + b .L13691 +.L15212: + rsbs r0, lr, #4 + ldreq ip, [sp, #108] + beq .L15217 + mov r1, #0 +.L15218: + ands r3, r2, #255 + ldr r4, [sp, #28] + ldrne r5, [sp, #108] + orr r3, r4, r3 + strne r3, [r5, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L15218 + ldr r7, [sp, #108] + add ip, r7, r0, asl #2 +.L15217: + ldr r8, [sp, #144] + ldr r2, [r6, #4] + subs r0, r8, r0 + beq .L13691 + mov r1, #0 +.L15224: + ldr lr, [sp, #28] + ands r3, r2, #255 + orr r3, lr, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L15224 + b .L13691 + .size render_scanline_obj_partial_alpha_1D, .-render_scanline_obj_partial_alpha_1D + .align 2 + .global render_scanline_obj_partial_alpha_2D + .type render_scanline_obj_partial_alpha_2D, %function +render_scanline_obj_partial_alpha_2D: + @ args = 0, pretend = 0, frame = 140 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L17801 + sub sp, sp, #140 + ldrh r4, [ip, #6] + add r0, r0, r0, asl #2 + str r4, [sp, #60] + ldr r5, [sp, #60] + ldrh r4, [ip, #80] + ldr ip, .L17801+4 + add r0, r5, r0, asl #5 + ldr ip, [ip, r0, asl #2] + mov lr, r4, lsr #11 + and lr, lr, #2 + mov r4, r4, asl #27 + str ip, [sp, #64] + orr lr, lr, r4, lsr #31 + cmp ip, #0 + ldr ip, .L17801+8 + mov lr, lr, asl #9 + add r0, ip, r0, asl #7 + orr lr, lr, #256 + str r0, [sp, #68] + str r1, [sp, #12] + str r2, [sp, #8] + str r3, [sp, #4] + str lr, [sp, #52] + beq .L17699 + mov ip, #0 + add r7, r3, r1, asl #2 + rsb r8, r1, r2 + str r7, [sp, #96] + str r8, [sp, #128] + str ip, [sp, #56] + mov lr, ip +.L15740: + ldr r0, [sp, #68] + ldr r1, .L17801+12 + ldrb r3, [lr, r0] @ zero_extendqisi2 + mov r3, r3, asl #3 + ldrh r4, [r3, r1] + add r3, r3, r1 + ldrh r1, [r3, #2] + mov ip, r4, lsr #12 + and r2, ip, #12 + orr r0, r2, r1, lsr #14 + and r5, r4, #255 + mov r2, r1, asl #23 + cmp r5, #160 + ldrh lr, [r3, #4] + mov r6, r2, asr #23 + ldr r3, .L17801+16 + ldr r2, .L17801+20 + subgt r5, r5, #256 + tst r4, #3072 + ldr sl, [r2, r0, asl #2] + ldr r8, [r3, r0, asl #2] + beq .L15743 + tst r4, #256 + beq .L15745 + tst r4, #8192 + beq .L15747 + tst r4, #512 + mov r3, r1, lsr #4 + ldr r4, .L17801+12 + and r3, r3, #992 + add r3, r3, r4 + add r2, sl, sl, lsr #31 + ldrh r7, [r3, #30] + mov r4, r2, asr #1 + add r1, r8, r8, lsr #31 + ldr r2, [sp, #12] + mov r9, r1, asr #1 + ldrh fp, [r3, #6] + ldrh r1, [r3, #14] + ldrh r3, [r3, #22] + str r7, [sp, #20] + moveq ip, r4 + moveq r7, sl + moveq r0, r9 + movne r7, sl, asl #1 + movne ip, r4, asl #1 + movne r0, r9, asl #1 + cmp r6, r2 + str r3, [sp, #16] + bge .L15752 + rsb r2, r6, r2 + rsb r7, r2, r7 + cmp r7, #0 + ble .L15754 + ldr r6, [sp, #12] + rsb ip, r2, ip +.L15752: + ldr r2, [sp, #8] + add r3, r6, r7 + cmp r3, r2 + blt .L15756 + rsb r7, r6, r2 + cmp r7, #0 + ble .L15754 +.L15756: + add r0, r5, r0 + ldr r5, [sp, #20] + mov r2, r1, asl #16 + mov r1, r5, asl #16 + ldr r5, [sp, #16] + mov r3, fp, asl #16 + cmp r5, #0 + mov fp, r3, asr #16 + mov r5, r2, asr #16 + ldr r3, [sp, #60] + ldr r2, [sp, #4] + mov r4, r4, asl #8 + str r4, [sp, #100] + mov r1, r1, asr #16 + mov r4, r9, asl #8 + add r6, r2, r6, asl #2 + rsb r0, r0, r3 + bne .L15758 + mla r3, r0, r1, r4 + mov r2, r3, asr #8 + cmp r2, r8 + bcs .L15754 + mov r3, lr, asl #22 + mov r1, r2, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r1, asl #5 + and r2, r2, #7 + ldr r4, .L17801+24 + add r2, r2, r3, asl #2 + cmp r7, #0 + add lr, r4, r2, asl #3 + ble .L15754 + mul r3, r0, r5 + mul r2, fp, ip + ldr r5, [sp, #100] + rsb r3, r2, r3 + add r0, r5, r3 + mov r2, r0, asr #8 + cmp r2, sl + ldrcs ip, [sp, #16] + bcs .L15764 + b .L17793 +.L15765: + cmp r2, sl + bcc .L15766 +.L15764: + add ip, ip, #1 + add r0, r0, fp + cmp r7, ip + mov r2, r0, asr #8 + add r6, r6, #4 + bne .L15765 +.L15754: + ldr ip, [sp, #56] + ldr lr, [sp, #64] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #56] + beq .L17699 +.L17751: + ldr lr, [sp, #56] + b .L15740 +.L15743: + tst r4, #256 + beq .L16917 + tst r4, #8192 + beq .L16919 + mov r3, r1, lsr #4 + ldr r7, .L17801+12 + and r3, r3, #992 + add r3, r3, r7 + add r1, r8, r8, lsr #31 + ldrh ip, [r3, #30] + mov r7, r1, asr #1 + ldrh r0, [r3, #6] + add r2, sl, sl, lsr #31 + ldr r1, [sp, #12] + tst r4, #512 + mov r4, r2, asr #1 + str ip, [sp, #36] + str r0, [sp, #32] + moveq r9, sl + moveq ip, r4 + moveq r0, r7 + movne r9, sl, asl #1 + movne ip, r4, asl #1 + movne r0, r7, asl #1 + cmp r6, r1 + ldrh r2, [r3, #14] + ldrh fp, [r3, #22] + bge .L16924 + rsb r1, r6, r1 + rsb r9, r1, r9 + cmp r9, #0 + ble .L15754 + ldr r6, [sp, #12] + rsb ip, r1, ip +.L16924: + ldr r1, [sp, #8] + add r3, r6, r9 + cmp r3, r1 + blt .L16927 + rsb r9, r6, r1 + cmp r9, #0 + ble .L15754 +.L16927: + add r0, r5, r0 + ldr r5, [sp, #32] + mov r2, r2, asl #16 + mov r3, r5, asl #16 + ldr r5, [sp, #36] + mov r3, r3, asr #16 + mov r1, r5, asl #16 + str r3, [sp, #80] + mov r5, r2, asr #16 + ldr r3, [sp, #60] + ldr r2, [sp, #4] + mov r4, r4, asl #8 + cmp fp, #0 + str r4, [sp, #132] + mov r1, r1, asr #16 + mov r4, r7, asl #8 + rsb r0, r0, r3 + add r7, r2, r6, asl #2 + bne .L16929 + mla r3, r0, r1, r4 + mov r2, r3, asr #8 + cmp r2, r8 + bcs .L15754 + mov r3, lr, asl #22 + mov r1, r2, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r1, asl #5 + and r2, r2, #7 + ldr r4, .L17801+24 + add r2, r2, r3, asl #2 + cmp r9, #0 + add lr, r4, r2, asl #3 + ble .L15754 + ldr r2, [sp, #80] + mul r3, r0, r5 + mul r2, ip, r2 + ldr r5, [sp, #132] + rsb r3, r2, r3 + add r0, r5, r3 + mov r4, r0, asr #8 + cmp r4, sl + movcs ip, fp + bcs .L16935 + b .L17794 +.L16936: + cmp r4, sl + bcc .L17737 +.L16935: + ldr r8, [sp, #80] + add ip, ip, #1 + add r0, r0, r8 + cmp r9, ip + mov r4, r0, asr #8 + add r7, r7, #4 + bne .L16936 + ldr ip, [sp, #56] + ldr lr, [sp, #64] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #56] + bne .L17751 +.L17699: + add sp, sp, #140 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L15745: + ldr r2, [sp, #60] + tst r1, #8192 + rsb r0, r5, r2 + rsbne r3, r0, r8 + subne r0, r3, #1 + mov r2, r1, asl #19 + and r3, ip, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L15754 + .p2align 2 +.L15836: + .word .L15832 + .word .L15833 + .word .L15834 + .word .L15835 +.L16917: + ldr r2, [sp, #60] + tst r1, #8192 + rsb r0, r5, r2 + rsbne r3, r0, r8 + subne r0, r3, #1 + mov r2, r1, asl #19 + and r3, ip, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L15754 + .p2align 2 +.L16998: + .word .L16994 + .word .L16995 + .word .L16996 + .word .L16997 +.L16919: + mov r3, r1, lsr #4 + ldr r1, .L17801+12 + and r3, r3, #992 + add r3, r3, r1 + tst r4, #512 + add r1, r8, r8, lsr #31 + ldrh r4, [r3, #30] + mov r7, r1, asr #1 + add r2, sl, sl, lsr #31 + ldr r1, [sp, #12] + ldrh ip, [r3, #6] + str r4, [sp, #48] + mov r4, r2, asr #1 + ldrh r2, [r3, #14] + ldrh r3, [r3, #22] + moveq fp, sl + moveq r9, r4 + moveq r0, r7 + movne fp, sl, asl #1 + movne r9, r4, asl #1 + movne r0, r7, asl #1 + cmp r6, r1 + str ip, [sp, #40] + str r3, [sp, #44] + bge .L16956 + rsb r1, r6, r1 + rsb fp, r1, fp + cmp fp, #0 + ble .L15754 + ldr r6, [sp, #12] + rsb r9, r1, r9 +.L16956: + ldr ip, [sp, #8] + add r3, r6, fp + cmp r3, ip + blt .L16959 + rsb fp, r6, ip + cmp fp, #0 + ble .L15754 +.L16959: + add ip, r5, r0 + ldr r0, [sp, #40] + ldr r5, [sp, #48] + mov r3, r0, asl #16 + ldr r0, [sp, #44] + mov r2, r2, asl #16 + mov r3, r3, asr #16 + mov r1, r5, asl #16 + cmp r0, #0 + str r3, [sp, #84] + mov r0, lr, lsr #8 + mov r5, r2, asr #16 + ldr r3, [sp, #60] + ldr r2, [sp, #4] + mov r4, r4, asl #8 + and r0, r0, #240 + str r4, [sp, #92] + mov r1, r1, asr #16 + mov r4, r7, asl #8 + rsb ip, ip, r3 + add r7, r2, r6, asl #2 + str r0, [sp, #116] + bne .L16961 + mla r3, ip, r1, r4 + mov r2, r3, asr #8 + cmp r2, r8 + bcs .L15754 + mov r3, lr, asl #22 + mov r1, r2, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r1, asl #5 + and r2, r2, #7 + ldr r4, .L17801+24 + add r2, r2, r3, asl #3 + cmp fp, #0 + add r1, r4, r2, asl #2 + ble .L15754 + ldr r2, [sp, #84] + mul r3, ip, r5 + mul r2, r9, r2 + ldr r5, [sp, #92] + rsb r3, r2, r3 + add r0, r5, r3 + mov r3, r0, asr #8 + cmp r3, sl + mov r4, r3 + ldrcs r5, [sp, #44] + bcs .L16967 + b .L17795 +.L16968: + cmp r3, sl + bcc .L16969 +.L16967: + ldr r8, [sp, #84] + add r5, r5, #1 + add r0, r0, r8 + mov r3, r0, asr #8 + cmp fp, r5 + add r7, r7, #4 + mov r4, r3 + bne .L16968 + b .L15754 +.L15747: + mov r3, r1, lsr #4 + ldr r7, .L17801+12 + and r3, r3, #992 + add r3, r3, r7 + add r1, r8, r8, lsr #31 + tst r4, #512 + ldrh r0, [r3, #6] + add r2, sl, sl, lsr #31 + mov r7, r1, asr #1 + ldrh ip, [r3, #30] + ldrh r1, [r3, #14] + ldrh fp, [r3, #22] + ldr r3, [sp, #12] + mov r4, r2, asr #1 + movne r2, sl, asl #1 + str r0, [sp, #24] + streq sl, [sp, #136] + moveq r9, r4 + moveq r0, r7 + strne r2, [sp, #136] + movne r9, r4, asl #1 + movne r0, r7, asl #1 + cmp r6, r3 + str ip, [sp, #28] + bge .L15790 + ldr ip, [sp, #136] + rsb r2, r6, r3 + rsb ip, r2, ip + cmp ip, #0 + str ip, [sp, #136] + ble .L15754 + rsb r9, r2, r9 + mov r6, r3 +.L15790: + ldr r2, [sp, #136] + ldr ip, [sp, #8] + add r3, r6, r2 + cmp r3, ip + blt .L15793 + rsb r2, r6, ip + cmp r2, #0 + str r2, [sp, #136] + ble .L15754 +.L15793: + add ip, r5, r0 + ldr r5, [sp, #24] + ldr r0, [sp, #28] + mov r3, r5, asl #16 + mov r2, r1, asl #16 + mov r3, r3, asr #16 + mov r1, r0, asl #16 + str r3, [sp, #72] + mov r0, lr, lsr #8 + mov r5, r2, asr #16 + ldr r3, [sp, #60] + ldr r2, [sp, #4] + mov r4, r4, asl #8 + and r0, r0, #240 + cmp fp, #0 + str r4, [sp, #124] + mov r1, r1, asr #16 + mov r4, r7, asl #8 + rsb ip, ip, r3 + add r7, r2, r6, asl #2 + str r0, [sp, #120] + bne .L15795 + mla r3, ip, r1, r4 + mov r2, r3, asr #8 + cmp r2, r8 + bcs .L15754 + mov r3, lr, asl #22 + mov r1, r2, lsr #3 + mov r3, r3, lsr #22 + ldr r4, [sp, #136] + add r3, r3, r1, asl #5 + and r2, r2, #7 + ldr r8, .L17801+24 + add r2, r2, r3, asl #3 + cmp r4, #0 + add lr, r8, r2, asl #2 + ble .L15754 + ldr r2, [sp, #72] + mul r3, ip, r5 + mul r2, r9, r2 + ldr r0, [sp, #124] + rsb r3, r2, r3 + add ip, r0, r3 + mov r3, ip, asr #8 + cmp r3, sl + mov r1, r3 + movcs r4, fp + bcs .L15801 + b .L17796 +.L15802: + cmp r3, sl + bcc .L15803 +.L15801: + ldr r1, [sp, #72] + ldr r2, [sp, #136] + add ip, ip, r1 + add r4, r4, #1 + mov r3, ip, asr #8 + cmp r2, r4 + add r7, r7, #4 + mov r1, r3 + bne .L15802 + b .L15754 +.L15795: + mov r3, lr, asl #22 + ldr r0, .L17801+24 + ldr lr, [sp, #136] + mov r3, r3, lsr #22 + add r3, r0, r3, asl #5 + cmp lr, #0 + str r3, [sp, #112] + ble .L15754 + mov r3, fp, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #76] + mul r2, ip, r1 + ldr r1, [sp, #76] + ldr r0, [sp, #72] + mul r1, r9, r1 + mul r3, ip, r5 + mul r0, r9, r0 + rsb r2, r1, r2 + ldr r1, [sp, #124] + rsb r3, r0, r3 + add lr, r1, r3 + add r5, r4, r2 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + cmp ip, sl + cmpcc r4, r8 + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L15817 + b .L17797 +.L15818: + cmp ip, sl + cmpcc r4, r8 + bcc .L15820 +.L15817: + ldr r2, [sp, #72] + ldr r3, [sp, #76] + ldr r0, [sp, #136] + add r6, r6, #1 + add lr, lr, r2 + add r5, r5, r3 + cmp r0, r6 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + add r7, r7, #4 + bne .L15818 + b .L15754 +.L17755: + mov r3, ip, asr #1 + ldr r2, [sp, #112] + and fp, r3, #3 + ldr r3, [sp, #112] + and r1, r4, #7 + and r0, r4, #7 + add r1, r2, r1, asl #2 + add r0, r3, r0, asl #2 + mov r2, ip, asr #1 + mov r3, r4, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, ip, asr #3 + add r3, r3, r2, asl #5 + add r0, r0, r3 + tst ip, #1 + add r1, r1, r3 + ldrneb r3, [r1, fp] @ zero_extendqisi2 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + movne r0, r3, lsr #4 + andeq r0, r3, #15 + ldr r4, [sp, #120] + cmp r0, #0 + orr r0, r0, r4 + beq .L15826 + ldr r2, [r7, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r7, #0] + streq r0, [r7, #0] +.L15826: + ldr ip, [sp, #72] + ldr r0, [sp, #76] + ldr r1, [sp, #136] + add r6, r6, #1 + add lr, lr, ip + add r5, r5, r0 + cmp r1, r6 + add r7, r7, #4 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + ble .L15754 +.L15820: + cmp r4, r8 + cmpcc ip, sl + bcc .L17755 + b .L15754 +.L16961: + mov r3, lr, asl #22 + ldr lr, .L17801+24 + mov r3, r3, lsr #22 + add r3, lr, r3, asl #5 + cmp fp, #0 + str r3, [sp, #104] + ble .L15754 + ldr r0, [sp, #44] + mul r2, ip, r1 + mov r3, r0, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #88] + ldr r1, [sp, #88] + ldr r0, [sp, #84] + mul r1, r9, r1 + mul r3, ip, r5 + mul r0, r9, r0 + rsb r2, r1, r2 + ldr r1, [sp, #92] + rsb r3, r0, r3 + add lr, r1, r3 + add r5, r4, r2 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + cmp ip, sl + movcs r3, #0 + movcc r3, #1 + cmp r8, r4 + movls r3, #0 + cmp r3, #0 + moveq r6, r3 + beq .L16981 + b .L17798 +.L16982: + cmp ip, sl + cmpcc r4, r8 + bcc .L16983 +.L16981: + ldr r2, [sp, #84] + ldr r3, [sp, #88] + add r6, r6, #1 + add lr, lr, r2 + add r5, r5, r3 + cmp fp, r6 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + add r7, r7, #4 + bne .L16982 + b .L15754 +.L16938: + cmp r4, sl + bcs .L15754 +.L17737: + ldr r1, [sp, #80] + mov r3, r4, asr #3 + add r0, r0, r1 + add r3, lr, r3, asl #6 + and r1, r4, #7 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r5, [sp, #52] + cmp r2, #0 + add ip, ip, #1 + orr r3, r5, r2 + strne r3, [r7, #0] + cmp r9, ip + mov r4, r0, asr #8 + add r7, r7, #4 + bgt .L16938 + b .L15754 +.L15758: + mov r3, lr, asl #22 + ldr r2, .L17801+24 + mov r3, r3, lsr #22 + cmp r7, #0 + add lr, r2, r3, asl #5 + ble .L15754 + ldr r2, [sp, #16] + mov r3, r2, asl #16 + mov r9, r3, asr #16 + mul r2, r0, r1 + mul r3, r0, r5 + mul r1, r9, ip + mul r0, fp, ip + ldr r5, [sp, #100] + rsb r2, r1, r2 + rsb r3, r0, r3 + add r0, r5, r3 + add r5, r4, r2 + mov r1, r5, asr #8 + mov r4, r0, asr #8 + cmp r4, sl + cmpcc r1, r8 + movcs r3, #0 + movcc r3, #1 + movcs ip, r3 + bcs .L15777 + b .L17799 +.L15778: + cmp r4, sl + cmpcc r1, r8 + bcc .L15780 +.L15777: + add ip, ip, #1 + add r0, r0, fp + add r5, r5, r9 + cmp r7, ip + mov r4, r0, asr #8 + mov r1, r5, asr #8 + add r6, r6, #4 + bne .L15778 + b .L15754 +.L17758: + and r3, r1, #7 + mov r2, r4, asr #3 + mov r3, r3, asl #3 + add r3, r3, r2, asl #6 + mov r1, r1, asr #3 + add r3, r3, r1, asl #10 + and r2, r4, #7 + add r3, r3, lr + ldrb r4, [r3, r2] @ zero_extendqisi2 + cmp r4, #0 + beq .L15783 + ldr r3, [r6, #0] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r1, r4, r3, asl #16 + orr r2, r2, #768 + tst r3, #256 + orr r2, r4, r2 + orr r1, r1, #768 + strne r2, [r6, #0] + streq r1, [r6, #0] +.L15783: + add ip, ip, #1 + add r0, r0, fp + add r5, r5, r9 + cmp r7, ip + mov r4, r0, asr #8 + mov r1, r5, asr #8 + add r6, r6, #4 + ble .L15754 +.L15780: + cmp r1, r8 + cmpcc r4, sl + bcc .L17758 + b .L15754 +.L16929: + mov r3, lr, asl #22 + ldr lr, .L17801+24 + mov r3, r3, lsr #22 + add r3, lr, r3, asl #5 + cmp r9, #0 + str r3, [sp, #108] + ble .L15754 + mov r3, fp, asl #16 + mul r2, r0, r1 + mov fp, r3, asr #16 + mul r3, r0, r5 + ldr r0, [sp, #80] + mul r1, fp, ip + mul r0, ip, r0 + rsb r3, r0, r3 + ldr r0, [sp, #132] + rsb r2, r1, r2 + add r5, r0, r3 + add lr, r4, r2 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + cmp ip, sl + cmpcc r4, r8 + movcs r3, #0 + movcc r3, #1 + movcs r6, r3 + bcs .L16945 + b .L17800 +.L16946: + cmp ip, sl + cmpcc r4, r8 + bcc .L16948 +.L16945: + ldr r1, [sp, #80] + add r6, r6, #1 + add r5, r5, r1 + add lr, lr, fp + cmp r9, r6 + mov ip, r5, asr #8 + mov r4, lr, asr #8 + add r7, r7, #4 + bne .L16946 + b .L15754 +.L17760: + ldr r2, [sp, #80] + and r3, r4, #7 + add r5, r5, r2 + mov r3, r3, asl #3 + mov r2, ip, asr #3 + mov r1, r4, asr #3 + add r3, r3, r2, asl #6 + add r3, r3, r1, asl #10 + ldr r1, [sp, #108] + and r0, ip, #7 + add r3, r3, r1 + ldrb r2, [r3, r0] @ zero_extendqisi2 + ldr r0, [sp, #52] + cmp r2, #0 + add r6, r6, #1 + orr r3, r0, r2 + strne r3, [r7, #0] + add lr, lr, fp + cmp r9, r6 + mov r4, lr, asr #8 + mov ip, r5, asr #8 + add r7, r7, #4 + ble .L15754 +.L16948: + cmp r4, r8 + cmpcc ip, sl + bcc .L17760 + b .L15754 +.L16994: + mov r3, lr, asl #22 + mov r2, r0, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + add r1, r1, r3, asl #3 + ldr r3, [sp, #12] + ldr r4, .L17801+24 + cmp r6, r3 + mov r3, lr, lsr #8 + and r7, r3, #240 + add r0, r4, r1, asl #2 + bge .L16999 + ldr r5, [sp, #12] + rsb r4, r6, r5 + rsb lr, r4, sl + cmp lr, #0 + ble .L15754 + ldr r8, [sp, #8] + add r3, r6, sl + cmp r8, r3 + bhi .L17002 + mov r3, r4, lsr #3 + mov r1, r3, asl #5 + ands r3, r4, #7 + add r4, r0, r1 + bne .L17004 + ldr r5, [sp, #128] + ldr r6, [sp, #96] +.L17006: + movs lr, r5, lsr #3 + beq .L17023 + mov r1, r6 + mov r0, r4 + mov ip, #0 +.L17025: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L17026 + ands r3, r2, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #28 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r1, #28] +.L17026: + add ip, ip, #1 + cmp ip, lr + add r0, r0, #32 + add r1, r1, #32 + bne .L17025 + mov r3, lr, asl #5 + add r4, r4, r3 + add r6, r6, r3 +.L17023: + ands r0, r5, #7 + beq .L15754 + ldr r2, [r4, #0] + mov r1, #0 +.L17045: + ldr r4, [sp, #52] + ands r3, r2, #15 + orr r3, r4, r3 + orr r3, r7, r3 + strne r3, [r6, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #4 + bne .L17045 + b .L15754 +.L16995: + mov r3, lr, asl #22 + mov r1, r0, lsr #3 + subs r2, sl, #8 + mov r3, r3, lsr #22 + submi r2, sl, #1 + add r3, r3, r1, asl #5 + ldr r5, [sp, #12] + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr r8, .L17801+24 + add r1, r1, r3, asl #3 + cmp r6, r5 + mov r3, lr, lsr #8 + and r7, r3, #240 + add r0, r8, r1, asl #2 + bge .L17129 + rsb r4, r6, r5 + rsb r1, r4, sl + cmp r1, #0 + ble .L15754 + ldr ip, [sp, #8] + add r3, r6, sl + cmp ip, r3 + bhi .L17132 + mov r3, r4, lsr #3 + ands r5, r4, #7 + sub r0, r0, r3, asl #5 + bne .L17134 + ldr r2, [sp, #128] + ldr r1, [sp, #96] +.L17136: + movs r8, r2, lsr #3 + beq .L17153 + mov r5, r1 + mov r6, r0 + mov lr, #0 +.L17155: + ldr r4, [r6, #0] + cmp r4, #0 + beq .L17156 + ands r3, r4, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + orrne r3, r7, r3 + strne r3, [r5, #0] +.L17156: + add lr, lr, #1 + cmp lr, r8 + sub r6, r6, #32 + add r5, r5, #32 + bne .L17155 + rsb r3, r8, r8, asl #27 + add r0, r0, r3, asl #5 + add r1, r1, r8, asl #5 +.L17153: + ands lr, r2, #7 + beq .L15754 + ldr r0, [r0, #0] + mov r2, #0 +.L17175: + ldr r5, [sp, #52] + movs r3, r0, lsr #28 + orr r3, r5, r3 + orr r3, r7, r3 + strne r3, [r1, r2, asl #2] + add r2, r2, #1 + cmp r2, lr + mov r0, r0, asl #4 + bne .L17175 + b .L15754 +.L17802: + .align 2 +.L17801: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word oam_ram + .word obj_height_table + .word obj_width_table + .word vram+65536 +.L16996: + mov r3, lr, asl #22 + mov r1, r0, lsr #3 + mov r3, r3, lsr #22 + and r2, r0, #7 + add r3, r3, r1, asl #5 + ldr r5, [sp, #12] + add r2, r2, r3, asl #2 + ldr r7, .L17801+24 + mov r0, r2, asl #3 + cmp r6, r5 + add ip, r0, r7 + bge .L17259 + rsb r0, r6, r5 + rsb lr, r0, sl + cmp lr, #0 + ble .L15754 + ldr r8, [sp, #8] + add r3, r6, sl + cmp r8, r3 + bhi .L17262 + mov r3, r0, lsr #3 + ands lr, r0, #7 + add r6, ip, r3, asl #6 + bne .L17264 + ldr r5, [sp, #128] + ldr r4, [sp, #96] +.L17266: + movs lr, r5, lsr #3 + beq .L17324 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L17326: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L17327 + ands r3, r2, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #12] +.L17327: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L17336 + ands r3, r2, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #28] +.L17336: + add ip, ip, #1 + cmp lr, ip + add r0, r0, #64 + add r1, r1, #32 + bne .L17326 + add r6, r6, lr, asl #6 + add r4, r4, lr, asl #5 +.L17324: + ands r0, r5, #7 + beq .L15754 + cmp r0, #3 + ldrls r1, [r6, #0] + bls .L17359 + ldr r2, [r6, #0] + cmp r2, #0 + beq .L17349 + ands r3, r2, #255 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + strne r3, [r4, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + strne r3, [r4, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #52] + orrne r3, r1, r3 + strne r3, [r4, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r4, #12] +.L17349: + subs r0, r0, #4 + ldr r1, [r6, #4] + addne r4, r4, #16 + beq .L15754 +.L17359: + mov r2, #0 +.L17360: + ldr r5, [sp, #52] + ands r3, r1, #255 + orr r3, r5, r3 + strne r3, [r4, r2, asl #2] + add r2, r2, #1 + cmp r0, r2 + mov r1, r1, lsr #8 + bhi .L17360 + b .L15754 +.L15834: + mov r3, lr, asl #22 + mov r1, r0, lsr #3 + mov r3, r3, lsr #22 + and r2, r0, #7 + add r3, r3, r1, asl #5 + ldr r4, [sp, #12] + add r2, r2, r3, asl #2 + ldr r5, .L17801+24 + mov r0, r2, asl #3 + cmp r6, r4 + add ip, r0, r5 + bge .L16245 + rsb r0, r6, r4 + rsb r7, r0, sl + cmp r7, #0 + ble .L15754 + ldr r8, [sp, #8] + add r3, r6, sl + cmp r8, r3 + bhi .L16248 + mov r3, r0, lsr #3 + ands lr, r0, #7 + add r7, ip, r3, asl #6 + bne .L16250 + ldr r6, [sp, #128] + ldr lr, [sp, #96] +.L16252: + movs r5, r6, lsr #3 + beq .L16330 + mov r0, lr + mov ip, r7 + mov r4, #0 +.L16332: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L16333 + ands r1, r2, #255 + beq .L16335 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L16335: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16339 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L16339: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16343 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L16343: + movs r2, r2, lsr #24 + beq .L16333 + ldr r1, [r0, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L16333: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L16350 + ands r1, r2, #255 + beq .L16352 + ldr r3, [r0, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L16352: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16356 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L16356: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16360 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L16360: + movs r2, r2, lsr #24 + beq .L16350 + ldr r3, [r0, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L16350: + add r4, r4, #1 + cmp r4, r5 + add ip, ip, #64 + add r0, r0, #32 + bne .L16332 + add r7, r7, r5, asl #6 + add lr, lr, r5, asl #5 +.L16330: + ands r5, r6, #7 + beq .L15754 + cmp r5, #3 + ldrls ip, [r7, #0] + bls .L16389 + ldr r2, [r7, #0] + cmp r2, #0 + beq .L16371 + ands r1, r2, #255 + beq .L16373 + ldr r3, [lr, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [lr, #0] + streq r3, [lr, #0] +.L16373: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16377 + ldr r3, [lr, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [lr, #4] + streq r3, [lr, #4] +.L16377: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16381 + ldr r3, [lr, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [lr, #8] + streq r3, [lr, #8] +.L16381: + movs r2, r2, lsr #24 + beq .L16371 + ldr r1, [lr, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [lr, #12] + streq r3, [lr, #12] +.L16371: + subs r5, r5, #4 + ldr ip, [r7, #4] + addne lr, lr, #16 + beq .L15754 +.L16389: + mov r4, #0 +.L16390: + ands r0, ip, #255 + beq .L16391 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16391: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bhi .L16390 + b .L15754 +.L15832: + mov r3, lr, asl #22 + mov r2, r0, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + add r1, r1, r3, asl #3 + ldr r3, [sp, #12] + ldr r4, .L17801+24 + cmp r6, r3 + mov r3, lr, lsr #8 + and r7, r3, #240 + add r0, r4, r1, asl #2 + bge .L15837 + ldr r5, [sp, #12] + rsb r4, r6, r5 + rsb r8, r4, sl + cmp r8, #0 + ble .L15754 + ldr ip, [sp, #8] + add r3, r6, sl + cmp ip, r3 + bhi .L15840 + mov r3, r4, lsr #3 + mov r1, r3, asl #5 + ands r3, r4, #7 + add r8, r0, r1 + bne .L15842 + ldr sl, [sp, #128] + ldr r5, [sp, #96] +.L15844: + movs r6, sl, lsr #3 + beq .L15865 + mov ip, r5 + mov lr, r8 + mov r4, #0 +.L15867: + ldr r0, [lr, #0] + cmp r0, #0 + beq .L15868 + ands r2, r0, #15 + beq .L15870 + ldr r1, [ip, #0] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L15870: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L15874 + ldr r1, [ip, #4] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L15874: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L15878 + ldr r1, [ip, #8] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L15878: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L15882 + ldr r1, [ip, #12] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L15882: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L15886 + ldr r1, [ip, #16] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L15886: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L15890 + ldr r1, [ip, #20] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L15890: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L15894 + ldr r1, [ip, #24] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L15894: + movs r2, r0, lsr #28 + beq .L15868 + ldr r1, [ip, #28] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L15868: + add r4, r4, #1 + cmp r6, r4 + add lr, lr, #32 + add ip, ip, #32 + bne .L15867 + mov r3, r6, asl #5 + add r8, r8, r3 + add r5, r5, r3 +.L15865: + ands lr, sl, #7 + beq .L15754 + ldr ip, [r8, #0] + mov r4, #0 +.L15903: + ands r3, ip, #15 + beq .L15904 + ldr r1, [r5, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r5, #0] + streq r2, [r5, #0] +.L15904: + add r4, r4, #1 + cmp lr, r4 + mov ip, ip, lsr #4 + add r5, r5, #4 + bne .L15903 + b .L15754 +.L15835: + subs r2, sl, #8 + submi r2, sl, #1 + mov r3, r0, lsr #3 + mov r2, r2, asr #3 + mov r1, lr, asl #22 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + and r3, r0, #7 + add r1, r1, r2, asl #1 + add r3, r3, r1, asl #2 + mov r0, r3, asl #3 + ldr r3, [sp, #12] + ldr r4, .L17801+24 + cmp r6, r3 + add ip, r0, r4 + bge .L16581 + rsb r0, r6, r3 + rsb r7, r0, sl + cmp r7, #0 + ble .L15754 + ldr r5, [sp, #8] + add r3, r6, sl + cmp r5, r3 + bhi .L16584 + mov r3, r0, lsr #3 + ands lr, r0, #7 + sub r8, ip, r3, asl #6 + bne .L16586 + ldr r7, [sp, #128] + ldr r5, [sp, #96] +.L16588: + movs r6, r7, lsr #3 + beq .L16666 + mov ip, r5 + mov lr, r8 + mov r4, #0 +.L16668: + ldr r2, [lr, #4] + cmp r2, #0 + beq .L16669 + ands r1, r2, #255 + beq .L16671 + ldr r3, [ip, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L16671: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16675 + ldr r3, [ip, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L16675: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16679 + ldr r3, [ip, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L16679: + movs r2, r2, lsr #24 + beq .L16669 + ldr r3, [ip, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L16669: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L16686 + ands r2, r1, #255 + beq .L16688 + ldr r0, [ip, #28] + tst r0, #256 + movne r3, r0, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r0, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L16688: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L16692 + ldr r3, [ip, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L16692: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L16696 + ldr r3, [ip, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L16696: + movs r2, r1, lsr #24 + beq .L16686 + ldr r1, [ip, #16] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L16686: + add r4, r4, #1 + cmp r6, r4 + sub lr, lr, #64 + add ip, ip, #32 + bne .L16668 + rsb r3, r6, r6, asl #26 + add r8, r8, r3, asl #6 + add r5, r5, r6, asl #5 +.L16666: + ands lr, r7, #7 + beq .L15754 + cmp lr, #3 + ldrls ip, [r8, #4] + bls .L16725 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L16707 + ands r1, r2, #255 + beq .L16709 + ldr r3, [r5, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r5, #12] + streq r3, [r5, #12] +.L16709: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16713 + ldr r3, [r5, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r5, #8] + streq r3, [r5, #8] +.L16713: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16717 + ldr r3, [r5, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r5, #4] + streq r3, [r5, #4] +.L16717: + movs r2, r2, lsr #24 + beq .L16707 + ldr r3, [r5, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r5, #0] + streq r3, [r5, #0] +.L16707: + subs lr, lr, #4 + ldr ip, [r8, #0] + addne r5, r5, #16 + beq .L15754 +.L16725: + mov r4, #0 +.L16726: + movs r0, ip, lsr #24 + beq .L16727 + ldr r2, [r5, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r5, #0] + streq r0, [r5, #0] +.L16727: + add r4, r4, #1 + cmp r4, lr + mov ip, ip, asl #8 + add r5, r5, #4 + bcc .L16726 + b .L15754 +.L16997: + subs r2, sl, #8 + submi r2, sl, #1 + mov r3, r0, lsr #3 + mov r2, r2, asr #3 + mov r1, lr, asl #22 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + add r1, r1, r2, asl #1 + and r3, r0, #7 + ldr r5, [sp, #12] + add r3, r3, r1, asl #2 + ldr r7, .L17801+24 + mov r0, r3, asl #3 + cmp r6, r5 + add r2, r0, r7 + bge .L17479 + rsb r0, r6, r5 + rsb lr, r0, sl + cmp lr, #0 + ble .L15754 + ldr r8, [sp, #8] + add r3, r6, sl + cmp r8, r3 + bhi .L17482 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r6, r2, r3, asl #6 + bne .L17484 + ldr r5, [sp, #128] + ldr r4, [sp, #96] +.L17486: + movs lr, r5, lsr #3 + beq .L17544 + mov r1, r4 + mov r0, r6 + mov ip, #0 +.L17546: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L17547 + ands r3, r2, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #0] +.L17547: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L17556 + ands r3, r2, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #28] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #24] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #20] + movs r3, r2, lsr #24 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #16] +.L17556: + add ip, ip, #1 + cmp ip, lr + sub r0, r0, #64 + add r1, r1, #32 + bne .L17546 + rsb r3, lr, lr, asl #26 + add r6, r6, r3, asl #6 + add r4, r4, lr, asl #5 +.L17544: + ands r0, r5, #7 + beq .L15754 + cmp r0, #3 + ldrls r2, [r6, #4] + bls .L17579 + ldr r2, [r6, #4] + cmp r2, #0 + beq .L17569 + ands r3, r2, #255 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + strne r3, [r4, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + strne r3, [r4, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r1, [sp, #52] + orrne r3, r1, r3 + strne r3, [r4, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r4, #0] +.L17569: + subs r0, r0, #4 + ldr r2, [r6, #0] + addne r4, r4, #16 + beq .L15754 +.L17579: + mov r1, #0 +.L17580: + ldr r5, [sp, #52] + movs r3, r2, lsr #24 + orr r3, r5, r3 + strne r3, [r4, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bhi .L17580 + b .L15754 +.L15833: + mov r3, lr, asl #22 + mov r1, r0, lsr #3 + subs r2, sl, #8 + mov r3, r3, lsr #22 + submi r2, sl, #1 + add r3, r3, r1, asl #5 + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr ip, [sp, #12] + add r1, r1, r3, asl #3 + mov r3, lr, lsr #8 + ldr lr, .L17801+24 + cmp r6, ip + and r7, r3, #240 + add r0, lr, r1, asl #2 + bge .L16041 + rsb r4, r6, ip + rsb lr, r4, sl + cmp lr, #0 + ble .L15754 + ldr r1, [sp, #8] + add r3, r6, sl + cmp r1, r3 + bhi .L16044 + mov r3, r4, lsr #3 + ands lr, r4, #7 + sub ip, r0, r3, asl #5 + bne .L16046 + ldr sl, [sp, #128] + ldr r5, [sp, #96] +.L16048: + movs r8, sl, lsr #3 + beq .L16069 + mov r4, r5 + mov lr, ip + mov r6, #0 +.L16071: + ldr r0, [lr, #0] + cmp r0, #0 + beq .L16072 + ands r2, r0, #15 + beq .L16074 + ldr r1, [r4, #28] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L16074: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L16078 + ldr r1, [r4, #24] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L16078: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L16082 + ldr r1, [r4, #20] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L16082: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L16086 + ldr r1, [r4, #16] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L16086: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L16090 + ldr r1, [r4, #12] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L16090: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L16094 + ldr r1, [r4, #8] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L16094: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L16098 + ldr r1, [r4, #4] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L16098: + movs r2, r0, lsr #28 + beq .L16072 + ldr r1, [r4, #0] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L16072: + add r6, r6, #1 + cmp r8, r6 + sub lr, lr, #32 + add r4, r4, #32 + bne .L16071 + rsb r3, r8, r8, asl #27 + add ip, ip, r3, asl #5 + add r5, r5, r8, asl #5 +.L16069: + ands lr, sl, #7 + beq .L15754 + ldr ip, [ip, #0] + mov r4, #0 +.L16107: + movs r3, ip, lsr #28 + beq .L16108 + ldr r1, [r5, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r5, #0] + streq r2, [r5, #0] +.L16108: + add r4, r4, #1 + cmp r4, lr + mov ip, ip, asl #4 + add r5, r5, #4 + bne .L16107 + b .L15754 +.L16041: + ldr r1, [sp, #8] + add r3, r6, sl + cmp r1, r3 + bls .L17761 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs lr, r3, asr #3 + beq .L15754 + ldr r3, [sp, #4] + mov ip, #0 + add r1, r3, r6, asl #2 + b .L16210 +.L17762: + sub r0, r0, #32 + add r1, r1, #32 +.L16210: + ldr r5, [r0, #0] + cmp r5, #0 + beq .L16211 + ands r2, r5, #15 + beq .L16213 + ldr r4, [r1, #28] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L16213: + mov r3, r5, lsr #4 + ands r2, r3, #15 + beq .L16217 + ldr r4, [r1, #24] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L16217: + mov r3, r5, lsr #8 + ands r2, r3, #15 + beq .L16221 + ldr r4, [r1, #20] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L16221: + mov r3, r5, lsr #12 + ands r2, r3, #15 + beq .L16225 + ldr r4, [r1, #16] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L16225: + mov r3, r5, lsr #16 + ands r2, r3, #15 + beq .L16229 + ldr r4, [r1, #12] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L16229: + mov r3, r5, lsr #20 + ands r2, r3, #15 + beq .L16233 + ldr r4, [r1, #8] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L16233: + mov r3, r5, lsr #24 + ands r2, r3, #15 + beq .L16237 + ldr r4, [r1, #4] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L16237: + movs r2, r5, lsr #28 + beq .L16211 + ldr r4, [r1, #0] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L16211: + add ip, ip, #1 + cmp lr, ip + bne .L17762 + b .L15754 +.L16999: + ldr ip, [sp, #8] + add r3, r6, sl + cmp ip, r3 + bls .L17763 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs ip, r3, asr #3 + beq .L15754 + ldr r8, [sp, #4] + mov r2, #0 + add r1, r8, r6, asl #2 + b .L17110 +.L17764: + add r0, r0, #32 + add r1, r1, #32 +.L17110: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L17111 + ands r3, r4, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #8] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #20] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #24] + movs r3, r4, lsr #28 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + orrne r3, r7, r3 + strne r3, [r1, #28] +.L17111: + add r2, r2, #1 + cmp ip, r2 + bne .L17764 + b .L15754 +.L17259: + ldr r8, [sp, #8] + add r3, r6, sl + cmp r8, r3 + bls .L17765 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs lr, r3, asr #3 + beq .L15754 + ldr r3, [sp, #4] + mov r2, #0 + add r1, r3, r6, asl #2 + ldr r3, .L17803+4 + add r0, r0, r3 + b .L17459 +.L17766: + add ip, ip, #64 + add r1, r1, #32 +.L17459: + ldr r4, [ip, #0] + cmp r4, #0 + beq .L17460 + ands r3, r4, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #0] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #8] + movs r3, r4, lsr #24 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r1, #12] +.L17460: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L17469 + ands r3, r4, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #16] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #20] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #24] + movs r3, r4, lsr #24 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r1, #28] +.L17469: + add r2, r2, #1 + cmp lr, r2 + add r0, r0, #64 + bne .L17766 + b .L15754 +.L15837: + ldr r4, [sp, #8] + add r3, r6, sl + cmp r4, r3 + bls .L17767 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs lr, r3, asr #3 + beq .L15754 + ldr r8, [sp, #4] + mov ip, #0 + add r1, r8, r6, asl #2 + b .L16006 +.L17768: + add r0, r0, #32 + add r1, r1, #32 +.L16006: + ldr r5, [r0, #0] + cmp r5, #0 + beq .L16007 + ands r2, r5, #15 + beq .L16009 + ldr r4, [r1, #0] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L16009: + mov r3, r5, lsr #4 + ands r2, r3, #15 + beq .L16013 + ldr r4, [r1, #4] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L16013: + mov r3, r5, lsr #8 + ands r2, r3, #15 + beq .L16017 + ldr r4, [r1, #8] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L16017: + mov r3, r5, lsr #12 + ands r2, r3, #15 + beq .L16021 + ldr r4, [r1, #12] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L16021: + mov r3, r5, lsr #16 + ands r2, r3, #15 + beq .L16025 + ldr r4, [r1, #16] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L16025: + mov r3, r5, lsr #20 + ands r2, r3, #15 + beq .L16029 + ldr r4, [r1, #20] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L16029: + mov r3, r5, lsr #24 + ands r2, r3, #15 + beq .L16033 + ldr r4, [r1, #24] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L16033: + movs r2, r5, lsr #28 + beq .L16007 + ldr r4, [r1, #28] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L16007: + add ip, ip, #1 + cmp lr, ip + bne .L17768 + b .L15754 +.L17129: + ldr lr, [sp, #8] + add r3, r6, sl + cmp lr, r3 + bls .L17769 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs ip, r3, asr #3 + beq .L15754 + ldr r8, [sp, #4] + mov r2, #0 + add r1, r8, r6, asl #2 + b .L17240 +.L17770: + sub r0, r0, #32 + add r1, r1, #32 +.L17240: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L17241 + ands r3, r4, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + orrne r3, r7, r3 + strne r3, [r1, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #4] + movs r3, r4, lsr #28 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + orrne r3, r7, r3 + strne r3, [r1, #0] +.L17241: + add r2, r2, #1 + cmp ip, r2 + bne .L17770 + b .L15754 +.L16581: + ldr r2, [sp, #8] + add r3, r6, sl + cmp r2, r3 + bls .L17771 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs r7, r3, asr #3 + beq .L15754 + ldr r4, [sp, #4] + ldr r3, .L17803 + add r1, r4, r6, asl #2 + add r0, r0, r3 + mov lr, #0 + b .L16881 +.L17772: + sub ip, ip, #64 + add r1, r1, #32 +.L16881: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L16882 + ands r4, r2, #255 + beq .L16884 + ldr r3, [r1, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L16884: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L16888 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L16888: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L16892 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L16892: + movs r2, r2, lsr #24 + beq .L16882 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L16882: + ldr r4, [ip, #0] + cmp r4, #0 + beq .L16899 + ands r2, r4, #255 + beq .L16901 + ldr r5, [r1, #28] + tst r5, #256 + movne r3, r5, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r5, asl #16 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L16901: + mov r3, r4, lsr #8 + ands r2, r3, #255 + beq .L16905 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L16905: + mov r3, r4, lsr #16 + ands r2, r3, #255 + beq .L16909 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L16909: + movs r2, r4, lsr #24 + beq .L16899 + ldr r4, [r1, #16] + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L16899: + add lr, lr, #1 + cmp r7, lr + sub r0, r0, #64 + bne .L17772 + b .L15754 +.L16245: + ldr r7, [sp, #8] + add r3, r6, sl + cmp r7, r3 + bls .L17773 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs r5, r3, asr #3 + beq .L15754 + ldr r2, [sp, #4] + ldr r3, .L17803+4 + add r1, r2, r6, asl #2 + add r0, r0, r3 + mov lr, #0 + b .L16545 +.L17774: + add ip, ip, #64 + add r1, r1, #32 +.L16545: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L16546 + ands r4, r2, #255 + beq .L16548 + ldr r3, [r1, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #0] + streq r3, [r1, #0] +.L16548: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L16552 + ldr r3, [r1, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #4] + streq r3, [r1, #4] +.L16552: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L16556 + ldr r3, [r1, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #8] + streq r3, [r1, #8] +.L16556: + movs r2, r2, lsr #24 + beq .L16546 + ldr r4, [r1, #12] + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r1, #12] + streq r3, [r1, #12] +.L16546: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L16563 + ands r4, r2, #255 + beq .L16565 + ldr r3, [r1, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #16] + streq r3, [r1, #16] +.L16565: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L16569 + ldr r3, [r1, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #20] + streq r3, [r1, #20] +.L16569: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L16573 + ldr r3, [r1, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r1, #24] + streq r3, [r1, #24] +.L16573: + movs r2, r2, lsr #24 + beq .L16563 + ldr r3, [r1, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r1, #28] + streq r3, [r1, #28] +.L16563: + add lr, lr, #1 + cmp r5, lr + add r0, r0, #64 + bne .L17774 + b .L15754 +.L17479: + ldr r8, [sp, #8] + add r3, r6, sl + cmp r3, r8 + bcs .L17775 + cmp sl, #0 + add r3, sl, #7 + movge r3, sl + movs lr, r3, asr #3 + beq .L15754 + ldr r5, [sp, #4] + ldr r3, .L17803 + add r1, r5, r6, asl #2 + add r0, r0, r3 + mov ip, #0 + b .L17679 +.L17776: + sub r2, r2, #64 + add r1, r1, #32 +.L17679: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L17680 + ands r3, r4, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #8] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #4] + movs r3, r4, lsr #24 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #0] +.L17680: + ldr r4, [r2, #0] + cmp r4, #0 + beq .L17689 + ands r3, r4, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #28] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #24] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #20] + movs r3, r4, lsr #24 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #16] +.L17689: + add ip, ip, #1 + cmp lr, ip + sub r0, r0, #64 + bne .L17776 + b .L15754 +.L17798: + mov r6, #0 +.L16983: + cmp r8, r4 + cmphi sl, ip + bhi .L17740 + b .L15754 +.L16984: + cmp r4, r8 + cmpcc ip, sl + bcs .L15754 +.L17740: + mov r3, ip, asr #1 + ldr r1, [sp, #104] + and r3, r3, #3 + and r0, r4, #7 + str r3, [sp, #0] + ldr r3, [sp, #104] + add r0, r1, r0, asl #2 + and r1, r4, #7 + mov r2, ip, asr #1 + add r1, r3, r1, asl #2 + mov r3, r4, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, ip, asr #3 + tst ip, #1 + add r3, r3, r2, asl #5 + add r2, r0, r3 + movne r4, r9 + add r0, r1, r3 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + ldrneb r3, [r2, r4] @ zero_extendqisi2 + ldr r2, [sp, #52] + movne r0, r3, lsr #4 + andeq r0, r3, #15 + cmp r0, #0 + orr r3, r0, r2 + ldr r0, [sp, #116] + ldr ip, [sp, #84] + ldr r1, [sp, #88] + add r6, r6, #1 + orr r3, r0, r3 + strne r3, [r7, #0] + add lr, lr, ip + add r5, r5, r1 + cmp fp, r6 + mov ip, lr, asr #8 + mov r4, r5, asr #8 + add r7, r7, #4 + bgt .L16984 + b .L15754 +.L17775: + rsb r7, r6, r8 + cmp r7, #0 + ble .L15754 + ldr ip, [sp, #4] + movs lr, r7, lsr #3 + add r1, ip, r6, asl #2 + beq .L17638 + ldr r3, .L17803 + mov r5, r1 + add r0, r0, r3 + mov r6, r2 + mov ip, #0 +.L17640: + ldr r4, [r0, #68] + cmp r4, #0 + beq .L17641 + ands r3, r4, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #24 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r5, #0] +.L17641: + ldr r4, [r6, #0] + cmp r4, #0 + beq .L17650 + ands r3, r4, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r5, #20] + movs r3, r4, lsr #24 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r5, #16] +.L17650: + add ip, ip, #1 + cmp lr, ip + sub r6, r6, #64 + add r5, r5, #32 + sub r0, r0, #64 + bne .L17640 + rsb r3, lr, lr, asl #26 + add r2, r2, r3, asl #6 + add r1, r1, lr, asl #5 +.L17638: + ands ip, r7, #7 + beq .L15754 + cmp ip, #3 + ldrls r2, [r2, #4] + bls .L17673 + ldr r0, [r2, #4] + cmp r0, #0 + beq .L17663 + ands r3, r0, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #12] + mov r3, r0, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #8] + mov r3, r0, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #4] + movs r3, r0, lsr #24 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + strne r3, [r1, #0] +.L17663: + subs ip, ip, #4 + ldr r2, [r2, #0] + addne r1, r1, #16 + beq .L15754 +.L17673: + mov r0, #0 +.L17674: + ldr r4, [sp, #52] + movs r3, r2, lsr #24 + orr r3, r4, r3 + strne r3, [r1, r0, asl #2] + add r0, r0, #1 + cmp ip, r0 + mov r2, r2, asl #8 + bhi .L17674 + b .L15754 +.L17767: + rsb ip, r6, r4 + cmp ip, #0 + ble .L15754 + ldr r5, [sp, #4] + movs sl, ip, lsr #3 + add r8, r5, r6, asl #2 + beq .L15961 + mov r6, r8 + mov lr, r0 + mov r1, #0 +.L15963: + ldr r5, [lr, #0] + cmp r5, #0 + beq .L15964 + ands r2, r5, #15 + beq .L15966 + ldr r4, [r6, #0] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #0] + streq r3, [r6, #0] +.L15966: + mov r3, r5, lsr #4 + ands r2, r3, #15 + beq .L15970 + ldr r4, [r6, #4] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #4] + streq r3, [r6, #4] +.L15970: + mov r3, r5, lsr #8 + ands r2, r3, #15 + beq .L15974 + ldr r4, [r6, #8] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #8] + streq r3, [r6, #8] +.L15974: + mov r3, r5, lsr #12 + ands r2, r3, #15 + beq .L15978 + ldr r4, [r6, #12] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #12] + streq r3, [r6, #12] +.L15978: + mov r3, r5, lsr #16 + ands r2, r3, #15 + beq .L15982 + ldr r4, [r6, #16] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #16] + streq r3, [r6, #16] +.L15982: + mov r3, r5, lsr #20 + ands r2, r3, #15 + beq .L15986 + ldr r4, [r6, #20] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #20] + streq r3, [r6, #20] +.L15986: + mov r3, r5, lsr #24 + ands r2, r3, #15 + beq .L15990 + ldr r4, [r6, #24] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #24] + streq r3, [r6, #24] +.L15990: + movs r2, r5, lsr #28 + beq .L15964 + ldr r4, [r6, #28] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #28] + streq r3, [r6, #28] +.L15964: + add r1, r1, #1 + cmp r1, sl + add lr, lr, #32 + add r6, r6, #32 + bne .L15963 + mov r3, sl, asl #5 + add r0, r0, r3 + add r8, r8, r3 +.L15961: + ands lr, ip, #7 + beq .L15754 + ldr ip, [r0, #0] + mov r4, #0 +.L15999: + ands r3, ip, #15 + beq .L16000 + ldr r1, [r8, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r8, #0] + streq r2, [r8, #0] +.L16000: + add r4, r4, #1 + cmp lr, r4 + mov ip, ip, lsr #4 + add r8, r8, #4 + bne .L15999 + b .L15754 +.L17804: + .align 2 +.L17803: + .word vram+65472 + .word vram+65600 +.L17771: + rsb sl, r6, r2 + cmp sl, #0 + ble .L15754 + ldr r3, [sp, #4] + movs r8, sl, lsr #3 + add r7, r3, r6, asl #2 + beq .L16814 + ldr r3, .L17803 + mov r6, r7 + add r0, r0, r3 + mov lr, ip + mov r1, #0 +.L16816: + ldr r2, [r0, #68] + cmp r2, #0 + beq .L16817 + ands r4, r2, #255 + beq .L16819 + ldr r3, [r6, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r6, #12] + streq r3, [r6, #12] +.L16819: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L16823 + ldr r3, [r6, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r6, #8] + streq r3, [r6, #8] +.L16823: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L16827 + ldr r3, [r6, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r6, #4] + streq r3, [r6, #4] +.L16827: + movs r2, r2, lsr #24 + beq .L16817 + ldr r3, [r6, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r6, #0] + streq r3, [r6, #0] +.L16817: + ldr r4, [lr, #0] + cmp r4, #0 + beq .L16834 + ands r2, r4, #255 + beq .L16836 + ldr r5, [r6, #28] + tst r5, #256 + movne r3, r5, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r5, asl #16 + strne r3, [r6, #28] + streq r3, [r6, #28] +.L16836: + mov r3, r4, lsr #8 + ands r2, r3, #255 + beq .L16840 + ldr r3, [r6, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r6, #24] + streq r3, [r6, #24] +.L16840: + mov r3, r4, lsr #16 + ands r2, r3, #255 + beq .L16844 + ldr r3, [r6, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r6, #20] + streq r3, [r6, #20] +.L16844: + movs r2, r4, lsr #24 + beq .L16834 + ldr r4, [r6, #16] + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #16] + streq r3, [r6, #16] +.L16834: + add r1, r1, #1 + cmp r1, r8 + sub lr, lr, #64 + add r6, r6, #32 + sub r0, r0, #64 + bne .L16816 + rsb r3, r8, r8, asl #26 + add ip, ip, r3, asl #6 + add r7, r7, r8, asl #5 +.L16814: + ands lr, sl, #7 + beq .L15754 + cmp lr, #3 + ldrls ip, [ip, #4] + bls .L16873 + ldr r2, [ip, #4] + cmp r2, #0 + beq .L16855 + ands r1, r2, #255 + beq .L16857 + ldr r3, [r7, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r7, #12] + streq r3, [r7, #12] +.L16857: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16861 + ldr r3, [r7, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r7, #8] + streq r3, [r7, #8] +.L16861: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16865 + ldr r3, [r7, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r7, #4] + streq r3, [r7, #4] +.L16865: + movs r2, r2, lsr #24 + beq .L16855 + ldr r3, [r7, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r7, #0] + streq r3, [r7, #0] +.L16855: + subs lr, lr, #4 + ldr ip, [ip, #0] + addne r7, r7, #16 + beq .L15754 +.L16873: + mov r4, #0 +.L16874: + movs r0, ip, lsr #24 + beq .L16875 + ldr r2, [r7, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r7, #0] + streq r0, [r7, #0] +.L16875: + add r4, r4, #1 + cmp lr, r4 + mov ip, ip, asl #8 + add r7, r7, #4 + bhi .L16874 + b .L15754 +.L17763: + rsb lr, r6, ip + cmp lr, #0 + ble .L15754 + ldr r2, [sp, #4] + movs r8, lr, lsr #3 + add r1, r2, r6, asl #2 + beq .L17083 + mov r5, r1 + mov r6, r0 + mov ip, #0 +.L17085: + ldr r4, [r6, #0] + cmp r4, #0 + beq .L17086 + ands r3, r4, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #0] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #4] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #24] + movs r3, r4, lsr #28 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + orrne r3, r7, r3 + strne r3, [r5, #28] +.L17086: + add ip, ip, #1 + cmp ip, r8 + add r6, r6, #32 + add r5, r5, #32 + bne .L17085 + mov r3, r8, asl #5 + add r0, r0, r3 + add r1, r1, r3 +.L17083: + ands lr, lr, #7 + beq .L15754 + ldr r0, [r0, #0] + mov ip, #0 +.L17105: + ldr r5, [sp, #52] + ands r3, r0, #15 + orr r3, r5, r3 + orr r3, r7, r3 + strne r3, [r1, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, lsr #4 + bne .L17105 + b .L15754 +.L17773: + rsb r8, r6, r7 + cmp r8, #0 + ble .L15754 + ldr lr, [sp, #4] + movs r7, r8, lsr #3 + add r6, lr, r6, asl #2 + beq .L16478 + ldr r3, .L17803+4 + mov r5, r6 + add r0, r0, r3 + mov lr, ip + mov r1, #0 +.L16480: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L16481 + ands r4, r2, #255 + beq .L16483 + ldr r3, [r5, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r5, #0] + streq r3, [r5, #0] +.L16483: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L16487 + ldr r3, [r5, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r5, #4] + streq r3, [r5, #4] +.L16487: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L16491 + ldr r3, [r5, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r5, #8] + streq r3, [r5, #8] +.L16491: + movs r2, r2, lsr #24 + beq .L16481 + ldr r4, [r5, #12] + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r5, #12] + streq r3, [r5, #12] +.L16481: + ldr r2, [r0, #-60] + cmp r2, #0 + beq .L16498 + ands r4, r2, #255 + beq .L16500 + ldr r3, [r5, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r5, #16] + streq r3, [r5, #16] +.L16500: + mov r3, r2, lsr #8 + ands r4, r3, #255 + beq .L16504 + ldr r3, [r5, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r5, #20] + streq r3, [r5, #20] +.L16504: + mov r3, r2, lsr #16 + ands r4, r3, #255 + beq .L16508 + ldr r3, [r5, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r4, r3, asl #16 + orrne r3, r4, r3 + orreq r3, r3, #768 + strne r3, [r5, #24] + streq r3, [r5, #24] +.L16508: + movs r2, r2, lsr #24 + beq .L16498 + ldr r3, [r5, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r5, #28] + streq r3, [r5, #28] +.L16498: + add r1, r1, #1 + cmp r7, r1 + add lr, lr, #64 + add r5, r5, #32 + add r0, r0, #64 + bne .L16480 + add ip, ip, r7, asl #6 + add r6, r6, r7, asl #5 +.L16478: + ands lr, r8, #7 + beq .L15754 + cmp lr, #3 + ldrls ip, [ip, #0] + bls .L16537 + ldr r2, [ip, #0] + cmp r2, #0 + beq .L16519 + ands r1, r2, #255 + beq .L16521 + ldr r3, [r6, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r6, #0] + streq r3, [r6, #0] +.L16521: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16525 + ldr r3, [r6, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r6, #4] + streq r3, [r6, #4] +.L16525: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16529 + ldr r3, [r6, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r6, #8] + streq r3, [r6, #8] +.L16529: + movs r2, r2, lsr #24 + beq .L16519 + ldr r1, [r6, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r6, #12] + streq r3, [r6, #12] +.L16519: + subs lr, lr, #4 + ldr ip, [ip, #4] + addne r6, r6, #16 + beq .L15754 +.L16537: + mov r4, #0 +.L16538: + ands r0, ip, #255 + beq .L16539 + ldr r2, [r6, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r6, #0] + streq r0, [r6, #0] +.L16539: + add r4, r4, #1 + cmp r4, lr + mov ip, ip, lsr #8 + add r6, r6, #4 + bcc .L16538 + b .L15754 +.L17765: + rsb r8, r6, r8 + cmp r8, #0 + ble .L15754 + ldr r2, [sp, #4] + movs lr, r8, lsr #3 + add r1, r2, r6, asl #2 + beq .L17418 + ldr r3, .L17803+4 + mov r5, r1 + add r0, r0, r3 + mov r6, ip + mov r7, #0 +.L17420: + ldr r4, [r6, #0] + cmp r4, #0 + beq .L17421 + ands r3, r4, #255 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r5, #0] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r5, #4] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r5, #8] + movs r3, r4, lsr #24 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r5, #12] +.L17421: + ldr r4, [r0, #-60] + cmp r4, #0 + beq .L17430 + ands r3, r4, #255 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #8 + ands r3, r3, #255 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #16 + ands r3, r3, #255 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r5, #24] + movs r3, r4, lsr #24 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r5, #28] +.L17430: + add r7, r7, #1 + cmp lr, r7 + add r6, r6, #64 + add r5, r5, #32 + add r0, r0, #64 + bne .L17420 + add ip, ip, lr, asl #6 + add r1, r1, lr, asl #5 +.L17418: + ands lr, r8, #7 + beq .L15754 + cmp lr, #3 + ldrls ip, [ip, #0] + bls .L17453 + ldr r2, [ip, #0] + cmp r2, #0 + beq .L17443 + ands r3, r2, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r0, [sp, #52] + orrne r3, r0, r3 + strne r3, [r1, #12] +.L17443: + subs lr, lr, #4 + ldr ip, [ip, #4] + addne r1, r1, #16 + beq .L15754 +.L17453: + mov r0, #0 +.L17454: + ldr r2, [sp, #52] + ands r3, ip, #255 + orr r3, r2, r3 + strne r3, [r1, r0, asl #2] + add r0, r0, #1 + cmp lr, r0 + mov ip, ip, lsr #8 + bhi .L17454 + b .L15754 +.L17769: + rsb r8, r6, lr + cmp r8, #0 + ble .L15754 + ldr r2, [sp, #4] + movs lr, r8, lsr #3 + add r1, r2, r6, asl #2 + beq .L17213 + mov r5, r1 + mov r6, r0 + mov ip, #0 +.L17215: + ldr r4, [r6, #0] + cmp r4, #0 + beq .L17216 + ands r3, r4, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + orrne r3, r7, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + orrne r3, r7, r3 + strne r3, [r5, #0] +.L17216: + add ip, ip, #1 + cmp ip, lr + sub r6, r6, #32 + add r5, r5, #32 + bne .L17215 + rsb r3, lr, lr, asl #27 + add r0, r0, r3, asl #5 + add r1, r1, lr, asl #5 +.L17213: + ands lr, r8, #7 + beq .L15754 + ldr r0, [r0, #0] + mov ip, #0 +.L17235: + ldr r5, [sp, #52] + movs r3, r0, lsr #28 + orr r3, r5, r3 + orr r3, r7, r3 + strne r3, [r1, ip, asl #2] + add ip, ip, #1 + cmp ip, lr + mov r0, r0, asl #4 + bne .L17235 + b .L15754 +.L17761: + rsb sl, r6, r1 + cmp sl, #0 + ble .L15754 + ldr r2, [sp, #4] + movs ip, sl, lsr #3 + add r8, r2, r6, asl #2 + beq .L16165 + mov r6, r8 + mov lr, r0 + mov r1, #0 +.L16167: + ldr r5, [lr, #0] + cmp r5, #0 + beq .L16168 + ands r2, r5, #15 + beq .L16170 + ldr r4, [r6, #28] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #28] + streq r3, [r6, #28] +.L16170: + mov r3, r5, lsr #4 + ands r2, r3, #15 + beq .L16174 + ldr r4, [r6, #24] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #24] + streq r3, [r6, #24] +.L16174: + mov r3, r5, lsr #8 + ands r2, r3, #15 + beq .L16178 + ldr r4, [r6, #20] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #20] + streq r3, [r6, #20] +.L16178: + mov r3, r5, lsr #12 + ands r2, r3, #15 + beq .L16182 + ldr r4, [r6, #16] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #16] + streq r3, [r6, #16] +.L16182: + mov r3, r5, lsr #16 + ands r2, r3, #15 + beq .L16186 + ldr r4, [r6, #12] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #12] + streq r3, [r6, #12] +.L16186: + mov r3, r5, lsr #20 + ands r2, r3, #15 + beq .L16190 + ldr r4, [r6, #8] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #8] + streq r3, [r6, #8] +.L16190: + mov r3, r5, lsr #24 + ands r2, r3, #15 + beq .L16194 + ldr r4, [r6, #4] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #4] + streq r3, [r6, #4] +.L16194: + movs r2, r5, lsr #28 + beq .L16168 + ldr r4, [r6, #0] + orr r2, r7, r2 + tst r4, #256 + movne r3, r4, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r4, asl #16 + strne r3, [r6, #0] + streq r3, [r6, #0] +.L16168: + add r1, r1, #1 + cmp ip, r1 + sub lr, lr, #32 + add r6, r6, #32 + bne .L16167 + rsb r3, ip, ip, asl #27 + add r0, r0, r3, asl #5 + add r8, r8, ip, asl #5 +.L16165: + ands lr, sl, #7 + beq .L15754 + ldr ip, [r0, #0] + mov r4, #0 +.L16203: + movs r3, ip, lsr #28 + beq .L16204 + ldr r1, [r8, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r8, #0] + streq r2, [r8, #0] +.L16204: + add r4, r4, #1 + cmp r4, lr + mov ip, ip, asl #4 + add r8, r8, #4 + bne .L16203 + b .L15754 +.L17795: + ldr r5, [sp, #44] +.L16969: + cmp sl, r3 + bhi .L17739 + b .L15754 +.L16970: + cmp r4, sl + bcs .L15754 +.L17739: + mov r3, r4, asr #1 + and r8, r3, #3 + mov r3, r4, asr #3 + mov r3, r3, asl #5 + mov r2, r4, asr #1 + tst r4, #1 + add ip, r3, r1 + and r6, r2, #3 + add r2, r3, r1 + ldreqb r3, [r2, r6] @ zero_extendqisi2 + ldrneb r3, [ip, r8] @ zero_extendqisi2 + ldr lr, [sp, #52] + movne r2, r3, lsr #4 + andeq r2, r3, #15 + cmp r2, #0 + orr r3, r2, lr + ldr r2, [sp, #116] + ldr ip, [sp, #84] + add r5, r5, #1 + orr r3, r2, r3 + strne r3, [r7, #0] + add r0, r0, ip + cmp fp, r5 + mov r4, r0, asr #8 + add r7, r7, #4 + bgt .L16970 + b .L15754 +.L17796: + mov r4, fp +.L15803: + cmp sl, r3 + bhi .L17727 + b .L15754 +.L15804: + cmp r1, sl + bcs .L15754 +.L17727: + mov r3, r1, asr #1 + and r5, r3, #3 + mov r3, r1, asr #3 + mov r3, r3, asl #5 + mov r2, r1, asr #1 + and r0, r2, #3 + tst r1, #1 + add r2, r3, lr + add r1, r3, lr + ldrneb r3, [r1, r5] @ zero_extendqisi2 + ldreqb r3, [r2, r0] @ zero_extendqisi2 + movne r0, r3, lsr #4 + andeq r0, r3, #15 + ldr r3, [sp, #120] + cmp r0, #0 + orr r0, r0, r3 + beq .L15810 + ldr r2, [r7, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r7, #0] + streq r0, [r7, #0] +.L15810: + ldr r5, [sp, #72] + ldr r8, [sp, #136] + add r4, r4, #1 + add ip, ip, r5 + cmp r8, r4 + add r7, r7, #4 + mov r1, ip, asr #8 + bgt .L15804 + b .L15754 +.L17793: + ldr ip, [sp, #16] +.L15766: + cmp sl, r2 + bhi .L17725 + b .L15754 +.L15767: + cmp r2, sl + bcs .L15754 +.L17725: + mov r3, r2, asr #3 + add r3, lr, r3, asl #6 + and r2, r2, #7 + ldrb r4, [r3, r2] @ zero_extendqisi2 + cmp r4, #0 + beq .L15770 + ldr r3, [r6, #0] + mov r2, r3, lsr #16 + mov r2, r2, asl #16 + orr r1, r4, r3, asl #16 + orr r2, r2, #768 + tst r3, #256 + orr r2, r4, r2 + orr r1, r1, #768 + strne r2, [r6, #0] + streq r1, [r6, #0] +.L15770: + add ip, ip, #1 + add r0, r0, fp + cmp r7, ip + add r6, r6, #4 + mov r2, r0, asr #8 + bgt .L15767 + b .L15754 +.L15840: + mov r3, r4, lsr #3 + mov r1, r3, asl #5 + ands r3, r4, #7 + add lr, r0, r1 + ldreq ip, [sp, #96] + bne .L17777 +.L15911: + movs r5, r8, lsr #3 + beq .L15754 + mov r4, #0 + b .L15923 +.L17778: + add lr, lr, #32 + add ip, ip, #32 +.L15923: + ldr r0, [lr, #0] + cmp r0, #0 + beq .L15924 + ands r2, r0, #15 + beq .L15926 + ldr r1, [ip, #0] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L15926: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L15930 + ldr r1, [ip, #4] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L15930: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L15934 + ldr r1, [ip, #8] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L15934: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L15938 + ldr r1, [ip, #12] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L15938: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L15942 + ldr r1, [ip, #16] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L15942: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L15946 + ldr r1, [ip, #20] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L15946: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L15950 + ldr r1, [ip, #24] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L15950: + movs r2, r0, lsr #28 + beq .L15924 + ldr r1, [ip, #28] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L15924: + add r4, r4, #1 + cmp r5, r4 + bne .L17778 + b .L15754 +.L16584: + ands r2, r0, #7 + mov r3, r0, lsr #3 + sub lr, ip, r3, asl #6 + ldreq ip, [sp, #96] + bne .L17779 +.L16734: + movs r5, r7, lsr #3 + beq .L15754 + mov r4, #0 + b .L16775 +.L17780: + sub lr, lr, #64 + add ip, ip, #32 +.L16775: + ldr r2, [lr, #4] + cmp r2, #0 + beq .L16776 + ands r1, r2, #255 + beq .L16778 + ldr r3, [ip, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #12] + streq r3, [ip, #12] +.L16778: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16782 + ldr r3, [ip, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #8] + streq r3, [ip, #8] +.L16782: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16786 + ldr r3, [ip, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [ip, #4] + streq r3, [ip, #4] +.L16786: + movs r2, r2, lsr #24 + beq .L16776 + ldr r3, [ip, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #0] + streq r3, [ip, #0] +.L16776: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L16793 + ands r2, r1, #255 + beq .L16795 + ldr r0, [ip, #28] + tst r0, #256 + movne r3, r0, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r0, asl #16 + strne r3, [ip, #28] + streq r3, [ip, #28] +.L16795: + mov r3, r1, lsr #8 + ands r2, r3, #255 + beq .L16799 + ldr r3, [ip, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #24] + streq r3, [ip, #24] +.L16799: + mov r3, r1, lsr #16 + ands r2, r3, #255 + beq .L16803 + ldr r3, [ip, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [ip, #20] + streq r3, [ip, #20] +.L16803: + movs r2, r1, lsr #24 + beq .L16793 + ldr r1, [ip, #16] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [ip, #16] + streq r3, [ip, #16] +.L16793: + add r4, r4, #1 + cmp r5, r4 + bne .L17780 + b .L15754 +.L17262: + ands r2, r0, #7 + mov r3, r0, lsr #3 + add r0, ip, r3, asl #6 + ldreq r1, [sp, #96] + bne .L17781 +.L17366: + movs lr, lr, lsr #3 + beq .L15754 + mov ip, #0 + b .L17395 +.L17782: + add r0, r0, #64 + add r1, r1, #32 +.L17395: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L17396 + ands r3, r2, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #12] +.L17396: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L17405 + ands r3, r2, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #24 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #28] +.L17405: + add ip, ip, #1 + cmp lr, ip + bne .L17782 + b .L15754 +.L17002: + mov r3, r4, lsr #3 + mov r1, r3, asl #5 + ands r3, r4, #7 + add r4, r0, r1 + ldreq r1, [sp, #96] + bne .L17783 +.L17051: + movs ip, lr, lsr #3 + beq .L15754 + mov r0, #0 + b .L17061 +.L17784: + add r4, r4, #32 + add r1, r1, #32 +.L17061: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L17062 + ands r3, r2, #15 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + orrne r3, r7, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #4 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #8 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #12 + ands r3, r3, #15 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + orrne r3, r7, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #16 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #16] + mov r3, r2, lsr #20 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r1, #20] + mov r3, r2, lsr #24 + ands r3, r3, #15 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + orrne r3, r7, r3 + strne r3, [r1, #24] + movs r3, r2, lsr #28 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r1, #28] +.L17062: + add r0, r0, #1 + cmp ip, r0 + bne .L17784 + b .L15754 +.L16248: + mov r3, r0, lsr #3 + ands r2, r0, #7 + add lr, ip, r3, asl #6 + ldreq r0, [sp, #96] + bne .L17785 +.L16398: + movs r4, r7, lsr #3 + beq .L15754 + mov ip, #0 + b .L16439 +.L17786: + add lr, lr, #64 + add r0, r0, #32 +.L16439: + ldr r2, [lr, #0] + cmp r2, #0 + beq .L16440 + ands r1, r2, #255 + beq .L16442 + ldr r3, [r0, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #0] + streq r3, [r0, #0] +.L16442: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16446 + ldr r3, [r0, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #4] + streq r3, [r0, #4] +.L16446: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16450 + ldr r3, [r0, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #8] + streq r3, [r0, #8] +.L16450: + movs r2, r2, lsr #24 + beq .L16440 + ldr r1, [r0, #12] + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r0, #12] + streq r3, [r0, #12] +.L16440: + ldr r2, [lr, #4] + cmp r2, #0 + beq .L16457 + ands r1, r2, #255 + beq .L16459 + ldr r3, [r0, #16] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #16] + streq r3, [r0, #16] +.L16459: + mov r3, r2, lsr #8 + ands r1, r3, #255 + beq .L16463 + ldr r3, [r0, #20] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #20] + streq r3, [r0, #20] +.L16463: + mov r3, r2, lsr #16 + ands r1, r3, #255 + beq .L16467 + ldr r3, [r0, #24] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r1, r3, asl #16 + orrne r3, r1, r3 + orreq r3, r3, #768 + strne r3, [r0, #24] + streq r3, [r0, #24] +.L16467: + movs r2, r2, lsr #24 + beq .L16457 + ldr r3, [r0, #28] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r2, r3, asl #16 + orrne r3, r2, r3 + orreq r3, r3, #768 + strne r3, [r0, #28] + streq r3, [r0, #28] +.L16457: + add ip, ip, #1 + cmp ip, r4 + bne .L17786 + b .L15754 +.L17132: + ands r2, r4, #7 + mov r3, r4, lsr #3 + sub r0, r0, r3, asl #5 + ldreq r5, [sp, #96] + bne .L17787 +.L17181: + movs r1, r1, lsr #3 + beq .L15754 + mov r2, #0 + b .L17191 +.L17788: + sub r0, r0, #32 + add r5, r5, #32 +.L17191: + ldr r4, [r0, #0] + cmp r4, #0 + beq .L17192 + ands r3, r4, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r5, #28] + mov r3, r4, lsr #4 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #24] + mov r3, r4, lsr #8 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r5, #20] + mov r3, r4, lsr #12 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r5, #16] + mov r3, r4, lsr #16 + ands r3, r3, #15 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #12] + mov r3, r4, lsr #20 + ands r3, r3, #15 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + orrne r3, r7, r3 + strne r3, [r5, #8] + mov r3, r4, lsr #24 + ands r3, r3, #15 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + orrne r3, r7, r3 + strne r3, [r5, #4] + movs r3, r4, lsr #28 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + orrne r3, r7, r3 + strne r3, [r5, #0] +.L17192: + add r2, r2, #1 + cmp r2, r1 + bne .L17788 + b .L15754 +.L16044: + mov r3, r4, lsr #3 + ands r2, r4, #7 + sub ip, r0, r3, asl #5 + ldreq r4, [sp, #96] + bne .L17789 +.L16115: + movs r5, lr, lsr #3 + beq .L15754 + mov lr, #0 + b .L16127 +.L17790: + sub ip, ip, #32 + add r4, r4, #32 +.L16127: + ldr r0, [ip, #0] + cmp r0, #0 + beq .L16128 + ands r2, r0, #15 + beq .L16130 + ldr r1, [r4, #28] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #28] + streq r3, [r4, #28] +.L16130: + mov r3, r0, lsr #4 + ands r2, r3, #15 + beq .L16134 + ldr r1, [r4, #24] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #24] + streq r3, [r4, #24] +.L16134: + mov r3, r0, lsr #8 + ands r2, r3, #15 + beq .L16138 + ldr r1, [r4, #20] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #20] + streq r3, [r4, #20] +.L16138: + mov r3, r0, lsr #12 + ands r2, r3, #15 + beq .L16142 + ldr r1, [r4, #16] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #16] + streq r3, [r4, #16] +.L16142: + mov r3, r0, lsr #16 + ands r2, r3, #15 + beq .L16146 + ldr r1, [r4, #12] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #12] + streq r3, [r4, #12] +.L16146: + mov r3, r0, lsr #20 + ands r2, r3, #15 + beq .L16150 + ldr r1, [r4, #8] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #8] + streq r3, [r4, #8] +.L16150: + mov r3, r0, lsr #24 + ands r2, r3, #15 + beq .L16154 + ldr r1, [r4, #4] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #4] + streq r3, [r4, #4] +.L16154: + movs r2, r0, lsr #28 + beq .L16128 + ldr r1, [r4, #0] + orr r2, r7, r2 + tst r1, #256 + movne r3, r1, lsr #16 + movne r3, r3, asl #16 + orreq r3, r2, #768 + orrne r2, r2, #768 + orrne r3, r3, r2 + orreq r3, r3, r1, asl #16 + strne r3, [r4, #0] + streq r3, [r4, #0] +.L16128: + add lr, lr, #1 + cmp lr, r5 + bne .L17790 + b .L15754 +.L17482: + mov r3, r0, lsr #3 + ands r1, r0, #7 + sub r2, r2, r3, asl #6 + ldreq r0, [sp, #96] + bne .L17791 +.L17586: + movs lr, lr, lsr #3 + beq .L15754 + mov ip, #0 + b .L17615 +.L17792: + sub r2, r2, #64 + add r0, r0, #32 +.L17615: + ldr r1, [r2, #4] + cmp r1, #0 + beq .L17616 + ands r3, r1, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r0, #0] +.L17616: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L17625 + ands r3, r1, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r0, #28] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r0, #24] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r0, #20] + movs r3, r1, lsr #24 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r0, #16] +.L17625: + add ip, ip, #1 + cmp ip, lr + bne .L17792 + b .L15754 +.L17791: + cmp r1, #3 + rsb ip, r1, #8 + bls .L17587 + cmp ip, #0 + ldr r0, [r2, #0] + ldreq r0, [sp, #96] + beq .L17591 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r1, r0, asl r3 + mov r0, #0 +.L17592: + movs r3, r1, lsr #24 + ldr r7, [sp, #52] + ldrne r8, [sp, #96] + orr r3, r7, r3 + strne r3, [r8, r0, asl #2] + add r0, r0, #1 + cmp r0, ip + mov r1, r1, asl #8 + bne .L17592 + ldr r1, [sp, #96] + add r0, r1, ip, asl #2 +.L17591: + sub r2, r2, #64 + b .L17586 +.L17789: + rsbs r8, r2, #8 + ldr r1, [ip, #0] + ldreq r4, [sp, #96] + beq .L16118 + mov r3, r2, asl #2 + mov r4, r1, asl r3 + ldr r5, [sp, #96] + mov r6, #0 +.L16119: + movs r3, r4, lsr #28 + beq .L16120 + ldr r1, [r5, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r5, #0] + streq r2, [r5, #0] +.L16120: + add r6, r6, #1 + cmp r6, r8 + mov r4, r4, asl #4 + add r5, r5, #4 + bne .L16119 + ldr r0, [sp, #96] + add r4, r0, r8, asl #2 +.L16118: + sub ip, ip, #32 + b .L16115 +.L17787: + rsbs ip, r2, #8 + ldr lr, [r0, #0] + ldreq r5, [sp, #96] + beq .L17184 + mov r3, r2, asl #2 + mov r4, lr, asl r3 + mov r5, #0 +.L17185: + ldr r8, [sp, #52] + movs r3, r4, lsr #28 + ldrne lr, [sp, #96] + orr r3, r8, r3 + orr r3, r7, r3 + strne r3, [lr, r5, asl #2] + add r5, r5, #1 + cmp ip, r5 + mov r4, r4, asl #4 + bne .L17185 + ldr r2, [sp, #96] + add r5, r2, ip, asl #2 +.L17184: + sub r0, r0, #32 + b .L17181 +.L17783: + rsbs r5, r3, #8 + ldr r0, [r0, r1] + ldreq r1, [sp, #96] + beq .L17054 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L17055: + ldr r8, [sp, #52] + ands r3, r0, #15 + ldrne ip, [sp, #96] + orr r3, r8, r3 + orr r3, r7, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r2, r5 + mov r0, r0, lsr #4 + bne .L17055 + ldr r0, [sp, #96] + add r1, r0, r5, asl #2 +.L17054: + add r4, r4, #32 + b .L17051 +.L17781: + cmp r2, #3 + rsb ip, r2, #8 + bls .L17367 + cmp ip, #0 + ldr r1, [r0, #4] + ldreq r1, [sp, #96] + beq .L17371 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r2, r1, lsr r3 + mov r1, #0 +.L17372: + ands r3, r2, #255 + ldr r7, [sp, #52] + ldrne r8, [sp, #96] + orr r3, r7, r3 + strne r3, [r8, r1, asl #2] + add r1, r1, #1 + cmp r1, ip + mov r2, r2, lsr #8 + bne .L17372 + ldr r2, [sp, #96] + add r1, r2, ip, asl #2 +.L17371: + add r0, r0, #64 + b .L17366 +.L17785: + cmp r2, #3 + rsb r6, r2, #8 + bls .L16399 + cmp r6, #0 + ldr r1, [lr, #4] + ldreq r0, [sp, #96] + beq .L16403 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, lsr r3 + ldr r4, [sp, #96] + mov r5, #0 +.L16404: + ands r0, ip, #255 + beq .L16405 + ldr r2, [r4, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r4, #0] + streq r0, [r4, #0] +.L16405: + add r5, r5, #1 + cmp r5, r6 + mov ip, ip, lsr #8 + add r4, r4, #4 + bne .L16404 + ldr r5, [sp, #96] + add r0, r5, r6, asl #2 +.L16403: + add lr, lr, #64 + b .L16398 +.L17779: + cmp r2, #3 + rsb r6, r2, #8 + bls .L16735 + cmp r6, #0 + ldr r1, [lr, #0] + ldreq ip, [sp, #96] + beq .L16739 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr r4, [sp, #96] + mov r5, #0 +.L16740: + movs r0, ip, lsr #24 + beq .L16741 + ldr r2, [r4, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r4, #0] + streq r0, [r4, #0] +.L16741: + add r5, r5, #1 + cmp r6, r5 + mov ip, ip, asl #8 + add r4, r4, #4 + bne .L16740 + ldr r1, [sp, #96] + add ip, r1, r6, asl #2 +.L16739: + sub lr, lr, #64 + b .L16734 +.L17777: + rsbs r6, r3, #8 + ldr r0, [r0, r1] + ldreq ip, [sp, #96] + beq .L15914 + mov r3, r3, asl #2 + mov ip, r0, lsr r3 + ldr r4, [sp, #96] + mov r5, #0 +.L15915: + ands r3, ip, #15 + beq .L15916 + ldr r1, [r4, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L15916: + add r5, r5, #1 + cmp r6, r5 + mov ip, ip, lsr #4 + add r4, r4, #4 + bne .L15915 + ldr r3, [sp, #96] + add ip, r3, r6, asl #2 +.L15914: + add lr, lr, #32 + b .L15911 +.L15842: + ldr lr, [sp, #128] + rsb r6, r3, #8 + cmp lr, r6 + bge .L15845 + cmp lr, #0 + ble .L15754 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr r4, [sp, #96] + mov lr, #0 +.L15849: + ands r3, ip, #15 + beq .L15850 + ldr r1, [r4, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L15850: + ldr r0, [sp, #128] + add lr, lr, #1 + cmp r0, lr + mov ip, ip, lsr #4 + add r4, r4, #4 + bne .L15849 + b .L15754 +.L16586: + ldr r7, [sp, #128] + rsb r6, lr, #8 + cmp r7, r6 + bge .L16589 + cmp r7, #0 + ble .L15754 + cmp lr, #3 + bls .L16592 + mov r3, lr, asl #3 + ldr r2, [r8, #0] + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #96] + mov r4, #0 +.L16595: + movs r0, ip, lsr #24 + beq .L16596 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16596: + ldr r8, [sp, #128] + add r4, r4, #1 + cmp r8, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L16595 + b .L15754 +.L17484: + ldr lr, [sp, #128] + rsb r0, ip, #8 + cmp lr, r0 + bge .L17487 + cmp lr, #0 + ble .L15754 + cmp ip, #3 + bls .L17490 + ldr r2, [r6, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L17493: + movs r3, r2, lsr #24 + ldr r0, [sp, #52] + ldrne r4, [sp, #96] + orr r3, r0, r3 + ldr r5, [sp, #128] + strne r3, [r4, r1, asl #2] + add r1, r1, #1 + cmp r5, r1 + mov r2, r2, asl #8 + bne .L17493 + b .L15754 +.L16046: + ldr r2, [sp, #128] + rsb r6, lr, #8 + cmp r2, r6 + bge .L16049 + cmp r2, #0 + ble .L15754 + ldr r2, [ip, #0] + mov r3, lr, asl #2 + mov ip, r2, asl r3 + ldr r4, [sp, #96] + mov lr, #0 +.L16053: + movs r3, ip, lsr #28 + beq .L16054 + ldr r1, [r4, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L16054: + ldr r3, [sp, #128] + add lr, lr, #1 + cmp r3, lr + mov ip, ip, asl #4 + add r4, r4, #4 + bne .L16053 + b .L15754 +.L17134: + ldr r1, [sp, #128] + rsb lr, r5, #8 + cmp r1, lr + bge .L17137 + cmp r1, #0 + ble .L15754 + ldr r2, [r0, #0] + mov r3, r5, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L17141: + ldr r4, [sp, #52] + movs r3, r0, lsr #28 + ldrne r5, [sp, #96] + orr r3, r4, r3 + orr r3, r7, r3 + ldr r8, [sp, #128] + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r8, r2 + mov r0, r0, asl #4 + bne .L17141 + b .L15754 +.L17264: + ldr ip, [sp, #128] + rsb r0, lr, #8 + cmp ip, r0 + bge .L17267 + cmp ip, #0 + ble .L15754 + cmp lr, #3 + bls .L17270 + ldr r2, [r6, #4] + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L17273: + ands r3, r1, #255 + ldr lr, [sp, #52] + ldrne r0, [sp, #96] + orr r3, lr, r3 + strne r3, [r0, r2, asl #2] + ldr r3, [sp, #128] + add r2, r2, #1 + cmp r3, r2 + mov r1, r1, lsr #8 + bne .L17273 + b .L15754 +.L17004: + ldr ip, [sp, #128] + rsb lr, r3, #8 + cmp ip, lr + bge .L17007 + cmp ip, #0 + ble .L15754 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L17011: + ldr lr, [sp, #52] + ands r3, r0, #15 + ldrne r1, [sp, #96] + orr r3, lr, r3 + orr r3, r7, r3 + strne r3, [r1, r2, asl #2] + ldr r3, [sp, #128] + add r2, r2, #1 + cmp r3, r2 + mov r0, r0, lsr #4 + bne .L17011 + b .L15754 +.L16250: + ldr ip, [sp, #128] + rsb r5, lr, #8 + cmp ip, r5 + bge .L16253 + cmp ip, #0 + ble .L15754 + cmp lr, #3 + bls .L16256 + mov r3, lr, asl #3 + ldr r2, [r7, #4] + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #96] + mov r4, #0 +.L16259: + ands r0, ip, #255 + beq .L16260 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16260: + ldr r0, [sp, #128] + add r4, r4, #1 + cmp r0, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L16259 + b .L15754 +.L16399: + subs r8, r6, #4 + ldr r1, [lr, #0] + ldreq r2, [sp, #96] + beq .L16413 + mov r3, r2, asl #3 + mov ip, r1, lsr r3 + ldr r4, [sp, #96] + mov r5, #0 +.L16414: + ands r0, ip, #255 + beq .L16415 + ldr r2, [r4, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r4, #0] + streq r0, [r4, #0] +.L16415: + add r5, r5, #1 + cmp r8, r5 + mov ip, ip, lsr #8 + add r4, r4, #4 + bne .L16414 + ldr r4, [sp, #96] + add r3, r4, r6, asl #2 + sub r2, r3, #16 +.L16413: + ldr r1, [lr, #4] + cmp r1, #0 + beq .L16421 + ands r0, r1, #255 + beq .L16423 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #0] + streq r3, [r2, #0] +.L16423: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L16427 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L16427: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L16431 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L16431: + movs r1, r1, lsr #24 + beq .L16421 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #12] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #12] +.L16421: + add r0, r2, #16 + add lr, lr, #64 + b .L16398 +.L16735: + subs r8, r6, #4 + ldr r1, [lr, #4] + ldreq r2, [sp, #96] + beq .L16749 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov ip, r1, asl r3 + ldr r4, [sp, #96] + mov r5, #0 +.L16750: + movs r0, ip, lsr #24 + beq .L16751 + ldr r2, [r4, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [r4, #0] + streq r0, [r4, #0] +.L16751: + add r5, r5, #1 + cmp r8, r5 + mov ip, ip, asl #8 + add r4, r4, #4 + bne .L16750 + ldr r0, [sp, #96] + add r3, r0, r6, asl #2 + sub r2, r3, #16 +.L16749: + ldr r1, [lr, #0] + cmp r1, #0 + beq .L16757 + ands r0, r1, #255 + beq .L16759 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #12] + streq r3, [r2, #12] +.L16759: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L16763 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L16763: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L16767 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L16767: + movs r1, r1, lsr #24 + beq .L16757 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #0] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #0] +.L16757: + add ip, r2, #16 + sub lr, lr, #64 + b .L16734 +.L15845: + cmp r6, #0 + ldr r2, [r8, #0] + ldreq r5, [sp, #96] + beq .L15857 + mov r3, r3, asl #2 + mov ip, r2, lsr r3 + ldr r4, [sp, #96] + mov lr, #0 +.L15858: + ands r3, ip, #15 + beq .L15859 + ldr r1, [r4, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r4, #0] + streq r2, [r4, #0] +.L15859: + add lr, lr, #1 + cmp r6, lr + mov ip, ip, lsr #4 + add r4, r4, #4 + bne .L15858 + ldr r1, [sp, #96] + add r5, r1, r6, asl #2 +.L15857: + ldr r2, [sp, #128] + add r8, r8, #32 + rsb sl, r6, r2 + b .L15844 +.L17587: + subs r4, ip, #4 + ldr r0, [r2, #4] + ldreq r0, [sp, #96] + beq .L17599 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r1, r0, asl r3 + mov r0, #0 +.L17600: + movs r3, r1, lsr #24 + ldr r5, [sp, #52] + ldrne r7, [sp, #96] + orr r3, r5, r3 + strne r3, [r7, r0, asl #2] + add r0, r0, #1 + cmp r4, r0 + mov r1, r1, asl #8 + bne .L17600 + ldr r8, [sp, #96] + add r3, r8, ip, asl #2 + sub r0, r3, #16 +.L17599: + ldr r1, [r2, #0] + cmp r1, #0 + beq .L17605 + ands r3, r1, #255 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + strne r3, [r0, #12] + mov r3, r1, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r0, #8] + mov r3, r1, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r0, #4] + movs r3, r1, lsr #24 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r0, #0] +.L17605: + add r0, r0, #16 + sub r2, r2, #64 + b .L17586 +.L16589: + cmp lr, #3 + bls .L16627 + cmp r6, #0 + ldr r2, [r8, #0] + ldreq r5, [sp, #96] + beq .L16631 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #96] + mov r4, #0 +.L16632: + movs r0, ip, lsr #24 + beq .L16633 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16633: + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L16632 + ldr r7, [sp, #96] + add r5, r7, r6, asl #2 +.L16631: + ldr ip, [sp, #128] + sub r8, r8, #64 + rsb r7, r6, ip + b .L16588 +.L17487: + cmp ip, #3 + bls .L17517 + cmp r0, #0 + ldr r2, [r6, #0] + ldreq r4, [sp, #96] + beq .L17521 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L17522: + movs r3, r2, lsr #24 + ldr ip, [sp, #52] + ldrne lr, [sp, #96] + orr r3, ip, r3 + strne r3, [lr, r1, asl #2] + add r1, r1, #1 + cmp r0, r1 + mov r2, r2, asl #8 + bne .L17522 + ldr r1, [sp, #96] + add r4, r1, r0, asl #2 +.L17521: + ldr r3, [sp, #128] + sub r6, r6, #64 + rsb r5, r0, r3 + b .L17486 +.L16253: + cmp lr, #3 + bls .L16291 + cmp r5, #0 + ldr r2, [r7, #4] + ldreq lr, [sp, #96] + beq .L16295 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, lsr r3 + ldr lr, [sp, #96] + mov r4, #0 +.L16296: + ands r0, ip, #255 + beq .L16297 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16297: + add r4, r4, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L16296 + ldr r2, [sp, #96] + add lr, r2, r5, asl #2 +.L16295: + ldr r3, [sp, #128] + add r7, r7, #64 + rsb r6, r5, r3 + b .L16252 +.L17367: + subs r4, ip, #4 + ldr r1, [r0, #0] + ldreq r1, [sp, #96] + beq .L17379 + mov r3, r2, asl #3 + mov r2, r1, lsr r3 + mov r1, #0 +.L17380: + ands r3, r2, #255 + ldr r5, [sp, #52] + ldrne r7, [sp, #96] + orr r3, r5, r3 + strne r3, [r7, r1, asl #2] + add r1, r1, #1 + cmp r1, r4 + mov r2, r2, lsr #8 + bne .L17380 + ldr r8, [sp, #96] + add r3, r8, ip, asl #2 + sub r1, r3, #16 +.L17379: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L17385 + ands r3, r2, #255 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne r4, [sp, #52] + orrne r3, r4, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne r5, [sp, #52] + orrne r3, r5, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r7, [sp, #52] + orrne r3, r7, r3 + strne r3, [r1, #12] +.L17385: + add r1, r1, #16 + add r0, r0, #64 + b .L17366 +.L17007: + cmp lr, #0 + ldr r2, [r4, #0] + ldreq r6, [sp, #96] + beq .L17017 + mov r3, r3, asl #2 + mov r2, r2, lsr r3 + mov r1, #0 +.L17018: + ldr r5, [sp, #52] + ands r3, r2, #15 + ldrne r8, [sp, #96] + orr r3, r5, r3 + orr r3, r7, r3 + strne r3, [r8, r1, asl #2] + add r1, r1, #1 + cmp lr, r1 + mov r2, r2, lsr #4 + bne .L17018 + ldr ip, [sp, #96] + add r6, ip, lr, asl #2 +.L17017: + ldr r0, [sp, #128] + add r4, r4, #32 + rsb r5, lr, r0 + b .L17006 +.L16049: + cmp r6, #0 + ldr r2, [ip, #0] + ldreq r5, [sp, #96] + beq .L16061 + mov r3, lr, asl #2 + mov r4, r2, asl r3 + ldr r5, [sp, #96] + mov lr, #0 +.L16062: + movs r3, r4, lsr #28 + beq .L16063 + ldr r1, [r5, #0] + orr r2, r7, r3 + mov r3, r1, lsr #16 + orr r0, r2, #768 + mov r3, r3, asl #16 + orr r2, r2, #768 + tst r1, #256 + orr r3, r3, r0 + orr r2, r2, r1, asl #16 + strne r3, [r5, #0] + streq r2, [r5, #0] +.L16063: + add lr, lr, #1 + cmp r6, lr + mov r4, r4, asl #4 + add r5, r5, #4 + bne .L16062 + ldr r4, [sp, #96] + add r5, r4, r6, asl #2 +.L16061: + ldr r8, [sp, #128] + sub ip, ip, #32 + rsb sl, r6, r8 + b .L16048 +.L17137: + cmp lr, #0 + ldr r2, [r0, #0] + ldreq r1, [sp, #96] + beq .L17147 + mov r3, r5, asl #2 + mov r4, r2, asl r3 + mov r5, #0 +.L17148: + ldr ip, [sp, #52] + movs r3, r4, lsr #28 + ldrne r1, [sp, #96] + orr r3, ip, r3 + orr r3, r7, r3 + strne r3, [r1, r5, asl #2] + add r5, r5, #1 + cmp lr, r5 + mov r4, r4, asl #4 + bne .L17148 + ldr r2, [sp, #96] + add r1, r2, lr, asl #2 +.L17147: + ldr r3, [sp, #128] + sub r0, r0, #32 + rsb r2, lr, r3 + b .L17136 +.L17267: + cmp lr, #3 + bls .L17297 + cmp r0, #0 + ldr r2, [r6, #4] + ldreq r4, [sp, #96] + beq .L17301 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L17302: + ands r3, r1, #255 + ldr ip, [sp, #52] + ldrne lr, [sp, #96] + orr r3, ip, r3 + strne r3, [lr, r2, asl #2] + add r2, r2, #1 + cmp r0, r2 + mov r1, r1, lsr #8 + bne .L17302 + ldr r1, [sp, #96] + add r4, r1, r0, asl #2 +.L17301: + ldr r3, [sp, #128] + add r6, r6, #64 + rsb r5, r0, r3 + b .L17266 +.L17797: + mov r6, #0 + b .L15820 +.L17800: + mov r6, #0 + b .L16948 +.L17799: + mov ip, #0 + b .L15780 +.L17794: + mov ip, fp + b .L17737 +.L17297: + subs ip, r0, #4 + ldr r2, [r6, #0] + ldreq r1, [sp, #96] + beq .L17309 + mov r3, lr, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L17310: + ands r3, r1, #255 + ldr r4, [sp, #52] + ldrne r5, [sp, #96] + orr r3, r4, r3 + strne r3, [r5, r2, asl #2] + add r2, r2, #1 + cmp r2, ip + mov r1, r1, lsr #8 + bne .L17310 + ldr r7, [sp, #96] + add r3, r7, r0, asl #2 + sub r1, r3, #16 +.L17309: + ldr r2, [r6, #4] + cmp r2, #0 + beq .L17315 + ands r3, r2, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #0] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + strne r3, [r1, #4] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + strne r3, [r1, #8] + movs r3, r2, lsr #24 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r1, #12] +.L17315: + add r4, r1, #16 + b .L17301 +.L16291: + subs r6, r5, #4 + ldr r2, [r7, #0] + ldreq r2, [sp, #96] + beq .L16305 + mov r3, lr, asl #3 + mov ip, r2, lsr r3 + ldr lr, [sp, #96] + mov r4, #0 +.L16306: + ands r0, ip, #255 + beq .L16307 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16307: + add r4, r4, #1 + cmp r6, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L16306 + ldr r1, [sp, #96] + add r3, r1, r5, asl #2 + sub r2, r3, #16 +.L16305: + ldr r1, [r7, #4] + cmp r1, #0 + beq .L16313 + ands r0, r1, #255 + beq .L16315 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #0] + streq r3, [r2, #0] +.L16315: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L16319 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L16319: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L16323 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L16323: + movs r1, r1, lsr #24 + beq .L16313 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #12] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #12] +.L16313: + add lr, r2, #16 + b .L16295 +.L17517: + subs lr, r0, #4 + ldr r2, [r6, #4] + ldreq r1, [sp, #96] + beq .L17529 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L17530: + movs r3, r2, lsr #24 + ldr r4, [sp, #52] + ldrne r5, [sp, #96] + orr r3, r4, r3 + strne r3, [r5, r1, asl #2] + add r1, r1, #1 + cmp lr, r1 + mov r2, r2, asl #8 + bne .L17530 + ldr r7, [sp, #96] + add r3, r7, r0, asl #2 + sub r1, r3, #16 +.L17529: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L17535 + ands r3, r2, #255 + ldrne r8, [sp, #52] + orrne r3, r8, r3 + strne r3, [r1, #12] + mov r3, r2, lsr #8 + ands r3, r3, #255 + ldrne ip, [sp, #52] + orrne r3, ip, r3 + strne r3, [r1, #8] + mov r3, r2, lsr #16 + ands r3, r3, #255 + ldrne lr, [sp, #52] + orrne r3, lr, r3 + strne r3, [r1, #4] + movs r3, r2, lsr #24 + ldrne r2, [sp, #52] + orrne r3, r2, r3 + strne r3, [r1, #0] +.L17535: + add r4, r1, #16 + b .L17521 +.L16627: + subs r5, r6, #4 + ldr r2, [r8, #4] + ldreq r2, [sp, #96] + beq .L16641 + mov r3, lr, asl #3 + sub r3, r3, #32 + mov ip, r2, asl r3 + ldr lr, [sp, #96] + mov r4, #0 +.L16642: + movs r0, ip, lsr #24 + beq .L16643 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16643: + add r4, r4, #1 + cmp r4, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L16642 + ldr r4, [sp, #96] + add r3, r4, r6, asl #2 + sub r2, r3, #16 +.L16641: + ldr r1, [r8, #0] + cmp r1, #0 + beq .L16649 + ands r0, r1, #255 + beq .L16651 + ldr r3, [r2, #12] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #12] + streq r3, [r2, #12] +.L16651: + mov r3, r1, lsr #8 + ands r0, r3, #255 + beq .L16655 + ldr r3, [r2, #8] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #8] + streq r3, [r2, #8] +.L16655: + mov r3, r1, lsr #16 + ands r0, r3, #255 + beq .L16659 + ldr r3, [r2, #4] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orreq r3, r0, r3, asl #16 + orrne r3, r0, r3 + orreq r3, r3, #768 + strne r3, [r2, #4] + streq r3, [r2, #4] +.L16659: + movs r1, r1, lsr #24 + beq .L16649 + ldr r3, [r2, #0] + tst r3, #256 + movne r3, r3, lsr #16 + movne r3, r3, asl #16 + orrne r3, r3, #768 + orrne r3, r1, r3 + strne r3, [r2, #0] + orreq r3, r1, r3, asl #16 + orreq r3, r3, #768 + streq r3, [r2, #0] +.L16649: + add r5, r2, #16 + b .L16631 +.L17490: + ldr r7, [sp, #128] + mov r3, ip, asl #3 + ldr r1, [r6, #4] + add r2, r7, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L17497 + cmp r7, #0 + movne r2, #0 + beq .L15754 +.L17513: + movs r3, r1, lsr #24 + ldr r5, [sp, #52] + ldrne r7, [sp, #96] + orr r3, r5, r3 + ldr r8, [sp, #128] + strne r3, [r7, r2, asl #2] + add r2, r2, #1 + cmp r8, r2 + mov r1, r1, asl #8 + bne .L17513 + b .L15754 +.L16592: + ldr ip, [sp, #128] + mov r3, lr, asl #3 + add r2, ip, lr + ldr r1, [r8, #4] + sub r3, r3, #32 + cmp r2, #4 + mov ip, r1, asl r3 + bhi .L16601 + ldr lr, [sp, #128] + cmp lr, #0 + ldrne lr, [sp, #96] + movne r4, #0 + beq .L15754 +.L16621: + movs r0, ip, lsr #24 + beq .L16622 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16622: + ldr r2, [sp, #128] + add r4, r4, #1 + cmp r2, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L16621 + b .L15754 +.L17270: + ldr r4, [sp, #128] + ldr r3, [r6, #0] + add r2, r4, lr + cmp r2, #4 + mov r1, lr, asl #3 + mov r2, r3, lsr r1 + bhi .L17277 + cmp r4, #0 + movne r1, #0 + beq .L15754 +.L17293: + ands r3, r2, #255 + ldr r5, [sp, #52] + ldrne r7, [sp, #96] + orr r3, r5, r3 + ldr r8, [sp, #128] + strne r3, [r7, r1, asl #2] + add r1, r1, #1 + cmp r8, r1 + mov r2, r2, lsr #8 + bne .L17293 + b .L15754 +.L16256: + ldr r1, [sp, #128] + ldr r3, [r7, #0] + add r2, r1, lr + cmp r2, #4 + mov r1, lr, asl #3 + mov ip, r3, lsr r1 + bhi .L16265 + ldr r2, [sp, #128] + cmp r2, #0 + ldrne lr, [sp, #96] + movne r4, #0 + beq .L15754 +.L16285: + ands r0, ip, #255 + beq .L16286 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16286: + ldr r0, [sp, #128] + add r4, r4, #1 + cmp r0, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L16285 + b .L15754 +.L16265: + rsbs r4, lr, #4 + ldreq lr, [sp, #96] + beq .L16270 + ldr lr, [sp, #96] + mov r5, #0 +.L16271: + ands r0, ip, #255 + beq .L16272 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16272: + add r5, r5, #1 + cmp r5, r4 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L16271 + ldr r3, [sp, #96] + add lr, r3, r4, asl #2 +.L16270: + ldr r8, [sp, #128] + ldr ip, [r7, #4] + subs r5, r8, r4 + beq .L15754 + mov r4, #0 +.L16279: + ands r0, ip, #255 + beq .L16280 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16280: + add r4, r4, #1 + cmp r4, r5 + mov ip, ip, lsr #8 + add lr, lr, #4 + bne .L16279 + b .L15754 +.L17277: + rsbs r0, lr, #4 + ldreq ip, [sp, #96] + beq .L17282 + mov r1, #0 +.L17283: + ands r3, r2, #255 + ldr r5, [sp, #52] + ldrne r7, [sp, #96] + orr r3, r5, r3 + strne r3, [r7, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L17283 + ldr r8, [sp, #96] + add ip, r8, r0, asl #2 +.L17282: + ldr lr, [sp, #128] + ldr r2, [r6, #4] + subs r0, lr, r0 + beq .L15754 + mov r1, #0 +.L17289: + ldr r4, [sp, #52] + ands r3, r2, #255 + orr r3, r4, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, lsr #8 + bne .L17289 + b .L15754 +.L16601: + rsbs r4, lr, #4 + ldreq lr, [sp, #96] + beq .L16606 + ldr lr, [sp, #96] + mov r5, #0 +.L16607: + movs r0, ip, lsr #24 + beq .L16608 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16608: + add r5, r5, #1 + cmp r5, r4 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L16607 + ldr r0, [sp, #96] + add lr, r0, r4, asl #2 +.L16606: + ldr r1, [sp, #128] + ldr ip, [r8, #0] + subs r5, r1, r4 + beq .L15754 + mov r4, #0 +.L16615: + movs r0, ip, lsr #24 + beq .L16616 + ldr r2, [lr, #0] + orr r1, r0, #768 + mov r3, r2, lsr #16 + orr r0, r0, #768 + mov r3, r3, asl #16 + tst r2, #256 + orr r3, r3, r1 + orr r0, r0, r2, asl #16 + strne r3, [lr, #0] + streq r0, [lr, #0] +.L16616: + add r4, r4, #1 + cmp r4, r5 + mov ip, ip, asl #8 + add lr, lr, #4 + bne .L16615 + b .L15754 +.L17497: + rsbs r0, ip, #4 + ldreq ip, [sp, #96] + beq .L17502 + mov r2, #0 +.L17503: + movs r3, r1, lsr #24 + ldr r8, [sp, #52] + ldrne ip, [sp, #96] + orr r3, r8, r3 + strne r3, [ip, r2, asl #2] + add r2, r2, #1 + cmp r2, r0 + mov r1, r1, asl #8 + bne .L17503 + ldr lr, [sp, #96] + add ip, lr, r0, asl #2 +.L17502: + ldr r1, [sp, #128] + ldr r2, [r6, #0] + subs r0, r1, r0 + beq .L15754 + mov r1, #0 +.L17509: + ldr r4, [sp, #52] + movs r3, r2, lsr #24 + orr r3, r4, r3 + strne r3, [ip, r1, asl #2] + add r1, r1, #1 + cmp r1, r0 + mov r2, r2, asl #8 + bne .L17509 + b .L15754 + .size render_scanline_obj_partial_alpha_2D, .-render_scanline_obj_partial_alpha_2D + .align 2 + .global order_obj + .type order_obj, %function +order_obj: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r9, .L17848 + mov sl, r0 + mov ip, #0 +.L17806: + add r3, ip, ip, asl #2 + add r2, r9, r3, asl #7 + mov r3, #0 +.L17807: + add r3, r3, #1 + mov r1, #0 + cmp r3, #160 + str r1, [r2], #4 + bne .L17807 + add ip, ip, #1 + cmp ip, #5 + bne .L17806 + ldr fp, .L17848+4 + mov r3, fp + add r2, fp, #640 +.L17810: + str r1, [r3], #4 + cmp r3, r2 + bne .L17810 + ldr r5, .L17848+8 + mov r6, #127 +.L17812: + ldrh r2, [r5, #8] + ldrh r7, [r5, #12] + and r1, r2, #49152 + and r3, r2, #768 + cmp r3, #512 + cmpne r1, #49152 + beq .L17813 + mov r3, r2, lsr #10 + and r0, r3, #3 + cmp r0, #3 + beq .L17813 + cmp sl, #2 + bls .L17816 + mov r3, r7, asl #22 + mov r3, r3, lsr #22 + cmp r3, #512 + bcc .L17813 +.L17816: + ldrh r4, [r5, #10] + and ip, r2, #255 + mov r3, r4, lsr #14 + orr r3, r3, r1, lsr #12 + ldr r1, .L17848+12 + cmp ip, #160 + subgt ip, ip, #256 + ldr r1, [r1, r3, asl #2] + tst r2, #512 + ldr r2, .L17848+16 + movne r1, r1, asl #1 + ldr r2, [r2, r3, asl #2] + add lr, ip, r1 + movne r2, r2, asl #1 + cmp lr, #0 + movle r3, #0 + movgt r3, #1 + cmp ip, #159 + movgt r3, #0 + cmp r3, #0 + beq .L17813 + mov r3, r4, asl #23 + mov r3, r3, asr #23 + add r2, r2, r3 + cmp r2, #0 + movle r1, #0 + movgt r1, #1 + cmp r3, #239 + movgt r1, #0 + cmp r1, #0 + beq .L17813 + cmp ip, #0 + movlt ip, #0 + cmp lr, #160 + movge lr, #160 + mov r3, r7, lsr #10 + cmp r0, #1 + and r3, r3, #3 + beq .L17847 + cmp r0, #2 + moveq r3, #4 + cmp lr, ip + ble .L17813 + add r3, r3, r3, asl #2 + ldr r2, .L17848+20 + rsb r1, ip, lr + add r3, ip, r3, asl #5 + mov r0, ip + add r1, ip, r1 + add lr, r2, r3, asl #7 + and r4, r6, #255 + add ip, r9, r3, asl #2 +.L17833: + ldr r2, [ip, #0] + add r0, r0, #1 + add r3, r2, #1 + cmp r0, r1 + strb r4, [lr, r2] + str r3, [ip], #4 + add lr, lr, #128 + bne .L17833 +.L17813: + sub r6, r6, #1 + cmn r6, #1 + sub r5, r5, #8 + bne .L17812 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L17847: + cmp lr, ip + ble .L17813 + add r3, r3, r3, asl #2 + ldr r2, .L17848+20 + add r3, ip, r3, asl #5 + rsb r1, ip, lr + mov r4, ip + add r8, ip, r1 + add r0, r2, r3, asl #7 + and r7, r6, #255 + add lr, r9, r3, asl #2 + add ip, fp, ip, asl #2 +.L17829: + ldr r3, [lr, #0] + ldr r2, [ip, #0] + add r4, r4, #1 + add r1, r3, #1 + add r2, r2, #1 + cmp r4, r8 + strb r7, [r0, r3] + str r1, [lr], #4 + str r2, [ip], #4 + add r0, r0, #128 + bne .L17829 + sub r6, r6, #1 + cmn r6, #1 + sub r5, r5, #8 + bne .L17812 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L17849: + .align 2 +.L17848: + .word obj_priority_count + .word obj_alpha_count + .word oam_ram+1008 + .word obj_height_table + .word obj_width_table + .word obj_priority_list + .size order_obj, .-order_obj + .align 2 + .global order_layers + .type order_layers, %function +order_layers: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} + ldr r6, .L17989 + ldr r3, .L17989+4 + ldrh r2, [r6, #6] + ldr sl, .L17989+8 + add r4, r3, r2, asl #2 + and r3, r0, #8 + mov r1, #0 + cmp r3, #0 + and ip, r0, #1 + and r7, r0, #16 + and r2, r0, #4 + ldr r8, .L17989+12 + mov r5, r1 + mov lr, #3 + and r0, r0, #2 + str r1, [sl, #0] + bne .L17967 + cmp ip, #0 + beq .L17979 + cmp r0, #0 + bne .L17985 + cmp r2, #0 + bne .L17988 +.L17851: + ldrh r3, [r6, #8] + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + sub r4, r4, #640 + beq .L17855 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17855: + subs lr, lr, #1 + bcs .L17851 +.L17869: + str r5, [sl, #0] + ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} +.L17967: + cmp ip, #0 + beq .L17969 + cmp r0, #0 + bne .L17975 + cmp r2, #0 + bne .L17978 +.L17884: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #8] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + sub r4, r4, #640 + beq .L17875 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17875: + subs lr, lr, #1 + bcc .L17869 + b .L17884 +.L17969: + cmp r0, #0 + bne .L17971 + cmp r2, #0 + bne .L17974 +.L17890: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + sub r4, r4, #640 + beq .L17883 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17883: + subs lr, lr, #1 + bcc .L17869 + b .L17890 +.L17979: + cmp r0, #0 + bne .L17981 + cmp r2, #0 + bne .L17984 +.L17935: + ldr r3, [r4, #1920] + sub r4, r4, #640 + cmp r3, #0 + beq .L17930 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17930: + subs lr, lr, #1 + bcc .L17869 + b .L17935 +.L17985: + cmp r2, #0 + bne .L17987 +.L17958: + ldrh r3, [r6, #10] + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldrh r3, [r6, #8] + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + sub r4, r4, #640 + beq .L17951 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17951: + subs lr, lr, #1 + bcc .L17869 + b .L17958 +.L17987: + ldrh r3, [r6, #12] + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #10] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldrh r3, [r6, #8] + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + beq .L17957 + cmp r7, #0 + orrne r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17957: + sub lr, lr, #1 + cmn lr, #1 + sub r4, r4, #640 + bne .L17987 + b .L17869 +.L17975: + cmp r2, #0 + bne .L17977 +.L17917: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #10] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldrh r3, [r6, #8] + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + beq .L17909 + cmp r7, #0 + orrne r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17909: + sub lr, lr, #1 + cmn lr, #1 + sub r4, r4, #640 + bne .L17917 + b .L17869 +.L17977: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #12] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #10] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldrh r3, [r6, #8] + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + beq .L17916 + cmp r7, #0 + orrne r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17916: + sub lr, lr, #1 + cmn lr, #1 + sub r4, r4, #640 + bne .L17977 + b .L17869 +.L17978: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #12] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #8] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + beq .L17923 + cmp r7, #0 + orrne r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17923: + sub lr, lr, #1 + cmn lr, #1 + sub r4, r4, #640 + bne .L17978 + b .L17869 +.L17971: + cmp r2, #0 + bne .L17973 +.L17897: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #10] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldr r3, [r4, #1920] + sub r4, r4, #640 + cmp r3, #0 + beq .L17889 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17889: + subs lr, lr, #1 + bcc .L17869 + b .L17897 +.L17973: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #12] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #10] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldr r3, [r4, #1920] + cmp r3, #0 + beq .L17896 + cmp r7, #0 + orrne r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17896: + sub lr, lr, #1 + cmn lr, #1 + sub r4, r4, #640 + bne .L17973 + b .L17869 +.L17974: + ldrh r3, [r6, #14] + and r3, r3, #3 + cmp r3, lr + moveq r3, #3 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #12] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + sub r4, r4, #640 + beq .L17902 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17902: + subs lr, lr, #1 + bcc .L17869 + b .L17974 +.L17981: + cmp r2, #0 + bne .L17983 +.L17941: + ldrh r3, [r6, #10] + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldr r3, [r4, #1920] + sub r4, r4, #640 + cmp r3, #0 + beq .L17934 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17934: + subs lr, lr, #1 + bcc .L17869 + b .L17941 +.L17983: + ldrh r3, [r6, #12] + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #10] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #1 + streq r3, [r8, r5, asl #2] + addeq r5, r5, r3 + ldr r3, [r4, #1920] + sub r4, r4, #640 + cmp r3, #0 + beq .L17940 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17940: + subs lr, lr, #1 + bcc .L17869 + b .L17983 +.L17984: + ldrh r3, [r6, #12] + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + sub r4, r4, #640 + beq .L17945 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17945: + subs lr, lr, #1 + bcc .L17869 + b .L17984 +.L17988: + ldrh r3, [r6, #12] + and r3, r3, #3 + cmp r3, lr + moveq r3, #2 + streq r3, [r8, r5, asl #2] + ldrh r3, [r6, #8] + addeq r5, r5, #1 + and r3, r3, #3 + cmp r3, lr + moveq r3, #0 + streq r3, [r8, r5, asl #2] + ldr r3, [r4, #1920] + addeq r5, r5, #1 + cmp r3, #0 + sub r4, r4, #640 + beq .L17963 + cmp r7, #0 + orr r3, lr, #4 + strne r3, [r8, r5, asl #2] + addne r5, r5, #1 +.L17963: + subs lr, lr, #1 + bcc .L17869 + b .L17988 +.L17990: + .align 2 +.L17989: + .word io_registers + .word obj_priority_count + .word layer_count + .word layer_order + .size order_layers, .-order_layers + .align 2 + .global fill_line_normal + .type fill_line_normal, %function +fill_line_normal: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + str lr, [sp, #-4]! + mov r0, r0, asl #16 + mov lr, r3 + cmp r2, r3 + ldr r3, .L17997 + mov r0, r0, lsr #15 + ldrh ip, [r0, r3] + ldrcs pc, [sp], #4 + rsb r3, r2, lr + add r1, r1, r2, asl #1 + mov r0, #0 +.L17994: + add r0, r0, #1 + cmp r0, r3 + strh ip, [r1], #2 @ movhi + bne .L17994 + ldr pc, [sp], #4 +.L17998: + .align 2 +.L17997: + .word palette_ram_converted + .size fill_line_normal, .-fill_line_normal + .align 2 + .global fill_line_alpha + .type fill_line_alpha, %function +fill_line_alpha: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + mov r0, r0, asl #16 + cmp r2, r3 + @ lr needed for prologue + mov r0, r0, lsr #16 + bxcs lr + rsb r3, r2, r3 + add r1, r1, r2, asl #2 + mov ip, #0 +.L18002: + add ip, ip, #1 + cmp ip, r3 + str r0, [r1], #4 + bne .L18002 + bx lr + .size fill_line_alpha, .-fill_line_alpha + .align 2 + .global fill_line_color16 + .type fill_line_color16, %function +fill_line_color16: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + mov r0, r0, asl #16 + cmp r2, r3 + @ lr needed for prologue + mov r0, r0, lsr #16 + bxcs lr + rsb r3, r2, r3 + add r1, r1, r2, asl #1 + mov ip, #0 +.L18008: + add ip, ip, #1 + cmp ip, r3 + strh r0, [r1], #2 @ movhi + bne .L18008 + bx lr + .size fill_line_color16, .-fill_line_color16 + .align 2 + .global fill_line_color32 + .type fill_line_color32, %function +fill_line_color32: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + mov r0, r0, asl #16 + cmp r2, r3 + @ lr needed for prologue + mov r0, r0, lsr #16 + bxcs lr + rsb r3, r2, r3 + add r1, r1, r2, asl #2 + mov ip, #0 +.L18014: + add ip, ip, #1 + cmp ip, r3 + str r0, [r1], #4 + bne .L18014 + bx lr + .size fill_line_color32, .-fill_line_color32 + .align 2 + .global expand_blend + .type expand_blend, %function + +expand_blend: + @ args = 0, pretend = 0, frame = 4 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + mov r6, r0 # r6 = screen_src_ptr + ldr r0, .L18042 # r0 = io_registers + mov lr, r1 # lr = screen_dest_ptr + ldrh ip, [r0, #82] # ip = REG_BLDALPHA + sub sp, sp, #4 # make room on stack for 1 word + mov r1, ip, lsr #8 # r1 = REG_BLDALPHA >> 8 + and r1, r1, #31 # r1 = (REG_BLDALPHA >> 8) & 0x1F = blend_b + and ip, ip, #31 # ip = REG_BLDALPHA & 0x1F = blend_a + cmp ip, #16 # if(blend_a > 16) + movcs ip, #16 # blend_a = 16 + cmp r1, #16 # fp = blend_b + movcc fp, r1 # if(blend_b > 16) + movcs fp, #16 # blend_b = 16 + add r0, fp, ip # r0 = blend_a + blend_b + cmp r0, #16 # if((blend_a + blend_b) > 16) + str ip, [sp, #0] # save blend_a to stack + bls .L18018 # goto blend w/o saturation + + subs r8, r3, r2 # r8 = end - start + beq .L18040 # if((end - start) == 0) we're already done + + ldr r7, .L18042+4 # r7 = palette_ram_converted + ldr sl, .L18042+8 # sl = 0x4000200 + add r4, r6, r2, asl #2 # r4 = screen_src_ptr + (start * 4) + add r5, lr, r2, asl #1 # r5 = screen_dest_ptr + (start * 2) + mov r6, #0 # r6 = 0 + b .L18022 + +.L18023: + mov r3, r0, asl #23 + mov r3, r3, lsr #23 + mov r3, r3, asl #1 + ldrh r3, [r3, r7] + add r6, r6, #1 + cmp r8, r6 + strh r3, [r5, #0] @ movhi + beq .L18040 + +.L18041: # next_iteration + add r4, r4, #4 # screen_src_ptr++ + add r5, r5, #2 # screen_dest_ptr++ + +.L18022: # blend w/o saturation + ldr r0, [r4, #0] # r0 = *screen_src_ptr = pixel_source + ldr r3, .L18042+8 # r3 = 0x4000200 + and r3, r0, r3 # r3 = (pixel_source & 0x400200) + cmp r3, sl # if(r3 == 0x4000200) + bne .L18023 # if not, don't perform blending + ldr r3, .L18042+12 # r3 = 0x3FE + mov r2, r0, lsr #15 # r2 = pixel_source >> 15 + and r3, r2, r3 # r3 = (pixel_source >> 15) & 0x3FE = low_color_i + ldrh r1, [r3, r7] # r1 = palette_ram_converted[low_color_i] = low_color + mov r0, r0, asl #23 # r0 = r0 << 23 + ldr ip, .L18042+16 # ip = 0x7EF81F + orr r1, r1, r1, asl #16 # r1 = (low_color << 16) | low_color = low_split + mov r0, r0, lsr #23 # r0 = pixel_source & 0x1FF + and ip, r1, ip # ip = low_split & 0x7EF81F = pixel_bottom + mov r0, r0, asl #1 # r0 = (pixel_source & 0x1FF) << 1 = high_color_i + ldrh r2, [r0, r7] # r2 = palette_ram_converted[high_color_i] = high_color + mul lr, fp, ip # lr = pixel_bottom * blend_b + ldr r3, .L18042+16 # r3 = 0x7EF81F + orr r2, r2, r2, asl #16 # r2 = (high_color << 16) | high_color = high_split + ldr r1, [sp, #0] # r1 = blend_a + and r3, r2, r3 # r3 = high_split & 0x7EF81F = pixel_top + mla r1, r3, r1, lr # r1 = (pixel_top * blend_a) + (pixel_bottom * blend_b) + ldr r2, .L18042+20 # r2 = 0x8010020 + mov r1, r1, lsr #4 # r1 = ((pixel_top * blend_a) + (pixel_bottom * blend_b)) >> 4 + and r2, r1, r2 # r2 = test any saturation on result + cmp r2, #0 # if(!saturation) + beq .L18025 # goto finish_iteration + tst r1, #134217728 + orrne r1, r1, #132120576 + tst r1, #65536 + orrne r1, r1, #63488 + tst r1, #32 + orrne r1, r1, #31 + +.L18025: # finish_iteration + ldr r3, .L18042+16 # r3 = 0x7EF81F + add r6, r6, #1 # i++ + and r3, r1, r3 # r3 = pixel_result_dilate & 0x7EF81F + orr r3, r3, r3, lsr #16 # r3 = (pixel_result_dilate >> 16) | pixel_result_dilate + cmp r8, r6 # *screen_dest_ptr = pixel_result + strh r3, [r5, #0] @ movhi # if(i != end) + bne .L18041 # goto next_iteration +.L18040: + add sp, sp, #4 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} + +.L18018: # blend w/o saturation + subs r9, r3, r2 + beq .L18040 + ldr sl, .L18042+4 + add r4, lr, r2, asl #1 + mov r7, #0 + add lr, r6, r2, asl #2 + b .L18035 +.L18036: + ldrh r3, [r3, sl] + strh r3, [r4, #0] @ movhi +.L18038: + add r7, r7, #1 + cmp r9, r7 + add lr, lr, #4 + add r4, r4, #2 + beq .L18040 + +.L18035: + ldr r1, [lr, #0] + ldr ip, .L18042+12 + mov r3, r1, asl #23 + ldr r0, .L18042+8 + mov r2, r1, lsr #15 + mov r3, r3, lsr #23 + and r0, r1, r0 + and ip, r2, ip + mov r2, r3, asl #1 + mov r3, r1, asl #23 + ldr r1, .L18042+8 + ldr r6, .L18042+16 + mov r3, r3, lsr #23 + cmp r0, r1 + mov r8, r6 + mov r5, r6 + mov r3, r3, asl #1 + bne .L18036 + ldrh r3, [ip, sl] + ldrh r2, [r2, sl] + orr r3, r3, r3, asl #16 + and r6, r3, r6 + mul r1, fp, r6 + orr r2, r2, r2, asl #16 + ldr r3, [sp, #0] + and r8, r2, r8 + mla r3, r8, r3, r1 + mov r3, r3, lsr #4 + and r5, r3, r5 + orr r2, r5, r5, lsr #16 + strh r2, [r4, #0] @ movhi + b .L18038 + +.L18043: + .align 2 + +.L18042: + .word io_registers + .word palette_ram_converted + .word 67109376 + .word 1022 + .word 132184095 + .word 134283296 + .size expand_blend, .-expand_blend + .align 2 + .global expand_darken + .type expand_darken, %function +expand_darken: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L18053 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + mov lr, r2 + ldrh r2, [ip, #84] + and r2, r2, #31 + rsb r2, r2, #16 + cmp r2, #0 + movge r8, r2 + movlt r8, #0 + subs r6, r3, lr + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} + mov r3, lr, asl #1 + ldr r7, .L18053+4 + add ip, r3, r1 + add r0, r3, r0 + mov r5, #0 +.L18047: + ldrh r3, [r0, #0] + ldr r4, .L18053+8 + mov r2, r3, asl #23 + mov r2, r2, lsr #23 + tst r3, #512 + mov r2, r2, asl #1 + mov r1, r3, asl #23 + ldrneh r3, [r2, r7] + mov lr, r4 + orrne r3, r3, r3, asl #16 + andne r4, r3, r4 + mulne r2, r8, r4 + mov r1, r1, lsr #23 + mov r1, r1, asl #1 + movne r2, r2, lsr #4 + andne lr, r2, lr + ldreqh r1, [r1, r7] + orrne r3, lr, lr, lsr #16 + add r5, r5, #1 + strneh r3, [ip, #0] @ movhi + streqh r1, [ip, #0] @ movhi + cmp r6, r5 + add r0, r0, #2 + add ip, ip, #2 + bne .L18047 + ldmfd sp!, {r4, r5, r6, r7, r8, pc} +.L18054: + .align 2 +.L18053: + .word io_registers + .word palette_ram_converted + .word 132184095 + .size expand_darken, .-expand_darken + .align 2 + .global expand_brighten + .type expand_brighten, %function +expand_brighten: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} + mov lr, r2 + ldr r2, .L18064 + ldr r7, .L18064+4 + ldrh ip, [r2, #84] + and ip, ip, #31 + cmp ip, #16 + movcs ip, #16 + rsb r2, ip, ip, asl #6 + add r2, ip, r2, asl #5 + rsb r2, r2, r2, asl #16 + mov r2, r2, lsr #4 + subs r6, r3, lr + and r7, r2, r7 + rsb r8, ip, #16 + ldmeqfd sp!, {r4, r5, r6, r7, r8, sl, pc} + mov r3, lr, asl #1 + ldr sl, .L18064+8 + add ip, r3, r1 + add r0, r3, r0 + mov r5, #0 +.L18058: + ldrh r3, [r0, #0] + ldr r4, .L18064+4 + mov r2, r3, asl #23 + mov r2, r2, lsr #23 + tst r3, #512 + mov r2, r2, asl #1 + mov r1, r3, asl #23 + ldrneh r3, [r2, sl] + mov lr, r4 + orrne r3, r3, r3, asl #16 + andne r4, r3, r4 + mulne r2, r4, r8 + mov r1, r1, lsr #23 + mov r1, r1, asl #1 + addne r2, r7, r2, lsr #4 + andne lr, r2, lr + ldreqh r1, [r1, sl] + orrne r3, lr, lr, lsr #16 + add r5, r5, #1 + strneh r3, [ip, #0] @ movhi + streqh r1, [ip, #0] @ movhi + cmp r6, r5 + add r0, r0, #2 + add ip, ip, #2 + bne .L18058 + ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} +.L18065: + .align 2 +.L18064: + .word io_registers + .word 132184095 + .word palette_ram_converted + .size expand_brighten, .-expand_brighten + .align 2 + .global expand_darken_partial_alpha + .type expand_darken_partial_alpha, %function +expand_darken_partial_alpha: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r4, .L18099 + mov r6, r0 + ldrh r0, [r4, #82] + ldrh lr, [r4, #84] + mov ip, r0, lsr #8 + and ip, ip, #31 + and r0, r0, #31 + sub sp, sp, #16 + cmp r0, #16 + movcs r0, #16 + cmp ip, #16 + movcs ip, #16 + and lr, lr, #31 + str r0, [sp, #4] + rsb lr, lr, #16 + add r0, ip, r0 + cmp lr, #0 + movlt lr, #0 + cmp r0, #16 + str ip, [sp, #8] + str lr, [sp, #0] + bls .L18067 + subs r8, r3, r2 + beq .L18093 + ldr r7, .L18099+4 + add r4, r6, r2, asl #2 + add r5, r1, r2, asl #1 + mov r6, #0 + b .L18071 +.L18095: + ldr r3, .L18099+8 + ldr r2, .L18099+8 + and r3, r0, r3 + cmp r3, r2 + beq .L18094 + mov r3, r0, asl #23 + mov r3, r3, lsr #23 + mov r3, r3, asl #1 + ldrh r2, [r3, r7] + ldr r1, .L18099+12 + orr r2, r2, r2, asl #16 + ldr r0, [sp, #0] + and r1, r2, r1 + mul r0, r1, r0 + ldr r3, .L18099+12 + mov r0, r0, lsr #4 + and r3, r0, r3 + orr r3, r3, r3, lsr #16 + strh r3, [r5, #0] @ movhi +.L18083: + add r6, r6, #1 + cmp r8, r6 + beq .L18093 +.L18096: + add r4, r4, #4 + add r5, r5, #2 +.L18071: + ldr r0, [r4, #0] + tst r0, #512 + bne .L18095 + mov r3, r0, asl #23 + mov r3, r3, lsr #23 + mov r3, r3, asl #1 + ldrh r3, [r3, r7] + add r6, r6, #1 + cmp r8, r6 + strh r3, [r5, #0] @ movhi + bne .L18096 +.L18093: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L18067: + subs r3, r3, r2 + str r3, [sp, #12] + beq .L18093 + ldr fp, .L18099+4 + add r4, r1, r2, asl #1 + add r0, r6, r2, asl #2 + mov sl, #0 + b .L18086 +.L18098: + ldr r5, .L18099+16 + mov r3, r1, lsr #15 + and r5, r3, r5 + mov r3, r1, asl #23 + mov r3, r3, lsr #23 + mov r7, r3, asl #1 + ldr r3, .L18099+8 + ldr r9, .L18099+12 + mov r2, r1, asl #23 + mov r2, r2, lsr #23 + cmp lr, r3 + mov r2, r2, asl #1 + mov r8, r9 + mov ip, r9 + mov r6, r9 + beq .L18097 + ldrh r3, [r2, fp] + ldr r2, [sp, #0] + orr r3, r3, r3, asl #16 + and ip, r3, r9 + mul r2, ip, r2 + mov r2, r2, lsr #4 + and r1, r2, r9 + orr r3, r1, r1, lsr #16 + strh r3, [r4, #0] @ movhi +.L18091: + ldr ip, [sp, #12] + add sl, sl, #1 + cmp ip, sl + add r0, r0, #4 + add r4, r4, #2 + beq .L18093 +.L18086: + ldr r1, [r0, #0] + ldr lr, .L18099+8 + mov r3, r1, asl #23 + mov r3, r3, lsr #23 + tst r1, #512 + and lr, r1, lr + mov r3, r3, asl #1 + bne .L18098 + ldrh r3, [r3, fp] + strh r3, [r4, #0] @ movhi + b .L18091 +.L18097: + ldrh r3, [r5, fp] + ldr r1, [sp, #8] + orr r3, r3, r3, asl #16 + and r9, r3, r9 + ldrh r2, [r7, fp] + mul r1, r9, r1 + orr r2, r2, r2, asl #16 + ldr r3, [sp, #4] + and r8, r2, r8 + mla r3, r8, r3, r1 + mov r3, r3, lsr #4 + and r6, r3, ip + orr r2, r6, r6, lsr #16 + strh r2, [r4, #0] @ movhi + b .L18091 +.L18094: + ldr r3, .L18099+16 + mov r2, r0, lsr #15 + and r3, r2, r3 + ldrh r1, [r3, r7] + mov r0, r0, asl #23 + ldr ip, .L18099+12 + orr r1, r1, r1, asl #16 + mov r0, r0, lsr #23 + ldr lr, [sp, #8] + and ip, r1, ip + mov r0, r0, asl #1 + ldrh r2, [r0, r7] + mul lr, ip, lr + ldr r3, .L18099+12 + orr r2, r2, r2, asl #16 + ldr r1, [sp, #4] + and r3, r2, r3 + mla r1, r3, r1, lr + ldr r2, .L18099+20 + mov r1, r1, lsr #4 + and r2, r1, r2 + cmp r2, #0 + beq .L18076 + tst r1, #134217728 + orrne r1, r1, #132120576 + tst r1, #65536 + orrne r1, r1, #63488 + tst r1, #32 + orrne r1, r1, #31 +.L18076: + ldr r3, .L18099+12 + and r3, r1, r3 + orr r3, r3, r3, lsr #16 + strh r3, [r5, #0] @ movhi + b .L18083 +.L18100: + .align 2 +.L18099: + .word io_registers + .word palette_ram_converted + .word 67109376 + .word 132184095 + .word 1022 + .word 134283296 + .size expand_darken_partial_alpha, .-expand_darken_partial_alpha + .align 2 + .global expand_brighten_partial_alpha + .type expand_brighten_partial_alpha, %function +expand_brighten_partial_alpha: + @ args = 0, pretend = 0, frame = 20 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L18134 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldrh r5, [ip, #84] + ldrh r4, [ip, #82] + and r5, r5, #31 + cmp r5, #16 + movge r5, #16 + mov lr, r4, lsr #8 + rsb ip, r5, r5, asl #6 + add ip, r5, ip, asl #5 + and lr, lr, #31 + and r4, r4, #31 + sub sp, sp, #20 + cmp r4, #16 + movcs r4, #16 + cmp lr, #16 + movcs lr, #16 + rsb ip, ip, ip, asl #16 + ldr r6, .L18134+4 + str lr, [sp, #12] + mov ip, ip, asr #4 + add lr, lr, r4 + and r6, ip, r6 + rsb r5, r5, #16 + cmp lr, #16 + str r4, [sp, #8] + str r6, [sp, #0] + str r5, [sp, #4] + bls .L18102 + subs r8, r3, r2 + beq .L18128 + ldr r7, .L18134+8 + add r4, r1, r2, asl #1 + add r5, r0, r2, asl #2 + mov r6, #0 + b .L18106 +.L18130: + ldr r3, .L18134+12 + ldr r2, .L18134+12 + and r3, r0, r3 + cmp r3, r2 + beq .L18129 + mov r3, r0, asl #23 + mov r3, r3, lsr #23 + mov r3, r3, asl #1 + ldrh r2, [r3, r7] + ldr r1, .L18134+4 + orr r2, r2, r2, asl #16 + ldr r0, [sp, #4] + and r1, r2, r1 + mul r0, r1, r0 + ldr lr, [sp, #0] + ldr r3, .L18134+4 + add r0, lr, r0, lsr #4 + and r3, r0, r3 + orr r3, r3, r3, lsr #16 + strh r3, [r4, #0] @ movhi +.L18118: + add r6, r6, #1 + cmp r8, r6 + beq .L18128 +.L18131: + add r5, r5, #4 + add r4, r4, #2 +.L18106: + ldr r0, [r5, #0] + tst r0, #512 + bne .L18130 + mov r3, r0, asl #23 + mov r3, r3, lsr #23 + mov r3, r3, asl #1 + ldrh r3, [r3, r7] + add r6, r6, #1 + cmp r8, r6 + strh r3, [r4, #0] @ movhi + bne .L18131 +.L18128: + add sp, sp, #20 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L18102: + subs r3, r3, r2 + str r3, [sp, #16] + beq .L18128 + ldr fp, .L18134+8 + add r5, r1, r2, asl #1 + add r0, r0, r2, asl #2 + mov sl, #0 + b .L18121 +.L18133: + ldr r4, .L18134+16 + mov r3, r1, lsr #15 + and r4, r3, r4 + mov r3, r1, asl #23 + mov r3, r3, lsr #23 + mov r7, r3, asl #1 + ldr r3, .L18134+12 + ldr r9, .L18134+4 + mov r2, r1, asl #23 + mov r2, r2, lsr #23 + cmp lr, r3 + mov r2, r2, asl #1 + mov r8, r9 + mov ip, r9 + beq .L18132 + ldrh r3, [r2, fp] + ldr r2, [sp, #4] + orr r3, r3, r3, asl #16 + and ip, r3, r9 + mul r2, ip, r2 + ldr r4, [sp, #0] + add r2, r4, r2, lsr #4 + and r1, r2, r9 + orr r3, r1, r1, lsr #16 + strh r3, [r5, #0] @ movhi +.L18126: + ldr r6, [sp, #16] + add sl, sl, #1 + cmp r6, sl + add r0, r0, #4 + add r5, r5, #2 + beq .L18128 +.L18121: + ldr r1, [r0, #0] + ldr lr, .L18134+12 + mov r3, r1, asl #23 + mov r3, r3, lsr #23 + tst r1, #512 + and lr, r1, lr + mov r3, r3, asl #1 + bne .L18133 + ldrh r3, [r3, fp] + strh r3, [r5, #0] @ movhi + b .L18126 +.L18132: + ldrh r3, [r4, fp] + ldr r1, [sp, #12] + orr r3, r3, r3, asl #16 + and r9, r3, r9 + ldrh r2, [r7, fp] + mul r1, r9, r1 + orr r2, r2, r2, asl #16 + ldr r3, [sp, #8] + and r8, r2, r8 + mla r3, r8, r3, r1 + mov r3, r3, lsr #4 + and r6, r3, ip + orr r2, r6, r6, lsr #16 + strh r2, [r5, #0] @ movhi + b .L18126 +.L18129: + ldr r3, .L18134+16 + mov r2, r0, lsr #15 + and r3, r2, r3 + ldrh r1, [r3, r7] + mov r0, r0, asl #23 + ldr ip, .L18134+4 + orr r1, r1, r1, asl #16 + mov r0, r0, lsr #23 + ldr lr, [sp, #12] + and ip, r1, ip + mov r0, r0, asl #1 + ldrh r2, [r0, r7] + mul lr, ip, lr + ldr r3, .L18134+4 + orr r2, r2, r2, asl #16 + ldr r1, [sp, #8] + and r3, r2, r3 + mla r1, r3, r1, lr + ldr r2, .L18134+20 + mov r1, r1, lsr #4 + and r2, r1, r2 + cmp r2, #0 + beq .L18111 + tst r1, #134217728 + orrne r1, r1, #132120576 + tst r1, #65536 + orrne r1, r1, #63488 + tst r1, #32 + orrne r1, r1, #31 +.L18111: + ldr r3, .L18134+4 + and r3, r1, r3 + orr r3, r3, r3, lsr #16 + strh r3, [r4, #0] @ movhi + b .L18118 +.L18135: + .align 2 +.L18134: + .word io_registers + .word 132184095 + .word palette_ram_converted + .word 67109376 + .word 1022 + .word 134283296 + .size expand_brighten_partial_alpha, .-expand_brighten_partial_alpha + .align 2 + .global render_scanline_bitmap + .type render_scanline_bitmap, %function +render_scanline_bitmap: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L18153 + and r2, r1, #7 + ldrh ip, [r3, #0] + ldr r3, .L18153+4 + stmfd sp!, {r4, r5, r6, r7, r8, sl, lr} + add sl, r3, r2, asl #2 + mov r4, r0 + mov r3, #0 +.L18137: + strh ip, [r3, r4] @ movhi + add r3, r3, #2 + cmp r3, #480 + bne .L18137 + ldr r8, .L18153+8 + ldr r3, [r8, #0] + cmp r3, #0 + ldmeqfd sp!, {r4, r5, r6, r7, r8, sl, pc} + ldr r6, .L18153+12 + and r7, r1, #64 + mov r5, #0 + b .L18141 +.L18152: + bl render_scanline_obj_normal_1D +.L18146: + ldr r3, [r8, #0] + add r5, r5, #1 + cmp r3, r5 + add r6, r6, #4 + bls .L18151 +.L18141: + ldr ip, [r6, #0] + mov r1, #240 + ands r0, ip, #4 + mov r2, r4 + beq .L18142 + sub r1, r1, #240 + bic ip, ip, #4 + cmp r7, r1 + mov r2, #240 + mov r3, r4 + mov r0, ip + bne .L18152 + mov r3, r4 + mov r0, ip + mov r1, r7 + mov r2, #240 + bl render_scanline_obj_normal_2D + ldr r3, [r8, #0] + add r5, r5, #1 + cmp r3, r5 + add r6, r6, #4 + bhi .L18141 +.L18151: + ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc} +.L18142: + mov lr, pc + ldr pc, [sl, #0] + b .L18146 +.L18154: + .align 2 +.L18153: + .word palette_ram_converted + .word bitmap_mode_renderers-12 + .word layer_count + .word layer_order + .size render_scanline_bitmap, .-render_scanline_bitmap + .align 2 + .global render_scanline_conditional_bitmap + .type render_scanline_conditional_bitmap, %function +render_scanline_conditional_bitmap: + @ args = 12, pretend = 0, frame = 4 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + mov ip, r3 + ldr r3, .L18173 + cmp r0, r1 + mov r6, r0 + sub sp, sp, #4 + mov r7, r1 + mov r8, r2 + ldrh r0, [r3, #0] + bcs .L18156 + add r2, r2, r6, asl #1 + mov r3, #0 + rsb r1, r6, r1 +.L18158: + add r3, r3, #1 + cmp r1, r3 + strh r0, [r2], #2 @ movhi + bne .L18158 +.L18156: + ldr fp, .L18173+4 + ldr r3, [fp, #0] + cmp r3, #0 + beq .L18169 + ldr r3, [sp, #40] + ldr r5, .L18173+8 + and r3, r3, #64 + and r9, ip, #16 + and sl, ip, #4 + mov r4, #0 + str r3, [sp, #0] + b .L18161 +.L18172: + cmp r9, #0 + bic ip, r0, #4 + beq .L18164 + ldr lr, [sp, #0] + mov r0, ip + cmp lr, #0 + mov r1, r6 + mov r2, r7 + mov r3, r8 + beq .L18166 + bl render_scanline_obj_normal_1D +.L18164: + ldr r3, [fp, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bls .L18169 +.L18161: + ldr r0, [r5, #0] + tst r0, #4 + bne .L18172 + cmp sl, #0 + mov r0, r6 + mov r1, r7 + mov r2, r8 + beq .L18164 + ldr r3, [sp, #48] + mov lr, pc + ldr pc, [r3, #0] + ldr r3, [fp, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bhi .L18161 +.L18169: + add sp, sp, #4 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L18166: + mov r0, ip + mov r1, r6 + mov r2, r7 + mov r3, r8 + bl render_scanline_obj_normal_2D + b .L18164 +.L18174: + .align 2 +.L18173: + .word palette_ram_converted + .word layer_count + .word layer_order + .size render_scanline_conditional_bitmap, .-render_scanline_conditional_bitmap + .align 2 + .global set_gba_resolution + .type set_gba_resolution, %function +set_gba_resolution: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r2, .L18180 + @ lr needed for prologue + ldr r3, [r2, #0] + cmp r3, r0 + bxeq lr + cmp r0, #2 + str r0, [r2, #0] + bxhi lr + ldr r3, .L18180+4 + mov r2, #240 + str r2, [r3, #0] + ldr r3, .L18180+8 + mov r1, #160 + str r1, [r3, #0] + bx lr +.L18181: + .align 2 +.L18180: + .word screen_scale + .word small_resolution_width + .word small_resolution_height + .size set_gba_resolution, .-set_gba_resolution + .align 2 + .global clear_screen + .type clear_screen, %function +clear_screen: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L18192 + stmfd sp!, {r4, lr} + ldr r2, [r3, #0] + mov r0, r0, asl #16 + ldrh r3, [r2, #16] + ldr r1, [r2, #8] + ldr r4, [r2, #12] + rsb ip, r1, r3, lsr #1 + ldr r3, [r2, #20] + cmp r4, #0 + movne lr, ip, asl #1 + mov r0, r0, lsr #16 + movne r2, r3 + movne ip, #0 + ldmeqfd sp!, {r4, pc} +.L18185: + cmp r1, #0 + movne r3, #0 + beq .L18188 +.L18187: + add r3, r3, #1 + cmp r1, r3 + strh r0, [r2], #2 @ movhi + bhi .L18187 +.L18188: + add ip, ip, #1 + cmp r4, ip + ldmlsfd sp!, {r4, pc} + add r2, r2, lr + b .L18185 +.L18193: + .align 2 +.L18192: + .word screen + .size clear_screen, .-clear_screen + .align 2 + .global blit_to_screen + .type blit_to_screen, %function +blit_to_screen: + @ args = 4, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, lr} + mov r4, r1 + ldr r1, .L18206 + subs r7, r2, #0 + ldr ip, [r1, #0] + mov lr, r3 + ldrh r2, [ip, #16] + ldr ip, [ip, #20] + mov r2, r2, lsr #1 + rsb r1, r4, r2 + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} + ldr r3, [sp, #24] + mov r6, r1, asl #1 + mla r2, r3, r2, lr + mov r5, r4, asl #1 + add r2, ip, r2, asl #1 + mov r3, #0 +.L18197: + cmp r4, #0 + movne lr, r2 + movne ip, r0 + movne r1, #0 + beq .L18201 +.L18199: + add r1, r1, #1 + ldrh r8, [ip], #2 + cmp r4, r1 + strh r8, [lr], #2 @ movhi + bne .L18199 + add r2, r2, r5 + add r0, r0, r5 +.L18201: + add r3, r3, #1 + cmp r7, r3 + ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} + add r2, r2, r6 + b .L18197 +.L18207: + .align 2 +.L18206: + .word screen + .size blit_to_screen, .-blit_to_screen + .align 2 + .global print_string_ext + .type print_string_ext, %function +print_string_ext: + @ args = 16, pretend = 0, frame = 12 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr ip, .L18247 + sub sp, sp, #12 + ldr sl, [sp, #48] + ldr r4, [ip, #0] + add lr, sl, #10 + cmp lr, r4 + mov r1, r1, asl #16 + mov r2, r2, asl #16 + mov fp, r0 + mov r9, r3 + mov r4, r1, lsr #16 + mov lr, r2, lsr #16 + ldrb ip, [r0, #0] @ zero_extendqisi2 + bcs .L18240 + cmp ip, #0 + beq .L18240 + ldr r2, .L18247+4 + ldr r0, [sp, #56] + ldr r2, [r2, #0] + ldr r3, .L18247+8 + mla r0, sl, r0, r9 + ldr r3, [r3, #0] + str r2, [sp, #0] + ldr r2, [sp, #56] + str r3, [sp, #8] + add r1, r2, r2, asl #2 + ldr r3, [sp, #52] + mov r1, r1, asl #2 + str r1, [sp, #4] + add r6, r3, r0, asl #1 + mov r1, r2, asl #1 + mov r5, r9 + mov r7, #0 + mov r8, #1 +.L18212: + cmp ip, #10 + beq .L18246 + ldr r3, .L18247+12 + mov r0, r6 + ldr r2, [r3, ip, asl #2] + ldr r3, .L18247+16 + mov ip, #0 + add r2, r3, r2, asl #1 +.L18216: + ldrh r3, [r2, #0] + add ip, ip, #1 + tst r3, #32768 + streqh lr, [r0, #0] @ movhi + strneh r4, [r0, #0] @ movhi + tst r3, #16384 + streqh lr, [r0, #2] @ movhi + strneh r4, [r0, #2] @ movhi + tst r3, #8192 + streqh lr, [r0, #4] @ movhi + strneh r4, [r0, #4] @ movhi + tst r3, #4096 + streqh lr, [r0, #6] @ movhi + strneh r4, [r0, #6] @ movhi + tst r3, #2048 + streqh lr, [r0, #8] @ movhi + strneh r4, [r0, #8] @ movhi + tst r3, #1024 + strneh r4, [r0, #10] @ movhi + streqh lr, [r0, #10] @ movhi + cmp ip, #10 + add r0, r0, r1 + add r2, r2, #2 + bne .L18216 + add r3, r1, r6 + add r2, r1, r1, asl #3 + add r3, r3, r2 + ldr r2, [sp, #4] + add r5, r5, #6 + rsb r3, r2, r3 + add r6, r3, #12 +.L18215: + ldrb ip, [fp, r8] @ zero_extendqisi2 + ldr r0, [sp, #60] + add r7, r7, #1 + cmp r7, r0 + movcs r3, #0 + movcc r3, #1 + cmp ip, #0 + movne r3, #0 + ldr r2, [sp, #8] + cmp r3, #0 + add r3, r5, #6 + movne ip, #32 + addeq r8, r8, #1 + cmp r3, r2 + bcs .L18240 + cmp ip, #0 + bne .L18212 +.L18240: + add sp, sp, #12 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L18246: + ldr r2, [sp, #56] + add sl, sl, #10 + mla r2, sl, r2, r9 + ldr r0, [sp, #0] + mov r5, r9 + ldr r3, [r0, #20] + add r6, r3, r2, asl #1 + b .L18215 +.L18248: + .align 2 +.L18247: + .word resolution_height + .word screen + .word resolution_width + .word _font_offset + .word _font_bits + .size print_string_ext, .-print_string_ext + .align 2 + .global debug_screen_clear + .type debug_screen_clear, %function +debug_screen_clear: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + @ lr needed for prologue + bx lr + .size debug_screen_clear, .-debug_screen_clear + .align 2 + .global debug_screen_start + .type debug_screen_start, %function +debug_screen_start: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + @ lr needed for prologue + bx lr + .size debug_screen_start, .-debug_screen_start + .align 2 + .global debug_screen_end + .type debug_screen_end, %function +debug_screen_end: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + @ lr needed for prologue + bx lr + .size debug_screen_end, .-debug_screen_end + .align 2 + .global debug_screen_update + .type debug_screen_update, %function +debug_screen_update: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + @ lr needed for prologue + bx lr + .size debug_screen_update, .-debug_screen_update + .align 2 + .global video_write_mem_savestate + .type video_write_mem_savestate, %function +video_write_mem_savestate: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, lr} + ldr r4, .L18259 + ldr r1, .L18259+4 + mov r2, #8 + ldr r0, [r4, #0] + bl memcpy + ldr r3, [r4, #0] + ldr r1, .L18259+8 + add r3, r3, #8 + mov r0, r3 + mov r2, #8 + str r3, [r4, #0] + bl memcpy + ldr r3, [r4, #0] + add r3, r3, #8 + str r3, [r4, #0] + ldmfd sp!, {r4, pc} +.L18260: + .align 2 +.L18259: + .word write_mem_ptr + .word affine_reference_x + .word affine_reference_y + .size video_write_mem_savestate, .-video_write_mem_savestate + .align 2 + .global video_read_savestate + .type video_read_savestate, %function +video_read_savestate: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, lr} + mov r3, r0 + mov r4, r0 + mov r1, #8 + mov r2, #1 + ldr r0, .L18263 + bl fread + ldr r0, .L18263+4 + mov r3, r4 + mov r1, #8 + mov r2, #1 + ldmfd sp!, {r4, lr} + b fread +.L18264: + .align 2 +.L18263: + .word affine_reference_x + .word affine_reference_y + .size video_read_savestate, .-video_read_savestate + .section .rodata.str1.4,"aMS",%progbits,1 + .align 2 +.LC0: + .ascii "\012\000" + .text + .align 2 + .global debug_screen_newline + .type debug_screen_newline, %function +debug_screen_newline: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L18267 + ldr r1, .L18267+4 + ldr r0, [r3, #0] + @ lr needed for prologue + b fprintf +.L18268: + .align 2 +.L18267: + .word stderr + .word .LC0 + .size debug_screen_newline, .-debug_screen_newline + .align 2 + .global debug_screen_printf + .type debug_screen_printf, %function +debug_screen_printf: + @ args = 4, pretend = 16, frame = 4 + @ frame_needed = 0, uses_anonymous_args = 1 + stmfd sp!, {r0, r1, r2, r3} + str lr, [sp, #-4]! + ldr r3, .L18271 + sub sp, sp, #4 + add ip, sp, #12 + ldr r0, [r3, #0] + mov r2, ip + ldr r1, [sp, #8] + str ip, [sp, #0] + bl vfprintf + add sp, sp, #4 + ldr lr, [sp], #4 + add sp, sp, #16 + bx lr +.L18272: + .align 2 +.L18271: + .word stderr + .size debug_screen_printf, .-debug_screen_printf + .align 2 + .global debug_screen_printl + .type debug_screen_printl, %function +debug_screen_printl: + @ args = 4, pretend = 16, frame = 4 + @ frame_needed = 0, uses_anonymous_args = 1 + stmfd sp!, {r0, r1, r2, r3} + str lr, [sp, #-4]! + sub sp, sp, #4 + add r3, sp, #12 + ldr r0, [sp, #8] + mov r1, r3 + str r3, [sp, #0] + bl debug_screen_printf + ldr r0, .L18275 + bl debug_screen_printf + add sp, sp, #4 + ldr lr, [sp], #4 + add sp, sp, #16 + bx lr +.L18276: + .align 2 +.L18275: + .word .LC0 + .size debug_screen_printl, .-debug_screen_printl + .align 2 + .global copy_screen + .type copy_screen, %function +copy_screen: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, lr} + mov r0, #76800 + bl malloc + ldr r3, .L18279 + mov r2, #76800 + ldr ip, [r3, #0] + mov r4, r0 + ldr r1, [ip, #20] + bl memcpy + mov r0, r4 + ldmfd sp!, {r4, pc} +.L18280: + .align 2 +.L18279: + .word screen + .size copy_screen, .-copy_screen + .align 2 + .global video_resolution_small + .type video_resolution_small, %function +video_resolution_small: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, lr} + ldr r4, .L18286 + ldr r3, .L18286+4 + ldr r2, [r4, #0] + ldr r7, .L18286+8 + sub sp, sp, #16 + str r2, [r3, #0] + ldr r0, [r7, #0] + bl SDL_FreeSurface + mov r0, #0 + mov r1, r0 + bl SDL_GP2X_AllowGfxMemory + ldr r3, [r4, #0] + ldr r6, .L18286+12 + ldr r5, .L18286+16 + cmp r3, #0 + mov r1, #320 + mov r0, r1 + mov r2, #16 + ldrne r1, [r5, #0] + ldrne r0, [r6, #0] + mov r3, #1 + bl SDL_SetVideoMode + ldr r3, .L18286+20 + ldr ip, .L18286+24 + str r0, [r3, #0] + ldr r1, [r6, #0] + ldr r2, [r5, #0] + mov r3, #16 + mov r4, #0 + mov r0, #1 + str ip, [sp, #8] + str ip, [sp, #0] + str ip, [sp, #4] + str r4, [sp, #12] + bl SDL_CreateRGBSurface + str r0, [r7, #0] + mov r0, r4 + bl SDL_ShowCursor + bl gp2x_load_mmuhack + ldr r1, [r6, #0] + ldr r0, [r5, #0] + ldr r3, .L18286+28 + ldr r2, .L18286+32 + str r1, [r3, #0] + str r0, [r2, #0] + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, pc} +.L18287: + .align 2 +.L18286: + .word screen_scale + .word current_scale + .word screen + .word small_resolution_width + .word small_resolution_height + .word hw_screen + .word 65535 + .word resolution_width + .word resolution_height + .size video_resolution_small, .-video_resolution_small + .align 2 + .global video_resolution_large + .type video_resolution_large, %function +video_resolution_large: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, lr} + ldr r3, .L18290 + ldr r5, .L18290+4 + mov r4, #0 + sub sp, sp, #16 + str r4, [r3, #0] + ldr r0, [r5, #0] + bl SDL_FreeSurface + mov r0, r4 + mov r1, r4 + bl SDL_GP2X_AllowGfxMemory + mov r1, #240 + mov r2, #16 + mov r3, #1 + mov r0, #320 + bl SDL_SetVideoMode + ldr r3, .L18290+8 + ldr ip, .L18290+12 + str r0, [r3, #0] + mov r1, #320 + mov r2, #240 + mov r3, #16 + mov r0, #1 + str ip, [sp, #8] + str ip, [sp, #0] + str ip, [sp, #4] + str r4, [sp, #12] + bl SDL_CreateRGBSurface + ldr r3, .L18290+16 + mov r2, #320 + str r2, [r3, #0] + ldr r3, .L18290+20 + mov r1, #240 + str r0, [r5, #0] + str r1, [r3, #0] + mov r0, r4 + bl SDL_ShowCursor + add sp, sp, #16 + ldmfd sp!, {r4, r5, lr} + b gp2x_load_mmuhack +.L18291: + .align 2 +.L18290: + .word current_scale + .word screen + .word hw_screen + .word 65535 + .word resolution_width + .word resolution_height + .size video_resolution_large, .-video_resolution_large + .align 2 + .global init_video + .type init_video, %function +init_video: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, lr} + ldr r0, .L18294 + sub sp, sp, #16 + bl SDL_Init + mov r0, #0 + mov r1, r0 + bl SDL_GP2X_AllowGfxMemory + mov r1, #240 + mov r2, #16 + mov r3, #1 + mov r0, #320 + bl SDL_SetVideoMode + ldr r3, .L18294+4 + ldr ip, .L18294+8 + str r0, [r3, #0] + mov r4, #0 + mov r1, #240 + mov r2, #160 + mov r3, #16 + mov r0, #1 + str ip, [sp, #8] + str ip, [sp, #0] + str ip, [sp, #4] + str r4, [sp, #12] + bl SDL_CreateRGBSurface + ldr r3, .L18294+12 + str r0, [r3, #0] + bl gp2x_load_mmuhack + mov r0, r4 + add sp, sp, #16 + ldmfd sp!, {r4, lr} + b SDL_ShowCursor +.L18295: + .align 2 +.L18294: + .word 1049120 + .word hw_screen + .word 65535 + .word screen + .size init_video, .-init_video + .align 2 + .global flip_screen + .type flip_screen, %function +flip_screen: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, lr} + ldr r2, .L18304 + mov r1, #0 + ldr r0, [r2, #0] + sub sp, sp, #16 + cmp r0, r1 + mov r3, r1 + bne .L18297 + ldr r2, .L18304+4 + ldr r0, .L18304+8 + ldr ip, [r2, #0] + ldr r2, [r0, #0] + cmp ip, r2 + beq .L18303 +.L18297: + ldr r2, .L18304+12 + ldr ip, .L18304+16 + ldr r0, [r2, #0] + ldr r2, [ip, #0] + bl SDL_UpperBlit +.L18302: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, pc} +.L18303: + ldr r2, .L18304+20 + ldr r0, .L18304+24 + ldr ip, [r2, #0] + ldr r2, [r0, #0] + cmp ip, r2 + bne .L18297 + ldr ip, .L18304+28 + ldr r3, .L18304+12 + ldr r1, .L18304+16 + ldmia ip, {r4-r5} + str r4, [sp, #8] + str r5, [sp, #12] + ldr r4, .L18304+32 + ldr r2, [r1, #0] + ldr r0, [r3, #0] + add r1, sp, #8 + mov r3, sp + ldmia r4, {r5-r6} + stmia sp, {r5-r6} + bl SDL_UpperBlit + b .L18302 +.L18305: + .align 2 +.L18304: + .word screen_scale + .word resolution_width + .word small_resolution_width + .word screen + .word hw_screen + .word resolution_height + .word small_resolution_height + .word C.626.17650 + .word C.627.17651 + .size flip_screen, .-flip_screen + .align 2 + .global update_screen + .type update_screen, %function +update_screen: + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, lr} + ldr r2, .L18315 + mov r1, #0 + ldr r0, [r2, #0] + sub sp, sp, #16 + cmp r0, r1 + mov r3, r1 + bne .L18313 + ldr r2, .L18315+4 + ldr r0, [r2, #0] + cmp r0, r1 + bne .L18309 + ldr r2, .L18315+8 + ldr r0, .L18315+12 + ldr ip, [r2, #0] + ldr r2, [r0, #0] + cmp ip, r2 + beq .L18314 +.L18309: + ldr r2, .L18315+16 + ldr ip, .L18315+20 + ldr r0, [r2, #0] + ldr r2, [ip, #0] + bl SDL_UpperBlit +.L18313: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, pc} +.L18314: + ldr r2, .L18315+24 + ldr r0, .L18315+28 + ldr ip, [r2, #0] + ldr r2, [r0, #0] + cmp ip, r2 + bne .L18309 + ldr ip, .L18315+32 + ldr r3, .L18315+16 + ldr r1, .L18315+20 + ldmia ip, {r4-r5} + str r4, [sp, #8] + str r5, [sp, #12] + ldr r4, .L18315+36 + ldr r2, [r1, #0] + ldr r0, [r3, #0] + add r1, sp, #8 + mov r3, sp + ldmia r4, {r5-r6} + stmia sp, {r5-r6} + bl SDL_UpperBlit + b .L18313 +.L18316: + .align 2 +.L18315: + .word skip_next_frame + .word screen_scale + .word resolution_width + .word small_resolution_width + .word screen + .word hw_screen + .word resolution_height + .word small_resolution_height + .word C.626.17650 + .word C.627.17651 + .size update_screen, .-update_screen + .align 2 + .global render_scanline_conditional_tile + .type render_scanline_conditional_tile, %function +render_scanline_conditional_tile: + @ args = 12, pretend = 0, frame = 976 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r9, .L18810 + sub sp, sp, #976 + ldr lr, [r9, #0] + mov r6, r0 + cmp lr, #0 + mov r8, r1 + mov sl, r2 + mov r7, r3 + ldr fp, [sp, #1012] + ldr r0, [sp, #1016] + beq .L18318 + tst r3, #31 + bne .L18774 +.L18318: + mov r3, r0, lsr #6 + and r2, r3, #3 + ldr r3, .L18810+4 + cmp r2, #2 + ldrh ip, [r3, #0] + beq .L18660 + cmp r2, #3 + beq .L18775 +.L18659: + mov r3, ip, asl #16 + cmp r6, r8 + mov r3, r3, lsr #16 + bcs .L18666 + rsb r1, r6, r8 + add r0, sl, r6, asl #1 + mov ip, #0 +.L18665: + add ip, ip, #1 + cmp ip, r1 + strh r3, [r0], #2 @ movhi + bne .L18665 +.L18666: + add sp, sp, #976 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L18774: + ldr r1, .L18810+8 + ldr r2, .L18810+12 + ldrh r3, [r1, #6] + ldr r1, [r2, r3, asl #2] + cmp r1, #0 + bne .L18776 +.L18454: + mov r3, r0, lsr #6 + and r3, r3, #3 + cmp r3, #2 + beq .L18488 + cmp r3, #3 + beq .L18489 + cmp r3, #1 + beq .L18777 +.L18486: + ldr r1, .L18810+24 + ands r3, r7, #16 + ldr ip, [r1, #0] + moveq r4, r3 + ldreq r2, .L18810+24 + beq .L18626 + ldr r2, .L18810+24 + mov r4, #0 +.L18638: + tst ip, #4 + mov r3, #1 + bne .L18642 + ands r5, r7, r3, asl ip + bne .L18778 + add r4, r4, #1 + cmp lr, r4 + ldr ip, [r2, #4]! + bne .L18638 + ldr r3, .L18810+4 + cmp r6, r8 + ldrh r3, [r3, #0] + bcs .L18666 + rsb r1, r6, r8 + add r0, sl, r6, asl #1 + mov ip, r5 +.L18641: + add ip, ip, #1 + cmp ip, r1 + strh r3, [r0], #2 @ movhi + bne .L18641 + b .L18666 +.L18660: + ldr r2, .L18810+8 + ldrh r3, [r2, #80] + tst r3, #32 + beq .L18659 + ldrh r3, [r2, #84] + ldr r1, .L18810+16 + and r3, r3, #31 + cmp r3, #16 + movcs r3, #16 + orr r2, ip, ip, asl #16 + and r1, r2, r1 + rsb r0, r3, #16 + rsb r2, r3, r3, asl #6 + mul ip, r1, r0 + add r3, r3, r2, asl #5 + rsb r3, r3, r3, asl #16 + ldr r1, .L18810+16 + mov r3, r3, lsr #4 + and r1, r3, r1 + ldr r2, .L18810+16 + add r1, r1, ip, lsr #4 + and r2, r1, r2 + orr ip, r2, r2, lsr #16 + b .L18659 +.L18775: + ldr r2, .L18810+8 + ldrh r3, [r2, #80] + tst r3, #32 + beq .L18659 + ldrh r3, [r2, #84] + ldr r0, .L18810+16 + and r3, r3, #31 + orr r2, ip, ip, asl #16 + rsb r3, r3, #16 + and r0, r2, r0 + cmp r3, #0 + movlt r3, #0 + mul r1, r3, r0 + ldr r2, .L18810+16 + mov r1, r1, lsr #4 + and r2, r1, r2 + orr ip, r2, r2, lsr #16 + b .L18659 +.L18776: + mov r3, r0, lsr #6 + and r3, r3, #3 + cmp r3, #2 + beq .L18325 + cmp r3, #3 + beq .L18326 + cmp r3, #1 + beq .L18779 +.L18323: + ldr r5, .L18810+24 + ands r3, r7, #16 + ldr r2, [r5, #0] + moveq r4, r3 + ldreq r1, .L18810+24 + beq .L18452 + ldr r1, .L18810+24 + mov r4, #0 +.L18465: + tst r2, #4 + mov r3, #1 + bne .L18780 + ands r3, r7, r3, asl r2 + bne .L18781 + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18465 + cmp r6, r8 + bcs .L18499 + add r5, sp, #16 + add r2, r5, r6, asl #2 + rsb r1, r6, r8 + mov r0, r3 +.L18468: + add r3, r3, #1 + cmp r1, r3 + str r0, [r2], #4 + bne .L18468 +.L18499: + add r0, sp, #16 + mov r1, sl + mov r2, r6 + mov r3, r8 + bl expand_blend + b .L18666 +.L18452: + tst r2, #4 + bne .L18451 + mov r3, #1 + ands r3, r7, r3, asl r2 + bne .L18782 +.L18451: + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18452 + cmp r6, r8 + bcs .L18499 + add r0, sp, #16 + mov r3, #0 + add r2, r0, r6, asl #2 + rsb r1, r6, r8 + mov r0, r3 +.L18456: + add r3, r3, #1 + cmp r3, r1 + str r0, [r2], #4 + bne .L18456 + b .L18499 +.L18626: + tst ip, #4 + bne .L18625 + mov r3, #1 + ands r3, r7, r3, asl ip + bne .L18783 +.L18625: + add r4, r4, #1 + cmp lr, r4 + ldr ip, [r2, #4]! + bne .L18626 + ldr r3, .L18810+4 + cmp r6, r8 + ldrh r3, [r3, #0] + bcs .L18666 + rsb r1, r6, r8 + add r0, sl, r6, asl #1 + mov ip, #0 +.L18629: + add ip, ip, #1 + cmp ip, r1 + strh r3, [r0], #2 @ movhi + bne .L18629 + b .L18666 +.L18777: + tst r7, #32 + beq .L18486 + ldr r5, .L18810+8 + ldr r3, .L18810+20 + ldrh r2, [r5, #82] + and r3, r2, r3 + cmp r3, #31 + beq .L18486 + ldrh r3, [r5, #80] + tst r3, #63 + beq .L18486 + tst r3, #16128 + beq .L18486 + ldr r0, .L18810+24 + ands r3, r7, #16 + ldr r2, [r0, #0] + moveq r4, r3 + ldreq r1, .L18810+24 + beq .L18497 + ldr r1, .L18810+24 + mov r5, #0 +.L18510: + tst r2, #4 + mov r3, #1 + bne .L18784 + ands r3, r7, r3, asl r2 + bne .L18785 + add r5, r5, #1 + cmp lr, r5 + ldr r2, [r1, #4]! + bne .L18510 + cmp r6, r8 + bcs .L18499 + add r5, sp, #16 + add r2, r5, r6, asl #2 + rsb r1, r6, r8 + mov r0, r3 +.L18513: + add r3, r3, #1 + cmp r1, r3 + str r0, [r2], #4 + bne .L18513 + b .L18499 +.L18779: + tst r7, #32 + beq .L18323 + ldr r3, .L18810+8 + ldrh r2, [r3, #82] + ldr r3, .L18810+20 + and r3, r2, r3 + cmp r3, #31 + beq .L18323 + ldr r5, .L18810+8 + ldrh r3, [r5, #80] + tst r3, #63 + beq .L18323 + tst r3, #16128 + beq .L18323 + ldr r0, .L18810+24 + ands r3, r7, #16 + ldr r2, [r0, #0] + moveq r4, r3 + ldreq r1, .L18810+24 + beq .L18334 + ldr r1, .L18810+24 + mov r5, #0 +.L18347: + tst r2, #4 + mov r3, #1 + bne .L18786 + ands r3, r7, r3, asl r2 + bne .L18787 + add r5, r5, #1 + cmp lr, r5 + ldr r2, [r1, #4]! + bne .L18347 + cmp r6, r8 + bcs .L18499 + add r5, sp, #16 + add r2, r5, r6, asl #2 + rsb r1, r6, r8 + mov r0, r3 +.L18350: + add r3, r3, #1 + cmp r3, r1 + str r0, [r2], #4 + bne .L18350 + b .L18499 +.L18497: + tst r2, #4 + bne .L18496 + mov r3, #1 + ands r3, r7, r3, asl r2 + bne .L18788 +.L18496: + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18497 + cmp r6, r8 + bcs .L18499 + add r1, sp, #16 + mov r3, #0 + add r2, r1, r6, asl #2 + mov r0, r3 + rsb r1, r6, r8 +.L18501: + add r3, r3, #1 + cmp r3, r1 + str r0, [r2], #4 + bne .L18501 + b .L18499 +.L18334: + tst r2, #4 + bne .L18333 + mov r3, #1 + ands r3, r7, r3, asl r2 + bne .L18789 +.L18333: + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18334 + cmp r6, r8 + bcs .L18499 + add r1, sp, #16 + mov r3, #0 + add r2, r1, r6, asl #2 + mov r0, r3 + rsb r1, r6, r8 +.L18338: + add r3, r3, #1 + cmp r3, r1 + str r0, [r2], #4 + bne .L18338 + b .L18499 +.L18488: + tst r7, #32 + beq .L18486 + ldr r5, .L18810+8 + ldrh r3, [r5, #84] + tst r3, #31 + beq .L18486 + ldrh r3, [r5, #80] + tst r3, #63 + beq .L18486 + ldr r0, .L18810+24 + ands r3, r7, #16 + ldr r2, [r0, #0] + moveq r4, r3 + ldreq r1, .L18810+24 + beq .L18537 + mov r3, #0 + ldr r1, .L18810+24 + str r3, [sp, #8] +.L18550: + tst r2, #4 + mov r3, #1 + bne .L18790 + ands r3, r7, r3, asl r2 + bne .L18791 + ldr r2, [sp, #8] + add r2, r2, #1 + cmp lr, r2 + str r2, [sp, #8] + ldr r2, [r1, #4]! + bne .L18550 + cmp r6, r8 + bcs .L18679 + mov r2, r3 + rsb r5, r6, r8 + add r3, sl, r6, asl #1 +.L18553: + add r2, r2, #1 + mov r0, #0 @ movhi + cmp r5, r2 + strh r0, [r3], #2 @ movhi + bne .L18553 +.L18539: + ldr r3, .L18810+8 + ldr r8, .L18810+16 + ldrh r2, [r3, #84] + and r2, r2, #31 + cmp r2, #16 + movcs r2, #16 + rsb r3, r2, r2, asl #6 + add r3, r2, r3, asl #5 + rsb r3, r3, r3, asl #16 + mov r3, r3, lsr #4 + cmp r5, #0 + and r8, r3, r8 + rsb r7, r2, #16 + beq .L18666 + ldr r9, .L18810+4 + add r0, sl, r6, asl #1 + mov r4, #0 +.L18572: + ldrh r3, [r0, #0] + ldr lr, .L18810+16 + mov r2, r3, asl #23 + mov r2, r2, lsr #23 + tst r3, #512 + mov r2, r2, asl #1 + mov r1, r3, asl #23 + ldrneh r3, [r2, r9] + mov ip, lr + orrne r3, r3, r3, asl #16 + andne lr, r3, lr + mulne r2, lr, r7 + mov r1, r1, lsr #23 + mov r1, r1, asl #1 + addne r2, r8, r2, lsr #4 + andne ip, r2, ip + ldreqh r1, [r1, r9] + orrne r3, ip, ip, lsr #16 + add r4, r4, #1 + strneh r3, [r0, #0] @ movhi + streqh r1, [r0, #0] @ movhi + cmp r5, r4 + add r0, r0, #2 + bne .L18572 + b .L18666 +.L18537: + tst r2, #4 + bne .L18536 + mov r3, #1 + ands r3, r7, r3, asl r2 + bne .L18792 +.L18536: + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18537 + cmp r6, r8 + bcs .L18679 + rsb r5, r6, r8 + add r2, sl, r6, asl #1 + mov r3, #0 +.L18541: + add r3, r3, #1 + mov r1, #0 @ movhi + cmp r3, r5 + strh r1, [r2], #2 @ movhi + bne .L18541 + b .L18539 +.L18336: +.L18325: + tst r7, #32 + beq .L18323 + ldr r5, .L18810+8 + ldrh r3, [r5, #84] + tst r3, #31 + beq .L18323 + ldrh r3, [r5, #80] + tst r3, #63 + beq .L18323 + ldr r0, .L18810+24 + ands r3, r7, #16 + ldr r2, [r0, #0] + moveq r4, r3 + ldreq r1, .L18810+24 + beq .L18375 + ldr r1, .L18810+24 + mov r5, #0 +.L18388: + tst r2, #4 + mov r3, #1 + bne .L18793 + ands r3, r7, r3, asl r2 + bne .L18794 + add r5, r5, #1 + cmp lr, r5 + ldr r2, [r1, #4]! + bne .L18388 + cmp r6, r8 + bcs .L18377 + add r5, sp, #16 + add r2, r5, r6, asl #2 + rsb r1, r6, r8 + mov r0, r3 +.L18391: + add r3, r3, #1 + cmp r1, r3 + str r0, [r2], #4 + bne .L18391 +.L18377: + add r0, sp, #16 + mov r1, sl + mov r2, r6 + mov r3, r8 + bl expand_brighten_partial_alpha + b .L18666 +.L18375: + tst r2, #4 + bne .L18374 + mov r3, #1 + ands r3, r7, r3, asl r2 + bne .L18795 +.L18374: + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18375 + cmp r6, r8 + bcs .L18377 + add r1, sp, #16 + mov r3, #0 + add r2, r1, r6, asl #2 + mov r0, r3 + rsb r1, r6, r8 +.L18379: + add r3, r3, #1 + cmp r1, r3 + str r0, [r2], #4 + bne .L18379 + b .L18377 +.L18489: + tst r7, #32 + beq .L18486 + ldr r5, .L18810+8 + ldrh r3, [r5, #84] + tst r3, #31 + beq .L18486 + ldrh r2, [r5, #80] + tst r2, #63 + beq .L18486 + ldr r0, .L18810+24 + ands r3, r7, #16 + ldr r2, [r0, #0] + moveq r4, r3 + ldreq r1, .L18810+24 + beq .L18583 + mov r3, #0 + ldr r1, .L18810+24 + str r3, [sp, #12] +.L18596: + tst r2, #4 + mov r3, #1 + bne .L18796 + ands r3, r7, r3, asl r2 + bne .L18797 + ldr r2, [sp, #12] + add r2, r2, #1 + cmp lr, r2 + str r2, [sp, #12] + ldr r2, [r1, #4]! + bne .L18596 + cmp r6, r8 + bcs .L18682 + mov r2, r3 + rsb r5, r6, r8 + add r3, sl, r6, asl #1 +.L18599: + add r2, r2, #1 + mov r0, #0 @ movhi + cmp r5, r2 + strh r0, [r3], #2 @ movhi + bne .L18599 +.L18585: + ldr r0, .L18810+8 + ldrh r3, [r0, #84] + and r3, r3, #31 + rsb r3, r3, #16 + cmp r3, #0 + movge r7, r3 + movlt r7, #0 + cmp r5, #0 + beq .L18666 + ldr r8, .L18810+4 + add r0, sl, r6, asl #1 + mov r4, #0 +.L18618: + ldrh r3, [r0, #0] + ldr lr, .L18810+16 + mov r2, r3, asl #23 + mov r2, r2, lsr #23 + tst r3, #512 + mov r2, r2, asl #1 + mov r1, r3, asl #23 + ldrneh r3, [r2, r8] + mov ip, lr + orrne r3, r3, r3, asl #16 + andne lr, r3, lr + mulne r2, r7, lr + mov r1, r1, lsr #23 + mov r1, r1, asl #1 + movne r2, r2, lsr #4 + andne ip, r2, ip + ldreqh r1, [r1, r8] + orrne r3, ip, ip, lsr #16 + add r4, r4, #1 + strneh r3, [r0, #0] @ movhi + streqh r1, [r0, #0] @ movhi + cmp r5, r4 + add r0, r0, #2 + bne .L18618 + b .L18666 +.L18583: + tst r2, #4 + bne .L18582 + mov r3, #1 + ands r3, r7, r3, asl r2 + bne .L18798 +.L18582: + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18583 + cmp r6, r8 + bcs .L18682 + rsb r5, r6, r8 + add r2, sl, r6, asl #1 + mov r3, #0 +.L18587: + add r3, r3, #1 + mov r1, #0 @ movhi + cmp r5, r3 + strh r1, [r2], #2 @ movhi + bne .L18587 + b .L18585 +.L18326: + tst r7, #32 + beq .L18323 + ldr r5, .L18810+8 + ldrh r3, [r5, #84] + tst r3, #31 + beq .L18323 + ldrh r3, [r5, #80] + tst r3, #63 + beq .L18323 + ldr r0, .L18810+24 + ands r3, r7, #16 + ldr r2, [r0, #0] + moveq r4, r3 + ldreq r1, .L18810+24 + beq .L18415 + ldr r1, .L18810+24 + mov r5, #0 +.L18428: + tst r2, #4 + mov r3, #1 + bne .L18799 + ands r3, r7, r3, asl r2 + bne .L18800 + add r5, r5, #1 + cmp lr, r5 + ldr r2, [r1, #4]! + bne .L18428 + cmp r6, r8 + bcs .L18417 + add r5, sp, #16 + add r2, r5, r6, asl #2 + rsb r1, r6, r8 + mov r0, r3 +.L18431: + add r3, r3, #1 + cmp r3, r1 + str r0, [r2], #4 + bne .L18431 +.L18417: + add r0, sp, #16 + mov r1, sl + mov r2, r6 + mov r3, r8 + bl expand_darken_partial_alpha + b .L18666 +.L18415: + tst r2, #4 + bne .L18414 + mov r3, #1 + ands r3, r7, r3, asl r2 + bne .L18801 +.L18414: + add r4, r4, #1 + cmp lr, r4 + ldr r2, [r1, #4]! + bne .L18415 + cmp r6, r8 + bcs .L18417 + add r1, sp, #16 + mov r3, #0 + add r2, r1, r6, asl #2 + mov r0, r3 + rsb r1, r6, r8 +.L18419: + add r3, r3, #1 + cmp r1, r3 + str r0, [r2], #4 + bne .L18419 + b .L18417 +.L18780: + cmp r6, r8 + addcc r0, sp, #16 + movcc r3, #0 + addcc r1, r0, r6, asl #2 + movcc ip, r3 + rsbcc r0, r6, r8 + bcs .L18472 +.L18474: + add r3, r3, #1 + cmp r3, r0 + str ip, [r1], #4 + bne .L18474 +.L18472: + tst fp, #64 + bic r0, r2, #4 + beq .L18475 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_1D +.L18477: + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18499 + ldr r2, .L18810+24 + and fp, fp, #64 + add r4, r2, r4, asl #2 + b .L18479 +.L18802: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + mov r0, ip + beq .L18482 + bl render_scanline_obj_partial_alpha_1D +.L18484: + ldr r3, [r9, #0] + add r5, r5, #1 + cmp r3, r5 + add r4, r4, #4 + bls .L18499 +.L18479: + ldr ip, [r4, #4] + tst ip, #4 + bne .L18802 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r3, [sp, #1020] + mov r0, ip + mov r1, r6 + add ip, r3, ip, asl #5 + mov r2, r8 + add r3, sp, #16 + beq .L18484 + mov lr, pc + ldr pc, [ip, #28] + b .L18484 +.L18482: + mov r0, ip + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_2D + b .L18484 +.L18642: + ldr r3, .L18810+4 + cmp r6, r8 + ldrh r0, [r3, #0] + bcs .L18645 + add r2, sl, r6, asl #1 + mov r3, #0 + rsb r1, r6, r8 +.L18647: + add r3, r3, #1 + cmp r3, r1 + strh r0, [r2], #2 @ movhi + bne .L18647 +.L18645: + tst fp, #64 + bic r0, ip, #4 + beq .L18648 + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_normal_1D +.L18650: + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18666 + ldr r0, .L18810+24 + and fp, fp, #64 + add r4, r0, r4, asl #2 + b .L18652 +.L18803: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + mov r3, sl + mov r0, ip + beq .L18655 + bl render_scanline_obj_normal_1D +.L18657: + ldr r3, [r9, #0] + add r5, r5, #1 + cmp r3, r5 + add r4, r4, #4 + bls .L18666 +.L18652: + ldr ip, [r4, #4] + tst ip, #4 + bne .L18803 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r1, [sp, #1020] + mov r0, ip + mov r2, r8 + add ip, r1, ip, asl #5 + mov r3, sl + mov r1, r6 + beq .L18657 + mov lr, pc + ldr pc, [ip, #4] + b .L18657 +.L18655: + mov r0, ip + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_normal_2D + b .L18657 +.L18783: + mov r3, sl + ldr r5, [sp, #1020] + mov r0, ip + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [r5, ip, asl #5] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18666 + ldr r0, .L18810+24 + add r4, r0, r4, asl #2 + b .L18633 +.L18634: + ldr r3, [r9, #0] + add r4, r4, #4 + cmp r3, r5 + bls .L18666 +.L18633: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + bne .L18634 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + mov r3, sl + mov r1, r6 + mov r2, r8 + beq .L18634 + mov lr, pc + ldr pc, [ip, #4] + b .L18634 +.L18781: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #24] + b .L18477 +.L18778: + mov r0, ip + mov r1, r6 + mov r2, r8 + mov r3, sl + ldr r5, [sp, #1020] + mov lr, pc + ldr pc, [r5, ip, asl #5] + b .L18650 +.L18782: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #24] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18499 + ldr r2, .L18810+24 + add r4, r2, r4, asl #2 + b .L18460 +.L18461: + ldr r3, [r9, #0] + add r4, r4, #4 + cmp r3, r5 + bls .L18499 +.L18460: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + bne .L18461 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r3, [sp, #1020] + mov r0, r2 + add ip, r3, r2, asl #5 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + beq .L18461 + mov lr, pc + ldr pc, [ip, #28] + b .L18461 +.L18648: + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_normal_2D + b .L18650 +.L18475: + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_2D + b .L18477 +.L18792: + ldr r3, [sp, #1020] + mov r0, r2 + add ip, r3, r2, asl #5 + mov r1, r6 + mov r3, sl + mov r2, r8 + mov lr, pc + ldr pc, [ip, #16] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18679 + ldr r0, .L18810+24 + add r4, r0, r4, asl #2 +.L18545: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + add r4, r4, #4 + bne .L18546 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + mov r3, sl + mov r1, r6 + mov r2, r8 + movne lr, pc + ldrne pc, [ip, #20] +.L18546: + ldr r3, [r9, #0] + cmp r3, r5 + bhi .L18545 +.L18679: + rsb r5, r6, r8 + b .L18539 +.L18795: + ldr r3, [sp, #1020] + mov r0, r2 + add ip, r3, r2, asl #5 + mov r1, r6 + add r3, sp, #16 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #24] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18377 + ldr r0, .L18810+24 + add r4, r0, r4, asl #2 +.L18383: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + bne .L18384 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + movne lr, pc + ldrne pc, [ip, #28] +.L18384: + ldr r3, [r9, #0] + add r4, r4, #4 + cmp r3, r5 + bhi .L18383 + b .L18377 +.L18791: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + mov r3, sl + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #16] + rsb r5, r6, r8 +.L18562: + ldr r2, [sp, #8] + ldr r3, [r9, #0] + add r4, r2, #1 + cmp r4, r3 + bcs .L18539 + ldr r3, .L18810+24 + and fp, fp, #64 + add r3, r3, r2, asl #2 + mov r0, r3 + str r3, [sp, #0] + b .L18564 +.L18804: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + mov r3, sl + mov r0, ip + beq .L18567 + bl render_scanline_obj_color16_1D +.L18569: + ldr r2, [sp, #0] + ldr r3, [r9, #0] + add r4, r4, #1 + add r2, r2, #4 + cmp r3, r4 + str r2, [sp, #0] + bls .L18539 + ldr r0, [sp, #0] +.L18564: + ldr ip, [r0, #4] + tst ip, #4 + bne .L18804 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r1, [sp, #1020] + mov r0, ip + mov r2, r8 + add ip, r1, ip, asl #5 + mov r3, sl + mov r1, r6 + beq .L18569 + mov lr, pc + ldr pc, [ip, #20] + b .L18569 +.L18567: + mov r0, ip + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_color16_2D + b .L18569 +.L18811: + .align 2 +.L18810: + .word layer_count + .word palette_ram_converted + .word io_registers + .word obj_alpha_count + .word 132184095 + .word 7967 + .word layer_order +.L18790: + cmp r6, r8 + rsbcs r5, r6, r8 + bcs .L18557 + add r1, sl, r6, asl #1 + mov r3, #0 + rsb r5, r6, r8 +.L18559: + add r3, r3, #1 + mov r0, #0 @ movhi + cmp r5, r3 + strh r0, [r1], #2 @ movhi + bne .L18559 +.L18557: + tst fp, #64 + bic r0, r2, #4 + beq .L18560 + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_color16_1D + b .L18562 +.L18794: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #24] +.L18400: + ldr r3, [r9, #0] + add r4, r5, #1 + cmp r4, r3 + bcs .L18377 + ldr r2, .L18810+24 + and fp, fp, #64 + add r5, r2, r5, asl #2 + b .L18402 +.L18805: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + mov r0, ip + beq .L18405 + bl render_scanline_obj_partial_alpha_1D +.L18407: + ldr r3, [r9, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bls .L18377 +.L18402: + ldr ip, [r5, #4] + tst ip, #4 + bne .L18805 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r3, [sp, #1020] + mov r0, ip + mov r1, r6 + add ip, r3, ip, asl #5 + mov r2, r8 + add r3, sp, #16 + beq .L18407 + mov lr, pc + ldr pc, [ip, #28] + b .L18407 +.L18405: + mov r0, ip + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_2D + b .L18407 +.L18793: + cmp r6, r8 + addcc r0, sp, #16 + movcc r3, #0 + addcc r1, r0, r6, asl #2 + movcc ip, r3 + rsbcc r0, r6, r8 + bcs .L18395 +.L18397: + add r3, r3, #1 + cmp r0, r3 + str ip, [r1], #4 + bne .L18397 +.L18395: + tst fp, #64 + bic r0, r2, #4 + beq .L18398 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_1D + b .L18400 +.L18801: + ldr r3, [sp, #1020] + mov r0, r2 + add ip, r3, r2, asl #5 + mov r1, r6 + add r3, sp, #16 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #24] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18417 + ldr r0, .L18810+24 + add r4, r0, r4, asl #2 +.L18423: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + bne .L18424 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + movne lr, pc + ldrne pc, [ip, #28] +.L18424: + ldr r3, [r9, #0] + add r4, r4, #4 + cmp r3, r5 + bhi .L18423 + b .L18417 +.L18560: + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_color16_2D + b .L18562 +.L18398: + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_2D + b .L18400 +.L18798: + ldr r3, [sp, #1020] + mov r0, r2 + add ip, r3, r2, asl #5 + mov r1, r6 + mov r3, sl + mov r2, r8 + mov lr, pc + ldr pc, [ip, #16] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18682 + ldr r0, .L18810+24 + add r4, r0, r4, asl #2 +.L18591: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + add r4, r4, #4 + bne .L18592 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + mov r3, sl + mov r1, r6 + mov r2, r8 + movne lr, pc + ldrne pc, [ip, #20] +.L18592: + ldr r3, [r9, #0] + cmp r3, r5 + bhi .L18591 +.L18682: + rsb r5, r6, r8 + b .L18585 +.L18797: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + mov r3, sl + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #16] + rsb r5, r6, r8 +.L18608: + ldr r2, [sp, #12] + ldr r3, [r9, #0] + add r4, r2, #1 + cmp r4, r3 + bcs .L18585 + ldr r3, .L18810+24 + and fp, fp, #64 + add r3, r3, r2, asl #2 + str r3, [sp, #4] + b .L18610 +.L18806: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + mov r3, sl + mov r0, ip + beq .L18613 + bl render_scanline_obj_color16_1D +.L18615: + ldr r2, [sp, #4] + ldr r3, [r9, #0] + add r4, r4, #1 + add r2, r2, #4 + cmp r3, r4 + str r2, [sp, #4] + bls .L18585 +.L18610: + ldr r0, [sp, #4] + ldr ip, [r0, #4] + tst ip, #4 + bne .L18806 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r1, [sp, #1020] + mov r0, ip + mov r2, r8 + add ip, r1, ip, asl #5 + mov r3, sl + mov r1, r6 + beq .L18615 + mov lr, pc + ldr pc, [ip, #20] + b .L18615 +.L18613: + mov r0, ip + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_color16_2D + b .L18615 +.L18796: + cmp r6, r8 + rsbcs r5, r6, r8 + bcs .L18603 + add r1, sl, r6, asl #1 + mov r3, #0 + rsb r5, r6, r8 +.L18605: + add r3, r3, #1 + mov r0, #0 @ movhi + cmp r3, r5 + strh r0, [r1], #2 @ movhi + bne .L18605 +.L18603: + tst fp, #64 + bic r0, r2, #4 + beq .L18606 + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_color16_1D + b .L18608 +.L18789: + ldr r3, [sp, #1020] + mov r0, r2 + add ip, r3, r2, asl #5 + mov r1, r6 + add r3, sp, #16 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #8] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18499 + ldr r0, .L18810+24 + add r4, r0, r4, asl #2 + b .L18342 +.L18343: + ldr r3, [r9, #0] + add r4, r4, #4 + cmp r3, r5 + bls .L18499 +.L18342: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + bne .L18343 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + beq .L18343 + mov lr, pc + ldr pc, [ip, #12] + b .L18343 +.L18787: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #8] +.L18359: + ldr r3, [r9, #0] + add r4, r5, #1 + cmp r4, r3 + bcs .L18499 + ldr r2, .L18810+24 + and fp, fp, #64 + add r5, r2, r5, asl #2 + b .L18361 +.L18807: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + mov r0, ip + beq .L18364 + bl render_scanline_obj_alpha_obj_1D +.L18366: + ldr r3, [r9, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bls .L18499 +.L18361: + ldr ip, [r5, #4] + tst ip, #4 + bne .L18807 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r3, [sp, #1020] + mov r0, ip + mov r1, r6 + add ip, r3, ip, asl #5 + mov r2, r8 + add r3, sp, #16 + beq .L18366 + mov lr, pc + ldr pc, [ip, #12] + b .L18366 +.L18364: + mov r0, ip + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_alpha_obj_2D + b .L18366 +.L18786: + cmp r6, r8 + addcc r0, sp, #16 + movcc r3, #0 + addcc r1, r0, r6, asl #2 + movcc ip, r3 + rsbcc r0, r6, r8 + bcs .L18354 +.L18356: + add r3, r3, #1 + cmp r3, r0 + str ip, [r1], #4 + bne .L18356 +.L18354: + tst fp, #64 + bic r0, r2, #4 + beq .L18357 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_alpha_obj_1D + b .L18359 +.L18784: + cmp r6, r8 + addcc r0, sp, #16 + movcc r3, #0 + addcc r1, r0, r6, asl #2 + movcc ip, r3 + rsbcc r0, r6, r8 + bcs .L18517 +.L18519: + add r3, r3, #1 + cmp r3, r0 + str ip, [r1], #4 + bne .L18519 +.L18517: + tst fp, #64 + bic r0, r2, #4 + beq .L18520 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_alpha_obj_1D +.L18522: + ldr r3, [r9, #0] + add r4, r5, #1 + cmp r4, r3 + bcs .L18499 + ldr r2, .L18810+24 + and fp, fp, #64 + add r5, r2, r5, asl #2 + b .L18524 +.L18808: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + mov r0, ip + beq .L18527 + bl render_scanline_obj_alpha_obj_1D +.L18529: + ldr r3, [r9, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bls .L18499 +.L18524: + ldr ip, [r5, #4] + tst ip, #4 + bne .L18808 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r3, [sp, #1020] + mov r0, ip + mov r1, r6 + add ip, r3, ip, asl #5 + mov r2, r8 + add r3, sp, #16 + beq .L18529 + mov lr, pc + ldr pc, [ip, #12] + b .L18529 +.L18788: + ldr r3, [sp, #1020] + mov r0, r2 + add ip, r3, r2, asl #5 + mov r1, r6 + add r3, sp, #16 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #8] + ldr r3, [r9, #0] + add r5, r4, #1 + cmp r5, r3 + bcs .L18499 + ldr r0, .L18810+24 + add r4, r0, r4, asl #2 + b .L18505 +.L18506: + ldr r3, [r9, #0] + add r4, r4, #4 + cmp r3, r5 + bls .L18499 +.L18505: + ldr r2, [r4, #4] + add r5, r5, #1 + tst r2, #4 + bne .L18506 + mov r3, #1 + ands r3, r7, r3, asl r2 + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + beq .L18506 + mov lr, pc + ldr pc, [ip, #12] + b .L18506 +.L18527: + mov r0, ip + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_alpha_obj_2D + b .L18529 +.L18520: + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_alpha_obj_2D + b .L18522 +.L18357: + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_alpha_obj_2D + b .L18359 +.L18800: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #24] +.L18440: + ldr r3, [r9, #0] + add r4, r5, #1 + cmp r4, r3 + bcs .L18417 + ldr r2, .L18810+24 + and fp, fp, #64 + add r5, r2, r5, asl #2 + b .L18442 +.L18809: + bic ip, ip, #4 + cmp fp, #0 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + mov r0, ip + beq .L18445 + bl render_scanline_obj_partial_alpha_1D +.L18447: + ldr r3, [r9, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bls .L18417 +.L18442: + ldr ip, [r5, #4] + tst ip, #4 + bne .L18809 + mov r3, #1 + ands r3, r7, r3, asl ip + ldr r3, [sp, #1020] + mov r0, ip + mov r1, r6 + add ip, r3, ip, asl #5 + mov r2, r8 + add r3, sp, #16 + beq .L18447 + mov lr, pc + ldr pc, [ip, #28] + b .L18447 +.L18445: + mov r0, ip + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_2D + b .L18447 +.L18799: + cmp r6, r8 + addcc r0, sp, #16 + movcc r3, #0 + addcc r1, r0, r6, asl #2 + movcc ip, r3 + rsbcc r0, r6, r8 + bcs .L18435 +.L18437: + add r3, r3, #1 + cmp r3, r0 + str ip, [r1], #4 + bne .L18437 +.L18435: + tst fp, #64 + bic r0, r2, #4 + beq .L18438 + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_1D + b .L18440 +.L18785: + ldr r1, [sp, #1020] + mov r0, r2 + add ip, r1, r2, asl #5 + add r3, sp, #16 + mov r1, r6 + mov r2, r8 + mov lr, pc + ldr pc, [ip, #8] + b .L18522 +.L18606: + mov r1, r6 + mov r2, r8 + mov r3, sl + bl render_scanline_obj_color16_2D + b .L18608 +.L18438: + mov r1, r6 + mov r2, r8 + add r3, sp, #16 + bl render_scanline_obj_partial_alpha_2D + b .L18440 + .size render_scanline_conditional_tile, .-render_scanline_conditional_tile + .align 2 + .global render_scanline_obj_copy_tile_2D + .type render_scanline_obj_copy_tile_2D, %function +render_scanline_obj_copy_tile_2D: + @ args = 0, pretend = 0, frame = 596 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L19654 + add r0, r0, r0, asl #2 + ldrh r4, [r5, #6] + ldr ip, .L19654+4 + add r0, r4, r0, asl #5 + ldrh r6, [r5, #0] + sub sp, sp, #608 + ldr ip, [ip, r0, asl #2] + str r6, [sp, #56] + str ip, [sp, #80] + cmp ip, #0 + ldr ip, [sp, #56] + ldrh r6, [r5, #74] + str r4, [sp, #76] + ldr lr, .L19654+8 + and r4, ip, #7 + ldr ip, .L19654+12 + ldrh r5, [r5, #80] + add r4, ip, r4, asl #7 + add r0, lr, r0, asl #7 + mov r6, r6, lsr #8 + str r4, [sp, #64] + str r0, [sp, #84] + str r1, [sp, #28] + str r2, [sp, #24] + str r3, [sp, #20] + str r6, [sp, #60] + str r5, [sp, #52] + beq .L19604 + rsb r0, r1, r2 + add lr, r3, r1, asl #1 + mov r1, #0 + mov r2, r1 + str lr, [sp, #104] + str r0, [sp, #124] + str r1, [sp, #72] + b .L18815 +.L18819: + ldr lr, [sp, #72] + ldr r0, [sp, #80] + add lr, lr, #1 + cmp r0, lr + str lr, [sp, #72] + beq .L19604 + ldr r2, [sp, #72] +.L18815: + ldr r4, [sp, #84] + ldr r5, .L19654+16 + ldrb r3, [r2, r4] @ zero_extendqisi2 + ldr lr, .L19654+20 + mov r3, r3, asl #3 + ldrh r6, [r3, r5] + add r3, r3, r5 + ldrh r7, [r3, #2] + mov r9, r6, lsr #12 + and r2, r9, #12 + orr sl, r2, r7, lsr #14 + mov r1, r7, asl #23 + ldr fp, [lr, sl, asl #2] + ands ip, r6, #512 + mov r8, r1, asr #23 + ldr r0, [sp, #24] + ldr r5, [sp, #28] + addne r1, r8, fp, asl #1 + addeq r1, r8, fp + ldr r2, [sp, #28] + cmp r8, r5 + movcs r5, r8 + cmp r1, r0 + movcs r1, r0 + str ip, [sp, #32] + ldrh ip, [r3, #4] + cmp r0, r5 + movls r3, #0 + movhi r3, #1 + cmp r2, r1 + movcs r3, #0 + cmp r3, #0 + beq .L18819 + ldr lr, [sp, #56] + add r4, sp, #128 + str lr, [sp, #0] + ldr lr, [sp, #52] + mov r0, r5 + str lr, [sp, #4] + ldr lr, [sp, #64] + ldr r3, [sp, #60] + mov r2, r4 + str ip, [sp, #12] + str lr, [sp, #8] + bl render_scanline_conditional_tile + and r0, r6, #255 + cmp r0, #160 + ldr r3, .L19654+24 + add r5, r4, r5, asl #1 + subgt r0, r0, #256 + tst r6, #256 + str r5, [sp, #68] + ldr ip, [sp, #12] + ldr sl, [r3, sl, asl #2] + beq .L18823 + tst r6, #8192 + beq .L18825 + mov r3, r7, lsr #4 + ldr r2, .L19654+16 + and r3, r3, #992 + add r3, r3, r2 + ldr r1, [sp, #32] + ldrh r4, [r3, #30] + cmp r1, #0 + add r1, sl, sl, lsr #31 + ldrh r5, [r3, #6] + add r2, fp, fp, lsr #31 + str r4, [sp, #40] + mov r4, r1, asr #1 + ldr r1, [sp, #28] + mov lr, r2, asr #1 + str r5, [sp, #36] + moveq r9, fp + moveq r7, lr + moveq r5, r4 + movne r9, fp, asl #1 + movne r7, lr, asl #1 + movne r5, r4, asl #1 + cmp r8, r1 + ldrh r2, [r3, #14] + ldrh r6, [r3, #22] + bge .L18830 + rsb r1, r8, r1 + rsb r9, r1, r9 + cmp r9, #0 + ble .L18819 + ldr r8, [sp, #28] + rsb r7, r1, r7 +.L18830: + ldr r1, [sp, #24] + add r3, r8, r9 + cmp r3, r1 + bge .L19632 +.L18833: + add r0, r0, r5 + ldr r5, [sp, #36] + mov r2, r2, asl #16 + mov r3, r5, asl #16 + ldr r5, [sp, #40] + mov r3, r3, asr #16 + mov r1, r5, asl #16 + str r3, [sp, #88] + mov r5, r2, asr #16 + ldr r3, [sp, #76] + ldr r2, [sp, #20] + mov lr, lr, asl #8 + cmp r6, #0 + str lr, [sp, #112] + mov r1, r1, asr #16 + mov lr, r4, asl #8 + add r8, r2, r8, asl #1 + rsb r0, r0, r3 + beq .L19633 + mov r3, ip, asl #22 + ldr r2, .L19654+28 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp r9, #0 + str r3, [sp, #120] + ble .L18819 + mov r3, r6, asl #16 + mul r2, r0, r1 + mov r6, r3, asr #16 + mul r3, r0, r5 + ldr r0, [sp, #88] + mul r1, r6, r7 + mul r0, r7, r0 + ldr ip, [sp, #112] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r5, ip, r3 + add r4, lr, r2 + mov ip, r4, asr #8 + mov lr, r5, asr #8 + cmp lr, fp + cmpcc ip, sl + movcs r3, #0 + movcc r3, #1 + movcs r7, r3 + bcc .L19634 +.L18851: + ldr lr, [sp, #88] + ldr r0, [sp, #68] + add r7, r7, #1 + add r5, r5, lr + add r4, r4, r6 + add r0, r0, #2 + cmp r9, r7 + mov lr, r5, asr #8 + mov ip, r4, asr #8 + add r8, r8, #2 + str r0, [sp, #68] + beq .L18819 + cmp lr, fp + cmpcc ip, sl + bcs .L18851 + cmp ip, sl + cmpcc lr, fp + bcs .L18819 +.L19635: + ldr r1, [sp, #88] + and r3, ip, #7 + mov r2, lr, asr #3 + mov r3, r3, asl #3 + add r5, r5, r1 + add r3, r3, r2, asl #6 + mov r1, ip, asr #3 + ldr r2, [sp, #120] + add r3, r3, r1, asl #10 + add r3, r3, r2 + and r0, lr, #7 + ldrb r2, [r3, r0] @ zero_extendqisi2 + ldr r0, [sp, #68] + cmp r2, #0 + ldrne r3, [sp, #68] + add r7, r7, #1 + ldrneh r3, [r3, #0] + add r4, r4, r6 + strneh r3, [r8, #0] @ movhi + add r0, r0, #2 + cmp r9, r7 + mov ip, r4, asr #8 + mov lr, r5, asr #8 + add r8, r8, #2 + str r0, [sp, #68] + ble .L18819 +.L18854: + cmp ip, sl + cmpcc lr, fp + bcc .L19635 + b .L18819 +.L18823: + ldr r4, [sp, #76] + tst r7, #8192 + rsb r0, r0, r4 + rsbne r3, r0, sl + subne r0, r3, #1 + mov r2, r7, asl #19 + and r3, r9, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L18819 + .p2align 2 +.L18903: + .word .L18899 + .word .L18900 + .word .L18901 + .word .L18902 +.L19604: + add sp, sp, #608 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L18825: + mov r3, r7, lsr #4 + ldr r2, .L19654+16 + and r3, r3, #992 + add r3, r3, r2 + ldr r1, [sp, #32] + ldrh r4, [r3, #30] + cmp r1, #0 + add r1, sl, sl, lsr #31 + ldrh r5, [r3, #6] + add r2, fp, fp, lsr #31 + str r4, [sp, #48] + mov r4, r1, asr #1 + ldr r1, [sp, #28] + mov lr, r2, asr #1 + str r5, [sp, #44] + moveq r6, fp + moveq r7, lr + moveq r5, r4 + movne r6, fp, asl #1 + movne r7, lr, asl #1 + movne r5, r4, asl #1 + cmp r8, r1 + ldrh r2, [r3, #14] + ldrh r9, [r3, #22] + bge .L18862 + rsb r1, r8, r1 + rsb r6, r1, r6 + cmp r6, #0 + ble .L18819 + ldr r8, [sp, #28] + rsb r7, r1, r7 +.L18862: + ldr r1, [sp, #24] + add r3, r8, r6 + cmp r3, r1 + bge .L19636 +.L18865: + add r0, r0, r5 + ldr r5, [sp, #44] + mov r2, r2, asl #16 + mov r3, r5, asl #16 + mov r3, r3, asr #16 + mov r2, r2, asr #16 + ldr r5, [sp, #48] + str r3, [sp, #92] + str r2, [sp, #96] + ldr r3, [sp, #76] + ldr r2, [sp, #20] + mov lr, lr, asl #8 + mov r1, r5, asl #16 + cmp r9, #0 + str lr, [sp, #108] + mov r1, r1, asr #16 + mov lr, r4, asl #8 + add r8, r2, r8, asl #1 + rsb r0, r0, r3 + beq .L19637 + mov r3, ip, asl #22 + ldr r2, .L19654+28 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + cmp r6, #0 + str r3, [sp, #116] + ble .L18819 + mov r3, r9, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #100] + ldr r3, [sp, #96] + mul r2, r0, r1 + mul r3, r0, r3 + ldr r0, [sp, #92] + ldr r1, [sp, #100] + mul r0, r7, r0 + mul r1, r7, r1 + rsb r3, r0, r3 + ldr r0, [sp, #108] + rsb r2, r1, r2 + add r5, r0, r3 + add r4, lr, r2 + mov ip, r4, asr #8 + mov lr, r5, asr #8 + cmp lr, fp + cmpcc ip, sl + movcs r3, #0 + movcc r3, #1 + movcs r7, r3 + bcc .L19638 +.L18886: + ldr r3, [sp, #68] + ldr r1, [sp, #92] + ldr r2, [sp, #100] + add r7, r7, #1 + add r5, r5, r1 + add r4, r4, r2 + add r3, r3, #2 + cmp r6, r7 + mov lr, r5, asr #8 + mov ip, r4, asr #8 + add r8, r8, #2 + str r3, [sp, #68] + beq .L18819 + cmp lr, fp + cmpcc ip, sl + bcs .L18886 + cmp ip, sl + cmpcc lr, fp + bcs .L18819 +.L19639: + mov r3, lr, asr #1 + ldr r1, [sp, #116] + and r3, r3, #3 + and r0, ip, #7 + str r3, [sp, #16] + ldr r3, [sp, #116] + add r0, r1, r0, asl #2 + and r1, ip, #7 + mov r2, lr, asr #1 + add r1, r3, r1, asl #2 + mov r3, ip, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, lr, asr #3 + tst lr, #1 + add r3, r3, r2, asl #5 + add r2, r0, r3 + movne ip, r9 + add r0, r1, r3 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + ldrneb r3, [r2, ip] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + cmp r0, #0 + ldrne r2, [sp, #68] + ldr lr, [sp, #92] + ldrneh r2, [r2, #0] + ldr r3, [sp, #68] + ldr r1, [sp, #100] + add r7, r7, #1 + strneh r2, [r8, #0] @ movhi + add r5, r5, lr + add r4, r4, r1 + add r3, r3, #2 + cmp r6, r7 + mov lr, r5, asr #8 + mov ip, r4, asr #8 + add r8, r8, #2 + str r3, [sp, #68] + ble .L18819 +.L18889: + cmp ip, sl + cmpcc lr, fp + bcc .L19639 + b .L18819 +.L19636: + rsb r6, r8, r1 + cmp r6, #0 + bgt .L18865 + b .L18819 +.L19632: + rsb r9, r8, r1 + cmp r9, #0 + bgt .L18833 + b .L18819 +.L19633: + mla r3, r0, r1, lr + mov r1, r3, asr #8 + cmp r1, sl + bcs .L18819 + mov r3, ip, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #2 + ldr r3, .L19654+28 + cmp r9, #0 + add r4, r3, r1, asl #3 + ble .L18819 + ldr r2, [sp, #88] + mul r3, r0, r5 + mul r2, r7, r2 + ldr r5, [sp, #112] + rsb r3, r2, r3 + add r0, r5, r3 + mov ip, r0, asr #8 + cmp ip, fp + movcs lr, r6 + bcc .L19640 +.L18841: + ldr r1, [sp, #68] + ldr r6, [sp, #88] + add lr, lr, #1 + add r0, r0, r6 + add r1, r1, #2 + cmp r9, lr + mov ip, r0, asr #8 + add r8, r8, #2 + str r1, [sp, #68] + beq .L18819 + cmp ip, fp + bcs .L18841 + b .L19618 +.L19637: + mla r3, r0, r1, lr + mov r1, r3, asr #8 + cmp r1, sl + bcs .L18819 + mov r3, ip, asl #22 + mov r2, r1, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #3 + ldr r3, .L19654+28 + cmp r6, #0 + add r5, r3, r1, asl #2 + ble .L18819 + ldr r3, [sp, #96] + ldr r2, [sp, #92] + mul r3, r0, r3 + mul r2, r7, r2 + ldr r4, [sp, #108] + rsb r3, r2, r3 + add r0, r4, r3 + mov ip, r0, asr #8 + cmp ip, fp + movcs r1, r9 + bcc .L19641 +.L18873: + ldr ip, [sp, #92] + ldr lr, [sp, #68] + add r1, r1, #1 + add r0, r0, ip + add lr, lr, #2 + cmp r6, r1 + mov ip, r0, asr #8 + add r8, r8, #2 + str lr, [sp, #68] + beq .L18819 + cmp ip, fp + bcs .L18873 + b .L19620 +.L18902: + subs r2, fp, #8 + submi r2, fp, #1 + mov r3, r0, lsr #3 + mov r2, r2, asr #3 + mov r1, ip, asl #22 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + and r3, r0, #7 + add r1, r1, r2, asl #1 + add r3, r3, r1, asl #2 + ldr lr, [sp, #28] + mov r0, r3, asl #3 + ldr r3, .L19654+28 + cmp r8, lr + add r7, r0, r3 + blt .L19642 + ldr r4, [sp, #24] + add r3, r8, fp + cmp r4, r3 + bhi .L19540 + rsb r9, r8, r4 + cmp r9, #0 + ble .L18819 + ldr r5, [sp, #20] + movs sl, r9, lsr #3 + add r1, r5, r8, asl #1 + beq .L19543 + ldr r3, .L19654+32 + ldr r4, [sp, #68] + add r0, r0, r3 + mov lr, r1 + mov r5, r7 + mov r2, #0 +.L19545: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L19546 + tst ip, #255 + ldrneh r6, [r4, #6] + mov r3, ip, lsr #8 + strneh r6, [lr, #6] @ movhi + tst r3, #255 + ldrneh r3, [r4, #4] + strneh r3, [lr, #4] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrneh r6, [r4, #2] + strneh r6, [lr, #2] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r4, #0] + strneh ip, [lr, #0] @ movhi +.L19546: + ldr ip, [r5, #0] + cmp ip, #0 + beq .L19555 + tst ip, #255 + ldrneh r3, [r4, #14] + strneh r3, [lr, #14] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r6, [r4, #12] + mov r3, ip, lsr #16 + strneh r6, [lr, #12] @ movhi + tst r3, #255 + ldrneh r3, [r4, #10] + strneh r3, [lr, #10] @ movhi + movs ip, ip, lsr #24 + ldrneh r6, [r4, #8] + strneh r6, [lr, #8] @ movhi +.L19555: + add r2, r2, #1 + cmp sl, r2 + sub r5, r5, #64 + add lr, lr, #16 + add r4, r4, #16 + sub r0, r0, #64 + bne .L19545 + ldr ip, [sp, #68] + mov r3, sl, asl #4 + rsb r2, sl, sl, asl #26 + add ip, ip, r3 + add r1, r1, r3 + add r7, r7, r2, asl #6 + str ip, [sp, #68] +.L19543: + ands ip, r9, #7 + beq .L18819 + cmp ip, #3 + ldrls r2, [r7, #4] + bls .L19578 + ldr r2, [r7, #4] + cmp r2, #0 + beq .L19568 + tst r2, #255 + ldrne lr, [sp, #68] + mov r3, r2, lsr #8 + ldrneh lr, [lr, #6] + strneh lr, [r1, #6] @ movhi + tst r3, #255 + ldrne r0, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r0, [r0, #4] + strneh r0, [r1, #4] @ movhi + tst r3, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #2] + strneh r3, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #0] + strneh r4, [r1, #0] @ movhi +.L19568: + subs ip, ip, #4 + ldr r2, [r7, #0] + beq .L18819 + ldr r5, [sp, #68] + add r1, r1, #8 + add r5, r5, #8 + str r5, [sp, #68] +.L19578: + mov r3, #0 +.L19579: + movs r6, r2, lsr #24 + ldrne lr, [sp, #68] + mov r0, r3, asl #1 + ldrneh lr, [r0, lr] + add r3, r3, #1 + strneh lr, [r0, r1] @ movhi + cmp ip, r3 + mov r2, r2, asl #8 + bhi .L19579 + b .L18819 +.L18899: + mov r3, ip, asl #22 + mov r2, r0, lsr #3 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + ldr r5, [sp, #28] + add r1, r1, r3, asl #3 + ldr r3, .L19654+28 + cmp r8, r5 + add r0, r3, r1, asl #2 + blt .L19643 + ldr r4, [sp, #24] + add r3, r8, fp + cmp r4, r3 + bhi .L18985 + rsb r7, r8, r4 + cmp r7, #0 + ble .L18819 + ldr r6, [sp, #20] + movs r5, r7, lsr #3 + add r1, r6, r8, asl #1 + beq .L18988 + ldr lr, [sp, #68] + mov ip, r1 + mov r4, r0 + mov r2, #0 +.L18990: + ldr r3, [r4, #0] + cmp r3, #0 + beq .L18991 + tst r3, #15 + ldrneh r6, [lr, #0] + strneh r6, [ip, #0] @ movhi + tst r3, #240 + ldrneh r6, [lr, #2] + strneh r6, [ip, #2] @ movhi + tst r3, #3840 + ldrneh r6, [lr, #4] + strneh r6, [ip, #4] @ movhi + tst r3, #61440 + ldrneh r6, [lr, #6] + strneh r6, [ip, #6] @ movhi + tst r3, #983040 + ldrneh r6, [lr, #8] + strneh r6, [ip, #8] @ movhi + tst r3, #15728640 + ldrneh r6, [lr, #10] + strneh r6, [ip, #10] @ movhi + tst r3, #251658240 + ldrneh r6, [lr, #12] + strneh r6, [ip, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r3, [lr, #14] + strneh r3, [ip, #14] @ movhi +.L18991: + add r2, r2, #1 + cmp r2, r5 + add r4, r4, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L18990 + ldr r4, [sp, #68] + mov r3, r5, asl #4 + add r4, r4, r3 + add r1, r1, r3 + add r0, r0, r5, asl #5 + str r4, [sp, #68] +.L18988: + ands ip, r7, #7 + beq .L18819 + ldr r0, [r0, #0] + mov r2, #0 +.L19010: + tst r0, #15 + ldrne r5, [sp, #68] + mov r3, r2, asl #1 + ldrneh r5, [r3, r5] + add r2, r2, #1 + strneh r5, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, lsr #4 + bne .L19010 + b .L18819 +.L18900: + mov r3, ip, asl #22 + mov r1, r0, lsr #3 + subs r2, fp, #8 + mov r3, r3, lsr #22 + submi r2, fp, #1 + add r3, r3, r1, asl #5 + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr lr, [sp, #28] + add r1, r1, r3, asl #3 + ldr r3, .L19654+28 + cmp r8, lr + add r0, r3, r1, asl #2 + blt .L19644 + ldr lr, [sp, #24] + add r3, r8, fp + cmp lr, r3 + bhi .L19115 + rsb r7, r8, lr + cmp r7, #0 + ble .L18819 + ldr r2, [sp, #20] + movs r3, r7, lsr #3 + add r1, r2, r8, asl #1 + beq .L19118 + ldr lr, [sp, #68] + mov ip, r1 + mov r4, r0 + mov r5, #0 +.L19120: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L19121 + tst r2, #15 + ldrneh r6, [lr, #14] + strneh r6, [ip, #14] @ movhi + tst r2, #240 + ldrneh r6, [lr, #12] + strneh r6, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r6, [lr, #10] + strneh r6, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r6, [lr, #8] + strneh r6, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r6, [lr, #6] + strneh r6, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r6, [lr, #4] + strneh r6, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r6, [lr, #2] + strneh r6, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r2, [lr, #0] + strneh r2, [ip, #0] @ movhi +.L19121: + add r5, r5, #1 + cmp r5, r3 + sub r4, r4, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L19120 + ldr r4, [sp, #68] + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r4, r4, r3 + add r1, r1, r3 + add r0, r0, r2, asl #5 + str r4, [sp, #68] +.L19118: + ands ip, r7, #7 + beq .L18819 + ldr r0, [r0, #0] + mov r2, #0 +.L19140: + movs r5, r0, lsr #28 + ldrne r6, [sp, #68] + mov r3, r2, asl #1 + ldrneh r6, [r3, r6] + add r2, r2, #1 + strneh r6, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L19140 + b .L18819 +.L18901: + mov r2, ip, asl #22 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + add r2, r2, r1, asl #5 + and r3, r0, #7 + add r3, r3, r2, asl #2 + ldr r1, [sp, #28] + mov r0, r3, asl #3 + ldr r3, .L19654+28 + cmp r8, r1 + add r2, r0, r3 + blt .L19645 + ldr r4, [sp, #24] + add r3, r8, fp + cmp r4, r3 + bhi .L19320 + rsb r9, r8, r4 + cmp r9, #0 + ble .L18819 + ldr r5, [sp, #20] + movs sl, r9, lsr #3 + add r1, r5, r8, asl #1 + beq .L19323 + ldr r3, .L19654+36 + ldr r4, [sp, #68] + add r0, r0, r3 + mov lr, r1 + mov r5, r2 + mov r7, #0 +.L19325: + ldr ip, [r5, #0] + cmp ip, #0 + beq .L19326 + tst ip, #255 + ldrneh r6, [r4, #0] + mov r3, ip, lsr #8 + strneh r6, [lr, #0] @ movhi + tst r3, #255 + ldrneh r3, [r4, #2] + strneh r3, [lr, #2] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrneh r6, [r4, #4] + strneh r6, [lr, #4] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r4, #6] + strneh ip, [lr, #6] @ movhi +.L19326: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L19335 + tst ip, #255 + ldrneh r3, [r4, #8] + strneh r3, [lr, #8] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r6, [r4, #10] + mov r3, ip, lsr #16 + strneh r6, [lr, #10] @ movhi + tst r3, #255 + ldrneh r3, [r4, #12] + strneh r3, [lr, #12] @ movhi + movs ip, ip, lsr #24 + ldrneh r6, [r4, #14] + strneh r6, [lr, #14] @ movhi +.L19335: + add r7, r7, #1 + cmp r7, sl + add r5, r5, #64 + add lr, lr, #16 + add r4, r4, #16 + add r0, r0, #64 + bne .L19325 + ldr ip, [sp, #68] + mov r3, sl, asl #4 + add ip, ip, r3 + add r1, r1, r3 + add r2, r2, sl, asl #6 + str ip, [sp, #68] +.L19323: + ands ip, r9, #7 + beq .L18819 + cmp ip, #3 + ldrls r3, [r2, #0] + bls .L19358 + ldr r0, [r2, #0] + cmp r0, #0 + beq .L19348 + tst r0, #255 + ldrne lr, [sp, #68] + mov r3, r0, lsr #8 + ldrneh lr, [lr, #0] + strneh lr, [r1, #0] @ movhi + tst r3, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #2] + strneh r3, [r1, #2] @ movhi + mov r3, r0, lsr #16 + tst r3, #255 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + movs r0, r0, lsr #24 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #6] + strneh r5, [r1, #6] @ movhi +.L19348: + subs ip, ip, #4 + ldr r3, [r2, #4] + beq .L18819 + ldr r6, [sp, #68] + add r1, r1, #8 + add r6, r6, #8 + str r6, [sp, #68] +.L19358: + mov r2, #0 +.L19359: + tst r3, #255 + ldrne lr, [sp, #68] + mov r0, r2, asl #1 + ldrneh lr, [r0, lr] + add r2, r2, #1 + strneh lr, [r0, r1] @ movhi + cmp ip, r2 + mov r3, r3, lsr #8 + bhi .L19359 + b .L18819 +.L19645: + rsb r0, r8, r1 + rsb lr, r0, fp + cmp lr, #0 + ble .L18819 + ldr r4, [sp, #24] + add r3, r8, fp + cmp r4, r3 + bhi .L19167 + mov r3, r0, lsr #3 + ands ip, r0, #7 + add r8, r2, r3, asl #6 + bne .L19169 + ldr r7, [sp, #124] + ldr r5, [sp, #104] +.L19171: + movs r4, r7, lsr #3 + beq .L19229 + ldr r0, [sp, #68] + mov r1, r5 + mov ip, r8 + mov lr, #0 +.L19231: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L19232 + tst r2, #255 + ldrneh r3, [r0, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #2] + mov r3, r2, lsr #16 + strneh r6, [r1, #2] @ movhi + tst r3, #255 + ldrneh r3, [r0, #4] + strneh r3, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #6] + strneh r6, [r1, #6] @ movhi +.L19232: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L19241 + tst r2, #255 + ldrneh r3, [r0, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #10] + mov r3, r2, lsr #16 + strneh r6, [r1, #10] @ movhi + tst r3, #255 + ldrneh r3, [r0, #12] + strneh r3, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #14] + strneh r6, [r1, #14] @ movhi +.L19241: + add lr, lr, #1 + cmp lr, r4 + add ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L19231 + ldr ip, [sp, #68] + mov r3, r4, asl #4 + add ip, ip, r3 + add r5, r5, r3 + add r8, r8, r4, asl #6 + str ip, [sp, #68] +.L19229: + ands r0, r7, #7 + beq .L18819 + cmp r0, #3 + ldrls r3, [r8, #0] + bls .L19264 + ldr r2, [r8, #0] + cmp r2, #0 + beq .L19254 + tst r2, #255 + ldrne lr, [sp, #68] + mov r3, r2, lsr #8 + ldrneh lr, [lr, #0] + strneh lr, [r5, #0] @ movhi + tst r3, #255 + ldrne r1, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r1, [r1, #2] + strneh r1, [r5, #2] @ movhi + tst r3, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #4] + strneh r3, [r5, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #6] + strneh r4, [r5, #6] @ movhi +.L19254: + subs r0, r0, #4 + ldr r3, [r8, #4] + beq .L18819 + ldr r6, [sp, #68] + add r5, r5, #8 + add r6, r6, #8 + str r6, [sp, #68] +.L19264: + mov r2, #0 +.L19265: + tst r3, #255 + ldrne ip, [sp, #68] + mov r1, r2, asl #1 + ldrneh ip, [r1, ip] + add r2, r2, #1 + strneh ip, [r1, r5] @ movhi + cmp r0, r2 + mov r3, r3, lsr #8 + bhi .L19265 + b .L18819 +.L19655: + .align 2 +.L19654: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word tile_mode_renderers + .word oam_ram + .word obj_width_table + .word obj_height_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L19644: + rsb ip, r8, lr + rsb r1, ip, fp + cmp r1, #0 + ble .L18819 + ldr r2, [sp, #24] + add r3, r8, fp + cmp r2, r3 + bhi .L19037 + mov r3, ip, lsr #3 + ands r4, ip, #7 + sub r0, r0, r3, asl #5 + bne .L19039 + ldr r7, [sp, #124] + ldr r1, [sp, #104] +.L19041: + movs r3, r7, lsr #3 + beq .L19058 + ldr lr, [sp, #68] + mov ip, r1 + mov r4, r0 + mov r5, #0 +.L19060: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L19061 + tst r2, #15 + ldrneh r6, [lr, #14] + strneh r6, [ip, #14] @ movhi + tst r2, #240 + ldrneh r6, [lr, #12] + strneh r6, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r6, [lr, #10] + strneh r6, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r6, [lr, #8] + strneh r6, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r6, [lr, #6] + strneh r6, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r6, [lr, #4] + strneh r6, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r6, [lr, #2] + strneh r6, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r2, [lr, #0] + strneh r2, [ip, #0] @ movhi +.L19061: + add r5, r5, #1 + cmp r5, r3 + sub r4, r4, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L19060 + ldr r4, [sp, #68] + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r4, r4, r3 + add r1, r1, r3 + add r0, r0, r2, asl #5 + str r4, [sp, #68] +.L19058: + ands ip, r7, #7 + beq .L18819 + ldr r0, [r0, #0] + mov r2, #0 +.L19080: + movs r5, r0, lsr #28 + ldrne r6, [sp, #68] + mov r3, r2, asl #1 + ldrneh r6, [r3, r6] + add r2, r2, #1 + strneh r6, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L19080 + b .L18819 +.L19643: + rsb ip, r8, r5 + rsb lr, ip, fp + cmp lr, #0 + ble .L18819 + ldr r6, [sp, #24] + add r3, r8, fp + cmp r6, r3 + bhi .L18907 + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + add r4, r0, r1 + bne .L18909 + ldr r7, [sp, #124] + ldr r5, [sp, #104] +.L18911: + movs lr, r7, lsr #3 + beq .L18928 + ldr r1, [sp, #68] + mov r2, r5 + mov r0, r4 + mov ip, #0 +.L18930: + ldr r3, [r0, #0] + cmp r3, #0 + beq .L18931 + tst r3, #15 + ldrneh r6, [r1, #0] + strneh r6, [r2, #0] @ movhi + tst r3, #240 + ldrneh r6, [r1, #2] + strneh r6, [r2, #2] @ movhi + tst r3, #3840 + ldrneh r6, [r1, #4] + strneh r6, [r2, #4] @ movhi + tst r3, #61440 + ldrneh r6, [r1, #6] + strneh r6, [r2, #6] @ movhi + tst r3, #983040 + ldrneh r6, [r1, #8] + strneh r6, [r2, #8] @ movhi + tst r3, #15728640 + ldrneh r6, [r1, #10] + strneh r6, [r2, #10] @ movhi + tst r3, #251658240 + ldrneh r6, [r1, #12] + strneh r6, [r2, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r3, [r1, #14] + strneh r3, [r2, #14] @ movhi +.L18931: + add ip, ip, #1 + cmp ip, lr + add r0, r0, #32 + add r2, r2, #16 + add r1, r1, #16 + bne .L18930 + ldr r6, [sp, #68] + mov r3, lr, asl #4 + add r6, r6, r3 + add r5, r5, r3 + add r4, r4, lr, asl #5 + str r6, [sp, #68] +.L18928: + ands r0, r7, #7 + beq .L18819 + ldr r3, [r4, #0] + mov r1, #0 +.L18950: + tst r3, #15 + ldrne ip, [sp, #68] + mov r2, r1, asl #1 + ldrneh ip, [r2, ip] + add r1, r1, #1 + strneh ip, [r2, r5] @ movhi + cmp r1, r0 + mov r3, r3, lsr #4 + bne .L18950 + b .L18819 +.L18876: + cmp ip, fp + bcs .L18819 +.L19620: + mov r3, ip, asr #1 + and r4, r3, #3 + mov r3, ip, asr #3 + mov r3, r3, asl #5 + mov r2, ip, asr #1 + tst ip, #1 + and lr, r2, #3 + add ip, r3, r5 + add r2, r3, r5 + ldreqb r3, [r2, lr] @ zero_extendqisi2 + ldrneb r3, [ip, r4] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + cmp r2, #0 + ldrne r4, [sp, #68] + ldr lr, [sp, #68] + ldrneh r4, [r4, #0] + ldr r3, [sp, #92] + add r1, r1, #1 + strneh r4, [r8, #0] @ movhi + add r0, r0, r3 + add lr, lr, #2 + cmp r6, r1 + mov ip, r0, asr #8 + add r8, r8, #2 + str lr, [sp, #68] + bgt .L18876 + b .L18819 +.L18844: + cmp ip, fp + bcs .L18819 +.L19618: + ldr r2, [sp, #88] + mov r3, ip, asr #3 + add r3, r4, r3, asl #6 + and r1, ip, #7 + add r0, r0, r2 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r5, [sp, #68] + cmp r2, #0 + ldrne r3, [sp, #68] + add lr, lr, #1 + ldrneh r3, [r3, #0] + add r5, r5, #2 + strneh r3, [r8, #0] @ movhi + cmp r9, lr + mov ip, r0, asr #8 + add r8, r8, #2 + str r5, [sp, #68] + bgt .L18844 + b .L18819 +.L19642: + rsb r0, r8, lr + rsb lr, r0, fp + cmp lr, #0 + ble .L18819 + ldr r1, [sp, #24] + add r3, r8, fp + cmp r1, r3 + bhi .L19387 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r8, r7, r3, asl #6 + bne .L19389 + ldr r7, [sp, #124] + ldr r5, [sp, #104] +.L19391: + movs r4, r7, lsr #3 + beq .L19449 + ldr r0, [sp, #68] + mov r1, r5 + mov ip, r8 + mov lr, #0 +.L19451: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L19452 + tst r2, #255 + ldrneh r3, [r0, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #4] + mov r3, r2, lsr #16 + strneh r6, [r1, #4] @ movhi + tst r3, #255 + ldrneh r3, [r0, #2] + strneh r3, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #0] + strneh r6, [r1, #0] @ movhi +.L19452: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L19461 + tst r2, #255 + ldrneh r3, [r0, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #12] + mov r3, r2, lsr #16 + strneh r6, [r1, #12] @ movhi + tst r3, #255 + ldrneh r3, [r0, #10] + strneh r3, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #8] + strneh r6, [r1, #8] @ movhi +.L19461: + add lr, lr, #1 + cmp lr, r4 + sub ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L19451 + ldr ip, [sp, #68] + mov r3, r4, asl #4 + rsb r2, r4, r4, asl #26 + add ip, ip, r3 + add r5, r5, r3 + add r8, r8, r2, asl #6 + str ip, [sp, #68] +.L19449: + ands ip, r7, #7 + beq .L18819 + cmp ip, #3 + ldrls r2, [r8, #4] + bls .L19484 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L19474 + tst r2, #255 + ldrne lr, [sp, #68] + mov r3, r2, lsr #8 + ldrneh lr, [lr, #6] + strneh lr, [r5, #6] @ movhi + tst r3, #255 + ldrne r0, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r0, [r0, #4] + strneh r0, [r5, #4] @ movhi + tst r3, #255 + ldrne r1, [sp, #68] + ldrneh r1, [r1, #2] + strneh r1, [r5, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r2, [sp, #68] + ldrneh r2, [r2, #0] + strneh r2, [r5, #0] @ movhi +.L19474: + subs ip, ip, #4 + ldr r2, [r8, #0] + beq .L18819 + ldr r3, [sp, #68] + add r5, r5, #8 + add r3, r3, #8 + str r3, [sp, #68] +.L19484: + mov r1, #0 +.L19485: + movs r4, r2, lsr #24 + ldrne r6, [sp, #68] + mov r0, r1, asl #1 + ldrneh r6, [r0, r6] + add r1, r1, #1 + strneh r6, [r0, r5] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L19485 + b .L18819 +.L18985: + cmp fp, #0 + add r3, fp, #7 + movge r3, fp + movs r3, r3, asr #3 + beq .L18819 + ldr r6, [sp, #20] + mov r2, #0 + add r1, r6, r8, asl #1 + b .L19015 +.L19646: + ldr ip, [sp, #68] + add r0, r0, #32 + add ip, ip, #16 + add r1, r1, #16 + str ip, [sp, #68] +.L19015: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L19016 + tst ip, #15 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #0] + strneh lr, [r1, #0] @ movhi + tst ip, #240 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst ip, #3840 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + tst ip, #61440 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi + tst ip, #983040 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #8] + strneh lr, [r1, #8] @ movhi + tst ip, #15728640 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + tst ip, #251658240 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs ip, ip, lsr #28 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi +.L19016: + add r2, r2, #1 + cmp r3, r2 + bne .L19646 + b .L18819 +.L19115: + cmp fp, #0 + add r3, fp, #7 + movge r3, fp + movs r3, r3, asr #3 + beq .L18819 + ldr ip, [sp, #20] + add r1, ip, r8, asl #1 + mov ip, #0 + b .L19145 +.L19647: + ldr lr, [sp, #68] + sub r0, r0, #32 + add lr, lr, #16 + add r1, r1, #16 + str lr, [sp, #68] +.L19145: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L19146 + tst r2, #15 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #14] + strneh lr, [r1, #14] @ movhi + tst r2, #240 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #12] + strneh r4, [r1, #12] @ movhi + tst r2, #3840 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #10] + strneh r5, [r1, #10] @ movhi + tst r2, #61440 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi + tst r2, #983040 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #6] + strneh lr, [r1, #6] @ movhi + tst r2, #15728640 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r2, #251658240 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #28 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L19146: + add ip, ip, #1 + cmp r3, ip + bne .L19647 + b .L18819 +.L19540: + cmp fp, #0 + add r3, fp, #7 + movge r3, fp + movs lr, r3, asr #3 + beq .L18819 + ldr r2, [sp, #20] + ldr r3, .L19654+32 + add r1, r2, r8, asl #1 + add r0, r0, r3 + mov r2, #0 + b .L19584 +.L19648: + ldr ip, [sp, #68] + sub r7, r7, #64 + add ip, ip, #16 + add r1, r1, #16 + str ip, [sp, #68] +.L19584: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L19585 + tst ip, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, ip, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs ip, ip, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L19585: + ldr ip, [r7, #0] + cmp ip, #0 + beq .L19594 + tst ip, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #14] + strneh r3, [r1, #14] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, ip, lsr #16 + ldrneh r4, [r4, #12] + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #10] + strneh r5, [r1, #10] @ movhi + movs ip, ip, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi +.L19594: + add r2, r2, #1 + cmp lr, r2 + sub r0, r0, #64 + bne .L19648 + b .L18819 +.L19320: + cmp fp, #0 + add r3, fp, #7 + movge r3, fp + movs r4, r3, asr #3 + beq .L18819 + ldr r3, [sp, #20] + mov lr, #0 + add r1, r3, r8, asl #1 + ldr r3, .L19654+36 + add r0, r0, r3 + b .L19364 +.L19649: + ldr ip, [sp, #68] + add r2, r2, #64 + add ip, ip, #16 + add r1, r1, #16 + str ip, [sp, #68] +.L19364: + ldr ip, [r2, #0] + cmp ip, #0 + beq .L19365 + tst ip, #255 + ldrne r5, [sp, #68] + mov r3, ip, lsr #8 + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi + tst r3, #255 + ldrne r6, [sp, #68] + mov r3, ip, lsr #16 + ldrneh r6, [r6, #2] + strneh r6, [r1, #2] @ movhi + tst r3, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + movs ip, ip, lsr #24 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #6] + strneh r5, [r1, #6] @ movhi +.L19365: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L19374 + tst ip, #255 + ldrne r6, [sp, #68] + mov r3, ip, lsr #8 + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi + tst r3, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #10] + strneh r3, [r1, #10] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs ip, ip, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi +.L19374: + add lr, lr, #1 + cmp r4, lr + add r0, r0, #64 + bne .L19649 + b .L18819 +.L19167: + ands r1, r0, #7 + mov r3, r0, lsr #3 + add ip, r2, r3, asl #6 + ldreq r1, [sp, #104] + beq .L19271 + cmp r1, #3 + rsb r0, r1, #8 + bls .L19272 + cmp r0, #0 + ldr r2, [ip, #4] + ldreq r1, [sp, #104] + beq .L19276 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r3, r2, lsr r3 + mov r1, #0 +.L19277: + tst r3, #255 + ldrne r4, [sp, #68] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #104] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r0, r1 + mov r3, r3, lsr #8 + bne .L19277 + ldr r6, [sp, #68] + mov r3, r0, asl #1 + ldr r0, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add r1, r0, r3 +.L19276: + add ip, ip, #64 +.L19271: + movs lr, lr, lsr #3 + beq .L18819 + mov r0, #0 + b .L19300 +.L19650: + ldr r2, [sp, #68] + add ip, ip, #64 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #68] +.L19300: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L19301 + tst r2, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi +.L19301: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L19310 + tst r2, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi +.L19310: + add r0, r0, #1 + cmp r0, lr + bne .L19650 + b .L18819 +.L19037: + mov r3, ip, lsr #3 + ands r2, ip, #7 + sub r0, r0, r3, asl #5 + ldreq r3, [sp, #104] + beq .L19086 + rsbs r4, r2, #8 + ldr ip, [r0, #0] + ldreq r3, [sp, #104] + beq .L19089 + mov r3, r2, asl #2 + mov r3, ip, asl r3 + mov lr, #0 +.L19090: + movs ip, r3, lsr #28 + ldrne r2, [sp, #68] + mov ip, lr, asl #1 + ldrneh r5, [ip, r2] + ldrne r2, [sp, #104] + add lr, lr, #1 + strneh r5, [ip, r2] @ movhi + cmp lr, r4 + mov r3, r3, asl #4 + bne .L19090 + ldr r6, [sp, #68] + mov r3, r4, asl #1 + ldr ip, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add r3, ip, r3 +.L19089: + sub r0, r0, #32 +.L19086: + movs r1, r1, lsr #3 + beq .L18819 + mov r2, #0 + b .L19096 +.L19651: + ldr ip, [sp, #68] + sub r0, r0, #32 + add ip, ip, #16 + add r3, r3, #16 + str ip, [sp, #68] +.L19096: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L19097 + tst ip, #15 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #14] + strneh lr, [r3, #14] @ movhi + tst ip, #240 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #12] + strneh r4, [r3, #12] @ movhi + tst ip, #3840 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #10] + strneh r5, [r3, #10] @ movhi + tst ip, #61440 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #8] + strneh r6, [r3, #8] @ movhi + tst ip, #983040 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #6] + strneh lr, [r3, #6] @ movhi + tst ip, #15728640 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #4] + strneh r4, [r3, #4] @ movhi + tst ip, #251658240 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #2] + strneh r5, [r3, #2] @ movhi + movs ip, ip, lsr #28 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #0] + strneh r6, [r3, #0] @ movhi +.L19097: + add r2, r2, #1 + cmp r2, r1 + bne .L19651 + b .L18819 +.L18907: + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + ldreq r3, [sp, #104] + add ip, r0, r1 + beq .L18956 + rsbs r4, r3, #8 + ldr r0, [r0, r1] + ldreq r3, [sp, #104] + beq .L18959 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L18960: + tst r0, #15 + ldrne r1, [sp, #68] + mov r3, r2, asl #1 + ldrneh r5, [r3, r1] + ldrne r1, [sp, #104] + add r2, r2, #1 + strneh r5, [r3, r1] @ movhi + cmp r4, r2 + mov r0, r0, lsr #4 + bne .L18960 + ldr r6, [sp, #68] + mov r3, r4, asl #1 + ldr r0, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add r3, r0, r3 +.L18959: + add ip, ip, #32 +.L18956: + movs r0, lr, lsr #3 + beq .L18819 + mov r1, #0 + b .L18966 +.L19652: + ldr r2, [sp, #68] + add ip, ip, #32 + add r2, r2, #16 + add r3, r3, #16 + str r2, [sp, #68] +.L18966: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L18967 + tst r2, #15 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #0] + strneh r4, [r3, #0] @ movhi + tst r2, #240 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #2] + strneh r5, [r3, #2] @ movhi + tst r2, #3840 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #4] + strneh r6, [r3, #4] @ movhi + tst r2, #61440 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #6] + strneh lr, [r3, #6] @ movhi + tst r2, #983040 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #8] + strneh r4, [r3, #8] @ movhi + tst r2, #15728640 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #10] + strneh r5, [r3, #10] @ movhi + tst r2, #251658240 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #12] + strneh r6, [r3, #12] @ movhi + movs r2, r2, lsr #28 + ldrne lr, [sp, #68] + ldrneh lr, [lr, #14] + strneh lr, [r3, #14] @ movhi +.L18967: + add r1, r1, #1 + cmp r1, r0 + bne .L19652 + b .L18819 +.L19387: + ands r2, r0, #7 + mov r3, r0, lsr #3 + sub ip, r7, r3, asl #6 + ldreq r1, [sp, #104] + beq .L19491 + cmp r2, #3 + rsb r0, r2, #8 + bls .L19492 + cmp r0, #0 + ldr r1, [ip, #0] + ldreq r1, [sp, #104] + beq .L19496 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L19497: + movs r2, r3, lsr #24 + ldrne r4, [sp, #68] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #104] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r0 + mov r3, r3, asl #8 + bne .L19497 + ldr r6, [sp, #68] + mov r3, r0, asl #1 + ldr r0, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add r1, r0, r3 +.L19496: + sub ip, ip, #64 +.L19491: + movs lr, lr, lsr #3 + beq .L18819 + mov r0, #0 + b .L19520 +.L19653: + ldr r2, [sp, #68] + sub ip, ip, #64 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #68] +.L19520: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L19521 + tst r2, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L19521: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L19530 + tst r2, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #12] + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #10] + strneh r5, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi +.L19530: + add r0, r0, #1 + cmp r0, lr + bne .L19653 + b .L18819 +.L18909: + ldr lr, [sp, #124] + rsb ip, r3, #8 + cmp lr, ip + bge .L18912 + cmp lr, #0 + ble .L18819 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L18916: + tst r0, #15 + ldrne r1, [sp, #68] + mov r3, r2, asl #1 + ldrneh r4, [r3, r1] + ldr r5, [sp, #124] + ldrne r1, [sp, #104] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r5, r2 + mov r0, r0, lsr #4 + bne .L18916 + b .L18819 +.L19389: + ldr r2, [sp, #124] + rsb lr, ip, #8 + cmp r2, lr + bge .L19392 + cmp r2, #0 + ble .L18819 + cmp ip, #3 + bls .L19395 + ldr r2, [r8, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L19398: + movs r3, r2, lsr #24 + ldrne r4, [sp, #68] + mov r3, r1, asl #1 + ldrneh r5, [r3, r4] + ldr r6, [sp, #124] + ldrne r4, [sp, #104] + add r1, r1, #1 + strneh r5, [r3, r4] @ movhi + cmp r6, r1 + mov r2, r2, asl #8 + bne .L19398 + b .L18819 +.L19169: + ldr r5, [sp, #124] + rsb lr, ip, #8 + cmp r5, lr + bge .L19172 + cmp r5, #0 + ble .L18819 + cmp ip, #3 + bls .L19175 + ldr r2, [r8, #4] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L19178: + tst r1, #255 + ldrne r6, [sp, #68] + mov r3, r2, asl #1 + ldrneh ip, [r3, r6] + ldr lr, [sp, #124] + ldrne r6, [sp, #104] + add r2, r2, #1 + strneh ip, [r3, r6] @ movhi + cmp lr, r2 + mov r1, r1, lsr #8 + bne .L19178 + b .L18819 +.L19039: + ldr r3, [sp, #124] + rsb lr, r4, #8 + cmp r3, lr + bge .L19042 + cmp r3, #0 + ble .L18819 + ldr r2, [r0, #0] + mov r3, r4, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L19046: + movs r4, r0, lsr #28 + ldrne r5, [sp, #68] + mov r3, r2, asl #1 + ldrneh r6, [r3, r5] + ldr ip, [sp, #124] + ldrne r5, [sp, #104] + add r2, r2, #1 + strneh r6, [r3, r5] @ movhi + cmp ip, r2 + mov r0, r0, asl #4 + bne .L19046 + b .L18819 +.L19172: + cmp ip, #3 + bls .L19202 + cmp lr, #0 + ldr r2, [r8, #4] + ldreq r5, [sp, #104] + beq .L19206 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L19207: + tst r1, #255 + ldrne r0, [sp, #68] + mov r3, r2, asl #1 + ldrneh r4, [r3, r0] + ldrne r0, [sp, #104] + add r2, r2, #1 + strneh r4, [r3, r0] @ movhi + cmp lr, r2 + mov r1, r1, lsr #8 + bne .L19207 + ldr r5, [sp, #68] + mov r3, lr, asl #1 + ldr r6, [sp, #104] + add r5, r5, r3 + str r5, [sp, #68] + add r5, r3, r6 +.L19206: + ldr ip, [sp, #124] + add r8, r8, #64 + rsb r7, lr, ip + b .L19171 +.L19272: + subs r4, r0, #4 + ldr r2, [ip, #0] + ldreq r1, [sp, #104] + beq .L19284 + mov r3, r1, asl #3 + mov r3, r2, lsr r3 + mov r1, #0 +.L19285: + tst r3, #255 + ldrne r5, [sp, #68] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldrne r5, [sp, #104] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp r1, r4 + mov r3, r3, lsr #8 + bne .L19285 + mov r3, r0, asl #1 + ldr r0, [sp, #68] + ldr r1, [sp, #104] + add r2, r0, r3 + sub r2, r2, #8 + add r3, r1, r3 + str r2, [sp, #68] + sub r1, r3, #8 +.L19284: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L19290 + tst r2, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi +.L19290: + ldr r0, [sp, #68] + add r1, r1, #8 + add r0, r0, #8 + add ip, ip, #64 + str r0, [sp, #68] + b .L19271 +.L18912: + cmp ip, #0 + ldr r2, [r4, #0] + ldreq r5, [sp, #104] + beq .L18922 + mov r3, r3, asl #2 + mov r3, r2, lsr r3 + mov r1, #0 +.L18923: + tst r3, #15 + ldrne r6, [sp, #68] + mov r2, r1, asl #1 + ldrneh lr, [r2, r6] + ldrne r6, [sp, #104] + add r1, r1, #1 + strneh lr, [r2, r6] @ movhi + cmp ip, r1 + mov r3, r3, lsr #4 + bne .L18923 + ldr r0, [sp, #68] + mov r3, ip, asl #1 + ldr r1, [sp, #104] + add r0, r0, r3 + str r0, [sp, #68] + add r5, r3, r1 +.L18922: + ldr r2, [sp, #124] + add r4, r4, #32 + rsb r7, ip, r2 + b .L18911 +.L19042: + cmp lr, #0 + ldr r2, [r0, #0] + ldreq r1, [sp, #104] + beq .L19052 + mov r3, r4, asl #2 + mov r3, r2, asl r3 + mov ip, #0 +.L19053: + movs r1, r3, lsr #28 + ldrne r4, [sp, #68] + mov r2, ip, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #104] + add ip, ip, #1 + strneh r5, [r2, r4] @ movhi + cmp lr, ip + mov r3, r3, asl #4 + bne .L19053 + ldr r6, [sp, #68] + mov r3, lr, asl #1 + ldr ip, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add r1, r3, ip +.L19052: + ldr r2, [sp, #124] + sub r0, r0, #32 + rsb r7, lr, r2 + b .L19041 +.L19492: + subs r4, r0, #4 + ldr r1, [ip, #4] + ldreq r1, [sp, #104] + beq .L19504 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L19505: + movs r2, r3, lsr #24 + ldrne r5, [sp, #68] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldrne r5, [sp, #104] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp r1, r4 + mov r3, r3, asl #8 + bne .L19505 + mov r3, r0, asl #1 + ldr r0, [sp, #68] + ldr r1, [sp, #104] + add r2, r0, r3 + sub r2, r2, #8 + add r3, r1, r3 + str r2, [sp, #68] + sub r1, r3, #8 +.L19504: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L19510 + tst r2, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #68] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L19510: + ldr r0, [sp, #68] + add r1, r1, #8 + add r0, r0, #8 + sub ip, ip, #64 + str r0, [sp, #68] + b .L19491 +.L19392: + cmp ip, #3 + bls .L19422 + cmp lr, #0 + ldr r2, [r8, #0] + ldreq r5, [sp, #104] + beq .L19426 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L19427: + movs r0, r3, lsr #24 + ldrne r4, [sp, #68] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #104] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp lr, r1 + mov r3, r3, asl #8 + bne .L19427 + ldr r6, [sp, #68] + mov r3, lr, asl #1 + ldr ip, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add r5, ip, r3 +.L19426: + ldr ip, [sp, #124] + sub r8, r8, #64 + rsb r7, lr, ip + b .L19391 +.L19638: + mov r7, #0 + b .L18889 +.L19634: + mov r7, #0 + b .L18854 +.L19202: + subs r0, lr, #4 + ldr r2, [r8, #0] + ldreq r1, [sp, #104] + beq .L19214 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L19215: + tst r1, #255 + ldrne ip, [sp, #68] + mov r3, r2, asl #1 + ldrneh r4, [r3, ip] + ldrne ip, [sp, #104] + add r2, r2, #1 + strneh r4, [r3, ip] @ movhi + cmp r2, r0 + mov r1, r1, lsr #8 + bne .L19215 + ldr r5, [sp, #68] + mov r3, lr, asl #1 + ldr r6, [sp, #104] + add r2, r5, r3 + sub r2, r2, #8 + add r3, r6, r3 + str r2, [sp, #68] + sub r1, r3, #8 +.L19214: + ldr r2, [r8, #4] + cmp r2, #0 + beq .L19220 + tst r2, #255 + ldrne ip, [sp, #68] + mov r3, r2, lsr #8 + ldrneh ip, [ip, #0] + strneh ip, [r1, #0] @ movhi + tst r3, #255 + ldrne r0, [sp, #68] + mov r3, r2, lsr #16 + ldrneh r0, [r0, #2] + strneh r0, [r1, #2] @ movhi + tst r3, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #6] + strneh r4, [r1, #6] @ movhi +.L19220: + ldr r6, [sp, #68] + add r5, r1, #8 + add r6, r6, #8 + str r6, [sp, #68] + b .L19206 +.L19422: + subs r0, lr, #4 + ldr r2, [r8, #4] + ldreq r1, [sp, #104] + beq .L19434 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L19435: + movs r2, r3, lsr #24 + ldrne r4, [sp, #68] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #104] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r0 + mov r3, r3, asl #8 + bne .L19435 + ldr r6, [sp, #68] + mov r3, lr, asl #1 + ldr ip, [sp, #104] + add r2, r6, r3 + sub r2, r2, #8 + add r3, ip, r3 + str r2, [sp, #68] + sub r1, r3, #8 +.L19434: + ldr r2, [r8, #0] + cmp r2, #0 + beq .L19440 + tst r2, #255 + ldrne r0, [sp, #68] + mov r3, r2, lsr #8 + ldrneh r0, [r0, #6] + strneh r0, [r1, #6] @ movhi + tst r3, #255 + ldrne r3, [sp, #68] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + tst r3, #255 + ldrne r4, [sp, #68] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r5, [sp, #68] + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi +.L19440: + ldr r6, [sp, #68] + add r5, r1, #8 + add r6, r6, #8 + str r6, [sp, #68] + b .L19426 +.L19641: + mov r1, r9 + b .L19620 +.L19640: + mov lr, r6 + b .L19618 +.L19175: + ldr r0, [sp, #124] + ldr r3, [r8, #0] + add r2, r0, ip + mov r1, ip, asl #3 + cmp r2, #4 + mov r3, r3, lsr r1 + bhi .L19182 + cmp r0, #0 + movne r1, #0 + beq .L18819 +.L19198: + tst r3, #255 + ldrne r5, [sp, #68] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldr ip, [sp, #124] + ldrne r5, [sp, #104] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp ip, r1 + mov r3, r3, lsr #8 + bne .L19198 + b .L18819 +.L19395: + ldr lr, [sp, #124] + mov r3, ip, asl #3 + ldr r1, [r8, #4] + add r2, lr, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L19402 + cmp lr, #0 + movne r2, #0 + beq .L18819 +.L19418: + movs r5, r1, lsr #24 + ldrne r6, [sp, #68] + mov r3, r2, asl #1 + ldrneh ip, [r3, r6] + ldr lr, [sp, #124] + ldrne r6, [sp, #104] + add r2, r2, #1 + strneh ip, [r3, r6] @ movhi + cmp lr, r2 + mov r1, r1, asl #8 + bne .L19418 + b .L18819 +.L19182: + rsbs r0, ip, #4 + ldreq ip, [sp, #104] + beq .L19187 + mov r1, #0 +.L19188: + tst r3, #255 + ldrne r4, [sp, #68] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #104] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r0 + mov r3, r3, lsr #8 + bne .L19188 + ldr r6, [sp, #68] + mov r3, r0, asl #1 + ldr lr, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add ip, r3, lr +.L19187: + ldr r1, [sp, #124] + ldr r3, [r8, #4] + subs r0, r1, r0 + beq .L18819 + mov r1, #0 +.L19194: + tst r3, #255 + ldrne r4, [sp, #68] + mov r2, r1, asl #1 + ldrneh r4, [r2, r4] + add r1, r1, #1 + strneh r4, [r2, ip] @ movhi + cmp r1, r0 + mov r3, r3, lsr #8 + bne .L19194 + b .L18819 +.L19402: + rsbs r0, ip, #4 + ldreq r3, [sp, #104] + beq .L19407 + mov r2, #0 +.L19408: + movs r3, r1, lsr #24 + ldrne r4, [sp, #68] + mov r3, r2, asl #1 + ldrneh r5, [r3, r4] + ldrne r4, [sp, #104] + add r2, r2, #1 + strneh r5, [r3, r4] @ movhi + cmp r2, r0 + mov r1, r1, asl #8 + bne .L19408 + ldr r6, [sp, #68] + mov r3, r0, asl #1 + ldr ip, [sp, #104] + add r6, r6, r3 + str r6, [sp, #68] + add r3, r3, ip +.L19407: + ldr lr, [sp, #124] + ldr r2, [r8, #0] + subs ip, lr, r0 + beq .L18819 + mov r0, #0 +.L19414: + movs r1, r2, lsr #24 + ldrne r4, [sp, #68] + mov r1, r0, asl #1 + ldrneh r4, [r1, r4] + add r0, r0, #1 + strneh r4, [r1, r3] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L19414 + b .L18819 + .size render_scanline_obj_copy_tile_2D, .-render_scanline_obj_copy_tile_2D + .align 2 + .global render_scanline_obj_copy_tile_1D + .type render_scanline_obj_copy_tile_1D, %function +render_scanline_obj_copy_tile_1D: + @ args = 0, pretend = 0, frame = 592 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r5, .L20498 + add r0, r0, r0, asl #2 + ldrh r4, [r5, #6] + ldr ip, .L20498+4 + add r0, r4, r0, asl #5 + ldrh r6, [r5, #0] + sub sp, sp, #604 + ldr ip, [ip, r0, asl #2] + str r6, [sp, #44] + str ip, [sp, #68] + cmp ip, #0 + ldr ip, [sp, #44] + ldrh r6, [r5, #74] + str r4, [sp, #64] + ldr lr, .L20498+8 + and r4, ip, #7 + ldr ip, .L20498+12 + ldrh r5, [r5, #80] + add r4, ip, r4, asl #7 + add r0, lr, r0, asl #7 + mov r6, r6, lsr #8 + str r4, [sp, #52] + str r0, [sp, #72] + str r1, [sp, #20] + str r2, [sp, #16] + str r3, [sp, #12] + str r6, [sp, #48] + str r5, [sp, #40] + beq .L20448 + rsb r0, r1, r2 + add lr, r3, r1, asl #1 + mov r1, #0 + mov r2, r1 + str lr, [sp, #100] + str r0, [sp, #120] + str r1, [sp, #60] + b .L19659 +.L19663: + ldr lr, [sp, #60] + ldr r0, [sp, #68] + add lr, lr, #1 + cmp r0, lr + str lr, [sp, #60] + beq .L20448 + ldr r2, [sp, #60] +.L19659: + ldr r4, [sp, #72] + ldr r5, .L20498+16 + ldrb r3, [r2, r4] @ zero_extendqisi2 + ldr lr, .L20498+20 + mov r3, r3, asl #3 + ldrh r6, [r3, r5] + add r3, r3, r5 + ldrh r7, [r3, #2] + mov fp, r6, lsr #12 + and r2, fp, #12 + orr sl, r2, r7, lsr #14 + mov r1, r7, asl #23 + ldr r9, [lr, sl, asl #2] + ands ip, r6, #512 + mov r8, r1, asr #23 + ldr r0, [sp, #16] + ldr r5, [sp, #20] + addne r1, r8, r9, asl #1 + addeq r1, r8, r9 + ldrh r3, [r3, #4] + ldr r2, [sp, #20] + cmp r8, r5 + movcs r5, r8 + cmp r1, r0 + movcs r1, r0 + str r3, [sp, #24] + cmp r0, r5 + movls r3, #0 + movhi r3, #1 + cmp r2, r1 + movcs r3, #0 + cmp r3, #0 + str ip, [sp, #28] + beq .L19663 + ldr ip, [sp, #44] + add r4, sp, #124 + str ip, [sp, #0] + ldr lr, [sp, #40] + ldr ip, [sp, #52] + mov r0, r5 + ldr r3, [sp, #48] + mov r2, r4 + str lr, [sp, #4] + str ip, [sp, #8] + bl render_scanline_conditional_tile + and r0, r6, #255 + cmp r0, #160 + ldr r3, .L20498+24 + add r5, r4, r5, asl #1 + subgt r0, r0, #256 + tst r6, #256 + str r5, [sp, #56] + ldr sl, [r3, sl, asl #2] + beq .L19667 + tst r6, #8192 + beq .L19669 + mov r3, r7, lsr #4 + ldr r1, .L20498+16 + ldr lr, [sp, #28] + and r3, r3, #992 + add r3, r3, r1 + add r1, sl, sl, lsr #31 + cmp lr, #0 + ldrh r4, [r3, #30] + mov lr, r1, asr #1 + add r2, r9, r9, lsr #31 + ldr r1, [sp, #20] + mov ip, r2, asr #1 + str r4, [sp, #32] + moveq fp, r9 + moveq r5, ip + moveq r4, lr + movne fp, r9, asl #1 + movne r5, ip, asl #1 + movne r4, lr, asl #1 + cmp r8, r1 + ldrh r7, [r3, #6] + ldrh r2, [r3, #14] + ldrh r6, [r3, #22] + bge .L19674 + rsb r1, r8, r1 + rsb fp, r1, fp + cmp fp, #0 + ble .L19663 + ldr r8, [sp, #20] + rsb r5, r1, r5 +.L19674: + ldr r1, [sp, #16] + add r3, r8, fp + cmp r3, r1 + bge .L20476 +.L19677: + add r0, r0, r4 + ldr r4, [sp, #32] + mov ip, ip, asl #8 + mov r1, r4, asl #16 + mov r3, r7, asl #16 + mov r4, r1, asr #16 + str ip, [sp, #108] + ldr r1, [sp, #64] + mov ip, lr, asl #8 + ldr lr, [sp, #12] + mov r2, r2, asl #16 + mov r3, r3, asr #16 + cmp r6, #0 + add r8, lr, r8, asl #1 + str r3, [sp, #76] + mov r7, r2, asr #16 + rsb lr, r0, r1 + beq .L20477 + ldr r0, [sp, #24] + cmp r9, #0 + add r1, r9, #7 + mov r2, r0, asl #22 + movge r1, r9 + ldr r3, .L20498+28 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #6 + cmp fp, #0 + str r2, [sp, #116] + str r1, [sp, #80] + ble .L19663 + mov r3, r6, asl #16 + mov r6, r3, asr #16 + ldr r0, [sp, #76] + mul r2, lr, r4 + mul r1, r6, r5 + mul r3, lr, r7 + mul r0, r5, r0 + rsb r2, r1, r2 + ldr r1, [sp, #108] + rsb r3, r0, r3 + add r5, r1, r3 + add r4, ip, r2 + mov lr, r5, asr #8 + mov ip, r4, asr #8 + cmp lr, r9 + cmpcc ip, sl + movcs r3, #0 + movcc r3, #1 + movcs r7, r3 + bcc .L20478 +.L19695: + ldr r3, [sp, #56] + ldr r2, [sp, #76] + add r7, r7, #1 + add r5, r5, r2 + add r4, r4, r6 + add r3, r3, #2 + cmp fp, r7 + mov lr, r5, asr #8 + mov ip, r4, asr #8 + add r8, r8, #2 + str r3, [sp, #56] + beq .L19663 + cmp lr, r9 + cmpcc ip, sl + bcs .L19695 + cmp ip, sl + cmpcc lr, r9 + bcs .L19663 +.L20479: + ldr r0, [sp, #76] + and r3, ip, #7 + mov r2, lr, asr #3 + ldr r1, [sp, #116] + mov r3, r3, asl #3 + add r5, r5, r0 + add r3, r3, r2, asl #6 + ldr r0, [sp, #80] + mov r2, ip, asr #3 + add r3, r3, r1 + mla r0, r2, r0, r3 + and r1, lr, #7 + ldrb r3, [r0, r1] @ zero_extendqisi2 + add r7, r7, #1 + cmp r3, #0 + ldrne r2, [sp, #56] + ldr r3, [sp, #56] + ldrneh r2, [r2, #0] + add r4, r4, r6 + strneh r2, [r8, #0] @ movhi + add r3, r3, #2 + cmp fp, r7 + mov ip, r4, asr #8 + mov lr, r5, asr #8 + add r8, r8, #2 + str r3, [sp, #56] + ble .L19663 +.L19698: + cmp ip, sl + cmpcc lr, r9 + bcc .L20479 + b .L19663 +.L19667: + ldr lr, [sp, #64] + tst r7, #8192 + rsb ip, r0, lr + rsbne r3, ip, sl + subne ip, r3, #1 + mov r2, r7, asl #19 + and r3, fp, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L19663 + .p2align 2 +.L19747: + .word .L19743 + .word .L19744 + .word .L19745 + .word .L19746 +.L20448: + add sp, sp, #604 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L19669: + ldr r5, .L20498+16 + mov r3, r7, lsr #4 + and r3, r3, #992 + add r3, r3, r5 + ldr r4, [sp, #28] + add r1, sl, sl, lsr #31 + ldrh r6, [r3, #30] + mov lr, r1, asr #1 + add r2, r9, r9, lsr #31 + ldr r1, [sp, #20] + cmp r4, #0 + mov ip, r2, asr #1 + str r6, [sp, #36] + moveq r5, ip + moveq r6, r9 + moveq r4, lr + movne r6, r9, asl #1 + movne r5, ip, asl #1 + movne r4, lr, asl #1 + cmp r8, r1 + ldrh r7, [r3, #6] + ldrh r2, [r3, #14] + ldrh fp, [r3, #22] + bge .L19706 + rsb r1, r8, r1 + rsb r6, r1, r6 + cmp r6, #0 + ble .L19663 + ldr r8, [sp, #20] + rsb r5, r1, r5 +.L19706: + ldr r1, [sp, #16] + add r3, r8, r6 + cmp r3, r1 + bge .L20480 +.L19709: + add r0, r0, r4 + ldr r4, [sp, #36] + mov ip, ip, asl #8 + mov r1, r4, asl #16 + mov r3, r7, asl #16 + mov r2, r2, asl #16 + mov r4, r1, asr #16 + str ip, [sp, #104] + ldr r1, [sp, #64] + mov ip, lr, asl #8 + ldr lr, [sp, #12] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + cmp fp, #0 + add r8, lr, r8, asl #1 + str r3, [sp, #84] + str r2, [sp, #88] + rsb lr, r0, r1 + beq .L20481 + ldr r0, [sp, #24] + cmp r9, #0 + add r1, r9, #7 + mov r2, r0, asl #22 + movge r1, r9 + ldr r3, .L20498+28 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #5 + cmp r6, #0 + str r2, [sp, #112] + str r1, [sp, #96] + ble .L19663 + mov r3, fp, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #92] + ldr r1, [sp, #92] + ldr r3, [sp, #88] + ldr r0, [sp, #84] + mul r2, lr, r4 + mul r1, r5, r1 + mul r3, lr, r3 + mul r0, r5, r0 + rsb r2, r1, r2 + ldr r1, [sp, #104] + rsb r3, r0, r3 + add r5, r1, r3 + add r4, ip, r2 + mov lr, r5, asr #8 + mov r3, r4, asr #8 + cmp lr, r9 + cmpcc r3, sl + movcs r2, #0 + movcc r2, #1 + movcs r7, r2 + bcc .L20482 +.L19730: + ldr r3, [sp, #92] + ldr ip, [sp, #56] + ldr r2, [sp, #84] + add r7, r7, #1 + add r5, r5, r2 + add r4, r4, r3 + add ip, ip, #2 + cmp r6, r7 + mov lr, r5, asr #8 + mov r3, r4, asr #8 + add r8, r8, #2 + str ip, [sp, #56] + beq .L19663 + cmp lr, r9 + cmpcc r3, sl + bcs .L19730 + cmp r3, sl + cmpcc lr, r9 + bcs .L19663 +.L20483: + ldr r1, [sp, #112] + and r0, r3, #7 + ldr r2, [sp, #96] + add r0, r1, r0, asl #2 + and r1, r3, #7 + mov r3, r3, asr #3 + mov ip, lr, asr #1 + mul r2, r3, r2 + and fp, ip, #3 + ldr ip, [sp, #112] + mov r3, lr, asr #1 + add r1, ip, r1, asl #2 + and ip, r3, #3 + mov r3, lr, asr #3 + add r2, r2, r3, asl #5 + add r3, r0, r2 + tst lr, #1 + add r0, r1, r2 + ldreqb r3, [r0, ip] @ zero_extendqisi2 + ldrneb r3, [r3, fp] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + cmp r0, #0 + ldrne r2, [sp, #56] + ldr lr, [sp, #84] + ldrneh r2, [r2, #0] + ldr ip, [sp, #56] + ldr r1, [sp, #92] + add r7, r7, #1 + strneh r2, [r8, #0] @ movhi + add r5, r5, lr + add r4, r4, r1 + add ip, ip, #2 + cmp r6, r7 + mov lr, r5, asr #8 + mov r3, r4, asr #8 + add r8, r8, #2 + str ip, [sp, #56] + ble .L19663 +.L19733: + cmp r3, sl + cmpcc lr, r9 + bcc .L20483 + b .L19663 +.L20480: + rsb r6, r8, r1 + cmp r6, #0 + bgt .L19709 + b .L19663 +.L20476: + rsb fp, r8, r1 + cmp fp, #0 + bgt .L19677 + b .L19663 +.L20477: + mla r3, lr, r4, ip + mov r0, r3, asr #8 + cmp r0, sl + bcs .L19663 + cmp r9, #0 + ldr r4, [sp, #24] + add r3, r9, #7 + movge r3, r9 + mov r2, r4, asl #22 + mov r3, r3, asr #3 + mov r3, r3, asl #1 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L20498+28 + add r0, r0, ip, asl #2 + cmp fp, #0 + add r4, r3, r0, asl #3 + ble .L19663 + ldr r2, [sp, #76] + mul r3, lr, r7 + mul r2, r5, r2 + ldr r5, [sp, #108] + rsb r3, r2, r3 + add r0, r5, r3 + mov ip, r0, asr #8 + cmp ip, r9 + movcs lr, r6 + bcc .L20484 +.L19685: + ldr r1, [sp, #56] + ldr r6, [sp, #76] + add lr, lr, #1 + add r0, r0, r6 + add r1, r1, #2 + cmp fp, lr + mov ip, r0, asr #8 + add r8, r8, #2 + str r1, [sp, #56] + beq .L19663 + cmp ip, r9 + bcs .L19685 + b .L20462 +.L20481: + mla r3, lr, r4, ip + mov r0, r3, asr #8 + cmp r0, sl + bcs .L19663 + ldr r4, [sp, #24] + cmp r9, #0 + add r3, r9, #7 + mov r2, r4, asl #22 + movge r3, r9 + mov r3, r3, asr #3 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L20498+28 + add r0, r0, ip, asl #3 + cmp r6, #0 + add r7, r3, r0, asl #2 + ble .L19663 + ldr r3, [sp, #88] + ldr r2, [sp, #84] + mul r3, lr, r3 + mul r2, r5, r2 + ldr r5, [sp, #104] + rsb r3, r2, r3 + add r0, r5, r3 + mov ip, r0, asr #8 + cmp ip, r9 + movcs r1, fp + bcc .L20485 +.L19717: + ldr ip, [sp, #84] + ldr lr, [sp, #56] + add r1, r1, #1 + add r0, r0, ip + add lr, lr, #2 + cmp r6, r1 + mov ip, r0, asr #8 + add r8, r8, #2 + str lr, [sp, #56] + beq .L19663 + cmp ip, r9 + bcs .L19717 + b .L20464 +.L19746: + cmp r9, #0 + add r2, r9, #7 + movge r2, r9 + subs r3, r9, #8 + submi r3, r9, #1 + mov lr, r2, asr #3 + mov r3, r3, asr #3 + mov r1, ip, lsr #3 + mla r0, lr, r1, r3 + ldr r1, [sp, #24] + and r3, ip, #7 + mov r2, r1, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + add r3, r3, r2, asl #2 + ldr r2, [sp, #20] + mov r0, r3, asl #3 + ldr r3, .L20498+28 + cmp r8, r2 + add r7, r0, r3 + blt .L20486 + ldr r4, [sp, #16] + add r3, r8, r9 + cmp r4, r3 + bhi .L20384 + rsb r9, r8, r4 + cmp r9, #0 + ble .L19663 + ldr r5, [sp, #12] + movs sl, r9, lsr #3 + add r1, r5, r8, asl #1 + beq .L20387 + ldr r3, .L20498+32 + ldr r4, [sp, #56] + add r0, r0, r3 + mov lr, r1 + mov r5, r7 + mov r2, #0 +.L20389: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L20390 + tst ip, #255 + ldrneh r6, [r4, #6] + mov r3, ip, lsr #8 + strneh r6, [lr, #6] @ movhi + tst r3, #255 + ldrneh r3, [r4, #4] + strneh r3, [lr, #4] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrneh r6, [r4, #2] + strneh r6, [lr, #2] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r4, #0] + strneh ip, [lr, #0] @ movhi +.L20390: + ldr ip, [r5, #0] + cmp ip, #0 + beq .L20399 + tst ip, #255 + ldrneh r3, [r4, #14] + strneh r3, [lr, #14] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r6, [r4, #12] + mov r3, ip, lsr #16 + strneh r6, [lr, #12] @ movhi + tst r3, #255 + ldrneh r3, [r4, #10] + strneh r3, [lr, #10] @ movhi + movs ip, ip, lsr #24 + ldrneh r6, [r4, #8] + strneh r6, [lr, #8] @ movhi +.L20399: + add r2, r2, #1 + cmp sl, r2 + sub r5, r5, #64 + add lr, lr, #16 + add r4, r4, #16 + sub r0, r0, #64 + bne .L20389 + ldr ip, [sp, #56] + mov r3, sl, asl #4 + rsb r2, sl, sl, asl #26 + add ip, ip, r3 + add r1, r1, r3 + add r7, r7, r2, asl #6 + str ip, [sp, #56] +.L20387: + ands ip, r9, #7 + beq .L19663 + cmp ip, #3 + ldrls r2, [r7, #4] + bls .L20422 + ldr r2, [r7, #4] + cmp r2, #0 + beq .L20412 + tst r2, #255 + ldrne lr, [sp, #56] + mov r3, r2, lsr #8 + ldrneh lr, [lr, #6] + strneh lr, [r1, #6] @ movhi + tst r3, #255 + ldrne r0, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r0, [r0, #4] + strneh r0, [r1, #4] @ movhi + tst r3, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #2] + strneh r3, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #0] + strneh r4, [r1, #0] @ movhi +.L20412: + subs ip, ip, #4 + ldr r2, [r7, #0] + beq .L19663 + ldr r5, [sp, #56] + add r1, r1, #8 + add r5, r5, #8 + str r5, [sp, #56] +.L20422: + mov r3, #0 +.L20423: + movs r6, r2, lsr #24 + ldrne lr, [sp, #56] + mov r0, r3, asl #1 + ldrneh lr, [r0, lr] + add r3, r3, #1 + strneh lr, [r0, r1] @ movhi + cmp ip, r3 + mov r2, r2, asl #8 + bhi .L20423 + b .L19663 +.L19743: + ldr r0, [sp, #24] + cmp r9, #0 + add r3, r9, #7 + mov r2, r0, asl #22 + movge r3, r9 + mov lr, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, lr, r3, r2 + ldr r2, [sp, #20] + and r1, ip, #7 + ldr r3, .L20498+28 + add r1, r1, r0, asl #3 + cmp r8, r2 + add r0, r3, r1, asl #2 + blt .L20487 + ldr r4, [sp, #16] + add r3, r8, r9 + cmp r4, r3 + bhi .L19829 + rsb r7, r8, r4 + cmp r7, #0 + ble .L19663 + ldr r6, [sp, #12] + movs r5, r7, lsr #3 + add r1, r6, r8, asl #1 + beq .L19832 + ldr lr, [sp, #56] + mov ip, r1 + mov r4, r0 + mov r2, #0 +.L19834: + ldr r3, [r4, #0] + cmp r3, #0 + beq .L19835 + tst r3, #15 + ldrneh r6, [lr, #0] + strneh r6, [ip, #0] @ movhi + tst r3, #240 + ldrneh r6, [lr, #2] + strneh r6, [ip, #2] @ movhi + tst r3, #3840 + ldrneh r6, [lr, #4] + strneh r6, [ip, #4] @ movhi + tst r3, #61440 + ldrneh r6, [lr, #6] + strneh r6, [ip, #6] @ movhi + tst r3, #983040 + ldrneh r6, [lr, #8] + strneh r6, [ip, #8] @ movhi + tst r3, #15728640 + ldrneh r6, [lr, #10] + strneh r6, [ip, #10] @ movhi + tst r3, #251658240 + ldrneh r6, [lr, #12] + strneh r6, [ip, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r3, [lr, #14] + strneh r3, [ip, #14] @ movhi +.L19835: + add r2, r2, #1 + cmp r2, r5 + add r4, r4, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L19834 + ldr r4, [sp, #56] + mov r3, r5, asl #4 + add r4, r4, r3 + add r1, r1, r3 + add r0, r0, r5, asl #5 + str r4, [sp, #56] +.L19832: + ands ip, r7, #7 + beq .L19663 + ldr r0, [r0, #0] + mov r2, #0 +.L19854: + tst r0, #15 + ldrne r5, [sp, #56] + mov r3, r2, asl #1 + ldrneh r5, [r3, r5] + add r2, r2, #1 + strneh r5, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, lsr #4 + bne .L19854 + b .L19663 +.L19744: + ldr lr, [sp, #24] + cmp r9, #0 + add r3, r9, #7 + mov r2, lr, asl #22 + movge r3, r9 + mov lr, r3, asr #3 + mov r2, r2, lsr #22 + mov r1, ip, lsr #3 + mla r0, lr, r1, r2 + subs r3, r9, #8 + submi r3, r9, #1 + add r0, r0, r3, asr #3 + and r2, ip, #7 + add r2, r2, r0, asl #3 + ldr r0, [sp, #20] + ldr r3, .L20498+28 + cmp r8, r0 + add r0, r3, r2, asl #2 + blt .L20488 + ldr r1, [sp, #16] + add r3, r8, r9 + cmp r1, r3 + bhi .L19959 + rsb r7, r8, r1 + cmp r7, #0 + ble .L19663 + ldr r2, [sp, #12] + movs r3, r7, lsr #3 + add r1, r2, r8, asl #1 + beq .L19962 + ldr lr, [sp, #56] + mov ip, r1 + mov r4, r0 + mov r5, #0 +.L19964: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L19965 + tst r2, #15 + ldrneh r6, [lr, #14] + strneh r6, [ip, #14] @ movhi + tst r2, #240 + ldrneh r6, [lr, #12] + strneh r6, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r6, [lr, #10] + strneh r6, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r6, [lr, #8] + strneh r6, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r6, [lr, #6] + strneh r6, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r6, [lr, #4] + strneh r6, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r6, [lr, #2] + strneh r6, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r2, [lr, #0] + strneh r2, [ip, #0] @ movhi +.L19965: + add r5, r5, #1 + cmp r5, r3 + sub r4, r4, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L19964 + ldr r4, [sp, #56] + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r4, r4, r3 + add r1, r1, r3 + add r0, r0, r2, asl #5 + str r4, [sp, #56] +.L19962: + ands ip, r7, #7 + beq .L19663 + ldr r0, [r0, #0] + mov r2, #0 +.L19984: + movs r5, r0, lsr #28 + ldrne r6, [sp, #56] + mov r3, r2, asl #1 + ldrneh r6, [r3, r6] + add r2, r2, #1 + strneh r6, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L19984 + b .L19663 +.L19745: + ldr r4, [sp, #24] + cmp r9, #0 + add r3, r9, #7 + mov r1, r4, asl #22 + movge r3, r9 + mov r2, ip, lsr #3 + mov r4, r3, asr #3 + mov r2, r2, asl #1 + mov r1, r1, lsr #22 + mla r0, r2, r4, r1 + and r3, ip, #7 + add r3, r3, r0, asl #2 + ldr r5, [sp, #20] + mov r0, r3, asl #3 + ldr r3, .L20498+28 + cmp r8, r5 + add r2, r0, r3 + blt .L20489 + ldr r5, [sp, #16] + add r3, r8, r9 + cmp r5, r3 + bhi .L20164 + rsb r9, r8, r5 + cmp r9, #0 + ble .L19663 + ldr r6, [sp, #12] + movs sl, r9, lsr #3 + add r1, r6, r8, asl #1 + beq .L20167 + ldr r3, .L20498+36 + ldr r4, [sp, #56] + add r0, r0, r3 + mov lr, r1 + mov r5, r2 + mov r7, #0 +.L20169: + ldr ip, [r5, #0] + cmp ip, #0 + beq .L20170 + tst ip, #255 + ldrneh r3, [r4, #0] + strneh r3, [lr, #0] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r6, [r4, #2] + mov r3, ip, lsr #16 + strneh r6, [lr, #2] @ movhi + tst r3, #255 + ldrneh r3, [r4, #4] + strneh r3, [lr, #4] @ movhi + movs ip, ip, lsr #24 + ldrneh r6, [r4, #6] + strneh r6, [lr, #6] @ movhi +.L20170: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L20179 + tst ip, #255 + ldrneh r3, [r4, #8] + strneh r3, [lr, #8] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r6, [r4, #10] + mov r3, ip, lsr #16 + strneh r6, [lr, #10] @ movhi + tst r3, #255 + ldrneh r3, [r4, #12] + strneh r3, [lr, #12] @ movhi + movs ip, ip, lsr #24 + ldrneh r6, [r4, #14] + strneh r6, [lr, #14] @ movhi +.L20179: + add r7, r7, #1 + cmp r7, sl + add r5, r5, #64 + add lr, lr, #16 + add r4, r4, #16 + add r0, r0, #64 + bne .L20169 + ldr ip, [sp, #56] + mov r3, sl, asl #4 + add ip, ip, r3 + add r1, r1, r3 + add r2, r2, sl, asl #6 + str ip, [sp, #56] +.L20167: + ands ip, r9, #7 + beq .L19663 + cmp ip, #3 + ldrls r3, [r2, #0] + bls .L20202 + ldr r0, [r2, #0] + cmp r0, #0 + beq .L20192 + tst r0, #255 + ldrne lr, [sp, #56] + mov r3, r0, lsr #8 + ldrneh lr, [lr, #0] + strneh lr, [r1, #0] @ movhi + tst r3, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #2] + strneh r3, [r1, #2] @ movhi + mov r3, r0, lsr #16 + tst r3, #255 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + movs r0, r0, lsr #24 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #6] + strneh r5, [r1, #6] @ movhi +.L20192: + subs ip, ip, #4 + ldr r3, [r2, #4] + beq .L19663 + ldr r6, [sp, #56] + add r1, r1, #8 + add r6, r6, #8 + str r6, [sp, #56] +.L20202: + mov r2, #0 +.L20203: + tst r3, #255 + ldrne lr, [sp, #56] + mov r0, r2, asl #1 + ldrneh lr, [r0, lr] + add r2, r2, #1 + strneh lr, [r0, r1] @ movhi + cmp ip, r2 + mov r3, r3, lsr #8 + bhi .L20203 + b .L19663 +.L20499: + .align 2 +.L20498: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word tile_mode_renderers + .word oam_ram + .word obj_width_table + .word obj_height_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L20489: + rsb r0, r8, r5 + rsb lr, r0, r9 + cmp lr, #0 + ble .L19663 + ldr r6, [sp, #16] + add r3, r8, r9 + cmp r6, r3 + bhi .L20011 + mov r3, r0, lsr #3 + ands ip, r0, #7 + add r8, r2, r3, asl #6 + bne .L20013 + ldr r7, [sp, #120] + ldr r5, [sp, #100] +.L20015: + movs r4, r7, lsr #3 + beq .L20073 + ldr r0, [sp, #56] + mov r1, r5 + mov ip, r8 + mov lr, #0 +.L20075: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L20076 + tst r2, #255 + ldrneh r3, [r0, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #2] + mov r3, r2, lsr #16 + strneh r6, [r1, #2] @ movhi + tst r3, #255 + ldrneh r3, [r0, #4] + strneh r3, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #6] + strneh r6, [r1, #6] @ movhi +.L20076: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L20085 + tst r2, #255 + ldrneh r3, [r0, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #10] + mov r3, r2, lsr #16 + strneh r6, [r1, #10] @ movhi + tst r3, #255 + ldrneh r3, [r0, #12] + strneh r3, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #14] + strneh r6, [r1, #14] @ movhi +.L20085: + add lr, lr, #1 + cmp lr, r4 + add ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L20075 + ldr ip, [sp, #56] + mov r3, r4, asl #4 + add ip, ip, r3 + add r5, r5, r3 + add r8, r8, r4, asl #6 + str ip, [sp, #56] +.L20073: + ands r0, r7, #7 + beq .L19663 + cmp r0, #3 + ldrls r3, [r8, #0] + bls .L20108 + ldr r2, [r8, #0] + cmp r2, #0 + beq .L20098 + tst r2, #255 + ldrne lr, [sp, #56] + mov r3, r2, lsr #8 + ldrneh lr, [lr, #0] + strneh lr, [r5, #0] @ movhi + tst r3, #255 + ldrne r1, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r1, [r1, #2] + strneh r1, [r5, #2] @ movhi + tst r3, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #4] + strneh r3, [r5, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #6] + strneh r4, [r5, #6] @ movhi +.L20098: + subs r0, r0, #4 + ldr r3, [r8, #4] + beq .L19663 + ldr r6, [sp, #56] + add r5, r5, #8 + add r6, r6, #8 + str r6, [sp, #56] +.L20108: + mov r2, #0 +.L20109: + tst r3, #255 + ldrne ip, [sp, #56] + mov r1, r2, asl #1 + ldrneh ip, [r1, ip] + add r2, r2, #1 + strneh ip, [r1, r5] @ movhi + cmp r0, r2 + mov r3, r3, lsr #8 + bhi .L20109 + b .L19663 +.L20488: + ldr r1, [sp, #20] + rsb ip, r8, r1 + rsb r1, ip, r9 + cmp r1, #0 + ble .L19663 + ldr r2, [sp, #16] + add r3, r8, r9 + cmp r2, r3 + bhi .L19881 + mov r3, ip, lsr #3 + ands r4, ip, #7 + sub r0, r0, r3, asl #5 + bne .L19883 + ldr r7, [sp, #120] + ldr r1, [sp, #100] +.L19885: + movs r3, r7, lsr #3 + beq .L19902 + ldr lr, [sp, #56] + mov ip, r1 + mov r4, r0 + mov r5, #0 +.L19904: + ldr r2, [r4, #0] + cmp r2, #0 + beq .L19905 + tst r2, #15 + ldrneh r6, [lr, #14] + strneh r6, [ip, #14] @ movhi + tst r2, #240 + ldrneh r6, [lr, #12] + strneh r6, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r6, [lr, #10] + strneh r6, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r6, [lr, #8] + strneh r6, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r6, [lr, #6] + strneh r6, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r6, [lr, #4] + strneh r6, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r6, [lr, #2] + strneh r6, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r2, [lr, #0] + strneh r2, [ip, #0] @ movhi +.L19905: + add r5, r5, #1 + cmp r5, r3 + sub r4, r4, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L19904 + ldr r4, [sp, #56] + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r4, r4, r3 + add r1, r1, r3 + add r0, r0, r2, asl #5 + str r4, [sp, #56] +.L19902: + ands ip, r7, #7 + beq .L19663 + ldr r0, [r0, #0] + mov r2, #0 +.L19924: + movs r5, r0, lsr #28 + ldrne r6, [sp, #56] + mov r3, r2, asl #1 + ldrneh r6, [r3, r6] + add r2, r2, #1 + strneh r6, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L19924 + b .L19663 +.L20487: + rsb ip, r8, r2 + rsb lr, ip, r9 + cmp lr, #0 + ble .L19663 + ldr r4, [sp, #16] + add r3, r8, r9 + cmp r4, r3 + bhi .L19751 + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + add r4, r0, r1 + bne .L19753 + ldr r7, [sp, #120] + ldr r5, [sp, #100] +.L19755: + movs lr, r7, lsr #3 + beq .L19772 + ldr r1, [sp, #56] + mov r2, r5 + mov r0, r4 + mov ip, #0 +.L19774: + ldr r3, [r0, #0] + cmp r3, #0 + beq .L19775 + tst r3, #15 + ldrneh r6, [r1, #0] + strneh r6, [r2, #0] @ movhi + tst r3, #240 + ldrneh r6, [r1, #2] + strneh r6, [r2, #2] @ movhi + tst r3, #3840 + ldrneh r6, [r1, #4] + strneh r6, [r2, #4] @ movhi + tst r3, #61440 + ldrneh r6, [r1, #6] + strneh r6, [r2, #6] @ movhi + tst r3, #983040 + ldrneh r6, [r1, #8] + strneh r6, [r2, #8] @ movhi + tst r3, #15728640 + ldrneh r6, [r1, #10] + strneh r6, [r2, #10] @ movhi + tst r3, #251658240 + ldrneh r6, [r1, #12] + strneh r6, [r2, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r3, [r1, #14] + strneh r3, [r2, #14] @ movhi +.L19775: + add ip, ip, #1 + cmp ip, lr + add r0, r0, #32 + add r2, r2, #16 + add r1, r1, #16 + bne .L19774 + ldr r6, [sp, #56] + mov r3, lr, asl #4 + add r6, r6, r3 + add r5, r5, r3 + add r4, r4, lr, asl #5 + str r6, [sp, #56] +.L19772: + ands r0, r7, #7 + beq .L19663 + ldr r3, [r4, #0] + mov r1, #0 +.L19794: + tst r3, #15 + ldrne ip, [sp, #56] + mov r2, r1, asl #1 + ldrneh ip, [r2, ip] + add r1, r1, #1 + strneh ip, [r2, r5] @ movhi + cmp r1, r0 + mov r3, r3, lsr #4 + bne .L19794 + b .L19663 +.L19720: + cmp ip, r9 + bcs .L19663 +.L20464: + mov r3, ip, asr #1 + and r4, r3, #3 + mov r3, ip, asr #3 + mov r3, r3, asl #5 + mov r2, ip, asr #1 + tst ip, #1 + and lr, r2, #3 + add ip, r3, r7 + add r2, r3, r7 + ldreqb r3, [r2, lr] @ zero_extendqisi2 + ldrneb r3, [ip, r4] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + cmp r2, #0 + ldrne r4, [sp, #56] + ldr r5, [sp, #56] + ldrneh r4, [r4, #0] + ldr r3, [sp, #84] + add r1, r1, #1 + strneh r4, [r8, #0] @ movhi + add r0, r0, r3 + add r5, r5, #2 + cmp r6, r1 + mov ip, r0, asr #8 + add r8, r8, #2 + str r5, [sp, #56] + bgt .L19720 + b .L19663 +.L19688: + cmp ip, r9 + bcs .L19663 +.L20462: + ldr r2, [sp, #76] + mov r3, ip, asr #3 + add r3, r4, r3, asl #6 + and r1, ip, #7 + add r0, r0, r2 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r5, [sp, #56] + cmp r2, #0 + ldrne r3, [sp, #56] + add lr, lr, #1 + ldrneh r3, [r3, #0] + add r5, r5, #2 + strneh r3, [r8, #0] @ movhi + cmp fp, lr + mov ip, r0, asr #8 + add r8, r8, #2 + str r5, [sp, #56] + bgt .L19688 + b .L19663 +.L20486: + rsb r0, r8, r2 + rsb lr, r0, r9 + cmp lr, #0 + ble .L19663 + ldr r4, [sp, #16] + add r3, r8, r9 + cmp r4, r3 + bhi .L20231 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub r8, r7, r3, asl #6 + bne .L20233 + ldr r7, [sp, #120] + ldr r5, [sp, #100] +.L20235: + movs r4, r7, lsr #3 + beq .L20293 + ldr r0, [sp, #56] + mov r1, r5 + mov ip, r8 + mov lr, #0 +.L20295: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L20296 + tst r2, #255 + ldrneh r3, [r0, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #4] + mov r3, r2, lsr #16 + strneh r6, [r1, #4] @ movhi + tst r3, #255 + ldrneh r3, [r0, #2] + strneh r3, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #0] + strneh r6, [r1, #0] @ movhi +.L20296: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L20305 + tst r2, #255 + ldrneh r3, [r0, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r6, [r0, #12] + mov r3, r2, lsr #16 + strneh r6, [r1, #12] @ movhi + tst r3, #255 + ldrneh r3, [r0, #10] + strneh r3, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrneh r6, [r0, #8] + strneh r6, [r1, #8] @ movhi +.L20305: + add lr, lr, #1 + cmp lr, r4 + sub ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L20295 + ldr ip, [sp, #56] + mov r3, r4, asl #4 + rsb r2, r4, r4, asl #26 + add ip, ip, r3 + add r5, r5, r3 + add r8, r8, r2, asl #6 + str ip, [sp, #56] +.L20293: + ands ip, r7, #7 + beq .L19663 + cmp ip, #3 + ldrls r2, [r8, #4] + bls .L20328 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L20318 + tst r2, #255 + ldrne lr, [sp, #56] + mov r3, r2, lsr #8 + ldrneh lr, [lr, #6] + strneh lr, [r5, #6] @ movhi + tst r3, #255 + ldrne r0, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r0, [r0, #4] + strneh r0, [r5, #4] @ movhi + tst r3, #255 + ldrne r1, [sp, #56] + ldrneh r1, [r1, #2] + strneh r1, [r5, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r2, [sp, #56] + ldrneh r2, [r2, #0] + strneh r2, [r5, #0] @ movhi +.L20318: + subs ip, ip, #4 + ldr r2, [r8, #0] + beq .L19663 + ldr r3, [sp, #56] + add r5, r5, #8 + add r3, r3, #8 + str r3, [sp, #56] +.L20328: + mov r1, #0 +.L20329: + movs r4, r2, lsr #24 + ldrne r6, [sp, #56] + mov r0, r1, asl #1 + ldrneh r6, [r0, r6] + add r1, r1, #1 + strneh r6, [r0, r5] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L20329 + b .L19663 +.L19829: + cmp lr, #0 + beq .L19663 + ldr r6, [sp, #12] + mov r3, #0 + add r1, r6, r8, asl #1 + b .L19859 +.L20490: + ldr ip, [sp, #56] + add r0, r0, #32 + add ip, ip, #16 + add r1, r1, #16 + str ip, [sp, #56] +.L19859: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L19860 + tst ip, #15 + ldrne r2, [sp, #56] + ldrneh r2, [r2, #0] + strneh r2, [r1, #0] @ movhi + tst ip, #240 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst ip, #3840 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + tst ip, #61440 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi + tst ip, #983040 + ldrne r2, [sp, #56] + ldrneh r2, [r2, #8] + strneh r2, [r1, #8] @ movhi + tst ip, #15728640 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + tst ip, #251658240 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs ip, ip, lsr #28 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi +.L19860: + add r3, r3, #1 + cmp lr, r3 + bne .L20490 + b .L19663 +.L19959: + cmp lr, #0 + beq .L19663 + ldr ip, [sp, #12] + mov r3, #0 + add r1, ip, r8, asl #1 + b .L19989 +.L20491: + ldr r2, [sp, #56] + sub r0, r0, #32 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #56] +.L19989: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L19990 + tst r2, #15 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #14] + strneh r4, [r1, #14] @ movhi + tst r2, #240 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + tst r2, #3840 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #10] + strneh r6, [r1, #10] @ movhi + tst r2, #61440 + ldrne ip, [sp, #56] + ldrneh ip, [ip, #8] + strneh ip, [r1, #8] @ movhi + tst r2, #983040 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #6] + strneh r4, [r1, #6] @ movhi + tst r2, #15728640 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + tst r2, #251658240 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #2] + strneh r6, [r1, #2] @ movhi + movs r2, r2, lsr #28 + ldrne ip, [sp, #56] + ldrneh ip, [ip, #0] + strneh ip, [r1, #0] @ movhi +.L19990: + add r3, r3, #1 + cmp lr, r3 + bne .L20491 + b .L19663 +.L20384: + cmp lr, #0 + beq .L19663 + ldr r2, [sp, #12] + ldr r3, .L20498+32 + add r1, r2, r8, asl #1 + add r0, r0, r3 + mov r2, #0 + b .L20428 +.L20492: + ldr ip, [sp, #56] + sub r7, r7, #64 + add ip, ip, #16 + add r1, r1, #16 + str ip, [sp, #56] +.L20428: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L20429 + tst ip, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, ip, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs ip, ip, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L20429: + ldr ip, [r7, #0] + cmp ip, #0 + beq .L20438 + tst ip, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #14] + strneh r3, [r1, #14] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, ip, lsr #16 + ldrneh r4, [r4, #12] + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #10] + strneh r5, [r1, #10] @ movhi + movs ip, ip, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi +.L20438: + add r2, r2, #1 + cmp lr, r2 + sub r0, r0, #64 + bne .L20492 + b .L19663 +.L20164: + cmp r4, #0 + beq .L19663 + ldr r3, [sp, #12] + mov lr, #0 + add r1, r3, r8, asl #1 + ldr r3, .L20498+36 + add r0, r0, r3 + b .L20208 +.L20493: + ldr ip, [sp, #56] + add r2, r2, #64 + add ip, ip, #16 + add r1, r1, #16 + str ip, [sp, #56] +.L20208: + ldr ip, [r2, #0] + cmp ip, #0 + beq .L20209 + tst ip, #255 + ldrne r5, [sp, #56] + mov r3, ip, lsr #8 + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi + tst r3, #255 + ldrne r6, [sp, #56] + mov r3, ip, lsr #16 + ldrneh r6, [r6, #2] + strneh r6, [r1, #2] @ movhi + tst r3, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + movs ip, ip, lsr #24 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #6] + strneh r5, [r1, #6] @ movhi +.L20209: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L20218 + tst ip, #255 + ldrne r6, [sp, #56] + mov r3, ip, lsr #8 + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi + tst r3, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #10] + strneh r3, [r1, #10] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs ip, ip, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi +.L20218: + add lr, lr, #1 + cmp r4, lr + add r0, r0, #64 + bne .L20493 + b .L19663 +.L20011: + ands r1, r0, #7 + mov r3, r0, lsr #3 + add ip, r2, r3, asl #6 + ldreq r1, [sp, #100] + beq .L20115 + cmp r1, #3 + rsb r0, r1, #8 + bls .L20116 + cmp r0, #0 + ldr r2, [ip, #4] + ldreq r1, [sp, #100] + beq .L20120 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r3, r2, lsr r3 + mov r1, #0 +.L20121: + tst r3, #255 + ldrne r4, [sp, #56] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r0, r1 + mov r3, r3, lsr #8 + bne .L20121 + ldr r6, [sp, #56] + mov r3, r0, asl #1 + ldr r0, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add r1, r0, r3 +.L20120: + add ip, ip, #64 +.L20115: + movs lr, lr, lsr #3 + beq .L19663 + mov r0, #0 + b .L20144 +.L20494: + ldr r2, [sp, #56] + add ip, ip, #64 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #56] +.L20144: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L20145 + tst r2, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi +.L20145: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L20154 + tst r2, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi +.L20154: + add r0, r0, #1 + cmp r0, lr + bne .L20494 + b .L19663 +.L19881: + mov r3, ip, lsr #3 + ands r2, ip, #7 + sub r0, r0, r3, asl #5 + ldreq r3, [sp, #100] + beq .L19930 + rsbs r4, r2, #8 + ldr ip, [r0, #0] + ldreq r3, [sp, #100] + beq .L19933 + mov r3, r2, asl #2 + mov r3, ip, asl r3 + mov lr, #0 +.L19934: + movs ip, r3, lsr #28 + ldrne r2, [sp, #56] + mov ip, lr, asl #1 + ldrneh r5, [ip, r2] + ldrne r2, [sp, #100] + add lr, lr, #1 + strneh r5, [ip, r2] @ movhi + cmp lr, r4 + mov r3, r3, asl #4 + bne .L19934 + ldr r6, [sp, #56] + mov r3, r4, asl #1 + ldr ip, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add r3, ip, r3 +.L19933: + sub r0, r0, #32 +.L19930: + movs r1, r1, lsr #3 + beq .L19663 + mov r2, #0 + b .L19940 +.L20495: + ldr ip, [sp, #56] + sub r0, r0, #32 + add ip, ip, #16 + add r3, r3, #16 + str ip, [sp, #56] +.L19940: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L19941 + tst ip, #15 + ldrne lr, [sp, #56] + ldrneh lr, [lr, #14] + strneh lr, [r3, #14] @ movhi + tst ip, #240 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #12] + strneh r4, [r3, #12] @ movhi + tst ip, #3840 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #10] + strneh r5, [r3, #10] @ movhi + tst ip, #61440 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #8] + strneh r6, [r3, #8] @ movhi + tst ip, #983040 + ldrne lr, [sp, #56] + ldrneh lr, [lr, #6] + strneh lr, [r3, #6] @ movhi + tst ip, #15728640 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #4] + strneh r4, [r3, #4] @ movhi + tst ip, #251658240 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #2] + strneh r5, [r3, #2] @ movhi + movs ip, ip, lsr #28 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #0] + strneh r6, [r3, #0] @ movhi +.L19941: + add r2, r2, #1 + cmp r2, r1 + bne .L20495 + b .L19663 +.L19751: + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + ldreq r3, [sp, #100] + add ip, r0, r1 + beq .L19800 + rsbs r4, r3, #8 + ldr r0, [r0, r1] + ldreq r3, [sp, #100] + beq .L19803 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L19804: + tst r0, #15 + ldrne r1, [sp, #56] + mov r3, r2, asl #1 + ldrneh r5, [r3, r1] + ldrne r1, [sp, #100] + add r2, r2, #1 + strneh r5, [r3, r1] @ movhi + cmp r4, r2 + mov r0, r0, lsr #4 + bne .L19804 + ldr r6, [sp, #56] + mov r3, r4, asl #1 + ldr r0, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add r3, r0, r3 +.L19803: + add ip, ip, #32 +.L19800: + movs r0, lr, lsr #3 + beq .L19663 + mov r1, #0 + b .L19810 +.L20496: + ldr r2, [sp, #56] + add ip, ip, #32 + add r2, r2, #16 + add r3, r3, #16 + str r2, [sp, #56] +.L19810: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L19811 + tst r2, #15 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #0] + strneh r4, [r3, #0] @ movhi + tst r2, #240 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #2] + strneh r5, [r3, #2] @ movhi + tst r2, #3840 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #4] + strneh r6, [r3, #4] @ movhi + tst r2, #61440 + ldrne lr, [sp, #56] + ldrneh lr, [lr, #6] + strneh lr, [r3, #6] @ movhi + tst r2, #983040 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #8] + strneh r4, [r3, #8] @ movhi + tst r2, #15728640 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #10] + strneh r5, [r3, #10] @ movhi + tst r2, #251658240 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #12] + strneh r6, [r3, #12] @ movhi + movs r2, r2, lsr #28 + ldrne lr, [sp, #56] + ldrneh lr, [lr, #14] + strneh lr, [r3, #14] @ movhi +.L19811: + add r1, r1, #1 + cmp r1, r0 + bne .L20496 + b .L19663 +.L20231: + ands r2, r0, #7 + mov r3, r0, lsr #3 + sub ip, r7, r3, asl #6 + ldreq r1, [sp, #100] + beq .L20335 + cmp r2, #3 + rsb r0, r2, #8 + bls .L20336 + cmp r0, #0 + ldr r1, [ip, #0] + ldreq r1, [sp, #100] + beq .L20340 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L20341: + movs r2, r3, lsr #24 + ldrne r4, [sp, #56] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r0 + mov r3, r3, asl #8 + bne .L20341 + ldr r6, [sp, #56] + mov r3, r0, asl #1 + ldr r0, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add r1, r0, r3 +.L20340: + sub ip, ip, #64 +.L20335: + movs lr, lr, lsr #3 + beq .L19663 + mov r0, #0 + b .L20364 +.L20497: + ldr r2, [sp, #56] + sub ip, ip, #64 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #56] +.L20364: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L20365 + tst r2, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L20365: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L20374 + tst r2, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #12] + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #10] + strneh r5, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi +.L20374: + add r0, r0, #1 + cmp r0, lr + bne .L20497 + b .L19663 +.L19753: + ldr r5, [sp, #120] + rsb ip, r3, #8 + cmp r5, ip + bge .L19756 + cmp r5, #0 + ble .L19663 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L19760: + tst r0, #15 + ldrne r6, [sp, #56] + mov r3, r2, asl #1 + ldrneh ip, [r3, r6] + ldr lr, [sp, #120] + ldrne r6, [sp, #100] + add r2, r2, #1 + strneh ip, [r3, r6] @ movhi + cmp lr, r2 + mov r0, r0, lsr #4 + bne .L19760 + b .L19663 +.L20233: + ldr r5, [sp, #120] + rsb lr, ip, #8 + cmp r5, lr + bge .L20236 + cmp r5, #0 + ble .L19663 + cmp ip, #3 + bls .L20239 + ldr r2, [r8, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L20242: + movs r6, r2, lsr #24 + ldrne ip, [sp, #56] + mov r3, r1, asl #1 + ldrneh lr, [r3, ip] + ldr r0, [sp, #120] + ldrne ip, [sp, #100] + add r1, r1, #1 + strneh lr, [r3, ip] @ movhi + cmp r0, r1 + mov r2, r2, asl #8 + bne .L20242 + b .L19663 +.L20013: + ldr r0, [sp, #120] + rsb lr, ip, #8 + cmp r0, lr + bge .L20016 + cmp r0, #0 + ble .L19663 + cmp ip, #3 + bls .L20019 + ldr r2, [r8, #4] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L20022: + tst r1, #255 + ldrne r4, [sp, #56] + mov r3, r2, asl #1 + ldrneh r5, [r3, r4] + ldr r6, [sp, #120] + ldrne r4, [sp, #100] + add r2, r2, #1 + strneh r5, [r3, r4] @ movhi + cmp r6, r2 + mov r1, r1, lsr #8 + bne .L20022 + b .L19663 +.L19883: + ldr r3, [sp, #120] + rsb lr, r4, #8 + cmp r3, lr + bge .L19886 + cmp r3, #0 + ble .L19663 + ldr r2, [r0, #0] + mov r3, r4, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L19890: + movs r4, r0, lsr #28 + ldrne r5, [sp, #56] + mov r3, r2, asl #1 + ldrneh r6, [r3, r5] + ldr ip, [sp, #120] + ldrne r5, [sp, #100] + add r2, r2, #1 + strneh r6, [r3, r5] @ movhi + cmp ip, r2 + mov r0, r0, asl #4 + bne .L19890 + b .L19663 +.L20016: + cmp ip, #3 + bls .L20046 + cmp lr, #0 + ldr r2, [r8, #4] + ldreq r5, [sp, #100] + beq .L20050 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L20051: + tst r1, #255 + ldrne r0, [sp, #56] + mov r3, r2, asl #1 + ldrneh r4, [r3, r0] + ldrne r0, [sp, #100] + add r2, r2, #1 + strneh r4, [r3, r0] @ movhi + cmp lr, r2 + mov r1, r1, lsr #8 + bne .L20051 + ldr r5, [sp, #56] + mov r3, lr, asl #1 + ldr r6, [sp, #100] + add r5, r5, r3 + str r5, [sp, #56] + add r5, r3, r6 +.L20050: + ldr ip, [sp, #120] + add r8, r8, #64 + rsb r7, lr, ip + b .L20015 +.L20116: + subs r4, r0, #4 + ldr r2, [ip, #0] + ldreq r1, [sp, #100] + beq .L20128 + mov r3, r1, asl #3 + mov r3, r2, lsr r3 + mov r1, #0 +.L20129: + tst r3, #255 + ldrne r5, [sp, #56] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldrne r5, [sp, #100] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp r1, r4 + mov r3, r3, lsr #8 + bne .L20129 + mov r3, r0, asl #1 + ldr r0, [sp, #56] + ldr r1, [sp, #100] + add r2, r0, r3 + sub r2, r2, #8 + add r3, r1, r3 + str r2, [sp, #56] + sub r1, r3, #8 +.L20128: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L20134 + tst r2, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi +.L20134: + ldr r0, [sp, #56] + add r1, r1, #8 + add r0, r0, #8 + add ip, ip, #64 + str r0, [sp, #56] + b .L20115 +.L19756: + cmp ip, #0 + ldr r2, [r4, #0] + ldreq r5, [sp, #100] + beq .L19766 + mov r3, r3, asl #2 + mov r3, r2, lsr r3 + mov r1, #0 +.L19767: + tst r3, #15 + ldrne r0, [sp, #56] + mov r2, r1, asl #1 + ldrneh r5, [r2, r0] + ldrne r0, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r0] @ movhi + cmp ip, r1 + mov r3, r3, lsr #4 + bne .L19767 + ldr r6, [sp, #56] + mov r3, ip, asl #1 + ldr lr, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add r5, r3, lr +.L19766: + ldr r0, [sp, #120] + add r4, r4, #32 + rsb r7, ip, r0 + b .L19755 +.L19886: + cmp lr, #0 + ldr r2, [r0, #0] + ldreq r1, [sp, #100] + beq .L19896 + mov r3, r4, asl #2 + mov r3, r2, asl r3 + mov ip, #0 +.L19897: + movs r1, r3, lsr #28 + ldrne r4, [sp, #56] + mov r2, ip, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add ip, ip, #1 + strneh r5, [r2, r4] @ movhi + cmp lr, ip + mov r3, r3, asl #4 + bne .L19897 + ldr r6, [sp, #56] + mov r3, lr, asl #1 + ldr ip, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add r1, r3, ip +.L19896: + ldr r2, [sp, #120] + sub r0, r0, #32 + rsb r7, lr, r2 + b .L19885 +.L20336: + subs r4, r0, #4 + ldr r1, [ip, #4] + ldreq r1, [sp, #100] + beq .L20348 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L20349: + movs r2, r3, lsr #24 + ldrne r5, [sp, #56] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldrne r5, [sp, #100] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp r1, r4 + mov r3, r3, asl #8 + bne .L20349 + mov r3, r0, asl #1 + ldr r0, [sp, #56] + ldr r1, [sp, #100] + add r2, r0, r3 + sub r2, r2, #8 + add r3, r1, r3 + str r2, [sp, #56] + sub r1, r3, #8 +.L20348: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L20354 + tst r2, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #56] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L20354: + ldr r0, [sp, #56] + add r1, r1, #8 + add r0, r0, #8 + sub ip, ip, #64 + str r0, [sp, #56] + b .L20335 +.L20236: + cmp ip, #3 + bls .L20266 + cmp lr, #0 + ldr r2, [r8, #0] + ldreq r5, [sp, #100] + beq .L20270 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L20271: + movs r2, r3, lsr #24 + ldrne r4, [sp, #56] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp lr, r1 + mov r3, r3, asl #8 + bne .L20271 + ldr r6, [sp, #56] + mov r3, lr, asl #1 + ldr ip, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add r5, ip, r3 +.L20270: + ldr ip, [sp, #120] + sub r8, r8, #64 + rsb r7, lr, ip + b .L20235 +.L20482: + mov r7, #0 + b .L19733 +.L20478: + mov r7, #0 + b .L19698 +.L20046: + subs r0, lr, #4 + ldr r2, [r8, #0] + ldreq r1, [sp, #100] + beq .L20058 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L20059: + tst r1, #255 + ldrne ip, [sp, #56] + mov r3, r2, asl #1 + ldrneh r4, [r3, ip] + ldrne ip, [sp, #100] + add r2, r2, #1 + strneh r4, [r3, ip] @ movhi + cmp r2, r0 + mov r1, r1, lsr #8 + bne .L20059 + ldr r5, [sp, #56] + mov r3, lr, asl #1 + ldr r6, [sp, #100] + add r2, r5, r3 + sub r2, r2, #8 + add r3, r6, r3 + str r2, [sp, #56] + sub r1, r3, #8 +.L20058: + ldr r2, [r8, #4] + cmp r2, #0 + beq .L20064 + tst r2, #255 + ldrne ip, [sp, #56] + mov r3, r2, lsr #8 + ldrneh ip, [ip, #0] + strneh ip, [r1, #0] @ movhi + tst r3, #255 + ldrne r0, [sp, #56] + mov r3, r2, lsr #16 + ldrneh r0, [r0, #2] + strneh r0, [r1, #2] @ movhi + tst r3, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #6] + strneh r4, [r1, #6] @ movhi +.L20064: + ldr r6, [sp, #56] + add r5, r1, #8 + add r6, r6, #8 + str r6, [sp, #56] + b .L20050 +.L20266: + subs r0, lr, #4 + ldr r2, [r8, #4] + ldreq r1, [sp, #100] + beq .L20278 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L20279: + movs r2, r3, lsr #24 + ldrne r4, [sp, #56] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r0 + mov r3, r3, asl #8 + bne .L20279 + ldr r6, [sp, #56] + mov r3, lr, asl #1 + ldr ip, [sp, #100] + add r2, r6, r3 + sub r2, r2, #8 + add r3, ip, r3 + str r2, [sp, #56] + sub r1, r3, #8 +.L20278: + ldr r2, [r8, #0] + cmp r2, #0 + beq .L20284 + tst r2, #255 + ldrne r0, [sp, #56] + mov r3, r2, lsr #8 + ldrneh r0, [r0, #6] + strneh r0, [r1, #6] @ movhi + tst r3, #255 + ldrne r3, [sp, #56] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + tst r3, #255 + ldrne r4, [sp, #56] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r5, [sp, #56] + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi +.L20284: + ldr r6, [sp, #56] + add r5, r1, #8 + add r6, r6, #8 + str r6, [sp, #56] + b .L20270 +.L20485: + mov r1, fp + b .L20464 +.L20484: + mov lr, r6 + b .L20462 +.L20019: + ldr lr, [sp, #120] + ldr r3, [r8, #0] + add r2, lr, ip + mov r1, ip, asl #3 + cmp r2, #4 + mov r3, r3, lsr r1 + bhi .L20026 + cmp lr, #0 + movne r1, #0 + beq .L19663 +.L20042: + tst r3, #255 + ldrne r5, [sp, #56] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldr ip, [sp, #120] + ldrne r5, [sp, #100] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp ip, r1 + mov r3, r3, lsr #8 + bne .L20042 + b .L19663 +.L20239: + ldr r4, [sp, #120] + mov r3, ip, asl #3 + ldr r1, [r8, #4] + add r2, r4, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L20246 + cmp r4, #0 + movne r2, #0 + beq .L19663 +.L20262: + movs r6, r1, lsr #24 + ldrne ip, [sp, #56] + mov r3, r2, asl #1 + ldrneh lr, [r3, ip] + ldr r0, [sp, #120] + ldrne ip, [sp, #100] + add r2, r2, #1 + strneh lr, [r3, ip] @ movhi + cmp r0, r2 + mov r1, r1, asl #8 + bne .L20262 + b .L19663 +.L20026: + rsbs r0, ip, #4 + ldreq ip, [sp, #100] + beq .L20031 + mov r1, #0 +.L20032: + tst r3, #255 + ldrne r4, [sp, #56] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r0 + mov r3, r3, lsr #8 + bne .L20032 + ldr r6, [sp, #56] + mov r3, r0, asl #1 + ldr lr, [sp, #100] + add r6, r6, r3 + str r6, [sp, #56] + add ip, r3, lr +.L20031: + ldr r1, [sp, #120] + ldr r3, [r8, #4] + subs r0, r1, r0 + beq .L19663 + mov r1, #0 +.L20038: + tst r3, #255 + ldrne r4, [sp, #56] + mov r2, r1, asl #1 + ldrneh r4, [r2, r4] + add r1, r1, #1 + strneh r4, [r2, ip] @ movhi + cmp r1, r0 + mov r3, r3, lsr #8 + bne .L20038 + b .L19663 +.L20246: + rsbs r0, ip, #4 + ldreq r3, [sp, #100] + beq .L20251 + mov r2, #0 +.L20252: + movs r5, r1, lsr #24 + ldrne r6, [sp, #56] + mov r3, r2, asl #1 + ldrneh ip, [r3, r6] + ldrne r6, [sp, #100] + add r2, r2, #1 + strneh ip, [r3, r6] @ movhi + cmp r2, r0 + mov r1, r1, asl #8 + bne .L20252 + ldr lr, [sp, #56] + mov r3, r0, asl #1 + ldr r1, [sp, #100] + add lr, lr, r3 + str lr, [sp, #56] + add r3, r3, r1 +.L20251: + ldr r2, [sp, #120] + subs ip, r2, r0 + ldr r2, [r8, #0] + beq .L19663 + mov r0, #0 +.L20258: + movs r4, r2, lsr #24 + ldrne r5, [sp, #56] + mov r1, r0, asl #1 + ldrneh r5, [r1, r5] + add r0, r0, #1 + strneh r5, [r1, r3] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L20258 + b .L19663 + .size render_scanline_obj_copy_tile_1D, .-render_scanline_obj_copy_tile_1D + .align 2 + .global render_scanline_window_tile + .type render_scanline_window_tile, %function +render_scanline_window_tile: + @ args = 0, pretend = 0, frame = 20 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr lr, .L21076 + mov r2, r1, lsr #13 + ldrh ip, [lr, #74] + ldr r3, .L21076+4 + and ip, ip, #63 + sub sp, sp, #32 + mov r6, r1 + sub r2, r2, #1 + and r1, r1, #7 + str ip, [sp, #12] + add r9, r3, r1, asl #7 + mov r7, r0 + ldrh ip, [lr, #6] + ldrh sl, [lr, #80] + cmp r2, #6 + ldrls pc, [pc, r2, asl #2] + b .L20990 + .p2align 2 +.L20509: + .word .L20502 + .word .L20503 + .word .L20504 + .word .L20505 + .word .L20506 + .word .L20507 + .word .L20508 +.L20503: + ldrh r3, [lr, #70] + ldr r4, .L21076 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r2, [lr, #72] + bls .L20531 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + bne .L20539 +.L20994: + cmp r1, #227 + bhi .L20539 +.L20535: + mov r4, #240 + mov r5, r4 +.L20547: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20548: + cmp r5, r4 + beq .L20528 + mov r0, r5 + mov r3, r8 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20528: + cmp r4, #240 + beq .L20990 + ldr r3, [sp, #12] + mov r0, r4 + mov r2, r7 +.L21037: + mov r1, #240 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20990: + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L20502: + ldrh r3, [lr, #68] + ldr r4, .L21076 + and r2, r3, #255 + mov r1, r3, lsr #8 + cmp r1, r2 + ldrh r0, [lr, #72] + bls .L20510 + cmp ip, r1 + movls r3, #0 + movhi r3, #1 + cmp ip, r2 + orrls r3, r3, #1 + cmp r3, #0 + beq .L20992 +.L20518: + cmp r1, #227 + bhi .L20535 + ldrh r3, [r4, #64] + and r8, r0, #63 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + bhi .L21059 +.L20538: + cmp r5, r4 + bls .L20542 + cmp r4, #0 + bne .L21060 +.L20544: + mov r0, r4 + ldr r3, [sp, #12] + mov r2, r7 + mov r1, r5 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + cmp r5, #240 + movne r0, r5 + movne r2, r7 + movne r3, r8 + bne .L21037 + b .L20990 +.L20508: + ldrh r3, [lr, #68] + ldr r2, .L21076 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r4, [lr, #72] + bls .L20774 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L21053 +.L20782: + cmp r0, #227 + bls .L21061 +.L20778: + mov r8, #240 + mov fp, r8 +.L20781: + ldrh r3, [lr, #70] + ldr r0, .L21076 + and r1, r3, #255 + mov r2, r3, lsr #8 + cmp r2, r1 + bls .L20785 + cmp ip, r2 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L21054 +.L20793: + cmp r2, #227 + bls .L21062 +.L20789: + mov r5, #240 + mov r4, r5 +.L20792: + cmp fp, r8 + bls .L20796 + cmp r8, #0 + bne .L21063 +.L20798: + cmp r4, #240 + beq .L20800 + cmp r4, r5 + bhi .L21064 + cmp r4, #0 + beq .L20840 + cmp r8, #0 + beq .L20842 + cmp r8, r4 + bcs .L20840 +.L20842: + cmp fp, r4 + bcs .L20851 + mov r0, r8 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20853 + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D +.L20840: + cmp r4, r5 + beq .L20857 + cmp r8, r4 + bls .L20859 + cmp r8, r5 + bcs .L20857 + cmp fp, r5 + ldrcc r3, [sp, #28] + ldrcs r3, [sp, #28] + movcc r0, r8 + movcc r1, fp + movcs r0, r8 + movcs r1, r5 +.L21026: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20857: + cmp r5, #240 + beq .L20832 + cmp r8, r5 + bls .L20868 + cmp r8, #239 + bhi .L20832 + cmp fp, #239 + bhi .L20871 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20873 + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20836 +.L20507: + ldrh r3, [lr, #70] + ldr r4, .L21076 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r2, [lr, #72] + bls .L20744 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L21019 +.L20752: + cmp r0, #227 + bls .L21065 +.L20748: + mov r4, #240 + mov r5, r4 +.L20763: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20764: + ands r8, r6, #64 + beq .L20765 + mov r0, #4 + mov r1, #0 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D +.L20767: + cmp r4, r5 + beq .L20768 +.L21056: + mov r0, r5 + mov r3, fp + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20768: + cmp r4, #240 + beq .L20770 + ldr r3, [sp, #12] + mov r0, r4 + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20770: + cmp r8, #0 + movne r1, r4 + beq .L21066 +.L21040: + mov r3, r7 + mov r0, #4 + mov r2, #240 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_tile_1D +.L20506: + ldrh r3, [lr, #68] + ldr r4, .L21076 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r2, [lr, #72] + bls .L20714 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L21017 +.L20722: + cmp r0, #227 + bls .L21067 +.L20718: + mov r4, #240 + mov r5, r4 +.L20733: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20734: + ands r8, r6, #64 + beq .L20735 + mov r0, #4 + mov r1, #0 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D +.L20737: + cmp r5, r4 + bne .L21056 + b .L20768 +.L20504: + ldrh r3, [lr, #68] + ldr r2, .L21076 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r4, [lr, #72] + bls .L20552 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L21049 +.L20560: + cmp r0, #227 + bls .L21068 +.L20556: + mov r5, #240 + mov fp, r5 +.L20559: + ldrh r3, [lr, #70] + ldr r0, .L21076 + and r1, r3, #255 + mov r2, r3, lsr #8 + cmp r2, r1 + bls .L20563 + cmp ip, r2 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L21050 +.L20571: + cmp r2, #227 + bls .L21069 +.L20567: + mov r8, #240 + mov r4, r8 +.L20570: + cmp fp, r5 + bls .L20574 + cmp r5, #0 + bne .L21070 +.L20576: + cmp r4, #240 + beq .L20578 + cmp r4, r8 + bls .L20580 + cmp r8, #0 + beq .L20582 + cmp r5, #0 + beq .L20584 + cmp r5, r8 + bcs .L20582 + cmp fp, r8 + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20582: + cmp r5, r8 + bls .L20591 + cmp r5, r4 + bcs .L20593 + cmp fp, r4 + ldrcc r3, [sp, #12] + ldrcs r3, [sp, #12] + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r4 +.L20999: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20593: + cmp r5, r4 + bls .L20600 + cmp r5, #239 + bhi .L20602 + cmp fp, #239 + movls r0, r5 + bls .L21003 + ldr r3, [sp, #20] + mov r0, r5 + mov r1, #240 +.L21002: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20602: + cmp fp, #240 + beq .L20990 +.L20606: + ldr r3, [sp, #16] + mov r0, fp + mov r2, r7 + b .L21037 +.L20505: + mov r1, #240 + ldr r3, [sp, #12] + mov r0, #0 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_tile + ands r1, r6, #64 + beq .L21038 + mov r3, r7 + mov r0, #4 + mov r1, #0 + mov r2, #240 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_tile_1D +.L20531: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + beq .L20994 +.L20539: + cmp r0, #227 + bhi .L20535 + ldrh r3, [r4, #66] + mov r2, r2, lsr #8 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + and r8, r2, #63 + bls .L20538 +.L21059: + mov r4, #240 + b .L20538 +.L20714: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L20722 +.L21017: + cmp r1, #227 + bls .L20718 + b .L20722 +.L20563: + cmp ip, r2 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L20571 +.L21050: + cmp r1, #227 + bls .L20567 + b .L20571 +.L20552: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L20560 +.L21049: + cmp r1, #227 + bls .L20556 + b .L20560 +.L20785: + cmp ip, r2 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L20793 +.L21054: + cmp r1, #227 + bls .L20789 + b .L20793 +.L20744: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L20752 +.L21019: + cmp r1, #227 + bls .L20748 + b .L20752 +.L20510: + cmp ip, r1 + movcc r3, #0 + movcs r3, #1 + cmp ip, r2 + movcs r3, #0 + cmp r3, #0 + bne .L20518 +.L20992: + cmp r2, #227 + bls .L20535 + b .L20518 +.L20774: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L20782 +.L21053: + cmp r1, #227 + bls .L20778 + b .L20782 +.L21066: + mov r1, r4 +.L21038: + mov r3, r7 + mov r0, #4 + mov r2, #240 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_tile_2D +.L20796: + cmp r4, #240 + beq .L20886 + cmp r4, r5 + bls .L20888 + cmp r5, #0 + beq .L20890 + cmp fp, r5 + bcs .L20892 + cmp fp, #0 + movne r0, #0 + movne r1, fp + bne .L21029 +.L20890: + cmp fp, r4 + bcs .L20895 + cmp fp, r5 + bhi .L21071 +.L20897: + cmp fp, #239 + bhi .L20903 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L21031 +.L20905: + cmp fp, r8 + beq .L20933 + mov r0, fp + ldr r3, [sp, #24] + mov r1, r8 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20933: + cmp r4, #240 + beq .L20935 + cmp r4, r5 + bls .L20937 + cmp r5, #0 + beq .L20939 + cmp r8, #0 + beq .L20941 + cmp r8, r5 + bcs .L20939 + cmp r5, #240 + movhi r0, r8 + movhi r1, #240 + movls r0, r8 + movls r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20939: + cmp r8, r5 + bls .L20948 + cmp r8, r4 + bcc .L21072 +.L20950: + cmp r8, r4 + bls .L20956 + cmp r8, #239 + bhi .L20990 + ldr r3, [sp, #28] + mov r0, r8 + mov r2, r7 + b .L21037 +.L20574: + cmp r4, #240 + beq .L20638 + cmp r4, r8 + bls .L20640 + cmp r8, #0 + beq .L20642 + cmp fp, r8 + bcs .L20644 + cmp fp, #0 + movne r0, #0 + movne r1, fp + bne .L21005 +.L20642: + cmp fp, r4 + bcs .L20647 + cmp fp, r8 + movhi r0, r8 + movhi r1, fp + bhi .L21006 +.L20649: + cmp fp, #239 + bhi .L20651 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L21009 +.L20653: + cmp fp, r5 + beq .L20670 + mov r0, fp + ldr r3, [sp, #16] + mov r1, r5 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20670: + cmp r4, #240 + beq .L20672 + cmp r4, r8 + bls .L20674 + cmp r8, #0 + beq .L20676 + cmp r5, #0 + beq .L20678 + cmp r5, r8 + bcs .L20676 + cmp r8, #240 + movhi r0, r5 + movhi r1, #240 + movls r0, r5 + movls r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20676: + cmp r5, r8 + bls .L20685 + cmp r5, r4 + ldrcc r3, [sp, #12] + movcc r0, r5 + bcc .L21013 +.L20687: + cmp r5, r4 + bls .L20689 + cmp r5, #239 + bhi .L20990 + ldr r3, [sp, #20] + mov r0, r5 + mov r2, r7 + b .L21037 +.L20765: + mov r0, #4 + mov r1, r8 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20767 +.L20735: + mov r0, #4 + mov r1, r8 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20737 +.L21067: + ldrh r3, [r4, #64] + and fp, r2, #63 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + movhi r4, #240 + cmp r5, r4 + bhi .L21058 + cmp r5, #0 + bne .L20733 + b .L20734 +.L21069: + ldrh r3, [r0, #66] + mov r2, r4, lsr #8 + and r8, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r4, r3 + movcs r4, #240 + cmp r8, #240 + and r2, r2, #63 + movhi r8, #240 + str r2, [sp, #20] + b .L20570 +.L21062: + ldrh r3, [r0, #66] + mov r2, r4, lsr #8 + and r5, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r4, r3 + movcs r4, #240 + cmp r5, #240 + and r2, r2, #63 + movhi r5, #240 + str r2, [sp, #28] + b .L20792 +.L21061: + ldrh r3, [r2, #64] + and r2, r4, #63 + and r8, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc fp, r3 + movcs fp, #240 + cmp r8, #240 + movhi r8, #240 + str r2, [sp, #24] + b .L20781 +.L21065: + ldrh r3, [r4, #66] + mov r2, r2, lsr #8 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + movhi r4, #240 + cmp r5, r4 + and fp, r2, #63 + bhi .L21058 + cmp r5, #0 + bne .L20763 + b .L20764 +.L21068: + ldrh r3, [r2, #64] + and r2, r4, #63 + and r5, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc fp, r3 + movcs fp, #240 + cmp r5, #240 + movhi r5, #240 + str r2, [sp, #16] + b .L20559 +.L21064: + cmp r5, #0 + beq .L20804 + cmp r8, #0 + beq .L20806 + cmp r8, r5 + bcs .L20804 + cmp fp, r5 + movcc r0, r8 + movcc r1, fp + movcs r0, r8 + movcs r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20804: + cmp r8, r5 + bls .L20813 + cmp r8, r4 + bcs .L20815 + cmp fp, r4 + bcs .L20817 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20819 + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D +.L20815: + cmp r8, r4 + bls .L20830 + cmp r8, #239 + bhi .L20832 + cmp fp, #239 + movls r0, r8 + movhi r0, r8 + bhi .L21027 +.L21028: + ldr r3, [sp, #28] + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20836: + ldr r3, [sp, #24] + mov r0, fp + mov r2, r7 + b .L21037 +.L20580: + cmp r4, #0 + beq .L20610 + cmp r5, #0 + beq .L20612 + cmp r5, r4 + bcs .L20610 +.L20612: + cmp fp, r4 + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20610: + cmp r4, r8 + beq .L20619 + cmp r5, r4 + bls .L20621 + cmp r5, r8 + bcs .L20619 + cmp fp, r8 + ldrcc r3, [sp, #20] + ldrcs r3, [sp, #20] + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r8 +.L21001: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20619: + cmp r8, #240 + beq .L20602 + cmp r5, r8 + bls .L20630 + cmp r5, #239 + bhi .L20602 + cmp fp, #239 + movls r0, r5 + ldrls r3, [sp, #12] + bls .L21004 + ldr r3, [sp, #12] + mov r0, r5 + mov r1, #240 + b .L21002 +.L21063: + mov r0, #0 + mov r1, r8 + mov r2, r7 + ldr r3, [sp, #24] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20798 +.L21070: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #16] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20576 +.L20886: + cmp fp, #0 + bne .L21073 +.L20929: + ands r1, r6, #64 + beq .L20931 + mov r0, #4 + mov r1, #0 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20905 +.L20638: + cmp fp, #0 + beq .L20653 + mov r0, #0 + mov r1, fp +.L21010: + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20653 +.L21058: + cmp r4, #0 + bne .L21074 +.L20757: + ldr r3, [sp, #12] + mov r0, r4 + mov r1, r5 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20759 + mov r1, r4 + mov r0, #4 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D +.L20761: + cmp r5, #240 + movne r0, r5 + movne r2, r7 + movne r3, fp + bne .L21037 + b .L20990 +.L20542: + cmp r5, #0 + bne .L20547 + b .L20548 +.L20800: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20884 + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D +.L20832: + cmp fp, #240 + bne .L20836 + b .L20990 +.L20759: + mov r1, r4 + mov r0, #4 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20761 +.L21077: + .align 2 +.L21076: + .word io_registers + .word tile_mode_renderers +.L20937: + cmp r4, #0 + beq .L20959 + cmp r8, #0 + beq .L20961 + cmp r8, r4 + bcc .L20961 +.L20959: + cmp r4, r5 + beq .L20968 + cmp r8, r4 + bls .L20970 + cmp r8, r5 + bcs .L20968 + cmp r5, #240 + ldrhi r3, [sp, #28] + movhi r0, r8 + ldrls r3, [sp, #28] + movls r0, r8 + bls .L21035 +.L21036: + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20975: + cmp r8, r5 + bls .L20979 + cmp r8, #239 + bhi .L20990 + mov r1, #240 + ldr r3, [sp, #12] + mov r0, r8 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_tile + tst r6, #64 + moveq r1, r8 + beq .L21038 + mov r1, r8 + b .L21040 +.L20674: + cmp r4, #0 + beq .L20692 + cmp r5, #0 + beq .L20694 + cmp r5, r4 + bcc .L20694 +.L20692: + cmp r4, r8 + beq .L20697 + cmp r5, r4 + bls .L20699 + cmp r5, r8 + bcs .L20697 + cmp r8, #240 + ldrhi r3, [sp, #20] + movhi r0, r5 + ldrls r3, [sp, #20] + movls r0, r5 + bls .L21014 +.L21015: + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20704: + cmp r5, r8 + bls .L20708 + cmp r5, #239 + bhi .L20990 + ldr r3, [sp, #12] + mov r0, r5 + mov r2, r7 + b .L21037 +.L20888: + cmp r4, #0 + beq .L20907 + cmp fp, r4 + bcs .L20909 + cmp fp, #0 + bne .L21075 +.L20907: + cmp r4, r5 + beq .L20916 + cmp fp, r5 + bcs .L20918 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L21030 +.L20916: + cmp r5, #240 + beq .L20905 + cmp fp, #239 + bhi .L20922 + cmp fp, r5 + bls .L20905 + mov r0, r5 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20925 + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20905 +.L20640: + cmp r4, #0 + beq .L20655 + cmp fp, r4 + bcs .L20657 + cmp fp, #0 + movne r0, #0 + movne r1, fp + bne .L21007 +.L20655: + cmp r4, r8 + beq .L20660 + cmp fp, r8 + bcs .L20662 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L21008 +.L20660: + cmp r8, #240 + beq .L20653 + cmp fp, #239 + bhi .L20666 + cmp fp, r8 + movhi r0, r8 + movhi r1, fp + bls .L20653 + b .L21010 +.L20935: + cmp r8, #240 + beq .L20986 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_tile +.L20986: + tst r6, #64 + beq .L20988 + mov r1, r8 + mov r2, r4 + mov r3, r7 + mov r0, #4 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_tile_1D +.L20672: + cmp r5, #240 + beq .L20990 + mov r0, r5 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20990 +.L20806: + cmp fp, r5 + movcc r0, r8 + movcc r1, fp + movcs r0, r8 + movcs r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20813: + cmp fp, r4 + bcs .L20823 + cmp fp, r5 + bls .L20815 + ldr r3, [sp, #12] + mov r0, r5 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20826 + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20815 +.L20584: + cmp fp, r8 + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20591: + cmp fp, r4 + bcs .L20597 + cmp fp, r8 + bls .L20593 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + b .L20999 +.L20678: + cmp r8, #240 + movhi r0, r5 + movhi r1, #240 + movls r0, r5 + movls r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20685: + ldr r3, [sp, #12] + mov r0, r8 +.L21013: + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20687 +.L20705: + ldr r3, [sp, #20] + mov r0, r4 +.L21014: + mov r1, r8 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20697: + cmp r8, #240 + bne .L20704 + b .L20990 +.L20976: + ldr r3, [sp, #28] + mov r0, r4 +.L21035: + mov r1, r5 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20968: + cmp r5, #240 + bne .L20975 + b .L20990 +.L21060: + mov r0, #0 + mov r1, r4 + mov r2, r7 + mov r3, r8 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20544 +.L21074: + mov r0, #0 + mov r1, r4 + mov r2, r7 + mov r3, fp + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20757 +.L20941: + cmp r5, #240 + movhi r0, r8 + movhi r1, #240 + movls r0, r8 + movls r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile +.L20948: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20954 + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20950 +.L20830: + cmp fp, #239 + bhi .L20837 + cmp fp, r4 + bls .L20836 + mov r0, r4 + b .L21028 +.L20600: + cmp fp, #239 + bhi .L20607 + cmp fp, r4 + bls .L20606 + mov r0, r4 +.L21003: + ldr r3, [sp, #20] +.L21004: + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20606 +.L20651: + mov r0, r4 + mov r1, #240 +.L21009: + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20653 +.L20903: + mov r0, r4 + mov r1, #240 +.L21031: + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20905 +.L20647: + mov r0, r8 + mov r1, r4 +.L21006: + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20649 +.L20630: + cmp fp, #239 + bhi .L20635 + cmp fp, r8 + movhi r0, r8 + ldrhi r3, [sp, #12] + bls .L20606 + b .L21004 +.L20859: + cmp fp, r5 + bcs .L20864 + cmp fp, r4 + bls .L20857 + ldr r3, [sp, #28] + mov r0, r4 + mov r1, fp + b .L21026 +.L20868: + cmp fp, #239 + bhi .L20877 + cmp fp, r5 + bls .L20836 + ldr r3, [sp, #12] + mov r0, r5 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20880 + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20836 +.L20621: + cmp fp, r8 + bcs .L20626 + cmp fp, r4 + bls .L20619 + ldr r3, [sp, #20] + mov r0, r4 + mov r1, fp + b .L21001 +.L20578: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, fp + b .L21002 +.L20988: + mov r1, r8 + mov r2, r4 + mov r3, r7 + mov r0, #4 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_tile_2D +.L20931: + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20905 +.L20918: + mov r0, r4 + mov r1, r5 +.L21030: + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20916 +.L20662: + mov r0, r4 + mov r1, r8 +.L21008: + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20660 +.L20699: + cmp r8, #240 + bls .L20705 + cmp r4, #239 + bhi .L20704 + ldr r3, [sp, #20] + mov r0, r4 + b .L21015 +.L20970: + cmp r5, #240 + bls .L20976 + cmp r4, #239 + bhi .L20975 + ldr r3, [sp, #28] + mov r0, r4 + b .L21036 +.L20837: + mov r0, r4 +.L21027: + ldr r3, [sp, #28] + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20832 +.L20954: + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20950 +.L20895: + mov r0, r5 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20901 + mov r0, #4 + mov r1, r5 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20897 +.L20956: + ldr r3, [sp, #28] + mov r0, r4 + mov r2, r7 + b .L21037 +.L20689: + ldr r3, [sp, #20] + mov r0, r4 + mov r2, r7 + b .L21037 +.L20708: + ldr r3, [sp, #12] + mov r0, r8 + mov r2, r7 + b .L21037 +.L20979: + mov r1, #240 + ldr r3, [sp, #12] + mov r0, r5 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_tile + tst r6, #64 + movne r1, r5 + moveq r1, r5 + beq .L21038 + b .L21040 +.L20892: + mov r0, #0 + mov r1, r5 +.L21029: + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20890 +.L20657: + mov r0, #0 + mov r1, r4 +.L21007: + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20655 +.L20644: + mov r0, #0 + mov r1, r8 +.L21005: + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20642 +.L20961: + mov r0, r8 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20966 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20959 +.L20694: + mov r0, r5 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20692 +.L21073: + mov r0, #0 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + b .L20929 +.L20823: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20828 + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20815 +.L20597: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + b .L20999 +.L20851: + mov r0, r8 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20855 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20840 +.L20666: + mov r0, r8 + mov r1, #240 + b .L21010 +.L20884: + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20832 +.L20922: + mov r0, r5 + mov r1, #240 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20927 + mov r0, #4 + mov r1, r5 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20905 +.L21071: + mov r0, r5 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20899 + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20897 +.L20607: + ldr r3, [sp, #20] + mov r0, r4 + mov r1, #240 + b .L21002 +.L20909: + mov r1, r4 + mov r0, #0 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + ands r1, r6, #64 + beq .L20914 + mov r0, #4 + mov r1, #0 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20907 +.L20901: + mov r0, #4 + mov r1, r5 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20897 +.L20966: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20959 +.L20635: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, #240 + b .L21002 +.L20626: + ldr r3, [sp, #20] + mov r0, r4 + mov r1, r8 + b .L21001 +.L20877: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20882 + mov r1, r5 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20832 +.L20864: + ldr r3, [sp, #28] + mov r0, r4 + mov r1, r5 + b .L21026 +.L21072: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20952 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20950 +.L20817: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20821 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20815 +.L20853: + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20840 +.L20828: + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20815 +.L20855: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20840 +.L20927: + mov r0, #4 + mov r1, r5 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20905 +.L20871: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + tst r6, #64 + beq .L20875 + mov r1, r8 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20832 +.L21075: + mov r1, fp + mov r0, #0 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_tile + ands r1, r6, #64 + beq .L20912 + mov r0, #4 + mov r1, #0 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_1D + b .L20907 +.L20899: + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20897 +.L20826: + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20815 +.L20914: + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20907 +.L20925: + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20905 +.L20882: + mov r1, r5 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20832 +.L20875: + mov r1, r8 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20832 +.L20819: + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20815 +.L20952: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20950 +.L20912: + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20907 +.L20821: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20815 +.L20873: + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20836 +.L20880: + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_tile_2D + b .L20836 + .size render_scanline_window_tile, .-render_scanline_window_tile + .align 2 + .global render_scanline_tile + .type render_scanline_tile, %function +render_scanline_tile: + @ args = 0, pretend = 0, frame = 960 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr fp, .L21279 + ldr lr, .L21279+4 + ldr r3, [fp, #0] + mov r5, r0 + cmp r3, #0 + sub sp, sp, #960 + mov r4, r1 + mov sl, lr + ldrh r0, [lr, #80] + beq .L21079 + ldr r3, .L21279+8 + ldrh r2, [lr, #6] + and r1, r1, #7 + ldr ip, [r3, r2, asl #2] + ldr r3, .L21279+12 + cmp ip, #0 + add r9, r3, r1, asl #7 + bne .L21267 + mov r3, r0, lsr #6 + and r3, r3, #3 + cmp r3, #2 + beq .L21157 + cmp r3, #3 + beq .L21158 + cmp r3, #1 + beq .L21268 +.L21155: + ldr r3, .L21279+16 + ldr ip, [r3, #0] + ands r1, ip, #4 + beq .L21221 + ldr r3, .L21279+20 + mov r2, #0 + ldrh r3, [r3, #0] +.L21223: + strh r3, [r2, r5] @ movhi + add r2, r2, #2 + cmp r2, #480 + bne .L21223 + ands r1, r4, #64 + bic r0, ip, #4 + beq .L21225 + mov r1, #0 + sub r2, r2, #240 + mov r3, r5 + bl render_scanline_obj_normal_1D +.L21227: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21241 + ldr r7, .L21279+16 + and r8, r4, #64 + mov r6, #1 + b .L21229 +.L21269: + bl render_scanline_obj_normal_1D +.L21234: + ldr r3, [fp, #0] + add r6, r6, #1 + cmp r3, r6 + add r7, r7, #4 + bls .L21241 +.L21229: + ldr ip, [r7, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, r5 + beq .L21230 + mov r1, #0 + bic ip, ip, #4 + cmp r8, r1 + mov r0, ip + bne .L21269 + mov r3, r5 + mov r0, ip + mov r1, r8 + mov r2, #240 + bl render_scanline_obj_normal_2D + ldr r3, [fp, #0] + add r6, r6, #1 + cmp r3, r6 + add r7, r7, #4 + bhi .L21229 +.L21241: + add sp, sp, #960 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L21079: + mov r3, r0, lsr #6 + and r2, r3, #3 + ldr r3, .L21279+20 + cmp r2, #2 + ldrh ip, [r3, #0] + beq .L21236 + cmp r2, #3 + beq .L21270 +.L21235: + mov r3, ip, asl #16 + mov r3, r3, lsr #16 + mov r2, #0 +.L21240: + strh r3, [r2, r5] @ movhi + add r2, r2, #2 + cmp r2, #480 + bne .L21240 + b .L21241 +.L21267: + mov r3, r0, lsr #6 + and r3, r3, #3 + cmp r3, #2 + beq .L21085 + cmp r3, #3 + beq .L21086 + cmp r3, #1 + beq .L21271 +.L21083: + ldr r3, .L21279+16 + ldr r3, [r3, #0] + ands r1, r3, #4 + beq .L21140 + mov r2, #0 + mov r6, sp + mov r1, r2 +.L21142: + str r1, [r2, r6] + add r2, r2, #4 + cmp r2, #960 + bne .L21142 + ands r2, r4, #64 + bic r0, r3, #4 + beq .L21144 + mov r2, #240 + mov r3, sp + bl render_scanline_obj_partial_alpha_1D +.L21146: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21169 + ldr r8, .L21279+16 + and sl, r4, #64 + mov r7, #1 + b .L21149 +.L21272: + bl render_scanline_obj_partial_alpha_1D +.L21154: + ldr r3, [fp, #0] + add r7, r7, #1 + cmp r3, r7 + add r8, r8, #4 + bls .L21169 +.L21149: + ldr ip, [r8, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, sp + beq .L21150 + mov r1, #0 + bic ip, ip, #4 + cmp sl, r1 + mov r0, ip + bne .L21272 + mov r3, sp + mov r0, ip + mov r1, sl + mov r2, #240 + bl render_scanline_obj_partial_alpha_2D + ldr r3, [fp, #0] + add r7, r7, #1 + cmp r3, r7 + add r8, r8, #4 + bhi .L21149 +.L21169: + mov r0, sp + mov r1, r5 + mov r2, #0 + mov r3, #240 + bl expand_blend + b .L21241 +.L21236: + tst r0, #32 + beq .L21235 + ldrh r3, [lr, #84] + ldr r1, .L21279+24 + and r3, r3, #31 + cmp r3, #16 + movcs r3, #16 + orr r2, ip, ip, asl #16 + and r1, r2, r1 + rsb r0, r3, #16 + rsb r2, r3, r3, asl #6 + mul ip, r1, r0 + add r3, r3, r2, asl #5 + rsb r3, r3, r3, asl #16 + ldr r1, .L21279+24 + mov r3, r3, lsr #4 + and r1, r3, r1 + ldr r2, .L21279+24 + add r1, r1, ip, lsr #4 + and r2, r1, r2 + orr ip, r2, r2, lsr #16 + b .L21235 +.L21085: + ldrh r3, [lr, #84] + tst r3, #31 + beq .L21083 + tst r0, #63 + beq .L21083 + ldr r3, .L21279+16 + ldr r3, [r3, #0] + ands r1, r3, #4 + beq .L21108 + mov r2, #0 + mov r6, sp + mov r1, r2 +.L21110: + str r1, [r2, r6] + add r2, r2, #4 + cmp r2, #960 + bne .L21110 + ands r2, r4, #64 + bic r0, r3, #4 + beq .L21112 + mov r2, #240 + mov r3, sp + bl render_scanline_obj_partial_alpha_1D +.L21114: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21115 + ldr r8, .L21279+16 + and sl, r4, #64 + mov r7, #1 + b .L21117 +.L21273: + bl render_scanline_obj_partial_alpha_1D +.L21122: + ldr r3, [fp, #0] + add r7, r7, #1 + cmp r3, r7 + add r8, r8, #4 + bls .L21115 +.L21117: + ldr ip, [r8, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, sp + beq .L21118 + mov r1, #0 + bic ip, ip, #4 + cmp sl, r1 + mov r0, ip + bne .L21273 + mov r0, ip + mov r1, sl + mov r2, #240 + mov r3, sp + bl render_scanline_obj_partial_alpha_2D + b .L21122 +.L21157: + ldrh r3, [lr, #84] + tst r3, #31 + beq .L21155 + tst r0, #63 + beq .L21155 + ldr r3, .L21279+16 + ldr r3, [r3, #0] + ands r1, r3, #4 + beq .L21179 + mov r2, ip +.L21181: + mov r1, #0 @ movhi + strh r1, [r2, r5] @ movhi + add r2, r2, #2 + cmp r2, #480 + bne .L21181 + ands r1, r4, #64 + bic r0, r3, #4 + beq .L21183 + mov r1, #0 + sub r2, r2, #240 + mov r3, r5 + bl render_scanline_obj_color16_1D +.L21185: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21186 + ldr r7, .L21279+16 + and r8, r4, #64 + mov r6, #1 + b .L21188 +.L21274: + bl render_scanline_obj_color16_1D +.L21193: + ldr r3, [fp, #0] + add r6, r6, #1 + cmp r3, r6 + add r7, r7, #4 + bls .L21186 +.L21188: + ldr ip, [r7, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, r5 + beq .L21189 + mov r1, #0 + bic ip, ip, #4 + cmp r8, r1 + mov r0, ip + bne .L21274 + mov r0, ip + mov r1, r8 + mov r2, #240 + mov r3, r5 + bl render_scanline_obj_color16_2D + b .L21193 +.L21230: + mov lr, pc + ldr pc, [r4, #4] + b .L21234 +.L21150: + mov lr, pc + ldr pc, [r4, #28] + b .L21154 +.L21270: + tst r0, #32 + beq .L21235 + ldrh r3, [lr, #84] + ldr r0, .L21279+24 + and r3, r3, #31 + orr r2, ip, ip, asl #16 + rsb r3, r3, #16 + and r0, r2, r0 + cmp r3, #0 + movlt r3, #0 + mul r1, r3, r0 + ldr r2, .L21279+24 + mov r1, r1, lsr #4 + and r2, r1, r2 + orr ip, r2, r2, lsr #16 + b .L21235 +.L21144: + mov r1, r2 + mov r3, sp + mov r2, #240 + bl render_scanline_obj_partial_alpha_2D + b .L21146 +.L21225: + mov r2, #240 + mov r3, r5 + bl render_scanline_obj_normal_2D + b .L21227 +.L21140: + mov r0, r3 + add ip, r9, r3, asl #5 + mov r2, #240 + mov r3, sp + mov r6, sp + mov lr, pc + ldr pc, [ip, #24] + b .L21146 +.L21221: + mov r0, ip + mov r2, #240 + mov r3, r5 + mov lr, pc + ldr pc, [r9, ip, asl #5] + b .L21227 +.L21086: + ldrh r3, [lr, #84] + tst r3, #31 + beq .L21083 + tst r0, #63 + beq .L21083 + ldr r3, .L21279+16 + ldr r3, [r3, #0] + ands r1, r3, #4 + beq .L21125 + mov r2, #0 + mov r6, sp + mov r1, r2 +.L21127: + str r1, [r2, r6] + add r2, r2, #4 + cmp r2, #960 + bne .L21127 + ands r2, r4, #64 + bic r0, r3, #4 + beq .L21129 + mov r2, #240 + mov r3, sp + bl render_scanline_obj_partial_alpha_1D +.L21131: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21132 + ldr r8, .L21279+16 + and sl, r4, #64 + mov r7, #1 + b .L21134 +.L21275: + bl render_scanline_obj_partial_alpha_1D +.L21139: + ldr r3, [fp, #0] + add r7, r7, #1 + cmp r3, r7 + add r8, r8, #4 + bls .L21132 +.L21134: + ldr ip, [r8, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, sp + beq .L21135 + mov r1, #0 + bic ip, ip, #4 + cmp sl, r1 + mov r0, ip + bne .L21275 + mov r0, ip + mov r1, sl + mov r2, #240 + mov r3, sp + bl render_scanline_obj_partial_alpha_2D + b .L21139 +.L21158: + ldrh r3, [lr, #84] + tst r3, #31 + beq .L21155 + tst r0, #63 + beq .L21155 + ldr r3, .L21279+16 + ldr r3, [r3, #0] + ands r1, r3, #4 + beq .L21201 + mov r2, #0 +.L21203: + mov r1, #0 @ movhi + strh r1, [r2, r5] @ movhi + add r2, r2, #2 + cmp r2, #480 + bne .L21203 + ands r1, r4, #64 + bic r0, r3, #4 + beq .L21205 + mov r1, #0 + sub r2, r2, #240 + mov r3, r5 + bl render_scanline_obj_color16_1D +.L21207: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21208 + ldr r6, .L21279+16 + and r8, r4, #64 + mov r7, #1 + b .L21210 +.L21276: + bl render_scanline_obj_color16_1D +.L21215: + ldr r3, [fp, #0] + add r7, r7, #1 + cmp r3, r7 + add r6, r6, #4 + bls .L21208 +.L21210: + ldr ip, [r6, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, r5 + beq .L21211 + mov r1, #0 + bic ip, ip, #4 + cmp r8, r1 + mov r0, ip + bne .L21276 + mov r0, ip + mov r1, r8 + mov r2, #240 + mov r3, r5 + bl render_scanline_obj_color16_2D + b .L21215 +.L21118: + mov lr, pc + ldr pc, [r4, #28] + b .L21122 +.L21189: + mov lr, pc + ldr pc, [r4, #20] + b .L21193 +.L21135: + mov lr, pc + ldr pc, [r4, #28] + b .L21139 +.L21211: + mov lr, pc + ldr pc, [r4, #20] + b .L21215 +.L21271: + ldrh r2, [lr, #82] + ldr r3, .L21279+28 + and r3, r2, r3 + cmp r3, #31 + beq .L21083 + tst r0, #63 + beq .L21083 + tst r0, #16128 + beq .L21083 + ldr r3, .L21279+16 + ldr r3, [r3, #0] + ands r1, r3, #4 + beq .L21090 + mov r2, #0 + mov r6, sp + mov r1, r2 +.L21092: + str r1, [r2, r6] + add r2, r2, #4 + cmp r2, #960 + bne .L21092 + ands r2, r4, #64 + bic r0, r3, #4 + beq .L21094 + mov r2, #240 + mov r3, sp + bl render_scanline_obj_alpha_obj_1D +.L21096: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21169 + ldr r8, .L21279+16 + and sl, r4, #64 + mov r7, #1 + b .L21099 +.L21277: + mov r1, #0 + bic ip, ip, #4 + cmp sl, r1 + mov r0, ip + beq .L21102 + bl render_scanline_obj_alpha_obj_1D +.L21104: + ldr r3, [fp, #0] + add r7, r7, #1 + cmp r3, r7 + add r8, r8, #4 + bls .L21169 +.L21099: + ldr ip, [r8, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, sp + bne .L21277 + mov lr, pc + ldr pc, [r4, #12] + b .L21104 +.L21268: + ldrh r2, [lr, #82] + ldr r3, .L21279+28 + and r3, r2, r3 + cmp r3, #31 + beq .L21155 + tst r0, #63 + beq .L21155 + tst r0, #16128 + beq .L21155 + ldr r3, .L21279+16 + ldr r3, [r3, #0] + ands r1, r3, #4 + beq .L21162 + mov r2, ip + mov r6, sp + mov r1, ip +.L21164: + str r1, [r2, r6] + add r2, r2, #4 + cmp r2, #960 + bne .L21164 + ands r2, r4, #64 + bic r0, r3, #4 + beq .L21166 + mov r2, #240 + mov r3, sp + bl render_scanline_obj_alpha_obj_1D +.L21168: + ldr r3, [fp, #0] + cmp r3, #1 + bls .L21169 + ldr r8, .L21279+16 + and sl, r4, #64 + mov r7, #1 + b .L21171 +.L21278: + mov r1, #0 + bic ip, ip, #4 + cmp sl, r1 + mov r0, ip + beq .L21174 + bl render_scanline_obj_alpha_obj_1D +.L21176: + ldr r3, [fp, #0] + add r7, r7, #1 + cmp r3, r7 + add r8, r8, #4 + bls .L21169 +.L21171: + ldr ip, [r8, #4] + mov r2, #240 + ands r1, ip, #4 + mov r0, ip + add r4, r9, ip, asl #5 + mov r3, sp + bne .L21278 + mov lr, pc + ldr pc, [r4, #12] + b .L21176 +.L21174: + mov r0, ip + mov r1, sl + mov r2, #240 + mov r3, sp + bl render_scanline_obj_alpha_obj_2D + b .L21176 +.L21102: + mov r0, ip + mov r1, sl + mov r2, #240 + mov r3, sp + bl render_scanline_obj_alpha_obj_2D + b .L21104 +.L21115: + mov r0, sp + mov r1, r5 + mov r2, #0 + mov r3, #240 + bl expand_brighten_partial_alpha + b .L21241 +.L21186: + ldrh r2, [sl, #84] + ldr r7, .L21279+24 + and r2, r2, #31 + cmp r2, #16 + movcs r2, #16 + rsb r3, r2, r2, asl #6 + add r3, r2, r3, asl #5 + rsb r3, r3, r3, asl #16 + mov r3, r3, lsr #4 + ldr r6, .L21279+20 + and r7, r3, r7 + rsb r4, r2, #16 + mov lr, #0 +.L21194: + ldrh r3, [r5, #0] + ldr ip, .L21279+24 + mov r2, r3, asl #23 + mov r2, r2, lsr #23 + tst r3, #512 + mov r2, r2, asl #1 + mov r1, r3, asl #23 + ldrneh r3, [r2, r6] + mov r0, ip + orrne r3, r3, r3, asl #16 + andne ip, r3, ip + mulne r2, ip, r4 + mov r1, r1, lsr #23 + mov r1, r1, asl #1 + addne r2, r7, r2, lsr #4 + andne r0, r2, r0 + ldreqh r1, [r1, r6] + orrne r3, r0, r0, lsr #16 + add lr, lr, #1 + strneh r3, [r5, #0] @ movhi + streqh r1, [r5, #0] @ movhi + cmp lr, #240 + add r5, r5, #2 + bne .L21194 + b .L21241 +.L21132: + mov r0, sp + mov r1, r5 + mov r2, #0 + mov r3, #240 + bl expand_darken_partial_alpha + b .L21241 +.L21208: + ldrh r3, [sl, #84] + ldr r6, .L21279+20 + and r3, r3, #31 + rsb r3, r3, #16 + cmp r3, #0 + movge r4, r3 + movlt r4, #0 + mov lr, #0 +.L21216: + ldrh r3, [r5, #0] + ldr ip, .L21279+24 + mov r2, r3, asl #23 + mov r2, r2, lsr #23 + tst r3, #512 + mov r2, r2, asl #1 + mov r1, r3, asl #23 + ldrneh r3, [r2, r6] + mov r0, ip + orrne r3, r3, r3, asl #16 + andne ip, r3, ip + mulne r2, r4, ip + mov r1, r1, lsr #23 + mov r1, r1, asl #1 + movne r2, r2, lsr #4 + andne r0, r2, r0 + ldreqh r1, [r1, r6] + orrne r3, r0, r0, lsr #16 + add lr, lr, #1 + strneh r3, [r5, #0] @ movhi + streqh r1, [r5, #0] @ movhi + cmp lr, #240 + add r5, r5, #2 + bne .L21216 + b .L21241 +.L21183: + mov r2, #240 + mov r3, r5 + bl render_scanline_obj_color16_2D + b .L21185 +.L21179: + mov r0, r3 + add ip, r9, r3, asl #5 + mov r2, #240 + mov r3, r5 + mov lr, pc + ldr pc, [ip, #16] + b .L21185 +.L21205: + mov r2, #240 + mov r3, r5 + bl render_scanline_obj_color16_2D + b .L21207 +.L21201: + mov r0, r3 + add ip, r9, r3, asl #5 + mov r2, #240 + mov r3, r5 + mov lr, pc + ldr pc, [ip, #16] + b .L21207 +.L21129: + mov r1, r2 + mov r3, sp + mov r2, #240 + bl render_scanline_obj_partial_alpha_2D + b .L21131 +.L21125: + mov r0, r3 + add ip, r9, r3, asl #5 + mov r2, #240 + mov r3, sp + mov r6, sp + mov lr, pc + ldr pc, [ip, #24] + b .L21131 +.L21112: + mov r1, r2 + mov r3, sp + mov r2, #240 + bl render_scanline_obj_partial_alpha_2D + b .L21114 +.L21108: + mov r0, r3 + add ip, r9, r3, asl #5 + mov r2, #240 + mov r3, sp + mov r6, sp + mov lr, pc + ldr pc, [ip, #24] + b .L21114 +.L21166: + mov r1, r2 + mov r3, sp + mov r2, #240 + bl render_scanline_obj_alpha_obj_2D + b .L21168 +.L21094: + mov r1, r2 + mov r3, sp + mov r2, #240 + bl render_scanline_obj_alpha_obj_2D + b .L21096 +.L21162: + mov r0, r3 + add ip, r9, r3, asl #5 + mov r2, #240 + mov r3, sp + mov r6, sp + mov lr, pc + ldr pc, [ip, #8] + b .L21168 +.L21090: + mov r0, r3 + add ip, r9, r3, asl #5 + mov r2, #240 + mov r3, sp + mov r6, sp + mov lr, pc + ldr pc, [ip, #8] + b .L21096 +.L21280: + .align 2 +.L21279: + .word layer_count + .word io_registers + .word obj_alpha_count + .word tile_mode_renderers + .word layer_order + .word palette_ram_converted + .word 132184095 + .word 7967 + .size render_scanline_tile, .-render_scanline_tile + .align 2 + .global print_string_pad + .type print_string_pad, %function +print_string_pad: + @ args = 8, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr lr, .L21320 + sub sp, sp, #16 + ldr ip, .L21320+4 + ldr r5, [lr, #0] + ldr sl, [sp, #52] + ldr r4, [ip, #0] + str r0, [sp, #4] + add ip, sl, #10 + mov r2, r2, asl #16 + mov fp, r3 + ldrh r3, [r5, #16] + ldr r5, [r5, #20] + cmp ip, r4 + mov r4, r2, lsr #16 + ldr r2, [sp, #4] + mov r1, r1, asl #16 + str r5, [sp, #0] + mov r0, r1, lsr #16 + ldrb ip, [r2, #0] @ zero_extendqisi2 + bcs .L21313 + cmp ip, #0 + beq .L21313 + ldr r2, .L21320+8 + mov r9, r3, lsr #1 + ldr r2, [r2, #0] + mla r3, sl, r9, fp + add r1, r9, r9, asl #2 + str r2, [sp, #12] + ldr r2, [sp, #0] + mov r1, r1, asl #2 + str r1, [sp, #8] + add r6, r2, r3, asl #1 + mov r5, r9, asl #1 + mov r1, fp + mov r7, #0 + mov r8, #1 +.L21285: + cmp ip, #10 + beq .L21319 + ldr r3, .L21320+12 + mov lr, #0 + ldr r2, [r3, ip, asl #2] + ldr r3, .L21320+16 + mov ip, r6 + add r2, r3, r2, asl #1 +.L21289: + ldrh r3, [r2, #0] + add lr, lr, #1 + tst r3, #32768 + streqh r4, [ip, #0] @ movhi + strneh r0, [ip, #0] @ movhi + tst r3, #16384 + streqh r4, [ip, #2] @ movhi + strneh r0, [ip, #2] @ movhi + tst r3, #8192 + streqh r4, [ip, #4] @ movhi + strneh r0, [ip, #4] @ movhi + tst r3, #4096 + streqh r4, [ip, #6] @ movhi + strneh r0, [ip, #6] @ movhi + tst r3, #2048 + streqh r4, [ip, #8] @ movhi + strneh r0, [ip, #8] @ movhi + tst r3, #1024 + strneh r0, [ip, #10] @ movhi + streqh r4, [ip, #10] @ movhi + cmp lr, #10 + add ip, ip, r5 + add r2, r2, #2 + bne .L21289 + add r3, r6, r5 + add r2, r5, r5, asl #3 + add r3, r3, r2 + ldr r2, [sp, #8] + add r1, r1, #6 + rsb r3, r2, r3 + add r6, r3, #12 +.L21288: + ldr r3, [sp, #4] + ldr r2, [sp, #56] + ldrb ip, [r3, r8] @ zero_extendqisi2 + add r7, r7, #1 + cmp r2, r7 + movls r3, #0 + movhi r3, #1 + cmp ip, #0 + movne r3, #0 + ldr r2, [sp, #12] + cmp r3, #0 + add r3, r1, #6 + movne ip, #32 + addeq r8, r8, #1 + cmp r3, r2 + bcs .L21313 + cmp ip, #0 + bne .L21285 +.L21313: + add sp, sp, #16 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L21319: + add sl, sl, #10 + mla r3, sl, r9, fp + ldr r2, [sp, #0] + mov r1, fp + add r6, r2, r3, asl #1 + b .L21288 +.L21321: + .align 2 +.L21320: + .word screen + .word resolution_height + .word resolution_width + .word _font_offset + .word _font_bits + .size print_string_pad, .-print_string_pad + .align 2 + .global print_string + .type print_string, %function +print_string: + @ args = 4, pretend = 0, frame = 12 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr lr, .L21358 + sub sp, sp, #12 + ldr ip, .L21358+4 + ldr r5, [lr, #0] + ldr r8, [sp, #48] + ldr r4, [ip, #0] + mov r9, r3 + ldrh r3, [r5, #16] + ldr r5, [r5, #20] + add ip, r8, #10 + cmp ip, r4 + mov fp, r0 + mov r1, r1, asl #16 + mov r2, r2, asl #16 + str r5, [sp, #0] + mov r0, r1, lsr #16 + mov r4, r2, lsr #16 + ldrb ip, [fp, #0] @ zero_extendqisi2 + bcs .L21352 + cmp ip, #0 + beq .L21352 + ldr r2, .L21358+8 + mov sl, r3, lsr #1 + ldr r2, [r2, #0] + mla r3, r8, sl, r9 + add r1, sl, sl, asl #2 + str r2, [sp, #8] + ldr r2, [sp, #0] + mov r1, r1, asl #2 + cmp ip, #10 + str r1, [sp, #4] + add r6, r2, r3, asl #1 + mov r5, sl, asl #1 + mov r1, r9 + mov r7, #1 + beq .L21357 +.L21327: + ldr r3, .L21358+12 + mov lr, #0 + ldr r2, [r3, ip, asl #2] + ldr r3, .L21358+16 + mov ip, r6 + add r2, r3, r2, asl #1 +.L21330: + ldrh r3, [r2, #0] + add lr, lr, #1 + tst r3, #32768 + streqh r4, [ip, #0] @ movhi + strneh r0, [ip, #0] @ movhi + tst r3, #16384 + streqh r4, [ip, #2] @ movhi + strneh r0, [ip, #2] @ movhi + tst r3, #8192 + streqh r4, [ip, #4] @ movhi + strneh r0, [ip, #4] @ movhi + tst r3, #4096 + streqh r4, [ip, #6] @ movhi + strneh r0, [ip, #6] @ movhi + tst r3, #2048 + streqh r4, [ip, #8] @ movhi + strneh r0, [ip, #8] @ movhi + tst r3, #1024 + strneh r0, [ip, #10] @ movhi + streqh r4, [ip, #10] @ movhi + cmp lr, #10 + add ip, ip, r5 + add r2, r2, #2 + bne .L21330 + add r3, r5, r6 + add r2, r5, r5, asl #3 + add r3, r3, r2 + ldr r2, [sp, #4] + add r1, r1, #6 + rsb r3, r2, r3 + ldr r2, [sp, #8] + add r6, r3, #12 + add r3, r1, #6 + cmp r3, r2 + ldrb ip, [r7, fp] @ zero_extendqisi2 + bcs .L21352 +.L21356: + cmp ip, #0 + beq .L21352 + cmp ip, #10 + add r7, r7, #1 + bne .L21327 +.L21357: + add r8, r8, #10 + mla r3, r8, sl, r9 + ldr r2, [sp, #0] + mov r1, r9 + add r6, r2, r3, asl #1 + ldr r2, [sp, #8] + add r3, r1, #6 + cmp r3, r2 + ldrb ip, [r7, fp] @ zero_extendqisi2 + bcc .L21356 +.L21352: + add sp, sp, #12 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L21359: + .align 2 +.L21358: + .word screen + .word resolution_height + .word resolution_width + .word _font_offset + .word _font_bits + .size print_string, .-print_string + .align 2 + .global render_scanline_obj_copy_bitmap_2D + .type render_scanline_obj_copy_bitmap_2D, %function +render_scanline_obj_copy_bitmap_2D: + @ args = 0, pretend = 0, frame = 596 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr lr, .L22220 + add r0, r0, r0, asl #2 + ldrh r4, [lr, #6] + ldr ip, .L22220+4 + add r0, r4, r0, asl #5 + ldr ip, [ip, r0, asl #2] + sub sp, sp, #596 + ldrh r6, [lr, #0] + ldrh r5, [lr, #74] + str ip, [sp, #56] + cmp ip, #0 + ldr lr, .L22220+8 + ldr ip, .L22220+12 + str r4, [sp, #52] + and r4, r6, #7 + add r4, ip, r4, asl #2 + add r0, lr, r0, asl #7 + str r4, [sp, #40] + str r0, [sp, #60] + str r1, [sp, #16] + str r2, [sp, #12] + str r3, [sp, #8] + mov r5, r5, lsr #8 + beq .L22165 + and r7, r5, #16 + add ip, r3, r1, asl #1 + rsb lr, r1, r2 + mov r0, #0 + and r6, r6, #64 + and r5, r5, #4 + str r7, [sp, #76] + str r6, [sp, #80] + str r5, [sp, #84] + str ip, [sp, #88] + str lr, [sp, #108] + str r0, [sp, #44] + mov r1, r0 +.L21363: + ldr r2, [sp, #60] + ldr r4, .L22220+16 + ldrb r3, [r1, r2] @ zero_extendqisi2 + ldr ip, .L22220+20 + mov r3, r3, asl #3 + ldrh r8, [r3, r4] + add r3, r3, r4 + ldrh sl, [r3, #2] + mov r6, r8, lsr #12 + and r2, r6, #12 + orr r2, r2, sl, lsr #14 + ldr ip, [ip, r2, asl #2] + ands r7, r8, #512 + mov r1, sl, asl #23 + moveq lr, ip + mov r9, r1, asr #23 + str r7, [sp, #28] + ldr r7, [sp, #12] + addne r1, r9, ip, asl #1 + addeq r1, r9, lr + str r6, [sp, #24] + ldr r6, [sp, #16] + ldrh r3, [r3, #4] + cmp r1, r7 + movcc r7, r1 + ldr r0, [sp, #12] + ldr r1, [sp, #16] + cmp r9, r6 + movcs r6, r9 + str r3, [sp, #20] + cmp r0, r6 + movls r3, #0 + movhi r3, #1 + cmp r1, r7 + movcs r3, #0 + cmp r3, #0 + str r2, [sp, #48] + str ip, [sp, #112] + beq .L21367 + cmp r7, r6 + ldr r3, .L22220+24 + movls r4, r6, asl #1 + ldrh r0, [r3, #0] + strls r4, [sp, #0] + bls .L21369 + mov r2, r6, asl #1 + add r3, sp, #116 + str r2, [sp, #0] + rsb r1, r6, r7 + add r2, r3, r2 + mov r3, #0 +.L21371: + add r3, r3, #1 + cmp r1, r3 + strh r0, [r2], #2 @ movhi + bne .L21371 +.L21369: + ldr fp, .L22220+28 + ldr r3, [fp, #0] + cmp r3, #0 + beq .L21372 + ldr r5, .L22220+32 + mov r4, #0 + b .L21374 +.L22194: + ldr ip, [sp, #76] + cmp ip, #0 + bic ip, r0, #4 + beq .L21377 + ldr lr, [sp, #80] + mov r0, ip + cmp lr, #0 + mov r1, r6 + mov r2, r7 + add r3, sp, #116 + beq .L21379 + bl render_scanline_obj_normal_1D +.L21377: + ldr r3, [fp, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bls .L21372 +.L21374: + ldr r0, [r5, #0] + tst r0, #4 + bne .L22194 + ldr r0, [sp, #84] + mov r1, r7 + cmp r0, #0 + add r2, sp, #116 + mov r0, r6 + beq .L21377 + ldr r3, [sp, #40] + mov lr, pc + ldr pc, [r3, #0] + ldr r3, [fp, #0] + add r4, r4, #1 + cmp r3, r4 + add r5, r5, #4 + bhi .L21374 +.L21372: + and r0, r8, #255 + cmp r0, #160 + ldr r6, [sp, #0] + ldr r3, .L22220+36 + ldr r7, [sp, #48] + add r4, sp, #116 + subgt r0, r0, #256 + tst r8, #256 + add r5, r4, r6 + ldr fp, [r3, r7, asl #2] + beq .L21384 + tst r8, #8192 + beq .L21386 + mov r3, sl, lsr #4 + ldr ip, [sp, #28] + ldr lr, .L22220+16 + ldr r1, [sp, #112] + and r3, r3, #992 + cmp ip, #0 + add r3, r3, lr + add r2, r1, r1, lsr #31 + add r1, fp, fp, lsr #31 + ldrh r4, [r3, #30] + mov lr, r1, asr #1 + ldrne r6, [sp, #112] + ldr r1, [sp, #16] + mov ip, r2, asr #1 + str r4, [sp, #32] + moveq r7, ip + movne r4, r6, asl #1 + ldreq r4, [sp, #112] + moveq r6, lr + movne r7, ip, asl #1 + movne r6, lr, asl #1 + cmp r9, r1 + ldrh sl, [r3, #6] + ldrh r2, [r3, #14] + ldrh r8, [r3, #22] + bge .L21391 + rsb r1, r9, r1 + rsb r4, r1, r4 + cmp r4, #0 + ble .L21367 + ldr r9, [sp, #16] + rsb r7, r1, r7 +.L21391: + ldr r1, [sp, #12] + add r3, r9, r4 + cmp r3, r1 + blt .L21394 + rsb r4, r9, r1 + cmp r4, #0 + ble .L21367 +.L21394: + add r0, r0, r6 + ldr r6, [sp, #32] + mov r2, r2, asl #16 + mov ip, ip, asl #8 + mov r3, sl, asl #16 + mov r1, r6, asl #16 + str ip, [sp, #104] + mov r6, r2, asr #16 + mov ip, lr, asl #8 + ldr r2, [sp, #52] + ldr lr, [sp, #8] + mov r3, r3, asr #16 + cmp r8, #0 + str r3, [sp, #64] + mov r1, r1, asr #16 + add sl, lr, r9, asl #1 + rsb r0, r0, r2 + bne .L21396 + mla r3, r0, r1, ip + mov r1, r3, asr #8 + cmp r1, fp + bcs .L21367 + ldr ip, [sp, #20] + mov r2, r1, lsr #3 + mov r3, ip, asl #22 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #2 + ldr r3, .L22220+40 + cmp r4, #0 + add r9, r3, r1, asl #3 + ble .L21367 + ldr r2, [sp, #64] + mul r3, r0, r6 + mul r2, r7, r2 + ldr lr, [sp, #104] + rsb r3, r2, r3 + add r0, lr, r3 + ldr r1, [sp, #112] + mov ip, r0, asr #8 + cmp ip, r1 + movcs lr, r8 + bcs .L21402 + b .L22216 +.L21403: + ldr r2, [sp, #112] + cmp ip, r2 + bcc .L22182 +.L21402: + ldr r3, [sp, #64] + add lr, lr, #1 + add r0, r0, r3 + cmp r4, lr + mov ip, r0, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bne .L21403 +.L21367: + ldr ip, [sp, #44] + ldr lr, [sp, #56] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #44] + beq .L22165 +.L22197: + ldr r1, [sp, #44] + b .L21363 +.L21379: + mov r0, ip + mov r1, r6 + mov r2, r7 + add r3, sp, #116 + bl render_scanline_obj_normal_2D + b .L21377 +.L21384: + ldr r3, [sp, #52] + tst sl, #8192 + rsb r0, r0, r3 + ldr r4, [sp, #24] + rsbne r3, r0, fp + subne r0, r3, #1 + mov r2, sl, asl #19 + and r3, r4, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L21367 + .p2align 2 +.L21464: + .word .L21460 + .word .L21461 + .word .L21462 + .word .L21463 +.L21386: + ldr r6, .L22220+16 + mov r3, sl, lsr #4 + and r3, r3, #992 + add r3, r3, r6 + ldr r7, [sp, #112] + ldr r4, [sp, #28] + ldrh ip, [r3, #30] + add r2, r7, r7, lsr #31 + cmp r4, #0 + add r1, fp, fp, lsr #31 + str ip, [sp, #36] + ldrh sl, [r3, #6] + mov ip, r2, asr #1 + ldrh r8, [r3, #22] + ldrh r2, [r3, #14] + ldr r3, [sp, #16] + mov lr, r1, asr #1 + movne r1, r7 + moveq r4, r7 + moveq r6, lr + moveq r7, ip + movne r4, r1, asl #1 + movne r7, ip, asl #1 + movne r6, lr, asl #1 + cmp r9, r3 + bge .L21423 + rsb r1, r9, r3 + rsb r4, r1, r4 + cmp r4, #0 + ble .L21367 + rsb r7, r1, r7 + mov r9, r3 +.L21423: + ldr r1, [sp, #12] + add r3, r9, r4 + cmp r3, r1 + blt .L21426 + rsb r4, r9, r1 + cmp r4, #0 + ble .L21367 +.L21426: + add r0, r0, r6 + ldr r6, [sp, #36] + mov r2, r2, asl #16 + mov ip, ip, asl #8 + mov r3, sl, asl #16 + mov r1, r6, asl #16 + str ip, [sp, #92] + mov r6, r2, asr #16 + mov ip, lr, asl #8 + ldr r2, [sp, #52] + ldr lr, [sp, #8] + mov r3, r3, asr #16 + cmp r8, #0 + str r3, [sp, #68] + mov r1, r1, asr #16 + add sl, lr, r9, asl #1 + rsb r0, r0, r2 + bne .L21428 + mla r3, r0, r1, ip + mov r1, r3, asr #8 + cmp r1, fp + bcs .L21367 + ldr ip, [sp, #20] + mov r2, r1, lsr #3 + mov r3, ip, asl #22 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r1, #7 + add r1, r1, r3, asl #3 + ldr r3, .L22220+40 + cmp r4, #0 + add r9, r3, r1, asl #2 + ble .L21367 + ldr r2, [sp, #68] + mul r3, r0, r6 + mul r2, r7, r2 + ldr lr, [sp, #92] + rsb r3, r2, r3 + ldr r1, [sp, #112] + add r0, lr, r3 + mov ip, r0, asr #8 + cmp ip, r1 + movcs r1, r8 + bcs .L21434 + b .L22217 +.L21435: + ldr r2, [sp, #112] + cmp ip, r2 + bcc .L22184 +.L21434: + ldr r3, [sp, #68] + add r1, r1, #1 + add r0, r0, r3 + cmp r4, r1 + mov ip, r0, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bne .L21435 + ldr ip, [sp, #44] + ldr lr, [sp, #56] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #44] + bne .L22197 +.L22165: + add sp, sp, #596 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L21437: + ldr r6, [sp, #112] + cmp ip, r6 + bcs .L21367 +.L22184: + mov r3, ip, asr #1 + and r6, r3, #3 + mov r3, ip, asr #3 + mov r3, r3, asl #5 + mov r2, ip, asr #1 + tst ip, #1 + and lr, r2, #3 + add ip, r3, r9 + add r2, r3, r9 + ldreqb r3, [r2, lr] @ zero_extendqisi2 + ldrneb r3, [ip, r6] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + cmp r2, #0 + ldrneh lr, [r5, #0] + ldr r7, [sp, #68] + add r1, r1, #1 + strneh lr, [sl, #0] @ movhi + add r0, r0, r7 + cmp r4, r1 + mov ip, r0, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bgt .L21437 + b .L21367 +.L21428: + ldr r2, [sp, #20] + cmp r4, #0 + mov r3, r2, asl #22 + ldr r2, .L22220+40 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + str r3, [sp, #96] + ble .L21367 + mov r3, r8, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #72] + mul r2, r0, r1 + mul r3, r0, r6 + ldr r1, [sp, #72] + ldr r0, [sp, #68] + mul r1, r7, r1 + mul r0, r7, r0 + ldr r6, [sp, #92] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r7, r6, r3 + ldr r0, [sp, #112] + add r6, ip, r2 + mov lr, r7, asr #8 + mov ip, r6, asr #8 + cmp lr, r0 + cmpcc ip, fp + movcs r3, #0 + movcc r3, #1 + movcs r8, r3 + bcs .L21447 + b .L22218 +.L21448: + ldr r1, [sp, #112] + cmp lr, r1 + cmpcc ip, fp + bcc .L21449 +.L21447: + ldr r2, [sp, #68] + ldr r3, [sp, #72] + add r8, r8, #1 + add r7, r7, r2 + add r6, r6, r3 + cmp r4, r8 + mov lr, r7, asr #8 + mov ip, r6, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bne .L21448 + b .L21367 +.L21405: + ldr r6, [sp, #112] + cmp ip, r6 + bcs .L21367 +.L22182: + mov r3, ip, asr #3 + and r1, ip, #7 + add r3, r9, r3, asl #6 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r7, [sp, #64] + cmp r2, #0 + ldrneh r1, [r5, #0] + add lr, lr, #1 + strneh r1, [sl, #0] @ movhi + add r0, r0, r7 + cmp r4, lr + mov ip, r0, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bgt .L21405 + b .L21367 +.L21396: + ldr r2, [sp, #20] + cmp r4, #0 + mov r3, r2, asl #22 + ldr r2, .L22220+40 + mov r3, r3, lsr #22 + add r3, r2, r3, asl #5 + str r3, [sp, #100] + ble .L21367 + mov r3, r8, asl #16 + mul r2, r0, r1 + mov r9, r3, asr #16 + mul r3, r0, r6 + ldr r0, [sp, #64] + mul r1, r9, r7 + mul r0, r7, r0 + ldr r6, [sp, #104] + rsb r3, r0, r3 + rsb r2, r1, r2 + add r7, r6, r3 + ldr r0, [sp, #112] + add r6, ip, r2 + mov lr, r7, asr #8 + mov ip, r6, asr #8 + cmp lr, r0 + cmpcc ip, fp + movcs r3, #0 + movcc r3, #1 + movcs r8, r3 + bcs .L21412 + b .L22219 +.L21413: + ldr r1, [sp, #112] + cmp lr, r1 + cmpcc ip, fp + bcc .L21414 +.L21412: + ldr r2, [sp, #64] + add r8, r8, #1 + add r7, r7, r2 + add r6, r6, r9 + cmp r4, r8 + mov lr, r7, asr #8 + mov ip, r6, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bne .L21413 + b .L21367 +.L21460: + ldr r6, [sp, #20] + mov r2, r0, lsr #3 + mov r3, r6, asl #22 + mov r3, r3, lsr #22 + add r3, r3, r2, asl #5 + and r1, r0, #7 + ldr r7, [sp, #16] + add r1, r1, r3, asl #3 + ldr r3, .L22220+40 + cmp r9, r7 + add r0, r3, r1, asl #2 + bge .L21465 + ldr r1, [sp, #112] + rsb ip, r9, r7 + rsb lr, ip, r1 + cmp lr, #0 + ble .L21367 + ldr r2, [sp, #12] + add r3, r9, r1 + cmp r2, r3 + bhi .L21468 + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + add r6, r0, r1 + bne .L21470 + ldr r8, [sp, #108] + ldr r7, [sp, #88] +.L21472: + movs lr, r8, lsr #3 + beq .L21489 + mov r1, r5 + mov r2, r7 + mov r0, r6 + mov ip, #0 +.L21491: + ldr r3, [r0, #0] + cmp r3, #0 + beq .L21492 + tst r3, #15 + ldrneh r4, [r1, #0] + strneh r4, [r2, #0] @ movhi + tst r3, #240 + ldrneh r4, [r1, #2] + strneh r4, [r2, #2] @ movhi + tst r3, #3840 + ldrneh r4, [r1, #4] + strneh r4, [r2, #4] @ movhi + tst r3, #61440 + ldrneh r4, [r1, #6] + strneh r4, [r2, #6] @ movhi + tst r3, #983040 + ldrneh r4, [r1, #8] + strneh r4, [r2, #8] @ movhi + tst r3, #15728640 + ldrneh r4, [r1, #10] + strneh r4, [r2, #10] @ movhi + tst r3, #251658240 + ldrneh r4, [r1, #12] + strneh r4, [r2, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r3, [r1, #14] + strneh r3, [r2, #14] @ movhi +.L21492: + add ip, ip, #1 + cmp ip, lr + add r0, r0, #32 + add r2, r2, #16 + add r1, r1, #16 + bne .L21491 + mov r3, lr, asl #4 + add r7, r7, r3 + add r6, r6, lr, asl #5 + add r5, r5, r3 +.L21489: + ands r0, r8, #7 + beq .L21367 + ldr r3, [r6, #0] + mov r1, #0 +.L21511: + tst r3, #15 + mov r2, r1, asl #1 + ldrneh r4, [r2, r5] + add r1, r1, #1 + strneh r4, [r2, r7] @ movhi + cmp r1, r0 + mov r3, r3, lsr #4 + bne .L21511 + b .L21367 +.L21461: + ldr ip, [sp, #20] + ldr lr, [sp, #112] + mov r3, ip, asl #22 + mov r1, r0, lsr #3 + subs r2, lr, #8 + mov r3, r3, lsr #22 + submi r2, lr, #1 + add r3, r3, r1, asl #5 + add r3, r3, r2, asr #3 + and r1, r0, #7 + ldr r0, [sp, #16] + add r1, r1, r3, asl #3 + ldr r3, .L22220+40 + cmp r9, r0 + add r0, r3, r1, asl #2 + bge .L21595 + ldr r1, [sp, #16] + rsb ip, r9, r1 + rsb r1, ip, lr + cmp r1, #0 + ble .L21367 + ldr r2, [sp, #12] + add r3, r9, lr + cmp r2, r3 + bhi .L21598 + mov r3, ip, lsr #3 + ands r6, ip, #7 + sub r0, r0, r3, asl #5 + bne .L21600 + ldr r8, [sp, #108] + ldr r1, [sp, #88] +.L21602: + movs r3, r8, lsr #3 + beq .L21619 + mov lr, r5 + mov ip, r1 + mov r6, r0 + mov r7, #0 +.L21621: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L21622 + tst r2, #15 + ldrneh r4, [lr, #14] + strneh r4, [ip, #14] @ movhi + tst r2, #240 + ldrneh r4, [lr, #12] + strneh r4, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r4, [lr, #10] + strneh r4, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r4, [lr, #8] + strneh r4, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r4, [lr, #6] + strneh r4, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r4, [lr, #4] + strneh r4, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r4, [lr, #2] + strneh r4, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r2, [lr, #0] + strneh r2, [ip, #0] @ movhi +.L21622: + add r7, r7, #1 + cmp r7, r3 + sub r6, r6, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L21621 + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r1, r1, r3 + add r0, r0, r2, asl #5 + add r5, r5, r3 +.L21619: + ands ip, r8, #7 + beq .L21367 + ldr r0, [r0, #0] + mov r2, #0 +.L21641: + movs r3, r0, lsr #28 + mov r3, r2, asl #1 + ldrneh r4, [r3, r5] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L21641 + b .L21367 +.L21463: + ldr lr, [sp, #112] + ldr r3, [sp, #20] + subs r2, lr, #8 + submi r2, lr, #1 + mov r1, r3, asl #22 + mov r2, r2, asr #3 + mov r3, r0, lsr #3 + add r2, r2, r3, asl #4 + mov r1, r1, lsr #22 + and r3, r0, #7 + add r1, r1, r2, asl #1 + add r3, r3, r1, asl #2 + ldr r4, [sp, #16] + mov r0, r3, asl #3 + ldr r3, .L22220+40 + cmp r9, r4 + add r8, r0, r3 + bge .L21945 + rsb r0, r9, r4 + rsb lr, r0, lr + cmp lr, #0 + ble .L21367 + ldr r6, [sp, #112] + ldr r7, [sp, #12] + add r3, r9, r6 + cmp r7, r3 + bhi .L21948 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub sl, r8, r3, asl #6 + bne .L21950 + ldr r8, [sp, #108] + ldr r7, [sp, #88] +.L21952: + movs r6, r8, lsr #3 + beq .L22010 + mov r0, r5 + mov r1, r7 + mov ip, sl + mov lr, #0 +.L22012: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L22013 + tst r2, #255 + ldrneh r3, [r0, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #4] + mov r3, r2, lsr #16 + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrneh r3, [r0, #2] + strneh r3, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r4, [r0, #0] + strneh r4, [r1, #0] @ movhi +.L22013: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L22022 + tst r2, #255 + ldrneh r3, [r0, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #12] + mov r3, r2, lsr #16 + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrneh r3, [r0, #10] + strneh r3, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrneh r4, [r0, #8] + strneh r4, [r1, #8] @ movhi +.L22022: + add lr, lr, #1 + cmp lr, r6 + sub ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L22012 + mov r3, r6, asl #4 + rsb r2, r6, r6, asl #26 + add r7, r7, r3 + add sl, sl, r2, asl #6 + add r5, r5, r3 +.L22010: + ands ip, r8, #7 + beq .L21367 + cmp ip, #3 + ldrls r2, [sl, #4] + bls .L22045 + ldr r2, [sl, #4] + cmp r2, #0 + beq .L22035 + tst r2, #255 + ldrneh r6, [r5, #6] + mov r3, r2, lsr #8 + strneh r6, [r7, #6] @ movhi + tst r3, #255 + ldrneh lr, [r5, #4] + mov r3, r2, lsr #16 + strneh lr, [r7, #4] @ movhi + tst r3, #255 + ldrneh r0, [r5, #2] + strneh r0, [r7, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r1, [r5, #0] + strneh r1, [r7, #0] @ movhi +.L22035: + subs ip, ip, #4 + ldr r2, [sl, #0] + addne r7, r7, #8 + addne r5, r5, #8 + beq .L21367 +.L22045: + mov r1, #0 +.L22046: + movs r3, r2, lsr #24 + mov r0, r1, asl #1 + ldrneh r4, [r0, r5] + add r1, r1, #1 + strneh r4, [r0, r7] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L22046 + b .L21367 +.L21462: + ldr ip, [sp, #20] + mov r1, r0, lsr #3 + mov r2, ip, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r1, asl #5 + and r3, r0, #7 + add r3, r3, r2, asl #2 + ldr lr, [sp, #16] + mov r0, r3, asl #3 + ldr r3, .L22220+40 + cmp r9, lr + add r2, r0, r3 + bge .L21725 + ldr r1, [sp, #112] + rsb r0, r9, lr + rsb lr, r0, r1 + cmp lr, #0 + ble .L21367 + ldr r4, [sp, #12] + add r3, r9, r1 + cmp r4, r3 + bhi .L21728 + mov r3, r0, lsr #3 + ands ip, r0, #7 + add sl, r2, r3, asl #6 + bne .L21730 + ldr r8, [sp, #108] + ldr r7, [sp, #88] +.L21732: + movs r6, r8, lsr #3 + beq .L21790 + mov r0, r5 + mov r1, r7 + mov ip, sl + mov lr, #0 +.L21792: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L21793 + tst r2, #255 + ldrneh r3, [r0, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #2] + mov r3, r2, lsr #16 + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrneh r3, [r0, #4] + strneh r3, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r4, [r0, #6] + strneh r4, [r1, #6] @ movhi +.L21793: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L21802 + tst r2, #255 + ldrneh r3, [r0, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #10] + mov r3, r2, lsr #16 + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrneh r3, [r0, #12] + strneh r3, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrneh r4, [r0, #14] + strneh r4, [r1, #14] @ movhi +.L21802: + add lr, lr, #1 + cmp lr, r6 + add ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L21792 + mov r3, r6, asl #4 + add r7, r7, r3 + add sl, sl, r6, asl #6 + add r5, r5, r3 +.L21790: + ands r0, r8, #7 + beq .L21367 + cmp r0, #3 + ldrls r3, [sl, #0] + bls .L21825 + ldr r2, [sl, #0] + cmp r2, #0 + beq .L21815 + tst r2, #255 + ldrneh r6, [r5, #0] + mov r3, r2, lsr #8 + strneh r6, [r7, #0] @ movhi + tst r3, #255 + ldrneh ip, [r5, #2] + mov r3, r2, lsr #16 + strneh ip, [r7, #2] @ movhi + tst r3, #255 + ldrneh lr, [r5, #4] + strneh lr, [r7, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r1, [r5, #6] + strneh r1, [r7, #6] @ movhi +.L21815: + subs r0, r0, #4 + ldr r3, [sl, #4] + addne r7, r7, #8 + addne r5, r5, #8 + beq .L21367 +.L21825: + mov r2, #0 +.L21826: + tst r3, #255 + mov r1, r2, asl #1 + ldrneh r4, [r1, r5] + add r2, r2, #1 + strneh r4, [r1, r7] @ movhi + cmp r0, r2 + mov r3, r3, lsr #8 + bhi .L21826 + b .L21367 +.L21725: + ldr ip, [sp, #112] + ldr lr, [sp, #12] + add r3, r9, ip + cmp lr, r3 + bls .L22200 + cmp ip, #0 + add r3, ip, #7 + movge r3, ip + movs r6, r3, asr #3 + beq .L21367 + ldr r7, [sp, #8] + ldr r3, .L22220+48 + add r1, r7, r9, asl #1 + add r0, r0, r3 + mov lr, #0 + b .L21925 +.L22201: + add r2, r2, #64 + add r1, r1, #16 + add r5, r5, #16 +.L21925: + ldr ip, [r2, #0] + cmp ip, #0 + beq .L21926 + tst ip, #255 + ldrneh r3, [r5, #0] + strneh r3, [r1, #0] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #2] + mov r3, ip, lsr #16 + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrneh r7, [r5, #4] + strneh r7, [r1, #4] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r5, #6] + strneh ip, [r1, #6] @ movhi +.L21926: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L21935 + tst ip, #255 + ldrneh r3, [r5, #8] + strneh r3, [r1, #8] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #10] + mov r3, ip, lsr #16 + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrneh r7, [r5, #12] + strneh r7, [r1, #12] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r5, #14] + strneh ip, [r1, #14] @ movhi +.L21935: + add lr, lr, #1 + cmp r6, lr + add r0, r0, #64 + bne .L22201 + b .L21367 +.L21595: + ldr ip, [sp, #12] + add r3, r9, lr + cmp ip, r3 + mov r7, lr + bls .L22202 + cmp lr, #0 + add r3, lr, #7 + movge r3, lr + movs r3, r3, asr #3 + mov r6, lr + beq .L21367 + ldr r7, [sp, #8] + mov ip, #0 + add r1, r7, r9, asl #1 + b .L21706 +.L22221: + .align 2 +.L22220: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word bitmap_mode_renderers-12 + .word oam_ram + .word obj_width_table + .word palette_ram_converted + .word layer_count + .word layer_order + .word obj_height_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L22203: + sub r0, r0, #32 + add r1, r1, #16 + add r5, r5, #16 +.L21706: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L21707 + tst r2, #15 + ldrneh lr, [r5, #14] + strneh lr, [r1, #14] @ movhi + tst r2, #240 + ldrneh r4, [r5, #12] + strneh r4, [r1, #12] @ movhi + tst r2, #3840 + ldrneh r6, [r5, #10] + strneh r6, [r1, #10] @ movhi + tst r2, #61440 + ldrneh r7, [r5, #8] + strneh r7, [r1, #8] @ movhi + tst r2, #983040 + ldrneh lr, [r5, #6] + strneh lr, [r1, #6] @ movhi + tst r2, #15728640 + ldrneh r4, [r5, #4] + strneh r4, [r1, #4] @ movhi + tst r2, #251658240 + ldrneh r6, [r5, #2] + strneh r6, [r1, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r7, [r5, #0] + strneh r7, [r1, #0] @ movhi +.L21707: + add ip, ip, #1 + cmp r3, ip + bne .L22203 + b .L21367 +.L21465: + ldr r1, [sp, #112] + ldr r2, [sp, #12] + add r3, r9, r1 + cmp r2, r3 + bls .L22204 + cmp r1, #0 + add r3, r1, #7 + movge r3, r1 + movs r3, r3, asr #3 + mov r6, r1 + beq .L21367 + ldr r7, [sp, #8] + mov r2, #0 + add r1, r7, r9, asl #1 + b .L21576 +.L22205: + add r0, r0, #32 + add r1, r1, #16 + add r5, r5, #16 +.L21576: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L21577 + tst ip, #15 + ldrneh lr, [r5, #0] + strneh lr, [r1, #0] @ movhi + tst ip, #240 + ldrneh r4, [r5, #2] + strneh r4, [r1, #2] @ movhi + tst ip, #3840 + ldrneh r6, [r5, #4] + strneh r6, [r1, #4] @ movhi + tst ip, #61440 + ldrneh r7, [r5, #6] + strneh r7, [r1, #6] @ movhi + tst ip, #983040 + ldrneh lr, [r5, #8] + strneh lr, [r1, #8] @ movhi + tst ip, #15728640 + ldrneh r4, [r5, #10] + strneh r4, [r1, #10] @ movhi + tst ip, #251658240 + ldrneh r6, [r5, #12] + strneh r6, [r1, #12] @ movhi + movs ip, ip, lsr #28 + ldrneh r7, [r5, #14] + strneh r7, [r1, #14] @ movhi +.L21577: + add r2, r2, #1 + cmp r3, r2 + bne .L22205 + b .L21367 +.L21945: + add r3, r9, lr + mov ip, lr + ldr lr, [sp, #12] + cmp lr, r3 + bls .L22206 + cmp ip, #0 + add r3, ip, #7 + movge r3, ip + movs lr, r3, asr #3 + mov r7, ip + beq .L21367 + ldr ip, [sp, #8] + ldr r3, .L22220+44 + add r1, ip, r9, asl #1 + add r0, r0, r3 + mov r2, #0 + b .L22145 +.L22207: + sub r8, r8, #64 + add r1, r1, #16 + add r5, r5, #16 +.L22145: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L22146 + tst ip, #255 + ldrneh r3, [r5, #6] + strneh r3, [r1, #6] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #4] + mov r3, ip, lsr #16 + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrneh r6, [r5, #2] + strneh r6, [r1, #2] @ movhi + movs ip, ip, lsr #24 + ldrneh r7, [r5, #0] + strneh r7, [r1, #0] @ movhi +.L22146: + ldr ip, [r8, #0] + cmp ip, #0 + beq .L22155 + tst ip, #255 + ldrneh r3, [r5, #14] + strneh r3, [r1, #14] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #12] + mov r3, ip, lsr #16 + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrneh r6, [r5, #10] + strneh r6, [r1, #10] @ movhi + movs ip, ip, lsr #24 + ldrneh r7, [r5, #8] + strneh r7, [r1, #8] @ movhi +.L22155: + add r2, r2, #1 + cmp lr, r2 + sub r0, r0, #64 + bne .L22207 + b .L21367 +.L22219: + mov r8, #0 +.L21414: + ldr r0, [sp, #112] + cmp ip, fp + cmpcc lr, r0 + bcc .L22183 + b .L21367 +.L21415: + ldr r3, [sp, #112] + cmp ip, fp + cmpcc lr, r3 + bcs .L21367 +.L22183: + and r3, ip, #7 + mov r2, lr, asr #3 + mov r3, r3, asl #3 + mov r1, ip, asr #3 + add r3, r3, r2, asl #6 + ldr r0, [sp, #64] + add r3, r3, r1, asl #10 + ldr r1, [sp, #100] + add r7, r7, r0 + add r3, r3, r1 + and r0, lr, #7 + ldrb r2, [r3, r0] @ zero_extendqisi2 + add r8, r8, #1 + cmp r2, #0 + ldrneh r2, [r5, #0] + add r6, r6, r9 + strneh r2, [sl, #0] @ movhi + cmp r4, r8 + mov ip, r6, asr #8 + mov lr, r7, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bgt .L21415 + b .L21367 +.L22218: + ldr r1, [sp, #112] + mov r8, #0 +.L21449: + cmp ip, fp + cmpcc lr, r1 + bcc .L22185 + b .L21367 +.L21450: + ldr r0, [sp, #112] + cmp ip, fp + cmpcc lr, r0 + bcs .L21367 +.L22185: + mov r3, lr, asr #1 + ldr r1, [sp, #96] + and r3, r3, #3 + and r0, ip, #7 + str r3, [sp, #4] + ldr r3, [sp, #96] + add r0, r1, r0, asl #2 + and r1, ip, #7 + mov r2, lr, asr #1 + add r1, r3, r1, asl #2 + mov r3, ip, asr #3 + and r9, r2, #3 + mov r3, r3, asl #10 + mov r2, lr, asr #3 + tst lr, #1 + add r3, r3, r2, asl #5 + add r2, r0, r3 + movne ip, r9 + add r0, r1, r3 + ldreqb r3, [r0, r9] @ zero_extendqisi2 + ldrneb r3, [r2, ip] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + cmp r0, #0 + ldrneh r2, [r5, #0] + ldr lr, [sp, #68] + ldr r1, [sp, #72] + add r8, r8, #1 + strneh r2, [sl, #0] @ movhi + add r7, r7, lr + add r6, r6, r1 + cmp r4, r8 + mov lr, r7, asr #8 + mov ip, r6, asr #8 + add sl, sl, #2 + add r5, r5, #2 + bgt .L21450 + b .L21367 +.L22206: + rsb fp, r9, lr + cmp fp, #0 + ble .L21367 + ldr r2, [sp, #8] + movs sl, fp, lsr #3 + add r1, r2, r9, asl #1 + beq .L22104 + ldr r3, .L22220+44 + mov r6, r5 + add r0, r0, r3 + mov lr, r1 + mov r7, r8 + mov r2, #0 +.L22106: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L22107 + tst ip, #255 + ldrneh r3, [r6, #6] + strneh r3, [lr, #6] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r6, #4] + mov r3, ip, lsr #16 + strneh r4, [lr, #4] @ movhi + tst r3, #255 + ldrneh r3, [r6, #2] + strneh r3, [lr, #2] @ movhi + movs ip, ip, lsr #24 + ldrneh r4, [r6, #0] + strneh r4, [lr, #0] @ movhi +.L22107: + ldr ip, [r7, #0] + cmp ip, #0 + beq .L22116 + tst ip, #255 + ldrneh r3, [r6, #14] + strneh r3, [lr, #14] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r6, #12] + mov r3, ip, lsr #16 + strneh r4, [lr, #12] @ movhi + tst r3, #255 + ldrneh r3, [r6, #10] + strneh r3, [lr, #10] @ movhi + movs ip, ip, lsr #24 + ldrneh r4, [r6, #8] + strneh r4, [lr, #8] @ movhi +.L22116: + add r2, r2, #1 + cmp sl, r2 + sub r7, r7, #64 + add lr, lr, #16 + add r6, r6, #16 + sub r0, r0, #64 + bne .L22106 + mov r3, sl, asl #4 + rsb r2, sl, sl, asl #26 + add r1, r1, r3 + add r8, r8, r2, asl #6 + add r5, r5, r3 +.L22104: + ands ip, fp, #7 + beq .L21367 + cmp ip, #3 + ldrls r2, [r8, #4] + bls .L22139 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L22129 + tst r2, #255 + ldrneh r6, [r5, #6] + mov r3, r2, lsr #8 + strneh r6, [r1, #6] @ movhi + tst r3, #255 + ldrneh r7, [r5, #4] + mov r3, r2, lsr #16 + strneh r7, [r1, #4] @ movhi + tst r3, #255 + ldrneh lr, [r5, #2] + strneh lr, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r0, [r5, #0] + strneh r0, [r1, #0] @ movhi +.L22129: + subs ip, ip, #4 + ldr r2, [r8, #0] + addne r1, r1, #8 + addne r5, r5, #8 + beq .L21367 +.L22139: + mov r3, #0 +.L22140: + movs r4, r2, lsr #24 + mov r0, r3, asl #1 + ldrneh r6, [r0, r5] + add r3, r3, #1 + strneh r6, [r0, r1] @ movhi + cmp ip, r3 + mov r2, r2, asl #8 + bhi .L22140 + b .L21367 +.L22202: + rsb r8, r9, ip + cmp r8, #0 + ble .L21367 + ldr lr, [sp, #8] + movs r3, r8, lsr #3 + add r1, lr, r9, asl #1 + beq .L21679 + mov lr, r5 + mov ip, r1 + mov r6, r0 + mov r7, #0 +.L21681: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L21682 + tst r2, #15 + ldrneh r4, [lr, #14] + strneh r4, [ip, #14] @ movhi + tst r2, #240 + ldrneh r4, [lr, #12] + strneh r4, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r4, [lr, #10] + strneh r4, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r4, [lr, #8] + strneh r4, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r4, [lr, #6] + strneh r4, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r4, [lr, #4] + strneh r4, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r4, [lr, #2] + strneh r4, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r2, [lr, #0] + strneh r2, [ip, #0] @ movhi +.L21682: + add r7, r7, #1 + cmp r7, r3 + sub r6, r6, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L21681 + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r1, r1, r3 + add r0, r0, r2, asl #5 + add r5, r5, r3 +.L21679: + ands ip, r8, #7 + beq .L21367 + ldr r0, [r0, #0] + mov r2, #0 +.L21701: + movs r3, r0, lsr #28 + mov r3, r2, asl #1 + ldrneh r4, [r3, r5] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L21701 + b .L21367 +.L22204: + rsb r8, r9, r2 + cmp r8, #0 + ble .L21367 + ldr r3, [sp, #8] + movs r7, r8, lsr #3 + add r1, r3, r9, asl #1 + beq .L21549 + mov lr, r5 + mov ip, r1 + mov r6, r0 + mov r2, #0 +.L21551: + ldr r3, [r6, #0] + cmp r3, #0 + beq .L21552 + tst r3, #15 + ldrneh r4, [lr, #0] + strneh r4, [ip, #0] @ movhi + tst r3, #240 + ldrneh r4, [lr, #2] + strneh r4, [ip, #2] @ movhi + tst r3, #3840 + ldrneh r4, [lr, #4] + strneh r4, [ip, #4] @ movhi + tst r3, #61440 + ldrneh r4, [lr, #6] + strneh r4, [ip, #6] @ movhi + tst r3, #983040 + ldrneh r4, [lr, #8] + strneh r4, [ip, #8] @ movhi + tst r3, #15728640 + ldrneh r4, [lr, #10] + strneh r4, [ip, #10] @ movhi + tst r3, #251658240 + ldrneh r4, [lr, #12] + strneh r4, [ip, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r3, [lr, #14] + strneh r3, [ip, #14] @ movhi +.L21552: + add r2, r2, #1 + cmp r2, r7 + add r6, r6, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L21551 + mov r3, r7, asl #4 + add r1, r1, r3 + add r0, r0, r7, asl #5 + add r5, r5, r3 +.L21549: + ands ip, r8, #7 + beq .L21367 + ldr r0, [r0, #0] + mov r2, #0 +.L21571: + tst r0, #15 + mov r3, r2, asl #1 + ldrneh r4, [r3, r5] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, lsr #4 + bne .L21571 + b .L21367 +.L22200: + rsb fp, r9, lr + cmp fp, #0 + ble .L21367 + ldr r3, [sp, #8] + movs sl, fp, lsr #3 + add r1, r3, r9, asl #1 + beq .L21884 + ldr r3, .L22220+48 + mov r6, r5 + add r0, r0, r3 + mov lr, r1 + mov r7, r2 + mov r8, #0 +.L21886: + ldr ip, [r7, #0] + cmp ip, #0 + beq .L21887 + tst ip, #255 + ldrneh r4, [r6, #0] + mov r3, ip, lsr #8 + strneh r4, [lr, #0] @ movhi + tst r3, #255 + ldrneh r3, [r6, #2] + strneh r3, [lr, #2] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrneh r4, [r6, #4] + strneh r4, [lr, #4] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r6, #6] + strneh ip, [lr, #6] @ movhi +.L21887: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L21896 + tst ip, #255 + ldrneh r3, [r6, #8] + strneh r3, [lr, #8] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r6, #10] + mov r3, ip, lsr #16 + strneh r4, [lr, #10] @ movhi + tst r3, #255 + ldrneh r3, [r6, #12] + strneh r3, [lr, #12] @ movhi + movs ip, ip, lsr #24 + ldrneh r4, [r6, #14] + strneh r4, [lr, #14] @ movhi +.L21896: + add r8, r8, #1 + cmp r8, sl + add r7, r7, #64 + add lr, lr, #16 + add r6, r6, #16 + add r0, r0, #64 + bne .L21886 + mov r3, sl, asl #4 + add r1, r1, r3 + add r2, r2, sl, asl #6 + add r5, r5, r3 +.L21884: + ands ip, fp, #7 + beq .L21367 + cmp ip, #3 + ldrls r3, [r2, #0] + bls .L21919 + ldr r0, [r2, #0] + cmp r0, #0 + beq .L21909 + tst r0, #255 + ldrneh r6, [r5, #0] + mov r3, r0, lsr #8 + strneh r6, [r1, #0] @ movhi + tst r3, #255 + ldrneh r7, [r5, #2] + mov r3, r0, lsr #16 + strneh r7, [r1, #2] @ movhi + tst r3, #255 + ldrneh lr, [r5, #4] + strneh lr, [r1, #4] @ movhi + movs r0, r0, lsr #24 + ldrneh r0, [r5, #6] + strneh r0, [r1, #6] @ movhi +.L21909: + subs ip, ip, #4 + ldr r3, [r2, #4] + addne r1, r1, #8 + addne r5, r5, #8 + beq .L21367 +.L21919: + mov r2, #0 +.L21920: + tst r3, #255 + mov r0, r2, asl #1 + ldrneh r4, [r0, r5] + add r2, r2, #1 + strneh r4, [r0, r1] @ movhi + cmp ip, r2 + mov r3, r3, lsr #8 + bhi .L21920 + b .L21367 +.L21468: + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + ldreq r3, [sp, #88] + add ip, r0, r1 + bne .L22208 +.L21517: + movs r0, lr, lsr #3 + beq .L21367 + mov r1, #0 + b .L21527 +.L22209: + add ip, ip, #32 + add r3, r3, #16 + add r5, r5, #16 +.L21527: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L21528 + tst r2, #15 + ldrneh r4, [r5, #0] + strneh r4, [r3, #0] @ movhi + tst r2, #240 + ldrneh r6, [r5, #2] + strneh r6, [r3, #2] @ movhi + tst r2, #3840 + ldrneh r7, [r5, #4] + strneh r7, [r3, #4] @ movhi + tst r2, #61440 + ldrneh lr, [r5, #6] + strneh lr, [r3, #6] @ movhi + tst r2, #983040 + ldrneh r4, [r5, #8] + strneh r4, [r3, #8] @ movhi + tst r2, #15728640 + ldrneh r6, [r5, #10] + strneh r6, [r3, #10] @ movhi + tst r2, #251658240 + ldrneh r7, [r5, #12] + strneh r7, [r3, #12] @ movhi + movs r2, r2, lsr #28 + ldrneh lr, [r5, #14] + strneh lr, [r3, #14] @ movhi +.L21528: + add r1, r1, #1 + cmp r1, r0 + bne .L22209 + b .L21367 +.L21728: + ands r1, r0, #7 + mov r3, r0, lsr #3 + add r0, r2, r3, asl #6 + ldreq r1, [sp, #88] + bne .L22210 +.L21832: + movs lr, lr, lsr #3 + beq .L21367 + mov ip, #0 + b .L21861 +.L22211: + add r0, r0, #64 + add r1, r1, #16 + add r5, r5, #16 +.L21861: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L21862 + tst r2, #255 + ldrneh r3, [r5, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #2] + mov r3, r2, lsr #16 + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrneh r6, [r5, #4] + strneh r6, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r7, [r5, #6] + strneh r7, [r1, #6] @ movhi +.L21862: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L21871 + tst r2, #255 + ldrneh r3, [r5, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #10] + mov r3, r2, lsr #16 + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrneh r6, [r5, #12] + strneh r6, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrneh r7, [r5, #14] + strneh r7, [r1, #14] @ movhi +.L21871: + add ip, ip, #1 + cmp ip, lr + bne .L22211 + b .L21367 +.L21948: + ands r2, r0, #7 + mov r3, r0, lsr #3 + sub r0, r8, r3, asl #6 + ldreq r1, [sp, #88] + bne .L22212 +.L22052: + movs lr, lr, lsr #3 + beq .L21367 + mov ip, #0 + b .L22081 +.L22213: + sub r0, r0, #64 + add r1, r1, #16 + add r5, r5, #16 +.L22081: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L22082 + tst r2, #255 + ldrneh r3, [r5, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #4] + mov r3, r2, lsr #16 + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrneh r6, [r5, #2] + strneh r6, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r7, [r5, #0] + strneh r7, [r1, #0] @ movhi +.L22082: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L22091 + tst r2, #255 + ldrneh r3, [r5, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #12] + mov r3, r2, lsr #16 + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrneh r6, [r5, #10] + strneh r6, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrneh r7, [r5, #8] + strneh r7, [r1, #8] @ movhi +.L22091: + add ip, ip, #1 + cmp ip, lr + bne .L22213 + b .L21367 +.L21598: + mov r3, ip, lsr #3 + ands r2, ip, #7 + sub r0, r0, r3, asl #5 + ldreq r3, [sp, #88] + bne .L22214 +.L21647: + movs r1, r1, lsr #3 + beq .L21367 + mov r2, #0 + b .L21657 +.L22215: + sub r0, r0, #32 + add r3, r3, #16 + add r5, r5, #16 +.L21657: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L21658 + tst ip, #15 + ldrneh r7, [r5, #14] + strneh r7, [r3, #14] @ movhi + tst ip, #240 + ldrneh lr, [r5, #12] + strneh lr, [r3, #12] @ movhi + tst ip, #3840 + ldrneh r4, [r5, #10] + strneh r4, [r3, #10] @ movhi + tst ip, #61440 + ldrneh r6, [r5, #8] + strneh r6, [r3, #8] @ movhi + tst ip, #983040 + ldrneh r7, [r5, #6] + strneh r7, [r3, #6] @ movhi + tst ip, #15728640 + ldrneh lr, [r5, #4] + strneh lr, [r3, #4] @ movhi + tst ip, #251658240 + ldrneh r4, [r5, #2] + strneh r4, [r3, #2] @ movhi + movs ip, ip, lsr #28 + ldrneh r6, [r5, #0] + strneh r6, [r3, #0] @ movhi +.L21658: + add r2, r2, #1 + cmp r2, r1 + bne .L22215 + b .L21367 +.L22214: + rsbs r6, r2, #8 + ldr ip, [r0, #0] + ldreq r3, [sp, #88] + beq .L21650 + mov r3, r2, asl #2 + mov r3, ip, asl r3 + mov lr, #0 +.L21651: + movs r7, r3, lsr #28 + mov ip, lr, asl #1 + ldrneh r4, [ip, r5] + ldrne r2, [sp, #88] + add lr, lr, #1 + strneh r4, [ip, r2] @ movhi + cmp lr, r6 + mov r3, r3, asl #4 + bne .L21651 + mov r3, r6, asl #1 + ldr r6, [sp, #88] + add r5, r5, r3 + add r3, r6, r3 +.L21650: + sub r0, r0, #32 + b .L21647 +.L22212: + cmp r2, #3 + rsb ip, r2, #8 + bls .L22053 + cmp ip, #0 + ldr r1, [r0, #0] + ldreq r1, [sp, #88] + beq .L22057 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L22058: + movs r6, r3, lsr #24 + mov r2, r1, asl #1 + ldrneh r4, [r2, r5] + ldrne r7, [sp, #88] + add r1, r1, #1 + strneh r4, [r2, r7] @ movhi + cmp r1, ip + mov r3, r3, asl #8 + bne .L22058 + ldr r6, [sp, #88] + mov r3, ip, asl #1 + add r5, r5, r3 + add r1, r6, r3 +.L22057: + sub r0, r0, #64 + b .L22052 +.L22210: + cmp r1, #3 + rsb ip, r1, #8 + bls .L21833 + cmp ip, #0 + ldr r2, [r0, #4] + ldreq r1, [sp, #88] + beq .L21837 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r3, r2, lsr r3 + mov r1, #0 +.L21838: + tst r3, #255 + mov r2, r1, asl #1 + ldrneh r7, [r2, r5] + ldrne r6, [sp, #88] + add r1, r1, #1 + strneh r7, [r2, r6] @ movhi + cmp ip, r1 + mov r3, r3, lsr #8 + bne .L21838 + mov r3, ip, asl #1 + ldr ip, [sp, #88] + add r5, r5, r3 + add r1, ip, r3 +.L21837: + add r0, r0, #64 + b .L21832 +.L22208: + rsbs r6, r3, #8 + ldr r0, [r0, r1] + ldreq r3, [sp, #88] + beq .L21520 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L21521: + tst r0, #15 + mov r3, r2, asl #1 + ldrneh r1, [r3, r5] + ldrne r7, [sp, #88] + add r2, r2, #1 + strneh r1, [r3, r7] @ movhi + cmp r6, r2 + mov r0, r0, lsr #4 + bne .L21521 + ldr r2, [sp, #88] + mov r3, r6, asl #1 + add r5, r5, r3 + add r3, r2, r3 +.L21520: + add ip, ip, #32 + b .L21517 +.L21950: + ldr lr, [sp, #108] + rsb r0, ip, #8 + cmp lr, r0 + bge .L21953 + cmp lr, #0 + ble .L21367 + cmp ip, #3 + bls .L21956 + ldr r2, [sl, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L21959: + movs r0, r2, lsr #24 + mov r3, r1, asl #1 + ldrneh r6, [r3, r5] + ldrne r4, [sp, #88] + ldr r7, [sp, #108] + add r1, r1, #1 + strneh r6, [r3, r4] @ movhi + cmp r7, r1 + mov r2, r2, asl #8 + bne .L21959 + b .L21367 +.L21730: + ldr r6, [sp, #108] + rsb r0, ip, #8 + cmp r6, r0 + bge .L21733 + cmp r6, #0 + ble .L21367 + cmp ip, #3 + bls .L21736 + ldr r2, [sl, #4] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L21739: + tst r1, #255 + mov r3, r2, asl #1 + ldrneh ip, [r3, r5] + ldrne r7, [sp, #88] + ldr lr, [sp, #108] + add r2, r2, #1 + strneh ip, [r3, r7] @ movhi + cmp lr, r2 + mov r1, r1, lsr #8 + bne .L21739 + b .L21367 +.L21470: + ldr r4, [sp, #108] + rsb ip, r3, #8 + cmp r4, ip + bge .L21473 + cmp r4, #0 + ble .L21367 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L21477: + tst r0, #15 + mov r3, r2, asl #1 + ldrneh r7, [r3, r5] + ldrne r6, [sp, #88] + ldr ip, [sp, #108] + add r2, r2, #1 + strneh r7, [r3, r6] @ movhi + cmp ip, r2 + mov r0, r0, lsr #4 + bne .L21477 + b .L21367 +.L21600: + ldr r3, [sp, #108] + rsb lr, r6, #8 + cmp r3, lr + bge .L21603 + cmp r3, #0 + ble .L21367 + ldr r2, [r0, #0] + mov r3, r6, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L21607: + movs r4, r0, lsr #28 + mov r3, r2, asl #1 + ldrneh r7, [r3, r5] + ldrne r6, [sp, #88] + ldr ip, [sp, #108] + add r2, r2, #1 + strneh r7, [r3, r6] @ movhi + cmp ip, r2 + mov r0, r0, asl #4 + bne .L21607 + b .L21367 +.L22053: + subs r6, ip, #4 + ldr r1, [r0, #4] + ldreq r1, [sp, #88] + beq .L22065 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L22066: + movs r7, r3, lsr #24 + mov r2, r1, asl #1 + ldrneh r7, [r2, r5] + ldrne r4, [sp, #88] + add r1, r1, #1 + strneh r7, [r2, r4] @ movhi + cmp r1, r6 + mov r3, r3, asl #8 + bne .L22066 + mov r3, ip, asl #1 + ldr ip, [sp, #88] + add r2, r5, r3 + add r3, ip, r3 + sub r5, r2, #8 + sub r1, r3, #8 +.L22065: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L22071 + tst r2, #255 + ldrneh r3, [r5, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #4] + mov r3, r2, lsr #16 + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrneh r6, [r5, #2] + strneh r6, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r7, [r5, #0] + strneh r7, [r1, #0] @ movhi +.L22071: + add r1, r1, #8 + add r5, r5, #8 + sub r0, r0, #64 + b .L22052 +.L21833: + subs r6, ip, #4 + ldr r2, [r0, #0] + ldreq r1, [sp, #88] + beq .L21845 + mov r3, r1, asl #3 + mov r3, r2, lsr r3 + mov r1, #0 +.L21846: + tst r3, #255 + mov r2, r1, asl #1 + ldrneh r7, [r2, r5] + ldrne r4, [sp, #88] + add r1, r1, #1 + strneh r7, [r2, r4] @ movhi + cmp r1, r6 + mov r3, r3, lsr #8 + bne .L21846 + mov r3, ip, asl #1 + ldr ip, [sp, #88] + add r2, r5, r3 + add r3, ip, r3 + sub r5, r2, #8 + sub r1, r3, #8 +.L21845: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L21851 + tst r2, #255 + ldrneh r3, [r5, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #2] + mov r3, r2, lsr #16 + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrneh r6, [r5, #4] + strneh r6, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r7, [r5, #6] + strneh r7, [r1, #6] @ movhi +.L21851: + add r1, r1, #8 + add r5, r5, #8 + add r0, r0, #64 + b .L21832 +.L21733: + cmp ip, #3 + bls .L21763 + cmp r0, #0 + ldr r2, [sl, #4] + ldreq r7, [sp, #88] + beq .L21767 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L21768: + tst r1, #255 + mov r3, r2, asl #1 + ldrneh r4, [r3, r5] + ldrne lr, [sp, #88] + add r2, r2, #1 + strneh r4, [r3, lr] @ movhi + cmp r0, r2 + mov r1, r1, lsr #8 + bne .L21768 + ldr r6, [sp, #88] + mov r3, r0, asl #1 + add r5, r5, r3 + add r7, r3, r6 +.L21767: + ldr ip, [sp, #108] + add sl, sl, #64 + rsb r8, r0, ip + b .L21732 +.L21473: + cmp ip, #0 + ldr r2, [r6, #0] + ldreq r7, [sp, #88] + beq .L21483 + mov r3, r3, asl #2 + mov r3, r2, lsr r3 + mov r1, #0 +.L21484: + tst r3, #15 + mov r2, r1, asl #1 + ldrneh r0, [r2, r5] + ldrne lr, [sp, #88] + add r1, r1, #1 + strneh r0, [r2, lr] @ movhi + cmp ip, r1 + mov r3, r3, lsr #4 + bne .L21484 + ldr r1, [sp, #88] + mov r3, ip, asl #1 + add r5, r5, r3 + add r7, r3, r1 +.L21483: + ldr r2, [sp, #108] + add r6, r6, #32 + rsb r8, ip, r2 + b .L21472 +.L21603: + cmp lr, #0 + ldr r2, [r0, #0] + ldreq r1, [sp, #88] + beq .L21613 + mov r3, r6, asl #2 + mov r3, r2, asl r3 + mov ip, #0 +.L21614: + movs r1, r3, lsr #28 + mov r2, ip, asl #1 + ldrneh r6, [r2, r5] + ldrne r4, [sp, #88] + add ip, ip, #1 + strneh r6, [r2, r4] @ movhi + cmp lr, ip + mov r3, r3, asl #4 + bne .L21614 + ldr r7, [sp, #88] + mov r3, lr, asl #1 + add r5, r5, r3 + add r1, r3, r7 +.L21613: + ldr ip, [sp, #108] + sub r0, r0, #32 + rsb r8, lr, ip + b .L21602 +.L21953: + cmp ip, #3 + bls .L21983 + cmp r0, #0 + ldr r2, [sl, #0] + ldreq r7, [sp, #88] + beq .L21987 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L21988: + movs r2, r3, lsr #24 + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldrne r4, [sp, #88] + add r1, r1, #1 + strneh r6, [r2, r4] @ movhi + cmp r0, r1 + mov r3, r3, asl #8 + bne .L21988 + ldr ip, [sp, #88] + mov r3, r0, asl #1 + add r5, r5, r3 + add r7, ip, r3 +.L21987: + ldr r6, [sp, #108] + sub sl, sl, #64 + rsb r8, r0, r6 + b .L21952 +.L22217: + mov r1, r8 + b .L22184 +.L22216: + mov lr, r8 + b .L22182 +.L21983: + subs lr, r0, #4 + ldr r2, [sl, #4] + ldreq r1, [sp, #88] + beq .L21995 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L21996: + movs r2, r3, lsr #24 + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldrne r4, [sp, #88] + add r1, r1, #1 + strneh r6, [r2, r4] @ movhi + cmp r1, lr + mov r3, r3, asl #8 + bne .L21996 + ldr r7, [sp, #88] + mov r3, r0, asl #1 + add r2, r5, r3 + add r3, r7, r3 + sub r5, r2, #8 + sub r1, r3, #8 +.L21995: + ldr r2, [sl, #0] + cmp r2, #0 + beq .L22001 + tst r2, #255 + ldrneh ip, [r5, #6] + mov r3, r2, lsr #8 + strneh ip, [r1, #6] @ movhi + tst r3, #255 + ldrneh lr, [r5, #4] + mov r3, r2, lsr #16 + strneh lr, [r1, #4] @ movhi + tst r3, #255 + ldrneh r3, [r5, #2] + strneh r3, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r4, [r5, #0] + strneh r4, [r1, #0] @ movhi +.L22001: + add r7, r1, #8 + add r5, r5, #8 + b .L21987 +.L21763: + subs lr, r0, #4 + ldr r2, [sl, #0] + ldreq r1, [sp, #88] + beq .L21775 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L21776: + tst r1, #255 + mov r3, r2, asl #1 + ldrneh ip, [r3, r5] + ldrne r7, [sp, #88] + add r2, r2, #1 + strneh ip, [r3, r7] @ movhi + cmp r2, lr + mov r1, r1, lsr #8 + bne .L21776 + ldr lr, [sp, #88] + mov r3, r0, asl #1 + add r2, r5, r3 + add r3, lr, r3 + sub r5, r2, #8 + sub r1, r3, #8 +.L21775: + ldr r2, [sl, #4] + cmp r2, #0 + beq .L21781 + tst r2, #255 + ldrneh r3, [r5, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r5, #2] + mov r3, r2, lsr #16 + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrneh r6, [r5, #4] + strneh r6, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r7, [r5, #6] + strneh r7, [r1, #6] @ movhi +.L21781: + add r7, r1, #8 + add r5, r5, #8 + b .L21767 +.L21956: + ldr lr, [sp, #108] + mov r3, ip, asl #3 + ldr r1, [sl, #4] + add r2, lr, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L21963 + cmp lr, #0 + movne r2, #0 + beq .L21367 +.L21979: + movs r6, r1, lsr #24 + mov r3, r2, asl #1 + ldrneh ip, [r3, r5] + ldrne r7, [sp, #88] + ldr lr, [sp, #108] + add r2, r2, #1 + strneh ip, [r3, r7] @ movhi + cmp lr, r2 + mov r1, r1, asl #8 + bne .L21979 + b .L21367 +.L21736: + ldr r0, [sp, #108] + ldr r3, [sl, #0] + add r2, r0, ip + mov r1, ip, asl #3 + cmp r2, #4 + mov r3, r3, lsr r1 + bhi .L21743 + cmp r0, #0 + movne r1, #0 + beq .L21367 +.L21759: + tst r3, #255 + mov r2, r1, asl #1 + ldrneh r7, [r2, r5] + ldrne r6, [sp, #88] + ldr ip, [sp, #108] + add r1, r1, #1 + strneh r7, [r2, r6] @ movhi + cmp ip, r1 + mov r3, r3, lsr #8 + bne .L21759 + b .L21367 +.L21963: + rsbs r2, ip, #4 + ldreq r3, [sp, #88] + beq .L21968 + mov r0, #0 +.L21969: + movs r3, r1, lsr #24 + mov r3, r0, asl #1 + ldrneh r6, [r3, r5] + ldrne r4, [sp, #88] + add r0, r0, #1 + strneh r6, [r3, r4] @ movhi + cmp r0, r2 + mov r1, r1, asl #8 + bne .L21969 + ldr r7, [sp, #88] + mov r3, r2, asl #1 + add r5, r5, r3 + add r3, r3, r7 +.L21968: + ldr lr, [sp, #108] + subs ip, lr, r2 + ldr r2, [sl, #0] + beq .L21367 + mov r0, #0 +.L21975: + movs r1, r2, lsr #24 + mov r1, r0, asl #1 + ldrneh r4, [r1, r5] + add r0, r0, #1 + strneh r4, [r1, r3] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L21975 + b .L21367 +.L21743: + rsbs r1, ip, #4 + ldreq ip, [sp, #88] + beq .L21748 + mov r0, #0 +.L21749: + tst r3, #255 + mov r2, r0, asl #1 + ldrneh r6, [r2, r5] + ldrne r4, [sp, #88] + add r0, r0, #1 + strneh r6, [r2, r4] @ movhi + cmp r0, r1 + mov r3, r3, lsr #8 + bne .L21749 + ldr r7, [sp, #88] + mov r3, r1, asl #1 + add r5, r5, r3 + add ip, r3, r7 +.L21748: + ldr lr, [sp, #108] + ldr r3, [sl, #4] + subs r0, lr, r1 + beq .L21367 + mov r1, #0 +.L21755: + tst r3, #255 + mov r2, r1, asl #1 + ldrneh r4, [r2, r5] + add r1, r1, #1 + strneh r4, [r2, ip] @ movhi + cmp r1, r0 + mov r3, r3, lsr #8 + bne .L21755 + b .L21367 + .size render_scanline_obj_copy_bitmap_2D, .-render_scanline_obj_copy_bitmap_2D + .align 2 + .global render_scanline_obj_copy_bitmap_1D + .type render_scanline_obj_copy_bitmap_1D, %function +render_scanline_obj_copy_bitmap_1D: + @ args = 0, pretend = 0, frame = 604 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr lr, .L23084 + add r0, r0, r0, asl #2 + ldrh r4, [lr, #6] + ldr ip, .L23084+4 + add r0, r4, r0, asl #5 + ldr ip, [ip, r0, asl #2] + sub sp, sp, #604 + ldrh r6, [lr, #0] + ldrh r5, [lr, #74] + str ip, [sp, #56] + cmp ip, #0 + ldr lr, .L23084+8 + ldr ip, .L23084+12 + str r4, [sp, #52] + and r4, r6, #7 + add r4, ip, r4, asl #2 + add r0, lr, r0, asl #7 + str r4, [sp, #36] + str r0, [sp, #60] + str r1, [sp, #12] + str r2, [sp, #8] + str r3, [sp, #4] + mov r5, r5, lsr #8 + beq .L23027 + rsb r0, r1, r2 + and ip, r5, #16 + add lr, r3, r1, asl #1 + and r6, r6, #64 + mov r1, #0 + and r5, r5, #4 + str ip, [sp, #88] + str r6, [sp, #92] + str r5, [sp, #96] + str lr, [sp, #100] + str r0, [sp, #120] + str r1, [sp, #44] + mov r2, r1 +.L22225: + ldr r4, [sp, #60] + ldr r5, .L23084+16 + ldrb r3, [r2, r4] @ zero_extendqisi2 + ldr lr, .L23084+20 + mov r3, r3, asl #3 + ldrh r8, [r3, r5] + add r3, r3, r5 + ldrh sl, [r3, #2] + mov r6, r8, lsr #12 + and r2, r6, #12 + orr r2, r2, sl, lsr #14 + mov r1, sl, asl #23 + ldr fp, [lr, r2, asl #2] + ands ip, r8, #512 + mov r9, r1, asr #23 + ldr r7, [sp, #8] + addne r1, r9, fp, asl #1 + addeq r1, r9, fp + str r6, [sp, #20] + ldr r6, [sp, #12] + ldrh r3, [r3, #4] + cmp r1, r7 + movcc r7, r1 + ldr r0, [sp, #8] + ldr r1, [sp, #12] + cmp r9, r6 + movcs r6, r9 + str r3, [sp, #16] + cmp r0, r6 + movls r3, #0 + movhi r3, #1 + cmp r1, r7 + movcs r3, #0 + cmp r3, #0 + str r2, [sp, #48] + str ip, [sp, #24] + beq .L22229 + cmp r7, r6 + ldr r3, .L23084+24 + movls r4, r6, asl #1 + ldrh r0, [r3, #0] + strls r4, [sp, #0] + bls .L22231 + mov r2, r6, asl #1 + add r3, sp, #124 + str r2, [sp, #0] + rsb r1, r6, r7 + add r2, r3, r2 + mov r3, #0 +.L22233: + add r3, r3, #1 + cmp r1, r3 + strh r0, [r2], #2 @ movhi + bne .L22233 +.L22231: + ldr r5, .L23084+28 + ldr r3, [r5, #0] + cmp r3, #0 + beq .L22234 + ldr r5, .L23084+32 + mov r4, #0 + b .L22236 +.L23056: + ldr ip, [sp, #88] + cmp ip, #0 + bic ip, r0, #4 + beq .L22239 + ldr lr, [sp, #92] + mov r0, ip + cmp lr, #0 + mov r1, r6 + mov r2, r7 + add r3, sp, #124 + beq .L22241 + bl render_scanline_obj_normal_1D +.L22239: + ldr ip, .L23084+28 + add r4, r4, #1 + ldr r3, [ip, #0] + add r5, r5, #4 + cmp r3, r4 + bls .L22234 +.L22236: + ldr r0, [r5, #0] + tst r0, #4 + bne .L23056 + ldr r0, [sp, #96] + mov r1, r7 + cmp r0, #0 + add r2, sp, #124 + mov r0, r6 + beq .L22239 + ldr r3, [sp, #36] + mov lr, pc + ldr pc, [r3, #0] + ldr ip, .L23084+28 + add r4, r4, #1 + ldr r3, [ip, #0] + add r5, r5, #4 + cmp r3, r4 + bhi .L22236 +.L22234: + and r0, r8, #255 + ldr r1, [sp, #0] + cmp r0, #160 + add lr, sp, #124 + ldr r3, .L23084+36 + ldr r2, [sp, #48] + add lr, lr, r1 + subgt r0, r0, #256 + tst r8, #256 + str lr, [sp, #40] + ldr r4, [r3, r2, asl #2] + beq .L22246 + tst r8, #8192 + beq .L22248 + ldr r6, .L23084+16 + mov r3, sl, lsr #4 + ldr r5, [sp, #24] + add r1, r4, r4, lsr #31 + and r3, r3, #992 + add r3, r3, r6 + mov lr, r1, asr #1 + add r2, fp, fp, lsr #31 + ldr r1, [sp, #12] + cmp r5, #0 + mov ip, r2, asr #1 + ldrh sl, [r3, #30] + ldrh r8, [r3, #6] + ldrh r2, [r3, #14] + ldrh r3, [r3, #22] + moveq r5, fp + moveq r7, ip + moveq r6, lr + movne r5, fp, asl #1 + movne r7, ip, asl #1 + movne r6, lr, asl #1 + cmp r9, r1 + str r3, [sp, #28] + bge .L22253 + rsb r1, r9, r1 + rsb r5, r1, r5 + cmp r5, #0 + ble .L22229 + ldr r9, [sp, #12] + rsb r7, r1, r7 +.L22253: + ldr r1, [sp, #8] + add r3, r9, r5 + cmp r3, r1 + blt .L22256 + rsb r5, r9, r1 + cmp r5, #0 + ble .L22229 +.L22256: + add r0, r0, r6 + ldr r6, [sp, #28] + mov r1, sl, asl #16 + mov ip, ip, asl #8 + mov r3, r8, asl #16 + cmp r6, #0 + str ip, [sp, #116] + mov r6, r1, asr #16 + mov ip, lr, asl #8 + ldr r1, [sp, #52] + ldr lr, [sp, #4] + mov r2, r2, asl #16 + mov r3, r3, asr #16 + add sl, lr, r9, asl #1 + str r3, [sp, #64] + mov r8, r2, asr #16 + rsb lr, r0, r1 + bne .L22258 + mla r3, lr, r6, ip + mov r0, r3, asr #8 + cmp r0, r4 + bcs .L22229 + cmp fp, #0 + ldr r4, [sp, #16] + add r3, fp, #7 + movge r3, fp + mov r3, r3, asr #3 + mov r2, r4, asl #22 + mov r3, r3, asl #1 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L23084+40 + add r0, r0, ip, asl #2 + cmp r5, #0 + add r6, r3, r0, asl #3 + ble .L22229 + ldr r2, [sp, #64] + mul r3, lr, r8 + mul r2, r7, r2 + ldr ip, [sp, #116] + rsb r3, r2, r3 + add r0, ip, r3 + mov ip, r0, asr #8 + cmp ip, fp + ldrcs lr, [sp, #28] + bcs .L22264 + b .L23080 +.L22265: + cmp ip, fp + bcc .L23044 +.L22264: + ldr r2, [sp, #40] + ldr r1, [sp, #64] + add lr, lr, #1 + add r0, r0, r1 + add r2, r2, #2 + cmp r5, lr + mov ip, r0, asr #8 + add sl, sl, #2 + str r2, [sp, #40] + bne .L22265 +.L22229: + ldr ip, [sp, #44] + ldr lr, [sp, #56] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #44] + beq .L23027 +.L23059: + ldr r2, [sp, #44] + b .L22225 +.L22241: + mov r0, ip + mov r1, r6 + mov r2, r7 + add r3, sp, #124 + bl render_scanline_obj_normal_2D + b .L22239 +.L22246: + ldr lr, [sp, #52] + tst sl, #8192 + rsb ip, r0, lr + ldr r0, [sp, #20] + rsbne r3, ip, r4 + subne ip, r3, #1 + mov r2, sl, asl #19 + and r3, r0, #2 + orr r3, r3, r2, lsr #31 + cmp r3, #3 + ldrls pc, [pc, r3, asl #2] + b .L22229 + .p2align 2 +.L22326: + .word .L22322 + .word .L22323 + .word .L22324 + .word .L22325 +.L22248: + ldr r6, .L23084+16 + mov r3, sl, lsr #4 + ldr r5, [sp, #24] + add r1, r4, r4, lsr #31 + and r3, r3, #992 + add r3, r3, r6 + mov lr, r1, asr #1 + add r2, fp, fp, lsr #31 + ldr r1, [sp, #12] + cmp r5, #0 + mov ip, r2, asr #1 + ldrh sl, [r3, #30] + ldrh r8, [r3, #6] + ldrh r2, [r3, #14] + ldrh r3, [r3, #22] + moveq r5, fp + moveq r7, ip + moveq r6, lr + movne r5, fp, asl #1 + movne r7, ip, asl #1 + movne r6, lr, asl #1 + cmp r9, r1 + str r3, [sp, #32] + bge .L22285 + rsb r1, r9, r1 + rsb r5, r1, r5 + cmp r5, #0 + ble .L22229 + ldr r9, [sp, #12] + rsb r7, r1, r7 +.L22285: + ldr r1, [sp, #8] + add r3, r9, r5 + cmp r3, r1 + blt .L22288 + rsb r5, r9, r1 + cmp r5, #0 + ble .L22229 +.L22288: + add r0, r0, r6 + ldr r6, [sp, #32] + mov r1, sl, asl #16 + mov ip, ip, asl #8 + mov r3, r8, asl #16 + mov r2, r2, asl #16 + cmp r6, #0 + str ip, [sp, #104] + mov r6, r1, asr #16 + mov ip, lr, asl #8 + ldr r1, [sp, #52] + ldr lr, [sp, #4] + mov r3, r3, asr #16 + mov r2, r2, asr #16 + add sl, lr, r9, asl #1 + str r3, [sp, #72] + str r2, [sp, #76] + rsb lr, r0, r1 + bne .L22290 + mla r3, lr, r6, ip + mov r0, r3, asr #8 + cmp r0, r4 + bcs .L22229 + ldr r4, [sp, #16] + cmp fp, #0 + add r3, fp, #7 + mov r2, r4, asl #22 + movge r3, fp + mov r3, r3, asr #3 + mov r1, r0, lsr #3 + mov r2, r2, lsr #22 + mla ip, r3, r1, r2 + and r0, r0, #7 + ldr r3, .L23084+40 + add r0, r0, ip, asl #3 + cmp r5, #0 + add r8, r3, r0, asl #2 + ble .L22229 + ldr r3, [sp, #76] + ldr r2, [sp, #72] + mul r3, lr, r3 + mul r2, r7, r2 + ldr r6, [sp, #104] + rsb r3, r2, r3 + add r0, r6, r3 + mov ip, r0, asr #8 + cmp ip, fp + ldrcs r1, [sp, #32] + bcs .L22296 + b .L23081 +.L22297: + cmp ip, fp + bcc .L23046 +.L22296: + ldr ip, [sp, #72] + ldr lr, [sp, #40] + add r1, r1, #1 + add r0, r0, ip + add lr, lr, #2 + cmp r5, r1 + mov ip, r0, asr #8 + add sl, sl, #2 + str lr, [sp, #40] + bne .L22297 + ldr ip, [sp, #44] + ldr lr, [sp, #56] + add ip, ip, #1 + cmp ip, lr + str ip, [sp, #44] + bne .L23059 +.L23027: + add sp, sp, #604 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L22299: + cmp ip, fp + bcs .L22229 +.L23046: + mov r3, ip, asr #1 + and r6, r3, #3 + mov r3, ip, asr #3 + mov r3, r3, asl #5 + mov r2, ip, asr #1 + tst ip, #1 + and lr, r2, #3 + add ip, r3, r8 + add r2, r3, r8 + ldreqb r3, [r2, lr] @ zero_extendqisi2 + ldrneb r3, [ip, r6] @ zero_extendqisi2 + andeq r2, r3, #15 + movne r2, r3, lsr #4 + cmp r2, #0 + ldrne r4, [sp, #40] + ldr r6, [sp, #40] + ldrneh r4, [r4, #0] + ldr r3, [sp, #72] + add r1, r1, #1 + strneh r4, [sl, #0] @ movhi + add r0, r0, r3 + add r6, r6, #2 + cmp r5, r1 + mov ip, r0, asr #8 + add sl, sl, #2 + str r6, [sp, #40] + bgt .L22299 + b .L22229 +.L22290: + ldr r0, [sp, #16] + cmp fp, #0 + add r1, fp, #7 + mov r2, r0, asl #22 + movge r1, fp + ldr r3, .L23084+40 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #5 + cmp r5, #0 + str r2, [sp, #108] + str r1, [sp, #84] + ble .L22229 + ldr r1, [sp, #32] + ldr r0, [sp, #72] + mov r3, r1, asl #16 + mov r3, r3, asr #16 + str r3, [sp, #80] + ldr r1, [sp, #80] + ldr r3, [sp, #76] + mul r2, lr, r6 + mul r3, lr, r3 + mul r1, r7, r1 + mul r0, r7, r0 + ldr r6, [sp, #104] + rsb r2, r1, r2 + rsb r3, r0, r3 + add r7, r6, r3 + add r6, ip, r2 + mov lr, r7, asr #8 + mov r3, r6, asr #8 + cmp lr, fp + cmpcc r3, r4 + movcs r2, #0 + movcc r2, #1 + movcs r8, r2 + bcs .L22309 + b .L23082 +.L22310: + cmp lr, fp + cmpcc r3, r4 + bcc .L22312 +.L22309: + ldr lr, [sp, #80] + ldr r0, [sp, #40] + ldr ip, [sp, #72] + add r8, r8, #1 + add r6, r6, lr + add r7, r7, ip + add r0, r0, #2 + cmp r5, r8 + mov lr, r7, asr #8 + mov r3, r6, asr #8 + add sl, sl, #2 + str r0, [sp, #40] + bne .L22310 + b .L22229 +.L23061: + ldr r1, [sp, #108] + and r0, r3, #7 + ldr r2, [sp, #84] + add r0, r1, r0, asl #2 + and r1, r3, #7 + mov r3, r3, asr #3 + mov ip, lr, asr #1 + mul r2, r3, r2 + and r9, ip, #3 + ldr ip, [sp, #108] + mov r3, lr, asr #1 + add r1, ip, r1, asl #2 + and ip, r3, #3 + mov r3, lr, asr #3 + add r2, r2, r3, asl #5 + add r3, r0, r2 + tst lr, #1 + add r0, r1, r2 + ldreqb r3, [r0, ip] @ zero_extendqisi2 + ldrneb r3, [r3, r9] @ zero_extendqisi2 + andeq r0, r3, #15 + movne r0, r3, lsr #4 + cmp r0, #0 + ldrne r2, [sp, #40] + ldr lr, [sp, #72] + ldrneh r2, [r2, #0] + ldr ip, [sp, #40] + ldr r1, [sp, #80] + add r8, r8, #1 + strneh r2, [sl, #0] @ movhi + add r7, r7, lr + add r6, r6, r1 + add ip, ip, #2 + cmp r5, r8 + mov lr, r7, asr #8 + mov r3, r6, asr #8 + add sl, sl, #2 + str ip, [sp, #40] + ble .L22229 +.L22312: + cmp r3, r4 + cmpcc lr, fp + bcc .L23061 + b .L22229 +.L22267: + cmp ip, fp + bcs .L22229 +.L23044: + ldr r3, [sp, #64] + and r1, ip, #7 + add r0, r0, r3 + mov r3, ip, asr #3 + add r3, r6, r3, asl #6 + ldrb r2, [r3, r1] @ zero_extendqisi2 + ldr r1, [sp, #40] + cmp r2, #0 + ldrne r4, [sp, #40] + add lr, lr, #1 + ldrneh r4, [r4, #0] + add r1, r1, #2 + strneh r4, [sl, #0] @ movhi + cmp r5, lr + mov ip, r0, asr #8 + add sl, sl, #2 + str r1, [sp, #40] + bgt .L22267 + b .L22229 +.L22258: + ldr r3, [sp, #16] + cmp fp, #0 + add r1, fp, #7 + mov r2, r3, asl #22 + movge r1, fp + ldr r3, .L23084+40 + mov r2, r2, lsr #22 + mov r1, r1, asr #3 + add r2, r3, r2, asl #5 + mov r1, r1, asl #6 + cmp r5, #0 + str r2, [sp, #112] + str r1, [sp, #68] + ble .L22229 + ldr r0, [sp, #28] + mul r2, lr, r6 + mov r3, r0, asl #16 + mov r9, r3, asr #16 + ldr r0, [sp, #64] + mul r1, r9, r7 + mul r3, lr, r8 + mul r0, r7, r0 + rsb r2, r1, r2 + ldr r1, [sp, #116] + rsb r3, r0, r3 + add r7, r1, r3 + add r6, ip, r2 + mov lr, r7, asr #8 + mov ip, r6, asr #8 + cmp lr, fp + cmpcc ip, r4 + movcs r3, #0 + movcc r3, #1 + movcs r8, r3 + bcs .L22274 + b .L23083 +.L22275: + cmp lr, fp + cmpcc ip, r4 + bcc .L22277 +.L22274: + ldr r3, [sp, #40] + ldr r2, [sp, #64] + add r8, r8, #1 + add r7, r7, r2 + add r6, r6, r9 + add r3, r3, #2 + cmp r5, r8 + mov lr, r7, asr #8 + mov ip, r6, asr #8 + add sl, sl, #2 + str r3, [sp, #40] + bne .L22275 + b .L22229 +.L23063: + ldr r0, [sp, #64] + and r3, ip, #7 + mov r2, lr, asr #3 + ldr r1, [sp, #112] + mov r3, r3, asl #3 + add r7, r7, r0 + add r3, r3, r2, asl #6 + ldr r0, [sp, #68] + mov r2, ip, asr #3 + add r3, r3, r1 + mla r0, r2, r0, r3 + and r1, lr, #7 + ldrb r3, [r0, r1] @ zero_extendqisi2 + add r8, r8, #1 + cmp r3, #0 + ldrne r2, [sp, #40] + ldr r3, [sp, #40] + ldrneh r2, [r2, #0] + add r6, r6, r9 + strneh r2, [sl, #0] @ movhi + add r3, r3, #2 + cmp r5, r8 + mov ip, r6, asr #8 + mov lr, r7, asr #8 + add sl, sl, #2 + str r3, [sp, #40] + ble .L22229 +.L22277: + cmp ip, r4 + cmpcc lr, fp + bcc .L23063 + b .L22229 +.L22322: + ldr r1, [sp, #16] + cmp fp, #0 + add r3, fp, #7 + mov r2, r1, asl #22 + movge r3, fp + mov lr, r3, asr #3 + mov r2, r2, lsr #22 + mov r3, ip, lsr #3 + mla r0, lr, r3, r2 + ldr r2, [sp, #12] + and r1, ip, #7 + ldr r3, .L23084+40 + add r1, r1, r0, asl #3 + cmp r9, r2 + add r0, r3, r1, asl #2 + bge .L22327 + rsb ip, r9, r2 + rsb lr, ip, fp + cmp lr, #0 + ble .L22229 + ldr r4, [sp, #8] + add r3, r9, fp + cmp r4, r3 + bhi .L22330 + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + add r6, r0, r1 + bne .L22332 + ldr r5, [sp, #120] + ldr r7, [sp, #100] +.L22334: + movs lr, r5, lsr #3 + beq .L22351 + ldr r1, [sp, #40] + mov r2, r7 + mov r0, r6 + mov ip, #0 +.L22353: + ldr r3, [r0, #0] + cmp r3, #0 + beq .L22354 + tst r3, #15 + ldrneh r4, [r1, #0] + strneh r4, [r2, #0] @ movhi + tst r3, #240 + ldrneh r4, [r1, #2] + strneh r4, [r2, #2] @ movhi + tst r3, #3840 + ldrneh r4, [r1, #4] + strneh r4, [r2, #4] @ movhi + tst r3, #61440 + ldrneh r4, [r1, #6] + strneh r4, [r2, #6] @ movhi + tst r3, #983040 + ldrneh r4, [r1, #8] + strneh r4, [r2, #8] @ movhi + tst r3, #15728640 + ldrneh r4, [r1, #10] + strneh r4, [r2, #10] @ movhi + tst r3, #251658240 + ldrneh r4, [r1, #12] + strneh r4, [r2, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r3, [r1, #14] + strneh r3, [r2, #14] @ movhi +.L22354: + add ip, ip, #1 + cmp ip, lr + add r0, r0, #32 + add r2, r2, #16 + add r1, r1, #16 + bne .L22353 + ldr r4, [sp, #40] + mov r3, lr, asl #4 + add r4, r4, r3 + add r7, r7, r3 + add r6, r6, lr, asl #5 + str r4, [sp, #40] +.L22351: + ands r0, r5, #7 + beq .L22229 + ldr r3, [r6, #0] + mov r1, #0 +.L22373: + tst r3, #15 + ldrne r5, [sp, #40] + mov r2, r1, asl #1 + ldrneh r5, [r2, r5] + add r1, r1, #1 + strneh r5, [r2, r7] @ movhi + cmp r1, r0 + mov r3, r3, lsr #4 + bne .L22373 + b .L22229 +.L22323: + ldr r4, [sp, #16] + cmp fp, #0 + add r3, fp, #7 + mov r2, r4, asl #22 + movge r3, fp + mov lr, r3, asr #3 + mov r2, r2, lsr #22 + mov r1, ip, lsr #3 + mla r0, lr, r1, r2 + subs r3, fp, #8 + submi r3, fp, #1 + ldr r5, [sp, #12] + add r0, r0, r3, asr #3 + and r2, ip, #7 + ldr r3, .L23084+40 + add r2, r2, r0, asl #3 + cmp r9, r5 + add r0, r3, r2, asl #2 + bge .L22457 + rsb ip, r9, r5 + rsb r1, ip, fp + cmp r1, #0 + ble .L22229 + ldr r6, [sp, #8] + add r3, r9, fp + cmp r6, r3 + bhi .L22460 + mov r3, ip, lsr #3 + ands r6, ip, #7 + sub r0, r0, r3, asl #5 + bne .L22462 + ldr r8, [sp, #120] + ldr r1, [sp, #100] +.L22464: + movs r3, r8, lsr #3 + beq .L22481 + ldr lr, [sp, #40] + mov ip, r1 + mov r6, r0 + mov r7, #0 +.L22483: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L22484 + tst r2, #15 + ldrneh r4, [lr, #14] + strneh r4, [ip, #14] @ movhi + tst r2, #240 + ldrneh r5, [lr, #12] + strneh r5, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r4, [lr, #10] + strneh r4, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r5, [lr, #8] + strneh r5, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r4, [lr, #6] + strneh r4, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r5, [lr, #4] + strneh r5, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r4, [lr, #2] + strneh r4, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r5, [lr, #0] + strneh r5, [ip, #0] @ movhi +.L22484: + add r7, r7, #1 + cmp r7, r3 + sub r6, r6, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L22483 + ldr r6, [sp, #40] + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r6, r6, r3 + add r1, r1, r3 + add r0, r0, r2, asl #5 + str r6, [sp, #40] +.L22481: + ands ip, r8, #7 + beq .L22229 + ldr r0, [r0, #0] + mov r2, #0 +.L22503: + movs lr, r0, lsr #28 + ldrne r4, [sp, #40] + mov r3, r2, asl #1 + ldrneh r4, [r3, r4] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L22503 + b .L22229 +.L22325: + cmp fp, #0 + add r2, fp, #7 + movge r2, fp + subs r3, fp, #8 + submi r3, fp, #1 + mov lr, r2, asr #3 + mov r3, r3, asr #3 + mov r1, ip, lsr #3 + mla r0, lr, r1, r3 + ldr r4, [sp, #16] + and r3, ip, #7 + mov r2, r4, asl #22 + mov r2, r2, lsr #22 + add r2, r2, r0, asl #1 + add r3, r3, r2, asl #2 + ldr r5, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L23084+40 + cmp r9, r5 + add r8, r0, r3 + bge .L22807 + rsb r0, r9, r5 + rsb lr, r0, fp + cmp lr, #0 + ble .L22229 + ldr r6, [sp, #8] + add r3, r9, fp + cmp r6, r3 + bhi .L22810 + mov r3, r0, lsr #3 + ands ip, r0, #7 + sub sl, r8, r3, asl #6 + bne .L22812 + ldr r8, [sp, #120] + ldr r7, [sp, #100] +.L22814: + movs r6, r8, lsr #3 + beq .L22872 + ldr r0, [sp, #40] + mov r1, r7 + mov ip, sl + mov lr, #0 +.L22874: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L22875 + tst r2, #255 + ldrneh r3, [r0, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #4] + mov r3, r2, lsr #16 + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrneh r5, [r0, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrneh r2, [r0, #0] + strneh r2, [r1, #0] @ movhi +.L22875: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L22884 + tst r2, #255 + ldrneh r3, [r0, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #12] + mov r3, r2, lsr #16 + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrneh r5, [r0, #10] + strneh r5, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrneh r2, [r0, #8] + strneh r2, [r1, #8] @ movhi +.L22884: + add lr, lr, #1 + cmp lr, r6 + sub ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L22874 + ldr r4, [sp, #40] + mov r3, r6, asl #4 + rsb r2, r6, r6, asl #26 + add r4, r4, r3 + add r7, r7, r3 + add sl, sl, r2, asl #6 + str r4, [sp, #40] +.L22872: + ands ip, r8, #7 + beq .L22229 + cmp ip, #3 + ldrls r2, [sl, #4] + bls .L22907 + ldr r2, [sl, #4] + cmp r2, #0 + beq .L22897 + tst r2, #255 + ldrne r5, [sp, #40] + mov r3, r2, lsr #8 + ldrneh r5, [r5, #6] + strneh r5, [r7, #6] @ movhi + tst r3, #255 + ldrne r6, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r6, [r6, #4] + strneh r6, [r7, #4] @ movhi + tst r3, #255 + ldrne lr, [sp, #40] + ldrneh lr, [lr, #2] + strneh lr, [r7, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r0, [sp, #40] + ldrneh r0, [r0, #0] + strneh r0, [r7, #0] @ movhi +.L22897: + subs ip, ip, #4 + ldr r2, [sl, #0] + beq .L22229 + ldr r1, [sp, #40] + add r7, r7, #8 + add r1, r1, #8 + str r1, [sp, #40] +.L22907: + mov r1, #0 +.L22908: + movs r3, r2, lsr #24 + ldrne r4, [sp, #40] + mov r0, r1, asl #1 + ldrneh r4, [r0, r4] + add r1, r1, #1 + strneh r4, [r0, r7] @ movhi + cmp ip, r1 + mov r2, r2, asl #8 + bhi .L22908 + b .L22229 +.L23085: + .align 2 +.L23084: + .word io_registers + .word obj_priority_count + .word obj_priority_list + .word bitmap_mode_renderers-12 + .word oam_ram + .word obj_width_table + .word palette_ram_converted + .word layer_count + .word layer_order + .word obj_height_table + .word vram+65536 + .word vram+65472 + .word vram+65600 +.L22324: + ldr lr, [sp, #16] + cmp fp, #0 + add r3, fp, #7 + mov r1, lr, asl #22 + movge r3, fp + mov r2, ip, lsr #3 + mov r6, r3, asr #3 + mov r2, r2, asl #1 + mov r1, r1, lsr #22 + mla r0, r2, r6, r1 + and r3, ip, #7 + add r3, r3, r0, asl #2 + ldr r1, [sp, #12] + mov r0, r3, asl #3 + ldr r3, .L23084+40 + cmp r9, r1 + add r2, r0, r3 + bge .L22587 + rsb r0, r9, r1 + rsb lr, r0, fp + cmp lr, #0 + ble .L22229 + ldr r4, [sp, #8] + add r3, r9, fp + cmp r4, r3 + bhi .L22590 + mov r3, r0, lsr #3 + ands ip, r0, #7 + add sl, r2, r3, asl #6 + bne .L22592 + ldr r8, [sp, #120] + ldr r7, [sp, #100] +.L22594: + movs r6, r8, lsr #3 + beq .L22652 + ldr r0, [sp, #40] + mov r1, r7 + mov ip, sl + mov lr, #0 +.L22654: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L22655 + tst r2, #255 + ldrneh r3, [r0, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #2] + mov r3, r2, lsr #16 + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrneh r5, [r0, #4] + strneh r5, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrneh r2, [r0, #6] + strneh r2, [r1, #6] @ movhi +.L22655: + ldr r2, [ip, #4] + cmp r2, #0 + beq .L22664 + tst r2, #255 + ldrneh r3, [r0, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrneh r4, [r0, #10] + mov r3, r2, lsr #16 + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrneh r5, [r0, #12] + strneh r5, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrneh r2, [r0, #14] + strneh r2, [r1, #14] @ movhi +.L22664: + add lr, lr, #1 + cmp lr, r6 + add ip, ip, #64 + add r1, r1, #16 + add r0, r0, #16 + bne .L22654 + ldr r4, [sp, #40] + mov r3, r6, asl #4 + add r4, r4, r3 + add r7, r7, r3 + add sl, sl, r6, asl #6 + str r4, [sp, #40] +.L22652: + ands r0, r8, #7 + beq .L22229 + cmp r0, #3 + ldrls r3, [sl, #0] + bls .L22687 + ldr r2, [sl, #0] + cmp r2, #0 + beq .L22677 + tst r2, #255 + ldrne r5, [sp, #40] + mov r3, r2, lsr #8 + ldrneh r5, [r5, #0] + strneh r5, [r7, #0] @ movhi + tst r3, #255 + ldrne r6, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r6, [r6, #2] + strneh r6, [r7, #2] @ movhi + tst r3, #255 + ldrne ip, [sp, #40] + ldrneh ip, [ip, #4] + strneh ip, [r7, #4] @ movhi + movs r2, r2, lsr #24 + ldrne lr, [sp, #40] + ldrneh lr, [lr, #6] + strneh lr, [r7, #6] @ movhi +.L22677: + subs r0, r0, #4 + ldr r3, [sl, #4] + beq .L22229 + ldr r1, [sp, #40] + add r7, r7, #8 + add r1, r1, #8 + str r1, [sp, #40] +.L22687: + mov r2, #0 +.L22688: + tst r3, #255 + ldrne r4, [sp, #40] + mov r1, r2, asl #1 + ldrneh r4, [r1, r4] + add r2, r2, #1 + strneh r4, [r1, r7] @ movhi + cmp r0, r2 + mov r3, r3, lsr #8 + bhi .L22688 + b .L22229 +.L22587: + ldr r4, [sp, #8] + add r3, r9, fp + cmp r4, r3 + bls .L23064 + cmp r6, #0 + beq .L22229 + ldr r5, [sp, #4] + ldr r3, .L23084+48 + add r1, r5, r9, asl #1 + add r0, r0, r3 + mov lr, #0 + b .L22787 +.L23065: + ldr r3, [sp, #40] + add r2, r2, #64 + add r3, r3, #16 + add r1, r1, #16 + str r3, [sp, #40] +.L22787: + ldr ip, [r2, #0] + cmp ip, #0 + beq .L22788 + tst ip, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, ip, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs ip, ip, lsr #24 + ldrne ip, [sp, #40] + ldrneh ip, [ip, #6] + strneh ip, [r1, #6] @ movhi +.L22788: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L22797 + tst ip, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #8] + strneh r3, [r1, #8] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, ip, lsr #16 + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs ip, ip, lsr #24 + ldrne ip, [sp, #40] + ldrneh ip, [ip, #14] + strneh ip, [r1, #14] @ movhi +.L22797: + add lr, lr, #1 + cmp r6, lr + add r0, r0, #64 + bne .L23065 + b .L22229 +.L22457: + ldr r1, [sp, #8] + add r3, r9, fp + cmp r1, r3 + bls .L23066 + cmp lr, #0 + beq .L22229 + ldr r5, [sp, #4] + mov r3, #0 + add r1, r5, r9, asl #1 + b .L22568 +.L23067: + ldr r6, [sp, #40] + sub r0, r0, #32 + add r6, r6, #16 + add r1, r1, #16 + str r6, [sp, #40] +.L22568: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L22569 + tst r2, #15 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi + tst r2, #240 + ldrne ip, [sp, #40] + ldrneh ip, [ip, #12] + strneh ip, [r1, #12] @ movhi + tst r2, #3840 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + tst r2, #61440 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #8] + strneh r5, [r1, #8] @ movhi + tst r2, #983040 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi + tst r2, #15728640 + ldrne ip, [sp, #40] + ldrneh ip, [ip, #4] + strneh ip, [r1, #4] @ movhi + tst r2, #251658240 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + movs r2, r2, lsr #28 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi +.L22569: + add r3, r3, #1 + cmp lr, r3 + bne .L23067 + b .L22229 +.L22327: + ldr r1, [sp, #8] + add r3, r9, fp + cmp r1, r3 + bls .L23068 + cmp lr, #0 + beq .L22229 + ldr r2, [sp, #4] + mov r3, #0 + add r1, r2, r9, asl #1 + b .L22438 +.L23069: + ldr r2, [sp, #40] + add r0, r0, #32 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #40] +.L22438: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L22439 + tst ip, #15 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #0] + strneh r4, [r1, #0] @ movhi + tst ip, #240 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + tst ip, #3840 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #4] + strneh r6, [r1, #4] @ movhi + tst ip, #61440 + ldrne r2, [sp, #40] + ldrneh r2, [r2, #6] + strneh r2, [r1, #6] @ movhi + tst ip, #983040 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #8] + strneh r4, [r1, #8] @ movhi + tst ip, #15728640 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #10] + strneh r5, [r1, #10] @ movhi + tst ip, #251658240 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #12] + strneh r6, [r1, #12] @ movhi + movs ip, ip, lsr #28 + ldrne ip, [sp, #40] + ldrneh ip, [ip, #14] + strneh ip, [r1, #14] @ movhi +.L22439: + add r3, r3, #1 + cmp lr, r3 + bne .L23069 + b .L22229 +.L22807: + ldr r4, [sp, #8] + add r3, r9, fp + cmp r4, r3 + bls .L23070 + cmp lr, #0 + beq .L22229 + ldr r5, [sp, #4] + ldr r3, .L23084+44 + add r1, r5, r9, asl #1 + add r0, r0, r3 + mov r2, #0 + b .L23007 +.L23071: + ldr r6, [sp, #40] + sub r8, r8, #64 + add r6, r6, #16 + add r1, r1, #16 + str r6, [sp, #40] +.L23007: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L23008 + tst ip, #255 + ldrne r6, [sp, #40] + mov r3, ip, lsr #8 + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi + tst r3, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + movs ip, ip, lsr #24 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi +.L23008: + ldr ip, [r8, #0] + cmp ip, #0 + beq .L23017 + tst ip, #255 + ldrne r6, [sp, #40] + mov r3, ip, lsr #8 + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi + tst r3, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #12] + strneh r3, [r1, #12] @ movhi + mov r3, ip, lsr #16 + tst r3, #255 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + movs ip, ip, lsr #24 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #8] + strneh r5, [r1, #8] @ movhi +.L23017: + add r2, r2, #1 + cmp lr, r2 + sub r0, r0, #64 + bne .L23071 + b .L22229 +.L23070: + rsb fp, r9, r4 + cmp fp, #0 + ble .L22229 + ldr r5, [sp, #4] + movs sl, fp, lsr #3 + add r1, r5, r9, asl #1 + beq .L22966 + ldr r3, .L23084+44 + ldr r6, [sp, #40] + add r0, r0, r3 + mov lr, r1 + mov r7, r8 + mov r2, #0 +.L22968: + ldr ip, [r0, #68] + cmp ip, #0 + beq .L22969 + tst ip, #255 + ldrneh r3, [r6, #6] + strneh r3, [lr, #6] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r6, #4] + mov r3, ip, lsr #16 + strneh r4, [lr, #4] @ movhi + tst r3, #255 + ldrneh r5, [r6, #2] + strneh r5, [lr, #2] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r6, #0] + strneh ip, [lr, #0] @ movhi +.L22969: + ldr ip, [r7, #0] + cmp ip, #0 + beq .L22978 + tst ip, #255 + ldrneh r3, [r6, #14] + strneh r3, [lr, #14] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r6, #12] + mov r3, ip, lsr #16 + strneh r4, [lr, #12] @ movhi + tst r3, #255 + ldrneh r5, [r6, #10] + strneh r5, [lr, #10] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r6, #8] + strneh ip, [lr, #8] @ movhi +.L22978: + add r2, r2, #1 + cmp sl, r2 + sub r7, r7, #64 + add lr, lr, #16 + add r6, r6, #16 + sub r0, r0, #64 + bne .L22968 + ldr lr, [sp, #40] + mov r3, sl, asl #4 + rsb r2, sl, sl, asl #26 + add lr, lr, r3 + add r1, r1, r3 + add r8, r8, r2, asl #6 + str lr, [sp, #40] +.L22966: + ands ip, fp, #7 + beq .L22229 + cmp ip, #3 + ldrls r2, [r8, #4] + bls .L23001 + ldr r2, [r8, #4] + cmp r2, #0 + beq .L22991 + tst r2, #255 + ldrne r0, [sp, #40] + mov r3, r2, lsr #8 + ldrneh r0, [r0, #6] + strneh r0, [r1, #6] @ movhi + tst r3, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + tst r3, #255 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi +.L22991: + subs ip, ip, #4 + ldr r2, [r8, #0] + beq .L22229 + ldr r6, [sp, #40] + add r1, r1, #8 + add r6, r6, #8 + str r6, [sp, #40] +.L23001: + mov r3, #0 +.L23002: + movs lr, r2, lsr #24 + ldrne r4, [sp, #40] + mov r0, r3, asl #1 + ldrneh r4, [r0, r4] + add r3, r3, #1 + strneh r4, [r0, r1] @ movhi + cmp ip, r3 + mov r2, r2, asl #8 + bhi .L23002 + b .L22229 +.L23066: + rsb r8, r9, r1 + cmp r8, #0 + ble .L22229 + ldr r2, [sp, #4] + movs r3, r8, lsr #3 + add r1, r2, r9, asl #1 + beq .L22541 + ldr lr, [sp, #40] + mov ip, r1 + mov r6, r0 + mov r7, #0 +.L22543: + ldr r2, [r6, #0] + cmp r2, #0 + beq .L22544 + tst r2, #15 + ldrneh r4, [lr, #14] + strneh r4, [ip, #14] @ movhi + tst r2, #240 + ldrneh r5, [lr, #12] + strneh r5, [ip, #12] @ movhi + tst r2, #3840 + ldrneh r4, [lr, #10] + strneh r4, [ip, #10] @ movhi + tst r2, #61440 + ldrneh r5, [lr, #8] + strneh r5, [ip, #8] @ movhi + tst r2, #983040 + ldrneh r4, [lr, #6] + strneh r4, [ip, #6] @ movhi + tst r2, #15728640 + ldrneh r5, [lr, #4] + strneh r5, [ip, #4] @ movhi + tst r2, #251658240 + ldrneh r4, [lr, #2] + strneh r4, [ip, #2] @ movhi + movs r2, r2, lsr #28 + ldrneh r5, [lr, #0] + strneh r5, [ip, #0] @ movhi +.L22544: + add r7, r7, #1 + cmp r7, r3 + sub r6, r6, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L22543 + ldr r6, [sp, #40] + rsb r2, r3, r3, asl #27 + mov r3, r3, asl #4 + add r6, r6, r3 + add r1, r1, r3 + add r0, r0, r2, asl #5 + str r6, [sp, #40] +.L22541: + ands ip, r8, #7 + beq .L22229 + ldr r0, [r0, #0] + mov r2, #0 +.L22563: + movs lr, r0, lsr #28 + ldrne r4, [sp, #40] + mov r3, r2, asl #1 + ldrneh r4, [r3, r4] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, asl #4 + bne .L22563 + b .L22229 +.L23068: + rsb r8, r9, r1 + cmp r8, #0 + ble .L22229 + ldr r2, [sp, #4] + movs r7, r8, lsr #3 + add r1, r2, r9, asl #1 + beq .L22411 + ldr lr, [sp, #40] + mov ip, r1 + mov r6, r0 + mov r2, #0 +.L22413: + ldr r3, [r6, #0] + cmp r3, #0 + beq .L22414 + tst r3, #15 + ldrneh r4, [lr, #0] + strneh r4, [ip, #0] @ movhi + tst r3, #240 + ldrneh r5, [lr, #2] + strneh r5, [ip, #2] @ movhi + tst r3, #3840 + ldrneh r4, [lr, #4] + strneh r4, [ip, #4] @ movhi + tst r3, #61440 + ldrneh r5, [lr, #6] + strneh r5, [ip, #6] @ movhi + tst r3, #983040 + ldrneh r4, [lr, #8] + strneh r4, [ip, #8] @ movhi + tst r3, #15728640 + ldrneh r5, [lr, #10] + strneh r5, [ip, #10] @ movhi + tst r3, #251658240 + ldrneh r4, [lr, #12] + strneh r4, [ip, #12] @ movhi + movs r3, r3, lsr #28 + ldrneh r5, [lr, #14] + strneh r5, [ip, #14] @ movhi +.L22414: + add r2, r2, #1 + cmp r2, r7 + add r6, r6, #32 + add ip, ip, #16 + add lr, lr, #16 + bne .L22413 + ldr r6, [sp, #40] + mov r3, r7, asl #4 + add r6, r6, r3 + add r1, r1, r3 + add r0, r0, r7, asl #5 + str r6, [sp, #40] +.L22411: + ands ip, r8, #7 + beq .L22229 + ldr r0, [r0, #0] + mov r2, #0 +.L22433: + tst r0, #15 + ldrne lr, [sp, #40] + mov r3, r2, asl #1 + ldrneh lr, [r3, lr] + add r2, r2, #1 + strneh lr, [r3, r1] @ movhi + cmp r2, ip + mov r0, r0, lsr #4 + bne .L22433 + b .L22229 +.L23064: + rsb fp, r9, r4 + cmp fp, #0 + ble .L22229 + ldr r5, [sp, #4] + movs sl, fp, lsr #3 + add r1, r5, r9, asl #1 + beq .L22746 + ldr r3, .L23084+48 + ldr r6, [sp, #40] + add r0, r0, r3 + mov lr, r1 + mov r7, r2 + mov r8, #0 +.L22748: + ldr ip, [r7, #0] + cmp ip, #0 + beq .L22749 + tst ip, #255 + ldrneh r3, [r6, #0] + strneh r3, [lr, #0] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r6, #2] + mov r3, ip, lsr #16 + strneh r4, [lr, #2] @ movhi + tst r3, #255 + ldrneh r5, [r6, #4] + strneh r5, [lr, #4] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r6, #6] + strneh ip, [lr, #6] @ movhi +.L22749: + ldr ip, [r0, #-60] + cmp ip, #0 + beq .L22758 + tst ip, #255 + ldrneh r3, [r6, #8] + strneh r3, [lr, #8] @ movhi + mov r3, ip, lsr #8 + tst r3, #255 + ldrneh r4, [r6, #10] + mov r3, ip, lsr #16 + strneh r4, [lr, #10] @ movhi + tst r3, #255 + ldrneh r5, [r6, #12] + strneh r5, [lr, #12] @ movhi + movs ip, ip, lsr #24 + ldrneh ip, [r6, #14] + strneh ip, [lr, #14] @ movhi +.L22758: + add r8, r8, #1 + cmp r8, sl + add r7, r7, #64 + add lr, lr, #16 + add r6, r6, #16 + add r0, r0, #64 + bne .L22748 + ldr lr, [sp, #40] + mov r3, sl, asl #4 + add lr, lr, r3 + add r1, r1, r3 + add r2, r2, sl, asl #6 + str lr, [sp, #40] +.L22746: + ands ip, fp, #7 + beq .L22229 + cmp ip, #3 + ldrls r3, [r2, #0] + bls .L22781 + ldr r0, [r2, #0] + cmp r0, #0 + beq .L22771 + tst r0, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r0, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, r0, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs r0, r0, lsr #24 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi +.L22771: + subs ip, ip, #4 + ldr r3, [r2, #4] + beq .L22229 + ldr lr, [sp, #40] + add r1, r1, #8 + add lr, lr, #8 + str lr, [sp, #40] +.L22781: + mov r2, #0 +.L22782: + tst r3, #255 + ldrne r4, [sp, #40] + mov r0, r2, asl #1 + ldrneh r4, [r0, r4] + add r2, r2, #1 + strneh r4, [r0, r1] @ movhi + cmp ip, r2 + mov r3, r3, lsr #8 + bhi .L22782 + b .L22229 +.L22330: + mov r3, ip, lsr #3 + mov r1, r3, asl #5 + ands r3, ip, #7 + ldreq r3, [sp, #100] + add ip, r0, r1 + bne .L23072 +.L22379: + movs r0, lr, lsr #3 + beq .L22229 + mov r1, #0 + b .L22389 +.L23073: + ldr lr, [sp, #40] + add ip, ip, #32 + add lr, lr, #16 + add r3, r3, #16 + str lr, [sp, #40] +.L22389: + ldr r2, [ip, #0] + cmp r2, #0 + beq .L22390 + tst r2, #15 + ldrne lr, [sp, #40] + ldrneh lr, [lr, #0] + strneh lr, [r3, #0] @ movhi + tst r2, #240 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #2] + strneh r4, [r3, #2] @ movhi + tst r2, #3840 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #4] + strneh r5, [r3, #4] @ movhi + tst r2, #61440 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #6] + strneh r6, [r3, #6] @ movhi + tst r2, #983040 + ldrne lr, [sp, #40] + ldrneh lr, [lr, #8] + strneh lr, [r3, #8] @ movhi + tst r2, #15728640 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #10] + strneh r4, [r3, #10] @ movhi + tst r2, #251658240 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #12] + strneh r5, [r3, #12] @ movhi + movs r2, r2, lsr #28 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #14] + strneh r6, [r3, #14] @ movhi +.L22390: + add r1, r1, #1 + cmp r1, r0 + bne .L23073 + b .L22229 +.L22590: + ands r1, r0, #7 + mov r3, r0, lsr #3 + add r0, r2, r3, asl #6 + ldreq r1, [sp, #100] + bne .L23074 +.L22694: + movs lr, lr, lsr #3 + beq .L22229 + mov ip, #0 + b .L22723 +.L23075: + ldr r2, [sp, #40] + add r0, r0, #64 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #40] +.L22723: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L22724 + tst r2, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi +.L22724: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L22733 + tst r2, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #8] + strneh r3, [r1, #8] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #10] + strneh r4, [r1, #10] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #12] + strneh r5, [r1, #12] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #14] + strneh r6, [r1, #14] @ movhi +.L22733: + add ip, ip, #1 + cmp ip, lr + bne .L23075 + b .L22229 +.L22810: + ands r2, r0, #7 + mov r3, r0, lsr #3 + sub r0, r8, r3, asl #6 + ldreq r1, [sp, #100] + bne .L23076 +.L22914: + movs lr, lr, lsr #3 + beq .L22229 + mov ip, #0 + b .L22943 +.L23077: + ldr r2, [sp, #40] + sub r0, r0, #64 + add r2, r2, #16 + add r1, r1, #16 + str r2, [sp, #40] +.L22943: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L22944 + tst r2, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L22944: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L22953 + tst r2, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #14] + strneh r3, [r1, #14] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #12] + strneh r4, [r1, #12] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #10] + strneh r5, [r1, #10] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #8] + strneh r6, [r1, #8] @ movhi +.L22953: + add ip, ip, #1 + cmp ip, lr + bne .L23077 + b .L22229 +.L22460: + mov r3, ip, lsr #3 + ands r2, ip, #7 + sub r0, r0, r3, asl #5 + ldreq r3, [sp, #100] + bne .L23078 +.L22509: + movs r1, r1, lsr #3 + beq .L22229 + mov r2, #0 + b .L22519 +.L23079: + ldr ip, [sp, #40] + sub r0, r0, #32 + add ip, ip, #16 + add r3, r3, #16 + str ip, [sp, #40] +.L22519: + ldr ip, [r0, #0] + cmp ip, #0 + beq .L22520 + tst ip, #15 + ldrne lr, [sp, #40] + ldrneh lr, [lr, #14] + strneh lr, [r3, #14] @ movhi + tst ip, #240 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #12] + strneh r4, [r3, #12] @ movhi + tst ip, #3840 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #10] + strneh r5, [r3, #10] @ movhi + tst ip, #61440 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #8] + strneh r6, [r3, #8] @ movhi + tst ip, #983040 + ldrne lr, [sp, #40] + ldrneh lr, [lr, #6] + strneh lr, [r3, #6] @ movhi + tst ip, #15728640 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #4] + strneh r4, [r3, #4] @ movhi + tst ip, #251658240 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #2] + strneh r5, [r3, #2] @ movhi + movs ip, ip, lsr #28 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #0] + strneh r6, [r3, #0] @ movhi +.L22520: + add r2, r2, #1 + cmp r2, r1 + bne .L23079 + b .L22229 +.L23078: + rsbs r6, r2, #8 + ldr ip, [r0, #0] + ldreq r3, [sp, #100] + beq .L22512 + mov r3, r2, asl #2 + mov r3, ip, asl r3 + mov lr, #0 +.L22513: + movs r5, r3, lsr #28 + ldrne r2, [sp, #40] + mov ip, lr, asl #1 + ldrneh r4, [ip, r2] + ldrne r2, [sp, #100] + add lr, lr, #1 + strneh r4, [ip, r2] @ movhi + cmp lr, r6 + mov r3, r3, asl #4 + bne .L22513 + ldr r5, [sp, #40] + mov r3, r6, asl #1 + ldr r6, [sp, #100] + add r5, r5, r3 + str r5, [sp, #40] + add r3, r6, r3 +.L22512: + sub r0, r0, #32 + b .L22509 +.L23076: + cmp r2, #3 + rsb ip, r2, #8 + bls .L22915 + cmp ip, #0 + ldr r1, [r0, #0] + ldreq r1, [sp, #100] + beq .L22919 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L22920: + movs r5, r3, lsr #24 + ldrne r6, [sp, #40] + mov r2, r1, asl #1 + ldrneh r4, [r2, r6] + ldrne r6, [sp, #100] + add r1, r1, #1 + strneh r4, [r2, r6] @ movhi + cmp r1, ip + mov r3, r3, asl #8 + bne .L22920 + ldr r5, [sp, #40] + mov r3, ip, asl #1 + ldr r6, [sp, #100] + add r5, r5, r3 + str r5, [sp, #40] + add r1, r6, r3 +.L22919: + sub r0, r0, #64 + b .L22914 +.L23074: + cmp r1, #3 + rsb ip, r1, #8 + bls .L22695 + cmp ip, #0 + ldr r2, [r0, #4] + ldreq r1, [sp, #100] + beq .L22699 + mov r3, r1, asl #3 + sub r3, r3, #32 + mov r3, r2, lsr r3 + mov r1, #0 +.L22700: + tst r3, #255 + ldrne r5, [sp, #40] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldrne r5, [sp, #100] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp ip, r1 + mov r3, r3, lsr #8 + bne .L22700 + mov r3, ip, asl #1 + ldr ip, [sp, #40] + ldr r2, [sp, #100] + add ip, ip, r3 + str ip, [sp, #40] + add r1, r2, r3 +.L22699: + add r0, r0, #64 + b .L22694 +.L23072: + rsbs r6, r3, #8 + ldr r0, [r0, r1] + ldreq r3, [sp, #100] + beq .L22382 + mov r3, r3, asl #2 + mov r0, r0, lsr r3 + mov r2, #0 +.L22383: + tst r0, #15 + ldrne r1, [sp, #40] + mov r3, r2, asl #1 + ldrneh r4, [r3, r1] + ldrne r1, [sp, #100] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r6, r2 + mov r0, r0, lsr #4 + bne .L22383 + ldr r5, [sp, #40] + mov r3, r6, asl #1 + ldr r6, [sp, #100] + add r5, r5, r3 + str r5, [sp, #40] + add r3, r6, r3 +.L22382: + add ip, ip, #32 + b .L22379 +.L22812: + ldr lr, [sp, #120] + rsb r0, ip, #8 + cmp lr, r0 + bge .L22815 + cmp lr, #0 + ble .L22229 + cmp ip, #3 + bls .L22818 + ldr r2, [sl, #0] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r2, r2, asl r3 + mov r1, #0 +.L22821: + movs r0, r2, lsr #24 + ldrne r4, [sp, #40] + mov r3, r1, asl #1 + ldrneh r5, [r3, r4] + ldr r6, [sp, #120] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r3, r4] @ movhi + cmp r6, r1 + mov r2, r2, asl #8 + bne .L22821 + b .L22229 +.L22592: + ldr r5, [sp, #120] + rsb r0, ip, #8 + cmp r5, r0 + bge .L22595 + cmp r5, #0 + ble .L22229 + cmp ip, #3 + bls .L22598 + ldr r2, [sl, #4] + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L22601: + tst r1, #255 + ldrne r6, [sp, #40] + mov r3, r2, asl #1 + ldrneh ip, [r3, r6] + ldr lr, [sp, #120] + ldrne r6, [sp, #100] + add r2, r2, #1 + strneh ip, [r3, r6] @ movhi + cmp lr, r2 + mov r1, r1, lsr #8 + bne .L22601 + b .L22229 +.L22332: + ldr r5, [sp, #120] + rsb ip, r3, #8 + cmp r5, ip + bge .L22335 + cmp r5, #0 + ble .L22229 + ldr r2, [r0, r1] + mov r3, r3, asl #2 + mov r0, r2, lsr r3 + mov r2, #0 +.L22339: + tst r0, #15 + ldrne r6, [sp, #40] + mov r3, r2, asl #1 + ldrneh ip, [r3, r6] + ldr lr, [sp, #120] + ldrne r6, [sp, #100] + add r2, r2, #1 + strneh ip, [r3, r6] @ movhi + cmp lr, r2 + mov r0, r0, lsr #4 + bne .L22339 + b .L22229 +.L22462: + ldr ip, [sp, #120] + rsb lr, r6, #8 + cmp ip, lr + bge .L22465 + cmp ip, #0 + ble .L22229 + ldr r2, [r0, #0] + mov r3, r6, asl #2 + mov r0, r2, asl r3 + mov r2, #0 +.L22469: + movs lr, r0, lsr #28 + ldrne r1, [sp, #40] + mov r3, r2, asl #1 + ldrneh r4, [r3, r1] + ldr r5, [sp, #120] + ldrne r1, [sp, #100] + add r2, r2, #1 + strneh r4, [r3, r1] @ movhi + cmp r5, r2 + mov r0, r0, asl #4 + bne .L22469 + b .L22229 +.L22915: + subs r6, ip, #4 + ldr r1, [r0, #4] + ldreq r1, [sp, #100] + beq .L22927 + mov r3, r2, asl #3 + sub r3, r3, #32 + mov r3, r1, asl r3 + mov r1, #0 +.L22928: + movs r2, r3, lsr #24 + ldrne r4, [sp, #40] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r6 + mov r3, r3, asl #8 + bne .L22928 + ldr r6, [sp, #40] + mov r3, ip, asl #1 + ldr ip, [sp, #100] + add r2, r6, r3 + sub r2, r2, #8 + add r3, ip, r3 + str r2, [sp, #40] + sub r1, r3, #8 +.L22927: + ldr r2, [r0, #0] + cmp r2, #0 + beq .L22933 + tst r2, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #6] + strneh r3, [r1, #6] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #4] + strneh r4, [r1, #4] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #2] + strneh r5, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #0] + strneh r6, [r1, #0] @ movhi +.L22933: + ldr ip, [sp, #40] + add r1, r1, #8 + add ip, ip, #8 + sub r0, r0, #64 + str ip, [sp, #40] + b .L22914 +.L22695: + subs r6, ip, #4 + ldr r2, [r0, #0] + ldreq r1, [sp, #100] + beq .L22707 + mov r3, r1, asl #3 + mov r3, r2, lsr r3 + mov r1, #0 +.L22708: + tst r3, #255 + ldrne r4, [sp, #40] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, r6 + mov r3, r3, lsr #8 + bne .L22708 + ldr r6, [sp, #40] + mov r3, ip, asl #1 + ldr ip, [sp, #100] + add r2, r6, r3 + sub r2, r2, #8 + add r3, ip, r3 + str r2, [sp, #40] + sub r1, r3, #8 +.L22707: + ldr r2, [r0, #4] + cmp r2, #0 + beq .L22713 + tst r2, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #0] + strneh r3, [r1, #0] @ movhi + mov r3, r2, lsr #8 + tst r3, #255 + ldrne r4, [sp, #40] + mov r3, r2, lsr #16 + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + tst r3, #255 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #4] + strneh r5, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r6, [sp, #40] + ldrneh r6, [r6, #6] + strneh r6, [r1, #6] @ movhi +.L22713: + ldr ip, [sp, #40] + add r1, r1, #8 + add ip, ip, #8 + add r0, r0, #64 + str ip, [sp, #40] + b .L22694 +.L22595: + cmp ip, #3 + bls .L22625 + cmp r0, #0 + ldr r2, [sl, #4] + ldreq r7, [sp, #100] + beq .L22629 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r1, r2, lsr r3 + mov r2, #0 +.L22630: + tst r1, #255 + ldrne lr, [sp, #40] + mov r3, r2, asl #1 + ldrneh r4, [r3, lr] + ldrne lr, [sp, #100] + add r2, r2, #1 + strneh r4, [r3, lr] @ movhi + cmp r0, r2 + mov r1, r1, lsr #8 + bne .L22630 + ldr r5, [sp, #40] + mov r3, r0, asl #1 + ldr r6, [sp, #100] + add r5, r5, r3 + str r5, [sp, #40] + add r7, r3, r6 +.L22629: + ldr r6, [sp, #120] + add sl, sl, #64 + rsb r8, r0, r6 + b .L22594 +.L22335: + cmp ip, #0 + ldr r2, [r6, #0] + ldreq r7, [sp, #100] + beq .L22345 + mov r3, r3, asl #2 + mov r3, r2, lsr r3 + mov r1, #0 +.L22346: + tst r3, #15 + ldrne r0, [sp, #40] + mov r2, r1, asl #1 + ldrneh r4, [r2, r0] + ldrne r0, [sp, #100] + add r1, r1, #1 + strneh r4, [r2, r0] @ movhi + cmp ip, r1 + mov r3, r3, lsr #4 + bne .L22346 + ldr r5, [sp, #40] + mov r3, ip, asl #1 + ldr lr, [sp, #100] + add r5, r5, r3 + str r5, [sp, #40] + add r7, r3, lr +.L22345: + ldr r0, [sp, #120] + add r6, r6, #32 + rsb r5, ip, r0 + b .L22334 +.L22465: + cmp lr, #0 + ldr r2, [r0, #0] + ldreq r1, [sp, #100] + beq .L22475 + mov r3, r6, asl #2 + mov r3, r2, asl r3 + mov ip, #0 +.L22476: + movs r6, r3, lsr #28 + ldrne r1, [sp, #40] + mov r2, ip, asl #1 + ldrneh r4, [r2, r1] + ldrne r1, [sp, #100] + add ip, ip, #1 + strneh r4, [r2, r1] @ movhi + cmp lr, ip + mov r3, r3, asl #4 + bne .L22476 + ldr r5, [sp, #40] + mov r3, lr, asl #1 + ldr r6, [sp, #100] + add r5, r5, r3 + str r5, [sp, #40] + add r1, r3, r6 +.L22475: + ldr ip, [sp, #120] + sub r0, r0, #32 + rsb r8, lr, ip + b .L22464 +.L22815: + cmp ip, #3 + bls .L22845 + cmp r0, #0 + ldr r2, [sl, #0] + ldreq r7, [sp, #100] + beq .L22849 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L22850: + movs r2, r3, lsr #24 + ldrne r4, [sp, #40] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r0, r1 + mov r3, r3, asl #8 + bne .L22850 + ldr r6, [sp, #40] + mov r3, r0, asl #1 + ldr ip, [sp, #100] + add r6, r6, r3 + str r6, [sp, #40] + add r7, ip, r3 +.L22849: + ldr ip, [sp, #120] + sub sl, sl, #64 + rsb r8, r0, ip + b .L22814 +.L23082: + mov r8, #0 + b .L22312 +.L23083: + mov r8, #0 + b .L22277 +.L23081: + ldr r1, [sp, #32] + b .L23046 +.L23080: + ldr lr, [sp, #28] + b .L23044 +.L22845: + subs lr, r0, #4 + ldr r2, [sl, #4] + ldreq r1, [sp, #100] + beq .L22857 + mov r3, ip, asl #3 + sub r3, r3, #32 + mov r3, r2, asl r3 + mov r1, #0 +.L22858: + movs r2, r3, lsr #24 + ldrne r4, [sp, #40] + mov r2, r1, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r1, r1, #1 + strneh r5, [r2, r4] @ movhi + cmp r1, lr + mov r3, r3, asl #8 + bne .L22858 + ldr r6, [sp, #40] + mov r3, r0, asl #1 + ldr ip, [sp, #100] + add r2, r6, r3 + sub r2, r2, #8 + add r3, ip, r3 + str r2, [sp, #40] + sub r1, r3, #8 +.L22857: + ldr r2, [sl, #0] + cmp r2, #0 + beq .L22863 + tst r2, #255 + ldrne lr, [sp, #40] + mov r3, r2, lsr #8 + ldrneh lr, [lr, #6] + strneh lr, [r1, #6] @ movhi + tst r3, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + mov r3, r2, lsr #16 + tst r3, #255 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #2] + strneh r4, [r1, #2] @ movhi + movs r2, r2, lsr #24 + ldrne r5, [sp, #40] + ldrneh r5, [r5, #0] + strneh r5, [r1, #0] @ movhi +.L22863: + ldr r6, [sp, #40] + add r7, r1, #8 + add r6, r6, #8 + str r6, [sp, #40] + b .L22849 +.L22625: + subs lr, r0, #4 + ldr r2, [sl, #0] + ldreq r1, [sp, #100] + beq .L22637 + mov r3, ip, asl #3 + mov r1, r2, lsr r3 + mov r2, #0 +.L22638: + tst r1, #255 + ldrne ip, [sp, #40] + mov r3, r2, asl #1 + ldrneh r4, [r3, ip] + ldrne ip, [sp, #100] + add r2, r2, #1 + strneh r4, [r3, ip] @ movhi + cmp r2, lr + mov r1, r1, lsr #8 + bne .L22638 + ldr r5, [sp, #40] + mov r3, r0, asl #1 + ldr r6, [sp, #100] + add r2, r5, r3 + sub r2, r2, #8 + add r3, r6, r3 + str r2, [sp, #40] + sub r1, r3, #8 +.L22637: + ldr r2, [sl, #4] + cmp r2, #0 + beq .L22643 + tst r2, #255 + ldrne ip, [sp, #40] + mov r3, r2, lsr #8 + ldrneh ip, [ip, #0] + strneh ip, [r1, #0] @ movhi + tst r3, #255 + ldrne lr, [sp, #40] + mov r3, r2, lsr #16 + ldrneh lr, [lr, #2] + strneh lr, [r1, #2] @ movhi + tst r3, #255 + ldrne r3, [sp, #40] + ldrneh r3, [r3, #4] + strneh r3, [r1, #4] @ movhi + movs r2, r2, lsr #24 + ldrne r4, [sp, #40] + ldrneh r4, [r4, #6] + strneh r4, [r1, #6] @ movhi +.L22643: + ldr r5, [sp, #40] + add r7, r1, #8 + add r5, r5, #8 + str r5, [sp, #40] + b .L22629 +.L22818: + ldr lr, [sp, #120] + mov r3, ip, asl #3 + ldr r1, [sl, #4] + add r2, lr, ip + sub r3, r3, #32 + cmp r2, #4 + mov r1, r1, asl r3 + bhi .L22825 + cmp lr, #0 + movne r2, #0 + beq .L22229 +.L22841: + movs r5, r1, lsr #24 + ldrne r6, [sp, #40] + mov r3, r2, asl #1 + ldrneh ip, [r3, r6] + ldr lr, [sp, #120] + ldrne r6, [sp, #100] + add r2, r2, #1 + strneh ip, [r3, r6] @ movhi + cmp lr, r2 + mov r1, r1, asl #8 + bne .L22841 + b .L22229 +.L22598: + ldr r0, [sp, #120] + ldr r3, [sl, #0] + add r2, r0, ip + mov r1, ip, asl #3 + cmp r2, #4 + mov r3, r3, lsr r1 + bhi .L22605 + cmp r0, #0 + movne r1, #0 + beq .L22229 +.L22621: + tst r3, #255 + ldrne r5, [sp, #40] + mov r2, r1, asl #1 + ldrneh r6, [r2, r5] + ldr ip, [sp, #120] + ldrne r5, [sp, #100] + add r1, r1, #1 + strneh r6, [r2, r5] @ movhi + cmp ip, r1 + mov r3, r3, lsr #8 + bne .L22621 + b .L22229 +.L22825: + rsbs r2, ip, #4 + ldreq r3, [sp, #100] + beq .L22830 + mov r0, #0 +.L22831: + movs r3, r1, lsr #24 + ldrne r4, [sp, #40] + mov r3, r0, asl #1 + ldrneh r5, [r3, r4] + ldrne r4, [sp, #100] + add r0, r0, #1 + strneh r5, [r3, r4] @ movhi + cmp r0, r2 + mov r1, r1, asl #8 + bne .L22831 + ldr r6, [sp, #40] + mov r3, r2, asl #1 + ldr ip, [sp, #100] + add r6, r6, r3 + str r6, [sp, #40] + add r3, r3, ip +.L22830: + ldr lr, [sp, #120] + subs ip, lr, r2 + ldr r2, [sl, #0] + beq .L22229 + mov r0, #0 +.L22837: + movs r1, r2, lsr #24 + ldrne r4, [sp, #40] + mov r1, r0, asl #1 + ldrneh r4, [r1, r4] + add r0, r0, #1 + strneh r4, [r1, r3] @ movhi + cmp r0, ip + mov r2, r2, asl #8 + bne .L22837 + b .L22229 +.L22605: + rsbs r1, ip, #4 + ldreq ip, [sp, #100] + beq .L22610 + mov r0, #0 +.L22611: + tst r3, #255 + ldrne r4, [sp, #40] + mov r2, r0, asl #1 + ldrneh r5, [r2, r4] + ldrne r4, [sp, #100] + add r0, r0, #1 + strneh r5, [r2, r4] @ movhi + cmp r0, r1 + mov r3, r3, lsr #8 + bne .L22611 + ldr r6, [sp, #40] + mov r3, r1, asl #1 + ldr lr, [sp, #100] + add r6, r6, r3 + str r6, [sp, #40] + add ip, r3, lr +.L22610: + ldr r2, [sp, #120] + ldr r3, [sl, #4] + subs r0, r2, r1 + beq .L22229 + mov r1, #0 +.L22617: + tst r3, #255 + ldrne r4, [sp, #40] + mov r2, r1, asl #1 + ldrneh r4, [r2, r4] + add r1, r1, #1 + strneh r4, [r2, ip] @ movhi + cmp r1, r0 + mov r3, r3, lsr #8 + bne .L22617 + b .L22229 + .size render_scanline_obj_copy_bitmap_1D, .-render_scanline_obj_copy_bitmap_1D + .align 2 + .global render_scanline_window_bitmap + .type render_scanline_window_bitmap, %function +render_scanline_window_bitmap: + @ args = 0, pretend = 0, frame = 20 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr lr, .L23662 + mov r2, r1, lsr #13 + ldrh ip, [lr, #74] + ldr r3, .L23662+4 + and ip, ip, #63 + sub sp, sp, #32 + mov r6, r1 + sub r2, r2, #1 + and r1, r1, #7 + str ip, [sp, #12] + add r9, r3, r1, asl #2 + mov r7, r0 + ldrh ip, [lr, #6] + ldrh sl, [lr, #80] + cmp r2, #6 + ldrls pc, [pc, r2, asl #2] + b .L23576 + .p2align 2 +.L23095: + .word .L23088 + .word .L23089 + .word .L23090 + .word .L23091 + .word .L23092 + .word .L23093 + .word .L23094 +.L23089: + ldrh r3, [lr, #70] + ldr r4, .L23662 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r2, [lr, #72] + bls .L23117 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + bne .L23125 +.L23580: + cmp r1, #227 + bhi .L23125 +.L23121: + mov r4, #240 + mov r5, r4 +.L23133: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23134: + cmp r5, r4 + beq .L23114 + mov r0, r5 + mov r3, r8 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23114: + cmp r4, #240 + beq .L23576 + ldr r3, [sp, #12] + mov r0, r4 + mov r2, r7 +.L23623: + mov r1, #240 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23576: + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L23088: + ldrh r3, [lr, #68] + ldr r4, .L23662 + and r2, r3, #255 + mov r1, r3, lsr #8 + cmp r1, r2 + ldrh r0, [lr, #72] + bls .L23096 + cmp ip, r1 + movls r3, #0 + movhi r3, #1 + cmp ip, r2 + orrls r3, r3, #1 + cmp r3, #0 + beq .L23578 +.L23104: + cmp r1, #227 + bhi .L23121 + ldrh r3, [r4, #64] + and r8, r0, #63 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + bhi .L23645 +.L23124: + cmp r5, r4 + bls .L23128 + cmp r4, #0 + bne .L23646 +.L23130: + mov r0, r4 + ldr r3, [sp, #12] + mov r2, r7 + mov r1, r5 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + cmp r5, #240 + movne r0, r5 + movne r2, r7 + movne r3, r8 + bne .L23623 + b .L23576 +.L23094: + ldrh r3, [lr, #68] + ldr r2, .L23662 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r4, [lr, #72] + bls .L23360 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L23639 +.L23368: + cmp r0, #227 + bls .L23647 +.L23364: + mov r8, #240 + mov fp, r8 +.L23367: + ldrh r3, [lr, #70] + ldr r0, .L23662 + and r1, r3, #255 + mov r2, r3, lsr #8 + cmp r2, r1 + bls .L23371 + cmp ip, r2 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L23640 +.L23379: + cmp r2, #227 + bls .L23648 +.L23375: + mov r5, #240 + mov r4, r5 +.L23378: + cmp fp, r8 + bls .L23382 + cmp r8, #0 + bne .L23649 +.L23384: + cmp r4, #240 + beq .L23386 + cmp r4, r5 + bhi .L23650 + cmp r4, #0 + beq .L23426 + cmp r8, #0 + beq .L23428 + cmp r8, r4 + bcs .L23426 +.L23428: + cmp fp, r4 + bcs .L23437 + mov r0, r8 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23439 + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D +.L23426: + cmp r4, r5 + beq .L23443 + cmp r8, r4 + bls .L23445 + cmp r8, r5 + bcs .L23443 + cmp fp, r5 + ldrcc r3, [sp, #28] + ldrcs r3, [sp, #28] + movcc r0, r8 + movcc r1, fp + movcs r0, r8 + movcs r1, r5 +.L23612: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23443: + cmp r5, #240 + beq .L23418 + cmp r8, r5 + bls .L23454 + cmp r8, #239 + bhi .L23418 + cmp fp, #239 + bhi .L23457 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23459 + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23422 +.L23093: + ldrh r3, [lr, #70] + ldr r4, .L23662 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r2, [lr, #72] + bls .L23330 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L23605 +.L23338: + cmp r0, #227 + bls .L23651 +.L23334: + mov r4, #240 + mov r5, r4 +.L23349: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23350: + ands r8, r6, #64 + beq .L23351 + mov r0, #4 + mov r1, #0 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D +.L23353: + cmp r4, r5 + beq .L23354 +.L23642: + mov r0, r5 + mov r3, fp + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23354: + cmp r4, #240 + beq .L23356 + ldr r3, [sp, #12] + mov r0, r4 + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23356: + cmp r8, #0 + movne r1, r4 + beq .L23652 +.L23626: + mov r3, r7 + mov r0, #4 + mov r2, #240 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_bitmap_1D +.L23092: + ldrh r3, [lr, #68] + ldr r4, .L23662 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r2, [lr, #72] + bls .L23300 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L23603 +.L23308: + cmp r0, #227 + bls .L23653 +.L23304: + mov r4, #240 + mov r5, r4 +.L23319: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23320: + ands r8, r6, #64 + beq .L23321 + mov r0, #4 + mov r1, #0 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D +.L23323: + cmp r5, r4 + bne .L23642 + b .L23354 +.L23090: + ldrh r3, [lr, #68] + ldr r2, .L23662 + and r1, r3, #255 + mov r0, r3, lsr #8 + cmp r0, r1 + ldrh r4, [lr, #72] + bls .L23138 + cmp ip, r0 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L23635 +.L23146: + cmp r0, #227 + bls .L23654 +.L23142: + mov r5, #240 + mov fp, r5 +.L23145: + ldrh r3, [lr, #70] + ldr r0, .L23662 + and r1, r3, #255 + mov r2, r3, lsr #8 + cmp r2, r1 + bls .L23149 + cmp ip, r2 + movls r3, #0 + movhi r3, #1 + cmp ip, r1 + orrls r3, r3, #1 + cmp r3, #0 + beq .L23636 +.L23157: + cmp r2, #227 + bls .L23655 +.L23153: + mov r8, #240 + mov r4, r8 +.L23156: + cmp fp, r5 + bls .L23160 + cmp r5, #0 + bne .L23656 +.L23162: + cmp r4, #240 + beq .L23164 + cmp r4, r8 + bls .L23166 + cmp r8, #0 + beq .L23168 + cmp r5, #0 + beq .L23170 + cmp r5, r8 + bcs .L23168 + cmp fp, r8 + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23168: + cmp r5, r8 + bls .L23177 + cmp r5, r4 + bcs .L23179 + cmp fp, r4 + ldrcc r3, [sp, #12] + ldrcs r3, [sp, #12] + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r4 +.L23585: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23179: + cmp r5, r4 + bls .L23186 + cmp r5, #239 + bhi .L23188 + cmp fp, #239 + movls r0, r5 + bls .L23589 + ldr r3, [sp, #20] + mov r0, r5 + mov r1, #240 +.L23588: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23188: + cmp fp, #240 + beq .L23576 +.L23192: + ldr r3, [sp, #16] + mov r0, fp + mov r2, r7 + b .L23623 +.L23091: + mov r1, #240 + ldr r3, [sp, #12] + mov r0, #0 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_bitmap + ands r1, r6, #64 + beq .L23624 + mov r3, r7 + mov r0, #4 + mov r1, #0 + mov r2, #240 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_bitmap_1D +.L23117: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + beq .L23580 +.L23125: + cmp r0, #227 + bhi .L23121 + ldrh r3, [r4, #66] + mov r2, r2, lsr #8 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + and r8, r2, #63 + bls .L23124 +.L23645: + mov r4, #240 + b .L23124 +.L23300: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L23308 +.L23603: + cmp r1, #227 + bls .L23304 + b .L23308 +.L23149: + cmp ip, r2 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L23157 +.L23636: + cmp r1, #227 + bls .L23153 + b .L23157 +.L23138: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L23146 +.L23635: + cmp r1, #227 + bls .L23142 + b .L23146 +.L23371: + cmp ip, r2 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L23379 +.L23640: + cmp r1, #227 + bls .L23375 + b .L23379 +.L23330: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L23338 +.L23605: + cmp r1, #227 + bls .L23334 + b .L23338 +.L23096: + cmp ip, r1 + movcc r3, #0 + movcs r3, #1 + cmp ip, r2 + movcs r3, #0 + cmp r3, #0 + bne .L23104 +.L23578: + cmp r2, #227 + bls .L23121 + b .L23104 +.L23360: + cmp ip, r0 + movcc r3, #0 + movcs r3, #1 + cmp ip, r1 + movcs r3, #0 + cmp r3, #0 + bne .L23368 +.L23639: + cmp r1, #227 + bls .L23364 + b .L23368 +.L23652: + mov r1, r4 +.L23624: + mov r3, r7 + mov r0, #4 + mov r2, #240 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_bitmap_2D +.L23382: + cmp r4, #240 + beq .L23472 + cmp r4, r5 + bls .L23474 + cmp r5, #0 + beq .L23476 + cmp fp, r5 + bcs .L23478 + cmp fp, #0 + movne r0, #0 + movne r1, fp + bne .L23615 +.L23476: + cmp fp, r4 + bcs .L23481 + cmp fp, r5 + bhi .L23657 +.L23483: + cmp fp, #239 + bhi .L23489 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L23617 +.L23491: + cmp fp, r8 + beq .L23519 + mov r0, fp + ldr r3, [sp, #24] + mov r1, r8 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23519: + cmp r4, #240 + beq .L23521 + cmp r4, r5 + bls .L23523 + cmp r5, #0 + beq .L23525 + cmp r8, #0 + beq .L23527 + cmp r8, r5 + bcs .L23525 + cmp r5, #240 + movhi r0, r8 + movhi r1, #240 + movls r0, r8 + movls r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23525: + cmp r8, r5 + bls .L23534 + cmp r8, r4 + bcc .L23658 +.L23536: + cmp r8, r4 + bls .L23542 + cmp r8, #239 + bhi .L23576 + ldr r3, [sp, #28] + mov r0, r8 + mov r2, r7 + b .L23623 +.L23160: + cmp r4, #240 + beq .L23224 + cmp r4, r8 + bls .L23226 + cmp r8, #0 + beq .L23228 + cmp fp, r8 + bcs .L23230 + cmp fp, #0 + movne r0, #0 + movne r1, fp + bne .L23591 +.L23228: + cmp fp, r4 + bcs .L23233 + cmp fp, r8 + movhi r0, r8 + movhi r1, fp + bhi .L23592 +.L23235: + cmp fp, #239 + bhi .L23237 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L23595 +.L23239: + cmp fp, r5 + beq .L23256 + mov r0, fp + ldr r3, [sp, #16] + mov r1, r5 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23256: + cmp r4, #240 + beq .L23258 + cmp r4, r8 + bls .L23260 + cmp r8, #0 + beq .L23262 + cmp r5, #0 + beq .L23264 + cmp r5, r8 + bcs .L23262 + cmp r8, #240 + movhi r0, r5 + movhi r1, #240 + movls r0, r5 + movls r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23262: + cmp r5, r8 + bls .L23271 + cmp r5, r4 + ldrcc r3, [sp, #12] + movcc r0, r5 + bcc .L23599 +.L23273: + cmp r5, r4 + bls .L23275 + cmp r5, #239 + bhi .L23576 + ldr r3, [sp, #20] + mov r0, r5 + mov r2, r7 + b .L23623 +.L23351: + mov r0, #4 + mov r1, r8 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23353 +.L23321: + mov r0, #4 + mov r1, r8 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23323 +.L23653: + ldrh r3, [r4, #64] + and fp, r2, #63 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + movhi r4, #240 + cmp r5, r4 + bhi .L23644 + cmp r5, #0 + bne .L23319 + b .L23320 +.L23655: + ldrh r3, [r0, #66] + mov r2, r4, lsr #8 + and r8, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r4, r3 + movcs r4, #240 + cmp r8, #240 + and r2, r2, #63 + movhi r8, #240 + str r2, [sp, #20] + b .L23156 +.L23648: + ldrh r3, [r0, #66] + mov r2, r4, lsr #8 + and r5, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r4, r3 + movcs r4, #240 + cmp r5, #240 + and r2, r2, #63 + movhi r5, #240 + str r2, [sp, #28] + b .L23378 +.L23647: + ldrh r3, [r2, #64] + and r2, r4, #63 + and r8, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc fp, r3 + movcs fp, #240 + cmp r8, #240 + movhi r8, #240 + str r2, [sp, #24] + b .L23367 +.L23651: + ldrh r3, [r4, #66] + mov r2, r2, lsr #8 + and r4, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc r5, r3 + movcs r5, #240 + cmp r4, #240 + movhi r4, #240 + cmp r5, r4 + and fp, r2, #63 + bhi .L23644 + cmp r5, #0 + bne .L23349 + b .L23350 +.L23654: + ldrh r3, [r2, #64] + and r2, r4, #63 + and r5, r3, #255 + mov r3, r3, lsr #8 + cmp r3, #240 + movcc fp, r3 + movcs fp, #240 + cmp r5, #240 + movhi r5, #240 + str r2, [sp, #16] + b .L23145 +.L23650: + cmp r5, #0 + beq .L23390 + cmp r8, #0 + beq .L23392 + cmp r8, r5 + bcs .L23390 + cmp fp, r5 + movcc r0, r8 + movcc r1, fp + movcs r0, r8 + movcs r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23390: + cmp r8, r5 + bls .L23399 + cmp r8, r4 + bcs .L23401 + cmp fp, r4 + bcs .L23403 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23405 + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D +.L23401: + cmp r8, r4 + bls .L23416 + cmp r8, #239 + bhi .L23418 + cmp fp, #239 + movls r0, r8 + movhi r0, r8 + bhi .L23613 +.L23614: + ldr r3, [sp, #28] + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23422: + ldr r3, [sp, #24] + mov r0, fp + mov r2, r7 + b .L23623 +.L23166: + cmp r4, #0 + beq .L23196 + cmp r5, #0 + beq .L23198 + cmp r5, r4 + bcs .L23196 +.L23198: + cmp fp, r4 + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23196: + cmp r4, r8 + beq .L23205 + cmp r5, r4 + bls .L23207 + cmp r5, r8 + bcs .L23205 + cmp fp, r8 + ldrcc r3, [sp, #20] + ldrcs r3, [sp, #20] + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r8 +.L23587: + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23205: + cmp r8, #240 + beq .L23188 + cmp r5, r8 + bls .L23216 + cmp r5, #239 + bhi .L23188 + cmp fp, #239 + movls r0, r5 + ldrls r3, [sp, #12] + bls .L23590 + ldr r3, [sp, #12] + mov r0, r5 + mov r1, #240 + b .L23588 +.L23649: + mov r0, #0 + mov r1, r8 + mov r2, r7 + ldr r3, [sp, #24] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23384 +.L23656: + mov r0, #0 + mov r1, r5 + mov r2, r7 + ldr r3, [sp, #16] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23162 +.L23472: + cmp fp, #0 + bne .L23659 +.L23515: + ands r1, r6, #64 + beq .L23517 + mov r0, #4 + mov r1, #0 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23491 +.L23224: + cmp fp, #0 + beq .L23239 + mov r0, #0 + mov r1, fp +.L23596: + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23239 +.L23644: + cmp r4, #0 + bne .L23660 +.L23343: + ldr r3, [sp, #12] + mov r0, r4 + mov r1, r5 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23345 + mov r1, r4 + mov r0, #4 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D +.L23347: + cmp r5, #240 + movne r0, r5 + movne r2, r7 + movne r3, fp + bne .L23623 + b .L23576 +.L23128: + cmp r5, #0 + bne .L23133 + b .L23134 +.L23386: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23470 + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D +.L23418: + cmp fp, #240 + bne .L23422 + b .L23576 +.L23345: + mov r1, r4 + mov r0, #4 + mov r2, r5 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23347 +.L23663: + .align 2 +.L23662: + .word io_registers + .word bitmap_mode_renderers-12 +.L23523: + cmp r4, #0 + beq .L23545 + cmp r8, #0 + beq .L23547 + cmp r8, r4 + bcc .L23547 +.L23545: + cmp r4, r5 + beq .L23554 + cmp r8, r4 + bls .L23556 + cmp r8, r5 + bcs .L23554 + cmp r5, #240 + ldrhi r3, [sp, #28] + movhi r0, r8 + ldrls r3, [sp, #28] + movls r0, r8 + bls .L23621 +.L23622: + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23561: + cmp r8, r5 + bls .L23565 + cmp r8, #239 + bhi .L23576 + mov r1, #240 + ldr r3, [sp, #12] + mov r0, r8 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_bitmap + tst r6, #64 + moveq r1, r8 + beq .L23624 + mov r1, r8 + b .L23626 +.L23260: + cmp r4, #0 + beq .L23278 + cmp r5, #0 + beq .L23280 + cmp r5, r4 + bcc .L23280 +.L23278: + cmp r4, r8 + beq .L23283 + cmp r5, r4 + bls .L23285 + cmp r5, r8 + bcs .L23283 + cmp r8, #240 + ldrhi r3, [sp, #20] + movhi r0, r5 + ldrls r3, [sp, #20] + movls r0, r5 + bls .L23600 +.L23601: + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23290: + cmp r5, r8 + bls .L23294 + cmp r5, #239 + bhi .L23576 + ldr r3, [sp, #12] + mov r0, r5 + mov r2, r7 + b .L23623 +.L23474: + cmp r4, #0 + beq .L23493 + cmp fp, r4 + bcs .L23495 + cmp fp, #0 + bne .L23661 +.L23493: + cmp r4, r5 + beq .L23502 + cmp fp, r5 + bcs .L23504 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L23616 +.L23502: + cmp r5, #240 + beq .L23491 + cmp fp, #239 + bhi .L23508 + cmp fp, r5 + bls .L23491 + mov r0, r5 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23511 + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23491 +.L23226: + cmp r4, #0 + beq .L23241 + cmp fp, r4 + bcs .L23243 + cmp fp, #0 + movne r0, #0 + movne r1, fp + bne .L23593 +.L23241: + cmp r4, r8 + beq .L23246 + cmp fp, r8 + bcs .L23248 + cmp fp, r4 + movhi r0, r4 + movhi r1, fp + bhi .L23594 +.L23246: + cmp r8, #240 + beq .L23239 + cmp fp, #239 + bhi .L23252 + cmp fp, r8 + movhi r0, r8 + movhi r1, fp + bls .L23239 + b .L23596 +.L23521: + cmp r8, #240 + beq .L23572 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_bitmap +.L23572: + tst r6, #64 + beq .L23574 + mov r1, r8 + mov r2, r4 + mov r3, r7 + mov r0, #4 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_bitmap_1D +.L23258: + cmp r5, #240 + beq .L23576 + mov r0, r5 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23576 +.L23392: + cmp fp, r5 + movcc r0, r8 + movcc r1, fp + movcs r0, r8 + movcs r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23399: + cmp fp, r4 + bcs .L23409 + cmp fp, r5 + bls .L23401 + ldr r3, [sp, #12] + mov r0, r5 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23412 + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23401 +.L23170: + cmp fp, r8 + movcc r0, r5 + movcc r1, fp + movcs r0, r5 + movcs r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23177: + cmp fp, r4 + bcs .L23183 + cmp fp, r8 + bls .L23179 + ldr r3, [sp, #12] + mov r0, r8 + mov r1, fp + b .L23585 +.L23264: + cmp r8, #240 + movhi r0, r5 + movhi r1, #240 + movls r0, r5 + movls r1, r8 + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23271: + ldr r3, [sp, #12] + mov r0, r8 +.L23599: + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23273 +.L23291: + ldr r3, [sp, #20] + mov r0, r4 +.L23600: + mov r1, r8 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23283: + cmp r8, #240 + bne .L23290 + b .L23576 +.L23562: + ldr r3, [sp, #28] + mov r0, r4 +.L23621: + mov r1, r5 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23554: + cmp r5, #240 + bne .L23561 + b .L23576 +.L23646: + mov r0, #0 + mov r1, r4 + mov r2, r7 + mov r3, r8 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23130 +.L23660: + mov r0, #0 + mov r1, r4 + mov r2, r7 + mov r3, fp + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23343 +.L23527: + cmp r5, #240 + movhi r0, r8 + movhi r1, #240 + movls r0, r8 + movls r1, r5 + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap +.L23534: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23540 + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23536 +.L23416: + cmp fp, #239 + bhi .L23423 + cmp fp, r4 + bls .L23422 + mov r0, r4 + b .L23614 +.L23186: + cmp fp, #239 + bhi .L23193 + cmp fp, r4 + bls .L23192 + mov r0, r4 +.L23589: + ldr r3, [sp, #20] +.L23590: + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23192 +.L23237: + mov r0, r4 + mov r1, #240 +.L23595: + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23239 +.L23489: + mov r0, r4 + mov r1, #240 +.L23617: + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23491 +.L23233: + mov r0, r8 + mov r1, r4 +.L23592: + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23235 +.L23216: + cmp fp, #239 + bhi .L23221 + cmp fp, r8 + movhi r0, r8 + ldrhi r3, [sp, #12] + bls .L23192 + b .L23590 +.L23445: + cmp fp, r5 + bcs .L23450 + cmp fp, r4 + bls .L23443 + ldr r3, [sp, #28] + mov r0, r4 + mov r1, fp + b .L23612 +.L23454: + cmp fp, #239 + bhi .L23463 + cmp fp, r5 + bls .L23422 + ldr r3, [sp, #12] + mov r0, r5 + mov r1, fp + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23466 + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23422 +.L23207: + cmp fp, r8 + bcs .L23212 + cmp fp, r4 + bls .L23205 + ldr r3, [sp, #20] + mov r0, r4 + mov r1, fp + b .L23587 +.L23164: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, fp + b .L23588 +.L23574: + mov r1, r8 + mov r2, r4 + mov r3, r7 + mov r0, #4 + add sp, sp, #32 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + b render_scanline_obj_copy_bitmap_2D +.L23517: + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23491 +.L23504: + mov r0, r4 + mov r1, r5 +.L23616: + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23502 +.L23248: + mov r0, r4 + mov r1, r8 +.L23594: + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23246 +.L23285: + cmp r8, #240 + bls .L23291 + cmp r4, #239 + bhi .L23290 + ldr r3, [sp, #20] + mov r0, r4 + b .L23601 +.L23556: + cmp r5, #240 + bls .L23562 + cmp r4, #239 + bhi .L23561 + ldr r3, [sp, #28] + mov r0, r4 + b .L23622 +.L23423: + mov r0, r4 +.L23613: + ldr r3, [sp, #28] + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23418 +.L23540: + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23536 +.L23481: + mov r0, r5 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23487 + mov r0, #4 + mov r1, r5 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23483 +.L23542: + ldr r3, [sp, #28] + mov r0, r4 + mov r2, r7 + b .L23623 +.L23275: + ldr r3, [sp, #20] + mov r0, r4 + mov r2, r7 + b .L23623 +.L23294: + ldr r3, [sp, #12] + mov r0, r8 + mov r2, r7 + b .L23623 +.L23565: + mov r1, #240 + ldr r3, [sp, #12] + mov r0, r5 + mov r2, r7 + str sl, [sp, #4] + str r9, [sp, #8] + str r6, [sp, #0] + bl render_scanline_conditional_bitmap + tst r6, #64 + movne r1, r5 + moveq r1, r5 + beq .L23624 + b .L23626 +.L23478: + mov r0, #0 + mov r1, r5 +.L23615: + mov r2, r7 + ldr r3, [sp, #28] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23476 +.L23243: + mov r0, #0 + mov r1, r4 +.L23593: + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23241 +.L23230: + mov r0, #0 + mov r1, r8 +.L23591: + mov r2, r7 + ldr r3, [sp, #20] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23228 +.L23547: + mov r0, r8 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23552 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23545 +.L23280: + mov r0, r5 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23278 +.L23659: + mov r0, #0 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + b .L23515 +.L23409: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23414 + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23401 +.L23183: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + b .L23585 +.L23437: + mov r0, r8 + mov r1, r4 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23441 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23426 +.L23252: + mov r0, r8 + mov r1, #240 + b .L23596 +.L23470: + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23418 +.L23508: + mov r0, r5 + mov r1, #240 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23513 + mov r0, #4 + mov r1, r5 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23491 +.L23657: + mov r0, r5 + mov r1, fp + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23485 + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23483 +.L23193: + ldr r3, [sp, #20] + mov r0, r4 + mov r1, #240 + b .L23588 +.L23495: + mov r1, r4 + mov r0, #0 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + ands r1, r6, #64 + beq .L23500 + mov r0, #4 + mov r1, #0 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23493 +.L23487: + mov r0, #4 + mov r1, r5 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23483 +.L23552: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23545 +.L23221: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, #240 + b .L23588 +.L23212: + ldr r3, [sp, #20] + mov r0, r4 + mov r1, r8 + b .L23587 +.L23463: + ldr r3, [sp, #12] + mov r0, r5 + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23468 + mov r1, r5 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23418 +.L23450: + ldr r3, [sp, #28] + mov r0, r4 + mov r1, r5 + b .L23612 +.L23658: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23538 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23536 +.L23403: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, r4 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23407 + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23401 +.L23439: + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23426 +.L23414: + mov r1, r5 + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23401 +.L23441: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23426 +.L23513: + mov r0, #4 + mov r1, r5 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23491 +.L23457: + ldr r3, [sp, #12] + mov r0, r8 + mov r1, #240 + mov r2, r7 + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + tst r6, #64 + beq .L23461 + mov r1, r8 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23418 +.L23661: + mov r1, fp + mov r0, #0 + mov r2, r7 + ldr r3, [sp, #12] + stmia sp, {r6, sl} @ phole stm + str r9, [sp, #8] + bl render_scanline_conditional_bitmap + ands r1, r6, #64 + beq .L23498 + mov r0, #4 + mov r1, #0 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_1D + b .L23493 +.L23485: + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23483 +.L23412: + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23401 +.L23500: + mov r0, #4 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23493 +.L23511: + mov r0, #4 + mov r1, r5 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23491 +.L23468: + mov r1, r5 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23418 +.L23461: + mov r1, r8 + mov r0, #4 + mov r2, #240 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23418 +.L23405: + mov r0, #4 + mov r1, r8 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23401 +.L23538: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23536 +.L23498: + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23493 +.L23407: + mov r0, #4 + mov r1, r8 + mov r2, r4 + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23401 +.L23459: + mov r1, r8 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23422 +.L23466: + mov r1, r5 + mov r0, #4 + mov r2, fp + mov r3, r7 + bl render_scanline_obj_copy_bitmap_2D + b .L23422 + .size render_scanline_window_bitmap, .-render_scanline_window_bitmap + .align 2 + .global update_scanline + .type update_scanline, %function +update_scanline: + @ args = 0, pretend = 0, frame = 12 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} + ldr r2, .L23760 + ldr r0, .L23760+4 + ldr r9, .L23760+8 + ldr r3, [r0, #0] + ldr r1, [r2, #0] + cmp r3, #0 + ldr r2, [r1, #20] + ldrh fp, [r9, #0] + ldrh r1, [r1, #16] + ldrh r3, [r9, #6] + sub sp, sp, #12 + str r2, [sp, #8] + stmia sp, {r1, r3} @ phole stm + and sl, fp, #7 + movne ip, #0 + bne .L23669 +.L23666: + ldr r2, .L23760+12 + ldr r0, [sp, #4] + ldr r3, [r2, sl, asl #2] + ldr r2, .L23760+16 + and r3, r3, fp, lsr #8 + add lr, r2, r0, asl #2 + ldr r2, .L23760+20 + mov r1, #0 + mov r5, r1 + and r7, r3, #1 + and r0, r3, #16 + mov ip, #3 + and r8, r3, #8 + and r6, r3, #4 + and r4, r3, #2 + str r1, [r2, #0] +.L23696: + cmp r8, #0 + beq .L23725 + ldrh r3, [r9, #14] + and r3, r3, #3 + cmp r3, ip + ldreq r3, .L23760+24 + moveq r2, #3 + streq r2, [r3, r5, asl #2] + addeq r5, r5, #1 +.L23725: + cmp r6, #0 + beq .L23728 + ldrh r3, [r9, #12] + and r3, r3, #3 + cmp r3, ip + ldreq r3, .L23760+24 + moveq r2, #2 + streq r2, [r3, r5, asl #2] + addeq r5, r5, #1 +.L23728: + cmp r4, #0 + beq .L23731 + ldrh r3, [r9, #10] + and r3, r3, #3 + cmp r3, ip + ldreq r3, .L23760+24 + moveq r2, #1 + streq r2, [r3, r5, asl #2] + addeq r5, r5, r2 +.L23731: + cmp r7, #0 + beq .L23698 + ldrh r3, [r9, #8] + and r3, r3, #3 + cmp r3, ip + ldreq r3, .L23760+24 + moveq r2, #0 + streq r2, [r3, r5, asl #2] + addeq r5, r5, #1 +.L23698: + ldr r3, [lr, #1920] + cmp r3, #0 + beq .L23700 + cmp r0, #0 + ldrne r3, .L23760+24 + orrne r2, ip, #4 + strne r2, [r3, r5, asl #2] + addne r5, r5, #1 +.L23700: + sub ip, ip, #1 + cmn ip, #1 + sub lr, lr, #640 + bne .L23696 + ldr r3, .L23760+20 + str r5, [r3, #0] + ldr r3, .L23760+28 + ldr r1, [r3, #0] + cmp r1, #0 + bne .L23734 + ldr r0, [sp, #0] + ldr r4, [sp, #8] + mov r2, r0, lsr #1 + ldr r0, [sp, #4] + tst fp, #128 + mov r3, r0, asl #1 + mla r4, r3, r2, r4 + beq .L23706 + mov r3, r1 +.L23708: + mvn r1, #0 @ movhi + strh r1, [r3, r4] @ movhi + add r3, r3, #2 + cmp r3, #480 + bne .L23708 +.L23709: + ldr lr, .L23760+32 + ldr r4, .L23760+36 + ldr r5, [lr, #0] + ldr r6, [r4, #0] + ldr r3, [lr, #4] + ldr r2, [r4, #4] + ldrsh r7, [r9, #54] + ldrsh r1, [r9, #34] + ldrsh r0, [r9, #38] + ldrsh ip, [r9, #50] + add r5, r5, r1 + add r6, r6, r0 + add r3, r3, ip + add r2, r2, r7 + str r3, [lr, #4] + str r2, [r4, #4] + str r5, [lr, #0] + str r6, [r4, #0] +.L23734: + add sp, sp, #12 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} +.L23759: + add ip, ip, #1 + cmp ip, #5 + beq .L23752 +.L23669: + ldr r1, .L23760+16 + add r3, ip, ip, asl #2 + add r2, r1, r3, asl #7 + mov r3, #0 +.L23667: + add r3, r3, #1 + mov r1, #0 + cmp r3, #160 + str r1, [r2], #4 + bne .L23667 + b .L23759 +.L23752: + ldr r3, .L23760+40 + add r2, r3, #640 +.L23671: + str r1, [r3], #4 + cmp r3, r2 + bne .L23671 + ldr r6, .L23760+44 + mov r7, #127 +.L23673: + ldrh r2, [r6, #8] + ldrh r0, [r6, #12] + and r1, r2, #49152 + and r3, r2, #768 + cmp r3, #512 + cmpne r1, #49152 + beq .L23674 + mov r3, r2, lsr #10 + and r4, r3, #3 + cmp r4, #3 + beq .L23674 + cmp sl, #2 + bls .L23677 + mov r3, r0, asl #22 + mov r3, r3, lsr #22 + cmp r3, #512 + bcc .L23674 +.L23677: + ldrh r5, [r6, #10] + and ip, r2, #255 + mov r3, r5, lsr #14 + orr r3, r3, r1, lsr #12 + ldr r1, .L23760+48 + cmp ip, #160 + subgt ip, ip, #256 + ldr r1, [r1, r3, asl #2] + tst r2, #512 + ldr r2, .L23760+52 + movne r1, r1, asl #1 + ldr r2, [r2, r3, asl #2] + add lr, ip, r1 + movne r2, r2, asl #1 + cmp lr, #0 + movle r3, #0 + movgt r3, #1 + cmp ip, #159 + movgt r3, #0 + cmp r3, #0 + beq .L23674 + mov r3, r5, asl #23 + mov r3, r3, asr #23 + add r2, r2, r3 + cmp r2, #0 + movle r1, #0 + movgt r1, #1 + cmp r3, #239 + movgt r1, #0 + cmp r1, #0 + beq .L23674 + cmp ip, #0 + movlt ip, #0 + cmp lr, #160 + movge lr, #160 + mov r3, r0, lsr #10 + cmp r4, #1 + and r3, r3, #3 + beq .L23754 + cmp r4, #2 + moveq r3, #4 + cmp ip, lr + bge .L23674 + add r3, r3, r3, asl #2 + ldr r2, .L23760+56 + ldr r0, .L23760+16 + rsb r1, ip, lr + add r3, ip, r3, asl #5 + mov r4, ip + add r1, ip, r1 + add lr, r2, r3, asl #7 + and r5, r7, #255 + add ip, r0, r3, asl #2 +.L23694: + ldr r2, [ip, #0] + add r4, r4, #1 + add r3, r2, #1 + cmp r4, r1 + strb r5, [lr, r2] + str r3, [ip], #4 + add lr, lr, #128 + bne .L23694 +.L23674: + sub r7, r7, #1 + cmn r7, #1 + sub r6, r6, #8 + bne .L23673 +.L23755: + ldr r1, .L23760+4 + mov r3, #0 + str r3, [r1, #0] + b .L23666 +.L23754: + cmp ip, lr + bge .L23674 + ldr r2, .L23760+56 + add r3, r3, r3, asl #2 + rsb r1, ip, lr + add r3, ip, r3, asl #5 + add r8, ip, r1 + add r4, r2, r3, asl #7 + ldr r1, .L23760+16 + ldr r2, .L23760+40 + mov r5, ip + and r0, r7, #255 + add lr, r1, r3, asl #2 + add ip, r2, ip, asl #2 +.L23690: + ldr r3, [lr, #0] + ldr r2, [ip, #0] + add r5, r5, #1 + add r1, r3, #1 + add r2, r2, #1 + cmp r5, r8 + strb r0, [r4, r3] + str r1, [lr], #4 + str r2, [ip], #4 + add r4, r4, #128 + bne .L23690 + sub r7, r7, #1 + cmn r7, #1 + sub r6, r6, #8 + bne .L23673 + b .L23755 +.L23706: + cmp sl, #2 + bls .L23756 + movs r0, fp, lsr #13 + bne .L23757 + ldr r3, .L23760+60 + ldr r2, .L23760+64 + ldrh r1, [r3, #0] + add r8, r2, sl, asl #2 + mov r3, r0 +.L23716: + strh r1, [r3, r4] @ movhi + add r3, r3, #2 + cmp r3, #480 + bne .L23716 + cmp r5, #0 + beq .L23709 + ldr r6, .L23760+24 + and r7, fp, #64 + mov r5, #0 + b .L23719 +.L23758: + bl render_scanline_obj_normal_1D +.L23724: + ldr r0, .L23760+20 + add r5, r5, #1 + ldr r3, [r0, #0] + add r6, r6, #4 + cmp r3, r5 + bls .L23709 +.L23719: + ldr ip, [r6, #0] + mov r1, #240 + ands r0, ip, #4 + mov r2, r4 + beq .L23720 + sub r1, r1, #240 + bic ip, ip, #4 + cmp r7, r1 + mov r2, #240 + mov r3, r4 + mov r0, ip + bne .L23758 + mov r0, ip + mov r1, r7 + mov r2, #240 + mov r3, r4 + bl render_scanline_obj_normal_2D + b .L23724 +.L23756: + movs r2, fp, lsr #13 + beq .L23712 + mov r0, r4 + mov r1, fp + bl render_scanline_window_tile + b .L23709 +.L23720: + mov lr, pc + ldr pc, [r8, #0] + b .L23724 +.L23712: + mov r0, r4 + mov r1, fp + bl render_scanline_tile + b .L23709 +.L23757: + mov r0, r4 + mov r1, fp + bl render_scanline_window_bitmap + b .L23709 +.L23761: + .align 2 +.L23760: + .word screen + .word oam_update + .word io_registers + .word active_layers + .word obj_priority_count + .word layer_count + .word layer_order + .word skip_next_frame + .word affine_reference_x + .word affine_reference_y + .word obj_alpha_count + .word oam_ram+1008 + .word obj_height_table + .word obj_width_table + .word obj_priority_list + .word palette_ram_converted + .word bitmap_mode_renderers-12 + .size update_scanline, .-update_scanline + .global video_scale + .section .rodata + .align 2 + .type video_scale, %object + .size video_scale, 4 +video_scale: + .word 1 + .global map_widths + .data + .align 2 + .type map_widths, %object + .size map_widths, 16 +map_widths: + .word 256 + .word 512 + .word 256 + .word 512 + .global map_heights + .align 2 + .type map_heights, %object + .size map_heights, 16 +map_heights: + .word 256 + .word 256 + .word 512 + .word 512 + .global tile_mode_renderers + .align 2 + .type tile_mode_renderers, %object + .size tile_mode_renderers, 384 +tile_mode_renderers: + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_affine_base_normal + .word render_scanline_affine_transparent_normal + .word render_scanline_affine_base_alpha + .word render_scanline_affine_transparent_alpha + .word render_scanline_affine_base_color16 + .word render_scanline_affine_transparent_color16 + .word render_scanline_affine_base_color32 + .word render_scanline_affine_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_text_base_normal + .word render_scanline_text_transparent_normal + .word render_scanline_text_base_alpha + .word render_scanline_text_transparent_alpha + .word render_scanline_text_base_color16 + .word render_scanline_text_transparent_color16 + .word render_scanline_text_base_color32 + .word render_scanline_text_transparent_color32 + .word render_scanline_affine_base_normal + .word render_scanline_affine_transparent_normal + .word render_scanline_affine_base_alpha + .word render_scanline_affine_transparent_alpha + .word render_scanline_affine_base_color16 + .word render_scanline_affine_transparent_color16 + .word render_scanline_affine_base_color32 + .word render_scanline_affine_transparent_color32 + .word render_scanline_affine_base_normal + .word render_scanline_affine_transparent_normal + .word render_scanline_affine_base_alpha + .word render_scanline_affine_transparent_alpha + .word render_scanline_affine_base_color16 + .word render_scanline_affine_transparent_color16 + .word render_scanline_affine_base_color32 + .word render_scanline_affine_transparent_color32 + .global bitmap_mode_renderers + .align 2 + .type bitmap_mode_renderers, %object + .size bitmap_mode_renderers, 12 +bitmap_mode_renderers: + .word render_scanline_bitmap_mode3_normal + .word render_scanline_bitmap_mode4_normal + .word render_scanline_bitmap_mode5_normal + .global obj_width_table + .align 2 + .type obj_width_table, %object + .size obj_width_table, 48 +obj_width_table: + .word 8 + .word 16 + .word 32 + .word 64 + .word 16 + .word 32 + .word 32 + .word 64 + .word 8 + .word 8 + .word 16 + .word 32 + .global obj_height_table + .align 2 + .type obj_height_table, %object + .size obj_height_table, 48 +obj_height_table: + .word 8 + .word 16 + .word 32 + .word 64 + .word 8 + .word 8 + .word 16 + .word 32 + .word 16 + .word 32 + .word 32 + .word 64 + .global active_layers + .align 2 + .type active_layers, %object + .size active_layers, 24 +active_layers: + .word 31 + .word 23 + .word 28 + .word 20 + .word 20 + .word 20 + .global small_resolution_width + .align 2 + .type small_resolution_width, %object + .size small_resolution_width, 4 +small_resolution_width: + .word 240 + .global small_resolution_height + .align 2 + .type small_resolution_height, %object + .size small_resolution_height, 4 +small_resolution_height: + .word 160 + .global screen_scale + .align 2 + .type screen_scale, %object + .size screen_scale, 4 +screen_scale: + .word 1 + .global current_scale + .align 2 + .type current_scale, %object + .size current_scale, 4 +current_scale: + .word 1 + .global screen_filter + .align 2 + .type screen_filter, %object + .size screen_filter, 4 +screen_filter: + .word 1 + .global debug_cursor_x + .bss + .align 2 + .type debug_cursor_x, %object + .size debug_cursor_x, 4 +debug_cursor_x: + .space 4 + .global debug_cursor_y + .align 2 + .type debug_cursor_y, %object + .size debug_cursor_y, 4 +debug_cursor_y: + .space 4 + .section .rodata + .align 2 + .type _font_offset, %object + .size _font_offset, 1024 +_font_offset: + .word 0 + .word 10 + .word 20 + .word 30 + .word 40 + .word 50 + .word 60 + .word 70 + .word 80 + .word 90 + .word 100 + .word 110 + .word 120 + .word 130 + .word 140 + .word 150 + .word 160 + .word 170 + .word 180 + .word 190 + .word 200 + .word 210 + .word 220 + .word 230 + .word 240 + .word 250 + .word 260 + .word 270 + .word 280 + .word 290 + .word 300 + .word 310 + .word 320 + .word 330 + .word 340 + .word 350 + .word 360 + .word 370 + .word 380 + .word 390 + .word 400 + .word 410 + .word 420 + .word 430 + .word 440 + .word 450 + .word 460 + .word 470 + .word 480 + .word 490 + .word 500 + .word 510 + .word 520 + .word 530 + .word 540 + .word 550 + .word 560 + .word 570 + .word 580 + .word 590 + .word 600 + .word 610 + .word 620 + .word 630 + .word 640 + .word 650 + .word 660 + .word 670 + .word 680 + .word 690 + .word 700 + .word 710 + .word 720 + .word 730 + .word 740 + .word 750 + .word 760 + .word 770 + .word 780 + .word 790 + .word 800 + .word 810 + .word 820 + .word 830 + .word 840 + .word 850 + .word 860 + .word 870 + .word 880 + .word 890 + .word 900 + .word 910 + .word 920 + .word 930 + .word 940 + .word 950 + .word 960 + .word 970 + .word 980 + .word 990 + .word 1000 + .word 1010 + .word 1020 + .word 1030 + .word 1040 + .word 1050 + .word 1060 + .word 1070 + .word 1080 + .word 1090 + .word 1100 + .word 1110 + .word 1120 + .word 1130 + .word 1140 + .word 1150 + .word 1160 + .word 1170 + .word 1180 + .word 1190 + .word 1200 + .word 1210 + .word 1220 + .word 1230 + .word 1240 + .word 1250 + .word 1260 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 0 + .word 1270 + .word 1280 + .word 1290 + .word 1300 + .word 1310 + .word 1320 + .word 1330 + .word 1340 + .word 1350 + .word 1360 + .word 1370 + .word 1380 + .word 1390 + .word 1400 + .word 1410 + .word 1420 + .word 1430 + .word 1440 + .word 1450 + .word 1460 + .word 1470 + .word 1480 + .word 1490 + .word 1500 + .word 1510 + .word 1520 + .word 1530 + .word 1540 + .word 1550 + .word 1560 + .word 1570 + .word 1580 + .word 1590 + .word 1600 + .word 1610 + .word 1620 + .word 1630 + .word 1640 + .word 1650 + .word 1660 + .word 1670 + .word 1680 + .word 1690 + .word 1700 + .word 1710 + .word 1720 + .word 1730 + .word 1740 + .word 1750 + .word 1760 + .word 1770 + .word 1780 + .word 1790 + .word 1800 + .word 1810 + .word 1820 + .word 1830 + .word 1840 + .word 1850 + .word 1860 + .word 1870 + .word 1880 + .word 1890 + .word 1900 + .word 1910 + .word 1920 + .word 1930 + .word 1940 + .word 1950 + .word 1960 + .word 1970 + .word 1980 + .word 1990 + .word 2000 + .word 2010 + .word 2020 + .word 2030 + .word 2040 + .word 2050 + .word 2060 + .word 2070 + .word 2080 + .word 2090 + .word 2100 + .word 2110 + .word 2120 + .word 2130 + .word 2140 + .word 2150 + .word 2160 + .word 2170 + .word 2180 + .word 2190 + .word 2200 + .word 2210 + .word 2220 + .align 1 + .type _font_bits, %object + .size _font_bits, 4460 +_font_bits: + .short 0 + .short -22528 + .short 0 + .short -30720 + .short 0 + .short -30720 + .short 0 + .short -22528 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 28672 + .short -2048 + .short 28672 + .short 8192 + .short 0 + .short 0 + .short 0 + .short -22528 + .short 21504 + .short -22528 + .short 21504 + .short -22528 + .short 21504 + .short -22528 + .short 21504 + .short -22528 + .short 21504 + .short 0 + .short -28672 + .short -28672 + .short -4096 + .short -28672 + .short -28672 + .short 30720 + .short 4096 + .short 4096 + .short 4096 + .short 0 + .short -8192 + .short -32768 + .short -16384 + .short -32768 + .short -18432 + .short 8192 + .short 12288 + .short 8192 + .short 8192 + .short 0 + .short 28672 + .short -32768 + .short -32768 + .short 28672 + .short 28672 + .short 18432 + .short 28672 + .short 18432 + .short 18432 + .short 0 + .short -32768 + .short -32768 + .short -32768 + .short -4096 + .short 30720 + .short 16384 + .short 28672 + .short 16384 + .short 16384 + .short 0 + .short 8192 + .short 20480 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short -2048 + .short 8192 + .short 8192 + .short -2048 + .short 0 + .short 0 + .short 0 + .short -28672 + .short -12288 + .short -12288 + .short -20480 + .short -28672 + .short 16384 + .short 16384 + .short 16384 + .short 30720 + .short 0 + .short -28672 + .short -28672 + .short 24576 + .short 16384 + .short 30720 + .short 4096 + .short 4096 + .short 4096 + .short 4096 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short -8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 15360 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 15360 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short -1024 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short -1024 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -1024 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -1024 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -1024 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -1024 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 15360 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short -8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short -1024 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -1024 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 6144 + .short 24576 + .short -32768 + .short 24576 + .short 6144 + .short 0 + .short -2048 + .short 0 + .short 0 + .short 0 + .short -16384 + .short 12288 + .short 2048 + .short 12288 + .short -16384 + .short 0 + .short -2048 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 20480 + .short 20480 + .short 20480 + .short 20480 + .short 0 + .short 0 + .short 0 + .short 2048 + .short 4096 + .short -2048 + .short 8192 + .short -2048 + .short 16384 + .short -32768 + .short 0 + .short 0 + .short 0 + .short 12288 + .short 18432 + .short 16384 + .short -8192 + .short 16384 + .short 18432 + .short -20480 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 20480 + .short 20480 + .short 20480 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 20480 + .short 20480 + .short -2048 + .short 20480 + .short -2048 + .short 20480 + .short 20480 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 28672 + .short -24576 + .short 28672 + .short 10240 + .short 28672 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 18432 + .short -22528 + .short 20480 + .short 8192 + .short 20480 + .short -22528 + .short -28672 + .short 0 + .short 0 + .short 0 + .short 16384 + .short -24576 + .short -24576 + .short 16384 + .short -22528 + .short -28672 + .short 26624 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 16384 + .short 16384 + .short 16384 + .short 8192 + .short 4096 + .short 0 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 4096 + .short 4096 + .short 4096 + .short 8192 + .short 16384 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short 20480 + .short -2048 + .short 20480 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short -2048 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 12288 + .short 8192 + .short 16384 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 28672 + .short 8192 + .short 0 + .short 0 + .short 2048 + .short 2048 + .short 4096 + .short 8192 + .short 16384 + .short -32768 + .short -32768 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short -30720 + .short -30720 + .short -30720 + .short 20480 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 24576 + .short -24576 + .short 8192 + .short 8192 + .short 8192 + .short -2048 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short 2048 + .short 12288 + .short 16384 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 2048 + .short 4096 + .short 12288 + .short 2048 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 4096 + .short 12288 + .short 20480 + .short -28672 + .short -2048 + .short 4096 + .short 4096 + .short 0 + .short 0 + .short 0 + .short -2048 + .short -32768 + .short -20480 + .short -14336 + .short 2048 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 12288 + .short 16384 + .short -32768 + .short -20480 + .short -14336 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 2048 + .short 4096 + .short 4096 + .short 8192 + .short 16384 + .short 16384 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short 28672 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -26624 + .short 26624 + .short 2048 + .short 4096 + .short 24576 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 28672 + .short 8192 + .short 0 + .short 8192 + .short 28672 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 28672 + .short 8192 + .short 0 + .short 12288 + .short 8192 + .short 16384 + .short 0 + .short 0 + .short 2048 + .short 4096 + .short 8192 + .short 16384 + .short 8192 + .short 4096 + .short 2048 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 0 + .short -2048 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 4096 + .short 2048 + .short 4096 + .short 8192 + .short 16384 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short 4096 + .short 8192 + .short 8192 + .short 0 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -26624 + .short -22528 + .short -20480 + .short -32768 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short -4096 + .short 18432 + .short 18432 + .short 28672 + .short 18432 + .short 18432 + .short -4096 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -32768 + .short -32768 + .short -32768 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -4096 + .short 18432 + .short 18432 + .short 18432 + .short 18432 + .short 18432 + .short -4096 + .short 0 + .short 0 + .short 0 + .short -2048 + .short -32768 + .short -32768 + .short -4096 + .short -32768 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 0 + .short -2048 + .short -32768 + .short -32768 + .short -4096 + .short -32768 + .short -32768 + .short -32768 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -32768 + .short -32768 + .short -26624 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 28672 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 14336 + .short 4096 + .short 4096 + .short 4096 + .short 4096 + .short -28672 + .short 24576 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -28672 + .short -24576 + .short -16384 + .short -24576 + .short -28672 + .short -30720 + .short 0 + .short 0 + .short 0 + .short -32768 + .short -32768 + .short -32768 + .short -32768 + .short -32768 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -10240 + .short -22528 + .short -30720 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -14336 + .short -22528 + .short -26624 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -4096 + .short -30720 + .short -30720 + .short -4096 + .short -32768 + .short -32768 + .short -32768 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short -22528 + .short 28672 + .short 2048 + .short 0 + .short 0 + .short -4096 + .short -30720 + .short -30720 + .short -4096 + .short -24576 + .short -28672 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -32768 + .short 28672 + .short 2048 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short 20480 + .short 20480 + .short 20480 + .short 8192 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -22528 + .short -22528 + .short -10240 + .short -30720 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short 20480 + .short 8192 + .short 20480 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short 20480 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 2048 + .short 4096 + .short 8192 + .short 16384 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 0 + .short 28672 + .short 16384 + .short 16384 + .short 16384 + .short 16384 + .short 16384 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -32768 + .short -32768 + .short 16384 + .short 8192 + .short 4096 + .short 2048 + .short 2048 + .short 0 + .short 0 + .short 0 + .short 28672 + .short 4096 + .short 4096 + .short 4096 + .short 4096 + .short 4096 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 0 + .short 8192 + .short 4096 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short 2048 + .short 30720 + .short -30720 + .short 30720 + .short 0 + .short 0 + .short 0 + .short -32768 + .short -32768 + .short -20480 + .short -14336 + .short -30720 + .short -14336 + .short -20480 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -32768 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 2048 + .short 2048 + .short 26624 + .short -26624 + .short -30720 + .short -26624 + .short 26624 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -2048 + .short -32768 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 12288 + .short 18432 + .short 16384 + .short -4096 + .short 16384 + .short 16384 + .short 16384 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 30720 + .short -30720 + .short -30720 + .short 30720 + .short 2048 + .short -30720 + .short 28672 + .short 0 + .short -32768 + .short -32768 + .short -20480 + .short -14336 + .short -30720 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 0 + .short 24576 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 2048 + .short 0 + .short 6144 + .short 2048 + .short 2048 + .short 2048 + .short 18432 + .short 18432 + .short 12288 + .short 0 + .short -32768 + .short -32768 + .short -30720 + .short -28672 + .short -8192 + .short -28672 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 24576 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -12288 + .short -22528 + .short -22528 + .short -22528 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -20480 + .short -14336 + .short -30720 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -20480 + .short -14336 + .short -30720 + .short -14336 + .short -20480 + .short -32768 + .short -32768 + .short 0 + .short 0 + .short 0 + .short 26624 + .short -26624 + .short -30720 + .short -26624 + .short 26624 + .short 2048 + .short 2048 + .short 0 + .short 0 + .short 0 + .short -20480 + .short -14336 + .short -32768 + .short -32768 + .short -32768 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -32768 + .short 28672 + .short 2048 + .short -4096 + .short 0 + .short 0 + .short 0 + .short 16384 + .short 16384 + .short -4096 + .short 16384 + .short 16384 + .short 18432 + .short 12288 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short 20480 + .short 20480 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -22528 + .short -22528 + .short 20480 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short 20480 + .short 8192 + .short 20480 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 2048 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -2048 + .short 4096 + .short 8192 + .short 16384 + .short -2048 + .short 0 + .short 0 + .short 0 + .short 6144 + .short 8192 + .short 4096 + .short 24576 + .short 4096 + .short 8192 + .short 6144 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 24576 + .short 4096 + .short 8192 + .short 6144 + .short 8192 + .short 4096 + .short 24576 + .short 0 + .short 0 + .short 0 + .short 18432 + .short -22528 + .short -28672 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 0 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 30720 + .short -24576 + .short -24576 + .short -24576 + .short 30720 + .short 8192 + .short 0 + .short 0 + .short 12288 + .short 18432 + .short 16384 + .short -8192 + .short 16384 + .short 18432 + .short -20480 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short 28672 + .short 20480 + .short 28672 + .short -30720 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short 20480 + .short 8192 + .short -2048 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -32768 + .short -8192 + .short -28672 + .short 18432 + .short 14336 + .short 2048 + .short 28672 + .short 0 + .short 20480 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -22528 + .short -14336 + .short -22528 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 14336 + .short 18432 + .short 22528 + .short 10240 + .short 0 + .short 30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 9216 + .short 18432 + .short -28672 + .short 18432 + .short 9216 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 30720 + .short 2048 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -6144 + .short -14336 + .short -14336 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short -2048 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 8192 + .short -2048 + .short 8192 + .short 8192 + .short -2048 + .short 0 + .short 0 + .short 12288 + .short 18432 + .short 4096 + .short 8192 + .short 30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short 2048 + .short 12288 + .short 2048 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -14336 + .short -20480 + .short -32768 + .short 0 + .short 0 + .short 30720 + .short -6144 + .short -6144 + .short 26624 + .short 10240 + .short 10240 + .short 10240 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 8192 + .short 24576 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 12288 + .short 18432 + .short 18432 + .short 12288 + .short 0 + .short 30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -28672 + .short 18432 + .short 9216 + .short 18432 + .short -28672 + .short 0 + .short 0 + .short 16384 + .short -16384 + .short 16384 + .short 16384 + .short -7168 + .short 3072 + .short 5120 + .short 15360 + .short 1024 + .short 0 + .short 16384 + .short -16384 + .short 16384 + .short 16384 + .short -6144 + .short 5120 + .short 1024 + .short 2048 + .short 7168 + .short 0 + .short -16384 + .short 8192 + .short 16384 + .short 8192 + .short -14336 + .short 6144 + .short 10240 + .short 30720 + .short 2048 + .short 0 + .short 0 + .short 8192 + .short 0 + .short 8192 + .short 8192 + .short 16384 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 28672 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 28672 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 28672 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 18432 + .short -20480 + .short 28672 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 20480 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 28672 + .short -30720 + .short -30720 + .short -2048 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 15360 + .short 20480 + .short -28672 + .short -25600 + .short -4096 + .short -28672 + .short -25600 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -32768 + .short -32768 + .short -32768 + .short -30720 + .short 28672 + .short 8192 + .short 16384 + .short 16384 + .short -2048 + .short -32768 + .short -32768 + .short -4096 + .short -32768 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 4096 + .short -2048 + .short -32768 + .short -32768 + .short -4096 + .short -32768 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 8192 + .short -2048 + .short -32768 + .short -32768 + .short -4096 + .short -32768 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 20480 + .short -2048 + .short -32768 + .short -32768 + .short -4096 + .short -32768 + .short -32768 + .short -2048 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 28672 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 28672 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 28672 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 20480 + .short 0 + .short 28672 + .short 8192 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -4096 + .short 18432 + .short 18432 + .short -6144 + .short 18432 + .short 18432 + .short -4096 + .short 0 + .short 0 + .short 10240 + .short 20480 + .short -30720 + .short -14336 + .short -22528 + .short -26624 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 10240 + .short 20480 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 20480 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short -30720 + .short 20480 + .short 8192 + .short 20480 + .short -30720 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -26624 + .short -26624 + .short -22528 + .short -14336 + .short -14336 + .short 28672 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 20480 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short -30720 + .short -30720 + .short 20480 + .short 8192 + .short 8192 + .short 8192 + .short 0 + .short 0 + .short 0 + .short -32768 + .short -4096 + .short -30720 + .short -4096 + .short -32768 + .short -32768 + .short -32768 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -28672 + .short -24576 + .short -28672 + .short -30720 + .short -20480 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 0 + .short 28672 + .short 2048 + .short 30720 + .short -30720 + .short 30720 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 0 + .short 28672 + .short 2048 + .short 30720 + .short -30720 + .short 30720 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 0 + .short 28672 + .short 2048 + .short 30720 + .short -30720 + .short 30720 + .short 0 + .short 0 + .short 10240 + .short 20480 + .short 0 + .short 28672 + .short 2048 + .short 30720 + .short -30720 + .short 30720 + .short 0 + .short 0 + .short 0 + .short 20480 + .short 0 + .short 28672 + .short 2048 + .short 30720 + .short -30720 + .short 30720 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 8192 + .short 28672 + .short 2048 + .short 30720 + .short -30720 + .short 30720 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 30720 + .short 5120 + .short 31744 + .short -28672 + .short 31744 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 28672 + .short -30720 + .short -32768 + .short -30720 + .short 28672 + .short 8192 + .short 16384 + .short 16384 + .short 8192 + .short 0 + .short 28672 + .short -30720 + .short -2048 + .short -32768 + .short 28672 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 0 + .short 28672 + .short -30720 + .short -2048 + .short -32768 + .short 28672 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 0 + .short 28672 + .short -30720 + .short -2048 + .short -32768 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 20480 + .short 0 + .short 28672 + .short -30720 + .short -2048 + .short -32768 + .short 28672 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 0 + .short 24576 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 8192 + .short 16384 + .short 0 + .short 24576 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 0 + .short 24576 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 20480 + .short 0 + .short 24576 + .short 8192 + .short 8192 + .short 8192 + .short 28672 + .short 0 + .short 0 + .short 0 + .short -16384 + .short 12288 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 10240 + .short 20480 + .short 0 + .short -20480 + .short -14336 + .short -30720 + .short -30720 + .short -30720 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 10240 + .short 20480 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 20480 + .short 0 + .short 28672 + .short -30720 + .short -30720 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short 0 + .short 0 + .short 8192 + .short 0 + .short -2048 + .short 0 + .short 8192 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 0 + .short 30720 + .short -26624 + .short -22528 + .short -14336 + .short -4096 + .short 0 + .short 0 + .short 16384 + .short 8192 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 0 + .short 0 + .short 8192 + .short 20480 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 0 + .short 0 + .short 0 + .short 20480 + .short 0 + .short -30720 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 0 + .short 0 + .short 0 + .short 4096 + .short 8192 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 2048 + .short -30720 + .short 28672 + .short 0 + .short 0 + .short -32768 + .short -4096 + .short -30720 + .short -30720 + .short -30720 + .short -4096 + .short -32768 + .short -32768 + .short 0 + .short 20480 + .short 0 + .short -30720 + .short -30720 + .short -26624 + .short 26624 + .short 2048 + .short -30720 + .short 28672 + .align 2 + .type C.627.17651, %object + .size C.627.17651, 8 +C.627.17651: + .short 40 + .short 40 + .short 240 + .short 160 + .align 2 + .type C.626.17650, %object + .size C.626.17650, 8 +C.626.17650: + .short 0 + .short 0 + .short 240 + .short 160 + .global affine_reference_x + .bss + .align 2 + .type affine_reference_x, %object + .size affine_reference_x, 8 +affine_reference_x: + .space 8 + .global affine_reference_y + .align 2 + .type affine_reference_y, %object + .size affine_reference_y, 8 +affine_reference_y: + .space 8 + .global hw_screen + .align 2 + .type hw_screen, %object + .size hw_screen, 4 +hw_screen: + .space 4 + .global screen + .align 2 + .type screen, %object + .size screen, 4 +screen: + .space 4 + .global obj_priority_list + .type obj_priority_list, %object + .size obj_priority_list, 102400 +obj_priority_list: + .space 102400 + .global obj_priority_count + .align 2 + .type obj_priority_count, %object + .size obj_priority_count, 3200 +obj_priority_count: + .space 3200 + .global obj_alpha_count + .align 2 + .type obj_alpha_count, %object + .size obj_alpha_count, 640 +obj_alpha_count: + .space 640 + .global layer_order + .align 2 + .type layer_order, %object + .size layer_order, 64 +layer_order: + .space 64 + .global layer_count + .align 2 + .type layer_count, %object + .size layer_count, 4 +layer_count: + .space 4 + .global resolution_width + .align 2 + .type resolution_width, %object + .size resolution_width, 4 +resolution_width: + .space 4 + .global resolution_height + .align 2 + .type resolution_height, %object + .size resolution_height, 4 +resolution_height: + .space 4 + .global frame_to_render + .align 2 + .type frame_to_render, %object + .size frame_to_render, 4 +frame_to_render: + .space 4 + .ident "GCC: (GNU) 4.1.1" |