c.smali

.class public Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;
.super Ljava/lang/Object;
.source "SourceFile"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;
    }
.end annotation


# static fields
.field private static final c:I


# instance fields
.field public a:Ljava/net/InetAddress;

.field private b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

.field private d:I

.field private final e:[J


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

    const v0, 0x156b

    invoke-static {v0}, Lnp/NPFog;->d(I)I

    move-result v0

    sput v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->c:I

    return-void
.end method

.method public constructor <init>(Ljava/net/InetAddress;Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;)V
    .registers 4
    .param p1, "remote"    # Ljava/net/InetAddress;
    .param p2, "listener"    # Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

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

    .line 17
    const/16 v0, 0x1770

    iput v0, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I

    .line 18
    const/4 v0, 0x4

    new-array v0, v0, [J

    iput-object v0, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    .line 21
    iput-object p1, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a:Ljava/net/InetAddress;

    .line 22
    iput-object p2, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

    .line 23
    return-void
.end method

.method private a(Ljava/net/InetSocketAddress;II)V
    .registers 13
    .param p1, "socketAddress"    # Ljava/net/InetSocketAddress;
    .param p2, "timeOut"    # I
    .param p3, "index"    # I

    .line 113
    const/4 v0, 0x0

    .line 114
    .local v0, "socket":Ljava/net/Socket;
    const-wide/16 v1, 0x0

    .line 115
    .local v1, "start":J
    const-wide/16 v3, 0x0

    .line 117
    .local v3, "end":J
    :try_start_5
    new-instance v5, Ljava/net/Socket;

    invoke-direct {v5}, Ljava/net/Socket;-><init>()V

    move-object v0, v5

    .line 118
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v5

    move-wide v1, v5

    .line 119
    invoke-virtual {v0, p1, p2}, Ljava/net/Socket;->connect(Ljava/net/SocketAddress;I)V

    .line 120
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v5

    move-wide v3, v5

    .line 121
    iget-object v5, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    sub-long v6, v3, v1

    aput-wide v6, v5, p3
    :try_end_1e
    .catch Ljava/net/SocketTimeoutException; {:try_start_5 .. :try_end_1e} :catch_3a
    .catch Ljava/io/IOException; {:try_start_5 .. :try_end_1e} :catch_2a
    .catchall {:try_start_5 .. :try_end_1e} :catchall_28

    .line 129
    nop

    .line 131
    :try_start_1f
    invoke-virtual {v0}, Ljava/net/Socket;->close()V
    :try_end_22
    .catch Ljava/io/IOException; {:try_start_1f .. :try_end_22} :catch_23

    .line 134
    :goto_22
    goto :goto_4a

    .line 132
    :catch_23
    move-exception v5

    .line 133
    .local v5, "e":Ljava/io/IOException;
    invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V

    .end local v5    # "e":Ljava/io/IOException;
    goto :goto_22

    .line 129
    :catchall_28
    move-exception v5

    goto :goto_4b

    .line 125
    :catch_2a
    move-exception v5

    .line 126
    .restart local v5    # "e":Ljava/io/IOException;
    :try_start_2b
    iget-object v6, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    const-wide/16 v7, -0x2

    aput-wide v7, v6, p3

    .line 127
    invoke-virtual {v5}, Ljava/io/IOException;->printStackTrace()V
    :try_end_34
    .catchall {:try_start_2b .. :try_end_34} :catchall_28

    .line 129
    .end local v5    # "e":Ljava/io/IOException;
    if-eqz v0, :cond_4a

    .line 131
    :try_start_36
    invoke-virtual {v0}, Ljava/net/Socket;->close()V
    :try_end_39
    .catch Ljava/io/IOException; {:try_start_36 .. :try_end_39} :catch_23

    goto :goto_22

    .line 122
    :catch_3a
    move-exception v5

    .line 123
    .local v5, "e":Ljava/net/SocketTimeoutException;
    :try_start_3b
    iget-object v6, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    const-wide/16 v7, -0x1

    aput-wide v7, v6, p3

    .line 124
    invoke-virtual {v5}, Ljava/net/SocketTimeoutException;->printStackTrace()V
    :try_end_44
    .catchall {:try_start_3b .. :try_end_44} :catchall_28

    .line 129
    .end local v5    # "e":Ljava/net/SocketTimeoutException;
    if-eqz v0, :cond_4a

    .line 131
    :try_start_46
    invoke-virtual {v0}, Ljava/net/Socket;->close()V
    :try_end_49
    .catch Ljava/io/IOException; {:try_start_46 .. :try_end_49} :catch_23

    goto :goto_22

    .line 137
    :cond_4a
    :goto_4a
    return-void

    .line 129
    :goto_4b
    if-eqz v0, :cond_55

    .line 131
    :try_start_4d
    invoke-virtual {v0}, Ljava/net/Socket;->close()V
    :try_end_50
    .catch Ljava/io/IOException; {:try_start_4d .. :try_end_50} :catch_51

    .line 134
    goto :goto_55

    .line 132
    :catch_51
    move-exception v6

    .line 133
    .local v6, "e":Ljava/io/IOException;
    invoke-virtual {v6}, Ljava/io/IOException;->printStackTrace()V

    .line 134
    .end local v6    # "e":Ljava/io/IOException;
    :cond_55
    :goto_55
    goto :goto_57

    :goto_56
    throw v5

    :goto_57
    goto :goto_56
.end method

.method private a(Ljava/net/InetAddress;Ljava/lang/String;)Z
    .registers 23
    .param p1, "inetAddress"    # Ljava/net/InetAddress;
    .param p2, "port"    # Ljava/lang/String;

    .line 40
    move-object/from16 v0, p0

    move-object/from16 v1, p1

    const/4 v2, 0x1

    .line 41
    .local v2, "isConnected":Z
    const/4 v3, 0x0

    .line 42
    .local v3, "socketAddress":Ljava/net/InetSocketAddress;
    if-eqz v1, :cond_f1

    if-eqz p2, :cond_f1

    .line 43
    new-instance v4, Ljava/net/InetSocketAddress;

    invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;

    move-result-object v5

    invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I

    move-result v5

    invoke-direct {v4, v1, v5}, Ljava/net/InetSocketAddress;-><init>(Ljava/net/InetAddress;I)V

    move-object v3, v4

    .line 44
    const/4 v4, 0x0

    .line 46
    .local v4, "flag":I
    iget-object v5, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

    const-string v6, ", \"TcpCheck\":{"

    invoke-interface {v5, v6}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V

    .line 48
    const/4 v5, 0x0

    .local v5, "i":I
    :goto_21
    const/4 v6, 0x4

    if-ge v5, v6, :cond_5c

    .line 49
    iget v7, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I

    invoke-direct {v0, v3, v7, v5}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a(Ljava/net/InetSocketAddress;II)V

    .line 50
    iget-object v7, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    aget-wide v8, v7, v5

    const-wide/16 v10, -0x1

    cmp-long v12, v8, v10

    if-nez v12, :cond_45

    .line 51
    iget v8, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I

    add-int/lit16 v8, v8, 0xfa0

    iput v8, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->d:I

    .line 52
    if-lez v5, :cond_59

    add-int/lit8 v8, v5, -0x1

    aget-wide v8, v7, v8

    cmp-long v7, v8, v10

    if-nez v7, :cond_59

    .line 53
    const/4 v4, -0x1

    .line 54
    goto :goto_5c

    .line 56
    :cond_45
    aget-wide v8, v7, v5

    const-wide/16 v10, -0x2

    cmp-long v12, v8, v10

    if-nez v12, :cond_59

    .line 57
    if-lez v5, :cond_59

    add-int/lit8 v8, v5, -0x1

    aget-wide v8, v7, v8

    cmp-long v7, v8, v10

    if-nez v7, :cond_59

    .line 58
    const/4 v4, -0x2

    .line 59
    goto :goto_5c

    .line 48
    :cond_59
    add-int/lit8 v5, v5, 0x1

    goto :goto_21

    .line 64
    .end local v5    # "i":I
    :cond_5c
    :goto_5c
    const-wide/32 v7, 0x1869f

    .line 65
    .local v7, "_min":J
    const-wide/32 v9, 0x1869f

    .line 66
    .local v9, "_max":J
    const-wide/32 v11, 0x1869f

    .line 67
    .local v11, "time":J
    const/4 v5, 0x0

    .line 68
    .local v5, "count":I
    const/4 v13, -0x1

    if-ne v4, v13, :cond_6b

    .line 69
    const/4 v2, 0x0

    goto :goto_a6

    .line 70
    :cond_6b
    const/4 v13, -0x2

    if-ne v4, v13, :cond_70

    .line 71
    const/4 v2, 0x0

    goto :goto_a6

    .line 73
    :cond_70
    iget-object v13, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    const/4 v14, 0x0

    aget-wide v7, v13, v14

    .line 74
    aget-wide v9, v13, v14

    .line 75
    const-wide/16 v11, 0x0

    .line 76
    const/4 v13, 0x0

    .local v13, "i":I
    :goto_7a
    if-ge v13, v6, :cond_a2

    .line 77
    iget-object v14, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    aget-wide v15, v14, v13

    cmp-long v17, v7, v15

    if-lez v17, :cond_86

    .line 78
    aget-wide v7, v14, v13

    .line 81
    :cond_86
    iget-object v14, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    aget-wide v15, v14, v13

    cmp-long v17, v9, v15

    if-gez v17, :cond_90

    .line 82
    aget-wide v9, v14, v13

    .line 85
    :cond_90
    iget-object v14, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->e:[J

    aget-wide v15, v14, v13

    const-wide/16 v17, 0x0

    cmp-long v19, v15, v17

    if-lez v19, :cond_9f

    .line 86
    aget-wide v15, v14, v13

    add-long/2addr v11, v15

    .line 87
    add-int/lit8 v5, v5, 0x1

    .line 76
    :cond_9f
    add-int/lit8 v13, v13, 0x1

    goto :goto_7a

    .line 91
    .end local v13    # "i":I
    :cond_a2
    if-lez v5, :cond_a6

    .line 92
    int-to-long v13, v5

    div-long/2addr v11, v13

    .line 97
    :cond_a6
    :goto_a6
    iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

    new-instance v13, Ljava/lang/StringBuilder;

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

    const-string v14, "\"max\":"

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

    invoke-virtual {v13, v9, v10}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

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

    move-result-object v13

    invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V

    .line 98
    iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

    new-instance v13, Ljava/lang/StringBuilder;

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

    const-string v14, ", \"min\":"

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

    invoke-virtual {v13, v7, v8}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

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

    move-result-object v13

    invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V

    .line 99
    iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

    new-instance v13, Ljava/lang/StringBuilder;

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

    const-string v14, ", \"avg\":"

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

    invoke-virtual {v13, v11, v12}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

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

    move-result-object v13

    invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V

    .line 100
    iget-object v6, v0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->b:Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;

    const-string/jumbo v13, "}"

    invoke-interface {v6, v13}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c$a;->b(Ljava/lang/String;)V

    .line 102
    .end local v4    # "flag":I
    .end local v5    # "count":I
    .end local v7    # "_min":J
    .end local v9    # "_max":J
    .end local v11    # "time":J
    goto :goto_f2

    .line 103
    :cond_f1
    const/4 v2, 0x0

    .line 106
    :goto_f2
    return v2
.end method


# virtual methods
.method public a(Ljava/lang/String;Ljava/lang/String;)Z
    .registers 4
    .param p1, "host"    # Ljava/lang/String;
    .param p2, "port"    # Ljava/lang/String;

    .line 29
    iget-object v0, p0, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a:Ljava/net/InetAddress;

    if-eqz v0, :cond_c

    invoke-direct {p0, v0, p2}, Lcom/aliyun/security/yunceng/android/sdk/traceroute/c;->a(Ljava/net/InetAddress;Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_c

    .line 30
    const/4 v0, 0x1

    return v0

    .line 33
    :cond_c
    const/4 v0, 0x0

    return v0
.end method