Buggy code:
private List < MyEntry < DirectValueActionItem , ConstantPool > > getVariables ( List < MyEntry < DirectValueActionItem , ConstantPool > > variables , HashMap < ASMSource , ActionList > actionsMap , List < GraphSourceItem > functions , HashMap < DirectValueActionItem , ConstantPool > strings , HashMap < DirectValueActionItem , String > usageTypes , ASMSource src , String path ) throws InterruptedException { } private void getVariables ( List < Tag > tags , String path , List < MyEntry < DirectValueActionItem , ConstantPool > > variables , HashMap < ASMSource , ActionList > actionsMap , List < GraphSourceItem > functions , HashMap < DirectValueActionItem , ConstantPool > strings , HashMap < DirectValueActionItem , String > usageTypes ) throws InterruptedException { } private void addVariable ( ASMSource asm , String path , List < String > processed , List < MyEntry < DirectValueActionItem , ConstantPool > > variables , HashMap < ASMSource , ActionList > actionsMap , List < GraphSourceItem > functions , HashMap < DirectValueActionItem , ConstantPool > strings , HashMap < DirectValueActionItem , String > usageTypes ) throws InterruptedException { } public int deobfuscateAS3Identifiers ( RenameType renameType ) { } public int deobfuscateIdentifiers ( RenameType renameType ) throws InterruptedException { } public void renameAS2Identifier ( String identifier , String newname ) throws InterruptedException { } private int deobfuscateAS2Identifiers ( RenameType renameType ) throws InterruptedException { } private int renameAS2Identifiers ( RenameType renameType , Map < String , String > selected ) throws InterruptedException { } public void exportFla ( AbortRetryIgnoreHandler handler , String outfile , String swfName , String generator , String generatorVerName , String generatorVersion , boolean parallel , FLAVersion version ) throws IOException { } public void exportXfl ( AbortRetryIgnoreHandler handler , String outfile , String swfName , String generator , String generatorVerName , String generatorVersion , boolean parallel , FLAVersion version ) throws IOException { } public static AffineTransform matrixToTransform ( MATRIX mat ) { } public static SerializableImage getFromCache ( String key ) { } public static void putToCache ( String key , SerializableImage img ) { } public void clearImageCache ( ) { } public void clearScriptCache ( ) { } public void clearAllCache ( ) { } public static void uncache ( ASMSource src ) { } public static void uncache ( ScriptPack pack ) { } public static boolean isCached ( ASMSource src ) { } public static boolean isCached ( ScriptPack pack ) { } public static CachedScript getCached ( ASMSource src , ActionList actions ) throws InterruptedException { } public static CachedDecompilation getCached ( ScriptPack pack ) throws InterruptedException { } public static RECT fixRect ( RECT rect ) { } public static void frameToSvg ( Timeline timeline , int frame , int time , DepthState stateUnderCursor , int mouseButton , SVGExporter exporter , ColorTransform colorTransform , int level , double zoom ) throws IOException { } private static String getTagIdPrefix ( Tag tag , SVGExporter exporter ) { } public static SerializableImage frameToImageGet ( Timeline timeline , int frame , int time , DepthState stateUnderCursor , int mouseButton , RECT displayRect , Matrix transformation , ColorTransform colorTransform , Color backGroundColor , boolean useCache , double zoom ) { String key = ( ( ( ( ( ( "frame_" + frame ) + "_" ) + ( timeline . id ) ) + "_" ) + ( timeline . swf . hashCode ( ) ) ) + "_" ) + zoom ; SerializableImage image ; if ( useCache ) { image = SWF . getFromCache ( key ) ; if ( image != null ) { return image ; } } if ( ( timeline . getFrameCount ( ) ) == 0 ) { return new SerializableImage ( 1 , 1 , SerializableImage . TYPE_INT_ARGB ) ; } RECT rect = displayRect ; image = new SerializableImage ( ( ( ( int ) ( ( ( rect . getWidth ( ) ) * zoom ) // ( SWF . unitDivisor ) ) ) + 1 ) , ( ( ( int ) ( ( ( rect . getHeight ( ) ) * zoom ) // ( SWF . unitDivisor ) ) ) + 1 ) , SerializableImage . TYPE_INT_ARGB ) ; if ( backGroundColor == null ) { image . fillTransparent ( ) ; } else { Graphics2D g = ( ( Graphics2D ) ( image . getBufferedImage ( ) . getGraphics ( ) ) ) ; g . setComposite ( AlphaComposite . Src ) ; g . setColor ( backGroundColor ) ; g . fill ( new Rectangle ( image . getWidth ( ) , image . getHeight ( ) ) ) ; } Matrix m = transformation . clone ( ) ; <START_BUG> m . translate ( ( - ( rect . Xmin ) ) , ( - ( rect . Ymin ) ) ) ; <END_BUG> m . scale ( zoom ) ; RenderContext renderContext = new RenderContext ( ) ; renderContext . stateUnderCursor = stateUnderCursor ; renderContext . mouseButton = mouseButton ; SWF . frameToImage ( timeline , frame , time , renderContext , image , m , colorTransform ) ; if ( useCache ) { SWF . putToCache ( key , image ) ; } return image ; } public static void framesToImage ( Timeline timeline , List < SerializableImage > ret , int startFrame , int stopFrame , RenderContext renderContext , RECT displayRect , int totalFrameCount , Stack < Integer > visited , Matrix transformation , ColorTransform colorTransform , double zoom ) { } public static void frameToImage ( Timeline timeline , int frame , int time , RenderContext renderContext , SerializableImage image , Matrix transformation , ColorTransform colorTransform ) { } private void removeTagWithDependenciesFromTimeline ( Tag toRemove , Timeline timeline ) { } private boolean removeTagFromTimeline ( Tag toRemove , Timeline timeline ) { } public void removeTag ( Tag t , boolean removeDependencies ) { } @ Override public String toString ( ) { } }

Fix:
m . translate ( ( ( - ( rect . Xmin ) ) * zoom ) , ( ( - ( rect . Ymin ) ) * zoom ) ) ;