function mgunew_slot_20() /* entry=403 class_id=0x0618 slot=0x20 */
{
  entry:
    set_info(0x0205, *(arg_06));
    local_02 = Item.getFrame(arg_06);
    local_04 = Item.getQHi(arg_06);
    local_0A = Kernel.getNumProcesses(0x0205, *(arg_06));
    ITEM.slot_26(0x1000, arg_06);
    if (((retval != 1) || (local_0A > 1)) || (local_02 != 10)) goto block_012C;

  block_0129:
    goto block_031E;

  block_012C:
    ITEM.slot_24(0x1000, arg_06);
    if (local_04 > 99) goto block_0147;

  block_0140:
    local_04 = (local_04 - 100);

  block_0147:
    suspend;
    local_08 = 0;

  block_0156:
    if (local_08 <= 8) goto block_0189;

  block_015E:
    spawn FREE.slot_3B(pid, 3, 0x00000000);
    suspend;
    local_08 = (1 + local_08);
    goto block_0156;

  block_0189:
    if (local_04 != 0) goto block_01B5;

  block_0191:
    goto block_0256;

  block_01B5:
    if (local_04 != 1) goto block_01E0;

  block_01BD:
    goto block_0256;

  block_01E0:
    if (local_04 != 2) goto block_020B;

  block_01E8:
    goto block_0256;

  block_020B:
    if (local_04 != 3) goto block_0236;

  block_0213:
    goto block_0256;

  block_0236:

  block_0256:
    spawn FREE.slot_3B(pid, 3, 0x00000000);
    suspend;
    spawn FREE.slot_3B(pid, 3, 0x00000000);
    suspend;
    local_08 = 0;

  block_029C:
    if (local_08 <= 7) goto block_02D2;

  block_02A4:
    spawn FREE.slot_3B(pid, 3, 0x00000000);
    suspend;
    local_08 = (1 + local_08);
    goto block_029C;

  block_02D2:
    ITEM.slot_26(4, arg_06);
    if retval goto block_02FB;

  block_02E1:
    ITEM.slot_25(4, arg_06);
    ITEM.slot_25(0x1000, arg_06);
    goto block_031E;

  block_02FB:
    spawn FREE.slot_3B(pid, ((5 - World.gameDifficulty()) * 10), 0x00000000);
    suspend;
    goto block_0147;

  block_031E:
    return;

}
