; Copyright 1996 Acorn Computers Ltd ; ; Licensed under the Apache License, Version 2.0 (the "License"); ; you may not use this file except in compliance with the License. ; You may obtain a copy of the License at ; ; http://www.apache.org/licenses/LICENSE-2.0 ; ; Unless required by applicable law or agreed to in writing, software ; distributed under the License is distributed on an "AS IS" BASIS, ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ; See the License for the specific language governing permissions and ; limitations under the License. ; ; generated by Norcroft RISC OS ARM C vsn 5.05 (Acorn Computers Ltd) [Dec 23 1994] AREA |C$$code|, CODE, READONLY |x$codeseg| EXPORT memcpy memcpy MOV a4,a1 MOV ip,a3 SUB a3,a3,#1 CMP ip,#0 MOVLSS pc,lr |L000014.J4.memcpy| LDRB ip,[a2],#1 STRB ip,[a4],#1 MOV ip,a3 SUB a3,a3,#1 CMP ip,#0 BHI |L000014.J4.memcpy| MOVS pc,lr EXPORT strcpy strcpy MOV a3,a1 LDRB a4,[a2,#0] CMP a4,#&1f MOVLES pc,lr |L000040.J4.strcpy| LDRB a4,[a2],#1 STRB a4,[a3],#1 LDRB a4,[a2,#0] CMP a4,#&1f BGT |L000040.J4.strcpy| MOVS pc,lr EXPORT memset memset MOV a4,a1 MOV ip,a3 SUB a3,a3,#1 CMP ip,#0 MOVLSS pc,lr AND a2,a2,#&ff |L000070.J4.memset| STRB a2,[a4],#1 MOV ip,a3 SUB a3,a3,#1 CMP ip,#0 BHI |L000070.J4.memset| MOVS pc,lr IMPORT exit EXPORT panic_exit panic_exit B exit get_2bytes MOV a4,#&ff LDR a2,[a1,#&38] LDR a3,[a1,#&34] CMP a3,a2 LDRCCB a2,[a3],#1 STRCC a3,[a1,#&34] MOVCS a2,a4 MOV a3,a2 ADD ip,a1,#&34 LDMIA ip,{a2,ip} CMP a2,ip LDRCCB a4,[a2],#1 STRCC a2,[a1,#&34]! ADD a1,a4,a3,LSL #8 MOVS pc,lr skip_variable MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 BL get_2bytes SUB a1,a1,#2 CMP a1,#0 LDMLEDB fp,{v1,fp,sp,pc}^ LDR a2,[v1,#&38] |L0000ec.J4.skip_variable| LDR a3,[v1,#&34] CMP a3,a2 ADDCC a3,a3,#1 STRCC a3,[v1,#&34] SUB a1,a1,#1 CMP a1,#0 BGT |L0000ec.J4.skip_variable| LDMDB fp,{v1,fp,sp,pc}^ get_dht MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 SUB sp,sp,#&114 BL get_2bytes SUB v4,a1,#2 CMP v4,#0 BLE |L000250.J37.get_dht| MOV v6,#0 MOV v5,#&ff |L000138.J4.get_dht| ADD a2,v1,#&34 LDMIA a2,{a1,a2} CMP a1,a2 LDRCCB a2,[a1],#1 STRCC a1,[v1,#&34] MOVCS a2,v5 MOV v2,a2 STRB v6,[sp,#&100] MOV v3,#0 MOV a1,#1 |L000160.J10.get_dht| ADD a3,v1,#&34 LDMIA a3,{a2,a3} CMP a2,a3 MOVCS a2,v5 BCS |L000180.J11.get_dht| LDRB a3,[a2],#1 STR a2,[v1,#&34] MOV a2,a3 |L000180.J11.get_dht| ADD a3,sp,#&100 STRB a2,[a3,a1] ADD a2,sp,#&100 LDRB a2,[a2,a1] ADD v3,a2,v3 ADD a1,a1,#1 CMP a1,#&10 BLE |L000160.J10.get_dht| CMP v3,#&100 MOVGT a1,#&b9 ADDGT a1,a1,#&4e00 BLGT exit MOV a1,#0 CMP v3,#0 BLE |L0001ec.J18.get_dht| |L0001bc.J17.get_dht| ADD a3,v1,#&34 LDMIA a3,{a2,a3} CMP a2,a3 MOVCS a2,v5 BCS |L0001dc.J20.get_dht| LDRB a3,[a2],#1 STR a2,[v1,#&34] MOV a2,a3 |L0001dc.J20.get_dht| STRB a2,[sp,a1] ADD a1,a1,#1 CMP a1,v3 BLT |L0001bc.J17.get_dht| |L0001ec.J18.get_dht| ADD a1,v3,#&11 SUB v4,v4,a1 TST v2,#&10 SUBNE v2,v2,#&10 ADD a1,v1,v2,LSL #2 ADDEQ v3,a1,#&64 ADDNE v3,a1,#&74 CMP v2,#0 BLT |L000218.J28.get_dht| CMP v2,#4 BLT |L000224.J27.get_dht| |L000218.J28.get_dht| MOV a1,#&2c8 ADD a1,a1,#&4c00 BL exit |L000224.J27.get_dht| ADD a2,sp,#&100 MOV a3,#&11 LDR a1,[v3,#0] BL memcpy LDR a1,[v3,#0] ADD a1,a1,#&11 MOV a2,sp MOV a3,#&100 BL memcpy CMP v4,#0 BGT |L000138.J4.get_dht| |L000250.J37.get_dht| LDMDB fp,{v1-v6,fp,sp,pc}^ get_dac MOV ip,sp STMDB sp!,{v1-v5,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 BL get_2bytes SUB v4,a1,#2 CMP v4,#0 LDMLEDB fp,{v1-v5,fp,sp,pc}^ MOV v5,#&ff |L000278.J4.get_dac| ADD a2,v1,#&34 LDMIA a2,{a1,a2} CMP a1,a2 LDRCCB a3,[a1],#1 STRCC a1,[v1,#&34] MOVCS a3,v5 MOV v2,a3 LDR a1,[v1,#&34] CMP a1,a2 LDRCCB a2,[a1],#1 STRCC a1,[v1,#&34] MOVCS a2,v5 MOV v3,a2 CMP v2,#0 BLT |L0002bc.J14.get_dac| CMP v2,#&20 BLT |L0002c8.J13.get_dac| |L0002bc.J14.get_dac| MOV a1,#&2e8 ADD a1,a1,#&4c00 BL exit |L0002c8.J13.get_dac| CMP v2,#&10 MOVGE a1,v3 ADDGE a2,v1,v2 STRGEB a1,[a2,#&94] BGE |L000304.J19.get_dac| AND a1,v3,#&f ADD a2,v1,v2 STRB a1,[a2,#&84] MOV a3,v3,ASR #4 AND a3,a3,#&ff STRB a3,[a2,#&94] CMP a1,a3 MOVGT a1,#&ef0 ADDGT a1,a1,#&4000 BLGT exit |L000304.J19.get_dac| SUB v4,v4,#2 CMP v4,#0 BGT |L000278.J4.get_dac| LDMDB fp,{v1-v5,fp,sp,pc}^ get_dqt MOV ip,sp STMDB sp!,{v1-v5,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 BL get_2bytes SUB v2,a1,#2 CMP v2,#0 LDMLEDB fp,{v1-v5,fp,sp,pc}^ MOV v4,#&ff |L000338.J4.get_dqt| ADD a2,v1,#&34 LDMIA a2,{a1,a2} CMP a1,a2 MOVCS a1,v4 BCS |L000358.J7.get_dqt| LDRB a2,[a1],#1 STR a1,[v1,#&34] MOV a1,a2 |L000358.J7.get_dqt| MOV v3,a1,ASR #4 AND v5,a1,#&f CMP v5,#4 MOVGE a1,#&30c ADDGE a1,a1,#&4c00 BLGE exit ADD a1,v1,v5,LSL #2 LDR a4,[a1,#&54]! MOV a1,#0 |L00037c.J12.get_dqt| ADD ip,v1,#&34 LDMIA ip,{a3,ip} CMP a3,ip LDRCCB a2,[a3],#1 STRCC a3,[v1,#&34] MOVCS a2,v4 MOV a2,a2,LSL #16 MOV a2,a2,LSR #16 TEQ v3,#0 BEQ |L0003c4.J16.get_dqt| LDR a3,[v1,#&34] CMP a3,ip LDRCCB ip,[a3],#1 STRCC a3,[v1,#&34] MOVCS ip,v4 ADD a2,ip,a2,LSL #8 MOV a2,a2,LSL #16 MOV a2,a2,LSR #16 |L0003c4.J16.get_dqt| STR a2,[a4,a1,LSL #2] ADD a1,a1,#1 CMP a1,#&40 BLT |L00037c.J12.get_dqt| MOV a1,#0 |L0003d8.J22.get_dqt| ADD a1,a1,#8 CMP a1,#&40 BLT |L0003d8.J22.get_dqt| SUB v2,v2,#&41 TEQ v3,#0 SUBNE v2,v2,#&40 CMP v2,#0 BGT |L000338.J4.get_dqt| LDMDB fp,{v1-v5,fp,sp,pc}^ get_dri MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 BL get_2bytes TEQ a1,#4 MOVNE a1,#&2d ADDNE a1,a1,#&4f00 BLNE exit MOV a1,v1 BL get_2bytes MOV a1,a1,LSL #16 MOV a1,a1,LSR #16 STR a1,[v1,#&bc]! LDMDB fp,{v1,fp,sp,pc}^ get_app0 MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 SUB sp,sp,#&10 BL get_2bytes SUB v2,a1,#2 CMP v2,#&e BLT |L000508.J25.get_app0| MOV a1,#0 MOV a2,#&ff |L000464.J6.get_app0| LDR a3,[v1,#&38] LDR a4,[v1,#&34] CMP a4,a3 LDRCCB a3,[a4],#1 STRCC a4,[v1,#&34] MOVCS a3,a2 STRB a3,[sp,a1] ADD a1,a1,#1 CMP a1,#&e BLT |L000464.J6.get_app0| SUB v2,v2,#&e LDRB a1,[sp,#0] TEQ a1,#&4a LDREQB a1,[sp,#1] TEQEQ a1,#&46 LDREQB a1,[sp,#2] TEQEQ a1,#&49 LDREQB a1,[sp,#3] TEQEQ a1,#&46 LDREQB a1,[sp,#4] TEQEQ a1,#0 BNE |L000508.J25.get_app0| LDRB a1,[sp,#5] TEQ a1,#1 MOVNE a1,#&4d ADDNE a1,a1,#&4f00 BLNE exit LDRB a1,[sp,#7] STR a1,[v1,#&40] LDRB a1,[sp,#9] LDRB a2,[sp,#8] ADD a1,a1,a2,LSL #8 STR a1,[v1,#&44] LDRB a2,[sp,#&b] LDRB a1,[sp,#&a] ADD a1,a2,a1,LSL #8 STR a1,[v1,#&48] LDR a1,[v1,#&1c] TEQ a1,#0 MOVEQ a1,#3 STREQ a1,[v1,#&1c] |L000508.J25.get_app0| MOV a1,v2 SUB v2,v2,#1 CMP a1,#0 BLE |L00053c.J37.get_app0| LDR a2,[v1,#&38] |L00051c.J26.get_app0| LDR a1,[v1,#&34] CMP a1,a2 ADDCC a1,a1,#1 STRCC a1,[v1,#&34] MOV a1,v2 SUB v2,v2,#1 CMP a1,#0 BGT |L00051c.J26.get_app0| |L00053c.J37.get_app0| LDMDB fp,{v1,v2,fp,sp,pc}^ get_sof MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 BL get_2bytes MOV v3,a1 MOV v2,#&ff ADD a2,v1,#&34 LDMIA a2,{a1,a2} CMP a1,a2 LDRCCB a2,[a1],#1 STRCC a1,[v1,#&34] MOVCS a2,v2 STR a2,[v1,#&3c] MOV a1,v1 BL get_2bytes STR a1,[v1,#&18] MOV a1,v1 BL get_2bytes STR a1,[v1,#&14] MOV a2,a1 ADD a3,v1,#&34 LDMIA a3,{a1,a3} CMP a1,a3 MOVCS a1,v2 BCS |L0005b4.J7.get_sof| LDRB a3,[a1],#1 STR a1,[v1,#&34] MOV a1,a3 |L0005b4.J7.get_sof| STR a1,[v1,#&4c] LDR a3,[v1,#&18] CMP a3,#0 CMPGT a2,#0 CMPGT a1,#0 MOVLE a1,#&82 ADDLE a1,a1,#&4f00 BLLE exit LDR a1,[v1,#&3c] TEQ a1,#8 MOVNE a1,#&86 ADDNE a1,a1,#&4f00 BLNE exit LDR a1,[v1,#&4c] ADD a1,a1,a1,LSL #1 ADD a1,a1,#8 TEQ a1,v3 MOVNE a1,#&92 ADDNE a1,a1,#&4f00 BLNE exit LDR a1,[v1,#&4c] CMP a1,#3 MOVGT a1,#&96 ADDGT a1,a1,#&4f00 BLGT exit MOV a1,#0 LDR a2,[v1,#&4c] CMP a2,#0 LDMLEDB fp,{v1-v3,fp,sp,pc}^ MOV a2,#&f |L00062c.J21.get_sof| RSB a4,a1,a1,LSL #3 LDR a3,[v1,#&50] ADD a3,a3,a4,LSL #3 STR a1,[a3,#4] ADD ip,v1,#&34 LDMIA ip,{a4,ip} CMP a4,ip LDRCCB ip,[a4],#1 STRCC a4,[v1,#&34] MOVCS ip,v2 STR ip,[a3,#0] ADD ip,v1,#&34 LDMIA ip,{a4,ip} CMP a4,ip MOVCS a4,v2 BCS |L00067c.J27.get_sof| MOV ip,a4 LDRB a4,[a4,#0] ADD ip,ip,#1 STR ip,[v1,#&34] |L00067c.J27.get_sof| AND ip,a2,a4,ASR #4 AND a4,a4,#&f STR a4,[a3,#&c] STR ip,[a3,#8] ADD ip,v1,#&34 LDMIA ip,{a4,ip} CMP a4,ip LDRCCB ip,[a4],#1 STRCC a4,[v1,#&34] MOVCS ip,v2 ADD a1,a1,#1 MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 STR ip,[a3,#&10]! LDR a3,[v1,#&4c] CMP a1,a3 BLT |L00062c.J21.get_sof| LDMDB fp,{v1-v3,fp,sp,pc}^ get_sos MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 BL get_2bytes MOV v4,#&ff ADD a3,v1,#&34 LDMIA a3,{a2,a3} CMP a2,a3 LDRCCB a3,[a2],#1 STRCC a2,[v1,#&34] MOVCS a3,v4 MOV v3,a3 SUB v2,a1,#3 MOV a1,#3 STR a3,[v1,#&c8] ADD a1,a1,a3,LSL #1 TEQ a1,v2 BNE |L000720.J8.get_sos| CMP v3,#1 BLT |L000720.J8.get_sos| CMP v3,#4 BLE |L00072c.J7.get_sos| |L000720.J8.get_sos| MOV a1,#&3bc ADD a1,a1,#&4c00 BL exit |L00072c.J7.get_sos| MOV v5,#0 CMP v3,#0 BLE |L0007e4.J13.get_sos| |L000738.J12.get_sos| ADD a2,v1,#&34 LDMIA a2,{a1,a2} CMP a1,a2 LDRCCB a3,[a1],#1 STRCC a1,[v1,#&34] MOVCS a3,#&ff LDR a1,[v1,#&34] CMP a1,a2 LDRCCB a2,[a1],#1 STRCC a1,[v1,#&34] MOVCS a2,#&ff MOV v6,a2 SUB v2,v2,#2 MOV v4,#0 LDR a1,[v1,#&4c] CMP a1,#0 BLE |L0007a0.J22.get_sos| LDR a2,[v1,#&50] |L000780.J21.get_sos| RSB a4,v4,v4,LSL #3 ADD a4,a2,a4,LSL #3 LDR a4,[a4,#0] TEQ a4,a3 BEQ |L0007a0.J22.get_sos| ADD v4,v4,#1 CMP v4,a1 BLT |L000780.J21.get_sos| |L0007a0.J22.get_sos| CMP v4,a1 MOVGE a1,#&ca ADDGE a1,a1,#&4f00 BLGE exit RSB a1,v4,v4,LSL #3 LDR a2,[v1,#&50] ADD a1,a2,a1,LSL #3 ADD a2,v1,v5,LSL #2 STR a1,[a2,#&cc]! MOV a2,#&f AND a2,a2,v6,ASR #4 STR a2,[a1,#&14] AND a2,v6,#&f ADD v5,v5,#1 CMP v5,v3 STR a2,[a1,#&18]! BLT |L000738.J12.get_sos| |L0007e4.J13.get_sos| CMP v2,#0 LDMLEDB fp,{v1-v6,fp,sp,pc}^ LDR a1,[v1,#&38] |L0007f0.J30.get_sos| LDR a2,[v1,#&34] CMP a2,a1 ADDCC a2,a2,#1 STRCC a2,[v1,#&34] SUB v2,v2,#1 CMP v2,#0 BGT |L0007f0.J30.get_sos| LDMDB fp,{v1-v6,fp,sp,pc}^ get_soi STMDB sp!,{lr} MOV a2,#0 MOV ip,#0 MOV a4,#1 MOV lr,#5 |L000824.J4.get_soi| ADD a3,a1,a2 STRB ip,[a3,#&84] STRB a4,[a3,#&94] STRB lr,[a3,#&a4] ADD a2,a2,#1 CMP a2,#&10 BLT |L000824.J4.get_soi| STR ip,[a1,#&bc] STR a4,[a1,#&44] STR ip,[a1,#&40] STR a4,[a1,#&48]! STR ip,[a1,#&70]! LDMIA sp!,{pc}^ next_marker MOV a3,#&ff LDR a2,[a1,#&38] |L000860.J5.next_marker| LDR ip,[a1,#&34] CMP ip,a2 LDRCCB a4,[ip],#1 STRCC ip,[a1,#&34] MOVCS a4,a3 TEQ a4,#&ff BNE |L000860.J5.next_marker| |L00087c.J10.next_marker| LDR ip,[a1,#&34] CMP ip,a2 LDRCCB a4,[ip],#1 STRCC ip,[a1,#&34] MOVCS a4,a3 TEQ a4,#&ff BEQ |L00087c.J10.next_marker| TEQ a4,#0 BEQ |L000860.J5.next_marker| MOV a1,a4 MOVS pc,lr process_tables MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 |L0008b8.J4.process_tables| MOV a1,v1 BL next_marker MOV a2,a1 CMP a1,#&ce LDMEQDB fp,{v1,fp,sp,pc}^ BGT |L000950.J39.process_tables| CMP a1,#&c6 LDMEQDB fp,{v1,fp,sp,pc}^ BGT |L000924.J42.process_tables| CMP a1,#&c2 LDMEQDB fp,{v1,fp,sp,pc}^ BGT |L000900.J45.process_tables| TEQ a1,#1 BEQ |L0008b8.J4.process_tables| TEQ a1,#&c0 TEQNE a1,#&c1 LDMEQDB fp,{v1,fp,sp,pc}^ B |L0009d4.J7.process_tables| |L000900.J45.process_tables| TEQ a1,#&c3 LDMEQDB fp,{v1,fp,sp,pc}^ TEQ a1,#&c4 MOVEQ a1,v1 BLEQ get_dht BEQ |L0008b8.J4.process_tables| TEQ a1,#&c5 LDMEQDB fp,{v1,fp,sp,pc}^ B |L0009d4.J7.process_tables| |L000924.J42.process_tables| SUB a3,a1,#&c7 CMP a3,#6 ADDLS pc,pc,a3,LSL #2 B |L0009d4.J7.process_tables| LDMDB fp,{v1,fp,sp,pc}^ LDMDB fp,{v1,fp,sp,pc}^ LDMDB fp,{v1,fp,sp,pc}^ LDMDB fp,{v1,fp,sp,pc}^ LDMDB fp,{v1,fp,sp,pc}^ B |L0009b0.J25.process_tables| LDMDB fp,{v1,fp,sp,pc}^ |L000950.J39.process_tables| SUB a3,a1,#&cf CMP a3,#&11 ADDLS pc,pc,a3,LSL #2 B |L0009d4.J7.process_tables| LDMDB fp,{v1,fp,sp,pc}^ B |L0008b8.J4.process_tables| B |L0008b8.J4.process_tables| B |L0008b8.J4.process_tables| B |L0008b8.J4.process_tables| B |L0008b8.J4.process_tables| B |L0008b8.J4.process_tables| B |L0008b8.J4.process_tables| B |L0008b8.J4.process_tables| LDMDB fp,{v1,fp,sp,pc}^ LDMDB fp,{v1,fp,sp,pc}^ LDMDB fp,{v1,fp,sp,pc}^ B |L0009bc.J10.process_tables| B |L0009d4.J7.process_tables| B |L0009c8.J9.process_tables| B |L0009d4.J7.process_tables| B |L0009d4.J7.process_tables| MOV a1,v1 BL get_app0 B |L0008b8.J4.process_tables| |L0009b0.J25.process_tables| MOV a1,v1 BL get_dac B |L0008b8.J4.process_tables| |L0009bc.J10.process_tables| MOV a1,v1 BL get_dqt B |L0008b8.J4.process_tables| |L0009c8.J9.process_tables| MOV a1,v1 BL get_dri B |L0008b8.J4.process_tables| |L0009d4.J7.process_tables| MOV a1,v1 BL skip_variable B |L0008b8.J4.process_tables| read_file_header MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 LDR a3,[a1,#&34] LDR a1,[a1,#&38] MOV a2,#&ff CMP a3,a1 LDRCCB a1,[a3],#1 STRCC a3,[v1,#&34] MOVCS a1,a2 TEQ a1,#&ff BNE |L000a30.J5.read_file_header| ADD a3,v1,#&34 LDMIA a3,{a1,a3} CMP a1,a3 LDRCCB a2,[a1],#1 STRCC a1,[v1,#&34] TEQ a2,#&d8 BEQ |L000a3c.J4.read_file_header| |L000a30.J5.read_file_header| MOV a1,#&67 ADD a1,a1,#&5000 BL exit |L000a3c.J4.read_file_header| MOV a1,v1 BL get_soi MOV a1,v1 BL process_tables MOV v3,#0 MOV v2,#1 TEQ a1,#&c0 TEQNE a1,#&c1 BEQ |L000a7c.J17.read_file_header| TEQ a1,#&c9 BNE |L000a90.J15.read_file_header| MOV a2,a1 MOV a1,v1 BL get_sof STR v2,[v1,#&b4] B |L000a9c.J14.read_file_header| |L000a7c.J17.read_file_header| MOV a2,a1 MOV a1,v1 BL get_sof STR v3,[v1,#&b4] B |L000a9c.J14.read_file_header| |L000a90.J15.read_file_header| MOV a1,#&7b ADD a1,a1,#&5000 BL exit |L000a9c.J14.read_file_header| LDR a1,[v1,#&4c] TEQ a1,#1 STREQ v2,[v1,#&1c]! LDMEQDB fp,{v1-v3,fp,sp,pc}^ TEQ a1,#3 BEQ |L000ac8.J25.read_file_header| TEQ a1,#4 STRNE v3,[v1,#&1c]! LDMNEDB fp,{v1-v3,fp,sp,pc}^ MOV a1,#5 B |L000b28.J44.read_file_header| |L000ac8.J25.read_file_header| LDR a1,[v1,#&1c] TEQ a1,#0 LDMNEDB fp,{v1-v3,fp,sp,pc}^ LDR a2,[v1,#&50] LDR a1,[a2,#0] MOV a4,a1,LSL #16 MOV a4,a4,ASR #16 LDR a1,[a2,#&38] MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 LDR a2,[a2,#&70] MOV a2,a2,LSL #16 MOV a2,a2,ASR #16 MOV a3,#3 CMP a4,#1 BNE |L000b14.J32.read_file_header| TEQ a1,#2 BEQ |L000b30.J37.read_file_header| B |L000b18.J38.read_file_header| |L000b14.J32.read_file_header| BNE |L000b30.J37.read_file_header| |L000b18.J38.read_file_header| TEQ a1,#4 TEQEQ a2,#5 BNE |L000b30.J37.read_file_header| MOV a1,#4 |L000b28.J44.read_file_header| STR a1,[v1,#&1c]! LDMDB fp,{v1-v3,fp,sp,pc}^ |L000b30.J37.read_file_header| STR a3,[v1,#&1c]! LDMDB fp,{v1-v3,fp,sp,pc}^ read_scan_header MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 BL process_tables TEQ a1,#&d9 BEQ |L000b74.J4.read_scan_header| TEQ a1,#&da MOVEQ a1,v1 BLEQ get_sos MOVEQ a1,#1 LDMEQDB fp,{v1,fp,sp,pc}^ MOV a1,#&be ADD a1,a1,#&5000 BL exit |L000b74.J4.read_scan_header| MOV a1,#0 LDMDB fp,{v1,fp,sp,pc}^ ;MPORT huff_DECODE_buildshortcut IMPORT exit_c fix_huff_tbl MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 SUB sp,sp,#&308 MOV a2,#0 MOV a3,#1 |L000b9c.J4.fix_huff_tbl| MOV a1,#1 ADD lr,v1,a3 LDRB a4,[lr,#0] CMP a4,#1 BLT |L000bd4.J6.fix_huff_tbl| AND a4,a3,#&ff |L000bb4.J5.fix_huff_tbl| MOV v3,a2 ADD a2,a2,#1 ADD ip,sp,#&204 STRB a4,[ip,v3] ADD a1,a1,#1 LDRB v3,[lr,#0] CMP v3,a1 BGE |L000bb4.J5.fix_huff_tbl| |L000bd4.J6.fix_huff_tbl| ADD a3,a3,#1 CMP a3,#&10 BLE |L000b9c.J4.fix_huff_tbl| MOV v6,#0 ADD a1,sp,#&204 STRB v6,[a1,a2] MOV a1,#0 LDRB a3,[sp,#&204] MOV a2,#0 LDRB a4,[sp,#&204] TEQ a4,#0 BEQ |L000c68.J11.fix_huff_tbl| |L000c04.J10.fix_huff_tbl| ADD a4,sp,#&204 LDRB a4,[a4,a2] TEQ a4,a3 BNE |L000c48.J14.fix_huff_tbl| |L000c14.J13.fix_huff_tbl| MOV a4,a2 ADD a2,a2,#1 ADD a4,sp,a4,LSL #1 STRB a1,[a4,#0] MOV ip,a1,ASR #8 STRB ip,[a4,#1] ADD a1,a1,#1 MOV a1,a1,LSL #16 MOV a1,a1,LSR #16 ADD a4,sp,#&204 LDRB a4,[a4,a2] TEQ a4,a3 BEQ |L000c14.J13.fix_huff_tbl| |L000c48.J14.fix_huff_tbl| MOV a1,a1,LSL #1 MOV a1,a1,LSL #16 MOV a1,a1,LSR #16 ADD a3,a3,#1 ADD a4,sp,#&204 LDRB a4,[a4,a2] TEQ a4,#0 BNE |L000c04.J10.fix_huff_tbl| |L000c68.J11.fix_huff_tbl| MOV a2,#0 MOV a3,#1 MVN a1,#0 |L000c74.J18.fix_huff_tbl| ADD v3,v1,a3 LDRB a4,[v3,#0] TEQ a4,#0 BEQ |L000cc8.J19.fix_huff_tbl| ADD lr,v1,a3,LSL #2 STR a2,[lr,#&15c] ADD a4,lr,#&15c LDR v4,[sp,a2,LSL #1] MOV v4,v4,LSL #16 MOV v4,v4,LSR #16 LDR ip,[a4,#0] SUB v4,ip,v4 STR v4,[a4,#0] LDRB a4,[v3,#0] ADD a2,a4,a2 ADD a4,sp,a2,LSL #1 LDR a4,[a4,#-2] MOV a4,a4,LSL #16 MOV a4,a4,LSR #16 STR a4,[lr,#&114]! B |L000cd0.J21.fix_huff_tbl| |L000cc8.J19.fix_huff_tbl| ADD a4,v1,a3,LSL #2 STR a1,[a4,#&114]! |L000cd0.J21.fix_huff_tbl| ADD a3,a3,#1 CMP a3,#&10 BLE |L000c74.J18.fix_huff_tbl| MVN a2,#&ff00000 ADD a2,a2,#&10000000 MOV v3,#0 MOV v5,#&20 STR a2,[v1,#&158] |L000cf0.J23.fix_huff_tbl| MOV a1,v3,LSL #24 MOV a2,v1 ADD v2,v2,#&104 STMIA v2,{a1,v5} SUB v2,v2,#&104 MOV a1,v2 BL huff_DECODE_buildshortcut MOV v4,a1 LDR a1,[v2,#&108] CMP a1,#&18 MVNLT a1,#0 BLT |L000d3c.J39.fix_huff_tbl| CMP v4,#0 MOVLT a2,#4 MOVLT a1,#&69 BLLT exit_c LDR a1,[v2,#&108] SUB a1,v5,a1 ORR a1,v4,a1,LSL #24 |L000d3c.J39.fix_huff_tbl| ADD a2,v1,v3,LSL #2 ADD v3,v3,#1 CMP v3,#&100 STR a1,[a2,#&1a0]! BLT |L000cf0.J23.fix_huff_tbl| STR v6,[v2,#&108] STR v6,[v2,#&104]! LDMDB fp,{v1-v6,fp,sp,pc}^ get_bits MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV v2,a2 LDR a1,[a1,#&108] CMP a2,a1 BLE |L000df0.J5.get_bits| MOV v3,#&ff |L000d80.J4.get_bits| ADD a2,v1,#&34 LDMIA a2,{a1,a2} CMP a1,a2 MOVCS a1,v3 BCS |L000da0.J7.get_bits| LDRB a3,[a1],#1 STR a1,[v1,#&34] MOV a1,a3 |L000da0.J7.get_bits| LDR a3,[v1,#&104] ORR a3,a1,a3,LSL #8 STR a3,[v1,#&104] LDR a3,[v1,#&108] ADD a3,a3,#8 TEQ a1,#&ff STR a3,[v1,#&108] BNE |L000de4.J10.get_bits| LDR a1,[v1,#&34] CMP a1,a2 LDRCCB a2,[a1],#1 STRCC a1,[v1,#&34] MOVCS a2,v3 TEQ a2,#0 MOVNE a1,#&394 ADDNE a1,a1,#&2400 BLNE exit |L000de4.J10.get_bits| LDR a1,[v1,#&108] CMP v2,a1 BGT |L000d80.J4.get_bits| |L000df0.J5.get_bits| LDR a1,[v1,#&108] SUB a1,a1,v2 STR a1,[v1,#&108] LDR a2,[v1,#&104]! MOV a1,a2,ASR a1 MOV a2,#1 MOV a2,a2,LSL v2 SUB a2,a2,#1 AND a1,a1,a2 LDMDB fp,{v1-v3,fp,sp,pc}^ huff_DECODE_buildshortcut MOV ip,sp STMDB sp!,{v1-v4,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV v2,a2 LDR a2,[a1,#&108] TEQ a2,#0 BEQ |L000e50.J5.huff_DECODE_buildshortcut| SUB a2,a2,#1 STR a2,[v1,#&108] LDR a1,[v1,#&104] MOV a1,a1,ASR a2 AND a1,a1,#1 B |L000e58.J4.huff_DECODE_buildshortcut| |L000e50.J5.huff_DECODE_buildshortcut| MOV a2,#1 BL get_bits |L000e58.J4.huff_DECODE_buildshortcut| MOV v4,a1 MOV v3,#1 B |L000e9c.J8.huff_DECODE_buildshortcut| |L000e64.J7.huff_DECODE_buildshortcut| LDR a1,[v1,#&108] TEQ a1,#0 BEQ |L000e88.J10.huff_DECODE_buildshortcut| SUB a1,a1,#1 STR a1,[v1,#&108] LDR a2,[v1,#&104] MOV a1,a2,ASR a1 AND a1,a1,#1 B |L000e94.J9.huff_DECODE_buildshortcut| |L000e88.J10.huff_DECODE_buildshortcut| MOV a1,v1 MOV a2,#1 BL get_bits |L000e94.J9.huff_DECODE_buildshortcut| ADD v4,a1,v4,LSL #1 ADD v3,v3,#1 |L000e9c.J8.huff_DECODE_buildshortcut| ADD a1,v2,v3,LSL #2 LDR a1,[a1,#&114] CMP a1,v4 BGE |L000eb4.J12.huff_DECODE_buildshortcut| CMP v3,#8 BLE |L000e64.J7.huff_DECODE_buildshortcut| |L000eb4.J12.huff_DECODE_buildshortcut| CMP v3,#8 MVNGT a1,#0 LDMGTDB fp,{v1-v4,fp,sp,pc}^ ADD a1,v2,v3,LSL #2 LDR a1,[a1,#&15c] ADD a1,a1,v4 ADD a1,v2,a1 LDRB a1,[a1,#&11] LDMDB fp,{v1-v4,fp,sp,pc}^ huff_decoder_init MOV a2,#0 STR a2,[a1,#&108]! MOVS pc,lr mono_convert_block STMDB sp!,{v1,lr} MOV ip,#0 |L000eec.J4.mono_convert_block| MOV a4,#0 |L000ef0.J5.mono_convert_block| ADD lr,ip,a4,LSL #3 LDR lr,[a1,lr,LSL #2] ADD lr,lr,#&40000 MOV lr,lr,ASR #19 ADDS lr,lr,#&80 MOVMI lr,#0 BMI |L000f14.J8.mono_convert_block| CMP lr,#&ff MOVGT lr,#&ff |L000f14.J8.mono_convert_block| ORR v1,lr,lr,LSL #8 ORR lr,v1,lr,LSL #16 STR lr,[a2,a4,LSL #2] ADD a4,a4,#1 CMP a4,#8 BLT |L000ef0.J5.mono_convert_block| ADD a2,a2,a3,LSL #2 ADD ip,ip,#1 CMP ip,#8 BLT |L000eec.J4.mono_convert_block| LDMIA sp!,{v1,pc}^ mono_convert_pixel ADDS a1,a2,#&80 MOVMI a1,#0 BMI |L000f54.J6.mono_convert_pixel| CMP a1,#&ff MOVGT a1,#&ff |L000f54.J6.mono_convert_pixel| ORR a2,a1,a1,LSL #8 ORR a1,a2,a1,LSL #16 MOVS pc,lr colour_convert_block MOV ip,sp STMDB sp!,{a1-a3,v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 SUB sp,sp,#&14 MOV v5,a1 ADD a1,a1,#&100 STR a1,[sp,#&10] ADD a1,a1,#&100 STR a1,[sp,#&c] ADD a1,a1,#&100 STR a1,[sp,#8] ADD a1,a1,#&100 STR a1,[sp,#4] ADD a1,a1,#&100 MOV a3,#0 STR a1,[sp,#0] |L000fa0.J4.colour_convert_block| MOV a1,#0 AND v3,a3,#7 MOV v2,a3,ASR #1 |L000fac.J5.colour_convert_block| AND a4,a1,#7 ADD ip,v3,a4,LSL #3 CMP a3,#8 BGE |L000fcc.J7.colour_convert_block| CMP a1,#8 LDRGE a4,[sp,#&10] MOVLT a4,v5 B |L000fd8.J6.colour_convert_block| |L000fcc.J7.colour_convert_block| CMP a1,#8 LDRGE a4,[sp,#8] LDRLT a4,[sp,#&c] |L000fd8.J6.colour_convert_block| LDR a4,[a4,ip,LSL #2] MOV ip,a1,ASR #1 ADD ip,v2,ip,LSL #3 LDR lr,[sp,#4] LDR lr,[lr,ip,LSL #2] LDR v1,[sp,#0] LDR ip,[v1,ip,LSL #2] ADD a4,a4,#&40000 MOV a4,a4,ASR #19 ADD a4,a4,#&80 ADD lr,lr,#&40000 MOV lr,lr,ASR #19 ADD ip,ip,#&40000 MOV v1,ip,ASR #19 ADD v4,v1,v1,LSL #5 RSB v4,v4,v4,LSL #3 ADD v4,v4,v1,LSL #7 ADD ip,lr,lr,LSL #1 ADD ip,ip,lr,LSL #3 MOV ip,ip,LSL #3 RSB v6,ip,#0 ADD ip,v1,v1,LSL #1 RSB ip,ip,v1,LSL #6 ADD ip,ip,ip,LSL #1 SUB v1,v6,ip ADD ip,lr,lr,LSL #5 RSB ip,ip,lr,LSL #8 ADD ip,ip,lr,LSL #2 MOV ip,ip,LSL #1 ADD lr,v4,#&80 ADDS lr,a4,lr,ASR #8 MOVMI lr,#0 BMI |L001064.J15.colour_convert_block| CMP lr,#&ff MOVGT lr,#&ff |L001064.J15.colour_convert_block| ADD v1,v1,#&80 ADDS v1,a4,v1,ASR #8 MOVMI v1,#0 BMI |L00107c.J19.colour_convert_block| CMP v1,#&ff MOVGT v1,#&ff |L00107c.J19.colour_convert_block| ADD ip,ip,#&80 ADDS a4,a4,ip,ASR #8 MOVMI a4,#0 BMI |L001094.J23.colour_convert_block| CMP a4,#&ff MOVGT a4,#&ff |L001094.J23.colour_convert_block| ORR ip,lr,v1,LSL #8 ORR a4,ip,a4,LSL #16 STR a4,[a2,a1,LSL #2] ADD a1,a1,#1 CMP a1,#&10 BLT |L000fac.J5.colour_convert_block| LDR a1,[fp,#-&28] ADD a2,a2,a1,LSL #2 ADD a3,a3,#1 CMP a3,#&10 BLT |L000fa0.J4.colour_convert_block| LDMDB fp,{v1-v6,fp,sp,pc}^ colour_convert_unusual_block MOV ip,sp STMDB sp!,{a1-a4} STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#&14 SUB sp,sp,#&20 LDR v3,[fp,#&14] STR a1,[sp,#&14] ADD a1,a1,#&100 STR a1,[sp,#&10] ADD a1,a1,#&100 STR a1,[sp,#&c] ADD a1,a1,#&100 STR a1,[sp,#8] ADD a1,a1,#&100 STR a1,[sp,#4] ADD a1,a1,#&100 MOV a3,#0 CMP a3,v3,LSL #3 STR a1,[sp,#0] BGE |L001254.J35.colour_convert_unusual_block| SUB a1,a4,#1 STR a1,[sp,#&1c] |L00111c.J4.colour_convert_unusual_block| MOV a1,#0 CMP a1,a4,LSL #3 BGE |L001240.J8.colour_convert_unusual_block| AND v4,a3,#7 SUB lr,v3,#1 MOV ip,a3,ASR lr STR ip,[sp,#&18] |L001138.J7.colour_convert_unusual_block| AND ip,a1,#7 ADD lr,v4,ip,LSL #3 CMP a3,#8 BGE |L001158.J11.colour_convert_unusual_block| CMP a1,#8 LDRGE ip,[sp,#&10] LDRLT ip,[sp,#&14] B |L001164.J10.colour_convert_unusual_block| |L001158.J11.colour_convert_unusual_block| CMP a1,#8 LDRGE ip,[sp,#8] LDRLT ip,[sp,#&c] |L001164.J10.colour_convert_unusual_block| LDR lr,[ip,lr,LSL #2] LDR v1,[sp,#&1c] MOV v1,a1,ASR v1 LDR ip,[sp,#&18] ADD ip,ip,v1,LSL #3 LDR v1,[sp,#4] LDR v1,[v1,ip,LSL #2] LDR v2,[sp,#0] LDR ip,[v2,ip,LSL #2] ADD lr,lr,#&40000 MOV lr,lr,ASR #19 ADD lr,lr,#&80 ADD v1,v1,#&40000 MOV v1,v1,ASR #19 ADD ip,ip,#&40000 MOV v2,ip,ASR #19 ADD v5,v2,v2,LSL #5 RSB v5,v5,v5,LSL #3 ADD v5,v5,v2,LSL #7 ADD ip,v1,v1,LSL #1 ADD ip,ip,v1,LSL #3 MOV ip,ip,LSL #3 RSB v6,ip,#0 ADD ip,v2,v2,LSL #1 RSB ip,ip,v2,LSL #6 ADD ip,ip,ip,LSL #1 SUB v2,v6,ip ADD ip,v1,v1,LSL #5 RSB ip,ip,v1,LSL #8 ADD ip,ip,v1,LSL #2 MOV ip,ip,LSL #1 ADD v1,v5,#&80 ADDS v1,lr,v1,ASR #8 MOVMI v1,#0 BMI |L0011f8.J19.colour_convert_unusual_block| CMP v1,#&ff MOVGT v1,#&ff |L0011f8.J19.colour_convert_unusual_block| ADD v2,v2,#&80 ADDS v2,lr,v2,ASR #8 MOVMI v2,#0 BMI |L001210.J23.colour_convert_unusual_block| CMP v2,#&ff MOVGT v2,#&ff |L001210.J23.colour_convert_unusual_block| ADD ip,ip,#&80 ADDS ip,lr,ip,ASR #8 MOVMI ip,#0 BMI |L001228.J27.colour_convert_unusual_block| CMP ip,#&ff MOVGT ip,#&ff |L001228.J27.colour_convert_unusual_block| ORR lr,v1,v2,LSL #8 ORR ip,lr,ip,LSL #16 STR ip,[a2,a1,LSL #2] ADD a1,a1,#1 CMP a1,a4,LSL #3 BLT |L001138.J7.colour_convert_unusual_block| |L001240.J8.colour_convert_unusual_block| LDR a1,[fp,#&c] ADD a2,a2,a1,LSL #2 ADD a3,a3,#1 CMP a3,v3,LSL #3 BLT |L00111c.J4.colour_convert_unusual_block| |L001254.J35.colour_convert_unusual_block| LDMDB fp,{v1-v6,fp,sp,pc}^ colour_convert_pixels STMDB sp!,{v1-v3,lr} ADD a2,a2,#4 MOV a2,a2,ASR #3 ADD a3,a3,#4 MOV a3,a3,ASR #3 ADD a4,a3,a3,LSL #5 RSB a4,a4,a4,LSL #3 ADD a4,a4,a3,LSL #7 ADD ip,a2,a2,LSL #1 ADD ip,ip,a2,LSL #3 MOV ip,ip,LSL #3 RSB lr,ip,#0 ADD ip,a3,a3,LSL #1 RSB a3,ip,a3,LSL #6 ADD a3,a3,a3,LSL #1 SUB a3,lr,a3 ADD ip,a2,a2,LSL #5 RSB ip,ip,a2,LSL #8 ADD a2,ip,a2,LSL #2 MOV a2,a2,LSL #1 ADD a4,a4,#&80 MOV v2,a4,ASR #8 ADD a3,a3,#&80 MOV v1,a3,ASR #8 ADD a2,a2,#&80 MOV lr,a2,ASR #8 MOV a4,#0 MOV v3,#&80 |L0012c8.J4.colour_convert_pixels| LDR a2,[a1,a4,LSL #2] ADD a2,a2,#4 ADD ip,v3,a2,ASR #3 ADDS a3,v2,ip MOVMI a3,#0 BMI |L0012e8.J7.colour_convert_pixels| CMP a3,#&ff MOVGT a3,#&ff |L0012e8.J7.colour_convert_pixels| ADDS a2,v1,ip MOVMI a2,#0 BMI |L0012fc.J11.colour_convert_pixels| CMP a2,#&ff MOVGT a2,#&ff |L0012fc.J11.colour_convert_pixels| ADDS ip,lr,ip MOVMI ip,#0 BMI |L001310.J15.colour_convert_pixels| CMP ip,#&ff MOVGT ip,#&ff |L001310.J15.colour_convert_pixels| ORR a2,a3,a2,LSL #8 ORR a2,a2,ip,LSL #16 STR a2,[a1,a4,LSL #2] ADD a4,a4,#1 CMP a4,#4 BLT |L0012c8.J4.colour_convert_pixels| LDMIA sp!,{v1-v3,pc}^ EXPORT assembler_panic assembler_panic MOVS pc,lr init_workspace MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV a3,a2 MOV a2,#0 LDR v2,[a1,#&20] LDR v3,[a1,#&10] BL memset STR v2,[v1,#&20] STR v3,[v1,#&10] ADD a1,v1,#&1c ADD a1,a1,#&800 STR a1,[v1,#&50] MOV a1,#0 |L00136c.J4.init_workspace| ADD a2,v1,a1,LSL #8 ADD a2,a2,#&fc ADD a2,a2,#&800 ADD a3,v1,a1,LSL #2 ADD a1,a1,#1 CMP a1,#4 STR a2,[a3,#&54]! BLT |L00136c.J4.init_workspace| MOV a1,#0 |L001390.J6.init_workspace| RSB a2,a1,a1,LSL #4 ADD a2,a2,a2,LSL #1 ADD a3,v1,a2,LSL #5 SUB a4,a3,#&304 ADD a4,a4,#&1000 ADD a2,v1,a1,LSL #2 ADD a3,a3,#&37c ADD a3,a3,#&2000 ADD a1,a1,#1 CMP a1,#4 STR a4,[a2,#&64]! STR a3,[a2,#&10] BLT |L001390.J6.init_workspace| LDMDB fp,{v1-v3,fp,sp,pc}^ save_huff_stream MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV v2,a2 LDR a1,[a1,#&108] CMP a1,#&20 MOVGE a2,#2 MOVGE a1,#&d8 BLGE exit_c LDR a1,[v1,#&108] CMP a1,#0 MOVLT a2,#2 MOVLT a1,#&d9 BLLT exit_c LDR a1,[v1,#&34] LDR a2,[v1,#&30] CMP a2,a1 MOVCS a2,#2 MOVCS a1,#&da BLCS exit_c LDR a1,[v1,#&38] LDR a2,[v1,#&34] CMP a2,a1 MOVCS a2,#2 MOVCS a1,#&db BLCS exit_c ADD a2,v1,#&30 LDMIA a2,{a1,a2} SUB a1,a2,a1 LDR a2,[v1,#&108] ADD a1,a2,a1,LSL #5 STR a1,[v2,#0] LDR a1,[v1,#&104] STR a1,[v2,#4] LDR a1,[v1,#&e4] STRB a1,[v2,#8] MOV a1,a1,ASR #8 STRB a1,[v2,#9] LDR a1,[v1,#&e8] STRB a1,[v2,#&a] MOV a1,a1,ASR #8 STRB a1,[v2,#&b] LDR a1,[v1,#&ec] STRB a1,[v2,#&c] MOV a1,a1,ASR #8 STRB a1,[v2,#&d] LDR a1,[v1,#&c0] STRB a1,[v2,#&10] MOV a1,a1,ASR #8 STRB a1,[v2,#&11] LDR a1,[v1,#&c4]! STRB a1,[v2,#&12] MOV a1,a1,ASR #8 STRB a1,[v2,#&13] LDMDB fp,{v1,v2,fp,sp,pc}^ restore_huff_stream MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 LDR a1,[a2,#4] STR a1,[v1,#&104] LDR a1,[a2,#0] CMP a1,#0 ADDLT a1,a1,#&1f LDR a3,[v1,#&30] ADD a1,a3,a1,ASR #5 STR a1,[v1,#&34] LDR a1,[a2,#0] AND a1,a1,#&1f STR a1,[v1,#&108] LDR a1,[a2,#8] MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 STR a1,[v1,#&e4] LDR a1,[a2,#&a] MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 STR a1,[v1,#&e8] LDR a1,[a2,#&c] MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 STR a1,[v1,#&ec] LDR a1,[a2,#&10] MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 STR a1,[v1,#&c0] LDR a1,[a2,#&12] MOV a1,a1,LSL #16 MOV a1,a1,ASR #16 STR a1,[v1,#&c4] ADD a2,v1,#&30 LDMIA a2,{a1,a2} CMP a1,a2 MOVCS a2,#4 MOVCS a1,#&fa BLCS exit_c ADD v1,v1,#&30 LDMIB v1!,{a1,a2} CMP a1,a2 MOVCS a2,#4 MOVCS a1,#&fb LDMCSDB fp,{v1,fp,sp,lr} BCS exit_c LDMDB fp,{v1,fp,sp,pc}^ process_restart MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 LDR a1,[a1,#&34] LDRB v2,[a1],#1 STR a1,[v1,#&34] LDR a1,[v1,#&108] CMP a1,#7 MOVGT a2,#2 MOVGT a1,#&12 ADDGT a1,a1,#&100 BLGT exit_c TEQ v2,#&ff MOVNE a2,#2 MOVNE a1,#&13 ADDNE a1,a1,#&100 BLNE exit_c LDR a1,[v1,#&34] LDRB a1,[a1,#0] TEQ a1,#&ff BNE |L0015dc.J9.process_restart| |L0015c4.J8.process_restart| LDR a1,[v1,#&34] ADD a1,a1,#1 STR a1,[v1,#&34] LDRB a1,[a1,#0] TEQ a1,#&ff BEQ |L0015c4.J8.process_restart| |L0015dc.J9.process_restart| LDR a1,[v1,#&34] LDRB v2,[a1],#1 STR a1,[v1,#&34] AND a1,v2,#&f8 TEQ a1,#&d0 MOVNE a2,#2 MOVNE a1,#&16 ADDNE a1,a1,#&100 BLNE exit_c AND a2,v2,#7 LDR a1,[v1,#&c4] TEQ a2,a1 MOVNE a2,#2 MOVNE a1,#&17 ADDNE a1,a1,#&100 BLNE exit_c MOV a2,#0 STR a2,[v1,#&108] STR a2,[v1,#&104] LDR a1,[v1,#&bc] STR a1,[v1,#&c0] LDR a1,[v1,#&c4] ADD a1,a1,#1 AND a1,a1,#7 STR a1,[v1,#&c4] MOV a1,#0 LDR a3,[v1,#&c8] CMP a3,#0 LDMLEDB fp,{v1,v2,fp,sp,pc}^ |L001650.J16.process_restart| ADD a3,v1,a1,LSL #2 ADD a1,a1,#1 STR a2,[a3,#&e4]! LDR a3,[v1,#&c8] CMP a1,a3 BLT |L001650.J16.process_restart| LDMDB fp,{v1,v2,fp,sp,pc}^ IMPORT asm_huff_skip_blocks do_huff_skip_blocks MOV ip,sp STMDB sp!,{a1-a4} STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#&14 MOV v1,a1 MOV v2,a2 MOV v3,a3 LDR v4,[fp,#&1c] LDR v5,[fp,#&18] LDR v6,[fp,#&14] LDR a2,[a1,#&bc] TEQ a2,#0 BEQ |L001710.J4.do_huff_skip_blocks| CMP v4,#0 LDMLEDB fp,{v1-v6,fp,sp,pc}^ B |L0016b4.J10.do_huff_skip_blocks| |L0016ac.J6.do_huff_skip_blocks| TEQ a1,#0 BEQ |L0016d0.J9.do_huff_skip_blocks| |L0016b4.J10.do_huff_skip_blocks| LDR a1,[v1,#&c0] TEQ a1,#0 MOVEQ a1,v1 BLEQ process_restart LDR a1,[v1,#&c0] SUB a1,a1,#1 STR a1,[v1,#&c0] |L0016d0.J9.do_huff_skip_blocks| MOV a4,#1 MOV a3,v5 MOV a2,v6 STMDB sp!,{a2-a4} MOV a3,v3 MOV a2,v2 MOV a1,v1 LDR a4,[fp,#&10] BL asm_huff_skip_blocks ADD sp,sp,#&c SUB v4,v4,#1 ADD v2,v2,#&100 CMP v4,#0 LDR a1,[fp,#&20] BGT |L0016ac.J6.do_huff_skip_blocks| LDMDB fp,{v1-v6,fp,sp,pc}^ |L001710.J4.do_huff_skip_blocks| MOV a4,v4 MOV a3,v5 MOV a2,v6 STMDB sp!,{a2-a4} MOV a3,v3 MOV a2,v2 LDR a4,[fp,#&10] BL asm_huff_skip_blocks LDMDB fp,{v1-v6,fp,sp,pc}^ IMPORT asm_huff_decode_blocks do_huff_decode_blocks MOV ip,sp STMDB sp!,{a1-a4} STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#&14 MOV v1,a1 MOV v2,a2 MOV v3,a3 LDR v4,[fp,#&1c] LDR v5,[fp,#&18] LDR v6,[fp,#&14] LDR a2,[a1,#&bc] TEQ a2,#0 BEQ |L0017d8.J4.do_huff_decode_blocks| CMP v4,#0 LDMLEDB fp,{v1-v6,fp,sp,pc}^ B |L00177c.J10.do_huff_decode_blocks| |L001774.J6.do_huff_decode_blocks| TEQ a1,#0 BEQ |L001798.J9.do_huff_decode_blocks| |L00177c.J10.do_huff_decode_blocks| LDR a1,[v1,#&c0] TEQ a1,#0 MOVEQ a1,v1 BLEQ process_restart LDR a1,[v1,#&c0] SUB a1,a1,#1 STR a1,[v1,#&c0] |L001798.J9.do_huff_decode_blocks| MOV a4,#1 MOV a3,v5 MOV a2,v6 STMDB sp!,{a2-a4} MOV a3,v3 MOV a2,v2 MOV a1,v1 LDR a4,[fp,#&10] BL asm_huff_decode_blocks ADD sp,sp,#&c SUB v4,v4,#1 ADD v2,v2,#&100 CMP v4,#0 LDR a1,[fp,#&20] BGT |L001774.J6.do_huff_decode_blocks| LDMDB fp,{v1-v6,fp,sp,pc}^ |L0017d8.J4.do_huff_decode_blocks| MOV a4,v4 MOV a3,v5 MOV a2,v6 STMDB sp!,{a2-a4} MOV a3,v3 MOV a2,v2 LDR a4,[fp,#&10] BL asm_huff_decode_blocks LDMDB fp,{v1-v6,fp,sp,pc}^ ;MPORT jpeg_scan_file do_jpeg_scan_file MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV lr,a3 MOV ip,a4 MOV v1,a1 STR a2,[a1,#&10] MVN a1,#0 MOV a4,#0 MVN a3,#0 MVN a2,#0 STR a1,[v1,#0] MVN a1,#&80000000 STMDB sp!,{a1-a4} MOV a3,ip MOV a2,lr MOV a1,v1 BL jpeg_scan_file LDMDB fp,{v1,fp,sp,pc}^ do_jpeg_scan_file_16 MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV lr,a3 MOV ip,a4 MOV v1,a1 STR a2,[a1,#&10] MVN a1,#0 MOV a4,#&10 MVN a3,#0 MVN a2,#0 STR a1,[v1,#0] MVN a1,#&80000000 STMDB sp!,{a1-a4} MOV a3,ip MOV a2,lr MOV a1,v1 MOV a4,#0 BL jpeg_scan_file LDMDB fp,{v1,fp,sp,pc}^ IMPORT |__rt_sdiv| jpeg_scan_file MOV ip,sp STMDB sp!,{a1-a4} STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#&14 MOV v1,a1 MOV v5,a2 MOV v4,a3 MOV v3,a4 SUB sp,sp,#&20 LDR v2,[fp,#&20] TST v2,#2 LDR v6,[fp,#&14] BICNE v2,v2,#&38 CMP v3,#0 MOVLT v3,#0 TST v2,#&28 BEQ |L0018ec.J8.jpeg_scan_file| SUBS v3,v3,#&10 MOVMI v3,#0 BIC v3,v3,#&f ADD v6,v6,#&10 |L0018ec.J8.jpeg_scan_file| LDR a2,[v1,#0] CMP a2,#0 BNE |L0019fc.J12.jpeg_scan_file| LDR a2,[v1,#&30] TEQ a2,v5 BNE |L001a04.J42.jpeg_scan_file| LDR a3,[v1,#&38] SUB a2,a3,a2 TEQ a2,v4 BNE |L001a04.J42.jpeg_scan_file| LDR a2,[fp,#&18] CMN a2,#1 LDRNE a2,[v1,#&14] LDRNE a3,[fp,#&18] TEQNE a2,a3 BNE |L001a04.J42.jpeg_scan_file| LDR a2,[fp,#&1c] CMN a2,#1 LDRNE a2,[v1,#&18] LDRNE a3,[fp,#&1c] TEQNE a2,a3 BNE |L001a04.J42.jpeg_scan_file| MOVS a2,v4 ADDMI a2,a2,#7 MOV a2,a2,ASR #3 LDR a2,[v5,a2,LSL #2] LDR a3,[v1,#&10c] TEQ a2,a3 BNE |L001a04.J42.jpeg_scan_file| MOV a3,v4 CMP v4,#0 ADDLT a3,a3,#3 MOV a3,a3,ASR #2 MOV a2,v4 ADDLT a2,a2,#&f SUB a2,a3,a2,ASR #4 LDR a3,[v5,a2,LSL #2] LDR a2,[v1,#&110] TEQ a3,a2 BNE |L001a04.J42.jpeg_scan_file| MOV a2,v4 CMP v4,#0 ADDLT a2,a2,#3 MOV a2,a2,ASR #2 MOV a3,v4 ADDLT a3,a3,#&1f SUB a2,a2,a3,ASR #5 LDR a3,[v5,a2,LSL #2] LDR a2,[v1,#&114] TEQ a3,a2 LDREQ a2,[v1,#&100] TEQEQ a2,v2 BNE |L001a04.J42.jpeg_scan_file| LDR a1,[v1,#&14] CMP v6,a1 MOVGT v6,a1 LDR a1,[v1,#&f8] CMP v3,a1 BLT |L0019e4.J39.jpeg_scan_file| LDR a1,[v1,#&fc] CMP v6,a1 BLE |L0019ec.J38.jpeg_scan_file| |L0019e4.J39.jpeg_scan_file| MVN a1,#0 STR a1,[v1,#&f4] |L0019ec.J38.jpeg_scan_file| MOV a1,#0 ADD v1,v1,#&f4 STMIB v1!,{v3,v6} B |L002040.J135.jpeg_scan_file| |L0019fc.J12.jpeg_scan_file| MOVLT a2,#0 STRLT a2,[v1,#&20] |L001a04.J42.jpeg_scan_file| LDR a2,[v1,#&10] BL init_workspace LDR a1,[v1,#&10] TEQ a1,#0 STREQ a1,[v1,#&28] LDREQ a1,[pc, #L001b48-.-8] BEQ |L001a3c.J134.jpeg_scan_file| ADD a2,v1,#&1fc ADD a2,a2,#&3800 ADD a1,a1,#&204 SUB a1,a1,#&3c00 MOV a1,a1,LSR #2 BIC a1,a1,#&f STR a2,[v1,#&28] |L001a3c.J134.jpeg_scan_file| STR a1,[v1,#&2c] MOV a1,v4 CMP v4,#0 ADDLT a1,a1,#7 MOV a1,a1,ASR #3 LDR a1,[v5,a1,LSL #2] MOV a2,v4 STR a1,[v1,#&10c] ADDLT a2,a2,#3 MOV a2,a2,ASR #2 MOV a1,v4 ADDLT a1,a1,#&f SUB a1,a2,a1,ASR #4 LDR a1,[v5,a1,LSL #2] MOV a2,v4 STR a1,[v1,#&110] ADDLT a2,a2,#3 MOV a2,a2,ASR #2 MOV a1,v4 ADDLT a1,a1,#&1f SUB a1,a2,a1,ASR #5 LDR a1,[v5,a1,LSL #2] STR a1,[v1,#&114] STR v5,[v1,#&30] STR v5,[v1,#&34] ADD a1,v5,v4 STR a1,[v1,#&38] MOV a1,v1 BL read_file_header MOV a1,v1 BL read_scan_header MOV v4,#0 |L001abc.J57.jpeg_scan_file| ADD v5,v1,v4,LSL #2 MOV a1,v1 LDR a2,[v5,#&64] BL fix_huff_tbl MOV a1,v1 LDR a2,[v5,#&74]! BL fix_huff_tbl ADD v4,v4,#1 CMP v4,#4 BLT |L001abc.J57.jpeg_scan_file| MOV a1,v1 BL huff_decoder_init MVN a1,#0 STR a1,[v1,#&f4] LDR a1,[v1,#&bc] STR a1,[v1,#&c0] MOV a1,#0 STR a1,[v1,#&c4] LDR v4,[v1,#&14] CMP v6,v4 MOVGT v6,v4 CMP v3,v6 MOVGT v3,v6 STR v2,[v1,#&100] ADD v1,v1,#&f8 STMIA v1,{v3,v6} SUB v1,v1,#&f8 LDR a1,[v1,#&3c] TEQ a1,#8 BEQ |L001b4c.J63.jpeg_scan_file| MOV a2,#1 STR a1,[v1,#4] STR a2,[v1,#0] MOV a1,#1 B |L002040.J135.jpeg_scan_file| L001b48 DCD &05f5e100 |L001b4c.J63.jpeg_scan_file| LDR a1,[v1,#&c8] LDR v3,[v1,#&4c] TEQ v3,a1 MOVNE a1,#3 STRNE a1,[v1,#0] BNE |L002040.J135.jpeg_scan_file| LDR a1,[fp,#&18] TEQ v4,a1 LDRNE a1,[fp,#&18] CMNNE a1,#1 BEQ |L001b84.J67.jpeg_scan_file| MOV a1,#7 STMIA v1,{a1,v4} B |L002040.J135.jpeg_scan_file| |L001b84.J67.jpeg_scan_file| LDR a2,[v1,#&18] STR a2,[sp,#&1c] LDR a1,[fp,#&1c] TEQ a2,a1 LDRNE a1,[fp,#&1c] CMNNE a1,#1 BEQ |L001bb8.J70.jpeg_scan_file| MOV a1,#6 STR a1,[v1,#0] LDR a1,[sp,#&1c] STR a1,[v1,#4]! MOV a1,#6 B |L002040.J135.jpeg_scan_file| |L001bb8.J70.jpeg_scan_file| LDR v6,[v1,#&50] LDR a1,[v6,#&c] MOV v5,a1,LSL #3 LDR a1,[sp,#&1c] ADD a1,a1,v5 SUB a2,a1,#1 MOV a1,v5 BL |__rt_sdiv| ADD a1,a1,a1,LSL #2 MOV a1,a1,LSL #2 LDR a2,[v1,#&28] MOV a1,a1,LSR #2 STR a2,[v1,#&818] ADD a2,a2,a1,LSL #2 STR a2,[v1,#&28] LDR a2,[v1,#&2c] SUB a2,a2,a1 MOV a1,v5 STR a2,[v1,#&2c] BL |__rt_sdiv| MOV a2,a1 CMP a1,v4 BGE |L001c2c.J73.jpeg_scan_file| MOV a1,#&a STMIA v1,{a1,v4} MOV a1,a2 STR a1,[v1,#8]! MOV a1,#&a B |L002040.J135.jpeg_scan_file| |L001c2c.J73.jpeg_scan_file| MOV a2,#8 MOV a1,#5 ADD v5,v1,#&e4 TEQ v3,#1 BNE |L001d3c.J75.jpeg_scan_file| LDR a3,[v1,#&1c] TEQ a3,#1 MOVNE a1,#8 STMNEIA v1,{a2,a3} BNE |L002040.J135.jpeg_scan_file| LDR a2,[v6,#8] TEQ a2,#1 LDREQ a2,[v6,#&c] TEQEQ a2,#1 BEQ |L001c84.J79.jpeg_scan_file| STR a1,[v1,#0] LDR a1,[v6,#8] STR a1,[v1,#4] LDR a1,[v6,#&c]! STR a1,[v1,#8]! MOV a1,#5 B |L002040.J135.jpeg_scan_file| |L001c84.J79.jpeg_scan_file| SUB sp,sp,#8 MOV v4,#0 LDR a1,[v1,#&cc] LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR v6,[a2,#&64]! LDR a2,[a1,#&18] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&74] STR a2,[sp,#4] LDR a1,[a1,#&10] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&54] MOV v3,#0 STR a1,[sp,#0] LDR a1,[sp,#&24] CMP a1,#0 BLE |L001d30.J84.jpeg_scan_file| ADD a1,v1,#&118 STR a1,[sp,#&20] |L001cd4.J83.jpeg_scan_file| ADD a1,v3,v3,LSL #2 LDR a2,[v1,#&818] ADD a2,a2,a1,LSL #2 MOV a1,v1 BL save_huff_stream ADD v3,v3,#1 MOV a4,#1 LDR a1,[v1,#&14] ADD a1,a1,#7 MOV a3,a1,ASR #3 MOV a2,v5 LDR a1,[sp,#0] STMDB sp!,{a1-a4} MOV a3,v6 MOV a1,v1 LDR a2,[sp,#&30] LDR a4,[sp,#&14] BL do_huff_skip_blocks ADD sp,sp,#&10 ADD v4,v4,#8 LDR a1,[v1,#&18] CMP v4,a1 BLT |L001cd4.J83.jpeg_scan_file| |L001d30.J84.jpeg_scan_file| ADD sp,sp,#8 BIC v2,v2,#&30 B |L001fc0.J87.jpeg_scan_file| |L001d3c.J75.jpeg_scan_file| TEQ v3,#3 BNE |L002038.J88.jpeg_scan_file| LDR a3,[v6,#&c] STR a3,[sp,#-4]! LDR a4,[v6,#8] MOV v3,a4 CMP a4,#2 CMPLE a3,#2 BLE |L001d74.J90.jpeg_scan_file| STR a1,[v1,#0] LDR a1,[v6,#8] STR a1,[v1,#4] LDR a1,[v6,#&c]! B |L001dc0.J137.jpeg_scan_file| |L001d74.J90.jpeg_scan_file| LDR a3,[v6,#&40] TEQ a3,#1 LDREQ a3,[v6,#&44] TEQEQ a3,#1 BEQ |L001d9c.J94.jpeg_scan_file| STR a1,[v1,#0] LDR a1,[v6,#&40] STR a1,[v1,#4] LDR a1,[v6,#&44]! B |L001dc0.J137.jpeg_scan_file| |L001d9c.J94.jpeg_scan_file| LDR a3,[v6,#&78] TEQ a3,#1 LDREQ a3,[v6,#&7c] TEQEQ a3,#1 BEQ |L001dcc.J98.jpeg_scan_file| STR a1,[v1,#0] LDR a1,[v6,#&78] STR a1,[v1,#4] LDR a1,[v6,#&7c]! |L001dc0.J137.jpeg_scan_file| STR a1,[v1,#8]! MOV a1,#5 B |L001de4.J138.jpeg_scan_file| |L001dcc.J98.jpeg_scan_file| LDR a1,[v1,#&1c] TEQ a1,#3 BEQ |L001de8.J102.jpeg_scan_file| STR a1,[v1,#4] STR a2,[v1,#0] MOV a1,#8 |L001de4.J138.jpeg_scan_file| LDMDB fp,{v1-v6,fp,sp,pc}^ |L001de8.J102.jpeg_scan_file| TEQ v3,#2 LDREQ a1,[sp,#0] TEQEQ a1,#2 BICNE v2,v2,#&30 SUB sp,sp,#&28 MOV a1,#0 MOV v4,#0 STR a1,[sp,#&24] LDR a1,[v1,#&cc] LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&64] STR a2,[sp,#&20] LDR a2,[a1,#&18] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&74] STR a2,[sp,#&1c] LDR a1,[a1,#&10] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&54] STR a1,[sp,#&18] LDR a1,[v1,#&d0] LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&64] STR a2,[sp,#&14] LDR a2,[a1,#&18] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&74] STR a2,[sp,#&10] LDR a1,[a1,#&10] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&54] STR a1,[sp,#&c] LDR a1,[v1,#&d4] LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&64] STR a2,[sp,#8] LDR a2,[a1,#&18] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&74] STR a2,[sp,#4] LDR a1,[a1,#&10] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&54] STR a1,[sp,#0] LDR a1,[sp,#&48] CMP a1,#0 BLE |L001fbc.J109.jpeg_scan_file| LDR a2,[sp,#&28] MUL a1,a2,v3 ADD a2,v1,#&218 STR a2,[sp,#&3c] ADD a2,v1,#&e8 STR a2,[sp,#&38] ADD a2,v1,#&218 ADD a2,a2,#&400 STR a2,[sp,#&34] ADD a2,v1,#&ec STR a1,[sp,#&40] ADD a1,v1,#&318 ADD a1,a1,#&400 STR a1,[sp,#&2c] STR a2,[sp,#&30] |L001eec.J108.jpeg_scan_file| ADD a1,v4,v4,LSL #2 LDR a2,[v1,#&818] ADD a2,a2,a1,LSL #2 MOV a1,v1 BL save_huff_stream ADD v4,v4,#1 MOV v6,#0 LDR a1,[v1,#&14] CMP a1,#0 BLE |L001fa0.J112.jpeg_scan_file| |L001f14.J111.jpeg_scan_file| MOV a4,#0 MOV a2,v5 LDR a1,[sp,#&18] LDR a3,[sp,#&40] STMDB sp!,{a1-a4} MOV a1,v1 LDR a2,[sp,#&4c] LDR a3,[sp,#&30] LDR a4,[sp,#&2c] BL do_huff_skip_blocks ADD sp,sp,#&10 MOV a4,#1 LDR a2,[sp,#&c] LDR a3,[sp,#&38] STMDB sp!,{a2-a4} MOV a1,v1 LDR a2,[sp,#&40] LDR a3,[sp,#&20] LDR a4,[sp,#&1c] BL asm_huff_skip_blocks ADD sp,sp,#&c MOV a4,#1 LDR a2,[sp,#0] LDR a3,[sp,#&30] STMDB sp!,{a2-a4} MOV a1,v1 LDR a2,[sp,#&38] LDR a3,[sp,#&14] LDR a4,[sp,#&10] BL asm_huff_skip_blocks ADD sp,sp,#&c ADD v6,v6,v3,LSL #3 LDR a1,[v1,#&14] CMP v6,a1 BLT |L001f14.J111.jpeg_scan_file| |L001fa0.J112.jpeg_scan_file| ADD a2,sp,#&24 LDMIA a2,{a1,a2} ADD a2,a1,a2,LSL #3 STR a2,[sp,#&24] LDR a1,[v1,#&18] CMP a2,a1 BLT |L001eec.J108.jpeg_scan_file| |L001fbc.J109.jpeg_scan_file| ADD sp,sp,#&2c |L001fc0.J87.jpeg_scan_file| TST v2,#4 BEQ |L001ffc.J117.jpeg_scan_file| LDR a1,[v1,#&50] LDR a1,[a1,#8] MOV a1,a1,LSL #3 LDR a2,[v1,#&2c] BL |__rt_sdiv| LDR a2,[v1,#&14] CMP a1,a2,LSL #1 LDRLT a1,[v1,#&100] BICLT a1,a1,#4 STRLT a1,[v1,#&100] LDRGE a1,[v1,#4] ORRGE a1,a1,#4 STRGE a1,[v1,#4] |L001ffc.J117.jpeg_scan_file| TST v2,#8 LDRNE a1,[v1,#4] ORRNE a1,a1,#8 STRNE a1,[v1,#4] TST v2,#&10 LDRNE a1,[v1,#4] ORRNE a1,a1,#&10 STRNE a1,[v1,#4] TST v2,#&20 LDRNE a1,[v1,#4] ORRNE a1,a1,#&20 STRNE a1,[v1,#4] STR v2,[v1,#&100] LDR a1,[v1,#0] B |L002040.J135.jpeg_scan_file| |L002038.J88.jpeg_scan_file| MOV a1,#9 STMIA v1,{a1,v3} |L002040.J135.jpeg_scan_file| LDMDB fp,{v1-v6,fp,sp,pc}^ IMPORT asm_j_rev_dct IMPORT asm_mono_convert_block IMPORT asm_colour_convert_block_16 IMPORT asm_colour_convert_block IMPORT asm_colour_convert_block_8 IMPORT asm_get_table32k IMPORT asm_diffuse_to_8bpp jpeg_find_line MOV ip,sp STMDB sp!,{a1-a3,v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 LDR a1,[a1,#&50] LDR a1,[a1,#&c] ADD a1,a1,#2 STR a1,[sp,#-&34]! LDR a1,[v1,#&2c] LDR a2,[sp,#0] MOV v4,a1,ASR a2 LDR a1,[v1,#&18] LDR a2,[fp,#-&2c] SUB a1,a1,a2 SUBS a1,a1,#1 STR a1,[fp,#-&2c] MOVMI a2,#4 MOVMI a1,#&8e ADDMI a1,a1,#&200 BLMI exit_c LDR a2,[fp,#-&2c] LDR a1,[v1,#&18] CMP a2,a1 MOVGE a2,#4 MOVGE a1,#&8f ADDGE a1,a1,#&200 BLGE exit_c LDR a2,[fp,#-&2c] LDR a1,[sp,#0] MOV a2,a2,ASR a1 STR a2,[sp,#4] LDR a1,[v1,#&f4] TEQ a2,a1 BEQ |L002900.J8.jpeg_find_line| SUB sp,sp,#4 LDR a1,[v1,#&28] TEQ a1,#0 MOVEQ a2,#4 MOVEQ a1,#&a2 ADDEQ a1,a1,#&200 BLEQ exit_c MVN a1,#0 STR a1,[v1,#&f4] LDR a1,[sp,#8] ADD a2,a1,a1,LSL #2 LDR a1,[v1,#&818] ADD a2,a1,a2,LSL #2 MOV a1,v1 BL restore_huff_stream LDR a1,[v1,#&4c] ADD a3,v1,#&e4 ADD v6,v1,#&118 ADD a2,v1,#&218 TEQ a1,#1 STR a2,[sp,#&30] STR a3,[sp,#&34] BNE |L0022bc.J12.jpeg_find_line| SUB sp,sp,#8 MOV v3,#0 LDR a1,[v1,#&cc] LDR v2,[v1,#&28] LDR a2,[a1,#&10] ADD a2,v1,a2,LSL #2 LDR v5,[a2,#&54]! LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&64] STR a2,[sp,#4] LDR a1,[a1,#&18] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&74] STR a1,[sp,#0] LDR a1,[v1,#&f8] CMP a1,#8 BLT |L0021b4.J14.jpeg_find_line| SUB a1,a1,#8 MOV a1,a1,ASR #3 MOV a4,#1 STR a1,[sp,#-4]! MOV a3,a1 MOV a1,v5 LDR a2,[sp,#&40] STMDB sp!,{a1-a4} MOV a2,v6 MOV a1,v1 LDR a3,[sp,#&18] LDR a4,[sp,#&14] BL do_huff_skip_blocks LDR a1,[sp,#&10]! ADD v3,v3,a1,LSL #3 ADD v2,v2,a1,LSL #5 ADD sp,sp,#4 |L0021b4.J14.jpeg_find_line| LDR a1,[v1,#&100] TST a1,#2 LDR a1,[v1,#&fc] BEQ |L002248.J16.jpeg_find_line| CMP v3,a1 BGE |L002240.J19.jpeg_find_line| |L0021cc.J18.jpeg_find_line| MOV a4,#1 MOV a3,#1 MOV a1,v5 LDR a2,[sp,#&3c] STMDB sp!,{a1-a4} MOV a1,v1 LDR a2,[sp,#&48] LDR a3,[sp,#&14] LDR a4,[sp,#&10] BL do_huff_skip_blocks ADD sp,sp,#&10 LDR a2,[v1,#&e4] LDR a1,[v5,#0] MUL a2,a1,a2 MOV a1,v1 BL mono_convert_pixel STR a1,[v2,#0] STR a1,[v2,#4] STR a1,[v2,#8] STR a1,[v2,#&c] STR a1,[v2,#&10] STR a1,[v2,#&14] STR a1,[v2,#&18] ADD v3,v3,#8 STR a1,[v2,#&1c]! ADD v2,v2,#4 LDR a1,[v1,#&fc] CMP v3,a1 BLT |L0021cc.J18.jpeg_find_line| |L002240.J19.jpeg_find_line| MOV a1,#1 B |L0022b4.J127.jpeg_find_line| |L002248.J16.jpeg_find_line| CMP v3,a1 BGE |L0022b0.J24.jpeg_find_line| |L002250.J23.jpeg_find_line| MOV a4,#1 MOV a3,#1 MOV a1,v5 LDR a2,[sp,#&3c] STMDB sp!,{a1-a4} MOV a1,v1 LDR a2,[sp,#&48] LDR a3,[sp,#&14] LDR a4,[sp,#&10] BL do_huff_decode_blocks ADD sp,sp,#&10 MOV a1,v1 MOV a3,#1 LDR a2,[sp,#&38] BL asm_j_rev_dct MOV a1,v6 MOV a3,v4 MOV a2,v2 BL asm_mono_convert_block ADD v3,v3,#8 ADD v2,v2,#&20 LDR a1,[v1,#&fc] CMP v3,a1 BLT |L002250.J23.jpeg_find_line| |L0022b0.J24.jpeg_find_line| MOV a1,#8 |L0022b4.J127.jpeg_find_line| STR a1,[sp,#8]! B |L002828.J27.jpeg_find_line| |L0022bc.J12.jpeg_find_line| SUB sp,sp,#&28 MOV v5,#0 LDR a1,[v1,#&cc] LDR v2,[v1,#&28] LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&64] STR a2,[sp,#&24] LDR a2,[a1,#&18] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&74] STR a2,[sp,#&20] LDR a1,[a1,#&10] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&54] STR a1,[sp,#&1c] LDR a1,[v1,#&d0] LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&64] STR a2,[sp,#&18] LDR a2,[a1,#&18] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&74] STR a2,[sp,#&14] LDR a1,[a1,#&10] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&54] STR a1,[sp,#&10] LDR a1,[v1,#&d4] LDR a2,[a1,#&14] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&64] STR a2,[sp,#&c] LDR a2,[a1,#&18] ADD a2,v1,a2,LSL #2 LDR a2,[a2,#&74] STR a2,[sp,#8] LDR a1,[a1,#&10] ADD a1,v1,a1,LSL #2 LDR a1,[a1,#&54] STR a1,[sp,#4] LDR a1,[v1,#&50] LDR a2,[a1,#&c] STR a2,[sp,#0] LDR v3,[a1,#8]! ADD a1,v5,v3,LSL #3 LDR a2,[v1,#&f8] ADD a4,v1,#&e8 ADD a3,v1,#&ec CMP a1,a2 STR a3,[sp,#&50] STR a4,[sp,#&54] BGT |L00244c.J29.jpeg_find_line| LDR a2,[sp,#0] MUL a1,a2,v3 STR a1,[sp,#&4c] |L0023a0.J28.jpeg_find_line| MOV a4,#0 LDR a1,[sp,#&1c] LDR a2,[sp,#&5c] LDR a3,[sp,#&4c] STMDB sp!,{a1-a4} MOV a2,v6 MOV a1,v1 LDR a3,[sp,#&34] LDR a4,[sp,#&30] BL do_huff_skip_blocks ADD sp,sp,#&10 MOV a4,#1 LDR a2,[sp,#&10] LDR a3,[sp,#&54] STMDB sp!,{a2-a4} MOV a2,v6 MOV a1,v1 LDR a3,[sp,#&24] LDR a4,[sp,#&20] BL asm_huff_skip_blocks ADD sp,sp,#&c MOV a4,#1 LDR a2,[sp,#4] LDR a3,[sp,#&50] STMDB sp!,{a2-a4} MOV a2,v6 MOV a1,v1 LDR a3,[sp,#&18] LDR a4,[sp,#&14] BL asm_huff_skip_blocks ADD sp,sp,#&c ADD v5,v5,v3,LSL #3 LDR a1,[v1,#&100] TST a1,#&10 ADDNE v2,v2,v3,LSL #4 BNE |L00243c.J33.jpeg_find_line| TST a1,#&20 ADDEQ v2,v2,v3,LSL #5 ADDNE v2,v2,v3,LSL #3 |L00243c.J33.jpeg_find_line| ADD a2,v5,v3,LSL #3 LDR a1,[v1,#&f8] CMP a2,a1 BLE |L0023a0.J28.jpeg_find_line| |L00244c.J29.jpeg_find_line| LDR a1,[v1,#&100] TST a1,#2 ADD a1,v1,#&318 ADD a1,a1,#&400 STR a1,[sp,#&48] MOV a1,#2 ADD a3,v1,#&218 ADD a3,a3,#&400 STR a3,[sp,#&44] LDR a2,[v1,#&fc] BEQ |L002628.J38.jpeg_find_line| CMP v5,a2 BGE |L002620.J41.jpeg_find_line| LDR a2,[sp,#0] MUL a1,a2,v3 STR a1,[sp,#&40] |L00248c.J40.jpeg_find_line| SUB sp,sp,#&10 MOV a4,#0 MOV a3,#1 LDR a1,[sp,#&2c] LDR a2,[sp,#&6c] STMDB sp!,{a1-a4} MOV a1,v1 LDR a2,[sp,#&78] LDR a3,[sp,#&44] LDR a4,[sp,#&40] BL do_huff_skip_blocks ADD sp,sp,#&10 LDR a2,[v1,#&e4] LDR a1,[sp,#&2c] LDR a1,[a1,#0] MUL a2,a1,a2 MOV v6,#1 STR a2,[sp,#0] LDR a1,[sp,#&50] CMP a1,#1 BLE |L002530.J44.jpeg_find_line| |L0024e0.J43.jpeg_find_line| MOV a4,#1 LDR a2,[sp,#&2c] LDR a3,[sp,#&6c] STMDB sp!,{a2-a4} ADD a1,v1,v6,LSL #8 ADD a2,a1,#&218 MOV a1,v1 LDR a3,[sp,#&40] LDR a4,[sp,#&3c] BL asm_huff_skip_blocks ADD sp,sp,#&c LDR a2,[v1,#&e4] LDR a1,[sp,#&2c] LDR a1,[a1,#0] MUL a2,a1,a2 STR a2,[sp,v6,LSL #2] ADD v6,v6,#1 LDR a1,[sp,#&50] CMP a1,v6 BGT |L0024e0.J43.jpeg_find_line| |L002530.J44.jpeg_find_line| MOV a4,#1 LDR a2,[sp,#&20] LDR a3,[sp,#&64] STMDB sp!,{a2-a4} MOV a1,v1 LDR a2,[sp,#&60] LDR a3,[sp,#&34] LDR a4,[sp,#&30] BL asm_huff_skip_blocks ADD sp,sp,#&c MOV a4,#1 LDR a2,[sp,#&14] LDR a3,[sp,#&60] STMDB sp!,{a2-a4} MOV a1,v1 LDR a2,[sp,#&64] LDR a3,[sp,#&28] LDR a4,[sp,#&24] BL asm_huff_skip_blocks ADD sp,sp,#&c LDR a2,[v1,#&e8] LDR a1,[sp,#&20] LDR a1,[a1,#0] MUL a2,a1,a2 LDR a3,[v1,#&ec] LDR a1,[sp,#&14] LDR a1,[a1,#0] MUL a3,a1,a3 MOV a1,sp BL colour_convert_pixels MOV v6,#0 MOV a3,#2 MOV a4,#1 |L0025b4.J47.jpeg_find_line| LDR a1,[sp,#0] STR a1,[v2,v6,LSL #2] TEQ v3,#2 ADDEQ a2,v2,v6,LSL #2 LDREQ a1,[sp,#4] STREQ a1,[a2,#&20]! LDR a1,[sp,#&10] TEQ a1,#2 BNE |L0025fc.J50.jpeg_find_line| CMP v3,#2 MOVNE a1,a4 MOVEQ a1,a3 LDR a2,[sp,a1,LSL #2] ADD a1,v4,v6 STR a2,[v2,a1,LSL #2] ADDEQ a1,v2,a1,LSL #2 LDREQ a2,[sp,#&c] STREQ a2,[a1,#&20]! |L0025fc.J50.jpeg_find_line| ADD v6,v6,#1 CMP v6,#8 BLT |L0025b4.J47.jpeg_find_line| ADD v5,v5,v3,LSL #3 ADD v2,v2,v3,LSL #5 ADD sp,sp,#&10 LDR a1,[v1,#&fc] CMP v5,a1 BLT |L00248c.J40.jpeg_find_line| |L002620.J41.jpeg_find_line| LDR a1,[sp,#0] B |L002824.J128.jpeg_find_line| |L002628.J38.jpeg_find_line| CMP v5,a2 BGE |L00281c.J61.jpeg_find_line| ADD a1,v1,#&18 ADD a1,a1,#&400 STR a1,[sp,#&3c] LDR a2,[sp,#0] MUL a1,a2,v3 STR a1,[sp,#&38] |L002648.J60.jpeg_find_line| MOV a4,#0 LDR a1,[sp,#&1c] LDR a2,[sp,#&5c] LDR a3,[sp,#&38] STMDB sp!,{a1-a4} MOV a1,v1 LDR a2,[sp,#&68] LDR a3,[sp,#&34] LDR a4,[sp,#&30] BL do_huff_decode_blocks ADD sp,sp,#&10 MOV a4,#1 LDR a2,[sp,#&10] LDR a3,[sp,#&54] STMDB sp!,{a2-a4} MOV a1,v1 LDR a2,[sp,#&50] LDR a3,[sp,#&24] LDR a4,[sp,#&20] BL asm_huff_decode_blocks ADD sp,sp,#&c MOV a4,#1 LDR a2,[sp,#4] LDR a3,[sp,#&50] STMDB sp!,{a2-a4} MOV a1,v1 LDR a2,[sp,#&54] LDR a3,[sp,#&18] LDR a4,[sp,#&14] BL asm_huff_decode_blocks ADD sp,sp,#&c LDR a1,[v1,#&100] TST a1,#1 BEQ |L002758.J63.jpeg_find_line| MOV a1,v1 LDR a2,[sp,#&58] LDR a3,[sp,#&38] BL asm_j_rev_dct MOV a1,v6 MOV a3,v4 MOV a2,v2 BL asm_mono_convert_block TEQ v3,#2 BNE |L002708.J65.jpeg_find_line| ADD a2,v2,#&20 MOV a3,v4 LDR a1,[sp,#&58] BL asm_mono_convert_block |L002708.J65.jpeg_find_line| LDR a1,[sp,#0] TEQ a1,#2 BNE |L0027f0.J74.jpeg_find_line| ADD a2,v2,v4,LSL #5 TEQ v3,#1 STR a2,[sp,#&34] MOVNE a1,#2 MOVEQ a1,#1 ADD a1,v1,a1,LSL #8 ADD a1,a1,#&118 MOV a3,v4 BL asm_mono_convert_block TEQ v3,#2 BNE |L0027f0.J74.jpeg_find_line| LDR a1,[sp,#&34] ADD a2,a1,#&20 MOV a3,v4 LDR a1,[sp,#&3c] BL asm_mono_convert_block B |L0027f0.J74.jpeg_find_line| |L002758.J63.jpeg_find_line| LDR a1,[sp,#&38] TEQ a1,#4 BNE |L0027b0.J75.jpeg_find_line| MOV a1,v1 MOV a3,#6 LDR a2,[sp,#&58] BL asm_j_rev_dct LDR a1,[v1,#&100] TST a1,#&10 BEQ |L002794.J77.jpeg_find_line| MOV a1,v6 MOV a3,v4 MOV a2,v2 BL asm_colour_convert_block_16 B |L0027f0.J74.jpeg_find_line| |L002794.J77.jpeg_find_line| TST a1,#&20 MOV a1,v6 MOV a3,v4 MOV a2,v2 BLEQ asm_colour_convert_block BLNE asm_colour_convert_block_8 B |L0027f0.J74.jpeg_find_line| |L0027b0.J75.jpeg_find_line| MOV a1,v1 LDR a2,[sp,#&58] LDR a3,[sp,#&38] BL asm_j_rev_dct MOV a1,v1 MOV a3,#2 LDR a2,[sp,#&44] BL asm_j_rev_dct LDR a4,[sp,#0] STMDB sp!,{a4} MOV a1,v6 MOV a4,v3 MOV a3,v4 MOV a2,v2 BL colour_convert_unusual_block ADD sp,sp,#4 |L0027f0.J74.jpeg_find_line| ADD v5,v5,v3,LSL #3 LDR a1,[v1,#&100] TST a1,#&10 ADDNE v2,v2,v3,LSL #4 BNE |L002810.J86.jpeg_find_line| TST a1,#&20 ADDEQ v2,v2,v3,LSL #5 ADDNE v2,v2,v3,LSL #3 |L002810.J86.jpeg_find_line| LDR a1,[v1,#&fc] CMP v5,a1 BLT |L002648.J60.jpeg_find_line| |L00281c.J61.jpeg_find_line| LDR a1,[sp,#0] MOV a1,a1,LSL #3 |L002824.J128.jpeg_find_line| STR a1,[sp,#&28]! |L002828.J27.jpeg_find_line| LDR a1,[v1,#&100] TST a1,#8 BEQ |L0028f4.J91.jpeg_find_line| LDR a1,[v1,#&20] TEQ a1,#0 BNE |L002860.J93.jpeg_find_line| LDR a1,[v1,#&24] TEQ a1,#0 BNE |L002860.J93.jpeg_find_line| BL asm_get_table32k STR a1,[v1,#&20] TEQ a1,#0 MOVEQ a1,#1 STREQ a1,[v1,#&24] |L002860.J93.jpeg_find_line| LDR a1,[v1,#&f8] MOV a2,a1 LDR a4,[v1,#&28] ADD v3,a4,a1,LSL #2 LDR a3,[v1,#&fc] SUB a3,a3,a1 ADD v6,a4,a1 ADD a3,a3,#&f BIC v2,a3,#&f LDR a3,[v1,#&14] SUB a1,a3,a1 CMP a1,v2 MOVLT v2,a1 LDR a1,[v1,#&100] TST a1,#4 ADDNE v3,v3,a2,LSL #2 MOVNE v2,v2,LSL #1 CMP v2,#0 BLE |L0028f4.J91.jpeg_find_line| |L0028ac.J102.jpeg_find_line| CMP v2,#&20 MOVLT v5,v2 MOVGE v5,#&10 MOV a3,v4 LDR a4,[fp,#-&28] LDR a2,[sp,#0] STMDB sp!,{a2-a4} MOV a3,v6 MOV a2,v5 MOV a1,v3 LDR a4,[v1,#&20] BL asm_diffuse_to_8bpp ADD sp,sp,#&c ADD v3,v3,v5,LSL #2 ADD v6,v6,v5 SUB v2,v2,v5 CMP v2,#0 BGT |L0028ac.J102.jpeg_find_line| |L0028f4.J91.jpeg_find_line| LDR a1,[sp,#8] ADD sp,sp,#4 STR a1,[v1,#&f4] |L002900.J8.jpeg_find_line| LDR a1,[v1,#&28]! LDR a2,[v1,#&d8]! TST a2,#2 LDR a2,[sp,#0] BEQ |L002930.J109.jpeg_find_line| TEQ a2,#4 BNE |L00294c.J129.jpeg_find_line| LDR a2,[fp,#-&2c] AND a2,a2,#&f CMP a2,#8 ADDGE a1,a1,v4,LSL #2 B |L00294c.J129.jpeg_find_line| |L002930.J109.jpeg_find_line| MOV a3,#1 MOV a2,a3,LSL a2 SUB a2,a2,#1 LDR a3,[fp,#-&2c] AND a2,a2,a3 MUL a2,v4,a2 ADD a1,a1,a2,LSL #2 |L00294c.J129.jpeg_find_line| LDMDB fp,{v1-v6,fp,sp,pc}^ looks_like_jpeg LDR a2,[a1,#0] ADD ip,a2,#&1f000000 ADD ip,ip,#&2700 CMN ip,#1 BNE |L002994.J5.looks_like_jpeg| LDRB a2,[a1,#6] TEQ a2,#&4a LDREQB a2,[a1,#7] TEQEQ a2,#&46 LDREQB a2,[a1,#8] TEQEQ a2,#&49 LDREQB a2,[a1,#9] TEQEQ a2,#&46 LDREQB a1,[a1,#&a] TEQEQ a1,#0 MOVEQ a1,#1 MOVEQS pc,lr |L002994.J5.looks_like_jpeg| MOV a1,#0 MOVS pc,lr IMPORT _swix find_image_dims MOV ip,sp STMDB sp!,{a1-a4} STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#&14 MOV v4,a1 SUB sp,sp,#&14 SUB sp,sp,#&400 MOV a1,#0 LDR v1,[fp,#&1c] LDR v3,[fp,#&18] MOV v2,#0 STR a1,[sp,#&40c] AND a1,v3,#3 TEQ a1,#1 BNE |L002a60.J6.find_image_dims| MOV v2,#1 ADD a4,sp,#8 STMDB sp!,{a4} MOV a4,v4 MOV a3,#&4f MOV a2,#&80000003 MOV a1,#&d BL _swix ADD sp,sp,#4 MOVS a2,a1 BEQ |L002a0c.J8.find_image_dims| |L002a04.J9.find_image_dims| STR a2,[v1,#0] B |L002dec.J95.find_image_dims| |L002a0c.J8.find_image_dims| ADD v4,sp,#&c ADD a4,sp,#4 MOV a3,#&400 MOV a2,v4 STMDB sp!,{a2-a4} MOV a3,#4 MOV a2,#&2000000f MOV a1,#&c LDR a4,[sp,#&14] BL _swix ADD sp,sp,#&c MOVS v5,a1 BEQ |L002a60.J6.find_image_dims| MOV a3,#0 MOV a2,#3 MOV a1,#&d LDR a4,[sp,#8] BL _swix STR v5,[v1,#0] MOV a1,v5 B |L002dec.J95.find_image_dims| |L002a60.J6.find_image_dims| MOV a1,v4 BL looks_like_jpeg TEQ a1,#0 BNE |L002a9c.J12.find_image_dims| TEQ v2,#0 BEQ |L002a94.J14.find_image_dims| MOV a3,#0 MOV a2,#3 MOV a1,#&d LDR a4,[sp,#8] BL _swix MOVS a2,a1 BNE |L002a04.J9.find_image_dims| |L002a94.J14.find_image_dims| MOV a1,#1 B |L002dec.J95.find_image_dims| |L002a9c.J12.find_image_dims| LDRB a1,[v4,#&d] TEQ a1,#1 BNE |L002acc.J18.find_image_dims| LDRB a1,[v4,#&e] MOV a1,a1,LSL #24 LDRB a2,[v4,#&f] ADD a1,a1,a2,LSL #16 LDRB a2,[v4,#&10] ADD a1,a1,a2,LSL #8 LDRB a2,[v4,#&11] ADD a1,a1,a2 B |L002b40.J92.find_image_dims| |L002acc.J18.find_image_dims| TEQ a1,#2 BNE |L002b48.J21.find_image_dims| LDRB a1,[v4,#&e] RSB a2,a1,a1,LSL #7 MOV a2,a2,LSL #1 MOV a1,#&64 BL |__rt_sdiv| MOV v5,a1 LDRB a1,[v4,#&f] RSB a2,a1,a1,LSL #7 MOV a2,a2,LSL #1 MOV a1,#&64 BL |__rt_sdiv| ADD a1,a1,#&18 MOV v5,v5,LSL a1 LDRB a1,[v4,#&10] RSB a2,a1,a1,LSL #7 MOV a2,a2,LSL #1 MOV a1,#&64 BL |__rt_sdiv| ADD a1,a1,#&10 MOV v5,v5,LSL a1 LDRB a1,[v4,#&11] RSB a2,a1,a1,LSL #7 MOV a2,a2,LSL #1 MOV a1,#&64 BL |__rt_sdiv| ADD a1,a1,#8 MOV a1,v5,LSL a1 |L002b40.J92.find_image_dims| STR a1,[sp,#0] B |L002b8c.J20.find_image_dims| |L002b48.J21.find_image_dims| LDRB a1,[v4,#&f] LDRB a2,[v4,#&e] ADDS a1,a1,a2,LSL #8 MOVEQ a1,#1 LDRB a2,[v4,#&11] LDRB a3,[v4,#&10] ADD a2,a2,a3,LSL #8 BL |__rt_sdiv| TEQ a1,#0 RSBNE a1,a1,a1,LSL #4 ADDNE a1,a1,a1,LSL #1 MOVNE a1,a1,LSL #1 MOVEQ a1,#&5a ORR a1,a1,#&5a0000 STR a1,[sp,#0] MOV a1,#&100 STR a1,[sp,#&40c] |L002b8c.J20.find_image_dims| ADD v4,v4,#2 |L002b90.J88.find_image_dims| LDR a1,[sp,#4] B |L002c60.J30.find_image_dims| |L002b98.J29.find_image_dims| LDRB a2,[v4,#3] LDRB a3,[v4,#2] ADD a2,a2,a3,LSL #8 ADD a2,a2,v4 ADD v4,a2,#2 TEQ v2,#0 BEQ |L002c60.J30.find_image_dims| CMP v4,a1 BLT |L002c60.J30.find_image_dims| SUB v5,v4,a1 ADD v4,sp,#&c ADD a4,sp,#4 MOV a3,#&400 MOV a2,v4 STMDB sp!,{a2-a4} MOV a3,#4 MOV a2,#&2000000f MOV a1,#&c LDR a4,[sp,#&14] BL _swix ADD sp,sp,#&c MOVS v6,a1 BEQ |L002c14.J35.find_image_dims| |L002bf4.J36.find_image_dims| MOV a3,#0 MOV a2,#3 MOV a1,#&d LDR a4,[sp,#8] BL _swix STR v6,[v1,#0] MOV a1,v6 B |L002dec.J95.find_image_dims| |L002c14.J35.find_image_dims| CMP v5,#&400 BLE |L002c58.J38.find_image_dims| |L002c1c.J37.find_image_dims| ADD a4,sp,#4 MOV a3,#&400 MOV a2,v4 STMDB sp!,{a2-a4} MOV a3,#4 MOV a2,#&2000000f MOV a1,#&c LDR a4,[sp,#&14] BL _swix ADD sp,sp,#&c MOVS v6,a1 BNE |L002bf4.J36.find_image_dims| SUB v5,v5,#&400 CMP v5,#&400 BGT |L002c1c.J37.find_image_dims| |L002c58.J38.find_image_dims| ADD v4,v4,v5 B |L002b90.J88.find_image_dims| |L002c60.J30.find_image_dims| LDRB a2,[v4,#0] TEQ a2,#&ff BNE |L002c84.J43.find_image_dims| LDRB a2,[v4,#1] TEQ a2,#&c0 TEQNE a2,#&c1 TEQNE a2,#&c9 BNE |L002b98.J29.find_image_dims| B |L002c98.J49.find_image_dims| |L002c84.J43.find_image_dims| LDRB a1,[v4,#1] TEQ a1,#&c0 TEQNE a1,#&c1 TEQNE a1,#&c9 BNE |L002a94.J14.find_image_dims| |L002c98.J49.find_image_dims| LDRB a1,[v4,#6] LDRB a2,[v4,#5] ADD v5,a1,a2,LSL #8 LDRB a1,[v4,#8] LDRB a2,[v4,#7] ADD a1,a1,a2,LSL #8 STR a1,[sp,#&410] LDRB a1,[v4,#9] LDR a2,[sp,#&40c] ORR v6,a1,a2 CMP v3,#3 BLE |L002d78.J54.find_image_dims| SUB sp,sp,#8 BIC v3,v3,#3 LDR a1,[v3,#0] CMP v6,#1 STR a1,[sp,#4] MOVNE a1,#&10 MOVEQ a1,#8 LDR a2,[sp,#&418] ADD a2,a2,#&f MUL a1,a2,a1 MOV a2,a1,LSL #2 BNE |L002d08.J60.find_image_dims| ADDS a1,v5,#7 ADDMI a1,a1,#7 MOV a1,a1,ASR #3 B |L002d0c.J59.find_image_dims| |L002d08.J60.find_image_dims| MOV a1,v5 |L002d0c.J59.find_image_dims| ADD a1,a1,a1,LSL #2 ADD a1,a2,a1,LSL #2 ADD a1,a1,#&ff ADD a1,a1,#&3d00 BIC v4,a1,#3 MOV a3,sp MOV a2,#&80000000 MOV a1,#&51 BL _swix LDR a1,[sp,#4] TEQ a1,#0 LDREQ a1,[sp,#0] ADDEQ a2,v4,a1 BEQ |L002d64.J93.find_image_dims| LDR a1,[sp,#4] LDR a1,[a1,#&10] CMP a1,v4 MOVGE a1,#0 BGE |L002d70.J66.find_image_dims| SUB a2,v4,a1 LDR a1,[sp,#0] ADD a2,a2,a1 |L002d64.J93.find_image_dims| SUB a2,a2,#1 SUB a1,a1,#1 BIC a1,a2,a1 |L002d70.J66.find_image_dims| ADD sp,sp,#8 STR a1,[v3,#0] |L002d78.J54.find_image_dims| LDR a1,[fp,#&c] TEQ a1,#0 LDRNE a1,[fp,#&c] STRNE v5,[a1,#0] LDR a1,[fp,#8] TEQ a1,#0 LDRNE a1,[sp,#&410] LDRNE a2,[fp,#8] STRNE a1,[a2,#0] LDR a1,[fp,#&10] TEQ a1,#0 MOVNE a1,v6 LDRNE a2,[fp,#&10] STRNE a1,[a2,#0] LDR a1,[fp,#&14] CMP a1,#0 LDRNE a1,[sp,#0] LDRNE a2,[fp,#&14] STRNE a1,[a2,#0] TEQ v2,#0 BEQ |L002de8.J80.find_image_dims| MOV a3,#0 MOV a2,#3 MOV a1,#&d LDR a4,[sp,#8] BL _swix MOVS a2,a1 BNE |L002a04.J9.find_image_dims| |L002de8.J80.find_image_dims| MOV a1,#0 |L002dec.J95.find_image_dims| LDMDB fp,{v1-v6,fp,sp,pc}^ check_sprite_area MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 SUB sp,sp,#&10 LDMIA a1,{a2,a3} STR a3,[sp,#8] ADD a4,a1,#8 LDMIA a4,{a3,a4} CMP a3,a4 CMPLE a4,a2 MOVGT a1,#1 BGT |L002fc0.J55.check_sprite_area| ADD v1,a1,a3 MOV a3,#0 STR a3,[sp,#4] LDR a3,[sp,#8] CMP a3,#0 BLE |L002fbc.J9.check_sprite_area| ADD v5,a1,a2 |L002e3c.J8.check_sprite_area| ADD a2,v1,#&18 LDMIA a2,{a1,a2} LDR a4,[v1,#&14] LDR v3,[v1,#0] LDR v6,[v1,#&10] STR a2,[sp,#-4]! LDR a3,[v1,#&28] LDR v2,[v1,#&24] LDR v4,[v1,#&20] ADD a2,v3,v1 CMP a2,v5 CMPLE a1,#&1f LDRLE a2,[sp,#0] CMPLE a2,#&1f ADDLE a2,v4,v1 CMPLE a2,v5 ADDLE a2,v2,v1 CMPLE a2,v5 BGT |L002fa0.J50.check_sprite_area| MOV a2,#0 CMP a2,a3,ASR #24 BGE |L002e9c.J21.check_sprite_area| TEQ a1,#0 BNE |L002fa0.J50.check_sprite_area| |L002e9c.J21.check_sprite_area| TEQ v4,v2 BEQ |L002f54.J25.check_sprite_area| ADD a1,v6,#1 ADD a4,a4,#1 STR a4,[sp,#&10] MUL a1,a4,a1 ADD a4,v4,a1,LSL #2 CMP a4,v2 BGT |L002fa0.J50.check_sprite_area| TEQ a2,a3,ASR #24 BNE |L002ee8.J29.check_sprite_area| ADD a1,v2,a1,LSL #2 CMP a1,v3 BGT |L002fa0.J50.check_sprite_area| SUB a1,v3,v2 SUB a2,v2,v4 TEQ a1,a2 BNE |L002fa0.J50.check_sprite_area| B |L002f6c.J43.check_sprite_area| |L002ee8.J29.check_sprite_area| CMP a3,#&ff BLE |L002ef8.J36.check_sprite_area| TST a3,#1 BEQ |L002fa0.J50.check_sprite_area| |L002ef8.J36.check_sprite_area| ADD a4,sp,#4 STMDB sp!,{a4} MOV a4,#9 MOV a2,#&20000003 MOV a1,#&35 BL _swix ADD sp,sp,#4 TEQ a1,#0 BNE |L002fa0.J50.check_sprite_area| LDR a1,[sp,#4] RSB a2,a1,#5 MOV a2,v6,LSL a2 LDR a3,[sp,#0] ADD a3,a3,#1 ADD a1,a2,a3,ASR a1 ADD a1,a1,#&1f BIC a1,a1,#&1f MOV a1,a1,LSR #3 LDR a2,[sp,#&10] MLA a1,a2,a1,v2 TEQ a1,v3 BNE |L002fa0.J50.check_sprite_area| B |L002f6c.J43.check_sprite_area| |L002f54.J25.check_sprite_area| ADD a1,v6,#1 ADD a2,a4,#1 MUL a1,a2,a1 ADD a1,v4,a1,LSL #2 CMP a1,v3 BGT |L002fa0.J50.check_sprite_area| |L002f6c.J43.check_sprite_area| ORR a1,v3,v4 ORR a1,a1,v2 TST a1,#3 BNE |L002fa0.J50.check_sprite_area| ADD v1,v1,v3 LDR a1,[sp,#8] ADD a1,a1,#1 LDR a2,[sp,#&c] CMP a1,a2 BGE |L002fa8.J48.check_sprite_area| ADD a2,v1,#&2c CMP a2,v5 BLE |L002fa8.J48.check_sprite_area| |L002fa0.J50.check_sprite_area| MOV a1,#1 LDMDB fp,{v1-v6,fp,sp,pc}^ |L002fa8.J48.check_sprite_area| ADD sp,sp,#4 STR a1,[sp,#4] LDR a2,[sp,#8] CMP a1,a2 BLT |L002e3c.J8.check_sprite_area| |L002fbc.J9.check_sprite_area| MOV a1,#0 |L002fc0.J55.check_sprite_area| LDMDB fp,{v1-v6,fp,sp,pc}^ rr MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 CMN a1,#1 MOVEQ a2,#4 MOVEQ a1,#&bd ADDEQ a1,a1,#&200 BLEQ exit_c MOV a1,v1 LDMDB fp,{v1,fp,sp,pc}^ check_workspace MOV ip,sp STMDB sp!,{v1,fp,ip,lr,pc} SUB fp,ip,#4 MOVS v1,a1 MOVEQ a2,#1 MOVEQ a1,#&2fc BLEQ exit_c LDR a3,[v1,#0] LDR a2,[pc, #L003074-.-8] ADD a1,v1,#&2000 TEQ a3,a2 BEQ |L003054.J6.check_workspace| STR a2,[v1,#0] MOV a3,#0 STR a2,[a1,#&2ec] STR a3,[v1,#8] ADD a3,v1,#&22c ADD a4,v1,#&2ec ADD a4,a4,#&2000 MVN ip,#0 CMP a4,a3 BLS |L003054.J6.check_workspace| |L003048.J8.check_workspace| STR ip,[a3],#&418 CMP a4,a3 BHI |L003048.J8.check_workspace| |L003054.J6.check_workspace| LDR a1,[a1,#&2ec] TEQ a1,a2 MOVNE a2,#4 MOVNE a1,#&67 ADDNE a1,a1,#&300 LDMNEDB fp,{v1,fp,sp,lr} BNE exit_c LDMDB fp,{v1,fp,sp,pc}^ L003074 DCD &075bcd15 compile_word MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV v2,a2 LDR a1,[a1,#&10] LDR a2,[v1,#&14] CMP a1,a2 MOVCS a2,#1 MOVCS a1,#&2e ADDCS a1,a1,#&400 BLCS exit_c LDR a1,[v1,#&10] STR v2,[a1],#4 STR a1,[v1,#&10]! LDMDB fp,{v1,v2,fp,sp,pc}^ do_ins AND a3,a2,#&f0000000 TEQ a3,#&f0000000 BICEQ a2,a2,#&f0000000 BEQ |L0030d0.J6.do_ins| TEQ a3,#0 ORREQ a2,a2,#&e0000000 |L0030d0.J6.do_ins| B compile_word define_label MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a2,#0] TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&5f ADDNE a1,a1,#&400 BLNE exit_c LDR a2,[v2,#&10]! STR a2,[v1,#0] LDR a1,[v1,#4] TEQ a1,#0 LDMEQDB fp,{v1,v2,fp,sp,pc}^ ADD a3,a1,#8 SUBS a2,a2,a3 ADDMI a2,a2,#3 MOV a2,a2,ASR #2 BIC a2,a2,#&ff000000 LDR a3,[a1,#0] ORR a2,a2,a3 STR a2,[a1,#0] MOV a1,#0 STR a1,[v1,#4]! LDMDB fp,{v1,v2,fp,sp,pc}^ do_branch MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v3,a2 MOV v1,a3 LDR a1,[a3,#0] TEQ a1,#0 LDR a1,[a3,#4] BNE |L003194.J4.do_branch| TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&7e ADDNE a1,a1,#&400 BLNE exit_c LDR a1,[v2,#&10] MOV a2,v3 STR a1,[v1,#4]! MOV a1,v2 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L003194.J4.do_branch| TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&84 ADDNE a1,a1,#&400 BLNE exit_c LDR a1,[v2,#&10] ADD a1,a1,#8 LDR a2,[v1,#0] SUBS a1,a2,a1 ADDMI a1,a1,#3 MOV a1,a1,ASR #2 BIC a1,a1,#&ff000000 ORR a2,a1,v3 MOV a1,v2 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins do_set_regname MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v3,a2 MOV v1,a3 CMN a3,#1 BNE |L003240.J4.do_set_regname| LDR a1,[v2,#&1e0] MOVS v1,a1 ADD a1,a1,#1 STR a1,[v2,#&1e0] BMI |L003210.J7.do_set_regname| CMP v1,#&c BLE |L003220.J6.do_set_regname| |L003210.J7.do_set_regname| MOV a2,#4 MOV a1,#&97 ADD a1,a1,#&400 BL exit_c |L003220.J6.do_set_regname| TEQ v1,#&c BNE |L003240.J4.do_set_regname| LDR a1,[v2,#&1e4]! TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&98 ADDNE a1,a1,#&400 BLNE exit_c |L003240.J4.do_set_regname| STR v1,[v3,#0] LDMDB fp,{v1-v3,fp,sp,pc}^ compile_buffer_init MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 LDR a1,[a2,#8] ADD ip,a1,a1,LSL #1 ADD a1,ip,a1,LSL #7 ADD a1,a2,a1,LSL #3 ADD a1,a1,#&244 STR a1,[a2,#&c] STR a1,[a2,#&10] LDR a1,[a2,#&c] ADD a1,a1,#&400 STR a1,[a2,#&14] ADD a1,a2,#&18 ADD a2,v1,#&150 MOV v3,#0 CMP a2,a1 BCC |L0032a8.J5.compile_buffer_init| |L003294.J4.compile_buffer_init| STR v3,[a1,#0] STR v3,[a1,#4]! ADD a1,a1,#4 CMP a2,a1 BCS |L003294.J4.compile_buffer_init| |L0032a8.J5.compile_buffer_init| ADD a1,v1,#&158 ADD v2,v1,#&1dc MVN a2,#0 CMP v2,a1 BCC |L0032c8.J9.compile_buffer_init| |L0032bc.J8.compile_buffer_init| STR a2,[a1],#4 CMP v2,a1 BCS |L0032bc.J8.compile_buffer_init| |L0032c8.J9.compile_buffer_init| STR v3,[v1,#&1e0] ADD a2,v1,#&1c4 MOV a1,v1 MOV a3,#1 BL do_set_regname ADD a2,v1,#&1c8 MOV a1,v1 MOV a3,#2 BL do_set_regname ADD a2,v1,#&1cc MOV a1,v1 MOV a3,#3 BL do_set_regname ADD a2,v1,#&1d0 MOV a1,v1 MOV a3,#&c BL do_set_regname ADD a2,v1,#&1d4 MOV a1,v1 MOV a3,#&d BL do_set_regname ADD a2,v1,#&1d8 MOV a1,v1 MOV a3,#&e BL do_set_regname MOV a2,v2 MOV a1,v1 MOV a3,#&f BL do_set_regname STR v3,[v1,#&1e4]! LDMDB fp,{v1-v3,fp,sp,pc}^ compile_buffer_done LDR a2,[a1,#8] ADD a2,a2,#1 STR a2,[a1,#8] CMP a2,#8 MOVGE a2,#0 STRGE a2,[a1,#8]! MOVS pc,lr simple_x_scale ADD ip,a1,#&40 LDMIA ip,{a3,ip} MOV a4,a3 SUB ip,ip,a3 TEQ ip,a3 BNE |L0033ac.J5.simple_x_scale| LDR a3,[a1,#&30] CMP a4,a3 BGT |L0033ac.J5.simple_x_scale| LDR a1,[a1,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L0033ac.J5.simple_x_scale| LDR a1,[a2,#&1e8] TEQ a1,#0 LDREQ a1,[a2,#&1f4]! TEQEQ a1,#0 MOVEQ a1,#1 MOVEQS pc,lr |L0033ac.J5.simple_x_scale| MOV a1,#0 MOVS pc,lr x_block_move MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV v2,a2 BL simple_x_scale TEQ a1,#0 BEQ |L00341c.J5.x_block_move| MOV a1,#1 LDR a2,[v1,#&78] MOV a2,a1,LSL a2 LDR a1,[v1,#&100] TEQ a2,a1 LDREQ a1,[v2,#&1e8] TEQEQ a1,#0 LDREQ a1,[v2,#&1ec]! TEQEQ a1,#0 LDREQ a1,[v1,#&b4] TEQEQ a1,#0 LDREQ a1,[v1,#&f8] TEQEQ a1,#0 BNE |L00341c.J5.x_block_move| LDR a1,[v1,#&10c]! TEQ a1,#0 MOVEQ a1,#1 LDMEQDB fp,{v1,v2,fp,sp,pc}^ |L00341c.J5.x_block_move| MOV a1,#0 LDMDB fp,{v1,v2,fp,sp,pc}^ simple_y_scale ADD a2,a1,#&10 LDMIA a2,{a1,a2} TEQ a2,a1 MOVNE a1,#0 MOVEQ a1,#1 MOVS pc,lr ptrs_rn MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 ADD a2,a2,#&158 MOV a1,v1 MOV a3,#&e BL do_set_regname ADD a2,v1,#&15c MOV a1,v1 MVN a3,#0 BL do_set_regname ADD a2,v1,#&198 MOV a1,v1 MVN a3,#0 BL do_set_regname LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L00349c.J5.ptrs_rn| LDR a1,[v2,#&f4]! AND a1,a1,#&ff TEQ a1,#&32 BNE |L0034ac.J4.ptrs_rn| |L00349c.J5.ptrs_rn| ADD a2,v1,#&168 MOV a1,v1 MVN a3,#0 BL do_set_regname |L0034ac.J4.ptrs_rn| LDR a1,[v1,#&1f4] TEQ a1,#0 LDMEQDB fp,{v1,v2,fp,sp,pc}^ ADD a2,v1,#&184 MOV a1,v1 MVN a3,#0 LDMDB fp,{v1,v2,fp,sp,lr} B do_set_regname xloop_rn MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 MOV v3,#0 BL x_block_move ADD a2,v1,#&160 ADD v6,v1,#&1a0 ADD v5,v1,#&1a8 TEQ a1,#0 BEQ |L0035b8.J4.xloop_rn| MOV a1,v1 MVN a3,#0 BL do_set_regname MOV a2,v6 MOV a1,v1 MVN a3,#0 BL do_set_regname MOV a2,v5 MOV a1,v1 MVN a3,#0 BL do_set_regname ADD a2,v1,#&188 MOV a1,v1 MVN a3,#0 BL do_set_regname LDR a1,[v1,#&15c] TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&f5 ADDNE a1,a1,#&500 BLNE exit_c LDR a1,[v1,#&198] TEQ a1,#1 MOVNE a2,#4 MOVNE a1,#&f6 ADDNE a1,a1,#&500 BLNE exit_c LDR a1,[v1,#&160] TEQ a1,#2 MOVNE a2,#4 MOVNE a1,#&f7 ADDNE a1,a1,#&500 BLNE exit_c LDR a1,[v1,#&1a0] TEQ a1,#3 MOVNE a2,#4 MOVNE a1,#&1f8 ADDNE a1,a1,#&400 BLNE exit_c LDR a1,[v1,#&1a8]! TEQ a1,#4 MOVNE a2,#4 MOVNE a1,#&f9 ADDNE a1,a1,#&500 LDMNEDB fp,{v1-v6,fp,sp,lr} BNE exit_c LDMDB fp,{v1-v6,fp,sp,pc}^ |L0035b8.J4.xloop_rn| LDR a1,[v2,#&f4] AND a1,a1,#&ff ADD v4,v1,#&164 TEQ a1,#&32 BNE |L0035e0.J17.xloop_rn| |L0035cc.J18.xloop_rn| MOV a2,v4 MOV a1,v1 MVN a3,#0 BL do_set_regname B |L0035f8.J19.xloop_rn| |L0035e0.J17.xloop_rn| LDR a1,[v2,#&74] TEQ a1,#5 MOVNE a1,v1 MVNNE a3,#0 BLNE do_set_regname BNE |L0035cc.J18.xloop_rn| |L0035f8.J19.xloop_rn| LDR a1,[v1,#&1ec] TEQ a1,#0 BEQ |L003644.J30.xloop_rn| ADD a2,v1,#&16c MOV a1,v1 MVN a3,#0 BL do_set_regname LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L003634.J25.xloop_rn| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 ADDNE a2,v1,#&174 BNE |L003638.J67.xloop_rn| |L003634.J25.xloop_rn| ADD a2,v1,#&170 |L003638.J67.xloop_rn| MOV a1,v1 MVN a3,#0 BL do_set_regname |L003644.J30.xloop_rn| LDR a1,[v1,#&1e8] TEQ a1,#0 BEQ |L00365c.J29.xloop_rn| LDR a1,[v2,#&104] TEQ a1,#&20 MOVEQ v3,#1 |L00365c.J29.xloop_rn| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L003690.J33.xloop_rn| ADD a2,v1,#&18c MOV a1,v1 MVN a3,#0 BL do_set_regname ADD a2,v1,#&190 MOV a1,v1 MVN a3,#0 BL do_set_regname B |L003734.J35.xloop_rn| |L003690.J33.xloop_rn| LDR a1,[v2,#&b4] TEQ a1,#0 LDREQ a1,[v2,#&f8] TEQEQ a1,#0 BNE |L0036b0.J37.xloop_rn| LDR a1,[v2,#&10c] TEQ a1,#0 BEQ |L0036c0.J36.xloop_rn| |L0036b0.J37.xloop_rn| ADD a2,v1,#&1a4 MOV a1,v1 MVN a3,#0 BL do_set_regname |L0036c0.J36.xloop_rn| LDR a2,[v2,#&f8] TEQ a2,#0 LDR a1,[v2,#&74] LDRNE a2,[v2,#&104] TEQNE a2,#&10 BNE |L0036e0.J45.xloop_rn| TEQ a1,#5 BNE |L0036f0.J44.xloop_rn| |L0036e0.J45.xloop_rn| LDR a1,[v2,#&104] TEQ a1,#&20 MOVNE v3,#2 B |L003714.J47.xloop_rn| |L0036f0.J44.xloop_rn| TEQ a1,#4 LDREQ a1,[v2,#&104] TEQEQ a1,#&20 BNE |L003714.J47.xloop_rn| MOV v3,#2 ADD a2,v1,#&180 MOV a1,v1 MVN a3,#0 BL do_set_regname |L003714.J47.xloop_rn| TEQ v3,#0 LDREQ a1,[v2,#&40] LDREQ a2,[v2,#&68] BLEQ |__rt_sdiv| TEQEQ a2,#0 BNE |L003734.J35.xloop_rn| CMP a1,#4 MOVGT v3,#1 |L003734.J35.xloop_rn| LDR a1,[v2,#&104] TEQ a1,#&20 BEQ |L003760.J54.xloop_rn| ADD a2,v1,#&19c MOV a1,v1 MVN a3,#0 BL do_set_regname MOV a2,v6 MOV a1,v1 MVN a3,#0 BL do_set_regname |L003760.J54.xloop_rn| LDR a1,[v2,#&74] CMP a1,#3 BGT |L003790.J56.xloop_rn| MOV a2,v1 MOV a1,v2 BL simple_x_scale TEQ a1,#0 BEQ |L003790.J56.xloop_rn| ADD a2,v1,#&1c0 MOV a1,v1 MVN a3,#0 BL do_set_regname |L003790.J56.xloop_rn| MOV a2,v5 MOV a1,v1 MVN a3,#0 BL do_set_regname MOV a2,v1 MOV a1,v2 BL simple_x_scale TEQ a1,#0 BNE |L0037c4.J16.xloop_rn| ADD a2,v1,#&1ac MOV a1,v1 MVN a3,#0 BL do_set_regname |L0037c4.J16.xloop_rn| CMP v3,#1 BLT |L0037dc.J61.xloop_rn| ADD a2,v1,#&178 MOV a1,v1 MVN a3,#0 BL do_set_regname |L0037dc.J61.xloop_rn| CMP v3,#2 LDMLTDB fp,{v1-v6,fp,sp,pc}^ ADD a2,v1,#&17c MOV a1,v1 MVN a3,#0 LDMDB fp,{v1-v6,fp,sp,lr} B do_set_regname yloop_rn_count MOV a3,#2 LDR a4,[a1,#&14] LDR ip,[a1,#&10] TEQ a4,ip MOVNE a3,#3 LDR a2,[a2,#&1f0] TEQ a2,#0 BNE |L003828.J7.yloop_rn_count| LDR a2,[a1,#&f4] AND a2,a2,#&ff TEQ a2,#&32 BNE |L00382c.J6.yloop_rn_count| |L003828.J7.yloop_rn_count| ADD a3,a3,#1 |L00382c.J6.yloop_rn_count| LDR a1,[a1,#&110] TEQ a1,#0 ADDNE a3,a3,#1 MOV a1,a3 MOVS pc,lr yloop_rn MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 ADD a2,a2,#&1b0 MOV a1,v1 MVN a3,#0 BL do_set_regname MOV a2,v1 MOV a1,v2 BL simple_y_scale TEQ a1,#0 BNE |L003888.J4.yloop_rn| ADD a2,v1,#&1b4 MOV a1,v1 MVN a3,#0 BL do_set_regname |L003888.J4.yloop_rn| ADD a2,v1,#&1b8 MOV a1,v1 MVN a3,#0 BL do_set_regname LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L0038b4.J7.yloop_rn| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L0038c4.J6.yloop_rn| |L0038b4.J7.yloop_rn| ADD a2,v1,#&1bc MOV a1,v1 MVN a3,#0 BL do_set_regname |L0038c4.J6.yloop_rn| LDR a1,[v2,#&110]! TEQ a1,#0 LDMEQDB fp,{v1,v2,fp,sp,pc}^ ADD a2,v1,#&194 MOV a1,v1 MVN a3,#0 LDMDB fp,{v1,v2,fp,sp,lr} B do_set_regname get_in_shift MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&110] TEQ a1,#0 LDRNE a1,[v2,#&74] TEQNE a1,#5 LDR a1,[v1,#&160] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 BEQ |L003a24.J4.get_in_shift| ADD a3,v2,#&114 SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins LDR a1,[v2,#&74]! TEQ a1,#4 LDR a1,[v1,#&160] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&160] BL rr ORR a1,v2,a1,LSL #16 BNE |L0039c0.J7.get_in_shift| ORR a2,a1,#&2100000 ORR a2,a2,#1 MOV a1,v1 BL do_ins LDR a1,[v1,#&160] BL rr MOV a2,#&1a00000 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&f2000000 ORR a2,a2,#2 MOV a1,v1 BL do_ins LDR a1,[v1,#&160] BL rr MOV v2,a1 LDR a1,[v1,#&160] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&200 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L0039c0.J7.get_in_shift| ORR a2,a1,#&2100000 ORR a2,a2,#3 MOV a1,v1 BL do_ins LDR a1,[v1,#&160] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&160] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&160] BL rr MOV v2,a1 LDR a1,[v1,#&160] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&180 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L003a24.J4.get_in_shift| ADD a1,v2,#&20 SUB a1,a1,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins LDR a1,[v1,#&160] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&160] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins fetch_pixel_init MOV ip,sp STMDB sp!,{v1-v5,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&f4] AND a1,a1,#&ff ADD a3,v2,#8 SUB a2,a3,v2 ORR v4,a2,#&1800000 TEQ a1,#&32 BNE |L003ac8.J4.fetch_pixel_init| LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&38 SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 B |L003b08.J49.fetch_pixel_init| |L003ac8.J4.fetch_pixel_init| LDR a1,[v2,#&110] TEQ a1,#0 LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORREQ a1,a1,#&4100000 ADDEQ a2,a1,v4 BEQ |L003b08.J49.fetch_pixel_init| ORR a2,a1,#&4100000 ADD a3,v2,#&118 SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 |L003b08.J49.fetch_pixel_init| MOV a1,v1 BL do_ins MOV a2,v1 MOV a1,v2 BL x_block_move TEQ a1,#0 BEQ |L003b68.J10.fetch_pixel_init| MOV a2,v1 MOV a1,v2 BL get_in_shift LDR a1,[v1,#&188] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a1,v2,#&108 SUB a1,a1,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 LDMDB fp,{v1-v5,fp,sp,lr} B do_ins |L003b68.J10.fetch_pixel_init| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L003c34.J13.fetch_pixel_init| LDR a1,[v1,#&18c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&34 SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&18c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#&18 MOV a1,v1 BL do_ins LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORR a2,a1,#&800000 MOV a1,v1 BL do_ins LDR a1,[v1,#&190] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&130 SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 B |L003c6c.J50.fetch_pixel_init| |L003c34.J13.fetch_pixel_init| LDR a1,[v2,#&74] TEQ a1,#5 BEQ |L003c74.J15.fetch_pixel_init| MOV a2,v1 MOV a1,v2 BL get_in_shift LDR a1,[v1,#&160] BL rr MOV v3,a1 LDR a1,[v1,#&160] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&d80 |L003c6c.J50.fetch_pixel_init| MOV a1,v1 BL do_ins |L003c74.J15.fetch_pixel_init| LDR a1,[v1,#&1ec] TEQ a1,#0 BEQ |L003e04.J18.fetch_pixel_init| ADD a3,v2,#&48 SUB a2,a3,v2 ORR v3,a2,#&1800000 LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L003ca8.J21.fetch_pixel_init| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L003ddc.J20.fetch_pixel_init| |L003ca8.J21.fetch_pixel_init| LDR a1,[v1,#&170] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v5,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&88 SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 MOV a1,v1 BL do_ins LDR a1,[v1,#&1f0] TEQ a1,#0 LDR a1,[v1,#&168] BL rr BEQ |L003d18.J24.fetch_pixel_init| MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&8c SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 B |L003d88.J51.fetch_pixel_init| |L003d18.J24.fetch_pixel_init| MOV v5,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v5,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v4 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v4,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v3 MOV a1,v1 BL do_ins LDR a1,[v1,#&168] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&168] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORR a2,a1,#&800000 |L003d88.J51.fetch_pixel_init| MOV a1,v1 BL do_ins LDR a1,[v1,#&170] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&170] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&170] BL rr MOV v3,a1 LDR a1,[v1,#&170] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&d80 B |L003dfc.J52.fetch_pixel_init| |L003ddc.J20.fetch_pixel_init| LDR a1,[v1,#&174] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v4,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v3 |L003dfc.J52.fetch_pixel_init| MOV a1,v1 BL do_ins |L003e04.J18.fetch_pixel_init| LDR a1,[v2,#&10c] TEQ a1,#0 BEQ |L003e40.J28.fetch_pixel_init| LDR a1,[v1,#&1a4] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&10c SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 B |L003ef4.J53.fetch_pixel_init| |L003e40.J28.fetch_pixel_init| LDR a1,[v2,#&f8] TEQ a1,#0 BEQ |L003e7c.J31.fetch_pixel_init| LDR a1,[v1,#&1a4] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&f8 SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 B |L003ef4.J53.fetch_pixel_init| |L003e7c.J31.fetch_pixel_init| LDR a1,[v2,#&b4] TEQ a1,#0 BEQ |L003efc.J30.fetch_pixel_init| LDR a1,[v1,#&1a4] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&b4 SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins LDR a1,[v2,#&104] CMP a1,#8 BGT |L003efc.J30.fetch_pixel_init| LDR a1,[v2,#&74] CMP a1,#4 BLT |L003efc.J30.fetch_pixel_init| LDR a1,[v1,#&1a4] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a4] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&5900000 ORR a2,a2,#4 |L003ef4.J53.fetch_pixel_init| MOV a1,v1 BL do_ins |L003efc.J30.fetch_pixel_init| LDR a1,[v2,#&74] CMP a1,#3 BGT |L003f38.J39.fetch_pixel_init| MOV a2,v1 MOV a1,v2 BL simple_x_scale TEQ a1,#0 BEQ |L003f38.J39.fetch_pixel_init| LDR a1,[v1,#&1c0] BL rr LDR a2,[v1,#&200] ORR a1,a2,a1,LSL #12 ORR a2,a1,#&3a00000 MOV a1,v1 BL do_ins |L003f38.J39.fetch_pixel_init| LDR a1,[v1,#&180] CMN a1,#1 BEQ |L003fc4.J42.fetch_pixel_init| BL rr MOV a2,#&3a00000 ADD a2,a2,#&e0 ORR a2,a2,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&180] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&180] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&180] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&400 MOV a1,v1 BL do_ins LDR a1,[v1,#&180] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&180] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&180] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&400 MOV a1,v1 BL do_ins |L003fc4.J42.fetch_pixel_init| LDR a1,[v1,#&1f4] TEQ a1,#0 LDMEQDB fp,{v1-v5,fp,sp,pc}^ LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&4c SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#1 MOV a1,v1 BL do_ins LDR a1,[v1,#&184] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&50 SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins LDR a1,[v1,#&184] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&184] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#1 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&184] BL rr ORR a1,v3,a1 ORR a2,a1,#&200000 MOV a1,v1 BL do_ins LDR a1,[v1,#&184] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&184] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&80 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,#&c10 ADD v3,v3,#&3a00000 ORR a2,v3,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v4,a1,LSL #16 ORR a2,a1,#&5900000 ORR a2,a2,#&1fc MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV a2,#&3100000 ADD a2,a2,#1 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&184] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&184] BL rr ORR a1,v4,a1,LSL #16 ORR a2,a1,#&10000000 ORR a2,a2,#&2200000 ORR a2,a2,#3 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr ORR a2,v3,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&5900000 ORR a2,a2,#&1f8 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr LDR a2,[v2,#&104]! ORR a1,a2,a1,LSL #16 ORR a2,a1,#&3100000 MOV a1,v1 BL do_ins LDR a1,[v1,#&184] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&184] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&10000000 ORR a2,a2,#&2200000 ORR a2,a2,#2 MOV a1,v1 BL do_ins LDR a1,[v1,#&184] BL rr LDR a2,[v1,#&1f4] ADD a2,a2,#&17 ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&184] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 LDMDB fp,{v1-v5,fp,sp,lr} B do_ins save_pixel_init MOV ip,sp STMDB sp!,{v1-v4,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a2,#&198] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&c SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins MOV a2,v1 MOV a1,v2 BL x_block_move ADD a3,v2,#&4c SUB a2,a3,v2 ORR v3,a2,#&1800000 TEQ a1,#0 BEQ |L004340.J4.save_pixel_init| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v2,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v3 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #16 LDR a2,[v1,#&220] SUB a2,a2,#1 ORR a1,a1,a2 ORR a2,a1,#&2000000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr LDR a2,[v1,#&214] ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 MOV a1,v1 LDMDB fp,{v1-v4,fp,sp,lr} B do_ins |L004340.J4.save_pixel_init| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L00435c.J8.save_pixel_init| LDR a1,[v2,#&104] TEQ a1,#&20 BEQ |L004384.J7.save_pixel_init| |L00435c.J8.save_pixel_init| LDR a1,[v1,#&158] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v4,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v3 MOV a1,v1 BL do_ins |L004384.J7.save_pixel_init| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L004434.J11.save_pixel_init| LDR a1,[v1,#&18c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a2,v3,a1,LSL #16 LDR a1,[v1,#&220] ORR a1,a2,a1 ORR a2,a1,#&2000000 MOV a1,v1 BL do_ins LDR a1,[v1,#&224] CMP a1,#2 BLE |L0043fc.J13.save_pixel_init| LDR a1,[v1,#&18c] BL rr LDR a2,[v1,#&224] SUB a2,a2,#2 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&18c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins |L0043fc.J13.save_pixel_init| LDR a1,[v1,#&224] CMP a1,#2 BGE |L004434.J11.save_pixel_init| LDR a1,[v1,#&18c] BL rr LDR a2,[v1,#&224] RSB a2,a2,#2 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&18c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins |L004434.J11.save_pixel_init| LDR a1,[v2,#&104]! TEQ a1,#&20 LDMEQDB fp,{v1-v4,fp,sp,pc}^ LDR a1,[v1,#&1a0] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #16 LDR a2,[v1,#&220] SUB a2,a2,#1 ORR a1,a1,a2 ORR a2,a1,#&2000000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr LDR a2,[v1,#&214] ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v2,a1 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&d80 MOV a1,v1 LDMDB fp,{v1-v4,fp,sp,lr} B do_ins xloop_init MOV ip,sp STMDB sp!,{v1-v4,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a2,#&1a8] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&2c SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 MOV a1,v1 BL do_ins MOV a2,v1 MOV a1,v2 BL simple_x_scale TEQ a1,#0 BNE |L004598.J4.xloop_init| ADD a3,v2,#&30 SUB a2,a3,v2 ORR v3,a2,#&1800000 LDR a1,[v1,#&1f4] TEQ a1,#0 BEQ |L004570.J6.xloop_init| LDR a1,[v2,#&74] TEQ a1,#4 LDREQ a1,[v1,#&158] BEQ |L004574.J14.xloop_init| |L004570.J6.xloop_init| LDR a1,[v1,#&1ac] |L004574.J14.xloop_init| BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v4,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v3 MOV a1,v1 BL do_ins |L004598.J4.xloop_init| MOV a2,v1 MOV a1,v2 BL x_block_move TEQ a1,#0 LDMEQDB fp,{v1-v4,fp,sp,pc}^ LDR a1,[v1,#&1a8] BL rr LDR a2,[v1,#&214] ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&1a8] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 LDMDB fp,{v1-v4,fp,sp,lr} B do_ins yloop_init MOV ip,sp STMDB sp!,{v1-v4,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&110] TEQ a1,#0 BEQ |L00462c.J4.yloop_init| LDR a1,[v1,#&194] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&11c SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins |L00462c.J4.yloop_init| LDR a1,[v1,#&1b0] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&18 SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 MOV a1,v1 BL do_ins MOV a2,v1 MOV a1,v2 BL simple_y_scale TEQ a1,#0 BNE |L0046a8.J6.yloop_init| LDR a1,[v1,#&1b4] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a3,a1,#&4100000 ADD a2,v2,#&1c SUB a1,a2,v2 ORR a1,a1,#&1800000 ADD a2,a3,a1 MOV a1,v1 BL do_ins |L0046a8.J6.yloop_init| LDR a1,[v2,#&f4] AND a1,a1,#&ff ADD a3,v2,#4 SUB a2,a3,v2 ORR v3,a2,#&1800000 TEQ a1,#&32 BEQ |L004704.J8.yloop_init| LDR a1,[v2,#&110] TEQ a1,#0 LDR a1,[v1,#&1b8] BL rr MOVNE a2,#&3a00000 ADDNE a2,a2,#1 ORRNE a2,a2,a1,LSL #12 BNE |L0046fc.J20.yloop_init| MOV v4,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v4,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v3 |L0046fc.J20.yloop_init| MOV a1,v1 BL do_ins |L004704.J8.yloop_init| LDR a1,[v1,#&1f0] TEQ a1,#0 BEQ |L004748.J13.yloop_init| LDR a1,[v1,#&1bc] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a1,v2,#&90 SUB a1,a1,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 LDMDB fp,{v1-v4,fp,sp,lr} B do_ins |L004748.J13.yloop_init| LDR a1,[v2,#&f4]! AND a1,a1,#&ff TEQ a1,#&32 LDMNEDB fp,{v1-v4,fp,sp,pc}^ LDR a1,[v1,#&1bc] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v2,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,v3 MOV a1,v1 LDMDB fp,{v1-v4,fp,sp,lr} B do_ins fetch_pixel_unmasked MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 LDR a2,[a1,#&f4] AND a2,a2,#&ff TEQ a2,#&32 BNE |L00489c.J4.fetch_pixel_unmasked| LDR a1,[a1,#&104] TEQ a1,#&20 BNE |L0047e4.J6.fetch_pixel_unmasked| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&18c] BL rr ORR a1,v2,a1 ORR a2,a1,#&7900000 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins |L0047e4.J6.fetch_pixel_unmasked| TEQ a1,#&10 BNE |L004840.J9.fetch_pixel_unmasked| LDR a1,[v1,#&164] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&800 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&820 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins |L004840.J9.fetch_pixel_unmasked| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&164] BL rr ORR a1,v2,a1,LSL #16 LDR a2,[v1,#&218] ORR a1,a1,a2 ORR a2,a1,#&2000000 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&190] BL rr ORR a2,v2,a1 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins |L00489c.J4.fetch_pixel_unmasked| LDR a1,[a1,#&74] TEQ a1,#5 BNE |L0048d0.J13.fetch_pixel_unmasked| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4900000 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins |L0048d0.J13.fetch_pixel_unmasked| TEQ a1,#4 BNE |L00492c.J16.fetch_pixel_unmasked| LDR a1,[v1,#&164] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&800 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&820 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins |L00492c.J16.fetch_pixel_unmasked| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&164] BL rr ORR a2,v2,a1,LSL #16 LDR a1,[v1,#&200] ORR a1,a2,a1 ORR a2,a1,#&2000000 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins fetch_pixel MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 MOV v3,a3 LDR a1,[a2,#&1ec] TEQ a1,#0 BEQ |L0049ac.J4.fetch_pixel| LDR a1,[v1,#&16c] BL rr MOV a2,#&3100000 ADD a2,a2,#1 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins MOV a3,v3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch |L0049ac.J4.fetch_pixel| MOV a2,v1 MOV a1,v2 BL fetch_pixel_unmasked LDR a1,[v1,#&1ec]! LDMDB fp,{v1-v3,fp,sp,pc}^ fetch_pixel2 MOV ip,sp STMDB sp!,{v1-v4,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 MOV v3,a3 LDR a1,[a1,#&f4] AND a1,a1,#&ff TEQ a1,#&32 MOVEQ a2,#4 MOVEQ a1,#&37 ADDEQ a1,a1,#&800 BLEQ exit_c LDR a1,[v1,#&1ec] TEQ a1,#0 BEQ |L004af0.J6.fetch_pixel2| LDR a1,[v1,#&1f0] TEQ a1,#0 LDR a1,[v1,#&16c] BL rr LDR a2,[v1,#&204] BEQ |L004aac.J8.fetch_pixel2| ORR v4,a1,a2,LSL #7 LDR a1,[v1,#&16c] BL rr ORR a1,v4,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&170] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&170] BL rr ORR a2,v4,a1,LSL #16 LDR a1,[v1,#&204] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&16c] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&168] BL rr ORR a1,v4,a1,LSL #16 ORR a2,a1,#&f0000000 ORR a2,a2,#&5b00000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&16c] BL rr MOV a2,#&3100000 ADD a2,a2,#1 ORR a2,a2,a1,LSL #16 B |L004ad8.J22.fetch_pixel2| |L004aac.J8.fetch_pixel2| TEQ a2,#1 MOVEQ a2,#&2000000 ADDEQ a2,a2,#2 BEQ |L004ad0.J11.fetch_pixel2| LDR a2,[v1,#&208] RSB a2,a2,#&20 MOV a3,#&2000000 ADD a3,a3,#1 ORR a2,a3,a2,LSL #7 |L004ad0.J11.fetch_pixel2| ORR a1,a2,a1,LSL #16 ORR a2,a1,#&1100000 |L004ad8.J22.fetch_pixel2| MOV a1,v1 BL do_ins MOV a3,v3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch |L004af0.J6.fetch_pixel2| LDR a1,[v2,#&74]! TEQ a1,#5 BNE |L004b20.J14.fetch_pixel2| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&5900000 ORR a2,a2,#4 B |L004b7c.J23.fetch_pixel2| |L004b20.J14.fetch_pixel2| TEQ a1,#4 BNE |L004b4c.J17.fetch_pixel2| LDR a1,[v1,#&164] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&820 B |L004b7c.J23.fetch_pixel2| |L004b4c.J17.fetch_pixel2| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1c0] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&164] BL rr LDR a2,[v1,#&1fc] ORR a1,a1,a2,LSL #7 ORR a1,v2,a1 ORR a2,a1,#&20 |L004b7c.J23.fetch_pixel2| MOV a1,v1 BL do_ins LDR a1,[v1,#&1ec]! LDMDB fp,{v1-v4,fp,sp,pc}^ do_add_ordered_dither_gun MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 RSB a1,a3,#&20 SUB v2,a1,a4 LDR a1,[a2,#&158] BL rr ORR v3,a1,v2,LSL #7 LDR a1,[v1,#&184] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&1700000 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&184] BL rr ORR a1,a1,v2,LSL #7 ORR a1,v3,a1 ORR a2,a1,#&30800000 ORR a2,a2,#&20 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins add_ordered_dither MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v3,a1 MOV v2,a2 MOV v1,a3 LDR a4,[a2,#&1f4] TEQ a4,#0 LDMEQDB fp,{v1-v3,fp,sp,pc}^ MOV a4,v1,LSL #1 BL do_add_ordered_dither_gun MOV a4,v1 MOV a3,v1 MOV a2,v2 MOV a1,v3 BL do_add_ordered_dither_gun MOV a3,v1 MOV a2,v2 MOV a1,v3 MOV a4,#0 LDMDB fp,{v1-v3,fp,sp,lr} B do_add_ordered_dither_gun translate_pixel MOV ip,sp STMDB sp!,{v1-v5,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a3,[a1,#&f4] AND a3,a3,#&ff MOV v5,#&1f TEQ a3,#&32 LDR v3,[a1,#&74] BNE |L004d24.J4.translate_pixel| LDR a1,[v1,#&1e8] AND a1,a1,#7 TEQ a1,#2 LDMNEDB fp,{v1-v5,fp,sp,pc}^ LDR a1,[v1,#&158] BL rr LDR a2,[v2,#&104] SUB a2,v5,a2 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&3800000 ORR a2,a2,#&100 ORR a2,a2,#2 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr LDR a2,[v2,#&104]! SUB a2,v5,a2 ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&40 MOV a1,v1 LDMDB fp,{v1-v5,fp,sp,lr} B do_ins |L004d24.J4.translate_pixel| LDR a3,[v1,#&1f4] TEQ a3,#0 BEQ |L004d40.J8.translate_pixel| TEQ v3,#5 MOVNE a3,#5 MOVEQ a3,#8 BL add_ordered_dither |L004d40.J8.translate_pixel| LDR a1,[v2,#&f8] TEQ a1,#0 BEQ |L004dd8.J13.translate_pixel| CMP v3,#3 MOVGT a2,#4 MOVGT a1,#&9d ADDGT a1,a1,#&800 BLGT exit_c LDR a1,[v2,#&104] TEQ a1,#&10 LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a4] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORREQ a2,a1,#&7900000 ORREQ a2,a2,#&100 BEQ |L004f1c.J58.translate_pixel| ORR a2,a1,#&7900000 ORR a2,a2,#&180 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&420 MOV a1,v1 BL do_ins MOV v3,#5 B |L004de0.J21.translate_pixel| |L004dd8.J13.translate_pixel| TEQ v3,#5 BNE |L004f2c.J20.translate_pixel| |L004de0.J21.translate_pixel| LDR a1,[v2,#&104] TEQ a1,#&20 BEQ |L0050d8.J23.translate_pixel| LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#&800 ORR a2,a2,#&f8 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1 LDR a1,[v1,#&17c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&380 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#&c00 ORR a2,a2,#&f8 MOV a1,v1 BL do_ins LDR a1,[v1,#&17c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&500 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#&f8 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&680 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&820 |L004f1c.J58.translate_pixel| MOV a1,v1 BL do_ins MOV v3,#4 B |L004f34.J24.translate_pixel| |L004f2c.J20.translate_pixel| TEQ v3,#4 BNE |L0050d8.J23.translate_pixel| |L004f34.J24.translate_pixel| LDR a1,[v2,#&104] TEQ a1,#&20 BNE |L0050d8.J23.translate_pixel| LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&800 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&d20 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1 LDR a1,[v1,#&17c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&980 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#&600 ORR a2,a2,#&3e MOV a1,v1 BL do_ins LDR a1,[v1,#&17c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&520 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&580 MOV a1,v1 BL do_ins LDR a1,[v1,#&17c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&c20 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&180] BL rr ORR a2,v3,a1 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&2a0 MOV a1,v1 BL do_ins MOV v3,#5 |L0050d8.J23.translate_pixel| LDR a1,[v2,#&b4] TEQ a1,#0 BEQ |L005180.J26.translate_pixel| LDR a1,[v1,#&210] CMP a1,#3 BGT |L005130.J28.translate_pixel| CMP v3,#4 MOVGT a2,#4 MOVGT a1,#&f6 ADDGT a1,a1,#&800 BLGT exit_c LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a4] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORR a2,a1,#&7d00000 B |L005170.J59.translate_pixel| |L005130.J28.translate_pixel| CMP v3,#3 MOVGT a2,#4 MOVGT a1,#&fc ADDGT a1,a1,#&800 BLGT exit_c LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a4] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORR a2,a1,#&7900000 ORR a2,a2,#&100 |L005170.J59.translate_pixel| MOV a1,v1 BL do_ins LDR v3,[v1,#&210] B |L005624.J35.translate_pixel| |L005180.J26.translate_pixel| TEQ v3,#4 BNE |L005624.J35.translate_pixel| LDR a1,[v1,#&210] CMP a1,#4 BGE |L005624.J35.translate_pixel| MOV v4,#&3100000 ADD v4,v4,#&10 TEQ a1,#0 BNE |L0051f8.J39.translate_pixel| LDR a1,[v1,#&158] BL rr ORR a2,v4,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV a2,#&3a00000 ADD a2,a2,#1 ORR a2,a2,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV a2,#&3a00000 ADD a2,a2,#&10000000 ORR a2,a2,a1,LSL #12 MOV a1,v1 BL do_ins MOV v3,#0 B |L00527c.J41.translate_pixel| |L0051f8.J39.translate_pixel| TEQ a1,#1 BNE |L00527c.J41.translate_pixel| LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&1a0 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#3 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#3 MOV a1,v1 BL do_ins MOV v3,#1 |L00527c.J41.translate_pixel| LDR a1,[v1,#&210] TEQ a1,#2 BNE |L005308.J44.translate_pixel| LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&120 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#7 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#7 MOV a1,v1 BL do_ins MOV v3,#2 B |L005624.J35.translate_pixel| |L005308.J44.translate_pixel| TEQ a1,#3 BNE |L005624.J35.translate_pixel| LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#&c00 ORR a2,a2,#&1c MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1 LDR a1,[v1,#&17c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&520 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#&e0 MOV a1,v1 BL do_ins LDR a1,[v1,#&17c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&800000 ORR a2,a2,#&2a0 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2000000 ORR a2,a2,#7 MOV a1,v1 BL do_ins LDR a1,[v1,#&17c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&800000 MOV a1,v1 BL do_ins LDR a1,[v1,#&17c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&17c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&17c] BL rr ORR a1,v3,a1 ORR a2,a1,#&800000 ORR a2,a2,#&100 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV a2,#&3a00000 ORR a2,a2,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV a2,#&c40 ADD a2,a2,#&3100000 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&13800000 ORR a2,a2,#&80 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV a2,#&c20 ADD a2,a2,#&3100000 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&13800000 ORR a2,a2,#8 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr LDR a2,[pc, #L005728-.-8] ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&13800000 ORR a2,a2,#&40 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr LDR a2,[pc, #L00572c-.-8] ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&13800000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr ORR a2,v4,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&13800000 ORR a2,a2,#&10 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV a2,#&3100000 ADD a2,a2,#8 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&13800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&17c] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&2a0 MOV a1,v1 BL do_ins MOV v3,#3 |L005624.J35.translate_pixel| LDR a1,[v1,#&210] TEQ v3,a1 MOVNE a2,#4 MOVNE a1,#&56 ADDNE a1,a1,#&900 BLNE exit_c LDR a1,[v1,#&1e8] AND a1,a1,#7 TEQ a1,#2 BNE |L0056dc.J51.translate_pixel| TEQ v3,#5 BEQ |L0056dc.J51.translate_pixel| LDR a1,[v1,#&158] BL rr LDR a2,[v2,#&104] SUB a2,v5,a2 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&3800000 ORR a2,a2,#&100 ORR a2,a2,#2 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr LDR a2,[v2,#&104] SUB a2,v5,a2 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&40 MOV a1,v1 BL do_ins |L0056dc.J51.translate_pixel| LDR a1,[v2,#&104] LDR a2,[v2,#&100] TEQ a1,a2 LDMEQDB fp,{v1-v5,fp,sp,pc}^ LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr LDR a2,[v2,#&104]! ORR a1,a1,a2,LSL #7 ORR a1,v3,a1 ORR a2,a1,#&1800000 MOV a1,v1 LDMDB fp,{v1-v5,fp,sp,lr} B do_ins L005728 DCD &03100c02 L00572c DCD &03100c01 save_pixel MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&104] TEQ a1,#&20 LDR a1,[a2,#&1e8] BNE |L00591c.J4.save_pixel| TEQ a1,#0 BEQ |L0058f4.J6.save_pixel| LDR a1,[v1,#&178] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4900000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1e8] SUB a1,a1,#1 CMP a1,#6 ADDLS pc,pc,a1,LSL #2 B |L005898.J8.save_pixel| B |L0057d0.J14.save_pixel| B |L005820.J13.save_pixel| B |L005848.J12.save_pixel| B |L005874.J11.save_pixel| B |L005898.J8.save_pixel| B |L0057fc.J10.save_pixel| LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1e00000 MOV a1,v1 BL do_ins |L0057d0.J14.save_pixel| LDR a1,[v1,#&178] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v2,a1 ORR a2,a1,#&1800000 B |L005890.J54.save_pixel| |L0057fc.J10.save_pixel| LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1e00000 MOV a1,v1 BL do_ins |L005820.J13.save_pixel| LDR a1,[v1,#&178] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a2,v2,a1 B |L005890.J54.save_pixel| |L005848.J12.save_pixel| LDR a1,[v1,#&178] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v2,a1 ORR a2,a1,#&200000 B |L005890.J54.save_pixel| |L005874.J11.save_pixel| LDR a1,[v1,#&178] BL rr MOV v2,a1 LDR a1,[v1,#&178] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1e00000 |L005890.J54.save_pixel| MOV a1,v1 BL do_ins |L005898.J8.save_pixel| LDR a1,[v1,#&178] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4800000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1e8] TEQ a1,#7 TEQNE a1,#6 LDMNEDB fp,{v1-v3,fp,sp,pc}^ LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1e00000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L0058f4.J6.save_pixel| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4800000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L00591c.J4.save_pixel| TEQ a1,#6 TEQNE a1,#7 BNE |L005994.J21.save_pixel| LDR a1,[v2,#&100] TEQ a1,#&10 LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 LDRNE a2,[v1,#&21c] ORRNE a1,a1,a2 ORRNE a2,a1,#&2200000 BNE |L00598c.J55.save_pixel| ORR a2,a1,#&2200000 ORR a2,a2,#&ff MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2200000 ORR a2,a2,#&c00 ORR a2,a2,#&ff |L00598c.J55.save_pixel| MOV a1,v1 BL do_ins |L005994.J21.save_pixel| LDR a1,[v1,#&1e8] CMP a1,#7 ADDLS pc,pc,a1,LSL #2 B |L005b38.J28.save_pixel| B |L0059c4.J36.save_pixel| B |L005a44.J35.save_pixel| B |L005a70.J34.save_pixel| B |L005a98.J33.save_pixel| B |L005ac4.J32.save_pixel| B |L005b38.J28.save_pixel| B |L005a70.J34.save_pixel| B |L005a44.J35.save_pixel| |L0059c4.J36.save_pixel| LDR a1,[v1,#&1ec] TEQ a1,#0 BEQ |L005a44.J35.save_pixel| LDR a1,[v2,#&100] TEQ a1,#&10 LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr BNE |L005a2c.J39.save_pixel| ORR a1,v3,a1,LSL #16 ORR a2,a1,#&3c00000 ORR a2,a2,#&ff MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&3c00000 ORR a2,a2,#&c00 ORR a2,a2,#&ff B |L005a3c.J56.save_pixel| |L005a2c.J39.save_pixel| ORR a2,v3,a1,LSL #16 LDR a1,[v1,#&21c] ORR a1,a2,a1 ORR a2,a1,#&3c00000 |L005a3c.J56.save_pixel| MOV a1,v1 BL do_ins |L005a44.J35.save_pixel| LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORR a2,a1,#&1800000 B |L005b30.J57.save_pixel| |L005a70.J34.save_pixel| LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a2,v3,a1 B |L005b30.J57.save_pixel| |L005a98.J33.save_pixel| LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1 ORR a2,a1,#&200000 B |L005b30.J57.save_pixel| |L005ac4.J32.save_pixel| LDR a1,[v2,#&100] TEQ a1,#&10 LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr BNE |L005b20.J42.save_pixel| ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2200000 ORR a2,a2,#&ff MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2200000 ORR a2,a2,#&c00 ORR a2,a2,#&ff B |L005b30.J57.save_pixel| |L005b20.J42.save_pixel| ORR a2,v3,a1,LSL #16 LDR a1,[v1,#&21c] ORR a1,a2,a1 ORR a2,a1,#&2200000 |L005b30.J57.save_pixel| MOV a1,v1 BL do_ins |L005b38.J28.save_pixel| LDR a1,[v1,#&1e8] TEQ a1,#6 TEQNE a1,#7 LDMNEDB fp,{v1-v3,fp,sp,pc}^ LDR a1,[v2,#&100]! TEQ a1,#&10 LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #16 BNE |L005bac.J49.save_pixel| ORR a2,a1,#&2200000 ORR a2,a2,#&ff MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2200000 ORR a2,a2,#&c00 ORR a2,a2,#&ff MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L005bac.J49.save_pixel| LDR a2,[v1,#&21c] ORR a1,a1,a2 ORR a2,a1,#&2200000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins save_pixel_opt MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 LDR a1,[a1,#&100] TEQ a1,#&10 LDR a1,[a2,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&19c] BL rr BNE |L005c30.J4.save_pixel_opt| ORR a1,v2,a1,LSL #16 ORR a2,a1,#&3c00000 ORR a2,a2,#&ff MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&3c00000 ORR a2,a2,#&c00 ORR a2,a2,#&ff B |L005c40.J9.save_pixel_opt| |L005c30.J4.save_pixel_opt| ORR a2,v2,a1,LSL #16 LDR a1,[v1,#&21c] ORR a1,a2,a1 ORR a2,a1,#&3c00000 |L005c40.J9.save_pixel_opt| MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1 ORR a2,a1,#&1800000 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins save_pixel2 MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a2,#&1e8] TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&eb ADDNE a1,a1,#&900 BLNE exit_c LDR a1,[v2,#&104] TEQ a1,#&20 BNE |L005ce0.J6.save_pixel2| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&5800000 ORR a2,a2,#4 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L005ce0.J6.save_pixel2| LDR a1,[v1,#&1ec] TEQ a1,#0 BEQ |L005d84.J9.save_pixel2| LDR a1,[v2,#&100] TEQ a1,#&10 LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr BNE |L005d4c.J11.save_pixel2| ORR a1,v3,a1,LSL #16 ORR a2,a1,#&3c00000 ORR a2,a2,#&800 ORR a2,a2,#&ff MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&3c00000 ORR a2,a2,#&400 ORR a2,a2,#&ff B |L005d7c.J19.save_pixel2| |L005d4c.J11.save_pixel2| ORR a2,v3,a1,LSL #16 LDR a1,[v2,#&100] TEQ a1,#1 MOVEQ a1,#&2000000 ADDEQ a1,a1,#2 BEQ |L005d74.J14.save_pixel2| RSB a3,a1,#&20 LDR a1,[v1,#&21c] ORR a1,a1,a3,LSL #7 ORR a1,a1,#&2000000 |L005d74.J14.save_pixel2| ORR a1,a2,a1 ORR a2,a1,#&1c00000 |L005d7c.J19.save_pixel2| MOV a1,v1 BL do_ins |L005d84.J9.save_pixel2| LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&158] BL rr LDR a2,[v2,#&100]! ORR a1,a1,a2,LSL #7 ORR a1,v3,a1 ORR a2,a1,#&1800000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins fetch_pixel_inc MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L005ee4.J4.fetch_pixel_inc| LDR a1,[v2,#&74] TEQ a1,#5 BNE |L005e14.J6.fetch_pixel_inc| LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2800000 ORR a2,a2,#4 B |L005edc.J25.fetch_pixel_inc| |L005e14.J6.fetch_pixel_inc| LDR a1,[v1,#&164] BL rr LDR a2,[v1,#&1fc] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&164] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1f0] TEQ a1,#0 MOVNE a1,#0 MOVEQ a1,#1 LDR a2,[v1,#&1ec] TST a1,a2 BEQ |L005e88.J9.fetch_pixel_inc| LDR a1,[v1,#&16c] BL rr LDR a2,[v1,#&1fc] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&16c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins |L005e88.J9.fetch_pixel_inc| LDR a1,[v1,#&160] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&160] BL rr ORR a2,v3,a1,LSL #16 LDR a1,[v1,#&1fc] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&164] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&f0000000 ORR a2,a2,#&5b00000 ORR a2,a2,#4 |L005edc.J25.fetch_pixel_inc| MOV a1,v1 BL do_ins |L005ee4.J4.fetch_pixel_inc| LDR a1,[v1,#&1ec] TEQ a1,#0 LDMEQDB fp,{v1-v3,fp,sp,pc}^ LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L005f0c.J17.fetch_pixel_inc| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L005f98.J16.fetch_pixel_inc| |L005f0c.J17.fetch_pixel_inc| LDR a1,[v1,#&16c] BL rr LDR a2,[v1,#&204] ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&16c] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&170] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&170] BL rr ORR a1,v2,a1,LSL #16 LDR a2,[v1,#&204] ORR a1,a1,a2,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&16c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&168] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&f0000000 ORR a2,a2,#&5b00000 ORR a2,a2,#4 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L005f98.J16.fetch_pixel_inc| LDR a1,[v2,#&74]! TEQ a1,#5 MOVEQ a2,#4 MOVEQ a1,#&31 ADDEQ a1,a1,#&a00 BLEQ exit_c LDR a1,[v1,#&16c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v2,a1,LSL #16 ORR v2,a1,#&4100000 LDR a1,[v1,#&174] BL rr ORR a1,a1,#&3800000 ORR a1,v2,a1 ORR a2,a1,#&f0000000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins fetch_pixel_inc2 MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&74] TEQ a1,#5 BNE |L006030.J4.fetch_pixel_inc2| LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2800000 ORR a2,a2,#8 B |L006128.J24.fetch_pixel_inc2| |L006030.J4.fetch_pixel_inc2| LDR a1,[v2,#&78] TEQ a1,#4 LDR a1,[v1,#&164] BL rr BNE |L006060.J7.fetch_pixel_inc2| MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&5b00000 ORR a2,a2,#4 B |L006128.J24.fetch_pixel_inc2| |L006060.J7.fetch_pixel_inc2| LDR a2,[v1,#&1fc] MOV a2,a2,LSL #1 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&164] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1f0] TEQ a1,#0 MOVNE a2,#0 MOVEQ a2,#1 LDR a1,[v1,#&1ec] TST a2,a1 BEQ |L0060d4.J10.fetch_pixel_inc2| LDR a1,[v1,#&16c] BL rr LDR a2,[v1,#&1fc] MOV a2,a2,LSL #1 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&16c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins |L0060d4.J10.fetch_pixel_inc2| LDR a1,[v1,#&160] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&160] BL rr ORR a1,v3,a1,LSL #16 LDR a2,[v1,#&1fc] ORR a1,a1,a2 ORR a2,a1,#&2500000 ORR a2,a2,#&200 MOV a1,v1 BL do_ins LDR a1,[v1,#&164] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&f0000000 ORR a2,a2,#&5b00000 ORR a2,a2,#4 |L006128.J24.fetch_pixel_inc2| MOV a1,v1 BL do_ins LDR a1,[v1,#&1ec] TEQ a1,#0 LDMEQDB fp,{v1-v3,fp,sp,pc}^ LDR a1,[v1,#&1f0] TEQ a1,#0 BEQ |L0061d4.J17.fetch_pixel_inc2| LDR a1,[v1,#&16c] BL rr LDR a2,[v1,#&204] ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&16c] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&170] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&170] BL rr ORR a2,v2,a1,LSL #16 LDR a1,[v1,#&204] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&16c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&168] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&f0000000 ORR a2,a2,#&5b00000 ORR a2,a2,#4 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L0061d4.J17.fetch_pixel_inc2| LDR a1,[v2,#&74]! TEQ a1,#5 MOVEQ a2,#4 MOVEQ a1,#&6a ADDEQ a1,a1,#&a00 BLEQ exit_c LDR a1,[v1,#&16c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v2,a1,LSL #16 ORR v2,a1,#&4100000 LDR a1,[v1,#&174] BL rr ORR a1,a1,#&3800000 ORR a1,v2,a1 ORR a2,a1,#&f0000000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins odither_inc MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 MOV v2,a3 LDR a1,[a2,#&1f4] TEQ a1,#0 LDMEQDB fp,{v1-v3,fp,sp,pc}^ LDR a1,[v1,#&184] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&184] BL rr ORR a2,v3,a1,LSL #16 LDR a1,[v1,#&1f4] SUB a3,a1,v2 MOV a1,#1 ORR a1,a2,a1,LSL a3 ORR a2,a1,#&2200000 ORR a2,a2,#&400 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins skip_current_output_words MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 LDR a1,[a1,#&104] MOV v2,#&3a00000 TEQ a1,#&20 BNE |L0062f0.J4.skip_current_output_words| LDR a1,[v1,#&198] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&1ac] BL rr ORR a1,v3,a1 ORR a2,a1,#&800000 ORR a2,a2,#&100 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr ORR a2,v2,a1,LSL #12 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L0062f0.J4.skip_current_output_words| LDR a1,[v1,#&1ac] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1 ORR a2,a1,#&400000 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr LDR a2,[v1,#&214] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1 LDR a1,[v1,#&178] BL rr ORR v3,v3,a1,LSL #8 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&70 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr ORR a2,v2,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr LDR a2,[v1,#&224] ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&178] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1b00000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&198] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v2,a1 ORR a2,a1,#&10800000 ORR a2,a2,#&100 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4900000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&178] BL rr LDR a2,[v1,#&224] ORR a1,a1,a2,LSL #7 ORR a1,v2,a1 ORR a2,a1,#&400000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins skip_some_pixels MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 LDR a1,[a2,#&1ac] BL rr LDR a2,[v1,#&214] ORR v2,a1,a2,LSL #7 LDR a1,[v1,#&178] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1 LDR a1,[v1,#&178] BL rr ORR v2,v2,a1,LSL #8 LDR a1,[v1,#&19c] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&70 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v2,a1 ORR a2,a1,#&400000 ORR a2,a2,#&d80 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV a2,#&3a00000 ORR a2,a2,a1,LSL #12 MOV a1,v1 LDMDB fp,{v1,v2,fp,sp,lr} B do_ins save_pixel_inc MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&104] TEQ a1,#&20 BNE |L006590.J4.save_pixel_inc| LDR a1,[v1,#&198] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L0066dc.J8.save_pixel_inc| B |L0066ac.J16.save_pixel_inc| |L006590.J4.save_pixel_inc| LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L0065f8.J9.save_pixel_inc| LDR a1,[v1,#&164] BL rr LDR a2,[v2,#&100] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&164] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins |L0065f8.J9.save_pixel_inc| LDR a1,[v1,#&1a0] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a2,v3,a1,LSL #16 LDR a1,[v2,#&100] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&c0000000 ORR a2,a2,#&34800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1e8] TEQ a1,#0 LDREQ a1,[v1,#&1ec] TEQEQ a1,#0 LDR a1,[v1,#&19c] BL rr MOVEQ a2,#&1a00000 ORREQ a1,a2,a1,LSL #12 ORREQ a2,a1,#&f2000000 BEQ |L006694.J19.save_pixel_inc| MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&f0000000 ORR a2,a2,#&4900000 |L006694.J19.save_pixel_inc| MOV a1,v1 BL do_ins LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L0066dc.J8.save_pixel_inc| |L0066ac.J16.save_pixel_inc| LDR a1,[v1,#&164] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&18c] BL rr ORR a1,v3,a1 ORR a2,a1,#&7900000 MOV a1,v1 BL do_ins |L0066dc.J8.save_pixel_inc| MOV a2,v1 MOV a1,v2 MOV a3,#0 LDMDB fp,{v1-v3,fp,sp,lr} B odither_inc save_pixel_inc2 MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&104] TEQ a1,#&20 BNE |L006734.J4.save_pixel_inc2| LDR a1,[v1,#&198] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2800000 ORR a2,a2,#8 B |L006858.J18.save_pixel_inc2| |L006734.J4.save_pixel_inc2| LDR a1,[v2,#&100] TEQ a1,#&10 LDR a1,[v1,#&19c] BL rr BNE |L00679c.J7.save_pixel_inc2| MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ec] TEQ a1,#0 LDR a1,[v1,#&19c] BL rr MOVEQ a2,#&3a00000 ORREQ a2,a2,a1,LSL #12 BEQ |L006858.J18.save_pixel_inc2| MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4900000 B |L006858.J18.save_pixel_inc2| |L00679c.J7.save_pixel_inc2| LDR a2,[v2,#&100] MOV a2,a2,LSL #1 ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a1,v3,a1,LSL #16 LDR a2,[v2,#&100] ORR a1,a1,a2 ORR a2,a1,#&2500000 ORR a2,a2,#&200 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&c0000000 ORR a2,a2,#&34800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ec] TEQ a1,#0 LDR a1,[v1,#&19c] BL rr MOVEQ a2,#&1a00000 ORREQ a1,a2,a1,LSL #12 ORREQ a2,a1,#&f2000000 BEQ |L006858.J18.save_pixel_inc2| MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&f0000000 ORR a2,a2,#&4900000 |L006858.J18.save_pixel_inc2| MOV a1,v1 BL do_ins MOV a2,v1 MOV a1,v2 MOV a3,#0 LDMDB fp,{v1-v3,fp,sp,lr} B odither_inc plot_current_output_words MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 MOV v5,a3 LDR a1,[a1,#&104] ADD v4,a2,#&110 ADD v3,a2,#&108 TEQ a1,#&20 BNE |L006ab0.J4.plot_current_output_words| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins CMP v5,#&15 BGE |L006968.J6.plot_current_output_words| MOV v6,#1 CMP v5,#1 LDMLEDB fp,{v1-v6,fp,sp,pc}^ |L006904.J8.plot_current_output_words| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&14800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&10000000 ORR a2,a2,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins ADD v6,v6,#1 CMP v6,v5 BLT |L006904.J8.plot_current_output_words| LDMDB fp,{v1-v6,fp,sp,pc}^ |L006968.J6.plot_current_output_words| LDR a1,[v1,#&1ac] BL rr MOV v2,#&3500000 ADD v2,v2,#&a ORR a2,v2,a1,LSL #16 MOV a1,v1 BL do_ins MOV a3,v4 MOV a1,v1 MOV a2,#&da000000 BL do_branch MOV a2,v3 MOV a1,v1 BL define_label MOV v6,#0 |L0069a4.J13.plot_current_output_words| LDR a1,[v1,#&158] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v5,a1,LSL #16 ORR a2,a1,#&4800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins ADD v6,v6,#1 CMP v6,#&a BLT |L0069a4.J13.plot_current_output_words| LDR a1,[v1,#&1ac] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v5,a1,LSL #16 ORR a2,a1,#&2400000 ORR a2,a2,#&a MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr ORR a2,v2,a1,LSL #16 MOV a1,v1 BL do_ins MOV a3,v3 MOV a1,v1 MOV a2,#&ca000000 BL do_branch MOV a2,v4 MOV a1,v1 BL define_label LDR a1,[v1,#&1ac] BL rr MOV a2,#&3500000 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins MOV v6,#0 |L006a4c.J15.plot_current_output_words| LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&14800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&10000000 ORR a2,a2,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins ADD v6,v6,#1 CMP v6,#&a BLT |L006a4c.J15.plot_current_output_words| LDMDB fp,{v1-v6,fp,sp,pc}^ |L006ab0.J4.plot_current_output_words| LDR a1,[v1,#&1ac] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR v5,v5,a1,LSL #16 LDR a1,[v1,#&178] BL rr ORR a1,v5,a1 ORR a2,a1,#&400000 MOV a1,v1 BL do_ins ADD a2,v1,#&100 MOV v6,a2 MOV a1,v1 BL define_label MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR v5,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v5,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a2,v5,a1,LSL #16 LDR a1,[v2,#&100] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins MOV a3,v3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR v5,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v5,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a1,v5,a1,LSL #16 LDR a2,[v2,#&100] ORR a1,a1,a2,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins MOV a3,v4 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR v5,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v5,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a2,v5,a1,LSL #16 LDR a1,[v2,#&100] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins ADD a3,v1,#&118 MOV v5,a3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR a2,a1,a2,LSL #7 STR a2,[sp,#-4]! LDR a1,[v1,#&19c] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&1a0] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 LDR a2,[v2,#&100] ORR a1,a1,a2,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins MOV a3,v6 MOV a1,v1 MOV a2,#&1a000000 BL do_branch MOV a2,v3 MOV a1,v1 BL define_label MOV a2,v4 MOV a1,v1 BL define_label MOV a2,v5 MOV a1,v1 BL define_label LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr LDR a2,[v1,#&224] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&178] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1b00000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins ADD a3,v1,#&128 MOV v3,a3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch LDR v6,[v2,#&104] CMP v6,#&20 BGE |L006dbc.J19.plot_current_output_words| |L006d7c.J18.plot_current_output_words| LDR a1,[v1,#&158] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR v4,v4,a1,LSL #16 LDR a1,[v1,#&158] BL rr ORR a1,a1,v6,LSL #7 ORR a1,v4,a1 ORR a2,a1,#&1800000 MOV a1,v1 BL do_ins MOV v6,v6,LSL #1 CMP v6,#&20 BLT |L006d7c.J18.plot_current_output_words| |L006dbc.J19.plot_current_output_words| ADD a2,v1,#&120 MOV v4,a2 MOV a1,v1 BL define_label LDR a1,[v1,#&158] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v5,a1,LSL #16 ORR a2,a1,#&4800000 ORR a2,a2,#4 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a2,v5,a1,LSL #16 LDR a1,[v1,#&220] ORR a1,a2,a1 ORR a2,a1,#&2400000 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&178] BL rr ORR a1,v5,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins MOV a3,v4 MOV a1,v1 MOV a2,#&1a000000 BL do_branch LDR a1,[v2,#&100]! TEQ a1,#&10 LDR a1,[v1,#&158] BL rr BNE |L006eb0.J22.plot_current_output_words| MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&800 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&820 B |L006ecc.J32.plot_current_output_words| |L006eb0.J22.plot_current_output_words| MOV v2,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a2,v2,a1,LSL #16 LDR a1,[v1,#&21c] ORR a1,a2,a1 ORR a2,a1,#&2000000 |L006ecc.J32.plot_current_output_words| MOV a1,v1 BL do_ins MOV a2,v3 MOV a1,v1 BL define_label LDR a1,[v1,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4900000 MOV a1,v1 LDMDB fp,{v1-v6,fp,sp,lr} B do_ins plot_some_pixels MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 ADD a2,a2,#&130 MOV v6,a2 MOV a1,v1 BL define_label MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a2,v3,a1,LSL #16 LDR a1,[v2,#&100] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins ADD a3,v1,#&138 MOV v5,a3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a1,v3,a1,LSL #16 LDR a2,[v2,#&100] ORR a1,a1,a2,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins ADD a3,v1,#&140 MOV v4,a3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a1,v3,a1,LSL #16 LDR a2,[v2,#&100] ORR a1,a1,a2,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins ADD a3,v1,#&148 MOV v3,a3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel_opt LDR a1,[v1,#&19c] BL rr LDR a2,[v2,#&100] ORR a2,a1,a2,LSL #7 STR a2,[sp,#-4]! LDR a1,[v1,#&19c] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&60 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&1a0] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 LDR a2,[v2,#&100]! ORR a1,a1,a2,LSL #1 ORR a2,a1,#&2500000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins LDR a1,[v1,#&1ac] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1ac] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins MOV a3,v6 MOV a1,v1 MOV a2,#&1a000000 BL do_branch MOV a2,v5 MOV a1,v1 BL define_label MOV a2,v4 MOV a1,v1 BL define_label MOV a2,v3 MOV a1,v1 LDMDB fp,{v1-v6,fp,sp,lr} B define_label arbitrary_add MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a4 MOV ip,#1 MOV a4,#0 LDR v3,[fp,#4] CMP v3,#0 BGE |L007228.J4.arbitrary_add| RSB v3,v3,#0 TEQ a2,#0 MOVNE a2,a4 MOVEQ a2,ip |L007228.J4.arbitrary_add| TEQ v3,#0 BNE |L00724c.J9.arbitrary_add| TEQ a3,#0 LDMEQDB fp,{v1-v6,fp,sp,pc}^ MOV a2,#&3500000 LDR a3,[v1,#0] ORR a2,a2,a3,LSL #16 LDMDB fp,{v1-v6,fp,sp,lr} B do_ins |L00724c.J9.arbitrary_add| TEQ a2,#0 MOVEQ v6,#&400000 MOVNE v6,#&800000 TEQ a3,#0 MOVEQ v5,a4 MOVNE v5,#&100000 MOV v4,#0 |L007268.J20.arbitrary_add| CMP v3,#&ff BLE |L007288.J23.arbitrary_add| TST v3,#3 BNE |L007288.J23.arbitrary_add| |L007278.J25.arbitrary_add| MOV v3,v3,ASR #2 ADD v4,v4,#2 TST v3,#3 BEQ |L007278.J25.arbitrary_add| |L007288.J23.arbitrary_add| AND a2,v3,#&ff BICS v3,v3,#&ff MOVNE a1,#0 MOVEQ a1,#1 TEQ a1,#0 MOVNE a1,v5 ORR a3,a1,v6 LDR a1,[v1,#0] ORR a3,a3,a1,LSL #12 ORR a1,a3,a1,LSL #16 ORR a1,a1,a2 RSB a2,v4,#&20 AND a2,a2,#&1e ORR a1,a1,a2,LSL #7 ORR a2,a1,#&2000000 MOV a1,v2 BL do_ins TEQ v3,#0 BNE |L007268.J20.arbitrary_add| LDMDB fp,{v1-v6,fp,sp,pc}^ init_word_registers MOV ip,sp STMDB sp!,{v1-v3,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 LDR a1,[a1,#&f4] AND a1,a1,#&ff TEQ a1,#&32 LDRNE a1,[v2,#&74] TEQNE a1,#5 BEQ |L0073b0.J4.init_word_registers| LDR a1,[v1,#&164] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,#&800000 MOV a1,v1 BL do_ins LDR a1,[v1,#&160] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&da0 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&164] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR v3,v3,a1,LSL #8 LDR a1,[v1,#&164] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&70 MOV a1,v1 BL do_ins |L0073b0.J4.init_word_registers| LDR a1,[v1,#&1ec] TEQ a1,#0 BEQ |L0074b0.J8.init_word_registers| LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L0073d8.J11.init_word_registers| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L00744c.J10.init_word_registers| |L0073d8.J11.init_word_registers| LDR a1,[v1,#&16c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&168] BL rr ORR a1,v3,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,#&800000 MOV a1,v1 BL do_ins LDR a1,[v1,#&170] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&da0 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 B |L007474.J25.init_word_registers| |L00744c.J10.init_word_registers| LDR a1,[v1,#&16c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR v3,v3,a1,LSL #16 LDR a1,[v1,#&174] BL rr ORR a1,v3,a1 ORR a2,a1,#&7900000 |L007474.J25.init_word_registers| MOV a1,v1 BL do_ins LDR a1,[v1,#&16c] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR v3,v3,a1,LSL #8 LDR a1,[v1,#&16c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&70 MOV a1,v1 BL do_ins |L0074b0.J8.init_word_registers| LDR a1,[v2,#&104] TEQ a1,#&20 LDMEQDB fp,{v1-v3,fp,sp,pc}^ LDR a1,[v1,#&1e8] TEQ a1,#0 LDREQ a1,[v1,#&1ec] TEQEQ a1,#0 BNE |L00757c.J17.init_word_registers| LDR a1,[v1,#&1a0] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1b00000 ORR a2,a2,#&da0 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a1,a1,#&4100000 ADD a1,a1,#&800000 ORR a2,a1,#&10000000 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR v2,v2,a1,LSL #8 LDR a1,[v1,#&19c] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&10000000 ORR a2,a2,#&1a00000 ORR a2,a2,#&10 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV a2,#&1a00000 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&f2000000 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins |L00757c.J17.init_word_registers| LDR a1,[v1,#&19c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v3,a1,LSL #16 ORR a1,a1,#&4100000 ADD a2,a1,#&800000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&da0 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&158] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v3,a1 LDR a1,[v1,#&158] BL rr ORR v3,v3,a1,LSL #8 LDR a1,[v1,#&19c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&70 MOV a1,v1 BL do_ins LDR a1,[v2,#&f4]! AND a1,a1,#&ff TEQ a1,#&32 LDMNEDB fp,{v1-v3,fp,sp,pc}^ LDR a1,[v1,#&164] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&18c] BL rr ORR a1,v2,a1 ORR a2,a1,#&7900000 MOV a1,v1 BL do_ins LDR a1,[v1,#&164] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR v2,v2,a1,LSL #8 LDR a1,[v1,#&164] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&70 MOV a1,v1 LDMDB fp,{v1-v3,fp,sp,lr} B do_ins align16 MOV ip,sp STMDB sp!,{v1,v2,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a2 LDR a1,[a2,#&10] TST a1,#1 LDMEQDB fp,{v1,v2,fp,sp,pc}^ |L0076bc.J4.align16| LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&10] TST a1,#1 BNE |L0076bc.J4.align16| LDMDB fp,{v1,v2,fp,sp,pc}^ loop_x MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 SUB sp,sp,#&24 BL x_block_move TEQ a1,#0 BEQ |L007758.J4.loop_x| LDR a1,[v1,#&1dc] BL rr MOV v2,a1 LDR a1,[v1,#&1d8] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&188] BL rr MOV v2,a1 LDR a1,[v1,#&1dc] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 B |L008670.J80.loop_x| |L007758.J4.loop_x| MOV a2,v1 MOV a1,v2 BL init_word_registers MOV a2,v1 MOV a1,v2 BL simple_x_scale ADD v5,v1,#&30 TEQ a1,#0 BEQ |L007cb8.J7.loop_x| LDR a1,[v2,#&104] TEQ a1,#&20 BEQ |L00785c.J9.loop_x| LDR a1,[v1,#&1a0] BL rr MOV a2,a1,LSL #16 LDR a1,[v2,#&100] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&3100000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins ADD a3,v1,#&70 MOV v3,a3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch ADD a3,v1,#&78 MOV v6,a3 MOV a2,v1 MOV a1,v2 BL fetch_pixel MOV v4,a1 MOV a2,v1 MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL save_pixel TEQ v4,#0 MOVNE a2,v6 MOVNE a1,v1 BLNE define_label MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc MOV a2,v1 MOV a1,v2 BL save_pixel_inc LDR a1,[v1,#&1a8] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&1a8] BL rr ORR a1,v4,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins MOV a3,v5 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v3 MOV a1,v1 BL define_label |L00785c.J9.loop_x| ADD v3,v1,#&a0 LDR a1,[v2,#&74] TEQ a1,#5 BEQ |L0078a0.J13.loop_x| LDR a1,[v1,#&160] BL rr MOV a2,a1,LSL #16 LDR a1,[v1,#&1fc] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&3100000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins MOV a3,v3 MOV a1,v1 MOV a2,#&1a000000 BL do_branch |L0078a0.J13.loop_x| ADD a3,v1,#&88 MOV v6,a3 MOV a1,v1 MOV a2,#&a000000 BL do_branch MOV a2,v1 MOV a1,v2 BL align16 ADD a2,v1,#&80 MOV a1,v1 STR a2,[sp,#&20] BL define_label ADD a3,v1,#&90 MOV a2,v1 MOV a1,v2 STR a3,[sp,#&1c] BL fetch_pixel MOV v4,a1 MOV a2,v1 MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL save_pixel TEQ v4,#0 MOVNE a1,v1 LDRNE a2,[sp,#&1c] BLNE define_label MOV a2,v1 MOV a1,v2 MOV a3,#0 BL odither_inc ADD a3,v1,#&98 MOV a2,v1 MOV a1,v2 STR a3,[sp,#&18] BL fetch_pixel2 MOV v4,a1 MOV a2,v1 MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL save_pixel2 TEQ v4,#0 MOVNE a1,v1 LDRNE a2,[sp,#&18] BLNE define_label MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc2 MOV a2,v1 MOV a1,v2 BL save_pixel_inc2 MOV a2,v6 MOV a1,v1 BL define_label LDR a1,[v1,#&1a8] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&1a8] BL rr ORR a1,v4,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#2 MOV a1,v1 BL do_ins MOV a1,v1 MOV a2,#&aa000000 LDR a3,[sp,#&20] BL do_branch LDR a1,[v2,#&74] TEQ a1,#5 BEQ |L007c14.J32.loop_x| ADD a3,v1,#&c8 MOV v4,a3 MOV a1,v1 MOV a2,#&a000000 BL do_branch MOV a2,v3 MOV a1,v1 BL define_label LDR a1,[v2,#&74] TEQ a1,#5 BNE |L007a18.J21.loop_x| LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2400000 ORR a2,a2,#4 B |L007a68.J76.loop_x| |L007a18.J21.loop_x| LDR a1,[v1,#&164] BL rr LDR a2,[v1,#&1f8] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&164] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&160] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&160] BL rr ORR a1,v3,a1,LSL #16 LDR a2,[v1,#&1f8] ORR a1,a1,a2,LSL #1 ORR a2,a1,#&2800000 ORR a2,a2,#&300 |L007a68.J76.loop_x| MOV a1,v1 BL do_ins LDR a1,[v1,#&1ec] TEQ a1,#0 BEQ |L007ae0.J24.loop_x| LDR a1,[v1,#&16c] BL rr LDR a2,[v1,#&204] ORR v3,a1,a2,LSL #7 LDR a1,[v1,#&16c] BL rr ORR a1,v3,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1f0] TEQ a1,#0 BEQ |L007ae0.J24.loop_x| LDR a1,[v1,#&170] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&170] BL rr ORR a2,v3,a1,LSL #16 LDR a1,[v1,#&204] ORR a1,a2,a1,LSL #1 ORR a2,a1,#&2800000 ORR a2,a2,#&300 MOV a1,v1 BL do_ins |L007ae0.J24.loop_x| ADD a3,v1,#&b0 MOV v3,a3 MOV a1,v1 MOV a2,#&a000000 BL do_branch MOV a2,v1 MOV a1,v2 BL align16 ADD a2,v1,#&a8 MOV a1,v1 STR a2,[sp,#&14] BL define_label ADD a3,v1,#&b8 MOV a2,v1 MOV a1,v2 STR a3,[sp,#&10] BL fetch_pixel2 MOV v6,a1 MOV a2,v1 MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL save_pixel TEQ v6,#0 MOVNE a1,v1 LDRNE a2,[sp,#&10] BLNE define_label MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc2 MOV a2,v1 MOV a1,v2 MOV a3,#0 BL odither_inc ADD a3,v1,#&c0 MOV a2,v1 MOV a1,v2 STR a3,[sp,#&c] BL fetch_pixel MOV v6,a1 MOV a2,v1 MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL save_pixel2 TEQ v6,#0 MOVNE a1,v1 LDRNE a2,[sp,#&c] BLNE define_label MOV a2,v1 MOV a1,v2 BL save_pixel_inc2 MOV a2,v3 MOV a1,v1 BL define_label LDR a1,[v1,#&1a8] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a8] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#2 MOV a1,v1 BL do_ins MOV a1,v1 MOV a2,#&aa000000 LDR a3,[sp,#&14] BL do_branch MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc MOV a2,v4 MOV a1,v1 BL define_label |L007c14.J32.loop_x| LDR a1,[v1,#&1a8] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a8] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2900000 ORR a2,a2,#2 MOV a1,v1 BL do_ins ADD a3,v1,#&d8 MOV v4,a3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch ADD a3,v1,#&d0 MOV v3,a3 MOV a2,v1 MOV a1,v2 BL fetch_pixel MOV v6,a1 MOV a2,v1 MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL save_pixel TEQ v6,#0 MOVNE a2,v3 MOVNE a1,v1 BLNE define_label MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc MOV a2,v1 MOV a1,v2 BL save_pixel_inc MOV a2,v4 MOV a1,v1 BL define_label B |L0084e0.J35.loop_x| |L007cb8.J7.loop_x| LDR a1,[v1,#&1f4] ADD a3,v1,#&38 ADD v3,v1,#&28 ADD v6,v1,#&40 ADD v4,v1,#&1ac TEQ a1,#0 STR a3,[sp,#8] BEQ |L007e28.J36.loop_x| ADD a2,v2,#&40 LDMIA a2,{a1,a2} SUB a3,a2,a1 CMP a3,a1 BLE |L007e28.J36.loop_x| MOV a4,a2 STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#0 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a2,v3 MOV a1,v1 BL define_label LDR a4,[v2,#&44] STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#0 MOV a2,#1 BL arbitrary_add ADD sp,sp,#4 MOV a2,v1 MOV a1,v2 LDR a3,[sp,#8] BL fetch_pixel STR a1,[sp,#0] LDR a4,[v2,#&40] STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#1 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a2,v6 MOV a1,v1 BL define_label MOV a2,v1 MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL save_pixel MOV a2,v1 MOV a1,v2 BL save_pixel_inc LDR a1,[v1,#&1a8] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&1a8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins MOV a3,v5 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v1 MOV a1,v2 BL fetch_pixel_unmasked LDR a4,[v2,#&40] STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#1 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a3,v6 MOV a1,v1 MOV a2,#&5a000000 BL do_branch MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc B |L0080c4.J50.loop_x| |L007e28.J36.loop_x| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L008110.J40.loop_x| LDR a1,[v2,#&40] LDR a2,[v2,#&68] BL |__rt_sdiv| TEQ a2,#0 BNE |L008110.J40.loop_x| CMP a1,#4 BLE |L008110.J40.loop_x| LDR a2,[v1,#&1e8] TEQ a2,#0 BNE |L008110.J40.loop_x| MOV v6,a1 MOV a4,a1 STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#0 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a2,v3 MOV a1,v1 BL define_label LDR a1,[v1,#&1a8] BL rr MOV a2,#&3300000 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins ADD a2,v1,#&e0 MOV a1,v1 BL define_label MOV a3,v5 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a4,v6 STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#0 MOV a2,#1 BL arbitrary_add ADD sp,sp,#4 MOV a2,v1 MOV a1,v2 LDR a3,[sp,#8] BL fetch_pixel MOV a2,v1 STR a1,[sp,#0] MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc LDR a1,[v1,#&1a8] BL rr MOV a2,a1 STR a2,[sp,#-4]! LDR a1,[v1,#&178] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a8] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&1a8] BL rr LDR a2,[sp,#0] ORR a2,a2,a1,LSL #16 STR a2,[sp,#0] LDR a1,[v1,#&1ac] BL rr LDR a2,[sp],#4 ORR a1,a2,a1 ORR a2,a1,#&500000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a8] BL rr MOV a2,#&3a00000 ADD a2,a2,#&40000000 ORR a2,a2,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV a2,a1 STR a2,[sp,#-4]! LDR a1,[v1,#&1ac] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&40000000 ORR a2,a2,#&1a00000 MOV a1,v1 BL do_ins ADD a2,v1,#&f0 LDR a1,[v2,#&104] TEQ a1,#&20 STR a2,[sp,#4] BEQ |L0080a8.J45.loop_x| LDR a1,[v1,#&1a0] BL rr MOV a2,a1 STR a2,[sp,#-4]! LDR a1,[v1,#&178] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1b00000 ORR a2,a2,#&da0 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV a2,#&1a00000 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&f2000000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v2,#&100] TEQ a1,#1 BEQ |L00806c.J47.loop_x| LDR a1,[v1,#&178] BL rr LDR a2,[v1,#&214] ORR a2,a1,a2,LSL #7 STR a2,[sp,#-4]! LDR a1,[v1,#&178] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins |L00806c.J47.loop_x| LDR a1,[v1,#&178] BL rr MOV a2,a1 STR a2,[sp,#-4]! LDR a1,[v1,#&1ac] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a2,a1,#&1500000 MOV a1,v1 BL do_ins MOV a1,v1 MOV a2,#&ba000000 LDR a3,[sp,#4] BL do_branch |L0080a8.J45.loop_x| MOV a3,v6 MOV a2,v1 MOV a1,v2 BL plot_current_output_words LDR a1,[v2,#&104] TEQ a1,#&20 BNE |L0080cc.J49.loop_x| |L0080c4.J50.loop_x| MOV a3,v3 B |L008220.J77.loop_x| |L0080cc.J49.loop_x| LDR a1,[v1,#&1ac] BL rr MOV a2,#&3300000 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins MOV a3,v3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a1,v1 LDR a2,[sp,#4] BL define_label MOV a2,v1 MOV a1,v2 BL plot_some_pixels B |L0080c4.J50.loop_x| |L008110.J40.loop_x| LDR a4,[v2,#&44] STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#0 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a2,v3 MOV a1,v1 BL define_label LDR a4,[v2,#&44] STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#0 MOV a2,#1 BL arbitrary_add ADD sp,sp,#4 MOV a2,v1 MOV a1,v2 LDR a3,[sp,#8] BL fetch_pixel MOV a2,v1 STR a1,[sp,#0] MOV a1,v2 BL translate_pixel MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc MOV a2,v6 MOV a1,v1 BL define_label LDR a4,[v2,#&40] STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#1 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a3,v3 MOV a1,v1 MOV a2,#&4a000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel MOV a2,v1 MOV a1,v2 BL save_pixel_inc LDR a1,[v1,#&1a8] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&1a8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins MOV a3,v6 MOV a1,v1 MOV a2,#&1a000000 BL do_branch MOV a3,v5 |L008220.J77.loop_x| MOV a1,v1 MOV a2,#&a000000 BL do_branch LDR a1,[sp,#0] TEQ a1,#0 BEQ |L0084e0.J35.loop_x| MOV a1,v1 LDR a2,[sp,#8] BL define_label LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L008450.J55.loop_x| LDR a1,[v2,#&40] LDR a2,[v2,#&68] BL |__rt_sdiv| TEQ a2,#0 BNE |L008450.J55.loop_x| CMP a1,#4 BLE |L008450.J55.loop_x| LDR a1,[v1,#&1e8] TEQ a1,#0 BNE |L008450.J55.loop_x| MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc LDR a1,[v1,#&1a8] BL rr MOV v4,a1 LDR a1,[v1,#&178] BL rr ORR a1,v4,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a8] BL rr MOV v4,a1,LSL #12 LDR a1,[v1,#&1a8] BL rr ORR v4,v4,a1,LSL #16 LDR a1,[v1,#&1ac] BL rr ORR a1,v4,a1 ORR a2,a1,#&500000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a8] BL rr MOV a2,#&3a00000 ADD a2,a2,#&40000000 ORR a2,a2,a1,LSL #12 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV v4,a1 LDR a1,[v1,#&1ac] BL rr ORR a1,v4,a1,LSL #12 ORR a2,a1,#&40000000 ORR a2,a2,#&1a00000 MOV a1,v1 BL do_ins ADD v4,v1,#&e8 LDR a1,[v2,#&104] TEQ a1,#&20 BEQ |L0083e4.J60.loop_x| LDR a1,[v1,#&1a0] BL rr MOV v6,a1 LDR a1,[v1,#&178] BL rr ORR a1,v6,a1,LSL #12 ORR a2,a1,#&1b00000 ORR a2,a2,#&da0 MOV a1,v1 BL do_ins LDR a1,[v1,#&178] BL rr MOV a2,#&1a00000 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&f2000000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v2,#&100] TEQ a1,#1 BEQ |L0083b0.J62.loop_x| LDR a1,[v1,#&178] BL rr LDR a2,[v1,#&214] ORR v6,a1,a2,LSL #7 LDR a1,[v1,#&178] BL rr ORR a1,v6,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins |L0083b0.J62.loop_x| LDR a1,[v1,#&178] BL rr MOV v6,a1 LDR a1,[v1,#&1ac] BL rr ORR a1,v6,a1,LSL #16 ORR a2,a1,#&1500000 MOV a1,v1 BL do_ins MOV a3,v4 MOV a1,v1 MOV a2,#&ba000000 BL do_branch |L0083e4.J60.loop_x| MOV a2,v1 MOV a1,v2 BL skip_current_output_words LDR a1,[v2,#&104] TEQ a1,#&20 BNE |L00840c.J64.loop_x| |L0083fc.J65.loop_x| MOV a3,v3 MOV a1,v1 MOV a2,#&a000000 B |L0084dc.J78.loop_x| |L00840c.J64.loop_x| LDR a1,[v1,#&1ac] BL rr MOV a2,#&3300000 ORR a2,a2,a1,LSL #16 MOV a1,v1 BL do_ins MOV a3,v3 MOV a1,v1 MOV a2,#&fa000000 BL do_branch MOV a2,v4 MOV a1,v1 BL define_label MOV a2,v1 MOV a1,v2 BL skip_some_pixels B |L0083fc.J65.loop_x| |L008450.J55.loop_x| MOV a2,v1 MOV a1,v2 BL fetch_pixel_inc ADD a2,v1,#&48 MOV v6,a2 MOV a1,v1 BL define_label LDR a4,[v2,#&40] STMDB sp!,{a4} MOV a4,v4 MOV a1,v1 MOV a3,#1 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a3,v3 MOV a1,v1 MOV a2,#&4a000000 BL do_branch MOV a2,v1 MOV a1,v2 BL save_pixel_inc LDR a1,[v1,#&1a8] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1a8] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins MOV a3,v6 MOV a1,v1 MOV a2,#&1a000000 |L0084dc.J78.loop_x| BL do_branch |L0084e0.J35.loop_x| MOV a2,v5 MOV a1,v1 BL define_label LDR a1,[v2,#&104]! TEQ a1,#&20 BEQ |L008678.J81.loop_x| LDR a1,[v1,#&1a0] BL rr MOV v2,a1 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1b00000 ORR a2,a2,#&da0 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV a2,#&1a00000 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&f2000000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&1e8] TEQ a1,#0 LDREQ a1,[v1,#&1ec] TEQEQ a1,#0 LDR a1,[v1,#&19c] BL rr MOV v2,a1 LDR a1,[v1,#&1a0] BL rr ORR v2,v2,a1,LSL #8 LDR a1,[v1,#&19c] BL rr ORR a1,v2,a1,LSL #12 ORRNE a2,a1,#&1a00000 ORRNE a2,a2,#&70 BNE |L00864c.J79.loop_x| ORR a2,a1,#&1a00000 ORR a2,a2,#&30 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4900000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1a0] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2600000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&1a0] BL rr ORR v2,v2,a1,LSL #8 LDR a1,[v1,#&158] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 ORR a2,a2,#&30 MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&19c] BL rr ORR v3,v2,a1,LSL #16 LDR a1,[v1,#&158] BL rr MOV v2,a1 LDR a1,[v1,#&1a0] BL rr ORR a1,v2,a1,LSL #8 ORR a1,v3,a1 ORR a2,a1,#&1800000 ORR a2,a2,#&10 |L00864c.J79.loop_x| MOV a1,v1 BL do_ins LDR a1,[v1,#&19c] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&198] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&4800000 |L008670.J80.loop_x| MOV a1,v1 BL do_ins |L008678.J81.loop_x| LDMDB fp,{v1-v6,fp,sp,pc}^ loop_y MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v2,a1 MOV v1,a2 SUB sp,sp,#&10 LDR a1,[a1,#&74] MOV v3,#1 MOV a1,v3,LSL a1 STR a1,[a2,#&1f8] LDR a1,[v2,#&78] MOV a1,v3,LSL a1 STR a1,[a2,#&1fc] LDR a1,[a2,#&1f8] MOV a1,v3,LSL a1 SUB a1,a1,#1 STR a1,[v1,#&200] LDR a2,[v1,#&1ec] TEQ a2,#0 LDR a1,[v1,#&1f8] BEQ |L0086fc.J17.loop_y| LDR a2,[v1,#&1f0] TEQ a2,#0 STRNE v3,[v1,#&204] STRNE v3,[v1,#&208] STRNE v3,[v1,#&20c] BNE |L0086fc.J17.loop_y| STR a1,[v1,#&204] LDR a1,[v1,#&1fc] STR a1,[v1,#&208] LDR a1,[v1,#&200] STR a1,[v1,#&20c] |L0086fc.J17.loop_y| LDR a2,[v1,#&214] RSB a1,a2,#5 STR a1,[v1,#&224] MOV a1,v3,LSL a1 STR a1,[v1,#&220] LDR a1,[v2,#&104] MOV a1,v3,LSL a1 SUB a1,a1,#1 STR a1,[v1,#&218] LDR a1,[v2,#&100] MOV a1,v3,LSL a1 SUB a1,a1,#1 STR a1,[v1,#&21c] LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L0087a4.J20.loop_y| LDR a2,[v1,#&1f8] CMP a2,#&10 BLT |L0087a4.J20.loop_y| LDR a1,[v2,#&104] CMP a1,a2 BGE |L0087a4.J20.loop_y| LDR a2,[v2,#&138] TST a2,#1 BEQ |L0087a4.J20.loop_y| TEQ a1,#&10 MOVEQ a1,#2 BEQ |L0087a0.J111.loop_y| LDR a1,[v1,#&210] TEQ a1,#3 RSBNE a1,a1,#6 BNE |L0087a0.J111.loop_y| LDR a1,[v2,#&110] TEQ a1,#0 BEQ |L00879c.J30.loop_y| LDR a1,[a3,#&1c]! TEQ a1,#1 MOVEQ a1,#3 BEQ |L0087a0.J111.loop_y| |L00879c.J30.loop_y| MOV a1,#4 |L0087a0.J111.loop_y| STR a1,[v1,#&1f4] |L0087a4.J20.loop_y| MOV a1,v1 MVN a2,#&2a000 ADD a2,a2,#&9300000 BL do_ins LDR a1,[v2,#&110] TEQ a1,#0 STRNE v3,[v1,#&1e4] MOV a2,v1 MOV a1,v2 BL ptrs_rn LDR a1,[v1,#&1e0] MOV a1,v3,LSL a1 SUB v5,a1,#1 LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L0087f4.J39.loop_y| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L0087fc.J38.loop_y| |L0087f4.J39.loop_y| MOV v6,#&c B |L008800.J37.loop_y| |L0087fc.J38.loop_y| MOV v6,#8 |L008800.J37.loop_y| LDR a1,[v1,#&1f4] TEQ a1,#0 ADDNE v6,v6,#4 MOV a2,v1 MOV a1,v2 BL xloop_rn MOV a2,#1 LDR a1,[v1,#&1e0] MOV a2,a2,LSL a1 SUB a3,a2,#1 BIC v3,a3,v5 RSB v4,v6,a1,LSL #2 LDR a1,[v1,#&164] CMN a1,#1 BEQ |L00884c.J44.loop_y| MOV a2,#1 MVN a1,a2,LSL a1 AND v3,a1,v3 SUB v4,v4,#4 |L00884c.J44.loop_y| LDR a1,[v1,#&19c] CMN a1,#1 BEQ |L008868.J46.loop_y| MOV a2,#1 MVN a1,a2,LSL a1 AND v3,a1,v3 SUB v4,v4,#4 |L008868.J46.loop_y| LDR a1,[v1,#&16c] CMN a1,#1 BEQ |L008884.J48.loop_y| MOV a2,#1 MVN a1,a2,LSL a1 AND v3,a1,v3 SUB v4,v4,#4 |L008884.J48.loop_y| LDR a1,[v1,#&178] CMN a1,#1 BEQ |L0088a0.J50.loop_y| MOV a2,#1 MVN a1,a2,LSL a1 AND v3,a1,v3 SUB v4,v4,#4 |L0088a0.J50.loop_y| LDR a1,[v1,#&17c] CMN a1,#1 BEQ |L0088bc.J52.loop_y| MOV a2,#1 MVN a1,a2,LSL a1 AND v3,a1,v3 SUB v4,v4,#4 |L0088bc.J52.loop_y| MOV a2,v1 MOV a1,v2 BL yloop_rn_count LDR a2,[v1,#&1e0] ADD a2,a1,a2 LDR a1,[v1,#&1e4] ADD a1,a2,a1 CMP a1,#&d MOVGT a1,#0 MOVLE a1,#1 STR a1,[sp,#0] CMP a1,#0 MOVEQ a1,#4 STREQ a1,[v1,#&1e0] MOV a2,v1 MOV a1,v2 BL yloop_rn BNE |L00891c.J59.loop_y| MOV a2,#1 LDR a1,[v1,#&1e0] MOV a1,a2,LSL a1 SUB a1,a1,#1 BIC a1,a1,#&f STR a1,[sp,#4] |L00891c.J59.loop_y| MOV a2,v1 MOV a1,v2 BL fetch_pixel_init MOV a2,v1 MOV a1,v2 BL save_pixel_init MOV a2,v1 MOV a1,v2 BL xloop_init LDR a1,[v1,#&1f4] TEQ a1,#0 BEQ |L0089a8.J61.loop_y| LDR a1,[v2,#&74] TEQ a1,#4 BNE |L0089a8.J61.loop_y| MOV a2,#1 LDR a1,[v1,#&1ac] MVN a1,a2,LSL a1 AND a1,a1,v3 MOV a3,#1 LDR a2,[v1,#&158] ORR v3,a1,a3,LSL a2 ORR a1,v3,v5 ORR a2,a1,#&9000000 ORR a2,a2,#&2d0000 MOV a1,v1 BL do_ins MOV a2,#1 LDR a1,[v1,#&1ac] ORR a1,v3,a2,LSL a1 MOV a3,#1 LDR a2,[v1,#&158] MVN a2,a3,LSL a2 AND v3,a2,a1 B |L0089bc.J64.loop_y| |L0089a8.J61.loop_y| ORR a1,v3,v5 ORR a2,a1,#&9000000 ORR a2,a2,#&2d0000 MOV a1,v1 BL do_ins |L0089bc.J64.loop_y| MOV a2,v1 MOV a1,v2 BL yloop_init LDR a1,[v1,#&1f4] TEQ a1,#0 BEQ |L008a0c.J65.loop_y| LDR a1,[v2,#&74] TEQ a1,#4 BNE |L008a0c.J65.loop_y| LDR a1,[v1,#&158] BL rr MOV a2,a1 STR a2,[sp,#-4]! LDR a1,[v1,#&1ac] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins |L008a0c.J65.loop_y| MOV a2,v1 MOV a1,v2 BL simple_y_scale ADD a2,v1,#&58 TEQ a1,#0 STR a2,[sp,#&c] BNE |L008a38.J68.loop_y| MOV a1,v1 MOV a2,#&a000000 LDR a3,[sp,#&c] BL do_branch |L008a38.J68.loop_y| ADD a2,v1,#&50 MOV a1,v1 STR a2,[sp,#8] BL define_label MOV a2,v1 MOV a1,v2 BL simple_y_scale TEQ a1,#0 BNE |L008a74.J70.loop_y| LDR a1,[v1,#&1d4] BL rr ORR a1,v5,a1,LSL #16 ORR a2,a1,#&8800000 MOV a1,v1 BL do_ins |L008a74.J70.loop_y| LDR a1,[v2,#&110] TEQ a1,#0 BEQ |L008c10.J72.loop_y| LDR a1,[v1,#&1dc] BL rr MOV a2,a1 STR a2,[sp,#-4]! LDR a1,[v1,#&1d8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&194] BL rr MOV a2,a1 STR a2,[sp,#-4]! LDR a1,[v1,#&1dc] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1d8] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&1d0] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&114 SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins LDR a1,[v2,#&74] CMP a1,#5 BGE |L008bcc.J74.loop_y| TEQ a1,#3 LDR a1,[v1,#&15c] BL rr MOV a2,a1,LSL #12 SUB sp,sp,#4 BNE |L008b68.J76.loop_y| STR a2,[sp,#0] LDR a1,[v1,#&15c] BL rr LDR a2,[sp,#0] ORR a2,a2,a1,LSL #16 STR a2,[sp,#0] LDR a1,[v1,#&1d8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1 ORR a2,a1,#&800000 B |L008b98.J112.loop_y| |L008b68.J76.loop_y| STR a2,[sp,#0] LDR a1,[v1,#&15c] BL rr LDR a2,[sp,#0] ORR a2,a2,a1,LSL #16 STR a2,[sp,#0] LDR a1,[v1,#&1d8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1 ORR a2,a1,#&800000 ORR a2,a2,#&80 |L008b98.J112.loop_y| MOV a1,v1 BL do_ins LDR a1,[v1,#&15c] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&15c] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a2,a1,#&3c00000 ORR a2,a2,#3 B |L008c08.J113.loop_y| |L008bcc.J74.loop_y| LDR a1,[v1,#&15c] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&15c] BL rr LDR a2,[sp,#0] ORR a2,a2,a1,LSL #16 STR a2,[sp,#0] LDR a1,[v1,#&1d8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1 ORR a2,a1,#&800000 ORR a2,a2,#&100 |L008c08.J113.loop_y| MOV a1,v1 BL do_ins |L008c10.J72.loop_y| LDR a1,[sp,#0] CMP a1,#0 BNE |L008c78.J82.loop_y| LDR a1,[v1,#&1d8] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&1d4] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a1,a1,v6 ORR a2,a1,#&2800000 MOV a1,v1 BL do_ins LDR a1,[sp,#4] ORR a2,a1,#&9000000 ORR a2,a2,#&2d0000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1d8] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&8900000 MOV a1,v1 BL do_ins |L008c78.J82.loop_y| MOV a2,v1 MOV a1,v2 BL loop_x BEQ |L008c9c.J83.loop_y| LDR a1,[v1,#&1d4] BL rr ORR a1,v3,a1,LSL #16 ORR a1,a1,v5 B |L008cbc.J114.loop_y| |L008c9c.J83.loop_y| LDR a1,[sp,#4] ORR a2,a1,#&8000000 ORR a2,a2,#&bd0000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1d4] BL rr ORR a1,v5,a1,LSL #16 |L008cbc.J114.loop_y| ORR a2,a1,#&8900000 MOV a1,v1 BL do_ins MOV a2,v1 MOV a1,v2 BL simple_y_scale ADD v3,v1,#&198 TEQ a1,#0 BEQ |L008e40.J86.loop_y| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L008d60.J88.loop_y| LDR a1,[v2,#&110] TEQ a1,#0 LDR a1,[v1,#&15c] BL rr MOV a2,a1,LSL #12 SUB sp,sp,#4 BEQ |L008d2c.J90.loop_y| STR a2,[sp,#0] LDR a1,[v1,#&15c] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a2,a1,#&2800000 ORR a2,a2,#1 B |L008d58.J115.loop_y| |L008d2c.J90.loop_y| STR a2,[sp,#0] LDR a1,[v1,#&15c] BL rr LDR a2,[sp,#0] ORR a2,a2,a1,LSL #16 STR a2,[sp,#0] LDR a1,[v1,#&1b8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1 ORR a2,a1,#&400000 |L008d58.J115.loop_y| MOV a1,v1 BL do_ins |L008d60.J88.loop_y| LDR a4,[v2,#0] STMDB sp!,{a4} MOV a4,v3 MOV a1,v1 MOV a3,#0 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a2,v1 MOV a1,v2 MOV a3,#1 BL odither_inc MOV a2,v1 MOV a1,v2 MOV a3,#0 BL odither_inc LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L008dbc.J94.loop_y| LDR a1,[v2,#&f4]! AND a1,a1,#&ff TEQ a1,#&32 BNE |L008dec.J93.loop_y| |L008dbc.J94.loop_y| LDR a1,[v1,#&168] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&168] BL rr ORR v2,v2,a1,LSL #16 LDR a1,[v1,#&1bc] BL rr ORR a1,v2,a1 ORR a2,a1,#&400000 MOV a1,v1 BL do_ins |L008dec.J93.loop_y| LDR a1,[v1,#&1d4] BL rr ORR a1,v5,a1,LSL #16 ORR a2,a1,#&8800000 MOV a1,v1 BL do_ins LDR a1,[v1,#&1b0] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1b0] BL rr ORR a1,v2,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins MOV a1,v1 MOV a2,#&ca000000 LDR a3,[sp,#8] BL do_branch B |L0090d8.J97.loop_y| |L008e40.J86.loop_y| LDR a1,[v1,#&1b0] BL rr MOV v5,a1,LSL #12 LDR a1,[v1,#&1b0] BL rr ORR a1,v5,a1,LSL #16 ORR a2,a1,#&2500000 ORR a2,a2,#1 MOV a1,v1 BL do_ins ADD a3,v1,#&60 MOV v5,a3 MOV a1,v1 MOV a2,#&da000000 BL do_branch LDR a4,[v2,#0] STMDB sp!,{a4} MOV a4,v3 MOV a1,v1 MOV a3,#0 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a2,v1 MOV a1,v2 MOV a3,#1 BL odither_inc MOV a2,v1 MOV a1,v2 MOV a3,#0 BL odither_inc LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L008f78.J98.loop_y| LDR a1,[v1,#&158] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&1d0] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&4100000 ADD a3,v2,#&38 SUB a1,a3,v2 ORR a1,a1,#&1800000 ADD a2,a2,a1 MOV a1,v1 BL do_ins LDR a1,[v1,#&158] BL rr MOV v3,a1 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&1500000 MOV a1,v1 BL do_ins LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&c0000000 ORR a2,a2,#&32800000 ORR a2,a2,#&20 MOV a1,v1 BL do_ins LDR a1,[v1,#&15c] BL rr MOV v3,a1,LSL #12 LDR a1,[v1,#&15c] BL rr ORR a1,v3,a1,LSL #16 ORR a2,a1,#&2400000 ORR a2,a2,#8 MOV a1,v1 BL do_ins |L008f78.J98.loop_y| MOV a1,v1 LDR a2,[sp,#&c] BL define_label LDR a4,[v2,#&10] STMDB sp!,{a4} ADD a4,v1,#&1b4 MOV v3,a4 MOV a1,v1 MOV a3,#1 MOV a2,#0 BL arbitrary_add ADD sp,sp,#4 MOV a1,v1 MOV a2,#&5a000000 LDR a3,[sp,#8] BL do_branch LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BEQ |L009038.J100.loop_y| LDR a1,[v2,#&110] TEQ a1,#0 LDR a1,[v1,#&15c] BL rr MOV a2,a1,LSL #12 SUB sp,sp,#4 BEQ |L009004.J102.loop_y| STR a2,[sp,#0] LDR a1,[v1,#&15c] BL rr LDR a2,[sp],#4 ORR a1,a2,a1,LSL #16 ORR a2,a1,#&2800000 ORR a2,a2,#1 B |L009030.J116.loop_y| |L009004.J102.loop_y| STR a2,[sp,#0] LDR a1,[v1,#&15c] BL rr LDR a2,[sp,#0] ORR a2,a2,a1,LSL #16 STR a2,[sp,#0] LDR a1,[v1,#&1b8] BL rr LDR a2,[sp],#4 ORR a1,a2,a1 ORR a2,a1,#&400000 |L009030.J116.loop_y| MOV a1,v1 BL do_ins |L009038.J100.loop_y| LDR a1,[v1,#&1f0] TEQ a1,#0 BNE |L009054.J106.loop_y| LDR a1,[v2,#&f4] AND a1,a1,#&ff TEQ a1,#&32 BNE |L009094.J105.loop_y| |L009054.J106.loop_y| LDR a1,[v1,#&168] BL rr MOV a2,a1,LSL #12 STR a2,[sp,#-4]! LDR a1,[v1,#&168] BL rr LDR a2,[sp,#0] ORR a2,a2,a1,LSL #16 STR a2,[sp,#0] LDR a1,[v1,#&1bc] BL rr LDR a2,[sp],#4 ORR a1,a2,a1 ORR a2,a1,#&400000 MOV a1,v1 BL do_ins |L009094.J105.loop_y| ADD v2,v2,#&c LDMIB v2!,{a1,a2} ADD a4,a1,a2 STMDB sp!,{a4} MOV a4,v3 MOV a1,v1 MOV a3,#0 MOV a2,#1 BL arbitrary_add ADD sp,sp,#4 MOV a1,v1 MOV a2,#&a000000 LDR a3,[sp,#&c] BL do_branch MOV a2,v5 MOV a1,v1 BL define_label |L0090d8.J97.loop_y| LDR a1,[v1,#&1d4] BL rr MOV v2,a1,LSL #12 LDR a1,[v1,#&1d4] BL rr ORR a1,v2,a1,LSL #16 ADD a2,v4,v6 ORR a1,a1,a2 ORR a2,a1,#&2800000 MOV a1,v1 BL do_ins MOV a1,v1 MVN a2,#&2a000 ADD a2,a2,#&8c00000 BL do_ins LDR a1,[v1,#&1d8] BL rr MOV v2,a1 LDR a1,[v1,#&1dc] BL rr ORR a1,v2,a1,LSL #12 ORR a2,a1,#&1a00000 MOV a1,v1 BL do_ins LDMDB fp,{v1-v6,fp,sp,pc}^ find_or_compile_code MOV ip,sp STMDB sp!,{v1-v5,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV v2,a2 MOV v3,a3 LDR a1,[a1,#&74] LDR a2,[a2,#&210] ADD a3,a1,a2,LSL #3 LDR a2,[v2,#&1e8] ADD v4,a3,a2,LSL #6 LDR a2,[v2,#&1ec] TEQ a2,#0 ORRNE v4,v4,#&200 LDR a2,[v2,#&1f0] TEQ a2,#0 ORRNE v4,v4,#&400 LDR a2,[v1,#&f8] TEQ a2,#0 ORRNE v4,v4,#&800 LDR a2,[v1,#&b4] TEQ a2,#0 ORRNE v4,v4,#&1000 LDR a2,[v1,#&104] LDR a3,[v1,#&100] TEQ a2,a3 ORRNE v4,v4,#&2000 LDR a2,[v1,#&78] TEQ a1,a2 ORRNE v4,v4,#&4000 LDR a1,[v1,#&f4] AND a1,a1,#&ff TEQ a1,#&32 ORREQ v4,v4,#&8000 LDR a2,[v1,#&110] CMP a2,#0 BEQ |L0091e4.J20.find_or_compile_code| ORR v4,v4,#&10000 BEQ |L0091e4.J20.find_or_compile_code| LDR a1,[v3,#&1c] TEQ a1,#1 ORREQ v4,v4,#&20000 |L0091e4.J20.find_or_compile_code| LDR a1,[v1,#&10c] TEQ a1,#0 BEQ |L00920c.J23.find_or_compile_code| ORR v4,v4,#&40000 LDR a3,[v2,#&228] TEQ a3,#0 ORRNE v4,v4,#&80000 LDR a1,[a1,#&10] TEQ a1,#3 ORREQ v4,v4,#&100000 |L00920c.J23.find_or_compile_code| TEQ a2,#0 LDRNE a1,[v1,#&138] ANDNE a1,a1,#1 TEQNE a1,#0 ORRNE v4,v4,#&200000 ADD a1,v2,#&22c ADD a2,v2,#&2ec ADD a2,a2,#&2000 CMP a2,a1 BLS |L009290.J33.find_or_compile_code| |L009234.J32.find_or_compile_code| LDR a3,[a1,#0] TEQ a3,v4 LDREQ a3,[a1,#4] LDREQ a4,[v1,#&44] TEQEQ a3,a4 LDREQ a3,[a1,#8] LDREQ a4,[v1,#&40] TEQEQ a3,a4 LDREQ a4,[a1,#&c] LDREQ a3,[v1,#&14] TEQEQ a4,a3 LDREQ a3,[a1,#&10] LDREQ a4,[v1,#&10] TEQEQ a3,a4 LDREQ a4,[a1,#&14] LDREQ a3,[v1,#0] TEQEQ a4,a3 ADDEQ a1,a1,#&18 LDMEQDB fp,{v1-v5,fp,sp,pc}^ ADD a1,a1,#&18 ADD a1,a1,#&400 CMP a2,a1 BHI |L009234.J32.find_or_compile_code| |L009290.J33.find_or_compile_code| LDR a1,[v2,#8] ADD ip,a1,a1,LSL #1 ADD a1,ip,a1,LSL #7 ADD a1,v2,a1,LSL #3 ADD v5,a1,#&22c MVN a1,#0 STR a1,[v5,#0] LDR a1,[v1,#&44] STR a1,[v5,#4] LDR a1,[v1,#&40] STR a1,[v5,#8] LDR a1,[v1,#&14] STR a1,[v5,#&c] LDR a1,[v1,#&10] STR a1,[v5,#&10] LDR a1,[v1,#0] MOV a2,v2 STR a1,[v5,#&14] MOV a1,v1 BL compile_buffer_init MOV a3,v3 MOV a2,v2 MOV a1,v1 BL loop_y MOV a1,v2 BL compile_buffer_done STR v4,[v5,#0] LDR a1,[v2,#&c]! LDMDB fp,{v1-v5,fp,sp,pc}^ IMPORT create_dynamic_area putscaled_compiler MOV ip,sp STMDB sp!,{v1-v6,fp,ip,lr,pc} SUB fp,ip,#4 MOV v1,a1 MOV v2,a2 MOV v3,a4 SUB sp,sp,#4 ADD a1,a2,#&2f0 ADD a1,a1,#&2000 CMP a1,a3 MOVHI a2,#4 MOVHI a1,#&5a ADDHI a1,a1,#&f00 BLHI exit_c MOV a1,v2 BL check_workspace AND a1,v3,#7 STR a1,[v2,#&1e8] TST v3,#8 MOV a3,#0 MOVEQ a1,a3 MOVNE a1,#1 STR a1,[v2,#&1ec] MOV a3,#0 LDR a2,[v1,#&80] TEQ a3,a2,ASR #27 MOVEQ a2,#0 MOVNE a2,#1 AND a1,a2,a1 STR a1,[v2,#&1f0] LDR a1,[v1,#&110] TEQ a1,#0 BEQ |L009780.J12.putscaled_compiler| LDR v4,[v1,#&120] LDR a1,[v4,#&20] ADD a1,v4,a1 MOV a2,#0 STR a2,[sp,#-8]! LDR a2,[a1,#0] CMN a2,#1 LDREQ v5,[a1,#4] LDREQ a1,[a1,#8] BEQ |L0093c8.J123.putscaled_compiler| LDR a1,[v4,#&20] ADD a2,v4,a1 ADD v5,a2,#4 LDR a2,[v4,#0] SUB a1,a2,a1 SUB a1,a1,#4 |L0093c8.J123.putscaled_compiler| MOV a4,#0 STR a1,[sp,#4] MOV a3,sp MOV a2,#0 STMDB sp!,{a2-a4} MOV a1,v5 MOV a3,#0 BL find_image_dims ADD sp,sp,#&c TEQ a1,#0 MOVNE a2,#2 MOVNE a1,#&87 ADDNE a1,a1,#&f00 BLNE exit_c LDR a1,[v1,#&124] STR a1,[sp,#8] TEQ a1,#0 SUB sp,sp,#4 BNE |L009490.J19.putscaled_compiler| LDR a1,[sp,#4] BL create_dynamic_area MOVS v3,a1 MOVEQ a2,#1 MOVEQ a1,#&95 ADDEQ a1,a1,#&f00 BLEQ exit_c MOV a4,sp STMDB sp!,{a4} ADD a4,sp,#&10 MOV a3,v3 MOV a2,#&c0000001 MOV a1,#&5c BL _swix ADD sp,sp,#4 TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&9b ADDNE a1,a1,#&f00 BLNE exit_c LDR a1,[sp,#&c] MVN a2,#0 ADD v1,v1,#&124 STMIA v1,{a1,v3} SUB v1,v1,#&124 LDR a1,[sp,#&c] STR a2,[a1,#0] LDR a1,[sp,#&c] LDR a2,[sp,#0] STR a2,[a1,#&10]! B |L009550.J32.putscaled_compiler| |L009490.J19.putscaled_compiler| MOV a4,sp MOV a2,#&40000001 MOV a1,#&5c LDR a3,[v1,#&128] BL _swix MOV a3,a1 LDR a1,[sp,#0] CMP a1,#0 BLE |L0094d4.J26.putscaled_compiler| LDR a2,[sp,#&c] LDR a4,[a2,#&10] TEQ a1,a4 BEQ |L0094d4.J26.putscaled_compiler| MVN a4,#0 STR a4,[a2,#0] LDR a2,[sp,#&c] STR a1,[a2,#&10]! |L0094d4.J26.putscaled_compiler| TEQ a3,#0 MOVNE a2,#4 MOVNE a1,#&b9 ADDNE a1,a1,#&f00 BLNE exit_c LDR a1,[sp,#4] LDR a2,[sp,#0] CMP a2,a1 BGE |L009550.J32.putscaled_compiler| SUB sp,sp,#4 MOV a4,sp STMDB sp!,{a4} SUB a4,a1,a2 MOV a2,#&40000003 MOV a1,#&2a LDR a3,[v1,#&128] BL _swix ADD sp,sp,#4 TEQ a1,#0 MOVNE a2,#1 MOVNE a1,#&c1 ADDNE a1,a1,#&f00 BLNE exit_c MVN a2,#0 LDR a1,[sp,#&10] STR a2,[a1,#0] LDR a2,[sp],#4 LDR a1,[sp,#0] ADD a1,a1,a2 LDR a2,[sp,#&c] STR a1,[a2,#&10]! |L009550.J32.putscaled_compiler| ADD sp,sp,#4 LDR a1,[v1,#&74] TEQ a1,#5 MOVNE a2,#4 MOVNE a1,#&3dc ADDNE a1,a1,#&c00 BLNE exit_c LDR a1,[v2,#&1ec] TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&dd ADDNE a1,a1,#&f00 BLNE exit_c MOV a2,#0 LDR a1,[v1,#&80] TEQ a2,a1,ASR #24 MOVEQ a1,#0 STREQ a1,[v1,#&b4] STREQ a1,[v1,#&f8] SUB sp,sp,#4 LDR a1,[v1,#&40] LDR a2,[v1,#&2c] MUL a2,a1,a2 LDR a3,[v1,#&44] SUB a1,a3,a1 BL |__rt_sdiv| LDR a2,[v1,#&114] ADD a1,a1,a2 ADD v6,a1,#2 MOV v3,#0 STR v3,[sp,#0] LDR a1,[v1,#&104] CMP a1,#4 BGT |L0095ec.J42.putscaled_compiler| MOV v3,#1 LDR a2,[v1,#&134] TST a2,#2 MOVEQ a2,#0 STREQ a2,[v1,#&b4] |L0095ec.J42.putscaled_compiler| CMP v6,#0 LDRLT a2,[v4,#&10]! SUBLT v6,a2,#1 ADD a3,v1,#&40 LDMIA a3,{a2,a3} SUB a3,a3,a2 ADD a3,a3,a3,LSL #1 CMP a2,a3,LSL #1 BLT |L009628.J48.putscaled_compiler| ADD a3,v1,#&10 LDMIA a3,{a2,a3} SUB a3,a3,a2 ADD a3,a3,a3,LSL #1 CMP a2,a3,LSL #1 ORRGE v3,v3,#2 |L009628.J48.putscaled_compiler| LDR a2,[v1,#&134] TST a2,#2 BNE |L009704.J51.putscaled_compiler| LDR a2,[v1,#&138] TST a2,#1 BEQ |L009704.J51.putscaled_compiler| SUB sp,sp,#4 TEQ a1,#8 BNE |L0096f8.J54.putscaled_compiler| MOV a4,sp MOV a3,#0 MOV a2,#&400 MOV a1,#0 STMDB sp!,{a1-a4} MVN a4,#0 MVN a3,#0 MOV a2,#&1000000f ADD a2,a2,#&10 LDR a1,[pc, #L0096c4-.-8] BL _swix ADD sp,sp,#&10 MOV a4,#0 MOV a3,#&400 ADD a2,v1,#&13c STMDB sp!,{a2-a4} MVN a4,#0 MVN a3,#0 MOV a2,#&1f LDR a1,[pc, #L0096c4-.-8] BL _swix ADD sp,sp,#&c LDR a1,[v1,#&138] TST a1,#2 BEQ |L0096c8.J56.putscaled_compiler| ORR v3,v3,#8 MVN a1,#0 LDR a2,[sp,#&10] STR a1,[a2,#0] B |L009700.J61.putscaled_compiler| L0096c4 DCD &0004075c |L0096c8.J56.putscaled_compiler| ADD a4,sp,#4 STMDB sp!,{a4} MOV a4,#0 MVN a3,#0 MOV a2,#&20000003 MOV a1,#&35 BL _swix ADD sp,sp,#4 LDR a1,[sp,#4] TST a1,#&80 ORREQ v3,v3,#&20 B |L009700.J61.putscaled_compiler| |L0096f8.J54.putscaled_compiler| TEQ a1,#&10 ORREQ v3,v3,#&10 |L009700.J61.putscaled_compiler| ADD sp,sp,#4 |L009704.J51.putscaled_compiler| MOV a4,v3 MVN a3,#0 MVN a2,#0 MOV a1,v6 STMDB sp!,{a1-a4} LDR a4,[v1,#&114] MOV a2,v5 LDR a1,[sp,#&1c] LDR a3,[sp,#&18] BL jpeg_scan_file ADD sp,sp,#&10 TEQ a1,#0 MOVNE a2,#2 MOVNE a1,#&3a ADDNE a1,a1,#&1000 BLNE exit_c LDR a1,[sp,#&c] LDR a1,[a1,#4] TST a1,#&28 BEQ |L00976c.J66.putscaled_compiler| MOV a1,#3 STR a1,[v1,#&78] STR a1,[v1,#&74] MOV a1,#0 STR a1,[v1,#&b4] B |L00977c.J68.putscaled_compiler| |L00976c.J66.putscaled_compiler| TST a1,#&10 MOVNE a1,#4 STRNE a1,[v1,#&78] STRNE a1,[v1,#&74] |L00977c.J68.putscaled_compiler| ADD sp,sp,#&c |L009780.J12.putscaled_compiler| MOV v3,#0 STR v3,[v2,#&1f4] LDR v4,[v1,#&10c] TEQ v4,#0 BEQ |L00982c.J71.putscaled_compiler| LDR a1,[v4,#4] TEQ a1,#0 BNE |L0097bc.J74.putscaled_compiler| LDR a1,[v4,#8] CMN a1,#&100 BNE |L0097bc.J74.putscaled_compiler| LDR a1,[v4,#&c] TEQ a1,#0 MOVEQ a1,#1 BEQ |L0097c0.J73.putscaled_compiler| |L0097bc.J74.putscaled_compiler| MOV a1,v3 |L0097c0.J73.putscaled_compiler| STR a1,[v2,#&228] LDR a1,[v1,#&104] TEQ a1,#&20 MOVNE a2,#4 MOVNE a1,#&98 ADDNE a1,a1,#&1000 BLNE exit_c LDR a1,[v1,#&74] CMP a1,#4 MOVLT a2,#4 MOVLT a1,#&99 ADDLT a1,a1,#&1000 BLLT exit_c LDR a1,[v1,#&b4] TEQ a1,#0 LDREQ a1,[v1,#&f8] TEQEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&9a ADDNE a1,a1,#&1000 BLNE exit_c LDR a1,[v4,#0] TEQ a1,#0 MOVNE a2,#4 MOVNE a1,#&9b ADDNE a1,a1,#&1000 BLNE exit_c |L00982c.J71.putscaled_compiler| MOV a1,#0 LDR a2,[v1,#&104] CMP a2,#1 BLE |L00984c.J89.putscaled_compiler| |L00983c.J88.putscaled_compiler| MOV a2,a2,ASR #1 ADD a1,a1,#1 CMP a2,#1 BGT |L00983c.J88.putscaled_compiler| |L00984c.J89.putscaled_compiler| STR a1,[v2,#&210] STR a1,[v2,#&214] LDR a2,[v1,#&104] LDR a3,[v1,#&100] TEQ a2,a3 ADDNE a1,a1,#1 STRNE a1,[v2,#&214] LDR a1,[v1,#&f8] TEQ a1,#0 STRNE v3,[v1,#&b4] LDR a1,[v1,#&44] CMP a1,#0 MOVLE a2,#4 MOVLE a1,#&ac ADDLE a1,a1,#&1000 BLLE exit_c LDR a1,[v1,#&40] CMP a1,#0 MOVLE a2,#4 MOVLE a1,#&ad ADDLE a1,a1,#&1000 BLLE exit_c LDR a1,[v1,#&10] CMP a1,#0 MOVLE a2,#4 MOVLE a1,#&ae ADDLE a1,a1,#&1000 BLLE exit_c LDR a1,[v1,#&10] CMP a1,#0 MOVLE a2,#4 MOVLE a1,#&af ADDLE a1,a1,#&1000 BLLE exit_c B |L0098fc.J105.putscaled_compiler| |L0098d8.J104.putscaled_compiler| MOV a4,a4,ASR #1 MOV a2,a2,ASR #1 ADD v1,v1,#&40 STMIA v1,{a2,a4} SUB v1,v1,#&40 MOV a2,a3,ASR #1 MOV a1,a1,ASR #1 STR a1,[v1,#&68] STR a2,[v1,#&30] |L0098fc.J105.putscaled_compiler| LDR a4,[v1,#&44] TST a4,#1 LDREQ a2,[v1,#&40] ANDEQ a1,a2,#1 TEQEQ a1,#0 LDREQ a3,[v1,#&30] ANDEQ a1,a3,#1 TEQEQ a1,#0 LDREQ a1,[v1,#&68] ANDEQ ip,a1,#1 TEQEQ ip,#0 BEQ |L0098d8.J104.putscaled_compiler| B |L00994c.J112.putscaled_compiler| |L009930.J111.putscaled_compiler| MOV a3,a3,ASR #1 MOV a2,a2,ASR #1 MOV a1,a1,ASR #1 STR a1,[v1,#&1c] ADD v1,v1,#&10 STMIA v1,{a2,a3} SUB v1,v1,#&10 |L00994c.J112.putscaled_compiler| LDR a3,[v1,#&14] TST a3,#1 LDREQ a2,[v1,#&10] ANDEQ a1,a2,#1 TEQEQ a1,#0 LDREQ a1,[v1,#&1c] ANDEQ a4,a1,#1 TEQEQ a4,#0 BEQ |L009930.J111.putscaled_compiler| LDR a1,[v1,#&104] LDR v3,[v1,#&100] LDR v4,[v1,#&78] STR a1,[v1,#&100] LDR a1,[v1,#&74] STR a1,[v1,#&78] MOV a2,v2 MOV a1,v1 LDR a3,[sp,#0] BL find_or_compile_code STR v4,[v1,#&78]! STR v3,[v1,#&88] LDMDB fp,{v1-v6,fp,sp,pc}^ AREA |C$$data|,DATA |x$dataseg| END