How do I reverse engineer this code to convert a binary graphic table to a editable png?











up vote
0
down vote

favorite












I'm working re-spriting this android game and the sprites are all in one file called gt, this is the code from the apk that converts what I assume is the byte code file into actual images.



It takes one parameter which is the path to that file.



Java isn't really my language so I was hoping someone could help me figure out what this code is doing and how I can use it to convert the file into something that I can edit like a png.



This is the corresponding source code:



    public static void readGraphicsTable(String paramString)
{
InputStream localInputStream = Util.getResourceAsStream(paramString);
if (localInputStream == null)
{
HG.logWarning("Config file not found: " + paramString);
return;
}
int j;
int k;
for (;;)
{
try
{
paramString = new DataInputStream(localInputStream);
j = paramString.readShort();
k = paramString.readShort();
if ((j != 18260) && (k != 1281))
{
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
createFontOffsets();
}
}
catch (Throwable paramString)
{
label156:
paramString = paramString;
HG.handleError(paramString, "Gfx.readGraphicsTable()");
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
k = paramString.readShort();
colors = new int[k];
j = 0;
if (j >= k) {
continue;
}
colors[j] = paramString.readInt();
j += 1;
continue;
k = paramString.readShort();
fonts = new Font[k];
fontOffsets = (int)Array.newInstance(Integer.TYPE, new int { k, 4 });
j = 0;
if (j >= k) {
continue;
}
m = paramString.readByte();
if (m != -1) {
continue;
}
fonts[j] = Font.getDefaultFont();
fontOffsets[j][0] = paramString.readByte();
fontOffsets[j][1] = paramString.readByte();
fontOffsets[j][2] = paramString.readByte();
fontOffsets[j][3] = paramString.readByte();
j += 1;
continue;
fonts[j] = Font.getFont(m & 0x60, m & 0x7, m & 0x18);
continue;
}
finally {}
j = paramString.readShort();
if (j == -1) {
break label1144;
}
k = paramString.readShort();
switch (j)
{
case 17231:
paramString.skip(k);
}
}
for (;;)
{
int m;
try
{
localInputStream.close();
throw paramString;
k = paramString.readShort();
imageTable = new short[k + 4];
images = new Image[k + 4];
j = 0;
if (j < k)
{
m = (short)paramString.readByte();
if (m == -1) {
break label1160;
}
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort[j] = arrayOfShort1;
m = (short)(m << 8);
if ((m & 0x200) != 0)
{
int i = paramString.readShort();
System.arraycopy(imageTable[i], 0, arrayOfShort1, 0, arrayOfShort1.length);
arrayOfShort1[7] = ((short)(arrayOfShort1[7] | m));
arrayOfShort1[10] = i;
break label1160;
}
n = paramString.readByte();
int i1 = paramString.readByte();
arrayOfShort1[7] = ((short)(m | n));
arrayOfShort1[2] = ((short)(i1 >> 4 & 0xF));
arrayOfShort1[3] = ((short)(i1 >> 0 & 0xF));
arrayOfShort1[4] = ((short)paramString.readByte());
arrayOfShort1[5] = paramString.readShort();
arrayOfShort1[6] = paramString.readShort();
arrayOfShort1[8] = paramString.readShort();
paramString.readUTF();
if ((m & 0x100) == 0) {
break label1160;
}
arrayOfShort1[10] = paramString.readShort();
arrayOfShort1[11] = ((short)paramString.readByte());
break label1160;
}
short arrayOfShort = imageTable;
short arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 4;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
break;
k = paramString.readShort();
frameTable = new short[k * 7];
j = 0;
break label1167;
frameTable[(m + 2)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 3)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 0)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 1)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 4)] = ((short)paramString.readByte());
frameTable[(m + 5)] = ((short)paramString.readByte());
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
frameTable[(m + 2)] = paramString.readShort();
frameTable[(m + 3)] = paramString.readShort();
frameTable[(m + 0)] = paramString.readShort();
frameTable[(m + 1)] = paramString.readShort();
frameTable[(m + 4)] = paramString.readShort();
frameTable[(m + 5)] = paramString.readShort();
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
m = paramString.readShort();
animationTable = new short[m];
j = 0;
if (j >= m) {
break;
}
int n = paramString.readShort();
arrayOfShort = animationTable;
arrayOfShort1 = new short[n + 2];
arrayOfShort[j] = arrayOfShort1;
k = 0;
if (k >= n + 2) {
break label1215;
}
arrayOfShort1[k] = paramString.readShort();
k += 1;
continue;
paramString.skip(k);
break;
try
{
label1144:
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
}
catch (Throwable localThrowable)
{
continue;
}
break label156;
label1160:
j += 1;
continue;
label1167:
while (j < k)
{
m = j * 7;
switch (8)
{
}
label1208:
j += 1;
}
break;
label1215:
j += 1;
}
}









