function wallgun_slot_38() /* entry=471 class_id=0x0A19 slot=0x38 */
{
  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_1742;

  block_1733:
    local_06 = 1;
    local_02 = 4;
    local_04 = 12;
    goto block_176A;

  block_1742:
    WALLGUN.slot_2B(arg_06);
    if retval goto block_175E;

  block_174F:
    local_06 = 1;
    local_02 = 0;
    local_04 = 8;
    goto block_176A;

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

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

  block_1779:
    if 1 goto block_1898;

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

  block_17A1:
    if (local_08 > 19) goto block_17C3;

  block_17A9:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1779;

  block_17C3:
    goto block_17EB;

  block_17C6:
    if (local_08 > 8) goto block_17EB;

  block_17CE:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1779;

  block_17E8:
    goto block_17EB;

  block_17EB:
    if local_09 goto block_180C;

  block_17F0:
    if (local_08 != local_04) goto block_1802;

  block_17F8:
    local_09 = 0;
    goto block_1779;

  block_17FF:
    goto block_1809;

  block_1802:
    local_08 = (local_08 + local_06);

  block_1809:
    goto block_1847;

  block_180C:
    if (local_0A != 1) goto block_1830;

  block_1814:
    if (local_08 != local_02) goto block_1826;

  block_181C:
    local_0A = 0;
    goto block_1779;

  block_1823:
    goto block_182D;

  block_1826:
    local_08 = (local_08 - local_06);

  block_182D:
    goto block_1847;

  block_1830:
    if (local_08 != 4) goto block_183F;

  block_1838:
    local_08 = (local_08 + local_06);

  block_183F:
    local_09 = 1;
    local_0A = 1;

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

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

  block_1895:
    goto block_1779;

  block_1898:
    return;

}
