final class org.apache.commons.crypto.OsInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.commons.crypto.OsInfo
  super_class: java.lang.Object
{
  private static final java.util.HashMap<java.lang.String, java.lang.String> archMapping;
    descriptor: Ljava/util/HashMap;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/String;>;

  static final java.lang.String X86;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "x86"

  static final java.lang.String X86_64;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "x86_64"

  static final java.lang.String IA64_32;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "ia64_32"

  static final java.lang.String IA64;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "ia64"

  static final java.lang.String PPC;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "ppc"

  static final java.lang.String PPC64;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "ppc64"

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 29
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
         1: .line 75
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "x86"
            ldc "x86"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 76
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "i386"
            ldc "x86"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 77
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "i486"
            ldc "x86"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 78
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "i586"
            ldc "x86"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 79
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "i686"
            ldc "x86"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 80
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "pentium"
            ldc "x86"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 83
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "x86_64"
            ldc "x86_64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 84
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "amd64"
            ldc "x86_64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 85
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "em64t"
            ldc "x86_64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 86
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "universal"
            ldc "x86_64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 89
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "ia64"
            ldc "ia64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 90
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "ia64w"
            ldc "ia64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 93
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "ia64_32"
            ldc "ia64_32"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 94
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "ia64n"
            ldc "ia64_32"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 97
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "ppc"
            ldc "ppc"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 98
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "power"
            ldc "ppc"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 99
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "powerpc"
            ldc "ppc"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 100
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "power_pc"
            ldc "ppc"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 101
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "power_rs"
            ldc "ppc"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 104
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "ppc64"
            ldc "ppc64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 105
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "power64"
            ldc "ppc64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 106
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "powerpc64"
            ldc "ppc64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 107
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "power_pc64"
            ldc "ppc64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 108
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            ldc "power_rs64"
            ldc "ppc64"
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 109
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.crypto.OsInfo this
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 71
            return
        end local 0 // org.apache.commons.crypto.OsInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/commons/crypto/OsInfo;

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 118
            aload 0 /* args */
            arraylength
            iconst_1
            if_icmplt 7
         1: .line 119
            ldc "--os"
            aload 0 /* args */
            iconst_0
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         2: .line 120
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic org.apache.commons.crypto.OsInfo.getOSName:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         3: .line 121
            return
         4: .line 122
      StackMap locals:
      StackMap stack:
            ldc "--arch"
            aload 0 /* args */
            iconst_0
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 123
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic org.apache.commons.crypto.OsInfo.getArchName:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         6: .line 124
            return
         7: .line 128
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokestatic org.apache.commons.crypto.OsInfo.getNativeLibFolderPathForCurrentOS:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         8: .line 129
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  args  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      args  

  static java.lang.String getNativeLibFolderPathForCurrentOS();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 137
            new java.lang.StringBuilder
            dup
            invokestatic org.apache.commons.crypto.OsInfo.getOSName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic org.apache.commons.crypto.OsInfo.getArchName:()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

  static java.lang.String getOSName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 146
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.apache.commons.crypto.OsInfo.translateOSNameToFolderName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static java.lang.String getArchName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=0
         0: .line 156
            ldc "os.arch"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* osArch */
        start local 0 // java.lang.String osArch
         1: .line 157
            aload 0 /* osArch */
            ldc "arm"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 19
         2: .line 158
            ldc "os.name"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            ldc "Linux"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 19
         3: .line 159
            ldc "java.home"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* javaHome */
        start local 1 // java.lang.String javaHome
         4: .line 162
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
         5: .line 163
            ldc "/bin/sh"
            aastore
            dup
            iconst_1
         6: .line 164
            ldc "-c"
            aastore
            dup
            iconst_2
         7: .line 165
            new java.lang.StringBuilder
            dup
            ldc "find '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 166
            aload 1 /* javaHome */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 167
            ldc "' -name 'libjvm.so' | head -1 | xargs readelf -A | "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 168
            ldc "grep 'Tag_ABI_VFP_args: VFP registers'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 165
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
        12: .line 162
            astore 2 /* cmdarray */
        start local 2 // java.lang.String[] cmdarray
        13: .line 169
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 2 /* cmdarray */
            invokevirtual java.lang.Runtime.exec:([Ljava/lang/String;)Ljava/lang/Process;
            invokevirtual java.lang.Process.waitFor:()I
            istore 3 /* exitCode */
        start local 3 // int exitCode
        14: .line 170
            iload 3 /* exitCode */
            ifne 22
        15: .line 171
            ldc "armhf"
            areturn
        end local 3 // int exitCode
        end local 2 // java.lang.String[] cmdarray
        16: .line 173
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.io.IOException
            pop
            goto 22
        17: .line 175
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
        end local 1 // java.lang.String javaHome
        18: .line 178
            goto 22
        19: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* osArch */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 1 /* lc */
        start local 1 // java.lang.String lc
        20: .line 180
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            aload 1 /* lc */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 22
        21: .line 181
            getstatic org.apache.commons.crypto.OsInfo.archMapping:Ljava/util/HashMap;
            aload 1 /* lc */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // java.lang.String lc
        22: .line 184
      StackMap locals:
      StackMap stack:
            aload 0 /* osArch */
            invokestatic org.apache.commons.crypto.OsInfo.translateArchNameToFolderName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String osArch
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1   23     0    osArch  Ljava/lang/String;
            4   18     1  javaHome  Ljava/lang/String;
           13   16     2  cmdarray  [Ljava/lang/String;
           14   16     3  exitCode  I
           20   22     1        lc  Ljava/lang/String;
      Exception table:
        from    to  target  type
           4    15      16  Class java.io.IOException
           4    15      17  Class java.lang.InterruptedException

  private static java.lang.String translateOSNameToFolderName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String osName
         0: .line 194
            aload 0 /* osName */
            ldc "Windows"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 2
         1: .line 195
            ldc "Windows"
            areturn
         2: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* osName */
            ldc "Mac"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 4
         3: .line 197
            ldc "Mac"
            areturn
         4: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* osName */
            ldc "Linux"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 6
         5: .line 199
            ldc "Linux"
            areturn
         6: .line 200
      StackMap locals:
      StackMap stack:
            aload 0 /* osName */
            ldc "AIX"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 8
         7: .line 201
            ldc "AIX"
            areturn
         8: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* osName */
            ldc "\\W"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String osName
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  osName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      osName  

  private static java.lang.String translateArchNameToFolderName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String archName
         0: .line 216
            aload 0 /* archName */
            ldc "\\W"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String archName
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  archName  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      archName  
}
SourceFile: "OsInfo.java"