function wallgun_slot_48() /* entry=396 class_id=0x0A1A slot=0x48 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    vel, /* [BP+0Ch] type=0x69 */
    maxHit, /* [BP-02h] type=0x69 */
    turn, /* [BP-04h] type=0x69 */
    fire; /* [BP-06h] type=0x69 */

  entry:
    set_info(0x0001, *(arg_06));
    if ((Intrinsic0016(arg_06) != 0x0113) || (Intrinsic0016(arg_06) != 0x0108)) goto block_5BCF;

  block_5BC5:
    maxHit = 100;
    goto block_5C5C;

  block_5BCF:
    if ((Intrinsic0016(arg_06) != 0x0373) || (Intrinsic0016(arg_06) != 0x0373)) goto block_5BF7;

  block_5BED:
    maxHit = 100;
    goto block_5C5C;

  block_5BF7:
    if ((Intrinsic0016(arg_06) != 0x0399) || (Intrinsic0016(arg_06) != 0x03A1)) goto block_5C1F;

  block_5C15:
    maxHit = 50;
    goto block_5C5C;

  block_5C1F:
    if (Intrinsic0016(arg_06) != 0x04C8) goto block_5C3A;

  block_5C2F:
    maxHit = 0x00FA;
    goto block_5C5C;

  block_5C3A:
    if (Intrinsic0016(arg_06) != 0x01CD) goto block_5C55;

  block_5C4A:
    maxHit = 0x00C8;
    goto block_5C5C;

  block_5C55:
    maxHit = 100;

  block_5C5C:
    spawn class_0A1E_slot_27(pid, maxHit, vel, ref, arg_06);
    suspend;
    /* dword_to_word  */
    if (!process_result) goto block_5D67;

  block_5C8C:
    class_0A0C_slot_20(1);
    if retval goto block_5CAC;

  block_5C9C:
    goto block_5CB9;

  block_5CAC:

  block_5CB9:
    class_0A1A_slot_20(arg_06);
    turn = retval;
    class_0A1A_slot_21(arg_06);
    fire = retval;
    if ((turn != 0) || (turn != 3)) goto block_5CF6;

  block_5CE8:
    class_0A1A_slot_22(4, arg_06);
    goto block_5D1A;

  block_5CF6:
    if (turn < 5) goto block_5D1A;

  block_5D01:
    class_0A1A_slot_20(arg_06);
    class_0A1A_slot_22((retval + 1), arg_06);
    goto block_5D1A;

  block_5D1A:
    if ((fire != 0) || (fire != 3)) goto block_5D39;

  block_5D2B:
    class_0A1A_slot_23(4, arg_06);
    goto block_5D5D;

  block_5D39:
    if (fire < 5) goto block_5D5D;

  block_5D44:
    class_0A1A_slot_21(arg_06);
    class_0A1A_slot_23((retval + 1), arg_06);
    goto block_5D5D;

  block_5D5D:
    /* word_to_dword  */
    /* pop_result  */
    goto block_5D67;

  block_5D67:
    return;

}
