d.smali

.class public Lcom/subgraph/orchid/circuits/d;
.super Ljava/lang/Object;
.source "CircuitExtender.java"


# static fields
.field static final logger:Ljava/util/logging/Logger;


# instance fields
.field final bBF:Lcom/subgraph/orchid/circuits/f;

.field private final bBT:Z


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .prologue
    .line 18
    const-class v0, Lcom/subgraph/orchid/circuits/d;

    invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;

    move-result-object v0

    sput-object v0, Lcom/subgraph/orchid/circuits/d;->logger:Ljava/util/logging/Logger;

    return-void
.end method

.method constructor <init>(Lcom/subgraph/orchid/circuits/f;Z)V
    .registers 3

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

    .line 32
    iput-object p1, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    .line 33
    iput-boolean p2, p0, Lcom/subgraph/orchid/circuits/d;->bBT:Z

    .line 34
    return-void
.end method

.method private a(ILcom/subgraph/orchid/v;)Lcom/subgraph/orchid/t;
    .registers 10

    .prologue
    .line 112
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    .line 6195
    iget-object v0, v0, Lcom/subgraph/orchid/circuits/f;->bCf:Lcom/subgraph/orchid/circuits/e;

    invoke-virtual {v0}, Lcom/subgraph/orchid/circuits/e;->KA()Lcom/subgraph/orchid/t;

    move-result-object v0

    .line 113
    if-nez v0, :cond_12

    .line 114
    new-instance v0, Lcom/subgraph/orchid/TorException;

    const-string v1, "Timeout building circuit"

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 116
    :cond_12
    invoke-interface {v0}, Lcom/subgraph/orchid/t;->Jw()I

    move-result v1

    .line 117
    const/16 v2, 0x9

    if-ne v1, v2, :cond_af

    .line 118
    invoke-interface {v0}, Lcom/subgraph/orchid/t;->Ik()I

    move-result v1

    and-int/lit16 v1, v1, 0xff

    .line 119
    invoke-static {v1}, Lcom/subgraph/orchid/circuits/a/a;->eL(I)Ljava/lang/String;

    move-result-object v3

    .line 120
    invoke-interface {v0}, Lcom/subgraph/orchid/t;->Jx()Lcom/subgraph/orchid/f;

    move-result-object v0

    .line 7098
    if-eqz v0, :cond_30

    invoke-interface {v0}, Lcom/subgraph/orchid/f;->Iy()Lcom/subgraph/orchid/v;

    move-result-object v2

    if-nez v2, :cond_9a

    .line 7099
    :cond_30
    const-string v0, "(null)"

    move-object v2, v0

    .line 121
    :goto_33
    const/4 v0, 0x1

    if-ne v1, v0, :cond_6d

    .line 8092
    if-nez p2, :cond_a4

    const-string v0, "(none)"

    move-object v1, v0

    .line 8093
    :goto_3b
    if-nez p2, :cond_aa

    const-string v0, "(none)"

    .line 8094
    :goto_3f
    sget-object v4, Lcom/subgraph/orchid/circuits/d;->logger:Ljava/util/logging/Logger;

    new-instance v5, Ljava/lang/StringBuilder;

    const-string v6, "Protocol error extending circuit from ("

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

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

    move-result-object v5

    const-string v6, ") to ("

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

    move-result-object v5

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

    move-result-object v0

    const-string v5, ") [version: "

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

    move-result-object v0

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

    move-result-object v0

    const-string v1, "]"

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

    move-result-object v0

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

    move-result-object v0

    invoke-virtual {v4, v0}, Ljava/util/logging/Logger;->warning(Ljava/lang/String;)V

    .line 124
    :cond_6d
    new-instance v0, Lcom/subgraph/orchid/TorException;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v4, "Error from ("

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

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

    move-result-object v1

    const-string v2, ") while extending to ("

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

    move-result-object v1

    invoke-interface {p2}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;

    move-result-object v2

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

    move-result-object v1

    const-string v2, "): "

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

    move-result-object v1

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

    move-result-object v1

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

    move-result-object v1

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 7101
    :cond_9a
    invoke-interface {v0}, Lcom/subgraph/orchid/f;->Iy()Lcom/subgraph/orchid/v;

    move-result-object v0

    .line 7102
    invoke-interface {v0}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;

    move-result-object v0

    move-object v2, v0

    goto :goto_33

    .line 8092
    :cond_a4
    invoke-interface {p2}, Lcom/subgraph/orchid/v;->getVersion()Ljava/lang/String;

    move-result-object v0

    move-object v1, v0

    goto :goto_3b

    .line 8093
    :cond_aa
    invoke-interface {p2}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;

    move-result-object v0

    goto :goto_3f

    .line 125
    :cond_af
    if-eq v1, p1, :cond_d8

    .line 126
    invoke-static {p1}, Lcom/subgraph/orchid/circuits/a/b;->eM(I)Ljava/lang/String;

    move-result-object v0

    .line 127
    invoke-static {v1}, Lcom/subgraph/orchid/circuits/a/b;->eM(I)Ljava/lang/String;

    move-result-object v1

    .line 128
    new-instance v2, Lcom/subgraph/orchid/TorException;

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Received incorrect extend response, expecting "

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

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

    move-result-object v0

    const-string v3, " but received "

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

    move-result-object v0

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

    move-result-object v0

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

    move-result-object v0

    invoke-direct {v2, v0}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V

    throw v2

    .line 130
    :cond_d8
    return-object v0
