AESFastEngine.smali
.class public Lorg/spongycastle/crypto/engines/AESFastEngine;
.super Ljava/lang/Object;
.source "AESFastEngine.java"
# interfaces
.implements Lorg/spongycastle/crypto/BlockCipher;
# static fields
.field private static final BLOCK_SIZE:I = 0x10
.field private static final S:[B
.field private static final Si:[B
.field private static final T:[I
.field private static final Tinv:[I
.field private static final m1:I = -0x7f7f7f80
.field private static final m2:I = 0x7f7f7f7f
.field private static final m3:I = 0x1b
.field private static final m4:I = -0x3f3f3f40
.field private static final m5:I = 0x3f3f3f3f
.field private static final rcon:[I
# instance fields
.field private C0:I
.field private C1:I
.field private C2:I
.field private C3:I
.field private ROUNDS:I
.field private WorkingKey:[[I
.field private forEncryption:Z
# direct methods
.method static constructor <clinit>()V
.registers 3
.prologue
const/16 v2, 0x400
const/16 v1, 0x100
.line 37
new-array v0, v1, [B
fill-array-data v0, :array_2a
sput-object v0, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
.line 73
new-array v0, v1, [B
fill-array-data v0, :array_ae
sput-object v0, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
.line 109
const/16 v0, 0x1e
new-array v0, v0, [I
fill-array-data v0, :array_132
sput-object v0, Lorg/spongycastle/crypto/engines/AESFastEngine;->rcon:[I
.line 114
new-array v0, v2, [I
fill-array-data v0, :array_172
sput-object v0, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
.line 332
new-array v0, v2, [I
fill-array-data v0, :array_976
sput-object v0, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
return-void
.line 37
:array_2a
.array-data 1
0x63t
0x7ct
0x77t
0x7bt
-0xet
0x6bt
0x6ft
-0x3bt
0x30t
0x1t
0x67t
0x2bt
-0x2t
-0x29t
-0x55t
0x76t
-0x36t
-0x7et
-0x37t
0x7dt
-0x6t
0x59t
0x47t
-0x10t
-0x53t
-0x2ct
-0x5et
-0x51t
-0x64t
-0x5ct
0x72t
-0x40t
-0x49t
-0x3t
-0x6dt
0x26t
0x36t
0x3ft
-0x9t
-0x34t
0x34t
-0x5bt
-0x1bt
-0xft
0x71t
-0x28t
0x31t
0x15t
0x4t
-0x39t
0x23t
-0x3dt
0x18t
-0x6at
0x5t
-0x66t
0x7t
0x12t
-0x80t
-0x1et
-0x15t
0x27t
-0x4et
0x75t
0x9t
-0x7dt
0x2ct
0x1at
0x1bt
0x6et
0x5at
-0x60t
0x52t
0x3bt
-0x2at
-0x4dt
0x29t
-0x1dt
0x2ft
-0x7ct
0x53t
-0x2ft
0x0t
-0x13t
0x20t
-0x4t
-0x4ft
0x5bt
0x6at
-0x35t
-0x42t
0x39t
0x4at
0x4ct
0x58t
-0x31t
-0x30t
-0x11t
-0x56t
-0x5t
0x43t
0x4dt
0x33t
-0x7bt
0x45t
-0x7t
0x2t
0x7ft
0x50t
0x3ct
-0x61t
-0x58t
0x51t
-0x5dt
0x40t
-0x71t
-0x6et
-0x63t
0x38t
-0xbt
-0x44t
-0x4at
-0x26t
0x21t
0x10t
-0x1t
-0xdt
-0x2et
-0x33t
0xct
0x13t
-0x14t
0x5ft
-0x69t
0x44t
0x17t
-0x3ct
-0x59t
0x7et
0x3dt
0x64t
0x5dt
0x19t
0x73t
0x60t
-0x7ft
0x4ft
-0x24t
0x22t
0x2at
-0x70t
-0x78t
0x46t
-0x12t
-0x48t
0x14t
-0x22t
0x5et
0xbt
-0x25t
-0x20t
0x32t
0x3at
0xat
0x49t
0x6t
0x24t
0x5ct
-0x3et
-0x2dt
-0x54t
0x62t
-0x6ft
-0x6bt
-0x1ct
0x79t
-0x19t
-0x38t
0x37t
0x6dt
-0x73t
-0x2bt
0x4et
-0x57t
0x6ct
0x56t
-0xct
-0x16t
0x65t
0x7at
-0x52t
0x8t
-0x46t
0x78t
0x25t
0x2et
0x1ct
-0x5at
-0x4ct
-0x3at
-0x18t
-0x23t
0x74t
0x1ft
0x4bt
-0x43t
-0x75t
-0x76t
0x70t
0x3et
-0x4bt
0x66t
0x48t
0x3t
-0xat
0xet
0x61t
0x35t
0x57t
-0x47t
-0x7at
-0x3ft
0x1dt
-0x62t
-0x1ft
-0x8t
-0x68t
0x11t
0x69t
-0x27t
-0x72t
-0x6ct
-0x65t
0x1et
-0x79t
-0x17t
-0x32t
0x55t
0x28t
-0x21t
-0x74t
-0x5ft
-0x77t
0xdt
-0x41t
-0x1at
0x42t
0x68t
0x41t
-0x67t
0x2dt
0xft
-0x50t
0x54t
-0x45t
0x16t
.end array-data
.line 73
:array_ae
.array-data 1
0x52t
0x9t
0x6at
-0x2bt
0x30t
0x36t
-0x5bt
0x38t
-0x41t
0x40t
-0x5dt
-0x62t
-0x7ft
-0xdt
-0x29t
-0x5t
0x7ct
-0x1dt
0x39t
-0x7et
-0x65t
0x2ft
-0x1t
-0x79t
0x34t
-0x72t
0x43t
0x44t
-0x3ct
-0x22t
-0x17t
-0x35t
0x54t
0x7bt
-0x6ct
0x32t
-0x5at
-0x3et
0x23t
0x3dt
-0x12t
0x4ct
-0x6bt
0xbt
0x42t
-0x6t
-0x3dt
0x4et
0x8t
0x2et
-0x5ft
0x66t
0x28t
-0x27t
0x24t
-0x4et
0x76t
0x5bt
-0x5et
0x49t
0x6dt
-0x75t
-0x2ft
0x25t
0x72t
-0x8t
-0xat
0x64t
-0x7at
0x68t
-0x68t
0x16t
-0x2ct
-0x5ct
0x5ct
-0x34t
0x5dt
0x65t
-0x4at
-0x6et
0x6ct
0x70t
0x48t
0x50t
-0x3t
-0x13t
-0x47t
-0x26t
0x5et
0x15t
0x46t
0x57t
-0x59t
-0x73t
-0x63t
-0x7ct
-0x70t
-0x28t
-0x55t
0x0t
-0x74t
-0x44t
-0x2dt
0xat
-0x9t
-0x1ct
0x58t
0x5t
-0x48t
-0x4dt
0x45t
0x6t
-0x30t
0x2ct
0x1et
-0x71t
-0x36t
0x3ft
0xft
0x2t
-0x3ft
-0x51t
-0x43t
0x3t
0x1t
0x13t
-0x76t
0x6bt
0x3at
-0x6ft
0x11t
0x41t
0x4ft
0x67t
-0x24t
-0x16t
-0x69t
-0xet
-0x31t
-0x32t
-0x10t
-0x4ct
-0x1at
0x73t
-0x6at
-0x54t
0x74t
0x22t
-0x19t
-0x53t
0x35t
-0x7bt
-0x1et
-0x7t
0x37t
-0x18t
0x1ct
0x75t
-0x21t
0x6et
0x47t
-0xft
0x1at
0x71t
0x1dt
0x29t
-0x3bt
-0x77t
0x6ft
-0x49t
0x62t
0xet
-0x56t
0x18t
-0x42t
0x1bt
-0x4t
0x56t
0x3et
0x4bt
-0x3at
-0x2et
0x79t
0x20t
-0x66t
-0x25t
-0x40t
-0x2t
0x78t
-0x33t
0x5at
-0xct
0x1ft
-0x23t
-0x58t
0x33t
-0x78t
0x7t
-0x39t
0x31t
-0x4ft
0x12t
0x10t
0x59t
0x27t
-0x80t
-0x14t
0x5ft
0x60t
0x51t
0x7ft
-0x57t
0x19t
-0x4bt
0x4at
0xdt
0x2dt
-0x1bt
0x7at
-0x61t
-0x6dt
-0x37t
-0x64t
-0x11t
-0x60t
-0x20t
0x3bt
0x4dt
-0x52t
0x2at
-0xbt
-0x50t
-0x38t
-0x15t
-0x45t
0x3ct
-0x7dt
0x53t
-0x67t
0x61t
0x17t
0x2bt
0x4t
0x7et
-0x46t
0x77t
-0x2at
0x26t
-0x1ft
0x69t
0x14t
0x63t
0x55t
0x21t
0xct
0x7dt
.end array-data
.line 109
:array_132
.array-data 4
0x1
0x2
0x4
0x8
0x10
0x20
0x40
0x80
0x1b
0x36
0x6c
0xd8
0xab
0x4d
0x9a
0x2f
0x5e
0xbc
0x63
0xc6
0x97
0x35
0x6a
0xd4
0xb3
0x7d
0xfa
0xef
0xc5
0x91
.end array-data
.line 114
:array_172
.array-data 4
-0x5a9c9c3a
-0x7b838308
-0x66888812
-0x7284840a
0xdf2f2ff
-0x4294942a
-0x4e909022
0x54c5c591
0x50303060
0x3010102
-0x56989832
0x7d2b2b56
0x19fefee7
0x62d7d7b5
-0x195454b3
-0x65898914
0x45caca8f
-0x627d7de1
0x40c9c989
-0x78828206
0x15fafaef
-0x14a6a64e
-0x36b8b872
0xbf0f0fb
-0x135252bf
0x67d4d4b3
-0x25d5da1
-0x155050bb
-0x406363dd
-0x85b5bad
-0x698d8d1c
0x5bc0c09b
-0x3d48488b
0x1cfdfde1
-0x516c6cc3
0x6a26264c
0x5a36366c
0x413f3f7e
0x2f7f7f5
0x4fcccc83
0x5c343468
-0xb5a5aaf
0x34e5e5d1
0x8f1f1f9
-0x6c8e8e1e
0x73d8d8ab
0x53313162
0x3f15152a
0xc040408
0x52c7c795
0x65232346
0x5ec3c39d
0x28181830
-0x5e6969c9
0xf05050a
-0x4a6565d1
0x907070e
0x36121224
-0x647f7fe5
0x3de2e2df
0x26ebebcd
0x6927274e
-0x324d4d81
-0x608a8a16
0x1b090912
-0x617c7ce3
0x742c2c58
0x2e1a1a34
0x2d1b1b36
-0x4d919124
-0x11a5a54c
-0x45f5fa5
-0x9adad5c
0x4d3b3b76 # 1.96327264E8f
0x61d6d6b7
-0x314c4c83
0x7b292952
0x3ee3e3dd
0x712f2f5e
-0x687b7bed
-0xaacac5a
0x68d1d1b9
0x0
0x2cededc1
0x60202040
0x1ffcfce3
-0x374e4e87
-0x12a4a44a
-0x4195952c
0x46cbcb8d
-0x26414199
0x4b393972 # 1.2138866E7f
-0x21b5b56c
-0x2bb3b368
-0x17a7a750
0x4acfcf85 # 6809538.5f
0x6bd0d0bb
0x2aefefc5
-0x1a5555b1
0x16fbfbed
-0x3abcbc7a
-0x28b2b266
0x55333366
-0x6b7a7aef
-0x30baba76
0x10f9f9e9
0x6020204
-0x7e808002
-0xfafaf60
0x443c3c78
-0x456060db
-0x1c5757b5
-0xcaeae5e
-0x15c5ca3
-0x3fbfbf80
-0x757070fb
-0x526d6dc1
-0x436262df
0x48383870 # 188641.75f
0x4f5f5f1
-0x2043439d
-0x3e494989
0x75dadaaf
0x63212142
0x30101020
0x1affffe5
0xef3f3fd
0x6dd2d2bf
0x4ccdcd81 # 1.07899912E8f
0x140c0c18
0x35131326
0x2fececc3
-0x1ea0a042
-0x5d6868cb
-0x33bbbb78 # -5.14504E7f
0x3917172e
0x57c4c493
-0xd5858ab
-0x7d818104
0x473d3d7a
-0x539b9b38
-0x18a2a246
0x2b191932
-0x6a8c8c1a
-0x5f9f9f40
-0x677e7ee7
-0x2eb0b062
0x7fdcdca3
0x66222244
0x7e2a2a54
-0x546f6fc5
-0x7c7777f5
-0x35b9b974 # -3248547.0f
0x29eeeec7
-0x2c474795
0x3c141428
0x79dedea7
-0x1da1a144
0x1d0b0b16
0x76dbdbad
0x3be0e0db
0x56323264
0x4e3a3a74
0x1e0a0a14
-0x24b6b66e
0xa06060c
0x6c242448
-0x1ba3a348
0x5dc2c29f
0x6ed3d3bd
-0x105353bd
-0x599d9d3c
-0x576e6ec7
-0x5b6a6acf
0x37e4e4d3
-0x7486860e
0x32e7e7d5
0x43c8c88b
0x5937376e
-0x48929226
-0x737272ff
0x64d5d5b1
-0x2db1b164
-0x1f5656b7
-0x4b939328
-0x5a9a954
0x7f4f4f3
0x25eaeacf
-0x509a9a36
-0x7185850c
-0x165151b9
0x18080810
-0x2a454591
-0x77878710
0x6f25254a
0x722e2e5c
0x241c1c38
-0xe5959a9
-0x384b4b8d
0x51c6c697
0x23e8e8cb
0x7cdddda1
-0x638b8b18
0x211f1f3e
-0x22b4b46a
-0x2342429f
-0x797474f3
-0x7a7575f1
-0x6f8f8f20
0x423e3e7c
-0x3b4a4a8f
-0x55999934
-0x27b7b770
0x5030306
0x1f6f6f7
0x120e0e1c
-0x5c9e9e3e
0x5f35356a
-0x6a8a852
-0x2f464697
-0x6e7979e9
0x58c1c199
0x271d1d3a
-0x466161d9
0x38e1e1d9
0x13f8f8eb
-0x4c6767d5
0x33111122
-0x4496962e
0x70d9d9a9
-0x767171f9
-0x586b6bcd
-0x496464d3
0x221e1e3c
-0x6d7878eb
0x20e9e9c9
0x49cece87
-0xaaaa56
0x78282850
0x7adfdfa5
-0x707373fd
-0x75e5ea7
-0x7f7676f7
0x170d0d1a
-0x2540409b
0x31e6e6d7
-0x39bdbd7c
-0x47979730
-0x3cbebe7e
-0x4f6666d7
0x772d2d5a
0x110f0f1e
-0x344f4f85 # -2.315903E7f
-0x3abab58
-0x29444493
0x3a16162c
0x6363c6a5
0x7c7cf884
0x7777ee99
0x7b7bf68d
-0xd0d00f3
0x6b6bd6bd
0x6f6fdeb1
-0x3a3a6eac
0x30306050
0x1010203
0x6767cea9
0x2b2b567d
-0x10118e7
-0x28284a9e
-0x5454b21a
0x7676ec9a
-0x353570bb # -6637474.5f
-0x7d7de063
-0x363676c0 # -1650984.0f
0x7d7dfa87
-0x50510eb
0x5959b2eb
0x47478ec9
-0xf0f04f5
-0x5252be14
-0x2b2b4c99
-0x5d5da003
-0x5050ba16
-0x6363dc41
-0x5b5bac09
0x7272e496
-0x3f3f64a5
-0x48488a3e
-0x2021ee4
-0x6c6cc252
0x26264c6a
0x36366c5a
0x3f3f7e41
-0x8080afe
-0x33337cb1
0x3434685c
-0x5a5aae0c
-0x1a1a2ecc
-0xe0e06f8
0x7171e293
-0x2727548d
0x31316253
0x15152a3f
0x404080c
-0x38386aae
0x23234665
-0x3c3c62a2
0x18183028
-0x6969c85f
0x5050a0f
-0x6565d04b
0x7070e09
0x12122436
-0x7f7fe465
-0x1d1d20c3
-0x141432da
0x27274e69
-0x4d4d8033
0x7575ea9f
0x909121b
-0x7c7ce262
0x2c2c5874
0x1a1a342e
0x1b1b362d
0x6e6edcb2
0x5a5ab4ee
-0x5f5fa405
0x5252a4f6
0x3b3b764d
-0x2929489f
-0x4c4c8232
0x2929527b
-0x1c1c22c2
0x2f2f5e71
-0x7b7bec69
0x5353a6f5
-0x2e2e4698
0x0
-0x12123ed4
0x20204060
-0x3031ce1
-0x4e4e8638
0x5b5bb6ed
0x6a6ad4be
-0x343472ba # -2.6679948E7f
-0x41419827
0x3939724b
0x4a4a94de # 3319095.5f
0x4c4c98d4 # 5.3633872E7f
0x5858b0e8
-0x30307ab6
-0x2f2f4495
-0x10103ad6
-0x5555b01b
-0x40412ea
0x434386c5
0x4d4d9ad7 # 2.15592304E8f
0x33336655
-0x7a7aee6c
0x45458acf
-0x60616f0
0x2020406
0x7f7ffe81
0x5050a0f0 # 1.40008325E10f
0x3c3c7844
-0x6060da46
-0x5757b41d
0x5151a2f3
-0x5c5ca202
0x404080c0
-0x7070fa76
-0x6d6dc053
-0x6262de44
0x38387048
-0xa0a0efc
-0x43439c21
-0x4949883f
-0x2525508b
0x21214263
0x10102030
-0x1ae6
-0xc0c02f2
-0x2d2d4093
-0x32327eb4 # -4.3097536E8f
0xc0c1814
0x13132635
-0x13133cd1
0x5f5fbee1
-0x6868ca5e
0x444488cc
0x17172e39
-0x3b3b6ca9
-0x5858aa0e
0x7e7efc82
0x3d3d7a47
0x6464c8ac
0x5d5dbae7
0x1919322b
0x7373e695
0x6060c0a0
-0x7e7ee668
0x4f4f9ed1
-0x23235c81
0x22224466
0x2a2a547e
-0x6f6fc455
-0x7777f47d
0x46468cca
-0x111138d7
-0x4747942d
0x1414283c
-0x21215887
0x5e5ebce2
0xb0b161d
-0x2424528a
-0x1f1f24c5
0x32326456
0x3a3a744e
0xa0a141e
0x494992db
0x6060c0a
0x2424486c
0x5c5cb8e4
-0x3d3d60a3
-0x2c2c4292
-0x5353bc11
0x6262c4a6
-0x6e6ec658
-0x6a6ace5c
-0x1b1b2cc9
0x7979f28b
-0x18182ace
-0x373774bd
0x37376e59
0x6d6ddab7
-0x7272fe74
-0x2a2a4e9c
0x4e4e9cd2 # 8.6659597E8f
-0x5656b620
0x6c6cd8b4
0x5656acfa
-0xb0b0cf9
-0x151530db
0x6565caaf
0x7a7af48e
-0x5151b817
0x8081018
-0x4545902b
0x7878f088
0x25254a6f
0x2e2e5c72
0x1c1c3824
-0x5959a80f
-0x4b4b8c39
-0x393968af
-0x171734dd
-0x22225e84
0x7474e89c
0x1f1f3e21
0x4b4b96dd # 1.3342429E7f
-0x42429e24
-0x7474f27a
-0x7575f07b
0x7070e090
0x3e3e7c42
-0x4a4a8e3c
0x6666ccaa
0x484890d8 # 205379.38f
0x3030605
-0x90908ff
0xe0e1c12
0x6161c2a3
0x35356a5f
0x5757aef9
-0x46469630
-0x7979e86f
-0x3e3e66a8
0x1d1d3a27
-0x6161d847
-0x1e1e26c8
-0x70714ed
-0x6767d44d
0x11112233
0x6969d2bb
-0x26265690
-0x7171f877
-0x6b6bcc59
-0x6464d24a
0x1e1e3c22
-0x7878ea6e
-0x161636e0
-0x313178b7
0x5555aaff
0x28285078
-0x20205a86
-0x7373fc71
-0x5e5ea608
-0x7676f680
0xd0d1a17
-0x40409a26
-0x191928cf
0x424284c6
0x6868d0b8
0x414182c3
-0x6666d650
0x2d2d5a77
0xf0f1e11
-0x4f4f8435
0x5454a8fc
-0x4444922a
0x16162c3a
0x63c6a563
0x7cf8847c
0x77ee9977
0x7bf68d7b
-0xd00f20e
0x6bd6bd6b
0x6fdeb16f
-0x3a6eab3b
0x30605030
0x1020301
0x67cea967
0x2b567d2b
-0x118e602
-0x284a9d29
-0x54b21955
0x76ec9a76
-0x3570ba36 # -4694757.0f
-0x7de0627e
-0x3676bf37
0x7dfa877d
-0x510ea06
0x59b2eb59
0x478ec947
-0xf04f410
-0x52be1353
-0x2b4c982c
-0x5da0025e
-0x50ba1551 # -1.8000422E-10f
-0x63dc4064
-0x5bac085c
0x72e49672
-0x3f64a440
-0x488a3d49
-0x21ee303
-0x6cc2516d
0x264c6a26
0x366c5a36
0x3f7e413f
-0x80afd09
-0x337cb034 # -6.8845152E7f
0x34685c34
-0x5aae0b5b
-0x1a2ecb1b
-0xe06f70f
0x71e29371
-0x27548c28
0x31625331
0x152a3f15
0x4080c04
-0x386aad39
0x23466523
-0x3c62a13d
0x18302818
-0x69c85e6a
0x50a0f05
-0x65d04a66
0x70e0907
0x12243612
-0x7fe46480
-0x1d20c21e
-0x1432d915
0x274e6927
-0x4d80324e
0x75ea9f75
0x9121b09
-0x7ce2617d
0x2c58742c
0x1a342e1a
0x1b362d1b
0x6edcb26e
0x5ab4ee5a
-0x5fa40460
0x52a4f652
0x3b764d3b
-0x29489e2a
-0x4c82314d
0x29527b29
-0x1c22c11d
0x2f5e712f
-0x7bec687c
0x53a6f553
-0x2e46972f
0x0
-0x123ed313
0x20406020
-0x31ce004
-0x4e86374f
0x5bb6ed5b
0x6ad4be6a
-0x3472b935 # -1.8517398E7f
-0x41982642
0x39724b39
0x4a94de4a # 4878117.0f
0x4c98d44c # 8.012656E7f
0x58b0e858
-0x307ab531
-0x2f449430
-0x103ad511
-0x55b01a56
-0x412e905
0x4386c543
0x4d9ad74d # 3.24725152E8f
0x33665533
-0x7aee6b7b
0x458acf45
-0x616ef07
0x2040602
0x7ffe817f
0x50a0f050
0x3c78443c
-0x60da4561
-0x57b41c58
0x51a2f351
-0x5ca2015d
0x4080c040
-0x70fa7571
-0x6dc0526e
-0x62de4363
0x38704838
-0xa0efb0b
-0x439c2044
-0x49883e4a
-0x25508a26
0x21426321
0x10203010
-0x1ae501
-0xc02f10d
-0x2d40922e
-0x327eb333 # -2.7116176E8f
0xc18140c
0x13263513
-0x133cd014
0x5fbee15f
-0x68ca5d69
0x4488cc44
0x172e3917
-0x3b6ca83c
-0x58aa0d59
0x7efc827e
0x3d7a473d
0x64c8ac64
0x5dbae75d
0x19322b19
0x73e69573
0x60c0a060
-0x7ee6677f
0x4f9ed14f
-0x235c8024
0x22446622
0x2a547e2a
-0x6fc45470
-0x77f47c78
0x468cca46
-0x1138d612
-0x47942c48
0x14283c14
-0x21588622
0x5ebce25e
0xb161d0b
-0x24528925
-0x1f24c420
0x32645632
0x3a744e3a
0xa141e0a
0x4992db49
0x60c0a06
0x24486c24
0x5cb8e45c
-0x3d60a23e
-0x2c42912d
-0x53bc1054
0x62c4a662
-0x6ec6576f
-0x6ace5b6b
-0x1b2cc81c
0x79f28b79
-0x182acd19
-0x3774bc38
0x376e5937
0x6ddab76d
-0x72fe7373
-0x2a4e9b2b
0x4e9cd24e
-0x56b61f57
0x6cd8b46c
0x56acfa56
-0xb0cf80c
-0x1530da16
0x65caaf65
0x7af48e7a
-0x51b81652
0x8101808
-0x45902a46
0x78f08878
0x254a6f25
0x2e5c722e
0x1c38241c
-0x59a80e5a
-0x4b8c384c
-0x3968ae3a
-0x1734dc18
-0x225e8323
0x74e89c74
0x1f3e211f
0x4b96dd4b # 1.9774102E7f
-0x429e2343
-0x74f27975
-0x75f07a76
0x70e09070
0x3e7c423e
-0x4a8e3b4b
0x66ccaa66
0x4890d848 # 296642.25f
0x3060503
-0x908fe0a
0xe1c120e
0x61c2a361
0x356a5f35
0x57aef957
-0x46962f47
-0x79e86e7a
-0x3e66a73f
0x1d3a271d
-0x61d84662
-0x1e26c71f
-0x714ec08
-0x67d44c68
0x11223311
0x69d2bb69
-0x26568f27
-0x71f87672
-0x6bcc586c
-0x64d24965
0x1e3c221e
-0x78ea6d79
-0x1636df17
-0x3178b632
0x55aaff55
0x28507828
-0x205a8521
-0x73fc7074
-0x5ea6075f
-0x76f67f77
0xd1a170d
-0x409a2541
-0x1928ce1a
0x4284c642
0x68d0b868
0x4182c341
-0x66d64f67
0x2d5a772d
0xf1e110f
-0x4f843450
0x54a8fc54
-0x44922945
0x162c3a16
-0x395a9c9d
-0x77b8384
-0x11668889
-0x9728485
-0xf20d0e
-0x29429495
-0x214e9091
-0x6eab3a3b
0x60503030 # 6.0006173E19f
0x2030101
-0x31569899
0x567d2b2b
-0x18e60102
-0x4a9d2829
0x4de6abab # 4.83751264E8f
-0x1365898a
-0x70ba3536
0x1f9d8282
-0x76bf3637
-0x5788283
-0x10ea0506
-0x4d14a6a7
-0x7136b8b9
-0x4f40f10
0x41ecadad
-0x4c982b2c
0x5ffda2a2
0x45eaafaf
0x23bf9c9c
0x53f7a4a4
-0x1b698d8e
-0x64a43f40
0x75c2b7b7
-0x1ee30203 # -1.8099962E20f
0x3dae9393
0x4c6a2626 # 6.138076E7f
0x6c5a3636
0x7e413f3f
-0xafd0809
-0x7cb03334
0x685c3434
0x51f4a5a5
-0x2ecb1a1b
-0x6f70e0f
-0x1d6c8e8f
-0x548c2728
0x62533131
0x2a3f1515
0x80c0404
-0x6aad3839
0x46652323
-0x62a13c3d
0x30281818
0x37a19696
0xa0f0505
0x2fb59a9a
0xe090707
0x24361212
0x1b9b8080
-0x20c21d1e
-0x32d91415
0x4e692727 # 9.779143E8f
0x7fcdb2b2
-0x15608a8b
0x121b0909
0x1d9e8383
0x58742c2c
0x342e1a1a
0x362d1b1b
-0x234d9192
-0x4b11a5a6
0x5bfba0a0
-0x5b09adae
0x764d3b3b
-0x489e292a
0x7dceb3b3
0x527b2929
-0x22c11c1d
0x5e712f2f
0x13978484
-0x590aacad
-0x46972e2f
0x0
-0x3ed31213
0x40602020
-0x1ce00304
0x79c8b1b1
-0x4912a4a5
-0x2b419596
-0x72b93435
0x67d9bebe
0x724b3939
-0x6b21b5b6
-0x672bb3b4
-0x4f17a7a8
-0x7ab53031
-0x44942f30
-0x3ad51011
0x4fe5aaaa
-0x12e90405
-0x793abcbd
-0x6528b2b3
0x66553333
0x11948585
-0x7530babb
-0x16ef0607
0x4060202
-0x17e8081
-0x5f0fafb0
0x78443c3c
0x25ba9f9f
0x4be3a8a8 # 2.9839696E7f
-0x5d0caeaf
0x5dfea3a3
-0x7f3fbfc0
0x58a8f8f
0x3fad9292
0x21bc9d9d
0x70483838
-0xefb0a0b
0x63dfbcbc
0x77c1b6b6
-0x508a2526
0x42632121
0x20301010
-0x1ae50001
-0x2f10c0d
-0x40922d2e
-0x7eb33233
0x18140c0c
0x26351313
-0x3cd01314
-0x411ea0a1
0x35a29797
-0x7733bbbc
0x2e391717
-0x6ca83b3c
0x55f2a7a7
-0x37d8182
0x7a473d3d
-0x37539b9c
-0x4518a2a3
0x322b1919
-0x196a8c8d
-0x3f5f9fa0
0x19988181
-0x612eb0b1
-0x5c802324
0x44662222
0x547e2a2a
0x3bab9090
0xb838888
-0x7335b9ba
-0x38d61112
0x6bd3b8b8
0x283c1414
-0x58862122
-0x431da1a2
0x161d0b0b
-0x52892425
-0x24c41f20
0x64563232
0x744e3a3a
0x141e0a0a
-0x6d24b6b7
0xc0a0606
0x486c2424
-0x471ba3a4
-0x60a23d3e
-0x42912c2d
0x43efacac # 479.349f
-0x3b599d9e
0x39a89191
0x31a49595
-0x2cc81b1c
-0xd748687
-0x2acd1819
-0x74bc3738
0x6e593737
-0x25489293
0x18c8d8d
-0x4e9b2a2b # -3.3299916E-9f
-0x632db1b2
0x49e0a9a9
-0x274b9394
-0x5305a9aa
-0xcf80b0c
-0x30da1516
-0x35509a9b # -5747378.5f
-0xb718586
0x47e9aeae
0x10180808
0x6fd5baba
-0xf778788
0x4a6f2525 # 3918153.2f
0x5c722e2e
0x38241c1c
0x57f1a6a6
0x73c7b4b4
-0x68ae393a
-0x34dc1718 # -1.0741992E7f
-0x5e832223
-0x17638b8c
0x3e211f1f
-0x6922b4b5
0x61dcbdbd
0xd868b8b
0xf858a8a
-0x1f6f8f90
0x7c423e3e
0x71c4b5b5
-0x3355999a # -8.9338672E7f
-0x6f27b7b8
0x6050303
-0x8fe090a
0x1c120e0e
-0x3d5c9e9f
0x6a5f3535
-0x5106a8a9
0x69d0b9b9
0x17918686
-0x66a73e3f
0x3a271d1d
0x27b99e9e
-0x26c71e1f
-0x14ec0708
0x2bb39898
0x22331111
-0x2d449697
-0x568f2627
0x7898e8e
0x33a79494
0x2db69b9b
0x3c221e1e
0x15928787
-0x36df1617
-0x78b63132
-0x5500aaab
0x50782828
-0x5a852021
0x38f8c8c
0x59f8a1a1
0x9808989
0x1a170d0d
0x65dabfbf
-0x28ce191a
-0x7b39bdbe
-0x2f479798
-0x7d3cbebf
0x29b09999
0x5a772d2d
0x1e110f0f
0x7bcbb0b0
-0x5703abac
0x6dd6bbbb
0x2c3a1616
.end array-data
.line 332
:array_976
.array-data 4
0x50a7f451
0x5365417e
-0x3c5be8e6
-0x69a1d8c6
-0x349454c5 # -1.5444795E7f
-0xeba62e1
-0x54a70554
-0x6cfc1cb5
0x55fa3020
-0x9928953
-0x6e893378
0x254c02f5
-0x3281ab1
-0x2834d53b
-0x7fbbcada
-0x705c9d4b
0x495ab1de # 895773.9f
0x671bba25
-0x67f115bb
-0x1e3f01a3
0x2752fc3
0x12f04c81
-0x5c68b973
-0x39062c95
-0x18a070fd
-0x6a636deb
-0x14859241
-0x25a6ad6b
0x2d83bed4
-0x2cde8ba8
0x2969e049
0x44c8c98e
0x6a89c275
0x78798ef4
0x6b3e5899
-0x228e46d9
-0x49b01e42
0x17ad88f0
0x66ac20c9
-0x4bc53183
0x184adf63
-0x7dcee51b
0x60335197
0x457f5362
-0x1f889b4f
-0x7b519445
0x1ca081fe
-0x6bd4f707
0x58684870
0x19fd458f
-0x7893216c
-0x480784ae
0x23d373ab
-0x1dfdb48e
0x578f1fe3
0x2aab5566
0x728ebb2
0x3c2b52f
-0x65843a7a
-0x5af7c82d
-0xd78d7d0
-0x4d5a40dd
-0x4595fcfe
0x5c8216ed
0x2b1ccf8a
-0x6d4b8659
-0xf0df80d
-0x5e1d96b2
-0x320b259b
-0x2a41fafa
0x1f6234d1
-0x7501593c
-0x62acd1cc
-0x5faa0c5e
0x32e18a05
0x75ebf6a4
0x39ec830b
-0x55109fc0
0x69f715e
0x51106ebd
-0x675dec2
0x3d06dd96
-0x51fac123
0x46bde64d
-0x4a72ab6f
0x55dc471
0x6fd40604
-0xeaafa0
0x24fb9819
-0x6816422a
-0x33bcbf77 # -5.1184164E7f
0x779ed967
-0x42bd1750
-0x777476f9
0x385b19e7
-0x24113787
0x470a7ca1
-0x16f0bd84
-0x36e17b08 # -649295.5f
0x0
-0x7c797ff7
0x48ed2b32
-0x538feee2
0x4e725a6c
-0x400f103
0x5638850f
0x1ed5ae3d
0x27392d36
0x64d90f0a
0x21a65c68
-0x2eaba465
0x3a2e3624
-0x4e98f5f4
0xfe75793
-0x2d69114c
-0x616e64e5
0x4fc5c080
-0x5ddf239f
0x694b775a
0x161a121c
0xaba93e2
-0x1ad55f40
0x43e0223c
0x1d171b12 # 1.9998679E-21f
0xb0d090e
-0x5238740e
-0x465749d3
-0x3756e1ec
-0x7ae60ea9
0x4c0775af # 3.5509948E7f
-0x44226612
-0x29f805d
-0x60d9fe09
-0x430a8da4
-0x3ac499bc
0x347efb5b
0x7629438b
-0x2339dc35
0x68fcedb6
0x63f1e4b8
-0x3523ce29 # -7215339.5f
0x10856342
0x40229713
0x2011c684
0x7d244a85
-0x7c2442e
0x1132f9ae
0x6da129c7
0x4b2f9e1d # 1.1509277E7f
-0xccf4d24 # -1.3999511E31f
-0x13ad79f3
-0x2f1c3e89
0x6c16b32b
-0x66468f57
-0x5b76bef
0x2264e947
-0x3b730358
0x1a3ff0a0
-0x27d382aa
-0x106fccde
-0x38b1b679
-0x3e2ec727
-0x15d3574
0x360bd498
-0x307e0a5a
0x28de7aa5
0x268eb7da
-0x5b4052c1
-0x1b62c5d4
0xd927850
-0x6433a096
0x62467e54
-0x3dec720a
-0x17472770
0x5ef7392e
-0xa503c7e
-0x417fa261
0x7c93d069
-0x56d22a91
-0x4cedda31
0x3b99acc8
-0x5882e7f0
0x6e639ce8
0x7bbb3bdb
0x97826cd
-0xbe7a692
0x1b79aec
-0x5765b07d
0x656e95e6
0x7ee6ffaa
0x8cfbc21
-0x1917ea11
-0x26641846
-0x31c990b6
-0x2bf66016
-0x29834fd7
-0x504d5bcf
0x31233f2a
0x3094a5c6
-0x3f995dcb
0x37bc4e74
-0x59357d04
-0x4f2f6f20
0x15d8a733
0x4a9804f1 # 4981368.5f
-0x82513bf
0xe50cd7f
0x2ff69117
-0x7229b28a
0x4db0ef43 # 3.71058784E8f
0x544daacc
-0x20fb691c
-0x1c4a2e62
0x1b886a4c
-0x47e0d33f
0x7f516546
0x4ea5e9d # 5.5100024E-36f
0x5d358c01
0x737487fa
0x2e410bfb
0x5a1d67b3
0x52d2db92
0x335610e9
0x1347d66d
-0x739e2866
0x7a0ca137
-0x71eb07a7
-0x76c3ec15
-0x11d85632
0x35c961b7
-0x121ae31f
0x3cb1477a
0x59dfd29c
0x3f73f255
0x79ce1418
-0x40c8388d
-0x153208ad
0x5baafd5f
0x146f3ddf
-0x7924bb88
-0x7e0c5036
0x3ec468b9
0x2c342438
0x5f40a3c2
0x72c31d16
0xc25e2bc
-0x74b6c3d8
0x41950dff
0x7101a839
-0x214cf3f8
-0x631b4b28
-0x6f3ea99c
0x6184cb7b
0x70b632d5
0x745c6c48
0x4257b8d0
-0x580baeb0
0x65417e53
-0x5be8e53d
0x5e273a96
0x6bab3bcb
0x459d1ff1
0x58faacab
0x3e34b93
-0x5cfdfab
0x6d76adf6
0x76cc8891
0x4c02f525 # 3.4329748E7f
-0x281ab004
-0x34d53a29 # -1.1191767E7f
0x44352680
-0x5c9d4a71
0x5ab1de49
0x1bba2567
0xeea4598
-0x3f01a21f
0x752fc302
-0xfb37eee
-0x68b9725d
-0x62c943a
0x5f8f03e7
-0x636dea6b
0x7a6dbfeb
0x595295da
-0x7c412bd3
0x217458d3
0x69e04929
-0x373671bc
-0x763d8a96
0x798ef478
0x3e58996b
0x71b927dd
0x4fe1beb6
-0x52770fe9
-0x53df369a
0x3ace7db4
0x4adf6318 # 7319948.0f
0x311ae582
0x33519760
0x7f536245
0x7764b1e0
-0x5194447c
-0x5f7e01e4
0x2b08f994
0x68487058
-0x2ba70e7
0x6cde9487
-0x784ad49
-0x2c8c54dd
0x24b72e2
-0x70e01ca9
-0x54aa99d6
0x28ebb207
-0x3d4ad0fd
0x7bc5869a
0x837d3a5
-0x78d7cf0e
-0x5a40dc4e
0x6a0302ba
-0x7de912a4
0x1ccf8a2b
-0x4b86586e
-0xdf80c10
-0x1d96b15f
-0xb259a33
-0x41faf92b
0x6234d11f
-0x1593b76
0x532e349d
0x55f3a2a0
-0x1e75face
-0x14095b8b
-0x137cf4c7
-0x109fbf56
-0x608ea1fa
0x106ebd51
-0x75dec107
0x6dd963d
0x53eddae
-0x4219b2ba
-0x72ab6e4b
0x5dc47105
-0x2bf9fb91 # -2.3024E12f
0x155060ff
-0x467e6dc
-0x16422969
0x434089cc
-0x61269889
0x42e8b0bd
-0x7476f878
0x5b19e738
-0x11378625
0xa7ca147
0xf427ce9
0x1e84f8c9
0x0
-0x797ff67d
-0x12d4cdb8
0x70111eac
0x725a6c4e
-0xf10205
0x38850f56
-0x2a51c2e2
0x392d3627
-0x26f0f59c
-0x59a397df
0x545b9bd1
0x2e36243a
0x670a0cb1
-0x18a86cf1
-0x69114b2e
-0x6e64e462
-0x3a3f7fb1
0x20dc61a2
0x4b775a69 # 1.6210537E7f
0x1a121c16
-0x456c1df6
0x2aa0c0e5
-0x1fddc3bd
0x171b121d
0xd090e0b
-0x38740d53
-0x5749d247
-0x56e1eb38
0x19f15785
0x775af4c
-0x22661145
0x607fa3fd
0x2601f79f
-0xa8da344
0x3b6644c5
0x7efb5b34
0x29438b76
-0x39dc3424
-0x3124998
-0xe1b479d
-0x23ce2836
-0x7a9cbdf0
0x22971340
0x11c68420
0x244a857d
0x3dbbd2f8
0x32f9ae11
-0x5ed63893
0x2f9e1d4b
0x30b2dcf3
0x52860dec
-0x1c3e8830
0x16b32b6c
-0x468f5667
0x489411fa
0x64e94722
-0x7303573c
0x3ff0a01a
0x2c7d56d8
-0x6fccdd11
0x4e4987c7 # 8.4527968E8f
-0x2ec7263f
-0x5d357302
0xbd49836
-0x7e0a5931
-0x21855ad8
-0x714825da
-0x4052c05c
-0x62c5d31c
-0x6d87aff3
-0x33a09565 # -5.8567276E7f
0x467e5462
0x138df6c2
-0x47276f18
-0x8c6d1a2
-0x503c7d0b
-0x7fa26042
-0x6c2f9684
0x2dd56fa9
0x1225cfb3
-0x665337c5
0x7d1810a7
0x639ce86e
-0x44c42485
0x7826cd09
0x18596ef4
-0x486513ff
-0x65b07c58
0x6e95e665
-0x19005582
-0x3043def8
-0x17ea101a
-0x64184527
0x366f4ace
0x99fead4
0x7cb029d6
-0x4d5bce51
0x233f2a31
-0x6b5a39d0
0x66a235c0
-0x43b18bc9
-0x357d035a # -4292179.0f
-0x2f6f1f50
-0x2758cceb
-0x67fb0eb6
-0x2513be09
0x50cd7f0e
-0x96ee8d1
-0x29b28973
-0x4f10bcb3
0x4daacc54
0x496e4df
-0x4a2e611d
-0x7795b3e5
0x1f2cc1b8
0x5165467f
-0x15a162fc
0x358c015d
0x7487fa73
0x410bfb2e
0x1d67b35a
-0x2d246dae
0x5610e933
0x47d66d13
0x61d79a8c
0xca1377a
0x14f8598e
0x3c13eb89
0x27a9ceee
-0x369e48cb
-0x1ae31e13
-0x4eb885c4
-0x202d63a7
0x73f2553f
-0x31ebe787
0x37c773bf
-0x3208ac16
-0x5502a0a5
0x6f3ddf14
-0x24bb877a
-0xc50357f
-0x3b9746c2
0x3424382c
0x40a3c25f
-0x3ce2e98e
0x25e2bc0c
0x493c288b
-0x6af200bf
0x1a83971
-0x4cf3f722
-0x1b4b2764
-0x3ea99b70
-0x7b34849f
-0x49cd2a90
0x5c6c4874
0x57b8d042 # 4.064092E14f
-0xbaeaf59
0x417e5365 # 15.89536f
0x171ac3a4 # 5.0007017E-25f
0x273a965e
-0x54c43495
-0x62e00ebb
-0x55354a8
-0x1cb46cfd
0x302055fa
0x76adf66d
-0x33776e8a # -7.1601072E7f
0x2f5254c
-0x1ab00329
0x2ac5d7cb
0x35268044 # 6.202647E-7f
0x62b58fa3
-0x4e21b6a6
-0x45da98e5
-0x15ba67f2
-0x1a21e40
0x2fc30275
0x4c8112f0 # 6.7671936E7f
0x468da397
-0x2c943907
-0x70fc18a1
-0x6dea6a64
0x6dbfeb7a
0x5295da59
-0x412bd27d
0x7458d321
-0x1fb6d697
-0x3671bb38 # -1165465.0f
-0x3d8a9577
-0x710b8787
0x58996b3e
-0x46d8228f
-0x1e4149b1
-0x770fe853
0x20c966ac
-0x31824bc6
-0x209ce7b6
0x1ae58231
0x51976033
0x5362457f
0x64b1e077
0x6bbb84ae
-0x7e01e360
0x8f9942b
0x48705868 # 246113.62f
0x458f19fd
-0x216b7894
0x7b52b7f8
0x73ab23d3
0x4b72e202 # 1.591757E7f
0x1fe3578f
0x55662aab
-0x144df8d8
-0x4ad0fc3e
-0x3a796585
0x37d3a508 # 2.5230009E-5f
0x2830f287
-0x40dc4d5b
0x302ba6a
0x16ed5c82
-0x3075d4e4
0x79a792b4
0x7f3f0f2
0x694ea1e2
-0x259a320c
0x506d5be
0x34d11f62
-0x593b7502
0x2e349d53
-0xc5d5fab
-0x75facd1f
-0x95b8a15
-0x7cf4c614
0x6040aaef
0x715e069f
0x6ebd5110
0x213ef98a
-0x2269c2fa
0x3eddae05
-0x19b2b943
0x5491b58d
-0x3b8efaa3
0x6046fd4
0x5060ff15
-0x67e6db05
-0x42296817
0x4089cc43
-0x26988862
-0x174f42be
-0x76f87775
0x19e7385b
-0x37862412
0x7ca1470a
0x427ce90f
-0x7b0736e2
0x0
-0x7ff67c7a
0x2b3248ed
0x111eac70
0x5a6c4e72
0xefdfbff
-0x7af0a9c8
-0x51c2e12b
0x2d362739
0xf0a64d9
0x5c6821a6
0x5b9bd154
0x36243a2e
0xa0cb167
0x57930fe7
-0x114b2d6a
-0x64e4616f
-0x3f7fb03b
-0x239e5de0
0x775a694b
0x121c161a
-0x6c1df546
-0x5f3f1ad6
0x223c43e0
0x1b121d17
0x90e0b0d
-0x740d5239
-0x49d24658
0x1e14c8a9
-0xea87ae7
0x75af4c07
-0x66114423
0x7fa3fd60
0x1f79f26
0x725cbcf5
0x6644c53b
-0x4a4cb82
0x438b7629
0x23cbdcc6
-0x12499704
-0x1b479c0f
0x31d7cadc
0x63421085
-0x68ecbfde
-0x397bdfef
0x4a857d24 # 4374162.0f
-0x442d07c3
-0x651eece
0x29c76da1
-0x61e2b4d1
-0x4d230cd0
-0x79f213ae
-0x3e882f1d
-0x4cd493ea
0x70a999b9
-0x6bee05b8
-0x16b8dd9c
-0x3573b74
-0xf5fe5c1
0x7d56d82c
0x3322ef90
0x4987c74e
0x38d9c1d1
-0x3573015e # -4620113.0f
-0x2b67c9f5
-0xa59307f
0x7aa528de
-0x4825d972
-0x52c05b41
0x3a2ce49d
0x78500d92
0x5f6a9bcc
0x7e546246 # 7.057665E37f
-0x72093ded
-0x276f1748
0x392e5ef7
-0x3c7d0a51
0x5d9fbe80
-0x2f96836d
-0x2a9056d3
0x25cfb312
-0x5337c467
0x1810a77d
-0x6317919d
0x3bdb7bbb
0x26cd0978
0x596ef418
-0x6513fe49
0x4f83a89a
-0x6a199a92
-0x55811a
-0x43def731
0x15efe6e8
-0x18452665
0x6f4ace36
-0x60152bf7
-0x4fd62984
-0x5bce504e
0x3f2a3123
-0x5a39cf6c
-0x5dca3f9a
0x4e7437bc
-0x7d035936
-0x6f1f4f30
-0x58ccea28
0x4f14a98
-0x13be0826
-0x3280f1b0
-0x6ee8d00a
0x4d768dd6
-0x10bcb250
-0x5533abb3
-0x691b20fc
-0x2e611c4b
0x6a4c1b88
0x2cc1b81f
0x65467f51
0x5e9d04ea
-0x73fea2cb
-0x78058c8c
0xbfb2e41
0x67b35a1d
-0x246dad2e
0x10e93356
-0x2992ecb9
-0x2865739f
-0x5ec885f4
-0x7a671ec
0x13eb893c
-0x563111d9
0x61b735c9
0x1ce1ede5
0x477a3cb1
-0x2d63a621
-0xdaac08d
0x141879ce
-0x388c40c9
-0x8ac1533
-0x2a0a456
0x3ddf146f
0x447886db
-0x50357e0d
0x68b93ec4
0x24382c34
-0x5c3da0c0
0x1d1672c3
-0x1d43f3db
0x3c288b49
0xdff4195
-0x57c68eff
0xc08deb3
-0x4b27631c
0x566490c1
-0x34849e7c # -1.64745E7f
0x32d570b6
0x6c48745c
-0x472fbda9
0x5150a7f4
0x7e536541
0x1ac3a417
0x3a965e27
0x3bcb6bab
0x1ff1459d
-0x5354a706 # -4.8699907E-12f
0x4b9303e3 # 1.9269574E7f
0x2055fa30
-0x5209928a
-0x776e8934
-0xadab3fe
0x4ffcd7e5
-0x3a2834d6
0x26804435
-0x4a705c9e
-0x21b6a54f
0x25671bba
0x45980eea
0x5de1c0fe
-0x3cfd8ad1
-0x7eed0fb4
-0x725c68ba
0x6bc6f9d3
0x3e75f8f
0x15959c92
-0x40148593
-0x6a25a6ae
-0x2bd27c42
0x58d32174
0x492969e0 # 693918.0f
-0x71bb3737
0x756a89c2
-0xb878672
-0x6694c1a8
0x27dd71b9
-0x4149b01f
-0xfe85278
-0x369953e0 # -944834.0f
0x7db43ace
0x63184adf
-0x1a7dcee6
-0x689fccaf
0x62457f53
-0x4e1f889c
-0x447b5195
-0x1e35f7f
-0x66bd4f8
0x70586848
-0x70e602bb
-0x6b789322
0x52b7f87b
-0x54dc2c8d
0x72e2024b
-0x1ca870e1
0x662aab55
-0x4df8d715
0x2f03c2b5
-0x7965843b
-0x2c5af7c9
0x30f28728
0x23b2a5bf
0x2ba6a03
-0x12a37dea
-0x75d4e331
-0x586d4b87
-0xc0f0df9
0x4ea1e269
0x65cdf4da
0x6d5be05
-0x2ee09dcc
-0x3b75015a
0x349d532e
-0x5d5faa0d
0x532e18a
-0x5b8a140a
0xb39ec83
0x40aaef60
0x5e069f71
-0x42aeef92
0x3ef98a21
-0x69c2f923
-0x2251fac2
0x4d46bde6 # 2.08395872E8f
-0x6e4a72ac
0x71055dc4
0x46fd406
0x60ff1550
0x1924fb98
-0x29681643
-0x7633bcc0
0x67779ed9
-0x4f42bd18
0x7888b89
-0x18c7a4e7
0x79dbeec8
-0x5eb8f584
0x7ce90f42
-0x736e17c
0x0
0x9838680
0x3248ed2b
0x1eac7011
0x6c4e725a
-0x20400f2
0xf563885
0x3d1ed5ae # 0.038778f
0x3627392d
0xa64d90f
0x6821a65c
-0x642eaba5
0x243a2e36
0xcb1670a
-0x6cf018a9
-0x4b2d6912
0x1b9e919b
-0x7fb03a40
0x61a220dc
0x5a694b77
0x1c161a12
-0x1df5456d
-0x3f1ad560
0x3c43e022
0x121d171b
0xe0b0d09
-0xd523875
0x2db9a8b6
0x14c8a91e
0x578519f1
-0x50b3f88b
-0x11442267
-0x5c029f81
-0x860d9ff
0x5cbcf572
0x44c53b66
0x5b347efb
-0x7489d6bd
-0x342339dd # -2.8937286E7f
-0x49970313
-0x479c0e1c
-0x283523cf
0x42108563
0x13402297
-0x7bdfee3a
-0x7a82dbb6
-0x2d07c245
-0x51eecd07
-0x38925ed7
0x1d4b2f9e
-0x230ccf4e
0xdec5286
0x77d0e3c1
0x2b6c16b3
-0x56664690
0x11fa4894
0x472264e9
-0x573b7304
-0x5fe5c010
0x56d82c7d
0x22ef9033
-0x7838b1b7
-0x263e2ec8
-0x73015d36
-0x67c9f42c
-0x59307e0b
-0x5ad72186
-0x25d97149
0x3fa4bfad
0x2ce49d3a
0x500d9278
0x6a9bcc5f
0x5462467e
-0x93dec73
-0x6f174728
0x2e5ef739
-0x7d0a503d
-0x60417fa3
0x697c93d0
0x6fa92dd5
-0x304ceddb
-0x37c46654
0x10a77d18
-0x17919c64
-0x248444c5
-0x32f687da # -1.4414704E8f
0x6ef41859
-0x13fe4866
-0x7c5765b1
-0x199a916b
-0x55811901
0x2108cfbc
-0x101917eb
-0x45266419
0x4ace366f # 6757175.5f
-0x152bf661
0x29d67cb0
0x31afb2a4
0x2a31233f
-0x39cf6b5b
0x35c066a2
0x7437bc4e
-0x359357e
-0x1f4f2f70
0x3315d8a7
-0xeb567fc
0x41f7daec
0x7f0e50cd
0x172ff691
0x768dd64d
0x434db0ef
-0x33abb256 # -5.5654056E7f
-0x1b20fb6a
-0x611c4a2f
0x4c1b886a # 4.0772008E7f
-0x3e47e0d4
0x467f5165
-0x62fb15a2
0x15d358c
-0x58c8b79
-0x4d1bef5
-0x4ca5e299
-0x6dad2d25
-0x16cca9f0
0x6d1347d6
-0x65739e29
0x377a0ca1
0x598e14f8 # 4.9990628E15f
-0x1476c3ed
-0x3111d857
-0x48ca369f
-0x1e121ae4
0x7a3cb147
-0x63a6202e
0x553f73f2
0x1879ce14
0x73bf37c7
0x53eacdf7
0x5f5baafd
-0x20eb90c3
0x7886db44
-0x357e0c51 # -4258263.5f
-0x46c13b98
0x382c3424
-0x3da0bf5d
0x1672c31d
-0x43f3da1e
0x288b493c
-0xbe6af3
0x397101a8
0x8deb30c
-0x27631b4c
0x6490c156
0x7b6184cb
-0x2a8f49ce
0x48745c6c
-0x2fbda848
.end array-data
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 752
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 742
const/4 v0, 0x0
iput-object v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->WorkingKey:[[I
.line 753
return-void
.end method
.method private static FFmulX(I)I
.registers 3
.prologue
.line 565
const v0, 0x7f7f7f7f
and-int/2addr v0, p0
shl-int/lit8 v0, v0, 0x1
const v1, -0x7f7f7f80
and-int/2addr v1, p0
ushr-int/lit8 v1, v1, 0x7
mul-int/lit8 v1, v1, 0x1b
xor-int/2addr v0, v1
return v0
.end method
.method private static FFmulX2(I)I
.registers 4
.prologue
.line 570
const v0, 0x3f3f3f3f
and-int/2addr v0, p0
shl-int/lit8 v0, v0, 0x2
.line 571
const v1, -0x3f3f3f40
and-int/2addr v1, p0
.line 572
ushr-int/lit8 v2, v1, 0x1
xor-int/2addr v1, v2
.line 573
ushr-int/lit8 v2, v1, 0x2
xor-int/2addr v0, v2
ushr-int/lit8 v1, v1, 0x5
xor-int/2addr v0, v1
return v0
.end method
.method private decryptBlock([[I)V
.registers 14
.prologue
.line 932
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C0:I
iget v1, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
aget-object v1, p1, v1
const/4 v2, 0x0
aget v1, v1, v2
xor-int v4, v0, v1
.line 933
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C1:I
iget v1, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
aget-object v1, p1, v1
const/4 v2, 0x1
aget v1, v1, v2
xor-int v3, v0, v1
.line 934
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C2:I
iget v1, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
aget-object v1, p1, v1
const/4 v2, 0x2
aget v1, v1, v2
xor-int v2, v0, v1
.line 936
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
add-int/lit8 v1, v0, -0x1
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C3:I
iget v5, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
aget-object v5, p1, v5
const/4 v6, 0x3
aget v5, v5, v6
xor-int/2addr v0, v5
.line 939
:goto_2f
const/4 v5, 0x1
if-le v1, v5, :cond_1a2
.line 941
ushr-int/lit8 v5, v0, 0x8
ushr-int/lit8 v6, v2, 0x10
ushr-int/lit8 v7, v3, 0x18
.line 942
and-int/lit16 v8, v4, 0xff
and-int/lit16 v5, v5, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
.line 943
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v8, v9, v8
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v5, v5, 0x100
aget v5, v9, v5
xor-int/2addr v5, v8
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v6, v6, 0x200
aget v6, v8, v6
xor-int/2addr v5, v6
sget-object v6, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v7, v7, 0x300
aget v6, v6, v7
xor-int/2addr v5, v6
aget-object v6, p1, v1
const/4 v7, 0x0
aget v6, v6, v7
xor-int/2addr v5, v6
.line 945
ushr-int/lit8 v6, v4, 0x8
ushr-int/lit8 v7, v0, 0x10
ushr-int/lit8 v8, v2, 0x18
.line 946
and-int/lit16 v9, v3, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
and-int/lit16 v8, v8, 0xff
.line 947
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v9, v10, v9
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v6, v6, 0x100
aget v6, v10, v6
xor-int/2addr v6, v9
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v7, v7, 0x200
aget v7, v9, v7
xor-int/2addr v6, v7
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v8, v8, 0x300
aget v7, v7, v8
xor-int/2addr v6, v7
aget-object v7, p1, v1
const/4 v8, 0x1
aget v7, v7, v8
xor-int/2addr v6, v7
.line 949
ushr-int/lit8 v7, v3, 0x8
ushr-int/lit8 v8, v4, 0x10
ushr-int/lit8 v9, v0, 0x18
.line 950
and-int/lit16 v10, v2, 0xff
and-int/lit16 v7, v7, 0xff
and-int/lit16 v8, v8, 0xff
and-int/lit16 v9, v9, 0xff
.line 951
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v10, v11, v10
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v7, v7, 0x100
aget v7, v11, v7
xor-int/2addr v7, v10
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v8, v8, 0x200
aget v8, v10, v8
xor-int/2addr v7, v8
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v9, v9, 0x300
aget v8, v8, v9
xor-int/2addr v7, v8
aget-object v8, p1, v1
const/4 v9, 0x2
aget v8, v8, v9
xor-int/2addr v7, v8
.line 953
ushr-int/lit8 v2, v2, 0x8
ushr-int/lit8 v3, v3, 0x10
ushr-int/lit8 v4, v4, 0x18
.line 954
and-int/lit16 v0, v0, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v3, v3, 0xff
and-int/lit16 v4, v4, 0xff
.line 955
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v0, v8, v0
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v2, v2, 0x100
aget v2, v8, v2
xor-int/2addr v0, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v3, v3, 0x200
aget v2, v2, v3
xor-int/2addr v0, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v3, v4, 0x300
aget v2, v2, v3
xor-int/2addr v0, v2
add-int/lit8 v8, v1, -0x1
aget-object v1, p1, v1
const/4 v2, 0x3
aget v1, v1, v2
xor-int/2addr v0, v1
.line 957
ushr-int/lit8 v1, v0, 0x8
ushr-int/lit8 v2, v7, 0x10
ushr-int/lit8 v3, v6, 0x18
.line 958
and-int/lit16 v4, v5, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v3, v3, 0xff
.line 959
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v4, v9, v4
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v1, v1, 0x100
aget v1, v9, v1
xor-int/2addr v1, v4
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v2, v2, 0x200
aget v2, v4, v2
xor-int/2addr v1, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v3, v3, 0x300
aget v2, v2, v3
xor-int/2addr v1, v2
aget-object v2, p1, v8
const/4 v3, 0x0
aget v2, v2, v3
xor-int v4, v1, v2
.line 961
ushr-int/lit8 v1, v5, 0x8
ushr-int/lit8 v2, v0, 0x10
ushr-int/lit8 v3, v7, 0x18
.line 962
and-int/lit16 v9, v6, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v3, v3, 0xff
.line 963
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v9, v10, v9
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v1, v1, 0x100
aget v1, v10, v1
xor-int/2addr v1, v9
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v2, v2, 0x200
aget v2, v9, v2
xor-int/2addr v1, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v3, v3, 0x300
aget v2, v2, v3
xor-int/2addr v1, v2
aget-object v2, p1, v8
const/4 v3, 0x1
aget v2, v2, v3
xor-int v3, v1, v2
.line 965
ushr-int/lit8 v1, v6, 0x8
ushr-int/lit8 v2, v5, 0x10
ushr-int/lit8 v9, v0, 0x18
.line 966
and-int/lit16 v10, v7, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v9, v9, 0xff
.line 967
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v10, v11, v10
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v1, v1, 0x100
aget v1, v11, v1
xor-int/2addr v1, v10
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v2, v2, 0x200
aget v2, v10, v2
xor-int/2addr v1, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v9, v9, 0x300
aget v2, v2, v9
xor-int/2addr v1, v2
aget-object v2, p1, v8
const/4 v9, 0x2
aget v2, v2, v9
xor-int/2addr v2, v1
.line 969
ushr-int/lit8 v1, v7, 0x8
ushr-int/lit8 v6, v6, 0x10
ushr-int/lit8 v5, v5, 0x18
.line 970
and-int/lit16 v0, v0, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v5, v5, 0xff
.line 971
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v0, v7, v0
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v1, v1, 0x100
aget v1, v7, v1
xor-int/2addr v0, v1
sget-object v1, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v6, v6, 0x200
aget v1, v1, v6
xor-int/2addr v0, v1
sget-object v1, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v5, v5, 0x300
aget v1, v1, v5
xor-int/2addr v0, v1
add-int/lit8 v1, v8, -0x1
aget-object v5, p1, v8
const/4 v6, 0x3
aget v5, v5, v6
xor-int/2addr v0, v5
goto/16 :goto_2f
.line 974
:cond_1a2
ushr-int/lit8 v1, v0, 0x8
ushr-int/lit8 v5, v2, 0x10
ushr-int/lit8 v6, v3, 0x18
.line 975
and-int/lit16 v7, v4, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v5, v5, 0xff
and-int/lit16 v6, v6, 0xff
.line 976
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v7, v8, v7
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v1, v1, 0x100
aget v1, v8, v1
xor-int/2addr v1, v7
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v5, v5, 0x200
aget v5, v7, v5
xor-int/2addr v1, v5
sget-object v5, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v6, v6, 0x300
aget v5, v5, v6
xor-int/2addr v1, v5
const/4 v5, 0x1
aget-object v5, p1, v5
const/4 v6, 0x0
aget v5, v5, v6
xor-int/2addr v1, v5
.line 978
ushr-int/lit8 v5, v4, 0x8
ushr-int/lit8 v6, v0, 0x10
ushr-int/lit8 v7, v2, 0x18
.line 979
and-int/lit16 v8, v3, 0xff
and-int/lit16 v5, v5, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
.line 980
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v8, v9, v8
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v5, v5, 0x100
aget v5, v9, v5
xor-int/2addr v5, v8
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v6, v6, 0x200
aget v6, v8, v6
xor-int/2addr v5, v6
sget-object v6, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v7, v7, 0x300
aget v6, v6, v7
xor-int/2addr v5, v6
const/4 v6, 0x1
aget-object v6, p1, v6
const/4 v7, 0x1
aget v6, v6, v7
xor-int/2addr v5, v6
.line 982
ushr-int/lit8 v6, v3, 0x8
ushr-int/lit8 v7, v4, 0x10
ushr-int/lit8 v8, v0, 0x18
.line 983
and-int/lit16 v9, v2, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
and-int/lit16 v8, v8, 0xff
.line 984
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v9, v10, v9
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v6, v6, 0x100
aget v6, v10, v6
xor-int/2addr v6, v9
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v7, v7, 0x200
aget v7, v9, v7
xor-int/2addr v6, v7
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v8, v8, 0x300
aget v7, v7, v8
xor-int/2addr v6, v7
const/4 v7, 0x1
aget-object v7, p1, v7
const/4 v8, 0x2
aget v7, v7, v8
xor-int/2addr v6, v7
.line 986
ushr-int/lit8 v2, v2, 0x8
ushr-int/lit8 v3, v3, 0x10
ushr-int/lit8 v4, v4, 0x18
.line 987
and-int/lit16 v0, v0, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v3, v3, 0xff
and-int/lit16 v4, v4, 0xff
.line 988
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
aget v0, v7, v0
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v2, v2, 0x100
aget v2, v7, v2
xor-int/2addr v0, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v3, v3, 0x200
aget v2, v2, v3
xor-int/2addr v0, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->Tinv:[I
add-int/lit16 v3, v4, 0x300
aget v2, v2, v3
xor-int/2addr v0, v2
const/4 v2, 0x1
aget-object v2, p1, v2
const/4 v3, 0x3
aget v2, v2, v3
xor-int/2addr v0, v2
.line 992
ushr-int/lit8 v2, v0, 0x8
ushr-int/lit8 v3, v6, 0x10
ushr-int/lit8 v4, v5, 0x18
.line 993
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v8, v1, 0xff
aget-byte v7, v7, v8
and-int/lit16 v7, v7, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v2, v2, 0xff
aget-byte v2, v8, v2
and-int/lit16 v2, v2, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v8, v3
and-int/lit16 v3, v3, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v4, v4, 0xff
aget-byte v4, v8, v4
and-int/lit16 v4, v4, 0xff
.line 994
shl-int/lit8 v2, v2, 0x8
xor-int/2addr v2, v7
shl-int/lit8 v3, v3, 0x10
xor-int/2addr v2, v3
shl-int/lit8 v3, v4, 0x18
xor-int/2addr v2, v3
const/4 v3, 0x0
aget-object v3, p1, v3
const/4 v4, 0x0
aget v3, v3, v4
xor-int/2addr v2, v3
iput v2, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C0:I
.line 996
ushr-int/lit8 v2, v1, 0x8
ushr-int/lit8 v3, v0, 0x10
ushr-int/lit8 v4, v6, 0x18
.line 997
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v8, v5, 0xff
aget-byte v7, v7, v8
and-int/lit16 v7, v7, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v2, v2, 0xff
aget-byte v2, v8, v2
and-int/lit16 v2, v2, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v8, v3
and-int/lit16 v3, v3, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v4, v4, 0xff
aget-byte v4, v8, v4
and-int/lit16 v4, v4, 0xff
.line 998
shl-int/lit8 v2, v2, 0x8
xor-int/2addr v2, v7
shl-int/lit8 v3, v3, 0x10
xor-int/2addr v2, v3
shl-int/lit8 v3, v4, 0x18
xor-int/2addr v2, v3
const/4 v3, 0x0
aget-object v3, p1, v3
const/4 v4, 0x1
aget v3, v3, v4
xor-int/2addr v2, v3
iput v2, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C1:I
.line 1000
ushr-int/lit8 v2, v5, 0x8
ushr-int/lit8 v3, v1, 0x10
ushr-int/lit8 v4, v0, 0x18
.line 1001
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v8, v6, 0xff
aget-byte v7, v7, v8
and-int/lit16 v7, v7, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v2, v2, 0xff
aget-byte v2, v8, v2
and-int/lit16 v2, v2, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v8, v3
and-int/lit16 v3, v3, 0xff
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v4, v4, 0xff
aget-byte v4, v8, v4
and-int/lit16 v4, v4, 0xff
.line 1002
shl-int/lit8 v2, v2, 0x8
xor-int/2addr v2, v7
shl-int/lit8 v3, v3, 0x10
xor-int/2addr v2, v3
shl-int/lit8 v3, v4, 0x18
xor-int/2addr v2, v3
const/4 v3, 0x0
aget-object v3, p1, v3
const/4 v4, 0x2
aget v3, v3, v4
xor-int/2addr v2, v3
iput v2, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C2:I
.line 1004
ushr-int/lit8 v2, v6, 0x8
ushr-int/lit8 v3, v5, 0x10
ushr-int/lit8 v1, v1, 0x18
.line 1005
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v0, v0, 0xff
aget-byte v0, v4, v0
and-int/lit16 v0, v0, 0xff
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v2, v2, 0xff
aget-byte v2, v4, v2
and-int/lit16 v2, v2, 0xff
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v4, v3
and-int/lit16 v3, v3, 0xff
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->Si:[B
and-int/lit16 v1, v1, 0xff
aget-byte v1, v4, v1
and-int/lit16 v1, v1, 0xff
.line 1006
shl-int/lit8 v2, v2, 0x8
xor-int/2addr v0, v2
shl-int/lit8 v2, v3, 0x10
xor-int/2addr v0, v2
shl-int/lit8 v1, v1, 0x18
xor-int/2addr v0, v1
const/4 v1, 0x0
aget-object v1, p1, v1
const/4 v2, 0x3
aget v1, v1, v2
xor-int/2addr v0, v1
iput v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C3:I
.line 1007
return-void
.end method
.method private encryptBlock([[I)V
.registers 14
.prologue
.line 846
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C0:I
const/4 v1, 0x0
aget-object v1, p1, v1
const/4 v2, 0x0
aget v1, v1, v2
xor-int v4, v0, v1
.line 847
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C1:I
const/4 v1, 0x0
aget-object v1, p1, v1
const/4 v2, 0x1
aget v1, v1, v2
xor-int v3, v0, v1
.line 848
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C2:I
const/4 v1, 0x0
aget-object v1, p1, v1
const/4 v2, 0x2
aget v1, v1, v2
xor-int v2, v0, v1
.line 857
const/4 v1, 0x1
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C3:I
const/4 v5, 0x0
aget-object v5, p1, v5
const/4 v6, 0x3
aget v5, v5, v6
xor-int/2addr v0, v5
.line 860
:goto_28
iget v5, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
add-int/lit8 v5, v5, -0x1
if-ge v1, v5, :cond_19e
.line 862
ushr-int/lit8 v5, v3, 0x8
ushr-int/lit8 v6, v2, 0x10
ushr-int/lit8 v7, v0, 0x18
.line 863
and-int/lit16 v8, v4, 0xff
and-int/lit16 v5, v5, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
.line 864
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v8, v9, v8
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v5, v5, 0x100
aget v5, v9, v5
xor-int/2addr v5, v8
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v6, v6, 0x200
aget v6, v8, v6
xor-int/2addr v5, v6
sget-object v6, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v7, v7, 0x300
aget v6, v6, v7
xor-int/2addr v5, v6
aget-object v6, p1, v1
const/4 v7, 0x0
aget v6, v6, v7
xor-int/2addr v5, v6
.line 866
ushr-int/lit8 v6, v2, 0x8
ushr-int/lit8 v7, v0, 0x10
ushr-int/lit8 v8, v4, 0x18
.line 867
and-int/lit16 v9, v3, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
and-int/lit16 v8, v8, 0xff
.line 868
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v9, v10, v9
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v6, v6, 0x100
aget v6, v10, v6
xor-int/2addr v6, v9
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v7, v7, 0x200
aget v7, v9, v7
xor-int/2addr v6, v7
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v8, v8, 0x300
aget v7, v7, v8
xor-int/2addr v6, v7
aget-object v7, p1, v1
const/4 v8, 0x1
aget v7, v7, v8
xor-int/2addr v6, v7
.line 870
ushr-int/lit8 v7, v0, 0x8
ushr-int/lit8 v8, v4, 0x10
ushr-int/lit8 v9, v3, 0x18
.line 871
and-int/lit16 v10, v2, 0xff
and-int/lit16 v7, v7, 0xff
and-int/lit16 v8, v8, 0xff
and-int/lit16 v9, v9, 0xff
.line 872
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v10, v11, v10
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v7, v7, 0x100
aget v7, v11, v7
xor-int/2addr v7, v10
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v8, v8, 0x200
aget v8, v10, v8
xor-int/2addr v7, v8
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v9, v9, 0x300
aget v8, v8, v9
xor-int/2addr v7, v8
aget-object v8, p1, v1
const/4 v9, 0x2
aget v8, v8, v9
xor-int/2addr v7, v8
.line 874
ushr-int/lit8 v4, v4, 0x8
ushr-int/lit8 v3, v3, 0x10
ushr-int/lit8 v2, v2, 0x18
.line 875
and-int/lit16 v0, v0, 0xff
and-int/lit16 v4, v4, 0xff
and-int/lit16 v3, v3, 0xff
and-int/lit16 v2, v2, 0xff
.line 876
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v0, v8, v0
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v4, v4, 0x100
aget v4, v8, v4
xor-int/2addr v0, v4
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v3, v3, 0x200
aget v3, v4, v3
xor-int/2addr v0, v3
sget-object v3, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v2, v2, 0x300
aget v2, v3, v2
xor-int/2addr v0, v2
add-int/lit8 v8, v1, 0x1
aget-object v1, p1, v1
const/4 v2, 0x3
aget v1, v1, v2
xor-int/2addr v0, v1
.line 878
ushr-int/lit8 v1, v6, 0x8
ushr-int/lit8 v2, v7, 0x10
ushr-int/lit8 v3, v0, 0x18
.line 879
and-int/lit16 v4, v5, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v3, v3, 0xff
.line 880
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v4, v9, v4
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v1, v1, 0x100
aget v1, v9, v1
xor-int/2addr v1, v4
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v2, v2, 0x200
aget v2, v4, v2
xor-int/2addr v1, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v3, v3, 0x300
aget v2, v2, v3
xor-int/2addr v1, v2
aget-object v2, p1, v8
const/4 v3, 0x0
aget v2, v2, v3
xor-int v4, v1, v2
.line 882
ushr-int/lit8 v1, v7, 0x8
ushr-int/lit8 v2, v0, 0x10
ushr-int/lit8 v3, v5, 0x18
.line 883
and-int/lit16 v9, v6, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v3, v3, 0xff
.line 884
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v9, v10, v9
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v1, v1, 0x100
aget v1, v10, v1
xor-int/2addr v1, v9
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v2, v2, 0x200
aget v2, v9, v2
xor-int/2addr v1, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v3, v3, 0x300
aget v2, v2, v3
xor-int/2addr v1, v2
aget-object v2, p1, v8
const/4 v3, 0x1
aget v2, v2, v3
xor-int v3, v1, v2
.line 886
ushr-int/lit8 v1, v0, 0x8
ushr-int/lit8 v2, v5, 0x10
ushr-int/lit8 v9, v6, 0x18
.line 887
and-int/lit16 v10, v7, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v2, v2, 0xff
and-int/lit16 v9, v9, 0xff
.line 888
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v10, v11, v10
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v1, v1, 0x100
aget v1, v11, v1
xor-int/2addr v1, v10
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v2, v2, 0x200
aget v2, v10, v2
xor-int/2addr v1, v2
sget-object v2, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v9, v9, 0x300
aget v2, v2, v9
xor-int/2addr v1, v2
aget-object v2, p1, v8
const/4 v9, 0x2
aget v2, v2, v9
xor-int/2addr v2, v1
.line 890
ushr-int/lit8 v1, v5, 0x8
ushr-int/lit8 v5, v6, 0x10
ushr-int/lit8 v6, v7, 0x18
.line 891
and-int/lit16 v0, v0, 0xff
and-int/lit16 v1, v1, 0xff
and-int/lit16 v5, v5, 0xff
and-int/lit16 v6, v6, 0xff
.line 892
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v0, v7, v0
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v1, v1, 0x100
aget v1, v7, v1
xor-int/2addr v0, v1
sget-object v1, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v5, v5, 0x200
aget v1, v1, v5
xor-int/2addr v0, v1
sget-object v1, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v5, v6, 0x300
aget v1, v1, v5
xor-int/2addr v0, v1
add-int/lit8 v1, v8, 0x1
aget-object v5, p1, v8
const/4 v6, 0x3
aget v5, v5, v6
xor-int/2addr v0, v5
goto/16 :goto_28
.line 895
:cond_19e
ushr-int/lit8 v5, v3, 0x8
ushr-int/lit8 v6, v2, 0x10
ushr-int/lit8 v7, v0, 0x18
.line 896
and-int/lit16 v8, v4, 0xff
and-int/lit16 v5, v5, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
.line 897
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v8, v9, v8
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v5, v5, 0x100
aget v5, v9, v5
xor-int/2addr v5, v8
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v6, v6, 0x200
aget v6, v8, v6
xor-int/2addr v5, v6
sget-object v6, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v7, v7, 0x300
aget v6, v6, v7
xor-int/2addr v5, v6
aget-object v6, p1, v1
const/4 v7, 0x0
aget v6, v6, v7
xor-int/2addr v5, v6
.line 899
ushr-int/lit8 v6, v2, 0x8
ushr-int/lit8 v7, v0, 0x10
ushr-int/lit8 v8, v4, 0x18
.line 900
and-int/lit16 v9, v3, 0xff
and-int/lit16 v6, v6, 0xff
and-int/lit16 v7, v7, 0xff
and-int/lit16 v8, v8, 0xff
.line 901
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v9, v10, v9
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v6, v6, 0x100
aget v6, v10, v6
xor-int/2addr v6, v9
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v7, v7, 0x200
aget v7, v9, v7
xor-int/2addr v6, v7
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v8, v8, 0x300
aget v7, v7, v8
xor-int/2addr v6, v7
aget-object v7, p1, v1
const/4 v8, 0x1
aget v7, v7, v8
xor-int/2addr v6, v7
.line 903
ushr-int/lit8 v7, v0, 0x8
ushr-int/lit8 v8, v4, 0x10
ushr-int/lit8 v9, v3, 0x18
.line 904
and-int/lit16 v10, v2, 0xff
and-int/lit16 v7, v7, 0xff
and-int/lit16 v8, v8, 0xff
and-int/lit16 v9, v9, 0xff
.line 905
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v10, v11, v10
sget-object v11, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v7, v7, 0x100
aget v7, v11, v7
xor-int/2addr v7, v10
sget-object v10, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v8, v8, 0x200
aget v8, v10, v8
xor-int/2addr v7, v8
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v9, v9, 0x300
aget v8, v8, v9
xor-int/2addr v7, v8
aget-object v8, p1, v1
const/4 v9, 0x2
aget v8, v8, v9
xor-int/2addr v7, v8
.line 907
ushr-int/lit8 v4, v4, 0x8
ushr-int/lit8 v3, v3, 0x10
ushr-int/lit8 v2, v2, 0x18
.line 908
and-int/lit16 v0, v0, 0xff
and-int/lit16 v4, v4, 0xff
and-int/lit16 v3, v3, 0xff
and-int/lit16 v2, v2, 0xff
.line 909
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
aget v0, v8, v0
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v4, v4, 0x100
aget v4, v8, v4
xor-int/2addr v0, v4
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v3, v3, 0x200
aget v3, v4, v3
xor-int/2addr v0, v3
sget-object v3, Lorg/spongycastle/crypto/engines/AESFastEngine;->T:[I
add-int/lit16 v2, v2, 0x300
aget v2, v3, v2
xor-int/2addr v0, v2
add-int/lit8 v2, v1, 0x1
aget-object v1, p1, v1
const/4 v3, 0x3
aget v1, v1, v3
xor-int/2addr v0, v1
.line 913
ushr-int/lit8 v1, v6, 0x8
ushr-int/lit8 v3, v7, 0x10
ushr-int/lit8 v4, v0, 0x18
.line 914
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v9, v5, 0xff
aget-byte v8, v8, v9
and-int/lit16 v8, v8, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v1, v1, 0xff
aget-byte v1, v9, v1
and-int/lit16 v1, v1, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v9, v3
and-int/lit16 v3, v3, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v4, v4, 0xff
aget-byte v4, v9, v4
and-int/lit16 v4, v4, 0xff
.line 915
shl-int/lit8 v1, v1, 0x8
xor-int/2addr v1, v8
shl-int/lit8 v3, v3, 0x10
xor-int/2addr v1, v3
shl-int/lit8 v3, v4, 0x18
xor-int/2addr v1, v3
aget-object v3, p1, v2
const/4 v4, 0x0
aget v3, v3, v4
xor-int/2addr v1, v3
iput v1, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C0:I
.line 917
ushr-int/lit8 v1, v7, 0x8
ushr-int/lit8 v3, v0, 0x10
ushr-int/lit8 v4, v5, 0x18
.line 918
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v9, v6, 0xff
aget-byte v8, v8, v9
and-int/lit16 v8, v8, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v1, v1, 0xff
aget-byte v1, v9, v1
and-int/lit16 v1, v1, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v9, v3
and-int/lit16 v3, v3, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v4, v4, 0xff
aget-byte v4, v9, v4
and-int/lit16 v4, v4, 0xff
.line 919
shl-int/lit8 v1, v1, 0x8
xor-int/2addr v1, v8
shl-int/lit8 v3, v3, 0x10
xor-int/2addr v1, v3
shl-int/lit8 v3, v4, 0x18
xor-int/2addr v1, v3
aget-object v3, p1, v2
const/4 v4, 0x1
aget v3, v3, v4
xor-int/2addr v1, v3
iput v1, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C1:I
.line 921
ushr-int/lit8 v1, v0, 0x8
ushr-int/lit8 v3, v5, 0x10
ushr-int/lit8 v4, v6, 0x18
.line 922
sget-object v8, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v9, v7, 0xff
aget-byte v8, v8, v9
and-int/lit16 v8, v8, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v1, v1, 0xff
aget-byte v1, v9, v1
and-int/lit16 v1, v1, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v9, v3
and-int/lit16 v3, v3, 0xff
sget-object v9, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v4, v4, 0xff
aget-byte v4, v9, v4
and-int/lit16 v4, v4, 0xff
.line 923
shl-int/lit8 v1, v1, 0x8
xor-int/2addr v1, v8
shl-int/lit8 v3, v3, 0x10
xor-int/2addr v1, v3
shl-int/lit8 v3, v4, 0x18
xor-int/2addr v1, v3
aget-object v3, p1, v2
const/4 v4, 0x2
aget v3, v3, v4
xor-int/2addr v1, v3
iput v1, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C2:I
.line 925
ushr-int/lit8 v1, v5, 0x8
ushr-int/lit8 v3, v6, 0x10
ushr-int/lit8 v4, v7, 0x18
.line 926
sget-object v5, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v0, v0, 0xff
aget-byte v0, v5, v0
and-int/lit16 v0, v0, 0xff
sget-object v5, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v1, v1, 0xff
aget-byte v1, v5, v1
and-int/lit16 v1, v1, 0xff
sget-object v5, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v3, v3, 0xff
aget-byte v3, v5, v3
and-int/lit16 v3, v3, 0xff
sget-object v5, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v4, v4, 0xff
aget-byte v4, v5, v4
and-int/lit16 v4, v4, 0xff
.line 927
shl-int/lit8 v1, v1, 0x8
xor-int/2addr v0, v1
shl-int/lit8 v1, v3, 0x10
xor-int/2addr v0, v1
shl-int/lit8 v1, v4, 0x18
xor-int/2addr v0, v1
aget-object v1, p1, v2
const/4 v2, 0x3
aget v1, v1, v2
xor-int/2addr v0, v1
iput v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C3:I
.line 928
return-void
.end method
.method private generateWorkingKey([BZ)[[I
.registers 16
.prologue
.line 612
array-length v0, p1
.line 613
const/16 v1, 0x10
if-lt v0, v1, :cond_d
const/16 v1, 0x20
if-gt v0, v1, :cond_d
and-int/lit8 v1, v0, 0x7
if-eqz v1, :cond_15
.line 615
:cond_d
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "Key length not 128/192/256 bits."
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.line 618
:cond_15
ushr-int/lit8 v1, v0, 0x2
.line 619
add-int/lit8 v0, v1, 0x6
iput v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
.line 620
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
add-int/lit8 v0, v0, 0x1
const/4 v2, 0x4
filled-new-array {v0, v2}, [I
move-result-object v0
sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
invoke-static {v2, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v0
check-cast v0, [[I
.line 622
packed-switch v1, :pswitch_data_2ba
.line 723
:pswitch_2f
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Should never get here"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 626
:pswitch_37
const/4 v1, 0x0
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v5
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v2, 0x0
aput v5, v1, v2
.line 627
const/4 v1, 0x4
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v4
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v2, 0x1
aput v4, v1, v2
.line 628
const/16 v1, 0x8
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v3
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v2, 0x2
aput v3, v1, v2
.line 629
const/16 v1, 0xc
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v2
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v6, 0x3
aput v2, v1, v6
.line 631
const/4 v1, 0x1
:goto_66
const/16 v6, 0xa
if-gt v1, v6, :cond_1be
.line 633
const/16 v6, 0x8
invoke-static {v2, v6}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v6
invoke-static {v6}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v6
sget-object v7, Lorg/spongycastle/crypto/engines/AESFastEngine;->rcon:[I
add-int/lit8 v8, v1, -0x1
aget v7, v7, v8
xor-int/2addr v6, v7
.line 634
xor-int/2addr v5, v6
aget-object v6, v0, v1
const/4 v7, 0x0
aput v5, v6, v7
.line 635
xor-int/2addr v4, v5
aget-object v6, v0, v1
const/4 v7, 0x1
aput v4, v6, v7
.line 636
xor-int/2addr v3, v4
aget-object v6, v0, v1
const/4 v7, 0x2
aput v3, v6, v7
.line 637
xor-int/2addr v2, v3
aget-object v6, v0, v1
const/4 v7, 0x3
aput v2, v6, v7
.line 631
add-int/lit8 v1, v1, 0x1
goto :goto_66
.line 644
:pswitch_96
const/4 v1, 0x0
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v1
const/4 v2, 0x0
aget-object v2, v0, v2
const/4 v3, 0x0
aput v1, v2, v3
.line 645
const/4 v2, 0x4
invoke-static {p1, v2}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v3
const/4 v2, 0x0
aget-object v2, v0, v2
const/4 v4, 0x1
aput v3, v2, v4
.line 646
const/16 v2, 0x8
invoke-static {p1, v2}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v4
const/4 v2, 0x0
aget-object v2, v0, v2
const/4 v5, 0x2
aput v4, v2, v5
.line 647
const/16 v2, 0xc
invoke-static {p1, v2}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v5
const/4 v2, 0x0
aget-object v2, v0, v2
const/4 v6, 0x3
aput v5, v2, v6
.line 648
const/16 v2, 0x10
invoke-static {p1, v2}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v9
const/4 v2, 0x1
aget-object v2, v0, v2
const/4 v6, 0x0
aput v9, v2, v6
.line 649
const/16 v2, 0x14
invoke-static {p1, v2}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v10
const/4 v2, 0x1
aget-object v2, v0, v2
const/4 v6, 0x1
aput v10, v2, v6
.line 652
const/16 v2, 0x8
invoke-static {v10, v2}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v2
invoke-static {v2}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v2
xor-int/lit8 v6, v2, 0x1
const/4 v2, 0x2
.line 653
xor-int v8, v1, v6
const/4 v1, 0x1
aget-object v1, v0, v1
const/4 v6, 0x2
aput v8, v1, v6
.line 654
xor-int v7, v3, v8
const/4 v1, 0x1
aget-object v1, v0, v1
const/4 v3, 0x3
aput v7, v1, v3
.line 655
xor-int v6, v4, v7
const/4 v1, 0x2
aget-object v1, v0, v1
const/4 v3, 0x0
aput v6, v1, v3
.line 656
xor-int/2addr v5, v6
const/4 v1, 0x2
aget-object v1, v0, v1
const/4 v3, 0x1
aput v5, v1, v3
.line 657
xor-int v4, v9, v5
const/4 v1, 0x2
aget-object v1, v0, v1
const/4 v3, 0x2
aput v4, v1, v3
.line 658
xor-int v3, v10, v4
const/4 v1, 0x2
aget-object v1, v0, v1
const/4 v9, 0x3
aput v3, v1, v9
.line 660
const/4 v1, 0x3
:goto_119
const/16 v9, 0xc
if-ge v1, v9, :cond_192
.line 662
const/16 v9, 0x8
invoke-static {v3, v9}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v9
invoke-static {v9}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v9
xor-int/2addr v9, v2
shl-int/lit8 v2, v2, 0x1
.line 663
xor-int/2addr v8, v9
aget-object v9, v0, v1
const/4 v10, 0x0
aput v8, v9, v10
.line 664
xor-int/2addr v7, v8
aget-object v9, v0, v1
const/4 v10, 0x1
aput v7, v9, v10
.line 665
xor-int/2addr v6, v7
aget-object v9, v0, v1
const/4 v10, 0x2
aput v6, v9, v10
.line 666
xor-int/2addr v5, v6
aget-object v9, v0, v1
const/4 v10, 0x3
aput v5, v9, v10
.line 667
xor-int/2addr v4, v5
add-int/lit8 v9, v1, 0x1
aget-object v9, v0, v9
const/4 v10, 0x0
aput v4, v9, v10
.line 668
xor-int/2addr v3, v4
add-int/lit8 v9, v1, 0x1
aget-object v9, v0, v9
const/4 v10, 0x1
aput v3, v9, v10
.line 669
const/16 v9, 0x8
invoke-static {v3, v9}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v9
invoke-static {v9}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v9
xor-int/2addr v9, v2
shl-int/lit8 v2, v2, 0x1
.line 670
xor-int/2addr v8, v9
add-int/lit8 v9, v1, 0x1
aget-object v9, v0, v9
const/4 v10, 0x2
aput v8, v9, v10
.line 671
xor-int/2addr v7, v8
add-int/lit8 v9, v1, 0x1
aget-object v9, v0, v9
const/4 v10, 0x3
aput v7, v9, v10
.line 672
xor-int/2addr v6, v7
add-int/lit8 v9, v1, 0x2
aget-object v9, v0, v9
const/4 v10, 0x0
aput v6, v9, v10
.line 673
xor-int/2addr v5, v6
add-int/lit8 v9, v1, 0x2
aget-object v9, v0, v9
const/4 v10, 0x1
aput v5, v9, v10
.line 674
xor-int/2addr v4, v5
add-int/lit8 v9, v1, 0x2
aget-object v9, v0, v9
const/4 v10, 0x2
aput v4, v9, v10
.line 675
xor-int/2addr v3, v4
add-int/lit8 v9, v1, 0x2
aget-object v9, v0, v9
const/4 v10, 0x3
aput v3, v9, v10
.line 660
add-int/lit8 v1, v1, 0x3
goto :goto_119
.line 678
:cond_192
const/16 v1, 0x8
invoke-static {v3, v1}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v1
invoke-static {v1}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v1
xor-int/lit16 v1, v1, 0x80
.line 679
xor-int/2addr v1, v8
const/16 v2, 0xc
aget-object v2, v0, v2
const/4 v3, 0x0
aput v1, v2, v3
.line 680
xor-int/2addr v1, v7
const/16 v2, 0xc
aget-object v2, v0, v2
const/4 v3, 0x1
aput v1, v2, v3
.line 681
xor-int/2addr v1, v6
const/16 v2, 0xc
aget-object v2, v0, v2
const/4 v3, 0x2
aput v1, v2, v3
.line 682
xor-int/2addr v1, v5
const/16 v2, 0xc
aget-object v2, v0, v2
const/4 v3, 0x3
aput v1, v2, v3
.line 727
:cond_1be
:goto_1be
if-nez p2, :cond_2b9
.line 729
const/4 v1, 0x1
:goto_1c1
iget v2, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->ROUNDS:I
if-ge v1, v2, :cond_2b9
.line 731
const/4 v2, 0x0
:goto_1c6
const/4 v3, 0x4
if-ge v2, v3, :cond_2b5
.line 733
aget-object v3, v0, v1
aget-object v4, v0, v1
aget v4, v4, v2
invoke-static {v4}, Lorg/spongycastle/crypto/engines/AESFastEngine;->inv_mcol(I)I
move-result v4
aput v4, v3, v2
.line 731
add-int/lit8 v2, v2, 0x1
goto :goto_1c6
.line 688
:pswitch_1d8
const/4 v1, 0x0
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v9
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v2, 0x0
aput v9, v1, v2
.line 689
const/4 v1, 0x4
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v8
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v2, 0x1
aput v8, v1, v2
.line 690
const/16 v1, 0x8
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v7
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v2, 0x2
aput v7, v1, v2
.line 691
const/16 v1, 0xc
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v6
const/4 v1, 0x0
aget-object v1, v0, v1
const/4 v2, 0x3
aput v6, v1, v2
.line 692
const/16 v1, 0x10
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v5
const/4 v1, 0x1
aget-object v1, v0, v1
const/4 v2, 0x0
aput v5, v1, v2
.line 693
const/16 v1, 0x14
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v4
const/4 v1, 0x1
aget-object v1, v0, v1
const/4 v2, 0x1
aput v4, v1, v2
.line 694
const/16 v1, 0x18
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v3
const/4 v1, 0x1
aget-object v1, v0, v1
const/4 v2, 0x2
aput v3, v1, v2
.line 695
const/16 v1, 0x1c
invoke-static {p1, v1}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v10
const/4 v1, 0x1
aget-object v1, v0, v1
const/4 v2, 0x3
aput v10, v1, v2
.line 697
const/4 v2, 0x1
.line 699
const/4 v1, 0x2
:goto_238
const/16 v11, 0xe
if-ge v1, v11, :cond_288
.line 701
const/16 v11, 0x8
invoke-static {v10, v11}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v11
invoke-static {v11}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v11
xor-int/2addr v11, v2
shl-int/lit8 v2, v2, 0x1
.line 702
xor-int/2addr v9, v11
aget-object v11, v0, v1
const/4 v12, 0x0
aput v9, v11, v12
.line 703
xor-int/2addr v8, v9
aget-object v11, v0, v1
const/4 v12, 0x1
aput v8, v11, v12
.line 704
xor-int/2addr v7, v8
aget-object v11, v0, v1
const/4 v12, 0x2
aput v7, v11, v12
.line 705
xor-int/2addr v6, v7
aget-object v11, v0, v1
const/4 v12, 0x3
aput v6, v11, v12
.line 706
invoke-static {v6}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v11
.line 707
xor-int/2addr v5, v11
add-int/lit8 v11, v1, 0x1
aget-object v11, v0, v11
const/4 v12, 0x0
aput v5, v11, v12
.line 708
xor-int/2addr v4, v5
add-int/lit8 v11, v1, 0x1
aget-object v11, v0, v11
const/4 v12, 0x1
aput v4, v11, v12
.line 709
xor-int/2addr v3, v4
add-int/lit8 v11, v1, 0x1
aget-object v11, v0, v11
const/4 v12, 0x2
aput v3, v11, v12
.line 710
xor-int/2addr v10, v3
add-int/lit8 v11, v1, 0x1
aget-object v11, v0, v11
const/4 v12, 0x3
aput v10, v11, v12
.line 699
add-int/lit8 v1, v1, 0x2
goto :goto_238
.line 713
:cond_288
const/16 v1, 0x8
invoke-static {v10, v1}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v1
invoke-static {v1}, Lorg/spongycastle/crypto/engines/AESFastEngine;->subWord(I)I
move-result v1
xor-int/2addr v1, v2
.line 714
xor-int/2addr v1, v9
const/16 v2, 0xe
aget-object v2, v0, v2
const/4 v3, 0x0
aput v1, v2, v3
.line 715
xor-int/2addr v1, v8
const/16 v2, 0xe
aget-object v2, v0, v2
const/4 v3, 0x1
aput v1, v2, v3
.line 716
xor-int/2addr v1, v7
const/16 v2, 0xe
aget-object v2, v0, v2
const/4 v3, 0x2
aput v1, v2, v3
.line 717
xor-int/2addr v1, v6
const/16 v2, 0xe
aget-object v2, v0, v2
const/4 v3, 0x3
aput v1, v2, v3
goto/16 :goto_1be
.line 729
:cond_2b5
add-int/lit8 v1, v1, 0x1
goto/16 :goto_1c1
.line 738
:cond_2b9
return-object v0
.line 622
:pswitch_data_2ba
.packed-switch 0x4
:pswitch_37
:pswitch_2f
:pswitch_96
:pswitch_2f
:pswitch_1d8
.end packed-switch
.end method
.method private static inv_mcol(I)I
.registers 4
.prologue
.line 590
const/16 v0, 0x8
invoke-static {p0, v0}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v0
xor-int/2addr v0, p0
.line 591
invoke-static {v0}, Lorg/spongycastle/crypto/engines/AESFastEngine;->FFmulX(I)I
move-result v1
xor-int/2addr v1, p0
.line 592
invoke-static {v1}, Lorg/spongycastle/crypto/engines/AESFastEngine;->FFmulX2(I)I
move-result v2
xor-int/2addr v0, v2
.line 593
const/16 v2, 0x10
invoke-static {v0, v2}, Lorg/spongycastle/crypto/engines/AESFastEngine;->shift(II)I
move-result v2
xor-int/2addr v0, v2
xor-int/2addr v0, v1
.line 594
return v0
.end method
.method private packBlock([BI)V
.registers 5
.prologue
.line 838
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C0:I
invoke-static {v0, p1, p2}, Lorg/spongycastle/util/Pack;->intToLittleEndian(I[BI)V
.line 839
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C1:I
add-int/lit8 v1, p2, 0x4
invoke-static {v0, p1, v1}, Lorg/spongycastle/util/Pack;->intToLittleEndian(I[BI)V
.line 840
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C2:I
add-int/lit8 v1, p2, 0x8
invoke-static {v0, p1, v1}, Lorg/spongycastle/util/Pack;->intToLittleEndian(I[BI)V
.line 841
iget v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C3:I
add-int/lit8 v1, p2, 0xc
invoke-static {v0, p1, v1}, Lorg/spongycastle/util/Pack;->intToLittleEndian(I[BI)V
.line 842
return-void
.end method
.method private static shift(II)I
.registers 4
.prologue
.line 552
ushr-int v0, p0, p1
neg-int v1, p1
shl-int v1, p0, v1
or-int/2addr v0, v1
return v0
.end method
.method private static subWord(I)I
.registers 6
.prologue
.line 599
ushr-int/lit8 v0, p0, 0x8
ushr-int/lit8 v1, p0, 0x10
ushr-int/lit8 v2, p0, 0x18
.line 600
sget-object v3, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v4, p0, 0xff
aget-byte v3, v3, v4
and-int/lit16 v3, v3, 0xff
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v0, v0, 0xff
aget-byte v0, v4, v0
and-int/lit16 v0, v0, 0xff
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v1, v1, 0xff
aget-byte v1, v4, v1
and-int/lit16 v1, v1, 0xff
sget-object v4, Lorg/spongycastle/crypto/engines/AESFastEngine;->S:[B
and-int/lit16 v2, v2, 0xff
aget-byte v2, v4, v2
and-int/lit16 v2, v2, 0xff
.line 601
shl-int/lit8 v0, v0, 0x8
or-int/2addr v0, v3
shl-int/lit8 v1, v1, 0x10
or-int/2addr v0, v1
shl-int/lit8 v1, v2, 0x18
or-int/2addr v0, v1
return v0
.end method
.method private unpackBlock([BI)V
.registers 4
.prologue
.line 830
invoke-static {p1, p2}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v0
iput v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C0:I
.line 831
add-int/lit8 v0, p2, 0x4
invoke-static {p1, v0}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v0
iput v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C1:I
.line 832
add-int/lit8 v0, p2, 0x8
invoke-static {p1, v0}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v0
iput v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C2:I
.line 833
add-int/lit8 v0, p2, 0xc
invoke-static {p1, v0}, Lorg/spongycastle/util/Pack;->littleEndianToInt([BI)I
move-result v0
iput v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->C3:I
.line 834
return-void
.end method
# virtual methods
.method public getAlgorithmName()Ljava/lang/String;
.registers 2
.prologue
.line 779
const-string v0, "AES"
return-object v0
.end method
.method public getBlockSize()I
.registers 2
.prologue
.line 784
const/16 v0, 0x10
return v0
.end method
.method public init(ZLorg/spongycastle/crypto/CipherParameters;)V
.registers 6
.prologue
.line 767
instance-of v0, p2, Lorg/spongycastle/crypto/params/KeyParameter;
if-eqz v0, :cond_13
.line 769
check-cast p2, Lorg/spongycastle/crypto/params/KeyParameter;
invoke-virtual {p2}, Lorg/spongycastle/crypto/params/KeyParameter;->getKey()[B
move-result-object v0
invoke-direct {p0, v0, p1}, Lorg/spongycastle/crypto/engines/AESFastEngine;->generateWorkingKey([BZ)[[I
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->WorkingKey:[[I
.line 770
iput-boolean p1, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->forEncryption:Z
.line 771
return-void
.line 774
:cond_13
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "invalid parameter passed to AES init - "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getName()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/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public processBlock([BI[BI)I
.registers 7
.prologue
.line 793
iget-object v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->WorkingKey:[[I
if-nez v0, :cond_c
.line 795
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "AES engine not initialised"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 798
:cond_c
add-int/lit8 v0, p2, 0x10
array-length v1, p1
if-le v0, v1, :cond_19
.line 800
new-instance v0, Lorg/spongycastle/crypto/DataLengthException;
const-string v1, "input buffer too short"
invoke-direct {v0, v1}, Lorg/spongycastle/crypto/DataLengthException;-><init>(Ljava/lang/String;)V
throw v0
.line 803
:cond_19
add-int/lit8 v0, p4, 0x10
array-length v1, p3
if-le v0, v1, :cond_26
.line 805
new-instance v0, Lorg/spongycastle/crypto/OutputLengthException;
const-string v1, "output buffer too short"
invoke-direct {v0, v1}, Lorg/spongycastle/crypto/OutputLengthException;-><init>(Ljava/lang/String;)V
throw v0
.line 808
:cond_26
invoke-direct {p0, p1, p2}, Lorg/spongycastle/crypto/engines/AESFastEngine;->unpackBlock([BI)V
.line 810
iget-boolean v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->forEncryption:Z
if-eqz v0, :cond_38
.line 812
iget-object v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->WorkingKey:[[I
invoke-direct {p0, v0}, Lorg/spongycastle/crypto/engines/AESFastEngine;->encryptBlock([[I)V
.line 819
:goto_32
invoke-direct {p0, p3, p4}, Lorg/spongycastle/crypto/engines/AESFastEngine;->packBlock([BI)V
.line 821
const/16 v0, 0x10
return v0
.line 816
:cond_38
iget-object v0, p0, Lorg/spongycastle/crypto/engines/AESFastEngine;->WorkingKey:[[I
invoke-direct {p0, v0}, Lorg/spongycastle/crypto/engines/AESFastEngine;->decryptBlock([[I)V
goto :goto_32
.end method
.method public reset()V
.registers 1
.prologue
.line 826
return-void
.end method