RealCall.smali

.class public final Lokhttp3/internal/connection/RealCall;
.super Ljava/lang/Object;

# interfaces
.implements Lokhttp3/Call;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lokhttp3/internal/connection/RealCall$AsyncCall;,
        Lokhttp3/internal/connection/RealCall$CallReference;
    }
.end annotation


# instance fields
.field private final f:Lokhttp3/internal/connection/RealConnectionPool;

.field private final g:Lokhttp3/EventListener;

.field private final h:Lokhttp3/internal/connection/RealCall$timeout$1;

.field private i:Ljava/lang/Object;

.field private j:Lokhttp3/internal/connection/ExchangeFinder;

.field private k:Lokhttp3/internal/connection/RealConnection;

.field private l:Lokhttp3/internal/connection/Exchange;

.field private m:Z

.field private n:Z

.field private o:Z

.field private p:Z

.field private q:Z

.field private r:Z

.field private s:Lokhttp3/internal/connection/Exchange;

.field private final t:Lokhttp3/OkHttpClient;

.field private final u:Lokhttp3/Request;

.field private final v:Z


# direct methods
.method public constructor <init>(Lokhttp3/OkHttpClient;Lokhttp3/Request;Z)V
    .registers 5

    const-string v0, "client"

    invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V

    const-string v0, "originalRequest"

    invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    iput-object p1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    iput-object p2, p0, Lokhttp3/internal/connection/RealCall;->u:Lokhttp3/Request;

    iput-boolean p3, p0, Lokhttp3/internal/connection/RealCall;->v:Z

    invoke-virtual {p1}, Lokhttp3/OkHttpClient;->m()Lokhttp3/ConnectionPool;

    move-result-object p1

    invoke-virtual {p1}, Lokhttp3/ConnectionPool;->a()Lokhttp3/internal/connection/RealConnectionPool;

    move-result-object p1

    iput-object p1, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    iget-object p1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {p1}, Lokhttp3/OkHttpClient;->t()Lokhttp3/EventListener$Factory;

    move-result-object p1

    invoke-interface {p1, p0}, Lokhttp3/EventListener$Factory;->a(Lokhttp3/Call;)Lokhttp3/EventListener;

    move-result-object p1

    iput-object p1, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    new-instance p1, Lokhttp3/internal/connection/RealCall$timeout$1;

    invoke-direct {p1, p0}, Lokhttp3/internal/connection/RealCall$timeout$1;-><init>(Lokhttp3/internal/connection/RealCall;)V

    iget-object p2, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {p2}, Lokhttp3/OkHttpClient;->h()I

    move-result p2

    int-to-long p2, p2

    sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;

    invoke-virtual {p1, p2, p3, v0}, Lokio/Timeout;->g(JLjava/util/concurrent/TimeUnit;)Lokio/Timeout;

    iput-object p1, p0, Lokhttp3/internal/connection/RealCall;->h:Lokhttp3/internal/connection/RealCall$timeout$1;

    return-void
.end method

.method private final C(Ljava/io/IOException;)Ljava/io/IOException;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<E:",
            "Ljava/io/IOException;",
            ">(TE;)TE;"
        }
    .end annotation

    iget-boolean v0, p0, Lokhttp3/internal/connection/RealCall;->p:Z

    if-eqz v0, :cond_5

    return-object p1

    :cond_5
    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->h:Lokhttp3/internal/connection/RealCall$timeout$1;

    invoke-virtual {v0}, Lokio/AsyncTimeout;->s()Z

    move-result v0

    if-nez v0, :cond_e

    return-object p1

    :cond_e
    new-instance v0, Ljava/io/InterruptedIOException;

    const-string v1, "timeout"

    invoke-direct {v0, v1}, Ljava/io/InterruptedIOException;-><init>(Ljava/lang/String;)V

    if-eqz p1, :cond_1a

    invoke-virtual {v0, p1}, Ljava/io/InterruptedIOException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;

    :cond_1a
    return-object v0
.end method

.method private final D()Ljava/lang/String;
    .registers 3

    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {p0}, Lokhttp3/internal/connection/RealCall;->p()Z

    move-result v1

    if-eqz v1, :cond_e

    const-string v1, "canceled "

    goto :goto_10

    :cond_e
    const-string v1, ""

    :goto_10
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->v:Z

    if-eqz v1, :cond_1a

    const-string v1, "web socket"

    goto :goto_1c

    :cond_1a
    const-string v1, "call"

    :goto_1c
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v1, " to "

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p0}, Lokhttp3/internal/connection/RealCall;->y()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public static final synthetic b(Lokhttp3/internal/connection/RealCall;)Lokhttp3/internal/connection/RealCall$timeout$1;
    .registers 1

    iget-object p0, p0, Lokhttp3/internal/connection/RealCall;->h:Lokhttp3/internal/connection/RealCall$timeout$1;

    return-object p0
.end method

.method public static final synthetic c(Lokhttp3/internal/connection/RealCall;)Ljava/lang/String;
    .registers 1

    invoke-direct {p0}, Lokhttp3/internal/connection/RealCall;->D()Ljava/lang/String;

    move-result-object p0

    return-object p0
.end method

