private static void CreateComponent(object obj)
{
//Flash Control created on other task, otherwise, when decrypting it'll block the main UI Thread
ComponentResourceManager resources = new ComponentResourceManager(typeof(DecryptForm));
form = new DecryptForm();
form.axShock = new AxShockwaveFlash();
form.axShock.Enabled = true;
form.axShock.Location = new Point(1, 1);
form.axShock.Name = "axShock";
form.axShock.OcxState = ((AxHost.State)(resources.GetObject("axShock.OcxState")));
form.axShock.Size = new Size(1,1);
form.axShock.TabIndex = 0;
form.Controls.Add(form.axShock);
form.Show();
form.Hide();
string swf = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location), "loader.swf");
if (File.Exists(swf))
form.axShock.LoadMovie(0, swf);
thscheduler= TaskScheduler.FromCurrentSynchronizationContext();
Application.Run();
form.axShock.Stop();
form.axShock.Dispose();
}