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

  set_info(0x0001, *(arg_06));
  while (!(1)) {
    spawn WALLGUN.slot_26(pid, arg_06);
    suspend;
    spawn WALLGUN.slot_3C(pid, brain, target, arg_06);
    suspend;
    /* dword_to_word  */
    if (!process_result) {
      WALLGUN.slot_2E(target, arg_06);
      cs = retval;
      FREE.slot_29(*(arg_06), target);
      dist = retval;
      if ((((brain == 4) && (cs != 1)) && (dist <= 20)) || (((brain != 4) && (cs != 1)) && (dist <= 46))) {
        spawn WALLGUN.slot_45(pid, brain, target, arg_06);
        suspend;
      }
      else {
        return;
      }
    }
  }
  return;
}