.method private final e()V
    .registers 3

    sget-object v0, Lokhttp3/internal/platform/Platform;->c:Lokhttp3/internal/platform/Platform$Companion;

    invoke-virtual {v0}, Lokhttp3/internal/platform/Platform$Companion;->g()Lokhttp3/internal/platform/Platform;

    move-result-object v0

    const-string v1, "response.body().close()"

    invoke-virtual {v0, v1}, Lokhttp3/internal/platform/Platform;->i(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    iput-object v0, p0, Lokhttp3/internal/connection/RealCall;->i:Ljava/lang/Object;

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    invoke-virtual {v0, p0}, Lokhttp3/EventListener;->f(Lokhttp3/Call;)V

    return-void
.end method

.method private final g(Lokhttp3/HttpUrl;)Lokhttp3/Address;
    .registers 19

    move-object/from16 v0, p0

    invoke-virtual/range {p1 .. p1}, Lokhttp3/HttpUrl;->j()Z

    move-result v1

    const/4 v2, 0x0

    if-eqz v1, :cond_1f

    iget-object v1, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v1}, Lokhttp3/OkHttpClient;->M()Ljavax/net/ssl/SSLSocketFactory;

    move-result-object v2

    iget-object v1, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v1}, Lokhttp3/OkHttpClient;->y()Ljavax/net/ssl/HostnameVerifier;

    move-result-object v1

    iget-object v3, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v3}, Lokhttp3/OkHttpClient;->j()Lokhttp3/CertificatePinner;

    move-result-object v3

    move-object v10, v1

    move-object v9, v2

    move-object v11, v3

    goto :goto_22

    :cond_1f
    move-object v9, v2

    move-object v10, v9

    move-object v11, v10

    :goto_22
    new-instance v1, Lokhttp3/Address;

    invoke-virtual/range {p1 .. p1}, Lokhttp3/HttpUrl;->i()Ljava/lang/String;

    move-result-object v5

    invoke-virtual/range {p1 .. p1}, Lokhttp3/HttpUrl;->o()I

    move-result v6

    iget-object v2, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v2}, Lokhttp3/OkHttpClient;->s()Lokhttp3/Dns;

    move-result-object v7

    iget-object v2, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v2}, Lokhttp3/OkHttpClient;->L()Ljavax/net/SocketFactory;

    move-result-object v8

    iget-object v2, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v2}, Lokhttp3/OkHttpClient;->H()Lokhttp3/Authenticator;

    move-result-object v12

    iget-object v2, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v2}, Lokhttp3/OkHttpClient;->G()Ljava/net/Proxy;

    move-result-object v13

    iget-object v2, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v2}, Lokhttp3/OkHttpClient;->E()Ljava/util/List;

    move-result-object v14

    iget-object v2, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v2}, Lokhttp3/OkHttpClient;->n()Ljava/util/List;

    move-result-object v15

    iget-object v2, v0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v2}, Lokhttp3/OkHttpClient;->I()Ljava/net/ProxySelector;

    move-result-object v16

    move-object v4, v1

    invoke-direct/range {v4 .. v16}, Lokhttp3/Address;-><init>(Ljava/lang/String;ILokhttp3/Dns;Ljavax/net/SocketFactory;Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/HostnameVerifier;Lokhttp3/CertificatePinner;Lokhttp3/Authenticator;Ljava/net/Proxy;Ljava/util/List;Ljava/util/List;Ljava/net/ProxySelector;)V

    return-object v1
.end method

