public class org.jruby.ext.ffi.Platform
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.ffi.Platform
  super_class: java.lang.Object
{
  private static final java.util.Locale LOCALE;
    descriptor: Ljava/util/Locale;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final org.jruby.ext.ffi.Platform$CPU_TYPE CPU;
    descriptor: Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.jruby.ext.ffi.Platform$OS_TYPE OS;
    descriptor: Lorg/jruby/ext/ffi/Platform$OS_TYPE;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final int ARCH_DATA_MODEL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String LIBPREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String LIBSUFFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.String LIBC;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int BIG_ENDIAN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4321

  public static final int LITTLE_ENDIAN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1234

  public static final int BYTE_ORDER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  protected final int addressSize;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int longSize;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final long addressMask;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final java.util.regex.Pattern libPattern;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 45
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            putstatic org.jruby.ext.ffi.Platform.LOCALE:Ljava/util/Locale;
         1: .line 47
            invokestatic org.jruby.ext.ffi.Platform.determineCPU:()Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            putstatic org.jruby.ext.ffi.Platform.CPU:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
         2: .line 48
            invokestatic org.jruby.ext.ffi.Platform.determineOS:()Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            putstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
         3: .line 50
            invokestatic org.jruby.ext.ffi.Platform.determineArchDataModel:()I
            putstatic org.jruby.ext.ffi.Platform.ARCH_DATA_MODEL:I
         4: .line 52
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            getstatic org.jruby.ext.ffi.Platform.CPU:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.jruby.ext.ffi.Platform.NAME:Ljava/lang/String;
         5: .line 53
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.WINDOWS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 6
            ldc ""
            goto 7
      StackMap locals:
      StackMap stack:
         6: ldc "lib"
      StackMap locals:
      StackMap stack: java.lang.String
         7: putstatic org.jruby.ext.ffi.Platform.LIBPREFIX:Ljava/lang/String;
         8: .line 54
            invokestatic org.jruby.ext.ffi.Platform.determineLibExt:()Ljava/lang/String;
            putstatic org.jruby.ext.ffi.Platform.LIBSUFFIX:Ljava/lang/String;
         9: .line 55
            invokestatic org.jruby.ext.ffi.Platform.determineLibC:()Ljava/lang/String;
            putstatic org.jruby.ext.ffi.Platform.LIBC:Ljava/lang/String;
        10: .line 59
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 11
            sipush 4321
            goto 12
      StackMap locals:
      StackMap stack:
        11: sipush 1234
      StackMap locals:
      StackMap stack: int
        12: putstatic org.jruby.ext.ffi.Platform.BYTE_ORDER:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static final org.jruby.ext.ffi.Platform$OS_TYPE determineOS();
    descriptor: ()Lorg/jruby/ext/ffi/Platform$OS_TYPE;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=5, args_size=0
         0: .line 104
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ldc " "
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            astore 0 /* osName */
        start local 0 // java.lang.String osName
         1: .line 105
            aload 0 /* osName */
            ldc "mac"
            invokestatic org.jruby.ext.ffi.Platform.startsWithIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 2
            aload 0 /* osName */
            ldc "darwin"
            invokestatic org.jruby.ext.ffi.Platform.startsWithIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 3
         2: .line 106
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DARWIN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            areturn
         3: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* osName */
            ldc "sunos"
            invokestatic org.jruby.ext.ffi.Platform.startsWithIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 4
            aload 0 /* osName */
            ldc "solaris"
            invokestatic org.jruby.ext.ffi.Platform.startsWithIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 5
         4: .line 108
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.SOLARIS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            areturn
         5: .line 110
      StackMap locals:
      StackMap stack:
            invokestatic org.jruby.ext.ffi.Platform$OS_TYPE.values:()[Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 10
      StackMap locals: java.lang.String top int int org.jruby.ext.ffi.Platform$OS_TYPE[]
      StackMap stack:
         6: aload 4
            iload 2
            aaload
            astore 1 /* os */
        start local 1 // org.jruby.ext.ffi.Platform$OS_TYPE os
         7: .line 111
            aload 0 /* osName */
            aload 1 /* os */
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.ffi.Platform.startsWithIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
            ifeq 9
         8: .line 112
            aload 1 /* os */
            areturn
        end local 1 // org.jruby.ext.ffi.Platform$OS_TYPE os
         9: .line 110
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        10: iload 2
            iload 3
            if_icmplt 6
        11: .line 115
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.UNKNOWN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            areturn
        end local 0 // java.lang.String osName
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1   12     0  osName  Ljava/lang/String;
            7    9     1      os  Lorg/jruby/ext/ffi/Platform$OS_TYPE;

  private static final org.jruby.ext.ffi.Platform determinePlatform(org.jruby.ext.ffi.Platform$OS_TYPE);
    descriptor: (Lorg/jruby/ext/ffi/Platform$OS_TYPE;)Lorg/jruby/ext/ffi/Platform;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform$OS_TYPE os
         0: .line 119
            invokestatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$OS_TYPE:()[I
            aload 0 /* os */
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iaload
            tableswitch { // 1 - 10
                    1: 1
                    2: 6
                    3: 6
                    4: 6
                    5: 6
                    6: 2
                    7: 6
                    8: 3
                    9: 4
                   10: 5
              default: 6
          }
         1: .line 121
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Darwin
            dup
            invokespecial org.jruby.ext.ffi.Platform$Darwin.<init>:()V
            areturn
         2: .line 123
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Linux
            dup
            invokespecial org.jruby.ext.ffi.Platform$Linux.<init>:()V
            areturn
         3: .line 125
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$AIX
            dup
            invokespecial org.jruby.ext.ffi.Platform$AIX.<init>:()V
            areturn
         4: .line 127
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Windows
            dup
            invokespecial org.jruby.ext.ffi.Platform$Windows.<init>:()V
            areturn
         5: .line 129
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Unsupported
            dup
            aload 0 /* os */
            invokespecial org.jruby.ext.ffi.Platform$Unsupported.<init>:(Lorg/jruby/ext/ffi/Platform$OS_TYPE;)V
            areturn
         6: .line 131
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Default
            dup
            aload 0 /* os */
            invokespecial org.jruby.ext.ffi.Platform$Default.<init>:(Lorg/jruby/ext/ffi/Platform$OS_TYPE;)V
            areturn
        end local 0 // org.jruby.ext.ffi.Platform$OS_TYPE os
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    os  Lorg/jruby/ext/ffi/Platform$OS_TYPE;
    MethodParameters:
      Name  Flags
      os    

  private static final org.jruby.ext.ffi.Platform$CPU_TYPE determineCPU();
    descriptor: ()Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=0
         0: .line 136
            ldc "os.arch"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            getstatic org.jruby.ext.ffi.Platform.LOCALE:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 0 /* archString */
        start local 0 // java.lang.String archString
         1: .line 137
            ldc "x86"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            ldc "i386"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            ldc "i86pc"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 138
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.I386:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
         3: .line 139
      StackMap locals:
      StackMap stack:
            ldc "x86_64"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            ldc "amd64"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 140
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.X86_64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
         5: .line 141
      StackMap locals:
      StackMap stack:
            ldc "ppc"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            ldc "powerpc"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 142
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
         7: .line 143
      StackMap locals:
      StackMap stack:
            ldc "ppc64"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 144
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
         9: .line 145
      StackMap locals:
      StackMap stack:
            ldc "ppc64le"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 146
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC64LE:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        11: .line 147
      StackMap locals:
      StackMap stack:
            ldc "sparc"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 148
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.SPARC:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        13: .line 149
      StackMap locals:
      StackMap stack:
            ldc "sparcv9"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 150
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.SPARCV9:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        15: .line 151
      StackMap locals:
      StackMap stack:
            ldc "s390x"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 152
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.S390X:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        17: .line 153
      StackMap locals:
      StackMap stack:
            ldc "arm"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 154
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.ARM:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        19: .line 155
      StackMap locals:
      StackMap stack:
            ldc "aarch64"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 156
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.AARCH64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        21: .line 157
      StackMap locals:
      StackMap stack:
            ldc "universal"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        22: .line 159
            ldc "sun.arch.data.model"
            invokestatic org.jruby.util.SafePropertyAccessor.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* bits */
        start local 1 // java.lang.String bits
        23: .line 160
            ldc "32"
            aload 1 /* bits */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 161
            ldc "os.arch"
            ldc "i386"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        25: .line 162
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.I386:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        26: .line 163
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "64"
            aload 1 /* bits */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        27: .line 164
            ldc "os.arch"
            ldc "x86_64"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        28: .line 165
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.X86_64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        end local 1 // java.lang.String bits
        29: .line 168
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.UNKNOWN:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        end local 0 // java.lang.String archString
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1   30     0  archString  Ljava/lang/String;
           23   29     1        bits  Ljava/lang/String;

  private static final java.lang.String determineLibC();
    descriptor: ()Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=0, args_size=0
         0: .line 172
            invokestatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$OS_TYPE:()[I
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iaload
            tableswitch { // 6 - 9
                    6: 2
                    7: 6
                    8: 3
                    9: 1
              default: 6
          }
         1: .line 174
      StackMap locals:
      StackMap stack:
            ldc "msvcrt.dll"
            areturn
         2: .line 176
      StackMap locals:
      StackMap stack:
            ldc "libc.so.6"
            areturn
         3: .line 178
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform.ARCH_DATA_MODEL:I
            bipush 32
            if_icmpne 5
         4: .line 179
            ldc "libc.a(shr.o)"
            areturn
         5: .line 181
      StackMap locals:
      StackMap stack:
            ldc "libc.a(shr_64.o)"
            areturn
         6: .line 184
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            getstatic org.jruby.ext.ffi.Platform.LIBPREFIX:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "c."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.jruby.ext.ffi.Platform.LIBSUFFIX:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static final java.lang.String determineLibExt();
    descriptor: ()Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=0, args_size=0
         0: .line 189
            invokestatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$OS_TYPE:()[I
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iaload
            lookupswitch { // 3
                    1: 3
                    8: 2
                    9: 1
              default: 4
          }
         1: .line 191
      StackMap locals:
      StackMap stack:
            ldc "dll"
            areturn
         2: .line 193
      StackMap locals:
      StackMap stack:
            ldc "a"
            areturn
         3: .line 195
      StackMap locals:
      StackMap stack:
            ldc "dylib"
            areturn
         4: .line 197
      StackMap locals:
      StackMap stack:
            ldc "so"
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int determineArchDataModel();
    descriptor: ()I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 202
            ldc "sun.arch.data.model"
            invokestatic org.jruby.util.SafePropertyAccessor.getInt:(Ljava/lang/String;)I
            istore 0 /* dataModel */
        start local 0 // int dataModel
         1: .line 203
            iload 0 /* dataModel */
            bipush 32
            if_icmpeq 8
            iload 0 /* dataModel */
            bipush 64
            if_icmpeq 8
         2: .line 204
            invokestatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$CPU_TYPE:()[I
            getstatic org.jruby.ext.ffi.Platform.CPU:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            iaload
            tableswitch { // 1 - 10
                    1: 3
                    2: 5
                    3: 3
                    4: 5
                    5: 5
                    6: 3
                    7: 5
                    8: 5
                    9: 7
                   10: 5
              default: 7
          }
         3: .line 208
      StackMap locals: int
      StackMap stack:
            bipush 32
            istore 0 /* dataModel */
         4: .line 209
            goto 8
         5: .line 216
      StackMap locals:
      StackMap stack:
            bipush 64
            istore 0 /* dataModel */
         6: .line 217
            goto 8
         7: .line 219
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 0 /* dataModel */
         8: .line 222
      StackMap locals:
      StackMap stack:
            iload 0 /* dataModel */
            ireturn
        end local 0 // int dataModel
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            1    9     0  dataModel  I

  protected void <init>(org.jruby.ext.ffi.Platform$OS_TYPE);
    descriptor: (Lorg/jruby/ext/ffi/Platform$OS_TYPE;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.jruby.ext.ffi.Platform this
        start local 1 // org.jruby.ext.ffi.Platform$OS_TYPE os
         0: .line 225
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 65
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ext.ffi.Platform.javaVersionMajor:I
         2: .line 226
            aload 0 /* this */
            getstatic org.jruby.ext.ffi.Platform.ARCH_DATA_MODEL:I
            putfield org.jruby.ext.ffi.Platform.addressSize:I
         3: .line 227
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.addressSize:I
            bipush 32
            if_icmpne 4
            ldc 4294967295
            goto 5
      StackMap locals: org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.ext.ffi.Platform
         4: ldc -1
      StackMap locals: org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.ext.ffi.Platform long
         5: putfield org.jruby.ext.ffi.Platform.addressMask:J
         6: .line 228
            aload 0 /* this */
            aload 1 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.WINDOWS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 7
            bipush 32
            goto 8
      StackMap locals:
      StackMap stack: org.jruby.ext.ffi.Platform
         7: aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.addressSize:I
      StackMap locals: org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.ext.ffi.Platform int
         8: putfield org.jruby.ext.ffi.Platform.longSize:I
         9: .line 230
            invokestatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$OS_TYPE:()[I
            aload 1 /* os */
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iaload
            lookupswitch { // 3
                    1: 12
                    8: 14
                    9: 10
              default: 16
          }
        10: .line 232
      StackMap locals:
      StackMap stack:
            ldc ".*\\.dll$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        11: .line 233
            goto 17
        end local 2 // java.lang.String libpattern
        12: .line 235
      StackMap locals:
      StackMap stack:
            ldc "lib.*\\.(dylib|jnilib)$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        13: .line 236
            goto 17
        end local 2 // java.lang.String libpattern
        14: .line 238
      StackMap locals:
      StackMap stack:
            ldc "lib.*\\.a$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        15: .line 239
            goto 17
        end local 2 // java.lang.String libpattern
        16: .line 241
      StackMap locals:
      StackMap stack:
            ldc "lib.*\\.so.*$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        17: .line 244
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* libpattern */
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putfield org.jruby.ext.ffi.Platform.libPattern:Ljava/util/regex/Pattern;
        18: .line 245
            return
        end local 2 // java.lang.String libpattern
        end local 1 // org.jruby.ext.ffi.Platform$OS_TYPE os
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/jruby/ext/ffi/Platform;
            0   19     1          os  Lorg/jruby/ext/ffi/Platform$OS_TYPE;
           11   12     2  libpattern  Ljava/lang/String;
           13   14     2  libpattern  Ljava/lang/String;
           15   16     2  libpattern  Ljava/lang/String;
           17   19     2  libpattern  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      os    

  public static final org.jruby.ext.ffi.Platform getPlatform();
    descriptor: ()Lorg/jruby/ext/ffi/Platform;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=1, locals=0, args_size=0
         0: .line 253
            getstatic org.jruby.ext.ffi.Platform$SingletonHolder.PLATFORM:Lorg/jruby/ext/ffi/Platform;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public final org.jruby.ext.ffi.Platform$OS_TYPE getOS();
    descriptor: ()Lorg/jruby/ext/ffi/Platform$OS_TYPE;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 262
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            areturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/Platform;

  public final org.jruby.ext.ffi.Platform$CPU_TYPE getCPU();
    descriptor: ()Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 271
            getstatic org.jruby.ext.ffi.Platform.CPU:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/Platform;

  public final int getJavaMajorVersion();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 280
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.javaVersionMajor:I
            iconst_m1
            if_icmpeq 1
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.javaVersionMajor:I
            ireturn
         1: .line 282
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 1 /* version */
        start local 1 // int version
         2: .line 284
            ldc "java.version"
            invokestatic org.jruby.util.SafePropertyAccessor.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* versionString */
        start local 2 // java.lang.String versionString
         3: .line 285
            aload 2 /* versionString */
            ifnull 13
         4: .line 287
            aload 2 /* versionString */
            ldc "-|\\+"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            astore 2 /* versionString */
         5: .line 288
            aload 2 /* versionString */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* v */
        start local 3 // java.lang.String[] v
         6: .line 289
            aload 3 /* v */
            iconst_0
            aaload
            ldc "1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 291
            aload 3 /* v */
            iconst_1
            aaload
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 1 /* version */
         8: .line 292
            goto 13
         9: .line 294
      StackMap locals: int java.lang.String java.lang.String[]
      StackMap stack:
            aload 3 /* v */
            iconst_0
            aaload
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 1 /* version */
        end local 3 // java.lang.String[] v
        end local 2 // java.lang.String versionString
        10: .line 297
            goto 13
      StackMap locals: org.jruby.ext.ffi.Platform int
      StackMap stack: java.lang.Exception
        11: pop
        12: .line 298
            iconst_0
            istore 1 /* version */
        13: .line 301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* version */
            dup_x1
            putfield org.jruby.ext.ffi.Platform.javaVersionMajor:I
            ireturn
        end local 1 // int version
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lorg/jruby/ext/ffi/Platform;
            2   14     1        version  I
            3   10     2  versionString  Ljava/lang/String;
            6   10     3              v  [Ljava/lang/String;
      Exception table:
        from    to  target  type
           2    10      11  Class java.lang.Exception

  public final boolean isBSD();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 304
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.FREEBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpeq 1
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.OPENBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpeq 1
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.NETBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpeq 1
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DARWIN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpeq 1
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DRAGONFLYBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/ffi/Platform;

  public final boolean isUnix();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 307
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.WINDOWS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/ext/ffi/Platform;

  public final boolean isSupported();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 310
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.UNKNOWN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpeq 4
         1: .line 311
            getstatic org.jruby.ext.ffi.Platform.CPU:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.UNKNOWN:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            if_acmpeq 4
         2: .line 312
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.addressSize:I
            bipush 32
            if_icmpeq 3
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.addressSize:I
            bipush 64
            if_icmpne 4
         3: .line 310
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jruby/ext/ffi/Platform;

  public static void createPlatformModule(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule ffi
         0: .line 315
            aload 1 /* ffi */
            ldc "Platform"
            invokevirtual org.jruby.RubyModule.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 2 /* module */
        start local 2 // org.jruby.RubyModule module
         1: .line 316
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            astore 3 /* platform */
        start local 3 // org.jruby.ext.ffi.Platform platform
         2: .line 317
            aload 3 /* platform */
            invokevirtual org.jruby.ext.ffi.Platform.getOS:()Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            astore 4 /* os */
        start local 4 // org.jruby.ext.ffi.Platform$OS_TYPE os
         3: .line 318
            aload 2 /* module */
            ldc "ADDRESS_SIZE"
            aload 0 /* runtime */
            aload 3 /* platform */
            getfield org.jruby.ext.ffi.Platform.addressSize:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         4: .line 319
            aload 2 /* module */
            ldc "LONG_SIZE"
            aload 0 /* runtime */
            aload 3 /* platform */
            getfield org.jruby.ext.ffi.Platform.longSize:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         5: .line 320
            aload 2 /* module */
            ldc "OS"
            aload 0 /* runtime */
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         6: .line 321
            aload 2 /* module */
            ldc "ARCH"
            aload 0 /* runtime */
            aload 3 /* platform */
            invokevirtual org.jruby.ext.ffi.Platform.getCPU:()Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         7: .line 322
            aload 2 /* module */
            ldc "NAME"
            aload 0 /* runtime */
            aload 3 /* platform */
            invokevirtual org.jruby.ext.ffi.Platform.getName:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
         8: .line 323
            aload 2 /* module */
            ldc "IS_WINDOWS"
            aload 0 /* runtime */
            aload 4 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.WINDOWS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 9
            iconst_1
            goto 10
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby
         9: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby int
        10: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        11: .line 324
            aload 2 /* module */
            ldc "IS_BSD"
            aload 0 /* runtime */
            aload 3 /* platform */
            invokevirtual org.jruby.ext.ffi.Platform.isBSD:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        12: .line 325
            aload 2 /* module */
            ldc "IS_FREEBSD"
            aload 0 /* runtime */
            aload 4 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.FREEBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 13
            iconst_1
            goto 14
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby
        13: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby int
        14: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        15: .line 326
            aload 2 /* module */
            ldc "IS_DRAGONFLYBSD"
            aload 0 /* runtime */
            aload 4 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DRAGONFLYBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 16
            iconst_1
            goto 17
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby
        16: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby int
        17: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        18: .line 327
            aload 2 /* module */
            ldc "IS_OPENBSD"
            aload 0 /* runtime */
            aload 4 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.OPENBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 19
            iconst_1
            goto 20
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby
        19: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby int
        20: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        21: .line 328
            aload 2 /* module */
            ldc "IS_SOLARIS"
            aload 0 /* runtime */
            aload 4 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.SOLARIS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 22
            iconst_1
            goto 23
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby
        22: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby int
        23: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        24: .line 329
            aload 2 /* module */
            ldc "IS_LINUX"
            aload 0 /* runtime */
            aload 4 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.LINUX:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 25
            iconst_1
            goto 26
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby
        25: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby int
        26: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        27: .line 330
            aload 2 /* module */
            ldc "IS_MAC"
            aload 0 /* runtime */
            aload 4 /* os */
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DARWIN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 28
            iconst_1
            goto 29
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby
        28: iconst_0
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule org.jruby.RubyModule org.jruby.ext.ffi.Platform org.jruby.ext.ffi.Platform$OS_TYPE
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.Ruby int
        29: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        30: .line 331
            aload 2 /* module */
            ldc "LIBC"
            aload 0 /* runtime */
            getstatic org.jruby.ext.ffi.Platform.LIBC:Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        31: .line 332
            aload 2 /* module */
            ldc "LIBPREFIX"
            aload 0 /* runtime */
            getstatic org.jruby.ext.ffi.Platform.LIBPREFIX:Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        32: .line 333
            aload 2 /* module */
            ldc "LIBSUFFIX"
            aload 0 /* runtime */
            getstatic org.jruby.ext.ffi.Platform.LIBSUFFIX:Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        33: .line 334
            aload 2 /* module */
            ldc "BYTE_ORDER"
            aload 0 /* runtime */
            getstatic org.jruby.ext.ffi.Platform.BYTE_ORDER:I
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        34: .line 335
            aload 2 /* module */
            ldc "BIG_ENDIAN"
            aload 0 /* runtime */
            sipush 4321
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        35: .line 336
            aload 2 /* module */
            ldc "LITTLE_ENDIAN"
            aload 0 /* runtime */
            sipush 1234
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            invokevirtual org.jruby.RubyModule.defineConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)V
        36: .line 337
            aload 2 /* module */
            ldc Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
        37: .line 338
            return
        end local 4 // org.jruby.ext.ffi.Platform$OS_TYPE os
        end local 3 // org.jruby.ext.ffi.Platform platform
        end local 2 // org.jruby.RubyModule module
        end local 1 // org.jruby.RubyModule ffi
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   38     0   runtime  Lorg/jruby/Ruby;
            0   38     1       ffi  Lorg/jruby/RubyModule;
            1   38     2    module  Lorg/jruby/RubyModule;
            2   38     3  platform  Lorg/jruby/ext/ffi/Platform;
            3   38     4        os  Lorg/jruby/ext/ffi/Platform$OS_TYPE;
    MethodParameters:
         Name  Flags
      runtime  
      ffi      

  public static org.jruby.runtime.builtin.IRubyObject windows_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: (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 341
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.WINDOWS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby int
         2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            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    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"windows?"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject mac_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: (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 345
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DARWIN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby int
         2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            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    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"mac?"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject unix_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: (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 349
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.isUnix:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            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(name = {"unix?"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject bsd_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: (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 353
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.isBSD:()Z
            invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            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(name = {"bsd?"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject linux_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: (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 357
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.LINUX:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby int
         2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            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    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"linux?"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static org.jruby.runtime.builtin.IRubyObject solaris_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: (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 361
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.SOLARIS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: org.jruby.Ruby
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.Ruby int
         2: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
            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    3     0  context  Lorg/jruby/runtime/ThreadContext;
            0    3     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"solaris?"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      recv     

  public static java.lang.String getProperty(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String property
        start local 1 // java.lang.String defValue
         0: .line 374
            aload 0 /* property */
            aload 1 /* defValue */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 375
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         3: .line 376
            aload 1 /* defValue */
            areturn
        end local 1 // java.lang.String defValue
        end local 0 // java.lang.String property
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  property  Ljava/lang/String;
            0    4     1  defValue  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
    MethodParameters:
          Name  Flags
      property  
      defValue  

  public final int longSize();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 385
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.longSize:I
            ireturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/Platform;

  public final int addressSize();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 394
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.addressSize:I
            ireturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/Platform;

  public final long addressMask();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 403
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.addressMask:J
            lreturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/Platform;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Platform this
         0: .line 412
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            getstatic org.jruby.ext.ffi.Platform.CPU:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.jruby.ext.ffi.Platform.OS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/Platform;

  public java.lang.String mapLibraryName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.ffi.Platform this
        start local 1 // java.lang.String libName
         0: .line 419
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Platform.libPattern:Ljava/util/regex/Pattern;
            aload 1 /* libName */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.find:()Z
            ifeq 2
         1: .line 420
            aload 1 /* libName */
            areturn
         2: .line 422
      StackMap locals:
      StackMap stack:
            aload 1 /* libName */
            invokestatic java.lang.System.mapLibraryName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String libName
        end local 0 // org.jruby.ext.ffi.Platform this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/ffi/Platform;
            0    3     1  libName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      libName  

  private static boolean startsWithIgnoreCase(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String s1
        start local 1 // java.lang.String s2
         0: .line 508
            aload 0 /* s1 */
            aload 1 /* s2 */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         1: .line 509
            aload 0 /* s1 */
            getstatic org.jruby.ext.ffi.Platform.LOCALE:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            aload 1 /* s2 */
            getstatic org.jruby.ext.ffi.Platform.LOCALE:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         2: .line 510
            aload 0 /* s1 */
            getstatic org.jruby.ext.ffi.Platform.LOCALE:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            aload 1 /* s2 */
            getstatic org.jruby.ext.ffi.Platform.LOCALE:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 508
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // java.lang.String s2
        end local 0 // java.lang.String s1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    s1  Ljava/lang/String;
            0    5     1    s2  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s1    
      s2    

  static int[] $SWITCH_TABLE$org$jruby$ext$ffi$Platform$OS_TYPE();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 43
            getstatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$OS_TYPE:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jruby.ext.ffi.Platform$OS_TYPE.values:()[Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.AIX:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            bipush 8
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DARWIN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.DRAGONFLYBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.FREEBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.LINUX:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            bipush 6
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.NETBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iconst_3
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.OPENBSD:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            iconst_4
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.SOLARIS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            bipush 7
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.UNKNOWN:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            bipush 10
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.WINDOWS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$OS_TYPE.ordinal:()I
            bipush 9
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            dup
            putstatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$OS_TYPE:[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

  static int[] $SWITCH_TABLE$org$jruby$ext$ffi$Platform$CPU_TYPE();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 43
            getstatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$CPU_TYPE:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.jruby.ext.ffi.Platform$CPU_TYPE.values:()[Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.AARCH64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            bipush 10
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.ARM:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            bipush 9
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.I386:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.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.ext.ffi.Platform$CPU_TYPE.POWERPC64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC64LE:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.S390X:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            bipush 8
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.SPARC:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            bipush 6
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.SPARCV9:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            bipush 7
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.UNKNOWN:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            bipush 11
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.X86_64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            invokevirtual org.jruby.ext.ffi.Platform$CPU_TYPE.ordinal:()I
            iconst_2
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            dup
            putstatic org.jruby.ext.ffi.Platform.$SWITCH_TABLE$org$jruby$ext$ffi$Platform$CPU_TYPE:[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
}
SourceFile: "Platform.java"
NestMembers:
  org.jruby.ext.ffi.Platform$AIX  org.jruby.ext.ffi.Platform$CPU_TYPE  org.jruby.ext.ffi.Platform$Darwin  org.jruby.ext.ffi.Platform$Default  org.jruby.ext.ffi.Platform$Linux  org.jruby.ext.ffi.Platform$OS_TYPE  org.jruby.ext.ffi.Platform$SingletonHolder  org.jruby.ext.ffi.Platform$Supported  org.jruby.ext.ffi.Platform$Unsupported  org.jruby.ext.ffi.Platform$Windows
InnerClasses:
  private final AIX = org.jruby.ext.ffi.Platform$AIX of org.jruby.ext.ffi.Platform
  public final CPU_TYPE = org.jruby.ext.ffi.Platform$CPU_TYPE of org.jruby.ext.ffi.Platform
  private final Darwin = org.jruby.ext.ffi.Platform$Darwin of org.jruby.ext.ffi.Platform
  private final Default = org.jruby.ext.ffi.Platform$Default of org.jruby.ext.ffi.Platform
  private final Linux = org.jruby.ext.ffi.Platform$Linux of org.jruby.ext.ffi.Platform
  public final OS_TYPE = org.jruby.ext.ffi.Platform$OS_TYPE of org.jruby.ext.ffi.Platform
  private final SingletonHolder = org.jruby.ext.ffi.Platform$SingletonHolder of org.jruby.ext.ffi.Platform
  private Supported = org.jruby.ext.ffi.Platform$Supported of org.jruby.ext.ffi.Platform
  private Unsupported = org.jruby.ext.ffi.Platform$Unsupported of org.jruby.ext.ffi.Platform
  private Windows = org.jruby.ext.ffi.Platform$Windows of org.jruby.ext.ffi.Platform