function fuspac_use() /* entry=208 class_id=0x039C slot=0x01 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    InCrouch, /* [BP-01h] type=0x62 */
    droppedPac, /* [BP-02h] type=0x62 */
    Fusionpac, /* [BP-04h] type=0x24 */
    target, /* [BP-06h] type=0x24 */
    item, /* [BP-08h] type=0x24 */
    counter, /* [BP-0Ah] type=0x69 */
    lastAnim, /* [BP-0Ch] type=0x69 */
    xOff, /* [BP-0Eh] type=0x69 */
    yOff, /* [BP-10h] type=0x69 */
    mine, /* [BP-12h] type=0x24 */
    door; /* [BP-14h] type=0x24 */

  entry:
    set_info(0x0207, *(arg_06));
    process_exclude();
    Fusionpac = *(arg_06);
    set_info(0x00F0, 0);
    /* global_address global_id=0x3C */
    lastAnim = Item.isOn();

  block_0117:
    /* global_address global_id=0x3C */
    if Intrinsic0033() goto block_014D;

  block_0127:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_0117;

  block_014D:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */

  block_016B:
    if condition goto block_022D;

  block_016E:
    target = item;

  block_0175:
    class_0A0C_slot_29(target, global[0x003C]);
    if ((retval > 3) && (counter != 6)) goto block_01F6;

  block_0198:
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 1, Item.legal_create(Item.legal_create(target), Intrinsic0013(target)))));
    suspend;
    counter = (1 + counter);
    goto block_0175;

  block_01F6:
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    suspend;
    goto block_022D;

  block_0229:
    /* loopnext  */
    goto block_016B;

  block_022D:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 0) goto block_024D;

  block_023F:
    xOff = -1;
    yOff = -3;
    goto block_040F;

  block_024D:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 1) goto block_026B;

  block_025D:
    xOff = 0;
    yOff = -3;
    goto block_040F;

  block_026B:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 2) goto block_0289;

  block_027B:
    xOff = 1;
    yOff = -3;
    goto block_040F;

  block_0289:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 3) goto block_02A7;

  block_0299:
    xOff = 2;
    yOff = -2;
    goto block_040F;

  block_02A7:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 4) goto block_02C5;

  block_02B7:
    xOff = 2;
    yOff = -1;
    goto block_040F;

  block_02C5:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 5) goto block_02E3;

  block_02D5:
    xOff = 2;
    yOff = 0;
    goto block_040F;

  block_02E3:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 6) goto block_0301;

  block_02F3:
    xOff = 2;
    yOff = 2;
    goto block_040F;

  block_0301:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 7) goto block_031F;

  block_0311:
    xOff = 0;
    yOff = 2;
    goto block_040F;

  block_031F:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 8) goto block_033D;

  block_032F:
    xOff = -1;
    yOff = 2;
    goto block_040F;

  block_033D:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 9) goto block_035B;

  block_034D:
    xOff = -2;
    yOff = 2;
    goto block_040F;

  block_035B:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 10) goto block_0379;

  block_036B:
    xOff = -3;
    yOff = 2;
    goto block_040F;

  block_0379:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 11) goto block_0397;

  block_0389:
    xOff = -3;
    yOff = 1;
    goto block_040F;

  block_0397:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 12) goto block_03B5;

  block_03A7:
    xOff = -3;
    yOff = 0;
    goto block_040F;

  block_03B5:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 13) goto block_03D3;

  block_03C5:
    xOff = -3;
    yOff = -1;
    goto block_040F;

  block_03D3:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 14) goto block_03F1;

  block_03E3:
    xOff = -3;
    yOff = -2;
    goto block_040F;

  block_03F1:
    /* global_address global_id=0x3C */
    if (Intrinsic00FA() != 15) goto block_040F;

  block_0401:
    xOff = -3;
    yOff = -3;
    goto block_040F;

  block_040F:
    if (!target) goto block_0481;

  block_0418:
    spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000);
    suspend;
    goto block_0772;

  block_047E:
    goto block_0772;

  block_0481:
    /* global_address global_id=0x3C */
    if Intrinsic0035() goto block_049B;

  block_0491:
    InCrouch = 1;
    goto block_04D2;

  block_049B:
    InCrouch = 0;
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    suspend;

  block_04D2:
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    /* global_address global_id=0x3C */
    droppedPac = 1;

  block_052C:
    /* global_address global_id=0x3C */
    if Intrinsic0033() goto block_0562;

  block_053C:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_052C;

  block_0562:
    if droppedPac goto block_0772;

  block_056A:
    /* str_to_ptr  */
    /* free_stack_string value_u8=0x4 target=[SP+04h] */
    suspend;
    /* pop_global global_id=0x26 size=0x1 */
    spawn class_0A0C_slot_24(1, 100, 0x00000000);
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */

  block_05DE:
    if condition goto block_0609;

  block_05E1:
    if (Item.getQHi(item) != 33) goto block_0605;

  block_05F6:
    class_0A0C_slot_2F(0x03B5, item);

  block_0605:
    /* loopnext  */
    goto block_05DE;

  block_0609:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x42 */
    /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */

  block_062B:
    if condition goto block_0652;

  block_062E:
    if (Item.getQHi(item) != 10) goto block_064E;

  block_0643:

  block_064E:
    /* loopnext  */
    goto block_062B;

  block_0652:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x41 */
    /* loop current_var=0xF8 string_bytes=0x4 loop_type=0x2 */

  block_0670:
    if condition goto block_06B2;

  block_0673:
    if (Item.getQHi(item) != 10) goto block_06AE;

  block_0688:
    door = item;
    spawn class_0A06_slot_20(pid, door);
    suspend;

  block_06AE:
    /* loopnext  */
    goto block_0670;

  block_06B2:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x41 */
    /* loop current_var=0xF8 string_bytes=0x4 loop_type=0x2 */

  block_06CF:
    if condition goto block_0706;

  block_06D2:
    if (Item.getQHi(item) != 0x00FB) goto block_0702;

  block_06E8:

  block_0702:
    /* loopnext  */
    goto block_06CF;

  block_0706:
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */

  block_0727:
    if condition goto block_0770;

  block_072A:
    if ((Item.getFrame(item) != 0) && (Item.getQHi(item) != 47)) goto block_076C;

  block_074C:
    suspend;

  block_076C:
    /* loopnext  */
    goto block_0727;

  block_0770:

  block_0772:
    return;

}
