do.smali
.class public Lcom/baidu/mobstat/do;
.super Lcom/baidu/mobstat/dl;
.source "SourceFile"
# static fields
.field static final synthetic f:Z
# instance fields
.field private g:Ljava/nio/ByteBuffer;
.field private final h:Ljava/util/Random;
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 21
const-class v0, Lcom/baidu/mobstat/do;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_c
const/4 v0, 0x1
:goto_9
sput-boolean v0, Lcom/baidu/mobstat/do;->f:Z
return-void
:cond_c
const/4 v0, 0x0
goto :goto_9
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 21
invoke-direct {p0}, Lcom/baidu/mobstat/dl;-><init>()V
.line 57
new-instance v0, Ljava/util/Random;
invoke-direct {v0}, Ljava/util/Random;-><init>()V
iput-object v0, p0, Lcom/baidu/mobstat/do;->h:Ljava/util/Random;
return-void
.end method
.method private a(Lcom/baidu/mobstat/ec;)B
.registers 5
.prologue
.line 151
sget-object v0, Lcom/baidu/mobstat/ec;->a:Lcom/baidu/mobstat/ec;
if-ne p1, v0, :cond_6
.line 152
const/4 v0, 0x0
.line 162
:goto_5
return v0
.line 153
:cond_6
sget-object v0, Lcom/baidu/mobstat/ec;->b:Lcom/baidu/mobstat/ec;
if-ne p1, v0, :cond_c
.line 154
const/4 v0, 0x1
goto :goto_5
.line 155
:cond_c
sget-object v0, Lcom/baidu/mobstat/ec;->c:Lcom/baidu/mobstat/ec;
if-ne p1, v0, :cond_12
.line 156
const/4 v0, 0x2
goto :goto_5
.line 157
:cond_12
sget-object v0, Lcom/baidu/mobstat/ec;->f:Lcom/baidu/mobstat/ec;
if-ne p1, v0, :cond_19
.line 158
const/16 v0, 0x8
goto :goto_5
.line 159
:cond_19
sget-object v0, Lcom/baidu/mobstat/ec;->d:Lcom/baidu/mobstat/ec;
if-ne p1, v0, :cond_20
.line 160
const/16 v0, 0x9
goto :goto_5
.line 161
:cond_20
sget-object v0, Lcom/baidu/mobstat/ec;->e:Lcom/baidu/mobstat/ec;
if-ne p1, v0, :cond_27
.line 162
const/16 v0, 0xa
goto :goto_5
.line 163
:cond_27
new-instance v0, Ljava/lang/RuntimeException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Don\'t know how to handle "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {p1}, Lcom/baidu/mobstat/ec;->toString()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
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private a(B)Lcom/baidu/mobstat/ec;
.registers 5
.prologue
.line 213
packed-switch p1, :pswitch_data_30
.line 229
:pswitch_3
new-instance v0, Lcom/baidu/mobstat/dt;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "unknow optcode "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
int-to-short v2, p1
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)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/baidu/mobstat/dt;-><init>(Ljava/lang/String;)V
throw v0
.line 215
:pswitch_1d
sget-object v0, Lcom/baidu/mobstat/ec;->a:Lcom/baidu/mobstat/ec;
.line 226
:goto_1f
return-object v0
.line 217
:pswitch_20
sget-object v0, Lcom/baidu/mobstat/ec;->b:Lcom/baidu/mobstat/ec;
goto :goto_1f
.line 219
:pswitch_23
sget-object v0, Lcom/baidu/mobstat/ec;->c:Lcom/baidu/mobstat/ec;
goto :goto_1f
.line 222
:pswitch_26
sget-object v0, Lcom/baidu/mobstat/ec;->f:Lcom/baidu/mobstat/ec;
goto :goto_1f
.line 224
:pswitch_29
sget-object v0, Lcom/baidu/mobstat/ec;->d:Lcom/baidu/mobstat/ec;
goto :goto_1f
.line 226
:pswitch_2c
sget-object v0, Lcom/baidu/mobstat/ec;->e:Lcom/baidu/mobstat/ec;
goto :goto_1f
.line 213
nop
:pswitch_data_30
.packed-switch 0x0
:pswitch_1d
:pswitch_20
:pswitch_23
:pswitch_3
:pswitch_3
:pswitch_3
:pswitch_3
:pswitch_3
:pswitch_26
:pswitch_29
:pswitch_2c
.end packed-switch
.end method
.method private a(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.prologue
.line 167
invoke-virtual {p1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
.line 168
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
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 171
:try_start_17
const-string v1, "SHA1"
invoke-static {v1}, Ljava/security/MessageDigest;->getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;
:try_end_1c
.catch Ljava/security/NoSuchAlgorithmException; {:try_start_17 .. :try_end_1c} :catch_2a
move-result-object v1
.line 175
invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B
move-result-object v0
invoke-virtual {v1, v0}, Ljava/security/MessageDigest;->digest([B)[B
move-result-object v0
invoke-static {v0}, Lcom/baidu/mobstat/en;->a([B)Ljava/lang/String;
move-result-object v0
return-object v0
.line 172
:catch_2a
move-exception v0
.line 173
new-instance v1, Ljava/lang/RuntimeException;
invoke-direct {v1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method
.method private a(JI)[B
.registers 11
.prologue
.line 204
new-array v1, p3, [B
.line 205
mul-int/lit8 v0, p3, 0x8
add-int/lit8 v2, v0, -0x8
.line 206
const/4 v0, 0x0
:goto_7
if-ge v0, p3, :cond_16
.line 207
mul-int/lit8 v3, v0, 0x8
sub-int v3, v2, v3
ushr-long v4, p1, v3
long-to-int v3, v4
int-to-byte v3, v3
aput-byte v3, v1, v0
.line 206
add-int/lit8 v0, v0, 0x1
goto :goto_7
.line 209
:cond_16
return-object v1
.end method
# virtual methods
.method public a(Lcom/baidu/mobstat/ee;Lcom/baidu/mobstat/el;)Lcom/baidu/mobstat/dn;
.registers 5
.prologue
.line 61
const-string v0, "Sec-WebSocket-Key"
invoke-interface {p1, v0}, Lcom/baidu/mobstat/ee;->c(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_10
const-string v0, "Sec-WebSocket-Accept"
invoke-interface {p2, v0}, Lcom/baidu/mobstat/el;->c(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_13
.line 62
:cond_10
sget-object v0, Lcom/baidu/mobstat/dn;->b:Lcom/baidu/mobstat/dn;
.line 70
:goto_12
return-object v0
.line 64
:cond_13
const-string v0, "Sec-WebSocket-Accept"
invoke-interface {p2, v0}, Lcom/baidu/mobstat/el;->b(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 65
const-string v1, "Sec-WebSocket-Key"
invoke-interface {p1, v1}, Lcom/baidu/mobstat/ee;->b(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 66
invoke-direct {p0, v1}, Lcom/baidu/mobstat/do;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 68
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2c
.line 69
sget-object v0, Lcom/baidu/mobstat/dn;->a:Lcom/baidu/mobstat/dn;
goto :goto_12
.line 70
:cond_2c
sget-object v0, Lcom/baidu/mobstat/dn;->b:Lcom/baidu/mobstat/dn;
goto :goto_12
.end method
.method public a(Lcom/baidu/mobstat/ef;)Lcom/baidu/mobstat/ef;
.registers 4
.prologue
.line 180
const-string v0, "Upgrade"
const-string v1, "websocket"
invoke-interface {p1, v0, v1}, Lcom/baidu/mobstat/ef;->a(Ljava/lang/String;Ljava/lang/String;)V
.line 181
const-string v0, "Connection"
const-string v1, "Upgrade"
invoke-interface {p1, v0, v1}, Lcom/baidu/mobstat/ef;->a(Ljava/lang/String;Ljava/lang/String;)V
.line 182
const-string v0, "Sec-WebSocket-Version"
const-string v1, "8"
invoke-interface {p1, v0, v1}, Lcom/baidu/mobstat/ef;->a(Ljava/lang/String;Ljava/lang/String;)V
.line 184
const/16 v0, 0x10
new-array v0, v0, [B
.line 185
iget-object v1, p0, Lcom/baidu/mobstat/do;->h:Ljava/util/Random;
invoke-virtual {v1, v0}, Ljava/util/Random;->nextBytes([B)V
.line 186
const-string v1, "Sec-WebSocket-Key"
invoke-static {v0}, Lcom/baidu/mobstat/en;->a([B)Ljava/lang/String;
move-result-object v0
invoke-interface {p1, v1, v0}, Lcom/baidu/mobstat/ef;->a(Ljava/lang/String;Ljava/lang/String;)V
.line 188
return-object p1
.end method
.method public a(Lcom/baidu/mobstat/eb;)Ljava/nio/ByteBuffer;
.registers 14
.prologue
const/4 v4, 0x4
const/4 v7, 0x2
const/4 v1, 0x1
const/16 v5, -0x80
const/4 v2, 0x0
.line 84
invoke-interface {p1}, Lcom/baidu/mobstat/eb;->c()Ljava/nio/ByteBuffer;
move-result-object v8
.line 85
iget-object v0, p0, Lcom/baidu/mobstat/do;->d:Lcom/baidu/mobstat/de;
sget-object v3, Lcom/baidu/mobstat/de;->a:Lcom/baidu/mobstat/de;
if-ne v0, v3, :cond_58
move v0, v1
.line 86
:goto_11
invoke-virtual {v8}, Ljava/nio/ByteBuffer;->remaining()I
move-result v3
const/16 v6, 0x7d
if-gt v3, v6, :cond_5a
move v6, v1
.line 87
:goto_1a
if-le v6, v1, :cond_68
add-int/lit8 v3, v6, 0x1
:goto_1e
add-int/lit8 v9, v3, 0x1
if-eqz v0, :cond_6a
move v3, v4
:goto_23
add-int/2addr v3, v9
invoke-virtual {v8}, Ljava/nio/ByteBuffer;->remaining()I
move-result v9
add-int/2addr v3, v9
invoke-static {v3}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v9
.line 88
invoke-interface {p1}, Lcom/baidu/mobstat/eb;->f()Lcom/baidu/mobstat/ec;
move-result-object v3
invoke-direct {p0, v3}, Lcom/baidu/mobstat/do;->a(Lcom/baidu/mobstat/ec;)B
move-result v10
.line 89
invoke-interface {p1}, Lcom/baidu/mobstat/eb;->d()Z
move-result v3
if-eqz v3, :cond_6c
move v3, v5
:goto_3c
int-to-byte v3, v3
.line 90
or-int/2addr v3, v10
int-to-byte v3, v3
.line 91
invoke-virtual {v9, v3}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 92
invoke-virtual {v8}, Ljava/nio/ByteBuffer;->remaining()I
move-result v3
int-to-long v10, v3
invoke-direct {p0, v10, v11, v6}, Lcom/baidu/mobstat/do;->a(JI)[B
move-result-object v3
.line 93
sget-boolean v10, Lcom/baidu/mobstat/do;->f:Z
if-nez v10, :cond_6e
array-length v10, v3
if-eq v10, v6, :cond_6e
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
:cond_58
move v0, v2
.line 85
goto :goto_11
.line 86
:cond_5a
invoke-virtual {v8}, Ljava/nio/ByteBuffer;->remaining()I
move-result v3
const v6, 0xffff
if-gt v3, v6, :cond_65
move v6, v7
goto :goto_1a
:cond_65
const/16 v6, 0x8
goto :goto_1a
:cond_68
move v3, v6
.line 87
goto :goto_1e
:cond_6a
move v3, v2
goto :goto_23
:cond_6c
move v3, v2
.line 89
goto :goto_3c
.line 95
:cond_6e
if-ne v6, v1, :cond_a9
.line 96
aget-byte v1, v3, v2
if-eqz v0, :cond_a7
:goto_74
or-int/2addr v1, v5
int-to-byte v1, v1
invoke-virtual {v9, v1}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 106
:goto_79
if-eqz v0, :cond_d3
.line 107
invoke-static {v4}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v0
.line 108
iget-object v1, p0, Lcom/baidu/mobstat/do;->h:Ljava/util/Random;
invoke-virtual {v1}, Ljava/util/Random;->nextInt()I
move-result v1
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer;
.line 109
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v1
invoke-virtual {v9, v1}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
.line 110
:goto_8f
invoke-virtual {v8}, Ljava/nio/ByteBuffer;->hasRemaining()Z
move-result v1
if-eqz v1, :cond_d6
.line 111
invoke-virtual {v8}, Ljava/nio/ByteBuffer;->get()B
move-result v1
rem-int/lit8 v3, v2, 0x4
invoke-virtual {v0, v3}, Ljava/nio/ByteBuffer;->get(I)B
move-result v3
xor-int/2addr v1, v3
int-to-byte v1, v1
invoke-virtual {v9, v1}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 110
add-int/lit8 v2, v2, 0x1
goto :goto_8f
:cond_a7
move v5, v2
.line 96
goto :goto_74
.line 97
:cond_a9
if-ne v6, v7, :cond_b9
.line 98
if-eqz v0, :cond_b7
:goto_ad
or-int/lit8 v1, v5, 0x7e
int-to-byte v1, v1
invoke-virtual {v9, v1}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 99
invoke-virtual {v9, v3}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
goto :goto_79
:cond_b7
move v5, v2
.line 98
goto :goto_ad
.line 100
:cond_b9
const/16 v1, 0x8
if-ne v6, v1, :cond_cb
.line 101
if-eqz v0, :cond_c9
:goto_bf
or-int/lit8 v1, v5, 0x7f
int-to-byte v1, v1
invoke-virtual {v9, v1}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 102
invoke-virtual {v9, v3}, Ljava/nio/ByteBuffer;->put([B)Ljava/nio/ByteBuffer;
goto :goto_79
:cond_c9
move v5, v2
.line 101
goto :goto_bf
.line 104
:cond_cb
new-instance v0, Ljava/lang/RuntimeException;
const-string v1, "Size representation not supported/specified"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 114
:cond_d3
invoke-virtual {v9, v8}, Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
.line 116
:cond_d6
sget-boolean v0, Lcom/baidu/mobstat/do;->f:Z
if-nez v0, :cond_ea
invoke-virtual {v9}, Ljava/nio/ByteBuffer;->remaining()I
move-result v0
if-eqz v0, :cond_ea
new-instance v0, Ljava/lang/AssertionError;
invoke-virtual {v9}, Ljava/nio/ByteBuffer;->remaining()I
move-result v1
invoke-direct {v0, v1}, Ljava/lang/AssertionError;-><init>(I)V
throw v0
.line 117
:cond_ea
invoke-virtual {v9}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;
.line 119
return-object v9
.end method
.method public a(Ljava/nio/ByteBuffer;Z)Ljava/util/List;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/nio/ByteBuffer;",
"Z)",
"Ljava/util/List",
"<",
"Lcom/baidu/mobstat/eb;",
">;"
}
.end annotation
.prologue
.line 124
new-instance v0, Lcom/baidu/mobstat/ed;
invoke-direct {v0}, Lcom/baidu/mobstat/ed;-><init>()V
.line 126
:try_start_5
invoke-interface {v0, p1}, Lcom/baidu/mobstat/ea;->a(Ljava/nio/ByteBuffer;)V
:try_end_8
.catch Lcom/baidu/mobstat/ds; {:try_start_5 .. :try_end_8} :catch_19
.line 130
const/4 v1, 0x1
invoke-interface {v0, v1}, Lcom/baidu/mobstat/ea;->a(Z)V
.line 131
sget-object v1, Lcom/baidu/mobstat/ec;->c:Lcom/baidu/mobstat/ec;
invoke-interface {v0, v1}, Lcom/baidu/mobstat/ea;->a(Lcom/baidu/mobstat/ec;)V
.line 132
invoke-interface {v0, p2}, Lcom/baidu/mobstat/ea;->b(Z)V
.line 133
invoke-static {v0}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v0
return-object v0
.line 127
:catch_19
move-exception v0
.line 128
new-instance v1, Lcom/baidu/mobstat/dw;
invoke-direct {v1, v0}, Lcom/baidu/mobstat/dw;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method
.method public a()V
.registers 2
.prologue
.line 378
const/4 v0, 0x0
iput-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
.line 379
return-void
.end method
.method public b()Lcom/baidu/mobstat/dm;
.registers 2
.prologue
.line 388
sget-object v0, Lcom/baidu/mobstat/dm;->c:Lcom/baidu/mobstat/dm;
return-object v0
.end method
.method public c()Lcom/baidu/mobstat/dl;
.registers 2
.prologue
.line 383
new-instance v0, Lcom/baidu/mobstat/do;
invoke-direct {v0}, Lcom/baidu/mobstat/do;-><init>()V
return-object v0
.end method
.method public c(Ljava/nio/ByteBuffer;)Ljava/util/List;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/nio/ByteBuffer;",
")",
"Ljava/util/List",
"<",
"Lcom/baidu/mobstat/eb;",
">;"
}
.end annotation
.prologue
.line 236
:goto_0
new-instance v1, Ljava/util/LinkedList;
invoke-direct {v1}, Ljava/util/LinkedList;-><init>()V
.line 239
iget-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
if-eqz v0, :cond_5e
.line 242
:try_start_9
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;
.line 243
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I
move-result v0
.line 244
iget-object v2, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {v2}, Ljava/nio/ByteBuffer;->remaining()I
move-result v2
.line 246
if-le v2, v0, :cond_32
.line 248
iget-object v1, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v2
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v3
invoke-virtual {v1, v2, v3, v0}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
.line 249
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v1
add-int/2addr v0, v1
invoke-virtual {p1, v0}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 250
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v0
.line 284
:goto_31
return-object v0
.line 252
:cond_32
iget-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v3
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v4
invoke-virtual {v0, v3, v4, v2}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
.line 253
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v0
add-int/2addr v0, v2
invoke-virtual {p1, v0}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 255
iget-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->duplicate()Ljava/nio/ByteBuffer;
move-result-object v0
const/4 v2, 0x0
invoke-virtual {v0, v2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
move-result-object v0
check-cast v0, Ljava/nio/ByteBuffer;
invoke-virtual {p0, v0}, Lcom/baidu/mobstat/do;->e(Ljava/nio/ByteBuffer;)Lcom/baidu/mobstat/eb;
move-result-object v0
.line 256
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 257
const/4 v0, 0x0
iput-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
:try_end_5e
.catch Lcom/baidu/mobstat/dp; {:try_start_9 .. :try_end_5e} :catch_88
.line 270
:cond_5e
:goto_5e
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->hasRemaining()Z
move-result v0
if-eqz v0, :cond_86
.line 271
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->mark()Ljava/nio/Buffer;
.line 273
:try_start_67
invoke-virtual {p0, p1}, Lcom/baidu/mobstat/do;->e(Ljava/nio/ByteBuffer;)Lcom/baidu/mobstat/eb;
move-result-object v0
.line 274
invoke-interface {v1, v0}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_6e
.catch Lcom/baidu/mobstat/dp; {:try_start_67 .. :try_end_6e} :catch_6f
goto :goto_5e
.line 275
:catch_6f
move-exception v0
.line 277
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->reset()Ljava/nio/Buffer;
.line 278
invoke-virtual {v0}, Lcom/baidu/mobstat/dp;->a()I
move-result v0
.line 279
invoke-virtual {p0, v0}, Lcom/baidu/mobstat/do;->a(I)I
move-result v0
invoke-static {v0}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v0
iput-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
.line 280
iget-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
:cond_86
move-object v0, v1
.line 284
goto :goto_31
.line 258
:catch_88
move-exception v0
.line 260
iget-object v1, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->limit()I
.line 261
invoke-virtual {v0}, Lcom/baidu/mobstat/dp;->a()I
move-result v0
invoke-virtual {p0, v0}, Lcom/baidu/mobstat/do;->a(I)I
move-result v0
invoke-static {v0}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v0
.line 262
sget-boolean v1, Lcom/baidu/mobstat/do;->f:Z
if-nez v1, :cond_b0
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->limit()I
move-result v1
iget-object v2, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {v2}, Ljava/nio/ByteBuffer;->limit()I
move-result v2
if-gt v1, v2, :cond_b0
new-instance v0, Ljava/lang/AssertionError;
invoke-direct {v0}, Ljava/lang/AssertionError;-><init>()V
throw v0
.line 263
:cond_b0
iget-object v1, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->rewind()Ljava/nio/Buffer;
.line 264
iget-object v1, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
.line 265
iput-object v0, p0, Lcom/baidu/mobstat/do;->g:Ljava/nio/ByteBuffer;
goto/16 :goto_0
.end method
.method public e(Ljava/nio/ByteBuffer;)Lcom/baidu/mobstat/eb;
.registers 16
.prologue
const/16 v10, 0x8
const/4 v5, 0x2
const/4 v3, 0x4
const/4 v1, 0x1
const/4 v2, 0x0
.line 289
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->remaining()I
move-result v7
.line 291
if-ge v7, v5, :cond_12
.line 292
new-instance v0, Lcom/baidu/mobstat/dp;
invoke-direct {v0, p0, v5}, Lcom/baidu/mobstat/dp;-><init>(Lcom/baidu/mobstat/do;I)V
throw v0
.line 293
:cond_12
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->get()B
move-result v8
.line 294
shr-int/lit8 v0, v8, 0x8
if-eqz v0, :cond_3b
move v6, v1
.line 295
:goto_1b
and-int/lit8 v0, v8, 0x7f
shr-int/lit8 v0, v0, 0x4
int-to-byte v0, v0
.line 296
if-eqz v0, :cond_3d
.line 297
new-instance v1, Lcom/baidu/mobstat/dt;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "bad rsv "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, 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
invoke-direct {v1, v0}, Lcom/baidu/mobstat/dt;-><init>(Ljava/lang/String;)V
throw v1
:cond_3b
move v6, v2
.line 294
goto :goto_1b
.line 298
:cond_3d
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->get()B
move-result v4
.line 299
and-int/lit8 v0, v4, -0x80
if-eqz v0, :cond_66
move v0, v1
.line 300
:goto_46
and-int/lit8 v4, v4, 0x7f
int-to-byte v4, v4
.line 301
and-int/lit8 v8, v8, 0xf
int-to-byte v8, v8
invoke-direct {p0, v8}, Lcom/baidu/mobstat/do;->a(B)Lcom/baidu/mobstat/ec;
move-result-object v8
.line 303
if-nez v6, :cond_68
.line 304
sget-object v9, Lcom/baidu/mobstat/ec;->d:Lcom/baidu/mobstat/ec;
if-eq v8, v9, :cond_5e
sget-object v9, Lcom/baidu/mobstat/ec;->e:Lcom/baidu/mobstat/ec;
if-eq v8, v9, :cond_5e
sget-object v9, Lcom/baidu/mobstat/ec;->f:Lcom/baidu/mobstat/ec;
if-ne v8, v9, :cond_68
.line 305
:cond_5e
new-instance v0, Lcom/baidu/mobstat/dt;
const-string v1, "control frames may no be fragmented"
invoke-direct {v0, v1}, Lcom/baidu/mobstat/dt;-><init>(Ljava/lang/String;)V
throw v0
:cond_66
move v0, v2
.line 299
goto :goto_46
.line 309
:cond_68
if-ltz v4, :cond_6e
const/16 v9, 0x7d
if-le v4, v9, :cond_a8
.line 310
:cond_6e
sget-object v9, Lcom/baidu/mobstat/ec;->d:Lcom/baidu/mobstat/ec;
if-eq v8, v9, :cond_7a
sget-object v9, Lcom/baidu/mobstat/ec;->e:Lcom/baidu/mobstat/ec;
if-eq v8, v9, :cond_7a
sget-object v9, Lcom/baidu/mobstat/ec;->f:Lcom/baidu/mobstat/ec;
if-ne v8, v9, :cond_82
.line 311
:cond_7a
new-instance v0, Lcom/baidu/mobstat/dt;
const-string v1, "more than 125 octets"
invoke-direct {v0, v1}, Lcom/baidu/mobstat/dt;-><init>(Ljava/lang/String;)V
throw v0
.line 313
:cond_82
const/16 v9, 0x7e
if-ne v4, v9, :cond_b5
.line 315
if-ge v7, v3, :cond_8e
.line 316
new-instance v0, Lcom/baidu/mobstat/dp;
invoke-direct {v0, p0, v3}, Lcom/baidu/mobstat/dp;-><init>(Lcom/baidu/mobstat/do;I)V
throw v0
.line 317
:cond_8e
const/4 v4, 0x3
new-array v4, v4, [B
.line 318
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->get()B
move-result v9
aput-byte v9, v4, v1
.line 319
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->get()B
move-result v1
aput-byte v1, v4, v5
.line 320
new-instance v1, Ljava/math/BigInteger;
invoke-direct {v1, v4}, Ljava/math/BigInteger;-><init>([B)V
invoke-virtual {v1}, Ljava/math/BigInteger;->intValue()I
move-result v1
move v4, v1
move v5, v3
.line 339
:cond_a8
:goto_a8
if-eqz v0, :cond_e9
move v1, v3
:goto_ab
add-int/2addr v1, v5
.line 341
add-int/2addr v1, v4
.line 343
if-ge v7, v1, :cond_eb
.line 344
new-instance v0, Lcom/baidu/mobstat/dp;
invoke-direct {v0, p0, v1}, Lcom/baidu/mobstat/dp;-><init>(Lcom/baidu/mobstat/do;I)V
throw v0
.line 322
:cond_b5
const/16 v4, 0xa
.line 323
if-ge v7, v4, :cond_bf
.line 324
new-instance v0, Lcom/baidu/mobstat/dp;
invoke-direct {v0, p0, v4}, Lcom/baidu/mobstat/dp;-><init>(Lcom/baidu/mobstat/do;I)V
throw v0
.line 325
:cond_bf
new-array v5, v10, [B
move v1, v2
.line 326
:goto_c2
if-ge v1, v10, :cond_cd
.line 327
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->get()B
move-result v9
aput-byte v9, v5, v1
.line 326
add-int/lit8 v1, v1, 0x1
goto :goto_c2
.line 329
:cond_cd
new-instance v1, Ljava/math/BigInteger;
invoke-direct {v1, v5}, Ljava/math/BigInteger;-><init>([B)V
invoke-virtual {v1}, Ljava/math/BigInteger;->longValue()J
move-result-wide v10
.line 330
const-wide/32 v12, 0x7fffffff
cmp-long v1, v10, v12
if-lez v1, :cond_e5
.line 331
new-instance v0, Lcom/baidu/mobstat/dv;
const-string v1, "Payloadsize is to big..."
invoke-direct {v0, v1}, Lcom/baidu/mobstat/dv;-><init>(Ljava/lang/String;)V
throw v0
.line 333
:cond_e5
long-to-int v1, v10
move v5, v4
move v4, v1
goto :goto_a8
:cond_e9
move v1, v2
.line 339
goto :goto_ab
.line 346
:cond_eb
invoke-virtual {p0, v4}, Lcom/baidu/mobstat/do;->a(I)I
move-result v1
invoke-static {v1}, Ljava/nio/ByteBuffer;->allocate(I)Ljava/nio/ByteBuffer;
move-result-object v1
.line 347
if-eqz v0, :cond_10c
.line 348
new-array v0, v3, [B
.line 349
invoke-virtual {p1, v0}, Ljava/nio/ByteBuffer;->get([B)Ljava/nio/ByteBuffer;
.line 350
:goto_fa
if-ge v2, v4, :cond_127
.line 351
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->get()B
move-result v3
rem-int/lit8 v5, v2, 0x4
aget-byte v5, v0, v5
xor-int/2addr v3, v5
int-to-byte v3, v3
invoke-virtual {v1, v3}, Ljava/nio/ByteBuffer;->put(B)Ljava/nio/ByteBuffer;
.line 350
add-int/lit8 v2, v2, 0x1
goto :goto_fa
.line 354
:cond_10c
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->array()[B
move-result-object v0
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v2
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->limit()I
move-result v3
invoke-virtual {v1, v0, v2, v3}, Ljava/nio/ByteBuffer;->put([BII)Ljava/nio/ByteBuffer;
.line 355
invoke-virtual {p1}, Ljava/nio/ByteBuffer;->position()I
move-result v0
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->limit()I
move-result v2
add-int/2addr v0, v2
invoke-virtual {p1, v0}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 359
:cond_127
sget-object v0, Lcom/baidu/mobstat/ec;->f:Lcom/baidu/mobstat/ec;
if-ne v8, v0, :cond_14c
.line 360
new-instance v0, Lcom/baidu/mobstat/dz;
invoke-direct {v0}, Lcom/baidu/mobstat/dz;-><init>()V
.line 366
:goto_130
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;
.line 367
invoke-interface {v0, v1}, Lcom/baidu/mobstat/ea;->a(Ljava/nio/ByteBuffer;)V
.line 368
sget-object v1, Lcom/baidu/mobstat/ec;->b:Lcom/baidu/mobstat/ec;
if-ne v8, v1, :cond_158
.line 369
invoke-interface {v0}, Lcom/baidu/mobstat/ea;->c()Ljava/nio/ByteBuffer;
move-result-object v1
invoke-static {v1}, Lcom/baidu/mobstat/ep;->b(Ljava/nio/ByteBuffer;)Z
move-result v1
if-nez v1, :cond_158
.line 370
new-instance v0, Lcom/baidu/mobstat/ds;
const/16 v1, 0x3ef
invoke-direct {v0, v1}, Lcom/baidu/mobstat/ds;-><init>(I)V
throw v0
.line 362
:cond_14c
new-instance v0, Lcom/baidu/mobstat/ed;
invoke-direct {v0}, Lcom/baidu/mobstat/ed;-><init>()V
.line 363
invoke-interface {v0, v6}, Lcom/baidu/mobstat/ea;->a(Z)V
.line 364
invoke-interface {v0, v8}, Lcom/baidu/mobstat/ea;->a(Lcom/baidu/mobstat/ec;)V
goto :goto_130
.line 373
:cond_158
return-object v0
.end method