function wallgun_slot_2F() /* entry=396 class_id=0x0A1A slot=0x2F */
{
  var
    referent, /* [BP+00h] type=0x69 */
    target, /* [BP+0Ah] type=0x69 */
    brain, /* [BP+0Ch] type=0x69 */
    delay, /* [BP-02h] type=0x69 */
    cs, /* [BP-04h] type=0x69 */
    dist; /* [BP-06h] type=0x69 */

  entry:
    set_info(0x0001, *(arg_06));
    class_0A1A_slot_20(arg_06);
    delay = retval;
    if (!delay) goto block_116C;

  block_1168:
    delay = 3;

  block_116C:
    if (delay > 5) goto block_117B;

  block_1177:
    delay = 5;

  block_117B:
    delay = (delay * 5);

  block_1185:
    if delay goto block_121C;

  block_118D:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    class_0A1A_slot_2E(target, arg_06);
    cs = retval;
    class_0A0C_slot_29(*(arg_06), target);
    dist = retval;
    if ((((brain != 4) && (cs != 1)) && (dist <= 20)) || (((brain != 4) && (cs != 1)) && (dist <= 46))) goto block_120F;

  block_1206:
    goto block_1222;

  block_120C:
    goto block_1219;

  block_120F:
    delay = (delay - 1);

  block_1219:
    goto block_1185;

  block_121C:
    goto block_1222;

  block_1222:
    return;

}