share|improve this question




















  • 2




    Did you see the number of lines ? No one will reverse it for you^^ If you really to do that, take time
    – azro
    Nov 10 at 21:12












  • @azro - A more accurate statement would be that nobody is likely to do it unless you paid them some money to do the work for you. Especially since, there is some doubt that what the IP is doing is legal ....
    – Stephen C
    Nov 11 at 4:40

















up vote
0
down vote

favorite












I'm working re-spriting this android game and the sprites are all in one file called gt, this is the code from the apk that converts what I assume is the byte code file into actual images.



It takes one parameter which is the path to that file.



Java isn't really my language so I was hoping someone could help me figure out what this code is doing and how I can use it to convert the file into something that I can edit like a png.



This is the corresponding source code:



    public static void readGraphicsTable(String paramString)
{
InputStream localInputStream = Util.getResourceAsStream(paramString);
if (localInputStream == null)
{
HG.logWarning("Config file not found: " + paramString);
return;
}
int j;
int k;
for (;;)
{
try
{
paramString = new DataInputStream(localInputStream);
j = paramString.readShort();
k = paramString.readShort();
if ((j != 18260) && (k != 1281))
{
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
createFontOffsets();
}
}
catch (Throwable paramString)
{
label156:
paramString = paramString;
HG.handleError(paramString, "Gfx.readGraphicsTable()");
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
k = paramString.readShort();
colors = new int[k];
j = 0;
if (j >= k) {
continue;
}
colors[j] = paramString.readInt();
j += 1;
continue;
k = paramString.readShort();
fonts = new Font[k];
fontOffsets = (int)Array.newInstance(Integer.TYPE, new int { k, 4 });
j = 0;
if (j >= k) {
continue;
}
m = paramString.readByte();
if (m != -1) {
continue;
}
fonts[j] = Font.getDefaultFont();
fontOffsets[j][0] = paramString.readByte();
fontOffsets[j][1] = paramString.readByte();
fontOffsets[j][2] = paramString.readByte();
fontOffsets[j][3] = paramString.readByte();
j += 1;
continue;
fonts[j] = Font.getFont(m & 0x60, m & 0x7, m & 0x18);
continue;
}
finally {}
j = paramString.readShort();
if (j == -1) {
break label1144;
}
k = paramString.readShort();
switch (j)
{
case 17231:
paramString.skip(k);
}
}
for (;;)
{
int m;
try
{
localInputStream.close();
throw paramString;
k = paramString.readShort();
imageTable = new short[k + 4];
images = new Image[k + 4];
j = 0;
if (j < k)
{
m = (short)paramString.readByte();
if (m == -1) {
break label1160;
}
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort[j] = arrayOfShort1;
m = (short)(m << 8);
if ((m & 0x200) != 0)
{
int i = paramString.readShort();
System.arraycopy(imageTable[i], 0, arrayOfShort1, 0, arrayOfShort1.length);
arrayOfShort1[7] = ((short)(arrayOfShort1[7] | m));
arrayOfShort1[10] = i;
break label1160;
}
n = paramString.readByte();
int i1 = paramString.readByte();
arrayOfShort1[7] = ((short)(m | n));
arrayOfShort1[2] = ((short)(i1 >> 4 & 0xF));
arrayOfShort1[3] = ((short)(i1 >> 0 & 0xF));
arrayOfShort1[4] = ((short)paramString.readByte());
arrayOfShort1[5] = paramString.readShort();
arrayOfShort1[6] = paramString.readShort();
arrayOfShort1[8] = paramString.readShort();
paramString.readUTF();
if ((m & 0x100) == 0) {
break label1160;
}
arrayOfShort1[10] = paramString.readShort();
arrayOfShort1[11] = ((short)paramString.readByte());
break label1160;
}
short arrayOfShort = imageTable;
short arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 4;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
break;
k = paramString.readShort();
frameTable = new short[k * 7];
j = 0;
break label1167;
frameTable[(m + 2)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 3)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 0)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 1)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 4)] = ((short)paramString.readByte());
frameTable[(m + 5)] = ((short)paramString.readByte());
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
frameTable[(m + 2)] = paramString.readShort();
frameTable[(m + 3)] = paramString.readShort();
frameTable[(m + 0)] = paramString.readShort();
frameTable[(m + 1)] = paramString.readShort();
frameTable[(m + 4)] = paramString.readShort();
frameTable[(m + 5)] = paramString.readShort();
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
m = paramString.readShort();
animationTable = new short[m];
j = 0;
if (j >= m) {
break;
}
int n = paramString.readShort();
arrayOfShort = animationTable;
arrayOfShort1 = new short[n + 2];
arrayOfShort[j] = arrayOfShort1;
k = 0;
if (k >= n + 2) {
break label1215;
}
arrayOfShort1[k] = paramString.readShort();
k += 1;
continue;
paramString.skip(k);
break;
try
{
label1144:
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
}
catch (Throwable localThrowable)
{
continue;
}
break label156;
label1160:
j += 1;
continue;
label1167:
while (j < k)
{
m = j * 7;
switch (8)
{
}
label1208:
j += 1;
}
break;
label1215:
j += 1;
}
}









