function wallgun_slot_32() /* entry=396 class_id=0x0A1A slot=0x32 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    target, /* [BP+0Ah] type=0x69 */
    left, /* [BP-02h] type=0x69 */
    right, /* [BP-04h] type=0x69 */
    inc, /* [BP-06h] type=0x69 */
    f, /* [BP-08h] type=0x69 */
    panRight, /* [BP-09h] type=0x62 */
    panLeft, /* [BP-0Ah] type=0x62 */
    isTurret, /* [BP-0Bh] type=0x62 */
    delay; /* [BP-0Dh] type=0x69 */

  entry:
    set_info(0x0001, *(arg_06));
    panRight = 1;
    panLeft = 1;
    class_0A1A_slot_29(arg_06);
    isTurret = retval;
    if (isTurret != 1) goto block_16C5;

  block_16AD:
    inc = 1;
    left = 0;
    right = 15;
    goto block_1702;

  block_16C5:
    class_0A1A_slot_2B(arg_06);
    if retval goto block_16ED;

  block_16D5:
    inc = 1;
    left = 0;
    right = 8;
    goto block_1702;

  block_16ED:
    inc = -1;
    left = 8;
    right = 0;

  block_1702:
    class_0A1A_slot_20(arg_06);
    delay = (retval * 5);

  block_1714:
    if 1 goto block_18F9;

  block_171C:
    spawn class_0A1A_slot_26(pid, arg_06);
    suspend;
    f = Item.getFrame(arg_06);
    if (isTurret != 1) goto block_178E;

  block_1754:
    if (f > 19) goto block_178B;

  block_175F:
    spawn class_0A0C_slot_32(pid, 10, 0x00000000);
    suspend;
    goto block_1714;

  block_178B:
    goto block_17C8;

  block_178E:
    if (f > 8) goto block_17C8;

  block_1799:
    spawn class_0A0C_slot_32(pid, 10, 0x00000000);
    suspend;
    goto block_1714;

  block_17C5:
    goto block_17C8;

  block_17C8:
    if panRight goto block_17FE;

  block_17D0:
    if (f != right) goto block_17F1;

  block_17E1:
    panRight = 0;
    goto block_1714;

  block_17EE:
    goto block_17FB;

  block_17F1:
    f = (f + inc);

  block_17FB:
    goto block_1881;

  block_17FE:
    if ((panLeft != 1) && (isTurret != 0)) goto block_1840;

  block_1812:
    if (f != left) goto block_1833;

  block_1823:
    panLeft = 0;
    goto block_1714;

  block_1830:
    goto block_183D;

  block_1833:
    f = (f - inc);

  block_183D:
    goto block_1881;

  block_1840:
    if (isTurret != 1) goto block_185B;

  block_1851:
    f = left;
    goto block_1873;

  block_185B:
    if (f == 4) {
      f = (f + inc);
    }

  block_1873:
    panRight = 1;
    panLeft = 1;

  block_1881:
    spawn class_0A0C_slot_32(pid, delay, 0x00000000);
    suspend;
    class_0A1A_slot_2E(target, arg_06);
    if retval goto block_18F6;

  block_18D3:
    spawn class_0A1A_slot_46(pid, target, arg_06);
    suspend;

  block_18F6:
    goto block_1714;

  block_18F9:
    return;

}
