function shocker_slot_20() /* entry=464 class_id=0x0A12 slot=0x20 */
{
  entry:
    set_info(0x020A, *(arg_06));
    set_info(0x0205, *(arg_06));
    if (Item.getQHi(arg_06) != 0) goto block_0124;

  block_010B:
    FREE.slot_20(29);
    local_02 = (retval + 1);

  block_0124:
    local_04 = Item.getQHi(arg_06);
    if (local_04 != 31) goto block_013E;

  block_0137:
    local_06 = 1;
    goto block_0163;

  block_013E:
    if (local_04 > 31) goto block_014C;

  block_0146:
    goto block_0252;

  block_0149:
    goto block_0163;

  block_014C:
    local_08 = World.gameDifficulty();
    local_06 = ((6 - World.gameDifficulty()) * (10 + local_04));

  block_0163:
    spawn FREE.slot_3B(pid, local_06, 0x00000000);
    suspend;

  block_017A:
    suspend;
    local_0A = Kernel.getNumProcesses(0x020C, *(arg_06));
    if (local_0A != 0) goto block_019E;

  block_0193:
    spawn SHOCKER.slot_21(arg_06);

  block_019E:
    FREE.slot_20(1);
    if retval goto block_01B8;

  block_01AB:
    goto block_01C2;

  block_01B8:

  block_01C2:
    local_0C = 0;

  block_01C6:
    if (local_0C <= 5) goto block_0204;

  block_01CE:
    FREE.slot_20(pid, 5, 5);
    spawn FREE.slot_3B(retval, 0x00000000);
    suspend;
    local_0C = (1 + local_0C);
    goto block_01C6;

  block_0204:
    if (local_06 > 1) goto block_024F;

  block_020C:
    FREE.slot_3C(0x020C, *(arg_06));
    spawn FREE.slot_3B(pid, local_06, 0x00000000);
    suspend;

  block_024F:
    goto block_017A;

  block_0252:
    return;

}