share|improve this question




















  • 2




    Did you see the number of lines ? No one will reverse it for you^^ If you really to do that, take time
    – azro
    Nov 10 at 21:12












  • @azro - A more accurate statement would be that nobody is likely to do it unless you paid them some money to do the work for you. Especially since, there is some doubt that what the IP is doing is legal ....
    – Stephen C
    Nov 11 at 4:40















up vote
0
down vote

favorite









up vote
0
down vote

favorite











I'm working re-spriting this android game and the sprites are all in one file called gt, this is the code from the apk that converts what I assume is the byte code file into actual images.



It takes one parameter which is the path to that file.



Java isn't really my language so I was hoping someone could help me figure out what this code is doing and how I can use it to convert the file into something that I can edit like a png.



This is the corresponding source code:



    public static void readGraphicsTable(String paramString)
{
InputStream localInputStream = Util.getResourceAsStream(paramString);
if (localInputStream == null)
{
HG.logWarning("Config file not found: " + paramString);
return;
}
int j;
int k;
for (;;)
{
try
{
paramString = new DataInputStream(localInputStream);
j = paramString.readShort();
k = paramString.readShort();
if ((j != 18260) && (k != 1281))
{
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
createFontOffsets();
}
}
catch (Throwable paramString)
{
label156:
paramString = paramString;
HG.handleError(paramString, "Gfx.readGraphicsTable()");
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
k = paramString.readShort();
colors = new int[k];
j = 0;
if (j >= k) {
continue;
}
colors[j] = paramString.readInt();
j += 1;
continue;
k = paramString.readShort();
fonts = new Font[k];
fontOffsets = (int)Array.newInstance(Integer.TYPE, new int { k, 4 });
j = 0;
if (j >= k) {
continue;
}
m = paramString.readByte();
if (m != -1) {
continue;
}
fonts[j] = Font.getDefaultFont();
fontOffsets[j][0] = paramString.readByte();
fontOffsets[j][1] = paramString.readByte();
fontOffsets[j][2] = paramString.readByte();
fontOffsets[j][3] = paramString.readByte();
j += 1;
continue;
fonts[j] = Font.getFont(m & 0x60, m & 0x7, m & 0x18);
continue;
}
finally {}
j = paramString.readShort();
if (j == -1) {
break label1144;
}
k = paramString.readShort();
switch (j)
{
case 17231:
paramString.skip(k);
}
}
for (;;)
{
int m;
try
{
localInputStream.close();
throw paramString;
k = paramString.readShort();
imageTable = new short[k + 4];
images = new Image[k + 4];
j = 0;
if (j < k)
{
m = (short)paramString.readByte();
if (m == -1) {
break label1160;
}
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort[j] = arrayOfShort1;
m = (short)(m << 8);
if ((m & 0x200) != 0)
{
int i = paramString.readShort();
System.arraycopy(imageTable[i], 0, arrayOfShort1, 0, arrayOfShort1.length);
arrayOfShort1[7] = ((short)(arrayOfShort1[7] | m));
arrayOfShort1[10] = i;
break label1160;
}
n = paramString.readByte();
int i1 = paramString.readByte();
arrayOfShort1[7] = ((short)(m | n));
arrayOfShort1[2] = ((short)(i1 >> 4 & 0xF));
arrayOfShort1[3] = ((short)(i1 >> 0 & 0xF));
arrayOfShort1[4] = ((short)paramString.readByte());
arrayOfShort1[5] = paramString.readShort();
arrayOfShort1[6] = paramString.readShort();
arrayOfShort1[8] = paramString.readShort();
paramString.readUTF();
if ((m & 0x100) == 0) {
break label1160;
}
arrayOfShort1[10] = paramString.readShort();
arrayOfShort1[11] = ((short)paramString.readByte());
break label1160;
}
short arrayOfShort = imageTable;
short arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 4;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
break;
k = paramString.readShort();
frameTable = new short[k * 7];
j = 0;
break label1167;
frameTable[(m + 2)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 3)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 0)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 1)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 4)] = ((short)paramString.readByte());
frameTable[(m + 5)] = ((short)paramString.readByte());
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
frameTable[(m + 2)] = paramString.readShort();
frameTable[(m + 3)] = paramString.readShort();
frameTable[(m + 0)] = paramString.readShort();
frameTable[(m + 1)] = paramString.readShort();
frameTable[(m + 4)] = paramString.readShort();
frameTable[(m + 5)] = paramString.readShort();
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
m = paramString.readShort();
animationTable = new short[m];
j = 0;
if (j >= m) {
break;
}
int n = paramString.readShort();
arrayOfShort = animationTable;
arrayOfShort1 = new short[n + 2];
arrayOfShort[j] = arrayOfShort1;
k = 0;
if (k >= n + 2) {
break label1215;
}
arrayOfShort1[k] = paramString.readShort();
k += 1;
continue;
paramString.skip(k);
break;
try
{
label1144:
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
}
catch (Throwable localThrowable)
{
continue;
}
break label156;
label1160:
j += 1;
continue;
label1167:
while (j < k)
{
m = j * 7;
switch (8)
{
}
label1208:
j += 1;
}
break;
label1215:
j += 1;
}
}









