SEEDEngine.smali
.class public Lorg/spongycastle/crypto/engines/SEEDEngine;
.super Ljava/lang/Object;
.source "SEEDEngine.java"
# interfaces
.implements Lorg/spongycastle/crypto/BlockCipher;
# static fields
.field private static final KC:[I
.field private static final SS0:[I
.field private static final SS1:[I
.field private static final SS2:[I
.field private static final SS3:[I
# instance fields
.field private final BLOCK_SIZE:I
.field private forEncryption:Z
.field private wKey:[I
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
const/16 v1, 0x100
.line 17
new-array v0, v1, [I
fill-array-data v0, :array_28
sput-object v0, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS0:[I
.line 53
new-array v0, v1, [I
fill-array-data v0, :array_22c
sput-object v0, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS1:[I
.line 90
new-array v0, v1, [I
fill-array-data v0, :array_430
sput-object v0, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS2:[I
.line 128
new-array v0, v1, [I
fill-array-data v0, :array_634
sput-object v0, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS3:[I
.line 166
const/16 v0, 0x10
new-array v0, v0, [I
fill-array-data v0, :array_838
sput-object v0, Lorg/spongycastle/crypto/engines/SEEDEngine;->KC:[I
return-void
.line 17
:array_28
.array-data 4
0x2989a1a8
0x5858184
0x16c6d2d4
0x13c3d3d0
0x14445054
0x1d0d111c
0x2c8ca0ac
0x25052124
0x1d4d515c
0x3434340
0x18081018
0x1e0e121c
0x11415150
0x3cccf0fc
0xacac2c8
0x23436360
0x28082028
0x4444044
0x20002020
0x1d8d919c
0x20c0e0e0
0x22c2e2e0
0x8c8c0c8
0x17071314
0x2585a1a4
0xf8f838c
0x3030300
0x3b4b7378
0x3b8bb3b8
0x13031310
0x12c2d2d0
0x2ecee2ec
0x30407070 # 7.0008976E-10f
0xc8c808c
0x3f0f333c
0x2888a0a8
0x32023230
0x1dcdd1dc
0x36c6f2f4
0x34447074
0x2ccce0ec # 5.823E-12f
0x15859194
0xb0b0308
0x17475354
0x1c4c505c # 6.76018E-22f
0x1b4b5358
0x3d8db1bc
0x1010100
0x24042024
0x1c0c101c
0x33437370
0x18889098
0x10001010
0xcccc0cc
0x32c2f2f0
0x19c9d1d8
0x2c0c202c
0x27c7e3e4
0x32427270
0x3838380
0x1b8b9398
0x11c1d1d0
0x6868284
0x9c9c1c8
0x20406060
0x10405050
0x2383a3a0
0x2bcbe3e8
0xd0d010c
0x3686b2b4
0x1e8e929c
0xf4f434c
0x3787b3b4
0x1a4a5258
0x6c6c2c4
0x38487078
0x2686a2a4
0x12021210
0x2f8fa3ac
0x15c5d1d4
0x21416160
0x3c3c3c0
0x3484b0b4
0x1414140
0x12425250
0x3d4d717c
0xd8d818c
0x8080008
0x1f0f131c
0x19899198
0x0
0x19091118
0x4040004
0x13435350
0x37c7f3f4
0x21c1e1e0
0x3dcdf1fc
0x36467274
0x2f0f232c
0x27072324
0x3080b0b0
0xb8b8388
0xe0e020c
0x2b8ba3a8
0x2282a2a0
0x2e4e626c
0x13839390
0xd4d414c
0x29496168
0x3c4c707c
0x9090108
0xa0a0208
0x3f8fb3bc
0x2fcfe3ec
0x33c3f3f0
0x5c5c1c4
0x7878384
0x14041014
0x3ecef2fc
0x24446064
0x1eced2dc
0x2e0e222c
0xb4b4348
0x1a0a1218
0x6060204
0x21012120
0x2b4b6368
0x26466264
0x2020200
0x35c5f1f4
0x12829290
0xa8a8288
0xc0c000c
0x3383b3b0
0x3e4e727c
0x10c0d0d0
0x3a4a7278
0x7474344
0x16869294
0x25c5e1e4
0x26062224
0x808080
0x2d8da1ac
0x1fcfd3dc
0x2181a1a0
0x30003030
0x37073334
0x2e8ea2ac
0x36063234 # 1.9996778E-6f
0x15051114
0x22022220
0x38083038
0x34c4f0f4
0x2787a3a4
0x5454144
0xc4c404c
0x1818180
0x29c9e1e8
0x4848084
0x17879394
0x35053134
0xbcbc3c8
0xecec2cc
0x3c0c303c
0x31417170
0x11011110
0x7c7c3c4
0x9898188
0x35457174
0x3bcbf3f8
0x1acad2d8
0x38c8f0f8
0x14849094
0x19495158
0x2828280
0x4c4c0c4
0x3fcff3fc
0x9494148
0x39093138
0x27476364
0xc0c0c0
0xfcfc3cc
0x17c7d3d4
0x3888b0b8
0xf0f030c
0xe8e828c
0x2424240
0x23032320
0x11819190
0x2c4c606c
0x1bcbd3d8
0x2484a0a4
0x34043034
0x31c1f1f0
0x8484048
0x2c2c2c0
0x2f4f636c
0x3d0d313c
0x2d0d212c
0x404040
0x3e8eb2bc
0x3e0e323c
0x3c8cb0bc
0x1c1c1c0
0x2a8aa2a8
0x3a8ab2b8
0xe4e424c
0x15455154
0x3b0b3338
0x1cccd0dc
0x28486068
0x3f4f737c
0x1c8c909c
0x18c8d0d8
0xa4a4248
0x16465254
0x37477374
0x2080a0a0
0x2dcde1ec
0x6464244
0x3585b1b4
0x2b0b2328
0x25456164
0x3acaf2f8
0x23c3e3e0
0x3989b1b8
0x3181b1b0
0x1f8f939c
0x1e4e525c
0x39c9f1f8
0x26c6e2e4
0x3282b2b0
0x31013130 # 1.879993E-9f
0x2acae2e8
0x2d4d616c
0x1f4f535c
0x24c4e0e4
0x30c0f0f0
0xdcdc1cc
0x8888088
0x16061214
0x3a0a3238
0x18485058
0x14c4d0d4
0x22426260
0x29092128
0x7070304
0x33033330
0x28c8e0e8
0x1b0b1318
0x5050104
0x39497178
0x10809090
0x2a4a6268
0x2a0a2228
0x1a8a9298
.end array-data
.line 53
:array_22c
.array-data 4
0x38380830
-0x17d73720
0x2c2d0d21
-0x5bd9795e
-0x33f0303d # -3.769934E7f
-0x23e1312e
-0x4fcc7c4d
-0x47c77750
-0x53d0705d
0x60204060 # 4.618934E19f
0x54154551
-0x3bf8383d
0x44044440
0x6c2f4f63
0x682b4b63
0x581b4b53
-0x3ffc3c3d
0x60224262
0x30330333
-0x4bca7a4f
0x28290921
-0x5fdf7f60
-0x1fdd3d1e
-0x5bd8785d
-0x2fec3c2d
-0x6fee7e6f
0x10110111
0x4060602
0x1c1c0c10
-0x43c37350
0x34360632
0x480b4b43
-0x13d0301d
-0x77f77780
0x6c2c4c60
-0x57d77760
0x14170713
-0x3bfb3b40
0x14160612
-0xbcb3b10
-0x3ffd3d3e
0x44054541
-0x1fde3e1f
-0x2be9392e
0x3c3f0f33
0x3c3d0d31
-0x73f1717e
-0x67e77770
0x28280820
0x4c0e4e42 # 3.7304584E7f
-0xbc9390e
0x3c3e0e32 # 0.011600064f
-0x5bda7a5f
-0x7c6360f
0xc0d0d01
-0x23e0302d
-0x27e73730
0x282b0b23
0x64264662
0x783a4a72
0x24270723
0x2c2f0f23
-0xfce3e0f
0x70324272
0x40024242
-0x2beb3b30
0x40014141
-0x3fff3f40
0x70334373
0x64274763 # 1.2343001E22f
-0x53d37360
-0x77f4747d
-0xbc8380d
-0x53d2725f
-0x7fff7f80
0x1c1f0f13
-0x37f5353e
0x2c2c0c20
-0x57d5755e
0x34340430
-0x2fed3d2e
0x80b0b03
-0x13d1311e
-0x17d6361f
0x5c1d4d51
-0x6beb7b70
0x18180810
-0x7c73710
0x54174753
-0x53d1715e
0x8080800
-0x3bfa3a3f
0x10130313
-0x33f2323f # -3.7172996E7f
-0x7bf9797e
-0x47c6764f
-0x3c0300d
0x7c3d4d71
-0x3ffe3e3f # -2.0274508f
0x30310131
-0xbca3a0f
-0x77f5757e
0x682a4a62
-0x4fce7e4f
-0x2fee3e2f
0x20200020
-0x2be8382d
0x20202
0x20220222
0x4040400
0x68284860
0x70314171
0x4070703
-0x27e4342d
-0x63e2726f
-0x67e6766f
0x60214161
-0x43c1714e
-0x1bd9391e
0x58194951
-0x23e2322f
0x50114151
-0x6fef7f70
-0x23e33330
-0x67e5756e
-0x5fdc7c5d
-0x57d4745d
-0x2fef3f30
-0x7ffe7e7f
0xc0f0f03
0x44074743
0x181a0a12
-0x1fdc3c1d
-0x13d33320
-0x73f2727f
-0x43c0704d
-0x6be9796e
0x783b4b73
0x5c1c4c50
-0x5fdd7d5e
-0x5fde7e5f
0x60234363
0x20230323
0x4c0d4d41 # 3.7041412E7f
-0x37f73740 # -140067.0f
-0x63e1716e
-0x63e37370
0x383a0a32
0xc0c0c00
0x2c2e0e22
-0x47c5754e
0x6c2e4e62
-0x63e0706d
0x581a4a52
-0xfcd3d0e
-0x6fed7d6e
-0xfcc3c0d
0x48094941
0x78384870
-0x33f33340 # -3.6909824E7f
0x14150511
-0x7c4340d
0x70304070
0x74354571
0x7c3f4f73
0x34350531
0x10100010
0x30303
0x64244460
0x6c2d4d61
-0x3bf9393e
0x74344470
-0x2bea3a2f
-0x4bcb7b50
-0x17d5351e
0x8090901
0x74364672
0x18190911
-0x3c1310e
0x40004040
0x10120212
-0x1fdf3f20
-0x43c2724f
0x4050501
-0x7c5350e
0x10101
-0xfcf3f10
0x282a0a22
0x5c1e4e52
-0x57d6765f
0x54164652
0x40034343
-0x7bfa7a7f
0x14140410
-0x77f6767f
-0x67e4746d
-0x4fcf7f50
-0x1bda3a1f
0x48084840 # 139553.0f
0x78394971
-0x6be8786d
-0x3c33310
0x1c1e0e12 # 5.2296E-22f
-0x7ffd7d7e
0x20210121
-0x73f37380
0x181b0b13
0x5c1f4f53
0x74374773
0x54144450
-0x4fcd7d4e
0x1c1d0d11
0x24250521
0x4c0f4f43 # 3.7567756E7f
0x0
0x44064642
-0x13d2321f
0x58184850
0x50124252
-0x17d4341d
0x7c3e4e72
-0x27e5352e
-0x37f6363f
-0x3c2320f
0x30300030
-0x6bea7a6f
0x64254561
0x3c3c0c30
-0x4bc9794e # -1.6999073E-7f
-0x1bdb3b20
-0x47c4744d
0x7c3c4c70
0xc0e0e02
0x50104050
0x38390931
0x24260622 # 3.6000707E-17f
0x30320232
-0x7bfb7b80
0x68294961
-0x6fec7c6d # -2.9092E-29f
0x34370733
-0x1bd8381d
0x24240420
-0x5bdb7b60
-0x37f4343d
0x50134353
0x80a0a02
-0x7bf8787d
-0x27e6362f
0x4c0c4c40 # 3.677824E7f
-0x7ffc7c7d
-0x73f0707d
-0x33f1313e # -3.7436168E7f
0x383b0b33
0x480a4a42
-0x4bc8784d
.end array-data
.line 90
:array_430
.array-data 4
-0x5e57d677
-0x7e7bfa7b
-0x2d2be93a
-0x2c2fec3d
0x50541444
0x111c1d0d
-0x5f53d374
0x21242505
0x515c1d4d
0x43400343
0x10181808 # 2.9995227E-29f
0x121c1e0e
0x51501141
-0xf03c334
-0x3d37f536 # -100.02107f
0x63602343
0x20282808
0x40440444
0x20202000
-0x6e63e273
-0x1f1fdf40
-0x1d1fdd3e
-0x3f37f738
0x13141707
-0x5e5bda7b
-0x7c73f071
0x3000303
0x73783b4b
-0x4c47c475
0x13101303
-0x2d2fed3e
-0x1d13d132
0x70703040
-0x7f73f374
0x333c3f0f
-0x5f57d778
0x32303202
-0x2e23e233
-0xd0bc93a
0x70743444
-0x1f13d334
-0x6e6bea7b
0x3080b0b
0x53541747
0x505c1c4c
0x53581b4b
-0x4e43c273
0x1000101
0x20242404
0x101c1c0c
0x73703343
-0x6f67e778 # -5.9991225E-29f
0x10101000
-0x3f33f334
-0xd0fcd3e
-0x2e27e637
0x202c2c0c
-0x1c1bd839
0x72703242
-0x7c7ffc7d
-0x6c67e475
-0x2e2fee3f
-0x7d7bf97a
-0x3e37f637
0x60602040 # 6.4599915E19f
0x50501040
-0x5c5fdc7d
-0x1c17d435
0x10c0d0d
-0x4d4bc97a
-0x6d63e172
0x434c0f4f
-0x4c4bc879
0x52581a4a
-0x3d3bf93a
0x70783848
-0x5d5bd97a
0x12101202
-0x5c53d071
-0x2e2bea3b
0x61602141
-0x3c3ffc3d
-0x4f4bcb7c
0x41400141 # 12.000306f
0x52501242
0x717c3d4d
-0x7e73f273
0x80808
0x131c1f0f
-0x6e67e677
0x0
0x11181909
0x40404
0x53501343
-0xc0bc839
-0x1e1fde3f
-0xe03c233
0x72743646
0x232c2f0f
0x23242707
-0x4f4fcf80
-0x7c77f475
0x20c0e0e
-0x5c57d475
-0x5d5fdd7e
0x626c2e4e
-0x6c6fec7d
0x414c0d4d
0x61682949
0x707c3c4c
0x1080909
0x2080a0a
-0x4c43c071
-0x1c13d031
-0xc0fcc3d
-0x3e3bfa3b
-0x7c7bf879 # -7.759991E-37f
0x10141404
-0xd03c132
0x60642444
-0x2d23e132
0x222c2e0e
0x43480b4b # 200.04411f
0x12181a0a
0x2040606
0x21202101
0x63682b4b
0x62642646
0x2000202
-0xe0bca3b
-0x6d6fed7e
-0x7d77f576
0xc0c0c
-0x4c4fcc7d
0x727c3e4e
-0x2f2fef40
0x72783a4a
0x43440747
-0x6d6be97a
-0x1e1bda3b
0x22242606
-0x7f7fff80
-0x5e53d273
-0x2c23e031
-0x5e5fde7f
0x30303000
0x33343707
-0x5d53d172
0x32343606
0x11141505
0x22202202
0x30383808
-0xf0bcb3c
-0x5c5bd879
0x41440545
0x404c0c4c
-0x7e7ffe7f
-0x1e17d637
-0x7f7bfb7c
-0x6c6be879
0x31343505
-0x3c37f435 # -400.09213f
-0x3d33f132
0x303c3c0c
0x71703141
0x11101101
-0x3c3bf839
-0x7e77f677
0x71743545
-0xc07c435
-0x2d27e536
-0xf07c738
-0x6f6beb7c
0x51581949
-0x7d7ffd7e
-0x3f3bfb3c
-0xc03c031
0x41480949
0x31383909
0x63642747
-0x3f3fff40 # -6.0000916f
-0x3c33f031
-0x2c2be839
-0x4f47c778
0x30c0f0f
-0x7d73f172
0x42400242
0x23202303
-0x6e6fee7f
0x606c2c4c
-0x2c27e435
-0x5f5bdb7c
0x30343404
-0xe0fce3f
0x40480848
-0x3d3ffd3e
0x636c2f4f
0x313c3d0d
0x212c2d0d
0x40400040 # 3.0000153f
-0x4d43c172
0x323c3e0e
-0x4f43c374
-0x3e3ffe3f # -24.000856f
-0x5d57d576
-0x4d47c576
0x424c0e4e
0x51541545
0x33383b0b
-0x2f23e334
0x60682848 # 6.69148E19f
0x737c3f4f
-0x6f63e374
-0x2f27e738
0x42480a4a
0x52541646
0x73743747
-0x5f5fdf80
-0x1e13d233
0x42440646
-0x4e4bca7b
0x23282b0b
0x61642545
-0xd07c536
-0x1c1fdc3d
-0x4e47c677
-0x4e4fce7f
-0x6c63e071
0x525c1e4e
-0xe07c637
-0x1d1bd93a
-0x4d4fcd7e
0x31303101
-0x1d17d536
0x616c2d4d
0x535c1f4f
-0x1f1bdb3c
-0xf0fcf40 # -5.946827E29f
-0x3e33f233
-0x7f77f778
0x12141606
0x32383a0a
0x50581848
-0x2f2beb3c
0x62602242
0x21282909
0x3040707
0x33303303
-0x1f17d738
0x13181b0b
0x1040505
0x71783949
-0x6f6fef80
0x62682a4a
0x22282a0a
-0x6d67e576
.end array-data
.line 128
:array_634
.array-data 4
0x8303838
-0x371f17d8
0xd212c2d
-0x795d5bda
-0x303c33f1
-0x312d23e2
-0x7c4c4fcd
-0x774f47c8
-0x705c53d1
0x40606020
0x45515415
-0x383c3bf9
0x44404404
0x4f636c2f
0x4b63682b # 1.4903339E7f
0x4b53581b # 1.3850651E7f
-0x3c3c3ffd # -391.5001f
0x42626022
0x3333033
-0x7a4e4bcb
0x9212829
-0x7f5f5fe0
-0x3d1d1fde
-0x785c5bd9
-0x3c2c2fed
-0x7e6e6fef
0x1111011
0x6020406
0xc101c1c
-0x734f43c4
0x6323436
0x4b43480b # 1.2797963E7f
-0x301c13d1
-0x777f77f8
0x4c606c2c # 5.8831024E7f
-0x775f57d8
0x7131417
-0x3b3f3bfc
0x6121416
-0x3b0f0bcc
-0x3d3d3ffe
0x45414405
-0x3e1e1fdf
-0x392d2bea
0xf333c3f
0xd313c3d
-0x717d73f2
-0x776f67e8
0x8202828
0x4e424c0e # 8.1494106E8f
-0x390d0bca
0xe323c3e
-0x7a5e5bdb
-0x360e07c7
0xd010c0d
-0x302c23e1
-0x372f27e8 # -427712.75f
0xb23282b
0x46626426
0x4a72783a # 3972622.5f
0x7232427
0xf232c2f
-0x3e0e0fcf
0x42727032
0x42424002
-0x3b2f2bec
0x41414001
-0x3f3f4000 # -6.0234375f
0x43737033
0x47636427
-0x735f53d4
-0x747c77f5
-0x380c0bc9
-0x725e53d3
-0x7f7f8000
0xf131c1f
-0x353d37f6 # -6382597.0f
0xc202c2c
-0x755d57d6
0x4303434
-0x3d2d2fee
0xb03080b
-0x311d13d2
-0x361e17d7
0x4d515c1d # 2.1952968E8f
-0x7b6f6bec
0x8101818
-0x370f07c8 # -493505.75f
0x47535417 # 54100.09f
-0x715d53d2
0x8000808
-0x3a3e3bfb
0x3131013
-0x323e33f3 # -4.0642192E8f
-0x797d7bfa
-0x764e47c7
-0x300c03c1
0x4d717c3d # 2.53215696E8f
-0x3e3e3fff
0x1313031
-0x3a0e0bcb
-0x757d77f6
0x4a62682a # 3709450.5f
-0x7e4e4fcf
-0x3e2e2fef
0x202020
-0x382c2be9
0x2020002
0x2222022
0x4000404
0x48606828 # 229792.62f
0x41717031
0x7030407
-0x342c27e5 # -2.7766838E7f
-0x726e63e3
-0x766e67e7
0x41616021
-0x714d43c2
-0x391d1bda
0x49515819
-0x322e23e3
0x41515011
-0x7f6f6ff0
-0x332f23e4
-0x756d67e6
-0x7c5c5fdd
-0x745c57d5
-0x3f2f2ff0
-0x7e7e7fff
0xf030c0f
0x47434407
0xa12181a
-0x3c1c1fdd
-0x331f13d4
-0x727e73f3
-0x704c43c1
-0x796d6bea
0x4b73783b # 1.5956027E7f
0x4c505c1c # 5.4620272E7f
-0x7d5d5fde
-0x7e5e5fdf
0x43636023
0x3232023
0x4d414c0d # 2.02686672E8f
-0x373f37f8 # -394816.25f
-0x716d63e2
-0x736f63e4
0xa32383a
0xc000c0c
0xe222c2e
-0x754d47c6
0x4e626c2e # 9.4968512E8f
-0x706c63e1
0x4a52581a # 3446278.5f
-0x3d0d0fce
-0x7d6d6fee
-0x3c0c0fcd
0x49414809
0x48707838
-0x333f33f4
0x5111415
-0x340c07c5 # -3.197759E7f
0x40707030
0x45717435
0x4f737c3f # 4.08500608E9f
0x5313435
0x101010
0x3030003
0x44606424
0x4d616c2d # 2.36372688E8f
-0x393d3bfa
0x44707434
-0x3a2e2beb
-0x7b4f4bcc
-0x351d17d6 # -7435285.0f
0x9010809
0x46727436
0x9111819
-0x310d03c2
0x40404000 # 3.0039062f
0x2121012
-0x3f1f1fe0
-0x724e43c3
0x5010405
-0x350d07c6 # -7961629.0f
0x1010001
-0x3f0f0fd0
0xa22282a
0x4e525c1e # 8.8231309E8f
-0x765e57d7
0x46525416
0x43434003
-0x7a7e7bfb
0x4101414
-0x767e77f7
-0x746c67e5
-0x7f4f4fd0
-0x3a1e1bdb
0x48404808 # 196896.12f
0x49717839
-0x786c6be9
-0x330f03c4
0xe121c1e
-0x7d7d7ffe
0x1212021
-0x737f73f4
0xb13181b
0x4f535c1f
0x47737437
0x44505414
-0x7d4d4fce
0xd111c1d
0x5212425
0x4f434c0f
0x0
0x46424406
-0x321e13d3
0x48505818 # 213344.38f
0x42525012
-0x341c17d5 # -2.9872214E7f
0x4e727c3e
-0x352d27e6 # -6908941.0f
-0x363e37f7
-0x320e03c3
0x303030
-0x7a6e6beb
0x45616425
0xc303c3c
-0x794d4bca
-0x3b1f1bdc
-0x744c47c5
0x4c707c3c # 6.3041776E7f
0xe020c0e
0x40505010
0x9313839
0x6222426
0x2323032
-0x7b7f7bfc
0x49616829
-0x7c6c6fed
0x7333437
-0x381c1bd9
0x4202424
-0x7b5f5bdc
-0x343c37f5 # -2.5661462E7f
0x43535013
0xa02080a
-0x787c7bf9
-0x362e27e7
0x4c404c0c # 5.040952E7f
-0x7c7c7ffd
-0x707c73f1
-0x313d33f2
0xb33383b
0x4a42480a # 3183106.5f
-0x784c4bc9
.end array-data
.line 166
:array_838
.array-data 4
-0x61c88647
0x3c6ef373 # 0.01458441f
0x78dde6e6
-0xe443234
-0x1c886467
-0x3910c8cd
-0x72219199
0x1bbcdccf
0x3779b99e
0x6ef3733c
-0x22191988
-0x4432330f
0x779b99e3
-0x10c8cc3a
-0x21919873
-0x432330e5
.end array-data
.end method
.method public constructor <init>()V
.registers 2
.prologue
.line 12
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 15
const/16 v0, 0x10
iput v0, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->BLOCK_SIZE:I
return-void
.end method
.method private F(IIJ)J
.registers 12
.prologue
const/16 v3, 0x20
.line 329
shr-long v0, p3, v3
long-to-int v0, v0
.line 330
long-to-int v1, p3
.line 331
invoke-direct {p0, v0, p1, v1, p2}, Lorg/spongycastle/crypto/engines/SEEDEngine;->phaseCalc2(IIII)I
move-result v2
.line 332
invoke-direct {p0, v0, p1, v1, p2}, Lorg/spongycastle/crypto/engines/SEEDEngine;->phaseCalc1(IIII)I
move-result v0
add-int/2addr v0, v2
.line 334
int-to-long v0, v0
shl-long/2addr v0, v3
int-to-long v2, v2
const-wide v4, 0xffffffffL
and-long/2addr v2, v4
or-long/2addr v0, v2
return-wide v0
.end method
.method private G(I)I
.registers 5
.prologue
.line 324
sget-object v0, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS0:[I
and-int/lit16 v1, p1, 0xff
aget v0, v0, v1
sget-object v1, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS1:[I
shr-int/lit8 v2, p1, 0x8
and-int/lit16 v2, v2, 0xff
aget v1, v1, v2
xor-int/2addr v0, v1
sget-object v1, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS2:[I
shr-int/lit8 v2, p1, 0x10
and-int/lit16 v2, v2, 0xff
aget v1, v1, v2
xor-int/2addr v0, v1
sget-object v1, Lorg/spongycastle/crypto/engines/SEEDEngine;->SS3:[I
ushr-int/lit8 v2, p1, 0x18
aget v1, v1, v2
xor-int/2addr v0, v1
return v0
.end method
.method private bytesToLong([BI)J
.registers 9
.prologue
.line 301
const-wide/16 v2, 0x0
.line 303
const/4 v0, 0x0
:goto_3
const/4 v1, 0x7
if-gt v0, v1, :cond_14
.line 305
const/16 v1, 0x8
shl-long/2addr v2, v1
add-int v1, v0, p2
aget-byte v1, p1, v1
and-int/lit16 v1, v1, 0xff
int-to-long v4, v1
add-long/2addr v2, v4
.line 303
add-int/lit8 v0, v0, 0x1
goto :goto_3
.line 308
:cond_14
return-wide v2
.end method
.method private createWorkingKey([B)[I
.registers 16
.prologue
const/4 v0, 0x0
.line 246
const/16 v1, 0x20
new-array v9, v1, [I
.line 247
invoke-direct {p0, p1, v0}, Lorg/spongycastle/crypto/engines/SEEDEngine;->bytesToLong([BI)J
move-result-wide v6
.line 248
const/16 v1, 0x8
invoke-direct {p0, p1, v1}, Lorg/spongycastle/crypto/engines/SEEDEngine;->bytesToLong([BI)J
move-result-wide v4
.line 250
invoke-direct {p0, v6, v7}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW0(J)I
move-result v8
.line 251
invoke-direct {p0, v6, v7}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW1(J)I
move-result v3
.line 252
invoke-direct {p0, v4, v5}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW0(J)I
move-result v2
.line 253
invoke-direct {p0, v4, v5}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW1(J)I
move-result v1
move v13, v0
move v0, v1
move v1, v2
move v2, v3
move v3, v8
move v8, v13
.line 255
:goto_25
const/16 v10, 0x10
if-ge v8, v10, :cond_69
.line 257
mul-int/lit8 v10, v8, 0x2
add-int v11, v3, v1
sget-object v12, Lorg/spongycastle/crypto/engines/SEEDEngine;->KC:[I
aget v12, v12, v8
sub-int/2addr v11, v12
invoke-direct {p0, v11}, Lorg/spongycastle/crypto/engines/SEEDEngine;->G(I)I
move-result v11
aput v11, v9, v10
.line 258
mul-int/lit8 v10, v8, 0x2
add-int/lit8 v10, v10, 0x1
sub-int v11, v2, v0
sget-object v12, Lorg/spongycastle/crypto/engines/SEEDEngine;->KC:[I
aget v12, v12, v8
add-int/2addr v11, v12
invoke-direct {p0, v11}, Lorg/spongycastle/crypto/engines/SEEDEngine;->G(I)I
move-result v11
aput v11, v9, v10
.line 260
rem-int/lit8 v10, v8, 0x2
if-nez v10, :cond_5c
.line 262
invoke-direct {p0, v6, v7}, Lorg/spongycastle/crypto/engines/SEEDEngine;->rotateRight8(J)J
move-result-wide v6
.line 263
invoke-direct {p0, v6, v7}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW0(J)I
move-result v3
.line 264
invoke-direct {p0, v6, v7}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW1(J)I
move-result v2
.line 255
:goto_59
add-int/lit8 v8, v8, 0x1
goto :goto_25
.line 268
:cond_5c
invoke-direct {p0, v4, v5}, Lorg/spongycastle/crypto/engines/SEEDEngine;->rotateLeft8(J)J
move-result-wide v4
.line 269
invoke-direct {p0, v4, v5}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW0(J)I
move-result v1
.line 270
invoke-direct {p0, v4, v5}, Lorg/spongycastle/crypto/engines/SEEDEngine;->extractW1(J)I
move-result v0
goto :goto_59
.line 274
:cond_69
return-object v9
.end method
.method private extractW0(J)I
.registers 6
.prologue
.line 284
const/16 v0, 0x20
shr-long v0, p1, v0
long-to-int v0, v0
return v0
.end method
.method private extractW1(J)I
.registers 4
.prologue
.line 279
long-to-int v0, p1
return v0
.end method
.method private longToBytes([BIJ)V
.registers 10
.prologue
.line 316
const/4 v0, 0x0
:goto_1
const/16 v1, 0x8
if-ge v0, v1, :cond_14
.line 318
add-int v1, v0, p2
rsub-int/lit8 v2, v0, 0x7
shl-int/lit8 v2, v2, 0x3
shr-long v2, p3, v2
long-to-int v2, v2
int-to-byte v2, v2
aput-byte v2, p1, v1
.line 316
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 320
:cond_14
return-void
.end method
.method private phaseCalc1(IIII)I
.registers 7
.prologue
.line 339
xor-int v0, p1, p2
xor-int v1, p3, p4
xor-int/2addr v0, v1
invoke-direct {p0, v0}, Lorg/spongycastle/crypto/engines/SEEDEngine;->G(I)I
move-result v0
xor-int v1, p1, p2
add-int/2addr v0, v1
invoke-direct {p0, v0}, Lorg/spongycastle/crypto/engines/SEEDEngine;->G(I)I
move-result v0
return v0
.end method
.method private phaseCalc2(IIII)I
.registers 8
.prologue
.line 344
invoke-direct {p0, p1, p2, p3, p4}, Lorg/spongycastle/crypto/engines/SEEDEngine;->phaseCalc1(IIII)I
move-result v0
xor-int v1, p1, p2
xor-int v2, p3, p4
xor-int/2addr v1, v2
invoke-direct {p0, v1}, Lorg/spongycastle/crypto/engines/SEEDEngine;->G(I)I
move-result v1
add-int/2addr v0, v1
invoke-direct {p0, v0}, Lorg/spongycastle/crypto/engines/SEEDEngine;->G(I)I
move-result v0
return v0
.end method
.method private rotateLeft8(J)J
.registers 8
.prologue
.line 289
const/16 v0, 0x8
shl-long v0, p1, v0
const/16 v2, 0x38
ushr-long v2, p1, v2
or-long/2addr v0, v2
return-wide v0
.end method
.method private rotateRight8(J)J
.registers 8
.prologue
.line 294
const/16 v0, 0x8
ushr-long v0, p1, v0
const/16 v2, 0x38
shl-long v2, p1, v2
or-long/2addr v0, v2
return-wide v0
.end method
# virtual methods
.method public getAlgorithmName()Ljava/lang/String;
.registers 2
.prologue
.line 185
const-string v0, "SEED"
return-object v0
.end method
.method public getBlockSize()I
.registers 2
.prologue
.line 190
const/16 v0, 0x10
return v0
.end method
.method public init(ZLorg/spongycastle/crypto/CipherParameters;)V
.registers 4
.prologue
.line 179
iput-boolean p1, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->forEncryption:Z
.line 180
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}, Lorg/spongycastle/crypto/engines/SEEDEngine;->createWorkingKey([B)[I
move-result-object v0
iput-object v0, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->wKey:[I
.line 181
return-void
.end method
.method public processBlock([BI[BI)I
.registers 16
.prologue
const/16 v8, 0x10
.line 195
iget-object v0, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->wKey:[I
if-nez v0, :cond_e
.line 197
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "SEED engine not initialised"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 200
:cond_e
add-int/lit8 v0, p2, 0x10
array-length v1, p1
if-le v0, v1, :cond_1b
.line 202
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 205
:cond_1b
add-int/lit8 v0, p4, 0x10
array-length v1, p3
if-le v0, v1, :cond_28
.line 207
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 210
:cond_28
invoke-direct {p0, p1, p2}, Lorg/spongycastle/crypto/engines/SEEDEngine;->bytesToLong([BI)J
move-result-wide v2
.line 211
add-int/lit8 v0, p2, 0x8
invoke-direct {p0, p1, v0}, Lorg/spongycastle/crypto/engines/SEEDEngine;->bytesToLong([BI)J
move-result-wide v0
.line 213
iget-boolean v4, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->forEncryption:Z
if-eqz v4, :cond_52
.line 215
const/4 v4, 0x0
:goto_37
if-ge v4, v8, :cond_6f
.line 219
iget-object v5, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->wKey:[I
mul-int/lit8 v6, v4, 0x2
aget v5, v5, v6
iget-object v6, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->wKey:[I
mul-int/lit8 v7, v4, 0x2
add-int/lit8 v7, v7, 0x1
aget v6, v6, v7
invoke-direct {p0, v5, v6, v0, v1}, Lorg/spongycastle/crypto/engines/SEEDEngine;->F(IIJ)J
move-result-wide v6
xor-long/2addr v2, v6
.line 215
add-int/lit8 v4, v4, 0x1
move-wide v9, v2
move-wide v2, v0
move-wide v0, v9
goto :goto_37
.line 225
:cond_52
const/16 v4, 0xf
:goto_54
if-ltz v4, :cond_6f
.line 229
iget-object v5, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->wKey:[I
mul-int/lit8 v6, v4, 0x2
aget v5, v5, v6
iget-object v6, p0, Lorg/spongycastle/crypto/engines/SEEDEngine;->wKey:[I
mul-int/lit8 v7, v4, 0x2
add-int/lit8 v7, v7, 0x1
aget v6, v6, v7
invoke-direct {p0, v5, v6, v0, v1}, Lorg/spongycastle/crypto/engines/SEEDEngine;->F(IIJ)J
move-result-wide v6
xor-long/2addr v2, v6
.line 225
add-int/lit8 v4, v4, -0x1
move-wide v9, v2
move-wide v2, v0
move-wide v0, v9
goto :goto_54
.line 234
:cond_6f
invoke-direct {p0, p3, p4, v0, v1}, Lorg/spongycastle/crypto/engines/SEEDEngine;->longToBytes([BIJ)V
.line 235
add-int/lit8 v0, p4, 0x8
invoke-direct {p0, p3, v0, v2, v3}, Lorg/spongycastle/crypto/engines/SEEDEngine;->longToBytes([BIJ)V
.line 237
return v8
.end method
.method public reset()V
.registers 1
.prologue
.line 242
return-void
.end method