谁能帮我看一下这段代码的算法!先谢过!
private void SaveMult(string fname)
{
string text1 = "";
string text2 = "";
for (int num1 = 0; num1 < this.list1.Items.Count; num1++)
{
text1 = text1 + this.list1.Items[num1].Text + ",";
text2 = text2 + this.list1.Items[num1].SubItems[1].Text;
if ((num1 + 1) < this.list1.Items.Count)
{
text2 = text2 + ",";
}
}
text1 = text1 + text2;
byte[] buffer1 = new byte[text1.Length + 8];
int num2 = 0xfbea;
int num3 = buffer1.Length;
int num4 = 0;
int num5 = 4;
int num6 = buffer1.Length;
BitConverter.GetBytes(num3);
byte[] buffer3 = BitConverter.GetBytes(text1.Length);
Array.Copy(buffer3, 0, buffer1, 4, 4);
Encoding.ASCII.GetBytes(text1, 0, text1.Length, buffer1, 8);
Assembly assembly1 = Assembly.GetExecutingAssembly();
Stream stream1 = assembly1.GetManifestResourceStream("DirectIpManager.table.dat");
byte[] buffer2 = new byte[stream1.Length];
stream1.Read(buffer2, 0, (int) stream1.Length);
stream1.Close();
Convert.ToByte(buffer1.Length);
do
{
num3 = buffer1[num5];
num4 = num2 % 0x100;
num3 ^= num4;
num3 = (buffer2[(num3 * 2) + 1] * 0x100) + buffer2[num3 * 2];
num2 = num2 >> 8;
num2 ^= num3;
num5++;
}
while (num5 < num6);
byte[] buffer4 = BitConverter.GetBytes(num2);
FileStream stream2 = new FileStream(fname, FileMode.Create);
Array.Copy(buffer4, 0, buffer1, 0, 2);
stream2.Write(buffer1, 0, num6);
stream2.Close();
}