📄 a.java
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov Date: 12/6/2006 9:44:31 AM
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
package jp.sourceforge.qrcode.ecc;
public final class a
{
private void b()
{
int l1;
int i2;
int j2;
int k2;
int l2;
int i3;
int k1 = l1 = i2 = j2 = k2 = l2 = i3 = 0;
boolean flag = false;
int j1 = 1;
b[0] = 1;
b[255] = b[0];
c[0] = 0;
for(int k = 1; k < 256; k++)
{
boolean flag1 = i3;
i3 = l2;
l2 = k2;
k2 = j2;
j2 = i2 ^ flag1;
i2 = l1 ^ flag1;
l1 = k1 ^ flag1;
k1 = j1;
j1 = ((flag1) ? 1 : 0);
b[k] = j1 + k1 * 2 + l1 * 4 + i2 * 8 + j2 * 16 + k2 * 32 + l2 * 64 + i3 * 128;
b[k + 255] = b[k];
}
label0:
for(int l = 1; l < 256; l++)
{
int i1 = 0;
do
{
if(i1 >= 256)
continue label0;
if(b[i1] == l)
{
c[l] = i1;
continue label0;
}
i1++;
} while(true);
}
}
private int a(int k, int l)
{
if(k == 0 || l == 0)
{
return 0;
} else
{
int i1 = c[k];
int j1 = c[l];
return b[i1 + j1];
}
}
private int a(int k)
{
return b[255 - c[k]];
}
public a(int ai[])
{
b = new int[512];
c = new int[256];
d = new int[8];
e = new int[8];
f = new int[8];
g = new int[256];
i = new int[256];
j = 0;
b();
a = ai;
}
private void a(int ai[])
{
for(int l = 0; l < 8; l++)
{
int k = 0;
for(int i1 = 0; i1 < ai.length; i1++)
k = ai[i1] ^ a(b[l + 1], k);
d[l] = k;
}
}
public final void a()
{
a(a);
boolean flag = false;
if(0 < d.length && d[0] != 0)
flag = true;
if(flag)
a(a, a.length, 0, new int[1]);
}
private void c()
{
int ai[] = new int[8];
int ai1[] = new int[8];
int ai2[] = new int[8];
int ai3[] = new int[8];
b(ai3);
b(ai2, ai3);
d(ai2);
b(ai, ai3);
int j1 = -1;
int l = j;
for(int k = j; k < 8; k++)
{
int k1;
if((k1 = a(ai, d, l, k)) != 0)
{
for(int l1 = 0; l1 < 8; l1++)
ai1[l1] = ai[l1] ^ a(k1, ai2[l1]);
if(l < k - j1)
{
int i1 = k - j1;
j1 = k - l;
for(int i2 = 0; i2 < 8; i2++)
ai2[i2] = a(ai[i2], a(k1));
l = i1;
}
for(int j2 = 0; j2 < 8; j2++)
ai[j2] = ai1[j2];
}
d(ai2);
}
for(int k2 = 0; k2 < 8; k2++)
e[k2] = ai[k2];
d();
}
private void d()
{
int ai[] = new int[16];
a(ai, e, d);
c(f);
for(int k = 0; k < 4; k++)
f[k] = ai[k];
}
private void a(int ai[], int ai1[], int ai2[])
{
int ai3[] = new int[16];
for(int k = 0; k < 16; k++)
ai[k] = 0;
for(int l = 0; l < 8; l++)
{
for(int i1 = 8; i1 < 16; i1++)
ai3[i1] = 0;
for(int j1 = 0; j1 < 8; j1++)
ai3[j1] = a(ai2[j1], ai1[l]);
for(int k1 = 15; k1 >= l; k1--)
ai3[k1] = ai3[k1 - l];
for(int l1 = 0; l1 < l; l1++)
ai3[l1] = 0;
for(int i2 = 0; i2 < 16; i2++)
ai[i2] ^= ai3[i2];
}
}
private void b(int ai[])
{
int ai1[] = new int[8];
c(ai);
c(ai1);
ai[0] = 1;
for(int k = 0; k < j; k++)
{
b(ai1, ai);
a(b[i[k]], ai1);
d(ai1);
a(ai, ai1);
}
}
private int a(int ai[], int ai1[], int k, int l)
{
int i1 = 0;
for(int j1 = 0; j1 <= k; j1++)
i1 ^= a(ai[j1], ai1[l - j1]);
return i1;
}
private static void a(int ai[], int ai1[])
{
for(int k = 0; k < 8; k++)
ai[k] ^= ai1[k];
}
private static void b(int ai[], int ai1[])
{
for(int k = 0; k < 8; k++)
ai[k] = ai1[k];
}
private void a(int k, int ai[])
{
for(int l = 0; l < 8; l++)
ai[l] = a(k, ai[l]);
}
private static void c(int ai[])
{
for(int k = 0; k < 8; k++)
ai[k] = 0;
}
private static void d(int ai[])
{
for(int k = 7; k > 0; k--)
ai[k] = ai[k - 1];
ai[0] = 0;
}
private void e()
{
h = 0;
for(int l = 1; l < 256; l++)
{
int k = 0;
for(int i1 = 0; i1 < 5; i1++)
k ^= a(b[(i1 * l) % 255], e[i1]);
if(k == 0)
{
g[h] = 255 - l;
h++;
}
}
}
private int a(int ai[], int k, int l, int ai1[])
{
j = l;
for(int k1 = 0; k1 < j; k1++)
i[k1] = ai1[k1];
c();
e();
if(h <= 4 && h > 0)
{
for(int i1 = 0; i1 < h; i1++)
if(g[i1] >= k)
return 0;
for(int j1 = 0; j1 < h; j1++)
{
int l1 = g[j1];
int l2 = 0;
for(int i2 = 0; i2 < 8; i2++)
l2 ^= a(f[i2], b[((255 - l1) * i2) % 255]);
int i3 = 0;
for(int j2 = 1; j2 < 8; j2 += 2)
i3 ^= a(e[j2], b[((255 - l1) * (j2 - 1)) % 255]);
int k2 = a(l2, a(i3));
ai[k - l1 - 1] ^= k2;
}
return 1;
} else
{
return 0;
}
}
int a[];
int b[];
int c[];
int d[];
int e[];
int f[];
int g[];
int h;
int i[];
int j;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -