/*
   This file has been generated by IDA.
   It contains local type definitions from
   the type library 'arcfw.elf'
*/

#define __int8 char
#define __int16 short
#define __int32 int
#define __int64 long long

struct _KTHREAD;
struct _KDPC;
struct _KAPC;
struct _KPROCESS;
struct _RESTART_BLOCK;
struct _KIPI_COUNTS;
struct _RTL_USER_PROCESS_PARAMETERS;
struct _EPROCESS;
struct _ETHREAD;
struct _PS_IMPERSONATION_INFORMATION;
struct _DEVICE_OBJECT;
struct _DRIVER_OBJECT;
struct _FAST_IO_DISPATCH;
struct _FILE_OBJECT;
struct _VPB;
struct _SECTION_OBJECT_POINTERS;
struct _IO_COMPLETION_CONTEXT;
struct _IRP;
struct _IO_STACK_LOCATION;
struct _IO_SECURITY_CONTEXT;
struct _ACCESS_STATE;
struct _NAMED_PIPE_CREATE_PARAMETERS;
struct _MAILSLOT_CREATE_PARAMETERS;
struct _SCSI_REQUEST_BLOCK;
struct _IO_TIMER;
struct _EEVENT_PAIR;
struct _EPROCESS_QUOTA_BLOCK;
struct _OBJECT_DUMP_CONTROL;
struct _KEXCEPTION_FRAME;
struct _KTRAP_FRAME;
struct _KINTERRUPT;
struct File;
struct File_methods;

/* 1 */
typedef unsigned __int16 wchar_t;

/* 2 */
typedef void *PVOID;

/* 3 */
typedef unsigned __int8 CHAR;

/* 4 */
typedef __int16 SHORT;

/* 5 */
typedef int LONG;

/* 6 */
typedef wchar_t WCHAR;

/* 7 */
typedef WCHAR *PWSTR;

/* 8 */
typedef CHAR *PCHAR;

/* 9 */
typedef unsigned __int8 UCHAR;

/* 10 */
typedef unsigned __int16 USHORT;

/* 11 */
typedef unsigned int ULONG;

/* 12 */
typedef UCHAR *PUCHAR;

/* 13 */
typedef USHORT *PUSHORT;

/* 14 */
typedef ULONG *PULONG;

/* 15 */
typedef char SCHAR;

/* 16 */
typedef void *HANDLE;

/* 17 */
typedef unsigned __int8 CCHAR;

/* 18 */
typedef __int16 CSHORT;

/* 19 */
typedef ULONG LCID;

/* 20 */
typedef LONG NTSTATUS;

/* 21 */
typedef __int64 LONGLONG;

/* 22 */
typedef unsigned __int64 ULONGLONG;

/* 23 */
struct $877C7B503ACEEBC17B06AAEC179E1016
{
  ULONG LowPart;
  LONG HighPart;
};

/* 24 */
union _LARGE_INTEGER
{
  $877C7B503ACEEBC17B06AAEC179E1016 _anon_0;
  $877C7B503ACEEBC17B06AAEC179E1016 u;
  LONGLONG QuadPart;
};

/* 25 */
typedef _LARGE_INTEGER LARGE_INTEGER;

/* 26 */
typedef LARGE_INTEGER *PLARGE_INTEGER;

/* 27 */
struct $B51C566E4F40086BCE5CAA9DE585BE39
{
  ULONG LowPart;
  ULONG HighPart;
};

/* 28 */
union _ULARGE_INTEGER
{
  $B51C566E4F40086BCE5CAA9DE585BE39 _anon_0;
  $B51C566E4F40086BCE5CAA9DE585BE39 u;
  ULONGLONG QuadPart;
};

/* 29 */
typedef _ULARGE_INTEGER ULARGE_INTEGER;

/* 30 */
typedef LARGE_INTEGER LUID;

/* 31 */
enum _WAIT_TYPE : __int32
{
  WaitAll = 0x0,
  WaitAny = 0x1,
};

/* 32 */
typedef _WAIT_TYPE WAIT_TYPE;

/* 33 */
struct _STRING
{
  USHORT Length;
  USHORT MaximumLength;
  PCHAR Buffer;
};

/* 34 */
typedef _STRING STRING;

/* 35 */
typedef STRING *PSTRING;

/* 36 */
struct _UNICODE_STRING
{
  USHORT Length;
  USHORT MaximumLength;
  PWSTR Buffer;
};

/* 37 */
typedef _UNICODE_STRING UNICODE_STRING;

/* 38 */
typedef UNICODE_STRING *PUNICODE_STRING;

/* 39 */
typedef UCHAR BOOLEAN;

/* 40 */
struct _LIST_ENTRY
{
  _LIST_ENTRY *Flink;
  _LIST_ENTRY *Blink;
};

/* 41 */
typedef _LIST_ENTRY LIST_ENTRY;

/* 42 */
struct _SINGLE_LIST_ENTRY
{
  _SINGLE_LIST_ENTRY *Next;
};

/* 43 */
typedef _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY;

/* 44 */
struct _CONTEXT
{
  ULONG Argument[4];
  ULONG FltF0;
  ULONG FltF1;
  ULONG FltF2;
  ULONG FltF3;
  ULONG FltF4;
  ULONG FltF5;
  ULONG FltF6;
  ULONG FltF7;
  ULONG FltF8;
  ULONG FltF9;
  ULONG FltF10;
  ULONG FltF11;
  ULONG FltF12;
  ULONG FltF13;
  ULONG FltF14;
  ULONG FltF15;
  ULONG FltF16;
  ULONG FltF17;
  ULONG FltF18;
  ULONG FltF19;
  ULONG FltF20;
  ULONG FltF21;
  ULONG FltF22;
  ULONG FltF23;
  ULONG FltF24;
  ULONG FltF25;
  ULONG FltF26;
  ULONG FltF27;
  ULONG FltF28;
  ULONG FltF29;
  ULONG FltF30;
  ULONG FltF31;
  ULONG IntZero;
  ULONG IntAt;
  ULONG IntV0;
  ULONG IntV1;
  ULONG IntA0;
  ULONG IntA1;
  ULONG IntA2;
  ULONG IntA3;
  ULONG IntT0;
  ULONG IntT1;
  ULONG IntT2;
  ULONG IntT3;
  ULONG IntT4;
  ULONG IntT5;
  ULONG IntT6;
  ULONG IntT7;
  ULONG IntS0;
  ULONG IntS1;
  ULONG IntS2;
  ULONG IntS3;
  ULONG IntS4;
  ULONG IntS5;
  ULONG IntS6;
  ULONG IntS7;
  ULONG IntT8;
  ULONG IntT9;
  ULONG IntK0;
  ULONG IntK1;
  ULONG IntGp;
  ULONG IntSp;
  ULONG IntS8;
  ULONG IntRa;
  ULONG IntLo;
  ULONG IntHi;
  ULONG Fsr;
  ULONG Fir;
  ULONG Psr;
  ULONG ContextFlags;
  ULONG Fill[2];
};

/* 45 */
typedef UCHAR KIRQL;

/* 46 */
typedef ULONG KAFFINITY;

/* 47 */
typedef ULONG KSPIN_LOCK;

/* 48 */
struct _KSYSTEM_TIME
{
  ULONG LowPart;
  LONG High1Time;
  LONG High2Time;
};

/* 49 */
typedef _KSYSTEM_TIME KSYSTEM_TIME;

/* 57 */
typedef void (*PKDEFERRED_ROUTINE)(_KDPC *, PVOID, PVOID, PVOID);

/* 56 */
struct _KDPC
{
  CSHORT Type;
  CSHORT Size;
  LIST_ENTRY DpcListEntry;
  PKDEFERRED_ROUTINE DeferredRoutine;
  PVOID DeferredContext;
  PVOID SystemArgument1;
  PVOID SystemArgument2;
  PULONG Lock;
};

/* 92 */
typedef _KDPC KDPC;

/* 87 */
struct _ENTRYLO
{
  unsigned __int32 G : 1;
  unsigned __int32 V : 1;
  unsigned __int32 D : 1;
  unsigned __int32 C : 3;
  unsigned __int32 PFN : 24;
  unsigned __int32 X1 : 2;
};

/* 86 */
typedef _ENTRYLO ENTRYLO;

/* 85 */
struct _ENTRYHI
{
  unsigned __int32 PID : 8;
  unsigned __int32 X1 : 5;
  unsigned __int32 VPN2 : 19;
};

/* 84 */
typedef _ENTRYHI ENTRYHI;

/* 89 */
struct _PAGEMASK
{
  unsigned __int32 X1 : 13;
  unsigned __int32 PAGEMASK : 12;
  unsigned __int32 X2 : 7;
};

/* 88 */
typedef _PAGEMASK PAGEMASK;

/* 95 */
struct _TB_ENTRY
{
  ENTRYLO Entrylo0;
  ENTRYLO Entrylo1;
  ENTRYHI Entryhi;
  PAGEMASK Pagemask;
};

/* 94 */
typedef _TB_ENTRY TB_ENTRY;

/* 93 */
struct _KPROCESSOR_STATE
{
  _CONTEXT ContextFrame;
  TB_ENTRY TbEntry[48];
};

/* 96 */
typedef void (*PKIPI_WORKER)(PULONG, PVOID, PVOID, PVOID);

/* 97 */
typedef _KIPI_COUNTS *PKIPI_COUNTS;

/* 50 */
struct __attribute__((aligned(4))) _KPRCB
{
  USHORT MinorVersion;
  USHORT MajorVersion;
  _KTHREAD *CurrentThread;
  _KTHREAD *NextThread;
  _KTHREAD *IdleThread;
  CCHAR Number;
  CCHAR Reserved;
  USHORT BuildType;
  KAFFINITY SetMember;
  _RESTART_BLOCK *RestartBlock;
  ULONG PcrPage;
  ULONG QuantumEnd;
  ULONG SystemReserved[15];
  ULONG HalReserved[16];
  ULONG DpcTime;
  ULONG InterruptTime;
  ULONG KernelTime;
  ULONG UserTime;
  ULONG InterruptCount;
  KDPC QuantumEndDpc;
  PVOID Spare1;
  PVOID Spare2;
  PVOID Spare3;
  volatile ULONG IpiFrozen;
  _KPROCESSOR_STATE ProcessorState;
  SINGLE_LIST_ENTRY FsRtlFreeLockList;
  SINGLE_LIST_ENTRY FsRtlFreeWaitingLockList;
  ULONG CcFastReadNoWait;
  ULONG CcFastReadWait;
  ULONG CcFastReadNotPossible;
  ULONG CcCopyReadNoWait;
  ULONG CcCopyReadWait;
  ULONG CcCopyReadNoWaitMiss;
  ULONG KeAlignmentFixupCount;
  ULONG KeContextSwitches;
  ULONG KeDcacheFlushCount;
  ULONG KeExceptionDispatchCount;
  ULONG KeFirstLevelTbFills;
  ULONG KeFloatingEmulationCount;
  ULONG KeIcacheFlushCount;
  ULONG KeSecondLevelTbFills;
  ULONG KeSystemCalls;
  ULONG ReservedCounter[18];
  volatile PVOID RequestPacket[32];
  volatile PVOID CurrentPacket[3];
  volatile PKIPI_WORKER WorkerRoutine;
  ULONG CachePad1[4];
  volatile ULONG RequestSummary;
  volatile _KPRCB *SignalDone;
  ULONG CachePad2[5];
  PKIPI_COUNTS IpiCounts;
  LARGE_INTEGER StartCount;
  LIST_ENTRY DpcListHead;
  KSPIN_LOCK DpcLock;
  ULONG DpcCount;
  ULONG DpcVictim;
  BOOLEAN SkipTick;
};

/* 53 */
struct _DISPATCHER_HEADER
{
  CSHORT Type;
  CSHORT Size;
  LONG SignalState;
  LIST_ENTRY WaitListHead;
};

/* 52 */
typedef _DISPATCHER_HEADER DISPATCHER_HEADER;

/* 55 */
struct __attribute__((aligned(4))) _KTIMER
{
  DISPATCHER_HEADER Header;
  ULARGE_INTEGER DueTime;
  LIST_ENTRY TimerListEntry;
  _KDPC *Dpc;
  BOOLEAN Inserted;
};

/* 54 */
typedef _KTIMER KTIMER;

/* 61 */
typedef void (*PKNORMAL_ROUTINE)(PVOID, PVOID, PVOID);

/* 60 */
typedef void (*PKKERNEL_ROUTINE)(_KAPC *, PKNORMAL_ROUTINE *, PVOID *, PVOID *, PVOID *);

/* 62 */
typedef void (*PKRUNDOWN_ROUTINE)(_KAPC *);

/* 63 */
typedef CCHAR KPROCESSOR_MODE;

/* 59 */
struct __attribute__((aligned(2))) _KAPC
{
  CSHORT Type;
  CSHORT Size;
  ULONG Spare0;
  _KTHREAD *Thread;
  LIST_ENTRY ApcListEntry;
  PKKERNEL_ROUTINE KernelRoutine;
  PKRUNDOWN_ROUTINE RundownRoutine;
  PKNORMAL_ROUTINE NormalRoutine;
  PVOID NormalContext;
  PVOID SystemArgument1;
  PVOID SystemArgument2;
  CCHAR ApcStateIndex;
  KPROCESSOR_MODE ApcMode;
  BOOLEAN Inserted;
};

/* 58 */
typedef _KAPC KAPC;

/* 65 */
struct _KSEMAPHORE
{
  DISPATCHER_HEADER Header;
  LONG Limit;
};

/* 64 */
typedef _KSEMAPHORE KSEMAPHORE;

/* 67 */
struct _KWAIT_BLOCK
{
  LIST_ENTRY WaitListEntry;
  _KTHREAD *Thread;
  PVOID Object;
  _KWAIT_BLOCK *NextWaitBlock;
  CSHORT WaitKey;
  WAIT_TYPE WaitType;
};

/* 66 */
typedef _KWAIT_BLOCK KWAIT_BLOCK;

/* 69 */
struct __attribute__((aligned(2))) _KAPC_STATE
{
  LIST_ENTRY ApcListHead[2];
  _KPROCESS *Process;
  BOOLEAN KernelApcInProgress;
  BOOLEAN KernelApcPending;
  BOOLEAN UserApcPending;
};

/* 68 */
typedef _KAPC_STATE KAPC_STATE;

/* 71 */
typedef _KAPC_STATE *PKAPC_STATE;

/* 72 */
typedef _KWAIT_BLOCK *PKWAIT_BLOCK;

/* 51 */
struct __attribute__((aligned(4))) _KTHREAD
{
  DISPATCHER_HEADER Header;
  LIST_ENTRY MutantListHead;
  ULONG Spare0;
  ULONG Spare1;
  LIST_ENTRY ThreadListEntry;
  LIST_ENTRY WaitListEntry;
  ULONG KernelTime;
  ULONG UserTime;
  KTIMER Timer;
  KAPC SuspendApc;
  KSEMAPHORE SuspendSemaphore;
  KWAIT_BLOCK WaitBlock[5];
  KAPC_STATE ApcState;
  KAPC_STATE SavedApcState;
  PKAPC_STATE ApcStatePointer[2];
  PVOID InitialStack;
  PVOID KernelStack;
  PVOID Teb;
  ULONG ContextSwitches;
  ULONG Spare2;
  ULONG Spare5;
  ULONG WaitTime;
  ULONG Spare3;
  KAFFINITY Affinity;
  PKWAIT_BLOCK WaitBlockList;
  NTSTATUS WaitStatus;
  BOOLEAN Alertable;
  BOOLEAN Alerted[2];
  BOOLEAN ApcQueueable;
  BOOLEAN AutoAlignment;
  BOOLEAN DebugActive;
  BOOLEAN Preempted;
  BOOLEAN ProcessReadyQueue;
  BOOLEAN KernelStackResident;
  BOOLEAN WaitNext;
  CCHAR ApcStateIndex;
  SCHAR DecrementCount;
  CCHAR NextProcessor;
  SCHAR Priority;
  CCHAR State;
  CCHAR FreezeCount;
  CCHAR SuspendCount;
  KIRQL WaitIrql;
  KPROCESSOR_MODE WaitMode;
  CCHAR WaitReason;
  CCHAR PreviousMode;
  SCHAR BasePriority;
  SCHAR PriorityDecrement;
  SCHAR Quantum;
  UCHAR KernelApcDisable;
  UCHAR Spare4;
};

/* 75 */
struct _BOOT_STATUS
{
  unsigned __int32 BootStarted : 1;
  unsigned __int32 BootFinished : 1;
  unsigned __int32 RestartStarted : 1;
  unsigned __int32 RestartFinished : 1;
  unsigned __int32 PowerFailStarted : 1;
  unsigned __int32 PowerFailFinished : 1;
  unsigned __int32 ProcessorReady : 1;
  unsigned __int32 ProcessorRunning : 1;
  unsigned __int32 ProcessorStart : 1;
};

/* 74 */
typedef _BOOT_STATUS BOOT_STATUS;

/* 78 */
struct _ALPHA_RESTART_STATE
{
  ULONG PlaceHolder;
};

/* 77 */
typedef _ALPHA_RESTART_STATE ALPHA_RESTART_STATE;

/* 80 */
struct _I386_RESTART_STATE
{
  ULONG PlaceHolder;
};

/* 79 */
typedef _I386_RESTART_STATE I386_RESTART_STATE;

/* 83 */
struct $1393A8625D31FD3F1280D7E2352E8B99
{
  ENTRYHI EntryHi;
  ENTRYLO EntryLo0;
  ENTRYLO EntryLo1;
  PAGEMASK PageMask;
};

/* 82 */
struct _MIPS_RESTART_STATE
{
  ULONG FltF0;
  ULONG FltF1;
  ULONG FltF2;
  ULONG FltF3;
  ULONG FltF4;
  ULONG FltF5;
  ULONG FltF6;
  ULONG FltF7;
  ULONG FltF8;
  ULONG FltF9;
  ULONG FltF10;
  ULONG FltF11;
  ULONG FltF12;
  ULONG FltF13;
  ULONG FltF14;
  ULONG FltF15;
  ULONG FltF16;
  ULONG FltF17;
  ULONG FltF18;
  ULONG FltF19;
  ULONG FltF20;
  ULONG FltF21;
  ULONG FltF22;
  ULONG FltF23;
  ULONG FltF24;
  ULONG FltF25;
  ULONG FltF26;
  ULONG FltF27;
  ULONG FltF28;
  ULONG FltF29;
  ULONG FltF30;
  ULONG FltF31;
  ULONG Fsr;
  ULONG IntAt;
  ULONG IntV0;
  ULONG IntV1;
  ULONG IntA0;
  ULONG IntA1;
  ULONG IntA2;
  ULONG IntA3;
  ULONG IntT0;
  ULONG IntT1;
  ULONG IntT2;
  ULONG IntT3;
  ULONG IntT4;
  ULONG IntT5;
  ULONG IntT6;
  ULONG IntT7;
  ULONG IntS0;
  ULONG IntS1;
  ULONG IntS2;
  ULONG IntS3;
  ULONG IntS4;
  ULONG IntS5;
  ULONG IntS6;
  ULONG IntS7;
  ULONG IntT8;
  ULONG IntT9;
  ULONG IntK0;
  ULONG IntK1;
  ULONG IntGp;
  ULONG IntSp;
  ULONG IntS8;
  ULONG IntRa;
  ULONG IntLo;
  ULONG IntHi;
  ULONG Psr;
  ULONG Fir;
  $1393A8625D31FD3F1280D7E2352E8B99 Tb[48];
};

/* 81 */
typedef _MIPS_RESTART_STATE MIPS_RESTART_STATE;

/* 91 */
struct _PPC_RESTART_STATE
{
  ULONG PlaceHolder;
};

/* 90 */
typedef _PPC_RESTART_STATE PPC_RESTART_STATE;

/* 76 */
union $DB3BBCEF501696A56E12381C2F7F7D57
{
  ULONG SaveArea[1];
  ALPHA_RESTART_STATE Alpha;
  I386_RESTART_STATE I386;
  MIPS_RESTART_STATE Mips;
  PPC_RESTART_STATE Ppc;
};

/* 73 */
struct _RESTART_BLOCK
{
  ULONG Signature;
  ULONG Length;
  USHORT Version;
  USHORT Revision;
  _RESTART_BLOCK *NextRestartBlock;
  PVOID RestartAddress;
  ULONG BootMasterId;
  ULONG ProcessorId;
  volatile BOOT_STATUS BootStatus;
  ULONG CheckSum;
  ULONG SaveAreaLength;
  $DB3BBCEF501696A56E12381C2F7F7D57 u;
};

/* 98 */
struct _KIPI_COUNTS
{
  ULONG Freeze;
  ULONG Packet;
  ULONG DPC;
  ULONG APC;
  ULONG FlushSingleTb;
  ULONG FlushMultipleTb;
  ULONG FlushEntireTb;
  ULONG GenericCall;
  ULONG ChangeColor;
  ULONG SweepDcache;
  ULONG SweepIcache;
  ULONG SweepIcacheRange;
  ULONG FlushIoBuffers;
  ULONG GratuitousDPC;
};

/* 70 */
struct __attribute__((aligned(4))) _KPROCESS
{
  DISPATCHER_HEADER Header;
  LIST_ENTRY ProfileListHead;
  LIST_ENTRY ReadyListHead;
  LIST_ENTRY SwapListEntry;
  LIST_ENTRY ThreadListHead;
  ULONG KernelTime;
  ULONG UserTime;
  ULONG DirectoryTableBase[2];
  KSPIN_LOCK ProcessLock;
  KAFFINITY ActiveProcessors;
  KAFFINITY Affinity;
  ULONG ProcessPid;
  ULONG ProcessSequence;
  USHORT StackCount;
  BOOLEAN AutoAlignment;
  SCHAR BasePriority;
  UCHAR State;
  SCHAR ThreadQuantum;
};

/* 99 */
struct _HARDWARE_PTE
{
  unsigned __int32 Global : 1;
  unsigned __int32 Valid : 1;
  unsigned __int32 Dirty : 1;
  unsigned __int32 CachePolicy : 3;
  unsigned __int32 PageFrameNumber : 24;
  unsigned __int32 Write : 1;
  unsigned __int32 CopyOnWrite : 1;
};

/* 100 */
typedef _HARDWARE_PTE HARDWARE_PTE;

/* 101 */
typedef PVOID PACCESS_TOKEN;

/* 102 */
typedef PVOID PSECURITY_DESCRIPTOR;

/* 103 */
typedef PVOID PSID;

/* 104 */
typedef ULONG ACCESS_MASK;

/* 105 */
struct _GENERIC_MAPPING
{
  ACCESS_MASK GenericRead;
  ACCESS_MASK GenericWrite;
  ACCESS_MASK GenericExecute;
  ACCESS_MASK GenericAll;
};

/* 106 */
typedef _GENERIC_MAPPING GENERIC_MAPPING;

/* 107 */
typedef GENERIC_MAPPING *PGENERIC_MAPPING;

/* 108 */
struct __attribute__((packed)) __attribute__((aligned(4))) _LUID_AND_ATTRIBUTES
{
  LUID Luid;
  ULONG Attributes;
};

/* 109 */
typedef _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES;

/* 110 */
struct _ACL
{
  UCHAR AclRevision;
  UCHAR Sbz1;
  USHORT AclSize;
  USHORT AceCount;
  USHORT Sbz2;
};

/* 111 */
typedef _ACL ACL;

/* 112 */
typedef ACL *PACL;

/* 113 */
struct _PRIVILEGE_SET
{
  ULONG PrivilegeCount;
  ULONG Control;
  LUID_AND_ATTRIBUTES Privilege[1];
};

/* 114 */
typedef _PRIVILEGE_SET PRIVILEGE_SET;

/* 115 */
typedef _PRIVILEGE_SET *PPRIVILEGE_SET;

/* 116 */
enum _SECURITY_IMPERSONATION_LEVEL : __int32
{
  SecurityAnonymous = 0x0,
  SecurityIdentification = 0x1,
  SecurityImpersonation = 0x2,
  SecurityDelegation = 0x3,
};

/* 117 */
typedef _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL;

/* 118 */
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;

/* 119 */
struct __attribute__((aligned(4))) _SECURITY_QUALITY_OF_SERVICE
{
  ULONG Length;
  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
  SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
  BOOLEAN EffectiveOnly;
};

/* 120 */
typedef _SECURITY_QUALITY_OF_SERVICE *PSECURITY_QUALITY_OF_SERVICE;

/* 121 */
struct _TOKEN_SOURCE
{
  CHAR SourceName[8];
  LUID SourceIdentifier;
};

/* 122 */
typedef _TOKEN_SOURCE TOKEN_SOURCE;

/* 123 */
typedef ULONG SECURITY_INFORMATION;

/* 124 */
typedef ULONG *PSECURITY_INFORMATION;

/* 125 */
struct _OBJECT_NAME_INFORMATION
{
  UNICODE_STRING Name;
};

/* 126 */
typedef _OBJECT_NAME_INFORMATION *POBJECT_NAME_INFORMATION;

/* 127 */
struct _PEB_LDR_DATA
{
  ULONG Length;
  BOOLEAN Initialized;
  HANDLE SsHandle;
  LIST_ENTRY InLoadOrderModuleList;
  LIST_ENTRY InMemoryOrderModuleList;
  LIST_ENTRY InInitializationOrderModuleList;
};

/* 128 */
typedef _PEB_LDR_DATA *PPEB_LDR_DATA;

/* 129 */
struct _PEB_FREE_BLOCK
{
  _PEB_FREE_BLOCK *Next;
  ULONG Size;
};

/* 130 */
typedef _PEB_FREE_BLOCK *PPEB_FREE_BLOCK;

/* 131 */
struct _CLIENT_ID
{
  HANDLE UniqueProcess;
  HANDLE UniqueThread;
};

/* 132 */
typedef _CLIENT_ID CLIENT_ID;

/* 133 */
struct _PEB
{
  BOOLEAN InheritedAddressSpace;
  HANDLE Mutant;
  PVOID ImageBaseAddress;
  PPEB_LDR_DATA Ldr;
  _RTL_USER_PROCESS_PARAMETERS *ProcessParameters;
  PVOID SubSystemData;
  PVOID ProcessHeap;
  PVOID FastPebLock;
  PVOID FastPebLockRoutine;
  PVOID FastPebUnlockRoutine;
  ULONG EnvironmentUpdateCount;
  ULONG Spare;
  HANDLE EventLogSection;
  PVOID EventLog;
  PPEB_FREE_BLOCK FreeList;
  ULONG TlsExpansionCounter;
  PVOID TlsBitmap;
  ULONG TlsBitmapBits[2];
  PVOID ReadOnlySharedMemoryBase;
  PVOID ReadOnlySharedMemoryHeap;
  PVOID *ReadOnlyStaticServerData;
  PVOID AnsiCodePageData;
  PVOID OemCodePageData;
  PVOID UnicodeCaseTableData;
  LARGE_INTEGER CriticalSectionTimeout;
};

/* 136 */
struct _CURDIR
{
  UNICODE_STRING DosPath;
  HANDLE Handle;
};

/* 135 */
typedef _CURDIR CURDIR;

/* 138 */
struct _RTL_DRIVE_LETTER_CURDIR
{
  USHORT Flags;
  USHORT Length;
  ULONG TimeStamp;
  STRING DosPath;
};

/* 137 */
typedef _RTL_DRIVE_LETTER_CURDIR RTL_DRIVE_LETTER_CURDIR;

/* 134 */
struct _RTL_USER_PROCESS_PARAMETERS
{
  ULONG MaximumLength;
  ULONG Length;
  ULONG Flags;
  ULONG DebugFlags;
  HANDLE ConsoleHandle;
  ULONG ConsoleFlags;
  HANDLE StandardInput;
  HANDLE StandardOutput;
  HANDLE StandardError;
  CURDIR CurrentDirectory;
  UNICODE_STRING DllPath;
  UNICODE_STRING ImagePathName;
  UNICODE_STRING CommandLine;
  PVOID Environment;
  ULONG StartingX;
  ULONG StartingY;
  ULONG CountX;
  ULONG CountY;
  ULONG CountCharsX;
  ULONG CountCharsY;
  ULONG FillAttribute;
  ULONG WindowFlags;
  ULONG ShowWindowFlags;
  UNICODE_STRING WindowTitle;
  UNICODE_STRING DesktopInfo;
  UNICODE_STRING ShellInfo;
  UNICODE_STRING RuntimeData;
  RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32];
};

/* 139 */
typedef _PEB *PPEB;

/* 140 */
struct _IO_STATUS_BLOCK
{
  NTSTATUS Status;
  ULONG Information;
};

/* 141 */
typedef _IO_STATUS_BLOCK IO_STATUS_BLOCK;

/* 142 */
typedef _IO_STATUS_BLOCK *PIO_STATUS_BLOCK;

/* 143 */
typedef void (*PIO_APC_ROUTINE)(PVOID, PIO_STATUS_BLOCK, ULONG);

/* 144 */
enum _FILE_INFORMATION_CLASS : __int32
{
  FileDirectoryInformation = 0x1,
  FileFullDirectoryInformation = 0x2,
  FileBothDirectoryInformation = 0x3,
  FileBasicInformation = 0x4,
  FileStandardInformation = 0x5,
  FileInternalInformation = 0x6,
  FileEaInformation = 0x7,
  FileAccessInformation = 0x8,
  FileNameInformation = 0x9,
  FileRenameInformation = 0xA,
  FileLinkInformation = 0xB,
  FileNamesInformation = 0xC,
  FileDispositionInformation = 0xD,
  FilePositionInformation = 0xE,
  FileFullEaInformation = 0xF,
  FileModeInformation = 0x10,
  FileAlignmentInformation = 0x11,
  FileAllInformation = 0x12,
  FileAllocationInformation = 0x13,
  FileEndOfFileInformation = 0x14,
  FileAlternateNameInformation = 0x15,
  FileStreamInformation = 0x16,
  FilePipeInformation = 0x17,
  FilePipeLocalInformation = 0x18,
  FilePipeRemoteInformation = 0x19,
  FileMailslotQueryInformation = 0x1A,
  FileMailslotSetInformation = 0x1B,
  FileCompressionInformation = 0x1C,
  FileCopyOnWriteInformation = 0x1D,
  FileCompletionInformation = 0x1E,
  FileMoveClusterInformation = 0x1F,
  FileStorageInformation = 0x20,
  FileMaximumInformation = 0x21,
};

/* 145 */
typedef _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS;

/* 146 */
struct __attribute__((aligned(8))) _FILE_BASIC_INFORMATION
{
  LARGE_INTEGER CreationTime;
  LARGE_INTEGER LastAccessTime;
  LARGE_INTEGER LastWriteTime;
  LARGE_INTEGER ChangeTime;
  ULONG FileAttributes;
};

