function cruztrig_gotHit() /* entry=193 class_id=0x0365 slot=0x06 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    vel, /* [BP+0Ch] type=0x69 */
    item, /* [BP-02h] type=0x24 */
    elev; /* [BP-04h] type=0x24 */

  entry:
    set_info(0x020C, *(arg_06));
    process_exclude();
    if (ref != Item.pop()) goto block_00FF;

  block_00F9:
    goto block_0316;

  block_00FF:
    if (Item.getMapNum(arg_06) != 0) goto block_0316;

  block_0111:
    item = ref;
    if ((Intrinsic0057(arg_06) != 0) || (Item.use(*(arg_06), item) != 0)) goto block_0144;

  block_013E:
    goto block_0316;

  block_0144:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06);
    suspend;

  block_019E:
    if 1 goto block_0316;

  block_01A6:
    if (Intrinsic0057(arg_06) != 0) goto block_01E1;

  block_01B8:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_0313;

  block_01E1:
    spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06);
    suspend;
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    /* loopscr value_u8=0x24 */
    /* loopscr value_u8=0x3D */
    /* loopscr value_u8=0x40 */
    /* loopscr value_u8=0x25 */
    /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */

  block_0257:
    if condition goto block_030B;

  block_025A:
    if (Item.getStatus(elev) & 0x1000) goto block_0296;

  block_026D:
    spawn class_0A0C_slot_32(pid, 2, 0x00000000);
    suspend;
    goto block_025A;

  block_0296:
    spawn class_0A0C_slot_32(pid, 120, 0x00000000);
    suspend;
    /* global_address global_id=0x3C */
    if (Item.getZ() < (Item.getZ(elev) - 5)) goto block_0307;

  block_02DC:
    class_0A09_slot_21(Item.getZ(elev), elev);
    if retval goto block_0307;

  block_02F9:
    spawn class_0A09_slot_20(elev);

  block_0307:
    /* loopnext  */
    goto block_0257;

  block_030B:
    goto block_0316;

  block_0313:
    goto block_019E;

  block_0316:
    return;

}