.method private final u(Ljava/io/IOException;Z)Ljava/io/IOException;
    .registers 10
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<E:",
            "Ljava/io/IOException;",
            ">(TE;Z)TE;"
        }
    .end annotation

    new-instance v0, Lkotlin/jvm/internal/Ref$ObjectRef;

    invoke-direct {v0}, Lkotlin/jvm/internal/Ref$ObjectRef;-><init>()V

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    monitor-enter v1

    const/4 v2, 0x0

    const/4 v3, 0x1

    if-eqz p2, :cond_16

    :try_start_c
    iget-object v4, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    if-nez v4, :cond_11

    goto :goto_16

    :cond_11
    const/4 v4, 0x0

    goto :goto_17

    :catchall_13
    move-exception p1

    goto/16 :goto_89

    :cond_16
    :goto_16
    const/4 v4, 0x1

    :goto_17
    if-eqz v4, :cond_7d

    iget-object v4, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    iput-object v4, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->f:Ljava/lang/Object;

    iget-object v4, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    const/4 v5, 0x0

    if-eqz v4, :cond_31

    iget-object v4, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    if-nez v4, :cond_31

    if-nez p2, :cond_2c

    iget-boolean p2, p0, Lokhttp3/internal/connection/RealCall;->q:Z

    if-eqz p2, :cond_31

    :cond_2c
    invoke-virtual {p0}, Lokhttp3/internal/connection/RealCall;->z()Ljava/net/Socket;

    move-result-object p2

    goto :goto_32

    :cond_31
    move-object p2, v5

    :goto_32
    iget-object v4, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    if-eqz v4, :cond_38

    iput-object v5, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->f:Ljava/lang/Object;

    :cond_38
    iget-boolean v4, p0, Lokhttp3/internal/connection/RealCall;->q:Z

    if-eqz v4, :cond_42

    iget-object v4, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    if-nez v4, :cond_42

    const/4 v4, 0x1

    goto :goto_43

    :cond_42
    const/4 v4, 0x0

    :goto_43
    sget-object v6, Lkotlin/Unit;->a:Lkotlin/Unit;
    :try_end_45
    .catchall {:try_start_c .. :try_end_45} :catchall_13

    monitor-exit v1

    if-eqz p2, :cond_4b

    invoke-static {p2}, Lokhttp3/internal/Util;->k(Ljava/net/Socket;)V

    :cond_4b
    iget-object p2, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->f:Ljava/lang/Object;

    move-object v0, p2

    check-cast v0, Lokhttp3/Connection;

    if-eqz v0, :cond_60

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    check-cast p2, Lokhttp3/Connection;

    if-eqz p2, :cond_5c

    invoke-virtual {v0, p0, p2}, Lokhttp3/EventListener;->l(Lokhttp3/Call;Lokhttp3/Connection;)V

    goto :goto_60

    :cond_5c
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V

    throw v5

    :cond_60
    :goto_60
    if-eqz v4, :cond_7c

    if-eqz p1, :cond_65

    const/4 v2, 0x1

    :cond_65
    invoke-direct {p0, p1}, Lokhttp3/internal/connection/RealCall;->C(Ljava/io/IOException;)Ljava/io/IOException;

    move-result-object p1

    if-eqz v2, :cond_77

    iget-object p2, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    if-eqz p1, :cond_73

    invoke-virtual {p2, p0, p1}, Lokhttp3/EventListener;->e(Lokhttp3/Call;Ljava/io/IOException;)V

    goto :goto_7c

    :cond_73
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V

    throw v5

    :cond_77
    iget-object p2, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    invoke-virtual {p2, p0}, Lokhttp3/EventListener;->d(Lokhttp3/Call;)V

    :cond_7c
    :goto_7c
    return-object p1

    :cond_7d
    :try_start_7d
    const-string p1, "cannot release connection while it is in use"

    new-instance p2, Ljava/lang/IllegalStateException;

    invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {p2, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw p2
    :try_end_89
    .catchall {:try_start_7d .. :try_end_89} :catchall_13

    :goto_89
    monitor-exit v1

    throw p1
.end method


# virtual methods
.method public final A()Z
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->j:Lokhttp3/internal/connection/ExchangeFinder;

    if-eqz v0, :cond_9

    invoke-virtual {v0}, Lokhttp3/internal/connection/ExchangeFinder;->f()Z

    move-result v0

    return v0

    :cond_9
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V

    const/4 v0, 0x0

    throw v0
.end method

.method public final B()V
    .registers 3

    iget-boolean v0, p0, Lokhttp3/internal/connection/RealCall;->p:Z

    const/4 v1, 0x1

    xor-int/2addr v0, v1

    if-eqz v0, :cond_e

    iput-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->p:Z

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->h:Lokhttp3/internal/connection/RealCall$timeout$1;

    invoke-virtual {v0}, Lokio/AsyncTimeout;->s()Z

    return-void

    :cond_e
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "Check failed."

    invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0
.end method

.method public F(Lokhttp3/Callback;)V
    .registers 4

    const-string v0, "responseCallback"

    invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V

    monitor-enter p0

    :try_start_6
    iget-boolean v0, p0, Lokhttp3/internal/connection/RealCall;->r:Z

    const/4 v1, 0x1

    xor-int/2addr v0, v1

    if-eqz v0, :cond_23

    iput-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->r:Z

    sget-object v0, Lkotlin/Unit;->a:Lkotlin/Unit;
    :try_end_10
    .catchall {:try_start_6 .. :try_end_10} :catchall_2f

    monitor-exit p0

    invoke-direct {p0}, Lokhttp3/internal/connection/RealCall;->e()V

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0}, Lokhttp3/OkHttpClient;->q()Lokhttp3/Dispatcher;

    move-result-object v0

    new-instance v1, Lokhttp3/internal/connection/RealCall$AsyncCall;

    invoke-direct {v1, p0, p1}, Lokhttp3/internal/connection/RealCall$AsyncCall;-><init>(Lokhttp3/internal/connection/RealCall;Lokhttp3/Callback;)V

    invoke-virtual {v0, v1}, Lokhttp3/Dispatcher;->a(Lokhttp3/internal/connection/RealCall$AsyncCall;)V

    return-void

    :cond_23
    :try_start_23
    const-string p1, "Already Executed"

    new-instance v0, Ljava/lang/IllegalStateException;

    invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v0, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0
    :try_end_2f
    .catchall {:try_start_23 .. :try_end_2f} :catchall_2f

    :catchall_2f
    move-exception p1

    monitor-exit p0

    throw p1
.end method