/* 147 */
typedef _FILE_BASIC_INFORMATION *PFILE_BASIC_INFORMATION;

/* 148 */
struct __attribute__((aligned(4))) _FILE_STANDARD_INFORMATION
{
  LARGE_INTEGER AllocationSize;
  LARGE_INTEGER EndOfFile;
  ULONG NumberOfLinks;
  BOOLEAN DeletePending;
  BOOLEAN Directory;
};

/* 149 */
typedef _FILE_STANDARD_INFORMATION *PFILE_STANDARD_INFORMATION;

/* 150 */
enum _FSINFOCLASS : __int32
{
  FileFsVolumeInformation = 0x1,
  FileFsLabelInformation = 0x2,
  FileFsSizeInformation = 0x3,
  FileFsDeviceInformation = 0x4,
  FileFsAttributeInformation = 0x5,
  FileFsQuotaQueryInformation = 0x6,
  FileFsQuotaSetInformation = 0x7,
  FileFsControlQueryInformation = 0x8,
  FileFsControlSetInformation = 0x9,
  FileFsMaximumInformation = 0xA,
};

/* 151 */
typedef _FSINFOCLASS FS_INFORMATION_CLASS;

/* 152 */
struct _DEVICE_FLAGS
{
  unsigned __int32 Failed : 1;
  unsigned __int32 ReadOnly : 1;
  unsigned __int32 Removable : 1;
  unsigned __int32 ConsoleIn : 1;
  unsigned __int32 ConsoleOut : 1;
  unsigned __int32 Input : 1;
  unsigned __int32 Output : 1;
};

/* 153 */
typedef _DEVICE_FLAGS DEVICE_FLAGS;

/* 154 */
struct _CPTABLEINFO
{
  USHORT CodePage;
  USHORT MaximumCharacterSize;
  USHORT DefaultChar;
  USHORT UniDefaultChar;
  USHORT TransDefaultChar;
  USHORT TransUniDefaultChar;
  USHORT DBCSCodePage;
  UCHAR LeadByte[12];
  PUSHORT MultiByteTable;
  PVOID WideCharTable;
  PUSHORT DBCSRanges;
  PUSHORT DBCSOffsets;
};

/* 155 */
typedef _CPTABLEINFO CPTABLEINFO;

/* 156 */
struct _NLSTABLEINFO
{
  CPTABLEINFO OemTableInfo;
  CPTABLEINFO AnsiTableInfo;
  PUSHORT UpperCaseTable;
  PUSHORT LowerCaseTable;
};

/* 157 */
typedef _NLSTABLEINFO NLSTABLEINFO;

/* 158 */
typedef NTSTATUS (*PRTL_INITIALIZE_LOCK_ROUTINE)(PVOID);

/* 159 */
typedef NTSTATUS (*PRTL_ACQUIRE_LOCK_ROUTINE)(PVOID);

/* 160 */
typedef NTSTATUS (*PRTL_RELEASE_LOCK_ROUTINE)(PVOID);

/* 161 */
typedef NTSTATUS (*PRTL_DELETE_LOCK_ROUTINE)(PVOID);

/* 162 */
typedef BOOLEAN (*PRTL_OKAY_TO_LOCK_ROUTINE)(PVOID);

/* 163 */
typedef PVOID (*PRTL_ALLOCATE_STRING_ROUTINE)(ULONG);

/* 164 */
typedef void (*PRTL_FREE_STRING_ROUTINE)(PVOID);

/* 165 */
typedef _KDPC *PKDPC;

/* 166 */
struct _MDL
{
  _MDL *Next;
  CSHORT Size;
  CSHORT MdlFlags;
  _EPROCESS *Process;
  PVOID MappedSystemVa;
  PVOID StartVa;
  ULONG ByteCount;
  ULONG ByteOffset;
};

/* 168 */
typedef _KPROCESS KPROCESS;

/* 170 */
struct _KEVENT
{
  DISPATCHER_HEADER Header;
};

/* 169 */
typedef _KEVENT KEVENT;

/* 171 */
typedef _KTHREAD *PKTHREAD;

/* 174 */
struct _MMWSL;

/* 173 */
struct __attribute__((aligned(8))) _MMSUPPORT
{
  LARGE_INTEGER LastTrimTime;
  ULONG LastTrimFaultCount;
  ULONG PageFaultCount;
  ULONG PeakWorkingSetSize;
  ULONG WorkingSetSize;
  USHORT MinimumWorkingSetSize;
  USHORT MaximumWorkingSetSize;
  _MMWSL *VmWorkingSetList;
  LIST_ENTRY WorkingSetExpansionLinks;
  BOOLEAN AllowWorkingSetAdjustment;
  BOOLEAN AddressSpaceBeingDeleted;
  UCHAR ForegroundSwitchCount;
  UCHAR MemoryPriority;
};

/* 172 */
typedef _MMSUPPORT MMSUPPORT;

/* 176 */
struct _FAST_MUTEX
{
  LONG Count;
  PKTHREAD Owner;
  ULONG Contention;
  KEVENT Event;
  ULONG OldIrql;
};

/* 175 */
typedef _FAST_MUTEX FAST_MUTEX;

/* 215 */
typedef _KEVENT *PKEVENT;

/* 283 */
typedef _EPROCESS_QUOTA_BLOCK *PEPROCESS_QUOTA_BLOCK;

/* 286 */
struct __attribute__((aligned(4))) _KMUTANT
{
  DISPATCHER_HEADER Header;
  LIST_ENTRY MutantListEntry;
  _KTHREAD *OwnerThread;
  BOOLEAN Abandoned;
  UCHAR ApcDisable;
};

/* 285 */
typedef _KMUTANT KMUTANT;

/* 167 */
struct __attribute__((aligned(8))) _EPROCESS
{
  KPROCESS Pcb;
  NTSTATUS ExitStatus;
  KEVENT LockEvent;
  ULONG LockCount;
  LARGE_INTEGER CreateTime;
  LARGE_INTEGER ExitTime;
  PKTHREAD LockOwner;
  HANDLE UniqueProcessId;
  LIST_ENTRY ActiveProcessLinks;
  ULONG QuotaPeakPoolUsage[2];
  ULONG QuotaPoolUsage[2];
  ULONG PagefileUsage;
  ULONG CommitCharge;
  ULONG PeakPagefileUsage;
  ULONG PeakVirtualSize;
  ULONG VirtualSize;
  MMSUPPORT Vm;
  PVOID LastProtoPteFault;
  PVOID DebugPort;
  PVOID ExceptionPort;
  PVOID ObjectTable;
  PACCESS_TOKEN Token;
  FAST_MUTEX WorkingSetLock;
  ULONG WorkingSetPage;
  BOOLEAN ProcessOutswapEnabled;
  BOOLEAN ProcessOutswapped;
  BOOLEAN AddressSpaceInitialized;
  BOOLEAN AddressSpaceDeleted;
  FAST_MUTEX AddressCreationLock;
  KSPIN_LOCK HyperSpaceLock;
  _ETHREAD *ForkInProgress;
  ULONG VmOperation;
  PKEVENT VmOperationEvent;
  HARDWARE_PTE PageDirectoryPte;
  ULONG LastFaultCount;
  ULONG ModifiedPageCount;
  PVOID VadRoot;
  PVOID VadHint;
  PVOID CloneRoot;
  ULONG NumberOfPrivatePages;
  ULONG NumberOfLockedPages;
  BOOLEAN ForkWasSuccessful;
  UCHAR NextPageColor;
  BOOLEAN ExitProcessCalled;
  BOOLEAN CreateProcessReported;
  HANDLE SectionHandle;
  PPEB Peb;
  PVOID SectionBaseAddress;
  PEPROCESS_QUOTA_BLOCK QuotaBlock;
  NTSTATUS LastThreadExitStatus;
  PVOID WorkingSetWatch;
  PVOID LpcPort;
  HANDLE InheritedFromUniqueProcessId;
  ACCESS_MASK GrantedAccess;
  ULONG DefaultHardErrorProcessing;
  PVOID LdtInformation;
  PVOID VadFreeHint;
  PVOID VdmObjects;
  KMUTANT ProcessMutant;
  UCHAR ImageFileName[16];
  ULONG VmTrimFaultValue;
  BOOLEAN SetTimerResolution;
};

/* 178 */
typedef _KTHREAD KTHREAD;

/* 179 */
union $7364514DE4209C69D5389FAE38DBDA09
{
  LARGE_INTEGER ExitTime;
  LIST_ENTRY LpcReplyChain;
};

/* 180 */
union $43CE158B46A5D293019E70C0F6A6371F
{
  NTSTATUS ExitStatus;
  PVOID OfsChain;
};

/* 181 */
typedef _PS_IMPERSONATION_INFORMATION *PPS_IMPERSONATION_INFORMATION;

/* 278 */
typedef _EEVENT_PAIR *PEEVENT_PAIR;

/* 203 */
typedef _EPROCESS EPROCESS;

/* 202 */
typedef EPROCESS *PEPROCESS;

/* 282 */
union $090E73FEB50CCFEC30226514F0CDC781
{
  PVOID Win32StartAddress;
  ULONG LpcReceivedMessageId;
};

/* 177 */
struct _ETHREAD
{
  KTHREAD Tcb;
  LARGE_INTEGER CreateTime;
  $7364514DE4209C69D5389FAE38DBDA09 _anon_0;
  $43CE158B46A5D293019E70C0F6A6371F _anon_1;
  LIST_ENTRY PostBlockList;
  LIST_ENTRY TerminationPortList;
  KSPIN_LOCK ActiveTimerListLock;
  LIST_ENTRY ActiveTimerListHead;
  CLIENT_ID Cid;
  KSEMAPHORE LpcReplySemaphore;
  PVOID LpcReplyMessage;
  ULONG LpcReplyMessageId;
  ULONG PerformanceCountLow;
  PPS_IMPERSONATION_INFORMATION Client;
  LIST_ENTRY IrpList;
  ULONG TopLevelIrp;
  _DEVICE_OBJECT *DeviceToVerify;
  ULONG ReadClusterSize;
  BOOLEAN ForwardClusterOnly;
  BOOLEAN DisablePageFaultClustering;
  BOOLEAN DeadThread;
  BOOLEAN HasTerminated;
  PEEVENT_PAIR EventPair;
  ACCESS_MASK GrantedAccess;
  PEPROCESS ThreadsProcess;
  PVOID StartAddress;
  $090E73FEB50CCFEC30226514F0CDC781 _anon_2;
  BOOLEAN LpcExitThreadCalled;
  BOOLEAN HardErrorsAreDisabled;
  BOOLEAN LpcReceivedMsgIdValid;
  BOOLEAN SpareBoolean2;
  LONG PerformanceCountHigh;
};

/* 284 */
struct _EPROCESS_QUOTA_BLOCK
{
  KSPIN_LOCK QuotaLock;
  ULONG ReferenceCount;
  ULONG QuotaPeakPoolUsage[2];
  ULONG QuotaPoolUsage[2];
  ULONG QuotaPoolLimit[2];
  ULONG PeakPagefileUsage;
  ULONG PagefileUsage;
  ULONG PagefileLimit;
};

/* 182 */
struct _PS_IMPERSONATION_INFORMATION
{
  PACCESS_TOKEN Token;
  BOOLEAN CopyOnOpen;
  BOOLEAN EffectiveOnly;
  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
};

/* 267 */
typedef _IO_TIMER *PIO_TIMER;

/* 190 */
typedef _VPB *PVPB;

/* 222 */
struct __attribute__((aligned(4))) _KDEVICE_QUEUE_ENTRY
{
  LIST_ENTRY DeviceListEntry;
  ULONG SortKey;
  BOOLEAN Inserted;
};

/* 221 */
typedef _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY;

/* 275 */
enum _IO_ALLOCATION_ACTION : __int32
{
  KeepObject = 0x1,
  DeallocateObject = 0x2,
  DeallocateObjectKeepRegisters = 0x3,
};

/* 274 */
typedef _IO_ALLOCATION_ACTION IO_ALLOCATION_ACTION;

/* 273 */
typedef IO_ALLOCATION_ACTION (*PDRIVER_CONTROL)(_DEVICE_OBJECT *, _IRP *, PVOID, PVOID);

/* 272 */
struct _WAIT_CONTEXT_BLOCK
{
  KDEVICE_QUEUE_ENTRY WaitQueueEntry;
  PDRIVER_CONTROL DeviceRoutine;
  PVOID DeviceContext;
  ULONG NumberOfMapRegisters;
  PVOID DeviceObject;
  PVOID CurrentIrp;
  PKDPC BufferChainingDpc;
};

/* 271 */
typedef _WAIT_CONTEXT_BLOCK WAIT_CONTEXT_BLOCK;

/* 270 */
union $3AEB72509DB0C16B29F130A184016BEF
{
  LIST_ENTRY ListEntry;
  WAIT_CONTEXT_BLOCK Wcb;
};

/* 277 */
struct __attribute__((aligned(4))) _KDEVICE_QUEUE
{
  CSHORT Type;
  CSHORT Size;
  LIST_ENTRY DeviceListHead;
  KSPIN_LOCK Lock;
  BOOLEAN Busy;
};

/* 276 */
typedef _KDEVICE_QUEUE KDEVICE_QUEUE;

/* 183 */
struct _DEVICE_OBJECT
{
  CSHORT Type;
  USHORT Size;
  LONG ReferenceCount;
  _DRIVER_OBJECT *DriverObject;
  _DEVICE_OBJECT *NextDevice;
  _DEVICE_OBJECT *AttachedDevice;
  _IRP *CurrentIrp;
  PIO_TIMER Timer;
  ULONG Flags;
  ULONG Characteristics;
  PVPB Vpb;
  PVOID DeviceExtension;
  ULONG DeviceType;
  CCHAR StackSize;
  $3AEB72509DB0C16B29F130A184016BEF Queue;
  ULONG AlignmentRequirement;
  KDEVICE_QUEUE DeviceQueue;
  KDPC Dpc;
  ULONG ActiveThreadCount;
  PSECURITY_DESCRIPTOR SecurityDescriptor;
  KEVENT DeviceLock;
  USHORT SectorSize;
  USHORT Spare1;
  LARGE_INTEGER Spare2;
};

/* 281 */
struct _KEVENT_PAIR
{
  CSHORT Type;
  CSHORT Size;
  KEVENT EventLow;
  KEVENT EventHigh;
};

/* 280 */
typedef _KEVENT_PAIR KEVENT_PAIR;

/* 279 */
struct _EEVENT_PAIR
{
  KEVENT_PAIR KernelEventPair;
};

/* 185 */
typedef _DEVICE_OBJECT *PDEVICE_OBJECT;

/* 186 */
typedef _FAST_IO_DISPATCH *PFAST_IO_DISPATCH;

/* 210 */
typedef NTSTATUS (*PDRIVER_INITIALIZE)(_DRIVER_OBJECT *, PUNICODE_STRING);

/* 211 */
typedef void (*PDRIVER_STARTIO)(_DEVICE_OBJECT *, _IRP *);

/* 265 */
typedef void (*PDRIVER_UNLOAD)(_DRIVER_OBJECT *);

/* 266 */
typedef NTSTATUS (*PDRIVER_DISPATCH)(_DEVICE_OBJECT *, _IRP *);

/* 184 */
struct _DRIVER_OBJECT
{
  CSHORT Type;
  CSHORT Size;
  PDEVICE_OBJECT DeviceObject;
  ULONG Flags;
  PVOID DriverStart;
  ULONG DriverSize;
  PVOID DriverSection;
  ULONG Count;
  UNICODE_STRING DriverName;
  PUNICODE_STRING HardwareDatabase;
  PFAST_IO_DISPATCH FastIoDispatch;
  PDRIVER_INITIALIZE DriverInit;
  PDRIVER_STARTIO DriverStartIo;
  PDRIVER_UNLOAD DriverUnload;
  PDRIVER_DISPATCH MajorFunction[22];
};

/* 213 */
typedef _MDL *PMDL;

/* 214 */
union $8521CFF0D3D24E7C7665852198E67A61
{
  _IRP *MasterIrp;
  LONG IrpCount;
  PVOID SystemBuffer;
};

/* 217 */
struct $36A5D33572383044D7B08D6F647745FE
{
  PIO_APC_ROUTINE UserApcRoutine;
  PVOID UserApcContext;
};

/* 216 */
union $00EE9C9F2E42A2E1EE1FD0599E130562
{
  $36A5D33572383044D7B08D6F647745FE AsynchronousParameters;
  LARGE_INTEGER AllocationSize;
};

/* 218 */
typedef void (*PDRIVER_CANCEL)(_DEVICE_OBJECT *, _IRP *);

/* 224 */
typedef _ETHREAD ETHREAD;

/* 223 */
typedef ETHREAD *PETHREAD;

/* 248 */
typedef _FILE_OBJECT *PFILE_OBJECT;

/* 220 */
struct $A45906077658EE6FEC44BC2011CF72B7
{
  KDEVICE_QUEUE_ENTRY DeviceQueueEntry;
  PETHREAD Thread;
  PCHAR AuxiliaryBuffer;
  LIST_ENTRY ListEntry;
  _IO_STACK_LOCATION *CurrentStackLocation;
  PFILE_OBJECT OriginalFileObject;
};

/* 219 */
union $C33D16C96AC26F893146F44FC3A5F2D2
{
  $A45906077658EE6FEC44BC2011CF72B7 Overlay;
  KAPC Apc;
  ULONG CompletionKey;
};

/* 212 */
struct _IRP
{
  CSHORT Type;
  USHORT Size;
  PMDL MdlAddress;
  ULONG Flags;
  $8521CFF0D3D24E7C7665852198E67A61 AssociatedIrp;
  LIST_ENTRY ThreadListEntry;
  IO_STATUS_BLOCK IoStatus;
  KPROCESSOR_MODE RequestorMode;
  BOOLEAN PendingReturned;
  CHAR StackCount;
  CHAR CurrentLocation;
  BOOLEAN Cancel;
  KIRQL CancelIrql;
  CCHAR ApcEnvironment;
  BOOLEAN Zoned;
  PIO_STATUS_BLOCK UserIosb;
  PKEVENT UserEvent;
  $00EE9C9F2E42A2E1EE1FD0599E130562 Overlay;
  PDRIVER_CANCEL CancelRoutine;
  PVOID UserBuffer;
  $C33D16C96AC26F893146F44FC3A5F2D2 Tail;
};

/* 269 */
typedef void (*PIO_TIMER_ROUTINE)(_DEVICE_OBJECT *, PVOID);

/* 268 */
struct _IO_TIMER
{
  CSHORT Type;
  CSHORT TimerFlag;
  LIST_ENTRY TimerList;
  PIO_TIMER_ROUTINE TimerRoutine;
  PVOID Context;
  _DEVICE_OBJECT *DeviceObject;
};

/* 191 */
struct _VPB
{
  CSHORT Type;
  CSHORT Size;
  USHORT Flags;
  USHORT VolumeLabelLength;
  _DEVICE_OBJECT *DeviceObject;
  _DEVICE_OBJECT *RealDevice;
  ULONG SerialNumber;
  ULONG ReferenceCount;
  WCHAR VolumeLabel[32];
};

