function pu_gun_calledFromAnim() /* entry=361 class_id=0x05BA slot=0x0E */
{
  entry:
    set_info(0x021A, *(arg_06));
    process_exclude();
    local_02 = *(arg_06);
    local_05 = Actor.getLastAnimSet(local_02);
    if (local_05 != 8) goto block_0490;

  block_020B:
    if (local_15 == 0) {
      local_07 = 0;
      local_09 = -64;
      local_0B = -32;
      local_0D = -64;
    }
    else if (local_15 == 1) {
      local_07 = 16;
      local_09 = -48;
      local_0B = -16;
      local_0D = -64;
    }
    else if (local_15 == 2) {
      local_07 = 35;
      local_09 = -39;
      local_0B = 17;
      local_0D = -61;
    }
    else if (local_15 == 3) {
      local_07 = 43;
      local_09 = -11;
      local_0B = 24;
      local_0D = -40;
    }
    else if (local_15 == 4) {
      local_07 = 16;
      local_09 = 0;
      local_0B = 16;
      local_0D = -32;
    }
    else if (local_15 == 5) {
      local_07 = 24;
      local_09 = -16;
      local_0B = 17;
      local_0D = 19;
    }
    else if (local_15 == 6) {
      local_07 = 16;
      local_09 = -4;
      local_0B = 0;
      local_0D = 18;
    }
    else if (local_15 == 7) {
      local_07 = 18;
      local_09 = 22;
      local_0B = -14;
      local_0D = 30;
    }
    else if (local_15 == 8) {
      local_07 = -6;
      local_09 = 22;
      local_0B = -33;
      local_0D = 22;
    }
    else if (local_15 == 9) {
      local_07 = -22;
      local_09 = 30;
      local_0B = -51;
      local_0D = 19;
    }
    else if (local_15 == 10) {
      local_07 = -36;
      local_09 = 24;
      local_0B = -67;
      local_0D = -1;
    }
    else if (local_15 == 11) {
      local_07 = -52;
      local_09 = 16;
      local_0B = -64;
      local_0D = -16;
    }
    else if (local_15 == 12) {
      local_07 = -64;
      local_09 = 4;
      local_0B = -65;
      local_0D = -31;
    }
    else if (local_15 == 13) {
      local_07 = -68;
      local_09 = -24;
      local_0B = -65;
      local_0D = -55;
    }
    else if (local_15 == 14) {
      local_07 = -41;
      local_09 = -67;
      local_0B = -67;
      local_0D = -45;
    }
    else if (local_15 == 15) {
      local_07 = -60;
      local_09 = -64;
      local_0B = -22;
      local_0D = -66;
    }

  block_03FF:
    ITEM.slot_26(4, arg_06);
    if retval goto block_0428;

  block_040E:
    local_0F = 46;
    local_11 = 48;
    local_03 = 0;
    ITEM.slot_25(4, arg_06);
    goto block_043F;

  block_0428:
    local_0F = 48;
    local_11 = 46;
    local_03 = 1;
    ITEM.slot_24(4, arg_06);

  block_043F:
    spawn FREE.slot_3B(pid, 5, 0x00000000);
    suspend;
    goto block_0541;

  block_0490:
    set_info(0x00F0, 0);
    /* loop_selector local_17 in nearby_items(shape=0x04E7, origin=local_02) */

  block_04AC:
    if condition goto block_04F1;

  block_04AF:
    if (Intrinsic000D(local_02) != Item.getQLo(local_17)) goto block_04ED;

  block_04C5:
    if (Item.getMapNum(local_17) != 0) goto block_04ED;

  block_04D4:
    spawn TRIGGER.slot_20(pid, 0, local_17, local_17);
    suspend;
    goto block_04F1;

  block_04ED:
    /* loopnext  */
    goto block_04AC;

  block_04F1:
    spawn ITEM.slot_2A(pid, 1, 2, local_02);
    suspend;

  block_0541:
    return;

}
