public class net.bytebuddy.implementation.HashCodeMethod$Appender implements net.bytebuddy.implementation.bytecode.ByteCodeAppender
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: net.bytebuddy.implementation.HashCodeMethod$Appender
  super_class: java.lang.Object
{
  private final net.bytebuddy.implementation.bytecode.StackManipulation initialValue;
    descriptor: Lnet/bytebuddy/implementation/bytecode/StackManipulation;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int multiplier;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<net.bytebuddy.description.field.FieldDescription$InDefinedShape> fieldDescriptions;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;

  private final net.bytebuddy.matcher.ElementMatcher<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape> nonNullable;
    descriptor: Lnet/bytebuddy/matcher/ElementMatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;

  protected void <init>(net.bytebuddy.implementation.bytecode.StackManipulation, int, java.util.List<net.bytebuddy.description.field.FieldDescription$InDefinedShape>, net.bytebuddy.matcher.ElementMatcher<? super net.bytebuddy.description.field.FieldDescription$InDefinedShape>);
    descriptor: (Lnet/bytebuddy/implementation/bytecode/StackManipulation;ILjava/util/List;Lnet/bytebuddy/matcher/ElementMatcher;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // net.bytebuddy.implementation.HashCodeMethod$Appender this
        start local 1 // net.bytebuddy.implementation.bytecode.StackManipulation initialValue
        start local 2 // int multiplier
        start local 3 // java.util.List fieldDescriptions
        start local 4 // net.bytebuddy.matcher.ElementMatcher nonNullable
         0: .line 674
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 678
            aload 0 /* this */
            aload 1 /* initialValue */
            putfield net.bytebuddy.implementation.HashCodeMethod$Appender.initialValue:Lnet/bytebuddy/implementation/bytecode/StackManipulation;
         2: .line 679
            aload 0 /* this */
            iload 2 /* multiplier */
            putfield net.bytebuddy.implementation.HashCodeMethod$Appender.multiplier:I
         3: .line 680
            aload 0 /* this */
            aload 3 /* fieldDescriptions */
            putfield net.bytebuddy.implementation.HashCodeMethod$Appender.fieldDescriptions:Ljava/util/List;
         4: .line 681
            aload 0 /* this */
            aload 4 /* nonNullable */
            putfield net.bytebuddy.implementation.HashCodeMethod$Appender.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher;
         5: .line 682
            return
        end local 4 // net.bytebuddy.matcher.ElementMatcher nonNullable
        end local 3 // java.util.List fieldDescriptions
        end local 2 // int multiplier
        end local 1 // net.bytebuddy.implementation.bytecode.StackManipulation initialValue
        end local 0 // net.bytebuddy.implementation.HashCodeMethod$Appender this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lnet/bytebuddy/implementation/HashCodeMethod$Appender;
            0    6     1       initialValue  Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            0    6     2         multiplier  I
            0    6     3  fieldDescriptions  Ljava/util/List<Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
            0    6     4        nonNullable  Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;
    Signature: (Lnet/bytebuddy/implementation/bytecode/StackManipulation;ILjava/util/List<Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;Lnet/bytebuddy/matcher/ElementMatcher<-Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;>;)V
    MethodParameters:
                   Name  Flags
      initialValue       
      multiplier         
      fieldDescriptions  
      nonNullable        

  public net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size apply(org.objectweb.asm.MethodVisitor, net.bytebuddy.implementation.Implementation$Context, net.bytebuddy.description.method.MethodDescription);
    descriptor: (Lorg/objectweb/asm/MethodVisitor;Lnet/bytebuddy/implementation/Implementation$Context;Lnet/bytebuddy/description/method/MethodDescription;)Lnet/bytebuddy/implementation/bytecode/ByteCodeAppender$Size;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // net.bytebuddy.implementation.HashCodeMethod$Appender this
        start local 1 // org.objectweb.asm.MethodVisitor methodVisitor
        start local 2 // net.bytebuddy.implementation.Implementation$Context implementationContext
        start local 3 // net.bytebuddy.description.method.MethodDescription instrumentedMethod
         0: .line 688
            aload 3 /* instrumentedMethod */
            invokeinterface net.bytebuddy.description.method.MethodDescription.isStatic:()Z
            ifeq 2
         1: .line 689
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Hash code method must not be static: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* instrumentedMethod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 690
      StackMap locals:
      StackMap stack:
            aload 3 /* instrumentedMethod */
            invokeinterface net.bytebuddy.description.method.MethodDescription.getReturnType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            invokeinterface net.bytebuddy.description.type.TypeDescription$Generic.represents:(Ljava/lang/reflect/Type;)Z
            ifne 4
         3: .line 691
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Hash code method does not return primitive integer: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* instrumentedMethod */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 693
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_2
            aload 0 /* this */
            getfield net.bytebuddy.implementation.HashCodeMethod$Appender.fieldDescriptions:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            bipush 8
            imul
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* stackManipulations */
        start local 4 // java.util.List stackManipulations
         5: .line 694
            aload 4 /* stackManipulations */
            aload 0 /* this */
            getfield net.bytebuddy.implementation.HashCodeMethod$Appender.initialValue:Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 695
            iconst_0
            istore 5 /* padding */
        start local 5 // int padding
         7: .line 696
            aload 0 /* this */
            getfield net.bytebuddy.implementation.HashCodeMethod$Appender.fieldDescriptions:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 22
      StackMap locals: net.bytebuddy.implementation.HashCodeMethod$Appender org.objectweb.asm.MethodVisitor net.bytebuddy.implementation.Implementation$Context net.bytebuddy.description.method.MethodDescription java.util.List int top java.util.Iterator
      StackMap stack:
         8: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast net.bytebuddy.description.field.FieldDescription$InDefinedShape
            astore 6 /* fieldDescription */
        start local 6 // net.bytebuddy.description.field.FieldDescription$InDefinedShape fieldDescription
         9: .line 697
            aload 4 /* stackManipulations */
            aload 0 /* this */
            getfield net.bytebuddy.implementation.HashCodeMethod$Appender.multiplier:I
            invokestatic net.bytebuddy.implementation.bytecode.constant.IntegerConstant.forValue:(I)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 698
            aload 4 /* stackManipulations */
            getstatic net.bytebuddy.implementation.bytecode.Multiplication.INTEGER:Lnet/bytebuddy/implementation/bytecode/Multiplication;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 699
            aload 4 /* stackManipulations */
            invokestatic net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.loadThis:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 700
            aload 4 /* stackManipulations */
            aload 6 /* fieldDescription */
            invokestatic net.bytebuddy.implementation.bytecode.member.FieldAccess.forField:(Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;)Lnet/bytebuddy/implementation/bytecode/member/FieldAccess$Defined;
            invokeinterface net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined.read:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 701
            aload 6 /* fieldDescription */
            invokeinterface net.bytebuddy.description.field.FieldDescription$InDefinedShape.getType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
            invokeinterface net.bytebuddy.description.type.TypeDescription$Generic.isPrimitive:()Z
            ifne 14
            aload 6 /* fieldDescription */
            invokeinterface net.bytebuddy.description.field.FieldDescription$InDefinedShape.getType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
            invokeinterface net.bytebuddy.description.type.TypeDescription$Generic.isArray:()Z
            ifne 14
            aload 0 /* this */
            getfield net.bytebuddy.implementation.HashCodeMethod$Appender.nonNullable:Lnet/bytebuddy/matcher/ElementMatcher;
            aload 6 /* fieldDescription */
            invokeinterface net.bytebuddy.matcher.ElementMatcher.matches:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 702
      StackMap locals: net.bytebuddy.implementation.HashCodeMethod$Appender org.objectweb.asm.MethodVisitor net.bytebuddy.implementation.Implementation$Context net.bytebuddy.description.method.MethodDescription java.util.List int net.bytebuddy.description.field.FieldDescription$InDefinedShape java.util.Iterator
      StackMap stack:
            getstatic net.bytebuddy.implementation.HashCodeMethod$NullValueGuard$NoOp.INSTANCE:Lnet/bytebuddy/implementation/HashCodeMethod$NullValueGuard$NoOp;
            goto 16
        15: .line 703
      StackMap locals:
      StackMap stack:
            new net.bytebuddy.implementation.HashCodeMethod$NullValueGuard$UsingJump
            dup
            aload 3 /* instrumentedMethod */
            invokespecial net.bytebuddy.implementation.HashCodeMethod$NullValueGuard$UsingJump.<init>:(Lnet/bytebuddy/description/method/MethodDescription;)V
        16: .line 701
      StackMap locals:
      StackMap stack: net.bytebuddy.implementation.HashCodeMethod$NullValueGuard
            astore 8 /* nullValueGuard */
        start local 8 // net.bytebuddy.implementation.HashCodeMethod$NullValueGuard nullValueGuard
        17: .line 704
            aload 4 /* stackManipulations */
            aload 8 /* nullValueGuard */
            invokeinterface net.bytebuddy.implementation.HashCodeMethod$NullValueGuard.before:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 705
            aload 4 /* stackManipulations */
            aload 6 /* fieldDescription */
            invokeinterface net.bytebuddy.description.field.FieldDescription$InDefinedShape.getType:()Lnet/bytebuddy/description/type/TypeDescription$Generic;
            invokestatic net.bytebuddy.implementation.HashCodeMethod$ValueTransformer.of:(Lnet/bytebuddy/description/type/TypeDefinition;)Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        19: .line 706
            aload 4 /* stackManipulations */
            getstatic net.bytebuddy.implementation.bytecode.Addition.INTEGER:Lnet/bytebuddy/implementation/bytecode/Addition;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        20: .line 707
            aload 4 /* stackManipulations */
            aload 8 /* nullValueGuard */
            invokeinterface net.bytebuddy.implementation.HashCodeMethod$NullValueGuard.after:()Lnet/bytebuddy/implementation/bytecode/StackManipulation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 708
            iload 5 /* padding */
            aload 8 /* nullValueGuard */
            invokeinterface net.bytebuddy.implementation.HashCodeMethod$NullValueGuard.getRequiredVariablePadding:()I
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* padding */
        end local 8 // net.bytebuddy.implementation.HashCodeMethod$NullValueGuard nullValueGuard
        end local 6 // net.bytebuddy.description.field.FieldDescription$InDefinedShape fieldDescription
        22: .line 696
      StackMap locals: net.bytebuddy.implementation.HashCodeMethod$Appender org.objectweb.asm.MethodVisitor net.bytebuddy.implementation.Implementation$Context net.bytebuddy.description.method.MethodDescription java.util.List int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        23: .line 710
            aload 4 /* stackManipulations */
            getstatic net.bytebuddy.implementation.bytecode.member.MethodReturn.INTEGER:Lnet/bytebuddy/implementation/bytecode/member/MethodReturn;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 711
            new net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size
            dup
            new net.bytebuddy.implementation.bytecode.StackManipulation$Compound
            dup
            aload 4 /* stackManipulations */
            invokespecial net.bytebuddy.implementation.bytecode.StackManipulation$Compound.<init>:(Ljava/util/List;)V
            aload 1 /* methodVisitor */
            aload 2 /* implementationContext */
            invokevirtual net.bytebuddy.implementation.bytecode.StackManipulation$Compound.apply:(Lorg/objectweb/asm/MethodVisitor;Lnet/bytebuddy/implementation/Implementation$Context;)Lnet/bytebuddy/implementation/bytecode/StackManipulation$Size;
            invokevirtual net.bytebuddy.implementation.bytecode.StackManipulation$Size.getMaximalSize:()I
            aload 3 /* instrumentedMethod */
            invokeinterface net.bytebuddy.description.method.MethodDescription.getStackSize:()I
            iload 5 /* padding */
            iadd
            invokespecial net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size.<init>:(II)V
            areturn
        end local 5 // int padding
        end local 4 // java.util.List stackManipulations
        end local 3 // net.bytebuddy.description.method.MethodDescription instrumentedMethod
        end local 2 // net.bytebuddy.implementation.Implementation$Context implementationContext
        end local 1 // org.objectweb.asm.MethodVisitor methodVisitor
        end local 0 // net.bytebuddy.implementation.HashCodeMethod$Appender this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   25     0                   this  Lnet/bytebuddy/implementation/HashCodeMethod$Appender;
            0   25     1          methodVisitor  Lorg/objectweb/asm/MethodVisitor;
            0   25     2  implementationContext  Lnet/bytebuddy/implementation/Implementation$Context;
            0   25     3     instrumentedMethod  Lnet/bytebuddy/description/method/MethodDescription;
            5   25     4     stackManipulations  Ljava/util/List<Lnet/bytebuddy/implementation/bytecode/StackManipulation;>;
            7   25     5                padding  I
            9   22     6       fieldDescription  Lnet/bytebuddy/description/field/FieldDescription$InDefinedShape;
           17   22     8         nullValueGuard  Lnet/bytebuddy/implementation/HashCodeMethod$NullValueGuard;
    MethodParameters:
                       Name  Flags
      methodVisitor          
      implementationContext  
      instrumentedMethod     
}
SourceFile: "HashCodeMethod.java"
NestHost: net.bytebuddy.implementation.HashCodeMethod
InnerClasses:
  public abstract Enhance = net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance of net.bytebuddy.build.HashCodeAndEqualsPlugin
  public abstract InDefinedShape = net.bytebuddy.description.field.FieldDescription$InDefinedShape of net.bytebuddy.description.field.FieldDescription
  public abstract Generic = net.bytebuddy.description.type.TypeDescription$Generic of net.bytebuddy.description.type.TypeDescription
  protected Appender = net.bytebuddy.implementation.HashCodeMethod$Appender of net.bytebuddy.implementation.HashCodeMethod
  protected abstract NullValueGuard = net.bytebuddy.implementation.HashCodeMethod$NullValueGuard of net.bytebuddy.implementation.HashCodeMethod
  public final NoOp = net.bytebuddy.implementation.HashCodeMethod$NullValueGuard$NoOp of net.bytebuddy.implementation.HashCodeMethod$NullValueGuard
  public UsingJump = net.bytebuddy.implementation.HashCodeMethod$NullValueGuard$UsingJump of net.bytebuddy.implementation.HashCodeMethod$NullValueGuard
  protected abstract ValueTransformer = net.bytebuddy.implementation.HashCodeMethod$ValueTransformer of net.bytebuddy.implementation.HashCodeMethod
  public abstract Context = net.bytebuddy.implementation.Implementation$Context of net.bytebuddy.implementation.Implementation
  public Size = net.bytebuddy.implementation.bytecode.ByteCodeAppender$Size of net.bytebuddy.implementation.bytecode.ByteCodeAppender
  public Compound = net.bytebuddy.implementation.bytecode.StackManipulation$Compound of net.bytebuddy.implementation.bytecode.StackManipulation
  public Size = net.bytebuddy.implementation.bytecode.StackManipulation$Size of net.bytebuddy.implementation.bytecode.StackManipulation
  public abstract Defined = net.bytebuddy.implementation.bytecode.member.FieldAccess$Defined of net.bytebuddy.implementation.bytecode.member.FieldAccess
    RuntimeVisibleAnnotations: 
      net.bytebuddy.build.HashCodeAndEqualsPlugin$Enhance()