function bouncbox_gotHit() /* entry=291 class_id=0x04EF slot=0x06 */
{
  var
    referent, /* [BP+00h] type=0x69 */
    ref, /* [BP+0Ah] type=0x69 */
    vel, /* [BP+0Ch] type=0x69 */
    dir, /* [BP-02h] type=0x69 */
    qHi, /* [BP-04h] type=0x69 */
    qLo, /* [BP-06h] type=0x69 */
    item, /* [BP-08h] type=0x24 */
    item2, /* [BP-0Ah] type=0x24 */
    x1, /* [BP-0Ch] type=0x69 */
    y1, /* [BP-0Eh] type=0x69 */
    ammo; /* [BP-10h] type=0x69 */

  entry:
    set_info(0x020C, *(arg_06));
    process_exclude();
    dir = Item.getCX(arg_06);
    item = ref;
    if (ref != 0x4000) goto block_02D1;

  block_010F:
    class_0A0C_slot_2C(vel, ref);
    class_0A0C_slot_2C((retval != 4), vel, ref);
    if (retval != 3) goto block_014B;

  block_0145:
    goto block_0479;

  block_014B:
    if ((dir > 15) && (dir < 32)) goto block_018B;

  block_015F:
    dir = (dir + 2);
    if (dir > 31) goto block_017E;

  block_0174:
    dir = (dir - 16);

  block_017E:

  block_018B:
    if (Item.getStatus(arg_06) & 4) goto block_01A8;

  block_019D:
    dir = 0x00FF;
    goto block_02CE;

  block_01A8:
    class_0A0C_slot_2C(vel, ref);
    ammo = retval;
    if (dir != 0x00FF) goto block_01D7;

  block_01C5:
    class_0A0C_slot_20(15);
    dir = retval;
    goto block_0216;

  block_01D7:
    if (dir != 0x00FE) goto block_0216;

  block_01E3:
    suspend;
    goto block_0479;

  block_0213:
    goto block_0216;

  block_0216:
    dir = (dir & 15);
    if ((dir > 13) || (dir < 3)) goto block_0241;

  block_0234:
    y1 = (y1 - 32);
    goto block_02A4;

  block_0241:
    if ((dir > 1) && (dir < 7)) goto block_0262;

  block_0255:
    x1 = (x1 + 32);
    goto block_02A4;

  block_0262:
    if ((dir > 5) && (dir < 11)) goto block_0283;

  block_0276:
    y1 = (y1 + 32);
    goto block_02A4;

  block_0283:
    if ((dir > 9) && (dir < 15)) goto block_02A4;

  block_0297:
    x1 = (x1 - 32);
    goto block_02A4;

  block_02A4:
    suspend;

  block_02CE:
    goto block_0479;

  block_02D1:
    if (Intrinsic0016(item) != 0x02C3) goto block_03A5;

  block_02E4:
    qHi = Item.getCX(item);
    qLo = Item.pop(item);
    if Item.getQLo(0, 0x02C4, item2) goto block_03A2;

  block_031F:
    if qHi goto block_0373;

  block_0334:
    goto block_03A2;

  block_0373:

  block_03A2:
    goto block_0479;

  block_03A5:
    if (Intrinsic0016(item) != 0x02C4) goto block_0479;

  block_03B8:
    qHi = Item.getCX(item);
    qLo = Item.pop(item);
    if Item.getQLo(0, 0x02C3, item2) goto block_0476;

  block_03F3:
    if qHi goto block_0447;

  block_0408:
    goto block_0476;

  block_0447:

  block_0476:
    goto block_0479;

  block_0479:
    return;

}
