function mcrate_gotHit() /* entry=231 class_id=0x0432 slot=0x06 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    vel, /* [BP+0Ch] type=0x69 */
    x, /* [BP-02h] type=0x69 */
    y, /* [BP-04h] type=0x69 */
    z, /* [BP-05h] type=0x62 */
    item; /* [BP-07h] type=0x24 */

  entry:
    set_info(0x020C, *(arg_06));
    process_exclude();
    class_0A0C_slot_2C(vel, ref);
    if retval goto block_0251;

  block_00FD:
    spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06);
    suspend;
    /* dword_to_word  */
    if (!process_result) goto block_015D;

  block_012D:
    class_0A0C_slot_20(1);
    if retval goto block_014D;

  block_013D:
    goto block_015A;

  block_014D:

  block_015A:
    goto block_0251;

  block_015D:
    x = Intrinsic0013(arg_06);
    y = Item.legal_create(arg_06);
    z = Item.getZ(arg_06);
    set_info(1, 0);
    if (Item.getFrame(arg_06) != 0) goto block_01F0;

  block_019E:
    spawn class_0A1E_slot_28(pid, 1, 0, arg_06);
    suspend;
    goto block_0251;

  block_01F0:
    if (Item.getFrame(arg_06) != 1) goto block_0251;

  block_01FF:
    spawn class_0A1E_slot_28(pid, 1, 1, arg_06);
    suspend;
    goto block_0251;

  block_0251:
    return;

}