/* 188 */
typedef BOOLEAN (*PFAST_IO_CHECK_IF_POSSIBLE)(_FILE_OBJECT *, PLARGE_INTEGER, ULONG, BOOLEAN, ULONG, BOOLEAN, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 197 */
typedef BOOLEAN (*PFAST_IO_READ)(_FILE_OBJECT *, PLARGE_INTEGER, ULONG, BOOLEAN, ULONG, PVOID, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 198 */
typedef BOOLEAN (*PFAST_IO_WRITE)(_FILE_OBJECT *, PLARGE_INTEGER, ULONG, BOOLEAN, ULONG, PVOID, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 199 */
typedef BOOLEAN (*PFAST_IO_QUERY_BASIC_INFO)(_FILE_OBJECT *, BOOLEAN, PFILE_BASIC_INFORMATION, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 200 */
typedef BOOLEAN (*PFAST_IO_QUERY_STANDARD_INFO)(_FILE_OBJECT *, BOOLEAN, PFILE_STANDARD_INFORMATION, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 201 */
typedef BOOLEAN (*PFAST_IO_LOCK)(_FILE_OBJECT *, PLARGE_INTEGER, PLARGE_INTEGER, PEPROCESS, ULONG, BOOLEAN, BOOLEAN, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 204 */
typedef BOOLEAN (*PFAST_IO_UNLOCK_SINGLE)(_FILE_OBJECT *, PLARGE_INTEGER, PLARGE_INTEGER, PEPROCESS, ULONG, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 205 */
typedef BOOLEAN (*PFAST_IO_UNLOCK_ALL)(_FILE_OBJECT *, PEPROCESS, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 206 */
typedef BOOLEAN (*PFAST_IO_UNLOCK_ALL_BY_KEY)(_FILE_OBJECT *, PVOID, ULONG, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 207 */
typedef BOOLEAN (*PFAST_IO_DEVICE_CONTROL)(_FILE_OBJECT *, BOOLEAN, PVOID, ULONG, PVOID, ULONG, ULONG, PIO_STATUS_BLOCK, _DEVICE_OBJECT *);

/* 208 */
typedef void (*PFAST_IO_ACQUIRE_FILE)(_FILE_OBJECT *);

/* 209 */
typedef void (*PFAST_IO_RELEASE_FILE)(_FILE_OBJECT *);

/* 187 */
struct _FAST_IO_DISPATCH
{
  ULONG SizeOfFastIoDispatch;
  PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible;
  PFAST_IO_READ FastIoRead;
  PFAST_IO_WRITE FastIoWrite;
  PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo;
  PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo;
  PFAST_IO_LOCK FastIoLock;
  PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle;
  PFAST_IO_UNLOCK_ALL FastIoUnlockAll;
  PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey;
  PFAST_IO_DEVICE_CONTROL FastIoDeviceControl;
  PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection;
  PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection;
};

/* 228 */
typedef _IO_SECURITY_CONTEXT *PIO_SECURITY_CONTEXT;

/* 227 */
struct $9DDB513460F68FC42262F38A441EA583
{
  PIO_SECURITY_CONTEXT SecurityContext;
  ULONG Options;
  USHORT FileAttributes;
  USHORT ShareAccess;
  ULONG EaLength;
};

/* 238 */
typedef _NAMED_PIPE_CREATE_PARAMETERS *PNAMED_PIPE_CREATE_PARAMETERS;

/* 237 */
struct $9B21CDD614EF30720869F2D91C0C93D4
{
  PIO_SECURITY_CONTEXT SecurityContext;
  ULONG Options;
  USHORT Reserved;
  USHORT ShareAccess;
  PNAMED_PIPE_CREATE_PARAMETERS Parameters;
};

/* 241 */
typedef _MAILSLOT_CREATE_PARAMETERS *PMAILSLOT_CREATE_PARAMETERS;

/* 240 */
struct $B5C90A9C083C23C4B8A4E5B80F8360CC
{
  PIO_SECURITY_CONTEXT SecurityContext;
  ULONG Options;
  USHORT Reserved;
  USHORT ShareAccess;
  PMAILSLOT_CREATE_PARAMETERS Parameters;
};

/* 243 */
struct $68E2F6196955EC3B4CFCC1EE6DDF53F5
{
  ULONG Length;
  ULONG Key;
  LARGE_INTEGER ByteOffset;
};

/* 244 */
struct $2B9434281F0CBE2AB4A41C0EA7E8BDD4
{
  ULONG Length;
  PSTRING FileName;
  FILE_INFORMATION_CLASS FileInformationClass;
  ULONG FileIndex;
};

/* 245 */
struct $DDD078F074EAA44FB837A5233FF70D22
{
  ULONG Length;
  ULONG CompletionFilter;
};

/* 246 */
struct $17460CC1840F501945EE51DD9D4923EE
{
  ULONG Length;
  FILE_INFORMATION_CLASS FileInformationClass;
};

/* 250 */
struct $1A8BA61F1D09E05A4781139DBEBC380A
{
  BOOLEAN ReplaceIfExists;
  BOOLEAN AdvanceOnly;
};

/* 249 */
union $4FF89511AFD5480B0F0FF81C5374B76A
{
  $1A8BA61F1D09E05A4781139DBEBC380A _anon_0;
  ULONG ClusterCount;
};

/* 247 */
struct $BE4DD2320A3DCB768C3E66D58A7CA0CC
{
  ULONG Length;
  FILE_INFORMATION_CLASS FileInformationClass;
  PFILE_OBJECT FileObject;
  $4FF89511AFD5480B0F0FF81C5374B76A _anon_0;
};

/* 251 */
struct $CB3B179899C412A7773FF06B2C2445B1
{
  ULONG Length;
  PVOID EaList;
  ULONG EaListLength;
  ULONG EaIndex;
};

/* 252 */
struct $10D596B3A90C6278AE589BA3E3E47F2F
{
  ULONG Length;
};

/* 253 */
struct $A4345BDB2DD4B73F12C0EF2EB2390245
{
  ULONG Length;
  FS_INFORMATION_CLASS FsInformationClass;
};

/* 254 */
struct $43A8510C7E5A3709AC7B423CD4B272A7
{
  ULONG OutputBufferLength;
  ULONG InputBufferLength;
  ULONG FsControlCode;
  PVOID Type3InputBuffer;
};

/* 255 */
struct $A5222BDD5BCAA7D680392B9D81FCF964
{
  PLARGE_INTEGER Length;
  ULONG Key;
  LARGE_INTEGER ByteOffset;
};

/* 256 */
struct $12B6F5E8ACC034CF558B2C46B9CF4799
{
  ULONG OutputBufferLength;
  ULONG InputBufferLength;
  ULONG IoControlCode;
  PVOID Type3InputBuffer;
};

/* 257 */
struct $9FDDD92063EABD115C1AA739AD29CD02
{
  SECURITY_INFORMATION SecurityInformation;
  ULONG Length;
};

/* 258 */
struct $DE8D10874509B6172BCF5D8E9DBB46D9
{
  SECURITY_INFORMATION SecurityInformation;
  PSECURITY_DESCRIPTOR SecurityDescriptor;
};

/* 259 */
struct $3E7E129EEDA76C77CB2D025F2EFC26FA
{
  PVPB Vpb;
  PDEVICE_OBJECT DeviceObject;
};

/* 260 */
struct $6CA38E5C665B4F68077D3855A5DA1CB2
{
  _SCSI_REQUEST_BLOCK *Srb;
};

/* 262 */
struct $BB87EA7D19E7081F6736576F02EC1BE4
{
  PVOID Argument1;
  PVOID Argument2;
  PVOID Argument3;
  PVOID Argument4;
};

/* 226 */
union $311C31069FF17F585A0C5060FB2403B8
{
  $9DDB513460F68FC42262F38A441EA583 Create;
  $9B21CDD614EF30720869F2D91C0C93D4 CreatePipe;
  $B5C90A9C083C23C4B8A4E5B80F8360CC CreateMailslot;
  $68E2F6196955EC3B4CFCC1EE6DDF53F5 Read;
  $68E2F6196955EC3B4CFCC1EE6DDF53F5 Write;
  $2B9434281F0CBE2AB4A41C0EA7E8BDD4 QueryDirectory;
  $DDD078F074EAA44FB837A5233FF70D22 NotifyDirectory;
  $17460CC1840F501945EE51DD9D4923EE QueryFile;
  $BE4DD2320A3DCB768C3E66D58A7CA0CC SetFile;
  $CB3B179899C412A7773FF06B2C2445B1 QueryEa;
  $10D596B3A90C6278AE589BA3E3E47F2F SetEa;
  $A4345BDB2DD4B73F12C0EF2EB2390245 QueryVolume;
  $A4345BDB2DD4B73F12C0EF2EB2390245 SetVolume;
  $43A8510C7E5A3709AC7B423CD4B272A7 FileSystemControl;
  $A5222BDD5BCAA7D680392B9D81FCF964 LockControl;
  $12B6F5E8ACC034CF558B2C46B9CF4799 DeviceIoControl;
  $9FDDD92063EABD115C1AA739AD29CD02 QuerySecurity;
  $DE8D10874509B6172BCF5D8E9DBB46D9 SetSecurity;
  $3E7E129EEDA76C77CB2D025F2EFC26FA MountVolume;
  $3E7E129EEDA76C77CB2D025F2EFC26FA VerifyVolume;
  $6CA38E5C665B4F68077D3855A5DA1CB2 Scsi;
  $BB87EA7D19E7081F6736576F02EC1BE4 Others;
};

/* 264 */
typedef _IRP *PIRP;

/* 263 */
typedef NTSTATUS (*PIO_COMPLETION_ROUTINE)(PDEVICE_OBJECT, PIRP, PVOID);

/* 225 */
struct __attribute__((packed)) __attribute__((aligned(4))) _IO_STACK_LOCATION
{
  UCHAR MajorFunction;
  UCHAR MinorFunction;
  UCHAR Flags;
  UCHAR Control;
  $311C31069FF17F585A0C5060FB2403B8 Parameters;
  PDEVICE_OBJECT DeviceObject;
  PFILE_OBJECT FileObject;
  PIO_COMPLETION_ROUTINE CompletionRoutine;
  PVOID Context;
};

/* 193 */
typedef _SECTION_OBJECT_POINTERS SECTION_OBJECT_POINTERS;

/* 192 */
typedef SECTION_OBJECT_POINTERS *PSECTION_OBJECT_POINTERS;

/* 195 */
typedef _IO_COMPLETION_CONTEXT *PIO_COMPLETION_CONTEXT;

/* 189 */
struct _FILE_OBJECT
{
  CSHORT Type;
  CSHORT Size;
  PDEVICE_OBJECT DeviceObject;
  PVPB Vpb;
  PVOID FsContext;
  PVOID FsContext2;
  PSECTION_OBJECT_POINTERS SectionObjectPointer;
  PVOID PrivateCacheMap;
  NTSTATUS FinalStatus;
  _FILE_OBJECT *RelatedFileObject;
  BOOLEAN LockOperation;
  BOOLEAN DeletePending;
  BOOLEAN ReadAccess;
  BOOLEAN WriteAccess;
  BOOLEAN DeleteAccess;
  BOOLEAN SharedRead;
  BOOLEAN SharedWrite;
  BOOLEAN SharedDelete;
  ULONG Flags;
  UNICODE_STRING FileName;
  LARGE_INTEGER CurrentByteOffset;
  ULONG Waiters;
  ULONG Busy;
  PVOID LastLock;
  KEVENT Lock;
  KEVENT Event;
  PIO_COMPLETION_CONTEXT CompletionContext;
};

/* 230 */
typedef _ACCESS_STATE *PACCESS_STATE;

/* 229 */
struct _IO_SECURITY_CONTEXT
{
  PSECURITY_QUALITY_OF_SERVICE SecurityQos;
  PACCESS_STATE AccessState;
  ACCESS_MASK DesiredAccess;
};

/* 239 */
struct __attribute__((aligned(8))) _NAMED_PIPE_CREATE_PARAMETERS
{
  ULONG NamedPipeType;
  ULONG ReadMode;
  ULONG CompletionMode;
  ULONG MaximumInstances;
  ULONG InboundQuota;
  ULONG OutboundQuota;
  LARGE_INTEGER DefaultTimeout;
  BOOLEAN TimeoutSpecified;
};

/* 242 */
struct __attribute__((aligned(8))) _MAILSLOT_CREATE_PARAMETERS
{
  ULONG MailslotQuota;
  ULONG MaximumMessageSize;
  LARGE_INTEGER ReadTimeout;
  BOOLEAN TimeoutSpecified;
};

/* 261 */
struct _SCSI_REQUEST_BLOCK
{
  USHORT Length;
  UCHAR Function;
  UCHAR SrbStatus;
  UCHAR ScsiStatus;
  UCHAR PathId;
  UCHAR TargetId;
  UCHAR Lun;
  UCHAR QueueTag;
  UCHAR QueueAction;
  UCHAR CdbLength;
  UCHAR SenseInfoBufferLength;
  ULONG SrbFlags;
  ULONG DataTransferLength;
  ULONG TimeOutValue;
  PVOID DataBuffer;
  PVOID SenseInfoBuffer;
  _SCSI_REQUEST_BLOCK *NextSrb;
  PVOID OriginalRequest;
  PVOID SrbExtension;
  ULONG QueueSortKey;
  UCHAR Cdb[16];
};

/* 194 */
struct _SECTION_OBJECT_POINTERS
{
  PVOID DataSectionObject;
  PVOID SharedCacheMap;
  PVOID ImageSectionObject;
};

/* 196 */
struct _IO_COMPLETION_CONTEXT
{
  PVOID Port;
  ULONG Key;
};

/* 233 */
struct _SECURITY_SUBJECT_CONTEXT
{
  PACCESS_TOKEN ClientToken;
  SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
  PACCESS_TOKEN PrimaryToken;
  PVOID ProcessAuditId;
};

/* 232 */
typedef _SECURITY_SUBJECT_CONTEXT SECURITY_SUBJECT_CONTEXT;

/* 236 */
struct _INITIAL_PRIVILEGE_SET
{
  ULONG PrivilegeCount;
  ULONG Control;
  LUID_AND_ATTRIBUTES Privilege[3];
};

/* 235 */
typedef _INITIAL_PRIVILEGE_SET INITIAL_PRIVILEGE_SET;

/* 234 */
union $D9F023AE124314346D8B719B69278EA9
{
  INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
  PRIVILEGE_SET PrivilegeSet;
};

/* 231 */
struct __attribute__((aligned(8))) _ACCESS_STATE
{
  LUID OperationID;
  BOOLEAN SecurityEvaluated;
  BOOLEAN GenerateAudit;
  BOOLEAN GenerateOnClose;
  BOOLEAN PrivilegesAllocated;
  ULONG Flags;
  ACCESS_MASK RemainingDesiredAccess;
  ACCESS_MASK PreviouslyGrantedAccess;
  ACCESS_MASK OriginalDesiredAccess;
  SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
  PSECURITY_DESCRIPTOR SecurityDescriptor;
  PPRIVILEGE_SET PrivilegesUsed;
  $D9F023AE124314346D8B719B69278EA9 Privileges;
  BOOLEAN AuditPrivileges;
  UNICODE_STRING ObjectName;
  UNICODE_STRING ObjectTypeName;
};

/* 287 */
typedef BOOLEAN (*PTESTFCN)(void);

/* 288 */
typedef _KPRCB *PKPRCB;

/* 289 */
typedef ULONG ARC_STATUS;

/* 290 */
enum _CONFIGURATION_CLASS : __int32
{
  SystemClass = 0x0,
  ProcessorClass = 0x1,
  CacheClass = 0x2,
  AdapterClass = 0x3,
  ControllerClass = 0x4,
  PeripheralClass = 0x5,
  MemoryClass = 0x6,
  MaximumClass = 0x7,
};

/* 291 */
typedef _CONFIGURATION_CLASS CONFIGURATION_CLASS;

/* 292 */
enum _CONFIGURATION_TYPE : __int32
{
  ArcSystem = 0x0,
  CentralProcessor = 0x1,
  FloatingPointProcessor = 0x2,
  PrimaryIcache = 0x3,
  PrimaryDcache = 0x4,
  SecondaryIcache = 0x5,
  SecondaryDcache = 0x6,
  SecondaryCache = 0x7,
  EisaAdapter = 0x8,
  TcAdapter = 0x9,
  ScsiAdapter = 0xA,
  DtiAdapter = 0xB,
  MultiFunctionAdapter = 0xC,
  DiskController = 0xD,
  TapeController = 0xE,
  CdromController = 0xF,
  WormController = 0x10,
  SerialController = 0x11,
  NetworkController = 0x12,
  DisplayController = 0x13,
  ParallelController = 0x14,
  PointerController = 0x15,
  KeyboardController = 0x16,
  AudioController = 0x17,
  OtherController = 0x18,
  DiskPeripheral = 0x19,
  FloppyDiskPeripheral = 0x1A,
  TapePeripheral = 0x1B,
  ModemPeripheral = 0x1C,
  MonitorPeripheral = 0x1D,
  PrinterPeripheral = 0x1E,
  PointerPeripheral = 0x1F,
  KeyboardPeripheral = 0x20,
  TerminalPeripheral = 0x21,
  OtherPeripheral = 0x22,
  LinePeripheral = 0x23,
  NetworkPeripheral = 0x24,
  SystemMemory = 0x25,
  MaximumType = 0x26,
};

/* 293 */
typedef _CONFIGURATION_TYPE CONFIGURATION_TYPE;

/* 294 */
struct _CONFIGURATION_COMPONENT
{
  CONFIGURATION_CLASS Class;
  CONFIGURATION_TYPE Type;
  DEVICE_FLAGS Flags;
  USHORT Version;
  USHORT Revision;
  ULONG Key;
  ULONG AffinityMask;
  ULONG ConfigurationDataLength;
  ULONG IdentifierLength;
  PCHAR Identifier;
};

/* 295 */
typedef _CONFIGURATION_COMPONENT CONFIGURATION_COMPONENT;

/* 296 */
enum _MEMORY_TYPE : __int32
{
  MemoryExceptionBlock = 0x0,
  MemorySystemBlock = 0x1,
  MemoryFree = 0x2,
  MemoryBad = 0x3,
  MemoryLoadedProgram = 0x4,
  MemoryFirmwareTemporary = 0x5,
  MemoryFirmwarePermanent = 0x6,
  MemoryFreeContiguous = 0x7,
  MemorySpecialMemory = 0x8,
  MemoryMaximum = 0x9,
};

/* 297 */
typedef _MEMORY_TYPE MEMORY_TYPE;

/* 298 */
struct _MEMORY_DESCRIPTOR
{
  MEMORY_TYPE MemoryType;
  ULONG BasePage;
  ULONG PageCount;
};

/* 299 */
typedef _MEMORY_DESCRIPTOR MEMORY_DESCRIPTOR;

/* 300 */
enum _OPEN_MODE : __int32
{
  ArcOpenReadOnly = 0x0,
  ArcOpenWriteOnly = 0x1,
  ArcOpenReadWrite = 0x2,
  ArcCreateWriteOnly = 0x3,
  ArcCreateReadWrite = 0x4,
  ArcSupersedeWriteOnly = 0x5,
  ArcSupersedeReadWrite = 0x6,
  ArcOpenDirectory = 0x7,
  ArcCreateDirectory = 0x8,
  ArcOpenMaximumMode = 0x9,
};

/* 301 */
typedef _OPEN_MODE OPEN_MODE;

/* 302 */
struct __attribute__((aligned(8))) _FILE_INFORMATION
{
  LARGE_INTEGER StartingAddress;
  LARGE_INTEGER EndingAddress;
  LARGE_INTEGER CurrentPosition;
  CONFIGURATION_TYPE Type;
  ULONG FileNameLength;
  UCHAR Attributes;
  CHAR FileName[32];
};

/* 303 */
typedef _FILE_INFORMATION *PFILE_INFORMATION;

/* 304 */
enum _SEEK_MODE : __int32
{
  SeekAbsolute = 0x0,
  SeekRelative = 0x1,
  SeekMaximum = 0x2,
};

/* 305 */
typedef _SEEK_MODE SEEK_MODE;

/* 306 */
enum _MOUNT_OPERATION : __int32
{
  MountLoadMedia = 0x0,
  MountUnloadMedia = 0x1,
  MountMaximum = 0x2,
};

/* 307 */
typedef _MOUNT_OPERATION MOUNT_OPERATION;

/* 308 */
struct __attribute__((aligned(4))) _DIRECTORY_ENTRY
{
  ULONG FileNameLength;
  UCHAR FileAttribute;
  CHAR FileName[32];
};

/* 309 */
typedef _DIRECTORY_ENTRY *PDIRECTORY_ENTRY;

/* 310 */
typedef ARC_STATUS (*PARC_CLOSE_ROUTINE)(ULONG);

/* 311 */
typedef ARC_STATUS (*PARC_MOUNT_ROUTINE)(PCHAR, MOUNT_OPERATION);

/* 312 */
typedef ARC_STATUS (*PARC_OPEN_ROUTINE)(PCHAR, OPEN_MODE, PULONG);

/* 313 */
typedef ARC_STATUS (*PARC_READ_ROUTINE)(ULONG, PVOID, ULONG, PULONG);

/* 314 */
typedef ARC_STATUS (*PARC_READ_STATUS_ROUTINE)(ULONG);

/* 315 */
typedef ARC_STATUS (*PARC_SEEK_ROUTINE)(ULONG, PLARGE_INTEGER, SEEK_MODE);

/* 316 */
typedef ARC_STATUS (*PARC_WRITE_ROUTINE)(ULONG, PVOID, ULONG, PULONG);

/* 317 */
typedef ARC_STATUS (*PARC_GET_FILE_INFO_ROUTINE)(ULONG, PFILE_INFORMATION);

/* 318 */
typedef ARC_STATUS (*PARC_SET_FILE_INFO_ROUTINE)(ULONG, ULONG, ULONG);

/* 319 */
typedef ARC_STATUS (*PARC_GET_DIRECTORY_ENTRY_ROUTINE)(ULONG, PDIRECTORY_ENTRY, ULONG, PULONG);

/* 320 */
struct _CONFIGURATION_COMPONENT_DATA
{
  _CONFIGURATION_COMPONENT_DATA *Parent;
  _CONFIGURATION_COMPONENT_DATA *Child;
  _CONFIGURATION_COMPONENT_DATA *Sibling;
  CONFIGURATION_COMPONENT ComponentEntry;
  PVOID ConfigurationData;
};

/* 321 */
typedef _CONFIGURATION_COMPONENT_DATA *PCONFIGURATION_COMPONENT_DATA;

/* 322 */
struct _NLS_DATA_BLOCK
{
  PVOID AnsiCodePageData;
  PVOID OemCodePageData;
  PVOID UnicodeCaseTableData;
};

/* 323 */
typedef _NLS_DATA_BLOCK *PNLS_DATA_BLOCK;

/* 324 */
struct _ARC_DISK_INFORMATION
{
  LIST_ENTRY DiskSignatures;
};

/* 325 */
typedef _ARC_DISK_INFORMATION *PARC_DISK_INFORMATION;

/* 326 */
struct _I386_LOADER_BLOCK
{
  ULONG PlaceHolder;
};

/* 327 */
typedef _I386_LOADER_BLOCK I386_LOADER_BLOCK;

/* 328 */
struct _MIPS_LOADER_BLOCK
{
  ULONG InterruptStack;
  ULONG FirstLevelDcacheSize;
  ULONG FirstLevelDcacheFillSize;
  ULONG FirstLevelIcacheSize;
  ULONG FirstLevelIcacheFillSize;
  ULONG GpBase;
  ULONG PanicStack;
  ULONG PcrPage;
  ULONG PdrPage;
  ULONG SecondLevelDcacheSize;
  ULONG SecondLevelDcacheFillSize;
  ULONG SecondLevelIcacheSize;
  ULONG SecondLevelIcacheFillSize;
  ULONG PcrPage2;
};

/* 329 */
typedef _MIPS_LOADER_BLOCK MIPS_LOADER_BLOCK;

/* 330 */
struct _PPC_LOADER_BLOCK
{
  ULONG PlaceHolder;
};

/* 331 */
typedef _PPC_LOADER_BLOCK PPC_LOADER_BLOCK;

/* 332 */
struct _ALPHA_LOADER_BLOCK
{
  ULONG PlaceHolder;
};

/* 333 */
typedef _ALPHA_LOADER_BLOCK ALPHA_LOADER_BLOCK;

/* 334 */
union $A916CED464D4D4C50F7D0564A4B9F2FF
{
  I386_LOADER_BLOCK I386;
  MIPS_LOADER_BLOCK Mips;
  ALPHA_LOADER_BLOCK Alpha;
  PPC_LOADER_BLOCK Ppc;
};

/* 336 */
struct _SETUP_LOADER_BLOCK;

/* 335 */
struct _LOADER_PARAMETER_BLOCK
{
  LIST_ENTRY LoadOrderListHead;
  LIST_ENTRY MemoryDescriptorListHead;
  LIST_ENTRY BootDriverListHead;
  ULONG KernelStack;
  ULONG Prcb;
  ULONG Process;
  ULONG Thread;
  ULONG RegistryLength;
  PVOID RegistryBase;
  PCONFIGURATION_COMPONENT_DATA ConfigurationRoot;
  PCHAR ArcBootDeviceName;
  PCHAR ArcHalDeviceName;
  PCHAR NtBootPathName;
  PCHAR NtHalPathName;
  PCHAR LoadOptions;
  PNLS_DATA_BLOCK NlsData;
  PARC_DISK_INFORMATION ArcDiskInformation;
  PVOID OemFontFile;
  _SETUP_LOADER_BLOCK *SetupLoaderBlock;
  ULONG Spare1;
  $A916CED464D4D4C50F7D0564A4B9F2FF u;
};

/* 337 */
typedef _LOADER_PARAMETER_BLOCK *PLOADER_PARAMETER_BLOCK;

/* 338 */
struct _KTHREAD_SWITCH_COUNTERS
{
  ULONG FindAny;
  ULONG FindLast;
  ULONG IdleAny;
  ULONG IdleCurrent;
  ULONG IdleLast;
  ULONG PreemptAny;
  ULONG PreemptCurrent;
  ULONG PreemptLast;
  ULONG SwitchToIdle;
};

/* 339 */
typedef _KTHREAD_SWITCH_COUNTERS KTHREAD_SWITCH_COUNTERS;

/* 340 */
struct _KQUEUE
{
  DISPATCHER_HEADER Header;
  LIST_ENTRY EntryListHead;
  ULONG CurrentCount;
  ULONG MaximumCount;
  LIST_ENTRY ThreadListHead;
};

/* 341 */
typedef _KQUEUE KQUEUE;

/* 342 */
typedef KSEMAPHORE *PKSEMAPHORE;

/* 343 */
struct _DEBUG_PARAMETERS
{
  ULONG CommunicationPort;
  ULONG BaudRate;
};

/* 344 */
typedef _DEBUG_PARAMETERS DEBUG_PARAMETERS;

/* 345 */
enum _POOL_TYPE : __int32
{
  NonPagedPool = 0x0,
  PagedPool = 0x1,
  NonPagedPoolMustSucceed = 0x2,
  DontUseThisType = 0x3,
  NonPagedPoolCacheAligned = 0x4,
  PagedPoolCacheAligned = 0x5,
  NonPagedPoolCacheAlignedMustS = 0x6,
  MaxPoolType = 0x7,
};

/* 346 */
typedef _POOL_TYPE POOL_TYPE;

/* 347 */
typedef void (*PWORKER_THREAD_ROUTINE)(PVOID);

/* 348 */
struct _WORK_QUEUE_ITEM
{
  LIST_ENTRY List;
  PWORKER_THREAD_ROUTINE WorkerRoutine;
  PVOID Parameter;
};

/* 349 */
typedef _WORK_QUEUE_ITEM WORK_QUEUE_ITEM;

/* 350 */
typedef ULONG ERESOURCE_THREAD;

/* 351 */
struct _OWNER_ENTRY
{
  ERESOURCE_THREAD OwnerThread;
  SHORT OwnerCount;
  USHORT TableSize;
};

/* 352 */
typedef _OWNER_ENTRY OWNER_ENTRY;

/* 353 */
typedef _OWNER_ENTRY *POWNER_ENTRY;

/* 354 */
struct _ERESOURCE
{
  LIST_ENTRY SystemResourcesList;
  POWNER_ENTRY OwnerTable;
  SHORT ActiveCount;
  USHORT Flag;
  PKSEMAPHORE SharedWaiters;
  PKEVENT ExclusiveWaiters;
  OWNER_ENTRY OwnerThreads[2];
  ULONG ContentionCount;
  USHORT NumberOfSharedWaiters;
  USHORT NumberOfExclusiveWaiters;
  PVOID Address;
  KSPIN_LOCK SpinLock;
};

/* 355 */
typedef _ERESOURCE ERESOURCE;

/* 356 */
enum _SECURITY_OPERATION_CODE : __int32
{
  SetSecurityDescriptor = 0x0,
  QuerySecurityDescriptor = 0x1,
  DeleteSecurityDescriptor = 0x2,
  AssignSecurityDescriptor = 0x3,
};

/* 357 */
typedef _SECURITY_OPERATION_CODE SECURITY_OPERATION_CODE;

/* 358 */
struct _SE_AUDITING_STATE
{
  BOOLEAN AuditOnSuccess;
  BOOLEAN AuditOnFailure;
};

/* 359 */
typedef _SE_AUDITING_STATE SE_AUDITING_STATE;

/* 360 */
struct __attribute__((aligned(8))) _SE_EXPORTS
{
  LUID SeCreateTokenPrivilege;
  LUID SeAssignPrimaryTokenPrivilege;
  LUID SeLockMemoryPrivilege;
  LUID SeIncreaseQuotaPrivilege;
  LUID SeUnsolicitedInputPrivilege;
  LUID SeTcbPrivilege;
  LUID SeSecurityPrivilege;
  LUID SeTakeOwnershipPrivilege;
  LUID SeLoadDriverPrivilege;
  LUID SeCreatePagefilePrivilege;
  LUID SeIncreaseBasePriorityPrivilege;
  LUID SeSystemProfilePrivilege;
  LUID SeSystemtimePrivilege;
  LUID SeProfileSingleProcessPrivilege;
  LUID SeCreatePermanentPrivilege;
  LUID SeBackupPrivilege;
  LUID SeRestorePrivilege;
  LUID SeShutdownPrivilege;
  LUID SeDebugPrivilege;
  LUID SeAuditPrivilege;
  LUID SeSystemEnvironmentPrivilege;
  LUID SeChangeNotifyPrivilege;
  LUID SeRemoteShutdownPrivilege;
  PSID SeNullSid;
  PSID SeWorldSid;
  PSID SeLocalSid;
  PSID SeCreatorOwnerSid;
  PSID SeCreatorGroupSid;
  PSID SeNtAuthoritySid;
  PSID SeDialupSid;
  PSID SeNetworkSid;
  PSID SeBatchSid;
  PSID SeInteractiveSid;
  PSID SeLocalSystemSid;
  PSID SeAliasAdminsSid;
  PSID SeAliasUsersSid;
  PSID SeAliasGuestsSid;
  PSID SeAliasPowerUsersSid;
  PSID SeAliasAccountOpsSid;
  PSID SeAliasSystemOpsSid;
  PSID SeAliasPrintOpsSid;
  PSID SeAliasBackupOpsSid;
};

/* 361 */
typedef _SE_EXPORTS *PSE_EXPORTS;

/* 366 */
typedef _OBJECT_DUMP_CONTROL *POB_DUMP_CONTROL;

/* 365 */
typedef void (*OB_DUMP_METHOD)(PVOID, POB_DUMP_CONTROL);

/* 370 */
enum _OB_OPEN_REASON : __int32
{
  ObCreateHandle = 0x0,
  ObOpenHandle = 0x1,
  ObDuplicateHandle = 0x2,
  ObInheritHandle = 0x3,
  ObMaxOpenReason = 0x4,
};

/* 369 */
typedef _OB_OPEN_REASON OB_OPEN_REASON;

/* 368 */
typedef void (*OB_OPEN_METHOD)(OB_OPEN_REASON, PEPROCESS, PVOID, ACCESS_MASK, ULONG);

/* 371 */
typedef void (*OB_CLOSE_METHOD)(PEPROCESS, PVOID, ACCESS_MASK, ULONG, ULONG);

/* 372 */
typedef void (*OB_DELETE_METHOD)(PVOID);

/* 373 */
typedef NTSTATUS (*OB_PARSE_METHOD)(PVOID, PVOID, PACCESS_STATE, KPROCESSOR_MODE, ULONG, PUNICODE_STRING, PUNICODE_STRING, PVOID, PSECURITY_QUALITY_OF_SERVICE, PVOID *);

/* 374 */
typedef NTSTATUS (*OB_SECURITY_METHOD)(PVOID, SECURITY_OPERATION_CODE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PULONG, PSECURITY_DESCRIPTOR *, POOL_TYPE, PGENERIC_MAPPING);

/* 375 */
typedef NTSTATUS (*OB_QUERYNAME_METHOD)(PVOID, BOOLEAN, POBJECT_NAME_INFORMATION, ULONG, PULONG);

/* 364 */
struct _OBJECT_TYPE_INITIALIZER
{
  USHORT Length;
  BOOLEAN UseDefaultObject;
  BOOLEAN Reserved;
  ULONG InvalidAttributes;
  GENERIC_MAPPING GenericMapping;
  ULONG ValidAccessMask;
  BOOLEAN SecurityRequired;
  BOOLEAN MaintainHandleCount;
  BOOLEAN MaintainTypeList;
  POOL_TYPE PoolType;
  ULONG DefaultPagedPoolCharge;
  ULONG DefaultNonPagedPoolCharge;
  OB_DUMP_METHOD DumpProcedure;
  OB_OPEN_METHOD OpenProcedure;
  OB_CLOSE_METHOD CloseProcedure;
  OB_DELETE_METHOD DeleteProcedure;
  OB_PARSE_METHOD ParseProcedure;
  OB_SECURITY_METHOD SecurityProcedure;
  OB_QUERYNAME_METHOD QueryNameProcedure;
};

/* 363 */
typedef _OBJECT_TYPE_INITIALIZER OBJECT_TYPE_INITIALIZER;

/* 362 */
struct _OBJECT_TYPE
{
  ERESOURCE Mutex;
  LIST_ENTRY TypeList;
  UNICODE_STRING Name;
  PVOID DefaultObject;
  ULONG Index;
  ULONG TotalNumberOfObjects;
  ULONG TotalNumberOfHandles;
  ULONG HighWaterNumberOfObjects;
  ULONG HighWaterNumberOfHandles;
  OBJECT_TYPE_INITIALIZER TypeInfo;
  ULONG Key;
};

/* 367 */
struct _OBJECT_DUMP_CONTROL
{
  PVOID Stream;
  ULONG Detail;
};

/* 376 */
typedef _OBJECT_TYPE *POBJECT_TYPE;

/* 377 */
struct _PHYSICAL_MEMORY_RUN
{
  ULONG BasePage;
  ULONG PageCount;
};

/* 378 */
typedef _PHYSICAL_MEMORY_RUN PHYSICAL_MEMORY_RUN;

/* 379 */
struct _PHYSICAL_MEMORY_DESCRIPTOR
{
  ULONG NumberOfRuns;
  ULONG NumberOfPages;
  PHYSICAL_MEMORY_RUN Run[1];
};

/* 380 */
typedef _PHYSICAL_MEMORY_DESCRIPTOR *PPHYSICAL_MEMORY_DESCRIPTOR;

/* 381 */
struct _MMINFO_COUNTERS
{
  ULONG PageFaultCount;
  ULONG CopyOnWriteCount;
  ULONG TransitionCount;
  ULONG CacheTransitionCount;
  ULONG DemandZeroCount;
  ULONG PageReadCount;
  ULONG PageReadIoCount;
  ULONG CacheReadCount;
  ULONG CacheIoCount;
  ULONG DirtyPagesWriteCount;
  ULONG DirtyWriteIoCount;
  ULONG MappedPagesWriteCount;
  ULONG MappedWriteIoCount;
};

/* 382 */
typedef _MMINFO_COUNTERS MMINFO_COUNTERS;

/* 383 */
enum _MMLISTS : __int32
{
  ZeroedPageList = 0x0,
  FreePageList = 0x1,
  StandbyPageList = 0x2,
  ModifiedPageList = 0x3,
  ModifiedNoWritePageList = 0x4,
  BadPageList = 0x5,
  ActiveAndValid = 0x6,
  TransitionPage = 0x7,
};

/* 384 */
typedef _MMLISTS MMLISTS;

/* 385 */
struct _MMPFNLIST
{
  ULONG Total;
  MMLISTS ListName;
  ULONG Flink;
  ULONG Blink;
};

/* 386 */
typedef _MMPFNLIST MMPFNLIST;

/* 387 */
typedef LARGE_INTEGER LSN;

/* 388 */
typedef ULONG LBO;

/* 389 */
typedef USHORT FAT_ENTRY;

/* 390 */
struct _FAT_TIME
{
  unsigned __int16 DoubleSeconds : 5;
  unsigned __int16 Minute : 6;
  unsigned __int16 Hour : 5;
};

/* 391 */
typedef _FAT_TIME FAT_TIME;

/* 392 */
struct _FAT_DATE
{
  unsigned __int16 Day : 5;
  unsigned __int16 Month : 4;
  unsigned __int16 Year : 7;
};

/* 393 */
typedef _FAT_DATE FAT_DATE;

/* 394 */
struct _FAT_TIME_STAMP
{
  FAT_TIME Time;
  FAT_DATE Date;
};

/* 395 */
typedef _FAT_TIME_STAMP FAT_TIME_STAMP;

/* 396 */
typedef UCHAR FAT8DOT3[11];

/* 397 */
struct _PACKED_DIRENT
{
  FAT8DOT3 FileName;
  UCHAR Attributes;
  UCHAR NtByte;
  UCHAR CreationMSec;
  FAT_TIME_STAMP CreationTime;
  FAT_DATE LastAccessDate;
  USHORT ExtendedAttributes;
  FAT_TIME_STAMP LastWriteTime;
  FAT_ENTRY FirstClusterOfFile;
  ULONG FileSize;
};

/* 398 */
typedef _PACKED_DIRENT PACKED_DIRENT;

/* 399 */
typedef PACKED_DIRENT DIRENT;

/* 400 */
struct _FAT_FILE_CONTEXT
{
  LBO DirentLbo;
  DIRENT Dirent;
};

/* 401 */
typedef _FAT_FILE_CONTEXT FAT_FILE_CONTEXT;

/* 402 */
struct __attribute__((aligned(4))) _CDFS_FILE_CONTEXT
{
  ULONG DiskOffset;
  ULONG FileSize;
  BOOLEAN IsDirectory;
};

/* 403 */
typedef _CDFS_FILE_CONTEXT CDFS_FILE_CONTEXT;

/* 404 */
typedef ARC_STATUS (*PRENAME_ROUTINE)(ULONG, PCHAR);

/* 405 */
struct _BL_DEVICE_ENTRY_TABLE
{
  PARC_CLOSE_ROUTINE Close;
  PARC_MOUNT_ROUTINE Mount;
  PARC_OPEN_ROUTINE Open;
  PARC_READ_ROUTINE Read;
  PARC_READ_STATUS_ROUTINE GetReadStatus;
  PARC_SEEK_ROUTINE Seek;
  PARC_WRITE_ROUTINE Write;
  PARC_GET_FILE_INFO_ROUTINE GetFileInformation;
  PARC_SET_FILE_INFO_ROUTINE SetFileInformation;
  PRENAME_ROUTINE Rename;
  PARC_GET_DIRECTORY_ENTRY_ROUTINE GetDirectoryEntry;
};

/* 406 */
typedef _BL_DEVICE_ENTRY_TABLE *PBL_DEVICE_ENTRY_TABLE;

/* 407 */
struct _PARTITION_CONTEXT
{
  LARGE_INTEGER PartitionLength;
  ULONG StartingSector;
  ULONG EndingSector;
  UCHAR DiskId;
  UCHAR DeviceUnit;
  UCHAR TargetId;
  UCHAR PathId;
  ULONG SectorShift;
  ULONG Size;
  _DEVICE_OBJECT *PortDeviceObject;
};

/* 408 */
typedef _PARTITION_CONTEXT PARTITION_CONTEXT;

/* 409 */
struct _SERIAL_CONTEXT
{
  ULONG PortBase;
  ULONG PortNumber;
};

/* 410 */
typedef _SERIAL_CONTEXT SERIAL_CONTEXT;

/* 411 */
struct _DRIVE_CONTEXT
{
  ULONG Drive;
  ULONG Cylinders;
  ULONG Heads;
  ULONG Sectors;
};

/* 412 */
typedef _DRIVE_CONTEXT DRIVE_CONTEXT;

/* 413 */
struct __attribute__((aligned(4))) _FLOPPY_CONTEXT
{
  ULONG DriveType;
  ULONG SectorsPerTrack;
  UCHAR DiskId;
};

/* 414 */
typedef _FLOPPY_CONTEXT FLOPPY_CONTEXT;

/* 415 */
struct _KEYBOARD_CONTEXT
{
  BOOLEAN ScanCodes;
};

/* 416 */
typedef _KEYBOARD_CONTEXT KEYBOARD_CONTEXT;

/* 417 */
struct _CONSOLE_CONTEXT
{
  ULONG ConsoleNumber;
};

/* 418 */
typedef _CONSOLE_CONTEXT CONSOLE_CONTEXT;

/* 419 */
struct _OMF_HDR
{
  UCHAR ID[4];
  USHORT FwSize;
  UCHAR ReservedZ1[2];
  UCHAR ProductId[7];
  UCHAR ReservedZ2;
  ULONG FolderCount;
  UCHAR EisaVersion;
  UCHAR EisaRevision;
  UCHAR FwVersion;
  UCHAR FwRevision;
  UCHAR ChecksumByte;
  UCHAR ReservedA[3];
  ULONG FolderDirectoryLink;
};

/* 420 */
typedef _OMF_HDR OMF_HDR;

/* 421 */
struct _OMF_DIR_ENT
{
  UCHAR FolderName[12];
  UCHAR Reserved[2];
  UCHAR FolderType;
  UCHAR FolderChecksumByte;
  ULONG FolderSize;
  ULONG FolderLink;
};

/* 422 */
typedef _OMF_DIR_ENT OMF_DIR_ENT;

/* 423 */
struct _OMF_HEADER_CONTEXT
{
  ULONG FileId;
  PULONG RomIndex;
  PULONG RomRead;
  OMF_HDR OmfHeader;
};

/* 424 */
typedef _OMF_HEADER_CONTEXT OMF_HEADER_CONTEXT;

/* 425 */
struct _OMF_FILE_CONTEXT
{
  OMF_DIR_ENT OmfDirEnt;
};

/* 426 */
typedef _OMF_FILE_CONTEXT OMF_FILE_CONTEXT;

/* 427 */
struct _BL_FILE_FLAGS
{
  unsigned __int32 Open : 1;
  unsigned __int32 Read : 1;
  unsigned __int32 Write : 1;
};

/* 428 */
typedef _BL_FILE_FLAGS BL_FILE_FLAGS;

/* 429 */
union __attribute__((aligned(8))) $45A00F35C569ADFDDD39580F356794EA
{
  FAT_FILE_CONTEXT FatFileContext;
  PARTITION_CONTEXT PartitionContext;
  SERIAL_CONTEXT SerialContext;
  DRIVE_CONTEXT DriveContext;
  FLOPPY_CONTEXT FloppyContext;
  KEYBOARD_CONTEXT KeyboardContext;
  CONSOLE_CONTEXT ConsoleContext;
  OMF_FILE_CONTEXT OmfFileContext;
  OMF_HEADER_CONTEXT OmfHeaderContext;
  CDFS_FILE_CONTEXT CdfsFileContext;
};

/* 430 */
struct _BL_FILE_TABLE
{
  BL_FILE_FLAGS Flags;
  ULONG DeviceId;
  LARGE_INTEGER Position;
  PVOID StructureContext;
  PBL_DEVICE_ENTRY_TABLE DeviceEntryTable;
  UCHAR FileNameLength;
  CHAR FileName[32];
  $45A00F35C569ADFDDD39580F356794EA u;
};

/* 431 */
typedef _BL_FILE_TABLE BL_FILE_TABLE;

/* 432 */
struct _FW_MEMORY_DESCRIPTOR
{
  LIST_ENTRY ListEntry;
  MEMORY_DESCRIPTOR MemoryEntry;
};

/* 433 */
typedef _FW_MEMORY_DESCRIPTOR FW_MEMORY_DESCRIPTOR;

/* 434 */
struct _DRIVER_LOOKUP_ENTRY
{
  PCHAR DevicePath;
  PBL_DEVICE_ENTRY_TABLE DispatchTable;
};

/* 435 */
typedef _DRIVER_LOOKUP_ENTRY DRIVER_LOOKUP_ENTRY;

/* 436 */
struct _OPENED_PATHNAME_ENTRY
{
  ULONG ReferenceCounter;
  CHAR DeviceName[64];
};

/* 437 */
typedef _OPENED_PATHNAME_ENTRY OPENED_PATHNAME_ENTRY;

/* 438 */
struct _CONFIGURATION_PACKET
{
  CONFIGURATION_COMPONENT Component;
  _CONFIGURATION_PACKET *Parent;
  _CONFIGURATION_PACKET *Peer;
  _CONFIGURATION_PACKET *Child;
  PVOID ConfigurationData;
};

/* 439 */
typedef _CONFIGURATION_PACKET CONFIGURATION_PACKET;

/* 440 */
struct _CONFIGURATION
{
  CONFIGURATION_PACKET Packet[40];
  UCHAR Identifier[376];
  UCHAR Data[2048];
  UCHAR EisaData[2044];
};

/* 441 */
typedef _CONFIGURATION *PCONFIGURATION;

/* 442 */
struct _CACHEERR
{
  unsigned __int32 PIDX : 3;
  unsigned __int32 SIDX : 19;
  unsigned __int32 X1 : 2;
  unsigned __int32 EI : 1;
  unsigned __int32 EB : 1;
  unsigned __int32 EE : 1;
  unsigned __int32 ES : 1;
  unsigned __int32 ET : 1;
  unsigned __int32 ED : 1;
  unsigned __int32 EC : 1;
  unsigned __int32 ER : 1;
};

/* 443 */
typedef _CACHEERR CACHEERR;

/* 444 */
enum _MODE : __int32
{
  KernelMode = 0x0,
  UserMode = 0x1,
  MaximumMode = 0x2,
};

/* 445 */
enum _FIRMWARE_ENTRY : __int32
{
  LoadRoutine = 0x0,
  InvokeRoutine = 0x1,
  ExecuteRoutine = 0x2,
  HaltRoutine = 0x3,
  PowerDownRoutine = 0x4,
  RestartRoutine = 0x5,
  RebootRoutine = 0x6,
  InteractiveModeRoutine = 0x7,
  Reserved1 = 0x8,
  GetPeerRoutine = 0x9,
  GetChildRoutine = 0xA,
  GetParentRoutine = 0xB,
  GetDataRoutine = 0xC,
  AddChildRoutine = 0xD,
  DeleteComponentRoutine = 0xE,
  GetComponentRoutine = 0xF,
  SaveConfigurationRoutine = 0x10,
  GetSystemIdRoutine = 0x11,
  MemoryRoutine = 0x12,
  Reserved2 = 0x13,
  GetTimeRoutine = 0x14,
  GetRelativeTimeRoutine = 0x15,
  GetDirectoryEntryRoutine = 0x16,
  OpenRoutine = 0x17,
  CloseRoutine = 0x18,
  ReadRoutine = 0x19,
  ReadStatusRoutine = 0x1A,
  WriteRoutine = 0x1B,
  SeekRoutine = 0x1C,
  MountRoutine = 0x1D,
  GetEnvironmentRoutine = 0x1E,
  SetEnvironmentRoutine = 0x1F,
  GetFileInformationRoutine = 0x20,
  SetFileInformationRoutine = 0x21,
  FlushAllCachesRoutine = 0x22,
  TestUnicodeCharacterRoutine = 0x23,
  GetDisplayStatusRoutine = 0x24,
  MaximumRoutine = 0x25,
};

/* 446 */
struct _DEBUG_BLOCK
{
  ULONG Signature;
  ULONG Length;
};

/* 447 */
typedef _DEBUG_BLOCK *PDEBUG_BLOCK;

/* 448 */
typedef _BOOT_STATUS *PBOOT_STATUS;

/* 449 */
typedef _RESTART_BLOCK *PRESTART_BLOCK;

/* 450 */
struct _SYSTEM_PARAMETER_BLOCK
{
  ULONG Signature;
  ULONG Length;
  USHORT Version;
  USHORT Revision;
  PRESTART_BLOCK RestartBlock;
  PDEBUG_BLOCK DebugBlock;
  PVOID GenerateExceptionVector;
  PVOID TlbMissExceptionVector;
  ULONG FirmwareVectorLength;
  PVOID *FirmwareVector;
  ULONG VendorVectorLength;
  PVOID *VendorVector;
  ULONG AdapterCount;
  ULONG Adapter0Type;
  ULONG Adapter0Length;
  PVOID *Adapter0Vector;
};

/* 451 */
typedef _SYSTEM_PARAMETER_BLOCK *PSYSTEM_PARAMETER_BLOCK;

/* 452 */
enum _KWAIT_REASON : __int32
{
  Executive = 0x0,
  FreePage = 0x1,
  PageIn = 0x2,
  PoolAllocation = 0x3,
  DelayExecution = 0x4,
  Suspended = 0x5,
  UserRequest = 0x6,
  WrExecutive = 0x7,
  WrFreePage = 0x8,
  WrPageIn = 0x9,
  WrPoolAllocation = 0xA,
  WrDelayExecution = 0xB,
  WrSuspended = 0xC,
  WrUserRequest = 0xD,
  WrEventPair = 0xE,
  WrQueue = 0xF,
  WrLpcReceive = 0x10,
  WrLpcReply = 0x11,
  WrVirtualMemory = 0x12,
  WrPageOut = 0x13,
  Spare1 = 0x14,
  Spare2 = 0x15,
  Spare3 = 0x16,
  Spare4 = 0x17,
  Spare5 = 0x18,
  Spare6 = 0x19,
  WrKernel = 0x1A,
  MaximumWaitReason = 0x1B,
};

/* 453 */
enum _WORK_QUEUE_TYPE : __int32
{
  CriticalWorkQueue = 0x0,
  DelayedWorkQueue = 0x1,
  HyperCriticalWorkQueue = 0x2,
  MaximumWorkQueue = 0x3,
};

/* 454 */
struct _DMA_REGISTER
{
  ULONG Long;
  ULONG Fill;
};

/* 455 */
typedef _DMA_REGISTER DMA_REGISTER;

/* 456 */
struct _DMA_CHANNEL
{
  DMA_REGISTER Mode;
  DMA_REGISTER Enable;
  DMA_REGISTER ByteCount;
  DMA_REGISTER Address;
};

/* 457 */
typedef _DMA_CHANNEL DMA_CHANNEL;

/* 458 */
struct _DMA_REGISTERS
{
  DMA_REGISTER Configuration;
  DMA_REGISTER RevisionLevel;
  DMA_REGISTER InvalidAddress;
  DMA_REGISTER TranslationBase;
  DMA_REGISTER TranslationLimit;
  DMA_REGISTER TranslationInvalidate;
  DMA_REGISTER CacheMaintenance;
  DMA_REGISTER RemoteFailedAddress;
  DMA_REGISTER MemoryFailedAddress;
  DMA_REGISTER PhysicalTag;
  DMA_REGISTER LogicalTag;
  DMA_REGISTER ByteMask;
  DMA_REGISTER BufferWindowLow;
  DMA_REGISTER BufferWindowHigh;
  DMA_REGISTER RemoteSpeed[16];
  DMA_REGISTER ParityDiagnosticLow;
  DMA_REGISTER ParityDiagnosticHigh;
  DMA_CHANNEL Channel[8];
  DMA_REGISTER InterruptSource;
  DMA_REGISTER Errortype;
  DMA_REGISTER RefreshRate;
  DMA_REGISTER RefreshCounter;
  DMA_REGISTER SystemSecurity;
  DMA_REGISTER InterruptInterval;
  DMA_REGISTER IntervalTimer;
  DMA_REGISTER InterruptAcknowledge;
};

/* 459 */
typedef volatile _DMA_REGISTERS *PDMA_REGISTERS;

/* 460 */
enum _VENDOR_ENTRY : __int32
{
  AllocatePoolRoutine = 0x0,
  StallExecutionRoutine = 0x1,
  PrintRoutine = 0x2,
  SetDisplayAttributesRoutine = 0x3,
  OutputCharacterRoutine = 0x4,
  ScrollVideoRoutine = 0x5,
  BootRestartRoutine = 0x6,
  MaximumVendorRoutine = 0x7,
};

/* 461 */
struct _SP_READ_REGISTERS
{
  UCHAR ReceiveBuffer;
  UCHAR InterruptEnable;
  UCHAR InterruptId;
  UCHAR LineControl;
  UCHAR ModemControl;
  UCHAR LineStatus;
  UCHAR ModemStatus;
  UCHAR ScratchPad;
};

/* 462 */
typedef _SP_READ_REGISTERS *PSP_READ_REGISTERS;

/* 463 */
struct _SP_WRITE_REGISTERS
{
  UCHAR TransmitBuffer;
  UCHAR InterruptEnable;
  UCHAR FifoControl;
  UCHAR LineControl;
  UCHAR ModemControl;
  UCHAR Reserved1;
  UCHAR ModemStatus;
  UCHAR ScratchPad;
};

/* 464 */
typedef _SP_WRITE_REGISTERS *PSP_WRITE_REGISTERS;

/* 465 */
struct _DMA_PAGE
{
  UCHAR Reserved1;
  UCHAR Channel2;
  UCHAR Channel3;
  UCHAR Channel1;
  UCHAR Reserved2[3];
  UCHAR Channel0;
  UCHAR Reserved3;
  UCHAR Channel6;
  UCHAR Channel7;
  UCHAR Channel5;
  UCHAR Reserved4[3];
  UCHAR RefreshPage;
};

/* 466 */
typedef _DMA_PAGE DMA_PAGE;

/* 467 */
struct _DMA_CHANNEL_STOP
{
  UCHAR ChannelLsb;
  UCHAR ChannelMsb;
  UCHAR ChannelHsb;
  UCHAR Reserved;
};

/* 468 */
typedef _DMA_CHANNEL_STOP DMA_CHANNEL_STOP;

/* 469 */
struct _DMA1_ADDRESS_COUNT
{
  UCHAR DmaBaseAddress;
  UCHAR DmaBaseCount;
};

/* 470 */
typedef _DMA1_ADDRESS_COUNT DMA1_ADDRESS_COUNT;

/* 471 */
struct _DMA2_ADDRESS_COUNT
{
  UCHAR DmaBaseAddress;
  UCHAR Reserved1;
  UCHAR DmaBaseCount;
  UCHAR Reserved2;
};

/* 472 */
typedef _DMA2_ADDRESS_COUNT DMA2_ADDRESS_COUNT;

/* 473 */
struct _DMA1_CONTROL
{
  DMA1_ADDRESS_COUNT DmaAddressCount[4];
  UCHAR DmaStatus;
  UCHAR DmaRequest;
  UCHAR SingleMask;
  UCHAR Mode;
  UCHAR ClearBytePointer;
  UCHAR MasterClear;
  UCHAR ClearMask;
  UCHAR AllMask;
};

/* 474 */
typedef _DMA1_CONTROL DMA1_CONTROL;

/* 475 */
struct _DMA2_CONTROL
{
  DMA2_ADDRESS_COUNT DmaAddressCount[4];
  UCHAR DmaStatus;
  UCHAR Reserved1;
  UCHAR DmaRequest;
  UCHAR Reserved2;
  UCHAR SingleMask;
  UCHAR Reserved3;
  UCHAR Mode;
  UCHAR Reserved4;
  UCHAR ClearBytePointer;
  UCHAR Reserved5;
  UCHAR MasterClear;
  UCHAR Reserved6;
  UCHAR ClearMask;
  UCHAR Reserved7;
  UCHAR AllMask;
  UCHAR Reserved8;
};

/* 476 */
typedef _DMA2_CONTROL DMA2_CONTROL;

/* 477 */
struct _EISA_CONTROL
{
  DMA1_CONTROL Dma1BasePort;
  UCHAR Reserved0[16];
  UCHAR Interrupt1ControlPort0;
  UCHAR Interrupt1ControlPort1;
  UCHAR Reserved1[30];
  UCHAR Timer1;
  UCHAR RefreshRequest;
  UCHAR SpeakerTone;
  UCHAR CommandMode1;
  UCHAR Reserved17[4];
  UCHAR Timer2;
  UCHAR Reserved13;
  UCHAR CpuSpeedControl;
  UCHAR CommandMode2;
  UCHAR Reserved14[21];
  UCHAR NmiStatus;
  UCHAR Reserved15[14];
  UCHAR NmiEnable;
  UCHAR Reserved16[15];
  DMA_PAGE DmaPageLowPort;
  UCHAR Reserved2[16];
  UCHAR Interrupt2ControlPort0;
  UCHAR Interrupt2ControlPort1;
  UCHAR Reserved3[30];
  DMA2_CONTROL Dma2BasePort;
  UCHAR Reserved4[800];
  UCHAR Dma1CountHigh[8];
  UCHAR Reserved5[2];
  UCHAR Dma1ChainingInterrupt;
  UCHAR Dma1ExtendedModePort;
  UCHAR MasterControlPort;
  UCHAR SteppingLevelRegister;
  UCHAR IspTest1;
  UCHAR IspTest2;
  UCHAR Reserved6[81];
  UCHAR ExtendedNmiResetControl;
  UCHAR NmiIoInterruptPort;
  UCHAR Reserved7;
  UCHAR LastMaster;
  UCHAR Reserved8[27];
  DMA_PAGE DmaPageHighPort;
  UCHAR Reserved12[48];
  UCHAR Dma2HighCount[16];
  UCHAR Interrupt1EdgeLevel;
  UCHAR Interrupt2EdgeLevel;
  UCHAR Reserved9[2];
  UCHAR Dma2ChainingInterrupt;
  UCHAR Reserved10;
  UCHAR Dma2ExtendedModePort;
  UCHAR Reserved11[9];
  DMA_CHANNEL_STOP DmaChannelStop[8];
};

/* 478 */
typedef _EISA_CONTROL *PEISA_CONTROL;

/* 479 */
struct _INITIALIZATION_COMMAND_1
{
  unsigned __int8 Icw4Needed : 1;
  unsigned __int8 CascadeMode : 1;
  unsigned __int8 Unused1 : 2;
  unsigned __int8 InitializationFlag : 1;
  unsigned __int8 Unused2 : 3;
};

/* 480 */
typedef _INITIALIZATION_COMMAND_1 *PINITIALIZATION_COMMAND_1;

/* 481 */
struct _INITIALIZATION_COMMAND_4
{
  unsigned __int8 I80x86Mode : 1;
  unsigned __int8 AutoEndOfInterruptMode : 1;
  unsigned __int8 Unused1 : 2;
  unsigned __int8 SpecialFullyNested : 1;
  unsigned __int8 Unused2 : 3;
};

/* 482 */
typedef _INITIALIZATION_COMMAND_4 *PINITIALIZATION_COMMAND_4;

/* 483 */
struct _RTC_CONTROL_REGISTER_A
{
  unsigned __int8 RateSelect : 4;
  unsigned __int8 TimebaseDivisor : 3;
  unsigned __int8 UpdateInProgress : 1;
};

/* 484 */
typedef _RTC_CONTROL_REGISTER_A *PRTC_CONTROL_REGISTER_A;

/* 485 */
struct _RTC_CONTROL_REGISTER_B
{
  unsigned __int8 DayLightSavingsEnable : 1;
  unsigned __int8 HoursFormat : 1;
  unsigned __int8 DataMode : 1;
  unsigned __int8 SquareWaveEnable : 1;
  unsigned __int8 UpdateInterruptEnable : 1;
  unsigned __int8 AlarmInterruptEnable : 1;
  unsigned __int8 TimerInterruptEnable : 1;
  unsigned __int8 SetTime : 1;
};

/* 486 */
typedef _RTC_CONTROL_REGISTER_B *PRTC_CONTROL_REGISTER_B;

/* 487 */
struct _SCSI_READ_REGISTERS
{
  UCHAR TransferCountLow;
  UCHAR TransferCountHigh;
  UCHAR Fifo;
  UCHAR Command;
  UCHAR ScsiStatus;
  UCHAR ScsiInterrupt;
  UCHAR SequenceStep;
  UCHAR FifoFlags;
  UCHAR Configuration1;
  UCHAR Reserved1;
  UCHAR Reserved2;
  UCHAR Configuration2;
  UCHAR Configuration3;
  UCHAR Reserved;
  UCHAR TransferCountPage;
  UCHAR FifoBottem;
};

/* 488 */
typedef _SCSI_READ_REGISTERS SCSI_READ_REGISTERS;

/* 489 */
struct _SCSI_WRITE_REGISTERS
{
  UCHAR TransferCountLow;
  UCHAR TransferCountHigh;
  UCHAR Fifo;
  UCHAR Command;
  UCHAR DestinationId;
  UCHAR SelectTimeOut;
  UCHAR SynchronousPeriod;
  UCHAR SynchronousOffset;
  UCHAR Configuration1;
  UCHAR ClockConversionFactor;
  UCHAR TestMode;
  UCHAR Configuration2;
  UCHAR Configuration3;
  UCHAR Reserved;
  UCHAR TransferCountPage;
  UCHAR FifoBottem;
};

/* 490 */
typedef _SCSI_WRITE_REGISTERS SCSI_WRITE_REGISTERS;

/* 491 */
union _SCSI_REGISTERS
{
  SCSI_READ_REGISTERS ReadRegisters;
  SCSI_WRITE_REGISTERS WriteRegisters;
};

/* 492 */
typedef _SCSI_REGISTERS *PSCSI_REGISTERS;

/* 493 */
struct _PARALLEL_READ_REGISTERS
{
  UCHAR Data;
  UCHAR Status;
  UCHAR Control;
};

/* 494 */
typedef _PARALLEL_READ_REGISTERS *PPARALLEL_READ_REGISTERS;

/* 495 */
struct _FLOPPY_READ_REGISTERS
{
  UCHAR StatusA;
  UCHAR StatusB;
  UCHAR DigitalOutput;
  UCHAR Reserved1;
  UCHAR MainStatus;
  UCHAR Fifo;
  UCHAR Reserved2;
  UCHAR DigitalInput;
};

/* 496 */
typedef _FLOPPY_READ_REGISTERS *PFLOPPY_READ_REGISTERS;

/* 497 */
struct _FLOPPY_WRITE_REGISTERS
{
  UCHAR StatusA;
  UCHAR StatusB;
  UCHAR DigitalOutput;
  UCHAR Reserved1;
  UCHAR DataRateSelect;
  UCHAR Fifo;
  UCHAR Reserved2;
  UCHAR ConfigurationControl;
};

/* 498 */
typedef _FLOPPY_WRITE_REGISTERS *PFLOPPY_WRITE_REGISTERS;

/* 499 */
struct _SONIC_REGISTER
{
  USHORT Reg;
  USHORT Fill;
};

/* 500 */
typedef _SONIC_REGISTER SONIC_REGISTER;

/* 501 */
struct _SONIC_REGISTERS
{
  SONIC_REGISTER Command;
  SONIC_REGISTER DataConfiguration;
  SONIC_REGISTER ReceiveControl;
  SONIC_REGISTER TransmitControl;
  SONIC_REGISTER InterruptMask;
  SONIC_REGISTER InterruptStatus;
  SONIC_REGISTER UTDA;
  SONIC_REGISTER CTDA;
  SONIC_REGISTER InternalTPS;
  SONIC_REGISTER InternalTFC;
  SONIC_REGISTER InternalTSA0;
  SONIC_REGISTER InternalTSA1;
  SONIC_REGISTER InternalTFS;
  SONIC_REGISTER URDA;
  SONIC_REGISTER CRDA;
  SONIC_REGISTER InternalCRBA0;
  SONIC_REGISTER InternalCRBA1;
  SONIC_REGISTER InternalRWBC0;
  SONIC_REGISTER InternalRBWC1;
  SONIC_REGISTER EOBC;
  SONIC_REGISTER URRA;
  SONIC_REGISTER RSA;
  SONIC_REGISTER REA;
  SONIC_REGISTER RRP;
  SONIC_REGISTER RWP;
  SONIC_REGISTER InternalTRBA0;
  SONIC_REGISTER InternalTRBA1;
  SONIC_REGISTER InternalTBWC0;
  SONIC_REGISTER InternalTBWC1;
  SONIC_REGISTER InternalADDR0;
  SONIC_REGISTER InternalADDR1;
  SONIC_REGISTER InternalLLFA;
  SONIC_REGISTER InternalTTDA;
  SONIC_REGISTER CamEntryPtr;
  SONIC_REGISTER CamAddrPort2;
  SONIC_REGISTER CamAddrPort1;
  SONIC_REGISTER CamAddrPort0;
  SONIC_REGISTER CamEnable;
  SONIC_REGISTER CamDscrPtr;
  SONIC_REGISTER CamDscrCount;
  SONIC_REGISTER SiliconRevision;
  SONIC_REGISTER WatchdogTimer0;
  SONIC_REGISTER WatchdogTimer1;
  SONIC_REGISTER ReceiveSequenceCounter;
  SONIC_REGISTER CrcErrorTally;
  SONIC_REGISTER FaeTally;
  SONIC_REGISTER MissedPacketTally;
  SONIC_REGISTER InternalMDT;
};

/* 502 */
typedef _SONIC_REGISTERS *PSONIC_REGISTERS;

/* 503 */
struct __attribute__((aligned(4))) _EISA
{
  UCHAR Dma1Ch0Address;
  UCHAR Dma1Ch0Count;
  UCHAR Dma1Ch1Address;
  UCHAR Dma1Ch1Count;
  UCHAR Dma1Ch2Address;
  UCHAR Dma1Ch2Count;
  UCHAR Dma1Ch3Address;
  UCHAR Dma1Ch3Count;
  UCHAR Dma1StatusCommand;
  UCHAR Dma1Request;
  UCHAR Dma1SingleMask;
  UCHAR Dma1Mode;
  UCHAR Dma1ClearBytePointer;
  UCHAR Dma1MasterClear;
  UCHAR Dma1ClearMask;
  UCHAR Dma1AllMask;
  ULONG Fill01;
  ULONG Fill02;
  ULONG Fill03;
  ULONG Fill04;
  UCHAR Int1Control;
  UCHAR Int1Mask;
  USHORT Fill10;
  ULONG Fill11;
  ULONG Fill12;
  ULONG Fill13;
  ULONG Fill14;
  ULONG Fill15;
  ULONG Fill16;
  ULONG Fill17;
  UCHAR IntTimer1SystemClock;
  UCHAR IntTimer1RefreshRequest;
  UCHAR IntTimer1SpeakerTone;
  UCHAR IntTimer1CommandMode;
  ULONG Fill20;
  UCHAR IntTimer2FailsafeClock;
  UCHAR IntTimer2Reserved;
  UCHAR IntTimer2CPUSpeeedCtrl;
  UCHAR IntTimer2CommandMode;
  ULONG Fill30;
  ULONG Fill31;
  ULONG Fill32;
  ULONG Fill33;
  ULONG Fill34;
  UCHAR Fill35;
  UCHAR NMIStatus;
  UCHAR Fill40;
  UCHAR Fill41;
  ULONG Fill42;
  ULONG Fill43;
  ULONG Fill44;
  UCHAR NMIEnable;
};

/* 504 */
typedef _EISA *PEISA;

/* 505 */
typedef ULONG (*TestRoutine)(void);

/* 506 */
typedef void (*LED_ROUTINE)(ULONG);

/* 507 */
struct _iobuf
{
  unsigned __int8 *_ptr;
  int _cnt;
  unsigned __int8 *_base;
  int _flag;
  int _file;
  int _charbuf;
  int _bufsiz;
  unsigned __int8 *_tmpfname;
};

/* 508 */
typedef _iobuf FILE;

/* 509 */
typedef CACHEERR *PCACHEERR;

/* 510 */
typedef CHAR *PSZ;

/* 511 */
struct _TRANSLATION_ENTRY
{
  ULONG PageFrame;
  ULONG Fill;
};

/* 512 */
typedef volatile _TRANSLATION_ENTRY *PTRANSLATION_ENTRY;

/* 513 */
struct _SONIC_ENTRY
{
  USHORT Data;
  USHORT Fill;
};

/* 514 */
typedef _SONIC_ENTRY SONIC_ENTRY;

/* 515 */
struct _RECEIVE_RESOURCE
{
  SONIC_ENTRY BufferPtr0;
  SONIC_ENTRY BufferPtr1;
  SONIC_ENTRY WordCount0;
  SONIC_ENTRY WordCount1;
};

/* 516 */
typedef _RECEIVE_RESOURCE *PRECEIVE_RESOURCE;

/* 517 */
struct _CAM_DESCRIPTOR
{
  SONIC_ENTRY EntryPointer;
  SONIC_ENTRY Port0;
  SONIC_ENTRY Port1;
  SONIC_ENTRY Port2;
};

/* 518 */
typedef _CAM_DESCRIPTOR CAM_DESCRIPTOR;

/* 519 */
typedef CAM_DESCRIPTOR *PCAM_DESCRIPTOR;

/* 520 */
struct _RECEIVE_DESCRIPTOR
{
  SONIC_ENTRY Status;
  SONIC_ENTRY ByteCount;
  SONIC_ENTRY PktPtr0;
  SONIC_ENTRY PktPtr1;
  SONIC_ENTRY SeqNo;
  SONIC_ENTRY Link;
  SONIC_ENTRY InUse;
};

/* 521 */
typedef _RECEIVE_DESCRIPTOR RECEIVE_DESCRIPTOR;

/* 522 */
typedef RECEIVE_DESCRIPTOR *PRECEIVE_DESCRIPTOR;

/* 523 */
struct _RECEIVE_DESCRIPTOR_QUEUE
{
  PRECEIVE_DESCRIPTOR Base;
  ULONG Current;
  ULONG Last;
};

/* 524 */
typedef _RECEIVE_DESCRIPTOR_QUEUE RECEIVE_DESCRIPTOR_QUEUE;

/* 525 */
struct _TRANSMIT_DESCRIPTOR
{
  SONIC_ENTRY Status;
  SONIC_ENTRY Config;
  SONIC_ENTRY PktSize;
  SONIC_ENTRY FragCount;
  SONIC_ENTRY FragPtr0;
  SONIC_ENTRY FragPtr1;
  SONIC_ENTRY FragSize;
  SONIC_ENTRY Link;
};

/* 526 */
typedef _TRANSMIT_DESCRIPTOR TRANSMIT_DESCRIPTOR;

/* 527 */
typedef TRANSMIT_DESCRIPTOR *PTRANSMIT_DESCRIPTOR;

/* 528 */
struct _SONIC_DATA
{
  USHORT InterruptID;
  USHORT ExpectedInt;
  USHORT TransmitControl;
  USHORT Status;
};

/* 529 */
typedef _SONIC_DATA SONIC_DATA;

/* 530 */
struct _KEYBOARD_WRITE_REGISTERS
{
  UCHAR Data;
  UCHAR Command;
};

/* 531 */
typedef _KEYBOARD_WRITE_REGISTERS *PKEYBOARD_WRITE_REGISTERS;

/* 532 */
struct _KEYBOARD_READ_REGISTERS
{
  UCHAR Data;
  UCHAR Status;
};

/* 533 */
typedef _KEYBOARD_READ_REGISTERS *PKEYBOARD_READ_REGISTERS;

/* 534 */
typedef _DRIVER_LOOKUP_ENTRY *PDRIVER_LOOKUP_ENTRY;

/* 535 */
enum _ARC_SCREEN_COLOR : __int32
{
  ArcColorBlack = 0x0,
  ArcColorRed = 0x1,
  ArcColorGreen = 0x2,
  ArcColorYellow = 0x3,
  ArcColorBlue = 0x4,
  ArcColorMagenta = 0x5,
  ArcColorCyan = 0x6,
  ArcColorWhite = 0x7,
  MaximumArcColor = 0x8,
};

/* 536 */
enum _GETSTRING_ACTION : __int32
{
  GetStringSuccess = 0x0,
  GetStringEscape = 0x1,
  GetStringUpArrow = 0x2,
  GetStringDownArrow = 0x3,
  GetStringMaximum = 0x4,
};

/* 537 */
typedef _GETSTRING_ACTION GETSTRING_ACTION;

/* 538 */
enum _REGISTER_NAME_ID : __int32
{
  zero = 0x0,
  at = 0x1,
  v0 = 0x2,
  v1 = 0x3,
  a0 = 0x4,
  a1 = 0x5,
  a2 = 0x6,
  a3 = 0x7,
  t0 = 0x8,
  t1 = 0x9,
  t2 = 0xA,
  t3 = 0xB,
  t4 = 0xC,
  t5 = 0xD,
  t6 = 0xE,
  t7 = 0xF,
  s0 = 0x10,
  s1 = 0x11,
  s2 = 0x12,
  s3 = 0x13,
  s4 = 0x14,
  s5 = 0x15,
  s6 = 0x16,
  s7 = 0x17,
  t8 = 0x18,
  t9 = 0x19,
  k0 = 0x1A,
  k1 = 0x1B,
  gp = 0x1C,
  sp = 0x1D,
  s8 = 0x1E,
  ra = 0x1F,
  f0 = 0x20,
  f1 = 0x21,
  f2 = 0x22,
  f3 = 0x23,
  f4 = 0x24,
  f5 = 0x25,
  f6 = 0x26,
  f7 = 0x27,
  f8 = 0x28,
  f9 = 0x29,
  f10 = 0x2A,
  f11 = 0x2B,
  f12 = 0x2C,
  f13 = 0x2D,
  f14 = 0x2E,
  f15 = 0x2F,
  f16 = 0x30,
  f17 = 0x31,
  f18 = 0x32,
  f19 = 0x33,
  f20 = 0x34,
  f21 = 0x35,
  f22 = 0x36,
  f23 = 0x37,
  f24 = 0x38,
  f25 = 0x39,
  f26 = 0x3A,
  f27 = 0x3B,
  f28 = 0x3C,
  f29 = 0x3D,
  f30 = 0x3E,
  f31 = 0x3F,
  fsr = 0x40,
  index = 0x41,
  random = 0x42,
  entrylo0 = 0x43,
  entrylo1 = 0x44,
  context = 0x45,
  pagemask = 0x46,
  wired = 0x47,
  badvaddr = 0x48,
  count = 0x49,
  entryhi = 0x4A,
  compare = 0x4B,
  psr = 0x4C,
  cause = 0x4D,
  epc = 0x4E,
  prid = 0x4F,
  config = 0x50,
  lladdr = 0x51,
  watchlo = 0x52,
  watchhi = 0x53,
  ecc = 0x54,
  cacheerror = 0x55,
  taglo = 0x56,
  taghi = 0x57,
  errorepc = 0x58,
  invalidregister = 0x59,
};

/* 539 */
typedef _REGISTER_NAME_ID REGISTER_NAME_ID;

/* 540 */
enum _COMMAND_NAME_ID : __int32
{
  Dump = 0x0,
  DumpByte = 0x1,
  DumpWord = 0x2,
  DumpDouble = 0x3,
  Enter = 0x4,
  EnterByte = 0x5,
  EnterWord = 0x6,
  EnterDouble = 0x7,
  Output = 0x8,
  OutputByte = 0x9,
  OutputWord = 0xA,
  OutputDouble = 0xB,
  Input = 0xC,
  InputByte = 0xD,
  InputWord = 0xE,
  InputDouble = 0xF,
  Register = 0x10,
  Zero = 0x11,
  Fill = 0x12,
  AvailableDevices = 0x13,
  Help = 0x14,
  Help2 = 0x15,
  Quit = 0x16,
  invalidcommand = 0x17,
};

/* 541 */
typedef _COMMAND_NAME_ID COMMAND_NAME_ID;

/* 542 */
enum _ARC_CODES : __int32
{
  ESUCCESS = 0x0,
  E2BIG = 0x1,
  EACCES = 0x2,
  EAGAIN = 0x3,
  EBADF = 0x4,
  EBUSY = 0x5,
  EFAULT = 0x6,
  EINVAL = 0x7,
  EIO = 0x8,
  EISDIR = 0x9,
  EMFILE = 0xA,
  EMLINK = 0xB,
  ENAMETOOLONG = 0xC,
  ENODEV = 0xD,
  ENOENT = 0xE,
  ENOEXEC = 0xF,
  ENOMEM = 0x10,
  ENOSPC = 0x11,
  ENOTDIR = 0x12,
  ENOTTY = 0x13,
  ENXIO = 0x14,
  EROFS = 0x15,
  EMAXIMUM = 0x16,
};

/* 543 */
typedef _BL_DEVICE_ENTRY_TABLE BL_DEVICE_ENTRY_TABLE;

/* 544 */
struct _SP_FIFO_CONTROL
{
  unsigned __int8 FifoEnable : 1;
  unsigned __int8 ReceiveFifoReset : 1;
  unsigned __int8 TransmitFifoReset : 1;
  unsigned __int8 DmaModeSelect : 1;
  unsigned __int8 Reserved1 : 2;
  unsigned __int8 ReceiveFifoLevel : 2;
};

/* 545 */
typedef _SP_FIFO_CONTROL *PSP_FIFO_CONTROL;

/* 546 */
struct _SP_LINE_CONTROL
{
  unsigned __int8 CharacterSize : 2;
  unsigned __int8 StopBits : 1;
  unsigned __int8 ParityEnable : 1;
  unsigned __int8 EvenParity : 1;
  unsigned __int8 StickParity : 1;
  unsigned __int8 SetBreak : 1;
  unsigned __int8 DivisorLatch : 1;
};

/* 547 */
typedef _SP_LINE_CONTROL *PSP_LINE_CONTROL;

/* 548 */
struct _SP_MODEM_CONTROL
{
  unsigned __int8 DataTerminalReady : 1;
  unsigned __int8 RequestToSend : 1;
  unsigned __int8 Reserved1 : 1;
  unsigned __int8 Interrupt : 1;
  unsigned __int8 loopBack : 1;
  unsigned __int8 Reserved2 : 3;
};

/* 549 */
typedef _SP_MODEM_CONTROL *PSP_MODEM_CONTROL;

/* 550 */
struct _SP_LINE_STATUS
{
  unsigned __int8 DataReady : 1;
  unsigned __int8 OverrunError : 1;
  unsigned __int8 ParityError : 1;
  unsigned __int8 FramingError : 1;
  unsigned __int8 BreakIndicator : 1;
  unsigned __int8 TransmitHoldingEmpty : 1;
  unsigned __int8 TransmitEmpty : 1;
  unsigned __int8 ReceiveFifoError : 1;
};

/* 551 */
typedef _SP_LINE_STATUS *PSP_LINE_STATUS;

/* 552 */
typedef LARGE_INTEGER PHYSICAL_ADDRESS;

/* 553 */
struct _EXCEPTION_RECORD
{
  NTSTATUS ExceptionCode;
  ULONG ExceptionFlags;
  _EXCEPTION_RECORD *ExceptionRecord;
  PVOID ExceptionAddress;
  ULONG NumberParameters;
  ULONG ExceptionInformation[15];
};

/* 554 */
typedef void (*PKINTERRUPT_ROUTINE)(void);

/* 555 */
typedef BOOLEAN (*PKBUS_ERROR_ROUTINE)(_EXCEPTION_RECORD *, _KEXCEPTION_FRAME *, _KTRAP_FRAME *, PVOID, PHYSICAL_ADDRESS);

/* 556 */
struct _KEXCEPTION_FRAME
{
  ULONG Argument[8];
  ULONG FltF20;
  ULONG FltF21;
  ULONG FltF22;
  ULONG FltF23;
  ULONG FltF24;
  ULONG FltF25;
  ULONG FltF26;
  ULONG FltF27;
  ULONG FltF28;
  ULONG FltF29;
  ULONG FltF30;
  ULONG FltF31;
  ULONG IntS0;
  ULONG IntS1;
  ULONG IntS2;
  ULONG IntS3;
  ULONG IntS4;
  ULONG IntS5;
  ULONG IntS6;
  ULONG IntS7;
  ULONG IntS8;
  ULONG Psr;
  ULONG SwapReturn;
  ULONG IntRa;
};

/* 557 */
struct _KTRAP_FRAME
{
  ULONG Argument[4];
  ULONG FltF0;
  ULONG FltF1;
  ULONG FltF2;
  ULONG FltF3;
  ULONG FltF4;
  ULONG FltF5;
  ULONG FltF6;
  ULONG FltF7;
  ULONG FltF8;
  ULONG FltF9;
  ULONG FltF10;
  ULONG FltF11;
  ULONG FltF12;
  ULONG FltF13;
  ULONG FltF14;
  ULONG FltF15;
  ULONG FltF16;
  ULONG FltF17;
  ULONG FltF18;
  ULONG FltF19;
  ULONG IntAt;
  ULONG IntV0;
  ULONG IntV1;
  ULONG IntA0;
  ULONG IntA1;
  ULONG IntA2;
  ULONG IntA3;
  ULONG IntT0;
  ULONG IntT1;
  ULONG IntT2;
  ULONG IntT3;
  ULONG IntT4;
  ULONG IntT5;
  ULONG IntT6;
  ULONG IntT7;
  ULONG IntT8;
  ULONG IntT9;
  ULONG IntGp;
  ULONG IntSp;
  ULONG IntS8;
  ULONG IntLo;
  ULONG IntHi;
  ULONG Fsr;
  ULONG Fir;
  ULONG Psr;
  UCHAR ExceptionRecord[80];
  UCHAR OldIrql;
  UCHAR PreviousMode;
  USHORT Fill1;
  ULONG OnInterruptStack;
  ULONG IntRa;
};

/* 558 */
struct _KPCR
{
  USHORT MinorVersion;
  USHORT MajorVersion;
  PKINTERRUPT_ROUTINE InterruptRoutine[256];
  PVOID XcodeDispatch[32];
  ULONG FirstLevelDcacheSize;
  ULONG FirstLevelDcacheFillSize;
  ULONG FirstLevelIcacheSize;
  ULONG FirstLevelIcacheFillSize;
  ULONG SecondLevelDcacheSize;
  ULONG SecondLevelDcacheFillSize;
  ULONG SecondLevelIcacheSize;
  ULONG SecondLevelIcacheFillSize;
  _KPRCB *Prcb;
  PVOID Teb;
  ULONG DcacheAlignment;
  ULONG DcacheFillSize;
  ULONG IcacheAlignment;
  ULONG IcacheFillSize;
  ULONG ProcessorId;
  ULONG ProfileInterval;
  ULONG ProfileCount;
  ULONG StallExecutionCount;
  ULONG StallScaleFactor;
  CCHAR Number;
  CCHAR Spareb1;
  CCHAR Spareb2;
  CCHAR Spareb3;
  PKBUS_ERROR_ROUTINE DataBusError;
  PKBUS_ERROR_ROUTINE InstructionBusError;
  ULONG CachePolicy;
  UCHAR IrqlMask[32];
  UCHAR IrqlTable[9];
  UCHAR CurrentIrql;
  KAFFINITY SetMember;
  ULONG ReservedVectors;
  _KTHREAD *CurrentThread;
  ULONG AlignedCachePolicy;
  ULONG Spare0;
  ULONG SystemReserved[16];
  ULONG HalReserved[16];
  ULONG FirstLevelActive;
  ULONG DpcRoutineActive;
  ULONG Spare1;
  ULONG Spare2;
  PVOID RtlpLockRangeStart;
  PVOID RtlpLockRangeEnd;
  ULONG SystemServiceDispatchStart;
  ULONG SystemServiceDispatchEnd;
  ULONG InterruptStack;
  _KDPC *QuantumEndDpc;
  ULONG BadVaddr;
  PVOID InitialStack;
  PVOID PanicStack;
  ULONG SavedT7;
  ULONG SavedEpc;
  ULONG SavedT8;
  ULONG SavedT9;
  PVOID SystemGp;
  ULONG OnInterruptStack;
  ULONG SavedInitialStack;
};

/* 559 */
typedef _KPCR KPCR;

/* 560 */
typedef ULONG VBO;

/* 561 */
struct BIOS_PARAMETER_BLOCK
{
  USHORT BytesPerSector;
  UCHAR SectorsPerCluster;
  USHORT ReservedSectors;
  UCHAR Fats;
  USHORT RootEntries;
  USHORT Sectors;
  UCHAR Media;
  USHORT SectorsPerFat;
  USHORT SectorsPerTrack;
  USHORT Heads;
  ULONG HiddenSectors;
  ULONG LargeSectors;
};

/* 562 */
typedef BIOS_PARAMETER_BLOCK BIOS_PARAMETER_BLOCK_0;

/* 563 */
struct _FAT_MCB
{
  ULONG InUse;
  VBO Vbo[41];
  LBO Lbo[41];
};

/* 564 */
typedef _FAT_MCB FAT_MCB;

/* 565 */
struct _FAT_STRUCTURE_CONTEXT
{
  BIOS_PARAMETER_BLOCK_0 Bpb;
  ULONG FileId;
  FAT_MCB Mcb;
  BOOLEAN CachedFatDirty;
  VBO CachedFatVbo;
  PUCHAR CachedFat;
  UCHAR CachedFatBuffer[1792];
};

/* 566 */
typedef _FAT_STRUCTURE_CONTEXT FAT_STRUCTURE_CONTEXT;

/* 567 */
union _FILE_SYSTEM_STRUCTURE
{
  FAT_STRUCTURE_CONTEXT FatContext;
  ULONG Tmp;
};

/* 568 */
typedef _FILE_SYSTEM_STRUCTURE FILE_SYSTEM_STRUCTURE;

/* 569 */
typedef _FILE_SYSTEM_STRUCTURE *PFILE_SYSTEM_STRUCTURE;

/* 570 */
struct _FS_POOL_ENTRY
{
  BOOLEAN InUse;
  FILE_SYSTEM_STRUCTURE Fs;
};

/* 571 */
typedef _FS_POOL_ENTRY FS_POOL_ENTRY;

/* 572 */
typedef _FS_POOL_ENTRY *PFS_POOL_ENTRY;

/* 573 */
typedef void *__gnuc_va_list;

/* 574 */
typedef __gnuc_va_list va_list;

/* 575 */
typedef _CONTEXT *PCONTEXT;

/* 576 */
typedef _EXCEPTION_RECORD EXCEPTION_RECORD;

/* 577 */
typedef EXCEPTION_RECORD *PEXCEPTION_RECORD;

/* 578 */
typedef _KEXCEPTION_FRAME *PKEXCEPTION_FRAME;

/* 579 */
typedef _KTRAP_FRAME *PKTRAP_FRAME;

/* 580 */
typedef _KPRCB KPRCB;

/* 581 */
typedef _CONFIGURATION_COMPONENT *PCONFIGURATION_COMPONENT;

/* 582 */
struct _MONITOR_CONFIGURATION_DATA
{
  USHORT Version;
  USHORT Revision;
  USHORT HorizontalResolution;
  USHORT HorizontalDisplayTime;
  USHORT HorizontalBackPorch;
  USHORT HorizontalFrontPorch;
  USHORT HorizontalSync;
  USHORT VerticalResolution;
  USHORT VerticalBackPorch;
  USHORT VerticalFrontPorch;
  USHORT VerticalSync;
  USHORT HorizontalScreenSize;
  USHORT VerticalScreenSize;
};

/* 583 */
typedef _MONITOR_CONFIGURATION_DATA MONITOR_CONFIGURATION_DATA;

/* 584 */
typedef _LOADER_PARAMETER_BLOCK LOADER_PARAMETER_BLOCK;

/* 585 */
typedef BOOLEAN (*PKDEBUG_ROUTINE)(PKTRAP_FRAME, PKEXCEPTION_FRAME, PEXCEPTION_RECORD, PCONTEXT, KPROCESSOR_MODE, BOOLEAN);

/* 586 */
typedef _CONFIGURATION_PACKET *PCONFIGURATION_PACKET;

/* 587 */
enum _BOOT_VARIABLES : __int32
{
  LoadIdentifierVariable = 0x0,
  SystemPartitionVariable = 0x1,
  OsLoaderVariable = 0x2,
  OsLoadPartitionVariable = 0x3,
  OsLoadFilenameVariable = 0x4,
  OsLoadOptionsVariable = 0x5,
  MaximumBootVariable = 0x6,
};

/* 588 */
struct _INTERRUPT_REGISTERS
{
  UCHAR Source;
  UCHAR Fill1;
  USHORT Enable;
};

/* 589 */
typedef _INTERRUPT_REGISTERS *PINTERRUPT_REGISTERS;

/* 590 */
typedef void (*PVEN_BOOT_RESTART_ROUTINE)(PRESTART_BLOCK);

/* 591 */
typedef _MONITOR_CONFIGURATION_DATA *PMONITOR_CONFIGURATION_DATA;

/* 592 */
struct _COMPRESSED_CONFIGURATION_PACKET
{
  UCHAR Parent;
  UCHAR Class;
  UCHAR Type;
  UCHAR Flags;
  ULONG Key;
  UCHAR Version;
  UCHAR Revision;
  USHORT ConfigurationDataLength;
  USHORT Identifier;
  USHORT ConfigurationData;
};

/* 593 */
typedef _COMPRESSED_CONFIGURATION_PACKET COMPRESSED_CONFIGURATION_PACKET;

/* 594 */
struct _NV_CONFIGURATION
{
  COMPRESSED_CONFIGURATION_PACKET Packet[40];
  UCHAR Identifier[376];
  UCHAR Data[2048];
  UCHAR Checksum1[4];
  UCHAR Environment[1024];
  UCHAR Checksum2[4];
  UCHAR EisaData[2044];
  UCHAR Checksum3[4];
};

/* 595 */
typedef _NV_CONFIGURATION *PNV_CONFIGURATION;

/* 596 */
struct __attribute__((aligned(2))) _ARC_DISPLAY_STATUS
{
  USHORT CursorXPosition;
  USHORT CursorYPosition;
  USHORT CursorMaxXPosition;
  USHORT CursorMaxYPosition;
  UCHAR ForegroundColor;
  UCHAR BackgroundColor;
  BOOLEAN HighIntensity;
  BOOLEAN Underscored;
  BOOLEAN ReverseVideo;
};

/* 597 */
typedef _ARC_DISPLAY_STATUS ARC_DISPLAY_STATUS;

/* 598 */
typedef _ARC_DISPLAY_STATUS *PARC_DISPLAY_STATUS;

/* 599 */
typedef _CONSOLE_CONTEXT *PCONSOLE_CONTEXT;

/* 600 */
typedef void (*PVEN_SET_DISPLAY_ATTRIBUTES_ROUTINE)(ULONG, ULONG, BOOLEAN, BOOLEAN, BOOLEAN, ULONG, ULONG);

/* 601 */
typedef void (*PVEN_OUTPUT_CHARACTER_ROUTINE)(PVOID, ULONG, ULONG);

/* 602 */
enum _JAZZ_VIDEO_TYPE : __int32
{
  JazzVideoG300 = 0x0,
  JazzVideoG364 = 0x1,
  JazzVideoVxl = 0x2,
  Reserved3 = 0x3,
  Reserved4 = 0x4,
  Reserved5 = 0x5,
  Reserved6 = 0x6,
  Reserved7 = 0x7,
  Reserved8 = 0x8,
  Reserved9 = 0x9,
  ReservedA = 0xA,
  ReservedB = 0xB,
  ReservedC = 0xC,
  ReservedD = 0xD,
  ReservedE = 0xE,
  ReservedF = 0xF,
  MipsVideoG364 = 0x10,
  MaximumJazzVideo = 0x11,
};

/* 603 */
typedef _JAZZ_VIDEO_TYPE JAZZ_VIDEO_TYPE;

/* 604 */
struct _VIDEO_REGISTER
{
  ULONG Long;
  ULONG Fill[1];
};

/* 605 */
typedef _VIDEO_REGISTER VIDEO_REGISTER;

/* 606 */
struct _G300_VIDEO_REGISTERS
{
  VIDEO_REGISTER ColorMapData[256];
  VIDEO_REGISTER Fill1[33];
  VIDEO_REGISTER HorizonalSync;
  VIDEO_REGISTER BackPorch;
  VIDEO_REGISTER Display;
  VIDEO_REGISTER ShortDisplay;
  VIDEO_REGISTER BroadPulse;
  VIDEO_REGISTER VerticalSync;
  VIDEO_REGISTER VerticalBlank;
  VIDEO_REGISTER VerticalDisplay;
  VIDEO_REGISTER LineTime;
  VIDEO_REGISTER LineStart;
  VIDEO_REGISTER DmaDisplay;
  VIDEO_REGISTER TransferDelay;
  VIDEO_REGISTER Fill2[19];
  VIDEO_REGISTER PixelMask;
  VIDEO_REGISTER Fill3[31];
  VIDEO_REGISTER Parameters;
  VIDEO_REGISTER Fill4[31];
  VIDEO_REGISTER TopOfScreen;
  VIDEO_REGISTER Fill5[31];
  VIDEO_REGISTER Boot;
};

/* 607 */
typedef _G300_VIDEO_REGISTERS *PG300_VIDEO_REGISTERS;

/* 608 */
struct _G364_VIDEO_REGISTERS
{
  VIDEO_REGISTER Boot;
  VIDEO_REGISTER Fill0[31];
  VIDEO_REGISTER Fill1;
  VIDEO_REGISTER HorizontalSync;
  VIDEO_REGISTER BackPorch;
  VIDEO_REGISTER Display;
  VIDEO_REGISTER ShortDisplay;
  VIDEO_REGISTER BroadPulse;
  VIDEO_REGISTER VerticalSync;
  VIDEO_REGISTER VerticalPreEqualize;
  VIDEO_REGISTER VerticalPostEqualize;
  VIDEO_REGISTER VerticalBlank;
  VIDEO_REGISTER VerticalDisplay;
  VIDEO_REGISTER LineTime;
  VIDEO_REGISTER LineStart;
  VIDEO_REGISTER DmaDisplay;
  VIDEO_REGISTER TransferDelay;
  VIDEO_REGISTER Fill2;
  VIDEO_REGISTER Fill3[16];
  VIDEO_REGISTER PixelMask;
  VIDEO_REGISTER Fill4[31];
  VIDEO_REGISTER Parameters;
  VIDEO_REGISTER Fill5[31];
  VIDEO_REGISTER TopOfScreen;
  VIDEO_REGISTER Fill6[31];
  VIDEO_REGISTER Fill7;
  VIDEO_REGISTER CursorPalette[3];
  VIDEO_REGISTER Fill8[28];
  VIDEO_REGISTER Fill9[7];
  VIDEO_REGISTER CursorPosition;
  VIDEO_REGISTER Fill10[24];
  VIDEO_REGISTER Fill11[32];
  VIDEO_REGISTER ColorMapData[256];
  VIDEO_REGISTER CursorMemory[512];
};

/* 609 */
typedef _G364_VIDEO_REGISTERS *PG364_VIDEO_REGISTERS;

/* 610 */
struct _G300_VIDEO_PARAMETERS
{
  unsigned __int32 EnableVideo : 1;
  unsigned __int32 Interlace : 1;
  unsigned __int32 SlaveMode : 1;
  unsigned __int32 PlainWave : 1;
  unsigned __int32 SeparateSync : 1;
  unsigned __int32 VideoOnly : 1;
  unsigned __int32 Fill1 : 1;
  unsigned __int32 UcharMode : 1;
  unsigned __int32 Mode2 : 1;
  unsigned __int32 DelaySync : 3;
  unsigned __int32 Black : 1;
  unsigned __int32 Fill2 : 1;
  unsigned __int32 DisableDma : 1;
  unsigned __int32 DisableBlanking : 1;
  unsigned __int32 BlankOutput : 1;
  unsigned __int32 BitsPerPixel : 2;
  unsigned __int32 AddressStep : 2;
  unsigned __int32 CcirFormat : 1;
  unsigned __int32 Fill3 : 1;
  unsigned __int32 DisableDelay : 1;
  unsigned __int32 Fill4 : 8;
};

/* 611 */
typedef _G300_VIDEO_PARAMETERS *PG300_VIDEO_PARAMETERS;

/* 612 */
struct _G364_VIDEO_PARAMETERS
{
  unsigned __int32 EnableVideo : 1;
  unsigned __int32 Interlace : 1;
  unsigned __int32 CcirFormat : 1;
  unsigned __int32 SlaveMode : 1;
  unsigned __int32 PlainSync : 1;
  unsigned __int32 SeparateSync : 1;
  unsigned __int32 VideoOnly : 1;
  unsigned __int32 BlankingPedestal : 1;
  unsigned __int32 CBlankOutput : 1;
  unsigned __int32 UndelayedCBlank : 1;
  unsigned __int32 ForceBlanking : 1;
  unsigned __int32 DisableBlanking : 1;
  unsigned __int32 AddressStep : 2;
  unsigned __int32 DisableDma : 1;
  unsigned __int32 DelaySync : 3;
  unsigned __int32 Interleaving : 1;
  unsigned __int32 DelaySampling : 1;
  unsigned __int32 BitsPerPixel : 3;
  unsigned __int32 DisableCursor : 1;
  unsigned __int32 Fill : 8;
};

/* 613 */
typedef _G364_VIDEO_PARAMETERS *PG364_VIDEO_PARAMETERS;

/* 614 */
struct _G300_VIDEO_BOOT
{
  unsigned __int32 Multiplier : 5;
  unsigned __int32 ClockSelect : 1;
  unsigned __int32 Fill1 : 26;
};

/* 615 */
typedef _G300_VIDEO_BOOT *PG300_VIDEO_BOOT;

/* 616 */
struct _G364_VIDEO_BOOT
{
  unsigned __int32 Multiplier : 5;
  unsigned __int32 ClockSelect : 1;
  unsigned __int32 MicroPort64Bits : 1;
  unsigned __int32 Fill1 : 25;
};

/* 617 */
typedef _G364_VIDEO_BOOT *PG364_VIDEO_BOOT;

/* 618 */
struct _CURSOR_REGISTER
{
  USHORT Short;
  USHORT Fill[3];
};

/* 619 */
typedef _CURSOR_REGISTER CURSOR_REGISTER;

/* 620 */
struct _CURSOR_REGISTERS
{
  CURSOR_REGISTER AddressPointer0;
  CURSOR_REGISTER AddressPointer1;
  CURSOR_REGISTER CursorMemory;
  CURSOR_REGISTER CursorControl;
};

/* 621 */
typedef _CURSOR_REGISTERS *PCURSOR_REGISTERS;

/* 622 */
struct _TIME_FIELDS
{
  CSHORT Year;
  CSHORT Month;
  CSHORT Day;
  CSHORT Hour;
  CSHORT Minute;
  CSHORT Second;
  CSHORT Milliseconds;
  CSHORT Weekday;
};

/* 623 */
typedef _TIME_FIELDS TIME_FIELDS;

/* 624 */
typedef TIME_FIELDS *PTIME_FIELDS;

/* 625 */
typedef SHORT *PSHORT;

/* 626 */
struct _IMAGE_FILE_HEADER
{
  USHORT Machine;
  USHORT NumberOfSections;
  ULONG TimeDateStamp;
  ULONG PointerToSymbolTable;
  ULONG NumberOfSymbols;
  USHORT SizeOfOptionalHeader;
  USHORT Characteristics;
};

/* 627 */
typedef _IMAGE_FILE_HEADER *PIMAGE_FILE_HEADER;

/* 628 */
struct _IMAGE_DATA_DIRECTORY
{
  ULONG VirtualAddress;
  ULONG Size;
};

/* 629 */
typedef _IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY;

/* 630 */
struct _IMAGE_OPTIONAL_HEADER
{
  USHORT Magic;
  UCHAR MajorLinkerVersion;
  UCHAR MinorLinkerVersion;
  ULONG SizeOfCode;
  ULONG SizeOfInitializedData;
  ULONG SizeOfUninitializedData;
  ULONG AddressOfEntryPoint;
  ULONG BaseOfCode;
  ULONG BaseOfData;
  ULONG ImageBase;
  ULONG SectionAlignment;
  ULONG FileAlignment;
  USHORT MajorOperatingSystemVersion;
  USHORT MinorOperatingSystemVersion;
  USHORT MajorImageVersion;
  USHORT MinorImageVersion;
  USHORT MajorSubsystemVersion;
  USHORT MinorSubsystemVersion;
  ULONG Reserved1;
  ULONG SizeOfImage;
  ULONG SizeOfHeaders;
  ULONG CheckSum;
  USHORT Subsystem;
  USHORT DllCharacteristics;
  ULONG SizeOfStackReserve;
  ULONG SizeOfStackCommit;
  ULONG SizeOfHeapReserve;
  ULONG SizeOfHeapCommit;
  ULONG LoaderFlags;
  ULONG NumberOfRvaAndSizes;
  IMAGE_DATA_DIRECTORY DataDirectory[16];
};

/* 631 */
typedef _IMAGE_OPTIONAL_HEADER *PIMAGE_OPTIONAL_HEADER;

/* 632 */
union $4830ABE86DFE7A9DBE51B2D04F47022D
{
  ULONG PhysicalAddress;
  ULONG VirtualSize;
};

/* 633 */
struct _IMAGE_SECTION_HEADER
{
  UCHAR Name[8];
  $4830ABE86DFE7A9DBE51B2D04F47022D Misc;
  ULONG VirtualAddress;
  ULONG SizeOfRawData;
  ULONG PointerToRawData;
  ULONG PointerToRelocations;
  ULONG PointerToLinenumbers;
  USHORT NumberOfRelocations;
  USHORT NumberOfLinenumbers;
  ULONG Characteristics;
};

/* 634 */
typedef _IMAGE_SECTION_HEADER *PIMAGE_SECTION_HEADER;

/* 635 */
typedef _MEMORY_DESCRIPTOR *PMEMORY_DESCRIPTOR;

/* 636 */
typedef PMEMORY_DESCRIPTOR (*PARC_MEMORY_ROUTINE)(PMEMORY_DESCRIPTOR);

/* 637 */
typedef _FW_MEMORY_DESCRIPTOR *PFW_MEMORY_DESCRIPTOR;

/* 638 */
typedef ULONG (*PVEN_PRINT_ROUTINE)(PCHAR, ...);

/* 639 */
struct _SAVED_ARGUMENTS
{
  ULONG Argc;
  PUCHAR Argv[16];
  UCHAR Arguments[444];
};

/* 640 */
typedef _SAVED_ARGUMENTS *PSAVED_ARGUMENTS;

/* 641 */
struct _MIPS_RELOCATION_TYPE
{
  unsigned __int32 SymbolIndex : 24;
  unsigned __int32 Reserved : 3;
  unsigned __int32 Type : 4;
  unsigned __int32 External : 1;
};

/* 642 */
typedef _MIPS_RELOCATION_TYPE MIPS_RELOCATION_TYPE;

/* 643 */
struct _MIPS_RELOCATION_ENTRY
{
  ULONG VirtualAddress;
  MIPS_RELOCATION_TYPE Type;
};

/* 644 */
typedef _MIPS_RELOCATION_ENTRY *PMIPS_RELOCATION_ENTRY;

/* 645 */
struct _MIPS_SYMBOLIC_HEADER
{
  SHORT Magic;
  SHORT VersionStamp;
  ULONG NumOfLineNumberEntries;
  ULONG BytesForLineNumberEntries;
  ULONG PointerToLineNumberEntries;
  ULONG NumOfDenseNumbers;
  ULONG PointerToDenseNumbers;
  ULONG NumOfProcedures;
  ULONG PointerToProcedures;
  ULONG NumOfLocalSymbols;
  ULONG PointerToLocalSymbols;
  ULONG NumOfOptimizationEntries;
  ULONG PointerToOptimizationEntries;
  ULONG NumOfAuxSymbols;
  ULONG PointerToAuxSymbols;
  ULONG NumOfLocalStrings;
  ULONG PointerToLocalStrings;
  ULONG NumOfExternalStrings;
  ULONG PointerToExternalStrings;
  ULONG NumOfFileDescriptors;
  ULONG PointerToFileDescriptors;
  ULONG NumOfRelativeFileDescriptors;
  ULONG PointerToRelativeFileDescriptors;
  ULONG NumOfExternalSymbols;
  ULONG PointerToExternalSymbols;
};

/* 646 */
typedef _MIPS_SYMBOLIC_HEADER *PMIPS_SYMBOLIC_HEADER;

/* 647 */
struct _MIPS_LOCAL_SYMBOL
{
  ULONG IndexToSymbolString;
  ULONG Value;
  unsigned __int32 Type : 6;
  unsigned __int32 StorageClass : 5;
  unsigned __int32 Reserved : 1;
  unsigned __int32 Index : 20;
};

/* 648 */
typedef _MIPS_LOCAL_SYMBOL MIPS_LOCAL_SYMBOL;

/* 649 */
struct _MIPS_EXTERNAL_SYMBOL
{
  USHORT Reserved;
  USHORT PointerToFileDescriptor;
  MIPS_LOCAL_SYMBOL Symbol;
};

/* 650 */
typedef _MIPS_EXTERNAL_SYMBOL MIPS_EXTERNAL_SYMBOL;

/* 651 */
struct __attribute__((aligned(4))) _SECTION_RELOCATION_ENTRY
{
  ULONG FixupValue;
  ULONG PointerToRelocations;
  USHORT NumberOfRelocations;
};

/* 652 */
typedef _SECTION_RELOCATION_ENTRY SECTION_RELOCATION_ENTRY;

/* 653 */
typedef _SECTION_RELOCATION_ENTRY *PSECTION_RELOCATION_ENTRY;

/* 654 */
struct _KEYBOARD_BUFFER
{
  volatile UCHAR Buffer[32];
  volatile UCHAR ReadIndex;
  volatile UCHAR WriteIndex;
};

/* 655 */
typedef _KEYBOARD_BUFFER KEYBOARD_BUFFER;

/* 656 */
typedef void (*SIGNALHANDLER)(LONG);

/* 657 */
struct _R4000_CAUSE_REGISTER
{
  unsigned __int32 Zero1 : 2;
  unsigned __int32 ExcCode : 5;
  unsigned __int32 Zero2 : 1;
  unsigned __int32 IP : 8;
  unsigned __int32 Zero3 : 12;
  unsigned __int32 CE : 2;
  unsigned __int32 Zero4 : 1;
  unsigned __int32 BD : 1;
};

/* 658 */
typedef _R4000_CAUSE_REGISTER R4000_CAUSE_REGISTER;

/* 659 */
typedef CCHAR *PCCHAR;

/* 660 */
typedef LARGE_INTEGER *PPHYSICAL_ADDRESS;

/* 661 */
enum _INTERFACE_TYPE : __int32
{
  Internal = 0x0,
  Isa = 0x1,
  Eisa = 0x2,
  MicroChannel = 0x3,
  TurboChannel = 0x4,
  PCIBus = 0x5,
  VMEBus = 0x6,
  NuBus = 0x7,
  PCMCIABus = 0x8,
  CBus = 0x9,
  MPIBus = 0xA,
  MPSABus = 0xB,
  MaximumInterfaceType = 0xC,
};

/* 662 */
typedef _INTERFACE_TYPE INTERFACE_TYPE;

/* 663 */
enum _DMA_WIDTH : __int32
{
  Width8Bits = 0x0,
  Width16Bits = 0x1,
  Width32Bits = 0x2,
  MaximumDmaWidth = 0x3,
};

/* 664 */
typedef _DMA_WIDTH DMA_WIDTH;

/* 665 */
enum _DMA_SPEED : __int32
{
  Compatible = 0x0,
  TypeA = 0x1,
  TypeB = 0x2,
  TypeC = 0x3,
  MaximumDmaSpeed = 0x4,
};

/* 666 */
typedef _DMA_SPEED DMA_SPEED;

/* 667 */
struct _ADAPTER_OBJECT
{
  CSHORT Type;
  CSHORT Size;
  ULONG MapRegistersPerChannel;
  PVOID AdapterBaseVa;
  PVOID MapRegisterBase;
  ULONG NumberOfMapRegisters;
  BOOLEAN AdapterInUse;
  UCHAR ChannelNumber;
  UCHAR AdapterNumber;
  UCHAR AdapterMode;
  PUCHAR PagePort;
};

/* 668 */
typedef _ADAPTER_OBJECT *PADAPTER_OBJECT;

/* 669 */
enum _BUS_DATA_TYPE : __int32
{
  Cmos = 0x0,
  EisaConfiguration = 0x1,
  Pos = 0x2,
  CbusConfiguration = 0x3,
  PCIConfiguration = 0x4,
  VMEConfiguration = 0x5,
  NuBusConfiguration = 0x6,
  PCMCIAConfiguration = 0x7,
  MPIConfiguration = 0x8,
  MPSAConfiguration = 0x9,
  MaximumBusDataType = 0xA,
};

/* 670 */
typedef _BUS_DATA_TYPE BUS_DATA_TYPE;

/* 671 */
struct _DEVICE_DESCRIPTION
{
  ULONG Version;
  BOOLEAN Master;
  BOOLEAN ScatterGather;
  BOOLEAN DemandMode;
  BOOLEAN AutoInitialize;
  BOOLEAN Dma32BitAddresses;
  BOOLEAN IgnoreCount;
  BOOLEAN Reserved1;
  BOOLEAN Reserved2;
  ULONG BusNumber;
  ULONG DmaChannel;
  INTERFACE_TYPE InterfaceType;
  DMA_WIDTH DmaWidth;
  DMA_SPEED DmaSpeed;
  ULONG MaximumLength;
  ULONG DmaPort;
};

/* 672 */
typedef _DEVICE_DESCRIPTION *PDEVICE_DESCRIPTION;

/* 673 */
typedef _DMA_CHANNEL *PDMA_CHANNEL;

/* 674 */
struct _DMA_CHANNEL_MODE
{
  unsigned __int32 AccessTime : 3;
  unsigned __int32 TransferWidth : 2;
  unsigned __int32 InterruptEnable : 1;
  unsigned __int32 BurstMode : 1;
  unsigned __int32 FastDmaCycle : 1;
  unsigned __int32 Reserved1 : 24;
};

/* 675 */
typedef _DMA_CHANNEL_MODE *PDMA_CHANNEL_MODE;

/* 676 */
struct _DMA_CHANNEL_ENABLE
{
  unsigned __int32 ChannelEnable : 1;
  unsigned __int32 TransferDirection : 1;
  unsigned __int32 Reserved1 : 6;
  unsigned __int32 TerminalCount : 1;
  unsigned __int32 MemoryError : 1;
  unsigned __int32 TranslationError : 1;
  unsigned __int32 Reserved2 : 21;
};

/* 677 */
typedef _DMA_CHANNEL_ENABLE *PDMA_CHANNEL_ENABLE;

/* 678 */
typedef _DMA_PAGE *PDMA_PAGE;

/* 679 */
typedef _DMA1_CONTROL *PDMA1_CONTROL;

/* 680 */
typedef _DMA2_CONTROL *PDMA2_CONTROL;

/* 681 */
struct _DMA_EISA_MODE
{
  unsigned __int8 Channel : 2;
  unsigned __int8 TransferType : 2;
  unsigned __int8 AutoInitialize : 1;
  unsigned __int8 AddressDecrement : 1;
  unsigned __int8 RequestMode : 2;
};

/* 682 */
typedef _DMA_EISA_MODE *PDMA_EISA_MODE;

/* 683 */
struct _DMA_EXTENDED_MODE
{
  unsigned __int8 ChannelNumber : 2;
  unsigned __int8 TransferSize : 2;
  unsigned __int8 TimingMode : 2;
  unsigned __int8 EndOfPacketInput : 1;
  unsigned __int8 StopRegisterEnabled : 1;
};

/* 684 */
typedef _DMA_EXTENDED_MODE DMA_EXTENDED_MODE;

/* 685 */
typedef LIST_ENTRY *PLIST_ENTRY;

/* 686 */
struct _SYSTEM_ID
{
  CHAR VendorId[8];
  CHAR ProductId[8];
};

/* 687 */
typedef _SYSTEM_ID SYSTEM_ID;

/* 688 */
typedef _SYSTEM_ID *PSYSTEM_ID;

/* 689 */
struct __attribute__((packed)) __attribute__((aligned(4))) $96BC57C459D2C2FC39D5908C4C67B921
{
  PHYSICAL_ADDRESS Start;
  ULONG Length;
};

/* 690 */
struct $E87CEE7D11FDBB6C542742A6A85C36DC
{
  ULONG Level;
  ULONG Vector;
  ULONG Affinity;
};

/* 691 */
struct $4A05B49E300205A053AA0A5DF74A6ACD
{
  ULONG Channel;
  ULONG Port;
  ULONG Reserved1;
};

/* 692 */
struct $B8E15AB85D1800D1C1690729BF797C70
{
  ULONG DataSize;
  ULONG Reserved1;
  ULONG Reserved2;
};

/* 693 */
union $901E1535E870778193D49B8873AF0D45
{
  $96BC57C459D2C2FC39D5908C4C67B921 Port;
  $E87CEE7D11FDBB6C542742A6A85C36DC Interrupt;
  $96BC57C459D2C2FC39D5908C4C67B921 Memory;
  $4A05B49E300205A053AA0A5DF74A6ACD Dma;
  $B8E15AB85D1800D1C1690729BF797C70 DeviceSpecificData;
};

/* 694 */
struct _CM_PARTIAL_RESOURCE_DESCRIPTOR
{
  UCHAR Type;
  UCHAR ShareDisposition;
  USHORT Flags;
  $901E1535E870778193D49B8873AF0D45 u;
};

/* 695 */
typedef _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR;

/* 696 */
struct _CM_PARTIAL_RESOURCE_LIST
{
  USHORT Version;
  USHORT Revision;
  ULONG Count;
  CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1];
};

/* 697 */
typedef _CM_PARTIAL_RESOURCE_LIST *PCM_PARTIAL_RESOURCE_LIST;

/* 698 */
struct __attribute__((aligned(4))) _CM_FLOPPY_DEVICE_DATA
{
  USHORT Version;
  USHORT Revision;
  CHAR Size[8];
  ULONG MaxDensity;
  ULONG MountDensity;
  UCHAR StepRateHeadUnloadTime;
  UCHAR HeadLoadTime;
  UCHAR MotorOffTime;
  UCHAR SectorLengthCode;
  UCHAR SectorPerTrack;
  UCHAR ReadWriteGapLength;
  UCHAR DataTransferLength;
  UCHAR FormatGapLength;
  UCHAR FormatFillCharacter;
  UCHAR HeadSettleTime;
  UCHAR MotorSettleTime;
  UCHAR MaximumTrackValue;
  UCHAR DataTransferRate;
};

/* 699 */
typedef _CM_FLOPPY_DEVICE_DATA *PCM_FLOPPY_DEVICE_DATA;

/* 700 */
typedef _FLOPPY_CONTEXT *PFLOPPY_CONTEXT;

/* 701 */
enum _MEDIA_TYPE : __int32
{
  Unknown = 0x0,
  F5_1Pt2_512 = 0x1,
  F3_1Pt44_512 = 0x2,
  F3_2Pt88_512 = 0x3,
  F3_20Pt8_512 = 0x4,
  F3_720_512 = 0x5,
  F5_360_512 = 0x6,
  F5_320_512 = 0x7,
  F5_320_1024 = 0x8,
  F5_180_512 = 0x9,
  F5_160_512 = 0xA,
  RemovableMedia = 0xB,
  FixedMedia = 0xC,
};

/* 702 */
typedef _MEDIA_TYPE MEDIA_TYPE;

/* 703 */
enum _DRIVE_MEDIA_TYPE : __int32
{
  Drive360Media160 = 0x0,
  Drive360Media180 = 0x1,
  Drive360Media320 = 0x2,
  Drive360Media32X = 0x3,
  Drive360Media360 = 0x4,
  Drive720Media720 = 0x5,
  Drive120Media160 = 0x6,
  Drive120Media180 = 0x7,
  Drive120Media320 = 0x8,
  Drive120Media32X = 0x9,
  Drive120Media360 = 0xA,
  Drive120Media120 = 0xB,
  Drive144Media720 = 0xC,
  Drive144Media144 = 0xD,
  Drive288Media720 = 0xE,
  Drive288Media144 = 0xF,
  Drive288Media288 = 0x10,
};

/* 704 */
typedef _DRIVE_MEDIA_TYPE DRIVE_MEDIA_TYPE;

/* 705 */
struct _DRIVE_MEDIA_LIMITS
{
  DRIVE_MEDIA_TYPE HighestDriveMediaType;
  DRIVE_MEDIA_TYPE LowestDriveMediaType;
};

/* 706 */
typedef _DRIVE_MEDIA_LIMITS DRIVE_MEDIA_LIMITS;

/* 707 */
struct __attribute__((aligned(2))) _DRIVE_MEDIA_CONSTANTS
{
  MEDIA_TYPE MediaType;
  UCHAR StepRateHeadUnloadTime;
  UCHAR HeadLoadTime;
  UCHAR MotorOffTime;
  UCHAR SectorLengthCode;
  USHORT BytesPerSector;
  UCHAR SectorsPerTrack;
  UCHAR ReadWriteGapLength;
  UCHAR FormatGapLength;
  UCHAR FormatFillCharacter;
  UCHAR HeadSettleTime;
  USHORT MotorSettleTimeRead;
  USHORT MotorSettleTimeWrite;
  UCHAR MaximumTrack;
  UCHAR CylinderShift;
  UCHAR DataTransferRate;
  UCHAR NumberOfHeads;
  UCHAR DataLength;
  UCHAR MediaByte;
  UCHAR SkewDelta;
};

/* 708 */
typedef _DRIVE_MEDIA_CONSTANTS DRIVE_MEDIA_CONSTANTS;

/* 709 */
typedef _DRIVE_MEDIA_CONSTANTS *PDRIVE_MEDIA_CONSTANTS;

/* 710 */
struct _COMMAND_TABLE
{
  UCHAR NumberOfParameters;
  UCHAR FirstResultByte;
  UCHAR NumberOfResultBytes;
  BOOLEAN InterruptExpected;
  BOOLEAN AlwaysImplemented;
};

/* 711 */
typedef _COMMAND_TABLE COMMAND_TABLE;

/* 712 */
union $4E587D02244F6155CD0B4781E3561668
{
  UCHAR MainStatus;
  UCHAR DataRateSelect;
};

/* 713 */
union $EB3C811BE1814B39DCD8E65ED3DBED70
{
  UCHAR DigitalInput;
  UCHAR ConfigurationControl;
};

/* 714 */
struct _FLOPPY_REGISTERS
{
  UCHAR StatusRegisterA;
  UCHAR StatusRegisterB;
  UCHAR DigitalOutput;
  UCHAR Reserved1;
  $4E587D02244F6155CD0B4781E3561668 MsrDsr;
  UCHAR Fifo;
  UCHAR Reserved2;
  $EB3C811BE1814B39DCD8E65ED3DBED70 DirCcr;
};

/* 715 */
typedef _FLOPPY_REGISTERS *PFLOPPY_REGISTERS;

/* 716 */
typedef _HARDWARE_PTE *PHARDWARE_PTE;

/* 717 */
typedef _DEBUG_PARAMETERS *PDEBUG_PARAMETERS;

/* 718 */
struct _VIDEO_PROM_CONFIGURATION
{
  ULONG VideoMemorySize;
  ULONG VideoControlSize;
  ULONG CodeOffset;
  ULONG CodeSize;
};

/* 719 */
typedef _VIDEO_PROM_CONFIGURATION VIDEO_PROM_CONFIGURATION;

/* 720 */
struct _VIDEO_VIRTUAL_SPACE
{
  ULONG MemoryVirtualBase;
  ULONG ControlVirtualBase;
};

/* 721 */
typedef _VIDEO_VIRTUAL_SPACE VIDEO_VIRTUAL_SPACE;

/* 722 */
typedef _VIDEO_VIRTUAL_SPACE *PVIDEO_VIRTUAL_SPACE;

/* 723 */
typedef ARC_STATUS (*PVIDEO_INITIALIZE_ROUTINE)(PVIDEO_VIRTUAL_SPACE, PMONITOR_CONFIGURATION_DATA);

/* 724 */
typedef PTIME_FIELDS (*PARC_GET_TIME_ROUTINE)(void);

/* 725 */
typedef _DIRECTORY_ENTRY DIRECTORY_ENTRY;

/* 726 */
typedef LBO *PLBO;

/* 727 */
struct _PACKED_BIOS_PARAMETER_BLOCK
{
  UCHAR BytesPerSector[2];
  UCHAR SectorsPerCluster[1];
  UCHAR ReservedSectors[2];
  UCHAR Fats[1];
  UCHAR RootEntries[2];
  UCHAR Sectors[2];
  UCHAR Media[1];
  UCHAR SectorsPerFat[2];
  UCHAR SectorsPerTrack[2];
  UCHAR Heads[2];
  UCHAR HiddenSectors[4];
  UCHAR LargeSectors[4];
};

/* 728 */
typedef _PACKED_BIOS_PARAMETER_BLOCK PACKED_BIOS_PARAMETER_BLOCK;

/* 729 */
struct _PACKED_BOOT_SECTOR
{
  UCHAR Jump[3];
  UCHAR Oem[8];
  PACKED_BIOS_PARAMETER_BLOCK PackedBpb;
  UCHAR PhysicalDriveNumber;
  UCHAR CurrentHead;
  UCHAR Signature;
  UCHAR Id[4];
  UCHAR VolumeLabel[11];
  UCHAR SystemId[8];
};

/* 730 */
typedef _PACKED_BOOT_SECTOR PACKED_BOOT_SECTOR;

/* 731 */
typedef PACKED_BOOT_SECTOR *PPACKED_BOOT_SECTOR;

/* 732 */
typedef FAT_ENTRY *PFAT_ENTRY;

/* 733 */
typedef FAT8DOT3 *PFAT8DOT3;

/* 734 */
typedef DIRENT *PDIRENT;

/* 735 */
typedef _FAT_MCB *PFAT_MCB;

/* 736 */
typedef _FAT_STRUCTURE_CONTEXT *PFAT_STRUCTURE_CONTEXT;

/* 737 */
typedef _FAT_FILE_CONTEXT *PFAT_FILE_CONTEXT;

/* 738 */
typedef _BL_FILE_TABLE *PBL_FILE_TABLE;

/* 739 */
enum _CLUSTER_TYPE : __int32
{
  FatClusterAvailable = 0x0,
  FatClusterReserved = 0x1,
  FatClusterBad = 0x2,
  FatClusterLast = 0x3,
  FatClusterNext = 0x4,
};

/* 740 */
typedef _CLUSTER_TYPE CLUSTER_TYPE;

/* 741 */
union _UCHAR1
{
  UCHAR Uchar[1];
  UCHAR ForceAlignment;
};

/* 742 */
typedef _UCHAR1 UCHAR1;

/* 743 */
union _UCHAR2
{
  UCHAR Uchar[2];
  USHORT ForceAlignment;
};

/* 744 */
typedef _UCHAR2 UCHAR2;

/* 745 */
union _UCHAR4
{
  UCHAR Uchar[4];
  ULONG ForceAlignment;
};

/* 746 */
typedef _UCHAR4 UCHAR4;

/* 747 */
typedef BOOLEAN *PBOOLEAN;

/* 748 */
typedef KSPIN_LOCK *PKSPIN_LOCK;

/* 749 */
struct __attribute__((aligned(2))) _CM_SCSI_DEVICE_DATA
{
  USHORT Version;
  USHORT Revision;
  UCHAR HostIdentifier;
};

/* 750 */
typedef _CM_SCSI_DEVICE_DATA *PCM_SCSI_DEVICE_DATA;

/* 751 */
typedef BOOLEAN (*PKSYNCHRONIZE_ROUTINE)(PVOID);

/* 752 */
typedef _MDL MDL;

/* 753 */
typedef PCONFIGURATION_COMPONENT (*PARC_GET_COMPONENT_ROUTINE)(PCHAR);

/* 754 */
typedef ARC_STATUS (*PARC_GET_DATA_ROUTINE)(PVOID, PCONFIGURATION_COMPONENT);

/* 755 */
enum _KINTERRUPT_MODE : __int32
{
  LevelSensitive = 0x0,
  Latched = 0x1,
};

/* 756 */
typedef _KINTERRUPT_MODE KINTERRUPT_MODE;

/* 757 */
typedef BOOLEAN (*PKSERVICE_ROUTINE)(_KINTERRUPT *, PVOID);

/* 758 */
struct _KINTERRUPT
{
  CSHORT Type;
  CSHORT Size;
  LIST_ENTRY InterruptListEntry;
  PKSERVICE_ROUTINE ServiceRoutine;
  PVOID ServiceContext;
  KSPIN_LOCK SpinLock;
  PKSPIN_LOCK ActualLock;
  PKINTERRUPT_ROUTINE DispatchAddress;
  ULONG Vector;
  KIRQL Irql;
  KIRQL SynchronizeIrql;
  BOOLEAN FloatingSave;
  BOOLEAN Connected;
  CCHAR Number;
  KINTERRUPT_MODE Mode;
  BOOLEAN ShareVector;
  ULONG DispatchCode[4];
};

/* 759 */
typedef _KINTERRUPT *PKINTERRUPT;

/* 760 */
typedef _DRIVER_OBJECT *PDRIVER_OBJECT;

/* 761 */
typedef _IRP IRP;

/* 762 */
typedef _IO_STACK_LOCATION IO_STACK_LOCATION;

/* 763 */
typedef _IO_STACK_LOCATION *PIO_STACK_LOCATION;

/* 764 */
typedef _DEVICE_DESCRIPTION DEVICE_DESCRIPTION;

/* 765 */
typedef _ARC_CODES ARC_CODES;

/* 766 */
typedef PHYSICAL_ADDRESS SCSI_PHYSICAL_ADDRESS;

/* 767 */
struct __attribute__((aligned(4))) _ACCESS_RANGE
{
  SCSI_PHYSICAL_ADDRESS RangeStart;
  ULONG RangeLength;
  BOOLEAN RangeInMemory;
};

/* 768 */
typedef _ACCESS_RANGE ACCESS_RANGE;

/* 769 */
struct _PORT_CONFIGURATION_INFORMATION
{
  ULONG Length;
  ULONG SystemIoBusNumber;
  INTERFACE_TYPE AdapterInterfaceType;
  ULONG BusInterruptLevel;
  ULONG BusInterruptVector;
  KINTERRUPT_MODE InterruptMode;
  ULONG MaximumTransferLength;
  ULONG NumberOfPhysicalBreaks;
  ULONG DmaChannel;
  ULONG DmaPort;
  DMA_WIDTH DmaWidth;
  DMA_SPEED DmaSpeed;
  ULONG AlignmentMask;
  ULONG NumberOfAccessRanges;
  ACCESS_RANGE (*AccessRanges)[];
  PVOID Reserved;
  UCHAR NumberOfBuses;
  CCHAR InitiatorBusId[8];
  BOOLEAN ScatterGather;
  BOOLEAN Master;
  BOOLEAN CachesData;
  BOOLEAN AdapterScansDown;
  BOOLEAN AtdiskPrimaryClaimed;
  BOOLEAN AtdiskSecondaryClaimed;
  BOOLEAN Dma32BitAddresses;
  BOOLEAN DemandMode;
  BOOLEAN MapBuffers;
  BOOLEAN NeedPhysicalAddresses;
  BOOLEAN TaggedQueuing;
  BOOLEAN AutoRequestSense;
  BOOLEAN MultipleRequestPerLu;
  BOOLEAN ReceiveEvent;
  BOOLEAN RealModeInitialized;
  BOOLEAN BufferAccessScsiPortControlled;
  UCHAR MaximumNumberOfTargets;
  UCHAR ReservedUchars[2];
  ULONG SlotNumber;
};

/* 770 */
typedef _PORT_CONFIGURATION_INFORMATION PORT_CONFIGURATION_INFORMATION;

/* 771 */
typedef _PORT_CONFIGURATION_INFORMATION *PPORT_CONFIGURATION_INFORMATION;

/* 772 */
typedef _SCSI_REQUEST_BLOCK SCSI_REQUEST_BLOCK;

/* 773 */
typedef _SCSI_REQUEST_BLOCK *PSCSI_REQUEST_BLOCK;

/* 774 */
typedef BOOLEAN (*PHW_INITIALIZE)(PVOID);

/* 775 */
typedef BOOLEAN (*PHW_STARTIO)(PVOID, PSCSI_REQUEST_BLOCK);

/* 776 */
typedef BOOLEAN (*PHW_INTERRUPT)(PVOID);

/* 777 */
typedef void (*PHW_DMA_STARTED)(PVOID);

/* 778 */
typedef ULONG (*PHW_FIND_ADAPTER)(PVOID, PVOID, PVOID, PCHAR, PPORT_CONFIGURATION_INFORMATION, PBOOLEAN);

/* 779 */
typedef BOOLEAN (*PHW_RESET_BUS)(PVOID, ULONG);

/* 780 */
typedef BOOLEAN (*PHW_ADAPTER_STATE)(PVOID, PVOID, BOOLEAN);

/* 781 */
enum _SCSI_NOTIFICATION_TYPE : __int32
{
  RequestComplete = 0x0,
  NextRequest = 0x1,
  NextLuRequest = 0x2,
  ResetDetected = 0x3,
  CallDisableInterrupts = 0x4,
  CallEnableInterrupts = 0x5,
  RequestTimerCall = 0x6,
};

/* 782 */
typedef _SCSI_NOTIFICATION_TYPE SCSI_NOTIFICATION_TYPE;

/* 783 */
struct _HW_INITIALIZATION_DATA
{
  ULONG HwInitializationDataSize;
  INTERFACE_TYPE AdapterInterfaceType;
  PHW_INITIALIZE HwInitialize;
  PHW_STARTIO HwStartIo;
  PHW_INTERRUPT HwInterrupt;
  PHW_FIND_ADAPTER HwFindAdapter;
  PHW_RESET_BUS HwResetBus;
  PHW_DMA_STARTED HwDmaStarted;
  PHW_ADAPTER_STATE HwAdapterState;
  ULONG DeviceExtensionSize;
  ULONG SpecificLuExtensionSize;
  ULONG SrbExtensionSize;
  ULONG NumberOfAccessRanges;
  PVOID Reserved;
  BOOLEAN MapBuffers;
  BOOLEAN NeedPhysicalAddresses;
  BOOLEAN TaggedQueuing;
  BOOLEAN AutoRequestSense;
  BOOLEAN MultipleRequestPerLu;
  BOOLEAN ReceiveEvent;
  USHORT VendorIdLength;
  PVOID VendorId;
  USHORT ReservedUshort;
  USHORT DeviceIdLength;
  PVOID DeviceId;
};

/* 784 */
typedef _HW_INITIALIZATION_DATA *PHW_INITIALIZATION_DATA;

/* 785 */
struct _CDB6GENERIC
{
  UCHAR OperationCode;
  unsigned __int8 Immediate : 1;
  unsigned __int8 CommandUniqueBits : 4;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR CommandUniqueBytes[3];
  unsigned __int8 Link : 1;
  unsigned __int8 Flag : 1;
  unsigned __int8 Reserved : 4;
  unsigned __int8 VendorUnique : 2;
};

/* 786 */
struct _CDB6READWRITE
{
  UCHAR OperationCode;
  unsigned __int8 LogicalBlockMsb1 : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR LogicalBlockMsb0;
  UCHAR LogicalBlockLsb;
  UCHAR TransferBlocks;
  UCHAR Control;
};

/* 787 */
struct _CDB6INQUIRY
{
  UCHAR OperationCode;
  unsigned __int8 Reserved1 : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR PageCode;
  UCHAR IReserved;
  UCHAR AllocationLength;
  UCHAR Control;
};

/* 788 */
struct _CDB6FORMAT
{
  UCHAR OperationCode;
  unsigned __int8 FormatControl : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR FReserved1;
  UCHAR InterleaveMsb;
  UCHAR InterleaveLsb;
  UCHAR FReserved2;
};

/* 789 */
struct _CDB10
{
  UCHAR OperationCode;
  unsigned __int8 RelativeAddress : 1;
  unsigned __int8 Reserved1 : 2;
  unsigned __int8 ForceUnitAccess : 1;
  unsigned __int8 DisablePageOut : 1;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR LogicalBlockByte0;
  UCHAR LogicalBlockByte1;
  UCHAR LogicalBlockByte2;
  UCHAR LogicalBlockByte3;
  UCHAR Reserved2;
  UCHAR TransferBlocksMsb;
  UCHAR TransferBlocksLsb;
  UCHAR Control;
};

/* 790 */
struct _PAUSE_RESUME
{
  UCHAR OperationCode;
  unsigned __int8 Reserved1 : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved2[6];
  UCHAR Action;
  UCHAR Control;
};

/* 791 */
struct _READ_TOC
{
  UCHAR OperationCode;
  unsigned __int8 Reserved0 : 1;
  unsigned __int8 Msf : 1;
  unsigned __int8 Reserved1 : 3;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved2[4];
  UCHAR StartingTrack;
  UCHAR AllocationLength[2];
  unsigned __int8 Control : 6;
  unsigned __int8 Format : 2;
};

/* 792 */
struct _PLAY_AUDIO_MSF
{
  UCHAR OperationCode;
  unsigned __int8 Reserved1 : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved2;
  UCHAR StartingM;
  UCHAR StartingS;
  UCHAR StartingF;
  UCHAR EndingM;
  UCHAR EndingS;
  UCHAR EndingF;
  UCHAR Control;
};

/* 793 */
struct _SUBCHANNEL
{
  UCHAR OperationCode;
  unsigned __int8 Reserved0 : 1;
  unsigned __int8 Msf : 1;
  unsigned __int8 Reserved1 : 3;
  unsigned __int8 LogicalUnitNumber : 3;
  unsigned __int8 Reserved2 : 6;
  unsigned __int8 SubQ : 1;
  unsigned __int8 Reserved3 : 1;
  UCHAR Format;
  UCHAR Reserved4[2];
  UCHAR TrackNumber;
  UCHAR AllocationLength[2];
  UCHAR Control;
};

/* 794 */
struct _MODE_SENSE
{
  UCHAR OperationCode;
  unsigned __int8 Reserved1 : 3;
  unsigned __int8 Dbd : 1;
  unsigned __int8 Reserved2 : 1;
  unsigned __int8 LogicalUnitNumber : 3;
  unsigned __int8 PageCode : 6;
  unsigned __int8 Pc : 2;
  UCHAR Reserved3;
  UCHAR AllocationLength;
  UCHAR Control;
};

/* 795 */
struct _MODE_SELECT
{
  UCHAR OperationCode;
  unsigned __int8 SPBit : 1;
  unsigned __int8 Reserved1 : 3;
  unsigned __int8 PFBit : 1;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved2[2];
  UCHAR ParameterListLength;
  UCHAR Control;
};

/* 796 */
struct _LOCATE
{
  UCHAR OperationCode;
  unsigned __int8 Immediate : 1;
  unsigned __int8 CPBit : 1;
  unsigned __int8 BTBit : 1;
  unsigned __int8 Reserved1 : 2;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved3;
  UCHAR LogicalBlockAddress[4];
  UCHAR Reserved4;
  UCHAR Partition;
  UCHAR Control;
};

/* 797 */
struct _LOGSENSE
{
  UCHAR OperationCode;
  unsigned __int8 SPBit : 1;
  unsigned __int8 PPCBit : 1;
  unsigned __int8 Reserved1 : 3;
  unsigned __int8 LogicalUnitNumber : 3;
  unsigned __int8 PageCode : 6;
  unsigned __int8 PCBit : 2;
  UCHAR Reserved2;
  UCHAR Reserved3;
  UCHAR ParameterPointer[2];
  UCHAR AllocationLength[2];
  UCHAR Control;
};

/* 798 */
struct _PRINT
{
  UCHAR OperationCode;
  unsigned __int8 Reserved : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR TransferLength[3];
  UCHAR Control;
};

/* 799 */
struct _SEEK
{
  UCHAR OperationCode;
  unsigned __int8 Reserved1 : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR LogicalBlockAddress[4];
  UCHAR Reserved2[3];
  UCHAR Control;
};

/* 800 */
struct _ERASE
{
  UCHAR OperationCode;
  unsigned __int8 Long : 1;
  unsigned __int8 Immediate : 1;
  unsigned __int8 Reserved1 : 3;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved2[3];
  UCHAR Control;
};

/* 801 */
struct _START_STOP
{
  UCHAR OperationCode;
  unsigned __int8 Immediate : 1;
  unsigned __int8 Reserved1 : 4;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved2[2];
  unsigned __int8 Start : 1;
  unsigned __int8 LoadEject : 1;
  unsigned __int8 Reserved3 : 6;
  UCHAR Control;
};

/* 802 */
struct _MEDIA_REMOVAL
{
  UCHAR OperationCode;
  unsigned __int8 Reserved1 : 5;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR Reserved2[2];
  UCHAR Prevent;
  UCHAR Control;
};

/* 803 */
struct _SEEK_BLOCK
{
  UCHAR OperationCode;
  unsigned __int8 Immediate : 1;
  unsigned __int8 Reserved1 : 7;
  UCHAR BlockAddress[3];
  unsigned __int8 Link : 1;
  unsigned __int8 Flag : 1;
  unsigned __int8 Reserved2 : 4;
  unsigned __int8 VendorUnique : 2;
};

/* 804 */
struct _REQUEST_BLOCK_ADDRESS
{
  UCHAR OperationCode;
  UCHAR Reserved1[3];
  UCHAR AllocationLength;
  unsigned __int8 Link : 1;
  unsigned __int8 Flag : 1;
  unsigned __int8 Reserved2 : 4;
  unsigned __int8 VendorUnique : 2;
};

/* 805 */
struct _PARTITION
{
  UCHAR OperationCode;
  unsigned __int8 Immediate : 1;
  unsigned __int8 Sel : 1;
  unsigned __int8 PartitionSelect : 6;
  UCHAR Reserved1[3];
  UCHAR Control;
};

/* 806 */
struct _WRITE_TAPE_MARKS
{
  UCHAR OperationCode;
  unsigned __int8 Immediate : 1;
  unsigned __int8 WriteSetMarks : 1;
  unsigned __int8 Reserved : 3;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR TransferLength[3];
  UCHAR Control;
};

/* 807 */
struct $28FCBD1944F2978A5E67C512D5A65D39
{
  unsigned __int8 Link : 1;
  unsigned __int8 Flag : 1;
  unsigned __int8 Reserved : 4;
  unsigned __int8 VendorUnique : 2;
};

/* 808 */
union $2996220BB4818C78971073C95693F44A
{
  UCHAR value;
  $28FCBD1944F2978A5E67C512D5A65D39 Fields;
};

/* 809 */
struct _SPACE_TAPE_MARKS
{
  UCHAR OperationCode;
  unsigned __int8 Code : 3;
  unsigned __int8 Reserved : 2;
  unsigned __int8 LogicalUnitNumber : 3;
  UCHAR NumMarksMSB;
  UCHAR NumMarks;
  UCHAR NumMarksLSB;
  $2996220BB4818C78971073C95693F44A Byte6;
};

/* 810 */
struct _READ_POSITION
{
  UCHAR Operation;
  unsigned __int8 BlockType : 1;
  unsigned __int8 Reserved1 : 4;
  unsigned __int8 Lun : 3;
  UCHAR Reserved2[7];
  UCHAR Control;
};

/* 811 */
struct _CDB6READWRITETAPE
{
  UCHAR OperationCode;
  unsigned __int8 VendorSpecific : 5;
  unsigned __int8 Reserved : 3;
  UCHAR TransferLenMSB;
  UCHAR TransferLen;
  UCHAR TransferLenLSB;
  unsigned __int8 Link : 1;
  unsigned __int8 Flag : 1;
  unsigned __int8 Reserved1 : 4;
  unsigned __int8 VendorUnique : 2;
};

/* 812 */
union __attribute__((aligned(4))) _CDB
{
  _CDB6GENERIC CDB6GENERIC;
  _CDB6GENERIC *PCDB6GENERIC;
  _CDB6READWRITE CDB6READWRITE;
  _CDB6READWRITE *PCDB6READWRITE;
  _CDB6INQUIRY CDB6INQUIRY;
  _CDB6INQUIRY *PCDB6INQUIRY;
  _CDB6FORMAT CDB6FORMAT;
  _CDB6FORMAT *PCDB6FORMAT;
  _CDB10 CDB10;
  _CDB10 *PCDB10;
  _PAUSE_RESUME PAUSE_RESUME;
  _PAUSE_RESUME *PPAUSE_RESUME;
  _READ_TOC READ_TOC;
  _READ_TOC *PREAD_TOC;
  _PLAY_AUDIO_MSF PLAY_AUDIO_MSF;
  _PLAY_AUDIO_MSF *PPLAY_AUDIO_MSF;
  _SUBCHANNEL SUBCHANNEL;
  _SUBCHANNEL *PSUBCHANNEL;
  _MODE_SENSE MODE_SENSE;
  _MODE_SENSE *PMODE_SENSE;
  _MODE_SELECT MODE_SELECT;
  _MODE_SELECT *PMODE_SELECT;
  _LOCATE LOCATE;
  _LOCATE *PLOCATE;
  _LOGSENSE LOGSENSE;
  _LOGSENSE *PLOGSENSE;
  _PRINT PRINT;
  _PRINT *PPRINT;
  _SEEK SEEK;
  _SEEK *PSEEK;
  _ERASE ERASE;
  _ERASE *PERASE;
  _START_STOP START_STOP;
  _START_STOP *PSTART_STOP;
  _MEDIA_REMOVAL MEDIA_REMOVAL;
  _MEDIA_REMOVAL *PMEDIA_REMOVAL;
  _SEEK_BLOCK SEEK_BLOCK;
  _SEEK_BLOCK *PSEEK_BLOCK;
  _REQUEST_BLOCK_ADDRESS REQUEST_BLOCK_ADDRESS;
  _REQUEST_BLOCK_ADDRESS *PREQUEST_BLOCK_ADDRESS;
  _PARTITION PARTITION;
  _PARTITION *PPARTITION;
  _WRITE_TAPE_MARKS WRITE_TAPE_MARKS;
  _WRITE_TAPE_MARKS *PWRITE_TAPE_MARKS;
  _SPACE_TAPE_MARKS SPACE_TAPE_MARKS;
  _SPACE_TAPE_MARKS *PSPACE_TAPE_MARKS;
  _READ_POSITION READ_POSITION;
  _READ_POSITION *PREAD_POSITION;
  _CDB6READWRITETAPE CDB6READWRITETAPE;
  _CDB6READWRITETAPE *PCDB6READWRITETAPE;
};

/* 813 */
typedef _CDB *PCDB;

/* 814 */
struct _INQUIRYDATA
{
  unsigned __int8 DeviceType : 5;
  unsigned __int8 DeviceTypeQualifier : 3;
  unsigned __int8 DeviceTypeModifier : 7;
  unsigned __int8 RemovableMedia : 1;
  UCHAR Versions;
  UCHAR ResponseDataFormat;
  UCHAR AdditionalLength;
  UCHAR Reserved[2];
  unsigned __int8 SoftReset : 1;
  unsigned __int8 CommandQueue : 1;
  unsigned __int8 Reserved2 : 1;
  unsigned __int8 LinkedCommands : 1;
  unsigned __int8 Synchronous : 1;
  unsigned __int8 Wide16Bit : 1;
  unsigned __int8 Wide32Bit : 1;
  unsigned __int8 RelativeAddressing : 1;
  UCHAR VendorId[8];
  UCHAR ProductId[16];
  UCHAR ProductRevisionLevel[4];
  UCHAR VendorSpecific[20];
  UCHAR Reserved3[40];
};

/* 815 */
typedef _INQUIRYDATA *PINQUIRYDATA;

/* 816 */
struct _READ_CAPACITY_DATA
{
  ULONG LogicalBlockAddress;
  ULONG BytesPerBlock;
};

/* 817 */
typedef _READ_CAPACITY_DATA *PREAD_CAPACITY_DATA;

/* 818 */
struct __attribute__((aligned(2))) _IO_SCSI_CAPABILITIES
{
  ULONG Length;
  ULONG MaximumTransferLength;
  ULONG MaximumPhysicalPages;
  ULONG SupportedAsynchronousEvents;
  ULONG AlignmentMask;
  BOOLEAN TaggedQueuing;
  BOOLEAN AdapterScansDown;
  BOOLEAN AdapterUsesPio;
};

/* 819 */
typedef _IO_SCSI_CAPABILITIES IO_SCSI_CAPABILITIES;

/* 820 */
typedef _IO_SCSI_CAPABILITIES *PIO_SCSI_CAPABILITIES;

/* 821 */
struct _LUNINFO
{
  UCHAR PathId;
  UCHAR TargetId;
  UCHAR Lun;
  BOOLEAN DeviceClaimed;
  PVOID DeviceObject;
  _LUNINFO *NextLunInfo;
  UCHAR InquiryData[36];
};

/* 822 */
typedef _LUNINFO *PLUNINFO;

/* 823 */
struct _SCSI_BUS_SCAN_DATA
{
  USHORT Length;
  UCHAR InitiatorBusId;
  UCHAR NumberOfLogicalUnits;
  PLUNINFO LunInfoList;
};

/* 824 */
typedef _SCSI_BUS_SCAN_DATA *PSCSI_BUS_SCAN_DATA;

/* 825 */
struct _SCSI_CONFIGURATION_INFO
{
  UCHAR NumberOfBuses;
  PSCSI_BUS_SCAN_DATA BusScanData[1];
};

/* 826 */
typedef _SCSI_CONFIGURATION_INFO *PSCSI_CONFIGURATION_INFO;

/* 827 */
struct _ADAPTER_TRANSFER
{
  PSCSI_REQUEST_BLOCK Srb;
  PVOID LogicalAddress;
  ULONG Length;
};

/* 828 */
typedef _ADAPTER_TRANSFER ADAPTER_TRANSFER;

/* 829 */
struct _SRB_SCATTER_GATHER
{
  ULONG PhysicalAddress;
  ULONG Length;
};

/* 830 */
typedef _SRB_SCATTER_GATHER SRB_SCATTER_GATHER;

/* 831 */
typedef _SRB_SCATTER_GATHER *PSRB_SCATTER_GATHER;

/* 832 */
struct _FULL_SCSI_REQUEST_BLOCK
{
  SCSI_REQUEST_BLOCK Srb;
  PVOID PreviousIrp;
  IRP Irp;
  IO_STACK_LOCATION IrpStack[2];
  ULONG SrbExtensionSize;
  MDL Mdl;
  ULONG PageFrame[20];
};

/* 833 */
typedef _FULL_SCSI_REQUEST_BLOCK FULL_SCSI_REQUEST_BLOCK;

/* 834 */
typedef _FULL_SCSI_REQUEST_BLOCK *PFULL_SCSI_REQUEST_BLOCK;

/* 835 */
struct _LOGICAL_UNIT_EXTENSION
{
  UCHAR PathId;
  UCHAR TargetId;
  UCHAR Lun;
  ULONG Flags;
  PIRP CurrentRequest;
  KSPIN_LOCK CurrentRequestSpinLock;
  PVOID SpecificLuExtension;
  _LOGICAL_UNIT_EXTENSION *NextLogicalUnit;
  KDEVICE_QUEUE RequestQueue;
  KSPIN_LOCK RequestQueueSpinLock;
  LONG RequestTimeoutCounter;
  ULONG RetryCount;
  UCHAR NumberOfLogicalUnits;
  PVOID MapRegisterBase;
  ULONG NumberOfMapRegisters;
  SRB_SCATTER_GATHER ScatterGather[17];
};

/* 836 */
typedef _LOGICAL_UNIT_EXTENSION *PLOGICAL_UNIT_EXTENSION;

/* 837 */
struct _DEVICE_EXTENSION
{
  PDEVICE_OBJECT DeviceObject;
  PVOID MapRegisterBase;
  PADAPTER_OBJECT DmaAdapterObject;
  ADAPTER_TRANSFER FlushAdapterParameters;
  UCHAR NumberOfBuses;
  UCHAR MaximumTargetIds;
  IO_SCSI_CAPABILITIES Capabilities;
  ULONG Flags;
  ULONG InterruptFlags;
  PIRP CompletedRequests;
  ADAPTER_TRANSFER MapTransferParameters;
  KSPIN_LOCK SpinLock;
  PHW_INITIALIZE HwInitialize;
  PHW_STARTIO HwStartIo;
  PHW_INTERRUPT HwInterrupt;
  PHW_RESET_BUS HwReset;
  PHW_DMA_STARTED HwDmaStarted;
  BOOLEAN MapBuffers;
  BOOLEAN MasterWithAdapter;
  PVOID HwDeviceExtension;
  PHW_INTERRUPT HwRequestInterrupt;
  PHW_INTERRUPT HwTimerRequest;
  PSCSI_CONFIGURATION_INFO ScsiInfo;
  PVOID NonCachedExtension;
  PVOID SrbExtensionZonePool;
  PCHAR SrbExtensionPointer;
  ULONG PhysicalZoneBase;
  ULONG SrbExtensionSize;
  KSPIN_LOCK ZoneSpinLock;
  ULONG HwLogicalUnitExtensionSize;
  PLOGICAL_UNIT_EXTENSION LogicalUnitList;
  ULONG TimerValue;
  LONG PortTimeoutCounter;
};

/* 838 */
typedef _DEVICE_EXTENSION *PDEVICE_EXTENSION;

/* 839 */
struct _PARTITION_DESCRIPTOR
{
  UCHAR ActiveFlag;
  UCHAR StartingTrack;
  UCHAR StartingCylinderLsb;
  UCHAR StartingCylinderMsb;
  UCHAR PartitionType;
  UCHAR EndingTrack;
  UCHAR EndingCylinderLsb;
  UCHAR EndingCylinderMsb;
  UCHAR StartingSectorLsb0;
  UCHAR StartingSectorLsb1;
  UCHAR StartingSectorMsb0;
  UCHAR StartingSectorMsb1;
  UCHAR PartitionLengthLsb0;
  UCHAR PartitionLengthLsb1;
  UCHAR PartitionLengthMsb0;
  UCHAR PartitionLengthMsb1;
};

/* 840 */
typedef _PARTITION_DESCRIPTOR *PPARTITION_DESCRIPTOR;

/* 841 */
typedef _PARTITION_CONTEXT *PPARTITION_CONTEXT;

/* 842 */
struct _SENSE_DATA
{
  unsigned __int8 ErrorCode : 7;
  unsigned __int8 Valid : 1;
  UCHAR SegmentNumber;
  unsigned __int8 SenseKey : 4;
  unsigned __int8 Reserved : 1;
  unsigned __int8 IncorrectLength : 1;
  unsigned __int8 EndOfMedia : 1;
  unsigned __int8 FileMark : 1;
  UCHAR Information[4];
  UCHAR AdditionalSenseLength;
  UCHAR CommandSpecificInformation[4];
  UCHAR AdditionalSenseCode;
  UCHAR AdditionalSenseCodeQualifier;
  UCHAR FieldReplaceableUnitCode;
  UCHAR SenseKeySpecific[3];
};

/* 843 */
typedef _SENSE_DATA *PSENSE_DATA;

/* 844 */
struct _MODE_PARAMETER_HEADER
{
  UCHAR ModeDataLength;
  UCHAR MediumType;
  UCHAR DeviceSpecificParameter;
  UCHAR BlockDescriptorLength;
};

/* 845 */
typedef _MODE_PARAMETER_HEADER *PMODE_PARAMETER_HEADER;

/* 846 */
struct _MODE_DISCONNECT_PAGE
{
  unsigned __int8 PageCode : 6;
  unsigned __int8 Reserved : 1;
  unsigned __int8 PageSavable : 1;
  UCHAR PageLength;
  UCHAR BufferFullRatio;
  UCHAR BufferEmptyRatio;
  UCHAR BusInactivityLimit[2];
  UCHAR BusDisconnectTime[2];
  UCHAR BusConnectTime[2];
  UCHAR MaximumBurstSize[2];
  unsigned __int8 DataTransferDisconnect : 2;
  UCHAR Reserved2[3];
};

/* 847 */
typedef _MODE_DISCONNECT_PAGE *PMODE_DISCONNECT_PAGE;

/* 848 */
struct _FOUR_BYTE
{
  UCHAR Byte0;
  UCHAR Byte1;
  UCHAR Byte2;
  UCHAR Byte3;
};

/* 849 */
typedef _FOUR_BYTE *PFOUR_BYTE;

/* 850 */
struct _EISA_MEMORY_TYPE
{
  unsigned __int8 ReadWrite : 1;
  unsigned __int8 Cached : 1;
  unsigned __int8 Reserved0 : 1;
  unsigned __int8 Type : 2;
  unsigned __int8 Shared : 1;
  unsigned __int8 Reserved1 : 1;
  unsigned __int8 MoreEntries : 1;
};

/* 851 */
typedef _EISA_MEMORY_TYPE EISA_MEMORY_TYPE;

/* 852 */
struct __attribute__((packed)) __attribute__((aligned(1))) _EISA_MEMORY_CONFIGURATION
{
  EISA_MEMORY_TYPE ConfigurationByte;
  UCHAR DataSize;
  USHORT AddressLowWord;
  UCHAR AddressHighByte;
  USHORT MemorySize;
};

/* 853 */
typedef _EISA_MEMORY_CONFIGURATION EISA_MEMORY_CONFIGURATION;

/* 854 */
struct _EISA_IRQ_DESCRIPTOR
{
  unsigned __int8 Interrupt : 4;
  unsigned __int8 Reserved : 1;
  unsigned __int8 LevelTriggered : 1;
  unsigned __int8 Shared : 1;
  unsigned __int8 MoreEntries : 1;
};

/* 855 */
typedef _EISA_IRQ_DESCRIPTOR EISA_IRQ_DESCRIPTOR;

/* 856 */
struct _EISA_IRQ_CONFIGURATION
{
  EISA_IRQ_DESCRIPTOR ConfigurationByte;
  UCHAR Reserved;
};

/* 857 */
typedef _EISA_IRQ_CONFIGURATION EISA_IRQ_CONFIGURATION;

/* 858 */
struct _DMA_CONFIGURATION_BYTE0
{
  unsigned __int8 Channel : 3;
  unsigned __int8 Reserved : 3;
  unsigned __int8 Shared : 1;
  unsigned __int8 MoreEntries : 1;
};

/* 859 */
typedef _DMA_CONFIGURATION_BYTE0 DMA_CONFIGURATION_BYTE0;

/* 860 */
struct _DMA_CONFIGURATION_BYTE1
{
  unsigned __int8 Reserved0 : 2;
  unsigned __int8 TransferSize : 2;
  unsigned __int8 Timing : 2;
  unsigned __int8 Reserved1 : 2;
};

/* 861 */
typedef _DMA_CONFIGURATION_BYTE1 DMA_CONFIGURATION_BYTE1;

/* 862 */
struct _EISA_DMA_CONFIGURATION
{
  DMA_CONFIGURATION_BYTE0 ConfigurationByte0;
  DMA_CONFIGURATION_BYTE1 ConfigurationByte1;
};

/* 863 */
typedef _EISA_DMA_CONFIGURATION EISA_DMA_CONFIGURATION;

/* 864 */
struct _EISA_PORT_DESCRIPTOR
{
  unsigned __int8 NumberPorts : 5;
  unsigned __int8 Reserved : 1;
  unsigned __int8 Shared : 1;
  unsigned __int8 MoreEntries : 1;
};

/* 865 */
typedef _EISA_PORT_DESCRIPTOR EISA_PORT_DESCRIPTOR;

/* 866 */
struct __attribute__((packed)) __attribute__((aligned(1))) _EISA_PORT_CONFIGURATION
{
  EISA_PORT_DESCRIPTOR Configuration;
  USHORT PortAddress;
};

/* 867 */
typedef _EISA_PORT_CONFIGURATION EISA_PORT_CONFIGURATION;

/* 868 */
struct _CM_EISA_SLOT_INFORMATION
{
  UCHAR ReturnCode;
  UCHAR ReturnFlags;
  UCHAR MajorRevision;
  UCHAR MinorRevision;
  USHORT Checksum;
  UCHAR NumberFunctions;
  UCHAR FunctionInformation;
  ULONG CompressedId;
};

/* 869 */
typedef _CM_EISA_SLOT_INFORMATION *PCM_EISA_SLOT_INFORMATION;

/* 870 */
struct _CM_EISA_FUNCTION_INFORMATION
{
  ULONG CompressedId;
  UCHAR IdSlotFlags1;
  UCHAR IdSlotFlags2;
  UCHAR MinorRevision;
  UCHAR MajorRevision;
  UCHAR Selections[26];
  UCHAR FunctionFlags;
  UCHAR TypeString[80];
  EISA_MEMORY_CONFIGURATION EisaMemory[9];
  EISA_IRQ_CONFIGURATION EisaIrq[7];
  EISA_DMA_CONFIGURATION EisaDma[4];
  EISA_PORT_CONFIGURATION EisaPort[20];
  UCHAR InitializationData[60];
};

/* 871 */
typedef _CM_EISA_FUNCTION_INFORMATION *PCM_EISA_FUNCTION_INFORMATION;

/* 872 */
typedef _HW_INITIALIZATION_DATA HW_INITIALIZATION_DATA;

/* 873 */
struct $C3C27C53F042E4353EE22CD6040618D5
{
  UCHAR Modifier[4];
};

/* 874 */
struct $BFCFB22563EE09E7C799F7726FF7A28A
{
  UCHAR TransferPeriod;
  UCHAR ReqAckOffset;
};

/* 875 */
struct $27E069D2F588F1BE9B805F146E789C86
{
  UCHAR Width;
};

/* 876 */
union _EXTENDED_ARGUMENTS
{
  $C3C27C53F042E4353EE22CD6040618D5 Modify;
  $BFCFB22563EE09E7C799F7726FF7A28A Synchronous;
  $27E069D2F588F1BE9B805F146E789C86 Wide;
};

/* 877 */
struct _SCSI_EXTENDED_MESSAGE
{
  UCHAR InitialMessageCode;
  UCHAR MessageLength;
  UCHAR MessageType;
  _EXTENDED_ARGUMENTS ExtendedArguments;
};

/* 878 */
typedef _SCSI_EXTENDED_MESSAGE *PSCSI_EXTENDED_MESSAGE;

/* 879 */
struct _SCSI_READ_REGISTERS_0
{
  UCHAR TransferCountLow;
  UCHAR TransferCountHigh;
  UCHAR Fifo;
  UCHAR Command;
  UCHAR ScsiStatus;
  UCHAR ScsiInterrupt;
  UCHAR SequenceStep;
  UCHAR FifoFlags;
  UCHAR Configuration1;
  UCHAR Reserved1;
  UCHAR Reserved2;
  UCHAR Configuration2;
  UCHAR Configuration3;
  UCHAR Configuration4;
  UCHAR TransferCountPage;
  UCHAR FifoBottem;
};

/* 880 */
typedef _SCSI_READ_REGISTERS_0 SCSI_READ_REGISTERS_0;

/* 881 */
struct _SCSI_WRITE_REGISTERS_0
{
  UCHAR TransferCountLow;
  UCHAR TransferCountHigh;
  UCHAR Fifo;
  UCHAR Command;
  UCHAR DestinationId;
  UCHAR SelectTimeOut;
  UCHAR SynchronousPeriod;
  UCHAR SynchronousOffset;
  UCHAR Configuration1;
  UCHAR ClockConversionFactor;
  UCHAR TestMode;
  UCHAR Configuration2;
  UCHAR Configuration3;
  UCHAR Configuration4;
  UCHAR TransferCountPage;
  UCHAR FifoBottem;
};

/* 882 */
typedef _SCSI_WRITE_REGISTERS_0 SCSI_WRITE_REGISTERS_0;

/* 883 */
union _SCSI_REGISTERS_0
{
  SCSI_READ_REGISTERS_0 ReadRegisters;
  SCSI_WRITE_REGISTERS_0 WriteRegisters;
};

/* 884 */
typedef _SCSI_REGISTERS_0 *PSCSI_REGISTERS_0;

/* 885 */
struct _SCSI_STATUS
{
  unsigned __int8 Phase : 3;
  unsigned __int8 ValidGroup : 1;
  unsigned __int8 TerminalCount : 1;
  unsigned __int8 ParityError : 1;
  unsigned __int8 GrossError : 1;
  unsigned __int8 Interrupt : 1;
};

/* 886 */
typedef _SCSI_STATUS SCSI_STATUS;

/* 887 */
struct _SCSI_INTERRUPT
{
  unsigned __int8 Selected : 1;
  unsigned __int8 SelectedWithAttention : 1;
  unsigned __int8 Reselected : 1;
  unsigned __int8 FunctionComplete : 1;
  unsigned __int8 BusService : 1;
  unsigned __int8 Disconnect : 1;
  unsigned __int8 IllegalCommand : 1;
  unsigned __int8 ScsiReset : 1;
};

/* 888 */
typedef _SCSI_INTERRUPT SCSI_INTERRUPT;

/* 889 */
struct _SCSI_SEQUENCE_STEP
{
  unsigned __int8 Step : 3;
  unsigned __int8 MaximumOffset : 1;
  unsigned __int8 Reserved : 4;
};

/* 890 */
typedef _SCSI_SEQUENCE_STEP SCSI_SEQUENCE_STEP;

/* 891 */
struct _SCSI_FIFO_FLAGS
{
  unsigned __int8 ByteCount : 5;
  unsigned __int8 FifoStep : 3;
};

/* 892 */
typedef _SCSI_FIFO_FLAGS SCSI_FIFO_FLAGS;

/* 893 */
struct _SCSI_CONFIGURATION1
{
  unsigned __int8 HostBusId : 3;
  unsigned __int8 ChipTestEnable : 1;
  unsigned __int8 ParityEnable : 1;
  unsigned __int8 ParityTestMode : 1;
  unsigned __int8 ResetInterruptDisable : 1;
  unsigned __int8 SlowCableMode : 1;
};

/* 894 */
typedef _SCSI_CONFIGURATION1 *PSCSI_CONFIGURATION1;

/* 895 */
struct _SCSI_CONFIGURATION2
{
  unsigned __int8 DmaParityEnable : 1;
  unsigned __int8 RegisterParityEnable : 1;
  unsigned __int8 TargetBadParityAbort : 1;
  unsigned __int8 Scsi2 : 1;
  unsigned __int8 HighImpedance : 1;
  unsigned __int8 EnableByteControl : 1;
  unsigned __int8 EnablePhaseLatch : 1;
  unsigned __int8 ReserveFifoByte : 1;
};

/* 896 */
typedef _SCSI_CONFIGURATION2 *PSCSI_CONFIGURATION2;

/* 897 */
struct _SCSI_CONFIGURATION3
{
  unsigned __int8 Threshold8 : 1;
  unsigned __int8 AlternateDmaMode : 1;
  unsigned __int8 SaveResidualByte : 1;
  unsigned __int8 FastClock : 1;
  unsigned __int8 FastScsi : 1;
  unsigned __int8 EnableCdb10 : 1;
  unsigned __int8 EnableQueue : 1;
  unsigned __int8 CheckIdMessage : 1;
};

/* 898 */
typedef _SCSI_CONFIGURATION3 SCSI_CONFIGURATION3;

/* 899 */
struct _NCR_PART_CODE
{
  unsigned __int8 RevisionLevel : 3;
  unsigned __int8 ChipFamily : 5;
};

/* 900 */
typedef _NCR_PART_CODE *PNCR_PART_CODE;

/* 901 */
struct _ADAPTER_READ_REGISTERS
{
  UCHAR Reserved00;
  UCHAR Reserved01;
  UCHAR OptionSelect1;
  UCHAR OptionSelect2;
  UCHAR Reserved04;
  UCHAR OptionSelect5;
  UCHAR Reserved06;
  UCHAR Reserved07;
  UCHAR Reserved08;
  UCHAR Reserved09;
  UCHAR Reserved0a;
  UCHAR Reserved0b;
  UCHAR DmaStatus;
  UCHAR Reserved0d;
  UCHAR Reserved0e;
  UCHAR Reserved0f;
};

/* 902 */
typedef _ADAPTER_READ_REGISTERS ADAPTER_READ_REGISTERS;

/* 903 */
struct _ADAPTER_WRITE_REGISTERS
{
  UCHAR Reserved00;
  UCHAR Reserved01;
  UCHAR OptionSelect1;
  UCHAR OptionSelect2;
  UCHAR Reserved04;
  UCHAR OptionSelect5;
  UCHAR Reserved06;
  UCHAR Reserved07;
  UCHAR Reserved08;
  UCHAR Reserved09;
  UCHAR DmaDecode;
  UCHAR Reserved0b;
  UCHAR Reserved0c;
  UCHAR Reserved0d;
  UCHAR Reserved0e;
  UCHAR Reserved0f;
};

/* 904 */
typedef _ADAPTER_WRITE_REGISTERS ADAPTER_WRITE_REGISTERS;

/* 905 */
typedef _ADAPTER_WRITE_REGISTERS *PADAPTER_WRITE_REGISTERS;

/* 906 */
union _ADAPTER_REGISTERS
{
  ADAPTER_READ_REGISTERS ReadRegisters;
  ADAPTER_WRITE_REGISTERS WriteRegisters;
};

/* 907 */
typedef _ADAPTER_REGISTERS *PADAPTER_REGISTERS;

/* 908 */
struct _POS_DATA_1
{
  unsigned __int8 AdapterEnable : 1;
  unsigned __int8 IoAddressSelects : 3;
  unsigned __int8 InterruptSelects : 2;
  unsigned __int8 InterruptEnable : 1;
  unsigned __int8 Reserved : 1;
};

/* 909 */
typedef _POS_DATA_1 *PPOS_DATA_1;

/* 910 */
struct _POS_DATA_2
{
  unsigned __int8 DmaSelects : 3;
  unsigned __int8 UnusedDmaSelect : 1;
  unsigned __int8 AdapterFairness : 1;
  unsigned __int8 PreemptCount : 2;
  unsigned __int8 DmaEnable : 1;
};

/* 911 */
typedef _POS_DATA_2 *PPOS_DATA_2;

/* 912 */
struct _POS_DATA_3
{
  unsigned __int8 Reserved : 3;
  unsigned __int8 SramAddressSelects : 3;
  unsigned __int8 HostIdSelects : 2;
};

/* 913 */
typedef _POS_DATA_3 *PPOS_DATA_3;

/* 914 */
struct _POS_DATA_4
{
  unsigned __int8 Reserved0 : 5;
  unsigned __int8 HostIdSelects : 1;
  unsigned __int8 Reserved1 : 2;
};

/* 915 */
typedef _POS_DATA_4 *PPOS_DATA_4;

/* 916 */
struct _SCSI_DMA_STATUS
{
  unsigned __int8 Interrupt : 1;
  unsigned __int8 DmaRequest : 1;
  unsigned __int8 Reserved : 6;
};

/* 917 */
typedef _SCSI_DMA_STATUS SCSI_DMA_STATUS;

/* 918 */
struct _POS_DATA
{
  USHORT AdapterId;
  UCHAR OptionData1;
  UCHAR OptionData2;
  UCHAR OptionData3;
  UCHAR OptionData4;
};

/* 919 */
typedef _POS_DATA POS_DATA;

/* 920 */
struct _INIT_DATA
{
  ULONG AdapterId;
  ULONG CardSlot;
  POS_DATA PosData[8];
};

/* 921 */
typedef _INIT_DATA INIT_DATA;

/* 922 */
typedef _INIT_DATA *PINIT_DATA;

/* 923 */
enum _ADAPTER_STATE : __int32
{
  BusFree = 0x0,
  AttemptingSelect = 0x1,
  CommandComplete = 0x2,
  CommandOut = 0x3,
  DataTransfer = 0x4,
  DisconnectExpected = 0x5,
  MessageAccepted = 0x6,
  MessageIn = 0x7,
  MessageOut = 0x8,
  Reselected = 0x9,
};

/* 924 */
typedef _ADAPTER_STATE ADAPTER_STATE;

/* 925 */
enum _CHIP_TYPES : __int32
{
  Ncr53c90 = 0x0,
  Ncr53c94 = 0x1,
  Fas216 = 0x2,
  Fas216Fast = 0x3,
};

/* 926 */
typedef _CHIP_TYPES CHIP_TYPES;

/* 927 */
struct _SRB_EXTENSION
{
  ULONG SrbExtensionFlags;
  ULONG SavedDataPointer;
  ULONG SavedDataLength;
  ULONG MaximumTransferLength;
};

/* 928 */
typedef _SRB_EXTENSION *PSRB_EXTENSION;

/* 929 */
struct _SPECIFIC_LOGICAL_UNIT_EXTENSION
{
  USHORT LuFlags;
  UCHAR RetryCount;
  ULONG SavedDataPointer;
  ULONG SavedDataLength;
  PSCSI_REQUEST_BLOCK ActiveLuRequest;
  PSCSI_REQUEST_BLOCK ActiveSendRequest;
};

/* 930 */
typedef _SPECIFIC_LOGICAL_UNIT_EXTENSION *PSPECIFIC_LOGICAL_UNIT_EXTENSION;

/* 931 */
struct _SPECIFIC_TARGET_EXTENSION
{
  UCHAR TargetFlags;
  UCHAR SynchronousPeriod;
  UCHAR SynchronousOffset;
  SCSI_CONFIGURATION3 Configuration3;
};

/* 932 */
typedef _SPECIFIC_TARGET_EXTENSION SPECIFIC_TARGET_EXTENSION;

/* 933 */
typedef _SPECIFIC_TARGET_EXTENSION *PSPECIFIC_TARGET_EXTENSION;

/* 934 */
struct __attribute__((aligned(4))) _SPECIFIC_DEVICE_EXTENSION
{
  ULONG AdapterFlags;
  ADAPTER_STATE AdapterState;
  PADAPTER_REGISTERS AdapterBase;
  PSCSI_REGISTERS_0 Adapter;
  PSCSI_REQUEST_BLOCK ActiveLuRequest;
  PSPECIFIC_LOGICAL_UNIT_EXTENSION ActiveLogicalUnit;
  PSCSI_REQUEST_BLOCK NextSrbRequest;
  ULONG ActiveDataPointer;
  ULONG ActiveDataLength;
  LONG InterruptCount;
  SPECIFIC_TARGET_EXTENSION TargetState[8];
  CHIP_TYPES ChipType;
  SCSI_STATUS AdapterStatus;
  SCSI_SEQUENCE_STEP SequenceStep;
  SCSI_INTERRUPT AdapterInterrupt;
  SCSI_CONFIGURATION3 Configuration3;
  UCHAR AdapterBusId;
  UCHAR AdapterBusIdMask;
  UCHAR ClockSpeed;
  BOOLEAN InterruptPending;
  UCHAR MessageBuffer[8];
  UCHAR MessageCount;
  UCHAR MessageSent;
  UCHAR TargetId;
  UCHAR Lun;
  UCHAR ErrorCount;
};

/* 935 */
typedef _SPECIFIC_DEVICE_EXTENSION *PSPECIFIC_DEVICE_EXTENSION;

/* 936 */
struct _SYNCHRONOUS_TYPE_PARAMETERS
{
  UCHAR MaximumPeriodCyles;
  UCHAR SynchronousPeriodCyles;
  UCHAR InitialRegisterValue;
};

/* 937 */
typedef _SYNCHRONOUS_TYPE_PARAMETERS SYNCHRONOUS_TYPE_PARAMETERS;

/* 938 */
typedef wchar_t wctype_t;

/* 939 */
typedef const WCHAR *PCWSTR;

/* 940 */
struct __attribute__((aligned(4))) _CDFS_STRUCTURE_CONTEXT
{
  ULONG RootDirSectorOffset;
  ULONG RootDirDiskOffset;
  ULONG RootDirSize;
  ULONG DirSectorOffset;
  ULONG DirDiskOffset;
  ULONG DirSize;
  ULONG LbnBlockSize;
  ULONG LogicalBlockCount;
  BOOLEAN IsIsoVol;
};

/* 941 */
typedef _CDFS_STRUCTURE_CONTEXT *PCDFS_STRUCTURE_CONTEXT;

/* 942 */
typedef ULONG LOGICAL_BLOCK;

/* 943 */
struct _RAW_ISO_VD
{
  UCHAR DescType;
  UCHAR StandardId[5];
  UCHAR Version;
  UCHAR VolumeFlags;
  UCHAR SystemId[32];
  UCHAR VolumeId[32];
  UCHAR Reserved[8];
  ULONG VolSpaceI;
  ULONG VolSpaceM;
  UCHAR CharSet[32];
  USHORT VolSetSizeI;
  USHORT VolSetSizeM;
  USHORT VolSeqNumI;
  USHORT VolSeqNumM;
  USHORT LogicalBlkSzI;
  USHORT LogicalBlkSzM;
  ULONG PathTableSzI;
  ULONG PathTableSzM;
  ULONG PathTabLocI[2];
  ULONG PathTabLocM[2];
  UCHAR RootDe[34];
  UCHAR VolSetId[128];
  UCHAR PublId[128];
  UCHAR PreparerId[128];
  UCHAR AppId[128];
  UCHAR Copyright[37];
  UCHAR Abstract[37];
  UCHAR Bibliograph[37];
  UCHAR CreateDate[17];
  UCHAR ModDate[17];
  UCHAR ExpireDate[17];
  UCHAR EffectDate[17];
  UCHAR FileStructVer;
  UCHAR Reserved3;
  UCHAR ResApp[512];
  UCHAR Reserved4[653];
};

/* 944 */
typedef _RAW_ISO_VD RAW_ISO_VD;

/* 945 */
typedef RAW_ISO_VD *PRAW_ISO_VD;

/* 946 */
struct _RAW_HSG_VD
{
  LOGICAL_BLOCK BlkNumI;
  LOGICAL_BLOCK BlkNumM;
  UCHAR DescType;
  UCHAR StandardId[5];
  UCHAR Version;
  UCHAR VolumeFlags;
  UCHAR SystemId[32];
  UCHAR VolumeId[32];
  UCHAR Reserved[8];
  ULONG VolSpaceI;
  ULONG VolSpaceM;
  UCHAR CharSet[32];
  USHORT VolSetSizeI;
  USHORT VolSetSizeM;
  USHORT VolSeqNumI;
  USHORT VolSeqNumM;
  USHORT LogicalBlkSzI;
  USHORT LogicalBlkSzM;
  ULONG PathTableSzI;
  ULONG PathTableSzM;
  ULONG PathTabLocI[4];
  ULONG PathTabLocM[4];
  UCHAR RootDe[34];
  UCHAR VolSetId[128];
  UCHAR PublId[128];
  UCHAR PreparerId[128];
  UCHAR AppId[128];
  UCHAR Copyright[32];
  UCHAR Abstract[32];
  UCHAR CreateDate[16];
  UCHAR ModDate[16];
  UCHAR ExpireDate[16];
  UCHAR EffectDate[16];
  UCHAR FileStructVer;
  UCHAR Reserved3;
  UCHAR ResApp[512];
  UCHAR Reserved4[680];
};

/* 947 */
typedef _RAW_HSG_VD RAW_HSG_VD;

/* 948 */
typedef RAW_HSG_VD *PRAW_HSG_VD;

/* 949 */
struct _RAW_DIR_REC
{
  UCHAR DirLen;
  UCHAR XarLen;
  UCHAR FileLoc[4];
  UCHAR FileLocMot[4];
  UCHAR DataLen[4];
  UCHAR DataLenMot[4];
  UCHAR RecordTime[6];
  UCHAR FlagsHSG;
  UCHAR FlagsISO;
  UCHAR IntLeaveSize;
  UCHAR IntLeaveSkip;
  UCHAR Vssn[2];
  UCHAR VssnMot[2];
  UCHAR FileIdLen;
  UCHAR FileId[37];
};

/* 950 */
typedef _RAW_DIR_REC RAW_DIR_REC;

/* 951 */
typedef RAW_DIR_REC *PRAW_DIR_REC;

/* 952 */
enum _COMPARISON_RESULTS : __int32
{
  LessThan = 0xFFFFFFFF,
  EqualTo = 0x0,
  GreaterThan = 0x1,
};

/* 953 */
typedef _COMPARISON_RESULTS COMPARISON_RESULTS;

/* 954 */
union _USHORT2
{
  USHORT Ushort[2];
  ULONG ForceAlignment;
};

/* 955 */
typedef _USHORT2 USHORT2;

/* 956 */
typedef _USHORT2 *PUSHORT2;

/* 957 */
enum _EISA_FIRMWARE_ENTRY : __int32
{
  ProcessEOIRoutine = 0x0,
  TestIntRoutine = 0x1,
  RequestDMARoutine = 0x2,
  AbortDMARoutine = 0x3,
  GetDMAStatusRoutine = 0x4,
  DoLockRoutine = 0x5,
  RequestBusMasterRoutine = 0x6,
  ReleaseBusMasterRoutine = 0x7,
  RequestCpuAccessToBusRoutine = 0x8,
  ReleaseCpuAccessToBusRoutine = 0x9,
  FlushCacheRoutine = 0xA,
  InvalidateCacheRoutine = 0xB,
  ReservedRoutine = 0xC,
  BeginCriticalSectionRoutine = 0xD,
  EndCriticalSectionRoutine = 0xE,
  GenerateToneRoutine = 0xF,
  FlushWriteBuffersRoutine = 0x10,
  YieldRoutine = 0x11,
  StallProcessorRoutine = 0x12,
  MaximumEisaRoutine = 0x13,
};

/* 958 */
typedef void (*PEISA_STALL_PROCESSOR_RTN)(ULONG);

/* 959 */
struct _FW_MD_FLAGS
{
  unsigned __int32 Busy : 1;
};

/* 960 */
typedef _FW_MD_FLAGS FW_MD_FLAGS;

/* 961 */
struct _LOG_CONTEXT
{
  ULONG LogAddr;
  ULONG LogNumb;
  ULONG LogLimit;
  ULONG LogShift;
  PVOID BuffVir;
};

/* 962 */
typedef _LOG_CONTEXT LOG_CONTEXT;

/* 963 */
struct _MEM_CONTEXT
{
  ULONG BusNumber;
  ULONG SlotNumber;
  ULONG Type;
};

/* 964 */
typedef _MEM_CONTEXT MEM_CONTEXT;

/* 965 */
struct _EMEM_CONTEXT
{
  ULONG WinRelAddr;
  ULONG WinShift;
  PVOID WinRelAddrCtrl;
};

/* 966 */
typedef _EMEM_CONTEXT EMEM_CONTEXT;

/* 967 */
union $E84F51DBF8CA4941A69F4F1ECECD9A82
{
  LOG_CONTEXT l;
  MEM_CONTEXT m;
  EMEM_CONTEXT em;
};

/* 968 */
struct _FW_MD
{
  _FW_MD *Link;
  FW_MD_FLAGS Flags;
  ULONG Counter;
  ULONG PhysAddr;
  ULONG PagOffs;
  PVOID VirAddr;
  ULONG Size;
  ULONG PagNumb;
  BOOLEAN Cache;
  $E84F51DBF8CA4941A69F4F1ECECD9A82 u;
};

/* 969 */
typedef _FW_MD *PFW_MD;

/* 970 */
struct _EISA_POD_FLAGS
{
  unsigned __int32 IniDone : 1;
  unsigned __int32 Error : 1;
};

/* 971 */
typedef _EISA_POD_FLAGS EISA_POD_FLAGS;

/* 972 */
struct _EISA_SLOTS_INFO
{
  ULONG PhysSlots;
  ULONG VirSlots;
  ULONG SlotCfgMap;
};

/* 973 */
typedef _EISA_SLOTS_INFO *PEISA_SLOTS_INFO;

/* 974 */
struct _EISA_DMA_FLAGS
{
  unsigned __int8 Busy : 1;
  unsigned __int8 Tc : 1;
};

/* 975 */
typedef _EISA_DMA_FLAGS EISA_DMA_FLAGS;

/* 976 */
struct _EISA_DMA_INFO
{
  EISA_POD_FLAGS Flags;
  EISA_DMA_FLAGS DmaFlags[8];
  UCHAR DmaExtReg[8];
  ULONG TransferAddress[8];
};

/* 977 */
typedef _EISA_DMA_INFO *PEISA_DMA_INFO;

/* 978 */
struct __attribute__((aligned(4))) _EISA_INT_INFO
{
  EISA_POD_FLAGS Flags;
  USHORT IrqPresent;
  USHORT IrqShareable;
  USHORT IrqLevel;
};

/* 979 */
typedef _EISA_INT_INFO *PEISA_INT_INFO;

/* 980 */
struct _EISA_PORT_INFO
{
  EISA_POD_FLAGS Flags;
};

/* 981 */
typedef _EISA_PORT_INFO *PEISA_PORT_INFO;

/* 982 */
struct _EISA_BUS_INFO
{
  EISA_POD_FLAGS Flags;
  PFW_MD IoBusInfo;
  PFW_MD MemBusInfo;
  PEISA_SLOTS_INFO SlotsInfo;
  PEISA_DMA_INFO DmaInfo;
  PEISA_INT_INFO IntInfo;
  PEISA_PORT_INFO PortInfo;
};

/* 983 */
typedef _EISA_BUS_INFO EISA_BUS_INFO;

/* 984 */
enum _EISA_CHECKPOINT : __int32
{
  EisaPic = 0x0,
  EisaDma = 0x1,
  EisaNmi = 0x2,
  EisaRefresh = 0x3,
  EisaPort61 = 0x4,
  EisaTimer1 = 0x5,
  EisaTimer2 = 0x6,
  EisaCfg = 0x7,
  EisaHotNmi = 0x8,
  EisaPodMaxMsg = 0x9,
};

/* 985 */
struct __attribute__((aligned(4))) _EISA_CHECKPOINT_INFO
{
  PCHAR Msg;
  UCHAR Flags;
  UCHAR Par;
  UCHAR SubPar;
  UCHAR Led;
  UCHAR SubLed;
};

/* 986 */
typedef _EISA_CHECKPOINT_INFO EISA_CHECKPOINT_INFO;

/* 987 */
struct _EISA_DMA_REGS_TEST
{
  USHORT Address;
  USHORT LowPage;
  USHORT HighPage;
  USHORT LowCount;
  USHORT HighCount;
  USHORT Stop;
};

/* 988 */
typedef _EISA_DMA_REGS_TEST EISA_DMA_REGS_TEST;

/* 989 */
struct _EISA_DMA_CTRL_TEST
{
  USHORT Clear;
  USHORT MaskAll;
  USHORT Mask;
  USHORT MaskStatus;
  USHORT Chain;
};

/* 990 */
typedef _EISA_DMA_CTRL_TEST EISA_DMA_CTRL_TEST;

/* 991 */
struct _CONFIGDATAHEADER
{
  USHORT Version;
  USHORT Revision;
  PCHAR Type;
  PCHAR Vendor;
  PCHAR ProductName;
  PCHAR SerialNumber;
};

/* 992 */
typedef _CONFIGDATAHEADER CONFIGDATAHEADER;

/* 993 */
struct _EISA_SLOT_INFO
{
  UCHAR IdInfo;
  UCHAR MajorRevLevel;
  UCHAR MinorRevLevel;
  UCHAR LSByteChecksum;
  UCHAR MSByteChecksum;
  UCHAR FunctionsNumber;
  UCHAR FunctionInfo;
  UCHAR Id1stChar;
  UCHAR Id2ndChar;
  UCHAR Id3rdChar;
  UCHAR Id4thChar;
};

/* 994 */
typedef _EISA_SLOT_INFO EISA_SLOT_INFO;

/* 995 */
struct _EISA_ADAPTER_DETAILS
{
  CONFIGDATAHEADER ConfigDataHeader;
  ULONG NumberOfSlots;
  PVOID IoStart;
  ULONG IoSize;
};

/* 996 */
typedef _EISA_ADAPTER_DETAILS EISA_ADAPTER_DETAILS;

/* 997 */
enum _EISA_CFG_ERROR : __int32
{
  CfgNoErrCode = 0x0,
  IdTimeout = 0x1,
  CfgIdError = 0x2,
  CfgMissing = 0x3,
  CfgIncomplete = 0x4,
  CfgIncorrect = 0x5,
  CfgDeviceFailed = 0x6,
  CfgMemError = 0x7,
  CfgIrqError = 0x8,
  CfgDmaError = 0x9,
  CfgIniError = 0xA,
  OmfRomError = 0xB,
  OmfError = 0xC,
  MemAllocError = 0xD,
  TooManyDeviceError = 0xE,
  MaximumValue = 0xF,
};

/* 998 */
typedef _EISA_CFG_ERROR EISA_CFG_ERROR;

/* 999 */
typedef _EISA_CHECKPOINT EISA_CHECKPOINT;

/* 1000 */
typedef _EISA_BUS_INFO *PEISA_BUS_INFO;

/* 1001 */
typedef ULONG BOOLEAN_ULONG;

/* 1002 */
typedef _FILE_INFORMATION FILE_INFORMATION;

/* 1003 */
typedef _OMF_HDR *POMF_HDR;

/* 1004 */
typedef _OMF_DIR_ENT *POMF_DIR_ENT;

/* 1005 */
typedef _OMF_HEADER_CONTEXT *POMF_HEADER_CONTEXT;

/* 1006 */
struct _OMF_FAT_FILE_NAME
{
  CHAR ProductId[7];
  CHAR Version;
  CHAR Dot;
  CHAR Extension[2];
  CHAR Revision;
};

/* 1007 */
typedef _OMF_FAT_FILE_NAME *POMF_FAT_FILE_NAME;

/* 1008 */
typedef void (*PARC_REBOOT_ROUTINE)(void);

/* 1009 */
typedef void (*PARC_INTERACTIVE_MODE_ROUTINE)(void);

/* 1010 */
typedef PCHAR (*PARC_GET_ENVIRONMENT_ROUTINE)(PCHAR);

/* 1011 */
typedef ARC_STATUS (*PARC_SET_ENVIRONMENT_ROUTINE)(PCHAR, PCHAR);

/* 1012 */
enum _CM_RESOURCE_TYPE : __int32
{
  CmResourceTypeNull = 0x0,
  CmResourceTypePort = 0x1,
  CmResourceTypeInterrupt = 0x2,
  CmResourceTypeMemory = 0x3,
  CmResourceTypeDma = 0x4,
  CmResourceTypeDeviceSpecific = 0x5,
  CmResourceTypeMaximum = 0x6,
};

/* 1013 */
enum _CM_SHARE_DISPOSITION : __int32
{
  CmResourceShareUndetermined = 0x0,
  CmResourceShareDeviceExclusive = 0x1,
  CmResourceShareDriverExclusive = 0x2,
  CmResourceShareShared = 0x3,
};

/* 1014 */
typedef _CM_PARTIAL_RESOURCE_DESCRIPTOR *PCM_PARTIAL_RESOURCE_DESCRIPTOR;

/* 1015 */
typedef _CM_SCSI_DEVICE_DATA CM_SCSI_DEVICE_DATA;

/* 1016 */
struct _CM_VIDEO_DEVICE_DATA
{
  USHORT Version;
  USHORT Revision;
  ULONG VideoClock;
};

/* 1017 */
typedef _CM_VIDEO_DEVICE_DATA CM_VIDEO_DEVICE_DATA;

/* 1018 */
struct _CM_SONIC_DEVICE_DATA
{
  USHORT Version;
  USHORT Revision;
  USHORT DataConfigurationRegister;
  UCHAR EthernetAddress[8];
};

/* 1019 */
typedef _CM_SONIC_DEVICE_DATA CM_SONIC_DEVICE_DATA;

/* 1020 */
struct _CM_SERIAL_DEVICE_DATA
{
  USHORT Version;
  USHORT Revision;
  ULONG BaudClock;
};

/* 1021 */
typedef _CM_SERIAL_DEVICE_DATA CM_SERIAL_DEVICE_DATA;

/* 1022 */
struct _CM_MONITOR_DEVICE_DATA
{
  USHORT Version;
  USHORT Revision;
  USHORT HorizontalScreenSize;
  USHORT VerticalScreenSize;
  USHORT HorizontalResolution;
  USHORT VerticalResolution;
  USHORT HorizontalDisplayTimeLow;
  USHORT HorizontalDisplayTime;
  USHORT HorizontalDisplayTimeHigh;
  USHORT HorizontalBackPorchLow;
  USHORT HorizontalBackPorch;
  USHORT HorizontalBackPorchHigh;
  USHORT HorizontalFrontPorchLow;
  USHORT HorizontalFrontPorch;
  USHORT HorizontalFrontPorchHigh;
  USHORT HorizontalSyncLow;
  USHORT HorizontalSync;
  USHORT HorizontalSyncHigh;
  USHORT VerticalBackPorchLow;
  USHORT VerticalBackPorch;
  USHORT VerticalBackPorchHigh;
  USHORT VerticalFrontPorchLow;
  USHORT VerticalFrontPorch;
  USHORT VerticalFrontPorchHigh;
  USHORT VerticalSyncLow;
  USHORT VerticalSync;
  USHORT VerticalSyncHigh;
};

/* 1023 */
typedef _CM_MONITOR_DEVICE_DATA CM_MONITOR_DEVICE_DATA;

/* 1024 */
typedef _CM_FLOPPY_DEVICE_DATA CM_FLOPPY_DEVICE_DATA;

/* 1025 */
typedef PCONFIGURATION_COMPONENT (*PARC_GET_CHILD_ROUTINE)(PCONFIGURATION_COMPONENT);

/* 1026 */
typedef PCONFIGURATION_COMPONENT (*PARC_ADD_CHILD_ROUTINE)(PCONFIGURATION_COMPONENT, PCONFIGURATION_COMPONENT, PVOID);

/* 1027 */
struct _JAZZ_G300_CONFIGURATION_DATA
{
  USHORT Version;
  USHORT Revision;
  USHORT Irql;
  USHORT Vector;
  ULONG ControlBase;
  ULONG ControlSize;
  ULONG CursorBase;
  ULONG CursorSize;
  ULONG FrameBase;
  ULONG FrameSize;
};

/* 1028 */
typedef _JAZZ_G300_CONFIGURATION_DATA JAZZ_G300_CONFIGURATION_DATA;

/* 1029 */
typedef _CM_SONIC_DEVICE_DATA *PCM_SONIC_DEVICE_DATA;

/* 1030 */
typedef PCONFIGURATION_COMPONENT (*PARC_GET_PARENT_ROUTINE)(PCONFIGURATION_COMPONENT);

/* 1031 */
typedef ARC_STATUS (*PARC_DELETE_COMPONENT_ROUTINE)(PCONFIGURATION_COMPONENT);

/* 1032 */
typedef ARC_STATUS (*PARC_SAVE_CONFIGURATION_ROUTINE)(void);

/* 1033 */
enum _SYSTEM_INFORMATION_CLASS : __int32
{
  SystemBasicInformation = 0x0,
  SystemProcessorInformation = 0x1,
  SystemPerformanceInformation = 0x2,
  SystemTimeOfDayInformation = 0x3,
  SystemPathInformation = 0x4,
  SystemProcessInformation = 0x5,
  SystemCallCountInformation = 0x6,
  SystemDeviceInformation = 0x7,
  SystemProcessorPerformanceInformation = 0x8,
  SystemFlagsInformation = 0x9,
  SystemCallTimeInformation = 0xA,
  SystemModuleInformation = 0xB,
  SystemLocksInformation = 0xC,
  SystemStackTraceInformation = 0xD,
  SystemPagedPoolInformation = 0xE,
  SystemNonPagedPoolInformation = 0xF,
  SystemHandleInformation = 0x10,
  SystemObjectInformation = 0x11,
  SystemPageFileInformation = 0x12,
  SystemVdmInstemulInformation = 0x13,
  SystemVdmBopInformation = 0x14,
  SystemFileCacheInformation = 0x15,
  SystemPoolTagInformation = 0x16,
  SystemSpare1Information = 0x17,
  SystemSpare2Information = 0x18,
  SystemSpare3Information = 0x19,
  SystemSpare4Information = 0x1A,
  SystemSpare5Information = 0x1B,
  SystemTimeAdjustmentInformation = 0x1C,
  SystemSpare6Information = 0x1D,
  SystemNextEventIdInformation = 0x1E,
  SystemEventIdsInformation = 0x1F,
  SystemCrashDumpInformation = 0x20,
  SystemExceptionInformation = 0x21,
  SystemCrashDumpStateInformation = 0x22,
  SystemKernelDebuggerInformation = 0x23,
  SystemContextSwitchInformation = 0x24,
};

/* 1034 */
typedef _SYSTEM_INFORMATION_CLASS SYSTEM_INFORMATION_CLASS;

/* 1035 */
typedef ULONG (*PARC_GET_RELATIVE_TIME_ROUTINE)(void);

/* 1036 */
struct _RTC_CONTROL_REGISTER_D
{
  unsigned __int8 Fill : 7;
  unsigned __int8 ValidTime : 1;
};

/* 1037 */
typedef _RTC_CONTROL_REGISTER_D *PRTC_CONTROL_REGISTER_D;

/* 1038 */
typedef const unsigned __int8 *PCSZ;

/* 1039 */
typedef unsigned int size_t;

/* 1040 */
typedef File FILE_0;

/* 1041 */
struct File
{
  const File_methods *vmt;
};

/* 1042 */
struct File_methods
{
  size_t (*write)(FILE_0 *, const unsigned __int8 *, size_t);
  size_t (*read)(FILE_0 *, unsigned __int8 *, size_t);
};

/* 1043 */
typedef unsigned int __uint32_t;

/* 1044 */
typedef __uint32_t uint32_t;

/* 1045 */
typedef unsigned __int64 __uintmax_t;

/* 1046 */
typedef __uintmax_t uintmax_t;

/* 1047 */
struct MemFile
{
  File file;
  unsigned __int8 *buffer;
  size_t bytes_written;
  size_t size;
};

/* 1048 */
struct param
{
  int width;
  unsigned __int8 lz;
  unsigned __int8 sign;
  unsigned __int8 alt;
  unsigned __int8 base;
  unsigned __int8 uc;
  unsigned __int8 *bf;
};

/* 1049 */
typedef unsigned __int16 __uint16_t;

/* 1050 */
typedef int __int32_t;

/* 1051 */
typedef unsigned __int64 __uint64_t;

/* 1052 */
typedef __uint16_t uint16_t;

/* 1053 */
typedef __int32_t int32_t;

/* 1054 */
typedef __uint64_t uint64_t;