share|improve this question















I'm working re-spriting this android game and the sprites are all in one file called gt, this is the code from the apk that converts what I assume is the byte code file into actual images.



It takes one parameter which is the path to that file.



Java isn't really my language so I was hoping someone could help me figure out what this code is doing and how I can use it to convert the file into something that I can edit like a png.



This is the corresponding source code:



    public static void readGraphicsTable(String paramString)
{
InputStream localInputStream = Util.getResourceAsStream(paramString);
if (localInputStream == null)
{
HG.logWarning("Config file not found: " + paramString);
return;
}
int j;
int k;
for (;;)
{
try
{
paramString = new DataInputStream(localInputStream);
j = paramString.readShort();
k = paramString.readShort();
if ((j != 18260) && (k != 1281))
{
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
createFontOffsets();
}
}
catch (Throwable paramString)
{
label156:
paramString = paramString;
HG.handleError(paramString, "Gfx.readGraphicsTable()");
try
{
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
k = paramString.readShort();
colors = new int[k];
j = 0;
if (j >= k) {
continue;
}
colors[j] = paramString.readInt();
j += 1;
continue;
k = paramString.readShort();
fonts = new Font[k];
fontOffsets = (int)Array.newInstance(Integer.TYPE, new int { k, 4 });
j = 0;
if (j >= k) {
continue;
}
m = paramString.readByte();
if (m != -1) {
continue;
}
fonts[j] = Font.getDefaultFont();
fontOffsets[j][0] = paramString.readByte();
fontOffsets[j][1] = paramString.readByte();
fontOffsets[j][2] = paramString.readByte();
fontOffsets[j][3] = paramString.readByte();
j += 1;
continue;
fonts[j] = Font.getFont(m & 0x60, m & 0x7, m & 0x18);
continue;
}
finally {}
j = paramString.readShort();
if (j == -1) {
break label1144;
}
k = paramString.readShort();
switch (j)
{
case 17231:
paramString.skip(k);
}
}
for (;;)
{
int m;
try
{
localInputStream.close();
throw paramString;
k = paramString.readShort();
imageTable = new short[k + 4];
images = new Image[k + 4];
j = 0;
if (j < k)
{
m = (short)paramString.readByte();
if (m == -1) {
break label1160;
}
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort[j] = arrayOfShort1;
m = (short)(m << 8);
if ((m & 0x200) != 0)
{
int i = paramString.readShort();
System.arraycopy(imageTable[i], 0, arrayOfShort1, 0, arrayOfShort1.length);
arrayOfShort1[7] = ((short)(arrayOfShort1[7] | m));
arrayOfShort1[10] = i;
break label1160;
}
n = paramString.readByte();
int i1 = paramString.readByte();
arrayOfShort1[7] = ((short)(m | n));
arrayOfShort1[2] = ((short)(i1 >> 4 & 0xF));
arrayOfShort1[3] = ((short)(i1 >> 0 & 0xF));
arrayOfShort1[4] = ((short)paramString.readByte());
arrayOfShort1[5] = paramString.readShort();
arrayOfShort1[6] = paramString.readShort();
arrayOfShort1[8] = paramString.readShort();
paramString.readUTF();
if ((m & 0x100) == 0) {
break label1160;
}
arrayOfShort1[10] = paramString.readShort();
arrayOfShort1[11] = ((short)paramString.readByte());
break label1160;
}
short arrayOfShort = imageTable;
short arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 4;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
arrayOfShort = imageTable;
arrayOfShort1 = new short[12];
arrayOfShort['?'] = arrayOfShort1;
arrayOfShort1[7] = 0;
arrayOfShort1[10] = 0;
arrayOfShort1[2] = 1;
arrayOfShort1[3] = 1;
arrayOfShort1[4] = 3;
arrayOfShort1[5] = 0;
arrayOfShort1[6] = 0;
arrayOfShort1[8] = 0;
break;
k = paramString.readShort();
frameTable = new short[k * 7];
j = 0;
break label1167;
frameTable[(m + 2)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 3)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 0)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 1)] = ((short)paramString.readUnsignedByte());
frameTable[(m + 4)] = ((short)paramString.readByte());
frameTable[(m + 5)] = ((short)paramString.readByte());
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
frameTable[(m + 2)] = paramString.readShort();
frameTable[(m + 3)] = paramString.readShort();
frameTable[(m + 0)] = paramString.readShort();
frameTable[(m + 1)] = paramString.readShort();
frameTable[(m + 4)] = paramString.readShort();
frameTable[(m + 5)] = paramString.readShort();
frameTable[(m + 6)] = ((short)paramString.readByte());
break label1208;
m = paramString.readShort();
animationTable = new short[m];
j = 0;
if (j >= m) {
break;
}
int n = paramString.readShort();
arrayOfShort = animationTable;
arrayOfShort1 = new short[n + 2];
arrayOfShort[j] = arrayOfShort1;
k = 0;
if (k >= n + 2) {
break label1215;
}
arrayOfShort1[k] = paramString.readShort();
k += 1;
continue;
paramString.skip(k);
break;
try
{
label1144:
localInputStream.close();
return;
}
catch (Throwable paramString)
{
return;
}
}
catch (Throwable localThrowable)
{
continue;
}
break label156;
label1160:
j += 1;
continue;
label1167:
while (j < k)
{
m = j * 7;
switch (8)
{
}
label1208:
j += 1;
}
break;
label1215:
j += 1;
}
}