.method public cancel()V
    .registers 5

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    monitor-enter v0

    :try_start_3
    iget-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->o:Z
    :try_end_5
    .catchall {:try_start_3 .. :try_end_5} :catchall_2f

    if-eqz v1, :cond_9

    monitor-exit v0

    return-void

    :cond_9
    const/4 v1, 0x1

    :try_start_a
    iput-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->o:Z

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    iget-object v2, p0, Lokhttp3/internal/connection/RealCall;->j:Lokhttp3/internal/connection/ExchangeFinder;

    if-eqz v2, :cond_19

    invoke-virtual {v2}, Lokhttp3/internal/connection/ExchangeFinder;->a()Lokhttp3/internal/connection/RealConnection;

    move-result-object v2

    if-eqz v2, :cond_19

    goto :goto_1b

    :cond_19
    iget-object v2, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    :goto_1b
    sget-object v3, Lkotlin/Unit;->a:Lkotlin/Unit;
    :try_end_1d
    .catchall {:try_start_a .. :try_end_1d} :catchall_2f

    monitor-exit v0

    if-eqz v1, :cond_24

    invoke-virtual {v1}, Lokhttp3/internal/connection/Exchange;->b()V

    goto :goto_29

    :cond_24
    if-eqz v2, :cond_29

    invoke-virtual {v2}, Lokhttp3/internal/connection/RealConnection;->d()V

    :cond_29
    :goto_29
    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    invoke-virtual {v0, p0}, Lokhttp3/EventListener;->g(Lokhttp3/Call;)V

    return-void

    :catchall_2f
    move-exception v1

    monitor-exit v0

    throw v1
.end method

.method public bridge synthetic clone()Ljava/lang/Object;
    .registers 2

    invoke-virtual {p0}, Lokhttp3/internal/connection/RealCall;->f()Lokhttp3/internal/connection/RealCall;

    move-result-object v0

    return-object v0
.end method

.method public final d(Lokhttp3/internal/connection/RealConnection;)V
    .registers 6

    const-string v0, "connection"

    invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    sget-boolean v1, Lokhttp3/internal/Util;->g:Z

    if-eqz v1, :cond_3e

    invoke-static {v0}, Ljava/lang/Thread;->holdsLock(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_12

    goto :goto_3e

    :cond_12
    new-instance p1, Ljava/lang/AssertionError;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "Thread "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v2

    const-string v3, "Thread.currentThread()"

    invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V

    invoke-virtual {v2}, Ljava/lang/Thread;->getName()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v2, " MUST hold lock on "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p1, v0}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V

    throw p1

    :cond_3e
    :goto_3e
    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    if-nez v0, :cond_44

    const/4 v0, 0x1

    goto :goto_45

    :cond_44
    const/4 v0, 0x0

    :goto_45
    if-eqz v0, :cond_58

    iput-object p1, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    invoke-virtual {p1}, Lokhttp3/internal/connection/RealConnection;->n()Ljava/util/List;

    move-result-object p1

    new-instance v0, Lokhttp3/internal/connection/RealCall$CallReference;

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->i:Ljava/lang/Object;

    invoke-direct {v0, p0, v1}, Lokhttp3/internal/connection/RealCall$CallReference;-><init>(Lokhttp3/internal/connection/RealCall;Ljava/lang/Object;)V

    invoke-interface {p1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    return-void

    :cond_58
    new-instance p1, Ljava/lang/IllegalStateException;

    const-string v0, "Check failed."

    invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method public execute()Lokhttp3/Response;
    .registers 3

    monitor-enter p0

    :try_start_1
    iget-boolean v0, p0, Lokhttp3/internal/connection/RealCall;->r:Z

    const/4 v1, 0x1

    xor-int/2addr v0, v1

    if-eqz v0, :cond_36

    iput-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->r:Z

    sget-object v0, Lkotlin/Unit;->a:Lkotlin/Unit;
    :try_end_b
    .catchall {:try_start_1 .. :try_end_b} :catchall_42

    monitor-exit p0

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->h:Lokhttp3/internal/connection/RealCall$timeout$1;

    invoke-virtual {v0}, Lokio/AsyncTimeout;->r()V

    invoke-direct {p0}, Lokhttp3/internal/connection/RealCall;->e()V

    :try_start_14
    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0}, Lokhttp3/OkHttpClient;->q()Lokhttp3/Dispatcher;

    move-result-object v0

    invoke-virtual {v0, p0}, Lokhttp3/Dispatcher;->b(Lokhttp3/internal/connection/RealCall;)V

    invoke-virtual {p0}, Lokhttp3/internal/connection/RealCall;->s()Lokhttp3/Response;

    move-result-object v0
    :try_end_21
    .catchall {:try_start_14 .. :try_end_21} :catchall_2b

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v1}, Lokhttp3/OkHttpClient;->q()Lokhttp3/Dispatcher;

    move-result-object v1

    invoke-virtual {v1, p0}, Lokhttp3/Dispatcher;->g(Lokhttp3/internal/connection/RealCall;)V

    return-object v0

    :catchall_2b
    move-exception v0

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v1}, Lokhttp3/OkHttpClient;->q()Lokhttp3/Dispatcher;

    move-result-object v1

    invoke-virtual {v1, p0}, Lokhttp3/Dispatcher;->g(Lokhttp3/internal/connection/RealCall;)V

    throw v0

    :cond_36
    :try_start_36
    const-string v0, "Already Executed"

    new-instance v1, Ljava/lang/IllegalStateException;

    invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1
    :try_end_42
    .catchall {:try_start_36 .. :try_end_42} :catchall_42

    :catchall_42
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public f()Lokhttp3/internal/connection/RealCall;
    .registers 5

    new-instance v0, Lokhttp3/internal/connection/RealCall;

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    iget-object v2, p0, Lokhttp3/internal/connection/RealCall;->u:Lokhttp3/Request;

    iget-boolean v3, p0, Lokhttp3/internal/connection/RealCall;->v:Z

    invoke-direct {v0, v1, v2, v3}, Lokhttp3/internal/connection/RealCall;-><init>(Lokhttp3/OkHttpClient;Lokhttp3/Request;Z)V

    return-object v0
