Program: 61804
Project: 61804
Buggy source:
/** 
 * Constructor
 * @param swf
 * @param data Data bytes
 * @param pos
 * @throws IOException
 */
public PlaceObject4Tag(SWF swf,byte[] data,long pos) throws IOException {
  super(swf,ID,"String_Node_Str",data,pos);
  SWFInputStream sis=new SWFInputStream(new ByteArrayInputStream(data),swf.version);
  placeFlagHasClipActions=sis.readUB(1) == 1;
  placeFlagHasClipDepth=sis.readUB(1) == 1;
  placeFlagHasName=sis.readUB(1) == 1;
  placeFlagHasRatio=sis.readUB(1) == 1;
  placeFlagHasColorTransform=sis.readUB(1) == 1;
  placeFlagHasMatrix=sis.readUB(1) == 1;
  placeFlagHasCharacter=sis.readUB(1) == 1;
  placeFlagMove=sis.readUB(1) == 1;
  reserved=sis.readUB(1) == 1;
  placeFlagOpaqueBackground=sis.readUB(1) == 1;
  placeFlagHasVisible=sis.readUB(1) == 1;
  placeFlagHasImage=sis.readUB(1) == 1;
  placeFlagHasClassName=sis.readUB(1) == 1;
  placeFlagHasCacheAsBitmap=sis.readUB(1) == 1;
  placeFlagHasBlendMode=sis.readUB(1) == 1;
  placeFlagHasFilterList=sis.readUB(1) == 1;
  depth=sis.readUI16();
  if (placeFlagHasClassName) {
    className=sis.readString();
  }
  if (placeFlagHasCharacter) {
    characterId=sis.readUI16();
  }
  if (placeFlagHasMatrix) {
    matrix=sis.readMatrix();
  }
  if (placeFlagHasColorTransform) {
    colorTransform=sis.readCXFORMWITHALPHA();
  }
  if (placeFlagHasRatio) {
    ratio=sis.readUI16();
  }
  if (placeFlagHasName) {
    name=sis.readString();
  }
  if (placeFlagHasClipDepth) {
    clipDepth=sis.readUI16();
  }
  if (placeFlagHasFilterList) {
    surfaceFilterList=sis.readFILTERLIST();
  }
  if (placeFlagHasBlendMode) {
    blendMode=sis.readUI8();
  }
  bitmapCacheBug=false;
  if (placeFlagHasCacheAsBitmap) {
    try {
      bitmapCache=sis.readUI8();
    }
 catch (    EndOfStreamException eex) {
      bitmapCacheBug=true;
      bitmapCache=1;
    }
  }
  if (placeFlagHasVisible) {
    visible=sis.readUI8();
  }
  if (placeFlagOpaqueBackground) {
    backgroundColor=sis.readRGBA();
  }
  if (placeFlagHasClipActions) {
    clipActions=sis.readCLIPACTIONS(swf);
  }
  amfData=sis.readBytesEx(sis.available());
}

Fixed version (ground truth):
/** 
 * Constructor
 * @param swf
 * @param data Data bytes
 * @param pos
 * @throws IOException
 */
public PlaceObject4Tag(SWF swf,byte[] data,long pos) throws IOException {
  super(swf,ID,"String_Node_Str",data,pos);
  SWFInputStream sis=new SWFInputStream(new ByteArrayInputStream(data),swf.version);
  placeFlagHasClipActions=sis.readUB(1) == 1;
  placeFlagHasClipDepth=sis.readUB(1) == 1;
  placeFlagHasName=sis.readUB(1) == 1;
  placeFlagHasRatio=sis.readUB(1) == 1;
  placeFlagHasColorTransform=sis.readUB(1) == 1;
  placeFlagHasMatrix=sis.readUB(1) == 1;
  placeFlagHasCharacter=sis.readUB(1) == 1;
  placeFlagMove=sis.readUB(1) == 1;
  reserved=sis.readUB(1) == 1;
  placeFlagOpaqueBackground=sis.readUB(1) == 1;
  placeFlagHasVisible=sis.readUB(1) == 1;
  placeFlagHasImage=sis.readUB(1) == 1;
  placeFlagHasClassName=sis.readUB(1) == 1;
  placeFlagHasCacheAsBitmap=sis.readUB(1) == 1;
  placeFlagHasBlendMode=sis.readUB(1) == 1;
  placeFlagHasFilterList=sis.readUB(1) == 1;
  depth=sis.readUI16();
  if (placeFlagHasClassName) {
    className=sis.readString();
  }
  if (placeFlagHasCharacter) {
    characterId=sis.readUI16();
  }
  if (placeFlagHasMatrix) {
    matrix=sis.readMatrix();
  }
  if (placeFlagHasColorTransform) {
    colorTransform=sis.readCXFORMWITHALPHA();
  }
  if (placeFlagHasRatio) {
    ratio=sis.readUI16();
  }
  if (placeFlagHasName) {
    name=sis.readString();
  }
  if (placeFlagHasClipDepth) {
    clipDepth=sis.readUI16();
  }
  if (placeFlagHasFilterList) {
    surfaceFilterList=sis.readFILTERLIST();
  }
  if (placeFlagHasBlendMode) {
    blendMode=sis.readUI8();
  }
  bitmapCacheBug=false;
  if (placeFlagHasCacheAsBitmap) {
    try {
      bitmapCache=sis.readUI8();
    }
 catch (    EndOfStreamException eex) {
      bitmapCacheBug=true;
      bitmapCache=1;
    }
  }
  if (placeFlagHasVisible) {
    visible=sis.readUI8();
  }
  if (placeFlagOpaqueBackground) {
    backgroundColor=sis.readRGBA();
  }
  if (placeFlagHasClipActions) {
    clipActions=sis.readCLIPACTIONS(swf,this);
  }
  amfData=sis.readBytesEx(sis.available());
}