function sswitche_use() /* entry=248 class_id=0x0457 slot=0x01 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    a, /* [BP-01h] type=0x62 */
    b, /* [BP-02h] type=0x62 */
    a1, /* [BP-03h] type=0x62 */
    b1, /* [BP-04h] type=0x62 */
    c1, /* [BP-05h] type=0x62 */
    sswitch, /* [BP-07h] type=0x24 */
    switch1, /* [BP-09h] type=0x24 */
    switch2, /* [BP-0Bh] type=0x24 */
    switch3, /* [BP-0Dh] type=0x24 */
    timer, /* [BP-0Fh] type=0x24 */
    sswitch2, /* [BP-11h] type=0x24 */
    switch21, /* [BP-13h] type=0x24 */
    switch22, /* [BP-15h] type=0x24 */
    switch23, /* [BP-17h] type=0x24 */
    counter, /* [BP-19h] type=0x69 */
    qLo; /* [BP-1Bh] type=0x69 */

  set_info(0x0207, *(arg_06));
  process_exclude();
  a = Item.getFrame(arg_06);
  if (Item.getMapArray(arg_06) == 0) {
    if (a == 2) {
      spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06);
      suspend;
    }
    else if (a >= 2) {
      b = ((a + 1) & 1);
      spawn class_0A18_slot_20(pid, a, *(arg_06), arg_06);
      suspend;
    }
  }
  else {
    qLo = Item.getQLo(arg_06);
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF9 string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      if (!(sswitch == *(arg_06))) {
        if (Item.getMapArray(sswitch) == 0) {
          if (Item.getQLo(sswitch) == 29) {
            switch1 = sswitch;
            a1 = Item.getFrame(switch1);
          }
          else if (Item.getQLo(sswitch) == 30) {
            switch2 = sswitch;
            b1 = Item.getFrame(switch2);
          }
          else if (Item.getQLo(sswitch) == 31) {
            switch3 = sswitch;
            c1 = Item.getFrame(switch3);
          }
        }
      }
      counter = (1 + counter);
      /* loopnext  */
    }
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xEF string_bytes=0x6 loop_type=0x2 */
    while (!condition) {
      if (Item.getMapArray(sswitch2) == 0) {
        if (Item.getQLo(sswitch2) == 29) {
          switch21 = sswitch2;
        }
        else if (Item.getQLo(sswitch2) == 30) {
          switch22 = sswitch2;
        }
        else if (Item.getQLo(sswitch2) == 31) {
          switch23 = sswitch2;
        }
      }
      /* loopnext  */
    }
    if (qLo == 29) {
      a1 = Item.getFrame(arg_06);
      switch1 = *(arg_06);
      if (!(switch2 && switch3)) {
        if (!a1) {
          a1 = 0;
          b1 = 1;
        }
        else {
          a1 = 1;
          b1 = 0;
        }
      }
    }
    else if (qLo == 30) {
      b1 = Item.getFrame(arg_06);
      switch2 = *(arg_06);
      if (!(switch1 && switch3)) {
        if (!b1) {
          b1 = 0;
          a1 = 1;
          c1 = 1;
        }
        else {
          b1 = 1;
          a1 = 0;
          c1 = 0;
        }
      }
    }
    else if (qLo == 31) {
      c1 = Item.getFrame(arg_06);
      switch3 = *(arg_06);
      if (!(switch1 && switch2)) {
        if (!c1) {
          c1 = 0;
          b1 = 1;
        }
        else {
          c1 = 1;
          b1 = 0;
        }
      }
    }
    if (!a1) {
      if (!(b1 || c1)) {
        return;
      }
      else {
        /* loopscr value_u8=0x24 */
        /* loopscr value_u8=0x3D */
        /* loopscr value_u8=0x40 */
        /* loopscr value_u8=0x25 */
        /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */
        while (!condition) {
          if (Item.getQLo(timer) == 29) {
            suspend;
          }
          /* loopnext  */
        }
      }
    }
    else if (!b1) {
      if (!c1) {
        return;
      }
      else {
        /* loopscr value_u8=0x24 */
        /* loopscr value_u8=0x3D */
        /* loopscr value_u8=0x40 */
        /* loopscr value_u8=0x25 */
        /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */
        while (!condition) {
          if (Item.getQLo(timer) == 30) {
            suspend;
          }
          /* loopnext  */
        }
      }
    }
    else if (!c1) {
      /* loopscr value_u8=0x24 */
      /* loopscr value_u8=0x3D */
      /* loopscr value_u8=0x40 */
      /* loopscr value_u8=0x25 */
      /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */
      while (!condition) {
        if (Item.getQLo(timer) == 31) {
          suspend;
        }
        /* loopnext  */
      }
    }
    spawn class_0A0C_slot_32(pid, 20, 0x00000000);
    suspend;
  }
  spawn class_0A0C_slot_32(pid, 20, 0x00000000);
  suspend;
  return;
}
