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