function wallgun_slot_39() /* entry=471 class_id=0x0A19 slot=0x39 */
{
  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_18CF;

  block_18C0:
    local_06 = 1;
    local_02 = 0;
    local_04 = 8;
    goto block_18F7;

  block_18CF:
    WALLGUN.slot_2B(arg_06);
    if retval goto block_18EB;

  block_18DC:
    local_06 = 1;
    local_02 = 0;
    local_04 = 8;
    goto block_18F7;

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

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

  block_1906:
    if 1 goto block_1A25;

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

  block_192E:
    if (local_08 > 19) goto block_1950;

  block_1936:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1906;

  block_1950:
    goto block_1978;

  block_1953:
    if (local_08 > 8) goto block_1978;

  block_195B:
    spawn FREE.slot_3B(pid, 10, 0x00000000);
    suspend;
    goto block_1906;

  block_1975:
    goto block_1978;

  block_1978:
    if local_09 goto block_1999;

  block_197D:
    if (local_08 != local_04) goto block_198F;

  block_1985:
    local_09 = 0;
    goto block_1906;

  block_198C:
    goto block_1996;

  block_198F:
    local_08 = (local_08 + local_06);

  block_1996:
    goto block_19D4;

  block_1999:
    if (local_0A != 1) goto block_19BD;

  block_19A1:
    if (local_08 != local_02) goto block_19B3;

  block_19A9:
    local_0A = 0;
    goto block_1906;

  block_19B0:
    goto block_19BA;

  block_19B3:
    local_08 = (local_08 - local_06);

  block_19BA:
    goto block_19D4;

  block_19BD:
    if (local_08 != 4) goto block_19CC;

  block_19C5:
    local_08 = (local_08 + local_06);

  block_19CC:
    local_09 = 1;
    local_0A = 1;

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

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

  block_1A22:
    goto block_1906;

  block_1A25:
    return;

}