.end method

.method public final h(Lokhttp3/Request;Z)V
    .registers 6

    const-string v0, "request"

    invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->s:Lokhttp3/internal/connection/Exchange;

    const/4 v1, 0x1

    const/4 v2, 0x0

    if-nez v0, :cond_d

    const/4 v0, 0x1

    goto :goto_e

    :cond_d
    const/4 v0, 0x0

    :goto_e
    if-eqz v0, :cond_3a

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    if-nez v0, :cond_15

    goto :goto_16

    :cond_15
    const/4 v1, 0x0

    :goto_16
    if-eqz v1, :cond_2e

    if-eqz p2, :cond_2d

    new-instance p2, Lokhttp3/internal/connection/ExchangeFinder;

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    invoke-virtual {p1}, Lokhttp3/Request;->k()Lokhttp3/HttpUrl;

    move-result-object p1

    invoke-direct {p0, p1}, Lokhttp3/internal/connection/RealCall;->g(Lokhttp3/HttpUrl;)Lokhttp3/Address;

    move-result-object p1

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    invoke-direct {p2, v0, p1, p0, v1}, Lokhttp3/internal/connection/ExchangeFinder;-><init>(Lokhttp3/internal/connection/RealConnectionPool;Lokhttp3/Address;Lokhttp3/internal/connection/RealCall;Lokhttp3/EventListener;)V

    iput-object p2, p0, Lokhttp3/internal/connection/RealCall;->j:Lokhttp3/internal/connection/ExchangeFinder;

    :cond_2d
    return-void

    :cond_2e
    new-instance p1, Ljava/lang/IllegalStateException;

    const-string p2, "cannot make a new request because the previous response is still open: please call response.close()"

    invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw p1

    :cond_3a
    new-instance p1, Ljava/lang/IllegalStateException;

    const-string p2, "Check failed."

    invoke-virtual {p2}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p2

    invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method public final i(Z)V
    .registers 4

    iget-boolean v0, p0, Lokhttp3/internal/connection/RealCall;->q:Z

    const/4 v1, 0x1

    xor-int/2addr v0, v1

    if-eqz v0, :cond_28

    if-eqz p1, :cond_24

    iget-object p1, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    if-eqz p1, :cond_f

    invoke-virtual {p1}, Lokhttp3/internal/connection/Exchange;->d()V

    :cond_f
    iget-object p1, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    if-nez p1, :cond_14

    goto :goto_15

    :cond_14
    const/4 v1, 0x0

    :goto_15
    if-eqz v1, :cond_18

    goto :goto_24

    :cond_18
    new-instance p1, Ljava/lang/IllegalStateException;

    const-string v0, "Check failed."

    invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw p1

    :cond_24
    :goto_24
    const/4 p1, 0x0

    iput-object p1, p0, Lokhttp3/internal/connection/RealCall;->s:Lokhttp3/internal/connection/Exchange;

    return-void

    :cond_28
    new-instance p1, Ljava/lang/IllegalStateException;

    const-string v0, "released"

    invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method public final j()Lokhttp3/OkHttpClient;
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    return-object v0
.end method

.method public final l()Lokhttp3/internal/connection/RealConnection;
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    return-object v0
.end method

.method public final m()Lokhttp3/EventListener;
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    return-object v0
.end method

.method public final n()Z
    .registers 2

    iget-boolean v0, p0, Lokhttp3/internal/connection/RealCall;->v:Z

    return v0
.end method

.method public final o()Lokhttp3/internal/connection/Exchange;
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->s:Lokhttp3/internal/connection/Exchange;

    return-object v0
.end method

.method public p()Z
    .registers 3

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    monitor-enter v0

    :try_start_3
    iget-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->o:Z
    :try_end_5
    .catchall {:try_start_3 .. :try_end_5} :catchall_7

    monitor-exit v0

    return v1

    :catchall_7
    move-exception v1

    monitor-exit v0

    throw v1
.end method

.method public final q()Lokhttp3/Request;
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->u:Lokhttp3/Request;

    return-object v0
.end method

.method public request()Lokhttp3/Request;
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->u:Lokhttp3/Request;

    return-object v0
.end method

