.file "bf64-1.c" .text .align 2 .globl sub .type sub, @function sub: link.w %a6,#0 movm.l #0x3e00,-(%sp) move.l %a1,%d6 move.l 12(%a6),%d1 bfextu 9(%a6){#4:#20},%d0 move.l %d1,%d3 moveq.l #20,%d2 lsr.l %d2,%d3 move.l %d0,%d2 moveq.l #12,%d4 lsl.l %d4,%d2 move.l %d3,%d0 or.l %d2,%d0 lsl.l %d4,%d1 move.l %d0,%d5 moveq.l #20,%d2 lsl.l %d2,%d5 move.l %d1,%d4 moveq.l #12,%d2 lsr.l %d2,%d4 move.l %d5,%d3 or.l %d4,%d3 move.l %d0,%d2 moveq.l #12,%d4 asr.l %d4,%d2 or.l #554580,%d2 or.l #305419896,%d3 move.l %d3,12(%a6) bfins %d2,9(%a6){#4:#20} pea 8.w pea 8(%a6) move.l %a1,-(%sp) jbsr memcpy move.l %d6,%a0 movm.l -20(%a6),#0x7c unlk %a6 rts .size sub, .-sub .align 2 .globl sub2 .type sub2, @function sub2: link.w %a6,#0 movm.l #0x3e00,-(%sp) move.l %a1,%d6 bfextu 10(%a6){#4:#32},%d1 bfextu 8(%a6){#0:#20},%d0 move.l %d1,%d3 moveq.l #20,%d2 lsr.l %d2,%d3 move.l %d0,%d2 moveq.l #12,%d4 lsl.l %d4,%d2 move.l %d3,%d0 or.l %d2,%d0 lsl.l %d4,%d1 move.l %d0,%d5 moveq.l #20,%d2 lsl.l %d2,%d5 move.l %d1,%d4 moveq.l #12,%d2 lsr.l %d2,%d4 move.l %d5,%d3 or.l %d4,%d3 move.l %d0,%d2 moveq.l #12,%d4 asr.l %d4,%d2 or.l #554580,%d2 or.l #305419896,%d3 bfins %d3,10(%a6){#4:#32} bfins %d2,8(%a6){#0:#20} pea 8.w pea 8(%a6) move.l %a1,-(%sp) jbsr memcpy move.l %d6,%a0 movm.l -20(%a6),#0x7c unlk %a6 rts .size sub2, .-sub2 .section .rodata .LC0: .byte 18 .byte 63 .byte 255 .byte 0 .byte 15 .byte 255 .byte 0 .byte 15 .LC1: .byte 255 .byte 240 .byte 0 .byte 255 .byte 240 .byte 0 .byte 241 .byte 35 .text .align 2 .globl main .type main, @function main: link.w %a6,#-16 movm.l #0x3f30,-(%sp) move.l %a6,%d2 subq.l #8,%d2 pea 8.w pea .LC0 move.l %d2,-(%sp) lea memcpy,%a2 jbsr (%a2) lea (-16,%a6),%a3 pea 8.w pea .LC1 move.l %a3,-(%sp) jbsr (%a2) subq.l #8,%sp move.l %sp,%d0 pea 8.w move.l %d2,-(%sp) move.l %d0,-(%sp) jbsr (%a2) lea (12,%sp),%sp move.l %d2,%a1 jbsr sub lea (24,%sp),%sp move.l %sp,%d0 pea 8.w move.l %a3,-(%sp) move.l %d0,-(%sp) jbsr (%a2) lea (12,%sp),%sp move.l %a3,%a1 jbsr sub2 bfexts -8(%a6){#0:#12},%d4 addq.l #8,%sp cmp.l #291,%d4 jbne .L7 move.l -4(%a6),%d1 bfextu -7(%a6){#4:#20},%d0 move.l %d1,%d3 moveq.l #20,%d2 lsr.l %d2,%d3 move.l %d0,%d2 moveq.l #12,%d4 lsl.l %d4,%d2 move.l %d3,%d0 or.l %d2,%d0 lsl.l %d4,%d1 move.l %d0,%d3 moveq.l #20,%d2 lsl.l %d2,%d3 move.l %d1,%d2 lsr.l %d4,%d2 move.l %d3,%d5 or.l %d2,%d5 move.l %d0,%d4 moveq.l #12,%d2 asr.l %d2,%d4 moveq.l #-85,%d0 not.b %d0 move.l #536827519,%d1 sub.l %d5,%d1 subx.l %d4,%d0 jbeq .L8 .L7: jbsr abort .align 2 .L8: bfexts -10(%a6){#4:#12},%d7 cmp.l #291,%d7 jbne .L7 bfextu -14(%a6){#4:#32},%d1 bfextu -16(%a6){#0:#20},%d0 move.l %d1,%d3 moveq.l #20,%d6 lsr.l %d6,%d3 move.l %d0,%d2 moveq.l #12,%d6 lsl.l %d6,%d2 move.l %d3,%d0 or.l %d2,%d0 lsl.l %d6,%d1 move.l %d0,%d3 moveq.l #20,%d2 lsl.l %d2,%d3 move.l %d1,%d2 lsr.l %d6,%d2 move.l %d3,%d1 or.l %d2,%d1 asr.l %d6,%d0 sub.l %d5,%d1 subx.l %d4,%d0 jbne .L7 clr.l -(%sp) jbsr exit nop .size main, .-main .ident "GCC: (GNU) 3.3.2"