function item_slot_28() /* entry=400 class_id=0x0A1E slot=0x28 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    boomType, /* [BP+0Ah] type=0x69 */
    selfDestruct, /* [BP+0Ch] type=0x62 */
    item, /* [BP-02h] type=0x24 */
    origin, /* [BP-04h] type=0x24 */
    bigBomb, /* [BP-05h] type=0x62 */
    x, /* [BP-07h] type=0x69 */
    y; /* [BP-09h] type=0x69 */

  entry:
    set_info(0x020A, *(arg_06));
    if (*(arg_06) != 0x4000) goto block_0C30;

  block_0C2A:
    goto block_0EF7;

  block_0C30:
    bigBomb = 0;
    x = Intrinsic0013(arg_06);
    y = Item.legal_create(arg_06);
    if (boomType != 1) goto block_0D4D;

  block_0C71:
    if (Intrinsic00DA(2, 0) != 1) goto block_0CC0;

  block_0C82:
    goto block_0D4A;

  block_0CC0:
    if (Intrinsic00DA(2, 0) != 2) goto block_0D0F;

  block_0CD1:
    goto block_0D4A;

  block_0D0F:

  block_0D4A:
    goto block_0EC3;

  block_0D4D:
    if (boomType != 2) goto block_0E2E;

  block_0D55:
    if (Intrinsic00DA(2, 0) != 1) goto block_0DA3;

  block_0D66:
    goto block_0E2B;

  block_0DA3:
    if (Intrinsic00DA(2, 0) != 2) goto block_0DF1;

  block_0DB4:
    goto block_0E2B;

  block_0DF1:

  block_0E2B:
    goto block_0EC3;

  block_0E2E:
    if (boomType != 0) goto block_0EC3;

  block_0E36:
    if (Intrinsic00DA(1, 0) != 1) goto block_0E85;

  block_0E47:
    goto block_0EC0;

  block_0E85:

  block_0EC0:
    goto block_0EC3;

  block_0EC3:
    origin = *(arg_06);
    set_info(0x020A, 0);
    if selfDestruct goto block_0EF7;

  block_0EDD:
    if (origin != 0x4000) goto block_0EF7;

  block_0EEC:

  block_0EF7:
    return;

}