.method public final s()Lokhttp3/Response;
    .registers 11
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    new-instance v2, Ljava/util/ArrayList;

    invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0}, Lokhttp3/OkHttpClient;->z()Ljava/util/List;

    move-result-object v0

    invoke-static {v2, v0}, Lkotlin/collections/CollectionsKt;->w(Ljava/util/Collection;Ljava/lang/Iterable;)Z

    new-instance v0, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-direct {v0, v1}, Lokhttp3/internal/http/RetryAndFollowUpInterceptor;-><init>(Lokhttp3/OkHttpClient;)V

    invoke-interface {v2, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z

    new-instance v0, Lokhttp3/internal/http/BridgeInterceptor;

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v1}, Lokhttp3/OkHttpClient;->o()Lokhttp3/CookieJar;

    move-result-object v1

    invoke-direct {v0, v1}, Lokhttp3/internal/http/BridgeInterceptor;-><init>(Lokhttp3/CookieJar;)V

    invoke-interface {v2, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z

    new-instance v0, Lokhttp3/internal/cache/CacheInterceptor;

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v1}, Lokhttp3/OkHttpClient;->g()Lokhttp3/Cache;

    move-result-object v1

    invoke-direct {v0, v1}, Lokhttp3/internal/cache/CacheInterceptor;-><init>(Lokhttp3/Cache;)V

    invoke-interface {v2, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z

    sget-object v0, Lokhttp3/internal/connection/ConnectInterceptor;->a:Lokhttp3/internal/connection/ConnectInterceptor;

    invoke-interface {v2, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z

    iget-boolean v0, p0, Lokhttp3/internal/connection/RealCall;->v:Z

    if-nez v0, :cond_46

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0}, Lokhttp3/OkHttpClient;->B()Ljava/util/List;

    move-result-object v0

    invoke-static {v2, v0}, Lkotlin/collections/CollectionsKt;->w(Ljava/util/Collection;Ljava/lang/Iterable;)Z

    :cond_46
    new-instance v0, Lokhttp3/internal/http/CallServerInterceptor;

    iget-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->v:Z

    invoke-direct {v0, v1}, Lokhttp3/internal/http/CallServerInterceptor;-><init>(Z)V

    invoke-interface {v2, v0}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z

    new-instance v9, Lokhttp3/internal/http/RealInterceptorChain;

    const/4 v3, 0x0

    const/4 v4, 0x0

    iget-object v5, p0, Lokhttp3/internal/connection/RealCall;->u:Lokhttp3/Request;

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0}, Lokhttp3/OkHttpClient;->l()I

    move-result v6

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0}, Lokhttp3/OkHttpClient;->J()I

    move-result v7

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0}, Lokhttp3/OkHttpClient;->O()I

    move-result v8

    move-object v0, v9

    move-object v1, p0

    invoke-direct/range {v0 .. v8}, Lokhttp3/internal/http/RealInterceptorChain;-><init>(Lokhttp3/internal/connection/RealCall;Ljava/util/List;ILokhttp3/internal/connection/Exchange;Lokhttp3/Request;III)V

    const/4 v0, 0x0

    const/4 v1, 0x0

    :try_start_6f
    iget-object v2, p0, Lokhttp3/internal/connection/RealCall;->u:Lokhttp3/Request;

    invoke-virtual {v9, v2}, Lokhttp3/internal/http/RealInterceptorChain;->a(Lokhttp3/Request;)Lokhttp3/Response;

    move-result-object v2

    invoke-virtual {p0}, Lokhttp3/internal/connection/RealCall;->p()Z

    move-result v3
    :try_end_79
    .catch Ljava/io/IOException; {:try_start_6f .. :try_end_79} :catch_8c
    .catchall {:try_start_6f .. :try_end_79} :catchall_8a

    if-nez v3, :cond_7f

    invoke-virtual {p0, v1}, Lokhttp3/internal/connection/RealCall;->x(Ljava/io/IOException;)Ljava/io/IOException;

    return-object v2

    :cond_7f
    :try_start_7f
    invoke-static {v2}, Lokhttp3/internal/Util;->j(Ljava/io/Closeable;)V

    new-instance v2, Ljava/io/IOException;

    const-string v3, "Canceled"

    invoke-direct {v2, v3}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v2
    :try_end_8a
    .catch Ljava/io/IOException; {:try_start_7f .. :try_end_8a} :catch_8c
    .catchall {:try_start_7f .. :try_end_8a} :catchall_8a

    :catchall_8a
    move-exception v2

    goto :goto_a0

    :catch_8c
    move-exception v0

    const/4 v2, 0x1

    :try_start_8e
    invoke-virtual {p0, v0}, Lokhttp3/internal/connection/RealCall;->x(Ljava/io/IOException;)Ljava/io/IOException;

    move-result-object v0

    if-nez v0, :cond_9c

    new-instance v0, Lkotlin/TypeCastException;

    const-string v3, "null cannot be cast to non-null type kotlin.Throwable"

    invoke-direct {v0, v3}, Lkotlin/TypeCastException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_9c
    throw v0
    :try_end_9d
    .catchall {:try_start_8e .. :try_end_9d} :catchall_9d

    :catchall_9d
    move-exception v0

    move-object v2, v0

    const/4 v0, 0x1

    :goto_a0
    if-nez v0, :cond_a5

    invoke-virtual {p0, v1}, Lokhttp3/internal/connection/RealCall;->x(Ljava/io/IOException;)Ljava/io/IOException;

    :cond_a5
    throw v2
.end method

