ThreefishEngine$Threefish512Cipher.smali
.class final Lorg/spongycastle/crypto/engines/ThreefishEngine$Threefish512Cipher;
.super Lorg/spongycastle/crypto/engines/ThreefishEngine$ThreefishCipher;
.source "ThreefishEngine.java"
# static fields
.field private static final ROTATION_0_0:I = 0x2e
.field private static final ROTATION_0_1:I = 0x24
.field private static final ROTATION_0_2:I = 0x13
.field private static final ROTATION_0_3:I = 0x25
.field private static final ROTATION_1_0:I = 0x21
.field private static final ROTATION_1_1:I = 0x1b
.field private static final ROTATION_1_2:I = 0xe
.field private static final ROTATION_1_3:I = 0x2a
.field private static final ROTATION_2_0:I = 0x11
.field private static final ROTATION_2_1:I = 0x31
.field private static final ROTATION_2_2:I = 0x24
.field private static final ROTATION_2_3:I = 0x27
.field private static final ROTATION_3_0:I = 0x2c
.field private static final ROTATION_3_1:I = 0x9
.field private static final ROTATION_3_2:I = 0x36
.field private static final ROTATION_3_3:I = 0x38
.field private static final ROTATION_4_0:I = 0x27
.field private static final ROTATION_4_1:I = 0x1e
.field private static final ROTATION_4_2:I = 0x22
.field private static final ROTATION_4_3:I = 0x18
.field private static final ROTATION_5_0:I = 0xd
.field private static final ROTATION_5_1:I = 0x32
.field private static final ROTATION_5_2:I = 0xa
.field private static final ROTATION_5_3:I = 0x11
.field private static final ROTATION_6_0:I = 0x19
.field private static final ROTATION_6_1:I = 0x1d
.field private static final ROTATION_6_2:I = 0x27
.field private static final ROTATION_6_3:I = 0x2b
.field private static final ROTATION_7_0:I = 0x8
.field private static final ROTATION_7_1:I = 0x23
.field private static final ROTATION_7_2:I = 0x38
.field private static final ROTATION_7_3:I = 0x16
# direct methods
.method protected constructor <init>([J[J)V
.registers 3
.prologue
.line 691
invoke-direct {p0, p1, p2}, Lorg/spongycastle/crypto/engines/ThreefishEngine$ThreefishCipher;-><init>([J[J)V
.line 692
return-void
.end method
# virtual methods
.method public final decryptBlock([J[J)V
.registers 37
.prologue
.line 840
move-object/from16 v0, p0
iget-object v0, v0, Lorg/spongycastle/crypto/engines/ThreefishEngine$Threefish512Cipher;->kw:[J
move-object/from16 v23, v0
.line 841
move-object/from16 v0, p0
iget-object v0, v0, Lorg/spongycastle/crypto/engines/ThreefishEngine$Threefish512Cipher;->t:[J
move-object/from16 v24, v0
.line 842
# getter for: Lorg/spongycastle/crypto/engines/ThreefishEngine;->MOD9:[I
invoke-static {}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->access$200()[I
move-result-object v25
.line 843
# getter for: Lorg/spongycastle/crypto/engines/ThreefishEngine;->MOD3:[I
invoke-static {}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->access$100()[I
move-result-object v26
.line 846
move-object/from16 v0, v23
array-length v6, v0
const/16 v7, 0x11
if-eq v6, v7, :cond_21
.line 848
new-instance v6, Ljava/lang/IllegalArgumentException;
invoke-direct {v6}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v6
.line 850
:cond_21
move-object/from16 v0, v24
array-length v6, v0
const/4 v7, 0x5
if-eq v6, v7, :cond_2d
.line 852
new-instance v6, Ljava/lang/IllegalArgumentException;
invoke-direct {v6}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v6
.line 855
:cond_2d
const/4 v6, 0x0
aget-wide v20, p1, v6
.line 856
const/4 v6, 0x1
aget-wide v18, p1, v6
.line 857
const/4 v6, 0x2
aget-wide v16, p1, v6
.line 858
const/4 v6, 0x3
aget-wide v14, p1, v6
.line 859
const/4 v6, 0x4
aget-wide v12, p1, v6
.line 860
const/4 v6, 0x5
aget-wide v10, p1, v6
.line 861
const/4 v6, 0x6
aget-wide v8, p1, v6
.line 862
const/4 v6, 0x7
aget-wide v6, p1, v6
.line 864
const/16 v22, 0x11
:goto_47
if-lez v22, :cond_23b
.line 866
aget v27, v25, v22
.line 867
aget v28, v26, v22
.line 870
add-int/lit8 v29, v27, 0x1
aget-wide v30, v23, v29
sub-long v20, v20, v30
.line 871
add-int/lit8 v29, v27, 0x2
aget-wide v30, v23, v29
sub-long v18, v18, v30
.line 872
add-int/lit8 v29, v27, 0x3
aget-wide v30, v23, v29
sub-long v16, v16, v30
.line 873
add-int/lit8 v29, v27, 0x4
aget-wide v30, v23, v29
sub-long v14, v14, v30
.line 874
add-int/lit8 v29, v27, 0x5
aget-wide v30, v23, v29
sub-long v12, v12, v30
.line 875
add-int/lit8 v29, v27, 0x6
aget-wide v30, v23, v29
add-int/lit8 v29, v28, 0x1
aget-wide v32, v24, v29
add-long v30, v30, v32
sub-long v10, v10, v30
.line 876
add-int/lit8 v29, v27, 0x7
aget-wide v30, v23, v29
add-int/lit8 v29, v28, 0x2
aget-wide v32, v24, v29
add-long v30, v30, v32
sub-long v8, v8, v30
.line 877
add-int/lit8 v29, v27, 0x8
aget-wide v30, v23, v29
move/from16 v0, v22
int-to-long v0, v0
move-wide/from16 v32, v0
add-long v30, v30, v32
const-wide/16 v32, 0x1
add-long v30, v30, v32
sub-long v6, v6, v30
.line 881
const/16 v29, 0x8
move-wide/from16 v0, v18
move/from16 v2, v29
invoke-static {v0, v1, v2, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 882
sub-long v8, v8, v18
.line 883
const/16 v29, 0x23
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 884
sub-long v20, v20, v6
.line 885
const/16 v29, 0x38
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 886
sub-long v16, v16, v10
.line 887
const/16 v29, 0x16
move/from16 v0, v29
invoke-static {v14, v15, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 888
sub-long/2addr v12, v14
.line 890
const/16 v29, 0x19
move-wide/from16 v0, v18
move/from16 v2, v29
invoke-static {v0, v1, v2, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 891
sub-long v12, v12, v18
.line 892
const/16 v29, 0x1d
move/from16 v0, v29
invoke-static {v14, v15, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 893
sub-long/2addr v8, v14
.line 894
const/16 v29, 0x27
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 895
sub-long v20, v20, v10
.line 896
const/16 v29, 0x2b
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 897
sub-long v16, v16, v6
.line 899
const/16 v29, 0xd
move-wide/from16 v0, v18
move/from16 v2, v29
move-wide/from16 v3, v16
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 900
sub-long v16, v16, v18
.line 901
const/16 v29, 0x32
move/from16 v0, v29
invoke-static {v6, v7, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 902
sub-long/2addr v12, v6
.line 903
const/16 v29, 0xa
move/from16 v0, v29
invoke-static {v10, v11, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 904
sub-long/2addr v8, v10
.line 905
const/16 v29, 0x11
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 906
sub-long v20, v20, v14
.line 908
const/16 v29, 0x27
move-wide/from16 v0, v18
move/from16 v2, v29
move-wide/from16 v3, v20
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 909
sub-long v20, v20, v18
.line 910
const/16 v29, 0x1e
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 911
sub-long v16, v16, v14
.line 912
const/16 v29, 0x22
move/from16 v0, v29
invoke-static {v10, v11, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 913
sub-long/2addr v12, v10
.line 914
const/16 v29, 0x18
move/from16 v0, v29
invoke-static {v6, v7, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 915
sub-long/2addr v8, v6
.line 918
aget-wide v30, v23, v27
sub-long v20, v20, v30
.line 919
add-int/lit8 v29, v27, 0x1
aget-wide v30, v23, v29
sub-long v18, v18, v30
.line 920
add-int/lit8 v29, v27, 0x2
aget-wide v30, v23, v29
sub-long v16, v16, v30
.line 921
add-int/lit8 v29, v27, 0x3
aget-wide v30, v23, v29
sub-long v14, v14, v30
.line 922
add-int/lit8 v29, v27, 0x4
aget-wide v30, v23, v29
sub-long v12, v12, v30
.line 923
add-int/lit8 v29, v27, 0x5
aget-wide v30, v23, v29
aget-wide v32, v24, v28
add-long v30, v30, v32
sub-long v10, v10, v30
.line 924
add-int/lit8 v29, v27, 0x6
aget-wide v30, v23, v29
add-int/lit8 v28, v28, 0x1
aget-wide v28, v24, v28
add-long v28, v28, v30
sub-long v8, v8, v28
.line 925
add-int/lit8 v27, v27, 0x7
aget-wide v28, v23, v27
move/from16 v0, v22
int-to-long v0, v0
move-wide/from16 v30, v0
add-long v28, v28, v30
sub-long v6, v6, v28
.line 928
const/16 v27, 0x2c
move-wide/from16 v0, v18
move/from16 v2, v27
invoke-static {v0, v1, v2, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 929
sub-long v8, v8, v18
.line 930
const/16 v27, 0x9
move/from16 v0, v27
move-wide/from16 v1, v20
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 931
sub-long v20, v20, v6
.line 932
const/16 v27, 0x36
move/from16 v0, v27
move-wide/from16 v1, v16
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 933
sub-long v16, v16, v10
.line 934
const/16 v27, 0x38
move/from16 v0, v27
invoke-static {v14, v15, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 935
sub-long/2addr v12, v14
.line 937
const/16 v27, 0x11
move-wide/from16 v0, v18
move/from16 v2, v27
invoke-static {v0, v1, v2, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 938
sub-long v12, v12, v18
.line 939
const/16 v27, 0x31
move/from16 v0, v27
invoke-static {v14, v15, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 940
sub-long/2addr v8, v14
.line 941
const/16 v27, 0x24
move/from16 v0, v27
move-wide/from16 v1, v20
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 942
sub-long v20, v20, v10
.line 943
const/16 v27, 0x27
move/from16 v0, v27
move-wide/from16 v1, v16
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 944
sub-long v16, v16, v6
.line 946
const/16 v27, 0x21
move-wide/from16 v0, v18
move/from16 v2, v27
move-wide/from16 v3, v16
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 947
sub-long v16, v16, v18
.line 948
const/16 v27, 0x1b
move/from16 v0, v27
invoke-static {v6, v7, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 949
sub-long/2addr v12, v6
.line 950
const/16 v27, 0xe
move/from16 v0, v27
invoke-static {v10, v11, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 951
sub-long/2addr v8, v10
.line 952
const/16 v27, 0x2a
move/from16 v0, v27
move-wide/from16 v1, v20
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 953
sub-long v20, v20, v14
.line 955
const/16 v27, 0x2e
move-wide/from16 v0, v18
move/from16 v2, v27
move-wide/from16 v3, v20
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v18
.line 956
sub-long v20, v20, v18
.line 957
const/16 v27, 0x24
move/from16 v0, v27
move-wide/from16 v1, v16
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v14
.line 958
sub-long v16, v16, v14
.line 959
const/16 v27, 0x13
move/from16 v0, v27
invoke-static {v10, v11, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v10
.line 960
sub-long/2addr v12, v10
.line 961
const/16 v27, 0x25
move/from16 v0, v27
invoke-static {v6, v7, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->xorRotr(JIJ)J
move-result-wide v6
.line 962
sub-long/2addr v8, v6
.line 864
add-int/lit8 v22, v22, -0x2
goto/16 :goto_47
.line 968
:cond_23b
const/16 v22, 0x0
aget-wide v26, v23, v22
sub-long v20, v20, v26
.line 969
const/16 v22, 0x1
aget-wide v26, v23, v22
sub-long v18, v18, v26
.line 970
const/16 v22, 0x2
aget-wide v26, v23, v22
sub-long v16, v16, v26
.line 971
const/16 v22, 0x3
aget-wide v26, v23, v22
sub-long v14, v14, v26
.line 972
const/16 v22, 0x4
aget-wide v26, v23, v22
sub-long v12, v12, v26
.line 973
const/16 v22, 0x5
aget-wide v26, v23, v22
const/16 v22, 0x0
aget-wide v28, v24, v22
add-long v26, v26, v28
sub-long v10, v10, v26
.line 974
const/16 v22, 0x6
aget-wide v26, v23, v22
const/16 v22, 0x1
aget-wide v24, v24, v22
add-long v24, v24, v26
sub-long v8, v8, v24
.line 975
const/16 v22, 0x7
aget-wide v22, v23, v22
sub-long v6, v6, v22
.line 980
const/16 v22, 0x0
aput-wide v20, p2, v22
.line 981
const/16 v20, 0x1
aput-wide v18, p2, v20
.line 982
const/16 v18, 0x2
aput-wide v16, p2, v18
.line 983
const/16 v16, 0x3
aput-wide v14, p2, v16
.line 984
const/4 v14, 0x4
aput-wide v12, p2, v14
.line 985
const/4 v12, 0x5
aput-wide v10, p2, v12
.line 986
const/4 v10, 0x6
aput-wide v8, p2, v10
.line 987
const/4 v8, 0x7
aput-wide v6, p2, v8
.line 988
return-void
.end method
.method public final encryptBlock([J[J)V
.registers 39
.prologue
.line 696
move-object/from16 v0, p0
iget-object v0, v0, Lorg/spongycastle/crypto/engines/ThreefishEngine$Threefish512Cipher;->kw:[J
move-object/from16 v23, v0
.line 697
move-object/from16 v0, p0
iget-object v0, v0, Lorg/spongycastle/crypto/engines/ThreefishEngine$Threefish512Cipher;->t:[J
move-object/from16 v24, v0
.line 698
# getter for: Lorg/spongycastle/crypto/engines/ThreefishEngine;->MOD9:[I
invoke-static {}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->access$200()[I
move-result-object v25
.line 699
# getter for: Lorg/spongycastle/crypto/engines/ThreefishEngine;->MOD3:[I
invoke-static {}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->access$100()[I
move-result-object v26
.line 702
move-object/from16 v0, v23
array-length v6, v0
const/16 v7, 0x11
if-eq v6, v7, :cond_21
.line 704
new-instance v6, Ljava/lang/IllegalArgumentException;
invoke-direct {v6}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v6
.line 706
:cond_21
move-object/from16 v0, v24
array-length v6, v0
const/4 v7, 0x5
if-eq v6, v7, :cond_2d
.line 708
new-instance v6, Ljava/lang/IllegalArgumentException;
invoke-direct {v6}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v6
.line 714
:cond_2d
const/4 v6, 0x0
aget-wide v6, p1, v6
.line 715
const/4 v8, 0x1
aget-wide v8, p1, v8
.line 716
const/4 v10, 0x2
aget-wide v10, p1, v10
.line 717
const/4 v12, 0x3
aget-wide v12, p1, v12
.line 718
const/4 v14, 0x4
aget-wide v28, p1, v14
.line 719
const/4 v14, 0x5
aget-wide v30, p1, v14
.line 720
const/4 v14, 0x6
aget-wide v32, p1, v14
.line 721
const/4 v14, 0x7
aget-wide v34, p1, v14
.line 726
const/4 v14, 0x0
aget-wide v14, v23, v14
add-long v20, v6, v14
.line 727
const/4 v6, 0x1
aget-wide v6, v23, v6
add-long v18, v8, v6
.line 728
const/4 v6, 0x2
aget-wide v6, v23, v6
add-long v16, v10, v6
.line 729
const/4 v6, 0x3
aget-wide v6, v23, v6
add-long v14, v12, v6
.line 730
const/4 v6, 0x4
aget-wide v6, v23, v6
add-long v12, v28, v6
.line 731
const/4 v6, 0x5
aget-wide v6, v23, v6
const/4 v8, 0x0
aget-wide v8, v24, v8
add-long/2addr v6, v8
add-long v10, v30, v6
.line 732
const/4 v6, 0x6
aget-wide v6, v23, v6
const/4 v8, 0x1
aget-wide v8, v24, v8
add-long/2addr v6, v8
add-long v8, v32, v6
.line 733
const/4 v6, 0x7
aget-wide v6, v23, v6
add-long v6, v6, v34
.line 746
const/16 v22, 0x1
:goto_77
const/16 v27, 0x12
move/from16 v0, v22
move/from16 v1, v27
if-ge v0, v1, :cond_271
.line 748
aget v27, v25, v22
.line 749
aget v28, v26, v22
.line 757
const/16 v29, 0x2e
add-long v20, v20, v18
move-wide/from16 v0, v18
move/from16 v2, v29
move-wide/from16 v3, v20
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 758
const/16 v29, 0x24
add-long v16, v16, v14
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 759
const/16 v29, 0x13
add-long/2addr v12, v10
move/from16 v0, v29
invoke-static {v10, v11, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 760
const/16 v29, 0x25
add-long/2addr v8, v6
move/from16 v0, v29
invoke-static {v6, v7, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 762
const/16 v29, 0x21
add-long v16, v16, v18
move-wide/from16 v0, v18
move/from16 v2, v29
move-wide/from16 v3, v16
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 763
const/16 v29, 0x1b
add-long/2addr v12, v6
move/from16 v0, v29
invoke-static {v6, v7, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 764
const/16 v29, 0xe
add-long/2addr v8, v10
move/from16 v0, v29
invoke-static {v10, v11, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 765
const/16 v29, 0x2a
add-long v20, v20, v14
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 767
const/16 v29, 0x11
add-long v12, v12, v18
move-wide/from16 v0, v18
move/from16 v2, v29
invoke-static {v0, v1, v2, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 768
const/16 v29, 0x31
add-long/2addr v8, v14
move/from16 v0, v29
invoke-static {v14, v15, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 769
const/16 v29, 0x24
add-long v20, v20, v10
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 770
const/16 v29, 0x27
add-long v16, v16, v6
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 772
const/16 v29, 0x2c
add-long v8, v8, v18
move-wide/from16 v0, v18
move/from16 v2, v29
invoke-static {v0, v1, v2, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 773
const/16 v29, 0x9
add-long v20, v20, v6
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 774
const/16 v29, 0x36
add-long v16, v16, v10
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 775
const/16 v29, 0x38
add-long/2addr v12, v14
move/from16 v0, v29
invoke-static {v14, v15, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 780
aget-wide v30, v23, v27
add-long v20, v20, v30
.line 781
add-int/lit8 v29, v27, 0x1
aget-wide v30, v23, v29
add-long v18, v18, v30
.line 782
add-int/lit8 v29, v27, 0x2
aget-wide v30, v23, v29
add-long v16, v16, v30
.line 783
add-int/lit8 v29, v27, 0x3
aget-wide v30, v23, v29
add-long v14, v14, v30
.line 784
add-int/lit8 v29, v27, 0x4
aget-wide v30, v23, v29
add-long v12, v12, v30
.line 785
add-int/lit8 v29, v27, 0x5
aget-wide v30, v23, v29
aget-wide v32, v24, v28
add-long v30, v30, v32
add-long v10, v10, v30
.line 786
add-int/lit8 v29, v27, 0x6
aget-wide v30, v23, v29
add-int/lit8 v29, v28, 0x1
aget-wide v32, v24, v29
add-long v30, v30, v32
add-long v8, v8, v30
.line 787
add-int/lit8 v29, v27, 0x7
aget-wide v30, v23, v29
move/from16 v0, v22
int-to-long v0, v0
move-wide/from16 v32, v0
add-long v30, v30, v32
add-long v6, v6, v30
.line 792
const/16 v29, 0x27
add-long v20, v20, v18
move-wide/from16 v0, v18
move/from16 v2, v29
move-wide/from16 v3, v20
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 793
const/16 v29, 0x1e
add-long v16, v16, v14
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 794
const/16 v29, 0x22
add-long/2addr v12, v10
move/from16 v0, v29
invoke-static {v10, v11, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 795
const/16 v29, 0x18
add-long/2addr v8, v6
move/from16 v0, v29
invoke-static {v6, v7, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 797
const/16 v29, 0xd
add-long v16, v16, v18
move-wide/from16 v0, v18
move/from16 v2, v29
move-wide/from16 v3, v16
invoke-static {v0, v1, v2, v3, v4}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 798
const/16 v29, 0x32
add-long/2addr v12, v6
move/from16 v0, v29
invoke-static {v6, v7, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 799
const/16 v29, 0xa
add-long/2addr v8, v10
move/from16 v0, v29
invoke-static {v10, v11, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 800
const/16 v29, 0x11
add-long v20, v20, v14
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v14, v15, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 802
const/16 v29, 0x19
add-long v12, v12, v18
move-wide/from16 v0, v18
move/from16 v2, v29
invoke-static {v0, v1, v2, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 803
const/16 v29, 0x1d
add-long/2addr v8, v14
move/from16 v0, v29
invoke-static {v14, v15, v0, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 804
const/16 v29, 0x27
add-long v20, v20, v10
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 805
const/16 v29, 0x2b
add-long v16, v16, v6
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 807
const/16 v29, 0x8
add-long v8, v8, v18
move-wide/from16 v0, v18
move/from16 v2, v29
invoke-static {v0, v1, v2, v8, v9}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v18
.line 808
const/16 v29, 0x23
add-long v20, v20, v6
move/from16 v0, v29
move-wide/from16 v1, v20
invoke-static {v6, v7, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v6
.line 809
const/16 v29, 0x38
add-long v16, v16, v10
move/from16 v0, v29
move-wide/from16 v1, v16
invoke-static {v10, v11, v0, v1, v2}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v10
.line 810
const/16 v29, 0x16
add-long/2addr v12, v14
move/from16 v0, v29
invoke-static {v14, v15, v0, v12, v13}, Lorg/spongycastle/crypto/engines/ThreefishEngine;->rotlXor(JIJ)J
move-result-wide v14
.line 815
add-int/lit8 v29, v27, 0x1
aget-wide v30, v23, v29
add-long v20, v20, v30
.line 816
add-int/lit8 v29, v27, 0x2
aget-wide v30, v23, v29
add-long v18, v18, v30
.line 817
add-int/lit8 v29, v27, 0x3
aget-wide v30, v23, v29
add-long v16, v16, v30
.line 818
add-int/lit8 v29, v27, 0x4
aget-wide v30, v23, v29
add-long v14, v14, v30
.line 819
add-int/lit8 v29, v27, 0x5
aget-wide v30, v23, v29
add-long v12, v12, v30
.line 820
add-int/lit8 v29, v27, 0x6
aget-wide v30, v23, v29
add-int/lit8 v29, v28, 0x1
aget-wide v32, v24, v29
add-long v30, v30, v32
add-long v10, v10, v30
.line 821
add-int/lit8 v29, v27, 0x7
aget-wide v30, v23, v29
add-int/lit8 v28, v28, 0x2
aget-wide v28, v24, v28
add-long v28, v28, v30
add-long v8, v8, v28
.line 822
add-int/lit8 v27, v27, 0x8
aget-wide v28, v23, v27
move/from16 v0, v22
int-to-long v0, v0
move-wide/from16 v30, v0
add-long v28, v28, v30
const-wide/16 v30, 0x1
add-long v28, v28, v30
add-long v6, v6, v28
.line 746
add-int/lit8 v22, v22, 0x2
goto/16 :goto_77
.line 828
:cond_271
const/16 v22, 0x0
aput-wide v20, p2, v22
.line 829
const/16 v20, 0x1
aput-wide v18, p2, v20
.line 830
const/16 v18, 0x2
aput-wide v16, p2, v18
.line 831
const/16 v16, 0x3
aput-wide v14, p2, v16
.line 832
const/4 v14, 0x4
aput-wide v12, p2, v14
.line 833
const/4 v12, 0x5
aput-wide v10, p2, v12
.line 834
const/4 v10, 0x6
aput-wide v8, p2, v10
.line 835
const/4 v8, 0x7
aput-wide v6, p2, v8
.line 836
return-void
.end method