final class org.joni.ApplyCaseFold implements org.jcodings.ApplyAllCaseFoldFunction
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.joni.ApplyCaseFold
  super_class: java.lang.Object
{
  static final org.joni.ApplyCaseFold INSTANCE;
    descriptor: Lorg/joni/ApplyCaseFold;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 107
            new org.joni.ApplyCaseFold
            dup
            invokespecial org.joni.ApplyCaseFold.<init>:()V
            putstatic org.joni.ApplyCaseFold.INSTANCE:Lorg/joni/ApplyCaseFold;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.joni.ApplyCaseFold this
         0: .line 28
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.joni.ApplyCaseFold this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/joni/ApplyCaseFold;

  public void apply(int, int[], int, java.lang.Object);
    descriptor: (I[IILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // org.joni.ApplyCaseFold this
        start local 1 // int from
        start local 2 // int[] to
        start local 3 // int length
        start local 4 // java.lang.Object o
         0: .line 32
            aload 4 /* o */
            checkcast org.joni.ApplyCaseFoldArg
            astore 5 /* arg */
        start local 5 // org.joni.ApplyCaseFoldArg arg
         1: .line 34
            aload 5 /* arg */
            getfield org.joni.ApplyCaseFoldArg.env:Lorg/joni/ScanEnvironment;
            astore 6 /* env */
        start local 6 // org.joni.ScanEnvironment env
         2: .line 35
            aload 6 /* env */
            getfield org.joni.ScanEnvironment.enc:Lorg/jcodings/Encoding;
            astore 7 /* enc */
        start local 7 // org.jcodings.Encoding enc
         3: .line 36
            aload 5 /* arg */
            getfield org.joni.ApplyCaseFoldArg.cc:Lorg/joni/ast/CClassNode;
            astore 8 /* cc */
        start local 8 // org.joni.ast.CClassNode cc
         4: .line 37
            aload 5 /* arg */
            getfield org.joni.ApplyCaseFoldArg.ascCc:Lorg/joni/ast/CClassNode;
            astore 9 /* ascCc */
        start local 9 // org.joni.ast.CClassNode ascCc
         5: .line 38
            aload 8 /* cc */
            getfield org.joni.ast.CClassNode.bs:Lorg/joni/BitSet;
            astore 10 /* bs */
        start local 10 // org.joni.BitSet bs
         6: .line 41
            aload 9 /* ascCc */
            ifnonnull 9
         7: .line 42
            iconst_0
            istore 11 /* addFlag */
        start local 11 // boolean addFlag
         8: .line 43
            goto 16
        end local 11 // boolean addFlag
      StackMap locals: org.joni.ApplyCaseFold int int[] int java.lang.Object org.joni.ApplyCaseFoldArg org.joni.ScanEnvironment org.jcodings.Encoding org.joni.ast.CClassNode org.joni.ast.CClassNode org.joni.BitSet
      StackMap stack:
         9: iload 1 /* from */
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            aload 2 /* to */
            iconst_0
            iaload
            invokestatic org.jcodings.Encoding.isAscii:(I)Z
            if_icmpne 12
        10: .line 44
            iconst_1
            istore 11 /* addFlag */
        start local 11 // boolean addFlag
        11: .line 45
            goto 16
        end local 11 // boolean addFlag
        12: .line 46
      StackMap locals:
      StackMap stack:
            aload 9 /* ascCc */
            aload 7 /* enc */
            iload 1 /* from */
            invokevirtual org.joni.ast.CClassNode.isCodeInCC:(Lorg/jcodings/Encoding;I)Z
            istore 11 /* addFlag */
        start local 11 // boolean addFlag
        13: .line 47
            aload 9 /* ascCc */
            invokevirtual org.joni.ast.CClassNode.isNot:()Z
            ifeq 16
            iload 11 /* addFlag */
            ifeq 14
            iconst_0
            goto 15
      StackMap locals: int
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: istore 11 /* addFlag */
        16: .line 50
      StackMap locals:
      StackMap stack:
            iload 3 /* length */
            iconst_1
            if_icmpne 26
        17: .line 51
            aload 8 /* cc */
            aload 7 /* enc */
            iload 1 /* from */
            invokevirtual org.joni.ast.CClassNode.isCodeInCC:(Lorg/jcodings/Encoding;I)Z
            istore 12 /* inCC */
        start local 12 // boolean inCC
        18: .line 53
            iload 12 /* inCC */
            ifeq 19
            aload 8 /* cc */
            invokevirtual org.joni.ast.CClassNode.isNot:()Z
            ifeq 20
      StackMap locals: int
      StackMap stack:
        19: iload 12 /* inCC */
            ifne 42
            aload 8 /* cc */
            invokevirtual org.joni.ast.CClassNode.isNot:()Z
            ifeq 42
        20: .line 54
      StackMap locals:
      StackMap stack:
            iload 11 /* addFlag */
            ifeq 42
        21: .line 55
            aload 7 /* enc */
            invokevirtual org.jcodings.Encoding.minLength:()I
            iconst_1
            if_icmpgt 22
            aload 2 /* to */
            iconst_0
            iaload
            sipush 256
            if_icmplt 24
        22: .line 56
      StackMap locals:
      StackMap stack:
            aload 8 /* cc */
            aload 6 /* env */
            aload 2 /* to */
            iconst_0
            iaload
            aload 2 /* to */
            iconst_0
            iaload
            iconst_0
            invokevirtual org.joni.ast.CClassNode.addCodeRange:(Lorg/joni/ScanEnvironment;IIZ)V
        23: .line 57
            goto 42
        24: .line 59
      StackMap locals:
      StackMap stack:
            aload 10 /* bs */
            aload 2 /* to */
            iconst_0
            iaload
            invokevirtual org.joni.BitSet.set:(I)V
        end local 12 // boolean inCC
        25: .line 80
            goto 42
        26: .line 81
      StackMap locals:
      StackMap stack:
            aload 8 /* cc */
            aload 7 /* enc */
            iload 1 /* from */
            invokevirtual org.joni.ast.CClassNode.isCodeInCC:(Lorg/jcodings/Encoding;I)Z
            ifeq 42
            aload 8 /* cc */
            invokevirtual org.joni.ast.CClassNode.isNot:()Z
            ifne 42
        27: .line 82
            aconst_null
            astore 12 /* node */
        start local 12 // org.joni.ast.StringNode node
        28: .line 83
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        29: goto 35
        30: .line 84
      StackMap locals: org.joni.ast.StringNode int
      StackMap stack:
            iload 13 /* i */
            ifne 33
        31: .line 85
            new org.joni.ast.StringNode
            dup
            invokespecial org.joni.ast.StringNode.<init>:()V
            astore 12 /* node */
        32: .line 88
            aload 12 /* node */
            invokevirtual org.joni.ast.StringNode.setAmbig:()V
        33: .line 90
      StackMap locals:
      StackMap stack:
            aload 12 /* node */
            aload 2 /* to */
            iload 13 /* i */
            iaload
            aload 7 /* enc */
            invokevirtual org.joni.ast.StringNode.catCode:(ILorg/jcodings/Encoding;)V
        34: .line 83
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        35: iload 13 /* i */
            iload 3 /* length */
            if_icmplt 30
        end local 13 // int i
        36: .line 93
            aload 12 /* node */
            aconst_null
            invokestatic org.joni.ast.ListNode.newAlt:(Lorg/joni/ast/Node;Lorg/joni/ast/ListNode;)Lorg/joni/ast/ListNode;
            astore 13 /* alt */
        start local 13 // org.joni.ast.ListNode alt
        37: .line 95
            aload 5 /* arg */
            getfield org.joni.ApplyCaseFoldArg.tail:Lorg/joni/ast/ListNode;
            ifnonnull 40
        38: .line 96
            aload 5 /* arg */
            aload 13 /* alt */
            putfield org.joni.ApplyCaseFoldArg.altRoot:Lorg/joni/ast/ListNode;
        39: .line 97
            goto 41
        40: .line 98
      StackMap locals: org.joni.ApplyCaseFold int int[] int java.lang.Object org.joni.ApplyCaseFoldArg org.joni.ScanEnvironment org.jcodings.Encoding org.joni.ast.CClassNode org.joni.ast.CClassNode org.joni.BitSet int org.joni.ast.StringNode org.joni.ast.ListNode
      StackMap stack:
            aload 5 /* arg */
            getfield org.joni.ApplyCaseFoldArg.tail:Lorg/joni/ast/ListNode;
            aload 13 /* alt */
            invokevirtual org.joni.ast.ListNode.setTail:(Lorg/joni/ast/ListNode;)V
        41: .line 100
      StackMap locals:
      StackMap stack:
            aload 5 /* arg */
            aload 13 /* alt */
            putfield org.joni.ApplyCaseFoldArg.tail:Lorg/joni/ast/ListNode;
        end local 13 // org.joni.ast.ListNode alt
        end local 12 // org.joni.ast.StringNode node
        42: .line 105
      StackMap locals:
      StackMap stack:
            return
        end local 11 // boolean addFlag
        end local 10 // org.joni.BitSet bs
        end local 9 // org.joni.ast.CClassNode ascCc
        end local 8 // org.joni.ast.CClassNode cc
        end local 7 // org.jcodings.Encoding enc
        end local 6 // org.joni.ScanEnvironment env
        end local 5 // org.joni.ApplyCaseFoldArg arg
        end local 4 // java.lang.Object o
        end local 3 // int length
        end local 2 // int[] to
        end local 1 // int from
        end local 0 // org.joni.ApplyCaseFold this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   43     0     this  Lorg/joni/ApplyCaseFold;
            0   43     1     from  I
            0   43     2       to  [I
            0   43     3   length  I
            0   43     4        o  Ljava/lang/Object;
            1   43     5      arg  Lorg/joni/ApplyCaseFoldArg;
            2   43     6      env  Lorg/joni/ScanEnvironment;
            3   43     7      enc  Lorg/jcodings/Encoding;
            4   43     8       cc  Lorg/joni/ast/CClassNode;
            5   43     9    ascCc  Lorg/joni/ast/CClassNode;
            6   43    10       bs  Lorg/joni/BitSet;
            8    9    11  addFlag  Z
           11   12    11  addFlag  Z
           13   43    11  addFlag  Z
           18   25    12     inCC  Z
           28   42    12     node  Lorg/joni/ast/StringNode;
           29   36    13        i  I
           37   42    13      alt  Lorg/joni/ast/ListNode;
    MethodParameters:
        Name  Flags
      from    
      to      
      length  
      o       
}
SourceFile: "ApplyCaseFold.java"