.method public final t(Lokhttp3/internal/http/RealInterceptorChain;)Lokhttp3/internal/connection/Exchange;
    .registers 7

    const-string v0, "chain"

    invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    monitor-enter v0

    :try_start_8
    iget-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->q:Z

    const/4 v2, 0x1

    xor-int/2addr v1, v2

    if-eqz v1, :cond_54

    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    const/4 v3, 0x0

    if-nez v1, :cond_14

    goto :goto_15

    :cond_14
    const/4 v2, 0x0

    :goto_15
    if-eqz v2, :cond_48

    sget-object v1, Lkotlin/Unit;->a:Lkotlin/Unit;
    :try_end_19
    .catchall {:try_start_8 .. :try_end_19} :catchall_60

    monitor-exit v0

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->j:Lokhttp3/internal/connection/ExchangeFinder;

    const/4 v1, 0x0

    if-eqz v0, :cond_44

    iget-object v2, p0, Lokhttp3/internal/connection/RealCall;->t:Lokhttp3/OkHttpClient;

    invoke-virtual {v0, v2, p1}, Lokhttp3/internal/connection/ExchangeFinder;->b(Lokhttp3/OkHttpClient;Lokhttp3/internal/http/RealInterceptorChain;)Lokhttp3/internal/http/ExchangeCodec;

    move-result-object p1

    new-instance v0, Lokhttp3/internal/connection/Exchange;

    iget-object v2, p0, Lokhttp3/internal/connection/RealCall;->g:Lokhttp3/EventListener;

    iget-object v4, p0, Lokhttp3/internal/connection/RealCall;->j:Lokhttp3/internal/connection/ExchangeFinder;

    if-eqz v4, :cond_40

    invoke-direct {v0, p0, v2, v4, p1}, Lokhttp3/internal/connection/Exchange;-><init>(Lokhttp3/internal/connection/RealCall;Lokhttp3/EventListener;Lokhttp3/internal/connection/ExchangeFinder;Lokhttp3/internal/http/ExchangeCodec;)V

    iput-object v0, p0, Lokhttp3/internal/connection/RealCall;->s:Lokhttp3/internal/connection/Exchange;

    iget-object p1, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    monitor-enter p1

    :try_start_35
    iput-object v0, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    iput-boolean v3, p0, Lokhttp3/internal/connection/RealCall;->m:Z

    iput-boolean v3, p0, Lokhttp3/internal/connection/RealCall;->n:Z
    :try_end_3b
    .catchall {:try_start_35 .. :try_end_3b} :catchall_3d

    monitor-exit p1

    return-object v0

    :catchall_3d
    move-exception v0

    monitor-exit p1

    throw v0

    :cond_40
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V

    throw v1

    :cond_44
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V

    throw v1

    :cond_48
    :try_start_48
    const-string p1, "Check failed."

    new-instance v1, Ljava/lang/IllegalStateException;

    invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v1, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1

    :cond_54
    const-string p1, "released"

    new-instance v1, Ljava/lang/IllegalStateException;

    invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object p1

    invoke-direct {v1, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v1
    :try_end_60
    .catchall {:try_start_48 .. :try_end_60} :catchall_60

    :catchall_60
    move-exception p1

    monitor-exit v0

    throw p1
.end method

.method public final w(Lokhttp3/internal/connection/Exchange;ZZLjava/io/IOException;)Ljava/io/IOException;
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<E:",
            "Ljava/io/IOException;",
            ">(",
            "Lokhttp3/internal/connection/Exchange;",
            "ZZTE;)TE;"
        }
    .end annotation

    const-string v0, "exchange"

    invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->c(Ljava/lang/Object;Ljava/lang/String;)V

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    monitor-enter v0

    :try_start_8
    iget-object v1, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    invoke-static {p1, v1}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z

    move-result p1
    :try_end_e
    .catchall {:try_start_8 .. :try_end_e} :catchall_54

    const/4 v1, 0x1

    xor-int/2addr p1, v1

    if-eqz p1, :cond_14

    monitor-exit v0

    return-object p4

    :cond_14
    const/4 p1, 0x0

    if-eqz p2, :cond_1d

    :try_start_17
    iget-boolean p2, p0, Lokhttp3/internal/connection/RealCall;->m:Z

    xor-int/2addr p2, v1

    iput-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->m:Z

    goto :goto_1e

    :cond_1d
    const/4 p2, 0x0

    :goto_1e
    if-eqz p3, :cond_27

    iget-boolean p3, p0, Lokhttp3/internal/connection/RealCall;->n:Z

    if-nez p3, :cond_25

    const/4 p2, 0x1

    :cond_25
    iput-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->n:Z

    :cond_27
    iget-boolean p3, p0, Lokhttp3/internal/connection/RealCall;->m:Z

    if-eqz p3, :cond_49

    iget-boolean p3, p0, Lokhttp3/internal/connection/RealCall;->n:Z

    if-eqz p3, :cond_49

    if-eqz p2, :cond_49

    iget-object p2, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    const/4 p3, 0x0

    if-eqz p2, :cond_45

    invoke-virtual {p2}, Lokhttp3/internal/connection/Exchange;->h()Lokhttp3/internal/connection/RealConnection;

    move-result-object p2

    invoke-virtual {p2}, Lokhttp3/internal/connection/RealConnection;->r()I

    move-result v2

    add-int/2addr v2, v1

    invoke-virtual {p2, v2}, Lokhttp3/internal/connection/RealConnection;->D(I)V

    iput-object p3, p0, Lokhttp3/internal/connection/RealCall;->l:Lokhttp3/internal/connection/Exchange;

    goto :goto_4a

    :cond_45
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V
    :try_end_48
    .catchall {:try_start_17 .. :try_end_48} :catchall_54

    throw p3

    :cond_49
    const/4 v1, 0x0

    :goto_4a
    :try_start_4a
    sget-object p2, Lkotlin/Unit;->a:Lkotlin/Unit;
    :try_end_4c
    .catchall {:try_start_4a .. :try_end_4c} :catchall_54

    monitor-exit v0

    if-eqz v1, :cond_53

    invoke-direct {p0, p4, p1}, Lokhttp3/internal/connection/RealCall;->u(Ljava/io/IOException;Z)Ljava/io/IOException;

    move-result-object p4

    :cond_53
    return-object p4

    :catchall_54
    move-exception p1

    monitor-exit v0

    throw p1
