function switch_slot_21() /* entry=392 class_id=0x0A16 slot=0x21 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    okay; /* [BP-01h] type=0x62 */

  entry:
    set_info(0x0207, *(arg_06));
    okay = Item.getQLo(Item.getNpcNum(arg_06));
    if (Item.getFrame(arg_06) != 4) goto block_029E;

  block_0221:
    spawn class_0A0C_slot_21(pid, 0x00AD, 0x00000000);
    suspend;
    spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    spawn class_0A0C_slot_32(pid, 1, 0x00000000);
    suspend;
    goto block_043B;

  block_029B:
    goto block_043B;

  block_029E:
    if Intrinsic0000() goto block_030C;

  block_02A9:
    spawn class_0A0C_slot_21(pid, 0x0090, 0x00000000);
    suspend;
    if (Intrinsic00DA(100, 0) > 50) goto block_02F8;

  block_02E7:
    goto block_0306;

  block_02F8:

  block_0306:
    goto block_043B;

  block_030C:
    if okay goto block_038B;

  block_0314:
    spawn class_0A0C_slot_32(pid, 1, 0x00000000);
    suspend;
    spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06);
    suspend;
    goto block_043B;

  block_038B:

  block_03A6:
    if Item.touch(0x0090, arg_06) goto block_03E1;

  block_03B8:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_03A6;

  block_03E1:
    spawn class_0A0C_slot_32(pid, 1, 0x00000000);
    suspend;
    spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06);
    suspend;

  block_043B:
    return;

}
