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 46
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            putstatic org.jruby.ext.ffi.Platform.LOCALE:Ljava/util/Locale;
         1: .line 48
            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 49
            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 51
            invokestatic org.jruby.ext.ffi.Platform.determineArchDataModel:()I
            putstatic org.jruby.ext.ffi.Platform.ARCH_DATA_MODEL:I
         4: .line 53
            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 54
            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 55
            invokestatic org.jruby.ext.ffi.Platform.determineLibExt:()Ljava/lang/String;
            putstatic org.jruby.ext.ffi.Platform.LIBSUFFIX:Ljava/lang/String;
         9: .line 56
            invokestatic org.jruby.ext.ffi.Platform.determineLibC:()Ljava/lang/String;
            putstatic org.jruby.ext.ffi.Platform.LIBC:Ljava/lang/String;
        10: .line 60
            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 105
            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 106
            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 107
      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 108
      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 109
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$OS_TYPE.SOLARIS:Lorg/jruby/ext/ffi/Platform$OS_TYPE;
            areturn
         5: .line 111
      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 112
            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 113
            aload 1 /* os */
            areturn
        end local 1 // org.jruby.ext.ffi.Platform$OS_TYPE os
         9: .line 111
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        10: iload 2
            iload 3
            if_icmplt 6
        11: .line 116
            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 120
            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 122
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Darwin
            dup
            invokespecial org.jruby.ext.ffi.Platform$Darwin.<init>:()V
            areturn
         2: .line 124
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Linux
            dup
            invokespecial org.jruby.ext.ffi.Platform$Linux.<init>:()V
            areturn
         3: .line 126
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$AIX
            dup
            invokespecial org.jruby.ext.ffi.Platform$AIX.<init>:()V
            areturn
         4: .line 128
      StackMap locals:
      StackMap stack:
            new org.jruby.ext.ffi.Platform$Windows
            dup
            invokespecial org.jruby.ext.ffi.Platform$Windows.<init>:()V
            areturn
         5: .line 130
      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 132
      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 137
            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 138
            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 139
      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 140
      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 141
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.X86_64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
         5: .line 142
      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 143
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
         7: .line 144
      StackMap locals:
      StackMap stack:
            ldc "ppc64"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 145
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
         9: .line 146
      StackMap locals:
      StackMap stack:
            ldc "ppc64le"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 147
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.POWERPC64LE:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        11: .line 148
      StackMap locals:
      StackMap stack:
            ldc "sparc"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        12: .line 149
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.SPARC:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        13: .line 150
      StackMap locals:
      StackMap stack:
            ldc "sparcv9"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 151
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.SPARCV9:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        15: .line 152
      StackMap locals:
      StackMap stack:
            ldc "s390x"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        16: .line 153
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.S390X:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        17: .line 154
      StackMap locals:
      StackMap stack:
            ldc "arm"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 155
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.ARM:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        19: .line 156
      StackMap locals:
      StackMap stack:
            ldc "aarch64"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 157
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.AARCH64:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        21: .line 158
      StackMap locals:
      StackMap stack:
            ldc "universal"
            aload 0 /* archString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        22: .line 160
            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 161
            ldc "32"
            aload 1 /* bits */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        24: .line 162
            ldc "os.arch"
            ldc "i386"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        25: .line 163
            getstatic org.jruby.ext.ffi.Platform$CPU_TYPE.I386:Lorg/jruby/ext/ffi/Platform$CPU_TYPE;
            areturn
        26: .line 164
      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 165
            ldc "os.arch"
            ldc "x86_64"
            invokestatic java.lang.System.setProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            pop
        28: .line 166
            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 169
      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 173
            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 175
      StackMap locals:
      StackMap stack:
            ldc "msvcrt.dll"
            areturn
         2: .line 177
      StackMap locals:
      StackMap stack:
            ldc "libc.so.6"
            areturn
         3: .line 179
      StackMap locals:
      StackMap stack:
            getstatic org.jruby.ext.ffi.Platform.ARCH_DATA_MODEL:I
            bipush 32
            if_icmpne 5
         4: .line 180
            ldc "libc.a(shr.o)"
            areturn
         5: .line 182
      StackMap locals:
      StackMap stack:
            ldc "libc.a(shr_64.o)"
            areturn
         6: .line 185
      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 190
            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 192
      StackMap locals:
      StackMap stack:
            ldc "dll"
            areturn
         2: .line 194
      StackMap locals:
      StackMap stack:
            ldc "a"
            areturn
         3: .line 196
      StackMap locals:
      StackMap stack:
            ldc "dylib"
            areturn
         4: .line 198
      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 203
            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 204
            iload 0 /* dataModel */
            bipush 32
            if_icmpeq 8
            iload 0 /* dataModel */
            bipush 64
            if_icmpeq 8
         2: .line 205
            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 209
      StackMap locals: int
      StackMap stack:
            bipush 32
            istore 0 /* dataModel */
         4: .line 210
            goto 8
         5: .line 217
      StackMap locals:
      StackMap stack:
            bipush 64
            istore 0 /* dataModel */
         6: .line 218
            goto 8
         7: .line 220
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 0 /* dataModel */
         8: .line 223
      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 226
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            iconst_m1
            putfield org.jruby.ext.ffi.Platform.javaVersionMajor:I
         2: .line 227
            aload 0 /* this */
            getstatic org.jruby.ext.ffi.Platform.ARCH_DATA_MODEL:I
            putfield org.jruby.ext.ffi.Platform.addressSize:I
         3: .line 228
            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 229
            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 231
            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 233
      StackMap locals:
      StackMap stack:
            ldc ".*\\.dll$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        11: .line 234
            goto 17
        end local 2 // java.lang.String libpattern
        12: .line 236
      StackMap locals:
      StackMap stack:
            ldc "lib.*\\.(dylib|jnilib)$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        13: .line 237
            goto 17
        end local 2 // java.lang.String libpattern
        14: .line 239
      StackMap locals:
      StackMap stack:
            ldc "lib.*\\.a$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        15: .line 240
            goto 17
        end local 2 // java.lang.String libpattern
        16: .line 242
      StackMap locals:
      StackMap stack:
            ldc "lib.*\\.so.*$"
            astore 2 /* libpattern */
        start local 2 // java.lang.String libpattern
        17: .line 245
      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 246
            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 254
            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 263
            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 272
            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 281
            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 283
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 1 /* version */
        start local 1 // int version
         2: .line 285
            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 286
            aload 2 /* versionString */
            ifnull 13
         4: .line 288
            aload 2 /* versionString */
            ldc "-|\\+"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            iconst_0
            aaload
            astore 2 /* versionString */
         5: .line 289
            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 290
            aload 3 /* v */
            iconst_0
            aaload
            ldc "1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 292
            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 293
            goto 13
         9: .line 295
      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 298
            goto 13
      StackMap locals: org.jruby.ext.ffi.Platform int
      StackMap stack: java.lang.Exception
        11: pop
        12: .line 299
            iconst_0
            istore 1 /* version */
        13: .line 302
      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 305
            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 308
            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 311
            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 312
            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 313
            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 311
      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 316
            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 317
            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 318
            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 319
            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 320
            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 321
            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 322
            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 323
            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 324
            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 325
            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 326
            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 327
            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 328
            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 329
            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 330
            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 331
            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 332
            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 333
            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 334
            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 335
            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 336
            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 337
            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 338
            aload 2 /* module */
            ldc Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
        37: .line 339
            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 342
            aload 0 /* context */
            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.runtime.ThreadContext
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.runtime.ThreadContext int
         2: invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;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 346
            aload 0 /* context */
            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.runtime.ThreadContext
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.runtime.ThreadContext int
         2: invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;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 350
            aload 0 /* context */
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.isUnix:()Z
            invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;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 354
            aload 0 /* context */
            invokestatic org.jruby.ext.ffi.Platform.getPlatform:()Lorg/jruby/ext/ffi/Platform;
            invokevirtual org.jruby.ext.ffi.Platform.isBSD:()Z
            invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;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 358
            aload 0 /* context */
            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.runtime.ThreadContext
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.runtime.ThreadContext int
         2: invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;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 362
            aload 0 /* context */
            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.runtime.ThreadContext
         1: iconst_0
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.runtime.ThreadContext int
         2: invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;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 375
            aload 0 /* property */
            aload 1 /* defValue */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         1: areturn
         2: .line 376
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         3: .line 377
            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 386
            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 395
            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 404
            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 413
            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 420
            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 421
            aload 1 /* libName */
            areturn
         2: .line 423
      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 509
            aload 0 /* s1 */
            aload 1 /* s2 */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         1: .line 510
            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 511
            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 509
            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 44
            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 44
            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