java android






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 at 1:02









Bsquare

1,9801625




1,9801625










asked Nov 10 at 21:09









Cs Bvi

21




21








  • 2




    Did you see the number of lines ? No one will reverse it for you^^ If you really to do that, take time
    – azro
    Nov 10 at 21:12












  • @azro - A more accurate statement would be that nobody is likely to do it unless you paid them some money to do the work for you. Especially since, there is some doubt that what the IP is doing is legal ....
    – Stephen C
    Nov 11 at 4:40
















  • 2




    Did you see the number of lines ? No one will reverse it for you^^ If you really to do that, take time
    – azro
    Nov 10 at 21:12












  • @azro - A more accurate statement would be that nobody is likely to do it unless you paid them some money to do the work for you. Especially since, there is some doubt that what the IP is doing is legal ....
    – Stephen C
    Nov 11 at 4:40










2




2




Did you see the number of lines ? No one will reverse it for you^^ If you really to do that, take time
– azro
Nov 10 at 21:12






Did you see the number of lines ? No one will reverse it for you^^ If you really to do that, take time
– azro
Nov 10 at 21:12














@azro - A more accurate statement would be that nobody is likely to do it unless you paid them some money to do the work for you. Especially since, there is some doubt that what the IP is doing is legal ....
– Stephen C
Nov 11 at 4:40






@azro - A more accurate statement would be that nobody is likely to do it unless you paid them some money to do the work for you. Especially since, there is some doubt that what the IP is doing is legal ....
– Stephen C
Nov 11 at 4:40



















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243430%2fhow-do-i-reverse-engineer-this-code-to-convert-a-binary-graphic-table-to-a-edita%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243430%2fhow-do-i-reverse-engineer-this-code-to-convert-a-binary-graphic-table-to-a-edita%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Florida Star v. B. J. F.

Error while running script in elastic search , gateway timeout

Adding quotations to stringified JSON object values