function shocker_slot_20() /* entry=389 class_id=0x0A13 slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    randNum, /* [BP-02h] type=0x69 */
    var, /* [BP-04h] type=0x69 */
    duration, /* [BP-06h] type=0x69 */
    skill, /* [BP-08h] type=0x69 */
    kernelCheck, /* [BP-0Ah] type=0x69 */
    counter; /* [BP-0Ch] type=0x69 */

  entry:
    set_info(0x020A, *(arg_06));
    set_info(0x0205, *(arg_06));
    if (Item.getQHi(arg_06) != 0) goto block_013F;

  block_0120:
    FREE.slot_20(29);
    randNum = (retval + 1);

  block_013F:
    var = Item.getQHi(arg_06);
    if (var != 31) goto block_0162;

  block_0158:
    duration = 1;
    goto block_0196;

  block_0162:
    if (var > 31) goto block_0179;

  block_0170:
    goto block_02EB;

  block_0176:
    goto block_0196;

  block_0179:
    skill = Game.getDifficultyLevel();
    duration = ((6 - Game.getDifficultyLevel()) * (10 + var));

  block_0196:
    spawn FREE.waitNTimerTicks(pid, duration, 0x00000000);
    suspend;

  block_01BC:
    suspend;
    kernelCheck = Kernel.getNumProcesses(0x020C, *(arg_06));
    if (kernelCheck != 0) goto block_01F5;

  block_01E7:
    spawn SHOCKER.slot_21(arg_06);

  block_01F5:
    FREE.slot_20(1);
    if retval goto block_0215;

  block_0205:
    goto block_0222;

  block_0215:

  block_0222:
    counter = 0;

  block_0229:
    if (counter <= 5) goto block_027C;

  block_0231:
    FREE.slot_20(pid, 5, 5);
    spawn FREE.waitNTimerTicks(retval, 0x00000000);
    suspend;
    counter = (1 + counter);
    goto block_0229;

  block_027C:
    if (duration > 1) goto block_02E8;

  block_028A:
    FREE.slot_33(0x020C, *(arg_06));
    spawn FREE.waitNTimerTicks(pid, duration, 0x00000000);
    suspend;

  block_02E8:
    goto block_01BC;

  block_02EB:
    return;

}
