1 // https://rawgit.com/tresorit/asmcrypto.js/598a1098504f1b2d0e615bc51dd8404afd2d338b/asmcrypto.js
2 // Provides PBKDF2 functionality
3 // It's faster than CryptoJS
4 // Couldn't get SJCL working as desired
7 (function(exports
, global
) {
8 global
["asmCrypto"] = exports
;
10 function string_to_bytes(str
) {
11 var i
, len
= str
.length
, arr
= new Uint8Array(len
);
12 for (i
= 0; i
< len
; i
+= 1) {
13 arr
[i
] = str
.charCodeAt(i
);
17 function hex_to_bytes(str
) {
18 var arr
= [], len
= str
.length
, i
;
23 for (i
= 0; i
< len
; i
+= 2) {
24 arr
.push(parseInt(str
.substr(i
, 2), 16));
26 return new Uint8Array(arr
);
28 function base64_to_bytes(str
) {
29 return string_to_bytes(atob(str
));
31 function bytes_to_string(arr
) {
33 for (var i
= 0; i
< arr
.length
; i
++) str
+= String
.fromCharCode(arr
[i
]);
36 function bytes_to_hex(arr
) {
37 var sz
= (arr
.byteLength
|| arr
.length
) / arr
.length
, str
= "";
38 for (var i
= 0; i
< arr
.length
; i
++) {
39 var h
= arr
[i
].toString(16);
40 if (h
.length
< 2 * sz
) str
+= "00000000000000".substr(0, 2 * sz
- h
.length
);
45 function bytes_to_base64(arr
) {
46 return btoa(bytes_to_string(arr
));
48 function pow2_ceil(a
) {
58 function is_number(a
) {
59 return typeof a
=== "number";
61 function is_string(a
) {
62 return typeof a
=== "string";
64 function is_buffer(a
) {
65 return a
instanceof ArrayBuffer
;
67 function is_bytes(a
) {
68 return a
instanceof Uint8Array
;
70 function is_typed_array(a
) {
71 return a
instanceof Int8Array
|| a
instanceof Uint8Array
|| a
instanceof Int16Array
|| a
instanceof Uint16Array
|| a
instanceof Int32Array
|| a
instanceof Uint32Array
|| a
instanceof Float32Array
|| a
instanceof Float64Array
;
73 function IllegalStateError() {
74 Error
.apply(this, arguments
);
76 IllegalStateError
.prototype = new Error();
77 function IllegalArgumentError() {
78 Error
.apply(this, arguments
);
80 IllegalArgumentError
.prototype = new Error();
81 function SecurityError() {
82 Error
.apply(this, arguments
);
84 IllegalArgumentError
.prototype = new Error();
85 var _aes_tables
= [ 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22, 82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125, 198, 248, 238, 246, 255, 214, 222, 145, 96, 2, 206, 86, 231, 181, 77, 236, 143, 31, 137, 250, 239, 178, 142, 251, 65, 179, 95, 69, 35, 83, 228, 155, 117, 225, 61, 76, 108, 126, 245, 131, 104, 81, 209, 249, 226, 171, 98, 42, 8, 149, 70, 157, 48, 55, 10, 47, 14, 36, 27, 223, 205, 78, 127, 234, 18, 29, 88, 52, 54, 220, 180, 91, 164, 118, 183, 125, 82, 221, 94, 19, 166, 185, 0, 193, 64, 227, 121, 182, 212, 141, 103, 114, 148, 152, 176, 133, 187, 197, 79, 237, 134, 154, 102, 17, 138, 233, 4, 254, 160, 120, 37, 75, 162, 93, 128, 5, 63, 33, 112, 241, 99, 119, 175, 66, 32, 229, 253, 191, 129, 24, 38, 195, 190, 53, 136, 46, 147, 85, 252, 122, 200, 186, 50, 230, 192, 25, 158, 163, 68, 84, 59, 11, 140, 199, 107, 40, 167, 188, 22, 173, 219, 100, 116, 20, 146, 12, 72, 184, 159, 189, 67, 196, 57, 49, 211, 242, 213, 139, 110, 218, 1, 177, 156, 73, 216, 172, 243, 207, 202, 244, 71, 16, 111, 240, 74, 92, 56, 87, 115, 151, 203, 161, 232, 62, 150, 97, 13, 15, 224, 124, 113, 204, 144, 6, 247, 28, 194, 106, 174, 105, 23, 153, 58, 39, 217, 235, 43, 34, 210, 169, 7, 51, 45, 60, 21, 201, 135, 170, 80, 165, 3, 89, 9, 26, 101, 215, 132, 208, 130, 41, 90, 30, 123, 168, 109, 44, 165, 132, 153, 141, 13, 189, 177, 84, 80, 3, 169, 125, 25, 98, 230, 154, 69, 157, 64, 135, 21, 235, 201, 11, 236, 103, 253, 234, 191, 247, 150, 91, 194, 28, 174, 106, 90, 65, 2, 79, 92, 244, 52, 8, 147, 115, 83, 63, 12, 82, 101, 94, 40, 161, 15, 181, 9, 54, 155, 61, 38, 105, 205, 159, 27, 158, 116, 46, 45, 178, 238, 251, 246, 77, 97, 206, 123, 62, 113, 151, 245, 104, 0, 44, 96, 31, 200, 237, 190, 70, 217, 75, 222, 212, 232, 74, 107, 42, 229, 22, 197, 215, 85, 148, 207, 16, 6, 129, 240, 68, 186, 227, 243, 254, 192, 138, 173, 188, 72, 4, 223, 193, 117, 99, 48, 26, 14, 109, 76, 20, 53, 47, 225, 162, 204, 57, 87, 242, 130, 71, 172, 231, 43, 149, 160, 152, 209, 127, 102, 126, 171, 131, 202, 41, 211, 60, 121, 226, 29, 118, 59, 86, 78, 30, 219, 10, 108, 228, 93, 110, 239, 166, 168, 164, 55, 139, 50, 67, 89, 183, 140, 100, 210, 224, 180, 250, 7, 37, 175, 142, 233, 24, 213, 136, 111, 114, 36, 241, 199, 81, 35, 124, 156, 33, 221, 220, 134, 133, 144, 66, 196, 170, 216, 5, 1, 18, 163, 95, 249, 208, 145, 88, 39, 185, 56, 19, 179, 51, 187, 112, 137, 167, 182, 34, 146, 32, 73, 255, 120, 122, 143, 248, 128, 23, 218, 49, 198, 184, 195, 176, 119, 17, 203, 252, 214, 58, 0, 9, 18, 27, 36, 45, 54, 63, 72, 65, 90, 83, 108, 101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209, 202, 195, 252, 245, 238, 231, 59, 50, 41, 32, 31, 22, 13, 4, 115, 122, 97, 104, 87, 94, 69, 76, 171, 162, 185, 176, 143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118, 127, 100, 109, 82, 91, 64, 73, 62, 55, 44, 37, 26, 19, 8, 1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188, 181, 138, 131, 152, 145, 77, 68, 95, 86, 105, 96, 123, 114, 5, 12, 23, 30, 33, 40, 51, 58, 221, 212, 207, 198, 249, 240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229, 254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146, 155, 124, 117, 110, 103, 88, 81, 74, 67, 52, 61, 38, 47, 16, 25, 2, 11, 215, 222, 197, 204, 243, 250, 225, 232, 159, 150, 141, 132, 187, 178, 169, 160, 71, 78, 85, 92, 99, 106, 113, 120, 15, 6, 29, 20, 43, 34, 57, 48, 154, 147, 136, 129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 255, 228, 237, 10, 3, 24, 17, 46, 39, 60, 53, 66, 75, 80, 89, 102, 111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224, 251, 242, 205, 196, 223, 214, 49, 56, 35, 42, 21, 28, 7, 14, 121, 112, 107, 98, 93, 84, 79, 70, 0, 11, 22, 29, 44, 39, 58, 49, 88, 83, 78, 69, 116, 127, 98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227, 254, 245, 196, 207, 210, 217, 123, 112, 109, 102, 87, 92, 65, 74, 35, 40, 53, 62, 15, 4, 25, 18, 203, 192, 221, 214, 231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246, 253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137, 148, 159, 70, 77, 80, 91, 106, 97, 124, 119, 30, 21, 8, 3, 50, 57, 36, 47, 141, 134, 155, 144, 161, 170, 183, 188, 213, 222, 195, 200, 249, 242, 239, 228, 61, 54, 43, 32, 17, 26, 7, 12, 101, 110, 115, 120, 73, 66, 95, 84, 247, 252, 225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149, 158, 71, 76, 81, 90, 107, 96, 125, 118, 31, 20, 9, 2, 51, 56, 37, 46, 140, 135, 154, 145, 160, 171, 182, 189, 212, 223, 194, 201, 248, 243, 238, 229, 60, 55, 42, 33, 16, 27, 6, 13, 100, 111, 114, 121, 72, 67, 94, 85, 1, 10, 23, 28, 45, 38, 59, 48, 89, 82, 79, 68, 117, 126, 99, 104, 177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 255, 244, 197, 206, 211, 216, 122, 113, 108, 103, 86, 93, 64, 75, 34, 41, 52, 63, 14, 5, 24, 19, 202, 193, 220, 215, 230, 237, 240, 251, 146, 153, 132, 143, 190, 181, 168, 163, 0, 13, 26, 23, 52, 57, 46, 35, 104, 101, 114, 127, 92, 81, 70, 75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181, 162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149, 152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124, 95, 82, 69, 72, 3, 14, 25, 20, 55, 58, 45, 32, 109, 96, 119, 122, 89, 84, 67, 78, 5, 8, 31, 18, 49, 60, 43, 38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207, 194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245, 190, 179, 164, 169, 138, 135, 144, 157, 6, 11, 28, 17, 50, 63, 40, 37, 110, 99, 116, 121, 90, 87, 64, 77, 218, 215, 192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156, 145, 10, 7, 16, 29, 62, 51, 36, 41, 98, 111, 120, 117, 86, 91, 76, 65, 97, 108, 123, 118, 85, 88, 79, 66, 9, 4, 19, 30, 61, 48, 39, 42, 177, 188, 171, 166, 133, 136, 159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173, 160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252, 103, 106, 125, 112, 83, 94, 73, 68, 15, 2, 21, 24, 59, 54, 33, 44, 12, 1, 22, 27, 56, 53, 34, 47, 100, 105, 126, 115, 80, 93, 74, 71, 220, 209, 198, 203, 232, 229, 242, 255, 180, 185, 174, 163, 128, 141, 154, 151, 0, 14, 28, 18, 56, 54, 36, 42, 112, 126, 108, 98, 72, 70, 84, 90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158, 140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 255, 241, 171, 165, 183, 185, 147, 157, 143, 129, 59, 53, 39, 41, 3, 13, 31, 17, 75, 69, 87, 89, 115, 125, 111, 97, 173, 163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235, 249, 247, 77, 67, 81, 95, 117, 123, 105, 103, 61, 51, 33, 47, 5, 11, 25, 23, 118, 120, 106, 100, 78, 64, 82, 92, 6, 8, 26, 20, 62, 48, 34, 44, 150, 152, 138, 132, 174, 160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204, 65, 79, 93, 83, 121, 119, 101, 107, 49, 63, 45, 35, 9, 7, 21, 27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195, 233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234, 228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104, 66, 76, 94, 80, 10, 4, 22, 24, 50, 60, 46, 32, 236, 226, 240, 254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182, 12, 2, 16, 30, 52, 58, 40, 38, 124, 114, 96, 110, 68, 74, 88, 86, 55, 57, 43, 37, 15, 1, 19, 29, 71, 73, 91, 85, 127, 113, 99, 109, 215, 217, 203, 197, 239, 225, 243, 253, 167, 169, 187, 181, 159, 145, 131, 141 ];
86 var _aes_heap_start
= 2048;
87 function _aes_asm(stdlib
, foreign
, buffer
) {
89 var S0
= 0, S1
= 0, S2
= 0, S3
= 0, S4
= 0, S5
= 0, S6
= 0, S7
= 0, S8
= 0, S9
= 0, SA
= 0, SB
= 0, SC
= 0, SD
= 0, SE
= 0, SF
= 0;
91 var R00
= 0, R01
= 0, R02
= 0, R03
= 0, R04
= 0, R05
= 0, R06
= 0, R07
= 0, R08
= 0, R09
= 0, R0A
= 0, R0B
= 0, R0C
= 0, R0D
= 0, R0E
= 0, R0F
= 0, R10
= 0, R11
= 0, R12
= 0, R13
= 0, R14
= 0, R15
= 0, R16
= 0, R17
= 0, R18
= 0, R19
= 0, R1A
= 0, R1B
= 0, R1C
= 0, R1D
= 0, R1E
= 0, R1F
= 0, R20
= 0, R21
= 0, R22
= 0, R23
= 0, R24
= 0, R25
= 0, R26
= 0, R27
= 0, R28
= 0, R29
= 0, R2A
= 0, R2B
= 0, R2C
= 0, R2D
= 0, R2E
= 0, R2F
= 0, R30
= 0, R31
= 0, R32
= 0, R33
= 0, R34
= 0, R35
= 0, R36
= 0, R37
= 0, R38
= 0, R39
= 0, R3A
= 0, R3B
= 0, R3C
= 0, R3D
= 0, R3E
= 0, R3F
= 0, R40
= 0, R41
= 0, R42
= 0, R43
= 0, R44
= 0, R45
= 0, R46
= 0, R47
= 0, R48
= 0, R49
= 0, R4A
= 0, R4B
= 0, R4C
= 0, R4D
= 0, R4E
= 0, R4F
= 0, R50
= 0, R51
= 0, R52
= 0, R53
= 0, R54
= 0, R55
= 0, R56
= 0, R57
= 0, R58
= 0, R59
= 0, R5A
= 0, R5B
= 0, R5C
= 0, R5D
= 0, R5E
= 0, R5F
= 0, R60
= 0, R61
= 0, R62
= 0, R63
= 0, R64
= 0, R65
= 0, R66
= 0, R67
= 0, R68
= 0, R69
= 0, R6A
= 0, R6B
= 0, R6C
= 0, R6D
= 0, R6E
= 0, R6F
= 0, R70
= 0, R71
= 0, R72
= 0, R73
= 0, R74
= 0, R75
= 0, R76
= 0, R77
= 0, R78
= 0, R79
= 0, R7A
= 0, R7B
= 0, R7C
= 0, R7D
= 0, R7E
= 0, R7F
= 0, R80
= 0, R81
= 0, R82
= 0, R83
= 0, R84
= 0, R85
= 0, R86
= 0, R87
= 0, R88
= 0, R89
= 0, R8A
= 0, R8B
= 0, R8C
= 0, R8D
= 0, R8E
= 0, R8F
= 0, R90
= 0, R91
= 0, R92
= 0, R93
= 0, R94
= 0, R95
= 0, R96
= 0, R97
= 0, R98
= 0, R99
= 0, R9A
= 0, R9B
= 0, R9C
= 0, R9D
= 0, R9E
= 0, R9F
= 0, RA0
= 0, RA1
= 0, RA2
= 0, RA3
= 0, RA4
= 0, RA5
= 0, RA6
= 0, RA7
= 0, RA8
= 0, RA9
= 0, RAA
= 0, RAB
= 0, RAC
= 0, RAD
= 0, RAE
= 0, RAF
= 0, RB0
= 0, RB1
= 0, RB2
= 0, RB3
= 0, RB4
= 0, RB5
= 0, RB6
= 0, RB7
= 0, RB8
= 0, RB9
= 0, RBA
= 0, RBB
= 0, RBC
= 0, RBD
= 0, RBE
= 0, RBF
= 0, RC0
= 0, RC1
= 0, RC2
= 0, RC3
= 0, RC4
= 0, RC5
= 0, RC6
= 0, RC7
= 0, RC8
= 0, RC9
= 0, RCA
= 0, RCB
= 0, RCC
= 0, RCD
= 0, RCE
= 0, RCF
= 0, RD0
= 0, RD1
= 0, RD2
= 0, RD3
= 0, RD4
= 0, RD5
= 0, RD6
= 0, RD7
= 0, RD8
= 0, RD9
= 0, RDA
= 0, RDB
= 0, RDC
= 0, RDD
= 0, RDE
= 0, RDF
= 0, RE0
= 0, RE1
= 0, RE2
= 0, RE3
= 0, RE4
= 0, RE5
= 0, RE6
= 0, RE7
= 0, RE8
= 0, RE9
= 0, REA
= 0, REB
= 0, REC
= 0, RED
= 0, REE
= 0, REF
= 0;
92 var HEAP
= new stdlib
.Uint8Array(buffer
);
93 function _expand_key_128() {
95 R10
= R00
^ HEAP
[sbox
| R0D
] ^ 1;
96 R11
= R01
^ HEAP
[sbox
| R0E
];
97 R12
= R02
^ HEAP
[sbox
| R0F
];
98 R13
= R03
^ HEAP
[sbox
| R0C
];
111 R20
= R10
^ HEAP
[sbox
| R1D
] ^ 2;
112 R21
= R11
^ HEAP
[sbox
| R1E
];
113 R22
= R12
^ HEAP
[sbox
| R1F
];
114 R23
= R13
^ HEAP
[sbox
| R1C
];
127 R30
= R20
^ HEAP
[sbox
| R2D
] ^ 4;
128 R31
= R21
^ HEAP
[sbox
| R2E
];
129 R32
= R22
^ HEAP
[sbox
| R2F
];
130 R33
= R23
^ HEAP
[sbox
| R2C
];
143 R40
= R30
^ HEAP
[sbox
| R3D
] ^ 8;
144 R41
= R31
^ HEAP
[sbox
| R3E
];
145 R42
= R32
^ HEAP
[sbox
| R3F
];
146 R43
= R33
^ HEAP
[sbox
| R3C
];
159 R50
= R40
^ HEAP
[sbox
| R4D
] ^ 16;
160 R51
= R41
^ HEAP
[sbox
| R4E
];
161 R52
= R42
^ HEAP
[sbox
| R4F
];
162 R53
= R43
^ HEAP
[sbox
| R4C
];
175 R60
= R50
^ HEAP
[sbox
| R5D
] ^ 32;
176 R61
= R51
^ HEAP
[sbox
| R5E
];
177 R62
= R52
^ HEAP
[sbox
| R5F
];
178 R63
= R53
^ HEAP
[sbox
| R5C
];
191 R70
= R60
^ HEAP
[sbox
| R6D
] ^ 64;
192 R71
= R61
^ HEAP
[sbox
| R6E
];
193 R72
= R62
^ HEAP
[sbox
| R6F
];
194 R73
= R63
^ HEAP
[sbox
| R6C
];
207 R80
= R70
^ HEAP
[sbox
| R7D
] ^ 128;
208 R81
= R71
^ HEAP
[sbox
| R7E
];
209 R82
= R72
^ HEAP
[sbox
| R7F
];
210 R83
= R73
^ HEAP
[sbox
| R7C
];
223 R90
= R80
^ HEAP
[sbox
| R8D
] ^ 27;
224 R91
= R81
^ HEAP
[sbox
| R8E
];
225 R92
= R82
^ HEAP
[sbox
| R8F
];
226 R93
= R83
^ HEAP
[sbox
| R8C
];
239 RA0
= R90
^ HEAP
[sbox
| R9D
] ^ 54;
240 RA1
= R91
^ HEAP
[sbox
| R9E
];
241 RA2
= R92
^ HEAP
[sbox
| R9F
];
242 RA3
= R93
^ HEAP
[sbox
| R9C
];
256 function _expand_key_256() {
258 R20
= R00
^ HEAP
[sbox
| R1D
] ^ 1;
259 R21
= R01
^ HEAP
[sbox
| R1E
];
260 R22
= R02
^ HEAP
[sbox
| R1F
];
261 R23
= R03
^ HEAP
[sbox
| R1C
];
274 R30
= R10
^ HEAP
[sbox
| R2C
];
275 R31
= R11
^ HEAP
[sbox
| R2D
];
276 R32
= R12
^ HEAP
[sbox
| R2E
];
277 R33
= R13
^ HEAP
[sbox
| R2F
];
290 R40
= R20
^ HEAP
[sbox
| R3D
] ^ 2;
291 R41
= R21
^ HEAP
[sbox
| R3E
];
292 R42
= R22
^ HEAP
[sbox
| R3F
];
293 R43
= R23
^ HEAP
[sbox
| R3C
];
306 R50
= R30
^ HEAP
[sbox
| R4C
];
307 R51
= R31
^ HEAP
[sbox
| R4D
];
308 R52
= R32
^ HEAP
[sbox
| R4E
];
309 R53
= R33
^ HEAP
[sbox
| R4F
];
322 R60
= R40
^ HEAP
[sbox
| R5D
] ^ 4;
323 R61
= R41
^ HEAP
[sbox
| R5E
];
324 R62
= R42
^ HEAP
[sbox
| R5F
];
325 R63
= R43
^ HEAP
[sbox
| R5C
];
338 R70
= R50
^ HEAP
[sbox
| R6C
];
339 R71
= R51
^ HEAP
[sbox
| R6D
];
340 R72
= R52
^ HEAP
[sbox
| R6E
];
341 R73
= R53
^ HEAP
[sbox
| R6F
];
354 R80
= R60
^ HEAP
[sbox
| R7D
] ^ 8;
355 R81
= R61
^ HEAP
[sbox
| R7E
];
356 R82
= R62
^ HEAP
[sbox
| R7F
];
357 R83
= R63
^ HEAP
[sbox
| R7C
];
370 R90
= R70
^ HEAP
[sbox
| R8C
];
371 R91
= R71
^ HEAP
[sbox
| R8D
];
372 R92
= R72
^ HEAP
[sbox
| R8E
];
373 R93
= R73
^ HEAP
[sbox
| R8F
];
386 RA0
= R80
^ HEAP
[sbox
| R9D
] ^ 16;
387 RA1
= R81
^ HEAP
[sbox
| R9E
];
388 RA2
= R82
^ HEAP
[sbox
| R9F
];
389 RA3
= R83
^ HEAP
[sbox
| R9C
];
402 RB0
= R90
^ HEAP
[sbox
| RAC
];
403 RB1
= R91
^ HEAP
[sbox
| RAD
];
404 RB2
= R92
^ HEAP
[sbox
| RAE
];
405 RB3
= R93
^ HEAP
[sbox
| RAF
];
418 RC0
= RA0
^ HEAP
[sbox
| RBD
] ^ 32;
419 RC1
= RA1
^ HEAP
[sbox
| RBE
];
420 RC2
= RA2
^ HEAP
[sbox
| RBF
];
421 RC3
= RA3
^ HEAP
[sbox
| RBC
];
434 RD0
= RB0
^ HEAP
[sbox
| RCC
];
435 RD1
= RB1
^ HEAP
[sbox
| RCD
];
436 RD2
= RB2
^ HEAP
[sbox
| RCE
];
437 RD3
= RB3
^ HEAP
[sbox
| RCF
];
450 RE0
= RC0
^ HEAP
[sbox
| RDD
] ^ 64;
451 RE1
= RC1
^ HEAP
[sbox
| RDE
];
452 RE2
= RC2
^ HEAP
[sbox
| RDF
];
453 RE3
= RC3
^ HEAP
[sbox
| RDC
];
467 function _encrypt(s0
, s1
, s2
, s3
, s4
, s5
, s6
, s7
, s8
, s9
, sA
, sB
, sC
, sD
, sE
, sF
) {
484 var t0
= 0, t1
= 0, t2
= 0, t3
= 0, t4
= 0, t5
= 0, t6
= 0, t7
= 0, t8
= 0, t9
= 0, tA
= 0, tB
= 0, tC
= 0, tD
= 0, tE
= 0, tF
= 0, sbox
= 0, x2_sbox
= 512, x3_sbox
= 768;
501 t0
= HEAP
[x2_sbox
| s0
] ^ HEAP
[x3_sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R10
;
502 t1
= HEAP
[sbox
| s0
] ^ HEAP
[x2_sbox
| s5
] ^ HEAP
[x3_sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R11
;
503 t2
= HEAP
[sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[x2_sbox
| sA
] ^ HEAP
[x3_sbox
| sF
] ^ R12
;
504 t3
= HEAP
[x3_sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[x2_sbox
| sF
] ^ R13
;
505 t4
= HEAP
[x2_sbox
| s4
] ^ HEAP
[x3_sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R14
;
506 t5
= HEAP
[sbox
| s4
] ^ HEAP
[x2_sbox
| s9
] ^ HEAP
[x3_sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R15
;
507 t6
= HEAP
[sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[x2_sbox
| sE
] ^ HEAP
[x3_sbox
| s3
] ^ R16
;
508 t7
= HEAP
[x3_sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[x2_sbox
| s3
] ^ R17
;
509 t8
= HEAP
[x2_sbox
| s8
] ^ HEAP
[x3_sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R18
;
510 t9
= HEAP
[sbox
| s8
] ^ HEAP
[x2_sbox
| sD
] ^ HEAP
[x3_sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R19
;
511 tA
= HEAP
[sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[x2_sbox
| s2
] ^ HEAP
[x3_sbox
| s7
] ^ R1A
;
512 tB
= HEAP
[x3_sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[x2_sbox
| s7
] ^ R1B
;
513 tC
= HEAP
[x2_sbox
| sC
] ^ HEAP
[x3_sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R1C
;
514 tD
= HEAP
[sbox
| sC
] ^ HEAP
[x2_sbox
| s1
] ^ HEAP
[x3_sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R1D
;
515 tE
= HEAP
[sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[x2_sbox
| s6
] ^ HEAP
[x3_sbox
| sB
] ^ R1E
;
516 tF
= HEAP
[x3_sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[x2_sbox
| sB
] ^ R1F
;
517 s0
= HEAP
[x2_sbox
| t0
] ^ HEAP
[x3_sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R20
;
518 s1
= HEAP
[sbox
| t0
] ^ HEAP
[x2_sbox
| t5
] ^ HEAP
[x3_sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R21
;
519 s2
= HEAP
[sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[x2_sbox
| tA
] ^ HEAP
[x3_sbox
| tF
] ^ R22
;
520 s3
= HEAP
[x3_sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[x2_sbox
| tF
] ^ R23
;
521 s4
= HEAP
[x2_sbox
| t4
] ^ HEAP
[x3_sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R24
;
522 s5
= HEAP
[sbox
| t4
] ^ HEAP
[x2_sbox
| t9
] ^ HEAP
[x3_sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R25
;
523 s6
= HEAP
[sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[x2_sbox
| tE
] ^ HEAP
[x3_sbox
| t3
] ^ R26
;
524 s7
= HEAP
[x3_sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[x2_sbox
| t3
] ^ R27
;
525 s8
= HEAP
[x2_sbox
| t8
] ^ HEAP
[x3_sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R28
;
526 s9
= HEAP
[sbox
| t8
] ^ HEAP
[x2_sbox
| tD
] ^ HEAP
[x3_sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R29
;
527 sA
= HEAP
[sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[x2_sbox
| t2
] ^ HEAP
[x3_sbox
| t7
] ^ R2A
;
528 sB
= HEAP
[x3_sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[x2_sbox
| t7
] ^ R2B
;
529 sC
= HEAP
[x2_sbox
| tC
] ^ HEAP
[x3_sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R2C
;
530 sD
= HEAP
[sbox
| tC
] ^ HEAP
[x2_sbox
| t1
] ^ HEAP
[x3_sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R2D
;
531 sE
= HEAP
[sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[x2_sbox
| t6
] ^ HEAP
[x3_sbox
| tB
] ^ R2E
;
532 sF
= HEAP
[x3_sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[x2_sbox
| tB
] ^ R2F
;
533 t0
= HEAP
[x2_sbox
| s0
] ^ HEAP
[x3_sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R30
;
534 t1
= HEAP
[sbox
| s0
] ^ HEAP
[x2_sbox
| s5
] ^ HEAP
[x3_sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R31
;
535 t2
= HEAP
[sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[x2_sbox
| sA
] ^ HEAP
[x3_sbox
| sF
] ^ R32
;
536 t3
= HEAP
[x3_sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[x2_sbox
| sF
] ^ R33
;
537 t4
= HEAP
[x2_sbox
| s4
] ^ HEAP
[x3_sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R34
;
538 t5
= HEAP
[sbox
| s4
] ^ HEAP
[x2_sbox
| s9
] ^ HEAP
[x3_sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R35
;
539 t6
= HEAP
[sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[x2_sbox
| sE
] ^ HEAP
[x3_sbox
| s3
] ^ R36
;
540 t7
= HEAP
[x3_sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[x2_sbox
| s3
] ^ R37
;
541 t8
= HEAP
[x2_sbox
| s8
] ^ HEAP
[x3_sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R38
;
542 t9
= HEAP
[sbox
| s8
] ^ HEAP
[x2_sbox
| sD
] ^ HEAP
[x3_sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R39
;
543 tA
= HEAP
[sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[x2_sbox
| s2
] ^ HEAP
[x3_sbox
| s7
] ^ R3A
;
544 tB
= HEAP
[x3_sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[x2_sbox
| s7
] ^ R3B
;
545 tC
= HEAP
[x2_sbox
| sC
] ^ HEAP
[x3_sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R3C
;
546 tD
= HEAP
[sbox
| sC
] ^ HEAP
[x2_sbox
| s1
] ^ HEAP
[x3_sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R3D
;
547 tE
= HEAP
[sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[x2_sbox
| s6
] ^ HEAP
[x3_sbox
| sB
] ^ R3E
;
548 tF
= HEAP
[x3_sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[x2_sbox
| sB
] ^ R3F
;
549 s0
= HEAP
[x2_sbox
| t0
] ^ HEAP
[x3_sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R40
;
550 s1
= HEAP
[sbox
| t0
] ^ HEAP
[x2_sbox
| t5
] ^ HEAP
[x3_sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R41
;
551 s2
= HEAP
[sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[x2_sbox
| tA
] ^ HEAP
[x3_sbox
| tF
] ^ R42
;
552 s3
= HEAP
[x3_sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[x2_sbox
| tF
] ^ R43
;
553 s4
= HEAP
[x2_sbox
| t4
] ^ HEAP
[x3_sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R44
;
554 s5
= HEAP
[sbox
| t4
] ^ HEAP
[x2_sbox
| t9
] ^ HEAP
[x3_sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R45
;
555 s6
= HEAP
[sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[x2_sbox
| tE
] ^ HEAP
[x3_sbox
| t3
] ^ R46
;
556 s7
= HEAP
[x3_sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[x2_sbox
| t3
] ^ R47
;
557 s8
= HEAP
[x2_sbox
| t8
] ^ HEAP
[x3_sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R48
;
558 s9
= HEAP
[sbox
| t8
] ^ HEAP
[x2_sbox
| tD
] ^ HEAP
[x3_sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R49
;
559 sA
= HEAP
[sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[x2_sbox
| t2
] ^ HEAP
[x3_sbox
| t7
] ^ R4A
;
560 sB
= HEAP
[x3_sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[x2_sbox
| t7
] ^ R4B
;
561 sC
= HEAP
[x2_sbox
| tC
] ^ HEAP
[x3_sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R4C
;
562 sD
= HEAP
[sbox
| tC
] ^ HEAP
[x2_sbox
| t1
] ^ HEAP
[x3_sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R4D
;
563 sE
= HEAP
[sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[x2_sbox
| t6
] ^ HEAP
[x3_sbox
| tB
] ^ R4E
;
564 sF
= HEAP
[x3_sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[x2_sbox
| tB
] ^ R4F
;
565 t0
= HEAP
[x2_sbox
| s0
] ^ HEAP
[x3_sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R50
;
566 t1
= HEAP
[sbox
| s0
] ^ HEAP
[x2_sbox
| s5
] ^ HEAP
[x3_sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R51
;
567 t2
= HEAP
[sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[x2_sbox
| sA
] ^ HEAP
[x3_sbox
| sF
] ^ R52
;
568 t3
= HEAP
[x3_sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[x2_sbox
| sF
] ^ R53
;
569 t4
= HEAP
[x2_sbox
| s4
] ^ HEAP
[x3_sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R54
;
570 t5
= HEAP
[sbox
| s4
] ^ HEAP
[x2_sbox
| s9
] ^ HEAP
[x3_sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R55
;
571 t6
= HEAP
[sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[x2_sbox
| sE
] ^ HEAP
[x3_sbox
| s3
] ^ R56
;
572 t7
= HEAP
[x3_sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[x2_sbox
| s3
] ^ R57
;
573 t8
= HEAP
[x2_sbox
| s8
] ^ HEAP
[x3_sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R58
;
574 t9
= HEAP
[sbox
| s8
] ^ HEAP
[x2_sbox
| sD
] ^ HEAP
[x3_sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R59
;
575 tA
= HEAP
[sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[x2_sbox
| s2
] ^ HEAP
[x3_sbox
| s7
] ^ R5A
;
576 tB
= HEAP
[x3_sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[x2_sbox
| s7
] ^ R5B
;
577 tC
= HEAP
[x2_sbox
| sC
] ^ HEAP
[x3_sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R5C
;
578 tD
= HEAP
[sbox
| sC
] ^ HEAP
[x2_sbox
| s1
] ^ HEAP
[x3_sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R5D
;
579 tE
= HEAP
[sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[x2_sbox
| s6
] ^ HEAP
[x3_sbox
| sB
] ^ R5E
;
580 tF
= HEAP
[x3_sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[x2_sbox
| sB
] ^ R5F
;
581 s0
= HEAP
[x2_sbox
| t0
] ^ HEAP
[x3_sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R60
;
582 s1
= HEAP
[sbox
| t0
] ^ HEAP
[x2_sbox
| t5
] ^ HEAP
[x3_sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R61
;
583 s2
= HEAP
[sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[x2_sbox
| tA
] ^ HEAP
[x3_sbox
| tF
] ^ R62
;
584 s3
= HEAP
[x3_sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[x2_sbox
| tF
] ^ R63
;
585 s4
= HEAP
[x2_sbox
| t4
] ^ HEAP
[x3_sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R64
;
586 s5
= HEAP
[sbox
| t4
] ^ HEAP
[x2_sbox
| t9
] ^ HEAP
[x3_sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R65
;
587 s6
= HEAP
[sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[x2_sbox
| tE
] ^ HEAP
[x3_sbox
| t3
] ^ R66
;
588 s7
= HEAP
[x3_sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[x2_sbox
| t3
] ^ R67
;
589 s8
= HEAP
[x2_sbox
| t8
] ^ HEAP
[x3_sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R68
;
590 s9
= HEAP
[sbox
| t8
] ^ HEAP
[x2_sbox
| tD
] ^ HEAP
[x3_sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R69
;
591 sA
= HEAP
[sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[x2_sbox
| t2
] ^ HEAP
[x3_sbox
| t7
] ^ R6A
;
592 sB
= HEAP
[x3_sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[x2_sbox
| t7
] ^ R6B
;
593 sC
= HEAP
[x2_sbox
| tC
] ^ HEAP
[x3_sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R6C
;
594 sD
= HEAP
[sbox
| tC
] ^ HEAP
[x2_sbox
| t1
] ^ HEAP
[x3_sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R6D
;
595 sE
= HEAP
[sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[x2_sbox
| t6
] ^ HEAP
[x3_sbox
| tB
] ^ R6E
;
596 sF
= HEAP
[x3_sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[x2_sbox
| tB
] ^ R6F
;
597 t0
= HEAP
[x2_sbox
| s0
] ^ HEAP
[x3_sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R70
;
598 t1
= HEAP
[sbox
| s0
] ^ HEAP
[x2_sbox
| s5
] ^ HEAP
[x3_sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R71
;
599 t2
= HEAP
[sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[x2_sbox
| sA
] ^ HEAP
[x3_sbox
| sF
] ^ R72
;
600 t3
= HEAP
[x3_sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[x2_sbox
| sF
] ^ R73
;
601 t4
= HEAP
[x2_sbox
| s4
] ^ HEAP
[x3_sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R74
;
602 t5
= HEAP
[sbox
| s4
] ^ HEAP
[x2_sbox
| s9
] ^ HEAP
[x3_sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R75
;
603 t6
= HEAP
[sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[x2_sbox
| sE
] ^ HEAP
[x3_sbox
| s3
] ^ R76
;
604 t7
= HEAP
[x3_sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[x2_sbox
| s3
] ^ R77
;
605 t8
= HEAP
[x2_sbox
| s8
] ^ HEAP
[x3_sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R78
;
606 t9
= HEAP
[sbox
| s8
] ^ HEAP
[x2_sbox
| sD
] ^ HEAP
[x3_sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R79
;
607 tA
= HEAP
[sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[x2_sbox
| s2
] ^ HEAP
[x3_sbox
| s7
] ^ R7A
;
608 tB
= HEAP
[x3_sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[x2_sbox
| s7
] ^ R7B
;
609 tC
= HEAP
[x2_sbox
| sC
] ^ HEAP
[x3_sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R7C
;
610 tD
= HEAP
[sbox
| sC
] ^ HEAP
[x2_sbox
| s1
] ^ HEAP
[x3_sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R7D
;
611 tE
= HEAP
[sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[x2_sbox
| s6
] ^ HEAP
[x3_sbox
| sB
] ^ R7E
;
612 tF
= HEAP
[x3_sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[x2_sbox
| sB
] ^ R7F
;
613 s0
= HEAP
[x2_sbox
| t0
] ^ HEAP
[x3_sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R80
;
614 s1
= HEAP
[sbox
| t0
] ^ HEAP
[x2_sbox
| t5
] ^ HEAP
[x3_sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ R81
;
615 s2
= HEAP
[sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[x2_sbox
| tA
] ^ HEAP
[x3_sbox
| tF
] ^ R82
;
616 s3
= HEAP
[x3_sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[x2_sbox
| tF
] ^ R83
;
617 s4
= HEAP
[x2_sbox
| t4
] ^ HEAP
[x3_sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R84
;
618 s5
= HEAP
[sbox
| t4
] ^ HEAP
[x2_sbox
| t9
] ^ HEAP
[x3_sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ R85
;
619 s6
= HEAP
[sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[x2_sbox
| tE
] ^ HEAP
[x3_sbox
| t3
] ^ R86
;
620 s7
= HEAP
[x3_sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[x2_sbox
| t3
] ^ R87
;
621 s8
= HEAP
[x2_sbox
| t8
] ^ HEAP
[x3_sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R88
;
622 s9
= HEAP
[sbox
| t8
] ^ HEAP
[x2_sbox
| tD
] ^ HEAP
[x3_sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ R89
;
623 sA
= HEAP
[sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[x2_sbox
| t2
] ^ HEAP
[x3_sbox
| t7
] ^ R8A
;
624 sB
= HEAP
[x3_sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[x2_sbox
| t7
] ^ R8B
;
625 sC
= HEAP
[x2_sbox
| tC
] ^ HEAP
[x3_sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R8C
;
626 sD
= HEAP
[sbox
| tC
] ^ HEAP
[x2_sbox
| t1
] ^ HEAP
[x3_sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ R8D
;
627 sE
= HEAP
[sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[x2_sbox
| t6
] ^ HEAP
[x3_sbox
| tB
] ^ R8E
;
628 sF
= HEAP
[x3_sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[x2_sbox
| tB
] ^ R8F
;
629 t0
= HEAP
[x2_sbox
| s0
] ^ HEAP
[x3_sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R90
;
630 t1
= HEAP
[sbox
| s0
] ^ HEAP
[x2_sbox
| s5
] ^ HEAP
[x3_sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ R91
;
631 t2
= HEAP
[sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[x2_sbox
| sA
] ^ HEAP
[x3_sbox
| sF
] ^ R92
;
632 t3
= HEAP
[x3_sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[x2_sbox
| sF
] ^ R93
;
633 t4
= HEAP
[x2_sbox
| s4
] ^ HEAP
[x3_sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R94
;
634 t5
= HEAP
[sbox
| s4
] ^ HEAP
[x2_sbox
| s9
] ^ HEAP
[x3_sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ R95
;
635 t6
= HEAP
[sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[x2_sbox
| sE
] ^ HEAP
[x3_sbox
| s3
] ^ R96
;
636 t7
= HEAP
[x3_sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[x2_sbox
| s3
] ^ R97
;
637 t8
= HEAP
[x2_sbox
| s8
] ^ HEAP
[x3_sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R98
;
638 t9
= HEAP
[sbox
| s8
] ^ HEAP
[x2_sbox
| sD
] ^ HEAP
[x3_sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ R99
;
639 tA
= HEAP
[sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[x2_sbox
| s2
] ^ HEAP
[x3_sbox
| s7
] ^ R9A
;
640 tB
= HEAP
[x3_sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[x2_sbox
| s7
] ^ R9B
;
641 tC
= HEAP
[x2_sbox
| sC
] ^ HEAP
[x3_sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R9C
;
642 tD
= HEAP
[sbox
| sC
] ^ HEAP
[x2_sbox
| s1
] ^ HEAP
[x3_sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ R9D
;
643 tE
= HEAP
[sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[x2_sbox
| s6
] ^ HEAP
[x3_sbox
| sB
] ^ R9E
;
644 tF
= HEAP
[x3_sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[x2_sbox
| sB
] ^ R9F
;
645 if ((keySize
| 0) == 16) {
646 S0
= HEAP
[sbox
| t0
] ^ RA0
;
647 S1
= HEAP
[sbox
| t5
] ^ RA1
;
648 S2
= HEAP
[sbox
| tA
] ^ RA2
;
649 S3
= HEAP
[sbox
| tF
] ^ RA3
;
650 S4
= HEAP
[sbox
| t4
] ^ RA4
;
651 S5
= HEAP
[sbox
| t9
] ^ RA5
;
652 S6
= HEAP
[sbox
| tE
] ^ RA6
;
653 S7
= HEAP
[sbox
| t3
] ^ RA7
;
654 S8
= HEAP
[sbox
| t8
] ^ RA8
;
655 S9
= HEAP
[sbox
| tD
] ^ RA9
;
656 SA
= HEAP
[sbox
| t2
] ^ RAA
;
657 SB
= HEAP
[sbox
| t7
] ^ RAB
;
658 SC
= HEAP
[sbox
| tC
] ^ RAC
;
659 SD
= HEAP
[sbox
| t1
] ^ RAD
;
660 SE
= HEAP
[sbox
| t6
] ^ RAE
;
661 SF
= HEAP
[sbox
| tB
] ^ RAF
;
664 s0
= HEAP
[x2_sbox
| t0
] ^ HEAP
[x3_sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ RA0
;
665 s1
= HEAP
[sbox
| t0
] ^ HEAP
[x2_sbox
| t5
] ^ HEAP
[x3_sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ RA1
;
666 s2
= HEAP
[sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[x2_sbox
| tA
] ^ HEAP
[x3_sbox
| tF
] ^ RA2
;
667 s3
= HEAP
[x3_sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[x2_sbox
| tF
] ^ RA3
;
668 s4
= HEAP
[x2_sbox
| t4
] ^ HEAP
[x3_sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ RA4
;
669 s5
= HEAP
[sbox
| t4
] ^ HEAP
[x2_sbox
| t9
] ^ HEAP
[x3_sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ RA5
;
670 s6
= HEAP
[sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[x2_sbox
| tE
] ^ HEAP
[x3_sbox
| t3
] ^ RA6
;
671 s7
= HEAP
[x3_sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[x2_sbox
| t3
] ^ RA7
;
672 s8
= HEAP
[x2_sbox
| t8
] ^ HEAP
[x3_sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ RA8
;
673 s9
= HEAP
[sbox
| t8
] ^ HEAP
[x2_sbox
| tD
] ^ HEAP
[x3_sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ RA9
;
674 sA
= HEAP
[sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[x2_sbox
| t2
] ^ HEAP
[x3_sbox
| t7
] ^ RAA
;
675 sB
= HEAP
[x3_sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[x2_sbox
| t7
] ^ RAB
;
676 sC
= HEAP
[x2_sbox
| tC
] ^ HEAP
[x3_sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ RAC
;
677 sD
= HEAP
[sbox
| tC
] ^ HEAP
[x2_sbox
| t1
] ^ HEAP
[x3_sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ RAD
;
678 sE
= HEAP
[sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[x2_sbox
| t6
] ^ HEAP
[x3_sbox
| tB
] ^ RAE
;
679 sF
= HEAP
[x3_sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[x2_sbox
| tB
] ^ RAF
;
680 t0
= HEAP
[x2_sbox
| s0
] ^ HEAP
[x3_sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ RB0
;
681 t1
= HEAP
[sbox
| s0
] ^ HEAP
[x2_sbox
| s5
] ^ HEAP
[x3_sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ RB1
;
682 t2
= HEAP
[sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[x2_sbox
| sA
] ^ HEAP
[x3_sbox
| sF
] ^ RB2
;
683 t3
= HEAP
[x3_sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[x2_sbox
| sF
] ^ RB3
;
684 t4
= HEAP
[x2_sbox
| s4
] ^ HEAP
[x3_sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ RB4
;
685 t5
= HEAP
[sbox
| s4
] ^ HEAP
[x2_sbox
| s9
] ^ HEAP
[x3_sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ RB5
;
686 t6
= HEAP
[sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[x2_sbox
| sE
] ^ HEAP
[x3_sbox
| s3
] ^ RB6
;
687 t7
= HEAP
[x3_sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[x2_sbox
| s3
] ^ RB7
;
688 t8
= HEAP
[x2_sbox
| s8
] ^ HEAP
[x3_sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ RB8
;
689 t9
= HEAP
[sbox
| s8
] ^ HEAP
[x2_sbox
| sD
] ^ HEAP
[x3_sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ RB9
;
690 tA
= HEAP
[sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[x2_sbox
| s2
] ^ HEAP
[x3_sbox
| s7
] ^ RBA
;
691 tB
= HEAP
[x3_sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[x2_sbox
| s7
] ^ RBB
;
692 tC
= HEAP
[x2_sbox
| sC
] ^ HEAP
[x3_sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ RBC
;
693 tD
= HEAP
[sbox
| sC
] ^ HEAP
[x2_sbox
| s1
] ^ HEAP
[x3_sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ RBD
;
694 tE
= HEAP
[sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[x2_sbox
| s6
] ^ HEAP
[x3_sbox
| sB
] ^ RBE
;
695 tF
= HEAP
[x3_sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[x2_sbox
| sB
] ^ RBF
;
696 s0
= HEAP
[x2_sbox
| t0
] ^ HEAP
[x3_sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ RC0
;
697 s1
= HEAP
[sbox
| t0
] ^ HEAP
[x2_sbox
| t5
] ^ HEAP
[x3_sbox
| tA
] ^ HEAP
[sbox
| tF
] ^ RC1
;
698 s2
= HEAP
[sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[x2_sbox
| tA
] ^ HEAP
[x3_sbox
| tF
] ^ RC2
;
699 s3
= HEAP
[x3_sbox
| t0
] ^ HEAP
[sbox
| t5
] ^ HEAP
[sbox
| tA
] ^ HEAP
[x2_sbox
| tF
] ^ RC3
;
700 s4
= HEAP
[x2_sbox
| t4
] ^ HEAP
[x3_sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ RC4
;
701 s5
= HEAP
[sbox
| t4
] ^ HEAP
[x2_sbox
| t9
] ^ HEAP
[x3_sbox
| tE
] ^ HEAP
[sbox
| t3
] ^ RC5
;
702 s6
= HEAP
[sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[x2_sbox
| tE
] ^ HEAP
[x3_sbox
| t3
] ^ RC6
;
703 s7
= HEAP
[x3_sbox
| t4
] ^ HEAP
[sbox
| t9
] ^ HEAP
[sbox
| tE
] ^ HEAP
[x2_sbox
| t3
] ^ RC7
;
704 s8
= HEAP
[x2_sbox
| t8
] ^ HEAP
[x3_sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ RC8
;
705 s9
= HEAP
[sbox
| t8
] ^ HEAP
[x2_sbox
| tD
] ^ HEAP
[x3_sbox
| t2
] ^ HEAP
[sbox
| t7
] ^ RC9
;
706 sA
= HEAP
[sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[x2_sbox
| t2
] ^ HEAP
[x3_sbox
| t7
] ^ RCA
;
707 sB
= HEAP
[x3_sbox
| t8
] ^ HEAP
[sbox
| tD
] ^ HEAP
[sbox
| t2
] ^ HEAP
[x2_sbox
| t7
] ^ RCB
;
708 sC
= HEAP
[x2_sbox
| tC
] ^ HEAP
[x3_sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ RCC
;
709 sD
= HEAP
[sbox
| tC
] ^ HEAP
[x2_sbox
| t1
] ^ HEAP
[x3_sbox
| t6
] ^ HEAP
[sbox
| tB
] ^ RCD
;
710 sE
= HEAP
[sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[x2_sbox
| t6
] ^ HEAP
[x3_sbox
| tB
] ^ RCE
;
711 sF
= HEAP
[x3_sbox
| tC
] ^ HEAP
[sbox
| t1
] ^ HEAP
[sbox
| t6
] ^ HEAP
[x2_sbox
| tB
] ^ RCF
;
712 t0
= HEAP
[x2_sbox
| s0
] ^ HEAP
[x3_sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ RD0
;
713 t1
= HEAP
[sbox
| s0
] ^ HEAP
[x2_sbox
| s5
] ^ HEAP
[x3_sbox
| sA
] ^ HEAP
[sbox
| sF
] ^ RD1
;
714 t2
= HEAP
[sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[x2_sbox
| sA
] ^ HEAP
[x3_sbox
| sF
] ^ RD2
;
715 t3
= HEAP
[x3_sbox
| s0
] ^ HEAP
[sbox
| s5
] ^ HEAP
[sbox
| sA
] ^ HEAP
[x2_sbox
| sF
] ^ RD3
;
716 t4
= HEAP
[x2_sbox
| s4
] ^ HEAP
[x3_sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ RD4
;
717 t5
= HEAP
[sbox
| s4
] ^ HEAP
[x2_sbox
| s9
] ^ HEAP
[x3_sbox
| sE
] ^ HEAP
[sbox
| s3
] ^ RD5
;
718 t6
= HEAP
[sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[x2_sbox
| sE
] ^ HEAP
[x3_sbox
| s3
] ^ RD6
;
719 t7
= HEAP
[x3_sbox
| s4
] ^ HEAP
[sbox
| s9
] ^ HEAP
[sbox
| sE
] ^ HEAP
[x2_sbox
| s3
] ^ RD7
;
720 t8
= HEAP
[x2_sbox
| s8
] ^ HEAP
[x3_sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ RD8
;
721 t9
= HEAP
[sbox
| s8
] ^ HEAP
[x2_sbox
| sD
] ^ HEAP
[x3_sbox
| s2
] ^ HEAP
[sbox
| s7
] ^ RD9
;
722 tA
= HEAP
[sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[x2_sbox
| s2
] ^ HEAP
[x3_sbox
| s7
] ^ RDA
;
723 tB
= HEAP
[x3_sbox
| s8
] ^ HEAP
[sbox
| sD
] ^ HEAP
[sbox
| s2
] ^ HEAP
[x2_sbox
| s7
] ^ RDB
;
724 tC
= HEAP
[x2_sbox
| sC
] ^ HEAP
[x3_sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ RDC
;
725 tD
= HEAP
[sbox
| sC
] ^ HEAP
[x2_sbox
| s1
] ^ HEAP
[x3_sbox
| s6
] ^ HEAP
[sbox
| sB
] ^ RDD
;
726 tE
= HEAP
[sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[x2_sbox
| s6
] ^ HEAP
[x3_sbox
| sB
] ^ RDE
;
727 tF
= HEAP
[x3_sbox
| sC
] ^ HEAP
[sbox
| s1
] ^ HEAP
[sbox
| s6
] ^ HEAP
[x2_sbox
| sB
] ^ RDF
;
728 S0
= HEAP
[sbox
| t0
] ^ RE0
;
729 S1
= HEAP
[sbox
| t5
] ^ RE1
;
730 S2
= HEAP
[sbox
| tA
] ^ RE2
;
731 S3
= HEAP
[sbox
| tF
] ^ RE3
;
732 S4
= HEAP
[sbox
| t4
] ^ RE4
;
733 S5
= HEAP
[sbox
| t9
] ^ RE5
;
734 S6
= HEAP
[sbox
| tE
] ^ RE6
;
735 S7
= HEAP
[sbox
| t3
] ^ RE7
;
736 S8
= HEAP
[sbox
| t8
] ^ RE8
;
737 S9
= HEAP
[sbox
| tD
] ^ RE9
;
738 SA
= HEAP
[sbox
| t2
] ^ REA
;
739 SB
= HEAP
[sbox
| t7
] ^ REB
;
740 SC
= HEAP
[sbox
| tC
] ^ REC
;
741 SD
= HEAP
[sbox
| t1
] ^ RED
;
742 SE
= HEAP
[sbox
| t6
] ^ REE
;
743 SF
= HEAP
[sbox
| tB
] ^ REF
;
745 function _decrypt(s0
, s1
, s2
, s3
, s4
, s5
, s6
, s7
, s8
, s9
, sA
, sB
, sC
, sD
, sE
, sF
) {
762 var t0
= 0, t1
= 0, t2
= 0, t3
= 0, t4
= 0, t5
= 0, t6
= 0, t7
= 0, t8
= 0, t9
= 0, tA
= 0, tB
= 0, tC
= 0, tD
= 0, tE
= 0, tF
= 0, inv_sbox
= 256, x9
= 1024, xB
= 1280, xD
= 1536, xE
= 1792;
763 if ((keySize
| 0) == 32) {
764 t0
= HEAP
[inv_sbox
| s0
^ RE0
] ^ RD0
;
765 t1
= HEAP
[inv_sbox
| sD
^ RED
] ^ RD1
;
766 t2
= HEAP
[inv_sbox
| sA
^ REA
] ^ RD2
;
767 t3
= HEAP
[inv_sbox
| s7
^ RE7
] ^ RD3
;
768 t4
= HEAP
[inv_sbox
| s4
^ RE4
] ^ RD4
;
769 t5
= HEAP
[inv_sbox
| s1
^ RE1
] ^ RD5
;
770 t6
= HEAP
[inv_sbox
| sE
^ REE
] ^ RD6
;
771 t7
= HEAP
[inv_sbox
| sB
^ REB
] ^ RD7
;
772 t8
= HEAP
[inv_sbox
| s8
^ RE8
] ^ RD8
;
773 t9
= HEAP
[inv_sbox
| s5
^ RE5
] ^ RD9
;
774 tA
= HEAP
[inv_sbox
| s2
^ RE2
] ^ RDA
;
775 tB
= HEAP
[inv_sbox
| sF
^ REF
] ^ RDB
;
776 tC
= HEAP
[inv_sbox
| sC
^ REC
] ^ RDC
;
777 tD
= HEAP
[inv_sbox
| s9
^ RE9
] ^ RDD
;
778 tE
= HEAP
[inv_sbox
| s6
^ RE6
] ^ RDE
;
779 tF
= HEAP
[inv_sbox
| s3
^ RE3
] ^ RDF
;
780 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
781 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
782 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
783 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
784 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
785 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
786 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
787 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
788 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
789 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
790 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
791 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
792 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
793 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
794 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
795 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
796 t0
= HEAP
[inv_sbox
| s0
] ^ RC0
;
797 t1
= HEAP
[inv_sbox
| s1
] ^ RC1
;
798 t2
= HEAP
[inv_sbox
| s2
] ^ RC2
;
799 t3
= HEAP
[inv_sbox
| s3
] ^ RC3
;
800 t4
= HEAP
[inv_sbox
| s4
] ^ RC4
;
801 t5
= HEAP
[inv_sbox
| s5
] ^ RC5
;
802 t6
= HEAP
[inv_sbox
| s6
] ^ RC6
;
803 t7
= HEAP
[inv_sbox
| s7
] ^ RC7
;
804 t8
= HEAP
[inv_sbox
| s8
] ^ RC8
;
805 t9
= HEAP
[inv_sbox
| s9
] ^ RC9
;
806 tA
= HEAP
[inv_sbox
| sA
] ^ RCA
;
807 tB
= HEAP
[inv_sbox
| sB
] ^ RCB
;
808 tC
= HEAP
[inv_sbox
| sC
] ^ RCC
;
809 tD
= HEAP
[inv_sbox
| sD
] ^ RCD
;
810 tE
= HEAP
[inv_sbox
| sE
] ^ RCE
;
811 tF
= HEAP
[inv_sbox
| sF
] ^ RCF
;
812 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
813 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
814 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
815 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
816 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
817 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
818 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
819 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
820 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
821 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
822 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
823 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
824 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
825 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
826 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
827 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
828 t0
= HEAP
[inv_sbox
| s0
] ^ RB0
;
829 t1
= HEAP
[inv_sbox
| s1
] ^ RB1
;
830 t2
= HEAP
[inv_sbox
| s2
] ^ RB2
;
831 t3
= HEAP
[inv_sbox
| s3
] ^ RB3
;
832 t4
= HEAP
[inv_sbox
| s4
] ^ RB4
;
833 t5
= HEAP
[inv_sbox
| s5
] ^ RB5
;
834 t6
= HEAP
[inv_sbox
| s6
] ^ RB6
;
835 t7
= HEAP
[inv_sbox
| s7
] ^ RB7
;
836 t8
= HEAP
[inv_sbox
| s8
] ^ RB8
;
837 t9
= HEAP
[inv_sbox
| s9
] ^ RB9
;
838 tA
= HEAP
[inv_sbox
| sA
] ^ RBA
;
839 tB
= HEAP
[inv_sbox
| sB
] ^ RBB
;
840 tC
= HEAP
[inv_sbox
| sC
] ^ RBC
;
841 tD
= HEAP
[inv_sbox
| sD
] ^ RBD
;
842 tE
= HEAP
[inv_sbox
| sE
] ^ RBE
;
843 tF
= HEAP
[inv_sbox
| sF
] ^ RBF
;
844 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
845 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
846 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
847 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
848 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
849 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
850 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
851 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
852 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
853 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
854 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
855 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
856 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
857 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
858 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
859 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
860 t0
= HEAP
[inv_sbox
| s0
] ^ RA0
;
861 t1
= HEAP
[inv_sbox
| s1
] ^ RA1
;
862 t2
= HEAP
[inv_sbox
| s2
] ^ RA2
;
863 t3
= HEAP
[inv_sbox
| s3
] ^ RA3
;
864 t4
= HEAP
[inv_sbox
| s4
] ^ RA4
;
865 t5
= HEAP
[inv_sbox
| s5
] ^ RA5
;
866 t6
= HEAP
[inv_sbox
| s6
] ^ RA6
;
867 t7
= HEAP
[inv_sbox
| s7
] ^ RA7
;
868 t8
= HEAP
[inv_sbox
| s8
] ^ RA8
;
869 t9
= HEAP
[inv_sbox
| s9
] ^ RA9
;
870 tA
= HEAP
[inv_sbox
| sA
] ^ RAA
;
871 tB
= HEAP
[inv_sbox
| sB
] ^ RAB
;
872 tC
= HEAP
[inv_sbox
| sC
] ^ RAC
;
873 tD
= HEAP
[inv_sbox
| sD
] ^ RAD
;
874 tE
= HEAP
[inv_sbox
| sE
] ^ RAE
;
875 tF
= HEAP
[inv_sbox
| sF
] ^ RAF
;
876 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
877 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
878 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
879 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
880 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
881 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
882 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
883 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
884 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
885 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
886 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
887 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
888 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
889 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
890 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
891 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
892 t0
= HEAP
[inv_sbox
| s0
] ^ R90
;
893 t1
= HEAP
[inv_sbox
| s1
] ^ R91
;
894 t2
= HEAP
[inv_sbox
| s2
] ^ R92
;
895 t3
= HEAP
[inv_sbox
| s3
] ^ R93
;
896 t4
= HEAP
[inv_sbox
| s4
] ^ R94
;
897 t5
= HEAP
[inv_sbox
| s5
] ^ R95
;
898 t6
= HEAP
[inv_sbox
| s6
] ^ R96
;
899 t7
= HEAP
[inv_sbox
| s7
] ^ R97
;
900 t8
= HEAP
[inv_sbox
| s8
] ^ R98
;
901 t9
= HEAP
[inv_sbox
| s9
] ^ R99
;
902 tA
= HEAP
[inv_sbox
| sA
] ^ R9A
;
903 tB
= HEAP
[inv_sbox
| sB
] ^ R9B
;
904 tC
= HEAP
[inv_sbox
| sC
] ^ R9C
;
905 tD
= HEAP
[inv_sbox
| sD
] ^ R9D
;
906 tE
= HEAP
[inv_sbox
| sE
] ^ R9E
;
907 tF
= HEAP
[inv_sbox
| sF
] ^ R9F
;
909 t0
= HEAP
[inv_sbox
| s0
^ RA0
] ^ R90
;
910 t1
= HEAP
[inv_sbox
| sD
^ RAD
] ^ R91
;
911 t2
= HEAP
[inv_sbox
| sA
^ RAA
] ^ R92
;
912 t3
= HEAP
[inv_sbox
| s7
^ RA7
] ^ R93
;
913 t4
= HEAP
[inv_sbox
| s4
^ RA4
] ^ R94
;
914 t5
= HEAP
[inv_sbox
| s1
^ RA1
] ^ R95
;
915 t6
= HEAP
[inv_sbox
| sE
^ RAE
] ^ R96
;
916 t7
= HEAP
[inv_sbox
| sB
^ RAB
] ^ R97
;
917 t8
= HEAP
[inv_sbox
| s8
^ RA8
] ^ R98
;
918 t9
= HEAP
[inv_sbox
| s5
^ RA5
] ^ R99
;
919 tA
= HEAP
[inv_sbox
| s2
^ RA2
] ^ R9A
;
920 tB
= HEAP
[inv_sbox
| sF
^ RAF
] ^ R9B
;
921 tC
= HEAP
[inv_sbox
| sC
^ RAC
] ^ R9C
;
922 tD
= HEAP
[inv_sbox
| s9
^ RA9
] ^ R9D
;
923 tE
= HEAP
[inv_sbox
| s6
^ RA6
] ^ R9E
;
924 tF
= HEAP
[inv_sbox
| s3
^ RA3
] ^ R9F
;
926 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
927 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
928 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
929 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
930 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
931 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
932 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
933 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
934 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
935 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
936 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
937 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
938 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
939 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
940 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
941 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
942 t0
= HEAP
[inv_sbox
| s0
] ^ R80
;
943 t1
= HEAP
[inv_sbox
| s1
] ^ R81
;
944 t2
= HEAP
[inv_sbox
| s2
] ^ R82
;
945 t3
= HEAP
[inv_sbox
| s3
] ^ R83
;
946 t4
= HEAP
[inv_sbox
| s4
] ^ R84
;
947 t5
= HEAP
[inv_sbox
| s5
] ^ R85
;
948 t6
= HEAP
[inv_sbox
| s6
] ^ R86
;
949 t7
= HEAP
[inv_sbox
| s7
] ^ R87
;
950 t8
= HEAP
[inv_sbox
| s8
] ^ R88
;
951 t9
= HEAP
[inv_sbox
| s9
] ^ R89
;
952 tA
= HEAP
[inv_sbox
| sA
] ^ R8A
;
953 tB
= HEAP
[inv_sbox
| sB
] ^ R8B
;
954 tC
= HEAP
[inv_sbox
| sC
] ^ R8C
;
955 tD
= HEAP
[inv_sbox
| sD
] ^ R8D
;
956 tE
= HEAP
[inv_sbox
| sE
] ^ R8E
;
957 tF
= HEAP
[inv_sbox
| sF
] ^ R8F
;
958 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
959 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
960 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
961 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
962 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
963 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
964 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
965 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
966 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
967 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
968 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
969 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
970 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
971 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
972 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
973 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
974 t0
= HEAP
[inv_sbox
| s0
] ^ R70
;
975 t1
= HEAP
[inv_sbox
| s1
] ^ R71
;
976 t2
= HEAP
[inv_sbox
| s2
] ^ R72
;
977 t3
= HEAP
[inv_sbox
| s3
] ^ R73
;
978 t4
= HEAP
[inv_sbox
| s4
] ^ R74
;
979 t5
= HEAP
[inv_sbox
| s5
] ^ R75
;
980 t6
= HEAP
[inv_sbox
| s6
] ^ R76
;
981 t7
= HEAP
[inv_sbox
| s7
] ^ R77
;
982 t8
= HEAP
[inv_sbox
| s8
] ^ R78
;
983 t9
= HEAP
[inv_sbox
| s9
] ^ R79
;
984 tA
= HEAP
[inv_sbox
| sA
] ^ R7A
;
985 tB
= HEAP
[inv_sbox
| sB
] ^ R7B
;
986 tC
= HEAP
[inv_sbox
| sC
] ^ R7C
;
987 tD
= HEAP
[inv_sbox
| sD
] ^ R7D
;
988 tE
= HEAP
[inv_sbox
| sE
] ^ R7E
;
989 tF
= HEAP
[inv_sbox
| sF
] ^ R7F
;
990 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
991 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
992 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
993 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
994 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
995 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
996 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
997 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
998 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
999 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
1000 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
1001 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
1002 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
1003 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
1004 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
1005 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
1006 t0
= HEAP
[inv_sbox
| s0
] ^ R60
;
1007 t1
= HEAP
[inv_sbox
| s1
] ^ R61
;
1008 t2
= HEAP
[inv_sbox
| s2
] ^ R62
;
1009 t3
= HEAP
[inv_sbox
| s3
] ^ R63
;
1010 t4
= HEAP
[inv_sbox
| s4
] ^ R64
;
1011 t5
= HEAP
[inv_sbox
| s5
] ^ R65
;
1012 t6
= HEAP
[inv_sbox
| s6
] ^ R66
;
1013 t7
= HEAP
[inv_sbox
| s7
] ^ R67
;
1014 t8
= HEAP
[inv_sbox
| s8
] ^ R68
;
1015 t9
= HEAP
[inv_sbox
| s9
] ^ R69
;
1016 tA
= HEAP
[inv_sbox
| sA
] ^ R6A
;
1017 tB
= HEAP
[inv_sbox
| sB
] ^ R6B
;
1018 tC
= HEAP
[inv_sbox
| sC
] ^ R6C
;
1019 tD
= HEAP
[inv_sbox
| sD
] ^ R6D
;
1020 tE
= HEAP
[inv_sbox
| sE
] ^ R6E
;
1021 tF
= HEAP
[inv_sbox
| sF
] ^ R6F
;
1022 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
1023 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
1024 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
1025 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
1026 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
1027 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
1028 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
1029 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
1030 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
1031 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
1032 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
1033 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
1034 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
1035 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
1036 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
1037 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
1038 t0
= HEAP
[inv_sbox
| s0
] ^ R50
;
1039 t1
= HEAP
[inv_sbox
| s1
] ^ R51
;
1040 t2
= HEAP
[inv_sbox
| s2
] ^ R52
;
1041 t3
= HEAP
[inv_sbox
| s3
] ^ R53
;
1042 t4
= HEAP
[inv_sbox
| s4
] ^ R54
;
1043 t5
= HEAP
[inv_sbox
| s5
] ^ R55
;
1044 t6
= HEAP
[inv_sbox
| s6
] ^ R56
;
1045 t7
= HEAP
[inv_sbox
| s7
] ^ R57
;
1046 t8
= HEAP
[inv_sbox
| s8
] ^ R58
;
1047 t9
= HEAP
[inv_sbox
| s9
] ^ R59
;
1048 tA
= HEAP
[inv_sbox
| sA
] ^ R5A
;
1049 tB
= HEAP
[inv_sbox
| sB
] ^ R5B
;
1050 tC
= HEAP
[inv_sbox
| sC
] ^ R5C
;
1051 tD
= HEAP
[inv_sbox
| sD
] ^ R5D
;
1052 tE
= HEAP
[inv_sbox
| sE
] ^ R5E
;
1053 tF
= HEAP
[inv_sbox
| sF
] ^ R5F
;
1054 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
1055 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
1056 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
1057 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
1058 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
1059 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
1060 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
1061 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
1062 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
1063 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
1064 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
1065 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
1066 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
1067 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
1068 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
1069 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
1070 t0
= HEAP
[inv_sbox
| s0
] ^ R40
;
1071 t1
= HEAP
[inv_sbox
| s1
] ^ R41
;
1072 t2
= HEAP
[inv_sbox
| s2
] ^ R42
;
1073 t3
= HEAP
[inv_sbox
| s3
] ^ R43
;
1074 t4
= HEAP
[inv_sbox
| s4
] ^ R44
;
1075 t5
= HEAP
[inv_sbox
| s5
] ^ R45
;
1076 t6
= HEAP
[inv_sbox
| s6
] ^ R46
;
1077 t7
= HEAP
[inv_sbox
| s7
] ^ R47
;
1078 t8
= HEAP
[inv_sbox
| s8
] ^ R48
;
1079 t9
= HEAP
[inv_sbox
| s9
] ^ R49
;
1080 tA
= HEAP
[inv_sbox
| sA
] ^ R4A
;
1081 tB
= HEAP
[inv_sbox
| sB
] ^ R4B
;
1082 tC
= HEAP
[inv_sbox
| sC
] ^ R4C
;
1083 tD
= HEAP
[inv_sbox
| sD
] ^ R4D
;
1084 tE
= HEAP
[inv_sbox
| sE
] ^ R4E
;
1085 tF
= HEAP
[inv_sbox
| sF
] ^ R4F
;
1086 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
1087 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
1088 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
1089 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
1090 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
1091 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
1092 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
1093 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
1094 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
1095 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
1096 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
1097 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
1098 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
1099 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
1100 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
1101 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
1102 t0
= HEAP
[inv_sbox
| s0
] ^ R30
;
1103 t1
= HEAP
[inv_sbox
| s1
] ^ R31
;
1104 t2
= HEAP
[inv_sbox
| s2
] ^ R32
;
1105 t3
= HEAP
[inv_sbox
| s3
] ^ R33
;
1106 t4
= HEAP
[inv_sbox
| s4
] ^ R34
;
1107 t5
= HEAP
[inv_sbox
| s5
] ^ R35
;
1108 t6
= HEAP
[inv_sbox
| s6
] ^ R36
;
1109 t7
= HEAP
[inv_sbox
| s7
] ^ R37
;
1110 t8
= HEAP
[inv_sbox
| s8
] ^ R38
;
1111 t9
= HEAP
[inv_sbox
| s9
] ^ R39
;
1112 tA
= HEAP
[inv_sbox
| sA
] ^ R3A
;
1113 tB
= HEAP
[inv_sbox
| sB
] ^ R3B
;
1114 tC
= HEAP
[inv_sbox
| sC
] ^ R3C
;
1115 tD
= HEAP
[inv_sbox
| sD
] ^ R3D
;
1116 tE
= HEAP
[inv_sbox
| sE
] ^ R3E
;
1117 tF
= HEAP
[inv_sbox
| sF
] ^ R3F
;
1118 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
1119 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
1120 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
1121 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
1122 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
1123 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
1124 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
1125 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
1126 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
1127 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
1128 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
1129 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
1130 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
1131 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
1132 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
1133 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
1134 t0
= HEAP
[inv_sbox
| s0
] ^ R20
;
1135 t1
= HEAP
[inv_sbox
| s1
] ^ R21
;
1136 t2
= HEAP
[inv_sbox
| s2
] ^ R22
;
1137 t3
= HEAP
[inv_sbox
| s3
] ^ R23
;
1138 t4
= HEAP
[inv_sbox
| s4
] ^ R24
;
1139 t5
= HEAP
[inv_sbox
| s5
] ^ R25
;
1140 t6
= HEAP
[inv_sbox
| s6
] ^ R26
;
1141 t7
= HEAP
[inv_sbox
| s7
] ^ R27
;
1142 t8
= HEAP
[inv_sbox
| s8
] ^ R28
;
1143 t9
= HEAP
[inv_sbox
| s9
] ^ R29
;
1144 tA
= HEAP
[inv_sbox
| sA
] ^ R2A
;
1145 tB
= HEAP
[inv_sbox
| sB
] ^ R2B
;
1146 tC
= HEAP
[inv_sbox
| sC
] ^ R2C
;
1147 tD
= HEAP
[inv_sbox
| sD
] ^ R2D
;
1148 tE
= HEAP
[inv_sbox
| sE
] ^ R2E
;
1149 tF
= HEAP
[inv_sbox
| sF
] ^ R2F
;
1150 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
1151 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
1152 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
1153 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
1154 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
1155 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
1156 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
1157 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
1158 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
1159 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
1160 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
1161 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
1162 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
1163 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
1164 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
1165 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
1166 t0
= HEAP
[inv_sbox
| s0
] ^ R10
;
1167 t1
= HEAP
[inv_sbox
| s1
] ^ R11
;
1168 t2
= HEAP
[inv_sbox
| s2
] ^ R12
;
1169 t3
= HEAP
[inv_sbox
| s3
] ^ R13
;
1170 t4
= HEAP
[inv_sbox
| s4
] ^ R14
;
1171 t5
= HEAP
[inv_sbox
| s5
] ^ R15
;
1172 t6
= HEAP
[inv_sbox
| s6
] ^ R16
;
1173 t7
= HEAP
[inv_sbox
| s7
] ^ R17
;
1174 t8
= HEAP
[inv_sbox
| s8
] ^ R18
;
1175 t9
= HEAP
[inv_sbox
| s9
] ^ R19
;
1176 tA
= HEAP
[inv_sbox
| sA
] ^ R1A
;
1177 tB
= HEAP
[inv_sbox
| sB
] ^ R1B
;
1178 tC
= HEAP
[inv_sbox
| sC
] ^ R1C
;
1179 tD
= HEAP
[inv_sbox
| sD
] ^ R1D
;
1180 tE
= HEAP
[inv_sbox
| sE
] ^ R1E
;
1181 tF
= HEAP
[inv_sbox
| sF
] ^ R1F
;
1182 s0
= HEAP
[xE
| t0
] ^ HEAP
[xB
| t1
] ^ HEAP
[xD
| t2
] ^ HEAP
[x9
| t3
];
1183 s1
= HEAP
[x9
| tC
] ^ HEAP
[xE
| tD
] ^ HEAP
[xB
| tE
] ^ HEAP
[xD
| tF
];
1184 s2
= HEAP
[xD
| t8
] ^ HEAP
[x9
| t9
] ^ HEAP
[xE
| tA
] ^ HEAP
[xB
| tB
];
1185 s3
= HEAP
[xB
| t4
] ^ HEAP
[xD
| t5
] ^ HEAP
[x9
| t6
] ^ HEAP
[xE
| t7
];
1186 s4
= HEAP
[xE
| t4
] ^ HEAP
[xB
| t5
] ^ HEAP
[xD
| t6
] ^ HEAP
[x9
| t7
];
1187 s5
= HEAP
[x9
| t0
] ^ HEAP
[xE
| t1
] ^ HEAP
[xB
| t2
] ^ HEAP
[xD
| t3
];
1188 s6
= HEAP
[xD
| tC
] ^ HEAP
[x9
| tD
] ^ HEAP
[xE
| tE
] ^ HEAP
[xB
| tF
];
1189 s7
= HEAP
[xB
| t8
] ^ HEAP
[xD
| t9
] ^ HEAP
[x9
| tA
] ^ HEAP
[xE
| tB
];
1190 s8
= HEAP
[xE
| t8
] ^ HEAP
[xB
| t9
] ^ HEAP
[xD
| tA
] ^ HEAP
[x9
| tB
];
1191 s9
= HEAP
[x9
| t4
] ^ HEAP
[xE
| t5
] ^ HEAP
[xB
| t6
] ^ HEAP
[xD
| t7
];
1192 sA
= HEAP
[xD
| t0
] ^ HEAP
[x9
| t1
] ^ HEAP
[xE
| t2
] ^ HEAP
[xB
| t3
];
1193 sB
= HEAP
[xB
| tC
] ^ HEAP
[xD
| tD
] ^ HEAP
[x9
| tE
] ^ HEAP
[xE
| tF
];
1194 sC
= HEAP
[xE
| tC
] ^ HEAP
[xB
| tD
] ^ HEAP
[xD
| tE
] ^ HEAP
[x9
| tF
];
1195 sD
= HEAP
[x9
| t8
] ^ HEAP
[xE
| t9
] ^ HEAP
[xB
| tA
] ^ HEAP
[xD
| tB
];
1196 sE
= HEAP
[xD
| t4
] ^ HEAP
[x9
| t5
] ^ HEAP
[xE
| t6
] ^ HEAP
[xB
| t7
];
1197 sF
= HEAP
[xB
| t0
] ^ HEAP
[xD
| t1
] ^ HEAP
[x9
| t2
] ^ HEAP
[xE
| t3
];
1198 S0
= HEAP
[inv_sbox
| s0
] ^ R00
;
1199 S1
= HEAP
[inv_sbox
| s1
] ^ R01
;
1200 S2
= HEAP
[inv_sbox
| s2
] ^ R02
;
1201 S3
= HEAP
[inv_sbox
| s3
] ^ R03
;
1202 S4
= HEAP
[inv_sbox
| s4
] ^ R04
;
1203 S5
= HEAP
[inv_sbox
| s5
] ^ R05
;
1204 S6
= HEAP
[inv_sbox
| s6
] ^ R06
;
1205 S7
= HEAP
[inv_sbox
| s7
] ^ R07
;
1206 S8
= HEAP
[inv_sbox
| s8
] ^ R08
;
1207 S9
= HEAP
[inv_sbox
| s9
] ^ R09
;
1208 SA
= HEAP
[inv_sbox
| sA
] ^ R0A
;
1209 SB
= HEAP
[inv_sbox
| sB
] ^ R0B
;
1210 SC
= HEAP
[inv_sbox
| sC
] ^ R0C
;
1211 SD
= HEAP
[inv_sbox
| sD
] ^ R0D
;
1212 SE
= HEAP
[inv_sbox
| sE
] ^ R0E
;
1213 SF
= HEAP
[inv_sbox
| sF
] ^ R0F
;
1215 function init_state(s0
, s1
, s2
, s3
, s4
, s5
, s6
, s7
, s8
, s9
, sA
, sB
, sC
, sD
, sE
, sF
) {
1249 function save_state(offset
) {
1250 offset
= offset
| 0;
1252 HEAP
[offset
| 1] = S1
;
1253 HEAP
[offset
| 2] = S2
;
1254 HEAP
[offset
| 3] = S3
;
1255 HEAP
[offset
| 4] = S4
;
1256 HEAP
[offset
| 5] = S5
;
1257 HEAP
[offset
| 6] = S6
;
1258 HEAP
[offset
| 7] = S7
;
1259 HEAP
[offset
| 8] = S8
;
1260 HEAP
[offset
| 9] = S9
;
1261 HEAP
[offset
| 10] = SA
;
1262 HEAP
[offset
| 11] = SB
;
1263 HEAP
[offset
| 12] = SC
;
1264 HEAP
[offset
| 13] = SD
;
1265 HEAP
[offset
| 14] = SE
;
1266 HEAP
[offset
| 15] = SF
;
1268 function init_key_128(k0
, k1
, k2
, k3
, k4
, k5
, k6
, k7
, k8
, k9
, kA
, kB
, kC
, kD
, kE
, kF
) {
1304 function init_key_256(k00
, k01
, k02
, k03
, k04
, k05
, k06
, k07
, k08
, k09
, k0A
, k0B
, k0C
, k0D
, k0E
, k0F
, k10
, k11
, k12
, k13
, k14
, k15
, k16
, k17
, k18
, k19
, k1A
, k1B
, k1C
, k1D
, k1E
, k1F
) {
1372 function cbc_encrypt(offset
, length
) {
1373 offset
= offset
| 0;
1374 length
= length
| 0;
1376 if (offset
& 15) return -1;
1377 while ((length
| 0) >= 16) {
1378 _encrypt(S0
^ HEAP
[offset
], S1
^ HEAP
[offset
| 1], S2
^ HEAP
[offset
| 2], S3
^ HEAP
[offset
| 3], S4
^ HEAP
[offset
| 4], S5
^ HEAP
[offset
| 5], S6
^ HEAP
[offset
| 6], S7
^ HEAP
[offset
| 7], S8
^ HEAP
[offset
| 8], S9
^ HEAP
[offset
| 9], SA
^ HEAP
[offset
| 10], SB
^ HEAP
[offset
| 11], SC
^ HEAP
[offset
| 12], SD
^ HEAP
[offset
| 13], SE
^ HEAP
[offset
| 14], SF
^ HEAP
[offset
| 15]);
1380 HEAP
[offset
| 1] = S1
;
1381 HEAP
[offset
| 2] = S2
;
1382 HEAP
[offset
| 3] = S3
;
1383 HEAP
[offset
| 4] = S4
;
1384 HEAP
[offset
| 5] = S5
;
1385 HEAP
[offset
| 6] = S6
;
1386 HEAP
[offset
| 7] = S7
;
1387 HEAP
[offset
| 8] = S8
;
1388 HEAP
[offset
| 9] = S9
;
1389 HEAP
[offset
| 10] = SA
;
1390 HEAP
[offset
| 11] = SB
;
1391 HEAP
[offset
| 12] = SC
;
1392 HEAP
[offset
| 13] = SD
;
1393 HEAP
[offset
| 14] = SE
;
1394 HEAP
[offset
| 15] = SF
;
1395 offset
= offset
+ 16 | 0;
1396 length
= length
- 16 | 0;
1397 encrypted
= encrypted
+ 16 | 0;
1399 return encrypted
| 0;
1401 function cbc_decrypt(offset
, length
) {
1402 offset
= offset
| 0;
1403 length
= length
| 0;
1404 var iv0
= 0, iv1
= 0, iv2
= 0, iv3
= 0, iv4
= 0, iv5
= 0, iv6
= 0, iv7
= 0, iv8
= 0, iv9
= 0, ivA
= 0, ivB
= 0, ivC
= 0, ivD
= 0, ivE
= 0, ivF
= 0, decrypted
= 0;
1405 if (offset
& 15) return -1;
1422 while ((length
| 0) >= 16) {
1423 _decrypt(HEAP
[offset
] | 0, HEAP
[offset
| 1] | 0, HEAP
[offset
| 2] | 0, HEAP
[offset
| 3] | 0, HEAP
[offset
| 4] | 0, HEAP
[offset
| 5] | 0, HEAP
[offset
| 6] | 0, HEAP
[offset
| 7] | 0, HEAP
[offset
| 8] | 0, HEAP
[offset
| 9] | 0, HEAP
[offset
| 10] | 0, HEAP
[offset
| 11] | 0, HEAP
[offset
| 12] | 0, HEAP
[offset
| 13] | 0, HEAP
[offset
| 14] | 0, HEAP
[offset
| 15] | 0);
1425 iv0
= HEAP
[offset
] | 0;
1427 iv1
= HEAP
[offset
| 1] | 0;
1429 iv2
= HEAP
[offset
| 2] | 0;
1431 iv3
= HEAP
[offset
| 3] | 0;
1433 iv4
= HEAP
[offset
| 4] | 0;
1435 iv5
= HEAP
[offset
| 5] | 0;
1437 iv6
= HEAP
[offset
| 6] | 0;
1439 iv7
= HEAP
[offset
| 7] | 0;
1441 iv8
= HEAP
[offset
| 8] | 0;
1443 iv9
= HEAP
[offset
| 9] | 0;
1445 ivA
= HEAP
[offset
| 10] | 0;
1447 ivB
= HEAP
[offset
| 11] | 0;
1449 ivC
= HEAP
[offset
| 12] | 0;
1451 ivD
= HEAP
[offset
| 13] | 0;
1453 ivE
= HEAP
[offset
| 14] | 0;
1455 ivF
= HEAP
[offset
| 15] | 0;
1457 HEAP
[offset
| 1] = S1
;
1458 HEAP
[offset
| 2] = S2
;
1459 HEAP
[offset
| 3] = S3
;
1460 HEAP
[offset
| 4] = S4
;
1461 HEAP
[offset
| 5] = S5
;
1462 HEAP
[offset
| 6] = S6
;
1463 HEAP
[offset
| 7] = S7
;
1464 HEAP
[offset
| 8] = S8
;
1465 HEAP
[offset
| 9] = S9
;
1466 HEAP
[offset
| 10] = SA
;
1467 HEAP
[offset
| 11] = SB
;
1468 HEAP
[offset
| 12] = SC
;
1469 HEAP
[offset
| 13] = SD
;
1470 HEAP
[offset
| 14] = SE
;
1471 HEAP
[offset
| 15] = SF
;
1472 offset
= offset
+ 16 | 0;
1473 length
= length
- 16 | 0;
1474 decrypted
= decrypted
+ 16 | 0;
1492 return decrypted
| 0;
1494 function cbc_mac(offset
, length
, output
) {
1495 offset
= offset
| 0;
1496 length
= length
| 0;
1497 output
= output
| 0;
1498 if (offset
& 15) return -1;
1499 if (~output
) if (output
& 31) return -1;
1500 while ((length
| 0) >= 16) {
1501 _encrypt(S0
^ HEAP
[offset
], S1
^ HEAP
[offset
| 1], S2
^ HEAP
[offset
| 2], S3
^ HEAP
[offset
| 3], S4
^ HEAP
[offset
| 4], S5
^ HEAP
[offset
| 5], S6
^ HEAP
[offset
| 6], S7
^ HEAP
[offset
| 7], S8
^ HEAP
[offset
| 8], S9
^ HEAP
[offset
| 9], SA
^ HEAP
[offset
| 10], SB
^ HEAP
[offset
| 11], SC
^ HEAP
[offset
| 12], SD
^ HEAP
[offset
| 13], SE
^ HEAP
[offset
| 14], SF
^ HEAP
[offset
| 15]);
1502 offset
= offset
+ 16 | 0;
1503 length
= length
- 16 | 0;
1505 if ((length
| 0) > 0) {
1506 S0
= S0
^ HEAP
[offset
];
1507 if ((length
| 0) > 1) S1
= S1
^ HEAP
[offset
| 1];
1508 if ((length
| 0) > 2) S2
= S2
^ HEAP
[offset
| 2];
1509 if ((length
| 0) > 3) S3
= S3
^ HEAP
[offset
| 3];
1510 if ((length
| 0) > 4) S4
= S4
^ HEAP
[offset
| 4];
1511 if ((length
| 0) > 5) S5
= S5
^ HEAP
[offset
| 5];
1512 if ((length
| 0) > 6) S6
= S6
^ HEAP
[offset
| 6];
1513 if ((length
| 0) > 7) S7
= S7
^ HEAP
[offset
| 7];
1514 if ((length
| 0) > 8) S8
= S8
^ HEAP
[offset
| 8];
1515 if ((length
| 0) > 9) S9
= S9
^ HEAP
[offset
| 9];
1516 if ((length
| 0) > 10) SA
= SA
^ HEAP
[offset
| 10];
1517 if ((length
| 0) > 11) SB
= SB
^ HEAP
[offset
| 11];
1518 if ((length
| 0) > 12) SC
= SC
^ HEAP
[offset
| 12];
1519 if ((length
| 0) > 13) SD
= SD
^ HEAP
[offset
| 13];
1520 if ((length
| 0) > 14) SE
= SE
^ HEAP
[offset
| 14];
1521 _encrypt(S0
, S1
, S2
, S3
, S4
, S5
, S6
, S7
, S8
, S9
, SA
, SB
, SC
, SD
, SE
, SF
);
1522 offset
= offset
+ length
| 0;
1526 HEAP
[output
| 0] = S0
;
1527 HEAP
[output
| 1] = S1
;
1528 HEAP
[output
| 2] = S2
;
1529 HEAP
[output
| 3] = S3
;
1530 HEAP
[output
| 4] = S4
;
1531 HEAP
[output
| 5] = S5
;
1532 HEAP
[output
| 6] = S6
;
1533 HEAP
[output
| 7] = S7
;
1534 HEAP
[output
| 8] = S8
;
1535 HEAP
[output
| 9] = S9
;
1536 HEAP
[output
| 10] = SA
;
1537 HEAP
[output
| 11] = SB
;
1538 HEAP
[output
| 12] = SC
;
1539 HEAP
[output
| 13] = SD
;
1540 HEAP
[output
| 14] = SE
;
1541 HEAP
[output
| 15] = SF
;
1545 function ccm_encrypt(offset
, length
, nonce0
, nonce1
, nonce2
, nonce3
, nonce4
, nonce5
, nonce6
, nonce7
, nonce8
, nonce9
, nonceA
, nonceB
, nonceC
, nonceD
, counter0
, counter1
) {
1546 offset
= offset
| 0;
1547 length
= length
| 0;
1548 nonce0
= nonce0
| 0;
1549 nonce1
= nonce1
| 0;
1550 nonce2
= nonce2
| 0;
1551 nonce3
= nonce3
| 0;
1552 nonce4
= nonce4
| 0;
1553 nonce5
= nonce5
| 0;
1554 nonce6
= nonce6
| 0;
1555 nonce7
= nonce7
| 0;
1556 nonce8
= nonce8
| 0;
1557 nonce9
= nonce9
| 0;
1558 nonceA
= nonceA
| 0;
1559 nonceB
= nonceB
| 0;
1560 nonceC
= nonceC
| 0;
1561 nonceD
= nonceD
| 0;
1562 counter0
= counter0
| 0;
1563 counter1
= counter1
| 0;
1564 var iv0
= 0, iv1
= 0, iv2
= 0, iv3
= 0, iv4
= 0, iv5
= 0, iv6
= 0, iv7
= 0, iv8
= 0, iv9
= 0, ivA
= 0, ivB
= 0, ivC
= 0, ivD
= 0, ivE
= 0, ivF
= 0, s0
= 0, s1
= 0, s2
= 0, s3
= 0, s4
= 0, s5
= 0, s6
= 0, s7
= 0, s8
= 0, s9
= 0, sA
= 0, sB
= 0, sC
= 0, sD
= 0, sE
= 0, sF
= 0, encrypted
= 0;
1565 if (offset
& 15) return -1;
1566 iv0
= S0
, iv1
= S1
, iv2
= S2
, iv3
= S3
, iv4
= S4
, iv5
= S5
, iv6
= S6
, iv7
= S7
,
1567 iv8
= S8
, iv9
= S9
, ivA
= SA
, ivB
= SB
, ivC
= SC
, ivD
= SD
, ivE
= SE
, ivF
= SF
;
1568 while ((length
| 0) >= 16) {
1569 s0
= HEAP
[offset
] | 0;
1570 s1
= HEAP
[offset
| 1] | 0;
1571 s2
= HEAP
[offset
| 2] | 0;
1572 s3
= HEAP
[offset
| 3] | 0;
1573 s4
= HEAP
[offset
| 4] | 0;
1574 s5
= HEAP
[offset
| 5] | 0;
1575 s6
= HEAP
[offset
| 6] | 0;
1576 s7
= HEAP
[offset
| 7] | 0;
1577 s8
= HEAP
[offset
| 8] | 0;
1578 s9
= HEAP
[offset
| 9] | 0;
1579 sA
= HEAP
[offset
| 10] | 0;
1580 sB
= HEAP
[offset
| 11] | 0;
1581 sC
= HEAP
[offset
| 12] | 0;
1582 sD
= HEAP
[offset
| 13] | 0;
1583 sE
= HEAP
[offset
| 14] | 0;
1584 sF
= HEAP
[offset
| 15] | 0;
1585 _encrypt(nonce0
, nonce1
, nonce2
, nonce3
, nonce4
, nonce5
, nonce6
, nonce7
, nonce8
^ counter0
>>> 24, nonce9
^ counter0
>>> 16 & 255, nonceA
^ counter0
>>> 8 & 255, nonceB
^ counter0
& 255, nonceC
^ counter1
>>> 24, nonceD
^ counter1
>>> 16 & 255, counter1
>>> 8 & 255, counter1
& 255);
1586 HEAP
[offset
] = s0
^ S0
;
1587 HEAP
[offset
| 1] = s1
^ S1
;
1588 HEAP
[offset
| 2] = s2
^ S2
;
1589 HEAP
[offset
| 3] = s3
^ S3
;
1590 HEAP
[offset
| 4] = s4
^ S4
;
1591 HEAP
[offset
| 5] = s5
^ S5
;
1592 HEAP
[offset
| 6] = s6
^ S6
;
1593 HEAP
[offset
| 7] = s7
^ S7
;
1594 HEAP
[offset
| 8] = s8
^ S8
;
1595 HEAP
[offset
| 9] = s9
^ S9
;
1596 HEAP
[offset
| 10] = sA
^ SA
;
1597 HEAP
[offset
| 11] = sB
^ SB
;
1598 HEAP
[offset
| 12] = sC
^ SC
;
1599 HEAP
[offset
| 13] = sD
^ SD
;
1600 HEAP
[offset
| 14] = sE
^ SE
;
1601 HEAP
[offset
| 15] = sF
^ SF
;
1602 _encrypt(s0
^ iv0
, s1
^ iv1
, s2
^ iv2
, s3
^ iv3
, s4
^ iv4
, s5
^ iv5
, s6
^ iv6
, s7
^ iv7
, s8
^ iv8
, s9
^ iv9
, sA
^ ivA
, sB
^ ivB
, sC
^ ivC
, sD
^ ivD
, sE
^ ivE
, sF
^ ivF
);
1603 iv0
= S0
, iv1
= S1
, iv2
= S2
, iv3
= S3
, iv4
= S4
, iv5
= S5
, iv6
= S6
, iv7
= S7
,
1604 iv8
= S8
, iv9
= S9
, ivA
= SA
, ivB
= SB
, ivC
= SC
, ivD
= SD
, ivE
= SE
, ivF
= SF
;
1605 encrypted
= encrypted
+ 16 | 0;
1606 offset
= offset
+ 16 | 0;
1607 length
= length
- 16 | 0;
1608 counter1
= counter1
+ 1 | 0;
1609 if ((counter1
| 0) == 0) counter0
= counter0
+ 1 | 0;
1611 if ((length
| 0) > 0) {
1612 s0
= HEAP
[offset
] | 0;
1613 s1
= (length
| 0) > 1 ? HEAP
[offset
| 1] | 0 : 0;
1614 s2
= (length
| 0) > 2 ? HEAP
[offset
| 2] | 0 : 0;
1615 s3
= (length
| 0) > 3 ? HEAP
[offset
| 3] | 0 : 0;
1616 s4
= (length
| 0) > 4 ? HEAP
[offset
| 4] | 0 : 0;
1617 s5
= (length
| 0) > 5 ? HEAP
[offset
| 5] | 0 : 0;
1618 s6
= (length
| 0) > 6 ? HEAP
[offset
| 6] | 0 : 0;
1619 s7
= (length
| 0) > 7 ? HEAP
[offset
| 7] | 0 : 0;
1620 s8
= (length
| 0) > 8 ? HEAP
[offset
| 8] | 0 : 0;
1621 s9
= (length
| 0) > 9 ? HEAP
[offset
| 9] | 0 : 0;
1622 sA
= (length
| 0) > 10 ? HEAP
[offset
| 10] | 0 : 0;
1623 sB
= (length
| 0) > 11 ? HEAP
[offset
| 11] | 0 : 0;
1624 sC
= (length
| 0) > 12 ? HEAP
[offset
| 12] | 0 : 0;
1625 sD
= (length
| 0) > 13 ? HEAP
[offset
| 13] | 0 : 0;
1626 sE
= (length
| 0) > 14 ? HEAP
[offset
| 14] | 0 : 0;
1627 _encrypt(nonce0
, nonce1
, nonce2
, nonce3
, nonce4
, nonce5
, nonce6
, nonce7
, nonce8
^ counter0
>>> 24, nonce9
^ counter0
>>> 16 & 255, nonceA
^ counter0
>>> 8 & 255, nonceB
^ counter0
& 255, nonceC
^ counter1
>>> 24, nonceD
^ counter1
>>> 16 & 255, counter1
>>> 8 & 255, counter1
& 255);
1628 HEAP
[offset
] = s0
^ S0
;
1629 if ((length
| 0) > 1) HEAP
[offset
| 1] = s1
^ S1
;
1630 if ((length
| 0) > 2) HEAP
[offset
| 2] = s2
^ S2
;
1631 if ((length
| 0) > 3) HEAP
[offset
| 3] = s3
^ S3
;
1632 if ((length
| 0) > 4) HEAP
[offset
| 4] = s4
^ S4
;
1633 if ((length
| 0) > 5) HEAP
[offset
| 5] = s5
^ S5
;
1634 if ((length
| 0) > 6) HEAP
[offset
| 6] = s6
^ S6
;
1635 if ((length
| 0) > 7) HEAP
[offset
| 7] = s7
^ S7
;
1636 if ((length
| 0) > 8) HEAP
[offset
| 8] = s8
^ S8
;
1637 if ((length
| 0) > 9) HEAP
[offset
| 9] = s9
^ S9
;
1638 if ((length
| 0) > 10) HEAP
[offset
| 10] = sA
^ SA
;
1639 if ((length
| 0) > 11) HEAP
[offset
| 11] = sB
^ SB
;
1640 if ((length
| 0) > 12) HEAP
[offset
| 12] = sC
^ SC
;
1641 if ((length
| 0) > 13) HEAP
[offset
| 13] = sD
^ SD
;
1642 if ((length
| 0) > 14) HEAP
[offset
| 14] = sE
^ SE
;
1643 _encrypt(s0
^ iv0
, s1
^ iv1
, s2
^ iv2
, s3
^ iv3
, s4
^ iv4
, s5
^ iv5
, s6
^ iv6
, s7
^ iv7
, s8
^ iv8
, s9
^ iv9
, sA
^ ivA
, sB
^ ivB
, sC
^ ivC
, sD
^ ivD
, sE
^ ivE
, ivF
);
1644 iv0
= S0
, iv1
= S1
, iv2
= S2
, iv3
= S3
, iv4
= S4
, iv5
= S5
, iv6
= S6
, iv7
= S7
,
1645 iv8
= S8
, iv9
= S9
, ivA
= SA
, ivB
= SB
, ivC
= SC
, ivD
= SD
, ivE
= SE
, ivF
= SF
;
1646 encrypted
= encrypted
+ length
| 0;
1647 offset
= offset
+ length
| 0;
1649 counter1
= counter1
+ 1 | 0;
1650 if ((counter1
| 0) == 0) counter0
= counter0
+ 1 | 0;
1652 return encrypted
| 0;
1654 function ccm_decrypt(offset
, length
, nonce0
, nonce1
, nonce2
, nonce3
, nonce4
, nonce5
, nonce6
, nonce7
, nonce8
, nonce9
, nonceA
, nonceB
, nonceC
, nonceD
, counter0
, counter1
) {
1655 offset
= offset
| 0;
1656 length
= length
| 0;
1657 nonce0
= nonce0
| 0;
1658 nonce1
= nonce1
| 0;
1659 nonce2
= nonce2
| 0;
1660 nonce3
= nonce3
| 0;
1661 nonce4
= nonce4
| 0;
1662 nonce5
= nonce5
| 0;
1663 nonce6
= nonce6
| 0;
1664 nonce7
= nonce7
| 0;
1665 nonce8
= nonce8
| 0;
1666 nonce9
= nonce9
| 0;
1667 nonceA
= nonceA
| 0;
1668 nonceB
= nonceB
| 0;
1669 nonceC
= nonceC
| 0;
1670 nonceD
= nonceD
| 0;
1671 counter0
= counter0
| 0;
1672 counter1
= counter1
| 0;
1673 var iv0
= 0, iv1
= 0, iv2
= 0, iv3
= 0, iv4
= 0, iv5
= 0, iv6
= 0, iv7
= 0, iv8
= 0, iv9
= 0, ivA
= 0, ivB
= 0, ivC
= 0, ivD
= 0, ivE
= 0, ivF
= 0, s0
= 0, s1
= 0, s2
= 0, s3
= 0, s4
= 0, s5
= 0, s6
= 0, s7
= 0, s8
= 0, s9
= 0, sA
= 0, sB
= 0, sC
= 0, sD
= 0, sE
= 0, sF
= 0, decrypted
= 0;
1674 if (offset
& 15) return -1;
1675 iv0
= S0
, iv1
= S1
, iv2
= S2
, iv3
= S3
, iv4
= S4
, iv5
= S5
, iv6
= S6
, iv7
= S7
,
1676 iv8
= S8
, iv9
= S9
, ivA
= SA
, ivB
= SB
, ivC
= SC
, ivD
= SD
, ivE
= SE
, ivF
= SF
;
1677 while ((length
| 0) >= 16) {
1678 _encrypt(nonce0
, nonce1
, nonce2
, nonce3
, nonce4
, nonce5
, nonce6
, nonce7
, nonce8
^ counter0
>>> 24, nonce9
^ counter0
>>> 16 & 255, nonceA
^ counter0
>>> 8 & 255, nonceB
^ counter0
& 255, nonceC
^ counter1
>>> 24, nonceD
^ counter1
>>> 16 & 255, counter1
>>> 8 & 255, counter1
& 255);
1679 HEAP
[offset
] = s0
= HEAP
[offset
] ^ S0
;
1680 HEAP
[offset
| 1] = s1
= HEAP
[offset
| 1] ^ S1
;
1681 HEAP
[offset
| 2] = s2
= HEAP
[offset
| 2] ^ S2
;
1682 HEAP
[offset
| 3] = s3
= HEAP
[offset
| 3] ^ S3
;
1683 HEAP
[offset
| 4] = s4
= HEAP
[offset
| 4] ^ S4
;
1684 HEAP
[offset
| 5] = s5
= HEAP
[offset
| 5] ^ S5
;
1685 HEAP
[offset
| 6] = s6
= HEAP
[offset
| 6] ^ S6
;
1686 HEAP
[offset
| 7] = s7
= HEAP
[offset
| 7] ^ S7
;
1687 HEAP
[offset
| 8] = s8
= HEAP
[offset
| 8] ^ S8
;
1688 HEAP
[offset
| 9] = s9
= HEAP
[offset
| 9] ^ S9
;
1689 HEAP
[offset
| 10] = sA
= HEAP
[offset
| 10] ^ SA
;
1690 HEAP
[offset
| 11] = sB
= HEAP
[offset
| 11] ^ SB
;
1691 HEAP
[offset
| 12] = sC
= HEAP
[offset
| 12] ^ SC
;
1692 HEAP
[offset
| 13] = sD
= HEAP
[offset
| 13] ^ SD
;
1693 HEAP
[offset
| 14] = sE
= HEAP
[offset
| 14] ^ SE
;
1694 HEAP
[offset
| 15] = sF
= HEAP
[offset
| 15] ^ SF
;
1695 _encrypt(s0
^ iv0
, s1
^ iv1
, s2
^ iv2
, s3
^ iv3
, s4
^ iv4
, s5
^ iv5
, s6
^ iv6
, s7
^ iv7
, s8
^ iv8
, s9
^ iv9
, sA
^ ivA
, sB
^ ivB
, sC
^ ivC
, sD
^ ivD
, sE
^ ivE
, sF
^ ivF
);
1696 iv0
= S0
, iv1
= S1
, iv2
= S2
, iv3
= S3
, iv4
= S4
, iv5
= S5
, iv6
= S6
, iv7
= S7
,
1697 iv8
= S8
, iv9
= S9
, ivA
= SA
, ivB
= SB
, ivC
= SC
, ivD
= SD
, ivE
= SE
, ivF
= SF
;
1698 decrypted
= decrypted
+ 16 | 0;
1699 offset
= offset
+ 16 | 0;
1700 length
= length
- 16 | 0;
1701 counter1
= counter1
+ 1 | 0;
1702 if ((counter1
| 0) == 0) counter0
= counter0
+ 1 | 0;
1704 if ((length
| 0) > 0) {
1705 _encrypt(nonce0
, nonce1
, nonce2
, nonce3
, nonce4
, nonce5
, nonce6
, nonce7
, nonce8
^ counter0
>>> 24, nonce9
^ counter0
>>> 16 & 255, nonceA
^ counter0
>>> 8 & 255, nonceB
^ counter0
& 255, nonceC
^ counter1
>>> 24, nonceD
^ counter1
>>> 16 & 255, counter1
>>> 8 & 255, counter1
& 255);
1706 s0
= HEAP
[offset
] ^ S0
;
1707 s1
= (length
| 0) > 1 ? HEAP
[offset
| 1] ^ S1 : 0;
1708 s2
= (length
| 0) > 2 ? HEAP
[offset
| 2] ^ S2 : 0;
1709 s3
= (length
| 0) > 3 ? HEAP
[offset
| 3] ^ S3 : 0;
1710 s4
= (length
| 0) > 4 ? HEAP
[offset
| 4] ^ S4 : 0;
1711 s5
= (length
| 0) > 5 ? HEAP
[offset
| 5] ^ S5 : 0;
1712 s6
= (length
| 0) > 6 ? HEAP
[offset
| 6] ^ S6 : 0;
1713 s7
= (length
| 0) > 7 ? HEAP
[offset
| 7] ^ S7 : 0;
1714 s8
= (length
| 0) > 8 ? HEAP
[offset
| 8] ^ S8 : 0;
1715 s9
= (length
| 0) > 9 ? HEAP
[offset
| 9] ^ S9 : 0;
1716 sA
= (length
| 0) > 10 ? HEAP
[offset
| 10] ^ SA : 0;
1717 sB
= (length
| 0) > 11 ? HEAP
[offset
| 11] ^ SB : 0;
1718 sC
= (length
| 0) > 12 ? HEAP
[offset
| 12] ^ SC : 0;
1719 sD
= (length
| 0) > 13 ? HEAP
[offset
| 13] ^ SD : 0;
1720 sE
= (length
| 0) > 14 ? HEAP
[offset
| 14] ^ SE : 0;
1721 sF
= (length
| 0) > 15 ? HEAP
[offset
| 15] ^ SF : 0;
1723 if ((length
| 0) > 1) HEAP
[offset
| 1] = s1
;
1724 if ((length
| 0) > 2) HEAP
[offset
| 2] = s2
;
1725 if ((length
| 0) > 3) HEAP
[offset
| 3] = s3
;
1726 if ((length
| 0) > 4) HEAP
[offset
| 4] = s4
;
1727 if ((length
| 0) > 5) HEAP
[offset
| 5] = s5
;
1728 if ((length
| 0) > 6) HEAP
[offset
| 6] = s6
;
1729 if ((length
| 0) > 7) HEAP
[offset
| 7] = s7
;
1730 if ((length
| 0) > 8) HEAP
[offset
| 8] = s8
;
1731 if ((length
| 0) > 9) HEAP
[offset
| 9] = s9
;
1732 if ((length
| 0) > 10) HEAP
[offset
| 10] = sA
;
1733 if ((length
| 0) > 11) HEAP
[offset
| 11] = sB
;
1734 if ((length
| 0) > 12) HEAP
[offset
| 12] = sC
;
1735 if ((length
| 0) > 13) HEAP
[offset
| 13] = sD
;
1736 if ((length
| 0) > 14) HEAP
[offset
| 14] = sE
;
1737 _encrypt(s0
^ iv0
, s1
^ iv1
, s2
^ iv2
, s3
^ iv3
, s4
^ iv4
, s5
^ iv5
, s6
^ iv6
, s7
^ iv7
, s8
^ iv8
, s9
^ iv9
, sA
^ ivA
, sB
^ ivB
, sC
^ ivC
, sD
^ ivD
, sE
^ ivE
, sF
^ ivF
);
1738 iv0
= S0
, iv1
= S1
, iv2
= S2
, iv3
= S3
, iv4
= S4
, iv5
= S5
, iv6
= S6
, iv7
= S7
,
1739 iv8
= S8
, iv9
= S9
, ivA
= SA
, ivB
= SB
, ivC
= SC
, ivD
= SD
, ivE
= SE
, ivF
= SF
;
1740 decrypted
= decrypted
+ length
| 0;
1741 offset
= offset
+ length
| 0;
1743 counter1
= counter1
+ 1 | 0;
1744 if ((counter1
| 0) == 0) counter0
= counter0
+ 1 | 0;
1746 return decrypted
| 0;
1748 function cfb_encrypt(offset
, length
) {
1749 offset
= offset
| 0;
1750 length
= length
| 0;
1752 if (offset
& 15) return -1;
1753 while ((length
| 0) >= 16) {
1754 _encrypt(S0
, S1
, S2
, S3
, S4
, S5
, S6
, S7
, S8
, S9
, SA
, SB
, SC
, SD
, SE
, SF
);
1755 S0
= S0
^ HEAP
[offset
];
1756 S1
= S1
^ HEAP
[offset
| 1];
1757 S2
= S2
^ HEAP
[offset
| 2];
1758 S3
= S3
^ HEAP
[offset
| 3];
1759 S4
= S4
^ HEAP
[offset
| 4];
1760 S5
= S5
^ HEAP
[offset
| 5];
1761 S6
= S6
^ HEAP
[offset
| 6];
1762 S7
= S7
^ HEAP
[offset
| 7];
1763 S8
= S8
^ HEAP
[offset
| 8];
1764 S9
= S9
^ HEAP
[offset
| 9];
1765 SA
= SA
^ HEAP
[offset
| 10];
1766 SB
= SB
^ HEAP
[offset
| 11];
1767 SC
= SC
^ HEAP
[offset
| 12];
1768 SD
= SD
^ HEAP
[offset
| 13];
1769 SE
= SE
^ HEAP
[offset
| 14];
1770 SF
= SF
^ HEAP
[offset
| 15];
1772 HEAP
[offset
| 1] = S1
;
1773 HEAP
[offset
| 2] = S2
;
1774 HEAP
[offset
| 3] = S3
;
1775 HEAP
[offset
| 4] = S4
;
1776 HEAP
[offset
| 5] = S5
;
1777 HEAP
[offset
| 6] = S6
;
1778 HEAP
[offset
| 7] = S7
;
1779 HEAP
[offset
| 8] = S8
;
1780 HEAP
[offset
| 9] = S9
;
1781 HEAP
[offset
| 10] = SA
;
1782 HEAP
[offset
| 11] = SB
;
1783 HEAP
[offset
| 12] = SC
;
1784 HEAP
[offset
| 13] = SD
;
1785 HEAP
[offset
| 14] = SE
;
1786 HEAP
[offset
| 15] = SF
;
1787 offset
= offset
+ 16 | 0;
1788 length
= length
- 16 | 0;
1789 encrypted
= encrypted
+ 16 | 0;
1791 if ((length
| 0) > 0) {
1792 _encrypt(S0
, S1
, S2
, S3
, S4
, S5
, S6
, S7
, S8
, S9
, SA
, SB
, SC
, SD
, SE
, SF
);
1793 HEAP
[offset
] = HEAP
[offset
] ^ S0
;
1794 if ((length
| 0) > 1) HEAP
[offset
| 1] = HEAP
[offset
| 1] ^ S1
;
1795 if ((length
| 0) > 2) HEAP
[offset
| 2] = HEAP
[offset
| 2] ^ S2
;
1796 if ((length
| 0) > 3) HEAP
[offset
| 3] = HEAP
[offset
| 3] ^ S3
;
1797 if ((length
| 0) > 4) HEAP
[offset
| 4] = HEAP
[offset
| 4] ^ S4
;
1798 if ((length
| 0) > 5) HEAP
[offset
| 5] = HEAP
[offset
| 5] ^ S5
;
1799 if ((length
| 0) > 6) HEAP
[offset
| 6] = HEAP
[offset
| 6] ^ S6
;
1800 if ((length
| 0) > 7) HEAP
[offset
| 7] = HEAP
[offset
| 7] ^ S7
;
1801 if ((length
| 0) > 8) HEAP
[offset
| 8] = HEAP
[offset
| 8] ^ S8
;
1802 if ((length
| 0) > 9) HEAP
[offset
| 9] = HEAP
[offset
| 9] ^ S9
;
1803 if ((length
| 0) > 10) HEAP
[offset
| 10] = HEAP
[offset
| 10] ^ SA
;
1804 if ((length
| 0) > 11) HEAP
[offset
| 11] = HEAP
[offset
| 11] ^ SB
;
1805 if ((length
| 0) > 12) HEAP
[offset
| 12] = HEAP
[offset
| 12] ^ SC
;
1806 if ((length
| 0) > 13) HEAP
[offset
| 13] = HEAP
[offset
| 13] ^ SD
;
1807 if ((length
| 0) > 14) HEAP
[offset
| 14] = HEAP
[offset
| 14] ^ SE
;
1808 encrypted
= encrypted
+ length
| 0;
1809 offset
= offset
+ length
| 0;
1812 return encrypted
| 0;
1814 function cfb_decrypt(offset
, length
) {
1815 offset
= offset
| 0;
1816 length
= length
| 0;
1817 var iv0
= 0, iv1
= 0, iv2
= 0, iv3
= 0, iv4
= 0, iv5
= 0, iv6
= 0, iv7
= 0, iv8
= 0, iv9
= 0, ivA
= 0, ivB
= 0, ivC
= 0, ivD
= 0, ivE
= 0, ivF
= 0, decrypted
= 0;
1818 if (offset
& 15) return -1;
1819 while ((length
| 0) >= 16) {
1820 _encrypt(S0
, S1
, S2
, S3
, S4
, S5
, S6
, S7
, S8
, S9
, SA
, SB
, SC
, SD
, SE
, SF
);
1821 iv0
= HEAP
[offset
] | 0;
1822 iv1
= HEAP
[offset
| 1] | 0;
1823 iv2
= HEAP
[offset
| 2] | 0;
1824 iv3
= HEAP
[offset
| 3] | 0;
1825 iv4
= HEAP
[offset
| 4] | 0;
1826 iv5
= HEAP
[offset
| 5] | 0;
1827 iv6
= HEAP
[offset
| 6] | 0;
1828 iv7
= HEAP
[offset
| 7] | 0;
1829 iv8
= HEAP
[offset
| 8] | 0;
1830 iv9
= HEAP
[offset
| 9] | 0;
1831 ivA
= HEAP
[offset
| 10] | 0;
1832 ivB
= HEAP
[offset
| 11] | 0;
1833 ivC
= HEAP
[offset
| 12] | 0;
1834 ivD
= HEAP
[offset
| 13] | 0;
1835 ivE
= HEAP
[offset
| 14] | 0;
1836 ivF
= HEAP
[offset
| 15] | 0;
1837 HEAP
[offset
] = S0
^ iv0
;
1838 HEAP
[offset
| 1] = S1
^ iv1
;
1839 HEAP
[offset
| 2] = S2
^ iv2
;
1840 HEAP
[offset
| 3] = S3
^ iv3
;
1841 HEAP
[offset
| 4] = S4
^ iv4
;
1842 HEAP
[offset
| 5] = S5
^ iv5
;
1843 HEAP
[offset
| 6] = S6
^ iv6
;
1844 HEAP
[offset
| 7] = S7
^ iv7
;
1845 HEAP
[offset
| 8] = S8
^ iv8
;
1846 HEAP
[offset
| 9] = S9
^ iv9
;
1847 HEAP
[offset
| 10] = SA
^ ivA
;
1848 HEAP
[offset
| 11] = SB
^ ivB
;
1849 HEAP
[offset
| 12] = SC
^ ivC
;
1850 HEAP
[offset
| 13] = SD
^ ivD
;
1851 HEAP
[offset
| 14] = SE
^ ivE
;
1852 HEAP
[offset
| 15] = SF
^ ivF
;
1869 offset
= offset
+ 16 | 0;
1870 length
= length
- 16 | 0;
1871 decrypted
= decrypted
+ 16 | 0;
1873 if ((length
| 0) > 0) {
1874 _encrypt(S0
, S1
, S2
, S3
, S4
, S5
, S6
, S7
, S8
, S9
, SA
, SB
, SC
, SD
, SE
, SF
);
1875 HEAP
[offset
] = HEAP
[offset
] ^ S0
;
1876 if ((length
| 0) > 1) HEAP
[offset
| 1] = HEAP
[offset
| 1] ^ S1
;
1877 if ((length
| 0) > 2) HEAP
[offset
| 2] = HEAP
[offset
| 2] ^ S2
;
1878 if ((length
| 0) > 3) HEAP
[offset
| 3] = HEAP
[offset
| 3] ^ S3
;
1879 if ((length
| 0) > 4) HEAP
[offset
| 4] = HEAP
[offset
| 4] ^ S4
;
1880 if ((length
| 0) > 5) HEAP
[offset
| 5] = HEAP
[offset
| 5] ^ S5
;
1881 if ((length
| 0) > 6) HEAP
[offset
| 6] = HEAP
[offset
| 6] ^ S6
;
1882 if ((length
| 0) > 7) HEAP
[offset
| 7] = HEAP
[offset
| 7] ^ S7
;
1883 if ((length
| 0) > 8) HEAP
[offset
| 8] = HEAP
[offset
| 8] ^ S8
;
1884 if ((length
| 0) > 9) HEAP
[offset
| 9] = HEAP
[offset
| 9] ^ S9
;
1885 if ((length
| 0) > 10) HEAP
[offset
| 10] = HEAP
[offset
| 10] ^ SA
;
1886 if ((length
| 0) > 11) HEAP
[offset
| 11] = HEAP
[offset
| 11] ^ SB
;
1887 if ((length
| 0) > 12) HEAP
[offset
| 12] = HEAP
[offset
| 12] ^ SC
;
1888 if ((length
| 0) > 13) HEAP
[offset
| 13] = HEAP
[offset
| 13] ^ SD
;
1889 if ((length
| 0) > 14) HEAP
[offset
| 14] = HEAP
[offset
| 14] ^ SE
;
1890 decrypted
= decrypted
+ length
| 0;
1891 offset
= offset
+ length
| 0;
1894 return decrypted
| 0;
1897 init_state: init_state
,
1898 save_state: save_state
,
1899 init_key_128: init_key_128
,
1900 init_key_256: init_key_256
,
1901 cbc_encrypt: cbc_encrypt
,
1902 cbc_decrypt: cbc_decrypt
,
1904 ccm_encrypt: ccm_encrypt
,
1905 ccm_decrypt: ccm_decrypt
,
1906 cfb_encrypt: cfb_encrypt
,
1907 cfb_decrypt: cfb_decrypt
1910 function aes_asm(stdlib
, foreign
, buffer
) {
1911 var heap
= new Uint8Array(buffer
);
1912 heap
.set(_aes_tables
);
1913 return _aes_asm(stdlib
, foreign
, buffer
);
1915 var _aes_block_size
= 16;
1916 function _aes_constructor(options
) {
1917 options
= options
|| {};
1918 options
.heapSize
= options
.heapSize
|| 4096;
1919 if (options
.heapSize
<= 0 || options
.heapSize
% 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
1920 this.BLOCK_SIZE
= _aes_block_size
;
1921 this.heap
= options
.heap
|| new Uint8Array(options
.heapSize
);
1922 this.asm
= options
.asm
|| aes_asm(global
, null, this.heap
.buffer
);
1923 this.pos
= _aes_heap_start
;
1927 this.reset(options
);
1929 function _aes_reset(options
) {
1930 options
= options
|| {};
1932 this.pos
= _aes_heap_start
;
1935 var key
= options
.key
;
1936 if (key
!== undefined) {
1937 if (is_buffer(key
) || is_bytes(key
)) {
1938 key
= new Uint8Array(key
);
1939 } else if (is_string(key
)) {
1941 key
= new Uint8Array(str
.length
);
1942 for (var i
= 0; i
< str
.length
; ++i
) key
[i
] = str
.charCodeAt(i
);
1944 throw new TypeError("unexpected key type");
1946 if (key
.length
=== 16) {
1948 asm
.init_key_128
.call(asm
, key
[0], key
[1], key
[2], key
[3], key
[4], key
[5], key
[6], key
[7], key
[8], key
[9], key
[10], key
[11], key
[12], key
[13], key
[14], key
[15]);
1949 } else if (key
.length
=== 24) {
1950 throw new IllegalArgumentError("illegal key size");
1951 } else if (key
.length
=== 32) {
1953 asm
.init_key_256
.call(asm
, key
[0], key
[1], key
[2], key
[3], key
[4], key
[5], key
[6], key
[7], key
[8], key
[9], key
[10], key
[11], key
[12], key
[13], key
[14], key
[15], key
[16], key
[17], key
[18], key
[19], key
[20], key
[21], key
[22], key
[23], key
[24], key
[25], key
[26], key
[27], key
[28], key
[29], key
[30], key
[31]);
1955 throw new IllegalArgumentError("illegal key size");
1960 function _aes_init_iv(iv
) {
1962 if (iv
!== undefined) {
1963 if (is_buffer(iv
) || is_bytes(iv
)) {
1964 iv
= new Uint8Array(iv
);
1965 } else if (is_string(iv
)) {
1967 iv
= new Uint8Array(str
.length
);
1968 for (var i
= 0; i
< str
.length
; ++i
) iv
[i
] = str
.charCodeAt(i
);
1970 throw new TypeError("unexpected iv type");
1972 if (iv
.length
!== _aes_block_size
) throw new IllegalArgumentError("illegal iv size");
1974 asm
.init_state
.call(asm
, iv
[0], iv
[1], iv
[2], iv
[3], iv
[4], iv
[5], iv
[6], iv
[7], iv
[8], iv
[9], iv
[10], iv
[11], iv
[12], iv
[13], iv
[14], iv
[15]);
1977 asm
.init_state
.call(asm
, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1980 function _aes_heap_write(heap
, hpos
, data
, dpos
, dlen
) {
1981 var hlen
= heap
.byteLength
- hpos
, wlen
= hlen
< dlen
? hlen : dlen
;
1982 if (is_buffer(data
) || is_bytes(data
)) {
1983 heap
.set(new Uint8Array(data
.buffer
|| data
, dpos
, wlen
), hpos
);
1984 } else if (is_string(data
)) {
1985 for (var i
= 0; i
< wlen
; ++i
) heap
[hpos
+ i
] = data
.charCodeAt(dpos
+ i
);
1987 throw new TypeError("unexpected data type");
1991 function cbc_aes_constructor(options
) {
1992 this.padding
= true;
1995 _aes_constructor
.call(this, options
);
1997 function cbc_aes_encrypt_constructor(options
) {
1998 cbc_aes_constructor
.call(this, options
);
2000 function cbc_aes_decrypt_constructor(options
) {
2001 cbc_aes_constructor
.call(this, options
);
2003 function cbc_aes_reset(options
) {
2004 options
= options
|| {};
2005 _aes_reset
.call(this, options
);
2006 var padding
= options
.padding
;
2007 if (padding
!== undefined) {
2008 this.padding
= !!padding
;
2010 this.padding
= true;
2012 _aes_init_iv
.call(this, options
.iv
);
2015 function cbc_aes_encrypt_process(data
) {
2016 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2017 var dpos
= data
.byteOffset
|| 0, dlen
= data
.byteLength
|| data
.length
|| 0, asm
= this.asm
, heap
= this.heap
, pos
= this.pos
, len
= this.len
, rpos
= 0, rlen
= _aes_block_size
* Math
.floor((len
+ dlen
) / _aes_block_size
), wlen
= 0;
2018 var result
= new Uint8Array(rlen
);
2020 wlen
= _aes_heap_write(heap
, pos
+ len
, data
, dpos
, dlen
);
2024 wlen
= asm
.cbc_encrypt(pos
, len
);
2025 result
.set(heap
.subarray(pos
, pos
+ wlen
), rpos
);
2031 pos
= _aes_heap_start
;
2035 this.result
= result
;
2040 function cbc_aes_encrypt_finish() {
2041 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2042 var asm
= this.asm
, heap
= this.heap
, padding
= this.padding
, pos
= this.pos
, len
= this.len
, rlen
= _aes_block_size
* Math
.ceil(len
/ _aes_block_size
);
2043 if (len
% _aes_block_size
=== 0) {
2044 if (padding
) rlen
+= _aes_block_size
;
2045 } else if (!padding
) {
2046 throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size
);
2048 var result
= new Uint8Array(rlen
);
2050 var plen
= _aes_block_size
- len
% _aes_block_size
;
2051 for (var p
= 0; p
< plen
; ++p
) heap
[pos
+ len
+ p
] = plen
;
2054 asm
.cbc_encrypt(pos
, len
);
2055 result
.set(heap
.subarray(pos
, pos
+ len
));
2056 this.result
= result
;
2057 this.pos
= _aes_heap_start
;
2061 function cbc_aes_encrypt(data
) {
2062 var result1
= cbc_aes_encrypt_process
.call(this, data
).result
, result2
= cbc_aes_encrypt_finish
.call(this).result
, result
;
2063 result
= new Uint8Array(result1
.length
+ result2
.length
);
2064 result
.set(result1
);
2065 result
.set(result2
, result1
.length
);
2066 this.result
= result
;
2069 function cbc_aes_decrypt_process(data
) {
2070 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2071 var dpos
= data
.byteOffset
|| 0, dlen
= data
.byteLength
|| data
.length
|| 0, asm
= this.asm
, heap
= this.heap
, padding
= this.padding
, pos
= this.pos
, len
= this.len
, rpos
= 0, rlen
= _aes_block_size
* Math
.floor((len
+ dlen
) / _aes_block_size
), wlen
= 0;
2072 var result
= new Uint8Array(rlen
);
2074 wlen
= _aes_heap_write(heap
, pos
+ len
, data
, dpos
, dlen
);
2078 wlen
= asm
.cbc_decrypt(pos
, len
- (padding
&& dlen
=== 0 && len
% _aes_block_size
=== 0 ? _aes_block_size : 0));
2079 result
.set(heap
.subarray(pos
, pos
+ wlen
), rpos
);
2085 pos
= _aes_heap_start
;
2089 this.result
= result
.subarray(0, rpos
);
2094 function cbc_aes_decrypt_finish() {
2095 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2096 var asm
= this.asm
, heap
= this.heap
, padding
= this.padding
, pos
= this.pos
, len
= this.len
;
2099 this.result
= new Uint8Array(0);
2100 this.pos
= _aes_heap_start
;
2104 throw new IllegalStateError("padding not found");
2107 if (len
% _aes_block_size
!== 0) throw new IllegalArgumentError("data length must be a multiple of " + _aes_block_size
);
2108 var result
= new Uint8Array(len
);
2109 asm
.cbc_decrypt(pos
, len
);
2110 result
.set(heap
.subarray(pos
, pos
+ len
));
2112 var pad
= result
[len
- 1];
2113 result
= result
.subarray(0, len
- pad
);
2115 this.result
= result
;
2116 this.pos
= _aes_heap_start
;
2120 function cbc_aes_decrypt(data
) {
2121 var result1
= cbc_aes_decrypt_process
.call(this, data
).result
, result2
= cbc_aes_decrypt_finish
.call(this).result
, result
;
2122 result
= new Uint8Array(result1
.length
+ result2
.length
);
2123 result
.set(result1
);
2124 result
.set(result2
, result1
.length
);
2125 this.result
= result
;
2128 var cbc_aes_encrypt_prototype
= cbc_aes_encrypt_constructor
.prototype;
2129 cbc_aes_encrypt_prototype
.reset
= cbc_aes_reset
;
2130 cbc_aes_encrypt_prototype
.process
= cbc_aes_encrypt_process
;
2131 cbc_aes_encrypt_prototype
.finish
= cbc_aes_encrypt_finish
;
2132 var cbc_aes_decrypt_prototype
= cbc_aes_decrypt_constructor
.prototype;
2133 cbc_aes_decrypt_prototype
.reset
= cbc_aes_reset
;
2134 cbc_aes_decrypt_prototype
.process
= cbc_aes_decrypt_process
;
2135 cbc_aes_decrypt_prototype
.finish
= cbc_aes_decrypt_finish
;
2136 var cbc_aes_prototype
= cbc_aes_constructor
.prototype;
2137 cbc_aes_prototype
.reset
= cbc_aes_reset
;
2138 cbc_aes_prototype
.encrypt
= cbc_aes_encrypt
;
2139 cbc_aes_prototype
.decrypt
= cbc_aes_decrypt
;
2140 function _cbc_mac_process(data
) {
2141 var dpos
= data
.byteOffset
|| 0, dlen
= data
.byteLength
|| data
.length
|| 0, wlen
= 0;
2143 wlen
= _aes_heap_write(this.heap
, _aes_heap_start
, data
, dpos
, dlen
);
2144 this.asm
.cbc_mac(_aes_heap_start
, wlen
, -1);
2149 var _ccm_adata_maxLength
= 65279, _ccm_data_maxLength
= 68719476720;
2150 function ccm_aes_constructor(options
) {
2151 this.padding
= false;
2153 this.tagSize
= _aes_block_size
;
2154 this.lengthSize
= 4;
2158 this.dataLength
= -1;
2161 _aes_constructor
.call(this, options
);
2163 function ccm_aes_encrypt_constructor(options
) {
2164 ccm_aes_constructor
.call(this, options
);
2166 function ccm_aes_decrypt_constructor(options
) {
2167 ccm_aes_constructor
.call(this, options
);
2169 function _ccm_calculate_iv() {
2170 var nonce
= this.nonce
, adata
= this.adata
, tagSize
= this.tagSize
, lengthSize
= this.lengthSize
, dataLength
= this.dataLength
;
2171 var data
= new Uint8Array(_aes_block_size
+ (adata
? 2 + adata
.byteLength : 0));
2172 data
[0] = (adata
? 64 : 0) | tagSize
- 2 << 2 | lengthSize
- 1;
2174 if (lengthSize
> 4) data
[11] = (dataLength
- (dataLength
>>> 0)) / 4294967296 & 15;
2175 if (lengthSize
> 3) data
[12] = dataLength
>>> 24;
2176 if (lengthSize
> 2) data
[13] = dataLength
>>> 16 & 255;
2177 data
[14] = dataLength
>>> 8 & 255;
2178 data
[15] = dataLength
& 255;
2180 data
[16] = adata
.byteLength
>>> 8 & 255;
2181 data
[17] = adata
.byteLength
& 255;
2182 data
.set(adata
, 18);
2184 _cbc_mac_process
.call(this, data
);
2185 this.asm
.save_state(_aes_heap_start
);
2186 this.iv
= new Uint8Array(this.heap
.subarray(_aes_heap_start
, _aes_heap_start
+ _aes_block_size
));
2188 function ccm_aes_reset(options
) {
2189 options
= options
|| {};
2190 _aes_reset
.call(this, options
);
2191 _aes_init_iv
.call(this, options
.iv
);
2192 var tagSize
= options
.tagSize
;
2193 if (tagSize
!== undefined) {
2194 if (!is_number(tagSize
)) throw new TypeError("tagSize must be a number");
2195 if (tagSize
< 4 || tagSize
> 16 || tagSize
& 1) throw new IllegalArgumentError("illegal tagSize value");
2196 this.tagSize
= tagSize
;
2198 this.tagSize
= _aes_block_size
;
2200 var lengthSize
= options
.lengthSize
, nonce
= options
.nonce
;
2201 if (nonce
!== undefined) {
2202 if (is_buffer(nonce
) || is_bytes(nonce
)) {
2203 nonce
= new Uint8Array(nonce
);
2204 } else if (is_string(nonce
)) {
2206 nonce
= new Uint8Array(str
.length
);
2207 for (var i
= 0; i
< str
.length
; ++i
) nonce
[i
] = str
.charCodeAt(i
);
2209 throw new TypeError("unexpected nonce type");
2211 if (nonce
.length
< 10 || nonce
.length
> 13) throw new IllegalArgumentError("illegal nonce length");
2212 lengthSize
= lengthSize
|| 15 - nonce
.length
;
2217 if (lengthSize
!== undefined) {
2218 if (!is_number(lengthSize
)) throw new TypeError("lengthSize must be a number");
2219 if (lengthSize
< 2 || lengthSize
> 5 || nonce
.length
+ lengthSize
!== 15) throw new IllegalArgumentError("illegal lengthSize value");
2220 this.lengthSize
= lengthSize
;
2222 this.lengthSize
= lengthSize
= 4;
2225 var counter
= options
.counter
;
2226 if (counter
!== undefined) {
2227 if (iv
=== null) throw new IllegalStateError("iv is also required");
2228 if (!is_number(counter
)) throw new TypeError("counter must be a number");
2229 this.counter
= counter
;
2233 var dataLength
= options
.dataLength
;
2234 if (dataLength
!== undefined) {
2235 if (!is_number(dataLength
)) throw new TypeError("dataLength must be a number");
2236 if (dataLength
< 0 || dataLength
> _ccm_data_maxLength
|| dataLength
> Math
.pow(2, 8 * lengthSize
) - 1) throw new IllegalArgumentError("illegal dataLength value");
2237 this.dataLength
= dataLength
;
2238 var dataLeft
= options
.dataLeft
|| dataLength
;
2239 if (!is_number(dataLeft
)) throw new TypeError("dataLeft must be a number");
2240 if (dataLeft
< 0 || dataLeft
> dataLength
) throw new IllegalArgumentError("illegal dataLeft value");
2241 this.dataLeft
= dataLeft
;
2243 this.dataLength
= dataLength
= -1;
2244 this.dataLeft
= dataLength
;
2246 var adata
= options
.adata
;
2247 if (adata
!== undefined) {
2248 if (iv
!== null) throw new IllegalStateError("you must specify either adata or iv, not both");
2249 if (is_buffer(adata
) || is_bytes(adata
)) {
2250 adata
= new Uint8Array(adata
);
2251 } else if (is_string(adata
)) {
2253 adata
= new Uint8Array(str
.length
);
2254 for (var i
= 0; i
< str
.length
; ++i
) adata
[i
] = str
.charCodeAt(i
);
2256 throw new TypeError("unexpected adata type");
2258 if (adata
.byteLength
=== 0 || adata
.byteLength
> _ccm_adata_maxLength
) throw new IllegalArgumentError("illegal adata length");
2262 this.adata
= adata
= null;
2264 if (dataLength
!== -1) _ccm_calculate_iv
.call(this);
2267 function ccm_aes_encrypt_process(data
) {
2268 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2269 var dpos
= data
.byteOffset
|| 0, dlen
= data
.byteLength
|| data
.length
|| 0, asm
= this.asm
, heap
= this.heap
, nonce
= this.nonce
, counter
= this.counter
, pos
= this.pos
, len
= this.len
, rpos
= 0, rlen
= _aes_block_size
* Math
.floor((len
+ dlen
) / _aes_block_size
), wlen
= 0;
2270 if ((counter
- 1 << 4) + len
+ dlen
> _ccm_data_maxLength
) throw new RangeError("counter overflow");
2271 var result
= new Uint8Array(rlen
);
2272 var asm_args
= [ 0, 0, this.lengthSize
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2273 for (var i
= 0; i
< nonce
.length
; i
++) asm_args
[3 + i
] = nonce
[i
];
2275 wlen
= _aes_heap_write(heap
, pos
+ len
, data
, dpos
, dlen
);
2280 asm_args
[1] = len
& ~15;
2281 asm_args
[16] = counter
/ 4294967296 >>> 0;
2282 asm_args
[17] = counter
>>> 0;
2283 wlen
= asm
.ccm_encrypt
.apply(asm
, asm_args
);
2284 result
.set(heap
.subarray(pos
, pos
+ wlen
), rpos
);
2285 counter
+= wlen
>>> 4;
2291 pos
= _aes_heap_start
;
2295 this.result
= result
;
2296 this.counter
= counter
;
2301 function ccm_aes_encrypt_finish() {
2302 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2303 var asm
= this.asm
, heap
= this.heap
, nonce
= this.nonce
, counter
= this.counter
, tagSize
= this.tagSize
, pos
= this.pos
, len
= this.len
, wlen
= 0;
2304 var result
= new Uint8Array(len
+ tagSize
);
2305 var asm_args
= [ 0, 0, this.lengthSize
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2306 for (var i
= 0; i
< nonce
.length
; i
++) asm_args
[3 + i
] = nonce
[i
];
2309 asm_args
[16] = counter
/ 4294967296 >>> 0;
2310 asm_args
[17] = counter
>>> 0;
2311 wlen
= asm
.ccm_encrypt
.apply(asm
, asm_args
);
2312 result
.set(heap
.subarray(pos
, pos
+ wlen
));
2314 pos
= _aes_heap_start
;
2316 asm
.save_state(_aes_heap_start
);
2317 asm_args
[0] = _aes_heap_start
, asm_args
[1] = _aes_block_size
, asm_args
[16] = 0;
2319 asm
.ccm_encrypt
.apply(asm
, asm_args
);
2320 result
.set(heap
.subarray(_aes_heap_start
, _aes_heap_start
+ tagSize
), wlen
);
2321 this.result
= result
;
2322 this.counter
= counter
;
2327 function ccm_aes_encrypt(data
) {
2328 this.dataLength
= this.dataLeft
= data
.byteLength
|| data
.length
|| 0;
2329 var result1
= ccm_aes_encrypt_process
.call(this, data
).result
, result2
= ccm_aes_encrypt_finish
.call(this).result
, result
;
2330 result
= new Uint8Array(result1
.length
+ result2
.length
);
2331 result
.set(result1
);
2332 result
.set(result2
, result1
.length
);
2333 this.result
= result
;
2336 function ccm_aes_decrypt_process(data
) {
2337 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2338 var dpos
= data
.byteOffset
|| 0, dlen
= data
.byteLength
|| data
.length
|| 0, asm
= this.asm
, heap
= this.heap
, nonce
= this.nonce
, counter
= this.counter
, tagSize
= this.tagSize
, pos
= this.pos
, len
= this.len
, rpos
= 0, rlen
= _aes_block_size
* Math
.floor((len
+ dlen
) / _aes_block_size
), wlen
= 0;
2339 if ((counter
- 1 << 4) + len
+ dlen
> _ccm_data_maxLength
) throw new RangeError("counter overflow");
2340 var result
= new Uint8Array(rlen
);
2341 var asm_args
= [ 0, 0, this.lengthSize
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2342 for (var i
= 0; i
< nonce
.length
; i
++) asm_args
[3 + i
] = nonce
[i
];
2344 wlen
= _aes_heap_write(heap
, pos
+ len
, data
, dpos
, dlen
);
2349 asm_args
[1] = len
+ dlen
- tagSize
>= _aes_block_size
? dlen
>= tagSize
? len
& ~15 : len
+ dlen
- tagSize
& ~15 : 0;
2350 asm_args
[16] = counter
/ 4294967296 >>> 0;
2351 asm_args
[17] = counter
>>> 0;
2352 wlen
= asm
.ccm_decrypt
.apply(asm
, asm_args
);
2353 result
.set(heap
.subarray(pos
, pos
+ wlen
), rpos
);
2354 counter
+= wlen
>>> 4;
2360 pos
= _aes_heap_start
;
2364 this.result
= result
.subarray(0, rpos
);
2365 this.counter
= counter
;
2370 function ccm_aes_decrypt_finish() {
2371 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2372 var asm
= this.asm
, heap
= this.heap
, nonce
= this.nonce
, counter
= this.counter
, tagSize
= this.tagSize
, pos
= this.pos
, len
= this.len
, rlen
= len
- tagSize
, wlen
= 0;
2373 if (len
< tagSize
) throw new IllegalStateError("authentication tag not found");
2374 var result
= new Uint8Array(rlen
), atag
= new Uint8Array(heap
.subarray(pos
+ rlen
, pos
+ len
));
2375 var asm_args
= [ 0, 0, this.lengthSize
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];
2376 for (var i
= 0; i
< nonce
.length
; i
++) asm_args
[3 + i
] = nonce
[i
];
2379 asm_args
[16] = counter
/ 4294967296 >>> 0;
2380 asm_args
[17] = counter
>>> 0;
2381 wlen
= asm
.ccm_decrypt
.apply(asm
, asm_args
);
2382 result
.set(heap
.subarray(pos
, pos
+ wlen
));
2384 pos
= _aes_heap_start
;
2386 asm
.save_state(_aes_heap_start
);
2387 asm_args
[0] = _aes_heap_start
, asm_args
[1] = _aes_block_size
, asm_args
[16] = 0;
2389 asm
.ccm_encrypt
.apply(asm
, asm_args
);
2391 for (var i
= 0; i
< tagSize
; ++i
) acheck
|= atag
[i
] ^ heap
[_aes_heap_start
+ i
];
2392 if (acheck
) throw new SecurityError("data integrity check failed");
2393 this.result
= result
;
2394 this.counter
= counter
;
2399 function ccm_aes_decrypt(data
) {
2400 this.dataLength
= this.dataLeft
= data
.byteLength
|| data
.length
|| 0;
2401 var result1
= ccm_aes_decrypt_process
.call(this, data
).result
, result2
= ccm_aes_decrypt_finish
.call(this).result
, result
;
2402 result
= new Uint8Array(result1
.length
+ result2
.length
);
2403 result
.set(result1
);
2404 result
.set(result2
, result1
.length
);
2405 this.result
= result
;
2408 var ccm_aes_prototype
= ccm_aes_constructor
.prototype;
2409 ccm_aes_prototype
.reset
= ccm_aes_reset
;
2410 ccm_aes_prototype
.encrypt
= ccm_aes_encrypt
;
2411 ccm_aes_prototype
.decrypt
= ccm_aes_decrypt
;
2412 var ccm_aes_encrypt_prototype
= ccm_aes_encrypt_constructor
.prototype;
2413 ccm_aes_encrypt_prototype
.reset
= ccm_aes_reset
;
2414 ccm_aes_encrypt_prototype
.process
= ccm_aes_encrypt_process
;
2415 ccm_aes_encrypt_prototype
.finish
= ccm_aes_encrypt_finish
;
2416 var ccm_aes_decrypt_prototype
= ccm_aes_decrypt_constructor
.prototype;
2417 ccm_aes_decrypt_prototype
.reset
= ccm_aes_reset
;
2418 ccm_aes_decrypt_prototype
.process
= ccm_aes_decrypt_process
;
2419 ccm_aes_decrypt_prototype
.finish
= ccm_aes_decrypt_finish
;
2420 function cfb_aes_constructor(options
) {
2421 this.padding
= false;
2424 _aes_constructor
.call(this, options
);
2426 function cfb_aes_encrypt_constructor(options
) {
2427 cfb_aes_constructor
.call(this, options
);
2429 function cfb_aes_decrypt_constructor(options
) {
2430 cfb_aes_constructor
.call(this, options
);
2432 function cfb_aes_reset(options
) {
2433 options
= options
|| {};
2434 _aes_reset
.call(this, options
);
2435 _aes_init_iv
.call(this, options
.iv
);
2438 function cfb_aes_encrypt_process(data
) {
2439 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2440 var dpos
= data
.byteOffset
|| 0, dlen
= data
.byteLength
|| data
.length
|| 0, asm
= this.asm
, heap
= this.heap
, pos
= this.pos
, len
= this.len
, rpos
= 0, rlen
= _aes_block_size
* Math
.floor((len
+ dlen
) / _aes_block_size
), wlen
= 0;
2441 var result
= new Uint8Array(rlen
);
2443 wlen
= _aes_heap_write(heap
, pos
+ len
, data
, dpos
, dlen
);
2447 wlen
= asm
.cfb_encrypt(pos
, _aes_block_size
* Math
.floor(len
/ _aes_block_size
));
2448 result
.set(heap
.subarray(pos
, pos
+ wlen
), rpos
);
2454 pos
= _aes_heap_start
;
2458 this.result
= result
;
2463 function cfb_aes_encrypt_finish() {
2464 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2465 var asm
= this.asm
, heap
= this.heap
, pos
= this.pos
, len
= this.len
;
2466 var result
= new Uint8Array(len
);
2467 asm
.cfb_encrypt(pos
, len
);
2468 result
.set(heap
.subarray(pos
, pos
+ len
));
2469 this.result
= result
;
2470 this.pos
= _aes_heap_start
;
2474 function cfb_aes_encrypt(data
) {
2475 var result1
= cfb_aes_encrypt_process
.call(this, data
).result
, result2
= cfb_aes_encrypt_finish
.call(this).result
, result
;
2476 result
= new Uint8Array(result1
.length
+ result2
.length
);
2477 result
.set(result1
);
2478 result
.set(result2
, result1
.length
);
2479 this.result
= result
;
2482 function cfb_aes_decrypt_process(data
) {
2483 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2484 var dpos
= data
.byteOffset
|| 0, dlen
= data
.byteLength
|| data
.length
|| 0, asm
= this.asm
, heap
= this.heap
, pos
= this.pos
, len
= this.len
, rpos
= 0, rlen
= _aes_block_size
* Math
.floor((len
+ dlen
) / _aes_block_size
), wlen
= 0;
2485 var result
= new Uint8Array(rlen
);
2487 wlen
= _aes_heap_write(heap
, pos
+ len
, data
, dpos
, dlen
);
2491 wlen
= asm
.cfb_decrypt(pos
, _aes_block_size
* Math
.floor(len
/ _aes_block_size
));
2492 result
.set(heap
.subarray(pos
, pos
+ wlen
), rpos
);
2498 pos
= _aes_heap_start
;
2502 this.result
= result
.subarray(0, rpos
);
2507 function cfb_aes_decrypt_finish() {
2508 if (!this.key
) throw new IllegalStateError("no key is associated with the instance");
2509 var asm
= this.asm
, heap
= this.heap
, pos
= this.pos
, len
= this.len
;
2511 this.result
= new Uint8Array(0);
2512 this.pos
= _aes_heap_start
;
2516 var result
= new Uint8Array(len
);
2517 asm
.cfb_decrypt(pos
, len
);
2518 result
.set(heap
.subarray(pos
, pos
+ len
));
2519 this.result
= result
;
2520 this.pos
= _aes_heap_start
;
2524 function cfb_aes_decrypt(data
) {
2525 var result1
= cfb_aes_decrypt_process
.call(this, data
).result
, result2
= cfb_aes_decrypt_finish
.call(this).result
, result
;
2526 result
= new Uint8Array(result1
.length
+ result2
.length
);
2527 result
.set(result1
);
2528 result
.set(result2
, result1
.length
);
2529 this.result
= result
;
2532 var cfb_aes_encrypt_prototype
= cfb_aes_encrypt_constructor
.prototype;
2533 cfb_aes_encrypt_prototype
.reset
= cfb_aes_reset
;
2534 cfb_aes_encrypt_prototype
.process
= cfb_aes_encrypt_process
;
2535 cfb_aes_encrypt_prototype
.finish
= cfb_aes_encrypt_finish
;
2536 var cfb_aes_decrypt_prototype
= cfb_aes_decrypt_constructor
.prototype;
2537 cfb_aes_decrypt_prototype
.reset
= cfb_aes_reset
;
2538 cfb_aes_decrypt_prototype
.process
= cfb_aes_decrypt_process
;
2539 cfb_aes_decrypt_prototype
.finish
= cfb_aes_decrypt_finish
;
2540 var cfb_aes_prototype
= cfb_aes_constructor
.prototype;
2541 cfb_aes_prototype
.reset
= cfb_aes_reset
;
2542 cfb_aes_prototype
.encrypt
= cfb_aes_encrypt
;
2543 cfb_aes_prototype
.decrypt
= cfb_aes_decrypt
;
2544 function sha256_asm(stdlib
, foreign
, buffer
) {
2546 var H0
= 0, H1
= 0, H2
= 0, H3
= 0, H4
= 0, H5
= 0, H6
= 0, H7
= 0, TOTAL
= 0;
2547 var I0
= 0, I1
= 0, I2
= 0, I3
= 0, I4
= 0, I5
= 0, I6
= 0, I7
= 0, O0
= 0, O1
= 0, O2
= 0, O3
= 0, O4
= 0, O5
= 0, O6
= 0, O7
= 0;
2548 var HEAP
= new stdlib
.Uint8Array(buffer
);
2549 function _core(w0
, w1
, w2
, w3
, w4
, w5
, w6
, w7
, w8
, w9
, w10
, w11
, w12
, w13
, w14
, w15
) {
2566 var a
= 0, b
= 0, c
= 0, d
= 0, e
= 0, f
= 0, g
= 0, h
= 0, t
= 0;
2575 t
= w0
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1116352408 | 0;
2583 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2584 t
= w1
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1899447441 | 0;
2592 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2593 t
= w2
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3049323471 | 0;
2601 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2602 t
= w3
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3921009573 | 0;
2610 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2611 t
= w4
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 961987163 | 0;
2619 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2620 t
= w5
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1508970993 | 0;
2628 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2629 t
= w6
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2453635748 | 0;
2637 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2638 t
= w7
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2870763221 | 0;
2646 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2647 t
= w8
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3624381080 | 0;
2655 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2656 t
= w9
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 310598401 | 0;
2664 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2665 t
= w10
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 607225278 | 0;
2673 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2674 t
= w11
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1426881987 | 0;
2682 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2683 t
= w12
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1925078388 | 0;
2691 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2692 t
= w13
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2162078206 | 0;
2700 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2701 t
= w14
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2614888103 | 0;
2709 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2710 t
= w15
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3248222580 | 0;
2718 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2719 w0
= t
= (w1
>>> 7 ^ w1
>>> 18 ^ w1
>>> 3 ^ w1
<< 25 ^ w1
<< 14) + (w14
>>> 17 ^ w14
>>> 19 ^ w14
>>> 10 ^ w14
<< 15 ^ w14
<< 13) + w0
+ w9
| 0;
2720 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3835390401 | 0;
2728 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2729 w1
= t
= (w2
>>> 7 ^ w2
>>> 18 ^ w2
>>> 3 ^ w2
<< 25 ^ w2
<< 14) + (w15
>>> 17 ^ w15
>>> 19 ^ w15
>>> 10 ^ w15
<< 15 ^ w15
<< 13) + w1
+ w10
| 0;
2730 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 4022224774 | 0;
2738 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2739 w2
= t
= (w3
>>> 7 ^ w3
>>> 18 ^ w3
>>> 3 ^ w3
<< 25 ^ w3
<< 14) + (w0
>>> 17 ^ w0
>>> 19 ^ w0
>>> 10 ^ w0
<< 15 ^ w0
<< 13) + w2
+ w11
| 0;
2740 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 264347078 | 0;
2748 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2749 w3
= t
= (w4
>>> 7 ^ w4
>>> 18 ^ w4
>>> 3 ^ w4
<< 25 ^ w4
<< 14) + (w1
>>> 17 ^ w1
>>> 19 ^ w1
>>> 10 ^ w1
<< 15 ^ w1
<< 13) + w3
+ w12
| 0;
2750 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 604807628 | 0;
2758 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2759 w4
= t
= (w5
>>> 7 ^ w5
>>> 18 ^ w5
>>> 3 ^ w5
<< 25 ^ w5
<< 14) + (w2
>>> 17 ^ w2
>>> 19 ^ w2
>>> 10 ^ w2
<< 15 ^ w2
<< 13) + w4
+ w13
| 0;
2760 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 770255983 | 0;
2768 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2769 w5
= t
= (w6
>>> 7 ^ w6
>>> 18 ^ w6
>>> 3 ^ w6
<< 25 ^ w6
<< 14) + (w3
>>> 17 ^ w3
>>> 19 ^ w3
>>> 10 ^ w3
<< 15 ^ w3
<< 13) + w5
+ w14
| 0;
2770 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1249150122 | 0;
2778 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2779 w6
= t
= (w7
>>> 7 ^ w7
>>> 18 ^ w7
>>> 3 ^ w7
<< 25 ^ w7
<< 14) + (w4
>>> 17 ^ w4
>>> 19 ^ w4
>>> 10 ^ w4
<< 15 ^ w4
<< 13) + w6
+ w15
| 0;
2780 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1555081692 | 0;
2788 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2789 w7
= t
= (w8
>>> 7 ^ w8
>>> 18 ^ w8
>>> 3 ^ w8
<< 25 ^ w8
<< 14) + (w5
>>> 17 ^ w5
>>> 19 ^ w5
>>> 10 ^ w5
<< 15 ^ w5
<< 13) + w7
+ w0
| 0;
2790 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1996064986 | 0;
2798 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2799 w8
= t
= (w9
>>> 7 ^ w9
>>> 18 ^ w9
>>> 3 ^ w9
<< 25 ^ w9
<< 14) + (w6
>>> 17 ^ w6
>>> 19 ^ w6
>>> 10 ^ w6
<< 15 ^ w6
<< 13) + w8
+ w1
| 0;
2800 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2554220882 | 0;
2808 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2809 w9
= t
= (w10
>>> 7 ^ w10
>>> 18 ^ w10
>>> 3 ^ w10
<< 25 ^ w10
<< 14) + (w7
>>> 17 ^ w7
>>> 19 ^ w7
>>> 10 ^ w7
<< 15 ^ w7
<< 13) + w9
+ w2
| 0;
2810 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2821834349 | 0;
2818 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2819 w10
= t
= (w11
>>> 7 ^ w11
>>> 18 ^ w11
>>> 3 ^ w11
<< 25 ^ w11
<< 14) + (w8
>>> 17 ^ w8
>>> 19 ^ w8
>>> 10 ^ w8
<< 15 ^ w8
<< 13) + w10
+ w3
| 0;
2820 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2952996808 | 0;
2828 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2829 w11
= t
= (w12
>>> 7 ^ w12
>>> 18 ^ w12
>>> 3 ^ w12
<< 25 ^ w12
<< 14) + (w9
>>> 17 ^ w9
>>> 19 ^ w9
>>> 10 ^ w9
<< 15 ^ w9
<< 13) + w11
+ w4
| 0;
2830 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3210313671 | 0;
2838 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2839 w12
= t
= (w13
>>> 7 ^ w13
>>> 18 ^ w13
>>> 3 ^ w13
<< 25 ^ w13
<< 14) + (w10
>>> 17 ^ w10
>>> 19 ^ w10
>>> 10 ^ w10
<< 15 ^ w10
<< 13) + w12
+ w5
| 0;
2840 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3336571891 | 0;
2848 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2849 w13
= t
= (w14
>>> 7 ^ w14
>>> 18 ^ w14
>>> 3 ^ w14
<< 25 ^ w14
<< 14) + (w11
>>> 17 ^ w11
>>> 19 ^ w11
>>> 10 ^ w11
<< 15 ^ w11
<< 13) + w13
+ w6
| 0;
2850 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3584528711 | 0;
2858 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2859 w14
= t
= (w15
>>> 7 ^ w15
>>> 18 ^ w15
>>> 3 ^ w15
<< 25 ^ w15
<< 14) + (w12
>>> 17 ^ w12
>>> 19 ^ w12
>>> 10 ^ w12
<< 15 ^ w12
<< 13) + w14
+ w7
| 0;
2860 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 113926993 | 0;
2868 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2869 w15
= t
= (w0
>>> 7 ^ w0
>>> 18 ^ w0
>>> 3 ^ w0
<< 25 ^ w0
<< 14) + (w13
>>> 17 ^ w13
>>> 19 ^ w13
>>> 10 ^ w13
<< 15 ^ w13
<< 13) + w15
+ w8
| 0;
2870 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 338241895 | 0;
2878 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2879 w0
= t
= (w1
>>> 7 ^ w1
>>> 18 ^ w1
>>> 3 ^ w1
<< 25 ^ w1
<< 14) + (w14
>>> 17 ^ w14
>>> 19 ^ w14
>>> 10 ^ w14
<< 15 ^ w14
<< 13) + w0
+ w9
| 0;
2880 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 666307205 | 0;
2888 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2889 w1
= t
= (w2
>>> 7 ^ w2
>>> 18 ^ w2
>>> 3 ^ w2
<< 25 ^ w2
<< 14) + (w15
>>> 17 ^ w15
>>> 19 ^ w15
>>> 10 ^ w15
<< 15 ^ w15
<< 13) + w1
+ w10
| 0;
2890 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 773529912 | 0;
2898 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2899 w2
= t
= (w3
>>> 7 ^ w3
>>> 18 ^ w3
>>> 3 ^ w3
<< 25 ^ w3
<< 14) + (w0
>>> 17 ^ w0
>>> 19 ^ w0
>>> 10 ^ w0
<< 15 ^ w0
<< 13) + w2
+ w11
| 0;
2900 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1294757372 | 0;
2908 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2909 w3
= t
= (w4
>>> 7 ^ w4
>>> 18 ^ w4
>>> 3 ^ w4
<< 25 ^ w4
<< 14) + (w1
>>> 17 ^ w1
>>> 19 ^ w1
>>> 10 ^ w1
<< 15 ^ w1
<< 13) + w3
+ w12
| 0;
2910 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1396182291 | 0;
2918 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2919 w4
= t
= (w5
>>> 7 ^ w5
>>> 18 ^ w5
>>> 3 ^ w5
<< 25 ^ w5
<< 14) + (w2
>>> 17 ^ w2
>>> 19 ^ w2
>>> 10 ^ w2
<< 15 ^ w2
<< 13) + w4
+ w13
| 0;
2920 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1695183700 | 0;
2928 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2929 w5
= t
= (w6
>>> 7 ^ w6
>>> 18 ^ w6
>>> 3 ^ w6
<< 25 ^ w6
<< 14) + (w3
>>> 17 ^ w3
>>> 19 ^ w3
>>> 10 ^ w3
<< 15 ^ w3
<< 13) + w5
+ w14
| 0;
2930 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1986661051 | 0;
2938 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2939 w6
= t
= (w7
>>> 7 ^ w7
>>> 18 ^ w7
>>> 3 ^ w7
<< 25 ^ w7
<< 14) + (w4
>>> 17 ^ w4
>>> 19 ^ w4
>>> 10 ^ w4
<< 15 ^ w4
<< 13) + w6
+ w15
| 0;
2940 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2177026350 | 0;
2948 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2949 w7
= t
= (w8
>>> 7 ^ w8
>>> 18 ^ w8
>>> 3 ^ w8
<< 25 ^ w8
<< 14) + (w5
>>> 17 ^ w5
>>> 19 ^ w5
>>> 10 ^ w5
<< 15 ^ w5
<< 13) + w7
+ w0
| 0;
2950 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2456956037 | 0;
2958 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2959 w8
= t
= (w9
>>> 7 ^ w9
>>> 18 ^ w9
>>> 3 ^ w9
<< 25 ^ w9
<< 14) + (w6
>>> 17 ^ w6
>>> 19 ^ w6
>>> 10 ^ w6
<< 15 ^ w6
<< 13) + w8
+ w1
| 0;
2960 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2730485921 | 0;
2968 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2969 w9
= t
= (w10
>>> 7 ^ w10
>>> 18 ^ w10
>>> 3 ^ w10
<< 25 ^ w10
<< 14) + (w7
>>> 17 ^ w7
>>> 19 ^ w7
>>> 10 ^ w7
<< 15 ^ w7
<< 13) + w9
+ w2
| 0;
2970 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2820302411 | 0;
2978 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2979 w10
= t
= (w11
>>> 7 ^ w11
>>> 18 ^ w11
>>> 3 ^ w11
<< 25 ^ w11
<< 14) + (w8
>>> 17 ^ w8
>>> 19 ^ w8
>>> 10 ^ w8
<< 15 ^ w8
<< 13) + w10
+ w3
| 0;
2980 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3259730800 | 0;
2988 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2989 w11
= t
= (w12
>>> 7 ^ w12
>>> 18 ^ w12
>>> 3 ^ w12
<< 25 ^ w12
<< 14) + (w9
>>> 17 ^ w9
>>> 19 ^ w9
>>> 10 ^ w9
<< 15 ^ w9
<< 13) + w11
+ w4
| 0;
2990 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3345764771 | 0;
2998 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
2999 w12
= t
= (w13
>>> 7 ^ w13
>>> 18 ^ w13
>>> 3 ^ w13
<< 25 ^ w13
<< 14) + (w10
>>> 17 ^ w10
>>> 19 ^ w10
>>> 10 ^ w10
<< 15 ^ w10
<< 13) + w12
+ w5
| 0;
3000 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3516065817 | 0;
3008 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3009 w13
= t
= (w14
>>> 7 ^ w14
>>> 18 ^ w14
>>> 3 ^ w14
<< 25 ^ w14
<< 14) + (w11
>>> 17 ^ w11
>>> 19 ^ w11
>>> 10 ^ w11
<< 15 ^ w11
<< 13) + w13
+ w6
| 0;
3010 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3600352804 | 0;
3018 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3019 w14
= t
= (w15
>>> 7 ^ w15
>>> 18 ^ w15
>>> 3 ^ w15
<< 25 ^ w15
<< 14) + (w12
>>> 17 ^ w12
>>> 19 ^ w12
>>> 10 ^ w12
<< 15 ^ w12
<< 13) + w14
+ w7
| 0;
3020 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 4094571909 | 0;
3028 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3029 w15
= t
= (w0
>>> 7 ^ w0
>>> 18 ^ w0
>>> 3 ^ w0
<< 25 ^ w0
<< 14) + (w13
>>> 17 ^ w13
>>> 19 ^ w13
>>> 10 ^ w13
<< 15 ^ w13
<< 13) + w15
+ w8
| 0;
3030 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 275423344 | 0;
3038 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3039 w0
= t
= (w1
>>> 7 ^ w1
>>> 18 ^ w1
>>> 3 ^ w1
<< 25 ^ w1
<< 14) + (w14
>>> 17 ^ w14
>>> 19 ^ w14
>>> 10 ^ w14
<< 15 ^ w14
<< 13) + w0
+ w9
| 0;
3040 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 430227734 | 0;
3048 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3049 w1
= t
= (w2
>>> 7 ^ w2
>>> 18 ^ w2
>>> 3 ^ w2
<< 25 ^ w2
<< 14) + (w15
>>> 17 ^ w15
>>> 19 ^ w15
>>> 10 ^ w15
<< 15 ^ w15
<< 13) + w1
+ w10
| 0;
3050 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 506948616 | 0;
3058 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3059 w2
= t
= (w3
>>> 7 ^ w3
>>> 18 ^ w3
>>> 3 ^ w3
<< 25 ^ w3
<< 14) + (w0
>>> 17 ^ w0
>>> 19 ^ w0
>>> 10 ^ w0
<< 15 ^ w0
<< 13) + w2
+ w11
| 0;
3060 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 659060556 | 0;
3068 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3069 w3
= t
= (w4
>>> 7 ^ w4
>>> 18 ^ w4
>>> 3 ^ w4
<< 25 ^ w4
<< 14) + (w1
>>> 17 ^ w1
>>> 19 ^ w1
>>> 10 ^ w1
<< 15 ^ w1
<< 13) + w3
+ w12
| 0;
3070 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 883997877 | 0;
3078 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3079 w4
= t
= (w5
>>> 7 ^ w5
>>> 18 ^ w5
>>> 3 ^ w5
<< 25 ^ w5
<< 14) + (w2
>>> 17 ^ w2
>>> 19 ^ w2
>>> 10 ^ w2
<< 15 ^ w2
<< 13) + w4
+ w13
| 0;
3080 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 958139571 | 0;
3088 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3089 w5
= t
= (w6
>>> 7 ^ w6
>>> 18 ^ w6
>>> 3 ^ w6
<< 25 ^ w6
<< 14) + (w3
>>> 17 ^ w3
>>> 19 ^ w3
>>> 10 ^ w3
<< 15 ^ w3
<< 13) + w5
+ w14
| 0;
3090 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1322822218 | 0;
3098 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3099 w6
= t
= (w7
>>> 7 ^ w7
>>> 18 ^ w7
>>> 3 ^ w7
<< 25 ^ w7
<< 14) + (w4
>>> 17 ^ w4
>>> 19 ^ w4
>>> 10 ^ w4
<< 15 ^ w4
<< 13) + w6
+ w15
| 0;
3100 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1537002063 | 0;
3108 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3109 w7
= t
= (w8
>>> 7 ^ w8
>>> 18 ^ w8
>>> 3 ^ w8
<< 25 ^ w8
<< 14) + (w5
>>> 17 ^ w5
>>> 19 ^ w5
>>> 10 ^ w5
<< 15 ^ w5
<< 13) + w7
+ w0
| 0;
3110 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1747873779 | 0;
3118 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3119 w8
= t
= (w9
>>> 7 ^ w9
>>> 18 ^ w9
>>> 3 ^ w9
<< 25 ^ w9
<< 14) + (w6
>>> 17 ^ w6
>>> 19 ^ w6
>>> 10 ^ w6
<< 15 ^ w6
<< 13) + w8
+ w1
| 0;
3120 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 1955562222 | 0;
3128 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3129 w9
= t
= (w10
>>> 7 ^ w10
>>> 18 ^ w10
>>> 3 ^ w10
<< 25 ^ w10
<< 14) + (w7
>>> 17 ^ w7
>>> 19 ^ w7
>>> 10 ^ w7
<< 15 ^ w7
<< 13) + w9
+ w2
| 0;
3130 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2024104815 | 0;
3138 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3139 w10
= t
= (w11
>>> 7 ^ w11
>>> 18 ^ w11
>>> 3 ^ w11
<< 25 ^ w11
<< 14) + (w8
>>> 17 ^ w8
>>> 19 ^ w8
>>> 10 ^ w8
<< 15 ^ w8
<< 13) + w10
+ w3
| 0;
3140 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2227730452 | 0;
3148 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3149 w11
= t
= (w12
>>> 7 ^ w12
>>> 18 ^ w12
>>> 3 ^ w12
<< 25 ^ w12
<< 14) + (w9
>>> 17 ^ w9
>>> 19 ^ w9
>>> 10 ^ w9
<< 15 ^ w9
<< 13) + w11
+ w4
| 0;
3150 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2361852424 | 0;
3158 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3159 w12
= t
= (w13
>>> 7 ^ w13
>>> 18 ^ w13
>>> 3 ^ w13
<< 25 ^ w13
<< 14) + (w10
>>> 17 ^ w10
>>> 19 ^ w10
>>> 10 ^ w10
<< 15 ^ w10
<< 13) + w12
+ w5
| 0;
3160 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2428436474 | 0;
3168 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3169 w13
= t
= (w14
>>> 7 ^ w14
>>> 18 ^ w14
>>> 3 ^ w14
<< 25 ^ w14
<< 14) + (w11
>>> 17 ^ w11
>>> 19 ^ w11
>>> 10 ^ w11
<< 15 ^ w11
<< 13) + w13
+ w6
| 0;
3170 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 2756734187 | 0;
3178 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3179 w14
= t
= (w15
>>> 7 ^ w15
>>> 18 ^ w15
>>> 3 ^ w15
<< 25 ^ w15
<< 14) + (w12
>>> 17 ^ w12
>>> 19 ^ w12
>>> 10 ^ w12
<< 15 ^ w12
<< 13) + w14
+ w7
| 0;
3180 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3204031479 | 0;
3188 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3189 w15
= t
= (w0
>>> 7 ^ w0
>>> 18 ^ w0
>>> 3 ^ w0
<< 25 ^ w0
<< 14) + (w13
>>> 17 ^ w13
>>> 19 ^ w13
>>> 10 ^ w13
<< 15 ^ w13
<< 13) + w15
+ w8
| 0;
3190 t
= t
+ h
+ (e
>>> 6 ^ e
>>> 11 ^ e
>>> 25 ^ e
<< 26 ^ e
<< 21 ^ e
<< 7) + (g
^ e
& (f
^ g
)) + 3329325298 | 0;
3198 a
= t
+ (b
& c
^ d
& (b
^ c
)) + (b
>>> 2 ^ b
>>> 13 ^ b
>>> 22 ^ b
<< 30 ^ b
<< 19 ^ b
<< 10) | 0;
3208 function _core_heap(offset
) {
3209 offset
= offset
| 0;
3210 _core(HEAP
[offset
| 0] << 24 | HEAP
[offset
| 1] << 16 | HEAP
[offset
| 2] << 8 | HEAP
[offset
| 3], HEAP
[offset
| 4] << 24 | HEAP
[offset
| 5] << 16 | HEAP
[offset
| 6] << 8 | HEAP
[offset
| 7], HEAP
[offset
| 8] << 24 | HEAP
[offset
| 9] << 16 | HEAP
[offset
| 10] << 8 | HEAP
[offset
| 11], HEAP
[offset
| 12] << 24 | HEAP
[offset
| 13] << 16 | HEAP
[offset
| 14] << 8 | HEAP
[offset
| 15], HEAP
[offset
| 16] << 24 | HEAP
[offset
| 17] << 16 | HEAP
[offset
| 18] << 8 | HEAP
[offset
| 19], HEAP
[offset
| 20] << 24 | HEAP
[offset
| 21] << 16 | HEAP
[offset
| 22] << 8 | HEAP
[offset
| 23], HEAP
[offset
| 24] << 24 | HEAP
[offset
| 25] << 16 | HEAP
[offset
| 26] << 8 | HEAP
[offset
| 27], HEAP
[offset
| 28] << 24 | HEAP
[offset
| 29] << 16 | HEAP
[offset
| 30] << 8 | HEAP
[offset
| 31], HEAP
[offset
| 32] << 24 | HEAP
[offset
| 33] << 16 | HEAP
[offset
| 34] << 8 | HEAP
[offset
| 35], HEAP
[offset
| 36] << 24 | HEAP
[offset
| 37] << 16 | HEAP
[offset
| 38] << 8 | HEAP
[offset
| 39], HEAP
[offset
| 40] << 24 | HEAP
[offset
| 41] << 16 | HEAP
[offset
| 42] << 8 | HEAP
[offset
| 43], HEAP
[offset
| 44] << 24 | HEAP
[offset
| 45] << 16 | HEAP
[offset
| 46] << 8 | HEAP
[offset
| 47], HEAP
[offset
| 48] << 24 | HEAP
[offset
| 49] << 16 | HEAP
[offset
| 50] << 8 | HEAP
[offset
| 51], HEAP
[offset
| 52] << 24 | HEAP
[offset
| 53] << 16 | HEAP
[offset
| 54] << 8 | HEAP
[offset
| 55], HEAP
[offset
| 56] << 24 | HEAP
[offset
| 57] << 16 | HEAP
[offset
| 58] << 8 | HEAP
[offset
| 59], HEAP
[offset
| 60] << 24 | HEAP
[offset
| 61] << 16 | HEAP
[offset
| 62] << 8 | HEAP
[offset
| 63]);
3212 function _state_to_heap(output
) {
3213 output
= output
| 0;
3214 HEAP
[output
| 0] = H0
>>> 24;
3215 HEAP
[output
| 1] = H0
>>> 16 & 255;
3216 HEAP
[output
| 2] = H0
>>> 8 & 255;
3217 HEAP
[output
| 3] = H0
& 255;
3218 HEAP
[output
| 4] = H1
>>> 24;
3219 HEAP
[output
| 5] = H1
>>> 16 & 255;
3220 HEAP
[output
| 6] = H1
>>> 8 & 255;
3221 HEAP
[output
| 7] = H1
& 255;
3222 HEAP
[output
| 8] = H2
>>> 24;
3223 HEAP
[output
| 9] = H2
>>> 16 & 255;
3224 HEAP
[output
| 10] = H2
>>> 8 & 255;
3225 HEAP
[output
| 11] = H2
& 255;
3226 HEAP
[output
| 12] = H3
>>> 24;
3227 HEAP
[output
| 13] = H3
>>> 16 & 255;
3228 HEAP
[output
| 14] = H3
>>> 8 & 255;
3229 HEAP
[output
| 15] = H3
& 255;
3230 HEAP
[output
| 16] = H4
>>> 24;
3231 HEAP
[output
| 17] = H4
>>> 16 & 255;
3232 HEAP
[output
| 18] = H4
>>> 8 & 255;
3233 HEAP
[output
| 19] = H4
& 255;
3234 HEAP
[output
| 20] = H5
>>> 24;
3235 HEAP
[output
| 21] = H5
>>> 16 & 255;
3236 HEAP
[output
| 22] = H5
>>> 8 & 255;
3237 HEAP
[output
| 23] = H5
& 255;
3238 HEAP
[output
| 24] = H6
>>> 24;
3239 HEAP
[output
| 25] = H6
>>> 16 & 255;
3240 HEAP
[output
| 26] = H6
>>> 8 & 255;
3241 HEAP
[output
| 27] = H6
& 255;
3242 HEAP
[output
| 28] = H7
>>> 24;
3243 HEAP
[output
| 29] = H7
>>> 16 & 255;
3244 HEAP
[output
| 30] = H7
>>> 8 & 255;
3245 HEAP
[output
| 31] = H7
& 255;
3258 function init(h0
, h1
, h2
, h3
, h4
, h5
, h6
, h7
, total
) {
3278 function process(offset
, length
) {
3279 offset
= offset
| 0;
3280 length
= length
| 0;
3282 if (offset
& 63) return -1;
3283 while ((length
| 0) >= 64) {
3285 offset
= offset
+ 64 | 0;
3286 length
= length
- 64 | 0;
3287 hashed
= hashed
+ 64 | 0;
3289 TOTAL
= TOTAL
+ hashed
| 0;
3292 function finish(offset
, length
, output
) {
3293 offset
= offset
| 0;
3294 length
= length
| 0;
3295 output
= output
| 0;
3296 var hashed
= 0, i
= 0;
3297 if (offset
& 63) return -1;
3298 if (~output
) if (output
& 31) return -1;
3299 if ((length
| 0) >= 64) {
3300 hashed
= process(offset
, length
) | 0;
3301 if ((hashed
| 0) == -1) return -1;
3302 offset
= offset
+ hashed
| 0;
3303 length
= length
- hashed
| 0;
3305 hashed
= hashed
+ length
| 0;
3306 TOTAL
= TOTAL
+ length
| 0;
3307 HEAP
[offset
| length
] = 128;
3308 if ((length
| 0) >= 56) {
3309 for (i
= length
+ 1 | 0; (i
| 0) < 64; i
= i
+ 1 | 0) HEAP
[offset
| i
] = 0;
3312 HEAP
[offset
| 0] = 0;
3314 for (i
= length
+ 1 | 0; (i
| 0) < 59; i
= i
+ 1 | 0) HEAP
[offset
| i
] = 0;
3315 HEAP
[offset
| 59] = TOTAL
>>> 29;
3316 HEAP
[offset
| 60] = TOTAL
>>> 21 & 255;
3317 HEAP
[offset
| 61] = TOTAL
>>> 13 & 255;
3318 HEAP
[offset
| 62] = TOTAL
>>> 5 & 255;
3319 HEAP
[offset
| 63] = TOTAL
<< 3 & 255;
3321 if (~output
) _state_to_heap(output
);
3324 function hmac_reset() {
3335 function _hmac_opad() {
3346 function hmac_init(p0
, p1
, p2
, p3
, p4
, p5
, p6
, p7
, p8
, p9
, p10
, p11
, p12
, p13
, p14
, p15
) {
3364 _core(p0
^ 1549556828, p1
^ 1549556828, p2
^ 1549556828, p3
^ 1549556828, p4
^ 1549556828, p5
^ 1549556828, p6
^ 1549556828, p7
^ 1549556828, p8
^ 1549556828, p9
^ 1549556828, p10
^ 1549556828, p11
^ 1549556828, p12
^ 1549556828, p13
^ 1549556828, p14
^ 1549556828, p15
^ 1549556828);
3374 _core(p0
^ 909522486, p1
^ 909522486, p2
^ 909522486, p3
^ 909522486, p4
^ 909522486, p5
^ 909522486, p6
^ 909522486, p7
^ 909522486, p8
^ 909522486, p9
^ 909522486, p10
^ 909522486, p11
^ 909522486, p12
^ 909522486, p13
^ 909522486, p14
^ 909522486, p15
^ 909522486);
3385 function hmac_finish(offset
, length
, output
) {
3386 offset
= offset
| 0;
3387 length
= length
| 0;
3388 output
= output
| 0;
3389 var t0
= 0, t1
= 0, t2
= 0, t3
= 0, t4
= 0, t5
= 0, t6
= 0, t7
= 0, hashed
= 0;
3390 if (offset
& 63) return -1;
3391 if (~output
) if (output
& 31) return -1;
3392 hashed
= finish(offset
, length
, -1) | 0;
3393 t0
= H0
, t1
= H1
, t2
= H2
, t3
= H3
, t4
= H4
, t5
= H5
, t6
= H6
, t7
= H7
;
3395 _core(t0
, t1
, t2
, t3
, t4
, t5
, t6
, t7
, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3396 if (~output
) _state_to_heap(output
);
3399 function pbkdf2_generate_block(offset
, length
, block
, count
, output
) {
3400 offset
= offset
| 0;
3401 length
= length
| 0;
3404 output
= output
| 0;
3405 var h0
= 0, h1
= 0, h2
= 0, h3
= 0, h4
= 0, h5
= 0, h6
= 0, h7
= 0, t0
= 0, t1
= 0, t2
= 0, t3
= 0, t4
= 0, t5
= 0, t6
= 0, t7
= 0;
3406 if (offset
& 63) return -1;
3407 if (~output
) if (output
& 31) return -1;
3408 HEAP
[offset
+ length
| 0] = block
>>> 24;
3409 HEAP
[offset
+ length
+ 1 | 0] = block
>>> 16 & 255;
3410 HEAP
[offset
+ length
+ 2 | 0] = block
>>> 8 & 255;
3411 HEAP
[offset
+ length
+ 3 | 0] = block
& 255;
3412 hmac_finish(offset
, length
+ 4 | 0, -1) | 0;
3413 h0
= t0
= H0
, h1
= t1
= H1
, h2
= t2
= H2
, h3
= t3
= H3
, h4
= t4
= H4
, h5
= t5
= H5
,
3414 h6
= t6
= H6
, h7
= t7
= H7
;
3415 count
= count
- 1 | 0;
3416 while ((count
| 0) > 0) {
3418 _core(t0
, t1
, t2
, t3
, t4
, t5
, t6
, t7
, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3419 t0
= H0
, t1
= H1
, t2
= H2
, t3
= H3
, t4
= H4
, t5
= H5
, t6
= H6
, t7
= H7
;
3421 _core(t0
, t1
, t2
, t3
, t4
, t5
, t6
, t7
, 2147483648, 0, 0, 0, 0, 0, 0, 768);
3422 t0
= H0
, t1
= H1
, t2
= H2
, t3
= H3
, t4
= H4
, t5
= H5
, t6
= H6
, t7
= H7
;
3431 count
= count
- 1 | 0;
3441 if (~output
) _state_to_heap(output
);
3449 hmac_reset: hmac_reset
,
3450 hmac_init: hmac_init
,
3451 hmac_finish: hmac_finish
,
3452 pbkdf2_generate_block: pbkdf2_generate_block
3455 var _sha256_block_size
= 64, _sha256_hash_size
= 32;
3456 function sha256_constructor(options
) {
3457 options
= options
|| {};
3458 options
.heapSize
= options
.heapSize
|| 4096;
3459 if (options
.heapSize
<= 0 || options
.heapSize
% 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
3460 this.heap
= options
.heap
|| new Uint8Array(options
.heapSize
);
3461 this.asm
= options
.asm
|| sha256_asm(global
, null, this.heap
.buffer
);
3462 this.BLOCK_SIZE
= _sha256_block_size
;
3463 this.HASH_SIZE
= _sha256_hash_size
;
3466 function sha256_reset() {
3473 function sha256_process(data
) {
3474 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
3475 var dpos
= 0, dlen
= 0, clen
= 0;
3476 if (is_buffer(data
) || is_bytes(data
)) {
3477 dpos
= data
.byteOffset
|| 0;
3478 dlen
= data
.byteLength
;
3479 } else if (is_string(data
)) {
3482 throw new TypeError("data isn't of expected type");
3485 clen
= this.heap
.byteLength
- this.pos
- this.len
;
3486 clen
= clen
< dlen
? clen : dlen
;
3487 if (is_buffer(data
) || is_bytes(data
)) {
3488 this.heap
.set(new Uint8Array(data
.buffer
|| data
, dpos
, clen
), this.pos
+ this.len
);
3490 for (var i
= 0; i
< clen
; i
++) this.heap
[this.pos
+ this.len
+ i
] = data
.charCodeAt(dpos
+ i
);
3495 clen
= this.asm
.process(this.pos
, this.len
);
3496 if (clen
< this.len
) {
3506 function sha256_finish() {
3507 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
3508 this.asm
.finish(this.pos
, this.len
, 0);
3509 this.result
= new Uint8Array(_sha256_hash_size
);
3510 this.result
.set(this.heap
.subarray(0, _sha256_hash_size
));
3515 sha256_constructor
.BLOCK_SIZE
= _sha256_block_size
;
3516 sha256_constructor
.HASH_SIZE
= _sha256_hash_size
;
3517 var sha256_prototype
= sha256_constructor
.prototype;
3518 sha256_prototype
.reset
= sha256_reset
;
3519 sha256_prototype
.process
= sha256_process
;
3520 sha256_prototype
.finish
= sha256_finish
;
3521 function sha512_asm(stdlib
, foreign
, buffer
) {
3523 var H0h
= 0, H0l
= 0, H1h
= 0, H1l
= 0, H2h
= 0, H2l
= 0, H3h
= 0, H3l
= 0, H4h
= 0, H4l
= 0, H5h
= 0, H5l
= 0, H6h
= 0, H6l
= 0, H7h
= 0, H7l
= 0, TOTAL
= 0;
3524 var I0h
= 0, I0l
= 0, I1h
= 0, I1l
= 0, I2h
= 0, I2l
= 0, I3h
= 0, I3l
= 0, I4h
= 0, I4l
= 0, I5h
= 0, I5l
= 0, I6h
= 0, I6l
= 0, I7h
= 0, I7l
= 0, O0h
= 0, O0l
= 0, O1h
= 0, O1l
= 0, O2h
= 0, O2l
= 0, O3h
= 0, O3l
= 0, O4h
= 0, O4l
= 0, O5h
= 0, O5l
= 0, O6h
= 0, O6l
= 0, O7h
= 0, O7l
= 0;
3525 var HEAP
= new stdlib
.Uint8Array(buffer
);
3526 function _core(w0h
, w0l
, w1h
, w1l
, w2h
, w2l
, w3h
, w3l
, w4h
, w4l
, w5h
, w5l
, w6h
, w6l
, w7h
, w7l
, w8h
, w8l
, w9h
, w9l
, w10h
, w10l
, w11h
, w11l
, w12h
, w12l
, w13h
, w13l
, w14h
, w14l
, w15h
, w15l
) {
3559 var ah
= 0, al
= 0, bh
= 0, bl
= 0, ch
= 0, cl
= 0, dh
= 0, dl
= 0, eh
= 0, el
= 0, fh
= 0, fl
= 0, gh
= 0, gl
= 0, hh
= 0, hl
= 0, th
= 0, tl
= 0, xl
= 0;
3576 tl
= 3609767458 + w0l
| 0;
3577 th
= 1116352408 + w0h
+ (tl
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
3579 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3580 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3582 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3583 xl
= gl
^ el
& (fl
^ gl
) | 0;
3585 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3593 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3600 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3601 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3602 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3604 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3605 tl
= 602891725 + w1l
| 0;
3606 th
= 1899447441 + w1h
+ (tl
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
3608 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3609 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3611 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3612 xl
= gl
^ el
& (fl
^ gl
) | 0;
3614 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3622 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3629 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3630 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3631 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3633 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3634 tl
= 3964484399 + w2l
| 0;
3635 th
= 3049323471 + w2h
+ (tl
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
3637 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3638 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3640 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3641 xl
= gl
^ el
& (fl
^ gl
) | 0;
3643 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3651 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3658 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3659 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3660 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3662 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3663 tl
= 2173295548 + w3l
| 0;
3664 th
= 3921009573 + w3h
+ (tl
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
3666 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3667 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3669 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3670 xl
= gl
^ el
& (fl
^ gl
) | 0;
3672 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3680 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3687 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3688 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3689 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3691 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3692 tl
= 4081628472 + w4l
| 0;
3693 th
= 961987163 + w4h
+ (tl
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
3695 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3696 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3698 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3699 xl
= gl
^ el
& (fl
^ gl
) | 0;
3701 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3709 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3716 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3717 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3718 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3720 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3721 tl
= 3053834265 + w5l
| 0;
3722 th
= 1508970993 + w5h
+ (tl
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
3724 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3725 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3727 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3728 xl
= gl
^ el
& (fl
^ gl
) | 0;
3730 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3738 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3745 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3746 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3747 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3749 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3750 tl
= 2937671579 + w6l
| 0;
3751 th
= 2453635748 + w6h
+ (tl
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
3753 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3754 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3756 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3757 xl
= gl
^ el
& (fl
^ gl
) | 0;
3759 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3767 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3774 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3775 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3776 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3778 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3779 tl
= 3664609560 + w7l
| 0;
3780 th
= 2870763221 + w7h
+ (tl
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
3782 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3783 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3785 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3786 xl
= gl
^ el
& (fl
^ gl
) | 0;
3788 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3796 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3803 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3804 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3805 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3807 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3808 tl
= 2734883394 + w8l
| 0;
3809 th
= 3624381080 + w8h
+ (tl
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
3811 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3812 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3814 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3815 xl
= gl
^ el
& (fl
^ gl
) | 0;
3817 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3825 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3832 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3833 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3834 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3836 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3837 tl
= 1164996542 + w9l
| 0;
3838 th
= 310598401 + w9h
+ (tl
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
3840 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3841 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3843 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3844 xl
= gl
^ el
& (fl
^ gl
) | 0;
3846 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3854 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3861 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3862 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3863 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3865 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3866 tl
= 1323610764 + w10l
| 0;
3867 th
= 607225278 + w10h
+ (tl
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
3869 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3870 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3872 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3873 xl
= gl
^ el
& (fl
^ gl
) | 0;
3875 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3883 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3890 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3891 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3892 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3894 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3895 tl
= 3590304994 + w11l
| 0;
3896 th
= 1426881987 + w11h
+ (tl
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
3898 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3899 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3901 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3902 xl
= gl
^ el
& (fl
^ gl
) | 0;
3904 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3912 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3919 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3920 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3921 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3923 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3924 tl
= 4068182383 + w12l
| 0;
3925 th
= 1925078388 + w12h
+ (tl
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
3927 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3928 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3930 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3931 xl
= gl
^ el
& (fl
^ gl
) | 0;
3933 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3941 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3948 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3949 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3950 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3952 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3953 tl
= 991336113 + w13l
| 0;
3954 th
= 2162078206 + w13h
+ (tl
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
3956 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3957 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3959 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3960 xl
= gl
^ el
& (fl
^ gl
) | 0;
3962 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3970 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
3977 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
3978 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
3979 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
3981 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3982 tl
= 633803317 + w14l
| 0;
3983 th
= 2614888103 + w14h
+ (tl
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
3985 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
3986 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
3988 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3989 xl
= gl
^ el
& (fl
^ gl
) | 0;
3991 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
3999 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4006 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4007 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4008 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4010 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4011 tl
= 3479774868 + w15l
| 0;
4012 th
= 3248222580 + w15h
+ (tl
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
4014 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4015 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4017 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4018 xl
= gl
^ el
& (fl
^ gl
) | 0;
4020 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4028 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4035 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4036 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4037 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4039 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4040 w0l
= w0l
+ w9l
| 0;
4041 w0h
= w0h
+ w9h
+ (w0l
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
4042 xl
= (w1l
>>> 1 | w1h
<< 31) ^ (w1l
>>> 8 | w1h
<< 24) ^ (w1l
>>> 7 | w1h
<< 25) | 0;
4044 w0h
= w0h
+ ((w1h
>>> 1 | w1l
<< 31) ^ (w1h
>>> 8 | w1l
<< 24) ^ w1h
>>> 7) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4045 xl
= (w14l
>>> 19 | w14h
<< 13) ^ (w14l
<< 3 | w14h
>>> 29) ^ (w14l
>>> 6 | w14h
<< 26) | 0;
4047 w0h
= w0h
+ ((w14h
>>> 19 | w14l
<< 13) ^ (w14h
<< 3 | w14l
>>> 29) ^ w14h
>>> 6) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4048 tl
= 2666613458 + w0l
| 0;
4049 th
= 3835390401 + w0h
+ (tl
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
4051 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4052 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4054 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4055 xl
= gl
^ el
& (fl
^ gl
) | 0;
4057 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4065 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4072 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4073 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4074 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4076 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4077 w1l
= w1l
+ w10l
| 0;
4078 w1h
= w1h
+ w10h
+ (w1l
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
4079 xl
= (w2l
>>> 1 | w2h
<< 31) ^ (w2l
>>> 8 | w2h
<< 24) ^ (w2l
>>> 7 | w2h
<< 25) | 0;
4081 w1h
= w1h
+ ((w2h
>>> 1 | w2l
<< 31) ^ (w2h
>>> 8 | w2l
<< 24) ^ w2h
>>> 7) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4082 xl
= (w15l
>>> 19 | w15h
<< 13) ^ (w15l
<< 3 | w15h
>>> 29) ^ (w15l
>>> 6 | w15h
<< 26) | 0;
4084 w1h
= w1h
+ ((w15h
>>> 19 | w15l
<< 13) ^ (w15h
<< 3 | w15l
>>> 29) ^ w15h
>>> 6) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4085 tl
= 944711139 + w1l
| 0;
4086 th
= 4022224774 + w1h
+ (tl
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
4088 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4089 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4091 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4092 xl
= gl
^ el
& (fl
^ gl
) | 0;
4094 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4102 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4109 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4110 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4111 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4113 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4114 w2l
= w2l
+ w11l
| 0;
4115 w2h
= w2h
+ w11h
+ (w2l
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
4116 xl
= (w3l
>>> 1 | w3h
<< 31) ^ (w3l
>>> 8 | w3h
<< 24) ^ (w3l
>>> 7 | w3h
<< 25) | 0;
4118 w2h
= w2h
+ ((w3h
>>> 1 | w3l
<< 31) ^ (w3h
>>> 8 | w3l
<< 24) ^ w3h
>>> 7) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4119 xl
= (w0l
>>> 19 | w0h
<< 13) ^ (w0l
<< 3 | w0h
>>> 29) ^ (w0l
>>> 6 | w0h
<< 26) | 0;
4121 w2h
= w2h
+ ((w0h
>>> 19 | w0l
<< 13) ^ (w0h
<< 3 | w0l
>>> 29) ^ w0h
>>> 6) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4122 tl
= 2341262773 + w2l
| 0;
4123 th
= 264347078 + w2h
+ (tl
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
4125 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4126 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4128 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4129 xl
= gl
^ el
& (fl
^ gl
) | 0;
4131 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4139 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4146 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4147 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4148 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4150 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4151 w3l
= w3l
+ w12l
| 0;
4152 w3h
= w3h
+ w12h
+ (w3l
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
4153 xl
= (w4l
>>> 1 | w4h
<< 31) ^ (w4l
>>> 8 | w4h
<< 24) ^ (w4l
>>> 7 | w4h
<< 25) | 0;
4155 w3h
= w3h
+ ((w4h
>>> 1 | w4l
<< 31) ^ (w4h
>>> 8 | w4l
<< 24) ^ w4h
>>> 7) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4156 xl
= (w1l
>>> 19 | w1h
<< 13) ^ (w1l
<< 3 | w1h
>>> 29) ^ (w1l
>>> 6 | w1h
<< 26) | 0;
4158 w3h
= w3h
+ ((w1h
>>> 19 | w1l
<< 13) ^ (w1h
<< 3 | w1l
>>> 29) ^ w1h
>>> 6) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4159 tl
= 2007800933 + w3l
| 0;
4160 th
= 604807628 + w3h
+ (tl
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
4162 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4163 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4165 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4166 xl
= gl
^ el
& (fl
^ gl
) | 0;
4168 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4176 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4183 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4184 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4185 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4187 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4188 w4l
= w4l
+ w13l
| 0;
4189 w4h
= w4h
+ w13h
+ (w4l
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
4190 xl
= (w5l
>>> 1 | w5h
<< 31) ^ (w5l
>>> 8 | w5h
<< 24) ^ (w5l
>>> 7 | w5h
<< 25) | 0;
4192 w4h
= w4h
+ ((w5h
>>> 1 | w5l
<< 31) ^ (w5h
>>> 8 | w5l
<< 24) ^ w5h
>>> 7) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4193 xl
= (w2l
>>> 19 | w2h
<< 13) ^ (w2l
<< 3 | w2h
>>> 29) ^ (w2l
>>> 6 | w2h
<< 26) | 0;
4195 w4h
= w4h
+ ((w2h
>>> 19 | w2l
<< 13) ^ (w2h
<< 3 | w2l
>>> 29) ^ w2h
>>> 6) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4196 tl
= 1495990901 + w4l
| 0;
4197 th
= 770255983 + w4h
+ (tl
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
4199 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4200 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4202 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4203 xl
= gl
^ el
& (fl
^ gl
) | 0;
4205 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4213 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4220 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4221 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4222 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4224 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4225 w5l
= w5l
+ w14l
| 0;
4226 w5h
= w5h
+ w14h
+ (w5l
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
4227 xl
= (w6l
>>> 1 | w6h
<< 31) ^ (w6l
>>> 8 | w6h
<< 24) ^ (w6l
>>> 7 | w6h
<< 25) | 0;
4229 w5h
= w5h
+ ((w6h
>>> 1 | w6l
<< 31) ^ (w6h
>>> 8 | w6l
<< 24) ^ w6h
>>> 7) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4230 xl
= (w3l
>>> 19 | w3h
<< 13) ^ (w3l
<< 3 | w3h
>>> 29) ^ (w3l
>>> 6 | w3h
<< 26) | 0;
4232 w5h
= w5h
+ ((w3h
>>> 19 | w3l
<< 13) ^ (w3h
<< 3 | w3l
>>> 29) ^ w3h
>>> 6) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4233 tl
= 1856431235 + w5l
| 0;
4234 th
= 1249150122 + w5h
+ (tl
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
4236 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4237 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4239 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4240 xl
= gl
^ el
& (fl
^ gl
) | 0;
4242 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4250 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4257 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4258 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4259 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4261 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4262 w6l
= w6l
+ w15l
| 0;
4263 w6h
= w6h
+ w15h
+ (w6l
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
4264 xl
= (w7l
>>> 1 | w7h
<< 31) ^ (w7l
>>> 8 | w7h
<< 24) ^ (w7l
>>> 7 | w7h
<< 25) | 0;
4266 w6h
= w6h
+ ((w7h
>>> 1 | w7l
<< 31) ^ (w7h
>>> 8 | w7l
<< 24) ^ w7h
>>> 7) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4267 xl
= (w4l
>>> 19 | w4h
<< 13) ^ (w4l
<< 3 | w4h
>>> 29) ^ (w4l
>>> 6 | w4h
<< 26) | 0;
4269 w6h
= w6h
+ ((w4h
>>> 19 | w4l
<< 13) ^ (w4h
<< 3 | w4l
>>> 29) ^ w4h
>>> 6) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4270 tl
= 3175218132 + w6l
| 0;
4271 th
= 1555081692 + w6h
+ (tl
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
4273 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4274 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4276 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4277 xl
= gl
^ el
& (fl
^ gl
) | 0;
4279 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4287 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4294 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4295 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4296 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4298 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4299 w7l
= w7l
+ w0l
| 0;
4300 w7h
= w7h
+ w0h
+ (w7l
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
4301 xl
= (w8l
>>> 1 | w8h
<< 31) ^ (w8l
>>> 8 | w8h
<< 24) ^ (w8l
>>> 7 | w8h
<< 25) | 0;
4303 w7h
= w7h
+ ((w8h
>>> 1 | w8l
<< 31) ^ (w8h
>>> 8 | w8l
<< 24) ^ w8h
>>> 7) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4304 xl
= (w5l
>>> 19 | w5h
<< 13) ^ (w5l
<< 3 | w5h
>>> 29) ^ (w5l
>>> 6 | w5h
<< 26) | 0;
4306 w7h
= w7h
+ ((w5h
>>> 19 | w5l
<< 13) ^ (w5h
<< 3 | w5l
>>> 29) ^ w5h
>>> 6) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4307 tl
= 2198950837 + w7l
| 0;
4308 th
= 1996064986 + w7h
+ (tl
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
4310 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4311 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4313 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4314 xl
= gl
^ el
& (fl
^ gl
) | 0;
4316 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4324 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4331 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4332 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4333 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4335 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4336 w8l
= w8l
+ w1l
| 0;
4337 w8h
= w8h
+ w1h
+ (w8l
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
4338 xl
= (w9l
>>> 1 | w9h
<< 31) ^ (w9l
>>> 8 | w9h
<< 24) ^ (w9l
>>> 7 | w9h
<< 25) | 0;
4340 w8h
= w8h
+ ((w9h
>>> 1 | w9l
<< 31) ^ (w9h
>>> 8 | w9l
<< 24) ^ w9h
>>> 7) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4341 xl
= (w6l
>>> 19 | w6h
<< 13) ^ (w6l
<< 3 | w6h
>>> 29) ^ (w6l
>>> 6 | w6h
<< 26) | 0;
4343 w8h
= w8h
+ ((w6h
>>> 19 | w6l
<< 13) ^ (w6h
<< 3 | w6l
>>> 29) ^ w6h
>>> 6) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4344 tl
= 3999719339 + w8l
| 0;
4345 th
= 2554220882 + w8h
+ (tl
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
4347 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4348 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4350 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4351 xl
= gl
^ el
& (fl
^ gl
) | 0;
4353 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4361 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4368 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4369 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4370 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4372 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4373 w9l
= w9l
+ w2l
| 0;
4374 w9h
= w9h
+ w2h
+ (w9l
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
4375 xl
= (w10l
>>> 1 | w10h
<< 31) ^ (w10l
>>> 8 | w10h
<< 24) ^ (w10l
>>> 7 | w10h
<< 25) | 0;
4377 w9h
= w9h
+ ((w10h
>>> 1 | w10l
<< 31) ^ (w10h
>>> 8 | w10l
<< 24) ^ w10h
>>> 7) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4378 xl
= (w7l
>>> 19 | w7h
<< 13) ^ (w7l
<< 3 | w7h
>>> 29) ^ (w7l
>>> 6 | w7h
<< 26) | 0;
4380 w9h
= w9h
+ ((w7h
>>> 19 | w7l
<< 13) ^ (w7h
<< 3 | w7l
>>> 29) ^ w7h
>>> 6) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4381 tl
= 766784016 + w9l
| 0;
4382 th
= 2821834349 + w9h
+ (tl
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
4384 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4385 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4387 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4388 xl
= gl
^ el
& (fl
^ gl
) | 0;
4390 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4398 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4405 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4406 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4407 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4409 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4410 w10l
= w10l
+ w3l
| 0;
4411 w10h
= w10h
+ w3h
+ (w10l
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
4412 xl
= (w11l
>>> 1 | w11h
<< 31) ^ (w11l
>>> 8 | w11h
<< 24) ^ (w11l
>>> 7 | w11h
<< 25) | 0;
4413 w10l
= w10l
+ xl
| 0;
4414 w10h
= w10h
+ ((w11h
>>> 1 | w11l
<< 31) ^ (w11h
>>> 8 | w11l
<< 24) ^ w11h
>>> 7) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4415 xl
= (w8l
>>> 19 | w8h
<< 13) ^ (w8l
<< 3 | w8h
>>> 29) ^ (w8l
>>> 6 | w8h
<< 26) | 0;
4416 w10l
= w10l
+ xl
| 0;
4417 w10h
= w10h
+ ((w8h
>>> 19 | w8l
<< 13) ^ (w8h
<< 3 | w8l
>>> 29) ^ w8h
>>> 6) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4418 tl
= 2566594879 + w10l
| 0;
4419 th
= 2952996808 + w10h
+ (tl
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
4421 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4422 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4424 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4425 xl
= gl
^ el
& (fl
^ gl
) | 0;
4427 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4435 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4442 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4443 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4444 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4446 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4447 w11l
= w11l
+ w4l
| 0;
4448 w11h
= w11h
+ w4h
+ (w11l
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
4449 xl
= (w12l
>>> 1 | w12h
<< 31) ^ (w12l
>>> 8 | w12h
<< 24) ^ (w12l
>>> 7 | w12h
<< 25) | 0;
4450 w11l
= w11l
+ xl
| 0;
4451 w11h
= w11h
+ ((w12h
>>> 1 | w12l
<< 31) ^ (w12h
>>> 8 | w12l
<< 24) ^ w12h
>>> 7) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4452 xl
= (w9l
>>> 19 | w9h
<< 13) ^ (w9l
<< 3 | w9h
>>> 29) ^ (w9l
>>> 6 | w9h
<< 26) | 0;
4453 w11l
= w11l
+ xl
| 0;
4454 w11h
= w11h
+ ((w9h
>>> 19 | w9l
<< 13) ^ (w9h
<< 3 | w9l
>>> 29) ^ w9h
>>> 6) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4455 tl
= 3203337956 + w11l
| 0;
4456 th
= 3210313671 + w11h
+ (tl
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
4458 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4459 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4461 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4462 xl
= gl
^ el
& (fl
^ gl
) | 0;
4464 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4472 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4479 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4480 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4481 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4483 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4484 w12l
= w12l
+ w5l
| 0;
4485 w12h
= w12h
+ w5h
+ (w12l
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
4486 xl
= (w13l
>>> 1 | w13h
<< 31) ^ (w13l
>>> 8 | w13h
<< 24) ^ (w13l
>>> 7 | w13h
<< 25) | 0;
4487 w12l
= w12l
+ xl
| 0;
4488 w12h
= w12h
+ ((w13h
>>> 1 | w13l
<< 31) ^ (w13h
>>> 8 | w13l
<< 24) ^ w13h
>>> 7) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4489 xl
= (w10l
>>> 19 | w10h
<< 13) ^ (w10l
<< 3 | w10h
>>> 29) ^ (w10l
>>> 6 | w10h
<< 26) | 0;
4490 w12l
= w12l
+ xl
| 0;
4491 w12h
= w12h
+ ((w10h
>>> 19 | w10l
<< 13) ^ (w10h
<< 3 | w10l
>>> 29) ^ w10h
>>> 6) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4492 tl
= 1034457026 + w12l
| 0;
4493 th
= 3336571891 + w12h
+ (tl
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
4495 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4496 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4498 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4499 xl
= gl
^ el
& (fl
^ gl
) | 0;
4501 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4509 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4516 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4517 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4518 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4520 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4521 w13l
= w13l
+ w6l
| 0;
4522 w13h
= w13h
+ w6h
+ (w13l
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
4523 xl
= (w14l
>>> 1 | w14h
<< 31) ^ (w14l
>>> 8 | w14h
<< 24) ^ (w14l
>>> 7 | w14h
<< 25) | 0;
4524 w13l
= w13l
+ xl
| 0;
4525 w13h
= w13h
+ ((w14h
>>> 1 | w14l
<< 31) ^ (w14h
>>> 8 | w14l
<< 24) ^ w14h
>>> 7) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4526 xl
= (w11l
>>> 19 | w11h
<< 13) ^ (w11l
<< 3 | w11h
>>> 29) ^ (w11l
>>> 6 | w11h
<< 26) | 0;
4527 w13l
= w13l
+ xl
| 0;
4528 w13h
= w13h
+ ((w11h
>>> 19 | w11l
<< 13) ^ (w11h
<< 3 | w11l
>>> 29) ^ w11h
>>> 6) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4529 tl
= 2466948901 + w13l
| 0;
4530 th
= 3584528711 + w13h
+ (tl
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
4532 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4533 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4535 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4536 xl
= gl
^ el
& (fl
^ gl
) | 0;
4538 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4546 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4553 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4554 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4555 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4557 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4558 w14l
= w14l
+ w7l
| 0;
4559 w14h
= w14h
+ w7h
+ (w14l
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
4560 xl
= (w15l
>>> 1 | w15h
<< 31) ^ (w15l
>>> 8 | w15h
<< 24) ^ (w15l
>>> 7 | w15h
<< 25) | 0;
4561 w14l
= w14l
+ xl
| 0;
4562 w14h
= w14h
+ ((w15h
>>> 1 | w15l
<< 31) ^ (w15h
>>> 8 | w15l
<< 24) ^ w15h
>>> 7) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4563 xl
= (w12l
>>> 19 | w12h
<< 13) ^ (w12l
<< 3 | w12h
>>> 29) ^ (w12l
>>> 6 | w12h
<< 26) | 0;
4564 w14l
= w14l
+ xl
| 0;
4565 w14h
= w14h
+ ((w12h
>>> 19 | w12l
<< 13) ^ (w12h
<< 3 | w12l
>>> 29) ^ w12h
>>> 6) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4566 tl
= 3758326383 + w14l
| 0;
4567 th
= 113926993 + w14h
+ (tl
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
4569 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4570 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4572 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4573 xl
= gl
^ el
& (fl
^ gl
) | 0;
4575 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4583 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4590 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4591 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4592 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4594 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4595 w15l
= w15l
+ w8l
| 0;
4596 w15h
= w15h
+ w8h
+ (w15l
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
4597 xl
= (w0l
>>> 1 | w0h
<< 31) ^ (w0l
>>> 8 | w0h
<< 24) ^ (w0l
>>> 7 | w0h
<< 25) | 0;
4598 w15l
= w15l
+ xl
| 0;
4599 w15h
= w15h
+ ((w0h
>>> 1 | w0l
<< 31) ^ (w0h
>>> 8 | w0l
<< 24) ^ w0h
>>> 7) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4600 xl
= (w13l
>>> 19 | w13h
<< 13) ^ (w13l
<< 3 | w13h
>>> 29) ^ (w13l
>>> 6 | w13h
<< 26) | 0;
4601 w15l
= w15l
+ xl
| 0;
4602 w15h
= w15h
+ ((w13h
>>> 19 | w13l
<< 13) ^ (w13h
<< 3 | w13l
>>> 29) ^ w13h
>>> 6) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4603 tl
= 168717936 + w15l
| 0;
4604 th
= 338241895 + w15h
+ (tl
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
4606 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4607 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4609 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4610 xl
= gl
^ el
& (fl
^ gl
) | 0;
4612 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4620 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4627 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4628 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4629 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4631 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4632 w0l
= w0l
+ w9l
| 0;
4633 w0h
= w0h
+ w9h
+ (w0l
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
4634 xl
= (w1l
>>> 1 | w1h
<< 31) ^ (w1l
>>> 8 | w1h
<< 24) ^ (w1l
>>> 7 | w1h
<< 25) | 0;
4636 w0h
= w0h
+ ((w1h
>>> 1 | w1l
<< 31) ^ (w1h
>>> 8 | w1l
<< 24) ^ w1h
>>> 7) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4637 xl
= (w14l
>>> 19 | w14h
<< 13) ^ (w14l
<< 3 | w14h
>>> 29) ^ (w14l
>>> 6 | w14h
<< 26) | 0;
4639 w0h
= w0h
+ ((w14h
>>> 19 | w14l
<< 13) ^ (w14h
<< 3 | w14l
>>> 29) ^ w14h
>>> 6) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4640 tl
= 1188179964 + w0l
| 0;
4641 th
= 666307205 + w0h
+ (tl
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
4643 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4644 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4646 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4647 xl
= gl
^ el
& (fl
^ gl
) | 0;
4649 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4657 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4664 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4665 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4666 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4668 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4669 w1l
= w1l
+ w10l
| 0;
4670 w1h
= w1h
+ w10h
+ (w1l
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
4671 xl
= (w2l
>>> 1 | w2h
<< 31) ^ (w2l
>>> 8 | w2h
<< 24) ^ (w2l
>>> 7 | w2h
<< 25) | 0;
4673 w1h
= w1h
+ ((w2h
>>> 1 | w2l
<< 31) ^ (w2h
>>> 8 | w2l
<< 24) ^ w2h
>>> 7) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4674 xl
= (w15l
>>> 19 | w15h
<< 13) ^ (w15l
<< 3 | w15h
>>> 29) ^ (w15l
>>> 6 | w15h
<< 26) | 0;
4676 w1h
= w1h
+ ((w15h
>>> 19 | w15l
<< 13) ^ (w15h
<< 3 | w15l
>>> 29) ^ w15h
>>> 6) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4677 tl
= 1546045734 + w1l
| 0;
4678 th
= 773529912 + w1h
+ (tl
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
4680 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4681 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4683 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4684 xl
= gl
^ el
& (fl
^ gl
) | 0;
4686 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4694 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4701 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4702 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4703 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4705 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4706 w2l
= w2l
+ w11l
| 0;
4707 w2h
= w2h
+ w11h
+ (w2l
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
4708 xl
= (w3l
>>> 1 | w3h
<< 31) ^ (w3l
>>> 8 | w3h
<< 24) ^ (w3l
>>> 7 | w3h
<< 25) | 0;
4710 w2h
= w2h
+ ((w3h
>>> 1 | w3l
<< 31) ^ (w3h
>>> 8 | w3l
<< 24) ^ w3h
>>> 7) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4711 xl
= (w0l
>>> 19 | w0h
<< 13) ^ (w0l
<< 3 | w0h
>>> 29) ^ (w0l
>>> 6 | w0h
<< 26) | 0;
4713 w2h
= w2h
+ ((w0h
>>> 19 | w0l
<< 13) ^ (w0h
<< 3 | w0l
>>> 29) ^ w0h
>>> 6) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4714 tl
= 1522805485 + w2l
| 0;
4715 th
= 1294757372 + w2h
+ (tl
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
4717 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4718 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4720 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4721 xl
= gl
^ el
& (fl
^ gl
) | 0;
4723 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4731 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4738 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4739 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4740 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4742 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4743 w3l
= w3l
+ w12l
| 0;
4744 w3h
= w3h
+ w12h
+ (w3l
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
4745 xl
= (w4l
>>> 1 | w4h
<< 31) ^ (w4l
>>> 8 | w4h
<< 24) ^ (w4l
>>> 7 | w4h
<< 25) | 0;
4747 w3h
= w3h
+ ((w4h
>>> 1 | w4l
<< 31) ^ (w4h
>>> 8 | w4l
<< 24) ^ w4h
>>> 7) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4748 xl
= (w1l
>>> 19 | w1h
<< 13) ^ (w1l
<< 3 | w1h
>>> 29) ^ (w1l
>>> 6 | w1h
<< 26) | 0;
4750 w3h
= w3h
+ ((w1h
>>> 19 | w1l
<< 13) ^ (w1h
<< 3 | w1l
>>> 29) ^ w1h
>>> 6) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4751 tl
= 2643833823 + w3l
| 0;
4752 th
= 1396182291 + w3h
+ (tl
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
4754 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4755 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4757 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4758 xl
= gl
^ el
& (fl
^ gl
) | 0;
4760 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4768 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4775 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4776 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4777 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4779 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4780 w4l
= w4l
+ w13l
| 0;
4781 w4h
= w4h
+ w13h
+ (w4l
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
4782 xl
= (w5l
>>> 1 | w5h
<< 31) ^ (w5l
>>> 8 | w5h
<< 24) ^ (w5l
>>> 7 | w5h
<< 25) | 0;
4784 w4h
= w4h
+ ((w5h
>>> 1 | w5l
<< 31) ^ (w5h
>>> 8 | w5l
<< 24) ^ w5h
>>> 7) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4785 xl
= (w2l
>>> 19 | w2h
<< 13) ^ (w2l
<< 3 | w2h
>>> 29) ^ (w2l
>>> 6 | w2h
<< 26) | 0;
4787 w4h
= w4h
+ ((w2h
>>> 19 | w2l
<< 13) ^ (w2h
<< 3 | w2l
>>> 29) ^ w2h
>>> 6) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4788 tl
= 2343527390 + w4l
| 0;
4789 th
= 1695183700 + w4h
+ (tl
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
4791 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4792 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4794 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4795 xl
= gl
^ el
& (fl
^ gl
) | 0;
4797 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4805 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4812 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4813 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4814 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4816 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4817 w5l
= w5l
+ w14l
| 0;
4818 w5h
= w5h
+ w14h
+ (w5l
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
4819 xl
= (w6l
>>> 1 | w6h
<< 31) ^ (w6l
>>> 8 | w6h
<< 24) ^ (w6l
>>> 7 | w6h
<< 25) | 0;
4821 w5h
= w5h
+ ((w6h
>>> 1 | w6l
<< 31) ^ (w6h
>>> 8 | w6l
<< 24) ^ w6h
>>> 7) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4822 xl
= (w3l
>>> 19 | w3h
<< 13) ^ (w3l
<< 3 | w3h
>>> 29) ^ (w3l
>>> 6 | w3h
<< 26) | 0;
4824 w5h
= w5h
+ ((w3h
>>> 19 | w3l
<< 13) ^ (w3h
<< 3 | w3l
>>> 29) ^ w3h
>>> 6) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4825 tl
= 1014477480 + w5l
| 0;
4826 th
= 1986661051 + w5h
+ (tl
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
4828 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4829 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4831 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4832 xl
= gl
^ el
& (fl
^ gl
) | 0;
4834 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4842 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4849 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4850 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4851 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4853 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4854 w6l
= w6l
+ w15l
| 0;
4855 w6h
= w6h
+ w15h
+ (w6l
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
4856 xl
= (w7l
>>> 1 | w7h
<< 31) ^ (w7l
>>> 8 | w7h
<< 24) ^ (w7l
>>> 7 | w7h
<< 25) | 0;
4858 w6h
= w6h
+ ((w7h
>>> 1 | w7l
<< 31) ^ (w7h
>>> 8 | w7l
<< 24) ^ w7h
>>> 7) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4859 xl
= (w4l
>>> 19 | w4h
<< 13) ^ (w4l
<< 3 | w4h
>>> 29) ^ (w4l
>>> 6 | w4h
<< 26) | 0;
4861 w6h
= w6h
+ ((w4h
>>> 19 | w4l
<< 13) ^ (w4h
<< 3 | w4l
>>> 29) ^ w4h
>>> 6) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4862 tl
= 1206759142 + w6l
| 0;
4863 th
= 2177026350 + w6h
+ (tl
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
4865 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4866 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4868 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4869 xl
= gl
^ el
& (fl
^ gl
) | 0;
4871 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4879 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4886 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4887 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4888 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4890 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4891 w7l
= w7l
+ w0l
| 0;
4892 w7h
= w7h
+ w0h
+ (w7l
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
4893 xl
= (w8l
>>> 1 | w8h
<< 31) ^ (w8l
>>> 8 | w8h
<< 24) ^ (w8l
>>> 7 | w8h
<< 25) | 0;
4895 w7h
= w7h
+ ((w8h
>>> 1 | w8l
<< 31) ^ (w8h
>>> 8 | w8l
<< 24) ^ w8h
>>> 7) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4896 xl
= (w5l
>>> 19 | w5h
<< 13) ^ (w5l
<< 3 | w5h
>>> 29) ^ (w5l
>>> 6 | w5h
<< 26) | 0;
4898 w7h
= w7h
+ ((w5h
>>> 19 | w5l
<< 13) ^ (w5h
<< 3 | w5l
>>> 29) ^ w5h
>>> 6) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4899 tl
= 344077627 + w7l
| 0;
4900 th
= 2456956037 + w7h
+ (tl
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
4902 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4903 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4905 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4906 xl
= gl
^ el
& (fl
^ gl
) | 0;
4908 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4916 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4923 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4924 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4925 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4927 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4928 w8l
= w8l
+ w1l
| 0;
4929 w8h
= w8h
+ w1h
+ (w8l
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
4930 xl
= (w9l
>>> 1 | w9h
<< 31) ^ (w9l
>>> 8 | w9h
<< 24) ^ (w9l
>>> 7 | w9h
<< 25) | 0;
4932 w8h
= w8h
+ ((w9h
>>> 1 | w9l
<< 31) ^ (w9h
>>> 8 | w9l
<< 24) ^ w9h
>>> 7) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4933 xl
= (w6l
>>> 19 | w6h
<< 13) ^ (w6l
<< 3 | w6h
>>> 29) ^ (w6l
>>> 6 | w6h
<< 26) | 0;
4935 w8h
= w8h
+ ((w6h
>>> 19 | w6l
<< 13) ^ (w6h
<< 3 | w6l
>>> 29) ^ w6h
>>> 6) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4936 tl
= 1290863460 + w8l
| 0;
4937 th
= 2730485921 + w8h
+ (tl
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
4939 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4940 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4942 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4943 xl
= gl
^ el
& (fl
^ gl
) | 0;
4945 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4953 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4960 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4961 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4962 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
4964 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4965 w9l
= w9l
+ w2l
| 0;
4966 w9h
= w9h
+ w2h
+ (w9l
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
4967 xl
= (w10l
>>> 1 | w10h
<< 31) ^ (w10l
>>> 8 | w10h
<< 24) ^ (w10l
>>> 7 | w10h
<< 25) | 0;
4969 w9h
= w9h
+ ((w10h
>>> 1 | w10l
<< 31) ^ (w10h
>>> 8 | w10l
<< 24) ^ w10h
>>> 7) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4970 xl
= (w7l
>>> 19 | w7h
<< 13) ^ (w7l
<< 3 | w7h
>>> 29) ^ (w7l
>>> 6 | w7h
<< 26) | 0;
4972 w9h
= w9h
+ ((w7h
>>> 19 | w7l
<< 13) ^ (w7h
<< 3 | w7l
>>> 29) ^ w7h
>>> 6) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4973 tl
= 3158454273 + w9l
| 0;
4974 th
= 2820302411 + w9h
+ (tl
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
4976 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
4977 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
4979 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4980 xl
= gl
^ el
& (fl
^ gl
) | 0;
4982 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
4990 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
4997 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
4998 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
4999 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5001 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5002 w10l
= w10l
+ w3l
| 0;
5003 w10h
= w10h
+ w3h
+ (w10l
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
5004 xl
= (w11l
>>> 1 | w11h
<< 31) ^ (w11l
>>> 8 | w11h
<< 24) ^ (w11l
>>> 7 | w11h
<< 25) | 0;
5005 w10l
= w10l
+ xl
| 0;
5006 w10h
= w10h
+ ((w11h
>>> 1 | w11l
<< 31) ^ (w11h
>>> 8 | w11l
<< 24) ^ w11h
>>> 7) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5007 xl
= (w8l
>>> 19 | w8h
<< 13) ^ (w8l
<< 3 | w8h
>>> 29) ^ (w8l
>>> 6 | w8h
<< 26) | 0;
5008 w10l
= w10l
+ xl
| 0;
5009 w10h
= w10h
+ ((w8h
>>> 19 | w8l
<< 13) ^ (w8h
<< 3 | w8l
>>> 29) ^ w8h
>>> 6) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5010 tl
= 3505952657 + w10l
| 0;
5011 th
= 3259730800 + w10h
+ (tl
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
5013 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5014 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5016 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5017 xl
= gl
^ el
& (fl
^ gl
) | 0;
5019 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5027 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5034 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5035 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5036 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5038 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5039 w11l
= w11l
+ w4l
| 0;
5040 w11h
= w11h
+ w4h
+ (w11l
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
5041 xl
= (w12l
>>> 1 | w12h
<< 31) ^ (w12l
>>> 8 | w12h
<< 24) ^ (w12l
>>> 7 | w12h
<< 25) | 0;
5042 w11l
= w11l
+ xl
| 0;
5043 w11h
= w11h
+ ((w12h
>>> 1 | w12l
<< 31) ^ (w12h
>>> 8 | w12l
<< 24) ^ w12h
>>> 7) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5044 xl
= (w9l
>>> 19 | w9h
<< 13) ^ (w9l
<< 3 | w9h
>>> 29) ^ (w9l
>>> 6 | w9h
<< 26) | 0;
5045 w11l
= w11l
+ xl
| 0;
5046 w11h
= w11h
+ ((w9h
>>> 19 | w9l
<< 13) ^ (w9h
<< 3 | w9l
>>> 29) ^ w9h
>>> 6) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5047 tl
= 106217008 + w11l
| 0;
5048 th
= 3345764771 + w11h
+ (tl
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
5050 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5051 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5053 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5054 xl
= gl
^ el
& (fl
^ gl
) | 0;
5056 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5064 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5071 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5072 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5073 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5075 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5076 w12l
= w12l
+ w5l
| 0;
5077 w12h
= w12h
+ w5h
+ (w12l
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
5078 xl
= (w13l
>>> 1 | w13h
<< 31) ^ (w13l
>>> 8 | w13h
<< 24) ^ (w13l
>>> 7 | w13h
<< 25) | 0;
5079 w12l
= w12l
+ xl
| 0;
5080 w12h
= w12h
+ ((w13h
>>> 1 | w13l
<< 31) ^ (w13h
>>> 8 | w13l
<< 24) ^ w13h
>>> 7) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5081 xl
= (w10l
>>> 19 | w10h
<< 13) ^ (w10l
<< 3 | w10h
>>> 29) ^ (w10l
>>> 6 | w10h
<< 26) | 0;
5082 w12l
= w12l
+ xl
| 0;
5083 w12h
= w12h
+ ((w10h
>>> 19 | w10l
<< 13) ^ (w10h
<< 3 | w10l
>>> 29) ^ w10h
>>> 6) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5084 tl
= 3606008344 + w12l
| 0;
5085 th
= 3516065817 + w12h
+ (tl
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
5087 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5088 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5090 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5091 xl
= gl
^ el
& (fl
^ gl
) | 0;
5093 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5101 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5108 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5109 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5110 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5112 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5113 w13l
= w13l
+ w6l
| 0;
5114 w13h
= w13h
+ w6h
+ (w13l
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
5115 xl
= (w14l
>>> 1 | w14h
<< 31) ^ (w14l
>>> 8 | w14h
<< 24) ^ (w14l
>>> 7 | w14h
<< 25) | 0;
5116 w13l
= w13l
+ xl
| 0;
5117 w13h
= w13h
+ ((w14h
>>> 1 | w14l
<< 31) ^ (w14h
>>> 8 | w14l
<< 24) ^ w14h
>>> 7) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5118 xl
= (w11l
>>> 19 | w11h
<< 13) ^ (w11l
<< 3 | w11h
>>> 29) ^ (w11l
>>> 6 | w11h
<< 26) | 0;
5119 w13l
= w13l
+ xl
| 0;
5120 w13h
= w13h
+ ((w11h
>>> 19 | w11l
<< 13) ^ (w11h
<< 3 | w11l
>>> 29) ^ w11h
>>> 6) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5121 tl
= 1432725776 + w13l
| 0;
5122 th
= 3600352804 + w13h
+ (tl
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
5124 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5125 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5127 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5128 xl
= gl
^ el
& (fl
^ gl
) | 0;
5130 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5138 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5145 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5146 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5147 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5149 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5150 w14l
= w14l
+ w7l
| 0;
5151 w14h
= w14h
+ w7h
+ (w14l
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
5152 xl
= (w15l
>>> 1 | w15h
<< 31) ^ (w15l
>>> 8 | w15h
<< 24) ^ (w15l
>>> 7 | w15h
<< 25) | 0;
5153 w14l
= w14l
+ xl
| 0;
5154 w14h
= w14h
+ ((w15h
>>> 1 | w15l
<< 31) ^ (w15h
>>> 8 | w15l
<< 24) ^ w15h
>>> 7) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5155 xl
= (w12l
>>> 19 | w12h
<< 13) ^ (w12l
<< 3 | w12h
>>> 29) ^ (w12l
>>> 6 | w12h
<< 26) | 0;
5156 w14l
= w14l
+ xl
| 0;
5157 w14h
= w14h
+ ((w12h
>>> 19 | w12l
<< 13) ^ (w12h
<< 3 | w12l
>>> 29) ^ w12h
>>> 6) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5158 tl
= 1467031594 + w14l
| 0;
5159 th
= 4094571909 + w14h
+ (tl
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
5161 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5162 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5164 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5165 xl
= gl
^ el
& (fl
^ gl
) | 0;
5167 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5175 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5182 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5183 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5184 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5186 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5187 w15l
= w15l
+ w8l
| 0;
5188 w15h
= w15h
+ w8h
+ (w15l
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
5189 xl
= (w0l
>>> 1 | w0h
<< 31) ^ (w0l
>>> 8 | w0h
<< 24) ^ (w0l
>>> 7 | w0h
<< 25) | 0;
5190 w15l
= w15l
+ xl
| 0;
5191 w15h
= w15h
+ ((w0h
>>> 1 | w0l
<< 31) ^ (w0h
>>> 8 | w0l
<< 24) ^ w0h
>>> 7) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5192 xl
= (w13l
>>> 19 | w13h
<< 13) ^ (w13l
<< 3 | w13h
>>> 29) ^ (w13l
>>> 6 | w13h
<< 26) | 0;
5193 w15l
= w15l
+ xl
| 0;
5194 w15h
= w15h
+ ((w13h
>>> 19 | w13l
<< 13) ^ (w13h
<< 3 | w13l
>>> 29) ^ w13h
>>> 6) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5195 tl
= 851169720 + w15l
| 0;
5196 th
= 275423344 + w15h
+ (tl
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
5198 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5199 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5201 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5202 xl
= gl
^ el
& (fl
^ gl
) | 0;
5204 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5212 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5219 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5220 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5221 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5223 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5224 w0l
= w0l
+ w9l
| 0;
5225 w0h
= w0h
+ w9h
+ (w0l
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
5226 xl
= (w1l
>>> 1 | w1h
<< 31) ^ (w1l
>>> 8 | w1h
<< 24) ^ (w1l
>>> 7 | w1h
<< 25) | 0;
5228 w0h
= w0h
+ ((w1h
>>> 1 | w1l
<< 31) ^ (w1h
>>> 8 | w1l
<< 24) ^ w1h
>>> 7) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5229 xl
= (w14l
>>> 19 | w14h
<< 13) ^ (w14l
<< 3 | w14h
>>> 29) ^ (w14l
>>> 6 | w14h
<< 26) | 0;
5231 w0h
= w0h
+ ((w14h
>>> 19 | w14l
<< 13) ^ (w14h
<< 3 | w14l
>>> 29) ^ w14h
>>> 6) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5232 tl
= 3100823752 + w0l
| 0;
5233 th
= 430227734 + w0h
+ (tl
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
5235 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5236 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5238 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5239 xl
= gl
^ el
& (fl
^ gl
) | 0;
5241 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5249 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5256 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5257 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5258 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5260 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5261 w1l
= w1l
+ w10l
| 0;
5262 w1h
= w1h
+ w10h
+ (w1l
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
5263 xl
= (w2l
>>> 1 | w2h
<< 31) ^ (w2l
>>> 8 | w2h
<< 24) ^ (w2l
>>> 7 | w2h
<< 25) | 0;
5265 w1h
= w1h
+ ((w2h
>>> 1 | w2l
<< 31) ^ (w2h
>>> 8 | w2l
<< 24) ^ w2h
>>> 7) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5266 xl
= (w15l
>>> 19 | w15h
<< 13) ^ (w15l
<< 3 | w15h
>>> 29) ^ (w15l
>>> 6 | w15h
<< 26) | 0;
5268 w1h
= w1h
+ ((w15h
>>> 19 | w15l
<< 13) ^ (w15h
<< 3 | w15l
>>> 29) ^ w15h
>>> 6) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5269 tl
= 1363258195 + w1l
| 0;
5270 th
= 506948616 + w1h
+ (tl
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
5272 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5273 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5275 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5276 xl
= gl
^ el
& (fl
^ gl
) | 0;
5278 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5286 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5293 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5294 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5295 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5297 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5298 w2l
= w2l
+ w11l
| 0;
5299 w2h
= w2h
+ w11h
+ (w2l
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
5300 xl
= (w3l
>>> 1 | w3h
<< 31) ^ (w3l
>>> 8 | w3h
<< 24) ^ (w3l
>>> 7 | w3h
<< 25) | 0;
5302 w2h
= w2h
+ ((w3h
>>> 1 | w3l
<< 31) ^ (w3h
>>> 8 | w3l
<< 24) ^ w3h
>>> 7) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5303 xl
= (w0l
>>> 19 | w0h
<< 13) ^ (w0l
<< 3 | w0h
>>> 29) ^ (w0l
>>> 6 | w0h
<< 26) | 0;
5305 w2h
= w2h
+ ((w0h
>>> 19 | w0l
<< 13) ^ (w0h
<< 3 | w0l
>>> 29) ^ w0h
>>> 6) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5306 tl
= 3750685593 + w2l
| 0;
5307 th
= 659060556 + w2h
+ (tl
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
5309 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5310 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5312 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5313 xl
= gl
^ el
& (fl
^ gl
) | 0;
5315 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5323 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5330 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5331 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5332 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5334 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5335 w3l
= w3l
+ w12l
| 0;
5336 w3h
= w3h
+ w12h
+ (w3l
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
5337 xl
= (w4l
>>> 1 | w4h
<< 31) ^ (w4l
>>> 8 | w4h
<< 24) ^ (w4l
>>> 7 | w4h
<< 25) | 0;
5339 w3h
= w3h
+ ((w4h
>>> 1 | w4l
<< 31) ^ (w4h
>>> 8 | w4l
<< 24) ^ w4h
>>> 7) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5340 xl
= (w1l
>>> 19 | w1h
<< 13) ^ (w1l
<< 3 | w1h
>>> 29) ^ (w1l
>>> 6 | w1h
<< 26) | 0;
5342 w3h
= w3h
+ ((w1h
>>> 19 | w1l
<< 13) ^ (w1h
<< 3 | w1l
>>> 29) ^ w1h
>>> 6) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5343 tl
= 3785050280 + w3l
| 0;
5344 th
= 883997877 + w3h
+ (tl
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
5346 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5347 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5349 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5350 xl
= gl
^ el
& (fl
^ gl
) | 0;
5352 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5360 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5367 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5368 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5369 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5371 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5372 w4l
= w4l
+ w13l
| 0;
5373 w4h
= w4h
+ w13h
+ (w4l
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
5374 xl
= (w5l
>>> 1 | w5h
<< 31) ^ (w5l
>>> 8 | w5h
<< 24) ^ (w5l
>>> 7 | w5h
<< 25) | 0;
5376 w4h
= w4h
+ ((w5h
>>> 1 | w5l
<< 31) ^ (w5h
>>> 8 | w5l
<< 24) ^ w5h
>>> 7) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5377 xl
= (w2l
>>> 19 | w2h
<< 13) ^ (w2l
<< 3 | w2h
>>> 29) ^ (w2l
>>> 6 | w2h
<< 26) | 0;
5379 w4h
= w4h
+ ((w2h
>>> 19 | w2l
<< 13) ^ (w2h
<< 3 | w2l
>>> 29) ^ w2h
>>> 6) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5380 tl
= 3318307427 + w4l
| 0;
5381 th
= 958139571 + w4h
+ (tl
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
5383 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5384 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5386 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5387 xl
= gl
^ el
& (fl
^ gl
) | 0;
5389 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5397 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5404 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5405 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5406 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5408 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5409 w5l
= w5l
+ w14l
| 0;
5410 w5h
= w5h
+ w14h
+ (w5l
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
5411 xl
= (w6l
>>> 1 | w6h
<< 31) ^ (w6l
>>> 8 | w6h
<< 24) ^ (w6l
>>> 7 | w6h
<< 25) | 0;
5413 w5h
= w5h
+ ((w6h
>>> 1 | w6l
<< 31) ^ (w6h
>>> 8 | w6l
<< 24) ^ w6h
>>> 7) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5414 xl
= (w3l
>>> 19 | w3h
<< 13) ^ (w3l
<< 3 | w3h
>>> 29) ^ (w3l
>>> 6 | w3h
<< 26) | 0;
5416 w5h
= w5h
+ ((w3h
>>> 19 | w3l
<< 13) ^ (w3h
<< 3 | w3l
>>> 29) ^ w3h
>>> 6) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5417 tl
= 3812723403 + w5l
| 0;
5418 th
= 1322822218 + w5h
+ (tl
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
5420 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5421 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5423 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5424 xl
= gl
^ el
& (fl
^ gl
) | 0;
5426 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5434 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5441 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5442 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5443 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5445 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5446 w6l
= w6l
+ w15l
| 0;
5447 w6h
= w6h
+ w15h
+ (w6l
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
5448 xl
= (w7l
>>> 1 | w7h
<< 31) ^ (w7l
>>> 8 | w7h
<< 24) ^ (w7l
>>> 7 | w7h
<< 25) | 0;
5450 w6h
= w6h
+ ((w7h
>>> 1 | w7l
<< 31) ^ (w7h
>>> 8 | w7l
<< 24) ^ w7h
>>> 7) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5451 xl
= (w4l
>>> 19 | w4h
<< 13) ^ (w4l
<< 3 | w4h
>>> 29) ^ (w4l
>>> 6 | w4h
<< 26) | 0;
5453 w6h
= w6h
+ ((w4h
>>> 19 | w4l
<< 13) ^ (w4h
<< 3 | w4l
>>> 29) ^ w4h
>>> 6) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5454 tl
= 2003034995 + w6l
| 0;
5455 th
= 1537002063 + w6h
+ (tl
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
5457 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5458 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5460 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5461 xl
= gl
^ el
& (fl
^ gl
) | 0;
5463 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5471 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5478 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5479 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5480 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5482 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5483 w7l
= w7l
+ w0l
| 0;
5484 w7h
= w7h
+ w0h
+ (w7l
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
5485 xl
= (w8l
>>> 1 | w8h
<< 31) ^ (w8l
>>> 8 | w8h
<< 24) ^ (w8l
>>> 7 | w8h
<< 25) | 0;
5487 w7h
= w7h
+ ((w8h
>>> 1 | w8l
<< 31) ^ (w8h
>>> 8 | w8l
<< 24) ^ w8h
>>> 7) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5488 xl
= (w5l
>>> 19 | w5h
<< 13) ^ (w5l
<< 3 | w5h
>>> 29) ^ (w5l
>>> 6 | w5h
<< 26) | 0;
5490 w7h
= w7h
+ ((w5h
>>> 19 | w5l
<< 13) ^ (w5h
<< 3 | w5l
>>> 29) ^ w5h
>>> 6) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5491 tl
= 3602036899 + w7l
| 0;
5492 th
= 1747873779 + w7h
+ (tl
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
5494 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5495 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5497 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5498 xl
= gl
^ el
& (fl
^ gl
) | 0;
5500 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5508 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5515 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5516 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5517 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5519 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5520 w8l
= w8l
+ w1l
| 0;
5521 w8h
= w8h
+ w1h
+ (w8l
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
5522 xl
= (w9l
>>> 1 | w9h
<< 31) ^ (w9l
>>> 8 | w9h
<< 24) ^ (w9l
>>> 7 | w9h
<< 25) | 0;
5524 w8h
= w8h
+ ((w9h
>>> 1 | w9l
<< 31) ^ (w9h
>>> 8 | w9l
<< 24) ^ w9h
>>> 7) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5525 xl
= (w6l
>>> 19 | w6h
<< 13) ^ (w6l
<< 3 | w6h
>>> 29) ^ (w6l
>>> 6 | w6h
<< 26) | 0;
5527 w8h
= w8h
+ ((w6h
>>> 19 | w6l
<< 13) ^ (w6h
<< 3 | w6l
>>> 29) ^ w6h
>>> 6) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5528 tl
= 1575990012 + w8l
| 0;
5529 th
= 1955562222 + w8h
+ (tl
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
5531 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5532 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5534 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5535 xl
= gl
^ el
& (fl
^ gl
) | 0;
5537 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5545 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5552 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5553 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5554 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5556 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5557 w9l
= w9l
+ w2l
| 0;
5558 w9h
= w9h
+ w2h
+ (w9l
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
5559 xl
= (w10l
>>> 1 | w10h
<< 31) ^ (w10l
>>> 8 | w10h
<< 24) ^ (w10l
>>> 7 | w10h
<< 25) | 0;
5561 w9h
= w9h
+ ((w10h
>>> 1 | w10l
<< 31) ^ (w10h
>>> 8 | w10l
<< 24) ^ w10h
>>> 7) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5562 xl
= (w7l
>>> 19 | w7h
<< 13) ^ (w7l
<< 3 | w7h
>>> 29) ^ (w7l
>>> 6 | w7h
<< 26) | 0;
5564 w9h
= w9h
+ ((w7h
>>> 19 | w7l
<< 13) ^ (w7h
<< 3 | w7l
>>> 29) ^ w7h
>>> 6) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5565 tl
= 1125592928 + w9l
| 0;
5566 th
= 2024104815 + w9h
+ (tl
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
5568 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5569 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5571 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5572 xl
= gl
^ el
& (fl
^ gl
) | 0;
5574 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5582 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5589 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5590 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5591 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5593 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5594 w10l
= w10l
+ w3l
| 0;
5595 w10h
= w10h
+ w3h
+ (w10l
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
5596 xl
= (w11l
>>> 1 | w11h
<< 31) ^ (w11l
>>> 8 | w11h
<< 24) ^ (w11l
>>> 7 | w11h
<< 25) | 0;
5597 w10l
= w10l
+ xl
| 0;
5598 w10h
= w10h
+ ((w11h
>>> 1 | w11l
<< 31) ^ (w11h
>>> 8 | w11l
<< 24) ^ w11h
>>> 7) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5599 xl
= (w8l
>>> 19 | w8h
<< 13) ^ (w8l
<< 3 | w8h
>>> 29) ^ (w8l
>>> 6 | w8h
<< 26) | 0;
5600 w10l
= w10l
+ xl
| 0;
5601 w10h
= w10h
+ ((w8h
>>> 19 | w8l
<< 13) ^ (w8h
<< 3 | w8l
>>> 29) ^ w8h
>>> 6) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5602 tl
= 2716904306 + w10l
| 0;
5603 th
= 2227730452 + w10h
+ (tl
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
5605 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5606 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5608 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5609 xl
= gl
^ el
& (fl
^ gl
) | 0;
5611 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5619 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5626 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5627 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5628 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5630 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5631 w11l
= w11l
+ w4l
| 0;
5632 w11h
= w11h
+ w4h
+ (w11l
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
5633 xl
= (w12l
>>> 1 | w12h
<< 31) ^ (w12l
>>> 8 | w12h
<< 24) ^ (w12l
>>> 7 | w12h
<< 25) | 0;
5634 w11l
= w11l
+ xl
| 0;
5635 w11h
= w11h
+ ((w12h
>>> 1 | w12l
<< 31) ^ (w12h
>>> 8 | w12l
<< 24) ^ w12h
>>> 7) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5636 xl
= (w9l
>>> 19 | w9h
<< 13) ^ (w9l
<< 3 | w9h
>>> 29) ^ (w9l
>>> 6 | w9h
<< 26) | 0;
5637 w11l
= w11l
+ xl
| 0;
5638 w11h
= w11h
+ ((w9h
>>> 19 | w9l
<< 13) ^ (w9h
<< 3 | w9l
>>> 29) ^ w9h
>>> 6) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5639 tl
= 442776044 + w11l
| 0;
5640 th
= 2361852424 + w11h
+ (tl
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
5642 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5643 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5645 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5646 xl
= gl
^ el
& (fl
^ gl
) | 0;
5648 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5656 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5663 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5664 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5665 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5667 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5668 w12l
= w12l
+ w5l
| 0;
5669 w12h
= w12h
+ w5h
+ (w12l
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
5670 xl
= (w13l
>>> 1 | w13h
<< 31) ^ (w13l
>>> 8 | w13h
<< 24) ^ (w13l
>>> 7 | w13h
<< 25) | 0;
5671 w12l
= w12l
+ xl
| 0;
5672 w12h
= w12h
+ ((w13h
>>> 1 | w13l
<< 31) ^ (w13h
>>> 8 | w13l
<< 24) ^ w13h
>>> 7) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5673 xl
= (w10l
>>> 19 | w10h
<< 13) ^ (w10l
<< 3 | w10h
>>> 29) ^ (w10l
>>> 6 | w10h
<< 26) | 0;
5674 w12l
= w12l
+ xl
| 0;
5675 w12h
= w12h
+ ((w10h
>>> 19 | w10l
<< 13) ^ (w10h
<< 3 | w10l
>>> 29) ^ w10h
>>> 6) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5676 tl
= 593698344 + w12l
| 0;
5677 th
= 2428436474 + w12h
+ (tl
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
5679 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5680 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5682 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5683 xl
= gl
^ el
& (fl
^ gl
) | 0;
5685 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5693 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5700 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5701 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5702 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5704 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5705 w13l
= w13l
+ w6l
| 0;
5706 w13h
= w13h
+ w6h
+ (w13l
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
5707 xl
= (w14l
>>> 1 | w14h
<< 31) ^ (w14l
>>> 8 | w14h
<< 24) ^ (w14l
>>> 7 | w14h
<< 25) | 0;
5708 w13l
= w13l
+ xl
| 0;
5709 w13h
= w13h
+ ((w14h
>>> 1 | w14l
<< 31) ^ (w14h
>>> 8 | w14l
<< 24) ^ w14h
>>> 7) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5710 xl
= (w11l
>>> 19 | w11h
<< 13) ^ (w11l
<< 3 | w11h
>>> 29) ^ (w11l
>>> 6 | w11h
<< 26) | 0;
5711 w13l
= w13l
+ xl
| 0;
5712 w13h
= w13h
+ ((w11h
>>> 19 | w11l
<< 13) ^ (w11h
<< 3 | w11l
>>> 29) ^ w11h
>>> 6) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5713 tl
= 3733110249 + w13l
| 0;
5714 th
= 2756734187 + w13h
+ (tl
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
5716 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5717 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5719 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5720 xl
= gl
^ el
& (fl
^ gl
) | 0;
5722 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5730 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5737 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5738 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5739 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5741 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5742 w14l
= w14l
+ w7l
| 0;
5743 w14h
= w14h
+ w7h
+ (w14l
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
5744 xl
= (w15l
>>> 1 | w15h
<< 31) ^ (w15l
>>> 8 | w15h
<< 24) ^ (w15l
>>> 7 | w15h
<< 25) | 0;
5745 w14l
= w14l
+ xl
| 0;
5746 w14h
= w14h
+ ((w15h
>>> 1 | w15l
<< 31) ^ (w15h
>>> 8 | w15l
<< 24) ^ w15h
>>> 7) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5747 xl
= (w12l
>>> 19 | w12h
<< 13) ^ (w12l
<< 3 | w12h
>>> 29) ^ (w12l
>>> 6 | w12h
<< 26) | 0;
5748 w14l
= w14l
+ xl
| 0;
5749 w14h
= w14h
+ ((w12h
>>> 19 | w12l
<< 13) ^ (w12h
<< 3 | w12l
>>> 29) ^ w12h
>>> 6) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5750 tl
= 2999351573 + w14l
| 0;
5751 th
= 3204031479 + w14h
+ (tl
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
5753 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5754 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5756 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5757 xl
= gl
^ el
& (fl
^ gl
) | 0;
5759 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5767 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5774 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5775 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5776 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5778 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5779 w15l
= w15l
+ w8l
| 0;
5780 w15h
= w15h
+ w8h
+ (w15l
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
5781 xl
= (w0l
>>> 1 | w0h
<< 31) ^ (w0l
>>> 8 | w0h
<< 24) ^ (w0l
>>> 7 | w0h
<< 25) | 0;
5782 w15l
= w15l
+ xl
| 0;
5783 w15h
= w15h
+ ((w0h
>>> 1 | w0l
<< 31) ^ (w0h
>>> 8 | w0l
<< 24) ^ w0h
>>> 7) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5784 xl
= (w13l
>>> 19 | w13h
<< 13) ^ (w13l
<< 3 | w13h
>>> 29) ^ (w13l
>>> 6 | w13h
<< 26) | 0;
5785 w15l
= w15l
+ xl
| 0;
5786 w15h
= w15h
+ ((w13h
>>> 19 | w13l
<< 13) ^ (w13h
<< 3 | w13l
>>> 29) ^ w13h
>>> 6) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5787 tl
= 3815920427 + w15l
| 0;
5788 th
= 3329325298 + w15h
+ (tl
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
5790 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5791 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5793 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5794 xl
= gl
^ el
& (fl
^ gl
) | 0;
5796 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5804 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5811 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5812 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5813 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5815 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5816 w0l
= w0l
+ w9l
| 0;
5817 w0h
= w0h
+ w9h
+ (w0l
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
5818 xl
= (w1l
>>> 1 | w1h
<< 31) ^ (w1l
>>> 8 | w1h
<< 24) ^ (w1l
>>> 7 | w1h
<< 25) | 0;
5820 w0h
= w0h
+ ((w1h
>>> 1 | w1l
<< 31) ^ (w1h
>>> 8 | w1l
<< 24) ^ w1h
>>> 7) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5821 xl
= (w14l
>>> 19 | w14h
<< 13) ^ (w14l
<< 3 | w14h
>>> 29) ^ (w14l
>>> 6 | w14h
<< 26) | 0;
5823 w0h
= w0h
+ ((w14h
>>> 19 | w14l
<< 13) ^ (w14h
<< 3 | w14l
>>> 29) ^ w14h
>>> 6) + (w0l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5824 tl
= 3928383900 + w0l
| 0;
5825 th
= 3391569614 + w0h
+ (tl
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
5827 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5828 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5830 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5831 xl
= gl
^ el
& (fl
^ gl
) | 0;
5833 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5841 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5848 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5849 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5850 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5852 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5853 w1l
= w1l
+ w10l
| 0;
5854 w1h
= w1h
+ w10h
+ (w1l
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
5855 xl
= (w2l
>>> 1 | w2h
<< 31) ^ (w2l
>>> 8 | w2h
<< 24) ^ (w2l
>>> 7 | w2h
<< 25) | 0;
5857 w1h
= w1h
+ ((w2h
>>> 1 | w2l
<< 31) ^ (w2h
>>> 8 | w2l
<< 24) ^ w2h
>>> 7) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5858 xl
= (w15l
>>> 19 | w15h
<< 13) ^ (w15l
<< 3 | w15h
>>> 29) ^ (w15l
>>> 6 | w15h
<< 26) | 0;
5860 w1h
= w1h
+ ((w15h
>>> 19 | w15l
<< 13) ^ (w15h
<< 3 | w15l
>>> 29) ^ w15h
>>> 6) + (w1l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5861 tl
= 566280711 + w1l
| 0;
5862 th
= 3515267271 + w1h
+ (tl
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
5864 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5865 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5867 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5868 xl
= gl
^ el
& (fl
^ gl
) | 0;
5870 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5878 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5885 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5886 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5887 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5889 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5890 w2l
= w2l
+ w11l
| 0;
5891 w2h
= w2h
+ w11h
+ (w2l
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
5892 xl
= (w3l
>>> 1 | w3h
<< 31) ^ (w3l
>>> 8 | w3h
<< 24) ^ (w3l
>>> 7 | w3h
<< 25) | 0;
5894 w2h
= w2h
+ ((w3h
>>> 1 | w3l
<< 31) ^ (w3h
>>> 8 | w3l
<< 24) ^ w3h
>>> 7) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5895 xl
= (w0l
>>> 19 | w0h
<< 13) ^ (w0l
<< 3 | w0h
>>> 29) ^ (w0l
>>> 6 | w0h
<< 26) | 0;
5897 w2h
= w2h
+ ((w0h
>>> 19 | w0l
<< 13) ^ (w0h
<< 3 | w0l
>>> 29) ^ w0h
>>> 6) + (w2l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5898 tl
= 3454069534 + w2l
| 0;
5899 th
= 3940187606 + w2h
+ (tl
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
5901 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5902 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5904 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5905 xl
= gl
^ el
& (fl
^ gl
) | 0;
5907 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5915 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5922 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5923 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5924 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5926 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5927 w3l
= w3l
+ w12l
| 0;
5928 w3h
= w3h
+ w12h
+ (w3l
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
5929 xl
= (w4l
>>> 1 | w4h
<< 31) ^ (w4l
>>> 8 | w4h
<< 24) ^ (w4l
>>> 7 | w4h
<< 25) | 0;
5931 w3h
= w3h
+ ((w4h
>>> 1 | w4l
<< 31) ^ (w4h
>>> 8 | w4l
<< 24) ^ w4h
>>> 7) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5932 xl
= (w1l
>>> 19 | w1h
<< 13) ^ (w1l
<< 3 | w1h
>>> 29) ^ (w1l
>>> 6 | w1h
<< 26) | 0;
5934 w3h
= w3h
+ ((w1h
>>> 19 | w1l
<< 13) ^ (w1h
<< 3 | w1l
>>> 29) ^ w1h
>>> 6) + (w3l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5935 tl
= 4000239992 + w3l
| 0;
5936 th
= 4118630271 + w3h
+ (tl
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
5938 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5939 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5941 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5942 xl
= gl
^ el
& (fl
^ gl
) | 0;
5944 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5952 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5959 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5960 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5961 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
5963 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5964 w4l
= w4l
+ w13l
| 0;
5965 w4h
= w4h
+ w13h
+ (w4l
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
5966 xl
= (w5l
>>> 1 | w5h
<< 31) ^ (w5l
>>> 8 | w5h
<< 24) ^ (w5l
>>> 7 | w5h
<< 25) | 0;
5968 w4h
= w4h
+ ((w5h
>>> 1 | w5l
<< 31) ^ (w5h
>>> 8 | w5l
<< 24) ^ w5h
>>> 7) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5969 xl
= (w2l
>>> 19 | w2h
<< 13) ^ (w2l
<< 3 | w2h
>>> 29) ^ (w2l
>>> 6 | w2h
<< 26) | 0;
5971 w4h
= w4h
+ ((w2h
>>> 19 | w2l
<< 13) ^ (w2h
<< 3 | w2l
>>> 29) ^ w2h
>>> 6) + (w4l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5972 tl
= 1914138554 + w4l
| 0;
5973 th
= 116418474 + w4h
+ (tl
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
5975 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
5976 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
5978 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5979 xl
= gl
^ el
& (fl
^ gl
) | 0;
5981 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
5989 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
5996 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
5997 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
5998 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6000 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6001 w5l
= w5l
+ w14l
| 0;
6002 w5h
= w5h
+ w14h
+ (w5l
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
6003 xl
= (w6l
>>> 1 | w6h
<< 31) ^ (w6l
>>> 8 | w6h
<< 24) ^ (w6l
>>> 7 | w6h
<< 25) | 0;
6005 w5h
= w5h
+ ((w6h
>>> 1 | w6l
<< 31) ^ (w6h
>>> 8 | w6l
<< 24) ^ w6h
>>> 7) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6006 xl
= (w3l
>>> 19 | w3h
<< 13) ^ (w3l
<< 3 | w3h
>>> 29) ^ (w3l
>>> 6 | w3h
<< 26) | 0;
6008 w5h
= w5h
+ ((w3h
>>> 19 | w3l
<< 13) ^ (w3h
<< 3 | w3l
>>> 29) ^ w3h
>>> 6) + (w5l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6009 tl
= 2731055270 + w5l
| 0;
6010 th
= 174292421 + w5h
+ (tl
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
6012 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6013 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6015 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6016 xl
= gl
^ el
& (fl
^ gl
) | 0;
6018 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6026 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6033 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6034 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6035 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6037 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6038 w6l
= w6l
+ w15l
| 0;
6039 w6h
= w6h
+ w15h
+ (w6l
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
6040 xl
= (w7l
>>> 1 | w7h
<< 31) ^ (w7l
>>> 8 | w7h
<< 24) ^ (w7l
>>> 7 | w7h
<< 25) | 0;
6042 w6h
= w6h
+ ((w7h
>>> 1 | w7l
<< 31) ^ (w7h
>>> 8 | w7l
<< 24) ^ w7h
>>> 7) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6043 xl
= (w4l
>>> 19 | w4h
<< 13) ^ (w4l
<< 3 | w4h
>>> 29) ^ (w4l
>>> 6 | w4h
<< 26) | 0;
6045 w6h
= w6h
+ ((w4h
>>> 19 | w4l
<< 13) ^ (w4h
<< 3 | w4l
>>> 29) ^ w4h
>>> 6) + (w6l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6046 tl
= 3203993006 + w6l
| 0;
6047 th
= 289380356 + w6h
+ (tl
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
6049 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6050 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6052 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6053 xl
= gl
^ el
& (fl
^ gl
) | 0;
6055 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6063 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6070 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6071 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6072 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6074 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6075 w7l
= w7l
+ w0l
| 0;
6076 w7h
= w7h
+ w0h
+ (w7l
>>> 0 < w0l
>>> 0 ? 1 : 0) | 0;
6077 xl
= (w8l
>>> 1 | w8h
<< 31) ^ (w8l
>>> 8 | w8h
<< 24) ^ (w8l
>>> 7 | w8h
<< 25) | 0;
6079 w7h
= w7h
+ ((w8h
>>> 1 | w8l
<< 31) ^ (w8h
>>> 8 | w8l
<< 24) ^ w8h
>>> 7) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6080 xl
= (w5l
>>> 19 | w5h
<< 13) ^ (w5l
<< 3 | w5h
>>> 29) ^ (w5l
>>> 6 | w5h
<< 26) | 0;
6082 w7h
= w7h
+ ((w5h
>>> 19 | w5l
<< 13) ^ (w5h
<< 3 | w5l
>>> 29) ^ w5h
>>> 6) + (w7l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6083 tl
= 320620315 + w7l
| 0;
6084 th
= 460393269 + w7h
+ (tl
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
6086 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6087 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6089 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6090 xl
= gl
^ el
& (fl
^ gl
) | 0;
6092 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6100 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6107 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6108 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6109 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6111 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6112 w8l
= w8l
+ w1l
| 0;
6113 w8h
= w8h
+ w1h
+ (w8l
>>> 0 < w1l
>>> 0 ? 1 : 0) | 0;
6114 xl
= (w9l
>>> 1 | w9h
<< 31) ^ (w9l
>>> 8 | w9h
<< 24) ^ (w9l
>>> 7 | w9h
<< 25) | 0;
6116 w8h
= w8h
+ ((w9h
>>> 1 | w9l
<< 31) ^ (w9h
>>> 8 | w9l
<< 24) ^ w9h
>>> 7) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6117 xl
= (w6l
>>> 19 | w6h
<< 13) ^ (w6l
<< 3 | w6h
>>> 29) ^ (w6l
>>> 6 | w6h
<< 26) | 0;
6119 w8h
= w8h
+ ((w6h
>>> 19 | w6l
<< 13) ^ (w6h
<< 3 | w6l
>>> 29) ^ w6h
>>> 6) + (w8l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6120 tl
= 587496836 + w8l
| 0;
6121 th
= 685471733 + w8h
+ (tl
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
6123 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6124 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6126 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6127 xl
= gl
^ el
& (fl
^ gl
) | 0;
6129 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6137 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6144 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6145 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6146 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6148 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6149 w9l
= w9l
+ w2l
| 0;
6150 w9h
= w9h
+ w2h
+ (w9l
>>> 0 < w2l
>>> 0 ? 1 : 0) | 0;
6151 xl
= (w10l
>>> 1 | w10h
<< 31) ^ (w10l
>>> 8 | w10h
<< 24) ^ (w10l
>>> 7 | w10h
<< 25) | 0;
6153 w9h
= w9h
+ ((w10h
>>> 1 | w10l
<< 31) ^ (w10h
>>> 8 | w10l
<< 24) ^ w10h
>>> 7) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6154 xl
= (w7l
>>> 19 | w7h
<< 13) ^ (w7l
<< 3 | w7h
>>> 29) ^ (w7l
>>> 6 | w7h
<< 26) | 0;
6156 w9h
= w9h
+ ((w7h
>>> 19 | w7l
<< 13) ^ (w7h
<< 3 | w7l
>>> 29) ^ w7h
>>> 6) + (w9l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6157 tl
= 1086792851 + w9l
| 0;
6158 th
= 852142971 + w9h
+ (tl
>>> 0 < w9l
>>> 0 ? 1 : 0) | 0;
6160 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6161 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6163 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6164 xl
= gl
^ el
& (fl
^ gl
) | 0;
6166 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6174 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6181 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6182 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6183 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6185 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6186 w10l
= w10l
+ w3l
| 0;
6187 w10h
= w10h
+ w3h
+ (w10l
>>> 0 < w3l
>>> 0 ? 1 : 0) | 0;
6188 xl
= (w11l
>>> 1 | w11h
<< 31) ^ (w11l
>>> 8 | w11h
<< 24) ^ (w11l
>>> 7 | w11h
<< 25) | 0;
6189 w10l
= w10l
+ xl
| 0;
6190 w10h
= w10h
+ ((w11h
>>> 1 | w11l
<< 31) ^ (w11h
>>> 8 | w11l
<< 24) ^ w11h
>>> 7) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6191 xl
= (w8l
>>> 19 | w8h
<< 13) ^ (w8l
<< 3 | w8h
>>> 29) ^ (w8l
>>> 6 | w8h
<< 26) | 0;
6192 w10l
= w10l
+ xl
| 0;
6193 w10h
= w10h
+ ((w8h
>>> 19 | w8l
<< 13) ^ (w8h
<< 3 | w8l
>>> 29) ^ w8h
>>> 6) + (w10l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6194 tl
= 365543100 + w10l
| 0;
6195 th
= 1017036298 + w10h
+ (tl
>>> 0 < w10l
>>> 0 ? 1 : 0) | 0;
6197 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6198 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6200 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6201 xl
= gl
^ el
& (fl
^ gl
) | 0;
6203 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6211 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6218 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6219 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6220 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6222 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6223 w11l
= w11l
+ w4l
| 0;
6224 w11h
= w11h
+ w4h
+ (w11l
>>> 0 < w4l
>>> 0 ? 1 : 0) | 0;
6225 xl
= (w12l
>>> 1 | w12h
<< 31) ^ (w12l
>>> 8 | w12h
<< 24) ^ (w12l
>>> 7 | w12h
<< 25) | 0;
6226 w11l
= w11l
+ xl
| 0;
6227 w11h
= w11h
+ ((w12h
>>> 1 | w12l
<< 31) ^ (w12h
>>> 8 | w12l
<< 24) ^ w12h
>>> 7) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6228 xl
= (w9l
>>> 19 | w9h
<< 13) ^ (w9l
<< 3 | w9h
>>> 29) ^ (w9l
>>> 6 | w9h
<< 26) | 0;
6229 w11l
= w11l
+ xl
| 0;
6230 w11h
= w11h
+ ((w9h
>>> 19 | w9l
<< 13) ^ (w9h
<< 3 | w9l
>>> 29) ^ w9h
>>> 6) + (w11l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6231 tl
= 2618297676 + w11l
| 0;
6232 th
= 1126000580 + w11h
+ (tl
>>> 0 < w11l
>>> 0 ? 1 : 0) | 0;
6234 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6235 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6237 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6238 xl
= gl
^ el
& (fl
^ gl
) | 0;
6240 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6248 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6255 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6256 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6257 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6259 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6260 w12l
= w12l
+ w5l
| 0;
6261 w12h
= w12h
+ w5h
+ (w12l
>>> 0 < w5l
>>> 0 ? 1 : 0) | 0;
6262 xl
= (w13l
>>> 1 | w13h
<< 31) ^ (w13l
>>> 8 | w13h
<< 24) ^ (w13l
>>> 7 | w13h
<< 25) | 0;
6263 w12l
= w12l
+ xl
| 0;
6264 w12h
= w12h
+ ((w13h
>>> 1 | w13l
<< 31) ^ (w13h
>>> 8 | w13l
<< 24) ^ w13h
>>> 7) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6265 xl
= (w10l
>>> 19 | w10h
<< 13) ^ (w10l
<< 3 | w10h
>>> 29) ^ (w10l
>>> 6 | w10h
<< 26) | 0;
6266 w12l
= w12l
+ xl
| 0;
6267 w12h
= w12h
+ ((w10h
>>> 19 | w10l
<< 13) ^ (w10h
<< 3 | w10l
>>> 29) ^ w10h
>>> 6) + (w12l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6268 tl
= 3409855158 + w12l
| 0;
6269 th
= 1288033470 + w12h
+ (tl
>>> 0 < w12l
>>> 0 ? 1 : 0) | 0;
6271 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6272 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6274 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6275 xl
= gl
^ el
& (fl
^ gl
) | 0;
6277 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6285 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6292 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6293 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6294 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6296 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6297 w13l
= w13l
+ w6l
| 0;
6298 w13h
= w13h
+ w6h
+ (w13l
>>> 0 < w6l
>>> 0 ? 1 : 0) | 0;
6299 xl
= (w14l
>>> 1 | w14h
<< 31) ^ (w14l
>>> 8 | w14h
<< 24) ^ (w14l
>>> 7 | w14h
<< 25) | 0;
6300 w13l
= w13l
+ xl
| 0;
6301 w13h
= w13h
+ ((w14h
>>> 1 | w14l
<< 31) ^ (w14h
>>> 8 | w14l
<< 24) ^ w14h
>>> 7) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6302 xl
= (w11l
>>> 19 | w11h
<< 13) ^ (w11l
<< 3 | w11h
>>> 29) ^ (w11l
>>> 6 | w11h
<< 26) | 0;
6303 w13l
= w13l
+ xl
| 0;
6304 w13h
= w13h
+ ((w11h
>>> 19 | w11l
<< 13) ^ (w11h
<< 3 | w11l
>>> 29) ^ w11h
>>> 6) + (w13l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6305 tl
= 4234509866 + w13l
| 0;
6306 th
= 1501505948 + w13h
+ (tl
>>> 0 < w13l
>>> 0 ? 1 : 0) | 0;
6308 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6309 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6311 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6312 xl
= gl
^ el
& (fl
^ gl
) | 0;
6314 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6322 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6329 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6330 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6331 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6333 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6334 w14l
= w14l
+ w7l
| 0;
6335 w14h
= w14h
+ w7h
+ (w14l
>>> 0 < w7l
>>> 0 ? 1 : 0) | 0;
6336 xl
= (w15l
>>> 1 | w15h
<< 31) ^ (w15l
>>> 8 | w15h
<< 24) ^ (w15l
>>> 7 | w15h
<< 25) | 0;
6337 w14l
= w14l
+ xl
| 0;
6338 w14h
= w14h
+ ((w15h
>>> 1 | w15l
<< 31) ^ (w15h
>>> 8 | w15l
<< 24) ^ w15h
>>> 7) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6339 xl
= (w12l
>>> 19 | w12h
<< 13) ^ (w12l
<< 3 | w12h
>>> 29) ^ (w12l
>>> 6 | w12h
<< 26) | 0;
6340 w14l
= w14l
+ xl
| 0;
6341 w14h
= w14h
+ ((w12h
>>> 19 | w12l
<< 13) ^ (w12h
<< 3 | w12l
>>> 29) ^ w12h
>>> 6) + (w14l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6342 tl
= 987167468 + w14l
| 0;
6343 th
= 1607167915 + w14h
+ (tl
>>> 0 < w14l
>>> 0 ? 1 : 0) | 0;
6345 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6346 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6348 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6349 xl
= gl
^ el
& (fl
^ gl
) | 0;
6351 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6359 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6366 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6367 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6368 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6370 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6371 w15l
= w15l
+ w8l
| 0;
6372 w15h
= w15h
+ w8h
+ (w15l
>>> 0 < w8l
>>> 0 ? 1 : 0) | 0;
6373 xl
= (w0l
>>> 1 | w0h
<< 31) ^ (w0l
>>> 8 | w0h
<< 24) ^ (w0l
>>> 7 | w0h
<< 25) | 0;
6374 w15l
= w15l
+ xl
| 0;
6375 w15h
= w15h
+ ((w0h
>>> 1 | w0l
<< 31) ^ (w0h
>>> 8 | w0l
<< 24) ^ w0h
>>> 7) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6376 xl
= (w13l
>>> 19 | w13h
<< 13) ^ (w13l
<< 3 | w13h
>>> 29) ^ (w13l
>>> 6 | w13h
<< 26) | 0;
6377 w15l
= w15l
+ xl
| 0;
6378 w15h
= w15h
+ ((w13h
>>> 19 | w13l
<< 13) ^ (w13h
<< 3 | w13l
>>> 29) ^ w13h
>>> 6) + (w15l
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6379 tl
= 1246189591 + w15l
| 0;
6380 th
= 1816402316 + w15h
+ (tl
>>> 0 < w15l
>>> 0 ? 1 : 0) | 0;
6382 th
= th
+ hh
+ (tl
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6383 xl
= (el
>>> 14 | eh
<< 18) ^ (el
>>> 18 | eh
<< 14) ^ (el
<< 23 | eh
>>> 9) | 0;
6385 th
= th
+ ((eh
>>> 14 | el
<< 18) ^ (eh
>>> 18 | el
<< 14) ^ (eh
<< 23 | el
>>> 9)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6386 xl
= gl
^ el
& (fl
^ gl
) | 0;
6388 th
= th
+ (gh
^ eh
& (fh
^ gh
)) + (tl
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6396 eh
= dh
+ th
+ (el
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6403 al
= tl
+ (bl
& cl
^ dl
& (bl
^ cl
)) | 0;
6404 ah
= th
+ (bh
& ch
^ dh
& (bh
^ ch
)) + (al
>>> 0 < tl
>>> 0 ? 1 : 0) | 0;
6405 xl
= (bl
>>> 28 | bh
<< 4) ^ (bl
<< 30 | bh
>>> 2) ^ (bl
<< 25 | bh
>>> 7) | 0;
6407 ah
= ah
+ ((bh
>>> 28 | bl
<< 4) ^ (bh
<< 30 | bl
>>> 2) ^ (bh
<< 25 | bl
>>> 7)) + (al
>>> 0 < xl
>>> 0 ? 1 : 0) | 0;
6409 H0h
= H0h
+ ah
+ (H0l
>>> 0 < al
>>> 0 ? 1 : 0) | 0;
6411 H1h
= H1h
+ bh
+ (H1l
>>> 0 < bl
>>> 0 ? 1 : 0) | 0;
6413 H2h
= H2h
+ ch
+ (H2l
>>> 0 < cl
>>> 0 ? 1 : 0) | 0;
6415 H3h
= H3h
+ dh
+ (H3l
>>> 0 < dl
>>> 0 ? 1 : 0) | 0;
6417 H4h
= H4h
+ eh
+ (H4l
>>> 0 < el
>>> 0 ? 1 : 0) | 0;
6419 H5h
= H5h
+ fh
+ (H5l
>>> 0 < fl
>>> 0 ? 1 : 0) | 0;
6421 H6h
= H6h
+ gh
+ (H6l
>>> 0 < gl
>>> 0 ? 1 : 0) | 0;
6423 H7h
= H7h
+ hh
+ (H7l
>>> 0 < hl
>>> 0 ? 1 : 0) | 0;
6425 function _core_heap(offset
) {
6426 offset
= offset
| 0;
6427 _core(HEAP
[offset
| 0] << 24 | HEAP
[offset
| 1] << 16 | HEAP
[offset
| 2] << 8 | HEAP
[offset
| 3], HEAP
[offset
| 4] << 24 | HEAP
[offset
| 5] << 16 | HEAP
[offset
| 6] << 8 | HEAP
[offset
| 7], HEAP
[offset
| 8] << 24 | HEAP
[offset
| 9] << 16 | HEAP
[offset
| 10] << 8 | HEAP
[offset
| 11], HEAP
[offset
| 12] << 24 | HEAP
[offset
| 13] << 16 | HEAP
[offset
| 14] << 8 | HEAP
[offset
| 15], HEAP
[offset
| 16] << 24 | HEAP
[offset
| 17] << 16 | HEAP
[offset
| 18] << 8 | HEAP
[offset
| 19], HEAP
[offset
| 20] << 24 | HEAP
[offset
| 21] << 16 | HEAP
[offset
| 22] << 8 | HEAP
[offset
| 23], HEAP
[offset
| 24] << 24 | HEAP
[offset
| 25] << 16 | HEAP
[offset
| 26] << 8 | HEAP
[offset
| 27], HEAP
[offset
| 28] << 24 | HEAP
[offset
| 29] << 16 | HEAP
[offset
| 30] << 8 | HEAP
[offset
| 31], HEAP
[offset
| 32] << 24 | HEAP
[offset
| 33] << 16 | HEAP
[offset
| 34] << 8 | HEAP
[offset
| 35], HEAP
[offset
| 36] << 24 | HEAP
[offset
| 37] << 16 | HEAP
[offset
| 38] << 8 | HEAP
[offset
| 39], HEAP
[offset
| 40] << 24 | HEAP
[offset
| 41] << 16 | HEAP
[offset
| 42] << 8 | HEAP
[offset
| 43], HEAP
[offset
| 44] << 24 | HEAP
[offset
| 45] << 16 | HEAP
[offset
| 46] << 8 | HEAP
[offset
| 47], HEAP
[offset
| 48] << 24 | HEAP
[offset
| 49] << 16 | HEAP
[offset
| 50] << 8 | HEAP
[offset
| 51], HEAP
[offset
| 52] << 24 | HEAP
[offset
| 53] << 16 | HEAP
[offset
| 54] << 8 | HEAP
[offset
| 55], HEAP
[offset
| 56] << 24 | HEAP
[offset
| 57] << 16 | HEAP
[offset
| 58] << 8 | HEAP
[offset
| 59], HEAP
[offset
| 60] << 24 | HEAP
[offset
| 61] << 16 | HEAP
[offset
| 62] << 8 | HEAP
[offset
| 63], HEAP
[offset
| 64] << 24 | HEAP
[offset
| 65] << 16 | HEAP
[offset
| 66] << 8 | HEAP
[offset
| 67], HEAP
[offset
| 68] << 24 | HEAP
[offset
| 69] << 16 | HEAP
[offset
| 70] << 8 | HEAP
[offset
| 71], HEAP
[offset
| 72] << 24 | HEAP
[offset
| 73] << 16 | HEAP
[offset
| 74] << 8 | HEAP
[offset
| 75], HEAP
[offset
| 76] << 24 | HEAP
[offset
| 77] << 16 | HEAP
[offset
| 78] << 8 | HEAP
[offset
| 79], HEAP
[offset
| 80] << 24 | HEAP
[offset
| 81] << 16 | HEAP
[offset
| 82] << 8 | HEAP
[offset
| 83], HEAP
[offset
| 84] << 24 | HEAP
[offset
| 85] << 16 | HEAP
[offset
| 86] << 8 | HEAP
[offset
| 87], HEAP
[offset
| 88] << 24 | HEAP
[offset
| 89] << 16 | HEAP
[offset
| 90] << 8 | HEAP
[offset
| 91], HEAP
[offset
| 92] << 24 | HEAP
[offset
| 93] << 16 | HEAP
[offset
| 94] << 8 | HEAP
[offset
| 95], HEAP
[offset
| 96] << 24 | HEAP
[offset
| 97] << 16 | HEAP
[offset
| 98] << 8 | HEAP
[offset
| 99], HEAP
[offset
| 100] << 24 | HEAP
[offset
| 101] << 16 | HEAP
[offset
| 102] << 8 | HEAP
[offset
| 103], HEAP
[offset
| 104] << 24 | HEAP
[offset
| 105] << 16 | HEAP
[offset
| 106] << 8 | HEAP
[offset
| 107], HEAP
[offset
| 108] << 24 | HEAP
[offset
| 109] << 16 | HEAP
[offset
| 110] << 8 | HEAP
[offset
| 111], HEAP
[offset
| 112] << 24 | HEAP
[offset
| 113] << 16 | HEAP
[offset
| 114] << 8 | HEAP
[offset
| 115], HEAP
[offset
| 116] << 24 | HEAP
[offset
| 117] << 16 | HEAP
[offset
| 118] << 8 | HEAP
[offset
| 119], HEAP
[offset
| 120] << 24 | HEAP
[offset
| 121] << 16 | HEAP
[offset
| 122] << 8 | HEAP
[offset
| 123], HEAP
[offset
| 124] << 24 | HEAP
[offset
| 125] << 16 | HEAP
[offset
| 126] << 8 | HEAP
[offset
| 127]);
6429 function _state_to_heap(output
) {
6430 output
= output
| 0;
6431 HEAP
[output
| 0] = H0h
>>> 24;
6432 HEAP
[output
| 1] = H0h
>>> 16 & 255;
6433 HEAP
[output
| 2] = H0h
>>> 8 & 255;
6434 HEAP
[output
| 3] = H0h
& 255;
6435 HEAP
[output
| 4] = H0l
>>> 24;
6436 HEAP
[output
| 5] = H0l
>>> 16 & 255;
6437 HEAP
[output
| 6] = H0l
>>> 8 & 255;
6438 HEAP
[output
| 7] = H0l
& 255;
6439 HEAP
[output
| 8] = H1h
>>> 24;
6440 HEAP
[output
| 9] = H1h
>>> 16 & 255;
6441 HEAP
[output
| 10] = H1h
>>> 8 & 255;
6442 HEAP
[output
| 11] = H1h
& 255;
6443 HEAP
[output
| 12] = H1l
>>> 24;
6444 HEAP
[output
| 13] = H1l
>>> 16 & 255;
6445 HEAP
[output
| 14] = H1l
>>> 8 & 255;
6446 HEAP
[output
| 15] = H1l
& 255;
6447 HEAP
[output
| 16] = H2h
>>> 24;
6448 HEAP
[output
| 17] = H2h
>>> 16 & 255;
6449 HEAP
[output
| 18] = H2h
>>> 8 & 255;
6450 HEAP
[output
| 19] = H2h
& 255;
6451 HEAP
[output
| 20] = H2l
>>> 24;
6452 HEAP
[output
| 21] = H2l
>>> 16 & 255;
6453 HEAP
[output
| 22] = H2l
>>> 8 & 255;
6454 HEAP
[output
| 23] = H2l
& 255;
6455 HEAP
[output
| 24] = H3h
>>> 24;
6456 HEAP
[output
| 25] = H3h
>>> 16 & 255;
6457 HEAP
[output
| 26] = H3h
>>> 8 & 255;
6458 HEAP
[output
| 27] = H3h
& 255;
6459 HEAP
[output
| 28] = H3l
>>> 24;
6460 HEAP
[output
| 29] = H3l
>>> 16 & 255;
6461 HEAP
[output
| 30] = H3l
>>> 8 & 255;
6462 HEAP
[output
| 31] = H3l
& 255;
6463 HEAP
[output
| 32] = H4h
>>> 24;
6464 HEAP
[output
| 33] = H4h
>>> 16 & 255;
6465 HEAP
[output
| 34] = H4h
>>> 8 & 255;
6466 HEAP
[output
| 35] = H4h
& 255;
6467 HEAP
[output
| 36] = H4l
>>> 24;
6468 HEAP
[output
| 37] = H4l
>>> 16 & 255;
6469 HEAP
[output
| 38] = H4l
>>> 8 & 255;
6470 HEAP
[output
| 39] = H4l
& 255;
6471 HEAP
[output
| 40] = H5h
>>> 24;
6472 HEAP
[output
| 41] = H5h
>>> 16 & 255;
6473 HEAP
[output
| 42] = H5h
>>> 8 & 255;
6474 HEAP
[output
| 43] = H5h
& 255;
6475 HEAP
[output
| 44] = H5l
>>> 24;
6476 HEAP
[output
| 45] = H5l
>>> 16 & 255;
6477 HEAP
[output
| 46] = H5l
>>> 8 & 255;
6478 HEAP
[output
| 47] = H5l
& 255;
6479 HEAP
[output
| 48] = H6h
>>> 24;
6480 HEAP
[output
| 49] = H6h
>>> 16 & 255;
6481 HEAP
[output
| 50] = H6h
>>> 8 & 255;
6482 HEAP
[output
| 51] = H6h
& 255;
6483 HEAP
[output
| 52] = H6l
>>> 24;
6484 HEAP
[output
| 53] = H6l
>>> 16 & 255;
6485 HEAP
[output
| 54] = H6l
>>> 8 & 255;
6486 HEAP
[output
| 55] = H6l
& 255;
6487 HEAP
[output
| 56] = H7h
>>> 24;
6488 HEAP
[output
| 57] = H7h
>>> 16 & 255;
6489 HEAP
[output
| 58] = H7h
>>> 8 & 255;
6490 HEAP
[output
| 59] = H7h
& 255;
6491 HEAP
[output
| 60] = H7l
>>> 24;
6492 HEAP
[output
| 61] = H7l
>>> 16 & 255;
6493 HEAP
[output
| 62] = H7l
>>> 8 & 255;
6494 HEAP
[output
| 63] = H7l
& 255;
6515 function init(h0h
, h0l
, h1h
, h1l
, h2h
, h2l
, h3h
, h3l
, h4h
, h4l
, h5h
, h5l
, h6h
, h6l
, h7h
, h7l
, total
) {
6551 function process(offset
, length
) {
6552 offset
= offset
| 0;
6553 length
= length
| 0;
6555 if (offset
& 127) return -1;
6556 while ((length
| 0) >= 128) {
6558 offset
= offset
+ 128 | 0;
6559 length
= length
- 128 | 0;
6560 hashed
= hashed
+ 128 | 0;
6562 TOTAL
= TOTAL
+ hashed
| 0;
6565 function finish(offset
, length
, output
) {
6566 offset
= offset
| 0;
6567 length
= length
| 0;
6568 output
= output
| 0;
6569 var hashed
= 0, i
= 0;
6570 if (offset
& 127) return -1;
6571 if (~output
) if (output
& 63) return -1;
6572 if ((length
| 0) >= 128) {
6573 hashed
= process(offset
, length
) | 0;
6574 if ((hashed
| 0) == -1) return -1;
6575 offset
= offset
+ hashed
| 0;
6576 length
= length
- hashed
| 0;
6578 hashed
= hashed
+ length
| 0;
6579 TOTAL
= TOTAL
+ length
| 0;
6580 HEAP
[offset
| length
] = 128;
6581 if ((length
| 0) >= 112) {
6582 for (i
= length
+ 1 | 0; (i
| 0) < 128; i
= i
+ 1 | 0) HEAP
[offset
| i
] = 0;
6585 HEAP
[offset
| 0] = 0;
6587 for (i
= length
+ 1 | 0; (i
| 0) < 123; i
= i
+ 1 | 0) HEAP
[offset
| i
] = 0;
6588 HEAP
[offset
| 123] = TOTAL
>>> 29;
6589 HEAP
[offset
| 124] = TOTAL
>>> 21 & 255;
6590 HEAP
[offset
| 125] = TOTAL
>>> 13 & 255;
6591 HEAP
[offset
| 126] = TOTAL
>>> 5 & 255;
6592 HEAP
[offset
| 127] = TOTAL
<< 3 & 255;
6594 if (~output
) _state_to_heap(output
);
6597 function hmac_reset() {
6616 function _hmac_opad() {
6635 function hmac_init(p0h
, p0l
, p1h
, p1l
, p2h
, p2l
, p3h
, p3l
, p4h
, p4l
, p5h
, p5l
, p6h
, p6l
, p7h
, p7l
, p8h
, p8l
, p9h
, p9l
, p10h
, p10l
, p11h
, p11l
, p12h
, p12l
, p13h
, p13l
, p14h
, p14l
, p15h
, p15l
) {
6669 _core(p0h
^ 1549556828, p0l
^ 1549556828, p1h
^ 1549556828, p1l
^ 1549556828, p2h
^ 1549556828, p2l
^ 1549556828, p3h
^ 1549556828, p3l
^ 1549556828, p4h
^ 1549556828, p4l
^ 1549556828, p5h
^ 1549556828, p5l
^ 1549556828, p6h
^ 1549556828, p6l
^ 1549556828, p7h
^ 1549556828, p7l
^ 1549556828, p8h
^ 1549556828, p8l
^ 1549556828, p9h
^ 1549556828, p9l
^ 1549556828, p10h
^ 1549556828, p10l
^ 1549556828, p11h
^ 1549556828, p11l
^ 1549556828, p12h
^ 1549556828, p12l
^ 1549556828, p13h
^ 1549556828, p13l
^ 1549556828, p14h
^ 1549556828, p14l
^ 1549556828, p15h
^ 1549556828, p15l
^ 1549556828);
6687 _core(p0h
^ 909522486, p0l
^ 909522486, p1h
^ 909522486, p1l
^ 909522486, p2h
^ 909522486, p2l
^ 909522486, p3h
^ 909522486, p3l
^ 909522486, p4h
^ 909522486, p4l
^ 909522486, p5h
^ 909522486, p5l
^ 909522486, p6h
^ 909522486, p6l
^ 909522486, p7h
^ 909522486, p7l
^ 909522486, p8h
^ 909522486, p8l
^ 909522486, p9h
^ 909522486, p9l
^ 909522486, p10h
^ 909522486, p10l
^ 909522486, p11h
^ 909522486, p11l
^ 909522486, p12h
^ 909522486, p12l
^ 909522486, p13h
^ 909522486, p13l
^ 909522486, p14h
^ 909522486, p14l
^ 909522486, p15h
^ 909522486, p15l
^ 909522486);
6706 function hmac_finish(offset
, length
, output
) {
6707 offset
= offset
| 0;
6708 length
= length
| 0;
6709 output
= output
| 0;
6710 var t0h
= 0, t0l
= 0, t1h
= 0, t1l
= 0, t2h
= 0, t2l
= 0, t3h
= 0, t3l
= 0, t4h
= 0, t4l
= 0, t5h
= 0, t5l
= 0, t6h
= 0, t6l
= 0, t7h
= 0, t7l
= 0, hashed
= 0;
6711 if (offset
& 127) return -1;
6712 if (~output
) if (output
& 63) return -1;
6713 hashed
= finish(offset
, length
, -1) | 0;
6731 _core(t0h
, t0l
, t1h
, t1l
, t2h
, t2l
, t3h
, t3l
, t4h
, t4l
, t5h
, t5l
, t6h
, t6l
, t7h
, t7l
, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536);
6732 if (~output
) _state_to_heap(output
);
6735 function pbkdf2_generate_block(offset
, length
, block
, count
, output
) {
6736 offset
= offset
| 0;
6737 length
= length
| 0;
6740 output
= output
| 0;
6741 var h0h
= 0, h0l
= 0, h1h
= 0, h1l
= 0, h2h
= 0, h2l
= 0, h3h
= 0, h3l
= 0, h4h
= 0, h4l
= 0, h5h
= 0, h5l
= 0, h6h
= 0, h6l
= 0, h7h
= 0, h7l
= 0, t0h
= 0, t0l
= 0, t1h
= 0, t1l
= 0, t2h
= 0, t2l
= 0, t3h
= 0, t3l
= 0, t4h
= 0, t4l
= 0, t5h
= 0, t5l
= 0, t6h
= 0, t6l
= 0, t7h
= 0, t7l
= 0;
6742 if (offset
& 127) return -1;
6743 if (~output
) if (output
& 63) return -1;
6744 HEAP
[offset
+ length
| 0] = block
>>> 24;
6745 HEAP
[offset
+ length
+ 1 | 0] = block
>>> 16 & 255;
6746 HEAP
[offset
+ length
+ 2 | 0] = block
>>> 8 & 255;
6747 HEAP
[offset
+ length
+ 3 | 0] = block
& 255;
6748 hmac_finish(offset
, length
+ 4 | 0, -1) | 0;
6765 count
= count
- 1 | 0;
6766 while ((count
| 0) > 0) {
6768 _core(t0h
, t0l
, t1h
, t1l
, t2h
, t2l
, t3h
, t3l
, t4h
, t4l
, t5h
, t5l
, t6h
, t6l
, t7h
, t7l
, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536);
6786 _core(t0h
, t0l
, t1h
, t1l
, t2h
, t2l
, t3h
, t3l
, t4h
, t4l
, t5h
, t5l
, t6h
, t6l
, t7h
, t7l
, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1536);
6819 count
= count
- 1 | 0;
6837 if (~output
) _state_to_heap(output
);
6845 hmac_reset: hmac_reset
,
6846 hmac_init: hmac_init
,
6847 hmac_finish: hmac_finish
,
6848 pbkdf2_generate_block: pbkdf2_generate_block
6851 var _sha512_block_size
= 128, _sha512_hash_size
= 64;
6852 function sha512_constructor(options
) {
6853 options
= options
|| {};
6854 options
.heapSize
= options
.heapSize
|| 4096;
6855 if (options
.heapSize
<= 0 || options
.heapSize
% 4096) throw new IllegalArgumentError("heapSize must be a positive number and multiple of 4096");
6856 this.heap
= options
.heap
|| new Uint8Array(options
.heapSize
);
6857 this.asm
= options
.asm
|| sha512_asm(global
, null, this.heap
.buffer
);
6858 this.BLOCK_SIZE
= _sha512_block_size
;
6859 this.HASH_SIZE
= _sha512_hash_size
;
6862 function sha512_reset() {
6869 function sha512_process(data
) {
6870 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
6871 var dpos
= 0, dlen
= 0, clen
= 0;
6872 if (is_buffer(data
) || is_bytes(data
)) {
6873 dpos
= data
.byteOffset
|| 0;
6874 dlen
= data
.byteLength
;
6875 } else if (is_string(data
)) {
6878 throw new TypeError("data isn't of expected type");
6881 clen
= this.heap
.byteLength
- this.pos
- this.len
;
6882 clen
= clen
< dlen
? clen : dlen
;
6883 if (is_buffer(data
) || is_bytes(data
)) {
6884 this.heap
.set(new Uint8Array(data
.buffer
|| data
, dpos
, clen
), this.pos
+ this.len
);
6886 for (var i
= 0; i
< clen
; i
++) this.heap
[this.pos
+ this.len
+ i
] = data
.charCodeAt(dpos
+ i
);
6891 clen
= this.asm
.process(this.pos
, this.len
);
6892 if (clen
< this.len
) {
6902 function sha512_finish() {
6903 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
6904 this.asm
.finish(this.pos
, this.len
, 0);
6905 this.result
= new Uint8Array(_sha512_hash_size
);
6906 this.result
.set(this.heap
.subarray(0, _sha512_hash_size
));
6911 sha512_constructor
.BLOCK_SIZE
= _sha512_block_size
;
6912 sha512_constructor
.HASH_SIZE
= _sha512_hash_size
;
6913 var sha512_prototype
= sha512_constructor
.prototype;
6914 sha512_prototype
.reset
= sha512_reset
;
6915 sha512_prototype
.process
= sha512_process
;
6916 sha512_prototype
.finish
= sha512_finish
;
6917 function hmac_constructor(options
) {
6918 options
= options
|| {};
6919 if (!options
.hash
) throw new SyntaxError("option 'hash' is required");
6920 if (!options
.hash
.HASH_SIZE
) throw new SyntaxError("option 'hash' supplied doesn't seem to be a valid hash function");
6921 this.hash
= options
.hash
;
6922 this.BLOCK_SIZE
= this.hash
.BLOCK_SIZE
;
6923 this.HMAC_SIZE
= this.hash
.HASH_SIZE
;
6927 if (options
.password
!== undefined || options
.verify
!== undefined) this.reset(options
);
6930 function hmac_sha256_constructor(options
) {
6931 options
= options
|| {};
6932 if (!(options
.hash
instanceof sha256_constructor
)) options
.hash
= new sha256_constructor(options
);
6933 hmac_constructor
.call(this, options
);
6936 function hmac_sha512_constructor(options
) {
6937 options
= options
|| {};
6938 if (!(options
.hash
instanceof sha512_constructor
)) options
.hash
= new sha512_constructor(options
);
6939 hmac_constructor
.call(this, options
);
6942 function _hmac_key(hash
, password
) {
6944 if (is_buffer(password
) || is_bytes(password
)) {
6945 key
= new Uint8Array(hash
.BLOCK_SIZE
);
6946 if (password
.byteLength
> hash
.BLOCK_SIZE
) {
6947 key
.set(new Uint8Array(hash
.reset().process(password
).finish().result
));
6948 } else if (is_buffer(password
)) {
6949 key
.set(new Uint8Array(password
));
6953 } else if (is_string(password
)) {
6954 key
= new Uint8Array(hash
.BLOCK_SIZE
);
6955 if (password
.length
> hash
.BLOCK_SIZE
) {
6956 key
.set(new Uint8Array(hash
.reset().process(password
).finish().result
));
6958 for (var i
= 0; i
< password
.length
; ++i
) key
[i
] = password
.charCodeAt(i
);
6961 throw new TypeError("password isn't of expected type");
6965 function _hmac_init_verify(verify
) {
6966 if (is_buffer(verify
) || is_bytes(verify
)) {
6967 verify
= new Uint8Array(verify
);
6968 } else if (is_string(verify
)) {
6969 verify
= string_to_bytes(verify
);
6971 throw new TypeError("verify tag isn't of expected type");
6973 if (verify
.length
!== this.HMAC_SIZE
) throw new IllegalArgumentError("illegal verification tag size");
6974 this.verify
= verify
;
6976 function hmac_reset(options
) {
6977 options
= options
|| {};
6978 var password
= options
.password
;
6979 if (this.key
=== null && !is_string(password
) && !password
) throw new IllegalStateError("no key is associated with the instance");
6982 if (password
|| is_string(password
)) this.key
= _hmac_key(this.hash
, password
);
6983 var ipad
= new Uint8Array(this.key
);
6984 for (var i
= 0; i
< ipad
.length
; ++i
) ipad
[i
] ^= 54;
6985 this.hash
.process(ipad
);
6986 var verify
= options
.verify
;
6987 if (verify
!== undefined) {
6988 _hmac_init_verify
.call(this, verify
);
6994 function hmac_sha256_reset(options
) {
6995 options
= options
|| {};
6996 var password
= options
.password
;
6997 if (this.key
=== null && !is_string(password
) && !password
) throw new IllegalStateError("no key is associated with the instance");
7000 if (password
|| is_string(password
)) {
7001 this.key
= _hmac_key(this.hash
, password
);
7002 this.hash
.reset().asm
.hmac_init(this.key
[0] << 24 | this.key
[1] << 16 | this.key
[2] << 8 | this.key
[3], this.key
[4] << 24 | this.key
[5] << 16 | this.key
[6] << 8 | this.key
[7], this.key
[8] << 24 | this.key
[9] << 16 | this.key
[10] << 8 | this.key
[11], this.key
[12] << 24 | this.key
[13] << 16 | this.key
[14] << 8 | this.key
[15], this.key
[16] << 24 | this.key
[17] << 16 | this.key
[18] << 8 | this.key
[19], this.key
[20] << 24 | this.key
[21] << 16 | this.key
[22] << 8 | this.key
[23], this.key
[24] << 24 | this.key
[25] << 16 | this.key
[26] << 8 | this.key
[27], this.key
[28] << 24 | this.key
[29] << 16 | this.key
[30] << 8 | this.key
[31], this.key
[32] << 24 | this.key
[33] << 16 | this.key
[34] << 8 | this.key
[35], this.key
[36] << 24 | this.key
[37] << 16 | this.key
[38] << 8 | this.key
[39], this.key
[40] << 24 | this.key
[41] << 16 | this.key
[42] << 8 | this.key
[43], this.key
[44] << 24 | this.key
[45] << 16 | this.key
[46] << 8 | this.key
[47], this.key
[48] << 24 | this.key
[49] << 16 | this.key
[50] << 8 | this.key
[51], this.key
[52] << 24 | this.key
[53] << 16 | this.key
[54] << 8 | this.key
[55], this.key
[56] << 24 | this.key
[57] << 16 | this.key
[58] << 8 | this.key
[59], this.key
[60] << 24 | this.key
[61] << 16 | this.key
[62] << 8 | this.key
[63]);
7004 this.hash
.asm
.hmac_reset();
7006 var verify
= options
.verify
;
7007 if (verify
!== undefined) {
7008 _hmac_init_verify
.call(this, verify
);
7014 function hmac_sha512_reset(options
) {
7015 options
= options
|| {};
7016 var password
= options
.password
;
7017 if (this.key
=== null && !is_string(password
) && !password
) throw new IllegalStateError("no key is associated with the instance");
7020 if (password
|| is_string(password
)) {
7021 this.key
= _hmac_key(this.hash
, password
);
7022 this.hash
.reset().asm
.hmac_init(this.key
[0] << 24 | this.key
[1] << 16 | this.key
[2] << 8 | this.key
[3], this.key
[4] << 24 | this.key
[5] << 16 | this.key
[6] << 8 | this.key
[7], this.key
[8] << 24 | this.key
[9] << 16 | this.key
[10] << 8 | this.key
[11], this.key
[12] << 24 | this.key
[13] << 16 | this.key
[14] << 8 | this.key
[15], this.key
[16] << 24 | this.key
[17] << 16 | this.key
[18] << 8 | this.key
[19], this.key
[20] << 24 | this.key
[21] << 16 | this.key
[22] << 8 | this.key
[23], this.key
[24] << 24 | this.key
[25] << 16 | this.key
[26] << 8 | this.key
[27], this.key
[28] << 24 | this.key
[29] << 16 | this.key
[30] << 8 | this.key
[31], this.key
[32] << 24 | this.key
[33] << 16 | this.key
[34] << 8 | this.key
[35], this.key
[36] << 24 | this.key
[37] << 16 | this.key
[38] << 8 | this.key
[39], this.key
[40] << 24 | this.key
[41] << 16 | this.key
[42] << 8 | this.key
[43], this.key
[44] << 24 | this.key
[45] << 16 | this.key
[46] << 8 | this.key
[47], this.key
[48] << 24 | this.key
[49] << 16 | this.key
[50] << 8 | this.key
[51], this.key
[52] << 24 | this.key
[53] << 16 | this.key
[54] << 8 | this.key
[55], this.key
[56] << 24 | this.key
[57] << 16 | this.key
[58] << 8 | this.key
[59], this.key
[60] << 24 | this.key
[61] << 16 | this.key
[62] << 8 | this.key
[63], this.key
[64] << 24 | this.key
[65] << 16 | this.key
[66] << 8 | this.key
[67], this.key
[68] << 24 | this.key
[69] << 16 | this.key
[70] << 8 | this.key
[71], this.key
[72] << 24 | this.key
[73] << 16 | this.key
[74] << 8 | this.key
[75], this.key
[76] << 24 | this.key
[77] << 16 | this.key
[78] << 8 | this.key
[79], this.key
[80] << 24 | this.key
[81] << 16 | this.key
[82] << 8 | this.key
[83], this.key
[84] << 24 | this.key
[85] << 16 | this.key
[86] << 8 | this.key
[87], this.key
[88] << 24 | this.key
[89] << 16 | this.key
[90] << 8 | this.key
[91], this.key
[92] << 24 | this.key
[93] << 16 | this.key
[94] << 8 | this.key
[95], this.key
[96] << 24 | this.key
[97] << 16 | this.key
[98] << 8 | this.key
[99], this.key
[100] << 24 | this.key
[101] << 16 | this.key
[102] << 8 | this.key
[103], this.key
[104] << 24 | this.key
[105] << 16 | this.key
[106] << 8 | this.key
[107], this.key
[108] << 24 | this.key
[109] << 16 | this.key
[110] << 8 | this.key
[111], this.key
[112] << 24 | this.key
[113] << 16 | this.key
[114] << 8 | this.key
[115], this.key
[116] << 24 | this.key
[117] << 16 | this.key
[118] << 8 | this.key
[119], this.key
[120] << 24 | this.key
[121] << 16 | this.key
[122] << 8 | this.key
[123], this.key
[124] << 24 | this.key
[125] << 16 | this.key
[126] << 8 | this.key
[127]);
7024 this.hash
.asm
.hmac_reset();
7026 var verify
= options
.verify
;
7027 if (verify
!== undefined) {
7028 _hmac_init_verify
.call(this, verify
);
7034 function hmac_process(data
) {
7035 if (this.key
=== null) throw new IllegalStateError("no key is associated with the instance");
7036 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
7037 this.hash
.process(data
);
7040 function hmac_finish() {
7041 if (this.key
=== null) throw new IllegalStateError("no key is associated with the instance");
7042 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
7043 var inner_result
= this.hash
.finish().result
;
7044 var opad
= new Uint8Array(this.key
);
7045 for (var i
= 0; i
< opad
.length
; ++i
) opad
[i
] ^= 92;
7046 var verify
= this.verify
;
7047 var result
= this.hash
.reset().process(opad
).process(inner_result
).finish().result
;
7049 if (verify
.length
=== result
.length
) {
7051 for (var i
= 0; i
< verify
.length
; i
++) {
7052 diff
|= verify
[i
] ^ result
[i
];
7054 this.result
= !diff
;
7056 this.result
= false;
7059 this.result
= result
;
7063 function hmac_sha256_finish() {
7064 if (this.key
=== null) throw new IllegalStateError("no key is associated with the instance");
7065 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
7066 var hash
= this.hash
, asm
= this.hash
.asm
, heap
= this.hash
.heap
;
7067 asm
.hmac_finish(hash
.pos
, hash
.len
, 0);
7068 var verify
= this.verify
;
7069 var result
= new Uint8Array(_sha256_hash_size
);
7070 result
.set(heap
.subarray(0, _sha256_hash_size
));
7072 if (verify
.length
=== result
.length
) {
7074 for (var i
= 0; i
< verify
.length
; i
++) {
7075 diff
|= verify
[i
] ^ result
[i
];
7077 this.result
= !diff
;
7079 this.result
= false;
7082 this.result
= result
;
7086 function hmac_sha512_finish() {
7087 if (this.key
=== null) throw new IllegalStateError("no key is associated with the instance");
7088 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
7089 var hash
= this.hash
, asm
= this.hash
.asm
, heap
= this.hash
.heap
;
7090 asm
.hmac_finish(hash
.pos
, hash
.len
, 0);
7091 var verify
= this.verify
;
7092 var result
= new Uint8Array(_sha512_hash_size
);
7093 result
.set(heap
.subarray(0, _sha512_hash_size
));
7095 if (verify
.length
=== result
.length
) {
7097 for (var i
= 0; i
< verify
.length
; i
++) {
7098 diff
|= verify
[i
] ^ result
[i
];
7100 this.result
= !diff
;
7102 this.result
= false;
7105 this.result
= result
;
7109 var hmac_prototype
= hmac_constructor
.prototype;
7110 hmac_prototype
.reset
= hmac_reset
;
7111 hmac_prototype
.process
= hmac_process
;
7112 hmac_prototype
.finish
= hmac_finish
;
7113 hmac_sha256_constructor
.BLOCK_SIZE
= sha256_constructor
.BLOCK_SIZE
;
7114 hmac_sha256_constructor
.HMAC_SIZE
= sha256_constructor
.HASH_SIZE
;
7115 var hmac_sha256_prototype
= hmac_sha256_constructor
.prototype;
7116 hmac_sha256_prototype
.reset
= hmac_sha256_reset
;
7117 hmac_sha256_prototype
.process
= hmac_process
;
7118 hmac_sha256_prototype
.finish
= hmac_sha256_finish
;
7119 hmac_sha512_constructor
.BLOCK_SIZE
= sha512_constructor
.BLOCK_SIZE
;
7120 hmac_sha512_constructor
.HMAC_SIZE
= sha512_constructor
.HASH_SIZE
;
7121 var hmac_sha512_prototype
= hmac_sha512_constructor
.prototype;
7122 hmac_sha512_prototype
.reset
= hmac_sha512_reset
;
7123 hmac_sha512_prototype
.process
= hmac_process
;
7124 hmac_sha512_prototype
.finish
= hmac_sha512_finish
;
7125 function pbkdf2_constructor(options
) {
7126 options
= options
|| {};
7127 if (!options
.hmac
) throw new SyntaxError("option 'hmac' is required");
7128 if (!options
.hmac
.HMAC_SIZE
) throw new SyntaxError("option 'hmac' supplied doesn't seem to be a valid HMAC function");
7129 this.hmac
= options
.hmac
;
7130 this.count
= options
.count
|| 4096;
7131 this.length
= options
.length
|| this.hmac
.HMAC_SIZE
;
7133 var password
= options
.password
;
7134 if (password
|| is_string(password
)) this.reset(options
);
7137 function pbkdf2_hmac_sha256_constructor(options
) {
7138 options
= options
|| {};
7139 if (!(options
.hmac
instanceof hmac_sha256_constructor
)) options
.hmac
= new hmac_sha256_constructor(options
);
7140 pbkdf2_constructor
.call(this, options
);
7143 function pbkdf2_hmac_sha512_constructor(options
) {
7144 options
= options
|| {};
7145 if (!(options
.hmac
instanceof hmac_sha512_constructor
)) options
.hmac
= new hmac_sha512_constructor(options
);
7146 pbkdf2_constructor
.call(this, options
);
7149 function pbkdf2_reset(options
) {
7151 this.hmac
.reset(options
);
7154 function pbkdf2_generate(salt
, count
, length
) {
7155 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
7156 if (!salt
&& !is_string(salt
)) throw new IllegalArgumentError("bad 'salt' value");
7157 count
= count
|| this.count
;
7158 length
= length
|| this.length
;
7159 this.result
= new Uint8Array(length
);
7160 var blocks
= Math
.ceil(length
/ this.hmac
.HMAC_SIZE
);
7161 for (var i
= 1; i
<= blocks
; ++i
) {
7162 var j
= (i
- 1) * this.hmac
.HMAC_SIZE
;
7163 var l
= (i
< blocks
? 0 : length
% this.hmac
.HMAC_SIZE
) || this.hmac
.HMAC_SIZE
;
7164 var tmp
= new Uint8Array(this.hmac
.reset().process(salt
).process(new Uint8Array([ i
>>> 24 & 255, i
>>> 16 & 255, i
>>> 8 & 255, i
& 255 ])).finish().result
);
7165 this.result
.set(tmp
.subarray(0, l
), j
);
7166 for (var k
= 1; k
< count
; ++k
) {
7167 tmp
= new Uint8Array(this.hmac
.reset().process(tmp
).finish().result
);
7168 for (var r
= 0; r
< l
; ++r
) this.result
[j
+ r
] ^= tmp
[r
];
7173 function pbkdf2_hmac_sha256_generate(salt
, count
, length
) {
7174 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
7175 if (!salt
&& !is_string(salt
)) throw new IllegalArgumentError("bad 'salt' value");
7176 count
= count
|| this.count
;
7177 length
= length
|| this.length
;
7178 this.result
= new Uint8Array(length
);
7179 var blocks
= Math
.ceil(length
/ this.hmac
.HMAC_SIZE
);
7180 for (var i
= 1; i
<= blocks
; ++i
) {
7181 var j
= (i
- 1) * this.hmac
.HMAC_SIZE
;
7182 var l
= (i
< blocks
? 0 : length
% this.hmac
.HMAC_SIZE
) || this.hmac
.HMAC_SIZE
;
7183 this.hmac
.reset().process(salt
);
7184 this.hmac
.hash
.asm
.pbkdf2_generate_block(this.hmac
.hash
.pos
, this.hmac
.hash
.len
, i
, count
, 0);
7185 this.result
.set(this.hmac
.hash
.heap
.subarray(0, l
), j
);
7189 function pbkdf2_hmac_sha512_generate(salt
, count
, length
) {
7190 if (this.result
!== null) throw new IllegalStateError("state must be reset before processing new data");
7191 if (!salt
&& !is_string(salt
)) throw new IllegalArgumentError("bad 'salt' value");
7192 count
= count
|| this.count
;
7193 length
= length
|| this.length
;
7194 this.result
= new Uint8Array(length
);
7195 var blocks
= Math
.ceil(length
/ this.hmac
.HMAC_SIZE
);
7196 for (var i
= 1; i
<= blocks
; ++i
) {
7197 var j
= (i
- 1) * this.hmac
.HMAC_SIZE
;
7198 var l
= (i
< blocks
? 0 : length
% this.hmac
.HMAC_SIZE
) || this.hmac
.HMAC_SIZE
;
7199 this.hmac
.reset().process(salt
);
7200 this.hmac
.hash
.asm
.pbkdf2_generate_block(this.hmac
.hash
.pos
, this.hmac
.hash
.len
, i
, count
, 0);
7201 this.result
.set(this.hmac
.hash
.heap
.subarray(0, l
), j
);
7205 var pbkdf2_prototype
= pbkdf2_constructor
.prototype;
7206 pbkdf2_prototype
.reset
= pbkdf2_reset
;
7207 pbkdf2_prototype
.generate
= pbkdf2_generate
;
7208 var pbkdf2_hmac_sha256_prototype
= pbkdf2_hmac_sha256_constructor
.prototype;
7209 pbkdf2_hmac_sha256_prototype
.reset
= pbkdf2_reset
;
7210 pbkdf2_hmac_sha256_prototype
.generate
= pbkdf2_hmac_sha256_generate
;
7211 var pbkdf2_hmac_sha512_prototype
= pbkdf2_hmac_sha512_constructor
.prototype;
7212 pbkdf2_hmac_sha512_prototype
.reset
= pbkdf2_reset
;
7213 pbkdf2_hmac_sha512_prototype
.generate
= pbkdf2_hmac_sha512_generate
;
7214 global
.IllegalStateError
= IllegalStateError
;
7215 global
.IllegalArgumentError
= IllegalArgumentError
;
7216 global
.SecurityError
= SecurityError
;
7217 exports
.string_to_bytes
= string_to_bytes
;
7218 exports
.hex_to_bytes
= hex_to_bytes
;
7219 exports
.base64_to_bytes
= base64_to_bytes
;
7220 exports
.bytes_to_string
= bytes_to_string
;
7221 exports
.bytes_to_hex
= bytes_to_hex
;
7222 exports
.bytes_to_base64
= bytes_to_base64
;
7223 var SHA256_instance
= new sha256_constructor({
7226 function sha256_bytes(data
) {
7227 if (data
=== undefined) throw new SyntaxError("data required");
7228 return SHA256_instance
.reset().process(data
).finish().result
;
7230 function sha256_hex(data
) {
7231 var result
= sha256_bytes(data
.toUTF8Array());
7232 return bytes_to_hex(result
);
7234 function sha256_base64(data
) {
7235 var result
= sha256_bytes(data
);
7236 return bytes_to_base64(result
);
7239 bytes: sha256_bytes
,
7241 base64: sha256_base64
7243 var SHA512_instance
= new sha512_constructor({
7246 function sha512_bytes(data
) {
7247 if (data
=== undefined) throw new SyntaxError("data required");
7248 return SHA512_instance
.reset().process(data
).finish().result
;
7250 function sha512_hex(data
) {
7251 var result
= sha512_bytes(data
);
7252 return bytes_to_hex(result
);
7254 function sha512_base64(data
) {
7255 var result
= sha512_bytes(data
);
7256 return bytes_to_base64(result
);
7259 bytes: sha512_bytes
,
7261 base64: sha512_base64
7263 var hmac_sha256_instance
= new hmac_sha256_constructor({
7264 hash: SHA256_instance
7266 function hmac_sha256_bytes(data
, password
) {
7267 if (data
=== undefined) throw new SyntaxError("data required");
7268 if (password
=== undefined) throw new SyntaxError("password required");
7269 return hmac_sha256_instance
.reset({
7271 }).process(data
).finish().result
;
7273 function hmac_sha256_hex(data
, password
) {
7274 var result
= hmac_sha256_bytes(data
, password
);
7275 return bytes_to_hex(result
);
7277 function hmac_sha256_base64(data
, password
) {
7278 var result
= hmac_sha256_bytes(data
, password
);
7279 return bytes_to_base64(result
);
7281 exports
.HMAC
= exports
.HMAC_SHA256
= {
7282 bytes: hmac_sha256_bytes
,
7283 hex: hmac_sha256_hex
,
7284 base64: hmac_sha256_base64
7286 var hmac_sha512_instance
= new hmac_sha512_constructor({
7287 hash: SHA512_instance
7289 function hmac_sha512_bytes(data
, password
) {
7290 if (data
=== undefined) throw new SyntaxError("data required");
7291 if (password
=== undefined) throw new SyntaxError("password required");
7292 return hmac_sha512_instance
.reset({
7294 }).process(data
).finish().result
;
7296 function hmac_sha512_hex(data
, password
) {
7297 var result
= hmac_sha512_bytes(data
, password
);
7298 return bytes_to_hex(result
);
7300 function hmac_sha512_base64(data
, password
) {
7301 var result
= hmac_sha512_bytes(data
, password
);
7302 return bytes_to_base64(result
);
7304 exports
.HMAC_SHA512
= {
7305 bytes: hmac_sha512_bytes
,
7306 hex: hmac_sha512_hex
,
7307 base64: hmac_sha512_base64
7309 var pbkdf2_hmac_sha256_instance
= new pbkdf2_hmac_sha256_constructor({
7310 hmac: hmac_sha256_instance
7312 function pbkdf2_hmac_sha256_bytes(password
, salt
, iterations
, dklen
) {
7313 if (password
=== undefined) throw new SyntaxError("password required");
7314 if (salt
=== undefined) throw new SyntaxError("salt required");
7315 return pbkdf2_hmac_sha256_instance
.reset({
7316 password: password
.toUTF8Array()
7317 }).generate(salt
.toUTF8Array(), iterations
, dklen
).result
;
7319 function pbkdf2_hmac_sha256_hex(password
, salt
, iterations
, dklen
) {
7320 var result
= pbkdf2_hmac_sha256_bytes(password
, salt
, iterations
, dklen
);
7321 return bytes_to_hex(result
);
7323 function pbkdf2_hmac_sha256_base64(password
, salt
, iterations
, dklen
) {
7324 var result
= pbkdf2_hmac_sha256_bytes(password
, salt
, iterations
, dklen
);
7325 return bytes_to_base64(result
);
7327 exports
.PBKDF2
= exports
.PBKDF2_HMAC_SHA256
= {
7328 bytes: pbkdf2_hmac_sha256_bytes
,
7329 hex: pbkdf2_hmac_sha256_hex
,
7330 base64: pbkdf2_hmac_sha256_base64
7332 var pbkdf2_hmac_sha512_instance
= new pbkdf2_hmac_sha512_constructor({
7333 hmac: hmac_sha512_instance
7335 function pbkdf2_hmac_sha512_bytes(password
, salt
, iterations
, dklen
) {
7336 if (password
=== undefined) throw new SyntaxError("password required");
7337 if (salt
=== undefined) throw new SyntaxError("salt required");
7338 return pbkdf2_hmac_sha512_instance
.reset({
7339 password: password
.toUTF8Array()
7340 }).generate(salt
.toUTF8Array(), iterations
, dklen
).result
;
7342 function pbkdf2_hmac_sha512_hex(password
, salt
, iterations
, dklen
) {
7343 var result
= pbkdf2_hmac_sha512_bytes(password
, salt
, iterations
, dklen
);
7344 return bytes_to_hex(result
);
7346 function pbkdf2_hmac_sha512_base64(password
, salt
, iterations
, dklen
) {
7347 var result
= pbkdf2_hmac_sha512_bytes(password
, salt
, iterations
, dklen
);
7348 return bytes_to_base64(result
);
7350 exports
.PBKDF2_HMAC_SHA512
= {
7351 bytes: pbkdf2_hmac_sha512_bytes
,
7352 hex: pbkdf2_hmac_sha512_hex
,
7353 base64: pbkdf2_hmac_sha512_base64
7355 var cbc_aes_instance
= new cbc_aes_constructor({
7358 function cbc_aes_encrypt_bytes(data
, key
, padding
, iv
) {
7359 if (data
=== undefined) throw new SyntaxError("data required");
7360 if (key
=== undefined) throw new SyntaxError("key required");
7361 return cbc_aes_instance
.reset({
7365 }).encrypt(data
).result
;
7367 function cbc_aes_decrypt_bytes(data
, key
, padding
, iv
) {
7368 if (data
=== undefined) throw new SyntaxError("data required");
7369 if (key
=== undefined) throw new SyntaxError("key required");
7370 return cbc_aes_instance
.reset({
7374 }).decrypt(data
).result
;
7376 exports
.AES
= exports
.AES_CBC
= {
7377 encrypt: cbc_aes_encrypt_bytes
,
7378 decrypt: cbc_aes_decrypt_bytes
7380 var ccm_aes_instance
= new ccm_aes_constructor({
7381 heap: cbc_aes_instance
.heap
,
7382 asm: cbc_aes_instance
.asm
7384 function ccm_aes_encrypt_bytes(data
, key
, nonce
, adata
, tagSize
) {
7385 if (data
=== undefined) throw new SyntaxError("data required");
7386 if (key
=== undefined) throw new SyntaxError("key required");
7387 if (nonce
=== undefined) throw new SyntaxError("nonce required");
7388 var dataLength
= data
.byteLength
|| data
.length
|| 0;
7389 return ccm_aes_instance
.reset({
7394 dataLength: dataLength
7395 }).encrypt(data
).result
;
7397 function ccm_aes_decrypt_bytes(data
, key
, nonce
, adata
, tagSize
) {
7398 if (data
=== undefined) throw new SyntaxError("data required");
7399 if (key
=== undefined) throw new SyntaxError("key required");
7400 if (nonce
=== undefined) throw new SyntaxError("nonce required");
7401 var dataLength
= data
.byteLength
|| data
.length
|| 0;
7402 tagSize
= tagSize
|| _aes_block_size
;
7403 return ccm_aes_instance
.reset({
7408 dataLength: dataLength
- tagSize
7409 }).decrypt(data
).result
;
7412 encrypt: ccm_aes_encrypt_bytes
,
7413 decrypt: ccm_aes_decrypt_bytes
7415 var cfb_aes_instance
= new cfb_aes_constructor({
7416 heap: cbc_aes_instance
.heap
,
7417 asm: cbc_aes_instance
.asm
7419 function cfb_aes_encrypt_bytes(data
, key
, padding
, iv
) {
7420 if (data
=== undefined) throw new SyntaxError("data required");
7421 if (key
=== undefined) throw new SyntaxError("key required");
7422 return cfb_aes_instance
.reset({
7426 }).encrypt(data
).result
;
7428 function cfb_aes_decrypt_bytes(data
, key
, padding
, iv
) {
7429 if (data
=== undefined) throw new SyntaxError("data required");
7430 if (key
=== undefined) throw new SyntaxError("key required");
7431 return cfb_aes_instance
.reset({
7435 }).decrypt(data
).result
;
7438 encrypt: cfb_aes_encrypt_bytes
,
7439 decrypt: cfb_aes_decrypt_bytes
7441 var cfb_aes_decrypt_instance
= new cfb_aes_decrypt_constructor({
7442 heap: cbc_aes_instance
.heap
,
7443 asm: cbc_aes_instance
.asm
7445 function cfb_aes_decrypt_init(key
, padding
, iv
) {
7446 if (key
=== undefined) throw new SyntaxError("key required");
7447 return cfb_aes_decrypt_instance
.reset({
7453 exports
.AES_CFB
= exports
.AES_CFB
|| {};
7454 exports
.AES_CFB
.decryptor
= {
7455 init: cfb_aes_decrypt_init
7461 String
.prototype.toUTF8Array = function() {
7464 for (var i
=0; i
< str
.length
; i
++) {
7465 var charcode
= str
.charCodeAt(i
);
7466 if (charcode
< 0x80) utf8
.push(charcode
);
7467 else if (charcode
< 0x800) {
7468 utf8
.push(0xc0 | (charcode
>> 6),
7469 0x80 | (charcode
& 0x3f));
7471 else if (charcode
< 0xd800 || charcode
>= 0xe000) {
7472 utf8
.push(0xe0 | (charcode
>> 12),
7473 0x80 | ((charcode
>>6) & 0x3f),
7474 0x80 | (charcode
& 0x3f));
7479 // UTF-16 encodes 0x10000-0x10FFFF by
7480 // subtracting 0x10000 and splitting the
7481 // 20 bits of 0x0-0xFFFFF into two halves
7482 charcode
= 0x10000 + (((charcode
& 0x3ff)<<10)
7483 | (str
.charCodeAt(i
) & 0x3ff))
7484 utf8
.push(0xf0 | (charcode
>>18),
7485 0x80 | ((charcode
>>12) & 0x3f),
7486 0x80 | ((charcode
>>6) & 0x3f),
7487 0x80 | (charcode
& 0x3f));
7490 return new Uint8Array(utf8
);