function wallgun_slot_31() /* entry=396 class_id=0x0A1A slot=0x31 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    target, /* [BP+0Ah] type=0x69 */
    brain, /* [BP+0Ch] 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 */

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

  block_1336:
    inc = 1;
    left = 0;
    right = 15;
    goto block_138B;

  block_134E:
    class_0A1A_slot_2B(arg_06);
    if retval goto block_1376;

  block_135E:
    inc = 1;
    left = 0;
    right = 8;
    goto block_138B;

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

  block_138B:
    class_0A1A_slot_2E(target, arg_06);
    if retval goto block_13E5;

  block_139D:
    if (brain != 4) goto block_13BB;

  block_13AE:
    /* word_to_dword  */
    /* pop_result  */
    goto block_15FA;

  block_13B8:
    goto block_13E5;

  block_13BB:
    class_0A0C_slot_29(target, *(arg_06));
    if (retval <= 20) goto block_13E5;

  block_13D8:
    /* word_to_dword  */
    /* pop_result  */
    goto block_15FA;

  block_13E2:
    goto block_13E5;

  block_13E5:
    if 1 goto block_15FA;

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

  block_1425:
    if (f > 19) goto block_145C;

  block_1430:
    spawn class_0A0C_slot_32(pid, 10, 0x00000000);
    suspend;
    goto block_13E5;

  block_145C:
    goto block_1499;

  block_145F:
    if (f > 8) goto block_1499;

  block_146A:
    spawn class_0A0C_slot_32(pid, 10, 0x00000000);
    suspend;
    goto block_13E5;

  block_1496:
    goto block_1499;

  block_1499:
    if panRight goto block_14CF;

  block_14A1:
    if (f != right) goto block_14C2;

  block_14B2:
    panRight = 0;
    goto block_13E5;

  block_14BF:
    goto block_14CC;

  block_14C2:
    f = (f + inc);

  block_14CC:
    goto block_155E;

  block_14CF:
    if ((panLeft != 1) && (isTurret != 0)) goto block_1511;

  block_14E3:
    if (f != left) goto block_1504;

  block_14F4:
    panLeft = 0;
    goto block_13E5;

  block_1501:
    goto block_150E;

  block_1504:
    f = (f - inc);

  block_150E:
    goto block_155E;

  block_1511:
    if (isTurret != 1) goto block_153C;

  block_1522:
    /* word_to_dword  */
    /* pop_result  */
    goto block_15FA;

  block_1539:
    goto block_155E;

  block_153C:
    if (f != 4) goto block_1554;

  block_1547:
    /* word_to_dword  */
    /* pop_result  */
    goto block_15FA;

  block_1551:
    goto block_155E;

  block_1554:
    f = (f + inc);

  block_155E:
    spawn class_0A1A_slot_2F(pid, brain, target, arg_06);
    suspend;
    class_0A1A_slot_2E(target, arg_06);
    if retval goto block_15F7;

  block_15AF:
    if (brain != 4) goto block_15CD;

  block_15C0:
    /* word_to_dword  */
    /* pop_result  */
    goto block_15FA;

  block_15CA:
    goto block_15F7;

  block_15CD:
    class_0A0C_slot_29(target, *(arg_06));
    if (retval <= 20) goto block_15F7;

  block_15EA:
    /* word_to_dword  */
    /* pop_result  */
    goto block_15FA;

  block_15F4:
    goto block_15F7;

  block_15F7:
    goto block_13E5;

  block_15FA:
    return;

}
