function item_slot_26() /* entry=400 class_id=0x0A1E slot=0x26 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    destX, /* [BP+0Ah] type=0x69 */
    destY, /* [BP+0Ch] type=0x69 */
    destZ, /* [BP+0Eh] type=0x62 */
    vel, /* [BP+10h] type=0x69 */
    x, /* [BP-02h] type=0x69 */
    y, /* [BP-04h] type=0x69 */
    z, /* [BP-05h] type=0x62 */
    w, /* [BP-07h] type=0x69 */
    h, /* [BP-09h] type=0x69 */
    counter, /* [BP-0Bh] type=0x69 */
    minor, /* [BP-0Dh] type=0x69 */
    r, /* [BP-0Fh] type=0x69 */
    q, /* [BP-11h] type=0x69 */
    oabs, /* [BP-13h] type=0x69 */
    v, /* [BP-15h] type=0x69 */
    ovel, /* [BP-17h] type=0x69 */
    c, /* [BP-19h] type=0x69 */
    axis, /* [BP-1Bh] type=0x69 */
    ztarg, /* [BP-1Dh] type=0x69 */
    zcur, /* [BP-1Fh] type=0x69 */
    dif; /* [BP-21h] type=0x69 */

  entry:
    set_info(1, *(arg_06));
    x = Intrinsic0013(arg_06);
    y = Item.legal_create(arg_06);
    z = Item.getZ(arg_06);
    w = ((destX - x) + 1);
    h = ((destY - y) + 1);
    counter = 0;
    minor = 1;
    ovel = vel;
    c = 0;
    axis = 1;
    class_0A0C_slot_3F(w);
    class_0A0C_slot_3F(retval, h);
    if retval goto block_07E7;

  block_07E0:
    axis = 0;

  block_07E7:
    if (axis != 0) goto block_0852;

  block_07F2:
    class_0A0C_slot_3F(((h / w) * w));
    q = retval;
    /* mod  */
    class_0A0C_slot_3F(h, w);
    r = retval;
    if (w < 0) goto block_082E;

  block_0824:
    ovel = (-1 * vel);

  block_082E:
    if (h < 0) goto block_0840;

  block_0839:
    minor = -1;

  block_0840:
    class_0A0C_slot_3F(w);
    oabs = retval;
    goto block_08AF;

  block_0852:
    class_0A0C_slot_3F(((w / h) * h));
    q = retval;
    /* mod  */
    class_0A0C_slot_3F(w, h);
    r = retval;
    if (h < 0) goto block_088E;

  block_0884:
    ovel = (-1 * vel);

  block_088E:
    if (w < 0) goto block_08A0;

  block_0899:
    minor = -1;

  block_08A0:
    class_0A0C_slot_3F(h);
    oabs = retval;

  block_08AF:
    suspend;
    zcur = (z & 0x00FF);
    ztarg = (destZ & 0x00FF);
    if (zcur != ztarg) goto block_0931;

  block_08DD:
    class_0A0C_slot_3F((ztarg - zcur));
    dif = ((retval / 20) + 1);
    if (dif != 0) goto block_0904;

  block_0900:
    dif = 1;

  block_0904:
    if (zcur < ztarg) goto block_091C;

  block_090F:
    z = (z + dif);
    goto block_0931;

  block_091C:
    zcur = (zcur - dif);
    z = (zcur & 0x00FF);

  block_0931:
    if (c >= oabs) goto block_0972;

  block_093C:
    if (zcur > (ztarg - 2)) goto block_095E;

  block_094A:
    if (zcur < (ztarg + 2)) goto block_095E;

  block_0958:
    goto block_0A53;

  block_095E:
    goto block_0A50;

  block_0972:
    c = (c + vel);
    if (axis != 0) goto block_09ED;

  block_0987:
    x = (x + ovel);
    v = 1;

  block_09A9:
    if (v <= vel) goto block_09EA;

  block_09B1:
    counter = (counter + (r + q));
    if (counter >= oabs) goto block_09DD;

  block_09C9:
    counter = (counter - oabs);
    y = (y + minor);

  block_09DD:
    v = (1 + v);
    goto block_09A9;

  block_09EA:
    goto block_0A50;

  block_09ED:
    y = (y + ovel);
    v = 1;

  block_0A0F:
    if (v <= vel) goto block_0A50;

  block_0A17:
    counter = (counter + (r + q));
    if (counter >= oabs) goto block_0A43;

  block_0A2F:
    counter = (counter - oabs);
    x = (x + minor);

  block_0A43:
    v = (1 + v);
    goto block_0A0F;

  block_0A50:
    goto block_08AF;

  block_0A53:
    return;

}
