public class org.jruby.ext.bigdecimal.RubyBigDecimal extends org.jruby.RubyNumeric
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.bigdecimal.RubyBigDecimal
  super_class: org.jruby.RubyNumeric
{
  private static final org.jruby.runtime.ObjectAllocator ALLOCATOR;
    descriptor: Lorg/jruby/runtime/ObjectAllocator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int ROUND_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int ROUND_CEILING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int ROUND_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int ROUND_HALF_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int ROUND_HALF_EVEN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int ROUND_HALF_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int ROUND_FLOOR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int SIGN_POSITIVE_INFINITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int SIGN_POSITIVE_ZERO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int SIGN_NEGATIVE_FINITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int SIGN_NaN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int BASE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int ROUND_MODE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 256
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int SIGN_POSITIVE_FINITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int SIGN_NEGATIVE_INFINITE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -3
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int SIGN_NEGATIVE_ZERO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int EXCEPTION_INFINITY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int EXCEPTION_OVERFLOW;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int EXCEPTION_NaN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int EXCEPTION_UNDERFLOW;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int EXCEPTION_ZERODIVIDE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  public static final int EXCEPTION_ALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 255
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyConstant()

  private static final org.jruby.util.ByteList VERSION;
    descriptor: Lorg/jruby/util/ByteList;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final short VP_DOUBLE_FIG;
    descriptor: S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final short RMPD_COMPONENT_FIGURES;
    descriptor: S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  private static final short BASE_FIG;
    descriptor: S
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  private static final double SQRT_10;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3.1622776601683795

  private static final long NEGATIVE_ZERO_LONG_BITS;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private boolean isNaN;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int infinitySign;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int zeroSign;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.math.BigDecimal value;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE

  private transient java.math.BigDecimal absStripTrailingZeros;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private static final java.math.BigDecimal MAX_FIX;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.math.BigDecimal MIN_FIX;
    descriptor: Ljava/math/BigDecimal;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.regex.Pattern FRACTIONAL_DIGIT_GROUPS;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$org$jruby$runtime$ClassIndex;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 64
            ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$assertionsDisabled:Z
         3: .line 66
            new org.jruby.ext.bigdecimal.RubyBigDecimal$1
            dup
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal$1.<init>:()V
            putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         4: .line 119
            ldc "1.3.4"
            invokestatic org.jruby.util.ByteList.create:(Ljava/lang/CharSequence;)Lorg/jruby/util/ByteList;
            putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.VERSION:Lorg/jruby/util/ByteList;
         5: .line 134
            ldc -0.0
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.NEGATIVE_ZERO_LONG_BITS:J
         6: .line 1323
            ldc 9223372036854775807
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MAX_FIX:Ljava/math/BigDecimal;
         7: .line 1324
            ldc -9223372036854775808
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MIN_FIX:Ljava/math/BigDecimal;
         8: .line 1934
            ldc "(\\+| )?(\\d+)(E|F)?"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.FRACTIONAL_DIGIT_GROUPS:Ljava/util/regex/Pattern;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.jruby.RubyClass createBigDecimal(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 137
            aload 0 /* runtime */
            ldc "BigDecimal"
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getNumeric:()Lorg/jruby/RubyClass;
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 1 /* bigDecimal */
        start local 1 // org.jruby.RubyClass bigDecimal
         1: .line 139
            aload 1 /* bigDecimal */
            ldc "VERSION"
            aload 0 /* runtime */
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.VERSION:Lorg/jruby/util/ByteList;
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         2: .line 141
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getKernel:()Lorg/jruby/RubyModule;
            ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal$BigDecimalKernelMethods;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
         3: .line 143
            aload 1 /* bigDecimal */
            ldc "vpPrecLimit"
            aload 0 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyClass.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         4: .line 144
            aload 1 /* bigDecimal */
            ldc "vpExceptionMode"
            aload 0 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyClass.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 145
            aload 1 /* bigDecimal */
            ldc "vpRoundingMode"
            aload 0 /* runtime */
            iconst_4
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyClass.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         6: .line 147
            aload 1 /* bigDecimal */
            ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         7: .line 148
            aload 1 /* bigDecimal */
            ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokevirtual org.jruby.RubyClass.defineAnnotatedConstants:(Ljava/lang/Class;)V
         8: .line 154
            aload 1 /* bigDecimal */
            ldc "NAN"
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokevirtual org.jruby.RubyClass.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         9: .line 155
            aload 1 /* bigDecimal */
            ldc "INFINITY"
            aload 0 /* runtime */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokevirtual org.jruby.RubyClass.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        10: .line 157
            aload 1 /* bigDecimal */
            ldc Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
        11: .line 159
            aload 1 /* bigDecimal */
            areturn
        end local 1 // org.jruby.RubyClass bigDecimal
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0     runtime  Lorg/jruby/Ruby;
            1   12     1  bigDecimal  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  

  public java.math.BigDecimal getValue();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 168
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
         0: .line 172
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 173
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         2: .line 174
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         3: .line 175
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         4: .line 176
            aload 0 /* this */
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         5: .line 177
            return
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  runtime  Lorg/jruby/Ruby;
            0    6     2    klass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      klass    

  public void <init>(org.jruby.Ruby, java.math.BigDecimal);
    descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.math.BigDecimal value
         0: .line 180
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 181
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         2: .line 182
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         3: .line 183
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         4: .line 184
            aload 0 /* this */
            aload 2 /* value */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         5: .line 185
            return
        end local 2 // java.math.BigDecimal value
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  runtime  Lorg/jruby/Ruby;
            0    6     2    value  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      runtime  
      value    

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.math.BigDecimal);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
        start local 3 // java.math.BigDecimal value
         0: .line 188
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 189
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         2: .line 190
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         3: .line 191
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         4: .line 192
            aload 0 /* this */
            aload 3 /* value */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         5: .line 193
            return
        end local 3 // java.math.BigDecimal value
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  runtime  Lorg/jruby/Ruby;
            0    6     2    klass  Lorg/jruby/RubyClass;
            0    6     3    value  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      runtime  
      klass    
      value    

  public void <init>(org.jruby.Ruby, java.math.BigDecimal, int);
    descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.math.BigDecimal value
        start local 3 // int infinitySign
         0: .line 196
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* value */
            iload 3 /* infinitySign */
            iconst_0
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
         1: .line 197
            return
        end local 3 // int infinitySign
        end local 2 // java.math.BigDecimal value
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    2     1       runtime  Lorg/jruby/Ruby;
            0    2     2         value  Ljava/math/BigDecimal;
            0    2     3  infinitySign  I
    MethodParameters:
              Name  Flags
      runtime       
      value         
      infinitySign  

  public void <init>(org.jruby.Ruby, java.math.BigDecimal, int, int);
    descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.math.BigDecimal value
        start local 3 // int infinitySign
        start local 4 // int zeroSign
         0: .line 200
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 201
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         2: .line 202
            aload 0 /* this */
            iload 3 /* infinitySign */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         3: .line 203
            aload 0 /* this */
            iload 4 /* zeroSign */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         4: .line 204
            aload 0 /* this */
            aload 2 /* value */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         5: .line 205
            return
        end local 4 // int zeroSign
        end local 3 // int infinitySign
        end local 2 // java.math.BigDecimal value
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1       runtime  Lorg/jruby/Ruby;
            0    6     2         value  Ljava/math/BigDecimal;
            0    6     3  infinitySign  I
            0    6     4      zeroSign  I
    MethodParameters:
              Name  Flags
      runtime       
      value         
      infinitySign  
      zeroSign      

  public void <init>(org.jruby.Ruby, java.math.BigDecimal, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.math.BigDecimal value
        start local 3 // boolean isNan
         0: .line 208
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 209
            aload 0 /* this */
            iload 3 /* isNan */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         2: .line 210
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         3: .line 211
            aload 0 /* this */
            iconst_0
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         4: .line 212
            aload 0 /* this */
            aload 2 /* value */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         5: .line 213
            return
        end local 3 // boolean isNan
        end local 2 // java.math.BigDecimal value
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  runtime  Lorg/jruby/Ruby;
            0    6     2    value  Ljava/math/BigDecimal;
            0    6     3    isNan  Z
    MethodParameters:
         Name  Flags
      runtime  
      value    
      isNan    

  public void <init>(org.jruby.Ruby, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal rbd
         0: .line 217
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 2 /* rbd */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)V
         1: .line 218
            return
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal rbd
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2      rbd  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      runtime  
      rbd      

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
        start local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal rbd
         0: .line 222
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 223
            aload 0 /* this */
            aload 3 /* rbd */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         2: .line 224
            aload 0 /* this */
            aload 3 /* rbd */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         3: .line 225
            aload 0 /* this */
            aload 3 /* rbd */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         4: .line 226
            aload 0 /* this */
            aload 3 /* rbd */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         5: .line 227
            return
        end local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal rbd
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  runtime  Lorg/jruby/Ruby;
            0    6     2    klass  Lorg/jruby/RubyClass;
            0    6     3      rbd  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      runtime  
      klass    
      rbd      

  void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.math.BigDecimal, int, int, boolean);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;IIZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=7
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
        start local 3 // java.math.BigDecimal value
        start local 4 // int zeroSign
        start local 5 // int infinitySign
        start local 6 // boolean isNaN
         0: .line 230
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.RubyNumeric.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 231
            aload 0 /* this */
            iload 6 /* isNaN */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         2: .line 232
            aload 0 /* this */
            iload 5 /* infinitySign */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         3: .line 233
            aload 0 /* this */
            iload 4 /* zeroSign */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         4: .line 234
            aload 0 /* this */
            aload 3 /* value */
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         5: .line 235
            return
        end local 6 // boolean isNaN
        end local 5 // int infinitySign
        end local 4 // int zeroSign
        end local 3 // java.math.BigDecimal value
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1       runtime  Lorg/jruby/Ruby;
            0    6     2         klass  Lorg/jruby/RubyClass;
            0    6     3         value  Ljava/math/BigDecimal;
            0    6     4      zeroSign  I
            0    6     5  infinitySign  I
            0    6     6         isNaN  Z
    MethodParameters:
              Name  Flags
      runtime       
      klass         
      value         
      zeroSign      
      infinitySign  
      isNaN         

  public org.jruby.runtime.ClassIndex getNativeClassIndex();
    descriptor: ()Lorg/jruby/runtime/ClassIndex;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 239
            getstatic org.jruby.runtime.ClassIndex.BIGDECIMAL:Lorg/jruby/runtime/ClassIndex;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public static org.jruby.runtime.builtin.IRubyObject ver(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 256
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            getstatic org.jruby.common.IRubyWarnings$ID.DEPRECATED_METHOD:Lorg/jruby/common/IRubyWarnings$ID;
            ldc "BigDecimal.ver is deprecated; use BigDecimal::VERSION instead"
            invokevirtual org.jruby.common.RubyWarnings.warn:(Lorg/jruby/common/IRubyWarnings$ID;Ljava/lang/String;)V
         1: .line 257
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.VERSION:Lorg/jruby/util/ByteList;
            invokestatic org.jruby.RubyString.newStringShared:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public org.jruby.runtime.builtin.IRubyObject _dump(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 262
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "0:"
            invokestatic org.jruby.RubyString.newUnicodeString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.asString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.append:(Lorg/jruby/RubyString;)Lorg/jruby/RubyString;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject _dump(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject unused
         0: .line 267
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "0:"
            invokestatic org.jruby.RubyString.newUnicodeString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.asString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.append:(Lorg/jruby/RubyString;)Lorg/jruby/RubyString;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject unused
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2   unused  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      unused   

  public static org.jruby.ext.bigdecimal.RubyBigDecimal _load(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject from
         0: .line 272
            aload 2 /* from */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.asJavaString:()Ljava/lang/String;
            astore 3 /* precisionAndValue */
        start local 3 // java.lang.String precisionAndValue
         1: .line 273
            aload 3 /* precisionAndValue */
            aload 3 /* precisionAndValue */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* value */
        start local 4 // java.lang.String value
         2: .line 274
            aload 0 /* context */
            aload 1 /* recv */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* value */
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 4 // java.lang.String value
        end local 3 // java.lang.String precisionAndValue
        end local 2 // org.jruby.runtime.builtin.IRubyObject from
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0            context  Lorg/jruby/runtime/ThreadContext;
            0    3     1               recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2               from  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3  precisionAndValue  Ljava/lang/String;
            2    3     4              value  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      from     

  public static org.jruby.runtime.builtin.IRubyObject double_fig(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 279
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            bipush 16
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject limit(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
         0: .line 287
            aload 1 /* recv */
            checkcast org.jruby.RubyModule
            ldc "vpPrecLimit"
            invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject limit(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 295
            aload 0 /* context */
            aload 1 /* recv */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.limit:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 3 /* old */
        start local 3 // org.jruby.runtime.builtin.IRubyObject old
         1: .line 297
            aload 2 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 2
            aload 3 /* old */
            areturn
         2: .line 298
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* arg */
            instanceof org.jruby.RubyFixnum
            ifne 3
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getFixnum:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 299
      StackMap locals:
      StackMap stack:
            lconst_0
            aload 2 /* arg */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lcmp
            ifle 4
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "argument must be positive"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 301
      StackMap locals:
      StackMap stack:
            aload 1 /* recv */
            checkcast org.jruby.RubyModule
            ldc "vpPrecLimit"
            aload 2 /* arg */
            invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 303
            aload 3 /* old */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject old
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     3      old  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      

  public static org.jruby.runtime.builtin.IRubyObject save_limit(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.Block block
         0: .line 308
            aload 0 /* context */
            aload 1 /* recv */
            checkcast org.jruby.RubyModule
            aload 2 /* block */
            ldc "vpPrecLimit"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.modeExecute:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      block    

  public static org.jruby.runtime.builtin.IRubyObject save_exception_mode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.Block block
         0: .line 313
            aload 0 /* context */
            aload 1 /* recv */
            checkcast org.jruby.RubyModule
            aload 2 /* block */
            ldc "vpExceptionMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.modeExecute:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      block    

  public static org.jruby.runtime.builtin.IRubyObject save_rounding_mode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.Block block
         0: .line 318
            aload 0 /* context */
            aload 1 /* recv */
            checkcast org.jruby.RubyModule
            aload 2 /* block */
            ldc "vpRoundingMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.modeExecute:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      block    

  private static org.jruby.runtime.builtin.IRubyObject modeExecute(org.jruby.runtime.ThreadContext, org.jruby.RubyModule, org.jruby.runtime.Block, java.lang.String);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;Lorg/jruby/runtime/Block;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyModule BigDecimal
        start local 2 // org.jruby.runtime.Block block
        start local 3 // java.lang.String intVariableName
         0: .line 323
            aload 1 /* BigDecimal */
            aload 3 /* intVariableName */
            invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* current */
        start local 4 // org.jruby.runtime.builtin.IRubyObject current
         1: .line 325
            aload 2 /* block */
            aload 0 /* context */
            invokevirtual org.jruby.runtime.Block.yieldSpecific:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6
         2: .line 328
            aload 1 /* BigDecimal */
            aload 3 /* intVariableName */
            aload 4 /* current */
            invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         3: .line 325
            aload 6
            areturn
         4: .line 327
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyModule org.jruby.runtime.Block java.lang.String org.jruby.runtime.builtin.IRubyObject
      StackMap stack: java.lang.Throwable
            astore 5
         5: .line 328
            aload 1 /* BigDecimal */
            aload 3 /* intVariableName */
            aload 4 /* current */
            invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         6: .line 329
            aload 5
            athrow
        end local 4 // org.jruby.runtime.builtin.IRubyObject current
        end local 3 // java.lang.String intVariableName
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.RubyModule BigDecimal
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0          context  Lorg/jruby/runtime/ThreadContext;
            0    7     1       BigDecimal  Lorg/jruby/RubyModule;
            0    7     2            block  Lorg/jruby/runtime/Block;
            0    7     3  intVariableName  Ljava/lang/String;
            1    7     4          current  Lorg/jruby/runtime/builtin/IRubyObject;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
                 Name  Flags
      context          final
      BigDecimal       final
      block            final
      intVariableName  final

  public static org.jruby.runtime.builtin.IRubyObject mode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=13, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 334
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 339
            aload 1 /* recv */
            checkcast org.jruby.RubyModule
            astore 4 /* c */
        start local 4 // org.jruby.RubyModule c
         2: .line 341
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* args */
            iconst_1
            iconst_1
            invokestatic org.jruby.runtime.Arity.scanArgs:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;II)[Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* args */
         3: .line 343
            aload 2 /* args */
            iconst_0
            aaload
            astore 5 /* mode */
        start local 5 // org.jruby.runtime.builtin.IRubyObject mode
         4: .line 344
            aload 2 /* args */
            iconst_1
            aaload
            astore 6 /* value */
        start local 6 // org.jruby.runtime.builtin.IRubyObject value
         5: .line 346
            aload 5 /* mode */
            instanceof org.jruby.RubyFixnum
            ifne 7
         6: .line 347
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "wrong argument type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* mode */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " (expected Fixnum)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 350
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.RubyModule org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 5 /* mode */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lstore 7 /* longMode */
        start local 7 // long longMode
         8: .line 351
            lload 7 /* longMode */
            ldc 255
            land
            lconst_0
            lcmp
            ifeq 32
         9: .line 352
            aload 6 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 10
            aload 4 /* c */
            ldc "vpExceptionMode"
            invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        10: .line 353
      StackMap locals: long
      StackMap stack:
            aload 6 /* value */
            instanceof org.jruby.RubyBoolean
            ifne 11
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "second argument must be true or false"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        11: .line 355
      StackMap locals:
      StackMap stack:
            aload 4 /* c */
            ldc "vpExceptionMode"
            invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            lstore 9 /* newExceptionMode */
        start local 9 // long newExceptionMode
        12: .line 357
            aload 6 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            istore 11 /* enable */
        start local 11 // boolean enable
        13: .line 359
            lload 7 /* longMode */
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 17
        14: .line 360
            iload 11 /* enable */
            ifeq 15
            lload 9 /* newExceptionMode */
            lconst_1
            lor
            goto 16
      StackMap locals: long int
      StackMap stack:
        15: lload 9 /* newExceptionMode */
            ldc -2
            land
      StackMap locals:
      StackMap stack: long
        16: lstore 9 /* newExceptionMode */
        17: .line 363
      StackMap locals:
      StackMap stack:
            lload 7 /* longMode */
            ldc 2
            land
            lconst_0
            lcmp
            ifeq 21
        18: .line 364
            iload 11 /* enable */
            ifeq 19
            lload 9 /* newExceptionMode */
            ldc 2
            lor
            goto 20
      StackMap locals:
      StackMap stack:
        19: lload 9 /* newExceptionMode */
            ldc -3
            land
      StackMap locals:
      StackMap stack: long
        20: lstore 9 /* newExceptionMode */
        21: .line 367
      StackMap locals:
      StackMap stack:
            lload 7 /* longMode */
            ldc 4
            land
            lconst_0
            lcmp
            ifeq 25
        22: .line 368
            iload 11 /* enable */
            ifeq 23
            lload 9 /* newExceptionMode */
            ldc 4
            lor
            goto 24
      StackMap locals:
      StackMap stack:
        23: lload 9 /* newExceptionMode */
            ldc -5
            land
      StackMap locals:
      StackMap stack: long
        24: lstore 9 /* newExceptionMode */
        25: .line 371
      StackMap locals:
      StackMap stack:
            lload 7 /* longMode */
            ldc 16
            land
            lconst_0
            lcmp
            ifeq 29
        26: .line 372
            iload 11 /* enable */
            ifeq 27
            lload 9 /* newExceptionMode */
            ldc 16
            lor
            goto 28
      StackMap locals:
      StackMap stack:
        27: lload 9 /* newExceptionMode */
            ldc -17
            land
      StackMap locals:
      StackMap stack: long
        28: lstore 9 /* newExceptionMode */
        29: .line 375
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            lload 9 /* newExceptionMode */
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            astore 12 /* fixnumMode */
        start local 12 // org.jruby.RubyFixnum fixnumMode
        30: .line 376
            aload 4 /* c */
            ldc "vpExceptionMode"
            aload 12 /* fixnumMode */
            invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        31: .line 377
            aload 12 /* fixnumMode */
            areturn
        end local 12 // org.jruby.RubyFixnum fixnumMode
        end local 11 // boolean enable
        end local 9 // long newExceptionMode
        32: .line 380
      StackMap locals:
      StackMap stack:
            lload 7 /* longMode */
            ldc 256
            lcmp
            ifne 39
        33: .line 381
            aload 6 /* value */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 35
        34: .line 382
            aload 4 /* c */
            ldc "vpRoundingMode"
            invokevirtual org.jruby.RubyModule.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        35: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 6 /* value */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.javaRoundingModeFromRubyRoundingMode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
            astore 9 /* javaRoundingMode */
        start local 9 // java.math.RoundingMode javaRoundingMode
        36: .line 386
            aload 3 /* runtime */
            aload 9 /* javaRoundingMode */
            invokevirtual java.math.RoundingMode.ordinal:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            astore 10 /* roundingMode */
        start local 10 // org.jruby.RubyFixnum roundingMode
        37: .line 387
            aload 4 /* c */
            ldc "vpRoundingMode"
            aload 10 /* roundingMode */
            invokevirtual org.jruby.RubyModule.setInternalModuleVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        38: .line 389
            aload 10 /* roundingMode */
            areturn
        end local 10 // org.jruby.RubyFixnum roundingMode
        end local 9 // java.math.RoundingMode javaRoundingMode
        39: .line 392
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            ldc "first argument for BigDecimal#mode invalid"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // long longMode
        end local 6 // org.jruby.runtime.builtin.IRubyObject value
        end local 5 // org.jruby.runtime.builtin.IRubyObject mode
        end local 4 // org.jruby.RubyModule c
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   40     0           context  Lorg/jruby/runtime/ThreadContext;
            0   40     1              recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   40     2              args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   40     3           runtime  Lorg/jruby/Ruby;
            2   40     4                 c  Lorg/jruby/RubyModule;
            4   40     5              mode  Lorg/jruby/runtime/builtin/IRubyObject;
            5   40     6             value  Lorg/jruby/runtime/builtin/IRubyObject;
            8   40     7          longMode  J
           12   32     9  newExceptionMode  J
           13   32    11            enable  Z
           30   32    12        fixnumMode  Lorg/jruby/RubyFixnum;
           36   39     9  javaRoundingMode  Ljava/math/RoundingMode;
           37   39    10      roundingMode  Lorg/jruby/RubyFixnum;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 1, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     

  private static long bigDecimalVar(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String variableName
         0: .line 397
            aload 0 /* runtime */
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 1 /* variableName */
            invokevirtual org.jruby.RubyClass.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lreturn
        end local 1 // java.lang.String variableName
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0       runtime  Lorg/jruby/Ruby;
            0    1     1  variableName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      runtime       
      variableName  

  private static java.math.RoundingMode getRoundingMode(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 401
            aload 0 /* runtime */
            ldc "vpRoundingMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
            l2i
            invokestatic java.math.RoundingMode.valueOf:(I)Ljava/math/RoundingMode;
            areturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  private static boolean isNaNExceptionMode(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 405
            aload 0 /* runtime */
            ldc "vpExceptionMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
            ldc 2
            land
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  private static boolean isInfinityExceptionMode(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 409
            aload 0 /* runtime */
            ldc "vpExceptionMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  private static boolean isOverflowExceptionMode(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 413
            aload 0 /* runtime */
            ldc "vpExceptionMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
            lconst_1
            land
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  private static boolean isUnderflowExceptionMode(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 417
            aload 0 /* runtime */
            ldc "vpExceptionMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
            ldc 4
            land
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  private static boolean isZeroDivideExceptionMode(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 421
            aload 0 /* runtime */
            ldc "vpExceptionMode"
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigDecimalVar:(Lorg/jruby/Ruby;Ljava/lang/String;)J
            ldc 16
            land
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  private static org.jruby.ext.bigdecimal.RubyBigDecimal cannotBeCoerced(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject value
        start local 2 // boolean must
         0: .line 425
            iload 2 /* must */
            ifeq 4
         1: .line 426
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
         2: .line 427
            new java.lang.StringBuilder
            dup
            aload 0 /* context */
            aload 1 /* value */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.errMessageType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " can't be coerced into BigDecimal"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 426
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 430
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // boolean must
        end local 1 // org.jruby.runtime.builtin.IRubyObject value
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  context  Lorg/jruby/runtime/ThreadContext;
            0    5     1    value  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2     must  Z
    MethodParameters:
         Name  Flags
      context  
      value    
      must     

  private static java.lang.String errMessageType(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject value
         0: .line 434
            aload 1 /* value */
            ifnull 1
            aload 1 /* value */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 2
      StackMap locals:
      StackMap stack:
         1: ldc "nil"
            areturn
         2: .line 435
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isImmediate:()Z
            ifeq 3
            aload 0 /* context */
            aload 1 /* value */
            invokestatic org.jruby.RubyObject.inspect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            areturn
         3: .line 436
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.RubyClass.getBaseName:()Ljava/lang/String;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject value
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1    value  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      value    

  private static java.math.BigDecimal toBigDecimal(org.jruby.RubyInteger);
    descriptor: (Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.RubyInteger value
         0: .line 440
            aload 0 /* value */
            instanceof org.jruby.RubyFixnum
            ifeq 2
         1: .line 441
            aload 0 /* value */
            invokestatic org.jruby.RubyNumeric.num2long:(Lorg/jruby/runtime/builtin/IRubyObject;)J
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            areturn
         2: .line 443
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 0 /* value */
            invokevirtual org.jruby.RubyInteger.getBigIntegerValue:()Ljava/math/BigInteger;
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;)V
            areturn
        end local 0 // org.jruby.RubyInteger value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Lorg/jruby/RubyInteger;
    MethodParameters:
       Name  Flags
      value  final

  private static org.jruby.ext.bigdecimal.RubyBigDecimal getVpRubyObjectWithPrecInner(org.jruby.runtime.ThreadContext, org.jruby.RubyRational, java.math.RoundingMode);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/RoundingMode;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyRational value
        start local 2 // java.math.RoundingMode mode
         0: .line 447
            aload 1 /* value */
            invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
            astore 3 /* numerator */
        start local 3 // java.math.BigDecimal numerator
         1: .line 448
            aload 1 /* value */
            invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
            astore 4 /* denominator */
        start local 4 // java.math.BigDecimal denominator
         2: .line 450
            aload 3 /* numerator */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 4 /* denominator */
            invokevirtual java.math.BigDecimal.precision:()I
            iadd
            istore 5 /* len */
        start local 5 // int len
         3: .line 451
            iload 5 /* len */
            iconst_4
            idiv
            istore 6 /* pow */
        start local 6 // int pow
         4: .line 452
            new java.math.MathContext
            dup
            iload 6 /* pow */
            iconst_1
            iadd
            iconst_4
            imul
            aload 2 /* mode */
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 7 /* mathContext */
        start local 7 // java.math.MathContext mathContext
         5: .line 454
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* numerator */
            aload 4 /* denominator */
            aload 7 /* mathContext */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        end local 7 // java.math.MathContext mathContext
        end local 6 // int pow
        end local 5 // int len
        end local 4 // java.math.BigDecimal denominator
        end local 3 // java.math.BigDecimal numerator
        end local 2 // java.math.RoundingMode mode
        end local 1 // org.jruby.RubyRational value
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0      context  Lorg/jruby/runtime/ThreadContext;
            0    6     1        value  Lorg/jruby/RubyRational;
            0    6     2         mode  Ljava/math/RoundingMode;
            1    6     3    numerator  Ljava/math/BigDecimal;
            2    6     4  denominator  Ljava/math/BigDecimal;
            3    6     5          len  I
            4    6     6          pow  I
            5    6     7  mathContext  Ljava/math/MathContext;
    MethodParameters:
         Name  Flags
      context  
      value    
      mode     

  private org.jruby.ext.bigdecimal.RubyBigDecimal getVpValueWithPrec(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject value
        start local 3 // boolean must
         0: .line 458
            aload 2 /* value */
            instanceof org.jruby.RubyFloat
            ifeq 10
         1: .line 459
            aload 2 /* value */
            checkcast org.jruby.RubyFloat
            invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
            dstore 4 /* doubleValue */
        start local 4 // double doubleValue
         2: .line 461
            dload 4 /* doubleValue */
            invokestatic java.lang.Double.isInfinite:(D)Z
            ifeq 6
         3: .line 462
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            dload 4 /* doubleValue */
            dconst_0
            dcmpg
            ifge 4
            ldc "-Infinity"
            goto 5
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int double
      StackMap stack: org.jruby.Ruby
         4: ldc "Infinity"
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int double
      StackMap stack: org.jruby.Ruby java.lang.String
         5: invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 464
      StackMap locals:
      StackMap stack:
            dload 4 /* doubleValue */
            invokestatic java.lang.Double.isNaN:(D)Z
            ifeq 8
         7: .line 465
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "NaN"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 468
      StackMap locals:
      StackMap stack:
            new java.math.MathContext
            dup
            bipush 16
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 6 /* mathContext */
        start local 6 // java.math.MathContext mathContext
         9: .line 469
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.math.BigDecimal
            dup
            dload 4 /* doubleValue */
            aload 6 /* mathContext */
            invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        end local 6 // java.math.MathContext mathContext
        end local 4 // double doubleValue
        10: .line 471
      StackMap locals:
      StackMap stack:
            aload 2 /* value */
            instanceof org.jruby.RubyRational
            ifeq 12
        11: .line 472
            aload 1 /* context */
            aload 2 /* value */
            checkcast org.jruby.RubyRational
            invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
            aload 2 /* value */
            checkcast org.jruby.RubyRational
            invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            bipush 9
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.div2Impl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;Lorg/jruby/RubyNumeric;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        12: .line 475
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* value */
            iload 3 /* must */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // boolean must
        end local 2 // org.jruby.runtime.builtin.IRubyObject value
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   13     1      context  Lorg/jruby/runtime/ThreadContext;
            0   13     2        value  Lorg/jruby/runtime/builtin/IRubyObject;
            0   13     3         must  Z
            2   10     4  doubleValue  D
            9   10     6  mathContext  Ljava/math/MathContext;
    MethodParameters:
         Name  Flags
      context  
      value    
      must     

  private static org.jruby.ext.bigdecimal.RubyBigDecimal getVpValue(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, boolean);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject value
        start local 2 // boolean must
         0: .line 479
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:()[I
            aload 1 /* value */
            checkcast org.jruby.RubyBasicObject
            invokevirtual org.jruby.RubyBasicObject.getNativeClassIndex:()Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iaload
            lookupswitch { // 5
                    2: 2
                    3: 3
                   12: 4
                   22: 5
                   40: 1
              default: 6
          }
         1: .line 481
      StackMap locals:
      StackMap stack:
            aload 1 /* value */
            checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
            areturn
         2: .line 483
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 1 /* value */
            checkcast org.jruby.RubyFixnum
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         3: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 1 /* value */
            checkcast org.jruby.RubyBignum
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            aload 1 /* value */
            checkcast org.jruby.RubyFloat
            new java.math.MathContext
            dup
            bipush 15
            invokespecial java.math.MathContext.<init>:(I)V
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFloat;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         5: .line 489
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* value */
            checkcast org.jruby.RubyRational
            new java.math.MathContext
            dup
            bipush 15
            invokespecial java.math.MathContext.<init>:(I)V
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 491
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* value */
            iload 2 /* must */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.cannotBeCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 2 // boolean must
        end local 1 // org.jruby.runtime.builtin.IRubyObject value
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Lorg/jruby/runtime/ThreadContext;
            0    7     1    value  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     2     must  Z
    MethodParameters:
         Name  Flags
      context  
      value    
      must     

  public static org.jruby.runtime.builtin.IRubyObject induced_from(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 496
            aload 0 /* context */
            aload 2 /* arg */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal arg
         0: .line 500
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* runtime */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            aload 2 /* arg */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 2 /* arg */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            aload 2 /* arg */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 2 /* arg */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;IIZ)V
            areturn
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2      arg  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    MethodParameters:
         Name  Flags
      runtime  
      recv     
      arg      

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyFixnum, java.math.MathContext);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=6, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.RubyFixnum arg
        start local 3 // java.math.MathContext mathContext
         0: .line 504
            aload 2 /* arg */
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lstore 4 /* value */
        start local 4 // long value
         1: .line 505
            lload 4 /* value */
            lconst_0
            lcmp
            ifne 2
            aload 0 /* runtime */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 506
      StackMap locals: long
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* runtime */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            new java.math.BigDecimal
            dup
            lload 4 /* value */
            aload 3 /* mathContext */
            invokespecial java.math.BigDecimal.<init>:(JLjava/math/MathContext;)V
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
            areturn
        end local 4 // long value
        end local 3 // java.math.MathContext mathContext
        end local 2 // org.jruby.RubyFixnum arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0      runtime  Lorg/jruby/Ruby;
            0    3     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2          arg  Lorg/jruby/RubyFixnum;
            0    3     3  mathContext  Ljava/math/MathContext;
            1    3     4        value  J
    MethodParameters:
             Name  Flags
      runtime      
      recv         
      arg          
      mathContext  

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.RubyRational, java.math.MathContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyRational arg
        start local 2 // java.math.MathContext mathContext
         0: .line 510
            aload 1 /* arg */
            invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.isZero:()Z
            ifeq 1
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         1: .line 512
      StackMap locals:
      StackMap stack:
            aload 1 /* arg */
            invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
            astore 3 /* num */
        start local 3 // java.math.BigDecimal num
         2: .line 513
            aload 1 /* arg */
            invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
            astore 4 /* den */
        start local 4 // java.math.BigDecimal den
         3: .line 516
            aload 3 /* num */
            aload 4 /* den */
            aload 2 /* mathContext */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 5 /* value */
        start local 5 // java.math.BigDecimal value
         4: .line 517
            goto 7
        end local 5 // java.math.BigDecimal value
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyRational java.math.MathContext java.math.BigDecimal java.math.BigDecimal
      StackMap stack: java.lang.ArithmeticException
         5: pop
         6: .line 518
            aload 3 /* num */
            aload 4 /* den */
            getstatic java.math.MathContext.DECIMAL64:Ljava/math/MathContext;
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 5 /* value */
        start local 5 // java.math.BigDecimal value
         7: .line 521
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* value */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        end local 5 // java.math.BigDecimal value
        end local 4 // java.math.BigDecimal den
        end local 3 // java.math.BigDecimal num
        end local 2 // java.math.MathContext mathContext
        end local 1 // org.jruby.RubyRational arg
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0      context  Lorg/jruby/runtime/ThreadContext;
            0    8     1          arg  Lorg/jruby/RubyRational;
            0    8     2  mathContext  Ljava/math/MathContext;
            2    8     3          num  Ljava/math/BigDecimal;
            3    8     4          den  Ljava/math/BigDecimal;
            4    5     5        value  Ljava/math/BigDecimal;
            7    8     5        value  Ljava/math/BigDecimal;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.ArithmeticException
    MethodParameters:
             Name  Flags
      context      
      arg          
      mathContext  

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyFloat, java.math.MathContext);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFloat;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.RubyFloat arg
        start local 3 // java.math.MathContext mathContext
         0: .line 526
            aload 3 /* mathContext */
            invokevirtual java.math.MathContext.getPrecision:()I
            bipush 16
            if_icmple 1
            aload 0 /* runtime */
            ldc "precision too large"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         1: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 2 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newFloatSpecialCases:(Lorg/jruby/Ruby;Lorg/jruby/RubyFloat;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 4 /* res */
        start local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal res
         2: .line 529
            aload 4 /* res */
            ifnull 3
            aload 4 /* res */
            areturn
         3: .line 531
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* runtime */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            new java.math.BigDecimal
            dup
            aload 2 /* arg */
            invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
            aload 3 /* mathContext */
            invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
            areturn
        end local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal res
        end local 3 // java.math.MathContext mathContext
        end local 2 // org.jruby.RubyFloat arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0      runtime  Lorg/jruby/Ruby;
            0    4     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2          arg  Lorg/jruby/RubyFloat;
            0    4     3  mathContext  Ljava/math/MathContext;
            2    4     4          res  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    MethodParameters:
             Name  Flags
      runtime      
      recv         
      arg          
      mathContext  

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newFloatSpecialCases(org.jruby.Ruby, org.jruby.RubyFloat);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyFloat;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyFloat val
         0: .line 535
            aload 1 /* val */
            invokevirtual org.jruby.RubyFloat.isNaN:()Z
            ifeq 1
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         1: .line 536
      StackMap locals:
      StackMap stack:
            aload 1 /* val */
            invokevirtual org.jruby.RubyFloat.isInfinite:()Z
            ifeq 4
            aload 0 /* runtime */
            aload 1 /* val */
            invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
            ldc Infinity
            dcmpl
            ifne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         2: iconst_m1
      StackMap locals: org.jruby.Ruby org.jruby.RubyFloat
      StackMap stack: org.jruby.Ruby int
         3: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 537
      StackMap locals:
      StackMap stack:
            aload 1 /* val */
            invokevirtual org.jruby.RubyFloat.isZero:()Z
            ifeq 7
            aload 0 /* runtime */
            aload 1 /* val */
            invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
            invokestatic java.lang.Double.doubleToLongBits:(D)J
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.NEGATIVE_ZERO_LONG_BITS:J
            lcmp
            ifne 5
            iconst_m1
            goto 6
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         5: iconst_1
      StackMap locals: org.jruby.Ruby org.jruby.RubyFloat
      StackMap stack: org.jruby.Ruby int
         6: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         7: .line 538
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.jruby.RubyFloat val
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  runtime  Lorg/jruby/Ruby;
            0    8     1      val  Lorg/jruby/RubyFloat;
    MethodParameters:
         Name  Flags
      runtime  
      val      

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyBignum, java.math.MathContext);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.RubyBignum arg
        start local 3 // java.math.MathContext mathContext
         0: .line 542
            aload 2 /* arg */
            invokevirtual org.jruby.RubyBignum.getBigIntegerValue:()Ljava/math/BigInteger;
            astore 4 /* value */
        start local 4 // java.math.BigInteger value
         1: .line 543
            aload 4 /* value */
            getstatic java.math.BigInteger.ZERO:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aload 0 /* runtime */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 544
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* runtime */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            new java.math.BigDecimal
            dup
            aload 4 /* value */
            aload 3 /* mathContext */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;Ljava/math/MathContext;)V
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
            areturn
        end local 4 // java.math.BigInteger value
        end local 3 // java.math.MathContext mathContext
        end local 2 // org.jruby.RubyBignum arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0      runtime  Lorg/jruby/Ruby;
            0    3     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     2          arg  Lorg/jruby/RubyBignum;
            0    3     3  mathContext  Ljava/math/MathContext;
            1    3     4        value  Ljava/math/BigInteger;
    MethodParameters:
             Name  Flags
      runtime      
      recv         
      arg          
      mathContext  

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.RubyClass, org.jruby.RubyString, java.math.MathContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/RubyString;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=15, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyClass recv
        start local 2 // org.jruby.RubyString arg
        start local 3 // java.math.MathContext mathContext
         0: .line 550
            aload 2 /* arg */
            invokevirtual org.jruby.RubyString.decodeString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 4 /* str */
        start local 4 // char[] str
         1: .line 551
            iconst_0
            istore 5 /* s */
        start local 5 // int s
         2: aload 4 /* str */
            arraylength
            iconst_1
            isub
            istore 6 /* e */
        start local 6 // int e
         3: .line 553
            iload 6 /* e */
            ifne 9
         4: .line 554
            aload 4 /* str */
            iconst_0
            caload
            tableswitch { // 48 - 57
                   48: 5
                   49: 6
                   50: 6
                   51: 6
                   52: 6
                   53: 6
                   54: 6
                   55: 6
                   56: 6
                   57: 6
              default: 7
          }
         5: .line 556
      StackMap locals: char[] int int
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 559
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 4 /* str */
            iconst_0
            caload
            bipush 48
            isub
            i2l
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
            areturn
         7: .line 564
      StackMap locals:
      StackMap stack:
            goto 9
      StackMap locals:
      StackMap stack:
         8: iinc 5 /* s */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* s */
            iload 6 /* e */
            if_icmpgt 12
            aload 4 /* str */
            iload 5 /* s */
            caload
            bipush 32
            if_icmple 8
        10: .line 565
            goto 12
      StackMap locals:
      StackMap stack:
        11: iinc 6 /* e */ -1
      StackMap locals:
      StackMap stack:
        12: iload 5 /* s */
            iload 6 /* e */
            if_icmpgt 13
            aload 4 /* str */
            iload 6 /* e */
            caload
            bipush 32
            if_icmple 11
        13: .line 567
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* sign */
        start local 7 // int sign
        14: .line 568
            iload 5 /* s */
            iload 6 /* e */
            if_icmpgt 15
            aload 4 /* str */
            iload 5 /* s */
            caload
            goto 16
      StackMap locals: int
      StackMap stack:
        15: bipush 32
      StackMap locals:
      StackMap stack: int
        16: lookupswitch { // 5
                   43: 23
                   45: 20
                   73: 19
                   78: 18
                   95: 17
              default: 24
          }
        17: .line 570
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        18: .line 572
      StackMap locals:
      StackMap stack:
            ldc "NaN"
            aload 4 /* str */
            iload 5 /* s */
            iload 6 /* e */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
            ifeq 24
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        19: .line 575
      StackMap locals:
      StackMap stack:
            ldc "Infinity"
            aload 4 /* str */
            iload 5 /* s */
            iload 6 /* e */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
            ifeq 24
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        20: .line 578
      StackMap locals:
      StackMap stack:
            ldc "-Infinity"
            aload 4 /* str */
            iload 5 /* s */
            iload 6 /* e */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
            ifeq 21
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_m1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        21: .line 579
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 7 /* sign */
        22: .line 580
            goto 24
        23: .line 582
      StackMap locals:
      StackMap stack:
            ldc "+Infinity"
            aload 4 /* str */
            iload 5 /* s */
            iload 6 /* e */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.contentEquals:(Ljava/lang/String;[CII)Z
            ifeq 24
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        24: .line 586
      StackMap locals:
      StackMap stack:
            iload 5 /* s */
            istore 8 /* i */
        start local 8 // int i
        25: iconst_0
            istore 9 /* off */
        start local 9 // int off
        26: iconst_0
            istore 10 /* dD */
        start local 10 // boolean dD
        27: .line 587
            iconst_m1
            istore 11 /* exp */
        start local 11 // int exp
        28: iconst_m1
            istore 12 /* lastSign */
        start local 12 // int lastSign
        29: .line 590
            goto 45
        30: .line 591
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.RubyClass org.jruby.RubyString java.math.MathContext char[] int int int int int int int int
      StackMap stack:
            aload 4 /* str */
            iload 8 /* i */
            iload 9 /* off */
            iadd
            caload
            lookupswitch { // 18
                   43: 39
                   45: 39
                   46: 38
                   48: 38
                   49: 38
                   50: 38
                   51: 38
                   52: 38
                   53: 38
                   54: 38
                   55: 38
                   56: 38
                   57: 38
                   68: 31
                   69: 40
                   95: 37
                  100: 31
                  101: 40
              default: 42
          }
        31: .line 593
      StackMap locals:
      StackMap stack:
            iload 10 /* dD */
            ifeq 33
        32: .line 594
            iload 8 /* i */
            iconst_1
            isub
            istore 6 /* e */
            goto 45
        33: .line 597
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            iload 8 /* i */
            bipush 69
            castore
            iconst_1
            istore 10 /* dD */
        34: .line 598
            iload 11 /* exp */
            iconst_m1
            if_icmpne 35
            iload 8 /* i */
            istore 11 /* exp */
            goto 36
        35: .line 600
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iconst_1
            isub
            istore 6 /* e */
            goto 45
        36: .line 602
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
            goto 45
        37: .line 605
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            iload 8 /* i */
            aload 4 /* str */
            iload 8 /* i */
            iload 9 /* off */
            iadd
            caload
            castore
            iinc 9 /* off */ 1
            goto 45
        38: .line 610
      StackMap locals:
      StackMap stack:
            goto 43
        39: .line 612
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            istore 12 /* lastSign */
            goto 43
        40: .line 614
      StackMap locals:
      StackMap stack:
            iload 11 /* exp */
            iconst_m1
            if_icmpne 41
            iload 8 /* i */
            istore 11 /* exp */
            goto 43
        41: .line 616
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iconst_1
            isub
            istore 6 /* e */
            goto 45
        42: .line 620
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iconst_1
            isub
            istore 6 /* e */
            goto 45
        43: .line 622
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            iload 8 /* i */
            aload 4 /* str */
            iload 8 /* i */
            iload 9 /* off */
            iadd
            caload
            castore
        44: .line 623
            iinc 8 /* i */ 1
        45: .line 590
      StackMap locals:
      StackMap stack:
            iload 8 /* i */
            iload 9 /* off */
            iadd
            iload 6 /* e */
            if_icmple 30
        46: .line 625
            iload 6 /* e */
            iload 9 /* off */
            isub
            istore 6 /* e */
        47: .line 627
            iload 11 /* exp */
            iconst_m1
            if_icmpeq 53
        48: .line 628
            iload 11 /* exp */
            iload 6 /* e */
            if_icmpeq 49
            iload 11 /* exp */
            iconst_1
            iadd
            iload 6 /* e */
            if_icmpne 50
            aload 4 /* str */
            iload 11 /* exp */
            iconst_1
            iadd
            caload
            bipush 45
            if_icmpeq 49
            aload 4 /* str */
            iload 11 /* exp */
            iconst_1
            iadd
            caload
            bipush 43
            if_icmpne 50
        49: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid value for BigDecimal(): \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        50: .line 631
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            iload 11 /* exp */
            iconst_1
            iadd
            iload 6 /* e */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isExponentOutOfRange:([CII)Z
            ifeq 55
        51: .line 633
            aload 4 /* str */
            iload 5 /* s */
            iload 11 /* exp */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isZeroBase:([CII)Z
            ifeq 52
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 7 /* sign */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        52: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 7 /* sign */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        53: .line 637
      StackMap locals:
      StackMap stack:
            iload 12 /* lastSign */
            iload 5 /* s */
            if_icmple 55
        54: .line 638
            iload 12 /* lastSign */
            iconst_1
            isub
            istore 6 /* e */
        55: .line 643
      StackMap locals:
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 4 /* str */
            iload 5 /* s */
            iload 6 /* e */
            iload 5 /* s */
            isub
            iconst_1
            iadd
            aload 3 /* mathContext */
            invokespecial java.math.BigDecimal.<init>:([CIILjava/math/MathContext;)V
            astore 13 /* decimal */
        start local 13 // java.math.BigDecimal decimal
        56: .line 644
            goto 61
        end local 13 // java.math.BigDecimal decimal
        57: .line 645
      StackMap locals:
      StackMap stack: java.lang.ArithmeticException
            astore 14 /* ex */
        start local 14 // java.lang.ArithmeticException ex
        58: .line 646
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 14 /* ex */
            iconst_0
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.checkOverUnderFlow:(Lorg/jruby/Ruby;Ljava/lang/ArithmeticException;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 14 // java.lang.ArithmeticException ex
        59: .line 648
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
        60: .line 649
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid value for BigDecimal(): \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* arg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        start local 13 // java.math.BigDecimal decimal
        61: .line 653
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 13 /* decimal */
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 62
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 7 /* sign */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        62: .line 655
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 13 /* decimal */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/math/BigDecimal;)V
            areturn
        end local 13 // java.math.BigDecimal decimal
        end local 12 // int lastSign
        end local 11 // int exp
        end local 10 // boolean dD
        end local 9 // int off
        end local 8 // int i
        end local 7 // int sign
        end local 6 // int e
        end local 5 // int s
        end local 4 // char[] str
        end local 3 // java.math.MathContext mathContext
        end local 2 // org.jruby.RubyString arg
        end local 1 // org.jruby.RubyClass recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   63     0      context  Lorg/jruby/runtime/ThreadContext;
            0   63     1         recv  Lorg/jruby/RubyClass;
            0   63     2          arg  Lorg/jruby/RubyString;
            0   63     3  mathContext  Ljava/math/MathContext;
            1   63     4          str  [C
            2   63     5            s  I
            3   63     6            e  I
           14   63     7         sign  I
           25   63     8            i  I
           26   63     9          off  I
           27   63    10           dD  Z
           28   63    11          exp  I
           29   63    12     lastSign  I
           56   57    13      decimal  Ljava/math/BigDecimal;
           61   63    13      decimal  Ljava/math/BigDecimal;
           58   59    14           ex  Ljava/lang/ArithmeticException;
      Exception table:
        from    to  target  type
          55    56      57  Class java.lang.ArithmeticException
          55    56      59  Class java.lang.NumberFormatException
    MethodParameters:
             Name  Flags
      context      
      recv         
      arg          
      mathContext  

  private static boolean contentEquals(java.lang.String, char[], int, int);
    descriptor: (Ljava/lang/String;[CII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.lang.String str1
        start local 1 // char[] str2
        start local 2 // int s2
        start local 3 // int e2
         0: .line 659
            aload 0 /* str1 */
            invokevirtual java.lang.String.length:()I
            istore 4 /* len */
        start local 4 // int len
         1: .line 660
            iload 4 /* len */
            iload 3 /* e2 */
            iload 2 /* s2 */
            isub
            iconst_1
            iadd
            if_icmpne 8
         2: .line 661
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         3: goto 6
         4: .line 662
      StackMap locals: int int
      StackMap stack:
            aload 0 /* str1 */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            aload 1 /* str2 */
            iload 2 /* s2 */
            iload 5 /* i */
            iadd
            caload
            if_icmpeq 5
            iconst_0
            ireturn
         5: .line 661
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 5 /* i */
            iload 4 /* len */
            if_icmplt 4
        end local 5 // int i
         7: .line 664
            iconst_1
            ireturn
         8: .line 666
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // int len
        end local 3 // int e2
        end local 2 // int s2
        end local 1 // char[] str2
        end local 0 // java.lang.String str1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  str1  Ljava/lang/String;
            0    9     1  str2  [C
            0    9     2    s2  I
            0    9     3    e2  I
            1    9     4   len  I
            3    7     5     i  I
    MethodParameters:
      Name  Flags
      str1  final
      str2  final
      s2    final
      e2    final

  private static boolean isZeroBase(char[], int, int);
    descriptor: ([CII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // char[] str
        start local 1 // int off
        start local 2 // int end
         0: .line 670
            iload 1 /* off */
            istore 3 /* i */
        start local 3 // int i
         1: goto 4
         2: .line 671
      StackMap locals: int
      StackMap stack:
            aload 0 /* str */
            iload 3 /* i */
            caload
            bipush 48
            if_icmpeq 3
            iconst_0
            ireturn
         3: .line 670
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 3 /* i */
            iload 2 /* end */
            if_icmplt 2
        end local 3 // int i
         5: .line 673
            iconst_1
            ireturn
        end local 2 // int end
        end local 1 // int off
        end local 0 // char[] str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   str  [C
            0    6     1   off  I
            0    6     2   end  I
            1    5     3     i  I
    MethodParameters:
      Name  Flags
      str   final
      off   final
      end   final

  private static boolean isExponentOutOfRange(char[], int, int);
    descriptor: ([CII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // char[] str
        start local 1 // int off
        start local 2 // int end
         0: .line 677
            iconst_0
            istore 3 /* num */
        start local 3 // int num
         1: .line 678
            iconst_1
            istore 4 /* sign */
        start local 4 // int sign
         2: .line 679
            aload 0 /* str */
            iload 1 /* off */
            caload
            istore 5 /* ch0 */
        start local 5 // char ch0
         3: .line 680
            iload 5 /* ch0 */
            bipush 45
            if_icmpne 6
         4: .line 681
            iconst_m1
            istore 4 /* sign */
         5: .line 682
            goto 8
      StackMap locals: int int int
      StackMap stack:
         6: iload 5 /* ch0 */
            bipush 43
            if_icmpeq 8
         7: .line 683
            bipush 48
            iload 5 /* ch0 */
            isub
            istore 3 /* num */
         8: .line 685
      StackMap locals:
      StackMap stack:
            iload 1 /* off */
            iconst_1
            iadd
            istore 6 /* i */
        start local 6 // int i
         9: .line 686
            iload 4 /* sign */
            iconst_1
            if_icmpne 10
            ldc -2147483647
            goto 11
      StackMap locals: int
      StackMap stack:
        10: ldc -2147483647
      StackMap locals:
      StackMap stack: int
        11: istore 7 /* max */
        start local 7 // int max
        12: .line 687
            iload 7 /* max */
            bipush 10
            idiv
            istore 8 /* multmax */
        start local 8 // int multmax
        13: .line 688
            goto 21
        14: .line 689
      StackMap locals: int int
      StackMap stack:
            aload 0 /* str */
            iload 6 /* i */
            iinc 6 /* i */ 1
            caload
            bipush 48
            isub
            istore 9 /* d */
        start local 9 // int d
        15: .line 690
            iload 3 /* num */
            iload 8 /* multmax */
            if_icmpge 17
        16: .line 691
            iconst_1
            ireturn
        17: .line 693
      StackMap locals: int
      StackMap stack:
            iload 3 /* num */
            bipush 10
            imul
            istore 3 /* num */
        18: .line 694
            iload 3 /* num */
            iload 7 /* max */
            iload 9 /* d */
            iadd
            if_icmpge 20
        19: .line 695
            iconst_1
            ireturn
        20: .line 697
      StackMap locals:
      StackMap stack:
            iload 3 /* num */
            iload 9 /* d */
            isub
            istore 3 /* num */
        end local 9 // int d
        21: .line 688
      StackMap locals:
      StackMap stack:
            iload 6 /* i */
            iload 2 /* end */
            if_icmple 14
        22: .line 699
            iconst_0
            ireturn
        end local 8 // int multmax
        end local 7 // int max
        end local 6 // int i
        end local 5 // char ch0
        end local 4 // int sign
        end local 3 // int num
        end local 2 // int end
        end local 1 // int off
        end local 0 // char[] str
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   23     0      str  [C
            0   23     1      off  I
            0   23     2      end  I
            1   23     3      num  I
            2   23     4     sign  I
            3   23     5      ch0  C
            9   23     6        i  I
           12   23     7      max  I
           13   23     8  multmax  I
           15   21     9        d  I
    MethodParameters:
      Name  Flags
      str   final
      off   final
      end   final

  public static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 704
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            astore 2 /* context */
        start local 2 // org.jruby.runtime.ThreadContext context
         1: .line 705
            aload 1 /* args */
            arraylength
            tableswitch { // 1 - 2
                    1: 2
                    2: 3
              default: 4
          }
         2: .line 706
      StackMap locals: org.jruby.runtime.ThreadContext
      StackMap stack:
            aload 2 /* context */
            aload 0 /* recv */
            aload 1 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         3: .line 707
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            aload 0 /* recv */
            aload 1 /* args */
            iconst_0
            aaload
            aload 1 /* args */
            iconst_1
            aaload
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 709
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unexpected argument count: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* args */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // org.jruby.runtime.ThreadContext context
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     1     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1    5     2  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      recv  
      args  

  public static org.jruby.ext.bigdecimal.RubyBigDecimal new_(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 715
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
            getstatic org.jruby.common.IRubyWarnings$ID.DEPRECATED_METHOD:Lorg/jruby/common/IRubyWarnings$ID;
            ldc "BigDecimal.new is deprecated"
            invokevirtual org.jruby.common.RubyWarnings.warning:(Lorg/jruby/common/IRubyWarnings$ID;Ljava/lang/String;)V
         1: .line 716
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      org.jruby.anno.JRubyMethod(name = {"new"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      

  public static org.jruby.ext.bigdecimal.RubyBigDecimal new_(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
        start local 3 // org.jruby.runtime.builtin.IRubyObject mathArg
         0: .line 722
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* arg */
            aload 3 /* mathArg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject mathArg
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  mathArg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      org.jruby.anno.JRubyMethod(name = {"new"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      
      mathArg  

  public static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 726
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:()[I
            aload 2 /* arg */
            checkcast org.jruby.RubyBasicObject
            invokevirtual org.jruby.RubyBasicObject.getNativeClassIndex:()Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iaload
            lookupswitch { // 5
                    2: 5
                    3: 6
                   12: 2
                   22: 1
                   40: 7
              default: 8
          }
         1: .line 728
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "can't omit precision for a Rational."
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 730
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* arg */
            checkcast org.jruby.RubyFloat
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newFloatSpecialCases:(Lorg/jruby/Ruby;Lorg/jruby/RubyFloat;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 3 /* res */
        start local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal res
         3: .line 731
            aload 3 /* res */
            ifnull 4
            aload 3 /* res */
            areturn
         4: .line 732
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "can't omit precision for a Float."
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal res
         5: .line 734
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 2 /* arg */
            checkcast org.jruby.RubyFixnum
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 736
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 2 /* arg */
            checkcast org.jruby.RubyBignum
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         7: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 2 /* arg */
            checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         8: .line 740
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/RubyString;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0  context  Lorg/jruby/runtime/ThreadContext;
            0    9     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    9     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            3    5     3      res  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      

  public static org.jruby.ext.bigdecimal.RubyBigDecimal newInstance(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
        start local 3 // org.jruby.runtime.builtin.IRubyObject mathArg
         0: .line 744
            aload 3 /* mathArg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
            istore 4 /* digits */
        start local 4 // int digits
         1: .line 745
            iload 4 /* digits */
            ifge 2
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "argument must be positive"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 747
      StackMap locals: int
      StackMap stack:
            new java.math.MathContext
            dup
            iload 4 /* digits */
            invokespecial java.math.MathContext.<init>:(I)V
            astore 5 /* mathContext */
        start local 5 // java.math.MathContext mathContext
         3: .line 749
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:()[I
            aload 2 /* arg */
            checkcast org.jruby.RubyBasicObject
            invokevirtual org.jruby.RubyBasicObject.getNativeClassIndex:()Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iaload
            lookupswitch { // 5
                    2: 6
                    3: 7
                   12: 5
                   22: 4
                   40: 8
              default: 9
          }
         4: .line 751
      StackMap locals: java.math.MathContext
      StackMap stack:
            aload 0 /* context */
            aload 2 /* arg */
            checkcast org.jruby.RubyRational
            aload 5 /* mathContext */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         5: .line 753
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 2 /* arg */
            checkcast org.jruby.RubyFloat
            aload 5 /* mathContext */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFloat;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 755
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 2 /* arg */
            checkcast org.jruby.RubyFixnum
            aload 5 /* mathContext */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyFixnum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         7: .line 757
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 2 /* arg */
            checkcast org.jruby.RubyBignum
            aload 5 /* mathContext */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyBignum;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         8: .line 759
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
            aload 2 /* arg */
            checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         9: .line 761
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            aload 1 /* recv */
            checkcast org.jruby.RubyClass
            aload 2 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            getstatic java.math.MathContext.UNLIMITED:Ljava/math/MathContext;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/RubyString;Ljava/math/MathContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 5 // java.math.MathContext mathContext
        end local 4 // int digits
        end local 3 // org.jruby.runtime.builtin.IRubyObject mathArg
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0      context  Lorg/jruby/runtime/ThreadContext;
            0   10     1         recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     2          arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     3      mathArg  Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     4       digits  I
            3   10     5  mathContext  Ljava/math/MathContext;
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      
      mathArg  

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newZero(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int sign
         0: .line 765
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* runtime */
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            iconst_0
            iload 1 /* sign */
            ifge 1
            iconst_m1
            goto 2
      StackMap locals: org.jruby.Ruby int
      StackMap stack: new 0 new 0 org.jruby.Ruby java.math.BigDecimal int
         1: iconst_1
      StackMap locals: org.jruby.Ruby int
      StackMap stack: new 0 new 0 org.jruby.Ruby java.math.BigDecimal int int
         2: invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
            areturn
        end local 1 // int sign
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1     sign  I
    MethodParameters:
         Name  Flags
      runtime  final
      sign     final

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newNaN(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 769
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isNaNExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 2
         1: .line 770
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 772
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* runtime */
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            iconst_1
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;Z)V
            areturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  private static org.jruby.exceptions.RaiseException newNaNFloatDomainError(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 776
            aload 0 /* runtime */
            ldc "Computation results to 'NaN'(Not a Number)"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  private static org.jruby.ext.bigdecimal.RubyBigDecimal newInfinity(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int sign
         0: .line 780
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinityExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 2
         1: .line 781
            aload 0 /* runtime */
            iload 1 /* sign */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 783
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* runtime */
            getstatic java.math.BigDecimal.ZERO:Ljava/math/BigDecimal;
            iload 1 /* sign */
            ifge 3
            iconst_m1
            goto 4
      StackMap locals: org.jruby.Ruby int
      StackMap stack: new 2 new 2 org.jruby.Ruby java.math.BigDecimal
         3: iconst_1
      StackMap locals: org.jruby.Ruby int
      StackMap stack: new 2 new 2 org.jruby.Ruby java.math.BigDecimal int
         4: iconst_0
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;II)V
            areturn
        end local 1 // int sign
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  runtime  Lorg/jruby/Ruby;
            0    5     1     sign  I
    MethodParameters:
         Name  Flags
      runtime  final
      sign     final

  private static org.jruby.exceptions.RaiseException newInfinityFloatDomainError(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int sign
         0: .line 787
            aload 0 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "Computation results to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* sign */
            ifge 1
            ldc "'-Infinity'"
            goto 2
      StackMap locals: org.jruby.Ruby int
      StackMap stack: org.jruby.Ruby java.lang.StringBuilder
         1: ldc "'Infinity'"
      StackMap locals: org.jruby.Ruby int
      StackMap stack: org.jruby.Ruby java.lang.StringBuilder java.lang.String
         2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            areturn
        end local 1 // int sign
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1     sign  I
    MethodParameters:
         Name  Flags
      runtime  final
      sign     final

  private org.jruby.ext.bigdecimal.RubyBigDecimal setResult();
    descriptor: ()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 791
            aload 0 /* this */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private org.jruby.ext.bigdecimal.RubyBigDecimal setResult(int);
    descriptor: (I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // int prec
         0: .line 795
            iload 1 /* prec */
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecLimit:(Lorg/jruby/Ruby;)I
            istore 1 /* prec */
         1: .line 797
      StackMap locals:
      StackMap stack:
            iload 1 /* prec */
            ifle 5
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            iload 1 /* prec */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getExponent:()I
            dup
            istore 2 /* exponent */
        start local 2 // int exponent
         2: isub
            if_icmple 5
         3: .line 798
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 1 /* prec */
            iload 2 /* exponent */
            isub
            iconst_4
            invokevirtual java.math.BigDecimal.setScale:(II)Ljava/math/BigDecimal;
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         4: .line 799
            aload 0 /* this */
            aconst_null
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:Ljava/math/BigDecimal;
        end local 2 // int exponent
         5: .line 801
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // int prec
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1      prec  I
            2    5     2  exponent  I
    MethodParameters:
      Name  Flags
      prec  

  private java.math.BigDecimal absStripTrailingZeros();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 807
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:Ljava/math/BigDecimal;
            astore 1 /* absStripTrailingZeros */
        start local 1 // java.math.BigDecimal absStripTrailingZeros
         1: .line 808
            aload 1 /* absStripTrailingZeros */
            ifnonnull 3
         2: .line 809
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.stripTrailingZeros:()Ljava/math/BigDecimal;
            dup_x1
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:Ljava/math/BigDecimal;
            areturn
         3: .line 811
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 1 /* absStripTrailingZeros */
            areturn
        end local 1 // java.math.BigDecimal absStripTrailingZeros
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    4     0                   this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            1    4     1  absStripTrailingZeros  Ljava/math/BigDecimal;

  public org.jruby.RubyFixnum hash();
    descriptor: ()Lorg/jruby/RubyFixnum;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 817
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.hashCode:()I
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            imul
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject initialize_copy(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.builtin.IRubyObject original
         0: .line 823
            aload 0 /* this */
            aload 1 /* original */
            if_acmpne 1
            aload 0 /* this */
            areturn
         1: .line 825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFrozen:()V
         2: .line 827
            aload 1 /* original */
            instanceof org.jruby.ext.bigdecimal.RubyBigDecimal
            ifne 4
         3: .line 828
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            ldc "wrong argument class"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 831
      StackMap locals:
      StackMap stack:
            aload 1 /* original */
            checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
            astore 2 /* orig */
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal orig
         5: .line 833
            aload 0 /* this */
            aload 2 /* orig */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
         6: .line 834
            aload 0 /* this */
            aload 2 /* orig */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
         7: .line 835
            aload 0 /* this */
            aload 2 /* orig */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
         8: .line 836
            aload 0 /* this */
            aload 2 /* orig */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            putfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
         9: .line 838
            aload 0 /* this */
            areturn
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal orig
        end local 1 // org.jruby.runtime.builtin.IRubyObject original
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   10     1  original  Lorg/jruby/runtime/builtin/IRubyObject;
            5   10     2      orig  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize_copy"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
          Name  Flags
      original  

  public org.jruby.runtime.builtin.IRubyObject op_mod(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 843
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* other */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 3 /* val */
        start local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         1: .line 845
            aload 3 /* val */
            ifnonnull 2
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_mod:Lorg/jruby/runtime/CallSite;
            aload 2 /* other */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 846
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 3
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 3
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 4
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 847
      StackMap locals:
      StackMap stack:
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 5
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 848
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 6
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 849
      StackMap locals:
      StackMap stack:
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 7
            aload 0 /* this */
            areturn
         7: .line 850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 8
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         8: .line 853
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 3 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.remainder:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 4 /* modulo */
        start local 4 // java.math.BigDecimal modulo
         9: .line 854
            aload 4 /* modulo */
            invokevirtual java.math.BigDecimal.signum:()I
            aload 3 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            imul
            ifge 10
            aload 4 /* modulo */
            aload 3 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 4 /* modulo */
        10: .line 856
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* modulo */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 4 // java.math.BigDecimal modulo
        end local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            0   11     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
            1   11     3      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            9   11     4   modulo  Ljava/math/BigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"%", "modulo"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      other    

  public org.jruby.runtime.builtin.IRubyObject op_mod19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 861
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mod:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject remainder(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 867
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 2 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.remainderInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"remainder"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject remainder19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 872
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.remainder:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      arg      

  private org.jruby.runtime.builtin.IRubyObject remainderInternal(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 876
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 877
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            ifnonnull 3
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.remainder:Lorg/jruby/runtime/CallSite;
            aload 3 /* arg */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 878
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifne 4
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 4
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         5: .line 881
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.remainder:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
            0    6     2      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     3      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      val      
      arg      

  public org.jruby.runtime.builtin.IRubyObject op_mul(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 886
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 3 /* val */
        start local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         1: .line 887
            aload 3 /* val */
            ifnonnull 2
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_times:Lorg/jruby/runtime/CallSite;
            aload 2 /* arg */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 888
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.multImpl:(Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"*"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject op_mul19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 893
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject mult2(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
        start local 3 // org.jruby.runtime.builtin.IRubyObject n
         0: .line 898
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* n */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecisionInt:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 4 /* mx */
        start local 4 // int mx
         1: .line 899
            iload 4 /* mx */
            ifne 2
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 901
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 5 /* val */
        start local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         3: .line 902
            aload 5 /* val */
            ifnonnull 5
         4: .line 903
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_times:Lorg/jruby/runtime/CallSite;
            aload 2 /* b */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 906
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 5 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.multImpl:(Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            iload 4 /* mx */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 4 // int mx
        end local 3 // org.jruby.runtime.builtin.IRubyObject n
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
            0    6     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    6     3        n  Lorg/jruby/runtime/builtin/IRubyObject;
            1    6     4       mx  I
            3    6     5      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"mult"}, required = 2)
    MethodParameters:
         Name  Flags
      context  
      b        
      n        

  private org.jruby.ext.bigdecimal.RubyBigDecimal multImpl(org.jruby.Ruby, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         0: .line 910
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 1
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 912
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifne 3
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 13
         3: .line 913
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 4
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifne 5
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 6
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 6
      StackMap locals:
      StackMap stack:
         5: aload 1 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 915
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 7
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
      StackMap locals:
      StackMap stack: int
         8: istore 3 /* sign1 */
        start local 3 // int sign1
         9: .line 916
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 10
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            goto 11
      StackMap locals: int
      StackMap stack:
        10: aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
      StackMap locals:
      StackMap stack: int
        11: istore 4 /* sign2 */
        start local 4 // int sign2
        12: .line 917
            aload 1 /* runtime */
            iload 3 /* sign1 */
            iload 4 /* sign2 */
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 4 // int sign2
        end local 3 // int sign1
        13: .line 920
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifne 14
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 21
        14: .line 921
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 15
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
      StackMap locals:
      StackMap stack: int
        16: istore 3 /* sign1 */
        start local 3 // int sign1
        17: .line 922
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 18
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            goto 19
      StackMap locals: int
      StackMap stack:
        18: aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
      StackMap locals:
      StackMap stack: int
        19: istore 4 /* sign2 */
        start local 4 // int sign2
        20: .line 923
            aload 1 /* runtime */
            iload 3 /* sign1 */
            iload 4 /* sign2 */
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 4 // int sign2
        end local 3 // int sign1
        21: .line 926
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            iadd
            istore 3 /* mx */
        start local 3 // int mx
        22: .line 928
            new java.math.MathContext
            dup
            iload 3 /* mx */
            aload 1 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 4 /* mathContext */
        start local 4 // java.math.MathContext mathContext
        23: .line 931
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 4 /* mathContext */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 5 /* result */
        start local 5 // java.math.BigDecimal result
        24: .line 932
            goto 27
        end local 5 // java.math.BigDecimal result
        25: .line 933
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby org.jruby.ext.bigdecimal.RubyBigDecimal int java.math.MathContext
      StackMap stack: java.lang.ArithmeticException
            astore 6 /* ex */
        start local 6 // java.lang.ArithmeticException ex
        26: .line 934
            aload 1 /* runtime */
            aload 6 /* ex */
            iconst_0
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.checkOverUnderFlow:(Lorg/jruby/Ruby;Ljava/lang/ArithmeticException;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 6 // java.lang.ArithmeticException ex
        start local 5 // java.math.BigDecimal result
        27: .line 936
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* runtime */
            aload 5 /* result */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 5 // java.math.BigDecimal result
        end local 4 // java.math.MathContext mathContext
        end local 3 // int mx
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0         this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   28     1      runtime  Lorg/jruby/Ruby;
            0   28     2          val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            9   13     3        sign1  I
           12   13     4        sign2  I
           17   21     3        sign1  I
           20   21     4        sign2  I
           22   28     3           mx  I
           23   28     4  mathContext  Ljava/math/MathContext;
           24   25     5       result  Ljava/math/BigDecimal;
           27   28     5       result  Ljava/math/BigDecimal;
           26   27     6           ex  Ljava/lang/ArithmeticException;
      Exception table:
        from    to  target  type
          23    24      25  Class java.lang.ArithmeticException
    MethodParameters:
         Name  Flags
      runtime  final
      val      

  private static org.jruby.ext.bigdecimal.RubyBigDecimal checkOverUnderFlow(org.jruby.Ruby, java.lang.ArithmeticException, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/ArithmeticException;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.ArithmeticException ex
        start local 2 // boolean nullDefault
         0: .line 940
            aload 1 /* ex */
            invokevirtual java.lang.ArithmeticException.getMessage:()Ljava/lang/String;
            astore 3 /* message */
        start local 3 // java.lang.String message
         1: .line 941
            aload 3 /* message */
            ifnonnull 2
            ldc ""
            astore 3 /* message */
         2: .line 942
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* message */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 3 /* message */
         3: .line 943
            aload 3 /* message */
            ldc "underflow"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 6
         4: .line 944
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isUnderflowExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 5
            aload 0 /* runtime */
            aload 3 /* message */
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 947
      StackMap locals:
      StackMap stack:
            aload 3 /* message */
            ldc "overflow"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 9
         7: .line 948
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isOverflowExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 8
            aload 0 /* runtime */
            aload 3 /* message */
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 949
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         9: .line 951
      StackMap locals:
      StackMap stack:
            iload 2 /* nullDefault */
            ifeq 10
            aconst_null
            areturn
        10: .line 952
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 3 /* message */
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.String message
        end local 2 // boolean nullDefault
        end local 1 // java.lang.ArithmeticException ex
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0      runtime  Lorg/jruby/Ruby;
            0   11     1           ex  Ljava/lang/ArithmeticException;
            0   11     2  nullDefault  Z
            1   11     3      message  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      runtime      final
      ex           final
      nullDefault  

  public org.jruby.runtime.builtin.IRubyObject mult219(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
        start local 3 // org.jruby.runtime.builtin.IRubyObject n
         0: .line 957
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            aload 3 /* n */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.mult2:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject n
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3        n  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      b        
      n        

  private org.jruby.ext.bigdecimal.RubyBigDecimal newPowOfInfinity(org.jruby.runtime.ThreadContext, org.jruby.RubyNumeric);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyNumeric exp
         0: .line 962
            aload 1 /* context */
            aload 2 /* exp */
            invokestatic org.jruby.util.Numeric.f_negative_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 6
         1: .line 963
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            iflt 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_0
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 966
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* exp */
            invokestatic org.jruby.util.Numeric.f_integer_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Z
            ifeq 5
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* exp */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isEven:(Lorg/jruby/RubyNumeric;)Z
            ifeq 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         3: iconst_m1
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.RubyNumeric
      StackMap stack: org.jruby.Ruby int
         4: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         5: .line 968
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_m1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 971
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            iflt 7
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         7: .line 973
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* exp */
            invokestatic org.jruby.util.Numeric.f_integer_p:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Z
            ifeq 10
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* exp */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isEven:(Lorg/jruby/RubyNumeric;)Z
            ifeq 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         8: iconst_m1
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.RubyNumeric
      StackMap stack: org.jruby.Ruby int
         9: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        10: .line 975
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "a non-integral exponent for a negative base"
            invokevirtual org.jruby.Ruby.newMathDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.RubyNumeric exp
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            0   11     2      exp  Lorg/jruby/RubyNumeric;
    MethodParameters:
         Name  Flags
      context  
      exp      

  private static org.jruby.runtime.builtin.IRubyObject vpPrecLimit(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 979
            aload 0 /* runtime */
            ldc "BigDecimal"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            ldc "vpPrecLimit"
            invokevirtual org.jruby.RubyClass.searchInternalModuleVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  private static int getPrecLimit(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 983
            aload 0 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.vpPrecLimit:(Lorg/jruby/Ruby;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            ireturn
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  final

  public org.jruby.runtime.builtin.IRubyObject op_pow(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 988
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_pow:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1   arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      arg   

  public org.jruby.ext.bigdecimal.RubyBigDecimal op_pow(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject exp
         0: .line 993
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 995
            aload 2 /* exp */
            instanceof org.jruby.RubyNumeric
            ifne 3
         2: .line 996
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "wrong argument type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* exp */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " (expected scalar Numeric)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 999
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 4
            aload 3 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 1001
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 5
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* exp */
            checkcast org.jruby.RubyNumeric
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.newPowOfInfinity:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         5: .line 1006
      StackMap locals:
      StackMap stack:
            aload 2 /* exp */
            instanceof org.jruby.RubyInteger
            ifne 11
         6: .line 1007
            aload 2 /* exp */
            checkcast org.jruby.RubyNumeric
            invokevirtual org.jruby.RubyNumeric.getDoubleValue:()D
            invokestatic java.math.BigDecimal.valueOf:(D)Ljava/math/BigDecimal;
            astore 7 /* expVal */
        start local 7 // java.math.BigDecimal expVal
         7: .line 1008
            aload 7 /* expVal */
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            astore 8 /* divAndRem */
        start local 8 // java.math.BigDecimal[] divAndRem
         8: .line 1009
            aload 8 /* divAndRem */
            iconst_0
            aaload
            invokevirtual java.math.BigDecimal.intValueExact:()I
            istore 4 /* times */
        start local 4 // int times
         9: aload 8 /* divAndRem */
            iconst_1
            aaload
            invokevirtual java.math.BigDecimal.doubleValue:()D
            dstore 5 /* rem */
        end local 8 // java.math.BigDecimal[] divAndRem
        end local 7 // java.math.BigDecimal expVal
        start local 5 // double rem
        10: .line 1010
            goto 13
        end local 5 // double rem
        end local 4 // int times
        11: .line 1012
      StackMap locals:
      StackMap stack:
            aload 2 /* exp */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 4 /* times */
        start local 4 // int times
        12: dconst_0
            dstore 5 /* rem */
        start local 5 // double rem
        13: .line 1016
      StackMap locals: int double
      StackMap stack:
            iload 4 /* times */
            ifge 17
        14: .line 1017
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 15
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        15: .line 1018
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* times */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.powNegative:(I)Ljava/math/BigDecimal;
            astore 7 /* pow */
        start local 7 // java.math.BigDecimal pow
        16: .line 1019
            goto 18
        end local 7 // java.math.BigDecimal pow
        17: .line 1021
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 4 /* times */
            invokevirtual java.math.BigDecimal.pow:(I)Ljava/math/BigDecimal;
            astore 7 /* pow */
        start local 7 // java.math.BigDecimal pow
        18: .line 1024
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            dload 5 /* rem */
            dconst_0
            dcmpl
            ifle 21
        19: .line 1026
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.doubleValue:()D
            dload 5 /* rem */
            invokestatic java.lang.Math.pow:(DD)D
            dstore 8 /* remPow */
        start local 8 // double remPow
        20: .line 1027
            aload 7 /* pow */
            dload 8 /* remPow */
            invokestatic java.math.BigDecimal.valueOf:(D)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 7 /* pow */
        end local 8 // double remPow
        21: .line 1030
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 3 /* runtime */
            aload 7 /* pow */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        end local 7 // java.math.BigDecimal pow
        end local 5 // double rem
        end local 4 // int times
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject exp
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   22     1    context  Lorg/jruby/runtime/ThreadContext;
            0   22     2        exp  Lorg/jruby/runtime/builtin/IRubyObject;
            1   22     3    runtime  Lorg/jruby/Ruby;
            9   11     4      times  I
           12   22     4      times  I
           10   11     5        rem  D
           13   22     5        rem  D
            7   10     7     expVal  Ljava/math/BigDecimal;
            8   10     8  divAndRem  [Ljava/math/BigDecimal;
           16   17     7        pow  Ljava/math/BigDecimal;
           18   22     7        pow  Ljava/math/BigDecimal;
           20   21     8     remPow  D
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"**", "power"}, required = 1)
    MethodParameters:
         Name  Flags
      context  final
      exp      

  public org.jruby.runtime.builtin.IRubyObject op_pow19(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.builtin.IRubyObject exp
         0: .line 1035
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* exp */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_pow:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject exp
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1   exp  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      exp   

  public org.jruby.ext.bigdecimal.RubyBigDecimal op_pow19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject exp
         0: .line 1040
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* exp */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_pow:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject exp
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      exp  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      exp      

  private java.math.BigDecimal powNegative(int);
    descriptor: (I)Ljava/math/BigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // int times
         0: .line 1046
            iload 1 /* times */
            ineg
            iconst_4
            iadd
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getAllDigits:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_4
            iadd
            imul
            istore 2 /* precision */
        start local 2 // int precision
         1: .line 1047
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 1 /* times */
            new java.math.MathContext
            dup
            iload 2 /* precision */
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            invokevirtual java.math.BigDecimal.pow:(ILjava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        end local 2 // int precision
        end local 1 // int times
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    2     1      times  I
            1    2     2  precision  I
    MethodParameters:
       Name  Flags
      times  final

  public org.jruby.runtime.builtin.IRubyObject op_plus(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
         0: .line 1052
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 2 /* b */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.vpPrecLimit:(Lorg/jruby/Ruby;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.addInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"+"})
    MethodParameters:
         Name  Flags
      context  
      b        

  public org.jruby.runtime.builtin.IRubyObject op_plus19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
         0: .line 1057
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_plus:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      b        

  public org.jruby.runtime.builtin.IRubyObject add2(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
        start local 3 // org.jruby.runtime.builtin.IRubyObject digits
         0: .line 1062
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 2 /* b */
            aload 3 /* digits */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.addInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject digits
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3   digits  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"add"})
    MethodParameters:
         Name  Flags
      context  
      b        
      digits   

  public org.jruby.runtime.builtin.IRubyObject add219(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
        start local 3 // org.jruby.runtime.builtin.IRubyObject digits
         0: .line 1067
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            aload 3 /* digits */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.add2:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject digits
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3   digits  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      b        
      digits   

  private org.jruby.runtime.builtin.IRubyObject addInternal(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        start local 3 // org.jruby.runtime.builtin.IRubyObject b
        start local 4 // org.jruby.runtime.builtin.IRubyObject digits
         0: .line 1071
            aload 2 /* val */
            ifnonnull 2
         1: .line 1078
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_plus:Lorg/jruby/runtime/CallSite;
            aload 3 /* b */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 1081
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.addSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 5 /* res */
        start local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal res
         3: .line 1082
            aload 5 /* res */
            ifnull 4
            aload 5 /* res */
            areturn
         4: .line 1084
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         5: .line 1085
            aload 1 /* context */
            aload 4 /* digits */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPositiveInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 7 /* prec */
        start local 7 // int prec
         6: .line 1087
            new java.math.MathContext
            dup
            iload 7 /* prec */
            aload 6 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 8 /* mathContext */
        start local 8 // java.math.MathContext mathContext
         7: .line 1088
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 6 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 8 /* mathContext */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            iload 7 /* prec */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 8 // java.math.MathContext mathContext
        end local 7 // int prec
        end local 6 // org.jruby.Ruby runtime
        end local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal res
        end local 4 // org.jruby.runtime.builtin.IRubyObject digits
        end local 3 // org.jruby.runtime.builtin.IRubyObject b
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    8     1      context  Lorg/jruby/runtime/ThreadContext;
            0    8     2          val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    8     3            b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    8     4       digits  Lorg/jruby/runtime/builtin/IRubyObject;
            3    8     5          res  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            5    8     6      runtime  Lorg/jruby/Ruby;
            6    8     7         prec  I
            7    8     8  mathContext  Ljava/math/MathContext;
    MethodParameters:
         Name  Flags
      context  
      val      
      b        
      digits   

  private static int getPositiveInt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1092
            aload 1 /* arg */
            instanceof org.jruby.RubyFixnum
            ifeq 5
         1: .line 1093
            aload 1 /* arg */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* value */
        start local 2 // int value
         2: .line 1094
            iload 2 /* value */
            ifge 4
         3: .line 1095
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "argument must be positive"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 1097
      StackMap locals: int
      StackMap stack:
            iload 2 /* value */
            ireturn
        end local 2 // int value
         5: .line 1099
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getFixnum:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0  context  Lorg/jruby/runtime/ThreadContext;
            0    6     1      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            2    5     2    value  I
    MethodParameters:
         Name  Flags
      context  
      arg      

  private org.jruby.ext.bigdecimal.RubyBigDecimal addSpecialCases(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         0: .line 1103
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 1
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
            ifeq 2
         1: .line 1104
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 1106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 10
         3: .line 1107
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 7
         4: .line 1108
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            if_icmpne 5
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            goto 6
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         5: iconst_1
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
         6: invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         7: .line 1110
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 9
         8: .line 1111
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         9: .line 1113
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        10: .line 1116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            imul
            istore 3 /* sign */
        start local 3 // int sign
        11: .line 1118
            iload 3 /* sign */
            ifle 12
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        12: .line 1119
      StackMap locals: int
      StackMap stack:
            iload 3 /* sign */
            ifge 13
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        13: .line 1120
      StackMap locals:
      StackMap stack:
            iload 3 /* sign */
            ifne 17
        14: .line 1121
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            iadd
            istore 3 /* sign */
        15: .line 1122
            iload 3 /* sign */
            ifeq 17
        16: .line 1123
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 3 /* sign */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        17: .line 1126
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // int sign
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   18     1  context  Lorg/jruby/runtime/ThreadContext;
            0   18     2      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
           11   18     3     sign  I
    MethodParameters:
         Name  Flags
      context  
      val      

  public org.jruby.runtime.builtin.IRubyObject op_uplus();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1132
            aload 0 /* this */
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"+@"})

  public org.jruby.runtime.builtin.IRubyObject op_uminus(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1138
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         1: .line 1139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ineg
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 1140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 3
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            ineg
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         3: .line 1142
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"-@"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject op_minus(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
         0: .line 1147
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 2 /* b */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.subInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"-"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      b        

  public org.jruby.runtime.builtin.IRubyObject op_minus19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
         0: .line 1152
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_minus:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      b        

  public org.jruby.runtime.builtin.IRubyObject sub2(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
        start local 3 // org.jruby.runtime.builtin.IRubyObject n
         0: .line 1157
            aload 0 /* this */
            aload 1 /* context */
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 2 /* b */
            aload 1 /* context */
            aload 3 /* n */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPositiveInt:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.subInternal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject n
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3        n  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"sub"}, required = 2)
    MethodParameters:
         Name  Flags
      context  
      b        
      n        

  public org.jruby.runtime.builtin.IRubyObject sub219(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject b
        start local 3 // org.jruby.runtime.builtin.IRubyObject n
         0: .line 1162
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* b */
            aload 3 /* n */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.sub2:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject n
        end local 2 // org.jruby.runtime.builtin.IRubyObject b
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3        n  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      b        
      n        

  private org.jruby.runtime.builtin.IRubyObject subInternal(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal, org.jruby.runtime.builtin.IRubyObject, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;Lorg/jruby/runtime/builtin/IRubyObject;I)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        start local 3 // org.jruby.runtime.builtin.IRubyObject b
        start local 4 // int prec
         0: .line 1166
            aload 2 /* val */
            ifnonnull 1
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_minus:Lorg/jruby/runtime/CallSite;
            aload 3 /* b */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 1167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.subSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 5 /* res */
        start local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal res
         2: .line 1168
            aload 5 /* res */
            ifnull 3
            aload 5 /* res */
            goto 4
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
         3: new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            iload 4 /* prec */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
      StackMap locals:
      StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal
         4: areturn
        end local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal res
        end local 4 // int prec
        end local 3 // org.jruby.runtime.builtin.IRubyObject b
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
            0    5     2      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    5     3        b  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     4     prec  I
            2    5     5      res  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    MethodParameters:
         Name  Flags
      context  
      val      
      b        
      prec     

  private org.jruby.ext.bigdecimal.RubyBigDecimal subSpecialCases(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         0: .line 1172
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 1
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 2
         1: .line 1173
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 1175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 6
         3: .line 1176
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 1177
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 5
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            iconst_m1
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         5: .line 1178
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.negate:()Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
         6: .line 1181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            imul
            istore 3 /* sign */
        start local 3 // int sign
         7: .line 1183
            iload 3 /* sign */
            ifle 8
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         8: .line 1184
      StackMap locals: int
      StackMap stack:
            iload 3 /* sign */
            ifge 9
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         9: .line 1185
      StackMap locals:
      StackMap stack:
            iload 3 /* sign */
            ifne 17
        10: .line 1186
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 12
        11: .line 1187
            aload 0 /* this */
            areturn
        12: .line 1189
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 14
        13: .line 1190
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            iconst_m1
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        14: .line 1192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            iadd
            istore 3 /* sign */
        15: .line 1193
            iload 3 /* sign */
            ifeq 17
        16: .line 1194
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 3 /* sign */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        17: .line 1197
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // int sign
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   18     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   18     1  context  Lorg/jruby/runtime/ThreadContext;
            0   18     2      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            7   18     3     sign  I
    MethodParameters:
         Name  Flags
      context  
      val      

  public org.jruby.runtime.builtin.IRubyObject op_quo(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 1202
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* other */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 3 /* val */
        start local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         1: .line 1203
            aload 3 /* val */
            ifnonnull 2
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_quo:Lorg/jruby/runtime/CallSite;
            aload 2 /* other */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 1205
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 3
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 1207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.divSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 4 /* div */
        start local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal div
         5: .line 1208
            aload 4 /* div */
            ifnull 6
            aload 4 /* div */
            areturn
         6: .line 1210
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.quoImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal div
        end local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    7     1  context  Lorg/jruby/runtime/ThreadContext;
            0    7     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
            1    7     3      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            5    7     4      div  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"/", "quo"})
    MethodParameters:
         Name  Flags
      context  
      other    

  private org.jruby.ext.bigdecimal.RubyBigDecimal quoImpl(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal that
         0: .line 1214
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            istore 3 /* mx */
        start local 3 // int mx
         1: .line 1215
            aload 2 /* that */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            istore 4 /* mxb */
        start local 4 // int mxb
         2: .line 1216
            iload 3 /* mx */
            iload 4 /* mxb */
            if_icmpge 3
            iload 4 /* mxb */
            istore 3 /* mx */
         3: .line 1217
      StackMap locals: int int
      StackMap stack:
            iload 3 /* mx */
            iconst_1
            iadd
            bipush 9
            imul
            istore 3 /* mx */
         4: .line 1219
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecLimit:(Lorg/jruby/Ruby;)I
            istore 5 /* limit */
        start local 5 // int limit
         5: .line 1220
            iload 5 /* limit */
            ifle 6
            iload 5 /* limit */
            iload 3 /* mx */
            if_icmpge 6
            iload 5 /* limit */
            istore 3 /* mx */
         6: .line 1222
      StackMap locals: int
      StackMap stack:
            new java.math.MathContext
            dup
            iload 3 /* mx */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 6 /* mathContext */
        start local 6 // java.math.MathContext mathContext
         7: .line 1223
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 2 /* that */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 6 /* mathContext */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            iload 5 /* limit */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 6 // java.math.MathContext mathContext
        end local 5 // int limit
        end local 4 // int mxb
        end local 3 // int mx
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal that
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    8     1      context  Lorg/jruby/runtime/ThreadContext;
            0    8     2         that  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            1    8     3           mx  I
            2    8     4          mxb  I
            5    8     5        limit  I
            7    8     6  mathContext  Ljava/math/MathContext;
    MethodParameters:
         Name  Flags
      context  
      that     

  private static java.math.BigDecimal divide(java.math.BigDecimal, java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // java.math.BigDecimal target
        start local 1 // java.math.BigDecimal divisor
        start local 2 // java.math.MathContext mc
         0: .line 1229
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$assertionsDisabled:Z
            ifne 1
            aload 2 /* mc */
            invokevirtual java.math.MathContext.getPrecision:()I
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1232
      StackMap locals:
      StackMap stack:
            aload 2 /* mc */
            invokevirtual java.math.MathContext.getPrecision:()I
            i2l
            lconst_1
            ladd
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            ladd
            aload 0 /* target */
            invokevirtual java.math.BigDecimal.precision:()I
            i2l
            lsub
            lstore 3 /* trailingZeros */
        start local 3 // long trailingZeros
         2: .line 1233
            aload 0 /* target */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.scale:()I
            i2l
            lsub
            lstore 5 /* diffScale */
        start local 5 // long diffScale
         3: .line 1234
            lload 5 /* diffScale */
            lstore 7 /* newScale */
        start local 7 // long newScale
         4: .line 1235
            iconst_1
            anewarray java.math.BigInteger
            dup
            iconst_0
            aload 0 /* target */
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            aastore
            astore 9 /* quotAndRem */
        start local 9 // java.math.BigInteger[] quotAndRem
         5: .line 1236
            aload 1 /* divisor */
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            astore 10 /* divScaled */
        start local 10 // java.math.BigInteger divScaled
         6: .line 1237
            lload 3 /* trailingZeros */
            lconst_0
            lcmp
            ifle 9
         7: .line 1239
            aload 9 /* quotAndRem */
            iconst_0
            aload 9 /* quotAndRem */
            iconst_0
            aaload
            lload 3 /* trailingZeros */
            invokestatic org.jruby.ext.bigdecimal.Multiplication.powerOf10:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aastore
         8: .line 1240
            lload 7 /* newScale */
            lload 3 /* trailingZeros */
            ladd
            lstore 7 /* newScale */
         9: .line 1242
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.math.MathContext long long long java.math.BigInteger[] java.math.BigInteger
      StackMap stack:
            aload 9 /* quotAndRem */
            iconst_0
            aaload
            aload 10 /* divScaled */
            invokevirtual java.math.BigInteger.divideAndRemainder:(Ljava/math/BigInteger;)[Ljava/math/BigInteger;
            astore 9 /* quotAndRem */
        10: .line 1243
            aload 9 /* quotAndRem */
            iconst_0
            aaload
            astore 11 /* integerQuot */
        start local 11 // java.math.BigInteger integerQuot
        11: .line 1245
            aload 9 /* quotAndRem */
            iconst_1
            aaload
            invokevirtual java.math.BigInteger.signum:()I
            ifeq 17
        12: .line 1247
            aload 9 /* quotAndRem */
            iconst_1
            aaload
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.shiftLeftOneBit:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
            aload 10 /* divScaled */
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            istore 12 /* compRem */
        start local 12 // int compRem
        13: .line 1249
            aload 11 /* integerQuot */
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.multiply:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
        14: .line 1250
            aload 9 /* quotAndRem */
            iconst_0
            aaload
            invokevirtual java.math.BigInteger.signum:()I
            iconst_5
            iload 12 /* compRem */
            iadd
            imul
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
        15: .line 1249
            astore 11 /* integerQuot */
        16: .line 1251
            lload 7 /* newScale */
            lconst_1
            ladd
            lstore 7 /* newScale */
        end local 12 // int compRem
        17: .line 1253
      StackMap locals: java.math.BigInteger
      StackMap stack:
            new java.math.BigDecimal
            dup
            aload 11 /* integerQuot */
            lload 7 /* newScale */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.safeLongToInt:(J)I
            aload 2 /* mc */
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;ILjava/math/MathContext;)V
            areturn
        end local 11 // java.math.BigInteger integerQuot
        end local 10 // java.math.BigInteger divScaled
        end local 9 // java.math.BigInteger[] quotAndRem
        end local 7 // long newScale
        end local 5 // long diffScale
        end local 3 // long trailingZeros
        end local 2 // java.math.MathContext mc
        end local 1 // java.math.BigDecimal divisor
        end local 0 // java.math.BigDecimal target
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   18     0         target  Ljava/math/BigDecimal;
            0   18     1        divisor  Ljava/math/BigDecimal;
            0   18     2             mc  Ljava/math/MathContext;
            2   18     3  trailingZeros  J
            3   18     5      diffScale  J
            4   18     7       newScale  J
            5   18     9     quotAndRem  [Ljava/math/BigInteger;
            6   18    10      divScaled  Ljava/math/BigInteger;
           11   18    11    integerQuot  Ljava/math/BigInteger;
           13   17    12        compRem  I
    MethodParameters:
         Name  Flags
      target   
      divisor  
      mc       

  private static java.math.BigInteger shiftLeftOneBit(java.math.BigInteger);
    descriptor: (Ljava/math/BigInteger;)Ljava/math/BigInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.math.BigInteger i
         0: .line 1257
            aload 0 /* i */
            iconst_1
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            areturn
        end local 0 // java.math.BigInteger i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Ljava/math/BigInteger;
    MethodParameters:
      Name  Flags
      i     

  private static int safeLongToInt(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // long longValue
         0: .line 1260
            lload 0 /* longValue */
            ldc -2147483648
            lcmp
            iflt 1
            lload 0 /* longValue */
            ldc 2147483647
            lcmp
            ifle 2
         1: .line 1261
      StackMap locals:
      StackMap stack:
            new java.lang.ArithmeticException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Out of int range: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* longValue */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1263
      StackMap locals:
      StackMap stack:
            lload 0 /* longValue */
            l2i
            ireturn
        end local 0 // long longValue
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  longValue  J
    MethodParameters:
           Name  Flags
      longValue  

  private static org.jruby.ext.bigdecimal.RubyBigDecimal div2Impl(org.jruby.runtime.ThreadContext, org.jruby.RubyNumeric, org.jruby.RubyNumeric, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyNumeric;Lorg/jruby/RubyNumeric;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.RubyNumeric a
        start local 2 // org.jruby.RubyNumeric b
        start local 3 // int ix
         0: .line 1267
            aload 0 /* context */
            aload 1 /* a */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 4 /* thiz */
        start local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal thiz
         1: .line 1268
            aload 0 /* context */
            aload 2 /* b */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 5 /* that */
        start local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal that
         2: .line 1270
            aload 4 /* thiz */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 3
            aload 5 /* that */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 4
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
         3: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 1272
      StackMap locals:
      StackMap stack:
            aload 4 /* thiz */
            aload 0 /* context */
            aload 5 /* that */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.divSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 6 /* div */
        start local 6 // org.jruby.ext.bigdecimal.RubyBigDecimal div
         5: .line 1273
            aload 6 /* div */
            ifnull 6
            aload 6 /* div */
            areturn
         6: .line 1275
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 4 /* thiz */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            aload 5 /* that */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            iadd
            iconst_2
            iadd
            istore 7 /* mx */
        start local 7 // int mx
         7: .line 1277
            new java.math.MathContext
            dup
            iload 7 /* mx */
            iconst_2
            imul
            iconst_2
            iadd
            bipush 9
            imul
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 8 /* mathContext */
        start local 8 // java.math.MathContext mathContext
         8: .line 1278
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* thiz */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 5 /* that */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 8 /* mathContext */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            iload 3 /* ix */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 8 // java.math.MathContext mathContext
        end local 7 // int mx
        end local 6 // org.jruby.ext.bigdecimal.RubyBigDecimal div
        end local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal that
        end local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal thiz
        end local 3 // int ix
        end local 2 // org.jruby.RubyNumeric b
        end local 1 // org.jruby.RubyNumeric a
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0      context  Lorg/jruby/runtime/ThreadContext;
            0    9     1            a  Lorg/jruby/RubyNumeric;
            0    9     2            b  Lorg/jruby/RubyNumeric;
            0    9     3           ix  I
            1    9     4         thiz  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            2    9     5         that  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            5    9     6          div  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            7    9     7           mx  I
            8    9     8  mathContext  Ljava/math/MathContext;
    MethodParameters:
         Name  Flags
      context  
      a        
      b        
      ix       final

  public org.jruby.runtime.builtin.IRubyObject op_quo19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 1283
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* other */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_quo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      other    

  public org.jruby.runtime.builtin.IRubyObject op_quo20(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 1288
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* other */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_quo:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      other    

  public org.jruby.runtime.builtin.IRubyObject op_div(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 1293
            aload 2 /* other */
            instanceof org.jruby.RubyRational
            ifeq 1
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* other */
            checkcast org.jruby.RubyRational
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.idiv:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;)Lorg/jruby/RubyInteger;
            areturn
         1: .line 1295
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* other */
            iconst_0
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 3 /* val */
        start local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         2: .line 1296
            aload 3 /* val */
            ifnonnull 3
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.div:Lorg/jruby/runtime/CallSite;
            aload 2 /* other */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 1298
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 4
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1299
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 8
         6: .line 1300
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 7
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 1301
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 1303
      StackMap locals:
      StackMap stack:
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 9
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         9: .line 1305
      StackMap locals:
      StackMap stack:
            aload 3 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 10
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
        10: .line 1307
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 3 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 4 /* result */
        start local 4 // java.math.BigDecimal result
        11: .line 1308
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* result */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toInteger:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)Lorg/jruby/RubyInteger;
            areturn
        end local 4 // java.math.BigDecimal result
        end local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   12     1  context  Lorg/jruby/runtime/ThreadContext;
            0   12     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
            2   12     3      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
           11   12     4   result  Ljava/math/BigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"div"})
    MethodParameters:
         Name  Flags
      context  
      other    

  private org.jruby.RubyInteger idiv(org.jruby.runtime.ThreadContext, org.jruby.RubyRational);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyRational;)Lorg/jruby/RubyInteger;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyRational val
         0: .line 1312
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
            athrow
         1: .line 1313
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 3
         2: .line 1314
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
            athrow
         3: .line 1316
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokevirtual org.jruby.RubyRational.isZero:()Z
            ifeq 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 1318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 2 /* val */
            invokevirtual org.jruby.RubyRational.getDenominator:()Lorg/jruby/RubyInteger;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
         5: .line 1319
            aload 2 /* val */
            invokevirtual org.jruby.RubyRational.getNumerator:()Lorg/jruby/RubyInteger;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toBigDecimal:(Lorg/jruby/RubyInteger;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.divideToIntegralValue:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
         6: .line 1318
            astore 3 /* result */
        start local 3 // java.math.BigDecimal result
         7: .line 1320
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* result */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.toInteger:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)Lorg/jruby/RubyInteger;
            areturn
        end local 3 // java.math.BigDecimal result
        end local 2 // org.jruby.RubyRational val
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2      val  Lorg/jruby/RubyRational;
            7    8     3   result  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      context  
      val      

  private static org.jruby.RubyInteger toInteger(org.jruby.Ruby, java.math.BigDecimal);
    descriptor: (Lorg/jruby/Ruby;Ljava/math/BigDecimal;)Lorg/jruby/RubyInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.math.BigDecimal result
         0: .line 1327
            aload 1 /* result */
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MAX_FIX:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            ifgt 2
            aload 1 /* result */
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.MIN_FIX:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
            iflt 2
         1: .line 1328
            aload 0 /* runtime */
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.longValue:()J
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
            areturn
         2: .line 1330
      StackMap locals:
      StackMap stack:
            aload 0 /* runtime */
            aload 1 /* result */
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
            areturn
        end local 1 // java.math.BigDecimal result
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1   result  Ljava/math/BigDecimal;
    MethodParameters:
         Name  Flags
      runtime  final
      result   final

  public org.jruby.runtime.builtin.IRubyObject op_div(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
        start local 3 // org.jruby.runtime.builtin.IRubyObject digits
         0: .line 1335
            aload 1 /* context */
            aload 2 /* other */
            iconst_0
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 4 /* val */
        start local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         1: .line 1336
            aload 4 /* val */
            ifnonnull 2
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.div:Lorg/jruby/runtime/CallSite;
            aload 2 /* other */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         2: .line 1338
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 3
            aload 4 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 4
      StackMap locals:
      StackMap stack:
         3: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 1340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.divSpecialCases:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 5 /* div */
        start local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal div
         5: .line 1341
            aload 5 /* div */
            ifnull 6
            aload 5 /* div */
            areturn
         6: .line 1343
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 3 /* digits */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 6 /* scale */
        start local 6 // int scale
         7: .line 1345
            iload 6 /* scale */
            ifne 8
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.quoImpl:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         8: .line 1347
      StackMap locals: int
      StackMap stack:
            new java.math.MathContext
            dup
            iload 6 /* scale */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 7 /* mathContext */
        start local 7 // java.math.MathContext mathContext
         9: .line 1348
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 4 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 7 /* mathContext */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            iload 6 /* scale */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:(I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 7 // java.math.MathContext mathContext
        end local 6 // int scale
        end local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal div
        end local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 3 // org.jruby.runtime.builtin.IRubyObject digits
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   10     1      context  Lorg/jruby/runtime/ThreadContext;
            0   10     2        other  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     3       digits  Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     4          val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            5   10     5          div  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            7   10     6        scale  I
            9   10     7  mathContext  Ljava/math/MathContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"div"})
    MethodParameters:
         Name  Flags
      context  
      other    
      digits   

  private org.jruby.ext.bigdecimal.RubyBigDecimal divSpecialCases(org.jruby.runtime.ThreadContext, org.jruby.ext.bigdecimal.RubyBigDecimal);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/ext/bigdecimal/RubyBigDecimal;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         0: .line 1352
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 3
         1: .line 1353
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 1354
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         3: .line 1356
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 4
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         4: .line 1358
      StackMap locals:
      StackMap stack:
            aload 2 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 12
         5: .line 1359
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 6
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 1360
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isZeroDivideExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 8
         7: .line 1361
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "Divide by zero"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 1363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 9
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            goto 10
      StackMap locals:
      StackMap stack:
         9: aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
      StackMap locals:
      StackMap stack: int
        10: istore 3 /* sign1 */
        start local 3 // int sign1
        11: .line 1364
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 3 /* sign1 */
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // int sign1
        12: .line 1366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 13
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            aload 2 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            imul
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        13: .line 1368
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   14     1  context  Lorg/jruby/runtime/ThreadContext;
            0   14     2      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
           11   12     3    sign1  I
    MethodParameters:
         Name  Flags
      context  
      val      

  public final org.jruby.runtime.builtin.IRubyObject op_div19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject r
         0: .line 1373
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* r */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_div:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject r
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2        r  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      r        

  public final org.jruby.runtime.builtin.IRubyObject op_div19(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
        start local 3 // org.jruby.runtime.builtin.IRubyObject digits
         0: .line 1378
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* other */
            aload 3 /* digits */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_div:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject digits
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3   digits  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      context  
      other    
      digits   

  private org.jruby.runtime.builtin.IRubyObject cmp(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, char);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
        start local 3 // char op
         0: .line 1383
            aload 1 /* context */
            aload 2 /* arg */
            iconst_0
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 5 /* rb */
        start local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal rb
         1: .line 1384
            aload 5 /* rb */
            ifnonnull 20
         2: .line 1385
            ldc "!="
            astore 6 /* id */
        start local 6 // java.lang.String id
         3: .line 1386
            iload 3 /* op */
            lookupswitch { // 7
                   33: 11
                   42: 4
                   60: 14
                   61: 6
                   62: 15
                   71: 12
                   76: 13
              default: 16
          }
         4: .line 1388
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int top org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String
      StackMap stack:
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.falsyEqlCheck:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 5
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         5: .line 1389
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_cmp:Lorg/jruby/runtime/CallSite;
            aload 2 /* arg */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         6: .line 1391
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.falsyEqlCheck:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 7
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            areturn
         7: .line 1392
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.op_eql:Lorg/jruby/runtime/CallSite;
            aload 2 /* arg */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* res */
        start local 7 // org.jruby.runtime.builtin.IRubyObject res
         8: .line 1393
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 7 /* res */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 9
            aload 7 /* res */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            if_acmpeq 9
            iconst_1
            goto 10
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int top org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby
         9: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int top org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby int
        10: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 7 // org.jruby.runtime.builtin.IRubyObject res
        11: .line 1396
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.falsyEqlCheck:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            ifeq 16
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            areturn
        12: .line 1398
      StackMap locals:
      StackMap stack:
            ldc ">="
            astore 6 /* id */
            goto 16
        13: .line 1399
      StackMap locals:
      StackMap stack:
            ldc "<="
            astore 6 /* id */
            goto 16
        14: .line 1400
      StackMap locals:
      StackMap stack:
            ldc "<"
            astore 6 /* id */
            goto 16
        15: .line 1401
      StackMap locals:
      StackMap stack:
            ldc ">"
            astore 6 /* id */
        16: .line 1404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 6 /* id */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 7 /* cmp */
        start local 7 // org.jruby.runtime.builtin.IRubyObject cmp
        17: .line 1405
            aload 7 /* cmp */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 19
        18: .line 1406
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "comparison of BigDecimal with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.errMessageType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " failed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        19: .line 1408
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 7 /* cmp */
            areturn
        end local 7 // org.jruby.runtime.builtin.IRubyObject cmp
        end local 6 // java.lang.String id
        20: .line 1411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 21
            aload 5 /* rb */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 24
      StackMap locals:
      StackMap stack:
        21: iload 3 /* op */
            bipush 42
            if_icmpne 22
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
        23: areturn
        24: .line 1412
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ifne 25
            aload 5 /* rb */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ifeq 26
      StackMap locals:
      StackMap stack:
        25: aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 5 /* rb */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            isub
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 5 /* rb */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.compareTo:(Ljava/math/BigDecimal;)I
      StackMap locals:
      StackMap stack: int
        27: istore 4 /* e */
        start local 4 // int e
        28: .line 1414
            iload 3 /* op */
            lookupswitch { // 7
                   33: 33
                   42: 29
                   60: 45
                   61: 30
                   62: 39
                   71: 36
                   76: 42
              default: 48
          }
        29: .line 1415
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 4 /* e */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        30: .line 1416
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 4 /* e */
            ifne 31
            iconst_1
            goto 32
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        31: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
        32: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        33: .line 1417
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 4 /* e */
            ifeq 34
            iconst_1
            goto 35
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        34: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
        35: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        36: .line 1418
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 4 /* e */
            iflt 37
            iconst_1
            goto 38
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        37: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
        38: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        39: .line 1419
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 4 /* e */
            ifle 40
            iconst_1
            goto 41
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        40: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
        41: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        42: .line 1420
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 4 /* e */
            ifgt 43
            iconst_1
            goto 44
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        43: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
        44: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        45: .line 1421
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 4 /* e */
            ifge 46
            iconst_1
            goto 47
      StackMap locals:
      StackMap stack: org.jruby.Ruby
        46: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
        47: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        48: .line 1422
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
        49: .line 1423
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.ext.bigdecimal.RubyBigDecimal rb
        end local 4 // int e
        end local 3 // char op
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   50     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   50     1  context  Lorg/jruby/runtime/ThreadContext;
            0   50     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            0   50     3       op  C
           28   50     4        e  I
            1   50     5       rb  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            3   20     6       id  Ljava/lang/String;
            8   11     7      res  Lorg/jruby/runtime/builtin/IRubyObject;
           17   20     7      cmp  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      arg      final
      op       final

  private static boolean falsyEqlCheck(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1428
            aload 1 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 1
            aload 1 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
            if_acmpeq 1
            aload 1 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.tru:Lorg/jruby/RubyBoolean;
            if_acmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  context  Lorg/jruby/runtime/ThreadContext;
            0    2     1      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  final
      arg      final

  public org.jruby.runtime.builtin.IRubyObject op_cmp(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1434
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            bipush 42
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"<=>"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject eql_p(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1441
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            bipush 61
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"eql?", "=="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject op_eqq(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1447
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            bipush 61
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"==="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject op_lt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1452
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            bipush 60
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"<"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject op_le(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1457
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            bipush 76
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"<="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject op_gt(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1462
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            bipush 62
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {">"}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject op_ge(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1467
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            bipush 71
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.cmp:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;C)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {">="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject abs();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1472
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         1: .line 1473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 1475
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject ceil(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1480
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
         1: .line 1482
            aload 2 /* arg */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 3 /* n */
        start local 3 // int n
         2: .line 1484
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            iload 3 /* n */
            if_icmpgt 3
            aload 0 /* this */
            areturn
         3: .line 1486
      StackMap locals: int
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 3 /* n */
            getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        end local 3 // int n
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
            0    4     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            2    4     3        n  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject ceil(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1491
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
         1: .line 1493
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iconst_0
            getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            astore 2 /* ceil */
        start local 2 // java.math.BigInteger ceil
         2: .line 1495
            aload 2 /* ceil */
            aload 2 /* ceil */
            invokevirtual java.math.BigInteger.intValue:()I
            i2l
            invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
            ifne 4
         3: .line 1496
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* ceil */
            invokevirtual java.math.BigInteger.intValue:()I
            i2l
            invokestatic org.jruby.RubyInteger.int2fix:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyNumeric;
            areturn
         4: .line 1499
      StackMap locals: java.math.BigInteger
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* ceil */
            invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
            areturn
        end local 2 // java.math.BigInteger ceil
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    5     1  context  Lorg/jruby/runtime/ThreadContext;
            2    5     2     ceil  Ljava/math/BigInteger;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject coerce(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 1504
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* other */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.coerce:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject other
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  other  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
       Name  Flags
      other  

  public org.jruby.RubyArray coerce(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 1509
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* context */
            aload 2 /* other */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValue:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 0 /* this */
            invokevirtual org.jruby.Ruby.newArray:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      other    

  public double getDoubleValue();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1513
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokestatic org.jruby.util.SafeDoubleParser.doubleValue:(Ljava/math/BigDecimal;)D
            dreturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public long getLongValue();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1517
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.longValue:()J
            lreturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public int getIntValue();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1522
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.intValue:()I
            ireturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public java.math.BigInteger getBigIntegerValue();
    descriptor: ()Ljava/math/BigInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1527
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public java.math.BigDecimal getBigDecimalValue();
    descriptor: ()Ljava/math/BigDecimal;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1531
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public org.jruby.RubyNumeric multiplyWith(org.jruby.runtime.ThreadContext, org.jruby.RubyInteger);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyInteger;)Lorg/jruby/RubyNumeric;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyInteger value
         0: .line 1535
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* value */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyNumeric
            areturn
        end local 2 // org.jruby.RubyInteger value
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    value  Lorg/jruby/RubyInteger;
    MethodParameters:
         Name  Flags
      context  
      value    

  public org.jruby.RubyNumeric multiplyWith(org.jruby.runtime.ThreadContext, org.jruby.RubyFloat);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyFloat;)Lorg/jruby/RubyNumeric;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyFloat value
         0: .line 1539
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* value */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyNumeric
            areturn
        end local 2 // org.jruby.RubyFloat value
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    value  Lorg/jruby/RubyFloat;
    MethodParameters:
         Name  Flags
      context  
      value    

  public org.jruby.RubyNumeric multiplyWith(org.jruby.runtime.ThreadContext, org.jruby.RubyBignum);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyBignum;)Lorg/jruby/RubyNumeric;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.RubyBignum value
         0: .line 1543
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* value */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.op_mul:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.RubyNumeric
            areturn
        end local 2 // org.jruby.RubyBignum value
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    value  Lorg/jruby/RubyBignum;
    MethodParameters:
         Name  Flags
      context  
      value    

  public org.jruby.runtime.builtin.IRubyObject divmod(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 1549
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1551
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* other */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getVpValueWithPrec:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 4 /* val */
        start local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal val
         2: .line 1552
            aload 4 /* val */
            ifnonnull 3
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.sites:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            getfield org.jruby.runtime.JavaSites$BigDecimalSites.divmod:Lorg/jruby/runtime/CallSite;
            aload 2 /* other */
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.callCoerced:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/CallSite;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         3: .line 1554
      StackMap locals: org.jruby.Ruby org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 4
            aload 4 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 4
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 5
            aload 4 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 5
      StackMap locals:
      StackMap stack:
         4: aload 3 /* runtime */
            aload 3 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 3 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
         5: .line 1555
      StackMap locals:
      StackMap stack:
            aload 4 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 6
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newZeroDivisionError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 1556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 11
         7: .line 1557
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            aload 4 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            if_icmpne 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_m1
      StackMap locals:
      StackMap stack: int
         9: istore 5 /* sign */
        start local 5 // int sign
        10: .line 1558
            aload 3 /* runtime */
            aload 3 /* runtime */
            iload 5 /* sign */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 3 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 5 // int sign
        11: .line 1560
      StackMap locals:
      StackMap stack:
            aload 4 /* val */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 12
            aload 3 /* runtime */
            aload 3 /* runtime */
            aload 4 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 0 /* this */
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        12: .line 1561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 13
            aload 3 /* runtime */
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        13: .line 1564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 4 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.divideAndRemainder:(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;
            astore 5 /* divmod */
        start local 5 // java.math.BigDecimal[] divmod
        14: .line 1566
            aload 5 /* divmod */
            iconst_0
            aaload
            astore 6 /* div */
        start local 6 // java.math.BigDecimal div
        15: .line 1567
            aload 5 /* divmod */
            iconst_1
            aaload
            astore 7 /* mod */
        start local 7 // java.math.BigDecimal mod
        16: .line 1569
            aload 7 /* mod */
            invokevirtual java.math.BigDecimal.signum:()I
            aload 4 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            imul
            ifge 19
        17: .line 1570
            aload 6 /* div */
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 6 /* div */
        18: .line 1571
            aload 7 /* mod */
            aload 4 /* val */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 7 /* mod */
        19: .line 1574
      StackMap locals: java.math.BigDecimal[] java.math.BigDecimal java.math.BigDecimal
      StackMap stack:
            aload 3 /* runtime */
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 3 /* runtime */
            aload 6 /* div */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 3 /* runtime */
            aload 7 /* mod */
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 7 // java.math.BigDecimal mod
        end local 6 // java.math.BigDecimal div
        end local 5 // java.math.BigDecimal[] divmod
        end local 4 // org.jruby.ext.bigdecimal.RubyBigDecimal val
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   20     1  context  Lorg/jruby/runtime/ThreadContext;
            0   20     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
            1   20     3  runtime  Lorg/jruby/Ruby;
            2   20     4      val  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
           10   11     5     sign  I
           14   20     5   divmod  [Ljava/math/BigDecimal;
           15   20     6      div  Ljava/math/BigDecimal;
           16   20     7      mod  Ljava/math/BigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"divmod"})
    MethodParameters:
         Name  Flags
      context  
      other    

  public org.jruby.runtime.builtin.IRubyObject exponent();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1579
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getExponent:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  public org.jruby.runtime.builtin.IRubyObject finite_p();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1584
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: iconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.Ruby int
         2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"finite?"})

  private org.jruby.ext.bigdecimal.RubyBigDecimal floorNaNInfinityCheck(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1588
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
            athrow
         1: .line 1589
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1590
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  private org.jruby.ext.bigdecimal.RubyBigDecimal floorImpl(org.jruby.runtime.ThreadContext, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // int n
         0: .line 1594
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            iload 2 /* n */
            if_icmple 1
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 2 /* n */
            getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
      StackMap locals:
      StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal
         2: areturn
        end local 2 // int n
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2        n  I
    MethodParameters:
         Name  Flags
      context  
      n        

  public org.jruby.runtime.builtin.IRubyObject floor(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1599
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorNaNInfinityCheck:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 2 /* res */
        start local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal res
         1: .line 1600
            aload 2 /* res */
            ifnull 2
            aload 2 /* res */
            areturn
         2: .line 1601
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorImpl:(Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
            areturn
        end local 2 // org.jruby.ext.bigdecimal.RubyBigDecimal res
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            1    3     2      res  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject floor(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1606
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorNaNInfinityCheck:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            astore 3 /* res */
        start local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal res
         1: .line 1607
            aload 3 /* res */
            ifnull 2
            aload 3 /* res */
            areturn
         2: .line 1608
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* arg */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floorImpl:(Lorg/jruby/runtime/ThreadContext;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // org.jruby.ext.bigdecimal.RubyBigDecimal res
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     3      res  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject frac(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1613
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         1: .line 1614
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 1616
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            ifle 3
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            if_icmpge 3
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
         3: .line 1618
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.fix:()Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.ext.bigdecimal.RubyBigDecimal
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject infinite_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1623
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ifne 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         2: areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"infinite?"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject inspect(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1628
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aconst_null
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject nan_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1633
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"nan?"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject nonzero_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1639
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 1
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         2: areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"nonzero?"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject nonzero_p();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1644
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
         2: areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.jruby.runtime.builtin.IRubyObject precs(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1649
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
         1: .line 1650
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getSignificantDigits:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
         2: .line 1651
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getAllDigits:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_4
            idiv
            iconst_1
            iadd
            iconst_4
            imul
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
         3: .line 1649
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    4     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject round(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 1656
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 1663
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 5
         2: .line 1664
            aload 2 /* args */
            arraylength
            ifne 4
         3: .line 1665
            aload 3 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaNFloatDomainError:(Lorg/jruby/Ruby;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 1667
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 3 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         5: .line 1669
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 9
         6: .line 1670
            aload 2 /* args */
            arraylength
            ifne 8
         7: .line 1671
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinityFloatDomainError:(Lorg/jruby/Ruby;I)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 1673
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         9: .line 1676
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            astore 4 /* mode */
        start local 4 // java.math.RoundingMode mode
        10: .line 1677
            iconst_0
            istore 5 /* scale */
        start local 5 // int scale
        11: .line 1679
            aload 2 /* args */
            arraylength
            istore 6 /* argc */
        start local 6 // int argc
        12: .line 1680
            iload 6 /* argc */
            tableswitch { // 1 - 2
                    1: 15
                    2: 13
              default: 19
          }
        13: .line 1682
      StackMap locals: java.math.RoundingMode int int
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            iconst_1
            aaload
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.javaRoundingModeFromRubyRoundingMode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
            astore 4 /* mode */
        14: .line 1683
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* scale */
        15: .line 1685
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 18
        16: .line 1686
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* scale */
        17: .line 1687
            goto 19
        18: .line 1688
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.javaRoundingModeFromRubyRoundingMode:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
            astore 4 /* mode */
        19: .line 1694
      StackMap locals:
      StackMap stack:
            iload 5 /* scale */
            ifge 24
        20: .line 1697
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 5 /* scale */
            invokevirtual java.math.BigDecimal.movePointRight:(I)Ljava/math/BigDecimal;
            astore 8 /* normalized */
        start local 8 // java.math.BigDecimal normalized
        21: .line 1699
            aload 8 /* normalized */
            iconst_0
            aload 4 /* mode */
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            astore 9 /* rounded */
        start local 9 // java.math.BigDecimal rounded
        22: .line 1701
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 3 /* runtime */
            aload 9 /* rounded */
            iload 5 /* scale */
            invokevirtual java.math.BigDecimal.movePointLeft:(I)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            astore 7 /* bigDecimal */
        end local 9 // java.math.BigDecimal rounded
        end local 8 // java.math.BigDecimal normalized
        start local 7 // org.jruby.ext.bigdecimal.RubyBigDecimal bigDecimal
        23: .line 1702
            goto 25
        end local 7 // org.jruby.ext.bigdecimal.RubyBigDecimal bigDecimal
        24: .line 1703
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 3 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 5 /* scale */
            aload 4 /* mode */
            invokevirtual java.math.BigDecimal.setScale:(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            astore 7 /* bigDecimal */
        start local 7 // org.jruby.ext.bigdecimal.RubyBigDecimal bigDecimal
        25: .line 1706
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack:
            aload 2 /* args */
            arraylength
            ifne 26
            aload 7 /* bigDecimal */
            aload 3 /* runtime */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 7 /* bigDecimal */
      StackMap locals:
      StackMap stack: org.jruby.RubyNumeric
        27: areturn
        end local 7 // org.jruby.ext.bigdecimal.RubyBigDecimal bigDecimal
        end local 6 // int argc
        end local 5 // int scale
        end local 4 // java.math.RoundingMode mode
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   28     1     context  Lorg/jruby/runtime/ThreadContext;
            0   28     2        args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   28     3     runtime  Lorg/jruby/Ruby;
           10   28     4        mode  Ljava/math/RoundingMode;
           11   28     5       scale  I
           12   28     6        argc  I
           23   24     7  bigDecimal  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
           25   28     7  bigDecimal  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
           21   23     8  normalized  Ljava/math/BigDecimal;
           22   23     9     rounded  Ljava/math/BigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"round"}, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      args     

  public org.jruby.runtime.builtin.IRubyObject round(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject scale
        start local 3 // org.jruby.runtime.builtin.IRubyObject mode
         0: .line 1710
            aload 0 /* this */
            aload 1 /* context */
            iconst_2
            anewarray org.jruby.runtime.builtin.IRubyObject
            dup
            iconst_0
            aload 2 /* scale */
            aastore
            dup
            iconst_1
            aload 3 /* mode */
            aastore
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.round:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject mode
        end local 2 // org.jruby.runtime.builtin.IRubyObject scale
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2    scale  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     mode  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      scale    
      mode     

  private static java.math.RoundingMode javaRoundingModeFromRubyRoundingMode(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/math/RoundingMode;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1715
            aload 1 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 1
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            areturn
         1: .line 1716
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* arg */
            invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 2 /* opts */
        start local 2 // org.jruby.runtime.builtin.IRubyObject opts
         2: .line 1717
            aload 2 /* opts */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 15
         3: .line 1718
            aload 0 /* context */
            aload 2 /* opts */
            checkcast org.jruby.RubyHash
            ldc "half"
            invokestatic org.jruby.ast.util.ArgsUtil.extractKeywordArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyHash;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 1 /* arg */
         4: .line 1719
            aload 1 /* arg */
            ifnull 5
            aload 1 /* arg */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 6
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
         5: aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getRoundingMode:(Lorg/jruby/Ruby;)Ljava/math/RoundingMode;
            areturn
         6: .line 1720
      StackMap locals:
      StackMap stack:
            aload 1 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* roundingMode */
        start local 3 // java.lang.String roundingMode
         7: .line 1721
            aload 3 /* roundingMode */
            dup
            astore 4
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
                 3739: 8
              3089570: 9
              3125530: 10
              default: 14
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         8: aload 4
            ldc "up"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 14
      StackMap locals:
      StackMap stack:
         9: aload 4
            ldc "down"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 14
      StackMap locals:
      StackMap stack:
        10: aload 4
            ldc "even"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 14
        11: .line 1723
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            areturn
        12: .line 1725
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
            areturn
        13: .line 1727
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            areturn
        14: .line 1729
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid rounding mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* roundingMode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.String roundingMode
        15: .line 1732
      StackMap locals:
      StackMap stack:
            aload 1 /* arg */
            instanceof org.jruby.RubySymbol
            ifeq 38
        16: .line 1733
            aload 1 /* arg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            astore 3 /* roundingMode */
        start local 3 // java.lang.String roundingMode
        17: .line 1734
            aload 3 /* roundingMode */
            dup
            astore 4
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 12
          -1665645266: 18
          -1665609306: 19
          -1396345879: 20
                 3739: 21
              3049733: 22
              3089570: 23
              3125530: 24
             97526796: 25
            660387005: 26
            691003943: 27
           1544803905: 28
           1852984678: 29
              default: 37
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
        18: aload 4
            ldc "half_down"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 33
            goto 37
      StackMap locals:
      StackMap stack:
        19: aload 4
            ldc "half_even"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 34
            goto 37
      StackMap locals:
      StackMap stack:
        20: aload 4
            ldc "banker"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 34
            goto 37
      StackMap locals:
      StackMap stack:
        21: aload 4
            ldc "up"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 30
            goto 37
      StackMap locals:
      StackMap stack:
        22: aload 4
            ldc "ceil"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 37
      StackMap locals:
      StackMap stack:
        23: aload 4
            ldc "down"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 37
      StackMap locals:
      StackMap stack:
        24: aload 4
            ldc "even"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 34
            goto 37
      StackMap locals:
      StackMap stack:
        25: aload 4
            ldc "floor"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 36
            goto 37
      StackMap locals:
      StackMap stack:
        26: aload 4
            ldc "ceiling"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 35
            goto 37
      StackMap locals:
      StackMap stack:
        27: aload 4
            ldc "half_up"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 32
            goto 37
      StackMap locals:
      StackMap stack:
        28: aload 4
            ldc "default"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 32
            goto 37
      StackMap locals:
      StackMap stack:
        29: aload 4
            ldc "truncate"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 31
            goto 37
        30: .line 1736
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.UP:Ljava/math/RoundingMode;
            areturn
        31: .line 1739
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            areturn
        32: .line 1742
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            areturn
        33: .line 1744
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
            areturn
        34: .line 1748
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.HALF_EVEN:Ljava/math/RoundingMode;
            areturn
        35: .line 1751
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.CEILING:Ljava/math/RoundingMode;
            areturn
        36: .line 1753
      StackMap locals:
      StackMap stack:
            getstatic java.math.RoundingMode.FLOOR:Ljava/math/RoundingMode;
            areturn
        37: .line 1755
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid rounding mode: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* roundingMode */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // java.lang.String roundingMode
        38: .line 1759
      StackMap locals:
      StackMap stack:
            aload 1 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokestatic java.math.RoundingMode.valueOf:(I)Ljava/math/RoundingMode;
        39: areturn
        40: .line 1760
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
        41: .line 1761
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "invalid rounding mode"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 2 // org.jruby.runtime.builtin.IRubyObject opts
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0       context  Lorg/jruby/runtime/ThreadContext;
            0   42     1           arg  Lorg/jruby/runtime/builtin/IRubyObject;
            2   42     2          opts  Lorg/jruby/runtime/builtin/IRubyObject;
            7   15     3  roundingMode  Ljava/lang/String;
           17   38     3  roundingMode  Ljava/lang/String;
      Exception table:
        from    to  target  type
          38    39      40  Class java.lang.IllegalArgumentException
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject sign();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1768
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
            ldc "SIGN_NaN"
            invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         1: .line 1769
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 4
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ifge 2
            ldc "SIGN_NEGATIVE_INFINITE"
            goto 3
      StackMap locals:
      StackMap stack: org.jruby.RubyClass
         2: ldc "SIGN_POSITIVE_INFINITE"
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.RubyClass java.lang.String
         3: invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 1770
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 7
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            ifge 5
            ldc "SIGN_NEGATIVE_ZERO"
            goto 6
      StackMap locals:
      StackMap stack: org.jruby.RubyClass
         5: ldc "SIGN_POSITIVE_ZERO"
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.RubyClass java.lang.String
         6: invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         7: .line 1772
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getMetaClass:()Lorg/jruby/RubyClass;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 8
            ldc "SIGN_NEGATIVE_FINITE"
            goto 9
      StackMap locals:
      StackMap stack: org.jruby.RubyClass
         8: ldc "SIGN_POSITIVE_FINITE"
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal
      StackMap stack: org.jruby.RubyClass java.lang.String
         9: invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  private org.jruby.RubyFixnum signValue(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
         0: .line 1776
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
            areturn
         1: .line 1777
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
         2: .line 1778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 3
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
         3: .line 1780
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            areturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    4     1  runtime  Lorg/jruby/Ruby;
    MethodParameters:
         Name  Flags
      runtime  

  public org.jruby.RubyArray split(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyArray;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1785
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
         1: .line 1786
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.signValue:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
         2: .line 1787
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.splitDigits:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
         3: .line 1788
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            bipush 10
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
         4: .line 1789
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.exponent:()Lorg/jruby/runtime/builtin/IRubyObject;
         5: .line 1785
            invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  private java.lang.String splitDigits();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1793
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            ldc "NaN"
            areturn
         1: .line 1794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            ldc "Infinity"
            areturn
         2: .line 1795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 3
            ldc "0"
            areturn
         3: .line 1797
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getSignificantDigits:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private java.lang.String getSignificantDigits();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1802
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private java.lang.String getAllDigits();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1806
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.abs:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private int getExponent();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1810
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
         2: .line 1812
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
            astore 1 /* val */
        start local 1 // java.math.BigDecimal val
         3: .line 1813
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.precision:()I
            aload 1 /* val */
            invokevirtual java.math.BigDecimal.scale:()I
            isub
            ireturn
        end local 1 // java.math.BigDecimal val
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            3    4     1   val  Ljava/math/BigDecimal;

  public org.jruby.runtime.builtin.IRubyObject sqrt(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 1818
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            astore 2 /* runtime */
        start local 2 // org.jruby.Ruby runtime
         1: .line 1819
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 2
            aload 2 /* runtime */
            ldc "sqrt of NaN"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1820
      StackMap locals: org.jruby.Ruby
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 3
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            iflt 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            ifge 5
      StackMap locals:
      StackMap stack:
         4: aload 2 /* runtime */
            ldc "sqrt of negative value"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 1821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 6
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ifle 6
            aload 2 /* runtime */
            iconst_1
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         6: .line 1824
      StackMap locals:
      StackMap stack:
            aload 2 /* runtime */
            aload 1 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.getPrecisionInt:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)I
            bipush 16
            iadd
            bipush 9
            iadd
            istore 3 /* n */
        start local 3 // int n
         7: .line 1828
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 2 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            new java.math.MathContext
            dup
            iload 3 /* n */
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.bigSqrt:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.setResult:()Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // int n
        end local 2 // org.jruby.Ruby runtime
        end local 1 // org.jruby.runtime.builtin.IRubyObject arg
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    8     1      arg  Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     2  runtime  Lorg/jruby/Ruby;
            7    8     3        n  I
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
      Name  Flags
      arg   

  private static int getPrecisionInt(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.runtime.builtin.IRubyObject v
         0: .line 1833
            aload 1 /* v */
            invokestatic org.jruby.RubyNumeric.num2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 2 /* n */
        start local 2 // int n
         1: .line 1834
            iload 2 /* n */
            ifge 2
            aload 0 /* runtime */
            ldc "negative precision"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 1835
      StackMap locals: int
      StackMap stack:
            iload 2 /* n */
            ireturn
        end local 2 // int n
        end local 1 // org.jruby.runtime.builtin.IRubyObject v
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  runtime  Lorg/jruby/Ruby;
            0    3     1        v  Lorg/jruby/runtime/builtin/IRubyObject;
            1    3     2        n  I
    MethodParameters:
         Name  Flags
      runtime  final
      v        final

  public org.jruby.runtime.builtin.IRubyObject to_f();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1839
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            iconst_1
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toFloat:(Lorg/jruby/Ruby;Z)Lorg/jruby/RubyFloat;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  private org.jruby.RubyFloat toFloat(org.jruby.Ruby, boolean);
    descriptor: (Lorg/jruby/Ruby;Z)Lorg/jruby/RubyFloat;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean checkFlow
         0: .line 1842
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* runtime */
            ldc NaN
            invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
            areturn
         1: .line 1843
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 4
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ifge 2
            ldc -Infinity
            goto 3
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         2: ldc Infinity
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby int
      StackMap stack: org.jruby.Ruby double
         3: invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
            areturn
         4: .line 1844
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 7
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            ifge 5
            ldc -0.0
            goto 6
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         5: dconst_0
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby int
      StackMap stack: org.jruby.Ruby double
         6: invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
            areturn
         7: .line 1846
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            ineg
            sipush 308
            if_icmpgt 9
         8: .line 1847
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokestatic org.jruby.util.SafeDoubleParser.doubleValue:(Ljava/math/BigDecimal;)D
            invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
            areturn
         9: .line 1850
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            tableswitch { // -1 - 1
                   -1: 10
                    0: 13
                    1: 16
              default: 19
          }
        10: .line 1852
      StackMap locals:
      StackMap stack:
            iload 2 /* checkFlow */
            ifeq 12
            aload 1 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isOverflowExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 12
        11: .line 1853
            aload 1 /* runtime */
            ldc "BigDecimal to Float conversion"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        12: .line 1855
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            ldc -Infinity
            invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
            areturn
        13: .line 1857
      StackMap locals:
      StackMap stack:
            iload 2 /* checkFlow */
            ifeq 15
            aload 1 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isUnderflowExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 15
        14: .line 1858
            aload 1 /* runtime */
            ldc "BigDecimal to Float conversion"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        15: .line 1860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            dconst_0
            invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
            areturn
        16: .line 1862
      StackMap locals:
      StackMap stack:
            iload 2 /* checkFlow */
            ifeq 18
            aload 1 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.isOverflowExceptionMode:(Lorg/jruby/Ruby;)Z
            ifeq 18
        17: .line 1863
            aload 1 /* runtime */
            ldc "BigDecimal to Float conversion"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 1865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            ldc Infinity
            invokestatic org.jruby.RubyFloat.newFloat:(Lorg/jruby/Ruby;D)Lorg/jruby/RubyFloat;
            areturn
        19: .line 1867
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid signum: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for BigDecimal "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // boolean checkFlow
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   20     1    runtime  Lorg/jruby/Ruby;
            0   20     2  checkFlow  Z
    MethodParameters:
           Name  Flags
      runtime    final
      checkFlow  final

  public org.jruby.RubyFloat convertToFloat();
    descriptor: ()Lorg/jruby/RubyFloat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1873
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toFloat:(Lorg/jruby/Ruby;Z)Lorg/jruby/RubyFloat;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public final org.jruby.runtime.builtin.IRubyObject to_int();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1877
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public org.jruby.runtime.builtin.IRubyObject to_int(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1883
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"to_i", "to_int"})
    MethodParameters:
         Name  Flags
      context  

  final org.jruby.RubyInteger to_int(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
         0: .line 1887
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
         1: .line 1889
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.longValueExact:()J
            invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
         2: areturn
         3: .line 1890
      StackMap locals:
      StackMap stack: java.lang.ArithmeticException
            pop
         4: .line 1891
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            invokestatic org.jruby.RubyBignum.bignorm:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyInteger;
            areturn
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    5     1  runtime  Lorg/jruby/Ruby;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ArithmeticException
    MethodParameters:
         Name  Flags
      runtime  

  public org.jruby.RubyInteger convertToInteger();
    descriptor: ()Lorg/jruby/RubyInteger;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1897
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public org.jruby.runtime.builtin.IRubyObject to_r(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 1902
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.checkFloatDomain:()V
         1: .line 1904
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            istore 2 /* scale */
        start local 2 // int scale
         2: .line 1905
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            iload 2 /* scale */
            invokevirtual java.math.BigDecimal.scaleByPowerOfTen:(I)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.toBigInteger:()Ljava/math/BigInteger;
            astore 3 /* numerator */
        start local 3 // java.math.BigInteger numerator
         3: .line 1906
            getstatic java.math.BigInteger.TEN:Ljava/math/BigInteger;
            iload 2 /* scale */
            invokevirtual java.math.BigInteger.pow:(I)Ljava/math/BigInteger;
            astore 4 /* denominator */
        start local 4 // java.math.BigInteger denominator
         4: .line 1908
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* numerator */
            invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 4 /* denominator */
            invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
            invokestatic org.jruby.RubyRational.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyInteger;Lorg/jruby/RubyInteger;)Lorg/jruby/RubyNumeric;
            areturn
        end local 4 // java.math.BigInteger denominator
        end local 3 // java.math.BigInteger numerator
        end local 2 // int scale
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    5     1      context  Lorg/jruby/runtime/ThreadContext;
            2    5     2        scale  I
            3    5     3    numerator  Ljava/math/BigInteger;
            4    5     4  denominator  Ljava/math/BigInteger;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"to_r"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject to_int19();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1913
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:()Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private static java.lang.String removeTrailingZeroes(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String str
         0: .line 1917
            aload 0 /* str */
            invokevirtual java.lang.String.length:()I
            istore 1 /* l */
        start local 1 // int l
         1: .line 1918
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iinc 1 /* l */ -1
      StackMap locals:
      StackMap stack:
         3: iload 1 /* l */
            ifle 4
            aload 0 /* str */
            iload 1 /* l */
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 48
            if_icmpeq 2
         4: .line 1919
      StackMap locals:
      StackMap stack:
            aload 0 /* str */
            iconst_0
            iload 1 /* l */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 1 // int l
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   str  Ljava/lang/String;
            1    5     1     l  I
    MethodParameters:
      Name  Flags
      str   final

  public static boolean formatHasLeadingPlus(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String format
         0: .line 1923
            aload 0 /* format */
            invokevirtual java.lang.String.length:()I
            ifle 1
            aload 0 /* format */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 43
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String format
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  format  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      format  

  public static boolean formatHasLeadingSpace(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String format
         0: .line 1927
            aload 0 /* format */
            invokevirtual java.lang.String.length:()I
            ifle 1
            aload 0 /* format */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 32
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String format
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  format  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      format  

  public static boolean formatHasFloatingPointNotation(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String format
         0: .line 1931
            aload 0 /* format */
            invokevirtual java.lang.String.length:()I
            ifle 1
            aload 0 /* format */
            aload 0 /* format */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 70
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.String format
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  format  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      format  

  public static int formatFractionalDigitGroups(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String format
         0: .line 1937
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.FRACTIONAL_DIGIT_GROUPS:Ljava/util/regex/Pattern;
            aload 0 /* format */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            astore 1 /* match */
        start local 1 // java.util.regex.Matcher match
         1: .line 1938
            aload 1 /* match */
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 2
            aload 1 /* match */
            iconst_2
            invokevirtual java.util.regex.Matcher.group:(I)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            goto 3
      StackMap locals: java.util.regex.Matcher
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // java.util.regex.Matcher match
        end local 0 // java.lang.String format
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  format  Ljava/lang/String;
            1    4     1   match  Ljava/util/regex/Matcher;
    MethodParameters:
        Name  Flags
      format  

  private static boolean posSpace(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String arg
         0: .line 1942
            aload 0 /* arg */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatHasLeadingSpace:(Ljava/lang/String;)Z
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.String arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   arg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arg   

  private static boolean posSign(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String arg
         0: .line 1946
            aload 0 /* arg */
            ifnonnull 1
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         1: aload 0 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatHasLeadingPlus:(Ljava/lang/String;)Z
            ifne 2
            aload 0 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.posSpace:(Ljava/lang/String;)Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 0 // java.lang.String arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   arg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arg   

  private static int groups(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String arg
         0: .line 1950
            aload 0 /* arg */
            ifnonnull 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatFractionalDigitGroups:(Ljava/lang/String;)I
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.String arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   arg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      arg   

  public final boolean isZero();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1955
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifne 1
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private boolean isNaN();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1959
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:Z
            ireturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private boolean isInfinity();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1963
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private java.lang.String unscaledValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 1967
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.abs:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            invokevirtual java.math.BigInteger.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  private static java.lang.StringBuilder appendSign(java.lang.StringBuilder, java.lang.String, int);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/StringBuilder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.lang.StringBuilder buff
        start local 1 // java.lang.String str
        start local 2 // int signum
         0: .line 1971
            iload 2 /* signum */
            iconst_m1
            if_icmpne 1
            aload 0 /* buff */
            bipush 45
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
            goto 6
         1: .line 1972
      StackMap locals:
      StackMap stack:
            iload 2 /* signum */
            iconst_1
            if_icmpne 6
         2: .line 1973
            aload 1 /* str */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.posSign:(Ljava/lang/String;)Z
            ifeq 6
         3: .line 1974
            aload 0 /* buff */
            aload 1 /* str */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.posSpace:(Ljava/lang/String;)Z
            ifeq 4
            bipush 32
            goto 5
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         4: bipush 43
      StackMap locals: java.lang.StringBuilder java.lang.String int
      StackMap stack: java.lang.StringBuilder int
         5: invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 1977
      StackMap locals:
      StackMap stack:
            aload 0 /* buff */
            areturn
        end local 2 // int signum
        end local 1 // java.lang.String str
        end local 0 // java.lang.StringBuilder buff
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    buff  Ljava/lang/StringBuilder;
            0    7     1     str  Ljava/lang/String;
            0    7     2  signum  I
    MethodParameters:
        Name  Flags
      buff    final
      str     final
      signum  

  private java.lang.CharSequence engineeringValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/CharSequence;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // java.lang.String arg
         0: .line 1981
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.unscaledValue:()Ljava/lang/String;
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.removeTrailingZeroes:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* s */
        start local 2 // java.lang.String s
         1: .line 1983
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* build */
        start local 3 // java.lang.StringBuilder build
         2: .line 1984
            aload 3 /* build */
            aload 1 /* arg */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.appendSign:(Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/StringBuilder;
            bipush 48
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         3: .line 1986
            aload 1 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.groups:(Ljava/lang/String;)I
            istore 4 /* groups */
        start local 4 // int groups
         4: .line 1987
            iload 4 /* groups */
            ifne 9
         5: .line 1988
            aload 3 /* build */
            aload 2 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 6
            ldc "0"
            goto 7
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder
         6: aload 2 /* s */
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int
      StackMap stack: java.lang.StringBuilder java.lang.String
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 1989
            goto 20
         9: .line 1990
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            invokevirtual java.lang.String.length:()I
            istore 5 /* len */
        start local 5 // int len
        10: .line 1991
            ldc ""
            astore 6 /* sep */
        start local 6 // java.lang.String sep
        11: .line 1992
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        12: goto 19
        13: .line 1993
      StackMap locals: int java.lang.String int
      StackMap stack:
            iload 7 /* index */
            iload 4 /* groups */
            iadd
            istore 8 /* next */
        start local 8 // int next
        14: .line 1994
            aload 3 /* build */
            aload 6 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* s */
            iload 7 /* index */
            iload 8 /* next */
            iload 5 /* len */
            if_icmple 15
            iload 5 /* len */
            goto 16
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int int java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String int
        15: iload 8 /* next */
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal java.lang.String java.lang.String java.lang.StringBuilder int int java.lang.String int int
      StackMap stack: java.lang.StringBuilder java.lang.String int int
        16: invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 1995
            ldc " "
            astore 6 /* sep */
        end local 8 // int next
        18: .line 1992
            iload 7 /* index */
            iload 4 /* groups */
            iadd
            istore 7 /* index */
      StackMap locals:
      StackMap stack:
        19: iload 7 /* index */
            iload 5 /* len */
            if_icmplt 13
        end local 7 // int index
        end local 6 // java.lang.String sep
        end local 5 // int len
        20: .line 1998
      StackMap locals:
      StackMap stack:
            aload 3 /* build */
            bipush 101
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getExponent:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        21: .line 1999
            aload 3 /* build */
            areturn
        end local 4 // int groups
        end local 3 // java.lang.StringBuilder build
        end local 2 // java.lang.String s
        end local 1 // java.lang.String arg
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   22     1     arg  Ljava/lang/String;
            1   22     2       s  Ljava/lang/String;
            2   22     3   build  Ljava/lang/StringBuilder;
            4   22     4  groups  I
           10   20     5     len  I
           11   20     6     sep  Ljava/lang/String;
           12   20     7   index  I
           14   18     8    next  I
    MethodParameters:
      Name  Flags
      arg   final

  private java.lang.CharSequence floatingPointValue(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/CharSequence;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // java.lang.String arg
         0: .line 2003
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.absStripTrailingZeros:()Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.toPlainString:()Ljava/lang/String;
            bipush 46
            invokestatic org.jruby.util.StringSupport.split:(Ljava/lang/String;C)Ljava/util/List;
            astore 2 /* values */
        start local 2 // java.util.List values
         1: .line 2004
            aload 2 /* values */
            invokeinterface java.util.List.size:()I
            ifle 2
            aload 2 /* values */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            goto 3
      StackMap locals: java.util.List
      StackMap stack:
         2: ldc "0"
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 3 /* whole */
        start local 3 // java.lang.String whole
         4: .line 2005
            aload 2 /* values */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 5
            aload 2 /* values */
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            goto 6
      StackMap locals: java.lang.String
      StackMap stack:
         5: ldc "0"
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 4 /* after */
        start local 4 // java.lang.String after
         7: .line 2007
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* build */
        start local 5 // java.lang.StringBuilder build
         8: .line 2008
            aload 5 /* build */
            aload 1 /* arg */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.signum:()I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.appendSign:(Ljava/lang/StringBuilder;Ljava/lang/String;I)Ljava/lang/StringBuilder;
            pop
         9: .line 2010
            aload 1 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.groups:(Ljava/lang/String;)I
            istore 6 /* groups */
        start local 6 // int groups
        10: .line 2011
            iload 6 /* groups */
            ifne 14
        11: .line 2012
            aload 5 /* build */
            aload 3 /* whole */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 2013
            aload 4 /* after */
            ifnull 35
            aload 5 /* build */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 4 /* after */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 2014
            goto 35
        14: .line 2015
      StackMap locals: java.lang.String java.lang.StringBuilder int
      StackMap stack:
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        15: aload 3 /* whole */
            invokevirtual java.lang.String.length:()I
            istore 8 /* len */
        start local 8 // int len
        16: .line 2016
            ldc ""
            astore 9 /* sep */
        start local 9 // java.lang.String sep
        17: .line 2017
            goto 23
        18: .line 2018
      StackMap locals: int int java.lang.String
      StackMap stack:
            iload 7 /* index */
            iload 6 /* groups */
            iadd
            istore 10 /* next */
        start local 10 // int next
        19: .line 2019
            iload 10 /* next */
            iload 8 /* len */
            if_icmple 20
            iload 8 /* len */
            istore 10 /* next */
        20: .line 2021
      StackMap locals: int
      StackMap stack:
            aload 5 /* build */
            aload 9 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* whole */
            iload 7 /* index */
            iload 10 /* next */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 2022
            ldc " "
            astore 9 /* sep */
        22: .line 2023
            iload 7 /* index */
            iload 6 /* groups */
            iadd
            istore 7 /* index */
        end local 10 // int next
        23: .line 2017
      StackMap locals:
      StackMap stack:
            iload 7 /* index */
            iload 8 /* len */
            if_icmplt 18
        24: .line 2025
            aload 4 /* after */
            ifnull 35
        25: .line 2026
            aload 5 /* build */
            bipush 46
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        26: .line 2027
            iconst_0
            istore 7 /* index */
            aload 4 /* after */
            invokevirtual java.lang.String.length:()I
            istore 8 /* len */
        27: .line 2028
            ldc ""
            astore 9 /* sep */
        28: .line 2029
            goto 34
        29: .line 2030
      StackMap locals:
      StackMap stack:
            iload 7 /* index */
            iload 6 /* groups */
            iadd
            istore 10 /* next */
        start local 10 // int next
        30: .line 2031
            iload 10 /* next */
            iload 8 /* len */
            if_icmple 31
            iload 8 /* len */
            istore 10 /* next */
        31: .line 2033
      StackMap locals: int
      StackMap stack:
            aload 5 /* build */
            aload 9 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* after */
            iload 7 /* index */
            iload 10 /* next */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        32: .line 2034
            ldc " "
            astore 9 /* sep */
        33: .line 2035
            iload 7 /* index */
            iload 6 /* groups */
            iadd
            istore 7 /* index */
        end local 10 // int next
        34: .line 2029
      StackMap locals:
      StackMap stack:
            iload 7 /* index */
            iload 8 /* len */
            if_icmplt 29
        end local 9 // java.lang.String sep
        end local 8 // int len
        end local 7 // int index
        35: .line 2039
      StackMap locals:
      StackMap stack:
            aload 5 /* build */
            areturn
        end local 6 // int groups
        end local 5 // java.lang.StringBuilder build
        end local 4 // java.lang.String after
        end local 3 // java.lang.String whole
        end local 2 // java.util.List values
        end local 1 // java.lang.String arg
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   36     0    this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   36     1     arg  Ljava/lang/String;
            1   36     2  values  Ljava/util/List<Ljava/lang/String;>;
            4   36     3   whole  Ljava/lang/String;
            7   36     4   after  Ljava/lang/String;
            8   36     5   build  Ljava/lang/StringBuilder;
           10   36     6  groups  I
           15   35     7   index  I
           16   35     8     len  I
           17   35     9     sep  Ljava/lang/String;
           19   23    10    next  I
           30   34    10    next  I
    MethodParameters:
      Name  Flags
      arg   final

  public org.jruby.runtime.builtin.IRubyObject to_s();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 2044
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aconst_null
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public org.jruby.RubyString to_s(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2049
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aconst_null
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.RubyString to_s(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyString;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 2054
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* arg */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpne 1
            aconst_null
            goto 2
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby
         1: aload 2 /* arg */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String
         2: invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
            0    3     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  private org.jruby.RubyString toStringImpl(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.lang.String arg
         0: .line 2058
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* runtime */
            ldc "NaN"
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
         1: .line 2059
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.infinityString:(I)Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
         2: .line 2060
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 5
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            ifge 3
            ldc "-0.0"
            goto 4
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         3: ldc "0.0"
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String
      StackMap stack: org.jruby.Ruby java.lang.String
         4: invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
         5: .line 2062
      StackMap locals:
      StackMap stack:
            aload 2 /* arg */
            ifnull 6
            aload 2 /* arg */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.formatHasFloatingPointNotation:(Ljava/lang/String;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 3 /* asEngineering */
        start local 3 // boolean asEngineering
         8: .line 2064
            aload 1 /* runtime */
            iload 3 /* asEngineering */
            ifeq 9
            aload 0 /* this */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.engineeringValue:(Ljava/lang/String;)Ljava/lang/CharSequence;
            goto 10
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String int
      StackMap stack: org.jruby.Ruby
         9: aload 0 /* this */
            aload 2 /* arg */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.floatingPointValue:(Ljava/lang/String;)Ljava/lang/CharSequence;
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String int
      StackMap stack: org.jruby.Ruby java.lang.CharSequence
        10: invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/CharSequence;)Lorg/jruby/RubyString;
            areturn
        end local 3 // boolean asEngineering
        end local 2 // java.lang.String arg
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0   11     1        runtime  Lorg/jruby/Ruby;
            0   11     2            arg  Ljava/lang/String;
            8   11     3  asEngineering  Z
    MethodParameters:
         Name  Flags
      runtime  final
      arg      

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 2069
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            ldc "NaN"
            areturn
         1: .line 2070
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.infinityString:(I)Ljava/lang/String;
            areturn
         2: .line 2071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            ifeq 5
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            ifge 3
            ldc "-0.0"
            goto 4
      StackMap locals:
      StackMap stack:
         3: ldc "0.0"
      StackMap locals:
      StackMap stack: java.lang.String
         4: areturn
         5: .line 2073
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.engineeringValue:(Ljava/lang/String;)Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  public org.jruby.runtime.builtin.IRubyObject to_s(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 2078
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aload 1 /* args */
            arraylength
            ifne 1
            aconst_null
            goto 3
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby
         1: aload 1 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 2
            aconst_null
            goto 3
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby
         2: aload 1 /* args */
            iconst_0
            aaload
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
      StackMap locals: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack: org.jruby.ext.bigdecimal.RubyBigDecimal org.jruby.Ruby java.lang.String
         3: invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.toStringImpl:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    4     1  args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      args  

  public org.jruby.runtime.builtin.IRubyObject fix();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 2085
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.truncateInternal:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()

  private org.jruby.ext.bigdecimal.RubyBigDecimal truncateInternal(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // int arg
         0: .line 2089
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 1 /* runtime */
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newNaN:(Lorg/jruby/Ruby;)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         1: .line 2090
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newInfinity:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
         2: .line 2092
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.precision:()I
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.scale:()I
            isub
            iload 2 /* arg */
            iadd
            istore 3 /* precision */
        start local 3 // int precision
         3: .line 2094
            iload 3 /* precision */
            ifle 5
         4: .line 2095
            new org.jruby.ext.bigdecimal.RubyBigDecimal
            dup
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            new java.math.MathContext
            dup
            iload 3 /* precision */
            getstatic java.math.RoundingMode.DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokespecial org.jruby.ext.bigdecimal.RubyBigDecimal.<init>:(Lorg/jruby/Ruby;Ljava/math/BigDecimal;)V
            areturn
         5: .line 2098
      StackMap locals: int
      StackMap stack:
            aload 1 /* runtime */
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.zeroSign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.newZero:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 3 // int precision
        end local 2 // int arg
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    6     1    runtime  Lorg/jruby/Ruby;
            0    6     2        arg  I
            3    6     3  precision  I
    MethodParameters:
         Name  Flags
      runtime  final
      arg      

  public org.jruby.runtime.builtin.IRubyObject truncate(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2103
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iconst_0
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.truncateInternal:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.to_int:(Lorg/jruby/Ruby;)Lorg/jruby/RubyInteger;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject truncate(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 2108
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* arg */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.truncateInternal:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      arg      

  public org.jruby.runtime.builtin.IRubyObject zero_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 2114
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"zero?"})
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject zero_p();
    descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 2119
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isZero:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public <T> T toJava(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
        start local 1 // java.lang.Class target
         0: .line 2124
            aload 1 /* target */
            ldc Ljava/math/BigDecimal;
            if_acmpeq 1
            aload 1 /* target */
            ldc Ljava/lang/Number;
            if_acmpne 2
         1: .line 2125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.value:Ljava/math/BigDecimal;
            areturn
         2: .line 2127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* target */
            invokespecial org.jruby.RubyNumeric.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Class target
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;
            0    3     1  target  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
        Name  Flags
      target  

  public static java.math.BigDecimal bigSqrt(java.math.BigDecimal, java.math.MathContext);
    descriptor: (Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=21, args_size=2
        start local 0 // java.math.BigDecimal squarD
        start local 1 // java.math.MathContext rootMC
         0: .line 2150
            aload 0 /* squarD */
            invokevirtual java.math.BigDecimal.signum:()I
            istore 2 /* sign */
        start local 2 // int sign
         1: .line 2151
            iload 2 /* sign */
            iconst_m1
            if_icmpne 2
            new java.lang.ArithmeticException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Square root of a negative number: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* squarD */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.ArithmeticException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2152
      StackMap locals: int
      StackMap stack:
            iload 2 /* sign */
            ifne 3
            aload 0 /* squarD */
            aload 1 /* rootMC */
            invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
         3: .line 2154
      StackMap locals:
      StackMap stack:
            aload 1 /* rootMC */
            invokevirtual java.math.MathContext.getPrecision:()I
            istore 3 /* prec */
        start local 3 // int prec
         4: .line 2155
            iload 3 /* prec */
            ifne 5
            new java.lang.IllegalArgumentException
            dup
            ldc "Most roots won't have infinite precision = 0"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 2158
      StackMap locals: int
      StackMap stack:
            bipush 62
            istore 4 /* BITS */
        start local 4 // int BITS
         6: .line 2159
            bipush 16
            istore 5 /* nInit */
        start local 5 // int nInit
         7: .line 2160
            new java.math.MathContext
            dup
            bipush 18
            getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
            invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 6 /* nMC */
        start local 6 // java.math.MathContext nMC
         8: .line 2163
            aload 0 /* squarD */
            invokevirtual java.math.BigDecimal.unscaledValue:()Ljava/math/BigInteger;
            astore 7 /* bi */
        start local 7 // java.math.BigInteger bi
         9: .line 2164
            aload 7 /* bi */
            invokevirtual java.math.BigInteger.bitLength:()I
            istore 8 /* biLen */
        start local 8 // int biLen
        10: .line 2165
            iconst_0
            iload 8 /* biLen */
            iload 4 /* BITS */
            isub
            iload 8 /* biLen */
            iconst_2
            irem
            ifne 11
            iconst_0
            goto 12
      StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int
      StackMap stack: int int
        11: iconst_1
      StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int
      StackMap stack: int int int
        12: iadd
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* shift */
        start local 9 // int shift
        13: .line 2166
            aload 7 /* bi */
            iload 9 /* shift */
            invokevirtual java.math.BigInteger.shiftRight:(I)Ljava/math/BigInteger;
            astore 7 /* bi */
        14: .line 2168
            aload 7 /* bi */
            invokestatic org.jruby.util.SafeDoubleParser.doubleValue:(Ljava/lang/Number;)D
            invokestatic java.lang.Math.sqrt:(D)D
            dstore 10 /* root */
        start local 10 // double root
        15: .line 2169
            new java.math.BigDecimal
            dup
            getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
            iload 9 /* shift */
            iconst_2
            idiv
            invokevirtual java.math.BigInteger.shiftLeft:(I)Ljava/math/BigInteger;
            invokespecial java.math.BigDecimal.<init>:(Ljava/math/BigInteger;)V
            astore 12 /* halfBack */
        start local 12 // java.math.BigDecimal halfBack
        16: .line 2171
            aload 0 /* squarD */
            invokevirtual java.math.BigDecimal.scale:()I
            istore 13 /* scale */
        start local 13 // int scale
        17: .line 2172
            iload 13 /* scale */
            iconst_2
            irem
            iconst_1
            if_icmpne 18
            dload 10 /* root */
            ldc 3.1622776601683795
            dmul
            dstore 10 /* root */
        18: .line 2174
      StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int
      StackMap stack:
            iload 13 /* scale */
            i2d
            ldc 2.0
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            istore 13 /* scale */
        19: .line 2177
            new java.math.BigDecimal
            dup
            dload 10 /* root */
            aload 6 /* nMC */
            invokespecial java.math.BigDecimal.<init>:(DLjava/math/MathContext;)V
            astore 14 /* x */
        start local 14 // java.math.BigDecimal x
        20: .line 2178
            aload 14 /* x */
            aload 12 /* halfBack */
            aload 6 /* nMC */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 14 /* x */
        21: .line 2179
            iload 13 /* scale */
            ifeq 22
            aload 14 /* x */
            iload 13 /* scale */
            invokevirtual java.math.BigDecimal.movePointLeft:(I)Ljava/math/BigDecimal;
            astore 14 /* x */
        22: .line 2181
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            iload 3 /* prec */
            iload 5 /* nInit */
            if_icmpge 24
        23: .line 2182
            aload 14 /* x */
            aload 1 /* rootMC */
            invokevirtual java.math.BigDecimal.round:(Ljava/math/MathContext;)Ljava/math/BigDecimal;
            areturn
        24: .line 2185
      StackMap locals:
      StackMap stack:
            ldc 2
            invokestatic java.math.BigDecimal.valueOf:(J)Ljava/math/BigDecimal;
            astore 15 /* TWO */
        start local 15 // java.math.BigDecimal TWO
        25: .line 2188
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            aload 15 /* TWO */
            aload 14 /* x */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 6 /* nMC */
            invokevirtual java.math.BigDecimal.divide:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 16 /* v */
        start local 16 // java.math.BigDecimal v
        26: .line 2191
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 17 /* nPrecs */
        start local 17 // java.util.ArrayList nPrecs
        27: .line 2193
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$assertionsDisabled:Z
            ifne 28
            iload 5 /* nInit */
            iconst_3
            if_icmpgt 28
            new java.lang.AssertionError
            dup
            ldc "Never ending loop!"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        28: .line 2196
      StackMap locals: java.math.BigDecimal java.math.BigDecimal java.util.ArrayList
      StackMap stack:
            iload 3 /* prec */
            iconst_1
            iadd
            istore 18 /* m */
        start local 18 // int m
        29: goto 34
        30: .line 2197
      StackMap locals: int
      StackMap stack:
            aload 17 /* nPrecs */
            iload 18 /* m */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        31: .line 2196
            iload 18 /* m */
            iconst_2
            idiv
            iload 18 /* m */
            bipush 100
            if_icmple 32
            iconst_1
            goto 33
      StackMap locals:
      StackMap stack: int
        32: iconst_2
      StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.util.ArrayList int
      StackMap stack: int int
        33: iadd
            istore 18 /* m */
      StackMap locals:
      StackMap stack:
        34: iload 18 /* m */
            iload 5 /* nInit */
            if_icmpgt 30
        end local 18 // int m
        35: .line 2201
            aload 17 /* nPrecs */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 18 /* i */
        start local 18 // int i
        36: goto 49
        37: .line 2203
      StackMap locals:
      StackMap stack:
            new java.math.MathContext
            dup
            aload 17 /* nPrecs */
            iload 18 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iload 18 /* i */
            iconst_2
            irem
            iconst_1
            if_icmpne 38
            getstatic java.math.RoundingMode.HALF_UP:Ljava/math/RoundingMode;
            goto 39
      StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.util.ArrayList int
      StackMap stack: new 37 new 37 int
        38: getstatic java.math.RoundingMode.HALF_DOWN:Ljava/math/RoundingMode;
      StackMap locals: java.math.BigDecimal java.math.MathContext int int int int java.math.MathContext java.math.BigInteger int int double java.math.BigDecimal int java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.util.ArrayList int
      StackMap stack: new 37 new 37 int java.math.RoundingMode
        39: invokespecial java.math.MathContext.<init>:(ILjava/math/RoundingMode;)V
            astore 6 /* nMC */
        40: .line 2206
            aload 0 /* squarD */
            aload 14 /* x */
            aload 14 /* x */
            aload 6 /* nMC */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            aload 6 /* nMC */
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 19 /* e */
        start local 19 // java.math.BigDecimal e
        41: .line 2207
            iload 18 /* i */
            ifeq 44
        42: .line 2208
            aload 14 /* x */
            aload 19 /* e */
            aload 16 /* v */
            aload 6 /* nMC */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 14 /* x */
        43: .line 2209
            goto 46
        44: .line 2210
      StackMap locals: java.math.BigDecimal
      StackMap stack:
            aload 14 /* x */
            aload 19 /* e */
            aload 16 /* v */
            aload 1 /* rootMC */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            aload 1 /* rootMC */
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            astore 14 /* x */
        45: .line 2211
            goto 50
        46: .line 2215
      StackMap locals:
      StackMap stack:
            getstatic java.math.BigDecimal.ONE:Ljava/math/BigDecimal;
            aload 15 /* TWO */
            aload 14 /* x */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            aload 16 /* v */
            aload 6 /* nMC */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.subtract:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 20 /* g */
        start local 20 // java.math.BigDecimal g
        47: .line 2217
            aload 16 /* v */
            aload 20 /* g */
            aload 16 /* v */
            aload 6 /* nMC */
            invokevirtual java.math.BigDecimal.multiply:(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;
            invokevirtual java.math.BigDecimal.add:(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;
            astore 16 /* v */
        end local 20 // java.math.BigDecimal g
        end local 19 // java.math.BigDecimal e
        48: .line 2201
            iinc 18 /* i */ -1
      StackMap locals:
      StackMap stack:
        49: iload 18 /* i */
            iconst_m1
            if_icmpgt 37
        end local 18 // int i
        50: .line 2220
      StackMap locals:
      StackMap stack:
            aload 14 /* x */
            areturn
        end local 17 // java.util.ArrayList nPrecs
        end local 16 // java.math.BigDecimal v
        end local 15 // java.math.BigDecimal TWO
        end local 14 // java.math.BigDecimal x
        end local 13 // int scale
        end local 12 // java.math.BigDecimal halfBack
        end local 10 // double root
        end local 9 // int shift
        end local 8 // int biLen
        end local 7 // java.math.BigInteger bi
        end local 6 // java.math.MathContext nMC
        end local 5 // int nInit
        end local 4 // int BITS
        end local 3 // int prec
        end local 2 // int sign
        end local 1 // java.math.MathContext rootMC
        end local 0 // java.math.BigDecimal squarD
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   51     0    squarD  Ljava/math/BigDecimal;
            0   51     1    rootMC  Ljava/math/MathContext;
            1   51     2      sign  I
            4   51     3      prec  I
            6   51     4      BITS  I
            7   51     5     nInit  I
            8   51     6       nMC  Ljava/math/MathContext;
            9   51     7        bi  Ljava/math/BigInteger;
           10   51     8     biLen  I
           13   51     9     shift  I
           15   51    10      root  D
           16   51    12  halfBack  Ljava/math/BigDecimal;
           17   51    13     scale  I
           20   51    14         x  Ljava/math/BigDecimal;
           25   51    15       TWO  Ljava/math/BigDecimal;
           26   51    16         v  Ljava/math/BigDecimal;
           27   51    17    nPrecs  Ljava/util/ArrayList<Ljava/lang/Integer;>;
           29   35    18         m  I
           36   50    18         i  I
           41   48    19         e  Ljava/math/BigDecimal;
           47   48    20         g  Ljava/math/BigDecimal;
    MethodParameters:
        Name  Flags
      squarD  
      rootMC  

  private void checkFloatDomain();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
         0: .line 2224
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isNaN:()Z
            ifeq 1
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            ldc "NaN"
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         1: .line 2225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.isInfinity:()Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.jruby.ext.bigdecimal.RubyBigDecimal.getRuntime:()Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.bigdecimal.RubyBigDecimal.infinitySign:I
            invokestatic org.jruby.ext.bigdecimal.RubyBigDecimal.infinityString:(I)Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newFloatDomainError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 2226
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.jruby.ext.bigdecimal.RubyBigDecimal this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/ext/bigdecimal/RubyBigDecimal;

  static java.lang.String infinityString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int infinitySign
         0: .line 2229
            iload 0 /* infinitySign */
            iconst_m1
            if_icmpne 1
            ldc "-Infinity"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "Infinity"
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // int infinitySign
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  infinitySign  I
    MethodParameters:
              Name  Flags
      infinitySign  final

  private static boolean isEven(org.jruby.RubyNumeric);
    descriptor: (Lorg/jruby/RubyNumeric;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.jruby.RubyNumeric x
         0: .line 2233
            aload 0 /* x */
            instanceof org.jruby.RubyFixnum
            ifeq 2
            aload 0 /* x */
            checkcast org.jruby.RubyFixnum
            invokevirtual org.jruby.RubyFixnum.getLongValue:()J
            lconst_1
            land
            lconst_0
            lcmp
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
         2: .line 2234
      StackMap locals:
      StackMap stack:
            aload 0 /* x */
            instanceof org.jruby.RubyBignum
            ifeq 5
         3: .line 2235
            aload 0 /* x */
            checkcast org.jruby.RubyBignum
            invokevirtual org.jruby.RubyBignum.getBigIntegerValue:()Ljava/math/BigInteger;
            iconst_0
            invokevirtual java.math.BigInteger.testBit:(I)Z
            ifeq 4
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
         5: .line 2237
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.jruby.RubyNumeric x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     x  Lorg/jruby/RubyNumeric;
    MethodParameters:
      Name  Flags
      x     final

  private static org.jruby.runtime.JavaSites$BigDecimalSites sites(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/JavaSites$BigDecimalSites;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.ThreadContext context
         0: .line 2241
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.sites:Lorg/jruby/runtime/JavaSites;
            getfield org.jruby.runtime.JavaSites.BigDecimal:Lorg/jruby/runtime/JavaSites$BigDecimalSites;
            areturn
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
    MethodParameters:
         Name  Flags
      context  

  static int[] $SWITCH_TABLE$org$jruby$runtime$ClassIndex();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 64
            getstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jruby.runtime.ClassIndex.values:()[Lorg/jruby/runtime/ClassIndex;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jruby.runtime.ClassIndex.ARRAY:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iconst_4
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.jruby.runtime.ClassIndex.BASICOBJECT:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 39
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jruby.runtime.ClassIndex.BIGDECIMAL:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 40
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.jruby.runtime.ClassIndex.BIGNUM:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.jruby.runtime.ClassIndex.BINDING:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 33
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.jruby.runtime.ClassIndex.CLASS:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 14
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.jruby.runtime.ClassIndex.COMPLEX:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 21
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.jruby.runtime.ClassIndex.CONTINUATION:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 38
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.jruby.runtime.ClassIndex.CONVERTER:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 24
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.jruby.runtime.ClassIndex.DIR:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 36
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.jruby.runtime.ClassIndex.ENCODING:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 23
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.jruby.runtime.ClassIndex.EXCEPTION:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 31
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.jruby.runtime.ClassIndex.FALSE:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 8
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.jruby.runtime.ClassIndex.FILE:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 27
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic org.jruby.runtime.ClassIndex.FIXNUM:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iconst_2
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic org.jruby.runtime.ClassIndex.FLOAT:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 12
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic org.jruby.runtime.ClassIndex.GENERATOR:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 25
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic org.jruby.runtime.ClassIndex.HASH:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 11
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic org.jruby.runtime.ClassIndex.INTEGER:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 17
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic org.jruby.runtime.ClassIndex.IO:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 32
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic org.jruby.runtime.ClassIndex.MATCHDATA:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 28
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic org.jruby.runtime.ClassIndex.MAX_CLASSES:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 41
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic org.jruby.runtime.ClassIndex.METHOD:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 35
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            getstatic org.jruby.runtime.ClassIndex.MODULE:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 13
            iastore
        72: goto 74
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        73: pop
      StackMap locals:
      StackMap stack:
        74: aload 0
            getstatic org.jruby.runtime.ClassIndex.NIL:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 6
            iastore
        75: goto 77
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        76: pop
      StackMap locals:
      StackMap stack:
        77: aload 0
            getstatic org.jruby.runtime.ClassIndex.NO_INDEX:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iconst_1
            iastore
        78: goto 80
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        79: pop
      StackMap locals:
      StackMap stack:
        80: aload 0
            getstatic org.jruby.runtime.ClassIndex.NUMERIC:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 18
            iastore
        81: goto 83
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        82: pop
      StackMap locals:
      StackMap stack:
        83: aload 0
            getstatic org.jruby.runtime.ClassIndex.OBJECT:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 15
            iastore
        84: goto 86
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        85: pop
      StackMap locals:
      StackMap stack:
        86: aload 0
            getstatic org.jruby.runtime.ClassIndex.PROC:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 34
            iastore
        87: goto 89
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        88: pop
      StackMap locals:
      StackMap stack:
        89: aload 0
            getstatic org.jruby.runtime.ClassIndex.RANGE:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 19
            iastore
        90: goto 92
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        91: pop
      StackMap locals:
      StackMap stack:
        92: aload 0
            getstatic org.jruby.runtime.ClassIndex.RATIONAL:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 22
            iastore
        93: goto 95
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        94: pop
      StackMap locals:
      StackMap stack:
        95: aload 0
            getstatic org.jruby.runtime.ClassIndex.REGEXP:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 10
            iastore
        96: goto 98
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        97: pop
      StackMap locals:
      StackMap stack:
        98: aload 0
            getstatic org.jruby.runtime.ClassIndex.STRING:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            iconst_5
            iastore
        99: goto 101
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       100: pop
      StackMap locals:
      StackMap stack:
       101: aload 0
            getstatic org.jruby.runtime.ClassIndex.STRUCT:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 16
            iastore
       102: goto 104
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       103: pop
      StackMap locals:
      StackMap stack:
       104: aload 0
            getstatic org.jruby.runtime.ClassIndex.SYMBOL:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 9
            iastore
       105: goto 107
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       106: pop
      StackMap locals:
      StackMap stack:
       107: aload 0
            getstatic org.jruby.runtime.ClassIndex.THREAD:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 30
            iastore
       108: goto 110
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       109: pop
      StackMap locals:
      StackMap stack:
       110: aload 0
            getstatic org.jruby.runtime.ClassIndex.THREADGROUP:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 29
            iastore
       111: goto 113
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       112: pop
      StackMap locals:
      StackMap stack:
       113: aload 0
            getstatic org.jruby.runtime.ClassIndex.TIME:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 20
            iastore
       114: goto 116
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       115: pop
      StackMap locals:
      StackMap stack:
       116: aload 0
            getstatic org.jruby.runtime.ClassIndex.TRUE:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 7
            iastore
       117: goto 119
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       118: pop
      StackMap locals:
      StackMap stack:
       119: aload 0
            getstatic org.jruby.runtime.ClassIndex.UNBOUNDMETHOD:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 37
            iastore
       120: goto 122
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       121: pop
      StackMap locals:
      StackMap stack:
       122: aload 0
            getstatic org.jruby.runtime.ClassIndex.YIELDER:Lorg/jruby/runtime/ClassIndex;
            invokevirtual org.jruby.runtime.ClassIndex.ordinal:()I
            bipush 26
            iastore
       123: goto 125
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
       124: pop
      StackMap locals:
      StackMap stack:
       125: aload 0
            dup
            putstatic org.jruby.ext.bigdecimal.RubyBigDecimal.$SWITCH_TABLE$org$jruby$runtime$ClassIndex:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError
          71    72      73  Class java.lang.NoSuchFieldError
          74    75      76  Class java.lang.NoSuchFieldError
          77    78      79  Class java.lang.NoSuchFieldError
          80    81      82  Class java.lang.NoSuchFieldError
          83    84      85  Class java.lang.NoSuchFieldError
          86    87      88  Class java.lang.NoSuchFieldError
          89    90      91  Class java.lang.NoSuchFieldError
          92    93      94  Class java.lang.NoSuchFieldError
          95    96      97  Class java.lang.NoSuchFieldError
          98    99     100  Class java.lang.NoSuchFieldError
         101   102     103  Class java.lang.NoSuchFieldError
         104   105     106  Class java.lang.NoSuchFieldError
         107   108     109  Class java.lang.NoSuchFieldError
         110   111     112  Class java.lang.NoSuchFieldError
         113   114     115  Class java.lang.NoSuchFieldError
         116   117     118  Class java.lang.NoSuchFieldError
         119   120     121  Class java.lang.NoSuchFieldError
         122   123     124  Class java.lang.NoSuchFieldError
}
SourceFile: "RubyBigDecimal.java"
NestMembers:
  org.jruby.ext.bigdecimal.RubyBigDecimal$1  org.jruby.ext.bigdecimal.RubyBigDecimal$BigDecimalKernelMethods
InnerClasses:
  public final ID = org.jruby.common.IRubyWarnings$ID of org.jruby.common.IRubyWarnings
  org.jruby.ext.bigdecimal.RubyBigDecimal$1
  public BigDecimalKernelMethods = org.jruby.ext.bigdecimal.RubyBigDecimal$BigDecimalKernelMethods of org.jruby.ext.bigdecimal.RubyBigDecimal
  public BigDecimalSites = org.jruby.runtime.JavaSites$BigDecimalSites of org.jruby.runtime.JavaSites