gitextract_4n4clgmd/ ├── .gitignore ├── LICENSE ├── README.md ├── accepted-words.dic ├── pom.xml └── src/ └── main/ └── java/ ├── lsieun/ │ ├── annotation/ │ │ └── todo/ │ │ └── ToDo.java │ ├── asm/ │ │ ├── analysis/ │ │ │ ├── ControlFlowAnalyzer.java │ │ │ ├── ControlFlowAnalyzer2.java │ │ │ ├── ControlFlowEdgeAnalyzer.java │ │ │ ├── ControlFlowEdgeAnalyzer2.java │ │ │ ├── ControlFlowGraphAnalyzer.java │ │ │ ├── DataFlowAnalyzer.java │ │ │ ├── InsnText.java │ │ │ ├── MockAnalyzer.java │ │ │ ├── RemoveDeadCodeNode.java │ │ │ ├── RemoveDeadCodeVisitor.java │ │ │ ├── RemoveUnusedCastNode.java │ │ │ ├── RemoveUnusedCastVisitor.java │ │ │ ├── cc/ │ │ │ │ ├── CyclomaticComplexity.java │ │ │ │ ├── CyclomaticComplexityAnalyzer.java │ │ │ │ └── CyclomaticComplexityFrame.java │ │ │ ├── cfg/ │ │ │ │ ├── ControlFlowBuilder.java │ │ │ │ ├── ControlFlowGraph.java │ │ │ │ ├── Edge.java │ │ │ │ ├── EdgeCreator.java │ │ │ │ ├── FramelessAnalyzer.java │ │ │ │ └── SimpleEdgeCreator.java │ │ │ ├── diagnosis/ │ │ │ │ ├── DeadCodeDiagnosis.java │ │ │ │ ├── NullDereferenceDiagnosis.java │ │ │ │ ├── NullabilityDiagnosis.java │ │ │ │ ├── RedundantVariableDiagnosis.java │ │ │ │ ├── RelatedInstructionDiagnosis.java │ │ │ │ └── ReverseEngineerMethodArgumentsDiagnosis.java │ │ │ ├── graph/ │ │ │ │ ├── InsnBlock.java │ │ │ │ ├── TextBox.java │ │ │ │ └── TextGraph.java │ │ │ ├── nullability/ │ │ │ │ ├── NullDeferenceInterpreter.java │ │ │ │ ├── Nullability.java │ │ │ │ ├── NullabilityAnalyzer.java │ │ │ │ ├── NullabilityFrame.java │ │ │ │ ├── NullabilityInterpreter.java │ │ │ │ └── NullabilityValue.java │ │ │ ├── state/ │ │ │ │ ├── StateInterpreter.java │ │ │ │ ├── StateType.java │ │ │ │ └── StateValue.java │ │ │ └── transition/ │ │ │ └── DestinationInterpreter.java │ │ ├── commons/ │ │ │ ├── ClassRemapperExample01.java │ │ │ ├── ClassRemapperExample02.java │ │ │ ├── ClassRemapperExample03.java │ │ │ ├── GeneratorAdapterExample01.java │ │ │ ├── InstructionAdapterExample01.java │ │ │ ├── MethodStackMapFrame02Visitor.java │ │ │ ├── MethodStackMapFrameVisitor.java │ │ │ ├── SerialVersionUIDAdderExample01.java │ │ │ └── StaticInitMergerExample01.java │ │ ├── core/ │ │ │ ├── ChangeURLVisitor.java │ │ │ ├── ClassChangeVersionVisitor.java │ │ │ ├── ClassCloneVisitor.java │ │ │ ├── ClassDecompileVisitor.java │ │ │ ├── ClassListMemberVisitor.java │ │ │ ├── ClassRemoveAttributeVisitor.java │ │ │ ├── MethodAroundVisitor.java │ │ │ ├── MethodAroundVisitor2.java │ │ │ ├── MethodEmptyBodyVisitor.java │ │ │ ├── MethodEnterVisitor.java │ │ │ ├── MethodExitVisitor.java │ │ │ ├── MethodFindInvokeVisitor.java │ │ │ ├── MethodFindRefVisitor.java │ │ │ ├── MethodParameterVisitor.java │ │ │ ├── MethodParameterVisitor2.java │ │ │ ├── MethodPatternAdapter.java │ │ │ ├── MethodRemoveAddZeroVisitor.java │ │ │ ├── MethodRemoveGetFieldPutFieldVisitor.java │ │ │ ├── MethodRemoveNopVisitor.java │ │ │ ├── MethodRemovePrintVisitor.java │ │ │ ├── MethodReplaceInvokeVisitor.java │ │ │ ├── MethodTimerVisitor.java │ │ │ ├── MethodTimerVisitor2.java │ │ │ ├── MethodTimerVisitor3.java │ │ │ ├── MethodTimerVisitor4.java │ │ │ ├── SuperPackageAttribute.java │ │ │ ├── counter/ │ │ │ │ ├── ClassCounterVisitor.java │ │ │ │ └── MethodCounterAdapter.java │ │ │ ├── empty/ │ │ │ │ ├── EmptyAnnotationVisitor.java │ │ │ │ ├── EmptyClassVisitor.java │ │ │ │ ├── EmptyFieldVisitor.java │ │ │ │ ├── EmptyMethodVisitor.java │ │ │ │ ├── EmptyModuleVisitor.java │ │ │ │ └── EmptyRecordComponentVisitor.java │ │ │ ├── info/ │ │ │ │ ├── InfoClassVisitor.java │ │ │ │ ├── InfoFieldVisitor.java │ │ │ │ └── InfoMethodVisitor.java │ │ │ └── timer/ │ │ │ ├── ClassTimerVisitor.java │ │ │ └── MethodTimerAdapter.java │ │ ├── template/ │ │ │ ├── CheckMethodAnnotationVisitor.java │ │ │ ├── ClassAddAnnotationVisitor.java │ │ │ ├── ClassAddCustomAttributeVisitor.java │ │ │ ├── ClassAddFieldVisitor.java │ │ │ ├── ClassAddInterfaceVisitor.java │ │ │ ├── ClassAddMethodVisitor.java │ │ │ ├── ClassGetAttributeContentVisitor.java │ │ │ ├── ClassMergeVisitor.java │ │ │ ├── ClassMergeVisitorRun.java │ │ │ ├── ClassPrintAnnotationVisitor.java │ │ │ ├── ClassPrintParameterVisitor.java │ │ │ ├── ClassRemoveFieldVisitor.java │ │ │ ├── ClassRemoveMethodVisitor.java │ │ │ ├── ClassRenameAdapter.java │ │ │ ├── ClassRenameAdapterRun.java │ │ │ ├── ClassReplaceMethodBodyVisitor.java │ │ │ ├── CustomAttribute.java │ │ │ ├── FieldAccessAdapter.java │ │ │ ├── FieldAccessAdapterRun.java │ │ │ ├── FieldAccessConverter.java │ │ │ ├── Info.java │ │ │ ├── MethodCallAdapter.java │ │ │ ├── MethodCallAdapterRun.java │ │ │ ├── MethodCallConverter.java │ │ │ ├── MethodEnteringAdapter.java │ │ │ ├── MethodEnteringVisitor.java │ │ │ ├── MethodEnteringVisitorRun.java │ │ │ ├── MethodExitingAdapter.java │ │ │ ├── MethodExitingAdapterRun.java │ │ │ ├── MethodExitingConverter.java │ │ │ ├── MethodFinallyAdapter.java │ │ │ ├── MethodFinallyAdapterRun.java │ │ │ ├── MethodFinallyConverter.java │ │ │ ├── MethodPrintInstructionAdapter.java │ │ │ ├── MethodPrintInstructionVisitor.java │ │ │ ├── MethodWithSameTryCatchLogicVisitor.java │ │ │ ├── MethodWithWholeTryCatchVisitor.java │ │ │ ├── RefRenameAdapter.java │ │ │ └── RemoveSyntheticVisitor.java │ │ ├── tree/ │ │ │ ├── ChangeMemberNameBasedOnAnnotationNode.java │ │ │ ├── ChangeThisNode.java │ │ │ ├── ClassAddCustomAttributeNode.java │ │ │ ├── ClassAddFieldNode.java │ │ │ ├── ClassAddMethodNode.java │ │ │ ├── ClassAddTimerNode.java │ │ │ ├── ClassRemoveFieldNode.java │ │ │ ├── ClassRemoveMethodNode.java │ │ │ ├── MixCore2TreeVisitor.java │ │ │ ├── MixTree2CoreNode.java │ │ │ ├── OptimizeJumpNode.java │ │ │ ├── RemoveGetFieldPutFieldNode.java │ │ │ ├── my/ │ │ │ │ ├── MyClassNode.java │ │ │ │ ├── MyClassVisitor.java │ │ │ │ ├── MyMethodAdapter.java │ │ │ │ └── MyMethodNode.java │ │ │ └── transformer/ │ │ │ ├── ClassTransformer.java │ │ │ └── MethodTransformer.java │ │ └── util/ │ │ ├── CheckClassAdapterExample01Generate.java │ │ ├── CheckClassAdapterExample02Generate.java │ │ ├── CodeUtils.java │ │ ├── TraceClassVisitorExample01Generate.java │ │ ├── TraceClassVisitorExample02Transform.java │ │ ├── TraceClassVisitorExample03.java │ │ └── TreePrinter.java │ ├── classfile/ │ │ ├── CPInfo.java │ │ ├── ClassFile.java │ │ └── InsnRaw.java │ ├── cst/ │ │ └── Const.java │ ├── drawing/ │ │ ├── canvas/ │ │ │ ├── Box.java │ │ │ ├── Canvas.java │ │ │ ├── Drawable.java │ │ │ ├── TextAlign.java │ │ │ ├── TextDirection.java │ │ │ └── TextPixel.java │ │ └── theme/ │ │ ├── line/ │ │ │ └── ContinuousLine.java │ │ ├── shape/ │ │ │ ├── Rectangle.java │ │ │ └── RectangleWithText.java │ │ ├── table/ │ │ │ ├── AbstractTable.java │ │ │ ├── FixedWidthOneLineTable.java │ │ │ └── OneLineTable.java │ │ └── text/ │ │ └── PlainText.java │ ├── trove/ │ │ ├── HashFunctions.java │ │ ├── PrimeFinder.java │ │ ├── THash.java │ │ ├── TIntArrayList.java │ │ ├── TIntFunction.java │ │ ├── TIntHash.java │ │ ├── TIntHashingStrategy.java │ │ ├── TIntIntHashMap.java │ │ ├── TIntIntIterator.java │ │ ├── TIntIntProcedure.java │ │ ├── TIntProcedure.java │ │ ├── TIterator.java │ │ ├── TPrimitiveHash.java │ │ ├── TPrimitiveIterator.java │ │ └── package-info.java │ └── utils/ │ ├── ASMUtilsCore.java │ ├── ASMUtilsTree.java │ ├── BoxDrawingUtils.java │ ├── ByteArrayClassLoader.java │ ├── ByteUtils.java │ ├── DescriptorUtils.java │ ├── FileUtils.java │ ├── FrameUtils.java │ ├── HexFormat.java │ ├── HexUtils.java │ ├── IOUtils.java │ ├── JarUtils.java │ ├── OpcodeConst.java │ ├── ReadUtils.java │ ├── StringUtils.java │ └── ValueUtils.java ├── run/ │ ├── ASMPrint.java │ ├── BoxDrawingRun.java │ ├── BytecodeRun.java │ ├── ControlFlowGraphRun.java │ ├── ControlFlowGraphType.java │ ├── HelloWorldAnalysisCore.java │ ├── HelloWorldAnalysisTree.java │ ├── HelloWorldFrameCore.java │ ├── HelloWorldFrameCore02.java │ ├── HelloWorldFrameTree.java │ ├── HelloWorldGenerateCore.java │ ├── HelloWorldGenerateTree.java │ ├── HelloWorldRun.java │ ├── HelloWorldTransformCore.java │ ├── HelloWorldTransformTree.java │ ├── MockAnalyzerRun.java │ ├── PrintASMCodeCore.java │ ├── PrintASMCodeTree.java │ ├── PrintASMTextClass.java │ ├── PrintASMTextLambda.java │ ├── PrintOpcodeTable.java │ └── jar/ │ ├── CompareTwoJarFile.java │ └── FindJarClassItem.java └── sample/ ├── HelloWorld.java └── ParameterUtils.java