function flamebox_slot_20() /* entry=229 class_id=0x0403 slot=0x20 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    flame, /* [BP+0Ah] type=0x24 */
    direction, /* [BP+0Ch] type=0x69 */
    count, /* [BP-02h] type=0x69 */
    flame2; /* [BP-04h] type=0x24 */

  entry:
    set_info(0x00F0, *(arg_06));
    if Item.getQHi() goto block_03B9;

  block_036E:
    if ((Item.getFrame(flame) != 5) && (Intrinsic0007(flame) != 1)) goto block_03B9;

  block_0390:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_036E;

  block_03B9:
    class_0A1E_slot_23(4, flame);
    spawn class_0A0B_slot_20(flame);
    if (direction != 0) goto block_040E;

  block_03DD:
    if Item.getQHi() goto block_03FB;

  block_03E8:
    goto block_040B;

  block_03FB:

  block_040B:
    goto block_0447;

  block_040E:
    if (direction != 1) goto block_0447;

  block_0416:
    if Item.getQHi() goto block_0434;

  block_0421:
    goto block_0444;

  block_0434:

  block_0444:
    goto block_0447;

  block_0447:
    class_0A1E_slot_23(4, flame2);
    spawn class_0A0B_slot_20(flame2);
    return;

}
