public class com.android.internal.util.AsyncChannel
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.internal.util.AsyncChannel
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "AsyncChannel"

  private static final boolean DBG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

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

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

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

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

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

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

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

  private static java.lang.String[] sCmdToString;
    descriptor: [Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

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

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

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

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

  private com.android.internal.util.AsyncChannel$AsyncChannelConnection mConnection;
    descriptor: Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
    flags: (0x0002) ACC_PRIVATE

  private android.content.Context mSrcContext;
    descriptor: Landroid/content/Context;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Handler mSrcHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Messenger mSrcMessenger;
    descriptor: Landroid/os/Messenger;
    flags: (0x0002) ACC_PRIVATE

  private android.os.Messenger mDstMessenger;
    descriptor: Landroid/os/Messenger;
    flags: (0x0002) ACC_PRIVATE

  private com.android.internal.util.AsyncChannel$DeathMonitor mDeathMonitor;
    descriptor: Lcom/android/internal/util/AsyncChannel$DeathMonitor;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 154
            iconst_5
            anewarray java.lang.String
            putstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
         1: .line 156
            getstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
            iconst_0
            ldc "CMD_CHANNEL_HALF_CONNECTED"
            aastore
         2: .line 157
            getstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
            iconst_1
            ldc "CMD_CHANNEL_FULL_CONNECTION"
            aastore
         3: .line 158
            getstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
            iconst_2
            ldc "CMD_CHANNEL_FULLY_CONNECTED"
            aastore
         4: .line 159
            getstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
            iconst_3
            ldc "CMD_CHANNEL_DISCONNECT"
            aastore
         5: .line 160
            getstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
            iconst_4
            ldc "CMD_CHANNEL_DISCONNECTED"
            aastore
         6: .line 184
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected static java.lang.String cmdToString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int cmd
         0: .line 163
            iload 0 /* cmd */
            ldc 69632
            isub
            istore 0 /* cmd */
         1: .line 164
            iload 0 /* cmd */
            iflt 3
            iload 0 /* cmd */
            getstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
            arraylength
            if_icmpge 3
         2: .line 165
            getstatic com.android.internal.util.AsyncChannel.sCmdToString:[Ljava/lang/String;
            iload 0 /* cmd */
            aaload
            areturn
         3: .line 167
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // int cmd
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0   cmd  I
    MethodParameters:
      Name  Flags
      cmd   

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.internal.util.AsyncChannel this
         0: .line 207
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 208
            return
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/android/internal/util/AsyncChannel;

  public int connectSrcHandlerToPackageSync(android.content.Context, android.os.Handler, java.lang.String, java.lang.String);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // java.lang.String dstPackageName
        start local 4 // java.lang.String dstClassName
         0: .line 226
            aload 0 /* this */
            new com.android.internal.util.AsyncChannel$AsyncChannelConnection
            dup
            aload 0 /* this */
            invokespecial com.android.internal.util.AsyncChannel$AsyncChannelConnection.<init>:(Lcom/android/internal/util/AsyncChannel;)V
            putfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
         1: .line 229
            aload 0 /* this */
            aload 1 /* srcContext */
            putfield com.android.internal.util.AsyncChannel.mSrcContext:Landroid/content/Context;
         2: .line 230
            aload 0 /* this */
            aload 2 /* srcHandler */
            putfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
         3: .line 231
            aload 0 /* this */
            new android.os.Messenger
            dup
            aload 2 /* srcHandler */
            invokespecial android.os.Messenger.<init>:(Landroid/os/Handler;)V
            putfield com.android.internal.util.AsyncChannel.mSrcMessenger:Landroid/os/Messenger;
         4: .line 238
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
         5: .line 241
            new android.content.Intent
            dup
            ldc "android.intent.action.MAIN"
            invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
            astore 5 /* intent */
        start local 5 // android.content.Intent intent
         6: .line 242
            aload 5 /* intent */
            aload 3 /* dstPackageName */
            aload 4 /* dstClassName */
            invokevirtual android.content.Intent.setClassName:(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
            pop
         7: .line 243
            aload 1 /* srcContext */
            aload 5 /* intent */
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
            iconst_1
            invokevirtual android.content.Context.bindService:(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
            istore 6 /* result */
        start local 6 // boolean result
         8: .line 245
            iload 6 /* result */
            ifeq 9
            iconst_0
            goto 10
      StackMap locals: android.content.Intent int
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 6 // boolean result
        end local 5 // android.content.Intent intent
        end local 4 // java.lang.String dstClassName
        end local 3 // java.lang.String dstPackageName
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/android/internal/util/AsyncChannel;
            0   11     1      srcContext  Landroid/content/Context;
            0   11     2      srcHandler  Landroid/os/Handler;
            0   11     3  dstPackageName  Ljava/lang/String;
            0   11     4    dstClassName  Ljava/lang/String;
            6   11     5          intent  Landroid/content/Intent;
            8   11     6          result  Z
    MethodParameters:
                Name  Flags
      srcContext      
      srcHandler      
      dstPackageName  
      dstClassName    

  public int connectSync(android.content.Context, android.os.Handler, android.os.Messenger);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // android.os.Messenger dstMessenger
         0: .line 262
            aload 0 /* this */
            aload 1 /* srcContext */
            aload 2 /* srcHandler */
            aload 3 /* dstMessenger */
            invokevirtual com.android.internal.util.AsyncChannel.connected:(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
         1: .line 265
            iconst_0
            ireturn
        end local 3 // android.os.Messenger dstMessenger
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/android/internal/util/AsyncChannel;
            0    2     1    srcContext  Landroid/content/Context;
            0    2     2    srcHandler  Landroid/os/Handler;
            0    2     3  dstMessenger  Landroid/os/Messenger;
    MethodParameters:
              Name  Flags
      srcContext    
      srcHandler    
      dstMessenger  

  public int connectSync(android.content.Context, android.os.Handler, android.os.Handler);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // android.os.Handler dstHandler
         0: .line 279
            aload 0 /* this */
            aload 1 /* srcContext */
            aload 2 /* srcHandler */
            new android.os.Messenger
            dup
            aload 3 /* dstHandler */
            invokespecial android.os.Messenger.<init>:(Landroid/os/Handler;)V
            invokevirtual com.android.internal.util.AsyncChannel.connectSync:(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)I
            ireturn
        end local 3 // android.os.Handler dstHandler
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/android/internal/util/AsyncChannel;
            0    1     1  srcContext  Landroid/content/Context;
            0    1     2  srcHandler  Landroid/os/Handler;
            0    1     3  dstHandler  Landroid/os/Handler;
    MethodParameters:
            Name  Flags
      srcContext  
      srcHandler  
      dstHandler  

  public int fullyConnectSync(android.content.Context, android.os.Handler, android.os.Handler);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // android.os.Handler dstHandler
         0: .line 293
            aload 0 /* this */
            aload 1 /* srcContext */
            aload 2 /* srcHandler */
            aload 3 /* dstHandler */
            invokevirtual com.android.internal.util.AsyncChannel.connectSync:(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)I
            istore 4 /* status */
        start local 4 // int status
         1: .line 294
            iload 4 /* status */
            ifne 4
         2: .line 295
            aload 0 /* this */
            ldc 69633
            invokevirtual com.android.internal.util.AsyncChannel.sendMessageSynchronously:(I)Landroid/os/Message;
            astore 5 /* response */
        start local 5 // android.os.Message response
         3: .line 296
            aload 5 /* response */
            getfield android.os.Message.arg1:I
            istore 4 /* status */
        end local 5 // android.os.Message response
         4: .line 298
      StackMap locals: int
      StackMap stack:
            iload 4 /* status */
            ireturn
        end local 4 // int status
        end local 3 // android.os.Handler dstHandler
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/android/internal/util/AsyncChannel;
            0    5     1  srcContext  Landroid/content/Context;
            0    5     2  srcHandler  Landroid/os/Handler;
            0    5     3  dstHandler  Landroid/os/Handler;
            1    5     4      status  I
            3    4     5    response  Landroid/os/Message;
    MethodParameters:
            Name  Flags
      srcContext  
      srcHandler  
      dstHandler  

  public void connect(android.content.Context, android.os.Handler, java.lang.String, java.lang.String);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // java.lang.String dstPackageName
        start local 4 // java.lang.String dstClassName
         0: .line 341
            new com.android.internal.util.AsyncChannel$1ConnectAsync
            dup
            aload 0 /* this */
            aload 1 /* srcContext */
            aload 2 /* srcHandler */
            aload 3 /* dstPackageName */
            aload 4 /* dstClassName */
            invokespecial com.android.internal.util.AsyncChannel$1ConnectAsync.<init>:(Lcom/android/internal/util/AsyncChannel;Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* ca */
        start local 5 // com.android.internal.util.AsyncChannel$1ConnectAsync ca
         1: .line 342
            new java.lang.Thread
            dup
            aload 5 /* ca */
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            invokevirtual java.lang.Thread.start:()V
         2: .line 345
            return
        end local 5 // com.android.internal.util.AsyncChannel$1ConnectAsync ca
        end local 4 // java.lang.String dstClassName
        end local 3 // java.lang.String dstPackageName
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/android/internal/util/AsyncChannel;
            0    3     1      srcContext  Landroid/content/Context;
            0    3     2      srcHandler  Landroid/os/Handler;
            0    3     3  dstPackageName  Ljava/lang/String;
            0    3     4    dstClassName  Ljava/lang/String;
            1    3     5              ca  Lcom/android/internal/util/AsyncChannel$1ConnectAsync;
    MethodParameters:
                Name  Flags
      srcContext      
      srcHandler      
      dstPackageName  
      dstClassName    

  public void connect(android.content.Context, android.os.Handler, java.lang.Class<?>);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // java.lang.Class klass
         0: .line 359
            aload 0 /* this */
            aload 1 /* srcContext */
            aload 2 /* srcHandler */
            aload 3 /* klass */
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            aload 3 /* klass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual com.android.internal.util.AsyncChannel.connect:(Landroid/content/Context;Landroid/os/Handler;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 360
            return
        end local 3 // java.lang.Class klass
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/android/internal/util/AsyncChannel;
            0    2     1  srcContext  Landroid/content/Context;
            0    2     2  srcHandler  Landroid/os/Handler;
            0    2     3       klass  Ljava/lang/Class<*>;
    Signature: (Landroid/content/Context;Landroid/os/Handler;Ljava/lang/Class<*>;)V
    MethodParameters:
            Name  Flags
      srcContext  
      srcHandler  
      klass       

  public void connect(android.content.Context, android.os.Handler, android.os.Messenger);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // android.os.Messenger dstMessenger
         0: .line 377
            aload 0 /* this */
            aload 1 /* srcContext */
            aload 2 /* srcHandler */
            aload 3 /* dstMessenger */
            invokevirtual com.android.internal.util.AsyncChannel.connected:(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
         1: .line 380
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.internal.util.AsyncChannel.replyHalfConnected:(I)V
         2: .line 383
            return
        end local 3 // android.os.Messenger dstMessenger
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/android/internal/util/AsyncChannel;
            0    3     1    srcContext  Landroid/content/Context;
            0    3     2    srcHandler  Landroid/os/Handler;
            0    3     3  dstMessenger  Landroid/os/Messenger;
    MethodParameters:
              Name  Flags
      srcContext    
      srcHandler    
      dstMessenger  

  public void connected(android.content.Context, android.os.Handler, android.os.Messenger);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // android.os.Messenger dstMessenger
         0: .line 399
            aload 0 /* this */
            aload 1 /* srcContext */
            putfield com.android.internal.util.AsyncChannel.mSrcContext:Landroid/content/Context;
         1: .line 400
            aload 0 /* this */
            aload 2 /* srcHandler */
            putfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
         2: .line 401
            aload 0 /* this */
            new android.os.Messenger
            dup
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
            invokespecial android.os.Messenger.<init>:(Landroid/os/Handler;)V
            putfield com.android.internal.util.AsyncChannel.mSrcMessenger:Landroid/os/Messenger;
         3: .line 404
            aload 0 /* this */
            aload 3 /* dstMessenger */
            putfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
         4: .line 406
            return
        end local 3 // android.os.Messenger dstMessenger
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/android/internal/util/AsyncChannel;
            0    5     1    srcContext  Landroid/content/Context;
            0    5     2    srcHandler  Landroid/os/Handler;
            0    5     3  dstMessenger  Landroid/os/Messenger;
    MethodParameters:
              Name  Flags
      srcContext    
      srcHandler    
      dstMessenger  

  public void connect(android.content.Context, android.os.Handler, android.os.Handler);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.content.Context srcContext
        start local 2 // android.os.Handler srcHandler
        start local 3 // android.os.Handler dstHandler
         0: .line 417
            aload 0 /* this */
            aload 1 /* srcContext */
            aload 2 /* srcHandler */
            new android.os.Messenger
            dup
            aload 3 /* dstHandler */
            invokespecial android.os.Messenger.<init>:(Landroid/os/Handler;)V
            invokevirtual com.android.internal.util.AsyncChannel.connect:(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
         1: .line 418
            return
        end local 3 // android.os.Handler dstHandler
        end local 2 // android.os.Handler srcHandler
        end local 1 // android.content.Context srcContext
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/android/internal/util/AsyncChannel;
            0    2     1  srcContext  Landroid/content/Context;
            0    2     2  srcHandler  Landroid/os/Handler;
            0    2     3  dstHandler  Landroid/os/Handler;
    MethodParameters:
            Name  Flags
      srcContext  
      srcHandler  
      dstHandler  

  public void connect(com.android.internal.util.AsyncService, android.os.Messenger);
    descriptor: (Lcom/android/internal/util/AsyncService;Landroid/os/Messenger;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // com.android.internal.util.AsyncService srcAsyncService
        start local 2 // android.os.Messenger dstMessenger
         0: .line 431
            aload 0 /* this */
            aload 1 /* srcAsyncService */
            aload 1 /* srcAsyncService */
            invokevirtual com.android.internal.util.AsyncService.getHandler:()Landroid/os/Handler;
            aload 2 /* dstMessenger */
            invokevirtual com.android.internal.util.AsyncChannel.connect:(Landroid/content/Context;Landroid/os/Handler;Landroid/os/Messenger;)V
         1: .line 432
            return
        end local 2 // android.os.Messenger dstMessenger
        end local 1 // com.android.internal.util.AsyncService srcAsyncService
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/android/internal/util/AsyncChannel;
            0    2     1  srcAsyncService  Lcom/android/internal/util/AsyncService;
            0    2     2     dstMessenger  Landroid/os/Messenger;
    MethodParameters:
                 Name  Flags
      srcAsyncService  
      dstMessenger     

  public void disconnected();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.android.internal.util.AsyncChannel this
         0: .line 438
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mSrcContext:Landroid/content/Context;
         1: .line 439
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
         2: .line 440
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mSrcMessenger:Landroid/os/Messenger;
         3: .line 441
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
         4: .line 442
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
         5: .line 443
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
         6: .line 444
            return
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/android/internal/util/AsyncChannel;

  public void disconnect();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.android.internal.util.AsyncChannel this
         0: .line 450
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
            ifnull 3
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcContext:Landroid/content/Context;
            ifnull 3
         1: .line 451
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcContext:Landroid/content/Context;
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
            invokevirtual android.content.Context.unbindService:(Landroid/content/ServiceConnection;)V
         2: .line 452
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
         3: .line 457
      StackMap locals:
      StackMap stack:
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 1 /* msg */
        start local 1 // android.os.Message msg
         4: .line 458
            aload 1 /* msg */
            ldc 69636
            putfield android.os.Message.what:I
         5: .line 459
            aload 1 /* msg */
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcMessenger:Landroid/os/Messenger;
            putfield android.os.Message.replyTo:Landroid/os/Messenger;
         6: .line 460
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            aload 1 /* msg */
            invokevirtual android.os.Messenger.send:(Landroid/os/Message;)V
        end local 1 // android.os.Message msg
         7: .line 461
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Exception
         8: pop
         9: .line 464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.android.internal.util.AsyncChannel.replyDisconnected:(I)V
        10: .line 465
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
        11: .line 467
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
            ifnonnull 14
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            ifnull 14
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
            ifnull 14
        12: .line 468
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            invokevirtual android.os.Messenger.getBinder:()Landroid/os/IBinder;
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
            iconst_0
            invokeinterface android.os.IBinder.unlinkToDeath:(Landroid/os/IBinder$DeathRecipient;I)Z
            pop
        13: .line 469
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
        14: .line 471
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lcom/android/internal/util/AsyncChannel;
            4    7     1   msg  Landroid/os/Message;
      Exception table:
        from    to  target  type
           3     7       8  Class java.lang.Exception

  public void sendMessage(android.os.Message);
    descriptor: (Landroid/os/Message;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message msg
         0: .line 479
            aload 1 /* msg */
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcMessenger:Landroid/os/Messenger;
            putfield android.os.Message.replyTo:Landroid/os/Messenger;
         1: .line 481
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            aload 1 /* msg */
            invokevirtual android.os.Messenger.send:(Landroid/os/Message;)V
         2: .line 482
            goto 5
      StackMap locals:
      StackMap stack: android.os.RemoteException
         3: pop
         4: .line 483
            aload 0 /* this */
            iconst_2
            invokevirtual com.android.internal.util.AsyncChannel.replyDisconnected:(I)V
         5: .line 485
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.Message msg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/android/internal/util/AsyncChannel;
            0    6     1   msg  Landroid/os/Message;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      msg   

  public void sendMessage(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
         0: .line 493
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 2 /* msg */
        start local 2 // android.os.Message msg
         1: .line 494
            aload 2 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 495
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessage:(Landroid/os/Message;)V
         3: .line 496
            return
        end local 2 // android.os.Message msg
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/android/internal/util/AsyncChannel;
            0    4     1  what  I
            1    4     2   msg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  

  public void sendMessage(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // int arg1
         0: .line 505
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 3 /* msg */
        start local 3 // android.os.Message msg
         1: .line 506
            aload 3 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 507
            aload 3 /* msg */
            iload 2 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 508
            aload 0 /* this */
            aload 3 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessage:(Landroid/os/Message;)V
         4: .line 509
            return
        end local 3 // android.os.Message msg
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/android/internal/util/AsyncChannel;
            0    5     1  what  I
            0    5     2  arg1  I
            1    5     3   msg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      arg1  

  public void sendMessage(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // int arg1
        start local 3 // int arg2
         0: .line 519
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 4 /* msg */
        start local 4 // android.os.Message msg
         1: .line 520
            aload 4 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 521
            aload 4 /* msg */
            iload 2 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 522
            aload 4 /* msg */
            iload 3 /* arg2 */
            putfield android.os.Message.arg2:I
         4: .line 523
            aload 0 /* this */
            aload 4 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessage:(Landroid/os/Message;)V
         5: .line 524
            return
        end local 4 // android.os.Message msg
        end local 3 // int arg2
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/android/internal/util/AsyncChannel;
            0    6     1  what  I
            0    6     2  arg1  I
            0    6     3  arg2  I
            1    6     4   msg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      arg1  
      arg2  

  public void sendMessage(int, int, int, java.lang.Object);
    descriptor: (IIILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=5
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // int arg1
        start local 3 // int arg2
        start local 4 // java.lang.Object obj
         0: .line 535
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 5 /* msg */
        start local 5 // android.os.Message msg
         1: .line 536
            aload 5 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 537
            aload 5 /* msg */
            iload 2 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 538
            aload 5 /* msg */
            iload 3 /* arg2 */
            putfield android.os.Message.arg2:I
         4: .line 539
            aload 5 /* msg */
            aload 4 /* obj */
            putfield android.os.Message.obj:Ljava/lang/Object;
         5: .line 540
            aload 0 /* this */
            aload 5 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessage:(Landroid/os/Message;)V
         6: .line 541
            return
        end local 5 // android.os.Message msg
        end local 4 // java.lang.Object obj
        end local 3 // int arg2
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/android/internal/util/AsyncChannel;
            0    7     1  what  I
            0    7     2  arg1  I
            0    7     3  arg2  I
            0    7     4   obj  Ljava/lang/Object;
            1    7     5   msg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      arg1  
      arg2  
      obj   

  public void sendMessage(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // java.lang.Object obj
         0: .line 550
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 3 /* msg */
        start local 3 // android.os.Message msg
         1: .line 551
            aload 3 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 552
            aload 3 /* msg */
            aload 2 /* obj */
            putfield android.os.Message.obj:Ljava/lang/Object;
         3: .line 553
            aload 0 /* this */
            aload 3 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessage:(Landroid/os/Message;)V
         4: .line 554
            return
        end local 3 // android.os.Message msg
        end local 2 // java.lang.Object obj
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/android/internal/util/AsyncChannel;
            0    5     1  what  I
            0    5     2   obj  Ljava/lang/Object;
            1    5     3   msg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      obj   

  public void replyToMessage(android.os.Message, android.os.Message);
    descriptor: (Landroid/os/Message;Landroid/os/Message;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message srcMsg
        start local 2 // android.os.Message dstMsg
         0: .line 564
            aload 2 /* dstMsg */
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcMessenger:Landroid/os/Messenger;
            putfield android.os.Message.replyTo:Landroid/os/Messenger;
         1: .line 565
            aload 1 /* srcMsg */
            getfield android.os.Message.replyTo:Landroid/os/Messenger;
            aload 2 /* dstMsg */
            invokevirtual android.os.Messenger.send:(Landroid/os/Message;)V
         2: .line 566
            goto 6
      StackMap locals:
      StackMap stack: android.os.RemoteException
         3: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 567
            new java.lang.StringBuilder
            dup
            ldc "TODO: handle replyToMessage RemoteException"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.android.internal.util.AsyncChannel.log:(Ljava/lang/String;)V
         5: .line 568
            aload 3 /* e */
            invokevirtual android.os.RemoteException.printStackTrace:()V
        end local 3 // android.os.RemoteException e
         6: .line 570
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Message dstMsg
        end local 1 // android.os.Message srcMsg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/android/internal/util/AsyncChannel;
            0    7     1  srcMsg  Landroid/os/Message;
            0    7     2  dstMsg  Landroid/os/Message;
            4    6     3       e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     2       3  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      srcMsg  
      dstMsg  

  public void replyToMessage(android.os.Message, int);
    descriptor: (Landroid/os/Message;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message srcMsg
        start local 2 // int what
         0: .line 579
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 3 /* msg */
        start local 3 // android.os.Message msg
         1: .line 580
            aload 3 /* msg */
            iload 2 /* what */
            putfield android.os.Message.what:I
         2: .line 581
            aload 0 /* this */
            aload 1 /* srcMsg */
            aload 3 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.replyToMessage:(Landroid/os/Message;Landroid/os/Message;)V
         3: .line 582
            return
        end local 3 // android.os.Message msg
        end local 2 // int what
        end local 1 // android.os.Message srcMsg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/android/internal/util/AsyncChannel;
            0    4     1  srcMsg  Landroid/os/Message;
            0    4     2    what  I
            1    4     3     msg  Landroid/os/Message;
    MethodParameters:
        Name  Flags
      srcMsg  
      what    

  public void replyToMessage(android.os.Message, int, int);
    descriptor: (Landroid/os/Message;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message srcMsg
        start local 2 // int what
        start local 3 // int arg1
         0: .line 592
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 4 /* msg */
        start local 4 // android.os.Message msg
         1: .line 593
            aload 4 /* msg */
            iload 2 /* what */
            putfield android.os.Message.what:I
         2: .line 594
            aload 4 /* msg */
            iload 3 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 595
            aload 0 /* this */
            aload 1 /* srcMsg */
            aload 4 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.replyToMessage:(Landroid/os/Message;Landroid/os/Message;)V
         4: .line 596
            return
        end local 4 // android.os.Message msg
        end local 3 // int arg1
        end local 2 // int what
        end local 1 // android.os.Message srcMsg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/util/AsyncChannel;
            0    5     1  srcMsg  Landroid/os/Message;
            0    5     2    what  I
            0    5     3    arg1  I
            1    5     4     msg  Landroid/os/Message;
    MethodParameters:
        Name  Flags
      srcMsg  
      what    
      arg1    

  public void replyToMessage(android.os.Message, int, int, int);
    descriptor: (Landroid/os/Message;III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message srcMsg
        start local 2 // int what
        start local 3 // int arg1
        start local 4 // int arg2
         0: .line 607
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 5 /* msg */
        start local 5 // android.os.Message msg
         1: .line 608
            aload 5 /* msg */
            iload 2 /* what */
            putfield android.os.Message.what:I
         2: .line 609
            aload 5 /* msg */
            iload 3 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 610
            aload 5 /* msg */
            iload 4 /* arg2 */
            putfield android.os.Message.arg2:I
         4: .line 611
            aload 0 /* this */
            aload 1 /* srcMsg */
            aload 5 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.replyToMessage:(Landroid/os/Message;Landroid/os/Message;)V
         5: .line 612
            return
        end local 5 // android.os.Message msg
        end local 4 // int arg2
        end local 3 // int arg1
        end local 2 // int what
        end local 1 // android.os.Message srcMsg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/android/internal/util/AsyncChannel;
            0    6     1  srcMsg  Landroid/os/Message;
            0    6     2    what  I
            0    6     3    arg1  I
            0    6     4    arg2  I
            1    6     5     msg  Landroid/os/Message;
    MethodParameters:
        Name  Flags
      srcMsg  
      what    
      arg1    
      arg2    

  public void replyToMessage(android.os.Message, int, int, int, java.lang.Object);
    descriptor: (Landroid/os/Message;IIILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=6
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message srcMsg
        start local 2 // int what
        start local 3 // int arg1
        start local 4 // int arg2
        start local 5 // java.lang.Object obj
         0: .line 624
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 6 /* msg */
        start local 6 // android.os.Message msg
         1: .line 625
            aload 6 /* msg */
            iload 2 /* what */
            putfield android.os.Message.what:I
         2: .line 626
            aload 6 /* msg */
            iload 3 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 627
            aload 6 /* msg */
            iload 4 /* arg2 */
            putfield android.os.Message.arg2:I
         4: .line 628
            aload 6 /* msg */
            aload 5 /* obj */
            putfield android.os.Message.obj:Ljava/lang/Object;
         5: .line 629
            aload 0 /* this */
            aload 1 /* srcMsg */
            aload 6 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.replyToMessage:(Landroid/os/Message;Landroid/os/Message;)V
         6: .line 630
            return
        end local 6 // android.os.Message msg
        end local 5 // java.lang.Object obj
        end local 4 // int arg2
        end local 3 // int arg1
        end local 2 // int what
        end local 1 // android.os.Message srcMsg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/android/internal/util/AsyncChannel;
            0    7     1  srcMsg  Landroid/os/Message;
            0    7     2    what  I
            0    7     3    arg1  I
            0    7     4    arg2  I
            0    7     5     obj  Ljava/lang/Object;
            1    7     6     msg  Landroid/os/Message;
    MethodParameters:
        Name  Flags
      srcMsg  
      what    
      arg1    
      arg2    
      obj     

  public void replyToMessage(android.os.Message, int, java.lang.Object);
    descriptor: (Landroid/os/Message;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message srcMsg
        start local 2 // int what
        start local 3 // java.lang.Object obj
         0: .line 640
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 4 /* msg */
        start local 4 // android.os.Message msg
         1: .line 641
            aload 4 /* msg */
            iload 2 /* what */
            putfield android.os.Message.what:I
         2: .line 642
            aload 4 /* msg */
            aload 3 /* obj */
            putfield android.os.Message.obj:Ljava/lang/Object;
         3: .line 643
            aload 0 /* this */
            aload 1 /* srcMsg */
            aload 4 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.replyToMessage:(Landroid/os/Message;Landroid/os/Message;)V
         4: .line 644
            return
        end local 4 // android.os.Message msg
        end local 3 // java.lang.Object obj
        end local 2 // int what
        end local 1 // android.os.Message srcMsg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/android/internal/util/AsyncChannel;
            0    5     1  srcMsg  Landroid/os/Message;
            0    5     2    what  I
            0    5     3     obj  Ljava/lang/Object;
            1    5     4     msg  Landroid/os/Message;
    MethodParameters:
        Name  Flags
      srcMsg  
      what    
      obj     

  public android.os.Message sendMessageSynchronously(android.os.Message);
    descriptor: (Landroid/os/Message;)Landroid/os/Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // android.os.Message msg
         0: .line 653
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            aload 1 /* msg */
            invokestatic com.android.internal.util.AsyncChannel$SyncMessenger.sendMessageSynchronously:(Landroid/os/Messenger;Landroid/os/Message;)Landroid/os/Message;
            astore 2 /* resultMsg */
        start local 2 // android.os.Message resultMsg
         1: .line 654
            aload 2 /* resultMsg */
            areturn
        end local 2 // android.os.Message resultMsg
        end local 1 // android.os.Message msg
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lcom/android/internal/util/AsyncChannel;
            0    2     1        msg  Landroid/os/Message;
            1    2     2  resultMsg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      msg   

  public android.os.Message sendMessageSynchronously(int);
    descriptor: (I)Landroid/os/Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
         0: .line 664
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 2 /* msg */
        start local 2 // android.os.Message msg
         1: .line 665
            aload 2 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 666
            aload 0 /* this */
            aload 2 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessageSynchronously:(Landroid/os/Message;)Landroid/os/Message;
            astore 3 /* resultMsg */
        start local 3 // android.os.Message resultMsg
         3: .line 667
            aload 3 /* resultMsg */
            areturn
        end local 3 // android.os.Message resultMsg
        end local 2 // android.os.Message msg
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lcom/android/internal/util/AsyncChannel;
            0    4     1       what  I
            1    4     2        msg  Landroid/os/Message;
            3    4     3  resultMsg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  

  public android.os.Message sendMessageSynchronously(int, int);
    descriptor: (II)Landroid/os/Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // int arg1
         0: .line 678
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 3 /* msg */
        start local 3 // android.os.Message msg
         1: .line 679
            aload 3 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 680
            aload 3 /* msg */
            iload 2 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 681
            aload 0 /* this */
            aload 3 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessageSynchronously:(Landroid/os/Message;)Landroid/os/Message;
            astore 4 /* resultMsg */
        start local 4 // android.os.Message resultMsg
         4: .line 682
            aload 4 /* resultMsg */
            areturn
        end local 4 // android.os.Message resultMsg
        end local 3 // android.os.Message msg
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/AsyncChannel;
            0    5     1       what  I
            0    5     2       arg1  I
            1    5     3        msg  Landroid/os/Message;
            4    5     4  resultMsg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      arg1  

  public android.os.Message sendMessageSynchronously(int, int, int);
    descriptor: (III)Landroid/os/Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // int arg1
        start local 3 // int arg2
         0: .line 694
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 4 /* msg */
        start local 4 // android.os.Message msg
         1: .line 695
            aload 4 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 696
            aload 4 /* msg */
            iload 2 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 697
            aload 4 /* msg */
            iload 3 /* arg2 */
            putfield android.os.Message.arg2:I
         4: .line 698
            aload 0 /* this */
            aload 4 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessageSynchronously:(Landroid/os/Message;)Landroid/os/Message;
            astore 5 /* resultMsg */
        start local 5 // android.os.Message resultMsg
         5: .line 699
            aload 5 /* resultMsg */
            areturn
        end local 5 // android.os.Message resultMsg
        end local 4 // android.os.Message msg
        end local 3 // int arg2
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/android/internal/util/AsyncChannel;
            0    6     1       what  I
            0    6     2       arg1  I
            0    6     3       arg2  I
            1    6     4        msg  Landroid/os/Message;
            5    6     5  resultMsg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      arg1  
      arg2  

  public android.os.Message sendMessageSynchronously(int, int, int, java.lang.Object);
    descriptor: (IIILjava/lang/Object;)Landroid/os/Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=5
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // int arg1
        start local 3 // int arg2
        start local 4 // java.lang.Object obj
         0: .line 712
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 5 /* msg */
        start local 5 // android.os.Message msg
         1: .line 713
            aload 5 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 714
            aload 5 /* msg */
            iload 2 /* arg1 */
            putfield android.os.Message.arg1:I
         3: .line 715
            aload 5 /* msg */
            iload 3 /* arg2 */
            putfield android.os.Message.arg2:I
         4: .line 716
            aload 5 /* msg */
            aload 4 /* obj */
            putfield android.os.Message.obj:Ljava/lang/Object;
         5: .line 717
            aload 0 /* this */
            aload 5 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessageSynchronously:(Landroid/os/Message;)Landroid/os/Message;
            astore 6 /* resultMsg */
        start local 6 // android.os.Message resultMsg
         6: .line 718
            aload 6 /* resultMsg */
            areturn
        end local 6 // android.os.Message resultMsg
        end local 5 // android.os.Message msg
        end local 4 // java.lang.Object obj
        end local 3 // int arg2
        end local 2 // int arg1
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/android/internal/util/AsyncChannel;
            0    7     1       what  I
            0    7     2       arg1  I
            0    7     3       arg2  I
            0    7     4        obj  Ljava/lang/Object;
            1    7     5        msg  Landroid/os/Message;
            6    7     6  resultMsg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      arg1  
      arg2  
      obj   

  public android.os.Message sendMessageSynchronously(int, java.lang.Object);
    descriptor: (ILjava/lang/Object;)Landroid/os/Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int what
        start local 2 // java.lang.Object obj
         0: .line 729
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 3 /* msg */
        start local 3 // android.os.Message msg
         1: .line 730
            aload 3 /* msg */
            iload 1 /* what */
            putfield android.os.Message.what:I
         2: .line 731
            aload 3 /* msg */
            aload 2 /* obj */
            putfield android.os.Message.obj:Ljava/lang/Object;
         3: .line 732
            aload 0 /* this */
            aload 3 /* msg */
            invokevirtual com.android.internal.util.AsyncChannel.sendMessageSynchronously:(Landroid/os/Message;)Landroid/os/Message;
            astore 4 /* resultMsg */
        start local 4 // android.os.Message resultMsg
         4: .line 733
            aload 4 /* resultMsg */
            areturn
        end local 4 // android.os.Message resultMsg
        end local 3 // android.os.Message msg
        end local 2 // java.lang.Object obj
        end local 1 // int what
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lcom/android/internal/util/AsyncChannel;
            0    5     1       what  I
            0    5     2        obj  Ljava/lang/Object;
            1    5     3        msg  Landroid/os/Message;
            4    5     4  resultMsg  Landroid/os/Message;
    MethodParameters:
      Name  Flags
      what  
      obj   

  private void replyHalfConnected(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int status
         0: .line 847
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
            ldc 69632
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
            astore 2 /* msg */
        start local 2 // android.os.Message msg
         1: .line 848
            aload 2 /* msg */
            iload 1 /* status */
            putfield android.os.Message.arg1:I
         2: .line 849
            aload 2 /* msg */
            aload 0 /* this */
            putfield android.os.Message.obj:Ljava/lang/Object;
         3: .line 850
            aload 2 /* msg */
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            putfield android.os.Message.replyTo:Landroid/os/Messenger;
         4: .line 851
            aload 0 /* this */
            invokevirtual com.android.internal.util.AsyncChannel.linkToDeathMonitor:()Z
            ifne 6
         5: .line 853
            aload 2 /* msg */
            iconst_1
            putfield android.os.Message.arg1:I
         6: .line 856
      StackMap locals: android.os.Message
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
            aload 2 /* msg */
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         7: .line 857
            return
        end local 2 // android.os.Message msg
        end local 1 // int status
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/android/internal/util/AsyncChannel;
            0    8     1  status  I
            1    8     2     msg  Landroid/os/Message;
    MethodParameters:
        Name  Flags
      status  

  private boolean linkToDeathMonitor();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.android.internal.util.AsyncChannel this
         0: .line 865
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mConnection:Lcom/android/internal/util/AsyncChannel$AsyncChannelConnection;
            ifnonnull 7
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
            ifnonnull 7
         1: .line 866
            aload 0 /* this */
            new com.android.internal.util.AsyncChannel$DeathMonitor
            dup
            aload 0 /* this */
            invokespecial com.android.internal.util.AsyncChannel$DeathMonitor.<init>:(Lcom/android/internal/util/AsyncChannel;)V
            putfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
         2: .line 868
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            invokevirtual android.os.Messenger.getBinder:()Landroid/os/IBinder;
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
            iconst_0
            invokeinterface android.os.IBinder.linkToDeath:(Landroid/os/IBinder$DeathRecipient;I)V
         3: .line 869
            goto 7
      StackMap locals:
      StackMap stack: android.os.RemoteException
         4: pop
         5: .line 870
            aload 0 /* this */
            aconst_null
            putfield com.android.internal.util.AsyncChannel.mDeathMonitor:Lcom/android/internal/util/AsyncChannel$DeathMonitor;
         6: .line 871
            iconst_0
            ireturn
         7: .line 874
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/android/internal/util/AsyncChannel;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException

  private void replyDisconnected(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.android.internal.util.AsyncChannel this
        start local 1 // int status
         0: .line 885
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
            ifnonnull 1
            return
         1: .line 886
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
            ldc 69636
            invokevirtual android.os.Handler.obtainMessage:(I)Landroid/os/Message;
            astore 2 /* msg */
        start local 2 // android.os.Message msg
         2: .line 887
            aload 2 /* msg */
            iload 1 /* status */
            putfield android.os.Message.arg1:I
         3: .line 888
            aload 2 /* msg */
            aload 0 /* this */
            putfield android.os.Message.obj:Ljava/lang/Object;
         4: .line 889
            aload 2 /* msg */
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mDstMessenger:Landroid/os/Messenger;
            putfield android.os.Message.replyTo:Landroid/os/Messenger;
         5: .line 890
            aload 0 /* this */
            getfield com.android.internal.util.AsyncChannel.mSrcHandler:Landroid/os/Handler;
            aload 2 /* msg */
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
         6: .line 891
            return
        end local 2 // android.os.Message msg
        end local 1 // int status
        end local 0 // com.android.internal.util.AsyncChannel this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/android/internal/util/AsyncChannel;
            0    7     1  status  I
            2    7     2     msg  Landroid/os/Message;
    MethodParameters:
        Name  Flags
      status  

  private static void log(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 919
            ldc "AsyncChannel"
            aload 0 /* s */
            invokestatic android.util.Slog.d:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 920
            return
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     
}
SourceFile: "AsyncChannel.java"
NestMembers:
  com.android.internal.util.AsyncChannel$1ConnectAsync  com.android.internal.util.AsyncChannel$AsyncChannelConnection  com.android.internal.util.AsyncChannel$DeathMonitor  com.android.internal.util.AsyncChannel$SyncMessenger  com.android.internal.util.AsyncChannel$SyncMessenger$SyncHandler
InnerClasses:
  public abstract DeathRecipient = android.os.IBinder$DeathRecipient of android.os.IBinder
  final ConnectAsync = com.android.internal.util.AsyncChannel$1ConnectAsync
  AsyncChannelConnection = com.android.internal.util.AsyncChannel$AsyncChannelConnection of com.android.internal.util.AsyncChannel
  private final DeathMonitor = com.android.internal.util.AsyncChannel$DeathMonitor of com.android.internal.util.AsyncChannel
  private SyncMessenger = com.android.internal.util.AsyncChannel$SyncMessenger of com.android.internal.util.AsyncChannel