Showing error 1554

User: Jiri Slaby
Error type: Reachable Error Location
Error type description: A specified error location is reachable in some program path
File location: ntdrivers/floppy2_safe.i.cil.c
Line in file: 6175
Project: SV-COMP 2013
Project version: 2.6.28
Tools: Manual Work
Entered: 2013-01-17 16:57:54 UTC


Source:

    1extern char __VERIFIER_nondet_char(void);
    2extern int __VERIFIER_nondet_int(void);
    3extern long __VERIFIER_nondet_long(void);
    4extern void *__VERIFIER_nondet_pointer(void);
    5/* Generated by CIL v. 1.3.7 */
    6/* print_CIL_Input is true */
    7
    8#line 33 "C:/NTDDK/inc/stdio.h"
    9#pragma pack(push,8)
   10#line 63 "C:/NTDDK/inc/stdio.h"
   11typedef unsigned int size_t;
   12#line 70 "C:/NTDDK/inc/stdio.h"
   13typedef unsigned short wchar_t;
   14#line 432
   15#pragma pack(pop)
   16#line 33 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h"
   17#pragma pack(push,8)
   18#line 156
   19#pragma pack(pop)
   20#line 88 "C:/NTDDK/inc/basetsd.h"
   21typedef unsigned long ULONG_PTR;
   22#line 88 "C:/NTDDK/inc/basetsd.h"
   23typedef unsigned long *PULONG_PTR;
   24#line 288 "C:/NTDDK/inc/basetsd.h"
   25typedef ULONG_PTR SIZE_T;
   26#line 217 "C:/NTDDK/inc/ntdef.h"
   27typedef void *PVOID;
   28#line 266 "C:/NTDDK/inc/ntdef.h"
   29typedef char CHAR;
   30#line 267 "C:/NTDDK/inc/ntdef.h"
   31typedef short SHORT;
   32#line 268 "C:/NTDDK/inc/ntdef.h"
   33typedef long LONG;
   34#line 276 "C:/NTDDK/inc/ntdef.h"
   35typedef wchar_t WCHAR;
   36#line 286 "C:/NTDDK/inc/ntdef.h"
   37typedef WCHAR *PWSTR;
   38#line 288 "C:/NTDDK/inc/ntdef.h"
   39typedef WCHAR const   *PCWSTR;
   40#line 293 "C:/NTDDK/inc/ntdef.h"
   41typedef CHAR *PCHAR;
   42#line 350 "C:/NTDDK/inc/ntdef.h"
   43typedef LONG *PLONG;
   44#line 360 "C:/NTDDK/inc/ntdef.h"
   45typedef unsigned char UCHAR;
   46#line 361 "C:/NTDDK/inc/ntdef.h"
   47typedef unsigned short USHORT;
   48#line 362 "C:/NTDDK/inc/ntdef.h"
   49typedef unsigned long ULONG;
   50#line 369 "C:/NTDDK/inc/ntdef.h"
   51typedef UCHAR *PUCHAR;
   52#line 371 "C:/NTDDK/inc/ntdef.h"
   53typedef ULONG *PULONG;
   54#line 394 "C:/NTDDK/inc/ntdef.h"
   55typedef void *HANDLE;
   56#line 400 "C:/NTDDK/inc/ntdef.h"
   57typedef HANDLE *PHANDLE;
   58#line 478 "C:/NTDDK/inc/ntdef.h"
   59typedef char CCHAR;
   60#line 479 "C:/NTDDK/inc/ntdef.h"
   61typedef short CSHORT;
   62#line 492 "C:/NTDDK/inc/ntdef.h"
   63typedef ULONG LCID;
   64#line 508 "C:/NTDDK/inc/ntdef.h"
   65typedef LONG NTSTATUS;
   66#line 621 "C:/NTDDK/inc/ntdef.h"
   67typedef long long LONGLONG;
   68#line 622 "C:/NTDDK/inc/ntdef.h"
   69typedef unsigned long long ULONGLONG;
   70#line 649 "C:/NTDDK/inc/ntdef.h"
   71struct __anonstruct____missing_field_name_1 {
   72   ULONG LowPart ;
   73   LONG HighPart ;
   74};
   75#line 649 "C:/NTDDK/inc/ntdef.h"
   76struct __anonstruct_u_2 {
   77   ULONG LowPart ;
   78   LONG HighPart ;
   79};
   80#line 649 "C:/NTDDK/inc/ntdef.h"
   81union _LARGE_INTEGER {
   82   struct __anonstruct____missing_field_name_1 __annonCompField1 ;
   83   struct __anonstruct_u_2 u ;
   84   LONGLONG QuadPart ;
   85};
   86#line 649 "C:/NTDDK/inc/ntdef.h"
   87typedef union _LARGE_INTEGER LARGE_INTEGER;
   88#line 662 "C:/NTDDK/inc/ntdef.h"
   89typedef LARGE_INTEGER *PLARGE_INTEGER;
   90#line 668 "C:/NTDDK/inc/ntdef.h"
   91struct __anonstruct____missing_field_name_3 {
   92   ULONG LowPart ;
   93   ULONG HighPart ;
   94};
   95#line 668 "C:/NTDDK/inc/ntdef.h"
   96struct __anonstruct_u_4 {
   97   ULONG LowPart ;
   98   ULONG HighPart ;
   99};
  100#line 668 "C:/NTDDK/inc/ntdef.h"
  101union _ULARGE_INTEGER {
  102   struct __anonstruct____missing_field_name_3 __annonCompField2 ;
  103   struct __anonstruct_u_4 u ;
  104   ULONGLONG QuadPart ;
  105};
  106#line 668 "C:/NTDDK/inc/ntdef.h"
  107typedef union _ULARGE_INTEGER ULARGE_INTEGER;
  108#line 690 "C:/NTDDK/inc/ntdef.h"
  109struct _LUID {
  110   ULONG LowPart ;
  111   LONG HighPart ;
  112};
  113#line 690 "C:/NTDDK/inc/ntdef.h"
  114typedef struct _LUID LUID;
  115#line 707 "C:/NTDDK/inc/ntdef.h"
  116typedef LARGE_INTEGER PHYSICAL_ADDRESS;
  117#line 956
  118enum _EVENT_TYPE {
  119    NotificationEvent = 0,
  120    SynchronizationEvent = 1
  121} ;
  122#line 956 "C:/NTDDK/inc/ntdef.h"
  123typedef enum _EVENT_TYPE EVENT_TYPE;
  124#line 984 "C:/NTDDK/inc/ntdef.h"
  125typedef char const   *PCSZ;
  126#line 991 "C:/NTDDK/inc/ntdef.h"
  127struct _STRING {
  128   USHORT Length ;
  129   USHORT MaximumLength ;
  130   PCHAR Buffer ;
  131};
  132#line 991 "C:/NTDDK/inc/ntdef.h"
  133typedef struct _STRING STRING;
  134#line 999 "C:/NTDDK/inc/ntdef.h"
  135typedef STRING *PSTRING;
  136#line 1002 "C:/NTDDK/inc/ntdef.h"
  137typedef PSTRING PANSI_STRING;
  138#line 1027 "C:/NTDDK/inc/ntdef.h"
  139struct _UNICODE_STRING {
  140   USHORT Length ;
  141   USHORT MaximumLength ;
  142   PWSTR Buffer ;
  143};
  144#line 1027 "C:/NTDDK/inc/ntdef.h"
  145typedef struct _UNICODE_STRING UNICODE_STRING;
  146#line 1036 "C:/NTDDK/inc/ntdef.h"
  147typedef UNICODE_STRING *PUNICODE_STRING;
  148#line 1046 "C:/NTDDK/inc/ntdef.h"
  149typedef UCHAR BOOLEAN;
  150#line 1057 "C:/NTDDK/inc/ntdef.h"
  151struct _LIST_ENTRY {
  152   struct _LIST_ENTRY *Flink ;
  153   struct _LIST_ENTRY *Blink ;
  154};
  155#line 1057 "C:/NTDDK/inc/ntdef.h"
  156typedef struct _LIST_ENTRY LIST_ENTRY;
  157#line 1057 "C:/NTDDK/inc/ntdef.h"
  158typedef struct _LIST_ENTRY *PLIST_ENTRY;
  159#line 1067 "C:/NTDDK/inc/ntdef.h"
  160struct _SINGLE_LIST_ENTRY {
  161   struct _SINGLE_LIST_ENTRY *Next ;
  162};
  163#line 1067 "C:/NTDDK/inc/ntdef.h"
  164typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY;
  165#line 1067 "C:/NTDDK/inc/ntdef.h"
  166typedef struct _SINGLE_LIST_ENTRY *PSINGLE_LIST_ENTRY;
  167#line 1078 "C:/NTDDK/inc/ntdef.h"
  168struct LIST_ENTRY32 {
  169   ULONG Flink ;
  170   ULONG Blink ;
  171};
  172#line 1078 "C:/NTDDK/inc/ntdef.h"
  173typedef struct LIST_ENTRY32 LIST_ENTRY32;
  174#line 1082 "C:/NTDDK/inc/ntdef.h"
  175typedef LIST_ENTRY32 *PLIST_ENTRY32;
  176#line 1084 "C:/NTDDK/inc/ntdef.h"
  177struct LIST_ENTRY64 {
  178   ULONGLONG Flink ;
  179   ULONGLONG Blink ;
  180};
  181#line 1084 "C:/NTDDK/inc/ntdef.h"
  182typedef struct LIST_ENTRY64 LIST_ENTRY64;
  183#line 1088 "C:/NTDDK/inc/ntdef.h"
  184typedef LIST_ENTRY64 *PLIST_ENTRY64;
  185#line 1173 "C:/NTDDK/inc/ntdef.h"
  186struct _OBJECT_ATTRIBUTES {
  187   ULONG Length ;
  188   HANDLE RootDirectory ;
  189   PUNICODE_STRING ObjectName ;
  190   ULONG Attributes ;
  191   PVOID SecurityDescriptor ;
  192   PVOID SecurityQualityOfService ;
  193};
  194#line 1173 "C:/NTDDK/inc/ntdef.h"
  195typedef struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES;
  196#line 1181 "C:/NTDDK/inc/ntdef.h"
  197typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
  198#line 17 "C:/NTDDK/inc/guiddef.h"
  199struct _GUID {
  200   unsigned long Data1 ;
  201   unsigned short Data2 ;
  202   unsigned short Data3 ;
  203   unsigned char Data4[8] ;
  204};
  205#line 17 "C:/NTDDK/inc/guiddef.h"
  206typedef struct _GUID GUID;
  207#line 1306 "C:/NTDDK/inc/ntdef.h"
  208typedef UCHAR KIRQL;
  209#line 1316
  210enum _NT_PRODUCT_TYPE {
  211    NtProductWinNt = 1,
  212    NtProductLanManNt = 2,
  213    NtProductServer = 3
  214} ;
  215#line 1316 "C:/NTDDK/inc/ntdef.h"
  216typedef enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE;
  217#line 75 "C:/NTDDK/inc/ddk/ntddk.h"
  218struct _KTHREAD;
  219#line 75
  220struct _KTHREAD;
  221#line 75 "C:/NTDDK/inc/ddk/ntddk.h"
  222typedef struct _KTHREAD *PKTHREAD;
  223#line 76
  224struct _ETHREAD;
  225#line 76
  226struct _ETHREAD;
  227#line 76 "C:/NTDDK/inc/ddk/ntddk.h"
  228typedef struct _ETHREAD *PETHREAD;
  229#line 77
  230struct _EPROCESS;
  231#line 77
  232struct _EPROCESS;
  233#line 77 "C:/NTDDK/inc/ddk/ntddk.h"
  234typedef struct _EPROCESS *PEPROCESS;
  235#line 80
  236struct _IO_TIMER;
  237#line 80
  238struct _IO_TIMER;
  239#line 80 "C:/NTDDK/inc/ddk/ntddk.h"
  240typedef struct _IO_TIMER *PIO_TIMER;
  241#line 81
  242struct _OBJECT_TYPE;
  243#line 81
  244struct _OBJECT_TYPE;
  245#line 81 "C:/NTDDK/inc/ddk/ntddk.h"
  246typedef struct _OBJECT_TYPE *POBJECT_TYPE;
  247#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  248struct __anonstruct____missing_field_name_5 {
  249   SINGLE_LIST_ENTRY Next ;
  250   USHORT Depth ;
  251   USHORT Sequence ;
  252};
  253#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  254union _SLIST_HEADER {
  255   ULONGLONG Alignment ;
  256   struct __anonstruct____missing_field_name_5 __annonCompField3 ;
  257};
  258#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  259typedef union _SLIST_HEADER SLIST_HEADER;
  260#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
  261typedef union _SLIST_HEADER *PSLIST_HEADER;
  262#line 204 "C:/NTDDK/inc/ddk/ntddk.h"
  263typedef CCHAR KPROCESSOR_MODE;
  264#line 222
  265struct _KAPC;
  266#line 222
  267struct _KAPC;
  268#line 222
  269struct _KAPC;
  270#line 224 "C:/NTDDK/inc/ddk/ntddk.h"
  271typedef void (*PKNORMAL_ROUTINE)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 );
  272#line 265 "C:/NTDDK/inc/ddk/ntddk.h"
  273struct _KAPC {
  274   CSHORT Type ;
  275   CSHORT Size ;
  276   ULONG Spare0 ;
  277   struct _KTHREAD *Thread ;
  278   LIST_ENTRY ApcListEntry ;
  279   void (*KernelRoutine)(struct _KAPC *Apc , PKNORMAL_ROUTINE *NormalRoutine , PVOID *NormalContext ,
  280                         PVOID *SystemArgument1 , PVOID *SystemArgument2 ) ;
  281   void (*RundownRoutine)(struct _KAPC *Apc ) ;
  282   void (*NormalRoutine)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 ) ;
  283   PVOID NormalContext ;
  284   PVOID SystemArgument1 ;
  285   PVOID SystemArgument2 ;
  286   CCHAR ApcStateIndex ;
  287   KPROCESSOR_MODE ApcMode ;
  288   BOOLEAN Inserted ;
  289};
  290#line 265 "C:/NTDDK/inc/ddk/ntddk.h"
  291typedef struct _KAPC KAPC;
  292#line 292
  293struct _KDPC;
  294#line 292
  295struct _KDPC;
  296#line 292
  297struct _KDPC;
  298#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
  299struct _KDPC {
  300   CSHORT Type ;
  301   UCHAR Number ;
  302   UCHAR Importance ;
  303   LIST_ENTRY DpcListEntry ;
  304   void (*DeferredRoutine)(struct _KDPC *Dpc , PVOID DeferredContext , PVOID SystemArgument1 ,
  305                           PVOID SystemArgument2 ) ;
  306   PVOID DeferredContext ;
  307   PVOID SystemArgument1 ;
  308   PVOID SystemArgument2 ;
  309   PULONG_PTR Lock ;
  310};
  311#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
  312typedef struct _KDPC KDPC;
  313#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
  314typedef struct _KDPC *PKDPC;
  315#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
  316struct _MDL {
  317   struct _MDL *Next ;
  318   CSHORT Size ;
  319   CSHORT MdlFlags ;
  320   struct _EPROCESS *Process ;
  321   PVOID MappedSystemVa ;
  322   PVOID StartVa ;
  323   ULONG ByteCount ;
  324   ULONG ByteOffset ;
  325};
  326#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
  327typedef struct _MDL MDL;
  328#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
  329typedef struct _MDL *PMDL;
  330#line 532 "C:/NTDDK/inc/ddk/ntddk.h"
  331typedef PVOID PACCESS_TOKEN;
  332#line 538 "C:/NTDDK/inc/ddk/ntddk.h"
  333typedef PVOID PSECURITY_DESCRIPTOR;
  334#line 546 "C:/NTDDK/inc/ddk/ntddk.h"
  335typedef ULONG ACCESS_MASK;
  336#line 27 "C:/NTDDK/inc/pshpack4.h"
  337#pragma pack(push,4)
  338#line 618 "C:/NTDDK/inc/ddk/ntddk.h"
  339struct _LUID_AND_ATTRIBUTES {
  340   LUID Luid ;
  341   ULONG Attributes ;
  342};
  343#line 618 "C:/NTDDK/inc/ddk/ntddk.h"
  344typedef struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES;
  345#line 30 "C:/NTDDK/inc/poppack.h"
  346#pragma pack(pop)
  347#line 681 "C:/NTDDK/inc/ddk/ntddk.h"
  348struct _PRIVILEGE_SET {
  349   ULONG PrivilegeCount ;
  350   ULONG Control ;
  351   LUID_AND_ATTRIBUTES Privilege[1] ;
  352};
  353#line 681 "C:/NTDDK/inc/ddk/ntddk.h"
  354typedef struct _PRIVILEGE_SET PRIVILEGE_SET;
  355#line 735
  356enum _SECURITY_IMPERSONATION_LEVEL {
  357    SecurityAnonymous = 0,
  358    SecurityIdentification = 1,
  359    SecurityImpersonation = 2,
  360    SecurityDelegation = 3
  361} ;
  362#line 735 "C:/NTDDK/inc/ddk/ntddk.h"
  363typedef enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL;
  364#line 753 "C:/NTDDK/inc/ddk/ntddk.h"
  365typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;
  366#line 762 "C:/NTDDK/inc/ddk/ntddk.h"
  367struct _SECURITY_QUALITY_OF_SERVICE {
  368   ULONG Length ;
  369   SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ;
  370   SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode ;
  371   BOOLEAN EffectiveOnly ;
  372};
  373#line 762 "C:/NTDDK/inc/ddk/ntddk.h"
  374typedef struct _SECURITY_QUALITY_OF_SERVICE *PSECURITY_QUALITY_OF_SERVICE;
  375#line 782 "C:/NTDDK/inc/ddk/ntddk.h"
  376typedef ULONG SECURITY_INFORMATION;
  377#line 816 "C:/NTDDK/inc/ddk/ntddk.h"
  378typedef LONG KPRIORITY;
  379#line 824 "C:/NTDDK/inc/ddk/ntddk.h"
  380typedef ULONG_PTR KSPIN_LOCK;
  381#line 825 "C:/NTDDK/inc/ddk/ntddk.h"
  382typedef KSPIN_LOCK *PKSPIN_LOCK;
  383#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
  384struct _RTL_QUERY_REGISTRY_TABLE {
  385   NTSTATUS ( __attribute__((__stdcall__)) (*QueryRoutine))(PWSTR ValueName , ULONG ValueType ,
  386                                                            PVOID ValueData , ULONG ValueLength ,
  387                                                            PVOID Context , PVOID EntryContext ) ;
  388   ULONG Flags ;
  389   PWSTR Name ;
  390   PVOID EntryContext ;
  391   ULONG DefaultType ;
  392   PVOID DefaultData ;
  393   ULONG DefaultLength ;
  394};
  395#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
  396typedef struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE;
  397#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
  398typedef struct _RTL_QUERY_REGISTRY_TABLE *PRTL_QUERY_REGISTRY_TABLE;
  399#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  400union __anonunion____missing_field_name_6 {
  401   NTSTATUS Status ;
  402   PVOID Pointer ;
  403};
  404#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  405struct _IO_STATUS_BLOCK {
  406   union __anonunion____missing_field_name_6 __annonCompField4 ;
  407   ULONG_PTR Information ;
  408};
  409#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  410typedef struct _IO_STATUS_BLOCK IO_STATUS_BLOCK;
  411#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
  412typedef struct _IO_STATUS_BLOCK *PIO_STATUS_BLOCK;
  413#line 3685
  414enum _FILE_INFORMATION_CLASS {
  415    FileDirectoryInformation = 1,
  416    FileFullDirectoryInformation = 2,
  417    FileBothDirectoryInformation = 3,
  418    FileBasicInformation = 4,
  419    FileStandardInformation = 5,
  420    FileInternalInformation = 6,
  421    FileEaInformation = 7,
  422    FileAccessInformation = 8,
  423    FileNameInformation = 9,
  424    FileRenameInformation = 10,
  425    FileLinkInformation = 11,
  426    FileNamesInformation = 12,
  427    FileDispositionInformation = 13,
  428    FilePositionInformation = 14,
  429    FileFullEaInformation = 15,
  430    FileModeInformation = 16,
  431    FileAlignmentInformation = 17,
  432    FileAllInformation = 18,
  433    FileAllocationInformation = 19,
  434    FileEndOfFileInformation = 20,
  435    FileAlternateNameInformation = 21,
  436    FileStreamInformation = 22,
  437    FilePipeInformation = 23,
  438    FilePipeLocalInformation = 24,
  439    FilePipeRemoteInformation = 25,
  440    FileMailslotQueryInformation = 26,
  441    FileMailslotSetInformation = 27,
  442    FileCompressionInformation = 28,
  443    FileObjectIdInformation = 29,
  444    FileCompletionInformation = 30,
  445    FileMoveClusterInformation = 31,
  446    FileQuotaInformation = 32,
  447    FileReparsePointInformation = 33,
  448    FileNetworkOpenInformation = 34,
  449    FileAttributeTagInformation = 35,
  450    FileTrackingInformation = 36,
  451    FileMaximumInformation = 37
  452} ;
  453#line 3685 "C:/NTDDK/inc/ddk/ntddk.h"
  454typedef enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS;
  455#line 3731 "C:/NTDDK/inc/ddk/ntddk.h"
  456struct _FILE_BASIC_INFORMATION {
  457   LARGE_INTEGER CreationTime ;
  458   LARGE_INTEGER LastAccessTime ;
  459   LARGE_INTEGER LastWriteTime ;
  460   LARGE_INTEGER ChangeTime ;
  461   ULONG FileAttributes ;
  462};
  463#line 3731 "C:/NTDDK/inc/ddk/ntddk.h"
  464typedef struct _FILE_BASIC_INFORMATION *PFILE_BASIC_INFORMATION;
  465#line 3739 "C:/NTDDK/inc/ddk/ntddk.h"
  466struct _FILE_STANDARD_INFORMATION {
  467   LARGE_INTEGER AllocationSize ;
  468   LARGE_INTEGER EndOfFile ;
  469   ULONG NumberOfLinks ;
  470   BOOLEAN DeletePending ;
  471   BOOLEAN Directory ;
  472};
  473#line 3739 "C:/NTDDK/inc/ddk/ntddk.h"
  474typedef struct _FILE_STANDARD_INFORMATION *PFILE_STANDARD_INFORMATION;
  475#line 3760 "C:/NTDDK/inc/ddk/ntddk.h"
  476struct _FILE_NETWORK_OPEN_INFORMATION {
  477   LARGE_INTEGER CreationTime ;
  478   LARGE_INTEGER LastAccessTime ;
  479   LARGE_INTEGER LastWriteTime ;
  480   LARGE_INTEGER ChangeTime ;
  481   LARGE_INTEGER AllocationSize ;
  482   LARGE_INTEGER EndOfFile ;
  483   ULONG FileAttributes ;
  484};
  485#line 3760 "C:/NTDDK/inc/ddk/ntddk.h"
  486typedef struct _FILE_NETWORK_OPEN_INFORMATION *PFILE_NETWORK_OPEN_INFORMATION;
  487#line 3798
  488enum _FSINFOCLASS {
  489    FileFsVolumeInformation = 1,
  490    FileFsLabelInformation = 2,
  491    FileFsSizeInformation = 3,
  492    FileFsDeviceInformation = 4,
  493    FileFsAttributeInformation = 5,
  494    FileFsControlInformation = 6,
  495    FileFsFullSizeInformation = 7,
  496    FileFsObjectIdInformation = 8,
  497    FileFsMaximumInformation = 9
  498} ;
  499#line 3798 "C:/NTDDK/inc/ddk/ntddk.h"
  500typedef enum _FSINFOCLASS FS_INFORMATION_CLASS;
  501#line 3829
  502enum _INTERFACE_TYPE {
  503    InterfaceTypeUndefined = -1,
  504    Internal = 0,
  505    Isa = 1,
  506    Eisa = 2,
  507    MicroChannel = 3,
  508    TurboChannel = 4,
  509    PCIBus = 5,
  510    VMEBus = 6,
  511    NuBus = 7,
  512    PCMCIABus = 8,
  513    CBus = 9,
  514    MPIBus = 10,
  515    MPSABus = 11,
  516    ProcessorInternal = 12,
  517    InternalPowerBus = 13,
  518    PNPISABus = 14,
  519    PNPBus = 15,
  520    MaximumInterfaceType = 16
  521} ;
  522#line 3829 "C:/NTDDK/inc/ddk/ntddk.h"
  523typedef enum _INTERFACE_TYPE INTERFACE_TYPE;
  524#line 3829 "C:/NTDDK/inc/ddk/ntddk.h"
  525typedef enum _INTERFACE_TYPE *PINTERFACE_TYPE;
  526#line 4141 "C:/NTDDK/inc/ddk/ntddk.h"
  527struct _KEY_VALUE_FULL_INFORMATION {
  528   ULONG TitleIndex ;
  529   ULONG Type ;
  530   ULONG DataOffset ;
  531   ULONG DataLength ;
  532   ULONG NameLength ;
  533   WCHAR Name[1] ;
  534};
  535#line 4141 "C:/NTDDK/inc/ddk/ntddk.h"
  536typedef struct _KEY_VALUE_FULL_INFORMATION *PKEY_VALUE_FULL_INFORMATION;
  537#line 4294 "C:/NTDDK/inc/ddk/ntddk.h"
  538struct _CLIENT_ID {
  539   HANDLE UniqueProcess ;
  540   HANDLE UniqueThread ;
  541};
  542#line 4294 "C:/NTDDK/inc/ddk/ntddk.h"
  543typedef struct _CLIENT_ID CLIENT_ID;
  544#line 4298 "C:/NTDDK/inc/ddk/ntddk.h"
  545typedef CLIENT_ID *PCLIENT_ID;
  546#line 4587
  547enum _SYSTEM_POWER_STATE {
  548    PowerSystemUnspecified = 0,
  549    PowerSystemWorking = 1,
  550    PowerSystemSleeping1 = 2,
  551    PowerSystemSleeping2 = 3,
  552    PowerSystemSleeping3 = 4,
  553    PowerSystemHibernate = 5,
  554    PowerSystemShutdown = 6,
  555    PowerSystemMaximum = 7
  556} ;
  557#line 4587 "C:/NTDDK/inc/ddk/ntddk.h"
  558typedef enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE;
  559#line 4598
  560enum __anonenum_POWER_ACTION_11 {
  561    PowerActionNone = 0,
  562    PowerActionReserved = 1,
  563    PowerActionSleep = 2,
  564    PowerActionHibernate = 3,
  565    PowerActionShutdown = 4,
  566    PowerActionShutdownReset = 5,
  567    PowerActionShutdownOff = 6,
  568    PowerActionWarmEject = 7
  569} ;
  570#line 4598 "C:/NTDDK/inc/ddk/ntddk.h"
  571typedef enum __anonenum_POWER_ACTION_11 POWER_ACTION;
  572#line 4609
  573enum _DEVICE_POWER_STATE {
  574    PowerDeviceUnspecified = 0,
  575    PowerDeviceD0 = 1,
  576    PowerDeviceD1 = 2,
  577    PowerDeviceD2 = 3,
  578    PowerDeviceD3 = 4,
  579    PowerDeviceMaximum = 5
  580} ;
  581#line 4609 "C:/NTDDK/inc/ddk/ntddk.h"
  582typedef enum _DEVICE_POWER_STATE DEVICE_POWER_STATE;
  583#line 4618 "C:/NTDDK/inc/ddk/ntddk.h"
  584union _POWER_STATE {
  585   SYSTEM_POWER_STATE SystemState ;
  586   DEVICE_POWER_STATE DeviceState ;
  587};
  588#line 4618 "C:/NTDDK/inc/ddk/ntddk.h"
  589typedef union _POWER_STATE POWER_STATE;
  590#line 4623
  591enum _POWER_STATE_TYPE {
  592    SystemPowerState = 0,
  593    DevicePowerState = 1
  594} ;
  595#line 4623 "C:/NTDDK/inc/ddk/ntddk.h"
  596typedef enum _POWER_STATE_TYPE POWER_STATE_TYPE;
  597#line 6994 "C:/NTDDK/inc/ddk/ntddk.h"
  598struct _KSYSTEM_TIME {
  599   ULONG LowPart ;
  600   LONG High1Time ;
  601   LONG High2Time ;
  602};
  603#line 6994 "C:/NTDDK/inc/ddk/ntddk.h"
  604typedef struct _KSYSTEM_TIME KSYSTEM_TIME;
  605#line 7850
  606enum _ALTERNATIVE_ARCHITECTURE_TYPE {
  607    StandardDesign = 0,
  608    NEC98x86 = 1,
  609    EndAlternatives = 2
  610} ;
  611#line 7850 "C:/NTDDK/inc/ddk/ntddk.h"
  612typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE;
  613#line 7899 "C:/NTDDK/inc/ddk/ntddk.h"
  614struct _KUSER_SHARED_DATA {
  615   ULONG volatile   TickCountLow ;
  616   ULONG TickCountMultiplier ;
  617   KSYSTEM_TIME volatile   InterruptTime ;
  618   KSYSTEM_TIME volatile   SystemTime ;
  619   KSYSTEM_TIME volatile   TimeZoneBias ;
  620   USHORT ImageNumberLow ;
  621   USHORT ImageNumberHigh ;
  622   WCHAR NtSystemRoot[260] ;
  623   ULONG MaxStackTraceDepth ;
  624   ULONG CryptoExponent ;
  625   ULONG TimeZoneId ;
  626   ULONG Reserved2[8] ;
  627   NT_PRODUCT_TYPE NtProductType ;
  628   BOOLEAN ProductTypeIsValid ;
  629   ULONG NtMajorVersion ;
  630   ULONG NtMinorVersion ;
  631   BOOLEAN ProcessorFeatures[64] ;
  632   ULONG Reserved1 ;
  633   ULONG Reserved3 ;
  634   ULONG volatile   TimeSlip ;
  635   ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture ;
  636   LARGE_INTEGER SystemExpirationDate ;
  637   ULONG SuiteMask ;
  638   BOOLEAN KdDebuggerEnabled ;
  639};
  640#line 7899 "C:/NTDDK/inc/ddk/ntddk.h"
  641typedef struct _KUSER_SHARED_DATA KUSER_SHARED_DATA;
  642#line 8211 "C:/NTDDK/inc/ddk/ntddk.h"
  643typedef PVOID PASSIGNED_RESOURCE;
  644#line 27 "C:/NTDDK/inc/pshpack4.h"
  645#pragma pack(push,4)
  646#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  647struct __anonstruct_Generic_16 {
  648   PHYSICAL_ADDRESS Start ;
  649   ULONG Length ;
  650};
  651#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  652struct __anonstruct_Port_17 {
  653   PHYSICAL_ADDRESS Start ;
  654   ULONG Length ;
  655};
  656#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  657struct __anonstruct_Interrupt_18 {
  658   ULONG Level ;
  659   ULONG Vector ;
  660   ULONG Affinity ;
  661};
  662#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  663struct __anonstruct_Memory_19 {
  664   PHYSICAL_ADDRESS Start ;
  665   ULONG Length ;
  666};
  667#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  668struct __anonstruct_Dma_20 {
  669   ULONG Channel ;
  670   ULONG Port ;
  671   ULONG Reserved1 ;
  672};
  673#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  674struct __anonstruct_DevicePrivate_21 {
  675   ULONG Data[3] ;
  676};
  677#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  678struct __anonstruct_BusNumber_22 {
  679   ULONG Start ;
  680   ULONG Length ;
  681   ULONG Reserved ;
  682};
  683#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  684struct __anonstruct_DeviceSpecificData_23 {
  685   ULONG DataSize ;
  686   ULONG Reserved1 ;
  687   ULONG Reserved2 ;
  688};
  689#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  690union __anonunion_u_15 {
  691   struct __anonstruct_Generic_16 Generic ;
  692   struct __anonstruct_Port_17 Port ;
  693   struct __anonstruct_Interrupt_18 Interrupt ;
  694   struct __anonstruct_Memory_19 Memory ;
  695   struct __anonstruct_Dma_20 Dma ;
  696   struct __anonstruct_DevicePrivate_21 DevicePrivate ;
  697   struct __anonstruct_BusNumber_22 BusNumber ;
  698   struct __anonstruct_DeviceSpecificData_23 DeviceSpecificData ;
  699};
  700#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  701struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
  702   UCHAR Type ;
  703   UCHAR ShareDisposition ;
  704   USHORT Flags ;
  705   union __anonunion_u_15 u ;
  706};
  707#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  708typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR;
  709#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
  710typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
  711#line 30 "C:/NTDDK/inc/poppack.h"
  712#pragma pack(pop)
  713#line 8419 "C:/NTDDK/inc/ddk/ntddk.h"
  714struct _CM_PARTIAL_RESOURCE_LIST {
  715   USHORT Version ;
  716   USHORT Revision ;
  717   ULONG Count ;
  718   CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1] ;
  719};
  720#line 8419 "C:/NTDDK/inc/ddk/ntddk.h"
  721typedef struct _CM_PARTIAL_RESOURCE_LIST CM_PARTIAL_RESOURCE_LIST;
  722#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
  723struct _CM_FULL_RESOURCE_DESCRIPTOR {
  724   INTERFACE_TYPE InterfaceType ;
  725   ULONG BusNumber ;
  726   CM_PARTIAL_RESOURCE_LIST PartialResourceList ;
  727};
  728#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
  729typedef struct _CM_FULL_RESOURCE_DESCRIPTOR CM_FULL_RESOURCE_DESCRIPTOR;
  730#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
  731typedef struct _CM_FULL_RESOURCE_DESCRIPTOR *PCM_FULL_RESOURCE_DESCRIPTOR;
  732#line 8454 "C:/NTDDK/inc/ddk/ntddk.h"
  733struct _CM_RESOURCE_LIST {
  734   ULONG Count ;
  735   CM_FULL_RESOURCE_DESCRIPTOR List[1] ;
  736};
  737#line 8454 "C:/NTDDK/inc/ddk/ntddk.h"
  738typedef struct _CM_RESOURCE_LIST *PCM_RESOURCE_LIST;
  739#line 27 "C:/NTDDK/inc/pshpack1.h"
  740#pragma pack(push,1)
  741#line 30 "C:/NTDDK/inc/poppack.h"
  742#pragma pack(pop)
  743#line 8844 "C:/NTDDK/inc/ddk/ntddk.h"
  744struct _CM_FLOPPY_DEVICE_DATA {
  745   USHORT Version ;
  746   USHORT Revision ;
  747   CHAR Size[8] ;
  748   ULONG MaxDensity ;
  749   ULONG MountDensity ;
  750   UCHAR StepRateHeadUnloadTime ;
  751   UCHAR HeadLoadTime ;
  752   UCHAR MotorOffTime ;
  753   UCHAR SectorLengthCode ;
  754   UCHAR SectorPerTrack ;
  755   UCHAR ReadWriteGapLength ;
  756   UCHAR DataTransferLength ;
  757   UCHAR FormatGapLength ;
  758   UCHAR FormatFillCharacter ;
  759   UCHAR HeadSettleTime ;
  760   UCHAR MotorSettleTime ;
  761   UCHAR MaximumTrackValue ;
  762   UCHAR DataTransferRate ;
  763};
  764#line 8844 "C:/NTDDK/inc/ddk/ntddk.h"
  765typedef struct _CM_FLOPPY_DEVICE_DATA *PCM_FLOPPY_DEVICE_DATA;
  766#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  767struct __anonstruct_Port_25 {
  768   ULONG Length ;
  769   ULONG Alignment ;
  770   PHYSICAL_ADDRESS MinimumAddress ;
  771   PHYSICAL_ADDRESS MaximumAddress ;
  772};
  773#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  774struct __anonstruct_Memory_26 {
  775   ULONG Length ;
  776   ULONG Alignment ;
  777   PHYSICAL_ADDRESS MinimumAddress ;
  778   PHYSICAL_ADDRESS MaximumAddress ;
  779};
  780#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  781struct __anonstruct_Interrupt_27 {
  782   ULONG MinimumVector ;
  783   ULONG MaximumVector ;
  784};
  785#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  786struct __anonstruct_Dma_28 {
  787   ULONG MinimumChannel ;
  788   ULONG MaximumChannel ;
  789};
  790#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  791struct __anonstruct_Generic_29 {
  792   ULONG Length ;
  793   ULONG Alignment ;
  794   PHYSICAL_ADDRESS MinimumAddress ;
  795   PHYSICAL_ADDRESS MaximumAddress ;
  796};
  797#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  798struct __anonstruct_DevicePrivate_30 {
  799   ULONG Data[3] ;
  800};
  801#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  802struct __anonstruct_BusNumber_31 {
  803   ULONG Length ;
  804   ULONG MinBusNumber ;
  805   ULONG MaxBusNumber ;
  806   ULONG Reserved ;
  807};
  808#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  809struct __anonstruct_AssignedResource_32 {
  810   PASSIGNED_RESOURCE AssignedResource ;
  811};
  812#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  813struct __anonstruct_SubAllocateFrom_33 {
  814   UCHAR Type ;
  815   UCHAR Reserved[3] ;
  816   PASSIGNED_RESOURCE AssignedResource ;
  817   PHYSICAL_ADDRESS Transformation ;
  818};
  819#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  820struct __anonstruct_ConfigData_34 {
  821   ULONG Priority ;
  822   ULONG Reserved1 ;
  823   ULONG Reserved2 ;
  824};
  825#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  826union __anonunion_u_24 {
  827   struct __anonstruct_Port_25 Port ;
  828   struct __anonstruct_Memory_26 Memory ;
  829   struct __anonstruct_Interrupt_27 Interrupt ;
  830   struct __anonstruct_Dma_28 Dma ;
  831   struct __anonstruct_Generic_29 Generic ;
  832   struct __anonstruct_DevicePrivate_30 DevicePrivate ;
  833   struct __anonstruct_BusNumber_31 BusNumber ;
  834   struct __anonstruct_AssignedResource_32 AssignedResource ;
  835   struct __anonstruct_SubAllocateFrom_33 SubAllocateFrom ;
  836   struct __anonstruct_ConfigData_34 ConfigData ;
  837};
  838#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  839struct _IO_RESOURCE_DESCRIPTOR {
  840   UCHAR Option ;
  841   UCHAR Type ;
  842   UCHAR ShareDisposition ;
  843   UCHAR Spare1 ;
  844   USHORT Flags ;
  845   USHORT Spare2 ;
  846   union __anonunion_u_24 u ;
  847};
  848#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
  849typedef struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR;
  850#line 9027 "C:/NTDDK/inc/ddk/ntddk.h"
  851struct _IO_RESOURCE_LIST {
  852   USHORT Version ;
  853   USHORT Revision ;
  854   ULONG Count ;
  855   IO_RESOURCE_DESCRIPTOR Descriptors[1] ;
  856};
  857#line 9027 "C:/NTDDK/inc/ddk/ntddk.h"
  858typedef struct _IO_RESOURCE_LIST IO_RESOURCE_LIST;
  859#line 9036 "C:/NTDDK/inc/ddk/ntddk.h"
  860struct _IO_RESOURCE_REQUIREMENTS_LIST {
  861   ULONG ListSize ;
  862   INTERFACE_TYPE InterfaceType ;
  863   ULONG BusNumber ;
  864   ULONG SlotNumber ;
  865   ULONG Reserved[3] ;
  866   ULONG AlternativeLists ;
  867   IO_RESOURCE_LIST List[1] ;
  868};
  869#line 9036 "C:/NTDDK/inc/ddk/ntddk.h"
  870typedef struct _IO_RESOURCE_REQUIREMENTS_LIST *PIO_RESOURCE_REQUIREMENTS_LIST;
  871#line 9111
  872enum _CONFIGURATION_TYPE {
  873    ArcSystem = 0,
  874    CentralProcessor = 1,
  875    FloatingPointProcessor = 2,
  876    PrimaryIcache = 3,
  877    PrimaryDcache = 4,
  878    SecondaryIcache = 5,
  879    SecondaryDcache = 6,
  880    SecondaryCache = 7,
  881    EisaAdapter = 8,
  882    TcAdapter = 9,
  883    ScsiAdapter = 10,
  884    DtiAdapter = 11,
  885    MultiFunctionAdapter = 12,
  886    DiskController = 13,
  887    TapeController = 14,
  888    CdromController = 15,
  889    WormController = 16,
  890    SerialController = 17,
  891    NetworkController = 18,
  892    DisplayController = 19,
  893    ParallelController = 20,
  894    PointerController = 21,
  895    KeyboardController = 22,
  896    AudioController = 23,
  897    OtherController = 24,
  898    DiskPeripheral = 25,
  899    FloppyDiskPeripheral = 26,
  900    TapePeripheral = 27,
  901    ModemPeripheral = 28,
  902    MonitorPeripheral = 29,
  903    PrinterPeripheral = 30,
  904    PointerPeripheral = 31,
  905    KeyboardPeripheral = 32,
  906    TerminalPeripheral = 33,
  907    OtherPeripheral = 34,
  908    LinePeripheral = 35,
  909    NetworkPeripheral = 36,
  910    SystemMemory = 37,
  911    DockingInformation = 38,
  912    RealModeIrqRoutingTable = 39,
  913    MaximumType = 40
  914} ;
  915#line 9111 "C:/NTDDK/inc/ddk/ntddk.h"
  916typedef enum _CONFIGURATION_TYPE CONFIGURATION_TYPE;
  917#line 9111 "C:/NTDDK/inc/ddk/ntddk.h"
  918typedef enum _CONFIGURATION_TYPE *PCONFIGURATION_TYPE;
  919#line 9170
  920enum _KWAIT_REASON {
  921    Executive = 0,
  922    FreePage = 1,
  923    PageIn = 2,
  924    PoolAllocation = 3,
  925    DelayExecution = 4,
  926    Suspended = 5,
  927    UserRequest = 6,
  928    WrExecutive = 7,
  929    WrFreePage = 8,
  930    WrPageIn = 9,
  931    WrPoolAllocation = 10,
  932    WrDelayExecution = 11,
  933    WrSuspended = 12,
  934    WrUserRequest = 13,
  935    WrEventPair = 14,
  936    WrQueue = 15,
  937    WrLpcReceive = 16,
  938    WrLpcReply = 17,
  939    WrVirtualMemory = 18,
  940    WrPageOut = 19,
  941    WrRendezvous = 20,
  942    Spare2 = 21,
  943    Spare3 = 22,
  944    Spare4 = 23,
  945    Spare5 = 24,
  946    Spare6 = 25,
  947    WrKernel = 26,
  948    MaximumWaitReason = 27
  949} ;
  950#line 9170 "C:/NTDDK/inc/ddk/ntddk.h"
  951typedef enum _KWAIT_REASON KWAIT_REASON;
  952#line 9207 "C:/NTDDK/inc/ddk/ntddk.h"
  953struct _DISPATCHER_HEADER {
  954   UCHAR Type ;
  955   UCHAR Absolute ;
  956   UCHAR Size ;
  957   UCHAR Inserted ;
  958   LONG SignalState ;
  959   LIST_ENTRY WaitListHead ;
  960};
  961#line 9207 "C:/NTDDK/inc/ddk/ntddk.h"
  962typedef struct _DISPATCHER_HEADER DISPATCHER_HEADER;
  963#line 9244 "C:/NTDDK/inc/ddk/ntddk.h"
  964struct _KDEVICE_QUEUE {
  965   CSHORT Type ;
  966   CSHORT Size ;
  967   LIST_ENTRY DeviceListHead ;
  968   KSPIN_LOCK Lock ;
  969   BOOLEAN Busy ;
  970};
  971#line 9244 "C:/NTDDK/inc/ddk/ntddk.h"
  972typedef struct _KDEVICE_QUEUE KDEVICE_QUEUE;
  973#line 9252 "C:/NTDDK/inc/ddk/ntddk.h"
  974struct _KDEVICE_QUEUE_ENTRY {
  975   LIST_ENTRY DeviceListEntry ;
  976   ULONG SortKey ;
  977   BOOLEAN Inserted ;
  978};
  979#line 9252 "C:/NTDDK/inc/ddk/ntddk.h"
  980typedef struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY;
  981#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  982struct _KEVENT {
  983   DISPATCHER_HEADER Header ;
  984};
  985#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  986typedef struct _KEVENT KEVENT;
  987#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  988typedef struct _KEVENT *PKEVENT;
  989#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
  990typedef struct _KEVENT *PRKEVENT;
  991#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
  992struct _KSEMAPHORE {
  993   DISPATCHER_HEADER Header ;
  994   LONG Limit ;
  995};
  996#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
  997typedef struct _KSEMAPHORE KSEMAPHORE;
  998#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
  999typedef struct _KSEMAPHORE *PKSEMAPHORE;
 1000#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
 1001typedef struct _KSEMAPHORE *PRKSEMAPHORE;
 1002#line 10057
 1003enum _MEMORY_CACHING_TYPE {
 1004    MmNonCached = 0,
 1005    MmCached = 1,
 1006    MmWriteCombined = 2,
 1007    MmHardwareCoherentCached = 3,
 1008    MmNonCachedUnordered = 4,
 1009    MmUSWCCached = 5,
 1010    MmMaximumCacheType = 6
 1011} ;
 1012#line 10057 "C:/NTDDK/inc/ddk/ntddk.h"
 1013typedef enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE;
 1014#line 10115
 1015enum _POOL_TYPE {
 1016    NonPagedPool = 0,
 1017    PagedPool = 1,
 1018    NonPagedPoolMustSucceed = 2,
 1019    DontUseThisType = 3,
 1020    NonPagedPoolCacheAligned = 4,
 1021    PagedPoolCacheAligned = 5,
 1022    NonPagedPoolCacheAlignedMustS = 6,
 1023    MaxPoolType = 7,
 1024    NonPagedPoolSession = 32,
 1025    PagedPoolSession = 33,
 1026    NonPagedPoolMustSucceedSession = 34,
 1027    DontUseThisTypeSession = 35,
 1028    NonPagedPoolCacheAlignedSession = 36,
 1029    PagedPoolCacheAlignedSession = 37,
 1030    NonPagedPoolCacheAlignedMustSSession = 38
 1031} ;
 1032#line 10115 "C:/NTDDK/inc/ddk/ntddk.h"
 1033typedef enum _POOL_TYPE POOL_TYPE;
 1034#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
 1035struct _FAST_MUTEX {
 1036   LONG Count ;
 1037   PKTHREAD Owner ;
 1038   ULONG Contention ;
 1039   KEVENT Event ;
 1040   ULONG OldIrql ;
 1041};
 1042#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
 1043typedef struct _FAST_MUTEX FAST_MUTEX;
 1044#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
 1045typedef struct _FAST_MUTEX *PFAST_MUTEX;
 1046#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1047union __anonunion____missing_field_name_35 {
 1048   ULONG AllocateMisses ;
 1049   ULONG AllocateHits ;
 1050};
 1051#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1052union __anonunion____missing_field_name_36 {
 1053   ULONG FreeMisses ;
 1054   ULONG FreeHits ;
 1055};
 1056#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1057union __anonunion____missing_field_name_37 {
 1058   ULONG LastAllocateMisses ;
 1059   ULONG LastAllocateHits ;
 1060};
 1061#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1062struct _GENERAL_LOOKASIDE {
 1063   SLIST_HEADER ListHead ;
 1064   USHORT Depth ;
 1065   USHORT MaximumDepth ;
 1066   ULONG TotalAllocates ;
 1067   union __anonunion____missing_field_name_35 __annonCompField7 ;
 1068   ULONG TotalFrees ;
 1069   union __anonunion____missing_field_name_36 __annonCompField8 ;
 1070   POOL_TYPE Type ;
 1071   ULONG Tag ;
 1072   ULONG Size ;
 1073   PVOID (*Allocate)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
 1074   void (*Free)(PVOID Buffer ) ;
 1075   LIST_ENTRY ListEntry ;
 1076   ULONG LastTotalAllocates ;
 1077   union __anonunion____missing_field_name_37 __annonCompField9 ;
 1078   ULONG Future[2] ;
 1079};
 1080#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
 1081typedef struct _GENERAL_LOOKASIDE GENERAL_LOOKASIDE;
 1082#line 10619 "C:/NTDDK/inc/ddk/ntddk.h"
 1083struct _NPAGED_LOOKASIDE_LIST {
 1084   GENERAL_LOOKASIDE L ;
 1085   KSPIN_LOCK Lock ;
 1086};
 1087#line 10619 "C:/NTDDK/inc/ddk/ntddk.h"
 1088typedef struct _NPAGED_LOOKASIDE_LIST *PNPAGED_LOOKASIDE_LIST;
 1089#line 11156 "C:/NTDDK/inc/ddk/ntddk.h"
 1090typedef ULONG_PTR ERESOURCE_THREAD;
 1091#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1092union __anonunion____missing_field_name_38 {
 1093   LONG OwnerCount ;
 1094   ULONG TableSize ;
 1095};
 1096#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1097struct _OWNER_ENTRY {
 1098   ERESOURCE_THREAD OwnerThread ;
 1099   union __anonunion____missing_field_name_38 __annonCompField10 ;
 1100};
 1101#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1102typedef struct _OWNER_ENTRY OWNER_ENTRY;
 1103#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
 1104typedef struct _OWNER_ENTRY *POWNER_ENTRY;
 1105#line 11168 "C:/NTDDK/inc/ddk/ntddk.h"
 1106union __anonunion____missing_field_name_39 {
 1107   PVOID Address ;
 1108   ULONG_PTR CreatorBackTraceIndex ;
 1109};
 1110#line 11168 "C:/NTDDK/inc/ddk/ntddk.h"
 1111struct _ERESOURCE {
 1112   LIST_ENTRY SystemResourcesList ;
 1113   POWNER_ENTRY OwnerTable ;
 1114   SHORT ActiveCount ;
 1115   USHORT Flag ;
 1116   PKSEMAPHORE SharedWaiters ;
 1117   PKEVENT ExclusiveWaiters ;
 1118   OWNER_ENTRY OwnerThreads[2] ;
 1119   ULONG ContentionCount ;
 1120   USHORT NumberOfSharedWaiters ;
 1121   USHORT NumberOfExclusiveWaiters ;
 1122   union __anonunion____missing_field_name_39 __annonCompField11 ;
 1123   KSPIN_LOCK SpinLock ;
 1124};
 1125#line 11884
 1126enum _LOCK_OPERATION {
 1127    IoReadAccess = 0,
 1128    IoWriteAccess = 1,
 1129    IoModifyAccess = 2
 1130} ;
 1131#line 11884 "C:/NTDDK/inc/ddk/ntddk.h"
 1132typedef enum _LOCK_OPERATION LOCK_OPERATION;
 1133#line 11970
 1134enum _MM_PAGE_PRIORITY {
 1135    LowPagePriority = 0,
 1136    NormalPagePriority = 16,
 1137    HighPagePriority = 32
 1138} ;
 1139#line 11970 "C:/NTDDK/inc/ddk/ntddk.h"
 1140typedef enum _MM_PAGE_PRIORITY MM_PAGE_PRIORITY;
 1141#line 12399
 1142struct _DRIVER_OBJECT;
 1143#line 12399
 1144struct _DRIVER_OBJECT;
 1145#line 12399
 1146struct _DRIVER_OBJECT;
 1147#line 12426 "C:/NTDDK/inc/ddk/ntddk.h"
 1148struct _SECURITY_SUBJECT_CONTEXT {
 1149   PACCESS_TOKEN ClientToken ;
 1150   SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ;
 1151   PACCESS_TOKEN PrimaryToken ;
 1152   PVOID ProcessAuditId ;
 1153};
 1154#line 12426 "C:/NTDDK/inc/ddk/ntddk.h"
 1155typedef struct _SECURITY_SUBJECT_CONTEXT SECURITY_SUBJECT_CONTEXT;
 1156#line 12448 "C:/NTDDK/inc/ddk/ntddk.h"
 1157struct _INITIAL_PRIVILEGE_SET {
 1158   ULONG PrivilegeCount ;
 1159   ULONG Control ;
 1160   LUID_AND_ATTRIBUTES Privilege[3] ;
 1161};
 1162#line 12448 "C:/NTDDK/inc/ddk/ntddk.h"
 1163typedef struct _INITIAL_PRIVILEGE_SET INITIAL_PRIVILEGE_SET;
 1164#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
 1165union __anonunion_Privileges_40 {
 1166   INITIAL_PRIVILEGE_SET InitialPrivilegeSet ;
 1167   PRIVILEGE_SET PrivilegeSet ;
 1168};
 1169#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
 1170struct _ACCESS_STATE {
 1171   LUID OperationID ;
 1172   BOOLEAN SecurityEvaluated ;
 1173   BOOLEAN GenerateAudit ;
 1174   BOOLEAN GenerateOnClose ;
 1175   BOOLEAN PrivilegesAllocated ;
 1176   ULONG Flags ;
 1177   ACCESS_MASK RemainingDesiredAccess ;
 1178   ACCESS_MASK PreviouslyGrantedAccess ;
 1179   ACCESS_MASK OriginalDesiredAccess ;
 1180   SECURITY_SUBJECT_CONTEXT SubjectSecurityContext ;
 1181   PSECURITY_DESCRIPTOR SecurityDescriptor ;
 1182   PVOID AuxData ;
 1183   union __anonunion_Privileges_40 Privileges ;
 1184   BOOLEAN AuditPrivileges ;
 1185   UNICODE_STRING ObjectName ;
 1186   UNICODE_STRING ObjectTypeName ;
 1187};
 1188#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
 1189typedef struct _ACCESS_STATE *PACCESS_STATE;
 1190#line 12906
 1191struct _DEVICE_OBJECT;
 1192#line 12906
 1193struct _DEVICE_OBJECT;
 1194#line 12906
 1195struct _DEVICE_OBJECT;
 1196#line 12908
 1197struct _DRIVER_OBJECT;
 1198#line 12911
 1199struct _FILE_OBJECT;
 1200#line 12911
 1201struct _FILE_OBJECT;
 1202#line 12911
 1203struct _FILE_OBJECT;
 1204#line 12912
 1205struct _IRP;
 1206#line 12912
 1207struct _IRP;
 1208#line 12912
 1209struct _IRP;
 1210#line 12913
 1211struct _SCSI_REQUEST_BLOCK;
 1212#line 12913
 1213struct _SCSI_REQUEST_BLOCK;
 1214#line 12913
 1215struct _SCSI_REQUEST_BLOCK;
 1216#line 12979 "C:/NTDDK/inc/ddk/ntddk.h"
 1217typedef NTSTATUS (*PDRIVER_DISPATCH)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp );
 1218#line 13289
 1219struct _COMPRESSED_DATA_INFO;
 1220#line 13289
 1221struct _COMPRESSED_DATA_INFO;
 1222#line 13350 "C:/NTDDK/inc/ddk/ntddk.h"
 1223struct _FAST_IO_DISPATCH {
 1224   ULONG SizeOfFastIoDispatch ;
 1225   BOOLEAN (*FastIoCheckIfPossible)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1226                                    ULONG Length , BOOLEAN Wait , ULONG LockKey ,
 1227                                    BOOLEAN CheckForReadOperation , PIO_STATUS_BLOCK IoStatus ,
 1228                                    struct _DEVICE_OBJECT *DeviceObject ) ;
 1229   BOOLEAN (*FastIoRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1230                         ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer ,
 1231                         PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1232   BOOLEAN (*FastIoWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1233                          ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer ,
 1234                          PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1235   BOOLEAN (*FastIoQueryBasicInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1236                                   PFILE_BASIC_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus ,
 1237                                   struct _DEVICE_OBJECT *DeviceObject ) ;
 1238   BOOLEAN (*FastIoQueryStandardInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1239                                      PFILE_STANDARD_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus ,
 1240                                      struct _DEVICE_OBJECT *DeviceObject ) ;
 1241   BOOLEAN (*FastIoLock)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1242                         PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key ,
 1243                         BOOLEAN FailImmediately , BOOLEAN ExclusiveLock , PIO_STATUS_BLOCK IoStatus ,
 1244                         struct _DEVICE_OBJECT *DeviceObject ) ;
 1245   BOOLEAN (*FastIoUnlockSingle)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1246                                 PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key ,
 1247                                 PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1248   BOOLEAN (*FastIoUnlockAll)(struct _FILE_OBJECT *FileObject , PEPROCESS ProcessId ,
 1249                              PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1250   BOOLEAN (*FastIoUnlockAllByKey)(struct _FILE_OBJECT *FileObject , PVOID ProcessId ,
 1251                                   ULONG Key , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1252   BOOLEAN (*FastIoDeviceControl)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1253                                  PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer ,
 1254                                  ULONG OutputBufferLength , ULONG IoControlCode ,
 1255                                  PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1256   void (*AcquireFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ;
 1257   void (*ReleaseFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ;
 1258   void (*FastIoDetachDevice)(struct _DEVICE_OBJECT *SourceDevice , struct _DEVICE_OBJECT *TargetDevice ) ;
 1259   BOOLEAN (*FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
 1260                                         struct _FILE_NETWORK_OPEN_INFORMATION *Buffer ,
 1261                                         struct _IO_STATUS_BLOCK *IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
 1262   NTSTATUS (*AcquireForModWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER EndingOffset ,
 1263                                  struct _ERESOURCE **ResourceToRelease , struct _DEVICE_OBJECT *DeviceObject ) ;
 1264   BOOLEAN (*MdlRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1265                      ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus ,
 1266                      struct _DEVICE_OBJECT *DeviceObject ) ;
 1267   BOOLEAN (*MdlReadComplete)(struct _FILE_OBJECT *FileObject , PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
 1268   BOOLEAN (*PrepareMdlWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1269                              ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus ,
 1270                              struct _DEVICE_OBJECT *DeviceObject ) ;
 1271   BOOLEAN (*MdlWriteComplete)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1272                               PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
 1273   BOOLEAN (*FastIoReadCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1274                                   ULONG Length , ULONG LockKey , PVOID Buffer , PMDL *MdlChain ,
 1275                                   PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo ,
 1276                                   ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ;
 1277   BOOLEAN (*FastIoWriteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1278                                    ULONG Length , ULONG LockKey , PVOID Buffer ,
 1279                                    PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo ,
 1280                                    ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ;
 1281   BOOLEAN (*MdlReadCompleteCompressed)(struct _FILE_OBJECT *FileObject , PMDL MdlChain ,
 1282                                        struct _DEVICE_OBJECT *DeviceObject ) ;
 1283   BOOLEAN (*MdlWriteCompleteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
 1284                                         PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
 1285   BOOLEAN (*FastIoQueryOpen)(struct _IRP *Irp , PFILE_NETWORK_OPEN_INFORMATION NetworkInformation ,
 1286                              struct _DEVICE_OBJECT *DeviceObject ) ;
 1287   NTSTATUS (*ReleaseForModWrite)(struct _FILE_OBJECT *FileObject , struct _ERESOURCE *ResourceToRelease ,
 1288                                  struct _DEVICE_OBJECT *DeviceObject ) ;
 1289   NTSTATUS (*AcquireForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ;
 1290   NTSTATUS (*ReleaseForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ;
 1291};
 1292#line 13350 "C:/NTDDK/inc/ddk/ntddk.h"
 1293typedef struct _FAST_IO_DISPATCH *PFAST_IO_DISPATCH;
 1294#line 13386
 1295enum _IO_ALLOCATION_ACTION {
 1296    KeepObject = 1,
 1297    DeallocateObject = 2,
 1298    DeallocateObjectKeepRegisters = 3
 1299} ;
 1300#line 13386 "C:/NTDDK/inc/ddk/ntddk.h"
 1301typedef enum _IO_ALLOCATION_ACTION IO_ALLOCATION_ACTION;
 1302#line 13410 "C:/NTDDK/inc/ddk/ntddk.h"
 1303struct _IO_SECURITY_CONTEXT {
 1304   PSECURITY_QUALITY_OF_SERVICE SecurityQos ;
 1305   PACCESS_STATE AccessState ;
 1306   ACCESS_MASK DesiredAccess ;
 1307   ULONG FullCreateOptions ;
 1308};
 1309#line 13410 "C:/NTDDK/inc/ddk/ntddk.h"
 1310typedef struct _IO_SECURITY_CONTEXT *PIO_SECURITY_CONTEXT;
 1311#line 13434 "C:/NTDDK/inc/ddk/ntddk.h"
 1312struct _VPB {
 1313   CSHORT Type ;
 1314   CSHORT Size ;
 1315   USHORT Flags ;
 1316   USHORT VolumeLabelLength ;
 1317   struct _DEVICE_OBJECT *DeviceObject ;
 1318   struct _DEVICE_OBJECT *RealDevice ;
 1319   ULONG SerialNumber ;
 1320   ULONG ReferenceCount ;
 1321   WCHAR VolumeLabel[(32U * sizeof(WCHAR )) / sizeof(WCHAR )] ;
 1322};
 1323#line 13434 "C:/NTDDK/inc/ddk/ntddk.h"
 1324typedef struct _VPB *PVPB;
 1325#line 13491 "C:/NTDDK/inc/ddk/ntddk.h"
 1326struct _WAIT_CONTEXT_BLOCK {
 1327   KDEVICE_QUEUE_ENTRY WaitQueueEntry ;
 1328   IO_ALLOCATION_ACTION (*DeviceRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ,
 1329                                         PVOID MapRegisterBase , PVOID Context ) ;
 1330   PVOID DeviceContext ;
 1331   ULONG NumberOfMapRegisters ;
 1332   PVOID DeviceObject ;
 1333   PVOID CurrentIrp ;
 1334   PKDPC BufferChainingDpc ;
 1335};
 1336#line 13491 "C:/NTDDK/inc/ddk/ntddk.h"
 1337typedef struct _WAIT_CONTEXT_BLOCK WAIT_CONTEXT_BLOCK;
 1338#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
 1339union __anonunion_Queue_43 {
 1340   LIST_ENTRY ListEntry ;
 1341   WAIT_CONTEXT_BLOCK Wcb ;
 1342};
 1343#line 13537
 1344struct _DEVOBJ_EXTENSION;
 1345#line 13537
 1346struct _DEVOBJ_EXTENSION;
 1347#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
 1348struct _DEVICE_OBJECT {
 1349   CSHORT Type ;
 1350   USHORT Size ;
 1351   LONG ReferenceCount ;
 1352   struct _DRIVER_OBJECT *DriverObject ;
 1353   struct _DEVICE_OBJECT *NextDevice ;
 1354   struct _DEVICE_OBJECT *AttachedDevice ;
 1355   struct _IRP *CurrentIrp ;
 1356   PIO_TIMER Timer ;
 1357   ULONG Flags ;
 1358   ULONG Characteristics ;
 1359   PVPB Vpb ;
 1360   PVOID DeviceExtension ;
 1361   ULONG DeviceType ;
 1362   CCHAR StackSize ;
 1363   union __anonunion_Queue_43 Queue ;
 1364   ULONG AlignmentRequirement ;
 1365   KDEVICE_QUEUE DeviceQueue ;
 1366   KDPC Dpc ;
 1367   ULONG ActiveThreadCount ;
 1368   PSECURITY_DESCRIPTOR SecurityDescriptor ;
 1369   KEVENT DeviceLock ;
 1370   USHORT SectorSize ;
 1371   USHORT Spare1 ;
 1372   struct _DEVOBJ_EXTENSION *DeviceObjectExtension ;
 1373   PVOID Reserved ;
 1374};
 1375#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
 1376typedef struct _DEVICE_OBJECT DEVICE_OBJECT;
 1377#line 13575 "C:/NTDDK/inc/ddk/ntddk.h"
 1378typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
 1379#line 13580 "C:/NTDDK/inc/ddk/ntddk.h"
 1380struct _DEVOBJ_EXTENSION {
 1381   CSHORT Type ;
 1382   USHORT Size ;
 1383   PDEVICE_OBJECT DeviceObject ;
 1384};
 1385#line 13608 "C:/NTDDK/inc/ddk/ntddk.h"
 1386struct _DRIVER_EXTENSION {
 1387   struct _DRIVER_OBJECT *DriverObject ;
 1388   NTSTATUS (*AddDevice)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ;
 1389   ULONG Count ;
 1390   UNICODE_STRING ServiceKeyName ;
 1391};
 1392#line 13608 "C:/NTDDK/inc/ddk/ntddk.h"
 1393typedef struct _DRIVER_EXTENSION *PDRIVER_EXTENSION;
 1394#line 13645 "C:/NTDDK/inc/ddk/ntddk.h"
 1395struct _DRIVER_OBJECT {
 1396   CSHORT Type ;
 1397   CSHORT Size ;
 1398   PDEVICE_OBJECT DeviceObject ;
 1399   ULONG Flags ;
 1400   PVOID DriverStart ;
 1401   ULONG DriverSize ;
 1402   PVOID DriverSection ;
 1403   PDRIVER_EXTENSION DriverExtension ;
 1404   UNICODE_STRING DriverName ;
 1405   PUNICODE_STRING HardwareDatabase ;
 1406   PFAST_IO_DISPATCH FastIoDispatch ;
 1407   NTSTATUS (*DriverInit)(struct _DRIVER_OBJECT *DriverObject , PUNICODE_STRING RegistryPath ) ;
 1408   void (*DriverStartIo)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
 1409   void (*DriverUnload)(struct _DRIVER_OBJECT *DriverObject ) ;
 1410   PDRIVER_DISPATCH MajorFunction[28] ;
 1411};
 1412#line 13645 "C:/NTDDK/inc/ddk/ntddk.h"
 1413typedef struct _DRIVER_OBJECT DRIVER_OBJECT;
 1414#line 13706 "C:/NTDDK/inc/ddk/ntddk.h"
 1415typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT;
 1416#line 13715 "C:/NTDDK/inc/ddk/ntddk.h"
 1417struct _SECTION_OBJECT_POINTERS {
 1418   PVOID DataSectionObject ;
 1419   PVOID SharedCacheMap ;
 1420   PVOID ImageSectionObject ;
 1421};
 1422#line 13715 "C:/NTDDK/inc/ddk/ntddk.h"
 1423typedef struct _SECTION_OBJECT_POINTERS SECTION_OBJECT_POINTERS;
 1424#line 13720 "C:/NTDDK/inc/ddk/ntddk.h"
 1425typedef SECTION_OBJECT_POINTERS *PSECTION_OBJECT_POINTERS;
 1426#line 13726 "C:/NTDDK/inc/ddk/ntddk.h"
 1427struct _IO_COMPLETION_CONTEXT {
 1428   PVOID Port ;
 1429   PVOID Key ;
 1430};
 1431#line 13726 "C:/NTDDK/inc/ddk/ntddk.h"
 1432typedef struct _IO_COMPLETION_CONTEXT *PIO_COMPLETION_CONTEXT;
 1433#line 13759 "C:/NTDDK/inc/ddk/ntddk.h"
 1434struct _FILE_OBJECT {
 1435   CSHORT Type ;
 1436   CSHORT Size ;
 1437   PDEVICE_OBJECT DeviceObject ;
 1438   PVPB Vpb ;
 1439   PVOID FsContext ;
 1440   PVOID FsContext2 ;
 1441   PSECTION_OBJECT_POINTERS SectionObjectPointer ;
 1442   PVOID PrivateCacheMap ;
 1443   NTSTATUS FinalStatus ;
 1444   struct _FILE_OBJECT *RelatedFileObject ;
 1445   BOOLEAN LockOperation ;
 1446   BOOLEAN DeletePending ;
 1447   BOOLEAN ReadAccess ;
 1448   BOOLEAN WriteAccess ;
 1449   BOOLEAN DeleteAccess ;
 1450   BOOLEAN SharedRead ;
 1451   BOOLEAN SharedWrite ;
 1452   BOOLEAN SharedDelete ;
 1453   ULONG Flags ;
 1454   UNICODE_STRING FileName ;
 1455   LARGE_INTEGER CurrentByteOffset ;
 1456   ULONG Waiters ;
 1457   ULONG Busy ;
 1458   PVOID LastLock ;
 1459   KEVENT Lock ;
 1460   KEVENT Event ;
 1461   PIO_COMPLETION_CONTEXT CompletionContext ;
 1462};
 1463#line 13788 "C:/NTDDK/inc/ddk/ntddk.h"
 1464typedef struct _FILE_OBJECT *PFILE_OBJECT;
 1465#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1466union __anonunion_AssociatedIrp_44 {
 1467   struct _IRP *MasterIrp ;
 1468   LONG IrpCount ;
 1469   PVOID SystemBuffer ;
 1470};
 1471#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1472struct __anonstruct_AsynchronousParameters_46 {
 1473   void ( __attribute__((__stdcall__)) (*UserApcRoutine))(PVOID ApcContext , PIO_STATUS_BLOCK IoStatusBlock ,
 1474                                                          ULONG Reserved ) ;
 1475   PVOID UserApcContext ;
 1476};
 1477#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1478union __anonunion_Overlay_45 {
 1479   struct __anonstruct_AsynchronousParameters_46 AsynchronousParameters ;
 1480   LARGE_INTEGER AllocationSize ;
 1481};
 1482#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1483struct __anonstruct____missing_field_name_50 {
 1484   PVOID DriverContext[4] ;
 1485};
 1486#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1487union __anonunion____missing_field_name_49 {
 1488   KDEVICE_QUEUE_ENTRY DeviceQueueEntry ;
 1489   struct __anonstruct____missing_field_name_50 __annonCompField14 ;
 1490};
 1491#line 13828
 1492struct _IO_STACK_LOCATION;
 1493#line 13828
 1494struct _IO_STACK_LOCATION;
 1495#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1496union __anonunion____missing_field_name_52 {
 1497   struct _IO_STACK_LOCATION *CurrentStackLocation ;
 1498   ULONG PacketType ;
 1499};
 1500#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1501struct __anonstruct____missing_field_name_51 {
 1502   LIST_ENTRY ListEntry ;
 1503   union __anonunion____missing_field_name_52 __annonCompField16 ;
 1504};
 1505#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1506struct __anonstruct_Overlay_48 {
 1507   union __anonunion____missing_field_name_49 __annonCompField15 ;
 1508   PETHREAD Thread ;
 1509   PCHAR AuxiliaryBuffer ;
 1510   struct __anonstruct____missing_field_name_51 __annonCompField17 ;
 1511   PFILE_OBJECT OriginalFileObject ;
 1512};
 1513#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1514union __anonunion_Tail_47 {
 1515   struct __anonstruct_Overlay_48 Overlay ;
 1516   KAPC Apc ;
 1517   PVOID CompletionKey ;
 1518};
 1519#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1520struct _IRP {
 1521   CSHORT Type ;
 1522   USHORT Size ;
 1523   PMDL MdlAddress ;
 1524   ULONG Flags ;
 1525   union __anonunion_AssociatedIrp_44 AssociatedIrp ;
 1526   LIST_ENTRY ThreadListEntry ;
 1527   IO_STATUS_BLOCK IoStatus ;
 1528   KPROCESSOR_MODE RequestorMode ;
 1529   BOOLEAN PendingReturned ;
 1530   CHAR StackCount ;
 1531   CHAR CurrentLocation ;
 1532   BOOLEAN Cancel ;
 1533   KIRQL CancelIrql ;
 1534   CCHAR ApcEnvironment ;
 1535   UCHAR AllocationFlags ;
 1536   PIO_STATUS_BLOCK UserIosb ;
 1537   PKEVENT UserEvent ;
 1538   union __anonunion_Overlay_45 Overlay ;
 1539   void (*CancelRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
 1540   PVOID UserBuffer ;
 1541   union __anonunion_Tail_47 Tail ;
 1542};
 1543#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1544typedef struct _IRP IRP;
 1545#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
 1546typedef struct _IRP *PIRP;
 1547#line 14163
 1548enum _DEVICE_RELATION_TYPE {
 1549    BusRelations = 0,
 1550    EjectionRelations = 1,
 1551    PowerRelations = 2,
 1552    RemovalRelations = 3,
 1553    TargetDeviceRelation = 4
 1554} ;
 1555#line 14163 "C:/NTDDK/inc/ddk/ntddk.h"
 1556typedef enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE;
 1557#line 14176
 1558enum _DEVICE_USAGE_NOTIFICATION_TYPE {
 1559    DeviceUsageTypeUndefined = 0,
 1560    DeviceUsageTypePaging = 1,
 1561    DeviceUsageTypeHibernation = 2,
 1562    DeviceUsageTypeDumpFile = 3
 1563} ;
 1564#line 14176 "C:/NTDDK/inc/ddk/ntddk.h"
 1565typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE;
 1566#line 14185 "C:/NTDDK/inc/ddk/ntddk.h"
 1567struct _INTERFACE {
 1568   USHORT Size ;
 1569   USHORT Version ;
 1570   PVOID Context ;
 1571   void (*InterfaceReference)(PVOID Context ) ;
 1572   void (*InterfaceDereference)(PVOID Context ) ;
 1573};
 1574#line 14185 "C:/NTDDK/inc/ddk/ntddk.h"
 1575typedef struct _INTERFACE *PINTERFACE;
 1576#line 14196 "C:/NTDDK/inc/ddk/ntddk.h"
 1577struct _DEVICE_CAPABILITIES {
 1578   USHORT Size ;
 1579   USHORT Version ;
 1580   ULONG DeviceD1 : 1 ;
 1581   ULONG DeviceD2 : 1 ;
 1582   ULONG LockSupported : 1 ;
 1583   ULONG EjectSupported : 1 ;
 1584   ULONG Removable : 1 ;
 1585   ULONG DockDevice : 1 ;
 1586   ULONG UniqueID : 1 ;
 1587   ULONG SilentInstall : 1 ;
 1588   ULONG RawDeviceOK : 1 ;
 1589   ULONG SurpriseRemovalOK : 1 ;
 1590   ULONG WakeFromD0 : 1 ;
 1591   ULONG WakeFromD1 : 1 ;
 1592   ULONG WakeFromD2 : 1 ;
 1593   ULONG WakeFromD3 : 1 ;
 1594   ULONG HardwareDisabled : 1 ;
 1595   ULONG NonDynamic : 1 ;
 1596   ULONG WarmEjectSupported : 1 ;
 1597   ULONG Reserved : 15 ;
 1598   ULONG Address ;
 1599   ULONG UINumber ;
 1600   DEVICE_POWER_STATE DeviceState[7] ;
 1601   SYSTEM_POWER_STATE SystemWake ;
 1602   DEVICE_POWER_STATE DeviceWake ;
 1603   ULONG D1Latency ;
 1604   ULONG D2Latency ;
 1605   ULONG D3Latency ;
 1606};
 1607#line 14196 "C:/NTDDK/inc/ddk/ntddk.h"
 1608typedef struct _DEVICE_CAPABILITIES *PDEVICE_CAPABILITIES;
 1609#line 14229 "C:/NTDDK/inc/ddk/ntddk.h"
 1610struct _POWER_SEQUENCE {
 1611   ULONG SequenceD1 ;
 1612   ULONG SequenceD2 ;
 1613   ULONG SequenceD3 ;
 1614};
 1615#line 14229 "C:/NTDDK/inc/ddk/ntddk.h"
 1616typedef struct _POWER_SEQUENCE *PPOWER_SEQUENCE;
 1617#line 14235
 1618enum __anonenum_BUS_QUERY_ID_TYPE_53 {
 1619    BusQueryDeviceID = 0,
 1620    BusQueryHardwareIDs = 1,
 1621    BusQueryCompatibleIDs = 2,
 1622    BusQueryInstanceID = 3,
 1623    BusQueryDeviceSerialNumber = 4
 1624} ;
 1625#line 14235 "C:/NTDDK/inc/ddk/ntddk.h"
 1626typedef enum __anonenum_BUS_QUERY_ID_TYPE_53 BUS_QUERY_ID_TYPE;
 1627#line 14252
 1628enum __anonenum_DEVICE_TEXT_TYPE_54 {
 1629    DeviceTextDescription = 0,
 1630    DeviceTextLocationInformation = 1
 1631} ;
 1632#line 14252 "C:/NTDDK/inc/ddk/ntddk.h"
 1633typedef enum __anonenum_DEVICE_TEXT_TYPE_54 DEVICE_TEXT_TYPE;
 1634#line 27 "C:/NTDDK/inc/pshpack4.h"
 1635#pragma pack(push,4)
 1636#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1637struct __anonstruct_Create_56 {
 1638   PIO_SECURITY_CONTEXT SecurityContext ;
 1639   ULONG Options ;
 1640   USHORT FileAttributes ;
 1641   USHORT ShareAccess ;
 1642   ULONG EaLength ;
 1643};
 1644#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1645struct __anonstruct_Read_57 {
 1646   ULONG Length ;
 1647   ULONG Key ;
 1648   LARGE_INTEGER ByteOffset ;
 1649};
 1650#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1651struct __anonstruct_Write_58 {
 1652   ULONG Length ;
 1653   ULONG Key ;
 1654   LARGE_INTEGER ByteOffset ;
 1655};
 1656#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1657struct __anonstruct_QueryFile_59 {
 1658   ULONG Length ;
 1659   FILE_INFORMATION_CLASS FileInformationClass ;
 1660};
 1661#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1662struct __anonstruct____missing_field_name_62 {
 1663   BOOLEAN ReplaceIfExists ;
 1664   BOOLEAN AdvanceOnly ;
 1665};
 1666#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1667union __anonunion____missing_field_name_61 {
 1668   struct __anonstruct____missing_field_name_62 __annonCompField18 ;
 1669   ULONG ClusterCount ;
 1670   HANDLE DeleteHandle ;
 1671};
 1672#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1673struct __anonstruct_SetFile_60 {
 1674   ULONG Length ;
 1675   FILE_INFORMATION_CLASS FileInformationClass ;
 1676   PFILE_OBJECT FileObject ;
 1677   union __anonunion____missing_field_name_61 __annonCompField19 ;
 1678};
 1679#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1680struct __anonstruct_QueryVolume_63 {
 1681   ULONG Length ;
 1682   FS_INFORMATION_CLASS FsInformationClass ;
 1683};
 1684#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1685struct __anonstruct_DeviceIoControl_64 {
 1686   ULONG OutputBufferLength ;
 1687   ULONG InputBufferLength ;
 1688   ULONG IoControlCode ;
 1689   PVOID Type3InputBuffer ;
 1690};
 1691#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1692struct __anonstruct_QuerySecurity_65 {
 1693   SECURITY_INFORMATION SecurityInformation ;
 1694   ULONG Length ;
 1695};
 1696#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1697struct __anonstruct_SetSecurity_66 {
 1698   SECURITY_INFORMATION SecurityInformation ;
 1699   PSECURITY_DESCRIPTOR SecurityDescriptor ;
 1700};
 1701#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1702struct __anonstruct_MountVolume_67 {
 1703   PVPB Vpb ;
 1704   PDEVICE_OBJECT DeviceObject ;
 1705};
 1706#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1707struct __anonstruct_VerifyVolume_68 {
 1708   PVPB Vpb ;
 1709   PDEVICE_OBJECT DeviceObject ;
 1710};
 1711#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1712struct __anonstruct_Scsi_69 {
 1713   struct _SCSI_REQUEST_BLOCK *Srb ;
 1714};
 1715#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1716struct __anonstruct_QueryDeviceRelations_70 {
 1717   DEVICE_RELATION_TYPE Type ;
 1718};
 1719#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1720struct __anonstruct_QueryInterface_71 {
 1721   GUID const   *InterfaceType ;
 1722   USHORT Size ;
 1723   USHORT Version ;
 1724   PINTERFACE Interface ;
 1725   PVOID InterfaceSpecificData ;
 1726};
 1727#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1728struct __anonstruct_DeviceCapabilities_72 {
 1729   PDEVICE_CAPABILITIES Capabilities ;
 1730};
 1731#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1732struct __anonstruct_FilterResourceRequirements_73 {
 1733   PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList ;
 1734};
 1735#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1736struct __anonstruct_ReadWriteConfig_74 {
 1737   ULONG WhichSpace ;
 1738   PVOID Buffer ;
 1739   ULONG Offset ;
 1740   ULONG Length ;
 1741};
 1742#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1743struct __anonstruct_SetLock_75 {
 1744   BOOLEAN Lock ;
 1745};
 1746#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1747struct __anonstruct_QueryId_76 {
 1748   BUS_QUERY_ID_TYPE IdType ;
 1749};
 1750#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1751struct __anonstruct_QueryDeviceText_77 {
 1752   DEVICE_TEXT_TYPE DeviceTextType ;
 1753   LCID LocaleId ;
 1754};
 1755#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1756struct __anonstruct_UsageNotification_78 {
 1757   BOOLEAN InPath ;
 1758   BOOLEAN Reserved[3] ;
 1759   DEVICE_USAGE_NOTIFICATION_TYPE Type ;
 1760};
 1761#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1762struct __anonstruct_WaitWake_79 {
 1763   SYSTEM_POWER_STATE PowerState ;
 1764};
 1765#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1766struct __anonstruct_PowerSequence_80 {
 1767   PPOWER_SEQUENCE PowerSequence ;
 1768};
 1769#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1770struct __anonstruct_Power_81 {
 1771   ULONG SystemContext ;
 1772   POWER_STATE_TYPE Type ;
 1773   POWER_STATE State ;
 1774   POWER_ACTION ShutdownType ;
 1775};
 1776#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1777struct __anonstruct_StartDevice_82 {
 1778   PCM_RESOURCE_LIST AllocatedResources ;
 1779   PCM_RESOURCE_LIST AllocatedResourcesTranslated ;
 1780};
 1781#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1782struct __anonstruct_WMI_83 {
 1783   ULONG_PTR ProviderId ;
 1784   PVOID DataPath ;
 1785   ULONG BufferSize ;
 1786   PVOID Buffer ;
 1787};
 1788#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1789struct __anonstruct_Others_84 {
 1790   PVOID Argument1 ;
 1791   PVOID Argument2 ;
 1792   PVOID Argument3 ;
 1793   PVOID Argument4 ;
 1794};
 1795#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1796union __anonunion_Parameters_55 {
 1797   struct __anonstruct_Create_56 Create ;
 1798   struct __anonstruct_Read_57 Read ;
 1799   struct __anonstruct_Write_58 Write ;
 1800   struct __anonstruct_QueryFile_59 QueryFile ;
 1801   struct __anonstruct_SetFile_60 SetFile ;
 1802   struct __anonstruct_QueryVolume_63 QueryVolume ;
 1803   struct __anonstruct_DeviceIoControl_64 DeviceIoControl ;
 1804   struct __anonstruct_QuerySecurity_65 QuerySecurity ;
 1805   struct __anonstruct_SetSecurity_66 SetSecurity ;
 1806   struct __anonstruct_MountVolume_67 MountVolume ;
 1807   struct __anonstruct_VerifyVolume_68 VerifyVolume ;
 1808   struct __anonstruct_Scsi_69 Scsi ;
 1809   struct __anonstruct_QueryDeviceRelations_70 QueryDeviceRelations ;
 1810   struct __anonstruct_QueryInterface_71 QueryInterface ;
 1811   struct __anonstruct_DeviceCapabilities_72 DeviceCapabilities ;
 1812   struct __anonstruct_FilterResourceRequirements_73 FilterResourceRequirements ;
 1813   struct __anonstruct_ReadWriteConfig_74 ReadWriteConfig ;
 1814   struct __anonstruct_SetLock_75 SetLock ;
 1815   struct __anonstruct_QueryId_76 QueryId ;
 1816   struct __anonstruct_QueryDeviceText_77 QueryDeviceText ;
 1817   struct __anonstruct_UsageNotification_78 UsageNotification ;
 1818   struct __anonstruct_WaitWake_79 WaitWake ;
 1819   struct __anonstruct_PowerSequence_80 PowerSequence ;
 1820   struct __anonstruct_Power_81 Power ;
 1821   struct __anonstruct_StartDevice_82 StartDevice ;
 1822   struct __anonstruct_WMI_83 WMI ;
 1823   struct __anonstruct_Others_84 Others ;
 1824};
 1825#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1826struct _IO_STACK_LOCATION {
 1827   UCHAR MajorFunction ;
 1828   UCHAR MinorFunction ;
 1829   UCHAR Flags ;
 1830   UCHAR Control ;
 1831   union __anonunion_Parameters_55 Parameters ;
 1832   PDEVICE_OBJECT DeviceObject ;
 1833   PFILE_OBJECT FileObject ;
 1834   NTSTATUS (*CompletionRoutine)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
 1835   PVOID Context ;
 1836};
 1837#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1838typedef struct _IO_STACK_LOCATION IO_STACK_LOCATION;
 1839#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
 1840typedef struct _IO_STACK_LOCATION *PIO_STACK_LOCATION;
 1841#line 30 "C:/NTDDK/inc/poppack.h"
 1842#pragma pack(pop)
 1843#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
 1844struct _CONFIGURATION_INFORMATION {
 1845   ULONG DiskCount ;
 1846   ULONG FloppyCount ;
 1847   ULONG CdRomCount ;
 1848   ULONG TapeCount ;
 1849   ULONG ScsiPortCount ;
 1850   ULONG SerialCount ;
 1851   ULONG ParallelCount ;
 1852   BOOLEAN AtDiskPrimaryAddressClaimed ;
 1853   BOOLEAN AtDiskSecondaryAddressClaimed ;
 1854   ULONG Version ;
 1855   ULONG MediumChangerCount ;
 1856};
 1857#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
 1858typedef struct _CONFIGURATION_INFORMATION CONFIGURATION_INFORMATION;
 1859#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
 1860typedef struct _CONFIGURATION_INFORMATION *PCONFIGURATION_INFORMATION;
 1861#line 18321 "C:/NTDDK/inc/ddk/ntddk.h"
 1862struct _OBJECT_HANDLE_INFORMATION {
 1863   ULONG HandleAttributes ;
 1864   ACCESS_MASK GrantedAccess ;
 1865};
 1866#line 18321 "C:/NTDDK/inc/ddk/ntddk.h"
 1867typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION;
 1868#line 248 "C:/NTDDK/inc/ntdddisk.h"
 1869enum _MEDIA_TYPE {
 1870    Unknown = 0,
 1871    F5_1Pt2_512 = 1,
 1872    F3_1Pt44_512 = 2,
 1873    F3_2Pt88_512 = 3,
 1874    F3_20Pt8_512 = 4,
 1875    F3_720_512 = 5,
 1876    F5_360_512 = 6,
 1877    F5_320_512 = 7,
 1878    F5_320_1024 = 8,
 1879    F5_180_512 = 9,
 1880    F5_160_512 = 10,
 1881    RemovableMedia = 11,
 1882    FixedMedia = 12,
 1883    F3_120M_512 = 13,
 1884    F3_640_512 = 14,
 1885    F5_640_512 = 15,
 1886    F5_720_512 = 16,
 1887    F3_1Pt2_512 = 17,
 1888    F3_1Pt23_1024 = 18,
 1889    F5_1Pt23_1024 = 19,
 1890    F3_128Mb_512 = 20,
 1891    F3_230Mb_512 = 21,
 1892    F8_256_128 = 22
 1893} ;
 1894#line 248 "C:/NTDDK/inc/ntdddisk.h"
 1895typedef enum _MEDIA_TYPE MEDIA_TYPE;
 1896#line 279 "C:/NTDDK/inc/ntdddisk.h"
 1897struct _FORMAT_PARAMETERS {
 1898   MEDIA_TYPE MediaType ;
 1899   ULONG StartCylinderNumber ;
 1900   ULONG EndCylinderNumber ;
 1901   ULONG StartHeadNumber ;
 1902   ULONG EndHeadNumber ;
 1903};
 1904#line 279 "C:/NTDDK/inc/ntdddisk.h"
 1905typedef struct _FORMAT_PARAMETERS FORMAT_PARAMETERS;
 1906#line 279 "C:/NTDDK/inc/ntdddisk.h"
 1907typedef struct _FORMAT_PARAMETERS *PFORMAT_PARAMETERS;
 1908#line 294 "C:/NTDDK/inc/ntdddisk.h"
 1909typedef USHORT BAD_TRACK_NUMBER;
 1910#line 295 "C:/NTDDK/inc/ntdddisk.h"
 1911typedef USHORT *PBAD_TRACK_NUMBER;
 1912#line 302 "C:/NTDDK/inc/ntdddisk.h"
 1913struct _FORMAT_EX_PARAMETERS {
 1914   MEDIA_TYPE MediaType ;
 1915   ULONG StartCylinderNumber ;
 1916   ULONG EndCylinderNumber ;
 1917   ULONG StartHeadNumber ;
 1918   ULONG EndHeadNumber ;
 1919   USHORT FormatGapLength ;
 1920   USHORT SectorsPerTrack ;
 1921   USHORT SectorNumber[1] ;
 1922};
 1923#line 302 "C:/NTDDK/inc/ntdddisk.h"
 1924typedef struct _FORMAT_EX_PARAMETERS FORMAT_EX_PARAMETERS;
 1925#line 302 "C:/NTDDK/inc/ntdddisk.h"
 1926typedef struct _FORMAT_EX_PARAMETERS *PFORMAT_EX_PARAMETERS;
 1927#line 319 "C:/NTDDK/inc/ntdddisk.h"
 1928struct _DISK_GEOMETRY {
 1929   LARGE_INTEGER Cylinders ;
 1930   MEDIA_TYPE MediaType ;
 1931   ULONG TracksPerCylinder ;
 1932   ULONG SectorsPerTrack ;
 1933   ULONG BytesPerSector ;
 1934};
 1935#line 319 "C:/NTDDK/inc/ntdddisk.h"
 1936typedef struct _DISK_GEOMETRY DISK_GEOMETRY;
 1937#line 319 "C:/NTDDK/inc/ntdddisk.h"
 1938typedef struct _DISK_GEOMETRY *PDISK_GEOMETRY;
 1939#line 27 "C:/NTDDK/inc/pshpack1.h"
 1940#pragma pack(push,1)
 1941#line 30 "C:/NTDDK/inc/poppack.h"
 1942#pragma pack(pop)
 1943#line 27 "C:/NTDDK/inc/pshpack1.h"
 1944#pragma pack(push,1)
 1945#line 30 "C:/NTDDK/inc/poppack.h"
 1946#pragma pack(pop)
 1947#line 27 "C:/NTDDK/inc/pshpack1.h"
 1948#pragma pack(push,1)
 1949#line 30 "C:/NTDDK/inc/poppack.h"
 1950#pragma pack(pop)
 1951#line 27 "C:/NTDDK/inc/pshpack1.h"
 1952#pragma pack(push,1)
 1953#line 30 "C:/NTDDK/inc/poppack.h"
 1954#pragma pack(pop)
 1955#line 27 "C:/NTDDK/inc/pshpack1.h"
 1956#pragma pack(push,1)
 1957#line 30 "C:/NTDDK/inc/poppack.h"
 1958#pragma pack(pop)
 1959#line 164 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1960struct _TRANSFER_BUFFER {
 1961   PHYSICAL_ADDRESS Logical ;
 1962   PVOID Virtual ;
 1963};
 1964#line 164 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1965typedef struct _TRANSFER_BUFFER TRANSFER_BUFFER;
 1966#line 180 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1967struct _ACPI_FDI_DATA {
 1968   ULONG DriveNumber ;
 1969   ULONG DeviceType ;
 1970   ULONG MaxCylinderNumber ;
 1971   ULONG MaxSectorNumber ;
 1972   ULONG MaxHeadNumber ;
 1973   ULONG StepRateHeadUnloadTime ;
 1974   ULONG HeadLoadTime ;
 1975   ULONG MotorOffTime ;
 1976   ULONG SectorLengthCode ;
 1977   ULONG SectorPerTrack ;
 1978   ULONG ReadWriteGapLength ;
 1979   ULONG DataTransferLength ;
 1980   ULONG FormatGapLength ;
 1981   ULONG FormatFillCharacter ;
 1982   ULONG HeadSettleTime ;
 1983   ULONG MotorSettleTime ;
 1984};
 1985#line 180 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1986typedef struct _ACPI_FDI_DATA ACPI_FDI_DATA;
 1987#line 201
 1988enum _ACPI_FDI_DEVICE_TYPE {
 1989    CmosProblem = 0,
 1990    Form525Capacity360 = 1,
 1991    Form525Capacity1200 = 2,
 1992    Form35Capacity720 = 3,
 1993    Form35Capacity1440 = 4,
 1994    Form35Capacity2880 = 5
 1995} ;
 1996#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 1997struct _FDC_INFO {
 1998   UCHAR FloppyControllerType ;
 1999   UCHAR SpeedsAvailable ;
 2000   ULONG AdapterBufferSize ;
 2001   INTERFACE_TYPE BusType ;
 2002   ULONG BusNumber ;
 2003   ULONG ControllerNumber ;
 2004   ULONG PeripheralNumber ;
 2005   ULONG UnitNumber ;
 2006   ULONG MaxTransferSize ;
 2007   BOOLEAN AcpiBios ;
 2008   BOOLEAN AcpiFdiSupported ;
 2009   ACPI_FDI_DATA AcpiFdiData ;
 2010   ULONG BufferCount ;
 2011   ULONG BufferSize ;
 2012   TRANSFER_BUFFER BufferAddress[] ;
 2013};
 2014#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2015typedef struct _FDC_INFO FDC_INFO;
 2016#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2017typedef struct _FDC_INFO *PFDC_INFO;
 2018#line 240 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2019struct _FDC_ENABLE_PARMS {
 2020   UCHAR DriveOnValue ;
 2021   USHORT TimeToWait ;
 2022   BOOLEAN MotorStarted ;
 2023};
 2024#line 240 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2025typedef struct _FDC_ENABLE_PARMS FDC_ENABLE_PARMS;
 2026#line 252 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2027struct _FDC_DISK_CHANGE_PARMS {
 2028   UCHAR DriveStatus ;
 2029   UCHAR DriveOnValue ;
 2030};
 2031#line 252 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2032typedef struct _FDC_DISK_CHANGE_PARMS FDC_DISK_CHANGE_PARMS;
 2033#line 261 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2034struct _ISSUE_FDC_COMMAND_PARMS {
 2035   PUCHAR FifoInBuffer ;
 2036   PUCHAR FifoOutBuffer ;
 2037   PVOID IoHandle ;
 2038   ULONG IoOffset ;
 2039   ULONG TransferBytes ;
 2040   ULONG TimeOut ;
 2041};
 2042#line 261 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2043typedef struct _ISSUE_FDC_COMMAND_PARMS ISSUE_FDC_COMMAND_PARMS;
 2044#line 291 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2045struct _SET_HD_BIT_PARMS {
 2046   BOOLEAN DriveType144MB ;
 2047   BOOLEAN Media144MB ;
 2048   BOOLEAN More120MB ;
 2049   UCHAR DeviceUnit ;
 2050   BOOLEAN ChangedHdBit ;
 2051};
 2052#line 291 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
 2053typedef struct _SET_HD_BIT_PARMS SET_HD_BIT_PARMS;
 2054#line 202 "C:/NTDDK/inc/mountmgr.h"
 2055struct _MOUNTDEV_NAME {
 2056   USHORT NameLength ;
 2057   WCHAR Name[1] ;
 2058};
 2059#line 202 "C:/NTDDK/inc/mountmgr.h"
 2060typedef struct _MOUNTDEV_NAME MOUNTDEV_NAME;
 2061#line 202 "C:/NTDDK/inc/mountmgr.h"
 2062typedef struct _MOUNTDEV_NAME *PMOUNTDEV_NAME;
 2063#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
 2064struct _MOUNTDEV_UNIQUE_ID {
 2065   USHORT UniqueIdLength ;
 2066   UCHAR UniqueId[1] ;
 2067};
 2068#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
 2069typedef struct _MOUNTDEV_UNIQUE_ID MOUNTDEV_UNIQUE_ID;
 2070#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
 2071typedef struct _MOUNTDEV_UNIQUE_ID *PMOUNTDEV_UNIQUE_ID;
 2072#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
 2073struct _MOUNTDEV_SUGGESTED_LINK_NAME {
 2074   BOOLEAN UseOnlyIfThereAreNoOtherLinks ;
 2075   USHORT NameLength ;
 2076   WCHAR Name[1] ;
 2077};
 2078#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
 2079typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME MOUNTDEV_SUGGESTED_LINK_NAME;
 2080#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
 2081typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME *PMOUNTDEV_SUGGESTED_LINK_NAME;
 2082#line 105 "./flo_data.h"
 2083struct _BOOT_SECTOR_INFO {
 2084   UCHAR JumpByte[1] ;
 2085   UCHAR Ignore1[2] ;
 2086   UCHAR OemData[8] ;
 2087   UCHAR BytesPerSector[2] ;
 2088   UCHAR Ignore2[6] ;
 2089   UCHAR NumberOfSectors[2] ;
 2090   UCHAR MediaByte[1] ;
 2091   UCHAR Ignore3[2] ;
 2092   UCHAR SectorsPerTrack[2] ;
 2093   UCHAR NumberOfHeads[2] ;
 2094};
 2095#line 105 "./flo_data.h"
 2096typedef struct _BOOT_SECTOR_INFO *PBOOT_SECTOR_INFO;
 2097#line 194
 2098enum _DRIVE_MEDIA_TYPE {
 2099    Drive360Media160 = 0,
 2100    Drive360Media180 = 1,
 2101    Drive360Media320 = 2,
 2102    Drive360Media32X = 3,
 2103    Drive360Media360 = 4,
 2104    Drive720Media720 = 5,
 2105    Drive120Media160 = 6,
 2106    Drive120Media180 = 7,
 2107    Drive120Media320 = 8,
 2108    Drive120Media32X = 9,
 2109    Drive120Media360 = 10,
 2110    Drive120Media120 = 11,
 2111    Drive144Media720 = 12,
 2112    Drive144Media144 = 13,
 2113    Drive288Media720 = 14,
 2114    Drive288Media144 = 15,
 2115    Drive288Media288 = 16
 2116} ;
 2117#line 194 "./flo_data.h"
 2118typedef enum _DRIVE_MEDIA_TYPE DRIVE_MEDIA_TYPE;
 2119#line 217
 2120enum _DRIVE_MEDIA_TYPE_NEC98 {
 2121    Drive360Media160Nec98 = 0,
 2122    Drive360Media180Nec98 = 1,
 2123    Drive360Media320Nec98 = 2,
 2124    Drive360Media32XNec98 = 3,
 2125    Drive360Media360Nec98 = 4,
 2126    Drive120Media160Nec98 = 5,
 2127    Drive120Media180Nec98 = 6,
 2128    Drive120Media320Nec98 = 7,
 2129    Drive120Media32XNec98 = 8,
 2130    Drive120Media360Nec98 = 9,
 2131    Drive120Media640Nec98 = 10,
 2132    Drive120Media720Nec98 = 11,
 2133    Drive120Media120Nec98 = 12,
 2134    Drive120Media123Nec98 = 13,
 2135    Drive144Media640Nec98 = 14,
 2136    Drive144Media720Nec98 = 15,
 2137    Drive144Media120Nec98 = 16,
 2138    Drive144Media123Nec98 = 17,
 2139    Drive144Media144Nec98 = 18,
 2140    Drive12EMedia120Nec98 = 19,
 2141    Drive12EMedia123Nec98 = 20
 2142} ;
 2143#line 217 "./flo_data.h"
 2144typedef enum _DRIVE_MEDIA_TYPE_NEC98 DRIVE_MEDIA_TYPE_NEC98;
 2145#line 260 "./flo_data.h"
 2146struct _DRIVE_MEDIA_LIMITS {
 2147   DRIVE_MEDIA_TYPE HighestDriveMediaType ;
 2148   DRIVE_MEDIA_TYPE LowestDriveMediaType ;
 2149};
 2150#line 260 "./flo_data.h"
 2151typedef struct _DRIVE_MEDIA_LIMITS DRIVE_MEDIA_LIMITS;
 2152#line 260 "./flo_data.h"
 2153typedef struct _DRIVE_MEDIA_LIMITS *PDRIVE_MEDIA_LIMITS;
 2154#line 277 "./flo_data.h"
 2155struct _DRIVE_MEDIA_LIMITS_NEC98 {
 2156   DRIVE_MEDIA_TYPE_NEC98 HighestDriveMediaType ;
 2157   DRIVE_MEDIA_TYPE_NEC98 LowestDriveMediaType ;
 2158};
 2159#line 277 "./flo_data.h"
 2160typedef struct _DRIVE_MEDIA_LIMITS_NEC98 DRIVE_MEDIA_LIMITS_NEC98;
 2161#line 298 "./flo_data.h"
 2162struct _DRIVE_MEDIA_CONSTANTS {
 2163   MEDIA_TYPE MediaType ;
 2164   UCHAR StepRateHeadUnloadTime ;
 2165   UCHAR HeadLoadTime ;
 2166   UCHAR MotorOffTime ;
 2167   UCHAR SectorLengthCode ;
 2168   USHORT BytesPerSector ;
 2169   UCHAR SectorsPerTrack ;
 2170   UCHAR ReadWriteGapLength ;
 2171   UCHAR FormatGapLength ;
 2172   UCHAR FormatFillCharacter ;
 2173   UCHAR HeadSettleTime ;
 2174   USHORT MotorSettleTimeRead ;
 2175   USHORT MotorSettleTimeWrite ;
 2176   UCHAR MaximumTrack ;
 2177   UCHAR CylinderShift ;
 2178   UCHAR DataTransferRate ;
 2179   UCHAR NumberOfHeads ;
 2180   UCHAR DataLength ;
 2181   UCHAR MediaByte ;
 2182   UCHAR SkewDelta ;
 2183};
 2184#line 298 "./flo_data.h"
 2185typedef struct _DRIVE_MEDIA_CONSTANTS DRIVE_MEDIA_CONSTANTS;
 2186#line 298 "./flo_data.h"
 2187typedef struct _DRIVE_MEDIA_CONSTANTS *PDRIVE_MEDIA_CONSTANTS;
 2188#line 528 "./flo_data.h"
 2189struct _DISKETTE_EXTENSION {
 2190   KSPIN_LOCK FlCancelSpinLock ;
 2191   PDEVICE_OBJECT UnderlyingPDO ;
 2192   PDEVICE_OBJECT TargetObject ;
 2193   BOOLEAN IsStarted ;
 2194   BOOLEAN IsRemoved ;
 2195   BOOLEAN HoldNewRequests ;
 2196   LIST_ENTRY NewRequestQueue ;
 2197   KSPIN_LOCK NewRequestQueueSpinLock ;
 2198   PDEVICE_OBJECT DeviceObject ;
 2199   KSEMAPHORE RequestSemaphore ;
 2200   KSPIN_LOCK ListSpinLock ;
 2201   FAST_MUTEX ThreadReferenceMutex ;
 2202   LONG ThreadReferenceCount ;
 2203   PKTHREAD FloppyThread ;
 2204   LIST_ENTRY ListEntry ;
 2205   BOOLEAN HardwareFailed ;
 2206   UCHAR HardwareFailCount ;
 2207   ULONG MaxTransferSize ;
 2208   UCHAR FifoBuffer[10] ;
 2209   PUCHAR IoBuffer ;
 2210   PMDL IoBufferMdl ;
 2211   ULONG IoBufferSize ;
 2212   PDRIVER_OBJECT DriverObject ;
 2213   DRIVE_MEDIA_TYPE LastDriveMediaType ;
 2214   BOOLEAN FloppyControllerAllocated ;
 2215   BOOLEAN ACPI_BIOS ;
 2216   UCHAR DriveType ;
 2217   ULONG BytesPerSector ;
 2218   ULONG ByteCapacity ;
 2219   MEDIA_TYPE MediaType ;
 2220   DRIVE_MEDIA_TYPE DriveMediaType ;
 2221   UCHAR DeviceUnit ;
 2222   UCHAR DriveOnValue ;
 2223   BOOLEAN IsReadOnly ;
 2224   DRIVE_MEDIA_CONSTANTS BiosDriveMediaConstants ;
 2225   DRIVE_MEDIA_CONSTANTS DriveMediaConstants ;
 2226   UCHAR PerpendicularMode ;
 2227   BOOLEAN ControllerConfigurable ;
 2228   UNICODE_STRING DeviceName ;
 2229   UNICODE_STRING InterfaceString ;
 2230   UNICODE_STRING ArcName ;
 2231   BOOLEAN ReleaseFdcWithMotorRunning ;
 2232   BOOLEAN PoweringDown ;
 2233   FAST_MUTEX PowerDownMutex ;
 2234   FAST_MUTEX HoldNewReqMutex ;
 2235};
 2236#line 528 "./flo_data.h"
 2237typedef struct _DISKETTE_EXTENSION DISKETTE_EXTENSION;
 2238#line 584 "./flo_data.h"
 2239typedef DISKETTE_EXTENSION *PDISKETTE_EXTENSION;
 2240#line 591 "./flo_data.h"
 2241struct _SENSE_DEVISE_STATUS_PTOS {
 2242   UCHAR ST3_PTOS ;
 2243};
 2244#line 591 "./flo_data.h"
 2245typedef struct _SENSE_DEVISE_STATUS_PTOS SENSE_DEVISE_STATUS_PTOS;
 2246#line 591 "./flo_data.h"
 2247typedef struct _SENSE_DEVISE_STATUS_PTOS *PSENSE_DEVISE_STATUS_PTOS;
 2248#line 33 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h"
 2249#pragma pack(push,8)
 2250#line 156
 2251#pragma pack(pop)
 2252#line 222 "C:/NTDDK/inc/ddk/ntddk.h"
 2253struct _KAPC;
 2254#line 292
 2255struct _KDPC;
 2256#line 27 "C:/NTDDK/inc/pshpack4.h"
 2257#pragma pack(push,4)
 2258#line 30 "C:/NTDDK/inc/poppack.h"
 2259#pragma pack(pop)
 2260#line 27 "C:/NTDDK/inc/pshpack4.h"
 2261#pragma pack(push,4)
 2262#line 30 "C:/NTDDK/inc/poppack.h"
 2263#pragma pack(pop)
 2264#line 27 "C:/NTDDK/inc/pshpack1.h"
 2265#pragma pack(push,1)
 2266#line 30 "C:/NTDDK/inc/poppack.h"
 2267#pragma pack(pop)
 2268#line 12399 "C:/NTDDK/inc/ddk/ntddk.h"
 2269struct _DRIVER_OBJECT;
 2270#line 12906
 2271struct _DEVICE_OBJECT;
 2272#line 12908
 2273struct _DRIVER_OBJECT;
 2274#line 12911
 2275struct _FILE_OBJECT;
 2276#line 12912
 2277struct _IRP;
 2278#line 12913
 2279struct _SCSI_REQUEST_BLOCK;
 2280#line 27 "C:/NTDDK/inc/pshpack4.h"
 2281#pragma pack(push,4)
 2282#line 30 "C:/NTDDK/inc/poppack.h"
 2283#pragma pack(pop)
 2284#line 307 "C:/NTDDK/inc/stdio.h"
 2285extern int ( __attribute__((__cdecl__)) sprintf)(char * , char const   *  , ...) ;
 2286#line 351
 2287extern int ( __attribute__((__cdecl__)) swprintf)(wchar_t * , wchar_t const   *  , ...) ;
 2288#line 832 "C:/NTDDK/inc/ntdef.h"
 2289#pragma warning(push)
 2290#line 834
 2291#pragma warning(disable:4035)
 2292#line 835 "C:/NTDDK/inc/ntdef.h"
 2293__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShllMod32___0)(ULONGLONG Value ,
 2294                                                                      ULONG ShiftCount ) 
 2295{ 
 2296
 2297  {
 2298#line 850
 2299  return (0ULL);
 2300}
 2301}
 2302#line 845 "C:/NTDDK/inc/ntdef.h"
 2303__inline LONGLONG ( __attribute__((__stdcall__)) Int64ShraMod32___0)(LONGLONG Value ,
 2304                                                                     ULONG ShiftCount ) 
 2305{ 
 2306
 2307  {
 2308#line 860
 2309  return (0LL);
 2310}
 2311}
 2312#line 855 "C:/NTDDK/inc/ntdef.h"
 2313__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShrlMod32___0)(ULONGLONG Value ,
 2314                                                                      ULONG ShiftCount ) 
 2315{ 
 2316
 2317  {
 2318#line 870
 2319  return (0ULL);
 2320}
 2321}
 2322#line 873
 2323#pragma warning(pop)
 2324#line 1094 "C:/NTDDK/inc/ntdef.h"
 2325__inline void ListEntry32To64(PLIST_ENTRY32 l32 , PLIST_ENTRY64 l64 ) 
 2326{ ULONG __cil_tmp3 ;
 2327  long __cil_tmp4 ;
 2328  long long __cil_tmp5 ;
 2329  unsigned int __cil_tmp6 ;
 2330  unsigned int __cil_tmp7 ;
 2331  unsigned int __cil_tmp8 ;
 2332  unsigned int __cil_tmp9 ;
 2333  ULONG __cil_tmp10 ;
 2334  long __cil_tmp11 ;
 2335  long long __cil_tmp12 ;
 2336  ULONG *mem_13 ;
 2337  ULONGLONG *mem_14 ;
 2338  ULONG *mem_15 ;
 2339  ULONGLONG *mem_16 ;
 2340
 2341  {
 2342#line 1101
 2343  mem_13 = (ULONG *)l32;
 2344#line 1101
 2345  __cil_tmp3 = *mem_13;
 2346#line 1101
 2347  __cil_tmp4 = (long )__cil_tmp3;
 2348#line 1101
 2349  __cil_tmp5 = (long long )__cil_tmp4;
 2350#line 1101
 2351  mem_14 = (ULONGLONG *)l64;
 2352#line 1101
 2353  *mem_14 = (unsigned long long )__cil_tmp5;
 2354#line 1102
 2355  __cil_tmp6 = (unsigned int )l64;
 2356#line 1102
 2357  __cil_tmp7 = __cil_tmp6 + 8;
 2358#line 1102
 2359  __cil_tmp8 = (unsigned int )l32;
 2360#line 1102
 2361  __cil_tmp9 = __cil_tmp8 + 4;
 2362#line 1102
 2363  mem_15 = (ULONG *)__cil_tmp9;
 2364#line 1102
 2365  __cil_tmp10 = *mem_15;
 2366#line 1102
 2367  __cil_tmp11 = (long )__cil_tmp10;
 2368#line 1102
 2369  __cil_tmp12 = (long long )__cil_tmp11;
 2370#line 1102
 2371  mem_16 = (ULONGLONG *)__cil_tmp7;
 2372#line 1102
 2373  *mem_16 = (unsigned long long )__cil_tmp12;
 2374#line 1105
 2375  return;
 2376}
 2377}
 2378#line 1105 "C:/NTDDK/inc/ntdef.h"
 2379__inline void ListEntry64To32(PLIST_ENTRY64 l64 , PLIST_ENTRY32 l32 ) 
 2380{ ULONGLONG __cil_tmp3 ;
 2381  unsigned int __cil_tmp4 ;
 2382  unsigned int __cil_tmp5 ;
 2383  unsigned int __cil_tmp6 ;
 2384  unsigned int __cil_tmp7 ;
 2385  ULONGLONG __cil_tmp8 ;
 2386  ULONGLONG *mem_9 ;
 2387  ULONG *mem_10 ;
 2388  ULONGLONG *mem_11 ;
 2389  ULONG *mem_12 ;
 2390
 2391  {
 2392#line 1112
 2393  mem_9 = (ULONGLONG *)l64;
 2394#line 1112
 2395  __cil_tmp3 = *mem_9;
 2396#line 1112
 2397  mem_10 = (ULONG *)l32;
 2398#line 1112
 2399  *mem_10 = (unsigned long )__cil_tmp3;
 2400#line 1113
 2401  __cil_tmp4 = (unsigned int )l32;
 2402#line 1113
 2403  __cil_tmp5 = __cil_tmp4 + 4;
 2404#line 1113
 2405  __cil_tmp6 = (unsigned int )l64;
 2406#line 1113
 2407  __cil_tmp7 = __cil_tmp6 + 8;
 2408#line 1113
 2409  mem_11 = (ULONGLONG *)__cil_tmp7;
 2410#line 1113
 2411  __cil_tmp8 = *mem_11;
 2412#line 1113
 2413  mem_12 = (ULONG *)__cil_tmp5;
 2414#line 1113
 2415  *mem_12 = (unsigned long )__cil_tmp8;
 2416#line 1116
 2417  return;
 2418}
 2419}
 2420#line 93 "C:/NTDDK/inc/string.h"
 2421extern void *( __attribute__((__cdecl__)) memcpy)(void * , void const   * , size_t  ) ;
 2422#line 95
 2423extern void *( __attribute__((__cdecl__)) memset)(void * , int  , size_t  ) ;
 2424#line 110
 2425extern void *( __attribute__((__cdecl__)) memmove)(void * , void const   * , size_t  ) ;
 2426#line 101 "C:/NTDDK/inc/ddk/ntddk.h"
 2427extern PKTHREAD ( __attribute__((__stdcall__)) KeGetCurrentThread)() ;
 2428#line 25 "C:/NTDDK/inc/pshpack4.h"
 2429#pragma warning(disable:4103)
 2430#line 28 "C:/NTDDK/inc/poppack.h"
 2431#pragma warning(disable:4103)
 2432#line 1136 "C:/NTDDK/inc/ddk/ntddk.h"
 2433 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo ,
 2434                                                                                                PCWSTR Path ,
 2435                                                                                                PRTL_QUERY_REGISTRY_TABLE QueryTable ,
 2436                                                                                                PVOID Context ,
 2437                                                                                                PVOID Environment ) ;
 2438#line 1159
 2439 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo ,
 2440                                                                                                PCWSTR Path ,
 2441                                                                                                PCWSTR ValueName ) ;
 2442#line 1264
 2443 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString ,
 2444                                                                                   PCSZ SourceString ) ;
 2445#line 1280
 2446 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString ,
 2447                                                                                          PCWSTR SourceString ) ;
 2448#line 1335
 2449 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString ,
 2450                                                                                                      PANSI_STRING SourceString ,
 2451                                                                                                      BOOLEAN AllocateDestinationString ) ;
 2452#line 1394
 2453 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString ,
 2454                                                                                          PUNICODE_STRING SourceString ) ;
 2455#line 1429
 2456 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) ;
 2457#line 1516
 2458 __attribute__((__dllimport__)) SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const   *Source1 ,
 2459                                                                                        void const   *Source2 ,
 2460                                                                                        SIZE_T Length ) ;
 2461#line 1718 "C:/NTDDK/inc/ddk/ntddk.h"
 2462__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerAdd)(LARGE_INTEGER Addend1 ,
 2463                                                                          LARGE_INTEGER Addend2 ) 
 2464{ LARGE_INTEGER Sum ;
 2465
 2466  {
 2467#line 1728
 2468  Sum.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
 2469#line 1729
 2470  return (Sum);
 2471}
 2472}
 2473#line 1736 "C:/NTDDK/inc/ddk/ntddk.h"
 2474__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedIntegerMultiply)(LONG Multiplicand ,
 2475                                                                                  LONG Multiplier ) 
 2476{ LARGE_INTEGER Product ;
 2477  unsigned long long __cil_tmp4 ;
 2478  long long __cil_tmp5 ;
 2479  unsigned long long __cil_tmp6 ;
 2480  unsigned long long __cil_tmp7 ;
 2481
 2482  {
 2483#line 1746
 2484  __cil_tmp4 = (unsigned long long )Multiplier;
 2485#line 1746
 2486  __cil_tmp5 = (long long )Multiplicand;
 2487#line 1746
 2488  __cil_tmp6 = (unsigned long long )__cil_tmp5;
 2489#line 1746
 2490  __cil_tmp7 = __cil_tmp6 * __cil_tmp4;
 2491#line 1746
 2492  Product.QuadPart = (long long )__cil_tmp7;
 2493#line 1747
 2494  return (Product);
 2495}
 2496}
 2497#line 1754 "C:/NTDDK/inc/ddk/ntddk.h"
 2498__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedUnsignedMultiply)(ULONG Multiplicand ,
 2499                                                                                   ULONG Multiplier ) 
 2500{ LARGE_INTEGER Product ;
 2501  unsigned long long __cil_tmp4 ;
 2502  unsigned long long __cil_tmp5 ;
 2503  unsigned long long __cil_tmp6 ;
 2504
 2505  {
 2506#line 1764
 2507  __cil_tmp4 = (unsigned long long )Multiplier;
 2508#line 1764
 2509  __cil_tmp5 = (unsigned long long )Multiplicand;
 2510#line 1764
 2511  __cil_tmp6 = __cil_tmp5 * __cil_tmp4;
 2512#line 1764
 2513  Product.QuadPart = (long long )__cil_tmp6;
 2514#line 1765
 2515  return (Product);
 2516}
 2517}
 2518#line 1772 "C:/NTDDK/inc/ddk/ntddk.h"
 2519__inline ULONG ( __attribute__((__stdcall__)) RtlEnlargedUnsignedDivide)(ULARGE_INTEGER Dividend ,
 2520                                                                         ULONG Divisor ,
 2521                                                                         PULONG Remainder ) 
 2522{ ULONG Quotient ;
 2523  unsigned long long __cil_tmp5 ;
 2524  ULONGLONG __cil_tmp6 ;
 2525  void *__cil_tmp7 ;
 2526  CHAR *__cil_tmp8 ;
 2527  unsigned int __cil_tmp9 ;
 2528  CHAR *__cil_tmp10 ;
 2529  unsigned int __cil_tmp11 ;
 2530  unsigned long long __cil_tmp12 ;
 2531  unsigned long long __cil_tmp13 ;
 2532
 2533  {
 2534#line 1783
 2535  __cil_tmp5 = (unsigned long long )Divisor;
 2536#line 1783
 2537  __cil_tmp6 = Dividend.QuadPart / __cil_tmp5;
 2538#line 1783
 2539  Quotient = (unsigned long )__cil_tmp6;
 2540  {
 2541#line 1784
 2542  __cil_tmp7 = (void *)0;
 2543#line 1784
 2544  __cil_tmp8 = (CHAR *)__cil_tmp7;
 2545#line 1784
 2546  __cil_tmp9 = (unsigned int )__cil_tmp8;
 2547#line 1784
 2548  __cil_tmp10 = (CHAR *)Remainder;
 2549#line 1784
 2550  __cil_tmp11 = (unsigned int )__cil_tmp10;
 2551#line 1784
 2552  if (__cil_tmp11 != __cil_tmp9) {
 2553#line 1786
 2554    __cil_tmp12 = (unsigned long long )Divisor;
 2555#line 1786
 2556    __cil_tmp13 = Dividend.QuadPart % __cil_tmp12;
 2557#line 1786
 2558    *Remainder = (unsigned long )__cil_tmp13;
 2559  } else {
 2560
 2561  }
 2562  }
 2563#line 1789
 2564  return (Quotient);
 2565}
 2566}
 2567#line 1796 "C:/NTDDK/inc/ddk/ntddk.h"
 2568__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerNegate)(LARGE_INTEGER Subtrahend ) 
 2569{ LARGE_INTEGER Difference ;
 2570
 2571  {
 2572#line 1805
 2573  Difference.QuadPart = - Subtrahend.QuadPart;
 2574#line 1806
 2575  return (Difference);
 2576}
 2577}
 2578#line 1813 "C:/NTDDK/inc/ddk/ntddk.h"
 2579__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerSubtract)(LARGE_INTEGER Minuend ,
 2580                                                                               LARGE_INTEGER Subtrahend ) 
 2581{ LARGE_INTEGER Difference ;
 2582
 2583  {
 2584#line 1823
 2585  Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
 2586#line 1824
 2587  return (Difference);
 2588}
 2589}
 2590#line 1953
 2591#pragma warning(push)
 2592#line 1955
 2593#pragma warning(disable:4035)
 2594#line 1960 "C:/NTDDK/inc/ddk/ntddk.h"
 2595__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertLongToLargeInteger)(LONG SignedInteger ) 
 2596{ LARGE_INTEGER stub ;
 2597
 2598  {
 2599#line 1971
 2600  return (stub);
 2601}
 2602}
 2603#line 1973 "C:/NTDDK/inc/ddk/ntddk.h"
 2604__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertUlongToLargeInteger)(ULONG UnsignedInteger ) 
 2605{ LARGE_INTEGER stub ;
 2606
 2607  {
 2608#line 1984
 2609  return (stub);
 2610}
 2611}
 2612#line 1986 "C:/NTDDK/inc/ddk/ntddk.h"
 2613__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftLeft)(LARGE_INTEGER LargeInteger ,
 2614                                                                                CCHAR ShiftCount ) 
 2615{ LARGE_INTEGER stub ;
 2616
 2617  {
 2618#line 2013
 2619  return (stub);
 2620}
 2621}
 2622#line 2015 "C:/NTDDK/inc/ddk/ntddk.h"
 2623__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftRight)(LARGE_INTEGER LargeInteger ,
 2624                                                                                 CCHAR ShiftCount ) 
 2625{ LARGE_INTEGER stub ;
 2626
 2627  {
 2628#line 2024
 2629  return (stub);
 2630}
 2631}
 2632#line 2026 "C:/NTDDK/inc/ddk/ntddk.h"
 2633__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerArithmeticShift)(LARGE_INTEGER LargeInteger ,
 2634                                                                                      CCHAR ShiftCount ) 
 2635{ LARGE_INTEGER stub ;
 2636
 2637  {
 2638#line 2035
 2639  return (stub);
 2640}
 2641}
 2642#line 2038
 2643#pragma warning(pop)
 2644#line 2796 "C:/NTDDK/inc/ddk/ntddk.h"
 2645__inline LUID ( __attribute__((__stdcall__)) RtlConvertLongToLuid)(LONG Long ) 
 2646{ LUID TempLuid ;
 2647  LARGE_INTEGER TempLi ;
 2648
 2649  {
 2650  {
 2651#line 2805
 2652  TempLi = RtlConvertLongToLargeInteger(Long);
 2653#line 2806
 2654  TempLuid.LowPart = TempLi.__annonCompField1.LowPart;
 2655#line 2807
 2656  TempLuid.HighPart = TempLi.__annonCompField1.HighPart;
 2657  }
 2658#line 2808
 2659  return (TempLuid);
 2660}
 2661}
 2662#line 2811 "C:/NTDDK/inc/ddk/ntddk.h"
 2663__inline LUID ( __attribute__((__stdcall__)) RtlConvertUlongToLuid)(ULONG Ulong ) 
 2664{ LUID TempLuid ;
 2665
 2666  {
 2667#line 2819
 2668  TempLuid.LowPart = Ulong;
 2669#line 2820
 2670  TempLuid.HighPart = 0L;
 2671#line 2821
 2672  return (TempLuid);
 2673}
 2674}
 2675#line 5211
 2676extern  __attribute__((__dllimport__)) LONG ( __attribute__((__fastcall__)) InterlockedExchange)(PLONG Target ,
 2677                                                                                                 LONG Value ) ;
 2678#line 5253
 2679#pragma warning(disable:4035)
 2680#line 5271 "C:/NTDDK/inc/ddk/ntddk.h"
 2681__inline ULONG KeGetCurrentProcessorNumber(void) 
 2682{ 
 2683
 2684  {
 2685#line 5274
 2686  return (0UL);
 2687}
 2688}
 2689#line 7015
 2690#pragma warning(push)
 2691#line 7017
 2692#pragma warning(disable:4164)
 2693#line 7020
 2694#pragma function(_enable)
 2695#line 7021
 2696#pragma function(_disable)
 2697#line 7025
 2698#pragma warning(pop)
 2699#line 25 "C:/NTDDK/inc/pshpack4.h"
 2700#pragma warning(disable:4103)
 2701#line 28 "C:/NTDDK/inc/poppack.h"
 2702#pragma warning(disable:4103)
 2703#line 25 "C:/NTDDK/inc/pshpack1.h"
 2704#pragma warning(disable:4103)
 2705#line 28 "C:/NTDDK/inc/poppack.h"
 2706#pragma warning(disable:4103)
 2707#line 9415 "C:/NTDDK/inc/ddk/ntddk.h"
 2708 __attribute__((__dllimport__)) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type ,
 2709                                                       BOOLEAN State ) ;
 2710#line 9451
 2711 __attribute__((__dllimport__)) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment ,
 2712                                                BOOLEAN Wait ) ;
 2713#line 9483
 2714 __attribute__((__dllimport__)) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore ,
 2715                                                           LONG Count , LONG Limit ) ;
 2716#line 9497
 2717 __attribute__((__dllimport__)) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment ,
 2718                                                        LONG Adjustment , BOOLEAN Wait ) ;
 2719#line 9506
 2720 __attribute__((__dllimport__)) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode ,
 2721                                                                BOOLEAN Alertable ,
 2722                                                                PLARGE_INTEGER Interval ) ;
 2723#line 9527
 2724extern  __attribute__((__dllimport__)) KPRIORITY KeSetPriorityThread(PKTHREAD Thread ,
 2725                                                                     KPRIORITY Priority ) ;
 2726#line 9681
 2727 __attribute__((__dllimport__)) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason ,
 2728                                                               KPROCESSOR_MODE WaitMode ,
 2729                                                               BOOLEAN Alertable ,
 2730                                                               PLARGE_INTEGER Timeout ) ;
 2731#line 9711
 2732 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) ;
 2733#line 9737
 2734extern  __attribute__((__dllimport__)) KIRQL ( __attribute__((__fastcall__)) KfAcquireSpinLock)(PKSPIN_LOCK SpinLock ) ;
 2735#line 9744
 2736 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock ,
 2737                                                                                        KIRQL NewIrql ) ;
 2738#line 10159
 2739 __attribute__((__dllimport__)) PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType ,
 2740                                                                                            SIZE_T NumberOfBytes ,
 2741                                                                                            ULONG Tag ) ;
 2742#line 10236
 2743 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) ;
 2744#line 10315
 2745 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) ;
 2746#line 10322
 2747 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) ;
 2748#line 10406
 2749 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead ,
 2750                                                                                                          PLIST_ENTRY ListEntry ,
 2751                                                                                                          PKSPIN_LOCK Lock ) ;
 2752#line 10415
 2753 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead ,
 2754                                                                                                          PLIST_ENTRY ListEntry ,
 2755                                                                                                          PKSPIN_LOCK Lock ) ;
 2756#line 10424
 2757 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead ,
 2758                                                                                                          PKSPIN_LOCK Lock ) ;
 2759#line 10547
 2760extern  __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPopEntrySList)(PSLIST_HEADER ListHead ,
 2761                                                                                                                      PKSPIN_LOCK Lock ) ;
 2762#line 10555
 2763extern  __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPushEntrySList)(PSLIST_HEADER ListHead ,
 2764                                                                                                                       PSINGLE_LIST_ENTRY ListEntry ,
 2765                                                                                                                       PKSPIN_LOCK Lock ) ;
 2766#line 10643 "C:/NTDDK/inc/ddk/ntddk.h"
 2767__inline PVOID ExAllocateFromNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside ) 
 2768{ PVOID Entry ;
 2769  PSINGLE_LIST_ENTRY tmp ;
 2770  unsigned int __cil_tmp4 ;
 2771  unsigned int __cil_tmp5 ;
 2772  unsigned int __cil_tmp6 ;
 2773  unsigned int __cil_tmp7 ;
 2774  unsigned int __cil_tmp8 ;
 2775  unsigned int __cil_tmp9 ;
 2776  ULONG __cil_tmp10 ;
 2777  SLIST_HEADER *__cil_tmp11 ;
 2778  unsigned int __cil_tmp12 ;
 2779  unsigned int __cil_tmp13 ;
 2780  KSPIN_LOCK *__cil_tmp14 ;
 2781  void *__cil_tmp15 ;
 2782  unsigned int __cil_tmp16 ;
 2783  unsigned int __cil_tmp17 ;
 2784  unsigned int __cil_tmp18 ;
 2785  unsigned int __cil_tmp19 ;
 2786  unsigned int __cil_tmp20 ;
 2787  unsigned int __cil_tmp21 ;
 2788  unsigned int __cil_tmp22 ;
 2789  unsigned int __cil_tmp23 ;
 2790  ULONG __cil_tmp24 ;
 2791  unsigned int __cil_tmp25 ;
 2792  unsigned int __cil_tmp26 ;
 2793  unsigned int __cil_tmp27 ;
 2794  PVOID (*__cil_tmp28)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
 2795  unsigned int __cil_tmp29 ;
 2796  unsigned int __cil_tmp30 ;
 2797  unsigned int __cil_tmp31 ;
 2798  POOL_TYPE __cil_tmp32 ;
 2799  unsigned int __cil_tmp33 ;
 2800  unsigned int __cil_tmp34 ;
 2801  unsigned int __cil_tmp35 ;
 2802  ULONG __cil_tmp36 ;
 2803  unsigned int __cil_tmp37 ;
 2804  unsigned int __cil_tmp38 ;
 2805  unsigned int __cil_tmp39 ;
 2806  ULONG __cil_tmp40 ;
 2807  ULONG *mem_41 ;
 2808  ULONG *mem_42 ;
 2809  ULONG *mem_43 ;
 2810  ULONG *mem_44 ;
 2811  PVOID (**mem_45)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
 2812  POOL_TYPE *mem_46 ;
 2813  ULONG *mem_47 ;
 2814  ULONG *mem_48 ;
 2815
 2816  {
 2817  {
 2818#line 10672
 2819  __cil_tmp4 = 0 + 12;
 2820#line 10672
 2821  __cil_tmp5 = (unsigned int )Lookaside;
 2822#line 10672
 2823  __cil_tmp6 = __cil_tmp5 + __cil_tmp4;
 2824#line 10672
 2825  __cil_tmp7 = 0 + 12;
 2826#line 10672
 2827  __cil_tmp8 = (unsigned int )Lookaside;
 2828#line 10672
 2829  __cil_tmp9 = __cil_tmp8 + __cil_tmp7;
 2830#line 10672
 2831  mem_41 = (ULONG *)__cil_tmp9;
 2832#line 10672
 2833  __cil_tmp10 = *mem_41;
 2834#line 10672
 2835  mem_42 = (ULONG *)__cil_tmp6;
 2836#line 10672
 2837  *mem_42 = __cil_tmp10 + 1UL;
 2838#line 10673
 2839  __cil_tmp11 = (SLIST_HEADER *)Lookaside;
 2840#line 10673
 2841  __cil_tmp12 = (unsigned int )Lookaside;
 2842#line 10673
 2843  __cil_tmp13 = __cil_tmp12 + 100;
 2844#line 10673
 2845  __cil_tmp14 = (KSPIN_LOCK *)__cil_tmp13;
 2846#line 10673
 2847  tmp = ExInterlockedPopEntrySList(__cil_tmp11, __cil_tmp14);
 2848#line 10673
 2849  Entry = (void *)tmp;
 2850  }
 2851  {
 2852#line 10674
 2853  __cil_tmp15 = (void *)0;
 2854#line 10674
 2855  __cil_tmp16 = (unsigned int )__cil_tmp15;
 2856#line 10674
 2857  __cil_tmp17 = (unsigned int )Entry;
 2858#line 10674
 2859  if (__cil_tmp17 == __cil_tmp16) {
 2860    {
 2861#line 10675
 2862    __cil_tmp18 = 0 + 16;
 2863#line 10675
 2864    __cil_tmp19 = (unsigned int )Lookaside;
 2865#line 10675
 2866    __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
 2867#line 10675
 2868    __cil_tmp21 = 0 + 16;
 2869#line 10675
 2870    __cil_tmp22 = (unsigned int )Lookaside;
 2871#line 10675
 2872    __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
 2873#line 10675
 2874    mem_43 = (ULONG *)__cil_tmp23;
 2875#line 10675
 2876    __cil_tmp24 = *mem_43;
 2877#line 10675
 2878    mem_44 = (ULONG *)__cil_tmp20;
 2879#line 10675
 2880    *mem_44 = __cil_tmp24 + 1UL;
 2881#line 10676
 2882    __cil_tmp25 = 0 + 68;
 2883#line 10676
 2884    __cil_tmp26 = (unsigned int )Lookaside;
 2885#line 10676
 2886    __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
 2887#line 10676
 2888    mem_45 = (PVOID (**)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ))__cil_tmp27;
 2889#line 10676
 2890    __cil_tmp28 = *mem_45;
 2891#line 10676
 2892    __cil_tmp29 = 0 + 28;
 2893#line 10676
 2894    __cil_tmp30 = (unsigned int )Lookaside;
 2895#line 10676
 2896    __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
 2897#line 10676
 2898    mem_46 = (POOL_TYPE *)__cil_tmp31;
 2899#line 10676
 2900    __cil_tmp32 = *mem_46;
 2901#line 10676
 2902    __cil_tmp33 = 0 + 64;
 2903#line 10676
 2904    __cil_tmp34 = (unsigned int )Lookaside;
 2905#line 10676
 2906    __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
 2907#line 10676
 2908    mem_47 = (ULONG *)__cil_tmp35;
 2909#line 10676
 2910    __cil_tmp36 = *mem_47;
 2911#line 10676
 2912    __cil_tmp37 = 0 + 60;
 2913#line 10676
 2914    __cil_tmp38 = (unsigned int )Lookaside;
 2915#line 10676
 2916    __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
 2917#line 10676
 2918    mem_48 = (ULONG *)__cil_tmp39;
 2919#line 10676
 2920    __cil_tmp40 = *mem_48;
 2921#line 10676
 2922    Entry = (*__cil_tmp28)(__cil_tmp32, __cil_tmp36, __cil_tmp40);
 2923    }
 2924  } else {
 2925
 2926  }
 2927  }
 2928#line 10681
 2929  return (Entry);
 2930}
 2931}
 2932#line 10684 "C:/NTDDK/inc/ddk/ntddk.h"
 2933__inline void ExFreeToNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside , PVOID Entry ) 
 2934{ unsigned int __cil_tmp3 ;
 2935  unsigned int __cil_tmp4 ;
 2936  unsigned int __cil_tmp5 ;
 2937  unsigned int __cil_tmp6 ;
 2938  unsigned int __cil_tmp7 ;
 2939  unsigned int __cil_tmp8 ;
 2940  ULONG __cil_tmp9 ;
 2941  unsigned int __cil_tmp10 ;
 2942  unsigned int __cil_tmp11 ;
 2943  unsigned int __cil_tmp12 ;
 2944  USHORT __cil_tmp13 ;
 2945  int __cil_tmp14 ;
 2946  unsigned int __cil_tmp15 ;
 2947  unsigned int __cil_tmp16 ;
 2948  unsigned int __cil_tmp17 ;
 2949  unsigned int __cil_tmp18 ;
 2950  unsigned int __cil_tmp19 ;
 2951  USHORT __cil_tmp20 ;
 2952  int __cil_tmp21 ;
 2953  unsigned int __cil_tmp22 ;
 2954  unsigned int __cil_tmp23 ;
 2955  unsigned int __cil_tmp24 ;
 2956  unsigned int __cil_tmp25 ;
 2957  unsigned int __cil_tmp26 ;
 2958  unsigned int __cil_tmp27 ;
 2959  ULONG __cil_tmp28 ;
 2960  unsigned int __cil_tmp29 ;
 2961  unsigned int __cil_tmp30 ;
 2962  unsigned int __cil_tmp31 ;
 2963  void (*__cil_tmp32)(PVOID Buffer ) ;
 2964  SLIST_HEADER *__cil_tmp33 ;
 2965  struct _SINGLE_LIST_ENTRY *__cil_tmp34 ;
 2966  unsigned int __cil_tmp35 ;
 2967  unsigned int __cil_tmp36 ;
 2968  KSPIN_LOCK *__cil_tmp37 ;
 2969  ULONG *mem_38 ;
 2970  ULONG *mem_39 ;
 2971  USHORT *mem_40 ;
 2972  USHORT *mem_41 ;
 2973  ULONG *mem_42 ;
 2974  ULONG *mem_43 ;
 2975  void (**mem_44)(PVOID Buffer ) ;
 2976
 2977  {
 2978#line 10713
 2979  __cil_tmp3 = 0 + 20;
 2980#line 10713
 2981  __cil_tmp4 = (unsigned int )Lookaside;
 2982#line 10713
 2983  __cil_tmp5 = __cil_tmp4 + __cil_tmp3;
 2984#line 10713
 2985  __cil_tmp6 = 0 + 20;
 2986#line 10713
 2987  __cil_tmp7 = (unsigned int )Lookaside;
 2988#line 10713
 2989  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
 2990#line 10713
 2991  mem_38 = (ULONG *)__cil_tmp8;
 2992#line 10713
 2993  __cil_tmp9 = *mem_38;
 2994#line 10713
 2995  mem_39 = (ULONG *)__cil_tmp5;
 2996#line 10713
 2997  *mem_39 = __cil_tmp9 + 1UL;
 2998  {
 2999#line 10714
 3000  __cil_tmp10 = 0 + 8;
 3001#line 10714
 3002  __cil_tmp11 = (unsigned int )Lookaside;
 3003#line 10714
 3004  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
 3005#line 10714
 3006  mem_40 = (USHORT *)__cil_tmp12;
 3007#line 10714
 3008  __cil_tmp13 = *mem_40;
 3009#line 10714
 3010  __cil_tmp14 = (int )__cil_tmp13;
 3011#line 10714
 3012  __cil_tmp15 = 0 + 4;
 3013#line 10714
 3014  __cil_tmp16 = 0 + __cil_tmp15;
 3015#line 10714
 3016  __cil_tmp17 = 0 + __cil_tmp16;
 3017#line 10714
 3018  __cil_tmp18 = (unsigned int )Lookaside;
 3019#line 10714
 3020  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
 3021#line 10714
 3022  mem_41 = (USHORT *)__cil_tmp19;
 3023#line 10714
 3024  __cil_tmp20 = *mem_41;
 3025#line 10714
 3026  __cil_tmp21 = (int )__cil_tmp20;
 3027#line 10714
 3028  if (__cil_tmp21 >= __cil_tmp14) {
 3029    {
 3030#line 10715
 3031    __cil_tmp22 = 0 + 24;
 3032#line 10715
 3033    __cil_tmp23 = (unsigned int )Lookaside;
 3034#line 10715
 3035    __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
 3036#line 10715
 3037    __cil_tmp25 = 0 + 24;
 3038#line 10715
 3039    __cil_tmp26 = (unsigned int )Lookaside;
 3040#line 10715
 3041    __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
 3042#line 10715
 3043    mem_42 = (ULONG *)__cil_tmp27;
 3044#line 10715
 3045    __cil_tmp28 = *mem_42;
 3046#line 10715
 3047    mem_43 = (ULONG *)__cil_tmp24;
 3048#line 10715
 3049    *mem_43 = __cil_tmp28 + 1UL;
 3050#line 10716
 3051    __cil_tmp29 = 0 + 72;
 3052#line 10716
 3053    __cil_tmp30 = (unsigned int )Lookaside;
 3054#line 10716
 3055    __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
 3056#line 10716
 3057    mem_44 = (void (**)(PVOID Buffer ))__cil_tmp31;
 3058#line 10716
 3059    __cil_tmp32 = *mem_44;
 3060#line 10716
 3061    (*__cil_tmp32)(Entry);
 3062    }
 3063  } else {
 3064    {
 3065#line 10719
 3066    __cil_tmp33 = (SLIST_HEADER *)Lookaside;
 3067#line 10719
 3068    __cil_tmp34 = (struct _SINGLE_LIST_ENTRY *)Entry;
 3069#line 10719
 3070    __cil_tmp35 = (unsigned int )Lookaside;
 3071#line 10719
 3072    __cil_tmp36 = __cil_tmp35 + 100;
 3073#line 10719
 3074    __cil_tmp37 = (KSPIN_LOCK *)__cil_tmp36;
 3075#line 10719
 3076    ExInterlockedPushEntrySList(__cil_tmp33, __cil_tmp34, __cil_tmp37);
 3077    }
 3078  }
 3079  }
 3080#line 10726
 3081  return;
 3082}
 3083}
 3084#line 11906
 3085extern  __attribute__((__dllimport__)) void MmProbeAndLockPages(PMDL MemoryDescriptorList ,
 3086                                                                KPROCESSOR_MODE AccessMode ,
 3087                                                                LOCK_OPERATION Operation ) ;
 3088#line 11915
 3089 __attribute__((__dllimport__)) void MmUnlockPages(PMDL MemoryDescriptorList ) ;
 3090#line 11979
 3091 __attribute__((__dllimport__)) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList ,
 3092                                                                   KPROCESSOR_MODE AccessMode ,
 3093                                                                   MEMORY_CACHING_TYPE CacheType ,
 3094                                                                   PVOID BaseAddress ,
 3095                                                                   ULONG BugCheckOnFailure ,
 3096                                                                   MM_PAGE_PRIORITY Priority ) ;
 3097#line 12084
 3098 __attribute__((__dllimport__)) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes ,
 3099                                                                 PHYSICAL_ADDRESS HighestAcceptableAddress ) ;
 3100#line 12101
 3101 __attribute__((__dllimport__)) void MmFreeContiguousMemory(PVOID BaseAddress ) ;
 3102#line 12172
 3103 __attribute__((__dllimport__)) void MmResetDriverPaging(PVOID AddressWithinSection ) ;
 3104#line 12179
 3105 __attribute__((__dllimport__)) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ;
 3106#line 12552
 3107 __attribute__((__dllimport__)) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle ,
 3108                                                              ULONG DesiredAccess ,
 3109                                                              POBJECT_ATTRIBUTES ObjectAttributes ,
 3110                                                              HANDLE ProcessHandle ,
 3111                                                              PCLIENT_ID ClientId ,
 3112                                                              void (*StartRoutine)(PVOID StartContext ) ,
 3113                                                              PVOID StartContext ) ;
 3114#line 12564
 3115 __attribute__((__dllimport__)) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ;
 3116#line 25 "C:/NTDDK/inc/pshpack4.h"
 3117#pragma warning(disable:4103)
 3118#line 28 "C:/NTDDK/inc/poppack.h"
 3119#pragma warning(disable:4103)
 3120#line 14734 "C:/NTDDK/inc/ddk/ntddk.h"
 3121 __attribute__((__dllimport__)) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length ,
 3122                                                   BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota ,
 3123                                                   PIRP Irp ) ;
 3124#line 14807
 3125 __attribute__((__dllimport__)) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice ,
 3126                                                                           PDEVICE_OBJECT TargetDevice ) ;
 3127#line 14814
 3128 __attribute__((__dllimport__)) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction ,
 3129                                                                   PDEVICE_OBJECT DeviceObject ,
 3130                                                                   PVOID Buffer ,
 3131                                                                   ULONG Length ,
 3132                                                                   PLARGE_INTEGER StartingOffset ,
 3133                                                                   PIO_STATUS_BLOCK IoStatusBlock ) ;
 3134#line 14825
 3135 __attribute__((__dllimport__)) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode ,
 3136                                                                   PDEVICE_OBJECT DeviceObject ,
 3137                                                                   PVOID InputBuffer ,
 3138                                                                   ULONG InputBufferLength ,
 3139                                                                   PVOID OutputBuffer ,
 3140                                                                   ULONG OutputBufferLength ,
 3141                                                                   BOOLEAN InternalDeviceIoControl ,
 3142                                                                   PKEVENT Event ,
 3143                                                                   PIO_STATUS_BLOCK IoStatusBlock ) ;
 3144#line 14875
 3145 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject ,
 3146                                                                                        PIRP Irp ) ;
 3147#line 14903
 3148 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp ,
 3149                                                                                         CCHAR PriorityBoost ) ;
 3150#line 14942
 3151 __attribute__((__dllimport__)) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject ,
 3152                                                        ULONG DeviceExtensionSize ,
 3153                                                        PUNICODE_STRING DeviceName ,
 3154                                                        ULONG DeviceType , ULONG DeviceCharacteristics ,
 3155                                                        BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) ;
 3156#line 14993
 3157 __attribute__((__dllimport__)) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName ,
 3158                                                              PUNICODE_STRING DeviceName ) ;
 3159#line 15057
 3160 __attribute__((__dllimport__)) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ;
 3161#line 15063
 3162 __attribute__((__dllimport__)) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ;
 3163#line 15069
 3164 __attribute__((__dllimport__)) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ;
 3165#line 15092
 3166 __attribute__((__dllimport__)) void IoFreeIrp(PIRP Irp ) ;
 3167#line 15098
 3168 __attribute__((__dllimport__)) void IoFreeMdl(PMDL Mdl ) ;
 3169#line 15110
 3170 __attribute__((__dllimport__)) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) ;
 3171#line 15234
 3172extern  __attribute__((__dllimport__)) void IoGetStackLimits(PULONG_PTR LowLimit ,
 3173                                                             PULONG_PTR HighLimit ) ;
 3174#line 15246 "C:/NTDDK/inc/ddk/ntddk.h"
 3175__inline ULONG_PTR IoGetRemainingStackSize(void) 
 3176{ ULONG_PTR Top ;
 3177  ULONG_PTR Bottom ;
 3178  ULONG_PTR *__cil_tmp3 ;
 3179  ULONG_PTR __cil_tmp4 ;
 3180  unsigned long __cil_tmp5 ;
 3181
 3182  {
 3183  {
 3184#line 15255
 3185  IoGetStackLimits(& Bottom, & Top);
 3186  }
 3187  {
 3188#line 15256
 3189  __cil_tmp3 = & Bottom;
 3190#line 15256
 3191  __cil_tmp4 = *__cil_tmp3;
 3192#line 15256
 3193  __cil_tmp5 = (unsigned long )(& Top);
 3194#line 15256
 3195  return (__cil_tmp5 - __cil_tmp4);
 3196  }
 3197}
 3198}
 3199#line 15426
 3200 __attribute__((__dllimport__)) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType ,
 3201                                                                  PULONG BusNumber ,
 3202                                                                  PCONFIGURATION_TYPE ControllerType ,
 3203                                                                  PULONG ControllerNumber ,
 3204                                                                  PCONFIGURATION_TYPE PeripheralType ,
 3205                                                                  PULONG PeripheralNumber ,
 3206                                                                  NTSTATUS (*CalloutRoutine)(PVOID Context ,
 3207                                                                                             PUNICODE_STRING PathName ,
 3208                                                                                             INTERFACE_TYPE BusType ,
 3209                                                                                             ULONG BusNumber ,
 3210                                                                                             PKEY_VALUE_FULL_INFORMATION *BusInformation ,
 3211                                                                                             CONFIGURATION_TYPE ControllerType ,
 3212                                                                                             ULONG ControllerNumber ,
 3213                                                                                             PKEY_VALUE_FULL_INFORMATION *ControllerInformation ,
 3214                                                                                             CONFIGURATION_TYPE PeripheralType ,
 3215                                                                                             ULONG PeripheralNumber ,
 3216                                                                                             PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ,
 3217                                                                  PVOID Context ) ;
 3218#line 15492
 3219 __attribute__((__dllimport__)) void IoReleaseCancelSpinLock(KIRQL Irql ) ;
 3220#line 15641
 3221 __attribute__((__dllimport__)) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ;
 3222#line 16436
 3223 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject ,
 3224                                                                                                   GUID const   *InterfaceClassGuid ,
 3225                                                                                                   PUNICODE_STRING ReferenceString ,
 3226                                                                                                   PUNICODE_STRING SymbolicLinkName ) ;
 3227#line 16456
 3228 __attribute__((__dllimport__)) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName ,
 3229                                                                   BOOLEAN Enable ) ;
 3230#line 17779
 3231#pragma warning(disable:4200)
 3232#line 17785
 3233#pragma warning(default:4200)
 3234#line 18271
 3235 __attribute__((__dllimport__)) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject ,
 3236                                                      PIRP Irp ) ;
 3237#line 18278
 3238 __attribute__((__dllimport__)) void PoStartNextPowerIrp(PIRP Irp ) ;
 3239#line 18326
 3240 __attribute__((__dllimport__)) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle ,
 3241                                                                   ACCESS_MASK DesiredAccess ,
 3242                                                                   POBJECT_TYPE ObjectType ,
 3243                                                                   KPROCESSOR_MODE AccessMode ,
 3244                                                                   PVOID *Object ,
 3245                                                                   POBJECT_HANDLE_INFORMATION HandleInformation ) ;
 3246#line 18359
 3247 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) ;
 3248#line 19155
 3249 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) ;
 3250#line 25 "C:/NTDDK/inc/pshpack1.h"
 3251#pragma warning(disable:4103)
 3252#line 28 "C:/NTDDK/inc/poppack.h"
 3253#pragma warning(disable:4103)
 3254#line 25 "C:/NTDDK/inc/pshpack1.h"
 3255#pragma warning(disable:4103)
 3256#line 28 "C:/NTDDK/inc/poppack.h"
 3257#pragma warning(disable:4103)
 3258#line 25 "C:/NTDDK/inc/pshpack1.h"
 3259#pragma warning(disable:4103)
 3260#line 28 "C:/NTDDK/inc/poppack.h"
 3261#pragma warning(disable:4103)
 3262#line 25 "C:/NTDDK/inc/pshpack1.h"
 3263#pragma warning(disable:4103)
 3264#line 28 "C:/NTDDK/inc/poppack.h"
 3265#pragma warning(disable:4103)
 3266#line 25 "C:/NTDDK/inc/pshpack1.h"
 3267#pragma warning(disable:4103)
 3268#line 28 "C:/NTDDK/inc/poppack.h"
 3269#pragma warning(disable:4103)
 3270#line 212 "C:/NTDDK/inc/mountmgr.h"
 3271 __attribute__((__selectany__)) struct _GUID  const  MOUNTDEV_MOUNTED_DEVICE_GUID  =    {1408590605UL,
 3272    (unsigned short)46783, (unsigned short)4560, {(unsigned char)148, (unsigned char)242,
 3273                                                  (unsigned char)0, (unsigned char)160,
 3274                                                  (unsigned char)201, (unsigned char)30,
 3275                                                  (unsigned char)251, (unsigned char)139}};
 3276#line 265 "./flo_data.h"
 3277DRIVE_MEDIA_LIMITS _DriveMediaLimits[5]  = {      {(DRIVE_MEDIA_TYPE )4, (DRIVE_MEDIA_TYPE )0}, 
 3278        {(DRIVE_MEDIA_TYPE )11, (DRIVE_MEDIA_TYPE )6}, 
 3279        {(DRIVE_MEDIA_TYPE )5, (DRIVE_MEDIA_TYPE )5}, 
 3280        {(DRIVE_MEDIA_TYPE )13, (DRIVE_MEDIA_TYPE )12}, 
 3281        {(DRIVE_MEDIA_TYPE )16, (DRIVE_MEDIA_TYPE )14}};
 3282#line 282 "./flo_data.h"
 3283DRIVE_MEDIA_LIMITS_NEC98 _DriveMediaLimits_NEC98[6]  = {      {(DRIVE_MEDIA_TYPE_NEC98 )4, (DRIVE_MEDIA_TYPE_NEC98 )0}, 
 3284        {(DRIVE_MEDIA_TYPE_NEC98 )13, (DRIVE_MEDIA_TYPE_NEC98 )5}, 
 3285        {(DRIVE_MEDIA_TYPE_NEC98 )11, (DRIVE_MEDIA_TYPE_NEC98 )5}, 
 3286        {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14}, 
 3287        {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14}, 
 3288        {(DRIVE_MEDIA_TYPE_NEC98 )20, (DRIVE_MEDIA_TYPE_NEC98 )19}};
 3289#line 292 "./flo_data.h"
 3290PDRIVE_MEDIA_LIMITS DriveMediaLimits  ;
 3291#line 334 "./flo_data.h"
 3292DRIVE_MEDIA_CONSTANTS _DriveMediaConstants[17]  = 
 3293#line 334
 3294  {      {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3295      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3296      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3297      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3298      (unsigned char)254, (unsigned char)0}, 
 3299        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3300      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3301      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3302      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3303      (unsigned char)252, (unsigned char)0}, 
 3304        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3305      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3306      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3307      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3308      (unsigned char)255, (unsigned char)0}, 
 3309        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
 3310      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3311      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3312      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3313      (unsigned char)255, (unsigned char)0}, 
 3314        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3315      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3316      (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000,
 3317      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3318      (unsigned char)253, (unsigned char)0}, 
 3319        {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3320      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3321      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3322      (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3323      (unsigned char)249, (unsigned char)2}, 
 3324        {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3325      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3326      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3327      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255,
 3328      (unsigned char)254, (unsigned char)0}, 
 3329        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3330      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3331      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3332      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255,
 3333      (unsigned char)252, (unsigned char)0}, 
 3334        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3335      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3336      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3337      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
 3338      (unsigned char)255, (unsigned char)0}, 
 3339        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
 3340      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3341      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3342      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
 3343      (unsigned char)255, (unsigned char)0}, 
 3344        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3345      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3346      (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000,
 3347      (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
 3348      (unsigned char)253, (unsigned char)0}, 
 3349        {(MEDIA_TYPE )1, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3350      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3351      (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000,
 3352      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3353      (unsigned char)249, (unsigned char)0}, 
 3354        {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3355      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3356      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3357      (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3358      (unsigned char)249, (unsigned char)2}, 
 3359        {(MEDIA_TYPE )2, (unsigned char)175, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3360      (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101,
 3361      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3362      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3363      (unsigned char)240, (unsigned char)3}, 
 3364        {(MEDIA_TYPE )5, (unsigned char)225, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3365      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3366      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3367      (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3368      (unsigned char)249, (unsigned char)2}, 
 3369        {(MEDIA_TYPE )2, (unsigned char)209, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3370      (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101,
 3371      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3372      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3373      (unsigned char)240, (unsigned char)3}, 
 3374        {(MEDIA_TYPE )3, (unsigned char)161, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3375      (unsigned short)512, (unsigned char)36, (unsigned char)56, (unsigned char)83,
 3376      (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
 3377      (unsigned char)79, (unsigned char)0, (unsigned char)3, (unsigned char)2, (unsigned char)255,
 3378      (unsigned char)240, (unsigned char)6}};
 3379#line 358 "./flo_data.h"
 3380DRIVE_MEDIA_CONSTANTS _DriveMediaConstants_NEC98[21]  = 
 3381#line 358
 3382  {      {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3383      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3384      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3385      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3386      (unsigned char)254, (unsigned char)0}, 
 3387        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3388      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3389      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3390      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3391      (unsigned char)252, (unsigned char)0}, 
 3392        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3393      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3394      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3395      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3396      (unsigned char)255, (unsigned char)0}, 
 3397        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
 3398      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3399      (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3400      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3401      (unsigned char)255, (unsigned char)0}, 
 3402        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
 3403      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3404      (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000,
 3405      (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3406      (unsigned char)253, (unsigned char)0}, 
 3407        {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3408      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3409      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3410      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3411      (unsigned char)254, (unsigned char)0}, 
 3412        {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3413      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3414      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3415      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255,
 3416      (unsigned char)252, (unsigned char)0}, 
 3417        {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3418      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3419      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3420      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3421      (unsigned char)255, (unsigned char)0}, 
 3422        {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)3,
 3423      (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
 3424      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3425      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3426      (unsigned char)255, (unsigned char)0}, 
 3427        {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3428      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3429      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3430      (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
 3431      (unsigned char)253, (unsigned char)0}, 
 3432        {(MEDIA_TYPE )15, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3433      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3434      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3435      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3436      (unsigned char)251, (unsigned char)0}, 
 3437        {(MEDIA_TYPE )16, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3438      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3439      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3440      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3441      (unsigned char)249, (unsigned char)2}, 
 3442        {(MEDIA_TYPE )1, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2,
 3443      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3444      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3445      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3446      (unsigned char)249, (unsigned char)0}, 
 3447        {(MEDIA_TYPE )19, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3,
 3448      (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
 3449      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3450      (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3451      (unsigned char)254, (unsigned char)0}, 
 3452        {(MEDIA_TYPE )14, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3453      (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
 3454      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3455      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3456      (unsigned char)251, (unsigned char)0}, 
 3457        {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
 3458      (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
 3459      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3460      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3461      (unsigned char)249, (unsigned char)2}, 
 3462        {(MEDIA_TYPE )17, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2,
 3463      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3464      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3465      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3466      (unsigned char)249, (unsigned char)0}, 
 3467        {(MEDIA_TYPE )18, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3,
 3468      (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
 3469      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3470      (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3471      (unsigned char)254, (unsigned char)0}, 
 3472        {(MEDIA_TYPE )2, (unsigned char)223, (unsigned char)36, (unsigned char)37, (unsigned char)2,
 3473      (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)108,
 3474      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3475      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3476      (unsigned char)240, (unsigned char)3}, 
 3477        {(MEDIA_TYPE )1, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)2,
 3478      (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
 3479      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3480      (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3481      (unsigned char)249, (unsigned char)0}, 
 3482        {(MEDIA_TYPE )19, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)3,
 3483      (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
 3484      (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
 3485      (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
 3486      (unsigned char)254, (unsigned char)0}};
 3487#line 399 "./flo_data.h"
 3488PDRIVE_MEDIA_CONSTANTS DriveMediaConstants  ;
 3489#line 595 "./flo_data.h"
 3490SENSE_DEVISE_STATUS_PTOS Result_Status3_PTOS[4]  ;
 3491#line 603
 3492NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) ;
 3493#line 609
 3494void FloppyUnload(PDRIVER_OBJECT DriverObject ) ;
 3495#line 614
 3496NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType ,
 3497                          ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation ,
 3498                          CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber ,
 3499                          PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType ,
 3500                          ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ;
 3501#line 629
 3502NTSTATUS FlInitializeControllerHardware(PDISKETTE_EXTENSION DisketteExtension ) ;
 3503#line 634
 3504NTSTATUS FloppyCreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3505#line 640
 3506NTSTATUS FloppyDeviceControl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3507#line 646
 3508NTSTATUS FloppyReadWrite(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3509#line 652
 3510NTSTATUS FlRecalibrateDrive(PDISKETTE_EXTENSION DisketteExtension ) ;
 3511#line 657
 3512NTSTATUS FlDatarateSpecifyConfigure(PDISKETTE_EXTENSION DisketteExtension ) ;
 3513#line 662
 3514NTSTATUS FlStartDrive(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN WriteOperation ,
 3515                      BOOLEAN SetUpMedia , BOOLEAN IgnoreChange ) ;
 3516#line 671
 3517void FlFinishOperation(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ;
 3518#line 677
 3519NTSTATUS FlDetermineMediaType(PDISKETTE_EXTENSION DisketteExtension ) ;
 3520#line 682
 3521void FloppyThread(PVOID Context ) ;
 3522#line 687
 3523NTSTATUS FlReadWrite(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN DriveStarted ) ;
 3524#line 694
 3525NTSTATUS FlFormat(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ;
 3526#line 700
 3527NTSTATUS FlIssueCommand(PDISKETTE_EXTENSION DisketteExtension , PUCHAR FifoInBuffer ,
 3528                        PUCHAR FifoOutBuffer , PMDL IoMdl , ULONG IoOffset , ULONG TransferBytes ) ;
 3529#line 710
 3530BOOLEAN FlCheckFormatParameters(PDISKETTE_EXTENSION DisketteExtension , PFORMAT_PARAMETERS FormatParameters ) ;
 3531#line 724
 3532NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ;
 3533#line 730
 3534NTSTATUS FlInterpretError(UCHAR StatusRegister1 , UCHAR StatusRegister2 ) ;
 3535#line 736
 3536void FlAllocateIoBuffer(PDISKETTE_EXTENSION DisketteExtension , ULONG BufferSize ) ;
 3537#line 742
 3538void FlFreeIoBuffer(PDISKETTE_EXTENSION DisketteExtension ) ;
 3539#line 747
 3540void FlConsolidateMediaTypeWithBootSector(PDISKETTE_EXTENSION DisketteExtension ,
 3541                                          PBOOT_SECTOR_INFO BootSector ) ;
 3542#line 753
 3543void FlCheckBootSector(PDISKETTE_EXTENSION DisketteExtension ) ;
 3544#line 758
 3545NTSTATUS FlReadWriteTrack(PDISKETTE_EXTENSION DisketteExtension , PMDL IoMdl , ULONG IoOffset ,
 3546                          BOOLEAN WriteOperation , UCHAR Cylinder , UCHAR Head , UCHAR Sector ,
 3547                          UCHAR NumberOfSectors , BOOLEAN NeedSeek ) ;
 3548#line 771
 3549NTSTATUS FlFdcDeviceIo(PDEVICE_OBJECT DeviceObject , ULONG Ioctl , PVOID Data ) ;
 3550#line 778
 3551NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject ) ;
 3552#line 784
 3553NTSTATUS FloppyPnp(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3554#line 790
 3555NTSTATUS FloppyPower(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3556#line 796
 3557NTSTATUS FloppyPnpComplete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
 3558#line 803
 3559NTSTATUS FloppyQueueRequest(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ;
 3560#line 809
 3561NTSTATUS FloppyStartDevice(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3562#line 815
 3563void FloppyProcessQueuedRequests(PDISKETTE_EXTENSION DisketteExtension ) ;
 3564#line 820
 3565void FloppyCancelQueuedRequest(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
 3566#line 826
 3567NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo ) ;
 3568#line 832
 3569NTSTATUS FlHdbit(PDISKETTE_EXTENSION DisketteExtension ) ;
 3570#line 47 "floppy.c"
 3571#pragma alloc_text(INIT,DriverEntry)
 3572#line 49
 3573#pragma alloc_text(PAGE,FloppyAddDevice)
 3574#line 50
 3575#pragma alloc_text(PAGE,FloppyPnp)
 3576#line 51
 3577#pragma alloc_text(PAGE,FloppyPower)
 3578#line 52
 3579#pragma alloc_text(PAGE,FlConfigCallBack)
 3580#line 53
 3581#pragma alloc_text(PAGE,FlInitializeControllerHardware)
 3582#line 54
 3583#pragma alloc_text(PAGE,FlInterpretError)
 3584#line 55
 3585#pragma alloc_text(PAGE,FlDatarateSpecifyConfigure)
 3586#line 56
 3587#pragma alloc_text(PAGE,FlRecalibrateDrive)
 3588#line 57
 3589#pragma alloc_text(PAGE,FlDetermineMediaType)
 3590#line 58
 3591#pragma alloc_text(PAGE,FlCheckBootSector)
 3592#line 59
 3593#pragma alloc_text(PAGE,FlConsolidateMediaTypeWithBootSector)
 3594#line 60
 3595#pragma alloc_text(PAGE,FlIssueCommand)
 3596#line 61
 3597#pragma alloc_text(PAGE,FlReadWriteTrack)
 3598#line 62
 3599#pragma alloc_text(PAGE,FlReadWrite)
 3600#line 63
 3601#pragma alloc_text(PAGE,FlFormat)
 3602#line 64
 3603#pragma alloc_text(PAGE,FlFinishOperation)
 3604#line 65
 3605#pragma alloc_text(PAGE,FlStartDrive)
 3606#line 66
 3607#pragma alloc_text(PAGE,FloppyThread)
 3608#line 67
 3609#pragma alloc_text(PAGE,FlAllocateIoBuffer)
 3610#line 68
 3611#pragma alloc_text(PAGE,FlFreeIoBuffer)
 3612#line 69
 3613#pragma alloc_text(PAGE,FloppyCreateClose)
 3614#line 70
 3615#pragma alloc_text(PAGE,FloppyDeviceControl)
 3616#line 71
 3617#pragma alloc_text(PAGE,FloppyReadWrite)
 3618#line 72
 3619#pragma alloc_text(PAGE,FlCheckFormatParameters)
 3620#line 73
 3621#pragma alloc_text(PAGE,FlFdcDeviceIo)
 3622#line 74
 3623#pragma alloc_text(PAGE,FlHdbit)
 3624#line 101 "floppy.c"
 3625NTSTATUS myStatus  ;
 3626#line 103 "floppy.c"
 3627int s  ;
 3628#line 105 "floppy.c"
 3629int pended  ;
 3630#line 106 "floppy.c"
 3631NTSTATUS (*compFptr)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context )  ;
 3632#line 107 "floppy.c"
 3633int compRegistered  ;
 3634#line 108 "floppy.c"
 3635int lowerDriverReturn  ;
 3636#line 109 "floppy.c"
 3637int setEventCalled  ;
 3638#line 110 "floppy.c"
 3639int customIrp  ;
 3640#line 135 "floppy.c"
 3641ULONG PagingReferenceCount  =    0UL;
 3642#line 136 "floppy.c"
 3643PFAST_MUTEX PagingMutex  =    (struct _FAST_MUTEX *)((void *)0);
 3644#line 139 "floppy.c"
 3645NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) 
 3646{ NTSTATUS ntStatus ;
 3647  PVOID tmp ;
 3648  unsigned int __cil_tmp5 ;
 3649  unsigned int __cil_tmp6 ;
 3650  unsigned int __cil_tmp7 ;
 3651  unsigned int __cil_tmp8 ;
 3652  unsigned int __cil_tmp9 ;
 3653  unsigned int __cil_tmp10 ;
 3654  unsigned int __cil_tmp11 ;
 3655  unsigned int __cil_tmp12 ;
 3656  unsigned int __cil_tmp13 ;
 3657  unsigned int __cil_tmp14 ;
 3658  unsigned int __cil_tmp15 ;
 3659  unsigned int __cil_tmp16 ;
 3660  unsigned int __cil_tmp17 ;
 3661  unsigned int __cil_tmp18 ;
 3662  unsigned int __cil_tmp19 ;
 3663  unsigned int __cil_tmp20 ;
 3664  unsigned int __cil_tmp21 ;
 3665  unsigned int __cil_tmp22 ;
 3666  unsigned int __cil_tmp23 ;
 3667  unsigned int __cil_tmp24 ;
 3668  unsigned int __cil_tmp25 ;
 3669  unsigned int __cil_tmp26 ;
 3670  unsigned int __cil_tmp27 ;
 3671  unsigned int __cil_tmp28 ;
 3672  unsigned int __cil_tmp29 ;
 3673  unsigned int __cil_tmp30 ;
 3674  unsigned int __cil_tmp31 ;
 3675  unsigned int __cil_tmp32 ;
 3676  unsigned int __cil_tmp33 ;
 3677  unsigned int __cil_tmp34 ;
 3678  unsigned int __cil_tmp35 ;
 3679  unsigned int __cil_tmp36 ;
 3680  PDRIVER_EXTENSION __cil_tmp37 ;
 3681  unsigned int __cil_tmp38 ;
 3682  unsigned int __cil_tmp39 ;
 3683  enum _POOL_TYPE __cil_tmp40 ;
 3684  unsigned long __cil_tmp41 ;
 3685  void *__cil_tmp42 ;
 3686  unsigned int __cil_tmp43 ;
 3687  unsigned int __cil_tmp44 ;
 3688  unsigned int __cil_tmp45 ;
 3689  unsigned int __cil_tmp46 ;
 3690  unsigned int __cil_tmp47 ;
 3691  unsigned int __cil_tmp48 ;
 3692  KEVENT *__cil_tmp49 ;
 3693  enum _EVENT_TYPE __cil_tmp50 ;
 3694  void *__cil_tmp51 ;
 3695  KUSER_SHARED_DATA *__cil_tmp52 ;
 3696  unsigned int __cil_tmp53 ;
 3697  unsigned int __cil_tmp54 ;
 3698  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp55 ;
 3699  int __cil_tmp56 ;
 3700  unsigned int __cil_tmp57 ;
 3701  unsigned int __cil_tmp58 ;
 3702  DRIVE_MEDIA_LIMITS_NEC98 *__cil_tmp59 ;
 3703  unsigned int __cil_tmp60 ;
 3704  unsigned int __cil_tmp61 ;
 3705  KUSER_SHARED_DATA *__cil_tmp62 ;
 3706  unsigned int __cil_tmp63 ;
 3707  unsigned int __cil_tmp64 ;
 3708  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp65 ;
 3709  int __cil_tmp66 ;
 3710  unsigned int __cil_tmp67 ;
 3711  unsigned int __cil_tmp68 ;
 3712  unsigned int __cil_tmp69 ;
 3713  unsigned int __cil_tmp70 ;
 3714  PDRIVER_DISPATCH *mem_71 ;
 3715  PDRIVER_DISPATCH *mem_72 ;
 3716  PDRIVER_DISPATCH *mem_73 ;
 3717  PDRIVER_DISPATCH *mem_74 ;
 3718  PDRIVER_DISPATCH *mem_75 ;
 3719  PDRIVER_DISPATCH *mem_76 ;
 3720  PDRIVER_DISPATCH *mem_77 ;
 3721  void (**mem_78)(struct _DRIVER_OBJECT *DriverObject ) ;
 3722  PDRIVER_EXTENSION *mem_79 ;
 3723  NTSTATUS (**mem_80)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ;
 3724  LONG *mem_81 ;
 3725  ULONG *mem_82 ;
 3726  ALTERNATIVE_ARCHITECTURE_TYPE *mem_83 ;
 3727  ALTERNATIVE_ARCHITECTURE_TYPE *mem_84 ;
 3728
 3729  {
 3730#line 170
 3731  ntStatus = 0L;
 3732  {
 3733#line 242
 3734  while (1) {
 3735    while_0_continue: /* CIL Label */ ;
 3736    goto while_0_break;
 3737  }
 3738  while_0_break: /* CIL Label */ ;
 3739  }
 3740  {
 3741#line 247
 3742  __cil_tmp5 = 0 * 4U;
 3743#line 247
 3744  __cil_tmp6 = 56 + __cil_tmp5;
 3745#line 247
 3746  __cil_tmp7 = (unsigned int )DriverObject;
 3747#line 247
 3748  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
 3749#line 247
 3750  mem_71 = (PDRIVER_DISPATCH *)__cil_tmp8;
 3751#line 247
 3752  *mem_71 = & FloppyCreateClose;
 3753#line 248
 3754  __cil_tmp9 = 2 * 4U;
 3755#line 248
 3756  __cil_tmp10 = 56 + __cil_tmp9;
 3757#line 248
 3758  __cil_tmp11 = (unsigned int )DriverObject;
 3759#line 248
 3760  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
 3761#line 248
 3762  mem_72 = (PDRIVER_DISPATCH *)__cil_tmp12;
 3763#line 248
 3764  *mem_72 = & FloppyCreateClose;
 3765#line 249
 3766  __cil_tmp13 = 3 * 4U;
 3767#line 249
 3768  __cil_tmp14 = 56 + __cil_tmp13;
 3769#line 249
 3770  __cil_tmp15 = (unsigned int )DriverObject;
 3771#line 249
 3772  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
 3773#line 249
 3774  mem_73 = (PDRIVER_DISPATCH *)__cil_tmp16;
 3775#line 249
 3776  *mem_73 = & FloppyReadWrite;
 3777#line 250
 3778  __cil_tmp17 = 4 * 4U;
 3779#line 250
 3780  __cil_tmp18 = 56 + __cil_tmp17;
 3781#line 250
 3782  __cil_tmp19 = (unsigned int )DriverObject;
 3783#line 250
 3784  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
 3785#line 250
 3786  mem_74 = (PDRIVER_DISPATCH *)__cil_tmp20;
 3787#line 250
 3788  *mem_74 = & FloppyReadWrite;
 3789#line 251
 3790  __cil_tmp21 = 14 * 4U;
 3791#line 251
 3792  __cil_tmp22 = 56 + __cil_tmp21;
 3793#line 251
 3794  __cil_tmp23 = (unsigned int )DriverObject;
 3795#line 251
 3796  __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
 3797#line 251
 3798  mem_75 = (PDRIVER_DISPATCH *)__cil_tmp24;
 3799#line 251
 3800  *mem_75 = & FloppyDeviceControl;
 3801#line 252
 3802  __cil_tmp25 = 27 * 4U;
 3803#line 252
 3804  __cil_tmp26 = 56 + __cil_tmp25;
 3805#line 252
 3806  __cil_tmp27 = (unsigned int )DriverObject;
 3807#line 252
 3808  __cil_tmp28 = __cil_tmp27 + __cil_tmp26;
 3809#line 252
 3810  mem_76 = (PDRIVER_DISPATCH *)__cil_tmp28;
 3811#line 252
 3812  *mem_76 = & FloppyPnp;
 3813#line 253
 3814  __cil_tmp29 = 22 * 4U;
 3815#line 253
 3816  __cil_tmp30 = 56 + __cil_tmp29;
 3817#line 253
 3818  __cil_tmp31 = (unsigned int )DriverObject;
 3819#line 253
 3820  __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
 3821#line 253
 3822  mem_77 = (PDRIVER_DISPATCH *)__cil_tmp32;
 3823#line 253
 3824  *mem_77 = & FloppyPower;
 3825#line 255
 3826  __cil_tmp33 = (unsigned int )DriverObject;
 3827#line 255
 3828  __cil_tmp34 = __cil_tmp33 + 52;
 3829#line 255
 3830  mem_78 = (void (**)(struct _DRIVER_OBJECT *DriverObject ))__cil_tmp34;
 3831#line 255
 3832  *mem_78 = & FloppyUnload;
 3833#line 257
 3834  __cil_tmp35 = (unsigned int )DriverObject;
 3835#line 257
 3836  __cil_tmp36 = __cil_tmp35 + 24;
 3837#line 257
 3838  mem_79 = (PDRIVER_EXTENSION *)__cil_tmp36;
 3839#line 257
 3840  __cil_tmp37 = *mem_79;
 3841#line 257
 3842  __cil_tmp38 = (unsigned int )__cil_tmp37;
 3843#line 257
 3844  __cil_tmp39 = __cil_tmp38 + 4;
 3845#line 257
 3846  mem_80 = (NTSTATUS (**)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ))__cil_tmp39;
 3847#line 257
 3848  *mem_80 = & FloppyAddDevice;
 3849#line 262
 3850  __cil_tmp40 = (enum _POOL_TYPE )0;
 3851#line 262
 3852  __cil_tmp41 = (unsigned long )32U;
 3853#line 262
 3854  tmp = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp41, 1886350406UL);
 3855#line 262
 3856  PagingMutex = (struct _FAST_MUTEX *)tmp;
 3857  }
 3858  {
 3859#line 264
 3860  __cil_tmp42 = (void *)0;
 3861#line 264
 3862  __cil_tmp43 = (unsigned int )__cil_tmp42;
 3863#line 264
 3864  __cil_tmp44 = (unsigned int )PagingMutex;
 3865#line 264
 3866  if (__cil_tmp44 == __cil_tmp43) {
 3867#line 266
 3868    return (-1073741670L);
 3869  } else {
 3870
 3871  }
 3872  }
 3873  {
 3874#line 269
 3875  mem_81 = (LONG *)PagingMutex;
 3876#line 269
 3877  *mem_81 = 1L;
 3878#line 269
 3879  __cil_tmp45 = (unsigned int )PagingMutex;
 3880#line 269
 3881  __cil_tmp46 = __cil_tmp45 + 8;
 3882#line 269
 3883  mem_82 = (ULONG *)__cil_tmp46;
 3884#line 269
 3885  *mem_82 = 0UL;
 3886#line 269
 3887  __cil_tmp47 = (unsigned int )PagingMutex;
 3888#line 269
 3889  __cil_tmp48 = __cil_tmp47 + 12;
 3890#line 269
 3891  __cil_tmp49 = (KEVENT *)__cil_tmp48;
 3892#line 269
 3893  __cil_tmp50 = (enum _EVENT_TYPE )1;
 3894#line 269
 3895  KeInitializeEvent(__cil_tmp49, __cil_tmp50, (unsigned char)0);
 3896#line 274
 3897  __cil_tmp51 = (void *)(& DriverEntry);
 3898#line 274
 3899  MmPageEntireDriver(__cil_tmp51);
 3900  }
 3901  {
 3902#line 276
 3903  __cil_tmp52 = (KUSER_SHARED_DATA * const  )4292804608U;
 3904#line 276
 3905  __cil_tmp53 = (unsigned int )__cil_tmp52;
 3906#line 276
 3907  __cil_tmp54 = __cil_tmp53 + 732;
 3908#line 276
 3909  mem_83 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp54;
 3910#line 276
 3911  __cil_tmp55 = *mem_83;
 3912#line 276
 3913  __cil_tmp56 = (int )__cil_tmp55;
 3914#line 276
 3915  if (__cil_tmp56 == 1) {
 3916#line 276
 3917    __cil_tmp57 = 0 * 64U;
 3918#line 276
 3919    __cil_tmp58 = (unsigned int )(_DriveMediaLimits_NEC98) + __cil_tmp57;
 3920#line 276
 3921    __cil_tmp59 = (DRIVE_MEDIA_LIMITS_NEC98 *)__cil_tmp58;
 3922#line 276
 3923    DriveMediaLimits = (struct _DRIVE_MEDIA_LIMITS *)__cil_tmp59;
 3924  } else {
 3925#line 276
 3926    __cil_tmp60 = 0 * 64U;
 3927#line 276
 3928    __cil_tmp61 = (unsigned int )(_DriveMediaLimits) + __cil_tmp60;
 3929#line 276
 3930    DriveMediaLimits = (DRIVE_MEDIA_LIMITS *)__cil_tmp61;
 3931  }
 3932  }
 3933  {
 3934#line 279
 3935  __cil_tmp62 = (KUSER_SHARED_DATA * const  )4292804608U;
 3936#line 279
 3937  __cil_tmp63 = (unsigned int )__cil_tmp62;
 3938#line 279
 3939  __cil_tmp64 = __cil_tmp63 + 732;
 3940#line 279
 3941  mem_84 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp64;
 3942#line 279
 3943  __cil_tmp65 = *mem_84;
 3944#line 279
 3945  __cil_tmp66 = (int )__cil_tmp65;
 3946#line 279
 3947  if (__cil_tmp66 == 1) {
 3948#line 279
 3949    __cil_tmp67 = 0 * 56U;
 3950#line 279
 3951    __cil_tmp68 = (unsigned int )(_DriveMediaConstants_NEC98) + __cil_tmp67;
 3952#line 279
 3953    DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp68;
 3954  } else {
 3955#line 279
 3956    __cil_tmp69 = 0 * 56U;
 3957#line 279
 3958    __cil_tmp70 = (unsigned int )(_DriveMediaConstants) + __cil_tmp69;
 3959#line 279
 3960    DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp70;
 3961  }
 3962  }
 3963#line 282
 3964  return (ntStatus);
 3965}
 3966}
 3967#line 285 "floppy.c"
 3968void FloppyUnload(PDRIVER_OBJECT DriverObject ) 
 3969{ void *__cil_tmp2 ;
 3970
 3971  {
 3972  {
 3973#line 308
 3974  while (1) {
 3975    while_1_continue: /* CIL Label */ ;
 3976    goto while_1_break;
 3977  }
 3978  while_1_break: /* CIL Label */ ;
 3979  }
 3980  {
 3981#line 318
 3982  __cil_tmp2 = (void *)PagingMutex;
 3983#line 318
 3984  ExFreePool(__cil_tmp2);
 3985  }
 3986#line 322
 3987  return;
 3988}
 3989}
 3990#line 323 "floppy.c"
 3991NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject ) 
 3992{ NTSTATUS ntStatus ;
 3993  PDEVICE_OBJECT deviceObject ;
 3994  PDISKETTE_EXTENSION disketteExtension ;
 3995  FDC_INFO fdcInfo ;
 3996  UCHAR arcNameBuffer[256] ;
 3997  STRING arcNameString ;
 3998  WCHAR deviceNameBuffer[20] ;
 3999  UNICODE_STRING deviceName ;
 4000  USHORT i ;
 4001  USHORT tmp ;
 4002  PVOID tmp___0 ;
 4003  PCONFIGURATION_INFORMATION tmp___1 ;
 4004  unsigned int __cil_tmp15 ;
 4005  unsigned int __cil_tmp16 ;
 4006  int __cil_tmp17 ;
 4007  int __cil_tmp18 ;
 4008  int __cil_tmp19 ;
 4009  int __cil_tmp20 ;
 4010  unsigned long __cil_tmp21 ;
 4011  void *__cil_tmp22 ;
 4012  int __cil_tmp23 ;
 4013  int __cil_tmp24 ;
 4014  unsigned int __cil_tmp25 ;
 4015  unsigned int __cil_tmp26 ;
 4016  WCHAR *__cil_tmp27 ;
 4017  wchar_t const   *__cil_tmp28 ;
 4018  unsigned int __cil_tmp29 ;
 4019  unsigned int __cil_tmp30 ;
 4020  WCHAR *__cil_tmp31 ;
 4021  WCHAR const   *__cil_tmp32 ;
 4022  unsigned long __cil_tmp33 ;
 4023  int __cil_tmp34 ;
 4024  PDEVICE_OBJECT *__cil_tmp35 ;
 4025  PDEVICE_OBJECT __cil_tmp36 ;
 4026  unsigned int __cil_tmp37 ;
 4027  unsigned int __cil_tmp38 ;
 4028  PVOID __cil_tmp39 ;
 4029  enum _POOL_TYPE __cil_tmp40 ;
 4030  UNICODE_STRING *__cil_tmp41 ;
 4031  USHORT __cil_tmp42 ;
 4032  unsigned long __cil_tmp43 ;
 4033  unsigned int __cil_tmp44 ;
 4034  unsigned int __cil_tmp45 ;
 4035  unsigned int __cil_tmp46 ;
 4036  void *__cil_tmp47 ;
 4037  unsigned int __cil_tmp48 ;
 4038  unsigned int __cil_tmp49 ;
 4039  unsigned int __cil_tmp50 ;
 4040  unsigned int __cil_tmp51 ;
 4041  PWSTR __cil_tmp52 ;
 4042  unsigned int __cil_tmp53 ;
 4043  PDEVICE_OBJECT *__cil_tmp54 ;
 4044  PDEVICE_OBJECT __cil_tmp55 ;
 4045  unsigned int __cil_tmp56 ;
 4046  unsigned int __cil_tmp57 ;
 4047  unsigned int __cil_tmp58 ;
 4048  unsigned int __cil_tmp59 ;
 4049  unsigned int __cil_tmp60 ;
 4050  UNICODE_STRING *__cil_tmp61 ;
 4051  unsigned int __cil_tmp62 ;
 4052  unsigned int __cil_tmp63 ;
 4053  UNICODE_STRING *__cil_tmp64 ;
 4054  unsigned int __cil_tmp65 ;
 4055  unsigned int __cil_tmp66 ;
 4056  unsigned int __cil_tmp67 ;
 4057  unsigned int __cil_tmp68 ;
 4058  ULONG __cil_tmp69 ;
 4059  unsigned int __cil_tmp70 ;
 4060  unsigned int __cil_tmp71 ;
 4061  UCHAR *__cil_tmp72 ;
 4062  char *__cil_tmp73 ;
 4063  unsigned int __cil_tmp74 ;
 4064  ULONG __cil_tmp75 ;
 4065  unsigned int __cil_tmp76 ;
 4066  ULONG __cil_tmp77 ;
 4067  unsigned int __cil_tmp78 ;
 4068  ULONG __cil_tmp79 ;
 4069  unsigned int __cil_tmp80 ;
 4070  unsigned int __cil_tmp81 ;
 4071  UCHAR *__cil_tmp82 ;
 4072  char const   *__cil_tmp83 ;
 4073  unsigned int __cil_tmp84 ;
 4074  unsigned int __cil_tmp85 ;
 4075  UNICODE_STRING *__cil_tmp86 ;
 4076  unsigned int __cil_tmp87 ;
 4077  unsigned int __cil_tmp88 ;
 4078  UNICODE_STRING *__cil_tmp89 ;
 4079  PDEVICE_OBJECT *__cil_tmp90 ;
 4080  PDEVICE_OBJECT __cil_tmp91 ;
 4081  unsigned int __cil_tmp92 ;
 4082  unsigned int __cil_tmp93 ;
 4083  PDEVICE_OBJECT *__cil_tmp94 ;
 4084  PDEVICE_OBJECT __cil_tmp95 ;
 4085  unsigned int __cil_tmp96 ;
 4086  unsigned int __cil_tmp97 ;
 4087  ULONG __cil_tmp98 ;
 4088  PDEVICE_OBJECT *__cil_tmp99 ;
 4089  PDEVICE_OBJECT __cil_tmp100 ;
 4090  unsigned int __cil_tmp101 ;
 4091  unsigned int __cil_tmp102 ;
 4092  ULONG __cil_tmp103 ;
 4093  PDEVICE_OBJECT *__cil_tmp104 ;
 4094  PDEVICE_OBJECT __cil_tmp105 ;
 4095  unsigned int __cil_tmp106 ;
 4096  unsigned int __cil_tmp107 ;
 4097  PDEVICE_OBJECT *__cil_tmp108 ;
 4098  PDEVICE_OBJECT __cil_tmp109 ;
 4099  unsigned int __cil_tmp110 ;
 4100  unsigned int __cil_tmp111 ;
 4101  PDEVICE_OBJECT *__cil_tmp112 ;
 4102  PDEVICE_OBJECT __cil_tmp113 ;
 4103  unsigned int __cil_tmp114 ;
 4104  unsigned int __cil_tmp115 ;
 4105  ULONG __cil_tmp116 ;
 4106  unsigned int __cil_tmp117 ;
 4107  unsigned int __cil_tmp118 ;
 4108  unsigned int __cil_tmp119 ;
 4109  unsigned int __cil_tmp120 ;
 4110  unsigned int __cil_tmp121 ;
 4111  unsigned int __cil_tmp122 ;
 4112  PDEVICE_OBJECT *__cil_tmp123 ;
 4113  PDEVICE_OBJECT __cil_tmp124 ;
 4114  unsigned int __cil_tmp125 ;
 4115  unsigned int __cil_tmp126 ;
 4116  KSEMAPHORE *__cil_tmp127 ;
 4117  unsigned int __cil_tmp128 ;
 4118  unsigned int __cil_tmp129 ;
 4119  unsigned int __cil_tmp130 ;
 4120  unsigned int __cil_tmp131 ;
 4121  unsigned int __cil_tmp132 ;
 4122  unsigned int __cil_tmp133 ;
 4123  unsigned int __cil_tmp134 ;
 4124  unsigned int __cil_tmp135 ;
 4125  KEVENT *__cil_tmp136 ;
 4126  enum _EVENT_TYPE __cil_tmp137 ;
 4127  unsigned int __cil_tmp138 ;
 4128  unsigned int __cil_tmp139 ;
 4129  KSPIN_LOCK *__cil_tmp140 ;
 4130  unsigned int __cil_tmp141 ;
 4131  unsigned int __cil_tmp142 ;
 4132  unsigned int __cil_tmp143 ;
 4133  unsigned int __cil_tmp144 ;
 4134  unsigned int __cil_tmp145 ;
 4135  unsigned int __cil_tmp146 ;
 4136  unsigned int __cil_tmp147 ;
 4137  unsigned int __cil_tmp148 ;
 4138  KEVENT *__cil_tmp149 ;
 4139  enum _EVENT_TYPE __cil_tmp150 ;
 4140  unsigned int __cil_tmp151 ;
 4141  unsigned int __cil_tmp152 ;
 4142  unsigned int __cil_tmp153 ;
 4143  unsigned int __cil_tmp154 ;
 4144  unsigned int __cil_tmp155 ;
 4145  unsigned int __cil_tmp156 ;
 4146  unsigned int __cil_tmp157 ;
 4147  unsigned int __cil_tmp158 ;
 4148  KEVENT *__cil_tmp159 ;
 4149  enum _EVENT_TYPE __cil_tmp160 ;
 4150  unsigned int __cil_tmp161 ;
 4151  unsigned int __cil_tmp162 ;
 4152  unsigned int __cil_tmp163 ;
 4153  unsigned int __cil_tmp164 ;
 4154  unsigned int __cil_tmp165 ;
 4155  unsigned int __cil_tmp166 ;
 4156  unsigned int __cil_tmp167 ;
 4157  unsigned int __cil_tmp168 ;
 4158  unsigned int __cil_tmp169 ;
 4159  unsigned int __cil_tmp170 ;
 4160  unsigned int __cil_tmp171 ;
 4161  unsigned int __cil_tmp172 ;
 4162  unsigned int __cil_tmp173 ;
 4163  unsigned int __cil_tmp174 ;
 4164  unsigned int __cil_tmp175 ;
 4165  unsigned int __cil_tmp176 ;
 4166  unsigned int __cil_tmp177 ;
 4167  unsigned int __cil_tmp178 ;
 4168  unsigned int __cil_tmp179 ;
 4169  unsigned int __cil_tmp180 ;
 4170  unsigned int __cil_tmp181 ;
 4171  unsigned int __cil_tmp182 ;
 4172  unsigned int __cil_tmp183 ;
 4173  unsigned int __cil_tmp184 ;
 4174  unsigned int __cil_tmp185 ;
 4175  unsigned int __cil_tmp186 ;
 4176  unsigned int __cil_tmp187 ;
 4177  unsigned int __cil_tmp188 ;
 4178  unsigned int __cil_tmp189 ;
 4179  unsigned int __cil_tmp190 ;
 4180  KSPIN_LOCK *__cil_tmp191 ;
 4181  KSPIN_LOCK *__cil_tmp192 ;
 4182  unsigned int __cil_tmp193 ;
 4183  unsigned int __cil_tmp194 ;
 4184  unsigned int __cil_tmp195 ;
 4185  unsigned int __cil_tmp196 ;
 4186  unsigned int __cil_tmp197 ;
 4187  unsigned int __cil_tmp198 ;
 4188  PDEVICE_OBJECT *__cil_tmp199 ;
 4189  unsigned int __cil_tmp200 ;
 4190  unsigned int __cil_tmp201 ;
 4191  unsigned int __cil_tmp202 ;
 4192  unsigned int __cil_tmp203 ;
 4193  KUSER_SHARED_DATA *__cil_tmp204 ;
 4194  unsigned int __cil_tmp205 ;
 4195  unsigned int __cil_tmp206 ;
 4196  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp207 ;
 4197  int __cil_tmp208 ;
 4198  unsigned int __cil_tmp209 ;
 4199  unsigned int __cil_tmp210 ;
 4200  unsigned int __cil_tmp211 ;
 4201  unsigned int __cil_tmp212 ;
 4202  ULONG *mem_213 ;
 4203  ULONG *mem_214 ;
 4204  PVOID *mem_215 ;
 4205  USHORT *mem_216 ;
 4206  PWSTR *mem_217 ;
 4207  PWSTR *mem_218 ;
 4208  USHORT *mem_219 ;
 4209  USHORT *mem_220 ;
 4210  USHORT *mem_221 ;
 4211  ULONG *mem_222 ;
 4212  ULONG *mem_223 ;
 4213  ULONG *mem_224 ;
 4214  ULONG *mem_225 ;
 4215  ULONG *mem_226 ;
 4216  ULONG *mem_227 ;
 4217  ULONG *mem_228 ;
 4218  ULONG *mem_229 ;
 4219  ULONG *mem_230 ;
 4220  ULONG *mem_231 ;
 4221  ULONG *mem_232 ;
 4222  PDRIVER_OBJECT *mem_233 ;
 4223  PDEVICE_OBJECT *mem_234 ;
 4224  PDEVICE_OBJECT *mem_235 ;
 4225  LONG *mem_236 ;
 4226  ULONG *mem_237 ;
 4227  LONG *mem_238 ;
 4228  ULONG *mem_239 ;
 4229  LONG *mem_240 ;
 4230  ULONG *mem_241 ;
 4231  struct _LIST_ENTRY **mem_242 ;
 4232  struct _LIST_ENTRY **mem_243 ;
 4233  struct _LIST_ENTRY **mem_244 ;
 4234  LONG *mem_245 ;
 4235  BOOLEAN *mem_246 ;
 4236  BOOLEAN *mem_247 ;
 4237  BOOLEAN *mem_248 ;
 4238  struct _LIST_ENTRY **mem_249 ;
 4239  struct _LIST_ENTRY **mem_250 ;
 4240  struct _LIST_ENTRY **mem_251 ;
 4241  BOOLEAN *mem_252 ;
 4242  BOOLEAN *mem_253 ;
 4243  PDEVICE_OBJECT *mem_254 ;
 4244  BOOLEAN *mem_255 ;
 4245  MEDIA_TYPE *mem_256 ;
 4246  ALTERNATIVE_ARCHITECTURE_TYPE *mem_257 ;
 4247  BOOLEAN *mem_258 ;
 4248  BOOLEAN *mem_259 ;
 4249
 4250  {
 4251#line 363
 4252  ntStatus = 0L;
 4253  {
 4254#line 365
 4255  while (1) {
 4256    while_2_continue: /* CIL Label */ ;
 4257    goto while_2_break;
 4258  }
 4259  while_2_break: /* CIL Label */ ;
 4260  }
 4261  {
 4262#line 370
 4263  __cil_tmp15 = (unsigned int )(& fdcInfo) + 128;
 4264#line 370
 4265  mem_213 = (ULONG *)__cil_tmp15;
 4266#line 370
 4267  *mem_213 = 0UL;
 4268#line 371
 4269  __cil_tmp16 = (unsigned int )(& fdcInfo) + 132;
 4270#line 371
 4271  mem_214 = (ULONG *)__cil_tmp16;
 4272#line 371
 4273  *mem_214 = 0UL;
 4274#line 373
 4275  __cil_tmp17 = 770 << 2;
 4276#line 373
 4277  __cil_tmp18 = 7 << 16;
 4278#line 373
 4279  __cil_tmp19 = __cil_tmp18 | __cil_tmp17;
 4280#line 373
 4281  __cil_tmp20 = __cil_tmp19 | 3;
 4282#line 373
 4283  __cil_tmp21 = (unsigned long )__cil_tmp20;
 4284#line 373
 4285  __cil_tmp22 = (void *)(& fdcInfo);
 4286#line 373
 4287  ntStatus = FlFdcDeviceIo(PhysicalDeviceObject, __cil_tmp21, __cil_tmp22);
 4288  }
 4289#line 377
 4290  if (ntStatus >= 0L) {
 4291#line 379
 4292    i = (unsigned short)0;
 4293    {
 4294#line 385
 4295    while (1) {
 4296      while_3_continue: /* CIL Label */ ;
 4297      {
 4298#line 387
 4299      tmp = i;
 4300#line 387
 4301      __cil_tmp23 = (int )i;
 4302#line 387
 4303      __cil_tmp24 = __cil_tmp23 + 1;
 4304#line 387
 4305      i = (unsigned short )__cil_tmp24;
 4306#line 387
 4307      __cil_tmp25 = 0 * 2U;
 4308#line 387
 4309      __cil_tmp26 = (unsigned int )(deviceNameBuffer) + __cil_tmp25;
 4310#line 387
 4311      __cil_tmp27 = (WCHAR *)__cil_tmp26;
 4312#line 387
 4313      __cil_tmp28 = (wchar_t const   *)"\\\000D\000e\000v\000i\000c\000e\000\\\000F\000l\000o\000p\000p\000y\000%\000d\000";
 4314#line 387
 4315      swprintf(__cil_tmp27, __cil_tmp28, tmp);
 4316#line 388
 4317      __cil_tmp29 = 0 * 2U;
 4318#line 388
 4319      __cil_tmp30 = (unsigned int )(deviceNameBuffer) + __cil_tmp29;
 4320#line 388
 4321      __cil_tmp31 = (WCHAR *)__cil_tmp30;
 4322#line 388
 4323      __cil_tmp32 = (WCHAR const   *)__cil_tmp31;
 4324#line 388
 4325      RtlInitUnicodeString(& deviceName, __cil_tmp32);
 4326#line 389
 4327      __cil_tmp33 = (unsigned long )460U;
 4328#line 389
 4329      ntStatus = IoCreateDevice(DriverObject, __cil_tmp33, & deviceName, 7UL, 261UL,
 4330                                (unsigned char)0, & deviceObject);
 4331      }
 4332      {
 4333#line 385
 4334      __cil_tmp34 = ntStatus == -1073741771L;
 4335#line 385
 4336      if (! __cil_tmp34) {
 4337        goto while_3_break;
 4338      } else {
 4339
 4340      }
 4341      }
 4342    }
 4343    while_3_break: /* CIL Label */ ;
 4344    }
 4345#line 401
 4346    if (ntStatus >= 0L) {
 4347#line 403
 4348      __cil_tmp35 = & deviceObject;
 4349#line 403
 4350      __cil_tmp36 = *__cil_tmp35;
 4351#line 403
 4352      __cil_tmp37 = (unsigned int )__cil_tmp36;
 4353#line 403
 4354      __cil_tmp38 = __cil_tmp37 + 40;
 4355#line 403
 4356      mem_215 = (PVOID *)__cil_tmp38;
 4357#line 403
 4358      __cil_tmp39 = *mem_215;
 4359#line 403
 4360      disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp39;
 4361      {
 4362#line 409
 4363      while (1) {
 4364        while_4_continue: /* CIL Label */ ;
 4365        goto while_4_break;
 4366      }
 4367      while_4_break: /* CIL Label */ ;
 4368      }
 4369      {
 4370#line 411
 4371      __cil_tmp40 = (enum _POOL_TYPE )1;
 4372#line 411
 4373      __cil_tmp41 = & deviceName;
 4374#line 411
 4375      mem_216 = (USHORT *)__cil_tmp41;
 4376#line 411
 4377      __cil_tmp42 = *mem_216;
 4378#line 411
 4379      __cil_tmp43 = (unsigned long )__cil_tmp42;
 4380#line 411
 4381      tmp___0 = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp43, 1886350406UL);
 4382#line 411
 4383      __cil_tmp44 = 368 + 4;
 4384#line 411
 4385      __cil_tmp45 = (unsigned int )disketteExtension;
 4386#line 411
 4387      __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
 4388#line 411
 4389      mem_217 = (PWSTR *)__cil_tmp46;
 4390#line 411
 4391      *mem_217 = (WCHAR *)tmp___0;
 4392      }
 4393      {
 4394#line 412
 4395      __cil_tmp47 = (void *)0;
 4396#line 412
 4397      __cil_tmp48 = (unsigned int )__cil_tmp47;
 4398#line 412
 4399      __cil_tmp49 = 368 + 4;
 4400#line 412
 4401      __cil_tmp50 = (unsigned int )disketteExtension;
 4402#line 412
 4403      __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
 4404#line 412
 4405      mem_218 = (PWSTR *)__cil_tmp51;
 4406#line 412
 4407      __cil_tmp52 = *mem_218;
 4408#line 412
 4409      __cil_tmp53 = (unsigned int )__cil_tmp52;
 4410#line 412
 4411      if (__cil_tmp53 == __cil_tmp48) {
 4412        {
 4413#line 414
 4414        __cil_tmp54 = & deviceObject;
 4415#line 414
 4416        __cil_tmp55 = *__cil_tmp54;
 4417#line 414
 4418        IoDeleteDevice(__cil_tmp55);
 4419        }
 4420#line 415
 4421        return (-1073741670L);
 4422      } else {
 4423
 4424      }
 4425      }
 4426      {
 4427#line 417
 4428      __cil_tmp56 = (unsigned int )disketteExtension;
 4429#line 417
 4430      __cil_tmp57 = __cil_tmp56 + 368;
 4431#line 417
 4432      mem_219 = (USHORT *)__cil_tmp57;
 4433#line 417
 4434      *mem_219 = (unsigned short)0;
 4435#line 418
 4436      __cil_tmp58 = 368 + 2;
 4437#line 418
 4438      __cil_tmp59 = (unsigned int )disketteExtension;
 4439#line 418
 4440      __cil_tmp60 = __cil_tmp59 + __cil_tmp58;
 4441#line 418
 4442      __cil_tmp61 = & deviceName;
 4443#line 418
 4444      mem_220 = (USHORT *)__cil_tmp60;
 4445#line 418
 4446      mem_221 = (USHORT *)__cil_tmp61;
 4447#line 418
 4448      *mem_220 = *mem_221;
 4449#line 419
 4450      __cil_tmp62 = (unsigned int )disketteExtension;
 4451#line 419
 4452      __cil_tmp63 = __cil_tmp62 + 368;
 4453#line 419
 4454      __cil_tmp64 = (UNICODE_STRING *)__cil_tmp63;
 4455#line 419
 4456      RtlCopyUnicodeString(__cil_tmp64, & deviceName);
 4457#line 421
 4458      tmp___1 = IoGetConfigurationInformation();
 4459#line 421
 4460      __cil_tmp65 = (unsigned int )tmp___1;
 4461#line 421
 4462      __cil_tmp66 = __cil_tmp65 + 4;
 4463#line 421
 4464      __cil_tmp67 = (unsigned int )tmp___1;
 4465#line 421
 4466      __cil_tmp68 = __cil_tmp67 + 4;
 4467#line 421
 4468      mem_222 = (ULONG *)__cil_tmp68;
 4469#line 421
 4470      __cil_tmp69 = *mem_222;
 4471#line 421
 4472      mem_223 = (ULONG *)__cil_tmp66;
 4473#line 421
 4474      *mem_223 = __cil_tmp69 + 1UL;
 4475#line 429
 4476      __cil_tmp70 = 0 * 1U;
 4477#line 429
 4478      __cil_tmp71 = (unsigned int )(arcNameBuffer) + __cil_tmp70;
 4479#line 429
 4480      __cil_tmp72 = (UCHAR *)__cil_tmp71;
 4481#line 429
 4482      __cil_tmp73 = (char *)__cil_tmp72;
 4483#line 429
 4484      __cil_tmp74 = (unsigned int )(& fdcInfo) + 40;
 4485#line 429
 4486      mem_224 = (ULONG *)__cil_tmp74;
 4487#line 429
 4488      __cil_tmp75 = *mem_224;
 4489#line 429
 4490      __cil_tmp76 = (unsigned int )(& fdcInfo) + 44;
 4491#line 429
 4492      mem_225 = (ULONG *)__cil_tmp76;
 4493#line 429
 4494      __cil_tmp77 = *mem_225;
 4495#line 429
 4496      __cil_tmp78 = (unsigned int )(& fdcInfo) + 48;
 4497#line 429
 4498      mem_226 = (ULONG *)__cil_tmp78;
 4499#line 429
 4500      __cil_tmp79 = *mem_226;
 4501#line 429
 4502      sprintf(__cil_tmp73, "%s(%d)disk(%d)fdisk(%d)", "\\ArcName\\multi", __cil_tmp75,
 4503              __cil_tmp77, __cil_tmp79);
 4504#line 436
 4505      __cil_tmp80 = 0 * 1U;
 4506#line 436
 4507      __cil_tmp81 = (unsigned int )(arcNameBuffer) + __cil_tmp80;
 4508#line 436
 4509      __cil_tmp82 = (UCHAR *)__cil_tmp81;
 4510#line 436
 4511      __cil_tmp83 = (char const   *)__cil_tmp82;
 4512#line 436
 4513      RtlInitString(& arcNameString, __cil_tmp83);
 4514#line 438
 4515      __cil_tmp84 = (unsigned int )disketteExtension;
 4516#line 438
 4517      __cil_tmp85 = __cil_tmp84 + 384;
 4518#line 438
 4519      __cil_tmp86 = (UNICODE_STRING *)__cil_tmp85;
 4520#line 438
 4521      ntStatus = RtlAnsiStringToUnicodeString(__cil_tmp86, & arcNameString, (unsigned char)1);
 4522      }
 4523#line 442
 4524      if (ntStatus >= 0L) {
 4525        {
 4526#line 444
 4527        __cil_tmp87 = (unsigned int )disketteExtension;
 4528#line 444
 4529        __cil_tmp88 = __cil_tmp87 + 384;
 4530#line 444
 4531        __cil_tmp89 = (UNICODE_STRING *)__cil_tmp88;
 4532#line 444
 4533        IoCreateSymbolicLink(__cil_tmp89, & deviceName);
 4534        }
 4535      } else {
 4536
 4537      }
 4538#line 447
 4539      __cil_tmp90 = & deviceObject;
 4540#line 447
 4541      __cil_tmp91 = *__cil_tmp90;
 4542#line 447
 4543      __cil_tmp92 = (unsigned int )__cil_tmp91;
 4544#line 447
 4545      __cil_tmp93 = __cil_tmp92 + 28;
 4546#line 447
 4547      __cil_tmp94 = & deviceObject;
 4548#line 447
 4549      __cil_tmp95 = *__cil_tmp94;
 4550#line 447
 4551      __cil_tmp96 = (unsigned int )__cil_tmp95;
 4552#line 447
 4553      __cil_tmp97 = __cil_tmp96 + 28;
 4554#line 447
 4555      mem_227 = (ULONG *)__cil_tmp97;
 4556#line 447
 4557      __cil_tmp98 = *mem_227;
 4558#line 447
 4559      mem_228 = (ULONG *)__cil_tmp93;
 4560#line 447
 4561      *mem_228 = __cil_tmp98 | 8208UL;
 4562      {
 4563#line 449
 4564      __cil_tmp99 = & deviceObject;
 4565#line 449
 4566      __cil_tmp100 = *__cil_tmp99;
 4567#line 449
 4568      __cil_tmp101 = (unsigned int )__cil_tmp100;
 4569#line 449
 4570      __cil_tmp102 = __cil_tmp101 + 92;
 4571#line 449
 4572      mem_229 = (ULONG *)__cil_tmp102;
 4573#line 449
 4574      __cil_tmp103 = *mem_229;
 4575#line 449
 4576      if (__cil_tmp103 < 1UL) {
 4577#line 451
 4578        __cil_tmp104 = & deviceObject;
 4579#line 451
 4580        __cil_tmp105 = *__cil_tmp104;
 4581#line 451
 4582        __cil_tmp106 = (unsigned int )__cil_tmp105;
 4583#line 451
 4584        __cil_tmp107 = __cil_tmp106 + 92;
 4585#line 451
 4586        mem_230 = (ULONG *)__cil_tmp107;
 4587#line 451
 4588        *mem_230 = 1UL;
 4589      } else {
 4590
 4591      }
 4592      }
 4593#line 454
 4594      __cil_tmp108 = & deviceObject;
 4595#line 454
 4596      __cil_tmp109 = *__cil_tmp108;
 4597#line 454
 4598      __cil_tmp110 = (unsigned int )__cil_tmp109;
 4599#line 454
 4600      __cil_tmp111 = __cil_tmp110 + 28;
 4601#line 454
 4602      __cil_tmp112 = & deviceObject;
 4603#line 454
 4604      __cil_tmp113 = *__cil_tmp112;
 4605#line 454
 4606      __cil_tmp114 = (unsigned int )__cil_tmp113;
 4607#line 454
 4608      __cil_tmp115 = __cil_tmp114 + 28;
 4609#line 454
 4610      mem_231 = (ULONG *)__cil_tmp115;
 4611#line 454
 4612      __cil_tmp116 = *mem_231;
 4613#line 454
 4614      mem_232 = (ULONG *)__cil_tmp111;
 4615#line 454
 4616      *mem_232 = __cil_tmp116 & 4294967167UL;
 4617#line 456
 4618      __cil_tmp117 = (unsigned int )disketteExtension;
 4619#line 456
 4620      __cil_tmp118 = __cil_tmp117 + 136;
 4621#line 456
 4622      mem_233 = (PDRIVER_OBJECT *)__cil_tmp118;
 4623#line 456
 4624      *mem_233 = DriverObject;
 4625#line 459
 4626      __cil_tmp119 = (unsigned int )disketteExtension;
 4627#line 459
 4628      __cil_tmp120 = __cil_tmp119 + 4;
 4629#line 459
 4630      mem_234 = (PDEVICE_OBJECT *)__cil_tmp120;
 4631#line 459
 4632      *mem_234 = PhysicalDeviceObject;
 4633      {
 4634#line 464
 4635      while (1) {
 4636        while_5_continue: /* CIL Label */ ;
 4637        goto while_5_break;
 4638      }
 4639      while_5_break: /* CIL Label */ ;
 4640      }
 4641      {
 4642#line 466
 4643      __cil_tmp121 = (unsigned int )disketteExtension;
 4644#line 466
 4645      __cil_tmp122 = __cil_tmp121 + 8;
 4646#line 466
 4647      __cil_tmp123 = & deviceObject;
 4648#line 466
 4649      __cil_tmp124 = *__cil_tmp123;
 4650#line 466
 4651      mem_235 = (PDEVICE_OBJECT *)__cil_tmp122;
 4652#line 466
 4653      *mem_235 = IoAttachDeviceToDeviceStack(__cil_tmp124, PhysicalDeviceObject);
 4654      }
 4655      {
 4656#line 472
 4657      while (1) {
 4658        while_6_continue: /* CIL Label */ ;
 4659        goto while_6_break;
 4660      }
 4661      while_6_break: /* CIL Label */ ;
 4662      }
 4663      {
 4664#line 474
 4665      __cil_tmp125 = (unsigned int )disketteExtension;
 4666#line 474
 4667      __cil_tmp126 = __cil_tmp125 + 32;
 4668#line 474
 4669      __cil_tmp127 = (KSEMAPHORE *)__cil_tmp126;
 4670#line 474
 4671      KeInitializeSemaphore(__cil_tmp127, 0L, 2147483647L);
 4672#line 478
 4673      __cil_tmp128 = (unsigned int )disketteExtension;
 4674#line 478
 4675      __cil_tmp129 = __cil_tmp128 + 396;
 4676#line 478
 4677      mem_236 = (LONG *)__cil_tmp129;
 4678#line 478
 4679      *mem_236 = 1L;
 4680#line 478
 4681      __cil_tmp130 = 396 + 8;
 4682#line 478
 4683      __cil_tmp131 = (unsigned int )disketteExtension;
 4684#line 478
 4685      __cil_tmp132 = __cil_tmp131 + __cil_tmp130;
 4686#line 478
 4687      mem_237 = (ULONG *)__cil_tmp132;
 4688#line 478
 4689      *mem_237 = 0UL;
 4690#line 478
 4691      __cil_tmp133 = 396 + 12;
 4692#line 478
 4693      __cil_tmp134 = (unsigned int )disketteExtension;
 4694#line 478
 4695      __cil_tmp135 = __cil_tmp134 + __cil_tmp133;
 4696#line 478
 4697      __cil_tmp136 = (KEVENT *)__cil_tmp135;
 4698#line 478
 4699      __cil_tmp137 = (enum _EVENT_TYPE )1;
 4700#line 478
 4701      KeInitializeEvent(__cil_tmp136, __cil_tmp137, (unsigned char)0);
 4702#line 480
 4703      __cil_tmp138 = (unsigned int )disketteExtension;
 4704#line 480
 4705      __cil_tmp139 = __cil_tmp138 + 52;
 4706#line 480
 4707      __cil_tmp140 = (KSPIN_LOCK *)__cil_tmp139;
 4708#line 480
 4709      KeInitializeSpinLock(__cil_tmp140);
 4710#line 482
 4711      __cil_tmp141 = (unsigned int )disketteExtension;
 4712#line 482
 4713      __cil_tmp142 = __cil_tmp141 + 56;
 4714#line 482
 4715      mem_238 = (LONG *)__cil_tmp142;
 4716#line 482
 4717      *mem_238 = 1L;
 4718#line 482
 4719      __cil_tmp143 = 56 + 8;
 4720#line 482
 4721      __cil_tmp144 = (unsigned int )disketteExtension;
 4722#line 482
 4723      __cil_tmp145 = __cil_tmp144 + __cil_tmp143;
 4724#line 482
 4725      mem_239 = (ULONG *)__cil_tmp145;
 4726#line 482
 4727      *mem_239 = 0UL;
 4728#line 482
 4729      __cil_tmp146 = 56 + 12;
 4730#line 482
 4731      __cil_tmp147 = (unsigned int )disketteExtension;
 4732#line 482
 4733      __cil_tmp148 = __cil_tmp147 + __cil_tmp146;
 4734#line 482
 4735      __cil_tmp149 = (KEVENT *)__cil_tmp148;
 4736#line 482
 4737      __cil_tmp150 = (enum _EVENT_TYPE )1;
 4738#line 482
 4739      KeInitializeEvent(__cil_tmp149, __cil_tmp150, (unsigned char)0);
 4740#line 484
 4741      __cil_tmp151 = (unsigned int )disketteExtension;
 4742#line 484
 4743      __cil_tmp152 = __cil_tmp151 + 428;
 4744#line 484
 4745      mem_240 = (LONG *)__cil_tmp152;
 4746#line 484
 4747      *mem_240 = 1L;
 4748#line 484
 4749      __cil_tmp153 = 428 + 8;
 4750#line 484
 4751      __cil_tmp154 = (unsigned int )disketteExtension;
 4752#line 484
 4753      __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
 4754#line 484
 4755      mem_241 = (ULONG *)__cil_tmp155;
 4756#line 484
 4757      *mem_241 = 0UL;
 4758#line 484
 4759      __cil_tmp156 = 428 + 12;
 4760#line 484
 4761      __cil_tmp157 = (unsigned int )disketteExtension;
 4762#line 484
 4763      __cil_tmp158 = __cil_tmp157 + __cil_tmp156;
 4764#line 484
 4765      __cil_tmp159 = (KEVENT *)__cil_tmp158;
 4766#line 484
 4767      __cil_tmp160 = (enum _EVENT_TYPE )1;
 4768#line 484
 4769      KeInitializeEvent(__cil_tmp159, __cil_tmp160, (unsigned char)0);
 4770#line 486
 4771      __cil_tmp161 = 96 + 4;
 4772#line 486
 4773      __cil_tmp162 = (unsigned int )disketteExtension;
 4774#line 486
 4775      __cil_tmp163 = __cil_tmp162 + __cil_tmp161;
 4776#line 486
 4777      __cil_tmp164 = (unsigned int )disketteExtension;
 4778#line 486
 4779      __cil_tmp165 = __cil_tmp164 + 96;
 4780#line 486
 4781      mem_242 = (struct _LIST_ENTRY **)__cil_tmp163;
 4782#line 486
 4783      *mem_242 = (LIST_ENTRY *)__cil_tmp165;
 4784#line 486
 4785      __cil_tmp166 = (unsigned int )disketteExtension;
 4786#line 486
 4787      __cil_tmp167 = __cil_tmp166 + 96;
 4788#line 486
 4789      __cil_tmp168 = 96 + 4;
 4790#line 486
 4791      __cil_tmp169 = (unsigned int )disketteExtension;
 4792#line 486
 4793      __cil_tmp170 = __cil_tmp169 + __cil_tmp168;
 4794#line 486
 4795      mem_243 = (struct _LIST_ENTRY **)__cil_tmp167;
 4796#line 486
 4797      mem_244 = (struct _LIST_ENTRY **)__cil_tmp170;
 4798#line 486
 4799      *mem_243 = *mem_244;
 4800#line 488
 4801      __cil_tmp171 = (unsigned int )disketteExtension;
 4802#line 488
 4803      __cil_tmp172 = __cil_tmp171 + 88;
 4804#line 488
 4805      mem_245 = (LONG *)__cil_tmp172;
 4806#line 488
 4807      *mem_245 = -1L;
 4808#line 490
 4809      __cil_tmp173 = (unsigned int )disketteExtension;
 4810#line 490
 4811      __cil_tmp174 = __cil_tmp173 + 12;
 4812#line 490
 4813      mem_246 = (BOOLEAN *)__cil_tmp174;
 4814#line 490
 4815      *mem_246 = (unsigned char)0;
 4816#line 491
 4817      __cil_tmp175 = (unsigned int )disketteExtension;
 4818#line 491
 4819      __cil_tmp176 = __cil_tmp175 + 13;
 4820#line 491
 4821      mem_247 = (BOOLEAN *)__cil_tmp176;
 4822#line 491
 4823      *mem_247 = (unsigned char)0;
 4824#line 492
 4825      __cil_tmp177 = (unsigned int )disketteExtension;
 4826#line 492
 4827      __cil_tmp178 = __cil_tmp177 + 14;
 4828#line 492
 4829      mem_248 = (BOOLEAN *)__cil_tmp178;
 4830#line 492
 4831      *mem_248 = (unsigned char)0;
 4832#line 493
 4833      __cil_tmp179 = 16 + 4;
 4834#line 493
 4835      __cil_tmp180 = (unsigned int )disketteExtension;
 4836#line 493
 4837      __cil_tmp181 = __cil_tmp180 + __cil_tmp179;
 4838#line 493
 4839      __cil_tmp182 = (unsigned int )disketteExtension;
 4840#line 493
 4841      __cil_tmp183 = __cil_tmp182 + 16;
 4842#line 493
 4843      mem_249 = (struct _LIST_ENTRY **)__cil_tmp181;
 4844#line 493
 4845      *mem_249 = (LIST_ENTRY *)__cil_tmp183;
 4846#line 493
 4847      __cil_tmp184 = (unsigned int )disketteExtension;
 4848#line 493
 4849      __cil_tmp185 = __cil_tmp184 + 16;
 4850#line 493
 4851      __cil_tmp186 = 16 + 4;
 4852#line 493
 4853      __cil_tmp187 = (unsigned int )disketteExtension;
 4854#line 493
 4855      __cil_tmp188 = __cil_tmp187 + __cil_tmp186;
 4856#line 493
 4857      mem_250 = (struct _LIST_ENTRY **)__cil_tmp185;
 4858#line 493
 4859      mem_251 = (struct _LIST_ENTRY **)__cil_tmp188;
 4860#line 493
 4861      *mem_250 = *mem_251;
 4862#line 494
 4863      __cil_tmp189 = (unsigned int )disketteExtension;
 4864#line 494
 4865      __cil_tmp190 = __cil_tmp189 + 24;
 4866#line 494
 4867      __cil_tmp191 = (KSPIN_LOCK *)__cil_tmp190;
 4868#line 494
 4869      KeInitializeSpinLock(__cil_tmp191);
 4870#line 495
 4871      __cil_tmp192 = (KSPIN_LOCK *)disketteExtension;
 4872#line 495
 4873      KeInitializeSpinLock(__cil_tmp192);
 4874#line 497
 4875      __cil_tmp193 = (unsigned int )disketteExtension;
 4876#line 497
 4877      __cil_tmp194 = __cil_tmp193 + 172;
 4878#line 497
 4879      mem_252 = (BOOLEAN *)__cil_tmp194;
 4880#line 497
 4881      *mem_252 = (unsigned char)0;
 4882#line 498
 4883      __cil_tmp195 = (unsigned int )disketteExtension;
 4884#line 498
 4885      __cil_tmp196 = __cil_tmp195 + 392;
 4886#line 498
 4887      mem_253 = (BOOLEAN *)__cil_tmp196;
 4888#line 498
 4889      *mem_253 = (unsigned char)0;
 4890#line 499
 4891      __cil_tmp197 = (unsigned int )disketteExtension;
 4892#line 499
 4893      __cil_tmp198 = __cil_tmp197 + 28;
 4894#line 499
 4895      __cil_tmp199 = & deviceObject;
 4896#line 499
 4897      mem_254 = (PDEVICE_OBJECT *)__cil_tmp198;
 4898#line 499
 4899      *mem_254 = *__cil_tmp199;
 4900#line 501
 4901      __cil_tmp200 = (unsigned int )disketteExtension;
 4902#line 501
 4903      __cil_tmp201 = __cil_tmp200 + 250;
 4904#line 501
 4905      mem_255 = (BOOLEAN *)__cil_tmp201;
 4906#line 501
 4907      *mem_255 = (unsigned char)0;
 4908#line 503
 4909      __cil_tmp202 = (unsigned int )disketteExtension;
 4910#line 503
 4911      __cil_tmp203 = __cil_tmp202 + 184;
 4912#line 503
 4913      mem_256 = (MEDIA_TYPE *)__cil_tmp203;
 4914#line 503
 4915      *mem_256 = (enum _MEDIA_TYPE )-1;
 4916      }
 4917      {
 4918#line 505
 4919      __cil_tmp204 = (KUSER_SHARED_DATA * const  )4292804608U;
 4920#line 505
 4921      __cil_tmp205 = (unsigned int )__cil_tmp204;
 4922#line 505
 4923      __cil_tmp206 = __cil_tmp205 + 732;
 4924#line 505
 4925      mem_257 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp206;
 4926#line 505
 4927      __cil_tmp207 = *mem_257;
 4928#line 505
 4929      __cil_tmp208 = (int )__cil_tmp207;
 4930#line 505
 4931      if (__cil_tmp208 == 1) {
 4932#line 505
 4933        __cil_tmp209 = (unsigned int )disketteExtension;
 4934#line 505
 4935        __cil_tmp210 = __cil_tmp209 + 365;
 4936#line 505
 4937        mem_258 = (BOOLEAN *)__cil_tmp210;
 4938#line 505
 4939        *mem_258 = (unsigned char)0;
 4940      } else {
 4941#line 505
 4942        __cil_tmp211 = (unsigned int )disketteExtension;
 4943#line 505
 4944        __cil_tmp212 = __cil_tmp211 + 365;
 4945#line 505
 4946        mem_259 = (BOOLEAN *)__cil_tmp212;
 4947#line 505
 4948        *mem_259 = (unsigned char)1;
 4949      }
 4950      }
 4951    } else {
 4952
 4953    }
 4954  } else {
 4955
 4956  }
 4957#line 509
 4958  return (ntStatus);
 4959}
 4960}
 4961#line 512 "floppy.c"
 4962NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType ,
 4963                          ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation ,
 4964                          CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber ,
 4965                          PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType ,
 4966                          ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) 
 4967{ PDISKETTE_EXTENSION disketteExtension ;
 4968  ULONG i ;
 4969  PCM_FULL_RESOURCE_DESCRIPTOR peripheralData ;
 4970  PCM_PARTIAL_RESOURCE_DESCRIPTOR partial ;
 4971  PCM_FLOPPY_DEVICE_DATA fDeviceData ;
 4972  UCHAR driveType ;
 4973  PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ;
 4974  PKEY_VALUE_FULL_INFORMATION *__cil_tmp19 ;
 4975  PKEY_VALUE_FULL_INFORMATION __cil_tmp20 ;
 4976  unsigned int __cil_tmp21 ;
 4977  unsigned int __cil_tmp22 ;
 4978  ULONG __cil_tmp23 ;
 4979  PKEY_VALUE_FULL_INFORMATION *__cil_tmp24 ;
 4980  PKEY_VALUE_FULL_INFORMATION __cil_tmp25 ;
 4981  UCHAR *__cil_tmp26 ;
 4982  UCHAR *__cil_tmp27 ;
 4983  PKEY_VALUE_FULL_INFORMATION *__cil_tmp28 ;
 4984  PKEY_VALUE_FULL_INFORMATION __cil_tmp29 ;
 4985  unsigned int __cil_tmp30 ;
 4986  unsigned int __cil_tmp31 ;
 4987  ULONG __cil_tmp32 ;
 4988  PKEY_VALUE_FULL_INFORMATION *__cil_tmp33 ;
 4989  PKEY_VALUE_FULL_INFORMATION __cil_tmp34 ;
 4990  UCHAR *__cil_tmp35 ;
 4991  UCHAR *__cil_tmp36 ;
 4992  unsigned int __cil_tmp37 ;
 4993  unsigned int __cil_tmp38 ;
 4994  unsigned int __cil_tmp39 ;
 4995  ULONG __cil_tmp40 ;
 4996  unsigned int __cil_tmp41 ;
 4997  unsigned int __cil_tmp42 ;
 4998  unsigned int __cil_tmp43 ;
 4999  unsigned int __cil_tmp44 ;
 5000  unsigned int __cil_tmp45 ;
 5001  UCHAR __cil_tmp46 ;
 5002  int __cil_tmp47 ;
 5003  unsigned int __cil_tmp48 ;
 5004  unsigned int __cil_tmp49 ;
 5005  PCM_PARTIAL_RESOURCE_DESCRIPTOR __cil_tmp50 ;
 5006  unsigned int __cil_tmp51 ;
 5007  unsigned int __cil_tmp52 ;
 5008  ULONG __cil_tmp53 ;
 5009  KUSER_SHARED_DATA *__cil_tmp54 ;
 5010  unsigned int __cil_tmp55 ;
 5011  unsigned int __cil_tmp56 ;
 5012  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp57 ;
 5013  int __cil_tmp58 ;
 5014  unsigned int __cil_tmp59 ;
 5015  unsigned int __cil_tmp60 ;
 5016  int __cil_tmp61 ;
 5017  PDRIVE_MEDIA_LIMITS __cil_tmp62 ;
 5018  DRIVE_MEDIA_TYPE __cil_tmp63 ;
 5019  unsigned int __cil_tmp64 ;
 5020  PDRIVE_MEDIA_CONSTANTS __cil_tmp65 ;
 5021  USHORT __cil_tmp66 ;
 5022  int __cil_tmp67 ;
 5023  unsigned int __cil_tmp68 ;
 5024  unsigned int __cil_tmp69 ;
 5025  unsigned int __cil_tmp70 ;
 5026  unsigned int __cil_tmp71 ;
 5027  unsigned int __cil_tmp72 ;
 5028  unsigned int __cil_tmp73 ;
 5029  unsigned int __cil_tmp74 ;
 5030  unsigned int __cil_tmp75 ;
 5031  unsigned int __cil_tmp76 ;
 5032  unsigned int __cil_tmp77 ;
 5033  unsigned int __cil_tmp78 ;
 5034  unsigned int __cil_tmp79 ;
 5035  unsigned int __cil_tmp80 ;
 5036  unsigned int __cil_tmp81 ;
 5037  unsigned int __cil_tmp82 ;
 5038  unsigned int __cil_tmp83 ;
 5039  unsigned int __cil_tmp84 ;
 5040  unsigned int __cil_tmp85 ;
 5041  UCHAR __cil_tmp86 ;
 5042  int __cil_tmp87 ;
 5043  unsigned int __cil_tmp88 ;
 5044  unsigned int __cil_tmp89 ;
 5045  ULONG __cil_tmp90 ;
 5046  unsigned int __cil_tmp91 ;
 5047  unsigned int __cil_tmp92 ;
 5048  unsigned int __cil_tmp93 ;
 5049  unsigned int __cil_tmp94 ;
 5050  unsigned int __cil_tmp95 ;
 5051  unsigned int __cil_tmp96 ;
 5052  unsigned int __cil_tmp97 ;
 5053  unsigned int __cil_tmp98 ;
 5054  unsigned int __cil_tmp99 ;
 5055  unsigned int __cil_tmp100 ;
 5056  unsigned int __cil_tmp101 ;
 5057  unsigned int __cil_tmp102 ;
 5058  unsigned int __cil_tmp103 ;
 5059  unsigned int __cil_tmp104 ;
 5060  unsigned int __cil_tmp105 ;
 5061  unsigned int __cil_tmp106 ;
 5062  unsigned int __cil_tmp107 ;
 5063  unsigned int __cil_tmp108 ;
 5064  unsigned int __cil_tmp109 ;
 5065  unsigned int __cil_tmp110 ;
 5066  unsigned int __cil_tmp111 ;
 5067  unsigned int __cil_tmp112 ;
 5068  unsigned int __cil_tmp113 ;
 5069  unsigned int __cil_tmp114 ;
 5070  UCHAR __cil_tmp115 ;
 5071  int __cil_tmp116 ;
 5072  int __cil_tmp117 ;
 5073  int __cil_tmp118 ;
 5074  unsigned int __cil_tmp119 ;
 5075  unsigned int __cil_tmp120 ;
 5076  unsigned int __cil_tmp121 ;
 5077  unsigned int __cil_tmp122 ;
 5078  UCHAR __cil_tmp123 ;
 5079  int __cil_tmp124 ;
 5080  int __cil_tmp125 ;
 5081  int __cil_tmp126 ;
 5082  unsigned int __cil_tmp127 ;
 5083  unsigned int __cil_tmp128 ;
 5084  UCHAR __cil_tmp129 ;
 5085  int __cil_tmp130 ;
 5086  unsigned int __cil_tmp131 ;
 5087  unsigned int __cil_tmp132 ;
 5088  unsigned int __cil_tmp133 ;
 5089  unsigned int __cil_tmp134 ;
 5090  unsigned int __cil_tmp135 ;
 5091  unsigned int __cil_tmp136 ;
 5092  unsigned int __cil_tmp137 ;
 5093  unsigned int __cil_tmp138 ;
 5094  ULONG *mem_139 ;
 5095  ULONG *mem_140 ;
 5096  ULONG *mem_141 ;
 5097  UCHAR *mem_142 ;
 5098  ULONG *mem_143 ;
 5099  ALTERNATIVE_ARCHITECTURE_TYPE *mem_144 ;
 5100  UCHAR *mem_145 ;
 5101  DRIVE_MEDIA_TYPE *mem_146 ;
 5102  USHORT *mem_147 ;
 5103  UCHAR *mem_148 ;
 5104  UCHAR *mem_149 ;
 5105  UCHAR *mem_150 ;
 5106  UCHAR *mem_151 ;
 5107  UCHAR *mem_152 ;
 5108  UCHAR *mem_153 ;
 5109  UCHAR *mem_154 ;
 5110  UCHAR *mem_155 ;
 5111  UCHAR *mem_156 ;
 5112  ULONG *mem_157 ;
 5113  UCHAR *mem_158 ;
 5114  UCHAR *mem_159 ;
 5115  UCHAR *mem_160 ;
 5116  UCHAR *mem_161 ;
 5117  UCHAR *mem_162 ;
 5118  UCHAR *mem_163 ;
 5119  UCHAR *mem_164 ;
 5120  UCHAR *mem_165 ;
 5121  UCHAR *mem_166 ;
 5122  UCHAR *mem_167 ;
 5123  UCHAR *mem_168 ;
 5124  USHORT *mem_169 ;
 5125  UCHAR *mem_170 ;
 5126  USHORT *mem_171 ;
 5127  UCHAR *mem_172 ;
 5128  UCHAR *mem_173 ;
 5129  UCHAR *mem_174 ;
 5130  UCHAR *mem_175 ;
 5131  UCHAR *mem_176 ;
 5132
 5133  {
 5134#line 577
 5135  disketteExtension = (DISKETTE_EXTENSION *)Context;
 5136  {
 5137#line 596
 5138  __cil_tmp19 = PeripheralInformation + 1;
 5139#line 596
 5140  __cil_tmp20 = *__cil_tmp19;
 5141#line 596
 5142  __cil_tmp21 = (unsigned int )__cil_tmp20;
 5143#line 596
 5144  __cil_tmp22 = __cil_tmp21 + 12;
 5145#line 596
 5146  mem_139 = (ULONG *)__cil_tmp22;
 5147#line 596
 5148  __cil_tmp23 = *mem_139;
 5149#line 596
 5150  __cil_tmp24 = PeripheralInformation + 1;
 5151#line 596
 5152  __cil_tmp25 = *__cil_tmp24;
 5153#line 596
 5154  __cil_tmp26 = (UCHAR *)__cil_tmp25;
 5155#line 596
 5156  __cil_tmp27 = __cil_tmp26 + __cil_tmp23;
 5157#line 596
 5158  if (! __cil_tmp27) {
 5159#line 600
 5160    return (-1073741811L);
 5161  } else {
 5162
 5163  }
 5164  }
 5165#line 604
 5166  __cil_tmp28 = PeripheralInformation + 1;
 5167#line 604
 5168  __cil_tmp29 = *__cil_tmp28;
 5169#line 604
 5170  __cil_tmp30 = (unsigned int )__cil_tmp29;
 5171#line 604
 5172  __cil_tmp31 = __cil_tmp30 + 8;
 5173#line 604
 5174  mem_140 = (ULONG *)__cil_tmp31;
 5175#line 604
 5176  __cil_tmp32 = *mem_140;
 5177#line 604
 5178  __cil_tmp33 = PeripheralInformation + 1;
 5179#line 604
 5180  __cil_tmp34 = *__cil_tmp33;
 5181#line 604
 5182  __cil_tmp35 = (UCHAR *)__cil_tmp34;
 5183#line 604
 5184  __cil_tmp36 = __cil_tmp35 + __cil_tmp32;
 5185#line 604
 5186  peripheralData = (struct _CM_FULL_RESOURCE_DESCRIPTOR *)__cil_tmp36;
 5187#line 619
 5188  i = 0UL;
 5189  {
 5190#line 619
 5191  while (1) {
 5192    while_7_continue: /* CIL Label */ ;
 5193    {
 5194#line 619
 5195    __cil_tmp37 = 36 + 4;
 5196#line 619
 5197    __cil_tmp38 = (unsigned int )peripheralData;
 5198#line 619
 5199    __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
 5200#line 619
 5201    mem_141 = (ULONG *)__cil_tmp39;
 5202#line 619
 5203    __cil_tmp40 = *mem_141;
 5204#line 619
 5205    if (i < __cil_tmp40) {
 5206
 5207    } else {
 5208      goto while_7_break;
 5209    }
 5210    }
 5211#line 621
 5212    __cil_tmp41 = i * 16U;
 5213#line 621
 5214    __cil_tmp42 = 8 + __cil_tmp41;
 5215#line 621
 5216    __cil_tmp43 = 36 + __cil_tmp42;
 5217#line 621
 5218    __cil_tmp44 = (unsigned int )peripheralData;
 5219#line 621
 5220    __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
 5221#line 621
 5222    partial = (CM_PARTIAL_RESOURCE_DESCRIPTOR *)__cil_tmp45;
 5223    {
 5224#line 624
 5225    mem_142 = (UCHAR *)partial;
 5226#line 624
 5227    __cil_tmp46 = *mem_142;
 5228#line 624
 5229    __cil_tmp47 = (int )__cil_tmp46;
 5230#line 624
 5231    if (__cil_tmp47 == 5) {
 5232#line 633
 5233      __cil_tmp48 = (unsigned int )disketteExtension;
 5234#line 633
 5235      __cil_tmp49 = __cil_tmp48 + 252;
 5236#line 633
 5237      biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp49;
 5238#line 637
 5239      __cil_tmp50 = partial + 1;
 5240#line 637
 5241      fDeviceData = (struct _CM_FLOPPY_DEVICE_DATA *)__cil_tmp50;
 5242      {
 5243#line 643
 5244      __cil_tmp51 = (unsigned int )fDeviceData;
 5245#line 643
 5246      __cil_tmp52 = __cil_tmp51 + 12;
 5247#line 643
 5248      mem_143 = (ULONG *)__cil_tmp52;
 5249#line 643
 5250      __cil_tmp53 = *mem_143;
 5251#line 644
 5252      if ((int )__cil_tmp53 == 360) {
 5253        goto switch_8_360;
 5254      } else {
 5255#line 646
 5256        if ((int )__cil_tmp53 == 1200) {
 5257          goto switch_8_1200;
 5258        } else {
 5259#line 647
 5260          if ((int )__cil_tmp53 == 1185) {
 5261            goto switch_8_1185;
 5262          } else {
 5263#line 648
 5264            if ((int )__cil_tmp53 == 1423) {
 5265              goto switch_8_1423;
 5266            } else {
 5267#line 649
 5268              if ((int )__cil_tmp53 == 1440) {
 5269                goto switch_8_1440;
 5270              } else {
 5271#line 650
 5272                if ((int )__cil_tmp53 == 2880) {
 5273                  goto switch_8_2880;
 5274                } else {
 5275#line 651
 5276                  if ((int )__cil_tmp53 == 1201) {
 5277                    goto switch_8_1201;
 5278                  } else {
 5279                    {
 5280                    goto switch_8_default;
 5281#line 643
 5282                    if (0) {
 5283                      switch_8_360: /* CIL Label */ 
 5284#line 645
 5285                      driveType = (unsigned char)0;
 5286                      goto switch_8_break;
 5287                      switch_8_1200: /* CIL Label */ 
 5288#line 646
 5289                      driveType = (unsigned char)1;
 5290                      goto switch_8_break;
 5291                      switch_8_1185: /* CIL Label */ 
 5292#line 647
 5293                      driveType = (unsigned char)1;
 5294                      goto switch_8_break;
 5295                      switch_8_1423: /* CIL Label */ 
 5296#line 648
 5297                      driveType = (unsigned char)3;
 5298                      goto switch_8_break;
 5299                      switch_8_1440: /* CIL Label */ 
 5300#line 649
 5301                      driveType = (unsigned char)3;
 5302                      goto switch_8_break;
 5303                      switch_8_2880: /* CIL Label */ 
 5304#line 650
 5305                      driveType = (unsigned char)4;
 5306                      goto switch_8_break;
 5307                      switch_8_1201: /* CIL Label */ ;
 5308                      {
 5309#line 651
 5310                      __cil_tmp54 = (KUSER_SHARED_DATA * const  )4292804608U;
 5311#line 651
 5312                      __cil_tmp55 = (unsigned int )__cil_tmp54;
 5313#line 651
 5314                      __cil_tmp56 = __cil_tmp55 + 732;
 5315#line 651
 5316                      mem_144 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp56;
 5317#line 651
 5318                      __cil_tmp57 = *mem_144;
 5319#line 651
 5320                      __cil_tmp58 = (int )__cil_tmp57;
 5321#line 651
 5322                      if (__cil_tmp58 == 1) {
 5323#line 652
 5324                        driveType = (unsigned char)5;
 5325                        goto switch_8_break;
 5326                      } else {
 5327
 5328                      }
 5329                      }
 5330                      switch_8_default: /* CIL Label */ ;
 5331                      {
 5332#line 662
 5333                      while (1) {
 5334                        while_9_continue: /* CIL Label */ ;
 5335                        goto while_9_break;
 5336                      }
 5337                      while_9_break: /* CIL Label */ ;
 5338                      }
 5339#line 664
 5340                      driveType = (unsigned char)1;
 5341                      {
 5342#line 671
 5343                      while (1) {
 5344                        while_10_continue: /* CIL Label */ ;
 5345                        goto while_10_break;
 5346                      }
 5347                      while_10_break: /* CIL Label */ ;
 5348                      }
 5349                      goto switch_8_break;
 5350                    } else {
 5351                      switch_8_break: /* CIL Label */ ;
 5352                    }
 5353                    }
 5354                  }
 5355                }
 5356              }
 5357            }
 5358          }
 5359        }
 5360      }
 5361      }
 5362#line 677
 5363      __cil_tmp59 = (unsigned int )disketteExtension;
 5364#line 677
 5365      __cil_tmp60 = __cil_tmp59 + 174;
 5366#line 677
 5367      mem_145 = (UCHAR *)__cil_tmp60;
 5368#line 677
 5369      *mem_145 = driveType;
 5370#line 684
 5371      __cil_tmp61 = (int )driveType;
 5372#line 684
 5373      __cil_tmp62 = DriveMediaLimits + __cil_tmp61;
 5374#line 684
 5375      mem_146 = (DRIVE_MEDIA_TYPE *)__cil_tmp62;
 5376#line 684
 5377      __cil_tmp63 = *mem_146;
 5378#line 684
 5379      __cil_tmp64 = (unsigned int )__cil_tmp63;
 5380#line 684
 5381      __cil_tmp65 = DriveMediaConstants + __cil_tmp64;
 5382#line 684
 5383      *biosDriveMediaConstants = *__cil_tmp65;
 5384      {
 5385#line 693
 5386      mem_147 = (USHORT *)fDeviceData;
 5387#line 693
 5388      __cil_tmp66 = *mem_147;
 5389#line 693
 5390      __cil_tmp67 = (int )__cil_tmp66;
 5391#line 693
 5392      if (__cil_tmp67 >= 2) {
 5393#line 698
 5394        __cil_tmp68 = (unsigned int )biosDriveMediaConstants;
 5395#line 698
 5396        __cil_tmp69 = __cil_tmp68 + 32;
 5397#line 698
 5398        __cil_tmp70 = (unsigned int )fDeviceData;
 5399#line 698
 5400        __cil_tmp71 = __cil_tmp70 + 20;
 5401#line 698
 5402        mem_148 = (UCHAR *)__cil_tmp69;
 5403#line 698
 5404        mem_149 = (UCHAR *)__cil_tmp71;
 5405#line 698
 5406        *mem_148 = *mem_149;
 5407#line 701
 5408        __cil_tmp72 = (unsigned int )biosDriveMediaConstants;
 5409#line 701
 5410        __cil_tmp73 = __cil_tmp72 + 33;
 5411#line 701
 5412        __cil_tmp74 = (unsigned int )fDeviceData;
 5413#line 701
 5414        __cil_tmp75 = __cil_tmp74 + 21;
 5415#line 701
 5416        mem_150 = (UCHAR *)__cil_tmp73;
 5417#line 701
 5418        mem_151 = (UCHAR *)__cil_tmp75;
 5419#line 701
 5420        *mem_150 = *mem_151;
 5421#line 704
 5422        __cil_tmp76 = (unsigned int )biosDriveMediaConstants;
 5423#line 704
 5424        __cil_tmp77 = __cil_tmp76 + 34;
 5425#line 704
 5426        __cil_tmp78 = (unsigned int )fDeviceData;
 5427#line 704
 5428        __cil_tmp79 = __cil_tmp78 + 22;
 5429#line 704
 5430        mem_152 = (UCHAR *)__cil_tmp77;
 5431#line 704
 5432        mem_153 = (UCHAR *)__cil_tmp79;
 5433#line 704
 5434        *mem_152 = *mem_153;
 5435#line 707
 5436        __cil_tmp80 = (unsigned int )biosDriveMediaConstants;
 5437#line 707
 5438        __cil_tmp81 = __cil_tmp80 + 35;
 5439#line 707
 5440        __cil_tmp82 = (unsigned int )fDeviceData;
 5441#line 707
 5442        __cil_tmp83 = __cil_tmp82 + 23;
 5443#line 707
 5444        mem_154 = (UCHAR *)__cil_tmp81;
 5445#line 707
 5446        mem_155 = (UCHAR *)__cil_tmp83;
 5447#line 707
 5448        *mem_154 = *mem_155;
 5449        {
 5450#line 712
 5451        __cil_tmp84 = (unsigned int )fDeviceData;
 5452#line 712
 5453        __cil_tmp85 = __cil_tmp84 + 24;
 5454#line 712
 5455        mem_156 = (UCHAR *)__cil_tmp85;
 5456#line 712
 5457        __cil_tmp86 = *mem_156;
 5458#line 712
 5459        __cil_tmp87 = (int )__cil_tmp86;
 5460#line 712
 5461        if (__cil_tmp87 == 0) {
 5462#line 716
 5463          return (0L);
 5464        } else {
 5465
 5466        }
 5467        }
 5468        {
 5469#line 719
 5470        __cil_tmp88 = (unsigned int )fDeviceData;
 5471#line 719
 5472        __cil_tmp89 = __cil_tmp88 + 12;
 5473#line 719
 5474        mem_157 = (ULONG *)__cil_tmp89;
 5475#line 719
 5476        __cil_tmp90 = *mem_157;
 5477#line 719
 5478        if (__cil_tmp90 == 0UL) {
 5479#line 727
 5480          return (0L);
 5481        } else {
 5482
 5483        }
 5484        }
 5485#line 730
 5486        __cil_tmp91 = (unsigned int )biosDriveMediaConstants;
 5487#line 730
 5488        __cil_tmp92 = __cil_tmp91 + 38;
 5489#line 730
 5490        __cil_tmp93 = (unsigned int )fDeviceData;
 5491#line 730
 5492        __cil_tmp94 = __cil_tmp93 + 24;
 5493#line 730
 5494        mem_158 = (UCHAR *)__cil_tmp92;
 5495#line 730
 5496        mem_159 = (UCHAR *)__cil_tmp94;
 5497#line 730
 5498        *mem_158 = *mem_159;
 5499#line 733
 5500        __cil_tmp95 = (unsigned int )biosDriveMediaConstants;
 5501#line 733
 5502        __cil_tmp96 = __cil_tmp95 + 39;
 5503#line 733
 5504        __cil_tmp97 = (unsigned int )fDeviceData;
 5505#line 733
 5506        __cil_tmp98 = __cil_tmp97 + 25;
 5507#line 733
 5508        mem_160 = (UCHAR *)__cil_tmp96;
 5509#line 733
 5510        mem_161 = (UCHAR *)__cil_tmp98;
 5511#line 733
 5512        *mem_160 = *mem_161;
 5513#line 736
 5514        __cil_tmp99 = (unsigned int )biosDriveMediaConstants;
 5515#line 736
 5516        __cil_tmp100 = __cil_tmp99 + 40;
 5517#line 736
 5518        __cil_tmp101 = (unsigned int )fDeviceData;
 5519#line 736
 5520        __cil_tmp102 = __cil_tmp101 + 27;
 5521#line 736
 5522        mem_162 = (UCHAR *)__cil_tmp100;
 5523#line 736
 5524        mem_163 = (UCHAR *)__cil_tmp102;
 5525#line 736
 5526        *mem_162 = *mem_163;
 5527#line 739
 5528        __cil_tmp103 = (unsigned int )biosDriveMediaConstants;
 5529#line 739
 5530        __cil_tmp104 = __cil_tmp103 + 41;
 5531#line 739
 5532        __cil_tmp105 = (unsigned int )fDeviceData;
 5533#line 739
 5534        __cil_tmp106 = __cil_tmp105 + 28;
 5535#line 739
 5536        mem_164 = (UCHAR *)__cil_tmp104;
 5537#line 739
 5538        mem_165 = (UCHAR *)__cil_tmp106;
 5539#line 739
 5540        *mem_164 = *mem_165;
 5541#line 742
 5542        __cil_tmp107 = (unsigned int )biosDriveMediaConstants;
 5543#line 742
 5544        __cil_tmp108 = __cil_tmp107 + 42;
 5545#line 742
 5546        __cil_tmp109 = (unsigned int )fDeviceData;
 5547#line 742
 5548        __cil_tmp110 = __cil_tmp109 + 29;
 5549#line 742
 5550        mem_166 = (UCHAR *)__cil_tmp108;
 5551#line 742
 5552        mem_167 = (UCHAR *)__cil_tmp110;
 5553#line 742
 5554        *mem_166 = *mem_167;
 5555#line 745
 5556        __cil_tmp111 = (unsigned int )biosDriveMediaConstants;
 5557#line 745
 5558        __cil_tmp112 = __cil_tmp111 + 44;
 5559#line 745
 5560        __cil_tmp113 = (unsigned int )fDeviceData;
 5561#line 745
 5562        __cil_tmp114 = __cil_tmp113 + 30;
 5563#line 745
 5564        mem_168 = (UCHAR *)__cil_tmp114;
 5565#line 745
 5566        __cil_tmp115 = *mem_168;
 5567#line 745
 5568        __cil_tmp116 = (int )__cil_tmp115;
 5569#line 745
 5570        __cil_tmp117 = __cil_tmp116 * 1000;
 5571#line 745
 5572        __cil_tmp118 = __cil_tmp117 / 8;
 5573#line 745
 5574        mem_169 = (USHORT *)__cil_tmp112;
 5575#line 745
 5576        *mem_169 = (unsigned short )__cil_tmp118;
 5577#line 748
 5578        __cil_tmp119 = (unsigned int )biosDriveMediaConstants;
 5579#line 748
 5580        __cil_tmp120 = __cil_tmp119 + 46;
 5581#line 748
 5582        __cil_tmp121 = (unsigned int )fDeviceData;
 5583#line 748
 5584        __cil_tmp122 = __cil_tmp121 + 30;
 5585#line 748
 5586        mem_170 = (UCHAR *)__cil_tmp122;
 5587#line 748
 5588        __cil_tmp123 = *mem_170;
 5589#line 748
 5590        __cil_tmp124 = (int )__cil_tmp123;
 5591#line 748
 5592        __cil_tmp125 = __cil_tmp124 * 1000;
 5593#line 748
 5594        __cil_tmp126 = __cil_tmp125 / 8;
 5595#line 748
 5596        mem_171 = (USHORT *)__cil_tmp120;
 5597#line 748
 5598        *mem_171 = (unsigned short )__cil_tmp126;
 5599        {
 5600#line 751
 5601        __cil_tmp127 = (unsigned int )fDeviceData;
 5602#line 751
 5603        __cil_tmp128 = __cil_tmp127 + 31;
 5604#line 751
 5605        mem_172 = (UCHAR *)__cil_tmp128;
 5606#line 751
 5607        __cil_tmp129 = *mem_172;
 5608#line 751
 5609        __cil_tmp130 = (int )__cil_tmp129;
 5610#line 751
 5611        if (__cil_tmp130 == 0) {
 5612#line 755
 5613          return (0L);
 5614        } else {
 5615
 5616        }
 5617        }
 5618#line 758
 5619        __cil_tmp131 = (unsigned int )biosDriveMediaConstants;
 5620#line 758
 5621        __cil_tmp132 = __cil_tmp131 + 48;
 5622#line 758
 5623        __cil_tmp133 = (unsigned int )fDeviceData;
 5624#line 758
 5625        __cil_tmp134 = __cil_tmp133 + 31;
 5626#line 758
 5627        mem_173 = (UCHAR *)__cil_tmp132;
 5628#line 758
 5629        mem_174 = (UCHAR *)__cil_tmp134;
 5630#line 758
 5631        *mem_173 = *mem_174;
 5632#line 761
 5633        __cil_tmp135 = (unsigned int )biosDriveMediaConstants;
 5634#line 761
 5635        __cil_tmp136 = __cil_tmp135 + 52;
 5636#line 761
 5637        __cil_tmp137 = (unsigned int )fDeviceData;
 5638#line 761
 5639        __cil_tmp138 = __cil_tmp137 + 26;
 5640#line 761
 5641        mem_175 = (UCHAR *)__cil_tmp136;
 5642#line 761
 5643        mem_176 = (UCHAR *)__cil_tmp138;
 5644#line 761
 5645        *mem_175 = *mem_176;
 5646      } else {
 5647
 5648      }
 5649      }
 5650    } else {
 5651
 5652    }
 5653    }
 5654#line 619
 5655    i = i + 1UL;
 5656  }
 5657  while_7_break: /* CIL Label */ ;
 5658  }
 5659#line 767
 5660  return (0L);
 5661}
 5662}
 5663#line 770 "floppy.c"
 5664NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo ) 
 5665{ UCHAR driveType ;
 5666  PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ;
 5667  unsigned int __cil_tmp5 ;
 5668  unsigned int __cil_tmp6 ;
 5669  unsigned int __cil_tmp7 ;
 5670  unsigned int __cil_tmp8 ;
 5671  BOOLEAN __cil_tmp9 ;
 5672  unsigned int __cil_tmp10 ;
 5673  unsigned int __cil_tmp11 ;
 5674  unsigned int __cil_tmp12 ;
 5675  ULONG __cil_tmp13 ;
 5676  enum _ACPI_FDI_DEVICE_TYPE __cil_tmp14 ;
 5677  unsigned int __cil_tmp15 ;
 5678  unsigned int __cil_tmp16 ;
 5679  int __cil_tmp17 ;
 5680  PDRIVE_MEDIA_LIMITS __cil_tmp18 ;
 5681  DRIVE_MEDIA_TYPE __cil_tmp19 ;
 5682  unsigned int __cil_tmp20 ;
 5683  PDRIVE_MEDIA_CONSTANTS __cil_tmp21 ;
 5684  unsigned int __cil_tmp22 ;
 5685  unsigned int __cil_tmp23 ;
 5686  unsigned int __cil_tmp24 ;
 5687  unsigned int __cil_tmp25 ;
 5688  unsigned int __cil_tmp26 ;
 5689  ULONG __cil_tmp27 ;
 5690  unsigned int __cil_tmp28 ;
 5691  unsigned int __cil_tmp29 ;
 5692  unsigned int __cil_tmp30 ;
 5693  unsigned int __cil_tmp31 ;
 5694  unsigned int __cil_tmp32 ;
 5695  ULONG __cil_tmp33 ;
 5696  unsigned int __cil_tmp34 ;
 5697  unsigned int __cil_tmp35 ;
 5698  unsigned int __cil_tmp36 ;
 5699  unsigned int __cil_tmp37 ;
 5700  unsigned int __cil_tmp38 ;
 5701  ULONG __cil_tmp39 ;
 5702  unsigned int __cil_tmp40 ;
 5703  unsigned int __cil_tmp41 ;
 5704  unsigned int __cil_tmp42 ;
 5705  unsigned int __cil_tmp43 ;
 5706  unsigned int __cil_tmp44 ;
 5707  ULONG __cil_tmp45 ;
 5708  unsigned int __cil_tmp46 ;
 5709  unsigned int __cil_tmp47 ;
 5710  unsigned int __cil_tmp48 ;
 5711  unsigned int __cil_tmp49 ;
 5712  unsigned int __cil_tmp50 ;
 5713  ULONG __cil_tmp51 ;
 5714  unsigned int __cil_tmp52 ;
 5715  unsigned int __cil_tmp53 ;
 5716  unsigned int __cil_tmp54 ;
 5717  unsigned int __cil_tmp55 ;
 5718  unsigned int __cil_tmp56 ;
 5719  ULONG __cil_tmp57 ;
 5720  unsigned int __cil_tmp58 ;
 5721  unsigned int __cil_tmp59 ;
 5722  unsigned int __cil_tmp60 ;
 5723  unsigned int __cil_tmp61 ;
 5724  unsigned int __cil_tmp62 ;
 5725  ULONG __cil_tmp63 ;
 5726  unsigned int __cil_tmp64 ;
 5727  unsigned int __cil_tmp65 ;
 5728  unsigned int __cil_tmp66 ;
 5729  unsigned int __cil_tmp67 ;
 5730  unsigned int __cil_tmp68 ;
 5731  ULONG __cil_tmp69 ;
 5732  unsigned int __cil_tmp70 ;
 5733  unsigned int __cil_tmp71 ;
 5734  unsigned int __cil_tmp72 ;
 5735  unsigned int __cil_tmp73 ;
 5736  unsigned int __cil_tmp74 ;
 5737  ULONG __cil_tmp75 ;
 5738  unsigned int __cil_tmp76 ;
 5739  unsigned int __cil_tmp77 ;
 5740  unsigned int __cil_tmp78 ;
 5741  unsigned int __cil_tmp79 ;
 5742  unsigned int __cil_tmp80 ;
 5743  ULONG __cil_tmp81 ;
 5744  unsigned char __cil_tmp82 ;
 5745  int __cil_tmp83 ;
 5746  int __cil_tmp84 ;
 5747  int __cil_tmp85 ;
 5748  unsigned int __cil_tmp86 ;
 5749  unsigned int __cil_tmp87 ;
 5750  unsigned int __cil_tmp88 ;
 5751  unsigned int __cil_tmp89 ;
 5752  unsigned int __cil_tmp90 ;
 5753  ULONG __cil_tmp91 ;
 5754  unsigned short __cil_tmp92 ;
 5755  int __cil_tmp93 ;
 5756  int __cil_tmp94 ;
 5757  int __cil_tmp95 ;
 5758  unsigned int __cil_tmp96 ;
 5759  unsigned int __cil_tmp97 ;
 5760  unsigned int __cil_tmp98 ;
 5761  unsigned int __cil_tmp99 ;
 5762  unsigned int __cil_tmp100 ;
 5763  ULONG __cil_tmp101 ;
 5764  unsigned int __cil_tmp102 ;
 5765  unsigned int __cil_tmp103 ;
 5766  unsigned int __cil_tmp104 ;
 5767  unsigned int __cil_tmp105 ;
 5768  unsigned int __cil_tmp106 ;
 5769  ULONG __cil_tmp107 ;
 5770  BOOLEAN *mem_108 ;
 5771  ULONG *mem_109 ;
 5772  UCHAR *mem_110 ;
 5773  DRIVE_MEDIA_TYPE *mem_111 ;
 5774  ULONG *mem_112 ;
 5775  UCHAR *mem_113 ;
 5776  ULONG *mem_114 ;
 5777  UCHAR *mem_115 ;
 5778  ULONG *mem_116 ;
 5779  UCHAR *mem_117 ;
 5780  ULONG *mem_118 ;
 5781  UCHAR *mem_119 ;
 5782  ULONG *mem_120 ;
 5783  UCHAR *mem_121 ;
 5784  ULONG *mem_122 ;
 5785  UCHAR *mem_123 ;
 5786  ULONG *mem_124 ;
 5787  UCHAR *mem_125 ;
 5788  ULONG *mem_126 ;
 5789  UCHAR *mem_127 ;
 5790  ULONG *mem_128 ;
 5791  UCHAR *mem_129 ;
 5792  ULONG *mem_130 ;
 5793  USHORT *mem_131 ;
 5794  ULONG *mem_132 ;
 5795  USHORT *mem_133 ;
 5796  ULONG *mem_134 ;
 5797  UCHAR *mem_135 ;
 5798  ULONG *mem_136 ;
 5799  UCHAR *mem_137 ;
 5800
 5801  {
 5802#line 789
 5803  __cil_tmp5 = (unsigned int )DisketteExtension;
 5804#line 789
 5805  __cil_tmp6 = __cil_tmp5 + 252;
 5806#line 789
 5807  biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp6;
 5808  {
 5809#line 792
 5810  __cil_tmp7 = (unsigned int )FdcInfo;
 5811#line 792
 5812  __cil_tmp8 = __cil_tmp7 + 61;
 5813#line 792
 5814  mem_108 = (BOOLEAN *)__cil_tmp8;
 5815#line 792
 5816  __cil_tmp9 = *mem_108;
 5817#line 792
 5818  if (! __cil_tmp9) {
 5819#line 794
 5820    return (-1073741823L);
 5821  } else {
 5822
 5823  }
 5824  }
 5825  {
 5826#line 802
 5827  __cil_tmp10 = 64 + 4;
 5828#line 802
 5829  __cil_tmp11 = (unsigned int )FdcInfo;
 5830#line 802
 5831  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
 5832#line 802
 5833  mem_109 = (ULONG *)__cil_tmp12;
 5834#line 802
 5835  __cil_tmp13 = *mem_109;
 5836#line 802
 5837  __cil_tmp14 = (enum _ACPI_FDI_DEVICE_TYPE )__cil_tmp13;
 5838#line 803
 5839  if ((int )__cil_tmp14 == 1) {
 5840    goto switch_11_1;
 5841  } else {
 5842#line 805
 5843    if ((int )__cil_tmp14 == 2) {
 5844      goto switch_11_2;
 5845    } else {
 5846#line 806
 5847      if ((int )__cil_tmp14 == 3) {
 5848        goto switch_11_3;
 5849      } else {
 5850#line 807
 5851        if ((int )__cil_tmp14 == 4) {
 5852          goto switch_11_4;
 5853        } else {
 5854#line 808
 5855          if ((int )__cil_tmp14 == 5) {
 5856            goto switch_11_5;
 5857          } else {
 5858            {
 5859            goto switch_11_default;
 5860#line 802
 5861            if (0) {
 5862              switch_11_1: /* CIL Label */ 
 5863#line 804
 5864              driveType = (unsigned char)0;
 5865              goto switch_11_break;
 5866              switch_11_2: /* CIL Label */ 
 5867#line 805
 5868              driveType = (unsigned char)1;
 5869              goto switch_11_break;
 5870              switch_11_3: /* CIL Label */ 
 5871#line 806
 5872              driveType = (unsigned char)2;
 5873              goto switch_11_break;
 5874              switch_11_4: /* CIL Label */ 
 5875#line 807
 5876              driveType = (unsigned char)3;
 5877              goto switch_11_break;
 5878              switch_11_5: /* CIL Label */ 
 5879#line 808
 5880              driveType = (unsigned char)4;
 5881              goto switch_11_break;
 5882              switch_11_default: /* CIL Label */ 
 5883#line 810
 5884              driveType = (unsigned char)1;
 5885              goto switch_11_break;
 5886            } else {
 5887              switch_11_break: /* CIL Label */ ;
 5888            }
 5889            }
 5890          }
 5891        }
 5892      }
 5893    }
 5894  }
 5895  }
 5896#line 814
 5897  __cil_tmp15 = (unsigned int )DisketteExtension;
 5898#line 814
 5899  __cil_tmp16 = __cil_tmp15 + 174;
 5900#line 814
 5901  mem_110 = (UCHAR *)__cil_tmp16;
 5902#line 814
 5903  *mem_110 = driveType;
 5904#line 821
 5905  __cil_tmp17 = (int )driveType;
 5906#line 821
 5907  __cil_tmp18 = DriveMediaLimits + __cil_tmp17;
 5908#line 821
 5909  mem_111 = (DRIVE_MEDIA_TYPE *)__cil_tmp18;
 5910#line 821
 5911  __cil_tmp19 = *mem_111;
 5912#line 821
 5913  __cil_tmp20 = (unsigned int )__cil_tmp19;
 5914#line 821
 5915  __cil_tmp21 = DriveMediaConstants + __cil_tmp20;
 5916#line 821
 5917  *biosDriveMediaConstants = *__cil_tmp21;
 5918#line 824
 5919  __cil_tmp22 = (unsigned int )biosDriveMediaConstants;
 5920#line 824
 5921  __cil_tmp23 = __cil_tmp22 + 32;
 5922#line 824
 5923  __cil_tmp24 = 64 + 20;
 5924#line 824
 5925  __cil_tmp25 = (unsigned int )FdcInfo;
 5926#line 824
 5927  __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
 5928#line 824
 5929  mem_112 = (ULONG *)__cil_tmp26;
 5930#line 824
 5931  __cil_tmp27 = *mem_112;
 5932#line 824
 5933  mem_113 = (UCHAR *)__cil_tmp23;
 5934#line 824
 5935  *mem_113 = (unsigned char )__cil_tmp27;
 5936#line 825
 5937  __cil_tmp28 = (unsigned int )biosDriveMediaConstants;
 5938#line 825
 5939  __cil_tmp29 = __cil_tmp28 + 33;
 5940#line 825
 5941  __cil_tmp30 = 64 + 24;
 5942#line 825
 5943  __cil_tmp31 = (unsigned int )FdcInfo;
 5944#line 825
 5945  __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
 5946#line 825
 5947  mem_114 = (ULONG *)__cil_tmp32;
 5948#line 825
 5949  __cil_tmp33 = *mem_114;
 5950#line 825
 5951  mem_115 = (UCHAR *)__cil_tmp29;
 5952#line 825
 5953  *mem_115 = (unsigned char )__cil_tmp33;
 5954#line 826
 5955  __cil_tmp34 = (unsigned int )biosDriveMediaConstants;
 5956#line 826
 5957  __cil_tmp35 = __cil_tmp34 + 34;
 5958#line 826
 5959  __cil_tmp36 = 64 + 28;
 5960#line 826
 5961  __cil_tmp37 = (unsigned int )FdcInfo;
 5962#line 826
 5963  __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
 5964#line 826
 5965  mem_116 = (ULONG *)__cil_tmp38;
 5966#line 826
 5967  __cil_tmp39 = *mem_116;
 5968#line 826
 5969  mem_117 = (UCHAR *)__cil_tmp35;
 5970#line 826
 5971  *mem_117 = (unsigned char )__cil_tmp39;
 5972#line 827
 5973  __cil_tmp40 = (unsigned int )biosDriveMediaConstants;
 5974#line 827
 5975  __cil_tmp41 = __cil_tmp40 + 35;
 5976#line 827
 5977  __cil_tmp42 = 64 + 32;
 5978#line 827
 5979  __cil_tmp43 = (unsigned int )FdcInfo;
 5980#line 827
 5981  __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
 5982#line 827
 5983  mem_118 = (ULONG *)__cil_tmp44;
 5984#line 827
 5985  __cil_tmp45 = *mem_118;
 5986#line 827
 5987  mem_119 = (UCHAR *)__cil_tmp41;
 5988#line 827
 5989  *mem_119 = (unsigned char )__cil_tmp45;
 5990#line 828
 5991  __cil_tmp46 = (unsigned int )biosDriveMediaConstants;
 5992#line 828
 5993  __cil_tmp47 = __cil_tmp46 + 38;
 5994#line 828
 5995  __cil_tmp48 = 64 + 36;
 5996#line 828
 5997  __cil_tmp49 = (unsigned int )FdcInfo;
 5998#line 828
 5999  __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
 6000#line 828
 6001  mem_120 = (ULONG *)__cil_tmp50;
 6002#line 828
 6003  __cil_tmp51 = *mem_120;
 6004#line 828
 6005  mem_121 = (UCHAR *)__cil_tmp47;
 6006#line 828
 6007  *mem_121 = (unsigned char )__cil_tmp51;
 6008#line 829
 6009  __cil_tmp52 = (unsigned int )biosDriveMediaConstants;
 6010#line 829
 6011  __cil_tmp53 = __cil_tmp52 + 39;
 6012#line 829
 6013  __cil_tmp54 = 64 + 40;
 6014#line 829
 6015  __cil_tmp55 = (unsigned int )FdcInfo;
 6016#line 829
 6017  __cil_tmp56 = __cil_tmp55 + __cil_tmp54;
 6018#line 829
 6019  mem_122 = (ULONG *)__cil_tmp56;
 6020#line 829
 6021  __cil_tmp57 = *mem_122;
 6022#line 829
 6023  mem_123 = (UCHAR *)__cil_tmp53;
 6024#line 829
 6025  *mem_123 = (unsigned char )__cil_tmp57;
 6026#line 830
 6027  __cil_tmp58 = (unsigned int )biosDriveMediaConstants;
 6028#line 830
 6029  __cil_tmp59 = __cil_tmp58 + 40;
 6030#line 830
 6031  __cil_tmp60 = 64 + 48;
 6032#line 830
 6033  __cil_tmp61 = (unsigned int )FdcInfo;
 6034#line 830
 6035  __cil_tmp62 = __cil_tmp61 + __cil_tmp60;
 6036#line 830
 6037  mem_124 = (ULONG *)__cil_tmp62;
 6038#line 830
 6039  __cil_tmp63 = *mem_124;
 6040#line 830
 6041  mem_125 = (UCHAR *)__cil_tmp59;
 6042#line 830
 6043  *mem_125 = (unsigned char )__cil_tmp63;
 6044#line 831
 6045  __cil_tmp64 = (unsigned int )biosDriveMediaConstants;
 6046#line 831
 6047  __cil_tmp65 = __cil_tmp64 + 41;
 6048#line 831
 6049  __cil_tmp66 = 64 + 52;
 6050#line 831
 6051  __cil_tmp67 = (unsigned int )FdcInfo;
 6052#line 831
 6053  __cil_tmp68 = __cil_tmp67 + __cil_tmp66;
 6054#line 831
 6055  mem_126 = (ULONG *)__cil_tmp68;
 6056#line 831
 6057  __cil_tmp69 = *mem_126;
 6058#line 831
 6059  mem_127 = (UCHAR *)__cil_tmp65;
 6060#line 831
 6061  *mem_127 = (unsigned char )__cil_tmp69;
 6062#line 832
 6063  __cil_tmp70 = (unsigned int )biosDriveMediaConstants;
 6064#line 832
 6065  __cil_tmp71 = __cil_tmp70 + 42;
 6066#line 832
 6067  __cil_tmp72 = 64 + 56;
 6068#line 832
 6069  __cil_tmp73 = (unsigned int )FdcInfo;
 6070#line 832
 6071  __cil_tmp74 = __cil_tmp73 + __cil_tmp72;
 6072#line 832
 6073  mem_128 = (ULONG *)__cil_tmp74;
 6074#line 832
 6075  __cil_tmp75 = *mem_128;
 6076#line 832
 6077  mem_129 = (UCHAR *)__cil_tmp71;
 6078#line 832
 6079  *mem_129 = (unsigned char )__cil_tmp75;
 6080#line 833
 6081  __cil_tmp76 = (unsigned int )biosDriveMediaConstants;
 6082#line 833
 6083  __cil_tmp77 = __cil_tmp76 + 44;
 6084#line 833
 6085  __cil_tmp78 = 64 + 60;
 6086#line 833
 6087  __cil_tmp79 = (unsigned int )FdcInfo;
 6088#line 833
 6089  __cil_tmp80 = __cil_tmp79 + __cil_tmp78;
 6090#line 833
 6091  mem_130 = (ULONG *)__cil_tmp80;
 6092#line 833
 6093  __cil_tmp81 = *mem_130;
 6094#line 833
 6095  __cil_tmp82 = (unsigned char )__cil_tmp81;
 6096#line 833
 6097  __cil_tmp83 = (int )__cil_tmp82;
 6098#line 833
 6099  __cil_tmp84 = __cil_tmp83 * 1000;
 6100#line 833
 6101  __cil_tmp85 = __cil_tmp84 / 8;
 6102#line 833
 6103  mem_131 = (USHORT *)__cil_tmp77;
 6104#line 833
 6105  *mem_131 = (unsigned short )__cil_tmp85;
 6106#line 834
 6107  __cil_tmp86 = (unsigned int )biosDriveMediaConstants;
 6108#line 834
 6109  __cil_tmp87 = __cil_tmp86 + 46;
 6110#line 834
 6111  __cil_tmp88 = 64 + 60;
 6112#line 834
 6113  __cil_tmp89 = (unsigned int )FdcInfo;
 6114#line 834
 6115  __cil_tmp90 = __cil_tmp89 + __cil_tmp88;
 6116#line 834
 6117  mem_132 = (ULONG *)__cil_tmp90;
 6118#line 834
 6119  __cil_tmp91 = *mem_132;
 6120#line 834
 6121  __cil_tmp92 = (unsigned short )__cil_tmp91;
 6122#line 834
 6123  __cil_tmp93 = (int )__cil_tmp92;
 6124#line 834
 6125  __cil_tmp94 = __cil_tmp93 * 1000;
 6126#line 834
 6127  __cil_tmp95 = __cil_tmp94 / 8;
 6128#line 834
 6129  mem_133 = (USHORT *)__cil_tmp87;
 6130#line 834
 6131  *mem_133 = (unsigned short )__cil_tmp95;
 6132#line 835
 6133  __cil_tmp96 = (unsigned int )biosDriveMediaConstants;
 6134#line 835
 6135  __cil_tmp97 = __cil_tmp96 + 48;
 6136#line 835
 6137  __cil_tmp98 = 64 + 8;
 6138#line 835
 6139  __cil_tmp99 = (unsigned int )FdcInfo;
 6140#line 835
 6141  __cil_tmp100 = __cil_tmp99 + __cil_tmp98;
 6142#line 835
 6143  mem_134 = (ULONG *)__cil_tmp100;
 6144#line 835
 6145  __cil_tmp101 = *mem_134;
 6146#line 835
 6147  mem_135 = (UCHAR *)__cil_tmp97;
 6148#line 835
 6149  *mem_135 = (unsigned char )__cil_tmp101;
 6150#line 836
 6151  __cil_tmp102 = (unsigned int )biosDriveMediaConstants;
 6152#line 836
 6153  __cil_tmp103 = __cil_tmp102 + 52;
 6154#line 836
 6155  __cil_tmp104 = 64 + 44;
 6156#line 836
 6157  __cil_tmp105 = (unsigned int )FdcInfo;
 6158#line 836
 6159  __cil_tmp106 = __cil_tmp105 + __cil_tmp104;
 6160#line 836
 6161  mem_136 = (ULONG *)__cil_tmp106;
 6162#line 836
 6163  __cil_tmp107 = *mem_136;
 6164#line 836
 6165  mem_137 = (UCHAR *)__cil_tmp103;
 6166#line 836
 6167  *mem_137 = (unsigned char )__cil_tmp107;
 6168#line 838
 6169  return (0L);
 6170}
 6171}
 6172#line 949
 6173void assert(int cond) {
 6174  if (!(cond)) {
 6175    ERROR: goto ERROR; 
 6176  }
 6177  return;
 6178}
 6179#line 841 "floppy.c"
 6180NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) 
 6181{ NTSTATUS status ;
 6182  HANDLE threadHandle ;
 6183  PIO_STACK_LOCATION irpSp ;
 6184  OBJECT_ATTRIBUTES ObjAttributes ;
 6185  unsigned int __cil_tmp7 ;
 6186  unsigned int __cil_tmp8 ;
 6187  unsigned int __cil_tmp9 ;
 6188  unsigned int __cil_tmp10 ;
 6189  unsigned int __cil_tmp11 ;
 6190  unsigned int __cil_tmp12 ;
 6191  unsigned int __cil_tmp13 ;
 6192  FAST_MUTEX *__cil_tmp14 ;
 6193  unsigned int __cil_tmp15 ;
 6194  unsigned int __cil_tmp16 ;
 6195  BOOLEAN __cil_tmp17 ;
 6196  int __cil_tmp18 ;
 6197  unsigned int __cil_tmp19 ;
 6198  unsigned int __cil_tmp20 ;
 6199  FAST_MUTEX *__cil_tmp21 ;
 6200  unsigned int __cil_tmp22 ;
 6201  unsigned int __cil_tmp23 ;
 6202  unsigned int __cil_tmp24 ;
 6203  unsigned int __cil_tmp25 ;
 6204  unsigned int __cil_tmp26 ;
 6205  unsigned int __cil_tmp27 ;
 6206  unsigned int __cil_tmp28 ;
 6207  FAST_MUTEX *__cil_tmp29 ;
 6208  unsigned int __cil_tmp30 ;
 6209  unsigned int __cil_tmp31 ;
 6210  FAST_MUTEX *__cil_tmp32 ;
 6211  unsigned int __cil_tmp33 ;
 6212  unsigned int __cil_tmp34 ;
 6213  unsigned int __cil_tmp35 ;
 6214  unsigned int __cil_tmp36 ;
 6215  LONG __cil_tmp37 ;
 6216  unsigned int __cil_tmp38 ;
 6217  unsigned int __cil_tmp39 ;
 6218  LONG __cil_tmp40 ;
 6219  unsigned int __cil_tmp41 ;
 6220  unsigned int __cil_tmp42 ;
 6221  unsigned int __cil_tmp43 ;
 6222  unsigned int __cil_tmp44 ;
 6223  LONG __cil_tmp45 ;
 6224  void *__cil_tmp46 ;
 6225  OBJECT_ATTRIBUTES *__cil_tmp47 ;
 6226  unsigned int __cil_tmp48 ;
 6227  unsigned int __cil_tmp49 ;
 6228  unsigned int __cil_tmp50 ;
 6229  void *__cil_tmp51 ;
 6230  unsigned int __cil_tmp52 ;
 6231  unsigned int __cil_tmp53 ;
 6232  void *__cil_tmp54 ;
 6233  void *__cil_tmp55 ;
 6234  CLIENT_ID *__cil_tmp56 ;
 6235  void *__cil_tmp57 ;
 6236  int __cil_tmp58 ;
 6237  unsigned int __cil_tmp59 ;
 6238  unsigned int __cil_tmp60 ;
 6239  void *__cil_tmp61 ;
 6240  unsigned int __cil_tmp62 ;
 6241  unsigned int __cil_tmp63 ;
 6242  FAST_MUTEX *__cil_tmp64 ;
 6243  HANDLE *__cil_tmp65 ;
 6244  HANDLE __cil_tmp66 ;
 6245  void *__cil_tmp67 ;
 6246  struct _OBJECT_TYPE *__cil_tmp68 ;
 6247  unsigned int __cil_tmp69 ;
 6248  unsigned int __cil_tmp70 ;
 6249  PKTHREAD *__cil_tmp71 ;
 6250  PVOID *__cil_tmp72 ;
 6251  void *__cil_tmp73 ;
 6252  struct _OBJECT_HANDLE_INFORMATION *__cil_tmp74 ;
 6253  HANDLE *__cil_tmp75 ;
 6254  HANDLE __cil_tmp76 ;
 6255  unsigned int __cil_tmp77 ;
 6256  unsigned int __cil_tmp78 ;
 6257  FAST_MUTEX *__cil_tmp79 ;
 6258  int __cil_tmp80 ;
 6259  unsigned int __cil_tmp81 ;
 6260  unsigned int __cil_tmp82 ;
 6261  FAST_MUTEX *__cil_tmp83 ;
 6262  unsigned int __cil_tmp84 ;
 6263  unsigned int __cil_tmp85 ;
 6264  unsigned int __cil_tmp86 ;
 6265  unsigned int __cil_tmp87 ;
 6266  unsigned int __cil_tmp88 ;
 6267  struct _IO_STACK_LOCATION *__cil_tmp89 ;
 6268  unsigned int __cil_tmp90 ;
 6269  unsigned int __cil_tmp91 ;
 6270  unsigned int __cil_tmp92 ;
 6271  unsigned int __cil_tmp93 ;
 6272  unsigned int __cil_tmp94 ;
 6273  unsigned int __cil_tmp95 ;
 6274  unsigned int __cil_tmp96 ;
 6275  struct _IO_STACK_LOCATION *__cil_tmp97 ;
 6276  unsigned int __cil_tmp98 ;
 6277  unsigned int __cil_tmp99 ;
 6278  UCHAR __cil_tmp100 ;
 6279  int __cil_tmp101 ;
 6280  int __cil_tmp102 ;
 6281  unsigned int __cil_tmp103 ;
 6282  unsigned int __cil_tmp104 ;
 6283  LIST_ENTRY *__cil_tmp105 ;
 6284  unsigned int __cil_tmp106 ;
 6285  unsigned int __cil_tmp107 ;
 6286  unsigned int __cil_tmp108 ;
 6287  unsigned int __cil_tmp109 ;
 6288  LIST_ENTRY *__cil_tmp110 ;
 6289  unsigned int __cil_tmp111 ;
 6290  unsigned int __cil_tmp112 ;
 6291  KSPIN_LOCK *__cil_tmp113 ;
 6292  unsigned int __cil_tmp114 ;
 6293  unsigned int __cil_tmp115 ;
 6294  KSEMAPHORE *__cil_tmp116 ;
 6295  struct _IO_STACK_LOCATION **mem_117 ;
 6296  BOOLEAN *mem_118 ;
 6297  NTSTATUS *mem_119 ;
 6298  ULONG_PTR *mem_120 ;
 6299  LONG *mem_121 ;
 6300  LONG *mem_122 ;
 6301  LONG *mem_123 ;
 6302  LONG *mem_124 ;
 6303  LONG *mem_125 ;
 6304  ULONG *mem_126 ;
 6305  HANDLE *mem_127 ;
 6306  ULONG *mem_128 ;
 6307  PUNICODE_STRING *mem_129 ;
 6308  PVOID *mem_130 ;
 6309  PVOID *mem_131 ;
 6310  LONG *mem_132 ;
 6311  struct _IO_STACK_LOCATION **mem_133 ;
 6312  struct _IO_STACK_LOCATION **mem_134 ;
 6313  UCHAR *mem_135 ;
 6314  UCHAR *mem_136 ;
 6315
 6316  {
 6317  {
 6318#line 871
 6319  __cil_tmp7 = 24 + 8;
 6320#line 871
 6321  __cil_tmp8 = 0 + __cil_tmp7;
 6322#line 871
 6323  __cil_tmp9 = 64 + __cil_tmp8;
 6324#line 871
 6325  __cil_tmp10 = (unsigned int )Irp;
 6326#line 871
 6327  __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
 6328#line 871
 6329  mem_117 = (struct _IO_STACK_LOCATION **)__cil_tmp11;
 6330#line 871
 6331  irpSp = *mem_117;
 6332#line 878
 6333  __cil_tmp12 = (unsigned int )DisketteExtension;
 6334#line 878
 6335  __cil_tmp13 = __cil_tmp12 + 396;
 6336#line 878
 6337  __cil_tmp14 = (FAST_MUTEX *)__cil_tmp13;
 6338#line 878
 6339  ExAcquireFastMutex(__cil_tmp14);
 6340  }
 6341  {
 6342#line 879
 6343  __cil_tmp15 = (unsigned int )DisketteExtension;
 6344#line 879
 6345  __cil_tmp16 = __cil_tmp15 + 393;
 6346#line 879
 6347  mem_118 = (BOOLEAN *)__cil_tmp16;
 6348#line 879
 6349  __cil_tmp17 = *mem_118;
 6350#line 879
 6351  __cil_tmp18 = (int )__cil_tmp17;
 6352#line 879
 6353  if (__cil_tmp18 == 1) {
 6354    {
 6355#line 880
 6356    __cil_tmp19 = (unsigned int )DisketteExtension;
 6357#line 880
 6358    __cil_tmp20 = __cil_tmp19 + 396;
 6359#line 880
 6360    __cil_tmp21 = (FAST_MUTEX *)__cil_tmp20;
 6361#line 880
 6362    ExReleaseFastMutex(__cil_tmp21);
 6363    }
 6364    {
 6365#line 882
 6366    while (1) {
 6367      while_12_continue: /* CIL Label */ ;
 6368      goto while_12_break;
 6369    }
 6370    while_12_break: /* CIL Label */ ;
 6371    }
 6372#line 884
 6373    myStatus = -1073741101L;
 6374#line 886
 6375    __cil_tmp22 = (unsigned int )Irp;
 6376#line 886
 6377    __cil_tmp23 = __cil_tmp22 + 24;
 6378#line 886
 6379    mem_119 = (NTSTATUS *)__cil_tmp23;
 6380#line 886
 6381    *mem_119 = -1073741101L;
 6382#line 887
 6383    __cil_tmp24 = 24 + 4;
 6384#line 887
 6385    __cil_tmp25 = (unsigned int )Irp;
 6386#line 887
 6387    __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
 6388#line 887
 6389    mem_120 = (ULONG_PTR *)__cil_tmp26;
 6390#line 887
 6391    *mem_120 = 0UL;
 6392#line 888
 6393    return (-1073741101L);
 6394  } else {
 6395
 6396  }
 6397  }
 6398  {
 6399#line 890
 6400  __cil_tmp27 = (unsigned int )DisketteExtension;
 6401#line 890
 6402  __cil_tmp28 = __cil_tmp27 + 396;
 6403#line 890
 6404  __cil_tmp29 = (FAST_MUTEX *)__cil_tmp28;
 6405#line 890
 6406  ExReleaseFastMutex(__cil_tmp29);
 6407  }
 6408  {
 6409#line 891
 6410  while (1) {
 6411    while_13_continue: /* CIL Label */ ;
 6412    goto while_13_break;
 6413  }
 6414  while_13_break: /* CIL Label */ ;
 6415  }
 6416  {
 6417#line 891
 6418  __cil_tmp30 = (unsigned int )DisketteExtension;
 6419#line 891
 6420  __cil_tmp31 = __cil_tmp30 + 56;
 6421#line 891
 6422  __cil_tmp32 = (FAST_MUTEX *)__cil_tmp31;
 6423#line 891
 6424  ExAcquireFastMutex(__cil_tmp32);
 6425#line 893
 6426  __cil_tmp33 = (unsigned int )DisketteExtension;
 6427#line 893
 6428  __cil_tmp34 = __cil_tmp33 + 88;
 6429#line 893
 6430  __cil_tmp35 = (unsigned int )DisketteExtension;
 6431#line 893
 6432  __cil_tmp36 = __cil_tmp35 + 88;
 6433#line 893
 6434  mem_121 = (LONG *)__cil_tmp36;
 6435#line 893
 6436  __cil_tmp37 = *mem_121;
 6437#line 893
 6438  mem_122 = (LONG *)__cil_tmp34;
 6439#line 893
 6440  *mem_122 = __cil_tmp37 + 1L;
 6441  }
 6442  {
 6443#line 893
 6444  __cil_tmp38 = (unsigned int )DisketteExtension;
 6445#line 893
 6446  __cil_tmp39 = __cil_tmp38 + 88;
 6447#line 893
 6448  mem_123 = (LONG *)__cil_tmp39;
 6449#line 893
 6450  __cil_tmp40 = *mem_123;
 6451#line 893
 6452  if (__cil_tmp40 == 0L) {
 6453    {
 6454#line 896
 6455    __cil_tmp41 = (unsigned int )DisketteExtension;
 6456#line 896
 6457    __cil_tmp42 = __cil_tmp41 + 88;
 6458#line 896
 6459    __cil_tmp43 = (unsigned int )DisketteExtension;
 6460#line 896
 6461    __cil_tmp44 = __cil_tmp43 + 88;
 6462#line 896
 6463    mem_124 = (LONG *)__cil_tmp44;
 6464#line 896
 6465    __cil_tmp45 = *mem_124;
 6466#line 896
 6467    mem_125 = (LONG *)__cil_tmp42;
 6468#line 896
 6469    *mem_125 = __cil_tmp45 + 1L;
 6470#line 898
 6471    ExAcquireFastMutex(PagingMutex);
 6472#line 898
 6473    PagingReferenceCount = PagingReferenceCount + 1UL;
 6474    }
 6475#line 898
 6476    if (PagingReferenceCount == 1UL) {
 6477      {
 6478#line 898
 6479      __cil_tmp46 = (void *)(& DriverEntry);
 6480#line 898
 6481      MmResetDriverPaging(__cil_tmp46);
 6482      }
 6483    } else {
 6484
 6485    }
 6486    {
 6487#line 898
 6488    ExReleaseFastMutex(PagingMutex);
 6489#line 907
 6490    __cil_tmp47 = & ObjAttributes;
 6491#line 907
 6492    mem_126 = (ULONG *)__cil_tmp47;
 6493#line 907
 6494    *mem_126 = (unsigned long )24U;
 6495#line 907
 6496    __cil_tmp48 = (unsigned int )(& ObjAttributes) + 4;
 6497#line 907
 6498    mem_127 = (HANDLE *)__cil_tmp48;
 6499#line 907
 6500    *mem_127 = (void *)0;
 6501#line 907
 6502    __cil_tmp49 = (unsigned int )(& ObjAttributes) + 12;
 6503#line 907
 6504    mem_128 = (ULONG *)__cil_tmp49;
 6505#line 907
 6506    *mem_128 = 512UL;
 6507#line 907
 6508    __cil_tmp50 = (unsigned int )(& ObjAttributes) + 8;
 6509#line 907
 6510    __cil_tmp51 = (void *)0;
 6511#line 907
 6512    mem_129 = (PUNICODE_STRING *)__cil_tmp50;
 6513#line 907
 6514    *mem_129 = (UNICODE_STRING *)__cil_tmp51;
 6515#line 907
 6516    __cil_tmp52 = (unsigned int )(& ObjAttributes) + 16;
 6517#line 907
 6518    mem_130 = (PVOID *)__cil_tmp52;
 6519#line 907
 6520    *mem_130 = (void *)0;
 6521#line 907
 6522    __cil_tmp53 = (unsigned int )(& ObjAttributes) + 20;
 6523#line 907
 6524    mem_131 = (PVOID *)__cil_tmp53;
 6525#line 907
 6526    *mem_131 = (void *)0;
 6527#line 909
 6528    __cil_tmp54 = (void *)0L;
 6529#line 909
 6530    __cil_tmp55 = (void *)0;
 6531#line 909
 6532    __cil_tmp56 = (CLIENT_ID *)__cil_tmp55;
 6533#line 909
 6534    __cil_tmp57 = (void *)DisketteExtension;
 6535#line 909
 6536    status = PsCreateSystemThread(& threadHandle, 0UL, & ObjAttributes, __cil_tmp54,
 6537                                  __cil_tmp56, & FloppyThread, __cil_tmp57);
 6538    }
 6539    {
 6540#line 917
 6541    __cil_tmp58 = status >= 0L;
 6542#line 917
 6543    if (! __cil_tmp58) {
 6544      {
 6545#line 918
 6546      __cil_tmp59 = (unsigned int )DisketteExtension;
 6547#line 918
 6548      __cil_tmp60 = __cil_tmp59 + 88;
 6549#line 918
 6550      mem_132 = (LONG *)__cil_tmp60;
 6551#line 918
 6552      *mem_132 = -1L;
 6553#line 920
 6554      ExAcquireFastMutex(PagingMutex);
 6555#line 920
 6556      PagingReferenceCount = PagingReferenceCount - 1UL;
 6557      }
 6558#line 920
 6559      if (PagingReferenceCount == 0UL) {
 6560        {
 6561#line 920
 6562        __cil_tmp61 = (void *)(& DriverEntry);
 6563#line 920
 6564        MmPageEntireDriver(__cil_tmp61);
 6565        }
 6566      } else {
 6567
 6568      }
 6569      {
 6570#line 920
 6571      ExReleaseFastMutex(PagingMutex);
 6572#line 922
 6573      __cil_tmp62 = (unsigned int )DisketteExtension;
 6574#line 922
 6575      __cil_tmp63 = __cil_tmp62 + 56;
 6576#line 922
 6577      __cil_tmp64 = (FAST_MUTEX *)__cil_tmp63;
 6578#line 922
 6579      ExReleaseFastMutex(__cil_tmp64);
 6580      }
 6581#line 923
 6582      return (status);
 6583    } else {
 6584
 6585    }
 6586    }
 6587    {
 6588#line 926
 6589    __cil_tmp65 = & threadHandle;
 6590#line 926
 6591    __cil_tmp66 = *__cil_tmp65;
 6592#line 926
 6593    __cil_tmp67 = (void *)0;
 6594#line 926
 6595    __cil_tmp68 = (struct _OBJECT_TYPE *)__cil_tmp67;
 6596#line 926
 6597    __cil_tmp69 = (unsigned int )DisketteExtension;
 6598#line 926
 6599    __cil_tmp70 = __cil_tmp69 + 92;
 6600#line 926
 6601    __cil_tmp71 = (PKTHREAD *)__cil_tmp70;
 6602#line 926
 6603    __cil_tmp72 = (PVOID *)__cil_tmp71;
 6604#line 926
 6605    __cil_tmp73 = (void *)0;
 6606#line 926
 6607    __cil_tmp74 = (struct _OBJECT_HANDLE_INFORMATION *)__cil_tmp73;
 6608#line 926
 6609    status = ObReferenceObjectByHandle(__cil_tmp66, 1048576UL, __cil_tmp68, (char)0,
 6610                                       __cil_tmp72, __cil_tmp74);
 6611#line 935
 6612    __cil_tmp75 = & threadHandle;
 6613#line 935
 6614    __cil_tmp76 = *__cil_tmp75;
 6615#line 935
 6616    ZwClose(__cil_tmp76);
 6617#line 937
 6618    __cil_tmp77 = (unsigned int )DisketteExtension;
 6619#line 937
 6620    __cil_tmp78 = __cil_tmp77 + 56;
 6621#line 937
 6622    __cil_tmp79 = (FAST_MUTEX *)__cil_tmp78;
 6623#line 937
 6624    ExReleaseFastMutex(__cil_tmp79);
 6625    }
 6626    {
 6627#line 939
 6628    __cil_tmp80 = status >= 0L;
 6629#line 939
 6630    if (! __cil_tmp80) {
 6631#line 940
 6632      return (status);
 6633    } else {
 6634
 6635    }
 6636    }
 6637  } else {
 6638    {
 6639#line 944
 6640    __cil_tmp81 = (unsigned int )DisketteExtension;
 6641#line 944
 6642    __cil_tmp82 = __cil_tmp81 + 56;
 6643#line 944
 6644    __cil_tmp83 = (FAST_MUTEX *)__cil_tmp82;
 6645#line 944
 6646    ExReleaseFastMutex(__cil_tmp83);
 6647    }
 6648  }
 6649  }
 6650#line 947
 6651  __cil_tmp84 = 24 + 8;
 6652#line 947
 6653  __cil_tmp85 = 0 + __cil_tmp84;
 6654#line 947
 6655  __cil_tmp86 = 64 + __cil_tmp85;
 6656#line 947
 6657  __cil_tmp87 = (unsigned int )Irp;
 6658#line 947
 6659  __cil_tmp88 = __cil_tmp87 + __cil_tmp86;
 6660#line 947
 6661  mem_133 = (struct _IO_STACK_LOCATION **)__cil_tmp88;
 6662#line 947
 6663  __cil_tmp89 = *mem_133;
 6664#line 947
 6665  __cil_tmp90 = (unsigned int )__cil_tmp89;
 6666#line 947
 6667  __cil_tmp91 = __cil_tmp90 + 3;
 6668#line 947
 6669  __cil_tmp92 = 24 + 8;
 6670#line 947
 6671  __cil_tmp93 = 0 + __cil_tmp92;
 6672#line 947
 6673  __cil_tmp94 = 64 + __cil_tmp93;
 6674#line 947
 6675  __cil_tmp95 = (unsigned int )Irp;
 6676#line 947
 6677  __cil_tmp96 = __cil_tmp95 + __cil_tmp94;
 6678#line 947
 6679  mem_134 = (struct _IO_STACK_LOCATION **)__cil_tmp96;
 6680#line 947
 6681  __cil_tmp97 = *mem_134;
 6682#line 947
 6683  __cil_tmp98 = (unsigned int )__cil_tmp97;
 6684#line 947
 6685  __cil_tmp99 = __cil_tmp98 + 3;
 6686#line 947
 6687  mem_135 = (UCHAR *)__cil_tmp99;
 6688#line 947
 6689  __cil_tmp100 = *mem_135;
 6690#line 947
 6691  __cil_tmp101 = (int )__cil_tmp100;
 6692#line 947
 6693  __cil_tmp102 = __cil_tmp101 | 1;
 6694#line 947
 6695  mem_136 = (UCHAR *)__cil_tmp91;
 6696#line 947
 6697  *mem_136 = (unsigned char )__cil_tmp102;
 6698#line 948
 6699  if (pended == 0) {
 6700#line 948
 6701    pended = 1;
 6702  } else {
 6703    {
 6704#line 949
 6705    assert(0);
 6706    }
 6707  }
 6708  {
 6709#line 952
 6710  __cil_tmp103 = (unsigned int )DisketteExtension;
 6711#line 952
 6712  __cil_tmp104 = __cil_tmp103 + 96;
 6713#line 952
 6714  __cil_tmp105 = (LIST_ENTRY *)__cil_tmp104;
 6715#line 952
 6716  __cil_tmp106 = 0 + 24;
 6717#line 952
 6718  __cil_tmp107 = 64 + __cil_tmp106;
 6719#line 952
 6720  __cil_tmp108 = (unsigned int )Irp;
 6721#line 952
 6722  __cil_tmp109 = __cil_tmp108 + __cil_tmp107;
 6723#line 952
 6724  __cil_tmp110 = (LIST_ENTRY *)__cil_tmp109;
 6725#line 952
 6726  __cil_tmp111 = (unsigned int )DisketteExtension;
 6727#line 952
 6728  __cil_tmp112 = __cil_tmp111 + 52;
 6729#line 952
 6730  __cil_tmp113 = (KSPIN_LOCK *)__cil_tmp112;
 6731#line 952
 6732  ExfInterlockedInsertTailList(__cil_tmp105, __cil_tmp110, __cil_tmp113);
 6733#line 957
 6734  __cil_tmp114 = (unsigned int )DisketteExtension;
 6735#line 957
 6736  __cil_tmp115 = __cil_tmp114 + 32;
 6737#line 957
 6738  __cil_tmp116 = (KSEMAPHORE *)__cil_tmp115;
 6739#line 957
 6740  KeReleaseSemaphore(__cil_tmp116, 0L, 1L, (unsigned char)0);
 6741  }
 6742#line 963
 6743  return (259L);
 6744}
 6745}
 6746#line 966 "floppy.c"
 6747NTSTATUS FloppyCreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
 6748{ unsigned int __cil_tmp3 ;
 6749  unsigned int __cil_tmp4 ;
 6750  unsigned int __cil_tmp5 ;
 6751  unsigned int __cil_tmp6 ;
 6752  unsigned int __cil_tmp7 ;
 6753  NTSTATUS *mem_8 ;
 6754  ULONG_PTR *mem_9 ;
 6755
 6756  {
 6757  {
 6758#line 999
 6759  while (1) {
 6760    while_14_continue: /* CIL Label */ ;
 6761    goto while_14_break;
 6762  }
 6763  while_14_break: /* CIL Label */ ;
 6764  }
 6765  {
 6766#line 1007
 6767  myStatus = 0L;
 6768#line 1009
 6769  __cil_tmp3 = (unsigned int )Irp;
 6770#line 1009
 6771  __cil_tmp4 = __cil_tmp3 + 24;
 6772#line 1009
 6773  mem_8 = (NTSTATUS *)__cil_tmp4;
 6774#line 1009
 6775  *mem_8 = 0L;
 6776#line 1010
 6777  __cil_tmp5 = 24 + 4;
 6778#line 1010
 6779  __cil_tmp6 = (unsigned int )Irp;
 6780#line 1010
 6781  __cil_tmp7 = __cil_tmp6 + __cil_tmp5;
 6782#line 1010
 6783  mem_9 = (ULONG_PTR *)__cil_tmp7;
 6784#line 1010
 6785  *mem_9 = 1UL;
 6786#line 1010
 6787  IofCompleteRequest(Irp, (char)0);
 6788  }
 6789#line 1012
 6790  return (0L);
 6791}
 6792}
 6793#line 1015 "floppy.c"
 6794NTSTATUS FloppyDeviceControl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
 6795{ PIO_STACK_LOCATION irpSp ;
 6796  PDISKETTE_EXTENSION disketteExtension ;
 6797  PDISK_GEOMETRY outputBuffer ;
 6798  NTSTATUS ntStatus ;
 6799  ULONG outputBufferLength ;
 6800  UCHAR i ;
 6801  DRIVE_MEDIA_TYPE lowestDriveMediaType ;
 6802  DRIVE_MEDIA_TYPE highestDriveMediaType ;
 6803  ULONG formatExParametersSize ;
 6804  PFORMAT_EX_PARAMETERS formatExParameters ;
 6805  NTSTATUS tmp ;
 6806  PMOUNTDEV_NAME mountName ;
 6807  PMOUNTDEV_UNIQUE_ID uniqueId ;
 6808  BOOLEAN tmp___0 ;
 6809  PMOUNTDEV_SUGGESTED_LINK_NAME suggestedName ;
 6810  WCHAR driveLetterNameBuffer[10] ;
 6811  RTL_QUERY_REGISTRY_TABLE queryTable[2] ;
 6812  PWSTR valueName ;
 6813  UNICODE_STRING driveLetterName ;
 6814  PVOID tmp___1 ;
 6815  int tmp___2 ;
 6816  unsigned int __cil_tmp24 ;
 6817  unsigned int __cil_tmp25 ;
 6818  PVOID __cil_tmp26 ;
 6819  unsigned int __cil_tmp27 ;
 6820  unsigned int __cil_tmp28 ;
 6821  unsigned int __cil_tmp29 ;
 6822  unsigned int __cil_tmp30 ;
 6823  unsigned int __cil_tmp31 ;
 6824  unsigned int __cil_tmp32 ;
 6825  unsigned int __cil_tmp33 ;
 6826  FAST_MUTEX *__cil_tmp34 ;
 6827  unsigned int __cil_tmp35 ;
 6828  unsigned int __cil_tmp36 ;
 6829  int __cil_tmp37 ;
 6830  int __cil_tmp38 ;
 6831  int __cil_tmp39 ;
 6832  unsigned long __cil_tmp40 ;
 6833  unsigned int __cil_tmp41 ;
 6834  unsigned int __cil_tmp42 ;
 6835  unsigned int __cil_tmp43 ;
 6836  unsigned int __cil_tmp44 ;
 6837  ULONG __cil_tmp45 ;
 6838  unsigned int __cil_tmp46 ;
 6839  unsigned int __cil_tmp47 ;
 6840  FAST_MUTEX *__cil_tmp48 ;
 6841  unsigned int __cil_tmp49 ;
 6842  unsigned int __cil_tmp50 ;
 6843  FAST_MUTEX *__cil_tmp51 ;
 6844  unsigned int __cil_tmp52 ;
 6845  unsigned int __cil_tmp53 ;
 6846  unsigned int __cil_tmp54 ;
 6847  unsigned int __cil_tmp55 ;
 6848  unsigned int __cil_tmp56 ;
 6849  unsigned int __cil_tmp57 ;
 6850  unsigned int __cil_tmp58 ;
 6851  unsigned int __cil_tmp59 ;
 6852  unsigned int __cil_tmp60 ;
 6853  BOOLEAN __cil_tmp61 ;
 6854  unsigned int __cil_tmp62 ;
 6855  unsigned int __cil_tmp63 ;
 6856  unsigned int __cil_tmp64 ;
 6857  unsigned int __cil_tmp65 ;
 6858  CHAR __cil_tmp66 ;
 6859  int __cil_tmp67 ;
 6860  int __cil_tmp68 ;
 6861  unsigned int __cil_tmp69 ;
 6862  unsigned int __cil_tmp70 ;
 6863  unsigned int __cil_tmp71 ;
 6864  unsigned int __cil_tmp72 ;
 6865  unsigned int __cil_tmp73 ;
 6866  unsigned int __cil_tmp74 ;
 6867  unsigned int __cil_tmp75 ;
 6868  unsigned int __cil_tmp76 ;
 6869  unsigned int __cil_tmp77 ;
 6870  unsigned int __cil_tmp78 ;
 6871  struct _IO_STACK_LOCATION *__cil_tmp79 ;
 6872  unsigned int __cil_tmp80 ;
 6873  unsigned int __cil_tmp81 ;
 6874  PDEVICE_OBJECT __cil_tmp82 ;
 6875  unsigned int __cil_tmp83 ;
 6876  unsigned int __cil_tmp84 ;
 6877  unsigned int __cil_tmp85 ;
 6878  unsigned int __cil_tmp86 ;
 6879  ULONG __cil_tmp87 ;
 6880  int __cil_tmp88 ;
 6881  unsigned long __cil_tmp89 ;
 6882  unsigned long __cil_tmp90 ;
 6883  unsigned long __cil_tmp91 ;
 6884  unsigned int __cil_tmp92 ;
 6885  unsigned int __cil_tmp93 ;
 6886  ULONG __cil_tmp94 ;
 6887  unsigned int __cil_tmp95 ;
 6888  unsigned int __cil_tmp96 ;
 6889  PVOID __cil_tmp97 ;
 6890  unsigned int __cil_tmp98 ;
 6891  unsigned int __cil_tmp99 ;
 6892  USHORT __cil_tmp100 ;
 6893  unsigned int __cil_tmp101 ;
 6894  unsigned int __cil_tmp102 ;
 6895  unsigned long __cil_tmp103 ;
 6896  unsigned int __cil_tmp104 ;
 6897  unsigned int __cil_tmp105 ;
 6898  ULONG __cil_tmp106 ;
 6899  unsigned int __cil_tmp107 ;
 6900  unsigned int __cil_tmp108 ;
 6901  unsigned int __cil_tmp109 ;
 6902  unsigned int __cil_tmp110 ;
 6903  unsigned int __cil_tmp111 ;
 6904  unsigned int __cil_tmp112 ;
 6905  unsigned int __cil_tmp113 ;
 6906  WCHAR *__cil_tmp114 ;
 6907  void *__cil_tmp115 ;
 6908  unsigned int __cil_tmp116 ;
 6909  unsigned int __cil_tmp117 ;
 6910  unsigned int __cil_tmp118 ;
 6911  PWSTR __cil_tmp119 ;
 6912  void const   *__cil_tmp120 ;
 6913  USHORT __cil_tmp121 ;
 6914  unsigned int __cil_tmp122 ;
 6915  unsigned int __cil_tmp123 ;
 6916  unsigned int __cil_tmp124 ;
 6917  unsigned int __cil_tmp125 ;
 6918  USHORT __cil_tmp126 ;
 6919  unsigned int __cil_tmp127 ;
 6920  unsigned int __cil_tmp128 ;
 6921  unsigned int __cil_tmp129 ;
 6922  unsigned int __cil_tmp130 ;
 6923  unsigned int __cil_tmp131 ;
 6924  PWSTR __cil_tmp132 ;
 6925  unsigned long __cil_tmp133 ;
 6926  unsigned int __cil_tmp134 ;
 6927  unsigned int __cil_tmp135 ;
 6928  ULONG __cil_tmp136 ;
 6929  unsigned int __cil_tmp137 ;
 6930  unsigned int __cil_tmp138 ;
 6931  PVOID __cil_tmp139 ;
 6932  unsigned int __cil_tmp140 ;
 6933  unsigned int __cil_tmp141 ;
 6934  USHORT __cil_tmp142 ;
 6935  unsigned int __cil_tmp143 ;
 6936  unsigned int __cil_tmp144 ;
 6937  unsigned long __cil_tmp145 ;
 6938  unsigned int __cil_tmp146 ;
 6939  unsigned int __cil_tmp147 ;
 6940  ULONG __cil_tmp148 ;
 6941  unsigned int __cil_tmp149 ;
 6942  unsigned int __cil_tmp150 ;
 6943  unsigned int __cil_tmp151 ;
 6944  unsigned int __cil_tmp152 ;
 6945  unsigned int __cil_tmp153 ;
 6946  unsigned int __cil_tmp154 ;
 6947  unsigned int __cil_tmp155 ;
 6948  UCHAR *__cil_tmp156 ;
 6949  void *__cil_tmp157 ;
 6950  unsigned int __cil_tmp158 ;
 6951  unsigned int __cil_tmp159 ;
 6952  unsigned int __cil_tmp160 ;
 6953  PWSTR __cil_tmp161 ;
 6954  void const   *__cil_tmp162 ;
 6955  USHORT __cil_tmp163 ;
 6956  unsigned int __cil_tmp164 ;
 6957  unsigned int __cil_tmp165 ;
 6958  unsigned int __cil_tmp166 ;
 6959  unsigned int __cil_tmp167 ;
 6960  USHORT __cil_tmp168 ;
 6961  unsigned int __cil_tmp169 ;
 6962  unsigned int __cil_tmp170 ;
 6963  int __cil_tmp171 ;
 6964  int __cil_tmp172 ;
 6965  int __cil_tmp173 ;
 6966  int __cil_tmp174 ;
 6967  int __cil_tmp175 ;
 6968  int __cil_tmp176 ;
 6969  int __cil_tmp177 ;
 6970  int __cil_tmp178 ;
 6971  unsigned long __cil_tmp179 ;
 6972  unsigned int __cil_tmp180 ;
 6973  unsigned int __cil_tmp181 ;
 6974  unsigned int __cil_tmp182 ;
 6975  unsigned int __cil_tmp183 ;
 6976  ULONG __cil_tmp184 ;
 6977  unsigned int __cil_tmp185 ;
 6978  unsigned int __cil_tmp186 ;
 6979  PVOID __cil_tmp187 ;
 6980  struct _FORMAT_PARAMETERS *__cil_tmp188 ;
 6981  int __cil_tmp189 ;
 6982  int __cil_tmp190 ;
 6983  int __cil_tmp191 ;
 6984  int __cil_tmp192 ;
 6985  int __cil_tmp193 ;
 6986  unsigned long __cil_tmp194 ;
 6987  unsigned int __cil_tmp195 ;
 6988  unsigned int __cil_tmp196 ;
 6989  unsigned int __cil_tmp197 ;
 6990  unsigned int __cil_tmp198 ;
 6991  ULONG __cil_tmp199 ;
 6992  unsigned long __cil_tmp200 ;
 6993  unsigned int __cil_tmp201 ;
 6994  unsigned int __cil_tmp202 ;
 6995  unsigned int __cil_tmp203 ;
 6996  unsigned int __cil_tmp204 ;
 6997  ULONG __cil_tmp205 ;
 6998  unsigned int __cil_tmp206 ;
 6999  unsigned int __cil_tmp207 ;
 7000  PVOID __cil_tmp208 ;
 7001  unsigned int __cil_tmp209 ;
 7002  unsigned int __cil_tmp210 ;
 7003  USHORT __cil_tmp211 ;
 7004  unsigned int __cil_tmp212 ;
 7005  unsigned int __cil_tmp213 ;
 7006  unsigned long __cil_tmp214 ;
 7007  FORMAT_EX_PARAMETERS *__cil_tmp215 ;
 7008  unsigned int __cil_tmp216 ;
 7009  unsigned int __cil_tmp217 ;
 7010  USHORT (*__cil_tmp218)[1] ;
 7011  long __cil_tmp219 ;
 7012  unsigned long __cil_tmp220 ;
 7013  unsigned int __cil_tmp221 ;
 7014  unsigned int __cil_tmp222 ;
 7015  unsigned int __cil_tmp223 ;
 7016  unsigned int __cil_tmp224 ;
 7017  ULONG __cil_tmp225 ;
 7018  unsigned int __cil_tmp226 ;
 7019  unsigned int __cil_tmp227 ;
 7020  USHORT __cil_tmp228 ;
 7021  int __cil_tmp229 ;
 7022  unsigned int __cil_tmp230 ;
 7023  unsigned int __cil_tmp231 ;
 7024  USHORT __cil_tmp232 ;
 7025  int __cil_tmp233 ;
 7026  int __cil_tmp234 ;
 7027  int __cil_tmp235 ;
 7028  int __cil_tmp236 ;
 7029  int __cil_tmp237 ;
 7030  int __cil_tmp238 ;
 7031  int __cil_tmp239 ;
 7032  int __cil_tmp240 ;
 7033  int __cil_tmp241 ;
 7034  int __cil_tmp242 ;
 7035  int __cil_tmp243 ;
 7036  int __cil_tmp244 ;
 7037  int __cil_tmp245 ;
 7038  int __cil_tmp246 ;
 7039  int __cil_tmp247 ;
 7040  unsigned int __cil_tmp248 ;
 7041  unsigned int __cil_tmp249 ;
 7042  UCHAR __cil_tmp250 ;
 7043  int __cil_tmp251 ;
 7044  PDRIVE_MEDIA_LIMITS __cil_tmp252 ;
 7045  unsigned int __cil_tmp253 ;
 7046  unsigned int __cil_tmp254 ;
 7047  unsigned int __cil_tmp255 ;
 7048  unsigned int __cil_tmp256 ;
 7049  UCHAR __cil_tmp257 ;
 7050  int __cil_tmp258 ;
 7051  PDRIVE_MEDIA_LIMITS __cil_tmp259 ;
 7052  unsigned int __cil_tmp260 ;
 7053  unsigned int __cil_tmp261 ;
 7054  unsigned long __cil_tmp262 ;
 7055  int __cil_tmp263 ;
 7056  int __cil_tmp264 ;
 7057  int __cil_tmp265 ;
 7058  int __cil_tmp266 ;
 7059  unsigned int __cil_tmp267 ;
 7060  unsigned int __cil_tmp268 ;
 7061  unsigned long __cil_tmp269 ;
 7062  unsigned long __cil_tmp270 ;
 7063  ULONG __cil_tmp271 ;
 7064  int __cil_tmp272 ;
 7065  int __cil_tmp273 ;
 7066  unsigned long __cil_tmp274 ;
 7067  unsigned long __cil_tmp275 ;
 7068  unsigned int __cil_tmp276 ;
 7069  unsigned int __cil_tmp277 ;
 7070  PVOID __cil_tmp278 ;
 7071  unsigned char __cil_tmp279 ;
 7072  int __cil_tmp280 ;
 7073  int __cil_tmp281 ;
 7074  unsigned int __cil_tmp282 ;
 7075  unsigned int __cil_tmp283 ;
 7076  int __cil_tmp284 ;
 7077  PDRIVE_MEDIA_CONSTANTS __cil_tmp285 ;
 7078  int __cil_tmp286 ;
 7079  PDRIVE_MEDIA_CONSTANTS __cil_tmp287 ;
 7080  unsigned int __cil_tmp288 ;
 7081  unsigned int __cil_tmp289 ;
 7082  UCHAR __cil_tmp290 ;
 7083  int __cil_tmp291 ;
 7084  int __cil_tmp292 ;
 7085  unsigned int __cil_tmp293 ;
 7086  unsigned int __cil_tmp294 ;
 7087  unsigned int __cil_tmp295 ;
 7088  unsigned int __cil_tmp296 ;
 7089  unsigned int __cil_tmp297 ;
 7090  unsigned int __cil_tmp298 ;
 7091  int __cil_tmp299 ;
 7092  PDRIVE_MEDIA_CONSTANTS __cil_tmp300 ;
 7093  unsigned int __cil_tmp301 ;
 7094  unsigned int __cil_tmp302 ;
 7095  UCHAR __cil_tmp303 ;
 7096  unsigned int __cil_tmp304 ;
 7097  unsigned int __cil_tmp305 ;
 7098  int __cil_tmp306 ;
 7099  PDRIVE_MEDIA_CONSTANTS __cil_tmp307 ;
 7100  unsigned int __cil_tmp308 ;
 7101  unsigned int __cil_tmp309 ;
 7102  UCHAR __cil_tmp310 ;
 7103  unsigned int __cil_tmp311 ;
 7104  unsigned int __cil_tmp312 ;
 7105  int __cil_tmp313 ;
 7106  PDRIVE_MEDIA_CONSTANTS __cil_tmp314 ;
 7107  unsigned int __cil_tmp315 ;
 7108  unsigned int __cil_tmp316 ;
 7109  USHORT __cil_tmp317 ;
 7110  unsigned int __cil_tmp318 ;
 7111  unsigned int __cil_tmp319 ;
 7112  unsigned int __cil_tmp320 ;
 7113  unsigned long __cil_tmp321 ;
 7114  unsigned int __cil_tmp322 ;
 7115  unsigned int __cil_tmp323 ;
 7116  unsigned int __cil_tmp324 ;
 7117  ULONG_PTR __cil_tmp325 ;
 7118  int __cil_tmp326 ;
 7119  int __cil_tmp327 ;
 7120  int __cil_tmp328 ;
 7121  unsigned long __cil_tmp329 ;
 7122  unsigned long __cil_tmp330 ;
 7123  KUSER_SHARED_DATA *__cil_tmp331 ;
 7124  unsigned int __cil_tmp332 ;
 7125  unsigned int __cil_tmp333 ;
 7126  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp334 ;
 7127  int __cil_tmp335 ;
 7128  unsigned int __cil_tmp336 ;
 7129  unsigned int __cil_tmp337 ;
 7130  ULONG __cil_tmp338 ;
 7131  unsigned long __cil_tmp339 ;
 7132  unsigned long __cil_tmp340 ;
 7133  unsigned int __cil_tmp341 ;
 7134  unsigned int __cil_tmp342 ;
 7135  ULONG __cil_tmp343 ;
 7136  enum _POOL_TYPE __cil_tmp344 ;
 7137  unsigned int __cil_tmp345 ;
 7138  unsigned long __cil_tmp346 ;
 7139  void *__cil_tmp347 ;
 7140  unsigned int __cil_tmp348 ;
 7141  void *__cil_tmp349 ;
 7142  unsigned int __cil_tmp350 ;
 7143  unsigned int __cil_tmp351 ;
 7144  unsigned int __cil_tmp352 ;
 7145  PWSTR __cil_tmp353 ;
 7146  void const   *__cil_tmp354 ;
 7147  unsigned int __cil_tmp355 ;
 7148  unsigned int __cil_tmp356 ;
 7149  USHORT __cil_tmp357 ;
 7150  unsigned int __cil_tmp358 ;
 7151  unsigned int __cil_tmp359 ;
 7152  unsigned int __cil_tmp360 ;
 7153  unsigned int __cil_tmp361 ;
 7154  unsigned int __cil_tmp362 ;
 7155  UNICODE_STRING *__cil_tmp363 ;
 7156  unsigned int __cil_tmp364 ;
 7157  unsigned int __cil_tmp365 ;
 7158  RTL_QUERY_REGISTRY_TABLE *__cil_tmp366 ;
 7159  void *__cil_tmp367 ;
 7160  unsigned int __cil_tmp368 ;
 7161  unsigned int __cil_tmp369 ;
 7162  unsigned int __cil_tmp370 ;
 7163  unsigned int __cil_tmp371 ;
 7164  unsigned int __cil_tmp372 ;
 7165  unsigned int __cil_tmp373 ;
 7166  unsigned int __cil_tmp374 ;
 7167  unsigned int __cil_tmp375 ;
 7168  unsigned int __cil_tmp376 ;
 7169  unsigned int __cil_tmp377 ;
 7170  WCHAR const   *__cil_tmp378 ;
 7171  unsigned int __cil_tmp379 ;
 7172  unsigned int __cil_tmp380 ;
 7173  RTL_QUERY_REGISTRY_TABLE *__cil_tmp381 ;
 7174  void *__cil_tmp382 ;
 7175  void *__cil_tmp383 ;
 7176  int __cil_tmp384 ;
 7177  void *__cil_tmp385 ;
 7178  UNICODE_STRING *__cil_tmp386 ;
 7179  USHORT __cil_tmp387 ;
 7180  int __cil_tmp388 ;
 7181  void *__cil_tmp389 ;
 7182  unsigned int __cil_tmp390 ;
 7183  PWSTR __cil_tmp391 ;
 7184  PWSTR __cil_tmp392 ;
 7185  WCHAR __cil_tmp393 ;
 7186  int __cil_tmp394 ;
 7187  void *__cil_tmp395 ;
 7188  unsigned int __cil_tmp396 ;
 7189  PWSTR __cil_tmp397 ;
 7190  PWSTR __cil_tmp398 ;
 7191  WCHAR __cil_tmp399 ;
 7192  int __cil_tmp400 ;
 7193  void *__cil_tmp401 ;
 7194  unsigned int __cil_tmp402 ;
 7195  PWSTR __cil_tmp403 ;
 7196  PWSTR __cil_tmp404 ;
 7197  WCHAR __cil_tmp405 ;
 7198  int __cil_tmp406 ;
 7199  void *__cil_tmp407 ;
 7200  unsigned int __cil_tmp408 ;
 7201  unsigned int __cil_tmp409 ;
 7202  PVOID __cil_tmp410 ;
 7203  unsigned int __cil_tmp411 ;
 7204  unsigned int __cil_tmp412 ;
 7205  unsigned int __cil_tmp413 ;
 7206  unsigned int __cil_tmp414 ;
 7207  unsigned int __cil_tmp415 ;
 7208  MOUNTDEV_SUGGESTED_LINK_NAME *__cil_tmp416 ;
 7209  unsigned int __cil_tmp417 ;
 7210  unsigned int __cil_tmp418 ;
 7211  WCHAR (*__cil_tmp419)[1] ;
 7212  long __cil_tmp420 ;
 7213  long __cil_tmp421 ;
 7214  unsigned int __cil_tmp422 ;
 7215  unsigned int __cil_tmp423 ;
 7216  unsigned int __cil_tmp424 ;
 7217  ULONG_PTR __cil_tmp425 ;
 7218  unsigned int __cil_tmp426 ;
 7219  unsigned int __cil_tmp427 ;
 7220  ULONG __cil_tmp428 ;
 7221  unsigned int __cil_tmp429 ;
 7222  unsigned int __cil_tmp430 ;
 7223  unsigned int __cil_tmp431 ;
 7224  void *__cil_tmp432 ;
 7225  WCHAR const   *__cil_tmp433 ;
 7226  WCHAR const   *__cil_tmp434 ;
 7227  void *__cil_tmp435 ;
 7228  unsigned int __cil_tmp436 ;
 7229  unsigned int __cil_tmp437 ;
 7230  unsigned int __cil_tmp438 ;
 7231  unsigned int __cil_tmp439 ;
 7232  WCHAR *__cil_tmp440 ;
 7233  void *__cil_tmp441 ;
 7234  void const   *__cil_tmp442 ;
 7235  unsigned int __cil_tmp443 ;
 7236  unsigned int __cil_tmp444 ;
 7237  unsigned int __cil_tmp445 ;
 7238  unsigned int __cil_tmp446 ;
 7239  unsigned int __cil_tmp447 ;
 7240  PWSTR __cil_tmp448 ;
 7241  PWSTR __cil_tmp449 ;
 7242  unsigned int __cil_tmp450 ;
 7243  unsigned int __cil_tmp451 ;
 7244  unsigned int __cil_tmp452 ;
 7245  unsigned int __cil_tmp453 ;
 7246  int __cil_tmp454 ;
 7247  int __cil_tmp455 ;
 7248  KUSER_SHARED_DATA *__cil_tmp456 ;
 7249  unsigned int __cil_tmp457 ;
 7250  unsigned int __cil_tmp458 ;
 7251  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp459 ;
 7252  int __cil_tmp460 ;
 7253  unsigned long __cil_tmp461 ;
 7254  unsigned int __cil_tmp462 ;
 7255  unsigned int __cil_tmp463 ;
 7256  ULONG __cil_tmp464 ;
 7257  unsigned int __cil_tmp465 ;
 7258  unsigned int __cil_tmp466 ;
 7259  unsigned int __cil_tmp467 ;
 7260  unsigned int __cil_tmp468 ;
 7261  CHAR __cil_tmp469 ;
 7262  int __cil_tmp470 ;
 7263  int __cil_tmp471 ;
 7264  unsigned int __cil_tmp472 ;
 7265  unsigned int __cil_tmp473 ;
 7266  unsigned int __cil_tmp474 ;
 7267  unsigned int __cil_tmp475 ;
 7268  unsigned int __cil_tmp476 ;
 7269  unsigned int __cil_tmp477 ;
 7270  unsigned int __cil_tmp478 ;
 7271  unsigned int __cil_tmp479 ;
 7272  unsigned int __cil_tmp480 ;
 7273  unsigned int __cil_tmp481 ;
 7274  struct _IO_STACK_LOCATION *__cil_tmp482 ;
 7275  unsigned int __cil_tmp483 ;
 7276  unsigned int __cil_tmp484 ;
 7277  PDEVICE_OBJECT __cil_tmp485 ;
 7278  unsigned int __cil_tmp486 ;
 7279  unsigned int __cil_tmp487 ;
 7280  int __cil_tmp488 ;
 7281  PVOID *mem_489 ;
 7282  struct _IO_STACK_LOCATION **mem_490 ;
 7283  BOOLEAN *mem_491 ;
 7284  ULONG *mem_492 ;
 7285  BOOLEAN *mem_493 ;
 7286  ULONG_PTR *mem_494 ;
 7287  NTSTATUS *mem_495 ;
 7288  BOOLEAN *mem_496 ;
 7289  CHAR *mem_497 ;
 7290  CHAR *mem_498 ;
 7291  struct _IO_STACK_LOCATION **mem_499 ;
 7292  struct _IO_STACK_LOCATION **mem_500 ;
 7293  PDEVICE_OBJECT *mem_501 ;
 7294  ULONG *mem_502 ;
 7295  ULONG *mem_503 ;
 7296  PVOID *mem_504 ;
 7297  USHORT *mem_505 ;
 7298  USHORT *mem_506 ;
 7299  USHORT *mem_507 ;
 7300  ULONG *mem_508 ;
 7301  ULONG_PTR *mem_509 ;
 7302  PWSTR *mem_510 ;
 7303  USHORT *mem_511 ;
 7304  USHORT *mem_512 ;
 7305  ULONG_PTR *mem_513 ;
 7306  PWSTR *mem_514 ;
 7307  ULONG *mem_515 ;
 7308  PVOID *mem_516 ;
 7309  USHORT *mem_517 ;
 7310  USHORT *mem_518 ;
 7311  USHORT *mem_519 ;
 7312  ULONG *mem_520 ;
 7313  ULONG_PTR *mem_521 ;
 7314  PWSTR *mem_522 ;
 7315  USHORT *mem_523 ;
 7316  USHORT *mem_524 ;
 7317  ULONG_PTR *mem_525 ;
 7318  ULONG *mem_526 ;
 7319  PVOID *mem_527 ;
 7320  ULONG *mem_528 ;
 7321  ULONG *mem_529 ;
 7322  PVOID *mem_530 ;
 7323  USHORT *mem_531 ;
 7324  ULONG *mem_532 ;
 7325  USHORT *mem_533 ;
 7326  USHORT *mem_534 ;
 7327  UCHAR *mem_535 ;
 7328  DRIVE_MEDIA_TYPE *mem_536 ;
 7329  UCHAR *mem_537 ;
 7330  DRIVE_MEDIA_TYPE *mem_538 ;
 7331  ULONG *mem_539 ;
 7332  PVOID *mem_540 ;
 7333  MEDIA_TYPE *mem_541 ;
 7334  MEDIA_TYPE *mem_542 ;
 7335  UCHAR *mem_543 ;
 7336  ULONG *mem_544 ;
 7337  LONG *mem_545 ;
 7338  UCHAR *mem_546 ;
 7339  ULONG *mem_547 ;
 7340  UCHAR *mem_548 ;
 7341  ULONG *mem_549 ;
 7342  USHORT *mem_550 ;
 7343  ULONG *mem_551 ;
 7344  ULONG_PTR *mem_552 ;
 7345  ULONG_PTR *mem_553 ;
 7346  ALTERNATIVE_ARCHITECTURE_TYPE *mem_554 ;
 7347  ULONG *mem_555 ;
 7348  ULONG *mem_556 ;
 7349  PWSTR *mem_557 ;
 7350  USHORT *mem_558 ;
 7351  PWSTR *mem_559 ;
 7352  USHORT *mem_560 ;
 7353  USHORT *mem_561 ;
 7354  ULONG *mem_562 ;
 7355  PWSTR *mem_563 ;
 7356  PVOID *mem_564 ;
 7357  USHORT *mem_565 ;
 7358  PWSTR *mem_566 ;
 7359  PWSTR *mem_567 ;
 7360  PWSTR *mem_568 ;
 7361  PVOID *mem_569 ;
 7362  BOOLEAN *mem_570 ;
 7363  USHORT *mem_571 ;
 7364  ULONG_PTR *mem_572 ;
 7365  ULONG_PTR *mem_573 ;
 7366  ULONG *mem_574 ;
 7367  ULONG_PTR *mem_575 ;
 7368  PWSTR *mem_576 ;
 7369  WCHAR *mem_577 ;
 7370  WCHAR *mem_578 ;
 7371  ALTERNATIVE_ARCHITECTURE_TYPE *mem_579 ;
 7372  ULONG *mem_580 ;
 7373  CHAR *mem_581 ;
 7374  CHAR *mem_582 ;
 7375  struct _IO_STACK_LOCATION **mem_583 ;
 7376  struct _IO_STACK_LOCATION **mem_584 ;
 7377  PDEVICE_OBJECT *mem_585 ;
 7378  NTSTATUS *mem_586 ;
 7379
 7380  {
 7381  {
 7382#line 1054
 7383  while (1) {
 7384    while_15_continue: /* CIL Label */ ;
 7385    goto while_15_break;
 7386  }
 7387  while_15_break: /* CIL Label */ ;
 7388  }
 7389  {
 7390#line 1056
 7391  __cil_tmp24 = (unsigned int )DeviceObject;
 7392#line 1056
 7393  __cil_tmp25 = __cil_tmp24 + 40;
 7394#line 1056
 7395  mem_489 = (PVOID *)__cil_tmp25;
 7396#line 1056
 7397  __cil_tmp26 = *mem_489;
 7398#line 1056
 7399  disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp26;
 7400#line 1057
 7401  __cil_tmp27 = 24 + 8;
 7402#line 1057
 7403  __cil_tmp28 = 0 + __cil_tmp27;
 7404#line 1057
 7405  __cil_tmp29 = 64 + __cil_tmp28;
 7406#line 1057
 7407  __cil_tmp30 = (unsigned int )Irp;
 7408#line 1057
 7409  __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
 7410#line 1057
 7411  mem_490 = (struct _IO_STACK_LOCATION **)__cil_tmp31;
 7412#line 1057
 7413  irpSp = *mem_490;
 7414#line 1062
 7415  __cil_tmp32 = (unsigned int )disketteExtension;
 7416#line 1062
 7417  __cil_tmp33 = __cil_tmp32 + 428;
 7418#line 1062
 7419  __cil_tmp34 = (FAST_MUTEX *)__cil_tmp33;
 7420#line 1062
 7421  ExAcquireFastMutex(__cil_tmp34);
 7422  }
 7423  {
 7424#line 1063
 7425  __cil_tmp35 = (unsigned int )disketteExtension;
 7426#line 1063
 7427  __cil_tmp36 = __cil_tmp35 + 14;
 7428  {
 7429#line 1063
 7430  mem_491 = (BOOLEAN *)__cil_tmp36;
 7431#line 1063
 7432  if (*mem_491) {
 7433    {
 7434#line 1070
 7435    __cil_tmp37 = 3 << 14;
 7436#line 1070
 7437    __cil_tmp38 = 50 << 16;
 7438#line 1070
 7439    __cil_tmp39 = __cil_tmp38 | __cil_tmp37;
 7440#line 1070
 7441    __cil_tmp40 = (unsigned long )__cil_tmp39;
 7442#line 1070
 7443    __cil_tmp41 = 0 + 8;
 7444#line 1070
 7445    __cil_tmp42 = 4 + __cil_tmp41;
 7446#line 1070
 7447    __cil_tmp43 = (unsigned int )irpSp;
 7448#line 1070
 7449    __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
 7450#line 1070
 7451    mem_492 = (ULONG *)__cil_tmp44;
 7452#line 1070
 7453    __cil_tmp45 = *mem_492;
 7454#line 1070
 7455    if (__cil_tmp45 != __cil_tmp40) {
 7456      {
 7457#line 1072
 7458      ntStatus = FloppyQueueRequest(disketteExtension, Irp);
 7459#line 1074
 7460      __cil_tmp46 = (unsigned int )disketteExtension;
 7461#line 1074
 7462      __cil_tmp47 = __cil_tmp46 + 428;
 7463#line 1074
 7464      __cil_tmp48 = (FAST_MUTEX *)__cil_tmp47;
 7465#line 1074
 7466      ExReleaseFastMutex(__cil_tmp48);
 7467      }
 7468#line 1075
 7469      return (ntStatus);
 7470    } else {
 7471
 7472    }
 7473    }
 7474  } else {
 7475
 7476  }
 7477  }
 7478  }
 7479  {
 7480#line 1078
 7481  __cil_tmp49 = (unsigned int )disketteExtension;
 7482#line 1078
 7483  __cil_tmp50 = __cil_tmp49 + 428;
 7484#line 1078
 7485  __cil_tmp51 = (FAST_MUTEX *)__cil_tmp50;
 7486#line 1078
 7487  ExReleaseFastMutex(__cil_tmp51);
 7488  }
 7489  {
 7490#line 1083
 7491  __cil_tmp52 = (unsigned int )disketteExtension;
 7492#line 1083
 7493  __cil_tmp53 = __cil_tmp52 + 13;
 7494  {
 7495#line 1083
 7496  mem_493 = (BOOLEAN *)__cil_tmp53;
 7497#line 1083
 7498  if (*mem_493) {
 7499    {
 7500#line 1085
 7501    __cil_tmp54 = 24 + 4;
 7502#line 1085
 7503    __cil_tmp55 = (unsigned int )Irp;
 7504#line 1085
 7505    __cil_tmp56 = __cil_tmp55 + __cil_tmp54;
 7506#line 1085
 7507    mem_494 = (ULONG_PTR *)__cil_tmp56;
 7508#line 1085
 7509    *mem_494 = 0UL;
 7510#line 1086
 7511    __cil_tmp57 = (unsigned int )Irp;
 7512#line 1086
 7513    __cil_tmp58 = __cil_tmp57 + 24;
 7514#line 1086
 7515    mem_495 = (NTSTATUS *)__cil_tmp58;
 7516#line 1086
 7517    *mem_495 = -1073741738L;
 7518#line 1087
 7519    myStatus = -1073741738L;
 7520#line 1088
 7521    IofCompleteRequest(Irp, (char)0);
 7522    }
 7523#line 1089
 7524    return (-1073741738L);
 7525  } else {
 7526
 7527  }
 7528  }
 7529  }
 7530  {
 7531#line 1095
 7532  __cil_tmp59 = (unsigned int )disketteExtension;
 7533#line 1095
 7534  __cil_tmp60 = __cil_tmp59 + 12;
 7535#line 1095
 7536  mem_496 = (BOOLEAN *)__cil_tmp60;
 7537#line 1095
 7538  __cil_tmp61 = *mem_496;
 7539#line 1095
 7540  if (! __cil_tmp61) {
 7541#line 1097
 7542    if (s == 1) {
 7543#line 1097
 7544      s = 3;
 7545    } else {
 7546      {
 7547#line 1098
 7548      assert(0);
 7549      }
 7550    }
 7551    {
 7552#line 1099
 7553    __cil_tmp62 = (unsigned int )Irp;
 7554#line 1099
 7555    __cil_tmp63 = __cil_tmp62 + 35;
 7556#line 1099
 7557    __cil_tmp64 = (unsigned int )Irp;
 7558#line 1099
 7559    __cil_tmp65 = __cil_tmp64 + 35;
 7560#line 1099
 7561    mem_497 = (CHAR *)__cil_tmp65;
 7562#line 1099
 7563    __cil_tmp66 = *mem_497;
 7564#line 1099
 7565    __cil_tmp67 = (int )__cil_tmp66;
 7566#line 1099
 7567    __cil_tmp68 = __cil_tmp67 + 1;
 7568#line 1099
 7569    mem_498 = (CHAR *)__cil_tmp63;
 7570#line 1099
 7571    *mem_498 = (char )__cil_tmp68;
 7572#line 1099
 7573    __cil_tmp69 = 24 + 8;
 7574#line 1099
 7575    __cil_tmp70 = 0 + __cil_tmp69;
 7576#line 1099
 7577    __cil_tmp71 = 64 + __cil_tmp70;
 7578#line 1099
 7579    __cil_tmp72 = (unsigned int )Irp;
 7580#line 1099
 7581    __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
 7582#line 1099
 7583    __cil_tmp74 = 24 + 8;
 7584#line 1099
 7585    __cil_tmp75 = 0 + __cil_tmp74;
 7586#line 1099
 7587    __cil_tmp76 = 64 + __cil_tmp75;
 7588#line 1099
 7589    __cil_tmp77 = (unsigned int )Irp;
 7590#line 1099
 7591    __cil_tmp78 = __cil_tmp77 + __cil_tmp76;
 7592#line 1099
 7593    mem_499 = (struct _IO_STACK_LOCATION **)__cil_tmp78;
 7594#line 1099
 7595    __cil_tmp79 = *mem_499;
 7596#line 1099
 7597    mem_500 = (struct _IO_STACK_LOCATION **)__cil_tmp73;
 7598#line 1099
 7599    *mem_500 = __cil_tmp79 + 1;
 7600#line 1100
 7601    __cil_tmp80 = (unsigned int )disketteExtension;
 7602#line 1100
 7603    __cil_tmp81 = __cil_tmp80 + 8;
 7604#line 1100
 7605    mem_501 = (PDEVICE_OBJECT *)__cil_tmp81;
 7606#line 1100
 7607    __cil_tmp82 = *mem_501;
 7608#line 1100
 7609    tmp = IofCallDriver(__cil_tmp82, Irp);
 7610    }
 7611#line 1100
 7612    return (tmp);
 7613  } else {
 7614
 7615  }
 7616  }
 7617  {
 7618#line 1103
 7619  __cil_tmp83 = 0 + 8;
 7620#line 1103
 7621  __cil_tmp84 = 4 + __cil_tmp83;
 7622#line 1103
 7623  __cil_tmp85 = (unsigned int )irpSp;
 7624#line 1103
 7625  __cil_tmp86 = __cil_tmp85 + __cil_tmp84;
 7626#line 1103
 7627  mem_502 = (ULONG *)__cil_tmp86;
 7628#line 1103
 7629  __cil_tmp87 = *mem_502;
 7630#line 1104
 7631  if ((int )__cil_tmp87 == (__cil_tmp90 | __cil_tmp89)) {
 7632    goto switch_16_exp_0;
 7633  } else {
 7634#line 1136
 7635    if ((int )__cil_tmp87 == 77UL << 16) {
 7636      goto switch_16_exp_1;
 7637    } else {
 7638#line 1172
 7639      if ((int )__cil_tmp87 == (__cil_tmp174 | __cil_tmp171)) {
 7640        goto switch_16_exp_2;
 7641      } else {
 7642#line 1173
 7643        if ((int )__cil_tmp87 == (__cil_tmp178 | __cil_tmp175)) {
 7644          goto switch_16_exp_3;
 7645        } else {
 7646#line 1241
 7647          if ((int )__cil_tmp87 == (__cil_tmp237 | __cil_tmp234)) {
 7648            goto switch_16_exp_4;
 7649          } else {
 7650#line 1242
 7651            if ((int )__cil_tmp87 == (__cil_tmp241 | __cil_tmp238)) {
 7652              goto switch_16_exp_5;
 7653            } else {
 7654#line 1243
 7655              if ((int )__cil_tmp87 == 7 << 16) {
 7656                goto switch_16_exp_6;
 7657              } else {
 7658#line 1244
 7659                if ((int )__cil_tmp87 == (__cil_tmp243 | __cil_tmp242)) {
 7660                  goto switch_16_exp_7;
 7661                } else {
 7662#line 1272
 7663                  if ((int )__cil_tmp87 == (__cil_tmp245 | __cil_tmp244)) {
 7664                    goto switch_16_exp_8;
 7665                  } else {
 7666#line 1273
 7667                    if ((int )__cil_tmp87 == (__cil_tmp247 | __cil_tmp246)) {
 7668                      goto switch_16_exp_9;
 7669                    } else {
 7670#line 1374
 7671                      if ((int )__cil_tmp87 == (__cil_tmp330 | __cil_tmp329)) {
 7672                        goto switch_16_exp_10;
 7673                      } else {
 7674#line 1472
 7675                        if ((int )__cil_tmp87 == (__cil_tmp455 | __cil_tmp454)) {
 7676                          goto switch_16_exp_11;
 7677                        } else {
 7678                          {
 7679                          goto switch_16_default;
 7680#line 1103
 7681                          if (0) {
 7682                            switch_16_exp_0: /* CIL Label */ 
 7683                            {
 7684                            __cil_tmp88 = 2 << 2;
 7685                            __cil_tmp89 = (unsigned long )__cil_tmp88;
 7686                            __cil_tmp90 = 77UL << 16;
 7687
 7688                            }
 7689                            {
 7690#line 1109
 7691                            while (1) {
 7692                              while_17_continue: /* CIL Label */ ;
 7693                              goto while_17_break;
 7694                            }
 7695                            while_17_break: /* CIL Label */ ;
 7696                            }
 7697                            {
 7698#line 1112
 7699                            __cil_tmp91 = (unsigned long )4U;
 7700#line 1112
 7701                            __cil_tmp92 = (unsigned int )irpSp;
 7702#line 1112
 7703                            __cil_tmp93 = __cil_tmp92 + 4;
 7704#line 1112
 7705                            mem_503 = (ULONG *)__cil_tmp93;
 7706#line 1112
 7707                            __cil_tmp94 = *mem_503;
 7708#line 1112
 7709                            if (__cil_tmp94 < __cil_tmp91) {
 7710#line 1115
 7711                              ntStatus = -1073741811L;
 7712                              goto switch_16_break;
 7713                            } else {
 7714
 7715                            }
 7716                            }
 7717#line 1119
 7718                            __cil_tmp95 = (unsigned int )Irp;
 7719#line 1119
 7720                            __cil_tmp96 = __cil_tmp95 + 12;
 7721#line 1119
 7722                            mem_504 = (PVOID *)__cil_tmp96;
 7723#line 1119
 7724                            __cil_tmp97 = *mem_504;
 7725#line 1119
 7726                            mountName = (struct _MOUNTDEV_NAME *)__cil_tmp97;
 7727#line 1120
 7728                            __cil_tmp98 = (unsigned int )disketteExtension;
 7729#line 1120
 7730                            __cil_tmp99 = __cil_tmp98 + 368;
 7731#line 1120
 7732                            mem_505 = (USHORT *)mountName;
 7733#line 1120
 7734                            mem_506 = (USHORT *)__cil_tmp99;
 7735#line 1120
 7736                            *mem_505 = *mem_506;
 7737                            {
 7738#line 1122
 7739                            mem_507 = (USHORT *)mountName;
 7740#line 1122
 7741                            __cil_tmp100 = *mem_507;
 7742#line 1122
 7743                            __cil_tmp101 = (unsigned int )__cil_tmp100;
 7744#line 1122
 7745                            __cil_tmp102 = 2U + __cil_tmp101;
 7746#line 1122
 7747                            __cil_tmp103 = (unsigned long )__cil_tmp102;
 7748#line 1122
 7749                            __cil_tmp104 = (unsigned int )irpSp;
 7750#line 1122
 7751                            __cil_tmp105 = __cil_tmp104 + 4;
 7752#line 1122
 7753                            mem_508 = (ULONG *)__cil_tmp105;
 7754#line 1122
 7755                            __cil_tmp106 = *mem_508;
 7756#line 1122
 7757                            if (__cil_tmp106 < __cil_tmp103) {
 7758#line 1125
 7759                              ntStatus = -2147483643L;
 7760#line 1126
 7761                              __cil_tmp107 = 24 + 4;
 7762#line 1126
 7763                              __cil_tmp108 = (unsigned int )Irp;
 7764#line 1126
 7765                              __cil_tmp109 = __cil_tmp108 + __cil_tmp107;
 7766#line 1126
 7767                              mem_509 = (ULONG_PTR *)__cil_tmp109;
 7768#line 1126
 7769                              *mem_509 = (unsigned long )4U;
 7770                              goto switch_16_break;
 7771                            } else {
 7772
 7773                            }
 7774                            }
 7775                            {
 7776#line 1131
 7777                            __cil_tmp110 = 0 * 2U;
 7778#line 1131
 7779                            __cil_tmp111 = 2 + __cil_tmp110;
 7780#line 1131
 7781                            __cil_tmp112 = (unsigned int )mountName;
 7782#line 1131
 7783                            __cil_tmp113 = __cil_tmp112 + __cil_tmp111;
 7784#line 1131
 7785                            __cil_tmp114 = (WCHAR *)__cil_tmp113;
 7786#line 1131
 7787                            __cil_tmp115 = (void *)__cil_tmp114;
 7788#line 1131
 7789                            __cil_tmp116 = 368 + 4;
 7790#line 1131
 7791                            __cil_tmp117 = (unsigned int )disketteExtension;
 7792#line 1131
 7793                            __cil_tmp118 = __cil_tmp117 + __cil_tmp116;
 7794#line 1131
 7795                            mem_510 = (PWSTR *)__cil_tmp118;
 7796#line 1131
 7797                            __cil_tmp119 = *mem_510;
 7798#line 1131
 7799                            __cil_tmp120 = (void const   *)__cil_tmp119;
 7800#line 1131
 7801                            mem_511 = (USHORT *)mountName;
 7802#line 1131
 7803                            __cil_tmp121 = *mem_511;
 7804#line 1131
 7805                            __cil_tmp122 = (unsigned int )__cil_tmp121;
 7806#line 1131
 7807                            memcpy(__cil_tmp115, __cil_tmp120, __cil_tmp122);
 7808#line 1133
 7809                            ntStatus = 0L;
 7810#line 1134
 7811                            __cil_tmp123 = 24 + 4;
 7812#line 1134
 7813                            __cil_tmp124 = (unsigned int )Irp;
 7814#line 1134
 7815                            __cil_tmp125 = __cil_tmp124 + __cil_tmp123;
 7816#line 1134
 7817                            mem_512 = (USHORT *)mountName;
 7818#line 1134
 7819                            __cil_tmp126 = *mem_512;
 7820#line 1134
 7821                            __cil_tmp127 = (unsigned int )__cil_tmp126;
 7822#line 1134
 7823                            __cil_tmp128 = 2U + __cil_tmp127;
 7824#line 1134
 7825                            mem_513 = (ULONG_PTR *)__cil_tmp125;
 7826#line 1134
 7827                            *mem_513 = (unsigned long )__cil_tmp128;
 7828                            }
 7829                            goto switch_16_break;
 7830                            switch_16_exp_1: /* CIL Label */ ;
 7831                            {
 7832#line 1142
 7833                            while (1) {
 7834                              while_18_continue: /* CIL Label */ ;
 7835                              goto while_18_break;
 7836                            }
 7837                            while_18_break: /* CIL Label */ ;
 7838                            }
 7839                            {
 7840#line 1144
 7841                            __cil_tmp129 = 376 + 4;
 7842#line 1144
 7843                            __cil_tmp130 = (unsigned int )disketteExtension;
 7844#line 1144
 7845                            __cil_tmp131 = __cil_tmp130 + __cil_tmp129;
 7846#line 1144
 7847                            mem_514 = (PWSTR *)__cil_tmp131;
 7848#line 1144
 7849                            __cil_tmp132 = *mem_514;
 7850#line 1144
 7851                            if (! __cil_tmp132) {
 7852#line 1148
 7853                              ntStatus = -1073741811L;
 7854                              goto switch_16_break;
 7855                            } else {
 7856                              {
 7857#line 1144
 7858                              __cil_tmp133 = (unsigned long )4U;
 7859#line 1144
 7860                              __cil_tmp134 = (unsigned int )irpSp;
 7861#line 1144
 7862                              __cil_tmp135 = __cil_tmp134 + 4;
 7863#line 1144
 7864                              mem_515 = (ULONG *)__cil_tmp135;
 7865#line 1144
 7866                              __cil_tmp136 = *mem_515;
 7867#line 1144
 7868                              if (__cil_tmp136 < __cil_tmp133) {
 7869#line 1148
 7870                                ntStatus = -1073741811L;
 7871                                goto switch_16_break;
 7872                              } else {
 7873
 7874                              }
 7875                              }
 7876                            }
 7877                            }
 7878#line 1152
 7879                            __cil_tmp137 = (unsigned int )Irp;
 7880#line 1152
 7881                            __cil_tmp138 = __cil_tmp137 + 12;
 7882#line 1152
 7883                            mem_516 = (PVOID *)__cil_tmp138;
 7884#line 1152
 7885                            __cil_tmp139 = *mem_516;
 7886#line 1152
 7887                            uniqueId = (struct _MOUNTDEV_UNIQUE_ID *)__cil_tmp139;
 7888#line 1153
 7889                            __cil_tmp140 = (unsigned int )disketteExtension;
 7890#line 1153
 7891                            __cil_tmp141 = __cil_tmp140 + 376;
 7892#line 1153
 7893                            mem_517 = (USHORT *)uniqueId;
 7894#line 1153
 7895                            mem_518 = (USHORT *)__cil_tmp141;
 7896#line 1153
 7897                            *mem_517 = *mem_518;
 7898                            {
 7899#line 1156
 7900                            mem_519 = (USHORT *)uniqueId;
 7901#line 1156
 7902                            __cil_tmp142 = *mem_519;
 7903#line 1156
 7904                            __cil_tmp143 = (unsigned int )__cil_tmp142;
 7905#line 1156
 7906                            __cil_tmp144 = 2U + __cil_tmp143;
 7907#line 1156
 7908                            __cil_tmp145 = (unsigned long )__cil_tmp144;
 7909#line 1156
 7910                            __cil_tmp146 = (unsigned int )irpSp;
 7911#line 1156
 7912                            __cil_tmp147 = __cil_tmp146 + 4;
 7913#line 1156
 7914                            mem_520 = (ULONG *)__cil_tmp147;
 7915#line 1156
 7916                            __cil_tmp148 = *mem_520;
 7917#line 1156
 7918                            if (__cil_tmp148 < __cil_tmp145) {
 7919#line 1159
 7920                              ntStatus = -2147483643L;
 7921#line 1160
 7922                              __cil_tmp149 = 24 + 4;
 7923#line 1160
 7924                              __cil_tmp150 = (unsigned int )Irp;
 7925#line 1160
 7926                              __cil_tmp151 = __cil_tmp150 + __cil_tmp149;
 7927#line 1160
 7928                              mem_521 = (ULONG_PTR *)__cil_tmp151;
 7929#line 1160
 7930                              *mem_521 = (unsigned long )4U;
 7931                              goto switch_16_break;
 7932                            } else {
 7933
 7934                            }
 7935                            }
 7936                            {
 7937#line 1166
 7938                            __cil_tmp152 = 0 * 1U;
 7939#line 1166
 7940                            __cil_tmp153 = 2 + __cil_tmp152;
 7941#line 1166
 7942                            __cil_tmp154 = (unsigned int )uniqueId;
 7943#line 1166
 7944                            __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
 7945#line 1166
 7946                            __cil_tmp156 = (UCHAR *)__cil_tmp155;
 7947#line 1166
 7948                            __cil_tmp157 = (void *)__cil_tmp156;
 7949#line 1166
 7950                            __cil_tmp158 = 376 + 4;
 7951#line 1166
 7952                            __cil_tmp159 = (unsigned int )disketteExtension;
 7953#line 1166
 7954                            __cil_tmp160 = __cil_tmp159 + __cil_tmp158;
 7955#line 1166
 7956                            mem_522 = (PWSTR *)__cil_tmp160;
 7957#line 1166
 7958                            __cil_tmp161 = *mem_522;
 7959#line 1166
 7960                            __cil_tmp162 = (void const   *)__cil_tmp161;
 7961#line 1166
 7962                            mem_523 = (USHORT *)uniqueId;
 7963#line 1166
 7964                            __cil_tmp163 = *mem_523;
 7965#line 1166
 7966                            __cil_tmp164 = (unsigned int )__cil_tmp163;
 7967#line 1166
 7968                            memcpy(__cil_tmp157, __cil_tmp162, __cil_tmp164);
 7969#line 1168
 7970                            ntStatus = 0L;
 7971#line 1169
 7972                            __cil_tmp165 = 24 + 4;
 7973#line 1169
 7974                            __cil_tmp166 = (unsigned int )Irp;
 7975#line 1169
 7976                            __cil_tmp167 = __cil_tmp166 + __cil_tmp165;
 7977#line 1169
 7978                            mem_524 = (USHORT *)uniqueId;
 7979#line 1169
 7980                            __cil_tmp168 = *mem_524;
 7981#line 1169
 7982                            __cil_tmp169 = (unsigned int )__cil_tmp168;
 7983#line 1169
 7984                            __cil_tmp170 = 2U + __cil_tmp169;
 7985#line 1169
 7986                            mem_525 = (ULONG_PTR *)__cil_tmp167;
 7987#line 1169
 7988                            *mem_525 = (unsigned long )__cil_tmp170;
 7989                            }
 7990                            goto switch_16_break;
 7991                            switch_16_exp_2: /* CIL Label */ 
 7992                            {
 7993                            __cil_tmp171 = 6 << 2;
 7994                            __cil_tmp172 = 3 << 14;
 7995                            __cil_tmp173 = 7 << 16;
 7996                            __cil_tmp174 = __cil_tmp173 | __cil_tmp172;
 7997
 7998                            }
 7999                            switch_16_exp_3: /* CIL Label */ 
 8000                            {
 8001                            __cil_tmp175 = 11 << 2;
 8002                            __cil_tmp176 = 3 << 14;
 8003                            __cil_tmp177 = 7 << 16;
 8004                            __cil_tmp178 = __cil_tmp177 | __cil_tmp176;
 8005
 8006                            }
 8007                            {
 8008#line 1181
 8009                            __cil_tmp179 = (unsigned long )48U;
 8010#line 1181
 8011                            __cil_tmp180 = 0 + 4;
 8012#line 1181
 8013                            __cil_tmp181 = 4 + __cil_tmp180;
 8014#line 1181
 8015                            __cil_tmp182 = (unsigned int )irpSp;
 8016#line 1181
 8017                            __cil_tmp183 = __cil_tmp182 + __cil_tmp181;
 8018#line 1181
 8019                            mem_526 = (ULONG *)__cil_tmp183;
 8020#line 1181
 8021                            __cil_tmp184 = *mem_526;
 8022#line 1181
 8023                            if (__cil_tmp184 < __cil_tmp179) {
 8024                              {
 8025#line 1187
 8026                              while (1) {
 8027                                while_19_continue: /* CIL Label */ ;
 8028                                goto while_19_break;
 8029                              }
 8030                              while_19_break: /* CIL Label */ ;
 8031                              }
 8032#line 1189
 8033                              ntStatus = -1073741811L;
 8034                              goto switch_16_break;
 8035                            } else {
 8036
 8037                            }
 8038                            }
 8039                            {
 8040#line 1197
 8041                            __cil_tmp185 = (unsigned int )Irp;
 8042#line 1197
 8043                            __cil_tmp186 = __cil_tmp185 + 12;
 8044#line 1197
 8045                            mem_527 = (PVOID *)__cil_tmp186;
 8046#line 1197
 8047                            __cil_tmp187 = *mem_527;
 8048#line 1197
 8049                            __cil_tmp188 = (struct _FORMAT_PARAMETERS *)__cil_tmp187;
 8050#line 1197
 8051                            tmp___0 = FlCheckFormatParameters(disketteExtension, __cil_tmp188);
 8052                            }
 8053#line 1197
 8054                            if (! tmp___0) {
 8055                              {
 8056#line 1204
 8057                              while (1) {
 8058                                while_20_continue: /* CIL Label */ ;
 8059                                goto while_20_break;
 8060                              }
 8061                              while_20_break: /* CIL Label */ ;
 8062                              }
 8063#line 1206
 8064                              ntStatus = -1073741811L;
 8065                              goto switch_16_break;
 8066                            } else {
 8067
 8068                            }
 8069                            {
 8070#line 1214
 8071                            __cil_tmp189 = 11 << 2;
 8072#line 1214
 8073                            __cil_tmp190 = 3 << 14;
 8074#line 1214
 8075                            __cil_tmp191 = 7 << 16;
 8076#line 1214
 8077                            __cil_tmp192 = __cil_tmp191 | __cil_tmp190;
 8078#line 1214
 8079                            __cil_tmp193 = __cil_tmp192 | __cil_tmp189;
 8080#line 1214
 8081                            __cil_tmp194 = (unsigned long )__cil_tmp193;
 8082#line 1214
 8083                            __cil_tmp195 = 0 + 8;
 8084#line 1214
 8085                            __cil_tmp196 = 4 + __cil_tmp195;
 8086#line 1214
 8087                            __cil_tmp197 = (unsigned int )irpSp;
 8088#line 1214
 8089                            __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
 8090#line 1214
 8091                            mem_528 = (ULONG *)__cil_tmp198;
 8092#line 1214
 8093                            __cil_tmp199 = *mem_528;
 8094#line 1214
 8095                            if (__cil_tmp199 == __cil_tmp194) {
 8096                              {
 8097#line 1217
 8098                              __cil_tmp200 = (unsigned long )56U;
 8099#line 1217
 8100                              __cil_tmp201 = 0 + 4;
 8101#line 1217
 8102                              __cil_tmp202 = 4 + __cil_tmp201;
 8103#line 1217
 8104                              __cil_tmp203 = (unsigned int )irpSp;
 8105#line 1217
 8106                              __cil_tmp204 = __cil_tmp203 + __cil_tmp202;
 8107#line 1217
 8108                              mem_529 = (ULONG *)__cil_tmp204;
 8109#line 1217
 8110                              __cil_tmp205 = *mem_529;
 8111#line 1217
 8112                              if (__cil_tmp205 < __cil_tmp200) {
 8113#line 1220
 8114                                ntStatus = -1073741811L;
 8115                                goto switch_16_break;
 8116                              } else {
 8117
 8118                              }
 8119                              }
 8120#line 1224
 8121                              __cil_tmp206 = (unsigned int )Irp;
 8122#line 1224
 8123                              __cil_tmp207 = __cil_tmp206 + 12;
 8124#line 1224
 8125                              mem_530 = (PVOID *)__cil_tmp207;
 8126#line 1224
 8127                              __cil_tmp208 = *mem_530;
 8128#line 1224
 8129                              formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp208;
 8130#line 1226
 8131                              __cil_tmp209 = (unsigned int )formatExParameters;
 8132#line 1226
 8133                              __cil_tmp210 = __cil_tmp209 + 50;
 8134#line 1226
 8135                              mem_531 = (USHORT *)__cil_tmp210;
 8136#line 1226
 8137                              __cil_tmp211 = *mem_531;
 8138#line 1226
 8139                              __cil_tmp212 = (unsigned int )__cil_tmp211;
 8140#line 1226
 8141                              __cil_tmp213 = __cil_tmp212 * 2U;
 8142#line 1226
 8143                              __cil_tmp214 = (unsigned long )__cil_tmp213;
 8144#line 1226
 8145                              __cil_tmp215 = (FORMAT_EX_PARAMETERS *)0;
 8146#line 1226
 8147                              __cil_tmp216 = (unsigned int )__cil_tmp215;
 8148#line 1226
 8149                              __cil_tmp217 = __cil_tmp216 + 52;
 8150#line 1226
 8151                              __cil_tmp218 = (USHORT (*)[1])__cil_tmp217;
 8152#line 1226
 8153                              __cil_tmp219 = (long )__cil_tmp218;
 8154#line 1226
 8155                              __cil_tmp220 = (unsigned long )__cil_tmp219;
 8156#line 1226
 8157                              formatExParametersSize = __cil_tmp220 + __cil_tmp214;
 8158                              {
 8159#line 1230
 8160                              __cil_tmp221 = 0 + 4;
 8161#line 1230
 8162                              __cil_tmp222 = 4 + __cil_tmp221;
 8163#line 1230
 8164                              __cil_tmp223 = (unsigned int )irpSp;
 8165#line 1230
 8166                              __cil_tmp224 = __cil_tmp223 + __cil_tmp222;
 8167#line 1230
 8168                              mem_532 = (ULONG *)__cil_tmp224;
 8169#line 1230
 8170                              __cil_tmp225 = *mem_532;
 8171#line 1230
 8172                              if (__cil_tmp225 < formatExParametersSize) {
 8173#line 1235
 8174                                ntStatus = -1073741811L;
 8175                                goto switch_16_break;
 8176                              } else {
 8177                                {
 8178#line 1230
 8179                                __cil_tmp226 = (unsigned int )formatExParameters;
 8180#line 1230
 8181                                __cil_tmp227 = __cil_tmp226 + 48;
 8182#line 1230
 8183                                mem_533 = (USHORT *)__cil_tmp227;
 8184#line 1230
 8185                                __cil_tmp228 = *mem_533;
 8186#line 1230
 8187                                __cil_tmp229 = (int )__cil_tmp228;
 8188#line 1230
 8189                                if (__cil_tmp229 >= 256) {
 8190#line 1235
 8191                                  ntStatus = -1073741811L;
 8192                                  goto switch_16_break;
 8193                                } else {
 8194                                  {
 8195#line 1230
 8196                                  __cil_tmp230 = (unsigned int )formatExParameters;
 8197#line 1230
 8198                                  __cil_tmp231 = __cil_tmp230 + 50;
 8199#line 1230
 8200                                  mem_534 = (USHORT *)__cil_tmp231;
 8201#line 1230
 8202                                  __cil_tmp232 = *mem_534;
 8203#line 1230
 8204                                  __cil_tmp233 = (int )__cil_tmp232;
 8205#line 1230
 8206                                  if (__cil_tmp233 >= 256) {
 8207#line 1235
 8208                                    ntStatus = -1073741811L;
 8209                                    goto switch_16_break;
 8210                                  } else {
 8211
 8212                                  }
 8213                                  }
 8214                                }
 8215                                }
 8216                              }
 8217                              }
 8218                            } else {
 8219
 8220                            }
 8221                            }
 8222                            switch_16_exp_4: /* CIL Label */ 
 8223                            {
 8224                            __cil_tmp234 = 512 << 2;
 8225                            __cil_tmp235 = 1 << 14;
 8226                            __cil_tmp236 = 7 << 16;
 8227                            __cil_tmp237 = __cil_tmp236 | __cil_tmp235;
 8228
 8229                            }
 8230                            switch_16_exp_5: /* CIL Label */ 
 8231                            {
 8232                            __cil_tmp238 = 512 << 2;
 8233                            __cil_tmp239 = 1 << 14;
 8234                            __cil_tmp240 = 45 << 16;
 8235                            __cil_tmp241 = __cil_tmp240 | __cil_tmp239;
 8236
 8237                            }
 8238                            switch_16_exp_6: /* CIL Label */ ;
 8239                            switch_16_exp_7: /* CIL Label */ 
 8240                            {
 8241                            __cil_tmp242 = 9 << 2;
 8242                            __cil_tmp243 = 7 << 16;
 8243
 8244                            }
 8245                            {
 8246#line 1267
 8247                            while (1) {
 8248                              while_21_continue: /* CIL Label */ ;
 8249                              goto while_21_break;
 8250                            }
 8251                            while_21_break: /* CIL Label */ ;
 8252                            }
 8253                            {
 8254#line 1269
 8255                            ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
 8256                            }
 8257                            goto switch_16_break;
 8258                            switch_16_exp_8: /* CIL Label */ 
 8259                            {
 8260                            __cil_tmp244 = 768 << 2;
 8261                            __cil_tmp245 = 7 << 16;
 8262
 8263                            }
 8264                            switch_16_exp_9: /* CIL Label */ 
 8265                            {
 8266                            __cil_tmp246 = 768 << 2;
 8267                            __cil_tmp247 = 45 << 16;
 8268
 8269                            }
 8270                            {
 8271#line 1279
 8272                            while (1) {
 8273                              while_22_continue: /* CIL Label */ ;
 8274                              goto while_22_break;
 8275                            }
 8276                            while_22_break: /* CIL Label */ ;
 8277                            }
 8278#line 1281
 8279                            __cil_tmp248 = (unsigned int )disketteExtension;
 8280#line 1281
 8281                            __cil_tmp249 = __cil_tmp248 + 174;
 8282#line 1281
 8283                            mem_535 = (UCHAR *)__cil_tmp249;
 8284#line 1281
 8285                            __cil_tmp250 = *mem_535;
 8286#line 1281
 8287                            __cil_tmp251 = (int )__cil_tmp250;
 8288#line 1281
 8289                            __cil_tmp252 = DriveMediaLimits + __cil_tmp251;
 8290#line 1281
 8291                            __cil_tmp253 = (unsigned int )__cil_tmp252;
 8292#line 1281
 8293                            __cil_tmp254 = __cil_tmp253 + 32;
 8294#line 1281
 8295                            mem_536 = (DRIVE_MEDIA_TYPE *)__cil_tmp254;
 8296#line 1281
 8297                            lowestDriveMediaType = *mem_536;
 8298#line 1283
 8299                            __cil_tmp255 = (unsigned int )disketteExtension;
 8300#line 1283
 8301                            __cil_tmp256 = __cil_tmp255 + 174;
 8302#line 1283
 8303                            mem_537 = (UCHAR *)__cil_tmp256;
 8304#line 1283
 8305                            __cil_tmp257 = *mem_537;
 8306#line 1283
 8307                            __cil_tmp258 = (int )__cil_tmp257;
 8308#line 1283
 8309                            __cil_tmp259 = DriveMediaLimits + __cil_tmp258;
 8310#line 1283
 8311                            mem_538 = (DRIVE_MEDIA_TYPE *)__cil_tmp259;
 8312#line 1283
 8313                            highestDriveMediaType = *mem_538;
 8314#line 1286
 8315                            __cil_tmp260 = (unsigned int )irpSp;
 8316#line 1286
 8317                            __cil_tmp261 = __cil_tmp260 + 4;
 8318#line 1286
 8319                            mem_539 = (ULONG *)__cil_tmp261;
 8320#line 1286
 8321                            outputBufferLength = *mem_539;
 8322                            {
 8323#line 1294
 8324                            __cil_tmp262 = (unsigned long )52U;
 8325#line 1294
 8326                            if (outputBufferLength < __cil_tmp262) {
 8327                              {
 8328#line 1299
 8329                              while (1) {
 8330                                while_23_continue: /* CIL Label */ ;
 8331                                goto while_23_break;
 8332                              }
 8333                              while_23_break: /* CIL Label */ ;
 8334                              }
 8335#line 1301
 8336                              ntStatus = -1073741789L;
 8337                              goto switch_16_break;
 8338                            } else {
 8339
 8340                            }
 8341                            }
 8342#line 1311
 8343                            ntStatus = 0L;
 8344                            {
 8345#line 1313
 8346                            __cil_tmp263 = (int )lowestDriveMediaType;
 8347#line 1313
 8348                            __cil_tmp264 = (int )highestDriveMediaType;
 8349#line 1313
 8350                            __cil_tmp265 = __cil_tmp264 - __cil_tmp263;
 8351#line 1313
 8352                            __cil_tmp266 = __cil_tmp265 + 1;
 8353#line 1313
 8354                            __cil_tmp267 = (unsigned int )__cil_tmp266;
 8355#line 1313
 8356                            __cil_tmp268 = 52U * __cil_tmp267;
 8357#line 1313
 8358                            __cil_tmp269 = (unsigned long )__cil_tmp268;
 8359#line 1313
 8360                            if (outputBufferLength < __cil_tmp269) {
 8361                              {
 8362#line 1324
 8363                              while (1) {
 8364                                while_24_continue: /* CIL Label */ ;
 8365                                goto while_24_break;
 8366                              }
 8367                              while_24_break: /* CIL Label */ ;
 8368                              }
 8369#line 1326
 8370                              ntStatus = -2147483643L;
 8371#line 1328
 8372                              __cil_tmp270 = (unsigned long )52U;
 8373#line 1328
 8374                              __cil_tmp271 = outputBufferLength / __cil_tmp270;
 8375#line 1328
 8376                              __cil_tmp272 = (int )lowestDriveMediaType;
 8377#line 1328
 8378                              __cil_tmp273 = __cil_tmp272 - 1;
 8379#line 1328
 8380                              __cil_tmp274 = (unsigned long )__cil_tmp273;
 8381#line 1328
 8382                              __cil_tmp275 = __cil_tmp274 + __cil_tmp271;
 8383#line 1328
 8384                              highestDriveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp275;
 8385                            } else {
 8386
 8387                            }
 8388                            }
 8389#line 1334
 8390                            __cil_tmp276 = (unsigned int )Irp;
 8391#line 1334
 8392                            __cil_tmp277 = __cil_tmp276 + 12;
 8393#line 1334
 8394                            mem_540 = (PVOID *)__cil_tmp277;
 8395#line 1334
 8396                            __cil_tmp278 = *mem_540;
 8397#line 1334
 8398                            outputBuffer = (struct _DISK_GEOMETRY *)__cil_tmp278;
 8399#line 1336
 8400                            i = (unsigned char )lowestDriveMediaType;
 8401                            {
 8402#line 1336
 8403                            while (1) {
 8404                              while_25_continue: /* CIL Label */ ;
 8405                              {
 8406#line 1336
 8407                              __cil_tmp279 = (unsigned char )highestDriveMediaType;
 8408#line 1336
 8409                              __cil_tmp280 = (int )__cil_tmp279;
 8410#line 1336
 8411                              __cil_tmp281 = (int )i;
 8412#line 1336
 8413                              if (__cil_tmp281 <= __cil_tmp280) {
 8414
 8415                              } else {
 8416                                goto while_25_break;
 8417                              }
 8418                              }
 8419#line 1341
 8420                              __cil_tmp282 = (unsigned int )outputBuffer;
 8421#line 1341
 8422                              __cil_tmp283 = __cil_tmp282 + 8;
 8423#line 1341
 8424                              __cil_tmp284 = (int )i;
 8425#line 1341
 8426                              __cil_tmp285 = DriveMediaConstants + __cil_tmp284;
 8427#line 1341
 8428                              mem_541 = (MEDIA_TYPE *)__cil_tmp283;
 8429#line 1341
 8430                              mem_542 = (MEDIA_TYPE *)__cil_tmp285;
 8431#line 1341
 8432                              *mem_541 = *mem_542;
 8433#line 1342
 8434                              __cil_tmp286 = (int )i;
 8435#line 1342
 8436                              __cil_tmp287 = DriveMediaConstants + __cil_tmp286;
 8437#line 1342
 8438                              __cil_tmp288 = (unsigned int )__cil_tmp287;
 8439#line 1342
 8440                              __cil_tmp289 = __cil_tmp288 + 48;
 8441#line 1342
 8442                              mem_543 = (UCHAR *)__cil_tmp289;
 8443#line 1342
 8444                              __cil_tmp290 = *mem_543;
 8445#line 1342
 8446                              __cil_tmp291 = (int )__cil_tmp290;
 8447#line 1342
 8448                              __cil_tmp292 = __cil_tmp291 + 1;
 8449#line 1342
 8450                              mem_544 = (ULONG *)outputBuffer;
 8451#line 1342
 8452                              *mem_544 = (unsigned long )__cil_tmp292;
 8453#line 1344
 8454                              __cil_tmp293 = 0 + 4;
 8455#line 1344
 8456                              __cil_tmp294 = 0 + __cil_tmp293;
 8457#line 1344
 8458                              __cil_tmp295 = (unsigned int )outputBuffer;
 8459#line 1344
 8460                              __cil_tmp296 = __cil_tmp295 + __cil_tmp294;
 8461#line 1344
 8462                              mem_545 = (LONG *)__cil_tmp296;
 8463#line 1344
 8464                              *mem_545 = 0L;
 8465#line 1345
 8466                              __cil_tmp297 = (unsigned int )outputBuffer;
 8467#line 1345
 8468                              __cil_tmp298 = __cil_tmp297 + 40;
 8469#line 1345
 8470                              __cil_tmp299 = (int )i;
 8471#line 1345
 8472                              __cil_tmp300 = DriveMediaConstants + __cil_tmp299;
 8473#line 1345
 8474                              __cil_tmp301 = (unsigned int )__cil_tmp300;
 8475#line 1345
 8476                              __cil_tmp302 = __cil_tmp301 + 51;
 8477#line 1345
 8478                              mem_546 = (UCHAR *)__cil_tmp302;
 8479#line 1345
 8480                              __cil_tmp303 = *mem_546;
 8481#line 1345
 8482                              mem_547 = (ULONG *)__cil_tmp298;
 8483#line 1345
 8484                              *mem_547 = (unsigned long )__cil_tmp303;
 8485#line 1347
 8486                              __cil_tmp304 = (unsigned int )outputBuffer;
 8487#line 1347
 8488                              __cil_tmp305 = __cil_tmp304 + 44;
 8489#line 1347
 8490                              __cil_tmp306 = (int )i;
 8491#line 1347
 8492                              __cil_tmp307 = DriveMediaConstants + __cil_tmp306;
 8493#line 1347
 8494                              __cil_tmp308 = (unsigned int )__cil_tmp307;
 8495#line 1347
 8496                              __cil_tmp309 = __cil_tmp308 + 38;
 8497#line 1347
 8498                              mem_548 = (UCHAR *)__cil_tmp309;
 8499#line 1347
 8500                              __cil_tmp310 = *mem_548;
 8501#line 1347
 8502                              mem_549 = (ULONG *)__cil_tmp305;
 8503#line 1347
 8504                              *mem_549 = (unsigned long )__cil_tmp310;
 8505#line 1349
 8506                              __cil_tmp311 = (unsigned int )outputBuffer;
 8507#line 1349
 8508                              __cil_tmp312 = __cil_tmp311 + 48;
 8509#line 1349
 8510                              __cil_tmp313 = (int )i;
 8511#line 1349
 8512                              __cil_tmp314 = DriveMediaConstants + __cil_tmp313;
 8513#line 1349
 8514                              __cil_tmp315 = (unsigned int )__cil_tmp314;
 8515#line 1349
 8516                              __cil_tmp316 = __cil_tmp315 + 36;
 8517#line 1349
 8518                              mem_550 = (USHORT *)__cil_tmp316;
 8519#line 1349
 8520                              __cil_tmp317 = *mem_550;
 8521#line 1349
 8522                              mem_551 = (ULONG *)__cil_tmp312;
 8523#line 1349
 8524                              *mem_551 = (unsigned long )__cil_tmp317;
 8525                              {
 8526#line 1367
 8527                              while (1) {
 8528                                while_26_continue: /* CIL Label */ ;
 8529                                goto while_26_break;
 8530                              }
 8531                              while_26_break: /* CIL Label */ ;
 8532                              }
 8533#line 1368
 8534                              outputBuffer = outputBuffer + 1;
 8535#line 1370
 8536                              __cil_tmp318 = 24 + 4;
 8537#line 1370
 8538                              __cil_tmp319 = (unsigned int )Irp;
 8539#line 1370
 8540                              __cil_tmp320 = __cil_tmp319 + __cil_tmp318;
 8541#line 1370
 8542                              __cil_tmp321 = (unsigned long )52U;
 8543#line 1370
 8544                              __cil_tmp322 = 24 + 4;
 8545#line 1370
 8546                              __cil_tmp323 = (unsigned int )Irp;
 8547#line 1370
 8548                              __cil_tmp324 = __cil_tmp323 + __cil_tmp322;
 8549#line 1370
 8550                              mem_552 = (ULONG_PTR *)__cil_tmp324;
 8551#line 1370
 8552                              __cil_tmp325 = *mem_552;
 8553#line 1370
 8554                              mem_553 = (ULONG_PTR *)__cil_tmp320;
 8555#line 1370
 8556                              *mem_553 = __cil_tmp325 + __cil_tmp321;
 8557#line 1336
 8558                              __cil_tmp326 = (int )i;
 8559#line 1336
 8560                              __cil_tmp327 = __cil_tmp326 + 1;
 8561#line 1336
 8562                              i = (unsigned char )__cil_tmp327;
 8563                            }
 8564                            while_25_break: /* CIL Label */ ;
 8565                            }
 8566                            goto switch_16_break;
 8567                            switch_16_exp_10: /* CIL Label */ 
 8568                            {
 8569                            __cil_tmp328 = 3 << 2;
 8570                            __cil_tmp329 = (unsigned long )__cil_tmp328;
 8571                            __cil_tmp330 = 77UL << 16;
 8572
 8573                            }
 8574                            {
 8575#line 1378
 8576                            __cil_tmp331 = (KUSER_SHARED_DATA * const  )4292804608U;
 8577#line 1378
 8578                            __cil_tmp332 = (unsigned int )__cil_tmp331;
 8579#line 1378
 8580                            __cil_tmp333 = __cil_tmp332 + 732;
 8581#line 1378
 8582                            mem_554 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp333;
 8583#line 1378
 8584                            __cil_tmp334 = *mem_554;
 8585#line 1378
 8586                            __cil_tmp335 = (int )__cil_tmp334;
 8587#line 1378
 8588                            if (__cil_tmp335 == 1) {
 8589                              {
 8590#line 1387
 8591                              while (1) {
 8592                                while_27_continue: /* CIL Label */ ;
 8593                                goto while_27_break;
 8594                              }
 8595                              while_27_break: /* CIL Label */ ;
 8596                              }
 8597                              {
 8598#line 1389
 8599                              __cil_tmp336 = (unsigned int )DeviceObject;
 8600#line 1389
 8601                              __cil_tmp337 = __cil_tmp336 + 32;
 8602#line 1389
 8603                              mem_555 = (ULONG *)__cil_tmp337;
 8604#line 1389
 8605                              __cil_tmp338 = *mem_555;
 8606#line 1389
 8607                              __cil_tmp339 = __cil_tmp338 & 1UL;
 8608#line 1389
 8609                              if (! __cil_tmp339) {
 8610#line 1391
 8611                                ntStatus = -1073741275L;
 8612                                goto switch_16_break;
 8613                              } else {
 8614
 8615                              }
 8616                              }
 8617                              {
 8618#line 1395
 8619                              __cil_tmp340 = (unsigned long )6U;
 8620#line 1395
 8621                              __cil_tmp341 = (unsigned int )irpSp;
 8622#line 1395
 8623                              __cil_tmp342 = __cil_tmp341 + 4;
 8624#line 1395
 8625                              mem_556 = (ULONG *)__cil_tmp342;
 8626#line 1395
 8627                              __cil_tmp343 = *mem_556;
 8628#line 1395
 8629                              if (__cil_tmp343 < __cil_tmp340) {
 8630#line 1398
 8631                                ntStatus = -1073741811L;
 8632                                goto switch_16_break;
 8633                              } else {
 8634
 8635                              }
 8636                              }
 8637                              {
 8638#line 1402
 8639                              __cil_tmp344 = (enum _POOL_TYPE )1;
 8640#line 1402
 8641                              __cil_tmp345 = 2U * 64U;
 8642#line 1402
 8643                              __cil_tmp346 = (unsigned long )__cil_tmp345;
 8644#line 1402
 8645                              tmp___1 = ExAllocatePoolWithTag(__cil_tmp344, __cil_tmp346,
 8646                                                              1886350406UL);
 8647#line 1402
 8648                              valueName = (WCHAR *)tmp___1;
 8649                              }
 8650#line 1404
 8651                              if (! valueName) {
 8652#line 1405
 8653                                ntStatus = -1073741670L;
 8654                                goto switch_16_break;
 8655                              } else {
 8656
 8657                              }
 8658                              {
 8659#line 1409
 8660                              __cil_tmp347 = (void *)valueName;
 8661#line 1409
 8662                              __cil_tmp348 = 2U * 64U;
 8663#line 1409
 8664                              memset(__cil_tmp347, 0, __cil_tmp348);
 8665#line 1412
 8666                              __cil_tmp349 = (void *)valueName;
 8667#line 1412
 8668                              __cil_tmp350 = 368 + 4;
 8669#line 1412
 8670                              __cil_tmp351 = (unsigned int )disketteExtension;
 8671#line 1412
 8672                              __cil_tmp352 = __cil_tmp351 + __cil_tmp350;
 8673#line 1412
 8674                              mem_557 = (PWSTR *)__cil_tmp352;
 8675#line 1412
 8676                              __cil_tmp353 = *mem_557;
 8677#line 1412
 8678                              __cil_tmp354 = (void const   *)__cil_tmp353;
 8679#line 1412
 8680                              __cil_tmp355 = (unsigned int )disketteExtension;
 8681#line 1412
 8682                              __cil_tmp356 = __cil_tmp355 + 368;
 8683#line 1412
 8684                              mem_558 = (USHORT *)__cil_tmp356;
 8685#line 1412
 8686                              __cil_tmp357 = *mem_558;
 8687#line 1412
 8688                              __cil_tmp358 = (unsigned int )__cil_tmp357;
 8689#line 1412
 8690                              memcpy(__cil_tmp349, __cil_tmp354, __cil_tmp358);
 8691#line 1414
 8692                              __cil_tmp359 = (unsigned int )(& driveLetterName) + 4;
 8693#line 1414
 8694                              __cil_tmp360 = 0 * 2U;
 8695#line 1414
 8696                              __cil_tmp361 = (unsigned int )(driveLetterNameBuffer) + __cil_tmp360;
 8697#line 1414
 8698                              mem_559 = (PWSTR *)__cil_tmp359;
 8699#line 1414
 8700                              *mem_559 = (WCHAR *)__cil_tmp361;
 8701#line 1415
 8702                              __cil_tmp362 = (unsigned int )(& driveLetterName) + 2;
 8703#line 1415
 8704                              mem_560 = (USHORT *)__cil_tmp362;
 8705#line 1415
 8706                              *mem_560 = (unsigned short)20;
 8707#line 1416
 8708                              __cil_tmp363 = & driveLetterName;
 8709#line 1416
 8710                              mem_561 = (USHORT *)__cil_tmp363;
 8711#line 1416
 8712                              *mem_561 = (unsigned short)0;
 8713#line 1418
 8714                              __cil_tmp364 = 0 * 28U;
 8715#line 1418
 8716                              __cil_tmp365 = (unsigned int )(queryTable) + __cil_tmp364;
 8717#line 1418
 8718                              __cil_tmp366 = (RTL_QUERY_REGISTRY_TABLE *)__cil_tmp365;
 8719#line 1418
 8720                              __cil_tmp367 = (void *)__cil_tmp366;
 8721#line 1418
 8722                              __cil_tmp368 = 2U * 28U;
 8723#line 1418
 8724                              memset(__cil_tmp367, 0, __cil_tmp368);
 8725#line 1419
 8726                              __cil_tmp369 = 0 * 28U;
 8727#line 1419
 8728                              __cil_tmp370 = __cil_tmp369 + 4;
 8729#line 1419
 8730                              __cil_tmp371 = (unsigned int )(queryTable) + __cil_tmp370;
 8731#line 1419
 8732                              mem_562 = (ULONG *)__cil_tmp371;
 8733#line 1419
 8734                              *mem_562 = 36UL;
 8735#line 1421
 8736                              __cil_tmp372 = 0 * 28U;
 8737#line 1421
 8738                              __cil_tmp373 = __cil_tmp372 + 8;
 8739#line 1421
 8740                              __cil_tmp374 = (unsigned int )(queryTable) + __cil_tmp373;
 8741#line 1421
 8742                              mem_563 = (PWSTR *)__cil_tmp374;
 8743#line 1421
 8744                              *mem_563 = valueName;
 8745#line 1422
 8746                              __cil_tmp375 = 0 * 28U;
 8747#line 1422
 8748                              __cil_tmp376 = __cil_tmp375 + 12;
 8749#line 1422
 8750                              __cil_tmp377 = (unsigned int )(queryTable) + __cil_tmp376;
 8751#line 1422
 8752                              mem_564 = (PVOID *)__cil_tmp377;
 8753#line 1422
 8754                              *mem_564 = (void *)(& driveLetterName);
 8755#line 1424
 8756                              __cil_tmp378 = (WCHAR const   *)"\\\000R\000e\000g\000i\000s\000t\000r\000y\000\\\000M\000a\000c\000h\000i\000n\000e\000\\\000S\000y\000s\000t\000e\000m\000\\\000D\000I\000S\000K\000";
 8757#line 1424
 8758                              __cil_tmp379 = 0 * 28U;
 8759#line 1424
 8760                              __cil_tmp380 = (unsigned int )(queryTable) + __cil_tmp379;
 8761#line 1424
 8762                              __cil_tmp381 = (RTL_QUERY_REGISTRY_TABLE *)__cil_tmp380;
 8763#line 1424
 8764                              __cil_tmp382 = (void *)0;
 8765#line 1424
 8766                              __cil_tmp383 = (void *)0;
 8767#line 1424
 8768                              ntStatus = RtlQueryRegistryValues(0UL, __cil_tmp378,
 8769                                                                __cil_tmp381, __cil_tmp382,
 8770                                                                __cil_tmp383);
 8771                              }
 8772                              {
 8773#line 1428
 8774                              __cil_tmp384 = ntStatus >= 0L;
 8775#line 1428
 8776                              if (! __cil_tmp384) {
 8777                                {
 8778#line 1429
 8779                                __cil_tmp385 = (void *)valueName;
 8780#line 1429
 8781                                ExFreePool(__cil_tmp385);
 8782                                }
 8783                                goto switch_16_break;
 8784                              } else {
 8785
 8786                              }
 8787                              }
 8788                              {
 8789#line 1433
 8790                              __cil_tmp386 = & driveLetterName;
 8791#line 1433
 8792                              mem_565 = (USHORT *)__cil_tmp386;
 8793#line 1433
 8794                              __cil_tmp387 = *mem_565;
 8795#line 1433
 8796                              __cil_tmp388 = (int )__cil_tmp387;
 8797#line 1433
 8798                              if (__cil_tmp388 != 4) {
 8799                                {
 8800#line 1438
 8801                                ntStatus = -1073741275L;
 8802#line 1439
 8803                                __cil_tmp389 = (void *)valueName;
 8804#line 1439
 8805                                ExFreePool(__cil_tmp389);
 8806                                }
 8807                                goto switch_16_break;
 8808                              } else {
 8809                                {
 8810#line 1433
 8811                                __cil_tmp390 = (unsigned int )(& driveLetterName) + 4;
 8812#line 1433
 8813                                mem_566 = (PWSTR *)__cil_tmp390;
 8814#line 1433
 8815                                __cil_tmp391 = *mem_566;
 8816#line 1433
 8817                                __cil_tmp392 = __cil_tmp391 + 0;
 8818#line 1433
 8819                                __cil_tmp393 = *__cil_tmp392;
 8820#line 1433
 8821                                __cil_tmp394 = (int )__cil_tmp393;
 8822#line 1433
 8823                                if (__cil_tmp394 < 65) {
 8824                                  {
 8825#line 1438
 8826                                  ntStatus = -1073741275L;
 8827#line 1439
 8828                                  __cil_tmp395 = (void *)valueName;
 8829#line 1439
 8830                                  ExFreePool(__cil_tmp395);
 8831                                  }
 8832                                  goto switch_16_break;
 8833                                } else {
 8834                                  {
 8835#line 1433
 8836                                  __cil_tmp396 = (unsigned int )(& driveLetterName) + 4;
 8837#line 1433
 8838                                  mem_567 = (PWSTR *)__cil_tmp396;
 8839#line 1433
 8840                                  __cil_tmp397 = *mem_567;
 8841#line 1433
 8842                                  __cil_tmp398 = __cil_tmp397 + 0;
 8843#line 1433
 8844                                  __cil_tmp399 = *__cil_tmp398;
 8845#line 1433
 8846                                  __cil_tmp400 = (int )__cil_tmp399;
 8847#line 1433
 8848                                  if (__cil_tmp400 > 90) {
 8849                                    {
 8850#line 1438
 8851                                    ntStatus = -1073741275L;
 8852#line 1439
 8853                                    __cil_tmp401 = (void *)valueName;
 8854#line 1439
 8855                                    ExFreePool(__cil_tmp401);
 8856                                    }
 8857                                    goto switch_16_break;
 8858                                  } else {
 8859                                    {
 8860#line 1433
 8861                                    __cil_tmp402 = (unsigned int )(& driveLetterName) + 4;
 8862#line 1433
 8863                                    mem_568 = (PWSTR *)__cil_tmp402;
 8864#line 1433
 8865                                    __cil_tmp403 = *mem_568;
 8866#line 1433
 8867                                    __cil_tmp404 = __cil_tmp403 + 1;
 8868#line 1433
 8869                                    __cil_tmp405 = *__cil_tmp404;
 8870#line 1433
 8871                                    __cil_tmp406 = (int )__cil_tmp405;
 8872#line 1433
 8873                                    if (__cil_tmp406 != 58) {
 8874                                      {
 8875#line 1438
 8876                                      ntStatus = -1073741275L;
 8877#line 1439
 8878                                      __cil_tmp407 = (void *)valueName;
 8879#line 1439
 8880                                      ExFreePool(__cil_tmp407);
 8881                                      }
 8882                                      goto switch_16_break;
 8883                                    } else {
 8884
 8885                                    }
 8886                                    }
 8887                                  }
 8888                                  }
 8889                                }
 8890                                }
 8891                              }
 8892                              }
 8893#line 1443
 8894                              __cil_tmp408 = (unsigned int )Irp;
 8895#line 1443
 8896                              __cil_tmp409 = __cil_tmp408 + 12;
 8897#line 1443
 8898                              mem_569 = (PVOID *)__cil_tmp409;
 8899#line 1443
 8900                              __cil_tmp410 = *mem_569;
 8901#line 1443
 8902                              suggestedName = (struct _MOUNTDEV_SUGGESTED_LINK_NAME *)__cil_tmp410;
 8903#line 1444
 8904                              mem_570 = (BOOLEAN *)suggestedName;
 8905#line 1444
 8906                              *mem_570 = (unsigned char)1;
 8907#line 1445
 8908                              __cil_tmp411 = (unsigned int )suggestedName;
 8909#line 1445
 8910                              __cil_tmp412 = __cil_tmp411 + 2;
 8911#line 1445
 8912                              mem_571 = (USHORT *)__cil_tmp412;
 8913#line 1445
 8914                              *mem_571 = (unsigned short)28;
 8915#line 1447
 8916                              __cil_tmp413 = 24 + 4;
 8917#line 1447
 8918                              __cil_tmp414 = (unsigned int )Irp;
 8919#line 1447
 8920                              __cil_tmp415 = __cil_tmp414 + __cil_tmp413;
 8921#line 1447
 8922                              __cil_tmp416 = (MOUNTDEV_SUGGESTED_LINK_NAME *)0;
 8923#line 1447
 8924                              __cil_tmp417 = (unsigned int )__cil_tmp416;
 8925#line 1447
 8926                              __cil_tmp418 = __cil_tmp417 + 4;
 8927#line 1447
 8928                              __cil_tmp419 = (WCHAR (*)[1])__cil_tmp418;
 8929#line 1447
 8930                              __cil_tmp420 = (long )__cil_tmp419;
 8931#line 1447
 8932                              __cil_tmp421 = __cil_tmp420 + 28L;
 8933#line 1447
 8934                              mem_572 = (ULONG_PTR *)__cil_tmp415;
 8935#line 1447
 8936                              *mem_572 = (unsigned long )__cil_tmp421;
 8937                              {
 8938#line 1450
 8939                              __cil_tmp422 = 24 + 4;
 8940#line 1450
 8941                              __cil_tmp423 = (unsigned int )Irp;
 8942#line 1450
 8943                              __cil_tmp424 = __cil_tmp423 + __cil_tmp422;
 8944#line 1450
 8945                              mem_573 = (ULONG_PTR *)__cil_tmp424;
 8946#line 1450
 8947                              __cil_tmp425 = *mem_573;
 8948#line 1450
 8949                              __cil_tmp426 = (unsigned int )irpSp;
 8950#line 1450
 8951                              __cil_tmp427 = __cil_tmp426 + 4;
 8952#line 1450
 8953                              mem_574 = (ULONG *)__cil_tmp427;
 8954#line 1450
 8955                              __cil_tmp428 = *mem_574;
 8956#line 1450
 8957                              if (__cil_tmp428 < __cil_tmp425) {
 8958                                {
 8959#line 1453
 8960                                __cil_tmp429 = 24 + 4;
 8961#line 1453
 8962                                __cil_tmp430 = (unsigned int )Irp;
 8963#line 1453
 8964                                __cil_tmp431 = __cil_tmp430 + __cil_tmp429;
 8965#line 1453
 8966                                mem_575 = (ULONG_PTR *)__cil_tmp431;
 8967#line 1453
 8968                                *mem_575 = (unsigned long )6U;
 8969#line 1455
 8970                                ntStatus = -2147483643L;
 8971#line 1456
 8972                                __cil_tmp432 = (void *)valueName;
 8973#line 1456
 8974                                ExFreePool(__cil_tmp432);
 8975                                }
 8976                                goto switch_16_break;
 8977                              } else {
 8978
 8979                              }
 8980                              }
 8981                              {
 8982#line 1460
 8983                              __cil_tmp433 = (WCHAR const   *)"\\\000R\000e\000g\000i\000s\000t\000r\000y\000\\\000M\000a\000c\000h\000i\000n\000e\000\\\000S\000y\000s\000t\000e\000m\000\\\000D\000I\000S\000K\000";
 8984#line 1460
 8985                              __cil_tmp434 = (WCHAR const   *)valueName;
 8986#line 1460
 8987                              RtlDeleteRegistryValue(0UL, __cil_tmp433, __cil_tmp434);
 8988#line 1464
 8989                              __cil_tmp435 = (void *)valueName;
 8990#line 1464
 8991                              ExFreePool(__cil_tmp435);
 8992#line 1466
 8993                              __cil_tmp436 = 0 * 2U;
 8994#line 1466
 8995                              __cil_tmp437 = 4 + __cil_tmp436;
 8996#line 1466
 8997                              __cil_tmp438 = (unsigned int )suggestedName;
 8998#line 1466
 8999                              __cil_tmp439 = __cil_tmp438 + __cil_tmp437;
 9000#line 1466
 9001                              __cil_tmp440 = (WCHAR *)__cil_tmp439;
 9002#line 1466
 9003                              __cil_tmp441 = (void *)__cil_tmp440;
 9004#line 1466
 9005                              __cil_tmp442 = (void const   *)"\\\000D\000o\000s\000D\000e\000v\000i\000c\000e\000s\000\\\000";
 9006#line 1466
 9007                              memcpy(__cil_tmp441, __cil_tmp442, 24U);
 9008#line 1467
 9009                              __cil_tmp443 = 12 * 2U;
 9010#line 1467
 9011                              __cil_tmp444 = 4 + __cil_tmp443;
 9012#line 1467
 9013                              __cil_tmp445 = (unsigned int )suggestedName;
 9014#line 1467
 9015                              __cil_tmp446 = __cil_tmp445 + __cil_tmp444;
 9016#line 1467
 9017                              __cil_tmp447 = (unsigned int )(& driveLetterName) + 4;
 9018#line 1467
 9019                              mem_576 = (PWSTR *)__cil_tmp447;
 9020#line 1467
 9021                              __cil_tmp448 = *mem_576;
 9022#line 1467
 9023                              __cil_tmp449 = __cil_tmp448 + 0;
 9024#line 1467
 9025                              mem_577 = (WCHAR *)__cil_tmp446;
 9026#line 1467
 9027                              *mem_577 = *__cil_tmp449;
 9028#line 1468
 9029                              __cil_tmp450 = 13 * 2U;
 9030#line 1468
 9031                              __cil_tmp451 = 4 + __cil_tmp450;
 9032#line 1468
 9033                              __cil_tmp452 = (unsigned int )suggestedName;
 9034#line 1468
 9035                              __cil_tmp453 = __cil_tmp452 + __cil_tmp451;
 9036#line 1468
 9037                              mem_578 = (WCHAR *)__cil_tmp453;
 9038#line 1468
 9039                              *mem_578 = (unsigned short )':';
 9040                              }
 9041                              goto switch_16_break;
 9042                            } else {
 9043
 9044                            }
 9045                            }
 9046                            switch_16_exp_11: /* CIL Label */ 
 9047                            {
 9048                            __cil_tmp454 = 248 << 2;
 9049                            __cil_tmp455 = 7 << 16;
 9050
 9051                            }
 9052                            {
 9053#line 1478
 9054                            __cil_tmp456 = (KUSER_SHARED_DATA * const  )4292804608U;
 9055#line 1478
 9056                            __cil_tmp457 = (unsigned int )__cil_tmp456;
 9057#line 1478
 9058                            __cil_tmp458 = __cil_tmp457 + 732;
 9059#line 1478
 9060                            mem_579 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp458;
 9061#line 1478
 9062                            __cil_tmp459 = *mem_579;
 9063#line 1478
 9064                            __cil_tmp460 = (int )__cil_tmp459;
 9065#line 1478
 9066                            if (__cil_tmp460 == 1) {
 9067                              {
 9068#line 1482
 9069                              while (1) {
 9070                                while_28_continue: /* CIL Label */ ;
 9071                                goto while_28_break;
 9072                              }
 9073                              while_28_break: /* CIL Label */ ;
 9074                              }
 9075                              {
 9076#line 1488
 9077                              __cil_tmp461 = (unsigned long )1U;
 9078#line 1488
 9079                              __cil_tmp462 = (unsigned int )irpSp;
 9080#line 1488
 9081                              __cil_tmp463 = __cil_tmp462 + 4;
 9082#line 1488
 9083                              mem_580 = (ULONG *)__cil_tmp463;
 9084#line 1488
 9085                              __cil_tmp464 = *mem_580;
 9086#line 1488
 9087                              if (__cil_tmp464 < __cil_tmp461) {
 9088                                {
 9089#line 1494
 9090                                while (1) {
 9091                                  while_29_continue: /* CIL Label */ ;
 9092                                  goto while_29_break;
 9093                                }
 9094                                while_29_break: /* CIL Label */ ;
 9095                                }
 9096#line 1496
 9097                                ntStatus = -1073741811L;
 9098                                goto switch_16_break;
 9099                              } else {
 9100
 9101                              }
 9102                              }
 9103                              {
 9104#line 1507
 9105                              while (1) {
 9106                                while_30_continue: /* CIL Label */ ;
 9107                                goto while_30_break;
 9108                              }
 9109                              while_30_break: /* CIL Label */ ;
 9110                              }
 9111                              {
 9112#line 1510
 9113                              ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
 9114                              }
 9115                              goto switch_16_break;
 9116                            } else {
 9117
 9118                            }
 9119                            }
 9120                            switch_16_default: /* CIL Label */ ;
 9121#line 1533
 9122                            if (s == 1) {
 9123#line 1533
 9124                              s = 3;
 9125                            } else {
 9126                              {
 9127#line 1534
 9128                              assert(0);
 9129                              }
 9130                            }
 9131                            {
 9132#line 1535
 9133                            __cil_tmp465 = (unsigned int )Irp;
 9134#line 1535
 9135                            __cil_tmp466 = __cil_tmp465 + 35;
 9136#line 1535
 9137                            __cil_tmp467 = (unsigned int )Irp;
 9138#line 1535
 9139                            __cil_tmp468 = __cil_tmp467 + 35;
 9140#line 1535
 9141                            mem_581 = (CHAR *)__cil_tmp468;
 9142#line 1535
 9143                            __cil_tmp469 = *mem_581;
 9144#line 1535
 9145                            __cil_tmp470 = (int )__cil_tmp469;
 9146#line 1535
 9147                            __cil_tmp471 = __cil_tmp470 + 1;
 9148#line 1535
 9149                            mem_582 = (CHAR *)__cil_tmp466;
 9150#line 1535
 9151                            *mem_582 = (char )__cil_tmp471;
 9152#line 1535
 9153                            __cil_tmp472 = 24 + 8;
 9154#line 1535
 9155                            __cil_tmp473 = 0 + __cil_tmp472;
 9156#line 1535
 9157                            __cil_tmp474 = 64 + __cil_tmp473;
 9158#line 1535
 9159                            __cil_tmp475 = (unsigned int )Irp;
 9160#line 1535
 9161                            __cil_tmp476 = __cil_tmp475 + __cil_tmp474;
 9162#line 1535
 9163                            __cil_tmp477 = 24 + 8;
 9164#line 1535
 9165                            __cil_tmp478 = 0 + __cil_tmp477;
 9166#line 1535
 9167                            __cil_tmp479 = 64 + __cil_tmp478;
 9168#line 1535
 9169                            __cil_tmp480 = (unsigned int )Irp;
 9170#line 1535
 9171                            __cil_tmp481 = __cil_tmp480 + __cil_tmp479;
 9172#line 1535
 9173                            mem_583 = (struct _IO_STACK_LOCATION **)__cil_tmp481;
 9174#line 1535
 9175                            __cil_tmp482 = *mem_583;
 9176#line 1535
 9177                            mem_584 = (struct _IO_STACK_LOCATION **)__cil_tmp476;
 9178#line 1535
 9179                            *mem_584 = __cil_tmp482 + 1;
 9180#line 1536
 9181                            __cil_tmp483 = (unsigned int )disketteExtension;
 9182#line 1536
 9183                            __cil_tmp484 = __cil_tmp483 + 8;
 9184#line 1536
 9185                            mem_585 = (PDEVICE_OBJECT *)__cil_tmp484;
 9186#line 1536
 9187                            __cil_tmp485 = *mem_585;
 9188#line 1536
 9189                            ntStatus = IofCallDriver(__cil_tmp485, Irp);
 9190                            }
 9191#line 1537
 9192                            return (ntStatus);
 9193                          } else {
 9194                            switch_16_break: /* CIL Label */ ;
 9195                          }
 9196                          }
 9197                        }
 9198                      }
 9199                    }
 9200                  }
 9201                }
 9202              }
 9203            }
 9204          }
 9205        }
 9206      }
 9207    }
 9208  }
 9209  }
 9210#line 1541
 9211  if (ntStatus != 259L) {
 9212#line 1543
 9213    __cil_tmp486 = (unsigned int )Irp;
 9214#line 1543
 9215    __cil_tmp487 = __cil_tmp486 + 24;
 9216#line 1543
 9217    mem_586 = (NTSTATUS *)__cil_tmp487;
 9218#line 1543
 9219    *mem_586 = ntStatus;
 9220#line 1544
 9221    myStatus = ntStatus;
 9222    {
 9223#line 1546
 9224    __cil_tmp488 = ntStatus >= 0L;
 9225#line 1546
 9226    if (! __cil_tmp488) {
 9227#line 1546
 9228      if (ntStatus == -1073741661L) {
 9229#line 1546
 9230        tmp___2 = 1;
 9231      } else {
 9232#line 1546
 9233        if (ntStatus == -1073741643L) {
 9234#line 1546
 9235          tmp___2 = 1;
 9236        } else {
 9237#line 1546
 9238          if (ntStatus == -1073741662L) {
 9239#line 1546
 9240            tmp___2 = 1;
 9241          } else {
 9242#line 1546
 9243            if (ntStatus == -1073741805L) {
 9244#line 1546
 9245              tmp___2 = 1;
 9246            } else {
 9247#line 1546
 9248              if (ntStatus == -2147483626L) {
 9249#line 1546
 9250                tmp___2 = 1;
 9251              } else {
 9252#line 1546
 9253                if (ntStatus == -1073741804L) {
 9254#line 1546
 9255                  tmp___2 = 1;
 9256                } else {
 9257#line 1546
 9258                  if (ntStatus == -1073741806L) {
 9259#line 1546
 9260                    tmp___2 = 1;
 9261                  } else {
 9262#line 1546
 9263                    tmp___2 = 0;
 9264                  }
 9265                }
 9266              }
 9267            }
 9268          }
 9269        }
 9270      }
 9271#line 1546
 9272      if ((unsigned char )tmp___2) {
 9273        {
 9274#line 1547
 9275        IoSetHardErrorOrVerifyDevice(Irp, DeviceObject);
 9276        }
 9277      } else {
 9278
 9279      }
 9280    } else {
 9281
 9282    }
 9283    }
 9284    {
 9285#line 1550
 9286    IofCompleteRequest(Irp, (char)0);
 9287    }
 9288  } else {
 9289
 9290  }
 9291#line 1553
 9292  return (ntStatus);
 9293}
 9294}
 9295#line 1556 "floppy.c"
 9296NTSTATUS FloppyPnp(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
 9297{ PIO_STACK_LOCATION irpSp ;
 9298  PDISKETTE_EXTENSION disketteExtension ;
 9299  NTSTATUS ntStatus ;
 9300  KEVENT doneEvent ;
 9301  PIO_STACK_LOCATION irpSp___0 ;
 9302  PIO_STACK_LOCATION nextIrpSp ;
 9303  PIO_STACK_LOCATION irpSp___1 ;
 9304  PCONFIGURATION_INFORMATION tmp ;
 9305  void *__cil_tmp11 ;
 9306  unsigned int __cil_tmp12 ;
 9307  unsigned int __cil_tmp13 ;
 9308  PVOID __cil_tmp14 ;
 9309  unsigned int __cil_tmp15 ;
 9310  unsigned int __cil_tmp16 ;
 9311  unsigned int __cil_tmp17 ;
 9312  unsigned int __cil_tmp18 ;
 9313  unsigned int __cil_tmp19 ;
 9314  unsigned int __cil_tmp20 ;
 9315  unsigned int __cil_tmp21 ;
 9316  unsigned int __cil_tmp22 ;
 9317  unsigned int __cil_tmp23 ;
 9318  unsigned int __cil_tmp24 ;
 9319  unsigned int __cil_tmp25 ;
 9320  unsigned int __cil_tmp26 ;
 9321  unsigned int __cil_tmp27 ;
 9322  unsigned int __cil_tmp28 ;
 9323  UCHAR __cil_tmp29 ;
 9324  unsigned int __cil_tmp30 ;
 9325  unsigned int __cil_tmp31 ;
 9326  UCHAR __cil_tmp32 ;
 9327  int __cil_tmp33 ;
 9328  unsigned int __cil_tmp34 ;
 9329  unsigned int __cil_tmp35 ;
 9330  BOOLEAN __cil_tmp36 ;
 9331  unsigned int __cil_tmp37 ;
 9332  unsigned int __cil_tmp38 ;
 9333  unsigned int __cil_tmp39 ;
 9334  unsigned int __cil_tmp40 ;
 9335  CHAR __cil_tmp41 ;
 9336  int __cil_tmp42 ;
 9337  int __cil_tmp43 ;
 9338  unsigned int __cil_tmp44 ;
 9339  unsigned int __cil_tmp45 ;
 9340  unsigned int __cil_tmp46 ;
 9341  unsigned int __cil_tmp47 ;
 9342  unsigned int __cil_tmp48 ;
 9343  unsigned int __cil_tmp49 ;
 9344  unsigned int __cil_tmp50 ;
 9345  unsigned int __cil_tmp51 ;
 9346  unsigned int __cil_tmp52 ;
 9347  unsigned int __cil_tmp53 ;
 9348  struct _IO_STACK_LOCATION *__cil_tmp54 ;
 9349  unsigned int __cil_tmp55 ;
 9350  unsigned int __cil_tmp56 ;
 9351  PDEVICE_OBJECT __cil_tmp57 ;
 9352  unsigned int __cil_tmp58 ;
 9353  unsigned int __cil_tmp59 ;
 9354  FAST_MUTEX *__cil_tmp60 ;
 9355  unsigned int __cil_tmp61 ;
 9356  unsigned int __cil_tmp62 ;
 9357  unsigned int __cil_tmp63 ;
 9358  unsigned int __cil_tmp64 ;
 9359  FAST_MUTEX *__cil_tmp65 ;
 9360  unsigned int __cil_tmp66 ;
 9361  unsigned int __cil_tmp67 ;
 9362  PKTHREAD __cil_tmp68 ;
 9363  void *__cil_tmp69 ;
 9364  enum _KWAIT_REASON __cil_tmp70 ;
 9365  void *__cil_tmp71 ;
 9366  LARGE_INTEGER *__cil_tmp72 ;
 9367  void *__cil_tmp73 ;
 9368  unsigned int __cil_tmp74 ;
 9369  unsigned int __cil_tmp75 ;
 9370  unsigned int __cil_tmp76 ;
 9371  PKTHREAD __cil_tmp77 ;
 9372  unsigned int __cil_tmp78 ;
 9373  unsigned int __cil_tmp79 ;
 9374  unsigned int __cil_tmp80 ;
 9375  PKTHREAD __cil_tmp81 ;
 9376  void *__cil_tmp82 ;
 9377  unsigned int __cil_tmp83 ;
 9378  unsigned int __cil_tmp84 ;
 9379  void *__cil_tmp85 ;
 9380  unsigned int __cil_tmp86 ;
 9381  unsigned int __cil_tmp87 ;
 9382  unsigned int __cil_tmp88 ;
 9383  unsigned int __cil_tmp89 ;
 9384  unsigned int __cil_tmp90 ;
 9385  unsigned int __cil_tmp91 ;
 9386  CHAR __cil_tmp92 ;
 9387  int __cil_tmp93 ;
 9388  int __cil_tmp94 ;
 9389  unsigned int __cil_tmp95 ;
 9390  unsigned int __cil_tmp96 ;
 9391  unsigned int __cil_tmp97 ;
 9392  unsigned int __cil_tmp98 ;
 9393  unsigned int __cil_tmp99 ;
 9394  unsigned int __cil_tmp100 ;
 9395  unsigned int __cil_tmp101 ;
 9396  unsigned int __cil_tmp102 ;
 9397  unsigned int __cil_tmp103 ;
 9398  unsigned int __cil_tmp104 ;
 9399  struct _IO_STACK_LOCATION *__cil_tmp105 ;
 9400  unsigned int __cil_tmp106 ;
 9401  unsigned int __cil_tmp107 ;
 9402  PDEVICE_OBJECT __cil_tmp108 ;
 9403  unsigned int __cil_tmp109 ;
 9404  unsigned int __cil_tmp110 ;
 9405  unsigned int __cil_tmp111 ;
 9406  unsigned int __cil_tmp112 ;
 9407  unsigned int __cil_tmp113 ;
 9408  unsigned int __cil_tmp114 ;
 9409  unsigned int __cil_tmp115 ;
 9410  UCHAR __cil_tmp116 ;
 9411  int __cil_tmp117 ;
 9412  unsigned int __cil_tmp118 ;
 9413  unsigned int __cil_tmp119 ;
 9414  BOOLEAN __cil_tmp120 ;
 9415  unsigned int __cil_tmp121 ;
 9416  unsigned int __cil_tmp122 ;
 9417  unsigned int __cil_tmp123 ;
 9418  unsigned int __cil_tmp124 ;
 9419  unsigned int __cil_tmp125 ;
 9420  unsigned int __cil_tmp126 ;
 9421  CHAR __cil_tmp127 ;
 9422  int __cil_tmp128 ;
 9423  int __cil_tmp129 ;
 9424  unsigned int __cil_tmp130 ;
 9425  unsigned int __cil_tmp131 ;
 9426  unsigned int __cil_tmp132 ;
 9427  unsigned int __cil_tmp133 ;
 9428  unsigned int __cil_tmp134 ;
 9429  unsigned int __cil_tmp135 ;
 9430  unsigned int __cil_tmp136 ;
 9431  unsigned int __cil_tmp137 ;
 9432  unsigned int __cil_tmp138 ;
 9433  unsigned int __cil_tmp139 ;
 9434  struct _IO_STACK_LOCATION *__cil_tmp140 ;
 9435  unsigned int __cil_tmp141 ;
 9436  unsigned int __cil_tmp142 ;
 9437  PDEVICE_OBJECT __cil_tmp143 ;
 9438  unsigned int __cil_tmp144 ;
 9439  unsigned int __cil_tmp145 ;
 9440  unsigned int __cil_tmp146 ;
 9441  unsigned int __cil_tmp147 ;
 9442  unsigned int __cil_tmp148 ;
 9443  unsigned int __cil_tmp149 ;
 9444  unsigned int __cil_tmp150 ;
 9445  unsigned int __cil_tmp151 ;
 9446  unsigned int __cil_tmp152 ;
 9447  unsigned int __cil_tmp153 ;
 9448  unsigned int __cil_tmp154 ;
 9449  unsigned int __cil_tmp155 ;
 9450  struct _IO_STACK_LOCATION *__cil_tmp156 ;
 9451  void *__cil_tmp157 ;
 9452  void const   *__cil_tmp158 ;
 9453  IO_STACK_LOCATION *__cil_tmp159 ;
 9454  unsigned int __cil_tmp160 ;
 9455  unsigned int __cil_tmp161 ;
 9456  NTSTATUS (**__cil_tmp162)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
 9457  long __cil_tmp163 ;
 9458  unsigned int __cil_tmp164 ;
 9459  unsigned int __cil_tmp165 ;
 9460  unsigned int __cil_tmp166 ;
 9461  enum _EVENT_TYPE __cil_tmp167 ;
 9462  unsigned int __cil_tmp168 ;
 9463  unsigned int __cil_tmp169 ;
 9464  unsigned int __cil_tmp170 ;
 9465  unsigned int __cil_tmp171 ;
 9466  unsigned int __cil_tmp172 ;
 9467  struct _IO_STACK_LOCATION *__cil_tmp173 ;
 9468  unsigned int __cil_tmp174 ;
 9469  unsigned int __cil_tmp175 ;
 9470  unsigned int __cil_tmp176 ;
 9471  unsigned int __cil_tmp177 ;
 9472  unsigned int __cil_tmp178 ;
 9473  unsigned int __cil_tmp179 ;
 9474  unsigned int __cil_tmp180 ;
 9475  unsigned int __cil_tmp181 ;
 9476  unsigned int __cil_tmp182 ;
 9477  unsigned int __cil_tmp183 ;
 9478  unsigned int __cil_tmp184 ;
 9479  unsigned int __cil_tmp185 ;
 9480  UCHAR __cil_tmp186 ;
 9481  int __cil_tmp187 ;
 9482  int __cil_tmp188 ;
 9483  unsigned int __cil_tmp189 ;
 9484  unsigned int __cil_tmp190 ;
 9485  unsigned int __cil_tmp191 ;
 9486  unsigned int __cil_tmp192 ;
 9487  UCHAR __cil_tmp193 ;
 9488  int __cil_tmp194 ;
 9489  int __cil_tmp195 ;
 9490  unsigned int __cil_tmp196 ;
 9491  unsigned int __cil_tmp197 ;
 9492  PDEVICE_OBJECT __cil_tmp198 ;
 9493  void *__cil_tmp199 ;
 9494  enum _KWAIT_REASON __cil_tmp200 ;
 9495  void *__cil_tmp201 ;
 9496  LARGE_INTEGER *__cil_tmp202 ;
 9497  unsigned int __cil_tmp203 ;
 9498  unsigned int __cil_tmp204 ;
 9499  FAST_MUTEX *__cil_tmp205 ;
 9500  unsigned int __cil_tmp206 ;
 9501  unsigned int __cil_tmp207 ;
 9502  unsigned int __cil_tmp208 ;
 9503  unsigned int __cil_tmp209 ;
 9504  FAST_MUTEX *__cil_tmp210 ;
 9505  unsigned int __cil_tmp211 ;
 9506  unsigned int __cil_tmp212 ;
 9507  unsigned int __cil_tmp213 ;
 9508  unsigned int __cil_tmp214 ;
 9509  unsigned int __cil_tmp215 ;
 9510  unsigned int __cil_tmp216 ;
 9511  unsigned int __cil_tmp217 ;
 9512  unsigned int __cil_tmp218 ;
 9513  unsigned int __cil_tmp219 ;
 9514  unsigned int __cil_tmp220 ;
 9515  unsigned int __cil_tmp221 ;
 9516  unsigned int __cil_tmp222 ;
 9517  unsigned int __cil_tmp223 ;
 9518  CHAR __cil_tmp224 ;
 9519  int __cil_tmp225 ;
 9520  int __cil_tmp226 ;
 9521  unsigned int __cil_tmp227 ;
 9522  unsigned int __cil_tmp228 ;
 9523  unsigned int __cil_tmp229 ;
 9524  unsigned int __cil_tmp230 ;
 9525  unsigned int __cil_tmp231 ;
 9526  unsigned int __cil_tmp232 ;
 9527  unsigned int __cil_tmp233 ;
 9528  unsigned int __cil_tmp234 ;
 9529  unsigned int __cil_tmp235 ;
 9530  unsigned int __cil_tmp236 ;
 9531  struct _IO_STACK_LOCATION *__cil_tmp237 ;
 9532  unsigned int __cil_tmp238 ;
 9533  unsigned int __cil_tmp239 ;
 9534  PDEVICE_OBJECT __cil_tmp240 ;
 9535  unsigned int __cil_tmp241 ;
 9536  unsigned int __cil_tmp242 ;
 9537  FAST_MUTEX *__cil_tmp243 ;
 9538  unsigned int __cil_tmp244 ;
 9539  unsigned int __cil_tmp245 ;
 9540  unsigned int __cil_tmp246 ;
 9541  unsigned int __cil_tmp247 ;
 9542  FAST_MUTEX *__cil_tmp248 ;
 9543  unsigned int __cil_tmp249 ;
 9544  unsigned int __cil_tmp250 ;
 9545  unsigned int __cil_tmp251 ;
 9546  unsigned int __cil_tmp252 ;
 9547  unsigned int __cil_tmp253 ;
 9548  unsigned int __cil_tmp254 ;
 9549  unsigned int __cil_tmp255 ;
 9550  unsigned int __cil_tmp256 ;
 9551  CHAR __cil_tmp257 ;
 9552  int __cil_tmp258 ;
 9553  int __cil_tmp259 ;
 9554  unsigned int __cil_tmp260 ;
 9555  unsigned int __cil_tmp261 ;
 9556  unsigned int __cil_tmp262 ;
 9557  unsigned int __cil_tmp263 ;
 9558  unsigned int __cil_tmp264 ;
 9559  unsigned int __cil_tmp265 ;
 9560  unsigned int __cil_tmp266 ;
 9561  unsigned int __cil_tmp267 ;
 9562  unsigned int __cil_tmp268 ;
 9563  unsigned int __cil_tmp269 ;
 9564  struct _IO_STACK_LOCATION *__cil_tmp270 ;
 9565  unsigned int __cil_tmp271 ;
 9566  unsigned int __cil_tmp272 ;
 9567  unsigned int __cil_tmp273 ;
 9568  unsigned int __cil_tmp274 ;
 9569  PDEVICE_OBJECT __cil_tmp275 ;
 9570  void *__cil_tmp276 ;
 9571  unsigned int __cil_tmp277 ;
 9572  unsigned int __cil_tmp278 ;
 9573  unsigned int __cil_tmp279 ;
 9574  unsigned int __cil_tmp280 ;
 9575  PWSTR __cil_tmp281 ;
 9576  unsigned int __cil_tmp282 ;
 9577  unsigned int __cil_tmp283 ;
 9578  unsigned int __cil_tmp284 ;
 9579  UNICODE_STRING *__cil_tmp285 ;
 9580  unsigned int __cil_tmp286 ;
 9581  unsigned int __cil_tmp287 ;
 9582  UNICODE_STRING *__cil_tmp288 ;
 9583  unsigned int __cil_tmp289 ;
 9584  unsigned int __cil_tmp290 ;
 9585  UNICODE_STRING *__cil_tmp291 ;
 9586  void *__cil_tmp292 ;
 9587  WCHAR const   *__cil_tmp293 ;
 9588  unsigned int __cil_tmp294 ;
 9589  unsigned int __cil_tmp295 ;
 9590  UNICODE_STRING *__cil_tmp296 ;
 9591  unsigned int __cil_tmp297 ;
 9592  unsigned int __cil_tmp298 ;
 9593  UNICODE_STRING *__cil_tmp299 ;
 9594  void *__cil_tmp300 ;
 9595  WCHAR const   *__cil_tmp301 ;
 9596  unsigned int __cil_tmp302 ;
 9597  unsigned int __cil_tmp303 ;
 9598  USHORT __cil_tmp304 ;
 9599  int __cil_tmp305 ;
 9600  unsigned int __cil_tmp306 ;
 9601  unsigned int __cil_tmp307 ;
 9602  UNICODE_STRING *__cil_tmp308 ;
 9603  unsigned int __cil_tmp309 ;
 9604  unsigned int __cil_tmp310 ;
 9605  UNICODE_STRING *__cil_tmp311 ;
 9606  unsigned int __cil_tmp312 ;
 9607  unsigned int __cil_tmp313 ;
 9608  UNICODE_STRING *__cil_tmp314 ;
 9609  void *__cil_tmp315 ;
 9610  WCHAR const   *__cil_tmp316 ;
 9611  unsigned int __cil_tmp317 ;
 9612  unsigned int __cil_tmp318 ;
 9613  PDEVICE_OBJECT __cil_tmp319 ;
 9614  unsigned int __cil_tmp320 ;
 9615  unsigned int __cil_tmp321 ;
 9616  unsigned int __cil_tmp322 ;
 9617  unsigned int __cil_tmp323 ;
 9618  ULONG __cil_tmp324 ;
 9619  unsigned int __cil_tmp325 ;
 9620  unsigned int __cil_tmp326 ;
 9621  unsigned int __cil_tmp327 ;
 9622  unsigned int __cil_tmp328 ;
 9623  CHAR __cil_tmp329 ;
 9624  int __cil_tmp330 ;
 9625  int __cil_tmp331 ;
 9626  unsigned int __cil_tmp332 ;
 9627  unsigned int __cil_tmp333 ;
 9628  unsigned int __cil_tmp334 ;
 9629  unsigned int __cil_tmp335 ;
 9630  unsigned int __cil_tmp336 ;
 9631  unsigned int __cil_tmp337 ;
 9632  unsigned int __cil_tmp338 ;
 9633  unsigned int __cil_tmp339 ;
 9634  unsigned int __cil_tmp340 ;
 9635  unsigned int __cil_tmp341 ;
 9636  struct _IO_STACK_LOCATION *__cil_tmp342 ;
 9637  unsigned int __cil_tmp343 ;
 9638  unsigned int __cil_tmp344 ;
 9639  PDEVICE_OBJECT __cil_tmp345 ;
 9640  void *__cil_tmp346 ;
 9641  PVOID *mem_347 ;
 9642  struct _IO_STACK_LOCATION **mem_348 ;
 9643  BOOLEAN *mem_349 ;
 9644  ULONG_PTR *mem_350 ;
 9645  NTSTATUS *mem_351 ;
 9646  UCHAR *mem_352 ;
 9647  UCHAR *mem_353 ;
 9648  BOOLEAN *mem_354 ;
 9649  CHAR *mem_355 ;
 9650  CHAR *mem_356 ;
 9651  struct _IO_STACK_LOCATION **mem_357 ;
 9652  struct _IO_STACK_LOCATION **mem_358 ;
 9653  PDEVICE_OBJECT *mem_359 ;
 9654  BOOLEAN *mem_360 ;
 9655  PKTHREAD *mem_361 ;
 9656  PKTHREAD *mem_362 ;
 9657  PKTHREAD *mem_363 ;
 9658  PKTHREAD *mem_364 ;
 9659  NTSTATUS *mem_365 ;
 9660  CHAR *mem_366 ;
 9661  CHAR *mem_367 ;
 9662  struct _IO_STACK_LOCATION **mem_368 ;
 9663  struct _IO_STACK_LOCATION **mem_369 ;
 9664  PDEVICE_OBJECT *mem_370 ;
 9665  NTSTATUS *mem_371 ;
 9666  ULONG_PTR *mem_372 ;
 9667  UCHAR *mem_373 ;
 9668  BOOLEAN *mem_374 ;
 9669  NTSTATUS *mem_375 ;
 9670  CHAR *mem_376 ;
 9671  CHAR *mem_377 ;
 9672  struct _IO_STACK_LOCATION **mem_378 ;
 9673  struct _IO_STACK_LOCATION **mem_379 ;
 9674  PDEVICE_OBJECT *mem_380 ;
 9675  NTSTATUS *mem_381 ;
 9676  struct _IO_STACK_LOCATION **mem_382 ;
 9677  struct _IO_STACK_LOCATION **mem_383 ;
 9678  UCHAR *mem_384 ;
 9679  struct _IO_STACK_LOCATION **mem_385 ;
 9680  NTSTATUS (**mem_386)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
 9681  PVOID *mem_387 ;
 9682  UCHAR *mem_388 ;
 9683  UCHAR *mem_389 ;
 9684  UCHAR *mem_390 ;
 9685  UCHAR *mem_391 ;
 9686  UCHAR *mem_392 ;
 9687  UCHAR *mem_393 ;
 9688  PDEVICE_OBJECT *mem_394 ;
 9689  BOOLEAN *mem_395 ;
 9690  NTSTATUS *mem_396 ;
 9691  ULONG_PTR *mem_397 ;
 9692  BOOLEAN *mem_398 ;
 9693  NTSTATUS *mem_399 ;
 9694  CHAR *mem_400 ;
 9695  CHAR *mem_401 ;
 9696  struct _IO_STACK_LOCATION **mem_402 ;
 9697  struct _IO_STACK_LOCATION **mem_403 ;
 9698  PDEVICE_OBJECT *mem_404 ;
 9699  BOOLEAN *mem_405 ;
 9700  BOOLEAN *mem_406 ;
 9701  BOOLEAN *mem_407 ;
 9702  CHAR *mem_408 ;
 9703  CHAR *mem_409 ;
 9704  struct _IO_STACK_LOCATION **mem_410 ;
 9705  struct _IO_STACK_LOCATION **mem_411 ;
 9706  NTSTATUS *mem_412 ;
 9707  PDEVICE_OBJECT *mem_413 ;
 9708  PWSTR *mem_414 ;
 9709  USHORT *mem_415 ;
 9710  PDEVICE_OBJECT *mem_416 ;
 9711  ULONG *mem_417 ;
 9712  ULONG *mem_418 ;
 9713  CHAR *mem_419 ;
 9714  CHAR *mem_420 ;
 9715  struct _IO_STACK_LOCATION **mem_421 ;
 9716  struct _IO_STACK_LOCATION **mem_422 ;
 9717  PDEVICE_OBJECT *mem_423 ;
 9718
 9719  {
 9720#line 1580
 9721  ntStatus = 0L;
 9722  {
 9723#line 1583
 9724  while (1) {
 9725    while_31_continue: /* CIL Label */ ;
 9726    goto while_31_break;
 9727  }
 9728  while_31_break: /* CIL Label */ ;
 9729  }
 9730  {
 9731#line 1588
 9732  ExAcquireFastMutex(PagingMutex);
 9733#line 1588
 9734  PagingReferenceCount = PagingReferenceCount + 1UL;
 9735  }
 9736#line 1588
 9737  if (PagingReferenceCount == 1UL) {
 9738    {
 9739#line 1588
 9740    __cil_tmp11 = (void *)(& DriverEntry);
 9741#line 1588
 9742    MmResetDriverPaging(__cil_tmp11);
 9743    }
 9744  } else {
 9745
 9746  }
 9747  {
 9748#line 1588
 9749  ExReleaseFastMutex(PagingMutex);
 9750#line 1591
 9751  __cil_tmp12 = (unsigned int )DeviceObject;
 9752#line 1591
 9753  __cil_tmp13 = __cil_tmp12 + 40;
 9754#line 1591
 9755  mem_347 = (PVOID *)__cil_tmp13;
 9756#line 1591
 9757  __cil_tmp14 = *mem_347;
 9758#line 1591
 9759  disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp14;
 9760#line 1593
 9761  __cil_tmp15 = 24 + 8;
 9762#line 1593
 9763  __cil_tmp16 = 0 + __cil_tmp15;
 9764#line 1593
 9765  __cil_tmp17 = 64 + __cil_tmp16;
 9766#line 1593
 9767  __cil_tmp18 = (unsigned int )Irp;
 9768#line 1593
 9769  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
 9770#line 1593
 9771  mem_348 = (struct _IO_STACK_LOCATION **)__cil_tmp19;
 9772#line 1593
 9773  irpSp = *mem_348;
 9774  }
 9775  {
 9776#line 1595
 9777  __cil_tmp20 = (unsigned int )disketteExtension;
 9778#line 1595
 9779  __cil_tmp21 = __cil_tmp20 + 13;
 9780  {
 9781#line 1595
 9782  mem_349 = (BOOLEAN *)__cil_tmp21;
 9783#line 1595
 9784  if (*mem_349) {
 9785    {
 9786#line 1601
 9787    __cil_tmp22 = 24 + 4;
 9788#line 1601
 9789    __cil_tmp23 = (unsigned int )Irp;
 9790#line 1601
 9791    __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
 9792#line 1601
 9793    mem_350 = (ULONG_PTR *)__cil_tmp24;
 9794#line 1601
 9795    *mem_350 = 0UL;
 9796#line 1602
 9797    __cil_tmp25 = (unsigned int )Irp;
 9798#line 1602
 9799    __cil_tmp26 = __cil_tmp25 + 24;
 9800#line 1602
 9801    mem_351 = (NTSTATUS *)__cil_tmp26;
 9802#line 1602
 9803    *mem_351 = -1073741738L;
 9804#line 1603
 9805    myStatus = -1073741738L;
 9806#line 1605
 9807    IofCompleteRequest(Irp, (char)0);
 9808    }
 9809#line 1606
 9810    return (-1073741738L);
 9811  } else {
 9812
 9813  }
 9814  }
 9815  }
 9816  {
 9817#line 1607
 9818  __cil_tmp27 = (unsigned int )irpSp;
 9819#line 1607
 9820  __cil_tmp28 = __cil_tmp27 + 1;
 9821#line 1607
 9822  mem_352 = (UCHAR *)__cil_tmp28;
 9823#line 1607
 9824  __cil_tmp29 = *mem_352;
 9825#line 1608
 9826  if ((int )__cil_tmp29 == 0) {
 9827    goto switch_32_0;
 9828  } else {
 9829#line 1613
 9830    if ((int )__cil_tmp29 == 5) {
 9831      goto switch_32_5;
 9832    } else {
 9833#line 1614
 9834      if ((int )__cil_tmp29 == 1) {
 9835        goto switch_32_1;
 9836      } else {
 9837#line 1690
 9838        if ((int )__cil_tmp29 == 6) {
 9839          goto switch_32_6;
 9840        } else {
 9841#line 1691
 9842          if ((int )__cil_tmp29 == 3) {
 9843            goto switch_32_3;
 9844          } else {
 9845#line 1779
 9846            if ((int )__cil_tmp29 == 4) {
 9847              goto switch_32_4;
 9848            } else {
 9849#line 1790
 9850              if ((int )__cil_tmp29 == 2) {
 9851                goto switch_32_2;
 9852              } else {
 9853                {
 9854                goto switch_32_default;
 9855#line 1607
 9856                if (0) {
 9857                  switch_32_0: /* CIL Label */ 
 9858                  {
 9859#line 1611
 9860                  ntStatus = FloppyStartDevice(DeviceObject, Irp);
 9861                  }
 9862                  goto switch_32_break;
 9863                  switch_32_5: /* CIL Label */ ;
 9864                  switch_32_1: /* CIL Label */ ;
 9865                  {
 9866#line 1617
 9867                  __cil_tmp30 = (unsigned int )irpSp;
 9868#line 1617
 9869                  __cil_tmp31 = __cil_tmp30 + 1;
 9870#line 1617
 9871                  mem_353 = (UCHAR *)__cil_tmp31;
 9872#line 1617
 9873                  __cil_tmp32 = *mem_353;
 9874#line 1617
 9875                  __cil_tmp33 = (int )__cil_tmp32;
 9876#line 1617
 9877                  if (__cil_tmp33 == 5) {
 9878                    {
 9879#line 1618
 9880                    while (1) {
 9881                      while_33_continue: /* CIL Label */ ;
 9882                      goto while_33_break;
 9883                    }
 9884                    while_33_break: /* CIL Label */ ;
 9885                    }
 9886                  } else {
 9887                    {
 9888#line 1620
 9889                    while (1) {
 9890                      while_34_continue: /* CIL Label */ ;
 9891                      goto while_34_break;
 9892                    }
 9893                    while_34_break: /* CIL Label */ ;
 9894                    }
 9895                  }
 9896                  }
 9897                  {
 9898#line 1623
 9899                  __cil_tmp34 = (unsigned int )disketteExtension;
 9900#line 1623
 9901                  __cil_tmp35 = __cil_tmp34 + 12;
 9902#line 1623
 9903                  mem_354 = (BOOLEAN *)__cil_tmp35;
 9904#line 1623
 9905                  __cil_tmp36 = *mem_354;
 9906#line 1623
 9907                  if (! __cil_tmp36) {
 9908#line 1627
 9909                    if (s == 1) {
 9910#line 1627
 9911                      s = 3;
 9912                    } else {
 9913                      {
 9914#line 1627
 9915                      assert(0);
 9916                      }
 9917                    }
 9918                    {
 9919#line 1628
 9920                    __cil_tmp37 = (unsigned int )Irp;
 9921#line 1628
 9922                    __cil_tmp38 = __cil_tmp37 + 35;
 9923#line 1628
 9924                    __cil_tmp39 = (unsigned int )Irp;
 9925#line 1628
 9926                    __cil_tmp40 = __cil_tmp39 + 35;
 9927#line 1628
 9928                    mem_355 = (CHAR *)__cil_tmp40;
 9929#line 1628
 9930                    __cil_tmp41 = *mem_355;
 9931#line 1628
 9932                    __cil_tmp42 = (int )__cil_tmp41;
 9933#line 1628
 9934                    __cil_tmp43 = __cil_tmp42 + 1;
 9935#line 1628
 9936                    mem_356 = (CHAR *)__cil_tmp38;
 9937#line 1628
 9938                    *mem_356 = (char )__cil_tmp43;
 9939#line 1628
 9940                    __cil_tmp44 = 24 + 8;
 9941#line 1628
 9942                    __cil_tmp45 = 0 + __cil_tmp44;
 9943#line 1628
 9944                    __cil_tmp46 = 64 + __cil_tmp45;
 9945#line 1628
 9946                    __cil_tmp47 = (unsigned int )Irp;
 9947#line 1628
 9948                    __cil_tmp48 = __cil_tmp47 + __cil_tmp46;
 9949#line 1628
 9950                    __cil_tmp49 = 24 + 8;
 9951#line 1628
 9952                    __cil_tmp50 = 0 + __cil_tmp49;
 9953#line 1628
 9954                    __cil_tmp51 = 64 + __cil_tmp50;
 9955#line 1628
 9956                    __cil_tmp52 = (unsigned int )Irp;
 9957#line 1628
 9958                    __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
 9959#line 1628
 9960                    mem_357 = (struct _IO_STACK_LOCATION **)__cil_tmp53;
 9961#line 1628
 9962                    __cil_tmp54 = *mem_357;
 9963#line 1628
 9964                    mem_358 = (struct _IO_STACK_LOCATION **)__cil_tmp48;
 9965#line 1628
 9966                    *mem_358 = __cil_tmp54 + 1;
 9967#line 1629
 9968                    __cil_tmp55 = (unsigned int )disketteExtension;
 9969#line 1629
 9970                    __cil_tmp56 = __cil_tmp55 + 8;
 9971#line 1629
 9972                    mem_359 = (PDEVICE_OBJECT *)__cil_tmp56;
 9973#line 1629
 9974                    __cil_tmp57 = *mem_359;
 9975#line 1629
 9976                    ntStatus = IofCallDriver(__cil_tmp57, Irp);
 9977                    }
 9978#line 1631
 9979                    return (ntStatus);
 9980                  } else {
 9981
 9982                  }
 9983                  }
 9984                  {
 9985#line 1637
 9986                  __cil_tmp58 = (unsigned int )disketteExtension;
 9987#line 1637
 9988                  __cil_tmp59 = __cil_tmp58 + 428;
 9989#line 1637
 9990                  __cil_tmp60 = (FAST_MUTEX *)__cil_tmp59;
 9991#line 1637
 9992                  ExAcquireFastMutex(__cil_tmp60);
 9993#line 1638
 9994                  __cil_tmp61 = (unsigned int )disketteExtension;
 9995#line 1638
 9996                  __cil_tmp62 = __cil_tmp61 + 14;
 9997#line 1638
 9998                  mem_360 = (BOOLEAN *)__cil_tmp62;
 9999#line 1638
10000                  *mem_360 = (unsigned char)1;
10001#line 1639
10002                  __cil_tmp63 = (unsigned int )disketteExtension;
10003#line 1639
10004                  __cil_tmp64 = __cil_tmp63 + 428;
10005#line 1639
10006                  __cil_tmp65 = (FAST_MUTEX *)__cil_tmp64;
10007#line 1639
10008                  ExReleaseFastMutex(__cil_tmp65);
10009#line 1646
10010                  ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
10011                  }
10012#line 1652
10013                  if (ntStatus == 259L) {
10014                    {
10015#line 1656
10016                    __cil_tmp66 = (unsigned int )disketteExtension;
10017#line 1656
10018                    __cil_tmp67 = __cil_tmp66 + 92;
10019#line 1656
10020                    mem_361 = (PKTHREAD *)__cil_tmp67;
10021#line 1656
10022                    __cil_tmp68 = *mem_361;
10023#line 1656
10024                    __cil_tmp69 = (void *)__cil_tmp68;
10025#line 1656
10026                    __cil_tmp70 = (enum _KWAIT_REASON )0;
10027#line 1656
10028                    __cil_tmp71 = (void *)0;
10029#line 1656
10030                    __cil_tmp72 = (LARGE_INTEGER *)__cil_tmp71;
10031#line 1656
10032                    KeWaitForSingleObject(__cil_tmp69, __cil_tmp70, (char)0, (unsigned char)0,
10033                                          __cil_tmp72);
10034                    }
10035                    {
10036#line 1666
10037                    __cil_tmp73 = (void *)0;
10038#line 1666
10039                    __cil_tmp74 = (unsigned int )__cil_tmp73;
10040#line 1666
10041                    __cil_tmp75 = (unsigned int )disketteExtension;
10042#line 1666
10043                    __cil_tmp76 = __cil_tmp75 + 92;
10044#line 1666
10045                    mem_362 = (PKTHREAD *)__cil_tmp76;
10046#line 1666
10047                    __cil_tmp77 = *mem_362;
10048#line 1666
10049                    __cil_tmp78 = (unsigned int )__cil_tmp77;
10050#line 1666
10051                    if (__cil_tmp78 != __cil_tmp74) {
10052                      {
10053#line 1667
10054                      __cil_tmp79 = (unsigned int )disketteExtension;
10055#line 1667
10056                      __cil_tmp80 = __cil_tmp79 + 92;
10057#line 1667
10058                      mem_363 = (PKTHREAD *)__cil_tmp80;
10059#line 1667
10060                      __cil_tmp81 = *mem_363;
10061#line 1667
10062                      __cil_tmp82 = (void *)__cil_tmp81;
10063#line 1667
10064                      ObfDereferenceObject(__cil_tmp82);
10065                      }
10066                    } else {
10067
10068                    }
10069                    }
10070#line 1670
10071                    __cil_tmp83 = (unsigned int )disketteExtension;
10072#line 1670
10073                    __cil_tmp84 = __cil_tmp83 + 92;
10074#line 1670
10075                    __cil_tmp85 = (void *)0;
10076#line 1670
10077                    mem_364 = (PKTHREAD *)__cil_tmp84;
10078#line 1670
10079                    *mem_364 = (struct _KTHREAD *)__cil_tmp85;
10080#line 1672
10081                    __cil_tmp86 = (unsigned int )Irp;
10082#line 1672
10083                    __cil_tmp87 = __cil_tmp86 + 24;
10084#line 1672
10085                    mem_365 = (NTSTATUS *)__cil_tmp87;
10086#line 1672
10087                    *mem_365 = 0L;
10088#line 1673
10089                    myStatus = 0L;
10090#line 1674
10091                    if (s == 1) {
10092#line 1673
10093                      s = 3;
10094                    } else {
10095                      {
10096#line 1673
10097                      assert(0);
10098                      }
10099                    }
10100                    {
10101#line 1674
10102                    __cil_tmp88 = (unsigned int )Irp;
10103#line 1674
10104                    __cil_tmp89 = __cil_tmp88 + 35;
10105#line 1674
10106                    __cil_tmp90 = (unsigned int )Irp;
10107#line 1674
10108                    __cil_tmp91 = __cil_tmp90 + 35;
10109#line 1674
10110                    mem_366 = (CHAR *)__cil_tmp91;
10111#line 1674
10112                    __cil_tmp92 = *mem_366;
10113#line 1674
10114                    __cil_tmp93 = (int )__cil_tmp92;
10115#line 1674
10116                    __cil_tmp94 = __cil_tmp93 + 1;
10117#line 1674
10118                    mem_367 = (CHAR *)__cil_tmp89;
10119#line 1674
10120                    *mem_367 = (char )__cil_tmp94;
10121#line 1674
10122                    __cil_tmp95 = 24 + 8;
10123#line 1674
10124                    __cil_tmp96 = 0 + __cil_tmp95;
10125#line 1674
10126                    __cil_tmp97 = 64 + __cil_tmp96;
10127#line 1674
10128                    __cil_tmp98 = (unsigned int )Irp;
10129#line 1674
10130                    __cil_tmp99 = __cil_tmp98 + __cil_tmp97;
10131#line 1674
10132                    __cil_tmp100 = 24 + 8;
10133#line 1674
10134                    __cil_tmp101 = 0 + __cil_tmp100;
10135#line 1674
10136                    __cil_tmp102 = 64 + __cil_tmp101;
10137#line 1674
10138                    __cil_tmp103 = (unsigned int )Irp;
10139#line 1674
10140                    __cil_tmp104 = __cil_tmp103 + __cil_tmp102;
10141#line 1674
10142                    mem_368 = (struct _IO_STACK_LOCATION **)__cil_tmp104;
10143#line 1674
10144                    __cil_tmp105 = *mem_368;
10145#line 1674
10146                    mem_369 = (struct _IO_STACK_LOCATION **)__cil_tmp99;
10147#line 1674
10148                    *mem_369 = __cil_tmp105 + 1;
10149#line 1675
10150                    __cil_tmp106 = (unsigned int )disketteExtension;
10151#line 1675
10152                    __cil_tmp107 = __cil_tmp106 + 8;
10153#line 1675
10154                    mem_370 = (PDEVICE_OBJECT *)__cil_tmp107;
10155#line 1675
10156                    __cil_tmp108 = *mem_370;
10157#line 1675
10158                    ntStatus = IofCallDriver(__cil_tmp108, Irp);
10159                    }
10160                  } else {
10161                    {
10162#line 1682
10163                    ntStatus = -1073741823L;
10164#line 1683
10165                    __cil_tmp109 = (unsigned int )Irp;
10166#line 1683
10167                    __cil_tmp110 = __cil_tmp109 + 24;
10168#line 1683
10169                    mem_371 = (NTSTATUS *)__cil_tmp110;
10170#line 1683
10171                    *mem_371 = ntStatus;
10172#line 1684
10173                    myStatus = ntStatus;
10174#line 1686
10175                    __cil_tmp111 = 24 + 4;
10176#line 1686
10177                    __cil_tmp112 = (unsigned int )Irp;
10178#line 1686
10179                    __cil_tmp113 = __cil_tmp112 + __cil_tmp111;
10180#line 1686
10181                    mem_372 = (ULONG_PTR *)__cil_tmp113;
10182#line 1686
10183                    *mem_372 = 0UL;
10184#line 1687
10185                    IofCompleteRequest(Irp, (char)0);
10186                    }
10187                  }
10188                  goto switch_32_break;
10189                  switch_32_6: /* CIL Label */ ;
10190                  switch_32_3: /* CIL Label */ ;
10191                  {
10192#line 1692
10193                  __cil_tmp114 = (unsigned int )irpSp;
10194#line 1692
10195                  __cil_tmp115 = __cil_tmp114 + 1;
10196#line 1692
10197                  mem_373 = (UCHAR *)__cil_tmp115;
10198#line 1692
10199                  __cil_tmp116 = *mem_373;
10200#line 1692
10201                  __cil_tmp117 = (int )__cil_tmp116;
10202#line 1692
10203                  if (__cil_tmp117 == 6) {
10204                    {
10205#line 1693
10206                    while (1) {
10207                      while_35_continue: /* CIL Label */ ;
10208                      goto while_35_break;
10209                    }
10210                    while_35_break: /* CIL Label */ ;
10211                    }
10212                  } else {
10213                    {
10214#line 1695
10215                    while (1) {
10216                      while_36_continue: /* CIL Label */ ;
10217                      goto while_36_break;
10218                    }
10219                    while_36_break: /* CIL Label */ ;
10220                    }
10221                  }
10222                  }
10223                  {
10224#line 1698
10225                  __cil_tmp118 = (unsigned int )disketteExtension;
10226#line 1698
10227                  __cil_tmp119 = __cil_tmp118 + 12;
10228#line 1698
10229                  mem_374 = (BOOLEAN *)__cil_tmp119;
10230#line 1698
10231                  __cil_tmp120 = *mem_374;
10232#line 1698
10233                  if (! __cil_tmp120) {
10234#line 1706
10235                    __cil_tmp121 = (unsigned int )Irp;
10236#line 1706
10237                    __cil_tmp122 = __cil_tmp121 + 24;
10238#line 1706
10239                    mem_375 = (NTSTATUS *)__cil_tmp122;
10240#line 1706
10241                    *mem_375 = 0L;
10242#line 1707
10243                    myStatus = 0L;
10244#line 1709
10245                    if (s == 1) {
10246#line 1707
10247                      s = 3;
10248                    } else {
10249                      {
10250#line 1707
10251                      assert(0);
10252                      }
10253                    }
10254                    {
10255#line 1708
10256                    __cil_tmp123 = (unsigned int )Irp;
10257#line 1708
10258                    __cil_tmp124 = __cil_tmp123 + 35;
10259#line 1708
10260                    __cil_tmp125 = (unsigned int )Irp;
10261#line 1708
10262                    __cil_tmp126 = __cil_tmp125 + 35;
10263#line 1708
10264                    mem_376 = (CHAR *)__cil_tmp126;
10265#line 1708
10266                    __cil_tmp127 = *mem_376;
10267#line 1708
10268                    __cil_tmp128 = (int )__cil_tmp127;
10269#line 1708
10270                    __cil_tmp129 = __cil_tmp128 + 1;
10271#line 1708
10272                    mem_377 = (CHAR *)__cil_tmp124;
10273#line 1708
10274                    *mem_377 = (char )__cil_tmp129;
10275#line 1708
10276                    __cil_tmp130 = 24 + 8;
10277#line 1708
10278                    __cil_tmp131 = 0 + __cil_tmp130;
10279#line 1708
10280                    __cil_tmp132 = 64 + __cil_tmp131;
10281#line 1708
10282                    __cil_tmp133 = (unsigned int )Irp;
10283#line 1708
10284                    __cil_tmp134 = __cil_tmp133 + __cil_tmp132;
10285#line 1708
10286                    __cil_tmp135 = 24 + 8;
10287#line 1708
10288                    __cil_tmp136 = 0 + __cil_tmp135;
10289#line 1708
10290                    __cil_tmp137 = 64 + __cil_tmp136;
10291#line 1708
10292                    __cil_tmp138 = (unsigned int )Irp;
10293#line 1708
10294                    __cil_tmp139 = __cil_tmp138 + __cil_tmp137;
10295#line 1708
10296                    mem_378 = (struct _IO_STACK_LOCATION **)__cil_tmp139;
10297#line 1708
10298                    __cil_tmp140 = *mem_378;
10299#line 1708
10300                    mem_379 = (struct _IO_STACK_LOCATION **)__cil_tmp134;
10301#line 1708
10302                    *mem_379 = __cil_tmp140 + 1;
10303#line 1709
10304                    __cil_tmp141 = (unsigned int )disketteExtension;
10305#line 1709
10306                    __cil_tmp142 = __cil_tmp141 + 8;
10307#line 1709
10308                    mem_380 = (PDEVICE_OBJECT *)__cil_tmp142;
10309#line 1709
10310                    __cil_tmp143 = *mem_380;
10311#line 1709
10312                    ntStatus = IofCallDriver(__cil_tmp143, Irp);
10313                    }
10314                  } else {
10315                    {
10316#line 1718
10317                    __cil_tmp144 = (unsigned int )Irp;
10318#line 1718
10319                    __cil_tmp145 = __cil_tmp144 + 24;
10320#line 1718
10321                    mem_381 = (NTSTATUS *)__cil_tmp145;
10322#line 1718
10323                    *mem_381 = 0L;
10324#line 1719
10325                    myStatus = 0L;
10326#line 1723
10327                    __cil_tmp146 = 24 + 8;
10328#line 1723
10329                    __cil_tmp147 = 0 + __cil_tmp146;
10330#line 1723
10331                    __cil_tmp148 = 64 + __cil_tmp147;
10332#line 1723
10333                    __cil_tmp149 = (unsigned int )Irp;
10334#line 1723
10335                    __cil_tmp150 = __cil_tmp149 + __cil_tmp148;
10336#line 1723
10337                    mem_382 = (struct _IO_STACK_LOCATION **)__cil_tmp150;
10338#line 1723
10339                    irpSp___0 = *mem_382;
10340#line 1723
10341                    __cil_tmp151 = 24 + 8;
10342#line 1723
10343                    __cil_tmp152 = 0 + __cil_tmp151;
10344#line 1723
10345                    __cil_tmp153 = 64 + __cil_tmp152;
10346#line 1723
10347                    __cil_tmp154 = (unsigned int )Irp;
10348#line 1723
10349                    __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
10350#line 1723
10351                    mem_383 = (struct _IO_STACK_LOCATION **)__cil_tmp155;
10352#line 1723
10353                    __cil_tmp156 = *mem_383;
10354#line 1723
10355                    nextIrpSp = __cil_tmp156 - 1;
10356#line 1723
10357                    __cil_tmp157 = (void *)nextIrpSp;
10358#line 1723
10359                    __cil_tmp158 = (void const   *)irpSp___0;
10360#line 1723
10361                    __cil_tmp159 = (IO_STACK_LOCATION *)0;
10362#line 1723
10363                    __cil_tmp160 = (unsigned int )__cil_tmp159;
10364#line 1723
10365                    __cil_tmp161 = __cil_tmp160 + 112;
10366#line 1723
10367                    __cil_tmp162 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp ,
10368                                                  PVOID Context ))__cil_tmp161;
10369#line 1723
10370                    __cil_tmp163 = (long )__cil_tmp162;
10371#line 1723
10372                    __cil_tmp164 = (unsigned int )__cil_tmp163;
10373#line 1723
10374                    memcpy(__cil_tmp157, __cil_tmp158, __cil_tmp164);
10375#line 1723
10376                    __cil_tmp165 = (unsigned int )nextIrpSp;
10377#line 1723
10378                    __cil_tmp166 = __cil_tmp165 + 3;
10379#line 1723
10380                    mem_384 = (UCHAR *)__cil_tmp166;
10381#line 1723
10382                    *mem_384 = (unsigned char)0;
10383#line 1729
10384                    __cil_tmp167 = (enum _EVENT_TYPE )1;
10385#line 1729
10386                    KeInitializeEvent(& doneEvent, __cil_tmp167, (unsigned char)0);
10387                    }
10388#line 1733
10389                    if (s != 1) {
10390                      {
10391#line 1733
10392                      assert(0);
10393                      }
10394                    } else {
10395#line 1735
10396                      if (compRegistered != 0) {
10397                        {
10398#line 1735
10399                        assert(0);
10400                        }
10401                      } else {
10402#line 1737
10403                        compRegistered = 1;
10404#line 1738
10405                        compFptr = & FloppyPnpComplete;
10406                      }
10407                    }
10408                    {
10409#line 1744
10410                    __cil_tmp168 = 24 + 8;
10411#line 1744
10412                    __cil_tmp169 = 0 + __cil_tmp168;
10413#line 1744
10414                    __cil_tmp170 = 64 + __cil_tmp169;
10415#line 1744
10416                    __cil_tmp171 = (unsigned int )Irp;
10417#line 1744
10418                    __cil_tmp172 = __cil_tmp171 + __cil_tmp170;
10419#line 1744
10420                    mem_385 = (struct _IO_STACK_LOCATION **)__cil_tmp172;
10421#line 1744
10422                    __cil_tmp173 = *mem_385;
10423#line 1744
10424                    irpSp___1 = __cil_tmp173 - 1;
10425#line 1744
10426                    __cil_tmp174 = (unsigned int )irpSp___1;
10427#line 1744
10428                    __cil_tmp175 = __cil_tmp174 + 112;
10429#line 1744
10430                    mem_386 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp ,
10431                                             PVOID Context ))__cil_tmp175;
10432#line 1744
10433                    *mem_386 = & FloppyPnpComplete;
10434#line 1744
10435                    __cil_tmp176 = (unsigned int )irpSp___1;
10436#line 1744
10437                    __cil_tmp177 = __cil_tmp176 + 116;
10438#line 1744
10439                    mem_387 = (PVOID *)__cil_tmp177;
10440#line 1744
10441                    *mem_387 = (void *)(& doneEvent);
10442#line 1744
10443                    __cil_tmp178 = (unsigned int )irpSp___1;
10444#line 1744
10445                    __cil_tmp179 = __cil_tmp178 + 3;
10446#line 1744
10447                    mem_388 = (UCHAR *)__cil_tmp179;
10448#line 1744
10449                    *mem_388 = (unsigned char)0;
10450#line 1744
10451                    __cil_tmp180 = (unsigned int )irpSp___1;
10452#line 1744
10453                    __cil_tmp181 = __cil_tmp180 + 3;
10454#line 1744
10455                    mem_389 = (UCHAR *)__cil_tmp181;
10456#line 1744
10457                    *mem_389 = (unsigned char)64;
10458#line 1744
10459                    __cil_tmp182 = (unsigned int )irpSp___1;
10460#line 1744
10461                    __cil_tmp183 = __cil_tmp182 + 3;
10462#line 1744
10463                    __cil_tmp184 = (unsigned int )irpSp___1;
10464#line 1744
10465                    __cil_tmp185 = __cil_tmp184 + 3;
10466#line 1744
10467                    mem_390 = (UCHAR *)__cil_tmp185;
10468#line 1744
10469                    __cil_tmp186 = *mem_390;
10470#line 1744
10471                    __cil_tmp187 = (int )__cil_tmp186;
10472#line 1744
10473                    __cil_tmp188 = __cil_tmp187 | 128;
10474#line 1744
10475                    mem_391 = (UCHAR *)__cil_tmp183;
10476#line 1744
10477                    *mem_391 = (unsigned char )__cil_tmp188;
10478#line 1744
10479                    __cil_tmp189 = (unsigned int )irpSp___1;
10480#line 1744
10481                    __cil_tmp190 = __cil_tmp189 + 3;
10482#line 1744
10483                    __cil_tmp191 = (unsigned int )irpSp___1;
10484#line 1744
10485                    __cil_tmp192 = __cil_tmp191 + 3;
10486#line 1744
10487                    mem_392 = (UCHAR *)__cil_tmp192;
10488#line 1744
10489                    __cil_tmp193 = *mem_392;
10490#line 1744
10491                    __cil_tmp194 = (int )__cil_tmp193;
10492#line 1744
10493                    __cil_tmp195 = __cil_tmp194 | 32;
10494#line 1744
10495                    mem_393 = (UCHAR *)__cil_tmp190;
10496#line 1744
10497                    *mem_393 = (unsigned char )__cil_tmp195;
10498#line 1746
10499                    __cil_tmp196 = (unsigned int )disketteExtension;
10500#line 1746
10501                    __cil_tmp197 = __cil_tmp196 + 8;
10502#line 1746
10503                    mem_394 = (PDEVICE_OBJECT *)__cil_tmp197;
10504#line 1746
10505                    __cil_tmp198 = *mem_394;
10506#line 1746
10507                    ntStatus = IofCallDriver(__cil_tmp198, Irp);
10508                    }
10509#line 1748
10510                    if (ntStatus == 259L) {
10511                      {
10512#line 1750
10513                      __cil_tmp199 = (void *)(& doneEvent);
10514#line 1750
10515                      __cil_tmp200 = (enum _KWAIT_REASON )0;
10516#line 1750
10517                      __cil_tmp201 = (void *)0;
10518#line 1750
10519                      __cil_tmp202 = (LARGE_INTEGER *)__cil_tmp201;
10520#line 1750
10521                      KeWaitForSingleObject(__cil_tmp199, __cil_tmp200, (char)0, (unsigned char)0,
10522                                            __cil_tmp202);
10523#line 1757
10524                      ntStatus = myStatus;
10525                      }
10526                    } else {
10527
10528                    }
10529                    {
10530#line 1759
10531                    __cil_tmp203 = (unsigned int )disketteExtension;
10532#line 1759
10533                    __cil_tmp204 = __cil_tmp203 + 428;
10534#line 1759
10535                    __cil_tmp205 = (FAST_MUTEX *)__cil_tmp204;
10536#line 1759
10537                    ExAcquireFastMutex(__cil_tmp205);
10538#line 1760
10539                    __cil_tmp206 = (unsigned int )disketteExtension;
10540#line 1760
10541                    __cil_tmp207 = __cil_tmp206 + 14;
10542#line 1760
10543                    mem_395 = (BOOLEAN *)__cil_tmp207;
10544#line 1760
10545                    *mem_395 = (unsigned char)0;
10546#line 1761
10547                    __cil_tmp208 = (unsigned int )disketteExtension;
10548#line 1761
10549                    __cil_tmp209 = __cil_tmp208 + 428;
10550#line 1761
10551                    __cil_tmp210 = (FAST_MUTEX *)__cil_tmp209;
10552#line 1761
10553                    ExReleaseFastMutex(__cil_tmp210);
10554#line 1766
10555                    FloppyProcessQueuedRequests(disketteExtension);
10556#line 1772
10557                    __cil_tmp211 = (unsigned int )Irp;
10558#line 1772
10559                    __cil_tmp212 = __cil_tmp211 + 24;
10560#line 1772
10561                    mem_396 = (NTSTATUS *)__cil_tmp212;
10562#line 1772
10563                    *mem_396 = ntStatus;
10564#line 1773
10565                    myStatus = ntStatus;
10566#line 1775
10567                    __cil_tmp213 = 24 + 4;
10568#line 1775
10569                    __cil_tmp214 = (unsigned int )Irp;
10570#line 1775
10571                    __cil_tmp215 = __cil_tmp214 + __cil_tmp213;
10572#line 1775
10573                    mem_397 = (ULONG_PTR *)__cil_tmp215;
10574#line 1775
10575                    *mem_397 = 0UL;
10576#line 1776
10577                    IofCompleteRequest(Irp, (char)0);
10578                    }
10579                  }
10580                  }
10581                  goto switch_32_break;
10582                  switch_32_4: /* CIL Label */ ;
10583                  {
10584#line 1780
10585                  while (1) {
10586                    while_37_continue: /* CIL Label */ ;
10587                    goto while_37_break;
10588                  }
10589                  while_37_break: /* CIL Label */ ;
10590                  }
10591#line 1782
10592                  __cil_tmp216 = (unsigned int )disketteExtension;
10593#line 1782
10594                  __cil_tmp217 = __cil_tmp216 + 12;
10595#line 1782
10596                  mem_398 = (BOOLEAN *)__cil_tmp217;
10597#line 1782
10598                  *mem_398 = (unsigned char)0;
10599#line 1784
10600                  __cil_tmp218 = (unsigned int )Irp;
10601#line 1784
10602                  __cil_tmp219 = __cil_tmp218 + 24;
10603#line 1784
10604                  mem_399 = (NTSTATUS *)__cil_tmp219;
10605#line 1784
10606                  *mem_399 = 0L;
10607#line 1785
10608                  myStatus = 0L;
10609#line 1786
10610                  if (s == 1) {
10611#line 1785
10612                    s = 3;
10613                  } else {
10614                    {
10615#line 1785
10616                    assert(0);
10617                    }
10618                  }
10619                  {
10620#line 1786
10621                  __cil_tmp220 = (unsigned int )Irp;
10622#line 1786
10623                  __cil_tmp221 = __cil_tmp220 + 35;
10624#line 1786
10625                  __cil_tmp222 = (unsigned int )Irp;
10626#line 1786
10627                  __cil_tmp223 = __cil_tmp222 + 35;
10628#line 1786
10629                  mem_400 = (CHAR *)__cil_tmp223;
10630#line 1786
10631                  __cil_tmp224 = *mem_400;
10632#line 1786
10633                  __cil_tmp225 = (int )__cil_tmp224;
10634#line 1786
10635                  __cil_tmp226 = __cil_tmp225 + 1;
10636#line 1786
10637                  mem_401 = (CHAR *)__cil_tmp221;
10638#line 1786
10639                  *mem_401 = (char )__cil_tmp226;
10640#line 1786
10641                  __cil_tmp227 = 24 + 8;
10642#line 1786
10643                  __cil_tmp228 = 0 + __cil_tmp227;
10644#line 1786
10645                  __cil_tmp229 = 64 + __cil_tmp228;
10646#line 1786
10647                  __cil_tmp230 = (unsigned int )Irp;
10648#line 1786
10649                  __cil_tmp231 = __cil_tmp230 + __cil_tmp229;
10650#line 1786
10651                  __cil_tmp232 = 24 + 8;
10652#line 1786
10653                  __cil_tmp233 = 0 + __cil_tmp232;
10654#line 1786
10655                  __cil_tmp234 = 64 + __cil_tmp233;
10656#line 1786
10657                  __cil_tmp235 = (unsigned int )Irp;
10658#line 1786
10659                  __cil_tmp236 = __cil_tmp235 + __cil_tmp234;
10660#line 1786
10661                  mem_402 = (struct _IO_STACK_LOCATION **)__cil_tmp236;
10662#line 1786
10663                  __cil_tmp237 = *mem_402;
10664#line 1786
10665                  mem_403 = (struct _IO_STACK_LOCATION **)__cil_tmp231;
10666#line 1786
10667                  *mem_403 = __cil_tmp237 + 1;
10668#line 1787
10669                  __cil_tmp238 = (unsigned int )disketteExtension;
10670#line 1787
10671                  __cil_tmp239 = __cil_tmp238 + 8;
10672#line 1787
10673                  mem_404 = (PDEVICE_OBJECT *)__cil_tmp239;
10674#line 1787
10675                  __cil_tmp240 = *mem_404;
10676#line 1787
10677                  ntStatus = IofCallDriver(__cil_tmp240, Irp);
10678                  }
10679                  goto switch_32_break;
10680                  switch_32_2: /* CIL Label */ ;
10681                  {
10682#line 1793
10683                  while (1) {
10684                    while_38_continue: /* CIL Label */ ;
10685                    goto while_38_break;
10686                  }
10687                  while_38_break: /* CIL Label */ ;
10688                  }
10689                  {
10690#line 1800
10691                  __cil_tmp241 = (unsigned int )disketteExtension;
10692#line 1800
10693                  __cil_tmp242 = __cil_tmp241 + 428;
10694#line 1800
10695                  __cil_tmp243 = (FAST_MUTEX *)__cil_tmp242;
10696#line 1800
10697                  ExAcquireFastMutex(__cil_tmp243);
10698#line 1801
10699                  __cil_tmp244 = (unsigned int )disketteExtension;
10700#line 1801
10701                  __cil_tmp245 = __cil_tmp244 + 14;
10702#line 1801
10703                  mem_405 = (BOOLEAN *)__cil_tmp245;
10704#line 1801
10705                  *mem_405 = (unsigned char)0;
10706#line 1802
10707                  __cil_tmp246 = (unsigned int )disketteExtension;
10708#line 1802
10709                  __cil_tmp247 = __cil_tmp246 + 428;
10710#line 1802
10711                  __cil_tmp248 = (FAST_MUTEX *)__cil_tmp247;
10712#line 1802
10713                  ExReleaseFastMutex(__cil_tmp248);
10714#line 1804
10715                  __cil_tmp249 = (unsigned int )disketteExtension;
10716#line 1804
10717                  __cil_tmp250 = __cil_tmp249 + 12;
10718#line 1804
10719                  mem_406 = (BOOLEAN *)__cil_tmp250;
10720#line 1804
10721                  *mem_406 = (unsigned char)0;
10722#line 1805
10723                  __cil_tmp251 = (unsigned int )disketteExtension;
10724#line 1805
10725                  __cil_tmp252 = __cil_tmp251 + 13;
10726#line 1805
10727                  mem_407 = (BOOLEAN *)__cil_tmp252;
10728#line 1805
10729                  *mem_407 = (unsigned char)1;
10730#line 1815
10731                  FloppyProcessQueuedRequests(disketteExtension);
10732                  }
10733#line 1820
10734                  if (s == 1) {
10735#line 1820
10736                    s = 3;
10737                  } else {
10738                    {
10739#line 1820
10740                    assert(0);
10741                    }
10742                  }
10743                  {
10744#line 1821
10745                  __cil_tmp253 = (unsigned int )Irp;
10746#line 1821
10747                  __cil_tmp254 = __cil_tmp253 + 35;
10748#line 1821
10749                  __cil_tmp255 = (unsigned int )Irp;
10750#line 1821
10751                  __cil_tmp256 = __cil_tmp255 + 35;
10752#line 1821
10753                  mem_408 = (CHAR *)__cil_tmp256;
10754#line 1821
10755                  __cil_tmp257 = *mem_408;
10756#line 1821
10757                  __cil_tmp258 = (int )__cil_tmp257;
10758#line 1821
10759                  __cil_tmp259 = __cil_tmp258 + 1;
10760#line 1821
10761                  mem_409 = (CHAR *)__cil_tmp254;
10762#line 1821
10763                  *mem_409 = (char )__cil_tmp259;
10764#line 1821
10765                  __cil_tmp260 = 24 + 8;
10766#line 1821
10767                  __cil_tmp261 = 0 + __cil_tmp260;
10768#line 1821
10769                  __cil_tmp262 = 64 + __cil_tmp261;
10770#line 1821
10771                  __cil_tmp263 = (unsigned int )Irp;
10772#line 1821
10773                  __cil_tmp264 = __cil_tmp263 + __cil_tmp262;
10774#line 1821
10775                  __cil_tmp265 = 24 + 8;
10776#line 1821
10777                  __cil_tmp266 = 0 + __cil_tmp265;
10778#line 1821
10779                  __cil_tmp267 = 64 + __cil_tmp266;
10780#line 1821
10781                  __cil_tmp268 = (unsigned int )Irp;
10782#line 1821
10783                  __cil_tmp269 = __cil_tmp268 + __cil_tmp267;
10784#line 1821
10785                  mem_410 = (struct _IO_STACK_LOCATION **)__cil_tmp269;
10786#line 1821
10787                  __cil_tmp270 = *mem_410;
10788#line 1821
10789                  mem_411 = (struct _IO_STACK_LOCATION **)__cil_tmp264;
10790#line 1821
10791                  *mem_411 = __cil_tmp270 + 1;
10792#line 1822
10793                  __cil_tmp271 = (unsigned int )Irp;
10794#line 1822
10795                  __cil_tmp272 = __cil_tmp271 + 24;
10796#line 1822
10797                  mem_412 = (NTSTATUS *)__cil_tmp272;
10798#line 1822
10799                  *mem_412 = 0L;
10800#line 1823
10801                  myStatus = 0L;
10802#line 1824
10803                  __cil_tmp273 = (unsigned int )disketteExtension;
10804#line 1824
10805                  __cil_tmp274 = __cil_tmp273 + 8;
10806#line 1824
10807                  mem_413 = (PDEVICE_OBJECT *)__cil_tmp274;
10808#line 1824
10809                  __cil_tmp275 = *mem_413;
10810#line 1824
10811                  ntStatus = IofCallDriver(__cil_tmp275, Irp);
10812                  }
10813                  {
10814#line 1828
10815                  __cil_tmp276 = (void *)0;
10816#line 1828
10817                  __cil_tmp277 = (unsigned int )__cil_tmp276;
10818#line 1828
10819                  __cil_tmp278 = 376 + 4;
10820#line 1828
10821                  __cil_tmp279 = (unsigned int )disketteExtension;
10822#line 1828
10823                  __cil_tmp280 = __cil_tmp279 + __cil_tmp278;
10824#line 1828
10825                  mem_414 = (PWSTR *)__cil_tmp280;
10826#line 1828
10827                  __cil_tmp281 = *mem_414;
10828#line 1828
10829                  __cil_tmp282 = (unsigned int )__cil_tmp281;
10830#line 1828
10831                  if (__cil_tmp282 != __cil_tmp277) {
10832                    {
10833#line 1830
10834                    __cil_tmp283 = (unsigned int )disketteExtension;
10835#line 1830
10836                    __cil_tmp284 = __cil_tmp283 + 376;
10837#line 1830
10838                    __cil_tmp285 = (UNICODE_STRING *)__cil_tmp284;
10839#line 1830
10840                    IoSetDeviceInterfaceState(__cil_tmp285, (unsigned char)0);
10841#line 1833
10842                    __cil_tmp286 = (unsigned int )disketteExtension;
10843#line 1833
10844                    __cil_tmp287 = __cil_tmp286 + 376;
10845#line 1833
10846                    __cil_tmp288 = (UNICODE_STRING *)__cil_tmp287;
10847#line 1833
10848                    RtlFreeUnicodeString(__cil_tmp288);
10849#line 1834
10850                    __cil_tmp289 = (unsigned int )disketteExtension;
10851#line 1834
10852                    __cil_tmp290 = __cil_tmp289 + 376;
10853#line 1834
10854                    __cil_tmp291 = (UNICODE_STRING *)__cil_tmp290;
10855#line 1834
10856                    __cil_tmp292 = (void *)0;
10857#line 1834
10858                    __cil_tmp293 = (WCHAR const   *)__cil_tmp292;
10859#line 1834
10860                    RtlInitUnicodeString(__cil_tmp291, __cil_tmp293);
10861                    }
10862                  } else {
10863
10864                  }
10865                  }
10866                  {
10867#line 1837
10868                  __cil_tmp294 = (unsigned int )disketteExtension;
10869#line 1837
10870                  __cil_tmp295 = __cil_tmp294 + 368;
10871#line 1837
10872                  __cil_tmp296 = (UNICODE_STRING *)__cil_tmp295;
10873#line 1837
10874                  RtlFreeUnicodeString(__cil_tmp296);
10875#line 1838
10876                  __cil_tmp297 = (unsigned int )disketteExtension;
10877#line 1838
10878                  __cil_tmp298 = __cil_tmp297 + 368;
10879#line 1838
10880                  __cil_tmp299 = (UNICODE_STRING *)__cil_tmp298;
10881#line 1838
10882                  __cil_tmp300 = (void *)0;
10883#line 1838
10884                  __cil_tmp301 = (WCHAR const   *)__cil_tmp300;
10885#line 1838
10886                  RtlInitUnicodeString(__cil_tmp299, __cil_tmp301);
10887                  }
10888                  {
10889#line 1840
10890                  __cil_tmp302 = (unsigned int )disketteExtension;
10891#line 1840
10892                  __cil_tmp303 = __cil_tmp302 + 384;
10893#line 1840
10894                  mem_415 = (USHORT *)__cil_tmp303;
10895#line 1840
10896                  __cil_tmp304 = *mem_415;
10897#line 1840
10898                  __cil_tmp305 = (int )__cil_tmp304;
10899#line 1840
10900                  if (__cil_tmp305 != 0) {
10901                    {
10902#line 1842
10903                    __cil_tmp306 = (unsigned int )disketteExtension;
10904#line 1842
10905                    __cil_tmp307 = __cil_tmp306 + 384;
10906#line 1842
10907                    __cil_tmp308 = (UNICODE_STRING *)__cil_tmp307;
10908#line 1842
10909                    IoDeleteSymbolicLink(__cil_tmp308);
10910#line 1843
10911                    __cil_tmp309 = (unsigned int )disketteExtension;
10912#line 1843
10913                    __cil_tmp310 = __cil_tmp309 + 384;
10914#line 1843
10915                    __cil_tmp311 = (UNICODE_STRING *)__cil_tmp310;
10916#line 1843
10917                    RtlFreeUnicodeString(__cil_tmp311);
10918#line 1844
10919                    __cil_tmp312 = (unsigned int )disketteExtension;
10920#line 1844
10921                    __cil_tmp313 = __cil_tmp312 + 384;
10922#line 1844
10923                    __cil_tmp314 = (UNICODE_STRING *)__cil_tmp313;
10924#line 1844
10925                    __cil_tmp315 = (void *)0;
10926#line 1844
10927                    __cil_tmp316 = (WCHAR const   *)__cil_tmp315;
10928#line 1844
10929                    RtlInitUnicodeString(__cil_tmp314, __cil_tmp316);
10930                    }
10931                  } else {
10932
10933                  }
10934                  }
10935                  {
10936#line 1850
10937                  __cil_tmp317 = (unsigned int )disketteExtension;
10938#line 1850
10939                  __cil_tmp318 = __cil_tmp317 + 8;
10940#line 1850
10941                  mem_416 = (PDEVICE_OBJECT *)__cil_tmp318;
10942#line 1850
10943                  __cil_tmp319 = *mem_416;
10944#line 1850
10945                  IoDetachDevice(__cil_tmp319);
10946#line 1855
10947                  IoDeleteDevice(DeviceObject);
10948#line 1857
10949                  tmp = IoGetConfigurationInformation();
10950#line 1857
10951                  __cil_tmp320 = (unsigned int )tmp;
10952#line 1857
10953                  __cil_tmp321 = __cil_tmp320 + 4;
10954#line 1857
10955                  __cil_tmp322 = (unsigned int )tmp;
10956#line 1857
10957                  __cil_tmp323 = __cil_tmp322 + 4;
10958#line 1857
10959                  mem_417 = (ULONG *)__cil_tmp323;
10960#line 1857
10961                  __cil_tmp324 = *mem_417;
10962#line 1857
10963                  mem_418 = (ULONG *)__cil_tmp321;
10964#line 1857
10965                  *mem_418 = __cil_tmp324 - 1UL;
10966                  }
10967                  goto switch_32_break;
10968                  switch_32_default: /* CIL Label */ ;
10969                  {
10970#line 1862
10971                  while (1) {
10972                    while_39_continue: /* CIL Label */ ;
10973                    goto while_39_break;
10974                  }
10975                  while_39_break: /* CIL Label */ ;
10976                  }
10977#line 1863
10978                  if (s == 1) {
10979#line 1863
10980                    s = 3;
10981                  } else {
10982                    {
10983#line 1863
10984                    assert(0);
10985                    }
10986                  }
10987                  {
10988#line 1864
10989                  __cil_tmp325 = (unsigned int )Irp;
10990#line 1864
10991                  __cil_tmp326 = __cil_tmp325 + 35;
10992#line 1864
10993                  __cil_tmp327 = (unsigned int )Irp;
10994#line 1864
10995                  __cil_tmp328 = __cil_tmp327 + 35;
10996#line 1864
10997                  mem_419 = (CHAR *)__cil_tmp328;
10998#line 1864
10999                  __cil_tmp329 = *mem_419;
11000#line 1864
11001                  __cil_tmp330 = (int )__cil_tmp329;
11002#line 1864
11003                  __cil_tmp331 = __cil_tmp330 + 1;
11004#line 1864
11005                  mem_420 = (CHAR *)__cil_tmp326;
11006#line 1864
11007                  *mem_420 = (char )__cil_tmp331;
11008#line 1864
11009                  __cil_tmp332 = 24 + 8;
11010#line 1864
11011                  __cil_tmp333 = 0 + __cil_tmp332;
11012#line 1864
11013                  __cil_tmp334 = 64 + __cil_tmp333;
11014#line 1864
11015                  __cil_tmp335 = (unsigned int )Irp;
11016#line 1864
11017                  __cil_tmp336 = __cil_tmp335 + __cil_tmp334;
11018#line 1864
11019                  __cil_tmp337 = 24 + 8;
11020#line 1864
11021                  __cil_tmp338 = 0 + __cil_tmp337;
11022#line 1864
11023                  __cil_tmp339 = 64 + __cil_tmp338;
11024#line 1864
11025                  __cil_tmp340 = (unsigned int )Irp;
11026#line 1864
11027                  __cil_tmp341 = __cil_tmp340 + __cil_tmp339;
11028#line 1864
11029                  mem_421 = (struct _IO_STACK_LOCATION **)__cil_tmp341;
11030#line 1864
11031                  __cil_tmp342 = *mem_421;
11032#line 1864
11033                  mem_422 = (struct _IO_STACK_LOCATION **)__cil_tmp336;
11034#line 1864
11035                  *mem_422 = __cil_tmp342 + 1;
11036#line 1865
11037                  __cil_tmp343 = (unsigned int )disketteExtension;
11038#line 1865
11039                  __cil_tmp344 = __cil_tmp343 + 8;
11040#line 1865
11041                  mem_423 = (PDEVICE_OBJECT *)__cil_tmp344;
11042#line 1865
11043                  __cil_tmp345 = *mem_423;
11044#line 1865
11045                  ntStatus = IofCallDriver(__cil_tmp345, Irp);
11046                  }
11047                } else {
11048                  switch_32_break: /* CIL Label */ ;
11049                }
11050                }
11051              }
11052            }
11053          }
11054        }
11055      }
11056    }
11057  }
11058  }
11059  {
11060#line 1871
11061  ExAcquireFastMutex(PagingMutex);
11062#line 1871
11063  PagingReferenceCount = PagingReferenceCount - 1UL;
11064  }
11065#line 1871
11066  if (PagingReferenceCount == 0UL) {
11067    {
11068#line 1871
11069    __cil_tmp346 = (void *)(& DriverEntry);
11070#line 1871
11071    MmPageEntireDriver(__cil_tmp346);
11072    }
11073  } else {
11074
11075  }
11076  {
11077#line 1871
11078  ExReleaseFastMutex(PagingMutex);
11079  }
11080#line 1873
11081  return (ntStatus);
11082}
11083}
11084#line 1876 "floppy.c"
11085NTSTATUS FloppyStartDevice(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
11086{ NTSTATUS ntStatus ;
11087  NTSTATUS pnpStatus ;
11088  KEVENT doneEvent ;
11089  FDC_INFO fdcInfo ;
11090  CONFIGURATION_TYPE Dc ;
11091  CONFIGURATION_TYPE Fp ;
11092  PDISKETTE_EXTENSION disketteExtension ;
11093  PIO_STACK_LOCATION irpSp ;
11094  PIO_STACK_LOCATION irpSp___0 ;
11095  PIO_STACK_LOCATION nextIrpSp ;
11096  PIO_STACK_LOCATION irpSp___1 ;
11097  INTERFACE_TYPE InterfaceType ;
11098  CONFIGURATION_TYPE *__cil_tmp15 ;
11099  CONFIGURATION_TYPE *__cil_tmp16 ;
11100  unsigned int __cil_tmp17 ;
11101  unsigned int __cil_tmp18 ;
11102  PVOID __cil_tmp19 ;
11103  unsigned int __cil_tmp20 ;
11104  unsigned int __cil_tmp21 ;
11105  unsigned int __cil_tmp22 ;
11106  unsigned int __cil_tmp23 ;
11107  unsigned int __cil_tmp24 ;
11108  enum _EVENT_TYPE __cil_tmp25 ;
11109  unsigned int __cil_tmp26 ;
11110  unsigned int __cil_tmp27 ;
11111  unsigned int __cil_tmp28 ;
11112  unsigned int __cil_tmp29 ;
11113  unsigned int __cil_tmp30 ;
11114  unsigned int __cil_tmp31 ;
11115  unsigned int __cil_tmp32 ;
11116  unsigned int __cil_tmp33 ;
11117  unsigned int __cil_tmp34 ;
11118  unsigned int __cil_tmp35 ;
11119  struct _IO_STACK_LOCATION *__cil_tmp36 ;
11120  void *__cil_tmp37 ;
11121  void const   *__cil_tmp38 ;
11122  IO_STACK_LOCATION *__cil_tmp39 ;
11123  unsigned int __cil_tmp40 ;
11124  unsigned int __cil_tmp41 ;
11125  NTSTATUS (**__cil_tmp42)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
11126  long __cil_tmp43 ;
11127  unsigned int __cil_tmp44 ;
11128  unsigned int __cil_tmp45 ;
11129  unsigned int __cil_tmp46 ;
11130  unsigned int __cil_tmp47 ;
11131  unsigned int __cil_tmp48 ;
11132  unsigned int __cil_tmp49 ;
11133  unsigned int __cil_tmp50 ;
11134  unsigned int __cil_tmp51 ;
11135  struct _IO_STACK_LOCATION *__cil_tmp52 ;
11136  unsigned int __cil_tmp53 ;
11137  unsigned int __cil_tmp54 ;
11138  unsigned int __cil_tmp55 ;
11139  unsigned int __cil_tmp56 ;
11140  unsigned int __cil_tmp57 ;
11141  unsigned int __cil_tmp58 ;
11142  unsigned int __cil_tmp59 ;
11143  unsigned int __cil_tmp60 ;
11144  unsigned int __cil_tmp61 ;
11145  unsigned int __cil_tmp62 ;
11146  unsigned int __cil_tmp63 ;
11147  unsigned int __cil_tmp64 ;
11148  UCHAR __cil_tmp65 ;
11149  int __cil_tmp66 ;
11150  int __cil_tmp67 ;
11151  unsigned int __cil_tmp68 ;
11152  unsigned int __cil_tmp69 ;
11153  unsigned int __cil_tmp70 ;
11154  unsigned int __cil_tmp71 ;
11155  UCHAR __cil_tmp72 ;
11156  int __cil_tmp73 ;
11157  int __cil_tmp74 ;
11158  unsigned int __cil_tmp75 ;
11159  unsigned int __cil_tmp76 ;
11160  PDEVICE_OBJECT __cil_tmp77 ;
11161  void *__cil_tmp78 ;
11162  enum _KWAIT_REASON __cil_tmp79 ;
11163  void *__cil_tmp80 ;
11164  LARGE_INTEGER *__cil_tmp81 ;
11165  unsigned int __cil_tmp82 ;
11166  unsigned int __cil_tmp83 ;
11167  unsigned int __cil_tmp84 ;
11168  unsigned int __cil_tmp85 ;
11169  PDEVICE_OBJECT __cil_tmp86 ;
11170  int __cil_tmp87 ;
11171  int __cil_tmp88 ;
11172  int __cil_tmp89 ;
11173  int __cil_tmp90 ;
11174  unsigned long __cil_tmp91 ;
11175  void *__cil_tmp92 ;
11176  unsigned int __cil_tmp93 ;
11177  unsigned int __cil_tmp94 ;
11178  unsigned int __cil_tmp95 ;
11179  unsigned int __cil_tmp96 ;
11180  unsigned int __cil_tmp97 ;
11181  unsigned int __cil_tmp98 ;
11182  unsigned int __cil_tmp99 ;
11183  UCHAR __cil_tmp100 ;
11184  int __cil_tmp101 ;
11185  unsigned int __cil_tmp102 ;
11186  unsigned int __cil_tmp103 ;
11187  unsigned int __cil_tmp104 ;
11188  ULONG __cil_tmp105 ;
11189  int __cil_tmp106 ;
11190  unsigned int __cil_tmp107 ;
11191  unsigned int __cil_tmp108 ;
11192  UCHAR __cil_tmp109 ;
11193  int __cil_tmp110 ;
11194  int __cil_tmp111 ;
11195  unsigned int __cil_tmp112 ;
11196  unsigned int __cil_tmp113 ;
11197  UCHAR __cil_tmp114 ;
11198  int __cil_tmp115 ;
11199  unsigned int __cil_tmp116 ;
11200  unsigned int __cil_tmp117 ;
11201  unsigned int __cil_tmp118 ;
11202  ULONG __cil_tmp119 ;
11203  int __cil_tmp120 ;
11204  unsigned int __cil_tmp121 ;
11205  unsigned int __cil_tmp122 ;
11206  UCHAR __cil_tmp123 ;
11207  int __cil_tmp124 ;
11208  int __cil_tmp125 ;
11209  int __cil_tmp126 ;
11210  unsigned int __cil_tmp127 ;
11211  unsigned int __cil_tmp128 ;
11212  INTERFACE_TYPE *__cil_tmp129 ;
11213  unsigned int __cil_tmp130 ;
11214  ULONG *__cil_tmp131 ;
11215  unsigned int __cil_tmp132 ;
11216  ULONG *__cil_tmp133 ;
11217  unsigned int __cil_tmp134 ;
11218  ULONG *__cil_tmp135 ;
11219  void *__cil_tmp136 ;
11220  int __cil_tmp137 ;
11221  int __cil_tmp138 ;
11222  KUSER_SHARED_DATA *__cil_tmp139 ;
11223  unsigned int __cil_tmp140 ;
11224  unsigned int __cil_tmp141 ;
11225  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp142 ;
11226  int __cil_tmp143 ;
11227  unsigned int __cil_tmp144 ;
11228  unsigned int __cil_tmp145 ;
11229  unsigned int __cil_tmp146 ;
11230  ULONG __cil_tmp147 ;
11231  unsigned int __cil_tmp148 ;
11232  unsigned int __cil_tmp149 ;
11233  unsigned int __cil_tmp150 ;
11234  ULONG __cil_tmp151 ;
11235  unsigned int __cil_tmp152 ;
11236  unsigned int __cil_tmp153 ;
11237  unsigned int __cil_tmp154 ;
11238  ULONG __cil_tmp155 ;
11239  unsigned int __cil_tmp156 ;
11240  unsigned int __cil_tmp157 ;
11241  unsigned int __cil_tmp158 ;
11242  ULONG __cil_tmp159 ;
11243  int __cil_tmp160 ;
11244  unsigned long __cil_tmp161 ;
11245  unsigned int __cil_tmp162 ;
11246  ULONG __cil_tmp163 ;
11247  unsigned long __cil_tmp164 ;
11248  unsigned int __cil_tmp165 ;
11249  unsigned int __cil_tmp166 ;
11250  PDEVICE_OBJECT __cil_tmp167 ;
11251  GUID *__cil_tmp168 ;
11252  GUID const   *__cil_tmp169 ;
11253  void *__cil_tmp170 ;
11254  UNICODE_STRING *__cil_tmp171 ;
11255  unsigned int __cil_tmp172 ;
11256  unsigned int __cil_tmp173 ;
11257  UNICODE_STRING *__cil_tmp174 ;
11258  unsigned int __cil_tmp175 ;
11259  unsigned int __cil_tmp176 ;
11260  UNICODE_STRING *__cil_tmp177 ;
11261  unsigned int __cil_tmp178 ;
11262  unsigned int __cil_tmp179 ;
11263  unsigned int __cil_tmp180 ;
11264  unsigned int __cil_tmp181 ;
11265  FAST_MUTEX *__cil_tmp182 ;
11266  unsigned int __cil_tmp183 ;
11267  unsigned int __cil_tmp184 ;
11268  unsigned int __cil_tmp185 ;
11269  unsigned int __cil_tmp186 ;
11270  FAST_MUTEX *__cil_tmp187 ;
11271  unsigned int __cil_tmp188 ;
11272  unsigned int __cil_tmp189 ;
11273  PVOID *mem_190 ;
11274  struct _IO_STACK_LOCATION **mem_191 ;
11275  struct _IO_STACK_LOCATION **mem_192 ;
11276  struct _IO_STACK_LOCATION **mem_193 ;
11277  UCHAR *mem_194 ;
11278  struct _IO_STACK_LOCATION **mem_195 ;
11279  NTSTATUS (**mem_196)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
11280  PVOID *mem_197 ;
11281  UCHAR *mem_198 ;
11282  UCHAR *mem_199 ;
11283  UCHAR *mem_200 ;
11284  UCHAR *mem_201 ;
11285  UCHAR *mem_202 ;
11286  UCHAR *mem_203 ;
11287  PDEVICE_OBJECT *mem_204 ;
11288  ULONG *mem_205 ;
11289  ULONG *mem_206 ;
11290  PDEVICE_OBJECT *mem_207 ;
11291  ULONG *mem_208 ;
11292  ULONG *mem_209 ;
11293  BOOLEAN *mem_210 ;
11294  BOOLEAN *mem_211 ;
11295  UCHAR *mem_212 ;
11296  ULONG *mem_213 ;
11297  UCHAR *mem_214 ;
11298  UCHAR *mem_215 ;
11299  UCHAR *mem_216 ;
11300  ULONG *mem_217 ;
11301  UCHAR *mem_218 ;
11302  UCHAR *mem_219 ;
11303  INTERFACE_TYPE *mem_220 ;
11304  ALTERNATIVE_ARCHITECTURE_TYPE *mem_221 ;
11305  ULONG *mem_222 ;
11306  UCHAR *mem_223 ;
11307  ULONG *mem_224 ;
11308  UCHAR *mem_225 ;
11309  ULONG *mem_226 ;
11310  UCHAR *mem_227 ;
11311  ULONG *mem_228 ;
11312  ULONG *mem_229 ;
11313  UCHAR *mem_230 ;
11314  PDEVICE_OBJECT *mem_231 ;
11315  BOOLEAN *mem_232 ;
11316  BOOLEAN *mem_233 ;
11317  NTSTATUS *mem_234 ;
11318
11319  {
11320#line 1887
11321  __cil_tmp15 = & Dc;
11322#line 1887
11323  *__cil_tmp15 = (enum _CONFIGURATION_TYPE )13;
11324#line 1888
11325  __cil_tmp16 = & Fp;
11326#line 1888
11327  *__cil_tmp16 = (enum _CONFIGURATION_TYPE )26;
11328#line 1890
11329  __cil_tmp17 = (unsigned int )DeviceObject;
11330#line 1890
11331  __cil_tmp18 = __cil_tmp17 + 40;
11332#line 1890
11333  mem_190 = (PVOID *)__cil_tmp18;
11334#line 1890
11335  __cil_tmp19 = *mem_190;
11336#line 1890
11337  disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp19;
11338#line 1891
11339  __cil_tmp20 = 24 + 8;
11340#line 1891
11341  __cil_tmp21 = 0 + __cil_tmp20;
11342#line 1891
11343  __cil_tmp22 = 64 + __cil_tmp21;
11344#line 1891
11345  __cil_tmp23 = (unsigned int )Irp;
11346#line 1891
11347  __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
11348#line 1891
11349  mem_191 = (struct _IO_STACK_LOCATION **)__cil_tmp24;
11350#line 1891
11351  irpSp = *mem_191;
11352  {
11353#line 1893
11354  while (1) {
11355    while_40_continue: /* CIL Label */ ;
11356    goto while_40_break;
11357  }
11358  while_40_break: /* CIL Label */ ;
11359  }
11360  {
11361#line 1894
11362  while (1) {
11363    while_41_continue: /* CIL Label */ ;
11364    goto while_41_break;
11365  }
11366  while_41_break: /* CIL Label */ ;
11367  }
11368  {
11369#line 1895
11370  while (1) {
11371    while_42_continue: /* CIL Label */ ;
11372    goto while_42_break;
11373  }
11374  while_42_break: /* CIL Label */ ;
11375  }
11376  {
11377#line 1900
11378  __cil_tmp25 = (enum _EVENT_TYPE )0;
11379#line 1900
11380  KeInitializeEvent(& doneEvent, __cil_tmp25, (unsigned char)0);
11381#line 1902
11382  __cil_tmp26 = 24 + 8;
11383#line 1902
11384  __cil_tmp27 = 0 + __cil_tmp26;
11385#line 1902
11386  __cil_tmp28 = 64 + __cil_tmp27;
11387#line 1902
11388  __cil_tmp29 = (unsigned int )Irp;
11389#line 1902
11390  __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
11391#line 1902
11392  mem_192 = (struct _IO_STACK_LOCATION **)__cil_tmp30;
11393#line 1902
11394  irpSp___0 = *mem_192;
11395#line 1902
11396  __cil_tmp31 = 24 + 8;
11397#line 1902
11398  __cil_tmp32 = 0 + __cil_tmp31;
11399#line 1902
11400  __cil_tmp33 = 64 + __cil_tmp32;
11401#line 1902
11402  __cil_tmp34 = (unsigned int )Irp;
11403#line 1902
11404  __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
11405#line 1902
11406  mem_193 = (struct _IO_STACK_LOCATION **)__cil_tmp35;
11407#line 1902
11408  __cil_tmp36 = *mem_193;
11409#line 1902
11410  nextIrpSp = __cil_tmp36 - 1;
11411#line 1902
11412  __cil_tmp37 = (void *)nextIrpSp;
11413#line 1902
11414  __cil_tmp38 = (void const   *)irpSp___0;
11415#line 1902
11416  __cil_tmp39 = (IO_STACK_LOCATION *)0;
11417#line 1902
11418  __cil_tmp40 = (unsigned int )__cil_tmp39;
11419#line 1902
11420  __cil_tmp41 = __cil_tmp40 + 112;
11421#line 1902
11422  __cil_tmp42 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp41;
11423#line 1902
11424  __cil_tmp43 = (long )__cil_tmp42;
11425#line 1902
11426  __cil_tmp44 = (unsigned int )__cil_tmp43;
11427#line 1902
11428  memcpy(__cil_tmp37, __cil_tmp38, __cil_tmp44);
11429#line 1902
11430  __cil_tmp45 = (unsigned int )nextIrpSp;
11431#line 1902
11432  __cil_tmp46 = __cil_tmp45 + 3;
11433#line 1902
11434  mem_194 = (UCHAR *)__cil_tmp46;
11435#line 1902
11436  *mem_194 = (unsigned char)0;
11437  }
11438#line 1904
11439  if (s != 1) {
11440    {
11441#line 1904
11442    assert(0);
11443    }
11444  } else {
11445#line 1906
11446    if (compRegistered != 0) {
11447      {
11448#line 1906
11449      assert(0);
11450      }
11451    } else {
11452#line 1908
11453      compRegistered = 1;
11454#line 1909
11455      compFptr = & FloppyPnpComplete;
11456    }
11457  }
11458  {
11459#line 1915
11460  __cil_tmp47 = 24 + 8;
11461#line 1915
11462  __cil_tmp48 = 0 + __cil_tmp47;
11463#line 1915
11464  __cil_tmp49 = 64 + __cil_tmp48;
11465#line 1915
11466  __cil_tmp50 = (unsigned int )Irp;
11467#line 1915
11468  __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
11469#line 1915
11470  mem_195 = (struct _IO_STACK_LOCATION **)__cil_tmp51;
11471#line 1915
11472  __cil_tmp52 = *mem_195;
11473#line 1915
11474  irpSp___1 = __cil_tmp52 - 1;
11475#line 1915
11476  __cil_tmp53 = (unsigned int )irpSp___1;
11477#line 1915
11478  __cil_tmp54 = __cil_tmp53 + 112;
11479#line 1915
11480  mem_196 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp54;
11481#line 1915
11482  *mem_196 = & FloppyPnpComplete;
11483#line 1915
11484  __cil_tmp55 = (unsigned int )irpSp___1;
11485#line 1915
11486  __cil_tmp56 = __cil_tmp55 + 116;
11487#line 1915
11488  mem_197 = (PVOID *)__cil_tmp56;
11489#line 1915
11490  *mem_197 = (void *)(& doneEvent);
11491#line 1915
11492  __cil_tmp57 = (unsigned int )irpSp___1;
11493#line 1915
11494  __cil_tmp58 = __cil_tmp57 + 3;
11495#line 1915
11496  mem_198 = (UCHAR *)__cil_tmp58;
11497#line 1915
11498  *mem_198 = (unsigned char)0;
11499#line 1915
11500  __cil_tmp59 = (unsigned int )irpSp___1;
11501#line 1915
11502  __cil_tmp60 = __cil_tmp59 + 3;
11503#line 1915
11504  mem_199 = (UCHAR *)__cil_tmp60;
11505#line 1915
11506  *mem_199 = (unsigned char)64;
11507#line 1915
11508  __cil_tmp61 = (unsigned int )irpSp___1;
11509#line 1915
11510  __cil_tmp62 = __cil_tmp61 + 3;
11511#line 1915
11512  __cil_tmp63 = (unsigned int )irpSp___1;
11513#line 1915
11514  __cil_tmp64 = __cil_tmp63 + 3;
11515#line 1915
11516  mem_200 = (UCHAR *)__cil_tmp64;
11517#line 1915
11518  __cil_tmp65 = *mem_200;
11519#line 1915
11520  __cil_tmp66 = (int )__cil_tmp65;
11521#line 1915
11522  __cil_tmp67 = __cil_tmp66 | 128;
11523#line 1915
11524  mem_201 = (UCHAR *)__cil_tmp62;
11525#line 1915
11526  *mem_201 = (unsigned char )__cil_tmp67;
11527#line 1915
11528  __cil_tmp68 = (unsigned int )irpSp___1;
11529#line 1915
11530  __cil_tmp69 = __cil_tmp68 + 3;
11531#line 1915
11532  __cil_tmp70 = (unsigned int )irpSp___1;
11533#line 1915
11534  __cil_tmp71 = __cil_tmp70 + 3;
11535#line 1915
11536  mem_202 = (UCHAR *)__cil_tmp71;
11537#line 1915
11538  __cil_tmp72 = *mem_202;
11539#line 1915
11540  __cil_tmp73 = (int )__cil_tmp72;
11541#line 1915
11542  __cil_tmp74 = __cil_tmp73 | 32;
11543#line 1915
11544  mem_203 = (UCHAR *)__cil_tmp69;
11545#line 1915
11546  *mem_203 = (unsigned char )__cil_tmp74;
11547#line 1917
11548  __cil_tmp75 = (unsigned int )disketteExtension;
11549#line 1917
11550  __cil_tmp76 = __cil_tmp75 + 8;
11551#line 1917
11552  mem_204 = (PDEVICE_OBJECT *)__cil_tmp76;
11553#line 1917
11554  __cil_tmp77 = *mem_204;
11555#line 1917
11556  ntStatus = IofCallDriver(__cil_tmp77, Irp);
11557  }
11558#line 1919
11559  if (ntStatus == 259L) {
11560    {
11561#line 1921
11562    __cil_tmp78 = (void *)(& doneEvent);
11563#line 1921
11564    __cil_tmp79 = (enum _KWAIT_REASON )0;
11565#line 1921
11566    __cil_tmp80 = (void *)0;
11567#line 1921
11568    __cil_tmp81 = (LARGE_INTEGER *)__cil_tmp80;
11569#line 1921
11570    ntStatus = KeWaitForSingleObject(__cil_tmp78, __cil_tmp79, (char)0, (unsigned char)0,
11571                                     __cil_tmp81);
11572#line 1930
11573    ntStatus = myStatus;
11574    }
11575  } else {
11576
11577  }
11578  {
11579#line 1932
11580  __cil_tmp82 = (unsigned int )(& fdcInfo) + 128;
11581#line 1932
11582  mem_205 = (ULONG *)__cil_tmp82;
11583#line 1932
11584  *mem_205 = 0UL;
11585#line 1933
11586  __cil_tmp83 = (unsigned int )(& fdcInfo) + 132;
11587#line 1933
11588  mem_206 = (ULONG *)__cil_tmp83;
11589#line 1933
11590  *mem_206 = 0UL;
11591#line 1935
11592  __cil_tmp84 = (unsigned int )disketteExtension;
11593#line 1935
11594  __cil_tmp85 = __cil_tmp84 + 8;
11595#line 1935
11596  mem_207 = (PDEVICE_OBJECT *)__cil_tmp85;
11597#line 1935
11598  __cil_tmp86 = *mem_207;
11599#line 1935
11600  __cil_tmp87 = 770 << 2;
11601#line 1935
11602  __cil_tmp88 = 7 << 16;
11603#line 1935
11604  __cil_tmp89 = __cil_tmp88 | __cil_tmp87;
11605#line 1935
11606  __cil_tmp90 = __cil_tmp89 | 3;
11607#line 1935
11608  __cil_tmp91 = (unsigned long )__cil_tmp90;
11609#line 1935
11610  __cil_tmp92 = (void *)(& fdcInfo);
11611#line 1935
11612  ntStatus = FlFdcDeviceIo(__cil_tmp86, __cil_tmp91, __cil_tmp92);
11613  }
11614#line 1939
11615  if (ntStatus >= 0L) {
11616#line 1941
11617    __cil_tmp93 = (unsigned int )disketteExtension;
11618#line 1941
11619    __cil_tmp94 = __cil_tmp93 + 108;
11620#line 1941
11621    __cil_tmp95 = (unsigned int )(& fdcInfo) + 56;
11622#line 1941
11623    mem_208 = (ULONG *)__cil_tmp94;
11624#line 1941
11625    mem_209 = (ULONG *)__cil_tmp95;
11626#line 1941
11627    *mem_208 = *mem_209;
11628    {
11629#line 1943
11630    __cil_tmp96 = (unsigned int )(& fdcInfo) + 60;
11631    {
11632#line 1943
11633    mem_210 = (BOOLEAN *)__cil_tmp96;
11634#line 1943
11635    if (*mem_210) {
11636      {
11637#line 1943
11638      __cil_tmp97 = (unsigned int )(& fdcInfo) + 61;
11639      {
11640#line 1943
11641      mem_211 = (BOOLEAN *)__cil_tmp97;
11642#line 1943
11643      if (*mem_211) {
11644        {
11645#line 1946
11646        ntStatus = FlAcpiConfigureFloppy(disketteExtension, & fdcInfo);
11647        }
11648        {
11649#line 1948
11650        __cil_tmp98 = (unsigned int )disketteExtension;
11651#line 1948
11652        __cil_tmp99 = __cil_tmp98 + 174;
11653#line 1948
11654        mem_212 = (UCHAR *)__cil_tmp99;
11655#line 1948
11656        __cil_tmp100 = *mem_212;
11657#line 1948
11658        __cil_tmp101 = (int )__cil_tmp100;
11659#line 1948
11660        if (__cil_tmp101 == 4) {
11661#line 1950
11662          __cil_tmp102 = (unsigned int )disketteExtension;
11663#line 1950
11664          __cil_tmp103 = __cil_tmp102 + 364;
11665#line 1950
11666          __cil_tmp104 = (unsigned int )(& fdcInfo) + 48;
11667#line 1950
11668          mem_213 = (ULONG *)__cil_tmp104;
11669#line 1950
11670          __cil_tmp105 = *mem_213;
11671#line 1950
11672          __cil_tmp106 = 1 << __cil_tmp105;
11673#line 1950
11674          __cil_tmp107 = (unsigned int )disketteExtension;
11675#line 1950
11676          __cil_tmp108 = __cil_tmp107 + 364;
11677#line 1950
11678          mem_214 = (UCHAR *)__cil_tmp108;
11679#line 1950
11680          __cil_tmp109 = *mem_214;
11681#line 1950
11682          __cil_tmp110 = (int )__cil_tmp109;
11683#line 1950
11684          __cil_tmp111 = __cil_tmp110 | __cil_tmp106;
11685#line 1950
11686          mem_215 = (UCHAR *)__cil_tmp103;
11687#line 1950
11688          *mem_215 = (unsigned char )__cil_tmp111;
11689        } else {
11690
11691        }
11692        }
11693      } else {
11694        goto _L;
11695      }
11696      }
11697      }
11698    } else {
11699      _L: 
11700      {
11701#line 1957
11702      __cil_tmp112 = (unsigned int )disketteExtension;
11703#line 1957
11704      __cil_tmp113 = __cil_tmp112 + 174;
11705#line 1957
11706      mem_216 = (UCHAR *)__cil_tmp113;
11707#line 1957
11708      __cil_tmp114 = *mem_216;
11709#line 1957
11710      __cil_tmp115 = (int )__cil_tmp114;
11711#line 1957
11712      if (__cil_tmp115 == 4) {
11713#line 1959
11714        __cil_tmp116 = (unsigned int )disketteExtension;
11715#line 1959
11716        __cil_tmp117 = __cil_tmp116 + 364;
11717#line 1959
11718        __cil_tmp118 = (unsigned int )(& fdcInfo) + 48;
11719#line 1959
11720        mem_217 = (ULONG *)__cil_tmp118;
11721#line 1959
11722        __cil_tmp119 = *mem_217;
11723#line 1959
11724        __cil_tmp120 = 1 << __cil_tmp119;
11725#line 1959
11726        __cil_tmp121 = (unsigned int )disketteExtension;
11727#line 1959
11728        __cil_tmp122 = __cil_tmp121 + 364;
11729#line 1959
11730        mem_218 = (UCHAR *)__cil_tmp122;
11731#line 1959
11732        __cil_tmp123 = *mem_218;
11733#line 1959
11734        __cil_tmp124 = (int )__cil_tmp123;
11735#line 1959
11736        __cil_tmp125 = __cil_tmp124 | __cil_tmp120;
11737#line 1959
11738        mem_219 = (UCHAR *)__cil_tmp117;
11739#line 1959
11740        *mem_219 = (unsigned char )__cil_tmp125;
11741      } else {
11742
11743      }
11744      }
11745#line 1966
11746      InterfaceType = (enum _INTERFACE_TYPE )0;
11747      {
11748#line 1966
11749      while (1) {
11750        while_43_continue: /* CIL Label */ ;
11751        {
11752#line 1966
11753        __cil_tmp126 = (int )InterfaceType;
11754#line 1966
11755        if (__cil_tmp126 < 16) {
11756
11757        } else {
11758          goto while_43_break;
11759        }
11760        }
11761        {
11762#line 1970
11763        __cil_tmp127 = (unsigned int )(& fdcInfo) + 8;
11764#line 1970
11765        mem_220 = (INTERFACE_TYPE *)__cil_tmp127;
11766#line 1970
11767        *mem_220 = InterfaceType;
11768#line 1971
11769        __cil_tmp128 = (unsigned int )(& fdcInfo) + 8;
11770#line 1971
11771        __cil_tmp129 = (INTERFACE_TYPE *)__cil_tmp128;
11772#line 1971
11773        __cil_tmp130 = (unsigned int )(& fdcInfo) + 40;
11774#line 1971
11775        __cil_tmp131 = (ULONG *)__cil_tmp130;
11776#line 1971
11777        __cil_tmp132 = (unsigned int )(& fdcInfo) + 44;
11778#line 1971
11779        __cil_tmp133 = (ULONG *)__cil_tmp132;
11780#line 1971
11781        __cil_tmp134 = (unsigned int )(& fdcInfo) + 48;
11782#line 1971
11783        __cil_tmp135 = (ULONG *)__cil_tmp134;
11784#line 1971
11785        __cil_tmp136 = (void *)disketteExtension;
11786#line 1971
11787        ntStatus = IoQueryDeviceDescription(__cil_tmp129, __cil_tmp131, & Dc, __cil_tmp133,
11788                                            & Fp, __cil_tmp135, & FlConfigCallBack,
11789                                            __cil_tmp136);
11790        }
11791#line 1980
11792        if (ntStatus >= 0L) {
11793          {
11794#line 1985
11795          while (1) {
11796            while_44_continue: /* CIL Label */ ;
11797            goto while_44_break;
11798          }
11799          while_44_break: /* CIL Label */ ;
11800          }
11801          goto while_43_break;
11802        } else {
11803
11804        }
11805#line 1966
11806        __cil_tmp137 = (int )InterfaceType;
11807#line 1966
11808        __cil_tmp138 = __cil_tmp137 + 1;
11809#line 1966
11810        InterfaceType = (enum _INTERFACE_TYPE )__cil_tmp138;
11811      }
11812      while_43_break: /* CIL Label */ ;
11813      }
11814    }
11815    }
11816    }
11817#line 1991
11818    if (ntStatus >= 0L) {
11819      {
11820#line 1993
11821      __cil_tmp139 = (KUSER_SHARED_DATA * const  )4292804608U;
11822#line 1993
11823      __cil_tmp140 = (unsigned int )__cil_tmp139;
11824#line 1993
11825      __cil_tmp141 = __cil_tmp140 + 732;
11826#line 1993
11827      mem_221 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp141;
11828#line 1993
11829      __cil_tmp142 = *mem_221;
11830#line 1993
11831      __cil_tmp143 = (int )__cil_tmp142;
11832#line 1993
11833      if (__cil_tmp143 == 1) {
11834#line 1994
11835        __cil_tmp144 = (unsigned int )disketteExtension;
11836#line 1994
11837        __cil_tmp145 = __cil_tmp144 + 248;
11838#line 1994
11839        __cil_tmp146 = (unsigned int )(& fdcInfo) + 52;
11840#line 1994
11841        mem_222 = (ULONG *)__cil_tmp146;
11842#line 1994
11843        __cil_tmp147 = *mem_222;
11844#line 1994
11845        mem_223 = (UCHAR *)__cil_tmp145;
11846#line 1994
11847        *mem_223 = (unsigned char )__cil_tmp147;
11848#line 1995
11849        __cil_tmp148 = (unsigned int )disketteExtension;
11850#line 1995
11851        __cil_tmp149 = __cil_tmp148 + 249;
11852#line 1995
11853        __cil_tmp150 = (unsigned int )(& fdcInfo) + 52;
11854#line 1995
11855        mem_224 = (ULONG *)__cil_tmp150;
11856#line 1995
11857        __cil_tmp151 = *mem_224;
11858#line 1995
11859        mem_225 = (UCHAR *)__cil_tmp149;
11860#line 1995
11861        *mem_225 = (unsigned char )__cil_tmp151;
11862      } else {
11863#line 1997
11864        __cil_tmp152 = (unsigned int )disketteExtension;
11865#line 1997
11866        __cil_tmp153 = __cil_tmp152 + 248;
11867#line 1997
11868        __cil_tmp154 = (unsigned int )(& fdcInfo) + 48;
11869#line 1997
11870        mem_226 = (ULONG *)__cil_tmp154;
11871#line 1997
11872        __cil_tmp155 = *mem_226;
11873#line 1997
11874        mem_227 = (UCHAR *)__cil_tmp153;
11875#line 1997
11876        *mem_227 = (unsigned char )__cil_tmp155;
11877#line 1998
11878        __cil_tmp156 = (unsigned int )disketteExtension;
11879#line 1998
11880        __cil_tmp157 = __cil_tmp156 + 249;
11881#line 1998
11882        __cil_tmp158 = (unsigned int )(& fdcInfo) + 48;
11883#line 1998
11884        mem_228 = (ULONG *)__cil_tmp158;
11885#line 1998
11886        __cil_tmp159 = *mem_228;
11887#line 1998
11888        __cil_tmp160 = 16 << __cil_tmp159;
11889#line 1998
11890        __cil_tmp161 = (unsigned long )__cil_tmp160;
11891#line 1998
11892        __cil_tmp162 = (unsigned int )(& fdcInfo) + 48;
11893#line 1998
11894        mem_229 = (ULONG *)__cil_tmp162;
11895#line 1998
11896        __cil_tmp163 = *mem_229;
11897#line 1998
11898        __cil_tmp164 = __cil_tmp163 | __cil_tmp161;
11899#line 1998
11900        mem_230 = (UCHAR *)__cil_tmp157;
11901#line 1998
11902        *mem_230 = (unsigned char )__cil_tmp164;
11903      }
11904      }
11905      {
11906#line 2002
11907      __cil_tmp165 = (unsigned int )disketteExtension;
11908#line 2002
11909      __cil_tmp166 = __cil_tmp165 + 4;
11910#line 2002
11911      mem_231 = (PDEVICE_OBJECT *)__cil_tmp166;
11912#line 2002
11913      __cil_tmp167 = *mem_231;
11914#line 2002
11915      __cil_tmp168 = (GUID *)(& MOUNTDEV_MOUNTED_DEVICE_GUID);
11916#line 2002
11917      __cil_tmp169 = (GUID const   *)__cil_tmp168;
11918#line 2002
11919      __cil_tmp170 = (void *)0;
11920#line 2002
11921      __cil_tmp171 = (UNICODE_STRING *)__cil_tmp170;
11922#line 2002
11923      __cil_tmp172 = (unsigned int )disketteExtension;
11924#line 2002
11925      __cil_tmp173 = __cil_tmp172 + 376;
11926#line 2002
11927      __cil_tmp174 = (UNICODE_STRING *)__cil_tmp173;
11928#line 2002
11929      pnpStatus = IoRegisterDeviceInterface(__cil_tmp167, __cil_tmp169, __cil_tmp171,
11930                                            __cil_tmp174);
11931      }
11932#line 2007
11933      if (pnpStatus >= 0L) {
11934        {
11935#line 2009
11936        __cil_tmp175 = (unsigned int )disketteExtension;
11937#line 2009
11938        __cil_tmp176 = __cil_tmp175 + 376;
11939#line 2009
11940        __cil_tmp177 = (UNICODE_STRING *)__cil_tmp176;
11941#line 2009
11942        pnpStatus = IoSetDeviceInterfaceState(__cil_tmp177, (unsigned char)1);
11943        }
11944      } else {
11945
11946      }
11947      {
11948#line 2013
11949      __cil_tmp178 = (unsigned int )disketteExtension;
11950#line 2013
11951      __cil_tmp179 = __cil_tmp178 + 12;
11952#line 2013
11953      mem_232 = (BOOLEAN *)__cil_tmp179;
11954#line 2013
11955      *mem_232 = (unsigned char)1;
11956#line 2015
11957      __cil_tmp180 = (unsigned int )disketteExtension;
11958#line 2015
11959      __cil_tmp181 = __cil_tmp180 + 428;
11960#line 2015
11961      __cil_tmp182 = (FAST_MUTEX *)__cil_tmp181;
11962#line 2015
11963      ExAcquireFastMutex(__cil_tmp182);
11964#line 2016
11965      __cil_tmp183 = (unsigned int )disketteExtension;
11966#line 2016
11967      __cil_tmp184 = __cil_tmp183 + 14;
11968#line 2016
11969      mem_233 = (BOOLEAN *)__cil_tmp184;
11970#line 2016
11971      *mem_233 = (unsigned char)0;
11972#line 2017
11973      __cil_tmp185 = (unsigned int )disketteExtension;
11974#line 2017
11975      __cil_tmp186 = __cil_tmp185 + 428;
11976#line 2017
11977      __cil_tmp187 = (FAST_MUTEX *)__cil_tmp186;
11978#line 2017
11979      ExReleaseFastMutex(__cil_tmp187);
11980#line 2019
11981      FloppyProcessQueuedRequests(disketteExtension);
11982      }
11983    } else {
11984
11985    }
11986  } else {
11987
11988  }
11989  {
11990#line 2023
11991  __cil_tmp188 = (unsigned int )Irp;
11992#line 2023
11993  __cil_tmp189 = __cil_tmp188 + 24;
11994#line 2023
11995  mem_234 = (NTSTATUS *)__cil_tmp189;
11996#line 2023
11997  *mem_234 = ntStatus;
11998#line 2024
11999  myStatus = ntStatus;
12000#line 2025
12001  IofCompleteRequest(Irp, (char)0);
12002  }
12003#line 2026
12004  return (ntStatus);
12005}
12006}
12007#line 2029 "floppy.c"
12008NTSTATUS FloppyPnpComplete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) 
12009{ struct _KEVENT *__cil_tmp4 ;
12010
12011  {
12012  {
12013#line 2043
12014  __cil_tmp4 = (struct _KEVENT *)Context;
12015#line 2043
12016  KeSetEvent(__cil_tmp4, 1L, (unsigned char)0);
12017  }
12018#line 2047
12019  return (-1073741802L);
12020}
12021}
12022#line 2050 "floppy.c"
12023NTSTATUS FloppyPower(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
12024{ PDISKETTE_EXTENSION disketteExtension ;
12025  NTSTATUS ntStatus ;
12026  PIO_STACK_LOCATION irpSp ;
12027  POWER_STATE_TYPE type ;
12028  POWER_STATE state ;
12029  BOOLEAN WaitForCompletion ;
12030  unsigned int __cil_tmp9 ;
12031  unsigned int __cil_tmp10 ;
12032  PVOID __cil_tmp11 ;
12033  unsigned int __cil_tmp12 ;
12034  unsigned int __cil_tmp13 ;
12035  unsigned int __cil_tmp14 ;
12036  unsigned int __cil_tmp15 ;
12037  unsigned int __cil_tmp16 ;
12038  unsigned int __cil_tmp17 ;
12039  unsigned int __cil_tmp18 ;
12040  unsigned int __cil_tmp19 ;
12041  unsigned int __cil_tmp20 ;
12042  unsigned int __cil_tmp21 ;
12043  unsigned int __cil_tmp22 ;
12044  unsigned int __cil_tmp23 ;
12045  unsigned int __cil_tmp24 ;
12046  unsigned int __cil_tmp25 ;
12047  unsigned int __cil_tmp26 ;
12048  UCHAR __cil_tmp27 ;
12049  int __cil_tmp28 ;
12050  int __cil_tmp29 ;
12051  unsigned int __cil_tmp30 ;
12052  unsigned int __cil_tmp31 ;
12053  FAST_MUTEX *__cil_tmp32 ;
12054  unsigned int __cil_tmp33 ;
12055  unsigned int __cil_tmp34 ;
12056  LONG __cil_tmp35 ;
12057  unsigned int __cil_tmp36 ;
12058  unsigned int __cil_tmp37 ;
12059  FAST_MUTEX *__cil_tmp38 ;
12060  unsigned int __cil_tmp39 ;
12061  unsigned int __cil_tmp40 ;
12062  unsigned int __cil_tmp41 ;
12063  unsigned int __cil_tmp42 ;
12064  unsigned int __cil_tmp43 ;
12065  unsigned int __cil_tmp44 ;
12066  unsigned int __cil_tmp45 ;
12067  FAST_MUTEX *__cil_tmp46 ;
12068  int __cil_tmp47 ;
12069  unsigned int __cil_tmp48 ;
12070  unsigned int __cil_tmp49 ;
12071  FAST_MUTEX *__cil_tmp50 ;
12072  int __cil_tmp51 ;
12073  unsigned int __cil_tmp52 ;
12074  unsigned int __cil_tmp53 ;
12075  unsigned int __cil_tmp54 ;
12076  unsigned int __cil_tmp55 ;
12077  unsigned int __cil_tmp56 ;
12078  unsigned int __cil_tmp57 ;
12079  FAST_MUTEX *__cil_tmp58 ;
12080  void *__cil_tmp59 ;
12081  unsigned int __cil_tmp60 ;
12082  unsigned int __cil_tmp61 ;
12083  unsigned int __cil_tmp62 ;
12084  PKTHREAD __cil_tmp63 ;
12085  unsigned int __cil_tmp64 ;
12086  int __cil_tmp65 ;
12087  unsigned int __cil_tmp66 ;
12088  unsigned int __cil_tmp67 ;
12089  PKTHREAD __cil_tmp68 ;
12090  void *__cil_tmp69 ;
12091  enum _KWAIT_REASON __cil_tmp70 ;
12092  void *__cil_tmp71 ;
12093  LARGE_INTEGER *__cil_tmp72 ;
12094  unsigned int __cil_tmp73 ;
12095  unsigned int __cil_tmp74 ;
12096  unsigned int __cil_tmp75 ;
12097  unsigned int __cil_tmp76 ;
12098  CHAR __cil_tmp77 ;
12099  int __cil_tmp78 ;
12100  int __cil_tmp79 ;
12101  unsigned int __cil_tmp80 ;
12102  unsigned int __cil_tmp81 ;
12103  unsigned int __cil_tmp82 ;
12104  unsigned int __cil_tmp83 ;
12105  unsigned int __cil_tmp84 ;
12106  unsigned int __cil_tmp85 ;
12107  unsigned int __cil_tmp86 ;
12108  unsigned int __cil_tmp87 ;
12109  unsigned int __cil_tmp88 ;
12110  unsigned int __cil_tmp89 ;
12111  struct _IO_STACK_LOCATION *__cil_tmp90 ;
12112  unsigned int __cil_tmp91 ;
12113  unsigned int __cil_tmp92 ;
12114  PDEVICE_OBJECT __cil_tmp93 ;
12115  PVOID *mem_94 ;
12116  struct _IO_STACK_LOCATION **mem_95 ;
12117  POWER_STATE_TYPE *mem_96 ;
12118  POWER_STATE *mem_97 ;
12119  UCHAR *mem_98 ;
12120  LONG *mem_99 ;
12121  ULONG_PTR *mem_100 ;
12122  NTSTATUS *mem_101 ;
12123  BOOLEAN *mem_102 ;
12124  BOOLEAN *mem_103 ;
12125  PKTHREAD *mem_104 ;
12126  PKTHREAD *mem_105 ;
12127  CHAR *mem_106 ;
12128  CHAR *mem_107 ;
12129  struct _IO_STACK_LOCATION **mem_108 ;
12130  struct _IO_STACK_LOCATION **mem_109 ;
12131  PDEVICE_OBJECT *mem_110 ;
12132
12133  {
12134#line 2071
12135  ntStatus = myStatus;
12136#line 2075
12137  WaitForCompletion = (unsigned char)1;
12138  {
12139#line 2077
12140  while (1) {
12141    while_45_continue: /* CIL Label */ ;
12142    goto while_45_break;
12143  }
12144  while_45_break: /* CIL Label */ ;
12145  }
12146#line 2079
12147  __cil_tmp9 = (unsigned int )DeviceObject;
12148#line 2079
12149  __cil_tmp10 = __cil_tmp9 + 40;
12150#line 2079
12151  mem_94 = (PVOID *)__cil_tmp10;
12152#line 2079
12153  __cil_tmp11 = *mem_94;
12154#line 2079
12155  disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp11;
12156#line 2080
12157  __cil_tmp12 = 24 + 8;
12158#line 2080
12159  __cil_tmp13 = 0 + __cil_tmp12;
12160#line 2080
12161  __cil_tmp14 = 64 + __cil_tmp13;
12162#line 2080
12163  __cil_tmp15 = (unsigned int )Irp;
12164#line 2080
12165  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
12166#line 2080
12167  mem_95 = (struct _IO_STACK_LOCATION **)__cil_tmp16;
12168#line 2080
12169  irpSp = *mem_95;
12170#line 2082
12171  __cil_tmp17 = 0 + 4;
12172#line 2082
12173  __cil_tmp18 = 4 + __cil_tmp17;
12174#line 2082
12175  __cil_tmp19 = (unsigned int )irpSp;
12176#line 2082
12177  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
12178#line 2082
12179  mem_96 = (POWER_STATE_TYPE *)__cil_tmp20;
12180#line 2082
12181  type = *mem_96;
12182#line 2083
12183  __cil_tmp21 = 0 + 36;
12184#line 2083
12185  __cil_tmp22 = 4 + __cil_tmp21;
12186#line 2083
12187  __cil_tmp23 = (unsigned int )irpSp;
12188#line 2083
12189  __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
12190#line 2083
12191  mem_97 = (POWER_STATE *)__cil_tmp24;
12192#line 2083
12193  state = *mem_97;
12194  {
12195#line 2085
12196  __cil_tmp25 = (unsigned int )irpSp;
12197#line 2085
12198  __cil_tmp26 = __cil_tmp25 + 1;
12199#line 2085
12200  mem_98 = (UCHAR *)__cil_tmp26;
12201#line 2085
12202  __cil_tmp27 = *mem_98;
12203#line 2086
12204  if ((int )__cil_tmp27 == 3) {
12205    goto switch_46_3;
12206  } else {
12207#line 2124
12208    if ((int )__cil_tmp27 == 2) {
12209      goto switch_46_2;
12210    } else {
12211      {
12212      goto switch_46_default;
12213#line 2085
12214      if (0) {
12215        switch_46_3: /* CIL Label */ ;
12216        {
12217#line 2090
12218        while (1) {
12219          while_47_continue: /* CIL Label */ ;
12220          goto while_47_break;
12221        }
12222        while_47_break: /* CIL Label */ ;
12223        }
12224        {
12225#line 2092
12226        __cil_tmp28 = (int )type;
12227#line 2092
12228        if (__cil_tmp28 == 0) {
12229          {
12230#line 2092
12231          __cil_tmp29 = (int )state.SystemState;
12232#line 2092
12233          if (__cil_tmp29 > 5) {
12234#line 2097
12235            ntStatus = 0L;
12236            goto switch_46_break;
12237          } else {
12238
12239          }
12240          }
12241        } else {
12242
12243        }
12244        }
12245        {
12246#line 2107
12247        __cil_tmp30 = (unsigned int )disketteExtension;
12248#line 2107
12249        __cil_tmp31 = __cil_tmp30 + 56;
12250#line 2107
12251        __cil_tmp32 = (FAST_MUTEX *)__cil_tmp31;
12252#line 2107
12253        ExAcquireFastMutex(__cil_tmp32);
12254        }
12255        {
12256#line 2108
12257        __cil_tmp33 = (unsigned int )disketteExtension;
12258#line 2108
12259        __cil_tmp34 = __cil_tmp33 + 88;
12260#line 2108
12261        mem_99 = (LONG *)__cil_tmp34;
12262#line 2108
12263        __cil_tmp35 = *mem_99;
12264#line 2108
12265        if (__cil_tmp35 >= 0L) {
12266          {
12267#line 2109
12268          __cil_tmp36 = (unsigned int )disketteExtension;
12269#line 2109
12270          __cil_tmp37 = __cil_tmp36 + 56;
12271#line 2109
12272          __cil_tmp38 = (FAST_MUTEX *)__cil_tmp37;
12273#line 2109
12274          ExReleaseFastMutex(__cil_tmp38);
12275          }
12276          {
12277#line 2111
12278          while (1) {
12279            while_48_continue: /* CIL Label */ ;
12280            goto while_48_break;
12281          }
12282          while_48_break: /* CIL Label */ ;
12283          }
12284          {
12285#line 2113
12286          PoStartNextPowerIrp(Irp);
12287#line 2114
12288          __cil_tmp39 = 24 + 4;
12289#line 2114
12290          __cil_tmp40 = (unsigned int )Irp;
12291#line 2114
12292          __cil_tmp41 = __cil_tmp40 + __cil_tmp39;
12293#line 2114
12294          mem_100 = (ULONG_PTR *)__cil_tmp41;
12295#line 2114
12296          *mem_100 = 0UL;
12297#line 2115
12298          __cil_tmp42 = (unsigned int )Irp;
12299#line 2115
12300          __cil_tmp43 = __cil_tmp42 + 24;
12301#line 2115
12302          mem_101 = (NTSTATUS *)__cil_tmp43;
12303#line 2115
12304          *mem_101 = -2147483631L;
12305#line 2116
12306          myStatus = -2147483631L;
12307#line 2117
12308          IofCompleteRequest(Irp, (char)0);
12309          }
12310#line 2118
12311          return (-2147483631L);
12312        } else {
12313
12314        }
12315        }
12316        {
12317#line 2120
12318        __cil_tmp44 = (unsigned int )disketteExtension;
12319#line 2120
12320        __cil_tmp45 = __cil_tmp44 + 56;
12321#line 2120
12322        __cil_tmp46 = (FAST_MUTEX *)__cil_tmp45;
12323#line 2120
12324        ExReleaseFastMutex(__cil_tmp46);
12325#line 2122
12326        ntStatus = 0L;
12327        }
12328        goto switch_46_break;
12329        switch_46_2: /* CIL Label */ ;
12330        {
12331#line 2131
12332        __cil_tmp47 = (int )type;
12333#line 2131
12334        if (__cil_tmp47 == 0) {
12335          {
12336#line 2132
12337          __cil_tmp48 = (unsigned int )disketteExtension;
12338#line 2132
12339          __cil_tmp49 = __cil_tmp48 + 396;
12340#line 2132
12341          __cil_tmp50 = (FAST_MUTEX *)__cil_tmp49;
12342#line 2132
12343          ExAcquireFastMutex(__cil_tmp50);
12344          }
12345          {
12346#line 2133
12347          __cil_tmp51 = (int )state.SystemState;
12348#line 2133
12349          if (__cil_tmp51 == 1) {
12350            {
12351#line 2134
12352            while (1) {
12353              while_49_continue: /* CIL Label */ ;
12354              goto while_49_break;
12355            }
12356            while_49_break: /* CIL Label */ ;
12357            }
12358#line 2135
12359            __cil_tmp52 = (unsigned int )disketteExtension;
12360#line 2135
12361            __cil_tmp53 = __cil_tmp52 + 393;
12362#line 2135
12363            mem_102 = (BOOLEAN *)__cil_tmp53;
12364#line 2135
12365            *mem_102 = (unsigned char)0;
12366#line 2136
12367            WaitForCompletion = (unsigned char)0;
12368          } else {
12369            {
12370#line 2138
12371            while (1) {
12372              while_50_continue: /* CIL Label */ ;
12373              goto while_50_break;
12374            }
12375            while_50_break: /* CIL Label */ ;
12376            }
12377#line 2139
12378            WaitForCompletion = (unsigned char)1;
12379#line 2140
12380            __cil_tmp54 = (unsigned int )disketteExtension;
12381#line 2140
12382            __cil_tmp55 = __cil_tmp54 + 393;
12383#line 2140
12384            mem_103 = (BOOLEAN *)__cil_tmp55;
12385#line 2140
12386            *mem_103 = (unsigned char)1;
12387          }
12388          }
12389          {
12390#line 2142
12391          __cil_tmp56 = (unsigned int )disketteExtension;
12392#line 2142
12393          __cil_tmp57 = __cil_tmp56 + 396;
12394#line 2142
12395          __cil_tmp58 = (FAST_MUTEX *)__cil_tmp57;
12396#line 2142
12397          ExReleaseFastMutex(__cil_tmp58);
12398          }
12399          {
12400#line 2147
12401          __cil_tmp59 = (void *)0;
12402#line 2147
12403          __cil_tmp60 = (unsigned int )__cil_tmp59;
12404#line 2147
12405          __cil_tmp61 = (unsigned int )disketteExtension;
12406#line 2147
12407          __cil_tmp62 = __cil_tmp61 + 92;
12408#line 2147
12409          mem_104 = (PKTHREAD *)__cil_tmp62;
12410#line 2147
12411          __cil_tmp63 = *mem_104;
12412#line 2147
12413          __cil_tmp64 = (unsigned int )__cil_tmp63;
12414#line 2147
12415          if (__cil_tmp64 != __cil_tmp60) {
12416            {
12417#line 2147
12418            __cil_tmp65 = (int )WaitForCompletion;
12419#line 2147
12420            if (__cil_tmp65 == 1) {
12421              {
12422#line 2149
12423              __cil_tmp66 = (unsigned int )disketteExtension;
12424#line 2149
12425              __cil_tmp67 = __cil_tmp66 + 92;
12426#line 2149
12427              mem_105 = (PKTHREAD *)__cil_tmp67;
12428#line 2149
12429              __cil_tmp68 = *mem_105;
12430#line 2149
12431              __cil_tmp69 = (void *)__cil_tmp68;
12432#line 2149
12433              __cil_tmp70 = (enum _KWAIT_REASON )0;
12434#line 2149
12435              __cil_tmp71 = (void *)0;
12436#line 2149
12437              __cil_tmp72 = (LARGE_INTEGER *)__cil_tmp71;
12438#line 2149
12439              KeWaitForSingleObject(__cil_tmp69, __cil_tmp70, (char)0, (unsigned char)0,
12440                                    __cil_tmp72);
12441              }
12442            } else {
12443
12444            }
12445            }
12446          } else {
12447
12448          }
12449          }
12450        } else {
12451
12452        }
12453        }
12454        {
12455#line 2157
12456        while (1) {
12457          while_51_continue: /* CIL Label */ ;
12458          goto while_51_break;
12459        }
12460        while_51_break: /* CIL Label */ ;
12461        }
12462#line 2158
12463        ntStatus = 0L;
12464        goto switch_46_break;
12465        switch_46_default: /* CIL Label */ ;
12466        goto switch_46_break;
12467      } else {
12468        switch_46_break: /* CIL Label */ ;
12469      }
12470      }
12471    }
12472  }
12473  }
12474  {
12475#line 2168
12476  PoStartNextPowerIrp(Irp);
12477  }
12478#line 2169
12479  if (s == 1) {
12480#line 2169
12481    s = 3;
12482  } else {
12483    {
12484#line 2169
12485    assert(0);
12486    }
12487  }
12488  {
12489#line 2170
12490  __cil_tmp73 = (unsigned int )Irp;
12491#line 2170
12492  __cil_tmp74 = __cil_tmp73 + 35;
12493#line 2170
12494  __cil_tmp75 = (unsigned int )Irp;
12495#line 2170
12496  __cil_tmp76 = __cil_tmp75 + 35;
12497#line 2170
12498  mem_106 = (CHAR *)__cil_tmp76;
12499#line 2170
12500  __cil_tmp77 = *mem_106;
12501#line 2170
12502  __cil_tmp78 = (int )__cil_tmp77;
12503#line 2170
12504  __cil_tmp79 = __cil_tmp78 + 1;
12505#line 2170
12506  mem_107 = (CHAR *)__cil_tmp74;
12507#line 2170
12508  *mem_107 = (char )__cil_tmp79;
12509#line 2170
12510  __cil_tmp80 = 24 + 8;
12511#line 2170
12512  __cil_tmp81 = 0 + __cil_tmp80;
12513#line 2170
12514  __cil_tmp82 = 64 + __cil_tmp81;
12515#line 2170
12516  __cil_tmp83 = (unsigned int )Irp;
12517#line 2170
12518  __cil_tmp84 = __cil_tmp83 + __cil_tmp82;
12519#line 2170
12520  __cil_tmp85 = 24 + 8;
12521#line 2170
12522  __cil_tmp86 = 0 + __cil_tmp85;
12523#line 2170
12524  __cil_tmp87 = 64 + __cil_tmp86;
12525#line 2170
12526  __cil_tmp88 = (unsigned int )Irp;
12527#line 2170
12528  __cil_tmp89 = __cil_tmp88 + __cil_tmp87;
12529#line 2170
12530  mem_108 = (struct _IO_STACK_LOCATION **)__cil_tmp89;
12531#line 2170
12532  __cil_tmp90 = *mem_108;
12533#line 2170
12534  mem_109 = (struct _IO_STACK_LOCATION **)__cil_tmp84;
12535#line 2170
12536  *mem_109 = __cil_tmp90 + 1;
12537#line 2171
12538  __cil_tmp91 = (unsigned int )disketteExtension;
12539#line 2171
12540  __cil_tmp92 = __cil_tmp91 + 8;
12541#line 2171
12542  mem_110 = (PDEVICE_OBJECT *)__cil_tmp92;
12543#line 2171
12544  __cil_tmp93 = *mem_110;
12545#line 2171
12546  ntStatus = PoCallDriver(__cil_tmp93, Irp);
12547  }
12548#line 2173
12549  return (ntStatus);
12550}
12551}
12552#line 2176 "floppy.c"
12553NTSTATUS FloppyReadWrite(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
12554{ PIO_STACK_LOCATION irpSp ;
12555  NTSTATUS ntStatus ;
12556  PDISKETTE_EXTENSION disketteExtension ;
12557  unsigned int __cil_tmp6 ;
12558  unsigned int __cil_tmp7 ;
12559  PVOID __cil_tmp8 ;
12560  unsigned int __cil_tmp9 ;
12561  unsigned int __cil_tmp10 ;
12562  unsigned int __cil_tmp11 ;
12563  unsigned int __cil_tmp12 ;
12564  unsigned int __cil_tmp13 ;
12565  unsigned int __cil_tmp14 ;
12566  unsigned int __cil_tmp15 ;
12567  FAST_MUTEX *__cil_tmp16 ;
12568  unsigned int __cil_tmp17 ;
12569  unsigned int __cil_tmp18 ;
12570  unsigned int __cil_tmp19 ;
12571  unsigned int __cil_tmp20 ;
12572  FAST_MUTEX *__cil_tmp21 ;
12573  unsigned int __cil_tmp22 ;
12574  unsigned int __cil_tmp23 ;
12575  FAST_MUTEX *__cil_tmp24 ;
12576  unsigned int __cil_tmp25 ;
12577  unsigned int __cil_tmp26 ;
12578  unsigned int __cil_tmp27 ;
12579  unsigned int __cil_tmp28 ;
12580  BOOLEAN __cil_tmp29 ;
12581  unsigned int __cil_tmp30 ;
12582  unsigned int __cil_tmp31 ;
12583  unsigned int __cil_tmp32 ;
12584  unsigned int __cil_tmp33 ;
12585  unsigned int __cil_tmp34 ;
12586  unsigned int __cil_tmp35 ;
12587  unsigned int __cil_tmp36 ;
12588  unsigned int __cil_tmp37 ;
12589  unsigned int __cil_tmp38 ;
12590  MEDIA_TYPE __cil_tmp39 ;
12591  int __cil_tmp40 ;
12592  unsigned int __cil_tmp41 ;
12593  unsigned int __cil_tmp42 ;
12594  ULONG __cil_tmp43 ;
12595  unsigned int __cil_tmp44 ;
12596  unsigned int __cil_tmp45 ;
12597  ULONG __cil_tmp46 ;
12598  unsigned int __cil_tmp47 ;
12599  unsigned int __cil_tmp48 ;
12600  unsigned int __cil_tmp49 ;
12601  unsigned int __cil_tmp50 ;
12602  ULONG __cil_tmp51 ;
12603  ULONG __cil_tmp52 ;
12604  unsigned int __cil_tmp53 ;
12605  unsigned int __cil_tmp54 ;
12606  ULONG __cil_tmp55 ;
12607  ULONG __cil_tmp56 ;
12608  unsigned int __cil_tmp57 ;
12609  unsigned int __cil_tmp58 ;
12610  ULONG __cil_tmp59 ;
12611  unsigned long __cil_tmp60 ;
12612  unsigned int __cil_tmp61 ;
12613  unsigned int __cil_tmp62 ;
12614  unsigned int __cil_tmp63 ;
12615  unsigned int __cil_tmp64 ;
12616  unsigned int __cil_tmp65 ;
12617  unsigned int __cil_tmp66 ;
12618  unsigned int __cil_tmp67 ;
12619  unsigned int __cil_tmp68 ;
12620  unsigned int __cil_tmp69 ;
12621  PVOID *mem_70 ;
12622  struct _IO_STACK_LOCATION **mem_71 ;
12623  BOOLEAN *mem_72 ;
12624  BOOLEAN *mem_73 ;
12625  BOOLEAN *mem_74 ;
12626  BOOLEAN *mem_75 ;
12627  ULONG_PTR *mem_76 ;
12628  NTSTATUS *mem_77 ;
12629  MEDIA_TYPE *mem_78 ;
12630  ULONG *mem_79 ;
12631  ULONG *mem_80 ;
12632  ULONG *mem_81 ;
12633  ULONG *mem_82 ;
12634  ULONG *mem_83 ;
12635  ULONG *mem_84 ;
12636  ULONG_PTR *mem_85 ;
12637  NTSTATUS *mem_86 ;
12638  NTSTATUS *mem_87 ;
12639
12640  {
12641  {
12642#line 2208
12643  while (1) {
12644    while_52_continue: /* CIL Label */ ;
12645    goto while_52_break;
12646  }
12647  while_52_break: /* CIL Label */ ;
12648  }
12649  {
12650#line 2210
12651  __cil_tmp6 = (unsigned int )DeviceObject;
12652#line 2210
12653  __cil_tmp7 = __cil_tmp6 + 40;
12654#line 2210
12655  mem_70 = (PVOID *)__cil_tmp7;
12656#line 2210
12657  __cil_tmp8 = *mem_70;
12658#line 2210
12659  disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp8;
12660#line 2212
12661  __cil_tmp9 = 24 + 8;
12662#line 2212
12663  __cil_tmp10 = 0 + __cil_tmp9;
12664#line 2212
12665  __cil_tmp11 = 64 + __cil_tmp10;
12666#line 2212
12667  __cil_tmp12 = (unsigned int )Irp;
12668#line 2212
12669  __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
12670#line 2212
12671  mem_71 = (struct _IO_STACK_LOCATION **)__cil_tmp13;
12672#line 2212
12673  irpSp = *mem_71;
12674#line 2218
12675  __cil_tmp14 = (unsigned int )disketteExtension;
12676#line 2218
12677  __cil_tmp15 = __cil_tmp14 + 428;
12678#line 2218
12679  __cil_tmp16 = (FAST_MUTEX *)__cil_tmp15;
12680#line 2218
12681  ExAcquireFastMutex(__cil_tmp16);
12682  }
12683  {
12684#line 2219
12685  __cil_tmp17 = (unsigned int )disketteExtension;
12686#line 2219
12687  __cil_tmp18 = __cil_tmp17 + 14;
12688  {
12689#line 2219
12690  mem_72 = (BOOLEAN *)__cil_tmp18;
12691#line 2219
12692  if (*mem_72) {
12693    {
12694#line 2221
12695    ntStatus = FloppyQueueRequest(disketteExtension, Irp);
12696#line 2223
12697    __cil_tmp19 = (unsigned int )disketteExtension;
12698#line 2223
12699    __cil_tmp20 = __cil_tmp19 + 428;
12700#line 2223
12701    __cil_tmp21 = (FAST_MUTEX *)__cil_tmp20;
12702#line 2223
12703    ExReleaseFastMutex(__cil_tmp21);
12704    }
12705#line 2224
12706    return (ntStatus);
12707  } else {
12708
12709  }
12710  }
12711  }
12712  {
12713#line 2226
12714  __cil_tmp22 = (unsigned int )disketteExtension;
12715#line 2226
12716  __cil_tmp23 = __cil_tmp22 + 428;
12717#line 2226
12718  __cil_tmp24 = (FAST_MUTEX *)__cil_tmp23;
12719#line 2226
12720  ExReleaseFastMutex(__cil_tmp24);
12721  }
12722  {
12723#line 2232
12724  __cil_tmp25 = (unsigned int )disketteExtension;
12725#line 2232
12726  __cil_tmp26 = __cil_tmp25 + 13;
12727  {
12728#line 2232
12729  mem_73 = (BOOLEAN *)__cil_tmp26;
12730#line 2232
12731  if (*mem_73) {
12732    goto _L;
12733  } else {
12734    {
12735#line 2232
12736    __cil_tmp27 = (unsigned int )disketteExtension;
12737#line 2232
12738    __cil_tmp28 = __cil_tmp27 + 12;
12739#line 2232
12740    mem_74 = (BOOLEAN *)__cil_tmp28;
12741#line 2232
12742    __cil_tmp29 = *mem_74;
12743#line 2232
12744    if (! __cil_tmp29) {
12745      _L: 
12746      {
12747#line 2234
12748      __cil_tmp30 = (unsigned int )disketteExtension;
12749#line 2234
12750      __cil_tmp31 = __cil_tmp30 + 13;
12751      {
12752#line 2234
12753      mem_75 = (BOOLEAN *)__cil_tmp31;
12754#line 2234
12755      if (*mem_75) {
12756#line 2235
12757        ntStatus = -1073741738L;
12758      } else {
12759#line 2237
12760        ntStatus = -1073741823L;
12761      }
12762      }
12763      }
12764      {
12765#line 2239
12766      __cil_tmp32 = 24 + 4;
12767#line 2239
12768      __cil_tmp33 = (unsigned int )Irp;
12769#line 2239
12770      __cil_tmp34 = __cil_tmp33 + __cil_tmp32;
12771#line 2239
12772      mem_76 = (ULONG_PTR *)__cil_tmp34;
12773#line 2239
12774      *mem_76 = 0UL;
12775#line 2240
12776      __cil_tmp35 = (unsigned int )Irp;
12777#line 2240
12778      __cil_tmp36 = __cil_tmp35 + 24;
12779#line 2240
12780      mem_77 = (NTSTATUS *)__cil_tmp36;
12781#line 2240
12782      *mem_77 = ntStatus;
12783#line 2241
12784      myStatus = ntStatus;
12785#line 2242
12786      IofCompleteRequest(Irp, (char)0);
12787      }
12788#line 2243
12789      return (ntStatus);
12790    } else {
12791
12792    }
12793    }
12794  }
12795  }
12796  }
12797  {
12798#line 2245
12799  __cil_tmp37 = (unsigned int )disketteExtension;
12800#line 2245
12801  __cil_tmp38 = __cil_tmp37 + 184;
12802#line 2245
12803  mem_78 = (MEDIA_TYPE *)__cil_tmp38;
12804#line 2245
12805  __cil_tmp39 = *mem_78;
12806#line 2245
12807  __cil_tmp40 = (int )__cil_tmp39;
12808#line 2245
12809  if (__cil_tmp40 > 0) {
12810    {
12811#line 2245
12812    __cil_tmp41 = (unsigned int )disketteExtension;
12813#line 2245
12814    __cil_tmp42 = __cil_tmp41 + 180;
12815#line 2245
12816    mem_79 = (ULONG *)__cil_tmp42;
12817#line 2245
12818    __cil_tmp43 = *mem_79;
12819#line 2245
12820    __cil_tmp44 = (unsigned int )irpSp;
12821#line 2245
12822    __cil_tmp45 = __cil_tmp44 + 4;
12823#line 2245
12824    mem_80 = (ULONG *)__cil_tmp45;
12825#line 2245
12826    __cil_tmp46 = *mem_80;
12827#line 2245
12828    __cil_tmp47 = 0 + 8;
12829#line 2245
12830    __cil_tmp48 = 4 + __cil_tmp47;
12831#line 2245
12832    __cil_tmp49 = (unsigned int )irpSp;
12833#line 2245
12834    __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
12835#line 2245
12836    mem_81 = (ULONG *)__cil_tmp50;
12837#line 2245
12838    __cil_tmp51 = *mem_81;
12839#line 2245
12840    __cil_tmp52 = __cil_tmp51 + __cil_tmp46;
12841#line 2245
12842    if (__cil_tmp52 > __cil_tmp43) {
12843      goto _L___1;
12844    } else {
12845      {
12846#line 2245
12847      __cil_tmp53 = (unsigned int )disketteExtension;
12848#line 2245
12849      __cil_tmp54 = __cil_tmp53 + 176;
12850#line 2245
12851      mem_82 = (ULONG *)__cil_tmp54;
12852#line 2245
12853      __cil_tmp55 = *mem_82;
12854#line 2245
12855      __cil_tmp56 = __cil_tmp55 - 1UL;
12856#line 2245
12857      __cil_tmp57 = (unsigned int )irpSp;
12858#line 2245
12859      __cil_tmp58 = __cil_tmp57 + 4;
12860#line 2245
12861      mem_83 = (ULONG *)__cil_tmp58;
12862#line 2245
12863      __cil_tmp59 = *mem_83;
12864#line 2245
12865      __cil_tmp60 = __cil_tmp59 & __cil_tmp56;
12866#line 2245
12867      if (__cil_tmp60 != 0UL) {
12868        _L___1: 
12869        {
12870#line 2252
12871        while (1) {
12872          while_53_continue: /* CIL Label */ ;
12873          goto while_53_break;
12874        }
12875        while_53_break: /* CIL Label */ ;
12876        }
12877        {
12878#line 2261
12879        while (1) {
12880          while_54_continue: /* CIL Label */ ;
12881          goto while_54_break;
12882        }
12883        while_54_break: /* CIL Label */ ;
12884        }
12885#line 2263
12886        ntStatus = -1073741811L;
12887      } else {
12888        goto _L___0;
12889      }
12890      }
12891    }
12892    }
12893  } else {
12894    _L___0: 
12895    {
12896#line 2272
12897    __cil_tmp61 = (unsigned int )irpSp;
12898#line 2272
12899    __cil_tmp62 = __cil_tmp61 + 4;
12900    {
12901#line 2272
12902    mem_84 = (ULONG *)__cil_tmp62;
12903#line 2272
12904    if (*mem_84) {
12905      {
12906#line 2279
12907      while (1) {
12908        while_55_continue: /* CIL Label */ ;
12909        goto while_55_break;
12910      }
12911      while_55_break: /* CIL Label */ ;
12912      }
12913      {
12914#line 2281
12915      ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
12916      }
12917    } else {
12918#line 2288
12919      __cil_tmp63 = 24 + 4;
12920#line 2288
12921      __cil_tmp64 = (unsigned int )Irp;
12922#line 2288
12923      __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
12924#line 2288
12925      mem_85 = (ULONG_PTR *)__cil_tmp65;
12926#line 2288
12927      *mem_85 = 0UL;
12928#line 2289
12929      __cil_tmp66 = (unsigned int )Irp;
12930#line 2289
12931      __cil_tmp67 = __cil_tmp66 + 24;
12932#line 2289
12933      mem_86 = (NTSTATUS *)__cil_tmp67;
12934#line 2289
12935      *mem_86 = 0L;
12936#line 2290
12937      myStatus = 0L;
12938      {
12939#line 2291
12940      while (1) {
12941        while_56_continue: /* CIL Label */ ;
12942        goto while_56_break;
12943      }
12944      while_56_break: /* CIL Label */ ;
12945      }
12946      {
12947#line 2292
12948      IofCompleteRequest(Irp, (char)0);
12949      }
12950#line 2293
12951      return (0L);
12952    }
12953    }
12954    }
12955  }
12956  }
12957#line 2297
12958  if (ntStatus != 259L) {
12959#line 2298
12960    __cil_tmp68 = (unsigned int )Irp;
12961#line 2298
12962    __cil_tmp69 = __cil_tmp68 + 24;
12963#line 2298
12964    mem_87 = (NTSTATUS *)__cil_tmp69;
12965#line 2298
12966    *mem_87 = ntStatus;
12967#line 2299
12968    myStatus = ntStatus;
12969    {
12970#line 2301
12971    while (1) {
12972      while_57_continue: /* CIL Label */ ;
12973      goto while_57_break;
12974    }
12975    while_57_break: /* CIL Label */ ;
12976    }
12977    {
12978#line 2302
12979    IofCompleteRequest(Irp, (char)0);
12980    }
12981  } else {
12982
12983  }
12984#line 2305
12985  return (ntStatus);
12986}
12987}
12988#line 2308 "floppy.c"
12989NTSTATUS FlInterpretError(UCHAR StatusRegister1 , UCHAR StatusRegister2 ) 
12990{ int __cil_tmp3 ;
12991  int __cil_tmp4 ;
12992  int __cil_tmp5 ;
12993  int __cil_tmp6 ;
12994  int __cil_tmp7 ;
12995  int __cil_tmp8 ;
12996  int __cil_tmp9 ;
12997  int __cil_tmp10 ;
12998  int __cil_tmp11 ;
12999  int __cil_tmp12 ;
13000  int __cil_tmp13 ;
13001
13002  {
13003  {
13004#line 2335
13005  __cil_tmp3 = (int )StatusRegister1;
13006#line 2335
13007  if (__cil_tmp3 & 32) {
13008    goto _L;
13009  } else {
13010    {
13011#line 2335
13012    __cil_tmp4 = (int )StatusRegister2;
13013#line 2335
13014    if (__cil_tmp4 & 32) {
13015      _L: 
13016      {
13017#line 2341
13018      while (1) {
13019        while_58_continue: /* CIL Label */ ;
13020        goto while_58_break;
13021      }
13022      while_58_break: /* CIL Label */ ;
13023      }
13024#line 2342
13025      return (-1073741761L);
13026    } else {
13027
13028    }
13029    }
13030  }
13031  }
13032  {
13033#line 2345
13034  __cil_tmp5 = (int )StatusRegister1;
13035#line 2345
13036  if (__cil_tmp5 & 16) {
13037    {
13038#line 2350
13039    while (1) {
13040      while_59_continue: /* CIL Label */ ;
13041      goto while_59_break;
13042    }
13043    while_59_break: /* CIL Label */ ;
13044    }
13045#line 2351
13046    return (-1073741764L);
13047  } else {
13048
13049  }
13050  }
13051  {
13052#line 2354
13053  __cil_tmp6 = (int )StatusRegister1;
13054#line 2354
13055  if (__cil_tmp6 & 4) {
13056    goto _L___0;
13057  } else {
13058    {
13059#line 2354
13060    __cil_tmp7 = (int )StatusRegister1;
13061#line 2354
13062    if (__cil_tmp7 & 128) {
13063      _L___0: 
13064      {
13065#line 2360
13066      while (1) {
13067        while_60_continue: /* CIL Label */ ;
13068        goto while_60_break;
13069      }
13070      while_60_break: /* CIL Label */ ;
13071      }
13072#line 2361
13073      return (-1073741803L);
13074    } else {
13075
13076    }
13077    }
13078  }
13079  }
13080  {
13081#line 2364
13082  __cil_tmp8 = (int )StatusRegister2;
13083#line 2364
13084  if (__cil_tmp8 & 1) {
13085    goto _L___1;
13086  } else {
13087    {
13088#line 2364
13089    __cil_tmp9 = (int )StatusRegister2;
13090#line 2364
13091    if (__cil_tmp9 & 2) {
13092      goto _L___1;
13093    } else {
13094      {
13095#line 2364
13096      __cil_tmp10 = (int )StatusRegister2;
13097#line 2364
13098      if (__cil_tmp10 & 64) {
13099        _L___1: 
13100        {
13101#line 2371
13102        while (1) {
13103          while_61_continue: /* CIL Label */ ;
13104          goto while_61_break;
13105        }
13106        while_61_break: /* CIL Label */ ;
13107        }
13108#line 2372
13109        return (-1073741668L);
13110      } else {
13111
13112      }
13113      }
13114    }
13115    }
13116  }
13117  }
13118  {
13119#line 2375
13120  __cil_tmp11 = (int )StatusRegister1;
13121#line 2375
13122  if (__cil_tmp11 & 2) {
13123    {
13124#line 2380
13125    while (1) {
13126      while_62_continue: /* CIL Label */ ;
13127      goto while_62_break;
13128    }
13129    while_62_break: /* CIL Label */ ;
13130    }
13131#line 2381
13132    return (-1073741662L);
13133  } else {
13134
13135  }
13136  }
13137  {
13138#line 2384
13139  __cil_tmp12 = (int )StatusRegister1;
13140#line 2384
13141  if (__cil_tmp12 & 1) {
13142    {
13143#line 2389
13144    while (1) {
13145      while_63_continue: /* CIL Label */ ;
13146      goto while_63_break;
13147    }
13148    while_63_break: /* CIL Label */ ;
13149    }
13150#line 2390
13151    return (-1073741467L);
13152  } else {
13153
13154  }
13155  }
13156  {
13157#line 2394
13158  __cil_tmp13 = (int )StatusRegister2;
13159#line 2394
13160  if (__cil_tmp13 & 16) {
13161    {
13162#line 2399
13163    while (1) {
13164      while_64_continue: /* CIL Label */ ;
13165      goto while_64_break;
13166    }
13167    while_64_break: /* CIL Label */ ;
13168    }
13169#line 2400
13170    return (-1073741466L);
13171  } else {
13172
13173  }
13174  }
13175  {
13176#line 2412
13177  while (1) {
13178    while_65_continue: /* CIL Label */ ;
13179    goto while_65_break;
13180  }
13181  while_65_break: /* CIL Label */ ;
13182  }
13183#line 2413
13184  return (-1073741465L);
13185}
13186}
13187#line 2416 "floppy.c"
13188void FlFinishOperation(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) 
13189{ NTSTATUS ntStatus ;
13190  int tmp ;
13191  unsigned int __cil_tmp5 ;
13192  unsigned int __cil_tmp6 ;
13193  unsigned int __cil_tmp7 ;
13194  unsigned int __cil_tmp8 ;
13195  unsigned int __cil_tmp9 ;
13196  unsigned int __cil_tmp10 ;
13197  UCHAR __cil_tmp11 ;
13198  int __cil_tmp12 ;
13199  int __cil_tmp13 ;
13200  unsigned int __cil_tmp14 ;
13201  unsigned int __cil_tmp15 ;
13202  UCHAR __cil_tmp16 ;
13203  int __cil_tmp17 ;
13204  unsigned int __cil_tmp18 ;
13205  unsigned int __cil_tmp19 ;
13206  unsigned int __cil_tmp20 ;
13207  unsigned int __cil_tmp21 ;
13208  FAST_MUTEX *__cil_tmp22 ;
13209  unsigned int __cil_tmp23 ;
13210  unsigned int __cil_tmp24 ;
13211  unsigned int __cil_tmp25 ;
13212  unsigned int __cil_tmp26 ;
13213  LONG __cil_tmp27 ;
13214  unsigned int __cil_tmp28 ;
13215  unsigned int __cil_tmp29 ;
13216  FAST_MUTEX *__cil_tmp30 ;
13217  unsigned int __cil_tmp31 ;
13218  unsigned int __cil_tmp32 ;
13219  LIST_ENTRY *__cil_tmp33 ;
13220  unsigned int __cil_tmp34 ;
13221  unsigned int __cil_tmp35 ;
13222  unsigned int __cil_tmp36 ;
13223  unsigned int __cil_tmp37 ;
13224  LIST_ENTRY *__cil_tmp38 ;
13225  unsigned int __cil_tmp39 ;
13226  unsigned int __cil_tmp40 ;
13227  KSPIN_LOCK *__cil_tmp41 ;
13228  unsigned int __cil_tmp42 ;
13229  unsigned int __cil_tmp43 ;
13230  int __cil_tmp44 ;
13231  unsigned int __cil_tmp45 ;
13232  unsigned int __cil_tmp46 ;
13233  PDEVICE_OBJECT __cil_tmp47 ;
13234  BOOLEAN *mem_48 ;
13235  UCHAR *mem_49 ;
13236  UCHAR *mem_50 ;
13237  UCHAR *mem_51 ;
13238  MEDIA_TYPE *mem_52 ;
13239  LONG *mem_53 ;
13240  LONG *mem_54 ;
13241  UCHAR *mem_55 ;
13242  PDEVICE_OBJECT *mem_56 ;
13243
13244  {
13245  {
13246#line 2454
13247  while (1) {
13248    while_66_continue: /* CIL Label */ ;
13249    goto while_66_break;
13250  }
13251  while_66_break: /* CIL Label */ ;
13252  }
13253#line 2461
13254  if (myStatus != 0L) {
13255    {
13256#line 2461
13257    __cil_tmp5 = (unsigned int )DisketteExtension;
13258#line 2461
13259    __cil_tmp6 = __cil_tmp5 + 104;
13260    {
13261#line 2461
13262    mem_48 = (BOOLEAN *)__cil_tmp6;
13263#line 2461
13264    if (*mem_48) {
13265#line 2464
13266      __cil_tmp7 = (unsigned int )DisketteExtension;
13267#line 2464
13268      __cil_tmp8 = __cil_tmp7 + 105;
13269#line 2464
13270      __cil_tmp9 = (unsigned int )DisketteExtension;
13271#line 2464
13272      __cil_tmp10 = __cil_tmp9 + 105;
13273#line 2464
13274      mem_49 = (UCHAR *)__cil_tmp10;
13275#line 2464
13276      __cil_tmp11 = *mem_49;
13277#line 2464
13278      __cil_tmp12 = (int )__cil_tmp11;
13279#line 2464
13280      __cil_tmp13 = __cil_tmp12 + 1;
13281#line 2464
13282      mem_50 = (UCHAR *)__cil_tmp8;
13283#line 2464
13284      *mem_50 = (unsigned char )__cil_tmp13;
13285      {
13286#line 2465
13287      __cil_tmp14 = (unsigned int )DisketteExtension;
13288#line 2465
13289      __cil_tmp15 = __cil_tmp14 + 105;
13290#line 2465
13291      mem_51 = (UCHAR *)__cil_tmp15;
13292#line 2465
13293      __cil_tmp16 = *mem_51;
13294#line 2465
13295      __cil_tmp17 = (int )__cil_tmp16;
13296#line 2465
13297      if (__cil_tmp17 < 2) {
13298        {
13299#line 2475
13300        ntStatus = FlInitializeControllerHardware(DisketteExtension);
13301        }
13302#line 2477
13303        if (ntStatus >= 0L) {
13304          {
13305#line 2482
13306          while (1) {
13307            while_67_continue: /* CIL Label */ ;
13308            goto while_67_break;
13309          }
13310          while_67_break: /* CIL Label */ ;
13311          }
13312#line 2490
13313          __cil_tmp18 = (unsigned int )DisketteExtension;
13314#line 2490
13315          __cil_tmp19 = __cil_tmp18 + 184;
13316#line 2490
13317          mem_52 = (MEDIA_TYPE *)__cil_tmp19;
13318#line 2490
13319          *mem_52 = (enum _MEDIA_TYPE )-1;
13320          {
13321#line 2496
13322          while (1) {
13323            while_68_continue: /* CIL Label */ ;
13324            goto while_68_break;
13325          }
13326          while_68_break: /* CIL Label */ ;
13327          }
13328          {
13329#line 2498
13330          __cil_tmp20 = (unsigned int )DisketteExtension;
13331#line 2498
13332          __cil_tmp21 = __cil_tmp20 + 56;
13333#line 2498
13334          __cil_tmp22 = (FAST_MUTEX *)__cil_tmp21;
13335#line 2498
13336          ExAcquireFastMutex(__cil_tmp22);
13337#line 2500
13338          __cil_tmp23 = (unsigned int )DisketteExtension;
13339#line 2500
13340          __cil_tmp24 = __cil_tmp23 + 88;
13341#line 2500
13342          __cil_tmp25 = (unsigned int )DisketteExtension;
13343#line 2500
13344          __cil_tmp26 = __cil_tmp25 + 88;
13345#line 2500
13346          mem_53 = (LONG *)__cil_tmp26;
13347#line 2500
13348          __cil_tmp27 = *mem_53;
13349#line 2500
13350          mem_54 = (LONG *)__cil_tmp24;
13351#line 2500
13352          *mem_54 = __cil_tmp27 + 1L;
13353#line 2501
13354          __cil_tmp28 = (unsigned int )DisketteExtension;
13355#line 2501
13356          __cil_tmp29 = __cil_tmp28 + 56;
13357#line 2501
13358          __cil_tmp30 = (FAST_MUTEX *)__cil_tmp29;
13359#line 2501
13360          ExReleaseFastMutex(__cil_tmp30);
13361#line 2503
13362          __cil_tmp31 = (unsigned int )DisketteExtension;
13363#line 2503
13364          __cil_tmp32 = __cil_tmp31 + 96;
13365#line 2503
13366          __cil_tmp33 = (LIST_ENTRY *)__cil_tmp32;
13367#line 2503
13368          __cil_tmp34 = 0 + 24;
13369#line 2503
13370          __cil_tmp35 = 64 + __cil_tmp34;
13371#line 2503
13372          __cil_tmp36 = (unsigned int )Irp;
13373#line 2503
13374          __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
13375#line 2503
13376          __cil_tmp38 = (LIST_ENTRY *)__cil_tmp37;
13377#line 2503
13378          __cil_tmp39 = (unsigned int )DisketteExtension;
13379#line 2503
13380          __cil_tmp40 = __cil_tmp39 + 52;
13381#line 2503
13382          __cil_tmp41 = (KSPIN_LOCK *)__cil_tmp40;
13383#line 2503
13384          ExfInterlockedInsertHeadList(__cil_tmp33, __cil_tmp38, __cil_tmp41);
13385          }
13386        } else {
13387
13388        }
13389        {
13390#line 2514
13391        while (1) {
13392          while_69_continue: /* CIL Label */ ;
13393          goto while_69_break;
13394        }
13395        while_69_break: /* CIL Label */ ;
13396        }
13397      } else {
13398
13399      }
13400      }
13401    } else {
13402
13403    }
13404    }
13405    }
13406  } else {
13407
13408  }
13409#line 2524
13410  __cil_tmp42 = (unsigned int )DisketteExtension;
13411#line 2524
13412  __cil_tmp43 = __cil_tmp42 + 105;
13413#line 2524
13414  mem_55 = (UCHAR *)__cil_tmp43;
13415#line 2524
13416  *mem_55 = (unsigned char)0;
13417  {
13418#line 2541
13419  __cil_tmp44 = myStatus >= 0L;
13420#line 2541
13421  if (! __cil_tmp44) {
13422#line 2541
13423    if (myStatus == -1073741661L) {
13424#line 2541
13425      tmp = 1;
13426    } else {
13427#line 2541
13428      if (myStatus == -1073741643L) {
13429#line 2541
13430        tmp = 1;
13431      } else {
13432#line 2541
13433        if (myStatus == -1073741662L) {
13434#line 2541
13435          tmp = 1;
13436        } else {
13437#line 2541
13438          if (myStatus == -1073741805L) {
13439#line 2541
13440            tmp = 1;
13441          } else {
13442#line 2541
13443            if (myStatus == -2147483626L) {
13444#line 2541
13445              tmp = 1;
13446            } else {
13447#line 2541
13448              if (myStatus == -1073741804L) {
13449#line 2541
13450                tmp = 1;
13451              } else {
13452#line 2541
13453                if (myStatus == -1073741806L) {
13454#line 2541
13455                  tmp = 1;
13456                } else {
13457#line 2541
13458                  tmp = 0;
13459                }
13460              }
13461            }
13462          }
13463        }
13464      }
13465    }
13466#line 2541
13467    if ((unsigned char )tmp) {
13468      {
13469#line 2535
13470      __cil_tmp45 = (unsigned int )DisketteExtension;
13471#line 2535
13472      __cil_tmp46 = __cil_tmp45 + 28;
13473#line 2535
13474      mem_56 = (PDEVICE_OBJECT *)__cil_tmp46;
13475#line 2535
13476      __cil_tmp47 = *mem_56;
13477#line 2535
13478      IoSetHardErrorOrVerifyDevice(Irp, __cil_tmp47);
13479      }
13480    } else {
13481
13482    }
13483  } else {
13484
13485  }
13486  }
13487#line 2549
13488  if (myStatus != 0L) {
13489#line 2549
13490    if (myStatus != -2147483626L) {
13491#line 2549
13492      if (myStatus != -1073741805L) {
13493        {
13494#line 2551
13495        while (1) {
13496          while_70_continue: /* CIL Label */ ;
13497          goto while_70_break;
13498        }
13499        while_70_break: /* CIL Label */ ;
13500        }
13501      } else {
13502        goto _L___0;
13503      }
13504    } else {
13505      goto _L___0;
13506    }
13507  } else {
13508    _L___0: 
13509    {
13510#line 2558
13511    while (1) {
13512      while_71_continue: /* CIL Label */ ;
13513      goto while_71_break;
13514    }
13515    while_71_break: /* CIL Label */ ;
13516    }
13517  }
13518  {
13519#line 2564
13520  while (1) {
13521    while_72_continue: /* CIL Label */ ;
13522    goto while_72_break;
13523  }
13524  while_72_break: /* CIL Label */ ;
13525  }
13526  {
13527#line 2569
13528  while (1) {
13529    while_73_continue: /* CIL Label */ ;
13530    goto while_73_break;
13531  }
13532  while_73_break: /* CIL Label */ ;
13533  }
13534  {
13535#line 2579
13536  IofCompleteRequest(Irp, (char)1);
13537  }
13538#line 2582
13539  return;
13540}
13541}
13542#line 2582 "floppy.c"
13543NTSTATUS FlStartDrive(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN WriteOperation ,
13544                      BOOLEAN SetUpMedia , BOOLEAN IgnoreChange ) 
13545{ LARGE_INTEGER delay ;
13546  BOOLEAN motorStarted ;
13547  UCHAR driveStatus ;
13548  NTSTATUS ntStatus ;
13549  FDC_ENABLE_PARMS fdcEnableParms ;
13550  FDC_DISK_CHANGE_PARMS fdcDiskChangeParms ;
13551  unsigned int __cil_tmp12 ;
13552  unsigned int __cil_tmp13 ;
13553  UCHAR __cil_tmp14 ;
13554  int __cil_tmp15 ;
13555  PDRIVE_MEDIA_LIMITS __cil_tmp16 ;
13556  DRIVE_MEDIA_TYPE __cil_tmp17 ;
13557  unsigned int __cil_tmp18 ;
13558  PDRIVE_MEDIA_CONSTANTS __cil_tmp19 ;
13559  unsigned int __cil_tmp20 ;
13560  unsigned int __cil_tmp21 ;
13561  unsigned int __cil_tmp22 ;
13562  unsigned int __cil_tmp23 ;
13563  MEDIA_TYPE __cil_tmp24 ;
13564  int __cil_tmp25 ;
13565  unsigned int __cil_tmp26 ;
13566  unsigned int __cil_tmp27 ;
13567  PDRIVE_MEDIA_CONSTANTS __cil_tmp28 ;
13568  unsigned int __cil_tmp29 ;
13569  unsigned int __cil_tmp30 ;
13570  MEDIA_TYPE __cil_tmp31 ;
13571  int __cil_tmp32 ;
13572  unsigned int __cil_tmp33 ;
13573  unsigned int __cil_tmp34 ;
13574  PDRIVE_MEDIA_CONSTANTS __cil_tmp35 ;
13575  FDC_ENABLE_PARMS *__cil_tmp36 ;
13576  unsigned int __cil_tmp37 ;
13577  unsigned int __cil_tmp38 ;
13578  unsigned int __cil_tmp39 ;
13579  unsigned int __cil_tmp40 ;
13580  unsigned int __cil_tmp41 ;
13581  unsigned int __cil_tmp42 ;
13582  unsigned int __cil_tmp43 ;
13583  unsigned int __cil_tmp44 ;
13584  unsigned int __cil_tmp45 ;
13585  unsigned int __cil_tmp46 ;
13586  unsigned int __cil_tmp47 ;
13587  unsigned int __cil_tmp48 ;
13588  PDEVICE_OBJECT __cil_tmp49 ;
13589  int __cil_tmp50 ;
13590  int __cil_tmp51 ;
13591  int __cil_tmp52 ;
13592  int __cil_tmp53 ;
13593  unsigned long __cil_tmp54 ;
13594  void *__cil_tmp55 ;
13595  unsigned int __cil_tmp56 ;
13596  unsigned int __cil_tmp57 ;
13597  unsigned int __cil_tmp58 ;
13598  unsigned int __cil_tmp59 ;
13599  unsigned int __cil_tmp60 ;
13600  unsigned int __cil_tmp61 ;
13601  PDEVICE_OBJECT __cil_tmp62 ;
13602  int __cil_tmp63 ;
13603  int __cil_tmp64 ;
13604  int __cil_tmp65 ;
13605  int __cil_tmp66 ;
13606  unsigned long __cil_tmp67 ;
13607  void *__cil_tmp68 ;
13608  FDC_DISK_CHANGE_PARMS *__cil_tmp69 ;
13609  int __cil_tmp70 ;
13610  unsigned int __cil_tmp71 ;
13611  unsigned int __cil_tmp72 ;
13612  UCHAR __cil_tmp73 ;
13613  int __cil_tmp74 ;
13614  unsigned int __cil_tmp75 ;
13615  unsigned int __cil_tmp76 ;
13616  UCHAR __cil_tmp77 ;
13617  int __cil_tmp78 ;
13618  int __cil_tmp79 ;
13619  unsigned int __cil_tmp80 ;
13620  unsigned int __cil_tmp81 ;
13621  unsigned int __cil_tmp82 ;
13622  unsigned int __cil_tmp83 ;
13623  PDEVICE_OBJECT __cil_tmp84 ;
13624  unsigned int __cil_tmp85 ;
13625  unsigned int __cil_tmp86 ;
13626  PVPB __cil_tmp87 ;
13627  unsigned int __cil_tmp88 ;
13628  unsigned int __cil_tmp89 ;
13629  USHORT __cil_tmp90 ;
13630  int __cil_tmp91 ;
13631  unsigned int __cil_tmp92 ;
13632  unsigned int __cil_tmp93 ;
13633  PDEVICE_OBJECT __cil_tmp94 ;
13634  unsigned int __cil_tmp95 ;
13635  unsigned int __cil_tmp96 ;
13636  PDEVICE_OBJECT __cil_tmp97 ;
13637  unsigned int __cil_tmp98 ;
13638  unsigned int __cil_tmp99 ;
13639  unsigned int __cil_tmp100 ;
13640  unsigned int __cil_tmp101 ;
13641  PDEVICE_OBJECT __cil_tmp102 ;
13642  unsigned int __cil_tmp103 ;
13643  unsigned int __cil_tmp104 ;
13644  ULONG __cil_tmp105 ;
13645  unsigned int __cil_tmp106 ;
13646  unsigned int __cil_tmp107 ;
13647  UCHAR __cil_tmp108 ;
13648  int __cil_tmp109 ;
13649  KUSER_SHARED_DATA *__cil_tmp110 ;
13650  unsigned int __cil_tmp111 ;
13651  unsigned int __cil_tmp112 ;
13652  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp113 ;
13653  int __cil_tmp114 ;
13654  unsigned int __cil_tmp115 ;
13655  unsigned int __cil_tmp116 ;
13656  unsigned int __cil_tmp117 ;
13657  unsigned int __cil_tmp118 ;
13658  unsigned int __cil_tmp119 ;
13659  unsigned int __cil_tmp120 ;
13660  unsigned int __cil_tmp121 ;
13661  unsigned int __cil_tmp122 ;
13662  unsigned int __cil_tmp123 ;
13663  unsigned int __cil_tmp124 ;
13664  unsigned int __cil_tmp125 ;
13665  unsigned int __cil_tmp126 ;
13666  unsigned int __cil_tmp127 ;
13667  unsigned int __cil_tmp128 ;
13668  UCHAR *__cil_tmp129 ;
13669  unsigned int __cil_tmp130 ;
13670  unsigned int __cil_tmp131 ;
13671  unsigned int __cil_tmp132 ;
13672  unsigned int __cil_tmp133 ;
13673  UCHAR *__cil_tmp134 ;
13674  void *__cil_tmp135 ;
13675  struct _MDL *__cil_tmp136 ;
13676  int __cil_tmp137 ;
13677  unsigned int __cil_tmp138 ;
13678  unsigned int __cil_tmp139 ;
13679  unsigned int __cil_tmp140 ;
13680  unsigned int __cil_tmp141 ;
13681  UCHAR __cil_tmp142 ;
13682  int __cil_tmp143 ;
13683  int __cil_tmp144 ;
13684  unsigned int __cil_tmp145 ;
13685  unsigned int __cil_tmp146 ;
13686  PDEVICE_OBJECT __cil_tmp147 ;
13687  unsigned int __cil_tmp148 ;
13688  unsigned int __cil_tmp149 ;
13689  PVPB __cil_tmp150 ;
13690  unsigned int __cil_tmp151 ;
13691  unsigned int __cil_tmp152 ;
13692  USHORT __cil_tmp153 ;
13693  int __cil_tmp154 ;
13694  unsigned int __cil_tmp155 ;
13695  unsigned int __cil_tmp156 ;
13696  PDEVICE_OBJECT __cil_tmp157 ;
13697  unsigned int __cil_tmp158 ;
13698  unsigned int __cil_tmp159 ;
13699  unsigned int __cil_tmp160 ;
13700  unsigned int __cil_tmp161 ;
13701  PDEVICE_OBJECT __cil_tmp162 ;
13702  unsigned int __cil_tmp163 ;
13703  unsigned int __cil_tmp164 ;
13704  ULONG __cil_tmp165 ;
13705  unsigned int __cil_tmp166 ;
13706  unsigned int __cil_tmp167 ;
13707  unsigned int __cil_tmp168 ;
13708  unsigned int __cil_tmp169 ;
13709  unsigned int __cil_tmp170 ;
13710  unsigned int __cil_tmp171 ;
13711  unsigned int __cil_tmp172 ;
13712  unsigned int __cil_tmp173 ;
13713  unsigned int __cil_tmp174 ;
13714  unsigned int __cil_tmp175 ;
13715  unsigned int __cil_tmp176 ;
13716  unsigned int __cil_tmp177 ;
13717  unsigned int __cil_tmp178 ;
13718  unsigned int __cil_tmp179 ;
13719  unsigned int __cil_tmp180 ;
13720  unsigned int __cil_tmp181 ;
13721  unsigned int __cil_tmp182 ;
13722  unsigned int __cil_tmp183 ;
13723  UCHAR *__cil_tmp184 ;
13724  unsigned int __cil_tmp185 ;
13725  unsigned int __cil_tmp186 ;
13726  unsigned int __cil_tmp187 ;
13727  unsigned int __cil_tmp188 ;
13728  UCHAR *__cil_tmp189 ;
13729  void *__cil_tmp190 ;
13730  struct _MDL *__cil_tmp191 ;
13731  int __cil_tmp192 ;
13732  unsigned int __cil_tmp193 ;
13733  unsigned int __cil_tmp194 ;
13734  unsigned int __cil_tmp195 ;
13735  unsigned int __cil_tmp196 ;
13736  UCHAR __cil_tmp197 ;
13737  int __cil_tmp198 ;
13738  int __cil_tmp199 ;
13739  unsigned int __cil_tmp200 ;
13740  unsigned int __cil_tmp201 ;
13741  unsigned int __cil_tmp202 ;
13742  unsigned int __cil_tmp203 ;
13743  UCHAR __cil_tmp204 ;
13744  int __cil_tmp205 ;
13745  unsigned int __cil_tmp206 ;
13746  unsigned int __cil_tmp207 ;
13747  unsigned int __cil_tmp208 ;
13748  unsigned int __cil_tmp209 ;
13749  unsigned int __cil_tmp210 ;
13750  unsigned int __cil_tmp211 ;
13751  unsigned int __cil_tmp212 ;
13752  unsigned int __cil_tmp213 ;
13753  unsigned int __cil_tmp214 ;
13754  unsigned int __cil_tmp215 ;
13755  unsigned int __cil_tmp216 ;
13756  unsigned int __cil_tmp217 ;
13757  unsigned int __cil_tmp218 ;
13758  unsigned int __cil_tmp219 ;
13759  unsigned int __cil_tmp220 ;
13760  unsigned int __cil_tmp221 ;
13761  LARGE_INTEGER *__cil_tmp222 ;
13762  unsigned int __cil_tmp223 ;
13763  unsigned int __cil_tmp224 ;
13764  unsigned int __cil_tmp225 ;
13765  unsigned int __cil_tmp226 ;
13766  unsigned int __cil_tmp227 ;
13767  unsigned int __cil_tmp228 ;
13768  UCHAR *__cil_tmp229 ;
13769  unsigned int __cil_tmp230 ;
13770  unsigned int __cil_tmp231 ;
13771  unsigned int __cil_tmp232 ;
13772  unsigned int __cil_tmp233 ;
13773  UCHAR *__cil_tmp234 ;
13774  void *__cil_tmp235 ;
13775  struct _MDL *__cil_tmp236 ;
13776  LARGE_INTEGER *__cil_tmp237 ;
13777  unsigned int __cil_tmp238 ;
13778  unsigned int __cil_tmp239 ;
13779  int __cil_tmp240 ;
13780  unsigned int __cil_tmp241 ;
13781  unsigned int __cil_tmp242 ;
13782  unsigned int __cil_tmp243 ;
13783  unsigned int __cil_tmp244 ;
13784  UCHAR __cil_tmp245 ;
13785  int __cil_tmp246 ;
13786  int __cil_tmp247 ;
13787  unsigned int __cil_tmp248 ;
13788  unsigned int __cil_tmp249 ;
13789  unsigned int __cil_tmp250 ;
13790  unsigned int __cil_tmp251 ;
13791  UCHAR __cil_tmp252 ;
13792  int __cil_tmp253 ;
13793  unsigned int __cil_tmp254 ;
13794  unsigned int __cil_tmp255 ;
13795  KUSER_SHARED_DATA *__cil_tmp256 ;
13796  unsigned int __cil_tmp257 ;
13797  unsigned int __cil_tmp258 ;
13798  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp259 ;
13799  int __cil_tmp260 ;
13800  unsigned int __cil_tmp261 ;
13801  unsigned int __cil_tmp262 ;
13802  unsigned int __cil_tmp263 ;
13803  unsigned int __cil_tmp264 ;
13804  unsigned int __cil_tmp265 ;
13805  unsigned int __cil_tmp266 ;
13806  unsigned int __cil_tmp267 ;
13807  unsigned int __cil_tmp268 ;
13808  unsigned int __cil_tmp269 ;
13809  unsigned int __cil_tmp270 ;
13810  unsigned int __cil_tmp271 ;
13811  unsigned int __cil_tmp272 ;
13812  unsigned int __cil_tmp273 ;
13813  unsigned int __cil_tmp274 ;
13814  UCHAR *__cil_tmp275 ;
13815  unsigned int __cil_tmp276 ;
13816  unsigned int __cil_tmp277 ;
13817  unsigned int __cil_tmp278 ;
13818  unsigned int __cil_tmp279 ;
13819  UCHAR *__cil_tmp280 ;
13820  void *__cil_tmp281 ;
13821  struct _MDL *__cil_tmp282 ;
13822  int __cil_tmp283 ;
13823  unsigned int __cil_tmp284 ;
13824  unsigned int __cil_tmp285 ;
13825  unsigned int __cil_tmp286 ;
13826  unsigned int __cil_tmp287 ;
13827  UCHAR __cil_tmp288 ;
13828  int __cil_tmp289 ;
13829  unsigned int __cil_tmp290 ;
13830  unsigned int __cil_tmp291 ;
13831  PDEVICE_OBJECT __cil_tmp292 ;
13832  int __cil_tmp293 ;
13833  int __cil_tmp294 ;
13834  int __cil_tmp295 ;
13835  int __cil_tmp296 ;
13836  unsigned long __cil_tmp297 ;
13837  void *__cil_tmp298 ;
13838  FDC_DISK_CHANGE_PARMS *__cil_tmp299 ;
13839  int __cil_tmp300 ;
13840  int __cil_tmp301 ;
13841  unsigned int __cil_tmp302 ;
13842  unsigned int __cil_tmp303 ;
13843  PDEVICE_OBJECT __cil_tmp304 ;
13844  unsigned int __cil_tmp305 ;
13845  unsigned int __cil_tmp306 ;
13846  PVPB __cil_tmp307 ;
13847  unsigned int __cil_tmp308 ;
13848  unsigned int __cil_tmp309 ;
13849  USHORT __cil_tmp310 ;
13850  int __cil_tmp311 ;
13851  unsigned int __cil_tmp312 ;
13852  unsigned int __cil_tmp313 ;
13853  PDEVICE_OBJECT __cil_tmp314 ;
13854  unsigned int __cil_tmp315 ;
13855  unsigned int __cil_tmp316 ;
13856  unsigned int __cil_tmp317 ;
13857  unsigned int __cil_tmp318 ;
13858  PDEVICE_OBJECT __cil_tmp319 ;
13859  unsigned int __cil_tmp320 ;
13860  unsigned int __cil_tmp321 ;
13861  ULONG __cil_tmp322 ;
13862  int __cil_tmp323 ;
13863  unsigned int __cil_tmp324 ;
13864  unsigned int __cil_tmp325 ;
13865  PDEVICE_OBJECT __cil_tmp326 ;
13866  unsigned int __cil_tmp327 ;
13867  unsigned int __cil_tmp328 ;
13868  PVPB __cil_tmp329 ;
13869  unsigned int __cil_tmp330 ;
13870  unsigned int __cil_tmp331 ;
13871  USHORT __cil_tmp332 ;
13872  int __cil_tmp333 ;
13873  KUSER_SHARED_DATA *__cil_tmp334 ;
13874  unsigned int __cil_tmp335 ;
13875  unsigned int __cil_tmp336 ;
13876  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp337 ;
13877  int __cil_tmp338 ;
13878  unsigned int __cil_tmp339 ;
13879  unsigned int __cil_tmp340 ;
13880  MEDIA_TYPE __cil_tmp341 ;
13881  int __cil_tmp342 ;
13882  unsigned int __cil_tmp343 ;
13883  unsigned int __cil_tmp344 ;
13884  MEDIA_TYPE __cil_tmp345 ;
13885  int __cil_tmp346 ;
13886  unsigned int __cil_tmp347 ;
13887  unsigned int __cil_tmp348 ;
13888  DRIVE_MEDIA_TYPE __cil_tmp349 ;
13889  int __cil_tmp350 ;
13890  unsigned int __cil_tmp351 ;
13891  unsigned int __cil_tmp352 ;
13892  DRIVE_MEDIA_TYPE __cil_tmp353 ;
13893  int __cil_tmp354 ;
13894  int __cil_tmp355 ;
13895  unsigned int __cil_tmp356 ;
13896  unsigned int __cil_tmp357 ;
13897  unsigned int __cil_tmp358 ;
13898  unsigned int __cil_tmp359 ;
13899  unsigned int __cil_tmp360 ;
13900  unsigned int __cil_tmp361 ;
13901  unsigned int __cil_tmp362 ;
13902  unsigned int __cil_tmp363 ;
13903  unsigned int __cil_tmp364 ;
13904  unsigned int __cil_tmp365 ;
13905  unsigned int __cil_tmp366 ;
13906  unsigned int __cil_tmp367 ;
13907  unsigned int __cil_tmp368 ;
13908  unsigned int __cil_tmp369 ;
13909  UCHAR *__cil_tmp370 ;
13910  unsigned int __cil_tmp371 ;
13911  unsigned int __cil_tmp372 ;
13912  unsigned int __cil_tmp373 ;
13913  unsigned int __cil_tmp374 ;
13914  UCHAR *__cil_tmp375 ;
13915  void *__cil_tmp376 ;
13916  struct _MDL *__cil_tmp377 ;
13917  int __cil_tmp378 ;
13918  KUSER_SHARED_DATA *__cil_tmp379 ;
13919  unsigned int __cil_tmp380 ;
13920  unsigned int __cil_tmp381 ;
13921  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp382 ;
13922  int __cil_tmp383 ;
13923  unsigned int __cil_tmp384 ;
13924  unsigned int __cil_tmp385 ;
13925  unsigned int __cil_tmp386 ;
13926  unsigned int __cil_tmp387 ;
13927  UCHAR __cil_tmp388 ;
13928  int __cil_tmp389 ;
13929  int __cil_tmp390 ;
13930  unsigned int __cil_tmp391 ;
13931  unsigned int __cil_tmp392 ;
13932  unsigned int __cil_tmp393 ;
13933  unsigned int __cil_tmp394 ;
13934  UCHAR __cil_tmp395 ;
13935  int __cil_tmp396 ;
13936  UCHAR *mem_397 ;
13937  DRIVE_MEDIA_TYPE *mem_398 ;
13938  DRIVE_MEDIA_CONSTANTS *mem_399 ;
13939  MEDIA_TYPE *mem_400 ;
13940  DRIVE_MEDIA_CONSTANTS *mem_401 ;
13941  MEDIA_TYPE *mem_402 ;
13942  DRIVE_MEDIA_CONSTANTS *mem_403 ;
13943  UCHAR *mem_404 ;
13944  UCHAR *mem_405 ;
13945  USHORT *mem_406 ;
13946  USHORT *mem_407 ;
13947  USHORT *mem_408 ;
13948  USHORT *mem_409 ;
13949  PDEVICE_OBJECT *mem_410 ;
13950  BOOLEAN *mem_411 ;
13951  UCHAR *mem_412 ;
13952  UCHAR *mem_413 ;
13953  PDEVICE_OBJECT *mem_414 ;
13954  UCHAR *mem_415 ;
13955  UCHAR *mem_416 ;
13956  UCHAR *mem_417 ;
13957  MEDIA_TYPE *mem_418 ;
13958  PDEVICE_OBJECT *mem_419 ;
13959  PVPB *mem_420 ;
13960  USHORT *mem_421 ;
13961  PDEVICE_OBJECT *mem_422 ;
13962  PDEVICE_OBJECT *mem_423 ;
13963  PDEVICE_OBJECT *mem_424 ;
13964  ULONG *mem_425 ;
13965  ULONG *mem_426 ;
13966  UCHAR *mem_427 ;
13967  ALTERNATIVE_ARCHITECTURE_TYPE *mem_428 ;
13968  UCHAR *mem_429 ;
13969  UCHAR *mem_430 ;
13970  UCHAR *mem_431 ;
13971  UCHAR *mem_432 ;
13972  PDEVICE_OBJECT *mem_433 ;
13973  PVPB *mem_434 ;
13974  USHORT *mem_435 ;
13975  PDEVICE_OBJECT *mem_436 ;
13976  PDEVICE_OBJECT *mem_437 ;
13977  ULONG *mem_438 ;
13978  ULONG *mem_439 ;
13979  UCHAR *mem_440 ;
13980  UCHAR *mem_441 ;
13981  UCHAR *mem_442 ;
13982  UCHAR *mem_443 ;
13983  UCHAR *mem_444 ;
13984  UCHAR *mem_445 ;
13985  BOOLEAN *mem_446 ;
13986  UCHAR *mem_447 ;
13987  UCHAR *mem_448 ;
13988  UCHAR *mem_449 ;
13989  UCHAR *mem_450 ;
13990  ULONG *mem_451 ;
13991  LONG *mem_452 ;
13992  ULONG *mem_453 ;
13993  LONG *mem_454 ;
13994  UCHAR *mem_455 ;
13995  UCHAR *mem_456 ;
13996  BOOLEAN *mem_457 ;
13997  ALTERNATIVE_ARCHITECTURE_TYPE *mem_458 ;
13998  UCHAR *mem_459 ;
13999  UCHAR *mem_460 ;
14000  UCHAR *mem_461 ;
14001  UCHAR *mem_462 ;
14002  PDEVICE_OBJECT *mem_463 ;
14003  UCHAR *mem_464 ;
14004  PDEVICE_OBJECT *mem_465 ;
14005  PVPB *mem_466 ;
14006  USHORT *mem_467 ;
14007  PDEVICE_OBJECT *mem_468 ;
14008  PDEVICE_OBJECT *mem_469 ;
14009  ULONG *mem_470 ;
14010  ULONG *mem_471 ;
14011  PDEVICE_OBJECT *mem_472 ;
14012  PVPB *mem_473 ;
14013  USHORT *mem_474 ;
14014  ALTERNATIVE_ARCHITECTURE_TYPE *mem_475 ;
14015  MEDIA_TYPE *mem_476 ;
14016  MEDIA_TYPE *mem_477 ;
14017  DRIVE_MEDIA_TYPE *mem_478 ;
14018  DRIVE_MEDIA_TYPE *mem_479 ;
14019  UCHAR *mem_480 ;
14020  UCHAR *mem_481 ;
14021  UCHAR *mem_482 ;
14022  ALTERNATIVE_ARCHITECTURE_TYPE *mem_483 ;
14023  UCHAR *mem_484 ;
14024  UCHAR *mem_485 ;
14025
14026  {
14027#line 2630
14028  ntStatus = 0L;
14029  {
14030#line 2637
14031  while (1) {
14032    while_74_continue: /* CIL Label */ ;
14033    goto while_74_break;
14034  }
14035  while_74_break: /* CIL Label */ ;
14036  }
14037#line 2654
14038  __cil_tmp12 = (unsigned int )DisketteExtension;
14039#line 2654
14040  __cil_tmp13 = __cil_tmp12 + 174;
14041#line 2654
14042  mem_397 = (UCHAR *)__cil_tmp13;
14043#line 2654
14044  __cil_tmp14 = *mem_397;
14045#line 2654
14046  __cil_tmp15 = (int )__cil_tmp14;
14047#line 2654
14048  __cil_tmp16 = DriveMediaLimits + __cil_tmp15;
14049#line 2654
14050  mem_398 = (DRIVE_MEDIA_TYPE *)__cil_tmp16;
14051#line 2654
14052  __cil_tmp17 = *mem_398;
14053#line 2654
14054  __cil_tmp18 = (unsigned int )__cil_tmp17;
14055#line 2654
14056  __cil_tmp19 = DriveMediaConstants + __cil_tmp18;
14057#line 2654
14058  __cil_tmp20 = (unsigned int )DisketteExtension;
14059#line 2654
14060  __cil_tmp21 = __cil_tmp20 + 252;
14061#line 2654
14062  mem_399 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp21;
14063#line 2654
14064  *__cil_tmp19 = *mem_399;
14065  {
14066#line 2657
14067  __cil_tmp22 = (unsigned int )DisketteExtension;
14068#line 2657
14069  __cil_tmp23 = __cil_tmp22 + 184;
14070#line 2657
14071  mem_400 = (MEDIA_TYPE *)__cil_tmp23;
14072#line 2657
14073  __cil_tmp24 = *mem_400;
14074#line 2657
14075  __cil_tmp25 = (int )__cil_tmp24;
14076#line 2657
14077  if (__cil_tmp25 == -1) {
14078#line 2659
14079    __cil_tmp26 = (unsigned int )DisketteExtension;
14080#line 2659
14081    __cil_tmp27 = __cil_tmp26 + 308;
14082#line 2659
14083    __cil_tmp28 = DriveMediaConstants + 0;
14084#line 2659
14085    mem_401 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp27;
14086#line 2659
14087    *mem_401 = *__cil_tmp28;
14088  } else {
14089    {
14090#line 2657
14091    __cil_tmp29 = (unsigned int )DisketteExtension;
14092#line 2657
14093    __cil_tmp30 = __cil_tmp29 + 184;
14094#line 2657
14095    mem_402 = (MEDIA_TYPE *)__cil_tmp30;
14096#line 2657
14097    __cil_tmp31 = *mem_402;
14098#line 2657
14099    __cil_tmp32 = (int )__cil_tmp31;
14100#line 2657
14101    if (__cil_tmp32 == 0) {
14102#line 2659
14103      __cil_tmp33 = (unsigned int )DisketteExtension;
14104#line 2659
14105      __cil_tmp34 = __cil_tmp33 + 308;
14106#line 2659
14107      __cil_tmp35 = DriveMediaConstants + 0;
14108#line 2659
14109      mem_403 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp34;
14110#line 2659
14111      *mem_403 = *__cil_tmp35;
14112    } else {
14113
14114    }
14115    }
14116  }
14117  }
14118#line 2669
14119  __cil_tmp36 = & fdcEnableParms;
14120#line 2669
14121  __cil_tmp37 = (unsigned int )DisketteExtension;
14122#line 2669
14123  __cil_tmp38 = __cil_tmp37 + 249;
14124#line 2669
14125  mem_404 = (UCHAR *)__cil_tmp36;
14126#line 2669
14127  mem_405 = (UCHAR *)__cil_tmp38;
14128#line 2669
14129  *mem_404 = *mem_405;
14130#line 2670
14131  if (WriteOperation) {
14132#line 2671
14133    __cil_tmp39 = (unsigned int )(& fdcEnableParms) + 2;
14134#line 2671
14135    __cil_tmp40 = 308 + 46;
14136#line 2671
14137    __cil_tmp41 = (unsigned int )DisketteExtension;
14138#line 2671
14139    __cil_tmp42 = __cil_tmp41 + __cil_tmp40;
14140#line 2671
14141    mem_406 = (USHORT *)__cil_tmp39;
14142#line 2671
14143    mem_407 = (USHORT *)__cil_tmp42;
14144#line 2671
14145    *mem_406 = *mem_407;
14146  } else {
14147#line 2674
14148    __cil_tmp43 = (unsigned int )(& fdcEnableParms) + 2;
14149#line 2674
14150    __cil_tmp44 = 308 + 44;
14151#line 2674
14152    __cil_tmp45 = (unsigned int )DisketteExtension;
14153#line 2674
14154    __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
14155#line 2674
14156    mem_408 = (USHORT *)__cil_tmp43;
14157#line 2674
14158    mem_409 = (USHORT *)__cil_tmp46;
14159#line 2674
14160    *mem_408 = *mem_409;
14161  }
14162  {
14163#line 2678
14164  __cil_tmp47 = (unsigned int )DisketteExtension;
14165#line 2678
14166  __cil_tmp48 = __cil_tmp47 + 8;
14167#line 2678
14168  mem_410 = (PDEVICE_OBJECT *)__cil_tmp48;
14169#line 2678
14170  __cil_tmp49 = *mem_410;
14171#line 2678
14172  __cil_tmp50 = 774 << 2;
14173#line 2678
14174  __cil_tmp51 = 7 << 16;
14175#line 2678
14176  __cil_tmp52 = __cil_tmp51 | __cil_tmp50;
14177#line 2678
14178  __cil_tmp53 = __cil_tmp52 | 3;
14179#line 2678
14180  __cil_tmp54 = (unsigned long )__cil_tmp53;
14181#line 2678
14182  __cil_tmp55 = (void *)(& fdcEnableParms);
14183#line 2678
14184  ntStatus = FlFdcDeviceIo(__cil_tmp49, __cil_tmp54, __cil_tmp55);
14185#line 2682
14186  __cil_tmp56 = (unsigned int )(& fdcEnableParms) + 4;
14187#line 2682
14188  mem_411 = (BOOLEAN *)__cil_tmp56;
14189#line 2682
14190  motorStarted = *mem_411;
14191  }
14192#line 2684
14193  if (ntStatus >= 0L) {
14194    {
14195#line 2686
14196    __cil_tmp57 = (unsigned int )(& fdcDiskChangeParms) + 1;
14197#line 2686
14198    __cil_tmp58 = (unsigned int )DisketteExtension;
14199#line 2686
14200    __cil_tmp59 = __cil_tmp58 + 249;
14201#line 2686
14202    mem_412 = (UCHAR *)__cil_tmp57;
14203#line 2686
14204    mem_413 = (UCHAR *)__cil_tmp59;
14205#line 2686
14206    *mem_412 = *mem_413;
14207#line 2688
14208    __cil_tmp60 = (unsigned int )DisketteExtension;
14209#line 2688
14210    __cil_tmp61 = __cil_tmp60 + 8;
14211#line 2688
14212    mem_414 = (PDEVICE_OBJECT *)__cil_tmp61;
14213#line 2688
14214    __cil_tmp62 = *mem_414;
14215#line 2688
14216    __cil_tmp63 = 776 << 2;
14217#line 2688
14218    __cil_tmp64 = 7 << 16;
14219#line 2688
14220    __cil_tmp65 = __cil_tmp64 | __cil_tmp63;
14221#line 2688
14222    __cil_tmp66 = __cil_tmp65 | 3;
14223#line 2688
14224    __cil_tmp67 = (unsigned long )__cil_tmp66;
14225#line 2688
14226    __cil_tmp68 = (void *)(& fdcDiskChangeParms);
14227#line 2688
14228    ntStatus = FlFdcDeviceIo(__cil_tmp62, __cil_tmp67, __cil_tmp68);
14229#line 2692
14230    __cil_tmp69 = & fdcDiskChangeParms;
14231#line 2692
14232    mem_415 = (UCHAR *)__cil_tmp69;
14233#line 2692
14234    driveStatus = *mem_415;
14235    }
14236  } else {
14237
14238  }
14239  {
14240#line 2695
14241  __cil_tmp70 = ntStatus >= 0L;
14242#line 2695
14243  if (! __cil_tmp70) {
14244#line 2696
14245    return (ntStatus);
14246  } else {
14247
14248  }
14249  }
14250  {
14251#line 2708
14252  __cil_tmp71 = (unsigned int )DisketteExtension;
14253#line 2708
14254  __cil_tmp72 = __cil_tmp71 + 174;
14255#line 2708
14256  mem_416 = (UCHAR *)__cil_tmp72;
14257#line 2708
14258  __cil_tmp73 = *mem_416;
14259#line 2708
14260  __cil_tmp74 = (int )__cil_tmp73;
14261#line 2708
14262  if (__cil_tmp74 == 0) {
14263#line 2708
14264    if (motorStarted) {
14265      goto _L___1;
14266    } else {
14267      goto _L___3;
14268    }
14269  } else {
14270    _L___3: 
14271    {
14272#line 2708
14273    __cil_tmp75 = (unsigned int )DisketteExtension;
14274#line 2708
14275    __cil_tmp76 = __cil_tmp75 + 174;
14276#line 2708
14277    mem_417 = (UCHAR *)__cil_tmp76;
14278#line 2708
14279    __cil_tmp77 = *mem_417;
14280#line 2708
14281    __cil_tmp78 = (int )__cil_tmp77;
14282#line 2708
14283    if (__cil_tmp78 != 0) {
14284      {
14285#line 2708
14286      __cil_tmp79 = (int )driveStatus;
14287#line 2708
14288      if (__cil_tmp79 & 128) {
14289        _L___1: 
14290        {
14291#line 2716
14292        while (1) {
14293          while_75_continue: /* CIL Label */ ;
14294          goto while_75_break;
14295        }
14296        while_75_break: /* CIL Label */ ;
14297        }
14298#line 2718
14299        __cil_tmp80 = (unsigned int )DisketteExtension;
14300#line 2718
14301        __cil_tmp81 = __cil_tmp80 + 184;
14302#line 2718
14303        mem_418 = (MEDIA_TYPE *)__cil_tmp81;
14304#line 2718
14305        *mem_418 = (enum _MEDIA_TYPE )-1;
14306        {
14307#line 2725
14308        __cil_tmp82 = (unsigned int )DisketteExtension;
14309#line 2725
14310        __cil_tmp83 = __cil_tmp82 + 28;
14311#line 2725
14312        mem_419 = (PDEVICE_OBJECT *)__cil_tmp83;
14313#line 2725
14314        __cil_tmp84 = *mem_419;
14315#line 2725
14316        __cil_tmp85 = (unsigned int )__cil_tmp84;
14317#line 2725
14318        __cil_tmp86 = __cil_tmp85 + 36;
14319#line 2725
14320        mem_420 = (PVPB *)__cil_tmp86;
14321#line 2725
14322        __cil_tmp87 = *mem_420;
14323#line 2725
14324        __cil_tmp88 = (unsigned int )__cil_tmp87;
14325#line 2725
14326        __cil_tmp89 = __cil_tmp88 + 4;
14327#line 2725
14328        mem_421 = (USHORT *)__cil_tmp89;
14329#line 2725
14330        __cil_tmp90 = *mem_421;
14331#line 2725
14332        __cil_tmp91 = (int )__cil_tmp90;
14333#line 2725
14334        if (__cil_tmp91 & 1) {
14335#line 2727
14336          if (Irp) {
14337            {
14338#line 2728
14339            __cil_tmp92 = (unsigned int )DisketteExtension;
14340#line 2728
14341            __cil_tmp93 = __cil_tmp92 + 28;
14342#line 2728
14343            mem_422 = (PDEVICE_OBJECT *)__cil_tmp93;
14344#line 2728
14345            __cil_tmp94 = *mem_422;
14346#line 2728
14347            IoSetHardErrorOrVerifyDevice(Irp, __cil_tmp94);
14348            }
14349          } else {
14350
14351          }
14352#line 2731
14353          __cil_tmp95 = (unsigned int )DisketteExtension;
14354#line 2731
14355          __cil_tmp96 = __cil_tmp95 + 28;
14356#line 2731
14357          mem_423 = (PDEVICE_OBJECT *)__cil_tmp96;
14358#line 2731
14359          __cil_tmp97 = *mem_423;
14360#line 2731
14361          __cil_tmp98 = (unsigned int )__cil_tmp97;
14362#line 2731
14363          __cil_tmp99 = __cil_tmp98 + 28;
14364#line 2731
14365          __cil_tmp100 = (unsigned int )DisketteExtension;
14366#line 2731
14367          __cil_tmp101 = __cil_tmp100 + 28;
14368#line 2731
14369          mem_424 = (PDEVICE_OBJECT *)__cil_tmp101;
14370#line 2731
14371          __cil_tmp102 = *mem_424;
14372#line 2731
14373          __cil_tmp103 = (unsigned int )__cil_tmp102;
14374#line 2731
14375          __cil_tmp104 = __cil_tmp103 + 28;
14376#line 2731
14377          mem_425 = (ULONG *)__cil_tmp104;
14378#line 2731
14379          __cil_tmp105 = *mem_425;
14380#line 2731
14381          mem_426 = (ULONG *)__cil_tmp99;
14382#line 2731
14383          *mem_426 = __cil_tmp105 | 2UL;
14384        } else {
14385
14386        }
14387        }
14388        {
14389#line 2741
14390        __cil_tmp106 = (unsigned int )DisketteExtension;
14391#line 2741
14392        __cil_tmp107 = __cil_tmp106 + 174;
14393#line 2741
14394        mem_427 = (UCHAR *)__cil_tmp107;
14395#line 2741
14396        __cil_tmp108 = *mem_427;
14397#line 2741
14398        __cil_tmp109 = (int )__cil_tmp108;
14399#line 2741
14400        if (__cil_tmp109 != 0) {
14401          {
14402#line 2743
14403          __cil_tmp110 = (KUSER_SHARED_DATA * const  )4292804608U;
14404#line 2743
14405          __cil_tmp111 = (unsigned int )__cil_tmp110;
14406#line 2743
14407          __cil_tmp112 = __cil_tmp111 + 732;
14408#line 2743
14409          mem_428 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp112;
14410#line 2743
14411          __cil_tmp113 = *mem_428;
14412#line 2743
14413          __cil_tmp114 = (int )__cil_tmp113;
14414#line 2743
14415          if (__cil_tmp114 == 1) {
14416            {
14417#line 2749
14418            __cil_tmp115 = 0 * 1U;
14419#line 2749
14420            __cil_tmp116 = 112 + __cil_tmp115;
14421#line 2749
14422            __cil_tmp117 = (unsigned int )DisketteExtension;
14423#line 2749
14424            __cil_tmp118 = __cil_tmp117 + __cil_tmp116;
14425#line 2749
14426            mem_429 = (UCHAR *)__cil_tmp118;
14427#line 2749
14428            *mem_429 = (unsigned char)14;
14429#line 2750
14430            __cil_tmp119 = 1 * 1U;
14431#line 2750
14432            __cil_tmp120 = 112 + __cil_tmp119;
14433#line 2750
14434            __cil_tmp121 = (unsigned int )DisketteExtension;
14435#line 2750
14436            __cil_tmp122 = __cil_tmp121 + __cil_tmp120;
14437#line 2750
14438            __cil_tmp123 = (unsigned int )DisketteExtension;
14439#line 2750
14440            __cil_tmp124 = __cil_tmp123 + 248;
14441#line 2750
14442            mem_430 = (UCHAR *)__cil_tmp122;
14443#line 2750
14444            mem_431 = (UCHAR *)__cil_tmp124;
14445#line 2750
14446            *mem_430 = *mem_431;
14447#line 2752
14448            __cil_tmp125 = 0 * 1U;
14449#line 2752
14450            __cil_tmp126 = 112 + __cil_tmp125;
14451#line 2752
14452            __cil_tmp127 = (unsigned int )DisketteExtension;
14453#line 2752
14454            __cil_tmp128 = __cil_tmp127 + __cil_tmp126;
14455#line 2752
14456            __cil_tmp129 = (UCHAR *)__cil_tmp128;
14457#line 2752
14458            __cil_tmp130 = 0 * 1U;
14459#line 2752
14460            __cil_tmp131 = 112 + __cil_tmp130;
14461#line 2752
14462            __cil_tmp132 = (unsigned int )DisketteExtension;
14463#line 2752
14464            __cil_tmp133 = __cil_tmp132 + __cil_tmp131;
14465#line 2752
14466            __cil_tmp134 = (UCHAR *)__cil_tmp133;
14467#line 2752
14468            __cil_tmp135 = (void *)0;
14469#line 2752
14470            __cil_tmp136 = (struct _MDL *)__cil_tmp135;
14471#line 2752
14472            ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp129, __cil_tmp134,
14473                                      __cil_tmp136, 0UL, 0UL);
14474            }
14475            {
14476#line 2759
14477            __cil_tmp137 = ntStatus >= 0L;
14478#line 2759
14479            if (! __cil_tmp137) {
14480              {
14481#line 2764
14482              while (1) {
14483                while_76_continue: /* CIL Label */ ;
14484                goto while_76_break;
14485              }
14486              while_76_break: /* CIL Label */ ;
14487              }
14488#line 2766
14489              return (ntStatus);
14490            } else {
14491
14492            }
14493            }
14494            {
14495#line 2769
14496            __cil_tmp138 = 0 * 1U;
14497#line 2769
14498            __cil_tmp139 = 112 + __cil_tmp138;
14499#line 2769
14500            __cil_tmp140 = (unsigned int )DisketteExtension;
14501#line 2769
14502            __cil_tmp141 = __cil_tmp140 + __cil_tmp139;
14503#line 2769
14504            mem_432 = (UCHAR *)__cil_tmp141;
14505#line 2769
14506            __cil_tmp142 = *mem_432;
14507#line 2769
14508            __cil_tmp143 = (int )__cil_tmp142;
14509#line 2769
14510            if (__cil_tmp143 & 32) {
14511#line 2771
14512              driveStatus = (unsigned char)127;
14513            } else {
14514#line 2775
14515              driveStatus = (unsigned char)128;
14516            }
14517            }
14518            {
14519#line 2778
14520            __cil_tmp144 = (int )driveStatus;
14521#line 2778
14522            if (__cil_tmp144 & 128) {
14523              {
14524#line 2788
14525              while (1) {
14526                while_77_continue: /* CIL Label */ ;
14527                goto while_77_break;
14528              }
14529              while_77_break: /* CIL Label */ ;
14530              }
14531              {
14532#line 2795
14533              __cil_tmp145 = (unsigned int )DisketteExtension;
14534#line 2795
14535              __cil_tmp146 = __cil_tmp145 + 28;
14536#line 2795
14537              mem_433 = (PDEVICE_OBJECT *)__cil_tmp146;
14538#line 2795
14539              __cil_tmp147 = *mem_433;
14540#line 2795
14541              __cil_tmp148 = (unsigned int )__cil_tmp147;
14542#line 2795
14543              __cil_tmp149 = __cil_tmp148 + 36;
14544#line 2795
14545              mem_434 = (PVPB *)__cil_tmp149;
14546#line 2795
14547              __cil_tmp150 = *mem_434;
14548#line 2795
14549              __cil_tmp151 = (unsigned int )__cil_tmp150;
14550#line 2795
14551              __cil_tmp152 = __cil_tmp151 + 4;
14552#line 2795
14553              mem_435 = (USHORT *)__cil_tmp152;
14554#line 2795
14555              __cil_tmp153 = *mem_435;
14556#line 2795
14557              __cil_tmp154 = (int )__cil_tmp153;
14558#line 2795
14559              if (__cil_tmp154 & 1) {
14560#line 2797
14561                __cil_tmp155 = (unsigned int )DisketteExtension;
14562#line 2797
14563                __cil_tmp156 = __cil_tmp155 + 28;
14564#line 2797
14565                mem_436 = (PDEVICE_OBJECT *)__cil_tmp156;
14566#line 2797
14567                __cil_tmp157 = *mem_436;
14568#line 2797
14569                __cil_tmp158 = (unsigned int )__cil_tmp157;
14570#line 2797
14571                __cil_tmp159 = __cil_tmp158 + 28;
14572#line 2797
14573                __cil_tmp160 = (unsigned int )DisketteExtension;
14574#line 2797
14575                __cil_tmp161 = __cil_tmp160 + 28;
14576#line 2797
14577                mem_437 = (PDEVICE_OBJECT *)__cil_tmp161;
14578#line 2797
14579                __cil_tmp162 = *mem_437;
14580#line 2797
14581                __cil_tmp163 = (unsigned int )__cil_tmp162;
14582#line 2797
14583                __cil_tmp164 = __cil_tmp163 + 28;
14584#line 2797
14585                mem_438 = (ULONG *)__cil_tmp164;
14586#line 2797
14587                __cil_tmp165 = *mem_438;
14588#line 2797
14589                mem_439 = (ULONG *)__cil_tmp159;
14590#line 2797
14591                *mem_439 = __cil_tmp165 & 4294967293UL;
14592              } else {
14593
14594              }
14595              }
14596#line 2801
14597              return (-1073741805L);
14598            } else {
14599
14600            }
14601            }
14602          } else {
14603
14604          }
14605          }
14606          {
14607#line 2815
14608          __cil_tmp166 = 0 * 1U;
14609#line 2815
14610          __cil_tmp167 = 112 + __cil_tmp166;
14611#line 2815
14612          __cil_tmp168 = (unsigned int )DisketteExtension;
14613#line 2815
14614          __cil_tmp169 = __cil_tmp168 + __cil_tmp167;
14615#line 2815
14616          mem_440 = (UCHAR *)__cil_tmp169;
14617#line 2815
14618          *mem_440 = (unsigned char)16;
14619#line 2816
14620          __cil_tmp170 = 1 * 1U;
14621#line 2816
14622          __cil_tmp171 = 112 + __cil_tmp170;
14623#line 2816
14624          __cil_tmp172 = (unsigned int )DisketteExtension;
14625#line 2816
14626          __cil_tmp173 = __cil_tmp172 + __cil_tmp171;
14627#line 2816
14628          __cil_tmp174 = (unsigned int )DisketteExtension;
14629#line 2816
14630          __cil_tmp175 = __cil_tmp174 + 248;
14631#line 2816
14632          mem_441 = (UCHAR *)__cil_tmp173;
14633#line 2816
14634          mem_442 = (UCHAR *)__cil_tmp175;
14635#line 2816
14636          *mem_441 = *mem_442;
14637#line 2817
14638          __cil_tmp176 = 2 * 1U;
14639#line 2817
14640          __cil_tmp177 = 112 + __cil_tmp176;
14641#line 2817
14642          __cil_tmp178 = (unsigned int )DisketteExtension;
14643#line 2817
14644          __cil_tmp179 = __cil_tmp178 + __cil_tmp177;
14645#line 2817
14646          mem_443 = (UCHAR *)__cil_tmp179;
14647#line 2817
14648          *mem_443 = (unsigned char)1;
14649#line 2819
14650          __cil_tmp180 = 0 * 1U;
14651#line 2819
14652          __cil_tmp181 = 112 + __cil_tmp180;
14653#line 2819
14654          __cil_tmp182 = (unsigned int )DisketteExtension;
14655#line 2819
14656          __cil_tmp183 = __cil_tmp182 + __cil_tmp181;
14657#line 2819
14658          __cil_tmp184 = (UCHAR *)__cil_tmp183;
14659#line 2819
14660          __cil_tmp185 = 0 * 1U;
14661#line 2819
14662          __cil_tmp186 = 112 + __cil_tmp185;
14663#line 2819
14664          __cil_tmp187 = (unsigned int )DisketteExtension;
14665#line 2819
14666          __cil_tmp188 = __cil_tmp187 + __cil_tmp186;
14667#line 2819
14668          __cil_tmp189 = (UCHAR *)__cil_tmp188;
14669#line 2819
14670          __cil_tmp190 = (void *)0;
14671#line 2819
14672          __cil_tmp191 = (struct _MDL *)__cil_tmp190;
14673#line 2819
14674          ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp184, __cil_tmp189,
14675                                    __cil_tmp191, 0UL, 0UL);
14676          }
14677          {
14678#line 2826
14679          __cil_tmp192 = ntStatus >= 0L;
14680#line 2826
14681          if (! __cil_tmp192) {
14682            {
14683#line 2829
14684            while (1) {
14685              while_78_continue: /* CIL Label */ ;
14686              goto while_78_break;
14687            }
14688            while_78_break: /* CIL Label */ ;
14689            }
14690#line 2831
14691            return (ntStatus);
14692          } else {
14693            {
14694#line 2835
14695            __cil_tmp193 = 0 * 1U;
14696#line 2835
14697            __cil_tmp194 = 112 + __cil_tmp193;
14698#line 2835
14699            __cil_tmp195 = (unsigned int )DisketteExtension;
14700#line 2835
14701            __cil_tmp196 = __cil_tmp195 + __cil_tmp194;
14702#line 2835
14703            mem_444 = (UCHAR *)__cil_tmp196;
14704#line 2835
14705            __cil_tmp197 = *mem_444;
14706#line 2835
14707            __cil_tmp198 = (int )__cil_tmp197;
14708#line 2835
14709            __cil_tmp199 = __cil_tmp198 & 32;
14710#line 2835
14711            if (! __cil_tmp199) {
14712              goto _L;
14713            } else {
14714              {
14715#line 2835
14716              __cil_tmp200 = 1 * 1U;
14717#line 2835
14718              __cil_tmp201 = 112 + __cil_tmp200;
14719#line 2835
14720              __cil_tmp202 = (unsigned int )DisketteExtension;
14721#line 2835
14722              __cil_tmp203 = __cil_tmp202 + __cil_tmp201;
14723#line 2835
14724              mem_445 = (UCHAR *)__cil_tmp203;
14725#line 2835
14726              __cil_tmp204 = *mem_445;
14727#line 2835
14728              __cil_tmp205 = (int )__cil_tmp204;
14729#line 2835
14730              if (__cil_tmp205 != 1) {
14731                _L: 
14732                {
14733#line 2841
14734                while (1) {
14735                  while_79_continue: /* CIL Label */ ;
14736                  goto while_79_break;
14737                }
14738                while_79_break: /* CIL Label */ ;
14739                }
14740#line 2843
14741                __cil_tmp206 = (unsigned int )DisketteExtension;
14742#line 2843
14743                __cil_tmp207 = __cil_tmp206 + 104;
14744#line 2843
14745                mem_446 = (BOOLEAN *)__cil_tmp207;
14746#line 2843
14747                *mem_446 = (unsigned char)1;
14748#line 2845
14749                return (-1073741464L);
14750              } else {
14751
14752              }
14753              }
14754            }
14755            }
14756          }
14757          }
14758          {
14759#line 2853
14760          __cil_tmp208 = 0 * 1U;
14761#line 2853
14762          __cil_tmp209 = 112 + __cil_tmp208;
14763#line 2853
14764          __cil_tmp210 = (unsigned int )DisketteExtension;
14765#line 2853
14766          __cil_tmp211 = __cil_tmp210 + __cil_tmp209;
14767#line 2853
14768          mem_447 = (UCHAR *)__cil_tmp211;
14769#line 2853
14770          *mem_447 = (unsigned char)16;
14771#line 2854
14772          __cil_tmp212 = 1 * 1U;
14773#line 2854
14774          __cil_tmp213 = 112 + __cil_tmp212;
14775#line 2854
14776          __cil_tmp214 = (unsigned int )DisketteExtension;
14777#line 2854
14778          __cil_tmp215 = __cil_tmp214 + __cil_tmp213;
14779#line 2854
14780          __cil_tmp216 = (unsigned int )DisketteExtension;
14781#line 2854
14782          __cil_tmp217 = __cil_tmp216 + 248;
14783#line 2854
14784          mem_448 = (UCHAR *)__cil_tmp215;
14785#line 2854
14786          mem_449 = (UCHAR *)__cil_tmp217;
14787#line 2854
14788          *mem_448 = *mem_449;
14789#line 2855
14790          __cil_tmp218 = 2 * 1U;
14791#line 2855
14792          __cil_tmp219 = 112 + __cil_tmp218;
14793#line 2855
14794          __cil_tmp220 = (unsigned int )DisketteExtension;
14795#line 2855
14796          __cil_tmp221 = __cil_tmp220 + __cil_tmp219;
14797#line 2855
14798          mem_450 = (UCHAR *)__cil_tmp221;
14799#line 2855
14800          *mem_450 = (unsigned char)0;
14801#line 2862
14802          __cil_tmp222 = & delay;
14803#line 2862
14804          mem_451 = (ULONG *)__cil_tmp222;
14805#line 2862
14806          *mem_451 = 4294966396UL;
14807#line 2863
14808          __cil_tmp223 = 0 + 4;
14809#line 2863
14810          __cil_tmp224 = (unsigned int )(& delay) + __cil_tmp223;
14811#line 2863
14812          mem_452 = (LONG *)__cil_tmp224;
14813#line 2863
14814          *mem_452 = -1L;
14815#line 2864
14816          KeDelayExecutionThread((char)0, (unsigned char)0, & delay);
14817#line 2865
14818          __cil_tmp225 = 0 * 1U;
14819#line 2865
14820          __cil_tmp226 = 112 + __cil_tmp225;
14821#line 2865
14822          __cil_tmp227 = (unsigned int )DisketteExtension;
14823#line 2865
14824          __cil_tmp228 = __cil_tmp227 + __cil_tmp226;
14825#line 2865
14826          __cil_tmp229 = (UCHAR *)__cil_tmp228;
14827#line 2865
14828          __cil_tmp230 = 0 * 1U;
14829#line 2865
14830          __cil_tmp231 = 112 + __cil_tmp230;
14831#line 2865
14832          __cil_tmp232 = (unsigned int )DisketteExtension;
14833#line 2865
14834          __cil_tmp233 = __cil_tmp232 + __cil_tmp231;
14835#line 2865
14836          __cil_tmp234 = (UCHAR *)__cil_tmp233;
14837#line 2865
14838          __cil_tmp235 = (void *)0;
14839#line 2865
14840          __cil_tmp236 = (struct _MDL *)__cil_tmp235;
14841#line 2865
14842          ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp229, __cil_tmp234,
14843                                    __cil_tmp236, 0UL, 0UL);
14844#line 2875
14845          __cil_tmp237 = & delay;
14846#line 2875
14847          mem_453 = (ULONG *)__cil_tmp237;
14848#line 2875
14849          *mem_453 = 4294967291UL;
14850#line 2876
14851          __cil_tmp238 = 0 + 4;
14852#line 2876
14853          __cil_tmp239 = (unsigned int )(& delay) + __cil_tmp238;
14854#line 2876
14855          mem_454 = (LONG *)__cil_tmp239;
14856#line 2876
14857          *mem_454 = -1L;
14858#line 2877
14859          KeDelayExecutionThread((char)0, (unsigned char)0, & delay);
14860          }
14861          {
14862#line 2879
14863          __cil_tmp240 = ntStatus >= 0L;
14864#line 2879
14865          if (! __cil_tmp240) {
14866            {
14867#line 2882
14868            while (1) {
14869              while_80_continue: /* CIL Label */ ;
14870              goto while_80_break;
14871            }
14872            while_80_break: /* CIL Label */ ;
14873            }
14874#line 2884
14875            return (ntStatus);
14876          } else {
14877            {
14878#line 2888
14879            __cil_tmp241 = 0 * 1U;
14880#line 2888
14881            __cil_tmp242 = 112 + __cil_tmp241;
14882#line 2888
14883            __cil_tmp243 = (unsigned int )DisketteExtension;
14884#line 2888
14885            __cil_tmp244 = __cil_tmp243 + __cil_tmp242;
14886#line 2888
14887            mem_455 = (UCHAR *)__cil_tmp244;
14888#line 2888
14889            __cil_tmp245 = *mem_455;
14890#line 2888
14891            __cil_tmp246 = (int )__cil_tmp245;
14892#line 2888
14893            __cil_tmp247 = __cil_tmp246 & 32;
14894#line 2888
14895            if (! __cil_tmp247) {
14896              goto _L___0;
14897            } else {
14898              {
14899#line 2888
14900              __cil_tmp248 = 1 * 1U;
14901#line 2888
14902              __cil_tmp249 = 112 + __cil_tmp248;
14903#line 2888
14904              __cil_tmp250 = (unsigned int )DisketteExtension;
14905#line 2888
14906              __cil_tmp251 = __cil_tmp250 + __cil_tmp249;
14907#line 2888
14908              mem_456 = (UCHAR *)__cil_tmp251;
14909#line 2888
14910              __cil_tmp252 = *mem_456;
14911#line 2888
14912              __cil_tmp253 = (int )__cil_tmp252;
14913#line 2888
14914              if (__cil_tmp253 != 0) {
14915                _L___0: 
14916                {
14917#line 2894
14918                while (1) {
14919                  while_81_continue: /* CIL Label */ ;
14920                  goto while_81_break;
14921                }
14922                while_81_break: /* CIL Label */ ;
14923                }
14924#line 2896
14925                __cil_tmp254 = (unsigned int )DisketteExtension;
14926#line 2896
14927                __cil_tmp255 = __cil_tmp254 + 104;
14928#line 2896
14929                mem_457 = (BOOLEAN *)__cil_tmp255;
14930#line 2896
14931                *mem_457 = (unsigned char)1;
14932#line 2898
14933                return (-1073741464L);
14934              } else {
14935
14936              }
14937              }
14938            }
14939            }
14940          }
14941          }
14942          {
14943#line 2903
14944          __cil_tmp256 = (KUSER_SHARED_DATA * const  )4292804608U;
14945#line 2903
14946          __cil_tmp257 = (unsigned int )__cil_tmp256;
14947#line 2903
14948          __cil_tmp258 = __cil_tmp257 + 732;
14949#line 2903
14950          mem_458 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp258;
14951#line 2903
14952          __cil_tmp259 = *mem_458;
14953#line 2903
14954          __cil_tmp260 = (int )__cil_tmp259;
14955#line 2903
14956          if (__cil_tmp260 == 1) {
14957            {
14958#line 2909
14959            __cil_tmp261 = 0 * 1U;
14960#line 2909
14961            __cil_tmp262 = 112 + __cil_tmp261;
14962#line 2909
14963            __cil_tmp263 = (unsigned int )DisketteExtension;
14964#line 2909
14965            __cil_tmp264 = __cil_tmp263 + __cil_tmp262;
14966#line 2909
14967            mem_459 = (UCHAR *)__cil_tmp264;
14968#line 2909
14969            *mem_459 = (unsigned char)14;
14970#line 2910
14971            __cil_tmp265 = 1 * 1U;
14972#line 2910
14973            __cil_tmp266 = 112 + __cil_tmp265;
14974#line 2910
14975            __cil_tmp267 = (unsigned int )DisketteExtension;
14976#line 2910
14977            __cil_tmp268 = __cil_tmp267 + __cil_tmp266;
14978#line 2910
14979            __cil_tmp269 = (unsigned int )DisketteExtension;
14980#line 2910
14981            __cil_tmp270 = __cil_tmp269 + 248;
14982#line 2910
14983            mem_460 = (UCHAR *)__cil_tmp268;
14984#line 2910
14985            mem_461 = (UCHAR *)__cil_tmp270;
14986#line 2910
14987            *mem_460 = *mem_461;
14988#line 2912
14989            __cil_tmp271 = 0 * 1U;
14990#line 2912
14991            __cil_tmp272 = 112 + __cil_tmp271;
14992#line 2912
14993            __cil_tmp273 = (unsigned int )DisketteExtension;
14994#line 2912
14995            __cil_tmp274 = __cil_tmp273 + __cil_tmp272;
14996#line 2912
14997            __cil_tmp275 = (UCHAR *)__cil_tmp274;
14998#line 2912
14999            __cil_tmp276 = 0 * 1U;
15000#line 2912
15001            __cil_tmp277 = 112 + __cil_tmp276;
15002#line 2912
15003            __cil_tmp278 = (unsigned int )DisketteExtension;
15004#line 2912
15005            __cil_tmp279 = __cil_tmp278 + __cil_tmp277;
15006#line 2912
15007            __cil_tmp280 = (UCHAR *)__cil_tmp279;
15008#line 2912
15009            __cil_tmp281 = (void *)0;
15010#line 2912
15011            __cil_tmp282 = (struct _MDL *)__cil_tmp281;
15012#line 2912
15013            ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp275, __cil_tmp280,
15014                                      __cil_tmp282, 0UL, 0UL);
15015            }
15016            {
15017#line 2919
15018            __cil_tmp283 = ntStatus >= 0L;
15019#line 2919
15020            if (! __cil_tmp283) {
15021              {
15022#line 2924
15023              while (1) {
15024                while_82_continue: /* CIL Label */ ;
15025                goto while_82_break;
15026              }
15027              while_82_break: /* CIL Label */ ;
15028              }
15029#line 2926
15030              return (ntStatus);
15031            } else {
15032
15033            }
15034            }
15035            {
15036#line 2929
15037            __cil_tmp284 = 0 * 1U;
15038#line 2929
15039            __cil_tmp285 = 112 + __cil_tmp284;
15040#line 2929
15041            __cil_tmp286 = (unsigned int )DisketteExtension;
15042#line 2929
15043            __cil_tmp287 = __cil_tmp286 + __cil_tmp285;
15044#line 2929
15045            mem_462 = (UCHAR *)__cil_tmp287;
15046#line 2929
15047            __cil_tmp288 = *mem_462;
15048#line 2929
15049            __cil_tmp289 = (int )__cil_tmp288;
15050#line 2929
15051            if (__cil_tmp289 & 32) {
15052#line 2931
15053              driveStatus = (unsigned char)127;
15054            } else {
15055#line 2935
15056              driveStatus = (unsigned char)128;
15057            }
15058            }
15059          } else {
15060            {
15061#line 2939
15062            __cil_tmp290 = (unsigned int )DisketteExtension;
15063#line 2939
15064            __cil_tmp291 = __cil_tmp290 + 8;
15065#line 2939
15066            mem_463 = (PDEVICE_OBJECT *)__cil_tmp291;
15067#line 2939
15068            __cil_tmp292 = *mem_463;
15069#line 2939
15070            __cil_tmp293 = 776 << 2;
15071#line 2939
15072            __cil_tmp294 = 7 << 16;
15073#line 2939
15074            __cil_tmp295 = __cil_tmp294 | __cil_tmp293;
15075#line 2939
15076            __cil_tmp296 = __cil_tmp295 | 3;
15077#line 2939
15078            __cil_tmp297 = (unsigned long )__cil_tmp296;
15079#line 2939
15080            __cil_tmp298 = (void *)(& fdcDiskChangeParms);
15081#line 2939
15082            ntStatus = FlFdcDeviceIo(__cil_tmp292, __cil_tmp297, __cil_tmp298);
15083#line 2943
15084            __cil_tmp299 = & fdcDiskChangeParms;
15085#line 2943
15086            mem_464 = (UCHAR *)__cil_tmp299;
15087#line 2943
15088            driveStatus = *mem_464;
15089            }
15090            {
15091#line 2945
15092            __cil_tmp300 = ntStatus >= 0L;
15093#line 2945
15094            if (! __cil_tmp300) {
15095#line 2946
15096              return (ntStatus);
15097            } else {
15098
15099            }
15100            }
15101          }
15102          }
15103          {
15104#line 2950
15105          __cil_tmp301 = (int )driveStatus;
15106#line 2950
15107          if (__cil_tmp301 & 128) {
15108            {
15109#line 2960
15110            while (1) {
15111              while_83_continue: /* CIL Label */ ;
15112              goto while_83_break;
15113            }
15114            while_83_break: /* CIL Label */ ;
15115            }
15116            {
15117#line 2967
15118            __cil_tmp302 = (unsigned int )DisketteExtension;
15119#line 2967
15120            __cil_tmp303 = __cil_tmp302 + 28;
15121#line 2967
15122            mem_465 = (PDEVICE_OBJECT *)__cil_tmp303;
15123#line 2967
15124            __cil_tmp304 = *mem_465;
15125#line 2967
15126            __cil_tmp305 = (unsigned int )__cil_tmp304;
15127#line 2967
15128            __cil_tmp306 = __cil_tmp305 + 36;
15129#line 2967
15130            mem_466 = (PVPB *)__cil_tmp306;
15131#line 2967
15132            __cil_tmp307 = *mem_466;
15133#line 2967
15134            __cil_tmp308 = (unsigned int )__cil_tmp307;
15135#line 2967
15136            __cil_tmp309 = __cil_tmp308 + 4;
15137#line 2967
15138            mem_467 = (USHORT *)__cil_tmp309;
15139#line 2967
15140            __cil_tmp310 = *mem_467;
15141#line 2967
15142            __cil_tmp311 = (int )__cil_tmp310;
15143#line 2967
15144            if (__cil_tmp311 & 1) {
15145#line 2969
15146              __cil_tmp312 = (unsigned int )DisketteExtension;
15147#line 2969
15148              __cil_tmp313 = __cil_tmp312 + 28;
15149#line 2969
15150              mem_468 = (PDEVICE_OBJECT *)__cil_tmp313;
15151#line 2969
15152              __cil_tmp314 = *mem_468;
15153#line 2969
15154              __cil_tmp315 = (unsigned int )__cil_tmp314;
15155#line 2969
15156              __cil_tmp316 = __cil_tmp315 + 28;
15157#line 2969
15158              __cil_tmp317 = (unsigned int )DisketteExtension;
15159#line 2969
15160              __cil_tmp318 = __cil_tmp317 + 28;
15161#line 2969
15162              mem_469 = (PDEVICE_OBJECT *)__cil_tmp318;
15163#line 2969
15164              __cil_tmp319 = *mem_469;
15165#line 2969
15166              __cil_tmp320 = (unsigned int )__cil_tmp319;
15167#line 2969
15168              __cil_tmp321 = __cil_tmp320 + 28;
15169#line 2969
15170              mem_470 = (ULONG *)__cil_tmp321;
15171#line 2969
15172              __cil_tmp322 = *mem_470;
15173#line 2969
15174              mem_471 = (ULONG *)__cil_tmp316;
15175#line 2969
15176              *mem_471 = __cil_tmp322 & 4294967293UL;
15177            } else {
15178
15179            }
15180            }
15181#line 2973
15182            return (-1073741805L);
15183          } else {
15184
15185          }
15186          }
15187        } else {
15188
15189        }
15190        }
15191        {
15192#line 2982
15193        __cil_tmp323 = (int )IgnoreChange;
15194#line 2982
15195        if (__cil_tmp323 == 0) {
15196          {
15197#line 2984
15198          __cil_tmp324 = (unsigned int )DisketteExtension;
15199#line 2984
15200          __cil_tmp325 = __cil_tmp324 + 28;
15201#line 2984
15202          mem_472 = (PDEVICE_OBJECT *)__cil_tmp325;
15203#line 2984
15204          __cil_tmp326 = *mem_472;
15205#line 2984
15206          __cil_tmp327 = (unsigned int )__cil_tmp326;
15207#line 2984
15208          __cil_tmp328 = __cil_tmp327 + 36;
15209#line 2984
15210          mem_473 = (PVPB *)__cil_tmp328;
15211#line 2984
15212          __cil_tmp329 = *mem_473;
15213#line 2984
15214          __cil_tmp330 = (unsigned int )__cil_tmp329;
15215#line 2984
15216          __cil_tmp331 = __cil_tmp330 + 4;
15217#line 2984
15218          mem_474 = (USHORT *)__cil_tmp331;
15219#line 2984
15220          __cil_tmp332 = *mem_474;
15221#line 2984
15222          __cil_tmp333 = (int )__cil_tmp332;
15223#line 2984
15224          if (__cil_tmp333 & 1) {
15225            {
15226#line 2994
15227            while (1) {
15228              while_84_continue: /* CIL Label */ ;
15229              goto while_84_break;
15230            }
15231            while_84_break: /* CIL Label */ ;
15232            }
15233#line 2996
15234            return (-2147483626L);
15235          } else {
15236#line 3000
15237            return (-1073741435L);
15238          }
15239          }
15240        } else {
15241
15242        }
15243        }
15244      } else {
15245        goto _L___2;
15246      }
15247      }
15248    } else {
15249      _L___2: 
15250      {
15251#line 3004
15252      __cil_tmp334 = (KUSER_SHARED_DATA * const  )4292804608U;
15253#line 3004
15254      __cil_tmp335 = (unsigned int )__cil_tmp334;
15255#line 3004
15256      __cil_tmp336 = __cil_tmp335 + 732;
15257#line 3004
15258      mem_475 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp336;
15259#line 3004
15260      __cil_tmp337 = *mem_475;
15261#line 3004
15262      __cil_tmp338 = (int )__cil_tmp337;
15263#line 3004
15264      if (__cil_tmp338 == 1) {
15265        {
15266#line 3006
15267        FlHdbit(DisketteExtension);
15268        }
15269      } else {
15270
15271      }
15272      }
15273    }
15274    }
15275  }
15276  }
15277#line 3011
15278  if (SetUpMedia) {
15279    {
15280#line 3013
15281    __cil_tmp339 = (unsigned int )DisketteExtension;
15282#line 3013
15283    __cil_tmp340 = __cil_tmp339 + 184;
15284#line 3013
15285    mem_476 = (MEDIA_TYPE *)__cil_tmp340;
15286#line 3013
15287    __cil_tmp341 = *mem_476;
15288#line 3013
15289    __cil_tmp342 = (int )__cil_tmp341;
15290#line 3013
15291    if (__cil_tmp342 == -1) {
15292      {
15293#line 3015
15294      ntStatus = FlDetermineMediaType(DisketteExtension);
15295      }
15296    } else {
15297      {
15298#line 3019
15299      __cil_tmp343 = (unsigned int )DisketteExtension;
15300#line 3019
15301      __cil_tmp344 = __cil_tmp343 + 184;
15302#line 3019
15303      mem_477 = (MEDIA_TYPE *)__cil_tmp344;
15304#line 3019
15305      __cil_tmp345 = *mem_477;
15306#line 3019
15307      __cil_tmp346 = (int )__cil_tmp345;
15308#line 3019
15309      if (__cil_tmp346 == 0) {
15310        {
15311#line 3029
15312        while (1) {
15313          while_85_continue: /* CIL Label */ ;
15314          goto while_85_break;
15315        }
15316        while_85_break: /* CIL Label */ ;
15317        }
15318#line 3030
15319        return (-1073741804L);
15320      } else {
15321        {
15322#line 3034
15323        __cil_tmp347 = (unsigned int )DisketteExtension;
15324#line 3034
15325        __cil_tmp348 = __cil_tmp347 + 140;
15326#line 3034
15327        mem_478 = (DRIVE_MEDIA_TYPE *)__cil_tmp348;
15328#line 3034
15329        __cil_tmp349 = *mem_478;
15330#line 3034
15331        __cil_tmp350 = (int )__cil_tmp349;
15332#line 3034
15333        __cil_tmp351 = (unsigned int )DisketteExtension;
15334#line 3034
15335        __cil_tmp352 = __cil_tmp351 + 216;
15336#line 3034
15337        mem_479 = (DRIVE_MEDIA_TYPE *)__cil_tmp352;
15338#line 3034
15339        __cil_tmp353 = *mem_479;
15340#line 3034
15341        __cil_tmp354 = (int )__cil_tmp353;
15342#line 3034
15343        if (__cil_tmp354 != __cil_tmp350) {
15344          {
15345#line 3042
15346          ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
15347          }
15348          {
15349#line 3043
15350          __cil_tmp355 = ntStatus >= 0L;
15351#line 3043
15352          if (! __cil_tmp355) {
15353            {
15354#line 3050
15355            while (1) {
15356              while_86_continue: /* CIL Label */ ;
15357              goto while_86_break;
15358            }
15359            while_86_break: /* CIL Label */ ;
15360            }
15361          } else {
15362
15363          }
15364          }
15365        } else {
15366
15367        }
15368        }
15369      }
15370      }
15371    }
15372    }
15373  } else {
15374
15375  }
15376#line 3063
15377  if (WriteOperation) {
15378#line 3063
15379    if (ntStatus >= 0L) {
15380      {
15381#line 3065
15382      __cil_tmp356 = 0 * 1U;
15383#line 3065
15384      __cil_tmp357 = 112 + __cil_tmp356;
15385#line 3065
15386      __cil_tmp358 = (unsigned int )DisketteExtension;
15387#line 3065
15388      __cil_tmp359 = __cil_tmp358 + __cil_tmp357;
15389#line 3065
15390      mem_480 = (UCHAR *)__cil_tmp359;
15391#line 3065
15392      *mem_480 = (unsigned char)14;
15393#line 3066
15394      __cil_tmp360 = 1 * 1U;
15395#line 3066
15396      __cil_tmp361 = 112 + __cil_tmp360;
15397#line 3066
15398      __cil_tmp362 = (unsigned int )DisketteExtension;
15399#line 3066
15400      __cil_tmp363 = __cil_tmp362 + __cil_tmp361;
15401#line 3066
15402      __cil_tmp364 = (unsigned int )DisketteExtension;
15403#line 3066
15404      __cil_tmp365 = __cil_tmp364 + 248;
15405#line 3066
15406      mem_481 = (UCHAR *)__cil_tmp363;
15407#line 3066
15408      mem_482 = (UCHAR *)__cil_tmp365;
15409#line 3066
15410      *mem_481 = *mem_482;
15411#line 3068
15412      __cil_tmp366 = 0 * 1U;
15413#line 3068
15414      __cil_tmp367 = 112 + __cil_tmp366;
15415#line 3068
15416      __cil_tmp368 = (unsigned int )DisketteExtension;
15417#line 3068
15418      __cil_tmp369 = __cil_tmp368 + __cil_tmp367;
15419#line 3068
15420      __cil_tmp370 = (UCHAR *)__cil_tmp369;
15421#line 3068
15422      __cil_tmp371 = 0 * 1U;
15423#line 3068
15424      __cil_tmp372 = 112 + __cil_tmp371;
15425#line 3068
15426      __cil_tmp373 = (unsigned int )DisketteExtension;
15427#line 3068
15428      __cil_tmp374 = __cil_tmp373 + __cil_tmp372;
15429#line 3068
15430      __cil_tmp375 = (UCHAR *)__cil_tmp374;
15431#line 3068
15432      __cil_tmp376 = (void *)0;
15433#line 3068
15434      __cil_tmp377 = (struct _MDL *)__cil_tmp376;
15435#line 3068
15436      ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp370, __cil_tmp375, __cil_tmp377,
15437                                0UL, 0UL);
15438      }
15439      {
15440#line 3075
15441      __cil_tmp378 = ntStatus >= 0L;
15442#line 3075
15443      if (! __cil_tmp378) {
15444        {
15445#line 3080
15446        while (1) {
15447          while_87_continue: /* CIL Label */ ;
15448          goto while_87_break;
15449        }
15450        while_87_break: /* CIL Label */ ;
15451        }
15452#line 3082
15453        return (ntStatus);
15454      } else {
15455
15456      }
15457      }
15458      {
15459#line 3085
15460      __cil_tmp379 = (KUSER_SHARED_DATA * const  )4292804608U;
15461#line 3085
15462      __cil_tmp380 = (unsigned int )__cil_tmp379;
15463#line 3085
15464      __cil_tmp381 = __cil_tmp380 + 732;
15465#line 3085
15466      mem_483 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp381;
15467#line 3085
15468      __cil_tmp382 = *mem_483;
15469#line 3085
15470      __cil_tmp383 = (int )__cil_tmp382;
15471#line 3085
15472      if (__cil_tmp383 == 1) {
15473        {
15474#line 3089
15475        __cil_tmp384 = 0 * 1U;
15476#line 3089
15477        __cil_tmp385 = 112 + __cil_tmp384;
15478#line 3089
15479        __cil_tmp386 = (unsigned int )DisketteExtension;
15480#line 3089
15481        __cil_tmp387 = __cil_tmp386 + __cil_tmp385;
15482#line 3089
15483        mem_484 = (UCHAR *)__cil_tmp387;
15484#line 3089
15485        __cil_tmp388 = *mem_484;
15486#line 3089
15487        __cil_tmp389 = (int )__cil_tmp388;
15488#line 3089
15489        __cil_tmp390 = __cil_tmp389 & 32;
15490#line 3089
15491        if (! __cil_tmp390) {
15492          {
15493#line 3094
15494          while (1) {
15495            while_88_continue: /* CIL Label */ ;
15496            goto while_88_break;
15497          }
15498          while_88_break: /* CIL Label */ ;
15499          }
15500#line 3095
15501          return (-1073741805L);
15502        } else {
15503
15504        }
15505        }
15506      } else {
15507
15508      }
15509      }
15510      {
15511#line 3099
15512      __cil_tmp391 = 0 * 1U;
15513#line 3099
15514      __cil_tmp392 = 112 + __cil_tmp391;
15515#line 3099
15516      __cil_tmp393 = (unsigned int )DisketteExtension;
15517#line 3099
15518      __cil_tmp394 = __cil_tmp393 + __cil_tmp392;
15519#line 3099
15520      mem_485 = (UCHAR *)__cil_tmp394;
15521#line 3099
15522      __cil_tmp395 = *mem_485;
15523#line 3099
15524      __cil_tmp396 = (int )__cil_tmp395;
15525#line 3099
15526      if (__cil_tmp396 & 64) {
15527        {
15528#line 3104
15529        while (1) {
15530          while_89_continue: /* CIL Label */ ;
15531          goto while_89_break;
15532        }
15533        while_89_break: /* CIL Label */ ;
15534        }
15535#line 3105
15536        return (-1073741662L);
15537      } else {
15538
15539      }
15540      }
15541    } else {
15542
15543    }
15544  } else {
15545
15546  }
15547#line 3109
15548  return (ntStatus);
15549}
15550}
15551#line 3112 "floppy.c"
15552NTSTATUS FlDatarateSpecifyConfigure(PDISKETTE_EXTENSION DisketteExtension ) 
15553{ NTSTATUS ntStatus ;
15554  unsigned int __cil_tmp3 ;
15555  unsigned int __cil_tmp4 ;
15556  unsigned int __cil_tmp5 ;
15557  unsigned int __cil_tmp6 ;
15558  unsigned int __cil_tmp7 ;
15559  unsigned int __cil_tmp8 ;
15560  unsigned int __cil_tmp9 ;
15561  unsigned int __cil_tmp10 ;
15562  unsigned int __cil_tmp11 ;
15563  unsigned int __cil_tmp12 ;
15564  unsigned int __cil_tmp13 ;
15565  unsigned int __cil_tmp14 ;
15566  unsigned int __cil_tmp15 ;
15567  unsigned int __cil_tmp16 ;
15568  unsigned int __cil_tmp17 ;
15569  unsigned int __cil_tmp18 ;
15570  unsigned int __cil_tmp19 ;
15571  unsigned int __cil_tmp20 ;
15572  unsigned int __cil_tmp21 ;
15573  unsigned int __cil_tmp22 ;
15574  unsigned int __cil_tmp23 ;
15575  unsigned int __cil_tmp24 ;
15576  UCHAR __cil_tmp25 ;
15577  int __cil_tmp26 ;
15578  int __cil_tmp27 ;
15579  unsigned int __cil_tmp28 ;
15580  unsigned int __cil_tmp29 ;
15581  unsigned int __cil_tmp30 ;
15582  UCHAR __cil_tmp31 ;
15583  unsigned int __cil_tmp32 ;
15584  unsigned int __cil_tmp33 ;
15585  unsigned int __cil_tmp34 ;
15586  unsigned int __cil_tmp35 ;
15587  unsigned int __cil_tmp36 ;
15588  unsigned int __cil_tmp37 ;
15589  unsigned int __cil_tmp38 ;
15590  unsigned int __cil_tmp39 ;
15591  UCHAR __cil_tmp40 ;
15592  int __cil_tmp41 ;
15593  int __cil_tmp42 ;
15594  unsigned int __cil_tmp43 ;
15595  unsigned int __cil_tmp44 ;
15596  unsigned int __cil_tmp45 ;
15597  unsigned int __cil_tmp46 ;
15598  unsigned int __cil_tmp47 ;
15599  unsigned int __cil_tmp48 ;
15600  unsigned int __cil_tmp49 ;
15601  unsigned int __cil_tmp50 ;
15602  UCHAR *__cil_tmp51 ;
15603  unsigned int __cil_tmp52 ;
15604  unsigned int __cil_tmp53 ;
15605  unsigned int __cil_tmp54 ;
15606  unsigned int __cil_tmp55 ;
15607  UCHAR *__cil_tmp56 ;
15608  void *__cil_tmp57 ;
15609  struct _MDL *__cil_tmp58 ;
15610  unsigned int __cil_tmp59 ;
15611  unsigned int __cil_tmp60 ;
15612  unsigned int __cil_tmp61 ;
15613  unsigned int __cil_tmp62 ;
15614  unsigned int __cil_tmp63 ;
15615  unsigned int __cil_tmp64 ;
15616  unsigned int __cil_tmp65 ;
15617  unsigned int __cil_tmp66 ;
15618  unsigned int __cil_tmp67 ;
15619  unsigned int __cil_tmp68 ;
15620  unsigned int __cil_tmp69 ;
15621  unsigned int __cil_tmp70 ;
15622  unsigned int __cil_tmp71 ;
15623  unsigned int __cil_tmp72 ;
15624  unsigned int __cil_tmp73 ;
15625  unsigned int __cil_tmp74 ;
15626  unsigned int __cil_tmp75 ;
15627  unsigned int __cil_tmp76 ;
15628  unsigned int __cil_tmp77 ;
15629  unsigned int __cil_tmp78 ;
15630  unsigned int __cil_tmp79 ;
15631  unsigned int __cil_tmp80 ;
15632  unsigned int __cil_tmp81 ;
15633  unsigned int __cil_tmp82 ;
15634  UCHAR *__cil_tmp83 ;
15635  unsigned int __cil_tmp84 ;
15636  unsigned int __cil_tmp85 ;
15637  unsigned int __cil_tmp86 ;
15638  unsigned int __cil_tmp87 ;
15639  UCHAR *__cil_tmp88 ;
15640  void *__cil_tmp89 ;
15641  struct _MDL *__cil_tmp90 ;
15642  unsigned int __cil_tmp91 ;
15643  unsigned int __cil_tmp92 ;
15644  PDEVICE_OBJECT __cil_tmp93 ;
15645  int __cil_tmp94 ;
15646  int __cil_tmp95 ;
15647  int __cil_tmp96 ;
15648  int __cil_tmp97 ;
15649  unsigned long __cil_tmp98 ;
15650  unsigned int __cil_tmp99 ;
15651  unsigned int __cil_tmp100 ;
15652  unsigned int __cil_tmp101 ;
15653  UCHAR *__cil_tmp102 ;
15654  void *__cil_tmp103 ;
15655  unsigned int __cil_tmp104 ;
15656  unsigned int __cil_tmp105 ;
15657  unsigned int __cil_tmp106 ;
15658  unsigned int __cil_tmp107 ;
15659  unsigned int __cil_tmp108 ;
15660  unsigned int __cil_tmp109 ;
15661  BOOLEAN *mem_110 ;
15662  UCHAR *mem_111 ;
15663  UCHAR *mem_112 ;
15664  UCHAR *mem_113 ;
15665  UCHAR *mem_114 ;
15666  UCHAR *mem_115 ;
15667  UCHAR *mem_116 ;
15668  UCHAR *mem_117 ;
15669  UCHAR *mem_118 ;
15670  UCHAR *mem_119 ;
15671  BOOLEAN *mem_120 ;
15672  UCHAR *mem_121 ;
15673  UCHAR *mem_122 ;
15674  UCHAR *mem_123 ;
15675  UCHAR *mem_124 ;
15676  UCHAR *mem_125 ;
15677  PDEVICE_OBJECT *mem_126 ;
15678  DRIVE_MEDIA_TYPE *mem_127 ;
15679  DRIVE_MEDIA_TYPE *mem_128 ;
15680  DRIVE_MEDIA_TYPE *mem_129 ;
15681
15682  {
15683#line 3142
15684  ntStatus = 0L;
15685  {
15686#line 3148
15687  __cil_tmp3 = (unsigned int )DisketteExtension;
15688#line 3148
15689  __cil_tmp4 = __cil_tmp3 + 365;
15690  {
15691#line 3148
15692  mem_110 = (BOOLEAN *)__cil_tmp4;
15693#line 3148
15694  if (*mem_110) {
15695#line 3150
15696    __cil_tmp5 = 0 * 1U;
15697#line 3150
15698    __cil_tmp6 = 112 + __cil_tmp5;
15699#line 3150
15700    __cil_tmp7 = (unsigned int )DisketteExtension;
15701#line 3150
15702    __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
15703#line 3150
15704    mem_111 = (UCHAR *)__cil_tmp8;
15705#line 3150
15706    *mem_111 = (unsigned char)17;
15707#line 3151
15708    __cil_tmp9 = 1 * 1U;
15709#line 3151
15710    __cil_tmp10 = 112 + __cil_tmp9;
15711#line 3151
15712    __cil_tmp11 = (unsigned int )DisketteExtension;
15713#line 3151
15714    __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
15715#line 3151
15716    mem_112 = (UCHAR *)__cil_tmp12;
15717#line 3151
15718    *mem_112 = (unsigned char)0;
15719#line 3153
15720    __cil_tmp13 = 2 * 1U;
15721#line 3153
15722    __cil_tmp14 = 112 + __cil_tmp13;
15723#line 3153
15724    __cil_tmp15 = (unsigned int )DisketteExtension;
15725#line 3153
15726    __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
15727#line 3153
15728    mem_113 = (UCHAR *)__cil_tmp16;
15729#line 3153
15730    *mem_113 = (unsigned char)15;
15731#line 3154
15732    __cil_tmp17 = 2 * 1U;
15733#line 3154
15734    __cil_tmp18 = 112 + __cil_tmp17;
15735#line 3154
15736    __cil_tmp19 = (unsigned int )DisketteExtension;
15737#line 3154
15738    __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
15739#line 3154
15740    __cil_tmp21 = 2 * 1U;
15741#line 3154
15742    __cil_tmp22 = 112 + __cil_tmp21;
15743#line 3154
15744    __cil_tmp23 = (unsigned int )DisketteExtension;
15745#line 3154
15746    __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
15747#line 3154
15748    mem_114 = (UCHAR *)__cil_tmp24;
15749#line 3154
15750    __cil_tmp25 = *mem_114;
15751#line 3154
15752    __cil_tmp26 = (int )__cil_tmp25;
15753#line 3154
15754    __cil_tmp27 = __cil_tmp26 + 16;
15755#line 3154
15756    mem_115 = (UCHAR *)__cil_tmp20;
15757#line 3154
15758    *mem_115 = (unsigned char )__cil_tmp27;
15759    {
15760#line 3156
15761    __cil_tmp28 = 308 + 49;
15762#line 3156
15763    __cil_tmp29 = (unsigned int )DisketteExtension;
15764#line 3156
15765    __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
15766#line 3156
15767    mem_116 = (UCHAR *)__cil_tmp30;
15768#line 3156
15769    __cil_tmp31 = *mem_116;
15770#line 3156
15771    if (! __cil_tmp31) {
15772#line 3157
15773      __cil_tmp32 = 2 * 1U;
15774#line 3157
15775      __cil_tmp33 = 112 + __cil_tmp32;
15776#line 3157
15777      __cil_tmp34 = (unsigned int )DisketteExtension;
15778#line 3157
15779      __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
15780#line 3157
15781      __cil_tmp36 = 2 * 1U;
15782#line 3157
15783      __cil_tmp37 = 112 + __cil_tmp36;
15784#line 3157
15785      __cil_tmp38 = (unsigned int )DisketteExtension;
15786#line 3157
15787      __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
15788#line 3157
15789      mem_117 = (UCHAR *)__cil_tmp39;
15790#line 3157
15791      __cil_tmp40 = *mem_117;
15792#line 3157
15793      __cil_tmp41 = (int )__cil_tmp40;
15794#line 3157
15795      __cil_tmp42 = __cil_tmp41 + 64;
15796#line 3157
15797      mem_118 = (UCHAR *)__cil_tmp35;
15798#line 3157
15799      *mem_118 = (unsigned char )__cil_tmp42;
15800    } else {
15801
15802    }
15803    }
15804    {
15805#line 3160
15806    __cil_tmp43 = 3 * 1U;
15807#line 3160
15808    __cil_tmp44 = 112 + __cil_tmp43;
15809#line 3160
15810    __cil_tmp45 = (unsigned int )DisketteExtension;
15811#line 3160
15812    __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
15813#line 3160
15814    mem_119 = (UCHAR *)__cil_tmp46;
15815#line 3160
15816    *mem_119 = (unsigned char)0;
15817#line 3162
15818    __cil_tmp47 = 0 * 1U;
15819#line 3162
15820    __cil_tmp48 = 112 + __cil_tmp47;
15821#line 3162
15822    __cil_tmp49 = (unsigned int )DisketteExtension;
15823#line 3162
15824    __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
15825#line 3162
15826    __cil_tmp51 = (UCHAR *)__cil_tmp50;
15827#line 3162
15828    __cil_tmp52 = 0 * 1U;
15829#line 3162
15830    __cil_tmp53 = 112 + __cil_tmp52;
15831#line 3162
15832    __cil_tmp54 = (unsigned int )DisketteExtension;
15833#line 3162
15834    __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
15835#line 3162
15836    __cil_tmp56 = (UCHAR *)__cil_tmp55;
15837#line 3162
15838    __cil_tmp57 = (void *)0;
15839#line 3162
15840    __cil_tmp58 = (struct _MDL *)__cil_tmp57;
15841#line 3162
15842    ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp51, __cil_tmp56, __cil_tmp58,
15843                              0UL, 0UL);
15844    }
15845#line 3169
15846    if (ntStatus == -1073741661L) {
15847#line 3171
15848      __cil_tmp59 = (unsigned int )DisketteExtension;
15849#line 3171
15850      __cil_tmp60 = __cil_tmp59 + 365;
15851#line 3171
15852      mem_120 = (BOOLEAN *)__cil_tmp60;
15853#line 3171
15854      *mem_120 = (unsigned char)0;
15855#line 3172
15856      ntStatus = 0L;
15857    } else {
15858
15859    }
15860  } else {
15861
15862  }
15863  }
15864  }
15865#line 3181
15866  if (ntStatus >= 0L) {
15867    goto _L;
15868  } else {
15869#line 3181
15870    if (ntStatus == -1073741661L) {
15871      _L: 
15872      {
15873#line 3184
15874      __cil_tmp61 = 0 * 1U;
15875#line 3184
15876      __cil_tmp62 = 112 + __cil_tmp61;
15877#line 3184
15878      __cil_tmp63 = (unsigned int )DisketteExtension;
15879#line 3184
15880      __cil_tmp64 = __cil_tmp63 + __cil_tmp62;
15881#line 3184
15882      mem_121 = (UCHAR *)__cil_tmp64;
15883#line 3184
15884      *mem_121 = (unsigned char)13;
15885#line 3185
15886      __cil_tmp65 = 1 * 1U;
15887#line 3185
15888      __cil_tmp66 = 112 + __cil_tmp65;
15889#line 3185
15890      __cil_tmp67 = (unsigned int )DisketteExtension;
15891#line 3185
15892      __cil_tmp68 = __cil_tmp67 + __cil_tmp66;
15893#line 3185
15894      __cil_tmp69 = 308 + 32;
15895#line 3185
15896      __cil_tmp70 = (unsigned int )DisketteExtension;
15897#line 3185
15898      __cil_tmp71 = __cil_tmp70 + __cil_tmp69;
15899#line 3185
15900      mem_122 = (UCHAR *)__cil_tmp68;
15901#line 3185
15902      mem_123 = (UCHAR *)__cil_tmp71;
15903#line 3185
15904      *mem_122 = *mem_123;
15905#line 3188
15906      __cil_tmp72 = 2 * 1U;
15907#line 3188
15908      __cil_tmp73 = 112 + __cil_tmp72;
15909#line 3188
15910      __cil_tmp74 = (unsigned int )DisketteExtension;
15911#line 3188
15912      __cil_tmp75 = __cil_tmp74 + __cil_tmp73;
15913#line 3188
15914      __cil_tmp76 = 308 + 33;
15915#line 3188
15916      __cil_tmp77 = (unsigned int )DisketteExtension;
15917#line 3188
15918      __cil_tmp78 = __cil_tmp77 + __cil_tmp76;
15919#line 3188
15920      mem_124 = (UCHAR *)__cil_tmp75;
15921#line 3188
15922      mem_125 = (UCHAR *)__cil_tmp78;
15923#line 3188
15924      *mem_124 = *mem_125;
15925#line 3191
15926      __cil_tmp79 = 0 * 1U;
15927#line 3191
15928      __cil_tmp80 = 112 + __cil_tmp79;
15929#line 3191
15930      __cil_tmp81 = (unsigned int )DisketteExtension;
15931#line 3191
15932      __cil_tmp82 = __cil_tmp81 + __cil_tmp80;
15933#line 3191
15934      __cil_tmp83 = (UCHAR *)__cil_tmp82;
15935#line 3191
15936      __cil_tmp84 = 0 * 1U;
15937#line 3191
15938      __cil_tmp85 = 112 + __cil_tmp84;
15939#line 3191
15940      __cil_tmp86 = (unsigned int )DisketteExtension;
15941#line 3191
15942      __cil_tmp87 = __cil_tmp86 + __cil_tmp85;
15943#line 3191
15944      __cil_tmp88 = (UCHAR *)__cil_tmp87;
15945#line 3191
15946      __cil_tmp89 = (void *)0;
15947#line 3191
15948      __cil_tmp90 = (struct _MDL *)__cil_tmp89;
15949#line 3191
15950      ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp83, __cil_tmp88, __cil_tmp90,
15951                                0UL, 0UL);
15952      }
15953#line 3198
15954      if (ntStatus >= 0L) {
15955        {
15956#line 3204
15957        __cil_tmp91 = (unsigned int )DisketteExtension;
15958#line 3204
15959        __cil_tmp92 = __cil_tmp91 + 8;
15960#line 3204
15961        mem_126 = (PDEVICE_OBJECT *)__cil_tmp92;
15962#line 3204
15963        __cil_tmp93 = *mem_126;
15964#line 3204
15965        __cil_tmp94 = 777 << 2;
15966#line 3204
15967        __cil_tmp95 = 7 << 16;
15968#line 3204
15969        __cil_tmp96 = __cil_tmp95 | __cil_tmp94;
15970#line 3204
15971        __cil_tmp97 = __cil_tmp96 | 3;
15972#line 3204
15973        __cil_tmp98 = (unsigned long )__cil_tmp97;
15974#line 3204
15975        __cil_tmp99 = 308 + 50;
15976#line 3204
15977        __cil_tmp100 = (unsigned int )DisketteExtension;
15978#line 3204
15979        __cil_tmp101 = __cil_tmp100 + __cil_tmp99;
15980#line 3204
15981        __cil_tmp102 = (UCHAR *)__cil_tmp101;
15982#line 3204
15983        __cil_tmp103 = (void *)__cil_tmp102;
15984#line 3204
15985        ntStatus = FlFdcDeviceIo(__cil_tmp93, __cil_tmp98, __cil_tmp103);
15986        }
15987#line 3214
15988        if (ntStatus >= 0L) {
15989          {
15990#line 3216
15991          ntStatus = FlRecalibrateDrive(DisketteExtension);
15992          }
15993        } else {
15994
15995        }
15996      } else {
15997        {
15998#line 3222
15999        while (1) {
16000          while_90_continue: /* CIL Label */ ;
16001          goto while_90_break;
16002        }
16003        while_90_break: /* CIL Label */ ;
16004        }
16005      }
16006    } else {
16007      {
16008#line 3228
16009      while (1) {
16010        while_91_continue: /* CIL Label */ ;
16011        goto while_91_break;
16012      }
16013      while_91_break: /* CIL Label */ ;
16014      }
16015    }
16016  }
16017#line 3231
16018  if (ntStatus >= 0L) {
16019#line 3233
16020    __cil_tmp104 = (unsigned int )DisketteExtension;
16021#line 3233
16022    __cil_tmp105 = __cil_tmp104 + 140;
16023#line 3233
16024    __cil_tmp106 = (unsigned int )DisketteExtension;
16025#line 3233
16026    __cil_tmp107 = __cil_tmp106 + 216;
16027#line 3233
16028    mem_127 = (DRIVE_MEDIA_TYPE *)__cil_tmp105;
16029#line 3233
16030    mem_128 = (DRIVE_MEDIA_TYPE *)__cil_tmp107;
16031#line 3233
16032    *mem_127 = *mem_128;
16033  } else {
16034#line 3238
16035    __cil_tmp108 = (unsigned int )DisketteExtension;
16036#line 3238
16037    __cil_tmp109 = __cil_tmp108 + 140;
16038#line 3238
16039    mem_129 = (DRIVE_MEDIA_TYPE *)__cil_tmp109;
16040#line 3238
16041    *mem_129 = (enum _DRIVE_MEDIA_TYPE )0;
16042    {
16043#line 3242
16044    while (1) {
16045      while_92_continue: /* CIL Label */ ;
16046      goto while_92_break;
16047    }
16048    while_92_break: /* CIL Label */ ;
16049    }
16050  }
16051#line 3245
16052  return (ntStatus);
16053}
16054}
16055#line 3248 "floppy.c"
16056NTSTATUS FlRecalibrateDrive(PDISKETTE_EXTENSION DisketteExtension ) 
16057{ NTSTATUS ntStatus ;
16058  UCHAR recalibrateCount ;
16059  UCHAR fifoBuffer[2] ;
16060  unsigned int __cil_tmp5 ;
16061  unsigned int __cil_tmp6 ;
16062  unsigned int __cil_tmp7 ;
16063  unsigned int __cil_tmp8 ;
16064  unsigned int __cil_tmp9 ;
16065  unsigned int __cil_tmp10 ;
16066  unsigned int __cil_tmp11 ;
16067  unsigned int __cil_tmp12 ;
16068  unsigned int __cil_tmp13 ;
16069  unsigned int __cil_tmp14 ;
16070  unsigned int __cil_tmp15 ;
16071  unsigned int __cil_tmp16 ;
16072  unsigned int __cil_tmp17 ;
16073  unsigned int __cil_tmp18 ;
16074  UCHAR *__cil_tmp19 ;
16075  unsigned int __cil_tmp20 ;
16076  unsigned int __cil_tmp21 ;
16077  unsigned int __cil_tmp22 ;
16078  unsigned int __cil_tmp23 ;
16079  UCHAR *__cil_tmp24 ;
16080  void *__cil_tmp25 ;
16081  struct _MDL *__cil_tmp26 ;
16082  int __cil_tmp27 ;
16083  KUSER_SHARED_DATA *__cil_tmp28 ;
16084  unsigned int __cil_tmp29 ;
16085  unsigned int __cil_tmp30 ;
16086  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp31 ;
16087  int __cil_tmp32 ;
16088  unsigned int __cil_tmp33 ;
16089  unsigned int __cil_tmp34 ;
16090  unsigned int __cil_tmp35 ;
16091  unsigned int __cil_tmp36 ;
16092  unsigned int __cil_tmp37 ;
16093  unsigned int __cil_tmp38 ;
16094  unsigned int __cil_tmp39 ;
16095  unsigned int __cil_tmp40 ;
16096  unsigned int __cil_tmp41 ;
16097  unsigned int __cil_tmp42 ;
16098  unsigned int __cil_tmp43 ;
16099  unsigned int __cil_tmp44 ;
16100  unsigned int __cil_tmp45 ;
16101  unsigned int __cil_tmp46 ;
16102  unsigned int __cil_tmp47 ;
16103  unsigned int __cil_tmp48 ;
16104  unsigned int __cil_tmp49 ;
16105  unsigned int __cil_tmp50 ;
16106  unsigned int __cil_tmp51 ;
16107  unsigned int __cil_tmp52 ;
16108  unsigned int __cil_tmp53 ;
16109  unsigned int __cil_tmp54 ;
16110  unsigned int __cil_tmp55 ;
16111  unsigned int __cil_tmp56 ;
16112  unsigned int __cil_tmp57 ;
16113  unsigned int __cil_tmp58 ;
16114  UCHAR *__cil_tmp59 ;
16115  unsigned int __cil_tmp60 ;
16116  unsigned int __cil_tmp61 ;
16117  unsigned int __cil_tmp62 ;
16118  unsigned int __cil_tmp63 ;
16119  UCHAR *__cil_tmp64 ;
16120  void *__cil_tmp65 ;
16121  struct _MDL *__cil_tmp66 ;
16122  int __cil_tmp67 ;
16123  unsigned int __cil_tmp68 ;
16124  unsigned int __cil_tmp69 ;
16125  unsigned int __cil_tmp70 ;
16126  unsigned int __cil_tmp71 ;
16127  unsigned int __cil_tmp72 ;
16128  unsigned int __cil_tmp73 ;
16129  unsigned int __cil_tmp74 ;
16130  unsigned int __cil_tmp75 ;
16131  unsigned int __cil_tmp76 ;
16132  unsigned int __cil_tmp77 ;
16133  unsigned int __cil_tmp78 ;
16134  unsigned int __cil_tmp79 ;
16135  unsigned int __cil_tmp80 ;
16136  unsigned int __cil_tmp81 ;
16137  unsigned int __cil_tmp82 ;
16138  unsigned int __cil_tmp83 ;
16139  UCHAR __cil_tmp84 ;
16140  int __cil_tmp85 ;
16141  int __cil_tmp86 ;
16142  unsigned int __cil_tmp87 ;
16143  unsigned int __cil_tmp88 ;
16144  unsigned int __cil_tmp89 ;
16145  unsigned int __cil_tmp90 ;
16146  UCHAR __cil_tmp91 ;
16147  int __cil_tmp92 ;
16148  unsigned int __cil_tmp93 ;
16149  unsigned int __cil_tmp94 ;
16150  int __cil_tmp95 ;
16151  int __cil_tmp96 ;
16152  int __cil_tmp97 ;
16153  int __cil_tmp98 ;
16154  int __cil_tmp99 ;
16155  UCHAR *mem_100 ;
16156  UCHAR *mem_101 ;
16157  UCHAR *mem_102 ;
16158  ALTERNATIVE_ARCHITECTURE_TYPE *mem_103 ;
16159  UCHAR *mem_104 ;
16160  UCHAR *mem_105 ;
16161  UCHAR *mem_106 ;
16162  UCHAR *mem_107 ;
16163  UCHAR *mem_108 ;
16164  UCHAR *mem_109 ;
16165  UCHAR *mem_110 ;
16166  UCHAR *mem_111 ;
16167  UCHAR *mem_112 ;
16168  UCHAR *mem_113 ;
16169  UCHAR *mem_114 ;
16170  UCHAR *mem_115 ;
16171  UCHAR *mem_116 ;
16172  BOOLEAN *mem_117 ;
16173
16174  {
16175#line 3278
16176  recalibrateCount = (unsigned char)0;
16177  {
16178#line 3280
16179  while (1) {
16180    while_93_continue: /* CIL Label */ ;
16181    {
16182#line 3286
16183    __cil_tmp5 = 0 * 1U;
16184#line 3286
16185    __cil_tmp6 = 112 + __cil_tmp5;
16186#line 3286
16187    __cil_tmp7 = (unsigned int )DisketteExtension;
16188#line 3286
16189    __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
16190#line 3286
16191    mem_100 = (UCHAR *)__cil_tmp8;
16192#line 3286
16193    *mem_100 = (unsigned char)11;
16194#line 3287
16195    __cil_tmp9 = 1 * 1U;
16196#line 3287
16197    __cil_tmp10 = 112 + __cil_tmp9;
16198#line 3287
16199    __cil_tmp11 = (unsigned int )DisketteExtension;
16200#line 3287
16201    __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
16202#line 3287
16203    __cil_tmp13 = (unsigned int )DisketteExtension;
16204#line 3287
16205    __cil_tmp14 = __cil_tmp13 + 248;
16206#line 3287
16207    mem_101 = (UCHAR *)__cil_tmp12;
16208#line 3287
16209    mem_102 = (UCHAR *)__cil_tmp14;
16210#line 3287
16211    *mem_101 = *mem_102;
16212#line 3289
16213    __cil_tmp15 = 0 * 1U;
16214#line 3289
16215    __cil_tmp16 = 112 + __cil_tmp15;
16216#line 3289
16217    __cil_tmp17 = (unsigned int )DisketteExtension;
16218#line 3289
16219    __cil_tmp18 = __cil_tmp17 + __cil_tmp16;
16220#line 3289
16221    __cil_tmp19 = (UCHAR *)__cil_tmp18;
16222#line 3289
16223    __cil_tmp20 = 0 * 1U;
16224#line 3289
16225    __cil_tmp21 = 112 + __cil_tmp20;
16226#line 3289
16227    __cil_tmp22 = (unsigned int )DisketteExtension;
16228#line 3289
16229    __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
16230#line 3289
16231    __cil_tmp24 = (UCHAR *)__cil_tmp23;
16232#line 3289
16233    __cil_tmp25 = (void *)0;
16234#line 3289
16235    __cil_tmp26 = (struct _MDL *)__cil_tmp25;
16236#line 3289
16237    ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp19, __cil_tmp24, __cil_tmp26,
16238                              0UL, 0UL);
16239    }
16240    {
16241#line 3296
16242    __cil_tmp27 = ntStatus >= 0L;
16243#line 3296
16244    if (! __cil_tmp27) {
16245      {
16246#line 3301
16247      while (1) {
16248        while_94_continue: /* CIL Label */ ;
16249        goto while_94_break;
16250      }
16251      while_94_break: /* CIL Label */ ;
16252      }
16253    } else {
16254
16255    }
16256    }
16257#line 3305
16258    if (ntStatus >= 0L) {
16259      {
16260#line 3307
16261      __cil_tmp28 = (KUSER_SHARED_DATA * const  )4292804608U;
16262#line 3307
16263      __cil_tmp29 = (unsigned int )__cil_tmp28;
16264#line 3307
16265      __cil_tmp30 = __cil_tmp29 + 732;
16266#line 3307
16267      mem_103 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp30;
16268#line 3307
16269      __cil_tmp31 = *mem_103;
16270#line 3307
16271      __cil_tmp32 = (int )__cil_tmp31;
16272#line 3307
16273      if (__cil_tmp32 == 1) {
16274        {
16275#line 3313
16276        __cil_tmp33 = 0 * 1U;
16277#line 3313
16278        __cil_tmp34 = (unsigned int )(fifoBuffer) + __cil_tmp33;
16279#line 3313
16280        __cil_tmp35 = 0 * 1U;
16281#line 3313
16282        __cil_tmp36 = 112 + __cil_tmp35;
16283#line 3313
16284        __cil_tmp37 = (unsigned int )DisketteExtension;
16285#line 3313
16286        __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
16287#line 3313
16288        mem_104 = (UCHAR *)__cil_tmp34;
16289#line 3313
16290        mem_105 = (UCHAR *)__cil_tmp38;
16291#line 3313
16292        *mem_104 = *mem_105;
16293#line 3314
16294        __cil_tmp39 = 1 * 1U;
16295#line 3314
16296        __cil_tmp40 = (unsigned int )(fifoBuffer) + __cil_tmp39;
16297#line 3314
16298        __cil_tmp41 = 1 * 1U;
16299#line 3314
16300        __cil_tmp42 = 112 + __cil_tmp41;
16301#line 3314
16302        __cil_tmp43 = (unsigned int )DisketteExtension;
16303#line 3314
16304        __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
16305#line 3314
16306        mem_106 = (UCHAR *)__cil_tmp40;
16307#line 3314
16308        mem_107 = (UCHAR *)__cil_tmp44;
16309#line 3314
16310        *mem_106 = *mem_107;
16311#line 3319
16312        __cil_tmp45 = 0 * 1U;
16313#line 3319
16314        __cil_tmp46 = 112 + __cil_tmp45;
16315#line 3319
16316        __cil_tmp47 = (unsigned int )DisketteExtension;
16317#line 3319
16318        __cil_tmp48 = __cil_tmp47 + __cil_tmp46;
16319#line 3319
16320        mem_108 = (UCHAR *)__cil_tmp48;
16321#line 3319
16322        *mem_108 = (unsigned char)14;
16323#line 3320
16324        __cil_tmp49 = 1 * 1U;
16325#line 3320
16326        __cil_tmp50 = 112 + __cil_tmp49;
16327#line 3320
16328        __cil_tmp51 = (unsigned int )DisketteExtension;
16329#line 3320
16330        __cil_tmp52 = __cil_tmp51 + __cil_tmp50;
16331#line 3320
16332        __cil_tmp53 = (unsigned int )DisketteExtension;
16333#line 3320
16334        __cil_tmp54 = __cil_tmp53 + 248;
16335#line 3320
16336        mem_109 = (UCHAR *)__cil_tmp52;
16337#line 3320
16338        mem_110 = (UCHAR *)__cil_tmp54;
16339#line 3320
16340        *mem_109 = *mem_110;
16341#line 3322
16342        __cil_tmp55 = 0 * 1U;
16343#line 3322
16344        __cil_tmp56 = 112 + __cil_tmp55;
16345#line 3322
16346        __cil_tmp57 = (unsigned int )DisketteExtension;
16347#line 3322
16348        __cil_tmp58 = __cil_tmp57 + __cil_tmp56;
16349#line 3322
16350        __cil_tmp59 = (UCHAR *)__cil_tmp58;
16351#line 3322
16352        __cil_tmp60 = 0 * 1U;
16353#line 3322
16354        __cil_tmp61 = 112 + __cil_tmp60;
16355#line 3322
16356        __cil_tmp62 = (unsigned int )DisketteExtension;
16357#line 3322
16358        __cil_tmp63 = __cil_tmp62 + __cil_tmp61;
16359#line 3322
16360        __cil_tmp64 = (UCHAR *)__cil_tmp63;
16361#line 3322
16362        __cil_tmp65 = (void *)0;
16363#line 3322
16364        __cil_tmp66 = (struct _MDL *)__cil_tmp65;
16365#line 3322
16366        ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp59, __cil_tmp64, __cil_tmp66,
16367                                  0UL, 0UL);
16368        }
16369        {
16370#line 3329
16371        __cil_tmp67 = ntStatus >= 0L;
16372#line 3329
16373        if (! __cil_tmp67) {
16374          {
16375#line 3334
16376          while (1) {
16377            while_95_continue: /* CIL Label */ ;
16378            goto while_95_break;
16379          }
16380          while_95_break: /* CIL Label */ ;
16381          }
16382#line 3336
16383          return (ntStatus);
16384        } else {
16385
16386        }
16387        }
16388#line 3339
16389        __cil_tmp68 = 0 * 1U;
16390#line 3339
16391        __cil_tmp69 = 112 + __cil_tmp68;
16392#line 3339
16393        __cil_tmp70 = (unsigned int )DisketteExtension;
16394#line 3339
16395        __cil_tmp71 = __cil_tmp70 + __cil_tmp69;
16396#line 3339
16397        __cil_tmp72 = 0 * 1U;
16398#line 3339
16399        __cil_tmp73 = (unsigned int )(fifoBuffer) + __cil_tmp72;
16400#line 3339
16401        mem_111 = (UCHAR *)__cil_tmp71;
16402#line 3339
16403        mem_112 = (UCHAR *)__cil_tmp73;
16404#line 3339
16405        *mem_111 = *mem_112;
16406#line 3340
16407        __cil_tmp74 = 1 * 1U;
16408#line 3340
16409        __cil_tmp75 = 112 + __cil_tmp74;
16410#line 3340
16411        __cil_tmp76 = (unsigned int )DisketteExtension;
16412#line 3340
16413        __cil_tmp77 = __cil_tmp76 + __cil_tmp75;
16414#line 3340
16415        __cil_tmp78 = 1 * 1U;
16416#line 3340
16417        __cil_tmp79 = (unsigned int )(fifoBuffer) + __cil_tmp78;
16418#line 3340
16419        mem_113 = (UCHAR *)__cil_tmp77;
16420#line 3340
16421        mem_114 = (UCHAR *)__cil_tmp79;
16422#line 3340
16423        *mem_113 = *mem_114;
16424      } else {
16425
16426      }
16427      }
16428      {
16429#line 3344
16430      __cil_tmp80 = 0 * 1U;
16431#line 3344
16432      __cil_tmp81 = 112 + __cil_tmp80;
16433#line 3344
16434      __cil_tmp82 = (unsigned int )DisketteExtension;
16435#line 3344
16436      __cil_tmp83 = __cil_tmp82 + __cil_tmp81;
16437#line 3344
16438      mem_115 = (UCHAR *)__cil_tmp83;
16439#line 3344
16440      __cil_tmp84 = *mem_115;
16441#line 3344
16442      __cil_tmp85 = (int )__cil_tmp84;
16443#line 3344
16444      __cil_tmp86 = __cil_tmp85 & 32;
16445#line 3344
16446      if (! __cil_tmp86) {
16447        goto _L;
16448      } else {
16449        {
16450#line 3344
16451        __cil_tmp87 = 1 * 1U;
16452#line 3344
16453        __cil_tmp88 = 112 + __cil_tmp87;
16454#line 3344
16455        __cil_tmp89 = (unsigned int )DisketteExtension;
16456#line 3344
16457        __cil_tmp90 = __cil_tmp89 + __cil_tmp88;
16458#line 3344
16459        mem_116 = (UCHAR *)__cil_tmp90;
16460#line 3344
16461        __cil_tmp91 = *mem_116;
16462#line 3344
16463        __cil_tmp92 = (int )__cil_tmp91;
16464#line 3344
16465        if (__cil_tmp92 != 0) {
16466          _L: 
16467          {
16468#line 3350
16469          while (1) {
16470            while_96_continue: /* CIL Label */ ;
16471            goto while_96_break;
16472          }
16473          while_96_break: /* CIL Label */ ;
16474          }
16475#line 3352
16476          __cil_tmp93 = (unsigned int )DisketteExtension;
16477#line 3352
16478          __cil_tmp94 = __cil_tmp93 + 104;
16479#line 3352
16480          mem_117 = (BOOLEAN *)__cil_tmp94;
16481#line 3352
16482          *mem_117 = (unsigned char)1;
16483#line 3354
16484          ntStatus = -1073741464L;
16485        } else {
16486
16487        }
16488        }
16489      }
16490      }
16491    } else {
16492
16493    }
16494#line 3358
16495    __cil_tmp95 = (int )recalibrateCount;
16496#line 3358
16497    __cil_tmp96 = __cil_tmp95 + 1;
16498#line 3358
16499    recalibrateCount = (unsigned char )__cil_tmp96;
16500    {
16501#line 3280
16502    __cil_tmp97 = ntStatus >= 0L;
16503#line 3280
16504    if (! __cil_tmp97) {
16505      {
16506#line 3280
16507      __cil_tmp98 = (int )recalibrateCount;
16508#line 3280
16509      __cil_tmp99 = __cil_tmp98 < 2;
16510#line 3280
16511      if (! __cil_tmp99) {
16512        goto while_93_break;
16513      } else {
16514
16515      }
16516      }
16517    } else {
16518      goto while_93_break;
16519    }
16520    }
16521  }
16522  while_93_break: /* CIL Label */ ;
16523  }
16524  {
16525#line 3365
16526  while (1) {
16527    while_97_continue: /* CIL Label */ ;
16528    goto while_97_break;
16529  }
16530  while_97_break: /* CIL Label */ ;
16531  }
16532#line 3367
16533  return (ntStatus);
16534}
16535}
16536#line 3370 "floppy.c"
16537NTSTATUS FlDetermineMediaType(PDISKETTE_EXTENSION DisketteExtension ) 
16538{ NTSTATUS ntStatus ;
16539  PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
16540  BOOLEAN mediaTypesExhausted ;
16541  ULONG retries ;
16542  USHORT sectorLengthCode ;
16543  PBOOT_SECTOR_INFO bootSector ;
16544  LARGE_INTEGER offset ;
16545  PIRP irp ;
16546  int tmp ;
16547  PVOID tmp___0 ;
16548  int tmp___1 ;
16549  unsigned int __cil_tmp13 ;
16550  unsigned int __cil_tmp14 ;
16551  unsigned int __cil_tmp15 ;
16552  unsigned int __cil_tmp16 ;
16553  unsigned int __cil_tmp17 ;
16554  unsigned int __cil_tmp18 ;
16555  UCHAR __cil_tmp19 ;
16556  int __cil_tmp20 ;
16557  PDRIVE_MEDIA_LIMITS __cil_tmp21 ;
16558  unsigned int __cil_tmp22 ;
16559  unsigned int __cil_tmp23 ;
16560  unsigned int __cil_tmp24 ;
16561  unsigned int __cil_tmp25 ;
16562  DRIVE_MEDIA_TYPE __cil_tmp26 ;
16563  unsigned int __cil_tmp27 ;
16564  PDRIVE_MEDIA_CONSTANTS __cil_tmp28 ;
16565  KUSER_SHARED_DATA *__cil_tmp29 ;
16566  unsigned int __cil_tmp30 ;
16567  unsigned int __cil_tmp31 ;
16568  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp32 ;
16569  int __cil_tmp33 ;
16570  unsigned int __cil_tmp34 ;
16571  unsigned int __cil_tmp35 ;
16572  DRIVE_MEDIA_TYPE __cil_tmp36 ;
16573  unsigned int __cil_tmp37 ;
16574  PDRIVE_MEDIA_CONSTANTS __cil_tmp38 ;
16575  unsigned int __cil_tmp39 ;
16576  unsigned int __cil_tmp40 ;
16577  UCHAR __cil_tmp41 ;
16578  int __cil_tmp42 ;
16579  unsigned int __cil_tmp43 ;
16580  unsigned int __cil_tmp44 ;
16581  DRIVE_MEDIA_TYPE __cil_tmp45 ;
16582  unsigned int __cil_tmp46 ;
16583  unsigned int __cil_tmp47 ;
16584  unsigned int __cil_tmp48 ;
16585  unsigned int __cil_tmp49 ;
16586  unsigned int __cil_tmp50 ;
16587  unsigned int __cil_tmp51 ;
16588  unsigned int __cil_tmp52 ;
16589  UCHAR __cil_tmp53 ;
16590  int __cil_tmp54 ;
16591  int __cil_tmp55 ;
16592  int __cil_tmp56 ;
16593  unsigned int __cil_tmp57 ;
16594  unsigned int __cil_tmp58 ;
16595  UCHAR __cil_tmp59 ;
16596  int __cil_tmp60 ;
16597  int __cil_tmp61 ;
16598  unsigned int __cil_tmp62 ;
16599  unsigned int __cil_tmp63 ;
16600  unsigned int __cil_tmp64 ;
16601  unsigned int __cil_tmp65 ;
16602  unsigned int __cil_tmp66 ;
16603  unsigned int __cil_tmp67 ;
16604  unsigned int __cil_tmp68 ;
16605  unsigned int __cil_tmp69 ;
16606  UCHAR *__cil_tmp70 ;
16607  unsigned int __cil_tmp71 ;
16608  unsigned int __cil_tmp72 ;
16609  unsigned int __cil_tmp73 ;
16610  unsigned int __cil_tmp74 ;
16611  UCHAR *__cil_tmp75 ;
16612  void *__cil_tmp76 ;
16613  struct _MDL *__cil_tmp77 ;
16614  int __cil_tmp78 ;
16615  unsigned int __cil_tmp79 ;
16616  unsigned int __cil_tmp80 ;
16617  UCHAR __cil_tmp81 ;
16618  int __cil_tmp82 ;
16619  int __cil_tmp83 ;
16620  int __cil_tmp84 ;
16621  unsigned int __cil_tmp85 ;
16622  unsigned int __cil_tmp86 ;
16623  UCHAR __cil_tmp87 ;
16624  int __cil_tmp88 ;
16625  int __cil_tmp89 ;
16626  unsigned char __cil_tmp90 ;
16627  int __cil_tmp91 ;
16628  unsigned int __cil_tmp92 ;
16629  unsigned int __cil_tmp93 ;
16630  unsigned int __cil_tmp94 ;
16631  unsigned int __cil_tmp95 ;
16632  UCHAR __cil_tmp96 ;
16633  int __cil_tmp97 ;
16634  int __cil_tmp98 ;
16635  unsigned int __cil_tmp99 ;
16636  unsigned int __cil_tmp100 ;
16637  unsigned int __cil_tmp101 ;
16638  unsigned int __cil_tmp102 ;
16639  UCHAR __cil_tmp103 ;
16640  int __cil_tmp104 ;
16641  unsigned int __cil_tmp105 ;
16642  unsigned int __cil_tmp106 ;
16643  unsigned int __cil_tmp107 ;
16644  unsigned int __cil_tmp108 ;
16645  UCHAR __cil_tmp109 ;
16646  int __cil_tmp110 ;
16647  KUSER_SHARED_DATA *__cil_tmp111 ;
16648  unsigned int __cil_tmp112 ;
16649  unsigned int __cil_tmp113 ;
16650  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp114 ;
16651  int __cil_tmp115 ;
16652  int __cil_tmp116 ;
16653  unsigned int __cil_tmp117 ;
16654  unsigned int __cil_tmp118 ;
16655  unsigned int __cil_tmp119 ;
16656  unsigned int __cil_tmp120 ;
16657  UCHAR __cil_tmp121 ;
16658  int __cil_tmp122 ;
16659  unsigned int __cil_tmp123 ;
16660  unsigned int __cil_tmp124 ;
16661  unsigned int __cil_tmp125 ;
16662  unsigned int __cil_tmp126 ;
16663  DRIVE_MEDIA_TYPE __cil_tmp127 ;
16664  int __cil_tmp128 ;
16665  int __cil_tmp129 ;
16666  unsigned int __cil_tmp130 ;
16667  unsigned int __cil_tmp131 ;
16668  unsigned int __cil_tmp132 ;
16669  unsigned int __cil_tmp133 ;
16670  DRIVE_MEDIA_TYPE __cil_tmp134 ;
16671  unsigned int __cil_tmp135 ;
16672  PDRIVE_MEDIA_CONSTANTS __cil_tmp136 ;
16673  unsigned int __cil_tmp137 ;
16674  unsigned int __cil_tmp138 ;
16675  UCHAR __cil_tmp139 ;
16676  int __cil_tmp140 ;
16677  PDRIVE_MEDIA_LIMITS __cil_tmp141 ;
16678  unsigned int __cil_tmp142 ;
16679  unsigned int __cil_tmp143 ;
16680  DRIVE_MEDIA_TYPE __cil_tmp144 ;
16681  char __cil_tmp145 ;
16682  int __cil_tmp146 ;
16683  unsigned int __cil_tmp147 ;
16684  unsigned int __cil_tmp148 ;
16685  DRIVE_MEDIA_TYPE __cil_tmp149 ;
16686  char __cil_tmp150 ;
16687  int __cil_tmp151 ;
16688  unsigned int __cil_tmp152 ;
16689  unsigned int __cil_tmp153 ;
16690  KUSER_SHARED_DATA *__cil_tmp154 ;
16691  unsigned int __cil_tmp155 ;
16692  unsigned int __cil_tmp156 ;
16693  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp157 ;
16694  int __cil_tmp158 ;
16695  unsigned int __cil_tmp159 ;
16696  unsigned int __cil_tmp160 ;
16697  unsigned int __cil_tmp161 ;
16698  unsigned int __cil_tmp162 ;
16699  unsigned int __cil_tmp163 ;
16700  unsigned int __cil_tmp164 ;
16701  USHORT __cil_tmp165 ;
16702  unsigned int __cil_tmp166 ;
16703  unsigned int __cil_tmp167 ;
16704  unsigned int __cil_tmp168 ;
16705  unsigned int __cil_tmp169 ;
16706  UCHAR __cil_tmp170 ;
16707  int __cil_tmp171 ;
16708  unsigned int __cil_tmp172 ;
16709  unsigned int __cil_tmp173 ;
16710  UCHAR __cil_tmp174 ;
16711  int __cil_tmp175 ;
16712  int __cil_tmp176 ;
16713  unsigned int __cil_tmp177 ;
16714  unsigned int __cil_tmp178 ;
16715  UCHAR __cil_tmp179 ;
16716  int __cil_tmp180 ;
16717  unsigned int __cil_tmp181 ;
16718  unsigned int __cil_tmp182 ;
16719  USHORT __cil_tmp183 ;
16720  int __cil_tmp184 ;
16721  int __cil_tmp185 ;
16722  int __cil_tmp186 ;
16723  int __cil_tmp187 ;
16724  unsigned int __cil_tmp188 ;
16725  unsigned int __cil_tmp189 ;
16726  unsigned int __cil_tmp190 ;
16727  unsigned int __cil_tmp191 ;
16728  DRIVE_MEDIA_TYPE __cil_tmp192 ;
16729  unsigned int __cil_tmp193 ;
16730  PDRIVE_MEDIA_CONSTANTS __cil_tmp194 ;
16731  KUSER_SHARED_DATA *__cil_tmp195 ;
16732  unsigned int __cil_tmp196 ;
16733  unsigned int __cil_tmp197 ;
16734  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp198 ;
16735  int __cil_tmp199 ;
16736  enum _POOL_TYPE __cil_tmp200 ;
16737  unsigned long __cil_tmp201 ;
16738  unsigned int __cil_tmp202 ;
16739  unsigned int __cil_tmp203 ;
16740  LARGE_INTEGER *__cil_tmp204 ;
16741  unsigned int __cil_tmp205 ;
16742  unsigned int __cil_tmp206 ;
16743  LONG __cil_tmp207 ;
16744  KUSER_SHARED_DATA *__cil_tmp208 ;
16745  unsigned int __cil_tmp209 ;
16746  unsigned int __cil_tmp210 ;
16747  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp211 ;
16748  int __cil_tmp212 ;
16749  unsigned int __cil_tmp213 ;
16750  unsigned int __cil_tmp214 ;
16751  PDEVICE_OBJECT __cil_tmp215 ;
16752  void *__cil_tmp216 ;
16753  unsigned long __cil_tmp217 ;
16754  void *__cil_tmp218 ;
16755  struct _IO_STATUS_BLOCK *__cil_tmp219 ;
16756  void *__cil_tmp220 ;
16757  unsigned int __cil_tmp221 ;
16758  unsigned int __cil_tmp222 ;
16759  unsigned int __cil_tmp223 ;
16760  unsigned int __cil_tmp224 ;
16761  CHAR __cil_tmp225 ;
16762  int __cil_tmp226 ;
16763  int __cil_tmp227 ;
16764  unsigned int __cil_tmp228 ;
16765  unsigned int __cil_tmp229 ;
16766  unsigned int __cil_tmp230 ;
16767  unsigned int __cil_tmp231 ;
16768  unsigned int __cil_tmp232 ;
16769  unsigned int __cil_tmp233 ;
16770  unsigned int __cil_tmp234 ;
16771  unsigned int __cil_tmp235 ;
16772  unsigned int __cil_tmp236 ;
16773  unsigned int __cil_tmp237 ;
16774  struct _IO_STACK_LOCATION *__cil_tmp238 ;
16775  unsigned int __cil_tmp239 ;
16776  unsigned int __cil_tmp240 ;
16777  PMDL __cil_tmp241 ;
16778  unsigned int __cil_tmp242 ;
16779  unsigned int __cil_tmp243 ;
16780  PMDL __cil_tmp244 ;
16781  void *__cil_tmp245 ;
16782  int __cil_tmp246 ;
16783  unsigned int __cil_tmp247 ;
16784  unsigned int __cil_tmp248 ;
16785  unsigned int __cil_tmp249 ;
16786  unsigned int __cil_tmp250 ;
16787  DRIVE_MEDIA_TYPE __cil_tmp251 ;
16788  int __cil_tmp252 ;
16789  int __cil_tmp253 ;
16790  unsigned int __cil_tmp254 ;
16791  unsigned int __cil_tmp255 ;
16792  unsigned int __cil_tmp256 ;
16793  unsigned int __cil_tmp257 ;
16794  DRIVE_MEDIA_TYPE __cil_tmp258 ;
16795  unsigned int __cil_tmp259 ;
16796  PDRIVE_MEDIA_CONSTANTS __cil_tmp260 ;
16797  unsigned int __cil_tmp261 ;
16798  unsigned int __cil_tmp262 ;
16799  UCHAR __cil_tmp263 ;
16800  int __cil_tmp264 ;
16801  PDRIVE_MEDIA_LIMITS __cil_tmp265 ;
16802  unsigned int __cil_tmp266 ;
16803  unsigned int __cil_tmp267 ;
16804  DRIVE_MEDIA_TYPE __cil_tmp268 ;
16805  char __cil_tmp269 ;
16806  int __cil_tmp270 ;
16807  unsigned int __cil_tmp271 ;
16808  unsigned int __cil_tmp272 ;
16809  DRIVE_MEDIA_TYPE __cil_tmp273 ;
16810  char __cil_tmp274 ;
16811  int __cil_tmp275 ;
16812  unsigned int __cil_tmp276 ;
16813  unsigned int __cil_tmp277 ;
16814  int __cil_tmp278 ;
16815  int __cil_tmp279 ;
16816  int __cil_tmp280 ;
16817  unsigned int __cil_tmp281 ;
16818  unsigned int __cil_tmp282 ;
16819  unsigned int __cil_tmp283 ;
16820  unsigned int __cil_tmp284 ;
16821  unsigned int __cil_tmp285 ;
16822  unsigned int __cil_tmp286 ;
16823  USHORT __cil_tmp287 ;
16824  unsigned int __cil_tmp288 ;
16825  unsigned int __cil_tmp289 ;
16826  unsigned int __cil_tmp290 ;
16827  unsigned int __cil_tmp291 ;
16828  UCHAR __cil_tmp292 ;
16829  int __cil_tmp293 ;
16830  unsigned int __cil_tmp294 ;
16831  unsigned int __cil_tmp295 ;
16832  UCHAR __cil_tmp296 ;
16833  int __cil_tmp297 ;
16834  int __cil_tmp298 ;
16835  unsigned int __cil_tmp299 ;
16836  unsigned int __cil_tmp300 ;
16837  UCHAR __cil_tmp301 ;
16838  int __cil_tmp302 ;
16839  unsigned int __cil_tmp303 ;
16840  unsigned int __cil_tmp304 ;
16841  USHORT __cil_tmp305 ;
16842  int __cil_tmp306 ;
16843  int __cil_tmp307 ;
16844  int __cil_tmp308 ;
16845  int __cil_tmp309 ;
16846  unsigned int __cil_tmp310 ;
16847  unsigned int __cil_tmp311 ;
16848  unsigned int __cil_tmp312 ;
16849  unsigned int __cil_tmp313 ;
16850  DRIVE_MEDIA_TYPE __cil_tmp314 ;
16851  unsigned int __cil_tmp315 ;
16852  PDRIVE_MEDIA_CONSTANTS __cil_tmp316 ;
16853  BOOLEAN *mem_317 ;
16854  UCHAR *mem_318 ;
16855  DRIVE_MEDIA_TYPE *mem_319 ;
16856  DRIVE_MEDIA_TYPE *mem_320 ;
16857  DRIVE_MEDIA_TYPE *mem_321 ;
16858  DRIVE_MEDIA_CONSTANTS *mem_322 ;
16859  ALTERNATIVE_ARCHITECTURE_TYPE *mem_323 ;
16860  DRIVE_MEDIA_TYPE *mem_324 ;
16861  UCHAR *mem_325 ;
16862  DRIVE_MEDIA_TYPE *mem_326 ;
16863  UCHAR *mem_327 ;
16864  UCHAR *mem_328 ;
16865  UCHAR *mem_329 ;
16866  UCHAR *mem_330 ;
16867  UCHAR *mem_331 ;
16868  UCHAR *mem_332 ;
16869  UCHAR *mem_333 ;
16870  UCHAR *mem_334 ;
16871  UCHAR *mem_335 ;
16872  ALTERNATIVE_ARCHITECTURE_TYPE *mem_336 ;
16873  UCHAR *mem_337 ;
16874  DRIVE_MEDIA_TYPE *mem_338 ;
16875  DRIVE_MEDIA_TYPE *mem_339 ;
16876  DRIVE_MEDIA_TYPE *mem_340 ;
16877  DRIVE_MEDIA_CONSTANTS *mem_341 ;
16878  UCHAR *mem_342 ;
16879  DRIVE_MEDIA_TYPE *mem_343 ;
16880  DRIVE_MEDIA_TYPE *mem_344 ;
16881  MEDIA_TYPE *mem_345 ;
16882  ALTERNATIVE_ARCHITECTURE_TYPE *mem_346 ;
16883  MEDIA_TYPE *mem_347 ;
16884  MEDIA_TYPE *mem_348 ;
16885  USHORT *mem_349 ;
16886  ULONG *mem_350 ;
16887  UCHAR *mem_351 ;
16888  UCHAR *mem_352 ;
16889  UCHAR *mem_353 ;
16890  USHORT *mem_354 ;
16891  ULONG *mem_355 ;
16892  DRIVE_MEDIA_TYPE *mem_356 ;
16893  DRIVE_MEDIA_CONSTANTS *mem_357 ;
16894  ALTERNATIVE_ARCHITECTURE_TYPE *mem_358 ;
16895  LONG *mem_359 ;
16896  LONG *mem_360 ;
16897  ULONG *mem_361 ;
16898  ALTERNATIVE_ARCHITECTURE_TYPE *mem_362 ;
16899  PDEVICE_OBJECT *mem_363 ;
16900  CHAR *mem_364 ;
16901  CHAR *mem_365 ;
16902  struct _IO_STACK_LOCATION **mem_366 ;
16903  struct _IO_STACK_LOCATION **mem_367 ;
16904  PMDL *mem_368 ;
16905  PMDL *mem_369 ;
16906  DRIVE_MEDIA_TYPE *mem_370 ;
16907  DRIVE_MEDIA_TYPE *mem_371 ;
16908  DRIVE_MEDIA_TYPE *mem_372 ;
16909  DRIVE_MEDIA_CONSTANTS *mem_373 ;
16910  UCHAR *mem_374 ;
16911  DRIVE_MEDIA_TYPE *mem_375 ;
16912  DRIVE_MEDIA_TYPE *mem_376 ;
16913  MEDIA_TYPE *mem_377 ;
16914  MEDIA_TYPE *mem_378 ;
16915  MEDIA_TYPE *mem_379 ;
16916  USHORT *mem_380 ;
16917  ULONG *mem_381 ;
16918  UCHAR *mem_382 ;
16919  UCHAR *mem_383 ;
16920  UCHAR *mem_384 ;
16921  USHORT *mem_385 ;
16922  ULONG *mem_386 ;
16923  DRIVE_MEDIA_TYPE *mem_387 ;
16924  DRIVE_MEDIA_CONSTANTS *mem_388 ;
16925
16926  {
16927#line 3400
16928  retries = 0UL;
16929  {
16930#line 3410
16931  while (1) {
16932    while_98_continue: /* CIL Label */ ;
16933    goto while_98_break;
16934  }
16935  while_98_break: /* CIL Label */ ;
16936  }
16937#line 3412
16938  __cil_tmp13 = (unsigned int )DisketteExtension;
16939#line 3412
16940  __cil_tmp14 = __cil_tmp13 + 250;
16941#line 3412
16942  mem_317 = (BOOLEAN *)__cil_tmp14;
16943#line 3412
16944  *mem_317 = (unsigned char)0;
16945#line 3418
16946  retries = 0UL;
16947  {
16948#line 3418
16949  while (1) {
16950    while_99_continue: /* CIL Label */ ;
16951#line 3418
16952    if (retries < 3UL) {
16953
16954    } else {
16955      goto while_99_break;
16956    }
16957#line 3420
16958    if (retries) {
16959      {
16960#line 3432
16961      while (1) {
16962        while_100_continue: /* CIL Label */ ;
16963        goto while_100_break;
16964      }
16965      while_100_break: /* CIL Label */ ;
16966      }
16967      {
16968#line 3433
16969      FlInitializeControllerHardware(DisketteExtension);
16970      }
16971    } else {
16972
16973    }
16974#line 3443
16975    __cil_tmp15 = (unsigned int )DisketteExtension;
16976#line 3443
16977    __cil_tmp16 = __cil_tmp15 + 216;
16978#line 3443
16979    __cil_tmp17 = (unsigned int )DisketteExtension;
16980#line 3443
16981    __cil_tmp18 = __cil_tmp17 + 174;
16982#line 3443
16983    mem_318 = (UCHAR *)__cil_tmp18;
16984#line 3443
16985    __cil_tmp19 = *mem_318;
16986#line 3443
16987    __cil_tmp20 = (int )__cil_tmp19;
16988#line 3443
16989    __cil_tmp21 = DriveMediaLimits + __cil_tmp20;
16990#line 3443
16991    mem_319 = (DRIVE_MEDIA_TYPE *)__cil_tmp16;
16992#line 3443
16993    mem_320 = (DRIVE_MEDIA_TYPE *)__cil_tmp21;
16994#line 3443
16995    *mem_319 = *mem_320;
16996#line 3445
16997    __cil_tmp22 = (unsigned int )DisketteExtension;
16998#line 3445
16999    __cil_tmp23 = __cil_tmp22 + 308;
17000#line 3445
17001    __cil_tmp24 = (unsigned int )DisketteExtension;
17002#line 3445
17003    __cil_tmp25 = __cil_tmp24 + 216;
17004#line 3445
17005    mem_321 = (DRIVE_MEDIA_TYPE *)__cil_tmp25;
17006#line 3445
17007    __cil_tmp26 = *mem_321;
17008#line 3445
17009    __cil_tmp27 = (unsigned int )__cil_tmp26;
17010#line 3445
17011    __cil_tmp28 = DriveMediaConstants + __cil_tmp27;
17012#line 3445
17013    mem_322 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp23;
17014#line 3445
17015    *mem_322 = *__cil_tmp28;
17016#line 3448
17017    mediaTypesExhausted = (unsigned char)0;
17018    {
17019#line 3450
17020    while (1) {
17021      while_101_continue: /* CIL Label */ ;
17022      {
17023#line 3452
17024      __cil_tmp29 = (KUSER_SHARED_DATA * const  )4292804608U;
17025#line 3452
17026      __cil_tmp30 = (unsigned int )__cil_tmp29;
17027#line 3452
17028      __cil_tmp31 = __cil_tmp30 + 732;
17029#line 3452
17030      mem_323 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp31;
17031#line 3452
17032      __cil_tmp32 = *mem_323;
17033#line 3452
17034      __cil_tmp33 = (int )__cil_tmp32;
17035#line 3452
17036      if (__cil_tmp33 == 1) {
17037        {
17038#line 3453
17039        __cil_tmp34 = (unsigned int )DisketteExtension;
17040#line 3453
17041        __cil_tmp35 = __cil_tmp34 + 216;
17042#line 3453
17043        mem_324 = (DRIVE_MEDIA_TYPE *)__cil_tmp35;
17044#line 3453
17045        __cil_tmp36 = *mem_324;
17046#line 3453
17047        __cil_tmp37 = (unsigned int )__cil_tmp36;
17048#line 3453
17049        __cil_tmp38 = DriveMediaConstants + __cil_tmp37;
17050#line 3453
17051        __cil_tmp39 = (unsigned int )__cil_tmp38;
17052#line 3453
17053        __cil_tmp40 = __cil_tmp39 + 35;
17054#line 3453
17055        mem_325 = (UCHAR *)__cil_tmp40;
17056#line 3453
17057        __cil_tmp41 = *mem_325;
17058#line 3453
17059        sectorLengthCode = (unsigned short )__cil_tmp41;
17060#line 3455
17061        FlHdbit(DisketteExtension);
17062        }
17063      } else {
17064
17065      }
17066      }
17067      {
17068#line 3459
17069      ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
17070      }
17071      {
17072#line 3461
17073      __cil_tmp42 = ntStatus >= 0L;
17074#line 3461
17075      if (! __cil_tmp42) {
17076        {
17077#line 3471
17078        while (1) {
17079          while_102_continue: /* CIL Label */ ;
17080          goto while_102_break;
17081        }
17082        while_102_break: /* CIL Label */ ;
17083        }
17084#line 3472
17085        mediaTypesExhausted = (unsigned char)1;
17086      } else {
17087        {
17088#line 3481
17089        __cil_tmp43 = (unsigned int )DisketteExtension;
17090#line 3481
17091        __cil_tmp44 = __cil_tmp43 + 216;
17092#line 3481
17093        mem_326 = (DRIVE_MEDIA_TYPE *)__cil_tmp44;
17094#line 3481
17095        __cil_tmp45 = *mem_326;
17096#line 3481
17097        __cil_tmp46 = (unsigned int )__cil_tmp45;
17098#line 3481
17099        driveMediaConstants = DriveMediaConstants + __cil_tmp46;
17100#line 3488
17101        __cil_tmp47 = 1 * 1U;
17102#line 3488
17103        __cil_tmp48 = 112 + __cil_tmp47;
17104#line 3488
17105        __cil_tmp49 = (unsigned int )DisketteExtension;
17106#line 3488
17107        __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
17108#line 3488
17109        __cil_tmp51 = (unsigned int )driveMediaConstants;
17110#line 3488
17111        __cil_tmp52 = __cil_tmp51 + 51;
17112#line 3488
17113        mem_327 = (UCHAR *)__cil_tmp52;
17114#line 3488
17115        __cil_tmp53 = *mem_327;
17116#line 3488
17117        __cil_tmp54 = (int )__cil_tmp53;
17118#line 3488
17119        __cil_tmp55 = __cil_tmp54 - 1;
17120#line 3488
17121        __cil_tmp56 = __cil_tmp55 << 2;
17122#line 3488
17123        __cil_tmp57 = (unsigned int )DisketteExtension;
17124#line 3488
17125        __cil_tmp58 = __cil_tmp57 + 248;
17126#line 3488
17127        mem_328 = (UCHAR *)__cil_tmp58;
17128#line 3488
17129        __cil_tmp59 = *mem_328;
17130#line 3488
17131        __cil_tmp60 = (int )__cil_tmp59;
17132#line 3488
17133        __cil_tmp61 = __cil_tmp60 | __cil_tmp56;
17134#line 3488
17135        mem_329 = (UCHAR *)__cil_tmp50;
17136#line 3488
17137        *mem_329 = (unsigned char )__cil_tmp61;
17138#line 3492
17139        __cil_tmp62 = 0 * 1U;
17140#line 3492
17141        __cil_tmp63 = 112 + __cil_tmp62;
17142#line 3492
17143        __cil_tmp64 = (unsigned int )DisketteExtension;
17144#line 3492
17145        __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
17146#line 3492
17147        mem_330 = (UCHAR *)__cil_tmp65;
17148#line 3492
17149        *mem_330 = (unsigned char)84;
17150#line 3495
17151        __cil_tmp66 = 0 * 1U;
17152#line 3495
17153        __cil_tmp67 = 112 + __cil_tmp66;
17154#line 3495
17155        __cil_tmp68 = (unsigned int )DisketteExtension;
17156#line 3495
17157        __cil_tmp69 = __cil_tmp68 + __cil_tmp67;
17158#line 3495
17159        __cil_tmp70 = (UCHAR *)__cil_tmp69;
17160#line 3495
17161        __cil_tmp71 = 0 * 1U;
17162#line 3495
17163        __cil_tmp72 = 112 + __cil_tmp71;
17164#line 3495
17165        __cil_tmp73 = (unsigned int )DisketteExtension;
17166#line 3495
17167        __cil_tmp74 = __cil_tmp73 + __cil_tmp72;
17168#line 3495
17169        __cil_tmp75 = (UCHAR *)__cil_tmp74;
17170#line 3495
17171        __cil_tmp76 = (void *)0;
17172#line 3495
17173        __cil_tmp77 = (struct _MDL *)__cil_tmp76;
17174#line 3495
17175        ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp70, __cil_tmp75, __cil_tmp77,
17176                                  0UL, 0UL);
17177        }
17178        {
17179#line 3502
17180        __cil_tmp78 = ntStatus >= 0L;
17181#line 3502
17182        if (! __cil_tmp78) {
17183          goto _L;
17184        } else {
17185          {
17186#line 3502
17187          __cil_tmp79 = (unsigned int )driveMediaConstants;
17188#line 3502
17189          __cil_tmp80 = __cil_tmp79 + 51;
17190#line 3502
17191          mem_331 = (UCHAR *)__cil_tmp80;
17192#line 3502
17193          __cil_tmp81 = *mem_331;
17194#line 3502
17195          __cil_tmp82 = (int )__cil_tmp81;
17196#line 3502
17197          __cil_tmp83 = __cil_tmp82 - 1;
17198#line 3502
17199          __cil_tmp84 = __cil_tmp83 << 2;
17200#line 3502
17201          __cil_tmp85 = (unsigned int )DisketteExtension;
17202#line 3502
17203          __cil_tmp86 = __cil_tmp85 + 248;
17204#line 3502
17205          mem_332 = (UCHAR *)__cil_tmp86;
17206#line 3502
17207          __cil_tmp87 = *mem_332;
17208#line 3502
17209          __cil_tmp88 = (int )__cil_tmp87;
17210#line 3502
17211          __cil_tmp89 = __cil_tmp88 | __cil_tmp84;
17212#line 3502
17213          __cil_tmp90 = (unsigned char )__cil_tmp89;
17214#line 3502
17215          __cil_tmp91 = (int )__cil_tmp90;
17216#line 3502
17217          __cil_tmp92 = 0 * 1U;
17218#line 3502
17219          __cil_tmp93 = 112 + __cil_tmp92;
17220#line 3502
17221          __cil_tmp94 = (unsigned int )DisketteExtension;
17222#line 3502
17223          __cil_tmp95 = __cil_tmp94 + __cil_tmp93;
17224#line 3502
17225          mem_333 = (UCHAR *)__cil_tmp95;
17226#line 3502
17227          __cil_tmp96 = *mem_333;
17228#line 3502
17229          __cil_tmp97 = (int )__cil_tmp96;
17230#line 3502
17231          __cil_tmp98 = __cil_tmp97 & -33;
17232#line 3502
17233          if (__cil_tmp98 != __cil_tmp91) {
17234            goto _L;
17235          } else {
17236            {
17237#line 3502
17238            __cil_tmp99 = 1 * 1U;
17239#line 3502
17240            __cil_tmp100 = 112 + __cil_tmp99;
17241#line 3502
17242            __cil_tmp101 = (unsigned int )DisketteExtension;
17243#line 3502
17244            __cil_tmp102 = __cil_tmp101 + __cil_tmp100;
17245#line 3502
17246            mem_334 = (UCHAR *)__cil_tmp102;
17247#line 3502
17248            __cil_tmp103 = *mem_334;
17249#line 3502
17250            __cil_tmp104 = (int )__cil_tmp103;
17251#line 3502
17252            if (__cil_tmp104 != 0) {
17253              goto _L;
17254            } else {
17255              {
17256#line 3502
17257              __cil_tmp105 = 2 * 1U;
17258#line 3502
17259              __cil_tmp106 = 112 + __cil_tmp105;
17260#line 3502
17261              __cil_tmp107 = (unsigned int )DisketteExtension;
17262#line 3502
17263              __cil_tmp108 = __cil_tmp107 + __cil_tmp106;
17264#line 3502
17265              mem_335 = (UCHAR *)__cil_tmp108;
17266#line 3502
17267              __cil_tmp109 = *mem_335;
17268#line 3502
17269              __cil_tmp110 = (int )__cil_tmp109;
17270#line 3502
17271              if (__cil_tmp110 != 0) {
17272                goto _L;
17273              } else {
17274                {
17275#line 3502
17276                __cil_tmp111 = (KUSER_SHARED_DATA * const  )4292804608U;
17277#line 3502
17278                __cil_tmp112 = (unsigned int )__cil_tmp111;
17279#line 3502
17280                __cil_tmp113 = __cil_tmp112 + 732;
17281#line 3502
17282                mem_336 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp113;
17283#line 3502
17284                __cil_tmp114 = *mem_336;
17285#line 3502
17286                __cil_tmp115 = (int )__cil_tmp114;
17287#line 3502
17288                if (__cil_tmp115 == 1) {
17289                  {
17290#line 3502
17291                  __cil_tmp116 = (int )sectorLengthCode;
17292#line 3502
17293                  __cil_tmp117 = 6 * 1U;
17294#line 3502
17295                  __cil_tmp118 = 112 + __cil_tmp117;
17296#line 3502
17297                  __cil_tmp119 = (unsigned int )DisketteExtension;
17298#line 3502
17299                  __cil_tmp120 = __cil_tmp119 + __cil_tmp118;
17300#line 3502
17301                  mem_337 = (UCHAR *)__cil_tmp120;
17302#line 3502
17303                  __cil_tmp121 = *mem_337;
17304#line 3502
17305                  __cil_tmp122 = (int )__cil_tmp121;
17306#line 3502
17307                  if (__cil_tmp122 != __cil_tmp116) {
17308                    _L: 
17309                    {
17310#line 3522
17311                    while (1) {
17312                      while_103_continue: /* CIL Label */ ;
17313                      goto while_103_break;
17314                    }
17315                    while_103_break: /* CIL Label */ ;
17316                    }
17317#line 3524
17318                    __cil_tmp123 = (unsigned int )DisketteExtension;
17319#line 3524
17320                    __cil_tmp124 = __cil_tmp123 + 216;
17321#line 3524
17322                    __cil_tmp125 = (unsigned int )DisketteExtension;
17323#line 3524
17324                    __cil_tmp126 = __cil_tmp125 + 216;
17325#line 3524
17326                    mem_338 = (DRIVE_MEDIA_TYPE *)__cil_tmp126;
17327#line 3524
17328                    __cil_tmp127 = *mem_338;
17329#line 3524
17330                    __cil_tmp128 = (int )__cil_tmp127;
17331#line 3524
17332                    __cil_tmp129 = __cil_tmp128 - 1;
17333#line 3524
17334                    mem_339 = (DRIVE_MEDIA_TYPE *)__cil_tmp124;
17335#line 3524
17336                    *mem_339 = (enum _DRIVE_MEDIA_TYPE )__cil_tmp129;
17337#line 3525
17338                    __cil_tmp130 = (unsigned int )DisketteExtension;
17339#line 3525
17340                    __cil_tmp131 = __cil_tmp130 + 308;
17341#line 3525
17342                    __cil_tmp132 = (unsigned int )DisketteExtension;
17343#line 3525
17344                    __cil_tmp133 = __cil_tmp132 + 216;
17345#line 3525
17346                    mem_340 = (DRIVE_MEDIA_TYPE *)__cil_tmp133;
17347#line 3525
17348                    __cil_tmp134 = *mem_340;
17349#line 3525
17350                    __cil_tmp135 = (unsigned int )__cil_tmp134;
17351#line 3525
17352                    __cil_tmp136 = DriveMediaConstants + __cil_tmp135;
17353#line 3525
17354                    mem_341 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp131;
17355#line 3525
17356                    *mem_341 = *__cil_tmp136;
17357#line 3528
17358                    if (ntStatus != -1073741661L) {
17359#line 3530
17360                      ntStatus = -1073741804L;
17361                    } else {
17362
17363                    }
17364                    {
17365#line 3538
17366                    __cil_tmp137 = (unsigned int )DisketteExtension;
17367#line 3538
17368                    __cil_tmp138 = __cil_tmp137 + 174;
17369#line 3538
17370                    mem_342 = (UCHAR *)__cil_tmp138;
17371#line 3538
17372                    __cil_tmp139 = *mem_342;
17373#line 3538
17374                    __cil_tmp140 = (int )__cil_tmp139;
17375#line 3538
17376                    __cil_tmp141 = DriveMediaLimits + __cil_tmp140;
17377#line 3538
17378                    __cil_tmp142 = (unsigned int )__cil_tmp141;
17379#line 3538
17380                    __cil_tmp143 = __cil_tmp142 + 32;
17381#line 3538
17382                    mem_343 = (DRIVE_MEDIA_TYPE *)__cil_tmp143;
17383#line 3538
17384                    __cil_tmp144 = *mem_343;
17385#line 3538
17386                    __cil_tmp145 = (char )__cil_tmp144;
17387#line 3538
17388                    __cil_tmp146 = (int )__cil_tmp145;
17389#line 3538
17390                    __cil_tmp147 = (unsigned int )DisketteExtension;
17391#line 3538
17392                    __cil_tmp148 = __cil_tmp147 + 216;
17393#line 3538
17394                    mem_344 = (DRIVE_MEDIA_TYPE *)__cil_tmp148;
17395#line 3538
17396                    __cil_tmp149 = *mem_344;
17397#line 3538
17398                    __cil_tmp150 = (char )__cil_tmp149;
17399#line 3538
17400                    __cil_tmp151 = (int )__cil_tmp150;
17401#line 3538
17402                    if (__cil_tmp151 < __cil_tmp146) {
17403#line 3542
17404                      __cil_tmp152 = (unsigned int )DisketteExtension;
17405#line 3542
17406                      __cil_tmp153 = __cil_tmp152 + 184;
17407#line 3542
17408                      mem_345 = (MEDIA_TYPE *)__cil_tmp153;
17409#line 3542
17410                      *mem_345 = (enum _MEDIA_TYPE )0;
17411#line 3543
17412                      mediaTypesExhausted = (unsigned char)1;
17413                      {
17414#line 3548
17415                      while (1) {
17416                        while_104_continue: /* CIL Label */ ;
17417                        goto while_104_break;
17418                      }
17419                      while_104_break: /* CIL Label */ ;
17420                      }
17421                    } else {
17422
17423                    }
17424                    }
17425                  } else {
17426                    goto _L___0;
17427                  }
17428                  }
17429                } else {
17430                  _L___0: 
17431                  {
17432#line 3553
17433                  __cil_tmp154 = (KUSER_SHARED_DATA * const  )4292804608U;
17434#line 3553
17435                  __cil_tmp155 = (unsigned int )__cil_tmp154;
17436#line 3553
17437                  __cil_tmp156 = __cil_tmp155 + 732;
17438#line 3553
17439                  mem_346 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp156;
17440#line 3553
17441                  __cil_tmp157 = *mem_346;
17442#line 3553
17443                  __cil_tmp158 = (int )__cil_tmp157;
17444#line 3553
17445                  if (__cil_tmp158 == 1) {
17446#line 3558
17447                    __cil_tmp159 = (unsigned int )DisketteExtension;
17448#line 3558
17449                    __cil_tmp160 = __cil_tmp159 + 184;
17450#line 3558
17451                    mem_347 = (MEDIA_TYPE *)__cil_tmp160;
17452#line 3558
17453                    mem_348 = (MEDIA_TYPE *)driveMediaConstants;
17454#line 3558
17455                    *mem_347 = *mem_348;
17456#line 3560
17457                    __cil_tmp161 = (unsigned int )DisketteExtension;
17458#line 3560
17459                    __cil_tmp162 = __cil_tmp161 + 176;
17460#line 3560
17461                    __cil_tmp163 = (unsigned int )driveMediaConstants;
17462#line 3560
17463                    __cil_tmp164 = __cil_tmp163 + 36;
17464#line 3560
17465                    mem_349 = (USHORT *)__cil_tmp164;
17466#line 3560
17467                    __cil_tmp165 = *mem_349;
17468#line 3560
17469                    mem_350 = (ULONG *)__cil_tmp162;
17470#line 3560
17471                    *mem_350 = (unsigned long )__cil_tmp165;
17472                    {
17473#line 3566
17474                    while (1) {
17475                      while_105_continue: /* CIL Label */ ;
17476                      goto while_105_break;
17477                    }
17478                    while_105_break: /* CIL Label */ ;
17479                    }
17480#line 3568
17481                    __cil_tmp166 = (unsigned int )DisketteExtension;
17482#line 3568
17483                    __cil_tmp167 = __cil_tmp166 + 180;
17484#line 3568
17485                    __cil_tmp168 = (unsigned int )driveMediaConstants;
17486#line 3568
17487                    __cil_tmp169 = __cil_tmp168 + 51;
17488#line 3568
17489                    mem_351 = (UCHAR *)__cil_tmp169;
17490#line 3568
17491                    __cil_tmp170 = *mem_351;
17492#line 3568
17493                    __cil_tmp171 = (int )__cil_tmp170;
17494#line 3568
17495                    __cil_tmp172 = (unsigned int )driveMediaConstants;
17496#line 3568
17497                    __cil_tmp173 = __cil_tmp172 + 48;
17498#line 3568
17499                    mem_352 = (UCHAR *)__cil_tmp173;
17500#line 3568
17501                    __cil_tmp174 = *mem_352;
17502#line 3568
17503                    __cil_tmp175 = (int )__cil_tmp174;
17504#line 3568
17505                    __cil_tmp176 = 1 + __cil_tmp175;
17506#line 3568
17507                    __cil_tmp177 = (unsigned int )driveMediaConstants;
17508#line 3568
17509                    __cil_tmp178 = __cil_tmp177 + 38;
17510#line 3568
17511                    mem_353 = (UCHAR *)__cil_tmp178;
17512#line 3568
17513                    __cil_tmp179 = *mem_353;
17514#line 3568
17515                    __cil_tmp180 = (int )__cil_tmp179;
17516#line 3568
17517                    __cil_tmp181 = (unsigned int )driveMediaConstants;
17518#line 3568
17519                    __cil_tmp182 = __cil_tmp181 + 36;
17520#line 3568
17521                    mem_354 = (USHORT *)__cil_tmp182;
17522#line 3568
17523                    __cil_tmp183 = *mem_354;
17524#line 3568
17525                    __cil_tmp184 = (int )__cil_tmp183;
17526#line 3568
17527                    __cil_tmp185 = __cil_tmp184 * __cil_tmp180;
17528#line 3568
17529                    __cil_tmp186 = __cil_tmp185 * __cil_tmp176;
17530#line 3568
17531                    __cil_tmp187 = __cil_tmp186 * __cil_tmp171;
17532#line 3568
17533                    mem_355 = (ULONG *)__cil_tmp167;
17534#line 3568
17535                    *mem_355 = (unsigned long )__cil_tmp187;
17536#line 3578
17537                    __cil_tmp188 = (unsigned int )DisketteExtension;
17538#line 3578
17539                    __cil_tmp189 = __cil_tmp188 + 308;
17540#line 3578
17541                    __cil_tmp190 = (unsigned int )DisketteExtension;
17542#line 3578
17543                    __cil_tmp191 = __cil_tmp190 + 216;
17544#line 3578
17545                    mem_356 = (DRIVE_MEDIA_TYPE *)__cil_tmp191;
17546#line 3578
17547                    __cil_tmp192 = *mem_356;
17548#line 3578
17549                    __cil_tmp193 = (unsigned int )__cil_tmp192;
17550#line 3578
17551                    __cil_tmp194 = DriveMediaConstants + __cil_tmp193;
17552#line 3578
17553                    mem_357 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp189;
17554#line 3578
17555                    *mem_357 = *__cil_tmp194;
17556                    {
17557#line 3588
17558                    __cil_tmp195 = (KUSER_SHARED_DATA * const  )4292804608U;
17559#line 3588
17560                    __cil_tmp196 = (unsigned int )__cil_tmp195;
17561#line 3588
17562                    __cil_tmp197 = __cil_tmp196 + 732;
17563#line 3588
17564                    mem_358 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp197;
17565#line 3588
17566                    __cil_tmp198 = *mem_358;
17567#line 3588
17568                    __cil_tmp199 = (int )__cil_tmp198;
17569#line 3588
17570                    if (__cil_tmp199 == 1) {
17571#line 3588
17572                      tmp = 1024;
17573                    } else {
17574#line 3588
17575                      tmp = 512;
17576                    }
17577                    }
17578                    {
17579#line 3588
17580                    __cil_tmp200 = (enum _POOL_TYPE )4;
17581#line 3588
17582                    __cil_tmp201 = (unsigned long )tmp;
17583#line 3588
17584                    tmp___0 = ExAllocatePoolWithTag(__cil_tmp200, __cil_tmp201, 1886350406UL);
17585#line 3588
17586                    bootSector = (struct _BOOT_SECTOR_INFO *)tmp___0;
17587                    }
17588#line 3589
17589                    if (! bootSector) {
17590#line 3590
17591                      return (-1073741670L);
17592                    } else {
17593
17594                    }
17595#line 3593
17596                    __cil_tmp202 = 0 + 4;
17597#line 3593
17598                    __cil_tmp203 = (unsigned int )(& offset) + __cil_tmp202;
17599#line 3593
17600                    mem_359 = (LONG *)__cil_tmp203;
17601#line 3593
17602                    *mem_359 = 0L;
17603#line 3593
17604                    __cil_tmp204 = & offset;
17605#line 3593
17606                    __cil_tmp205 = 0 + 4;
17607#line 3593
17608                    __cil_tmp206 = (unsigned int )(& offset) + __cil_tmp205;
17609#line 3593
17610                    mem_360 = (LONG *)__cil_tmp206;
17611#line 3593
17612                    __cil_tmp207 = *mem_360;
17613#line 3593
17614                    mem_361 = (ULONG *)__cil_tmp204;
17615#line 3593
17616                    *mem_361 = (unsigned long )__cil_tmp207;
17617                    {
17618#line 3594
17619                    __cil_tmp208 = (KUSER_SHARED_DATA * const  )4292804608U;
17620#line 3594
17621                    __cil_tmp209 = (unsigned int )__cil_tmp208;
17622#line 3594
17623                    __cil_tmp210 = __cil_tmp209 + 732;
17624#line 3594
17625                    mem_362 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp210;
17626#line 3594
17627                    __cil_tmp211 = *mem_362;
17628#line 3594
17629                    __cil_tmp212 = (int )__cil_tmp211;
17630#line 3594
17631                    if (__cil_tmp212 == 1) {
17632#line 3594
17633                      tmp___1 = 1024;
17634                    } else {
17635#line 3594
17636                      tmp___1 = 512;
17637                    }
17638                    }
17639                    {
17640#line 3594
17641                    __cil_tmp213 = (unsigned int )DisketteExtension;
17642#line 3594
17643                    __cil_tmp214 = __cil_tmp213 + 28;
17644#line 3594
17645                    mem_363 = (PDEVICE_OBJECT *)__cil_tmp214;
17646#line 3594
17647                    __cil_tmp215 = *mem_363;
17648#line 3594
17649                    __cil_tmp216 = (void *)bootSector;
17650#line 3594
17651                    __cil_tmp217 = (unsigned long )tmp___1;
17652#line 3594
17653                    __cil_tmp218 = (void *)0;
17654#line 3594
17655                    __cil_tmp219 = (struct _IO_STATUS_BLOCK *)__cil_tmp218;
17656#line 3594
17657                    irp = IoBuildAsynchronousFsdRequest(3UL, __cil_tmp215, __cil_tmp216,
17658                                                        __cil_tmp217, & offset, __cil_tmp219);
17659                    }
17660#line 3600
17661                    if (! irp) {
17662                      {
17663#line 3603
17664                      while (1) {
17665                        while_106_continue: /* CIL Label */ ;
17666                        goto while_106_break;
17667                      }
17668                      while_106_break: /* CIL Label */ ;
17669                      }
17670                      {
17671#line 3604
17672                      __cil_tmp220 = (void *)bootSector;
17673#line 3604
17674                      ExFreePool(__cil_tmp220);
17675                      }
17676#line 3605
17677                      return (-1073741670L);
17678                    } else {
17679
17680                    }
17681                    {
17682#line 3607
17683                    __cil_tmp221 = (unsigned int )irp;
17684#line 3607
17685                    __cil_tmp222 = __cil_tmp221 + 35;
17686#line 3607
17687                    __cil_tmp223 = (unsigned int )irp;
17688#line 3607
17689                    __cil_tmp224 = __cil_tmp223 + 35;
17690#line 3607
17691                    mem_364 = (CHAR *)__cil_tmp224;
17692#line 3607
17693                    __cil_tmp225 = *mem_364;
17694#line 3607
17695                    __cil_tmp226 = (int )__cil_tmp225;
17696#line 3607
17697                    __cil_tmp227 = __cil_tmp226 - 1;
17698#line 3607
17699                    mem_365 = (CHAR *)__cil_tmp222;
17700#line 3607
17701                    *mem_365 = (char )__cil_tmp227;
17702#line 3608
17703                    __cil_tmp228 = 24 + 8;
17704#line 3608
17705                    __cil_tmp229 = 0 + __cil_tmp228;
17706#line 3608
17707                    __cil_tmp230 = 64 + __cil_tmp229;
17708#line 3608
17709                    __cil_tmp231 = (unsigned int )irp;
17710#line 3608
17711                    __cil_tmp232 = __cil_tmp231 + __cil_tmp230;
17712#line 3608
17713                    __cil_tmp233 = 24 + 8;
17714#line 3608
17715                    __cil_tmp234 = 0 + __cil_tmp233;
17716#line 3608
17717                    __cil_tmp235 = 64 + __cil_tmp234;
17718#line 3608
17719                    __cil_tmp236 = (unsigned int )irp;
17720#line 3608
17721                    __cil_tmp237 = __cil_tmp236 + __cil_tmp235;
17722#line 3608
17723                    mem_366 = (struct _IO_STACK_LOCATION **)__cil_tmp237;
17724#line 3608
17725                    __cil_tmp238 = *mem_366;
17726#line 3608
17727                    mem_367 = (struct _IO_STACK_LOCATION **)__cil_tmp232;
17728#line 3608
17729                    *mem_367 = __cil_tmp238 - 1;
17730#line 3613
17731                    ntStatus = FlReadWrite(DisketteExtension, irp, (unsigned char)1);
17732                    }
17733                    {
17734#line 3618
17735                    while (1) {
17736                      while_107_continue: /* CIL Label */ ;
17737                      goto while_107_break;
17738                    }
17739                    while_107_break: /* CIL Label */ ;
17740                    }
17741                    {
17742#line 3620
17743                    __cil_tmp239 = (unsigned int )irp;
17744#line 3620
17745                    __cil_tmp240 = __cil_tmp239 + 4;
17746#line 3620
17747                    mem_368 = (PMDL *)__cil_tmp240;
17748#line 3620
17749                    __cil_tmp241 = *mem_368;
17750#line 3620
17751                    MmUnlockPages(__cil_tmp241);
17752#line 3621
17753                    __cil_tmp242 = (unsigned int )irp;
17754#line 3621
17755                    __cil_tmp243 = __cil_tmp242 + 4;
17756#line 3621
17757                    mem_369 = (PMDL *)__cil_tmp243;
17758#line 3621
17759                    __cil_tmp244 = *mem_369;
17760#line 3621
17761                    IoFreeMdl(__cil_tmp244);
17762#line 3622
17763                    IoFreeIrp(irp);
17764#line 3623
17765                    __cil_tmp245 = (void *)bootSector;
17766#line 3623
17767                    ExFreePool(__cil_tmp245);
17768                    }
17769                    {
17770#line 3625
17771                    __cil_tmp246 = ntStatus >= 0L;
17772#line 3625
17773                    if (! __cil_tmp246) {
17774                      {
17775#line 3642
17776                      while (1) {
17777                        while_108_continue: /* CIL Label */ ;
17778                        goto while_108_break;
17779                      }
17780                      while_108_break: /* CIL Label */ ;
17781                      }
17782#line 3644
17783                      __cil_tmp247 = (unsigned int )DisketteExtension;
17784#line 3644
17785                      __cil_tmp248 = __cil_tmp247 + 216;
17786#line 3644
17787                      __cil_tmp249 = (unsigned int )DisketteExtension;
17788#line 3644
17789                      __cil_tmp250 = __cil_tmp249 + 216;
17790#line 3644
17791                      mem_370 = (DRIVE_MEDIA_TYPE *)__cil_tmp250;
17792#line 3644
17793                      __cil_tmp251 = *mem_370;
17794#line 3644
17795                      __cil_tmp252 = (int )__cil_tmp251;
17796#line 3644
17797                      __cil_tmp253 = __cil_tmp252 - 1;
17798#line 3644
17799                      mem_371 = (DRIVE_MEDIA_TYPE *)__cil_tmp248;
17800#line 3644
17801                      *mem_371 = (enum _DRIVE_MEDIA_TYPE )__cil_tmp253;
17802#line 3646
17803                      __cil_tmp254 = (unsigned int )DisketteExtension;
17804#line 3646
17805                      __cil_tmp255 = __cil_tmp254 + 308;
17806#line 3646
17807                      __cil_tmp256 = (unsigned int )DisketteExtension;
17808#line 3646
17809                      __cil_tmp257 = __cil_tmp256 + 216;
17810#line 3646
17811                      mem_372 = (DRIVE_MEDIA_TYPE *)__cil_tmp257;
17812#line 3646
17813                      __cil_tmp258 = *mem_372;
17814#line 3646
17815                      __cil_tmp259 = (unsigned int )__cil_tmp258;
17816#line 3646
17817                      __cil_tmp260 = DriveMediaConstants + __cil_tmp259;
17818#line 3646
17819                      mem_373 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp255;
17820#line 3646
17821                      *mem_373 = *__cil_tmp260;
17822#line 3649
17823                      if (ntStatus != -1073741661L) {
17824#line 3651
17825                        ntStatus = -1073741804L;
17826                      } else {
17827
17828                      }
17829                      {
17830#line 3660
17831                      __cil_tmp261 = (unsigned int )DisketteExtension;
17832#line 3660
17833                      __cil_tmp262 = __cil_tmp261 + 174;
17834#line 3660
17835                      mem_374 = (UCHAR *)__cil_tmp262;
17836#line 3660
17837                      __cil_tmp263 = *mem_374;
17838#line 3660
17839                      __cil_tmp264 = (int )__cil_tmp263;
17840#line 3660
17841                      __cil_tmp265 = DriveMediaLimits + __cil_tmp264;
17842#line 3660
17843                      __cil_tmp266 = (unsigned int )__cil_tmp265;
17844#line 3660
17845                      __cil_tmp267 = __cil_tmp266 + 32;
17846#line 3660
17847                      mem_375 = (DRIVE_MEDIA_TYPE *)__cil_tmp267;
17848#line 3660
17849                      __cil_tmp268 = *mem_375;
17850#line 3660
17851                      __cil_tmp269 = (char )__cil_tmp268;
17852#line 3660
17853                      __cil_tmp270 = (int )__cil_tmp269;
17854#line 3660
17855                      __cil_tmp271 = (unsigned int )DisketteExtension;
17856#line 3660
17857                      __cil_tmp272 = __cil_tmp271 + 216;
17858#line 3660
17859                      mem_376 = (DRIVE_MEDIA_TYPE *)__cil_tmp272;
17860#line 3660
17861                      __cil_tmp273 = *mem_376;
17862#line 3660
17863                      __cil_tmp274 = (char )__cil_tmp273;
17864#line 3660
17865                      __cil_tmp275 = (int )__cil_tmp274;
17866#line 3660
17867                      if (__cil_tmp275 < __cil_tmp270) {
17868#line 3664
17869                        __cil_tmp276 = (unsigned int )DisketteExtension;
17870#line 3664
17871                        __cil_tmp277 = __cil_tmp276 + 184;
17872#line 3664
17873                        mem_377 = (MEDIA_TYPE *)__cil_tmp277;
17874#line 3664
17875                        *mem_377 = (enum _MEDIA_TYPE )0;
17876#line 3665
17877                        mediaTypesExhausted = (unsigned char)1;
17878                        {
17879#line 3670
17880                        while (1) {
17881                          while_109_continue: /* CIL Label */ ;
17882                          goto while_109_break;
17883                        }
17884                        while_109_break: /* CIL Label */ ;
17885                        }
17886                      } else {
17887
17888                      }
17889                      }
17890                    } else {
17891
17892                    }
17893                    }
17894                  } else {
17895
17896                  }
17897                  }
17898                }
17899                }
17900              }
17901              }
17902            }
17903            }
17904          }
17905          }
17906        }
17907        }
17908      }
17909      }
17910      {
17911#line 3450
17912      __cil_tmp278 = ntStatus >= 0L;
17913#line 3450
17914      if (! __cil_tmp278) {
17915        {
17916#line 3450
17917        __cil_tmp279 = ! mediaTypesExhausted;
17918#line 3450
17919        if (! __cil_tmp279) {
17920          goto while_101_break;
17921        } else {
17922
17923        }
17924        }
17925      } else {
17926        goto while_101_break;
17927      }
17928      }
17929    }
17930    while_101_break: /* CIL Label */ ;
17931    }
17932#line 3680
17933    if (ntStatus >= 0L) {
17934      {
17935#line 3689
17936      while (1) {
17937        while_110_continue: /* CIL Label */ ;
17938        goto while_110_break;
17939      }
17940      while_110_break: /* CIL Label */ ;
17941      }
17942      goto while_99_break;
17943    } else {
17944
17945    }
17946#line 3418
17947    retries = retries + 1UL;
17948  }
17949  while_99_break: /* CIL Label */ ;
17950  }
17951  {
17952#line 3694
17953  __cil_tmp280 = ntStatus >= 0L;
17954#line 3694
17955  if (! __cil_tmp280) {
17956    goto _L___1;
17957  } else {
17958#line 3694
17959    if (mediaTypesExhausted) {
17960      _L___1: 
17961      {
17962#line 3701
17963      while (1) {
17964        while_111_continue: /* CIL Label */ ;
17965        goto while_111_break;
17966      }
17967      while_111_break: /* CIL Label */ ;
17968      }
17969#line 3702
17970      return (ntStatus);
17971    } else {
17972
17973    }
17974  }
17975  }
17976#line 3705
17977  __cil_tmp281 = (unsigned int )DisketteExtension;
17978#line 3705
17979  __cil_tmp282 = __cil_tmp281 + 184;
17980#line 3705
17981  mem_378 = (MEDIA_TYPE *)__cil_tmp282;
17982#line 3705
17983  mem_379 = (MEDIA_TYPE *)driveMediaConstants;
17984#line 3705
17985  *mem_378 = *mem_379;
17986#line 3706
17987  __cil_tmp283 = (unsigned int )DisketteExtension;
17988#line 3706
17989  __cil_tmp284 = __cil_tmp283 + 176;
17990#line 3706
17991  __cil_tmp285 = (unsigned int )driveMediaConstants;
17992#line 3706
17993  __cil_tmp286 = __cil_tmp285 + 36;
17994#line 3706
17995  mem_380 = (USHORT *)__cil_tmp286;
17996#line 3706
17997  __cil_tmp287 = *mem_380;
17998#line 3706
17999  mem_381 = (ULONG *)__cil_tmp284;
18000#line 3706
18001  *mem_381 = (unsigned long )__cil_tmp287;
18002#line 3708
18003  __cil_tmp288 = (unsigned int )DisketteExtension;
18004#line 3708
18005  __cil_tmp289 = __cil_tmp288 + 180;
18006#line 3708
18007  __cil_tmp290 = (unsigned int )driveMediaConstants;
18008#line 3708
18009  __cil_tmp291 = __cil_tmp290 + 51;
18010#line 3708
18011  mem_382 = (UCHAR *)__cil_tmp291;
18012#line 3708
18013  __cil_tmp292 = *mem_382;
18014#line 3708
18015  __cil_tmp293 = (int )__cil_tmp292;
18016#line 3708
18017  __cil_tmp294 = (unsigned int )driveMediaConstants;
18018#line 3708
18019  __cil_tmp295 = __cil_tmp294 + 48;
18020#line 3708
18021  mem_383 = (UCHAR *)__cil_tmp295;
18022#line 3708
18023  __cil_tmp296 = *mem_383;
18024#line 3708
18025  __cil_tmp297 = (int )__cil_tmp296;
18026#line 3708
18027  __cil_tmp298 = 1 + __cil_tmp297;
18028#line 3708
18029  __cil_tmp299 = (unsigned int )driveMediaConstants;
18030#line 3708
18031  __cil_tmp300 = __cil_tmp299 + 38;
18032#line 3708
18033  mem_384 = (UCHAR *)__cil_tmp300;
18034#line 3708
18035  __cil_tmp301 = *mem_384;
18036#line 3708
18037  __cil_tmp302 = (int )__cil_tmp301;
18038#line 3708
18039  __cil_tmp303 = (unsigned int )driveMediaConstants;
18040#line 3708
18041  __cil_tmp304 = __cil_tmp303 + 36;
18042#line 3708
18043  mem_385 = (USHORT *)__cil_tmp304;
18044#line 3708
18045  __cil_tmp305 = *mem_385;
18046#line 3708
18047  __cil_tmp306 = (int )__cil_tmp305;
18048#line 3708
18049  __cil_tmp307 = __cil_tmp306 * __cil_tmp302;
18050#line 3708
18051  __cil_tmp308 = __cil_tmp307 * __cil_tmp298;
18052#line 3708
18053  __cil_tmp309 = __cil_tmp308 * __cil_tmp293;
18054#line 3708
18055  mem_386 = (ULONG *)__cil_tmp289;
18056#line 3708
18057  *mem_386 = (unsigned long )__cil_tmp309;
18058  {
18059#line 3720
18060  while (1) {
18061    while_112_continue: /* CIL Label */ ;
18062    goto while_112_break;
18063  }
18064  while_112_break: /* CIL Label */ ;
18065  }
18066  {
18067#line 3725
18068  __cil_tmp310 = (unsigned int )DisketteExtension;
18069#line 3725
18070  __cil_tmp311 = __cil_tmp310 + 308;
18071#line 3725
18072  __cil_tmp312 = (unsigned int )DisketteExtension;
18073#line 3725
18074  __cil_tmp313 = __cil_tmp312 + 216;
18075#line 3725
18076  mem_387 = (DRIVE_MEDIA_TYPE *)__cil_tmp313;
18077#line 3725
18078  __cil_tmp314 = *mem_387;
18079#line 3725
18080  __cil_tmp315 = (unsigned int )__cil_tmp314;
18081#line 3725
18082  __cil_tmp316 = DriveMediaConstants + __cil_tmp315;
18083#line 3725
18084  mem_388 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp311;
18085#line 3725
18086  *mem_388 = *__cil_tmp316;
18087#line 3731
18088  FlCheckBootSector(DisketteExtension);
18089  }
18090#line 3733
18091  return (ntStatus);
18092}
18093}
18094#line 3736 "floppy.c"
18095void FlAllocateIoBuffer(PDISKETTE_EXTENSION DisketteExtension , ULONG BufferSize ) 
18096{ BOOLEAN allocateContiguous ;
18097  LARGE_INTEGER maxDmaAddress ;
18098  PVOID tmp ;
18099  PVOID tmp___0 ;
18100  unsigned int __cil_tmp7 ;
18101  unsigned int __cil_tmp8 ;
18102  unsigned int __cil_tmp9 ;
18103  unsigned int __cil_tmp10 ;
18104  ULONG __cil_tmp11 ;
18105  unsigned int __cil_tmp12 ;
18106  unsigned int __cil_tmp13 ;
18107  ULONG __cil_tmp14 ;
18108  unsigned int __cil_tmp15 ;
18109  unsigned int __cil_tmp16 ;
18110  enum _POOL_TYPE __cil_tmp17 ;
18111  unsigned int __cil_tmp18 ;
18112  unsigned int __cil_tmp19 ;
18113  unsigned int __cil_tmp20 ;
18114  unsigned int __cil_tmp21 ;
18115  PUCHAR __cil_tmp22 ;
18116  unsigned int __cil_tmp23 ;
18117  unsigned int __cil_tmp24 ;
18118  unsigned int __cil_tmp25 ;
18119  unsigned int __cil_tmp26 ;
18120  PUCHAR __cil_tmp27 ;
18121  void *__cil_tmp28 ;
18122  void *__cil_tmp29 ;
18123  struct _IRP *__cil_tmp30 ;
18124  unsigned int __cil_tmp31 ;
18125  unsigned int __cil_tmp32 ;
18126  PMDL __cil_tmp33 ;
18127  unsigned int __cil_tmp34 ;
18128  unsigned int __cil_tmp35 ;
18129  PUCHAR __cil_tmp36 ;
18130  void *__cil_tmp37 ;
18131  unsigned int __cil_tmp38 ;
18132  unsigned int __cil_tmp39 ;
18133  PUCHAR __cil_tmp40 ;
18134  void *__cil_tmp41 ;
18135  unsigned int __cil_tmp42 ;
18136  unsigned int __cil_tmp43 ;
18137  void *__cil_tmp44 ;
18138  unsigned int __cil_tmp45 ;
18139  unsigned int __cil_tmp46 ;
18140  PMDL __cil_tmp47 ;
18141  enum _LOCK_OPERATION __cil_tmp48 ;
18142  unsigned int __cil_tmp49 ;
18143  unsigned int __cil_tmp50 ;
18144  PUCHAR __cil_tmp51 ;
18145  void *__cil_tmp52 ;
18146  unsigned int __cil_tmp53 ;
18147  unsigned int __cil_tmp54 ;
18148  PUCHAR __cil_tmp55 ;
18149  void *__cil_tmp56 ;
18150  unsigned int __cil_tmp57 ;
18151  unsigned int __cil_tmp58 ;
18152  void *__cil_tmp59 ;
18153  unsigned int __cil_tmp60 ;
18154  unsigned int __cil_tmp61 ;
18155  PUCHAR *mem_62 ;
18156  ULONG *mem_63 ;
18157  ULONG *mem_64 ;
18158  PUCHAR *mem_65 ;
18159  PUCHAR *mem_66 ;
18160  PUCHAR *mem_67 ;
18161  PUCHAR *mem_68 ;
18162  PMDL *mem_69 ;
18163  PMDL *mem_70 ;
18164  PUCHAR *mem_71 ;
18165  PUCHAR *mem_72 ;
18166  PUCHAR *mem_73 ;
18167  PMDL *mem_74 ;
18168  PUCHAR *mem_75 ;
18169  PUCHAR *mem_76 ;
18170  PUCHAR *mem_77 ;
18171  ULONG *mem_78 ;
18172
18173  {
18174  {
18175#line 3764
18176  __cil_tmp7 = (unsigned int )DisketteExtension;
18177#line 3764
18178  __cil_tmp8 = __cil_tmp7 + 124;
18179  {
18180#line 3764
18181  mem_62 = (PUCHAR *)__cil_tmp8;
18182#line 3764
18183  if (*mem_62) {
18184    {
18185#line 3765
18186    __cil_tmp9 = (unsigned int )DisketteExtension;
18187#line 3765
18188    __cil_tmp10 = __cil_tmp9 + 132;
18189#line 3765
18190    mem_63 = (ULONG *)__cil_tmp10;
18191#line 3765
18192    __cil_tmp11 = *mem_63;
18193#line 3765
18194    if (__cil_tmp11 >= BufferSize) {
18195
18196    } else {
18197
18198    }
18199    }
18200    {
18201#line 3768
18202    FlFreeIoBuffer(DisketteExtension);
18203    }
18204  } else {
18205
18206  }
18207  }
18208  }
18209  {
18210#line 3771
18211  __cil_tmp12 = (unsigned int )DisketteExtension;
18212#line 3771
18213  __cil_tmp13 = __cil_tmp12 + 108;
18214#line 3771
18215  mem_64 = (ULONG *)__cil_tmp13;
18216#line 3771
18217  __cil_tmp14 = *mem_64;
18218#line 3771
18219  if (BufferSize > __cil_tmp14) {
18220#line 3772
18221    allocateContiguous = (unsigned char)1;
18222  } else {
18223#line 3774
18224    allocateContiguous = (unsigned char)0;
18225  }
18226  }
18227#line 3777
18228  if (allocateContiguous) {
18229    {
18230#line 3778
18231    maxDmaAddress.QuadPart = 16777215LL;
18232#line 3779
18233    tmp = MmAllocateContiguousMemory(BufferSize, maxDmaAddress);
18234#line 3779
18235    __cil_tmp15 = (unsigned int )DisketteExtension;
18236#line 3779
18237    __cil_tmp16 = __cil_tmp15 + 124;
18238#line 3779
18239    mem_65 = (PUCHAR *)__cil_tmp16;
18240#line 3779
18241    *mem_65 = (UCHAR *)tmp;
18242    }
18243  } else {
18244    {
18245#line 3782
18246    __cil_tmp17 = (enum _POOL_TYPE )4;
18247#line 3782
18248    tmp___0 = ExAllocatePoolWithTag(__cil_tmp17, BufferSize, 1886350406UL);
18249#line 3782
18250    __cil_tmp18 = (unsigned int )DisketteExtension;
18251#line 3782
18252    __cil_tmp19 = __cil_tmp18 + 124;
18253#line 3782
18254    mem_66 = (PUCHAR *)__cil_tmp19;
18255#line 3782
18256    *mem_66 = (UCHAR *)tmp___0;
18257    }
18258  }
18259  {
18260#line 3786
18261  __cil_tmp20 = (unsigned int )DisketteExtension;
18262#line 3786
18263  __cil_tmp21 = __cil_tmp20 + 124;
18264#line 3786
18265  mem_67 = (PUCHAR *)__cil_tmp21;
18266#line 3786
18267  __cil_tmp22 = *mem_67;
18268#line 3786
18269  if (! __cil_tmp22) {
18270
18271  } else {
18272
18273  }
18274  }
18275  {
18276#line 3790
18277  __cil_tmp23 = (unsigned int )DisketteExtension;
18278#line 3790
18279  __cil_tmp24 = __cil_tmp23 + 128;
18280#line 3790
18281  __cil_tmp25 = (unsigned int )DisketteExtension;
18282#line 3790
18283  __cil_tmp26 = __cil_tmp25 + 124;
18284#line 3790
18285  mem_68 = (PUCHAR *)__cil_tmp26;
18286#line 3790
18287  __cil_tmp27 = *mem_68;
18288#line 3790
18289  __cil_tmp28 = (void *)__cil_tmp27;
18290#line 3790
18291  __cil_tmp29 = (void *)0;
18292#line 3790
18293  __cil_tmp30 = (struct _IRP *)__cil_tmp29;
18294#line 3790
18295  mem_69 = (PMDL *)__cil_tmp24;
18296#line 3790
18297  *mem_69 = IoAllocateMdl(__cil_tmp28, BufferSize, (unsigned char)0, (unsigned char)0,
18298                          __cil_tmp30);
18299  }
18300  {
18301#line 3792
18302  __cil_tmp31 = (unsigned int )DisketteExtension;
18303#line 3792
18304  __cil_tmp32 = __cil_tmp31 + 128;
18305#line 3792
18306  mem_70 = (PMDL *)__cil_tmp32;
18307#line 3792
18308  __cil_tmp33 = *mem_70;
18309#line 3792
18310  if (! __cil_tmp33) {
18311#line 3793
18312    if (allocateContiguous) {
18313      {
18314#line 3794
18315      __cil_tmp34 = (unsigned int )DisketteExtension;
18316#line 3794
18317      __cil_tmp35 = __cil_tmp34 + 124;
18318#line 3794
18319      mem_71 = (PUCHAR *)__cil_tmp35;
18320#line 3794
18321      __cil_tmp36 = *mem_71;
18322#line 3794
18323      __cil_tmp37 = (void *)__cil_tmp36;
18324#line 3794
18325      MmFreeContiguousMemory(__cil_tmp37);
18326      }
18327    } else {
18328      {
18329#line 3796
18330      __cil_tmp38 = (unsigned int )DisketteExtension;
18331#line 3796
18332      __cil_tmp39 = __cil_tmp38 + 124;
18333#line 3796
18334      mem_72 = (PUCHAR *)__cil_tmp39;
18335#line 3796
18336      __cil_tmp40 = *mem_72;
18337#line 3796
18338      __cil_tmp41 = (void *)__cil_tmp40;
18339#line 3796
18340      ExFreePool(__cil_tmp41);
18341      }
18342    }
18343#line 3798
18344    __cil_tmp42 = (unsigned int )DisketteExtension;
18345#line 3798
18346    __cil_tmp43 = __cil_tmp42 + 124;
18347#line 3798
18348    __cil_tmp44 = (void *)0;
18349#line 3798
18350    mem_73 = (PUCHAR *)__cil_tmp43;
18351#line 3798
18352    *mem_73 = (UCHAR *)__cil_tmp44;
18353  } else {
18354
18355  }
18356  }
18357  {
18358#line 3803
18359  __cil_tmp45 = (unsigned int )DisketteExtension;
18360#line 3803
18361  __cil_tmp46 = __cil_tmp45 + 128;
18362#line 3803
18363  mem_74 = (PMDL *)__cil_tmp46;
18364#line 3803
18365  __cil_tmp47 = *mem_74;
18366#line 3803
18367  __cil_tmp48 = (enum _LOCK_OPERATION )2;
18368#line 3803
18369  MmProbeAndLockPages(__cil_tmp47, (char)0, __cil_tmp48);
18370  }
18371  {
18372#line 3809
18373  while (1) {
18374    while_113_continue: /* CIL Label */ ;
18375    goto while_113_break;
18376  }
18377  while_113_break: /* CIL Label */ ;
18378  }
18379#line 3810
18380  if (allocateContiguous) {
18381    {
18382#line 3811
18383    __cil_tmp49 = (unsigned int )DisketteExtension;
18384#line 3811
18385    __cil_tmp50 = __cil_tmp49 + 124;
18386#line 3811
18387    mem_75 = (PUCHAR *)__cil_tmp50;
18388#line 3811
18389    __cil_tmp51 = *mem_75;
18390#line 3811
18391    __cil_tmp52 = (void *)__cil_tmp51;
18392#line 3811
18393    MmFreeContiguousMemory(__cil_tmp52);
18394    }
18395  } else {
18396    {
18397#line 3813
18398    __cil_tmp53 = (unsigned int )DisketteExtension;
18399#line 3813
18400    __cil_tmp54 = __cil_tmp53 + 124;
18401#line 3813
18402    mem_76 = (PUCHAR *)__cil_tmp54;
18403#line 3813
18404    __cil_tmp55 = *mem_76;
18405#line 3813
18406    __cil_tmp56 = (void *)__cil_tmp55;
18407#line 3813
18408    ExFreePool(__cil_tmp56);
18409    }
18410  }
18411#line 3815
18412  __cil_tmp57 = (unsigned int )DisketteExtension;
18413#line 3815
18414  __cil_tmp58 = __cil_tmp57 + 124;
18415#line 3815
18416  __cil_tmp59 = (void *)0;
18417#line 3815
18418  mem_77 = (PUCHAR *)__cil_tmp58;
18419#line 3815
18420  *mem_77 = (UCHAR *)__cil_tmp59;
18421#line 3819
18422  __cil_tmp60 = (unsigned int )DisketteExtension;
18423#line 3819
18424  __cil_tmp61 = __cil_tmp60 + 132;
18425#line 3819
18426  mem_78 = (ULONG *)__cil_tmp61;
18427#line 3819
18428  *mem_78 = BufferSize;
18429#line 3821
18430  return;
18431}
18432}
18433#line 3822 "floppy.c"
18434void FlFreeIoBuffer(PDISKETTE_EXTENSION DisketteExtension ) 
18435{ BOOLEAN contiguousBuffer ;
18436  unsigned int __cil_tmp3 ;
18437  unsigned int __cil_tmp4 ;
18438  PUCHAR __cil_tmp5 ;
18439  unsigned int __cil_tmp6 ;
18440  unsigned int __cil_tmp7 ;
18441  ULONG __cil_tmp8 ;
18442  unsigned int __cil_tmp9 ;
18443  unsigned int __cil_tmp10 ;
18444  ULONG __cil_tmp11 ;
18445  unsigned int __cil_tmp12 ;
18446  unsigned int __cil_tmp13 ;
18447  unsigned int __cil_tmp14 ;
18448  unsigned int __cil_tmp15 ;
18449  PMDL __cil_tmp16 ;
18450  unsigned int __cil_tmp17 ;
18451  unsigned int __cil_tmp18 ;
18452  PMDL __cil_tmp19 ;
18453  unsigned int __cil_tmp20 ;
18454  unsigned int __cil_tmp21 ;
18455  void *__cil_tmp22 ;
18456  unsigned int __cil_tmp23 ;
18457  unsigned int __cil_tmp24 ;
18458  PUCHAR __cil_tmp25 ;
18459  void *__cil_tmp26 ;
18460  unsigned int __cil_tmp27 ;
18461  unsigned int __cil_tmp28 ;
18462  PUCHAR __cil_tmp29 ;
18463  void *__cil_tmp30 ;
18464  unsigned int __cil_tmp31 ;
18465  unsigned int __cil_tmp32 ;
18466  void *__cil_tmp33 ;
18467  PUCHAR *mem_34 ;
18468  ULONG *mem_35 ;
18469  ULONG *mem_36 ;
18470  ULONG *mem_37 ;
18471  PMDL *mem_38 ;
18472  PMDL *mem_39 ;
18473  PMDL *mem_40 ;
18474  PUCHAR *mem_41 ;
18475  PUCHAR *mem_42 ;
18476  PUCHAR *mem_43 ;
18477
18478  {
18479  {
18480#line 3846
18481  __cil_tmp3 = (unsigned int )DisketteExtension;
18482#line 3846
18483  __cil_tmp4 = __cil_tmp3 + 124;
18484#line 3846
18485  mem_34 = (PUCHAR *)__cil_tmp4;
18486#line 3846
18487  __cil_tmp5 = *mem_34;
18488#line 3846
18489  if (! __cil_tmp5) {
18490
18491  } else {
18492
18493  }
18494  }
18495  {
18496#line 3850
18497  __cil_tmp6 = (unsigned int )DisketteExtension;
18498#line 3850
18499  __cil_tmp7 = __cil_tmp6 + 108;
18500#line 3850
18501  mem_35 = (ULONG *)__cil_tmp7;
18502#line 3850
18503  __cil_tmp8 = *mem_35;
18504#line 3850
18505  __cil_tmp9 = (unsigned int )DisketteExtension;
18506#line 3850
18507  __cil_tmp10 = __cil_tmp9 + 132;
18508#line 3850
18509  mem_36 = (ULONG *)__cil_tmp10;
18510#line 3850
18511  __cil_tmp11 = *mem_36;
18512#line 3850
18513  if (__cil_tmp11 > __cil_tmp8) {
18514#line 3853
18515    contiguousBuffer = (unsigned char)1;
18516  } else {
18517#line 3855
18518    contiguousBuffer = (unsigned char)0;
18519  }
18520  }
18521  {
18522#line 3858
18523  __cil_tmp12 = (unsigned int )DisketteExtension;
18524#line 3858
18525  __cil_tmp13 = __cil_tmp12 + 132;
18526#line 3858
18527  mem_37 = (ULONG *)__cil_tmp13;
18528#line 3858
18529  *mem_37 = 0UL;
18530#line 3860
18531  __cil_tmp14 = (unsigned int )DisketteExtension;
18532#line 3860
18533  __cil_tmp15 = __cil_tmp14 + 128;
18534#line 3860
18535  mem_38 = (PMDL *)__cil_tmp15;
18536#line 3860
18537  __cil_tmp16 = *mem_38;
18538#line 3860
18539  MmUnlockPages(__cil_tmp16);
18540#line 3861
18541  __cil_tmp17 = (unsigned int )DisketteExtension;
18542#line 3861
18543  __cil_tmp18 = __cil_tmp17 + 128;
18544#line 3861
18545  mem_39 = (PMDL *)__cil_tmp18;
18546#line 3861
18547  __cil_tmp19 = *mem_39;
18548#line 3861
18549  IoFreeMdl(__cil_tmp19);
18550#line 3862
18551  __cil_tmp20 = (unsigned int )DisketteExtension;
18552#line 3862
18553  __cil_tmp21 = __cil_tmp20 + 128;
18554#line 3862
18555  __cil_tmp22 = (void *)0;
18556#line 3862
18557  mem_40 = (PMDL *)__cil_tmp21;
18558#line 3862
18559  *mem_40 = (struct _MDL *)__cil_tmp22;
18560  }
18561#line 3863
18562  if (contiguousBuffer) {
18563    {
18564#line 3864
18565    __cil_tmp23 = (unsigned int )DisketteExtension;
18566#line 3864
18567    __cil_tmp24 = __cil_tmp23 + 124;
18568#line 3864
18569    mem_41 = (PUCHAR *)__cil_tmp24;
18570#line 3864
18571    __cil_tmp25 = *mem_41;
18572#line 3864
18573    __cil_tmp26 = (void *)__cil_tmp25;
18574#line 3864
18575    MmFreeContiguousMemory(__cil_tmp26);
18576    }
18577  } else {
18578    {
18579#line 3866
18580    __cil_tmp27 = (unsigned int )DisketteExtension;
18581#line 3866
18582    __cil_tmp28 = __cil_tmp27 + 124;
18583#line 3866
18584    mem_42 = (PUCHAR *)__cil_tmp28;
18585#line 3866
18586    __cil_tmp29 = *mem_42;
18587#line 3866
18588    __cil_tmp30 = (void *)__cil_tmp29;
18589#line 3866
18590    ExFreePool(__cil_tmp30);
18591    }
18592  }
18593#line 3868
18594  __cil_tmp31 = (unsigned int )DisketteExtension;
18595#line 3868
18596  __cil_tmp32 = __cil_tmp31 + 124;
18597#line 3868
18598  __cil_tmp33 = (void *)0;
18599#line 3868
18600  mem_43 = (PUCHAR *)__cil_tmp32;
18601#line 3868
18602  *mem_43 = (UCHAR *)__cil_tmp33;
18603#line 3871
18604  return;
18605}
18606}
18607#line 3871 "floppy.c"
18608void FloppyThread(PVOID Context ) 
18609{ PIRP irp ;
18610  PIO_STACK_LOCATION irpSp ;
18611  PLIST_ENTRY request ;
18612  PDISKETTE_EXTENSION disketteExtension ;
18613  NTSTATUS ntStatus ;
18614  NTSTATUS waitStatus ;
18615  LARGE_INTEGER queueWait ;
18616  LARGE_INTEGER acquireWait ;
18617  PKTHREAD tmp ;
18618  PDISK_GEOMETRY outputBuffer ;
18619  PSENSE_DEVISE_STATUS_PTOS outputBuffer___0 ;
18620  LARGE_INTEGER *__cil_tmp13 ;
18621  LARGE_INTEGER *__cil_tmp14 ;
18622  unsigned int __cil_tmp15 ;
18623  unsigned int __cil_tmp16 ;
18624  KSEMAPHORE *__cil_tmp17 ;
18625  void *__cil_tmp18 ;
18626  enum _KWAIT_REASON __cil_tmp19 ;
18627  KUSER_SHARED_DATA *__cil_tmp20 ;
18628  unsigned int __cil_tmp21 ;
18629  unsigned int __cil_tmp22 ;
18630  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp23 ;
18631  int __cil_tmp24 ;
18632  int __cil_tmp25 ;
18633  unsigned int __cil_tmp26 ;
18634  unsigned int __cil_tmp27 ;
18635  unsigned int __cil_tmp28 ;
18636  unsigned int __cil_tmp29 ;
18637  PDEVICE_OBJECT __cil_tmp30 ;
18638  int __cil_tmp31 ;
18639  int __cil_tmp32 ;
18640  int __cil_tmp33 ;
18641  int __cil_tmp34 ;
18642  unsigned long __cil_tmp35 ;
18643  void *__cil_tmp36 ;
18644  unsigned int __cil_tmp37 ;
18645  unsigned int __cil_tmp38 ;
18646  PDEVICE_OBJECT __cil_tmp39 ;
18647  int __cil_tmp40 ;
18648  int __cil_tmp41 ;
18649  int __cil_tmp42 ;
18650  int __cil_tmp43 ;
18651  unsigned long __cil_tmp44 ;
18652  unsigned int __cil_tmp45 ;
18653  unsigned int __cil_tmp46 ;
18654  PDEVICE_OBJECT __cil_tmp47 ;
18655  void *__cil_tmp48 ;
18656  unsigned int __cil_tmp49 ;
18657  unsigned int __cil_tmp50 ;
18658  unsigned int __cil_tmp51 ;
18659  unsigned int __cil_tmp52 ;
18660  FAST_MUTEX *__cil_tmp53 ;
18661  unsigned int __cil_tmp54 ;
18662  unsigned int __cil_tmp55 ;
18663  LONG __cil_tmp56 ;
18664  unsigned int __cil_tmp57 ;
18665  unsigned int __cil_tmp58 ;
18666  void *__cil_tmp59 ;
18667  unsigned int __cil_tmp60 ;
18668  unsigned int __cil_tmp61 ;
18669  unsigned int __cil_tmp62 ;
18670  PKTHREAD __cil_tmp63 ;
18671  unsigned int __cil_tmp64 ;
18672  unsigned int __cil_tmp65 ;
18673  unsigned int __cil_tmp66 ;
18674  PKTHREAD __cil_tmp67 ;
18675  void *__cil_tmp68 ;
18676  unsigned int __cil_tmp69 ;
18677  unsigned int __cil_tmp70 ;
18678  void *__cil_tmp71 ;
18679  unsigned int __cil_tmp72 ;
18680  unsigned int __cil_tmp73 ;
18681  FAST_MUTEX *__cil_tmp74 ;
18682  KUSER_SHARED_DATA *__cil_tmp75 ;
18683  unsigned int __cil_tmp76 ;
18684  unsigned int __cil_tmp77 ;
18685  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp78 ;
18686  int __cil_tmp79 ;
18687  unsigned int __cil_tmp80 ;
18688  unsigned int __cil_tmp81 ;
18689  unsigned int __cil_tmp82 ;
18690  unsigned int __cil_tmp83 ;
18691  PDEVICE_OBJECT __cil_tmp84 ;
18692  int __cil_tmp85 ;
18693  int __cil_tmp86 ;
18694  int __cil_tmp87 ;
18695  int __cil_tmp88 ;
18696  unsigned long __cil_tmp89 ;
18697  void *__cil_tmp90 ;
18698  unsigned int __cil_tmp91 ;
18699  unsigned int __cil_tmp92 ;
18700  PDEVICE_OBJECT __cil_tmp93 ;
18701  int __cil_tmp94 ;
18702  int __cil_tmp95 ;
18703  int __cil_tmp96 ;
18704  int __cil_tmp97 ;
18705  unsigned long __cil_tmp98 ;
18706  void *__cil_tmp99 ;
18707  unsigned int __cil_tmp100 ;
18708  unsigned int __cil_tmp101 ;
18709  PDEVICE_OBJECT __cil_tmp102 ;
18710  int __cil_tmp103 ;
18711  int __cil_tmp104 ;
18712  int __cil_tmp105 ;
18713  int __cil_tmp106 ;
18714  unsigned long __cil_tmp107 ;
18715  unsigned int __cil_tmp108 ;
18716  unsigned int __cil_tmp109 ;
18717  PDEVICE_OBJECT __cil_tmp110 ;
18718  void *__cil_tmp111 ;
18719  unsigned int __cil_tmp112 ;
18720  unsigned int __cil_tmp113 ;
18721  unsigned int __cil_tmp114 ;
18722  unsigned int __cil_tmp115 ;
18723  void *__cil_tmp116 ;
18724  unsigned int __cil_tmp117 ;
18725  unsigned int __cil_tmp118 ;
18726  FAST_MUTEX *__cil_tmp119 ;
18727  unsigned int __cil_tmp120 ;
18728  unsigned int __cil_tmp121 ;
18729  LIST_ENTRY *__cil_tmp122 ;
18730  unsigned int __cil_tmp123 ;
18731  unsigned int __cil_tmp124 ;
18732  KSPIN_LOCK *__cil_tmp125 ;
18733  unsigned int __cil_tmp126 ;
18734  unsigned int __cil_tmp127 ;
18735  FAST_MUTEX *__cil_tmp128 ;
18736  unsigned int __cil_tmp129 ;
18737  unsigned int __cil_tmp130 ;
18738  unsigned int __cil_tmp131 ;
18739  unsigned int __cil_tmp132 ;
18740  LONG __cil_tmp133 ;
18741  unsigned int __cil_tmp134 ;
18742  unsigned int __cil_tmp135 ;
18743  FAST_MUTEX *__cil_tmp136 ;
18744  unsigned int __cil_tmp137 ;
18745  unsigned int __cil_tmp138 ;
18746  unsigned int __cil_tmp139 ;
18747  unsigned int __cil_tmp140 ;
18748  IRP *__cil_tmp141 ;
18749  unsigned int __cil_tmp142 ;
18750  unsigned int __cil_tmp143 ;
18751  LIST_ENTRY *__cil_tmp144 ;
18752  unsigned long __cil_tmp145 ;
18753  CHAR *__cil_tmp146 ;
18754  CHAR *__cil_tmp147 ;
18755  unsigned int __cil_tmp148 ;
18756  unsigned int __cil_tmp149 ;
18757  FAST_MUTEX *__cil_tmp150 ;
18758  unsigned int __cil_tmp151 ;
18759  unsigned int __cil_tmp152 ;
18760  BOOLEAN __cil_tmp153 ;
18761  int __cil_tmp154 ;
18762  unsigned int __cil_tmp155 ;
18763  unsigned int __cil_tmp156 ;
18764  FAST_MUTEX *__cil_tmp157 ;
18765  unsigned int __cil_tmp158 ;
18766  unsigned int __cil_tmp159 ;
18767  IRP *__cil_tmp160 ;
18768  unsigned int __cil_tmp161 ;
18769  unsigned int __cil_tmp162 ;
18770  LIST_ENTRY *__cil_tmp163 ;
18771  unsigned long __cil_tmp164 ;
18772  CHAR *__cil_tmp165 ;
18773  CHAR *__cil_tmp166 ;
18774  unsigned int __cil_tmp167 ;
18775  unsigned int __cil_tmp168 ;
18776  unsigned int __cil_tmp169 ;
18777  unsigned int __cil_tmp170 ;
18778  unsigned int __cil_tmp171 ;
18779  unsigned int __cil_tmp172 ;
18780  unsigned int __cil_tmp173 ;
18781  FAST_MUTEX *__cil_tmp174 ;
18782  unsigned int __cil_tmp175 ;
18783  unsigned int __cil_tmp176 ;
18784  unsigned int __cil_tmp177 ;
18785  unsigned int __cil_tmp178 ;
18786  unsigned int __cil_tmp179 ;
18787  UCHAR __cil_tmp180 ;
18788  unsigned int __cil_tmp181 ;
18789  unsigned int __cil_tmp182 ;
18790  UCHAR __cil_tmp183 ;
18791  int __cil_tmp184 ;
18792  unsigned int __cil_tmp185 ;
18793  unsigned int __cil_tmp186 ;
18794  UCHAR __cil_tmp187 ;
18795  int __cil_tmp188 ;
18796  KUSER_SHARED_DATA *__cil_tmp189 ;
18797  unsigned int __cil_tmp190 ;
18798  unsigned int __cil_tmp191 ;
18799  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp192 ;
18800  int __cil_tmp193 ;
18801  unsigned int __cil_tmp194 ;
18802  unsigned int __cil_tmp195 ;
18803  unsigned int __cil_tmp196 ;
18804  unsigned int __cil_tmp197 ;
18805  PDEVICE_OBJECT __cil_tmp198 ;
18806  int __cil_tmp199 ;
18807  int __cil_tmp200 ;
18808  int __cil_tmp201 ;
18809  int __cil_tmp202 ;
18810  unsigned long __cil_tmp203 ;
18811  void *__cil_tmp204 ;
18812  unsigned int __cil_tmp205 ;
18813  unsigned int __cil_tmp206 ;
18814  unsigned int __cil_tmp207 ;
18815  unsigned int __cil_tmp208 ;
18816  unsigned int __cil_tmp209 ;
18817  unsigned int __cil_tmp210 ;
18818  unsigned int __cil_tmp211 ;
18819  unsigned int __cil_tmp212 ;
18820  PDEVICE_OBJECT __cil_tmp213 ;
18821  int __cil_tmp214 ;
18822  int __cil_tmp215 ;
18823  int __cil_tmp216 ;
18824  int __cil_tmp217 ;
18825  unsigned long __cil_tmp218 ;
18826  void *__cil_tmp219 ;
18827  unsigned int __cil_tmp220 ;
18828  unsigned int __cil_tmp221 ;
18829  PDEVICE_OBJECT __cil_tmp222 ;
18830  int __cil_tmp223 ;
18831  int __cil_tmp224 ;
18832  int __cil_tmp225 ;
18833  int __cil_tmp226 ;
18834  unsigned long __cil_tmp227 ;
18835  unsigned int __cil_tmp228 ;
18836  unsigned int __cil_tmp229 ;
18837  PDEVICE_OBJECT __cil_tmp230 ;
18838  void *__cil_tmp231 ;
18839  unsigned int __cil_tmp232 ;
18840  unsigned int __cil_tmp233 ;
18841  unsigned int __cil_tmp234 ;
18842  unsigned int __cil_tmp235 ;
18843  FAST_MUTEX *__cil_tmp236 ;
18844  unsigned int __cil_tmp237 ;
18845  unsigned int __cil_tmp238 ;
18846  unsigned int __cil_tmp239 ;
18847  unsigned int __cil_tmp240 ;
18848  FAST_MUTEX *__cil_tmp241 ;
18849  void *__cil_tmp242 ;
18850  unsigned int __cil_tmp243 ;
18851  unsigned int __cil_tmp244 ;
18852  BOOLEAN __cil_tmp245 ;
18853  unsigned int __cil_tmp246 ;
18854  unsigned int __cil_tmp247 ;
18855  PDEVICE_OBJECT __cil_tmp248 ;
18856  int __cil_tmp249 ;
18857  int __cil_tmp250 ;
18858  int __cil_tmp251 ;
18859  int __cil_tmp252 ;
18860  unsigned long __cil_tmp253 ;
18861  void *__cil_tmp254 ;
18862  unsigned int __cil_tmp255 ;
18863  unsigned int __cil_tmp256 ;
18864  KUSER_SHARED_DATA *__cil_tmp257 ;
18865  unsigned int __cil_tmp258 ;
18866  unsigned int __cil_tmp259 ;
18867  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp260 ;
18868  int __cil_tmp261 ;
18869  unsigned int __cil_tmp262 ;
18870  unsigned int __cil_tmp263 ;
18871  unsigned int __cil_tmp264 ;
18872  unsigned int __cil_tmp265 ;
18873  PDEVICE_OBJECT __cil_tmp266 ;
18874  unsigned int __cil_tmp267 ;
18875  unsigned int __cil_tmp268 ;
18876  ULONG __cil_tmp269 ;
18877  unsigned int __cil_tmp270 ;
18878  unsigned int __cil_tmp271 ;
18879  UCHAR __cil_tmp272 ;
18880  int __cil_tmp273 ;
18881  int __cil_tmp274 ;
18882  unsigned int __cil_tmp275 ;
18883  unsigned int __cil_tmp276 ;
18884  BOOLEAN __cil_tmp277 ;
18885  unsigned int __cil_tmp278 ;
18886  unsigned int __cil_tmp279 ;
18887  PDEVICE_OBJECT __cil_tmp280 ;
18888  int __cil_tmp281 ;
18889  int __cil_tmp282 ;
18890  int __cil_tmp283 ;
18891  int __cil_tmp284 ;
18892  unsigned long __cil_tmp285 ;
18893  void *__cil_tmp286 ;
18894  unsigned int __cil_tmp287 ;
18895  unsigned int __cil_tmp288 ;
18896  KUSER_SHARED_DATA *__cil_tmp289 ;
18897  unsigned int __cil_tmp290 ;
18898  unsigned int __cil_tmp291 ;
18899  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp292 ;
18900  int __cil_tmp293 ;
18901  unsigned int __cil_tmp294 ;
18902  unsigned int __cil_tmp295 ;
18903  unsigned int __cil_tmp296 ;
18904  unsigned int __cil_tmp297 ;
18905  PDEVICE_OBJECT __cil_tmp298 ;
18906  unsigned int __cil_tmp299 ;
18907  unsigned int __cil_tmp300 ;
18908  ULONG __cil_tmp301 ;
18909  unsigned int __cil_tmp302 ;
18910  unsigned int __cil_tmp303 ;
18911  UCHAR __cil_tmp304 ;
18912  int __cil_tmp305 ;
18913  int __cil_tmp306 ;
18914  unsigned int __cil_tmp307 ;
18915  unsigned int __cil_tmp308 ;
18916  unsigned int __cil_tmp309 ;
18917  unsigned int __cil_tmp310 ;
18918  ULONG __cil_tmp311 ;
18919  int __cil_tmp312 ;
18920  int __cil_tmp313 ;
18921  int __cil_tmp314 ;
18922  int __cil_tmp315 ;
18923  int __cil_tmp316 ;
18924  int __cil_tmp317 ;
18925  int __cil_tmp318 ;
18926  int __cil_tmp319 ;
18927  unsigned int __cil_tmp320 ;
18928  unsigned int __cil_tmp321 ;
18929  UCHAR __cil_tmp322 ;
18930  int __cil_tmp323 ;
18931  int __cil_tmp324 ;
18932  int __cil_tmp325 ;
18933  int __cil_tmp326 ;
18934  unsigned char __cil_tmp327 ;
18935  int __cil_tmp328 ;
18936  int __cil_tmp329 ;
18937  unsigned int __cil_tmp330 ;
18938  unsigned int __cil_tmp331 ;
18939  unsigned long __cil_tmp332 ;
18940  unsigned int __cil_tmp333 ;
18941  unsigned int __cil_tmp334 ;
18942  ULONG __cil_tmp335 ;
18943  unsigned int __cil_tmp336 ;
18944  unsigned int __cil_tmp337 ;
18945  UCHAR __cil_tmp338 ;
18946  int __cil_tmp339 ;
18947  int __cil_tmp340 ;
18948  int __cil_tmp341 ;
18949  int __cil_tmp342 ;
18950  unsigned char __cil_tmp343 ;
18951  unsigned int __cil_tmp344 ;
18952  unsigned int __cil_tmp345 ;
18953  PVOID __cil_tmp346 ;
18954  unsigned int __cil_tmp347 ;
18955  unsigned int __cil_tmp348 ;
18956  unsigned int __cil_tmp349 ;
18957  unsigned int __cil_tmp350 ;
18958  unsigned int __cil_tmp351 ;
18959  unsigned int __cil_tmp352 ;
18960  MEDIA_TYPE __cil_tmp353 ;
18961  int __cil_tmp354 ;
18962  unsigned int __cil_tmp355 ;
18963  unsigned int __cil_tmp356 ;
18964  unsigned int __cil_tmp357 ;
18965  unsigned int __cil_tmp358 ;
18966  unsigned int __cil_tmp359 ;
18967  unsigned int __cil_tmp360 ;
18968  unsigned int __cil_tmp361 ;
18969  unsigned int __cil_tmp362 ;
18970  unsigned int __cil_tmp363 ;
18971  unsigned int __cil_tmp364 ;
18972  unsigned int __cil_tmp365 ;
18973  unsigned int __cil_tmp366 ;
18974  unsigned int __cil_tmp367 ;
18975  UCHAR __cil_tmp368 ;
18976  int __cil_tmp369 ;
18977  int __cil_tmp370 ;
18978  unsigned int __cil_tmp371 ;
18979  unsigned int __cil_tmp372 ;
18980  unsigned int __cil_tmp373 ;
18981  unsigned int __cil_tmp374 ;
18982  unsigned int __cil_tmp375 ;
18983  unsigned int __cil_tmp376 ;
18984  unsigned int __cil_tmp377 ;
18985  unsigned int __cil_tmp378 ;
18986  unsigned int __cil_tmp379 ;
18987  UCHAR __cil_tmp380 ;
18988  unsigned int __cil_tmp381 ;
18989  unsigned int __cil_tmp382 ;
18990  unsigned int __cil_tmp383 ;
18991  unsigned int __cil_tmp384 ;
18992  unsigned int __cil_tmp385 ;
18993  UCHAR __cil_tmp386 ;
18994  unsigned int __cil_tmp387 ;
18995  unsigned int __cil_tmp388 ;
18996  unsigned int __cil_tmp389 ;
18997  unsigned int __cil_tmp390 ;
18998  unsigned int __cil_tmp391 ;
18999  USHORT __cil_tmp392 ;
19000  unsigned int __cil_tmp393 ;
19001  unsigned int __cil_tmp394 ;
19002  unsigned int __cil_tmp395 ;
19003  int __cil_tmp396 ;
19004  int __cil_tmp397 ;
19005  int __cil_tmp398 ;
19006  int __cil_tmp399 ;
19007  int __cil_tmp400 ;
19008  int __cil_tmp401 ;
19009  int __cil_tmp402 ;
19010  int __cil_tmp403 ;
19011  unsigned int __cil_tmp404 ;
19012  unsigned int __cil_tmp405 ;
19013  int __cil_tmp406 ;
19014  int __cil_tmp407 ;
19015  KUSER_SHARED_DATA *__cil_tmp408 ;
19016  unsigned int __cil_tmp409 ;
19017  unsigned int __cil_tmp410 ;
19018  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp411 ;
19019  int __cil_tmp412 ;
19020  unsigned int __cil_tmp413 ;
19021  unsigned int __cil_tmp414 ;
19022  unsigned int __cil_tmp415 ;
19023  unsigned int __cil_tmp416 ;
19024  unsigned int __cil_tmp417 ;
19025  unsigned int __cil_tmp418 ;
19026  unsigned int __cil_tmp419 ;
19027  unsigned int __cil_tmp420 ;
19028  unsigned int __cil_tmp421 ;
19029  unsigned int __cil_tmp422 ;
19030  unsigned int __cil_tmp423 ;
19031  unsigned int __cil_tmp424 ;
19032  unsigned int __cil_tmp425 ;
19033  unsigned int __cil_tmp426 ;
19034  UCHAR *__cil_tmp427 ;
19035  unsigned int __cil_tmp428 ;
19036  unsigned int __cil_tmp429 ;
19037  unsigned int __cil_tmp430 ;
19038  unsigned int __cil_tmp431 ;
19039  UCHAR *__cil_tmp432 ;
19040  void *__cil_tmp433 ;
19041  struct _MDL *__cil_tmp434 ;
19042  unsigned int __cil_tmp435 ;
19043  unsigned int __cil_tmp436 ;
19044  PVOID __cil_tmp437 ;
19045  unsigned int __cil_tmp438 ;
19046  unsigned int __cil_tmp439 ;
19047  unsigned int __cil_tmp440 ;
19048  unsigned int __cil_tmp441 ;
19049  unsigned int __cil_tmp442 ;
19050  unsigned int __cil_tmp443 ;
19051  unsigned int __cil_tmp444 ;
19052  unsigned int __cil_tmp445 ;
19053  unsigned int __cil_tmp446 ;
19054  unsigned int __cil_tmp447 ;
19055  unsigned int __cil_tmp448 ;
19056  LIST_ENTRY *__cil_tmp449 ;
19057  unsigned int __cil_tmp450 ;
19058  unsigned int __cil_tmp451 ;
19059  KSPIN_LOCK *__cil_tmp452 ;
19060  unsigned int __cil_tmp453 ;
19061  unsigned int __cil_tmp454 ;
19062  FAST_MUTEX *__cil_tmp455 ;
19063  unsigned int __cil_tmp456 ;
19064  unsigned int __cil_tmp457 ;
19065  unsigned int __cil_tmp458 ;
19066  unsigned int __cil_tmp459 ;
19067  LONG __cil_tmp460 ;
19068  unsigned int __cil_tmp461 ;
19069  unsigned int __cil_tmp462 ;
19070  FAST_MUTEX *__cil_tmp463 ;
19071  unsigned int __cil_tmp464 ;
19072  unsigned int __cil_tmp465 ;
19073  IRP *__cil_tmp466 ;
19074  unsigned int __cil_tmp467 ;
19075  unsigned int __cil_tmp468 ;
19076  LIST_ENTRY *__cil_tmp469 ;
19077  unsigned long __cil_tmp470 ;
19078  CHAR *__cil_tmp471 ;
19079  CHAR *__cil_tmp472 ;
19080  unsigned int __cil_tmp473 ;
19081  unsigned int __cil_tmp474 ;
19082  unsigned int __cil_tmp475 ;
19083  unsigned int __cil_tmp476 ;
19084  KUSER_SHARED_DATA *__cil_tmp477 ;
19085  unsigned int __cil_tmp478 ;
19086  unsigned int __cil_tmp479 ;
19087  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp480 ;
19088  int __cil_tmp481 ;
19089  unsigned int __cil_tmp482 ;
19090  unsigned int __cil_tmp483 ;
19091  unsigned int __cil_tmp484 ;
19092  unsigned int __cil_tmp485 ;
19093  PDEVICE_OBJECT __cil_tmp486 ;
19094  int __cil_tmp487 ;
19095  int __cil_tmp488 ;
19096  int __cil_tmp489 ;
19097  int __cil_tmp490 ;
19098  unsigned long __cil_tmp491 ;
19099  unsigned int __cil_tmp492 ;
19100  unsigned int __cil_tmp493 ;
19101  PDEVICE_OBJECT __cil_tmp494 ;
19102  void *__cil_tmp495 ;
19103  unsigned int __cil_tmp496 ;
19104  unsigned int __cil_tmp497 ;
19105  unsigned int __cil_tmp498 ;
19106  unsigned int __cil_tmp499 ;
19107  LONGLONG *mem_500 ;
19108  LONGLONG *mem_501 ;
19109  ALTERNATIVE_ARCHITECTURE_TYPE *mem_502 ;
19110  BOOLEAN *mem_503 ;
19111  PDEVICE_OBJECT *mem_504 ;
19112  PDEVICE_OBJECT *mem_505 ;
19113  PDEVICE_OBJECT *mem_506 ;
19114  BOOLEAN *mem_507 ;
19115  LONG *mem_508 ;
19116  LONG *mem_509 ;
19117  PKTHREAD *mem_510 ;
19118  PKTHREAD *mem_511 ;
19119  PKTHREAD *mem_512 ;
19120  ALTERNATIVE_ARCHITECTURE_TYPE *mem_513 ;
19121  BOOLEAN *mem_514 ;
19122  PDEVICE_OBJECT *mem_515 ;
19123  PDEVICE_OBJECT *mem_516 ;
19124  PDEVICE_OBJECT *mem_517 ;
19125  PDEVICE_OBJECT *mem_518 ;
19126  BOOLEAN *mem_519 ;
19127  BOOLEAN *mem_520 ;
19128  LONG *mem_521 ;
19129  LONG *mem_522 ;
19130  BOOLEAN *mem_523 ;
19131  BOOLEAN *mem_524 ;
19132  NTSTATUS *mem_525 ;
19133  ULONG_PTR *mem_526 ;
19134  struct _IO_STACK_LOCATION **mem_527 ;
19135  UCHAR *mem_528 ;
19136  UCHAR *mem_529 ;
19137  UCHAR *mem_530 ;
19138  ALTERNATIVE_ARCHITECTURE_TYPE *mem_531 ;
19139  BOOLEAN *mem_532 ;
19140  PDEVICE_OBJECT *mem_533 ;
19141  BOOLEAN *mem_534 ;
19142  BOOLEAN *mem_535 ;
19143  BOOLEAN *mem_536 ;
19144  PDEVICE_OBJECT *mem_537 ;
19145  PDEVICE_OBJECT *mem_538 ;
19146  PDEVICE_OBJECT *mem_539 ;
19147  BOOLEAN *mem_540 ;
19148  LONG *mem_541 ;
19149  BOOLEAN *mem_542 ;
19150  PDEVICE_OBJECT *mem_543 ;
19151  BOOLEAN *mem_544 ;
19152  ALTERNATIVE_ARCHITECTURE_TYPE *mem_545 ;
19153  BOOLEAN *mem_546 ;
19154  PDEVICE_OBJECT *mem_547 ;
19155  ULONG *mem_548 ;
19156  UCHAR *mem_549 ;
19157  BOOLEAN *mem_550 ;
19158  PDEVICE_OBJECT *mem_551 ;
19159  BOOLEAN *mem_552 ;
19160  ALTERNATIVE_ARCHITECTURE_TYPE *mem_553 ;
19161  BOOLEAN *mem_554 ;
19162  PDEVICE_OBJECT *mem_555 ;
19163  ULONG *mem_556 ;
19164  UCHAR *mem_557 ;
19165  ULONG *mem_558 ;
19166  UCHAR *mem_559 ;
19167  BOOLEAN *mem_560 ;
19168  ULONG *mem_561 ;
19169  UCHAR *mem_562 ;
19170  PVOID *mem_563 ;
19171  MEDIA_TYPE *mem_564 ;
19172  MEDIA_TYPE *mem_565 ;
19173  MEDIA_TYPE *mem_566 ;
19174  ULONG *mem_567 ;
19175  LONG *mem_568 ;
19176  ULONG *mem_569 ;
19177  ULONG *mem_570 ;
19178  ULONG *mem_571 ;
19179  UCHAR *mem_572 ;
19180  ULONG *mem_573 ;
19181  LONG *mem_574 ;
19182  UCHAR *mem_575 ;
19183  ULONG *mem_576 ;
19184  UCHAR *mem_577 ;
19185  ULONG *mem_578 ;
19186  USHORT *mem_579 ;
19187  ULONG *mem_580 ;
19188  ULONG_PTR *mem_581 ;
19189  PUCHAR *mem_582 ;
19190  ALTERNATIVE_ARCHITECTURE_TYPE *mem_583 ;
19191  UCHAR *mem_584 ;
19192  UCHAR *mem_585 ;
19193  UCHAR *mem_586 ;
19194  PVOID *mem_587 ;
19195  UCHAR *mem_588 ;
19196  UCHAR *mem_589 ;
19197  ULONG_PTR *mem_590 ;
19198  BOOLEAN *mem_591 ;
19199  NTSTATUS *mem_592 ;
19200  LONG *mem_593 ;
19201  LONG *mem_594 ;
19202  NTSTATUS *mem_595 ;
19203  PUCHAR *mem_596 ;
19204  ALTERNATIVE_ARCHITECTURE_TYPE *mem_597 ;
19205  BOOLEAN *mem_598 ;
19206  PDEVICE_OBJECT *mem_599 ;
19207  PDEVICE_OBJECT *mem_600 ;
19208  BOOLEAN *mem_601 ;
19209  BOOLEAN *mem_602 ;
19210
19211  {
19212  {
19213#line 3904
19214  disketteExtension = (DISKETTE_EXTENSION *)Context;
19215#line 3905
19216  ntStatus = 0L;
19217#line 3915
19218  tmp = KeGetCurrentThread();
19219#line 3915
19220  KeSetPriorityThread(tmp, 16L);
19221#line 3917
19222  __cil_tmp13 = & queueWait;
19223#line 3917
19224  mem_500 = (LONGLONG *)__cil_tmp13;
19225#line 3917
19226  *mem_500 = -30000000LL;
19227#line 3918
19228  __cil_tmp14 = & acquireWait;
19229#line 3918
19230  mem_501 = (LONGLONG *)__cil_tmp14;
19231#line 3918
19232  *mem_501 = -150000000LL;
19233  }
19234  {
19235#line 3920
19236  while (1) {
19237    while_114_continue: /* CIL Label */ ;
19238    {
19239#line 3929
19240    __cil_tmp15 = (unsigned int )disketteExtension;
19241#line 3929
19242    __cil_tmp16 = __cil_tmp15 + 32;
19243#line 3929
19244    __cil_tmp17 = (KSEMAPHORE *)__cil_tmp16;
19245#line 3929
19246    __cil_tmp18 = (void *)__cil_tmp17;
19247#line 3929
19248    __cil_tmp19 = (enum _KWAIT_REASON )0;
19249#line 3929
19250    waitStatus = KeWaitForSingleObject(__cil_tmp18, __cil_tmp19, (char)0, (unsigned char)0,
19251                                       & queueWait);
19252    }
19253#line 3936
19254    if (waitStatus == 258L) {
19255      {
19256#line 3938
19257      __cil_tmp20 = (KUSER_SHARED_DATA * const  )4292804608U;
19258#line 3938
19259      __cil_tmp21 = (unsigned int )__cil_tmp20;
19260#line 3938
19261      __cil_tmp22 = __cil_tmp21 + 732;
19262#line 3938
19263      mem_502 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp22;
19264#line 3938
19265      __cil_tmp23 = *mem_502;
19266#line 3938
19267      __cil_tmp24 = (int )__cil_tmp23;
19268#line 3938
19269      __cil_tmp25 = __cil_tmp24 == 1;
19270#line 3938
19271      if (! __cil_tmp25) {
19272        {
19273#line 3938
19274        __cil_tmp26 = (unsigned int )disketteExtension;
19275#line 3938
19276        __cil_tmp27 = __cil_tmp26 + 172;
19277        {
19278#line 3938
19279        mem_503 = (BOOLEAN *)__cil_tmp27;
19280#line 3938
19281        if (*mem_503) {
19282          {
19283#line 3943
19284          while (1) {
19285            while_115_continue: /* CIL Label */ ;
19286            goto while_115_break;
19287          }
19288          while_115_break: /* CIL Label */ ;
19289          }
19290          {
19291#line 3944
19292          __cil_tmp28 = (unsigned int )disketteExtension;
19293#line 3944
19294          __cil_tmp29 = __cil_tmp28 + 8;
19295#line 3944
19296          mem_504 = (PDEVICE_OBJECT *)__cil_tmp29;
19297#line 3944
19298          __cil_tmp30 = *mem_504;
19299#line 3944
19300          __cil_tmp31 = 775 << 2;
19301#line 3944
19302          __cil_tmp32 = 7 << 16;
19303#line 3944
19304          __cil_tmp33 = __cil_tmp32 | __cil_tmp31;
19305#line 3944
19306          __cil_tmp34 = __cil_tmp33 | 3;
19307#line 3944
19308          __cil_tmp35 = (unsigned long )__cil_tmp34;
19309#line 3944
19310          __cil_tmp36 = (void *)0;
19311#line 3944
19312          FlFdcDeviceIo(__cil_tmp30, __cil_tmp35, __cil_tmp36);
19313#line 3948
19314          __cil_tmp37 = (unsigned int )disketteExtension;
19315#line 3948
19316          __cil_tmp38 = __cil_tmp37 + 8;
19317#line 3948
19318          mem_505 = (PDEVICE_OBJECT *)__cil_tmp38;
19319#line 3948
19320          __cil_tmp39 = *mem_505;
19321#line 3948
19322          __cil_tmp40 = 769 << 2;
19323#line 3948
19324          __cil_tmp41 = 7 << 16;
19325#line 3948
19326          __cil_tmp42 = __cil_tmp41 | __cil_tmp40;
19327#line 3948
19328          __cil_tmp43 = __cil_tmp42 | 3;
19329#line 3948
19330          __cil_tmp44 = (unsigned long )__cil_tmp43;
19331#line 3948
19332          __cil_tmp45 = (unsigned int )disketteExtension;
19333#line 3948
19334          __cil_tmp46 = __cil_tmp45 + 28;
19335#line 3948
19336          mem_506 = (PDEVICE_OBJECT *)__cil_tmp46;
19337#line 3948
19338          __cil_tmp47 = *mem_506;
19339#line 3948
19340          __cil_tmp48 = (void *)__cil_tmp47;
19341#line 3948
19342          FlFdcDeviceIo(__cil_tmp39, __cil_tmp44, __cil_tmp48);
19343#line 3952
19344          __cil_tmp49 = (unsigned int )disketteExtension;
19345#line 3952
19346          __cil_tmp50 = __cil_tmp49 + 172;
19347#line 3952
19348          mem_507 = (BOOLEAN *)__cil_tmp50;
19349#line 3952
19350          *mem_507 = (unsigned char)0;
19351          }
19352        } else {
19353
19354        }
19355        }
19356        }
19357      } else {
19358
19359      }
19360      }
19361      {
19362#line 3956
19363      __cil_tmp51 = (unsigned int )disketteExtension;
19364#line 3956
19365      __cil_tmp52 = __cil_tmp51 + 56;
19366#line 3956
19367      __cil_tmp53 = (FAST_MUTEX *)__cil_tmp52;
19368#line 3956
19369      ExAcquireFastMutex(__cil_tmp53);
19370      }
19371      {
19372#line 3958
19373      __cil_tmp54 = (unsigned int )disketteExtension;
19374#line 3958
19375      __cil_tmp55 = __cil_tmp54 + 88;
19376#line 3958
19377      mem_508 = (LONG *)__cil_tmp55;
19378#line 3958
19379      __cil_tmp56 = *mem_508;
19380#line 3958
19381      if (__cil_tmp56 == 0L) {
19382#line 3959
19383        __cil_tmp57 = (unsigned int )disketteExtension;
19384#line 3959
19385        __cil_tmp58 = __cil_tmp57 + 88;
19386#line 3959
19387        mem_509 = (LONG *)__cil_tmp58;
19388#line 3959
19389        *mem_509 = -1L;
19390        {
19391#line 3969
19392        __cil_tmp59 = (void *)0;
19393#line 3969
19394        __cil_tmp60 = (unsigned int )__cil_tmp59;
19395#line 3969
19396        __cil_tmp61 = (unsigned int )disketteExtension;
19397#line 3969
19398        __cil_tmp62 = __cil_tmp61 + 92;
19399#line 3969
19400        mem_510 = (PKTHREAD *)__cil_tmp62;
19401#line 3969
19402        __cil_tmp63 = *mem_510;
19403#line 3969
19404        __cil_tmp64 = (unsigned int )__cil_tmp63;
19405#line 3969
19406        if (__cil_tmp64 != __cil_tmp60) {
19407          {
19408#line 3971
19409          __cil_tmp65 = (unsigned int )disketteExtension;
19410#line 3971
19411          __cil_tmp66 = __cil_tmp65 + 92;
19412#line 3971
19413          mem_511 = (PKTHREAD *)__cil_tmp66;
19414#line 3971
19415          __cil_tmp67 = *mem_511;
19416#line 3971
19417          __cil_tmp68 = (void *)__cil_tmp67;
19418#line 3971
19419          ObfDereferenceObject(__cil_tmp68);
19420#line 3972
19421          __cil_tmp69 = (unsigned int )disketteExtension;
19422#line 3972
19423          __cil_tmp70 = __cil_tmp69 + 92;
19424#line 3972
19425          __cil_tmp71 = (void *)0;
19426#line 3972
19427          mem_512 = (PKTHREAD *)__cil_tmp70;
19428#line 3972
19429          *mem_512 = (struct _KTHREAD *)__cil_tmp71;
19430          }
19431        } else {
19432
19433        }
19434        }
19435        {
19436#line 3975
19437        __cil_tmp72 = (unsigned int )disketteExtension;
19438#line 3975
19439        __cil_tmp73 = __cil_tmp72 + 56;
19440#line 3975
19441        __cil_tmp74 = (FAST_MUTEX *)__cil_tmp73;
19442#line 3975
19443        ExReleaseFastMutex(__cil_tmp74);
19444        }
19445        {
19446#line 3977
19447        __cil_tmp75 = (KUSER_SHARED_DATA * const  )4292804608U;
19448#line 3977
19449        __cil_tmp76 = (unsigned int )__cil_tmp75;
19450#line 3977
19451        __cil_tmp77 = __cil_tmp76 + 732;
19452#line 3977
19453        mem_513 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp77;
19454#line 3977
19455        __cil_tmp78 = *mem_513;
19456#line 3977
19457        __cil_tmp79 = (int )__cil_tmp78;
19458#line 3977
19459        if (__cil_tmp79 == 1) {
19460          {
19461#line 3978
19462          __cil_tmp80 = (unsigned int )disketteExtension;
19463#line 3978
19464          __cil_tmp81 = __cil_tmp80 + 392;
19465          {
19466#line 3978
19467          mem_514 = (BOOLEAN *)__cil_tmp81;
19468#line 3978
19469          if (*mem_514) {
19470            {
19471#line 3979
19472            __cil_tmp82 = (unsigned int )disketteExtension;
19473#line 3979
19474            __cil_tmp83 = __cil_tmp82 + 8;
19475#line 3979
19476            mem_515 = (PDEVICE_OBJECT *)__cil_tmp83;
19477#line 3979
19478            __cil_tmp84 = *mem_515;
19479#line 3979
19480            __cil_tmp85 = 768 << 2;
19481#line 3979
19482            __cil_tmp86 = 7 << 16;
19483#line 3979
19484            __cil_tmp87 = __cil_tmp86 | __cil_tmp85;
19485#line 3979
19486            __cil_tmp88 = __cil_tmp87 | 3;
19487#line 3979
19488            __cil_tmp89 = (unsigned long )__cil_tmp88;
19489#line 3979
19490            __cil_tmp90 = (void *)(& acquireWait);
19491#line 3979
19492            ntStatus = FlFdcDeviceIo(__cil_tmp84, __cil_tmp89, __cil_tmp90);
19493#line 3984
19494            __cil_tmp91 = (unsigned int )disketteExtension;
19495#line 3984
19496            __cil_tmp92 = __cil_tmp91 + 8;
19497#line 3984
19498            mem_516 = (PDEVICE_OBJECT *)__cil_tmp92;
19499#line 3984
19500            __cil_tmp93 = *mem_516;
19501#line 3984
19502            __cil_tmp94 = 775 << 2;
19503#line 3984
19504            __cil_tmp95 = 7 << 16;
19505#line 3984
19506            __cil_tmp96 = __cil_tmp95 | __cil_tmp94;
19507#line 3984
19508            __cil_tmp97 = __cil_tmp96 | 3;
19509#line 3984
19510            __cil_tmp98 = (unsigned long )__cil_tmp97;
19511#line 3984
19512            __cil_tmp99 = (void *)0;
19513#line 3984
19514            FlFdcDeviceIo(__cil_tmp93, __cil_tmp98, __cil_tmp99);
19515#line 3988
19516            __cil_tmp100 = (unsigned int )disketteExtension;
19517#line 3988
19518            __cil_tmp101 = __cil_tmp100 + 8;
19519#line 3988
19520            mem_517 = (PDEVICE_OBJECT *)__cil_tmp101;
19521#line 3988
19522            __cil_tmp102 = *mem_517;
19523#line 3988
19524            __cil_tmp103 = 769 << 2;
19525#line 3988
19526            __cil_tmp104 = 7 << 16;
19527#line 3988
19528            __cil_tmp105 = __cil_tmp104 | __cil_tmp103;
19529#line 3988
19530            __cil_tmp106 = __cil_tmp105 | 3;
19531#line 3988
19532            __cil_tmp107 = (unsigned long )__cil_tmp106;
19533#line 3988
19534            __cil_tmp108 = (unsigned int )disketteExtension;
19535#line 3988
19536            __cil_tmp109 = __cil_tmp108 + 28;
19537#line 3988
19538            mem_518 = (PDEVICE_OBJECT *)__cil_tmp109;
19539#line 3988
19540            __cil_tmp110 = *mem_518;
19541#line 3988
19542            __cil_tmp111 = (void *)__cil_tmp110;
19543#line 3988
19544            FlFdcDeviceIo(__cil_tmp102, __cil_tmp107, __cil_tmp111);
19545#line 3992
19546            __cil_tmp112 = (unsigned int )disketteExtension;
19547#line 3992
19548            __cil_tmp113 = __cil_tmp112 + 172;
19549#line 3992
19550            mem_519 = (BOOLEAN *)__cil_tmp113;
19551#line 3992
19552            *mem_519 = (unsigned char)0;
19553#line 3993
19554            __cil_tmp114 = (unsigned int )disketteExtension;
19555#line 3993
19556            __cil_tmp115 = __cil_tmp114 + 392;
19557#line 3993
19558            mem_520 = (BOOLEAN *)__cil_tmp115;
19559#line 3993
19560            *mem_520 = (unsigned char)0;
19561            }
19562          } else {
19563
19564          }
19565          }
19566          }
19567        } else {
19568
19569        }
19570        }
19571        {
19572#line 3997
19573        ExAcquireFastMutex(PagingMutex);
19574#line 3997
19575        PagingReferenceCount = PagingReferenceCount - 1UL;
19576        }
19577#line 3997
19578        if (PagingReferenceCount == 0UL) {
19579          {
19580#line 3997
19581          __cil_tmp116 = (void *)(& DriverEntry);
19582#line 3997
19583          MmPageEntireDriver(__cil_tmp116);
19584          }
19585        } else {
19586
19587        }
19588        {
19589#line 3997
19590        ExReleaseFastMutex(PagingMutex);
19591        }
19592        {
19593#line 4001
19594        while (1) {
19595          while_116_continue: /* CIL Label */ ;
19596          goto while_116_break;
19597        }
19598        while_116_break: /* CIL Label */ ;
19599        }
19600        {
19601#line 4002
19602        PsTerminateSystemThread(0L);
19603        }
19604      } else {
19605
19606      }
19607      }
19608      {
19609#line 4005
19610      __cil_tmp117 = (unsigned int )disketteExtension;
19611#line 4005
19612      __cil_tmp118 = __cil_tmp117 + 56;
19613#line 4005
19614      __cil_tmp119 = (FAST_MUTEX *)__cil_tmp118;
19615#line 4005
19616      ExReleaseFastMutex(__cil_tmp119);
19617      }
19618      goto __Cont;
19619    } else {
19620
19621    }
19622    {
19623#line 4009
19624    while (1) {
19625      while_117_continue: /* CIL Label */ ;
19626      {
19627#line 4009
19628      __cil_tmp120 = (unsigned int )disketteExtension;
19629#line 4009
19630      __cil_tmp121 = __cil_tmp120 + 96;
19631#line 4009
19632      __cil_tmp122 = (LIST_ENTRY *)__cil_tmp121;
19633#line 4009
19634      __cil_tmp123 = (unsigned int )disketteExtension;
19635#line 4009
19636      __cil_tmp124 = __cil_tmp123 + 52;
19637#line 4009
19638      __cil_tmp125 = (KSPIN_LOCK *)__cil_tmp124;
19639#line 4009
19640      request = ExfInterlockedRemoveHeadList(__cil_tmp122, __cil_tmp125);
19641      }
19642#line 4009
19643      if (! request) {
19644        goto while_117_break;
19645      } else {
19646
19647      }
19648      {
19649#line 4013
19650      __cil_tmp126 = (unsigned int )disketteExtension;
19651#line 4013
19652      __cil_tmp127 = __cil_tmp126 + 56;
19653#line 4013
19654      __cil_tmp128 = (FAST_MUTEX *)__cil_tmp127;
19655#line 4013
19656      ExAcquireFastMutex(__cil_tmp128);
19657#line 4015
19658      __cil_tmp129 = (unsigned int )disketteExtension;
19659#line 4015
19660      __cil_tmp130 = __cil_tmp129 + 88;
19661#line 4015
19662      __cil_tmp131 = (unsigned int )disketteExtension;
19663#line 4015
19664      __cil_tmp132 = __cil_tmp131 + 88;
19665#line 4015
19666      mem_521 = (LONG *)__cil_tmp132;
19667#line 4015
19668      __cil_tmp133 = *mem_521;
19669#line 4015
19670      mem_522 = (LONG *)__cil_tmp130;
19671#line 4015
19672      *mem_522 = __cil_tmp133 - 1L;
19673#line 4016
19674      __cil_tmp134 = (unsigned int )disketteExtension;
19675#line 4016
19676      __cil_tmp135 = __cil_tmp134 + 56;
19677#line 4016
19678      __cil_tmp136 = (FAST_MUTEX *)__cil_tmp135;
19679#line 4016
19680      ExReleaseFastMutex(__cil_tmp136);
19681#line 4018
19682      __cil_tmp137 = (unsigned int )disketteExtension;
19683#line 4018
19684      __cil_tmp138 = __cil_tmp137 + 104;
19685#line 4018
19686      mem_523 = (BOOLEAN *)__cil_tmp138;
19687#line 4018
19688      *mem_523 = (unsigned char)0;
19689#line 4020
19690      __cil_tmp139 = 0 + 24;
19691#line 4020
19692      __cil_tmp140 = 64 + __cil_tmp139;
19693#line 4020
19694      __cil_tmp141 = (IRP *)0;
19695#line 4020
19696      __cil_tmp142 = (unsigned int )__cil_tmp141;
19697#line 4020
19698      __cil_tmp143 = __cil_tmp142 + __cil_tmp140;
19699#line 4020
19700      __cil_tmp144 = (LIST_ENTRY *)__cil_tmp143;
19701#line 4020
19702      __cil_tmp145 = (unsigned long )__cil_tmp144;
19703#line 4020
19704      __cil_tmp146 = (CHAR *)request;
19705#line 4020
19706      __cil_tmp147 = __cil_tmp146 - __cil_tmp145;
19707#line 4020
19708      irp = (IRP *)__cil_tmp147;
19709#line 4026
19710      __cil_tmp148 = (unsigned int )disketteExtension;
19711#line 4026
19712      __cil_tmp149 = __cil_tmp148 + 396;
19713#line 4026
19714      __cil_tmp150 = (FAST_MUTEX *)__cil_tmp149;
19715#line 4026
19716      ExAcquireFastMutex(__cil_tmp150);
19717      }
19718      {
19719#line 4027
19720      __cil_tmp151 = (unsigned int )disketteExtension;
19721#line 4027
19722      __cil_tmp152 = __cil_tmp151 + 393;
19723#line 4027
19724      mem_524 = (BOOLEAN *)__cil_tmp152;
19725#line 4027
19726      __cil_tmp153 = *mem_524;
19727#line 4027
19728      __cil_tmp154 = (int )__cil_tmp153;
19729#line 4027
19730      if (__cil_tmp154 == 1) {
19731        {
19732#line 4028
19733        __cil_tmp155 = (unsigned int )disketteExtension;
19734#line 4028
19735        __cil_tmp156 = __cil_tmp155 + 396;
19736#line 4028
19737        __cil_tmp157 = (FAST_MUTEX *)__cil_tmp156;
19738#line 4028
19739        ExReleaseFastMutex(__cil_tmp157);
19740        }
19741        {
19742#line 4030
19743        while (1) {
19744          while_118_continue: /* CIL Label */ ;
19745          goto while_118_break;
19746        }
19747        while_118_break: /* CIL Label */ ;
19748        }
19749        {
19750#line 4032
19751        __cil_tmp158 = 0 + 24;
19752#line 4032
19753        __cil_tmp159 = 64 + __cil_tmp158;
19754#line 4032
19755        __cil_tmp160 = (IRP *)0;
19756#line 4032
19757        __cil_tmp161 = (unsigned int )__cil_tmp160;
19758#line 4032
19759        __cil_tmp162 = __cil_tmp161 + __cil_tmp159;
19760#line 4032
19761        __cil_tmp163 = (LIST_ENTRY *)__cil_tmp162;
19762#line 4032
19763        __cil_tmp164 = (unsigned long )__cil_tmp163;
19764#line 4032
19765        __cil_tmp165 = (CHAR *)request;
19766#line 4032
19767        __cil_tmp166 = __cil_tmp165 - __cil_tmp164;
19768#line 4032
19769        irp = (IRP *)__cil_tmp166;
19770#line 4033
19771        __cil_tmp167 = (unsigned int )irp;
19772#line 4033
19773        __cil_tmp168 = __cil_tmp167 + 24;
19774#line 4033
19775        mem_525 = (NTSTATUS *)__cil_tmp168;
19776#line 4033
19777        *mem_525 = -1073741101L;
19778#line 4034
19779        __cil_tmp169 = 24 + 4;
19780#line 4034
19781        __cil_tmp170 = (unsigned int )irp;
19782#line 4034
19783        __cil_tmp171 = __cil_tmp170 + __cil_tmp169;
19784#line 4034
19785        mem_526 = (ULONG_PTR *)__cil_tmp171;
19786#line 4034
19787        *mem_526 = 0UL;
19788#line 4035
19789        IofCompleteRequest(irp, (char)0);
19790        }
19791        goto while_117_continue;
19792      } else {
19793
19794      }
19795      }
19796      {
19797#line 4038
19798      __cil_tmp172 = (unsigned int )disketteExtension;
19799#line 4038
19800      __cil_tmp173 = __cil_tmp172 + 396;
19801#line 4038
19802      __cil_tmp174 = (FAST_MUTEX *)__cil_tmp173;
19803#line 4038
19804      ExReleaseFastMutex(__cil_tmp174);
19805      }
19806      {
19807#line 4039
19808      while (1) {
19809        while_119_continue: /* CIL Label */ ;
19810        goto while_119_break;
19811      }
19812      while_119_break: /* CIL Label */ ;
19813      }
19814#line 4041
19815      __cil_tmp175 = 24 + 8;
19816#line 4041
19817      __cil_tmp176 = 0 + __cil_tmp175;
19818#line 4041
19819      __cil_tmp177 = 64 + __cil_tmp176;
19820#line 4041
19821      __cil_tmp178 = (unsigned int )irp;
19822#line 4041
19823      __cil_tmp179 = __cil_tmp178 + __cil_tmp177;
19824#line 4041
19825      mem_527 = (struct _IO_STACK_LOCATION **)__cil_tmp179;
19826#line 4041
19827      irpSp = *mem_527;
19828      {
19829#line 4047
19830      while (1) {
19831        while_120_continue: /* CIL Label */ ;
19832        goto while_120_break;
19833      }
19834      while_120_break: /* CIL Label */ ;
19835      }
19836      {
19837#line 4048
19838      mem_528 = (UCHAR *)irpSp;
19839#line 4048
19840      __cil_tmp180 = *mem_528;
19841#line 4049
19842      if ((int )__cil_tmp180 == 27) {
19843        goto switch_121_27;
19844      } else {
19845#line 4096
19846        if ((int )__cil_tmp180 == 3) {
19847          goto switch_121_3;
19848        } else {
19849#line 4097
19850          if ((int )__cil_tmp180 == 4) {
19851            goto switch_121_4;
19852          } else {
19853#line 4154
19854            if ((int )__cil_tmp180 == 14) {
19855              goto switch_121_14;
19856            } else {
19857              {
19858              goto switch_121_default;
19859#line 4048
19860              if (0) {
19861                switch_121_27: /* CIL Label */ ;
19862                {
19863#line 4052
19864                while (1) {
19865                  while_122_continue: /* CIL Label */ ;
19866                  goto while_122_break;
19867                }
19868                while_122_break: /* CIL Label */ ;
19869                }
19870                {
19871#line 4054
19872                __cil_tmp181 = (unsigned int )irpSp;
19873#line 4054
19874                __cil_tmp182 = __cil_tmp181 + 1;
19875#line 4054
19876                mem_529 = (UCHAR *)__cil_tmp182;
19877#line 4054
19878                __cil_tmp183 = *mem_529;
19879#line 4054
19880                __cil_tmp184 = (int )__cil_tmp183;
19881#line 4054
19882                if (__cil_tmp184 == 1) {
19883                  goto _L;
19884                } else {
19885                  {
19886#line 4054
19887                  __cil_tmp185 = (unsigned int )irpSp;
19888#line 4054
19889                  __cil_tmp186 = __cil_tmp185 + 1;
19890#line 4054
19891                  mem_530 = (UCHAR *)__cil_tmp186;
19892#line 4054
19893                  __cil_tmp187 = *mem_530;
19894#line 4054
19895                  __cil_tmp188 = (int )__cil_tmp187;
19896#line 4054
19897                  if (__cil_tmp188 == 5) {
19898                    _L: 
19899                    {
19900#line 4057
19901                    __cil_tmp189 = (KUSER_SHARED_DATA * const  )4292804608U;
19902#line 4057
19903                    __cil_tmp190 = (unsigned int )__cil_tmp189;
19904#line 4057
19905                    __cil_tmp191 = __cil_tmp190 + 732;
19906#line 4057
19907                    mem_531 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp191;
19908#line 4057
19909                    __cil_tmp192 = *mem_531;
19910#line 4057
19911                    __cil_tmp193 = (int )__cil_tmp192;
19912#line 4057
19913                    if (__cil_tmp193 == 1) {
19914                      {
19915#line 4058
19916                      __cil_tmp194 = (unsigned int )disketteExtension;
19917#line 4058
19918                      __cil_tmp195 = __cil_tmp194 + 392;
19919                      {
19920#line 4058
19921                      mem_532 = (BOOLEAN *)__cil_tmp195;
19922#line 4058
19923                      if (*mem_532) {
19924                        {
19925#line 4059
19926                        __cil_tmp196 = (unsigned int )disketteExtension;
19927#line 4059
19928                        __cil_tmp197 = __cil_tmp196 + 8;
19929#line 4059
19930                        mem_533 = (PDEVICE_OBJECT *)__cil_tmp197;
19931#line 4059
19932                        __cil_tmp198 = *mem_533;
19933#line 4059
19934                        __cil_tmp199 = 768 << 2;
19935#line 4059
19936                        __cil_tmp200 = 7 << 16;
19937#line 4059
19938                        __cil_tmp201 = __cil_tmp200 | __cil_tmp199;
19939#line 4059
19940                        __cil_tmp202 = __cil_tmp201 | 3;
19941#line 4059
19942                        __cil_tmp203 = (unsigned long )__cil_tmp202;
19943#line 4059
19944                        __cil_tmp204 = (void *)(& acquireWait);
19945#line 4059
19946                        FlFdcDeviceIo(__cil_tmp198, __cil_tmp203, __cil_tmp204);
19947#line 4063
19948                        __cil_tmp205 = (unsigned int )disketteExtension;
19949#line 4063
19950                        __cil_tmp206 = __cil_tmp205 + 392;
19951#line 4063
19952                        mem_534 = (BOOLEAN *)__cil_tmp206;
19953#line 4063
19954                        *mem_534 = (unsigned char)0;
19955#line 4064
19956                        __cil_tmp207 = (unsigned int )disketteExtension;
19957#line 4064
19958                        __cil_tmp208 = __cil_tmp207 + 172;
19959#line 4064
19960                        mem_535 = (BOOLEAN *)__cil_tmp208;
19961#line 4064
19962                        *mem_535 = (unsigned char)1;
19963                        }
19964                      } else {
19965
19966                      }
19967                      }
19968                      }
19969                    } else {
19970
19971                    }
19972                    }
19973                    {
19974#line 4068
19975                    __cil_tmp209 = (unsigned int )disketteExtension;
19976#line 4068
19977                    __cil_tmp210 = __cil_tmp209 + 172;
19978                    {
19979#line 4068
19980                    mem_536 = (BOOLEAN *)__cil_tmp210;
19981#line 4068
19982                    if (*mem_536) {
19983                      {
19984#line 4070
19985                      __cil_tmp211 = (unsigned int )disketteExtension;
19986#line 4070
19987                      __cil_tmp212 = __cil_tmp211 + 8;
19988#line 4070
19989                      mem_537 = (PDEVICE_OBJECT *)__cil_tmp212;
19990#line 4070
19991                      __cil_tmp213 = *mem_537;
19992#line 4070
19993                      __cil_tmp214 = 775 << 2;
19994#line 4070
19995                      __cil_tmp215 = 7 << 16;
19996#line 4070
19997                      __cil_tmp216 = __cil_tmp215 | __cil_tmp214;
19998#line 4070
19999                      __cil_tmp217 = __cil_tmp216 | 3;
20000#line 4070
20001                      __cil_tmp218 = (unsigned long )__cil_tmp217;
20002#line 4070
20003                      __cil_tmp219 = (void *)0;
20004#line 4070
20005                      FlFdcDeviceIo(__cil_tmp213, __cil_tmp218, __cil_tmp219);
20006#line 4074
20007                      __cil_tmp220 = (unsigned int )disketteExtension;
20008#line 4074
20009                      __cil_tmp221 = __cil_tmp220 + 8;
20010#line 4074
20011                      mem_538 = (PDEVICE_OBJECT *)__cil_tmp221;
20012#line 4074
20013                      __cil_tmp222 = *mem_538;
20014#line 4074
20015                      __cil_tmp223 = 769 << 2;
20016#line 4074
20017                      __cil_tmp224 = 7 << 16;
20018#line 4074
20019                      __cil_tmp225 = __cil_tmp224 | __cil_tmp223;
20020#line 4074
20021                      __cil_tmp226 = __cil_tmp225 | 3;
20022#line 4074
20023                      __cil_tmp227 = (unsigned long )__cil_tmp226;
20024#line 4074
20025                      __cil_tmp228 = (unsigned int )disketteExtension;
20026#line 4074
20027                      __cil_tmp229 = __cil_tmp228 + 28;
20028#line 4074
20029                      mem_539 = (PDEVICE_OBJECT *)__cil_tmp229;
20030#line 4074
20031                      __cil_tmp230 = *mem_539;
20032#line 4074
20033                      __cil_tmp231 = (void *)__cil_tmp230;
20034#line 4074
20035                      FlFdcDeviceIo(__cil_tmp222, __cil_tmp227, __cil_tmp231);
20036#line 4078
20037                      __cil_tmp232 = (unsigned int )disketteExtension;
20038#line 4078
20039                      __cil_tmp233 = __cil_tmp232 + 172;
20040#line 4078
20041                      mem_540 = (BOOLEAN *)__cil_tmp233;
20042#line 4078
20043                      *mem_540 = (unsigned char)0;
20044                      }
20045                    } else {
20046
20047                    }
20048                    }
20049                    }
20050                    {
20051#line 4082
20052                    __cil_tmp234 = (unsigned int )disketteExtension;
20053#line 4082
20054                    __cil_tmp235 = __cil_tmp234 + 56;
20055#line 4082
20056                    __cil_tmp236 = (FAST_MUTEX *)__cil_tmp235;
20057#line 4082
20058                    ExAcquireFastMutex(__cil_tmp236);
20059#line 4084
20060                    __cil_tmp237 = (unsigned int )disketteExtension;
20061#line 4084
20062                    __cil_tmp238 = __cil_tmp237 + 88;
20063#line 4084
20064                    mem_541 = (LONG *)__cil_tmp238;
20065#line 4084
20066                    *mem_541 = -1L;
20067#line 4085
20068                    __cil_tmp239 = (unsigned int )disketteExtension;
20069#line 4085
20070                    __cil_tmp240 = __cil_tmp239 + 56;
20071#line 4085
20072                    __cil_tmp241 = (FAST_MUTEX *)__cil_tmp240;
20073#line 4085
20074                    ExReleaseFastMutex(__cil_tmp241);
20075#line 4087
20076                    ExAcquireFastMutex(PagingMutex);
20077#line 4087
20078                    PagingReferenceCount = PagingReferenceCount - 1UL;
20079                    }
20080#line 4087
20081                    if (PagingReferenceCount == 0UL) {
20082                      {
20083#line 4087
20084                      __cil_tmp242 = (void *)(& DriverEntry);
20085#line 4087
20086                      MmPageEntireDriver(__cil_tmp242);
20087                      }
20088                    } else {
20089
20090                    }
20091                    {
20092#line 4087
20093                    ExReleaseFastMutex(PagingMutex);
20094#line 4089
20095                    PsTerminateSystemThread(0L);
20096                    }
20097                  } else {
20098#line 4093
20099                    ntStatus = -1073741808L;
20100                  }
20101                  }
20102                }
20103                }
20104                goto switch_121_break;
20105                switch_121_3: /* CIL Label */ ;
20106                switch_121_4: /* CIL Label */ ;
20107                {
20108#line 4108
20109                __cil_tmp243 = (unsigned int )disketteExtension;
20110#line 4108
20111                __cil_tmp244 = __cil_tmp243 + 172;
20112#line 4108
20113                mem_542 = (BOOLEAN *)__cil_tmp244;
20114#line 4108
20115                __cil_tmp245 = *mem_542;
20116#line 4108
20117                if (! __cil_tmp245) {
20118                  {
20119#line 4110
20120                  __cil_tmp246 = (unsigned int )disketteExtension;
20121#line 4110
20122                  __cil_tmp247 = __cil_tmp246 + 8;
20123#line 4110
20124                  mem_543 = (PDEVICE_OBJECT *)__cil_tmp247;
20125#line 4110
20126                  __cil_tmp248 = *mem_543;
20127#line 4110
20128                  __cil_tmp249 = 768 << 2;
20129#line 4110
20130                  __cil_tmp250 = 7 << 16;
20131#line 4110
20132                  __cil_tmp251 = __cil_tmp250 | __cil_tmp249;
20133#line 4110
20134                  __cil_tmp252 = __cil_tmp251 | 3;
20135#line 4110
20136                  __cil_tmp253 = (unsigned long )__cil_tmp252;
20137#line 4110
20138                  __cil_tmp254 = (void *)(& acquireWait);
20139#line 4110
20140                  ntStatus = FlFdcDeviceIo(__cil_tmp248, __cil_tmp253, __cil_tmp254);
20141                  }
20142#line 4115
20143                  if (ntStatus >= 0L) {
20144#line 4116
20145                    __cil_tmp255 = (unsigned int )disketteExtension;
20146#line 4116
20147                    __cil_tmp256 = __cil_tmp255 + 172;
20148#line 4116
20149                    mem_544 = (BOOLEAN *)__cil_tmp256;
20150#line 4116
20151                    *mem_544 = (unsigned char)1;
20152                    {
20153#line 4117
20154                    __cil_tmp257 = (KUSER_SHARED_DATA * const  )4292804608U;
20155#line 4117
20156                    __cil_tmp258 = (unsigned int )__cil_tmp257;
20157#line 4117
20158                    __cil_tmp259 = __cil_tmp258 + 732;
20159#line 4117
20160                    mem_545 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp259;
20161#line 4117
20162                    __cil_tmp260 = *mem_545;
20163#line 4117
20164                    __cil_tmp261 = (int )__cil_tmp260;
20165#line 4117
20166                    if (__cil_tmp261 == 1) {
20167#line 4117
20168                      __cil_tmp262 = (unsigned int )disketteExtension;
20169#line 4117
20170                      __cil_tmp263 = __cil_tmp262 + 392;
20171#line 4117
20172                      mem_546 = (BOOLEAN *)__cil_tmp263;
20173#line 4117
20174                      *mem_546 = (unsigned char)0;
20175                    } else {
20176
20177                    }
20178                    }
20179                  } else {
20180                    goto switch_121_break;
20181                  }
20182                } else {
20183
20184                }
20185                }
20186                {
20187#line 4128
20188                __cil_tmp264 = (unsigned int )disketteExtension;
20189#line 4128
20190                __cil_tmp265 = __cil_tmp264 + 28;
20191#line 4128
20192                mem_547 = (PDEVICE_OBJECT *)__cil_tmp265;
20193#line 4128
20194                __cil_tmp266 = *mem_547;
20195#line 4128
20196                __cil_tmp267 = (unsigned int )__cil_tmp266;
20197#line 4128
20198                __cil_tmp268 = __cil_tmp267 + 28;
20199#line 4128
20200                mem_548 = (ULONG *)__cil_tmp268;
20201#line 4128
20202                __cil_tmp269 = *mem_548;
20203#line 4128
20204                if (__cil_tmp269 & 2UL) {
20205                  {
20206#line 4128
20207                  __cil_tmp270 = (unsigned int )irpSp;
20208#line 4128
20209                  __cil_tmp271 = __cil_tmp270 + 2;
20210#line 4128
20211                  mem_549 = (UCHAR *)__cil_tmp271;
20212#line 4128
20213                  __cil_tmp272 = *mem_549;
20214#line 4128
20215                  __cil_tmp273 = (int )__cil_tmp272;
20216#line 4128
20217                  __cil_tmp274 = __cil_tmp273 & 2;
20218#line 4128
20219                  if (! __cil_tmp274) {
20220                    {
20221#line 4136
20222                    while (1) {
20223                      while_123_continue: /* CIL Label */ ;
20224                      goto while_123_break;
20225                    }
20226                    while_123_break: /* CIL Label */ ;
20227                    }
20228#line 4145
20229                    ntStatus = -2147483626L;
20230                  } else {
20231                    {
20232#line 4149
20233                    ntStatus = FlReadWrite(disketteExtension, irp, (unsigned char)0);
20234                    }
20235                  }
20236                  }
20237                } else {
20238                  {
20239#line 4149
20240                  ntStatus = FlReadWrite(disketteExtension, irp, (unsigned char)0);
20241                  }
20242                }
20243                }
20244                goto switch_121_break;
20245                switch_121_14: /* CIL Label */ ;
20246                {
20247#line 4161
20248                __cil_tmp275 = (unsigned int )disketteExtension;
20249#line 4161
20250                __cil_tmp276 = __cil_tmp275 + 172;
20251#line 4161
20252                mem_550 = (BOOLEAN *)__cil_tmp276;
20253#line 4161
20254                __cil_tmp277 = *mem_550;
20255#line 4161
20256                if (! __cil_tmp277) {
20257                  {
20258#line 4163
20259                  __cil_tmp278 = (unsigned int )disketteExtension;
20260#line 4163
20261                  __cil_tmp279 = __cil_tmp278 + 8;
20262#line 4163
20263                  mem_551 = (PDEVICE_OBJECT *)__cil_tmp279;
20264#line 4163
20265                  __cil_tmp280 = *mem_551;
20266#line 4163
20267                  __cil_tmp281 = 768 << 2;
20268#line 4163
20269                  __cil_tmp282 = 7 << 16;
20270#line 4163
20271                  __cil_tmp283 = __cil_tmp282 | __cil_tmp281;
20272#line 4163
20273                  __cil_tmp284 = __cil_tmp283 | 3;
20274#line 4163
20275                  __cil_tmp285 = (unsigned long )__cil_tmp284;
20276#line 4163
20277                  __cil_tmp286 = (void *)(& acquireWait);
20278#line 4163
20279                  ntStatus = FlFdcDeviceIo(__cil_tmp280, __cil_tmp285, __cil_tmp286);
20280                  }
20281#line 4168
20282                  if (ntStatus >= 0L) {
20283#line 4169
20284                    __cil_tmp287 = (unsigned int )disketteExtension;
20285#line 4169
20286                    __cil_tmp288 = __cil_tmp287 + 172;
20287#line 4169
20288                    mem_552 = (BOOLEAN *)__cil_tmp288;
20289#line 4169
20290                    *mem_552 = (unsigned char)1;
20291                    {
20292#line 4170
20293                    __cil_tmp289 = (KUSER_SHARED_DATA * const  )4292804608U;
20294#line 4170
20295                    __cil_tmp290 = (unsigned int )__cil_tmp289;
20296#line 4170
20297                    __cil_tmp291 = __cil_tmp290 + 732;
20298#line 4170
20299                    mem_553 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp291;
20300#line 4170
20301                    __cil_tmp292 = *mem_553;
20302#line 4170
20303                    __cil_tmp293 = (int )__cil_tmp292;
20304#line 4170
20305                    if (__cil_tmp293 == 1) {
20306#line 4170
20307                      __cil_tmp294 = (unsigned int )disketteExtension;
20308#line 4170
20309                      __cil_tmp295 = __cil_tmp294 + 392;
20310#line 4170
20311                      mem_554 = (BOOLEAN *)__cil_tmp295;
20312#line 4170
20313                      *mem_554 = (unsigned char)0;
20314                    } else {
20315
20316                    }
20317                    }
20318                  } else {
20319                    goto switch_121_break;
20320                  }
20321                } else {
20322
20323                }
20324                }
20325                {
20326#line 4180
20327                __cil_tmp296 = (unsigned int )disketteExtension;
20328#line 4180
20329                __cil_tmp297 = __cil_tmp296 + 28;
20330#line 4180
20331                mem_555 = (PDEVICE_OBJECT *)__cil_tmp297;
20332#line 4180
20333                __cil_tmp298 = *mem_555;
20334#line 4180
20335                __cil_tmp299 = (unsigned int )__cil_tmp298;
20336#line 4180
20337                __cil_tmp300 = __cil_tmp299 + 28;
20338#line 4180
20339                mem_556 = (ULONG *)__cil_tmp300;
20340#line 4180
20341                __cil_tmp301 = *mem_556;
20342#line 4180
20343                if (__cil_tmp301 & 2UL) {
20344                  {
20345#line 4180
20346                  __cil_tmp302 = (unsigned int )irpSp;
20347#line 4180
20348                  __cil_tmp303 = __cil_tmp302 + 2;
20349#line 4180
20350                  mem_557 = (UCHAR *)__cil_tmp303;
20351#line 4180
20352                  __cil_tmp304 = *mem_557;
20353#line 4180
20354                  __cil_tmp305 = (int )__cil_tmp304;
20355#line 4180
20356                  __cil_tmp306 = __cil_tmp305 & 2;
20357#line 4180
20358                  if (! __cil_tmp306) {
20359                    {
20360#line 4188
20361                    while (1) {
20362                      while_124_continue: /* CIL Label */ ;
20363                      goto while_124_break;
20364                    }
20365                    while_124_break: /* CIL Label */ ;
20366                    }
20367#line 4196
20368                    ntStatus = -2147483626L;
20369                  } else {
20370                    goto _L___2;
20371                  }
20372                  }
20373                } else {
20374                  _L___2: 
20375                  {
20376#line 4200
20377                  __cil_tmp307 = 0 + 8;
20378#line 4200
20379                  __cil_tmp308 = 4 + __cil_tmp307;
20380#line 4200
20381                  __cil_tmp309 = (unsigned int )irpSp;
20382#line 4200
20383                  __cil_tmp310 = __cil_tmp309 + __cil_tmp308;
20384#line 4200
20385                  mem_558 = (ULONG *)__cil_tmp310;
20386#line 4200
20387                  __cil_tmp311 = *mem_558;
20388#line 4201
20389                  if ((int )__cil_tmp311 == (__cil_tmp315 | __cil_tmp312)) {
20390                    goto switch_125_exp_12;
20391                  } else {
20392#line 4202
20393                    if ((int )__cil_tmp311 == (__cil_tmp319 | __cil_tmp316)) {
20394                      goto switch_125_exp_13;
20395                    } else {
20396#line 4232
20397                      if ((int )__cil_tmp311 == (__cil_tmp329 | __cil_tmp328)) {
20398                        goto switch_125_exp_14;
20399                      } else {
20400#line 4261
20401                        if ((int )__cil_tmp311 == 7 << 16) {
20402                          goto switch_125_exp_15;
20403                        } else {
20404#line 4392
20405                          if ((int )__cil_tmp311 == (__cil_tmp399 | __cil_tmp396)) {
20406                            goto switch_125_exp_16;
20407                          } else {
20408#line 4393
20409                            if ((int )__cil_tmp311 == (__cil_tmp403 | __cil_tmp400)) {
20410                              goto switch_125_exp_17;
20411                            } else {
20412#line 4444
20413                              if ((int )__cil_tmp311 == (__cil_tmp407 | __cil_tmp406)) {
20414                                goto switch_125_exp_18;
20415                              } else {
20416#line 4200
20417                                if (0) {
20418                                  switch_125_exp_12: /* CIL Label */ 
20419                                  {
20420                                  __cil_tmp312 = 512 << 2;
20421                                  __cil_tmp313 = 1 << 14;
20422                                  __cil_tmp314 = 45 << 16;
20423                                  __cil_tmp315 = __cil_tmp314 | __cil_tmp313;
20424
20425                                  }
20426                                  switch_125_exp_13: /* CIL Label */ 
20427                                  {
20428                                  __cil_tmp316 = 512 << 2;
20429                                  __cil_tmp317 = 1 << 14;
20430                                  __cil_tmp318 = 7 << 16;
20431                                  __cil_tmp319 = __cil_tmp318 | __cil_tmp317;
20432
20433                                  }
20434                                  {
20435#line 4215
20436                                  while (1) {
20437                                    while_126_continue: /* CIL Label */ ;
20438                                    goto while_126_break;
20439                                  }
20440                                  while_126_break: /* CIL Label */ ;
20441                                  }
20442                                  {
20443#line 4223
20444                                  __cil_tmp320 = (unsigned int )irpSp;
20445#line 4223
20446                                  __cil_tmp321 = __cil_tmp320 + 2;
20447#line 4223
20448                                  mem_559 = (UCHAR *)__cil_tmp321;
20449#line 4223
20450                                  __cil_tmp322 = *mem_559;
20451#line 4223
20452                                  __cil_tmp323 = (int )__cil_tmp322;
20453#line 4223
20454                                  __cil_tmp324 = __cil_tmp323 & 2;
20455#line 4223
20456                                  __cil_tmp325 = ! __cil_tmp324;
20457#line 4223
20458                                  __cil_tmp326 = ! __cil_tmp325;
20459#line 4223
20460                                  __cil_tmp327 = (unsigned char )__cil_tmp326;
20461#line 4223
20462                                  ntStatus = FlStartDrive(disketteExtension, irp,
20463                                                          (unsigned char)0, (unsigned char)0,
20464                                                          __cil_tmp327);
20465                                  }
20466                                  goto switch_125_break;
20467                                  switch_125_exp_14: /* CIL Label */ 
20468                                  {
20469                                  __cil_tmp328 = 9 << 2;
20470                                  __cil_tmp329 = 7 << 16;
20471
20472                                  }
20473                                  {
20474#line 4244
20475                                  while (1) {
20476                                    while_127_continue: /* CIL Label */ ;
20477                                    goto while_127_break;
20478                                  }
20479                                  while_127_break: /* CIL Label */ ;
20480                                  }
20481                                  {
20482#line 4246
20483                                  __cil_tmp330 = (unsigned int )disketteExtension;
20484#line 4246
20485                                  __cil_tmp331 = __cil_tmp330 + 250;
20486                                  {
20487#line 4246
20488                                  mem_560 = (BOOLEAN *)__cil_tmp331;
20489#line 4246
20490                                  if (*mem_560) {
20491#line 4248
20492                                    ntStatus = -1073741811L;
20493                                  } else {
20494                                    {
20495#line 4252
20496                                    ntStatus = FlStartDrive(disketteExtension, irp,
20497                                                            (unsigned char)1, (unsigned char)0,
20498                                                            (unsigned char)1);
20499                                    }
20500                                  }
20501                                  }
20502                                  }
20503                                  goto switch_125_break;
20504                                  switch_125_exp_15: /* CIL Label */ ;
20505                                  {
20506#line 4268
20507                                  while (1) {
20508                                    while_128_continue: /* CIL Label */ ;
20509                                    goto while_128_break;
20510                                  }
20511                                  while_128_break: /* CIL Label */ ;
20512                                  }
20513                                  {
20514#line 4276
20515                                  __cil_tmp332 = (unsigned long )52U;
20516#line 4276
20517                                  __cil_tmp333 = (unsigned int )irpSp;
20518#line 4276
20519                                  __cil_tmp334 = __cil_tmp333 + 4;
20520#line 4276
20521                                  mem_561 = (ULONG *)__cil_tmp334;
20522#line 4276
20523                                  __cil_tmp335 = *mem_561;
20524#line 4276
20525                                  if (__cil_tmp335 < __cil_tmp332) {
20526#line 4280
20527                                    ntStatus = -1073741811L;
20528                                  } else {
20529                                    {
20530#line 4284
20531                                    __cil_tmp336 = (unsigned int )irpSp;
20532#line 4284
20533                                    __cil_tmp337 = __cil_tmp336 + 2;
20534#line 4284
20535                                    mem_562 = (UCHAR *)__cil_tmp337;
20536#line 4284
20537                                    __cil_tmp338 = *mem_562;
20538#line 4284
20539                                    __cil_tmp339 = (int )__cil_tmp338;
20540#line 4284
20541                                    __cil_tmp340 = __cil_tmp339 & 2;
20542#line 4284
20543                                    __cil_tmp341 = ! __cil_tmp340;
20544#line 4284
20545                                    __cil_tmp342 = ! __cil_tmp341;
20546#line 4284
20547                                    __cil_tmp343 = (unsigned char )__cil_tmp342;
20548#line 4284
20549                                    ntStatus = FlStartDrive(disketteExtension, irp,
20550                                                            (unsigned char)0, (unsigned char)1,
20551                                                            __cil_tmp343);
20552                                    }
20553                                  }
20554                                  }
20555#line 4299
20556                                  if (ntStatus >= 0L) {
20557                                    goto _L___0;
20558                                  } else {
20559#line 4299
20560                                    if (ntStatus == -1073741804L) {
20561                                      _L___0: 
20562#line 4302
20563                                      __cil_tmp344 = (unsigned int )irp;
20564#line 4302
20565                                      __cil_tmp345 = __cil_tmp344 + 12;
20566#line 4302
20567                                      mem_563 = (PVOID *)__cil_tmp345;
20568#line 4302
20569                                      __cil_tmp346 = *mem_563;
20570#line 4302
20571                                      outputBuffer = (struct _DISK_GEOMETRY *)__cil_tmp346;
20572#line 4310
20573                                      ntStatus = 0L;
20574#line 4312
20575                                      __cil_tmp347 = (unsigned int )outputBuffer;
20576#line 4312
20577                                      __cil_tmp348 = __cil_tmp347 + 8;
20578#line 4312
20579                                      __cil_tmp349 = (unsigned int )disketteExtension;
20580#line 4312
20581                                      __cil_tmp350 = __cil_tmp349 + 184;
20582#line 4312
20583                                      mem_564 = (MEDIA_TYPE *)__cil_tmp348;
20584#line 4312
20585                                      mem_565 = (MEDIA_TYPE *)__cil_tmp350;
20586#line 4312
20587                                      *mem_564 = *mem_565;
20588                                      {
20589#line 4320
20590                                      __cil_tmp351 = (unsigned int )disketteExtension;
20591#line 4320
20592                                      __cil_tmp352 = __cil_tmp351 + 184;
20593#line 4320
20594                                      mem_566 = (MEDIA_TYPE *)__cil_tmp352;
20595#line 4320
20596                                      __cil_tmp353 = *mem_566;
20597#line 4320
20598                                      __cil_tmp354 = (int )__cil_tmp353;
20599#line 4320
20600                                      if (__cil_tmp354 == 0) {
20601                                        {
20602#line 4326
20603                                        while (1) {
20604                                          while_129_continue: /* CIL Label */ ;
20605                                          goto while_129_break;
20606                                        }
20607                                        while_129_break: /* CIL Label */ ;
20608                                        }
20609#line 4333
20610                                        mem_567 = (ULONG *)outputBuffer;
20611#line 4333
20612                                        *mem_567 = 0UL;
20613#line 4334
20614                                        __cil_tmp355 = 0 + 4;
20615#line 4334
20616                                        __cil_tmp356 = 0 + __cil_tmp355;
20617#line 4334
20618                                        __cil_tmp357 = (unsigned int )outputBuffer;
20619#line 4334
20620                                        __cil_tmp358 = __cil_tmp357 + __cil_tmp356;
20621#line 4334
20622                                        mem_568 = (LONG *)__cil_tmp358;
20623#line 4334
20624                                        *mem_568 = 0L;
20625#line 4335
20626                                        __cil_tmp359 = (unsigned int )outputBuffer;
20627#line 4335
20628                                        __cil_tmp360 = __cil_tmp359 + 40;
20629#line 4335
20630                                        mem_569 = (ULONG *)__cil_tmp360;
20631#line 4335
20632                                        *mem_569 = 0UL;
20633#line 4336
20634                                        __cil_tmp361 = (unsigned int )outputBuffer;
20635#line 4336
20636                                        __cil_tmp362 = __cil_tmp361 + 44;
20637#line 4336
20638                                        mem_570 = (ULONG *)__cil_tmp362;
20639#line 4336
20640                                        *mem_570 = 0UL;
20641#line 4337
20642                                        __cil_tmp363 = (unsigned int )outputBuffer;
20643#line 4337
20644                                        __cil_tmp364 = __cil_tmp363 + 48;
20645#line 4337
20646                                        mem_571 = (ULONG *)__cil_tmp364;
20647#line 4337
20648                                        *mem_571 = 0UL;
20649                                      } else {
20650                                        {
20651#line 4349
20652                                        while (1) {
20653                                          while_130_continue: /* CIL Label */ ;
20654                                          goto while_130_break;
20655                                        }
20656                                        while_130_break: /* CIL Label */ ;
20657                                        }
20658#line 4350
20659                                        __cil_tmp365 = 308 + 48;
20660#line 4350
20661                                        __cil_tmp366 = (unsigned int )disketteExtension;
20662#line 4350
20663                                        __cil_tmp367 = __cil_tmp366 + __cil_tmp365;
20664#line 4350
20665                                        mem_572 = (UCHAR *)__cil_tmp367;
20666#line 4350
20667                                        __cil_tmp368 = *mem_572;
20668#line 4350
20669                                        __cil_tmp369 = (int )__cil_tmp368;
20670#line 4350
20671                                        __cil_tmp370 = __cil_tmp369 + 1;
20672#line 4350
20673                                        mem_573 = (ULONG *)outputBuffer;
20674#line 4350
20675                                        *mem_573 = (unsigned long )__cil_tmp370;
20676#line 4354
20677                                        __cil_tmp371 = 0 + 4;
20678#line 4354
20679                                        __cil_tmp372 = 0 + __cil_tmp371;
20680#line 4354
20681                                        __cil_tmp373 = (unsigned int )outputBuffer;
20682#line 4354
20683                                        __cil_tmp374 = __cil_tmp373 + __cil_tmp372;
20684#line 4354
20685                                        mem_574 = (LONG *)__cil_tmp374;
20686#line 4354
20687                                        *mem_574 = 0L;
20688#line 4356
20689                                        __cil_tmp375 = (unsigned int )outputBuffer;
20690#line 4356
20691                                        __cil_tmp376 = __cil_tmp375 + 40;
20692#line 4356
20693                                        __cil_tmp377 = 308 + 51;
20694#line 4356
20695                                        __cil_tmp378 = (unsigned int )disketteExtension;
20696#line 4356
20697                                        __cil_tmp379 = __cil_tmp378 + __cil_tmp377;
20698#line 4356
20699                                        mem_575 = (UCHAR *)__cil_tmp379;
20700#line 4356
20701                                        __cil_tmp380 = *mem_575;
20702#line 4356
20703                                        mem_576 = (ULONG *)__cil_tmp376;
20704#line 4356
20705                                        *mem_576 = (unsigned long )__cil_tmp380;
20706#line 4360
20707                                        __cil_tmp381 = (unsigned int )outputBuffer;
20708#line 4360
20709                                        __cil_tmp382 = __cil_tmp381 + 44;
20710#line 4360
20711                                        __cil_tmp383 = 308 + 38;
20712#line 4360
20713                                        __cil_tmp384 = (unsigned int )disketteExtension;
20714#line 4360
20715                                        __cil_tmp385 = __cil_tmp384 + __cil_tmp383;
20716#line 4360
20717                                        mem_577 = (UCHAR *)__cil_tmp385;
20718#line 4360
20719                                        __cil_tmp386 = *mem_577;
20720#line 4360
20721                                        mem_578 = (ULONG *)__cil_tmp382;
20722#line 4360
20723                                        *mem_578 = (unsigned long )__cil_tmp386;
20724#line 4364
20725                                        __cil_tmp387 = (unsigned int )outputBuffer;
20726#line 4364
20727                                        __cil_tmp388 = __cil_tmp387 + 48;
20728#line 4364
20729                                        __cil_tmp389 = 308 + 36;
20730#line 4364
20731                                        __cil_tmp390 = (unsigned int )disketteExtension;
20732#line 4364
20733                                        __cil_tmp391 = __cil_tmp390 + __cil_tmp389;
20734#line 4364
20735                                        mem_579 = (USHORT *)__cil_tmp391;
20736#line 4364
20737                                        __cil_tmp392 = *mem_579;
20738#line 4364
20739                                        mem_580 = (ULONG *)__cil_tmp388;
20740#line 4364
20741                                        *mem_580 = (unsigned long )__cil_tmp392;
20742                                      }
20743                                      }
20744                                      {
20745#line 4384
20746                                      while (1) {
20747                                        while_131_continue: /* CIL Label */ ;
20748                                        goto while_131_break;
20749                                      }
20750                                      while_131_break: /* CIL Label */ ;
20751                                      }
20752                                    } else {
20753
20754                                    }
20755                                  }
20756#line 4388
20757                                  __cil_tmp393 = 24 + 4;
20758#line 4388
20759                                  __cil_tmp394 = (unsigned int )irp;
20760#line 4388
20761                                  __cil_tmp395 = __cil_tmp394 + __cil_tmp393;
20762#line 4388
20763                                  mem_581 = (ULONG_PTR *)__cil_tmp395;
20764#line 4388
20765                                  *mem_581 = (unsigned long )52U;
20766                                  goto switch_125_break;
20767                                  switch_125_exp_16: /* CIL Label */ 
20768                                  {
20769                                  __cil_tmp396 = 11 << 2;
20770                                  __cil_tmp397 = 3 << 14;
20771                                  __cil_tmp398 = 7 << 16;
20772                                  __cil_tmp399 = __cil_tmp398 | __cil_tmp397;
20773
20774                                  }
20775                                  switch_125_exp_17: /* CIL Label */ 
20776                                  {
20777                                  __cil_tmp400 = 6 << 2;
20778                                  __cil_tmp401 = 3 << 14;
20779                                  __cil_tmp402 = 7 << 16;
20780                                  __cil_tmp403 = __cil_tmp402 | __cil_tmp401;
20781
20782                                  }
20783                                  {
20784#line 4400
20785                                  while (1) {
20786                                    while_132_continue: /* CIL Label */ ;
20787                                    goto while_132_break;
20788                                  }
20789                                  while_132_break: /* CIL Label */ ;
20790                                  }
20791                                  {
20792#line 4407
20793                                  ntStatus = FlStartDrive(disketteExtension, irp,
20794                                                          (unsigned char)1, (unsigned char)0,
20795                                                          (unsigned char)0);
20796                                  }
20797#line 4420
20798                                  if (ntStatus >= 0L) {
20799                                    goto _L___1;
20800                                  } else {
20801#line 4420
20802                                    if (ntStatus == -1073741804L) {
20803                                      _L___1: 
20804                                      {
20805#line 4432
20806                                      FlAllocateIoBuffer(disketteExtension, 4096UL);
20807                                      }
20808                                      {
20809#line 4435
20810                                      __cil_tmp404 = (unsigned int )disketteExtension;
20811#line 4435
20812                                      __cil_tmp405 = __cil_tmp404 + 124;
20813                                      {
20814#line 4435
20815                                      mem_582 = (PUCHAR *)__cil_tmp405;
20816#line 4435
20817                                      if (*mem_582) {
20818                                        {
20819#line 4436
20820                                        ntStatus = FlFormat(disketteExtension, irp);
20821                                        }
20822                                      } else {
20823#line 4439
20824                                        ntStatus = -1073741670L;
20825                                      }
20826                                      }
20827                                      }
20828                                    } else {
20829
20830                                    }
20831                                  }
20832                                  goto switch_125_break;
20833                                  switch_125_exp_18: /* CIL Label */ 
20834                                  {
20835                                  __cil_tmp406 = 248 << 2;
20836                                  __cil_tmp407 = 7 << 16;
20837
20838                                  }
20839                                  {
20840#line 4448
20841                                  __cil_tmp408 = (KUSER_SHARED_DATA * const  )4292804608U;
20842#line 4448
20843                                  __cil_tmp409 = (unsigned int )__cil_tmp408;
20844#line 4448
20845                                  __cil_tmp410 = __cil_tmp409 + 732;
20846#line 4448
20847                                  mem_583 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp410;
20848#line 4448
20849                                  __cil_tmp411 = *mem_583;
20850#line 4448
20851                                  __cil_tmp412 = (int )__cil_tmp411;
20852#line 4448
20853                                  if (__cil_tmp412 == 1) {
20854                                    {
20855#line 4449
20856                                    __cil_tmp413 = 0 * 1U;
20857#line 4449
20858                                    __cil_tmp414 = 112 + __cil_tmp413;
20859#line 4449
20860                                    __cil_tmp415 = (unsigned int )disketteExtension;
20861#line 4449
20862                                    __cil_tmp416 = __cil_tmp415 + __cil_tmp414;
20863#line 4449
20864                                    mem_584 = (UCHAR *)__cil_tmp416;
20865#line 4449
20866                                    *mem_584 = (unsigned char)14;
20867#line 4450
20868                                    __cil_tmp417 = 1 * 1U;
20869#line 4450
20870                                    __cil_tmp418 = 112 + __cil_tmp417;
20871#line 4450
20872                                    __cil_tmp419 = (unsigned int )disketteExtension;
20873#line 4450
20874                                    __cil_tmp420 = __cil_tmp419 + __cil_tmp418;
20875#line 4450
20876                                    __cil_tmp421 = (unsigned int )disketteExtension;
20877#line 4450
20878                                    __cil_tmp422 = __cil_tmp421 + 248;
20879#line 4450
20880                                    mem_585 = (UCHAR *)__cil_tmp420;
20881#line 4450
20882                                    mem_586 = (UCHAR *)__cil_tmp422;
20883#line 4450
20884                                    *mem_585 = *mem_586;
20885#line 4452
20886                                    __cil_tmp423 = 0 * 1U;
20887#line 4452
20888                                    __cil_tmp424 = 112 + __cil_tmp423;
20889#line 4452
20890                                    __cil_tmp425 = (unsigned int )disketteExtension;
20891#line 4452
20892                                    __cil_tmp426 = __cil_tmp425 + __cil_tmp424;
20893#line 4452
20894                                    __cil_tmp427 = (UCHAR *)__cil_tmp426;
20895#line 4452
20896                                    __cil_tmp428 = 0 * 1U;
20897#line 4452
20898                                    __cil_tmp429 = 112 + __cil_tmp428;
20899#line 4452
20900                                    __cil_tmp430 = (unsigned int )disketteExtension;
20901#line 4452
20902                                    __cil_tmp431 = __cil_tmp430 + __cil_tmp429;
20903#line 4452
20904                                    __cil_tmp432 = (UCHAR *)__cil_tmp431;
20905#line 4452
20906                                    __cil_tmp433 = (void *)0;
20907#line 4452
20908                                    __cil_tmp434 = (struct _MDL *)__cil_tmp433;
20909#line 4452
20910                                    ntStatus = FlIssueCommand(disketteExtension, __cil_tmp427,
20911                                                              __cil_tmp432, __cil_tmp434,
20912                                                              0UL, 0UL);
20913                                    }
20914#line 4459
20915                                    if (ntStatus >= 0L) {
20916#line 4461
20917                                      __cil_tmp435 = (unsigned int )irp;
20918#line 4461
20919                                      __cil_tmp436 = __cil_tmp435 + 12;
20920#line 4461
20921                                      mem_587 = (PVOID *)__cil_tmp436;
20922#line 4461
20923                                      __cil_tmp437 = *mem_587;
20924#line 4461
20925                                      outputBuffer___0 = (struct _SENSE_DEVISE_STATUS_PTOS *)__cil_tmp437;
20926#line 4463
20927                                      __cil_tmp438 = 0 * 1U;
20928#line 4463
20929                                      __cil_tmp439 = (unsigned int )(Result_Status3_PTOS) + __cil_tmp438;
20930#line 4463
20931                                      mem_588 = (UCHAR *)outputBuffer___0;
20932#line 4463
20933                                      mem_589 = (UCHAR *)__cil_tmp439;
20934#line 4463
20935                                      *mem_588 = *mem_589;
20936#line 4466
20937                                      __cil_tmp440 = 24 + 4;
20938#line 4466
20939                                      __cil_tmp441 = (unsigned int )irp;
20940#line 4466
20941                                      __cil_tmp442 = __cil_tmp441 + __cil_tmp440;
20942#line 4466
20943                                      mem_590 = (ULONG_PTR *)__cil_tmp442;
20944#line 4466
20945                                      *mem_590 = (unsigned long )1U;
20946                                    } else {
20947
20948                                    }
20949                                    goto switch_125_break;
20950                                  } else {
20951
20952                                  }
20953                                  }
20954                                } else {
20955                                  switch_125_break: /* CIL Label */ ;
20956                                }
20957                              }
20958                            }
20959                          }
20960                        }
20961                      }
20962                    }
20963                  }
20964                  }
20965                }
20966                }
20967                goto switch_121_break;
20968                switch_121_default: /* CIL Label */ ;
20969                {
20970#line 4483
20971                while (1) {
20972                  while_133_continue: /* CIL Label */ ;
20973                  goto while_133_break;
20974                }
20975                while_133_break: /* CIL Label */ ;
20976                }
20977#line 4485
20978                ntStatus = -1073741822L;
20979              } else {
20980                switch_121_break: /* CIL Label */ ;
20981              }
20982              }
20983            }
20984          }
20985        }
20986      }
20987      }
20988#line 4490
20989      if (ntStatus == -2147483631L) {
20990        {
20991#line 4496
20992        while (1) {
20993          while_134_continue: /* CIL Label */ ;
20994          {
20995#line 4498
20996          __cil_tmp443 = (unsigned int )disketteExtension;
20997#line 4498
20998          __cil_tmp444 = __cil_tmp443 + 104;
20999#line 4498
21000          mem_591 = (BOOLEAN *)__cil_tmp444;
21001#line 4498
21002          *mem_591 = (unsigned char)0;
21003#line 4500
21004          __cil_tmp445 = (unsigned int )irp;
21005#line 4500
21006          __cil_tmp446 = __cil_tmp445 + 24;
21007#line 4500
21008          mem_592 = (NTSTATUS *)__cil_tmp446;
21009#line 4500
21010          *mem_592 = -2147483631L;
21011#line 4502
21012          IofCompleteRequest(irp, (char)1);
21013#line 4504
21014          __cil_tmp447 = (unsigned int )disketteExtension;
21015#line 4504
21016          __cil_tmp448 = __cil_tmp447 + 96;
21017#line 4504
21018          __cil_tmp449 = (LIST_ENTRY *)__cil_tmp448;
21019#line 4504
21020          __cil_tmp450 = (unsigned int )disketteExtension;
21021#line 4504
21022          __cil_tmp451 = __cil_tmp450 + 52;
21023#line 4504
21024          __cil_tmp452 = (KSPIN_LOCK *)__cil_tmp451;
21025#line 4504
21026          request = ExfInterlockedRemoveHeadList(__cil_tmp449, __cil_tmp452);
21027          }
21028#line 4508
21029          if (! request) {
21030            goto while_134_break;
21031          } else {
21032
21033          }
21034          {
21035#line 4512
21036          __cil_tmp453 = (unsigned int )disketteExtension;
21037#line 4512
21038          __cil_tmp454 = __cil_tmp453 + 56;
21039#line 4512
21040          __cil_tmp455 = (FAST_MUTEX *)__cil_tmp454;
21041#line 4512
21042          ExAcquireFastMutex(__cil_tmp455);
21043#line 4515
21044          __cil_tmp456 = (unsigned int )disketteExtension;
21045#line 4515
21046          __cil_tmp457 = __cil_tmp456 + 88;
21047#line 4515
21048          __cil_tmp458 = (unsigned int )disketteExtension;
21049#line 4515
21050          __cil_tmp459 = __cil_tmp458 + 88;
21051#line 4515
21052          mem_593 = (LONG *)__cil_tmp459;
21053#line 4515
21054          __cil_tmp460 = *mem_593;
21055#line 4515
21056          mem_594 = (LONG *)__cil_tmp457;
21057#line 4515
21058          *mem_594 = __cil_tmp460 - 1L;
21059#line 4516
21060          __cil_tmp461 = (unsigned int )disketteExtension;
21061#line 4516
21062          __cil_tmp462 = __cil_tmp461 + 56;
21063#line 4516
21064          __cil_tmp463 = (FAST_MUTEX *)__cil_tmp462;
21065#line 4516
21066          ExReleaseFastMutex(__cil_tmp463);
21067#line 4519
21068          __cil_tmp464 = 0 + 24;
21069#line 4519
21070          __cil_tmp465 = 64 + __cil_tmp464;
21071#line 4519
21072          __cil_tmp466 = (IRP *)0;
21073#line 4519
21074          __cil_tmp467 = (unsigned int )__cil_tmp466;
21075#line 4519
21076          __cil_tmp468 = __cil_tmp467 + __cil_tmp465;
21077#line 4519
21078          __cil_tmp469 = (LIST_ENTRY *)__cil_tmp468;
21079#line 4519
21080          __cil_tmp470 = (unsigned long )__cil_tmp469;
21081#line 4519
21082          __cil_tmp471 = (CHAR *)request;
21083#line 4519
21084          __cil_tmp472 = __cil_tmp471 - __cil_tmp470;
21085#line 4519
21086          irp = (IRP *)__cil_tmp472;
21087          }
21088        }
21089        while_134_break: /* CIL Label */ ;
21090        }
21091      } else {
21092#line 4531
21093        __cil_tmp473 = (unsigned int )irp;
21094#line 4531
21095        __cil_tmp474 = __cil_tmp473 + 24;
21096#line 4531
21097        mem_595 = (NTSTATUS *)__cil_tmp474;
21098#line 4531
21099        *mem_595 = ntStatus;
21100        {
21101#line 4536
21102        __cil_tmp475 = (unsigned int )disketteExtension;
21103#line 4536
21104        __cil_tmp476 = __cil_tmp475 + 124;
21105        {
21106#line 4536
21107        mem_596 = (PUCHAR *)__cil_tmp476;
21108#line 4536
21109        if (*mem_596) {
21110          {
21111#line 4537
21112          FlFreeIoBuffer(disketteExtension);
21113          }
21114        } else {
21115
21116        }
21117        }
21118        }
21119        {
21120#line 4540
21121        FlFinishOperation(irp, disketteExtension);
21122        }
21123      }
21124    }
21125    while_117_break: /* CIL Label */ ;
21126    }
21127    {
21128#line 4546
21129    __cil_tmp477 = (KUSER_SHARED_DATA * const  )4292804608U;
21130#line 4546
21131    __cil_tmp478 = (unsigned int )__cil_tmp477;
21132#line 4546
21133    __cil_tmp479 = __cil_tmp478 + 732;
21134#line 4546
21135    mem_597 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp479;
21136#line 4546
21137    __cil_tmp480 = *mem_597;
21138#line 4546
21139    __cil_tmp481 = (int )__cil_tmp480;
21140#line 4546
21141    if (__cil_tmp481 == 1) {
21142      {
21143#line 4547
21144      __cil_tmp482 = (unsigned int )disketteExtension;
21145#line 4547
21146      __cil_tmp483 = __cil_tmp482 + 172;
21147      {
21148#line 4547
21149      mem_598 = (BOOLEAN *)__cil_tmp483;
21150#line 4547
21151      if (*mem_598) {
21152        {
21153#line 4548
21154        __cil_tmp484 = (unsigned int )disketteExtension;
21155#line 4548
21156        __cil_tmp485 = __cil_tmp484 + 8;
21157#line 4548
21158        mem_599 = (PDEVICE_OBJECT *)__cil_tmp485;
21159#line 4548
21160        __cil_tmp486 = *mem_599;
21161#line 4548
21162        __cil_tmp487 = 769 << 2;
21163#line 4548
21164        __cil_tmp488 = 7 << 16;
21165#line 4548
21166        __cil_tmp489 = __cil_tmp488 | __cil_tmp487;
21167#line 4548
21168        __cil_tmp490 = __cil_tmp489 | 3;
21169#line 4548
21170        __cil_tmp491 = (unsigned long )__cil_tmp490;
21171#line 4548
21172        __cil_tmp492 = (unsigned int )disketteExtension;
21173#line 4548
21174        __cil_tmp493 = __cil_tmp492 + 28;
21175#line 4548
21176        mem_600 = (PDEVICE_OBJECT *)__cil_tmp493;
21177#line 4548
21178        __cil_tmp494 = *mem_600;
21179#line 4548
21180        __cil_tmp495 = (void *)__cil_tmp494;
21181#line 4548
21182        FlFdcDeviceIo(__cil_tmp486, __cil_tmp491, __cil_tmp495);
21183#line 4552
21184        __cil_tmp496 = (unsigned int )disketteExtension;
21185#line 4552
21186        __cil_tmp497 = __cil_tmp496 + 172;
21187#line 4552
21188        mem_601 = (BOOLEAN *)__cil_tmp497;
21189#line 4552
21190        *mem_601 = (unsigned char)0;
21191#line 4553
21192        __cil_tmp498 = (unsigned int )disketteExtension;
21193#line 4553
21194        __cil_tmp499 = __cil_tmp498 + 392;
21195#line 4553
21196        mem_602 = (BOOLEAN *)__cil_tmp499;
21197#line 4553
21198        *mem_602 = (unsigned char)1;
21199        }
21200      } else {
21201
21202      }
21203      }
21204      }
21205    } else {
21206
21207    }
21208    }
21209    __Cont: ;
21210  }
21211  while_114_break: /* CIL Label */ ;
21212  }
21213}
21214}
21215#line 4560 "floppy.c"
21216void FlConsolidateMediaTypeWithBootSector(PDISKETTE_EXTENSION DisketteExtension ,
21217                                          PBOOT_SECTOR_INFO BootSector ) 
21218{ USHORT bpbNumberOfSectors ;
21219  USHORT bpbNumberOfHeads ;
21220  USHORT bpbSectorsPerTrack ;
21221  USHORT bpbBytesPerSector ;
21222  USHORT bpbMediaByte ;
21223  USHORT bpbMaximumTrack ;
21224  MEDIA_TYPE bpbMediaType ;
21225  ULONG i ;
21226  ULONG n ;
21227  PDRIVE_MEDIA_CONSTANTS readidDriveMediaConstants ;
21228  BOOLEAN changeToBpbMedia ;
21229  int tmp ;
21230  SIZE_T tmp___0 ;
21231  unsigned int __cil_tmp16 ;
21232  unsigned int __cil_tmp17 ;
21233  unsigned int __cil_tmp18 ;
21234  unsigned int __cil_tmp19 ;
21235  UCHAR __cil_tmp20 ;
21236  int __cil_tmp21 ;
21237  unsigned int __cil_tmp22 ;
21238  unsigned int __cil_tmp23 ;
21239  unsigned int __cil_tmp24 ;
21240  unsigned int __cil_tmp25 ;
21241  UCHAR __cil_tmp26 ;
21242  int __cil_tmp27 ;
21243  unsigned int __cil_tmp28 ;
21244  unsigned int __cil_tmp29 ;
21245  unsigned int __cil_tmp30 ;
21246  unsigned int __cil_tmp31 ;
21247  UCHAR __cil_tmp32 ;
21248  int __cil_tmp33 ;
21249  unsigned int __cil_tmp34 ;
21250  unsigned int __cil_tmp35 ;
21251  unsigned int __cil_tmp36 ;
21252  unsigned int __cil_tmp37 ;
21253  UCHAR __cil_tmp38 ;
21254  int __cil_tmp39 ;
21255  int __cil_tmp40 ;
21256  int __cil_tmp41 ;
21257  unsigned int __cil_tmp42 ;
21258  unsigned int __cil_tmp43 ;
21259  unsigned int __cil_tmp44 ;
21260  unsigned int __cil_tmp45 ;
21261  UCHAR __cil_tmp46 ;
21262  int __cil_tmp47 ;
21263  unsigned int __cil_tmp48 ;
21264  unsigned int __cil_tmp49 ;
21265  unsigned int __cil_tmp50 ;
21266  unsigned int __cil_tmp51 ;
21267  UCHAR __cil_tmp52 ;
21268  int __cil_tmp53 ;
21269  int __cil_tmp54 ;
21270  int __cil_tmp55 ;
21271  unsigned int __cil_tmp56 ;
21272  unsigned int __cil_tmp57 ;
21273  unsigned int __cil_tmp58 ;
21274  unsigned int __cil_tmp59 ;
21275  UCHAR __cil_tmp60 ;
21276  int __cil_tmp61 ;
21277  unsigned int __cil_tmp62 ;
21278  unsigned int __cil_tmp63 ;
21279  unsigned int __cil_tmp64 ;
21280  unsigned int __cil_tmp65 ;
21281  UCHAR __cil_tmp66 ;
21282  int __cil_tmp67 ;
21283  int __cil_tmp68 ;
21284  int __cil_tmp69 ;
21285  unsigned int __cil_tmp70 ;
21286  unsigned int __cil_tmp71 ;
21287  unsigned int __cil_tmp72 ;
21288  unsigned int __cil_tmp73 ;
21289  UCHAR __cil_tmp74 ;
21290  int __cil_tmp75 ;
21291  unsigned int __cil_tmp76 ;
21292  unsigned int __cil_tmp77 ;
21293  unsigned int __cil_tmp78 ;
21294  unsigned int __cil_tmp79 ;
21295  UCHAR __cil_tmp80 ;
21296  int __cil_tmp81 ;
21297  int __cil_tmp82 ;
21298  int __cil_tmp83 ;
21299  unsigned int __cil_tmp84 ;
21300  unsigned int __cil_tmp85 ;
21301  unsigned int __cil_tmp86 ;
21302  unsigned int __cil_tmp87 ;
21303  UCHAR __cil_tmp88 ;
21304  int __cil_tmp89 ;
21305  int __cil_tmp90 ;
21306  int __cil_tmp91 ;
21307  int __cil_tmp92 ;
21308  int __cil_tmp93 ;
21309  int __cil_tmp94 ;
21310  KUSER_SHARED_DATA *__cil_tmp95 ;
21311  unsigned int __cil_tmp96 ;
21312  unsigned int __cil_tmp97 ;
21313  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp98 ;
21314  int __cil_tmp99 ;
21315  unsigned long __cil_tmp100 ;
21316  int __cil_tmp101 ;
21317  PDRIVE_MEDIA_CONSTANTS __cil_tmp102 ;
21318  unsigned int __cil_tmp103 ;
21319  unsigned int __cil_tmp104 ;
21320  USHORT __cil_tmp105 ;
21321  int __cil_tmp106 ;
21322  int __cil_tmp107 ;
21323  PDRIVE_MEDIA_CONSTANTS __cil_tmp108 ;
21324  unsigned int __cil_tmp109 ;
21325  unsigned int __cil_tmp110 ;
21326  UCHAR __cil_tmp111 ;
21327  int __cil_tmp112 ;
21328  int __cil_tmp113 ;
21329  PDRIVE_MEDIA_CONSTANTS __cil_tmp114 ;
21330  unsigned int __cil_tmp115 ;
21331  unsigned int __cil_tmp116 ;
21332  UCHAR __cil_tmp117 ;
21333  int __cil_tmp118 ;
21334  int __cil_tmp119 ;
21335  PDRIVE_MEDIA_CONSTANTS __cil_tmp120 ;
21336  unsigned int __cil_tmp121 ;
21337  unsigned int __cil_tmp122 ;
21338  UCHAR __cil_tmp123 ;
21339  int __cil_tmp124 ;
21340  int __cil_tmp125 ;
21341  PDRIVE_MEDIA_CONSTANTS __cil_tmp126 ;
21342  unsigned int __cil_tmp127 ;
21343  unsigned int __cil_tmp128 ;
21344  UCHAR __cil_tmp129 ;
21345  int __cil_tmp130 ;
21346  int __cil_tmp131 ;
21347  PDRIVE_MEDIA_CONSTANTS __cil_tmp132 ;
21348  unsigned int __cil_tmp133 ;
21349  unsigned int __cil_tmp134 ;
21350  UCHAR __cil_tmp135 ;
21351  int __cil_tmp136 ;
21352  unsigned int __cil_tmp137 ;
21353  unsigned int __cil_tmp138 ;
21354  MEDIA_TYPE __cil_tmp139 ;
21355  int __cil_tmp140 ;
21356  int __cil_tmp141 ;
21357  unsigned int __cil_tmp142 ;
21358  unsigned int __cil_tmp143 ;
21359  unsigned int __cil_tmp144 ;
21360  unsigned int __cil_tmp145 ;
21361  USHORT __cil_tmp146 ;
21362  int __cil_tmp147 ;
21363  int __cil_tmp148 ;
21364  int __cil_tmp149 ;
21365  unsigned int __cil_tmp150 ;
21366  unsigned int __cil_tmp151 ;
21367  UCHAR __cil_tmp152 ;
21368  int __cil_tmp153 ;
21369  int __cil_tmp154 ;
21370  unsigned int __cil_tmp155 ;
21371  unsigned int __cil_tmp156 ;
21372  UCHAR __cil_tmp157 ;
21373  int __cil_tmp158 ;
21374  int __cil_tmp159 ;
21375  int __cil_tmp160 ;
21376  unsigned int __cil_tmp161 ;
21377  unsigned int __cil_tmp162 ;
21378  unsigned int __cil_tmp163 ;
21379  unsigned int __cil_tmp164 ;
21380  unsigned int __cil_tmp165 ;
21381  UCHAR __cil_tmp166 ;
21382  int __cil_tmp167 ;
21383  PDRIVE_MEDIA_LIMITS __cil_tmp168 ;
21384  unsigned int __cil_tmp169 ;
21385  unsigned int __cil_tmp170 ;
21386  DRIVE_MEDIA_TYPE __cil_tmp171 ;
21387  unsigned int __cil_tmp172 ;
21388  unsigned int __cil_tmp173 ;
21389  UCHAR __cil_tmp174 ;
21390  int __cil_tmp175 ;
21391  PDRIVE_MEDIA_LIMITS __cil_tmp176 ;
21392  DRIVE_MEDIA_TYPE __cil_tmp177 ;
21393  PDRIVE_MEDIA_CONSTANTS __cil_tmp178 ;
21394  MEDIA_TYPE __cil_tmp179 ;
21395  int __cil_tmp180 ;
21396  int __cil_tmp181 ;
21397  unsigned int __cil_tmp182 ;
21398  unsigned int __cil_tmp183 ;
21399  unsigned int __cil_tmp184 ;
21400  unsigned int __cil_tmp185 ;
21401  unsigned int __cil_tmp186 ;
21402  unsigned int __cil_tmp187 ;
21403  int __cil_tmp188 ;
21404  int __cil_tmp189 ;
21405  int __cil_tmp190 ;
21406  unsigned int __cil_tmp191 ;
21407  unsigned int __cil_tmp192 ;
21408  unsigned int __cil_tmp193 ;
21409  unsigned int __cil_tmp194 ;
21410  unsigned int __cil_tmp195 ;
21411  unsigned int __cil_tmp196 ;
21412  unsigned int __cil_tmp197 ;
21413  unsigned int __cil_tmp198 ;
21414  unsigned int __cil_tmp199 ;
21415  unsigned int __cil_tmp200 ;
21416  UCHAR *__cil_tmp201 ;
21417  void const   *__cil_tmp202 ;
21418  void const   *__cil_tmp203 ;
21419  unsigned int __cil_tmp204 ;
21420  unsigned int __cil_tmp205 ;
21421  UCHAR *mem_206 ;
21422  UCHAR *mem_207 ;
21423  UCHAR *mem_208 ;
21424  UCHAR *mem_209 ;
21425  UCHAR *mem_210 ;
21426  UCHAR *mem_211 ;
21427  UCHAR *mem_212 ;
21428  UCHAR *mem_213 ;
21429  UCHAR *mem_214 ;
21430  UCHAR *mem_215 ;
21431  UCHAR *mem_216 ;
21432  ALTERNATIVE_ARCHITECTURE_TYPE *mem_217 ;
21433  USHORT *mem_218 ;
21434  UCHAR *mem_219 ;
21435  UCHAR *mem_220 ;
21436  UCHAR *mem_221 ;
21437  UCHAR *mem_222 ;
21438  MEDIA_TYPE *mem_223 ;
21439  UCHAR *mem_224 ;
21440  MEDIA_TYPE *mem_225 ;
21441  USHORT *mem_226 ;
21442  UCHAR *mem_227 ;
21443  UCHAR *mem_228 ;
21444  MEDIA_TYPE *mem_229 ;
21445  UCHAR *mem_230 ;
21446  UCHAR *mem_231 ;
21447  DRIVE_MEDIA_TYPE *mem_232 ;
21448  UCHAR *mem_233 ;
21449  DRIVE_MEDIA_TYPE *mem_234 ;
21450  MEDIA_TYPE *mem_235 ;
21451  DRIVE_MEDIA_TYPE *mem_236 ;
21452  MEDIA_TYPE *mem_237 ;
21453  ULONG *mem_238 ;
21454  UCHAR *mem_239 ;
21455  UCHAR *mem_240 ;
21456  BOOLEAN *mem_241 ;
21457
21458  {
21459  {
21460#line 4598
21461  while (1) {
21462    while_135_continue: /* CIL Label */ ;
21463    goto while_135_break;
21464  }
21465  while_135_break: /* CIL Label */ ;
21466  }
21467  {
21468#line 4600
21469  __cil_tmp16 = 0 * 1U;
21470#line 4600
21471  __cil_tmp17 = 0 + __cil_tmp16;
21472#line 4600
21473  __cil_tmp18 = (unsigned int )BootSector;
21474#line 4600
21475  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
21476#line 4600
21477  mem_206 = (UCHAR *)__cil_tmp19;
21478#line 4600
21479  __cil_tmp20 = *mem_206;
21480#line 4600
21481  __cil_tmp21 = (int )__cil_tmp20;
21482#line 4600
21483  if (__cil_tmp21 != 235) {
21484    {
21485#line 4600
21486    __cil_tmp22 = 0 * 1U;
21487#line 4600
21488    __cil_tmp23 = 0 + __cil_tmp22;
21489#line 4600
21490    __cil_tmp24 = (unsigned int )BootSector;
21491#line 4600
21492    __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
21493#line 4600
21494    mem_207 = (UCHAR *)__cil_tmp25;
21495#line 4600
21496    __cil_tmp26 = *mem_207;
21497#line 4600
21498    __cil_tmp27 = (int )__cil_tmp26;
21499#line 4600
21500    if (__cil_tmp27 != 233) {
21501
21502    } else {
21503
21504    }
21505    }
21506  } else {
21507
21508  }
21509  }
21510#line 4607
21511  __cil_tmp28 = 0 * 1U;
21512#line 4607
21513  __cil_tmp29 = 19 + __cil_tmp28;
21514#line 4607
21515  __cil_tmp30 = (unsigned int )BootSector;
21516#line 4607
21517  __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
21518#line 4607
21519  mem_208 = (UCHAR *)__cil_tmp31;
21520#line 4607
21521  __cil_tmp32 = *mem_208;
21522#line 4607
21523  __cil_tmp33 = (int )__cil_tmp32;
21524#line 4607
21525  __cil_tmp34 = 1 * 1U;
21526#line 4607
21527  __cil_tmp35 = 19 + __cil_tmp34;
21528#line 4607
21529  __cil_tmp36 = (unsigned int )BootSector;
21530#line 4607
21531  __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
21532#line 4607
21533  mem_209 = (UCHAR *)__cil_tmp37;
21534#line 4607
21535  __cil_tmp38 = *mem_209;
21536#line 4607
21537  __cil_tmp39 = (int )__cil_tmp38;
21538#line 4607
21539  __cil_tmp40 = __cil_tmp39 * 256;
21540#line 4607
21541  __cil_tmp41 = __cil_tmp40 + __cil_tmp33;
21542#line 4607
21543  bpbNumberOfSectors = (unsigned short )__cil_tmp41;
21544#line 4609
21545  __cil_tmp42 = 0 * 1U;
21546#line 4609
21547  __cil_tmp43 = 26 + __cil_tmp42;
21548#line 4609
21549  __cil_tmp44 = (unsigned int )BootSector;
21550#line 4609
21551  __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
21552#line 4609
21553  mem_210 = (UCHAR *)__cil_tmp45;
21554#line 4609
21555  __cil_tmp46 = *mem_210;
21556#line 4609
21557  __cil_tmp47 = (int )__cil_tmp46;
21558#line 4609
21559  __cil_tmp48 = 1 * 1U;
21560#line 4609
21561  __cil_tmp49 = 26 + __cil_tmp48;
21562#line 4609
21563  __cil_tmp50 = (unsigned int )BootSector;
21564#line 4609
21565  __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
21566#line 4609
21567  mem_211 = (UCHAR *)__cil_tmp51;
21568#line 4609
21569  __cil_tmp52 = *mem_211;
21570#line 4609
21571  __cil_tmp53 = (int )__cil_tmp52;
21572#line 4609
21573  __cil_tmp54 = __cil_tmp53 * 256;
21574#line 4609
21575  __cil_tmp55 = __cil_tmp54 + __cil_tmp47;
21576#line 4609
21577  bpbNumberOfHeads = (unsigned short )__cil_tmp55;
21578#line 4611
21579  __cil_tmp56 = 0 * 1U;
21580#line 4611
21581  __cil_tmp57 = 24 + __cil_tmp56;
21582#line 4611
21583  __cil_tmp58 = (unsigned int )BootSector;
21584#line 4611
21585  __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
21586#line 4611
21587  mem_212 = (UCHAR *)__cil_tmp59;
21588#line 4611
21589  __cil_tmp60 = *mem_212;
21590#line 4611
21591  __cil_tmp61 = (int )__cil_tmp60;
21592#line 4611
21593  __cil_tmp62 = 1 * 1U;
21594#line 4611
21595  __cil_tmp63 = 24 + __cil_tmp62;
21596#line 4611
21597  __cil_tmp64 = (unsigned int )BootSector;
21598#line 4611
21599  __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
21600#line 4611
21601  mem_213 = (UCHAR *)__cil_tmp65;
21602#line 4611
21603  __cil_tmp66 = *mem_213;
21604#line 4611
21605  __cil_tmp67 = (int )__cil_tmp66;
21606#line 4611
21607  __cil_tmp68 = __cil_tmp67 * 256;
21608#line 4611
21609  __cil_tmp69 = __cil_tmp68 + __cil_tmp61;
21610#line 4611
21611  bpbSectorsPerTrack = (unsigned short )__cil_tmp69;
21612#line 4613
21613  __cil_tmp70 = 0 * 1U;
21614#line 4613
21615  __cil_tmp71 = 11 + __cil_tmp70;
21616#line 4613
21617  __cil_tmp72 = (unsigned int )BootSector;
21618#line 4613
21619  __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
21620#line 4613
21621  mem_214 = (UCHAR *)__cil_tmp73;
21622#line 4613
21623  __cil_tmp74 = *mem_214;
21624#line 4613
21625  __cil_tmp75 = (int )__cil_tmp74;
21626#line 4613
21627  __cil_tmp76 = 1 * 1U;
21628#line 4613
21629  __cil_tmp77 = 11 + __cil_tmp76;
21630#line 4613
21631  __cil_tmp78 = (unsigned int )BootSector;
21632#line 4613
21633  __cil_tmp79 = __cil_tmp78 + __cil_tmp77;
21634#line 4613
21635  mem_215 = (UCHAR *)__cil_tmp79;
21636#line 4613
21637  __cil_tmp80 = *mem_215;
21638#line 4613
21639  __cil_tmp81 = (int )__cil_tmp80;
21640#line 4613
21641  __cil_tmp82 = __cil_tmp81 * 256;
21642#line 4613
21643  __cil_tmp83 = __cil_tmp82 + __cil_tmp75;
21644#line 4613
21645  bpbBytesPerSector = (unsigned short )__cil_tmp83;
21646#line 4615
21647  __cil_tmp84 = 0 * 1U;
21648#line 4615
21649  __cil_tmp85 = 21 + __cil_tmp84;
21650#line 4615
21651  __cil_tmp86 = (unsigned int )BootSector;
21652#line 4615
21653  __cil_tmp87 = __cil_tmp86 + __cil_tmp85;
21654#line 4615
21655  mem_216 = (UCHAR *)__cil_tmp87;
21656#line 4615
21657  __cil_tmp88 = *mem_216;
21658#line 4615
21659  bpbMediaByte = (unsigned short )__cil_tmp88;
21660#line 4617
21661  if (! bpbNumberOfHeads) {
21662
21663  } else {
21664#line 4617
21665    if (! bpbSectorsPerTrack) {
21666
21667    } else {
21668
21669    }
21670  }
21671#line 4622
21672  __cil_tmp89 = (int )bpbSectorsPerTrack;
21673#line 4622
21674  __cil_tmp90 = (int )bpbNumberOfHeads;
21675#line 4622
21676  __cil_tmp91 = (int )bpbNumberOfSectors;
21677#line 4622
21678  __cil_tmp92 = __cil_tmp91 / __cil_tmp90;
21679#line 4622
21680  __cil_tmp93 = __cil_tmp92 / __cil_tmp89;
21681#line 4622
21682  __cil_tmp94 = __cil_tmp93 - 1;
21683#line 4622
21684  bpbMaximumTrack = (unsigned short )__cil_tmp94;
21685#line 4628
21686  bpbMediaType = (enum _MEDIA_TYPE )0;
21687#line 4629
21688  i = 0UL;
21689  {
21690#line 4629
21691  while (1) {
21692    while_136_continue: /* CIL Label */ ;
21693    {
21694#line 4629
21695    __cil_tmp95 = (KUSER_SHARED_DATA * const  )4292804608U;
21696#line 4629
21697    __cil_tmp96 = (unsigned int )__cil_tmp95;
21698#line 4629
21699    __cil_tmp97 = __cil_tmp96 + 732;
21700#line 4629
21701    mem_217 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp97;
21702#line 4629
21703    __cil_tmp98 = *mem_217;
21704#line 4629
21705    __cil_tmp99 = (int )__cil_tmp98;
21706#line 4629
21707    if (__cil_tmp99 == 1) {
21708#line 4629
21709      tmp = 21;
21710    } else {
21711#line 4629
21712      tmp = 17;
21713    }
21714    }
21715    {
21716#line 4629
21717    __cil_tmp100 = (unsigned long )tmp;
21718#line 4629
21719    __cil_tmp101 = i < __cil_tmp100;
21720#line 4629
21721    if (! __cil_tmp101) {
21722      goto while_136_break;
21723    } else {
21724
21725    }
21726    }
21727    {
21728#line 4631
21729    __cil_tmp102 = DriveMediaConstants + i;
21730#line 4631
21731    __cil_tmp103 = (unsigned int )__cil_tmp102;
21732#line 4631
21733    __cil_tmp104 = __cil_tmp103 + 36;
21734#line 4631
21735    mem_218 = (USHORT *)__cil_tmp104;
21736#line 4631
21737    __cil_tmp105 = *mem_218;
21738#line 4631
21739    __cil_tmp106 = (int )__cil_tmp105;
21740#line 4631
21741    __cil_tmp107 = (int )bpbBytesPerSector;
21742#line 4631
21743    if (__cil_tmp107 == __cil_tmp106) {
21744      {
21745#line 4631
21746      __cil_tmp108 = DriveMediaConstants + i;
21747#line 4631
21748      __cil_tmp109 = (unsigned int )__cil_tmp108;
21749#line 4631
21750      __cil_tmp110 = __cil_tmp109 + 38;
21751#line 4631
21752      mem_219 = (UCHAR *)__cil_tmp110;
21753#line 4631
21754      __cil_tmp111 = *mem_219;
21755#line 4631
21756      __cil_tmp112 = (int )__cil_tmp111;
21757#line 4631
21758      __cil_tmp113 = (int )bpbSectorsPerTrack;
21759#line 4631
21760      if (__cil_tmp113 == __cil_tmp112) {
21761        {
21762#line 4631
21763        __cil_tmp114 = DriveMediaConstants + i;
21764#line 4631
21765        __cil_tmp115 = (unsigned int )__cil_tmp114;
21766#line 4631
21767        __cil_tmp116 = __cil_tmp115 + 48;
21768#line 4631
21769        mem_220 = (UCHAR *)__cil_tmp116;
21770#line 4631
21771        __cil_tmp117 = *mem_220;
21772#line 4631
21773        __cil_tmp118 = (int )__cil_tmp117;
21774#line 4631
21775        __cil_tmp119 = (int )bpbMaximumTrack;
21776#line 4631
21777        if (__cil_tmp119 == __cil_tmp118) {
21778          {
21779#line 4631
21780          __cil_tmp120 = DriveMediaConstants + i;
21781#line 4631
21782          __cil_tmp121 = (unsigned int )__cil_tmp120;
21783#line 4631
21784          __cil_tmp122 = __cil_tmp121 + 51;
21785#line 4631
21786          mem_221 = (UCHAR *)__cil_tmp122;
21787#line 4631
21788          __cil_tmp123 = *mem_221;
21789#line 4631
21790          __cil_tmp124 = (int )__cil_tmp123;
21791#line 4631
21792          __cil_tmp125 = (int )bpbNumberOfHeads;
21793#line 4631
21794          if (__cil_tmp125 == __cil_tmp124) {
21795            {
21796#line 4631
21797            __cil_tmp126 = DriveMediaConstants + i;
21798#line 4631
21799            __cil_tmp127 = (unsigned int )__cil_tmp126;
21800#line 4631
21801            __cil_tmp128 = __cil_tmp127 + 53;
21802#line 4631
21803            mem_222 = (UCHAR *)__cil_tmp128;
21804#line 4631
21805            __cil_tmp129 = *mem_222;
21806#line 4631
21807            __cil_tmp130 = (int )__cil_tmp129;
21808#line 4631
21809            __cil_tmp131 = (int )bpbMediaByte;
21810#line 4631
21811            if (__cil_tmp131 == __cil_tmp130) {
21812#line 4637
21813              __cil_tmp132 = DriveMediaConstants + i;
21814#line 4637
21815              mem_223 = (MEDIA_TYPE *)__cil_tmp132;
21816#line 4637
21817              bpbMediaType = *mem_223;
21818              goto while_136_break;
21819            } else {
21820
21821            }
21822            }
21823          } else {
21824
21825          }
21826          }
21827        } else {
21828
21829        }
21830        }
21831      } else {
21832
21833      }
21834      }
21835    } else {
21836
21837    }
21838    }
21839#line 4629
21840    i = i + 1UL;
21841  }
21842  while_136_break: /* CIL Label */ ;
21843  }
21844  {
21845#line 4647
21846  __cil_tmp133 = (unsigned int )DisketteExtension;
21847#line 4647
21848  __cil_tmp134 = __cil_tmp133 + 174;
21849#line 4647
21850  mem_224 = (UCHAR *)__cil_tmp134;
21851#line 4647
21852  __cil_tmp135 = *mem_224;
21853#line 4647
21854  __cil_tmp136 = (int )__cil_tmp135;
21855#line 4647
21856  if (__cil_tmp136 == 3) {
21857#line 4649
21858    if ((int )bpbMediaType == 15) {
21859      goto switch_137_15;
21860    } else {
21861#line 4650
21862      if ((int )bpbMediaType == 16) {
21863        goto switch_137_16;
21864      } else {
21865#line 4651
21866        if ((int )bpbMediaType == 1) {
21867          goto switch_137_1;
21868        } else {
21869#line 4652
21870          if ((int )bpbMediaType == 19) {
21871            goto switch_137_19;
21872          } else {
21873            {
21874            goto switch_137_default;
21875#line 4648
21876            if (0) {
21877              switch_137_15: /* CIL Label */ 
21878#line 4649
21879              bpbMediaType = (enum _MEDIA_TYPE )14;
21880              goto switch_137_break;
21881              switch_137_16: /* CIL Label */ 
21882#line 4650
21883              bpbMediaType = (enum _MEDIA_TYPE )5;
21884              goto switch_137_break;
21885              switch_137_1: /* CIL Label */ 
21886#line 4651
21887              bpbMediaType = (enum _MEDIA_TYPE )17;
21888              goto switch_137_break;
21889              switch_137_19: /* CIL Label */ 
21890#line 4652
21891              bpbMediaType = (enum _MEDIA_TYPE )18;
21892              goto switch_137_break;
21893              switch_137_default: /* CIL Label */ ;
21894              goto switch_137_break;
21895            } else {
21896              switch_137_break: /* CIL Label */ ;
21897            }
21898            }
21899          }
21900        }
21901      }
21902    }
21903  } else {
21904
21905  }
21906  }
21907  {
21908#line 4660
21909  while (1) {
21910    while_138_continue: /* CIL Label */ ;
21911    goto while_138_break;
21912  }
21913  while_138_break: /* CIL Label */ ;
21914  }
21915  {
21916#line 4665
21917  while (1) {
21918    while_139_continue: /* CIL Label */ ;
21919    goto while_139_break;
21920  }
21921  while_139_break: /* CIL Label */ ;
21922  }
21923  {
21924#line 4666
21925  __cil_tmp137 = (unsigned int )DisketteExtension;
21926#line 4666
21927  __cil_tmp138 = __cil_tmp137 + 184;
21928#line 4666
21929  mem_225 = (MEDIA_TYPE *)__cil_tmp138;
21930#line 4666
21931  __cil_tmp139 = *mem_225;
21932#line 4666
21933  __cil_tmp140 = (int )__cil_tmp139;
21934#line 4666
21935  __cil_tmp141 = (int )bpbMediaType;
21936#line 4666
21937  if (__cil_tmp141 == __cil_tmp140) {
21938#line 4670
21939    changeToBpbMedia = (unsigned char)0;
21940    {
21941#line 4674
21942    while (1) {
21943      while_140_continue: /* CIL Label */ ;
21944      goto while_140_break;
21945    }
21946    while_140_break: /* CIL Label */ ;
21947    }
21948  } else {
21949#line 4682
21950    __cil_tmp142 = (unsigned int )DisketteExtension;
21951#line 4682
21952    __cil_tmp143 = __cil_tmp142 + 308;
21953#line 4682
21954    readidDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp143;
21955    {
21956#line 4684
21957    __cil_tmp144 = (unsigned int )readidDriveMediaConstants;
21958#line 4684
21959    __cil_tmp145 = __cil_tmp144 + 36;
21960#line 4684
21961    mem_226 = (USHORT *)__cil_tmp145;
21962#line 4684
21963    __cil_tmp146 = *mem_226;
21964#line 4684
21965    __cil_tmp147 = (int )__cil_tmp146;
21966#line 4684
21967    __cil_tmp148 = (int )bpbBytesPerSector;
21968#line 4684
21969    if (__cil_tmp148 == __cil_tmp147) {
21970      {
21971#line 4684
21972      __cil_tmp149 = (int )bpbSectorsPerTrack;
21973#line 4684
21974      if (__cil_tmp149 < 256) {
21975        {
21976#line 4684
21977        __cil_tmp150 = (unsigned int )readidDriveMediaConstants;
21978#line 4684
21979        __cil_tmp151 = __cil_tmp150 + 48;
21980#line 4684
21981        mem_227 = (UCHAR *)__cil_tmp151;
21982#line 4684
21983        __cil_tmp152 = *mem_227;
21984#line 4684
21985        __cil_tmp153 = (int )__cil_tmp152;
21986#line 4684
21987        __cil_tmp154 = (int )bpbMaximumTrack;
21988#line 4684
21989        if (__cil_tmp154 == __cil_tmp153) {
21990          {
21991#line 4684
21992          __cil_tmp155 = (unsigned int )readidDriveMediaConstants;
21993#line 4684
21994          __cil_tmp156 = __cil_tmp155 + 51;
21995#line 4684
21996          mem_228 = (UCHAR *)__cil_tmp156;
21997#line 4684
21998          __cil_tmp157 = *mem_228;
21999#line 4684
22000          __cil_tmp158 = (int )__cil_tmp157;
22001#line 4684
22002          __cil_tmp159 = (int )bpbNumberOfHeads;
22003#line 4684
22004          if (__cil_tmp159 <= __cil_tmp158) {
22005#line 4689
22006            changeToBpbMedia = (unsigned char)1;
22007          } else {
22008#line 4692
22009            changeToBpbMedia = (unsigned char)0;
22010          }
22011          }
22012        } else {
22013#line 4692
22014          changeToBpbMedia = (unsigned char)0;
22015        }
22016        }
22017      } else {
22018#line 4692
22019        changeToBpbMedia = (unsigned char)0;
22020      }
22021      }
22022    } else {
22023#line 4692
22024      changeToBpbMedia = (unsigned char)0;
22025    }
22026    }
22027    {
22028#line 4699
22029    while (1) {
22030      while_141_continue: /* CIL Label */ ;
22031      goto while_141_break;
22032    }
22033    while_141_break: /* CIL Label */ ;
22034    }
22035    {
22036#line 4706
22037    __cil_tmp160 = (int )bpbMediaType;
22038#line 4706
22039    if (__cil_tmp160 == 0) {
22040#line 4707
22041      mem_229 = (MEDIA_TYPE *)readidDriveMediaConstants;
22042#line 4707
22043      bpbMediaType = *mem_229;
22044#line 4708
22045      __cil_tmp161 = 308 + 54;
22046#line 4708
22047      __cil_tmp162 = (unsigned int )DisketteExtension;
22048#line 4708
22049      __cil_tmp163 = __cil_tmp162 + __cil_tmp161;
22050#line 4708
22051      mem_230 = (UCHAR *)__cil_tmp163;
22052#line 4708
22053      *mem_230 = (unsigned char)0;
22054    } else {
22055
22056    }
22057    }
22058  }
22059  }
22060#line 4712
22061  if (changeToBpbMedia) {
22062#line 4717
22063    __cil_tmp164 = (unsigned int )DisketteExtension;
22064#line 4717
22065    __cil_tmp165 = __cil_tmp164 + 174;
22066#line 4717
22067    mem_231 = (UCHAR *)__cil_tmp165;
22068#line 4717
22069    __cil_tmp166 = *mem_231;
22070#line 4717
22071    __cil_tmp167 = (int )__cil_tmp166;
22072#line 4717
22073    __cil_tmp168 = DriveMediaLimits + __cil_tmp167;
22074#line 4717
22075    __cil_tmp169 = (unsigned int )__cil_tmp168;
22076#line 4717
22077    __cil_tmp170 = __cil_tmp169 + 32;
22078#line 4717
22079    mem_232 = (DRIVE_MEDIA_TYPE *)__cil_tmp170;
22080#line 4717
22081    __cil_tmp171 = *mem_232;
22082#line 4717
22083    i = (unsigned long )__cil_tmp171;
22084#line 4718
22085    __cil_tmp172 = (unsigned int )DisketteExtension;
22086#line 4718
22087    __cil_tmp173 = __cil_tmp172 + 174;
22088#line 4718
22089    mem_233 = (UCHAR *)__cil_tmp173;
22090#line 4718
22091    __cil_tmp174 = *mem_233;
22092#line 4718
22093    __cil_tmp175 = (int )__cil_tmp174;
22094#line 4718
22095    __cil_tmp176 = DriveMediaLimits + __cil_tmp175;
22096#line 4718
22097    mem_234 = (DRIVE_MEDIA_TYPE *)__cil_tmp176;
22098#line 4718
22099    __cil_tmp177 = *mem_234;
22100#line 4718
22101    n = (unsigned long )__cil_tmp177;
22102    {
22103#line 4719
22104    while (1) {
22105      while_142_continue: /* CIL Label */ ;
22106#line 4719
22107      if (i <= n) {
22108
22109      } else {
22110        goto while_142_break;
22111      }
22112      {
22113#line 4721
22114      __cil_tmp178 = DriveMediaConstants + i;
22115#line 4721
22116      mem_235 = (MEDIA_TYPE *)__cil_tmp178;
22117#line 4721
22118      __cil_tmp179 = *mem_235;
22119#line 4721
22120      __cil_tmp180 = (int )__cil_tmp179;
22121#line 4721
22122      __cil_tmp181 = (int )bpbMediaType;
22123#line 4721
22124      if (__cil_tmp181 == __cil_tmp180) {
22125#line 4722
22126        __cil_tmp182 = (unsigned int )DisketteExtension;
22127#line 4722
22128        __cil_tmp183 = __cil_tmp182 + 216;
22129#line 4722
22130        mem_236 = (DRIVE_MEDIA_TYPE *)__cil_tmp183;
22131#line 4722
22132        *mem_236 = (enum _DRIVE_MEDIA_TYPE )i;
22133        goto while_142_break;
22134      } else {
22135
22136      }
22137      }
22138#line 4719
22139      i = i + 1UL;
22140    }
22141    while_142_break: /* CIL Label */ ;
22142    }
22143    {
22144#line 4727
22145    __cil_tmp184 = (unsigned int )DisketteExtension;
22146#line 4727
22147    __cil_tmp185 = __cil_tmp184 + 184;
22148#line 4727
22149    mem_237 = (MEDIA_TYPE *)__cil_tmp185;
22150#line 4727
22151    *mem_237 = bpbMediaType;
22152#line 4728
22153    __cil_tmp186 = (unsigned int )DisketteExtension;
22154#line 4728
22155    __cil_tmp187 = __cil_tmp186 + 180;
22156#line 4728
22157    __cil_tmp188 = (int )bpbBytesPerSector;
22158#line 4728
22159    __cil_tmp189 = (int )bpbNumberOfSectors;
22160#line 4728
22161    __cil_tmp190 = __cil_tmp189 * __cil_tmp188;
22162#line 4728
22163    mem_238 = (ULONG *)__cil_tmp187;
22164#line 4728
22165    *mem_238 = (unsigned long )__cil_tmp190;
22166#line 4729
22167    __cil_tmp191 = 308 + 38;
22168#line 4729
22169    __cil_tmp192 = (unsigned int )DisketteExtension;
22170#line 4729
22171    __cil_tmp193 = __cil_tmp192 + __cil_tmp191;
22172#line 4729
22173    mem_239 = (UCHAR *)__cil_tmp193;
22174#line 4729
22175    *mem_239 = (unsigned char )bpbSectorsPerTrack;
22176#line 4731
22177    __cil_tmp194 = 308 + 51;
22178#line 4731
22179    __cil_tmp195 = (unsigned int )DisketteExtension;
22180#line 4731
22181    __cil_tmp196 = __cil_tmp195 + __cil_tmp194;
22182#line 4731
22183    mem_240 = (UCHAR *)__cil_tmp196;
22184#line 4731
22185    *mem_240 = (unsigned char )bpbNumberOfHeads;
22186#line 4737
22187    __cil_tmp197 = 0 * 1U;
22188#line 4737
22189    __cil_tmp198 = 3 + __cil_tmp197;
22190#line 4737
22191    __cil_tmp199 = (unsigned int )BootSector;
22192#line 4737
22193    __cil_tmp200 = __cil_tmp199 + __cil_tmp198;
22194#line 4737
22195    __cil_tmp201 = (UCHAR *)__cil_tmp200;
22196#line 4737
22197    __cil_tmp202 = (void const   *)__cil_tmp201;
22198#line 4737
22199    __cil_tmp203 = (void const   *)"MSDMF3.";
22200#line 4737
22201    tmp___0 = RtlCompareMemory(__cil_tmp202, __cil_tmp203, 7UL);
22202    }
22203#line 4737
22204    if (tmp___0 == 7UL) {
22205#line 4738
22206      __cil_tmp204 = (unsigned int )DisketteExtension;
22207#line 4738
22208      __cil_tmp205 = __cil_tmp204 + 250;
22209#line 4738
22210      mem_241 = (BOOLEAN *)__cil_tmp205;
22211#line 4738
22212      *mem_241 = (unsigned char)1;
22213    } else {
22214
22215    }
22216  } else {
22217
22218  }
22219#line 4743
22220  return;
22221}
22222}
22223#line 4743 "floppy.c"
22224void FlCheckBootSector(PDISKETTE_EXTENSION DisketteExtension ) 
22225{ PBOOT_SECTOR_INFO bootSector ;
22226  LARGE_INTEGER offset ;
22227  PIRP irp ;
22228  NTSTATUS status ;
22229  int tmp ;
22230  PVOID tmp___0 ;
22231  int tmp___1 ;
22232  KUSER_SHARED_DATA *__cil_tmp9 ;
22233  unsigned int __cil_tmp10 ;
22234  unsigned int __cil_tmp11 ;
22235  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp12 ;
22236  int __cil_tmp13 ;
22237  enum _POOL_TYPE __cil_tmp14 ;
22238  unsigned long __cil_tmp15 ;
22239  unsigned int __cil_tmp16 ;
22240  unsigned int __cil_tmp17 ;
22241  LARGE_INTEGER *__cil_tmp18 ;
22242  unsigned int __cil_tmp19 ;
22243  unsigned int __cil_tmp20 ;
22244  LONG __cil_tmp21 ;
22245  KUSER_SHARED_DATA *__cil_tmp22 ;
22246  unsigned int __cil_tmp23 ;
22247  unsigned int __cil_tmp24 ;
22248  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp25 ;
22249  int __cil_tmp26 ;
22250  unsigned int __cil_tmp27 ;
22251  unsigned int __cil_tmp28 ;
22252  PDEVICE_OBJECT __cil_tmp29 ;
22253  void *__cil_tmp30 ;
22254  unsigned long __cil_tmp31 ;
22255  void *__cil_tmp32 ;
22256  struct _IO_STATUS_BLOCK *__cil_tmp33 ;
22257  void *__cil_tmp34 ;
22258  unsigned int __cil_tmp35 ;
22259  unsigned int __cil_tmp36 ;
22260  unsigned int __cil_tmp37 ;
22261  unsigned int __cil_tmp38 ;
22262  CHAR __cil_tmp39 ;
22263  int __cil_tmp40 ;
22264  int __cil_tmp41 ;
22265  unsigned int __cil_tmp42 ;
22266  unsigned int __cil_tmp43 ;
22267  unsigned int __cil_tmp44 ;
22268  unsigned int __cil_tmp45 ;
22269  unsigned int __cil_tmp46 ;
22270  unsigned int __cil_tmp47 ;
22271  unsigned int __cil_tmp48 ;
22272  unsigned int __cil_tmp49 ;
22273  unsigned int __cil_tmp50 ;
22274  unsigned int __cil_tmp51 ;
22275  struct _IO_STACK_LOCATION *__cil_tmp52 ;
22276  unsigned int __cil_tmp53 ;
22277  unsigned int __cil_tmp54 ;
22278  PMDL __cil_tmp55 ;
22279  unsigned int __cil_tmp56 ;
22280  unsigned int __cil_tmp57 ;
22281  PMDL __cil_tmp58 ;
22282  void *__cil_tmp59 ;
22283  ALTERNATIVE_ARCHITECTURE_TYPE *mem_60 ;
22284  LONG *mem_61 ;
22285  LONG *mem_62 ;
22286  ULONG *mem_63 ;
22287  ALTERNATIVE_ARCHITECTURE_TYPE *mem_64 ;
22288  PDEVICE_OBJECT *mem_65 ;
22289  CHAR *mem_66 ;
22290  CHAR *mem_67 ;
22291  struct _IO_STACK_LOCATION **mem_68 ;
22292  struct _IO_STACK_LOCATION **mem_69 ;
22293  PMDL *mem_70 ;
22294  PMDL *mem_71 ;
22295
22296  {
22297  {
22298#line 4776
22299  __cil_tmp9 = (KUSER_SHARED_DATA * const  )4292804608U;
22300#line 4776
22301  __cil_tmp10 = (unsigned int )__cil_tmp9;
22302#line 4776
22303  __cil_tmp11 = __cil_tmp10 + 732;
22304#line 4776
22305  mem_60 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp11;
22306#line 4776
22307  __cil_tmp12 = *mem_60;
22308#line 4776
22309  __cil_tmp13 = (int )__cil_tmp12;
22310#line 4776
22311  if (__cil_tmp13 == 1) {
22312#line 4776
22313    tmp = 1024;
22314  } else {
22315#line 4776
22316    tmp = 512;
22317  }
22318  }
22319  {
22320#line 4776
22321  __cil_tmp14 = (enum _POOL_TYPE )4;
22322#line 4776
22323  __cil_tmp15 = (unsigned long )tmp;
22324#line 4776
22325  tmp___0 = ExAllocatePoolWithTag(__cil_tmp14, __cil_tmp15, 1886350406UL);
22326#line 4776
22327  bootSector = (struct _BOOT_SECTOR_INFO *)tmp___0;
22328  }
22329#line 4777
22330  if (! bootSector) {
22331
22332  } else {
22333
22334  }
22335#line 4781
22336  __cil_tmp16 = 0 + 4;
22337#line 4781
22338  __cil_tmp17 = (unsigned int )(& offset) + __cil_tmp16;
22339#line 4781
22340  mem_61 = (LONG *)__cil_tmp17;
22341#line 4781
22342  *mem_61 = 0L;
22343#line 4781
22344  __cil_tmp18 = & offset;
22345#line 4781
22346  __cil_tmp19 = 0 + 4;
22347#line 4781
22348  __cil_tmp20 = (unsigned int )(& offset) + __cil_tmp19;
22349#line 4781
22350  mem_62 = (LONG *)__cil_tmp20;
22351#line 4781
22352  __cil_tmp21 = *mem_62;
22353#line 4781
22354  mem_63 = (ULONG *)__cil_tmp18;
22355#line 4781
22356  *mem_63 = (unsigned long )__cil_tmp21;
22357  {
22358#line 4782
22359  __cil_tmp22 = (KUSER_SHARED_DATA * const  )4292804608U;
22360#line 4782
22361  __cil_tmp23 = (unsigned int )__cil_tmp22;
22362#line 4782
22363  __cil_tmp24 = __cil_tmp23 + 732;
22364#line 4782
22365  mem_64 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp24;
22366#line 4782
22367  __cil_tmp25 = *mem_64;
22368#line 4782
22369  __cil_tmp26 = (int )__cil_tmp25;
22370#line 4782
22371  if (__cil_tmp26 == 1) {
22372#line 4782
22373    tmp___1 = 1024;
22374  } else {
22375#line 4782
22376    tmp___1 = 512;
22377  }
22378  }
22379  {
22380#line 4782
22381  __cil_tmp27 = (unsigned int )DisketteExtension;
22382#line 4782
22383  __cil_tmp28 = __cil_tmp27 + 28;
22384#line 4782
22385  mem_65 = (PDEVICE_OBJECT *)__cil_tmp28;
22386#line 4782
22387  __cil_tmp29 = *mem_65;
22388#line 4782
22389  __cil_tmp30 = (void *)bootSector;
22390#line 4782
22391  __cil_tmp31 = (unsigned long )tmp___1;
22392#line 4782
22393  __cil_tmp32 = (void *)0;
22394#line 4782
22395  __cil_tmp33 = (struct _IO_STATUS_BLOCK *)__cil_tmp32;
22396#line 4782
22397  irp = IoBuildAsynchronousFsdRequest(3UL, __cil_tmp29, __cil_tmp30, __cil_tmp31,
22398                                      & offset, __cil_tmp33);
22399  }
22400#line 4788
22401  if (! irp) {
22402    {
22403#line 4789
22404    __cil_tmp34 = (void *)bootSector;
22405#line 4789
22406    ExFreePool(__cil_tmp34);
22407    }
22408  } else {
22409
22410  }
22411  {
22412#line 4792
22413  __cil_tmp35 = (unsigned int )irp;
22414#line 4792
22415  __cil_tmp36 = __cil_tmp35 + 35;
22416#line 4792
22417  __cil_tmp37 = (unsigned int )irp;
22418#line 4792
22419  __cil_tmp38 = __cil_tmp37 + 35;
22420#line 4792
22421  mem_66 = (CHAR *)__cil_tmp38;
22422#line 4792
22423  __cil_tmp39 = *mem_66;
22424#line 4792
22425  __cil_tmp40 = (int )__cil_tmp39;
22426#line 4792
22427  __cil_tmp41 = __cil_tmp40 - 1;
22428#line 4792
22429  mem_67 = (CHAR *)__cil_tmp36;
22430#line 4792
22431  *mem_67 = (char )__cil_tmp41;
22432#line 4793
22433  __cil_tmp42 = 24 + 8;
22434#line 4793
22435  __cil_tmp43 = 0 + __cil_tmp42;
22436#line 4793
22437  __cil_tmp44 = 64 + __cil_tmp43;
22438#line 4793
22439  __cil_tmp45 = (unsigned int )irp;
22440#line 4793
22441  __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
22442#line 4793
22443  __cil_tmp47 = 24 + 8;
22444#line 4793
22445  __cil_tmp48 = 0 + __cil_tmp47;
22446#line 4793
22447  __cil_tmp49 = 64 + __cil_tmp48;
22448#line 4793
22449  __cil_tmp50 = (unsigned int )irp;
22450#line 4793
22451  __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
22452#line 4793
22453  mem_68 = (struct _IO_STACK_LOCATION **)__cil_tmp51;
22454#line 4793
22455  __cil_tmp52 = *mem_68;
22456#line 4793
22457  mem_69 = (struct _IO_STACK_LOCATION **)__cil_tmp46;
22458#line 4793
22459  *mem_69 = __cil_tmp52 - 1;
22460#line 4798
22461  status = FlReadWrite(DisketteExtension, irp, (unsigned char)1);
22462#line 4800
22463  __cil_tmp53 = (unsigned int )irp;
22464#line 4800
22465  __cil_tmp54 = __cil_tmp53 + 4;
22466#line 4800
22467  mem_70 = (PMDL *)__cil_tmp54;
22468#line 4800
22469  __cil_tmp55 = *mem_70;
22470#line 4800
22471  MmUnlockPages(__cil_tmp55);
22472#line 4801
22473  __cil_tmp56 = (unsigned int )irp;
22474#line 4801
22475  __cil_tmp57 = __cil_tmp56 + 4;
22476#line 4801
22477  mem_71 = (PMDL *)__cil_tmp57;
22478#line 4801
22479  __cil_tmp58 = *mem_71;
22480#line 4801
22481  IoFreeMdl(__cil_tmp58);
22482#line 4802
22483  IoFreeIrp(irp);
22484#line 4803
22485  __cil_tmp59 = (void *)bootSector;
22486#line 4803
22487  ExFreePool(__cil_tmp59);
22488  }
22489#line 4806
22490  return;
22491}
22492}
22493#line 4806 "floppy.c"
22494NTSTATUS FlReadWriteTrack(PDISKETTE_EXTENSION DisketteExtension , PMDL IoMdl , ULONG IoOffset ,
22495                          BOOLEAN WriteOperation , UCHAR Cylinder , UCHAR Head , UCHAR Sector ,
22496                          UCHAR NumberOfSectors , BOOLEAN NeedSeek ) 
22497{ PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
22498  ULONG byteToSectorShift ;
22499  ULONG transferBytes ;
22500  LARGE_INTEGER headSettleTime ;
22501  NTSTATUS status ;
22502  ULONG seekRetry ;
22503  ULONG ioRetry ;
22504  BOOLEAN recalibrateDrive ;
22505  UCHAR i ;
22506  unsigned int __cil_tmp19 ;
22507  unsigned int __cil_tmp20 ;
22508  unsigned int __cil_tmp21 ;
22509  unsigned int __cil_tmp22 ;
22510  UCHAR __cil_tmp23 ;
22511  int __cil_tmp24 ;
22512  int __cil_tmp25 ;
22513  unsigned long __cil_tmp26 ;
22514  LARGE_INTEGER *__cil_tmp27 ;
22515  unsigned int __cil_tmp28 ;
22516  unsigned int __cil_tmp29 ;
22517  UCHAR __cil_tmp30 ;
22518  int __cil_tmp31 ;
22519  int __cil_tmp32 ;
22520  int __cil_tmp33 ;
22521  unsigned int __cil_tmp34 ;
22522  unsigned int __cil_tmp35 ;
22523  unsigned int __cil_tmp36 ;
22524  unsigned int __cil_tmp37 ;
22525  BOOLEAN __cil_tmp38 ;
22526  unsigned int __cil_tmp39 ;
22527  unsigned int __cil_tmp40 ;
22528  UCHAR __cil_tmp41 ;
22529  int __cil_tmp42 ;
22530  unsigned int __cil_tmp43 ;
22531  unsigned int __cil_tmp44 ;
22532  unsigned int __cil_tmp45 ;
22533  unsigned int __cil_tmp46 ;
22534  unsigned int __cil_tmp47 ;
22535  unsigned int __cil_tmp48 ;
22536  unsigned int __cil_tmp49 ;
22537  unsigned int __cil_tmp50 ;
22538  unsigned int __cil_tmp51 ;
22539  unsigned int __cil_tmp52 ;
22540  UCHAR __cil_tmp53 ;
22541  int __cil_tmp54 ;
22542  int __cil_tmp55 ;
22543  int __cil_tmp56 ;
22544  int __cil_tmp57 ;
22545  unsigned int __cil_tmp58 ;
22546  unsigned int __cil_tmp59 ;
22547  unsigned int __cil_tmp60 ;
22548  unsigned int __cil_tmp61 ;
22549  unsigned int __cil_tmp62 ;
22550  unsigned int __cil_tmp63 ;
22551  UCHAR __cil_tmp64 ;
22552  int __cil_tmp65 ;
22553  int __cil_tmp66 ;
22554  int __cil_tmp67 ;
22555  unsigned int __cil_tmp68 ;
22556  unsigned int __cil_tmp69 ;
22557  unsigned int __cil_tmp70 ;
22558  unsigned int __cil_tmp71 ;
22559  UCHAR *__cil_tmp72 ;
22560  unsigned int __cil_tmp73 ;
22561  unsigned int __cil_tmp74 ;
22562  unsigned int __cil_tmp75 ;
22563  unsigned int __cil_tmp76 ;
22564  UCHAR *__cil_tmp77 ;
22565  void *__cil_tmp78 ;
22566  struct _MDL *__cil_tmp79 ;
22567  unsigned int __cil_tmp80 ;
22568  unsigned int __cil_tmp81 ;
22569  unsigned int __cil_tmp82 ;
22570  unsigned int __cil_tmp83 ;
22571  UCHAR __cil_tmp84 ;
22572  int __cil_tmp85 ;
22573  int __cil_tmp86 ;
22574  unsigned int __cil_tmp87 ;
22575  unsigned int __cil_tmp88 ;
22576  unsigned int __cil_tmp89 ;
22577  unsigned int __cil_tmp90 ;
22578  UCHAR __cil_tmp91 ;
22579  int __cil_tmp92 ;
22580  int __cil_tmp93 ;
22581  int __cil_tmp94 ;
22582  unsigned int __cil_tmp95 ;
22583  unsigned int __cil_tmp96 ;
22584  unsigned int __cil_tmp97 ;
22585  unsigned int __cil_tmp98 ;
22586  UCHAR __cil_tmp99 ;
22587  int __cil_tmp100 ;
22588  unsigned int __cil_tmp101 ;
22589  unsigned int __cil_tmp102 ;
22590  unsigned int __cil_tmp103 ;
22591  unsigned int __cil_tmp104 ;
22592  unsigned int __cil_tmp105 ;
22593  unsigned int __cil_tmp106 ;
22594  unsigned int __cil_tmp107 ;
22595  unsigned int __cil_tmp108 ;
22596  unsigned int __cil_tmp109 ;
22597  unsigned int __cil_tmp110 ;
22598  unsigned int __cil_tmp111 ;
22599  unsigned int __cil_tmp112 ;
22600  UCHAR __cil_tmp113 ;
22601  int __cil_tmp114 ;
22602  int __cil_tmp115 ;
22603  int __cil_tmp116 ;
22604  int __cil_tmp117 ;
22605  unsigned int __cil_tmp118 ;
22606  unsigned int __cil_tmp119 ;
22607  unsigned int __cil_tmp120 ;
22608  unsigned int __cil_tmp121 ;
22609  UCHAR *__cil_tmp122 ;
22610  unsigned int __cil_tmp123 ;
22611  unsigned int __cil_tmp124 ;
22612  unsigned int __cil_tmp125 ;
22613  unsigned int __cil_tmp126 ;
22614  UCHAR *__cil_tmp127 ;
22615  void *__cil_tmp128 ;
22616  struct _MDL *__cil_tmp129 ;
22617  KUSER_SHARED_DATA *__cil_tmp130 ;
22618  unsigned int __cil_tmp131 ;
22619  unsigned int __cil_tmp132 ;
22620  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp133 ;
22621  int __cil_tmp134 ;
22622  unsigned int __cil_tmp135 ;
22623  unsigned int __cil_tmp136 ;
22624  unsigned int __cil_tmp137 ;
22625  unsigned int __cil_tmp138 ;
22626  UCHAR __cil_tmp139 ;
22627  int __cil_tmp140 ;
22628  unsigned int __cil_tmp141 ;
22629  unsigned int __cil_tmp142 ;
22630  UCHAR __cil_tmp143 ;
22631  int __cil_tmp144 ;
22632  int __cil_tmp145 ;
22633  int __cil_tmp146 ;
22634  int __cil_tmp147 ;
22635  unsigned int __cil_tmp148 ;
22636  unsigned int __cil_tmp149 ;
22637  unsigned int __cil_tmp150 ;
22638  unsigned int __cil_tmp151 ;
22639  UCHAR __cil_tmp152 ;
22640  int __cil_tmp153 ;
22641  unsigned int __cil_tmp154 ;
22642  unsigned int __cil_tmp155 ;
22643  unsigned int __cil_tmp156 ;
22644  unsigned int __cil_tmp157 ;
22645  unsigned int __cil_tmp158 ;
22646  unsigned int __cil_tmp159 ;
22647  UCHAR __cil_tmp160 ;
22648  unsigned int __cil_tmp161 ;
22649  unsigned int __cil_tmp162 ;
22650  unsigned int __cil_tmp163 ;
22651  unsigned int __cil_tmp164 ;
22652  UCHAR __cil_tmp165 ;
22653  unsigned int __cil_tmp166 ;
22654  unsigned int __cil_tmp167 ;
22655  unsigned int __cil_tmp168 ;
22656  unsigned int __cil_tmp169 ;
22657  UCHAR __cil_tmp170 ;
22658  int __cil_tmp171 ;
22659  unsigned int __cil_tmp172 ;
22660  unsigned int __cil_tmp173 ;
22661  unsigned int __cil_tmp174 ;
22662  unsigned int __cil_tmp175 ;
22663  unsigned int __cil_tmp176 ;
22664  unsigned int __cil_tmp177 ;
22665  UCHAR __cil_tmp178 ;
22666  unsigned int __cil_tmp179 ;
22667  unsigned int __cil_tmp180 ;
22668  unsigned int __cil_tmp181 ;
22669  unsigned int __cil_tmp182 ;
22670  UCHAR __cil_tmp183 ;
22671  unsigned int __cil_tmp184 ;
22672  unsigned int __cil_tmp185 ;
22673  unsigned int __cil_tmp186 ;
22674  unsigned int __cil_tmp187 ;
22675  UCHAR __cil_tmp188 ;
22676  int __cil_tmp189 ;
22677  unsigned int __cil_tmp190 ;
22678  unsigned int __cil_tmp191 ;
22679  unsigned int __cil_tmp192 ;
22680  unsigned int __cil_tmp193 ;
22681  unsigned int __cil_tmp194 ;
22682  unsigned int __cil_tmp195 ;
22683  UCHAR __cil_tmp196 ;
22684  unsigned int __cil_tmp197 ;
22685  unsigned int __cil_tmp198 ;
22686  unsigned int __cil_tmp199 ;
22687  unsigned int __cil_tmp200 ;
22688  UCHAR __cil_tmp201 ;
22689  int __cil_tmp202 ;
22690  unsigned int __cil_tmp203 ;
22691  unsigned int __cil_tmp204 ;
22692  unsigned int __cil_tmp205 ;
22693  unsigned int __cil_tmp206 ;
22694  UCHAR __cil_tmp207 ;
22695  int __cil_tmp208 ;
22696  unsigned int __cil_tmp209 ;
22697  unsigned int __cil_tmp210 ;
22698  unsigned int __cil_tmp211 ;
22699  unsigned int __cil_tmp212 ;
22700  unsigned int __cil_tmp213 ;
22701  unsigned int __cil_tmp214 ;
22702  UCHAR __cil_tmp215 ;
22703  unsigned int __cil_tmp216 ;
22704  unsigned int __cil_tmp217 ;
22705  unsigned int __cil_tmp218 ;
22706  unsigned int __cil_tmp219 ;
22707  UCHAR __cil_tmp220 ;
22708  int __cil_tmp221 ;
22709  unsigned int __cil_tmp222 ;
22710  unsigned int __cil_tmp223 ;
22711  unsigned int __cil_tmp224 ;
22712  unsigned int __cil_tmp225 ;
22713  unsigned int __cil_tmp226 ;
22714  unsigned int __cil_tmp227 ;
22715  UCHAR __cil_tmp228 ;
22716  int __cil_tmp229 ;
22717  int __cil_tmp230 ;
22718  int __cil_tmp231 ;
22719  int __cil_tmp232 ;
22720  unsigned int __cil_tmp233 ;
22721  unsigned int __cil_tmp234 ;
22722  unsigned int __cil_tmp235 ;
22723  unsigned int __cil_tmp236 ;
22724  unsigned int __cil_tmp237 ;
22725  unsigned int __cil_tmp238 ;
22726  unsigned int __cil_tmp239 ;
22727  unsigned int __cil_tmp240 ;
22728  unsigned int __cil_tmp241 ;
22729  unsigned int __cil_tmp242 ;
22730  unsigned int __cil_tmp243 ;
22731  unsigned int __cil_tmp244 ;
22732  int __cil_tmp245 ;
22733  int __cil_tmp246 ;
22734  unsigned int __cil_tmp247 ;
22735  unsigned int __cil_tmp248 ;
22736  unsigned int __cil_tmp249 ;
22737  unsigned int __cil_tmp250 ;
22738  unsigned int __cil_tmp251 ;
22739  unsigned int __cil_tmp252 ;
22740  unsigned int __cil_tmp253 ;
22741  unsigned int __cil_tmp254 ;
22742  unsigned int __cil_tmp255 ;
22743  unsigned int __cil_tmp256 ;
22744  int __cil_tmp257 ;
22745  int __cil_tmp258 ;
22746  int __cil_tmp259 ;
22747  unsigned int __cil_tmp260 ;
22748  unsigned int __cil_tmp261 ;
22749  unsigned int __cil_tmp262 ;
22750  unsigned int __cil_tmp263 ;
22751  unsigned int __cil_tmp264 ;
22752  unsigned int __cil_tmp265 ;
22753  unsigned int __cil_tmp266 ;
22754  unsigned int __cil_tmp267 ;
22755  unsigned int __cil_tmp268 ;
22756  unsigned int __cil_tmp269 ;
22757  unsigned int __cil_tmp270 ;
22758  unsigned int __cil_tmp271 ;
22759  unsigned int __cil_tmp272 ;
22760  unsigned int __cil_tmp273 ;
22761  unsigned int __cil_tmp274 ;
22762  unsigned int __cil_tmp275 ;
22763  unsigned int __cil_tmp276 ;
22764  unsigned int __cil_tmp277 ;
22765  unsigned int __cil_tmp278 ;
22766  unsigned int __cil_tmp279 ;
22767  unsigned int __cil_tmp280 ;
22768  unsigned int __cil_tmp281 ;
22769  unsigned int __cil_tmp282 ;
22770  unsigned int __cil_tmp283 ;
22771  UCHAR *__cil_tmp284 ;
22772  unsigned int __cil_tmp285 ;
22773  unsigned int __cil_tmp286 ;
22774  unsigned int __cil_tmp287 ;
22775  unsigned int __cil_tmp288 ;
22776  UCHAR *__cil_tmp289 ;
22777  KUSER_SHARED_DATA *__cil_tmp290 ;
22778  unsigned int __cil_tmp291 ;
22779  unsigned int __cil_tmp292 ;
22780  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp293 ;
22781  int __cil_tmp294 ;
22782  unsigned int __cil_tmp295 ;
22783  unsigned int __cil_tmp296 ;
22784  unsigned int __cil_tmp297 ;
22785  unsigned int __cil_tmp298 ;
22786  UCHAR __cil_tmp299 ;
22787  int __cil_tmp300 ;
22788  unsigned int __cil_tmp301 ;
22789  unsigned int __cil_tmp302 ;
22790  unsigned int __cil_tmp303 ;
22791  unsigned int __cil_tmp304 ;
22792  UCHAR __cil_tmp305 ;
22793  int __cil_tmp306 ;
22794  int __cil_tmp307 ;
22795  unsigned int __cil_tmp308 ;
22796  unsigned int __cil_tmp309 ;
22797  unsigned int __cil_tmp310 ;
22798  unsigned int __cil_tmp311 ;
22799  UCHAR __cil_tmp312 ;
22800  int __cil_tmp313 ;
22801  int __cil_tmp314 ;
22802  unsigned int __cil_tmp315 ;
22803  unsigned int __cil_tmp316 ;
22804  unsigned int __cil_tmp317 ;
22805  unsigned int __cil_tmp318 ;
22806  unsigned int __cil_tmp319 ;
22807  unsigned int __cil_tmp320 ;
22808  UCHAR __cil_tmp321 ;
22809  unsigned int __cil_tmp322 ;
22810  unsigned int __cil_tmp323 ;
22811  unsigned int __cil_tmp324 ;
22812  unsigned int __cil_tmp325 ;
22813  UCHAR __cil_tmp326 ;
22814  unsigned int __cil_tmp327 ;
22815  unsigned int __cil_tmp328 ;
22816  unsigned int __cil_tmp329 ;
22817  unsigned int __cil_tmp330 ;
22818  UCHAR __cil_tmp331 ;
22819  int __cil_tmp332 ;
22820  unsigned int __cil_tmp333 ;
22821  unsigned int __cil_tmp334 ;
22822  unsigned int __cil_tmp335 ;
22823  unsigned int __cil_tmp336 ;
22824  unsigned int __cil_tmp337 ;
22825  unsigned int __cil_tmp338 ;
22826  UCHAR __cil_tmp339 ;
22827  unsigned int __cil_tmp340 ;
22828  unsigned int __cil_tmp341 ;
22829  unsigned int __cil_tmp342 ;
22830  unsigned int __cil_tmp343 ;
22831  UCHAR __cil_tmp344 ;
22832  unsigned int __cil_tmp345 ;
22833  unsigned int __cil_tmp346 ;
22834  unsigned int __cil_tmp347 ;
22835  unsigned int __cil_tmp348 ;
22836  UCHAR __cil_tmp349 ;
22837  int __cil_tmp350 ;
22838  unsigned int __cil_tmp351 ;
22839  unsigned int __cil_tmp352 ;
22840  unsigned int __cil_tmp353 ;
22841  unsigned int __cil_tmp354 ;
22842  unsigned int __cil_tmp355 ;
22843  unsigned int __cil_tmp356 ;
22844  UCHAR __cil_tmp357 ;
22845  unsigned int __cil_tmp358 ;
22846  unsigned int __cil_tmp359 ;
22847  unsigned int __cil_tmp360 ;
22848  unsigned int __cil_tmp361 ;
22849  UCHAR __cil_tmp362 ;
22850  unsigned int __cil_tmp363 ;
22851  unsigned int __cil_tmp364 ;
22852  unsigned int __cil_tmp365 ;
22853  unsigned int __cil_tmp366 ;
22854  UCHAR __cil_tmp367 ;
22855  int __cil_tmp368 ;
22856  unsigned int __cil_tmp369 ;
22857  unsigned int __cil_tmp370 ;
22858  int __cil_tmp371 ;
22859  int __cil_tmp372 ;
22860  int __cil_tmp373 ;
22861  int __cil_tmp374 ;
22862  unsigned long __cil_tmp375 ;
22863  unsigned long __cil_tmp376 ;
22864  ULONG __cil_tmp377 ;
22865  int __cil_tmp378 ;
22866  int __cil_tmp379 ;
22867  int __cil_tmp380 ;
22868  unsigned char __cil_tmp381 ;
22869  int __cil_tmp382 ;
22870  unsigned int __cil_tmp383 ;
22871  unsigned int __cil_tmp384 ;
22872  int __cil_tmp385 ;
22873  int __cil_tmp386 ;
22874  UCHAR *mem_387 ;
22875  UCHAR *mem_388 ;
22876  ULONG *mem_389 ;
22877  LONG *mem_390 ;
22878  BOOLEAN *mem_391 ;
22879  UCHAR *mem_392 ;
22880  UCHAR *mem_393 ;
22881  UCHAR *mem_394 ;
22882  UCHAR *mem_395 ;
22883  UCHAR *mem_396 ;
22884  UCHAR *mem_397 ;
22885  UCHAR *mem_398 ;
22886  BOOLEAN *mem_399 ;
22887  UCHAR *mem_400 ;
22888  UCHAR *mem_401 ;
22889  BOOLEAN *mem_402 ;
22890  UCHAR *mem_403 ;
22891  UCHAR *mem_404 ;
22892  UCHAR *mem_405 ;
22893  ALTERNATIVE_ARCHITECTURE_TYPE *mem_406 ;
22894  UCHAR *mem_407 ;
22895  UCHAR *mem_408 ;
22896  UCHAR *mem_409 ;
22897  BOOLEAN *mem_410 ;
22898  UCHAR *mem_411 ;
22899  UCHAR *mem_412 ;
22900  UCHAR *mem_413 ;
22901  BOOLEAN *mem_414 ;
22902  UCHAR *mem_415 ;
22903  UCHAR *mem_416 ;
22904  UCHAR *mem_417 ;
22905  BOOLEAN *mem_418 ;
22906  UCHAR *mem_419 ;
22907  UCHAR *mem_420 ;
22908  UCHAR *mem_421 ;
22909  BOOLEAN *mem_422 ;
22910  UCHAR *mem_423 ;
22911  UCHAR *mem_424 ;
22912  UCHAR *mem_425 ;
22913  UCHAR *mem_426 ;
22914  UCHAR *mem_427 ;
22915  UCHAR *mem_428 ;
22916  UCHAR *mem_429 ;
22917  UCHAR *mem_430 ;
22918  UCHAR *mem_431 ;
22919  UCHAR *mem_432 ;
22920  UCHAR *mem_433 ;
22921  UCHAR *mem_434 ;
22922  UCHAR *mem_435 ;
22923  UCHAR *mem_436 ;
22924  UCHAR *mem_437 ;
22925  UCHAR *mem_438 ;
22926  ALTERNATIVE_ARCHITECTURE_TYPE *mem_439 ;
22927  UCHAR *mem_440 ;
22928  UCHAR *mem_441 ;
22929  UCHAR *mem_442 ;
22930  BOOLEAN *mem_443 ;
22931  UCHAR *mem_444 ;
22932  UCHAR *mem_445 ;
22933  UCHAR *mem_446 ;
22934  BOOLEAN *mem_447 ;
22935  UCHAR *mem_448 ;
22936  UCHAR *mem_449 ;
22937  UCHAR *mem_450 ;
22938  BOOLEAN *mem_451 ;
22939  UCHAR *mem_452 ;
22940  UCHAR *mem_453 ;
22941  UCHAR *mem_454 ;
22942  BOOLEAN *mem_455 ;
22943  BOOLEAN *mem_456 ;
22944
22945  {
22946#line 4859
22947  recalibrateDrive = (unsigned char)0;
22948  {
22949#line 4869
22950  while (1) {
22951    while_143_continue: /* CIL Label */ ;
22952    goto while_143_break;
22953  }
22954  while_143_break: /* CIL Label */ ;
22955  }
22956#line 4871
22957  __cil_tmp19 = (unsigned int )DisketteExtension;
22958#line 4871
22959  __cil_tmp20 = __cil_tmp19 + 308;
22960#line 4871
22961  driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp20;
22962#line 4872
22963  __cil_tmp21 = (unsigned int )driveMediaConstants;
22964#line 4872
22965  __cil_tmp22 = __cil_tmp21 + 35;
22966#line 4872
22967  mem_387 = (UCHAR *)__cil_tmp22;
22968#line 4872
22969  __cil_tmp23 = *mem_387;
22970#line 4872
22971  __cil_tmp24 = (int )__cil_tmp23;
22972#line 4872
22973  __cil_tmp25 = 7 + __cil_tmp24;
22974#line 4872
22975  byteToSectorShift = (unsigned long )__cil_tmp25;
22976#line 4874
22977  __cil_tmp26 = (unsigned long )NumberOfSectors;
22978#line 4874
22979  transferBytes = __cil_tmp26 << byteToSectorShift;
22980#line 4876
22981  __cil_tmp27 = & headSettleTime;
22982#line 4876
22983  __cil_tmp28 = (unsigned int )driveMediaConstants;
22984#line 4876
22985  __cil_tmp29 = __cil_tmp28 + 42;
22986#line 4876
22987  mem_388 = (UCHAR *)__cil_tmp29;
22988#line 4876
22989  __cil_tmp30 = *mem_388;
22990#line 4876
22991  __cil_tmp31 = (int )__cil_tmp30;
22992#line 4876
22993  __cil_tmp32 = 10000 * __cil_tmp31;
22994#line 4876
22995  __cil_tmp33 = - __cil_tmp32;
22996#line 4876
22997  mem_389 = (ULONG *)__cil_tmp27;
22998#line 4876
22999  *mem_389 = (unsigned long )__cil_tmp33;
23000#line 4877
23001  __cil_tmp34 = 0 + 4;
23002#line 4877
23003  __cil_tmp35 = (unsigned int )(& headSettleTime) + __cil_tmp34;
23004#line 4877
23005  mem_390 = (LONG *)__cil_tmp35;
23006#line 4877
23007  *mem_390 = -1L;
23008#line 4879
23009  seekRetry = 0UL;
23010#line 4879
23011  ioRetry = 0UL;
23012  {
23013#line 4879
23014  while (1) {
23015    while_144_continue: /* CIL Label */ ;
23016#line 4879
23017    if (seekRetry < 3UL) {
23018
23019    } else {
23020      goto while_144_break;
23021    }
23022#line 4881
23023    if (recalibrateDrive) {
23024      {
23025#line 4888
23026      while (1) {
23027        while_145_continue: /* CIL Label */ ;
23028        goto while_145_break;
23029      }
23030      while_145_break: /* CIL Label */ ;
23031      }
23032      {
23033#line 4889
23034      FlRecalibrateDrive(DisketteExtension);
23035      }
23036    } else {
23037
23038    }
23039#line 4894
23040    if (recalibrateDrive) {
23041      goto _L___0;
23042    } else {
23043#line 4894
23044      if (NeedSeek) {
23045        {
23046#line 4894
23047        __cil_tmp36 = (unsigned int )DisketteExtension;
23048#line 4894
23049        __cil_tmp37 = __cil_tmp36 + 365;
23050#line 4894
23051        mem_391 = (BOOLEAN *)__cil_tmp37;
23052#line 4894
23053        __cil_tmp38 = *mem_391;
23054#line 4894
23055        if (! __cil_tmp38) {
23056          goto _L___0;
23057        } else {
23058          {
23059#line 4894
23060          __cil_tmp39 = (unsigned int )driveMediaConstants;
23061#line 4894
23062          __cil_tmp40 = __cil_tmp39 + 49;
23063#line 4894
23064          mem_392 = (UCHAR *)__cil_tmp40;
23065#line 4894
23066          __cil_tmp41 = *mem_392;
23067#line 4894
23068          __cil_tmp42 = (int )__cil_tmp41;
23069#line 4894
23070          if (__cil_tmp42 != 0) {
23071            _L___0: 
23072            {
23073#line 4899
23074            __cil_tmp43 = 0 * 1U;
23075#line 4899
23076            __cil_tmp44 = 112 + __cil_tmp43;
23077#line 4899
23078            __cil_tmp45 = (unsigned int )DisketteExtension;
23079#line 4899
23080            __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
23081#line 4899
23082            mem_393 = (UCHAR *)__cil_tmp46;
23083#line 4899
23084            *mem_393 = (unsigned char)16;
23085#line 4900
23086            __cil_tmp47 = 1 * 1U;
23087#line 4900
23088            __cil_tmp48 = 112 + __cil_tmp47;
23089#line 4900
23090            __cil_tmp49 = (unsigned int )DisketteExtension;
23091#line 4900
23092            __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
23093#line 4900
23094            __cil_tmp51 = (unsigned int )DisketteExtension;
23095#line 4900
23096            __cil_tmp52 = __cil_tmp51 + 248;
23097#line 4900
23098            mem_394 = (UCHAR *)__cil_tmp52;
23099#line 4900
23100            __cil_tmp53 = *mem_394;
23101#line 4900
23102            __cil_tmp54 = (int )__cil_tmp53;
23103#line 4900
23104            __cil_tmp55 = (int )Head;
23105#line 4900
23106            __cil_tmp56 = __cil_tmp55 << 2;
23107#line 4900
23108            __cil_tmp57 = __cil_tmp56 | __cil_tmp54;
23109#line 4900
23110            mem_395 = (UCHAR *)__cil_tmp50;
23111#line 4900
23112            *mem_395 = (unsigned char )__cil_tmp57;
23113#line 4902
23114            __cil_tmp58 = 2 * 1U;
23115#line 4902
23116            __cil_tmp59 = 112 + __cil_tmp58;
23117#line 4902
23118            __cil_tmp60 = (unsigned int )DisketteExtension;
23119#line 4902
23120            __cil_tmp61 = __cil_tmp60 + __cil_tmp59;
23121#line 4902
23122            __cil_tmp62 = (unsigned int )driveMediaConstants;
23123#line 4902
23124            __cil_tmp63 = __cil_tmp62 + 49;
23125#line 4902
23126            mem_396 = (UCHAR *)__cil_tmp63;
23127#line 4902
23128            __cil_tmp64 = *mem_396;
23129#line 4902
23130            __cil_tmp65 = (int )__cil_tmp64;
23131#line 4902
23132            __cil_tmp66 = (int )Cylinder;
23133#line 4902
23134            __cil_tmp67 = __cil_tmp66 << __cil_tmp65;
23135#line 4902
23136            mem_397 = (UCHAR *)__cil_tmp61;
23137#line 4902
23138            *mem_397 = (unsigned char )__cil_tmp67;
23139#line 4905
23140            __cil_tmp68 = 0 * 1U;
23141#line 4905
23142            __cil_tmp69 = 112 + __cil_tmp68;
23143#line 4905
23144            __cil_tmp70 = (unsigned int )DisketteExtension;
23145#line 4905
23146            __cil_tmp71 = __cil_tmp70 + __cil_tmp69;
23147#line 4905
23148            __cil_tmp72 = (UCHAR *)__cil_tmp71;
23149#line 4905
23150            __cil_tmp73 = 0 * 1U;
23151#line 4905
23152            __cil_tmp74 = 112 + __cil_tmp73;
23153#line 4905
23154            __cil_tmp75 = (unsigned int )DisketteExtension;
23155#line 4905
23156            __cil_tmp76 = __cil_tmp75 + __cil_tmp74;
23157#line 4905
23158            __cil_tmp77 = (UCHAR *)__cil_tmp76;
23159#line 4905
23160            __cil_tmp78 = (void *)0;
23161#line 4905
23162            __cil_tmp79 = (struct _MDL *)__cil_tmp78;
23163#line 4905
23164            status = FlIssueCommand(DisketteExtension, __cil_tmp72, __cil_tmp77, __cil_tmp79,
23165                                    0UL, 0UL);
23166            }
23167#line 4912
23168            if (status >= 0L) {
23169              {
23170#line 4916
23171              __cil_tmp80 = 0 * 1U;
23172#line 4916
23173              __cil_tmp81 = 112 + __cil_tmp80;
23174#line 4916
23175              __cil_tmp82 = (unsigned int )DisketteExtension;
23176#line 4916
23177              __cil_tmp83 = __cil_tmp82 + __cil_tmp81;
23178#line 4916
23179              mem_398 = (UCHAR *)__cil_tmp83;
23180#line 4916
23181              __cil_tmp84 = *mem_398;
23182#line 4916
23183              __cil_tmp85 = (int )__cil_tmp84;
23184#line 4916
23185              __cil_tmp86 = __cil_tmp85 & 32;
23186#line 4916
23187              if (! __cil_tmp86) {
23188#line 4920
23189                __cil_tmp87 = (unsigned int )DisketteExtension;
23190#line 4920
23191                __cil_tmp88 = __cil_tmp87 + 104;
23192#line 4920
23193                mem_399 = (BOOLEAN *)__cil_tmp88;
23194#line 4920
23195                *mem_399 = (unsigned char)1;
23196#line 4921
23197                status = -1073741464L;
23198              } else {
23199                {
23200#line 4916
23201                __cil_tmp89 = (unsigned int )driveMediaConstants;
23202#line 4916
23203                __cil_tmp90 = __cil_tmp89 + 49;
23204#line 4916
23205                mem_400 = (UCHAR *)__cil_tmp90;
23206#line 4916
23207                __cil_tmp91 = *mem_400;
23208#line 4916
23209                __cil_tmp92 = (int )__cil_tmp91;
23210#line 4916
23211                __cil_tmp93 = (int )Cylinder;
23212#line 4916
23213                __cil_tmp94 = __cil_tmp93 << __cil_tmp92;
23214#line 4916
23215                __cil_tmp95 = 1 * 1U;
23216#line 4916
23217                __cil_tmp96 = 112 + __cil_tmp95;
23218#line 4916
23219                __cil_tmp97 = (unsigned int )DisketteExtension;
23220#line 4916
23221                __cil_tmp98 = __cil_tmp97 + __cil_tmp96;
23222#line 4916
23223                mem_401 = (UCHAR *)__cil_tmp98;
23224#line 4916
23225                __cil_tmp99 = *mem_401;
23226#line 4916
23227                __cil_tmp100 = (int )__cil_tmp99;
23228#line 4916
23229                if (__cil_tmp100 != __cil_tmp94) {
23230#line 4920
23231                  __cil_tmp101 = (unsigned int )DisketteExtension;
23232#line 4920
23233                  __cil_tmp102 = __cil_tmp101 + 104;
23234#line 4920
23235                  mem_402 = (BOOLEAN *)__cil_tmp102;
23236#line 4920
23237                  *mem_402 = (unsigned char)1;
23238#line 4921
23239                  status = -1073741464L;
23240                } else {
23241
23242                }
23243                }
23244              }
23245              }
23246#line 4924
23247              if (status >= 0L) {
23248                {
23249#line 4928
23250                KeDelayExecutionThread((char)0, (unsigned char)0, & headSettleTime);
23251#line 4932
23252                __cil_tmp103 = 0 * 1U;
23253#line 4932
23254                __cil_tmp104 = 112 + __cil_tmp103;
23255#line 4932
23256                __cil_tmp105 = (unsigned int )DisketteExtension;
23257#line 4932
23258                __cil_tmp106 = __cil_tmp105 + __cil_tmp104;
23259#line 4932
23260                mem_403 = (UCHAR *)__cil_tmp106;
23261#line 4932
23262                *mem_403 = (unsigned char)84;
23263#line 4934
23264                __cil_tmp107 = 1 * 1U;
23265#line 4934
23266                __cil_tmp108 = 112 + __cil_tmp107;
23267#line 4934
23268                __cil_tmp109 = (unsigned int )DisketteExtension;
23269#line 4934
23270                __cil_tmp110 = __cil_tmp109 + __cil_tmp108;
23271#line 4934
23272                __cil_tmp111 = (unsigned int )DisketteExtension;
23273#line 4934
23274                __cil_tmp112 = __cil_tmp111 + 248;
23275#line 4934
23276                mem_404 = (UCHAR *)__cil_tmp112;
23277#line 4934
23278                __cil_tmp113 = *mem_404;
23279#line 4934
23280                __cil_tmp114 = (int )__cil_tmp113;
23281#line 4934
23282                __cil_tmp115 = (int )Head;
23283#line 4934
23284                __cil_tmp116 = __cil_tmp115 << 2;
23285#line 4934
23286                __cil_tmp117 = __cil_tmp116 | __cil_tmp114;
23287#line 4934
23288                mem_405 = (UCHAR *)__cil_tmp110;
23289#line 4934
23290                *mem_405 = (unsigned char )__cil_tmp117;
23291#line 4937
23292                __cil_tmp118 = 0 * 1U;
23293#line 4937
23294                __cil_tmp119 = 112 + __cil_tmp118;
23295#line 4937
23296                __cil_tmp120 = (unsigned int )DisketteExtension;
23297#line 4937
23298                __cil_tmp121 = __cil_tmp120 + __cil_tmp119;
23299#line 4937
23300                __cil_tmp122 = (UCHAR *)__cil_tmp121;
23301#line 4937
23302                __cil_tmp123 = 0 * 1U;
23303#line 4937
23304                __cil_tmp124 = 112 + __cil_tmp123;
23305#line 4937
23306                __cil_tmp125 = (unsigned int )DisketteExtension;
23307#line 4937
23308                __cil_tmp126 = __cil_tmp125 + __cil_tmp124;
23309#line 4937
23310                __cil_tmp127 = (UCHAR *)__cil_tmp126;
23311#line 4937
23312                __cil_tmp128 = (void *)0;
23313#line 4937
23314                __cil_tmp129 = (struct _MDL *)__cil_tmp128;
23315#line 4937
23316                status = FlIssueCommand(DisketteExtension, __cil_tmp122, __cil_tmp127,
23317                                        __cil_tmp129, 0UL, 0UL);
23318                }
23319#line 4944
23320                if (status >= 0L) {
23321                  {
23322#line 4946
23323                  __cil_tmp130 = (KUSER_SHARED_DATA * const  )4292804608U;
23324#line 4946
23325                  __cil_tmp131 = (unsigned int )__cil_tmp130;
23326#line 4946
23327                  __cil_tmp132 = __cil_tmp131 + 732;
23328#line 4946
23329                  mem_406 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp132;
23330#line 4946
23331                  __cil_tmp133 = *mem_406;
23332#line 4946
23333                  __cil_tmp134 = (int )__cil_tmp133;
23334#line 4946
23335                  if (__cil_tmp134 == 1) {
23336                    {
23337#line 4947
23338                    __cil_tmp135 = 0 * 1U;
23339#line 4947
23340                    __cil_tmp136 = 112 + __cil_tmp135;
23341#line 4947
23342                    __cil_tmp137 = (unsigned int )DisketteExtension;
23343#line 4947
23344                    __cil_tmp138 = __cil_tmp137 + __cil_tmp136;
23345#line 4947
23346                    mem_407 = (UCHAR *)__cil_tmp138;
23347#line 4947
23348                    __cil_tmp139 = *mem_407;
23349#line 4947
23350                    __cil_tmp140 = (int )__cil_tmp139;
23351#line 4947
23352                    if (__cil_tmp140 & 8) {
23353#line 4948
23354                      return (-1073741661L);
23355                    } else {
23356
23357                    }
23358                    }
23359                  } else {
23360
23361                  }
23362                  }
23363                  {
23364#line 4952
23365                  __cil_tmp141 = (unsigned int )DisketteExtension;
23366#line 4952
23367                  __cil_tmp142 = __cil_tmp141 + 248;
23368#line 4952
23369                  mem_408 = (UCHAR *)__cil_tmp142;
23370#line 4952
23371                  __cil_tmp143 = *mem_408;
23372#line 4952
23373                  __cil_tmp144 = (int )__cil_tmp143;
23374#line 4952
23375                  __cil_tmp145 = (int )Head;
23376#line 4952
23377                  __cil_tmp146 = __cil_tmp145 << 2;
23378#line 4952
23379                  __cil_tmp147 = __cil_tmp146 | __cil_tmp144;
23380#line 4952
23381                  __cil_tmp148 = 0 * 1U;
23382#line 4952
23383                  __cil_tmp149 = 112 + __cil_tmp148;
23384#line 4952
23385                  __cil_tmp150 = (unsigned int )DisketteExtension;
23386#line 4952
23387                  __cil_tmp151 = __cil_tmp150 + __cil_tmp149;
23388#line 4952
23389                  mem_409 = (UCHAR *)__cil_tmp151;
23390#line 4952
23391                  __cil_tmp152 = *mem_409;
23392#line 4952
23393                  __cil_tmp153 = (int )__cil_tmp152;
23394#line 4952
23395                  if (__cil_tmp153 != __cil_tmp147) {
23396                    {
23397#line 4958
23398                    __cil_tmp154 = (unsigned int )DisketteExtension;
23399#line 4958
23400                    __cil_tmp155 = __cil_tmp154 + 104;
23401#line 4958
23402                    mem_410 = (BOOLEAN *)__cil_tmp155;
23403#line 4958
23404                    *mem_410 = (unsigned char)1;
23405#line 4960
23406                    __cil_tmp156 = 1 * 1U;
23407#line 4960
23408                    __cil_tmp157 = 112 + __cil_tmp156;
23409#line 4960
23410                    __cil_tmp158 = (unsigned int )DisketteExtension;
23411#line 4960
23412                    __cil_tmp159 = __cil_tmp158 + __cil_tmp157;
23413#line 4960
23414                    mem_411 = (UCHAR *)__cil_tmp159;
23415#line 4960
23416                    __cil_tmp160 = *mem_411;
23417#line 4960
23418                    __cil_tmp161 = 2 * 1U;
23419#line 4960
23420                    __cil_tmp162 = 112 + __cil_tmp161;
23421#line 4960
23422                    __cil_tmp163 = (unsigned int )DisketteExtension;
23423#line 4960
23424                    __cil_tmp164 = __cil_tmp163 + __cil_tmp162;
23425#line 4960
23426                    mem_412 = (UCHAR *)__cil_tmp164;
23427#line 4960
23428                    __cil_tmp165 = *mem_412;
23429#line 4960
23430                    status = FlInterpretError(__cil_tmp160, __cil_tmp165);
23431                    }
23432                  } else {
23433                    {
23434#line 4952
23435                    __cil_tmp166 = 1 * 1U;
23436#line 4952
23437                    __cil_tmp167 = 112 + __cil_tmp166;
23438#line 4952
23439                    __cil_tmp168 = (unsigned int )DisketteExtension;
23440#line 4952
23441                    __cil_tmp169 = __cil_tmp168 + __cil_tmp167;
23442#line 4952
23443                    mem_413 = (UCHAR *)__cil_tmp169;
23444#line 4952
23445                    __cil_tmp170 = *mem_413;
23446#line 4952
23447                    __cil_tmp171 = (int )__cil_tmp170;
23448#line 4952
23449                    if (__cil_tmp171 != 0) {
23450                      {
23451#line 4958
23452                      __cil_tmp172 = (unsigned int )DisketteExtension;
23453#line 4958
23454                      __cil_tmp173 = __cil_tmp172 + 104;
23455#line 4958
23456                      mem_414 = (BOOLEAN *)__cil_tmp173;
23457#line 4958
23458                      *mem_414 = (unsigned char)1;
23459#line 4960
23460                      __cil_tmp174 = 1 * 1U;
23461#line 4960
23462                      __cil_tmp175 = 112 + __cil_tmp174;
23463#line 4960
23464                      __cil_tmp176 = (unsigned int )DisketteExtension;
23465#line 4960
23466                      __cil_tmp177 = __cil_tmp176 + __cil_tmp175;
23467#line 4960
23468                      mem_415 = (UCHAR *)__cil_tmp177;
23469#line 4960
23470                      __cil_tmp178 = *mem_415;
23471#line 4960
23472                      __cil_tmp179 = 2 * 1U;
23473#line 4960
23474                      __cil_tmp180 = 112 + __cil_tmp179;
23475#line 4960
23476                      __cil_tmp181 = (unsigned int )DisketteExtension;
23477#line 4960
23478                      __cil_tmp182 = __cil_tmp181 + __cil_tmp180;
23479#line 4960
23480                      mem_416 = (UCHAR *)__cil_tmp182;
23481#line 4960
23482                      __cil_tmp183 = *mem_416;
23483#line 4960
23484                      status = FlInterpretError(__cil_tmp178, __cil_tmp183);
23485                      }
23486                    } else {
23487                      {
23488#line 4952
23489                      __cil_tmp184 = 2 * 1U;
23490#line 4952
23491                      __cil_tmp185 = 112 + __cil_tmp184;
23492#line 4952
23493                      __cil_tmp186 = (unsigned int )DisketteExtension;
23494#line 4952
23495                      __cil_tmp187 = __cil_tmp186 + __cil_tmp185;
23496#line 4952
23497                      mem_417 = (UCHAR *)__cil_tmp187;
23498#line 4952
23499                      __cil_tmp188 = *mem_417;
23500#line 4952
23501                      __cil_tmp189 = (int )__cil_tmp188;
23502#line 4952
23503                      if (__cil_tmp189 != 0) {
23504                        {
23505#line 4958
23506                        __cil_tmp190 = (unsigned int )DisketteExtension;
23507#line 4958
23508                        __cil_tmp191 = __cil_tmp190 + 104;
23509#line 4958
23510                        mem_418 = (BOOLEAN *)__cil_tmp191;
23511#line 4958
23512                        *mem_418 = (unsigned char)1;
23513#line 4960
23514                        __cil_tmp192 = 1 * 1U;
23515#line 4960
23516                        __cil_tmp193 = 112 + __cil_tmp192;
23517#line 4960
23518                        __cil_tmp194 = (unsigned int )DisketteExtension;
23519#line 4960
23520                        __cil_tmp195 = __cil_tmp194 + __cil_tmp193;
23521#line 4960
23522                        mem_419 = (UCHAR *)__cil_tmp195;
23523#line 4960
23524                        __cil_tmp196 = *mem_419;
23525#line 4960
23526                        __cil_tmp197 = 2 * 1U;
23527#line 4960
23528                        __cil_tmp198 = 112 + __cil_tmp197;
23529#line 4960
23530                        __cil_tmp199 = (unsigned int )DisketteExtension;
23531#line 4960
23532                        __cil_tmp200 = __cil_tmp199 + __cil_tmp198;
23533#line 4960
23534                        mem_420 = (UCHAR *)__cil_tmp200;
23535#line 4960
23536                        __cil_tmp201 = *mem_420;
23537#line 4960
23538                        status = FlInterpretError(__cil_tmp196, __cil_tmp201);
23539                        }
23540                      } else {
23541                        {
23542#line 4952
23543                        __cil_tmp202 = (int )Cylinder;
23544#line 4952
23545                        __cil_tmp203 = 3 * 1U;
23546#line 4952
23547                        __cil_tmp204 = 112 + __cil_tmp203;
23548#line 4952
23549                        __cil_tmp205 = (unsigned int )DisketteExtension;
23550#line 4952
23551                        __cil_tmp206 = __cil_tmp205 + __cil_tmp204;
23552#line 4952
23553                        mem_421 = (UCHAR *)__cil_tmp206;
23554#line 4952
23555                        __cil_tmp207 = *mem_421;
23556#line 4952
23557                        __cil_tmp208 = (int )__cil_tmp207;
23558#line 4952
23559                        if (__cil_tmp208 != __cil_tmp202) {
23560                          {
23561#line 4958
23562                          __cil_tmp209 = (unsigned int )DisketteExtension;
23563#line 4958
23564                          __cil_tmp210 = __cil_tmp209 + 104;
23565#line 4958
23566                          mem_422 = (BOOLEAN *)__cil_tmp210;
23567#line 4958
23568                          *mem_422 = (unsigned char)1;
23569#line 4960
23570                          __cil_tmp211 = 1 * 1U;
23571#line 4960
23572                          __cil_tmp212 = 112 + __cil_tmp211;
23573#line 4960
23574                          __cil_tmp213 = (unsigned int )DisketteExtension;
23575#line 4960
23576                          __cil_tmp214 = __cil_tmp213 + __cil_tmp212;
23577#line 4960
23578                          mem_423 = (UCHAR *)__cil_tmp214;
23579#line 4960
23580                          __cil_tmp215 = *mem_423;
23581#line 4960
23582                          __cil_tmp216 = 2 * 1U;
23583#line 4960
23584                          __cil_tmp217 = 112 + __cil_tmp216;
23585#line 4960
23586                          __cil_tmp218 = (unsigned int )DisketteExtension;
23587#line 4960
23588                          __cil_tmp219 = __cil_tmp218 + __cil_tmp217;
23589#line 4960
23590                          mem_424 = (UCHAR *)__cil_tmp219;
23591#line 4960
23592                          __cil_tmp220 = *mem_424;
23593#line 4960
23594                          status = FlInterpretError(__cil_tmp215, __cil_tmp220);
23595                          }
23596                        } else {
23597
23598                        }
23599                        }
23600                      }
23601                      }
23602                    }
23603                    }
23604                  }
23605                  }
23606                } else {
23607                  {
23608#line 4968
23609                  while (1) {
23610                    while_146_continue: /* CIL Label */ ;
23611                    goto while_146_break;
23612                  }
23613                  while_146_break: /* CIL Label */ ;
23614                  }
23615                }
23616              } else {
23617
23618              }
23619            } else {
23620              {
23621#line 4975
23622              while (1) {
23623                while_147_continue: /* CIL Label */ ;
23624                goto while_147_break;
23625              }
23626              while_147_break: /* CIL Label */ ;
23627              }
23628            }
23629          } else {
23630#line 4980
23631            status = 0L;
23632          }
23633          }
23634        }
23635        }
23636      } else {
23637#line 4980
23638        status = 0L;
23639      }
23640    }
23641    {
23642#line 4983
23643    __cil_tmp221 = status >= 0L;
23644#line 4983
23645    if (! __cil_tmp221) {
23646      {
23647#line 4990
23648      while (1) {
23649        while_148_continue: /* CIL Label */ ;
23650        goto while_148_break;
23651      }
23652      while_148_break: /* CIL Label */ ;
23653      }
23654#line 4991
23655      recalibrateDrive = (unsigned char)1;
23656      goto __Cont;
23657    } else {
23658
23659    }
23660    }
23661    {
23662#line 4995
23663    while (1) {
23664      while_149_continue: /* CIL Label */ ;
23665#line 5001
23666      __cil_tmp222 = 1 * 1U;
23667#line 5001
23668      __cil_tmp223 = 112 + __cil_tmp222;
23669#line 5001
23670      __cil_tmp224 = (unsigned int )DisketteExtension;
23671#line 5001
23672      __cil_tmp225 = __cil_tmp224 + __cil_tmp223;
23673#line 5001
23674      __cil_tmp226 = (unsigned int )DisketteExtension;
23675#line 5001
23676      __cil_tmp227 = __cil_tmp226 + 248;
23677#line 5001
23678      mem_425 = (UCHAR *)__cil_tmp227;
23679#line 5001
23680      __cil_tmp228 = *mem_425;
23681#line 5001
23682      __cil_tmp229 = (int )__cil_tmp228;
23683#line 5001
23684      __cil_tmp230 = (int )Head;
23685#line 5001
23686      __cil_tmp231 = __cil_tmp230 << 2;
23687#line 5001
23688      __cil_tmp232 = __cil_tmp231 | __cil_tmp229;
23689#line 5001
23690      mem_426 = (UCHAR *)__cil_tmp225;
23691#line 5001
23692      *mem_426 = (unsigned char )__cil_tmp232;
23693#line 5003
23694      __cil_tmp233 = 2 * 1U;
23695#line 5003
23696      __cil_tmp234 = 112 + __cil_tmp233;
23697#line 5003
23698      __cil_tmp235 = (unsigned int )DisketteExtension;
23699#line 5003
23700      __cil_tmp236 = __cil_tmp235 + __cil_tmp234;
23701#line 5003
23702      mem_427 = (UCHAR *)__cil_tmp236;
23703#line 5003
23704      *mem_427 = Cylinder;
23705#line 5004
23706      __cil_tmp237 = 3 * 1U;
23707#line 5004
23708      __cil_tmp238 = 112 + __cil_tmp237;
23709#line 5004
23710      __cil_tmp239 = (unsigned int )DisketteExtension;
23711#line 5004
23712      __cil_tmp240 = __cil_tmp239 + __cil_tmp238;
23713#line 5004
23714      mem_428 = (UCHAR *)__cil_tmp240;
23715#line 5004
23716      *mem_428 = Head;
23717#line 5005
23718      __cil_tmp241 = 4 * 1U;
23719#line 5005
23720      __cil_tmp242 = 112 + __cil_tmp241;
23721#line 5005
23722      __cil_tmp243 = (unsigned int )DisketteExtension;
23723#line 5005
23724      __cil_tmp244 = __cil_tmp243 + __cil_tmp242;
23725#line 5005
23726      __cil_tmp245 = (int )Sector;
23727#line 5005
23728      __cil_tmp246 = __cil_tmp245 + 1;
23729#line 5005
23730      mem_429 = (UCHAR *)__cil_tmp244;
23731#line 5005
23732      *mem_429 = (unsigned char )__cil_tmp246;
23733#line 5006
23734      __cil_tmp247 = 5 * 1U;
23735#line 5006
23736      __cil_tmp248 = 112 + __cil_tmp247;
23737#line 5006
23738      __cil_tmp249 = (unsigned int )DisketteExtension;
23739#line 5006
23740      __cil_tmp250 = __cil_tmp249 + __cil_tmp248;
23741#line 5006
23742      __cil_tmp251 = (unsigned int )driveMediaConstants;
23743#line 5006
23744      __cil_tmp252 = __cil_tmp251 + 35;
23745#line 5006
23746      mem_430 = (UCHAR *)__cil_tmp250;
23747#line 5006
23748      mem_431 = (UCHAR *)__cil_tmp252;
23749#line 5006
23750      *mem_430 = *mem_431;
23751#line 5008
23752      __cil_tmp253 = 6 * 1U;
23753#line 5008
23754      __cil_tmp254 = 112 + __cil_tmp253;
23755#line 5008
23756      __cil_tmp255 = (unsigned int )DisketteExtension;
23757#line 5008
23758      __cil_tmp256 = __cil_tmp255 + __cil_tmp254;
23759#line 5008
23760      __cil_tmp257 = (int )NumberOfSectors;
23761#line 5008
23762      __cil_tmp258 = (int )Sector;
23763#line 5008
23764      __cil_tmp259 = __cil_tmp258 + __cil_tmp257;
23765#line 5008
23766      mem_432 = (UCHAR *)__cil_tmp256;
23767#line 5008
23768      *mem_432 = (unsigned char )__cil_tmp259;
23769#line 5009
23770      __cil_tmp260 = 7 * 1U;
23771#line 5009
23772      __cil_tmp261 = 112 + __cil_tmp260;
23773#line 5009
23774      __cil_tmp262 = (unsigned int )DisketteExtension;
23775#line 5009
23776      __cil_tmp263 = __cil_tmp262 + __cil_tmp261;
23777#line 5009
23778      __cil_tmp264 = (unsigned int )driveMediaConstants;
23779#line 5009
23780      __cil_tmp265 = __cil_tmp264 + 39;
23781#line 5009
23782      mem_433 = (UCHAR *)__cil_tmp263;
23783#line 5009
23784      mem_434 = (UCHAR *)__cil_tmp265;
23785#line 5009
23786      *mem_433 = *mem_434;
23787#line 5011
23788      __cil_tmp266 = 8 * 1U;
23789#line 5011
23790      __cil_tmp267 = 112 + __cil_tmp266;
23791#line 5011
23792      __cil_tmp268 = (unsigned int )DisketteExtension;
23793#line 5011
23794      __cil_tmp269 = __cil_tmp268 + __cil_tmp267;
23795#line 5011
23796      __cil_tmp270 = (unsigned int )driveMediaConstants;
23797#line 5011
23798      __cil_tmp271 = __cil_tmp270 + 52;
23799#line 5011
23800      mem_435 = (UCHAR *)__cil_tmp269;
23801#line 5011
23802      mem_436 = (UCHAR *)__cil_tmp271;
23803#line 5011
23804      *mem_435 = *mem_436;
23805#line 5013
23806      if (WriteOperation) {
23807#line 5014
23808        __cil_tmp272 = 0 * 1U;
23809#line 5014
23810        __cil_tmp273 = 112 + __cil_tmp272;
23811#line 5014
23812        __cil_tmp274 = (unsigned int )DisketteExtension;
23813#line 5014
23814        __cil_tmp275 = __cil_tmp274 + __cil_tmp273;
23815#line 5014
23816        mem_437 = (UCHAR *)__cil_tmp275;
23817#line 5014
23818        *mem_437 = (unsigned char)66;
23819      } else {
23820#line 5017
23821        __cil_tmp276 = 0 * 1U;
23822#line 5017
23823        __cil_tmp277 = 112 + __cil_tmp276;
23824#line 5017
23825        __cil_tmp278 = (unsigned int )DisketteExtension;
23826#line 5017
23827        __cil_tmp279 = __cil_tmp278 + __cil_tmp277;
23828#line 5017
23829        mem_438 = (UCHAR *)__cil_tmp279;
23830#line 5017
23831        *mem_438 = (unsigned char)64;
23832      }
23833      {
23834#line 5021
23835      __cil_tmp280 = 0 * 1U;
23836#line 5021
23837      __cil_tmp281 = 112 + __cil_tmp280;
23838#line 5021
23839      __cil_tmp282 = (unsigned int )DisketteExtension;
23840#line 5021
23841      __cil_tmp283 = __cil_tmp282 + __cil_tmp281;
23842#line 5021
23843      __cil_tmp284 = (UCHAR *)__cil_tmp283;
23844#line 5021
23845      __cil_tmp285 = 0 * 1U;
23846#line 5021
23847      __cil_tmp286 = 112 + __cil_tmp285;
23848#line 5021
23849      __cil_tmp287 = (unsigned int )DisketteExtension;
23850#line 5021
23851      __cil_tmp288 = __cil_tmp287 + __cil_tmp286;
23852#line 5021
23853      __cil_tmp289 = (UCHAR *)__cil_tmp288;
23854#line 5021
23855      status = FlIssueCommand(DisketteExtension, __cil_tmp284, __cil_tmp289, IoMdl,
23856                              IoOffset, transferBytes);
23857      }
23858#line 5028
23859      if (status >= 0L) {
23860        {
23861#line 5030
23862        __cil_tmp290 = (KUSER_SHARED_DATA * const  )4292804608U;
23863#line 5030
23864        __cil_tmp291 = (unsigned int )__cil_tmp290;
23865#line 5030
23866        __cil_tmp292 = __cil_tmp291 + 732;
23867#line 5030
23868        mem_439 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp292;
23869#line 5030
23870        __cil_tmp293 = *mem_439;
23871#line 5030
23872        __cil_tmp294 = (int )__cil_tmp293;
23873#line 5030
23874        if (__cil_tmp294 == 1) {
23875          {
23876#line 5031
23877          __cil_tmp295 = 0 * 1U;
23878#line 5031
23879          __cil_tmp296 = 112 + __cil_tmp295;
23880#line 5031
23881          __cil_tmp297 = (unsigned int )DisketteExtension;
23882#line 5031
23883          __cil_tmp298 = __cil_tmp297 + __cil_tmp296;
23884#line 5031
23885          mem_440 = (UCHAR *)__cil_tmp298;
23886#line 5031
23887          __cil_tmp299 = *mem_440;
23888#line 5031
23889          __cil_tmp300 = (int )__cil_tmp299;
23890#line 5031
23891          if (__cil_tmp300 & 8) {
23892#line 5032
23893            return (-1073741661L);
23894          } else {
23895
23896          }
23897          }
23898        } else {
23899
23900        }
23901        }
23902        {
23903#line 5036
23904        __cil_tmp301 = 0 * 1U;
23905#line 5036
23906        __cil_tmp302 = 112 + __cil_tmp301;
23907#line 5036
23908        __cil_tmp303 = (unsigned int )DisketteExtension;
23909#line 5036
23910        __cil_tmp304 = __cil_tmp303 + __cil_tmp302;
23911#line 5036
23912        mem_441 = (UCHAR *)__cil_tmp304;
23913#line 5036
23914        __cil_tmp305 = *mem_441;
23915#line 5036
23916        __cil_tmp306 = (int )__cil_tmp305;
23917#line 5036
23918        __cil_tmp307 = __cil_tmp306 & 192;
23919#line 5036
23920        if (__cil_tmp307 != 0) {
23921          {
23922#line 5036
23923          __cil_tmp308 = 0 * 1U;
23924#line 5036
23925          __cil_tmp309 = 112 + __cil_tmp308;
23926#line 5036
23927          __cil_tmp310 = (unsigned int )DisketteExtension;
23928#line 5036
23929          __cil_tmp311 = __cil_tmp310 + __cil_tmp309;
23930#line 5036
23931          mem_442 = (UCHAR *)__cil_tmp311;
23932#line 5036
23933          __cil_tmp312 = *mem_442;
23934#line 5036
23935          __cil_tmp313 = (int )__cil_tmp312;
23936#line 5036
23937          __cil_tmp314 = __cil_tmp313 & 192;
23938#line 5036
23939          if (__cil_tmp314 != 64) {
23940            {
23941#line 5044
23942            __cil_tmp315 = (unsigned int )DisketteExtension;
23943#line 5044
23944            __cil_tmp316 = __cil_tmp315 + 104;
23945#line 5044
23946            mem_443 = (BOOLEAN *)__cil_tmp316;
23947#line 5044
23948            *mem_443 = (unsigned char)1;
23949#line 5046
23950            __cil_tmp317 = 1 * 1U;
23951#line 5046
23952            __cil_tmp318 = 112 + __cil_tmp317;
23953#line 5046
23954            __cil_tmp319 = (unsigned int )DisketteExtension;
23955#line 5046
23956            __cil_tmp320 = __cil_tmp319 + __cil_tmp318;
23957#line 5046
23958            mem_444 = (UCHAR *)__cil_tmp320;
23959#line 5046
23960            __cil_tmp321 = *mem_444;
23961#line 5046
23962            __cil_tmp322 = 2 * 1U;
23963#line 5046
23964            __cil_tmp323 = 112 + __cil_tmp322;
23965#line 5046
23966            __cil_tmp324 = (unsigned int )DisketteExtension;
23967#line 5046
23968            __cil_tmp325 = __cil_tmp324 + __cil_tmp323;
23969#line 5046
23970            mem_445 = (UCHAR *)__cil_tmp325;
23971#line 5046
23972            __cil_tmp326 = *mem_445;
23973#line 5046
23974            status = FlInterpretError(__cil_tmp321, __cil_tmp326);
23975            }
23976          } else {
23977            {
23978#line 5036
23979            __cil_tmp327 = 1 * 1U;
23980#line 5036
23981            __cil_tmp328 = 112 + __cil_tmp327;
23982#line 5036
23983            __cil_tmp329 = (unsigned int )DisketteExtension;
23984#line 5036
23985            __cil_tmp330 = __cil_tmp329 + __cil_tmp328;
23986#line 5036
23987            mem_446 = (UCHAR *)__cil_tmp330;
23988#line 5036
23989            __cil_tmp331 = *mem_446;
23990#line 5036
23991            __cil_tmp332 = (int )__cil_tmp331;
23992#line 5036
23993            if (__cil_tmp332 != 128) {
23994              {
23995#line 5044
23996              __cil_tmp333 = (unsigned int )DisketteExtension;
23997#line 5044
23998              __cil_tmp334 = __cil_tmp333 + 104;
23999#line 5044
24000              mem_447 = (BOOLEAN *)__cil_tmp334;
24001#line 5044
24002              *mem_447 = (unsigned char)1;
24003#line 5046
24004              __cil_tmp335 = 1 * 1U;
24005#line 5046
24006              __cil_tmp336 = 112 + __cil_tmp335;
24007#line 5046
24008              __cil_tmp337 = (unsigned int )DisketteExtension;
24009#line 5046
24010              __cil_tmp338 = __cil_tmp337 + __cil_tmp336;
24011#line 5046
24012              mem_448 = (UCHAR *)__cil_tmp338;
24013#line 5046
24014              __cil_tmp339 = *mem_448;
24015#line 5046
24016              __cil_tmp340 = 2 * 1U;
24017#line 5046
24018              __cil_tmp341 = 112 + __cil_tmp340;
24019#line 5046
24020              __cil_tmp342 = (unsigned int )DisketteExtension;
24021#line 5046
24022              __cil_tmp343 = __cil_tmp342 + __cil_tmp341;
24023#line 5046
24024              mem_449 = (UCHAR *)__cil_tmp343;
24025#line 5046
24026              __cil_tmp344 = *mem_449;
24027#line 5046
24028              status = FlInterpretError(__cil_tmp339, __cil_tmp344);
24029              }
24030            } else {
24031              {
24032#line 5036
24033              __cil_tmp345 = 2 * 1U;
24034#line 5036
24035              __cil_tmp346 = 112 + __cil_tmp345;
24036#line 5036
24037              __cil_tmp347 = (unsigned int )DisketteExtension;
24038#line 5036
24039              __cil_tmp348 = __cil_tmp347 + __cil_tmp346;
24040#line 5036
24041              mem_450 = (UCHAR *)__cil_tmp348;
24042#line 5036
24043              __cil_tmp349 = *mem_450;
24044#line 5036
24045              __cil_tmp350 = (int )__cil_tmp349;
24046#line 5036
24047              if (__cil_tmp350 != 0) {
24048                {
24049#line 5044
24050                __cil_tmp351 = (unsigned int )DisketteExtension;
24051#line 5044
24052                __cil_tmp352 = __cil_tmp351 + 104;
24053#line 5044
24054                mem_451 = (BOOLEAN *)__cil_tmp352;
24055#line 5044
24056                *mem_451 = (unsigned char)1;
24057#line 5046
24058                __cil_tmp353 = 1 * 1U;
24059#line 5046
24060                __cil_tmp354 = 112 + __cil_tmp353;
24061#line 5046
24062                __cil_tmp355 = (unsigned int )DisketteExtension;
24063#line 5046
24064                __cil_tmp356 = __cil_tmp355 + __cil_tmp354;
24065#line 5046
24066                mem_452 = (UCHAR *)__cil_tmp356;
24067#line 5046
24068                __cil_tmp357 = *mem_452;
24069#line 5046
24070                __cil_tmp358 = 2 * 1U;
24071#line 5046
24072                __cil_tmp359 = 112 + __cil_tmp358;
24073#line 5046
24074                __cil_tmp360 = (unsigned int )DisketteExtension;
24075#line 5046
24076                __cil_tmp361 = __cil_tmp360 + __cil_tmp359;
24077#line 5046
24078                mem_453 = (UCHAR *)__cil_tmp361;
24079#line 5046
24080                __cil_tmp362 = *mem_453;
24081#line 5046
24082                status = FlInterpretError(__cil_tmp357, __cil_tmp362);
24083                }
24084              } else {
24085                goto _L___1;
24086              }
24087              }
24088            }
24089            }
24090          }
24091          }
24092        } else {
24093          _L___1: 
24094          {
24095#line 5054
24096          __cil_tmp363 = 5 * 1U;
24097#line 5054
24098          __cil_tmp364 = 112 + __cil_tmp363;
24099#line 5054
24100          __cil_tmp365 = (unsigned int )DisketteExtension;
24101#line 5054
24102          __cil_tmp366 = __cil_tmp365 + __cil_tmp364;
24103#line 5054
24104          mem_454 = (UCHAR *)__cil_tmp366;
24105#line 5054
24106          __cil_tmp367 = *mem_454;
24107#line 5054
24108          __cil_tmp368 = (int )__cil_tmp367;
24109#line 5054
24110          if (__cil_tmp368 != 1) {
24111#line 5056
24112            __cil_tmp369 = (unsigned int )DisketteExtension;
24113#line 5056
24114            __cil_tmp370 = __cil_tmp369 + 104;
24115#line 5056
24116            mem_455 = (BOOLEAN *)__cil_tmp370;
24117#line 5056
24118            *mem_455 = (unsigned char)1;
24119#line 5057
24120            status = -1073741465L;
24121          } else {
24122
24123          }
24124          }
24125        }
24126        }
24127      } else {
24128        {
24129#line 5064
24130        while (1) {
24131          while_150_continue: /* CIL Label */ ;
24132          goto while_150_break;
24133        }
24134        while_150_break: /* CIL Label */ ;
24135        }
24136      }
24137#line 5067
24138      if (status >= 0L) {
24139        goto while_149_break;
24140      } else {
24141
24142      }
24143#line 5071
24144      if (ioRetry >= 2UL) {
24145        {
24146#line 5073
24147        while (1) {
24148          while_151_continue: /* CIL Label */ ;
24149          goto while_151_break;
24150        }
24151        while_151_break: /* CIL Label */ ;
24152        }
24153        goto while_149_break;
24154      } else {
24155
24156      }
24157#line 4995
24158      ioRetry = ioRetry + 1UL;
24159    }
24160    while_149_break: /* CIL Label */ ;
24161    }
24162#line 5078
24163    if (status >= 0L) {
24164      goto while_144_break;
24165    } else {
24166
24167    }
24168#line 5083
24169    recalibrateDrive = (unsigned char)1;
24170    __Cont: 
24171#line 4879
24172    seekRetry = seekRetry + 1UL;
24173  }
24174  while_144_break: /* CIL Label */ ;
24175  }
24176  {
24177#line 5086
24178  __cil_tmp371 = status >= 0L;
24179#line 5086
24180  if (! __cil_tmp371) {
24181    {
24182#line 5086
24183    __cil_tmp372 = (int )NumberOfSectors;
24184#line 5086
24185    if (__cil_tmp372 > 1) {
24186      {
24187#line 5091
24188      while (1) {
24189        while_152_continue: /* CIL Label */ ;
24190        goto while_152_break;
24191      }
24192      while_152_break: /* CIL Label */ ;
24193      }
24194#line 5093
24195      i = (unsigned char)0;
24196      {
24197#line 5093
24198      while (1) {
24199        while_153_continue: /* CIL Label */ ;
24200        {
24201#line 5093
24202        __cil_tmp373 = (int )NumberOfSectors;
24203#line 5093
24204        __cil_tmp374 = (int )i;
24205#line 5093
24206        if (__cil_tmp374 < __cil_tmp373) {
24207
24208        } else {
24209          goto while_153_break;
24210        }
24211        }
24212        {
24213#line 5094
24214        __cil_tmp375 = (unsigned long )i;
24215#line 5094
24216        __cil_tmp376 = __cil_tmp375 << byteToSectorShift;
24217#line 5094
24218        __cil_tmp377 = IoOffset + __cil_tmp376;
24219#line 5094
24220        __cil_tmp378 = (int )i;
24221#line 5094
24222        __cil_tmp379 = (int )Sector;
24223#line 5094
24224        __cil_tmp380 = __cil_tmp379 + __cil_tmp378;
24225#line 5094
24226        __cil_tmp381 = (unsigned char )__cil_tmp380;
24227#line 5094
24228        status = FlReadWriteTrack(DisketteExtension, IoMdl, __cil_tmp377, WriteOperation,
24229                                  Cylinder, Head, __cil_tmp381, (unsigned char)1,
24230                                  (unsigned char)0);
24231        }
24232        {
24233#line 5104
24234        __cil_tmp382 = status >= 0L;
24235#line 5104
24236        if (! __cil_tmp382) {
24237          {
24238#line 5108
24239          while (1) {
24240            while_154_continue: /* CIL Label */ ;
24241            goto while_154_break;
24242          }
24243          while_154_break: /* CIL Label */ ;
24244          }
24245#line 5110
24246          __cil_tmp383 = (unsigned int )DisketteExtension;
24247#line 5110
24248          __cil_tmp384 = __cil_tmp383 + 104;
24249#line 5110
24250          mem_456 = (BOOLEAN *)__cil_tmp384;
24251#line 5110
24252          *mem_456 = (unsigned char)1;
24253          goto while_153_break;
24254        } else {
24255
24256        }
24257        }
24258#line 5093
24259        __cil_tmp385 = (int )i;
24260#line 5093
24261        __cil_tmp386 = __cil_tmp385 + 1;
24262#line 5093
24263        i = (unsigned char )__cil_tmp386;
24264      }
24265      while_153_break: /* CIL Label */ ;
24266      }
24267    } else {
24268
24269    }
24270    }
24271  } else {
24272
24273  }
24274  }
24275#line 5116
24276  return (status);
24277}
24278}
24279#line 5119 "floppy.c"
24280NTSTATUS FlReadWrite(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN DriveStarted ) 
24281{ PIO_STACK_LOCATION irpSp ;
24282  BOOLEAN writeOperation ;
24283  NTSTATUS status ;
24284  PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
24285  ULONG byteToSectorShift ;
24286  ULONG currentSector ;
24287  ULONG firstSector ;
24288  ULONG lastSector ;
24289  ULONG trackSize ;
24290  UCHAR sectorsPerTrack ;
24291  UCHAR numberOfHeads ;
24292  UCHAR currentHead ;
24293  UCHAR currentCylinder ;
24294  UCHAR trackSector ;
24295  PCHAR userBuffer ;
24296  UCHAR skew ;
24297  UCHAR skewDelta ;
24298  UCHAR numTransferSectors ;
24299  PMDL mdl ;
24300  PCHAR ioBuffer ;
24301  ULONG ioOffset ;
24302  PVOID tmp___0 ;
24303  unsigned int __cil_tmp26 ;
24304  unsigned int __cil_tmp27 ;
24305  unsigned int __cil_tmp28 ;
24306  unsigned int __cil_tmp29 ;
24307  unsigned int __cil_tmp30 ;
24308  UCHAR __cil_tmp31 ;
24309  int __cil_tmp32 ;
24310  unsigned int __cil_tmp33 ;
24311  unsigned int __cil_tmp34 ;
24312  unsigned int __cil_tmp35 ;
24313  unsigned int __cil_tmp36 ;
24314  UCHAR __cil_tmp37 ;
24315  int __cil_tmp38 ;
24316  int __cil_tmp39 ;
24317  int __cil_tmp40 ;
24318  int __cil_tmp41 ;
24319  unsigned char __cil_tmp42 ;
24320  int __cil_tmp43 ;
24321  KUSER_SHARED_DATA *__cil_tmp44 ;
24322  unsigned int __cil_tmp45 ;
24323  unsigned int __cil_tmp46 ;
24324  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp47 ;
24325  int __cil_tmp48 ;
24326  unsigned int __cil_tmp49 ;
24327  unsigned int __cil_tmp50 ;
24328  MEDIA_TYPE __cil_tmp51 ;
24329  int __cil_tmp52 ;
24330  unsigned int __cil_tmp53 ;
24331  unsigned int __cil_tmp54 ;
24332  unsigned int __cil_tmp55 ;
24333  unsigned int __cil_tmp56 ;
24334  UCHAR __cil_tmp57 ;
24335  int __cil_tmp58 ;
24336  int __cil_tmp59 ;
24337  unsigned int __cil_tmp60 ;
24338  unsigned int __cil_tmp61 ;
24339  unsigned int __cil_tmp62 ;
24340  unsigned int __cil_tmp63 ;
24341  ULONG __cil_tmp64 ;
24342  unsigned int __cil_tmp65 ;
24343  unsigned int __cil_tmp66 ;
24344  ULONG __cil_tmp67 ;
24345  ULONG __cil_tmp68 ;
24346  unsigned int __cil_tmp69 ;
24347  unsigned int __cil_tmp70 ;
24348  unsigned int __cil_tmp71 ;
24349  unsigned int __cil_tmp72 ;
24350  unsigned int __cil_tmp73 ;
24351  unsigned int __cil_tmp74 ;
24352  PMDL __cil_tmp75 ;
24353  unsigned int __cil_tmp76 ;
24354  unsigned int __cil_tmp77 ;
24355  CSHORT __cil_tmp78 ;
24356  int __cil_tmp79 ;
24357  unsigned int __cil_tmp80 ;
24358  unsigned int __cil_tmp81 ;
24359  PMDL __cil_tmp82 ;
24360  unsigned int __cil_tmp83 ;
24361  unsigned int __cil_tmp84 ;
24362  PVOID __cil_tmp85 ;
24363  unsigned int __cil_tmp86 ;
24364  unsigned int __cil_tmp87 ;
24365  PMDL __cil_tmp88 ;
24366  enum _MEMORY_CACHING_TYPE __cil_tmp89 ;
24367  void *__cil_tmp90 ;
24368  enum _MM_PAGE_PRIORITY __cil_tmp91 ;
24369  void *__cil_tmp92 ;
24370  unsigned int __cil_tmp93 ;
24371  unsigned int __cil_tmp94 ;
24372  unsigned long __cil_tmp95 ;
24373  unsigned int __cil_tmp96 ;
24374  unsigned int __cil_tmp97 ;
24375  unsigned long __cil_tmp98 ;
24376  unsigned long __cil_tmp99 ;
24377  ULONG __cil_tmp100 ;
24378  ULONG __cil_tmp101 ;
24379  unsigned long __cil_tmp102 ;
24380  unsigned long __cil_tmp103 ;
24381  unsigned long __cil_tmp104 ;
24382  unsigned long __cil_tmp105 ;
24383  ULONG __cil_tmp106 ;
24384  unsigned long __cil_tmp107 ;
24385  int __cil_tmp108 ;
24386  int __cil_tmp109 ;
24387  int __cil_tmp110 ;
24388  unsigned long __cil_tmp111 ;
24389  ULONG __cil_tmp112 ;
24390  ULONG __cil_tmp113 ;
24391  unsigned int __cil_tmp114 ;
24392  unsigned int __cil_tmp115 ;
24393  ULONG __cil_tmp116 ;
24394  unsigned int __cil_tmp117 ;
24395  unsigned int __cil_tmp118 ;
24396  PUCHAR __cil_tmp119 ;
24397  unsigned int __cil_tmp120 ;
24398  unsigned int __cil_tmp121 ;
24399  unsigned int __cil_tmp122 ;
24400  unsigned int __cil_tmp123 ;
24401  PUCHAR __cil_tmp124 ;
24402  void *__cil_tmp125 ;
24403  ULONG __cil_tmp126 ;
24404  ULONG __cil_tmp127 ;
24405  PCHAR __cil_tmp128 ;
24406  void const   *__cil_tmp129 ;
24407  unsigned long __cil_tmp130 ;
24408  unsigned long __cil_tmp131 ;
24409  unsigned int __cil_tmp132 ;
24410  unsigned int __cil_tmp133 ;
24411  unsigned int __cil_tmp134 ;
24412  ULONG __cil_tmp135 ;
24413  int __cil_tmp136 ;
24414  int __cil_tmp137 ;
24415  int __cil_tmp138 ;
24416  int __cil_tmp139 ;
24417  int __cil_tmp140 ;
24418  int __cil_tmp141 ;
24419  unsigned long __cil_tmp142 ;
24420  unsigned long __cil_tmp143 ;
24421  unsigned long __cil_tmp144 ;
24422  unsigned long __cil_tmp145 ;
24423  ULONG __cil_tmp146 ;
24424  int __cil_tmp147 ;
24425  int __cil_tmp148 ;
24426  int __cil_tmp149 ;
24427  int __cil_tmp150 ;
24428  int __cil_tmp151 ;
24429  unsigned char __cil_tmp152 ;
24430  int __cil_tmp153 ;
24431  int __cil_tmp154 ;
24432  int __cil_tmp155 ;
24433  int __cil_tmp156 ;
24434  int __cil_tmp157 ;
24435  unsigned char __cil_tmp158 ;
24436  int __cil_tmp159 ;
24437  int __cil_tmp160 ;
24438  int __cil_tmp161 ;
24439  int __cil_tmp162 ;
24440  int __cil_tmp163 ;
24441  int __cil_tmp164 ;
24442  int __cil_tmp165 ;
24443  int __cil_tmp166 ;
24444  int __cil_tmp167 ;
24445  int __cil_tmp168 ;
24446  int __cil_tmp169 ;
24447  unsigned int __cil_tmp170 ;
24448  unsigned int __cil_tmp171 ;
24449  ULONG __cil_tmp172 ;
24450  ULONG __cil_tmp173 ;
24451  ULONG __cil_tmp174 ;
24452  PCHAR __cil_tmp175 ;
24453  void *__cil_tmp176 ;
24454  void const   *__cil_tmp177 ;
24455  unsigned long __cil_tmp178 ;
24456  unsigned long __cil_tmp179 ;
24457  unsigned int __cil_tmp180 ;
24458  int __cil_tmp181 ;
24459  int __cil_tmp182 ;
24460  int __cil_tmp183 ;
24461  int __cil_tmp184 ;
24462  int __cil_tmp185 ;
24463  unsigned long __cil_tmp186 ;
24464  unsigned int __cil_tmp187 ;
24465  unsigned int __cil_tmp188 ;
24466  unsigned int __cil_tmp189 ;
24467  ULONG __cil_tmp190 ;
24468  struct _BOOT_SECTOR_INFO *__cil_tmp191 ;
24469  struct _IO_STACK_LOCATION **mem_192 ;
24470  UCHAR *mem_193 ;
24471  BOOLEAN *mem_194 ;
24472  UCHAR *mem_195 ;
24473  ALTERNATIVE_ARCHITECTURE_TYPE *mem_196 ;
24474  MEDIA_TYPE *mem_197 ;
24475  UCHAR *mem_198 ;
24476  ULONG *mem_199 ;
24477  ULONG *mem_200 ;
24478  UCHAR *mem_201 ;
24479  UCHAR *mem_202 ;
24480  PMDL *mem_203 ;
24481  CSHORT *mem_204 ;
24482  PMDL *mem_205 ;
24483  PVOID *mem_206 ;
24484  PMDL *mem_207 ;
24485  UCHAR *mem_208 ;
24486  ULONG *mem_209 ;
24487  PUCHAR *mem_210 ;
24488  PMDL *mem_211 ;
24489  PUCHAR *mem_212 ;
24490  PMDL *mem_213 ;
24491  ULONG *mem_214 ;
24492  ULONG_PTR *mem_215 ;
24493
24494  {
24495#line 5169
24496  __cil_tmp26 = 24 + 8;
24497#line 5169
24498  __cil_tmp27 = 0 + __cil_tmp26;
24499#line 5169
24500  __cil_tmp28 = 64 + __cil_tmp27;
24501#line 5169
24502  __cil_tmp29 = (unsigned int )Irp;
24503#line 5169
24504  __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
24505#line 5169
24506  mem_192 = (struct _IO_STACK_LOCATION **)__cil_tmp30;
24507#line 5169
24508  irpSp = *mem_192;
24509  {
24510#line 5177
24511  while (1) {
24512    while_155_continue: /* CIL Label */ ;
24513    goto while_155_break;
24514  }
24515  while_155_break: /* CIL Label */ ;
24516  }
24517  {
24518#line 5181
24519  mem_193 = (UCHAR *)irpSp;
24520#line 5181
24521  __cil_tmp31 = *mem_193;
24522#line 5181
24523  __cil_tmp32 = (int )__cil_tmp31;
24524#line 5181
24525  if (__cil_tmp32 == 4) {
24526    {
24527#line 5182
24528    __cil_tmp33 = (unsigned int )DisketteExtension;
24529#line 5182
24530    __cil_tmp34 = __cil_tmp33 + 250;
24531    {
24532#line 5182
24533    mem_194 = (BOOLEAN *)__cil_tmp34;
24534#line 5182
24535    if (*mem_194) {
24536      {
24537#line 5183
24538      while (1) {
24539        while_156_continue: /* CIL Label */ ;
24540        goto while_156_break;
24541      }
24542      while_156_break: /* CIL Label */ ;
24543      }
24544#line 5184
24545      return (-1073741811L);
24546    } else {
24547
24548    }
24549    }
24550    }
24551#line 5186
24552    writeOperation = (unsigned char)1;
24553  } else {
24554#line 5188
24555    writeOperation = (unsigned char)0;
24556  }
24557  }
24558  {
24559#line 5191
24560  while (1) {
24561    while_157_continue: /* CIL Label */ ;
24562    goto while_157_break;
24563  }
24564  while_157_break: /* CIL Label */ ;
24565  }
24566#line 5195
24567  if (DriveStarted) {
24568#line 5196
24569    status = 0L;
24570  } else {
24571    {
24572#line 5198
24573    __cil_tmp35 = (unsigned int )irpSp;
24574#line 5198
24575    __cil_tmp36 = __cil_tmp35 + 2;
24576#line 5198
24577    mem_195 = (UCHAR *)__cil_tmp36;
24578#line 5198
24579    __cil_tmp37 = *mem_195;
24580#line 5198
24581    __cil_tmp38 = (int )__cil_tmp37;
24582#line 5198
24583    __cil_tmp39 = __cil_tmp38 & 2;
24584#line 5198
24585    __cil_tmp40 = ! __cil_tmp39;
24586#line 5198
24587    __cil_tmp41 = ! __cil_tmp40;
24588#line 5198
24589    __cil_tmp42 = (unsigned char )__cil_tmp41;
24590#line 5198
24591    status = FlStartDrive(DisketteExtension, Irp, writeOperation, (unsigned char)1,
24592                          __cil_tmp42);
24593    }
24594  }
24595  {
24596#line 5206
24597  __cil_tmp43 = status >= 0L;
24598#line 5206
24599  if (! __cil_tmp43) {
24600    {
24601#line 5210
24602    while (1) {
24603      while_158_continue: /* CIL Label */ ;
24604      goto while_158_break;
24605    }
24606    while_158_break: /* CIL Label */ ;
24607    }
24608#line 5211
24609    return (status);
24610  } else {
24611
24612  }
24613  }
24614  {
24615#line 5214
24616  __cil_tmp44 = (KUSER_SHARED_DATA * const  )4292804608U;
24617#line 5214
24618  __cil_tmp45 = (unsigned int )__cil_tmp44;
24619#line 5214
24620  __cil_tmp46 = __cil_tmp45 + 732;
24621#line 5214
24622  mem_196 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp46;
24623#line 5214
24624  __cil_tmp47 = *mem_196;
24625#line 5214
24626  __cil_tmp48 = (int )__cil_tmp47;
24627#line 5214
24628  if (__cil_tmp48 == 1) {
24629    {
24630#line 5216
24631    FlHdbit(DisketteExtension);
24632    }
24633  } else {
24634
24635  }
24636  }
24637  {
24638#line 5220
24639  __cil_tmp49 = (unsigned int )DisketteExtension;
24640#line 5220
24641  __cil_tmp50 = __cil_tmp49 + 184;
24642#line 5220
24643  mem_197 = (MEDIA_TYPE *)__cil_tmp50;
24644#line 5220
24645  __cil_tmp51 = *mem_197;
24646#line 5220
24647  __cil_tmp52 = (int )__cil_tmp51;
24648#line 5220
24649  if (__cil_tmp52 == 0) {
24650    {
24651#line 5221
24652    while (1) {
24653      while_159_continue: /* CIL Label */ ;
24654      goto while_159_break;
24655    }
24656    while_159_break: /* CIL Label */ ;
24657    }
24658#line 5222
24659    return (-1073741804L);
24660  } else {
24661
24662  }
24663  }
24664#line 5228
24665  __cil_tmp53 = (unsigned int )DisketteExtension;
24666#line 5228
24667  __cil_tmp54 = __cil_tmp53 + 308;
24668#line 5228
24669  driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp54;
24670#line 5230
24671  __cil_tmp55 = (unsigned int )driveMediaConstants;
24672#line 5230
24673  __cil_tmp56 = __cil_tmp55 + 35;
24674#line 5230
24675  mem_198 = (UCHAR *)__cil_tmp56;
24676#line 5230
24677  __cil_tmp57 = *mem_198;
24678#line 5230
24679  __cil_tmp58 = (int )__cil_tmp57;
24680#line 5230
24681  __cil_tmp59 = 7 + __cil_tmp58;
24682#line 5230
24683  byteToSectorShift = (unsigned long )__cil_tmp59;
24684#line 5232
24685  __cil_tmp60 = 0 + 8;
24686#line 5232
24687  __cil_tmp61 = 4 + __cil_tmp60;
24688#line 5232
24689  __cil_tmp62 = (unsigned int )irpSp;
24690#line 5232
24691  __cil_tmp63 = __cil_tmp62 + __cil_tmp61;
24692#line 5232
24693  mem_199 = (ULONG *)__cil_tmp63;
24694#line 5232
24695  __cil_tmp64 = *mem_199;
24696#line 5232
24697  firstSector = __cil_tmp64 >> byteToSectorShift;
24698#line 5234
24699  __cil_tmp65 = (unsigned int )irpSp;
24700#line 5234
24701  __cil_tmp66 = __cil_tmp65 + 4;
24702#line 5234
24703  mem_200 = (ULONG *)__cil_tmp66;
24704#line 5234
24705  __cil_tmp67 = *mem_200;
24706#line 5234
24707  __cil_tmp68 = __cil_tmp67 >> byteToSectorShift;
24708#line 5234
24709  lastSector = firstSector + __cil_tmp68;
24710#line 5236
24711  __cil_tmp69 = (unsigned int )driveMediaConstants;
24712#line 5236
24713  __cil_tmp70 = __cil_tmp69 + 38;
24714#line 5236
24715  mem_201 = (UCHAR *)__cil_tmp70;
24716#line 5236
24717  sectorsPerTrack = *mem_201;
24718#line 5237
24719  __cil_tmp71 = (unsigned int )driveMediaConstants;
24720#line 5237
24721  __cil_tmp72 = __cil_tmp71 + 51;
24722#line 5237
24723  mem_202 = (UCHAR *)__cil_tmp72;
24724#line 5237
24725  numberOfHeads = *mem_202;
24726  {
24727#line 5238
24728  __cil_tmp73 = (unsigned int )Irp;
24729#line 5238
24730  __cil_tmp74 = __cil_tmp73 + 4;
24731#line 5238
24732  mem_203 = (PMDL *)__cil_tmp74;
24733#line 5238
24734  __cil_tmp75 = *mem_203;
24735#line 5238
24736  __cil_tmp76 = (unsigned int )__cil_tmp75;
24737#line 5238
24738  __cil_tmp77 = __cil_tmp76 + 6;
24739#line 5238
24740  mem_204 = (CSHORT *)__cil_tmp77;
24741#line 5238
24742  __cil_tmp78 = *mem_204;
24743#line 5238
24744  __cil_tmp79 = (int )__cil_tmp78;
24745#line 5238
24746  if (__cil_tmp79 & 5) {
24747#line 5238
24748    __cil_tmp80 = (unsigned int )Irp;
24749#line 5238
24750    __cil_tmp81 = __cil_tmp80 + 4;
24751#line 5238
24752    mem_205 = (PMDL *)__cil_tmp81;
24753#line 5238
24754    __cil_tmp82 = *mem_205;
24755#line 5238
24756    __cil_tmp83 = (unsigned int )__cil_tmp82;
24757#line 5238
24758    __cil_tmp84 = __cil_tmp83 + 12;
24759#line 5238
24760    mem_206 = (PVOID *)__cil_tmp84;
24761#line 5238
24762    __cil_tmp85 = *mem_206;
24763#line 5238
24764    userBuffer = (CHAR *)__cil_tmp85;
24765  } else {
24766    {
24767#line 5238
24768    __cil_tmp86 = (unsigned int )Irp;
24769#line 5238
24770    __cil_tmp87 = __cil_tmp86 + 4;
24771#line 5238
24772    mem_207 = (PMDL *)__cil_tmp87;
24773#line 5238
24774    __cil_tmp88 = *mem_207;
24775#line 5238
24776    __cil_tmp89 = (enum _MEMORY_CACHING_TYPE )1;
24777#line 5238
24778    __cil_tmp90 = (void *)0;
24779#line 5238
24780    __cil_tmp91 = (enum _MM_PAGE_PRIORITY )32;
24781#line 5238
24782    tmp___0 = MmMapLockedPagesSpecifyCache(__cil_tmp88, (char)0, __cil_tmp89, __cil_tmp90,
24783                                           0UL, __cil_tmp91);
24784#line 5238
24785    userBuffer = (CHAR *)tmp___0;
24786    }
24787  }
24788  }
24789  {
24790#line 5240
24791  __cil_tmp92 = (void *)0;
24792#line 5240
24793  __cil_tmp93 = (unsigned int )__cil_tmp92;
24794#line 5240
24795  __cil_tmp94 = (unsigned int )userBuffer;
24796#line 5240
24797  if (__cil_tmp94 == __cil_tmp93) {
24798    {
24799#line 5243
24800    while (1) {
24801      while_160_continue: /* CIL Label */ ;
24802      goto while_160_break;
24803    }
24804    while_160_break: /* CIL Label */ ;
24805    }
24806#line 5244
24807    return (-1073741670L);
24808  } else {
24809
24810  }
24811  }
24812#line 5247
24813  __cil_tmp95 = (unsigned long )sectorsPerTrack;
24814#line 5247
24815  trackSize = __cil_tmp95 << byteToSectorShift;
24816#line 5249
24817  skew = (unsigned char)0;
24818#line 5250
24819  __cil_tmp96 = (unsigned int )driveMediaConstants;
24820#line 5250
24821  __cil_tmp97 = __cil_tmp96 + 54;
24822#line 5250
24823  mem_208 = (UCHAR *)__cil_tmp97;
24824#line 5250
24825  skewDelta = *mem_208;
24826#line 5251
24827  currentSector = firstSector;
24828  {
24829#line 5251
24830  while (1) {
24831    while_161_continue: /* CIL Label */ ;
24832#line 5251
24833    if (currentSector < lastSector) {
24834
24835    } else {
24836      goto while_161_break;
24837    }
24838#line 5257
24839    __cil_tmp98 = (unsigned long )numberOfHeads;
24840#line 5257
24841    __cil_tmp99 = (unsigned long )sectorsPerTrack;
24842#line 5257
24843    __cil_tmp100 = currentSector / __cil_tmp99;
24844#line 5257
24845    __cil_tmp101 = __cil_tmp100 / __cil_tmp98;
24846#line 5257
24847    currentCylinder = (unsigned char )__cil_tmp101;
24848#line 5258
24849    __cil_tmp102 = (unsigned long )sectorsPerTrack;
24850#line 5258
24851    __cil_tmp103 = currentSector % __cil_tmp102;
24852#line 5258
24853    trackSector = (unsigned char )__cil_tmp103;
24854#line 5259
24855    __cil_tmp104 = (unsigned long )numberOfHeads;
24856#line 5259
24857    __cil_tmp105 = (unsigned long )sectorsPerTrack;
24858#line 5259
24859    __cil_tmp106 = currentSector / __cil_tmp105;
24860#line 5259
24861    __cil_tmp107 = __cil_tmp106 % __cil_tmp104;
24862#line 5259
24863    currentHead = (unsigned char )__cil_tmp107;
24864#line 5260
24865    __cil_tmp108 = (int )trackSector;
24866#line 5260
24867    __cil_tmp109 = (int )sectorsPerTrack;
24868#line 5260
24869    __cil_tmp110 = __cil_tmp109 - __cil_tmp108;
24870#line 5260
24871    numTransferSectors = (unsigned char )__cil_tmp110;
24872    {
24873#line 5261
24874    __cil_tmp111 = (unsigned long )numTransferSectors;
24875#line 5261
24876    __cil_tmp112 = lastSector - currentSector;
24877#line 5261
24878    if (__cil_tmp112 < __cil_tmp111) {
24879#line 5262
24880      __cil_tmp113 = lastSector - currentSector;
24881#line 5262
24882      numTransferSectors = (unsigned char )__cil_tmp113;
24883    } else {
24884
24885    }
24886    }
24887    {
24888#line 5272
24889    __cil_tmp114 = (unsigned int )DisketteExtension;
24890#line 5272
24891    __cil_tmp115 = __cil_tmp114 + 108;
24892#line 5272
24893    mem_209 = (ULONG *)__cil_tmp115;
24894#line 5272
24895    __cil_tmp116 = *mem_209;
24896#line 5272
24897    if (trackSize > __cil_tmp116) {
24898      {
24899#line 5276
24900      while (1) {
24901        while_162_continue: /* CIL Label */ ;
24902        goto while_162_break;
24903      }
24904      while_162_break: /* CIL Label */ ;
24905      }
24906      {
24907#line 5277
24908      FlAllocateIoBuffer(DisketteExtension, trackSize);
24909      }
24910      {
24911#line 5278
24912      __cil_tmp117 = (unsigned int )DisketteExtension;
24913#line 5278
24914      __cil_tmp118 = __cil_tmp117 + 124;
24915#line 5278
24916      mem_210 = (PUCHAR *)__cil_tmp118;
24917#line 5278
24918      __cil_tmp119 = *mem_210;
24919#line 5278
24920      if (! __cil_tmp119) {
24921        {
24922#line 5282
24923        while (1) {
24924          while_163_continue: /* CIL Label */ ;
24925          goto while_163_break;
24926        }
24927        while_163_break: /* CIL Label */ ;
24928        }
24929#line 5283
24930        return (-1073741670L);
24931      } else {
24932
24933      }
24934      }
24935#line 5285
24936      __cil_tmp120 = (unsigned int )DisketteExtension;
24937#line 5285
24938      __cil_tmp121 = __cil_tmp120 + 128;
24939#line 5285
24940      mem_211 = (PMDL *)__cil_tmp121;
24941#line 5285
24942      mdl = *mem_211;
24943#line 5286
24944      __cil_tmp122 = (unsigned int )DisketteExtension;
24945#line 5286
24946      __cil_tmp123 = __cil_tmp122 + 124;
24947#line 5286
24948      mem_212 = (PUCHAR *)__cil_tmp123;
24949#line 5286
24950      __cil_tmp124 = *mem_212;
24951#line 5286
24952      ioBuffer = (CHAR *)__cil_tmp124;
24953#line 5287
24954      ioOffset = 0UL;
24955#line 5288
24956      if (writeOperation) {
24957        {
24958#line 5292
24959        __cil_tmp125 = (void *)ioBuffer;
24960#line 5292
24961        __cil_tmp126 = currentSector - firstSector;
24962#line 5292
24963        __cil_tmp127 = __cil_tmp126 << byteToSectorShift;
24964#line 5292
24965        __cil_tmp128 = userBuffer + __cil_tmp127;
24966#line 5292
24967        __cil_tmp129 = (void const   *)__cil_tmp128;
24968#line 5292
24969        __cil_tmp130 = (unsigned long )numTransferSectors;
24970#line 5292
24971        __cil_tmp131 = __cil_tmp130 << byteToSectorShift;
24972#line 5292
24973        __cil_tmp132 = (unsigned int )__cil_tmp131;
24974#line 5292
24975        memmove(__cil_tmp125, __cil_tmp129, __cil_tmp132);
24976        }
24977      } else {
24978
24979      }
24980    } else {
24981#line 5295
24982      __cil_tmp133 = (unsigned int )Irp;
24983#line 5295
24984      __cil_tmp134 = __cil_tmp133 + 4;
24985#line 5295
24986      mem_213 = (PMDL *)__cil_tmp134;
24987#line 5295
24988      mdl = *mem_213;
24989#line 5296
24990      __cil_tmp135 = currentSector - firstSector;
24991#line 5296
24992      ioOffset = __cil_tmp135 << byteToSectorShift;
24993    }
24994    }
24995    {
24996#line 5307
24997    __cil_tmp136 = (int )trackSector;
24998#line 5307
24999    __cil_tmp137 = (int )numTransferSectors;
25000#line 5307
25001    __cil_tmp138 = __cil_tmp137 + __cil_tmp136;
25002#line 5307
25003    __cil_tmp139 = (int )skew;
25004#line 5307
25005    if (__cil_tmp139 >= __cil_tmp138) {
25006#line 5308
25007      skew = (unsigned char)0;
25008    } else {
25009
25010    }
25011    }
25012    {
25013#line 5311
25014    __cil_tmp140 = (int )trackSector;
25015#line 5311
25016    __cil_tmp141 = (int )skew;
25017#line 5311
25018    if (__cil_tmp141 < __cil_tmp140) {
25019#line 5312
25020      skew = trackSector;
25021    } else {
25022
25023    }
25024    }
25025    {
25026#line 5317
25027    __cil_tmp142 = (unsigned long )trackSector;
25028#line 5317
25029    __cil_tmp143 = (unsigned long )skew;
25030#line 5317
25031    __cil_tmp144 = __cil_tmp143 - __cil_tmp142;
25032#line 5317
25033    __cil_tmp145 = __cil_tmp144 << byteToSectorShift;
25034#line 5317
25035    __cil_tmp146 = ioOffset + __cil_tmp145;
25036#line 5317
25037    __cil_tmp147 = (int )skew;
25038#line 5317
25039    __cil_tmp148 = (int )trackSector;
25040#line 5317
25041    __cil_tmp149 = (int )numTransferSectors;
25042#line 5317
25043    __cil_tmp150 = __cil_tmp149 + __cil_tmp148;
25044#line 5317
25045    __cil_tmp151 = __cil_tmp150 - __cil_tmp147;
25046#line 5317
25047    __cil_tmp152 = (unsigned char )__cil_tmp151;
25048#line 5317
25049    status = FlReadWriteTrack(DisketteExtension, mdl, __cil_tmp146, writeOperation,
25050                              currentCylinder, currentHead, skew, __cil_tmp152, (unsigned char)1);
25051    }
25052#line 5330
25053    if (status >= 0L) {
25054      {
25055#line 5330
25056      __cil_tmp153 = (int )trackSector;
25057#line 5330
25058      __cil_tmp154 = (int )skew;
25059#line 5330
25060      if (__cil_tmp154 > __cil_tmp153) {
25061        {
25062#line 5331
25063        __cil_tmp155 = (int )trackSector;
25064#line 5331
25065        __cil_tmp156 = (int )skew;
25066#line 5331
25067        __cil_tmp157 = __cil_tmp156 - __cil_tmp155;
25068#line 5331
25069        __cil_tmp158 = (unsigned char )__cil_tmp157;
25070#line 5331
25071        status = FlReadWriteTrack(DisketteExtension, mdl, ioOffset, writeOperation,
25072                                  currentCylinder, currentHead, trackSector, __cil_tmp158,
25073                                  (unsigned char)0);
25074        }
25075      } else {
25076#line 5341
25077        __cil_tmp159 = (int )sectorsPerTrack;
25078#line 5341
25079        __cil_tmp160 = (int )trackSector;
25080#line 5341
25081        __cil_tmp161 = (int )numTransferSectors;
25082#line 5341
25083        __cil_tmp162 = __cil_tmp161 + __cil_tmp160;
25084#line 5341
25085        __cil_tmp163 = __cil_tmp162 % __cil_tmp159;
25086#line 5341
25087        skew = (unsigned char )__cil_tmp163;
25088      }
25089      }
25090    } else {
25091#line 5341
25092      __cil_tmp164 = (int )sectorsPerTrack;
25093#line 5341
25094      __cil_tmp165 = (int )trackSector;
25095#line 5341
25096      __cil_tmp166 = (int )numTransferSectors;
25097#line 5341
25098      __cil_tmp167 = __cil_tmp166 + __cil_tmp165;
25099#line 5341
25100      __cil_tmp168 = __cil_tmp167 % __cil_tmp164;
25101#line 5341
25102      skew = (unsigned char )__cil_tmp168;
25103    }
25104    {
25105#line 5344
25106    __cil_tmp169 = status >= 0L;
25107#line 5344
25108    if (! __cil_tmp169) {
25109      goto while_161_break;
25110    } else {
25111
25112    }
25113    }
25114#line 5353
25115    if (! writeOperation) {
25116      {
25117#line 5353
25118      __cil_tmp170 = (unsigned int )DisketteExtension;
25119#line 5353
25120      __cil_tmp171 = __cil_tmp170 + 108;
25121#line 5353
25122      mem_214 = (ULONG *)__cil_tmp171;
25123#line 5353
25124      __cil_tmp172 = *mem_214;
25125#line 5353
25126      if (trackSize > __cil_tmp172) {
25127        {
25128#line 5359
25129        __cil_tmp173 = currentSector - firstSector;
25130#line 5359
25131        __cil_tmp174 = __cil_tmp173 << byteToSectorShift;
25132#line 5359
25133        __cil_tmp175 = userBuffer + __cil_tmp174;
25134#line 5359
25135        __cil_tmp176 = (void *)__cil_tmp175;
25136#line 5359
25137        __cil_tmp177 = (void const   *)ioBuffer;
25138#line 5359
25139        __cil_tmp178 = (unsigned long )numTransferSectors;
25140#line 5359
25141        __cil_tmp179 = __cil_tmp178 << byteToSectorShift;
25142#line 5359
25143        __cil_tmp180 = (unsigned int )__cil_tmp179;
25144#line 5359
25145        memmove(__cil_tmp176, __cil_tmp177, __cil_tmp180);
25146        }
25147      } else {
25148
25149      }
25150      }
25151    } else {
25152
25153    }
25154#line 5367
25155    __cil_tmp181 = (int )sectorsPerTrack;
25156#line 5367
25157    __cil_tmp182 = (int )skewDelta;
25158#line 5367
25159    __cil_tmp183 = (int )skew;
25160#line 5367
25161    __cil_tmp184 = __cil_tmp183 + __cil_tmp182;
25162#line 5367
25163    __cil_tmp185 = __cil_tmp184 % __cil_tmp181;
25164#line 5367
25165    skew = (unsigned char )__cil_tmp185;
25166#line 5251
25167    __cil_tmp186 = (unsigned long )numTransferSectors;
25168#line 5251
25169    currentSector = currentSector + __cil_tmp186;
25170  }
25171  while_161_break: /* CIL Label */ ;
25172  }
25173#line 5370
25174  __cil_tmp187 = 24 + 4;
25175#line 5370
25176  __cil_tmp188 = (unsigned int )Irp;
25177#line 5370
25178  __cil_tmp189 = __cil_tmp188 + __cil_tmp187;
25179#line 5370
25180  __cil_tmp190 = currentSector - firstSector;
25181#line 5370
25182  mem_215 = (ULONG_PTR *)__cil_tmp189;
25183#line 5370
25184  *mem_215 = __cil_tmp190 << byteToSectorShift;
25185#line 5377
25186  if (status >= 0L) {
25187#line 5377
25188    if (firstSector == 0UL) {
25189      {
25190#line 5378
25191      __cil_tmp191 = (struct _BOOT_SECTOR_INFO *)userBuffer;
25192#line 5378
25193      FlConsolidateMediaTypeWithBootSector(DisketteExtension, __cil_tmp191);
25194      }
25195    } else {
25196
25197    }
25198  } else {
25199
25200  }
25201  {
25202#line 5385
25203  while (1) {
25204    while_164_continue: /* CIL Label */ ;
25205    goto while_164_break;
25206  }
25207  while_164_break: /* CIL Label */ ;
25208  }
25209#line 5386
25210  return (status);
25211}
25212}
25213#line 5389 "floppy.c"
25214NTSTATUS FlFormat(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) 
25215{ LARGE_INTEGER headSettleTime ;
25216  PIO_STACK_LOCATION irpSp ;
25217  PBAD_TRACK_NUMBER badTrackBuffer ;
25218  PFORMAT_PARAMETERS formatParameters ;
25219  PFORMAT_EX_PARAMETERS formatExParameters ;
25220  PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
25221  NTSTATUS ntStatus ;
25222  ULONG badTrackBufferLength ;
25223  DRIVE_MEDIA_TYPE driveMediaType ;
25224  UCHAR driveStatus ;
25225  UCHAR numberOfBadTracks ;
25226  UCHAR currentTrack ;
25227  UCHAR endTrack ;
25228  UCHAR whichSector ;
25229  UCHAR retryCount ;
25230  BOOLEAN bufferOverflow ;
25231  FDC_DISK_CHANGE_PARMS fdcDiskChangeParms ;
25232  ULONG length ;
25233  UCHAR tmp ;
25234  unsigned int __cil_tmp22 ;
25235  unsigned int __cil_tmp23 ;
25236  unsigned int __cil_tmp24 ;
25237  unsigned int __cil_tmp25 ;
25238  unsigned int __cil_tmp26 ;
25239  unsigned int __cil_tmp27 ;
25240  unsigned int __cil_tmp28 ;
25241  PVOID __cil_tmp29 ;
25242  int __cil_tmp30 ;
25243  int __cil_tmp31 ;
25244  int __cil_tmp32 ;
25245  int __cil_tmp33 ;
25246  int __cil_tmp34 ;
25247  unsigned long __cil_tmp35 ;
25248  unsigned int __cil_tmp36 ;
25249  unsigned int __cil_tmp37 ;
25250  unsigned int __cil_tmp38 ;
25251  unsigned int __cil_tmp39 ;
25252  ULONG __cil_tmp40 ;
25253  unsigned int __cil_tmp41 ;
25254  unsigned int __cil_tmp42 ;
25255  PVOID __cil_tmp43 ;
25256  void *__cil_tmp44 ;
25257  unsigned int __cil_tmp45 ;
25258  unsigned int __cil_tmp46 ;
25259  unsigned int __cil_tmp47 ;
25260  unsigned int __cil_tmp48 ;
25261  UCHAR __cil_tmp49 ;
25262  int __cil_tmp50 ;
25263  PDRIVE_MEDIA_LIMITS __cil_tmp51 ;
25264  MEDIA_TYPE __cil_tmp52 ;
25265  int __cil_tmp53 ;
25266  unsigned int __cil_tmp54 ;
25267  PDRIVE_MEDIA_CONSTANTS __cil_tmp55 ;
25268  MEDIA_TYPE __cil_tmp56 ;
25269  int __cil_tmp57 ;
25270  unsigned int __cil_tmp58 ;
25271  unsigned int __cil_tmp59 ;
25272  UCHAR __cil_tmp60 ;
25273  int __cil_tmp61 ;
25274  PDRIVE_MEDIA_LIMITS __cil_tmp62 ;
25275  unsigned int __cil_tmp63 ;
25276  unsigned int __cil_tmp64 ;
25277  DRIVE_MEDIA_TYPE __cil_tmp65 ;
25278  int __cil_tmp66 ;
25279  int __cil_tmp67 ;
25280  int __cil_tmp68 ;
25281  int __cil_tmp69 ;
25282  int __cil_tmp70 ;
25283  unsigned int __cil_tmp71 ;
25284  unsigned int __cil_tmp72 ;
25285  unsigned int __cil_tmp73 ;
25286  unsigned int __cil_tmp74 ;
25287  unsigned int __cil_tmp75 ;
25288  unsigned int __cil_tmp76 ;
25289  unsigned int __cil_tmp77 ;
25290  unsigned int __cil_tmp78 ;
25291  PDRIVE_MEDIA_CONSTANTS __cil_tmp79 ;
25292  unsigned int __cil_tmp80 ;
25293  unsigned int __cil_tmp81 ;
25294  unsigned int __cil_tmp82 ;
25295  unsigned int __cil_tmp83 ;
25296  unsigned int __cil_tmp84 ;
25297  USHORT __cil_tmp85 ;
25298  unsigned int __cil_tmp86 ;
25299  unsigned int __cil_tmp87 ;
25300  unsigned int __cil_tmp88 ;
25301  unsigned int __cil_tmp89 ;
25302  unsigned int __cil_tmp90 ;
25303  USHORT __cil_tmp91 ;
25304  unsigned int __cil_tmp92 ;
25305  unsigned int __cil_tmp93 ;
25306  unsigned int __cil_tmp94 ;
25307  unsigned int __cil_tmp95 ;
25308  unsigned int __cil_tmp96 ;
25309  unsigned int __cil_tmp97 ;
25310  USHORT __cil_tmp98 ;
25311  unsigned int __cil_tmp99 ;
25312  unsigned int __cil_tmp100 ;
25313  unsigned int __cil_tmp101 ;
25314  unsigned int __cil_tmp102 ;
25315  UCHAR __cil_tmp103 ;
25316  int __cil_tmp104 ;
25317  unsigned int __cil_tmp105 ;
25318  unsigned int __cil_tmp106 ;
25319  UCHAR __cil_tmp107 ;
25320  int __cil_tmp108 ;
25321  int __cil_tmp109 ;
25322  unsigned int __cil_tmp110 ;
25323  unsigned int __cil_tmp111 ;
25324  UCHAR __cil_tmp112 ;
25325  int __cil_tmp113 ;
25326  unsigned int __cil_tmp114 ;
25327  unsigned int __cil_tmp115 ;
25328  USHORT __cil_tmp116 ;
25329  int __cil_tmp117 ;
25330  int __cil_tmp118 ;
25331  int __cil_tmp119 ;
25332  int __cil_tmp120 ;
25333  unsigned int __cil_tmp121 ;
25334  unsigned int __cil_tmp122 ;
25335  ULONG __cil_tmp123 ;
25336  unsigned int __cil_tmp124 ;
25337  unsigned int __cil_tmp125 ;
25338  UCHAR __cil_tmp126 ;
25339  unsigned long __cil_tmp127 ;
25340  unsigned int __cil_tmp128 ;
25341  unsigned int __cil_tmp129 ;
25342  ULONG __cil_tmp130 ;
25343  ULONG __cil_tmp131 ;
25344  ULONG __cil_tmp132 ;
25345  unsigned int __cil_tmp133 ;
25346  unsigned int __cil_tmp134 ;
25347  ULONG __cil_tmp135 ;
25348  unsigned int __cil_tmp136 ;
25349  unsigned int __cil_tmp137 ;
25350  UCHAR __cil_tmp138 ;
25351  unsigned long __cil_tmp139 ;
25352  unsigned int __cil_tmp140 ;
25353  unsigned int __cil_tmp141 ;
25354  ULONG __cil_tmp142 ;
25355  ULONG __cil_tmp143 ;
25356  ULONG __cil_tmp144 ;
25357  KUSER_SHARED_DATA *__cil_tmp145 ;
25358  unsigned int __cil_tmp146 ;
25359  unsigned int __cil_tmp147 ;
25360  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp148 ;
25361  int __cil_tmp149 ;
25362  int __cil_tmp150 ;
25363  unsigned int __cil_tmp151 ;
25364  unsigned int __cil_tmp152 ;
25365  DRIVE_MEDIA_TYPE __cil_tmp153 ;
25366  int __cil_tmp154 ;
25367  int __cil_tmp155 ;
25368  unsigned int __cil_tmp156 ;
25369  unsigned int __cil_tmp157 ;
25370  unsigned int __cil_tmp158 ;
25371  unsigned int __cil_tmp159 ;
25372  unsigned int __cil_tmp160 ;
25373  unsigned int __cil_tmp161 ;
25374  unsigned int __cil_tmp162 ;
25375  unsigned int __cil_tmp163 ;
25376  unsigned int __cil_tmp164 ;
25377  unsigned int __cil_tmp165 ;
25378  unsigned int __cil_tmp166 ;
25379  unsigned int __cil_tmp167 ;
25380  unsigned int __cil_tmp168 ;
25381  unsigned int __cil_tmp169 ;
25382  unsigned int __cil_tmp170 ;
25383  unsigned int __cil_tmp171 ;
25384  unsigned int __cil_tmp172 ;
25385  unsigned int __cil_tmp173 ;
25386  UCHAR __cil_tmp174 ;
25387  int __cil_tmp175 ;
25388  unsigned int __cil_tmp176 ;
25389  unsigned int __cil_tmp177 ;
25390  UCHAR __cil_tmp178 ;
25391  int __cil_tmp179 ;
25392  int __cil_tmp180 ;
25393  int __cil_tmp181 ;
25394  int __cil_tmp182 ;
25395  unsigned int __cil_tmp183 ;
25396  unsigned int __cil_tmp184 ;
25397  unsigned int __cil_tmp185 ;
25398  unsigned int __cil_tmp186 ;
25399  UCHAR *__cil_tmp187 ;
25400  unsigned int __cil_tmp188 ;
25401  unsigned int __cil_tmp189 ;
25402  unsigned int __cil_tmp190 ;
25403  unsigned int __cil_tmp191 ;
25404  UCHAR *__cil_tmp192 ;
25405  void *__cil_tmp193 ;
25406  struct _MDL *__cil_tmp194 ;
25407  unsigned int __cil_tmp195 ;
25408  unsigned int __cil_tmp196 ;
25409  unsigned int __cil_tmp197 ;
25410  unsigned int __cil_tmp198 ;
25411  UCHAR __cil_tmp199 ;
25412  int __cil_tmp200 ;
25413  unsigned int __cil_tmp201 ;
25414  unsigned int __cil_tmp202 ;
25415  UCHAR __cil_tmp203 ;
25416  int __cil_tmp204 ;
25417  unsigned int __cil_tmp205 ;
25418  unsigned int __cil_tmp206 ;
25419  UCHAR __cil_tmp207 ;
25420  int __cil_tmp208 ;
25421  int __cil_tmp209 ;
25422  int __cil_tmp210 ;
25423  int __cil_tmp211 ;
25424  unsigned char __cil_tmp212 ;
25425  int __cil_tmp213 ;
25426  unsigned int __cil_tmp214 ;
25427  unsigned int __cil_tmp215 ;
25428  unsigned int __cil_tmp216 ;
25429  unsigned int __cil_tmp217 ;
25430  UCHAR __cil_tmp218 ;
25431  int __cil_tmp219 ;
25432  LARGE_INTEGER *__cil_tmp220 ;
25433  unsigned int __cil_tmp221 ;
25434  unsigned int __cil_tmp222 ;
25435  UCHAR __cil_tmp223 ;
25436  int __cil_tmp224 ;
25437  int __cil_tmp225 ;
25438  int __cil_tmp226 ;
25439  unsigned int __cil_tmp227 ;
25440  unsigned int __cil_tmp228 ;
25441  KUSER_SHARED_DATA *__cil_tmp229 ;
25442  unsigned int __cil_tmp230 ;
25443  unsigned int __cil_tmp231 ;
25444  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp232 ;
25445  int __cil_tmp233 ;
25446  int __cil_tmp234 ;
25447  unsigned int __cil_tmp235 ;
25448  unsigned int __cil_tmp236 ;
25449  unsigned int __cil_tmp237 ;
25450  unsigned int __cil_tmp238 ;
25451  unsigned int __cil_tmp239 ;
25452  unsigned int __cil_tmp240 ;
25453  unsigned int __cil_tmp241 ;
25454  unsigned int __cil_tmp242 ;
25455  unsigned int __cil_tmp243 ;
25456  unsigned int __cil_tmp244 ;
25457  unsigned int __cil_tmp245 ;
25458  unsigned int __cil_tmp246 ;
25459  unsigned int __cil_tmp247 ;
25460  unsigned int __cil_tmp248 ;
25461  UCHAR *__cil_tmp249 ;
25462  unsigned int __cil_tmp250 ;
25463  unsigned int __cil_tmp251 ;
25464  unsigned int __cil_tmp252 ;
25465  unsigned int __cil_tmp253 ;
25466  UCHAR *__cil_tmp254 ;
25467  void *__cil_tmp255 ;
25468  struct _MDL *__cil_tmp256 ;
25469  unsigned int __cil_tmp257 ;
25470  unsigned int __cil_tmp258 ;
25471  int __cil_tmp259 ;
25472  unsigned int __cil_tmp260 ;
25473  unsigned int __cil_tmp261 ;
25474  UCHAR __cil_tmp262 ;
25475  int __cil_tmp263 ;
25476  int __cil_tmp264 ;
25477  int __cil_tmp265 ;
25478  int __cil_tmp266 ;
25479  unsigned int __cil_tmp267 ;
25480  unsigned int __cil_tmp268 ;
25481  PUCHAR __cil_tmp269 ;
25482  PUCHAR __cil_tmp270 ;
25483  unsigned int __cil_tmp271 ;
25484  unsigned int __cil_tmp272 ;
25485  UCHAR __cil_tmp273 ;
25486  int __cil_tmp274 ;
25487  int __cil_tmp275 ;
25488  int __cil_tmp276 ;
25489  int __cil_tmp277 ;
25490  int __cil_tmp278 ;
25491  int __cil_tmp279 ;
25492  unsigned int __cil_tmp280 ;
25493  unsigned int __cil_tmp281 ;
25494  PUCHAR __cil_tmp282 ;
25495  PUCHAR __cil_tmp283 ;
25496  unsigned int __cil_tmp284 ;
25497  unsigned int __cil_tmp285 ;
25498  UCHAR __cil_tmp286 ;
25499  int __cil_tmp287 ;
25500  int __cil_tmp288 ;
25501  int __cil_tmp289 ;
25502  int __cil_tmp290 ;
25503  int __cil_tmp291 ;
25504  int __cil_tmp292 ;
25505  unsigned int __cil_tmp293 ;
25506  unsigned int __cil_tmp294 ;
25507  PUCHAR __cil_tmp295 ;
25508  PUCHAR __cil_tmp296 ;
25509  unsigned int __cil_tmp297 ;
25510  unsigned int __cil_tmp298 ;
25511  unsigned int __cil_tmp299 ;
25512  unsigned int __cil_tmp300 ;
25513  USHORT __cil_tmp301 ;
25514  int __cil_tmp302 ;
25515  int __cil_tmp303 ;
25516  int __cil_tmp304 ;
25517  unsigned int __cil_tmp305 ;
25518  unsigned int __cil_tmp306 ;
25519  PUCHAR __cil_tmp307 ;
25520  PUCHAR __cil_tmp308 ;
25521  int __cil_tmp309 ;
25522  int __cil_tmp310 ;
25523  int __cil_tmp311 ;
25524  int __cil_tmp312 ;
25525  int __cil_tmp313 ;
25526  unsigned int __cil_tmp314 ;
25527  unsigned int __cil_tmp315 ;
25528  PUCHAR __cil_tmp316 ;
25529  PUCHAR __cil_tmp317 ;
25530  unsigned int __cil_tmp318 ;
25531  unsigned int __cil_tmp319 ;
25532  int __cil_tmp320 ;
25533  int __cil_tmp321 ;
25534  unsigned int __cil_tmp322 ;
25535  unsigned int __cil_tmp323 ;
25536  USHORT __cil_tmp324 ;
25537  unsigned int __cil_tmp325 ;
25538  unsigned int __cil_tmp326 ;
25539  unsigned int __cil_tmp327 ;
25540  unsigned int __cil_tmp328 ;
25541  unsigned int __cil_tmp329 ;
25542  unsigned int __cil_tmp330 ;
25543  unsigned int __cil_tmp331 ;
25544  unsigned int __cil_tmp332 ;
25545  unsigned int __cil_tmp333 ;
25546  unsigned int __cil_tmp334 ;
25547  UCHAR __cil_tmp335 ;
25548  int __cil_tmp336 ;
25549  unsigned int __cil_tmp337 ;
25550  unsigned int __cil_tmp338 ;
25551  UCHAR __cil_tmp339 ;
25552  int __cil_tmp340 ;
25553  int __cil_tmp341 ;
25554  int __cil_tmp342 ;
25555  int __cil_tmp343 ;
25556  int __cil_tmp344 ;
25557  unsigned int __cil_tmp345 ;
25558  unsigned int __cil_tmp346 ;
25559  unsigned int __cil_tmp347 ;
25560  unsigned int __cil_tmp348 ;
25561  unsigned int __cil_tmp349 ;
25562  unsigned int __cil_tmp350 ;
25563  unsigned int __cil_tmp351 ;
25564  unsigned int __cil_tmp352 ;
25565  unsigned int __cil_tmp353 ;
25566  unsigned int __cil_tmp354 ;
25567  unsigned int __cil_tmp355 ;
25568  unsigned int __cil_tmp356 ;
25569  unsigned int __cil_tmp357 ;
25570  unsigned int __cil_tmp358 ;
25571  unsigned int __cil_tmp359 ;
25572  unsigned int __cil_tmp360 ;
25573  unsigned int __cil_tmp361 ;
25574  unsigned int __cil_tmp362 ;
25575  unsigned int __cil_tmp363 ;
25576  unsigned int __cil_tmp364 ;
25577  unsigned int __cil_tmp365 ;
25578  unsigned int __cil_tmp366 ;
25579  unsigned int __cil_tmp367 ;
25580  unsigned int __cil_tmp368 ;
25581  unsigned int __cil_tmp369 ;
25582  unsigned int __cil_tmp370 ;
25583  unsigned int __cil_tmp371 ;
25584  unsigned int __cil_tmp372 ;
25585  UCHAR *__cil_tmp373 ;
25586  unsigned int __cil_tmp374 ;
25587  unsigned int __cil_tmp375 ;
25588  unsigned int __cil_tmp376 ;
25589  unsigned int __cil_tmp377 ;
25590  UCHAR *__cil_tmp378 ;
25591  unsigned int __cil_tmp379 ;
25592  unsigned int __cil_tmp380 ;
25593  PMDL __cil_tmp381 ;
25594  int __cil_tmp382 ;
25595  unsigned int __cil_tmp383 ;
25596  unsigned int __cil_tmp384 ;
25597  unsigned int __cil_tmp385 ;
25598  unsigned int __cil_tmp386 ;
25599  UCHAR __cil_tmp387 ;
25600  int __cil_tmp388 ;
25601  unsigned int __cil_tmp389 ;
25602  unsigned int __cil_tmp390 ;
25603  unsigned int __cil_tmp391 ;
25604  unsigned int __cil_tmp392 ;
25605  UCHAR __cil_tmp393 ;
25606  int __cil_tmp394 ;
25607  unsigned int __cil_tmp395 ;
25608  unsigned int __cil_tmp396 ;
25609  unsigned int __cil_tmp397 ;
25610  unsigned int __cil_tmp398 ;
25611  UCHAR __cil_tmp399 ;
25612  int __cil_tmp400 ;
25613  unsigned int __cil_tmp401 ;
25614  unsigned int __cil_tmp402 ;
25615  unsigned int __cil_tmp403 ;
25616  unsigned int __cil_tmp404 ;
25617  unsigned int __cil_tmp405 ;
25618  unsigned int __cil_tmp406 ;
25619  UCHAR __cil_tmp407 ;
25620  unsigned int __cil_tmp408 ;
25621  unsigned int __cil_tmp409 ;
25622  unsigned int __cil_tmp410 ;
25623  unsigned int __cil_tmp411 ;
25624  UCHAR __cil_tmp412 ;
25625  int __cil_tmp413 ;
25626  int __cil_tmp414 ;
25627  int __cil_tmp415 ;
25628  int __cil_tmp416 ;
25629  int __cil_tmp417 ;
25630  int __cil_tmp418 ;
25631  KUSER_SHARED_DATA *__cil_tmp419 ;
25632  unsigned int __cil_tmp420 ;
25633  unsigned int __cil_tmp421 ;
25634  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp422 ;
25635  int __cil_tmp423 ;
25636  unsigned int __cil_tmp424 ;
25637  unsigned int __cil_tmp425 ;
25638  unsigned int __cil_tmp426 ;
25639  unsigned int __cil_tmp427 ;
25640  unsigned int __cil_tmp428 ;
25641  unsigned int __cil_tmp429 ;
25642  unsigned int __cil_tmp430 ;
25643  unsigned int __cil_tmp431 ;
25644  unsigned int __cil_tmp432 ;
25645  unsigned int __cil_tmp433 ;
25646  unsigned int __cil_tmp434 ;
25647  unsigned int __cil_tmp435 ;
25648  unsigned int __cil_tmp436 ;
25649  unsigned int __cil_tmp437 ;
25650  UCHAR *__cil_tmp438 ;
25651  unsigned int __cil_tmp439 ;
25652  unsigned int __cil_tmp440 ;
25653  unsigned int __cil_tmp441 ;
25654  unsigned int __cil_tmp442 ;
25655  UCHAR *__cil_tmp443 ;
25656  void *__cil_tmp444 ;
25657  struct _MDL *__cil_tmp445 ;
25658  int __cil_tmp446 ;
25659  unsigned int __cil_tmp447 ;
25660  unsigned int __cil_tmp448 ;
25661  unsigned int __cil_tmp449 ;
25662  unsigned int __cil_tmp450 ;
25663  UCHAR __cil_tmp451 ;
25664  int __cil_tmp452 ;
25665  unsigned int __cil_tmp453 ;
25666  unsigned int __cil_tmp454 ;
25667  PDEVICE_OBJECT __cil_tmp455 ;
25668  int __cil_tmp456 ;
25669  int __cil_tmp457 ;
25670  int __cil_tmp458 ;
25671  int __cil_tmp459 ;
25672  unsigned long __cil_tmp460 ;
25673  void *__cil_tmp461 ;
25674  FDC_DISK_CHANGE_PARMS *__cil_tmp462 ;
25675  unsigned int __cil_tmp463 ;
25676  unsigned int __cil_tmp464 ;
25677  UCHAR __cil_tmp465 ;
25678  int __cil_tmp466 ;
25679  int __cil_tmp467 ;
25680  int __cil_tmp468 ;
25681  int __cil_tmp469 ;
25682  unsigned int __cil_tmp470 ;
25683  unsigned int __cil_tmp471 ;
25684  unsigned long __cil_tmp472 ;
25685  unsigned int __cil_tmp473 ;
25686  unsigned int __cil_tmp474 ;
25687  PVOID __cil_tmp475 ;
25688  int __cil_tmp476 ;
25689  PBAD_TRACK_NUMBER __cil_tmp477 ;
25690  int __cil_tmp478 ;
25691  int __cil_tmp479 ;
25692  int __cil_tmp480 ;
25693  int __cil_tmp481 ;
25694  int __cil_tmp482 ;
25695  int __cil_tmp483 ;
25696  int __cil_tmp484 ;
25697  struct _IO_STACK_LOCATION **mem_485 ;
25698  PVOID *mem_486 ;
25699  ULONG *mem_487 ;
25700  PVOID *mem_488 ;
25701  ULONG *mem_489 ;
25702  UCHAR *mem_490 ;
25703  DRIVE_MEDIA_TYPE *mem_491 ;
25704  MEDIA_TYPE *mem_492 ;
25705  MEDIA_TYPE *mem_493 ;
25706  UCHAR *mem_494 ;
25707  DRIVE_MEDIA_TYPE *mem_495 ;
25708  MEDIA_TYPE *mem_496 ;
25709  MEDIA_TYPE *mem_497 ;
25710  DRIVE_MEDIA_TYPE *mem_498 ;
25711  DRIVE_MEDIA_CONSTANTS *mem_499 ;
25712  USHORT *mem_500 ;
25713  UCHAR *mem_501 ;
25714  USHORT *mem_502 ;
25715  UCHAR *mem_503 ;
25716  USHORT *mem_504 ;
25717  ULONG *mem_505 ;
25718  UCHAR *mem_506 ;
25719  UCHAR *mem_507 ;
25720  UCHAR *mem_508 ;
25721  USHORT *mem_509 ;
25722  ULONG *mem_510 ;
25723  ULONG *mem_511 ;
25724  UCHAR *mem_512 ;
25725  ULONG *mem_513 ;
25726  ULONG *mem_514 ;
25727  UCHAR *mem_515 ;
25728  ULONG *mem_516 ;
25729  ALTERNATIVE_ARCHITECTURE_TYPE *mem_517 ;
25730  DRIVE_MEDIA_TYPE *mem_518 ;
25731  BOOLEAN *mem_519 ;
25732  UCHAR *mem_520 ;
25733  UCHAR *mem_521 ;
25734  UCHAR *mem_522 ;
25735  UCHAR *mem_523 ;
25736  UCHAR *mem_524 ;
25737  UCHAR *mem_525 ;
25738  UCHAR *mem_526 ;
25739  UCHAR *mem_527 ;
25740  UCHAR *mem_528 ;
25741  UCHAR *mem_529 ;
25742  UCHAR *mem_530 ;
25743  ULONG *mem_531 ;
25744  LONG *mem_532 ;
25745  ALTERNATIVE_ARCHITECTURE_TYPE *mem_533 ;
25746  UCHAR *mem_534 ;
25747  UCHAR *mem_535 ;
25748  UCHAR *mem_536 ;
25749  BOOLEAN *mem_537 ;
25750  UCHAR *mem_538 ;
25751  PUCHAR *mem_539 ;
25752  UCHAR *mem_540 ;
25753  PUCHAR *mem_541 ;
25754  UCHAR *mem_542 ;
25755  PUCHAR *mem_543 ;
25756  USHORT *mem_544 ;
25757  PUCHAR *mem_545 ;
25758  PUCHAR *mem_546 ;
25759  UCHAR *mem_547 ;
25760  USHORT *mem_548 ;
25761  UCHAR *mem_549 ;
25762  UCHAR *mem_550 ;
25763  UCHAR *mem_551 ;
25764  UCHAR *mem_552 ;
25765  UCHAR *mem_553 ;
25766  UCHAR *mem_554 ;
25767  UCHAR *mem_555 ;
25768  UCHAR *mem_556 ;
25769  UCHAR *mem_557 ;
25770  UCHAR *mem_558 ;
25771  UCHAR *mem_559 ;
25772  UCHAR *mem_560 ;
25773  PMDL *mem_561 ;
25774  UCHAR *mem_562 ;
25775  UCHAR *mem_563 ;
25776  UCHAR *mem_564 ;
25777  BOOLEAN *mem_565 ;
25778  UCHAR *mem_566 ;
25779  UCHAR *mem_567 ;
25780  ALTERNATIVE_ARCHITECTURE_TYPE *mem_568 ;
25781  UCHAR *mem_569 ;
25782  UCHAR *mem_570 ;
25783  UCHAR *mem_571 ;
25784  UCHAR *mem_572 ;
25785  PDEVICE_OBJECT *mem_573 ;
25786  UCHAR *mem_574 ;
25787  UCHAR *mem_575 ;
25788  PVOID *mem_576 ;
25789
25790  {
25791#line 5429
25792  numberOfBadTracks = (unsigned char)0;
25793#line 5434
25794  bufferOverflow = (unsigned char)0;
25795  {
25796#line 5440
25797  while (1) {
25798    while_165_continue: /* CIL Label */ ;
25799    goto while_165_break;
25800  }
25801  while_165_break: /* CIL Label */ ;
25802  }
25803#line 5442
25804  __cil_tmp22 = 24 + 8;
25805#line 5442
25806  __cil_tmp23 = 0 + __cil_tmp22;
25807#line 5442
25808  __cil_tmp24 = 64 + __cil_tmp23;
25809#line 5442
25810  __cil_tmp25 = (unsigned int )Irp;
25811#line 5442
25812  __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
25813#line 5442
25814  mem_485 = (struct _IO_STACK_LOCATION **)__cil_tmp26;
25815#line 5442
25816  irpSp = *mem_485;
25817#line 5443
25818  __cil_tmp27 = (unsigned int )Irp;
25819#line 5443
25820  __cil_tmp28 = __cil_tmp27 + 12;
25821#line 5443
25822  mem_486 = (PVOID *)__cil_tmp28;
25823#line 5443
25824  __cil_tmp29 = *mem_486;
25825#line 5443
25826  formatParameters = (struct _FORMAT_PARAMETERS *)__cil_tmp29;
25827  {
25828#line 5444
25829  __cil_tmp30 = 11 << 2;
25830#line 5444
25831  __cil_tmp31 = 3 << 14;
25832#line 5444
25833  __cil_tmp32 = 7 << 16;
25834#line 5444
25835  __cil_tmp33 = __cil_tmp32 | __cil_tmp31;
25836#line 5444
25837  __cil_tmp34 = __cil_tmp33 | __cil_tmp30;
25838#line 5444
25839  __cil_tmp35 = (unsigned long )__cil_tmp34;
25840#line 5444
25841  __cil_tmp36 = 0 + 8;
25842#line 5444
25843  __cil_tmp37 = 4 + __cil_tmp36;
25844#line 5444
25845  __cil_tmp38 = (unsigned int )irpSp;
25846#line 5444
25847  __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
25848#line 5444
25849  mem_487 = (ULONG *)__cil_tmp39;
25850#line 5444
25851  __cil_tmp40 = *mem_487;
25852#line 5444
25853  if (__cil_tmp40 == __cil_tmp35) {
25854#line 5446
25855    __cil_tmp41 = (unsigned int )Irp;
25856#line 5446
25857    __cil_tmp42 = __cil_tmp41 + 12;
25858#line 5446
25859    mem_488 = (PVOID *)__cil_tmp42;
25860#line 5446
25861    __cil_tmp43 = *mem_488;
25862#line 5446
25863    formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp43;
25864  } else {
25865#line 5449
25866    __cil_tmp44 = (void *)0;
25867#line 5449
25868    formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp44;
25869  }
25870  }
25871  {
25872#line 5464
25873  while (1) {
25874    while_166_continue: /* CIL Label */ ;
25875    goto while_166_break;
25876  }
25877  while_166_break: /* CIL Label */ ;
25878  }
25879#line 5466
25880  __cil_tmp45 = (unsigned int )irpSp;
25881#line 5466
25882  __cil_tmp46 = __cil_tmp45 + 4;
25883#line 5466
25884  mem_489 = (ULONG *)__cil_tmp46;
25885#line 5466
25886  badTrackBufferLength = *mem_489;
25887#line 5475
25888  __cil_tmp47 = (unsigned int )DisketteExtension;
25889#line 5475
25890  __cil_tmp48 = __cil_tmp47 + 174;
25891#line 5475
25892  mem_490 = (UCHAR *)__cil_tmp48;
25893#line 5475
25894  __cil_tmp49 = *mem_490;
25895#line 5475
25896  __cil_tmp50 = (int )__cil_tmp49;
25897#line 5475
25898  __cil_tmp51 = DriveMediaLimits + __cil_tmp50;
25899#line 5475
25900  mem_491 = (DRIVE_MEDIA_TYPE *)__cil_tmp51;
25901#line 5475
25902  driveMediaType = *mem_491;
25903  {
25904#line 5478
25905  while (1) {
25906    while_167_continue: /* CIL Label */ ;
25907    {
25908#line 5478
25909    mem_492 = (MEDIA_TYPE *)formatParameters;
25910#line 5478
25911    __cil_tmp52 = *mem_492;
25912#line 5478
25913    __cil_tmp53 = (int )__cil_tmp52;
25914#line 5478
25915    __cil_tmp54 = (unsigned int )driveMediaType;
25916#line 5478
25917    __cil_tmp55 = DriveMediaConstants + __cil_tmp54;
25918#line 5478
25919    mem_493 = (MEDIA_TYPE *)__cil_tmp55;
25920#line 5478
25921    __cil_tmp56 = *mem_493;
25922#line 5478
25923    __cil_tmp57 = (int )__cil_tmp56;
25924#line 5478
25925    if (__cil_tmp57 != __cil_tmp53) {
25926      {
25927#line 5478
25928      __cil_tmp58 = (unsigned int )DisketteExtension;
25929#line 5478
25930      __cil_tmp59 = __cil_tmp58 + 174;
25931#line 5478
25932      mem_494 = (UCHAR *)__cil_tmp59;
25933#line 5478
25934      __cil_tmp60 = *mem_494;
25935#line 5478
25936      __cil_tmp61 = (int )__cil_tmp60;
25937#line 5478
25938      __cil_tmp62 = DriveMediaLimits + __cil_tmp61;
25939#line 5478
25940      __cil_tmp63 = (unsigned int )__cil_tmp62;
25941#line 5478
25942      __cil_tmp64 = __cil_tmp63 + 32;
25943#line 5478
25944      mem_495 = (DRIVE_MEDIA_TYPE *)__cil_tmp64;
25945#line 5478
25946      __cil_tmp65 = *mem_495;
25947#line 5478
25948      __cil_tmp66 = (int )__cil_tmp65;
25949#line 5478
25950      __cil_tmp67 = (int )driveMediaType;
25951#line 5478
25952      __cil_tmp68 = __cil_tmp67 > __cil_tmp66;
25953#line 5478
25954      if (! __cil_tmp68) {
25955        goto while_167_break;
25956      } else {
25957
25958      }
25959      }
25960    } else {
25961      goto while_167_break;
25962    }
25963    }
25964#line 5483
25965    __cil_tmp69 = (int )driveMediaType;
25966#line 5483
25967    __cil_tmp70 = __cil_tmp69 - 1;
25968#line 5483
25969    driveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp70;
25970  }
25971  while_167_break: /* CIL Label */ ;
25972  }
25973#line 5486
25974  __cil_tmp71 = (unsigned int )driveMediaType;
25975#line 5486
25976  driveMediaConstants = DriveMediaConstants + __cil_tmp71;
25977#line 5493
25978  __cil_tmp72 = (unsigned int )DisketteExtension;
25979#line 5493
25980  __cil_tmp73 = __cil_tmp72 + 184;
25981#line 5493
25982  mem_496 = (MEDIA_TYPE *)__cil_tmp73;
25983#line 5493
25984  mem_497 = (MEDIA_TYPE *)formatParameters;
25985#line 5493
25986  *mem_496 = *mem_497;
25987#line 5494
25988  __cil_tmp74 = (unsigned int )DisketteExtension;
25989#line 5494
25990  __cil_tmp75 = __cil_tmp74 + 216;
25991#line 5494
25992  mem_498 = (DRIVE_MEDIA_TYPE *)__cil_tmp75;
25993#line 5494
25994  *mem_498 = driveMediaType;
25995#line 5495
25996  __cil_tmp76 = (unsigned int )DisketteExtension;
25997#line 5495
25998  __cil_tmp77 = __cil_tmp76 + 308;
25999#line 5495
26000  __cil_tmp78 = (unsigned int )driveMediaType;
26001#line 5495
26002  __cil_tmp79 = DriveMediaConstants + __cil_tmp78;
26003#line 5495
26004  mem_499 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp77;
26005#line 5495
26006  *mem_499 = *__cil_tmp79;
26007#line 5498
26008  if (formatExParameters) {
26009#line 5499
26010    __cil_tmp80 = 308 + 38;
26011#line 5499
26012    __cil_tmp81 = (unsigned int )DisketteExtension;
26013#line 5499
26014    __cil_tmp82 = __cil_tmp81 + __cil_tmp80;
26015#line 5499
26016    __cil_tmp83 = (unsigned int )formatExParameters;
26017#line 5499
26018    __cil_tmp84 = __cil_tmp83 + 50;
26019#line 5499
26020    mem_500 = (USHORT *)__cil_tmp84;
26021#line 5499
26022    __cil_tmp85 = *mem_500;
26023#line 5499
26024    mem_501 = (UCHAR *)__cil_tmp82;
26025#line 5499
26026    *mem_501 = (unsigned char )__cil_tmp85;
26027#line 5501
26028    __cil_tmp86 = 308 + 40;
26029#line 5501
26030    __cil_tmp87 = (unsigned int )DisketteExtension;
26031#line 5501
26032    __cil_tmp88 = __cil_tmp87 + __cil_tmp86;
26033#line 5501
26034    __cil_tmp89 = (unsigned int )formatExParameters;
26035#line 5501
26036    __cil_tmp90 = __cil_tmp89 + 48;
26037#line 5501
26038    mem_502 = (USHORT *)__cil_tmp90;
26039#line 5501
26040    __cil_tmp91 = *mem_502;
26041#line 5501
26042    mem_503 = (UCHAR *)__cil_tmp88;
26043#line 5501
26044    *mem_503 = (unsigned char )__cil_tmp91;
26045  } else {
26046
26047  }
26048#line 5505
26049  __cil_tmp92 = (unsigned int )DisketteExtension;
26050#line 5505
26051  __cil_tmp93 = __cil_tmp92 + 308;
26052#line 5505
26053  driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp93;
26054#line 5507
26055  __cil_tmp94 = (unsigned int )DisketteExtension;
26056#line 5507
26057  __cil_tmp95 = __cil_tmp94 + 176;
26058#line 5507
26059  __cil_tmp96 = (unsigned int )driveMediaConstants;
26060#line 5507
26061  __cil_tmp97 = __cil_tmp96 + 36;
26062#line 5507
26063  mem_504 = (USHORT *)__cil_tmp97;
26064#line 5507
26065  __cil_tmp98 = *mem_504;
26066#line 5507
26067  mem_505 = (ULONG *)__cil_tmp95;
26068#line 5507
26069  *mem_505 = (unsigned long )__cil_tmp98;
26070#line 5509
26071  __cil_tmp99 = (unsigned int )DisketteExtension;
26072#line 5509
26073  __cil_tmp100 = __cil_tmp99 + 180;
26074#line 5509
26075  __cil_tmp101 = (unsigned int )driveMediaConstants;
26076#line 5509
26077  __cil_tmp102 = __cil_tmp101 + 51;
26078#line 5509
26079  mem_506 = (UCHAR *)__cil_tmp102;
26080#line 5509
26081  __cil_tmp103 = *mem_506;
26082#line 5509
26083  __cil_tmp104 = (int )__cil_tmp103;
26084#line 5509
26085  __cil_tmp105 = (unsigned int )driveMediaConstants;
26086#line 5509
26087  __cil_tmp106 = __cil_tmp105 + 48;
26088#line 5509
26089  mem_507 = (UCHAR *)__cil_tmp106;
26090#line 5509
26091  __cil_tmp107 = *mem_507;
26092#line 5509
26093  __cil_tmp108 = (int )__cil_tmp107;
26094#line 5509
26095  __cil_tmp109 = 1 + __cil_tmp108;
26096#line 5509
26097  __cil_tmp110 = (unsigned int )driveMediaConstants;
26098#line 5509
26099  __cil_tmp111 = __cil_tmp110 + 38;
26100#line 5509
26101  mem_508 = (UCHAR *)__cil_tmp111;
26102#line 5509
26103  __cil_tmp112 = *mem_508;
26104#line 5509
26105  __cil_tmp113 = (int )__cil_tmp112;
26106#line 5509
26107  __cil_tmp114 = (unsigned int )driveMediaConstants;
26108#line 5509
26109  __cil_tmp115 = __cil_tmp114 + 36;
26110#line 5509
26111  mem_509 = (USHORT *)__cil_tmp115;
26112#line 5509
26113  __cil_tmp116 = *mem_509;
26114#line 5509
26115  __cil_tmp117 = (int )__cil_tmp116;
26116#line 5509
26117  __cil_tmp118 = __cil_tmp117 * __cil_tmp113;
26118#line 5509
26119  __cil_tmp119 = __cil_tmp118 * __cil_tmp109;
26120#line 5509
26121  __cil_tmp120 = __cil_tmp119 * __cil_tmp104;
26122#line 5509
26123  mem_510 = (ULONG *)__cil_tmp100;
26124#line 5509
26125  *mem_510 = (unsigned long )__cil_tmp120;
26126#line 5515
26127  __cil_tmp121 = (unsigned int )formatParameters;
26128#line 5515
26129  __cil_tmp122 = __cil_tmp121 + 40;
26130#line 5515
26131  mem_511 = (ULONG *)__cil_tmp122;
26132#line 5515
26133  __cil_tmp123 = *mem_511;
26134#line 5515
26135  __cil_tmp124 = (unsigned int )driveMediaConstants;
26136#line 5515
26137  __cil_tmp125 = __cil_tmp124 + 51;
26138#line 5515
26139  mem_512 = (UCHAR *)__cil_tmp125;
26140#line 5515
26141  __cil_tmp126 = *mem_512;
26142#line 5515
26143  __cil_tmp127 = (unsigned long )__cil_tmp126;
26144#line 5515
26145  __cil_tmp128 = (unsigned int )formatParameters;
26146#line 5515
26147  __cil_tmp129 = __cil_tmp128 + 32;
26148#line 5515
26149  mem_513 = (ULONG *)__cil_tmp129;
26150#line 5515
26151  __cil_tmp130 = *mem_513;
26152#line 5515
26153  __cil_tmp131 = __cil_tmp130 * __cil_tmp127;
26154#line 5515
26155  __cil_tmp132 = __cil_tmp131 + __cil_tmp123;
26156#line 5515
26157  currentTrack = (unsigned char )__cil_tmp132;
26158#line 5519
26159  __cil_tmp133 = (unsigned int )formatParameters;
26160#line 5519
26161  __cil_tmp134 = __cil_tmp133 + 44;
26162#line 5519
26163  mem_514 = (ULONG *)__cil_tmp134;
26164#line 5519
26165  __cil_tmp135 = *mem_514;
26166#line 5519
26167  __cil_tmp136 = (unsigned int )driveMediaConstants;
26168#line 5519
26169  __cil_tmp137 = __cil_tmp136 + 51;
26170#line 5519
26171  mem_515 = (UCHAR *)__cil_tmp137;
26172#line 5519
26173  __cil_tmp138 = *mem_515;
26174#line 5519
26175  __cil_tmp139 = (unsigned long )__cil_tmp138;
26176#line 5519
26177  __cil_tmp140 = (unsigned int )formatParameters;
26178#line 5519
26179  __cil_tmp141 = __cil_tmp140 + 36;
26180#line 5519
26181  mem_516 = (ULONG *)__cil_tmp141;
26182#line 5519
26183  __cil_tmp142 = *mem_516;
26184#line 5519
26185  __cil_tmp143 = __cil_tmp142 * __cil_tmp139;
26186#line 5519
26187  __cil_tmp144 = __cil_tmp143 + __cil_tmp135;
26188#line 5519
26189  endTrack = (unsigned char )__cil_tmp144;
26190  {
26191#line 5528
26192  while (1) {
26193    while_168_continue: /* CIL Label */ ;
26194    goto while_168_break;
26195  }
26196  while_168_break: /* CIL Label */ ;
26197  }
26198  {
26199#line 5535
26200  __cil_tmp145 = (KUSER_SHARED_DATA * const  )4292804608U;
26201#line 5535
26202  __cil_tmp146 = (unsigned int )__cil_tmp145;
26203#line 5535
26204  __cil_tmp147 = __cil_tmp146 + 732;
26205#line 5535
26206  mem_517 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp147;
26207#line 5535
26208  __cil_tmp148 = *mem_517;
26209#line 5535
26210  __cil_tmp149 = (int )__cil_tmp148;
26211#line 5535
26212  if (__cil_tmp149 == 1) {
26213    {
26214#line 5537
26215    FlHdbit(DisketteExtension);
26216    }
26217  } else {
26218
26219  }
26220  }
26221  {
26222#line 5541
26223  __cil_tmp150 = (int )driveMediaType;
26224#line 5541
26225  __cil_tmp151 = (unsigned int )DisketteExtension;
26226#line 5541
26227  __cil_tmp152 = __cil_tmp151 + 140;
26228#line 5541
26229  mem_518 = (DRIVE_MEDIA_TYPE *)__cil_tmp152;
26230#line 5541
26231  __cil_tmp153 = *mem_518;
26232#line 5541
26233  __cil_tmp154 = (int )__cil_tmp153;
26234#line 5541
26235  if (__cil_tmp154 != __cil_tmp150) {
26236    {
26237#line 5543
26238    ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
26239    }
26240    {
26241#line 5545
26242    __cil_tmp155 = ntStatus >= 0L;
26243#line 5545
26244    if (! __cil_tmp155) {
26245#line 5547
26246      return (ntStatus);
26247    } else {
26248
26249    }
26250    }
26251  } else {
26252
26253  }
26254  }
26255#line 5555
26256  __cil_tmp156 = (unsigned int )DisketteExtension;
26257#line 5555
26258  __cil_tmp157 = __cil_tmp156 + 250;
26259#line 5555
26260  mem_519 = (BOOLEAN *)__cil_tmp157;
26261#line 5555
26262  *mem_519 = (unsigned char)0;
26263  {
26264#line 5561
26265  while (1) {
26266    while_169_continue: /* CIL Label */ ;
26267#line 5567
26268    __cil_tmp158 = 0 * 1U;
26269#line 5567
26270    __cil_tmp159 = 112 + __cil_tmp158;
26271#line 5567
26272    __cil_tmp160 = (unsigned int )DisketteExtension;
26273#line 5567
26274    __cil_tmp161 = __cil_tmp160 + __cil_tmp159;
26275#line 5567
26276    mem_520 = (UCHAR *)__cil_tmp161;
26277#line 5567
26278    *mem_520 = (unsigned char)16;
26279#line 5568
26280    __cil_tmp162 = 1 * 1U;
26281#line 5568
26282    __cil_tmp163 = 112 + __cil_tmp162;
26283#line 5568
26284    __cil_tmp164 = (unsigned int )DisketteExtension;
26285#line 5568
26286    __cil_tmp165 = __cil_tmp164 + __cil_tmp163;
26287#line 5568
26288    __cil_tmp166 = (unsigned int )DisketteExtension;
26289#line 5568
26290    __cil_tmp167 = __cil_tmp166 + 248;
26291#line 5568
26292    mem_521 = (UCHAR *)__cil_tmp165;
26293#line 5568
26294    mem_522 = (UCHAR *)__cil_tmp167;
26295#line 5568
26296    *mem_521 = *mem_522;
26297#line 5569
26298    __cil_tmp168 = 2 * 1U;
26299#line 5569
26300    __cil_tmp169 = 112 + __cil_tmp168;
26301#line 5569
26302    __cil_tmp170 = (unsigned int )DisketteExtension;
26303#line 5569
26304    __cil_tmp171 = __cil_tmp170 + __cil_tmp169;
26305#line 5569
26306    __cil_tmp172 = (unsigned int )driveMediaConstants;
26307#line 5569
26308    __cil_tmp173 = __cil_tmp172 + 49;
26309#line 5569
26310    mem_523 = (UCHAR *)__cil_tmp173;
26311#line 5569
26312    __cil_tmp174 = *mem_523;
26313#line 5569
26314    __cil_tmp175 = (int )__cil_tmp174;
26315#line 5569
26316    __cil_tmp176 = (unsigned int )driveMediaConstants;
26317#line 5569
26318    __cil_tmp177 = __cil_tmp176 + 51;
26319#line 5569
26320    mem_524 = (UCHAR *)__cil_tmp177;
26321#line 5569
26322    __cil_tmp178 = *mem_524;
26323#line 5569
26324    __cil_tmp179 = (int )__cil_tmp178;
26325#line 5569
26326    __cil_tmp180 = (int )currentTrack;
26327#line 5569
26328    __cil_tmp181 = __cil_tmp180 / __cil_tmp179;
26329#line 5569
26330    __cil_tmp182 = __cil_tmp181 << __cil_tmp175;
26331#line 5569
26332    mem_525 = (UCHAR *)__cil_tmp171;
26333#line 5569
26334    *mem_525 = (unsigned char )__cil_tmp182;
26335    {
26336#line 5577
26337    while (1) {
26338      while_170_continue: /* CIL Label */ ;
26339      goto while_170_break;
26340    }
26341    while_170_break: /* CIL Label */ ;
26342    }
26343    {
26344#line 5579
26345    __cil_tmp183 = 0 * 1U;
26346#line 5579
26347    __cil_tmp184 = 112 + __cil_tmp183;
26348#line 5579
26349    __cil_tmp185 = (unsigned int )DisketteExtension;
26350#line 5579
26351    __cil_tmp186 = __cil_tmp185 + __cil_tmp184;
26352#line 5579
26353    __cil_tmp187 = (UCHAR *)__cil_tmp186;
26354#line 5579
26355    __cil_tmp188 = 0 * 1U;
26356#line 5579
26357    __cil_tmp189 = 112 + __cil_tmp188;
26358#line 5579
26359    __cil_tmp190 = (unsigned int )DisketteExtension;
26360#line 5579
26361    __cil_tmp191 = __cil_tmp190 + __cil_tmp189;
26362#line 5579
26363    __cil_tmp192 = (UCHAR *)__cil_tmp191;
26364#line 5579
26365    __cil_tmp193 = (void *)0;
26366#line 5579
26367    __cil_tmp194 = (struct _MDL *)__cil_tmp193;
26368#line 5579
26369    ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp187, __cil_tmp192, __cil_tmp194,
26370                              0UL, 0UL);
26371    }
26372#line 5586
26373    if (ntStatus >= 0L) {
26374      {
26375#line 5588
26376      __cil_tmp195 = 0 * 1U;
26377#line 5588
26378      __cil_tmp196 = 112 + __cil_tmp195;
26379#line 5588
26380      __cil_tmp197 = (unsigned int )DisketteExtension;
26381#line 5588
26382      __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
26383#line 5588
26384      mem_526 = (UCHAR *)__cil_tmp198;
26385#line 5588
26386      __cil_tmp199 = *mem_526;
26387#line 5588
26388      __cil_tmp200 = (int )__cil_tmp199;
26389#line 5588
26390      if (__cil_tmp200 & 32) {
26391        {
26392#line 5588
26393        __cil_tmp201 = (unsigned int )driveMediaConstants;
26394#line 5588
26395        __cil_tmp202 = __cil_tmp201 + 49;
26396#line 5588
26397        mem_527 = (UCHAR *)__cil_tmp202;
26398#line 5588
26399        __cil_tmp203 = *mem_527;
26400#line 5588
26401        __cil_tmp204 = (int )__cil_tmp203;
26402#line 5588
26403        __cil_tmp205 = (unsigned int )driveMediaConstants;
26404#line 5588
26405        __cil_tmp206 = __cil_tmp205 + 51;
26406#line 5588
26407        mem_528 = (UCHAR *)__cil_tmp206;
26408#line 5588
26409        __cil_tmp207 = *mem_528;
26410#line 5588
26411        __cil_tmp208 = (int )__cil_tmp207;
26412#line 5588
26413        __cil_tmp209 = (int )currentTrack;
26414#line 5588
26415        __cil_tmp210 = __cil_tmp209 / __cil_tmp208;
26416#line 5588
26417        __cil_tmp211 = __cil_tmp210 << __cil_tmp204;
26418#line 5588
26419        __cil_tmp212 = (unsigned char )__cil_tmp211;
26420#line 5588
26421        __cil_tmp213 = (int )__cil_tmp212;
26422#line 5588
26423        __cil_tmp214 = 1 * 1U;
26424#line 5588
26425        __cil_tmp215 = 112 + __cil_tmp214;
26426#line 5588
26427        __cil_tmp216 = (unsigned int )DisketteExtension;
26428#line 5588
26429        __cil_tmp217 = __cil_tmp216 + __cil_tmp215;
26430#line 5588
26431        mem_529 = (UCHAR *)__cil_tmp217;
26432#line 5588
26433        __cil_tmp218 = *mem_529;
26434#line 5588
26435        __cil_tmp219 = (int )__cil_tmp218;
26436#line 5588
26437        if (__cil_tmp219 == __cil_tmp213) {
26438          {
26439#line 5598
26440          __cil_tmp220 = & headSettleTime;
26441#line 5598
26442          __cil_tmp221 = (unsigned int )driveMediaConstants;
26443#line 5598
26444          __cil_tmp222 = __cil_tmp221 + 42;
26445#line 5598
26446          mem_530 = (UCHAR *)__cil_tmp222;
26447#line 5598
26448          __cil_tmp223 = *mem_530;
26449#line 5598
26450          __cil_tmp224 = (int )__cil_tmp223;
26451#line 5598
26452          __cil_tmp225 = 10000 * __cil_tmp224;
26453#line 5598
26454          __cil_tmp226 = - __cil_tmp225;
26455#line 5598
26456          mem_531 = (ULONG *)__cil_tmp220;
26457#line 5598
26458          *mem_531 = (unsigned long )__cil_tmp226;
26459#line 5600
26460          __cil_tmp227 = 0 + 4;
26461#line 5600
26462          __cil_tmp228 = (unsigned int )(& headSettleTime) + __cil_tmp227;
26463#line 5600
26464          mem_532 = (LONG *)__cil_tmp228;
26465#line 5600
26466          *mem_532 = -1L;
26467#line 5602
26468          KeDelayExecutionThread((char)0, (unsigned char)0, & headSettleTime);
26469          }
26470          {
26471#line 5607
26472          __cil_tmp229 = (KUSER_SHARED_DATA * const  )4292804608U;
26473#line 5607
26474          __cil_tmp230 = (unsigned int )__cil_tmp229;
26475#line 5607
26476          __cil_tmp231 = __cil_tmp230 + 732;
26477#line 5607
26478          mem_533 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp231;
26479#line 5607
26480          __cil_tmp232 = *mem_533;
26481#line 5607
26482          __cil_tmp233 = (int )__cil_tmp232;
26483#line 5607
26484          __cil_tmp234 = __cil_tmp233 == 1;
26485#line 5607
26486          if (! __cil_tmp234) {
26487            {
26488#line 5619
26489            __cil_tmp235 = 0 * 1U;
26490#line 5619
26491            __cil_tmp236 = 112 + __cil_tmp235;
26492#line 5619
26493            __cil_tmp237 = (unsigned int )DisketteExtension;
26494#line 5619
26495            __cil_tmp238 = __cil_tmp237 + __cil_tmp236;
26496#line 5619
26497            mem_534 = (UCHAR *)__cil_tmp238;
26498#line 5619
26499            *mem_534 = (unsigned char)84;
26500#line 5621
26501            __cil_tmp239 = 1 * 1U;
26502#line 5621
26503            __cil_tmp240 = 112 + __cil_tmp239;
26504#line 5621
26505            __cil_tmp241 = (unsigned int )DisketteExtension;
26506#line 5621
26507            __cil_tmp242 = __cil_tmp241 + __cil_tmp240;
26508#line 5621
26509            __cil_tmp243 = (unsigned int )DisketteExtension;
26510#line 5621
26511            __cil_tmp244 = __cil_tmp243 + 248;
26512#line 5621
26513            mem_535 = (UCHAR *)__cil_tmp242;
26514#line 5621
26515            mem_536 = (UCHAR *)__cil_tmp244;
26516#line 5621
26517            *mem_535 = *mem_536;
26518#line 5624
26519            __cil_tmp245 = 0 * 1U;
26520#line 5624
26521            __cil_tmp246 = 112 + __cil_tmp245;
26522#line 5624
26523            __cil_tmp247 = (unsigned int )DisketteExtension;
26524#line 5624
26525            __cil_tmp248 = __cil_tmp247 + __cil_tmp246;
26526#line 5624
26527            __cil_tmp249 = (UCHAR *)__cil_tmp248;
26528#line 5624
26529            __cil_tmp250 = 0 * 1U;
26530#line 5624
26531            __cil_tmp251 = 112 + __cil_tmp250;
26532#line 5624
26533            __cil_tmp252 = (unsigned int )DisketteExtension;
26534#line 5624
26535            __cil_tmp253 = __cil_tmp252 + __cil_tmp251;
26536#line 5624
26537            __cil_tmp254 = (UCHAR *)__cil_tmp253;
26538#line 5624
26539            __cil_tmp255 = (void *)0;
26540#line 5624
26541            __cil_tmp256 = (struct _MDL *)__cil_tmp255;
26542#line 5624
26543            ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp249, __cil_tmp254,
26544                                      __cil_tmp256, 0UL, 0UL);
26545            }
26546          } else {
26547
26548          }
26549          }
26550        } else {
26551          goto _L;
26552        }
26553        }
26554      } else {
26555        _L: 
26556        {
26557#line 5641
26558        while (1) {
26559          while_171_continue: /* CIL Label */ ;
26560          goto while_171_break;
26561        }
26562        while_171_break: /* CIL Label */ ;
26563        }
26564#line 5643
26565        __cil_tmp257 = (unsigned int )DisketteExtension;
26566#line 5643
26567        __cil_tmp258 = __cil_tmp257 + 104;
26568#line 5643
26569        mem_537 = (BOOLEAN *)__cil_tmp258;
26570#line 5643
26571        *mem_537 = (unsigned char)1;
26572#line 5645
26573        ntStatus = -1073741464L;
26574      }
26575      }
26576    } else {
26577
26578    }
26579    {
26580#line 5649
26581    __cil_tmp259 = ntStatus >= 0L;
26582#line 5649
26583    if (! __cil_tmp259) {
26584      {
26585#line 5654
26586      while (1) {
26587        while_172_continue: /* CIL Label */ ;
26588        goto while_172_break;
26589      }
26590      while_172_break: /* CIL Label */ ;
26591      }
26592#line 5656
26593      return (ntStatus);
26594    } else {
26595
26596    }
26597    }
26598#line 5663
26599    whichSector = (unsigned char)0;
26600    {
26601#line 5663
26602    while (1) {
26603      while_173_continue: /* CIL Label */ ;
26604      {
26605#line 5663
26606      __cil_tmp260 = (unsigned int )driveMediaConstants;
26607#line 5663
26608      __cil_tmp261 = __cil_tmp260 + 38;
26609#line 5663
26610      mem_538 = (UCHAR *)__cil_tmp261;
26611#line 5663
26612      __cil_tmp262 = *mem_538;
26613#line 5663
26614      __cil_tmp263 = (int )__cil_tmp262;
26615#line 5663
26616      __cil_tmp264 = (int )whichSector;
26617#line 5663
26618      if (__cil_tmp264 < __cil_tmp263) {
26619
26620      } else {
26621        goto while_173_break;
26622      }
26623      }
26624#line 5667
26625      __cil_tmp265 = (int )whichSector;
26626#line 5667
26627      __cil_tmp266 = __cil_tmp265 * 4;
26628#line 5667
26629      __cil_tmp267 = (unsigned int )DisketteExtension;
26630#line 5667
26631      __cil_tmp268 = __cil_tmp267 + 124;
26632#line 5667
26633      mem_539 = (PUCHAR *)__cil_tmp268;
26634#line 5667
26635      __cil_tmp269 = *mem_539;
26636#line 5667
26637      __cil_tmp270 = __cil_tmp269 + __cil_tmp266;
26638#line 5667
26639      __cil_tmp271 = (unsigned int )driveMediaConstants;
26640#line 5667
26641      __cil_tmp272 = __cil_tmp271 + 51;
26642#line 5667
26643      mem_540 = (UCHAR *)__cil_tmp272;
26644#line 5667
26645      __cil_tmp273 = *mem_540;
26646#line 5667
26647      __cil_tmp274 = (int )__cil_tmp273;
26648#line 5667
26649      __cil_tmp275 = (int )currentTrack;
26650#line 5667
26651      __cil_tmp276 = __cil_tmp275 / __cil_tmp274;
26652#line 5667
26653      *__cil_tmp270 = (unsigned char )__cil_tmp276;
26654#line 5669
26655      __cil_tmp277 = (int )whichSector;
26656#line 5669
26657      __cil_tmp278 = __cil_tmp277 * 4;
26658#line 5669
26659      __cil_tmp279 = __cil_tmp278 + 1;
26660#line 5669
26661      __cil_tmp280 = (unsigned int )DisketteExtension;
26662#line 5669
26663      __cil_tmp281 = __cil_tmp280 + 124;
26664#line 5669
26665      mem_541 = (PUCHAR *)__cil_tmp281;
26666#line 5669
26667      __cil_tmp282 = *mem_541;
26668#line 5669
26669      __cil_tmp283 = __cil_tmp282 + __cil_tmp279;
26670#line 5669
26671      __cil_tmp284 = (unsigned int )driveMediaConstants;
26672#line 5669
26673      __cil_tmp285 = __cil_tmp284 + 51;
26674#line 5669
26675      mem_542 = (UCHAR *)__cil_tmp285;
26676#line 5669
26677      __cil_tmp286 = *mem_542;
26678#line 5669
26679      __cil_tmp287 = (int )__cil_tmp286;
26680#line 5669
26681      __cil_tmp288 = (int )currentTrack;
26682#line 5669
26683      __cil_tmp289 = __cil_tmp288 % __cil_tmp287;
26684#line 5669
26685      *__cil_tmp283 = (unsigned char )__cil_tmp289;
26686#line 5671
26687      if (formatExParameters) {
26688#line 5672
26689        __cil_tmp290 = (int )whichSector;
26690#line 5672
26691        __cil_tmp291 = __cil_tmp290 * 4;
26692#line 5672
26693        __cil_tmp292 = __cil_tmp291 + 2;
26694#line 5672
26695        __cil_tmp293 = (unsigned int )DisketteExtension;
26696#line 5672
26697        __cil_tmp294 = __cil_tmp293 + 124;
26698#line 5672
26699        mem_543 = (PUCHAR *)__cil_tmp294;
26700#line 5672
26701        __cil_tmp295 = *mem_543;
26702#line 5672
26703        __cil_tmp296 = __cil_tmp295 + __cil_tmp292;
26704#line 5672
26705        __cil_tmp297 = whichSector * 2U;
26706#line 5672
26707        __cil_tmp298 = 52 + __cil_tmp297;
26708#line 5672
26709        __cil_tmp299 = (unsigned int )formatExParameters;
26710#line 5672
26711        __cil_tmp300 = __cil_tmp299 + __cil_tmp298;
26712#line 5672
26713        mem_544 = (USHORT *)__cil_tmp300;
26714#line 5672
26715        __cil_tmp301 = *mem_544;
26716#line 5672
26717        *__cil_tmp296 = (unsigned char )__cil_tmp301;
26718      } else {
26719#line 5675
26720        __cil_tmp302 = (int )whichSector;
26721#line 5675
26722        __cil_tmp303 = __cil_tmp302 * 4;
26723#line 5675
26724        __cil_tmp304 = __cil_tmp303 + 2;
26725#line 5675
26726        __cil_tmp305 = (unsigned int )DisketteExtension;
26727#line 5675
26728        __cil_tmp306 = __cil_tmp305 + 124;
26729#line 5675
26730        mem_545 = (PUCHAR *)__cil_tmp306;
26731#line 5675
26732        __cil_tmp307 = *mem_545;
26733#line 5675
26734        __cil_tmp308 = __cil_tmp307 + __cil_tmp304;
26735#line 5675
26736        __cil_tmp309 = (int )whichSector;
26737#line 5675
26738        __cil_tmp310 = __cil_tmp309 + 1;
26739#line 5675
26740        *__cil_tmp308 = (unsigned char )__cil_tmp310;
26741      }
26742#line 5678
26743      __cil_tmp311 = (int )whichSector;
26744#line 5678
26745      __cil_tmp312 = __cil_tmp311 * 4;
26746#line 5678
26747      __cil_tmp313 = __cil_tmp312 + 3;
26748#line 5678
26749      __cil_tmp314 = (unsigned int )DisketteExtension;
26750#line 5678
26751      __cil_tmp315 = __cil_tmp314 + 124;
26752#line 5678
26753      mem_546 = (PUCHAR *)__cil_tmp315;
26754#line 5678
26755      __cil_tmp316 = *mem_546;
26756#line 5678
26757      __cil_tmp317 = __cil_tmp316 + __cil_tmp313;
26758#line 5678
26759      __cil_tmp318 = (unsigned int )driveMediaConstants;
26760#line 5678
26761      __cil_tmp319 = __cil_tmp318 + 35;
26762#line 5678
26763      mem_547 = (UCHAR *)__cil_tmp319;
26764#line 5678
26765      *__cil_tmp317 = *mem_547;
26766      {
26767#line 5689
26768      while (1) {
26769        while_174_continue: /* CIL Label */ ;
26770        goto while_174_break;
26771      }
26772      while_174_break: /* CIL Label */ ;
26773      }
26774#line 5663
26775      __cil_tmp320 = (int )whichSector;
26776#line 5663
26777      __cil_tmp321 = __cil_tmp320 + 1;
26778#line 5663
26779      whichSector = (unsigned char )__cil_tmp321;
26780    }
26781    while_173_break: /* CIL Label */ ;
26782    }
26783#line 5696
26784    retryCount = (unsigned char)0;
26785    {
26786#line 5698
26787    while (1) {
26788      while_175_continue: /* CIL Label */ ;
26789#line 5702
26790      __cil_tmp322 = (unsigned int )driveMediaConstants;
26791#line 5702
26792      __cil_tmp323 = __cil_tmp322 + 36;
26793#line 5702
26794      mem_548 = (USHORT *)__cil_tmp323;
26795#line 5702
26796      __cil_tmp324 = *mem_548;
26797#line 5702
26798      length = (unsigned long )__cil_tmp324;
26799#line 5708
26800      __cil_tmp325 = 0 * 1U;
26801#line 5708
26802      __cil_tmp326 = 112 + __cil_tmp325;
26803#line 5708
26804      __cil_tmp327 = (unsigned int )DisketteExtension;
26805#line 5708
26806      __cil_tmp328 = __cil_tmp327 + __cil_tmp326;
26807#line 5708
26808      mem_549 = (UCHAR *)__cil_tmp328;
26809#line 5708
26810      *mem_549 = (unsigned char)71;
26811#line 5710
26812      __cil_tmp329 = 1 * 1U;
26813#line 5710
26814      __cil_tmp330 = 112 + __cil_tmp329;
26815#line 5710
26816      __cil_tmp331 = (unsigned int )DisketteExtension;
26817#line 5710
26818      __cil_tmp332 = __cil_tmp331 + __cil_tmp330;
26819#line 5710
26820      __cil_tmp333 = (unsigned int )DisketteExtension;
26821#line 5710
26822      __cil_tmp334 = __cil_tmp333 + 248;
26823#line 5710
26824      mem_550 = (UCHAR *)__cil_tmp334;
26825#line 5710
26826      __cil_tmp335 = *mem_550;
26827#line 5710
26828      __cil_tmp336 = (int )__cil_tmp335;
26829#line 5710
26830      __cil_tmp337 = (unsigned int )driveMediaConstants;
26831#line 5710
26832      __cil_tmp338 = __cil_tmp337 + 51;
26833#line 5710
26834      mem_551 = (UCHAR *)__cil_tmp338;
26835#line 5710
26836      __cil_tmp339 = *mem_551;
26837#line 5710
26838      __cil_tmp340 = (int )__cil_tmp339;
26839#line 5710
26840      __cil_tmp341 = (int )currentTrack;
26841#line 5710
26842      __cil_tmp342 = __cil_tmp341 % __cil_tmp340;
26843#line 5710
26844      __cil_tmp343 = __cil_tmp342 << 2;
26845#line 5710
26846      __cil_tmp344 = __cil_tmp343 | __cil_tmp336;
26847#line 5710
26848      mem_552 = (UCHAR *)__cil_tmp332;
26849#line 5710
26850      *mem_552 = (unsigned char )__cil_tmp344;
26851#line 5713
26852      __cil_tmp345 = 2 * 1U;
26853#line 5713
26854      __cil_tmp346 = 112 + __cil_tmp345;
26855#line 5713
26856      __cil_tmp347 = (unsigned int )DisketteExtension;
26857#line 5713
26858      __cil_tmp348 = __cil_tmp347 + __cil_tmp346;
26859#line 5713
26860      __cil_tmp349 = (unsigned int )driveMediaConstants;
26861#line 5713
26862      __cil_tmp350 = __cil_tmp349 + 35;
26863#line 5713
26864      mem_553 = (UCHAR *)__cil_tmp348;
26865#line 5713
26866      mem_554 = (UCHAR *)__cil_tmp350;
26867#line 5713
26868      *mem_553 = *mem_554;
26869#line 5715
26870      __cil_tmp351 = 3 * 1U;
26871#line 5715
26872      __cil_tmp352 = 112 + __cil_tmp351;
26873#line 5715
26874      __cil_tmp353 = (unsigned int )DisketteExtension;
26875#line 5715
26876      __cil_tmp354 = __cil_tmp353 + __cil_tmp352;
26877#line 5715
26878      __cil_tmp355 = (unsigned int )driveMediaConstants;
26879#line 5715
26880      __cil_tmp356 = __cil_tmp355 + 38;
26881#line 5715
26882      mem_555 = (UCHAR *)__cil_tmp354;
26883#line 5715
26884      mem_556 = (UCHAR *)__cil_tmp356;
26885#line 5715
26886      *mem_555 = *mem_556;
26887#line 5717
26888      __cil_tmp357 = 4 * 1U;
26889#line 5717
26890      __cil_tmp358 = 112 + __cil_tmp357;
26891#line 5717
26892      __cil_tmp359 = (unsigned int )DisketteExtension;
26893#line 5717
26894      __cil_tmp360 = __cil_tmp359 + __cil_tmp358;
26895#line 5717
26896      __cil_tmp361 = (unsigned int )driveMediaConstants;
26897#line 5717
26898      __cil_tmp362 = __cil_tmp361 + 40;
26899#line 5717
26900      mem_557 = (UCHAR *)__cil_tmp360;
26901#line 5717
26902      mem_558 = (UCHAR *)__cil_tmp362;
26903#line 5717
26904      *mem_557 = *mem_558;
26905#line 5719
26906      __cil_tmp363 = 5 * 1U;
26907#line 5719
26908      __cil_tmp364 = 112 + __cil_tmp363;
26909#line 5719
26910      __cil_tmp365 = (unsigned int )DisketteExtension;
26911#line 5719
26912      __cil_tmp366 = __cil_tmp365 + __cil_tmp364;
26913#line 5719
26914      __cil_tmp367 = (unsigned int )driveMediaConstants;
26915#line 5719
26916      __cil_tmp368 = __cil_tmp367 + 41;
26917#line 5719
26918      mem_559 = (UCHAR *)__cil_tmp366;
26919#line 5719
26920      mem_560 = (UCHAR *)__cil_tmp368;
26921#line 5719
26922      *mem_559 = *mem_560;
26923      {
26924#line 5735
26925      while (1) {
26926        while_176_continue: /* CIL Label */ ;
26927        goto while_176_break;
26928      }
26929      while_176_break: /* CIL Label */ ;
26930      }
26931      {
26932#line 5736
26933      __cil_tmp369 = 0 * 1U;
26934#line 5736
26935      __cil_tmp370 = 112 + __cil_tmp369;
26936#line 5736
26937      __cil_tmp371 = (unsigned int )DisketteExtension;
26938#line 5736
26939      __cil_tmp372 = __cil_tmp371 + __cil_tmp370;
26940#line 5736
26941      __cil_tmp373 = (UCHAR *)__cil_tmp372;
26942#line 5736
26943      __cil_tmp374 = 0 * 1U;
26944#line 5736
26945      __cil_tmp375 = 112 + __cil_tmp374;
26946#line 5736
26947      __cil_tmp376 = (unsigned int )DisketteExtension;
26948#line 5736
26949      __cil_tmp377 = __cil_tmp376 + __cil_tmp375;
26950#line 5736
26951      __cil_tmp378 = (UCHAR *)__cil_tmp377;
26952#line 5736
26953      __cil_tmp379 = (unsigned int )DisketteExtension;
26954#line 5736
26955      __cil_tmp380 = __cil_tmp379 + 128;
26956#line 5736
26957      mem_561 = (PMDL *)__cil_tmp380;
26958#line 5736
26959      __cil_tmp381 = *mem_561;
26960#line 5736
26961      ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp373, __cil_tmp378, __cil_tmp381,
26962                                0UL, length);
26963      }
26964      {
26965#line 5743
26966      __cil_tmp382 = ntStatus >= 0L;
26967#line 5743
26968      if (! __cil_tmp382) {
26969        {
26970#line 5748
26971        while (1) {
26972          while_177_continue: /* CIL Label */ ;
26973          goto while_177_break;
26974        }
26975        while_177_break: /* CIL Label */ ;
26976        }
26977      } else {
26978
26979      }
26980      }
26981#line 5751
26982      if (ntStatus >= 0L) {
26983        {
26984#line 5757
26985        __cil_tmp383 = 0 * 1U;
26986#line 5757
26987        __cil_tmp384 = 112 + __cil_tmp383;
26988#line 5757
26989        __cil_tmp385 = (unsigned int )DisketteExtension;
26990#line 5757
26991        __cil_tmp386 = __cil_tmp385 + __cil_tmp384;
26992#line 5757
26993        mem_562 = (UCHAR *)__cil_tmp386;
26994#line 5757
26995        __cil_tmp387 = *mem_562;
26996#line 5757
26997        __cil_tmp388 = (int )__cil_tmp387;
26998#line 5757
26999        if (__cil_tmp388 & 208) {
27000          goto _L___0;
27001        } else {
27002          {
27003#line 5757
27004          __cil_tmp389 = 1 * 1U;
27005#line 5757
27006          __cil_tmp390 = 112 + __cil_tmp389;
27007#line 5757
27008          __cil_tmp391 = (unsigned int )DisketteExtension;
27009#line 5757
27010          __cil_tmp392 = __cil_tmp391 + __cil_tmp390;
27011#line 5757
27012          mem_563 = (UCHAR *)__cil_tmp392;
27013#line 5757
27014          __cil_tmp393 = *mem_563;
27015#line 5757
27016          __cil_tmp394 = (int )__cil_tmp393;
27017#line 5757
27018          if (__cil_tmp394 & 16) {
27019            goto _L___0;
27020          } else {
27021            {
27022#line 5757
27023            __cil_tmp395 = 2 * 1U;
27024#line 5757
27025            __cil_tmp396 = 112 + __cil_tmp395;
27026#line 5757
27027            __cil_tmp397 = (unsigned int )DisketteExtension;
27028#line 5757
27029            __cil_tmp398 = __cil_tmp397 + __cil_tmp396;
27030#line 5757
27031            mem_564 = (UCHAR *)__cil_tmp398;
27032#line 5757
27033            __cil_tmp399 = *mem_564;
27034#line 5757
27035            __cil_tmp400 = (int )__cil_tmp399;
27036#line 5757
27037            if (__cil_tmp400 != 0) {
27038              _L___0: 
27039              {
27040#line 5775
27041              while (1) {
27042                while_178_continue: /* CIL Label */ ;
27043                goto while_178_break;
27044              }
27045              while_178_break: /* CIL Label */ ;
27046              }
27047              {
27048#line 5777
27049              __cil_tmp401 = (unsigned int )DisketteExtension;
27050#line 5777
27051              __cil_tmp402 = __cil_tmp401 + 104;
27052#line 5777
27053              mem_565 = (BOOLEAN *)__cil_tmp402;
27054#line 5777
27055              *mem_565 = (unsigned char)1;
27056#line 5779
27057              __cil_tmp403 = 1 * 1U;
27058#line 5779
27059              __cil_tmp404 = 112 + __cil_tmp403;
27060#line 5779
27061              __cil_tmp405 = (unsigned int )DisketteExtension;
27062#line 5779
27063              __cil_tmp406 = __cil_tmp405 + __cil_tmp404;
27064#line 5779
27065              mem_566 = (UCHAR *)__cil_tmp406;
27066#line 5779
27067              __cil_tmp407 = *mem_566;
27068#line 5779
27069              __cil_tmp408 = 2 * 1U;
27070#line 5779
27071              __cil_tmp409 = 112 + __cil_tmp408;
27072#line 5779
27073              __cil_tmp410 = (unsigned int )DisketteExtension;
27074#line 5779
27075              __cil_tmp411 = __cil_tmp410 + __cil_tmp409;
27076#line 5779
27077              mem_567 = (UCHAR *)__cil_tmp411;
27078#line 5779
27079              __cil_tmp412 = *mem_567;
27080#line 5779
27081              ntStatus = FlInterpretError(__cil_tmp407, __cil_tmp412);
27082              }
27083            } else {
27084
27085            }
27086            }
27087          }
27088          }
27089        }
27090        }
27091      } else {
27092
27093      }
27094      {
27095#line 5698
27096      __cil_tmp413 = ntStatus >= 0L;
27097#line 5698
27098      if (! __cil_tmp413) {
27099#line 5698
27100        tmp = retryCount;
27101#line 5698
27102        __cil_tmp414 = (int )retryCount;
27103#line 5698
27104        __cil_tmp415 = __cil_tmp414 + 1;
27105#line 5698
27106        retryCount = (unsigned char )__cil_tmp415;
27107        {
27108#line 5698
27109        __cil_tmp416 = (int )tmp;
27110#line 5698
27111        __cil_tmp417 = __cil_tmp416 < 3;
27112#line 5698
27113        if (! __cil_tmp417) {
27114          goto while_175_break;
27115        } else {
27116
27117        }
27118        }
27119      } else {
27120        goto while_175_break;
27121      }
27122      }
27123    }
27124    while_175_break: /* CIL Label */ ;
27125    }
27126    {
27127#line 5788
27128    __cil_tmp418 = ntStatus >= 0L;
27129#line 5788
27130    if (! __cil_tmp418) {
27131      {
27132#line 5790
27133      __cil_tmp419 = (KUSER_SHARED_DATA * const  )4292804608U;
27134#line 5790
27135      __cil_tmp420 = (unsigned int )__cil_tmp419;
27136#line 5790
27137      __cil_tmp421 = __cil_tmp420 + 732;
27138#line 5790
27139      mem_568 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp421;
27140#line 5790
27141      __cil_tmp422 = *mem_568;
27142#line 5790
27143      __cil_tmp423 = (int )__cil_tmp422;
27144#line 5790
27145      if (__cil_tmp423 == 1) {
27146        {
27147#line 5791
27148        __cil_tmp424 = 0 * 1U;
27149#line 5791
27150        __cil_tmp425 = 112 + __cil_tmp424;
27151#line 5791
27152        __cil_tmp426 = (unsigned int )DisketteExtension;
27153#line 5791
27154        __cil_tmp427 = __cil_tmp426 + __cil_tmp425;
27155#line 5791
27156        mem_569 = (UCHAR *)__cil_tmp427;
27157#line 5791
27158        *mem_569 = (unsigned char)14;
27159#line 5792
27160        __cil_tmp428 = 1 * 1U;
27161#line 5792
27162        __cil_tmp429 = 112 + __cil_tmp428;
27163#line 5792
27164        __cil_tmp430 = (unsigned int )DisketteExtension;
27165#line 5792
27166        __cil_tmp431 = __cil_tmp430 + __cil_tmp429;
27167#line 5792
27168        __cil_tmp432 = (unsigned int )DisketteExtension;
27169#line 5792
27170        __cil_tmp433 = __cil_tmp432 + 248;
27171#line 5792
27172        mem_570 = (UCHAR *)__cil_tmp431;
27173#line 5792
27174        mem_571 = (UCHAR *)__cil_tmp433;
27175#line 5792
27176        *mem_570 = *mem_571;
27177#line 5794
27178        __cil_tmp434 = 0 * 1U;
27179#line 5794
27180        __cil_tmp435 = 112 + __cil_tmp434;
27181#line 5794
27182        __cil_tmp436 = (unsigned int )DisketteExtension;
27183#line 5794
27184        __cil_tmp437 = __cil_tmp436 + __cil_tmp435;
27185#line 5794
27186        __cil_tmp438 = (UCHAR *)__cil_tmp437;
27187#line 5794
27188        __cil_tmp439 = 0 * 1U;
27189#line 5794
27190        __cil_tmp440 = 112 + __cil_tmp439;
27191#line 5794
27192        __cil_tmp441 = (unsigned int )DisketteExtension;
27193#line 5794
27194        __cil_tmp442 = __cil_tmp441 + __cil_tmp440;
27195#line 5794
27196        __cil_tmp443 = (UCHAR *)__cil_tmp442;
27197#line 5794
27198        __cil_tmp444 = (void *)0;
27199#line 5794
27200        __cil_tmp445 = (struct _MDL *)__cil_tmp444;
27201#line 5794
27202        ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp438, __cil_tmp443, __cil_tmp445,
27203                                  0UL, 0UL);
27204        }
27205        {
27206#line 5801
27207        __cil_tmp446 = ntStatus >= 0L;
27208#line 5801
27209        if (! __cil_tmp446) {
27210          {
27211#line 5806
27212          while (1) {
27213            while_179_continue: /* CIL Label */ ;
27214            goto while_179_break;
27215          }
27216          while_179_break: /* CIL Label */ ;
27217          }
27218#line 5808
27219          return (ntStatus);
27220        } else {
27221
27222        }
27223        }
27224        {
27225#line 5811
27226        __cil_tmp447 = 0 * 1U;
27227#line 5811
27228        __cil_tmp448 = 112 + __cil_tmp447;
27229#line 5811
27230        __cil_tmp449 = (unsigned int )DisketteExtension;
27231#line 5811
27232        __cil_tmp450 = __cil_tmp449 + __cil_tmp448;
27233#line 5811
27234        mem_572 = (UCHAR *)__cil_tmp450;
27235#line 5811
27236        __cil_tmp451 = *mem_572;
27237#line 5811
27238        __cil_tmp452 = (int )__cil_tmp451;
27239#line 5811
27240        if (__cil_tmp452 & 32) {
27241#line 5813
27242          driveStatus = (unsigned char)127;
27243        } else {
27244#line 5817
27245          driveStatus = (unsigned char)128;
27246        }
27247        }
27248      } else {
27249        {
27250#line 5822
27251        __cil_tmp453 = (unsigned int )DisketteExtension;
27252#line 5822
27253        __cil_tmp454 = __cil_tmp453 + 8;
27254#line 5822
27255        mem_573 = (PDEVICE_OBJECT *)__cil_tmp454;
27256#line 5822
27257        __cil_tmp455 = *mem_573;
27258#line 5822
27259        __cil_tmp456 = 776 << 2;
27260#line 5822
27261        __cil_tmp457 = 7 << 16;
27262#line 5822
27263        __cil_tmp458 = __cil_tmp457 | __cil_tmp456;
27264#line 5822
27265        __cil_tmp459 = __cil_tmp458 | 3;
27266#line 5822
27267        __cil_tmp460 = (unsigned long )__cil_tmp459;
27268#line 5822
27269        __cil_tmp461 = (void *)(& fdcDiskChangeParms);
27270#line 5822
27271        ntStatus = FlFdcDeviceIo(__cil_tmp455, __cil_tmp460, __cil_tmp461);
27272#line 5826
27273        __cil_tmp462 = & fdcDiskChangeParms;
27274#line 5826
27275        mem_574 = (UCHAR *)__cil_tmp462;
27276#line 5826
27277        driveStatus = *mem_574;
27278        }
27279      }
27280      }
27281      {
27282#line 5829
27283      __cil_tmp463 = (unsigned int )DisketteExtension;
27284#line 5829
27285      __cil_tmp464 = __cil_tmp463 + 174;
27286#line 5829
27287      mem_575 = (UCHAR *)__cil_tmp464;
27288#line 5829
27289      __cil_tmp465 = *mem_575;
27290#line 5829
27291      __cil_tmp466 = (int )__cil_tmp465;
27292#line 5829
27293      if (__cil_tmp466 != 0) {
27294        {
27295#line 5829
27296        __cil_tmp467 = (int )driveStatus;
27297#line 5829
27298        if (__cil_tmp467 & 128) {
27299#line 5837
27300          return (-1073741805L);
27301        } else {
27302
27303        }
27304        }
27305      } else {
27306
27307      }
27308      }
27309      {
27310#line 5847
27311      while (1) {
27312        while_180_continue: /* CIL Label */ ;
27313        goto while_180_break;
27314      }
27315      while_180_break: /* CIL Label */ ;
27316      }
27317      {
27318#line 5849
27319      __cil_tmp468 = (int )numberOfBadTracks;
27320#line 5849
27321      __cil_tmp469 = __cil_tmp468 + 1;
27322#line 5849
27323      __cil_tmp470 = (unsigned int )__cil_tmp469;
27324#line 5849
27325      __cil_tmp471 = __cil_tmp470 * 2U;
27326#line 5849
27327      __cil_tmp472 = (unsigned long )__cil_tmp471;
27328#line 5849
27329      if (badTrackBufferLength >= __cil_tmp472) {
27330#line 5852
27331        __cil_tmp473 = (unsigned int )Irp;
27332#line 5852
27333        __cil_tmp474 = __cil_tmp473 + 12;
27334#line 5852
27335        mem_576 = (PVOID *)__cil_tmp474;
27336#line 5852
27337        __cil_tmp475 = *mem_576;
27338#line 5852
27339        badTrackBuffer = (USHORT *)__cil_tmp475;
27340#line 5855
27341        __cil_tmp476 = (int )numberOfBadTracks;
27342#line 5855
27343        __cil_tmp477 = badTrackBuffer + __cil_tmp476;
27344#line 5855
27345        *__cil_tmp477 = (unsigned short )currentTrack;
27346      } else {
27347#line 5860
27348        bufferOverflow = (unsigned char)1;
27349      }
27350      }
27351#line 5863
27352      __cil_tmp478 = (int )numberOfBadTracks;
27353#line 5863
27354      __cil_tmp479 = __cil_tmp478 + 1;
27355#line 5863
27356      numberOfBadTracks = (unsigned char )__cil_tmp479;
27357    } else {
27358
27359    }
27360    }
27361#line 5866
27362    __cil_tmp480 = (int )currentTrack;
27363#line 5866
27364    __cil_tmp481 = __cil_tmp480 + 1;
27365#line 5866
27366    currentTrack = (unsigned char )__cil_tmp481;
27367    {
27368#line 5561
27369    __cil_tmp482 = (int )endTrack;
27370#line 5561
27371    __cil_tmp483 = (int )currentTrack;
27372#line 5561
27373    __cil_tmp484 = __cil_tmp483 <= __cil_tmp482;
27374#line 5561
27375    if (! __cil_tmp484) {
27376      goto while_169_break;
27377    } else {
27378
27379    }
27380    }
27381  }
27382  while_169_break: /* CIL Label */ ;
27383  }
27384#line 5870
27385  if (ntStatus >= 0L) {
27386#line 5870
27387    if (bufferOverflow) {
27388#line 5872
27389      ntStatus = -2147483643L;
27390    } else {
27391
27392    }
27393  } else {
27394
27395  }
27396#line 5875
27397  return (ntStatus);
27398}
27399}
27400#line 5878 "floppy.c"
27401BOOLEAN FlCheckFormatParameters(PDISKETTE_EXTENSION DisketteExtension , PFORMAT_PARAMETERS FormatParameters ) 
27402{ PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
27403  DRIVE_MEDIA_TYPE driveMediaType ;
27404  unsigned int __cil_tmp5 ;
27405  unsigned int __cil_tmp6 ;
27406  UCHAR __cil_tmp7 ;
27407  int __cil_tmp8 ;
27408  PDRIVE_MEDIA_LIMITS __cil_tmp9 ;
27409  MEDIA_TYPE __cil_tmp10 ;
27410  int __cil_tmp11 ;
27411  unsigned int __cil_tmp12 ;
27412  PDRIVE_MEDIA_CONSTANTS __cil_tmp13 ;
27413  MEDIA_TYPE __cil_tmp14 ;
27414  int __cil_tmp15 ;
27415  unsigned int __cil_tmp16 ;
27416  unsigned int __cil_tmp17 ;
27417  UCHAR __cil_tmp18 ;
27418  int __cil_tmp19 ;
27419  PDRIVE_MEDIA_LIMITS __cil_tmp20 ;
27420  unsigned int __cil_tmp21 ;
27421  unsigned int __cil_tmp22 ;
27422  DRIVE_MEDIA_TYPE __cil_tmp23 ;
27423  int __cil_tmp24 ;
27424  int __cil_tmp25 ;
27425  int __cil_tmp26 ;
27426  int __cil_tmp27 ;
27427  int __cil_tmp28 ;
27428  MEDIA_TYPE __cil_tmp29 ;
27429  int __cil_tmp30 ;
27430  unsigned int __cil_tmp31 ;
27431  PDRIVE_MEDIA_CONSTANTS __cil_tmp32 ;
27432  MEDIA_TYPE __cil_tmp33 ;
27433  int __cil_tmp34 ;
27434  unsigned int __cil_tmp35 ;
27435  unsigned int __cil_tmp36 ;
27436  unsigned int __cil_tmp37 ;
27437  UCHAR __cil_tmp38 ;
27438  int __cil_tmp39 ;
27439  int __cil_tmp40 ;
27440  unsigned long __cil_tmp41 ;
27441  unsigned int __cil_tmp42 ;
27442  unsigned int __cil_tmp43 ;
27443  ULONG __cil_tmp44 ;
27444  unsigned int __cil_tmp45 ;
27445  unsigned int __cil_tmp46 ;
27446  UCHAR __cil_tmp47 ;
27447  int __cil_tmp48 ;
27448  int __cil_tmp49 ;
27449  unsigned long __cil_tmp50 ;
27450  unsigned int __cil_tmp51 ;
27451  unsigned int __cil_tmp52 ;
27452  ULONG __cil_tmp53 ;
27453  unsigned int __cil_tmp54 ;
27454  unsigned int __cil_tmp55 ;
27455  UCHAR __cil_tmp56 ;
27456  unsigned long __cil_tmp57 ;
27457  unsigned int __cil_tmp58 ;
27458  unsigned int __cil_tmp59 ;
27459  ULONG __cil_tmp60 ;
27460  unsigned int __cil_tmp61 ;
27461  unsigned int __cil_tmp62 ;
27462  UCHAR __cil_tmp63 ;
27463  unsigned long __cil_tmp64 ;
27464  unsigned int __cil_tmp65 ;
27465  unsigned int __cil_tmp66 ;
27466  ULONG __cil_tmp67 ;
27467  unsigned int __cil_tmp68 ;
27468  unsigned int __cil_tmp69 ;
27469  ULONG __cil_tmp70 ;
27470  unsigned int __cil_tmp71 ;
27471  unsigned int __cil_tmp72 ;
27472  ULONG __cil_tmp73 ;
27473  KUSER_SHARED_DATA *__cil_tmp74 ;
27474  unsigned int __cil_tmp75 ;
27475  unsigned int __cil_tmp76 ;
27476  ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp77 ;
27477  int __cil_tmp78 ;
27478  MEDIA_TYPE __cil_tmp79 ;
27479  int __cil_tmp80 ;
27480  MEDIA_TYPE __cil_tmp81 ;
27481  int __cil_tmp82 ;
27482  MEDIA_TYPE __cil_tmp83 ;
27483  int __cil_tmp84 ;
27484  MEDIA_TYPE __cil_tmp85 ;
27485  int __cil_tmp86 ;
27486  MEDIA_TYPE __cil_tmp87 ;
27487  int __cil_tmp88 ;
27488  UCHAR *mem_89 ;
27489  DRIVE_MEDIA_TYPE *mem_90 ;
27490  MEDIA_TYPE *mem_91 ;
27491  MEDIA_TYPE *mem_92 ;
27492  UCHAR *mem_93 ;
27493  DRIVE_MEDIA_TYPE *mem_94 ;
27494  MEDIA_TYPE *mem_95 ;
27495  MEDIA_TYPE *mem_96 ;
27496  UCHAR *mem_97 ;
27497  ULONG *mem_98 ;
27498  UCHAR *mem_99 ;
27499  ULONG *mem_100 ;
27500  UCHAR *mem_101 ;
27501  ULONG *mem_102 ;
27502  UCHAR *mem_103 ;
27503  ULONG *mem_104 ;
27504  ULONG *mem_105 ;
27505  ULONG *mem_106 ;
27506  ALTERNATIVE_ARCHITECTURE_TYPE *mem_107 ;
27507  MEDIA_TYPE *mem_108 ;
27508  MEDIA_TYPE *mem_109 ;
27509  MEDIA_TYPE *mem_110 ;
27510  MEDIA_TYPE *mem_111 ;
27511  MEDIA_TYPE *mem_112 ;
27512
27513  {
27514#line 5913
27515  __cil_tmp5 = (unsigned int )DisketteExtension;
27516#line 5913
27517  __cil_tmp6 = __cil_tmp5 + 174;
27518#line 5913
27519  mem_89 = (UCHAR *)__cil_tmp6;
27520#line 5913
27521  __cil_tmp7 = *mem_89;
27522#line 5913
27523  __cil_tmp8 = (int )__cil_tmp7;
27524#line 5913
27525  __cil_tmp9 = DriveMediaLimits + __cil_tmp8;
27526#line 5913
27527  mem_90 = (DRIVE_MEDIA_TYPE *)__cil_tmp9;
27528#line 5913
27529  driveMediaType = *mem_90;
27530  {
27531#line 5916
27532  while (1) {
27533    while_181_continue: /* CIL Label */ ;
27534    {
27535#line 5916
27536    mem_91 = (MEDIA_TYPE *)FormatParameters;
27537#line 5916
27538    __cil_tmp10 = *mem_91;
27539#line 5916
27540    __cil_tmp11 = (int )__cil_tmp10;
27541#line 5916
27542    __cil_tmp12 = (unsigned int )driveMediaType;
27543#line 5916
27544    __cil_tmp13 = DriveMediaConstants + __cil_tmp12;
27545#line 5916
27546    mem_92 = (MEDIA_TYPE *)__cil_tmp13;
27547#line 5916
27548    __cil_tmp14 = *mem_92;
27549#line 5916
27550    __cil_tmp15 = (int )__cil_tmp14;
27551#line 5916
27552    if (__cil_tmp15 != __cil_tmp11) {
27553      {
27554#line 5916
27555      __cil_tmp16 = (unsigned int )DisketteExtension;
27556#line 5916
27557      __cil_tmp17 = __cil_tmp16 + 174;
27558#line 5916
27559      mem_93 = (UCHAR *)__cil_tmp17;
27560#line 5916
27561      __cil_tmp18 = *mem_93;
27562#line 5916
27563      __cil_tmp19 = (int )__cil_tmp18;
27564#line 5916
27565      __cil_tmp20 = DriveMediaLimits + __cil_tmp19;
27566#line 5916
27567      __cil_tmp21 = (unsigned int )__cil_tmp20;
27568#line 5916
27569      __cil_tmp22 = __cil_tmp21 + 32;
27570#line 5916
27571      mem_94 = (DRIVE_MEDIA_TYPE *)__cil_tmp22;
27572#line 5916
27573      __cil_tmp23 = *mem_94;
27574#line 5916
27575      __cil_tmp24 = (int )__cil_tmp23;
27576#line 5916
27577      __cil_tmp25 = (int )driveMediaType;
27578#line 5916
27579      __cil_tmp26 = __cil_tmp25 > __cil_tmp24;
27580#line 5916
27581      if (! __cil_tmp26) {
27582        goto while_181_break;
27583      } else {
27584
27585      }
27586      }
27587    } else {
27588      goto while_181_break;
27589    }
27590    }
27591#line 5921
27592    __cil_tmp27 = (int )driveMediaType;
27593#line 5921
27594    __cil_tmp28 = __cil_tmp27 - 1;
27595#line 5921
27596    driveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp28;
27597  }
27598  while_181_break: /* CIL Label */ ;
27599  }
27600  {
27601#line 5924
27602  mem_95 = (MEDIA_TYPE *)FormatParameters;
27603#line 5924
27604  __cil_tmp29 = *mem_95;
27605#line 5924
27606  __cil_tmp30 = (int )__cil_tmp29;
27607#line 5924
27608  __cil_tmp31 = (unsigned int )driveMediaType;
27609#line 5924
27610  __cil_tmp32 = DriveMediaConstants + __cil_tmp31;
27611#line 5924
27612  mem_96 = (MEDIA_TYPE *)__cil_tmp32;
27613#line 5924
27614  __cil_tmp33 = *mem_96;
27615#line 5924
27616  __cil_tmp34 = (int )__cil_tmp33;
27617#line 5924
27618  if (__cil_tmp34 != __cil_tmp30) {
27619#line 5927
27620    return ((unsigned char)0);
27621  } else {
27622#line 5931
27623    __cil_tmp35 = (unsigned int )driveMediaType;
27624#line 5931
27625    driveMediaConstants = DriveMediaConstants + __cil_tmp35;
27626    {
27627#line 5933
27628    __cil_tmp36 = (unsigned int )driveMediaConstants;
27629#line 5933
27630    __cil_tmp37 = __cil_tmp36 + 51;
27631#line 5933
27632    mem_97 = (UCHAR *)__cil_tmp37;
27633#line 5933
27634    __cil_tmp38 = *mem_97;
27635#line 5933
27636    __cil_tmp39 = (int )__cil_tmp38;
27637#line 5933
27638    __cil_tmp40 = __cil_tmp39 - 1;
27639#line 5933
27640    __cil_tmp41 = (unsigned long )__cil_tmp40;
27641#line 5933
27642    __cil_tmp42 = (unsigned int )FormatParameters;
27643#line 5933
27644    __cil_tmp43 = __cil_tmp42 + 40;
27645#line 5933
27646    mem_98 = (ULONG *)__cil_tmp43;
27647#line 5933
27648    __cil_tmp44 = *mem_98;
27649#line 5933
27650    if (__cil_tmp44 > __cil_tmp41) {
27651#line 5944
27652      return ((unsigned char)0);
27653    } else {
27654      {
27655#line 5933
27656      __cil_tmp45 = (unsigned int )driveMediaConstants;
27657#line 5933
27658      __cil_tmp46 = __cil_tmp45 + 51;
27659#line 5933
27660      mem_99 = (UCHAR *)__cil_tmp46;
27661#line 5933
27662      __cil_tmp47 = *mem_99;
27663#line 5933
27664      __cil_tmp48 = (int )__cil_tmp47;
27665#line 5933
27666      __cil_tmp49 = __cil_tmp48 - 1;
27667#line 5933
27668      __cil_tmp50 = (unsigned long )__cil_tmp49;
27669#line 5933
27670      __cil_tmp51 = (unsigned int )FormatParameters;
27671#line 5933
27672      __cil_tmp52 = __cil_tmp51 + 44;
27673#line 5933
27674      mem_100 = (ULONG *)__cil_tmp52;
27675#line 5933
27676      __cil_tmp53 = *mem_100;
27677#line 5933
27678      if (__cil_tmp53 > __cil_tmp50) {
27679#line 5944
27680        return ((unsigned char)0);
27681      } else {
27682        {
27683#line 5933
27684        __cil_tmp54 = (unsigned int )driveMediaConstants;
27685#line 5933
27686        __cil_tmp55 = __cil_tmp54 + 48;
27687#line 5933
27688        mem_101 = (UCHAR *)__cil_tmp55;
27689#line 5933
27690        __cil_tmp56 = *mem_101;
27691#line 5933
27692        __cil_tmp57 = (unsigned long )__cil_tmp56;
27693#line 5933
27694        __cil_tmp58 = (unsigned int )FormatParameters;
27695#line 5933
27696        __cil_tmp59 = __cil_tmp58 + 32;
27697#line 5933
27698        mem_102 = (ULONG *)__cil_tmp59;
27699#line 5933
27700        __cil_tmp60 = *mem_102;
27701#line 5933
27702        if (__cil_tmp60 > __cil_tmp57) {
27703#line 5944
27704          return ((unsigned char)0);
27705        } else {
27706          {
27707#line 5933
27708          __cil_tmp61 = (unsigned int )driveMediaConstants;
27709#line 5933
27710          __cil_tmp62 = __cil_tmp61 + 48;
27711#line 5933
27712          mem_103 = (UCHAR *)__cil_tmp62;
27713#line 5933
27714          __cil_tmp63 = *mem_103;
27715#line 5933
27716          __cil_tmp64 = (unsigned long )__cil_tmp63;
27717#line 5933
27718          __cil_tmp65 = (unsigned int )FormatParameters;
27719#line 5933
27720          __cil_tmp66 = __cil_tmp65 + 36;
27721#line 5933
27722          mem_104 = (ULONG *)__cil_tmp66;
27723#line 5933
27724          __cil_tmp67 = *mem_104;
27725#line 5933
27726          if (__cil_tmp67 > __cil_tmp64) {
27727#line 5944
27728            return ((unsigned char)0);
27729          } else {
27730            {
27731#line 5933
27732            __cil_tmp68 = (unsigned int )FormatParameters;
27733#line 5933
27734            __cil_tmp69 = __cil_tmp68 + 32;
27735#line 5933
27736            mem_105 = (ULONG *)__cil_tmp69;
27737#line 5933
27738            __cil_tmp70 = *mem_105;
27739#line 5933
27740            __cil_tmp71 = (unsigned int )FormatParameters;
27741#line 5933
27742            __cil_tmp72 = __cil_tmp71 + 36;
27743#line 5933
27744            mem_106 = (ULONG *)__cil_tmp72;
27745#line 5933
27746            __cil_tmp73 = *mem_106;
27747#line 5933
27748            if (__cil_tmp73 < __cil_tmp70) {
27749#line 5944
27750              return ((unsigned char)0);
27751            } else {
27752              {
27753#line 5948
27754              __cil_tmp74 = (KUSER_SHARED_DATA * const  )4292804608U;
27755#line 5948
27756              __cil_tmp75 = (unsigned int )__cil_tmp74;
27757#line 5948
27758              __cil_tmp76 = __cil_tmp75 + 732;
27759#line 5948
27760              mem_107 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp76;
27761#line 5948
27762              __cil_tmp77 = *mem_107;
27763#line 5948
27764              __cil_tmp78 = (int )__cil_tmp77;
27765#line 5948
27766              if (__cil_tmp78 == 1) {
27767                {
27768#line 5949
27769                mem_108 = (MEDIA_TYPE *)FormatParameters;
27770#line 5949
27771                __cil_tmp79 = *mem_108;
27772#line 5949
27773                __cil_tmp80 = (int )__cil_tmp79;
27774#line 5949
27775                if (__cil_tmp80 == 6) {
27776#line 5955
27777                  return ((unsigned char)0);
27778                } else {
27779                  {
27780#line 5949
27781                  mem_109 = (MEDIA_TYPE *)FormatParameters;
27782#line 5949
27783                  __cil_tmp81 = *mem_109;
27784#line 5949
27785                  __cil_tmp82 = (int )__cil_tmp81;
27786#line 5949
27787                  if (__cil_tmp82 == 7) {
27788#line 5955
27789                    return ((unsigned char)0);
27790                  } else {
27791                    {
27792#line 5949
27793                    mem_110 = (MEDIA_TYPE *)FormatParameters;
27794#line 5949
27795                    __cil_tmp83 = *mem_110;
27796#line 5949
27797                    __cil_tmp84 = (int )__cil_tmp83;
27798#line 5949
27799                    if (__cil_tmp84 == 8) {
27800#line 5955
27801                      return ((unsigned char)0);
27802                    } else {
27803                      {
27804#line 5949
27805                      mem_111 = (MEDIA_TYPE *)FormatParameters;
27806#line 5949
27807                      __cil_tmp85 = *mem_111;
27808#line 5949
27809                      __cil_tmp86 = (int )__cil_tmp85;
27810#line 5949
27811                      if (__cil_tmp86 == 9) {
27812#line 5955
27813                        return ((unsigned char)0);
27814                      } else {
27815                        {
27816#line 5949
27817                        mem_112 = (MEDIA_TYPE *)FormatParameters;
27818#line 5949
27819                        __cil_tmp87 = *mem_112;
27820#line 5949
27821                        __cil_tmp88 = (int )__cil_tmp87;
27822#line 5949
27823                        if (__cil_tmp88 == 10) {
27824#line 5955
27825                          return ((unsigned char)0);
27826                        } else {
27827
27828                        }
27829                        }
27830                      }
27831                      }
27832                    }
27833                    }
27834                  }
27835                  }
27836                }
27837                }
27838              } else {
27839
27840              }
27841              }
27842#line 5959
27843              return ((unsigned char)1);
27844            }
27845            }
27846          }
27847          }
27848        }
27849        }
27850      }
27851      }
27852    }
27853    }
27854  }
27855  }
27856}
27857}
27858#line 5964 "floppy.c"
27859NTSTATUS FlIssueCommand(PDISKETTE_EXTENSION DisketteExtension , PUCHAR FifoInBuffer ,
27860                        PUCHAR FifoOutBuffer , PMDL IoMdl , ULONG IoOffset , ULONG TransferBytes ) 
27861{ NTSTATUS ntStatus ;
27862  ISSUE_FDC_COMMAND_PARMS issueCommandParms ;
27863  ISSUE_FDC_COMMAND_PARMS *__cil_tmp9 ;
27864  unsigned int __cil_tmp10 ;
27865  unsigned int __cil_tmp11 ;
27866  unsigned int __cil_tmp12 ;
27867  unsigned int __cil_tmp13 ;
27868  unsigned int __cil_tmp14 ;
27869  unsigned int __cil_tmp15 ;
27870  unsigned int __cil_tmp16 ;
27871  PDEVICE_OBJECT __cil_tmp17 ;
27872  int __cil_tmp18 ;
27873  int __cil_tmp19 ;
27874  int __cil_tmp20 ;
27875  int __cil_tmp21 ;
27876  unsigned long __cil_tmp22 ;
27877  void *__cil_tmp23 ;
27878  unsigned int __cil_tmp24 ;
27879  unsigned int __cil_tmp25 ;
27880  unsigned int __cil_tmp26 ;
27881  unsigned int __cil_tmp27 ;
27882  PUCHAR *mem_28 ;
27883  PUCHAR *mem_29 ;
27884  PVOID *mem_30 ;
27885  ULONG *mem_31 ;
27886  ULONG *mem_32 ;
27887  ULONG *mem_33 ;
27888  PDEVICE_OBJECT *mem_34 ;
27889  BOOLEAN *mem_35 ;
27890  BOOLEAN *mem_36 ;
27891
27892  {
27893#line 6018
27894  __cil_tmp9 = & issueCommandParms;
27895#line 6018
27896  mem_28 = (PUCHAR *)__cil_tmp9;
27897#line 6018
27898  *mem_28 = FifoInBuffer;
27899#line 6019
27900  __cil_tmp10 = (unsigned int )(& issueCommandParms) + 4;
27901#line 6019
27902  mem_29 = (PUCHAR *)__cil_tmp10;
27903#line 6019
27904  *mem_29 = FifoOutBuffer;
27905#line 6020
27906  __cil_tmp11 = (unsigned int )(& issueCommandParms) + 8;
27907#line 6020
27908  mem_30 = (PVOID *)__cil_tmp11;
27909#line 6020
27910  *mem_30 = (void *)IoMdl;
27911#line 6021
27912  __cil_tmp12 = (unsigned int )(& issueCommandParms) + 12;
27913#line 6021
27914  mem_31 = (ULONG *)__cil_tmp12;
27915#line 6021
27916  *mem_31 = IoOffset;
27917#line 6022
27918  __cil_tmp13 = (unsigned int )(& issueCommandParms) + 16;
27919#line 6022
27920  mem_32 = (ULONG *)__cil_tmp13;
27921#line 6022
27922  *mem_32 = TransferBytes;
27923#line 6023
27924  __cil_tmp14 = (unsigned int )(& issueCommandParms) + 20;
27925#line 6023
27926  mem_33 = (ULONG *)__cil_tmp14;
27927#line 6023
27928  *mem_33 = 4UL;
27929  {
27930#line 6028
27931  while (1) {
27932    while_182_continue: /* CIL Label */ ;
27933    goto while_182_break;
27934  }
27935  while_182_break: /* CIL Label */ ;
27936  }
27937  {
27938#line 6030
27939  __cil_tmp15 = (unsigned int )DisketteExtension;
27940#line 6030
27941  __cil_tmp16 = __cil_tmp15 + 8;
27942#line 6030
27943  mem_34 = (PDEVICE_OBJECT *)__cil_tmp16;
27944#line 6030
27945  __cil_tmp17 = *mem_34;
27946#line 6030
27947  __cil_tmp18 = 771 << 2;
27948#line 6030
27949  __cil_tmp19 = 7 << 16;
27950#line 6030
27951  __cil_tmp20 = __cil_tmp19 | __cil_tmp18;
27952#line 6030
27953  __cil_tmp21 = __cil_tmp20 | 3;
27954#line 6030
27955  __cil_tmp22 = (unsigned long )__cil_tmp21;
27956#line 6030
27957  __cil_tmp23 = (void *)(& issueCommandParms);
27958#line 6030
27959  ntStatus = FlFdcDeviceIo(__cil_tmp17, __cil_tmp22, __cil_tmp23);
27960  }
27961#line 6038
27962  if (ntStatus == -1073741661L) {
27963#line 6041
27964    __cil_tmp24 = (unsigned int )DisketteExtension;
27965#line 6041
27966    __cil_tmp25 = __cil_tmp24 + 104;
27967#line 6041
27968    mem_35 = (BOOLEAN *)__cil_tmp25;
27969#line 6041
27970    *mem_35 = (unsigned char)1;
27971  } else {
27972#line 6038
27973    if (ntStatus == -1073741464L) {
27974#line 6041
27975      __cil_tmp26 = (unsigned int )DisketteExtension;
27976#line 6041
27977      __cil_tmp27 = __cil_tmp26 + 104;
27978#line 6041
27979      mem_36 = (BOOLEAN *)__cil_tmp27;
27980#line 6041
27981      *mem_36 = (unsigned char)1;
27982    } else {
27983
27984    }
27985  }
27986#line 6044
27987  return (ntStatus);
27988}
27989}
27990#line 6047 "floppy.c"
27991NTSTATUS FlInitializeControllerHardware(PDISKETTE_EXTENSION DisketteExtension ) 
27992{ NTSTATUS ntStatus ;
27993  unsigned int __cil_tmp3 ;
27994  unsigned int __cil_tmp4 ;
27995  PDEVICE_OBJECT __cil_tmp5 ;
27996  int __cil_tmp6 ;
27997  int __cil_tmp7 ;
27998  int __cil_tmp8 ;
27999  int __cil_tmp9 ;
28000  unsigned long __cil_tmp10 ;
28001  void *__cil_tmp11 ;
28002  unsigned int __cil_tmp12 ;
28003  unsigned int __cil_tmp13 ;
28004  UCHAR __cil_tmp14 ;
28005  int __cil_tmp15 ;
28006  unsigned int __cil_tmp16 ;
28007  unsigned int __cil_tmp17 ;
28008  unsigned int __cil_tmp18 ;
28009  unsigned int __cil_tmp19 ;
28010  unsigned int __cil_tmp20 ;
28011  unsigned int __cil_tmp21 ;
28012  unsigned int __cil_tmp22 ;
28013  unsigned int __cil_tmp23 ;
28014  unsigned int __cil_tmp24 ;
28015  unsigned int __cil_tmp25 ;
28016  UCHAR __cil_tmp26 ;
28017  int __cil_tmp27 ;
28018  int __cil_tmp28 ;
28019  int __cil_tmp29 ;
28020  unsigned int __cil_tmp30 ;
28021  unsigned int __cil_tmp31 ;
28022  unsigned int __cil_tmp32 ;
28023  unsigned int __cil_tmp33 ;
28024  UCHAR *__cil_tmp34 ;
28025  unsigned int __cil_tmp35 ;
28026  unsigned int __cil_tmp36 ;
28027  unsigned int __cil_tmp37 ;
28028  unsigned int __cil_tmp38 ;
28029  UCHAR *__cil_tmp39 ;
28030  void *__cil_tmp40 ;
28031  struct _MDL *__cil_tmp41 ;
28032  PDEVICE_OBJECT *mem_42 ;
28033  UCHAR *mem_43 ;
28034  UCHAR *mem_44 ;
28035  UCHAR *mem_45 ;
28036  UCHAR *mem_46 ;
28037
28038  {
28039  {
28040#line 6069
28041  __cil_tmp3 = (unsigned int )DisketteExtension;
28042#line 6069
28043  __cil_tmp4 = __cil_tmp3 + 8;
28044#line 6069
28045  mem_42 = (PDEVICE_OBJECT *)__cil_tmp4;
28046#line 6069
28047  __cil_tmp5 = *mem_42;
28048#line 6069
28049  __cil_tmp6 = 773 << 2;
28050#line 6069
28051  __cil_tmp7 = 7 << 16;
28052#line 6069
28053  __cil_tmp8 = __cil_tmp7 | __cil_tmp6;
28054#line 6069
28055  __cil_tmp9 = __cil_tmp8 | 3;
28056#line 6069
28057  __cil_tmp10 = (unsigned long )__cil_tmp9;
28058#line 6069
28059  __cil_tmp11 = (void *)0;
28060#line 6069
28061  ntStatus = FlFdcDeviceIo(__cil_tmp5, __cil_tmp10, __cil_tmp11);
28062  }
28063#line 6073
28064  if (ntStatus >= 0L) {
28065    {
28066#line 6075
28067    __cil_tmp12 = (unsigned int )DisketteExtension;
28068#line 6075
28069    __cil_tmp13 = __cil_tmp12 + 364;
28070#line 6075
28071    mem_43 = (UCHAR *)__cil_tmp13;
28072#line 6075
28073    __cil_tmp14 = *mem_43;
28074#line 6075
28075    __cil_tmp15 = (int )__cil_tmp14;
28076#line 6075
28077    if (__cil_tmp15 != 0) {
28078      {
28079#line 6077
28080      __cil_tmp16 = 0 * 1U;
28081#line 6077
28082      __cil_tmp17 = 112 + __cil_tmp16;
28083#line 6077
28084      __cil_tmp18 = (unsigned int )DisketteExtension;
28085#line 6077
28086      __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
28087#line 6077
28088      mem_44 = (UCHAR *)__cil_tmp19;
28089#line 6077
28090      *mem_44 = (unsigned char)21;
28091#line 6078
28092      __cil_tmp20 = 1 * 1U;
28093#line 6078
28094      __cil_tmp21 = 112 + __cil_tmp20;
28095#line 6078
28096      __cil_tmp22 = (unsigned int )DisketteExtension;
28097#line 6078
28098      __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
28099#line 6078
28100      __cil_tmp24 = (unsigned int )DisketteExtension;
28101#line 6078
28102      __cil_tmp25 = __cil_tmp24 + 364;
28103#line 6078
28104      mem_45 = (UCHAR *)__cil_tmp25;
28105#line 6078
28106      __cil_tmp26 = *mem_45;
28107#line 6078
28108      __cil_tmp27 = (int )__cil_tmp26;
28109#line 6078
28110      __cil_tmp28 = __cil_tmp27 << 2;
28111#line 6078
28112      __cil_tmp29 = 128 | __cil_tmp28;
28113#line 6078
28114      mem_46 = (UCHAR *)__cil_tmp23;
28115#line 6078
28116      *mem_46 = (unsigned char )__cil_tmp29;
28117#line 6082
28118      __cil_tmp30 = 0 * 1U;
28119#line 6082
28120      __cil_tmp31 = 112 + __cil_tmp30;
28121#line 6082
28122      __cil_tmp32 = (unsigned int )DisketteExtension;
28123#line 6082
28124      __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
28125#line 6082
28126      __cil_tmp34 = (UCHAR *)__cil_tmp33;
28127#line 6082
28128      __cil_tmp35 = 0 * 1U;
28129#line 6082
28130      __cil_tmp36 = 112 + __cil_tmp35;
28131#line 6082
28132      __cil_tmp37 = (unsigned int )DisketteExtension;
28133#line 6082
28134      __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
28135#line 6082
28136      __cil_tmp39 = (UCHAR *)__cil_tmp38;
28137#line 6082
28138      __cil_tmp40 = (void *)0;
28139#line 6082
28140      __cil_tmp41 = (struct _MDL *)__cil_tmp40;
28141#line 6082
28142      ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp34, __cil_tmp39, __cil_tmp41,
28143                                0UL, 0UL);
28144      }
28145    } else {
28146
28147    }
28148    }
28149  } else {
28150
28151  }
28152#line 6092
28153  return (ntStatus);
28154}
28155}
28156#line 6095 "floppy.c"
28157NTSTATUS FlFdcDeviceIo(PDEVICE_OBJECT DeviceObject , ULONG Ioctl , PVOID Data ) 
28158{ NTSTATUS ntStatus ;
28159  PIRP irp ;
28160  PIO_STACK_LOCATION irpStack ;
28161  KEVENT doneEvent ;
28162  IO_STATUS_BLOCK ioStatus ;
28163  enum _EVENT_TYPE __cil_tmp9 ;
28164  void *__cil_tmp10 ;
28165  void *__cil_tmp11 ;
28166  void *__cil_tmp12 ;
28167  unsigned int __cil_tmp13 ;
28168  unsigned int __cil_tmp14 ;
28169  unsigned int __cil_tmp15 ;
28170  unsigned int __cil_tmp16 ;
28171  unsigned int __cil_tmp17 ;
28172  unsigned int __cil_tmp18 ;
28173  unsigned int __cil_tmp19 ;
28174  struct _IO_STACK_LOCATION *__cil_tmp20 ;
28175  unsigned int __cil_tmp21 ;
28176  unsigned int __cil_tmp22 ;
28177  unsigned int __cil_tmp23 ;
28178  unsigned int __cil_tmp24 ;
28179  void *__cil_tmp25 ;
28180  enum _KWAIT_REASON __cil_tmp26 ;
28181  void *__cil_tmp27 ;
28182  LARGE_INTEGER *__cil_tmp28 ;
28183  IO_STATUS_BLOCK *__cil_tmp29 ;
28184  struct _IO_STACK_LOCATION **mem_30 ;
28185  PVOID *mem_31 ;
28186  NTSTATUS *mem_32 ;
28187
28188  {
28189  {
28190#line 6108
28191  while (1) {
28192    while_183_continue: /* CIL Label */ ;
28193    goto while_183_break;
28194  }
28195  while_183_break: /* CIL Label */ ;
28196  }
28197  {
28198#line 6110
28199  __cil_tmp9 = (enum _EVENT_TYPE )0;
28200#line 6110
28201  KeInitializeEvent(& doneEvent, __cil_tmp9, (unsigned char)0);
28202#line 6117
28203  __cil_tmp10 = (void *)0;
28204#line 6117
28205  __cil_tmp11 = (void *)0;
28206#line 6117
28207  irp = IoBuildDeviceIoControlRequest(Ioctl, DeviceObject, __cil_tmp10, 0UL, __cil_tmp11,
28208                                      0UL, (unsigned char)1, & doneEvent, & ioStatus);
28209  }
28210  {
28211#line 6127
28212  __cil_tmp12 = (void *)0;
28213#line 6127
28214  __cil_tmp13 = (unsigned int )__cil_tmp12;
28215#line 6127
28216  __cil_tmp14 = (unsigned int )irp;
28217#line 6127
28218  if (__cil_tmp14 == __cil_tmp13) {
28219    {
28220#line 6129
28221    while (1) {
28222      while_184_continue: /* CIL Label */ ;
28223      goto while_184_break;
28224    }
28225    while_184_break: /* CIL Label */ ;
28226    }
28227#line 6135
28228    return (-1073741670L);
28229  } else {
28230
28231  }
28232  }
28233  {
28234#line 6138
28235  __cil_tmp15 = 24 + 8;
28236#line 6138
28237  __cil_tmp16 = 0 + __cil_tmp15;
28238#line 6138
28239  __cil_tmp17 = 64 + __cil_tmp16;
28240#line 6138
28241  __cil_tmp18 = (unsigned int )irp;
28242#line 6138
28243  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
28244#line 6138
28245  mem_30 = (struct _IO_STACK_LOCATION **)__cil_tmp19;
28246#line 6138
28247  __cil_tmp20 = *mem_30;
28248#line 6138
28249  irpStack = __cil_tmp20 - 1;
28250#line 6139
28251  __cil_tmp21 = 0 + 12;
28252#line 6139
28253  __cil_tmp22 = 4 + __cil_tmp21;
28254#line 6139
28255  __cil_tmp23 = (unsigned int )irpStack;
28256#line 6139
28257  __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
28258#line 6139
28259  mem_31 = (PVOID *)__cil_tmp24;
28260#line 6139
28261  *mem_31 = Data;
28262#line 6144
28263  ntStatus = IofCallDriver(DeviceObject, irp);
28264  }
28265#line 6146
28266  if (ntStatus == 259L) {
28267    {
28268#line 6152
28269    __cil_tmp25 = (void *)(& doneEvent);
28270#line 6152
28271    __cil_tmp26 = (enum _KWAIT_REASON )5;
28272#line 6152
28273    __cil_tmp27 = (void *)0;
28274#line 6152
28275    __cil_tmp28 = (LARGE_INTEGER *)__cil_tmp27;
28276#line 6152
28277    KeWaitForSingleObject(__cil_tmp25, __cil_tmp26, (char)0, (unsigned char)0, __cil_tmp28);
28278#line 6158
28279    __cil_tmp29 = & ioStatus;
28280#line 6158
28281    mem_32 = (NTSTATUS *)__cil_tmp29;
28282#line 6158
28283    ntStatus = *mem_32;
28284    }
28285  } else {
28286
28287  }
28288#line 6161
28289  return (ntStatus);
28290}
28291}
28292#line 6165 "floppy.c"
28293NTSTATUS FlHdbit(PDISKETTE_EXTENSION DisketteExtension ) 
28294{ NTSTATUS ntStatus ;
28295  SHORT st5 ;
28296  BOOLEAN media144MB ;
28297  BOOLEAN mediaUpTo120MB ;
28298  BOOLEAN supportDrive ;
28299  SET_HD_BIT_PARMS setHdBitParameter ;
28300  unsigned int __cil_tmp8 ;
28301  unsigned int __cil_tmp9 ;
28302  DRIVE_MEDIA_TYPE __cil_tmp10 ;
28303  unsigned int __cil_tmp11 ;
28304  unsigned int __cil_tmp12 ;
28305  unsigned int __cil_tmp13 ;
28306  unsigned int __cil_tmp14 ;
28307  unsigned int __cil_tmp15 ;
28308  unsigned int __cil_tmp16 ;
28309  unsigned int __cil_tmp17 ;
28310  UCHAR __cil_tmp18 ;
28311  int __cil_tmp19 ;
28312  SET_HD_BIT_PARMS *__cil_tmp20 ;
28313  SET_HD_BIT_PARMS *__cil_tmp21 ;
28314  unsigned int __cil_tmp22 ;
28315  unsigned int __cil_tmp23 ;
28316  PDEVICE_OBJECT __cil_tmp24 ;
28317  int __cil_tmp25 ;
28318  int __cil_tmp26 ;
28319  int __cil_tmp27 ;
28320  int __cil_tmp28 ;
28321  unsigned long __cil_tmp29 ;
28322  void *__cil_tmp30 ;
28323  int __cil_tmp31 ;
28324  unsigned int __cil_tmp32 ;
28325  DRIVE_MEDIA_TYPE *mem_33 ;
28326  BOOLEAN *mem_34 ;
28327  BOOLEAN *mem_35 ;
28328  UCHAR *mem_36 ;
28329  UCHAR *mem_37 ;
28330  UCHAR *mem_38 ;
28331  BOOLEAN *mem_39 ;
28332  BOOLEAN *mem_40 ;
28333  PDEVICE_OBJECT *mem_41 ;
28334  BOOLEAN *mem_42 ;
28335
28336  {
28337#line 6195
28338  st5 = (short)0;
28339#line 6210
28340  media144MB = (unsigned char)0;
28341#line 6211
28342  mediaUpTo120MB = (unsigned char)0;
28343#line 6212
28344  supportDrive = (unsigned char)1;
28345  {
28346#line 6217
28347  while (1) {
28348    while_185_continue: /* CIL Label */ ;
28349    goto while_185_break;
28350  }
28351  while_185_break: /* CIL Label */ ;
28352  }
28353  {
28354#line 6219
28355  __cil_tmp8 = (unsigned int )DisketteExtension;
28356#line 6219
28357  __cil_tmp9 = __cil_tmp8 + 216;
28358#line 6219
28359  mem_33 = (DRIVE_MEDIA_TYPE *)__cil_tmp9;
28360#line 6219
28361  __cil_tmp10 = *mem_33;
28362#line 6220
28363  if ((int )__cil_tmp10 == 18) {
28364    goto switch_186_18;
28365  } else {
28366#line 6227
28367    if ((int )__cil_tmp10 == 16) {
28368      goto switch_186_16;
28369    } else {
28370#line 6228
28371      if ((int )__cil_tmp10 == 17) {
28372        goto switch_186_17;
28373      } else {
28374#line 6229
28375        if ((int )__cil_tmp10 == 12) {
28376          goto switch_186_12;
28377        } else {
28378#line 6230
28379          if ((int )__cil_tmp10 == 13) {
28380            goto switch_186_13;
28381          } else {
28382#line 6231
28383            if ((int )__cil_tmp10 == 19) {
28384              goto switch_186_19;
28385            } else {
28386#line 6232
28387              if ((int )__cil_tmp10 == 20) {
28388                goto switch_186_20;
28389              } else {
28390#line 6235
28391                if ((int )__cil_tmp10 == 0) {
28392                  goto switch_186_0;
28393                } else {
28394#line 6236
28395                  if ((int )__cil_tmp10 == 1) {
28396                    goto switch_186_1;
28397                  } else {
28398#line 6237
28399                    if ((int )__cil_tmp10 == 2) {
28400                      goto switch_186_2;
28401                    } else {
28402#line 6238
28403                      if ((int )__cil_tmp10 == 3) {
28404                        goto switch_186_3;
28405                      } else {
28406#line 6239
28407                        if ((int )__cil_tmp10 == 4) {
28408                          goto switch_186_4;
28409                        } else {
28410#line 6240
28411                          if ((int )__cil_tmp10 == 5) {
28412                            goto switch_186_5;
28413                          } else {
28414#line 6241
28415                            if ((int )__cil_tmp10 == 6) {
28416                              goto switch_186_6;
28417                            } else {
28418#line 6242
28419                              if ((int )__cil_tmp10 == 7) {
28420                                goto switch_186_7;
28421                              } else {
28422#line 6243
28423                                if ((int )__cil_tmp10 == 8) {
28424                                  goto switch_186_8;
28425                                } else {
28426#line 6244
28427                                  if ((int )__cil_tmp10 == 9) {
28428                                    goto switch_186_9;
28429                                  } else {
28430#line 6245
28431                                    if ((int )__cil_tmp10 == 10) {
28432                                      goto switch_186_10;
28433                                    } else {
28434#line 6246
28435                                      if ((int )__cil_tmp10 == 11) {
28436                                        goto switch_186_11;
28437                                      } else {
28438#line 6247
28439                                        if ((int )__cil_tmp10 == 14) {
28440                                          goto switch_186_14;
28441                                        } else {
28442#line 6248
28443                                          if ((int )__cil_tmp10 == 15) {
28444                                            goto switch_186_15;
28445                                          } else {
28446                                            {
28447                                            goto switch_186_default;
28448#line 6219
28449                                            if (0) {
28450                                              switch_186_18: /* CIL Label */ 
28451#line 6226
28452                                              media144MB = (unsigned char)1;
28453                                              switch_186_16: /* CIL Label */ ;
28454                                              switch_186_17: /* CIL Label */ ;
28455                                              switch_186_12: /* CIL Label */ ;
28456                                              switch_186_13: /* CIL Label */ ;
28457                                              switch_186_19: /* CIL Label */ ;
28458                                              switch_186_20: /* CIL Label */ 
28459#line 6234
28460                                              mediaUpTo120MB = (unsigned char)1;
28461                                              switch_186_0: /* CIL Label */ ;
28462                                              switch_186_1: /* CIL Label */ ;
28463                                              switch_186_2: /* CIL Label */ ;
28464                                              switch_186_3: /* CIL Label */ ;
28465                                              switch_186_4: /* CIL Label */ ;
28466                                              switch_186_5: /* CIL Label */ ;
28467                                              switch_186_6: /* CIL Label */ ;
28468                                              switch_186_7: /* CIL Label */ ;
28469                                              switch_186_8: /* CIL Label */ ;
28470                                              switch_186_9: /* CIL Label */ ;
28471                                              switch_186_10: /* CIL Label */ ;
28472                                              switch_186_11: /* CIL Label */ ;
28473                                              switch_186_14: /* CIL Label */ ;
28474                                              switch_186_15: /* CIL Label */ ;
28475                                              goto switch_186_break;
28476                                              switch_186_default: /* CIL Label */ 
28477#line 6260
28478                                              mediaUpTo120MB = (unsigned char)1;
28479                                              goto switch_186_break;
28480                                            } else {
28481                                              switch_186_break: /* CIL Label */ ;
28482                                            }
28483                                            }
28484                                          }
28485                                        }
28486                                      }
28487                                    }
28488                                  }
28489                                }
28490                              }
28491                            }
28492                          }
28493                        }
28494                      }
28495                    }
28496                  }
28497                }
28498              }
28499            }
28500          }
28501        }
28502      }
28503    }
28504  }
28505  }
28506#line 6265
28507  __cil_tmp11 = (unsigned int )(& setHdBitParameter) + 1;
28508#line 6265
28509  mem_34 = (BOOLEAN *)__cil_tmp11;
28510#line 6265
28511  *mem_34 = media144MB;
28512#line 6266
28513  __cil_tmp12 = (unsigned int )(& setHdBitParameter) + 2;
28514#line 6266
28515  mem_35 = (BOOLEAN *)__cil_tmp12;
28516#line 6266
28517  *mem_35 = mediaUpTo120MB;
28518#line 6267
28519  __cil_tmp13 = (unsigned int )(& setHdBitParameter) + 3;
28520#line 6267
28521  __cil_tmp14 = (unsigned int )DisketteExtension;
28522#line 6267
28523  __cil_tmp15 = __cil_tmp14 + 248;
28524#line 6267
28525  mem_36 = (UCHAR *)__cil_tmp13;
28526#line 6267
28527  mem_37 = (UCHAR *)__cil_tmp15;
28528#line 6267
28529  *mem_36 = *mem_37;
28530  {
28531#line 6268
28532  __cil_tmp16 = (unsigned int )DisketteExtension;
28533#line 6268
28534  __cil_tmp17 = __cil_tmp16 + 174;
28535#line 6268
28536  mem_38 = (UCHAR *)__cil_tmp17;
28537#line 6268
28538  __cil_tmp18 = *mem_38;
28539#line 6268
28540  __cil_tmp19 = (int )__cil_tmp18;
28541#line 6268
28542  if (__cil_tmp19 == 3) {
28543#line 6268
28544    __cil_tmp20 = & setHdBitParameter;
28545#line 6268
28546    mem_39 = (BOOLEAN *)__cil_tmp20;
28547#line 6268
28548    *mem_39 = (unsigned char)1;
28549  } else {
28550#line 6268
28551    __cil_tmp21 = & setHdBitParameter;
28552#line 6268
28553    mem_40 = (BOOLEAN *)__cil_tmp21;
28554#line 6268
28555    *mem_40 = (unsigned char)0;
28556  }
28557  }
28558  {
28559#line 6271
28560  __cil_tmp22 = (unsigned int )DisketteExtension;
28561#line 6271
28562  __cil_tmp23 = __cil_tmp22 + 8;
28563#line 6271
28564  mem_41 = (PDEVICE_OBJECT *)__cil_tmp23;
28565#line 6271
28566  __cil_tmp24 = *mem_41;
28567#line 6271
28568  __cil_tmp25 = 785 << 2;
28569#line 6271
28570  __cil_tmp26 = 7 << 16;
28571#line 6271
28572  __cil_tmp27 = __cil_tmp26 | __cil_tmp25;
28573#line 6271
28574  __cil_tmp28 = __cil_tmp27 | 3;
28575#line 6271
28576  __cil_tmp29 = (unsigned long )__cil_tmp28;
28577#line 6271
28578  __cil_tmp30 = (void *)(& setHdBitParameter);
28579#line 6271
28580  ntStatus = FlFdcDeviceIo(__cil_tmp24, __cil_tmp29, __cil_tmp30);
28581  }
28582  {
28583#line 6275
28584  __cil_tmp31 = ntStatus >= 0L;
28585#line 6275
28586  if (! __cil_tmp31) {
28587#line 6276
28588    return (ntStatus);
28589  } else {
28590
28591  }
28592  }
28593  {
28594#line 6279
28595  __cil_tmp32 = (unsigned int )(& setHdBitParameter) + 4;
28596  {
28597#line 6279
28598  mem_42 = (BOOLEAN *)__cil_tmp32;
28599#line 6279
28600  if (*mem_42) {
28601    {
28602#line 6281
28603    ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
28604    }
28605  } else {
28606
28607  }
28608  }
28609  }
28610#line 6284
28611  return (ntStatus);
28612}
28613}
28614#line 6286 "floppy.c"
28615NTSTATUS FloppyQueueRequest(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) 
28616{ KIRQL oldIrql ;
28617  NTSTATUS ntStatus ;
28618  LONG tmp ;
28619  void *__cil_tmp6 ;
28620  KSPIN_LOCK *__cil_tmp7 ;
28621  unsigned int __cil_tmp8 ;
28622  unsigned int __cil_tmp9 ;
28623  void (**__cil_tmp10)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
28624  PVOID *__cil_tmp11 ;
28625  LONG *__cil_tmp12 ;
28626  void *__cil_tmp13 ;
28627  long __cil_tmp14 ;
28628  unsigned int __cil_tmp15 ;
28629  unsigned int __cil_tmp16 ;
28630  unsigned int __cil_tmp17 ;
28631  unsigned int __cil_tmp18 ;
28632  void (**__cil_tmp19)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
28633  PVOID *__cil_tmp20 ;
28634  LONG *__cil_tmp21 ;
28635  void *__cil_tmp22 ;
28636  long __cil_tmp23 ;
28637  void *__cil_tmp24 ;
28638  unsigned int __cil_tmp25 ;
28639  unsigned int __cil_tmp26 ;
28640  unsigned int __cil_tmp27 ;
28641  unsigned int __cil_tmp28 ;
28642  unsigned int __cil_tmp29 ;
28643  KSPIN_LOCK *__cil_tmp30 ;
28644  void *__cil_tmp31 ;
28645  unsigned int __cil_tmp32 ;
28646  unsigned int __cil_tmp33 ;
28647  unsigned int __cil_tmp34 ;
28648  unsigned int __cil_tmp35 ;
28649  unsigned int __cil_tmp36 ;
28650  unsigned int __cil_tmp37 ;
28651  unsigned int __cil_tmp38 ;
28652  struct _IO_STACK_LOCATION *__cil_tmp39 ;
28653  unsigned int __cil_tmp40 ;
28654  unsigned int __cil_tmp41 ;
28655  unsigned int __cil_tmp42 ;
28656  unsigned int __cil_tmp43 ;
28657  unsigned int __cil_tmp44 ;
28658  unsigned int __cil_tmp45 ;
28659  unsigned int __cil_tmp46 ;
28660  struct _IO_STACK_LOCATION *__cil_tmp47 ;
28661  unsigned int __cil_tmp48 ;
28662  unsigned int __cil_tmp49 ;
28663  UCHAR __cil_tmp50 ;
28664  int __cil_tmp51 ;
28665  int __cil_tmp52 ;
28666  unsigned int __cil_tmp53 ;
28667  unsigned int __cil_tmp54 ;
28668  LIST_ENTRY *__cil_tmp55 ;
28669  unsigned int __cil_tmp56 ;
28670  unsigned int __cil_tmp57 ;
28671  unsigned int __cil_tmp58 ;
28672  unsigned int __cil_tmp59 ;
28673  LIST_ENTRY *__cil_tmp60 ;
28674  unsigned int __cil_tmp61 ;
28675  unsigned int __cil_tmp62 ;
28676  KSPIN_LOCK *__cil_tmp63 ;
28677  KSPIN_LOCK *__cil_tmp64 ;
28678  BOOLEAN *mem_65 ;
28679  NTSTATUS *mem_66 ;
28680  ULONG_PTR *mem_67 ;
28681  NTSTATUS *mem_68 ;
28682  struct _IO_STACK_LOCATION **mem_69 ;
28683  struct _IO_STACK_LOCATION **mem_70 ;
28684  UCHAR *mem_71 ;
28685  UCHAR *mem_72 ;
28686
28687  {
28688  {
28689#line 6318
28690  ExAcquireFastMutex(PagingMutex);
28691#line 6318
28692  PagingReferenceCount = PagingReferenceCount + 1UL;
28693  }
28694#line 6318
28695  if (PagingReferenceCount == 1UL) {
28696    {
28697#line 6318
28698    __cil_tmp6 = (void *)(& DriverEntry);
28699#line 6318
28700    MmResetDriverPaging(__cil_tmp6);
28701    }
28702  } else {
28703
28704  }
28705  {
28706#line 6318
28707  ExReleaseFastMutex(PagingMutex);
28708#line 6333
28709  __cil_tmp7 = (KSPIN_LOCK *)DisketteExtension;
28710#line 6333
28711  oldIrql = KfAcquireSpinLock(__cil_tmp7);
28712#line 6335
28713  __cil_tmp8 = (unsigned int )Irp;
28714#line 6335
28715  __cil_tmp9 = __cil_tmp8 + 56;
28716#line 6335
28717  __cil_tmp10 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp9;
28718#line 6335
28719  __cil_tmp11 = (PVOID *)__cil_tmp10;
28720#line 6335
28721  __cil_tmp12 = (LONG *)__cil_tmp11;
28722#line 6335
28723  __cil_tmp13 = (void *)(& FloppyCancelQueuedRequest);
28724#line 6335
28725  __cil_tmp14 = (long )__cil_tmp13;
28726#line 6335
28727  InterlockedExchange(__cil_tmp12, __cil_tmp14);
28728  }
28729  {
28730#line 6340
28731  __cil_tmp15 = (unsigned int )Irp;
28732#line 6340
28733  __cil_tmp16 = __cil_tmp15 + 36;
28734  {
28735#line 6340
28736  mem_65 = (BOOLEAN *)__cil_tmp16;
28737#line 6340
28738  if (*mem_65) {
28739    {
28740#line 6340
28741    __cil_tmp17 = (unsigned int )Irp;
28742#line 6340
28743    __cil_tmp18 = __cil_tmp17 + 56;
28744#line 6340
28745    __cil_tmp19 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp18;
28746#line 6340
28747    __cil_tmp20 = (PVOID *)__cil_tmp19;
28748#line 6340
28749    __cil_tmp21 = (LONG *)__cil_tmp20;
28750#line 6340
28751    __cil_tmp22 = (void *)0;
28752#line 6340
28753    __cil_tmp23 = (long )__cil_tmp22;
28754#line 6340
28755    tmp = InterlockedExchange(__cil_tmp21, __cil_tmp23);
28756    }
28757    {
28758#line 6340
28759    __cil_tmp24 = (void *)tmp;
28760#line 6340
28761    if ((void (*)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp24) {
28762      {
28763#line 6345
28764      __cil_tmp25 = (unsigned int )Irp;
28765#line 6345
28766      __cil_tmp26 = __cil_tmp25 + 24;
28767#line 6345
28768      mem_66 = (NTSTATUS *)__cil_tmp26;
28769#line 6345
28770      *mem_66 = -1073741536L;
28771#line 6346
28772      myStatus = -1073741536L;
28773#line 6347
28774      __cil_tmp27 = 24 + 4;
28775#line 6347
28776      __cil_tmp28 = (unsigned int )Irp;
28777#line 6347
28778      __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
28779#line 6347
28780      mem_67 = (ULONG_PTR *)__cil_tmp29;
28781#line 6347
28782      *mem_67 = 0UL;
28783#line 6348
28784      __cil_tmp30 = (KSPIN_LOCK *)DisketteExtension;
28785#line 6348
28786      KfReleaseSpinLock(__cil_tmp30, oldIrql);
28787#line 6349
28788      IofCompleteRequest(Irp, (char)0);
28789#line 6351
28790      ExAcquireFastMutex(PagingMutex);
28791#line 6351
28792      PagingReferenceCount = PagingReferenceCount - 1UL;
28793      }
28794#line 6351
28795      if (PagingReferenceCount == 0UL) {
28796        {
28797#line 6351
28798        __cil_tmp31 = (void *)(& DriverEntry);
28799#line 6351
28800        MmPageEntireDriver(__cil_tmp31);
28801        }
28802      } else {
28803
28804      }
28805      {
28806#line 6351
28807      ExReleaseFastMutex(PagingMutex);
28808#line 6353
28809      ntStatus = -1073741536L;
28810      }
28811    } else {
28812      goto _L;
28813    }
28814    }
28815  } else {
28816    _L: 
28817#line 6359
28818    __cil_tmp32 = (unsigned int )Irp;
28819#line 6359
28820    __cil_tmp33 = __cil_tmp32 + 24;
28821#line 6359
28822    mem_68 = (NTSTATUS *)__cil_tmp33;
28823#line 6359
28824    *mem_68 = 259L;
28825#line 6360
28826    myStatus = 259L;
28827#line 6361
28828    __cil_tmp34 = 24 + 8;
28829#line 6361
28830    __cil_tmp35 = 0 + __cil_tmp34;
28831#line 6361
28832    __cil_tmp36 = 64 + __cil_tmp35;
28833#line 6361
28834    __cil_tmp37 = (unsigned int )Irp;
28835#line 6361
28836    __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
28837#line 6361
28838    mem_69 = (struct _IO_STACK_LOCATION **)__cil_tmp38;
28839#line 6361
28840    __cil_tmp39 = *mem_69;
28841#line 6361
28842    __cil_tmp40 = (unsigned int )__cil_tmp39;
28843#line 6361
28844    __cil_tmp41 = __cil_tmp40 + 3;
28845#line 6361
28846    __cil_tmp42 = 24 + 8;
28847#line 6361
28848    __cil_tmp43 = 0 + __cil_tmp42;
28849#line 6361
28850    __cil_tmp44 = 64 + __cil_tmp43;
28851#line 6361
28852    __cil_tmp45 = (unsigned int )Irp;
28853#line 6361
28854    __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
28855#line 6361
28856    mem_70 = (struct _IO_STACK_LOCATION **)__cil_tmp46;
28857#line 6361
28858    __cil_tmp47 = *mem_70;
28859#line 6361
28860    __cil_tmp48 = (unsigned int )__cil_tmp47;
28861#line 6361
28862    __cil_tmp49 = __cil_tmp48 + 3;
28863#line 6361
28864    mem_71 = (UCHAR *)__cil_tmp49;
28865#line 6361
28866    __cil_tmp50 = *mem_71;
28867#line 6361
28868    __cil_tmp51 = (int )__cil_tmp50;
28869#line 6361
28870    __cil_tmp52 = __cil_tmp51 | 1;
28871#line 6361
28872    mem_72 = (UCHAR *)__cil_tmp41;
28873#line 6361
28874    *mem_72 = (unsigned char )__cil_tmp52;
28875#line 6362
28876    if (pended == 0) {
28877#line 6362
28878      pended = 1;
28879    } else {
28880      {
28881#line 6362
28882      assert(0);
28883      }
28884    }
28885    {
28886#line 6363
28887    __cil_tmp53 = (unsigned int )DisketteExtension;
28888#line 6363
28889    __cil_tmp54 = __cil_tmp53 + 16;
28890#line 6363
28891    __cil_tmp55 = (LIST_ENTRY *)__cil_tmp54;
28892#line 6363
28893    __cil_tmp56 = 0 + 24;
28894#line 6363
28895    __cil_tmp57 = 64 + __cil_tmp56;
28896#line 6363
28897    __cil_tmp58 = (unsigned int )Irp;
28898#line 6363
28899    __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
28900#line 6363
28901    __cil_tmp60 = (LIST_ENTRY *)__cil_tmp59;
28902#line 6363
28903    __cil_tmp61 = (unsigned int )DisketteExtension;
28904#line 6363
28905    __cil_tmp62 = __cil_tmp61 + 24;
28906#line 6363
28907    __cil_tmp63 = (KSPIN_LOCK *)__cil_tmp62;
28908#line 6363
28909    ExfInterlockedInsertTailList(__cil_tmp55, __cil_tmp60, __cil_tmp63);
28910#line 6368
28911    __cil_tmp64 = (KSPIN_LOCK *)DisketteExtension;
28912#line 6368
28913    KfReleaseSpinLock(__cil_tmp64, oldIrql);
28914#line 6370
28915    ntStatus = 259L;
28916    }
28917  }
28918  }
28919  }
28920#line 6373
28921  return (ntStatus);
28922}
28923}
28924#line 6375 "floppy.c"
28925void FloppyCancelQueuedRequest(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
28926{ PDISKETTE_EXTENSION disketteExtension ;
28927  KIRQL oldIrql ;
28928  PLIST_ENTRY _EX_Blink ;
28929  PLIST_ENTRY _EX_Flink ;
28930  unsigned int __cil_tmp7 ;
28931  unsigned int __cil_tmp8 ;
28932  PVOID __cil_tmp9 ;
28933  KSPIN_LOCK *__cil_tmp10 ;
28934  unsigned int __cil_tmp11 ;
28935  unsigned int __cil_tmp12 ;
28936  unsigned int __cil_tmp13 ;
28937  unsigned int __cil_tmp14 ;
28938  unsigned int __cil_tmp15 ;
28939  unsigned int __cil_tmp16 ;
28940  unsigned int __cil_tmp17 ;
28941  unsigned int __cil_tmp18 ;
28942  unsigned int __cil_tmp19 ;
28943  unsigned int __cil_tmp20 ;
28944  unsigned int __cil_tmp21 ;
28945  unsigned int __cil_tmp22 ;
28946  unsigned int __cil_tmp23 ;
28947  unsigned int __cil_tmp24 ;
28948  unsigned int __cil_tmp25 ;
28949  unsigned int __cil_tmp26 ;
28950  unsigned int __cil_tmp27 ;
28951  unsigned int __cil_tmp28 ;
28952  unsigned int __cil_tmp29 ;
28953  unsigned int __cil_tmp30 ;
28954  unsigned int __cil_tmp31 ;
28955  KSPIN_LOCK *__cil_tmp32 ;
28956  unsigned int __cil_tmp33 ;
28957  unsigned int __cil_tmp34 ;
28958  KIRQL __cil_tmp35 ;
28959  void *__cil_tmp36 ;
28960  PVOID *mem_37 ;
28961  NTSTATUS *mem_38 ;
28962  ULONG_PTR *mem_39 ;
28963  struct _LIST_ENTRY **mem_40 ;
28964  struct _LIST_ENTRY **mem_41 ;
28965  struct _LIST_ENTRY **mem_42 ;
28966  struct _LIST_ENTRY **mem_43 ;
28967  struct _LIST_ENTRY **mem_44 ;
28968  KIRQL *mem_45 ;
28969
28970  {
28971#line 6402
28972  __cil_tmp7 = (unsigned int )DeviceObject;
28973#line 6402
28974  __cil_tmp8 = __cil_tmp7 + 40;
28975#line 6402
28976  mem_37 = (PVOID *)__cil_tmp8;
28977#line 6402
28978  __cil_tmp9 = *mem_37;
28979#line 6402
28980  disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp9;
28981  {
28982#line 6406
28983  while (1) {
28984    while_187_continue: /* CIL Label */ ;
28985    goto while_187_break;
28986  }
28987  while_187_break: /* CIL Label */ ;
28988  }
28989  {
28990#line 6409
28991  __cil_tmp10 = (KSPIN_LOCK *)disketteExtension;
28992#line 6409
28993  oldIrql = KfAcquireSpinLock(__cil_tmp10);
28994#line 6411
28995  __cil_tmp11 = (unsigned int )Irp;
28996#line 6411
28997  __cil_tmp12 = __cil_tmp11 + 24;
28998#line 6411
28999  mem_38 = (NTSTATUS *)__cil_tmp12;
29000#line 6411
29001  *mem_38 = -1073741536L;
29002#line 6412
29003  myStatus = -1073741536L;
29004#line 6413
29005  __cil_tmp13 = 24 + 4;
29006#line 6413
29007  __cil_tmp14 = (unsigned int )Irp;
29008#line 6413
29009  __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
29010#line 6413
29011  mem_39 = (ULONG_PTR *)__cil_tmp15;
29012#line 6413
29013  *mem_39 = 0UL;
29014  }
29015  {
29016#line 6417
29017  __cil_tmp16 = 0 + 24;
29018#line 6417
29019  __cil_tmp17 = 64 + __cil_tmp16;
29020#line 6417
29021  __cil_tmp18 = (unsigned int )Irp;
29022#line 6417
29023  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
29024  {
29025#line 6417
29026  mem_40 = (struct _LIST_ENTRY **)__cil_tmp19;
29027#line 6417
29028  if (*mem_40) {
29029#line 6418
29030    __cil_tmp20 = 0 + 24;
29031#line 6418
29032    __cil_tmp21 = 64 + __cil_tmp20;
29033#line 6418
29034    __cil_tmp22 = (unsigned int )Irp;
29035#line 6418
29036    __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
29037#line 6418
29038    mem_41 = (struct _LIST_ENTRY **)__cil_tmp23;
29039#line 6418
29040    _EX_Flink = *mem_41;
29041#line 6418
29042    __cil_tmp24 = 0 + 4;
29043#line 6418
29044    __cil_tmp25 = 24 + __cil_tmp24;
29045#line 6418
29046    __cil_tmp26 = 0 + __cil_tmp25;
29047#line 6418
29048    __cil_tmp27 = 64 + __cil_tmp26;
29049#line 6418
29050    __cil_tmp28 = (unsigned int )Irp;
29051#line 6418
29052    __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
29053#line 6418
29054    mem_42 = (struct _LIST_ENTRY **)__cil_tmp29;
29055#line 6418
29056    _EX_Blink = *mem_42;
29057#line 6418
29058    mem_43 = (struct _LIST_ENTRY **)_EX_Blink;
29059#line 6418
29060    *mem_43 = _EX_Flink;
29061#line 6418
29062    __cil_tmp30 = (unsigned int )_EX_Flink;
29063#line 6418
29064    __cil_tmp31 = __cil_tmp30 + 4;
29065#line 6418
29066    mem_44 = (struct _LIST_ENTRY **)__cil_tmp31;
29067#line 6418
29068    *mem_44 = _EX_Blink;
29069  } else {
29070
29071  }
29072  }
29073  }
29074  {
29075#line 6422
29076  __cil_tmp32 = (KSPIN_LOCK *)disketteExtension;
29077#line 6422
29078  KfReleaseSpinLock(__cil_tmp32, oldIrql);
29079#line 6424
29080  __cil_tmp33 = (unsigned int )Irp;
29081#line 6424
29082  __cil_tmp34 = __cil_tmp33 + 37;
29083#line 6424
29084  mem_45 = (KIRQL *)__cil_tmp34;
29085#line 6424
29086  __cil_tmp35 = *mem_45;
29087#line 6424
29088  IoReleaseCancelSpinLock(__cil_tmp35);
29089#line 6426
29090  IofCompleteRequest(Irp, (char)0);
29091#line 6428
29092  ExAcquireFastMutex(PagingMutex);
29093#line 6428
29094  PagingReferenceCount = PagingReferenceCount - 1UL;
29095  }
29096#line 6428
29097  if (PagingReferenceCount == 0UL) {
29098    {
29099#line 6428
29100    __cil_tmp36 = (void *)(& DriverEntry);
29101#line 6428
29102    MmPageEntireDriver(__cil_tmp36);
29103    }
29104  } else {
29105
29106  }
29107  {
29108#line 6428
29109  ExReleaseFastMutex(PagingMutex);
29110  }
29111#line 6432
29112  return;
29113}
29114}
29115#line 6432 "floppy.c"
29116void FloppyProcessQueuedRequests(PDISKETTE_EXTENSION DisketteExtension ) 
29117{ KIRQL oldIrql ;
29118  PLIST_ENTRY headOfList ;
29119  PIRP currentIrp ;
29120  PIO_STACK_LOCATION irpSp ;
29121  LONG tmp ;
29122  KSPIN_LOCK *__cil_tmp7 ;
29123  unsigned int __cil_tmp8 ;
29124  unsigned int __cil_tmp9 ;
29125  LIST_ENTRY *__cil_tmp10 ;
29126  unsigned int __cil_tmp11 ;
29127  unsigned int __cil_tmp12 ;
29128  KSPIN_LOCK *__cil_tmp13 ;
29129  void *__cil_tmp14 ;
29130  unsigned int __cil_tmp15 ;
29131  unsigned int __cil_tmp16 ;
29132  int __cil_tmp17 ;
29133  unsigned int __cil_tmp18 ;
29134  unsigned int __cil_tmp19 ;
29135  IRP *__cil_tmp20 ;
29136  unsigned int __cil_tmp21 ;
29137  unsigned int __cil_tmp22 ;
29138  LIST_ENTRY *__cil_tmp23 ;
29139  unsigned long __cil_tmp24 ;
29140  CHAR *__cil_tmp25 ;
29141  CHAR *__cil_tmp26 ;
29142  unsigned int __cil_tmp27 ;
29143  unsigned int __cil_tmp28 ;
29144  void (**__cil_tmp29)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
29145  PVOID *__cil_tmp30 ;
29146  LONG *__cil_tmp31 ;
29147  void *__cil_tmp32 ;
29148  long __cil_tmp33 ;
29149  void *__cil_tmp34 ;
29150  unsigned int __cil_tmp35 ;
29151  unsigned int __cil_tmp36 ;
29152  unsigned int __cil_tmp37 ;
29153  unsigned int __cil_tmp38 ;
29154  unsigned int __cil_tmp39 ;
29155  unsigned int __cil_tmp40 ;
29156  unsigned int __cil_tmp41 ;
29157  unsigned int __cil_tmp42 ;
29158  unsigned int __cil_tmp43 ;
29159  void *__cil_tmp44 ;
29160  void *__cil_tmp45 ;
29161  KSPIN_LOCK *__cil_tmp46 ;
29162  unsigned int __cil_tmp47 ;
29163  unsigned int __cil_tmp48 ;
29164  unsigned int __cil_tmp49 ;
29165  unsigned int __cil_tmp50 ;
29166  unsigned int __cil_tmp51 ;
29167  unsigned int __cil_tmp52 ;
29168  unsigned int __cil_tmp53 ;
29169  UCHAR __cil_tmp54 ;
29170  NTSTATUS (*__cil_tmp55)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29171  unsigned int __cil_tmp56 ;
29172  unsigned int __cil_tmp57 ;
29173  PDEVICE_OBJECT __cil_tmp58 ;
29174  NTSTATUS (*__cil_tmp59)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29175  unsigned int __cil_tmp60 ;
29176  unsigned int __cil_tmp61 ;
29177  PDEVICE_OBJECT __cil_tmp62 ;
29178  unsigned int __cil_tmp63 ;
29179  unsigned int __cil_tmp64 ;
29180  unsigned int __cil_tmp65 ;
29181  unsigned int __cil_tmp66 ;
29182  unsigned int __cil_tmp67 ;
29183  void *__cil_tmp68 ;
29184  KSPIN_LOCK *__cil_tmp69 ;
29185  KSPIN_LOCK *__cil_tmp70 ;
29186  struct _IO_STACK_LOCATION **mem_71 ;
29187  struct _LIST_ENTRY **mem_72 ;
29188  BOOLEAN *mem_73 ;
29189  ULONG_PTR *mem_74 ;
29190  NTSTATUS *mem_75 ;
29191  UCHAR *mem_76 ;
29192  PDEVICE_OBJECT *mem_77 ;
29193  PDEVICE_OBJECT *mem_78 ;
29194  ULONG_PTR *mem_79 ;
29195  NTSTATUS *mem_80 ;
29196
29197  {
29198  {
29199#line 6470
29200  __cil_tmp7 = (KSPIN_LOCK *)DisketteExtension;
29201#line 6470
29202  oldIrql = KfAcquireSpinLock(__cil_tmp7);
29203  }
29204  {
29205#line 6471
29206  while (1) {
29207    while_188_continue: /* CIL Label */ ;
29208    {
29209#line 6471
29210    __cil_tmp8 = (unsigned int )DisketteExtension;
29211#line 6471
29212    __cil_tmp9 = __cil_tmp8 + 16;
29213#line 6471
29214    __cil_tmp10 = (LIST_ENTRY *)__cil_tmp9;
29215#line 6471
29216    __cil_tmp11 = (unsigned int )DisketteExtension;
29217#line 6471
29218    __cil_tmp12 = __cil_tmp11 + 24;
29219#line 6471
29220    __cil_tmp13 = (KSPIN_LOCK *)__cil_tmp12;
29221#line 6471
29222    headOfList = ExfInterlockedRemoveHeadList(__cil_tmp10, __cil_tmp13);
29223    }
29224    {
29225#line 6471
29226    __cil_tmp14 = (void *)0;
29227#line 6471
29228    __cil_tmp15 = (unsigned int )__cil_tmp14;
29229#line 6471
29230    __cil_tmp16 = (unsigned int )headOfList;
29231#line 6471
29232    __cil_tmp17 = __cil_tmp16 != __cil_tmp15;
29233#line 6471
29234    if (! __cil_tmp17) {
29235      goto while_188_break;
29236    } else {
29237
29238    }
29239    }
29240    {
29241#line 6475
29242    __cil_tmp18 = 0 + 24;
29243#line 6475
29244    __cil_tmp19 = 64 + __cil_tmp18;
29245#line 6475
29246    __cil_tmp20 = (IRP *)0;
29247#line 6475
29248    __cil_tmp21 = (unsigned int )__cil_tmp20;
29249#line 6475
29250    __cil_tmp22 = __cil_tmp21 + __cil_tmp19;
29251#line 6475
29252    __cil_tmp23 = (LIST_ENTRY *)__cil_tmp22;
29253#line 6475
29254    __cil_tmp24 = (unsigned long )__cil_tmp23;
29255#line 6475
29256    __cil_tmp25 = (CHAR *)headOfList;
29257#line 6475
29258    __cil_tmp26 = __cil_tmp25 - __cil_tmp24;
29259#line 6475
29260    currentIrp = (IRP *)__cil_tmp26;
29261#line 6479
29262    __cil_tmp27 = (unsigned int )currentIrp;
29263#line 6479
29264    __cil_tmp28 = __cil_tmp27 + 56;
29265#line 6479
29266    __cil_tmp29 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp28;
29267#line 6479
29268    __cil_tmp30 = (PVOID *)__cil_tmp29;
29269#line 6479
29270    __cil_tmp31 = (LONG *)__cil_tmp30;
29271#line 6479
29272    __cil_tmp32 = (void *)0;
29273#line 6479
29274    __cil_tmp33 = (long )__cil_tmp32;
29275#line 6479
29276    tmp = InterlockedExchange(__cil_tmp31, __cil_tmp33);
29277    }
29278    {
29279#line 6479
29280    __cil_tmp34 = (void *)tmp;
29281#line 6479
29282    if ((void (*)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp34) {
29283#line 6480
29284      __cil_tmp35 = 24 + 8;
29285#line 6480
29286      __cil_tmp36 = 0 + __cil_tmp35;
29287#line 6480
29288      __cil_tmp37 = 64 + __cil_tmp36;
29289#line 6480
29290      __cil_tmp38 = (unsigned int )currentIrp;
29291#line 6480
29292      __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
29293#line 6480
29294      mem_71 = (struct _IO_STACK_LOCATION **)__cil_tmp39;
29295#line 6480
29296      irpSp = *mem_71;
29297    } else {
29298#line 6487
29299      __cil_tmp40 = 0 + 24;
29300#line 6487
29301      __cil_tmp41 = 64 + __cil_tmp40;
29302#line 6487
29303      __cil_tmp42 = (unsigned int )currentIrp;
29304#line 6487
29305      __cil_tmp43 = __cil_tmp42 + __cil_tmp41;
29306#line 6487
29307      __cil_tmp44 = (void *)0;
29308#line 6487
29309      mem_72 = (struct _LIST_ENTRY **)__cil_tmp43;
29310#line 6487
29311      *mem_72 = (struct _LIST_ENTRY *)__cil_tmp44;
29312#line 6488
29313      __cil_tmp45 = (void *)0;
29314#line 6488
29315      currentIrp = (struct _IRP *)__cil_tmp45;
29316    }
29317    }
29318    {
29319#line 6492
29320    __cil_tmp46 = (KSPIN_LOCK *)DisketteExtension;
29321#line 6492
29322    KfReleaseSpinLock(__cil_tmp46, oldIrql);
29323    }
29324#line 6494
29325    if (currentIrp) {
29326      {
29327#line 6495
29328      __cil_tmp47 = (unsigned int )DisketteExtension;
29329#line 6495
29330      __cil_tmp48 = __cil_tmp47 + 13;
29331      {
29332#line 6495
29333      mem_73 = (BOOLEAN *)__cil_tmp48;
29334#line 6495
29335      if (*mem_73) {
29336        {
29337#line 6499
29338        __cil_tmp49 = 24 + 4;
29339#line 6499
29340        __cil_tmp50 = (unsigned int )currentIrp;
29341#line 6499
29342        __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
29343#line 6499
29344        mem_74 = (ULONG_PTR *)__cil_tmp51;
29345#line 6499
29346        *mem_74 = 0UL;
29347#line 6500
29348        __cil_tmp52 = (unsigned int )currentIrp;
29349#line 6500
29350        __cil_tmp53 = __cil_tmp52 + 24;
29351#line 6500
29352        mem_75 = (NTSTATUS *)__cil_tmp53;
29353#line 6500
29354        *mem_75 = -1073741738L;
29355#line 6501
29356        IofCompleteRequest(currentIrp, (char)0);
29357        }
29358      } else {
29359        {
29360#line 6505
29361        mem_76 = (UCHAR *)irpSp;
29362#line 6505
29363        __cil_tmp54 = *mem_76;
29364#line 6506
29365        if ((int )__cil_tmp54 == 3) {
29366          goto switch_189_3;
29367        } else {
29368#line 6507
29369          if ((int )__cil_tmp54 == 4) {
29370            goto switch_189_4;
29371          } else {
29372#line 6512
29373            if ((int )__cil_tmp54 == 14) {
29374              goto switch_189_14;
29375            } else {
29376              {
29377              goto switch_189_default;
29378#line 6505
29379              if (0) {
29380                switch_189_3: /* CIL Label */ ;
29381                switch_189_4: /* CIL Label */ 
29382                {
29383#line 6510
29384                __cil_tmp55 = & FloppyReadWrite;
29385#line 6510
29386                __cil_tmp56 = (unsigned int )DisketteExtension;
29387#line 6510
29388                __cil_tmp57 = __cil_tmp56 + 28;
29389#line 6510
29390                mem_77 = (PDEVICE_OBJECT *)__cil_tmp57;
29391#line 6510
29392                __cil_tmp58 = *mem_77;
29393#line 6510
29394                (*__cil_tmp55)(__cil_tmp58, currentIrp);
29395                }
29396                goto switch_189_break;
29397                switch_189_14: /* CIL Label */ 
29398                {
29399#line 6515
29400                __cil_tmp59 = & FloppyDeviceControl;
29401#line 6515
29402                __cil_tmp60 = (unsigned int )DisketteExtension;
29403#line 6515
29404                __cil_tmp61 = __cil_tmp60 + 28;
29405#line 6515
29406                mem_78 = (PDEVICE_OBJECT *)__cil_tmp61;
29407#line 6515
29408                __cil_tmp62 = *mem_78;
29409#line 6515
29410                (*__cil_tmp59)(__cil_tmp62, currentIrp);
29411                }
29412                goto switch_189_break;
29413                switch_189_default: /* CIL Label */ 
29414                {
29415#line 6520
29416                __cil_tmp63 = 24 + 4;
29417#line 6520
29418                __cil_tmp64 = (unsigned int )currentIrp;
29419#line 6520
29420                __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
29421#line 6520
29422                mem_79 = (ULONG_PTR *)__cil_tmp65;
29423#line 6520
29424                *mem_79 = 0UL;
29425#line 6521
29426                __cil_tmp66 = (unsigned int )currentIrp;
29427#line 6521
29428                __cil_tmp67 = __cil_tmp66 + 24;
29429#line 6521
29430                mem_80 = (NTSTATUS *)__cil_tmp67;
29431#line 6521
29432                *mem_80 = -1073741823L;
29433#line 6522
29434                IofCompleteRequest(currentIrp, (char)0);
29435                }
29436              } else {
29437                switch_189_break: /* CIL Label */ ;
29438              }
29439              }
29440            }
29441          }
29442        }
29443        }
29444      }
29445      }
29446      }
29447    } else {
29448
29449    }
29450#line 6527
29451    if (currentIrp) {
29452      {
29453#line 6531
29454      ExAcquireFastMutex(PagingMutex);
29455#line 6531
29456      PagingReferenceCount = PagingReferenceCount - 1UL;
29457      }
29458#line 6531
29459      if (PagingReferenceCount == 0UL) {
29460        {
29461#line 6531
29462        __cil_tmp68 = (void *)(& DriverEntry);
29463#line 6531
29464        MmPageEntireDriver(__cil_tmp68);
29465        }
29466      } else {
29467
29468      }
29469      {
29470#line 6531
29471      ExReleaseFastMutex(PagingMutex);
29472      }
29473    } else {
29474
29475    }
29476    {
29477#line 6535
29478    __cil_tmp69 = (KSPIN_LOCK *)DisketteExtension;
29479#line 6535
29480    oldIrql = KfAcquireSpinLock(__cil_tmp69);
29481    }
29482  }
29483  while_188_break: /* CIL Label */ ;
29484  }
29485  {
29486#line 6540
29487  __cil_tmp70 = (KSPIN_LOCK *)DisketteExtension;
29488#line 6540
29489  KfReleaseSpinLock(__cil_tmp70, oldIrql);
29490  }
29491#line 6544
29492  return;
29493}
29494}
29495#line 832 "C:/NTDDK/inc/ntdef.h"
29496#pragma warning(push)
29497#line 834
29498#pragma warning(disable:4035)
29499#line 835 "C:/NTDDK/inc/ntdef.h"
29500__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShllMod32___1)(ULONGLONG Value ,
29501                                                                      ULONG ShiftCount ) 
29502{ 
29503
29504  {
29505#line 850
29506  return (0ULL);
29507}
29508}
29509#line 845 "C:/NTDDK/inc/ntdef.h"
29510__inline LONGLONG ( __attribute__((__stdcall__)) Int64ShraMod32___1)(LONGLONG Value ,
29511                                                                     ULONG ShiftCount ) 
29512{ 
29513
29514  {
29515#line 860
29516  return (0LL);
29517}
29518}
29519#line 855 "C:/NTDDK/inc/ntdef.h"
29520__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShrlMod32___1)(ULONGLONG Value ,
29521                                                                      ULONG ShiftCount ) 
29522{ 
29523
29524  {
29525#line 870
29526  return (0ULL);
29527}
29528}
29529#line 873
29530#pragma warning(pop)
29531#line 25 "C:/NTDDK/inc/pshpack4.h"
29532#pragma warning(disable:4103)
29533#line 28 "C:/NTDDK/inc/poppack.h"
29534#pragma warning(disable:4103)
29535#line 1953 "C:/NTDDK/inc/ddk/ntddk.h"
29536#pragma warning(push)
29537#line 1955
29538#pragma warning(disable:4035)
29539#line 2020
29540#pragma warning(pop)
29541#line 5253
29542#pragma warning(disable:4035)
29543#line 7015
29544#pragma warning(push)
29545#line 7017
29546#pragma warning(disable:4164)
29547#line 7020
29548#pragma function(_enable)
29549#line 7021
29550#pragma function(_disable)
29551#line 7025
29552#pragma warning(pop)
29553#line 25 "C:/NTDDK/inc/pshpack4.h"
29554#pragma warning(disable:4103)
29555#line 28 "C:/NTDDK/inc/poppack.h"
29556#pragma warning(disable:4103)
29557#line 25 "C:/NTDDK/inc/pshpack1.h"
29558#pragma warning(disable:4103)
29559#line 28 "C:/NTDDK/inc/poppack.h"
29560#pragma warning(disable:4103)
29561#line 25 "C:/NTDDK/inc/pshpack4.h"
29562#pragma warning(disable:4103)
29563#line 28 "C:/NTDDK/inc/poppack.h"
29564#pragma warning(disable:4103)
29565#line 17779 "C:/NTDDK/inc/ddk/ntddk.h"
29566#pragma warning(disable:4200)
29567#line 17785
29568#pragma warning(default:4200)
29569#line 37 "../slam-kernel.c"
29570IRP *pirp  ;
29571#line 39 "../slam-kernel.c"
29572void stub_driver_init(void) 
29573{ 
29574
29575  {
29576#line 41
29577  s = 1;
29578#line 46
29579  pended = 0;
29580#line 47
29581  compFptr = (NTSTATUS (*)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))0;
29582#line 48
29583  compRegistered = 0;
29584#line 49
29585  lowerDriverReturn = 0;
29586#line 50
29587  setEventCalled = 0;
29588#line 51
29589  customIrp = 0;
29590#line 54
29591  return;
29592}
29593}
29594#line 48 "../slam-kernel.c"
29595int main(void) 
29596{ DRIVER_OBJECT d ;
29597  UNICODE_STRING u ;
29598  NTSTATUS status ;
29599  int we_should_unload ;
29600  IRP irp ;
29601  int __BLAST_NONDET = __VERIFIER_nondet_int() ;
29602  int irp_choice = __VERIFIER_nondet_int() ;
29603  DEVICE_OBJECT devobj ;
29604  NTSTATUS (*__cil_tmp9)(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) ;
29605  unsigned int __cil_tmp10 ;
29606  unsigned int __cil_tmp11 ;
29607  unsigned int __cil_tmp12 ;
29608  unsigned int __cil_tmp13 ;
29609  int __cil_tmp14 ;
29610  NTSTATUS (*__cil_tmp15)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29611  NTSTATUS (*__cil_tmp16)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29612  NTSTATUS (*__cil_tmp17)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29613  NTSTATUS (*__cil_tmp18)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29614  NTSTATUS (*__cil_tmp19)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29615  void (*__cil_tmp20)(PDRIVER_OBJECT DriverObject ) ;
29616  int __cil_tmp21 ;
29617  int __cil_tmp22 ;
29618  long __cil_tmp23 ;
29619  NTSTATUS *mem_24 ;
29620  NTSTATUS *mem_25 ;
29621
29622  {
29623  {
29624#line 51
29625  status = 0L;
29626#line 54
29627  pirp = & irp;
29628#line 56
29629  __cil_tmp9 = & DriverEntry;
29630#line 56
29631  status = (*__cil_tmp9)(& d, & u);
29632  }
29633#line 58
29634  if (status >= 0L) {
29635#line 71
29636    s = 1;
29637#line 72
29638    customIrp = 0;
29639#line 72
29640    setEventCalled = customIrp;
29641#line 72
29642    lowerDriverReturn = setEventCalled;
29643#line 72
29644    compRegistered = lowerDriverReturn;
29645#line 72
29646    compFptr = (NTSTATUS (*)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))compRegistered;
29647#line 72
29648    pended = (int )compFptr;
29649#line 75
29650    __cil_tmp10 = (unsigned int )pirp;
29651#line 75
29652    __cil_tmp11 = __cil_tmp10 + 24;
29653#line 75
29654    mem_24 = (NTSTATUS *)__cil_tmp11;
29655#line 75
29656    *mem_24 = 0L;
29657#line 76
29658    myStatus = 0L;
29659#line 77
29660    if (irp_choice == 0) {
29661#line 77
29662      __cil_tmp12 = (unsigned int )pirp;
29663#line 77
29664      __cil_tmp13 = __cil_tmp12 + 24;
29665#line 77
29666      mem_25 = (NTSTATUS *)__cil_tmp13;
29667#line 77
29668      *mem_25 = -1073741637L;
29669#line 78
29670      myStatus = -1073741637L;
29671    } else {
29672
29673    }
29674    {
29675#line 82
29676    stub_driver_init();
29677    }
29678    {
29679#line 84
29680    __cil_tmp14 = status >= 0L;
29681#line 84
29682    if (! __cil_tmp14) {
29683#line 84
29684      return (-1);
29685    } else {
29686
29687    }
29688    }
29689#line 89
29690    if (__BLAST_NONDET == 0) {
29691      goto switch_190_0;
29692    } else {
29693#line 94
29694      if (__BLAST_NONDET == 1) {
29695        goto switch_190_1;
29696      } else {
29697#line 100
29698        if (__BLAST_NONDET == 2) {
29699          goto switch_190_2;
29700        } else {
29701#line 106
29702          if (__BLAST_NONDET == 3) {
29703            goto switch_190_3;
29704          } else {
29705#line 112
29706            if (__BLAST_NONDET == 4) {
29707              goto switch_190_4;
29708            } else {
29709              {
29710              goto switch_190_default;
29711#line 88
29712              if (0) {
29713                switch_190_0: /* CIL Label */ 
29714                {
29715#line 92
29716                __cil_tmp15 = & FloppyCreateClose;
29717#line 92
29718                status = (*__cil_tmp15)(& devobj, pirp);
29719                }
29720                goto switch_190_break;
29721                switch_190_1: /* CIL Label */ 
29722                {
29723#line 98
29724                __cil_tmp16 = & FloppyCreateClose;
29725#line 98
29726                status = (*__cil_tmp16)(& devobj, pirp);
29727                }
29728                goto switch_190_break;
29729                switch_190_2: /* CIL Label */ 
29730                {
29731#line 104
29732                __cil_tmp17 = & FloppyDeviceControl;
29733#line 104
29734                status = (*__cil_tmp17)(& devobj, pirp);
29735                }
29736                goto switch_190_break;
29737                switch_190_3: /* CIL Label */ 
29738                {
29739#line 110
29740                __cil_tmp18 = & FloppyPnp;
29741#line 110
29742                status = (*__cil_tmp18)(& devobj, pirp);
29743                }
29744                goto switch_190_break;
29745                switch_190_4: /* CIL Label */ 
29746                {
29747#line 116
29748                __cil_tmp19 = & FloppyPower;
29749#line 116
29750                status = (*__cil_tmp19)(& devobj, pirp);
29751                }
29752                goto switch_190_break;
29753                switch_190_default: /* CIL Label */ ;
29754#line 180
29755                return (-1);
29756              } else {
29757                switch_190_break: /* CIL Label */ ;
29758              }
29759              }
29760            }
29761          }
29762        }
29763      }
29764    }
29765#line 185
29766    if (we_should_unload) {
29767      {
29768#line 187
29769      __cil_tmp20 = & FloppyUnload;
29770#line 187
29771      (*__cil_tmp20)(& d);
29772      }
29773    } else {
29774
29775    }
29776  } else {
29777
29778  }
29779#line 192
29780  if (pended == 1) {
29781#line 192
29782    if (s == 1) {
29783#line 193
29784      s = 1;
29785    } else {
29786      goto _L___2;
29787    }
29788  } else {
29789    _L___2: 
29790#line 195
29791    if (pended == 1) {
29792#line 195
29793      if (s == 6) {
29794#line 196
29795        s = 6;
29796      } else {
29797        goto _L___1;
29798      }
29799    } else {
29800      _L___1: 
29801      {
29802#line 198
29803      __cil_tmp21 = s == 0;
29804#line 198
29805      if (! __cil_tmp21) {
29806        {
29807#line 198
29808        __cil_tmp22 = status == -1L;
29809#line 198
29810        if (! __cil_tmp22) {
29811#line 201
29812          if (s != 4) {
29813#line 201
29814            if (s != 7) {
29815#line 201
29816              if (s != 2) {
29817
29818              } else {
29819                goto _L___0;
29820              }
29821            } else {
29822              goto _L___0;
29823            }
29824          } else {
29825            _L___0: 
29826#line 203
29827            if (pended == 1) {
29828#line 204
29829              if (status != 259L) {
29830#line 204
29831                status = 0L;
29832              } else {
29833
29834              }
29835            } else {
29836#line 206
29837              if (s == 2) {
29838#line 207
29839                if (status == 259L) {
29840                  {
29841#line 207
29842                  assert(0);
29843                  }
29844                } else {
29845
29846                }
29847              } else {
29848                {
29849#line 209
29850                __cil_tmp23 = (long )lowerDriverReturn;
29851#line 209
29852                if (status != __cil_tmp23) {
29853                  {
29854#line 209
29855                  assert(0);
29856                  }
29857                } else {
29858
29859                }
29860                }
29861              }
29862            }
29863          }
29864        } else {
29865
29866        }
29867        }
29868      } else {
29869
29870      }
29871      }
29872    }
29873  }
29874#line 216
29875  status = 0L;
29876#line 217
29877  return ((int )status);
29878}
29879}
29880#line 220 "../slam-kernel.c"
29881char _SLAM_alloc_dummy  ;
29882#line 222 "../slam-kernel.c"
29883char *malloc(int i ) 
29884{ 
29885
29886  {
29887#line 222
29888  return (& _SLAM_alloc_dummy);
29889}
29890}
29891#line 230
29892 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) ;
29893#line 230 "../slam-kernel.c"
29894void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) 
29895{ 
29896
29897  {
29898#line 239
29899  return;
29900}
29901}
29902#line 240
29903 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) ;
29904#line 240 "../slam-kernel.c"
29905void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) 
29906{ 
29907
29908  {
29909#line 249
29910  return;
29911}
29912}
29913#line 264
29914 __attribute__((__dllimport__)) PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType ,
29915                                                                                            SIZE_T NumberOfBytes ,
29916                                                                                            ULONG Tag ) ;
29917#line 264 "../slam-kernel.c"
29918PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType , SIZE_T NumberOfBytes ,
29919                                                            ULONG Tag ) 
29920{ PVOID x ;
29921  char *tmp ;
29922  int __cil_tmp6 ;
29923
29924  {
29925  {
29926#line 274
29927  __cil_tmp6 = (int )NumberOfBytes;
29928#line 274
29929  tmp = malloc(__cil_tmp6);
29930#line 274
29931  x = (void *)tmp;
29932  }
29933#line 275
29934  return (x);
29935}
29936}
29937#line 279
29938 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) ;
29939#line 279 "../slam-kernel.c"
29940void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) 
29941{ 
29942
29943  {
29944#line 287
29945  return;
29946}
29947}
29948#line 288
29949 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead ,
29950                                                                                                          PLIST_ENTRY ListEntry ,
29951                                                                                                          PKSPIN_LOCK Lock ) ;
29952#line 288 "../slam-kernel.c"
29953PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead ,
29954                                                                          PLIST_ENTRY ListEntry ,
29955                                                                          PKSPIN_LOCK Lock ) 
29956{ void *__cil_tmp4 ;
29957
29958  {
29959  {
29960#line 296
29961  __cil_tmp4 = (void *)0;
29962#line 296
29963  return ((struct _LIST_ENTRY *)__cil_tmp4);
29964  }
29965}
29966}
29967#line 299
29968 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead ,
29969                                                                                                          PLIST_ENTRY ListEntry ,
29970                                                                                                          PKSPIN_LOCK Lock ) ;
29971#line 299 "../slam-kernel.c"
29972PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead ,
29973                                                                          PLIST_ENTRY ListEntry ,
29974                                                                          PKSPIN_LOCK Lock ) 
29975{ void *__cil_tmp4 ;
29976
29977  {
29978  {
29979#line 308
29980  __cil_tmp4 = (void *)0;
29981#line 308
29982  return ((struct _LIST_ENTRY *)__cil_tmp4);
29983  }
29984}
29985}
29986#line 311
29987 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead ,
29988                                                                                                          PKSPIN_LOCK Lock ) ;
29989#line 311 "../slam-kernel.c"
29990PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead ,
29991                                                                          PKSPIN_LOCK Lock ) 
29992{ void *__cil_tmp3 ;
29993
29994  {
29995  {
29996#line 319
29997  __cil_tmp3 = (void *)0;
29998#line 319
29999  return ((struct _LIST_ENTRY *)__cil_tmp3);
30000  }
30001}
30002}
30003#line 335
30004 __attribute__((__dllimport__)) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length ,
30005                                                   BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota ,
30006                                                   PIRP Irp ) ;
30007#line 335 "../slam-kernel.c"
30008PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length , BOOLEAN SecondaryBuffer ,
30009                   BOOLEAN ChargeQuota , PIRP Irp ) 
30010{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30011  char *tmp ;
30012  int __cil_tmp8 ;
30013  void *__cil_tmp9 ;
30014  void *__cil_tmp10 ;
30015
30016  {
30017#line 347
30018  if (__BLAST_NONDET == 0) {
30019    goto switch_191_0;
30020  } else {
30021    {
30022    goto switch_191_default;
30023#line 346
30024    if (0) {
30025      switch_191_0: /* CIL Label */ 
30026      {
30027#line 347
30028      __cil_tmp8 = (int )28U;
30029#line 347
30030      tmp = malloc(__cil_tmp8);
30031      }
30032      {
30033#line 347
30034      __cil_tmp9 = (void *)tmp;
30035#line 347
30036      return ((struct _MDL *)__cil_tmp9);
30037      }
30038      switch_191_default: /* CIL Label */ ;
30039      {
30040#line 348
30041      __cil_tmp10 = (void *)0;
30042#line 348
30043      return ((struct _MDL *)__cil_tmp10);
30044      }
30045    } else {
30046      switch_191_break: /* CIL Label */ ;
30047    }
30048    }
30049  }
30050}
30051}
30052#line 352
30053 __attribute__((__dllimport__)) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice ,
30054                                                                           PDEVICE_OBJECT TargetDevice ) ;
30055#line 352 "../slam-kernel.c"
30056PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice ) 
30057{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30058  void *__cil_tmp4 ;
30059
30060  {
30061#line 361
30062  if (__BLAST_NONDET == 0) {
30063    goto switch_192_0;
30064  } else {
30065    {
30066    goto switch_192_default;
30067#line 360
30068    if (0) {
30069      switch_192_0: /* CIL Label */ ;
30070#line 361
30071      return (TargetDevice);
30072      switch_192_default: /* CIL Label */ ;
30073      {
30074#line 362
30075      __cil_tmp4 = (void *)0;
30076#line 362
30077      return ((struct _DEVICE_OBJECT *)__cil_tmp4);
30078      }
30079    } else {
30080      switch_192_break: /* CIL Label */ ;
30081    }
30082    }
30083  }
30084}
30085}
30086#line 366
30087 __attribute__((__dllimport__)) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction ,
30088                                                                   PDEVICE_OBJECT DeviceObject ,
30089                                                                   PVOID Buffer ,
30090                                                                   ULONG Length ,
30091                                                                   PLARGE_INTEGER StartingOffset ,
30092                                                                   PIO_STATUS_BLOCK IoStatusBlock ) ;
30093#line 366 "../slam-kernel.c"
30094PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject ,
30095                                   PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset ,
30096                                   PIO_STATUS_BLOCK IoStatusBlock ) 
30097{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30098  char *tmp ;
30099  int __cil_tmp9 ;
30100  void *__cil_tmp10 ;
30101  void *__cil_tmp11 ;
30102
30103  {
30104#line 378
30105  customIrp = 1;
30106#line 381
30107  if (__BLAST_NONDET == 0) {
30108    goto switch_193_0;
30109  } else {
30110    {
30111    goto switch_193_default;
30112#line 380
30113    if (0) {
30114      switch_193_0: /* CIL Label */ 
30115      {
30116#line 381
30117      __cil_tmp9 = (int )112U;
30118#line 381
30119      tmp = malloc(__cil_tmp9);
30120      }
30121      {
30122#line 381
30123      __cil_tmp10 = (void *)tmp;
30124#line 381
30125      return ((struct _IRP *)__cil_tmp10);
30126      }
30127      switch_193_default: /* CIL Label */ ;
30128      {
30129#line 382
30130      __cil_tmp11 = (void *)0;
30131#line 382
30132      return ((struct _IRP *)__cil_tmp11);
30133      }
30134    } else {
30135      switch_193_break: /* CIL Label */ ;
30136    }
30137    }
30138  }
30139}
30140}
30141#line 397
30142 __attribute__((__dllimport__)) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode ,
30143                                                                   PDEVICE_OBJECT DeviceObject ,
30144                                                                   PVOID InputBuffer ,
30145                                                                   ULONG InputBufferLength ,
30146                                                                   PVOID OutputBuffer ,
30147                                                                   ULONG OutputBufferLength ,
30148                                                                   BOOLEAN InternalDeviceIoControl ,
30149                                                                   PKEVENT Event ,
30150                                                                   PIO_STATUS_BLOCK IoStatusBlock ) ;
30151#line 397 "../slam-kernel.c"
30152PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode , PDEVICE_OBJECT DeviceObject ,
30153                                   PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer ,
30154                                   ULONG OutputBufferLength , BOOLEAN InternalDeviceIoControl ,
30155                                   PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock ) 
30156{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30157  char *tmp ;
30158  int __cil_tmp12 ;
30159  void *__cil_tmp13 ;
30160  void *__cil_tmp14 ;
30161
30162  {
30163#line 412
30164  customIrp = 1;
30165#line 415
30166  if (__BLAST_NONDET == 0) {
30167    goto switch_194_0;
30168  } else {
30169    {
30170    goto switch_194_default;
30171#line 414
30172    if (0) {
30173      switch_194_0: /* CIL Label */ 
30174      {
30175#line 415
30176      __cil_tmp12 = (int )112U;
30177#line 415
30178      tmp = malloc(__cil_tmp12);
30179      }
30180      {
30181#line 415
30182      __cil_tmp13 = (void *)tmp;
30183#line 415
30184      return ((struct _IRP *)__cil_tmp13);
30185      }
30186      switch_194_default: /* CIL Label */ ;
30187      {
30188#line 416
30189      __cil_tmp14 = (void *)0;
30190#line 416
30191      return ((struct _IRP *)__cil_tmp14);
30192      }
30193    } else {
30194      switch_194_break: /* CIL Label */ ;
30195    }
30196    }
30197  }
30198}
30199}
30200#line 420
30201 __attribute__((__dllimport__)) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject ,
30202                                                        ULONG DeviceExtensionSize ,
30203                                                        PUNICODE_STRING DeviceName ,
30204                                                        ULONG DeviceType , ULONG DeviceCharacteristics ,
30205                                                        BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) ;
30206#line 420 "../slam-kernel.c"
30207NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject , ULONG DeviceExtensionSize ,
30208                        PUNICODE_STRING DeviceName , ULONG DeviceType , ULONG DeviceCharacteristics ,
30209                        BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) 
30210{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30211  char *tmp ;
30212  int __cil_tmp10 ;
30213  void *__cil_tmp11 ;
30214
30215  {
30216#line 434
30217  if (__BLAST_NONDET == 0) {
30218    goto switch_195_0;
30219  } else {
30220    {
30221    goto switch_195_default;
30222#line 433
30223    if (0) {
30224      switch_195_0: /* CIL Label */ 
30225      {
30226#line 434
30227      __cil_tmp10 = (int )184U;
30228#line 434
30229      tmp = malloc(__cil_tmp10);
30230#line 434
30231      __cil_tmp11 = (void *)tmp;
30232#line 434
30233      *DeviceObject = (struct _DEVICE_OBJECT *)__cil_tmp11;
30234      }
30235#line 435
30236      return (0L);
30237      switch_195_default: /* CIL Label */ ;
30238#line 441
30239      return (-1073741823L);
30240    } else {
30241      switch_195_break: /* CIL Label */ ;
30242    }
30243    }
30244  }
30245}
30246}
30247#line 446
30248 __attribute__((__dllimport__)) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName ,
30249                                                              PUNICODE_STRING DeviceName ) ;
30250#line 446 "../slam-kernel.c"
30251NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName ) 
30252{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30253
30254  {
30255#line 455
30256  if (__BLAST_NONDET == 0) {
30257    goto switch_196_0;
30258  } else {
30259    {
30260    goto switch_196_default;
30261#line 454
30262    if (0) {
30263      switch_196_0: /* CIL Label */ ;
30264#line 455
30265      return (0L);
30266      switch_196_default: /* CIL Label */ ;
30267#line 456
30268      return (-1073741823L);
30269    } else {
30270      switch_196_break: /* CIL Label */ ;
30271    }
30272    }
30273  }
30274}
30275}
30276#line 460
30277 __attribute__((__dllimport__)) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ;
30278#line 460 "../slam-kernel.c"
30279void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) 
30280{ 
30281
30282  {
30283#line 464
30284  return;
30285}
30286}
30287#line 469
30288 __attribute__((__dllimport__)) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ;
30289#line 469 "../slam-kernel.c"
30290NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) 
30291{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30292
30293  {
30294#line 477
30295  if (__BLAST_NONDET == 0) {
30296    goto switch_197_0;
30297  } else {
30298    {
30299    goto switch_197_default;
30300#line 476
30301    if (0) {
30302      switch_197_0: /* CIL Label */ ;
30303#line 477
30304      return (0L);
30305      switch_197_default: /* CIL Label */ ;
30306#line 478
30307      return (-1073741823L);
30308    } else {
30309      switch_197_break: /* CIL Label */ ;
30310    }
30311    }
30312  }
30313}
30314}
30315#line 482
30316 __attribute__((__dllimport__)) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ;
30317#line 482 "../slam-kernel.c"
30318void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) 
30319{ 
30320
30321  {
30322#line 486
30323  return;
30324}
30325}
30326#line 491
30327 __attribute__((__dllimport__)) void IoFreeIrp(PIRP Irp ) ;
30328#line 491 "../slam-kernel.c"
30329void IoFreeIrp(PIRP Irp ) 
30330{ 
30331
30332  {
30333#line 495
30334  return;
30335}
30336}
30337#line 500
30338 __attribute__((__dllimport__)) void IoFreeMdl(PMDL Mdl ) ;
30339#line 500 "../slam-kernel.c"
30340void IoFreeMdl(PMDL Mdl ) 
30341{ 
30342
30343  {
30344#line 504
30345  return;
30346}
30347}
30348#line 509
30349 __attribute__((__dllimport__)) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) ;
30350#line 509 "../slam-kernel.c"
30351PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) 
30352{ char *tmp ;
30353  int __cil_tmp2 ;
30354  void *__cil_tmp3 ;
30355
30356  {
30357  {
30358#line 514
30359  __cil_tmp2 = (int )40U;
30360#line 514
30361  tmp = malloc(__cil_tmp2);
30362  }
30363  {
30364#line 514
30365  __cil_tmp3 = (void *)tmp;
30366#line 514
30367  return ((struct _CONFIGURATION_INFORMATION *)__cil_tmp3);
30368  }
30369}
30370}
30371#line 517
30372 __attribute__((__dllimport__)) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType ,
30373                                                                  PULONG BusNumber ,
30374                                                                  PCONFIGURATION_TYPE ControllerType ,
30375                                                                  PULONG ControllerNumber ,
30376                                                                  PCONFIGURATION_TYPE PeripheralType ,
30377                                                                  PULONG PeripheralNumber ,
30378                                                                  NTSTATUS (*CalloutRoutine)(PVOID Context ,
30379                                                                                             PUNICODE_STRING PathName ,
30380                                                                                             INTERFACE_TYPE BusType ,
30381                                                                                             ULONG BusNumber ,
30382                                                                                             PKEY_VALUE_FULL_INFORMATION *BusInformation ,
30383                                                                                             CONFIGURATION_TYPE ControllerType ,
30384                                                                                             ULONG ControllerNumber ,
30385                                                                                             PKEY_VALUE_FULL_INFORMATION *ControllerInformation ,
30386                                                                                             CONFIGURATION_TYPE PeripheralType ,
30387                                                                                             ULONG PeripheralNumber ,
30388                                                                                             PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ,
30389                                                                  PVOID Context ) ;
30390#line 517 "../slam-kernel.c"
30391NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType , PULONG BusNumber , PCONFIGURATION_TYPE ControllerType ,
30392                                  PULONG ControllerNumber , PCONFIGURATION_TYPE PeripheralType ,
30393                                  PULONG PeripheralNumber , NTSTATUS (*CalloutRoutine)(PVOID Context ,
30394                                                                                       PUNICODE_STRING PathName ,
30395                                                                                       INTERFACE_TYPE BusType ,
30396                                                                                       ULONG BusNumber ,
30397                                                                                       PKEY_VALUE_FULL_INFORMATION *BusInformation ,
30398                                                                                       CONFIGURATION_TYPE ControllerType ,
30399                                                                                       ULONG ControllerNumber ,
30400                                                                                       PKEY_VALUE_FULL_INFORMATION *ControllerInformation ,
30401                                                                                       CONFIGURATION_TYPE PeripheralType ,
30402                                                                                       ULONG PeripheralNumber ,
30403                                                                                       PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ,
30404                                  PVOID Context ) 
30405{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30406
30407  {
30408#line 532
30409  if (__BLAST_NONDET == 0) {
30410    goto switch_198_0;
30411  } else {
30412    {
30413    goto switch_198_default;
30414#line 531
30415    if (0) {
30416      switch_198_0: /* CIL Label */ ;
30417#line 532
30418      return (0L);
30419      switch_198_default: /* CIL Label */ ;
30420#line 533
30421      return (-1073741823L);
30422    } else {
30423      switch_198_break: /* CIL Label */ ;
30424    }
30425    }
30426  }
30427}
30428}
30429#line 537
30430 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject ,
30431                                                                                                   GUID const   *InterfaceClassGuid ,
30432                                                                                                   PUNICODE_STRING ReferenceString ,
30433                                                                                                   PUNICODE_STRING SymbolicLinkName ) ;
30434#line 537 "../slam-kernel.c"
30435NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject ,
30436                                                                   GUID const   *InterfaceClassGuid ,
30437                                                                   PUNICODE_STRING ReferenceString ,
30438                                                                   PUNICODE_STRING SymbolicLinkName ) 
30439{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30440
30441  {
30442#line 549
30443  if (__BLAST_NONDET == 0) {
30444    goto switch_199_0;
30445  } else {
30446    {
30447    goto switch_199_default;
30448#line 548
30449    if (0) {
30450      switch_199_0: /* CIL Label */ ;
30451#line 549
30452      return (0L);
30453      switch_199_default: /* CIL Label */ ;
30454#line 550
30455      return (-1073741808L);
30456    } else {
30457      switch_199_break: /* CIL Label */ ;
30458    }
30459    }
30460  }
30461}
30462}
30463#line 554
30464 __attribute__((__dllimport__)) void IoReleaseCancelSpinLock(KIRQL Irql ) ;
30465#line 554 "../slam-kernel.c"
30466void IoReleaseCancelSpinLock(KIRQL Irql ) 
30467{ 
30468
30469  {
30470#line 558
30471  return;
30472}
30473}
30474#line 563
30475 __attribute__((__dllimport__)) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName ,
30476                                                                   BOOLEAN Enable ) ;
30477#line 563 "../slam-kernel.c"
30478NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName , BOOLEAN Enable ) 
30479{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30480
30481  {
30482#line 572
30483  if (__BLAST_NONDET == 0) {
30484    goto switch_200_0;
30485  } else {
30486    {
30487    goto switch_200_default;
30488#line 571
30489    if (0) {
30490      switch_200_0: /* CIL Label */ ;
30491#line 572
30492      return (0L);
30493      switch_200_default: /* CIL Label */ ;
30494#line 577
30495      return (-1073741823L);
30496    } else {
30497      switch_200_break: /* CIL Label */ ;
30498    }
30499    }
30500  }
30501}
30502}
30503#line 582
30504 __attribute__((__dllimport__)) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ;
30505#line 582 "../slam-kernel.c"
30506void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) 
30507{ 
30508
30509  {
30510#line 587
30511  return;
30512}
30513}
30514#line 595 "../slam-kernel.c"
30515void stubMoreProcessingRequired(void) 
30516{ 
30517
30518  {
30519#line 598
30520  if (s == 1) {
30521#line 598
30522    s = 5;
30523  } else {
30524    {
30525#line 599
30526    assert(0);
30527    }
30528  }
30529#line 602
30530  return;
30531}
30532}
30533#line 602
30534 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject ,
30535                                                                                        PIRP Irp ) ;
30536#line 602 "../slam-kernel.c"
30537NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject ,
30538                                                        PIRP Irp ) 
30539{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30540  NTSTATUS returnVal2 ;
30541  int compRetStatus1 ;
30542  PVOID lcontext ;
30543  NTSTATUS tmp ;
30544  NTSTATUS (*__cil_tmp8)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
30545  long __cil_tmp9 ;
30546
30547  {
30548#line 615
30549  if (compRegistered) {
30550    {
30551#line 619
30552    __cil_tmp8 = & FloppyPnpComplete;
30553#line 619
30554    tmp = (*__cil_tmp8)(DeviceObject, Irp, lcontext);
30555#line 619
30556    compRetStatus1 = (int )tmp;
30557    }
30558    {
30559#line 621
30560    __cil_tmp9 = (long )compRetStatus1;
30561#line 621
30562    if (__cil_tmp9 == -1073741802L) {
30563      {
30564#line 617
30565      stubMoreProcessingRequired();
30566      }
30567    } else {
30568
30569    }
30570    }
30571  } else {
30572
30573  }
30574#line 623
30575  if (__BLAST_NONDET == 0) {
30576    goto switch_201_0;
30577  } else {
30578#line 624
30579    if (__BLAST_NONDET == 1) {
30580      goto switch_201_1;
30581    } else {
30582      {
30583      goto switch_201_default;
30584#line 622
30585      if (0) {
30586        switch_201_0: /* CIL Label */ 
30587#line 623
30588        returnVal2 = 0L;
30589        goto switch_201_break;
30590        switch_201_1: /* CIL Label */ 
30591#line 625
30592        returnVal2 = -1073741823L;
30593        goto switch_201_break;
30594        switch_201_default: /* CIL Label */ 
30595#line 627
30596        returnVal2 = 259L;
30597        goto switch_201_break;
30598      } else {
30599        switch_201_break: /* CIL Label */ ;
30600      }
30601      }
30602    }
30603  }
30604#line 629
30605  if (s == 1) {
30606#line 630
30607    s = 7;
30608#line 630
30609    lowerDriverReturn = (int )returnVal2;
30610  } else {
30611#line 632
30612    if (s == 5) {
30613#line 633
30614      if (returnVal2 == 259L) {
30615#line 634
30616        s = 6;
30617#line 634
30618        lowerDriverReturn = (int )returnVal2;
30619      } else {
30620#line 636
30621        s = 1;
30622#line 636
30623        lowerDriverReturn = (int )returnVal2;
30624      }
30625    } else {
30626#line 639
30627      if (s == 3) {
30628#line 639
30629        s = 4;
30630#line 639
30631        lowerDriverReturn = (int )returnVal2;
30632      } else {
30633        {
30634#line 640
30635        assert(0);
30636        }
30637      }
30638    }
30639  }
30640#line 643
30641  return (returnVal2);
30642}
30643}
30644#line 665
30645 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp ,
30646                                                                                         CCHAR PriorityBoost ) ;
30647#line 665 "../slam-kernel.c"
30648void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp , CCHAR PriorityBoost ) 
30649{ 
30650
30651  {
30652#line 673
30653  if (s == 1) {
30654#line 673
30655    s = 2;
30656  } else {
30657    {
30658#line 674
30659    assert(0);
30660    }
30661  }
30662#line 677
30663  return;
30664}
30665}
30666#line 677
30667 __attribute__((__dllimport__)) KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) ;
30668#line 677
30669 __attribute__((__dllimport__)) KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) ;
30670#line 677 "../slam-kernel.c"
30671KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) 
30672{ 
30673
30674  {
30675#line 679
30676  return ((unsigned char)0);
30677}
30678}
30679#line 686
30680 __attribute__((__dllimport__)) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode ,
30681                                                                BOOLEAN Alertable ,
30682                                                                PLARGE_INTEGER Interval ) ;
30683#line 686 "../slam-kernel.c"
30684NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Interval ) 
30685{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30686
30687  {
30688#line 696
30689  if (__BLAST_NONDET == 0) {
30690    goto switch_202_0;
30691  } else {
30692    {
30693    goto switch_202_default;
30694#line 695
30695    if (0) {
30696      switch_202_0: /* CIL Label */ ;
30697#line 696
30698      return (0L);
30699      switch_202_default: /* CIL Label */ ;
30700#line 701
30701      return (-1073741823L);
30702    } else {
30703      switch_202_break: /* CIL Label */ ;
30704    }
30705    }
30706  }
30707}
30708}
30709#line 706
30710 __attribute__((__dllimport__)) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type ,
30711                                                       BOOLEAN State ) ;
30712#line 706 "../slam-kernel.c"
30713void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type , BOOLEAN State ) 
30714{ 
30715
30716  {
30717#line 711
30718  return;
30719}
30720}
30721#line 717
30722 __attribute__((__dllimport__)) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore ,
30723                                                           LONG Count , LONG Limit ) ;
30724#line 717 "../slam-kernel.c"
30725void KeInitializeSemaphore(PRKSEMAPHORE Semaphore , LONG Count , LONG Limit ) 
30726{ 
30727
30728  {
30729#line 722
30730  return;
30731}
30732}
30733#line 728
30734 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) ;
30735#line 728 "../slam-kernel.c"
30736void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) 
30737{ 
30738
30739  {
30740#line 732
30741  return;
30742}
30743}
30744#line 738
30745 __attribute__((__dllimport__)) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment ,
30746                                                        LONG Adjustment , BOOLEAN Wait ) ;
30747#line 738 "../slam-kernel.c"
30748LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment , LONG Adjustment ,
30749                        BOOLEAN Wait ) 
30750{ LONG r ;
30751
30752  {
30753#line 748
30754  return (r);
30755}
30756}
30757#line 751
30758 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock ,
30759                                                                                        KIRQL NewIrql ) ;
30760#line 751 "../slam-kernel.c"
30761void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock , KIRQL NewIrql ) 
30762{ 
30763
30764  {
30765#line 756
30766  return;
30767}
30768}
30769#line 762
30770 __attribute__((__dllimport__)) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment ,
30771                                                BOOLEAN Wait ) ;
30772#line 762 "../slam-kernel.c"
30773LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait ) 
30774{ LONG l ;
30775
30776  {
30777#line 772
30778  setEventCalled = 1;
30779#line 774
30780  return (l);
30781}
30782}
30783#line 777
30784 __attribute__((__dllimport__)) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason ,
30785                                                               KPROCESSOR_MODE WaitMode ,
30786                                                               BOOLEAN Alertable ,
30787                                                               PLARGE_INTEGER Timeout ) ;
30788#line 777 "../slam-kernel.c"
30789NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode ,
30790                               BOOLEAN Alertable , PLARGE_INTEGER Timeout ) 
30791{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30792
30793  {
30794#line 788
30795  if (s == 6) {
30796#line 788
30797    if (setEventCalled == 1) {
30798#line 789
30799      s = 1;
30800#line 789
30801      setEventCalled = 0;
30802    } else {
30803      goto _L;
30804    }
30805  } else {
30806    _L: 
30807#line 791
30808    if (customIrp == 1) {
30809#line 792
30810      s = 1;
30811#line 792
30812      customIrp = 0;
30813    } else {
30814#line 794
30815      if (s == 6) {
30816        {
30817#line 794
30818        assert(0);
30819        }
30820      } else {
30821
30822      }
30823    }
30824  }
30825#line 799
30826  if (__BLAST_NONDET == 0) {
30827    goto switch_203_0;
30828  } else {
30829    {
30830    goto switch_203_default;
30831#line 798
30832    if (0) {
30833      switch_203_0: /* CIL Label */ ;
30834#line 799
30835      return (0L);
30836      switch_203_default: /* CIL Label */ ;
30837#line 805
30838      return (-1073741823L);
30839    } else {
30840      switch_203_break: /* CIL Label */ ;
30841    }
30842    }
30843  }
30844}
30845}
30846#line 810
30847 __attribute__((__dllimport__)) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes ,
30848                                                                 PHYSICAL_ADDRESS HighestAcceptableAddress ) ;
30849#line 810 "../slam-kernel.c"
30850PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS HighestAcceptableAddress ) 
30851{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30852  char *tmp ;
30853  int __cil_tmp5 ;
30854
30855  {
30856#line 818
30857  if (__BLAST_NONDET == 0) {
30858    goto switch_204_0;
30859  } else {
30860#line 819
30861    if (__BLAST_NONDET == 1) {
30862      goto switch_204_1;
30863    } else {
30864#line 817
30865      if (0) {
30866        switch_204_0: /* CIL Label */ 
30867        {
30868#line 818
30869        __cil_tmp5 = (int )NumberOfBytes;
30870#line 818
30871        tmp = malloc(__cil_tmp5);
30872        }
30873#line 818
30874        return ((void *)tmp);
30875        switch_204_1: /* CIL Label */ ;
30876#line 819
30877        return ((void *)0);
30878      } else {
30879        switch_204_break: /* CIL Label */ ;
30880      }
30881    }
30882  }
30883#line 821
30884  return ((void *)0);
30885}
30886}
30887#line 823
30888 __attribute__((__dllimport__)) void MmFreeContiguousMemory(PVOID BaseAddress ) ;
30889#line 823 "../slam-kernel.c"
30890void MmFreeContiguousMemory(PVOID BaseAddress ) 
30891{ 
30892
30893  {
30894#line 827
30895  return;
30896}
30897}
30898#line 832
30899 __attribute__((__dllimport__)) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList ,
30900                                                                   KPROCESSOR_MODE AccessMode ,
30901                                                                   MEMORY_CACHING_TYPE CacheType ,
30902                                                                   PVOID BaseAddress ,
30903                                                                   ULONG BugCheckOnFailure ,
30904                                                                   MM_PAGE_PRIORITY Priority ) ;
30905#line 832 "../slam-kernel.c"
30906PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode ,
30907                                   MEMORY_CACHING_TYPE CacheType , PVOID BaseAddress ,
30908                                   ULONG BugCheckOnFailure , MM_PAGE_PRIORITY Priority ) 
30909{ 
30910
30911  {
30912#line 843
30913  return ((void *)0);
30914}
30915}
30916#line 846
30917 __attribute__((__dllimport__)) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ;
30918#line 846 "../slam-kernel.c"
30919PVOID MmPageEntireDriver(PVOID AddressWithinSection ) 
30920{ 
30921
30922  {
30923#line 852
30924  return ((void *)0);
30925}
30926}
30927#line 855
30928 __attribute__((__dllimport__)) void MmResetDriverPaging(PVOID AddressWithinSection ) ;
30929#line 855 "../slam-kernel.c"
30930void MmResetDriverPaging(PVOID AddressWithinSection ) 
30931{ 
30932
30933  {
30934#line 859
30935  return;
30936}
30937}
30938#line 865
30939 __attribute__((__dllimport__)) void MmUnlockPages(PMDL MemoryDescriptorList ) ;
30940#line 865 "../slam-kernel.c"
30941void MmUnlockPages(PMDL MemoryDescriptorList ) 
30942{ 
30943
30944  {
30945#line 869
30946  return;
30947}
30948}
30949#line 874
30950 __attribute__((__dllimport__)) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle ,
30951                                                                   ACCESS_MASK DesiredAccess ,
30952                                                                   POBJECT_TYPE ObjectType ,
30953                                                                   KPROCESSOR_MODE AccessMode ,
30954                                                                   PVOID *Object ,
30955                                                                   POBJECT_HANDLE_INFORMATION HandleInformation ) ;
30956#line 874 "../slam-kernel.c"
30957NTSTATUS ObReferenceObjectByHandle(HANDLE Handle , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType ,
30958                                   KPROCESSOR_MODE AccessMode , PVOID *Object , POBJECT_HANDLE_INFORMATION HandleInformation ) 
30959{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30960
30961  {
30962#line 887
30963  if (__BLAST_NONDET == 0) {
30964    goto switch_205_0;
30965  } else {
30966    {
30967    goto switch_205_default;
30968#line 886
30969    if (0) {
30970      switch_205_0: /* CIL Label */ ;
30971#line 887
30972      return (0L);
30973      switch_205_default: /* CIL Label */ ;
30974#line 893
30975      return (-1073741823L);
30976    } else {
30977      switch_205_break: /* CIL Label */ ;
30978    }
30979    }
30980  }
30981}
30982}
30983#line 899
30984 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) ;
30985#line 899 "../slam-kernel.c"
30986void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) 
30987{ 
30988
30989  {
30990#line 903
30991  return;
30992}
30993}
30994#line 909
30995 __attribute__((__dllimport__)) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject ,
30996                                                      PIRP Irp ) ;
30997#line 909 "../slam-kernel.c"
30998NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) 
30999{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31000  int compRetStatus ;
31001  NTSTATUS returnVal ;
31002  PVOID lcontext ;
31003  NTSTATUS tmp ;
31004  NTSTATUS (*__cil_tmp8)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
31005  long __cil_tmp9 ;
31006
31007  {
31008#line 922
31009  if (compRegistered) {
31010    {
31011#line 926
31012    __cil_tmp8 = & FloppyPnpComplete;
31013#line 926
31014    tmp = (*__cil_tmp8)(DeviceObject, Irp, lcontext);
31015#line 926
31016    compRetStatus = (int )tmp;
31017    }
31018    {
31019#line 927
31020    __cil_tmp9 = (long )compRetStatus;
31021#line 927
31022    if (__cil_tmp9 == -1073741802L) {
31023      {
31024#line 924
31025      stubMoreProcessingRequired();
31026      }
31027    } else {
31028
31029    }
31030    }
31031  } else {
31032
31033  }
31034#line 930
31035  if (__BLAST_NONDET == 0) {
31036    goto switch_206_0;
31037  } else {
31038#line 933
31039    if (__BLAST_NONDET == 1) {
31040      goto switch_206_1;
31041    } else {
31042      {
31043      goto switch_206_default;
31044#line 929
31045      if (0) {
31046        switch_206_0: /* CIL Label */ 
31047#line 931
31048        returnVal = 0L;
31049        goto switch_206_break;
31050        switch_206_1: /* CIL Label */ 
31051#line 934
31052        returnVal = -1073741823L;
31053        goto switch_206_break;
31054        switch_206_default: /* CIL Label */ 
31055#line 937
31056        returnVal = 259L;
31057        goto switch_206_break;
31058      } else {
31059        switch_206_break: /* CIL Label */ ;
31060      }
31061      }
31062    }
31063  }
31064#line 939
31065  if (s == 1) {
31066#line 940
31067    s = 7;
31068#line 940
31069    lowerDriverReturn = (int )returnVal;
31070  } else {
31071#line 942
31072    if (s == 5) {
31073#line 943
31074      if (returnVal == 259L) {
31075#line 944
31076        s = 6;
31077#line 944
31078        lowerDriverReturn = (int )returnVal;
31079      } else {
31080#line 946
31081        s = 1;
31082#line 946
31083        lowerDriverReturn = (int )returnVal;
31084      }
31085    } else {
31086#line 949
31087      if (s == 3) {
31088#line 949
31089        s = 4;
31090#line 949
31091        lowerDriverReturn = (int )returnVal;
31092      } else {
31093
31094      }
31095    }
31096  }
31097#line 953
31098  return (returnVal);
31099}
31100}
31101#line 956
31102 __attribute__((__dllimport__)) void PoStartNextPowerIrp(PIRP Irp ) ;
31103#line 956 "../slam-kernel.c"
31104void PoStartNextPowerIrp(PIRP Irp ) 
31105{ 
31106
31107  {
31108#line 960
31109  return;
31110}
31111}
31112#line 965
31113 __attribute__((__dllimport__)) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle ,
31114                                                              ULONG DesiredAccess ,
31115                                                              POBJECT_ATTRIBUTES ObjectAttributes ,
31116                                                              HANDLE ProcessHandle ,
31117                                                              PCLIENT_ID ClientId ,
31118                                                              void (*StartRoutine)(PVOID StartContext ) ,
31119                                                              PVOID StartContext ) ;
31120#line 965 "../slam-kernel.c"
31121NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle , ULONG DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes ,
31122                              HANDLE ProcessHandle , PCLIENT_ID ClientId , void (*StartRoutine)(PVOID StartContext ) ,
31123                              PVOID StartContext ) 
31124{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31125
31126  {
31127#line 979
31128  if (__BLAST_NONDET == 0) {
31129    goto switch_207_0;
31130  } else {
31131    {
31132    goto switch_207_default;
31133#line 978
31134    if (0) {
31135      switch_207_0: /* CIL Label */ ;
31136#line 979
31137      return (0L);
31138      switch_207_default: /* CIL Label */ ;
31139#line 980
31140      return (-1073741823L);
31141    } else {
31142      switch_207_break: /* CIL Label */ ;
31143    }
31144    }
31145  }
31146}
31147}
31148#line 984
31149 __attribute__((__dllimport__)) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ;
31150#line 984 "../slam-kernel.c"
31151NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) 
31152{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31153
31154  {
31155#line 992
31156  if (__BLAST_NONDET == 0) {
31157    goto switch_208_0;
31158  } else {
31159    {
31160    goto switch_208_default;
31161#line 991
31162    if (0) {
31163      switch_208_0: /* CIL Label */ ;
31164#line 992
31165      return (0L);
31166      switch_208_default: /* CIL Label */ ;
31167#line 993
31168      return (-1073741823L);
31169    } else {
31170      switch_208_break: /* CIL Label */ ;
31171    }
31172    }
31173  }
31174}
31175}
31176#line 998
31177 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString ,
31178                                                                                                      PANSI_STRING SourceString ,
31179                                                                                                      BOOLEAN AllocateDestinationString ) ;
31180#line 998 "../slam-kernel.c"
31181NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString ,
31182                                                                      PANSI_STRING SourceString ,
31183                                                                      BOOLEAN AllocateDestinationString ) 
31184{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31185
31186  {
31187#line 1009
31188  if (__BLAST_NONDET == 0) {
31189    goto switch_209_0;
31190  } else {
31191    {
31192    goto switch_209_default;
31193#line 1008
31194    if (0) {
31195      switch_209_0: /* CIL Label */ ;
31196#line 1009
31197      return (0L);
31198      switch_209_default: /* CIL Label */ ;
31199#line 1010
31200      return (-1073741823L);
31201    } else {
31202      switch_209_break: /* CIL Label */ ;
31203    }
31204    }
31205  }
31206}
31207}
31208#line 1014
31209 __attribute__((__dllimport__)) SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const   *Source1 ,
31210                                                                                        void const   *Source2 ,
31211                                                                                        SIZE_T Length ) ;
31212#line 1014 "../slam-kernel.c"
31213SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const   *Source1 , void const   *Source2 ,
31214                                                        SIZE_T Length ) 
31215{ SIZE_T r ;
31216
31217  {
31218#line 1024
31219  return (r);
31220}
31221}
31222#line 1027
31223 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString ,
31224                                                                                          PUNICODE_STRING SourceString ) ;
31225#line 1027 "../slam-kernel.c"
31226void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString ,
31227                                                          PUNICODE_STRING SourceString ) 
31228{ 
31229
31230  {
31231#line 1032
31232  return;
31233}
31234}
31235#line 1038
31236 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo ,
31237                                                                                                PCWSTR Path ,
31238                                                                                                PCWSTR ValueName ) ;
31239#line 1038 "../slam-kernel.c"
31240NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo ,
31241                                                                PCWSTR Path , PCWSTR ValueName ) 
31242{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31243
31244  {
31245#line 1049
31246  if (__BLAST_NONDET == 0) {
31247    goto switch_210_0;
31248  } else {
31249    {
31250    goto switch_210_default;
31251#line 1048
31252    if (0) {
31253      switch_210_0: /* CIL Label */ ;
31254#line 1049
31255      return (0L);
31256      switch_210_default: /* CIL Label */ ;
31257#line 1050
31258      return (-1073741823L);
31259    } else {
31260      switch_210_break: /* CIL Label */ ;
31261    }
31262    }
31263  }
31264}
31265}
31266#line 1054
31267 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) ;
31268#line 1054 "../slam-kernel.c"
31269void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) 
31270{ 
31271
31272  {
31273#line 1059
31274  return;
31275}
31276}
31277#line 1064
31278 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString ,
31279                                                                                   PCSZ SourceString ) ;
31280#line 1064 "../slam-kernel.c"
31281void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString , PCSZ SourceString ) 
31282{ 
31283
31284  {
31285#line 1069
31286  return;
31287}
31288}
31289#line 1075
31290 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString ,
31291                                                                                          PCWSTR SourceString ) ;
31292#line 1075 "../slam-kernel.c"
31293void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString ,
31294                                                          PCWSTR SourceString ) 
31295{ 
31296
31297  {
31298#line 1080
31299  return;
31300}
31301}
31302#line 1087
31303 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo ,
31304                                                                                                PCWSTR Path ,
31305                                                                                                PRTL_QUERY_REGISTRY_TABLE QueryTable ,
31306                                                                                                PVOID Context ,
31307                                                                                                PVOID Environment ) ;
31308#line 1087 "../slam-kernel.c"
31309NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo ,
31310                                                                PCWSTR Path , PRTL_QUERY_REGISTRY_TABLE QueryTable ,
31311                                                                PVOID Context , PVOID Environment ) 
31312{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31313
31314  {
31315#line 1100
31316  if (__BLAST_NONDET == 0) {
31317    goto switch_211_0;
31318  } else {
31319    {
31320    goto switch_211_default;
31321#line 1099
31322    if (0) {
31323      switch_211_0: /* CIL Label */ ;
31324#line 1100
31325      return (0L);
31326      switch_211_default: /* CIL Label */ ;
31327#line 1105
31328      return (-1073741823L);
31329    } else {
31330      switch_211_break: /* CIL Label */ ;
31331    }
31332    }
31333  }
31334}
31335}
31336#line 1109
31337 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) ;
31338#line 1109 "../slam-kernel.c"
31339NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) 
31340{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31341
31342  {
31343#line 1118
31344  if (__BLAST_NONDET == 0) {
31345    goto switch_212_0;
31346  } else {
31347    {
31348    goto switch_212_default;
31349#line 1117
31350    if (0) {
31351      switch_212_0: /* CIL Label */ ;
31352#line 1118
31353      return (0L);
31354      switch_212_default: /* CIL Label */ ;
31355#line 1124
31356      return (-1073741823L);
31357    } else {
31358      switch_212_break: /* CIL Label */ ;
31359    }
31360    }
31361  }
31362}
31363}