Skip to content

Instantly share code, notes, and snippets.

@p4plus2
Created August 6, 2016 11:14
Show Gist options
  • Save p4plus2/1e584a438071ab882057f6693762ad98 to your computer and use it in GitHub Desktop.
Save p4plus2/1e584a438071ab882057f6693762ad98 to your computer and use it in GitHub Desktop.
//----- (00087568) --------------------------------------------------------
unsigned char * sub_87568(_DWORD* result, _DWORD *a2)
{
// RESULT must have a size of (at least) 752 bytes / 188 _DWORD
// a2 has a size of 256 bytes / 64 _DWORD at least
_DWORD v[550]; // tmp buffer of 2200 bytes / 550 _DWORD
for(int i = 0; i < 63; i++){
result[i] = a2[i];
}
v[0] = a2[0];
v[1] = a2[0];
v[2] = a2[1];
v[3] = a2[2];
v[4] = a2[1];
v[5] = ~a2[1];
v[6] = a2[3];
v[7] = a2[2];
v[8] = a2[4];
v[9] = ~a2[3];
v[10] = a2[3];
v[11] = a2[5];
v[12] = a2[4];
v[13] = a2[6];
v[14] = ~a2[5];
v[15] = a2[7];
v[16] = a2[6];
v[17] = a2[7];
v[18] = a2[9];
v[19] = a2[9];
v[20] = ~a2[9];
v[21] = a2[11];
v[22] = a2[9];
v[23] = ~a2[3];
v[24] = a2[11];
v[25] = a2[13];
v[26] = ~a2[13];
v[27] = a2[14];
v[28] = a2[13];
v[29] = a2[14];
v[30] = a2[15];
v[31] = a2[16];
v[32] = a2[15];
v[33] = a2[16];
v[34] = a2[17];
v[35] = a2[18];
v[36] = a2[17];
v[37] = a2[17] ^ a2[9];
v[38] = a2[19];
v[39] = a2[18];
v[40] = a2[19] ^ a2[3];
v[41] = a2[19] & a2[3];
v[42] = a2[19];
v[43] = ~a2[3] & a2[19];
v[44] = a2[20];
v[45] = a2[21];
v[46] = a2[21] ^ a2[5];
v[47] = a2[5] & ~a2[21];
v[48] = a2[22];
//stopped here for the night as its 4am and I have work in a few hours...sleep time
v[49] = ~v[11] & v[45];
v[50] = v[45] | v[11];
v[51] = v[26] & (v[45] ^ v[11]);
v[52] = v[45] & v[11];
v[53] = v[45];
v[54] = a2[23];
v[55] = v[52];
v[56] = v[26] & v[46] ^ v[46];
v[57] = a2[24];
v[58] = v[46];
v[59] = ~v[54];
v[60] = a2[25];
v[61] = v[54];
v[62] = v[11];
v[63] = v[60];
v[64] = a2[26];
v[65] = a2[27];
v[66] = a2[27];
v[67] = ~v[65];
v[68] = v[66] | v[10];
v[69] = v[65] & v[10];
v[70] = a2[28];
v[71] = v[43];
v[72] = v[65] & v[42] ^ v[10];
v[73] = v[43] ^ (v[66] | v[10]);
v[74] = a2[29];
v[75] = (v[65] ^ v[10]) & v[42] ^ v[65] & v[10];
v[76] = v[65] & v[42] ^ v[65];
v[77] = v[65];
v[78] = ~v[65] & v[10] ^ v[65] & v[42];
v[79] = v[23] & v[65];
v[80] = v[10] & ~(v[65] & v[10]);
v[81] = v[42] & ~v[80];
v[82] = v[80] ^ v[42] & ~(v[65] ^ v[10]);
v[83] = a2[30];
v[84] = v[48] ^ v[74];
v[85] = a2[31];
v[86] = v[17] & v[85];
v[87] = v[85] ^ v[17];
v[88] = v[65] & v[42] ^ (v[66] | v[10]);
v[89] = v[17] & v[85] ^ ~v[85];
v[90] = a2[32];
v[91] = ~v[65] & v[42] ^ v[10] ^ v[57];
v[92] = v[81] ^ v[80];
v[93] = v[40] & v[65];
v[94] = ~v[85];
v[95] = a2[33];
v[96] = v[81] ^ v[23] & v[65];
v[97] = v[85];
v[98] = ~v[85] & v[17] ^ v[85];
v[99] = v[23] & v[95];
v[100] = v[95] & v[10];
v[101] = v[95] ^ v[10];
v[102] = v[95];
v[103] = a2[34];
v[104] = ~v[95];
v[105] = ~v[95] & v[10];
v[106] = v[65] ^ v[10] ^ v[41];
v[107] = v[90] ^ v[17];
v[108] = v[23] & v[65] & v[42] ^ v[65];
v[109] = a2[35];
v[110] = v[109];
v[111] = a2[36];
v[112] = v[111] ^ v[95];
v[113] = a2[37];
v[114] = a2[38];
v[115] = a2[39];
v[116] = v[113];
v[117] = v[104];
v[118] = v[115];
v[119] = a2[41];
v[120] = v[119];
v[121] = a2[42];
v[122] = v[121] ^ v[77];
v[123] = a2[43];
v[124] = ~v[113];
v[125] = v[123];
v[126] = a2[44];
v[127] = v[106] ^ v[126];
v[128] = a2[45];
v[129] = a2[46];
v[130] = v[128];
v[131] = a2[47];
v[132] = v[129];
v[133] = a2[48];
v[134] = v[131];
v[135] = v[133];
v[136] = a2[49];
v[137] = a2[50];
v[138] = v[100] & v[136];
v[139] = v[112] ^ v[100] & v[136];
v[140] = a2[51];
v[141] = (v[136] ^ v[104]) & v[10];
v[142] = v[140];
v[143] = a2[52];
v[144] = v[143];
v[145] = a2[53];
v[146] = v[145];
v[147] = a2[54];
v[148] = v[145] ^ v[33];
v[149] = a2[55];
v[150] = v[147];
v[151] = a2[56];
v[152] = v[149];
v[153] = v[151];
v[154] = a2[57];
v[155] = v[72] & v[154] ^ v[75];
v[156] = v[73] & v[154] ^ v[79];
v[157] = v[78] & v[154] ^ v[76];
v[158] = a2[59];
v[159] = v[71];
v[160] = v[158];
v[161] = v[122] ^ v[154] ^ v[159];
v[162] = v[76] & v[154] ^ v[10];
v[163] = v[154] & ~v[82] ^ v[75];
v[164] = v[130] & ~(v[124] & v[130]);
v[165] = v[14] & v[125];
v[166] = (v[81] ^ v[10]) & v[154] ^ v[93];
v[167] = a2[61];
v[168] = (v[141] | v[154]) ^ v[29];
v[169] = v[148] ^ v[164];
v[170] = v[146] | v[130];
v[171] = (v[164] ^ (v[146] | v[130])) & v[74];
v[172] = v[94] & v[167];
v[173] = v[167] | v[97];
v[174] = ~v[167] & v[17];
v[175] = v[167] & v[118] & v[87] ^ (v[167] | v[97]) & v[17];
v[176] = ~v[167];
v[177] = v[167] ^ v[97];
v[178] = a2[62];
v[179] = ~v[167] & v[97];
//result and v diverge here (based on loose visual inspection)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment