g.smali
.class public final Lcom/subgraph/orchid/crypto/g;
.super Ljava/lang/Object;
.source "Curve25519.java"
# static fields
.field private static bFQ:[B
.field private static bFR:[I
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
const/16 v1, 0x20
.line 38
new-array v0, v1, [B
fill-array-data v0, :array_12
sput-object v0, Lcom/subgraph/orchid/crypto/g;->bFQ:[B
.line 39
new-array v0, v1, [I
fill-array-data v0, :array_26
sput-object v0, Lcom/subgraph/orchid/crypto/g;->bFR:[I
return-void
.line 38
nop
:array_12
.array-data 1
0x9t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
0x0t
.end array-data
.line 39
:array_26
.array-data 4
0x13
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x80
.end array-data
.end method
.method public static a([B[B[B)I
.registers 39
.prologue
.line 445
const/16 v5, 0x60
new-array v0, v5, [I
move-object/from16 v22, v0
.line 446
const/16 v5, 0x20
new-array v0, v5, [B
move-object/from16 v25, v0
.line 448
const/4 v5, 0x0
:goto_d
const/16 v6, 0x20
if-ge v5, v6, :cond_18
.line 449
aget-byte v6, p1, v5
aput-byte v6, v25, v5
.line 448
add-int/lit8 v5, v5, 0x1
goto :goto_d
.line 451
:cond_18
const/4 v5, 0x0
aget-byte v6, v25, v5
and-int/lit16 v6, v6, 0xf8
int-to-byte v6, v6
aput-byte v6, v25, v5
.line 452
const/16 v5, 0x1f
aget-byte v6, v25, v5
and-int/lit8 v6, v6, 0x7f
int-to-byte v6, v6
aput-byte v6, v25, v5
.line 453
const/16 v5, 0x1f
aget-byte v6, v25, v5
or-int/lit8 v6, v6, 0x40
int-to-byte v6, v6
aput-byte v6, v25, v5
.line 455
const/4 v5, 0x0
:goto_33
const/16 v6, 0x20
if-ge v5, v6, :cond_40
.line 456
aget-byte v6, p2, v5
and-int/lit16 v6, v6, 0xff
aput v6, v22, v5
.line 455
add-int/lit8 v5, v5, 0x1
goto :goto_33
.line 1209
:cond_40
const/16 v5, 0x40
new-array v0, v5, [I
move-object/from16 v26, v0
.line 1210
const/16 v5, 0x40
new-array v0, v5, [I
move-object/from16 v27, v0
.line 1211
const/16 v5, 0x40
new-array v0, v5, [I
move-object/from16 v28, v0
.line 1212
const/16 v5, 0x40
new-array v0, v5, [I
move-object/from16 v29, v0
.line 1213
const/16 v5, 0x40
new-array v0, v5, [I
move-object/from16 v30, v0
.line 1214
const/16 v5, 0x40
new-array v0, v5, [I
move-object/from16 v31, v0
.line 1215
const/16 v5, 0x40
new-array v9, v5, [I
.line 1216
const/16 v5, 0x40
new-array v7, v5, [I
.line 1217
const/16 v5, 0x40
new-array v12, v5, [I
.line 1218
const/16 v5, 0x40
new-array v5, v5, [I
.line 1219
const/16 v6, 0x40
new-array v0, v6, [I
move-object/from16 v32, v0
.line 1220
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v20, v0
.line 1221
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v33, v0
.line 1222
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v34, v0
.line 1223
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v17, v0
.line 1225
const/4 v6, 0x0
:goto_93
const/16 v8, 0x20
if-ge v6, v8, :cond_9e
.line 1226
aget v8, v22, v6
aput v8, v26, v6
.line 1225
add-int/lit8 v6, v6, 0x1
goto :goto_93
.line 1228
:cond_9e
const/16 v6, 0x20
const/4 v8, 0x1
aput v8, v26, v6
.line 1230
const/16 v6, 0x21
:goto_a5
const/16 v8, 0x40
if-ge v6, v8, :cond_af
.line 1231
const/4 v8, 0x0
aput v8, v26, v6
.line 1230
add-int/lit8 v6, v6, 0x1
goto :goto_a5
.line 1233
:cond_af
const/4 v6, 0x0
const/4 v8, 0x1
aput v8, v27, v6
.line 1235
const/4 v6, 0x1
:goto_b4
const/16 v8, 0x40
if-ge v6, v8, :cond_be
.line 1236
const/4 v8, 0x0
aput v8, v27, v6
.line 1235
add-int/lit8 v6, v6, 0x1
goto :goto_b4
.line 1243
:cond_be
const/16 v6, 0xfe
move/from16 v24, v6
:goto_c2
if-ltz v24, :cond_1be
.line 1245
div-int/lit8 v6, v24, 0x8
aget-byte v6, v25, v6
and-int/lit16 v6, v6, 0xff
and-int/lit8 v8, v24, 0x7
ushr-int/2addr v6, v8
.line 1246
and-int/lit8 v35, v6, 0x1
.line 1247
move-object/from16 v0, v28
move-object/from16 v1, v29
move-object/from16 v2, v27
move-object/from16 v3, v26
move/from16 v4, v35
invoke-static {v0, v1, v2, v3, v4}, Lcom/subgraph/orchid/crypto/g;->a([I[I[I[II)V
.line 1248
const/16 v6, 0x20
move-object/from16 v0, v28
move-object/from16 v1, v28
invoke-static {v9, v0, v1, v6}, Lcom/subgraph/orchid/crypto/g;->a([I[I[II)V
.line 1249
const/16 v6, 0x20
move-object/from16 v0, v28
move-object/from16 v1, v28
invoke-static {v9, v6, v0, v1}, Lcom/subgraph/orchid/crypto/g;->a([II[I[I)V
.line 1250
const/16 v6, 0x20
move-object/from16 v0, v29
move-object/from16 v1, v29
invoke-static {v7, v0, v1, v6}, Lcom/subgraph/orchid/crypto/g;->a([I[I[II)V
.line 1251
const/16 v6, 0x20
move-object/from16 v0, v29
move-object/from16 v1, v29
invoke-static {v7, v6, v0, v1}, Lcom/subgraph/orchid/crypto/g;->a([II[I[I)V
.line 1252
const/4 v6, 0x0
const/4 v8, 0x0
invoke-static {v12, v6, v9, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 1253
const/16 v6, 0x20
const/16 v8, 0x20
invoke-static {v12, v6, v9, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 1254
const/4 v6, 0x0
const/4 v8, 0x0
const/16 v10, 0x20
invoke-static/range {v5 .. v10}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 1255
const/16 v6, 0x20
const/16 v8, 0x20
const/4 v10, 0x0
invoke-static/range {v5 .. v10}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 1256
const/16 v6, 0x20
move-object/from16 v0, v32
invoke-static {v0, v5, v5, v6}, Lcom/subgraph/orchid/crypto/g;->a([I[I[II)V
.line 1257
const/16 v6, 0x20
move-object/from16 v0, v32
invoke-static {v0, v6, v5, v5}, Lcom/subgraph/orchid/crypto/g;->a([II[I[I)V
.line 1258
const/4 v6, 0x0
const/16 v8, 0x20
move-object/from16 v0, v20
move-object/from16 v1, v32
invoke-static {v0, v6, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 1259
const/4 v6, 0x0
move-object/from16 v0, v33
invoke-static {v0, v6, v12, v12}, Lcom/subgraph/orchid/crypto/g;->a([II[I[I)V
.line 2143
const/4 v6, 0x0
.line 2145
const/4 v8, 0x0
:goto_13b
const/16 v10, 0x1f
if-ge v8, v10, :cond_14f
.line 2147
const v10, 0x1db41
aget v11, v33, v8
mul-int/2addr v10, v11
add-int/2addr v6, v10
.line 2148
and-int/lit16 v10, v6, 0xff
aput v10, v34, v8
.line 2149
ushr-int/lit8 v6, v6, 0x8
.line 2145
add-int/lit8 v8, v8, 0x1
goto :goto_13b
.line 2152
:cond_14f
const v8, 0x1db41
const/16 v10, 0x1f
aget v10, v33, v10
mul-int/2addr v8, v10
add-int/2addr v6, v8
.line 2153
const/16 v8, 0x1f
and-int/lit8 v10, v6, 0x7f
aput v10, v34, v8
.line 2154
ushr-int/lit8 v6, v6, 0x7
mul-int/lit8 v6, v6, 0x13
.line 2156
const/4 v8, 0x0
:goto_163
const/16 v10, 0x1f
if-ge v8, v10, :cond_173
.line 2158
aget v10, v34, v8
add-int/2addr v6, v10
.line 2159
and-int/lit16 v10, v6, 0xff
aput v10, v34, v8
.line 2160
ushr-int/lit8 v6, v6, 0x8
.line 2156
add-int/lit8 v8, v8, 0x1
goto :goto_163
.line 2163
:cond_173
aget v10, v34, v8
add-int/2addr v6, v10
.line 2164
aput v6, v34, v8
.line 1261
const/4 v6, 0x0
move-object/from16 v0, v17
move-object/from16 v1, v34
invoke-static {v0, v1, v12, v6}, Lcom/subgraph/orchid/crypto/g;->a([I[I[II)V
.line 1262
const/4 v11, 0x0
const/4 v13, 0x0
const/16 v15, 0x20
move-object/from16 v10, v30
move-object v14, v12
invoke-static/range {v10 .. v15}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 1263
const/16 v14, 0x20
const/16 v16, 0x0
const/16 v18, 0x0
move-object/from16 v13, v30
move-object/from16 v15, v33
invoke-static/range {v13 .. v18}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 1264
const/4 v6, 0x0
const/4 v8, 0x0
move-object/from16 v0, v31
move-object/from16 v1, v32
invoke-static {v0, v6, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 1265
const/16 v19, 0x20
const/16 v21, 0x0
const/16 v23, 0x0
move-object/from16 v18, v31
invoke-static/range {v18 .. v23}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 1266
move-object/from16 v0, v27
move-object/from16 v1, v26
move-object/from16 v2, v30
move-object/from16 v3, v31
move/from16 v4, v35
invoke-static {v0, v1, v2, v3, v4}, Lcom/subgraph/orchid/crypto/g;->a([I[I[I[II)V
.line 1243
add-int/lit8 v6, v24, -0x1
move/from16 v24, v6
goto/16 :goto_c2
.line 1269
:cond_1be
const/4 v5, 0x0
:goto_1bf
const/16 v6, 0x40
if-ge v5, v6, :cond_1ca
.line 1270
aget v6, v27, v5
aput v6, v22, v5
.line 1269
add-int/lit8 v5, v5, 0x1
goto :goto_1bf
.line 2275
:cond_1ca
const/16 v5, 0x20
new-array v9, v5, [I
.line 2276
const/16 v5, 0x20
new-array v0, v5, [I
move-object/from16 v18, v0
.line 2277
const/16 v5, 0x20
new-array v5, v5, [I
.line 2278
const/16 v6, 0x20
new-array v14, v6, [I
.line 2279
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v25, v0
.line 2280
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v26, v0
.line 2281
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v27, v0
.line 2282
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v28, v0
.line 2283
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v20, v0
.line 2284
const/16 v6, 0x20
new-array v0, v6, [I
move-object/from16 v24, v0
.line 2288
const/4 v6, 0x0
const/16 v7, 0x20
move-object/from16 v0, v22
invoke-static {v9, v6, v0, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2291
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
invoke-static {v0, v6, v9, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2294
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2298
const/16 v19, 0x0
const/16 v21, 0x0
const/16 v23, 0x20
invoke-static/range {v18 .. v23}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2301
const/4 v6, 0x0
const/4 v8, 0x0
const/4 v10, 0x0
move-object/from16 v7, v18
invoke-static/range {v5 .. v10}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2304
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
invoke-static {v0, v6, v5, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2307
const/4 v15, 0x0
const/16 v17, 0x0
const/16 v19, 0x0
move-object/from16 v16, v20
invoke-static/range {v14 .. v19}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2310
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
invoke-static {v0, v6, v14, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2313
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2316
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2319
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2322
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2325
const/4 v11, 0x0
const/4 v13, 0x0
const/4 v15, 0x0
move-object/from16 v10, v25
move-object/from16 v12, v20
invoke-static/range {v10 .. v15}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2328
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v25
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2331
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2334
const/4 v6, 0x2
:goto_282
const/16 v7, 0xa
if-ge v6, v7, :cond_29b
.line 2336
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2337
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2334
add-int/lit8 v6, v6, 0x2
goto :goto_282
.line 2341
:cond_29b
const/4 v7, 0x0
const/4 v9, 0x0
const/4 v11, 0x0
move-object/from16 v6, v26
move-object/from16 v8, v24
move-object/from16 v10, v25
invoke-static/range {v6 .. v11}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2344
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v26
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2347
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2350
const/4 v6, 0x2
:goto_2ba
const/16 v7, 0x14
if-ge v6, v7, :cond_2d3
.line 2352
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2353
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2350
add-int/lit8 v6, v6, 0x2
goto :goto_2ba
.line 2357
:cond_2d3
const/4 v7, 0x0
const/4 v9, 0x0
const/4 v11, 0x0
move-object/from16 v6, v20
move-object/from16 v8, v24
move-object/from16 v10, v26
invoke-static/range {v6 .. v11}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2360
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2363
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2366
const/4 v6, 0x2
:goto_2f2
const/16 v7, 0xa
if-ge v6, v7, :cond_30b
.line 2368
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2369
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2366
add-int/lit8 v6, v6, 0x2
goto :goto_2f2
.line 2373
:cond_30b
const/4 v7, 0x0
const/4 v9, 0x0
const/4 v11, 0x0
move-object/from16 v6, v27
move-object/from16 v8, v20
move-object/from16 v10, v25
invoke-static/range {v6 .. v11}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2376
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v27
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2379
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2382
const/4 v6, 0x2
:goto_32a
const/16 v7, 0x32
if-ge v6, v7, :cond_343
.line 2384
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2385
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2382
add-int/lit8 v6, v6, 0x2
goto :goto_32a
.line 2389
:cond_343
const/4 v7, 0x0
const/4 v9, 0x0
const/4 v11, 0x0
move-object/from16 v6, v28
move-object/from16 v8, v24
move-object/from16 v10, v27
invoke-static/range {v6 .. v11}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2392
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v28
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2395
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2398
const/4 v6, 0x2
:goto_362
const/16 v7, 0x64
if-ge v6, v7, :cond_37b
.line 2400
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2401
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2398
add-int/lit8 v6, v6, 0x2
goto :goto_362
.line 2405
:cond_37b
const/4 v7, 0x0
const/4 v9, 0x0
const/4 v11, 0x0
move-object/from16 v6, v24
move-object/from16 v8, v20
move-object/from16 v10, v28
invoke-static/range {v6 .. v11}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2408
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2411
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2414
const/4 v6, 0x2
:goto_39a
const/16 v7, 0x32
if-ge v6, v7, :cond_3b3
.line 2416
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2417
const/4 v7, 0x0
const/4 v8, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v7, v1, v8}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2414
add-int/lit8 v6, v6, 0x2
goto :goto_39a
.line 2421
:cond_3b3
const/4 v7, 0x0
const/4 v9, 0x0
const/4 v11, 0x0
move-object/from16 v6, v20
move-object/from16 v8, v24
move-object/from16 v10, v27
invoke-static/range {v6 .. v11}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 2424
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2427
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2430
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2433
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v20
move-object/from16 v1, v24
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2436
const/4 v6, 0x0
const/4 v7, 0x0
move-object/from16 v0, v24
move-object/from16 v1, v20
invoke-static {v0, v6, v1, v7}, Lcom/subgraph/orchid/crypto/g;->square([II[II)V
.line 2440
const/16 v23, 0x20
const/16 v25, 0x0
const/16 v27, 0x0
move-object/from16 v26, v5
invoke-static/range {v22 .. v27}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 461
const/16 v23, 0x40
const/16 v25, 0x0
const/16 v27, 0x20
move-object/from16 v24, v22
move-object/from16 v26, v22
invoke-static/range {v22 .. v27}, Lcom/subgraph/orchid/crypto/g;->a([II[II[II)V
.line 3105
const/16 v5, 0x20
new-array v6, v5, [I
.line 3107
const/4 v5, 0x0
:goto_409
const/16 v7, 0x20
if-ge v5, v7, :cond_416
.line 3108
add-int/lit8 v7, v5, 0x40
aget v7, v22, v7
aput v7, v6, v5
.line 3107
add-int/lit8 v5, v5, 0x1
goto :goto_409
.line 3110
:cond_416
sget-object v5, Lcom/subgraph/orchid/crypto/g;->bFR:[I
.line 3112
const/4 v7, 0x0
move-object/from16 v0, v22
move-object/from16 v1, v22
invoke-static {v0, v1, v5, v7}, Lcom/subgraph/orchid/crypto/g;->a([I[I[II)V
.line 3114
const/16 v5, 0x5f
aget v5, v22, v5
ushr-int/lit8 v5, v5, 0x7
and-int/lit8 v5, v5, 0x1
neg-int v7, v5
.line 3116
const/4 v5, 0x0
:goto_42a
const/16 v8, 0x20
if-ge v5, v8, :cond_440
.line 3117
add-int/lit8 v8, v5, 0x40
aget v9, v22, v8
aget v10, v6, v5
add-int/lit8 v11, v5, 0x40
aget v11, v22, v11
xor-int/2addr v10, v11
and-int/2addr v10, v7
xor-int/2addr v9, v10
aput v9, v22, v8
.line 3116
add-int/lit8 v5, v5, 0x1
goto :goto_42a
.line 464
:cond_440
const/4 v5, 0x0
:goto_441
const/16 v6, 0x20
if-ge v5, v6, :cond_44f
.line 465
add-int/lit8 v6, v5, 0x40
aget v6, v22, v6
int-to-byte v6, v6
aput-byte v6, p0, v5
.line 464
add-int/lit8 v5, v5, 0x1
goto :goto_441
.line 467
:cond_44f
const/4 v5, 0x0
return v5
.end method
.method private static a([II[II[II)V
.registers 13
.prologue
const/16 v6, 0x20
const/4 v2, 0x0
.line 124
move v3, v2
:goto_4
if-ge v3, v6, :cond_36
move v0, v2
move v1, v2
.line 128
:goto_8
if-gt v1, v3, :cond_18
.line 129
add-int v4, p3, v1
aget v4, p2, v4
add-int v5, p5, v3
sub-int/2addr v5, v1
aget v5, p4, v5
mul-int/2addr v4, v5
add-int/2addr v0, v4
.line 128
add-int/lit8 v1, v1, 0x1
goto :goto_8
.line 131
:cond_18
add-int/lit8 v1, v3, 0x1
:goto_1a
if-ge v1, v6, :cond_2e
.line 132
add-int v4, p3, v1
aget v4, p2, v4
mul-int/lit8 v4, v4, 0x26
add-int v5, p5, v3
add-int/lit8 v5, v5, 0x20
sub-int/2addr v5, v1
aget v5, p4, v5
mul-int/2addr v4, v5
add-int/2addr v0, v4
.line 131
add-int/lit8 v1, v1, 0x1
goto :goto_1a
.line 134
:cond_2e
add-int v1, p1, v3
aput v0, p0, v1
.line 124
add-int/lit8 v0, v3, 0x1
move v3, v0
goto :goto_4
.line 137
:cond_36
invoke-static {p0, p1}, Lcom/subgraph/orchid/crypto/g;->b([II)V
.line 138
return-void
.end method
.method private static a([II[I[I)V
.registers 9
.prologue
const/16 v4, 0x1f
.line 64
const/16 v1, 0xda
.line 66
const/4 v0, 0x0
:goto_5
if-ge v0, v4, :cond_1e
.line 68
aget v2, p2, v0
const v3, 0xff00
add-int/2addr v2, v3
add-int/lit8 v3, v0, 0x20
aget v3, p3, v3
sub-int/2addr v2, v3
add-int/2addr v1, v2
.line 69
add-int v2, p1, v0
and-int/lit16 v3, v1, 0xff
aput v3, p0, v2
.line 70
ushr-int/lit8 v1, v1, 0x8
.line 66
add-int/lit8 v0, v0, 0x1
goto :goto_5
.line 73
:cond_1e
aget v0, p2, v4
const/16 v2, 0x3f
aget v2, p3, v2
sub-int/2addr v0, v2
add-int/2addr v0, v1
.line 74
add-int/lit8 v1, p1, 0x1f
aput v0, p0, v1
.line 75
return-void
.end method
.method private static a([I[I[II)V
.registers 9
.prologue
const/4 v0, 0x0
const/16 v4, 0x1f
.line 49
move v1, v0
.line 51
:goto_4
if-ge v0, v4, :cond_17
.line 53
aget v2, p1, v0
add-int v3, p3, v0
aget v3, p2, v3
add-int/2addr v2, v3
add-int/2addr v1, v2
.line 54
and-int/lit16 v2, v1, 0xff
aput v2, p0, v0
.line 55
ushr-int/lit8 v1, v1, 0x8
.line 51
add-int/lit8 v0, v0, 0x1
goto :goto_4
.line 58
:cond_17
aget v0, p1, v4
add-int/lit8 v2, p3, 0x1f
aget v2, p2, v2
add-int/2addr v0, v2
add-int/2addr v0, v1
.line 59
aput v0, p0, v4
.line 60
return-void
.end method
.method private static a([I[I[I[II)V
.registers 9
.prologue
.line 197
add-int/lit8 v1, p4, -0x1
.line 199
const/4 v0, 0x0
:goto_3
const/16 v2, 0x40
if-ge v0, v2, :cond_1a
.line 201
aget v2, p2, v0
aget v3, p3, v0
xor-int/2addr v2, v3
and-int/2addr v2, v1
.line 202
aget v3, p3, v0
xor-int/2addr v3, v2
aput v3, p0, v0
.line 203
aget v3, p2, v0
xor-int/2addr v2, v3
aput v2, p1, v0
.line 199
add-int/lit8 v0, v0, 0x1
goto :goto_3
.line 205
:cond_1a
return-void
.end method
.method private static b([II)V
.registers 8
.prologue
const/16 v5, 0x1f
const/4 v0, 0x0
.line 79
move v1, v0
move v2, v0
.line 81
:goto_5
if-ge v1, v5, :cond_17
.line 83
add-int v3, p1, v1
aget v3, p0, v3
add-int/2addr v2, v3
.line 84
add-int v3, p1, v1
and-int/lit16 v4, v2, 0xff
aput v4, p0, v3
.line 85
ushr-int/lit8 v2, v2, 0x8
.line 81
add-int/lit8 v1, v1, 0x1
goto :goto_5
.line 88
:cond_17
add-int/lit8 v1, p1, 0x1f
aget v1, p0, v1
add-int/2addr v1, v2
.line 89
add-int/lit8 v2, p1, 0x1f
and-int/lit8 v3, v1, 0x7f
aput v3, p0, v2
.line 90
ushr-int/lit8 v1, v1, 0x7
mul-int/lit8 v1, v1, 0x13
.line 92
:goto_26
if-ge v0, v5, :cond_38
.line 94
add-int v2, p1, v0
aget v2, p0, v2
add-int/2addr v1, v2
.line 95
add-int v2, p1, v0
and-int/lit16 v3, v1, 0xff
aput v3, p0, v2
.line 96
ushr-int/lit8 v1, v1, 0x8
.line 92
add-int/lit8 v0, v0, 0x1
goto :goto_26
.line 99
:cond_38
add-int/lit8 v0, p1, 0x1f
aget v0, p0, v0
add-int/2addr v0, v1
.line 100
add-int/lit8 v1, p1, 0x1f
aput v0, p0, v1
.line 101
return-void
.end method
.method public static f([B[B)I
.registers 3
.prologue
.line 43
sget-object v0, Lcom/subgraph/orchid/crypto/g;->bFQ:[B
.line 44
invoke-static {p0, p1, v0}, Lcom/subgraph/orchid/crypto/g;->a([B[B[B)I
move-result v0
return v0
.end method
.method private static square([II[II)V
.registers 10
.prologue
const/4 v2, 0x0
.line 171
move v3, v2
:goto_2
const/16 v0, 0x20
if-ge v3, v0, :cond_5f
move v0, v2
move v1, v2
.line 175
:goto_8
sub-int v4, v3, v1
if-ge v1, v4, :cond_1a
.line 176
add-int v4, p3, v1
aget v4, p2, v4
add-int v5, p3, v3
sub-int/2addr v5, v1
aget v5, p2, v5
mul-int/2addr v4, v5
add-int/2addr v0, v4
.line 175
add-int/lit8 v1, v1, 0x1
goto :goto_8
.line 178
:cond_1a
add-int/lit8 v1, v3, 0x1
:goto_1c
add-int/lit8 v4, v3, 0x20
sub-int/2addr v4, v1
if-ge v1, v4, :cond_33
.line 179
add-int v4, p3, v1
aget v4, p2, v4
mul-int/lit8 v4, v4, 0x26
add-int v5, p3, v3
add-int/lit8 v5, v5, 0x20
sub-int/2addr v5, v1
aget v5, p2, v5
mul-int/2addr v4, v5
add-int/2addr v0, v4
.line 178
add-int/lit8 v1, v1, 0x1
goto :goto_1c
.line 181
:cond_33
shl-int/lit8 v0, v0, 0x1
.line 183
and-int/lit8 v1, v3, 0x1
if-nez v1, :cond_57
.line 185
div-int/lit8 v1, v3, 0x2
add-int/2addr v1, p3
aget v1, p2, v1
div-int/lit8 v4, v3, 0x2
add-int/2addr v4, p3
aget v4, p2, v4
mul-int/2addr v1, v4
add-int/2addr v0, v1
.line 186
div-int/lit8 v1, v3, 0x2
add-int/2addr v1, p3
add-int/lit8 v1, v1, 0x10
aget v1, p2, v1
mul-int/lit8 v1, v1, 0x26
div-int/lit8 v4, v3, 0x2
add-int/2addr v4, p3
add-int/lit8 v4, v4, 0x10
aget v4, p2, v4
mul-int/2addr v1, v4
add-int/2addr v0, v1
.line 189
:cond_57
add-int v1, p1, v3
aput v0, p0, v1
.line 171
add-int/lit8 v0, v3, 0x1
move v3, v0
goto :goto_2
.line 192
:cond_5f
invoke-static {p0, p1}, Lcom/subgraph/orchid/crypto/g;->b([II)V
.line 193
return-void
.end method