k.smali
.class public final Lcom/subgraph/orchid/circuits/k;
.super Ljava/lang/Object;
.source "CircuitNodeImpl.java"
# interfaces
.implements Lcom/subgraph/orchid/f;
# instance fields
.field private bCA:I
.field private final bCw:Lcom/subgraph/orchid/circuits/j;
.field private final bCx:Lcom/subgraph/orchid/f;
.field private final bCy:Ljava/lang/Object;
.field private bCz:I
.field private final router:Lcom/subgraph/orchid/v;
# direct methods
.method private constructor <init>(Lcom/subgraph/orchid/v;Lcom/subgraph/orchid/f;Lcom/subgraph/orchid/circuits/j;)V
.registers 6
.prologue
const/16 v1, 0x3e8
.line 35
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 36
iput-object p2, p0, Lcom/subgraph/orchid/circuits/k;->bCx:Lcom/subgraph/orchid/f;
.line 37
iput-object p1, p0, Lcom/subgraph/orchid/circuits/k;->router:Lcom/subgraph/orchid/v;
.line 38
iput-object p3, p0, Lcom/subgraph/orchid/circuits/k;->bCw:Lcom/subgraph/orchid/circuits/j;
.line 39
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/subgraph/orchid/circuits/k;->bCy:Ljava/lang/Object;
.line 40
iput v1, p0, Lcom/subgraph/orchid/circuits/k;->bCz:I
.line 41
iput v1, p0, Lcom/subgraph/orchid/circuits/k;->bCA:I
.line 42
return-void
.end method
.method public static a(Lcom/subgraph/orchid/v;Lcom/subgraph/orchid/f;[B[B)Lcom/subgraph/orchid/f;
.registers 6
.prologue
.line 1013
new-instance v0, Lcom/subgraph/orchid/circuits/j;
invoke-direct {v0, p2, p3}, Lcom/subgraph/orchid/circuits/j;-><init>([B[B)V
.line 21
new-instance v1, Lcom/subgraph/orchid/circuits/k;
invoke-direct {v1, p0, p1, v0}, Lcom/subgraph/orchid/circuits/k;-><init>(Lcom/subgraph/orchid/v;Lcom/subgraph/orchid/f;Lcom/subgraph/orchid/circuits/j;)V
return-object v1
.end method
.method private bg(Z)V
.registers 5
.prologue
.line 101
iget-object v1, p0, Lcom/subgraph/orchid/circuits/k;->bCy:Ljava/lang/Object;
monitor-enter v1
.line 102
:goto_3
:try_start_3
iget v0, p0, Lcom/subgraph/orchid/circuits/k;->bCz:I
:try_end_5
.catchall {:try_start_3 .. :try_end_5} :catchall_16
if-nez v0, :cond_19
.line 104
:try_start_7
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->bCy:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->wait()V
:try_end_c
.catch Ljava/lang/InterruptedException; {:try_start_7 .. :try_end_c} :catch_d
.catchall {:try_start_7 .. :try_end_c} :catchall_16
goto :goto_3
.line 106
:catch_d
move-exception v0
:try_start_e
new-instance v0, Lcom/subgraph/orchid/TorException;
const-string v2, "Thread interrupted while waiting for circuit send window"
invoke-direct {v0, v2}, Lcom/subgraph/orchid/TorException;-><init>(Ljava/lang/String;)V
throw v0
.line 111
:catchall_16
move-exception v0
monitor-exit v1
:try_end_18
.catchall {:try_start_e .. :try_end_18} :catchall_16
throw v0
.line 109
:cond_19
if-eqz p1, :cond_21
.line 110
:try_start_1b
iget v0, p0, Lcom/subgraph/orchid/circuits/k;->bCz:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/subgraph/orchid/circuits/k;->bCz:I
.line 111
:cond_21
monitor-exit v1
:try_end_22
.catchall {:try_start_1b .. :try_end_22} :catchall_16
return-void
.end method
# virtual methods
.method public final IA()Lcom/subgraph/orchid/f;
.registers 2
.prologue
.line 49
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->bCx:Lcom/subgraph/orchid/f;
return-object v0
.end method
.method public final IB()V
.registers 2
.prologue
.line 93
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/subgraph/orchid/circuits/k;->bg(Z)V
.line 94
return-void
.end method
.method public final IC()V
.registers 2
.prologue
.line 97
const/4 v0, 0x1
invoke-direct {p0, v0}, Lcom/subgraph/orchid/circuits/k;->bg(Z)V
.line 98
return-void
.end method
.method public final ID()V
.registers 3
.prologue
.line 115
iget-object v1, p0, Lcom/subgraph/orchid/circuits/k;->bCy:Ljava/lang/Object;
monitor-enter v1
.line 116
:try_start_3
iget v0, p0, Lcom/subgraph/orchid/circuits/k;->bCz:I
add-int/lit8 v0, v0, 0x64
iput v0, p0, Lcom/subgraph/orchid/circuits/k;->bCz:I
.line 117
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->bCy:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->notifyAll()V
.line 118
monitor-exit v1
return-void
:catchall_10
move-exception v0
monitor-exit v1
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_10
throw v0
.end method
.method public final IE()V
.registers 3
.prologue
.line 77
iget-object v1, p0, Lcom/subgraph/orchid/circuits/k;->bCy:Ljava/lang/Object;
monitor-enter v1
.line 78
:try_start_3
iget v0, p0, Lcom/subgraph/orchid/circuits/k;->bCA:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/subgraph/orchid/circuits/k;->bCA:I
.line 79
monitor-exit v1
return-void
:catchall_b
move-exception v0
monitor-exit v1
:try_end_d
.catchall {:try_start_3 .. :try_end_d} :catchall_b
throw v0
.end method
.method public final IF()Z
.registers 4
.prologue
.line 83
iget-object v1, p0, Lcom/subgraph/orchid/circuits/k;->bCy:Ljava/lang/Object;
monitor-enter v1
.line 84
:try_start_3
iget v0, p0, Lcom/subgraph/orchid/circuits/k;->bCA:I
const/16 v2, 0x384
if-gt v0, v2, :cond_12
.line 85
iget v0, p0, Lcom/subgraph/orchid/circuits/k;->bCA:I
add-int/lit8 v0, v0, 0x64
iput v0, p0, Lcom/subgraph/orchid/circuits/k;->bCA:I
.line 86
const/4 v0, 0x1
monitor-exit v1
.line 88
:goto_11
return v0
:cond_12
const/4 v0, 0x0
monitor-exit v1
goto :goto_11
.line 89
:catchall_15
move-exception v0
monitor-exit v1
:try_end_17
.catchall {:try_start_3 .. :try_end_17} :catchall_15
throw v0
.end method
.method public final Iy()Lcom/subgraph/orchid/v;
.registers 2
.prologue
.line 45
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->router:Lcom/subgraph/orchid/v;
return-object v0
.end method
.method public final Iz()[B
.registers 2
.prologue
.line 65
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->bCw:Lcom/subgraph/orchid/circuits/j;
.line 2070
iget-object v0, v0, Lcom/subgraph/orchid/circuits/j;->bCs:Lcom/subgraph/orchid/crypto/m;
invoke-virtual {v0}, Lcom/subgraph/orchid/crypto/m;->Mb()[B
move-result-object v0
.line 65
return-object v0
.end method
.method public final b(Lcom/subgraph/orchid/t;)V
.registers 4
.prologue
.line 61
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->bCw:Lcom/subgraph/orchid/circuits/j;
.line 2066
iget-object v0, v0, Lcom/subgraph/orchid/circuits/j;->bCs:Lcom/subgraph/orchid/crypto/m;
invoke-interface {p1}, Lcom/subgraph/orchid/b;->Ip()[B
move-result-object v1
invoke-virtual {v0, v1}, Lcom/subgraph/orchid/crypto/m;->am([B)V
.line 62
return-void
.end method
.method public final c(Lcom/subgraph/orchid/t;)V
.registers 6
.prologue
.line 53
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->bCw:Lcom/subgraph/orchid/circuits/j;
.line 1057
iget-object v0, v0, Lcom/subgraph/orchid/circuits/j;->bCu:Lcom/subgraph/orchid/crypto/r;
invoke-interface {p1}, Lcom/subgraph/orchid/b;->Ip()[B
move-result-object v1
const/4 v2, 0x3
const/16 v3, 0x1fd
invoke-virtual {v0, v1, v2, v3}, Lcom/subgraph/orchid/crypto/r;->n([BII)V
.line 54
return-void
.end method
.method public final c(Lcom/subgraph/orchid/b;)Z
.registers 10
.prologue
const/4 v7, 0x4
const/4 v0, 0x0
.line 57
iget-object v2, p0, Lcom/subgraph/orchid/circuits/k;->bCw:Lcom/subgraph/orchid/circuits/j;
.line 1061
iget-object v1, v2, Lcom/subgraph/orchid/circuits/j;->bCv:Lcom/subgraph/orchid/crypto/r;
invoke-interface {p1}, Lcom/subgraph/orchid/b;->Ip()[B
move-result-object v3
const/4 v4, 0x3
const/16 v5, 0x1fd
invoke-virtual {v1, v3, v4, v5}, Lcom/subgraph/orchid/crypto/r;->n([BII)V
.line 1074
invoke-interface {p1}, Lcom/subgraph/orchid/b;->Im()I
move-result v1
if-eqz v1, :cond_17
.line 1082
:goto_16
return v0
.line 1090
:cond_17
new-array v3, v7, [B
move v1, v0
.line 1091
:goto_1a
if-ge v1, v7, :cond_2d
.line 1092
add-int/lit8 v4, v1, 0x8
invoke-interface {p1, v4}, Lcom/subgraph/orchid/b;->ez(I)I
move-result v4
int-to-byte v4, v4
aput-byte v4, v3, v1
.line 1093
add-int/lit8 v4, v1, 0x8
invoke-interface {p1, v4, v0}, Lcom/subgraph/orchid/b;->aI(II)V
.line 1091
add-int/lit8 v1, v1, 0x1
goto :goto_1a
.line 1078
:cond_2d
iget-object v1, v2, Lcom/subgraph/orchid/circuits/j;->bCt:Lcom/subgraph/orchid/crypto/m;
invoke-interface {p1}, Lcom/subgraph/orchid/b;->Ip()[B
move-result-object v4
invoke-virtual {v1, v4}, Lcom/subgraph/orchid/crypto/m;->al([B)[B
move-result-object v4
move v1, v0
.line 1079
:goto_38
if-ge v1, v7, :cond_47
.line 1080
aget-byte v5, v3, v1
aget-byte v6, v4, v1
if-eq v5, v6, :cond_44
.line 1081
invoke-static {p1, v3}, Lcom/subgraph/orchid/circuits/j;->a(Lcom/subgraph/orchid/b;[B)V
goto :goto_16
.line 1079
:cond_44
add-int/lit8 v1, v1, 0x1
goto :goto_38
.line 1084
:cond_47
iget-object v0, v2, Lcom/subgraph/orchid/circuits/j;->bCt:Lcom/subgraph/orchid/crypto/m;
invoke-interface {p1}, Lcom/subgraph/orchid/b;->Ip()[B
move-result-object v1
invoke-virtual {v0, v1}, Lcom/subgraph/orchid/crypto/m;->am([B)V
.line 1085
invoke-static {p1, v3}, Lcom/subgraph/orchid/circuits/j;->a(Lcom/subgraph/orchid/b;[B)V
.line 1086
const/4 v0, 0x1
.line 57
goto :goto_16
.end method
.method public final toString()Ljava/lang/String;
.registers 3
.prologue
.line 69
iget-object v0, p0, Lcom/subgraph/orchid/circuits/k;->router:Lcom/subgraph/orchid/v;
if-eqz v0, :cond_20
.line 70
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "|"
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v1, p0, Lcom/subgraph/orchid/circuits/k;->router:Lcom/subgraph/orchid/v;
invoke-interface {v1}, Lcom/subgraph/orchid/v;->JB()Ljava/lang/String;
move-result-object v1
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
.line 72
:goto_1f
return-object v0
:cond_20
const-string v0, "|()|"
goto :goto_1f
.end method