function wallgun_slot_3B() /* entry=471 class_id=0x0A19 slot=0x3B */
{
  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_1C17;

  block_1C08:
    local_06 = 1;
    local_02 = 4;
    local_04 = 8;
    goto block_1C3F;

  block_1C17:
    WALLGUN.slot_2B(arg_06);
    if retval goto block_1C33;

  block_1C24:
    local_06 = 1;
    local_02 = 0;
    local_04 = 8;
    goto block_1C3F;

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

  block_1C3F:
    WALLGUN.slot_20(arg_06);
    local_0D = (retval * 15);

  block_1C4E:
    if 1 goto block_1DA1;

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

  block_1C76:
    if (local_08 > 19) goto block_1C98;

  block_1C7E:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1C4E;

  block_1C98:
    goto block_1CC0;

  block_1C9B:
    if (local_08 > 8) goto block_1CC0;

  block_1CA3:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1C4E;

  block_1CBD:
    goto block_1CC0;

  block_1CC0:
    if local_09 goto block_1CFB;

  block_1CC5:
    if (local_08 != local_04) goto block_1CF1;

  block_1CCD:
    local_09 = 0;
    spawn FREE.slot_3B(pid, (local_0D + 20), 0x00000000);
    suspend;
    goto block_1C4E;

  block_1CEE:
    goto block_1CF8;

  block_1CF1:
    local_08 = (local_08 + local_06);

  block_1CF8:
    goto block_1D50;

  block_1CFB:
    if (local_0A != 1) goto block_1D39;

  block_1D03:
    if (local_08 != local_02) goto block_1D2F;

  block_1D0B:
    local_0A = 0;
    spawn FREE.slot_3B(pid, (local_0D + 20), 0x00000000);
    suspend;
    goto block_1C4E;

  block_1D2C:
    goto block_1D36;

  block_1D2F:
    local_08 = (local_08 - local_06);

  block_1D36:
    goto block_1D50;

  block_1D39:
    if (local_08 != 4) goto block_1D48;

  block_1D41:
    local_08 = (local_08 + local_06);

  block_1D48:
    local_09 = 1;
    local_0A = 1;

  block_1D50:
    spawn FREE.slot_3B(pid, local_0D, 0x00000000);
    suspend;
    WALLGUN.slot_2E(arg_0A, arg_06);
    if retval goto block_1D9E;

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

  block_1D9E:
    goto block_1C4E;

  block_1DA1:
    return;

}
