function wallgun_slot_33() /* entry=471 class_id=0x0A19 slot=0x33 */
{
  entry:
    set_info(0x0001, *(arg_06));
    local_09 = 1;
    local_0A = 1;
    WALLGUN.slot_29(arg_06);
    local_0B = retval;
    if (local_0B != 1) goto block_1006;

  block_0FF7:
    local_06 = 1;
    local_02 = 0;
    local_04 = 15;
    goto block_102E;

  block_1006:
    WALLGUN.slot_2B(arg_06);
    if retval goto block_1022;

  block_1013:
    local_06 = 1;
    local_02 = 0;
    local_04 = 8;
    goto block_102E;

  block_1022:
    local_06 = -1;
    local_02 = 8;
    local_04 = 0;

  block_102E:
    WALLGUN.slot_20(arg_06);
    local_0D = (retval * 5);

  block_103D:
    if 1 goto block_1177;

  block_1042:
    spawn WALLGUN.slot_26(pid, arg_06);
    suspend;
    local_08 = Item.getFrame(arg_06);
    if (local_0B != 1) goto block_108A;

  block_1065:
    if (local_08 > 19) goto block_1087;

  block_106D:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_103D;

  block_1087:
    goto block_10AF;

  block_108A:
    if (local_08 > 8) goto block_10AF;

  block_1092:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_103D;

  block_10AC:
    goto block_10AF;

  block_10AF:
    if (local_0A != 1) goto block_10D3;

  block_10B7:
    if (local_08 != local_02) goto block_10C9;

  block_10BF:
    local_0A = 0;
    goto block_103D;

  block_10C6:
    goto block_10D0;

  block_10C9:
    local_08 = (local_08 - local_06);

  block_10D0:
    goto block_1126;

  block_10D3:
    if ((local_09 != 1) && (local_0B != 0)) goto block_10FD;

  block_10E1:
    if (local_08 != local_04) goto block_10F3;

  block_10E9:
    local_09 = 0;
    goto block_103D;

  block_10F0:
    goto block_10FA;

  block_10F3:
    local_08 = (local_08 + local_06);

  block_10FA:
    goto block_1126;

  block_10FD:
    local_09 = 1;
    local_0A = 1;
    if (local_0B != 1) goto block_1114;

  block_110D:
    local_08 = local_04;
    goto block_1126;

  block_1114:
    if (local_08 == 4) {
      local_08 = (local_08 - local_06);
    }

  block_1126:
    WALLGUN.slot_2E(arg_0A, arg_06);
    if retval goto block_115D;

  block_1149:
    spawn WALLGUN.slot_46(pid, arg_0A, arg_06);
    suspend;

  block_115D:
    spawn FREE.slot_3B(pid, local_0D, 0x00000000);
    suspend;
    goto block_103D;

  block_1177:
    return;

}
