function wallgun_slot_2E() /* entry=396 class_id=0x0A1A slot=0x2E */
{
  var
    referent, /* [BP+00h] type=0x69 */
    target, /* [BP+0Ah] type=0x69 */
    x1, /* [BP-02h] type=0x69 */
    x2, /* [BP-04h] type=0x69 */
    y1, /* [BP-06h] type=0x69 */
    y2, /* [BP-08h] type=0x69 */
    z1, /* [BP-09h] type=0x62 */
    z2, /* [BP-0Ah] type=0x62 */
    dir, /* [BP-0Bh] type=0x62 */
    targetNpc; /* [BP-0Dh] type=0x24 */

  entry:
    class_0A1A_slot_2C(arg_06);
    dir = retval;
    class_0A1A_slot_3E(dir, arg_06);
    x1 = retval;
    class_0A1A_slot_3F(dir, arg_06);
    y1 = retval;
    class_0A1A_slot_40(dir, arg_06);
    z1 = retval;
    targetNpc = target;
    if Kernel.resetRef(targetNpc) goto block_1021;

  block_1018:
    goto block_10DC;

  block_1021:
    class_0A1A_slot_2D(target, arg_06);
    if (!retval) goto block_10D3;

  block_1037:
    if (Intrinsic00C1(arg_06) > 99) goto block_1052;

  block_1049:
    goto block_10DC;

  block_1052:
    if Item.getQHi(z1, y1, x1, dir, target, arg_06) goto block_1071;

  block_106B:
    goto block_10DC;

  block_1071:
    class_0A1A_slot_29(arg_06);
    if retval goto block_10D3;

  block_1081:
    class_0A1A_slot_41(dir, arg_06);
    x2 = retval;
    class_0A1A_slot_42(dir, arg_06);
    y2 = retval;
    class_0A1A_slot_43(dir, arg_06);
    z2 = retval;
    if Item.getQHi(z2, y2, x2, dir, target, arg_06) goto block_10D3;

  block_10CD:
    goto block_10DC;

  block_10D3:
    goto block_10DC;

  block_10DC:
    return;

}