.end method

.method private a(Lcom/subgraph/orchid/t;)V
    .registers 3

    .prologue
    .line 107
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    invoke-virtual {v0, p1}, Lcom/subgraph/orchid/circuits/f;->a(Lcom/subgraph/orchid/t;)V

    .line 108
    return-void
.end method

.method private eH(I)Lcom/subgraph/orchid/t;
    .registers 8

    .prologue
    .line 144
    new-instance v0, Lcom/subgraph/orchid/circuits/a/b;

    iget-object v1, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    invoke-virtual {v1}, Lcom/subgraph/orchid/circuits/f;->It()Lcom/subgraph/orchid/f;

    move-result-object v1

    iget-object v2, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    invoke-virtual {v2}, Lcom/subgraph/orchid/circuits/f;->Ii()I

    move-result v2

    const/4 v3, 0x0

    const/4 v5, 0x1

    move v4, p1

    invoke-direct/range {v0 .. v5}, Lcom/subgraph/orchid/circuits/a/b;-><init>(Lcom/subgraph/orchid/f;IIIZ)V

    return-object v0
.end method


# virtual methods
.method public final a(Lcom/subgraph/orchid/v;[B[B)Lcom/subgraph/orchid/f;
    .registers 8

    .prologue
    .line 136
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    invoke-virtual {v0}, Lcom/subgraph/orchid/circuits/f;->It()Lcom/subgraph/orchid/f;

    move-result-object v0

    invoke-static {p1, v0, p2, p3}, Lcom/subgraph/orchid/circuits/k;->a(Lcom/subgraph/orchid/v;Lcom/subgraph/orchid/f;[B[B)Lcom/subgraph/orchid/f;

    move-result-object v0

    .line 137
    sget-object v1, Lcom/subgraph/orchid/circuits/d;->logger:Ljava/util/logging/Logger;

    new-instance v2, Ljava/lang/StringBuilder;

    const-string v3, "Adding new circuit node for "

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

    invoke-interface {p1}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;

    move-result-object v3

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

    move-result-object v2

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

    move-result-object v2

    invoke-virtual {v1, v2}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V

    .line 138
    iget-object v1, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    invoke-virtual {v1, v0}, Lcom/subgraph/orchid/circuits/f;->c(Lcom/subgraph/orchid/f;)V

    .line 139
    return-object v0
.end method

.method final f(Lcom/subgraph/orchid/v;)Lcom/subgraph/orchid/f;
    .registers 11

    .prologue
    const/4 v1, 0x1

    const/4 v0, 0x0

    const/4 v8, 0x6

    const/4 v7, 0x2

    const/4 v2, 0x0

    .line 74
    iget-object v3, p0, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    invoke-virtual {v3}, Lcom/subgraph/orchid/circuits/f;->KH()I

    move-result v3

    if-nez v3, :cond_15

    .line 75
    new-instance v0, Lcom/subgraph/orchid/TorException;

    const-string v1, "Cannot EXTEND an empty circuit"

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 1088
    :cond_15
    iget-boolean v3, p0, Lcom/subgraph/orchid/circuits/d;->bBT:Z

    if-eqz v3, :cond_e2

    invoke-interface {p1}, Lcom/subgraph/orchid/v;->IW()[B

    move-result-object v3

    if-eqz v3, :cond_e2

    move v3, v1

    .line 78
    :goto_20
    if-eqz v3, :cond_169

    .line 79
    new-instance v3, Lcom/subgraph/orchid/circuits/o;

    invoke-direct {v3, p0, p1}, Lcom/subgraph/orchid/circuits/o;-><init>(Lcom/subgraph/orchid/circuits/d;Lcom/subgraph/orchid/v;)V

    .line 2026
    iget-object v4, v3, Lcom/subgraph/orchid/circuits/o;->bCO:Lcom/subgraph/orchid/crypto/n;

    .line 2042
    invoke-static {}, Lcom/subgraph/orchid/crypto/n;->Mc()Ljava/nio/ByteBuffer;

    move-result-object v5

    .line 2043
    iget-object v6, v4, Lcom/subgraph/orchid/crypto/n;->bGf:Lcom/subgraph/orchid/d/c;

    invoke-virtual {v6}, Lcom/subgraph/orchid/d/c;->Mf()[B

    move-result-object v6

    invoke-virtual {v5, v6}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;

    .line 2044
    iget-object v6, v4, Lcom/subgraph/orchid/crypto/n;->bGg:[B

    invoke-virtual {v5, v6}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;

    .line 2045
    iget-object v4, v4, Lcom/subgraph/orchid/crypto/n;->bGi:[B

    invoke-virtual {v5, v4}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;

    .line 2046
    invoke-virtual {v5}, Ljava/nio/ByteBuffer;->array()[B

    move-result-object v4

    .line 2051
    iget-object v5, v3, Lcom/subgraph/orchid/circuits/o;->bBG:Lcom/subgraph/orchid/circuits/d;

    .line 2148
    iget-object v5, v5, Lcom/subgraph/orchid/circuits/d;->bBF:Lcom/subgraph/orchid/circuits/f;

    invoke-virtual {v5}, Lcom/subgraph/orchid/circuits/f;->It()Lcom/subgraph/orchid/f;

    move-result-object v5

    .line 2149
    if-eqz v5, :cond_52

    .line 2150
    invoke-interface {v5}, Lcom/subgraph/orchid/f;->Iy()Lcom/subgraph/orchid/v;

    move-result-object v0

    .line 2051
    :cond_52
    invoke-interface {v0}, Lcom/subgraph/orchid/v;->IW()[B

    move-result-object v0

    if-eqz v0, :cond_e5

    move v0, v1

    .line 2027
    :goto_59
    if-eqz v0, :cond_f2

    .line 2028
    sget-object v0, Lcom/subgraph/orchid/circuits/o;->logger:Ljava/util/logging/Logger;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v5, "Extending circuit to "

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

    iget-object v5, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v5}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;

    move-result-object v5

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

    move-result-object v1

    const-string v5, " with NTor inside RELAY_EXTEND2"

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

    move-result-object v1

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

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V

    .line 3055
    iget-object v0, v3, Lcom/subgraph/orchid/circuits/o;->bBG:Lcom/subgraph/orchid/circuits/d;

    const/16 v1, 0xe

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/circuits/d;->eH(I)Lcom/subgraph/orchid/t;

    move-result-object v0

    .line 3057
    invoke-interface {v0, v7}, Lcom/subgraph/orchid/t;->eA(I)V

    .line 3059
    invoke-interface {v0, v2}, Lcom/subgraph/orchid/t;->eA(I)V

    .line 3060
    invoke-interface {v0, v8}, Lcom/subgraph/orchid/t;->eA(I)V

    .line 3061
    iget-object v1, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v1}, Lcom/subgraph/orchid/v;->JC()Lcom/subgraph/orchid/d/d;

    move-result-object v1

    invoke-virtual {v1}, Lcom/subgraph/orchid/d/d;->Mq()[B

    move-result-object v1

    invoke-interface {v0, v1}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 3062
    iget-object v1, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v1}, Lcom/subgraph/orchid/v;->JD()I

    move-result v1

    invoke-interface {v0, v1}, Lcom/subgraph/orchid/t;->eB(I)V

    .line 3064
    invoke-interface {v0, v7}, Lcom/subgraph/orchid/t;->eA(I)V

    .line 3065
    const/16 v1, 0x14

    invoke-interface {v0, v1}, Lcom/subgraph/orchid/t;->eA(I)V

    .line 3066
    iget-object v1, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v1}, Lcom/subgraph/orchid/v;->JF()Lcom/subgraph/orchid/d/c;

    move-result-object v1

    invoke-virtual {v1}, Lcom/subgraph/orchid/d/c;->Mf()[B

    move-result-object v1

    invoke-interface {v0, v1}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 3068
    invoke-interface {v0, v7}, Lcom/subgraph/orchid/t;->eB(I)V

    .line 3069
    array-length v1, v4

    invoke-interface {v0, v1}, Lcom/subgraph/orchid/t;->eB(I)V

    .line 3070
    invoke-interface {v0, v4}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 3038
    iget-object v1, v3, Lcom/subgraph/orchid/circuits/o;->bBG:Lcom/subgraph/orchid/circuits/d;

    invoke-direct {v1, v0}, Lcom/subgraph/orchid/circuits/d;->a(Lcom/subgraph/orchid/t;)V

    .line 3039
    iget-object v0, v3, Lcom/subgraph/orchid/circuits/o;->bBG:Lcom/subgraph/orchid/circuits/d;

    const/16 v1, 0xf

    iget-object v2, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-direct {v0, v1, v2}, Lcom/subgraph/orchid/circuits/d;->a(ILcom/subgraph/orchid/v;)Lcom/subgraph/orchid/t;

    move-result-object v0

    .line 3096
    invoke-interface {v0}, Lcom/subgraph/orchid/t;->Il()I

    move-result v1

    .line 3097
    invoke-interface {v0}, Lcom/subgraph/orchid/t;->Io()I

    move-result v2

    if-le v1, v2, :cond_e8

    .line 3098
    new-instance v0, Lcom/subgraph/orchid/TorException;

    const-string v1, "Incorrect payload length value in RELAY_EXTENED2 cell"

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V

    throw v0

    :cond_e2
    move v3, v2

    .line 1088
    goto/16 :goto_20

    :cond_e5
    move v0, v2

    .line 2051
    goto/16 :goto_59

    .line 3100
    :cond_e8
    new-array v1, v1, [B

    .line 3101
    invoke-interface {v0, v1}, Lcom/subgraph/orchid/t;->ah([B)V

    .line 3103
    invoke-virtual {v3, v1}, Lcom/subgraph/orchid/circuits/o;->ak([B)Lcom/subgraph/orchid/f;

    move-result-object v0

    .line 6042
    :cond_f1
    :goto_f1
    return-object v0

    .line 2031
    :cond_f2
    sget-object v0, Lcom/subgraph/orchid/circuits/o;->logger:Ljava/util/logging/Logger;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "Extending circuit to "

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

    iget-object v2, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v2}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;

    move-result-object v2

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

    move-result-object v1

    const-string v2, " with NTor inside RELAY_EXTEND"

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

    move-result-object v1

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

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V

    .line 4044
    invoke-static {}, Lcom/subgraph/orchid/crypto/n;->Md()[B

    move-result-object v0

    .line 4075
    iget-object v1, v3, Lcom/subgraph/orchid/circuits/o;->bBG:Lcom/subgraph/orchid/circuits/d;

    invoke-direct {v1, v8}, Lcom/subgraph/orchid/circuits/d;->eH(I)Lcom/subgraph/orchid/t;

    move-result-object v1

    .line 4076
    iget-object v2, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v2}, Lcom/subgraph/orchid/v;->JC()Lcom/subgraph/orchid/d/d;

    move-result-object v2

    invoke-virtual {v2}, Lcom/subgraph/orchid/d/d;->Mq()[B

    move-result-object v2

    invoke-interface {v1, v2}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 4077
    iget-object v2, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v2}, Lcom/subgraph/orchid/v;->JD()I

    move-result v2

    invoke-interface {v1, v2}, Lcom/subgraph/orchid/t;->eB(I)V

    .line 4078
    array-length v2, v4

    array-length v5, v0

    add-int/2addr v2, v5

    rsub-int v2, v2, 0xba

    .line 4079
    new-array v2, v2, [B

    .line 4080
    invoke-interface {v1, v0}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 4081
    invoke-interface {v1, v4}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 4082
    invoke-interface {v1, v2}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 4083
    iget-object v0, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v0}, Lcom/subgraph/orchid/v;->JF()Lcom/subgraph/orchid/d/c;

    move-result-object v0

    invoke-virtual {v0}, Lcom/subgraph/orchid/d/c;->Mf()[B

    move-result-object v0

    invoke-interface {v1, v0}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 4045
    iget-object v0, v3, Lcom/subgraph/orchid/circuits/o;->bBG:Lcom/subgraph/orchid/circuits/d;

    invoke-direct {v0, v1}, Lcom/subgraph/orchid/circuits/d;->a(Lcom/subgraph/orchid/t;)V

    .line 4046
    iget-object v0, v3, Lcom/subgraph/orchid/circuits/o;->bBG:Lcom/subgraph/orchid/circuits/d;

    const/4 v1, 0x7

    iget-object v2, v3, Lcom/subgraph/orchid/circuits/o;->router:Lcom/subgraph/orchid/v;

    invoke-direct {v0, v1, v2}, Lcom/subgraph/orchid/circuits/d;->a(ILcom/subgraph/orchid/v;)Lcom/subgraph/orchid/t;

    move-result-object v0

    .line 4088
    const/16 v1, 0x94

    new-array v1, v1, [B

    .line 4089
    invoke-interface {v0, v1}, Lcom/subgraph/orchid/t;->ah([B)V

    .line 4091
    invoke-virtual {v3, v1}, Lcom/subgraph/orchid/circuits/o;->ak([B)Lcom/subgraph/orchid/f;

    move-result-object v0

    goto :goto_f1

    .line 82
    :cond_169
    new-instance v1, Lcom/subgraph/orchid/circuits/t;

    invoke-direct {v1, p0, p1}, Lcom/subgraph/orchid/circuits/t;-><init>(Lcom/subgraph/orchid/circuits/d;Lcom/subgraph/orchid/v;)V

    .line 5025
    sget-object v2, Lcom/subgraph/orchid/circuits/t;->logger:Ljava/util/logging/Logger;

    new-instance v3, Ljava/lang/StringBuilder;

    const-string v4, "Extending to "

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

    iget-object v4, v1, Lcom/subgraph/orchid/circuits/t;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v4}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;

    move-result-object v4

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

    move-result-object v3

    const-string v4, " with TAP"

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

    move-result-object v3

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

    move-result-object v3

    invoke-virtual {v2, v3}, Ljava/util/logging/Logger;->fine(Ljava/lang/String;)V

    .line 5048
    iget-object v2, v1, Lcom/subgraph/orchid/circuits/t;->bBG:Lcom/subgraph/orchid/circuits/d;

    invoke-direct {v2, v8}, Lcom/subgraph/orchid/circuits/d;->eH(I)Lcom/subgraph/orchid/t;

    move-result-object v2

    .line 5049
    iget-object v3, v1, Lcom/subgraph/orchid/circuits/t;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v3}, Lcom/subgraph/orchid/v;->JC()Lcom/subgraph/orchid/d/d;

    move-result-object v3

    invoke-virtual {v3}, Lcom/subgraph/orchid/d/d;->Mq()[B

    move-result-object v3

    invoke-interface {v2, v3}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 5050
    iget-object v3, v1, Lcom/subgraph/orchid/circuits/t;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v3}, Lcom/subgraph/orchid/v;->JD()I

    move-result v3

    invoke-interface {v2, v3}, Lcom/subgraph/orchid/t;->eB(I)V

    .line 5051
    iget-object v3, v1, Lcom/subgraph/orchid/circuits/t;->bDl:Lcom/subgraph/orchid/crypto/s;

    .line 5170
    invoke-virtual {v3}, Lcom/subgraph/orchid/crypto/s;->getPublicKeyBytes()[B

    move-result-object v4

    .line 5171
    new-instance v5, Lcom/subgraph/orchid/crypto/h;

    invoke-direct {v5}, Lcom/subgraph/orchid/crypto/h;-><init>()V

    .line 5172
    iget-object v3, v3, Lcom/subgraph/orchid/crypto/s;->bED:Lcom/subgraph/orchid/crypto/o;

    invoke-virtual {v5, v4, v3}, Lcom/subgraph/orchid/crypto/h;->a([BLcom/subgraph/orchid/crypto/o;)[B

    move-result-object v3

    .line 5051
    invoke-interface {v2, v3}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 5052
    iget-object v3, v1, Lcom/subgraph/orchid/circuits/t;->router:Lcom/subgraph/orchid/v;

    invoke-interface {v3}, Lcom/subgraph/orchid/v;->JF()Lcom/subgraph/orchid/d/c;

    move-result-object v3

    invoke-virtual {v3}, Lcom/subgraph/orchid/d/c;->Mf()[B

    move-result-object v3

    invoke-interface {v2, v3}, Lcom/subgraph/orchid/t;->ai([B)V

    .line 5027
    iget-object v3, v1, Lcom/subgraph/orchid/circuits/t;->bBG:Lcom/subgraph/orchid/circuits/d;

    invoke-direct {v3, v2}, Lcom/subgraph/orchid/circuits/d;->a(Lcom/subgraph/orchid/t;)V

    .line 5028
    iget-object v2, v1, Lcom/subgraph/orchid/circuits/t;->bBG:Lcom/subgraph/orchid/circuits/d;

    const/4 v3, 0x7

    iget-object v4, v1, Lcom/subgraph/orchid/circuits/t;->router:Lcom/subgraph/orchid/v;

    invoke-direct {v2, v3, v4}, Lcom/subgraph/orchid/circuits/d;->a(ILcom/subgraph/orchid/v;)Lcom/subgraph/orchid/t;

    move-result-object v2

    .line 5029
    if-eqz v2, :cond_f1

    .line 6036
    const/16 v3, 0x94

    new-array v3, v3, [B

    .line 6037
    invoke-interface {v2, v3}, Lcom/subgraph/orchid/t;->ah([B)V

    .line 6039
    const/16 v2, 0x48

    new-array v2, v2, [B

    .line 6040
    const/16 v4, 0x14

    new-array v4, v4, [B

    .line 6041
    iget-object v5, v1, Lcom/subgraph/orchid/circuits/t;->bDl:Lcom/subgraph/orchid/crypto/s;

    invoke-virtual {v5, v3, v2, v4}, Lcom/subgraph/orchid/crypto/s;->b([B[B[B)Z

    move-result v3

    if-eqz v3, :cond_f1

    .line 6044
    iget-object v0, v1, Lcom/subgraph/orchid/circuits/t;->bBG:Lcom/subgraph/orchid/circuits/d;

    iget-object v1, v1, Lcom/subgraph/orchid/circuits/t;->router:Lcom/subgraph/orchid/v;

    invoke-virtual {v0, v1, v2, v4}, Lcom/subgraph/orchid/circuits/d;->a(Lcom/subgraph/orchid/v;[B[B)Lcom/subgraph/orchid/f;

    move-result-object v0

    goto/16 :goto_f1
.end method