Mandragora is a clear/imp which entered the 94nop hill on KOTH.org on 10th October 2005 where it reached age 153 before being pushed off on 20th January 2006.

;redcode-94nop
;author Christian Schmidt
;name Mandragora
;strategy Digitalis meets Disharmonious
;assert 1
;optimax clr

;------------ Qscan Constant ---------------

zero    equ     qbomb
qtab3   equ     qbomb
qz      equ     2108
qy      equ     243

qc2 equ ((1 + (qtab3-qptr)*qy) % CORESIZE)
qb1 equ ((1 + (qtab2-1-qptr)*qy) % CORESIZE)
qb2 equ ((1 + (qtab2-qptr)*qy) % CORESIZE)
qb3 equ ((1 + (qtab2+1-qptr)*qy) % CORESIZE)
qa1 equ ((1 + (qtab1-1-qptr)*qy) % CORESIZE)
qa2 equ ((1 + (qtab1-qptr)*qy) % CORESIZE)

qoff    equ    -88
qstep   equ    -7
qtime   equ    20

;-------Constants for optimization----------

cAwa    equ     5691
iAwa    equ     5364
jAwa    equ     5539
cSwch   equ     5585

ptr   equ (wipe-5)

iStep   equ     2667

;-------------------------------------------

        dat     0,              0
qbomb   dat     >qoff,          >qc2

;------ 45 instructions --------------------

pGo     mov     imp,            zero+jAwa
        mov     <wipe+5,        <bPtr1
bPtr1a  spl     1,              <7277
        spl     1,              <6323
        mov     <wipe+5,        <bPtr1
        mov     <iGo+4,         {bPtr2
bPtr1   spl     zero+cAwa-4,    zero+cAwa
bPtr2   djn.f   zero+iAwa,      <400

imp     mov.i   #iStep,         *0

for     20
        dat     0,              0
rof

iGo     spl     #iStep,         <6774
        add.f   iGo,            iPtr
iPtr    spl     jAwa-iAwa-iStep+1,  <1921
        djn.f   cAwa-iAwa-3,    <6831

for     3
        dat     0,              0
rof

wipe    dat     1,              14
clear   spl     #cSwch,         14
        mov     *wipe,          >ptr
        mov     *wipe,          >ptr
        djn.f   -2,             }clear

for     4
        dat     0,              0
rof

;-------------------------------------------

        dat     0,              <qb1
qtab2   dat     0,              <qb2
        dat     0,              <qb3
        dat     0,              0
        dat     0,              0
        dat     0,              0
        dat     0,              0
        dat     zero-1,         qa1
qtab1   dat     zero-1,         qa2
        dat     0,              0
        dat     0,              0
        dat     0,              0
        dat     0,              0
        dat     0,              0

qgo sne qptr+qz*qc2, qptr+qz*qc2+qb2
    seq <qtab3,      qptr+qz*(qc2-1)+qb2
    jmp q0,          }q0
    sne qptr+qz*qa2, qptr + qz*qa2 + qb2
    seq <qtab1,      qptr+qz*(qa2-1)+qb2
    jmp q0,          {q0
    sne qptr+qz*qa1, qptr+qz*qa1+qb2
    seq <(qtab1-1),  qptr+qz*(qa1-1)+qb2
    djn.a q0,        {q0
    sne qptr+qz*qb3, qptr+qz*qb3+qb3
    seq <(qtab2+1),  qptr+qz*(qb3-1)+(qb3-1)
    jmp q0,          }q1
    sne qptr+qz*qb1, qptr+qz*qb1+qb1
    seq <(qtab2-1),  qptr+qz*(qb1-1)+(qb1-1)
    jmp q0,          {q1
    sne qptr+qz*qb2, qptr+qz*qb2+qb2
    seq <qtab2,      qptr+qz*(qb2-1)+(qb2-1)
    jmp q0,          }4443              ;extra attack
    seq >qptr,       qptr+qz+(qb2-1)
    jmp q2,          <qptr
seq qptr+(qz+1)*(qc2-1),qptr+(qz+1)*(qc2-1)+(qb2-1)
    jmp q0,          }q0
seq qptr+(qz+1)*(qa2-1),qptr+(qz+1)*(qa2-1)+(qb2-1)
    jmp q0,          {q0
seq qptr+(qz+1)*(qa1-1),qptr+(qz+1)*(qa1-1)+(qb2-1)
    djn.a q0,        {q0
    jmz.f pGo,       qptr+(qz+1)*(qb2-1)+(qb2-1)

q0      mul.b   *2,             qptr
q2      sne     {qtab1,         @qptr
q1      add.b   qtab2,          qptr
        mov     qtab3,          @qptr
qptr    mov     qbomb,          }qz
        sub     #qstep,         qptr
        djn     -3,             #qtime
        jmp     pGo,            }3256   ;extra attack
        dat     0,              0
        dat     0,              0
        dat     0,              0
        dat     0,              0

end qgo