Created
August 6, 2016 11:14
-
-
Save p4plus2/1e584a438071ab882057f6693762ad98 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//----- (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