function wallgun_slot_3A() /* entry=471 class_id=0x0A19 slot=0x3A */
{
  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_1A5C;

  block_1A4D:
    local_06 = 1;
    local_02 = 8;
    local_04 = 12;
    goto block_1A84;

  block_1A5C:
    WALLGUN.slot_2B(arg_06);
    if retval goto block_1A78;

  block_1A69:
    local_06 = 1;
    local_02 = 0;
    local_04 = 8;
    goto block_1A84;

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

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

  block_1A93:
    if 1 goto block_1BE0;

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

  block_1ABB:
    if (local_08 > 19) goto block_1ADD;

  block_1AC3:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1A93;

  block_1ADD:
    goto block_1B05;

  block_1AE0:
    if (local_08 > 8) goto block_1B05;

  block_1AE8:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1A93;

  block_1B02:
    goto block_1B05;

  block_1B05:
    if local_09 goto block_1B3D;

  block_1B0A:
    if (local_08 != local_04) goto block_1B33;

  block_1B12:
    local_09 = 0;
    spawn FREE.slot_3B(pid, 20, 0x00000000);
    suspend;
    goto block_1A93;

  block_1B30:
    goto block_1B3A;

  block_1B33:
    local_08 = (local_08 + local_06);

  block_1B3A:
    goto block_1B8F;

  block_1B3D:
    if (local_0A != 1) goto block_1B78;

  block_1B45:
    if (local_08 != local_02) goto block_1B6E;

  block_1B4D:
    local_0A = 0;
    spawn FREE.slot_3B(pid, 20, 0x00000000);
    suspend;
    goto block_1A93;

  block_1B6B:
    goto block_1B75;

  block_1B6E:
    local_08 = (local_08 - local_06);

  block_1B75:
    goto block_1B8F;

  block_1B78:
    if (local_08 != 4) goto block_1B87;

  block_1B80:
    local_08 = (local_08 + local_06);

  block_1B87:
    local_09 = 1;
    local_0A = 1;

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

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

  block_1BDD:
    goto block_1A93;

  block_1BE0:
    return;

}
