public string clickip(int port) { string str; if (Vip72Rieng.Vip72RiengProcess.HasExited) { str = "not running"; } else { IntPtr windowInProcess = Vip72Rieng.FindWindowInProcess(Vip72Rieng.Vip72RiengProcess, (Func <string, bool>)(s => s.StartsWith("VIP72 Socks Client"))); int num1 = 4328465; int lpBaseAddress = 4324304; IntPtr handle1 = Vip72Rieng.ControlGetHandle(windowInProcess, "Button", 7817); if (Vip72Rieng.ControlGetCheck(handle1)) { Vip72Rieng.ControlClick(handle1); } IntPtr hProcess = Vip72Rieng.OpenProcess(2035711, false, Vip72Rieng.Vip72RiengProcess.Id); int lpNumberOfBytesRead = 0; IntPtr zero = IntPtr.Zero; IntPtr lpBuffer1 = Marshal.AllocHGlobal(4); Vip72Rieng.ReadProcessMemory(hProcess, (IntPtr)num1, lpBuffer1, 4, out lpNumberOfBytesRead); Random random = new Random(); uint id = (uint)Vip72Rieng.Vip72RiengProcess.Id; IntPtr handle2 = Vip72Rieng.ControlGetHandle(windowInProcess, "SysListView32", 117); int num2 = 0; while (ListViewItem1.GetListViewItem(handle2, id, num2, 4) != "") { string listViewItem = ListViewItem1.GetListViewItem(handle2, id, num2, 4); if ((listViewItem.Contains(port.ToString()) ? 1U : (listViewItem.Contains("main stream") ? 1U : 0U)) > 0U) { ListViewItem1.SelectListViewItem(handle2, id, num2); int lpdwResult = 0; Vip72Rieng.SendMessageTimeout(handle2, 256, (IntPtr)46, IntPtr.Zero, 2, 5000, out lpdwResult); } else { ++num2; } } int num3 = 0; IntPtr handle3 = Vip72Rieng.ControlGetHandle(windowInProcess, "SysListView32", 116); while (ListViewItem1.GetListViewItem(handle3, id, num3, 0) != "") { ++num3; } int maxValue = num3; if (maxValue == 0) { str = "no IP"; } else { int num4 = 0; int num5 = -1; for (; ListViewItem1.GetListViewItem(handle3, id, num4, 0) != ""; ++num4) { if (ListViewItem1.GetListViewItem(handle3, id, num4, 0).Contains(".**")) { num5 = random.Next(0, maxValue); while (!ListViewItem1.GetListViewItem(handle3, id, num5, 0).Contains(".**")) { num5 = random.Next(0, maxValue); } break; } } if (num5 == -1) { str = "no IP"; } else { int[] lpBuffer2 = new int[1] { num5 }; int lpNumberOfBytesWritten = 0; Vip72Rieng.WriteProcessMemory((int)hProcess, lpBaseAddress, lpBuffer2, 4, ref lpNumberOfBytesWritten); ListViewItem1.SelectListViewItem(handle3, id, num5); Vip72Rieng.ControlDoubleClick(handle3); Thread.Sleep(500); IntPtr handle4 = Vip72Rieng.ControlGetHandle(windowInProcess, "Button", 7303); IntPtr handle5 = Vip72Rieng.ControlGetHandle(windowInProcess, "Edit", 131); DateTime now = DateTime.Now; while (!Vip72Rieng.ControlGetCheck(handle4)) { if (!Vip72Rieng.ControlGetText(handle5).Contains("ffline")) { if (!Vip72Rieng.ControlGetText(handle5).Contains("limit")) { if (!Vip72Rieng.ControlGetText(handle5).Contains("can't")) { if (!Vip72Rieng.ControlGetText(handle5).Contains("disconnect")) { if (!Vip72Rieng.ControlGetText(handle5).Contains("aximum")) { if ((DateTime.Now - now).TotalSeconds > 15.0) { str = "timeout"; goto label_49; } } else { str = "maximum"; goto label_49; } } else { str = "dead"; goto label_49; } } else { str = "dead"; goto label_49; } } else { try { if (!Vip72Rieng.Vip72RiengProcess.HasExited) { Vip72Rieng.Vip72RiengProcess.Kill(); } } catch (Exception ex) { } str = "limited"; goto label_49; } } else { str = "dead"; goto label_49; } } Thread.Sleep(500); IntPtr handle6 = Vip72Rieng.ControlGetHandle(windowInProcess, "SysListView32", 117); for (int index = 0; ListViewItem1.GetListViewItem(handle6, id, index, 4) != ""; ++index) { if (ListViewItem1.GetListViewItem(handle6, id, index, 4).Contains("main stream")) { str = ListViewItem1.GetListViewItem(handle6, id, index, 0); goto label_49; } } str = "limited"; } } } label_49: return(str); }