Code:
byte[] array = new byte[0];
int num = 0;
STATERESOURCE.RawBytes = File.ReadAllBytes(<>c__DisplayClassf.path);
using (MemoryStream memoryStream = new MemoryStream(STATERESOURCE.RawBytes))
{
STATERESOURCE.FileHeader = new Headers();
array = new byte[27];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.FileHeader.HeaderBytes = array;
memoryStream.Position += 101L;
array = new byte[4];
memoryStream.Read(array, 0, 4);
STATERESOURCE.FileHeader.FileRows = BitConverter.ToInt32(array, 0);
STATERESOURCE.Data = new StateResource[STATERESOURCE.FileHeader.FileRows];
loadWorker.ReportProgress(0);
while (num != STATERESOURCE.FileHeader.FileRows)
{
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].state_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].text_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].tooltip_id = BitConverter.ToInt32(array, 0);
STATERESOURCE.Data[num].is_harmful = Convert.ToByte(memoryStream.ReadByte());
memoryStream.Position += 3L;
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].state_time_type = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].state_group = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].duplicate_group_1 = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].duplicate_group_2 = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].duplicate_group_3 = BitConverter.ToInt32(array, 0);
STATERESOURCE.Data[num].uf_avatar = Convert.ToByte(memoryStream.ReadByte());
STATERESOURCE.Data[num].uf_summon = Convert.ToByte(memoryStream.ReadByte());
STATERESOURCE.Data[num].uf_monster = Convert.ToByte(memoryStream.ReadByte());
memoryStream.Position += 1L;
STATERESOURCE.Data[num].reiteration_count = Convert.ToByte(memoryStream.ReadByte());
memoryStream.Position += 3L;
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].base_effect_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].fire_interval = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].elemental_type = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].amplify_base = BitConverter.ToSingle(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].amplify_per_skl = BitConverter.ToSingle(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].add_damage_base = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].add_damage_per_skl = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].effect_type = BitConverter.ToInt32(array, 0);
memoryStream.Position += 4L;
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_0 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_1 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_2 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_3 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_4 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_5 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_6 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_7 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_8 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_9 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_10 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_11 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_12 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_13 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_14 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_15 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_16 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_17 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_18 = BitConverter.ToDouble(array, 0);
array = new byte[8];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].value_19 = BitConverter.ToDouble(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].icon_id = BitConverter.ToInt32(array, 0);
int num2 = 256;
while (true)
{
char c = Convert.ToChar(memoryStream.ReadByte());
num2--;
if (c == '\0')
{
break;
}
StateResource[] expr_80E_cp_0 = STATERESOURCE.Data;
int expr_80E_cp_1 = num;
expr_80E_cp_0[expr_80E_cp_1].icon_file_name = expr_80E_cp_0[expr_80E_cp_1].icon_file_name + c;
}
memoryStream.Position += (long)num2;
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].fx_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].pos_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].cast_fx_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].cast_fx_pos_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].cast_skill_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].hit_fx_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].hit_fx_pos_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].special_output_timing_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].special_output_fx_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].special_output_fx_pos_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].special_output_fx_delay = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].state_fx_id = BitConverter.ToInt32(array, 0);
array = new byte[4];
memoryStream.Read(array, 0, array.Length);
STATERESOURCE.Data[num].state_fx_pos_id = BitConverter.ToInt32(array, 0);
if (Math.Abs(num - STATERESOURCE.lastProgressValue) > 2500)
{
loadWorker.ReportProgress(num);
STATERESOURCE.lastProgressValue = num;
}
else if (num + 1 == STATERESOURCE.FileHeader.FileRows)
{
loadWorker.ReportProgress(num);
STATERESOURCE.lastProgressValue = num;
}
num++;
}
If you are to lazy to do it on your own, decompile my ifrit tool, wich has been used @ Project Tiamat