ag.smali
.class public final Lcom/imo/android/imoim/util/ag;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method public constructor <init>()V
.registers 1
.line 7
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static a(JI)I
.registers 5
int-to-long v0, p2
.line 131
rem-long/2addr p0, v0
long-to-int p1, p0
if-gez p1, :cond_6
add-int/2addr p1, p2
:cond_6
return p1
.end method
.method private static a(JJ)J
.registers 10
const-wide v4, -0x622015f714c7d297L # -8.659370623755161E-165
move-wide v0, p0
move-wide v2, p2
.line 18
invoke-static/range {v0 .. v5}, Lcom/imo/android/imoim/util/ag;->a(JJJ)J
move-result-wide p0
return-wide p0
.end method
.method private static a(JJJ)J
.registers 9
xor-long/2addr p0, p2
mul-long p0, p0, p4
const/16 v0, 0x2f
ushr-long v1, p0, v0
xor-long/2addr p0, v1
xor-long/2addr p0, p2
mul-long p0, p0, p4
ushr-long p2, p0, v0
xor-long/2addr p0, p2
mul-long p0, p0, p4
return-wide p0
.end method
.method private static a([BJ)J
.registers 7
long-to-int p2, p1
add-int/lit8 p1, p2, 0x7
.line 2052
aget-byte p1, p0, p1
int-to-long v0, p1
const/16 p1, 0x38
shl-long/2addr v0, p1
add-int/lit8 p1, p2, 0x6
aget-byte p1, p0, p1
and-int/lit16 p1, p1, 0xff
int-to-long v2, p1
const/16 p1, 0x30
shl-long/2addr v2, p1
add-long/2addr v0, v2
add-int/lit8 p1, p2, 0x5
aget-byte p1, p0, p1
and-int/lit16 p1, p1, 0xff
int-to-long v2, p1
const/16 p1, 0x28
shl-long/2addr v2, p1
add-long/2addr v0, v2
add-int/lit8 p1, p2, 0x4
aget-byte p1, p0, p1
and-int/lit16 p1, p1, 0xff
int-to-long v2, p1
const/16 p1, 0x20
shl-long/2addr v2, p1
add-long/2addr v0, v2
add-int/lit8 p1, p2, 0x3
aget-byte p1, p0, p1
and-int/lit16 p1, p1, 0xff
int-to-long v2, p1
const/16 p1, 0x18
shl-long/2addr v2, p1
add-long/2addr v0, v2
add-int/lit8 p1, p2, 0x2
aget-byte p1, p0, p1
and-int/lit16 p1, p1, 0xff
shl-int/lit8 p1, p1, 0x10
int-to-long v2, p1
add-long/2addr v0, v2
add-int/lit8 p1, p2, 0x1
aget-byte p1, p0, p1
and-int/lit16 p1, p1, 0xff
shl-int/lit8 p1, p1, 0x8
int-to-long v2, p1
add-long/2addr v0, v2
add-int/lit8 p2, p2, 0x0
aget-byte p0, p0, p2
and-int/lit16 p0, p0, 0xff
shl-int/lit8 p0, p0, 0x0
int-to-long p0, p0
add-long/2addr v0, p0
return-wide v0
.end method
.method public static a([BJJ)J
.registers 54
move-object/from16 v0, p0
move-wide/from16 v1, p3
const/16 v3, 0x25
const/16 v6, 0x2f
const-wide/16 v7, 0x1
const-wide/16 v9, 0x20
const/4 v11, 0x1
const-wide/16 v14, 0x10
const-wide/16 v4, 0x8
const-wide v18, -0x651e95c4d06fbfb1L # -3.35749372464804E-179
const-wide/16 v12, 0x0
cmp-long v22, v1, v9
if-gtz v22, :cond_f0
cmp-long v9, v1, v14
if-gtz v9, :cond_ac
cmp-long v9, v1, v4
if-ltz v9, :cond_4b
.line 2083
invoke-static {v0, v12, v13}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v6
add-long v8, v1, v12
sub-long/2addr v8, v4
.line 2084
invoke-static {v0, v8, v9}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v4
shl-long v0, v1, v11
add-long v12, v0, v18
add-long v6, v6, v18
.line 3046
invoke-static {v4, v5, v3}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v0
mul-long v0, v0, v12
add-long v8, v0, v6
const/16 v0, 0x19
.line 3047
invoke-static {v6, v7, v0}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v0
add-long/2addr v0, v4
mul-long v10, v0, v12
.line 3048
invoke-static/range {v8 .. v13}, Lcom/imo/android/imoim/util/ag;->a(JJJ)J
move-result-wide v0
return-wide v0
:cond_4b
const-wide/16 v3, 0x4
cmp-long v5, v1, v3
if-ltz v5, :cond_79
const-wide v5, 0xffffffffL
.line 2087
invoke-static {v0, v12, v13}, Lcom/imo/android/imoim/util/ag;->b([BJ)I
move-result v7
int-to-long v7, v7
and-long/2addr v5, v7
const-wide v7, 0xffffffffL
add-long v9, v1, v12
sub-long/2addr v9, v3
.line 2088
invoke-static {v0, v9, v10}, Lcom/imo/android/imoim/util/ag;->b([BJ)I
move-result v0
int-to-long v3, v0
and-long v14, v3, v7
shl-long v3, v1, v11
add-long v16, v3, v18
const/4 v0, 0x3
shl-long v3, v5, v0
add-long v12, v1, v3
.line 4040
invoke-static/range {v12 .. v17}, Lcom/imo/android/imoim/util/ag;->a(JJJ)J
move-result-wide v0
return-wide v0
:cond_79
cmp-long v3, v1, v12
if-lez v3, :cond_ab
const/4 v3, 0x0
.line 2091
aget-byte v3, v0, v3
and-int/lit16 v3, v3, 0xff
shr-long v4, v1, v11
add-long/2addr v4, v12
long-to-int v5, v4
.line 2092
aget-byte v4, v0, v5
and-int/lit16 v4, v4, 0xff
add-long v9, v1, v12
sub-long/2addr v9, v7
long-to-int v5, v9
.line 2093
aget-byte v0, v0, v5
and-int/lit16 v0, v0, 0xff
long-to-int v2, v1
shl-int/lit8 v1, v4, 0x8
add-int/2addr v3, v1
shl-int/lit8 v0, v0, 0x2
add-int/2addr v2, v0
int-to-long v0, v3
mul-long v0, v0, v18
int-to-long v2, v2
const-wide v4, -0x3c5a37a36834ced9L # -7.8480313857871552E17
mul-long v2, v2, v4
xor-long/2addr v0, v2
ushr-long v2, v0, v6
xor-long/2addr v0, v2
mul-long v0, v0, v18
return-wide v0
:cond_ab
return-wide v18
:cond_ac
shl-long v6, v1, v11
add-long v26, v6, v18
.line 6101
invoke-static {v0, v12, v13}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v6
const-wide v8, -0x4b6d499041670d8dL # -1.9079014105469082E-55
mul-long v6, v6, v8
.line 6102
invoke-static {v0, v4, v5}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v8
add-long/2addr v1, v12
sub-long v4, v1, v4
.line 6103
invoke-static {v0, v4, v5}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v3
mul-long v3, v3, v26
sub-long/2addr v1, v14
.line 6104
invoke-static {v0, v1, v2}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v0
mul-long v0, v0, v18
add-long v10, v6, v8
const/16 v2, 0x2b
.line 6105
invoke-static {v10, v11, v2}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v10
const/16 v2, 0x1e
invoke-static {v3, v4, v2}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v12
add-long/2addr v10, v12
add-long v22, v10, v0
add-long v8, v8, v18
const/16 v0, 0x12
.line 6106
invoke-static {v8, v9, v0}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v0
add-long/2addr v6, v0
add-long v24, v6, v3
.line 6105
invoke-static/range {v22 .. v27}, Lcom/imo/android/imoim/util/ag;->a(JJJ)J
move-result-wide v0
return-wide v0
:cond_f0
const/16 v3, 0x2a
const-wide/16 v23, 0x40
const-wide/16 v6, 0x18
cmp-long v27, v1, v23
if-gtz v27, :cond_185
shl-long v20, v1, v11
add-long v20, v20, v18
.line 7111
invoke-static {v0, v12, v13}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v22
mul-long v22, v22, v18
.line 7112
invoke-static {v0, v4, v5}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v14
add-long/2addr v1, v12
sub-long v11, v1, v6
.line 7113
invoke-static {v0, v11, v12}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v11
sub-long v9, v1, v9
.line 7114
invoke-static {v0, v9, v10}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
move-wide/from16 p1, v9
const-wide/16 v8, 0x10
.line 7115
invoke-static {v0, v8, v9}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v27
mul-long v27, v27, v18
.line 7116
invoke-static {v0, v6, v7}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v6
const-wide/16 v18, 0x9
mul-long v6, v6, v18
sub-long v4, v1, v4
.line 7117
invoke-static {v0, v4, v5}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v4
sub-long/2addr v1, v8
.line 7118
invoke-static {v0, v1, v2}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v0
mul-long v0, v0, v20
add-long v8, v22, v4
const/16 v2, 0x2b
.line 7119
invoke-static {v8, v9, v2}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v22
const/16 v2, 0x1e
invoke-static {v14, v15, v2}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v16
add-long v16, v16, v11
mul-long v16, v16, v18
add-long v22, v22, v16
xor-long v8, v8, p1
add-long/2addr v8, v6
const-wide/16 v16, 0x1
add-long v8, v8, v16
add-long v22, v22, v8
mul-long v22, v22, v20
.line 7121
invoke-static/range {v22 .. v23}, Ljava/lang/Long;->reverseBytes(J)J
move-result-wide v16
add-long v16, v16, v0
add-long v6, v27, v6
.line 7122
invoke-static {v6, v7, v3}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v2
add-long/2addr v2, v11
add-long v8, v8, v16
mul-long v8, v8, v20
.line 7123
invoke-static {v8, v9}, Ljava/lang/Long;->reverseBytes(J)J
move-result-wide v8
add-long/2addr v8, v4
mul-long v8, v8, v20
add-long/2addr v6, v11
add-long v4, v2, v6
mul-long v4, v4, v20
add-long/2addr v4, v8
.line 7125
invoke-static {v4, v5}, Ljava/lang/Long;->reverseBytes(J)J
move-result-wide v4
add-long/2addr v4, v14
add-long/2addr v6, v4
mul-long v6, v6, v20
add-long v6, v6, p1
add-long/2addr v6, v0
const/16 v0, 0x2f
ushr-long v0, v6, v0
xor-long/2addr v0, v6
mul-long v0, v0, v20
add-long/2addr v0, v2
return-wide v0
:cond_185
add-long v14, v1, v12
const-wide/16 v16, 0x28
sub-long v12, v14, v16
.line 147
invoke-static {v0, v12, v13}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v11
const-wide/16 v27, 0x10
sub-long v8, v14, v27
.line 148
invoke-static {v0, v8, v9}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v8
const-wide/16 v31, 0x38
sub-long v3, v14, v31
invoke-static {v0, v3, v4}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v3
add-long/2addr v8, v3
const-wide/16 v3, 0x30
sub-long v5, v14, v3
.line 149
invoke-static {v0, v5, v6}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v5
add-long/2addr v5, v1
const-wide/16 v31, 0x18
sub-long v3, v14, v31
.line 150
invoke-static {v0, v3, v4}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v3
.line 149
invoke-static {v5, v6, v3, v4}, Lcom/imo/android/imoim/util/ag;->a(JJ)J
move-result-wide v3
sub-long v5, v14, v23
.line 159
invoke-static {v0, v5, v6}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v37
move-wide/from16 v39, v8
const-wide/16 v33, 0x8
add-long v7, v5, v33
.line 160
invoke-static {v0, v7, v8}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v7
const-wide/16 v27, 0x10
add-long v9, v5, v27
.line 161
invoke-static {v0, v9, v10}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
add-long v5, v5, v31
.line 162
invoke-static {v0, v5, v6}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v5
add-long v37, v1, v37
add-long v41, v3, v37
move-wide/from16 v43, v14
add-long v13, v41, v5
const/16 v15, 0x15
.line 164
invoke-static {v13, v14, v15}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v13
add-long/2addr v7, v9
add-long v7, v37, v7
const/16 v9, 0x2c
.line 167
invoke-static {v7, v8, v9}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v45
add-long v13, v13, v45
add-long/2addr v7, v5
add-long v13, v13, v37
const-wide v5, -0x4b6d499041670d8dL # -1.9079014105469082E-55
add-long v37, v39, v5
const-wide/16 v5, 0x20
sub-long v9, v43, v5
.line 174
invoke-static {v0, v9, v10}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v5
move-wide/from16 v43, v3
const-wide/16 v33, 0x8
add-long v3, v9, v33
.line 175
invoke-static {v0, v3, v4}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v3
move-wide/from16 v45, v7
const-wide/16 v27, 0x10
add-long v7, v9, v27
.line 176
invoke-static {v0, v7, v8}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v7
const-wide/16 v31, 0x18
add-long v9, v9, v31
.line 177
invoke-static {v0, v9, v10}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
add-long v37, v37, v5
add-long v5, v11, v37
add-long/2addr v5, v9
.line 179
invoke-static {v5, v6, v15}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v5
add-long/2addr v3, v7
add-long v3, v37, v3
const/16 v7, 0x2c
.line 182
invoke-static {v3, v4, v7}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v47
add-long v5, v5, v47
add-long/2addr v3, v9
add-long v5, v5, v37
const-wide v7, -0x4b6d499041670d8dL # -1.9079014105469082E-55
mul-long v11, v11, v7
const-wide/16 v7, 0x0
.line 186
invoke-static {v0, v7, v8}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
add-long/2addr v11, v9
const-wide/16 v7, 0x1
sub-long/2addr v1, v7
const-wide/16 v7, -0x40
and-long/2addr v1, v7
move-wide v7, v5
move-wide v5, v3
move-wide v3, v1
move-wide/from16 v1, p1
:goto_24a
add-long v11, v11, v39
add-long v11, v11, v45
move-wide/from16 p1, v3
const-wide/16 v9, 0x8
add-long v3, v1, v9
.line 190
invoke-static {v0, v3, v4}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
add-long/2addr v11, v9
const/16 v9, 0x25
invoke-static {v11, v12, v9}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v10
const-wide v20, -0x4b6d499041670d8dL # -1.9079014105469082E-55
mul-long v10, v10, v20
add-long v39, v39, v13
move-wide/from16 p3, v10
const-wide/16 v25, 0x30
add-long v9, v1, v25
.line 191
invoke-static {v0, v9, v10}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
add-long v9, v39, v9
const/16 v11, 0x2a
invoke-static {v9, v10, v11}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v9
mul-long v9, v9, v20
xor-long v35, p3, v7
add-long v11, v1, v16
.line 193
invoke-static {v0, v11, v12}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v11
add-long v45, v45, v11
add-long v39, v9, v45
add-long v9, v43, v5
const/16 v11, 0x21
.line 194
invoke-static {v9, v10, v11}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v9
mul-long v11, v9, v20
mul-long v13, v13, v20
add-long v5, v35, v5
.line 199
invoke-static {v0, v1, v2}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
.line 200
invoke-static {v0, v3, v4}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v3
move-wide/from16 p3, v7
const-wide/16 v27, 0x10
add-long v7, v1, v27
.line 201
invoke-static {v0, v7, v8}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v37
move-wide/from16 v43, v7
const-wide/16 v31, 0x18
add-long v7, v1, v31
.line 202
invoke-static {v0, v7, v8}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v7
add-long/2addr v13, v9
add-long/2addr v5, v13
add-long/2addr v5, v7
.line 204
invoke-static {v5, v6, v15}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v5
add-long v3, v3, v37
add-long/2addr v3, v13
const/16 v9, 0x2c
.line 207
invoke-static {v3, v4, v9}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v37
add-long v5, v5, v37
add-long/2addr v3, v7
add-long/2addr v13, v5
add-long v7, v11, p3
move-wide/from16 v5, v43
.line 213
invoke-static {v0, v5, v6}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v5
add-long v5, v39, v5
move-wide/from16 p3, v11
const-wide/16 v9, 0x20
add-long v11, v1, v9
.line 214
invoke-static {v0, v11, v12}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v29
const-wide/16 v33, 0x8
add-long v9, v11, v33
.line 215
invoke-static {v0, v9, v10}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v9
move-wide/from16 v43, v13
const-wide/16 v27, 0x10
add-long v13, v11, v27
.line 216
invoke-static {v0, v13, v14}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v13
const-wide/16 v31, 0x18
add-long v11, v11, v31
.line 217
invoke-static {v0, v11, v12}, Lcom/imo/android/imoim/util/ag;->a([BJ)J
move-result-wide v11
add-long v7, v7, v29
add-long/2addr v5, v7
add-long/2addr v5, v11
.line 219
invoke-static {v5, v6, v15}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v5
add-long/2addr v9, v13
add-long/2addr v9, v7
const/16 v13, 0x2c
.line 222
invoke-static {v9, v10, v13}, Ljava/lang/Long;->rotateRight(JI)J
move-result-wide v29
add-long v5, v5, v29
add-long/2addr v9, v11
add-long/2addr v7, v5
sub-long v5, p1, v23
add-long v1, v1, v23
const-wide/16 v11, 0x0
cmp-long v14, v5, v11
if-nez v14, :cond_333
.line 233
invoke-static {v3, v4, v9, v10}, Lcom/imo/android/imoim/util/ag;->a(JJ)J
move-result-wide v0
const/16 v14, 0x2f
ushr-long v2, v39, v14
xor-long v2, v39, v2
const-wide v18, -0x4b6d499041670d8dL # -1.9079014105469082E-55
mul-long v2, v2, v18
add-long/2addr v0, v2
add-long v0, v0, v35
move-wide/from16 v2, v43
.line 234
invoke-static {v2, v3, v7, v8}, Lcom/imo/android/imoim/util/ag;->a(JJ)J
move-result-wide v2
add-long v2, v2, p3
.line 233
invoke-static {v0, v1, v2, v3}, Lcom/imo/android/imoim/util/ag;->a(JJ)J
move-result-wide v0
return-wide v0
:cond_333
move-wide/from16 v20, v43
const-wide v18, -0x4b6d499041670d8dL # -1.9079014105469082E-55
move-wide/from16 v11, p3
move-wide/from16 v45, v3
move-wide v3, v5
move-wide v5, v9
move-wide/from16 v13, v20
move-wide/from16 v43, v35
goto/16 :goto_24a
.end method
.method private static b([BJ)I
.registers 4
long-to-int p2, p1
add-int/lit8 p1, p2, 0x3
.line 2062
aget-byte p1, p0, p1
and-int/lit16 p1, p1, 0xff
shl-int/lit8 p1, p1, 0x18
add-int/lit8 v0, p2, 0x2
aget-byte v0, p0, v0
and-int/lit16 v0, v0, 0xff
shl-int/lit8 v0, v0, 0x10
add-int/2addr p1, v0
add-int/lit8 v0, p2, 0x1
aget-byte v0, p0, v0
and-int/lit16 v0, v0, 0xff
shl-int/lit8 v0, v0, 0x8
add-int/2addr p1, v0
add-int/lit8 p2, p2, 0x0
aget-byte p0, p0, p2
and-int/lit16 p0, p0, 0xff
shl-int/lit8 p0, p0, 0x0
add-int/2addr p1, p0
return p1
.end method