function special_slot_20() /* entry=272 class_id=0x04CA slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    cmd, /* [BP+0Ah] type=0x69 */
    phase, /* [BP+0Ch] type=0x69 */
    a, /* [BP-02h] type=0x69 */
    npc, /* [BP-04h] type=0x24 */
    q; /* [BP-06h] type=0x69 */

  entry:
    set_info(0x021B, *(arg_06));
    if (cmd != 3) goto block_01B4;

  block_0167:
    /* global_address global_id=0x3C */
    a = Intrinsic00FA();
    if ((a <= 4) || (a >= 12)) goto block_01B1;

  block_018A:
    spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06);
    suspend;

  block_01B1:
    goto block_04A3;

  block_01B4:
    if (cmd != 4) goto block_0209;

  block_01BC:
    /* global_address global_id=0x3C */
    a = Intrinsic00FA();
    if ((a > 4) && (a < 12)) goto block_0206;

  block_01DF:
    spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06);
    suspend;

  block_0206:
    goto block_04A3;

  block_0209:
    if (cmd != 5) goto block_024E;

  block_0211:
    /* global_address global_id=0x3C */
    if (Intrinsic00CC() != 1) goto block_024B;

  block_0224:
    spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06);
    suspend;

  block_024B:
    goto block_04A3;

  block_024E:
    if (cmd != 6) goto block_02CC;

  block_0256:
    /* global_address global_id=0x3C */
    if (Intrinsic00CC() != 0) goto block_02C9;

  block_0269:
    spawn class_0A0C_slot_32(pid, 10, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    if (Intrinsic00CC() != 0) goto block_02C9;

  block_02A2:
    spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06);
    suspend;

  block_02C9:
    goto block_04A3;

  block_02CC:
    if (cmd != 7) goto block_0385;

  block_02D4:
    a = 0;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */

  block_02F8:
    if condition goto block_0318;

  block_02FB:
    if (npc < 0x0100) goto block_0314;

  block_030A:
    a = (1 + a);

  block_0314:
    /* loopnext  */
    goto block_02F8;

  block_0318:
    if (a > 4) goto block_0352;

  block_032B:
    spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06);
    suspend;

  block_0352:
    spawn class_0A0C_slot_32(pid, (Item.hurl(arg_06) * 9), 0x00000000);
    suspend;
    goto block_04A3;

  block_0385:
    if (cmd != 8) goto block_043E;

  block_038D:
    a = 0;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x3A */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */

  block_03B1:
    if condition goto block_03D1;

  block_03B4:
    if (npc < 0x0100) goto block_03CD;

  block_03C3:
    a = (1 + a);

  block_03CD:
    /* loopnext  */
    goto block_03B1;

  block_03D1:
    if (a <= 4) goto block_040B;

  block_03E4:
    spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06);
    suspend;

  block_040B:
    spawn class_0A0C_slot_32(pid, (Item.hurl(arg_06) * 9), 0x00000000);
    suspend;
    goto block_04A3;

  block_043E:
    if (cmd != 9) goto block_04A3;

  block_0446:
    q = Item.getNpcNum(arg_06);
    class_0A0C_slot_20(q, 3);
    spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06);
    suspend;
    goto block_04A3;

  block_04A3:
    return;

}
