function mtaregg_slot_20() /* entry=343 class_id=0x0903 slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    dir, /* [BP+0Ch] type=0x62 */
    num, /* [BP+0Eh] type=0x69 */
    me, /* [BP-02h] type=0x24 */
    num, /* [BP-04h] type=0x69 */
    dp, /* [BP-09h] type=0x24 */
    wp; /* [BP-0Eh] type=0x24 */

  entry:
    set_info(0x00F0, ref);
    me = ref;
    num = num;
    if (dir != 0) goto block_0264;

  block_0253:
    local_07 = -2;
    dp = 0;
    goto block_02AF;

  block_0264:
    if (dir != 8) goto block_027D;

  block_026C:
    local_07 = 2;
    dp = 0;
    goto block_02AF;

  block_027D:
    if (dir != 4) goto block_0296;

  block_0285:
    local_07 = 0;
    dp = 2;
    goto block_02AF;

  block_0296:
    if (dir != 12) goto block_02AF;

  block_029E:
    local_07 = 0;
    dp = -2;
    goto block_02AF;

  block_02AF:
    suspend;
    if (num != 0) goto block_02D0;

  block_02CA:
    goto block_033C;

  block_02D0:
    num = (num - 1);
    wp = Intrinsic0013(me);
    local_0C = Item.legal_create(me);
    local_0A = Item.getZ(me);
    wp = (wp + dp);
    local_0C = (local_0C + local_07);
    if (Item.pop(0, 1, wp, me) != 0) goto block_0339;

  block_0333:
    goto block_033C;

  block_0339:
    goto block_02AF;

  block_033C:
    return;

}
