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 */

  entry:
    set_info(0x0001, *(arg_06));

  block_3550:
    if 1 goto block_3625;

  block_3558:
    spawn class_0A1A_slot_26(pid, arg_06);
    suspend;
    spawn class_0A1A_slot_3C(pid, brain, target, arg_06);
    suspend;
    /* dword_to_word  */
    if process_result goto block_3622;

  block_35A1:
    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_361C;

  block_35F4:
    spawn class_0A1A_slot_45(pid, brain, target, arg_06);
    suspend;
    goto block_3622;

  block_361C:
    goto block_3625;

  block_3622:
    goto block_3550;

  block_3625:
    return;

}
