a.smali

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

# interfaces
.implements Lcom/subgraph/orchid/b;


# instance fields
.field private final bBU:I

.field private final bDy:I

.field protected final bDz:Ljava/nio/ByteBuffer;


# direct methods
.method protected constructor <init>(II)V
    .registers 5

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

    .line 81
    iput p1, p0, Lcom/subgraph/orchid/circuits/a/a;->bBU:I

    .line 82
    iput p2, p0, Lcom/subgraph/orchid/circuits/a/a;->bDy:I

    .line 83
    const/16 v0, 0x200

    new-array v0, v0, [B

    invoke-static {v0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v0

    iput-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    .line 84
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-short v1, p1

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;

    .line 85
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-byte v1, p2

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;

    .line 86
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;

    .line 87
    return-void
.end method

.method public constructor <init>(III)V
    .registers 6

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

    .line 70
    iput p1, p0, Lcom/subgraph/orchid/circuits/a/a;->bBU:I

    .line 71
    iput p2, p0, Lcom/subgraph/orchid/circuits/a/a;->bDy:I

    .line 72
    add-int/lit8 v0, p3, 0x5

    new-array v0, v0, [B

    invoke-static {v0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v0

    iput-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    .line 73
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-short v1, p1

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;

    .line 74
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-byte v1, p2

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;

    .line 75
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-short v1, p3

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;

    .line 76
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;

    .line 77
    return-void
.end method

.method protected constructor <init>([B)V
    .registers 4

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

    .line 90
    invoke-static {p1}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v0

    iput-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    .line 91
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v0

    const v1, 0xffff

    and-int/2addr v0, v1

    iput v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bBU:I

    .line 92
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->get()B

    move-result v0

    and-int/lit16 v0, v0, 0xff

    iput v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDy:I

    .line 93
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;

    .line 94
    return-void
.end method

.method private static a(Ljava/io/InputStream;[BII)V
    .registers 7

    .prologue
    .line 55
    const/4 v0, 0x0

    .line 56
    :goto_1
    if-ge v0, p3, :cond_16

    .line 57
    add-int v1, p2, v0

    sub-int v2, p3, v0

    invoke-virtual {p0, p1, v1, v2}, Ljava/io/InputStream;->read([BII)I

    move-result v1

    .line 58
    const/4 v2, -0x1

    if-ne v1, v2, :cond_14

    .line 59
    new-instance v0, Ljava/io/EOFException;

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

    throw v0

    .line 60
    :cond_14
    add-int/2addr v0, v1

    .line 61
    goto :goto_1

    .line 62
    :cond_16
    return-void
.end method

.method public static aJ(II)Lcom/subgraph/orchid/circuits/a/a;
    .registers 3

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

    invoke-direct {v0, p0, p1}, Lcom/subgraph/orchid/circuits/a/a;-><init>(II)V

    return-object v0
.end method

.method private static b(Ljava/io/InputStream;[B)V
    .registers 4

    .prologue
    .line 51
    const/4 v0, 0x0

    array-length v1, p1

    invoke-static {p0, p1, v0, v1}, Lcom/subgraph/orchid/circuits/a/a;->a(Ljava/io/InputStream;[BII)V

    .line 52
    return-void
.end method

.method public static eL(I)Ljava/lang/String;
    .registers 3

    .prologue
    .line 184
    packed-switch p0, :pswitch_data_3a

    .line 212
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "Error code "

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

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

    move-result-object v0

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

    move-result-object v0

    :goto_12
    return-object v0

    .line 186
    :pswitch_13
    const-string v0, "No error reason given"

    goto :goto_12

    .line 188
    :pswitch_16
    const-string v0, "Tor protocol violation"

    goto :goto_12

    .line 190
    :pswitch_19
    const-string v0, "Internal error"

    goto :goto_12

    .line 192
    :pswitch_1c
    const-string v0, "Response to a TRUNCATE command sent from client"

    goto :goto_12

    .line 194
    :pswitch_1f
    const-string v0, "Not currently operating; trying to save bandwidth."

    goto :goto_12

    .line 196
    :pswitch_22
    const-string v0, "Out of memory, sockets, or circuit IDs."

    goto :goto_12

    .line 198
    :pswitch_25
    const-string v0, "Unable to reach server."

    goto :goto_12

    .line 200
    :pswitch_28
    const-string v0, "Connected to server, but its OR identity was not as expected."

    goto :goto_12

    .line 202
    :pswitch_2b
    const-string v0, "The OR connection that was carrying this circuit died."

    goto :goto_12

    .line 204
    :pswitch_2e
    const-string v0, "The circuit has expired for being dirty or old."

    goto :goto_12

    .line 206
    :pswitch_31
    const-string v0, "Circuit construction took too long."

    goto :goto_12

    .line 208
    :pswitch_34
    const-string v0, "The circuit was destroyed without client TRUNCATE"

    goto :goto_12

    .line 210
    :pswitch_37
    const-string v0, "Request for unknown hidden service"

    goto :goto_12

    .line 184
    :pswitch_data_3a
    .packed-switch 0x0
        :pswitch_13
        :pswitch_16
        :pswitch_19
        :pswitch_1c
        :pswitch_1f
        :pswitch_22
        :pswitch_25
        :pswitch_28
        :pswitch_2b
        :pswitch_2e
        :pswitch_31
        :pswitch_34
        :pswitch_37
    .end packed-switch
.end method

.method public static i(Ljava/io/InputStream;)Lcom/subgraph/orchid/circuits/a/a;
    .registers 6

    .prologue
    const/4 v3, 0x3

    .line 21
    .line 1036
    new-array v0, v3, [B

    .line 1037
    invoke-static {p0, v0}, Lcom/subgraph/orchid/circuits/a/a;->b(Ljava/io/InputStream;[B)V

    .line 1038
    invoke-static {v0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;

    move-result-object v0

    .line 22
    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v1

    const v2, 0xffff

    and-int/2addr v1, v2

    .line 23
    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->get()B

    move-result v0

    and-int/lit16 v2, v0, 0xff

    .line 25
    const/4 v0, 0x7

    if-eq v2, v0, :cond_1f

    const/16 v0, 0x7f

    if-le v2, v0, :cond_42

    .line 1042
    :cond_1f
    const/4 v0, 0x2

    new-array v0, v0, [B

    .line 1043
    invoke-static {p0, v0}, Lcom/subgraph/orchid/circuits/a/a;->b(Ljava/io/InputStream;[B)V

    .line 1044
    const/4 v3, 0x0

    aget-byte v3, v0, v3

    and-int/lit16 v3, v3, 0xff

    shl-int/lit8 v3, v3, 0x8

    const/4 v4, 0x1

    aget-byte v0, v0, v4

    and-int/lit16 v0, v0, 0xff

    or-int/2addr v3, v0

    .line 1045
    new-instance v0, Lcom/subgraph/orchid/circuits/a/a;

    invoke-direct {v0, v1, v2, v3}, Lcom/subgraph/orchid/circuits/a/a;-><init>(III)V

    .line 1176
    iget-object v1, v0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v1}, Ljava/nio/ByteBuffer;->array()[B

    move-result-object v1

    .line 1046
    const/4 v2, 0x5

    invoke-static {p0, v1, v2, v3}, Lcom/subgraph/orchid/circuits/a/a;->a(Ljava/io/InputStream;[BII)V

    .line 32
    :goto_41
    return-object v0

    .line 29
    :cond_42
    new-instance v0, Lcom/subgraph/orchid/circuits/a/a;

    invoke-direct {v0, v1, v2}, Lcom/subgraph/orchid/circuits/a/a;-><init>(II)V

    .line 2176
    iget-object v1, v0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v1}, Ljava/nio/ByteBuffer;->array()[B

    move-result-object v1

    .line 30
    const/16 v2, 0x1fd

    invoke-static {p0, v1, v3, v2}, Lcom/subgraph/orchid/circuits/a/a;->a(Ljava/io/InputStream;[BII)V

    goto :goto_41
.end method


# virtual methods
.method public final Ii()I
    .registers 2

    .prologue
    .line 97
    iget v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bBU:I

    return v0
.end method

.method public final Ij()I
    .registers 2

    .prologue
    .line 101
    iget v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDy:I

    return v0
.end method

.method public final Ik()I
    .registers 2

    .prologue
    .line 109
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->get()B

    move-result v0

    and-int/lit16 v0, v0, 0xff

    return v0
.end method

.method public final Il()I
    .registers 3

    .prologue
    .line 117
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->getShort()S

    move-result v0

    const v1, 0xffff

    and-int/2addr v0, v1

    return v0
.end method

.method public final Im()I
    .registers 3

    .prologue
    .line 125
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    const/4 v1, 0x4

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->getShort(I)S

    move-result v0

    const v1, 0xffff

    and-int/2addr v0, v1

    return v0
.end method

.method public final In()I
    .registers 2

    .prologue
    .line 133
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->position()I

    move-result v0

    return v0
.end method

.method public final Io()I
    .registers 2

    .prologue
    .line 137
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->remaining()I

    move-result v0

    return v0
.end method

.method public final Ip()[B
    .registers 2

    .prologue
    .line 176
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B

    move-result-object v0

    return-object v0
.end method

.method public final aI(II)V
    .registers 5

    .prologue
    .line 145
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-byte v1, p2

    invoke-virtual {v0, p1, v1}, Ljava/nio/ByteBuffer;->put(IB)Ljava/nio/ByteBuffer;

    .line 146
    return-void
.end method

.method public final ah([B)V
    .registers 3

    .prologue
    .line 129
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;

    .line 130
    return-void
.end method

.method public final ai([B)V
    .registers 3

    .prologue
    .line 168
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

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

    .line 169
    return-void
.end method

.method public final eA(I)V
    .registers 4

    .prologue
    .line 141
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-byte v1, p1

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;

    .line 142
    return-void
.end method

.method public final eB(I)V
    .registers 4

    .prologue
    .line 149
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    int-to-short v1, p1

    invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putShort(S)Ljava/nio/ByteBuffer;

    .line 150
    return-void
.end method

.method public final eC(I)V
    .registers 3

    .prologue
    .line 157
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;

    .line 158
    return-void
.end method

.method public final eK(I)V
    .registers 5

    .prologue
    .line 153
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    const/16 v1, 0xc

    int-to-short v2, p1

    invoke-virtual {v0, v1, v2}, Ljava/nio/ByteBuffer;->putShort(IS)Ljava/nio/ByteBuffer;

    .line 154
    return-void
.end method

.method public final ez(I)I
    .registers 3

    .prologue
    .line 113
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->get(I)B

    move-result v0

    and-int/lit16 v0, v0, 0xff

    return v0
.end method

.method public final getInt()I
    .registers 2

    .prologue
    .line 121
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->getInt()I

    move-result v0

    return v0
.end method

.method public final gm(Ljava/lang/String;)V
    .registers 5

    .prologue
    .line 161
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v0

    add-int/lit8 v0, v0, 0x1

    new-array v1, v0, [B

    .line 162
    const/4 v0, 0x0

    :goto_9
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v2

    if-ge v0, v2, :cond_19

    .line 163
    invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C

    move-result v2

    int-to-byte v2, v2

    aput-byte v2, v1, v0

    .line 162
    add-int/lit8 v0, v0, 0x1

    goto :goto_9

    .line 164
    :cond_19
    invoke-virtual {p0, v1}, Lcom/subgraph/orchid/circuits/a/a;->ai([B)V

    .line 165
    return-void
.end method

.method public final m([BII)V
    .registers 5

    .prologue
    .line 172
    iget-object v0, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v0, p1, p2, p3}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;

    .line 173
    return-void
.end method

.method public toString()Ljava/lang/String;
    .registers 3

    .prologue
    .line 180
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "Cell: circuit_id="

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

    iget v1, p0, Lcom/subgraph/orchid/circuits/a/a;->bBU:I

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

    move-result-object v0

    const-string v1, " command="

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

    move-result-object v0

    iget v1, p0, Lcom/subgraph/orchid/circuits/a/a;->bDy:I

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

    move-result-object v0

    const-string v1, " payload_len="

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

    move-result-object v0

    iget-object v1, p0, Lcom/subgraph/orchid/circuits/a/a;->bDz:Ljava/nio/ByteBuffer;

    invoke-virtual {v1}, Ljava/nio/ByteBuffer;->position()I

    move-result v1

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

    move-result-object v0

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

    move-result-object v0

    return-object v0
.end method