.end method

.method public final x(Ljava/io/IOException;)Ljava/io/IOException;
    .registers 4

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    monitor-enter v0

    const/4 v1, 0x1

    :try_start_4
    iput-boolean v1, p0, Lokhttp3/internal/connection/RealCall;->q:Z

    sget-object v1, Lkotlin/Unit;->a:Lkotlin/Unit;
    :try_end_8
    .catchall {:try_start_4 .. :try_end_8} :catchall_f

    monitor-exit v0

    const/4 v0, 0x0

    invoke-direct {p0, p1, v0}, Lokhttp3/internal/connection/RealCall;->u(Ljava/io/IOException;Z)Ljava/io/IOException;

    move-result-object p1

    return-object p1

    :catchall_f
    move-exception p1

    monitor-exit v0

    throw p1
.end method

.method public final y()Ljava/lang/String;
    .registers 2

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->u:Lokhttp3/Request;

    invoke-virtual {v0}, Lokhttp3/Request;->k()Lokhttp3/HttpUrl;

    move-result-object v0

    invoke-virtual {v0}, Lokhttp3/HttpUrl;->q()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method public final z()Ljava/net/Socket;
    .registers 7

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    sget-boolean v1, Lokhttp3/internal/Util;->g:Z

    if-eqz v1, :cond_39

    invoke-static {v0}, Ljava/lang/Thread;->holdsLock(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_d

    goto :goto_39

    :cond_d
    new-instance v1, Ljava/lang/AssertionError;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    const-string v3, "Thread "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object v3

    const-string v4, "Thread.currentThread()"

    invoke-static {v3, v4}, Lkotlin/jvm/internal/Intrinsics;->b(Ljava/lang/Object;Ljava/lang/String;)V

    invoke-virtual {v3}, Ljava/lang/Thread;->getName()Ljava/lang/String;

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const-string v3, " MUST hold lock on "

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-direct {v1, v0}, Ljava/lang/AssertionError;-><init>(Ljava/lang/Object;)V

    throw v1

    :cond_39
    :goto_39
    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    const/4 v1, 0x0

    if-eqz v0, :cond_a7

    invoke-virtual {v0}, Lokhttp3/internal/connection/RealConnection;->n()Ljava/util/List;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    const/4 v2, 0x0

    const/4 v3, 0x0

    :goto_48
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    const/4 v5, -0x1

    if-eqz v4, :cond_65

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Ljava/lang/ref/Reference;

    invoke-virtual {v4}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lokhttp3/internal/connection/RealCall;

    invoke-static {v4, p0}, Lkotlin/jvm/internal/Intrinsics;->a(Ljava/lang/Object;Ljava/lang/Object;)Z

    move-result v4

    if-eqz v4, :cond_62

    goto :goto_66

    :cond_62
    add-int/lit8 v3, v3, 0x1

    goto :goto_48

    :cond_65
    const/4 v3, -0x1

    :goto_66
    if-eq v3, v5, :cond_69

    const/4 v2, 0x1

    :cond_69
    if-eqz v2, :cond_9b

    iget-object v0, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    if-eqz v0, :cond_97

    invoke-virtual {v0}, Lokhttp3/internal/connection/RealConnection;->n()Ljava/util/List;

    move-result-object v2

    invoke-interface {v2, v3}, Ljava/util/List;->remove(I)Ljava/lang/Object;

    iput-object v1, p0, Lokhttp3/internal/connection/RealCall;->k:Lokhttp3/internal/connection/RealConnection;

    invoke-virtual {v0}, Lokhttp3/internal/connection/RealConnection;->n()Ljava/util/List;

    move-result-object v2

    invoke-interface {v2}, Ljava/util/List;->isEmpty()Z

    move-result v2

    if-eqz v2, :cond_96

    invoke-static {}, Ljava/lang/System;->nanoTime()J

    move-result-wide v2

    invoke-virtual {v0, v2, v3}, Lokhttp3/internal/connection/RealConnection;->B(J)V

    iget-object v2, p0, Lokhttp3/internal/connection/RealCall;->f:Lokhttp3/internal/connection/RealConnectionPool;

    invoke-virtual {v2, v0}, Lokhttp3/internal/connection/RealConnectionPool;->c(Lokhttp3/internal/connection/RealConnection;)Z

    move-result v2

    if-eqz v2, :cond_96

    invoke-virtual {v0}, Lokhttp3/internal/connection/RealConnection;->E()Ljava/net/Socket;

    move-result-object v0

    return-object v0

    :cond_96
    return-object v1

    :cond_97
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V

    throw v1

    :cond_9b
    new-instance v0, Ljava/lang/IllegalStateException;

    const-string v1, "Check failed."

    invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_a7
    invoke-static {}, Lkotlin/jvm/internal/Intrinsics;->h()V

    throw v1
.end method