extern void __VERIFIER_error() __attribute__ ((__noreturn__)); extern char __VERIFIER_nondet_char(void); extern int __VERIFIER_nondet_int(void); extern long __VERIFIER_nondet_long(void); extern void *__VERIFIER_nondet_pointer(void); extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); void memcpy_guard(void* p1, const void* p2, unsigned int n) { if ((char*)p1 + n <= (char*)p2 || (char*)p2 + n <= (char*)p1) return; abort(); } /* Generated by CIL v. 1.3.7 */ /* print_CIL_Input is true */ #pragma pack(push,8) typedef unsigned int size_t; typedef unsigned short wchar_t; #pragma pack(pop) #pragma pack(push,8) #pragma pack(pop) typedef unsigned long ULONG_PTR; typedef unsigned long *PULONG_PTR; typedef ULONG_PTR SIZE_T; typedef void *PVOID; typedef char CHAR; typedef short SHORT; typedef long LONG; typedef wchar_t WCHAR; typedef WCHAR *PWSTR; typedef WCHAR const *PCWSTR; typedef CHAR *PCHAR; typedef LONG *PLONG; typedef unsigned char UCHAR; typedef unsigned short USHORT; typedef unsigned long ULONG; typedef UCHAR *PUCHAR; typedef ULONG *PULONG; typedef void *HANDLE; typedef HANDLE *PHANDLE; typedef char CCHAR; typedef short CSHORT; typedef ULONG LCID; typedef LONG NTSTATUS; typedef long long LONGLONG; typedef unsigned long long ULONGLONG; struct __anonstruct____missing_field_name_1 { ULONG LowPart ; LONG HighPart ; }; struct __anonstruct_u_2 { ULONG LowPart ; LONG HighPart ; }; union _LARGE_INTEGER { struct __anonstruct____missing_field_name_1 __annonCompField1 ; struct __anonstruct_u_2 u ; LONGLONG QuadPart ; }; typedef union _LARGE_INTEGER LARGE_INTEGER; typedef LARGE_INTEGER *PLARGE_INTEGER; struct __anonstruct____missing_field_name_3 { ULONG LowPart ; ULONG HighPart ; }; struct __anonstruct_u_4 { ULONG LowPart ; ULONG HighPart ; }; union _ULARGE_INTEGER { struct __anonstruct____missing_field_name_3 __annonCompField2 ; struct __anonstruct_u_4 u ; ULONGLONG QuadPart ; }; typedef union _ULARGE_INTEGER ULARGE_INTEGER; struct _LUID { ULONG LowPart ; LONG HighPart ; }; typedef struct _LUID LUID; typedef LARGE_INTEGER PHYSICAL_ADDRESS; enum _EVENT_TYPE { NotificationEvent = 0, SynchronizationEvent = 1 } ; typedef enum _EVENT_TYPE EVENT_TYPE; typedef char const *PCSZ; struct _STRING { USHORT Length ; USHORT MaximumLength ; PCHAR Buffer ; }; typedef struct _STRING STRING; typedef STRING *PSTRING; typedef PSTRING PANSI_STRING; struct _UNICODE_STRING { USHORT Length ; USHORT MaximumLength ; PWSTR Buffer ; }; typedef struct _UNICODE_STRING UNICODE_STRING; typedef UNICODE_STRING *PUNICODE_STRING; typedef UCHAR BOOLEAN; struct _LIST_ENTRY { struct _LIST_ENTRY *Flink ; struct _LIST_ENTRY *Blink ; }; typedef struct _LIST_ENTRY LIST_ENTRY; typedef struct _LIST_ENTRY *PLIST_ENTRY; struct _SINGLE_LIST_ENTRY { struct _SINGLE_LIST_ENTRY *Next ; }; typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY; typedef struct _SINGLE_LIST_ENTRY *PSINGLE_LIST_ENTRY; struct LIST_ENTRY32 { ULONG Flink ; ULONG Blink ; }; typedef struct LIST_ENTRY32 LIST_ENTRY32; typedef LIST_ENTRY32 *PLIST_ENTRY32; struct LIST_ENTRY64 { ULONGLONG Flink ; ULONGLONG Blink ; }; typedef struct LIST_ENTRY64 LIST_ENTRY64; typedef LIST_ENTRY64 *PLIST_ENTRY64; struct _OBJECT_ATTRIBUTES { ULONG Length ; HANDLE RootDirectory ; PUNICODE_STRING ObjectName ; ULONG Attributes ; PVOID SecurityDescriptor ; PVOID SecurityQualityOfService ; }; typedef struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES; typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; struct _GUID { unsigned long Data1 ; unsigned short Data2 ; unsigned short Data3 ; unsigned char Data4[8] ; }; typedef struct _GUID GUID; typedef UCHAR KIRQL; enum _NT_PRODUCT_TYPE { NtProductWinNt = 1, NtProductLanManNt = 2, NtProductServer = 3 } ; typedef enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE; struct _KTHREAD; struct _KTHREAD; typedef struct _KTHREAD *PKTHREAD; struct _ETHREAD; struct _ETHREAD; typedef struct _ETHREAD *PETHREAD; struct _EPROCESS; struct _EPROCESS; typedef struct _EPROCESS *PEPROCESS; struct _IO_TIMER; struct _IO_TIMER; typedef struct _IO_TIMER *PIO_TIMER; struct _OBJECT_TYPE; struct _OBJECT_TYPE; typedef struct _OBJECT_TYPE *POBJECT_TYPE; struct __anonstruct____missing_field_name_5 { SINGLE_LIST_ENTRY Next ; USHORT Depth ; USHORT Sequence ; }; union _SLIST_HEADER { ULONGLONG Alignment ; struct __anonstruct____missing_field_name_5 __annonCompField3 ; }; typedef union _SLIST_HEADER SLIST_HEADER; typedef union _SLIST_HEADER *PSLIST_HEADER; typedef CCHAR KPROCESSOR_MODE; struct _KAPC; struct _KAPC; struct _KAPC; typedef void (*PKNORMAL_ROUTINE)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 ); struct _KAPC { CSHORT Type ; CSHORT Size ; ULONG Spare0 ; struct _KTHREAD *Thread ; LIST_ENTRY ApcListEntry ; void (*KernelRoutine)(struct _KAPC *Apc , PKNORMAL_ROUTINE *NormalRoutine , PVOID *NormalContext , PVOID *SystemArgument1 , PVOID *SystemArgument2 ) ; void (*RundownRoutine)(struct _KAPC *Apc ) ; void (*NormalRoutine)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 ) ; PVOID NormalContext ; PVOID SystemArgument1 ; PVOID SystemArgument2 ; CCHAR ApcStateIndex ; KPROCESSOR_MODE ApcMode ; BOOLEAN Inserted ; }; typedef struct _KAPC KAPC; struct _KDPC; struct _KDPC; struct _KDPC; struct _KDPC { CSHORT Type ; UCHAR Number ; UCHAR Importance ; LIST_ENTRY DpcListEntry ; void (*DeferredRoutine)(struct _KDPC *Dpc , PVOID DeferredContext , PVOID SystemArgument1 , PVOID SystemArgument2 ) ; PVOID DeferredContext ; PVOID SystemArgument1 ; PVOID SystemArgument2 ; PULONG_PTR Lock ; }; typedef struct _KDPC KDPC; typedef struct _KDPC *PKDPC; struct _MDL { struct _MDL *Next ; CSHORT Size ; CSHORT MdlFlags ; struct _EPROCESS *Process ; PVOID MappedSystemVa ; PVOID StartVa ; ULONG ByteCount ; ULONG ByteOffset ; }; typedef struct _MDL MDL; typedef struct _MDL *PMDL; typedef PVOID PACCESS_TOKEN; typedef PVOID PSECURITY_DESCRIPTOR; typedef ULONG ACCESS_MASK; #pragma pack(push,4) struct _LUID_AND_ATTRIBUTES { LUID Luid ; ULONG Attributes ; }; typedef struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES; #pragma pack(pop) struct _PRIVILEGE_SET { ULONG PrivilegeCount ; ULONG Control ; LUID_AND_ATTRIBUTES Privilege[1] ; }; typedef struct _PRIVILEGE_SET PRIVILEGE_SET; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous = 0, SecurityIdentification = 1, SecurityImpersonation = 2, SecurityDelegation = 3 } ; typedef enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL; typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE; struct _SECURITY_QUALITY_OF_SERVICE { ULONG Length ; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode ; BOOLEAN EffectiveOnly ; }; typedef struct _SECURITY_QUALITY_OF_SERVICE *PSECURITY_QUALITY_OF_SERVICE; typedef ULONG SECURITY_INFORMATION; typedef LONG KPRIORITY; typedef ULONG_PTR KSPIN_LOCK; typedef KSPIN_LOCK *PKSPIN_LOCK; struct _RTL_QUERY_REGISTRY_TABLE { NTSTATUS ( __attribute__((__stdcall__)) (*QueryRoutine))(PWSTR ValueName , ULONG ValueType , PVOID ValueData , ULONG ValueLength , PVOID Context , PVOID EntryContext ) ; ULONG Flags ; PWSTR Name ; PVOID EntryContext ; ULONG DefaultType ; PVOID DefaultData ; ULONG DefaultLength ; }; typedef struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE; typedef struct _RTL_QUERY_REGISTRY_TABLE *PRTL_QUERY_REGISTRY_TABLE; union __anonunion____missing_field_name_6 { NTSTATUS Status ; PVOID Pointer ; }; struct _IO_STATUS_BLOCK { union __anonunion____missing_field_name_6 __annonCompField4 ; ULONG_PTR Information ; }; typedef struct _IO_STATUS_BLOCK IO_STATUS_BLOCK; typedef struct _IO_STATUS_BLOCK *PIO_STATUS_BLOCK; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation = 1, FileFullDirectoryInformation = 2, FileBothDirectoryInformation = 3, FileBasicInformation = 4, FileStandardInformation = 5, FileInternalInformation = 6, FileEaInformation = 7, FileAccessInformation = 8, FileNameInformation = 9, FileRenameInformation = 10, FileLinkInformation = 11, FileNamesInformation = 12, FileDispositionInformation = 13, FilePositionInformation = 14, FileFullEaInformation = 15, FileModeInformation = 16, FileAlignmentInformation = 17, FileAllInformation = 18, FileAllocationInformation = 19, FileEndOfFileInformation = 20, FileAlternateNameInformation = 21, FileStreamInformation = 22, FilePipeInformation = 23, FilePipeLocalInformation = 24, FilePipeRemoteInformation = 25, FileMailslotQueryInformation = 26, FileMailslotSetInformation = 27, FileCompressionInformation = 28, FileObjectIdInformation = 29, FileCompletionInformation = 30, FileMoveClusterInformation = 31, FileQuotaInformation = 32, FileReparsePointInformation = 33, FileNetworkOpenInformation = 34, FileAttributeTagInformation = 35, FileTrackingInformation = 36, FileMaximumInformation = 37 } ; typedef enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS; struct _FILE_BASIC_INFORMATION { LARGE_INTEGER CreationTime ; LARGE_INTEGER LastAccessTime ; LARGE_INTEGER LastWriteTime ; LARGE_INTEGER ChangeTime ; ULONG FileAttributes ; }; typedef struct _FILE_BASIC_INFORMATION *PFILE_BASIC_INFORMATION; struct _FILE_STANDARD_INFORMATION { LARGE_INTEGER AllocationSize ; LARGE_INTEGER EndOfFile ; ULONG NumberOfLinks ; BOOLEAN DeletePending ; BOOLEAN Directory ; }; typedef struct _FILE_STANDARD_INFORMATION *PFILE_STANDARD_INFORMATION; struct _FILE_NETWORK_OPEN_INFORMATION { LARGE_INTEGER CreationTime ; LARGE_INTEGER LastAccessTime ; LARGE_INTEGER LastWriteTime ; LARGE_INTEGER ChangeTime ; LARGE_INTEGER AllocationSize ; LARGE_INTEGER EndOfFile ; ULONG FileAttributes ; }; typedef struct _FILE_NETWORK_OPEN_INFORMATION *PFILE_NETWORK_OPEN_INFORMATION; enum _FSINFOCLASS { FileFsVolumeInformation = 1, FileFsLabelInformation = 2, FileFsSizeInformation = 3, FileFsDeviceInformation = 4, FileFsAttributeInformation = 5, FileFsControlInformation = 6, FileFsFullSizeInformation = 7, FileFsObjectIdInformation = 8, FileFsMaximumInformation = 9 } ; typedef enum _FSINFOCLASS FS_INFORMATION_CLASS; enum _INTERFACE_TYPE { InterfaceTypeUndefined = -1, Internal = 0, Isa = 1, Eisa = 2, MicroChannel = 3, TurboChannel = 4, PCIBus = 5, VMEBus = 6, NuBus = 7, PCMCIABus = 8, CBus = 9, MPIBus = 10, MPSABus = 11, ProcessorInternal = 12, InternalPowerBus = 13, PNPISABus = 14, PNPBus = 15, MaximumInterfaceType = 16 } ; typedef enum _INTERFACE_TYPE INTERFACE_TYPE; typedef enum _INTERFACE_TYPE *PINTERFACE_TYPE; struct _KEY_VALUE_FULL_INFORMATION { ULONG TitleIndex ; ULONG Type ; ULONG DataOffset ; ULONG DataLength ; ULONG NameLength ; WCHAR Name[1] ; }; typedef struct _KEY_VALUE_FULL_INFORMATION *PKEY_VALUE_FULL_INFORMATION; struct _CLIENT_ID { HANDLE UniqueProcess ; HANDLE UniqueThread ; }; typedef struct _CLIENT_ID CLIENT_ID; typedef CLIENT_ID *PCLIENT_ID; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking = 1, PowerSystemSleeping1 = 2, PowerSystemSleeping2 = 3, PowerSystemSleeping3 = 4, PowerSystemHibernate = 5, PowerSystemShutdown = 6, PowerSystemMaximum = 7 } ; typedef enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE; enum __anonenum_POWER_ACTION_11 { PowerActionNone = 0, PowerActionReserved = 1, PowerActionSleep = 2, PowerActionHibernate = 3, PowerActionShutdown = 4, PowerActionShutdownReset = 5, PowerActionShutdownOff = 6, PowerActionWarmEject = 7 } ; typedef enum __anonenum_POWER_ACTION_11 POWER_ACTION; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0 = 1, PowerDeviceD1 = 2, PowerDeviceD2 = 3, PowerDeviceD3 = 4, PowerDeviceMaximum = 5 } ; typedef enum _DEVICE_POWER_STATE DEVICE_POWER_STATE; union _POWER_STATE { SYSTEM_POWER_STATE SystemState ; DEVICE_POWER_STATE DeviceState ; }; typedef union _POWER_STATE POWER_STATE; enum _POWER_STATE_TYPE { SystemPowerState = 0, DevicePowerState = 1 } ; typedef enum _POWER_STATE_TYPE POWER_STATE_TYPE; struct _KSYSTEM_TIME { ULONG LowPart ; LONG High1Time ; LONG High2Time ; }; typedef struct _KSYSTEM_TIME KSYSTEM_TIME; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign = 0, NEC98x86 = 1, EndAlternatives = 2 } ; typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE; struct _KUSER_SHARED_DATA { ULONG volatile TickCountLow ; ULONG TickCountMultiplier ; KSYSTEM_TIME volatile InterruptTime ; KSYSTEM_TIME volatile SystemTime ; KSYSTEM_TIME volatile TimeZoneBias ; USHORT ImageNumberLow ; USHORT ImageNumberHigh ; WCHAR NtSystemRoot[260] ; ULONG MaxStackTraceDepth ; ULONG CryptoExponent ; ULONG TimeZoneId ; ULONG Reserved2[8] ; NT_PRODUCT_TYPE NtProductType ; BOOLEAN ProductTypeIsValid ; ULONG NtMajorVersion ; ULONG NtMinorVersion ; BOOLEAN ProcessorFeatures[64] ; ULONG Reserved1 ; ULONG Reserved3 ; ULONG volatile TimeSlip ; ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture ; LARGE_INTEGER SystemExpirationDate ; ULONG SuiteMask ; BOOLEAN KdDebuggerEnabled ; }; typedef struct _KUSER_SHARED_DATA KUSER_SHARED_DATA; typedef PVOID PASSIGNED_RESOURCE; #pragma pack(push,4) struct __anonstruct_Generic_16 { PHYSICAL_ADDRESS Start ; ULONG Length ; }; struct __anonstruct_Port_17 { PHYSICAL_ADDRESS Start ; ULONG Length ; }; struct __anonstruct_Interrupt_18 { ULONG Level ; ULONG Vector ; ULONG Affinity ; }; struct __anonstruct_Memory_19 { PHYSICAL_ADDRESS Start ; ULONG Length ; }; struct __anonstruct_Dma_20 { ULONG Channel ; ULONG Port ; ULONG Reserved1 ; }; struct __anonstruct_DevicePrivate_21 { ULONG Data[3] ; }; struct __anonstruct_BusNumber_22 { ULONG Start ; ULONG Length ; ULONG Reserved ; }; struct __anonstruct_DeviceSpecificData_23 { ULONG DataSize ; ULONG Reserved1 ; ULONG Reserved2 ; }; union __anonunion_u_15 { struct __anonstruct_Generic_16 Generic ; struct __anonstruct_Port_17 Port ; struct __anonstruct_Interrupt_18 Interrupt ; struct __anonstruct_Memory_19 Memory ; struct __anonstruct_Dma_20 Dma ; struct __anonstruct_DevicePrivate_21 DevicePrivate ; struct __anonstruct_BusNumber_22 BusNumber ; struct __anonstruct_DeviceSpecificData_23 DeviceSpecificData ; }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { UCHAR Type ; UCHAR ShareDisposition ; USHORT Flags ; union __anonunion_u_15 u ; }; typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR; typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *PCM_PARTIAL_RESOURCE_DESCRIPTOR; #pragma pack(pop) struct _CM_PARTIAL_RESOURCE_LIST { USHORT Version ; USHORT Revision ; ULONG Count ; CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1] ; }; typedef struct _CM_PARTIAL_RESOURCE_LIST CM_PARTIAL_RESOURCE_LIST; struct _CM_FULL_RESOURCE_DESCRIPTOR { INTERFACE_TYPE InterfaceType ; ULONG BusNumber ; CM_PARTIAL_RESOURCE_LIST PartialResourceList ; }; typedef struct _CM_FULL_RESOURCE_DESCRIPTOR CM_FULL_RESOURCE_DESCRIPTOR; typedef struct _CM_FULL_RESOURCE_DESCRIPTOR *PCM_FULL_RESOURCE_DESCRIPTOR; struct _CM_RESOURCE_LIST { ULONG Count ; CM_FULL_RESOURCE_DESCRIPTOR List[1] ; }; typedef struct _CM_RESOURCE_LIST *PCM_RESOURCE_LIST; #pragma pack(push,1) #pragma pack(pop) struct _CM_FLOPPY_DEVICE_DATA { USHORT Version ; USHORT Revision ; CHAR Size[8] ; ULONG MaxDensity ; ULONG MountDensity ; UCHAR StepRateHeadUnloadTime ; UCHAR HeadLoadTime ; UCHAR MotorOffTime ; UCHAR SectorLengthCode ; UCHAR SectorPerTrack ; UCHAR ReadWriteGapLength ; UCHAR DataTransferLength ; UCHAR FormatGapLength ; UCHAR FormatFillCharacter ; UCHAR HeadSettleTime ; UCHAR MotorSettleTime ; UCHAR MaximumTrackValue ; UCHAR DataTransferRate ; }; typedef struct _CM_FLOPPY_DEVICE_DATA *PCM_FLOPPY_DEVICE_DATA; struct __anonstruct_Port_25 { ULONG Length ; ULONG Alignment ; PHYSICAL_ADDRESS MinimumAddress ; PHYSICAL_ADDRESS MaximumAddress ; }; struct __anonstruct_Memory_26 { ULONG Length ; ULONG Alignment ; PHYSICAL_ADDRESS MinimumAddress ; PHYSICAL_ADDRESS MaximumAddress ; }; struct __anonstruct_Interrupt_27 { ULONG MinimumVector ; ULONG MaximumVector ; }; struct __anonstruct_Dma_28 { ULONG MinimumChannel ; ULONG MaximumChannel ; }; struct __anonstruct_Generic_29 { ULONG Length ; ULONG Alignment ; PHYSICAL_ADDRESS MinimumAddress ; PHYSICAL_ADDRESS MaximumAddress ; }; struct __anonstruct_DevicePrivate_30 { ULONG Data[3] ; }; struct __anonstruct_BusNumber_31 { ULONG Length ; ULONG MinBusNumber ; ULONG MaxBusNumber ; ULONG Reserved ; }; struct __anonstruct_AssignedResource_32 { PASSIGNED_RESOURCE AssignedResource ; }; struct __anonstruct_SubAllocateFrom_33 { UCHAR Type ; UCHAR Reserved[3] ; PASSIGNED_RESOURCE AssignedResource ; PHYSICAL_ADDRESS Transformation ; }; struct __anonstruct_ConfigData_34 { ULONG Priority ; ULONG Reserved1 ; ULONG Reserved2 ; }; union __anonunion_u_24 { struct __anonstruct_Port_25 Port ; struct __anonstruct_Memory_26 Memory ; struct __anonstruct_Interrupt_27 Interrupt ; struct __anonstruct_Dma_28 Dma ; struct __anonstruct_Generic_29 Generic ; struct __anonstruct_DevicePrivate_30 DevicePrivate ; struct __anonstruct_BusNumber_31 BusNumber ; struct __anonstruct_AssignedResource_32 AssignedResource ; struct __anonstruct_SubAllocateFrom_33 SubAllocateFrom ; struct __anonstruct_ConfigData_34 ConfigData ; }; struct _IO_RESOURCE_DESCRIPTOR { UCHAR Option ; UCHAR Type ; UCHAR ShareDisposition ; UCHAR Spare1 ; USHORT Flags ; USHORT Spare2 ; union __anonunion_u_24 u ; }; typedef struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR; struct _IO_RESOURCE_LIST { USHORT Version ; USHORT Revision ; ULONG Count ; IO_RESOURCE_DESCRIPTOR Descriptors[1] ; }; typedef struct _IO_RESOURCE_LIST IO_RESOURCE_LIST; struct _IO_RESOURCE_REQUIREMENTS_LIST { ULONG ListSize ; INTERFACE_TYPE InterfaceType ; ULONG BusNumber ; ULONG SlotNumber ; ULONG Reserved[3] ; ULONG AlternativeLists ; IO_RESOURCE_LIST List[1] ; }; typedef struct _IO_RESOURCE_REQUIREMENTS_LIST *PIO_RESOURCE_REQUIREMENTS_LIST; enum _CONFIGURATION_TYPE { ArcSystem = 0, CentralProcessor = 1, FloatingPointProcessor = 2, PrimaryIcache = 3, PrimaryDcache = 4, SecondaryIcache = 5, SecondaryDcache = 6, SecondaryCache = 7, EisaAdapter = 8, TcAdapter = 9, ScsiAdapter = 10, DtiAdapter = 11, MultiFunctionAdapter = 12, DiskController = 13, TapeController = 14, CdromController = 15, WormController = 16, SerialController = 17, NetworkController = 18, DisplayController = 19, ParallelController = 20, PointerController = 21, KeyboardController = 22, AudioController = 23, OtherController = 24, DiskPeripheral = 25, FloppyDiskPeripheral = 26, TapePeripheral = 27, ModemPeripheral = 28, MonitorPeripheral = 29, PrinterPeripheral = 30, PointerPeripheral = 31, KeyboardPeripheral = 32, TerminalPeripheral = 33, OtherPeripheral = 34, LinePeripheral = 35, NetworkPeripheral = 36, SystemMemory = 37, DockingInformation = 38, RealModeIrqRoutingTable = 39, MaximumType = 40 } ; typedef enum _CONFIGURATION_TYPE CONFIGURATION_TYPE; typedef enum _CONFIGURATION_TYPE *PCONFIGURATION_TYPE; enum _KWAIT_REASON { Executive = 0, FreePage = 1, PageIn = 2, PoolAllocation = 3, DelayExecution = 4, Suspended = 5, UserRequest = 6, WrExecutive = 7, WrFreePage = 8, WrPageIn = 9, WrPoolAllocation = 10, WrDelayExecution = 11, WrSuspended = 12, WrUserRequest = 13, WrEventPair = 14, WrQueue = 15, WrLpcReceive = 16, WrLpcReply = 17, WrVirtualMemory = 18, WrPageOut = 19, WrRendezvous = 20, Spare2 = 21, Spare3 = 22, Spare4 = 23, Spare5 = 24, Spare6 = 25, WrKernel = 26, MaximumWaitReason = 27 } ; typedef enum _KWAIT_REASON KWAIT_REASON; struct _DISPATCHER_HEADER { UCHAR Type ; UCHAR Absolute ; UCHAR Size ; UCHAR Inserted ; LONG SignalState ; LIST_ENTRY WaitListHead ; }; typedef struct _DISPATCHER_HEADER DISPATCHER_HEADER; struct _KDEVICE_QUEUE { CSHORT Type ; CSHORT Size ; LIST_ENTRY DeviceListHead ; KSPIN_LOCK Lock ; BOOLEAN Busy ; }; typedef struct _KDEVICE_QUEUE KDEVICE_QUEUE; struct _KDEVICE_QUEUE_ENTRY { LIST_ENTRY DeviceListEntry ; ULONG SortKey ; BOOLEAN Inserted ; }; typedef struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY; struct _KEVENT { DISPATCHER_HEADER Header ; }; typedef struct _KEVENT KEVENT; typedef struct _KEVENT *PKEVENT; typedef struct _KEVENT *PRKEVENT; struct _KSEMAPHORE { DISPATCHER_HEADER Header ; LONG Limit ; }; typedef struct _KSEMAPHORE KSEMAPHORE; typedef struct _KSEMAPHORE *PKSEMAPHORE; typedef struct _KSEMAPHORE *PRKSEMAPHORE; enum _MEMORY_CACHING_TYPE { MmNonCached = 0, MmCached = 1, MmWriteCombined = 2, MmHardwareCoherentCached = 3, MmNonCachedUnordered = 4, MmUSWCCached = 5, MmMaximumCacheType = 6 } ; typedef enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE; enum _POOL_TYPE { NonPagedPool = 0, PagedPool = 1, NonPagedPoolMustSucceed = 2, DontUseThisType = 3, NonPagedPoolCacheAligned = 4, PagedPoolCacheAligned = 5, NonPagedPoolCacheAlignedMustS = 6, MaxPoolType = 7, NonPagedPoolSession = 32, PagedPoolSession = 33, NonPagedPoolMustSucceedSession = 34, DontUseThisTypeSession = 35, NonPagedPoolCacheAlignedSession = 36, PagedPoolCacheAlignedSession = 37, NonPagedPoolCacheAlignedMustSSession = 38 } ; typedef enum _POOL_TYPE POOL_TYPE; struct _FAST_MUTEX { LONG Count ; PKTHREAD Owner ; ULONG Contention ; KEVENT Event ; ULONG OldIrql ; }; typedef struct _FAST_MUTEX FAST_MUTEX; typedef struct _FAST_MUTEX *PFAST_MUTEX; union __anonunion____missing_field_name_35 { ULONG AllocateMisses ; ULONG AllocateHits ; }; union __anonunion____missing_field_name_36 { ULONG FreeMisses ; ULONG FreeHits ; }; union __anonunion____missing_field_name_37 { ULONG LastAllocateMisses ; ULONG LastAllocateHits ; }; struct _GENERAL_LOOKASIDE { SLIST_HEADER ListHead ; USHORT Depth ; USHORT MaximumDepth ; ULONG TotalAllocates ; union __anonunion____missing_field_name_35 __annonCompField7 ; ULONG TotalFrees ; union __anonunion____missing_field_name_36 __annonCompField8 ; POOL_TYPE Type ; ULONG Tag ; ULONG Size ; PVOID (*Allocate)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; void (*Free)(PVOID Buffer ) ; LIST_ENTRY ListEntry ; ULONG LastTotalAllocates ; union __anonunion____missing_field_name_37 __annonCompField9 ; ULONG Future[2] ; }; typedef struct _GENERAL_LOOKASIDE GENERAL_LOOKASIDE; struct _NPAGED_LOOKASIDE_LIST { GENERAL_LOOKASIDE L ; KSPIN_LOCK Lock ; }; typedef struct _NPAGED_LOOKASIDE_LIST *PNPAGED_LOOKASIDE_LIST; typedef ULONG_PTR ERESOURCE_THREAD; union __anonunion____missing_field_name_38 { LONG OwnerCount ; ULONG TableSize ; }; struct _OWNER_ENTRY { ERESOURCE_THREAD OwnerThread ; union __anonunion____missing_field_name_38 __annonCompField10 ; }; typedef struct _OWNER_ENTRY OWNER_ENTRY; typedef struct _OWNER_ENTRY *POWNER_ENTRY; union __anonunion____missing_field_name_39 { PVOID Address ; ULONG_PTR CreatorBackTraceIndex ; }; struct _ERESOURCE { LIST_ENTRY SystemResourcesList ; POWNER_ENTRY OwnerTable ; SHORT ActiveCount ; USHORT Flag ; PKSEMAPHORE SharedWaiters ; PKEVENT ExclusiveWaiters ; OWNER_ENTRY OwnerThreads[2] ; ULONG ContentionCount ; USHORT NumberOfSharedWaiters ; USHORT NumberOfExclusiveWaiters ; union __anonunion____missing_field_name_39 __annonCompField11 ; KSPIN_LOCK SpinLock ; }; enum _LOCK_OPERATION { IoReadAccess = 0, IoWriteAccess = 1, IoModifyAccess = 2 } ; typedef enum _LOCK_OPERATION LOCK_OPERATION; enum _MM_PAGE_PRIORITY { LowPagePriority = 0, NormalPagePriority = 16, HighPagePriority = 32 } ; typedef enum _MM_PAGE_PRIORITY MM_PAGE_PRIORITY; struct _DRIVER_OBJECT; struct _DRIVER_OBJECT; struct _DRIVER_OBJECT; struct _SECURITY_SUBJECT_CONTEXT { PACCESS_TOKEN ClientToken ; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ; PACCESS_TOKEN PrimaryToken ; PVOID ProcessAuditId ; }; typedef struct _SECURITY_SUBJECT_CONTEXT SECURITY_SUBJECT_CONTEXT; struct _INITIAL_PRIVILEGE_SET { ULONG PrivilegeCount ; ULONG Control ; LUID_AND_ATTRIBUTES Privilege[3] ; }; typedef struct _INITIAL_PRIVILEGE_SET INITIAL_PRIVILEGE_SET; union __anonunion_Privileges_40 { INITIAL_PRIVILEGE_SET InitialPrivilegeSet ; PRIVILEGE_SET PrivilegeSet ; }; struct _ACCESS_STATE { LUID OperationID ; BOOLEAN SecurityEvaluated ; BOOLEAN GenerateAudit ; BOOLEAN GenerateOnClose ; BOOLEAN PrivilegesAllocated ; ULONG Flags ; ACCESS_MASK RemainingDesiredAccess ; ACCESS_MASK PreviouslyGrantedAccess ; ACCESS_MASK OriginalDesiredAccess ; SECURITY_SUBJECT_CONTEXT SubjectSecurityContext ; PSECURITY_DESCRIPTOR SecurityDescriptor ; PVOID AuxData ; union __anonunion_Privileges_40 Privileges ; BOOLEAN AuditPrivileges ; UNICODE_STRING ObjectName ; UNICODE_STRING ObjectTypeName ; }; typedef struct _ACCESS_STATE *PACCESS_STATE; struct _DEVICE_OBJECT; struct _DEVICE_OBJECT; struct _DEVICE_OBJECT; struct _DRIVER_OBJECT; struct _FILE_OBJECT; struct _FILE_OBJECT; struct _FILE_OBJECT; struct _IRP; struct _IRP; struct _IRP; struct _SCSI_REQUEST_BLOCK; struct _SCSI_REQUEST_BLOCK; struct _SCSI_REQUEST_BLOCK; typedef NTSTATUS (*PDRIVER_DISPATCH)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ); struct _COMPRESSED_DATA_INFO; struct _COMPRESSED_DATA_INFO; struct _FAST_IO_DISPATCH { ULONG SizeOfFastIoDispatch ; BOOLEAN (*FastIoCheckIfPossible)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , ULONG Length , BOOLEAN Wait , ULONG LockKey , BOOLEAN CheckForReadOperation , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoQueryBasicInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait , PFILE_BASIC_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoQueryStandardInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait , PFILE_STANDARD_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoLock)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key , BOOLEAN FailImmediately , BOOLEAN ExclusiveLock , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoUnlockSingle)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoUnlockAll)(struct _FILE_OBJECT *FileObject , PEPROCESS ProcessId , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoUnlockAllByKey)(struct _FILE_OBJECT *FileObject , PVOID ProcessId , ULONG Key , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoDeviceControl)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait , PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer , ULONG OutputBufferLength , ULONG IoControlCode , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; void (*AcquireFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ; void (*ReleaseFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ; void (*FastIoDetachDevice)(struct _DEVICE_OBJECT *SourceDevice , struct _DEVICE_OBJECT *TargetDevice ) ; BOOLEAN (*FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait , struct _FILE_NETWORK_OPEN_INFORMATION *Buffer , struct _IO_STATUS_BLOCK *IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; NTSTATUS (*AcquireForModWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER EndingOffset , struct _ERESOURCE **ResourceToRelease , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*MdlRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*MdlReadComplete)(struct _FILE_OBJECT *FileObject , PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*PrepareMdlWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*MdlWriteComplete)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoReadCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PVOID Buffer , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo , ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoWriteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , ULONG Length , ULONG LockKey , PVOID Buffer , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo , ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*MdlReadCompleteCompressed)(struct _FILE_OBJECT *FileObject , PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*MdlWriteCompleteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset , PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ; BOOLEAN (*FastIoQueryOpen)(struct _IRP *Irp , PFILE_NETWORK_OPEN_INFORMATION NetworkInformation , struct _DEVICE_OBJECT *DeviceObject ) ; NTSTATUS (*ReleaseForModWrite)(struct _FILE_OBJECT *FileObject , struct _ERESOURCE *ResourceToRelease , struct _DEVICE_OBJECT *DeviceObject ) ; NTSTATUS (*AcquireForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ; NTSTATUS (*ReleaseForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ; }; typedef struct _FAST_IO_DISPATCH *PFAST_IO_DISPATCH; enum _IO_ALLOCATION_ACTION { KeepObject = 1, DeallocateObject = 2, DeallocateObjectKeepRegisters = 3 } ; typedef enum _IO_ALLOCATION_ACTION IO_ALLOCATION_ACTION; struct _IO_SECURITY_CONTEXT { PSECURITY_QUALITY_OF_SERVICE SecurityQos ; PACCESS_STATE AccessState ; ACCESS_MASK DesiredAccess ; ULONG FullCreateOptions ; }; typedef struct _IO_SECURITY_CONTEXT *PIO_SECURITY_CONTEXT; struct _VPB { CSHORT Type ; CSHORT Size ; USHORT Flags ; USHORT VolumeLabelLength ; struct _DEVICE_OBJECT *DeviceObject ; struct _DEVICE_OBJECT *RealDevice ; ULONG SerialNumber ; ULONG ReferenceCount ; WCHAR VolumeLabel[(32U * sizeof(WCHAR )) / sizeof(WCHAR )] ; }; typedef struct _VPB *PVPB; struct _WAIT_CONTEXT_BLOCK { KDEVICE_QUEUE_ENTRY WaitQueueEntry ; IO_ALLOCATION_ACTION (*DeviceRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp , PVOID MapRegisterBase , PVOID Context ) ; PVOID DeviceContext ; ULONG NumberOfMapRegisters ; PVOID DeviceObject ; PVOID CurrentIrp ; PKDPC BufferChainingDpc ; }; typedef struct _WAIT_CONTEXT_BLOCK WAIT_CONTEXT_BLOCK; union __anonunion_Queue_43 { LIST_ENTRY ListEntry ; WAIT_CONTEXT_BLOCK Wcb ; }; struct _DEVOBJ_EXTENSION; struct _DEVOBJ_EXTENSION; struct _DEVICE_OBJECT { CSHORT Type ; USHORT Size ; LONG ReferenceCount ; struct _DRIVER_OBJECT *DriverObject ; struct _DEVICE_OBJECT *NextDevice ; struct _DEVICE_OBJECT *AttachedDevice ; struct _IRP *CurrentIrp ; PIO_TIMER Timer ; ULONG Flags ; ULONG Characteristics ; PVPB Vpb ; PVOID DeviceExtension ; ULONG DeviceType ; CCHAR StackSize ; union __anonunion_Queue_43 Queue ; ULONG AlignmentRequirement ; KDEVICE_QUEUE DeviceQueue ; KDPC Dpc ; ULONG ActiveThreadCount ; PSECURITY_DESCRIPTOR SecurityDescriptor ; KEVENT DeviceLock ; USHORT SectorSize ; USHORT Spare1 ; struct _DEVOBJ_EXTENSION *DeviceObjectExtension ; PVOID Reserved ; }; typedef struct _DEVICE_OBJECT DEVICE_OBJECT; typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT; struct _DEVOBJ_EXTENSION { CSHORT Type ; USHORT Size ; PDEVICE_OBJECT DeviceObject ; }; struct _DRIVER_EXTENSION { struct _DRIVER_OBJECT *DriverObject ; NTSTATUS (*AddDevice)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ; ULONG Count ; UNICODE_STRING ServiceKeyName ; }; typedef struct _DRIVER_EXTENSION *PDRIVER_EXTENSION; struct _DRIVER_OBJECT { CSHORT Type ; CSHORT Size ; PDEVICE_OBJECT DeviceObject ; ULONG Flags ; PVOID DriverStart ; ULONG DriverSize ; PVOID DriverSection ; PDRIVER_EXTENSION DriverExtension ; UNICODE_STRING DriverName ; PUNICODE_STRING HardwareDatabase ; PFAST_IO_DISPATCH FastIoDispatch ; NTSTATUS (*DriverInit)(struct _DRIVER_OBJECT *DriverObject , PUNICODE_STRING RegistryPath ) ; void (*DriverStartIo)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ; void (*DriverUnload)(struct _DRIVER_OBJECT *DriverObject ) ; PDRIVER_DISPATCH MajorFunction[28] ; }; typedef struct _DRIVER_OBJECT DRIVER_OBJECT; typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT; struct _SECTION_OBJECT_POINTERS { PVOID DataSectionObject ; PVOID SharedCacheMap ; PVOID ImageSectionObject ; }; typedef struct _SECTION_OBJECT_POINTERS SECTION_OBJECT_POINTERS; typedef SECTION_OBJECT_POINTERS *PSECTION_OBJECT_POINTERS; struct _IO_COMPLETION_CONTEXT { PVOID Port ; PVOID Key ; }; typedef struct _IO_COMPLETION_CONTEXT *PIO_COMPLETION_CONTEXT; struct _FILE_OBJECT { CSHORT Type ; CSHORT Size ; PDEVICE_OBJECT DeviceObject ; PVPB Vpb ; PVOID FsContext ; PVOID FsContext2 ; PSECTION_OBJECT_POINTERS SectionObjectPointer ; PVOID PrivateCacheMap ; NTSTATUS FinalStatus ; struct _FILE_OBJECT *RelatedFileObject ; BOOLEAN LockOperation ; BOOLEAN DeletePending ; BOOLEAN ReadAccess ; BOOLEAN WriteAccess ; BOOLEAN DeleteAccess ; BOOLEAN SharedRead ; BOOLEAN SharedWrite ; BOOLEAN SharedDelete ; ULONG Flags ; UNICODE_STRING FileName ; LARGE_INTEGER CurrentByteOffset ; ULONG Waiters ; ULONG Busy ; PVOID LastLock ; KEVENT Lock ; KEVENT Event ; PIO_COMPLETION_CONTEXT CompletionContext ; }; typedef struct _FILE_OBJECT *PFILE_OBJECT; union __anonunion_AssociatedIrp_44 { struct _IRP *MasterIrp ; LONG IrpCount ; PVOID SystemBuffer ; }; struct __anonstruct_AsynchronousParameters_46 { void ( __attribute__((__stdcall__)) (*UserApcRoutine))(PVOID ApcContext , PIO_STATUS_BLOCK IoStatusBlock , ULONG Reserved ) ; PVOID UserApcContext ; }; union __anonunion_Overlay_45 { struct __anonstruct_AsynchronousParameters_46 AsynchronousParameters ; LARGE_INTEGER AllocationSize ; }; struct __anonstruct____missing_field_name_50 { PVOID DriverContext[4] ; }; union __anonunion____missing_field_name_49 { KDEVICE_QUEUE_ENTRY DeviceQueueEntry ; struct __anonstruct____missing_field_name_50 __annonCompField14 ; }; struct _IO_STACK_LOCATION; struct _IO_STACK_LOCATION; union __anonunion____missing_field_name_52 { struct _IO_STACK_LOCATION *CurrentStackLocation ; ULONG PacketType ; }; struct __anonstruct____missing_field_name_51 { LIST_ENTRY ListEntry ; union __anonunion____missing_field_name_52 __annonCompField16 ; }; struct __anonstruct_Overlay_48 { union __anonunion____missing_field_name_49 __annonCompField15 ; PETHREAD Thread ; PCHAR AuxiliaryBuffer ; struct __anonstruct____missing_field_name_51 __annonCompField17 ; PFILE_OBJECT OriginalFileObject ; }; union __anonunion_Tail_47 { struct __anonstruct_Overlay_48 Overlay ; KAPC Apc ; PVOID CompletionKey ; }; struct _IRP { CSHORT Type ; USHORT Size ; PMDL MdlAddress ; ULONG Flags ; union __anonunion_AssociatedIrp_44 AssociatedIrp ; LIST_ENTRY ThreadListEntry ; IO_STATUS_BLOCK IoStatus ; KPROCESSOR_MODE RequestorMode ; BOOLEAN PendingReturned ; CHAR StackCount ; CHAR CurrentLocation ; BOOLEAN Cancel ; KIRQL CancelIrql ; CCHAR ApcEnvironment ; UCHAR AllocationFlags ; PIO_STATUS_BLOCK UserIosb ; PKEVENT UserEvent ; union __anonunion_Overlay_45 Overlay ; void (*CancelRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ; PVOID UserBuffer ; union __anonunion_Tail_47 Tail ; }; typedef struct _IRP IRP; typedef struct _IRP *PIRP; enum _DEVICE_RELATION_TYPE { BusRelations = 0, EjectionRelations = 1, PowerRelations = 2, RemovalRelations = 3, TargetDeviceRelation = 4 } ; typedef enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined = 0, DeviceUsageTypePaging = 1, DeviceUsageTypeHibernation = 2, DeviceUsageTypeDumpFile = 3 } ; typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE; struct _INTERFACE { USHORT Size ; USHORT Version ; PVOID Context ; void (*InterfaceReference)(PVOID Context ) ; void (*InterfaceDereference)(PVOID Context ) ; }; typedef struct _INTERFACE *PINTERFACE; struct _DEVICE_CAPABILITIES { USHORT Size ; USHORT Version ; ULONG DeviceD1 : 1 ; ULONG DeviceD2 : 1 ; ULONG LockSupported : 1 ; ULONG EjectSupported : 1 ; ULONG Removable : 1 ; ULONG DockDevice : 1 ; ULONG UniqueID : 1 ; ULONG SilentInstall : 1 ; ULONG RawDeviceOK : 1 ; ULONG SurpriseRemovalOK : 1 ; ULONG WakeFromD0 : 1 ; ULONG WakeFromD1 : 1 ; ULONG WakeFromD2 : 1 ; ULONG WakeFromD3 : 1 ; ULONG HardwareDisabled : 1 ; ULONG NonDynamic : 1 ; ULONG WarmEjectSupported : 1 ; ULONG Reserved : 15 ; ULONG Address ; ULONG UINumber ; DEVICE_POWER_STATE DeviceState[7] ; SYSTEM_POWER_STATE SystemWake ; DEVICE_POWER_STATE DeviceWake ; ULONG D1Latency ; ULONG D2Latency ; ULONG D3Latency ; }; typedef struct _DEVICE_CAPABILITIES *PDEVICE_CAPABILITIES; struct _POWER_SEQUENCE { ULONG SequenceD1 ; ULONG SequenceD2 ; ULONG SequenceD3 ; }; typedef struct _POWER_SEQUENCE *PPOWER_SEQUENCE; enum __anonenum_BUS_QUERY_ID_TYPE_53 { BusQueryDeviceID = 0, BusQueryHardwareIDs = 1, BusQueryCompatibleIDs = 2, BusQueryInstanceID = 3, BusQueryDeviceSerialNumber = 4 } ; typedef enum __anonenum_BUS_QUERY_ID_TYPE_53 BUS_QUERY_ID_TYPE; enum __anonenum_DEVICE_TEXT_TYPE_54 { DeviceTextDescription = 0, DeviceTextLocationInformation = 1 } ; typedef enum __anonenum_DEVICE_TEXT_TYPE_54 DEVICE_TEXT_TYPE; #pragma pack(push,4) struct __anonstruct_Create_56 { PIO_SECURITY_CONTEXT SecurityContext ; ULONG Options ; USHORT FileAttributes ; USHORT ShareAccess ; ULONG EaLength ; }; struct __anonstruct_Read_57 { ULONG Length ; ULONG Key ; LARGE_INTEGER ByteOffset ; }; struct __anonstruct_Write_58 { ULONG Length ; ULONG Key ; LARGE_INTEGER ByteOffset ; }; struct __anonstruct_QueryFile_59 { ULONG Length ; FILE_INFORMATION_CLASS FileInformationClass ; }; struct __anonstruct____missing_field_name_62 { BOOLEAN ReplaceIfExists ; BOOLEAN AdvanceOnly ; }; union __anonunion____missing_field_name_61 { struct __anonstruct____missing_field_name_62 __annonCompField18 ; ULONG ClusterCount ; HANDLE DeleteHandle ; }; struct __anonstruct_SetFile_60 { ULONG Length ; FILE_INFORMATION_CLASS FileInformationClass ; PFILE_OBJECT FileObject ; union __anonunion____missing_field_name_61 __annonCompField19 ; }; struct __anonstruct_QueryVolume_63 { ULONG Length ; FS_INFORMATION_CLASS FsInformationClass ; }; struct __anonstruct_DeviceIoControl_64 { ULONG OutputBufferLength ; ULONG InputBufferLength ; ULONG IoControlCode ; PVOID Type3InputBuffer ; }; struct __anonstruct_QuerySecurity_65 { SECURITY_INFORMATION SecurityInformation ; ULONG Length ; }; struct __anonstruct_SetSecurity_66 { SECURITY_INFORMATION SecurityInformation ; PSECURITY_DESCRIPTOR SecurityDescriptor ; }; struct __anonstruct_MountVolume_67 { PVPB Vpb ; PDEVICE_OBJECT DeviceObject ; }; struct __anonstruct_VerifyVolume_68 { PVPB Vpb ; PDEVICE_OBJECT DeviceObject ; }; struct __anonstruct_Scsi_69 { struct _SCSI_REQUEST_BLOCK *Srb ; }; struct __anonstruct_QueryDeviceRelations_70 { DEVICE_RELATION_TYPE Type ; }; struct __anonstruct_QueryInterface_71 { GUID const *InterfaceType ; USHORT Size ; USHORT Version ; PINTERFACE Interface ; PVOID InterfaceSpecificData ; }; struct __anonstruct_DeviceCapabilities_72 { PDEVICE_CAPABILITIES Capabilities ; }; struct __anonstruct_FilterResourceRequirements_73 { PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList ; }; struct __anonstruct_ReadWriteConfig_74 { ULONG WhichSpace ; PVOID Buffer ; ULONG Offset ; ULONG Length ; }; struct __anonstruct_SetLock_75 { BOOLEAN Lock ; }; struct __anonstruct_QueryId_76 { BUS_QUERY_ID_TYPE IdType ; }; struct __anonstruct_QueryDeviceText_77 { DEVICE_TEXT_TYPE DeviceTextType ; LCID LocaleId ; }; struct __anonstruct_UsageNotification_78 { BOOLEAN InPath ; BOOLEAN Reserved[3] ; DEVICE_USAGE_NOTIFICATION_TYPE Type ; }; struct __anonstruct_WaitWake_79 { SYSTEM_POWER_STATE PowerState ; }; struct __anonstruct_PowerSequence_80 { PPOWER_SEQUENCE PowerSequence ; }; struct __anonstruct_Power_81 { ULONG SystemContext ; POWER_STATE_TYPE Type ; POWER_STATE State ; POWER_ACTION ShutdownType ; }; struct __anonstruct_StartDevice_82 { PCM_RESOURCE_LIST AllocatedResources ; PCM_RESOURCE_LIST AllocatedResourcesTranslated ; }; struct __anonstruct_WMI_83 { ULONG_PTR ProviderId ; PVOID DataPath ; ULONG BufferSize ; PVOID Buffer ; }; struct __anonstruct_Others_84 { PVOID Argument1 ; PVOID Argument2 ; PVOID Argument3 ; PVOID Argument4 ; }; union __anonunion_Parameters_55 { struct __anonstruct_Create_56 Create ; struct __anonstruct_Read_57 Read ; struct __anonstruct_Write_58 Write ; struct __anonstruct_QueryFile_59 QueryFile ; struct __anonstruct_SetFile_60 SetFile ; struct __anonstruct_QueryVolume_63 QueryVolume ; struct __anonstruct_DeviceIoControl_64 DeviceIoControl ; struct __anonstruct_QuerySecurity_65 QuerySecurity ; struct __anonstruct_SetSecurity_66 SetSecurity ; struct __anonstruct_MountVolume_67 MountVolume ; struct __anonstruct_VerifyVolume_68 VerifyVolume ; struct __anonstruct_Scsi_69 Scsi ; struct __anonstruct_QueryDeviceRelations_70 QueryDeviceRelations ; struct __anonstruct_QueryInterface_71 QueryInterface ; struct __anonstruct_DeviceCapabilities_72 DeviceCapabilities ; struct __anonstruct_FilterResourceRequirements_73 FilterResourceRequirements ; struct __anonstruct_ReadWriteConfig_74 ReadWriteConfig ; struct __anonstruct_SetLock_75 SetLock ; struct __anonstruct_QueryId_76 QueryId ; struct __anonstruct_QueryDeviceText_77 QueryDeviceText ; struct __anonstruct_UsageNotification_78 UsageNotification ; struct __anonstruct_WaitWake_79 WaitWake ; struct __anonstruct_PowerSequence_80 PowerSequence ; struct __anonstruct_Power_81 Power ; struct __anonstruct_StartDevice_82 StartDevice ; struct __anonstruct_WMI_83 WMI ; struct __anonstruct_Others_84 Others ; }; struct _IO_STACK_LOCATION { UCHAR MajorFunction ; UCHAR MinorFunction ; UCHAR Flags ; UCHAR Control ; union __anonunion_Parameters_55 Parameters ; PDEVICE_OBJECT DeviceObject ; PFILE_OBJECT FileObject ; NTSTATUS (*CompletionRoutine)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; PVOID Context ; }; typedef struct _IO_STACK_LOCATION IO_STACK_LOCATION; typedef struct _IO_STACK_LOCATION *PIO_STACK_LOCATION; #pragma pack(pop) struct _CONFIGURATION_INFORMATION { ULONG DiskCount ; ULONG FloppyCount ; ULONG CdRomCount ; ULONG TapeCount ; ULONG ScsiPortCount ; ULONG SerialCount ; ULONG ParallelCount ; BOOLEAN AtDiskPrimaryAddressClaimed ; BOOLEAN AtDiskSecondaryAddressClaimed ; ULONG Version ; ULONG MediumChangerCount ; }; typedef struct _CONFIGURATION_INFORMATION CONFIGURATION_INFORMATION; typedef struct _CONFIGURATION_INFORMATION *PCONFIGURATION_INFORMATION; struct _OBJECT_HANDLE_INFORMATION { ULONG HandleAttributes ; ACCESS_MASK GrantedAccess ; }; typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION; enum _MEDIA_TYPE { Unknown = 0, F5_1Pt2_512 = 1, F3_1Pt44_512 = 2, F3_2Pt88_512 = 3, F3_20Pt8_512 = 4, F3_720_512 = 5, F5_360_512 = 6, F5_320_512 = 7, F5_320_1024 = 8, F5_180_512 = 9, F5_160_512 = 10, RemovableMedia = 11, FixedMedia = 12, F3_120M_512 = 13, F3_640_512 = 14, F5_640_512 = 15, F5_720_512 = 16, F3_1Pt2_512 = 17, F3_1Pt23_1024 = 18, F5_1Pt23_1024 = 19, F3_128Mb_512 = 20, F3_230Mb_512 = 21, F8_256_128 = 22 } ; typedef enum _MEDIA_TYPE MEDIA_TYPE; struct _FORMAT_PARAMETERS { MEDIA_TYPE MediaType ; ULONG StartCylinderNumber ; ULONG EndCylinderNumber ; ULONG StartHeadNumber ; ULONG EndHeadNumber ; }; typedef struct _FORMAT_PARAMETERS FORMAT_PARAMETERS; typedef struct _FORMAT_PARAMETERS *PFORMAT_PARAMETERS; typedef USHORT BAD_TRACK_NUMBER; typedef USHORT *PBAD_TRACK_NUMBER; struct _FORMAT_EX_PARAMETERS { MEDIA_TYPE MediaType ; ULONG StartCylinderNumber ; ULONG EndCylinderNumber ; ULONG StartHeadNumber ; ULONG EndHeadNumber ; USHORT FormatGapLength ; USHORT SectorsPerTrack ; USHORT SectorNumber[1] ; }; typedef struct _FORMAT_EX_PARAMETERS FORMAT_EX_PARAMETERS; typedef struct _FORMAT_EX_PARAMETERS *PFORMAT_EX_PARAMETERS; struct _DISK_GEOMETRY { LARGE_INTEGER Cylinders ; MEDIA_TYPE MediaType ; ULONG TracksPerCylinder ; ULONG SectorsPerTrack ; ULONG BytesPerSector ; }; typedef struct _DISK_GEOMETRY DISK_GEOMETRY; typedef struct _DISK_GEOMETRY *PDISK_GEOMETRY; #pragma pack(push,1) #pragma pack(pop) #pragma pack(push,1) #pragma pack(pop) #pragma pack(push,1) #pragma pack(pop) #pragma pack(push,1) #pragma pack(pop) #pragma pack(push,1) #pragma pack(pop) struct _TRANSFER_BUFFER { PHYSICAL_ADDRESS Logical ; PVOID Virtual ; }; typedef struct _TRANSFER_BUFFER TRANSFER_BUFFER; struct _ACPI_FDI_DATA { ULONG DriveNumber ; ULONG DeviceType ; ULONG MaxCylinderNumber ; ULONG MaxSectorNumber ; ULONG MaxHeadNumber ; ULONG StepRateHeadUnloadTime ; ULONG HeadLoadTime ; ULONG MotorOffTime ; ULONG SectorLengthCode ; ULONG SectorPerTrack ; ULONG ReadWriteGapLength ; ULONG DataTransferLength ; ULONG FormatGapLength ; ULONG FormatFillCharacter ; ULONG HeadSettleTime ; ULONG MotorSettleTime ; }; typedef struct _ACPI_FDI_DATA ACPI_FDI_DATA; enum _ACPI_FDI_DEVICE_TYPE { CmosProblem = 0, Form525Capacity360 = 1, Form525Capacity1200 = 2, Form35Capacity720 = 3, Form35Capacity1440 = 4, Form35Capacity2880 = 5 } ; struct _FDC_INFO { UCHAR FloppyControllerType ; UCHAR SpeedsAvailable ; ULONG AdapterBufferSize ; INTERFACE_TYPE BusType ; ULONG BusNumber ; ULONG ControllerNumber ; ULONG PeripheralNumber ; ULONG UnitNumber ; ULONG MaxTransferSize ; BOOLEAN AcpiBios ; BOOLEAN AcpiFdiSupported ; ACPI_FDI_DATA AcpiFdiData ; ULONG BufferCount ; ULONG BufferSize ; TRANSFER_BUFFER BufferAddress[] ; }; typedef struct _FDC_INFO FDC_INFO; typedef struct _FDC_INFO *PFDC_INFO; struct _FDC_ENABLE_PARMS { UCHAR DriveOnValue ; USHORT TimeToWait ; BOOLEAN MotorStarted ; }; typedef struct _FDC_ENABLE_PARMS FDC_ENABLE_PARMS; struct _FDC_DISK_CHANGE_PARMS { UCHAR DriveStatus ; UCHAR DriveOnValue ; }; typedef struct _FDC_DISK_CHANGE_PARMS FDC_DISK_CHANGE_PARMS; struct _ISSUE_FDC_COMMAND_PARMS { PUCHAR FifoInBuffer ; PUCHAR FifoOutBuffer ; PVOID IoHandle ; ULONG IoOffset ; ULONG TransferBytes ; ULONG TimeOut ; }; typedef struct _ISSUE_FDC_COMMAND_PARMS ISSUE_FDC_COMMAND_PARMS; struct _SET_HD_BIT_PARMS { BOOLEAN DriveType144MB ; BOOLEAN Media144MB ; BOOLEAN More120MB ; UCHAR DeviceUnit ; BOOLEAN ChangedHdBit ; }; typedef struct _SET_HD_BIT_PARMS SET_HD_BIT_PARMS; struct _MOUNTDEV_NAME { USHORT NameLength ; WCHAR Name[1] ; }; typedef struct _MOUNTDEV_NAME MOUNTDEV_NAME; typedef struct _MOUNTDEV_NAME *PMOUNTDEV_NAME; struct _MOUNTDEV_UNIQUE_ID { USHORT UniqueIdLength ; UCHAR UniqueId[1] ; }; typedef struct _MOUNTDEV_UNIQUE_ID MOUNTDEV_UNIQUE_ID; typedef struct _MOUNTDEV_UNIQUE_ID *PMOUNTDEV_UNIQUE_ID; struct _MOUNTDEV_SUGGESTED_LINK_NAME { BOOLEAN UseOnlyIfThereAreNoOtherLinks ; USHORT NameLength ; WCHAR Name[1] ; }; typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME MOUNTDEV_SUGGESTED_LINK_NAME; typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME *PMOUNTDEV_SUGGESTED_LINK_NAME; struct _BOOT_SECTOR_INFO { UCHAR JumpByte[1] ; UCHAR Ignore1[2] ; UCHAR OemData[8] ; UCHAR BytesPerSector[2] ; UCHAR Ignore2[6] ; UCHAR NumberOfSectors[2] ; UCHAR MediaByte[1] ; UCHAR Ignore3[2] ; UCHAR SectorsPerTrack[2] ; UCHAR NumberOfHeads[2] ; }; typedef struct _BOOT_SECTOR_INFO *PBOOT_SECTOR_INFO; enum _DRIVE_MEDIA_TYPE { Drive360Media160 = 0, Drive360Media180 = 1, Drive360Media320 = 2, Drive360Media32X = 3, Drive360Media360 = 4, Drive720Media720 = 5, Drive120Media160 = 6, Drive120Media180 = 7, Drive120Media320 = 8, Drive120Media32X = 9, Drive120Media360 = 10, Drive120Media120 = 11, Drive144Media720 = 12, Drive144Media144 = 13, Drive288Media720 = 14, Drive288Media144 = 15, Drive288Media288 = 16 } ; typedef enum _DRIVE_MEDIA_TYPE DRIVE_MEDIA_TYPE; enum _DRIVE_MEDIA_TYPE_NEC98 { Drive360Media160Nec98 = 0, Drive360Media180Nec98 = 1, Drive360Media320Nec98 = 2, Drive360Media32XNec98 = 3, Drive360Media360Nec98 = 4, Drive120Media160Nec98 = 5, Drive120Media180Nec98 = 6, Drive120Media320Nec98 = 7, Drive120Media32XNec98 = 8, Drive120Media360Nec98 = 9, Drive120Media640Nec98 = 10, Drive120Media720Nec98 = 11, Drive120Media120Nec98 = 12, Drive120Media123Nec98 = 13, Drive144Media640Nec98 = 14, Drive144Media720Nec98 = 15, Drive144Media120Nec98 = 16, Drive144Media123Nec98 = 17, Drive144Media144Nec98 = 18, Drive12EMedia120Nec98 = 19, Drive12EMedia123Nec98 = 20 } ; typedef enum _DRIVE_MEDIA_TYPE_NEC98 DRIVE_MEDIA_TYPE_NEC98; struct _DRIVE_MEDIA_LIMITS { DRIVE_MEDIA_TYPE HighestDriveMediaType ; DRIVE_MEDIA_TYPE LowestDriveMediaType ; }; typedef struct _DRIVE_MEDIA_LIMITS DRIVE_MEDIA_LIMITS; typedef struct _DRIVE_MEDIA_LIMITS *PDRIVE_MEDIA_LIMITS; struct _DRIVE_MEDIA_LIMITS_NEC98 { DRIVE_MEDIA_TYPE_NEC98 HighestDriveMediaType ; DRIVE_MEDIA_TYPE_NEC98 LowestDriveMediaType ; }; typedef struct _DRIVE_MEDIA_LIMITS_NEC98 DRIVE_MEDIA_LIMITS_NEC98; struct _DRIVE_MEDIA_CONSTANTS { MEDIA_TYPE MediaType ; UCHAR StepRateHeadUnloadTime ; UCHAR HeadLoadTime ; UCHAR MotorOffTime ; UCHAR SectorLengthCode ; USHORT BytesPerSector ; UCHAR SectorsPerTrack ; UCHAR ReadWriteGapLength ; UCHAR FormatGapLength ; UCHAR FormatFillCharacter ; UCHAR HeadSettleTime ; USHORT MotorSettleTimeRead ; USHORT MotorSettleTimeWrite ; UCHAR MaximumTrack ; UCHAR CylinderShift ; UCHAR DataTransferRate ; UCHAR NumberOfHeads ; UCHAR DataLength ; UCHAR MediaByte ; UCHAR SkewDelta ; }; typedef struct _DRIVE_MEDIA_CONSTANTS DRIVE_MEDIA_CONSTANTS; typedef struct _DRIVE_MEDIA_CONSTANTS *PDRIVE_MEDIA_CONSTANTS; struct _DISKETTE_EXTENSION { KSPIN_LOCK FlCancelSpinLock ; PDEVICE_OBJECT UnderlyingPDO ; PDEVICE_OBJECT TargetObject ; BOOLEAN IsStarted ; BOOLEAN IsRemoved ; BOOLEAN HoldNewRequests ; LIST_ENTRY NewRequestQueue ; KSPIN_LOCK NewRequestQueueSpinLock ; PDEVICE_OBJECT DeviceObject ; KSEMAPHORE RequestSemaphore ; KSPIN_LOCK ListSpinLock ; FAST_MUTEX ThreadReferenceMutex ; LONG ThreadReferenceCount ; PKTHREAD FloppyThread ; LIST_ENTRY ListEntry ; BOOLEAN HardwareFailed ; UCHAR HardwareFailCount ; ULONG MaxTransferSize ; UCHAR FifoBuffer[10] ; PUCHAR IoBuffer ; PMDL IoBufferMdl ; ULONG IoBufferSize ; PDRIVER_OBJECT DriverObject ; DRIVE_MEDIA_TYPE LastDriveMediaType ; BOOLEAN FloppyControllerAllocated ; BOOLEAN ACPI_BIOS ; UCHAR DriveType ; ULONG BytesPerSector ; ULONG ByteCapacity ; MEDIA_TYPE MediaType ; DRIVE_MEDIA_TYPE DriveMediaType ; UCHAR DeviceUnit ; UCHAR DriveOnValue ; BOOLEAN IsReadOnly ; DRIVE_MEDIA_CONSTANTS BiosDriveMediaConstants ; DRIVE_MEDIA_CONSTANTS DriveMediaConstants ; UCHAR PerpendicularMode ; BOOLEAN ControllerConfigurable ; UNICODE_STRING DeviceName ; UNICODE_STRING InterfaceString ; UNICODE_STRING ArcName ; BOOLEAN ReleaseFdcWithMotorRunning ; BOOLEAN PoweringDown ; FAST_MUTEX PowerDownMutex ; FAST_MUTEX HoldNewReqMutex ; }; typedef struct _DISKETTE_EXTENSION DISKETTE_EXTENSION; typedef DISKETTE_EXTENSION *PDISKETTE_EXTENSION; struct _SENSE_DEVISE_STATUS_PTOS { UCHAR ST3_PTOS ; }; typedef struct _SENSE_DEVISE_STATUS_PTOS SENSE_DEVISE_STATUS_PTOS; typedef struct _SENSE_DEVISE_STATUS_PTOS *PSENSE_DEVISE_STATUS_PTOS; #pragma pack(push,8) #pragma pack(pop) struct _KAPC; struct _KDPC; #pragma pack(push,4) #pragma pack(pop) #pragma pack(push,4) #pragma pack(pop) #pragma pack(push,1) #pragma pack(pop) struct _DRIVER_OBJECT; struct _DEVICE_OBJECT; struct _DRIVER_OBJECT; struct _FILE_OBJECT; struct _IRP; struct _SCSI_REQUEST_BLOCK; #pragma pack(push,4) #pragma pack(pop) extern int ( __attribute__((__cdecl__)) sprintf)(char * , char const * , ...) ; extern int ( __attribute__((__cdecl__)) swprintf)(wchar_t * , wchar_t const * , ...) ; #pragma warning(push) #pragma warning(disable:4035) __inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShllMod32___0)(ULONGLONG Value , ULONG ShiftCount ) { { return (0ULL); } } __inline LONGLONG ( __attribute__((__stdcall__)) Int64ShraMod32___0)(LONGLONG Value , ULONG ShiftCount ) { { return (0LL); } } __inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShrlMod32___0)(ULONGLONG Value , ULONG ShiftCount ) { { return (0ULL); } } #pragma warning(pop) __inline void ListEntry32To64(PLIST_ENTRY32 l32 , PLIST_ENTRY64 l64 ) { ULONG __cil_tmp3 ; long __cil_tmp4 ; long long __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; ULONG __cil_tmp10 ; long __cil_tmp11 ; long long __cil_tmp12 ; ULONG *mem_13 ; ULONGLONG *mem_14 ; ULONG *mem_15 ; ULONGLONG *mem_16 ; { mem_13 = (ULONG *)l32; __cil_tmp3 = *mem_13; __cil_tmp4 = (long )__cil_tmp3; __cil_tmp5 = (long long )__cil_tmp4; mem_14 = (ULONGLONG *)l64; *mem_14 = (unsigned long long )__cil_tmp5; __cil_tmp6 = (unsigned int )l64; __cil_tmp7 = __cil_tmp6 + 8; __cil_tmp8 = (unsigned int )l32; __cil_tmp9 = __cil_tmp8 + 4; mem_15 = (ULONG *)__cil_tmp9; __cil_tmp10 = *mem_15; __cil_tmp11 = (long )__cil_tmp10; __cil_tmp12 = (long long )__cil_tmp11; mem_16 = (ULONGLONG *)__cil_tmp7; *mem_16 = (unsigned long long )__cil_tmp12; return; } } __inline void ListEntry64To32(PLIST_ENTRY64 l64 , PLIST_ENTRY32 l32 ) { ULONGLONG __cil_tmp3 ; unsigned int __cil_tmp4 ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; ULONGLONG __cil_tmp8 ; ULONGLONG *mem_9 ; ULONG *mem_10 ; ULONGLONG *mem_11 ; ULONG *mem_12 ; { mem_9 = (ULONGLONG *)l64; __cil_tmp3 = *mem_9; mem_10 = (ULONG *)l32; *mem_10 = (unsigned long )__cil_tmp3; __cil_tmp4 = (unsigned int )l32; __cil_tmp5 = __cil_tmp4 + 4; __cil_tmp6 = (unsigned int )l64; __cil_tmp7 = __cil_tmp6 + 8; mem_11 = (ULONGLONG *)__cil_tmp7; __cil_tmp8 = *mem_11; mem_12 = (ULONG *)__cil_tmp5; *mem_12 = (unsigned long )__cil_tmp8; return; } } extern void *( __attribute__((__cdecl__)) memcpy)(void * , void const * , size_t ) ; extern void *( __attribute__((__cdecl__)) memset)(void * , int , size_t ) ; extern void *( __attribute__((__cdecl__)) memmove)(void * , void const * , size_t ) ; extern PKTHREAD ( __attribute__((__stdcall__)) KeGetCurrentThread)() ; #pragma warning(disable:4103) #pragma warning(disable:4103) __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo , PCWSTR Path , PRTL_QUERY_REGISTRY_TABLE QueryTable , PVOID Context , PVOID Environment ) ; __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo , PCWSTR Path , PCWSTR ValueName ) ; __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString , PCSZ SourceString ) ; __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString , PCWSTR SourceString ) ; __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString , PANSI_STRING SourceString , BOOLEAN AllocateDestinationString ) ; __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString , PUNICODE_STRING SourceString ) ; __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) ; __attribute__((__dllimport__)) SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const *Source1 , void const *Source2 , SIZE_T Length ) ; __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerAdd)(LARGE_INTEGER Addend1 , LARGE_INTEGER Addend2 ) { LARGE_INTEGER Sum ; { Sum.QuadPart = Addend1.QuadPart + Addend2.QuadPart; return (Sum); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedIntegerMultiply)(LONG Multiplicand , LONG Multiplier ) { LARGE_INTEGER Product ; unsigned long long __cil_tmp4 ; long long __cil_tmp5 ; unsigned long long __cil_tmp6 ; unsigned long long __cil_tmp7 ; { __cil_tmp4 = (unsigned long long )Multiplier; __cil_tmp5 = (long long )Multiplicand; __cil_tmp6 = (unsigned long long )__cil_tmp5; __cil_tmp7 = __cil_tmp6 * __cil_tmp4; Product.QuadPart = (long long )__cil_tmp7; return (Product); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedUnsignedMultiply)(ULONG Multiplicand , ULONG Multiplier ) { LARGE_INTEGER Product ; unsigned long long __cil_tmp4 ; unsigned long long __cil_tmp5 ; unsigned long long __cil_tmp6 ; { __cil_tmp4 = (unsigned long long )Multiplier; __cil_tmp5 = (unsigned long long )Multiplicand; __cil_tmp6 = __cil_tmp5 * __cil_tmp4; Product.QuadPart = (long long )__cil_tmp6; return (Product); } } __inline ULONG ( __attribute__((__stdcall__)) RtlEnlargedUnsignedDivide)(ULARGE_INTEGER Dividend , ULONG Divisor , PULONG Remainder ) { ULONG Quotient ; unsigned long long __cil_tmp5 ; ULONGLONG __cil_tmp6 ; void *__cil_tmp7 ; CHAR *__cil_tmp8 ; unsigned int __cil_tmp9 ; CHAR *__cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned long long __cil_tmp12 ; unsigned long long __cil_tmp13 ; { __cil_tmp5 = (unsigned long long )Divisor; __cil_tmp6 = Dividend.QuadPart / __cil_tmp5; Quotient = (unsigned long )__cil_tmp6; { __cil_tmp7 = (void *)0; __cil_tmp8 = (CHAR *)__cil_tmp7; __cil_tmp9 = (unsigned int )__cil_tmp8; __cil_tmp10 = (CHAR *)Remainder; __cil_tmp11 = (unsigned int )__cil_tmp10; if (__cil_tmp11 != __cil_tmp9) { __cil_tmp12 = (unsigned long long )Divisor; __cil_tmp13 = Dividend.QuadPart % __cil_tmp12; *Remainder = (unsigned long )__cil_tmp13; } else { } } return (Quotient); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerNegate)(LARGE_INTEGER Subtrahend ) { LARGE_INTEGER Difference ; { Difference.QuadPart = - Subtrahend.QuadPart; return (Difference); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerSubtract)(LARGE_INTEGER Minuend , LARGE_INTEGER Subtrahend ) { LARGE_INTEGER Difference ; { Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart; return (Difference); } } #pragma warning(push) #pragma warning(disable:4035) __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertLongToLargeInteger)(LONG SignedInteger ) { LARGE_INTEGER stub ; { return (stub); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertUlongToLargeInteger)(ULONG UnsignedInteger ) { LARGE_INTEGER stub ; { return (stub); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftLeft)(LARGE_INTEGER LargeInteger , CCHAR ShiftCount ) { LARGE_INTEGER stub ; { return (stub); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftRight)(LARGE_INTEGER LargeInteger , CCHAR ShiftCount ) { LARGE_INTEGER stub ; { return (stub); } } __inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerArithmeticShift)(LARGE_INTEGER LargeInteger , CCHAR ShiftCount ) { LARGE_INTEGER stub ; { return (stub); } } #pragma warning(pop) __inline LUID ( __attribute__((__stdcall__)) RtlConvertLongToLuid)(LONG Long ) { LUID TempLuid ; LARGE_INTEGER TempLi ; { { TempLi = RtlConvertLongToLargeInteger(Long); TempLuid.LowPart = TempLi.__annonCompField1.LowPart; TempLuid.HighPart = TempLi.__annonCompField1.HighPart; } return (TempLuid); } } __inline LUID ( __attribute__((__stdcall__)) RtlConvertUlongToLuid)(ULONG Ulong ) { LUID TempLuid ; { TempLuid.LowPart = Ulong; TempLuid.HighPart = 0L; return (TempLuid); } } extern __attribute__((__dllimport__)) LONG ( __attribute__((__fastcall__)) InterlockedExchange)(PLONG Target , LONG Value ) ; #pragma warning(disable:4035) __inline ULONG KeGetCurrentProcessorNumber(void) { { return (0UL); } } #pragma warning(push) #pragma warning(disable:4164) #pragma function(_enable) #pragma function(_disable) #pragma warning(pop) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) __attribute__((__dllimport__)) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type , BOOLEAN State ) ; __attribute__((__dllimport__)) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait ) ; __attribute__((__dllimport__)) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore , LONG Count , LONG Limit ) ; __attribute__((__dllimport__)) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment , LONG Adjustment , BOOLEAN Wait ) ; __attribute__((__dllimport__)) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Interval ) ; extern __attribute__((__dllimport__)) KPRIORITY KeSetPriorityThread(PKTHREAD Thread , KPRIORITY Priority ) ; __attribute__((__dllimport__)) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Timeout ) ; __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) ; extern __attribute__((__dllimport__)) KIRQL ( __attribute__((__fastcall__)) KfAcquireSpinLock)(PKSPIN_LOCK SpinLock ) ; __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock , KIRQL NewIrql ) ; __attribute__((__dllimport__)) PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) ; __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) ; __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) ; __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead , PKSPIN_LOCK Lock ) ; extern __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPopEntrySList)(PSLIST_HEADER ListHead , PKSPIN_LOCK Lock ) ; extern __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPushEntrySList)(PSLIST_HEADER ListHead , PSINGLE_LIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; __inline PVOID ExAllocateFromNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside ) { PVOID Entry ; PSINGLE_LIST_ENTRY tmp ; unsigned int __cil_tmp4 ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; ULONG __cil_tmp10 ; SLIST_HEADER *__cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; KSPIN_LOCK *__cil_tmp14 ; void *__cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; ULONG __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; PVOID (*__cil_tmp28)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; POOL_TYPE __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; ULONG __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; ULONG __cil_tmp40 ; ULONG *mem_41 ; ULONG *mem_42 ; ULONG *mem_43 ; ULONG *mem_44 ; PVOID (**mem_45)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; POOL_TYPE *mem_46 ; ULONG *mem_47 ; ULONG *mem_48 ; { { __cil_tmp4 = 0 + 12; __cil_tmp5 = (unsigned int )Lookaside; __cil_tmp6 = __cil_tmp5 + __cil_tmp4; __cil_tmp7 = 0 + 12; __cil_tmp8 = (unsigned int )Lookaside; __cil_tmp9 = __cil_tmp8 + __cil_tmp7; mem_41 = (ULONG *)__cil_tmp9; __cil_tmp10 = *mem_41; mem_42 = (ULONG *)__cil_tmp6; *mem_42 = __cil_tmp10 + 1UL; __cil_tmp11 = (SLIST_HEADER *)Lookaside; __cil_tmp12 = (unsigned int )Lookaside; __cil_tmp13 = __cil_tmp12 + 100; __cil_tmp14 = (KSPIN_LOCK *)__cil_tmp13; tmp = ExInterlockedPopEntrySList(__cil_tmp11, __cil_tmp14); Entry = (void *)tmp; } { __cil_tmp15 = (void *)0; __cil_tmp16 = (unsigned int )__cil_tmp15; __cil_tmp17 = (unsigned int )Entry; if (__cil_tmp17 == __cil_tmp16) { { __cil_tmp18 = 0 + 16; __cil_tmp19 = (unsigned int )Lookaside; __cil_tmp20 = __cil_tmp19 + __cil_tmp18; __cil_tmp21 = 0 + 16; __cil_tmp22 = (unsigned int )Lookaside; __cil_tmp23 = __cil_tmp22 + __cil_tmp21; mem_43 = (ULONG *)__cil_tmp23; __cil_tmp24 = *mem_43; mem_44 = (ULONG *)__cil_tmp20; *mem_44 = __cil_tmp24 + 1UL; __cil_tmp25 = 0 + 68; __cil_tmp26 = (unsigned int )Lookaside; __cil_tmp27 = __cil_tmp26 + __cil_tmp25; mem_45 = (PVOID (**)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ))__cil_tmp27; __cil_tmp28 = *mem_45; __cil_tmp29 = 0 + 28; __cil_tmp30 = (unsigned int )Lookaside; __cil_tmp31 = __cil_tmp30 + __cil_tmp29; mem_46 = (POOL_TYPE *)__cil_tmp31; __cil_tmp32 = *mem_46; __cil_tmp33 = 0 + 64; __cil_tmp34 = (unsigned int )Lookaside; __cil_tmp35 = __cil_tmp34 + __cil_tmp33; mem_47 = (ULONG *)__cil_tmp35; __cil_tmp36 = *mem_47; __cil_tmp37 = 0 + 60; __cil_tmp38 = (unsigned int )Lookaside; __cil_tmp39 = __cil_tmp38 + __cil_tmp37; mem_48 = (ULONG *)__cil_tmp39; __cil_tmp40 = *mem_48; Entry = (*__cil_tmp28)(__cil_tmp32, __cil_tmp36, __cil_tmp40); } } else { } } return (Entry); } } __inline void ExFreeToNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside , PVOID Entry ) { unsigned int __cil_tmp3 ; unsigned int __cil_tmp4 ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; ULONG __cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; USHORT __cil_tmp13 ; int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; USHORT __cil_tmp20 ; int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; ULONG __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; void (*__cil_tmp32)(PVOID Buffer ) ; SLIST_HEADER *__cil_tmp33 ; struct _SINGLE_LIST_ENTRY *__cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; KSPIN_LOCK *__cil_tmp37 ; ULONG *mem_38 ; ULONG *mem_39 ; USHORT *mem_40 ; USHORT *mem_41 ; ULONG *mem_42 ; ULONG *mem_43 ; void (**mem_44)(PVOID Buffer ) ; { __cil_tmp3 = 0 + 20; __cil_tmp4 = (unsigned int )Lookaside; __cil_tmp5 = __cil_tmp4 + __cil_tmp3; __cil_tmp6 = 0 + 20; __cil_tmp7 = (unsigned int )Lookaside; __cil_tmp8 = __cil_tmp7 + __cil_tmp6; mem_38 = (ULONG *)__cil_tmp8; __cil_tmp9 = *mem_38; mem_39 = (ULONG *)__cil_tmp5; *mem_39 = __cil_tmp9 + 1UL; { __cil_tmp10 = 0 + 8; __cil_tmp11 = (unsigned int )Lookaside; __cil_tmp12 = __cil_tmp11 + __cil_tmp10; mem_40 = (USHORT *)__cil_tmp12; __cil_tmp13 = *mem_40; __cil_tmp14 = (int )__cil_tmp13; __cil_tmp15 = 0 + 4; __cil_tmp16 = 0 + __cil_tmp15; __cil_tmp17 = 0 + __cil_tmp16; __cil_tmp18 = (unsigned int )Lookaside; __cil_tmp19 = __cil_tmp18 + __cil_tmp17; mem_41 = (USHORT *)__cil_tmp19; __cil_tmp20 = *mem_41; __cil_tmp21 = (int )__cil_tmp20; if (__cil_tmp21 >= __cil_tmp14) { { __cil_tmp22 = 0 + 24; __cil_tmp23 = (unsigned int )Lookaside; __cil_tmp24 = __cil_tmp23 + __cil_tmp22; __cil_tmp25 = 0 + 24; __cil_tmp26 = (unsigned int )Lookaside; __cil_tmp27 = __cil_tmp26 + __cil_tmp25; mem_42 = (ULONG *)__cil_tmp27; __cil_tmp28 = *mem_42; mem_43 = (ULONG *)__cil_tmp24; *mem_43 = __cil_tmp28 + 1UL; __cil_tmp29 = 0 + 72; __cil_tmp30 = (unsigned int )Lookaside; __cil_tmp31 = __cil_tmp30 + __cil_tmp29; mem_44 = (void (**)(PVOID Buffer ))__cil_tmp31; __cil_tmp32 = *mem_44; (*__cil_tmp32)(Entry); } } else { { __cil_tmp33 = (SLIST_HEADER *)Lookaside; __cil_tmp34 = (struct _SINGLE_LIST_ENTRY *)Entry; __cil_tmp35 = (unsigned int )Lookaside; __cil_tmp36 = __cil_tmp35 + 100; __cil_tmp37 = (KSPIN_LOCK *)__cil_tmp36; ExInterlockedPushEntrySList(__cil_tmp33, __cil_tmp34, __cil_tmp37); } } } return; } } extern __attribute__((__dllimport__)) void MmProbeAndLockPages(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode , LOCK_OPERATION Operation ) ; __attribute__((__dllimport__)) void MmUnlockPages(PMDL MemoryDescriptorList ) ; __attribute__((__dllimport__)) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode , MEMORY_CACHING_TYPE CacheType , PVOID BaseAddress , ULONG BugCheckOnFailure , MM_PAGE_PRIORITY Priority ) ; __attribute__((__dllimport__)) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS HighestAcceptableAddress ) ; __attribute__((__dllimport__)) void MmFreeContiguousMemory(PVOID BaseAddress ) ; __attribute__((__dllimport__)) void MmResetDriverPaging(PVOID AddressWithinSection ) ; __attribute__((__dllimport__)) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ; __attribute__((__dllimport__)) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle , ULONG DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , HANDLE ProcessHandle , PCLIENT_ID ClientId , void (*StartRoutine)(PVOID StartContext ) , PVOID StartContext ) ; __attribute__((__dllimport__)) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ; #pragma warning(disable:4103) #pragma warning(disable:4103) __attribute__((__dllimport__)) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length , BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota , PIRP Irp ) ; __attribute__((__dllimport__)) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice ) ; __attribute__((__dllimport__)) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject , PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset , PIO_STATUS_BLOCK IoStatusBlock ) ; __attribute__((__dllimport__)) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode , PDEVICE_OBJECT DeviceObject , PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer , ULONG OutputBufferLength , BOOLEAN InternalDeviceIoControl , PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock ) ; __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp , CCHAR PriorityBoost ) ; __attribute__((__dllimport__)) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject , ULONG DeviceExtensionSize , PUNICODE_STRING DeviceName , ULONG DeviceType , ULONG DeviceCharacteristics , BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) ; __attribute__((__dllimport__)) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName ) ; __attribute__((__dllimport__)) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ; __attribute__((__dllimport__)) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ; __attribute__((__dllimport__)) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ; __attribute__((__dllimport__)) void IoFreeIrp(PIRP Irp ) ; __attribute__((__dllimport__)) void IoFreeMdl(PMDL Mdl ) ; __attribute__((__dllimport__)) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) ; extern __attribute__((__dllimport__)) void IoGetStackLimits(PULONG_PTR LowLimit , PULONG_PTR HighLimit ) ; __inline ULONG_PTR IoGetRemainingStackSize(void) { ULONG_PTR Top ; ULONG_PTR Bottom ; ULONG_PTR *__cil_tmp3 ; ULONG_PTR __cil_tmp4 ; unsigned long __cil_tmp5 ; { { IoGetStackLimits(& Bottom, & Top); } { __cil_tmp3 = & Bottom; __cil_tmp4 = *__cil_tmp3; __cil_tmp5 = (unsigned long )(& Top); return (__cil_tmp5 - __cil_tmp4); } } } __attribute__((__dllimport__)) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType , PULONG BusNumber , PCONFIGURATION_TYPE ControllerType , PULONG ControllerNumber , PCONFIGURATION_TYPE PeripheralType , PULONG PeripheralNumber , NTSTATUS (*CalloutRoutine)(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType , ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation , CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber , PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType , ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) , PVOID Context ) ; __attribute__((__dllimport__)) void IoReleaseCancelSpinLock(KIRQL Irql ) ; __attribute__((__dllimport__)) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ; __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject , GUID const *InterfaceClassGuid , PUNICODE_STRING ReferenceString , PUNICODE_STRING SymbolicLinkName ) ; __attribute__((__dllimport__)) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName , BOOLEAN Enable ) ; #pragma warning(disable:4200) #pragma warning(default:4200) __attribute__((__dllimport__)) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; __attribute__((__dllimport__)) void PoStartNextPowerIrp(PIRP Irp ) ; __attribute__((__dllimport__)) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType , KPROCESSOR_MODE AccessMode , PVOID *Object , POBJECT_HANDLE_INFORMATION HandleInformation ) ; __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) ; __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) ; #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) __attribute__((__selectany__)) struct _GUID const MOUNTDEV_MOUNTED_DEVICE_GUID = {1408590605UL, (unsigned short)46783, (unsigned short)4560, {(unsigned char)148, (unsigned char)242, (unsigned char)0, (unsigned char)160, (unsigned char)201, (unsigned char)30, (unsigned char)251, (unsigned char)139}}; DRIVE_MEDIA_LIMITS _DriveMediaLimits[5] = { {(DRIVE_MEDIA_TYPE )4, (DRIVE_MEDIA_TYPE )0}, {(DRIVE_MEDIA_TYPE )11, (DRIVE_MEDIA_TYPE )6}, {(DRIVE_MEDIA_TYPE )5, (DRIVE_MEDIA_TYPE )5}, {(DRIVE_MEDIA_TYPE )13, (DRIVE_MEDIA_TYPE )12}, {(DRIVE_MEDIA_TYPE )16, (DRIVE_MEDIA_TYPE )14}}; DRIVE_MEDIA_LIMITS_NEC98 _DriveMediaLimits_NEC98[6] = { {(DRIVE_MEDIA_TYPE_NEC98 )4, (DRIVE_MEDIA_TYPE_NEC98 )0}, {(DRIVE_MEDIA_TYPE_NEC98 )13, (DRIVE_MEDIA_TYPE_NEC98 )5}, {(DRIVE_MEDIA_TYPE_NEC98 )11, (DRIVE_MEDIA_TYPE_NEC98 )5}, {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14}, {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14}, {(DRIVE_MEDIA_TYPE_NEC98 )20, (DRIVE_MEDIA_TYPE_NEC98 )19}}; PDRIVE_MEDIA_LIMITS DriveMediaLimits ; DRIVE_MEDIA_CONSTANTS _DriveMediaConstants[17] = { {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255, (unsigned char)254, (unsigned char)0}, {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255, (unsigned char)252, (unsigned char)0}, {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3, (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)253, (unsigned char)0}, {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)2}, {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255, (unsigned char)254, (unsigned char)0}, {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255, (unsigned char)252, (unsigned char)0}, {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3, (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255, (unsigned char)253, (unsigned char)0}, {(MEDIA_TYPE )1, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84, (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)0}, {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)2}, {(MEDIA_TYPE )2, (unsigned char)175, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101, (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)240, (unsigned char)3}, {(MEDIA_TYPE )5, (unsigned char)225, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)2}, {(MEDIA_TYPE )2, (unsigned char)209, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101, (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)240, (unsigned char)3}, {(MEDIA_TYPE )3, (unsigned char)161, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)36, (unsigned char)56, (unsigned char)83, (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)3, (unsigned char)2, (unsigned char)255, (unsigned char)240, (unsigned char)6}}; DRIVE_MEDIA_CONSTANTS _DriveMediaConstants_NEC98[21] = { {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255, (unsigned char)254, (unsigned char)0}, {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255, (unsigned char)252, (unsigned char)0}, {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3, (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240, (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000, (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)253, (unsigned char)0}, {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255, (unsigned char)254, (unsigned char)0}, {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255, (unsigned char)252, (unsigned char)0}, {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)3, (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)255, (unsigned char)0}, {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255, (unsigned char)253, (unsigned char)0}, {(MEDIA_TYPE )15, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)251, (unsigned char)0}, {(MEDIA_TYPE )16, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)2}, {(MEDIA_TYPE )1, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)0}, {(MEDIA_TYPE )19, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3, (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)254, (unsigned char)0}, {(MEDIA_TYPE )14, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)251, (unsigned char)0}, {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)2}, {(MEDIA_TYPE )17, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)0}, {(MEDIA_TYPE )18, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3, (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)254, (unsigned char)0}, {(MEDIA_TYPE )2, (unsigned char)223, (unsigned char)36, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)108, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)240, (unsigned char)3}, {(MEDIA_TYPE )1, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)2, (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)249, (unsigned char)0}, {(MEDIA_TYPE )19, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)3, (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116, (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000, (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255, (unsigned char)254, (unsigned char)0}}; PDRIVE_MEDIA_CONSTANTS DriveMediaConstants ; SENSE_DEVISE_STATUS_PTOS Result_Status3_PTOS[4] ; NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) ; void FloppyUnload(PDRIVER_OBJECT DriverObject ) ; NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType , ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation , CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber , PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType , ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ; NTSTATUS FlInitializeControllerHardware(PDISKETTE_EXTENSION DisketteExtension ) ; NTSTATUS FloppyCreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS FloppyDeviceControl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS FloppyReadWrite(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS FlRecalibrateDrive(PDISKETTE_EXTENSION DisketteExtension ) ; NTSTATUS FlDatarateSpecifyConfigure(PDISKETTE_EXTENSION DisketteExtension ) ; NTSTATUS FlStartDrive(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN WriteOperation , BOOLEAN SetUpMedia , BOOLEAN IgnoreChange ) ; void FlFinishOperation(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ; NTSTATUS FlDetermineMediaType(PDISKETTE_EXTENSION DisketteExtension ) ; void FloppyThread(PVOID Context ) ; NTSTATUS FlReadWrite(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN DriveStarted ) ; NTSTATUS FlFormat(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ; NTSTATUS FlIssueCommand(PDISKETTE_EXTENSION DisketteExtension , PUCHAR FifoInBuffer , PUCHAR FifoOutBuffer , PMDL IoMdl , ULONG IoOffset , ULONG TransferBytes ) ; BOOLEAN FlCheckFormatParameters(PDISKETTE_EXTENSION DisketteExtension , PFORMAT_PARAMETERS FormatParameters ) ; NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ; NTSTATUS FlInterpretError(UCHAR StatusRegister1 , UCHAR StatusRegister2 ) ; void FlAllocateIoBuffer(PDISKETTE_EXTENSION DisketteExtension , ULONG BufferSize ) ; void FlFreeIoBuffer(PDISKETTE_EXTENSION DisketteExtension ) ; void FlConsolidateMediaTypeWithBootSector(PDISKETTE_EXTENSION DisketteExtension , PBOOT_SECTOR_INFO BootSector ) ; void FlCheckBootSector(PDISKETTE_EXTENSION DisketteExtension ) ; NTSTATUS FlReadWriteTrack(PDISKETTE_EXTENSION DisketteExtension , PMDL IoMdl , ULONG IoOffset , BOOLEAN WriteOperation , UCHAR Cylinder , UCHAR Head , UCHAR Sector , UCHAR NumberOfSectors , BOOLEAN NeedSeek ) ; NTSTATUS FlFdcDeviceIo(PDEVICE_OBJECT DeviceObject , ULONG Ioctl , PVOID Data ) ; NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject ) ; NTSTATUS FloppyPnp(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS FloppyPower(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS FloppyPnpComplete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; NTSTATUS FloppyQueueRequest(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ; NTSTATUS FloppyStartDevice(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; void FloppyProcessQueuedRequests(PDISKETTE_EXTENSION DisketteExtension ) ; void FloppyCancelQueuedRequest(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo ) ; NTSTATUS FlHdbit(PDISKETTE_EXTENSION DisketteExtension ) ; #pragma alloc_text(INIT,DriverEntry) #pragma alloc_text(PAGE,FloppyAddDevice) #pragma alloc_text(PAGE,FloppyPnp) #pragma alloc_text(PAGE,FloppyPower) #pragma alloc_text(PAGE,FlConfigCallBack) #pragma alloc_text(PAGE,FlInitializeControllerHardware) #pragma alloc_text(PAGE,FlInterpretError) #pragma alloc_text(PAGE,FlDatarateSpecifyConfigure) #pragma alloc_text(PAGE,FlRecalibrateDrive) #pragma alloc_text(PAGE,FlDetermineMediaType) #pragma alloc_text(PAGE,FlCheckBootSector) #pragma alloc_text(PAGE,FlConsolidateMediaTypeWithBootSector) #pragma alloc_text(PAGE,FlIssueCommand) #pragma alloc_text(PAGE,FlReadWriteTrack) #pragma alloc_text(PAGE,FlReadWrite) #pragma alloc_text(PAGE,FlFormat) #pragma alloc_text(PAGE,FlFinishOperation) #pragma alloc_text(PAGE,FlStartDrive) #pragma alloc_text(PAGE,FloppyThread) #pragma alloc_text(PAGE,FlAllocateIoBuffer) #pragma alloc_text(PAGE,FlFreeIoBuffer) #pragma alloc_text(PAGE,FloppyCreateClose) #pragma alloc_text(PAGE,FloppyDeviceControl) #pragma alloc_text(PAGE,FloppyReadWrite) #pragma alloc_text(PAGE,FlCheckFormatParameters) #pragma alloc_text(PAGE,FlFdcDeviceIo) #pragma alloc_text(PAGE,FlHdbit) NTSTATUS myStatus ; int s ; int pended ; NTSTATUS (*compFptr)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; int compRegistered ; int lowerDriverReturn ; int setEventCalled ; int customIrp ; ULONG PagingReferenceCount = 0UL; PFAST_MUTEX PagingMutex = (struct _FAST_MUTEX *)((void *)0); NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) { NTSTATUS ntStatus ; PVOID tmp ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; PDRIVER_EXTENSION __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; enum _POOL_TYPE __cil_tmp40 ; unsigned long __cil_tmp41 ; void *__cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; KEVENT *__cil_tmp49 ; enum _EVENT_TYPE __cil_tmp50 ; void *__cil_tmp51 ; KUSER_SHARED_DATA *__cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp55 ; int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; DRIVE_MEDIA_LIMITS_NEC98 *__cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; KUSER_SHARED_DATA *__cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp65 ; int __cil_tmp66 ; unsigned int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; PDRIVER_DISPATCH *mem_71 ; PDRIVER_DISPATCH *mem_72 ; PDRIVER_DISPATCH *mem_73 ; PDRIVER_DISPATCH *mem_74 ; PDRIVER_DISPATCH *mem_75 ; PDRIVER_DISPATCH *mem_76 ; PDRIVER_DISPATCH *mem_77 ; void (**mem_78)(struct _DRIVER_OBJECT *DriverObject ) ; PDRIVER_EXTENSION *mem_79 ; NTSTATUS (**mem_80)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ; LONG *mem_81 ; ULONG *mem_82 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_83 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_84 ; { ntStatus = 0L; { while (1) { while_0_continue: /* CIL Label */ ; goto while_0_break; } while_0_break: /* CIL Label */ ; } { __cil_tmp5 = 0 * 4U; __cil_tmp6 = 56 + __cil_tmp5; __cil_tmp7 = (unsigned int )DriverObject; __cil_tmp8 = __cil_tmp7 + __cil_tmp6; mem_71 = (PDRIVER_DISPATCH *)__cil_tmp8; *mem_71 = & FloppyCreateClose; __cil_tmp9 = 2 * 4U; __cil_tmp10 = 56 + __cil_tmp9; __cil_tmp11 = (unsigned int )DriverObject; __cil_tmp12 = __cil_tmp11 + __cil_tmp10; mem_72 = (PDRIVER_DISPATCH *)__cil_tmp12; *mem_72 = & FloppyCreateClose; __cil_tmp13 = 3 * 4U; __cil_tmp14 = 56 + __cil_tmp13; __cil_tmp15 = (unsigned int )DriverObject; __cil_tmp16 = __cil_tmp15 + __cil_tmp14; mem_73 = (PDRIVER_DISPATCH *)__cil_tmp16; *mem_73 = & FloppyReadWrite; __cil_tmp17 = 4 * 4U; __cil_tmp18 = 56 + __cil_tmp17; __cil_tmp19 = (unsigned int )DriverObject; __cil_tmp20 = __cil_tmp19 + __cil_tmp18; mem_74 = (PDRIVER_DISPATCH *)__cil_tmp20; *mem_74 = & FloppyReadWrite; __cil_tmp21 = 14 * 4U; __cil_tmp22 = 56 + __cil_tmp21; __cil_tmp23 = (unsigned int )DriverObject; __cil_tmp24 = __cil_tmp23 + __cil_tmp22; mem_75 = (PDRIVER_DISPATCH *)__cil_tmp24; *mem_75 = & FloppyDeviceControl; __cil_tmp25 = 27 * 4U; __cil_tmp26 = 56 + __cil_tmp25; __cil_tmp27 = (unsigned int )DriverObject; __cil_tmp28 = __cil_tmp27 + __cil_tmp26; mem_76 = (PDRIVER_DISPATCH *)__cil_tmp28; *mem_76 = & FloppyPnp; __cil_tmp29 = 22 * 4U; __cil_tmp30 = 56 + __cil_tmp29; __cil_tmp31 = (unsigned int )DriverObject; __cil_tmp32 = __cil_tmp31 + __cil_tmp30; mem_77 = (PDRIVER_DISPATCH *)__cil_tmp32; *mem_77 = & FloppyPower; __cil_tmp33 = (unsigned int )DriverObject; __cil_tmp34 = __cil_tmp33 + 52; mem_78 = (void (**)(struct _DRIVER_OBJECT *DriverObject ))__cil_tmp34; *mem_78 = & FloppyUnload; __cil_tmp35 = (unsigned int )DriverObject; __cil_tmp36 = __cil_tmp35 + 24; mem_79 = (PDRIVER_EXTENSION *)__cil_tmp36; __cil_tmp37 = *mem_79; __cil_tmp38 = (unsigned int )__cil_tmp37; __cil_tmp39 = __cil_tmp38 + 4; mem_80 = (NTSTATUS (**)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ))__cil_tmp39; *mem_80 = & FloppyAddDevice; __cil_tmp40 = (enum _POOL_TYPE )0; __cil_tmp41 = (unsigned long )32U; tmp = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp41, 1886350406UL); PagingMutex = (struct _FAST_MUTEX *)tmp; } { __cil_tmp42 = (void *)0; __cil_tmp43 = (unsigned int )__cil_tmp42; __cil_tmp44 = (unsigned int )PagingMutex; if (__cil_tmp44 == __cil_tmp43) { return (-1073741670L); } else { } } { mem_81 = (LONG *)PagingMutex; *mem_81 = 1L; __cil_tmp45 = (unsigned int )PagingMutex; __cil_tmp46 = __cil_tmp45 + 8; mem_82 = (ULONG *)__cil_tmp46; *mem_82 = 0UL; __cil_tmp47 = (unsigned int )PagingMutex; __cil_tmp48 = __cil_tmp47 + 12; __cil_tmp49 = (KEVENT *)__cil_tmp48; __cil_tmp50 = (enum _EVENT_TYPE )1; KeInitializeEvent(__cil_tmp49, __cil_tmp50, (unsigned char)0); __cil_tmp51 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp51); } { __cil_tmp52 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp53 = (unsigned int )__cil_tmp52; __cil_tmp54 = __cil_tmp53 + 732; mem_83 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp54; __cil_tmp55 = *mem_83; __cil_tmp56 = (int )__cil_tmp55; if (__cil_tmp56 == 1) { __cil_tmp57 = 0 * 64U; __cil_tmp58 = (unsigned int )(_DriveMediaLimits_NEC98) + __cil_tmp57; __cil_tmp59 = (DRIVE_MEDIA_LIMITS_NEC98 *)__cil_tmp58; DriveMediaLimits = (struct _DRIVE_MEDIA_LIMITS *)__cil_tmp59; } else { __cil_tmp60 = 0 * 64U; __cil_tmp61 = (unsigned int )(_DriveMediaLimits) + __cil_tmp60; DriveMediaLimits = (DRIVE_MEDIA_LIMITS *)__cil_tmp61; } } { __cil_tmp62 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp63 = (unsigned int )__cil_tmp62; __cil_tmp64 = __cil_tmp63 + 732; mem_84 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp64; __cil_tmp65 = *mem_84; __cil_tmp66 = (int )__cil_tmp65; if (__cil_tmp66 == 1) { __cil_tmp67 = 0 * 56U; __cil_tmp68 = (unsigned int )(_DriveMediaConstants_NEC98) + __cil_tmp67; DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp68; } else { __cil_tmp69 = 0 * 56U; __cil_tmp70 = (unsigned int )(_DriveMediaConstants) + __cil_tmp69; DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp70; } } return (ntStatus); } } void FloppyUnload(PDRIVER_OBJECT DriverObject ) { void *__cil_tmp2 ; { { while (1) { while_1_continue: /* CIL Label */ ; goto while_1_break; } while_1_break: /* CIL Label */ ; } { __cil_tmp2 = (void *)PagingMutex; ExFreePool(__cil_tmp2); } return; } } NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject ) { NTSTATUS ntStatus ; PDEVICE_OBJECT deviceObject ; PDISKETTE_EXTENSION disketteExtension ; FDC_INFO fdcInfo ; UCHAR arcNameBuffer[256] ; STRING arcNameString ; WCHAR deviceNameBuffer[20] ; UNICODE_STRING deviceName ; USHORT i ; USHORT tmp ; PVOID tmp___0 ; PCONFIGURATION_INFORMATION tmp___1 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; int __cil_tmp17 ; int __cil_tmp18 ; int __cil_tmp19 ; int __cil_tmp20 ; unsigned long __cil_tmp21 ; void *__cil_tmp22 ; int __cil_tmp23 ; int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; WCHAR *__cil_tmp27 ; wchar_t const *__cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; WCHAR *__cil_tmp31 ; WCHAR const *__cil_tmp32 ; unsigned long __cil_tmp33 ; int __cil_tmp34 ; PDEVICE_OBJECT *__cil_tmp35 ; PDEVICE_OBJECT __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; PVOID __cil_tmp39 ; enum _POOL_TYPE __cil_tmp40 ; UNICODE_STRING *__cil_tmp41 ; USHORT __cil_tmp42 ; unsigned long __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; void *__cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; PWSTR __cil_tmp52 ; unsigned int __cil_tmp53 ; PDEVICE_OBJECT *__cil_tmp54 ; PDEVICE_OBJECT __cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; UNICODE_STRING *__cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; UNICODE_STRING *__cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; unsigned int __cil_tmp68 ; ULONG __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; UCHAR *__cil_tmp72 ; char *__cil_tmp73 ; unsigned int __cil_tmp74 ; ULONG __cil_tmp75 ; unsigned int __cil_tmp76 ; ULONG __cil_tmp77 ; unsigned int __cil_tmp78 ; ULONG __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; UCHAR *__cil_tmp82 ; char const *__cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; UNICODE_STRING *__cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; UNICODE_STRING *__cil_tmp89 ; PDEVICE_OBJECT *__cil_tmp90 ; PDEVICE_OBJECT __cil_tmp91 ; unsigned int __cil_tmp92 ; unsigned int __cil_tmp93 ; PDEVICE_OBJECT *__cil_tmp94 ; PDEVICE_OBJECT __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; ULONG __cil_tmp98 ; PDEVICE_OBJECT *__cil_tmp99 ; PDEVICE_OBJECT __cil_tmp100 ; unsigned int __cil_tmp101 ; unsigned int __cil_tmp102 ; ULONG __cil_tmp103 ; PDEVICE_OBJECT *__cil_tmp104 ; PDEVICE_OBJECT __cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; PDEVICE_OBJECT *__cil_tmp108 ; PDEVICE_OBJECT __cil_tmp109 ; unsigned int __cil_tmp110 ; unsigned int __cil_tmp111 ; PDEVICE_OBJECT *__cil_tmp112 ; PDEVICE_OBJECT __cil_tmp113 ; unsigned int __cil_tmp114 ; unsigned int __cil_tmp115 ; ULONG __cil_tmp116 ; unsigned int __cil_tmp117 ; unsigned int __cil_tmp118 ; unsigned int __cil_tmp119 ; unsigned int __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; PDEVICE_OBJECT *__cil_tmp123 ; PDEVICE_OBJECT __cil_tmp124 ; unsigned int __cil_tmp125 ; unsigned int __cil_tmp126 ; KSEMAPHORE *__cil_tmp127 ; unsigned int __cil_tmp128 ; unsigned int __cil_tmp129 ; unsigned int __cil_tmp130 ; unsigned int __cil_tmp131 ; unsigned int __cil_tmp132 ; unsigned int __cil_tmp133 ; unsigned int __cil_tmp134 ; unsigned int __cil_tmp135 ; KEVENT *__cil_tmp136 ; enum _EVENT_TYPE __cil_tmp137 ; unsigned int __cil_tmp138 ; unsigned int __cil_tmp139 ; KSPIN_LOCK *__cil_tmp140 ; unsigned int __cil_tmp141 ; unsigned int __cil_tmp142 ; unsigned int __cil_tmp143 ; unsigned int __cil_tmp144 ; unsigned int __cil_tmp145 ; unsigned int __cil_tmp146 ; unsigned int __cil_tmp147 ; unsigned int __cil_tmp148 ; KEVENT *__cil_tmp149 ; enum _EVENT_TYPE __cil_tmp150 ; unsigned int __cil_tmp151 ; unsigned int __cil_tmp152 ; unsigned int __cil_tmp153 ; unsigned int __cil_tmp154 ; unsigned int __cil_tmp155 ; unsigned int __cil_tmp156 ; unsigned int __cil_tmp157 ; unsigned int __cil_tmp158 ; KEVENT *__cil_tmp159 ; enum _EVENT_TYPE __cil_tmp160 ; unsigned int __cil_tmp161 ; unsigned int __cil_tmp162 ; unsigned int __cil_tmp163 ; unsigned int __cil_tmp164 ; unsigned int __cil_tmp165 ; unsigned int __cil_tmp166 ; unsigned int __cil_tmp167 ; unsigned int __cil_tmp168 ; unsigned int __cil_tmp169 ; unsigned int __cil_tmp170 ; unsigned int __cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; unsigned int __cil_tmp174 ; unsigned int __cil_tmp175 ; unsigned int __cil_tmp176 ; unsigned int __cil_tmp177 ; unsigned int __cil_tmp178 ; unsigned int __cil_tmp179 ; unsigned int __cil_tmp180 ; unsigned int __cil_tmp181 ; unsigned int __cil_tmp182 ; unsigned int __cil_tmp183 ; unsigned int __cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; unsigned int __cil_tmp187 ; unsigned int __cil_tmp188 ; unsigned int __cil_tmp189 ; unsigned int __cil_tmp190 ; KSPIN_LOCK *__cil_tmp191 ; KSPIN_LOCK *__cil_tmp192 ; unsigned int __cil_tmp193 ; unsigned int __cil_tmp194 ; unsigned int __cil_tmp195 ; unsigned int __cil_tmp196 ; unsigned int __cil_tmp197 ; unsigned int __cil_tmp198 ; PDEVICE_OBJECT *__cil_tmp199 ; unsigned int __cil_tmp200 ; unsigned int __cil_tmp201 ; unsigned int __cil_tmp202 ; unsigned int __cil_tmp203 ; KUSER_SHARED_DATA *__cil_tmp204 ; unsigned int __cil_tmp205 ; unsigned int __cil_tmp206 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp207 ; int __cil_tmp208 ; unsigned int __cil_tmp209 ; unsigned int __cil_tmp210 ; unsigned int __cil_tmp211 ; unsigned int __cil_tmp212 ; ULONG *mem_213 ; ULONG *mem_214 ; PVOID *mem_215 ; USHORT *mem_216 ; PWSTR *mem_217 ; PWSTR *mem_218 ; USHORT *mem_219 ; USHORT *mem_220 ; USHORT *mem_221 ; ULONG *mem_222 ; ULONG *mem_223 ; ULONG *mem_224 ; ULONG *mem_225 ; ULONG *mem_226 ; ULONG *mem_227 ; ULONG *mem_228 ; ULONG *mem_229 ; ULONG *mem_230 ; ULONG *mem_231 ; ULONG *mem_232 ; PDRIVER_OBJECT *mem_233 ; PDEVICE_OBJECT *mem_234 ; PDEVICE_OBJECT *mem_235 ; LONG *mem_236 ; ULONG *mem_237 ; LONG *mem_238 ; ULONG *mem_239 ; LONG *mem_240 ; ULONG *mem_241 ; struct _LIST_ENTRY **mem_242 ; struct _LIST_ENTRY **mem_243 ; struct _LIST_ENTRY **mem_244 ; LONG *mem_245 ; BOOLEAN *mem_246 ; BOOLEAN *mem_247 ; BOOLEAN *mem_248 ; struct _LIST_ENTRY **mem_249 ; struct _LIST_ENTRY **mem_250 ; struct _LIST_ENTRY **mem_251 ; BOOLEAN *mem_252 ; BOOLEAN *mem_253 ; PDEVICE_OBJECT *mem_254 ; BOOLEAN *mem_255 ; MEDIA_TYPE *mem_256 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_257 ; BOOLEAN *mem_258 ; BOOLEAN *mem_259 ; { ntStatus = 0L; { while (1) { while_2_continue: /* CIL Label */ ; goto while_2_break; } while_2_break: /* CIL Label */ ; } { __cil_tmp15 = (unsigned int )(& fdcInfo) + 128; mem_213 = (ULONG *)__cil_tmp15; *mem_213 = 0UL; __cil_tmp16 = (unsigned int )(& fdcInfo) + 132; mem_214 = (ULONG *)__cil_tmp16; *mem_214 = 0UL; __cil_tmp17 = 770 << 2; __cil_tmp18 = 7 << 16; __cil_tmp19 = __cil_tmp18 | __cil_tmp17; __cil_tmp20 = __cil_tmp19 | 3; __cil_tmp21 = (unsigned long )__cil_tmp20; __cil_tmp22 = (void *)(& fdcInfo); ntStatus = FlFdcDeviceIo(PhysicalDeviceObject, __cil_tmp21, __cil_tmp22); } if (ntStatus >= 0L) { i = (unsigned short)0; { while (1) { while_3_continue: /* CIL Label */ ; { tmp = i; __cil_tmp23 = (int )i; __cil_tmp24 = __cil_tmp23 + 1; i = (unsigned short )__cil_tmp24; __cil_tmp25 = 0 * 2U; __cil_tmp26 = (unsigned int )(deviceNameBuffer) + __cil_tmp25; __cil_tmp27 = (WCHAR *)__cil_tmp26; __cil_tmp28 = (wchar_t const *)"\\\000D\000e\000v\000i\000c\000e\000\\\000F\000l\000o\000p\000p\000y\000%\000d\000"; swprintf(__cil_tmp27, __cil_tmp28, tmp); __cil_tmp29 = 0 * 2U; __cil_tmp30 = (unsigned int )(deviceNameBuffer) + __cil_tmp29; __cil_tmp31 = (WCHAR *)__cil_tmp30; __cil_tmp32 = (WCHAR const *)__cil_tmp31; RtlInitUnicodeString(& deviceName, __cil_tmp32); __cil_tmp33 = (unsigned long )460U; ntStatus = IoCreateDevice(DriverObject, __cil_tmp33, & deviceName, 7UL, 261UL, (unsigned char)0, & deviceObject); } { __cil_tmp34 = ntStatus == -1073741771L; if (! __cil_tmp34) { goto while_3_break; } else { } } } while_3_break: /* CIL Label */ ; } if (ntStatus >= 0L) { __cil_tmp35 = & deviceObject; __cil_tmp36 = *__cil_tmp35; __cil_tmp37 = (unsigned int )__cil_tmp36; __cil_tmp38 = __cil_tmp37 + 40; mem_215 = (PVOID *)__cil_tmp38; __cil_tmp39 = *mem_215; disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp39; { while (1) { while_4_continue: /* CIL Label */ ; goto while_4_break; } while_4_break: /* CIL Label */ ; } { __cil_tmp40 = (enum _POOL_TYPE )1; __cil_tmp41 = & deviceName; mem_216 = (USHORT *)__cil_tmp41; __cil_tmp42 = *mem_216; __cil_tmp43 = (unsigned long )__cil_tmp42; tmp___0 = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp43, 1886350406UL); __cil_tmp44 = 368 + 4; __cil_tmp45 = (unsigned int )disketteExtension; __cil_tmp46 = __cil_tmp45 + __cil_tmp44; mem_217 = (PWSTR *)__cil_tmp46; *mem_217 = (WCHAR *)tmp___0; } { __cil_tmp47 = (void *)0; __cil_tmp48 = (unsigned int )__cil_tmp47; __cil_tmp49 = 368 + 4; __cil_tmp50 = (unsigned int )disketteExtension; __cil_tmp51 = __cil_tmp50 + __cil_tmp49; mem_218 = (PWSTR *)__cil_tmp51; __cil_tmp52 = *mem_218; __cil_tmp53 = (unsigned int )__cil_tmp52; if (__cil_tmp53 == __cil_tmp48) { { __cil_tmp54 = & deviceObject; __cil_tmp55 = *__cil_tmp54; IoDeleteDevice(__cil_tmp55); } return (-1073741670L); } else { } } { __cil_tmp56 = (unsigned int )disketteExtension; __cil_tmp57 = __cil_tmp56 + 368; mem_219 = (USHORT *)__cil_tmp57; *mem_219 = (unsigned short)0; __cil_tmp58 = 368 + 2; __cil_tmp59 = (unsigned int )disketteExtension; __cil_tmp60 = __cil_tmp59 + __cil_tmp58; __cil_tmp61 = & deviceName; mem_220 = (USHORT *)__cil_tmp60; mem_221 = (USHORT *)__cil_tmp61; *mem_220 = *mem_221; __cil_tmp62 = (unsigned int )disketteExtension; __cil_tmp63 = __cil_tmp62 + 368; __cil_tmp64 = (UNICODE_STRING *)__cil_tmp63; RtlCopyUnicodeString(__cil_tmp64, & deviceName); tmp___1 = IoGetConfigurationInformation(); __cil_tmp65 = (unsigned int )tmp___1; __cil_tmp66 = __cil_tmp65 + 4; __cil_tmp67 = (unsigned int )tmp___1; __cil_tmp68 = __cil_tmp67 + 4; mem_222 = (ULONG *)__cil_tmp68; __cil_tmp69 = *mem_222; mem_223 = (ULONG *)__cil_tmp66; *mem_223 = __cil_tmp69 + 1UL; __cil_tmp70 = 0 * 1U; __cil_tmp71 = (unsigned int )(arcNameBuffer) + __cil_tmp70; __cil_tmp72 = (UCHAR *)__cil_tmp71; __cil_tmp73 = (char *)__cil_tmp72; __cil_tmp74 = (unsigned int )(& fdcInfo) + 40; mem_224 = (ULONG *)__cil_tmp74; __cil_tmp75 = *mem_224; __cil_tmp76 = (unsigned int )(& fdcInfo) + 44; mem_225 = (ULONG *)__cil_tmp76; __cil_tmp77 = *mem_225; __cil_tmp78 = (unsigned int )(& fdcInfo) + 48; mem_226 = (ULONG *)__cil_tmp78; __cil_tmp79 = *mem_226; sprintf(__cil_tmp73, "%s(%d)disk(%d)fdisk(%d)", "\\ArcName\\multi", __cil_tmp75, __cil_tmp77, __cil_tmp79); __cil_tmp80 = 0 * 1U; __cil_tmp81 = (unsigned int )(arcNameBuffer) + __cil_tmp80; __cil_tmp82 = (UCHAR *)__cil_tmp81; __cil_tmp83 = (char const *)__cil_tmp82; RtlInitString(& arcNameString, __cil_tmp83); __cil_tmp84 = (unsigned int )disketteExtension; __cil_tmp85 = __cil_tmp84 + 384; __cil_tmp86 = (UNICODE_STRING *)__cil_tmp85; ntStatus = RtlAnsiStringToUnicodeString(__cil_tmp86, & arcNameString, (unsigned char)1); } if (ntStatus >= 0L) { { __cil_tmp87 = (unsigned int )disketteExtension; __cil_tmp88 = __cil_tmp87 + 384; __cil_tmp89 = (UNICODE_STRING *)__cil_tmp88; IoCreateSymbolicLink(__cil_tmp89, & deviceName); } } else { } __cil_tmp90 = & deviceObject; __cil_tmp91 = *__cil_tmp90; __cil_tmp92 = (unsigned int )__cil_tmp91; __cil_tmp93 = __cil_tmp92 + 28; __cil_tmp94 = & deviceObject; __cil_tmp95 = *__cil_tmp94; __cil_tmp96 = (unsigned int )__cil_tmp95; __cil_tmp97 = __cil_tmp96 + 28; mem_227 = (ULONG *)__cil_tmp97; __cil_tmp98 = *mem_227; mem_228 = (ULONG *)__cil_tmp93; *mem_228 = __cil_tmp98 | 8208UL; { __cil_tmp99 = & deviceObject; __cil_tmp100 = *__cil_tmp99; __cil_tmp101 = (unsigned int )__cil_tmp100; __cil_tmp102 = __cil_tmp101 + 92; mem_229 = (ULONG *)__cil_tmp102; __cil_tmp103 = *mem_229; if (__cil_tmp103 < 1UL) { __cil_tmp104 = & deviceObject; __cil_tmp105 = *__cil_tmp104; __cil_tmp106 = (unsigned int )__cil_tmp105; __cil_tmp107 = __cil_tmp106 + 92; mem_230 = (ULONG *)__cil_tmp107; *mem_230 = 1UL; } else { } } __cil_tmp108 = & deviceObject; __cil_tmp109 = *__cil_tmp108; __cil_tmp110 = (unsigned int )__cil_tmp109; __cil_tmp111 = __cil_tmp110 + 28; __cil_tmp112 = & deviceObject; __cil_tmp113 = *__cil_tmp112; __cil_tmp114 = (unsigned int )__cil_tmp113; __cil_tmp115 = __cil_tmp114 + 28; mem_231 = (ULONG *)__cil_tmp115; __cil_tmp116 = *mem_231; mem_232 = (ULONG *)__cil_tmp111; *mem_232 = __cil_tmp116 & 4294967167UL; __cil_tmp117 = (unsigned int )disketteExtension; __cil_tmp118 = __cil_tmp117 + 136; mem_233 = (PDRIVER_OBJECT *)__cil_tmp118; *mem_233 = DriverObject; __cil_tmp119 = (unsigned int )disketteExtension; __cil_tmp120 = __cil_tmp119 + 4; mem_234 = (PDEVICE_OBJECT *)__cil_tmp120; *mem_234 = PhysicalDeviceObject; { while (1) { while_5_continue: /* CIL Label */ ; goto while_5_break; } while_5_break: /* CIL Label */ ; } { __cil_tmp121 = (unsigned int )disketteExtension; __cil_tmp122 = __cil_tmp121 + 8; __cil_tmp123 = & deviceObject; __cil_tmp124 = *__cil_tmp123; mem_235 = (PDEVICE_OBJECT *)__cil_tmp122; *mem_235 = IoAttachDeviceToDeviceStack(__cil_tmp124, PhysicalDeviceObject); } { while (1) { while_6_continue: /* CIL Label */ ; goto while_6_break; } while_6_break: /* CIL Label */ ; } { __cil_tmp125 = (unsigned int )disketteExtension; __cil_tmp126 = __cil_tmp125 + 32; __cil_tmp127 = (KSEMAPHORE *)__cil_tmp126; KeInitializeSemaphore(__cil_tmp127, 0L, 2147483647L); __cil_tmp128 = (unsigned int )disketteExtension; __cil_tmp129 = __cil_tmp128 + 396; mem_236 = (LONG *)__cil_tmp129; *mem_236 = 1L; __cil_tmp130 = 396 + 8; __cil_tmp131 = (unsigned int )disketteExtension; __cil_tmp132 = __cil_tmp131 + __cil_tmp130; mem_237 = (ULONG *)__cil_tmp132; *mem_237 = 0UL; __cil_tmp133 = 396 + 12; __cil_tmp134 = (unsigned int )disketteExtension; __cil_tmp135 = __cil_tmp134 + __cil_tmp133; __cil_tmp136 = (KEVENT *)__cil_tmp135; __cil_tmp137 = (enum _EVENT_TYPE )1; KeInitializeEvent(__cil_tmp136, __cil_tmp137, (unsigned char)0); __cil_tmp138 = (unsigned int )disketteExtension; __cil_tmp139 = __cil_tmp138 + 52; __cil_tmp140 = (KSPIN_LOCK *)__cil_tmp139; KeInitializeSpinLock(__cil_tmp140); __cil_tmp141 = (unsigned int )disketteExtension; __cil_tmp142 = __cil_tmp141 + 56; mem_238 = (LONG *)__cil_tmp142; *mem_238 = 1L; __cil_tmp143 = 56 + 8; __cil_tmp144 = (unsigned int )disketteExtension; __cil_tmp145 = __cil_tmp144 + __cil_tmp143; mem_239 = (ULONG *)__cil_tmp145; *mem_239 = 0UL; __cil_tmp146 = 56 + 12; __cil_tmp147 = (unsigned int )disketteExtension; __cil_tmp148 = __cil_tmp147 + __cil_tmp146; __cil_tmp149 = (KEVENT *)__cil_tmp148; __cil_tmp150 = (enum _EVENT_TYPE )1; KeInitializeEvent(__cil_tmp149, __cil_tmp150, (unsigned char)0); __cil_tmp151 = (unsigned int )disketteExtension; __cil_tmp152 = __cil_tmp151 + 428; mem_240 = (LONG *)__cil_tmp152; *mem_240 = 1L; __cil_tmp153 = 428 + 8; __cil_tmp154 = (unsigned int )disketteExtension; __cil_tmp155 = __cil_tmp154 + __cil_tmp153; mem_241 = (ULONG *)__cil_tmp155; *mem_241 = 0UL; __cil_tmp156 = 428 + 12; __cil_tmp157 = (unsigned int )disketteExtension; __cil_tmp158 = __cil_tmp157 + __cil_tmp156; __cil_tmp159 = (KEVENT *)__cil_tmp158; __cil_tmp160 = (enum _EVENT_TYPE )1; KeInitializeEvent(__cil_tmp159, __cil_tmp160, (unsigned char)0); __cil_tmp161 = 96 + 4; __cil_tmp162 = (unsigned int )disketteExtension; __cil_tmp163 = __cil_tmp162 + __cil_tmp161; __cil_tmp164 = (unsigned int )disketteExtension; __cil_tmp165 = __cil_tmp164 + 96; mem_242 = (struct _LIST_ENTRY **)__cil_tmp163; *mem_242 = (LIST_ENTRY *)__cil_tmp165; __cil_tmp166 = (unsigned int )disketteExtension; __cil_tmp167 = __cil_tmp166 + 96; __cil_tmp168 = 96 + 4; __cil_tmp169 = (unsigned int )disketteExtension; __cil_tmp170 = __cil_tmp169 + __cil_tmp168; mem_243 = (struct _LIST_ENTRY **)__cil_tmp167; mem_244 = (struct _LIST_ENTRY **)__cil_tmp170; *mem_243 = *mem_244; __cil_tmp171 = (unsigned int )disketteExtension; __cil_tmp172 = __cil_tmp171 + 88; mem_245 = (LONG *)__cil_tmp172; *mem_245 = -1L; __cil_tmp173 = (unsigned int )disketteExtension; __cil_tmp174 = __cil_tmp173 + 12; mem_246 = (BOOLEAN *)__cil_tmp174; *mem_246 = (unsigned char)0; __cil_tmp175 = (unsigned int )disketteExtension; __cil_tmp176 = __cil_tmp175 + 13; mem_247 = (BOOLEAN *)__cil_tmp176; *mem_247 = (unsigned char)0; __cil_tmp177 = (unsigned int )disketteExtension; __cil_tmp178 = __cil_tmp177 + 14; mem_248 = (BOOLEAN *)__cil_tmp178; *mem_248 = (unsigned char)0; __cil_tmp179 = 16 + 4; __cil_tmp180 = (unsigned int )disketteExtension; __cil_tmp181 = __cil_tmp180 + __cil_tmp179; __cil_tmp182 = (unsigned int )disketteExtension; __cil_tmp183 = __cil_tmp182 + 16; mem_249 = (struct _LIST_ENTRY **)__cil_tmp181; *mem_249 = (LIST_ENTRY *)__cil_tmp183; __cil_tmp184 = (unsigned int )disketteExtension; __cil_tmp185 = __cil_tmp184 + 16; __cil_tmp186 = 16 + 4; __cil_tmp187 = (unsigned int )disketteExtension; __cil_tmp188 = __cil_tmp187 + __cil_tmp186; mem_250 = (struct _LIST_ENTRY **)__cil_tmp185; mem_251 = (struct _LIST_ENTRY **)__cil_tmp188; *mem_250 = *mem_251; __cil_tmp189 = (unsigned int )disketteExtension; __cil_tmp190 = __cil_tmp189 + 24; __cil_tmp191 = (KSPIN_LOCK *)__cil_tmp190; KeInitializeSpinLock(__cil_tmp191); __cil_tmp192 = (KSPIN_LOCK *)disketteExtension; KeInitializeSpinLock(__cil_tmp192); __cil_tmp193 = (unsigned int )disketteExtension; __cil_tmp194 = __cil_tmp193 + 172; mem_252 = (BOOLEAN *)__cil_tmp194; *mem_252 = (unsigned char)0; __cil_tmp195 = (unsigned int )disketteExtension; __cil_tmp196 = __cil_tmp195 + 392; mem_253 = (BOOLEAN *)__cil_tmp196; *mem_253 = (unsigned char)0; __cil_tmp197 = (unsigned int )disketteExtension; __cil_tmp198 = __cil_tmp197 + 28; __cil_tmp199 = & deviceObject; mem_254 = (PDEVICE_OBJECT *)__cil_tmp198; *mem_254 = *__cil_tmp199; __cil_tmp200 = (unsigned int )disketteExtension; __cil_tmp201 = __cil_tmp200 + 250; mem_255 = (BOOLEAN *)__cil_tmp201; *mem_255 = (unsigned char)0; __cil_tmp202 = (unsigned int )disketteExtension; __cil_tmp203 = __cil_tmp202 + 184; mem_256 = (MEDIA_TYPE *)__cil_tmp203; *mem_256 = (enum _MEDIA_TYPE )-1; } { __cil_tmp204 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp205 = (unsigned int )__cil_tmp204; __cil_tmp206 = __cil_tmp205 + 732; mem_257 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp206; __cil_tmp207 = *mem_257; __cil_tmp208 = (int )__cil_tmp207; if (__cil_tmp208 == 1) { __cil_tmp209 = (unsigned int )disketteExtension; __cil_tmp210 = __cil_tmp209 + 365; mem_258 = (BOOLEAN *)__cil_tmp210; *mem_258 = (unsigned char)0; } else { __cil_tmp211 = (unsigned int )disketteExtension; __cil_tmp212 = __cil_tmp211 + 365; mem_259 = (BOOLEAN *)__cil_tmp212; *mem_259 = (unsigned char)1; } } } else { } } else { } return (ntStatus); } } NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType , ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation , CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber , PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType , ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) { PDISKETTE_EXTENSION disketteExtension ; ULONG i ; PCM_FULL_RESOURCE_DESCRIPTOR peripheralData ; PCM_PARTIAL_RESOURCE_DESCRIPTOR partial ; PCM_FLOPPY_DEVICE_DATA fDeviceData ; UCHAR driveType ; PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ; PKEY_VALUE_FULL_INFORMATION *__cil_tmp19 ; PKEY_VALUE_FULL_INFORMATION __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; ULONG __cil_tmp23 ; PKEY_VALUE_FULL_INFORMATION *__cil_tmp24 ; PKEY_VALUE_FULL_INFORMATION __cil_tmp25 ; UCHAR *__cil_tmp26 ; UCHAR *__cil_tmp27 ; PKEY_VALUE_FULL_INFORMATION *__cil_tmp28 ; PKEY_VALUE_FULL_INFORMATION __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; ULONG __cil_tmp32 ; PKEY_VALUE_FULL_INFORMATION *__cil_tmp33 ; PKEY_VALUE_FULL_INFORMATION __cil_tmp34 ; UCHAR *__cil_tmp35 ; UCHAR *__cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; ULONG __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; UCHAR __cil_tmp46 ; int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; PCM_PARTIAL_RESOURCE_DESCRIPTOR __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; ULONG __cil_tmp53 ; KUSER_SHARED_DATA *__cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp57 ; int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; int __cil_tmp61 ; PDRIVE_MEDIA_LIMITS __cil_tmp62 ; DRIVE_MEDIA_TYPE __cil_tmp63 ; unsigned int __cil_tmp64 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp65 ; USHORT __cil_tmp66 ; int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; unsigned int __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; UCHAR __cil_tmp86 ; int __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; ULONG __cil_tmp90 ; unsigned int __cil_tmp91 ; unsigned int __cil_tmp92 ; unsigned int __cil_tmp93 ; unsigned int __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; unsigned int __cil_tmp98 ; unsigned int __cil_tmp99 ; unsigned int __cil_tmp100 ; unsigned int __cil_tmp101 ; unsigned int __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; unsigned int __cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; unsigned int __cil_tmp108 ; unsigned int __cil_tmp109 ; unsigned int __cil_tmp110 ; unsigned int __cil_tmp111 ; unsigned int __cil_tmp112 ; unsigned int __cil_tmp113 ; unsigned int __cil_tmp114 ; UCHAR __cil_tmp115 ; int __cil_tmp116 ; int __cil_tmp117 ; int __cil_tmp118 ; unsigned int __cil_tmp119 ; unsigned int __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; UCHAR __cil_tmp123 ; int __cil_tmp124 ; int __cil_tmp125 ; int __cil_tmp126 ; unsigned int __cil_tmp127 ; unsigned int __cil_tmp128 ; UCHAR __cil_tmp129 ; int __cil_tmp130 ; unsigned int __cil_tmp131 ; unsigned int __cil_tmp132 ; unsigned int __cil_tmp133 ; unsigned int __cil_tmp134 ; unsigned int __cil_tmp135 ; unsigned int __cil_tmp136 ; unsigned int __cil_tmp137 ; unsigned int __cil_tmp138 ; ULONG *mem_139 ; ULONG *mem_140 ; ULONG *mem_141 ; UCHAR *mem_142 ; ULONG *mem_143 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_144 ; UCHAR *mem_145 ; DRIVE_MEDIA_TYPE *mem_146 ; USHORT *mem_147 ; UCHAR *mem_148 ; UCHAR *mem_149 ; UCHAR *mem_150 ; UCHAR *mem_151 ; UCHAR *mem_152 ; UCHAR *mem_153 ; UCHAR *mem_154 ; UCHAR *mem_155 ; UCHAR *mem_156 ; ULONG *mem_157 ; UCHAR *mem_158 ; UCHAR *mem_159 ; UCHAR *mem_160 ; UCHAR *mem_161 ; UCHAR *mem_162 ; UCHAR *mem_163 ; UCHAR *mem_164 ; UCHAR *mem_165 ; UCHAR *mem_166 ; UCHAR *mem_167 ; UCHAR *mem_168 ; USHORT *mem_169 ; UCHAR *mem_170 ; USHORT *mem_171 ; UCHAR *mem_172 ; UCHAR *mem_173 ; UCHAR *mem_174 ; UCHAR *mem_175 ; UCHAR *mem_176 ; { disketteExtension = (DISKETTE_EXTENSION *)Context; { __cil_tmp19 = PeripheralInformation + 1; __cil_tmp20 = *__cil_tmp19; __cil_tmp21 = (unsigned int )__cil_tmp20; __cil_tmp22 = __cil_tmp21 + 12; mem_139 = (ULONG *)__cil_tmp22; __cil_tmp23 = *mem_139; __cil_tmp24 = PeripheralInformation + 1; __cil_tmp25 = *__cil_tmp24; __cil_tmp26 = (UCHAR *)__cil_tmp25; __cil_tmp27 = __cil_tmp26 + __cil_tmp23; if (! __cil_tmp27) { return (-1073741811L); } else { } } __cil_tmp28 = PeripheralInformation + 1; __cil_tmp29 = *__cil_tmp28; __cil_tmp30 = (unsigned int )__cil_tmp29; __cil_tmp31 = __cil_tmp30 + 8; mem_140 = (ULONG *)__cil_tmp31; __cil_tmp32 = *mem_140; __cil_tmp33 = PeripheralInformation + 1; __cil_tmp34 = *__cil_tmp33; __cil_tmp35 = (UCHAR *)__cil_tmp34; __cil_tmp36 = __cil_tmp35 + __cil_tmp32; peripheralData = (struct _CM_FULL_RESOURCE_DESCRIPTOR *)__cil_tmp36; i = 0UL; { while (1) { while_7_continue: /* CIL Label */ ; { __cil_tmp37 = 36 + 4; __cil_tmp38 = (unsigned int )peripheralData; __cil_tmp39 = __cil_tmp38 + __cil_tmp37; mem_141 = (ULONG *)__cil_tmp39; __cil_tmp40 = *mem_141; if (i < __cil_tmp40) { } else { goto while_7_break; } } __cil_tmp41 = i * 16U; __cil_tmp42 = 8 + __cil_tmp41; __cil_tmp43 = 36 + __cil_tmp42; __cil_tmp44 = (unsigned int )peripheralData; __cil_tmp45 = __cil_tmp44 + __cil_tmp43; partial = (CM_PARTIAL_RESOURCE_DESCRIPTOR *)__cil_tmp45; { mem_142 = (UCHAR *)partial; __cil_tmp46 = *mem_142; __cil_tmp47 = (int )__cil_tmp46; if (__cil_tmp47 == 5) { __cil_tmp48 = (unsigned int )disketteExtension; __cil_tmp49 = __cil_tmp48 + 252; biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp49; __cil_tmp50 = partial + 1; fDeviceData = (struct _CM_FLOPPY_DEVICE_DATA *)__cil_tmp50; { __cil_tmp51 = (unsigned int )fDeviceData; __cil_tmp52 = __cil_tmp51 + 12; mem_143 = (ULONG *)__cil_tmp52; __cil_tmp53 = *mem_143; if ((int )__cil_tmp53 == 360) { goto switch_8_360; } else { if ((int )__cil_tmp53 == 1200) { goto switch_8_1200; } else { if ((int )__cil_tmp53 == 1185) { goto switch_8_1185; } else { if ((int )__cil_tmp53 == 1423) { goto switch_8_1423; } else { if ((int )__cil_tmp53 == 1440) { goto switch_8_1440; } else { if ((int )__cil_tmp53 == 2880) { goto switch_8_2880; } else { if ((int )__cil_tmp53 == 1201) { goto switch_8_1201; } else { { goto switch_8_default; if (0) { switch_8_360: /* CIL Label */ driveType = (unsigned char)0; goto switch_8_break; switch_8_1200: /* CIL Label */ driveType = (unsigned char)1; goto switch_8_break; switch_8_1185: /* CIL Label */ driveType = (unsigned char)1; goto switch_8_break; switch_8_1423: /* CIL Label */ driveType = (unsigned char)3; goto switch_8_break; switch_8_1440: /* CIL Label */ driveType = (unsigned char)3; goto switch_8_break; switch_8_2880: /* CIL Label */ driveType = (unsigned char)4; goto switch_8_break; switch_8_1201: /* CIL Label */ ; { __cil_tmp54 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp55 = (unsigned int )__cil_tmp54; __cil_tmp56 = __cil_tmp55 + 732; mem_144 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp56; __cil_tmp57 = *mem_144; __cil_tmp58 = (int )__cil_tmp57; if (__cil_tmp58 == 1) { driveType = (unsigned char)5; goto switch_8_break; } else { } } switch_8_default: /* CIL Label */ ; { while (1) { while_9_continue: /* CIL Label */ ; goto while_9_break; } while_9_break: /* CIL Label */ ; } driveType = (unsigned char)1; { while (1) { while_10_continue: /* CIL Label */ ; goto while_10_break; } while_10_break: /* CIL Label */ ; } goto switch_8_break; } else { switch_8_break: /* CIL Label */ ; } } } } } } } } } } __cil_tmp59 = (unsigned int )disketteExtension; __cil_tmp60 = __cil_tmp59 + 174; mem_145 = (UCHAR *)__cil_tmp60; *mem_145 = driveType; __cil_tmp61 = (int )driveType; __cil_tmp62 = DriveMediaLimits + __cil_tmp61; mem_146 = (DRIVE_MEDIA_TYPE *)__cil_tmp62; __cil_tmp63 = *mem_146; __cil_tmp64 = (unsigned int )__cil_tmp63; __cil_tmp65 = DriveMediaConstants + __cil_tmp64; *biosDriveMediaConstants = *__cil_tmp65; { mem_147 = (USHORT *)fDeviceData; __cil_tmp66 = *mem_147; __cil_tmp67 = (int )__cil_tmp66; if (__cil_tmp67 >= 2) { __cil_tmp68 = (unsigned int )biosDriveMediaConstants; __cil_tmp69 = __cil_tmp68 + 32; __cil_tmp70 = (unsigned int )fDeviceData; __cil_tmp71 = __cil_tmp70 + 20; mem_148 = (UCHAR *)__cil_tmp69; mem_149 = (UCHAR *)__cil_tmp71; *mem_148 = *mem_149; __cil_tmp72 = (unsigned int )biosDriveMediaConstants; __cil_tmp73 = __cil_tmp72 + 33; __cil_tmp74 = (unsigned int )fDeviceData; __cil_tmp75 = __cil_tmp74 + 21; mem_150 = (UCHAR *)__cil_tmp73; mem_151 = (UCHAR *)__cil_tmp75; *mem_150 = *mem_151; __cil_tmp76 = (unsigned int )biosDriveMediaConstants; __cil_tmp77 = __cil_tmp76 + 34; __cil_tmp78 = (unsigned int )fDeviceData; __cil_tmp79 = __cil_tmp78 + 22; mem_152 = (UCHAR *)__cil_tmp77; mem_153 = (UCHAR *)__cil_tmp79; *mem_152 = *mem_153; __cil_tmp80 = (unsigned int )biosDriveMediaConstants; __cil_tmp81 = __cil_tmp80 + 35; __cil_tmp82 = (unsigned int )fDeviceData; __cil_tmp83 = __cil_tmp82 + 23; mem_154 = (UCHAR *)__cil_tmp81; mem_155 = (UCHAR *)__cil_tmp83; *mem_154 = *mem_155; { __cil_tmp84 = (unsigned int )fDeviceData; __cil_tmp85 = __cil_tmp84 + 24; mem_156 = (UCHAR *)__cil_tmp85; __cil_tmp86 = *mem_156; __cil_tmp87 = (int )__cil_tmp86; if (__cil_tmp87 == 0) { return (0L); } else { } } { __cil_tmp88 = (unsigned int )fDeviceData; __cil_tmp89 = __cil_tmp88 + 12; mem_157 = (ULONG *)__cil_tmp89; __cil_tmp90 = *mem_157; if (__cil_tmp90 == 0UL) { return (0L); } else { } } __cil_tmp91 = (unsigned int )biosDriveMediaConstants; __cil_tmp92 = __cil_tmp91 + 38; __cil_tmp93 = (unsigned int )fDeviceData; __cil_tmp94 = __cil_tmp93 + 24; mem_158 = (UCHAR *)__cil_tmp92; mem_159 = (UCHAR *)__cil_tmp94; *mem_158 = *mem_159; __cil_tmp95 = (unsigned int )biosDriveMediaConstants; __cil_tmp96 = __cil_tmp95 + 39; __cil_tmp97 = (unsigned int )fDeviceData; __cil_tmp98 = __cil_tmp97 + 25; mem_160 = (UCHAR *)__cil_tmp96; mem_161 = (UCHAR *)__cil_tmp98; *mem_160 = *mem_161; __cil_tmp99 = (unsigned int )biosDriveMediaConstants; __cil_tmp100 = __cil_tmp99 + 40; __cil_tmp101 = (unsigned int )fDeviceData; __cil_tmp102 = __cil_tmp101 + 27; mem_162 = (UCHAR *)__cil_tmp100; mem_163 = (UCHAR *)__cil_tmp102; *mem_162 = *mem_163; __cil_tmp103 = (unsigned int )biosDriveMediaConstants; __cil_tmp104 = __cil_tmp103 + 41; __cil_tmp105 = (unsigned int )fDeviceData; __cil_tmp106 = __cil_tmp105 + 28; mem_164 = (UCHAR *)__cil_tmp104; mem_165 = (UCHAR *)__cil_tmp106; *mem_164 = *mem_165; __cil_tmp107 = (unsigned int )biosDriveMediaConstants; __cil_tmp108 = __cil_tmp107 + 42; __cil_tmp109 = (unsigned int )fDeviceData; __cil_tmp110 = __cil_tmp109 + 29; mem_166 = (UCHAR *)__cil_tmp108; mem_167 = (UCHAR *)__cil_tmp110; *mem_166 = *mem_167; __cil_tmp111 = (unsigned int )biosDriveMediaConstants; __cil_tmp112 = __cil_tmp111 + 44; __cil_tmp113 = (unsigned int )fDeviceData; __cil_tmp114 = __cil_tmp113 + 30; mem_168 = (UCHAR *)__cil_tmp114; __cil_tmp115 = *mem_168; __cil_tmp116 = (int )__cil_tmp115; __cil_tmp117 = __cil_tmp116 * 1000; __cil_tmp118 = __cil_tmp117 / 8; mem_169 = (USHORT *)__cil_tmp112; *mem_169 = (unsigned short )__cil_tmp118; __cil_tmp119 = (unsigned int )biosDriveMediaConstants; __cil_tmp120 = __cil_tmp119 + 46; __cil_tmp121 = (unsigned int )fDeviceData; __cil_tmp122 = __cil_tmp121 + 30; mem_170 = (UCHAR *)__cil_tmp122; __cil_tmp123 = *mem_170; __cil_tmp124 = (int )__cil_tmp123; __cil_tmp125 = __cil_tmp124 * 1000; __cil_tmp126 = __cil_tmp125 / 8; mem_171 = (USHORT *)__cil_tmp120; *mem_171 = (unsigned short )__cil_tmp126; { __cil_tmp127 = (unsigned int )fDeviceData; __cil_tmp128 = __cil_tmp127 + 31; mem_172 = (UCHAR *)__cil_tmp128; __cil_tmp129 = *mem_172; __cil_tmp130 = (int )__cil_tmp129; if (__cil_tmp130 == 0) { return (0L); } else { } } __cil_tmp131 = (unsigned int )biosDriveMediaConstants; __cil_tmp132 = __cil_tmp131 + 48; __cil_tmp133 = (unsigned int )fDeviceData; __cil_tmp134 = __cil_tmp133 + 31; mem_173 = (UCHAR *)__cil_tmp132; mem_174 = (UCHAR *)__cil_tmp134; *mem_173 = *mem_174; __cil_tmp135 = (unsigned int )biosDriveMediaConstants; __cil_tmp136 = __cil_tmp135 + 52; __cil_tmp137 = (unsigned int )fDeviceData; __cil_tmp138 = __cil_tmp137 + 26; mem_175 = (UCHAR *)__cil_tmp136; mem_176 = (UCHAR *)__cil_tmp138; *mem_175 = *mem_176; } else { } } } else { } } i = i + 1UL; } while_7_break: /* CIL Label */ ; } return (0L); } } NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo ) { UCHAR driveType ; PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; BOOLEAN __cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; ULONG __cil_tmp13 ; enum _ACPI_FDI_DEVICE_TYPE __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; int __cil_tmp17 ; PDRIVE_MEDIA_LIMITS __cil_tmp18 ; DRIVE_MEDIA_TYPE __cil_tmp19 ; unsigned int __cil_tmp20 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; ULONG __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; ULONG __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; ULONG __cil_tmp39 ; unsigned int __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; ULONG __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; ULONG __cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; ULONG __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; ULONG __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; unsigned int __cil_tmp68 ; ULONG __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; ULONG __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; unsigned int __cil_tmp79 ; unsigned int __cil_tmp80 ; ULONG __cil_tmp81 ; unsigned char __cil_tmp82 ; int __cil_tmp83 ; int __cil_tmp84 ; int __cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; unsigned int __cil_tmp90 ; ULONG __cil_tmp91 ; unsigned short __cil_tmp92 ; int __cil_tmp93 ; int __cil_tmp94 ; int __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; unsigned int __cil_tmp98 ; unsigned int __cil_tmp99 ; unsigned int __cil_tmp100 ; ULONG __cil_tmp101 ; unsigned int __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; unsigned int __cil_tmp105 ; unsigned int __cil_tmp106 ; ULONG __cil_tmp107 ; BOOLEAN *mem_108 ; ULONG *mem_109 ; UCHAR *mem_110 ; DRIVE_MEDIA_TYPE *mem_111 ; ULONG *mem_112 ; UCHAR *mem_113 ; ULONG *mem_114 ; UCHAR *mem_115 ; ULONG *mem_116 ; UCHAR *mem_117 ; ULONG *mem_118 ; UCHAR *mem_119 ; ULONG *mem_120 ; UCHAR *mem_121 ; ULONG *mem_122 ; UCHAR *mem_123 ; ULONG *mem_124 ; UCHAR *mem_125 ; ULONG *mem_126 ; UCHAR *mem_127 ; ULONG *mem_128 ; UCHAR *mem_129 ; ULONG *mem_130 ; USHORT *mem_131 ; ULONG *mem_132 ; USHORT *mem_133 ; ULONG *mem_134 ; UCHAR *mem_135 ; ULONG *mem_136 ; UCHAR *mem_137 ; { __cil_tmp5 = (unsigned int )DisketteExtension; __cil_tmp6 = __cil_tmp5 + 252; biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp6; { __cil_tmp7 = (unsigned int )FdcInfo; __cil_tmp8 = __cil_tmp7 + 61; mem_108 = (BOOLEAN *)__cil_tmp8; __cil_tmp9 = *mem_108; if (! __cil_tmp9) { return (-1073741823L); } else { } } { __cil_tmp10 = 64 + 4; __cil_tmp11 = (unsigned int )FdcInfo; __cil_tmp12 = __cil_tmp11 + __cil_tmp10; mem_109 = (ULONG *)__cil_tmp12; __cil_tmp13 = *mem_109; __cil_tmp14 = (enum _ACPI_FDI_DEVICE_TYPE )__cil_tmp13; if ((int )__cil_tmp14 == 1) { goto switch_11_1; } else { if ((int )__cil_tmp14 == 2) { goto switch_11_2; } else { if ((int )__cil_tmp14 == 3) { goto switch_11_3; } else { if ((int )__cil_tmp14 == 4) { goto switch_11_4; } else { if ((int )__cil_tmp14 == 5) { goto switch_11_5; } else { { goto switch_11_default; if (0) { switch_11_1: /* CIL Label */ driveType = (unsigned char)0; goto switch_11_break; switch_11_2: /* CIL Label */ driveType = (unsigned char)1; goto switch_11_break; switch_11_3: /* CIL Label */ driveType = (unsigned char)2; goto switch_11_break; switch_11_4: /* CIL Label */ driveType = (unsigned char)3; goto switch_11_break; switch_11_5: /* CIL Label */ driveType = (unsigned char)4; goto switch_11_break; switch_11_default: /* CIL Label */ driveType = (unsigned char)1; goto switch_11_break; } else { switch_11_break: /* CIL Label */ ; } } } } } } } } __cil_tmp15 = (unsigned int )DisketteExtension; __cil_tmp16 = __cil_tmp15 + 174; mem_110 = (UCHAR *)__cil_tmp16; *mem_110 = driveType; __cil_tmp17 = (int )driveType; __cil_tmp18 = DriveMediaLimits + __cil_tmp17; mem_111 = (DRIVE_MEDIA_TYPE *)__cil_tmp18; __cil_tmp19 = *mem_111; __cil_tmp20 = (unsigned int )__cil_tmp19; __cil_tmp21 = DriveMediaConstants + __cil_tmp20; *biosDriveMediaConstants = *__cil_tmp21; __cil_tmp22 = (unsigned int )biosDriveMediaConstants; __cil_tmp23 = __cil_tmp22 + 32; __cil_tmp24 = 64 + 20; __cil_tmp25 = (unsigned int )FdcInfo; __cil_tmp26 = __cil_tmp25 + __cil_tmp24; mem_112 = (ULONG *)__cil_tmp26; __cil_tmp27 = *mem_112; mem_113 = (UCHAR *)__cil_tmp23; *mem_113 = (unsigned char )__cil_tmp27; __cil_tmp28 = (unsigned int )biosDriveMediaConstants; __cil_tmp29 = __cil_tmp28 + 33; __cil_tmp30 = 64 + 24; __cil_tmp31 = (unsigned int )FdcInfo; __cil_tmp32 = __cil_tmp31 + __cil_tmp30; mem_114 = (ULONG *)__cil_tmp32; __cil_tmp33 = *mem_114; mem_115 = (UCHAR *)__cil_tmp29; *mem_115 = (unsigned char )__cil_tmp33; __cil_tmp34 = (unsigned int )biosDriveMediaConstants; __cil_tmp35 = __cil_tmp34 + 34; __cil_tmp36 = 64 + 28; __cil_tmp37 = (unsigned int )FdcInfo; __cil_tmp38 = __cil_tmp37 + __cil_tmp36; mem_116 = (ULONG *)__cil_tmp38; __cil_tmp39 = *mem_116; mem_117 = (UCHAR *)__cil_tmp35; *mem_117 = (unsigned char )__cil_tmp39; __cil_tmp40 = (unsigned int )biosDriveMediaConstants; __cil_tmp41 = __cil_tmp40 + 35; __cil_tmp42 = 64 + 32; __cil_tmp43 = (unsigned int )FdcInfo; __cil_tmp44 = __cil_tmp43 + __cil_tmp42; mem_118 = (ULONG *)__cil_tmp44; __cil_tmp45 = *mem_118; mem_119 = (UCHAR *)__cil_tmp41; *mem_119 = (unsigned char )__cil_tmp45; __cil_tmp46 = (unsigned int )biosDriveMediaConstants; __cil_tmp47 = __cil_tmp46 + 38; __cil_tmp48 = 64 + 36; __cil_tmp49 = (unsigned int )FdcInfo; __cil_tmp50 = __cil_tmp49 + __cil_tmp48; mem_120 = (ULONG *)__cil_tmp50; __cil_tmp51 = *mem_120; mem_121 = (UCHAR *)__cil_tmp47; *mem_121 = (unsigned char )__cil_tmp51; __cil_tmp52 = (unsigned int )biosDriveMediaConstants; __cil_tmp53 = __cil_tmp52 + 39; __cil_tmp54 = 64 + 40; __cil_tmp55 = (unsigned int )FdcInfo; __cil_tmp56 = __cil_tmp55 + __cil_tmp54; mem_122 = (ULONG *)__cil_tmp56; __cil_tmp57 = *mem_122; mem_123 = (UCHAR *)__cil_tmp53; *mem_123 = (unsigned char )__cil_tmp57; __cil_tmp58 = (unsigned int )biosDriveMediaConstants; __cil_tmp59 = __cil_tmp58 + 40; __cil_tmp60 = 64 + 48; __cil_tmp61 = (unsigned int )FdcInfo; __cil_tmp62 = __cil_tmp61 + __cil_tmp60; mem_124 = (ULONG *)__cil_tmp62; __cil_tmp63 = *mem_124; mem_125 = (UCHAR *)__cil_tmp59; *mem_125 = (unsigned char )__cil_tmp63; __cil_tmp64 = (unsigned int )biosDriveMediaConstants; __cil_tmp65 = __cil_tmp64 + 41; __cil_tmp66 = 64 + 52; __cil_tmp67 = (unsigned int )FdcInfo; __cil_tmp68 = __cil_tmp67 + __cil_tmp66; mem_126 = (ULONG *)__cil_tmp68; __cil_tmp69 = *mem_126; mem_127 = (UCHAR *)__cil_tmp65; *mem_127 = (unsigned char )__cil_tmp69; __cil_tmp70 = (unsigned int )biosDriveMediaConstants; __cil_tmp71 = __cil_tmp70 + 42; __cil_tmp72 = 64 + 56; __cil_tmp73 = (unsigned int )FdcInfo; __cil_tmp74 = __cil_tmp73 + __cil_tmp72; mem_128 = (ULONG *)__cil_tmp74; __cil_tmp75 = *mem_128; mem_129 = (UCHAR *)__cil_tmp71; *mem_129 = (unsigned char )__cil_tmp75; __cil_tmp76 = (unsigned int )biosDriveMediaConstants; __cil_tmp77 = __cil_tmp76 + 44; __cil_tmp78 = 64 + 60; __cil_tmp79 = (unsigned int )FdcInfo; __cil_tmp80 = __cil_tmp79 + __cil_tmp78; mem_130 = (ULONG *)__cil_tmp80; __cil_tmp81 = *mem_130; __cil_tmp82 = (unsigned char )__cil_tmp81; __cil_tmp83 = (int )__cil_tmp82; __cil_tmp84 = __cil_tmp83 * 1000; __cil_tmp85 = __cil_tmp84 / 8; mem_131 = (USHORT *)__cil_tmp77; *mem_131 = (unsigned short )__cil_tmp85; __cil_tmp86 = (unsigned int )biosDriveMediaConstants; __cil_tmp87 = __cil_tmp86 + 46; __cil_tmp88 = 64 + 60; __cil_tmp89 = (unsigned int )FdcInfo; __cil_tmp90 = __cil_tmp89 + __cil_tmp88; mem_132 = (ULONG *)__cil_tmp90; __cil_tmp91 = *mem_132; __cil_tmp92 = (unsigned short )__cil_tmp91; __cil_tmp93 = (int )__cil_tmp92; __cil_tmp94 = __cil_tmp93 * 1000; __cil_tmp95 = __cil_tmp94 / 8; mem_133 = (USHORT *)__cil_tmp87; *mem_133 = (unsigned short )__cil_tmp95; __cil_tmp96 = (unsigned int )biosDriveMediaConstants; __cil_tmp97 = __cil_tmp96 + 48; __cil_tmp98 = 64 + 8; __cil_tmp99 = (unsigned int )FdcInfo; __cil_tmp100 = __cil_tmp99 + __cil_tmp98; mem_134 = (ULONG *)__cil_tmp100; __cil_tmp101 = *mem_134; mem_135 = (UCHAR *)__cil_tmp97; *mem_135 = (unsigned char )__cil_tmp101; __cil_tmp102 = (unsigned int )biosDriveMediaConstants; __cil_tmp103 = __cil_tmp102 + 52; __cil_tmp104 = 64 + 44; __cil_tmp105 = (unsigned int )FdcInfo; __cil_tmp106 = __cil_tmp105 + __cil_tmp104; mem_136 = (ULONG *)__cil_tmp106; __cil_tmp107 = *mem_136; mem_137 = (UCHAR *)__cil_tmp103; *mem_137 = (unsigned char )__cil_tmp107; return (0L); } } void __VERIFIER_assert(int cond) { if (!(cond)) { ERROR: __VERIFIER_error(); } return; } NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) { NTSTATUS status ; HANDLE threadHandle ; PIO_STACK_LOCATION irpSp ; OBJECT_ATTRIBUTES ObjAttributes ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; FAST_MUTEX *__cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; BOOLEAN __cil_tmp17 ; int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; FAST_MUTEX *__cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; FAST_MUTEX *__cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; FAST_MUTEX *__cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; LONG __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; LONG __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; LONG __cil_tmp45 ; void *__cil_tmp46 ; OBJECT_ATTRIBUTES *__cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; void *__cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; void *__cil_tmp54 ; void *__cil_tmp55 ; CLIENT_ID *__cil_tmp56 ; void *__cil_tmp57 ; int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; void *__cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; FAST_MUTEX *__cil_tmp64 ; HANDLE *__cil_tmp65 ; HANDLE __cil_tmp66 ; void *__cil_tmp67 ; struct _OBJECT_TYPE *__cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; PKTHREAD *__cil_tmp71 ; PVOID *__cil_tmp72 ; void *__cil_tmp73 ; struct _OBJECT_HANDLE_INFORMATION *__cil_tmp74 ; HANDLE *__cil_tmp75 ; HANDLE __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; FAST_MUTEX *__cil_tmp79 ; int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; FAST_MUTEX *__cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; struct _IO_STACK_LOCATION *__cil_tmp89 ; unsigned int __cil_tmp90 ; unsigned int __cil_tmp91 ; unsigned int __cil_tmp92 ; unsigned int __cil_tmp93 ; unsigned int __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; struct _IO_STACK_LOCATION *__cil_tmp97 ; unsigned int __cil_tmp98 ; unsigned int __cil_tmp99 ; UCHAR __cil_tmp100 ; int __cil_tmp101 ; int __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; LIST_ENTRY *__cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; unsigned int __cil_tmp108 ; unsigned int __cil_tmp109 ; LIST_ENTRY *__cil_tmp110 ; unsigned int __cil_tmp111 ; unsigned int __cil_tmp112 ; KSPIN_LOCK *__cil_tmp113 ; unsigned int __cil_tmp114 ; unsigned int __cil_tmp115 ; KSEMAPHORE *__cil_tmp116 ; struct _IO_STACK_LOCATION **mem_117 ; BOOLEAN *mem_118 ; NTSTATUS *mem_119 ; ULONG_PTR *mem_120 ; LONG *mem_121 ; LONG *mem_122 ; LONG *mem_123 ; LONG *mem_124 ; LONG *mem_125 ; ULONG *mem_126 ; HANDLE *mem_127 ; ULONG *mem_128 ; PUNICODE_STRING *mem_129 ; PVOID *mem_130 ; PVOID *mem_131 ; LONG *mem_132 ; struct _IO_STACK_LOCATION **mem_133 ; struct _IO_STACK_LOCATION **mem_134 ; UCHAR *mem_135 ; UCHAR *mem_136 ; { { __cil_tmp7 = 24 + 8; __cil_tmp8 = 0 + __cil_tmp7; __cil_tmp9 = 64 + __cil_tmp8; __cil_tmp10 = (unsigned int )Irp; __cil_tmp11 = __cil_tmp10 + __cil_tmp9; mem_117 = (struct _IO_STACK_LOCATION **)__cil_tmp11; irpSp = *mem_117; __cil_tmp12 = (unsigned int )DisketteExtension; __cil_tmp13 = __cil_tmp12 + 396; __cil_tmp14 = (FAST_MUTEX *)__cil_tmp13; ExAcquireFastMutex(__cil_tmp14); } { __cil_tmp15 = (unsigned int )DisketteExtension; __cil_tmp16 = __cil_tmp15 + 393; mem_118 = (BOOLEAN *)__cil_tmp16; __cil_tmp17 = *mem_118; __cil_tmp18 = (int )__cil_tmp17; if (__cil_tmp18 == 1) { { __cil_tmp19 = (unsigned int )DisketteExtension; __cil_tmp20 = __cil_tmp19 + 396; __cil_tmp21 = (FAST_MUTEX *)__cil_tmp20; ExReleaseFastMutex(__cil_tmp21); } { while (1) { while_12_continue: /* CIL Label */ ; goto while_12_break; } while_12_break: /* CIL Label */ ; } myStatus = -1073741101L; __cil_tmp22 = (unsigned int )Irp; __cil_tmp23 = __cil_tmp22 + 24; mem_119 = (NTSTATUS *)__cil_tmp23; *mem_119 = -1073741101L; __cil_tmp24 = 24 + 4; __cil_tmp25 = (unsigned int )Irp; __cil_tmp26 = __cil_tmp25 + __cil_tmp24; mem_120 = (ULONG_PTR *)__cil_tmp26; *mem_120 = 0UL; return (-1073741101L); } else { } } { __cil_tmp27 = (unsigned int )DisketteExtension; __cil_tmp28 = __cil_tmp27 + 396; __cil_tmp29 = (FAST_MUTEX *)__cil_tmp28; ExReleaseFastMutex(__cil_tmp29); } { while (1) { while_13_continue: /* CIL Label */ ; goto while_13_break; } while_13_break: /* CIL Label */ ; } { __cil_tmp30 = (unsigned int )DisketteExtension; __cil_tmp31 = __cil_tmp30 + 56; __cil_tmp32 = (FAST_MUTEX *)__cil_tmp31; ExAcquireFastMutex(__cil_tmp32); __cil_tmp33 = (unsigned int )DisketteExtension; __cil_tmp34 = __cil_tmp33 + 88; __cil_tmp35 = (unsigned int )DisketteExtension; __cil_tmp36 = __cil_tmp35 + 88; mem_121 = (LONG *)__cil_tmp36; __cil_tmp37 = *mem_121; mem_122 = (LONG *)__cil_tmp34; *mem_122 = __cil_tmp37 + 1L; } { __cil_tmp38 = (unsigned int )DisketteExtension; __cil_tmp39 = __cil_tmp38 + 88; mem_123 = (LONG *)__cil_tmp39; __cil_tmp40 = *mem_123; if (__cil_tmp40 == 0L) { { __cil_tmp41 = (unsigned int )DisketteExtension; __cil_tmp42 = __cil_tmp41 + 88; __cil_tmp43 = (unsigned int )DisketteExtension; __cil_tmp44 = __cil_tmp43 + 88; mem_124 = (LONG *)__cil_tmp44; __cil_tmp45 = *mem_124; mem_125 = (LONG *)__cil_tmp42; *mem_125 = __cil_tmp45 + 1L; ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount + 1UL; } if (PagingReferenceCount == 1UL) { { __cil_tmp46 = (void *)(& DriverEntry); MmResetDriverPaging(__cil_tmp46); } } else { } { ExReleaseFastMutex(PagingMutex); __cil_tmp47 = & ObjAttributes; mem_126 = (ULONG *)__cil_tmp47; *mem_126 = (unsigned long )24U; __cil_tmp48 = (unsigned int )(& ObjAttributes) + 4; mem_127 = (HANDLE *)__cil_tmp48; *mem_127 = (void *)0; __cil_tmp49 = (unsigned int )(& ObjAttributes) + 12; mem_128 = (ULONG *)__cil_tmp49; *mem_128 = 512UL; __cil_tmp50 = (unsigned int )(& ObjAttributes) + 8; __cil_tmp51 = (void *)0; mem_129 = (PUNICODE_STRING *)__cil_tmp50; *mem_129 = (UNICODE_STRING *)__cil_tmp51; __cil_tmp52 = (unsigned int )(& ObjAttributes) + 16; mem_130 = (PVOID *)__cil_tmp52; *mem_130 = (void *)0; __cil_tmp53 = (unsigned int )(& ObjAttributes) + 20; mem_131 = (PVOID *)__cil_tmp53; *mem_131 = (void *)0; __cil_tmp54 = (void *)0L; __cil_tmp55 = (void *)0; __cil_tmp56 = (CLIENT_ID *)__cil_tmp55; __cil_tmp57 = (void *)DisketteExtension; status = PsCreateSystemThread(& threadHandle, 0UL, & ObjAttributes, __cil_tmp54, __cil_tmp56, & FloppyThread, __cil_tmp57); } { __cil_tmp58 = status >= 0L; if (! __cil_tmp58) { { __cil_tmp59 = (unsigned int )DisketteExtension; __cil_tmp60 = __cil_tmp59 + 88; mem_132 = (LONG *)__cil_tmp60; *mem_132 = -1L; ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount - 1UL; } if (PagingReferenceCount == 0UL) { { __cil_tmp61 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp61); } } else { } { ExReleaseFastMutex(PagingMutex); __cil_tmp62 = (unsigned int )DisketteExtension; __cil_tmp63 = __cil_tmp62 + 56; __cil_tmp64 = (FAST_MUTEX *)__cil_tmp63; ExReleaseFastMutex(__cil_tmp64); } return (status); } else { } } { __cil_tmp65 = & threadHandle; __cil_tmp66 = *__cil_tmp65; __cil_tmp67 = (void *)0; __cil_tmp68 = (struct _OBJECT_TYPE *)__cil_tmp67; __cil_tmp69 = (unsigned int )DisketteExtension; __cil_tmp70 = __cil_tmp69 + 92; __cil_tmp71 = (PKTHREAD *)__cil_tmp70; __cil_tmp72 = (PVOID *)__cil_tmp71; __cil_tmp73 = (void *)0; __cil_tmp74 = (struct _OBJECT_HANDLE_INFORMATION *)__cil_tmp73; status = ObReferenceObjectByHandle(__cil_tmp66, 1048576UL, __cil_tmp68, (char)0, __cil_tmp72, __cil_tmp74); __cil_tmp75 = & threadHandle; __cil_tmp76 = *__cil_tmp75; ZwClose(__cil_tmp76); __cil_tmp77 = (unsigned int )DisketteExtension; __cil_tmp78 = __cil_tmp77 + 56; __cil_tmp79 = (FAST_MUTEX *)__cil_tmp78; ExReleaseFastMutex(__cil_tmp79); } { __cil_tmp80 = status >= 0L; if (! __cil_tmp80) { return (status); } else { } } } else { { __cil_tmp81 = (unsigned int )DisketteExtension; __cil_tmp82 = __cil_tmp81 + 56; __cil_tmp83 = (FAST_MUTEX *)__cil_tmp82; ExReleaseFastMutex(__cil_tmp83); } } } __cil_tmp84 = 24 + 8; __cil_tmp85 = 0 + __cil_tmp84; __cil_tmp86 = 64 + __cil_tmp85; __cil_tmp87 = (unsigned int )Irp; __cil_tmp88 = __cil_tmp87 + __cil_tmp86; mem_133 = (struct _IO_STACK_LOCATION **)__cil_tmp88; __cil_tmp89 = *mem_133; __cil_tmp90 = (unsigned int )__cil_tmp89; __cil_tmp91 = __cil_tmp90 + 3; __cil_tmp92 = 24 + 8; __cil_tmp93 = 0 + __cil_tmp92; __cil_tmp94 = 64 + __cil_tmp93; __cil_tmp95 = (unsigned int )Irp; __cil_tmp96 = __cil_tmp95 + __cil_tmp94; mem_134 = (struct _IO_STACK_LOCATION **)__cil_tmp96; __cil_tmp97 = *mem_134; __cil_tmp98 = (unsigned int )__cil_tmp97; __cil_tmp99 = __cil_tmp98 + 3; mem_135 = (UCHAR *)__cil_tmp99; __cil_tmp100 = *mem_135; __cil_tmp101 = (int )__cil_tmp100; __cil_tmp102 = __cil_tmp101 | 1; mem_136 = (UCHAR *)__cil_tmp91; *mem_136 = (unsigned char )__cil_tmp102; if (pended == 0) { pended = 1; } else { { __VERIFIER_assert(0); } } { __cil_tmp103 = (unsigned int )DisketteExtension; __cil_tmp104 = __cil_tmp103 + 96; __cil_tmp105 = (LIST_ENTRY *)__cil_tmp104; __cil_tmp106 = 0 + 24; __cil_tmp107 = 64 + __cil_tmp106; __cil_tmp108 = (unsigned int )Irp; __cil_tmp109 = __cil_tmp108 + __cil_tmp107; __cil_tmp110 = (LIST_ENTRY *)__cil_tmp109; __cil_tmp111 = (unsigned int )DisketteExtension; __cil_tmp112 = __cil_tmp111 + 52; __cil_tmp113 = (KSPIN_LOCK *)__cil_tmp112; ExfInterlockedInsertTailList(__cil_tmp105, __cil_tmp110, __cil_tmp113); __cil_tmp114 = (unsigned int )DisketteExtension; __cil_tmp115 = __cil_tmp114 + 32; __cil_tmp116 = (KSEMAPHORE *)__cil_tmp115; KeReleaseSemaphore(__cil_tmp116, 0L, 1L, (unsigned char)0); } return (259L); } } NTSTATUS FloppyCreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { unsigned int __cil_tmp3 ; unsigned int __cil_tmp4 ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; NTSTATUS *mem_8 ; ULONG_PTR *mem_9 ; { { while (1) { while_14_continue: /* CIL Label */ ; goto while_14_break; } while_14_break: /* CIL Label */ ; } { myStatus = 0L; __cil_tmp3 = (unsigned int )Irp; __cil_tmp4 = __cil_tmp3 + 24; mem_8 = (NTSTATUS *)__cil_tmp4; *mem_8 = 0L; __cil_tmp5 = 24 + 4; __cil_tmp6 = (unsigned int )Irp; __cil_tmp7 = __cil_tmp6 + __cil_tmp5; mem_9 = (ULONG_PTR *)__cil_tmp7; *mem_9 = 1UL; IofCompleteRequest(Irp, (char)0); } return (0L); } } NTSTATUS FloppyDeviceControl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { PIO_STACK_LOCATION irpSp ; PDISKETTE_EXTENSION disketteExtension ; PDISK_GEOMETRY outputBuffer ; NTSTATUS ntStatus ; ULONG outputBufferLength ; UCHAR i ; DRIVE_MEDIA_TYPE lowestDriveMediaType ; DRIVE_MEDIA_TYPE highestDriveMediaType ; ULONG formatExParametersSize ; PFORMAT_EX_PARAMETERS formatExParameters ; NTSTATUS tmp ; PMOUNTDEV_NAME mountName ; PMOUNTDEV_UNIQUE_ID uniqueId ; BOOLEAN tmp___0 ; PMOUNTDEV_SUGGESTED_LINK_NAME suggestedName ; WCHAR driveLetterNameBuffer[10] ; RTL_QUERY_REGISTRY_TABLE queryTable[2] ; PWSTR valueName ; UNICODE_STRING driveLetterName ; PVOID tmp___1 ; int tmp___2 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; PVOID __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; unsigned int __cil_tmp33 ; FAST_MUTEX *__cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; int __cil_tmp37 ; int __cil_tmp38 ; int __cil_tmp39 ; unsigned long __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; ULONG __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; FAST_MUTEX *__cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; FAST_MUTEX *__cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; BOOLEAN __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; CHAR __cil_tmp66 ; int __cil_tmp67 ; int __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; struct _IO_STACK_LOCATION *__cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; PDEVICE_OBJECT __cil_tmp82 ; unsigned int __cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; unsigned int __cil_tmp86 ; ULONG __cil_tmp87 ; int __cil_tmp88 ; unsigned long __cil_tmp89 ; unsigned long __cil_tmp90 ; unsigned long __cil_tmp91 ; unsigned int __cil_tmp92 ; unsigned int __cil_tmp93 ; ULONG __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; PVOID __cil_tmp97 ; unsigned int __cil_tmp98 ; unsigned int __cil_tmp99 ; USHORT __cil_tmp100 ; unsigned int __cil_tmp101 ; unsigned int __cil_tmp102 ; unsigned long __cil_tmp103 ; unsigned int __cil_tmp104 ; unsigned int __cil_tmp105 ; ULONG __cil_tmp106 ; unsigned int __cil_tmp107 ; unsigned int __cil_tmp108 ; unsigned int __cil_tmp109 ; unsigned int __cil_tmp110 ; unsigned int __cil_tmp111 ; unsigned int __cil_tmp112 ; unsigned int __cil_tmp113 ; WCHAR *__cil_tmp114 ; void *__cil_tmp115 ; unsigned int __cil_tmp116 ; unsigned int __cil_tmp117 ; unsigned int __cil_tmp118 ; PWSTR __cil_tmp119 ; void const *__cil_tmp120 ; USHORT __cil_tmp121 ; unsigned int __cil_tmp122 ; unsigned int __cil_tmp123 ; unsigned int __cil_tmp124 ; unsigned int __cil_tmp125 ; USHORT __cil_tmp126 ; unsigned int __cil_tmp127 ; unsigned int __cil_tmp128 ; unsigned int __cil_tmp129 ; unsigned int __cil_tmp130 ; unsigned int __cil_tmp131 ; PWSTR __cil_tmp132 ; unsigned long __cil_tmp133 ; unsigned int __cil_tmp134 ; unsigned int __cil_tmp135 ; ULONG __cil_tmp136 ; unsigned int __cil_tmp137 ; unsigned int __cil_tmp138 ; PVOID __cil_tmp139 ; unsigned int __cil_tmp140 ; unsigned int __cil_tmp141 ; USHORT __cil_tmp142 ; unsigned int __cil_tmp143 ; unsigned int __cil_tmp144 ; unsigned long __cil_tmp145 ; unsigned int __cil_tmp146 ; unsigned int __cil_tmp147 ; ULONG __cil_tmp148 ; unsigned int __cil_tmp149 ; unsigned int __cil_tmp150 ; unsigned int __cil_tmp151 ; unsigned int __cil_tmp152 ; unsigned int __cil_tmp153 ; unsigned int __cil_tmp154 ; unsigned int __cil_tmp155 ; UCHAR *__cil_tmp156 ; void *__cil_tmp157 ; unsigned int __cil_tmp158 ; unsigned int __cil_tmp159 ; unsigned int __cil_tmp160 ; PWSTR __cil_tmp161 ; void const *__cil_tmp162 ; USHORT __cil_tmp163 ; unsigned int __cil_tmp164 ; unsigned int __cil_tmp165 ; unsigned int __cil_tmp166 ; unsigned int __cil_tmp167 ; USHORT __cil_tmp168 ; unsigned int __cil_tmp169 ; unsigned int __cil_tmp170 ; int __cil_tmp171 ; int __cil_tmp172 ; int __cil_tmp173 ; int __cil_tmp174 ; int __cil_tmp175 ; int __cil_tmp176 ; int __cil_tmp177 ; int __cil_tmp178 ; unsigned long __cil_tmp179 ; unsigned int __cil_tmp180 ; unsigned int __cil_tmp181 ; unsigned int __cil_tmp182 ; unsigned int __cil_tmp183 ; ULONG __cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; PVOID __cil_tmp187 ; struct _FORMAT_PARAMETERS *__cil_tmp188 ; int __cil_tmp189 ; int __cil_tmp190 ; int __cil_tmp191 ; int __cil_tmp192 ; int __cil_tmp193 ; unsigned long __cil_tmp194 ; unsigned int __cil_tmp195 ; unsigned int __cil_tmp196 ; unsigned int __cil_tmp197 ; unsigned int __cil_tmp198 ; ULONG __cil_tmp199 ; unsigned long __cil_tmp200 ; unsigned int __cil_tmp201 ; unsigned int __cil_tmp202 ; unsigned int __cil_tmp203 ; unsigned int __cil_tmp204 ; ULONG __cil_tmp205 ; unsigned int __cil_tmp206 ; unsigned int __cil_tmp207 ; PVOID __cil_tmp208 ; unsigned int __cil_tmp209 ; unsigned int __cil_tmp210 ; USHORT __cil_tmp211 ; unsigned int __cil_tmp212 ; unsigned int __cil_tmp213 ; unsigned long __cil_tmp214 ; FORMAT_EX_PARAMETERS *__cil_tmp215 ; unsigned int __cil_tmp216 ; unsigned int __cil_tmp217 ; USHORT (*__cil_tmp218)[1] ; long __cil_tmp219 ; unsigned long __cil_tmp220 ; unsigned int __cil_tmp221 ; unsigned int __cil_tmp222 ; unsigned int __cil_tmp223 ; unsigned int __cil_tmp224 ; ULONG __cil_tmp225 ; unsigned int __cil_tmp226 ; unsigned int __cil_tmp227 ; USHORT __cil_tmp228 ; int __cil_tmp229 ; unsigned int __cil_tmp230 ; unsigned int __cil_tmp231 ; USHORT __cil_tmp232 ; int __cil_tmp233 ; int __cil_tmp234 ; int __cil_tmp235 ; int __cil_tmp236 ; int __cil_tmp237 ; int __cil_tmp238 ; int __cil_tmp239 ; int __cil_tmp240 ; int __cil_tmp241 ; int __cil_tmp242 ; int __cil_tmp243 ; int __cil_tmp244 ; int __cil_tmp245 ; int __cil_tmp246 ; int __cil_tmp247 ; unsigned int __cil_tmp248 ; unsigned int __cil_tmp249 ; UCHAR __cil_tmp250 ; int __cil_tmp251 ; PDRIVE_MEDIA_LIMITS __cil_tmp252 ; unsigned int __cil_tmp253 ; unsigned int __cil_tmp254 ; unsigned int __cil_tmp255 ; unsigned int __cil_tmp256 ; UCHAR __cil_tmp257 ; int __cil_tmp258 ; PDRIVE_MEDIA_LIMITS __cil_tmp259 ; unsigned int __cil_tmp260 ; unsigned int __cil_tmp261 ; unsigned long __cil_tmp262 ; int __cil_tmp263 ; int __cil_tmp264 ; int __cil_tmp265 ; int __cil_tmp266 ; unsigned int __cil_tmp267 ; unsigned int __cil_tmp268 ; unsigned long __cil_tmp269 ; unsigned long __cil_tmp270 ; ULONG __cil_tmp271 ; int __cil_tmp272 ; int __cil_tmp273 ; unsigned long __cil_tmp274 ; unsigned long __cil_tmp275 ; unsigned int __cil_tmp276 ; unsigned int __cil_tmp277 ; PVOID __cil_tmp278 ; unsigned char __cil_tmp279 ; int __cil_tmp280 ; int __cil_tmp281 ; unsigned int __cil_tmp282 ; unsigned int __cil_tmp283 ; int __cil_tmp284 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp285 ; int __cil_tmp286 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp287 ; unsigned int __cil_tmp288 ; unsigned int __cil_tmp289 ; UCHAR __cil_tmp290 ; int __cil_tmp291 ; int __cil_tmp292 ; unsigned int __cil_tmp293 ; unsigned int __cil_tmp294 ; unsigned int __cil_tmp295 ; unsigned int __cil_tmp296 ; unsigned int __cil_tmp297 ; unsigned int __cil_tmp298 ; int __cil_tmp299 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp300 ; unsigned int __cil_tmp301 ; unsigned int __cil_tmp302 ; UCHAR __cil_tmp303 ; unsigned int __cil_tmp304 ; unsigned int __cil_tmp305 ; int __cil_tmp306 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp307 ; unsigned int __cil_tmp308 ; unsigned int __cil_tmp309 ; UCHAR __cil_tmp310 ; unsigned int __cil_tmp311 ; unsigned int __cil_tmp312 ; int __cil_tmp313 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp314 ; unsigned int __cil_tmp315 ; unsigned int __cil_tmp316 ; USHORT __cil_tmp317 ; unsigned int __cil_tmp318 ; unsigned int __cil_tmp319 ; unsigned int __cil_tmp320 ; unsigned long __cil_tmp321 ; unsigned int __cil_tmp322 ; unsigned int __cil_tmp323 ; unsigned int __cil_tmp324 ; ULONG_PTR __cil_tmp325 ; int __cil_tmp326 ; int __cil_tmp327 ; int __cil_tmp328 ; unsigned long __cil_tmp329 ; unsigned long __cil_tmp330 ; KUSER_SHARED_DATA *__cil_tmp331 ; unsigned int __cil_tmp332 ; unsigned int __cil_tmp333 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp334 ; int __cil_tmp335 ; unsigned int __cil_tmp336 ; unsigned int __cil_tmp337 ; ULONG __cil_tmp338 ; unsigned long __cil_tmp339 ; unsigned long __cil_tmp340 ; unsigned int __cil_tmp341 ; unsigned int __cil_tmp342 ; ULONG __cil_tmp343 ; enum _POOL_TYPE __cil_tmp344 ; unsigned int __cil_tmp345 ; unsigned long __cil_tmp346 ; void *__cil_tmp347 ; unsigned int __cil_tmp348 ; void *__cil_tmp349 ; unsigned int __cil_tmp350 ; unsigned int __cil_tmp351 ; unsigned int __cil_tmp352 ; PWSTR __cil_tmp353 ; void const *__cil_tmp354 ; unsigned int __cil_tmp355 ; unsigned int __cil_tmp356 ; USHORT __cil_tmp357 ; unsigned int __cil_tmp358 ; unsigned int __cil_tmp359 ; unsigned int __cil_tmp360 ; unsigned int __cil_tmp361 ; unsigned int __cil_tmp362 ; UNICODE_STRING *__cil_tmp363 ; unsigned int __cil_tmp364 ; unsigned int __cil_tmp365 ; RTL_QUERY_REGISTRY_TABLE *__cil_tmp366 ; void *__cil_tmp367 ; unsigned int __cil_tmp368 ; unsigned int __cil_tmp369 ; unsigned int __cil_tmp370 ; unsigned int __cil_tmp371 ; unsigned int __cil_tmp372 ; unsigned int __cil_tmp373 ; unsigned int __cil_tmp374 ; unsigned int __cil_tmp375 ; unsigned int __cil_tmp376 ; unsigned int __cil_tmp377 ; WCHAR const *__cil_tmp378 ; unsigned int __cil_tmp379 ; unsigned int __cil_tmp380 ; RTL_QUERY_REGISTRY_TABLE *__cil_tmp381 ; void *__cil_tmp382 ; void *__cil_tmp383 ; int __cil_tmp384 ; void *__cil_tmp385 ; UNICODE_STRING *__cil_tmp386 ; USHORT __cil_tmp387 ; int __cil_tmp388 ; void *__cil_tmp389 ; unsigned int __cil_tmp390 ; PWSTR __cil_tmp391 ; PWSTR __cil_tmp392 ; WCHAR __cil_tmp393 ; int __cil_tmp394 ; void *__cil_tmp395 ; unsigned int __cil_tmp396 ; PWSTR __cil_tmp397 ; PWSTR __cil_tmp398 ; WCHAR __cil_tmp399 ; int __cil_tmp400 ; void *__cil_tmp401 ; unsigned int __cil_tmp402 ; PWSTR __cil_tmp403 ; PWSTR __cil_tmp404 ; WCHAR __cil_tmp405 ; int __cil_tmp406 ; void *__cil_tmp407 ; unsigned int __cil_tmp408 ; unsigned int __cil_tmp409 ; PVOID __cil_tmp410 ; unsigned int __cil_tmp411 ; unsigned int __cil_tmp412 ; unsigned int __cil_tmp413 ; unsigned int __cil_tmp414 ; unsigned int __cil_tmp415 ; MOUNTDEV_SUGGESTED_LINK_NAME *__cil_tmp416 ; unsigned int __cil_tmp417 ; unsigned int __cil_tmp418 ; WCHAR (*__cil_tmp419)[1] ; long __cil_tmp420 ; long __cil_tmp421 ; unsigned int __cil_tmp422 ; unsigned int __cil_tmp423 ; unsigned int __cil_tmp424 ; ULONG_PTR __cil_tmp425 ; unsigned int __cil_tmp426 ; unsigned int __cil_tmp427 ; ULONG __cil_tmp428 ; unsigned int __cil_tmp429 ; unsigned int __cil_tmp430 ; unsigned int __cil_tmp431 ; void *__cil_tmp432 ; WCHAR const *__cil_tmp433 ; WCHAR const *__cil_tmp434 ; void *__cil_tmp435 ; unsigned int __cil_tmp436 ; unsigned int __cil_tmp437 ; unsigned int __cil_tmp438 ; unsigned int __cil_tmp439 ; WCHAR *__cil_tmp440 ; void *__cil_tmp441 ; void const *__cil_tmp442 ; unsigned int __cil_tmp443 ; unsigned int __cil_tmp444 ; unsigned int __cil_tmp445 ; unsigned int __cil_tmp446 ; unsigned int __cil_tmp447 ; PWSTR __cil_tmp448 ; PWSTR __cil_tmp449 ; unsigned int __cil_tmp450 ; unsigned int __cil_tmp451 ; unsigned int __cil_tmp452 ; unsigned int __cil_tmp453 ; int __cil_tmp454 ; int __cil_tmp455 ; KUSER_SHARED_DATA *__cil_tmp456 ; unsigned int __cil_tmp457 ; unsigned int __cil_tmp458 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp459 ; int __cil_tmp460 ; unsigned long __cil_tmp461 ; unsigned int __cil_tmp462 ; unsigned int __cil_tmp463 ; ULONG __cil_tmp464 ; unsigned int __cil_tmp465 ; unsigned int __cil_tmp466 ; unsigned int __cil_tmp467 ; unsigned int __cil_tmp468 ; CHAR __cil_tmp469 ; int __cil_tmp470 ; int __cil_tmp471 ; unsigned int __cil_tmp472 ; unsigned int __cil_tmp473 ; unsigned int __cil_tmp474 ; unsigned int __cil_tmp475 ; unsigned int __cil_tmp476 ; unsigned int __cil_tmp477 ; unsigned int __cil_tmp478 ; unsigned int __cil_tmp479 ; unsigned int __cil_tmp480 ; unsigned int __cil_tmp481 ; struct _IO_STACK_LOCATION *__cil_tmp482 ; unsigned int __cil_tmp483 ; unsigned int __cil_tmp484 ; PDEVICE_OBJECT __cil_tmp485 ; unsigned int __cil_tmp486 ; unsigned int __cil_tmp487 ; int __cil_tmp488 ; PVOID *mem_489 ; struct _IO_STACK_LOCATION **mem_490 ; BOOLEAN *mem_491 ; ULONG *mem_492 ; BOOLEAN *mem_493 ; ULONG_PTR *mem_494 ; NTSTATUS *mem_495 ; BOOLEAN *mem_496 ; CHAR *mem_497 ; CHAR *mem_498 ; struct _IO_STACK_LOCATION **mem_499 ; struct _IO_STACK_LOCATION **mem_500 ; PDEVICE_OBJECT *mem_501 ; ULONG *mem_502 ; ULONG *mem_503 ; PVOID *mem_504 ; USHORT *mem_505 ; USHORT *mem_506 ; USHORT *mem_507 ; ULONG *mem_508 ; ULONG_PTR *mem_509 ; PWSTR *mem_510 ; USHORT *mem_511 ; USHORT *mem_512 ; ULONG_PTR *mem_513 ; PWSTR *mem_514 ; ULONG *mem_515 ; PVOID *mem_516 ; USHORT *mem_517 ; USHORT *mem_518 ; USHORT *mem_519 ; ULONG *mem_520 ; ULONG_PTR *mem_521 ; PWSTR *mem_522 ; USHORT *mem_523 ; USHORT *mem_524 ; ULONG_PTR *mem_525 ; ULONG *mem_526 ; PVOID *mem_527 ; ULONG *mem_528 ; ULONG *mem_529 ; PVOID *mem_530 ; USHORT *mem_531 ; ULONG *mem_532 ; USHORT *mem_533 ; USHORT *mem_534 ; UCHAR *mem_535 ; DRIVE_MEDIA_TYPE *mem_536 ; UCHAR *mem_537 ; DRIVE_MEDIA_TYPE *mem_538 ; ULONG *mem_539 ; PVOID *mem_540 ; MEDIA_TYPE *mem_541 ; MEDIA_TYPE *mem_542 ; UCHAR *mem_543 ; ULONG *mem_544 ; LONG *mem_545 ; UCHAR *mem_546 ; ULONG *mem_547 ; UCHAR *mem_548 ; ULONG *mem_549 ; USHORT *mem_550 ; ULONG *mem_551 ; ULONG_PTR *mem_552 ; ULONG_PTR *mem_553 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_554 ; ULONG *mem_555 ; ULONG *mem_556 ; PWSTR *mem_557 ; USHORT *mem_558 ; PWSTR *mem_559 ; USHORT *mem_560 ; USHORT *mem_561 ; ULONG *mem_562 ; PWSTR *mem_563 ; PVOID *mem_564 ; USHORT *mem_565 ; PWSTR *mem_566 ; PWSTR *mem_567 ; PWSTR *mem_568 ; PVOID *mem_569 ; BOOLEAN *mem_570 ; USHORT *mem_571 ; ULONG_PTR *mem_572 ; ULONG_PTR *mem_573 ; ULONG *mem_574 ; ULONG_PTR *mem_575 ; PWSTR *mem_576 ; WCHAR *mem_577 ; WCHAR *mem_578 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_579 ; ULONG *mem_580 ; CHAR *mem_581 ; CHAR *mem_582 ; struct _IO_STACK_LOCATION **mem_583 ; struct _IO_STACK_LOCATION **mem_584 ; PDEVICE_OBJECT *mem_585 ; NTSTATUS *mem_586 ; { { while (1) { while_15_continue: /* CIL Label */ ; goto while_15_break; } while_15_break: /* CIL Label */ ; } { __cil_tmp24 = (unsigned int )DeviceObject; __cil_tmp25 = __cil_tmp24 + 40; mem_489 = (PVOID *)__cil_tmp25; __cil_tmp26 = *mem_489; disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp26; __cil_tmp27 = 24 + 8; __cil_tmp28 = 0 + __cil_tmp27; __cil_tmp29 = 64 + __cil_tmp28; __cil_tmp30 = (unsigned int )Irp; __cil_tmp31 = __cil_tmp30 + __cil_tmp29; mem_490 = (struct _IO_STACK_LOCATION **)__cil_tmp31; irpSp = *mem_490; __cil_tmp32 = (unsigned int )disketteExtension; __cil_tmp33 = __cil_tmp32 + 428; __cil_tmp34 = (FAST_MUTEX *)__cil_tmp33; ExAcquireFastMutex(__cil_tmp34); } { __cil_tmp35 = (unsigned int )disketteExtension; __cil_tmp36 = __cil_tmp35 + 14; { mem_491 = (BOOLEAN *)__cil_tmp36; if (*mem_491) { { __cil_tmp37 = 3 << 14; __cil_tmp38 = 50 << 16; __cil_tmp39 = __cil_tmp38 | __cil_tmp37; __cil_tmp40 = (unsigned long )__cil_tmp39; __cil_tmp41 = 0 + 8; __cil_tmp42 = 4 + __cil_tmp41; __cil_tmp43 = (unsigned int )irpSp; __cil_tmp44 = __cil_tmp43 + __cil_tmp42; mem_492 = (ULONG *)__cil_tmp44; __cil_tmp45 = *mem_492; if (__cil_tmp45 != __cil_tmp40) { { ntStatus = FloppyQueueRequest(disketteExtension, Irp); __cil_tmp46 = (unsigned int )disketteExtension; __cil_tmp47 = __cil_tmp46 + 428; __cil_tmp48 = (FAST_MUTEX *)__cil_tmp47; ExReleaseFastMutex(__cil_tmp48); } return (ntStatus); } else { } } } else { } } } { __cil_tmp49 = (unsigned int )disketteExtension; __cil_tmp50 = __cil_tmp49 + 428; __cil_tmp51 = (FAST_MUTEX *)__cil_tmp50; ExReleaseFastMutex(__cil_tmp51); } { __cil_tmp52 = (unsigned int )disketteExtension; __cil_tmp53 = __cil_tmp52 + 13; { mem_493 = (BOOLEAN *)__cil_tmp53; if (*mem_493) { { __cil_tmp54 = 24 + 4; __cil_tmp55 = (unsigned int )Irp; __cil_tmp56 = __cil_tmp55 + __cil_tmp54; mem_494 = (ULONG_PTR *)__cil_tmp56; *mem_494 = 0UL; __cil_tmp57 = (unsigned int )Irp; __cil_tmp58 = __cil_tmp57 + 24; mem_495 = (NTSTATUS *)__cil_tmp58; *mem_495 = -1073741738L; myStatus = -1073741738L; IofCompleteRequest(Irp, (char)0); } return (-1073741738L); } else { } } } { __cil_tmp59 = (unsigned int )disketteExtension; __cil_tmp60 = __cil_tmp59 + 12; mem_496 = (BOOLEAN *)__cil_tmp60; __cil_tmp61 = *mem_496; if (! __cil_tmp61) { if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp62 = (unsigned int )Irp; __cil_tmp63 = __cil_tmp62 + 35; __cil_tmp64 = (unsigned int )Irp; __cil_tmp65 = __cil_tmp64 + 35; mem_497 = (CHAR *)__cil_tmp65; __cil_tmp66 = *mem_497; __cil_tmp67 = (int )__cil_tmp66; __cil_tmp68 = __cil_tmp67 + 1; mem_498 = (CHAR *)__cil_tmp63; *mem_498 = (char )__cil_tmp68; __cil_tmp69 = 24 + 8; __cil_tmp70 = 0 + __cil_tmp69; __cil_tmp71 = 64 + __cil_tmp70; __cil_tmp72 = (unsigned int )Irp; __cil_tmp73 = __cil_tmp72 + __cil_tmp71; __cil_tmp74 = 24 + 8; __cil_tmp75 = 0 + __cil_tmp74; __cil_tmp76 = 64 + __cil_tmp75; __cil_tmp77 = (unsigned int )Irp; __cil_tmp78 = __cil_tmp77 + __cil_tmp76; mem_499 = (struct _IO_STACK_LOCATION **)__cil_tmp78; __cil_tmp79 = *mem_499; mem_500 = (struct _IO_STACK_LOCATION **)__cil_tmp73; *mem_500 = __cil_tmp79 + 1; __cil_tmp80 = (unsigned int )disketteExtension; __cil_tmp81 = __cil_tmp80 + 8; mem_501 = (PDEVICE_OBJECT *)__cil_tmp81; __cil_tmp82 = *mem_501; tmp = IofCallDriver(__cil_tmp82, Irp); } return (tmp); } else { } } { __cil_tmp83 = 0 + 8; __cil_tmp84 = 4 + __cil_tmp83; __cil_tmp85 = (unsigned int )irpSp; __cil_tmp86 = __cil_tmp85 + __cil_tmp84; mem_502 = (ULONG *)__cil_tmp86; __cil_tmp87 = *mem_502; if ((int )__cil_tmp87 == (__cil_tmp90 | __cil_tmp89)) { goto switch_16_exp_0; } else { if ((int )__cil_tmp87 == 77UL << 16) { goto switch_16_exp_1; } else { if ((int )__cil_tmp87 == (__cil_tmp174 | __cil_tmp171)) { goto switch_16_exp_2; } else { if ((int )__cil_tmp87 == (__cil_tmp178 | __cil_tmp175)) { goto switch_16_exp_3; } else { if ((int )__cil_tmp87 == (__cil_tmp237 | __cil_tmp234)) { goto switch_16_exp_4; } else { if ((int )__cil_tmp87 == (__cil_tmp241 | __cil_tmp238)) { goto switch_16_exp_5; } else { if ((int )__cil_tmp87 == 7 << 16) { goto switch_16_exp_6; } else { if ((int )__cil_tmp87 == (__cil_tmp243 | __cil_tmp242)) { goto switch_16_exp_7; } else { if ((int )__cil_tmp87 == (__cil_tmp245 | __cil_tmp244)) { goto switch_16_exp_8; } else { if ((int )__cil_tmp87 == (__cil_tmp247 | __cil_tmp246)) { goto switch_16_exp_9; } else { if ((int )__cil_tmp87 == (__cil_tmp330 | __cil_tmp329)) { goto switch_16_exp_10; } else { if ((int )__cil_tmp87 == (__cil_tmp455 | __cil_tmp454)) { goto switch_16_exp_11; } else { { goto switch_16_default; if (0) { switch_16_exp_0: /* CIL Label */ { __cil_tmp88 = 2 << 2; __cil_tmp89 = (unsigned long )__cil_tmp88; __cil_tmp90 = 77UL << 16; } { while (1) { while_17_continue: /* CIL Label */ ; goto while_17_break; } while_17_break: /* CIL Label */ ; } { __cil_tmp91 = (unsigned long )4U; __cil_tmp92 = (unsigned int )irpSp; __cil_tmp93 = __cil_tmp92 + 4; mem_503 = (ULONG *)__cil_tmp93; __cil_tmp94 = *mem_503; if (__cil_tmp94 < __cil_tmp91) { ntStatus = -1073741811L; goto switch_16_break; } else { } } __cil_tmp95 = (unsigned int )Irp; __cil_tmp96 = __cil_tmp95 + 12; mem_504 = (PVOID *)__cil_tmp96; __cil_tmp97 = *mem_504; mountName = (struct _MOUNTDEV_NAME *)__cil_tmp97; __cil_tmp98 = (unsigned int )disketteExtension; __cil_tmp99 = __cil_tmp98 + 368; mem_505 = (USHORT *)mountName; mem_506 = (USHORT *)__cil_tmp99; *mem_505 = *mem_506; { mem_507 = (USHORT *)mountName; __cil_tmp100 = *mem_507; __cil_tmp101 = (unsigned int )__cil_tmp100; __cil_tmp102 = 2U + __cil_tmp101; __cil_tmp103 = (unsigned long )__cil_tmp102; __cil_tmp104 = (unsigned int )irpSp; __cil_tmp105 = __cil_tmp104 + 4; mem_508 = (ULONG *)__cil_tmp105; __cil_tmp106 = *mem_508; if (__cil_tmp106 < __cil_tmp103) { ntStatus = -2147483643L; __cil_tmp107 = 24 + 4; __cil_tmp108 = (unsigned int )Irp; __cil_tmp109 = __cil_tmp108 + __cil_tmp107; mem_509 = (ULONG_PTR *)__cil_tmp109; *mem_509 = (unsigned long )4U; goto switch_16_break; } else { } } { __cil_tmp110 = 0 * 2U; __cil_tmp111 = 2 + __cil_tmp110; __cil_tmp112 = (unsigned int )mountName; __cil_tmp113 = __cil_tmp112 + __cil_tmp111; __cil_tmp114 = (WCHAR *)__cil_tmp113; __cil_tmp115 = (void *)__cil_tmp114; __cil_tmp116 = 368 + 4; __cil_tmp117 = (unsigned int )disketteExtension; __cil_tmp118 = __cil_tmp117 + __cil_tmp116; mem_510 = (PWSTR *)__cil_tmp118; __cil_tmp119 = *mem_510; __cil_tmp120 = (void const *)__cil_tmp119; mem_511 = (USHORT *)mountName; __cil_tmp121 = *mem_511; __cil_tmp122 = (unsigned int )__cil_tmp121; memcpy_guard(__cil_tmp115, __cil_tmp120, __cil_tmp122); memcpy(__cil_tmp115, __cil_tmp120, __cil_tmp122); ntStatus = 0L; __cil_tmp123 = 24 + 4; __cil_tmp124 = (unsigned int )Irp; __cil_tmp125 = __cil_tmp124 + __cil_tmp123; mem_512 = (USHORT *)mountName; __cil_tmp126 = *mem_512; __cil_tmp127 = (unsigned int )__cil_tmp126; __cil_tmp128 = 2U + __cil_tmp127; mem_513 = (ULONG_PTR *)__cil_tmp125; *mem_513 = (unsigned long )__cil_tmp128; } goto switch_16_break; switch_16_exp_1: /* CIL Label */ ; { while (1) { while_18_continue: /* CIL Label */ ; goto while_18_break; } while_18_break: /* CIL Label */ ; } { __cil_tmp129 = 376 + 4; __cil_tmp130 = (unsigned int )disketteExtension; __cil_tmp131 = __cil_tmp130 + __cil_tmp129; mem_514 = (PWSTR *)__cil_tmp131; __cil_tmp132 = *mem_514; if (! __cil_tmp132) { ntStatus = -1073741811L; goto switch_16_break; } else { { __cil_tmp133 = (unsigned long )4U; __cil_tmp134 = (unsigned int )irpSp; __cil_tmp135 = __cil_tmp134 + 4; mem_515 = (ULONG *)__cil_tmp135; __cil_tmp136 = *mem_515; if (__cil_tmp136 < __cil_tmp133) { ntStatus = -1073741811L; goto switch_16_break; } else { } } } } __cil_tmp137 = (unsigned int )Irp; __cil_tmp138 = __cil_tmp137 + 12; mem_516 = (PVOID *)__cil_tmp138; __cil_tmp139 = *mem_516; uniqueId = (struct _MOUNTDEV_UNIQUE_ID *)__cil_tmp139; __cil_tmp140 = (unsigned int )disketteExtension; __cil_tmp141 = __cil_tmp140 + 376; mem_517 = (USHORT *)uniqueId; mem_518 = (USHORT *)__cil_tmp141; *mem_517 = *mem_518; { mem_519 = (USHORT *)uniqueId; __cil_tmp142 = *mem_519; __cil_tmp143 = (unsigned int )__cil_tmp142; __cil_tmp144 = 2U + __cil_tmp143; __cil_tmp145 = (unsigned long )__cil_tmp144; __cil_tmp146 = (unsigned int )irpSp; __cil_tmp147 = __cil_tmp146 + 4; mem_520 = (ULONG *)__cil_tmp147; __cil_tmp148 = *mem_520; if (__cil_tmp148 < __cil_tmp145) { ntStatus = -2147483643L; __cil_tmp149 = 24 + 4; __cil_tmp150 = (unsigned int )Irp; __cil_tmp151 = __cil_tmp150 + __cil_tmp149; mem_521 = (ULONG_PTR *)__cil_tmp151; *mem_521 = (unsigned long )4U; goto switch_16_break; } else { } } { __cil_tmp152 = 0 * 1U; __cil_tmp153 = 2 + __cil_tmp152; __cil_tmp154 = (unsigned int )uniqueId; __cil_tmp155 = __cil_tmp154 + __cil_tmp153; __cil_tmp156 = (UCHAR *)__cil_tmp155; __cil_tmp157 = (void *)__cil_tmp156; __cil_tmp158 = 376 + 4; __cil_tmp159 = (unsigned int )disketteExtension; __cil_tmp160 = __cil_tmp159 + __cil_tmp158; mem_522 = (PWSTR *)__cil_tmp160; __cil_tmp161 = *mem_522; __cil_tmp162 = (void const *)__cil_tmp161; mem_523 = (USHORT *)uniqueId; __cil_tmp163 = *mem_523; __cil_tmp164 = (unsigned int )__cil_tmp163; memcpy_guard(__cil_tmp157, __cil_tmp162, __cil_tmp164); memcpy(__cil_tmp157, __cil_tmp162, __cil_tmp164); ntStatus = 0L; __cil_tmp165 = 24 + 4; __cil_tmp166 = (unsigned int )Irp; __cil_tmp167 = __cil_tmp166 + __cil_tmp165; mem_524 = (USHORT *)uniqueId; __cil_tmp168 = *mem_524; __cil_tmp169 = (unsigned int )__cil_tmp168; __cil_tmp170 = 2U + __cil_tmp169; mem_525 = (ULONG_PTR *)__cil_tmp167; *mem_525 = (unsigned long )__cil_tmp170; } goto switch_16_break; switch_16_exp_2: /* CIL Label */ { __cil_tmp171 = 6 << 2; __cil_tmp172 = 3 << 14; __cil_tmp173 = 7 << 16; __cil_tmp174 = __cil_tmp173 | __cil_tmp172; } switch_16_exp_3: /* CIL Label */ { __cil_tmp175 = 11 << 2; __cil_tmp176 = 3 << 14; __cil_tmp177 = 7 << 16; __cil_tmp178 = __cil_tmp177 | __cil_tmp176; } { __cil_tmp179 = (unsigned long )48U; __cil_tmp180 = 0 + 4; __cil_tmp181 = 4 + __cil_tmp180; __cil_tmp182 = (unsigned int )irpSp; __cil_tmp183 = __cil_tmp182 + __cil_tmp181; mem_526 = (ULONG *)__cil_tmp183; __cil_tmp184 = *mem_526; if (__cil_tmp184 < __cil_tmp179) { { while (1) { while_19_continue: /* CIL Label */ ; goto while_19_break; } while_19_break: /* CIL Label */ ; } ntStatus = -1073741811L; goto switch_16_break; } else { } } { __cil_tmp185 = (unsigned int )Irp; __cil_tmp186 = __cil_tmp185 + 12; mem_527 = (PVOID *)__cil_tmp186; __cil_tmp187 = *mem_527; __cil_tmp188 = (struct _FORMAT_PARAMETERS *)__cil_tmp187; tmp___0 = FlCheckFormatParameters(disketteExtension, __cil_tmp188); } if (! tmp___0) { { while (1) { while_20_continue: /* CIL Label */ ; goto while_20_break; } while_20_break: /* CIL Label */ ; } ntStatus = -1073741811L; goto switch_16_break; } else { } { __cil_tmp189 = 11 << 2; __cil_tmp190 = 3 << 14; __cil_tmp191 = 7 << 16; __cil_tmp192 = __cil_tmp191 | __cil_tmp190; __cil_tmp193 = __cil_tmp192 | __cil_tmp189; __cil_tmp194 = (unsigned long )__cil_tmp193; __cil_tmp195 = 0 + 8; __cil_tmp196 = 4 + __cil_tmp195; __cil_tmp197 = (unsigned int )irpSp; __cil_tmp198 = __cil_tmp197 + __cil_tmp196; mem_528 = (ULONG *)__cil_tmp198; __cil_tmp199 = *mem_528; if (__cil_tmp199 == __cil_tmp194) { { __cil_tmp200 = (unsigned long )56U; __cil_tmp201 = 0 + 4; __cil_tmp202 = 4 + __cil_tmp201; __cil_tmp203 = (unsigned int )irpSp; __cil_tmp204 = __cil_tmp203 + __cil_tmp202; mem_529 = (ULONG *)__cil_tmp204; __cil_tmp205 = *mem_529; if (__cil_tmp205 < __cil_tmp200) { ntStatus = -1073741811L; goto switch_16_break; } else { } } __cil_tmp206 = (unsigned int )Irp; __cil_tmp207 = __cil_tmp206 + 12; mem_530 = (PVOID *)__cil_tmp207; __cil_tmp208 = *mem_530; formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp208; __cil_tmp209 = (unsigned int )formatExParameters; __cil_tmp210 = __cil_tmp209 + 50; mem_531 = (USHORT *)__cil_tmp210; __cil_tmp211 = *mem_531; __cil_tmp212 = (unsigned int )__cil_tmp211; __cil_tmp213 = __cil_tmp212 * 2U; __cil_tmp214 = (unsigned long )__cil_tmp213; __cil_tmp215 = (FORMAT_EX_PARAMETERS *)0; __cil_tmp216 = (unsigned int )__cil_tmp215; __cil_tmp217 = __cil_tmp216 + 52; __cil_tmp218 = (USHORT (*)[1])__cil_tmp217; __cil_tmp219 = (long )__cil_tmp218; __cil_tmp220 = (unsigned long )__cil_tmp219; formatExParametersSize = __cil_tmp220 + __cil_tmp214; { __cil_tmp221 = 0 + 4; __cil_tmp222 = 4 + __cil_tmp221; __cil_tmp223 = (unsigned int )irpSp; __cil_tmp224 = __cil_tmp223 + __cil_tmp222; mem_532 = (ULONG *)__cil_tmp224; __cil_tmp225 = *mem_532; if (__cil_tmp225 < formatExParametersSize) { ntStatus = -1073741811L; goto switch_16_break; } else { { __cil_tmp226 = (unsigned int )formatExParameters; __cil_tmp227 = __cil_tmp226 + 48; mem_533 = (USHORT *)__cil_tmp227; __cil_tmp228 = *mem_533; __cil_tmp229 = (int )__cil_tmp228; if (__cil_tmp229 >= 256) { ntStatus = -1073741811L; goto switch_16_break; } else { { __cil_tmp230 = (unsigned int )formatExParameters; __cil_tmp231 = __cil_tmp230 + 50; mem_534 = (USHORT *)__cil_tmp231; __cil_tmp232 = *mem_534; __cil_tmp233 = (int )__cil_tmp232; if (__cil_tmp233 >= 256) { ntStatus = -1073741811L; goto switch_16_break; } else { } } } } } } } else { } } switch_16_exp_4: /* CIL Label */ { __cil_tmp234 = 512 << 2; __cil_tmp235 = 1 << 14; __cil_tmp236 = 7 << 16; __cil_tmp237 = __cil_tmp236 | __cil_tmp235; } switch_16_exp_5: /* CIL Label */ { __cil_tmp238 = 512 << 2; __cil_tmp239 = 1 << 14; __cil_tmp240 = 45 << 16; __cil_tmp241 = __cil_tmp240 | __cil_tmp239; } switch_16_exp_6: /* CIL Label */ ; switch_16_exp_7: /* CIL Label */ { __cil_tmp242 = 9 << 2; __cil_tmp243 = 7 << 16; } { while (1) { while_21_continue: /* CIL Label */ ; goto while_21_break; } while_21_break: /* CIL Label */ ; } { ntStatus = FlQueueIrpToThread(Irp, disketteExtension); } goto switch_16_break; switch_16_exp_8: /* CIL Label */ { __cil_tmp244 = 768 << 2; __cil_tmp245 = 7 << 16; } switch_16_exp_9: /* CIL Label */ { __cil_tmp246 = 768 << 2; __cil_tmp247 = 45 << 16; } { while (1) { while_22_continue: /* CIL Label */ ; goto while_22_break; } while_22_break: /* CIL Label */ ; } __cil_tmp248 = (unsigned int )disketteExtension; __cil_tmp249 = __cil_tmp248 + 174; mem_535 = (UCHAR *)__cil_tmp249; __cil_tmp250 = *mem_535; __cil_tmp251 = (int )__cil_tmp250; __cil_tmp252 = DriveMediaLimits + __cil_tmp251; __cil_tmp253 = (unsigned int )__cil_tmp252; __cil_tmp254 = __cil_tmp253 + 32; mem_536 = (DRIVE_MEDIA_TYPE *)__cil_tmp254; lowestDriveMediaType = *mem_536; __cil_tmp255 = (unsigned int )disketteExtension; __cil_tmp256 = __cil_tmp255 + 174; mem_537 = (UCHAR *)__cil_tmp256; __cil_tmp257 = *mem_537; __cil_tmp258 = (int )__cil_tmp257; __cil_tmp259 = DriveMediaLimits + __cil_tmp258; mem_538 = (DRIVE_MEDIA_TYPE *)__cil_tmp259; highestDriveMediaType = *mem_538; __cil_tmp260 = (unsigned int )irpSp; __cil_tmp261 = __cil_tmp260 + 4; mem_539 = (ULONG *)__cil_tmp261; outputBufferLength = *mem_539; { __cil_tmp262 = (unsigned long )52U; if (outputBufferLength < __cil_tmp262) { { while (1) { while_23_continue: /* CIL Label */ ; goto while_23_break; } while_23_break: /* CIL Label */ ; } ntStatus = -1073741789L; goto switch_16_break; } else { } } ntStatus = 0L; { __cil_tmp263 = (int )lowestDriveMediaType; __cil_tmp264 = (int )highestDriveMediaType; __cil_tmp265 = __cil_tmp264 - __cil_tmp263; __cil_tmp266 = __cil_tmp265 + 1; __cil_tmp267 = (unsigned int )__cil_tmp266; __cil_tmp268 = 52U * __cil_tmp267; __cil_tmp269 = (unsigned long )__cil_tmp268; if (outputBufferLength < __cil_tmp269) { { while (1) { while_24_continue: /* CIL Label */ ; goto while_24_break; } while_24_break: /* CIL Label */ ; } ntStatus = -2147483643L; __cil_tmp270 = (unsigned long )52U; __cil_tmp271 = outputBufferLength / __cil_tmp270; __cil_tmp272 = (int )lowestDriveMediaType; __cil_tmp273 = __cil_tmp272 - 1; __cil_tmp274 = (unsigned long )__cil_tmp273; __cil_tmp275 = __cil_tmp274 + __cil_tmp271; highestDriveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp275; } else { } } __cil_tmp276 = (unsigned int )Irp; __cil_tmp277 = __cil_tmp276 + 12; mem_540 = (PVOID *)__cil_tmp277; __cil_tmp278 = *mem_540; outputBuffer = (struct _DISK_GEOMETRY *)__cil_tmp278; i = (unsigned char )lowestDriveMediaType; { while (1) { while_25_continue: /* CIL Label */ ; { __cil_tmp279 = (unsigned char )highestDriveMediaType; __cil_tmp280 = (int )__cil_tmp279; __cil_tmp281 = (int )i; if (__cil_tmp281 <= __cil_tmp280) { } else { goto while_25_break; } } __cil_tmp282 = (unsigned int )outputBuffer; __cil_tmp283 = __cil_tmp282 + 8; __cil_tmp284 = (int )i; __cil_tmp285 = DriveMediaConstants + __cil_tmp284; mem_541 = (MEDIA_TYPE *)__cil_tmp283; mem_542 = (MEDIA_TYPE *)__cil_tmp285; *mem_541 = *mem_542; __cil_tmp286 = (int )i; __cil_tmp287 = DriveMediaConstants + __cil_tmp286; __cil_tmp288 = (unsigned int )__cil_tmp287; __cil_tmp289 = __cil_tmp288 + 48; mem_543 = (UCHAR *)__cil_tmp289; __cil_tmp290 = *mem_543; __cil_tmp291 = (int )__cil_tmp290; __cil_tmp292 = __cil_tmp291 + 1; mem_544 = (ULONG *)outputBuffer; *mem_544 = (unsigned long )__cil_tmp292; __cil_tmp293 = 0 + 4; __cil_tmp294 = 0 + __cil_tmp293; __cil_tmp295 = (unsigned int )outputBuffer; __cil_tmp296 = __cil_tmp295 + __cil_tmp294; mem_545 = (LONG *)__cil_tmp296; *mem_545 = 0L; __cil_tmp297 = (unsigned int )outputBuffer; __cil_tmp298 = __cil_tmp297 + 40; __cil_tmp299 = (int )i; __cil_tmp300 = DriveMediaConstants + __cil_tmp299; __cil_tmp301 = (unsigned int )__cil_tmp300; __cil_tmp302 = __cil_tmp301 + 51; mem_546 = (UCHAR *)__cil_tmp302; __cil_tmp303 = *mem_546; mem_547 = (ULONG *)__cil_tmp298; *mem_547 = (unsigned long )__cil_tmp303; __cil_tmp304 = (unsigned int )outputBuffer; __cil_tmp305 = __cil_tmp304 + 44; __cil_tmp306 = (int )i; __cil_tmp307 = DriveMediaConstants + __cil_tmp306; __cil_tmp308 = (unsigned int )__cil_tmp307; __cil_tmp309 = __cil_tmp308 + 38; mem_548 = (UCHAR *)__cil_tmp309; __cil_tmp310 = *mem_548; mem_549 = (ULONG *)__cil_tmp305; *mem_549 = (unsigned long )__cil_tmp310; __cil_tmp311 = (unsigned int )outputBuffer; __cil_tmp312 = __cil_tmp311 + 48; __cil_tmp313 = (int )i; __cil_tmp314 = DriveMediaConstants + __cil_tmp313; __cil_tmp315 = (unsigned int )__cil_tmp314; __cil_tmp316 = __cil_tmp315 + 36; mem_550 = (USHORT *)__cil_tmp316; __cil_tmp317 = *mem_550; mem_551 = (ULONG *)__cil_tmp312; *mem_551 = (unsigned long )__cil_tmp317; { while (1) { while_26_continue: /* CIL Label */ ; goto while_26_break; } while_26_break: /* CIL Label */ ; } outputBuffer = outputBuffer + 1; __cil_tmp318 = 24 + 4; __cil_tmp319 = (unsigned int )Irp; __cil_tmp320 = __cil_tmp319 + __cil_tmp318; __cil_tmp321 = (unsigned long )52U; __cil_tmp322 = 24 + 4; __cil_tmp323 = (unsigned int )Irp; __cil_tmp324 = __cil_tmp323 + __cil_tmp322; mem_552 = (ULONG_PTR *)__cil_tmp324; __cil_tmp325 = *mem_552; mem_553 = (ULONG_PTR *)__cil_tmp320; *mem_553 = __cil_tmp325 + __cil_tmp321; __cil_tmp326 = (int )i; __cil_tmp327 = __cil_tmp326 + 1; i = (unsigned char )__cil_tmp327; } while_25_break: /* CIL Label */ ; } goto switch_16_break; switch_16_exp_10: /* CIL Label */ { __cil_tmp328 = 3 << 2; __cil_tmp329 = (unsigned long )__cil_tmp328; __cil_tmp330 = 77UL << 16; } { __cil_tmp331 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp332 = (unsigned int )__cil_tmp331; __cil_tmp333 = __cil_tmp332 + 732; mem_554 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp333; __cil_tmp334 = *mem_554; __cil_tmp335 = (int )__cil_tmp334; if (__cil_tmp335 == 1) { { while (1) { while_27_continue: /* CIL Label */ ; goto while_27_break; } while_27_break: /* CIL Label */ ; } { __cil_tmp336 = (unsigned int )DeviceObject; __cil_tmp337 = __cil_tmp336 + 32; mem_555 = (ULONG *)__cil_tmp337; __cil_tmp338 = *mem_555; __cil_tmp339 = __cil_tmp338 & 1UL; if (! __cil_tmp339) { ntStatus = -1073741275L; goto switch_16_break; } else { } } { __cil_tmp340 = (unsigned long )6U; __cil_tmp341 = (unsigned int )irpSp; __cil_tmp342 = __cil_tmp341 + 4; mem_556 = (ULONG *)__cil_tmp342; __cil_tmp343 = *mem_556; if (__cil_tmp343 < __cil_tmp340) { ntStatus = -1073741811L; goto switch_16_break; } else { } } { __cil_tmp344 = (enum _POOL_TYPE )1; __cil_tmp345 = 2U * 64U; __cil_tmp346 = (unsigned long )__cil_tmp345; tmp___1 = ExAllocatePoolWithTag(__cil_tmp344, __cil_tmp346, 1886350406UL); valueName = (WCHAR *)tmp___1; } if (! valueName) { ntStatus = -1073741670L; goto switch_16_break; } else { } { __cil_tmp347 = (void *)valueName; __cil_tmp348 = 2U * 64U; memset(__cil_tmp347, 0, __cil_tmp348); __cil_tmp349 = (void *)valueName; __cil_tmp350 = 368 + 4; __cil_tmp351 = (unsigned int )disketteExtension; __cil_tmp352 = __cil_tmp351 + __cil_tmp350; mem_557 = (PWSTR *)__cil_tmp352; __cil_tmp353 = *mem_557; __cil_tmp354 = (void const *)__cil_tmp353; __cil_tmp355 = (unsigned int )disketteExtension; __cil_tmp356 = __cil_tmp355 + 368; mem_558 = (USHORT *)__cil_tmp356; __cil_tmp357 = *mem_558; __cil_tmp358 = (unsigned int )__cil_tmp357; memcpy_guard(__cil_tmp349, __cil_tmp354, __cil_tmp358); memcpy(__cil_tmp349, __cil_tmp354, __cil_tmp358); __cil_tmp359 = (unsigned int )(& driveLetterName) + 4; __cil_tmp360 = 0 * 2U; __cil_tmp361 = (unsigned int )(driveLetterNameBuffer) + __cil_tmp360; mem_559 = (PWSTR *)__cil_tmp359; *mem_559 = (WCHAR *)__cil_tmp361; __cil_tmp362 = (unsigned int )(& driveLetterName) + 2; mem_560 = (USHORT *)__cil_tmp362; *mem_560 = (unsigned short)20; __cil_tmp363 = & driveLetterName; mem_561 = (USHORT *)__cil_tmp363; *mem_561 = (unsigned short)0; __cil_tmp364 = 0 * 28U; __cil_tmp365 = (unsigned int )(queryTable) + __cil_tmp364; __cil_tmp366 = (RTL_QUERY_REGISTRY_TABLE *)__cil_tmp365; __cil_tmp367 = (void *)__cil_tmp366; __cil_tmp368 = 2U * 28U; memset(__cil_tmp367, 0, __cil_tmp368); __cil_tmp369 = 0 * 28U; __cil_tmp370 = __cil_tmp369 + 4; __cil_tmp371 = (unsigned int )(queryTable) + __cil_tmp370; mem_562 = (ULONG *)__cil_tmp371; *mem_562 = 36UL; __cil_tmp372 = 0 * 28U; __cil_tmp373 = __cil_tmp372 + 8; __cil_tmp374 = (unsigned int )(queryTable) + __cil_tmp373; mem_563 = (PWSTR *)__cil_tmp374; *mem_563 = valueName; __cil_tmp375 = 0 * 28U; __cil_tmp376 = __cil_tmp375 + 12; __cil_tmp377 = (unsigned int )(queryTable) + __cil_tmp376; mem_564 = (PVOID *)__cil_tmp377; *mem_564 = (void *)(& driveLetterName); __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"; __cil_tmp379 = 0 * 28U; __cil_tmp380 = (unsigned int )(queryTable) + __cil_tmp379; __cil_tmp381 = (RTL_QUERY_REGISTRY_TABLE *)__cil_tmp380; __cil_tmp382 = (void *)0; __cil_tmp383 = (void *)0; ntStatus = RtlQueryRegistryValues(0UL, __cil_tmp378, __cil_tmp381, __cil_tmp382, __cil_tmp383); } { __cil_tmp384 = ntStatus >= 0L; if (! __cil_tmp384) { { __cil_tmp385 = (void *)valueName; ExFreePool(__cil_tmp385); } goto switch_16_break; } else { } } { __cil_tmp386 = & driveLetterName; mem_565 = (USHORT *)__cil_tmp386; __cil_tmp387 = *mem_565; __cil_tmp388 = (int )__cil_tmp387; if (__cil_tmp388 != 4) { { ntStatus = -1073741275L; __cil_tmp389 = (void *)valueName; ExFreePool(__cil_tmp389); } goto switch_16_break; } else { { __cil_tmp390 = (unsigned int )(& driveLetterName) + 4; mem_566 = (PWSTR *)__cil_tmp390; __cil_tmp391 = *mem_566; __cil_tmp392 = __cil_tmp391 + 0; __cil_tmp393 = *__cil_tmp392; __cil_tmp394 = (int )__cil_tmp393; if (__cil_tmp394 < 65) { { ntStatus = -1073741275L; __cil_tmp395 = (void *)valueName; ExFreePool(__cil_tmp395); } goto switch_16_break; } else { { __cil_tmp396 = (unsigned int )(& driveLetterName) + 4; mem_567 = (PWSTR *)__cil_tmp396; __cil_tmp397 = *mem_567; __cil_tmp398 = __cil_tmp397 + 0; __cil_tmp399 = *__cil_tmp398; __cil_tmp400 = (int )__cil_tmp399; if (__cil_tmp400 > 90) { { ntStatus = -1073741275L; __cil_tmp401 = (void *)valueName; ExFreePool(__cil_tmp401); } goto switch_16_break; } else { { __cil_tmp402 = (unsigned int )(& driveLetterName) + 4; mem_568 = (PWSTR *)__cil_tmp402; __cil_tmp403 = *mem_568; __cil_tmp404 = __cil_tmp403 + 1; __cil_tmp405 = *__cil_tmp404; __cil_tmp406 = (int )__cil_tmp405; if (__cil_tmp406 != 58) { { ntStatus = -1073741275L; __cil_tmp407 = (void *)valueName; ExFreePool(__cil_tmp407); } goto switch_16_break; } else { } } } } } } } } __cil_tmp408 = (unsigned int )Irp; __cil_tmp409 = __cil_tmp408 + 12; mem_569 = (PVOID *)__cil_tmp409; __cil_tmp410 = *mem_569; suggestedName = (struct _MOUNTDEV_SUGGESTED_LINK_NAME *)__cil_tmp410; mem_570 = (BOOLEAN *)suggestedName; *mem_570 = (unsigned char)1; __cil_tmp411 = (unsigned int )suggestedName; __cil_tmp412 = __cil_tmp411 + 2; mem_571 = (USHORT *)__cil_tmp412; *mem_571 = (unsigned short)28; __cil_tmp413 = 24 + 4; __cil_tmp414 = (unsigned int )Irp; __cil_tmp415 = __cil_tmp414 + __cil_tmp413; __cil_tmp416 = (MOUNTDEV_SUGGESTED_LINK_NAME *)0; __cil_tmp417 = (unsigned int )__cil_tmp416; __cil_tmp418 = __cil_tmp417 + 4; __cil_tmp419 = (WCHAR (*)[1])__cil_tmp418; __cil_tmp420 = (long )__cil_tmp419; __cil_tmp421 = __cil_tmp420 + 28L; mem_572 = (ULONG_PTR *)__cil_tmp415; *mem_572 = (unsigned long )__cil_tmp421; { __cil_tmp422 = 24 + 4; __cil_tmp423 = (unsigned int )Irp; __cil_tmp424 = __cil_tmp423 + __cil_tmp422; mem_573 = (ULONG_PTR *)__cil_tmp424; __cil_tmp425 = *mem_573; __cil_tmp426 = (unsigned int )irpSp; __cil_tmp427 = __cil_tmp426 + 4; mem_574 = (ULONG *)__cil_tmp427; __cil_tmp428 = *mem_574; if (__cil_tmp428 < __cil_tmp425) { { __cil_tmp429 = 24 + 4; __cil_tmp430 = (unsigned int )Irp; __cil_tmp431 = __cil_tmp430 + __cil_tmp429; mem_575 = (ULONG_PTR *)__cil_tmp431; *mem_575 = (unsigned long )6U; ntStatus = -2147483643L; __cil_tmp432 = (void *)valueName; ExFreePool(__cil_tmp432); } goto switch_16_break; } else { } } { __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"; __cil_tmp434 = (WCHAR const *)valueName; RtlDeleteRegistryValue(0UL, __cil_tmp433, __cil_tmp434); __cil_tmp435 = (void *)valueName; ExFreePool(__cil_tmp435); __cil_tmp436 = 0 * 2U; __cil_tmp437 = 4 + __cil_tmp436; __cil_tmp438 = (unsigned int )suggestedName; __cil_tmp439 = __cil_tmp438 + __cil_tmp437; __cil_tmp440 = (WCHAR *)__cil_tmp439; __cil_tmp441 = (void *)__cil_tmp440; __cil_tmp442 = (void const *)"\\\000D\000o\000s\000D\000e\000v\000i\000c\000e\000s\000\\\000"; memcpy_guard(__cil_tmp441, __cil_tmp442, 24U); memcpy(__cil_tmp441, __cil_tmp442, 24U); __cil_tmp443 = 12 * 2U; __cil_tmp444 = 4 + __cil_tmp443; __cil_tmp445 = (unsigned int )suggestedName; __cil_tmp446 = __cil_tmp445 + __cil_tmp444; __cil_tmp447 = (unsigned int )(& driveLetterName) + 4; mem_576 = (PWSTR *)__cil_tmp447; __cil_tmp448 = *mem_576; __cil_tmp449 = __cil_tmp448 + 0; mem_577 = (WCHAR *)__cil_tmp446; *mem_577 = *__cil_tmp449; __cil_tmp450 = 13 * 2U; __cil_tmp451 = 4 + __cil_tmp450; __cil_tmp452 = (unsigned int )suggestedName; __cil_tmp453 = __cil_tmp452 + __cil_tmp451; mem_578 = (WCHAR *)__cil_tmp453; *mem_578 = (unsigned short )':'; } goto switch_16_break; } else { } } switch_16_exp_11: /* CIL Label */ { __cil_tmp454 = 248 << 2; __cil_tmp455 = 7 << 16; } { __cil_tmp456 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp457 = (unsigned int )__cil_tmp456; __cil_tmp458 = __cil_tmp457 + 732; mem_579 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp458; __cil_tmp459 = *mem_579; __cil_tmp460 = (int )__cil_tmp459; if (__cil_tmp460 == 1) { { while (1) { while_28_continue: /* CIL Label */ ; goto while_28_break; } while_28_break: /* CIL Label */ ; } { __cil_tmp461 = (unsigned long )1U; __cil_tmp462 = (unsigned int )irpSp; __cil_tmp463 = __cil_tmp462 + 4; mem_580 = (ULONG *)__cil_tmp463; __cil_tmp464 = *mem_580; if (__cil_tmp464 < __cil_tmp461) { { while (1) { while_29_continue: /* CIL Label */ ; goto while_29_break; } while_29_break: /* CIL Label */ ; } ntStatus = -1073741811L; goto switch_16_break; } else { } } { while (1) { while_30_continue: /* CIL Label */ ; goto while_30_break; } while_30_break: /* CIL Label */ ; } { ntStatus = FlQueueIrpToThread(Irp, disketteExtension); } goto switch_16_break; } else { } } switch_16_default: /* CIL Label */ ; if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp465 = (unsigned int )Irp; __cil_tmp466 = __cil_tmp465 + 35; __cil_tmp467 = (unsigned int )Irp; __cil_tmp468 = __cil_tmp467 + 35; mem_581 = (CHAR *)__cil_tmp468; __cil_tmp469 = *mem_581; __cil_tmp470 = (int )__cil_tmp469; __cil_tmp471 = __cil_tmp470 + 1; mem_582 = (CHAR *)__cil_tmp466; *mem_582 = (char )__cil_tmp471; __cil_tmp472 = 24 + 8; __cil_tmp473 = 0 + __cil_tmp472; __cil_tmp474 = 64 + __cil_tmp473; __cil_tmp475 = (unsigned int )Irp; __cil_tmp476 = __cil_tmp475 + __cil_tmp474; __cil_tmp477 = 24 + 8; __cil_tmp478 = 0 + __cil_tmp477; __cil_tmp479 = 64 + __cil_tmp478; __cil_tmp480 = (unsigned int )Irp; __cil_tmp481 = __cil_tmp480 + __cil_tmp479; mem_583 = (struct _IO_STACK_LOCATION **)__cil_tmp481; __cil_tmp482 = *mem_583; mem_584 = (struct _IO_STACK_LOCATION **)__cil_tmp476; *mem_584 = __cil_tmp482 + 1; __cil_tmp483 = (unsigned int )disketteExtension; __cil_tmp484 = __cil_tmp483 + 8; mem_585 = (PDEVICE_OBJECT *)__cil_tmp484; __cil_tmp485 = *mem_585; ntStatus = IofCallDriver(__cil_tmp485, Irp); } return (ntStatus); } else { switch_16_break: /* CIL Label */ ; } } } } } } } } } } } } } } } if (ntStatus != 259L) { __cil_tmp486 = (unsigned int )Irp; __cil_tmp487 = __cil_tmp486 + 24; mem_586 = (NTSTATUS *)__cil_tmp487; *mem_586 = ntStatus; myStatus = ntStatus; { __cil_tmp488 = ntStatus >= 0L; if (! __cil_tmp488) { if (ntStatus == -1073741661L) { tmp___2 = 1; } else { if (ntStatus == -1073741643L) { tmp___2 = 1; } else { if (ntStatus == -1073741662L) { tmp___2 = 1; } else { if (ntStatus == -1073741805L) { tmp___2 = 1; } else { if (ntStatus == -2147483626L) { tmp___2 = 1; } else { if (ntStatus == -1073741804L) { tmp___2 = 1; } else { if (ntStatus == -1073741806L) { tmp___2 = 1; } else { tmp___2 = 0; } } } } } } } if ((unsigned char )tmp___2) { { IoSetHardErrorOrVerifyDevice(Irp, DeviceObject); } } else { } } else { } } { IofCompleteRequest(Irp, (char)0); } } else { } return (ntStatus); } } NTSTATUS FloppyPnp(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { PIO_STACK_LOCATION irpSp ; PDISKETTE_EXTENSION disketteExtension ; NTSTATUS ntStatus ; KEVENT doneEvent ; PIO_STACK_LOCATION irpSp___0 ; PIO_STACK_LOCATION nextIrpSp ; PIO_STACK_LOCATION irpSp___1 ; PCONFIGURATION_INFORMATION tmp ; void *__cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; PVOID __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; UCHAR __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; UCHAR __cil_tmp32 ; int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; BOOLEAN __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; CHAR __cil_tmp41 ; int __cil_tmp42 ; int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; struct _IO_STACK_LOCATION *__cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; PDEVICE_OBJECT __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; FAST_MUTEX *__cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; FAST_MUTEX *__cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; PKTHREAD __cil_tmp68 ; void *__cil_tmp69 ; enum _KWAIT_REASON __cil_tmp70 ; void *__cil_tmp71 ; LARGE_INTEGER *__cil_tmp72 ; void *__cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; PKTHREAD __cil_tmp77 ; unsigned int __cil_tmp78 ; unsigned int __cil_tmp79 ; unsigned int __cil_tmp80 ; PKTHREAD __cil_tmp81 ; void *__cil_tmp82 ; unsigned int __cil_tmp83 ; unsigned int __cil_tmp84 ; void *__cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; unsigned int __cil_tmp90 ; unsigned int __cil_tmp91 ; CHAR __cil_tmp92 ; int __cil_tmp93 ; int __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; unsigned int __cil_tmp98 ; unsigned int __cil_tmp99 ; unsigned int __cil_tmp100 ; unsigned int __cil_tmp101 ; unsigned int __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; struct _IO_STACK_LOCATION *__cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; PDEVICE_OBJECT __cil_tmp108 ; unsigned int __cil_tmp109 ; unsigned int __cil_tmp110 ; unsigned int __cil_tmp111 ; unsigned int __cil_tmp112 ; unsigned int __cil_tmp113 ; unsigned int __cil_tmp114 ; unsigned int __cil_tmp115 ; UCHAR __cil_tmp116 ; int __cil_tmp117 ; unsigned int __cil_tmp118 ; unsigned int __cil_tmp119 ; BOOLEAN __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; unsigned int __cil_tmp123 ; unsigned int __cil_tmp124 ; unsigned int __cil_tmp125 ; unsigned int __cil_tmp126 ; CHAR __cil_tmp127 ; int __cil_tmp128 ; int __cil_tmp129 ; unsigned int __cil_tmp130 ; unsigned int __cil_tmp131 ; unsigned int __cil_tmp132 ; unsigned int __cil_tmp133 ; unsigned int __cil_tmp134 ; unsigned int __cil_tmp135 ; unsigned int __cil_tmp136 ; unsigned int __cil_tmp137 ; unsigned int __cil_tmp138 ; unsigned int __cil_tmp139 ; struct _IO_STACK_LOCATION *__cil_tmp140 ; unsigned int __cil_tmp141 ; unsigned int __cil_tmp142 ; PDEVICE_OBJECT __cil_tmp143 ; unsigned int __cil_tmp144 ; unsigned int __cil_tmp145 ; unsigned int __cil_tmp146 ; unsigned int __cil_tmp147 ; unsigned int __cil_tmp148 ; unsigned int __cil_tmp149 ; unsigned int __cil_tmp150 ; unsigned int __cil_tmp151 ; unsigned int __cil_tmp152 ; unsigned int __cil_tmp153 ; unsigned int __cil_tmp154 ; unsigned int __cil_tmp155 ; struct _IO_STACK_LOCATION *__cil_tmp156 ; void *__cil_tmp157 ; void const *__cil_tmp158 ; IO_STACK_LOCATION *__cil_tmp159 ; unsigned int __cil_tmp160 ; unsigned int __cil_tmp161 ; NTSTATUS (**__cil_tmp162)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; long __cil_tmp163 ; unsigned int __cil_tmp164 ; unsigned int __cil_tmp165 ; unsigned int __cil_tmp166 ; enum _EVENT_TYPE __cil_tmp167 ; unsigned int __cil_tmp168 ; unsigned int __cil_tmp169 ; unsigned int __cil_tmp170 ; unsigned int __cil_tmp171 ; unsigned int __cil_tmp172 ; struct _IO_STACK_LOCATION *__cil_tmp173 ; unsigned int __cil_tmp174 ; unsigned int __cil_tmp175 ; unsigned int __cil_tmp176 ; unsigned int __cil_tmp177 ; unsigned int __cil_tmp178 ; unsigned int __cil_tmp179 ; unsigned int __cil_tmp180 ; unsigned int __cil_tmp181 ; unsigned int __cil_tmp182 ; unsigned int __cil_tmp183 ; unsigned int __cil_tmp184 ; unsigned int __cil_tmp185 ; UCHAR __cil_tmp186 ; int __cil_tmp187 ; int __cil_tmp188 ; unsigned int __cil_tmp189 ; unsigned int __cil_tmp190 ; unsigned int __cil_tmp191 ; unsigned int __cil_tmp192 ; UCHAR __cil_tmp193 ; int __cil_tmp194 ; int __cil_tmp195 ; unsigned int __cil_tmp196 ; unsigned int __cil_tmp197 ; PDEVICE_OBJECT __cil_tmp198 ; void *__cil_tmp199 ; enum _KWAIT_REASON __cil_tmp200 ; void *__cil_tmp201 ; LARGE_INTEGER *__cil_tmp202 ; unsigned int __cil_tmp203 ; unsigned int __cil_tmp204 ; FAST_MUTEX *__cil_tmp205 ; unsigned int __cil_tmp206 ; unsigned int __cil_tmp207 ; unsigned int __cil_tmp208 ; unsigned int __cil_tmp209 ; FAST_MUTEX *__cil_tmp210 ; unsigned int __cil_tmp211 ; unsigned int __cil_tmp212 ; unsigned int __cil_tmp213 ; unsigned int __cil_tmp214 ; unsigned int __cil_tmp215 ; unsigned int __cil_tmp216 ; unsigned int __cil_tmp217 ; unsigned int __cil_tmp218 ; unsigned int __cil_tmp219 ; unsigned int __cil_tmp220 ; unsigned int __cil_tmp221 ; unsigned int __cil_tmp222 ; unsigned int __cil_tmp223 ; CHAR __cil_tmp224 ; int __cil_tmp225 ; int __cil_tmp226 ; unsigned int __cil_tmp227 ; unsigned int __cil_tmp228 ; unsigned int __cil_tmp229 ; unsigned int __cil_tmp230 ; unsigned int __cil_tmp231 ; unsigned int __cil_tmp232 ; unsigned int __cil_tmp233 ; unsigned int __cil_tmp234 ; unsigned int __cil_tmp235 ; unsigned int __cil_tmp236 ; struct _IO_STACK_LOCATION *__cil_tmp237 ; unsigned int __cil_tmp238 ; unsigned int __cil_tmp239 ; PDEVICE_OBJECT __cil_tmp240 ; unsigned int __cil_tmp241 ; unsigned int __cil_tmp242 ; FAST_MUTEX *__cil_tmp243 ; unsigned int __cil_tmp244 ; unsigned int __cil_tmp245 ; unsigned int __cil_tmp246 ; unsigned int __cil_tmp247 ; FAST_MUTEX *__cil_tmp248 ; unsigned int __cil_tmp249 ; unsigned int __cil_tmp250 ; unsigned int __cil_tmp251 ; unsigned int __cil_tmp252 ; unsigned int __cil_tmp253 ; unsigned int __cil_tmp254 ; unsigned int __cil_tmp255 ; unsigned int __cil_tmp256 ; CHAR __cil_tmp257 ; int __cil_tmp258 ; int __cil_tmp259 ; unsigned int __cil_tmp260 ; unsigned int __cil_tmp261 ; unsigned int __cil_tmp262 ; unsigned int __cil_tmp263 ; unsigned int __cil_tmp264 ; unsigned int __cil_tmp265 ; unsigned int __cil_tmp266 ; unsigned int __cil_tmp267 ; unsigned int __cil_tmp268 ; unsigned int __cil_tmp269 ; struct _IO_STACK_LOCATION *__cil_tmp270 ; unsigned int __cil_tmp271 ; unsigned int __cil_tmp272 ; unsigned int __cil_tmp273 ; unsigned int __cil_tmp274 ; PDEVICE_OBJECT __cil_tmp275 ; void *__cil_tmp276 ; unsigned int __cil_tmp277 ; unsigned int __cil_tmp278 ; unsigned int __cil_tmp279 ; unsigned int __cil_tmp280 ; PWSTR __cil_tmp281 ; unsigned int __cil_tmp282 ; unsigned int __cil_tmp283 ; unsigned int __cil_tmp284 ; UNICODE_STRING *__cil_tmp285 ; unsigned int __cil_tmp286 ; unsigned int __cil_tmp287 ; UNICODE_STRING *__cil_tmp288 ; unsigned int __cil_tmp289 ; unsigned int __cil_tmp290 ; UNICODE_STRING *__cil_tmp291 ; void *__cil_tmp292 ; WCHAR const *__cil_tmp293 ; unsigned int __cil_tmp294 ; unsigned int __cil_tmp295 ; UNICODE_STRING *__cil_tmp296 ; unsigned int __cil_tmp297 ; unsigned int __cil_tmp298 ; UNICODE_STRING *__cil_tmp299 ; void *__cil_tmp300 ; WCHAR const *__cil_tmp301 ; unsigned int __cil_tmp302 ; unsigned int __cil_tmp303 ; USHORT __cil_tmp304 ; int __cil_tmp305 ; unsigned int __cil_tmp306 ; unsigned int __cil_tmp307 ; UNICODE_STRING *__cil_tmp308 ; unsigned int __cil_tmp309 ; unsigned int __cil_tmp310 ; UNICODE_STRING *__cil_tmp311 ; unsigned int __cil_tmp312 ; unsigned int __cil_tmp313 ; UNICODE_STRING *__cil_tmp314 ; void *__cil_tmp315 ; WCHAR const *__cil_tmp316 ; unsigned int __cil_tmp317 ; unsigned int __cil_tmp318 ; PDEVICE_OBJECT __cil_tmp319 ; unsigned int __cil_tmp320 ; unsigned int __cil_tmp321 ; unsigned int __cil_tmp322 ; unsigned int __cil_tmp323 ; ULONG __cil_tmp324 ; unsigned int __cil_tmp325 ; unsigned int __cil_tmp326 ; unsigned int __cil_tmp327 ; unsigned int __cil_tmp328 ; CHAR __cil_tmp329 ; int __cil_tmp330 ; int __cil_tmp331 ; unsigned int __cil_tmp332 ; unsigned int __cil_tmp333 ; unsigned int __cil_tmp334 ; unsigned int __cil_tmp335 ; unsigned int __cil_tmp336 ; unsigned int __cil_tmp337 ; unsigned int __cil_tmp338 ; unsigned int __cil_tmp339 ; unsigned int __cil_tmp340 ; unsigned int __cil_tmp341 ; struct _IO_STACK_LOCATION *__cil_tmp342 ; unsigned int __cil_tmp343 ; unsigned int __cil_tmp344 ; PDEVICE_OBJECT __cil_tmp345 ; void *__cil_tmp346 ; PVOID *mem_347 ; struct _IO_STACK_LOCATION **mem_348 ; BOOLEAN *mem_349 ; ULONG_PTR *mem_350 ; NTSTATUS *mem_351 ; UCHAR *mem_352 ; UCHAR *mem_353 ; BOOLEAN *mem_354 ; CHAR *mem_355 ; CHAR *mem_356 ; struct _IO_STACK_LOCATION **mem_357 ; struct _IO_STACK_LOCATION **mem_358 ; PDEVICE_OBJECT *mem_359 ; BOOLEAN *mem_360 ; PKTHREAD *mem_361 ; PKTHREAD *mem_362 ; PKTHREAD *mem_363 ; PKTHREAD *mem_364 ; NTSTATUS *mem_365 ; CHAR *mem_366 ; CHAR *mem_367 ; struct _IO_STACK_LOCATION **mem_368 ; struct _IO_STACK_LOCATION **mem_369 ; PDEVICE_OBJECT *mem_370 ; NTSTATUS *mem_371 ; ULONG_PTR *mem_372 ; UCHAR *mem_373 ; BOOLEAN *mem_374 ; NTSTATUS *mem_375 ; CHAR *mem_376 ; CHAR *mem_377 ; struct _IO_STACK_LOCATION **mem_378 ; struct _IO_STACK_LOCATION **mem_379 ; PDEVICE_OBJECT *mem_380 ; NTSTATUS *mem_381 ; struct _IO_STACK_LOCATION **mem_382 ; struct _IO_STACK_LOCATION **mem_383 ; UCHAR *mem_384 ; struct _IO_STACK_LOCATION **mem_385 ; NTSTATUS (**mem_386)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; PVOID *mem_387 ; UCHAR *mem_388 ; UCHAR *mem_389 ; UCHAR *mem_390 ; UCHAR *mem_391 ; UCHAR *mem_392 ; UCHAR *mem_393 ; PDEVICE_OBJECT *mem_394 ; BOOLEAN *mem_395 ; NTSTATUS *mem_396 ; ULONG_PTR *mem_397 ; BOOLEAN *mem_398 ; NTSTATUS *mem_399 ; CHAR *mem_400 ; CHAR *mem_401 ; struct _IO_STACK_LOCATION **mem_402 ; struct _IO_STACK_LOCATION **mem_403 ; PDEVICE_OBJECT *mem_404 ; BOOLEAN *mem_405 ; BOOLEAN *mem_406 ; BOOLEAN *mem_407 ; CHAR *mem_408 ; CHAR *mem_409 ; struct _IO_STACK_LOCATION **mem_410 ; struct _IO_STACK_LOCATION **mem_411 ; NTSTATUS *mem_412 ; PDEVICE_OBJECT *mem_413 ; PWSTR *mem_414 ; USHORT *mem_415 ; PDEVICE_OBJECT *mem_416 ; ULONG *mem_417 ; ULONG *mem_418 ; CHAR *mem_419 ; CHAR *mem_420 ; struct _IO_STACK_LOCATION **mem_421 ; struct _IO_STACK_LOCATION **mem_422 ; PDEVICE_OBJECT *mem_423 ; { ntStatus = 0L; { while (1) { while_31_continue: /* CIL Label */ ; goto while_31_break; } while_31_break: /* CIL Label */ ; } { ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount + 1UL; } if (PagingReferenceCount == 1UL) { { __cil_tmp11 = (void *)(& DriverEntry); MmResetDriverPaging(__cil_tmp11); } } else { } { ExReleaseFastMutex(PagingMutex); __cil_tmp12 = (unsigned int )DeviceObject; __cil_tmp13 = __cil_tmp12 + 40; mem_347 = (PVOID *)__cil_tmp13; __cil_tmp14 = *mem_347; disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp14; __cil_tmp15 = 24 + 8; __cil_tmp16 = 0 + __cil_tmp15; __cil_tmp17 = 64 + __cil_tmp16; __cil_tmp18 = (unsigned int )Irp; __cil_tmp19 = __cil_tmp18 + __cil_tmp17; mem_348 = (struct _IO_STACK_LOCATION **)__cil_tmp19; irpSp = *mem_348; } { __cil_tmp20 = (unsigned int )disketteExtension; __cil_tmp21 = __cil_tmp20 + 13; { mem_349 = (BOOLEAN *)__cil_tmp21; if (*mem_349) { { __cil_tmp22 = 24 + 4; __cil_tmp23 = (unsigned int )Irp; __cil_tmp24 = __cil_tmp23 + __cil_tmp22; mem_350 = (ULONG_PTR *)__cil_tmp24; *mem_350 = 0UL; __cil_tmp25 = (unsigned int )Irp; __cil_tmp26 = __cil_tmp25 + 24; mem_351 = (NTSTATUS *)__cil_tmp26; *mem_351 = -1073741738L; myStatus = -1073741738L; IofCompleteRequest(Irp, (char)0); } return (-1073741738L); } else { } } } { __cil_tmp27 = (unsigned int )irpSp; __cil_tmp28 = __cil_tmp27 + 1; mem_352 = (UCHAR *)__cil_tmp28; __cil_tmp29 = *mem_352; if ((int )__cil_tmp29 == 0) { goto switch_32_0; } else { if ((int )__cil_tmp29 == 5) { goto switch_32_5; } else { if ((int )__cil_tmp29 == 1) { goto switch_32_1; } else { if ((int )__cil_tmp29 == 6) { goto switch_32_6; } else { if ((int )__cil_tmp29 == 3) { goto switch_32_3; } else { if ((int )__cil_tmp29 == 4) { goto switch_32_4; } else { if ((int )__cil_tmp29 == 2) { goto switch_32_2; } else { { goto switch_32_default; if (0) { switch_32_0: /* CIL Label */ { ntStatus = FloppyStartDevice(DeviceObject, Irp); } goto switch_32_break; switch_32_5: /* CIL Label */ ; switch_32_1: /* CIL Label */ ; { __cil_tmp30 = (unsigned int )irpSp; __cil_tmp31 = __cil_tmp30 + 1; mem_353 = (UCHAR *)__cil_tmp31; __cil_tmp32 = *mem_353; __cil_tmp33 = (int )__cil_tmp32; if (__cil_tmp33 == 5) { { while (1) { while_33_continue: /* CIL Label */ ; goto while_33_break; } while_33_break: /* CIL Label */ ; } } else { { while (1) { while_34_continue: /* CIL Label */ ; goto while_34_break; } while_34_break: /* CIL Label */ ; } } } { __cil_tmp34 = (unsigned int )disketteExtension; __cil_tmp35 = __cil_tmp34 + 12; mem_354 = (BOOLEAN *)__cil_tmp35; __cil_tmp36 = *mem_354; if (! __cil_tmp36) { if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp37 = (unsigned int )Irp; __cil_tmp38 = __cil_tmp37 + 35; __cil_tmp39 = (unsigned int )Irp; __cil_tmp40 = __cil_tmp39 + 35; mem_355 = (CHAR *)__cil_tmp40; __cil_tmp41 = *mem_355; __cil_tmp42 = (int )__cil_tmp41; __cil_tmp43 = __cil_tmp42 + 1; mem_356 = (CHAR *)__cil_tmp38; *mem_356 = (char )__cil_tmp43; __cil_tmp44 = 24 + 8; __cil_tmp45 = 0 + __cil_tmp44; __cil_tmp46 = 64 + __cil_tmp45; __cil_tmp47 = (unsigned int )Irp; __cil_tmp48 = __cil_tmp47 + __cil_tmp46; __cil_tmp49 = 24 + 8; __cil_tmp50 = 0 + __cil_tmp49; __cil_tmp51 = 64 + __cil_tmp50; __cil_tmp52 = (unsigned int )Irp; __cil_tmp53 = __cil_tmp52 + __cil_tmp51; mem_357 = (struct _IO_STACK_LOCATION **)__cil_tmp53; __cil_tmp54 = *mem_357; mem_358 = (struct _IO_STACK_LOCATION **)__cil_tmp48; *mem_358 = __cil_tmp54 + 1; __cil_tmp55 = (unsigned int )disketteExtension; __cil_tmp56 = __cil_tmp55 + 8; mem_359 = (PDEVICE_OBJECT *)__cil_tmp56; __cil_tmp57 = *mem_359; ntStatus = IofCallDriver(__cil_tmp57, Irp); } return (ntStatus); } else { } } { __cil_tmp58 = (unsigned int )disketteExtension; __cil_tmp59 = __cil_tmp58 + 428; __cil_tmp60 = (FAST_MUTEX *)__cil_tmp59; ExAcquireFastMutex(__cil_tmp60); __cil_tmp61 = (unsigned int )disketteExtension; __cil_tmp62 = __cil_tmp61 + 14; mem_360 = (BOOLEAN *)__cil_tmp62; *mem_360 = (unsigned char)1; __cil_tmp63 = (unsigned int )disketteExtension; __cil_tmp64 = __cil_tmp63 + 428; __cil_tmp65 = (FAST_MUTEX *)__cil_tmp64; ExReleaseFastMutex(__cil_tmp65); ntStatus = FlQueueIrpToThread(Irp, disketteExtension); } if (ntStatus == 259L) { { __cil_tmp66 = (unsigned int )disketteExtension; __cil_tmp67 = __cil_tmp66 + 92; mem_361 = (PKTHREAD *)__cil_tmp67; __cil_tmp68 = *mem_361; __cil_tmp69 = (void *)__cil_tmp68; __cil_tmp70 = (enum _KWAIT_REASON )0; __cil_tmp71 = (void *)0; __cil_tmp72 = (LARGE_INTEGER *)__cil_tmp71; KeWaitForSingleObject(__cil_tmp69, __cil_tmp70, (char)0, (unsigned char)0, __cil_tmp72); } { __cil_tmp73 = (void *)0; __cil_tmp74 = (unsigned int )__cil_tmp73; __cil_tmp75 = (unsigned int )disketteExtension; __cil_tmp76 = __cil_tmp75 + 92; mem_362 = (PKTHREAD *)__cil_tmp76; __cil_tmp77 = *mem_362; __cil_tmp78 = (unsigned int )__cil_tmp77; if (__cil_tmp78 != __cil_tmp74) { { __cil_tmp79 = (unsigned int )disketteExtension; __cil_tmp80 = __cil_tmp79 + 92; mem_363 = (PKTHREAD *)__cil_tmp80; __cil_tmp81 = *mem_363; __cil_tmp82 = (void *)__cil_tmp81; ObfDereferenceObject(__cil_tmp82); } } else { } } __cil_tmp83 = (unsigned int )disketteExtension; __cil_tmp84 = __cil_tmp83 + 92; __cil_tmp85 = (void *)0; mem_364 = (PKTHREAD *)__cil_tmp84; *mem_364 = (struct _KTHREAD *)__cil_tmp85; __cil_tmp86 = (unsigned int )Irp; __cil_tmp87 = __cil_tmp86 + 24; mem_365 = (NTSTATUS *)__cil_tmp87; *mem_365 = 0L; myStatus = 0L; if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp88 = (unsigned int )Irp; __cil_tmp89 = __cil_tmp88 + 35; __cil_tmp90 = (unsigned int )Irp; __cil_tmp91 = __cil_tmp90 + 35; mem_366 = (CHAR *)__cil_tmp91; __cil_tmp92 = *mem_366; __cil_tmp93 = (int )__cil_tmp92; __cil_tmp94 = __cil_tmp93 + 1; mem_367 = (CHAR *)__cil_tmp89; *mem_367 = (char )__cil_tmp94; __cil_tmp95 = 24 + 8; __cil_tmp96 = 0 + __cil_tmp95; __cil_tmp97 = 64 + __cil_tmp96; __cil_tmp98 = (unsigned int )Irp; __cil_tmp99 = __cil_tmp98 + __cil_tmp97; __cil_tmp100 = 24 + 8; __cil_tmp101 = 0 + __cil_tmp100; __cil_tmp102 = 64 + __cil_tmp101; __cil_tmp103 = (unsigned int )Irp; __cil_tmp104 = __cil_tmp103 + __cil_tmp102; mem_368 = (struct _IO_STACK_LOCATION **)__cil_tmp104; __cil_tmp105 = *mem_368; mem_369 = (struct _IO_STACK_LOCATION **)__cil_tmp99; *mem_369 = __cil_tmp105 + 1; __cil_tmp106 = (unsigned int )disketteExtension; __cil_tmp107 = __cil_tmp106 + 8; mem_370 = (PDEVICE_OBJECT *)__cil_tmp107; __cil_tmp108 = *mem_370; ntStatus = IofCallDriver(__cil_tmp108, Irp); } } else { { ntStatus = -1073741823L; __cil_tmp109 = (unsigned int )Irp; __cil_tmp110 = __cil_tmp109 + 24; mem_371 = (NTSTATUS *)__cil_tmp110; *mem_371 = ntStatus; myStatus = ntStatus; __cil_tmp111 = 24 + 4; __cil_tmp112 = (unsigned int )Irp; __cil_tmp113 = __cil_tmp112 + __cil_tmp111; mem_372 = (ULONG_PTR *)__cil_tmp113; *mem_372 = 0UL; IofCompleteRequest(Irp, (char)0); } } goto switch_32_break; switch_32_6: /* CIL Label */ ; switch_32_3: /* CIL Label */ ; { __cil_tmp114 = (unsigned int )irpSp; __cil_tmp115 = __cil_tmp114 + 1; mem_373 = (UCHAR *)__cil_tmp115; __cil_tmp116 = *mem_373; __cil_tmp117 = (int )__cil_tmp116; if (__cil_tmp117 == 6) { { while (1) { while_35_continue: /* CIL Label */ ; goto while_35_break; } while_35_break: /* CIL Label */ ; } } else { { while (1) { while_36_continue: /* CIL Label */ ; goto while_36_break; } while_36_break: /* CIL Label */ ; } } } { __cil_tmp118 = (unsigned int )disketteExtension; __cil_tmp119 = __cil_tmp118 + 12; mem_374 = (BOOLEAN *)__cil_tmp119; __cil_tmp120 = *mem_374; if (! __cil_tmp120) { __cil_tmp121 = (unsigned int )Irp; __cil_tmp122 = __cil_tmp121 + 24; mem_375 = (NTSTATUS *)__cil_tmp122; *mem_375 = 0L; myStatus = 0L; if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp123 = (unsigned int )Irp; __cil_tmp124 = __cil_tmp123 + 35; __cil_tmp125 = (unsigned int )Irp; __cil_tmp126 = __cil_tmp125 + 35; mem_376 = (CHAR *)__cil_tmp126; __cil_tmp127 = *mem_376; __cil_tmp128 = (int )__cil_tmp127; __cil_tmp129 = __cil_tmp128 + 1; mem_377 = (CHAR *)__cil_tmp124; *mem_377 = (char )__cil_tmp129; __cil_tmp130 = 24 + 8; __cil_tmp131 = 0 + __cil_tmp130; __cil_tmp132 = 64 + __cil_tmp131; __cil_tmp133 = (unsigned int )Irp; __cil_tmp134 = __cil_tmp133 + __cil_tmp132; __cil_tmp135 = 24 + 8; __cil_tmp136 = 0 + __cil_tmp135; __cil_tmp137 = 64 + __cil_tmp136; __cil_tmp138 = (unsigned int )Irp; __cil_tmp139 = __cil_tmp138 + __cil_tmp137; mem_378 = (struct _IO_STACK_LOCATION **)__cil_tmp139; __cil_tmp140 = *mem_378; mem_379 = (struct _IO_STACK_LOCATION **)__cil_tmp134; *mem_379 = __cil_tmp140 + 1; __cil_tmp141 = (unsigned int )disketteExtension; __cil_tmp142 = __cil_tmp141 + 8; mem_380 = (PDEVICE_OBJECT *)__cil_tmp142; __cil_tmp143 = *mem_380; ntStatus = IofCallDriver(__cil_tmp143, Irp); } } else { { __cil_tmp144 = (unsigned int )Irp; __cil_tmp145 = __cil_tmp144 + 24; mem_381 = (NTSTATUS *)__cil_tmp145; *mem_381 = 0L; myStatus = 0L; __cil_tmp146 = 24 + 8; __cil_tmp147 = 0 + __cil_tmp146; __cil_tmp148 = 64 + __cil_tmp147; __cil_tmp149 = (unsigned int )Irp; __cil_tmp150 = __cil_tmp149 + __cil_tmp148; mem_382 = (struct _IO_STACK_LOCATION **)__cil_tmp150; irpSp___0 = *mem_382; __cil_tmp151 = 24 + 8; __cil_tmp152 = 0 + __cil_tmp151; __cil_tmp153 = 64 + __cil_tmp152; __cil_tmp154 = (unsigned int )Irp; __cil_tmp155 = __cil_tmp154 + __cil_tmp153; mem_383 = (struct _IO_STACK_LOCATION **)__cil_tmp155; __cil_tmp156 = *mem_383; nextIrpSp = __cil_tmp156 - 1; __cil_tmp157 = (void *)nextIrpSp; __cil_tmp158 = (void const *)irpSp___0; __cil_tmp159 = (IO_STACK_LOCATION *)0; __cil_tmp160 = (unsigned int )__cil_tmp159; __cil_tmp161 = __cil_tmp160 + 112; __cil_tmp162 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp161; __cil_tmp163 = (long )__cil_tmp162; __cil_tmp164 = (unsigned int )__cil_tmp163; memcpy_guard(__cil_tmp157, __cil_tmp158, __cil_tmp164); memcpy(__cil_tmp157, __cil_tmp158, __cil_tmp164); __cil_tmp165 = (unsigned int )nextIrpSp; __cil_tmp166 = __cil_tmp165 + 3; mem_384 = (UCHAR *)__cil_tmp166; *mem_384 = (unsigned char)0; __cil_tmp167 = (enum _EVENT_TYPE )1; KeInitializeEvent(& doneEvent, __cil_tmp167, (unsigned char)0); } if (s != 1) { { __VERIFIER_assert(0); } } else { if (compRegistered != 0) { { __VERIFIER_assert(0); } } else { compRegistered = 1; compFptr = & FloppyPnpComplete; } } { __cil_tmp168 = 24 + 8; __cil_tmp169 = 0 + __cil_tmp168; __cil_tmp170 = 64 + __cil_tmp169; __cil_tmp171 = (unsigned int )Irp; __cil_tmp172 = __cil_tmp171 + __cil_tmp170; mem_385 = (struct _IO_STACK_LOCATION **)__cil_tmp172; __cil_tmp173 = *mem_385; irpSp___1 = __cil_tmp173 - 1; __cil_tmp174 = (unsigned int )irpSp___1; __cil_tmp175 = __cil_tmp174 + 112; mem_386 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp175; *mem_386 = & FloppyPnpComplete; __cil_tmp176 = (unsigned int )irpSp___1; __cil_tmp177 = __cil_tmp176 + 116; mem_387 = (PVOID *)__cil_tmp177; *mem_387 = (void *)(& doneEvent); __cil_tmp178 = (unsigned int )irpSp___1; __cil_tmp179 = __cil_tmp178 + 3; mem_388 = (UCHAR *)__cil_tmp179; *mem_388 = (unsigned char)0; __cil_tmp180 = (unsigned int )irpSp___1; __cil_tmp181 = __cil_tmp180 + 3; mem_389 = (UCHAR *)__cil_tmp181; *mem_389 = (unsigned char)64; __cil_tmp182 = (unsigned int )irpSp___1; __cil_tmp183 = __cil_tmp182 + 3; __cil_tmp184 = (unsigned int )irpSp___1; __cil_tmp185 = __cil_tmp184 + 3; mem_390 = (UCHAR *)__cil_tmp185; __cil_tmp186 = *mem_390; __cil_tmp187 = (int )__cil_tmp186; __cil_tmp188 = __cil_tmp187 | 128; mem_391 = (UCHAR *)__cil_tmp183; *mem_391 = (unsigned char )__cil_tmp188; __cil_tmp189 = (unsigned int )irpSp___1; __cil_tmp190 = __cil_tmp189 + 3; __cil_tmp191 = (unsigned int )irpSp___1; __cil_tmp192 = __cil_tmp191 + 3; mem_392 = (UCHAR *)__cil_tmp192; __cil_tmp193 = *mem_392; __cil_tmp194 = (int )__cil_tmp193; __cil_tmp195 = __cil_tmp194 | 32; mem_393 = (UCHAR *)__cil_tmp190; *mem_393 = (unsigned char )__cil_tmp195; __cil_tmp196 = (unsigned int )disketteExtension; __cil_tmp197 = __cil_tmp196 + 8; mem_394 = (PDEVICE_OBJECT *)__cil_tmp197; __cil_tmp198 = *mem_394; ntStatus = IofCallDriver(__cil_tmp198, Irp); } if (ntStatus == 259L) { { __cil_tmp199 = (void *)(& doneEvent); __cil_tmp200 = (enum _KWAIT_REASON )0; __cil_tmp201 = (void *)0; __cil_tmp202 = (LARGE_INTEGER *)__cil_tmp201; KeWaitForSingleObject(__cil_tmp199, __cil_tmp200, (char)0, (unsigned char)0, __cil_tmp202); ntStatus = myStatus; } } else { } { __cil_tmp203 = (unsigned int )disketteExtension; __cil_tmp204 = __cil_tmp203 + 428; __cil_tmp205 = (FAST_MUTEX *)__cil_tmp204; ExAcquireFastMutex(__cil_tmp205); __cil_tmp206 = (unsigned int )disketteExtension; __cil_tmp207 = __cil_tmp206 + 14; mem_395 = (BOOLEAN *)__cil_tmp207; *mem_395 = (unsigned char)0; __cil_tmp208 = (unsigned int )disketteExtension; __cil_tmp209 = __cil_tmp208 + 428; __cil_tmp210 = (FAST_MUTEX *)__cil_tmp209; ExReleaseFastMutex(__cil_tmp210); FloppyProcessQueuedRequests(disketteExtension); __cil_tmp211 = (unsigned int )Irp; __cil_tmp212 = __cil_tmp211 + 24; mem_396 = (NTSTATUS *)__cil_tmp212; *mem_396 = ntStatus; myStatus = ntStatus; __cil_tmp213 = 24 + 4; __cil_tmp214 = (unsigned int )Irp; __cil_tmp215 = __cil_tmp214 + __cil_tmp213; mem_397 = (ULONG_PTR *)__cil_tmp215; *mem_397 = 0UL; IofCompleteRequest(Irp, (char)0); } } } goto switch_32_break; switch_32_4: /* CIL Label */ ; { while (1) { while_37_continue: /* CIL Label */ ; goto while_37_break; } while_37_break: /* CIL Label */ ; } __cil_tmp216 = (unsigned int )disketteExtension; __cil_tmp217 = __cil_tmp216 + 12; mem_398 = (BOOLEAN *)__cil_tmp217; *mem_398 = (unsigned char)0; __cil_tmp218 = (unsigned int )Irp; __cil_tmp219 = __cil_tmp218 + 24; mem_399 = (NTSTATUS *)__cil_tmp219; *mem_399 = 0L; myStatus = 0L; if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp220 = (unsigned int )Irp; __cil_tmp221 = __cil_tmp220 + 35; __cil_tmp222 = (unsigned int )Irp; __cil_tmp223 = __cil_tmp222 + 35; mem_400 = (CHAR *)__cil_tmp223; __cil_tmp224 = *mem_400; __cil_tmp225 = (int )__cil_tmp224; __cil_tmp226 = __cil_tmp225 + 1; mem_401 = (CHAR *)__cil_tmp221; *mem_401 = (char )__cil_tmp226; __cil_tmp227 = 24 + 8; __cil_tmp228 = 0 + __cil_tmp227; __cil_tmp229 = 64 + __cil_tmp228; __cil_tmp230 = (unsigned int )Irp; __cil_tmp231 = __cil_tmp230 + __cil_tmp229; __cil_tmp232 = 24 + 8; __cil_tmp233 = 0 + __cil_tmp232; __cil_tmp234 = 64 + __cil_tmp233; __cil_tmp235 = (unsigned int )Irp; __cil_tmp236 = __cil_tmp235 + __cil_tmp234; mem_402 = (struct _IO_STACK_LOCATION **)__cil_tmp236; __cil_tmp237 = *mem_402; mem_403 = (struct _IO_STACK_LOCATION **)__cil_tmp231; *mem_403 = __cil_tmp237 + 1; __cil_tmp238 = (unsigned int )disketteExtension; __cil_tmp239 = __cil_tmp238 + 8; mem_404 = (PDEVICE_OBJECT *)__cil_tmp239; __cil_tmp240 = *mem_404; ntStatus = IofCallDriver(__cil_tmp240, Irp); } goto switch_32_break; switch_32_2: /* CIL Label */ ; { while (1) { while_38_continue: /* CIL Label */ ; goto while_38_break; } while_38_break: /* CIL Label */ ; } { __cil_tmp241 = (unsigned int )disketteExtension; __cil_tmp242 = __cil_tmp241 + 428; __cil_tmp243 = (FAST_MUTEX *)__cil_tmp242; ExAcquireFastMutex(__cil_tmp243); __cil_tmp244 = (unsigned int )disketteExtension; __cil_tmp245 = __cil_tmp244 + 14; mem_405 = (BOOLEAN *)__cil_tmp245; *mem_405 = (unsigned char)0; __cil_tmp246 = (unsigned int )disketteExtension; __cil_tmp247 = __cil_tmp246 + 428; __cil_tmp248 = (FAST_MUTEX *)__cil_tmp247; ExReleaseFastMutex(__cil_tmp248); __cil_tmp249 = (unsigned int )disketteExtension; __cil_tmp250 = __cil_tmp249 + 12; mem_406 = (BOOLEAN *)__cil_tmp250; *mem_406 = (unsigned char)0; __cil_tmp251 = (unsigned int )disketteExtension; __cil_tmp252 = __cil_tmp251 + 13; mem_407 = (BOOLEAN *)__cil_tmp252; *mem_407 = (unsigned char)1; FloppyProcessQueuedRequests(disketteExtension); } if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp253 = (unsigned int )Irp; __cil_tmp254 = __cil_tmp253 + 35; __cil_tmp255 = (unsigned int )Irp; __cil_tmp256 = __cil_tmp255 + 35; mem_408 = (CHAR *)__cil_tmp256; __cil_tmp257 = *mem_408; __cil_tmp258 = (int )__cil_tmp257; __cil_tmp259 = __cil_tmp258 + 1; mem_409 = (CHAR *)__cil_tmp254; *mem_409 = (char )__cil_tmp259; __cil_tmp260 = 24 + 8; __cil_tmp261 = 0 + __cil_tmp260; __cil_tmp262 = 64 + __cil_tmp261; __cil_tmp263 = (unsigned int )Irp; __cil_tmp264 = __cil_tmp263 + __cil_tmp262; __cil_tmp265 = 24 + 8; __cil_tmp266 = 0 + __cil_tmp265; __cil_tmp267 = 64 + __cil_tmp266; __cil_tmp268 = (unsigned int )Irp; __cil_tmp269 = __cil_tmp268 + __cil_tmp267; mem_410 = (struct _IO_STACK_LOCATION **)__cil_tmp269; __cil_tmp270 = *mem_410; mem_411 = (struct _IO_STACK_LOCATION **)__cil_tmp264; *mem_411 = __cil_tmp270 + 1; __cil_tmp271 = (unsigned int )Irp; __cil_tmp272 = __cil_tmp271 + 24; mem_412 = (NTSTATUS *)__cil_tmp272; *mem_412 = 0L; myStatus = 0L; __cil_tmp273 = (unsigned int )disketteExtension; __cil_tmp274 = __cil_tmp273 + 8; mem_413 = (PDEVICE_OBJECT *)__cil_tmp274; __cil_tmp275 = *mem_413; ntStatus = IofCallDriver(__cil_tmp275, Irp); } { __cil_tmp276 = (void *)0; __cil_tmp277 = (unsigned int )__cil_tmp276; __cil_tmp278 = 376 + 4; __cil_tmp279 = (unsigned int )disketteExtension; __cil_tmp280 = __cil_tmp279 + __cil_tmp278; mem_414 = (PWSTR *)__cil_tmp280; __cil_tmp281 = *mem_414; __cil_tmp282 = (unsigned int )__cil_tmp281; if (__cil_tmp282 != __cil_tmp277) { { __cil_tmp283 = (unsigned int )disketteExtension; __cil_tmp284 = __cil_tmp283 + 376; __cil_tmp285 = (UNICODE_STRING *)__cil_tmp284; IoSetDeviceInterfaceState(__cil_tmp285, (unsigned char)0); __cil_tmp286 = (unsigned int )disketteExtension; __cil_tmp287 = __cil_tmp286 + 376; __cil_tmp288 = (UNICODE_STRING *)__cil_tmp287; RtlFreeUnicodeString(__cil_tmp288); __cil_tmp289 = (unsigned int )disketteExtension; __cil_tmp290 = __cil_tmp289 + 376; __cil_tmp291 = (UNICODE_STRING *)__cil_tmp290; __cil_tmp292 = (void *)0; __cil_tmp293 = (WCHAR const *)__cil_tmp292; RtlInitUnicodeString(__cil_tmp291, __cil_tmp293); } } else { } } { __cil_tmp294 = (unsigned int )disketteExtension; __cil_tmp295 = __cil_tmp294 + 368; __cil_tmp296 = (UNICODE_STRING *)__cil_tmp295; RtlFreeUnicodeString(__cil_tmp296); __cil_tmp297 = (unsigned int )disketteExtension; __cil_tmp298 = __cil_tmp297 + 368; __cil_tmp299 = (UNICODE_STRING *)__cil_tmp298; __cil_tmp300 = (void *)0; __cil_tmp301 = (WCHAR const *)__cil_tmp300; RtlInitUnicodeString(__cil_tmp299, __cil_tmp301); } { __cil_tmp302 = (unsigned int )disketteExtension; __cil_tmp303 = __cil_tmp302 + 384; mem_415 = (USHORT *)__cil_tmp303; __cil_tmp304 = *mem_415; __cil_tmp305 = (int )__cil_tmp304; if (__cil_tmp305 != 0) { { __cil_tmp306 = (unsigned int )disketteExtension; __cil_tmp307 = __cil_tmp306 + 384; __cil_tmp308 = (UNICODE_STRING *)__cil_tmp307; IoDeleteSymbolicLink(__cil_tmp308); __cil_tmp309 = (unsigned int )disketteExtension; __cil_tmp310 = __cil_tmp309 + 384; __cil_tmp311 = (UNICODE_STRING *)__cil_tmp310; RtlFreeUnicodeString(__cil_tmp311); __cil_tmp312 = (unsigned int )disketteExtension; __cil_tmp313 = __cil_tmp312 + 384; __cil_tmp314 = (UNICODE_STRING *)__cil_tmp313; __cil_tmp315 = (void *)0; __cil_tmp316 = (WCHAR const *)__cil_tmp315; RtlInitUnicodeString(__cil_tmp314, __cil_tmp316); } } else { } } { __cil_tmp317 = (unsigned int )disketteExtension; __cil_tmp318 = __cil_tmp317 + 8; mem_416 = (PDEVICE_OBJECT *)__cil_tmp318; __cil_tmp319 = *mem_416; IoDetachDevice(__cil_tmp319); IoDeleteDevice(DeviceObject); tmp = IoGetConfigurationInformation(); __cil_tmp320 = (unsigned int )tmp; __cil_tmp321 = __cil_tmp320 + 4; __cil_tmp322 = (unsigned int )tmp; __cil_tmp323 = __cil_tmp322 + 4; mem_417 = (ULONG *)__cil_tmp323; __cil_tmp324 = *mem_417; mem_418 = (ULONG *)__cil_tmp321; *mem_418 = __cil_tmp324 - 1UL; } goto switch_32_break; switch_32_default: /* CIL Label */ ; { while (1) { while_39_continue: /* CIL Label */ ; goto while_39_break; } while_39_break: /* CIL Label */ ; } if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp325 = (unsigned int )Irp; __cil_tmp326 = __cil_tmp325 + 35; __cil_tmp327 = (unsigned int )Irp; __cil_tmp328 = __cil_tmp327 + 35; mem_419 = (CHAR *)__cil_tmp328; __cil_tmp329 = *mem_419; __cil_tmp330 = (int )__cil_tmp329; __cil_tmp331 = __cil_tmp330 + 1; mem_420 = (CHAR *)__cil_tmp326; *mem_420 = (char )__cil_tmp331; __cil_tmp332 = 24 + 8; __cil_tmp333 = 0 + __cil_tmp332; __cil_tmp334 = 64 + __cil_tmp333; __cil_tmp335 = (unsigned int )Irp; __cil_tmp336 = __cil_tmp335 + __cil_tmp334; __cil_tmp337 = 24 + 8; __cil_tmp338 = 0 + __cil_tmp337; __cil_tmp339 = 64 + __cil_tmp338; __cil_tmp340 = (unsigned int )Irp; __cil_tmp341 = __cil_tmp340 + __cil_tmp339; mem_421 = (struct _IO_STACK_LOCATION **)__cil_tmp341; __cil_tmp342 = *mem_421; mem_422 = (struct _IO_STACK_LOCATION **)__cil_tmp336; *mem_422 = __cil_tmp342 + 1; __cil_tmp343 = (unsigned int )disketteExtension; __cil_tmp344 = __cil_tmp343 + 8; mem_423 = (PDEVICE_OBJECT *)__cil_tmp344; __cil_tmp345 = *mem_423; ntStatus = IofCallDriver(__cil_tmp345, Irp); } } else { switch_32_break: /* CIL Label */ ; } } } } } } } } } } { ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount - 1UL; } if (PagingReferenceCount == 0UL) { { __cil_tmp346 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp346); } } else { } { ExReleaseFastMutex(PagingMutex); } return (ntStatus); } } NTSTATUS FloppyStartDevice(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { NTSTATUS ntStatus ; NTSTATUS pnpStatus ; KEVENT doneEvent ; FDC_INFO fdcInfo ; CONFIGURATION_TYPE Dc ; CONFIGURATION_TYPE Fp ; PDISKETTE_EXTENSION disketteExtension ; PIO_STACK_LOCATION irpSp ; PIO_STACK_LOCATION irpSp___0 ; PIO_STACK_LOCATION nextIrpSp ; PIO_STACK_LOCATION irpSp___1 ; INTERFACE_TYPE InterfaceType ; CONFIGURATION_TYPE *__cil_tmp15 ; CONFIGURATION_TYPE *__cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; PVOID __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; enum _EVENT_TYPE __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; struct _IO_STACK_LOCATION *__cil_tmp36 ; void *__cil_tmp37 ; void const *__cil_tmp38 ; IO_STACK_LOCATION *__cil_tmp39 ; unsigned int __cil_tmp40 ; unsigned int __cil_tmp41 ; NTSTATUS (**__cil_tmp42)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; long __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; struct _IO_STACK_LOCATION *__cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; UCHAR __cil_tmp65 ; int __cil_tmp66 ; int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; UCHAR __cil_tmp72 ; int __cil_tmp73 ; int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; PDEVICE_OBJECT __cil_tmp77 ; void *__cil_tmp78 ; enum _KWAIT_REASON __cil_tmp79 ; void *__cil_tmp80 ; LARGE_INTEGER *__cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; PDEVICE_OBJECT __cil_tmp86 ; int __cil_tmp87 ; int __cil_tmp88 ; int __cil_tmp89 ; int __cil_tmp90 ; unsigned long __cil_tmp91 ; void *__cil_tmp92 ; unsigned int __cil_tmp93 ; unsigned int __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; unsigned int __cil_tmp98 ; unsigned int __cil_tmp99 ; UCHAR __cil_tmp100 ; int __cil_tmp101 ; unsigned int __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; ULONG __cil_tmp105 ; int __cil_tmp106 ; unsigned int __cil_tmp107 ; unsigned int __cil_tmp108 ; UCHAR __cil_tmp109 ; int __cil_tmp110 ; int __cil_tmp111 ; unsigned int __cil_tmp112 ; unsigned int __cil_tmp113 ; UCHAR __cil_tmp114 ; int __cil_tmp115 ; unsigned int __cil_tmp116 ; unsigned int __cil_tmp117 ; unsigned int __cil_tmp118 ; ULONG __cil_tmp119 ; int __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; UCHAR __cil_tmp123 ; int __cil_tmp124 ; int __cil_tmp125 ; int __cil_tmp126 ; unsigned int __cil_tmp127 ; unsigned int __cil_tmp128 ; INTERFACE_TYPE *__cil_tmp129 ; unsigned int __cil_tmp130 ; ULONG *__cil_tmp131 ; unsigned int __cil_tmp132 ; ULONG *__cil_tmp133 ; unsigned int __cil_tmp134 ; ULONG *__cil_tmp135 ; void *__cil_tmp136 ; int __cil_tmp137 ; int __cil_tmp138 ; KUSER_SHARED_DATA *__cil_tmp139 ; unsigned int __cil_tmp140 ; unsigned int __cil_tmp141 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp142 ; int __cil_tmp143 ; unsigned int __cil_tmp144 ; unsigned int __cil_tmp145 ; unsigned int __cil_tmp146 ; ULONG __cil_tmp147 ; unsigned int __cil_tmp148 ; unsigned int __cil_tmp149 ; unsigned int __cil_tmp150 ; ULONG __cil_tmp151 ; unsigned int __cil_tmp152 ; unsigned int __cil_tmp153 ; unsigned int __cil_tmp154 ; ULONG __cil_tmp155 ; unsigned int __cil_tmp156 ; unsigned int __cil_tmp157 ; unsigned int __cil_tmp158 ; ULONG __cil_tmp159 ; int __cil_tmp160 ; unsigned long __cil_tmp161 ; unsigned int __cil_tmp162 ; ULONG __cil_tmp163 ; unsigned long __cil_tmp164 ; unsigned int __cil_tmp165 ; unsigned int __cil_tmp166 ; PDEVICE_OBJECT __cil_tmp167 ; GUID *__cil_tmp168 ; GUID const *__cil_tmp169 ; void *__cil_tmp170 ; UNICODE_STRING *__cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; UNICODE_STRING *__cil_tmp174 ; unsigned int __cil_tmp175 ; unsigned int __cil_tmp176 ; UNICODE_STRING *__cil_tmp177 ; unsigned int __cil_tmp178 ; unsigned int __cil_tmp179 ; unsigned int __cil_tmp180 ; unsigned int __cil_tmp181 ; FAST_MUTEX *__cil_tmp182 ; unsigned int __cil_tmp183 ; unsigned int __cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; FAST_MUTEX *__cil_tmp187 ; unsigned int __cil_tmp188 ; unsigned int __cil_tmp189 ; PVOID *mem_190 ; struct _IO_STACK_LOCATION **mem_191 ; struct _IO_STACK_LOCATION **mem_192 ; struct _IO_STACK_LOCATION **mem_193 ; UCHAR *mem_194 ; struct _IO_STACK_LOCATION **mem_195 ; NTSTATUS (**mem_196)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; PVOID *mem_197 ; UCHAR *mem_198 ; UCHAR *mem_199 ; UCHAR *mem_200 ; UCHAR *mem_201 ; UCHAR *mem_202 ; UCHAR *mem_203 ; PDEVICE_OBJECT *mem_204 ; ULONG *mem_205 ; ULONG *mem_206 ; PDEVICE_OBJECT *mem_207 ; ULONG *mem_208 ; ULONG *mem_209 ; BOOLEAN *mem_210 ; BOOLEAN *mem_211 ; UCHAR *mem_212 ; ULONG *mem_213 ; UCHAR *mem_214 ; UCHAR *mem_215 ; UCHAR *mem_216 ; ULONG *mem_217 ; UCHAR *mem_218 ; UCHAR *mem_219 ; INTERFACE_TYPE *mem_220 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_221 ; ULONG *mem_222 ; UCHAR *mem_223 ; ULONG *mem_224 ; UCHAR *mem_225 ; ULONG *mem_226 ; UCHAR *mem_227 ; ULONG *mem_228 ; ULONG *mem_229 ; UCHAR *mem_230 ; PDEVICE_OBJECT *mem_231 ; BOOLEAN *mem_232 ; BOOLEAN *mem_233 ; NTSTATUS *mem_234 ; { __cil_tmp15 = & Dc; *__cil_tmp15 = (enum _CONFIGURATION_TYPE )13; __cil_tmp16 = & Fp; *__cil_tmp16 = (enum _CONFIGURATION_TYPE )26; __cil_tmp17 = (unsigned int )DeviceObject; __cil_tmp18 = __cil_tmp17 + 40; mem_190 = (PVOID *)__cil_tmp18; __cil_tmp19 = *mem_190; disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp19; __cil_tmp20 = 24 + 8; __cil_tmp21 = 0 + __cil_tmp20; __cil_tmp22 = 64 + __cil_tmp21; __cil_tmp23 = (unsigned int )Irp; __cil_tmp24 = __cil_tmp23 + __cil_tmp22; mem_191 = (struct _IO_STACK_LOCATION **)__cil_tmp24; irpSp = *mem_191; { while (1) { while_40_continue: /* CIL Label */ ; goto while_40_break; } while_40_break: /* CIL Label */ ; } { while (1) { while_41_continue: /* CIL Label */ ; goto while_41_break; } while_41_break: /* CIL Label */ ; } { while (1) { while_42_continue: /* CIL Label */ ; goto while_42_break; } while_42_break: /* CIL Label */ ; } { __cil_tmp25 = (enum _EVENT_TYPE )0; KeInitializeEvent(& doneEvent, __cil_tmp25, (unsigned char)0); __cil_tmp26 = 24 + 8; __cil_tmp27 = 0 + __cil_tmp26; __cil_tmp28 = 64 + __cil_tmp27; __cil_tmp29 = (unsigned int )Irp; __cil_tmp30 = __cil_tmp29 + __cil_tmp28; mem_192 = (struct _IO_STACK_LOCATION **)__cil_tmp30; irpSp___0 = *mem_192; __cil_tmp31 = 24 + 8; __cil_tmp32 = 0 + __cil_tmp31; __cil_tmp33 = 64 + __cil_tmp32; __cil_tmp34 = (unsigned int )Irp; __cil_tmp35 = __cil_tmp34 + __cil_tmp33; mem_193 = (struct _IO_STACK_LOCATION **)__cil_tmp35; __cil_tmp36 = *mem_193; nextIrpSp = __cil_tmp36 - 1; __cil_tmp37 = (void *)nextIrpSp; __cil_tmp38 = (void const *)irpSp___0; __cil_tmp39 = (IO_STACK_LOCATION *)0; __cil_tmp40 = (unsigned int )__cil_tmp39; __cil_tmp41 = __cil_tmp40 + 112; __cil_tmp42 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp41; __cil_tmp43 = (long )__cil_tmp42; __cil_tmp44 = (unsigned int )__cil_tmp43; memcpy_guard(__cil_tmp37, __cil_tmp38, __cil_tmp44); memcpy(__cil_tmp37, __cil_tmp38, __cil_tmp44); __cil_tmp45 = (unsigned int )nextIrpSp; __cil_tmp46 = __cil_tmp45 + 3; mem_194 = (UCHAR *)__cil_tmp46; *mem_194 = (unsigned char)0; } if (s != 1) { { __VERIFIER_assert(0); } } else { if (compRegistered != 0) { { __VERIFIER_assert(0); } } else { compRegistered = 1; compFptr = & FloppyPnpComplete; } } { __cil_tmp47 = 24 + 8; __cil_tmp48 = 0 + __cil_tmp47; __cil_tmp49 = 64 + __cil_tmp48; __cil_tmp50 = (unsigned int )Irp; __cil_tmp51 = __cil_tmp50 + __cil_tmp49; mem_195 = (struct _IO_STACK_LOCATION **)__cil_tmp51; __cil_tmp52 = *mem_195; irpSp___1 = __cil_tmp52 - 1; __cil_tmp53 = (unsigned int )irpSp___1; __cil_tmp54 = __cil_tmp53 + 112; mem_196 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp54; *mem_196 = & FloppyPnpComplete; __cil_tmp55 = (unsigned int )irpSp___1; __cil_tmp56 = __cil_tmp55 + 116; mem_197 = (PVOID *)__cil_tmp56; *mem_197 = (void *)(& doneEvent); __cil_tmp57 = (unsigned int )irpSp___1; __cil_tmp58 = __cil_tmp57 + 3; mem_198 = (UCHAR *)__cil_tmp58; *mem_198 = (unsigned char)0; __cil_tmp59 = (unsigned int )irpSp___1; __cil_tmp60 = __cil_tmp59 + 3; mem_199 = (UCHAR *)__cil_tmp60; *mem_199 = (unsigned char)64; __cil_tmp61 = (unsigned int )irpSp___1; __cil_tmp62 = __cil_tmp61 + 3; __cil_tmp63 = (unsigned int )irpSp___1; __cil_tmp64 = __cil_tmp63 + 3; mem_200 = (UCHAR *)__cil_tmp64; __cil_tmp65 = *mem_200; __cil_tmp66 = (int )__cil_tmp65; __cil_tmp67 = __cil_tmp66 | 128; mem_201 = (UCHAR *)__cil_tmp62; *mem_201 = (unsigned char )__cil_tmp67; __cil_tmp68 = (unsigned int )irpSp___1; __cil_tmp69 = __cil_tmp68 + 3; __cil_tmp70 = (unsigned int )irpSp___1; __cil_tmp71 = __cil_tmp70 + 3; mem_202 = (UCHAR *)__cil_tmp71; __cil_tmp72 = *mem_202; __cil_tmp73 = (int )__cil_tmp72; __cil_tmp74 = __cil_tmp73 | 32; mem_203 = (UCHAR *)__cil_tmp69; *mem_203 = (unsigned char )__cil_tmp74; __cil_tmp75 = (unsigned int )disketteExtension; __cil_tmp76 = __cil_tmp75 + 8; mem_204 = (PDEVICE_OBJECT *)__cil_tmp76; __cil_tmp77 = *mem_204; ntStatus = IofCallDriver(__cil_tmp77, Irp); } if (ntStatus == 259L) { { __cil_tmp78 = (void *)(& doneEvent); __cil_tmp79 = (enum _KWAIT_REASON )0; __cil_tmp80 = (void *)0; __cil_tmp81 = (LARGE_INTEGER *)__cil_tmp80; ntStatus = KeWaitForSingleObject(__cil_tmp78, __cil_tmp79, (char)0, (unsigned char)0, __cil_tmp81); ntStatus = myStatus; } } else { } { __cil_tmp82 = (unsigned int )(& fdcInfo) + 128; mem_205 = (ULONG *)__cil_tmp82; *mem_205 = 0UL; __cil_tmp83 = (unsigned int )(& fdcInfo) + 132; mem_206 = (ULONG *)__cil_tmp83; *mem_206 = 0UL; __cil_tmp84 = (unsigned int )disketteExtension; __cil_tmp85 = __cil_tmp84 + 8; mem_207 = (PDEVICE_OBJECT *)__cil_tmp85; __cil_tmp86 = *mem_207; __cil_tmp87 = 770 << 2; __cil_tmp88 = 7 << 16; __cil_tmp89 = __cil_tmp88 | __cil_tmp87; __cil_tmp90 = __cil_tmp89 | 3; __cil_tmp91 = (unsigned long )__cil_tmp90; __cil_tmp92 = (void *)(& fdcInfo); ntStatus = FlFdcDeviceIo(__cil_tmp86, __cil_tmp91, __cil_tmp92); } if (ntStatus >= 0L) { __cil_tmp93 = (unsigned int )disketteExtension; __cil_tmp94 = __cil_tmp93 + 108; __cil_tmp95 = (unsigned int )(& fdcInfo) + 56; mem_208 = (ULONG *)__cil_tmp94; mem_209 = (ULONG *)__cil_tmp95; *mem_208 = *mem_209; { __cil_tmp96 = (unsigned int )(& fdcInfo) + 60; { mem_210 = (BOOLEAN *)__cil_tmp96; if (*mem_210) { { __cil_tmp97 = (unsigned int )(& fdcInfo) + 61; { mem_211 = (BOOLEAN *)__cil_tmp97; if (*mem_211) { { ntStatus = FlAcpiConfigureFloppy(disketteExtension, & fdcInfo); } { __cil_tmp98 = (unsigned int )disketteExtension; __cil_tmp99 = __cil_tmp98 + 174; mem_212 = (UCHAR *)__cil_tmp99; __cil_tmp100 = *mem_212; __cil_tmp101 = (int )__cil_tmp100; if (__cil_tmp101 == 4) { __cil_tmp102 = (unsigned int )disketteExtension; __cil_tmp103 = __cil_tmp102 + 364; __cil_tmp104 = (unsigned int )(& fdcInfo) + 48; mem_213 = (ULONG *)__cil_tmp104; __cil_tmp105 = *mem_213; __cil_tmp106 = 1 << __cil_tmp105; __cil_tmp107 = (unsigned int )disketteExtension; __cil_tmp108 = __cil_tmp107 + 364; mem_214 = (UCHAR *)__cil_tmp108; __cil_tmp109 = *mem_214; __cil_tmp110 = (int )__cil_tmp109; __cil_tmp111 = __cil_tmp110 | __cil_tmp106; mem_215 = (UCHAR *)__cil_tmp103; *mem_215 = (unsigned char )__cil_tmp111; } else { } } } else { goto _L; } } } } else { _L: { __cil_tmp112 = (unsigned int )disketteExtension; __cil_tmp113 = __cil_tmp112 + 174; mem_216 = (UCHAR *)__cil_tmp113; __cil_tmp114 = *mem_216; __cil_tmp115 = (int )__cil_tmp114; if (__cil_tmp115 == 4) { __cil_tmp116 = (unsigned int )disketteExtension; __cil_tmp117 = __cil_tmp116 + 364; __cil_tmp118 = (unsigned int )(& fdcInfo) + 48; mem_217 = (ULONG *)__cil_tmp118; __cil_tmp119 = *mem_217; __cil_tmp120 = 1 << __cil_tmp119; __cil_tmp121 = (unsigned int )disketteExtension; __cil_tmp122 = __cil_tmp121 + 364; mem_218 = (UCHAR *)__cil_tmp122; __cil_tmp123 = *mem_218; __cil_tmp124 = (int )__cil_tmp123; __cil_tmp125 = __cil_tmp124 | __cil_tmp120; mem_219 = (UCHAR *)__cil_tmp117; *mem_219 = (unsigned char )__cil_tmp125; } else { } } InterfaceType = (enum _INTERFACE_TYPE )0; { while (1) { while_43_continue: /* CIL Label */ ; { __cil_tmp126 = (int )InterfaceType; if (__cil_tmp126 < 16) { } else { goto while_43_break; } } { __cil_tmp127 = (unsigned int )(& fdcInfo) + 8; mem_220 = (INTERFACE_TYPE *)__cil_tmp127; *mem_220 = InterfaceType; __cil_tmp128 = (unsigned int )(& fdcInfo) + 8; __cil_tmp129 = (INTERFACE_TYPE *)__cil_tmp128; __cil_tmp130 = (unsigned int )(& fdcInfo) + 40; __cil_tmp131 = (ULONG *)__cil_tmp130; __cil_tmp132 = (unsigned int )(& fdcInfo) + 44; __cil_tmp133 = (ULONG *)__cil_tmp132; __cil_tmp134 = (unsigned int )(& fdcInfo) + 48; __cil_tmp135 = (ULONG *)__cil_tmp134; __cil_tmp136 = (void *)disketteExtension; ntStatus = IoQueryDeviceDescription(__cil_tmp129, __cil_tmp131, & Dc, __cil_tmp133, & Fp, __cil_tmp135, & FlConfigCallBack, __cil_tmp136); } if (ntStatus >= 0L) { { while (1) { while_44_continue: /* CIL Label */ ; goto while_44_break; } while_44_break: /* CIL Label */ ; } goto while_43_break; } else { } __cil_tmp137 = (int )InterfaceType; __cil_tmp138 = __cil_tmp137 + 1; InterfaceType = (enum _INTERFACE_TYPE )__cil_tmp138; } while_43_break: /* CIL Label */ ; } } } } if (ntStatus >= 0L) { { __cil_tmp139 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp140 = (unsigned int )__cil_tmp139; __cil_tmp141 = __cil_tmp140 + 732; mem_221 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp141; __cil_tmp142 = *mem_221; __cil_tmp143 = (int )__cil_tmp142; if (__cil_tmp143 == 1) { __cil_tmp144 = (unsigned int )disketteExtension; __cil_tmp145 = __cil_tmp144 + 248; __cil_tmp146 = (unsigned int )(& fdcInfo) + 52; mem_222 = (ULONG *)__cil_tmp146; __cil_tmp147 = *mem_222; mem_223 = (UCHAR *)__cil_tmp145; *mem_223 = (unsigned char )__cil_tmp147; __cil_tmp148 = (unsigned int )disketteExtension; __cil_tmp149 = __cil_tmp148 + 249; __cil_tmp150 = (unsigned int )(& fdcInfo) + 52; mem_224 = (ULONG *)__cil_tmp150; __cil_tmp151 = *mem_224; mem_225 = (UCHAR *)__cil_tmp149; *mem_225 = (unsigned char )__cil_tmp151; } else { __cil_tmp152 = (unsigned int )disketteExtension; __cil_tmp153 = __cil_tmp152 + 248; __cil_tmp154 = (unsigned int )(& fdcInfo) + 48; mem_226 = (ULONG *)__cil_tmp154; __cil_tmp155 = *mem_226; mem_227 = (UCHAR *)__cil_tmp153; *mem_227 = (unsigned char )__cil_tmp155; __cil_tmp156 = (unsigned int )disketteExtension; __cil_tmp157 = __cil_tmp156 + 249; __cil_tmp158 = (unsigned int )(& fdcInfo) + 48; mem_228 = (ULONG *)__cil_tmp158; __cil_tmp159 = *mem_228; __cil_tmp160 = 16 << __cil_tmp159; __cil_tmp161 = (unsigned long )__cil_tmp160; __cil_tmp162 = (unsigned int )(& fdcInfo) + 48; mem_229 = (ULONG *)__cil_tmp162; __cil_tmp163 = *mem_229; __cil_tmp164 = __cil_tmp163 | __cil_tmp161; mem_230 = (UCHAR *)__cil_tmp157; *mem_230 = (unsigned char )__cil_tmp164; } } { __cil_tmp165 = (unsigned int )disketteExtension; __cil_tmp166 = __cil_tmp165 + 4; mem_231 = (PDEVICE_OBJECT *)__cil_tmp166; __cil_tmp167 = *mem_231; __cil_tmp168 = (GUID *)(& MOUNTDEV_MOUNTED_DEVICE_GUID); __cil_tmp169 = (GUID const *)__cil_tmp168; __cil_tmp170 = (void *)0; __cil_tmp171 = (UNICODE_STRING *)__cil_tmp170; __cil_tmp172 = (unsigned int )disketteExtension; __cil_tmp173 = __cil_tmp172 + 376; __cil_tmp174 = (UNICODE_STRING *)__cil_tmp173; pnpStatus = IoRegisterDeviceInterface(__cil_tmp167, __cil_tmp169, __cil_tmp171, __cil_tmp174); } if (pnpStatus >= 0L) { { __cil_tmp175 = (unsigned int )disketteExtension; __cil_tmp176 = __cil_tmp175 + 376; __cil_tmp177 = (UNICODE_STRING *)__cil_tmp176; pnpStatus = IoSetDeviceInterfaceState(__cil_tmp177, (unsigned char)1); } } else { } { __cil_tmp178 = (unsigned int )disketteExtension; __cil_tmp179 = __cil_tmp178 + 12; mem_232 = (BOOLEAN *)__cil_tmp179; *mem_232 = (unsigned char)1; __cil_tmp180 = (unsigned int )disketteExtension; __cil_tmp181 = __cil_tmp180 + 428; __cil_tmp182 = (FAST_MUTEX *)__cil_tmp181; ExAcquireFastMutex(__cil_tmp182); __cil_tmp183 = (unsigned int )disketteExtension; __cil_tmp184 = __cil_tmp183 + 14; mem_233 = (BOOLEAN *)__cil_tmp184; *mem_233 = (unsigned char)0; __cil_tmp185 = (unsigned int )disketteExtension; __cil_tmp186 = __cil_tmp185 + 428; __cil_tmp187 = (FAST_MUTEX *)__cil_tmp186; ExReleaseFastMutex(__cil_tmp187); FloppyProcessQueuedRequests(disketteExtension); } } else { } } else { } { __cil_tmp188 = (unsigned int )Irp; __cil_tmp189 = __cil_tmp188 + 24; mem_234 = (NTSTATUS *)__cil_tmp189; *mem_234 = ntStatus; myStatus = ntStatus; IofCompleteRequest(Irp, (char)0); } return (ntStatus); } } NTSTATUS FloppyPnpComplete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) { struct _KEVENT *__cil_tmp4 ; { { __cil_tmp4 = (struct _KEVENT *)Context; KeSetEvent(__cil_tmp4, 1L, (unsigned char)0); } return (-1073741802L); } } NTSTATUS FloppyPower(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { PDISKETTE_EXTENSION disketteExtension ; NTSTATUS ntStatus ; PIO_STACK_LOCATION irpSp ; POWER_STATE_TYPE type ; POWER_STATE state ; BOOLEAN WaitForCompletion ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; PVOID __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; UCHAR __cil_tmp27 ; int __cil_tmp28 ; int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; FAST_MUTEX *__cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; LONG __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; FAST_MUTEX *__cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; FAST_MUTEX *__cil_tmp46 ; int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; FAST_MUTEX *__cil_tmp50 ; int __cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; FAST_MUTEX *__cil_tmp58 ; void *__cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; PKTHREAD __cil_tmp63 ; unsigned int __cil_tmp64 ; int __cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; PKTHREAD __cil_tmp68 ; void *__cil_tmp69 ; enum _KWAIT_REASON __cil_tmp70 ; void *__cil_tmp71 ; LARGE_INTEGER *__cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; CHAR __cil_tmp77 ; int __cil_tmp78 ; int __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; struct _IO_STACK_LOCATION *__cil_tmp90 ; unsigned int __cil_tmp91 ; unsigned int __cil_tmp92 ; PDEVICE_OBJECT __cil_tmp93 ; PVOID *mem_94 ; struct _IO_STACK_LOCATION **mem_95 ; POWER_STATE_TYPE *mem_96 ; POWER_STATE *mem_97 ; UCHAR *mem_98 ; LONG *mem_99 ; ULONG_PTR *mem_100 ; NTSTATUS *mem_101 ; BOOLEAN *mem_102 ; BOOLEAN *mem_103 ; PKTHREAD *mem_104 ; PKTHREAD *mem_105 ; CHAR *mem_106 ; CHAR *mem_107 ; struct _IO_STACK_LOCATION **mem_108 ; struct _IO_STACK_LOCATION **mem_109 ; PDEVICE_OBJECT *mem_110 ; { ntStatus = myStatus; WaitForCompletion = (unsigned char)1; { while (1) { while_45_continue: /* CIL Label */ ; goto while_45_break; } while_45_break: /* CIL Label */ ; } __cil_tmp9 = (unsigned int )DeviceObject; __cil_tmp10 = __cil_tmp9 + 40; mem_94 = (PVOID *)__cil_tmp10; __cil_tmp11 = *mem_94; disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp11; __cil_tmp12 = 24 + 8; __cil_tmp13 = 0 + __cil_tmp12; __cil_tmp14 = 64 + __cil_tmp13; __cil_tmp15 = (unsigned int )Irp; __cil_tmp16 = __cil_tmp15 + __cil_tmp14; mem_95 = (struct _IO_STACK_LOCATION **)__cil_tmp16; irpSp = *mem_95; __cil_tmp17 = 0 + 4; __cil_tmp18 = 4 + __cil_tmp17; __cil_tmp19 = (unsigned int )irpSp; __cil_tmp20 = __cil_tmp19 + __cil_tmp18; mem_96 = (POWER_STATE_TYPE *)__cil_tmp20; type = *mem_96; __cil_tmp21 = 0 + 36; __cil_tmp22 = 4 + __cil_tmp21; __cil_tmp23 = (unsigned int )irpSp; __cil_tmp24 = __cil_tmp23 + __cil_tmp22; mem_97 = (POWER_STATE *)__cil_tmp24; state = *mem_97; { __cil_tmp25 = (unsigned int )irpSp; __cil_tmp26 = __cil_tmp25 + 1; mem_98 = (UCHAR *)__cil_tmp26; __cil_tmp27 = *mem_98; if ((int )__cil_tmp27 == 3) { goto switch_46_3; } else { if ((int )__cil_tmp27 == 2) { goto switch_46_2; } else { { goto switch_46_default; if (0) { switch_46_3: /* CIL Label */ ; { while (1) { while_47_continue: /* CIL Label */ ; goto while_47_break; } while_47_break: /* CIL Label */ ; } { __cil_tmp28 = (int )type; if (__cil_tmp28 == 0) { { __cil_tmp29 = (int )state.SystemState; if (__cil_tmp29 > 5) { ntStatus = 0L; goto switch_46_break; } else { } } } else { } } { __cil_tmp30 = (unsigned int )disketteExtension; __cil_tmp31 = __cil_tmp30 + 56; __cil_tmp32 = (FAST_MUTEX *)__cil_tmp31; ExAcquireFastMutex(__cil_tmp32); } { __cil_tmp33 = (unsigned int )disketteExtension; __cil_tmp34 = __cil_tmp33 + 88; mem_99 = (LONG *)__cil_tmp34; __cil_tmp35 = *mem_99; if (__cil_tmp35 >= 0L) { { __cil_tmp36 = (unsigned int )disketteExtension; __cil_tmp37 = __cil_tmp36 + 56; __cil_tmp38 = (FAST_MUTEX *)__cil_tmp37; ExReleaseFastMutex(__cil_tmp38); } { while (1) { while_48_continue: /* CIL Label */ ; goto while_48_break; } while_48_break: /* CIL Label */ ; } { PoStartNextPowerIrp(Irp); __cil_tmp39 = 24 + 4; __cil_tmp40 = (unsigned int )Irp; __cil_tmp41 = __cil_tmp40 + __cil_tmp39; mem_100 = (ULONG_PTR *)__cil_tmp41; *mem_100 = 0UL; __cil_tmp42 = (unsigned int )Irp; __cil_tmp43 = __cil_tmp42 + 24; mem_101 = (NTSTATUS *)__cil_tmp43; *mem_101 = -2147483631L; myStatus = -2147483631L; IofCompleteRequest(Irp, (char)0); } return (-2147483631L); } else { } } { __cil_tmp44 = (unsigned int )disketteExtension; __cil_tmp45 = __cil_tmp44 + 56; __cil_tmp46 = (FAST_MUTEX *)__cil_tmp45; ExReleaseFastMutex(__cil_tmp46); ntStatus = 0L; } goto switch_46_break; switch_46_2: /* CIL Label */ ; { __cil_tmp47 = (int )type; if (__cil_tmp47 == 0) { { __cil_tmp48 = (unsigned int )disketteExtension; __cil_tmp49 = __cil_tmp48 + 396; __cil_tmp50 = (FAST_MUTEX *)__cil_tmp49; ExAcquireFastMutex(__cil_tmp50); } { __cil_tmp51 = (int )state.SystemState; if (__cil_tmp51 == 1) { { while (1) { while_49_continue: /* CIL Label */ ; goto while_49_break; } while_49_break: /* CIL Label */ ; } __cil_tmp52 = (unsigned int )disketteExtension; __cil_tmp53 = __cil_tmp52 + 393; mem_102 = (BOOLEAN *)__cil_tmp53; *mem_102 = (unsigned char)0; WaitForCompletion = (unsigned char)0; } else { { while (1) { while_50_continue: /* CIL Label */ ; goto while_50_break; } while_50_break: /* CIL Label */ ; } WaitForCompletion = (unsigned char)1; __cil_tmp54 = (unsigned int )disketteExtension; __cil_tmp55 = __cil_tmp54 + 393; mem_103 = (BOOLEAN *)__cil_tmp55; *mem_103 = (unsigned char)1; } } { __cil_tmp56 = (unsigned int )disketteExtension; __cil_tmp57 = __cil_tmp56 + 396; __cil_tmp58 = (FAST_MUTEX *)__cil_tmp57; ExReleaseFastMutex(__cil_tmp58); } { __cil_tmp59 = (void *)0; __cil_tmp60 = (unsigned int )__cil_tmp59; __cil_tmp61 = (unsigned int )disketteExtension; __cil_tmp62 = __cil_tmp61 + 92; mem_104 = (PKTHREAD *)__cil_tmp62; __cil_tmp63 = *mem_104; __cil_tmp64 = (unsigned int )__cil_tmp63; if (__cil_tmp64 != __cil_tmp60) { { __cil_tmp65 = (int )WaitForCompletion; if (__cil_tmp65 == 1) { { __cil_tmp66 = (unsigned int )disketteExtension; __cil_tmp67 = __cil_tmp66 + 92; mem_105 = (PKTHREAD *)__cil_tmp67; __cil_tmp68 = *mem_105; __cil_tmp69 = (void *)__cil_tmp68; __cil_tmp70 = (enum _KWAIT_REASON )0; __cil_tmp71 = (void *)0; __cil_tmp72 = (LARGE_INTEGER *)__cil_tmp71; KeWaitForSingleObject(__cil_tmp69, __cil_tmp70, (char)0, (unsigned char)0, __cil_tmp72); } } else { } } } else { } } } else { } } { while (1) { while_51_continue: /* CIL Label */ ; goto while_51_break; } while_51_break: /* CIL Label */ ; } ntStatus = 0L; goto switch_46_break; switch_46_default: /* CIL Label */ ; goto switch_46_break; } else { switch_46_break: /* CIL Label */ ; } } } } } { PoStartNextPowerIrp(Irp); } if (s == 1) { s = 3; } else { { __VERIFIER_assert(0); } } { __cil_tmp73 = (unsigned int )Irp; __cil_tmp74 = __cil_tmp73 + 35; __cil_tmp75 = (unsigned int )Irp; __cil_tmp76 = __cil_tmp75 + 35; mem_106 = (CHAR *)__cil_tmp76; __cil_tmp77 = *mem_106; __cil_tmp78 = (int )__cil_tmp77; __cil_tmp79 = __cil_tmp78 + 1; mem_107 = (CHAR *)__cil_tmp74; *mem_107 = (char )__cil_tmp79; __cil_tmp80 = 24 + 8; __cil_tmp81 = 0 + __cil_tmp80; __cil_tmp82 = 64 + __cil_tmp81; __cil_tmp83 = (unsigned int )Irp; __cil_tmp84 = __cil_tmp83 + __cil_tmp82; __cil_tmp85 = 24 + 8; __cil_tmp86 = 0 + __cil_tmp85; __cil_tmp87 = 64 + __cil_tmp86; __cil_tmp88 = (unsigned int )Irp; __cil_tmp89 = __cil_tmp88 + __cil_tmp87; mem_108 = (struct _IO_STACK_LOCATION **)__cil_tmp89; __cil_tmp90 = *mem_108; mem_109 = (struct _IO_STACK_LOCATION **)__cil_tmp84; *mem_109 = __cil_tmp90 + 1; __cil_tmp91 = (unsigned int )disketteExtension; __cil_tmp92 = __cil_tmp91 + 8; mem_110 = (PDEVICE_OBJECT *)__cil_tmp92; __cil_tmp93 = *mem_110; ntStatus = PoCallDriver(__cil_tmp93, Irp); } return (ntStatus); } } NTSTATUS FloppyReadWrite(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { PIO_STACK_LOCATION irpSp ; NTSTATUS ntStatus ; PDISKETTE_EXTENSION disketteExtension ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; PVOID __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; FAST_MUTEX *__cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; FAST_MUTEX *__cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; FAST_MUTEX *__cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; BOOLEAN __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; MEDIA_TYPE __cil_tmp39 ; int __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; ULONG __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; ULONG __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; ULONG __cil_tmp51 ; ULONG __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; ULONG __cil_tmp55 ; ULONG __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; ULONG __cil_tmp59 ; unsigned long __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; PVOID *mem_70 ; struct _IO_STACK_LOCATION **mem_71 ; BOOLEAN *mem_72 ; BOOLEAN *mem_73 ; BOOLEAN *mem_74 ; BOOLEAN *mem_75 ; ULONG_PTR *mem_76 ; NTSTATUS *mem_77 ; MEDIA_TYPE *mem_78 ; ULONG *mem_79 ; ULONG *mem_80 ; ULONG *mem_81 ; ULONG *mem_82 ; ULONG *mem_83 ; ULONG *mem_84 ; ULONG_PTR *mem_85 ; NTSTATUS *mem_86 ; NTSTATUS *mem_87 ; { { while (1) { while_52_continue: /* CIL Label */ ; goto while_52_break; } while_52_break: /* CIL Label */ ; } { __cil_tmp6 = (unsigned int )DeviceObject; __cil_tmp7 = __cil_tmp6 + 40; mem_70 = (PVOID *)__cil_tmp7; __cil_tmp8 = *mem_70; disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp8; __cil_tmp9 = 24 + 8; __cil_tmp10 = 0 + __cil_tmp9; __cil_tmp11 = 64 + __cil_tmp10; __cil_tmp12 = (unsigned int )Irp; __cil_tmp13 = __cil_tmp12 + __cil_tmp11; mem_71 = (struct _IO_STACK_LOCATION **)__cil_tmp13; irpSp = *mem_71; __cil_tmp14 = (unsigned int )disketteExtension; __cil_tmp15 = __cil_tmp14 + 428; __cil_tmp16 = (FAST_MUTEX *)__cil_tmp15; ExAcquireFastMutex(__cil_tmp16); } { __cil_tmp17 = (unsigned int )disketteExtension; __cil_tmp18 = __cil_tmp17 + 14; { mem_72 = (BOOLEAN *)__cil_tmp18; if (*mem_72) { { ntStatus = FloppyQueueRequest(disketteExtension, Irp); __cil_tmp19 = (unsigned int )disketteExtension; __cil_tmp20 = __cil_tmp19 + 428; __cil_tmp21 = (FAST_MUTEX *)__cil_tmp20; ExReleaseFastMutex(__cil_tmp21); } return (ntStatus); } else { } } } { __cil_tmp22 = (unsigned int )disketteExtension; __cil_tmp23 = __cil_tmp22 + 428; __cil_tmp24 = (FAST_MUTEX *)__cil_tmp23; ExReleaseFastMutex(__cil_tmp24); } { __cil_tmp25 = (unsigned int )disketteExtension; __cil_tmp26 = __cil_tmp25 + 13; { mem_73 = (BOOLEAN *)__cil_tmp26; if (*mem_73) { goto _L; } else { { __cil_tmp27 = (unsigned int )disketteExtension; __cil_tmp28 = __cil_tmp27 + 12; mem_74 = (BOOLEAN *)__cil_tmp28; __cil_tmp29 = *mem_74; if (! __cil_tmp29) { _L: { __cil_tmp30 = (unsigned int )disketteExtension; __cil_tmp31 = __cil_tmp30 + 13; { mem_75 = (BOOLEAN *)__cil_tmp31; if (*mem_75) { ntStatus = -1073741738L; } else { ntStatus = -1073741823L; } } } { __cil_tmp32 = 24 + 4; __cil_tmp33 = (unsigned int )Irp; __cil_tmp34 = __cil_tmp33 + __cil_tmp32; mem_76 = (ULONG_PTR *)__cil_tmp34; *mem_76 = 0UL; __cil_tmp35 = (unsigned int )Irp; __cil_tmp36 = __cil_tmp35 + 24; mem_77 = (NTSTATUS *)__cil_tmp36; *mem_77 = ntStatus; myStatus = ntStatus; IofCompleteRequest(Irp, (char)0); } return (ntStatus); } else { } } } } } { __cil_tmp37 = (unsigned int )disketteExtension; __cil_tmp38 = __cil_tmp37 + 184; mem_78 = (MEDIA_TYPE *)__cil_tmp38; __cil_tmp39 = *mem_78; __cil_tmp40 = (int )__cil_tmp39; if (__cil_tmp40 > 0) { { __cil_tmp41 = (unsigned int )disketteExtension; __cil_tmp42 = __cil_tmp41 + 180; mem_79 = (ULONG *)__cil_tmp42; __cil_tmp43 = *mem_79; __cil_tmp44 = (unsigned int )irpSp; __cil_tmp45 = __cil_tmp44 + 4; mem_80 = (ULONG *)__cil_tmp45; __cil_tmp46 = *mem_80; __cil_tmp47 = 0 + 8; __cil_tmp48 = 4 + __cil_tmp47; __cil_tmp49 = (unsigned int )irpSp; __cil_tmp50 = __cil_tmp49 + __cil_tmp48; mem_81 = (ULONG *)__cil_tmp50; __cil_tmp51 = *mem_81; __cil_tmp52 = __cil_tmp51 + __cil_tmp46; if (__cil_tmp52 > __cil_tmp43) { goto _L___1; } else { { __cil_tmp53 = (unsigned int )disketteExtension; __cil_tmp54 = __cil_tmp53 + 176; mem_82 = (ULONG *)__cil_tmp54; __cil_tmp55 = *mem_82; __cil_tmp56 = __cil_tmp55 - 1UL; __cil_tmp57 = (unsigned int )irpSp; __cil_tmp58 = __cil_tmp57 + 4; mem_83 = (ULONG *)__cil_tmp58; __cil_tmp59 = *mem_83; __cil_tmp60 = __cil_tmp59 & __cil_tmp56; if (__cil_tmp60 != 0UL) { _L___1: { while (1) { while_53_continue: /* CIL Label */ ; goto while_53_break; } while_53_break: /* CIL Label */ ; } { while (1) { while_54_continue: /* CIL Label */ ; goto while_54_break; } while_54_break: /* CIL Label */ ; } ntStatus = -1073741811L; } else { goto _L___0; } } } } } else { _L___0: { __cil_tmp61 = (unsigned int )irpSp; __cil_tmp62 = __cil_tmp61 + 4; { mem_84 = (ULONG *)__cil_tmp62; if (*mem_84) { { while (1) { while_55_continue: /* CIL Label */ ; goto while_55_break; } while_55_break: /* CIL Label */ ; } { ntStatus = FlQueueIrpToThread(Irp, disketteExtension); } } else { __cil_tmp63 = 24 + 4; __cil_tmp64 = (unsigned int )Irp; __cil_tmp65 = __cil_tmp64 + __cil_tmp63; mem_85 = (ULONG_PTR *)__cil_tmp65; *mem_85 = 0UL; __cil_tmp66 = (unsigned int )Irp; __cil_tmp67 = __cil_tmp66 + 24; mem_86 = (NTSTATUS *)__cil_tmp67; *mem_86 = 0L; myStatus = 0L; { while (1) { while_56_continue: /* CIL Label */ ; goto while_56_break; } while_56_break: /* CIL Label */ ; } { IofCompleteRequest(Irp, (char)0); } return (0L); } } } } } if (ntStatus != 259L) { __cil_tmp68 = (unsigned int )Irp; __cil_tmp69 = __cil_tmp68 + 24; mem_87 = (NTSTATUS *)__cil_tmp69; *mem_87 = ntStatus; myStatus = ntStatus; { while (1) { while_57_continue: /* CIL Label */ ; goto while_57_break; } while_57_break: /* CIL Label */ ; } { IofCompleteRequest(Irp, (char)0); } } else { } return (ntStatus); } } NTSTATUS FlInterpretError(UCHAR StatusRegister1 , UCHAR StatusRegister2 ) { int __cil_tmp3 ; int __cil_tmp4 ; int __cil_tmp5 ; int __cil_tmp6 ; int __cil_tmp7 ; int __cil_tmp8 ; int __cil_tmp9 ; int __cil_tmp10 ; int __cil_tmp11 ; int __cil_tmp12 ; int __cil_tmp13 ; { { __cil_tmp3 = (int )StatusRegister1; if (__cil_tmp3 & 32) { goto _L; } else { { __cil_tmp4 = (int )StatusRegister2; if (__cil_tmp4 & 32) { _L: { while (1) { while_58_continue: /* CIL Label */ ; goto while_58_break; } while_58_break: /* CIL Label */ ; } return (-1073741761L); } else { } } } } { __cil_tmp5 = (int )StatusRegister1; if (__cil_tmp5 & 16) { { while (1) { while_59_continue: /* CIL Label */ ; goto while_59_break; } while_59_break: /* CIL Label */ ; } return (-1073741764L); } else { } } { __cil_tmp6 = (int )StatusRegister1; if (__cil_tmp6 & 4) { goto _L___0; } else { { __cil_tmp7 = (int )StatusRegister1; if (__cil_tmp7 & 128) { _L___0: { while (1) { while_60_continue: /* CIL Label */ ; goto while_60_break; } while_60_break: /* CIL Label */ ; } return (-1073741803L); } else { } } } } { __cil_tmp8 = (int )StatusRegister2; if (__cil_tmp8 & 1) { goto _L___1; } else { { __cil_tmp9 = (int )StatusRegister2; if (__cil_tmp9 & 2) { goto _L___1; } else { { __cil_tmp10 = (int )StatusRegister2; if (__cil_tmp10 & 64) { _L___1: { while (1) { while_61_continue: /* CIL Label */ ; goto while_61_break; } while_61_break: /* CIL Label */ ; } return (-1073741668L); } else { } } } } } } { __cil_tmp11 = (int )StatusRegister1; if (__cil_tmp11 & 2) { { while (1) { while_62_continue: /* CIL Label */ ; goto while_62_break; } while_62_break: /* CIL Label */ ; } return (-1073741662L); } else { } } { __cil_tmp12 = (int )StatusRegister1; if (__cil_tmp12 & 1) { { while (1) { while_63_continue: /* CIL Label */ ; goto while_63_break; } while_63_break: /* CIL Label */ ; } return (-1073741467L); } else { } } { __cil_tmp13 = (int )StatusRegister2; if (__cil_tmp13 & 16) { { while (1) { while_64_continue: /* CIL Label */ ; goto while_64_break; } while_64_break: /* CIL Label */ ; } return (-1073741466L); } else { } } { while (1) { while_65_continue: /* CIL Label */ ; goto while_65_break; } while_65_break: /* CIL Label */ ; } return (-1073741465L); } } void FlFinishOperation(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) { NTSTATUS ntStatus ; int tmp ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; UCHAR __cil_tmp11 ; int __cil_tmp12 ; int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; UCHAR __cil_tmp16 ; int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; FAST_MUTEX *__cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; LONG __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; FAST_MUTEX *__cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; LIST_ENTRY *__cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; LIST_ENTRY *__cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; KSPIN_LOCK *__cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; PDEVICE_OBJECT __cil_tmp47 ; BOOLEAN *mem_48 ; UCHAR *mem_49 ; UCHAR *mem_50 ; UCHAR *mem_51 ; MEDIA_TYPE *mem_52 ; LONG *mem_53 ; LONG *mem_54 ; UCHAR *mem_55 ; PDEVICE_OBJECT *mem_56 ; { { while (1) { while_66_continue: /* CIL Label */ ; goto while_66_break; } while_66_break: /* CIL Label */ ; } if (myStatus != 0L) { { __cil_tmp5 = (unsigned int )DisketteExtension; __cil_tmp6 = __cil_tmp5 + 104; { mem_48 = (BOOLEAN *)__cil_tmp6; if (*mem_48) { __cil_tmp7 = (unsigned int )DisketteExtension; __cil_tmp8 = __cil_tmp7 + 105; __cil_tmp9 = (unsigned int )DisketteExtension; __cil_tmp10 = __cil_tmp9 + 105; mem_49 = (UCHAR *)__cil_tmp10; __cil_tmp11 = *mem_49; __cil_tmp12 = (int )__cil_tmp11; __cil_tmp13 = __cil_tmp12 + 1; mem_50 = (UCHAR *)__cil_tmp8; *mem_50 = (unsigned char )__cil_tmp13; { __cil_tmp14 = (unsigned int )DisketteExtension; __cil_tmp15 = __cil_tmp14 + 105; mem_51 = (UCHAR *)__cil_tmp15; __cil_tmp16 = *mem_51; __cil_tmp17 = (int )__cil_tmp16; if (__cil_tmp17 < 2) { { ntStatus = FlInitializeControllerHardware(DisketteExtension); } if (ntStatus >= 0L) { { while (1) { while_67_continue: /* CIL Label */ ; goto while_67_break; } while_67_break: /* CIL Label */ ; } __cil_tmp18 = (unsigned int )DisketteExtension; __cil_tmp19 = __cil_tmp18 + 184; mem_52 = (MEDIA_TYPE *)__cil_tmp19; *mem_52 = (enum _MEDIA_TYPE )-1; { while (1) { while_68_continue: /* CIL Label */ ; goto while_68_break; } while_68_break: /* CIL Label */ ; } { __cil_tmp20 = (unsigned int )DisketteExtension; __cil_tmp21 = __cil_tmp20 + 56; __cil_tmp22 = (FAST_MUTEX *)__cil_tmp21; ExAcquireFastMutex(__cil_tmp22); __cil_tmp23 = (unsigned int )DisketteExtension; __cil_tmp24 = __cil_tmp23 + 88; __cil_tmp25 = (unsigned int )DisketteExtension; __cil_tmp26 = __cil_tmp25 + 88; mem_53 = (LONG *)__cil_tmp26; __cil_tmp27 = *mem_53; mem_54 = (LONG *)__cil_tmp24; *mem_54 = __cil_tmp27 + 1L; __cil_tmp28 = (unsigned int )DisketteExtension; __cil_tmp29 = __cil_tmp28 + 56; __cil_tmp30 = (FAST_MUTEX *)__cil_tmp29; ExReleaseFastMutex(__cil_tmp30); __cil_tmp31 = (unsigned int )DisketteExtension; __cil_tmp32 = __cil_tmp31 + 96; __cil_tmp33 = (LIST_ENTRY *)__cil_tmp32; __cil_tmp34 = 0 + 24; __cil_tmp35 = 64 + __cil_tmp34; __cil_tmp36 = (unsigned int )Irp; __cil_tmp37 = __cil_tmp36 + __cil_tmp35; __cil_tmp38 = (LIST_ENTRY *)__cil_tmp37; __cil_tmp39 = (unsigned int )DisketteExtension; __cil_tmp40 = __cil_tmp39 + 52; __cil_tmp41 = (KSPIN_LOCK *)__cil_tmp40; ExfInterlockedInsertHeadList(__cil_tmp33, __cil_tmp38, __cil_tmp41); } } else { } { while (1) { while_69_continue: /* CIL Label */ ; goto while_69_break; } while_69_break: /* CIL Label */ ; } } else { } } } else { } } } } else { } __cil_tmp42 = (unsigned int )DisketteExtension; __cil_tmp43 = __cil_tmp42 + 105; mem_55 = (UCHAR *)__cil_tmp43; *mem_55 = (unsigned char)0; { __cil_tmp44 = myStatus >= 0L; if (! __cil_tmp44) { if (myStatus == -1073741661L) { tmp = 1; } else { if (myStatus == -1073741643L) { tmp = 1; } else { if (myStatus == -1073741662L) { tmp = 1; } else { if (myStatus == -1073741805L) { tmp = 1; } else { if (myStatus == -2147483626L) { tmp = 1; } else { if (myStatus == -1073741804L) { tmp = 1; } else { if (myStatus == -1073741806L) { tmp = 1; } else { tmp = 0; } } } } } } } if ((unsigned char )tmp) { { __cil_tmp45 = (unsigned int )DisketteExtension; __cil_tmp46 = __cil_tmp45 + 28; mem_56 = (PDEVICE_OBJECT *)__cil_tmp46; __cil_tmp47 = *mem_56; IoSetHardErrorOrVerifyDevice(Irp, __cil_tmp47); } } else { } } else { } } if (myStatus != 0L) { if (myStatus != -2147483626L) { if (myStatus != -1073741805L) { { while (1) { while_70_continue: /* CIL Label */ ; goto while_70_break; } while_70_break: /* CIL Label */ ; } } else { goto _L___0; } } else { goto _L___0; } } else { _L___0: { while (1) { while_71_continue: /* CIL Label */ ; goto while_71_break; } while_71_break: /* CIL Label */ ; } } { while (1) { while_72_continue: /* CIL Label */ ; goto while_72_break; } while_72_break: /* CIL Label */ ; } { while (1) { while_73_continue: /* CIL Label */ ; goto while_73_break; } while_73_break: /* CIL Label */ ; } { IofCompleteRequest(Irp, (char)1); } return; } } NTSTATUS FlStartDrive(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN WriteOperation , BOOLEAN SetUpMedia , BOOLEAN IgnoreChange ) { LARGE_INTEGER delay ; BOOLEAN motorStarted ; UCHAR driveStatus ; NTSTATUS ntStatus ; FDC_ENABLE_PARMS fdcEnableParms ; FDC_DISK_CHANGE_PARMS fdcDiskChangeParms ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; UCHAR __cil_tmp14 ; int __cil_tmp15 ; PDRIVE_MEDIA_LIMITS __cil_tmp16 ; DRIVE_MEDIA_TYPE __cil_tmp17 ; unsigned int __cil_tmp18 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; MEDIA_TYPE __cil_tmp24 ; int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; MEDIA_TYPE __cil_tmp31 ; int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp35 ; FDC_ENABLE_PARMS *__cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; PDEVICE_OBJECT __cil_tmp49 ; int __cil_tmp50 ; int __cil_tmp51 ; int __cil_tmp52 ; int __cil_tmp53 ; unsigned long __cil_tmp54 ; void *__cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; PDEVICE_OBJECT __cil_tmp62 ; int __cil_tmp63 ; int __cil_tmp64 ; int __cil_tmp65 ; int __cil_tmp66 ; unsigned long __cil_tmp67 ; void *__cil_tmp68 ; FDC_DISK_CHANGE_PARMS *__cil_tmp69 ; int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; UCHAR __cil_tmp73 ; int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; UCHAR __cil_tmp77 ; int __cil_tmp78 ; int __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; PDEVICE_OBJECT __cil_tmp84 ; unsigned int __cil_tmp85 ; unsigned int __cil_tmp86 ; PVPB __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; USHORT __cil_tmp90 ; int __cil_tmp91 ; unsigned int __cil_tmp92 ; unsigned int __cil_tmp93 ; PDEVICE_OBJECT __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; PDEVICE_OBJECT __cil_tmp97 ; unsigned int __cil_tmp98 ; unsigned int __cil_tmp99 ; unsigned int __cil_tmp100 ; unsigned int __cil_tmp101 ; PDEVICE_OBJECT __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; ULONG __cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; UCHAR __cil_tmp108 ; int __cil_tmp109 ; KUSER_SHARED_DATA *__cil_tmp110 ; unsigned int __cil_tmp111 ; unsigned int __cil_tmp112 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp113 ; int __cil_tmp114 ; unsigned int __cil_tmp115 ; unsigned int __cil_tmp116 ; unsigned int __cil_tmp117 ; unsigned int __cil_tmp118 ; unsigned int __cil_tmp119 ; unsigned int __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; unsigned int __cil_tmp123 ; unsigned int __cil_tmp124 ; unsigned int __cil_tmp125 ; unsigned int __cil_tmp126 ; unsigned int __cil_tmp127 ; unsigned int __cil_tmp128 ; UCHAR *__cil_tmp129 ; unsigned int __cil_tmp130 ; unsigned int __cil_tmp131 ; unsigned int __cil_tmp132 ; unsigned int __cil_tmp133 ; UCHAR *__cil_tmp134 ; void *__cil_tmp135 ; struct _MDL *__cil_tmp136 ; int __cil_tmp137 ; unsigned int __cil_tmp138 ; unsigned int __cil_tmp139 ; unsigned int __cil_tmp140 ; unsigned int __cil_tmp141 ; UCHAR __cil_tmp142 ; int __cil_tmp143 ; int __cil_tmp144 ; unsigned int __cil_tmp145 ; unsigned int __cil_tmp146 ; PDEVICE_OBJECT __cil_tmp147 ; unsigned int __cil_tmp148 ; unsigned int __cil_tmp149 ; PVPB __cil_tmp150 ; unsigned int __cil_tmp151 ; unsigned int __cil_tmp152 ; USHORT __cil_tmp153 ; int __cil_tmp154 ; unsigned int __cil_tmp155 ; unsigned int __cil_tmp156 ; PDEVICE_OBJECT __cil_tmp157 ; unsigned int __cil_tmp158 ; unsigned int __cil_tmp159 ; unsigned int __cil_tmp160 ; unsigned int __cil_tmp161 ; PDEVICE_OBJECT __cil_tmp162 ; unsigned int __cil_tmp163 ; unsigned int __cil_tmp164 ; ULONG __cil_tmp165 ; unsigned int __cil_tmp166 ; unsigned int __cil_tmp167 ; unsigned int __cil_tmp168 ; unsigned int __cil_tmp169 ; unsigned int __cil_tmp170 ; unsigned int __cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; unsigned int __cil_tmp174 ; unsigned int __cil_tmp175 ; unsigned int __cil_tmp176 ; unsigned int __cil_tmp177 ; unsigned int __cil_tmp178 ; unsigned int __cil_tmp179 ; unsigned int __cil_tmp180 ; unsigned int __cil_tmp181 ; unsigned int __cil_tmp182 ; unsigned int __cil_tmp183 ; UCHAR *__cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; unsigned int __cil_tmp187 ; unsigned int __cil_tmp188 ; UCHAR *__cil_tmp189 ; void *__cil_tmp190 ; struct _MDL *__cil_tmp191 ; int __cil_tmp192 ; unsigned int __cil_tmp193 ; unsigned int __cil_tmp194 ; unsigned int __cil_tmp195 ; unsigned int __cil_tmp196 ; UCHAR __cil_tmp197 ; int __cil_tmp198 ; int __cil_tmp199 ; unsigned int __cil_tmp200 ; unsigned int __cil_tmp201 ; unsigned int __cil_tmp202 ; unsigned int __cil_tmp203 ; UCHAR __cil_tmp204 ; int __cil_tmp205 ; unsigned int __cil_tmp206 ; unsigned int __cil_tmp207 ; unsigned int __cil_tmp208 ; unsigned int __cil_tmp209 ; unsigned int __cil_tmp210 ; unsigned int __cil_tmp211 ; unsigned int __cil_tmp212 ; unsigned int __cil_tmp213 ; unsigned int __cil_tmp214 ; unsigned int __cil_tmp215 ; unsigned int __cil_tmp216 ; unsigned int __cil_tmp217 ; unsigned int __cil_tmp218 ; unsigned int __cil_tmp219 ; unsigned int __cil_tmp220 ; unsigned int __cil_tmp221 ; LARGE_INTEGER *__cil_tmp222 ; unsigned int __cil_tmp223 ; unsigned int __cil_tmp224 ; unsigned int __cil_tmp225 ; unsigned int __cil_tmp226 ; unsigned int __cil_tmp227 ; unsigned int __cil_tmp228 ; UCHAR *__cil_tmp229 ; unsigned int __cil_tmp230 ; unsigned int __cil_tmp231 ; unsigned int __cil_tmp232 ; unsigned int __cil_tmp233 ; UCHAR *__cil_tmp234 ; void *__cil_tmp235 ; struct _MDL *__cil_tmp236 ; LARGE_INTEGER *__cil_tmp237 ; unsigned int __cil_tmp238 ; unsigned int __cil_tmp239 ; int __cil_tmp240 ; unsigned int __cil_tmp241 ; unsigned int __cil_tmp242 ; unsigned int __cil_tmp243 ; unsigned int __cil_tmp244 ; UCHAR __cil_tmp245 ; int __cil_tmp246 ; int __cil_tmp247 ; unsigned int __cil_tmp248 ; unsigned int __cil_tmp249 ; unsigned int __cil_tmp250 ; unsigned int __cil_tmp251 ; UCHAR __cil_tmp252 ; int __cil_tmp253 ; unsigned int __cil_tmp254 ; unsigned int __cil_tmp255 ; KUSER_SHARED_DATA *__cil_tmp256 ; unsigned int __cil_tmp257 ; unsigned int __cil_tmp258 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp259 ; int __cil_tmp260 ; unsigned int __cil_tmp261 ; unsigned int __cil_tmp262 ; unsigned int __cil_tmp263 ; unsigned int __cil_tmp264 ; unsigned int __cil_tmp265 ; unsigned int __cil_tmp266 ; unsigned int __cil_tmp267 ; unsigned int __cil_tmp268 ; unsigned int __cil_tmp269 ; unsigned int __cil_tmp270 ; unsigned int __cil_tmp271 ; unsigned int __cil_tmp272 ; unsigned int __cil_tmp273 ; unsigned int __cil_tmp274 ; UCHAR *__cil_tmp275 ; unsigned int __cil_tmp276 ; unsigned int __cil_tmp277 ; unsigned int __cil_tmp278 ; unsigned int __cil_tmp279 ; UCHAR *__cil_tmp280 ; void *__cil_tmp281 ; struct _MDL *__cil_tmp282 ; int __cil_tmp283 ; unsigned int __cil_tmp284 ; unsigned int __cil_tmp285 ; unsigned int __cil_tmp286 ; unsigned int __cil_tmp287 ; UCHAR __cil_tmp288 ; int __cil_tmp289 ; unsigned int __cil_tmp290 ; unsigned int __cil_tmp291 ; PDEVICE_OBJECT __cil_tmp292 ; int __cil_tmp293 ; int __cil_tmp294 ; int __cil_tmp295 ; int __cil_tmp296 ; unsigned long __cil_tmp297 ; void *__cil_tmp298 ; FDC_DISK_CHANGE_PARMS *__cil_tmp299 ; int __cil_tmp300 ; int __cil_tmp301 ; unsigned int __cil_tmp302 ; unsigned int __cil_tmp303 ; PDEVICE_OBJECT __cil_tmp304 ; unsigned int __cil_tmp305 ; unsigned int __cil_tmp306 ; PVPB __cil_tmp307 ; unsigned int __cil_tmp308 ; unsigned int __cil_tmp309 ; USHORT __cil_tmp310 ; int __cil_tmp311 ; unsigned int __cil_tmp312 ; unsigned int __cil_tmp313 ; PDEVICE_OBJECT __cil_tmp314 ; unsigned int __cil_tmp315 ; unsigned int __cil_tmp316 ; unsigned int __cil_tmp317 ; unsigned int __cil_tmp318 ; PDEVICE_OBJECT __cil_tmp319 ; unsigned int __cil_tmp320 ; unsigned int __cil_tmp321 ; ULONG __cil_tmp322 ; int __cil_tmp323 ; unsigned int __cil_tmp324 ; unsigned int __cil_tmp325 ; PDEVICE_OBJECT __cil_tmp326 ; unsigned int __cil_tmp327 ; unsigned int __cil_tmp328 ; PVPB __cil_tmp329 ; unsigned int __cil_tmp330 ; unsigned int __cil_tmp331 ; USHORT __cil_tmp332 ; int __cil_tmp333 ; KUSER_SHARED_DATA *__cil_tmp334 ; unsigned int __cil_tmp335 ; unsigned int __cil_tmp336 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp337 ; int __cil_tmp338 ; unsigned int __cil_tmp339 ; unsigned int __cil_tmp340 ; MEDIA_TYPE __cil_tmp341 ; int __cil_tmp342 ; unsigned int __cil_tmp343 ; unsigned int __cil_tmp344 ; MEDIA_TYPE __cil_tmp345 ; int __cil_tmp346 ; unsigned int __cil_tmp347 ; unsigned int __cil_tmp348 ; DRIVE_MEDIA_TYPE __cil_tmp349 ; int __cil_tmp350 ; unsigned int __cil_tmp351 ; unsigned int __cil_tmp352 ; DRIVE_MEDIA_TYPE __cil_tmp353 ; int __cil_tmp354 ; int __cil_tmp355 ; unsigned int __cil_tmp356 ; unsigned int __cil_tmp357 ; unsigned int __cil_tmp358 ; unsigned int __cil_tmp359 ; unsigned int __cil_tmp360 ; unsigned int __cil_tmp361 ; unsigned int __cil_tmp362 ; unsigned int __cil_tmp363 ; unsigned int __cil_tmp364 ; unsigned int __cil_tmp365 ; unsigned int __cil_tmp366 ; unsigned int __cil_tmp367 ; unsigned int __cil_tmp368 ; unsigned int __cil_tmp369 ; UCHAR *__cil_tmp370 ; unsigned int __cil_tmp371 ; unsigned int __cil_tmp372 ; unsigned int __cil_tmp373 ; unsigned int __cil_tmp374 ; UCHAR *__cil_tmp375 ; void *__cil_tmp376 ; struct _MDL *__cil_tmp377 ; int __cil_tmp378 ; KUSER_SHARED_DATA *__cil_tmp379 ; unsigned int __cil_tmp380 ; unsigned int __cil_tmp381 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp382 ; int __cil_tmp383 ; unsigned int __cil_tmp384 ; unsigned int __cil_tmp385 ; unsigned int __cil_tmp386 ; unsigned int __cil_tmp387 ; UCHAR __cil_tmp388 ; int __cil_tmp389 ; int __cil_tmp390 ; unsigned int __cil_tmp391 ; unsigned int __cil_tmp392 ; unsigned int __cil_tmp393 ; unsigned int __cil_tmp394 ; UCHAR __cil_tmp395 ; int __cil_tmp396 ; UCHAR *mem_397 ; DRIVE_MEDIA_TYPE *mem_398 ; DRIVE_MEDIA_CONSTANTS *mem_399 ; MEDIA_TYPE *mem_400 ; DRIVE_MEDIA_CONSTANTS *mem_401 ; MEDIA_TYPE *mem_402 ; DRIVE_MEDIA_CONSTANTS *mem_403 ; UCHAR *mem_404 ; UCHAR *mem_405 ; USHORT *mem_406 ; USHORT *mem_407 ; USHORT *mem_408 ; USHORT *mem_409 ; PDEVICE_OBJECT *mem_410 ; BOOLEAN *mem_411 ; UCHAR *mem_412 ; UCHAR *mem_413 ; PDEVICE_OBJECT *mem_414 ; UCHAR *mem_415 ; UCHAR *mem_416 ; UCHAR *mem_417 ; MEDIA_TYPE *mem_418 ; PDEVICE_OBJECT *mem_419 ; PVPB *mem_420 ; USHORT *mem_421 ; PDEVICE_OBJECT *mem_422 ; PDEVICE_OBJECT *mem_423 ; PDEVICE_OBJECT *mem_424 ; ULONG *mem_425 ; ULONG *mem_426 ; UCHAR *mem_427 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_428 ; UCHAR *mem_429 ; UCHAR *mem_430 ; UCHAR *mem_431 ; UCHAR *mem_432 ; PDEVICE_OBJECT *mem_433 ; PVPB *mem_434 ; USHORT *mem_435 ; PDEVICE_OBJECT *mem_436 ; PDEVICE_OBJECT *mem_437 ; ULONG *mem_438 ; ULONG *mem_439 ; UCHAR *mem_440 ; UCHAR *mem_441 ; UCHAR *mem_442 ; UCHAR *mem_443 ; UCHAR *mem_444 ; UCHAR *mem_445 ; BOOLEAN *mem_446 ; UCHAR *mem_447 ; UCHAR *mem_448 ; UCHAR *mem_449 ; UCHAR *mem_450 ; ULONG *mem_451 ; LONG *mem_452 ; ULONG *mem_453 ; LONG *mem_454 ; UCHAR *mem_455 ; UCHAR *mem_456 ; BOOLEAN *mem_457 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_458 ; UCHAR *mem_459 ; UCHAR *mem_460 ; UCHAR *mem_461 ; UCHAR *mem_462 ; PDEVICE_OBJECT *mem_463 ; UCHAR *mem_464 ; PDEVICE_OBJECT *mem_465 ; PVPB *mem_466 ; USHORT *mem_467 ; PDEVICE_OBJECT *mem_468 ; PDEVICE_OBJECT *mem_469 ; ULONG *mem_470 ; ULONG *mem_471 ; PDEVICE_OBJECT *mem_472 ; PVPB *mem_473 ; USHORT *mem_474 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_475 ; MEDIA_TYPE *mem_476 ; MEDIA_TYPE *mem_477 ; DRIVE_MEDIA_TYPE *mem_478 ; DRIVE_MEDIA_TYPE *mem_479 ; UCHAR *mem_480 ; UCHAR *mem_481 ; UCHAR *mem_482 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_483 ; UCHAR *mem_484 ; UCHAR *mem_485 ; { ntStatus = 0L; { while (1) { while_74_continue: /* CIL Label */ ; goto while_74_break; } while_74_break: /* CIL Label */ ; } __cil_tmp12 = (unsigned int )DisketteExtension; __cil_tmp13 = __cil_tmp12 + 174; mem_397 = (UCHAR *)__cil_tmp13; __cil_tmp14 = *mem_397; __cil_tmp15 = (int )__cil_tmp14; __cil_tmp16 = DriveMediaLimits + __cil_tmp15; mem_398 = (DRIVE_MEDIA_TYPE *)__cil_tmp16; __cil_tmp17 = *mem_398; __cil_tmp18 = (unsigned int )__cil_tmp17; __cil_tmp19 = DriveMediaConstants + __cil_tmp18; __cil_tmp20 = (unsigned int )DisketteExtension; __cil_tmp21 = __cil_tmp20 + 252; mem_399 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp21; *__cil_tmp19 = *mem_399; { __cil_tmp22 = (unsigned int )DisketteExtension; __cil_tmp23 = __cil_tmp22 + 184; mem_400 = (MEDIA_TYPE *)__cil_tmp23; __cil_tmp24 = *mem_400; __cil_tmp25 = (int )__cil_tmp24; if (__cil_tmp25 == -1) { __cil_tmp26 = (unsigned int )DisketteExtension; __cil_tmp27 = __cil_tmp26 + 308; __cil_tmp28 = DriveMediaConstants + 0; mem_401 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp27; *mem_401 = *__cil_tmp28; } else { { __cil_tmp29 = (unsigned int )DisketteExtension; __cil_tmp30 = __cil_tmp29 + 184; mem_402 = (MEDIA_TYPE *)__cil_tmp30; __cil_tmp31 = *mem_402; __cil_tmp32 = (int )__cil_tmp31; if (__cil_tmp32 == 0) { __cil_tmp33 = (unsigned int )DisketteExtension; __cil_tmp34 = __cil_tmp33 + 308; __cil_tmp35 = DriveMediaConstants + 0; mem_403 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp34; *mem_403 = *__cil_tmp35; } else { } } } } __cil_tmp36 = & fdcEnableParms; __cil_tmp37 = (unsigned int )DisketteExtension; __cil_tmp38 = __cil_tmp37 + 249; mem_404 = (UCHAR *)__cil_tmp36; mem_405 = (UCHAR *)__cil_tmp38; *mem_404 = *mem_405; if (WriteOperation) { __cil_tmp39 = (unsigned int )(& fdcEnableParms) + 2; __cil_tmp40 = 308 + 46; __cil_tmp41 = (unsigned int )DisketteExtension; __cil_tmp42 = __cil_tmp41 + __cil_tmp40; mem_406 = (USHORT *)__cil_tmp39; mem_407 = (USHORT *)__cil_tmp42; *mem_406 = *mem_407; } else { __cil_tmp43 = (unsigned int )(& fdcEnableParms) + 2; __cil_tmp44 = 308 + 44; __cil_tmp45 = (unsigned int )DisketteExtension; __cil_tmp46 = __cil_tmp45 + __cil_tmp44; mem_408 = (USHORT *)__cil_tmp43; mem_409 = (USHORT *)__cil_tmp46; *mem_408 = *mem_409; } { __cil_tmp47 = (unsigned int )DisketteExtension; __cil_tmp48 = __cil_tmp47 + 8; mem_410 = (PDEVICE_OBJECT *)__cil_tmp48; __cil_tmp49 = *mem_410; __cil_tmp50 = 774 << 2; __cil_tmp51 = 7 << 16; __cil_tmp52 = __cil_tmp51 | __cil_tmp50; __cil_tmp53 = __cil_tmp52 | 3; __cil_tmp54 = (unsigned long )__cil_tmp53; __cil_tmp55 = (void *)(& fdcEnableParms); ntStatus = FlFdcDeviceIo(__cil_tmp49, __cil_tmp54, __cil_tmp55); __cil_tmp56 = (unsigned int )(& fdcEnableParms) + 4; mem_411 = (BOOLEAN *)__cil_tmp56; motorStarted = *mem_411; } if (ntStatus >= 0L) { { __cil_tmp57 = (unsigned int )(& fdcDiskChangeParms) + 1; __cil_tmp58 = (unsigned int )DisketteExtension; __cil_tmp59 = __cil_tmp58 + 249; mem_412 = (UCHAR *)__cil_tmp57; mem_413 = (UCHAR *)__cil_tmp59; *mem_412 = *mem_413; __cil_tmp60 = (unsigned int )DisketteExtension; __cil_tmp61 = __cil_tmp60 + 8; mem_414 = (PDEVICE_OBJECT *)__cil_tmp61; __cil_tmp62 = *mem_414; __cil_tmp63 = 776 << 2; __cil_tmp64 = 7 << 16; __cil_tmp65 = __cil_tmp64 | __cil_tmp63; __cil_tmp66 = __cil_tmp65 | 3; __cil_tmp67 = (unsigned long )__cil_tmp66; __cil_tmp68 = (void *)(& fdcDiskChangeParms); ntStatus = FlFdcDeviceIo(__cil_tmp62, __cil_tmp67, __cil_tmp68); __cil_tmp69 = & fdcDiskChangeParms; mem_415 = (UCHAR *)__cil_tmp69; driveStatus = *mem_415; } } else { } { __cil_tmp70 = ntStatus >= 0L; if (! __cil_tmp70) { return (ntStatus); } else { } } { __cil_tmp71 = (unsigned int )DisketteExtension; __cil_tmp72 = __cil_tmp71 + 174; mem_416 = (UCHAR *)__cil_tmp72; __cil_tmp73 = *mem_416; __cil_tmp74 = (int )__cil_tmp73; if (__cil_tmp74 == 0) { if (motorStarted) { goto _L___1; } else { goto _L___3; } } else { _L___3: { __cil_tmp75 = (unsigned int )DisketteExtension; __cil_tmp76 = __cil_tmp75 + 174; mem_417 = (UCHAR *)__cil_tmp76; __cil_tmp77 = *mem_417; __cil_tmp78 = (int )__cil_tmp77; if (__cil_tmp78 != 0) { { __cil_tmp79 = (int )driveStatus; if (__cil_tmp79 & 128) { _L___1: { while (1) { while_75_continue: /* CIL Label */ ; goto while_75_break; } while_75_break: /* CIL Label */ ; } __cil_tmp80 = (unsigned int )DisketteExtension; __cil_tmp81 = __cil_tmp80 + 184; mem_418 = (MEDIA_TYPE *)__cil_tmp81; *mem_418 = (enum _MEDIA_TYPE )-1; { __cil_tmp82 = (unsigned int )DisketteExtension; __cil_tmp83 = __cil_tmp82 + 28; mem_419 = (PDEVICE_OBJECT *)__cil_tmp83; __cil_tmp84 = *mem_419; __cil_tmp85 = (unsigned int )__cil_tmp84; __cil_tmp86 = __cil_tmp85 + 36; mem_420 = (PVPB *)__cil_tmp86; __cil_tmp87 = *mem_420; __cil_tmp88 = (unsigned int )__cil_tmp87; __cil_tmp89 = __cil_tmp88 + 4; mem_421 = (USHORT *)__cil_tmp89; __cil_tmp90 = *mem_421; __cil_tmp91 = (int )__cil_tmp90; if (__cil_tmp91 & 1) { if (Irp) { { __cil_tmp92 = (unsigned int )DisketteExtension; __cil_tmp93 = __cil_tmp92 + 28; mem_422 = (PDEVICE_OBJECT *)__cil_tmp93; __cil_tmp94 = *mem_422; IoSetHardErrorOrVerifyDevice(Irp, __cil_tmp94); } } else { } __cil_tmp95 = (unsigned int )DisketteExtension; __cil_tmp96 = __cil_tmp95 + 28; mem_423 = (PDEVICE_OBJECT *)__cil_tmp96; __cil_tmp97 = *mem_423; __cil_tmp98 = (unsigned int )__cil_tmp97; __cil_tmp99 = __cil_tmp98 + 28; __cil_tmp100 = (unsigned int )DisketteExtension; __cil_tmp101 = __cil_tmp100 + 28; mem_424 = (PDEVICE_OBJECT *)__cil_tmp101; __cil_tmp102 = *mem_424; __cil_tmp103 = (unsigned int )__cil_tmp102; __cil_tmp104 = __cil_tmp103 + 28; mem_425 = (ULONG *)__cil_tmp104; __cil_tmp105 = *mem_425; mem_426 = (ULONG *)__cil_tmp99; *mem_426 = __cil_tmp105 | 2UL; } else { } } { __cil_tmp106 = (unsigned int )DisketteExtension; __cil_tmp107 = __cil_tmp106 + 174; mem_427 = (UCHAR *)__cil_tmp107; __cil_tmp108 = *mem_427; __cil_tmp109 = (int )__cil_tmp108; if (__cil_tmp109 != 0) { { __cil_tmp110 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp111 = (unsigned int )__cil_tmp110; __cil_tmp112 = __cil_tmp111 + 732; mem_428 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp112; __cil_tmp113 = *mem_428; __cil_tmp114 = (int )__cil_tmp113; if (__cil_tmp114 == 1) { { __cil_tmp115 = 0 * 1U; __cil_tmp116 = 112 + __cil_tmp115; __cil_tmp117 = (unsigned int )DisketteExtension; __cil_tmp118 = __cil_tmp117 + __cil_tmp116; mem_429 = (UCHAR *)__cil_tmp118; *mem_429 = (unsigned char)14; __cil_tmp119 = 1 * 1U; __cil_tmp120 = 112 + __cil_tmp119; __cil_tmp121 = (unsigned int )DisketteExtension; __cil_tmp122 = __cil_tmp121 + __cil_tmp120; __cil_tmp123 = (unsigned int )DisketteExtension; __cil_tmp124 = __cil_tmp123 + 248; mem_430 = (UCHAR *)__cil_tmp122; mem_431 = (UCHAR *)__cil_tmp124; *mem_430 = *mem_431; __cil_tmp125 = 0 * 1U; __cil_tmp126 = 112 + __cil_tmp125; __cil_tmp127 = (unsigned int )DisketteExtension; __cil_tmp128 = __cil_tmp127 + __cil_tmp126; __cil_tmp129 = (UCHAR *)__cil_tmp128; __cil_tmp130 = 0 * 1U; __cil_tmp131 = 112 + __cil_tmp130; __cil_tmp132 = (unsigned int )DisketteExtension; __cil_tmp133 = __cil_tmp132 + __cil_tmp131; __cil_tmp134 = (UCHAR *)__cil_tmp133; __cil_tmp135 = (void *)0; __cil_tmp136 = (struct _MDL *)__cil_tmp135; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp129, __cil_tmp134, __cil_tmp136, 0UL, 0UL); } { __cil_tmp137 = ntStatus >= 0L; if (! __cil_tmp137) { { while (1) { while_76_continue: /* CIL Label */ ; goto while_76_break; } while_76_break: /* CIL Label */ ; } return (ntStatus); } else { } } { __cil_tmp138 = 0 * 1U; __cil_tmp139 = 112 + __cil_tmp138; __cil_tmp140 = (unsigned int )DisketteExtension; __cil_tmp141 = __cil_tmp140 + __cil_tmp139; mem_432 = (UCHAR *)__cil_tmp141; __cil_tmp142 = *mem_432; __cil_tmp143 = (int )__cil_tmp142; if (__cil_tmp143 & 32) { driveStatus = (unsigned char)127; } else { driveStatus = (unsigned char)128; } } { __cil_tmp144 = (int )driveStatus; if (__cil_tmp144 & 128) { { while (1) { while_77_continue: /* CIL Label */ ; goto while_77_break; } while_77_break: /* CIL Label */ ; } { __cil_tmp145 = (unsigned int )DisketteExtension; __cil_tmp146 = __cil_tmp145 + 28; mem_433 = (PDEVICE_OBJECT *)__cil_tmp146; __cil_tmp147 = *mem_433; __cil_tmp148 = (unsigned int )__cil_tmp147; __cil_tmp149 = __cil_tmp148 + 36; mem_434 = (PVPB *)__cil_tmp149; __cil_tmp150 = *mem_434; __cil_tmp151 = (unsigned int )__cil_tmp150; __cil_tmp152 = __cil_tmp151 + 4; mem_435 = (USHORT *)__cil_tmp152; __cil_tmp153 = *mem_435; __cil_tmp154 = (int )__cil_tmp153; if (__cil_tmp154 & 1) { __cil_tmp155 = (unsigned int )DisketteExtension; __cil_tmp156 = __cil_tmp155 + 28; mem_436 = (PDEVICE_OBJECT *)__cil_tmp156; __cil_tmp157 = *mem_436; __cil_tmp158 = (unsigned int )__cil_tmp157; __cil_tmp159 = __cil_tmp158 + 28; __cil_tmp160 = (unsigned int )DisketteExtension; __cil_tmp161 = __cil_tmp160 + 28; mem_437 = (PDEVICE_OBJECT *)__cil_tmp161; __cil_tmp162 = *mem_437; __cil_tmp163 = (unsigned int )__cil_tmp162; __cil_tmp164 = __cil_tmp163 + 28; mem_438 = (ULONG *)__cil_tmp164; __cil_tmp165 = *mem_438; mem_439 = (ULONG *)__cil_tmp159; *mem_439 = __cil_tmp165 & 4294967293UL; } else { } } return (-1073741805L); } else { } } } else { } } { __cil_tmp166 = 0 * 1U; __cil_tmp167 = 112 + __cil_tmp166; __cil_tmp168 = (unsigned int )DisketteExtension; __cil_tmp169 = __cil_tmp168 + __cil_tmp167; mem_440 = (UCHAR *)__cil_tmp169; *mem_440 = (unsigned char)16; __cil_tmp170 = 1 * 1U; __cil_tmp171 = 112 + __cil_tmp170; __cil_tmp172 = (unsigned int )DisketteExtension; __cil_tmp173 = __cil_tmp172 + __cil_tmp171; __cil_tmp174 = (unsigned int )DisketteExtension; __cil_tmp175 = __cil_tmp174 + 248; mem_441 = (UCHAR *)__cil_tmp173; mem_442 = (UCHAR *)__cil_tmp175; *mem_441 = *mem_442; __cil_tmp176 = 2 * 1U; __cil_tmp177 = 112 + __cil_tmp176; __cil_tmp178 = (unsigned int )DisketteExtension; __cil_tmp179 = __cil_tmp178 + __cil_tmp177; mem_443 = (UCHAR *)__cil_tmp179; *mem_443 = (unsigned char)1; __cil_tmp180 = 0 * 1U; __cil_tmp181 = 112 + __cil_tmp180; __cil_tmp182 = (unsigned int )DisketteExtension; __cil_tmp183 = __cil_tmp182 + __cil_tmp181; __cil_tmp184 = (UCHAR *)__cil_tmp183; __cil_tmp185 = 0 * 1U; __cil_tmp186 = 112 + __cil_tmp185; __cil_tmp187 = (unsigned int )DisketteExtension; __cil_tmp188 = __cil_tmp187 + __cil_tmp186; __cil_tmp189 = (UCHAR *)__cil_tmp188; __cil_tmp190 = (void *)0; __cil_tmp191 = (struct _MDL *)__cil_tmp190; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp184, __cil_tmp189, __cil_tmp191, 0UL, 0UL); } { __cil_tmp192 = ntStatus >= 0L; if (! __cil_tmp192) { { while (1) { while_78_continue: /* CIL Label */ ; goto while_78_break; } while_78_break: /* CIL Label */ ; } return (ntStatus); } else { { __cil_tmp193 = 0 * 1U; __cil_tmp194 = 112 + __cil_tmp193; __cil_tmp195 = (unsigned int )DisketteExtension; __cil_tmp196 = __cil_tmp195 + __cil_tmp194; mem_444 = (UCHAR *)__cil_tmp196; __cil_tmp197 = *mem_444; __cil_tmp198 = (int )__cil_tmp197; __cil_tmp199 = __cil_tmp198 & 32; if (! __cil_tmp199) { goto _L; } else { { __cil_tmp200 = 1 * 1U; __cil_tmp201 = 112 + __cil_tmp200; __cil_tmp202 = (unsigned int )DisketteExtension; __cil_tmp203 = __cil_tmp202 + __cil_tmp201; mem_445 = (UCHAR *)__cil_tmp203; __cil_tmp204 = *mem_445; __cil_tmp205 = (int )__cil_tmp204; if (__cil_tmp205 != 1) { _L: { while (1) { while_79_continue: /* CIL Label */ ; goto while_79_break; } while_79_break: /* CIL Label */ ; } __cil_tmp206 = (unsigned int )DisketteExtension; __cil_tmp207 = __cil_tmp206 + 104; mem_446 = (BOOLEAN *)__cil_tmp207; *mem_446 = (unsigned char)1; return (-1073741464L); } else { } } } } } } { __cil_tmp208 = 0 * 1U; __cil_tmp209 = 112 + __cil_tmp208; __cil_tmp210 = (unsigned int )DisketteExtension; __cil_tmp211 = __cil_tmp210 + __cil_tmp209; mem_447 = (UCHAR *)__cil_tmp211; *mem_447 = (unsigned char)16; __cil_tmp212 = 1 * 1U; __cil_tmp213 = 112 + __cil_tmp212; __cil_tmp214 = (unsigned int )DisketteExtension; __cil_tmp215 = __cil_tmp214 + __cil_tmp213; __cil_tmp216 = (unsigned int )DisketteExtension; __cil_tmp217 = __cil_tmp216 + 248; mem_448 = (UCHAR *)__cil_tmp215; mem_449 = (UCHAR *)__cil_tmp217; *mem_448 = *mem_449; __cil_tmp218 = 2 * 1U; __cil_tmp219 = 112 + __cil_tmp218; __cil_tmp220 = (unsigned int )DisketteExtension; __cil_tmp221 = __cil_tmp220 + __cil_tmp219; mem_450 = (UCHAR *)__cil_tmp221; *mem_450 = (unsigned char)0; __cil_tmp222 = & delay; mem_451 = (ULONG *)__cil_tmp222; *mem_451 = 4294966396UL; __cil_tmp223 = 0 + 4; __cil_tmp224 = (unsigned int )(& delay) + __cil_tmp223; mem_452 = (LONG *)__cil_tmp224; *mem_452 = -1L; KeDelayExecutionThread((char)0, (unsigned char)0, & delay); __cil_tmp225 = 0 * 1U; __cil_tmp226 = 112 + __cil_tmp225; __cil_tmp227 = (unsigned int )DisketteExtension; __cil_tmp228 = __cil_tmp227 + __cil_tmp226; __cil_tmp229 = (UCHAR *)__cil_tmp228; __cil_tmp230 = 0 * 1U; __cil_tmp231 = 112 + __cil_tmp230; __cil_tmp232 = (unsigned int )DisketteExtension; __cil_tmp233 = __cil_tmp232 + __cil_tmp231; __cil_tmp234 = (UCHAR *)__cil_tmp233; __cil_tmp235 = (void *)0; __cil_tmp236 = (struct _MDL *)__cil_tmp235; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp229, __cil_tmp234, __cil_tmp236, 0UL, 0UL); __cil_tmp237 = & delay; mem_453 = (ULONG *)__cil_tmp237; *mem_453 = 4294967291UL; __cil_tmp238 = 0 + 4; __cil_tmp239 = (unsigned int )(& delay) + __cil_tmp238; mem_454 = (LONG *)__cil_tmp239; *mem_454 = -1L; KeDelayExecutionThread((char)0, (unsigned char)0, & delay); } { __cil_tmp240 = ntStatus >= 0L; if (! __cil_tmp240) { { while (1) { while_80_continue: /* CIL Label */ ; goto while_80_break; } while_80_break: /* CIL Label */ ; } return (ntStatus); } else { { __cil_tmp241 = 0 * 1U; __cil_tmp242 = 112 + __cil_tmp241; __cil_tmp243 = (unsigned int )DisketteExtension; __cil_tmp244 = __cil_tmp243 + __cil_tmp242; mem_455 = (UCHAR *)__cil_tmp244; __cil_tmp245 = *mem_455; __cil_tmp246 = (int )__cil_tmp245; __cil_tmp247 = __cil_tmp246 & 32; if (! __cil_tmp247) { goto _L___0; } else { { __cil_tmp248 = 1 * 1U; __cil_tmp249 = 112 + __cil_tmp248; __cil_tmp250 = (unsigned int )DisketteExtension; __cil_tmp251 = __cil_tmp250 + __cil_tmp249; mem_456 = (UCHAR *)__cil_tmp251; __cil_tmp252 = *mem_456; __cil_tmp253 = (int )__cil_tmp252; if (__cil_tmp253 != 0) { _L___0: { while (1) { while_81_continue: /* CIL Label */ ; goto while_81_break; } while_81_break: /* CIL Label */ ; } __cil_tmp254 = (unsigned int )DisketteExtension; __cil_tmp255 = __cil_tmp254 + 104; mem_457 = (BOOLEAN *)__cil_tmp255; *mem_457 = (unsigned char)1; return (-1073741464L); } else { } } } } } } { __cil_tmp256 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp257 = (unsigned int )__cil_tmp256; __cil_tmp258 = __cil_tmp257 + 732; mem_458 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp258; __cil_tmp259 = *mem_458; __cil_tmp260 = (int )__cil_tmp259; if (__cil_tmp260 == 1) { { __cil_tmp261 = 0 * 1U; __cil_tmp262 = 112 + __cil_tmp261; __cil_tmp263 = (unsigned int )DisketteExtension; __cil_tmp264 = __cil_tmp263 + __cil_tmp262; mem_459 = (UCHAR *)__cil_tmp264; *mem_459 = (unsigned char)14; __cil_tmp265 = 1 * 1U; __cil_tmp266 = 112 + __cil_tmp265; __cil_tmp267 = (unsigned int )DisketteExtension; __cil_tmp268 = __cil_tmp267 + __cil_tmp266; __cil_tmp269 = (unsigned int )DisketteExtension; __cil_tmp270 = __cil_tmp269 + 248; mem_460 = (UCHAR *)__cil_tmp268; mem_461 = (UCHAR *)__cil_tmp270; *mem_460 = *mem_461; __cil_tmp271 = 0 * 1U; __cil_tmp272 = 112 + __cil_tmp271; __cil_tmp273 = (unsigned int )DisketteExtension; __cil_tmp274 = __cil_tmp273 + __cil_tmp272; __cil_tmp275 = (UCHAR *)__cil_tmp274; __cil_tmp276 = 0 * 1U; __cil_tmp277 = 112 + __cil_tmp276; __cil_tmp278 = (unsigned int )DisketteExtension; __cil_tmp279 = __cil_tmp278 + __cil_tmp277; __cil_tmp280 = (UCHAR *)__cil_tmp279; __cil_tmp281 = (void *)0; __cil_tmp282 = (struct _MDL *)__cil_tmp281; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp275, __cil_tmp280, __cil_tmp282, 0UL, 0UL); } { __cil_tmp283 = ntStatus >= 0L; if (! __cil_tmp283) { { while (1) { while_82_continue: /* CIL Label */ ; goto while_82_break; } while_82_break: /* CIL Label */ ; } return (ntStatus); } else { } } { __cil_tmp284 = 0 * 1U; __cil_tmp285 = 112 + __cil_tmp284; __cil_tmp286 = (unsigned int )DisketteExtension; __cil_tmp287 = __cil_tmp286 + __cil_tmp285; mem_462 = (UCHAR *)__cil_tmp287; __cil_tmp288 = *mem_462; __cil_tmp289 = (int )__cil_tmp288; if (__cil_tmp289 & 32) { driveStatus = (unsigned char)127; } else { driveStatus = (unsigned char)128; } } } else { { __cil_tmp290 = (unsigned int )DisketteExtension; __cil_tmp291 = __cil_tmp290 + 8; mem_463 = (PDEVICE_OBJECT *)__cil_tmp291; __cil_tmp292 = *mem_463; __cil_tmp293 = 776 << 2; __cil_tmp294 = 7 << 16; __cil_tmp295 = __cil_tmp294 | __cil_tmp293; __cil_tmp296 = __cil_tmp295 | 3; __cil_tmp297 = (unsigned long )__cil_tmp296; __cil_tmp298 = (void *)(& fdcDiskChangeParms); ntStatus = FlFdcDeviceIo(__cil_tmp292, __cil_tmp297, __cil_tmp298); __cil_tmp299 = & fdcDiskChangeParms; mem_464 = (UCHAR *)__cil_tmp299; driveStatus = *mem_464; } { __cil_tmp300 = ntStatus >= 0L; if (! __cil_tmp300) { return (ntStatus); } else { } } } } { __cil_tmp301 = (int )driveStatus; if (__cil_tmp301 & 128) { { while (1) { while_83_continue: /* CIL Label */ ; goto while_83_break; } while_83_break: /* CIL Label */ ; } { __cil_tmp302 = (unsigned int )DisketteExtension; __cil_tmp303 = __cil_tmp302 + 28; mem_465 = (PDEVICE_OBJECT *)__cil_tmp303; __cil_tmp304 = *mem_465; __cil_tmp305 = (unsigned int )__cil_tmp304; __cil_tmp306 = __cil_tmp305 + 36; mem_466 = (PVPB *)__cil_tmp306; __cil_tmp307 = *mem_466; __cil_tmp308 = (unsigned int )__cil_tmp307; __cil_tmp309 = __cil_tmp308 + 4; mem_467 = (USHORT *)__cil_tmp309; __cil_tmp310 = *mem_467; __cil_tmp311 = (int )__cil_tmp310; if (__cil_tmp311 & 1) { __cil_tmp312 = (unsigned int )DisketteExtension; __cil_tmp313 = __cil_tmp312 + 28; mem_468 = (PDEVICE_OBJECT *)__cil_tmp313; __cil_tmp314 = *mem_468; __cil_tmp315 = (unsigned int )__cil_tmp314; __cil_tmp316 = __cil_tmp315 + 28; __cil_tmp317 = (unsigned int )DisketteExtension; __cil_tmp318 = __cil_tmp317 + 28; mem_469 = (PDEVICE_OBJECT *)__cil_tmp318; __cil_tmp319 = *mem_469; __cil_tmp320 = (unsigned int )__cil_tmp319; __cil_tmp321 = __cil_tmp320 + 28; mem_470 = (ULONG *)__cil_tmp321; __cil_tmp322 = *mem_470; mem_471 = (ULONG *)__cil_tmp316; *mem_471 = __cil_tmp322 & 4294967293UL; } else { } } return (-1073741805L); } else { } } } else { } } { __cil_tmp323 = (int )IgnoreChange; if (__cil_tmp323 == 0) { { __cil_tmp324 = (unsigned int )DisketteExtension; __cil_tmp325 = __cil_tmp324 + 28; mem_472 = (PDEVICE_OBJECT *)__cil_tmp325; __cil_tmp326 = *mem_472; __cil_tmp327 = (unsigned int )__cil_tmp326; __cil_tmp328 = __cil_tmp327 + 36; mem_473 = (PVPB *)__cil_tmp328; __cil_tmp329 = *mem_473; __cil_tmp330 = (unsigned int )__cil_tmp329; __cil_tmp331 = __cil_tmp330 + 4; mem_474 = (USHORT *)__cil_tmp331; __cil_tmp332 = *mem_474; __cil_tmp333 = (int )__cil_tmp332; if (__cil_tmp333 & 1) { { while (1) { while_84_continue: /* CIL Label */ ; goto while_84_break; } while_84_break: /* CIL Label */ ; } return (-2147483626L); } else { return (-1073741435L); } } } else { } } } else { goto _L___2; } } } else { _L___2: { __cil_tmp334 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp335 = (unsigned int )__cil_tmp334; __cil_tmp336 = __cil_tmp335 + 732; mem_475 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp336; __cil_tmp337 = *mem_475; __cil_tmp338 = (int )__cil_tmp337; if (__cil_tmp338 == 1) { { FlHdbit(DisketteExtension); } } else { } } } } } } if (SetUpMedia) { { __cil_tmp339 = (unsigned int )DisketteExtension; __cil_tmp340 = __cil_tmp339 + 184; mem_476 = (MEDIA_TYPE *)__cil_tmp340; __cil_tmp341 = *mem_476; __cil_tmp342 = (int )__cil_tmp341; if (__cil_tmp342 == -1) { { ntStatus = FlDetermineMediaType(DisketteExtension); } } else { { __cil_tmp343 = (unsigned int )DisketteExtension; __cil_tmp344 = __cil_tmp343 + 184; mem_477 = (MEDIA_TYPE *)__cil_tmp344; __cil_tmp345 = *mem_477; __cil_tmp346 = (int )__cil_tmp345; if (__cil_tmp346 == 0) { { while (1) { while_85_continue: /* CIL Label */ ; goto while_85_break; } while_85_break: /* CIL Label */ ; } return (-1073741804L); } else { { __cil_tmp347 = (unsigned int )DisketteExtension; __cil_tmp348 = __cil_tmp347 + 140; mem_478 = (DRIVE_MEDIA_TYPE *)__cil_tmp348; __cil_tmp349 = *mem_478; __cil_tmp350 = (int )__cil_tmp349; __cil_tmp351 = (unsigned int )DisketteExtension; __cil_tmp352 = __cil_tmp351 + 216; mem_479 = (DRIVE_MEDIA_TYPE *)__cil_tmp352; __cil_tmp353 = *mem_479; __cil_tmp354 = (int )__cil_tmp353; if (__cil_tmp354 != __cil_tmp350) { { ntStatus = FlDatarateSpecifyConfigure(DisketteExtension); } { __cil_tmp355 = ntStatus >= 0L; if (! __cil_tmp355) { { while (1) { while_86_continue: /* CIL Label */ ; goto while_86_break; } while_86_break: /* CIL Label */ ; } } else { } } } else { } } } } } } } else { } if (WriteOperation) { if (ntStatus >= 0L) { { __cil_tmp356 = 0 * 1U; __cil_tmp357 = 112 + __cil_tmp356; __cil_tmp358 = (unsigned int )DisketteExtension; __cil_tmp359 = __cil_tmp358 + __cil_tmp357; mem_480 = (UCHAR *)__cil_tmp359; *mem_480 = (unsigned char)14; __cil_tmp360 = 1 * 1U; __cil_tmp361 = 112 + __cil_tmp360; __cil_tmp362 = (unsigned int )DisketteExtension; __cil_tmp363 = __cil_tmp362 + __cil_tmp361; __cil_tmp364 = (unsigned int )DisketteExtension; __cil_tmp365 = __cil_tmp364 + 248; mem_481 = (UCHAR *)__cil_tmp363; mem_482 = (UCHAR *)__cil_tmp365; *mem_481 = *mem_482; __cil_tmp366 = 0 * 1U; __cil_tmp367 = 112 + __cil_tmp366; __cil_tmp368 = (unsigned int )DisketteExtension; __cil_tmp369 = __cil_tmp368 + __cil_tmp367; __cil_tmp370 = (UCHAR *)__cil_tmp369; __cil_tmp371 = 0 * 1U; __cil_tmp372 = 112 + __cil_tmp371; __cil_tmp373 = (unsigned int )DisketteExtension; __cil_tmp374 = __cil_tmp373 + __cil_tmp372; __cil_tmp375 = (UCHAR *)__cil_tmp374; __cil_tmp376 = (void *)0; __cil_tmp377 = (struct _MDL *)__cil_tmp376; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp370, __cil_tmp375, __cil_tmp377, 0UL, 0UL); } { __cil_tmp378 = ntStatus >= 0L; if (! __cil_tmp378) { { while (1) { while_87_continue: /* CIL Label */ ; goto while_87_break; } while_87_break: /* CIL Label */ ; } return (ntStatus); } else { } } { __cil_tmp379 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp380 = (unsigned int )__cil_tmp379; __cil_tmp381 = __cil_tmp380 + 732; mem_483 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp381; __cil_tmp382 = *mem_483; __cil_tmp383 = (int )__cil_tmp382; if (__cil_tmp383 == 1) { { __cil_tmp384 = 0 * 1U; __cil_tmp385 = 112 + __cil_tmp384; __cil_tmp386 = (unsigned int )DisketteExtension; __cil_tmp387 = __cil_tmp386 + __cil_tmp385; mem_484 = (UCHAR *)__cil_tmp387; __cil_tmp388 = *mem_484; __cil_tmp389 = (int )__cil_tmp388; __cil_tmp390 = __cil_tmp389 & 32; if (! __cil_tmp390) { { while (1) { while_88_continue: /* CIL Label */ ; goto while_88_break; } while_88_break: /* CIL Label */ ; } return (-1073741805L); } else { } } } else { } } { __cil_tmp391 = 0 * 1U; __cil_tmp392 = 112 + __cil_tmp391; __cil_tmp393 = (unsigned int )DisketteExtension; __cil_tmp394 = __cil_tmp393 + __cil_tmp392; mem_485 = (UCHAR *)__cil_tmp394; __cil_tmp395 = *mem_485; __cil_tmp396 = (int )__cil_tmp395; if (__cil_tmp396 & 64) { { while (1) { while_89_continue: /* CIL Label */ ; goto while_89_break; } while_89_break: /* CIL Label */ ; } return (-1073741662L); } else { } } } else { } } else { } return (ntStatus); } } NTSTATUS FlDatarateSpecifyConfigure(PDISKETTE_EXTENSION DisketteExtension ) { NTSTATUS ntStatus ; unsigned int __cil_tmp3 ; unsigned int __cil_tmp4 ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; UCHAR __cil_tmp25 ; int __cil_tmp26 ; int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; UCHAR __cil_tmp31 ; unsigned int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; UCHAR __cil_tmp40 ; int __cil_tmp41 ; int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; UCHAR *__cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; UCHAR *__cil_tmp56 ; void *__cil_tmp57 ; struct _MDL *__cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; unsigned int __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; UCHAR *__cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; UCHAR *__cil_tmp88 ; void *__cil_tmp89 ; struct _MDL *__cil_tmp90 ; unsigned int __cil_tmp91 ; unsigned int __cil_tmp92 ; PDEVICE_OBJECT __cil_tmp93 ; int __cil_tmp94 ; int __cil_tmp95 ; int __cil_tmp96 ; int __cil_tmp97 ; unsigned long __cil_tmp98 ; unsigned int __cil_tmp99 ; unsigned int __cil_tmp100 ; unsigned int __cil_tmp101 ; UCHAR *__cil_tmp102 ; void *__cil_tmp103 ; unsigned int __cil_tmp104 ; unsigned int __cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; unsigned int __cil_tmp108 ; unsigned int __cil_tmp109 ; BOOLEAN *mem_110 ; UCHAR *mem_111 ; UCHAR *mem_112 ; UCHAR *mem_113 ; UCHAR *mem_114 ; UCHAR *mem_115 ; UCHAR *mem_116 ; UCHAR *mem_117 ; UCHAR *mem_118 ; UCHAR *mem_119 ; BOOLEAN *mem_120 ; UCHAR *mem_121 ; UCHAR *mem_122 ; UCHAR *mem_123 ; UCHAR *mem_124 ; UCHAR *mem_125 ; PDEVICE_OBJECT *mem_126 ; DRIVE_MEDIA_TYPE *mem_127 ; DRIVE_MEDIA_TYPE *mem_128 ; DRIVE_MEDIA_TYPE *mem_129 ; { ntStatus = 0L; { __cil_tmp3 = (unsigned int )DisketteExtension; __cil_tmp4 = __cil_tmp3 + 365; { mem_110 = (BOOLEAN *)__cil_tmp4; if (*mem_110) { __cil_tmp5 = 0 * 1U; __cil_tmp6 = 112 + __cil_tmp5; __cil_tmp7 = (unsigned int )DisketteExtension; __cil_tmp8 = __cil_tmp7 + __cil_tmp6; mem_111 = (UCHAR *)__cil_tmp8; *mem_111 = (unsigned char)17; __cil_tmp9 = 1 * 1U; __cil_tmp10 = 112 + __cil_tmp9; __cil_tmp11 = (unsigned int )DisketteExtension; __cil_tmp12 = __cil_tmp11 + __cil_tmp10; mem_112 = (UCHAR *)__cil_tmp12; *mem_112 = (unsigned char)0; __cil_tmp13 = 2 * 1U; __cil_tmp14 = 112 + __cil_tmp13; __cil_tmp15 = (unsigned int )DisketteExtension; __cil_tmp16 = __cil_tmp15 + __cil_tmp14; mem_113 = (UCHAR *)__cil_tmp16; *mem_113 = (unsigned char)15; __cil_tmp17 = 2 * 1U; __cil_tmp18 = 112 + __cil_tmp17; __cil_tmp19 = (unsigned int )DisketteExtension; __cil_tmp20 = __cil_tmp19 + __cil_tmp18; __cil_tmp21 = 2 * 1U; __cil_tmp22 = 112 + __cil_tmp21; __cil_tmp23 = (unsigned int )DisketteExtension; __cil_tmp24 = __cil_tmp23 + __cil_tmp22; mem_114 = (UCHAR *)__cil_tmp24; __cil_tmp25 = *mem_114; __cil_tmp26 = (int )__cil_tmp25; __cil_tmp27 = __cil_tmp26 + 16; mem_115 = (UCHAR *)__cil_tmp20; *mem_115 = (unsigned char )__cil_tmp27; { __cil_tmp28 = 308 + 49; __cil_tmp29 = (unsigned int )DisketteExtension; __cil_tmp30 = __cil_tmp29 + __cil_tmp28; mem_116 = (UCHAR *)__cil_tmp30; __cil_tmp31 = *mem_116; if (! __cil_tmp31) { __cil_tmp32 = 2 * 1U; __cil_tmp33 = 112 + __cil_tmp32; __cil_tmp34 = (unsigned int )DisketteExtension; __cil_tmp35 = __cil_tmp34 + __cil_tmp33; __cil_tmp36 = 2 * 1U; __cil_tmp37 = 112 + __cil_tmp36; __cil_tmp38 = (unsigned int )DisketteExtension; __cil_tmp39 = __cil_tmp38 + __cil_tmp37; mem_117 = (UCHAR *)__cil_tmp39; __cil_tmp40 = *mem_117; __cil_tmp41 = (int )__cil_tmp40; __cil_tmp42 = __cil_tmp41 + 64; mem_118 = (UCHAR *)__cil_tmp35; *mem_118 = (unsigned char )__cil_tmp42; } else { } } { __cil_tmp43 = 3 * 1U; __cil_tmp44 = 112 + __cil_tmp43; __cil_tmp45 = (unsigned int )DisketteExtension; __cil_tmp46 = __cil_tmp45 + __cil_tmp44; mem_119 = (UCHAR *)__cil_tmp46; *mem_119 = (unsigned char)0; __cil_tmp47 = 0 * 1U; __cil_tmp48 = 112 + __cil_tmp47; __cil_tmp49 = (unsigned int )DisketteExtension; __cil_tmp50 = __cil_tmp49 + __cil_tmp48; __cil_tmp51 = (UCHAR *)__cil_tmp50; __cil_tmp52 = 0 * 1U; __cil_tmp53 = 112 + __cil_tmp52; __cil_tmp54 = (unsigned int )DisketteExtension; __cil_tmp55 = __cil_tmp54 + __cil_tmp53; __cil_tmp56 = (UCHAR *)__cil_tmp55; __cil_tmp57 = (void *)0; __cil_tmp58 = (struct _MDL *)__cil_tmp57; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp51, __cil_tmp56, __cil_tmp58, 0UL, 0UL); } if (ntStatus == -1073741661L) { __cil_tmp59 = (unsigned int )DisketteExtension; __cil_tmp60 = __cil_tmp59 + 365; mem_120 = (BOOLEAN *)__cil_tmp60; *mem_120 = (unsigned char)0; ntStatus = 0L; } else { } } else { } } } if (ntStatus >= 0L) { goto _L; } else { if (ntStatus == -1073741661L) { _L: { __cil_tmp61 = 0 * 1U; __cil_tmp62 = 112 + __cil_tmp61; __cil_tmp63 = (unsigned int )DisketteExtension; __cil_tmp64 = __cil_tmp63 + __cil_tmp62; mem_121 = (UCHAR *)__cil_tmp64; *mem_121 = (unsigned char)13; __cil_tmp65 = 1 * 1U; __cil_tmp66 = 112 + __cil_tmp65; __cil_tmp67 = (unsigned int )DisketteExtension; __cil_tmp68 = __cil_tmp67 + __cil_tmp66; __cil_tmp69 = 308 + 32; __cil_tmp70 = (unsigned int )DisketteExtension; __cil_tmp71 = __cil_tmp70 + __cil_tmp69; mem_122 = (UCHAR *)__cil_tmp68; mem_123 = (UCHAR *)__cil_tmp71; *mem_122 = *mem_123; __cil_tmp72 = 2 * 1U; __cil_tmp73 = 112 + __cil_tmp72; __cil_tmp74 = (unsigned int )DisketteExtension; __cil_tmp75 = __cil_tmp74 + __cil_tmp73; __cil_tmp76 = 308 + 33; __cil_tmp77 = (unsigned int )DisketteExtension; __cil_tmp78 = __cil_tmp77 + __cil_tmp76; mem_124 = (UCHAR *)__cil_tmp75; mem_125 = (UCHAR *)__cil_tmp78; *mem_124 = *mem_125; __cil_tmp79 = 0 * 1U; __cil_tmp80 = 112 + __cil_tmp79; __cil_tmp81 = (unsigned int )DisketteExtension; __cil_tmp82 = __cil_tmp81 + __cil_tmp80; __cil_tmp83 = (UCHAR *)__cil_tmp82; __cil_tmp84 = 0 * 1U; __cil_tmp85 = 112 + __cil_tmp84; __cil_tmp86 = (unsigned int )DisketteExtension; __cil_tmp87 = __cil_tmp86 + __cil_tmp85; __cil_tmp88 = (UCHAR *)__cil_tmp87; __cil_tmp89 = (void *)0; __cil_tmp90 = (struct _MDL *)__cil_tmp89; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp83, __cil_tmp88, __cil_tmp90, 0UL, 0UL); } if (ntStatus >= 0L) { { __cil_tmp91 = (unsigned int )DisketteExtension; __cil_tmp92 = __cil_tmp91 + 8; mem_126 = (PDEVICE_OBJECT *)__cil_tmp92; __cil_tmp93 = *mem_126; __cil_tmp94 = 777 << 2; __cil_tmp95 = 7 << 16; __cil_tmp96 = __cil_tmp95 | __cil_tmp94; __cil_tmp97 = __cil_tmp96 | 3; __cil_tmp98 = (unsigned long )__cil_tmp97; __cil_tmp99 = 308 + 50; __cil_tmp100 = (unsigned int )DisketteExtension; __cil_tmp101 = __cil_tmp100 + __cil_tmp99; __cil_tmp102 = (UCHAR *)__cil_tmp101; __cil_tmp103 = (void *)__cil_tmp102; ntStatus = FlFdcDeviceIo(__cil_tmp93, __cil_tmp98, __cil_tmp103); } if (ntStatus >= 0L) { { ntStatus = FlRecalibrateDrive(DisketteExtension); } } else { } } else { { while (1) { while_90_continue: /* CIL Label */ ; goto while_90_break; } while_90_break: /* CIL Label */ ; } } } else { { while (1) { while_91_continue: /* CIL Label */ ; goto while_91_break; } while_91_break: /* CIL Label */ ; } } } if (ntStatus >= 0L) { __cil_tmp104 = (unsigned int )DisketteExtension; __cil_tmp105 = __cil_tmp104 + 140; __cil_tmp106 = (unsigned int )DisketteExtension; __cil_tmp107 = __cil_tmp106 + 216; mem_127 = (DRIVE_MEDIA_TYPE *)__cil_tmp105; mem_128 = (DRIVE_MEDIA_TYPE *)__cil_tmp107; *mem_127 = *mem_128; } else { __cil_tmp108 = (unsigned int )DisketteExtension; __cil_tmp109 = __cil_tmp108 + 140; mem_129 = (DRIVE_MEDIA_TYPE *)__cil_tmp109; *mem_129 = (enum _DRIVE_MEDIA_TYPE )0; { while (1) { while_92_continue: /* CIL Label */ ; goto while_92_break; } while_92_break: /* CIL Label */ ; } } return (ntStatus); } } NTSTATUS FlRecalibrateDrive(PDISKETTE_EXTENSION DisketteExtension ) { NTSTATUS ntStatus ; UCHAR recalibrateCount ; UCHAR fifoBuffer[2] ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; UCHAR *__cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; UCHAR *__cil_tmp24 ; void *__cil_tmp25 ; struct _MDL *__cil_tmp26 ; int __cil_tmp27 ; KUSER_SHARED_DATA *__cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp31 ; int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; UCHAR *__cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; UCHAR *__cil_tmp64 ; void *__cil_tmp65 ; struct _MDL *__cil_tmp66 ; int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; unsigned int __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; UCHAR __cil_tmp84 ; int __cil_tmp85 ; int __cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; unsigned int __cil_tmp90 ; UCHAR __cil_tmp91 ; int __cil_tmp92 ; unsigned int __cil_tmp93 ; unsigned int __cil_tmp94 ; int __cil_tmp95 ; int __cil_tmp96 ; int __cil_tmp97 ; int __cil_tmp98 ; int __cil_tmp99 ; UCHAR *mem_100 ; UCHAR *mem_101 ; UCHAR *mem_102 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_103 ; UCHAR *mem_104 ; UCHAR *mem_105 ; UCHAR *mem_106 ; UCHAR *mem_107 ; UCHAR *mem_108 ; UCHAR *mem_109 ; UCHAR *mem_110 ; UCHAR *mem_111 ; UCHAR *mem_112 ; UCHAR *mem_113 ; UCHAR *mem_114 ; UCHAR *mem_115 ; UCHAR *mem_116 ; BOOLEAN *mem_117 ; { recalibrateCount = (unsigned char)0; { while (1) { while_93_continue: /* CIL Label */ ; { __cil_tmp5 = 0 * 1U; __cil_tmp6 = 112 + __cil_tmp5; __cil_tmp7 = (unsigned int )DisketteExtension; __cil_tmp8 = __cil_tmp7 + __cil_tmp6; mem_100 = (UCHAR *)__cil_tmp8; *mem_100 = (unsigned char)11; __cil_tmp9 = 1 * 1U; __cil_tmp10 = 112 + __cil_tmp9; __cil_tmp11 = (unsigned int )DisketteExtension; __cil_tmp12 = __cil_tmp11 + __cil_tmp10; __cil_tmp13 = (unsigned int )DisketteExtension; __cil_tmp14 = __cil_tmp13 + 248; mem_101 = (UCHAR *)__cil_tmp12; mem_102 = (UCHAR *)__cil_tmp14; *mem_101 = *mem_102; __cil_tmp15 = 0 * 1U; __cil_tmp16 = 112 + __cil_tmp15; __cil_tmp17 = (unsigned int )DisketteExtension; __cil_tmp18 = __cil_tmp17 + __cil_tmp16; __cil_tmp19 = (UCHAR *)__cil_tmp18; __cil_tmp20 = 0 * 1U; __cil_tmp21 = 112 + __cil_tmp20; __cil_tmp22 = (unsigned int )DisketteExtension; __cil_tmp23 = __cil_tmp22 + __cil_tmp21; __cil_tmp24 = (UCHAR *)__cil_tmp23; __cil_tmp25 = (void *)0; __cil_tmp26 = (struct _MDL *)__cil_tmp25; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp19, __cil_tmp24, __cil_tmp26, 0UL, 0UL); } { __cil_tmp27 = ntStatus >= 0L; if (! __cil_tmp27) { { while (1) { while_94_continue: /* CIL Label */ ; goto while_94_break; } while_94_break: /* CIL Label */ ; } } else { } } if (ntStatus >= 0L) { { __cil_tmp28 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp29 = (unsigned int )__cil_tmp28; __cil_tmp30 = __cil_tmp29 + 732; mem_103 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp30; __cil_tmp31 = *mem_103; __cil_tmp32 = (int )__cil_tmp31; if (__cil_tmp32 == 1) { { __cil_tmp33 = 0 * 1U; __cil_tmp34 = (unsigned int )(fifoBuffer) + __cil_tmp33; __cil_tmp35 = 0 * 1U; __cil_tmp36 = 112 + __cil_tmp35; __cil_tmp37 = (unsigned int )DisketteExtension; __cil_tmp38 = __cil_tmp37 + __cil_tmp36; mem_104 = (UCHAR *)__cil_tmp34; mem_105 = (UCHAR *)__cil_tmp38; *mem_104 = *mem_105; __cil_tmp39 = 1 * 1U; __cil_tmp40 = (unsigned int )(fifoBuffer) + __cil_tmp39; __cil_tmp41 = 1 * 1U; __cil_tmp42 = 112 + __cil_tmp41; __cil_tmp43 = (unsigned int )DisketteExtension; __cil_tmp44 = __cil_tmp43 + __cil_tmp42; mem_106 = (UCHAR *)__cil_tmp40; mem_107 = (UCHAR *)__cil_tmp44; *mem_106 = *mem_107; __cil_tmp45 = 0 * 1U; __cil_tmp46 = 112 + __cil_tmp45; __cil_tmp47 = (unsigned int )DisketteExtension; __cil_tmp48 = __cil_tmp47 + __cil_tmp46; mem_108 = (UCHAR *)__cil_tmp48; *mem_108 = (unsigned char)14; __cil_tmp49 = 1 * 1U; __cil_tmp50 = 112 + __cil_tmp49; __cil_tmp51 = (unsigned int )DisketteExtension; __cil_tmp52 = __cil_tmp51 + __cil_tmp50; __cil_tmp53 = (unsigned int )DisketteExtension; __cil_tmp54 = __cil_tmp53 + 248; mem_109 = (UCHAR *)__cil_tmp52; mem_110 = (UCHAR *)__cil_tmp54; *mem_109 = *mem_110; __cil_tmp55 = 0 * 1U; __cil_tmp56 = 112 + __cil_tmp55; __cil_tmp57 = (unsigned int )DisketteExtension; __cil_tmp58 = __cil_tmp57 + __cil_tmp56; __cil_tmp59 = (UCHAR *)__cil_tmp58; __cil_tmp60 = 0 * 1U; __cil_tmp61 = 112 + __cil_tmp60; __cil_tmp62 = (unsigned int )DisketteExtension; __cil_tmp63 = __cil_tmp62 + __cil_tmp61; __cil_tmp64 = (UCHAR *)__cil_tmp63; __cil_tmp65 = (void *)0; __cil_tmp66 = (struct _MDL *)__cil_tmp65; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp59, __cil_tmp64, __cil_tmp66, 0UL, 0UL); } { __cil_tmp67 = ntStatus >= 0L; if (! __cil_tmp67) { { while (1) { while_95_continue: /* CIL Label */ ; goto while_95_break; } while_95_break: /* CIL Label */ ; } return (ntStatus); } else { } } __cil_tmp68 = 0 * 1U; __cil_tmp69 = 112 + __cil_tmp68; __cil_tmp70 = (unsigned int )DisketteExtension; __cil_tmp71 = __cil_tmp70 + __cil_tmp69; __cil_tmp72 = 0 * 1U; __cil_tmp73 = (unsigned int )(fifoBuffer) + __cil_tmp72; mem_111 = (UCHAR *)__cil_tmp71; mem_112 = (UCHAR *)__cil_tmp73; *mem_111 = *mem_112; __cil_tmp74 = 1 * 1U; __cil_tmp75 = 112 + __cil_tmp74; __cil_tmp76 = (unsigned int )DisketteExtension; __cil_tmp77 = __cil_tmp76 + __cil_tmp75; __cil_tmp78 = 1 * 1U; __cil_tmp79 = (unsigned int )(fifoBuffer) + __cil_tmp78; mem_113 = (UCHAR *)__cil_tmp77; mem_114 = (UCHAR *)__cil_tmp79; *mem_113 = *mem_114; } else { } } { __cil_tmp80 = 0 * 1U; __cil_tmp81 = 112 + __cil_tmp80; __cil_tmp82 = (unsigned int )DisketteExtension; __cil_tmp83 = __cil_tmp82 + __cil_tmp81; mem_115 = (UCHAR *)__cil_tmp83; __cil_tmp84 = *mem_115; __cil_tmp85 = (int )__cil_tmp84; __cil_tmp86 = __cil_tmp85 & 32; if (! __cil_tmp86) { goto _L; } else { { __cil_tmp87 = 1 * 1U; __cil_tmp88 = 112 + __cil_tmp87; __cil_tmp89 = (unsigned int )DisketteExtension; __cil_tmp90 = __cil_tmp89 + __cil_tmp88; mem_116 = (UCHAR *)__cil_tmp90; __cil_tmp91 = *mem_116; __cil_tmp92 = (int )__cil_tmp91; if (__cil_tmp92 != 0) { _L: { while (1) { while_96_continue: /* CIL Label */ ; goto while_96_break; } while_96_break: /* CIL Label */ ; } __cil_tmp93 = (unsigned int )DisketteExtension; __cil_tmp94 = __cil_tmp93 + 104; mem_117 = (BOOLEAN *)__cil_tmp94; *mem_117 = (unsigned char)1; ntStatus = -1073741464L; } else { } } } } } else { } __cil_tmp95 = (int )recalibrateCount; __cil_tmp96 = __cil_tmp95 + 1; recalibrateCount = (unsigned char )__cil_tmp96; { __cil_tmp97 = ntStatus >= 0L; if (! __cil_tmp97) { { __cil_tmp98 = (int )recalibrateCount; __cil_tmp99 = __cil_tmp98 < 2; if (! __cil_tmp99) { goto while_93_break; } else { } } } else { goto while_93_break; } } } while_93_break: /* CIL Label */ ; } { while (1) { while_97_continue: /* CIL Label */ ; goto while_97_break; } while_97_break: /* CIL Label */ ; } return (ntStatus); } } NTSTATUS FlDetermineMediaType(PDISKETTE_EXTENSION DisketteExtension ) { NTSTATUS ntStatus ; PDRIVE_MEDIA_CONSTANTS driveMediaConstants ; BOOLEAN mediaTypesExhausted ; ULONG retries ; USHORT sectorLengthCode ; PBOOT_SECTOR_INFO bootSector ; LARGE_INTEGER offset ; PIRP irp ; int tmp ; PVOID tmp___0 ; int tmp___1 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; UCHAR __cil_tmp19 ; int __cil_tmp20 ; PDRIVE_MEDIA_LIMITS __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; DRIVE_MEDIA_TYPE __cil_tmp26 ; unsigned int __cil_tmp27 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp28 ; KUSER_SHARED_DATA *__cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp32 ; int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; DRIVE_MEDIA_TYPE __cil_tmp36 ; unsigned int __cil_tmp37 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; UCHAR __cil_tmp41 ; int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; DRIVE_MEDIA_TYPE __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; UCHAR __cil_tmp53 ; int __cil_tmp54 ; int __cil_tmp55 ; int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; UCHAR __cil_tmp59 ; int __cil_tmp60 ; int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; UCHAR *__cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; UCHAR *__cil_tmp75 ; void *__cil_tmp76 ; struct _MDL *__cil_tmp77 ; int __cil_tmp78 ; unsigned int __cil_tmp79 ; unsigned int __cil_tmp80 ; UCHAR __cil_tmp81 ; int __cil_tmp82 ; int __cil_tmp83 ; int __cil_tmp84 ; unsigned int __cil_tmp85 ; unsigned int __cil_tmp86 ; UCHAR __cil_tmp87 ; int __cil_tmp88 ; int __cil_tmp89 ; unsigned char __cil_tmp90 ; int __cil_tmp91 ; unsigned int __cil_tmp92 ; unsigned int __cil_tmp93 ; unsigned int __cil_tmp94 ; unsigned int __cil_tmp95 ; UCHAR __cil_tmp96 ; int __cil_tmp97 ; int __cil_tmp98 ; unsigned int __cil_tmp99 ; unsigned int __cil_tmp100 ; unsigned int __cil_tmp101 ; unsigned int __cil_tmp102 ; UCHAR __cil_tmp103 ; int __cil_tmp104 ; unsigned int __cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; unsigned int __cil_tmp108 ; UCHAR __cil_tmp109 ; int __cil_tmp110 ; KUSER_SHARED_DATA *__cil_tmp111 ; unsigned int __cil_tmp112 ; unsigned int __cil_tmp113 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp114 ; int __cil_tmp115 ; int __cil_tmp116 ; unsigned int __cil_tmp117 ; unsigned int __cil_tmp118 ; unsigned int __cil_tmp119 ; unsigned int __cil_tmp120 ; UCHAR __cil_tmp121 ; int __cil_tmp122 ; unsigned int __cil_tmp123 ; unsigned int __cil_tmp124 ; unsigned int __cil_tmp125 ; unsigned int __cil_tmp126 ; DRIVE_MEDIA_TYPE __cil_tmp127 ; int __cil_tmp128 ; int __cil_tmp129 ; unsigned int __cil_tmp130 ; unsigned int __cil_tmp131 ; unsigned int __cil_tmp132 ; unsigned int __cil_tmp133 ; DRIVE_MEDIA_TYPE __cil_tmp134 ; unsigned int __cil_tmp135 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp136 ; unsigned int __cil_tmp137 ; unsigned int __cil_tmp138 ; UCHAR __cil_tmp139 ; int __cil_tmp140 ; PDRIVE_MEDIA_LIMITS __cil_tmp141 ; unsigned int __cil_tmp142 ; unsigned int __cil_tmp143 ; DRIVE_MEDIA_TYPE __cil_tmp144 ; char __cil_tmp145 ; int __cil_tmp146 ; unsigned int __cil_tmp147 ; unsigned int __cil_tmp148 ; DRIVE_MEDIA_TYPE __cil_tmp149 ; char __cil_tmp150 ; int __cil_tmp151 ; unsigned int __cil_tmp152 ; unsigned int __cil_tmp153 ; KUSER_SHARED_DATA *__cil_tmp154 ; unsigned int __cil_tmp155 ; unsigned int __cil_tmp156 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp157 ; int __cil_tmp158 ; unsigned int __cil_tmp159 ; unsigned int __cil_tmp160 ; unsigned int __cil_tmp161 ; unsigned int __cil_tmp162 ; unsigned int __cil_tmp163 ; unsigned int __cil_tmp164 ; USHORT __cil_tmp165 ; unsigned int __cil_tmp166 ; unsigned int __cil_tmp167 ; unsigned int __cil_tmp168 ; unsigned int __cil_tmp169 ; UCHAR __cil_tmp170 ; int __cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; UCHAR __cil_tmp174 ; int __cil_tmp175 ; int __cil_tmp176 ; unsigned int __cil_tmp177 ; unsigned int __cil_tmp178 ; UCHAR __cil_tmp179 ; int __cil_tmp180 ; unsigned int __cil_tmp181 ; unsigned int __cil_tmp182 ; USHORT __cil_tmp183 ; int __cil_tmp184 ; int __cil_tmp185 ; int __cil_tmp186 ; int __cil_tmp187 ; unsigned int __cil_tmp188 ; unsigned int __cil_tmp189 ; unsigned int __cil_tmp190 ; unsigned int __cil_tmp191 ; DRIVE_MEDIA_TYPE __cil_tmp192 ; unsigned int __cil_tmp193 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp194 ; KUSER_SHARED_DATA *__cil_tmp195 ; unsigned int __cil_tmp196 ; unsigned int __cil_tmp197 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp198 ; int __cil_tmp199 ; enum _POOL_TYPE __cil_tmp200 ; unsigned long __cil_tmp201 ; unsigned int __cil_tmp202 ; unsigned int __cil_tmp203 ; LARGE_INTEGER *__cil_tmp204 ; unsigned int __cil_tmp205 ; unsigned int __cil_tmp206 ; LONG __cil_tmp207 ; KUSER_SHARED_DATA *__cil_tmp208 ; unsigned int __cil_tmp209 ; unsigned int __cil_tmp210 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp211 ; int __cil_tmp212 ; unsigned int __cil_tmp213 ; unsigned int __cil_tmp214 ; PDEVICE_OBJECT __cil_tmp215 ; void *__cil_tmp216 ; unsigned long __cil_tmp217 ; void *__cil_tmp218 ; struct _IO_STATUS_BLOCK *__cil_tmp219 ; void *__cil_tmp220 ; unsigned int __cil_tmp221 ; unsigned int __cil_tmp222 ; unsigned int __cil_tmp223 ; unsigned int __cil_tmp224 ; CHAR __cil_tmp225 ; int __cil_tmp226 ; int __cil_tmp227 ; unsigned int __cil_tmp228 ; unsigned int __cil_tmp229 ; unsigned int __cil_tmp230 ; unsigned int __cil_tmp231 ; unsigned int __cil_tmp232 ; unsigned int __cil_tmp233 ; unsigned int __cil_tmp234 ; unsigned int __cil_tmp235 ; unsigned int __cil_tmp236 ; unsigned int __cil_tmp237 ; struct _IO_STACK_LOCATION *__cil_tmp238 ; unsigned int __cil_tmp239 ; unsigned int __cil_tmp240 ; PMDL __cil_tmp241 ; unsigned int __cil_tmp242 ; unsigned int __cil_tmp243 ; PMDL __cil_tmp244 ; void *__cil_tmp245 ; int __cil_tmp246 ; unsigned int __cil_tmp247 ; unsigned int __cil_tmp248 ; unsigned int __cil_tmp249 ; unsigned int __cil_tmp250 ; DRIVE_MEDIA_TYPE __cil_tmp251 ; int __cil_tmp252 ; int __cil_tmp253 ; unsigned int __cil_tmp254 ; unsigned int __cil_tmp255 ; unsigned int __cil_tmp256 ; unsigned int __cil_tmp257 ; DRIVE_MEDIA_TYPE __cil_tmp258 ; unsigned int __cil_tmp259 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp260 ; unsigned int __cil_tmp261 ; unsigned int __cil_tmp262 ; UCHAR __cil_tmp263 ; int __cil_tmp264 ; PDRIVE_MEDIA_LIMITS __cil_tmp265 ; unsigned int __cil_tmp266 ; unsigned int __cil_tmp267 ; DRIVE_MEDIA_TYPE __cil_tmp268 ; char __cil_tmp269 ; int __cil_tmp270 ; unsigned int __cil_tmp271 ; unsigned int __cil_tmp272 ; DRIVE_MEDIA_TYPE __cil_tmp273 ; char __cil_tmp274 ; int __cil_tmp275 ; unsigned int __cil_tmp276 ; unsigned int __cil_tmp277 ; int __cil_tmp278 ; int __cil_tmp279 ; int __cil_tmp280 ; unsigned int __cil_tmp281 ; unsigned int __cil_tmp282 ; unsigned int __cil_tmp283 ; unsigned int __cil_tmp284 ; unsigned int __cil_tmp285 ; unsigned int __cil_tmp286 ; USHORT __cil_tmp287 ; unsigned int __cil_tmp288 ; unsigned int __cil_tmp289 ; unsigned int __cil_tmp290 ; unsigned int __cil_tmp291 ; UCHAR __cil_tmp292 ; int __cil_tmp293 ; unsigned int __cil_tmp294 ; unsigned int __cil_tmp295 ; UCHAR __cil_tmp296 ; int __cil_tmp297 ; int __cil_tmp298 ; unsigned int __cil_tmp299 ; unsigned int __cil_tmp300 ; UCHAR __cil_tmp301 ; int __cil_tmp302 ; unsigned int __cil_tmp303 ; unsigned int __cil_tmp304 ; USHORT __cil_tmp305 ; int __cil_tmp306 ; int __cil_tmp307 ; int __cil_tmp308 ; int __cil_tmp309 ; unsigned int __cil_tmp310 ; unsigned int __cil_tmp311 ; unsigned int __cil_tmp312 ; unsigned int __cil_tmp313 ; DRIVE_MEDIA_TYPE __cil_tmp314 ; unsigned int __cil_tmp315 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp316 ; BOOLEAN *mem_317 ; UCHAR *mem_318 ; DRIVE_MEDIA_TYPE *mem_319 ; DRIVE_MEDIA_TYPE *mem_320 ; DRIVE_MEDIA_TYPE *mem_321 ; DRIVE_MEDIA_CONSTANTS *mem_322 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_323 ; DRIVE_MEDIA_TYPE *mem_324 ; UCHAR *mem_325 ; DRIVE_MEDIA_TYPE *mem_326 ; UCHAR *mem_327 ; UCHAR *mem_328 ; UCHAR *mem_329 ; UCHAR *mem_330 ; UCHAR *mem_331 ; UCHAR *mem_332 ; UCHAR *mem_333 ; UCHAR *mem_334 ; UCHAR *mem_335 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_336 ; UCHAR *mem_337 ; DRIVE_MEDIA_TYPE *mem_338 ; DRIVE_MEDIA_TYPE *mem_339 ; DRIVE_MEDIA_TYPE *mem_340 ; DRIVE_MEDIA_CONSTANTS *mem_341 ; UCHAR *mem_342 ; DRIVE_MEDIA_TYPE *mem_343 ; DRIVE_MEDIA_TYPE *mem_344 ; MEDIA_TYPE *mem_345 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_346 ; MEDIA_TYPE *mem_347 ; MEDIA_TYPE *mem_348 ; USHORT *mem_349 ; ULONG *mem_350 ; UCHAR *mem_351 ; UCHAR *mem_352 ; UCHAR *mem_353 ; USHORT *mem_354 ; ULONG *mem_355 ; DRIVE_MEDIA_TYPE *mem_356 ; DRIVE_MEDIA_CONSTANTS *mem_357 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_358 ; LONG *mem_359 ; LONG *mem_360 ; ULONG *mem_361 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_362 ; PDEVICE_OBJECT *mem_363 ; CHAR *mem_364 ; CHAR *mem_365 ; struct _IO_STACK_LOCATION **mem_366 ; struct _IO_STACK_LOCATION **mem_367 ; PMDL *mem_368 ; PMDL *mem_369 ; DRIVE_MEDIA_TYPE *mem_370 ; DRIVE_MEDIA_TYPE *mem_371 ; DRIVE_MEDIA_TYPE *mem_372 ; DRIVE_MEDIA_CONSTANTS *mem_373 ; UCHAR *mem_374 ; DRIVE_MEDIA_TYPE *mem_375 ; DRIVE_MEDIA_TYPE *mem_376 ; MEDIA_TYPE *mem_377 ; MEDIA_TYPE *mem_378 ; MEDIA_TYPE *mem_379 ; USHORT *mem_380 ; ULONG *mem_381 ; UCHAR *mem_382 ; UCHAR *mem_383 ; UCHAR *mem_384 ; USHORT *mem_385 ; ULONG *mem_386 ; DRIVE_MEDIA_TYPE *mem_387 ; DRIVE_MEDIA_CONSTANTS *mem_388 ; { retries = 0UL; { while (1) { while_98_continue: /* CIL Label */ ; goto while_98_break; } while_98_break: /* CIL Label */ ; } __cil_tmp13 = (unsigned int )DisketteExtension; __cil_tmp14 = __cil_tmp13 + 250; mem_317 = (BOOLEAN *)__cil_tmp14; *mem_317 = (unsigned char)0; retries = 0UL; { while (1) { while_99_continue: /* CIL Label */ ; if (retries < 3UL) { } else { goto while_99_break; } if (retries) { { while (1) { while_100_continue: /* CIL Label */ ; goto while_100_break; } while_100_break: /* CIL Label */ ; } { FlInitializeControllerHardware(DisketteExtension); } } else { } __cil_tmp15 = (unsigned int )DisketteExtension; __cil_tmp16 = __cil_tmp15 + 216; __cil_tmp17 = (unsigned int )DisketteExtension; __cil_tmp18 = __cil_tmp17 + 174; mem_318 = (UCHAR *)__cil_tmp18; __cil_tmp19 = *mem_318; __cil_tmp20 = (int )__cil_tmp19; __cil_tmp21 = DriveMediaLimits + __cil_tmp20; mem_319 = (DRIVE_MEDIA_TYPE *)__cil_tmp16; mem_320 = (DRIVE_MEDIA_TYPE *)__cil_tmp21; *mem_319 = *mem_320; __cil_tmp22 = (unsigned int )DisketteExtension; __cil_tmp23 = __cil_tmp22 + 308; __cil_tmp24 = (unsigned int )DisketteExtension; __cil_tmp25 = __cil_tmp24 + 216; mem_321 = (DRIVE_MEDIA_TYPE *)__cil_tmp25; __cil_tmp26 = *mem_321; __cil_tmp27 = (unsigned int )__cil_tmp26; __cil_tmp28 = DriveMediaConstants + __cil_tmp27; mem_322 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp23; *mem_322 = *__cil_tmp28; mediaTypesExhausted = (unsigned char)0; { while (1) { while_101_continue: /* CIL Label */ ; { __cil_tmp29 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp30 = (unsigned int )__cil_tmp29; __cil_tmp31 = __cil_tmp30 + 732; mem_323 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp31; __cil_tmp32 = *mem_323; __cil_tmp33 = (int )__cil_tmp32; if (__cil_tmp33 == 1) { { __cil_tmp34 = (unsigned int )DisketteExtension; __cil_tmp35 = __cil_tmp34 + 216; mem_324 = (DRIVE_MEDIA_TYPE *)__cil_tmp35; __cil_tmp36 = *mem_324; __cil_tmp37 = (unsigned int )__cil_tmp36; __cil_tmp38 = DriveMediaConstants + __cil_tmp37; __cil_tmp39 = (unsigned int )__cil_tmp38; __cil_tmp40 = __cil_tmp39 + 35; mem_325 = (UCHAR *)__cil_tmp40; __cil_tmp41 = *mem_325; sectorLengthCode = (unsigned short )__cil_tmp41; FlHdbit(DisketteExtension); } } else { } } { ntStatus = FlDatarateSpecifyConfigure(DisketteExtension); } { __cil_tmp42 = ntStatus >= 0L; if (! __cil_tmp42) { { while (1) { while_102_continue: /* CIL Label */ ; goto while_102_break; } while_102_break: /* CIL Label */ ; } mediaTypesExhausted = (unsigned char)1; } else { { __cil_tmp43 = (unsigned int )DisketteExtension; __cil_tmp44 = __cil_tmp43 + 216; mem_326 = (DRIVE_MEDIA_TYPE *)__cil_tmp44; __cil_tmp45 = *mem_326; __cil_tmp46 = (unsigned int )__cil_tmp45; driveMediaConstants = DriveMediaConstants + __cil_tmp46; __cil_tmp47 = 1 * 1U; __cil_tmp48 = 112 + __cil_tmp47; __cil_tmp49 = (unsigned int )DisketteExtension; __cil_tmp50 = __cil_tmp49 + __cil_tmp48; __cil_tmp51 = (unsigned int )driveMediaConstants; __cil_tmp52 = __cil_tmp51 + 51; mem_327 = (UCHAR *)__cil_tmp52; __cil_tmp53 = *mem_327; __cil_tmp54 = (int )__cil_tmp53; __cil_tmp55 = __cil_tmp54 - 1; __cil_tmp56 = __cil_tmp55 << 2; __cil_tmp57 = (unsigned int )DisketteExtension; __cil_tmp58 = __cil_tmp57 + 248; mem_328 = (UCHAR *)__cil_tmp58; __cil_tmp59 = *mem_328; __cil_tmp60 = (int )__cil_tmp59; __cil_tmp61 = __cil_tmp60 | __cil_tmp56; mem_329 = (UCHAR *)__cil_tmp50; *mem_329 = (unsigned char )__cil_tmp61; __cil_tmp62 = 0 * 1U; __cil_tmp63 = 112 + __cil_tmp62; __cil_tmp64 = (unsigned int )DisketteExtension; __cil_tmp65 = __cil_tmp64 + __cil_tmp63; mem_330 = (UCHAR *)__cil_tmp65; *mem_330 = (unsigned char)84; __cil_tmp66 = 0 * 1U; __cil_tmp67 = 112 + __cil_tmp66; __cil_tmp68 = (unsigned int )DisketteExtension; __cil_tmp69 = __cil_tmp68 + __cil_tmp67; __cil_tmp70 = (UCHAR *)__cil_tmp69; __cil_tmp71 = 0 * 1U; __cil_tmp72 = 112 + __cil_tmp71; __cil_tmp73 = (unsigned int )DisketteExtension; __cil_tmp74 = __cil_tmp73 + __cil_tmp72; __cil_tmp75 = (UCHAR *)__cil_tmp74; __cil_tmp76 = (void *)0; __cil_tmp77 = (struct _MDL *)__cil_tmp76; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp70, __cil_tmp75, __cil_tmp77, 0UL, 0UL); } { __cil_tmp78 = ntStatus >= 0L; if (! __cil_tmp78) { goto _L; } else { { __cil_tmp79 = (unsigned int )driveMediaConstants; __cil_tmp80 = __cil_tmp79 + 51; mem_331 = (UCHAR *)__cil_tmp80; __cil_tmp81 = *mem_331; __cil_tmp82 = (int )__cil_tmp81; __cil_tmp83 = __cil_tmp82 - 1; __cil_tmp84 = __cil_tmp83 << 2; __cil_tmp85 = (unsigned int )DisketteExtension; __cil_tmp86 = __cil_tmp85 + 248; mem_332 = (UCHAR *)__cil_tmp86; __cil_tmp87 = *mem_332; __cil_tmp88 = (int )__cil_tmp87; __cil_tmp89 = __cil_tmp88 | __cil_tmp84; __cil_tmp90 = (unsigned char )__cil_tmp89; __cil_tmp91 = (int )__cil_tmp90; __cil_tmp92 = 0 * 1U; __cil_tmp93 = 112 + __cil_tmp92; __cil_tmp94 = (unsigned int )DisketteExtension; __cil_tmp95 = __cil_tmp94 + __cil_tmp93; mem_333 = (UCHAR *)__cil_tmp95; __cil_tmp96 = *mem_333; __cil_tmp97 = (int )__cil_tmp96; __cil_tmp98 = __cil_tmp97 & -33; if (__cil_tmp98 != __cil_tmp91) { goto _L; } else { { __cil_tmp99 = 1 * 1U; __cil_tmp100 = 112 + __cil_tmp99; __cil_tmp101 = (unsigned int )DisketteExtension; __cil_tmp102 = __cil_tmp101 + __cil_tmp100; mem_334 = (UCHAR *)__cil_tmp102; __cil_tmp103 = *mem_334; __cil_tmp104 = (int )__cil_tmp103; if (__cil_tmp104 != 0) { goto _L; } else { { __cil_tmp105 = 2 * 1U; __cil_tmp106 = 112 + __cil_tmp105; __cil_tmp107 = (unsigned int )DisketteExtension; __cil_tmp108 = __cil_tmp107 + __cil_tmp106; mem_335 = (UCHAR *)__cil_tmp108; __cil_tmp109 = *mem_335; __cil_tmp110 = (int )__cil_tmp109; if (__cil_tmp110 != 0) { goto _L; } else { { __cil_tmp111 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp112 = (unsigned int )__cil_tmp111; __cil_tmp113 = __cil_tmp112 + 732; mem_336 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp113; __cil_tmp114 = *mem_336; __cil_tmp115 = (int )__cil_tmp114; if (__cil_tmp115 == 1) { { __cil_tmp116 = (int )sectorLengthCode; __cil_tmp117 = 6 * 1U; __cil_tmp118 = 112 + __cil_tmp117; __cil_tmp119 = (unsigned int )DisketteExtension; __cil_tmp120 = __cil_tmp119 + __cil_tmp118; mem_337 = (UCHAR *)__cil_tmp120; __cil_tmp121 = *mem_337; __cil_tmp122 = (int )__cil_tmp121; if (__cil_tmp122 != __cil_tmp116) { _L: { while (1) { while_103_continue: /* CIL Label */ ; goto while_103_break; } while_103_break: /* CIL Label */ ; } __cil_tmp123 = (unsigned int )DisketteExtension; __cil_tmp124 = __cil_tmp123 + 216; __cil_tmp125 = (unsigned int )DisketteExtension; __cil_tmp126 = __cil_tmp125 + 216; mem_338 = (DRIVE_MEDIA_TYPE *)__cil_tmp126; __cil_tmp127 = *mem_338; __cil_tmp128 = (int )__cil_tmp127; __cil_tmp129 = __cil_tmp128 - 1; mem_339 = (DRIVE_MEDIA_TYPE *)__cil_tmp124; *mem_339 = (enum _DRIVE_MEDIA_TYPE )__cil_tmp129; __cil_tmp130 = (unsigned int )DisketteExtension; __cil_tmp131 = __cil_tmp130 + 308; __cil_tmp132 = (unsigned int )DisketteExtension; __cil_tmp133 = __cil_tmp132 + 216; mem_340 = (DRIVE_MEDIA_TYPE *)__cil_tmp133; __cil_tmp134 = *mem_340; __cil_tmp135 = (unsigned int )__cil_tmp134; __cil_tmp136 = DriveMediaConstants + __cil_tmp135; mem_341 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp131; *mem_341 = *__cil_tmp136; if (ntStatus != -1073741661L) { ntStatus = -1073741804L; } else { } { __cil_tmp137 = (unsigned int )DisketteExtension; __cil_tmp138 = __cil_tmp137 + 174; mem_342 = (UCHAR *)__cil_tmp138; __cil_tmp139 = *mem_342; __cil_tmp140 = (int )__cil_tmp139; __cil_tmp141 = DriveMediaLimits + __cil_tmp140; __cil_tmp142 = (unsigned int )__cil_tmp141; __cil_tmp143 = __cil_tmp142 + 32; mem_343 = (DRIVE_MEDIA_TYPE *)__cil_tmp143; __cil_tmp144 = *mem_343; __cil_tmp145 = (char )__cil_tmp144; __cil_tmp146 = (int )__cil_tmp145; __cil_tmp147 = (unsigned int )DisketteExtension; __cil_tmp148 = __cil_tmp147 + 216; mem_344 = (DRIVE_MEDIA_TYPE *)__cil_tmp148; __cil_tmp149 = *mem_344; __cil_tmp150 = (char )__cil_tmp149; __cil_tmp151 = (int )__cil_tmp150; if (__cil_tmp151 < __cil_tmp146) { __cil_tmp152 = (unsigned int )DisketteExtension; __cil_tmp153 = __cil_tmp152 + 184; mem_345 = (MEDIA_TYPE *)__cil_tmp153; *mem_345 = (enum _MEDIA_TYPE )0; mediaTypesExhausted = (unsigned char)1; { while (1) { while_104_continue: /* CIL Label */ ; goto while_104_break; } while_104_break: /* CIL Label */ ; } } else { } } } else { goto _L___0; } } } else { _L___0: { __cil_tmp154 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp155 = (unsigned int )__cil_tmp154; __cil_tmp156 = __cil_tmp155 + 732; mem_346 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp156; __cil_tmp157 = *mem_346; __cil_tmp158 = (int )__cil_tmp157; if (__cil_tmp158 == 1) { __cil_tmp159 = (unsigned int )DisketteExtension; __cil_tmp160 = __cil_tmp159 + 184; mem_347 = (MEDIA_TYPE *)__cil_tmp160; mem_348 = (MEDIA_TYPE *)driveMediaConstants; *mem_347 = *mem_348; __cil_tmp161 = (unsigned int )DisketteExtension; __cil_tmp162 = __cil_tmp161 + 176; __cil_tmp163 = (unsigned int )driveMediaConstants; __cil_tmp164 = __cil_tmp163 + 36; mem_349 = (USHORT *)__cil_tmp164; __cil_tmp165 = *mem_349; mem_350 = (ULONG *)__cil_tmp162; *mem_350 = (unsigned long )__cil_tmp165; { while (1) { while_105_continue: /* CIL Label */ ; goto while_105_break; } while_105_break: /* CIL Label */ ; } __cil_tmp166 = (unsigned int )DisketteExtension; __cil_tmp167 = __cil_tmp166 + 180; __cil_tmp168 = (unsigned int )driveMediaConstants; __cil_tmp169 = __cil_tmp168 + 51; mem_351 = (UCHAR *)__cil_tmp169; __cil_tmp170 = *mem_351; __cil_tmp171 = (int )__cil_tmp170; __cil_tmp172 = (unsigned int )driveMediaConstants; __cil_tmp173 = __cil_tmp172 + 48; mem_352 = (UCHAR *)__cil_tmp173; __cil_tmp174 = *mem_352; __cil_tmp175 = (int )__cil_tmp174; __cil_tmp176 = 1 + __cil_tmp175; __cil_tmp177 = (unsigned int )driveMediaConstants; __cil_tmp178 = __cil_tmp177 + 38; mem_353 = (UCHAR *)__cil_tmp178; __cil_tmp179 = *mem_353; __cil_tmp180 = (int )__cil_tmp179; __cil_tmp181 = (unsigned int )driveMediaConstants; __cil_tmp182 = __cil_tmp181 + 36; mem_354 = (USHORT *)__cil_tmp182; __cil_tmp183 = *mem_354; __cil_tmp184 = (int )__cil_tmp183; __cil_tmp185 = __cil_tmp184 * __cil_tmp180; __cil_tmp186 = __cil_tmp185 * __cil_tmp176; __cil_tmp187 = __cil_tmp186 * __cil_tmp171; mem_355 = (ULONG *)__cil_tmp167; *mem_355 = (unsigned long )__cil_tmp187; __cil_tmp188 = (unsigned int )DisketteExtension; __cil_tmp189 = __cil_tmp188 + 308; __cil_tmp190 = (unsigned int )DisketteExtension; __cil_tmp191 = __cil_tmp190 + 216; mem_356 = (DRIVE_MEDIA_TYPE *)__cil_tmp191; __cil_tmp192 = *mem_356; __cil_tmp193 = (unsigned int )__cil_tmp192; __cil_tmp194 = DriveMediaConstants + __cil_tmp193; mem_357 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp189; *mem_357 = *__cil_tmp194; { __cil_tmp195 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp196 = (unsigned int )__cil_tmp195; __cil_tmp197 = __cil_tmp196 + 732; mem_358 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp197; __cil_tmp198 = *mem_358; __cil_tmp199 = (int )__cil_tmp198; if (__cil_tmp199 == 1) { tmp = 1024; } else { tmp = 512; } } { __cil_tmp200 = (enum _POOL_TYPE )4; __cil_tmp201 = (unsigned long )tmp; tmp___0 = ExAllocatePoolWithTag(__cil_tmp200, __cil_tmp201, 1886350406UL); bootSector = (struct _BOOT_SECTOR_INFO *)tmp___0; } if (! bootSector) { return (-1073741670L); } else { } __cil_tmp202 = 0 + 4; __cil_tmp203 = (unsigned int )(& offset) + __cil_tmp202; mem_359 = (LONG *)__cil_tmp203; *mem_359 = 0L; __cil_tmp204 = & offset; __cil_tmp205 = 0 + 4; __cil_tmp206 = (unsigned int )(& offset) + __cil_tmp205; mem_360 = (LONG *)__cil_tmp206; __cil_tmp207 = *mem_360; mem_361 = (ULONG *)__cil_tmp204; *mem_361 = (unsigned long )__cil_tmp207; { __cil_tmp208 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp209 = (unsigned int )__cil_tmp208; __cil_tmp210 = __cil_tmp209 + 732; mem_362 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp210; __cil_tmp211 = *mem_362; __cil_tmp212 = (int )__cil_tmp211; if (__cil_tmp212 == 1) { tmp___1 = 1024; } else { tmp___1 = 512; } } { __cil_tmp213 = (unsigned int )DisketteExtension; __cil_tmp214 = __cil_tmp213 + 28; mem_363 = (PDEVICE_OBJECT *)__cil_tmp214; __cil_tmp215 = *mem_363; __cil_tmp216 = (void *)bootSector; __cil_tmp217 = (unsigned long )tmp___1; __cil_tmp218 = (void *)0; __cil_tmp219 = (struct _IO_STATUS_BLOCK *)__cil_tmp218; irp = IoBuildAsynchronousFsdRequest(3UL, __cil_tmp215, __cil_tmp216, __cil_tmp217, & offset, __cil_tmp219); } if (! irp) { { while (1) { while_106_continue: /* CIL Label */ ; goto while_106_break; } while_106_break: /* CIL Label */ ; } { __cil_tmp220 = (void *)bootSector; ExFreePool(__cil_tmp220); } return (-1073741670L); } else { } { __cil_tmp221 = (unsigned int )irp; __cil_tmp222 = __cil_tmp221 + 35; __cil_tmp223 = (unsigned int )irp; __cil_tmp224 = __cil_tmp223 + 35; mem_364 = (CHAR *)__cil_tmp224; __cil_tmp225 = *mem_364; __cil_tmp226 = (int )__cil_tmp225; __cil_tmp227 = __cil_tmp226 - 1; mem_365 = (CHAR *)__cil_tmp222; *mem_365 = (char )__cil_tmp227; __cil_tmp228 = 24 + 8; __cil_tmp229 = 0 + __cil_tmp228; __cil_tmp230 = 64 + __cil_tmp229; __cil_tmp231 = (unsigned int )irp; __cil_tmp232 = __cil_tmp231 + __cil_tmp230; __cil_tmp233 = 24 + 8; __cil_tmp234 = 0 + __cil_tmp233; __cil_tmp235 = 64 + __cil_tmp234; __cil_tmp236 = (unsigned int )irp; __cil_tmp237 = __cil_tmp236 + __cil_tmp235; mem_366 = (struct _IO_STACK_LOCATION **)__cil_tmp237; __cil_tmp238 = *mem_366; mem_367 = (struct _IO_STACK_LOCATION **)__cil_tmp232; *mem_367 = __cil_tmp238 - 1; ntStatus = FlReadWrite(DisketteExtension, irp, (unsigned char)1); } { while (1) { while_107_continue: /* CIL Label */ ; goto while_107_break; } while_107_break: /* CIL Label */ ; } { __cil_tmp239 = (unsigned int )irp; __cil_tmp240 = __cil_tmp239 + 4; mem_368 = (PMDL *)__cil_tmp240; __cil_tmp241 = *mem_368; MmUnlockPages(__cil_tmp241); __cil_tmp242 = (unsigned int )irp; __cil_tmp243 = __cil_tmp242 + 4; mem_369 = (PMDL *)__cil_tmp243; __cil_tmp244 = *mem_369; IoFreeMdl(__cil_tmp244); IoFreeIrp(irp); __cil_tmp245 = (void *)bootSector; ExFreePool(__cil_tmp245); } { __cil_tmp246 = ntStatus >= 0L; if (! __cil_tmp246) { { while (1) { while_108_continue: /* CIL Label */ ; goto while_108_break; } while_108_break: /* CIL Label */ ; } __cil_tmp247 = (unsigned int )DisketteExtension; __cil_tmp248 = __cil_tmp247 + 216; __cil_tmp249 = (unsigned int )DisketteExtension; __cil_tmp250 = __cil_tmp249 + 216; mem_370 = (DRIVE_MEDIA_TYPE *)__cil_tmp250; __cil_tmp251 = *mem_370; __cil_tmp252 = (int )__cil_tmp251; __cil_tmp253 = __cil_tmp252 - 1; mem_371 = (DRIVE_MEDIA_TYPE *)__cil_tmp248; *mem_371 = (enum _DRIVE_MEDIA_TYPE )__cil_tmp253; __cil_tmp254 = (unsigned int )DisketteExtension; __cil_tmp255 = __cil_tmp254 + 308; __cil_tmp256 = (unsigned int )DisketteExtension; __cil_tmp257 = __cil_tmp256 + 216; mem_372 = (DRIVE_MEDIA_TYPE *)__cil_tmp257; __cil_tmp258 = *mem_372; __cil_tmp259 = (unsigned int )__cil_tmp258; __cil_tmp260 = DriveMediaConstants + __cil_tmp259; mem_373 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp255; *mem_373 = *__cil_tmp260; if (ntStatus != -1073741661L) { ntStatus = -1073741804L; } else { } { __cil_tmp261 = (unsigned int )DisketteExtension; __cil_tmp262 = __cil_tmp261 + 174; mem_374 = (UCHAR *)__cil_tmp262; __cil_tmp263 = *mem_374; __cil_tmp264 = (int )__cil_tmp263; __cil_tmp265 = DriveMediaLimits + __cil_tmp264; __cil_tmp266 = (unsigned int )__cil_tmp265; __cil_tmp267 = __cil_tmp266 + 32; mem_375 = (DRIVE_MEDIA_TYPE *)__cil_tmp267; __cil_tmp268 = *mem_375; __cil_tmp269 = (char )__cil_tmp268; __cil_tmp270 = (int )__cil_tmp269; __cil_tmp271 = (unsigned int )DisketteExtension; __cil_tmp272 = __cil_tmp271 + 216; mem_376 = (DRIVE_MEDIA_TYPE *)__cil_tmp272; __cil_tmp273 = *mem_376; __cil_tmp274 = (char )__cil_tmp273; __cil_tmp275 = (int )__cil_tmp274; if (__cil_tmp275 < __cil_tmp270) { __cil_tmp276 = (unsigned int )DisketteExtension; __cil_tmp277 = __cil_tmp276 + 184; mem_377 = (MEDIA_TYPE *)__cil_tmp277; *mem_377 = (enum _MEDIA_TYPE )0; mediaTypesExhausted = (unsigned char)1; { while (1) { while_109_continue: /* CIL Label */ ; goto while_109_break; } while_109_break: /* CIL Label */ ; } } else { } } } else { } } } else { } } } } } } } } } } } } } } { __cil_tmp278 = ntStatus >= 0L; if (! __cil_tmp278) { { __cil_tmp279 = ! mediaTypesExhausted; if (! __cil_tmp279) { goto while_101_break; } else { } } } else { goto while_101_break; } } } while_101_break: /* CIL Label */ ; } if (ntStatus >= 0L) { { while (1) { while_110_continue: /* CIL Label */ ; goto while_110_break; } while_110_break: /* CIL Label */ ; } goto while_99_break; } else { } retries = retries + 1UL; } while_99_break: /* CIL Label */ ; } { __cil_tmp280 = ntStatus >= 0L; if (! __cil_tmp280) { goto _L___1; } else { if (mediaTypesExhausted) { _L___1: { while (1) { while_111_continue: /* CIL Label */ ; goto while_111_break; } while_111_break: /* CIL Label */ ; } return (ntStatus); } else { } } } __cil_tmp281 = (unsigned int )DisketteExtension; __cil_tmp282 = __cil_tmp281 + 184; mem_378 = (MEDIA_TYPE *)__cil_tmp282; mem_379 = (MEDIA_TYPE *)driveMediaConstants; *mem_378 = *mem_379; __cil_tmp283 = (unsigned int )DisketteExtension; __cil_tmp284 = __cil_tmp283 + 176; __cil_tmp285 = (unsigned int )driveMediaConstants; __cil_tmp286 = __cil_tmp285 + 36; mem_380 = (USHORT *)__cil_tmp286; __cil_tmp287 = *mem_380; mem_381 = (ULONG *)__cil_tmp284; *mem_381 = (unsigned long )__cil_tmp287; __cil_tmp288 = (unsigned int )DisketteExtension; __cil_tmp289 = __cil_tmp288 + 180; __cil_tmp290 = (unsigned int )driveMediaConstants; __cil_tmp291 = __cil_tmp290 + 51; mem_382 = (UCHAR *)__cil_tmp291; __cil_tmp292 = *mem_382; __cil_tmp293 = (int )__cil_tmp292; __cil_tmp294 = (unsigned int )driveMediaConstants; __cil_tmp295 = __cil_tmp294 + 48; mem_383 = (UCHAR *)__cil_tmp295; __cil_tmp296 = *mem_383; __cil_tmp297 = (int )__cil_tmp296; __cil_tmp298 = 1 + __cil_tmp297; __cil_tmp299 = (unsigned int )driveMediaConstants; __cil_tmp300 = __cil_tmp299 + 38; mem_384 = (UCHAR *)__cil_tmp300; __cil_tmp301 = *mem_384; __cil_tmp302 = (int )__cil_tmp301; __cil_tmp303 = (unsigned int )driveMediaConstants; __cil_tmp304 = __cil_tmp303 + 36; mem_385 = (USHORT *)__cil_tmp304; __cil_tmp305 = *mem_385; __cil_tmp306 = (int )__cil_tmp305; __cil_tmp307 = __cil_tmp306 * __cil_tmp302; __cil_tmp308 = __cil_tmp307 * __cil_tmp298; __cil_tmp309 = __cil_tmp308 * __cil_tmp293; mem_386 = (ULONG *)__cil_tmp289; *mem_386 = (unsigned long )__cil_tmp309; { while (1) { while_112_continue: /* CIL Label */ ; goto while_112_break; } while_112_break: /* CIL Label */ ; } { __cil_tmp310 = (unsigned int )DisketteExtension; __cil_tmp311 = __cil_tmp310 + 308; __cil_tmp312 = (unsigned int )DisketteExtension; __cil_tmp313 = __cil_tmp312 + 216; mem_387 = (DRIVE_MEDIA_TYPE *)__cil_tmp313; __cil_tmp314 = *mem_387; __cil_tmp315 = (unsigned int )__cil_tmp314; __cil_tmp316 = DriveMediaConstants + __cil_tmp315; mem_388 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp311; *mem_388 = *__cil_tmp316; FlCheckBootSector(DisketteExtension); } return (ntStatus); } } void FlAllocateIoBuffer(PDISKETTE_EXTENSION DisketteExtension , ULONG BufferSize ) { BOOLEAN allocateContiguous ; LARGE_INTEGER maxDmaAddress ; PVOID tmp ; PVOID tmp___0 ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; ULONG __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; ULONG __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; enum _POOL_TYPE __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; PUCHAR __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; PUCHAR __cil_tmp27 ; void *__cil_tmp28 ; void *__cil_tmp29 ; struct _IRP *__cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; PMDL __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; PUCHAR __cil_tmp36 ; void *__cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; PUCHAR __cil_tmp40 ; void *__cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; void *__cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; PMDL __cil_tmp47 ; enum _LOCK_OPERATION __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; PUCHAR __cil_tmp51 ; void *__cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; PUCHAR __cil_tmp55 ; void *__cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; void *__cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; PUCHAR *mem_62 ; ULONG *mem_63 ; ULONG *mem_64 ; PUCHAR *mem_65 ; PUCHAR *mem_66 ; PUCHAR *mem_67 ; PUCHAR *mem_68 ; PMDL *mem_69 ; PMDL *mem_70 ; PUCHAR *mem_71 ; PUCHAR *mem_72 ; PUCHAR *mem_73 ; PMDL *mem_74 ; PUCHAR *mem_75 ; PUCHAR *mem_76 ; PUCHAR *mem_77 ; ULONG *mem_78 ; { { __cil_tmp7 = (unsigned int )DisketteExtension; __cil_tmp8 = __cil_tmp7 + 124; { mem_62 = (PUCHAR *)__cil_tmp8; if (*mem_62) { { __cil_tmp9 = (unsigned int )DisketteExtension; __cil_tmp10 = __cil_tmp9 + 132; mem_63 = (ULONG *)__cil_tmp10; __cil_tmp11 = *mem_63; if (__cil_tmp11 >= BufferSize) { } else { } } { FlFreeIoBuffer(DisketteExtension); } } else { } } } { __cil_tmp12 = (unsigned int )DisketteExtension; __cil_tmp13 = __cil_tmp12 + 108; mem_64 = (ULONG *)__cil_tmp13; __cil_tmp14 = *mem_64; if (BufferSize > __cil_tmp14) { allocateContiguous = (unsigned char)1; } else { allocateContiguous = (unsigned char)0; } } if (allocateContiguous) { { maxDmaAddress.QuadPart = 16777215LL; tmp = MmAllocateContiguousMemory(BufferSize, maxDmaAddress); __cil_tmp15 = (unsigned int )DisketteExtension; __cil_tmp16 = __cil_tmp15 + 124; mem_65 = (PUCHAR *)__cil_tmp16; *mem_65 = (UCHAR *)tmp; } } else { { __cil_tmp17 = (enum _POOL_TYPE )4; tmp___0 = ExAllocatePoolWithTag(__cil_tmp17, BufferSize, 1886350406UL); __cil_tmp18 = (unsigned int )DisketteExtension; __cil_tmp19 = __cil_tmp18 + 124; mem_66 = (PUCHAR *)__cil_tmp19; *mem_66 = (UCHAR *)tmp___0; } } { __cil_tmp20 = (unsigned int )DisketteExtension; __cil_tmp21 = __cil_tmp20 + 124; mem_67 = (PUCHAR *)__cil_tmp21; __cil_tmp22 = *mem_67; if (! __cil_tmp22) { } else { } } { __cil_tmp23 = (unsigned int )DisketteExtension; __cil_tmp24 = __cil_tmp23 + 128; __cil_tmp25 = (unsigned int )DisketteExtension; __cil_tmp26 = __cil_tmp25 + 124; mem_68 = (PUCHAR *)__cil_tmp26; __cil_tmp27 = *mem_68; __cil_tmp28 = (void *)__cil_tmp27; __cil_tmp29 = (void *)0; __cil_tmp30 = (struct _IRP *)__cil_tmp29; mem_69 = (PMDL *)__cil_tmp24; *mem_69 = IoAllocateMdl(__cil_tmp28, BufferSize, (unsigned char)0, (unsigned char)0, __cil_tmp30); } { __cil_tmp31 = (unsigned int )DisketteExtension; __cil_tmp32 = __cil_tmp31 + 128; mem_70 = (PMDL *)__cil_tmp32; __cil_tmp33 = *mem_70; if (! __cil_tmp33) { if (allocateContiguous) { { __cil_tmp34 = (unsigned int )DisketteExtension; __cil_tmp35 = __cil_tmp34 + 124; mem_71 = (PUCHAR *)__cil_tmp35; __cil_tmp36 = *mem_71; __cil_tmp37 = (void *)__cil_tmp36; MmFreeContiguousMemory(__cil_tmp37); } } else { { __cil_tmp38 = (unsigned int )DisketteExtension; __cil_tmp39 = __cil_tmp38 + 124; mem_72 = (PUCHAR *)__cil_tmp39; __cil_tmp40 = *mem_72; __cil_tmp41 = (void *)__cil_tmp40; ExFreePool(__cil_tmp41); } } __cil_tmp42 = (unsigned int )DisketteExtension; __cil_tmp43 = __cil_tmp42 + 124; __cil_tmp44 = (void *)0; mem_73 = (PUCHAR *)__cil_tmp43; *mem_73 = (UCHAR *)__cil_tmp44; } else { } } { __cil_tmp45 = (unsigned int )DisketteExtension; __cil_tmp46 = __cil_tmp45 + 128; mem_74 = (PMDL *)__cil_tmp46; __cil_tmp47 = *mem_74; __cil_tmp48 = (enum _LOCK_OPERATION )2; MmProbeAndLockPages(__cil_tmp47, (char)0, __cil_tmp48); } { while (1) { while_113_continue: /* CIL Label */ ; goto while_113_break; } while_113_break: /* CIL Label */ ; } if (allocateContiguous) { { __cil_tmp49 = (unsigned int )DisketteExtension; __cil_tmp50 = __cil_tmp49 + 124; mem_75 = (PUCHAR *)__cil_tmp50; __cil_tmp51 = *mem_75; __cil_tmp52 = (void *)__cil_tmp51; MmFreeContiguousMemory(__cil_tmp52); } } else { { __cil_tmp53 = (unsigned int )DisketteExtension; __cil_tmp54 = __cil_tmp53 + 124; mem_76 = (PUCHAR *)__cil_tmp54; __cil_tmp55 = *mem_76; __cil_tmp56 = (void *)__cil_tmp55; ExFreePool(__cil_tmp56); } } __cil_tmp57 = (unsigned int )DisketteExtension; __cil_tmp58 = __cil_tmp57 + 124; __cil_tmp59 = (void *)0; mem_77 = (PUCHAR *)__cil_tmp58; *mem_77 = (UCHAR *)__cil_tmp59; __cil_tmp60 = (unsigned int )DisketteExtension; __cil_tmp61 = __cil_tmp60 + 132; mem_78 = (ULONG *)__cil_tmp61; *mem_78 = BufferSize; return; } } void FlFreeIoBuffer(PDISKETTE_EXTENSION DisketteExtension ) { BOOLEAN contiguousBuffer ; unsigned int __cil_tmp3 ; unsigned int __cil_tmp4 ; PUCHAR __cil_tmp5 ; unsigned int __cil_tmp6 ; unsigned int __cil_tmp7 ; ULONG __cil_tmp8 ; unsigned int __cil_tmp9 ; unsigned int __cil_tmp10 ; ULONG __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; PMDL __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; PMDL __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; void *__cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; PUCHAR __cil_tmp25 ; void *__cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; PUCHAR __cil_tmp29 ; void *__cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; void *__cil_tmp33 ; PUCHAR *mem_34 ; ULONG *mem_35 ; ULONG *mem_36 ; ULONG *mem_37 ; PMDL *mem_38 ; PMDL *mem_39 ; PMDL *mem_40 ; PUCHAR *mem_41 ; PUCHAR *mem_42 ; PUCHAR *mem_43 ; { { __cil_tmp3 = (unsigned int )DisketteExtension; __cil_tmp4 = __cil_tmp3 + 124; mem_34 = (PUCHAR *)__cil_tmp4; __cil_tmp5 = *mem_34; if (! __cil_tmp5) { } else { } } { __cil_tmp6 = (unsigned int )DisketteExtension; __cil_tmp7 = __cil_tmp6 + 108; mem_35 = (ULONG *)__cil_tmp7; __cil_tmp8 = *mem_35; __cil_tmp9 = (unsigned int )DisketteExtension; __cil_tmp10 = __cil_tmp9 + 132; mem_36 = (ULONG *)__cil_tmp10; __cil_tmp11 = *mem_36; if (__cil_tmp11 > __cil_tmp8) { contiguousBuffer = (unsigned char)1; } else { contiguousBuffer = (unsigned char)0; } } { __cil_tmp12 = (unsigned int )DisketteExtension; __cil_tmp13 = __cil_tmp12 + 132; mem_37 = (ULONG *)__cil_tmp13; *mem_37 = 0UL; __cil_tmp14 = (unsigned int )DisketteExtension; __cil_tmp15 = __cil_tmp14 + 128; mem_38 = (PMDL *)__cil_tmp15; __cil_tmp16 = *mem_38; MmUnlockPages(__cil_tmp16); __cil_tmp17 = (unsigned int )DisketteExtension; __cil_tmp18 = __cil_tmp17 + 128; mem_39 = (PMDL *)__cil_tmp18; __cil_tmp19 = *mem_39; IoFreeMdl(__cil_tmp19); __cil_tmp20 = (unsigned int )DisketteExtension; __cil_tmp21 = __cil_tmp20 + 128; __cil_tmp22 = (void *)0; mem_40 = (PMDL *)__cil_tmp21; *mem_40 = (struct _MDL *)__cil_tmp22; } if (contiguousBuffer) { { __cil_tmp23 = (unsigned int )DisketteExtension; __cil_tmp24 = __cil_tmp23 + 124; mem_41 = (PUCHAR *)__cil_tmp24; __cil_tmp25 = *mem_41; __cil_tmp26 = (void *)__cil_tmp25; MmFreeContiguousMemory(__cil_tmp26); } } else { { __cil_tmp27 = (unsigned int )DisketteExtension; __cil_tmp28 = __cil_tmp27 + 124; mem_42 = (PUCHAR *)__cil_tmp28; __cil_tmp29 = *mem_42; __cil_tmp30 = (void *)__cil_tmp29; ExFreePool(__cil_tmp30); } } __cil_tmp31 = (unsigned int )DisketteExtension; __cil_tmp32 = __cil_tmp31 + 124; __cil_tmp33 = (void *)0; mem_43 = (PUCHAR *)__cil_tmp32; *mem_43 = (UCHAR *)__cil_tmp33; return; } } void FloppyThread(PVOID Context ) { PIRP irp ; PIO_STACK_LOCATION irpSp ; PLIST_ENTRY request ; PDISKETTE_EXTENSION disketteExtension ; NTSTATUS ntStatus ; NTSTATUS waitStatus ; LARGE_INTEGER queueWait ; LARGE_INTEGER acquireWait ; PKTHREAD tmp ; PDISK_GEOMETRY outputBuffer ; PSENSE_DEVISE_STATUS_PTOS outputBuffer___0 ; LARGE_INTEGER *__cil_tmp13 ; LARGE_INTEGER *__cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; KSEMAPHORE *__cil_tmp17 ; void *__cil_tmp18 ; enum _KWAIT_REASON __cil_tmp19 ; KUSER_SHARED_DATA *__cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp23 ; int __cil_tmp24 ; int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; PDEVICE_OBJECT __cil_tmp30 ; int __cil_tmp31 ; int __cil_tmp32 ; int __cil_tmp33 ; int __cil_tmp34 ; unsigned long __cil_tmp35 ; void *__cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; PDEVICE_OBJECT __cil_tmp39 ; int __cil_tmp40 ; int __cil_tmp41 ; int __cil_tmp42 ; int __cil_tmp43 ; unsigned long __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; PDEVICE_OBJECT __cil_tmp47 ; void *__cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; FAST_MUTEX *__cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; LONG __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; void *__cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; PKTHREAD __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; PKTHREAD __cil_tmp67 ; void *__cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; void *__cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; FAST_MUTEX *__cil_tmp74 ; KUSER_SHARED_DATA *__cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp78 ; int __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; PDEVICE_OBJECT __cil_tmp84 ; int __cil_tmp85 ; int __cil_tmp86 ; int __cil_tmp87 ; int __cil_tmp88 ; unsigned long __cil_tmp89 ; void *__cil_tmp90 ; unsigned int __cil_tmp91 ; unsigned int __cil_tmp92 ; PDEVICE_OBJECT __cil_tmp93 ; int __cil_tmp94 ; int __cil_tmp95 ; int __cil_tmp96 ; int __cil_tmp97 ; unsigned long __cil_tmp98 ; void *__cil_tmp99 ; unsigned int __cil_tmp100 ; unsigned int __cil_tmp101 ; PDEVICE_OBJECT __cil_tmp102 ; int __cil_tmp103 ; int __cil_tmp104 ; int __cil_tmp105 ; int __cil_tmp106 ; unsigned long __cil_tmp107 ; unsigned int __cil_tmp108 ; unsigned int __cil_tmp109 ; PDEVICE_OBJECT __cil_tmp110 ; void *__cil_tmp111 ; unsigned int __cil_tmp112 ; unsigned int __cil_tmp113 ; unsigned int __cil_tmp114 ; unsigned int __cil_tmp115 ; void *__cil_tmp116 ; unsigned int __cil_tmp117 ; unsigned int __cil_tmp118 ; FAST_MUTEX *__cil_tmp119 ; unsigned int __cil_tmp120 ; unsigned int __cil_tmp121 ; LIST_ENTRY *__cil_tmp122 ; unsigned int __cil_tmp123 ; unsigned int __cil_tmp124 ; KSPIN_LOCK *__cil_tmp125 ; unsigned int __cil_tmp126 ; unsigned int __cil_tmp127 ; FAST_MUTEX *__cil_tmp128 ; unsigned int __cil_tmp129 ; unsigned int __cil_tmp130 ; unsigned int __cil_tmp131 ; unsigned int __cil_tmp132 ; LONG __cil_tmp133 ; unsigned int __cil_tmp134 ; unsigned int __cil_tmp135 ; FAST_MUTEX *__cil_tmp136 ; unsigned int __cil_tmp137 ; unsigned int __cil_tmp138 ; unsigned int __cil_tmp139 ; unsigned int __cil_tmp140 ; IRP *__cil_tmp141 ; unsigned int __cil_tmp142 ; unsigned int __cil_tmp143 ; LIST_ENTRY *__cil_tmp144 ; unsigned long __cil_tmp145 ; CHAR *__cil_tmp146 ; CHAR *__cil_tmp147 ; unsigned int __cil_tmp148 ; unsigned int __cil_tmp149 ; FAST_MUTEX *__cil_tmp150 ; unsigned int __cil_tmp151 ; unsigned int __cil_tmp152 ; BOOLEAN __cil_tmp153 ; int __cil_tmp154 ; unsigned int __cil_tmp155 ; unsigned int __cil_tmp156 ; FAST_MUTEX *__cil_tmp157 ; unsigned int __cil_tmp158 ; unsigned int __cil_tmp159 ; IRP *__cil_tmp160 ; unsigned int __cil_tmp161 ; unsigned int __cil_tmp162 ; LIST_ENTRY *__cil_tmp163 ; unsigned long __cil_tmp164 ; CHAR *__cil_tmp165 ; CHAR *__cil_tmp166 ; unsigned int __cil_tmp167 ; unsigned int __cil_tmp168 ; unsigned int __cil_tmp169 ; unsigned int __cil_tmp170 ; unsigned int __cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; FAST_MUTEX *__cil_tmp174 ; unsigned int __cil_tmp175 ; unsigned int __cil_tmp176 ; unsigned int __cil_tmp177 ; unsigned int __cil_tmp178 ; unsigned int __cil_tmp179 ; UCHAR __cil_tmp180 ; unsigned int __cil_tmp181 ; unsigned int __cil_tmp182 ; UCHAR __cil_tmp183 ; int __cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; UCHAR __cil_tmp187 ; int __cil_tmp188 ; KUSER_SHARED_DATA *__cil_tmp189 ; unsigned int __cil_tmp190 ; unsigned int __cil_tmp191 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp192 ; int __cil_tmp193 ; unsigned int __cil_tmp194 ; unsigned int __cil_tmp195 ; unsigned int __cil_tmp196 ; unsigned int __cil_tmp197 ; PDEVICE_OBJECT __cil_tmp198 ; int __cil_tmp199 ; int __cil_tmp200 ; int __cil_tmp201 ; int __cil_tmp202 ; unsigned long __cil_tmp203 ; void *__cil_tmp204 ; unsigned int __cil_tmp205 ; unsigned int __cil_tmp206 ; unsigned int __cil_tmp207 ; unsigned int __cil_tmp208 ; unsigned int __cil_tmp209 ; unsigned int __cil_tmp210 ; unsigned int __cil_tmp211 ; unsigned int __cil_tmp212 ; PDEVICE_OBJECT __cil_tmp213 ; int __cil_tmp214 ; int __cil_tmp215 ; int __cil_tmp216 ; int __cil_tmp217 ; unsigned long __cil_tmp218 ; void *__cil_tmp219 ; unsigned int __cil_tmp220 ; unsigned int __cil_tmp221 ; PDEVICE_OBJECT __cil_tmp222 ; int __cil_tmp223 ; int __cil_tmp224 ; int __cil_tmp225 ; int __cil_tmp226 ; unsigned long __cil_tmp227 ; unsigned int __cil_tmp228 ; unsigned int __cil_tmp229 ; PDEVICE_OBJECT __cil_tmp230 ; void *__cil_tmp231 ; unsigned int __cil_tmp232 ; unsigned int __cil_tmp233 ; unsigned int __cil_tmp234 ; unsigned int __cil_tmp235 ; FAST_MUTEX *__cil_tmp236 ; unsigned int __cil_tmp237 ; unsigned int __cil_tmp238 ; unsigned int __cil_tmp239 ; unsigned int __cil_tmp240 ; FAST_MUTEX *__cil_tmp241 ; void *__cil_tmp242 ; unsigned int __cil_tmp243 ; unsigned int __cil_tmp244 ; BOOLEAN __cil_tmp245 ; unsigned int __cil_tmp246 ; unsigned int __cil_tmp247 ; PDEVICE_OBJECT __cil_tmp248 ; int __cil_tmp249 ; int __cil_tmp250 ; int __cil_tmp251 ; int __cil_tmp252 ; unsigned long __cil_tmp253 ; void *__cil_tmp254 ; unsigned int __cil_tmp255 ; unsigned int __cil_tmp256 ; KUSER_SHARED_DATA *__cil_tmp257 ; unsigned int __cil_tmp258 ; unsigned int __cil_tmp259 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp260 ; int __cil_tmp261 ; unsigned int __cil_tmp262 ; unsigned int __cil_tmp263 ; unsigned int __cil_tmp264 ; unsigned int __cil_tmp265 ; PDEVICE_OBJECT __cil_tmp266 ; unsigned int __cil_tmp267 ; unsigned int __cil_tmp268 ; ULONG __cil_tmp269 ; unsigned int __cil_tmp270 ; unsigned int __cil_tmp271 ; UCHAR __cil_tmp272 ; int __cil_tmp273 ; int __cil_tmp274 ; unsigned int __cil_tmp275 ; unsigned int __cil_tmp276 ; BOOLEAN __cil_tmp277 ; unsigned int __cil_tmp278 ; unsigned int __cil_tmp279 ; PDEVICE_OBJECT __cil_tmp280 ; int __cil_tmp281 ; int __cil_tmp282 ; int __cil_tmp283 ; int __cil_tmp284 ; unsigned long __cil_tmp285 ; void *__cil_tmp286 ; unsigned int __cil_tmp287 ; unsigned int __cil_tmp288 ; KUSER_SHARED_DATA *__cil_tmp289 ; unsigned int __cil_tmp290 ; unsigned int __cil_tmp291 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp292 ; int __cil_tmp293 ; unsigned int __cil_tmp294 ; unsigned int __cil_tmp295 ; unsigned int __cil_tmp296 ; unsigned int __cil_tmp297 ; PDEVICE_OBJECT __cil_tmp298 ; unsigned int __cil_tmp299 ; unsigned int __cil_tmp300 ; ULONG __cil_tmp301 ; unsigned int __cil_tmp302 ; unsigned int __cil_tmp303 ; UCHAR __cil_tmp304 ; int __cil_tmp305 ; int __cil_tmp306 ; unsigned int __cil_tmp307 ; unsigned int __cil_tmp308 ; unsigned int __cil_tmp309 ; unsigned int __cil_tmp310 ; ULONG __cil_tmp311 ; int __cil_tmp312 ; int __cil_tmp313 ; int __cil_tmp314 ; int __cil_tmp315 ; int __cil_tmp316 ; int __cil_tmp317 ; int __cil_tmp318 ; int __cil_tmp319 ; unsigned int __cil_tmp320 ; unsigned int __cil_tmp321 ; UCHAR __cil_tmp322 ; int __cil_tmp323 ; int __cil_tmp324 ; int __cil_tmp325 ; int __cil_tmp326 ; unsigned char __cil_tmp327 ; int __cil_tmp328 ; int __cil_tmp329 ; unsigned int __cil_tmp330 ; unsigned int __cil_tmp331 ; unsigned long __cil_tmp332 ; unsigned int __cil_tmp333 ; unsigned int __cil_tmp334 ; ULONG __cil_tmp335 ; unsigned int __cil_tmp336 ; unsigned int __cil_tmp337 ; UCHAR __cil_tmp338 ; int __cil_tmp339 ; int __cil_tmp340 ; int __cil_tmp341 ; int __cil_tmp342 ; unsigned char __cil_tmp343 ; unsigned int __cil_tmp344 ; unsigned int __cil_tmp345 ; PVOID __cil_tmp346 ; unsigned int __cil_tmp347 ; unsigned int __cil_tmp348 ; unsigned int __cil_tmp349 ; unsigned int __cil_tmp350 ; unsigned int __cil_tmp351 ; unsigned int __cil_tmp352 ; MEDIA_TYPE __cil_tmp353 ; int __cil_tmp354 ; unsigned int __cil_tmp355 ; unsigned int __cil_tmp356 ; unsigned int __cil_tmp357 ; unsigned int __cil_tmp358 ; unsigned int __cil_tmp359 ; unsigned int __cil_tmp360 ; unsigned int __cil_tmp361 ; unsigned int __cil_tmp362 ; unsigned int __cil_tmp363 ; unsigned int __cil_tmp364 ; unsigned int __cil_tmp365 ; unsigned int __cil_tmp366 ; unsigned int __cil_tmp367 ; UCHAR __cil_tmp368 ; int __cil_tmp369 ; int __cil_tmp370 ; unsigned int __cil_tmp371 ; unsigned int __cil_tmp372 ; unsigned int __cil_tmp373 ; unsigned int __cil_tmp374 ; unsigned int __cil_tmp375 ; unsigned int __cil_tmp376 ; unsigned int __cil_tmp377 ; unsigned int __cil_tmp378 ; unsigned int __cil_tmp379 ; UCHAR __cil_tmp380 ; unsigned int __cil_tmp381 ; unsigned int __cil_tmp382 ; unsigned int __cil_tmp383 ; unsigned int __cil_tmp384 ; unsigned int __cil_tmp385 ; UCHAR __cil_tmp386 ; unsigned int __cil_tmp387 ; unsigned int __cil_tmp388 ; unsigned int __cil_tmp389 ; unsigned int __cil_tmp390 ; unsigned int __cil_tmp391 ; USHORT __cil_tmp392 ; unsigned int __cil_tmp393 ; unsigned int __cil_tmp394 ; unsigned int __cil_tmp395 ; int __cil_tmp396 ; int __cil_tmp397 ; int __cil_tmp398 ; int __cil_tmp399 ; int __cil_tmp400 ; int __cil_tmp401 ; int __cil_tmp402 ; int __cil_tmp403 ; unsigned int __cil_tmp404 ; unsigned int __cil_tmp405 ; int __cil_tmp406 ; int __cil_tmp407 ; KUSER_SHARED_DATA *__cil_tmp408 ; unsigned int __cil_tmp409 ; unsigned int __cil_tmp410 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp411 ; int __cil_tmp412 ; unsigned int __cil_tmp413 ; unsigned int __cil_tmp414 ; unsigned int __cil_tmp415 ; unsigned int __cil_tmp416 ; unsigned int __cil_tmp417 ; unsigned int __cil_tmp418 ; unsigned int __cil_tmp419 ; unsigned int __cil_tmp420 ; unsigned int __cil_tmp421 ; unsigned int __cil_tmp422 ; unsigned int __cil_tmp423 ; unsigned int __cil_tmp424 ; unsigned int __cil_tmp425 ; unsigned int __cil_tmp426 ; UCHAR *__cil_tmp427 ; unsigned int __cil_tmp428 ; unsigned int __cil_tmp429 ; unsigned int __cil_tmp430 ; unsigned int __cil_tmp431 ; UCHAR *__cil_tmp432 ; void *__cil_tmp433 ; struct _MDL *__cil_tmp434 ; unsigned int __cil_tmp435 ; unsigned int __cil_tmp436 ; PVOID __cil_tmp437 ; unsigned int __cil_tmp438 ; unsigned int __cil_tmp439 ; unsigned int __cil_tmp440 ; unsigned int __cil_tmp441 ; unsigned int __cil_tmp442 ; unsigned int __cil_tmp443 ; unsigned int __cil_tmp444 ; unsigned int __cil_tmp445 ; unsigned int __cil_tmp446 ; unsigned int __cil_tmp447 ; unsigned int __cil_tmp448 ; LIST_ENTRY *__cil_tmp449 ; unsigned int __cil_tmp450 ; unsigned int __cil_tmp451 ; KSPIN_LOCK *__cil_tmp452 ; unsigned int __cil_tmp453 ; unsigned int __cil_tmp454 ; FAST_MUTEX *__cil_tmp455 ; unsigned int __cil_tmp456 ; unsigned int __cil_tmp457 ; unsigned int __cil_tmp458 ; unsigned int __cil_tmp459 ; LONG __cil_tmp460 ; unsigned int __cil_tmp461 ; unsigned int __cil_tmp462 ; FAST_MUTEX *__cil_tmp463 ; unsigned int __cil_tmp464 ; unsigned int __cil_tmp465 ; IRP *__cil_tmp466 ; unsigned int __cil_tmp467 ; unsigned int __cil_tmp468 ; LIST_ENTRY *__cil_tmp469 ; unsigned long __cil_tmp470 ; CHAR *__cil_tmp471 ; CHAR *__cil_tmp472 ; unsigned int __cil_tmp473 ; unsigned int __cil_tmp474 ; unsigned int __cil_tmp475 ; unsigned int __cil_tmp476 ; KUSER_SHARED_DATA *__cil_tmp477 ; unsigned int __cil_tmp478 ; unsigned int __cil_tmp479 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp480 ; int __cil_tmp481 ; unsigned int __cil_tmp482 ; unsigned int __cil_tmp483 ; unsigned int __cil_tmp484 ; unsigned int __cil_tmp485 ; PDEVICE_OBJECT __cil_tmp486 ; int __cil_tmp487 ; int __cil_tmp488 ; int __cil_tmp489 ; int __cil_tmp490 ; unsigned long __cil_tmp491 ; unsigned int __cil_tmp492 ; unsigned int __cil_tmp493 ; PDEVICE_OBJECT __cil_tmp494 ; void *__cil_tmp495 ; unsigned int __cil_tmp496 ; unsigned int __cil_tmp497 ; unsigned int __cil_tmp498 ; unsigned int __cil_tmp499 ; LONGLONG *mem_500 ; LONGLONG *mem_501 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_502 ; BOOLEAN *mem_503 ; PDEVICE_OBJECT *mem_504 ; PDEVICE_OBJECT *mem_505 ; PDEVICE_OBJECT *mem_506 ; BOOLEAN *mem_507 ; LONG *mem_508 ; LONG *mem_509 ; PKTHREAD *mem_510 ; PKTHREAD *mem_511 ; PKTHREAD *mem_512 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_513 ; BOOLEAN *mem_514 ; PDEVICE_OBJECT *mem_515 ; PDEVICE_OBJECT *mem_516 ; PDEVICE_OBJECT *mem_517 ; PDEVICE_OBJECT *mem_518 ; BOOLEAN *mem_519 ; BOOLEAN *mem_520 ; LONG *mem_521 ; LONG *mem_522 ; BOOLEAN *mem_523 ; BOOLEAN *mem_524 ; NTSTATUS *mem_525 ; ULONG_PTR *mem_526 ; struct _IO_STACK_LOCATION **mem_527 ; UCHAR *mem_528 ; UCHAR *mem_529 ; UCHAR *mem_530 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_531 ; BOOLEAN *mem_532 ; PDEVICE_OBJECT *mem_533 ; BOOLEAN *mem_534 ; BOOLEAN *mem_535 ; BOOLEAN *mem_536 ; PDEVICE_OBJECT *mem_537 ; PDEVICE_OBJECT *mem_538 ; PDEVICE_OBJECT *mem_539 ; BOOLEAN *mem_540 ; LONG *mem_541 ; BOOLEAN *mem_542 ; PDEVICE_OBJECT *mem_543 ; BOOLEAN *mem_544 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_545 ; BOOLEAN *mem_546 ; PDEVICE_OBJECT *mem_547 ; ULONG *mem_548 ; UCHAR *mem_549 ; BOOLEAN *mem_550 ; PDEVICE_OBJECT *mem_551 ; BOOLEAN *mem_552 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_553 ; BOOLEAN *mem_554 ; PDEVICE_OBJECT *mem_555 ; ULONG *mem_556 ; UCHAR *mem_557 ; ULONG *mem_558 ; UCHAR *mem_559 ; BOOLEAN *mem_560 ; ULONG *mem_561 ; UCHAR *mem_562 ; PVOID *mem_563 ; MEDIA_TYPE *mem_564 ; MEDIA_TYPE *mem_565 ; MEDIA_TYPE *mem_566 ; ULONG *mem_567 ; LONG *mem_568 ; ULONG *mem_569 ; ULONG *mem_570 ; ULONG *mem_571 ; UCHAR *mem_572 ; ULONG *mem_573 ; LONG *mem_574 ; UCHAR *mem_575 ; ULONG *mem_576 ; UCHAR *mem_577 ; ULONG *mem_578 ; USHORT *mem_579 ; ULONG *mem_580 ; ULONG_PTR *mem_581 ; PUCHAR *mem_582 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_583 ; UCHAR *mem_584 ; UCHAR *mem_585 ; UCHAR *mem_586 ; PVOID *mem_587 ; UCHAR *mem_588 ; UCHAR *mem_589 ; ULONG_PTR *mem_590 ; BOOLEAN *mem_591 ; NTSTATUS *mem_592 ; LONG *mem_593 ; LONG *mem_594 ; NTSTATUS *mem_595 ; PUCHAR *mem_596 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_597 ; BOOLEAN *mem_598 ; PDEVICE_OBJECT *mem_599 ; PDEVICE_OBJECT *mem_600 ; BOOLEAN *mem_601 ; BOOLEAN *mem_602 ; { { disketteExtension = (DISKETTE_EXTENSION *)Context; ntStatus = 0L; tmp = KeGetCurrentThread(); KeSetPriorityThread(tmp, 16L); __cil_tmp13 = & queueWait; mem_500 = (LONGLONG *)__cil_tmp13; *mem_500 = -30000000LL; __cil_tmp14 = & acquireWait; mem_501 = (LONGLONG *)__cil_tmp14; *mem_501 = -150000000LL; } { while (1) { while_114_continue: /* CIL Label */ ; { __cil_tmp15 = (unsigned int )disketteExtension; __cil_tmp16 = __cil_tmp15 + 32; __cil_tmp17 = (KSEMAPHORE *)__cil_tmp16; __cil_tmp18 = (void *)__cil_tmp17; __cil_tmp19 = (enum _KWAIT_REASON )0; waitStatus = KeWaitForSingleObject(__cil_tmp18, __cil_tmp19, (char)0, (unsigned char)0, & queueWait); } if (waitStatus == 258L) { { __cil_tmp20 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp21 = (unsigned int )__cil_tmp20; __cil_tmp22 = __cil_tmp21 + 732; mem_502 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp22; __cil_tmp23 = *mem_502; __cil_tmp24 = (int )__cil_tmp23; __cil_tmp25 = __cil_tmp24 == 1; if (! __cil_tmp25) { { __cil_tmp26 = (unsigned int )disketteExtension; __cil_tmp27 = __cil_tmp26 + 172; { mem_503 = (BOOLEAN *)__cil_tmp27; if (*mem_503) { { while (1) { while_115_continue: /* CIL Label */ ; goto while_115_break; } while_115_break: /* CIL Label */ ; } { __cil_tmp28 = (unsigned int )disketteExtension; __cil_tmp29 = __cil_tmp28 + 8; mem_504 = (PDEVICE_OBJECT *)__cil_tmp29; __cil_tmp30 = *mem_504; __cil_tmp31 = 775 << 2; __cil_tmp32 = 7 << 16; __cil_tmp33 = __cil_tmp32 | __cil_tmp31; __cil_tmp34 = __cil_tmp33 | 3; __cil_tmp35 = (unsigned long )__cil_tmp34; __cil_tmp36 = (void *)0; FlFdcDeviceIo(__cil_tmp30, __cil_tmp35, __cil_tmp36); __cil_tmp37 = (unsigned int )disketteExtension; __cil_tmp38 = __cil_tmp37 + 8; mem_505 = (PDEVICE_OBJECT *)__cil_tmp38; __cil_tmp39 = *mem_505; __cil_tmp40 = 769 << 2; __cil_tmp41 = 7 << 16; __cil_tmp42 = __cil_tmp41 | __cil_tmp40; __cil_tmp43 = __cil_tmp42 | 3; __cil_tmp44 = (unsigned long )__cil_tmp43; __cil_tmp45 = (unsigned int )disketteExtension; __cil_tmp46 = __cil_tmp45 + 28; mem_506 = (PDEVICE_OBJECT *)__cil_tmp46; __cil_tmp47 = *mem_506; __cil_tmp48 = (void *)__cil_tmp47; FlFdcDeviceIo(__cil_tmp39, __cil_tmp44, __cil_tmp48); __cil_tmp49 = (unsigned int )disketteExtension; __cil_tmp50 = __cil_tmp49 + 172; mem_507 = (BOOLEAN *)__cil_tmp50; *mem_507 = (unsigned char)0; } } else { } } } } else { } } { __cil_tmp51 = (unsigned int )disketteExtension; __cil_tmp52 = __cil_tmp51 + 56; __cil_tmp53 = (FAST_MUTEX *)__cil_tmp52; ExAcquireFastMutex(__cil_tmp53); } { __cil_tmp54 = (unsigned int )disketteExtension; __cil_tmp55 = __cil_tmp54 + 88; mem_508 = (LONG *)__cil_tmp55; __cil_tmp56 = *mem_508; if (__cil_tmp56 == 0L) { __cil_tmp57 = (unsigned int )disketteExtension; __cil_tmp58 = __cil_tmp57 + 88; mem_509 = (LONG *)__cil_tmp58; *mem_509 = -1L; { __cil_tmp59 = (void *)0; __cil_tmp60 = (unsigned int )__cil_tmp59; __cil_tmp61 = (unsigned int )disketteExtension; __cil_tmp62 = __cil_tmp61 + 92; mem_510 = (PKTHREAD *)__cil_tmp62; __cil_tmp63 = *mem_510; __cil_tmp64 = (unsigned int )__cil_tmp63; if (__cil_tmp64 != __cil_tmp60) { { __cil_tmp65 = (unsigned int )disketteExtension; __cil_tmp66 = __cil_tmp65 + 92; mem_511 = (PKTHREAD *)__cil_tmp66; __cil_tmp67 = *mem_511; __cil_tmp68 = (void *)__cil_tmp67; ObfDereferenceObject(__cil_tmp68); __cil_tmp69 = (unsigned int )disketteExtension; __cil_tmp70 = __cil_tmp69 + 92; __cil_tmp71 = (void *)0; mem_512 = (PKTHREAD *)__cil_tmp70; *mem_512 = (struct _KTHREAD *)__cil_tmp71; } } else { } } { __cil_tmp72 = (unsigned int )disketteExtension; __cil_tmp73 = __cil_tmp72 + 56; __cil_tmp74 = (FAST_MUTEX *)__cil_tmp73; ExReleaseFastMutex(__cil_tmp74); } { __cil_tmp75 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp76 = (unsigned int )__cil_tmp75; __cil_tmp77 = __cil_tmp76 + 732; mem_513 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp77; __cil_tmp78 = *mem_513; __cil_tmp79 = (int )__cil_tmp78; if (__cil_tmp79 == 1) { { __cil_tmp80 = (unsigned int )disketteExtension; __cil_tmp81 = __cil_tmp80 + 392; { mem_514 = (BOOLEAN *)__cil_tmp81; if (*mem_514) { { __cil_tmp82 = (unsigned int )disketteExtension; __cil_tmp83 = __cil_tmp82 + 8; mem_515 = (PDEVICE_OBJECT *)__cil_tmp83; __cil_tmp84 = *mem_515; __cil_tmp85 = 768 << 2; __cil_tmp86 = 7 << 16; __cil_tmp87 = __cil_tmp86 | __cil_tmp85; __cil_tmp88 = __cil_tmp87 | 3; __cil_tmp89 = (unsigned long )__cil_tmp88; __cil_tmp90 = (void *)(& acquireWait); ntStatus = FlFdcDeviceIo(__cil_tmp84, __cil_tmp89, __cil_tmp90); __cil_tmp91 = (unsigned int )disketteExtension; __cil_tmp92 = __cil_tmp91 + 8; mem_516 = (PDEVICE_OBJECT *)__cil_tmp92; __cil_tmp93 = *mem_516; __cil_tmp94 = 775 << 2; __cil_tmp95 = 7 << 16; __cil_tmp96 = __cil_tmp95 | __cil_tmp94; __cil_tmp97 = __cil_tmp96 | 3; __cil_tmp98 = (unsigned long )__cil_tmp97; __cil_tmp99 = (void *)0; FlFdcDeviceIo(__cil_tmp93, __cil_tmp98, __cil_tmp99); __cil_tmp100 = (unsigned int )disketteExtension; __cil_tmp101 = __cil_tmp100 + 8; mem_517 = (PDEVICE_OBJECT *)__cil_tmp101; __cil_tmp102 = *mem_517; __cil_tmp103 = 769 << 2; __cil_tmp104 = 7 << 16; __cil_tmp105 = __cil_tmp104 | __cil_tmp103; __cil_tmp106 = __cil_tmp105 | 3; __cil_tmp107 = (unsigned long )__cil_tmp106; __cil_tmp108 = (unsigned int )disketteExtension; __cil_tmp109 = __cil_tmp108 + 28; mem_518 = (PDEVICE_OBJECT *)__cil_tmp109; __cil_tmp110 = *mem_518; __cil_tmp111 = (void *)__cil_tmp110; FlFdcDeviceIo(__cil_tmp102, __cil_tmp107, __cil_tmp111); __cil_tmp112 = (unsigned int )disketteExtension; __cil_tmp113 = __cil_tmp112 + 172; mem_519 = (BOOLEAN *)__cil_tmp113; *mem_519 = (unsigned char)0; __cil_tmp114 = (unsigned int )disketteExtension; __cil_tmp115 = __cil_tmp114 + 392; mem_520 = (BOOLEAN *)__cil_tmp115; *mem_520 = (unsigned char)0; } } else { } } } } else { } } { ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount - 1UL; } if (PagingReferenceCount == 0UL) { { __cil_tmp116 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp116); } } else { } { ExReleaseFastMutex(PagingMutex); } { while (1) { while_116_continue: /* CIL Label */ ; goto while_116_break; } while_116_break: /* CIL Label */ ; } { PsTerminateSystemThread(0L); } } else { } } { __cil_tmp117 = (unsigned int )disketteExtension; __cil_tmp118 = __cil_tmp117 + 56; __cil_tmp119 = (FAST_MUTEX *)__cil_tmp118; ExReleaseFastMutex(__cil_tmp119); } goto __Cont; } else { } { while (1) { while_117_continue: /* CIL Label */ ; { __cil_tmp120 = (unsigned int )disketteExtension; __cil_tmp121 = __cil_tmp120 + 96; __cil_tmp122 = (LIST_ENTRY *)__cil_tmp121; __cil_tmp123 = (unsigned int )disketteExtension; __cil_tmp124 = __cil_tmp123 + 52; __cil_tmp125 = (KSPIN_LOCK *)__cil_tmp124; request = ExfInterlockedRemoveHeadList(__cil_tmp122, __cil_tmp125); } if (! request) { goto while_117_break; } else { } { __cil_tmp126 = (unsigned int )disketteExtension; __cil_tmp127 = __cil_tmp126 + 56; __cil_tmp128 = (FAST_MUTEX *)__cil_tmp127; ExAcquireFastMutex(__cil_tmp128); __cil_tmp129 = (unsigned int )disketteExtension; __cil_tmp130 = __cil_tmp129 + 88; __cil_tmp131 = (unsigned int )disketteExtension; __cil_tmp132 = __cil_tmp131 + 88; mem_521 = (LONG *)__cil_tmp132; __cil_tmp133 = *mem_521; mem_522 = (LONG *)__cil_tmp130; *mem_522 = __cil_tmp133 - 1L; __cil_tmp134 = (unsigned int )disketteExtension; __cil_tmp135 = __cil_tmp134 + 56; __cil_tmp136 = (FAST_MUTEX *)__cil_tmp135; ExReleaseFastMutex(__cil_tmp136); __cil_tmp137 = (unsigned int )disketteExtension; __cil_tmp138 = __cil_tmp137 + 104; mem_523 = (BOOLEAN *)__cil_tmp138; *mem_523 = (unsigned char)0; __cil_tmp139 = 0 + 24; __cil_tmp140 = 64 + __cil_tmp139; __cil_tmp141 = (IRP *)0; __cil_tmp142 = (unsigned int )__cil_tmp141; __cil_tmp143 = __cil_tmp142 + __cil_tmp140; __cil_tmp144 = (LIST_ENTRY *)__cil_tmp143; __cil_tmp145 = (unsigned long )__cil_tmp144; __cil_tmp146 = (CHAR *)request; __cil_tmp147 = __cil_tmp146 - __cil_tmp145; irp = (IRP *)__cil_tmp147; __cil_tmp148 = (unsigned int )disketteExtension; __cil_tmp149 = __cil_tmp148 + 396; __cil_tmp150 = (FAST_MUTEX *)__cil_tmp149; ExAcquireFastMutex(__cil_tmp150); } { __cil_tmp151 = (unsigned int )disketteExtension; __cil_tmp152 = __cil_tmp151 + 393; mem_524 = (BOOLEAN *)__cil_tmp152; __cil_tmp153 = *mem_524; __cil_tmp154 = (int )__cil_tmp153; if (__cil_tmp154 == 1) { { __cil_tmp155 = (unsigned int )disketteExtension; __cil_tmp156 = __cil_tmp155 + 396; __cil_tmp157 = (FAST_MUTEX *)__cil_tmp156; ExReleaseFastMutex(__cil_tmp157); } { while (1) { while_118_continue: /* CIL Label */ ; goto while_118_break; } while_118_break: /* CIL Label */ ; } { __cil_tmp158 = 0 + 24; __cil_tmp159 = 64 + __cil_tmp158; __cil_tmp160 = (IRP *)0; __cil_tmp161 = (unsigned int )__cil_tmp160; __cil_tmp162 = __cil_tmp161 + __cil_tmp159; __cil_tmp163 = (LIST_ENTRY *)__cil_tmp162; __cil_tmp164 = (unsigned long )__cil_tmp163; __cil_tmp165 = (CHAR *)request; __cil_tmp166 = __cil_tmp165 - __cil_tmp164; irp = (IRP *)__cil_tmp166; __cil_tmp167 = (unsigned int )irp; __cil_tmp168 = __cil_tmp167 + 24; mem_525 = (NTSTATUS *)__cil_tmp168; *mem_525 = -1073741101L; __cil_tmp169 = 24 + 4; __cil_tmp170 = (unsigned int )irp; __cil_tmp171 = __cil_tmp170 + __cil_tmp169; mem_526 = (ULONG_PTR *)__cil_tmp171; *mem_526 = 0UL; IofCompleteRequest(irp, (char)0); } goto while_117_continue; } else { } } { __cil_tmp172 = (unsigned int )disketteExtension; __cil_tmp173 = __cil_tmp172 + 396; __cil_tmp174 = (FAST_MUTEX *)__cil_tmp173; ExReleaseFastMutex(__cil_tmp174); } { while (1) { while_119_continue: /* CIL Label */ ; goto while_119_break; } while_119_break: /* CIL Label */ ; } __cil_tmp175 = 24 + 8; __cil_tmp176 = 0 + __cil_tmp175; __cil_tmp177 = 64 + __cil_tmp176; __cil_tmp178 = (unsigned int )irp; __cil_tmp179 = __cil_tmp178 + __cil_tmp177; mem_527 = (struct _IO_STACK_LOCATION **)__cil_tmp179; irpSp = *mem_527; { while (1) { while_120_continue: /* CIL Label */ ; goto while_120_break; } while_120_break: /* CIL Label */ ; } { mem_528 = (UCHAR *)irpSp; __cil_tmp180 = *mem_528; if ((int )__cil_tmp180 == 27) { goto switch_121_27; } else { if ((int )__cil_tmp180 == 3) { goto switch_121_3; } else { if ((int )__cil_tmp180 == 4) { goto switch_121_4; } else { if ((int )__cil_tmp180 == 14) { goto switch_121_14; } else { { goto switch_121_default; if (0) { switch_121_27: /* CIL Label */ ; { while (1) { while_122_continue: /* CIL Label */ ; goto while_122_break; } while_122_break: /* CIL Label */ ; } { __cil_tmp181 = (unsigned int )irpSp; __cil_tmp182 = __cil_tmp181 + 1; mem_529 = (UCHAR *)__cil_tmp182; __cil_tmp183 = *mem_529; __cil_tmp184 = (int )__cil_tmp183; if (__cil_tmp184 == 1) { goto _L; } else { { __cil_tmp185 = (unsigned int )irpSp; __cil_tmp186 = __cil_tmp185 + 1; mem_530 = (UCHAR *)__cil_tmp186; __cil_tmp187 = *mem_530; __cil_tmp188 = (int )__cil_tmp187; if (__cil_tmp188 == 5) { _L: { __cil_tmp189 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp190 = (unsigned int )__cil_tmp189; __cil_tmp191 = __cil_tmp190 + 732; mem_531 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp191; __cil_tmp192 = *mem_531; __cil_tmp193 = (int )__cil_tmp192; if (__cil_tmp193 == 1) { { __cil_tmp194 = (unsigned int )disketteExtension; __cil_tmp195 = __cil_tmp194 + 392; { mem_532 = (BOOLEAN *)__cil_tmp195; if (*mem_532) { { __cil_tmp196 = (unsigned int )disketteExtension; __cil_tmp197 = __cil_tmp196 + 8; mem_533 = (PDEVICE_OBJECT *)__cil_tmp197; __cil_tmp198 = *mem_533; __cil_tmp199 = 768 << 2; __cil_tmp200 = 7 << 16; __cil_tmp201 = __cil_tmp200 | __cil_tmp199; __cil_tmp202 = __cil_tmp201 | 3; __cil_tmp203 = (unsigned long )__cil_tmp202; __cil_tmp204 = (void *)(& acquireWait); FlFdcDeviceIo(__cil_tmp198, __cil_tmp203, __cil_tmp204); __cil_tmp205 = (unsigned int )disketteExtension; __cil_tmp206 = __cil_tmp205 + 392; mem_534 = (BOOLEAN *)__cil_tmp206; *mem_534 = (unsigned char)0; __cil_tmp207 = (unsigned int )disketteExtension; __cil_tmp208 = __cil_tmp207 + 172; mem_535 = (BOOLEAN *)__cil_tmp208; *mem_535 = (unsigned char)1; } } else { } } } } else { } } { __cil_tmp209 = (unsigned int )disketteExtension; __cil_tmp210 = __cil_tmp209 + 172; { mem_536 = (BOOLEAN *)__cil_tmp210; if (*mem_536) { { __cil_tmp211 = (unsigned int )disketteExtension; __cil_tmp212 = __cil_tmp211 + 8; mem_537 = (PDEVICE_OBJECT *)__cil_tmp212; __cil_tmp213 = *mem_537; __cil_tmp214 = 775 << 2; __cil_tmp215 = 7 << 16; __cil_tmp216 = __cil_tmp215 | __cil_tmp214; __cil_tmp217 = __cil_tmp216 | 3; __cil_tmp218 = (unsigned long )__cil_tmp217; __cil_tmp219 = (void *)0; FlFdcDeviceIo(__cil_tmp213, __cil_tmp218, __cil_tmp219); __cil_tmp220 = (unsigned int )disketteExtension; __cil_tmp221 = __cil_tmp220 + 8; mem_538 = (PDEVICE_OBJECT *)__cil_tmp221; __cil_tmp222 = *mem_538; __cil_tmp223 = 769 << 2; __cil_tmp224 = 7 << 16; __cil_tmp225 = __cil_tmp224 | __cil_tmp223; __cil_tmp226 = __cil_tmp225 | 3; __cil_tmp227 = (unsigned long )__cil_tmp226; __cil_tmp228 = (unsigned int )disketteExtension; __cil_tmp229 = __cil_tmp228 + 28; mem_539 = (PDEVICE_OBJECT *)__cil_tmp229; __cil_tmp230 = *mem_539; __cil_tmp231 = (void *)__cil_tmp230; FlFdcDeviceIo(__cil_tmp222, __cil_tmp227, __cil_tmp231); __cil_tmp232 = (unsigned int )disketteExtension; __cil_tmp233 = __cil_tmp232 + 172; mem_540 = (BOOLEAN *)__cil_tmp233; *mem_540 = (unsigned char)0; } } else { } } } { __cil_tmp234 = (unsigned int )disketteExtension; __cil_tmp235 = __cil_tmp234 + 56; __cil_tmp236 = (FAST_MUTEX *)__cil_tmp235; ExAcquireFastMutex(__cil_tmp236); __cil_tmp237 = (unsigned int )disketteExtension; __cil_tmp238 = __cil_tmp237 + 88; mem_541 = (LONG *)__cil_tmp238; *mem_541 = -1L; __cil_tmp239 = (unsigned int )disketteExtension; __cil_tmp240 = __cil_tmp239 + 56; __cil_tmp241 = (FAST_MUTEX *)__cil_tmp240; ExReleaseFastMutex(__cil_tmp241); ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount - 1UL; } if (PagingReferenceCount == 0UL) { { __cil_tmp242 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp242); } } else { } { ExReleaseFastMutex(PagingMutex); PsTerminateSystemThread(0L); } } else { ntStatus = -1073741808L; } } } } goto switch_121_break; switch_121_3: /* CIL Label */ ; switch_121_4: /* CIL Label */ ; { __cil_tmp243 = (unsigned int )disketteExtension; __cil_tmp244 = __cil_tmp243 + 172; mem_542 = (BOOLEAN *)__cil_tmp244; __cil_tmp245 = *mem_542; if (! __cil_tmp245) { { __cil_tmp246 = (unsigned int )disketteExtension; __cil_tmp247 = __cil_tmp246 + 8; mem_543 = (PDEVICE_OBJECT *)__cil_tmp247; __cil_tmp248 = *mem_543; __cil_tmp249 = 768 << 2; __cil_tmp250 = 7 << 16; __cil_tmp251 = __cil_tmp250 | __cil_tmp249; __cil_tmp252 = __cil_tmp251 | 3; __cil_tmp253 = (unsigned long )__cil_tmp252; __cil_tmp254 = (void *)(& acquireWait); ntStatus = FlFdcDeviceIo(__cil_tmp248, __cil_tmp253, __cil_tmp254); } if (ntStatus >= 0L) { __cil_tmp255 = (unsigned int )disketteExtension; __cil_tmp256 = __cil_tmp255 + 172; mem_544 = (BOOLEAN *)__cil_tmp256; *mem_544 = (unsigned char)1; { __cil_tmp257 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp258 = (unsigned int )__cil_tmp257; __cil_tmp259 = __cil_tmp258 + 732; mem_545 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp259; __cil_tmp260 = *mem_545; __cil_tmp261 = (int )__cil_tmp260; if (__cil_tmp261 == 1) { __cil_tmp262 = (unsigned int )disketteExtension; __cil_tmp263 = __cil_tmp262 + 392; mem_546 = (BOOLEAN *)__cil_tmp263; *mem_546 = (unsigned char)0; } else { } } } else { goto switch_121_break; } } else { } } { __cil_tmp264 = (unsigned int )disketteExtension; __cil_tmp265 = __cil_tmp264 + 28; mem_547 = (PDEVICE_OBJECT *)__cil_tmp265; __cil_tmp266 = *mem_547; __cil_tmp267 = (unsigned int )__cil_tmp266; __cil_tmp268 = __cil_tmp267 + 28; mem_548 = (ULONG *)__cil_tmp268; __cil_tmp269 = *mem_548; if (__cil_tmp269 & 2UL) { { __cil_tmp270 = (unsigned int )irpSp; __cil_tmp271 = __cil_tmp270 + 2; mem_549 = (UCHAR *)__cil_tmp271; __cil_tmp272 = *mem_549; __cil_tmp273 = (int )__cil_tmp272; __cil_tmp274 = __cil_tmp273 & 2; if (! __cil_tmp274) { { while (1) { while_123_continue: /* CIL Label */ ; goto while_123_break; } while_123_break: /* CIL Label */ ; } ntStatus = -2147483626L; } else { { ntStatus = FlReadWrite(disketteExtension, irp, (unsigned char)0); } } } } else { { ntStatus = FlReadWrite(disketteExtension, irp, (unsigned char)0); } } } goto switch_121_break; switch_121_14: /* CIL Label */ ; { __cil_tmp275 = (unsigned int )disketteExtension; __cil_tmp276 = __cil_tmp275 + 172; mem_550 = (BOOLEAN *)__cil_tmp276; __cil_tmp277 = *mem_550; if (! __cil_tmp277) { { __cil_tmp278 = (unsigned int )disketteExtension; __cil_tmp279 = __cil_tmp278 + 8; mem_551 = (PDEVICE_OBJECT *)__cil_tmp279; __cil_tmp280 = *mem_551; __cil_tmp281 = 768 << 2; __cil_tmp282 = 7 << 16; __cil_tmp283 = __cil_tmp282 | __cil_tmp281; __cil_tmp284 = __cil_tmp283 | 3; __cil_tmp285 = (unsigned long )__cil_tmp284; __cil_tmp286 = (void *)(& acquireWait); ntStatus = FlFdcDeviceIo(__cil_tmp280, __cil_tmp285, __cil_tmp286); } if (ntStatus >= 0L) { __cil_tmp287 = (unsigned int )disketteExtension; __cil_tmp288 = __cil_tmp287 + 172; mem_552 = (BOOLEAN *)__cil_tmp288; *mem_552 = (unsigned char)1; { __cil_tmp289 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp290 = (unsigned int )__cil_tmp289; __cil_tmp291 = __cil_tmp290 + 732; mem_553 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp291; __cil_tmp292 = *mem_553; __cil_tmp293 = (int )__cil_tmp292; if (__cil_tmp293 == 1) { __cil_tmp294 = (unsigned int )disketteExtension; __cil_tmp295 = __cil_tmp294 + 392; mem_554 = (BOOLEAN *)__cil_tmp295; *mem_554 = (unsigned char)0; } else { } } } else { goto switch_121_break; } } else { } } { __cil_tmp296 = (unsigned int )disketteExtension; __cil_tmp297 = __cil_tmp296 + 28; mem_555 = (PDEVICE_OBJECT *)__cil_tmp297; __cil_tmp298 = *mem_555; __cil_tmp299 = (unsigned int )__cil_tmp298; __cil_tmp300 = __cil_tmp299 + 28; mem_556 = (ULONG *)__cil_tmp300; __cil_tmp301 = *mem_556; if (__cil_tmp301 & 2UL) { { __cil_tmp302 = (unsigned int )irpSp; __cil_tmp303 = __cil_tmp302 + 2; mem_557 = (UCHAR *)__cil_tmp303; __cil_tmp304 = *mem_557; __cil_tmp305 = (int )__cil_tmp304; __cil_tmp306 = __cil_tmp305 & 2; if (! __cil_tmp306) { { while (1) { while_124_continue: /* CIL Label */ ; goto while_124_break; } while_124_break: /* CIL Label */ ; } ntStatus = -2147483626L; } else { goto _L___2; } } } else { _L___2: { __cil_tmp307 = 0 + 8; __cil_tmp308 = 4 + __cil_tmp307; __cil_tmp309 = (unsigned int )irpSp; __cil_tmp310 = __cil_tmp309 + __cil_tmp308; mem_558 = (ULONG *)__cil_tmp310; __cil_tmp311 = *mem_558; if ((int )__cil_tmp311 == (__cil_tmp315 | __cil_tmp312)) { goto switch_125_exp_12; } else { if ((int )__cil_tmp311 == (__cil_tmp319 | __cil_tmp316)) { goto switch_125_exp_13; } else { if ((int )__cil_tmp311 == (__cil_tmp329 | __cil_tmp328)) { goto switch_125_exp_14; } else { if ((int )__cil_tmp311 == 7 << 16) { goto switch_125_exp_15; } else { if ((int )__cil_tmp311 == (__cil_tmp399 | __cil_tmp396)) { goto switch_125_exp_16; } else { if ((int )__cil_tmp311 == (__cil_tmp403 | __cil_tmp400)) { goto switch_125_exp_17; } else { if ((int )__cil_tmp311 == (__cil_tmp407 | __cil_tmp406)) { goto switch_125_exp_18; } else { if (0) { switch_125_exp_12: /* CIL Label */ { __cil_tmp312 = 512 << 2; __cil_tmp313 = 1 << 14; __cil_tmp314 = 45 << 16; __cil_tmp315 = __cil_tmp314 | __cil_tmp313; } switch_125_exp_13: /* CIL Label */ { __cil_tmp316 = 512 << 2; __cil_tmp317 = 1 << 14; __cil_tmp318 = 7 << 16; __cil_tmp319 = __cil_tmp318 | __cil_tmp317; } { while (1) { while_126_continue: /* CIL Label */ ; goto while_126_break; } while_126_break: /* CIL Label */ ; } { __cil_tmp320 = (unsigned int )irpSp; __cil_tmp321 = __cil_tmp320 + 2; mem_559 = (UCHAR *)__cil_tmp321; __cil_tmp322 = *mem_559; __cil_tmp323 = (int )__cil_tmp322; __cil_tmp324 = __cil_tmp323 & 2; __cil_tmp325 = ! __cil_tmp324; __cil_tmp326 = ! __cil_tmp325; __cil_tmp327 = (unsigned char )__cil_tmp326; ntStatus = FlStartDrive(disketteExtension, irp, (unsigned char)0, (unsigned char)0, __cil_tmp327); } goto switch_125_break; switch_125_exp_14: /* CIL Label */ { __cil_tmp328 = 9 << 2; __cil_tmp329 = 7 << 16; } { while (1) { while_127_continue: /* CIL Label */ ; goto while_127_break; } while_127_break: /* CIL Label */ ; } { __cil_tmp330 = (unsigned int )disketteExtension; __cil_tmp331 = __cil_tmp330 + 250; { mem_560 = (BOOLEAN *)__cil_tmp331; if (*mem_560) { ntStatus = -1073741811L; } else { { ntStatus = FlStartDrive(disketteExtension, irp, (unsigned char)1, (unsigned char)0, (unsigned char)1); } } } } goto switch_125_break; switch_125_exp_15: /* CIL Label */ ; { while (1) { while_128_continue: /* CIL Label */ ; goto while_128_break; } while_128_break: /* CIL Label */ ; } { __cil_tmp332 = (unsigned long )52U; __cil_tmp333 = (unsigned int )irpSp; __cil_tmp334 = __cil_tmp333 + 4; mem_561 = (ULONG *)__cil_tmp334; __cil_tmp335 = *mem_561; if (__cil_tmp335 < __cil_tmp332) { ntStatus = -1073741811L; } else { { __cil_tmp336 = (unsigned int )irpSp; __cil_tmp337 = __cil_tmp336 + 2; mem_562 = (UCHAR *)__cil_tmp337; __cil_tmp338 = *mem_562; __cil_tmp339 = (int )__cil_tmp338; __cil_tmp340 = __cil_tmp339 & 2; __cil_tmp341 = ! __cil_tmp340; __cil_tmp342 = ! __cil_tmp341; __cil_tmp343 = (unsigned char )__cil_tmp342; ntStatus = FlStartDrive(disketteExtension, irp, (unsigned char)0, (unsigned char)1, __cil_tmp343); } } } if (ntStatus >= 0L) { goto _L___0; } else { if (ntStatus == -1073741804L) { _L___0: __cil_tmp344 = (unsigned int )irp; __cil_tmp345 = __cil_tmp344 + 12; mem_563 = (PVOID *)__cil_tmp345; __cil_tmp346 = *mem_563; outputBuffer = (struct _DISK_GEOMETRY *)__cil_tmp346; ntStatus = 0L; __cil_tmp347 = (unsigned int )outputBuffer; __cil_tmp348 = __cil_tmp347 + 8; __cil_tmp349 = (unsigned int )disketteExtension; __cil_tmp350 = __cil_tmp349 + 184; mem_564 = (MEDIA_TYPE *)__cil_tmp348; mem_565 = (MEDIA_TYPE *)__cil_tmp350; *mem_564 = *mem_565; { __cil_tmp351 = (unsigned int )disketteExtension; __cil_tmp352 = __cil_tmp351 + 184; mem_566 = (MEDIA_TYPE *)__cil_tmp352; __cil_tmp353 = *mem_566; __cil_tmp354 = (int )__cil_tmp353; if (__cil_tmp354 == 0) { { while (1) { while_129_continue: /* CIL Label */ ; goto while_129_break; } while_129_break: /* CIL Label */ ; } mem_567 = (ULONG *)outputBuffer; *mem_567 = 0UL; __cil_tmp355 = 0 + 4; __cil_tmp356 = 0 + __cil_tmp355; __cil_tmp357 = (unsigned int )outputBuffer; __cil_tmp358 = __cil_tmp357 + __cil_tmp356; mem_568 = (LONG *)__cil_tmp358; *mem_568 = 0L; __cil_tmp359 = (unsigned int )outputBuffer; __cil_tmp360 = __cil_tmp359 + 40; mem_569 = (ULONG *)__cil_tmp360; *mem_569 = 0UL; __cil_tmp361 = (unsigned int )outputBuffer; __cil_tmp362 = __cil_tmp361 + 44; mem_570 = (ULONG *)__cil_tmp362; *mem_570 = 0UL; __cil_tmp363 = (unsigned int )outputBuffer; __cil_tmp364 = __cil_tmp363 + 48; mem_571 = (ULONG *)__cil_tmp364; *mem_571 = 0UL; } else { { while (1) { while_130_continue: /* CIL Label */ ; goto while_130_break; } while_130_break: /* CIL Label */ ; } __cil_tmp365 = 308 + 48; __cil_tmp366 = (unsigned int )disketteExtension; __cil_tmp367 = __cil_tmp366 + __cil_tmp365; mem_572 = (UCHAR *)__cil_tmp367; __cil_tmp368 = *mem_572; __cil_tmp369 = (int )__cil_tmp368; __cil_tmp370 = __cil_tmp369 + 1; mem_573 = (ULONG *)outputBuffer; *mem_573 = (unsigned long )__cil_tmp370; __cil_tmp371 = 0 + 4; __cil_tmp372 = 0 + __cil_tmp371; __cil_tmp373 = (unsigned int )outputBuffer; __cil_tmp374 = __cil_tmp373 + __cil_tmp372; mem_574 = (LONG *)__cil_tmp374; *mem_574 = 0L; __cil_tmp375 = (unsigned int )outputBuffer; __cil_tmp376 = __cil_tmp375 + 40; __cil_tmp377 = 308 + 51; __cil_tmp378 = (unsigned int )disketteExtension; __cil_tmp379 = __cil_tmp378 + __cil_tmp377; mem_575 = (UCHAR *)__cil_tmp379; __cil_tmp380 = *mem_575; mem_576 = (ULONG *)__cil_tmp376; *mem_576 = (unsigned long )__cil_tmp380; __cil_tmp381 = (unsigned int )outputBuffer; __cil_tmp382 = __cil_tmp381 + 44; __cil_tmp383 = 308 + 38; __cil_tmp384 = (unsigned int )disketteExtension; __cil_tmp385 = __cil_tmp384 + __cil_tmp383; mem_577 = (UCHAR *)__cil_tmp385; __cil_tmp386 = *mem_577; mem_578 = (ULONG *)__cil_tmp382; *mem_578 = (unsigned long )__cil_tmp386; __cil_tmp387 = (unsigned int )outputBuffer; __cil_tmp388 = __cil_tmp387 + 48; __cil_tmp389 = 308 + 36; __cil_tmp390 = (unsigned int )disketteExtension; __cil_tmp391 = __cil_tmp390 + __cil_tmp389; mem_579 = (USHORT *)__cil_tmp391; __cil_tmp392 = *mem_579; mem_580 = (ULONG *)__cil_tmp388; *mem_580 = (unsigned long )__cil_tmp392; } } { while (1) { while_131_continue: /* CIL Label */ ; goto while_131_break; } while_131_break: /* CIL Label */ ; } } else { } } __cil_tmp393 = 24 + 4; __cil_tmp394 = (unsigned int )irp; __cil_tmp395 = __cil_tmp394 + __cil_tmp393; mem_581 = (ULONG_PTR *)__cil_tmp395; *mem_581 = (unsigned long )52U; goto switch_125_break; switch_125_exp_16: /* CIL Label */ { __cil_tmp396 = 11 << 2; __cil_tmp397 = 3 << 14; __cil_tmp398 = 7 << 16; __cil_tmp399 = __cil_tmp398 | __cil_tmp397; } switch_125_exp_17: /* CIL Label */ { __cil_tmp400 = 6 << 2; __cil_tmp401 = 3 << 14; __cil_tmp402 = 7 << 16; __cil_tmp403 = __cil_tmp402 | __cil_tmp401; } { while (1) { while_132_continue: /* CIL Label */ ; goto while_132_break; } while_132_break: /* CIL Label */ ; } { ntStatus = FlStartDrive(disketteExtension, irp, (unsigned char)1, (unsigned char)0, (unsigned char)0); } if (ntStatus >= 0L) { goto _L___1; } else { if (ntStatus == -1073741804L) { _L___1: { FlAllocateIoBuffer(disketteExtension, 4096UL); } { __cil_tmp404 = (unsigned int )disketteExtension; __cil_tmp405 = __cil_tmp404 + 124; { mem_582 = (PUCHAR *)__cil_tmp405; if (*mem_582) { { ntStatus = FlFormat(disketteExtension, irp); } } else { ntStatus = -1073741670L; } } } } else { } } goto switch_125_break; switch_125_exp_18: /* CIL Label */ { __cil_tmp406 = 248 << 2; __cil_tmp407 = 7 << 16; } { __cil_tmp408 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp409 = (unsigned int )__cil_tmp408; __cil_tmp410 = __cil_tmp409 + 732; mem_583 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp410; __cil_tmp411 = *mem_583; __cil_tmp412 = (int )__cil_tmp411; if (__cil_tmp412 == 1) { { __cil_tmp413 = 0 * 1U; __cil_tmp414 = 112 + __cil_tmp413; __cil_tmp415 = (unsigned int )disketteExtension; __cil_tmp416 = __cil_tmp415 + __cil_tmp414; mem_584 = (UCHAR *)__cil_tmp416; *mem_584 = (unsigned char)14; __cil_tmp417 = 1 * 1U; __cil_tmp418 = 112 + __cil_tmp417; __cil_tmp419 = (unsigned int )disketteExtension; __cil_tmp420 = __cil_tmp419 + __cil_tmp418; __cil_tmp421 = (unsigned int )disketteExtension; __cil_tmp422 = __cil_tmp421 + 248; mem_585 = (UCHAR *)__cil_tmp420; mem_586 = (UCHAR *)__cil_tmp422; *mem_585 = *mem_586; __cil_tmp423 = 0 * 1U; __cil_tmp424 = 112 + __cil_tmp423; __cil_tmp425 = (unsigned int )disketteExtension; __cil_tmp426 = __cil_tmp425 + __cil_tmp424; __cil_tmp427 = (UCHAR *)__cil_tmp426; __cil_tmp428 = 0 * 1U; __cil_tmp429 = 112 + __cil_tmp428; __cil_tmp430 = (unsigned int )disketteExtension; __cil_tmp431 = __cil_tmp430 + __cil_tmp429; __cil_tmp432 = (UCHAR *)__cil_tmp431; __cil_tmp433 = (void *)0; __cil_tmp434 = (struct _MDL *)__cil_tmp433; ntStatus = FlIssueCommand(disketteExtension, __cil_tmp427, __cil_tmp432, __cil_tmp434, 0UL, 0UL); } if (ntStatus >= 0L) { __cil_tmp435 = (unsigned int )irp; __cil_tmp436 = __cil_tmp435 + 12; mem_587 = (PVOID *)__cil_tmp436; __cil_tmp437 = *mem_587; outputBuffer___0 = (struct _SENSE_DEVISE_STATUS_PTOS *)__cil_tmp437; __cil_tmp438 = 0 * 1U; __cil_tmp439 = (unsigned int )(Result_Status3_PTOS) + __cil_tmp438; mem_588 = (UCHAR *)outputBuffer___0; mem_589 = (UCHAR *)__cil_tmp439; *mem_588 = *mem_589; __cil_tmp440 = 24 + 4; __cil_tmp441 = (unsigned int )irp; __cil_tmp442 = __cil_tmp441 + __cil_tmp440; mem_590 = (ULONG_PTR *)__cil_tmp442; *mem_590 = (unsigned long )1U; } else { } goto switch_125_break; } else { } } } else { switch_125_break: /* CIL Label */ ; } } } } } } } } } } } goto switch_121_break; switch_121_default: /* CIL Label */ ; { while (1) { while_133_continue: /* CIL Label */ ; goto while_133_break; } while_133_break: /* CIL Label */ ; } ntStatus = -1073741822L; } else { switch_121_break: /* CIL Label */ ; } } } } } } } if (ntStatus == -2147483631L) { { while (1) { while_134_continue: /* CIL Label */ ; { __cil_tmp443 = (unsigned int )disketteExtension; __cil_tmp444 = __cil_tmp443 + 104; mem_591 = (BOOLEAN *)__cil_tmp444; *mem_591 = (unsigned char)0; __cil_tmp445 = (unsigned int )irp; __cil_tmp446 = __cil_tmp445 + 24; mem_592 = (NTSTATUS *)__cil_tmp446; *mem_592 = -2147483631L; IofCompleteRequest(irp, (char)1); __cil_tmp447 = (unsigned int )disketteExtension; __cil_tmp448 = __cil_tmp447 + 96; __cil_tmp449 = (LIST_ENTRY *)__cil_tmp448; __cil_tmp450 = (unsigned int )disketteExtension; __cil_tmp451 = __cil_tmp450 + 52; __cil_tmp452 = (KSPIN_LOCK *)__cil_tmp451; request = ExfInterlockedRemoveHeadList(__cil_tmp449, __cil_tmp452); } if (! request) { goto while_134_break; } else { } { __cil_tmp453 = (unsigned int )disketteExtension; __cil_tmp454 = __cil_tmp453 + 56; __cil_tmp455 = (FAST_MUTEX *)__cil_tmp454; ExAcquireFastMutex(__cil_tmp455); __cil_tmp456 = (unsigned int )disketteExtension; __cil_tmp457 = __cil_tmp456 + 88; __cil_tmp458 = (unsigned int )disketteExtension; __cil_tmp459 = __cil_tmp458 + 88; mem_593 = (LONG *)__cil_tmp459; __cil_tmp460 = *mem_593; mem_594 = (LONG *)__cil_tmp457; *mem_594 = __cil_tmp460 - 1L; __cil_tmp461 = (unsigned int )disketteExtension; __cil_tmp462 = __cil_tmp461 + 56; __cil_tmp463 = (FAST_MUTEX *)__cil_tmp462; ExReleaseFastMutex(__cil_tmp463); __cil_tmp464 = 0 + 24; __cil_tmp465 = 64 + __cil_tmp464; __cil_tmp466 = (IRP *)0; __cil_tmp467 = (unsigned int )__cil_tmp466; __cil_tmp468 = __cil_tmp467 + __cil_tmp465; __cil_tmp469 = (LIST_ENTRY *)__cil_tmp468; __cil_tmp470 = (unsigned long )__cil_tmp469; __cil_tmp471 = (CHAR *)request; __cil_tmp472 = __cil_tmp471 - __cil_tmp470; irp = (IRP *)__cil_tmp472; } } while_134_break: /* CIL Label */ ; } } else { __cil_tmp473 = (unsigned int )irp; __cil_tmp474 = __cil_tmp473 + 24; mem_595 = (NTSTATUS *)__cil_tmp474; *mem_595 = ntStatus; { __cil_tmp475 = (unsigned int )disketteExtension; __cil_tmp476 = __cil_tmp475 + 124; { mem_596 = (PUCHAR *)__cil_tmp476; if (*mem_596) { { FlFreeIoBuffer(disketteExtension); } } else { } } } { FlFinishOperation(irp, disketteExtension); } } } while_117_break: /* CIL Label */ ; } { __cil_tmp477 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp478 = (unsigned int )__cil_tmp477; __cil_tmp479 = __cil_tmp478 + 732; mem_597 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp479; __cil_tmp480 = *mem_597; __cil_tmp481 = (int )__cil_tmp480; if (__cil_tmp481 == 1) { { __cil_tmp482 = (unsigned int )disketteExtension; __cil_tmp483 = __cil_tmp482 + 172; { mem_598 = (BOOLEAN *)__cil_tmp483; if (*mem_598) { { __cil_tmp484 = (unsigned int )disketteExtension; __cil_tmp485 = __cil_tmp484 + 8; mem_599 = (PDEVICE_OBJECT *)__cil_tmp485; __cil_tmp486 = *mem_599; __cil_tmp487 = 769 << 2; __cil_tmp488 = 7 << 16; __cil_tmp489 = __cil_tmp488 | __cil_tmp487; __cil_tmp490 = __cil_tmp489 | 3; __cil_tmp491 = (unsigned long )__cil_tmp490; __cil_tmp492 = (unsigned int )disketteExtension; __cil_tmp493 = __cil_tmp492 + 28; mem_600 = (PDEVICE_OBJECT *)__cil_tmp493; __cil_tmp494 = *mem_600; __cil_tmp495 = (void *)__cil_tmp494; FlFdcDeviceIo(__cil_tmp486, __cil_tmp491, __cil_tmp495); __cil_tmp496 = (unsigned int )disketteExtension; __cil_tmp497 = __cil_tmp496 + 172; mem_601 = (BOOLEAN *)__cil_tmp497; *mem_601 = (unsigned char)0; __cil_tmp498 = (unsigned int )disketteExtension; __cil_tmp499 = __cil_tmp498 + 392; mem_602 = (BOOLEAN *)__cil_tmp499; *mem_602 = (unsigned char)1; } } else { } } } } else { } } __Cont: ; } while_114_break: /* CIL Label */ ; } } } void FlConsolidateMediaTypeWithBootSector(PDISKETTE_EXTENSION DisketteExtension , PBOOT_SECTOR_INFO BootSector ) { USHORT bpbNumberOfSectors ; USHORT bpbNumberOfHeads ; USHORT bpbSectorsPerTrack ; USHORT bpbBytesPerSector ; USHORT bpbMediaByte ; USHORT bpbMaximumTrack ; MEDIA_TYPE bpbMediaType ; ULONG i ; ULONG n ; PDRIVE_MEDIA_CONSTANTS readidDriveMediaConstants ; BOOLEAN changeToBpbMedia ; int tmp ; SIZE_T tmp___0 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; UCHAR __cil_tmp20 ; int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; UCHAR __cil_tmp26 ; int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; UCHAR __cil_tmp32 ; int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; UCHAR __cil_tmp38 ; int __cil_tmp39 ; int __cil_tmp40 ; int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; UCHAR __cil_tmp46 ; int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; UCHAR __cil_tmp52 ; int __cil_tmp53 ; int __cil_tmp54 ; int __cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; UCHAR __cil_tmp60 ; int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; UCHAR __cil_tmp66 ; int __cil_tmp67 ; int __cil_tmp68 ; int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; UCHAR __cil_tmp74 ; int __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; unsigned int __cil_tmp79 ; UCHAR __cil_tmp80 ; int __cil_tmp81 ; int __cil_tmp82 ; int __cil_tmp83 ; unsigned int __cil_tmp84 ; unsigned int __cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; UCHAR __cil_tmp88 ; int __cil_tmp89 ; int __cil_tmp90 ; int __cil_tmp91 ; int __cil_tmp92 ; int __cil_tmp93 ; int __cil_tmp94 ; KUSER_SHARED_DATA *__cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp98 ; int __cil_tmp99 ; unsigned long __cil_tmp100 ; int __cil_tmp101 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; USHORT __cil_tmp105 ; int __cil_tmp106 ; int __cil_tmp107 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp108 ; unsigned int __cil_tmp109 ; unsigned int __cil_tmp110 ; UCHAR __cil_tmp111 ; int __cil_tmp112 ; int __cil_tmp113 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp114 ; unsigned int __cil_tmp115 ; unsigned int __cil_tmp116 ; UCHAR __cil_tmp117 ; int __cil_tmp118 ; int __cil_tmp119 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; UCHAR __cil_tmp123 ; int __cil_tmp124 ; int __cil_tmp125 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp126 ; unsigned int __cil_tmp127 ; unsigned int __cil_tmp128 ; UCHAR __cil_tmp129 ; int __cil_tmp130 ; int __cil_tmp131 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp132 ; unsigned int __cil_tmp133 ; unsigned int __cil_tmp134 ; UCHAR __cil_tmp135 ; int __cil_tmp136 ; unsigned int __cil_tmp137 ; unsigned int __cil_tmp138 ; MEDIA_TYPE __cil_tmp139 ; int __cil_tmp140 ; int __cil_tmp141 ; unsigned int __cil_tmp142 ; unsigned int __cil_tmp143 ; unsigned int __cil_tmp144 ; unsigned int __cil_tmp145 ; USHORT __cil_tmp146 ; int __cil_tmp147 ; int __cil_tmp148 ; int __cil_tmp149 ; unsigned int __cil_tmp150 ; unsigned int __cil_tmp151 ; UCHAR __cil_tmp152 ; int __cil_tmp153 ; int __cil_tmp154 ; unsigned int __cil_tmp155 ; unsigned int __cil_tmp156 ; UCHAR __cil_tmp157 ; int __cil_tmp158 ; int __cil_tmp159 ; int __cil_tmp160 ; unsigned int __cil_tmp161 ; unsigned int __cil_tmp162 ; unsigned int __cil_tmp163 ; unsigned int __cil_tmp164 ; unsigned int __cil_tmp165 ; UCHAR __cil_tmp166 ; int __cil_tmp167 ; PDRIVE_MEDIA_LIMITS __cil_tmp168 ; unsigned int __cil_tmp169 ; unsigned int __cil_tmp170 ; DRIVE_MEDIA_TYPE __cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; UCHAR __cil_tmp174 ; int __cil_tmp175 ; PDRIVE_MEDIA_LIMITS __cil_tmp176 ; DRIVE_MEDIA_TYPE __cil_tmp177 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp178 ; MEDIA_TYPE __cil_tmp179 ; int __cil_tmp180 ; int __cil_tmp181 ; unsigned int __cil_tmp182 ; unsigned int __cil_tmp183 ; unsigned int __cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; unsigned int __cil_tmp187 ; int __cil_tmp188 ; int __cil_tmp189 ; int __cil_tmp190 ; unsigned int __cil_tmp191 ; unsigned int __cil_tmp192 ; unsigned int __cil_tmp193 ; unsigned int __cil_tmp194 ; unsigned int __cil_tmp195 ; unsigned int __cil_tmp196 ; unsigned int __cil_tmp197 ; unsigned int __cil_tmp198 ; unsigned int __cil_tmp199 ; unsigned int __cil_tmp200 ; UCHAR *__cil_tmp201 ; void const *__cil_tmp202 ; void const *__cil_tmp203 ; unsigned int __cil_tmp204 ; unsigned int __cil_tmp205 ; UCHAR *mem_206 ; UCHAR *mem_207 ; UCHAR *mem_208 ; UCHAR *mem_209 ; UCHAR *mem_210 ; UCHAR *mem_211 ; UCHAR *mem_212 ; UCHAR *mem_213 ; UCHAR *mem_214 ; UCHAR *mem_215 ; UCHAR *mem_216 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_217 ; USHORT *mem_218 ; UCHAR *mem_219 ; UCHAR *mem_220 ; UCHAR *mem_221 ; UCHAR *mem_222 ; MEDIA_TYPE *mem_223 ; UCHAR *mem_224 ; MEDIA_TYPE *mem_225 ; USHORT *mem_226 ; UCHAR *mem_227 ; UCHAR *mem_228 ; MEDIA_TYPE *mem_229 ; UCHAR *mem_230 ; UCHAR *mem_231 ; DRIVE_MEDIA_TYPE *mem_232 ; UCHAR *mem_233 ; DRIVE_MEDIA_TYPE *mem_234 ; MEDIA_TYPE *mem_235 ; DRIVE_MEDIA_TYPE *mem_236 ; MEDIA_TYPE *mem_237 ; ULONG *mem_238 ; UCHAR *mem_239 ; UCHAR *mem_240 ; BOOLEAN *mem_241 ; { { while (1) { while_135_continue: /* CIL Label */ ; goto while_135_break; } while_135_break: /* CIL Label */ ; } { __cil_tmp16 = 0 * 1U; __cil_tmp17 = 0 + __cil_tmp16; __cil_tmp18 = (unsigned int )BootSector; __cil_tmp19 = __cil_tmp18 + __cil_tmp17; mem_206 = (UCHAR *)__cil_tmp19; __cil_tmp20 = *mem_206; __cil_tmp21 = (int )__cil_tmp20; if (__cil_tmp21 != 235) { { __cil_tmp22 = 0 * 1U; __cil_tmp23 = 0 + __cil_tmp22; __cil_tmp24 = (unsigned int )BootSector; __cil_tmp25 = __cil_tmp24 + __cil_tmp23; mem_207 = (UCHAR *)__cil_tmp25; __cil_tmp26 = *mem_207; __cil_tmp27 = (int )__cil_tmp26; if (__cil_tmp27 != 233) { } else { } } } else { } } __cil_tmp28 = 0 * 1U; __cil_tmp29 = 19 + __cil_tmp28; __cil_tmp30 = (unsigned int )BootSector; __cil_tmp31 = __cil_tmp30 + __cil_tmp29; mem_208 = (UCHAR *)__cil_tmp31; __cil_tmp32 = *mem_208; __cil_tmp33 = (int )__cil_tmp32; __cil_tmp34 = 1 * 1U; __cil_tmp35 = 19 + __cil_tmp34; __cil_tmp36 = (unsigned int )BootSector; __cil_tmp37 = __cil_tmp36 + __cil_tmp35; mem_209 = (UCHAR *)__cil_tmp37; __cil_tmp38 = *mem_209; __cil_tmp39 = (int )__cil_tmp38; __cil_tmp40 = __cil_tmp39 * 256; __cil_tmp41 = __cil_tmp40 + __cil_tmp33; bpbNumberOfSectors = (unsigned short )__cil_tmp41; __cil_tmp42 = 0 * 1U; __cil_tmp43 = 26 + __cil_tmp42; __cil_tmp44 = (unsigned int )BootSector; __cil_tmp45 = __cil_tmp44 + __cil_tmp43; mem_210 = (UCHAR *)__cil_tmp45; __cil_tmp46 = *mem_210; __cil_tmp47 = (int )__cil_tmp46; __cil_tmp48 = 1 * 1U; __cil_tmp49 = 26 + __cil_tmp48; __cil_tmp50 = (unsigned int )BootSector; __cil_tmp51 = __cil_tmp50 + __cil_tmp49; mem_211 = (UCHAR *)__cil_tmp51; __cil_tmp52 = *mem_211; __cil_tmp53 = (int )__cil_tmp52; __cil_tmp54 = __cil_tmp53 * 256; __cil_tmp55 = __cil_tmp54 + __cil_tmp47; bpbNumberOfHeads = (unsigned short )__cil_tmp55; __cil_tmp56 = 0 * 1U; __cil_tmp57 = 24 + __cil_tmp56; __cil_tmp58 = (unsigned int )BootSector; __cil_tmp59 = __cil_tmp58 + __cil_tmp57; mem_212 = (UCHAR *)__cil_tmp59; __cil_tmp60 = *mem_212; __cil_tmp61 = (int )__cil_tmp60; __cil_tmp62 = 1 * 1U; __cil_tmp63 = 24 + __cil_tmp62; __cil_tmp64 = (unsigned int )BootSector; __cil_tmp65 = __cil_tmp64 + __cil_tmp63; mem_213 = (UCHAR *)__cil_tmp65; __cil_tmp66 = *mem_213; __cil_tmp67 = (int )__cil_tmp66; __cil_tmp68 = __cil_tmp67 * 256; __cil_tmp69 = __cil_tmp68 + __cil_tmp61; bpbSectorsPerTrack = (unsigned short )__cil_tmp69; __cil_tmp70 = 0 * 1U; __cil_tmp71 = 11 + __cil_tmp70; __cil_tmp72 = (unsigned int )BootSector; __cil_tmp73 = __cil_tmp72 + __cil_tmp71; mem_214 = (UCHAR *)__cil_tmp73; __cil_tmp74 = *mem_214; __cil_tmp75 = (int )__cil_tmp74; __cil_tmp76 = 1 * 1U; __cil_tmp77 = 11 + __cil_tmp76; __cil_tmp78 = (unsigned int )BootSector; __cil_tmp79 = __cil_tmp78 + __cil_tmp77; mem_215 = (UCHAR *)__cil_tmp79; __cil_tmp80 = *mem_215; __cil_tmp81 = (int )__cil_tmp80; __cil_tmp82 = __cil_tmp81 * 256; __cil_tmp83 = __cil_tmp82 + __cil_tmp75; bpbBytesPerSector = (unsigned short )__cil_tmp83; __cil_tmp84 = 0 * 1U; __cil_tmp85 = 21 + __cil_tmp84; __cil_tmp86 = (unsigned int )BootSector; __cil_tmp87 = __cil_tmp86 + __cil_tmp85; mem_216 = (UCHAR *)__cil_tmp87; __cil_tmp88 = *mem_216; bpbMediaByte = (unsigned short )__cil_tmp88; if (! bpbNumberOfHeads) { } else { if (! bpbSectorsPerTrack) { } else { } } __cil_tmp89 = (int )bpbSectorsPerTrack; __cil_tmp90 = (int )bpbNumberOfHeads; __cil_tmp91 = (int )bpbNumberOfSectors; __cil_tmp92 = __cil_tmp91 / __cil_tmp90; __cil_tmp93 = __cil_tmp92 / __cil_tmp89; __cil_tmp94 = __cil_tmp93 - 1; bpbMaximumTrack = (unsigned short )__cil_tmp94; bpbMediaType = (enum _MEDIA_TYPE )0; i = 0UL; { while (1) { while_136_continue: /* CIL Label */ ; { __cil_tmp95 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp96 = (unsigned int )__cil_tmp95; __cil_tmp97 = __cil_tmp96 + 732; mem_217 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp97; __cil_tmp98 = *mem_217; __cil_tmp99 = (int )__cil_tmp98; if (__cil_tmp99 == 1) { tmp = 21; } else { tmp = 17; } } { __cil_tmp100 = (unsigned long )tmp; __cil_tmp101 = i < __cil_tmp100; if (! __cil_tmp101) { goto while_136_break; } else { } } { __cil_tmp102 = DriveMediaConstants + i; __cil_tmp103 = (unsigned int )__cil_tmp102; __cil_tmp104 = __cil_tmp103 + 36; mem_218 = (USHORT *)__cil_tmp104; __cil_tmp105 = *mem_218; __cil_tmp106 = (int )__cil_tmp105; __cil_tmp107 = (int )bpbBytesPerSector; if (__cil_tmp107 == __cil_tmp106) { { __cil_tmp108 = DriveMediaConstants + i; __cil_tmp109 = (unsigned int )__cil_tmp108; __cil_tmp110 = __cil_tmp109 + 38; mem_219 = (UCHAR *)__cil_tmp110; __cil_tmp111 = *mem_219; __cil_tmp112 = (int )__cil_tmp111; __cil_tmp113 = (int )bpbSectorsPerTrack; if (__cil_tmp113 == __cil_tmp112) { { __cil_tmp114 = DriveMediaConstants + i; __cil_tmp115 = (unsigned int )__cil_tmp114; __cil_tmp116 = __cil_tmp115 + 48; mem_220 = (UCHAR *)__cil_tmp116; __cil_tmp117 = *mem_220; __cil_tmp118 = (int )__cil_tmp117; __cil_tmp119 = (int )bpbMaximumTrack; if (__cil_tmp119 == __cil_tmp118) { { __cil_tmp120 = DriveMediaConstants + i; __cil_tmp121 = (unsigned int )__cil_tmp120; __cil_tmp122 = __cil_tmp121 + 51; mem_221 = (UCHAR *)__cil_tmp122; __cil_tmp123 = *mem_221; __cil_tmp124 = (int )__cil_tmp123; __cil_tmp125 = (int )bpbNumberOfHeads; if (__cil_tmp125 == __cil_tmp124) { { __cil_tmp126 = DriveMediaConstants + i; __cil_tmp127 = (unsigned int )__cil_tmp126; __cil_tmp128 = __cil_tmp127 + 53; mem_222 = (UCHAR *)__cil_tmp128; __cil_tmp129 = *mem_222; __cil_tmp130 = (int )__cil_tmp129; __cil_tmp131 = (int )bpbMediaByte; if (__cil_tmp131 == __cil_tmp130) { __cil_tmp132 = DriveMediaConstants + i; mem_223 = (MEDIA_TYPE *)__cil_tmp132; bpbMediaType = *mem_223; goto while_136_break; } else { } } } else { } } } else { } } } else { } } } else { } } i = i + 1UL; } while_136_break: /* CIL Label */ ; } { __cil_tmp133 = (unsigned int )DisketteExtension; __cil_tmp134 = __cil_tmp133 + 174; mem_224 = (UCHAR *)__cil_tmp134; __cil_tmp135 = *mem_224; __cil_tmp136 = (int )__cil_tmp135; if (__cil_tmp136 == 3) { if ((int )bpbMediaType == 15) { goto switch_137_15; } else { if ((int )bpbMediaType == 16) { goto switch_137_16; } else { if ((int )bpbMediaType == 1) { goto switch_137_1; } else { if ((int )bpbMediaType == 19) { goto switch_137_19; } else { { goto switch_137_default; if (0) { switch_137_15: /* CIL Label */ bpbMediaType = (enum _MEDIA_TYPE )14; goto switch_137_break; switch_137_16: /* CIL Label */ bpbMediaType = (enum _MEDIA_TYPE )5; goto switch_137_break; switch_137_1: /* CIL Label */ bpbMediaType = (enum _MEDIA_TYPE )17; goto switch_137_break; switch_137_19: /* CIL Label */ bpbMediaType = (enum _MEDIA_TYPE )18; goto switch_137_break; switch_137_default: /* CIL Label */ ; goto switch_137_break; } else { switch_137_break: /* CIL Label */ ; } } } } } } } else { } } { while (1) { while_138_continue: /* CIL Label */ ; goto while_138_break; } while_138_break: /* CIL Label */ ; } { while (1) { while_139_continue: /* CIL Label */ ; goto while_139_break; } while_139_break: /* CIL Label */ ; } { __cil_tmp137 = (unsigned int )DisketteExtension; __cil_tmp138 = __cil_tmp137 + 184; mem_225 = (MEDIA_TYPE *)__cil_tmp138; __cil_tmp139 = *mem_225; __cil_tmp140 = (int )__cil_tmp139; __cil_tmp141 = (int )bpbMediaType; if (__cil_tmp141 == __cil_tmp140) { changeToBpbMedia = (unsigned char)0; { while (1) { while_140_continue: /* CIL Label */ ; goto while_140_break; } while_140_break: /* CIL Label */ ; } } else { __cil_tmp142 = (unsigned int )DisketteExtension; __cil_tmp143 = __cil_tmp142 + 308; readidDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp143; { __cil_tmp144 = (unsigned int )readidDriveMediaConstants; __cil_tmp145 = __cil_tmp144 + 36; mem_226 = (USHORT *)__cil_tmp145; __cil_tmp146 = *mem_226; __cil_tmp147 = (int )__cil_tmp146; __cil_tmp148 = (int )bpbBytesPerSector; if (__cil_tmp148 == __cil_tmp147) { { __cil_tmp149 = (int )bpbSectorsPerTrack; if (__cil_tmp149 < 256) { { __cil_tmp150 = (unsigned int )readidDriveMediaConstants; __cil_tmp151 = __cil_tmp150 + 48; mem_227 = (UCHAR *)__cil_tmp151; __cil_tmp152 = *mem_227; __cil_tmp153 = (int )__cil_tmp152; __cil_tmp154 = (int )bpbMaximumTrack; if (__cil_tmp154 == __cil_tmp153) { { __cil_tmp155 = (unsigned int )readidDriveMediaConstants; __cil_tmp156 = __cil_tmp155 + 51; mem_228 = (UCHAR *)__cil_tmp156; __cil_tmp157 = *mem_228; __cil_tmp158 = (int )__cil_tmp157; __cil_tmp159 = (int )bpbNumberOfHeads; if (__cil_tmp159 <= __cil_tmp158) { changeToBpbMedia = (unsigned char)1; } else { changeToBpbMedia = (unsigned char)0; } } } else { changeToBpbMedia = (unsigned char)0; } } } else { changeToBpbMedia = (unsigned char)0; } } } else { changeToBpbMedia = (unsigned char)0; } } { while (1) { while_141_continue: /* CIL Label */ ; goto while_141_break; } while_141_break: /* CIL Label */ ; } { __cil_tmp160 = (int )bpbMediaType; if (__cil_tmp160 == 0) { mem_229 = (MEDIA_TYPE *)readidDriveMediaConstants; bpbMediaType = *mem_229; __cil_tmp161 = 308 + 54; __cil_tmp162 = (unsigned int )DisketteExtension; __cil_tmp163 = __cil_tmp162 + __cil_tmp161; mem_230 = (UCHAR *)__cil_tmp163; *mem_230 = (unsigned char)0; } else { } } } } if (changeToBpbMedia) { __cil_tmp164 = (unsigned int )DisketteExtension; __cil_tmp165 = __cil_tmp164 + 174; mem_231 = (UCHAR *)__cil_tmp165; __cil_tmp166 = *mem_231; __cil_tmp167 = (int )__cil_tmp166; __cil_tmp168 = DriveMediaLimits + __cil_tmp167; __cil_tmp169 = (unsigned int )__cil_tmp168; __cil_tmp170 = __cil_tmp169 + 32; mem_232 = (DRIVE_MEDIA_TYPE *)__cil_tmp170; __cil_tmp171 = *mem_232; i = (unsigned long )__cil_tmp171; __cil_tmp172 = (unsigned int )DisketteExtension; __cil_tmp173 = __cil_tmp172 + 174; mem_233 = (UCHAR *)__cil_tmp173; __cil_tmp174 = *mem_233; __cil_tmp175 = (int )__cil_tmp174; __cil_tmp176 = DriveMediaLimits + __cil_tmp175; mem_234 = (DRIVE_MEDIA_TYPE *)__cil_tmp176; __cil_tmp177 = *mem_234; n = (unsigned long )__cil_tmp177; { while (1) { while_142_continue: /* CIL Label */ ; if (i <= n) { } else { goto while_142_break; } { __cil_tmp178 = DriveMediaConstants + i; mem_235 = (MEDIA_TYPE *)__cil_tmp178; __cil_tmp179 = *mem_235; __cil_tmp180 = (int )__cil_tmp179; __cil_tmp181 = (int )bpbMediaType; if (__cil_tmp181 == __cil_tmp180) { __cil_tmp182 = (unsigned int )DisketteExtension; __cil_tmp183 = __cil_tmp182 + 216; mem_236 = (DRIVE_MEDIA_TYPE *)__cil_tmp183; *mem_236 = (enum _DRIVE_MEDIA_TYPE )i; goto while_142_break; } else { } } i = i + 1UL; } while_142_break: /* CIL Label */ ; } { __cil_tmp184 = (unsigned int )DisketteExtension; __cil_tmp185 = __cil_tmp184 + 184; mem_237 = (MEDIA_TYPE *)__cil_tmp185; *mem_237 = bpbMediaType; __cil_tmp186 = (unsigned int )DisketteExtension; __cil_tmp187 = __cil_tmp186 + 180; __cil_tmp188 = (int )bpbBytesPerSector; __cil_tmp189 = (int )bpbNumberOfSectors; __cil_tmp190 = __cil_tmp189 * __cil_tmp188; mem_238 = (ULONG *)__cil_tmp187; *mem_238 = (unsigned long )__cil_tmp190; __cil_tmp191 = 308 + 38; __cil_tmp192 = (unsigned int )DisketteExtension; __cil_tmp193 = __cil_tmp192 + __cil_tmp191; mem_239 = (UCHAR *)__cil_tmp193; *mem_239 = (unsigned char )bpbSectorsPerTrack; __cil_tmp194 = 308 + 51; __cil_tmp195 = (unsigned int )DisketteExtension; __cil_tmp196 = __cil_tmp195 + __cil_tmp194; mem_240 = (UCHAR *)__cil_tmp196; *mem_240 = (unsigned char )bpbNumberOfHeads; __cil_tmp197 = 0 * 1U; __cil_tmp198 = 3 + __cil_tmp197; __cil_tmp199 = (unsigned int )BootSector; __cil_tmp200 = __cil_tmp199 + __cil_tmp198; __cil_tmp201 = (UCHAR *)__cil_tmp200; __cil_tmp202 = (void const *)__cil_tmp201; __cil_tmp203 = (void const *)"MSDMF3."; tmp___0 = RtlCompareMemory(__cil_tmp202, __cil_tmp203, 7UL); } if (tmp___0 == 7UL) { __cil_tmp204 = (unsigned int )DisketteExtension; __cil_tmp205 = __cil_tmp204 + 250; mem_241 = (BOOLEAN *)__cil_tmp205; *mem_241 = (unsigned char)1; } else { } } else { } return; } } void FlCheckBootSector(PDISKETTE_EXTENSION DisketteExtension ) { PBOOT_SECTOR_INFO bootSector ; LARGE_INTEGER offset ; PIRP irp ; NTSTATUS status ; int tmp ; PVOID tmp___0 ; int tmp___1 ; KUSER_SHARED_DATA *__cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp12 ; int __cil_tmp13 ; enum _POOL_TYPE __cil_tmp14 ; unsigned long __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; LARGE_INTEGER *__cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; LONG __cil_tmp21 ; KUSER_SHARED_DATA *__cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp25 ; int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; PDEVICE_OBJECT __cil_tmp29 ; void *__cil_tmp30 ; unsigned long __cil_tmp31 ; void *__cil_tmp32 ; struct _IO_STATUS_BLOCK *__cil_tmp33 ; void *__cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; CHAR __cil_tmp39 ; int __cil_tmp40 ; int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; struct _IO_STACK_LOCATION *__cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; PMDL __cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; PMDL __cil_tmp58 ; void *__cil_tmp59 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_60 ; LONG *mem_61 ; LONG *mem_62 ; ULONG *mem_63 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_64 ; PDEVICE_OBJECT *mem_65 ; CHAR *mem_66 ; CHAR *mem_67 ; struct _IO_STACK_LOCATION **mem_68 ; struct _IO_STACK_LOCATION **mem_69 ; PMDL *mem_70 ; PMDL *mem_71 ; { { __cil_tmp9 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp10 = (unsigned int )__cil_tmp9; __cil_tmp11 = __cil_tmp10 + 732; mem_60 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp11; __cil_tmp12 = *mem_60; __cil_tmp13 = (int )__cil_tmp12; if (__cil_tmp13 == 1) { tmp = 1024; } else { tmp = 512; } } { __cil_tmp14 = (enum _POOL_TYPE )4; __cil_tmp15 = (unsigned long )tmp; tmp___0 = ExAllocatePoolWithTag(__cil_tmp14, __cil_tmp15, 1886350406UL); bootSector = (struct _BOOT_SECTOR_INFO *)tmp___0; } if (! bootSector) { } else { } __cil_tmp16 = 0 + 4; __cil_tmp17 = (unsigned int )(& offset) + __cil_tmp16; mem_61 = (LONG *)__cil_tmp17; *mem_61 = 0L; __cil_tmp18 = & offset; __cil_tmp19 = 0 + 4; __cil_tmp20 = (unsigned int )(& offset) + __cil_tmp19; mem_62 = (LONG *)__cil_tmp20; __cil_tmp21 = *mem_62; mem_63 = (ULONG *)__cil_tmp18; *mem_63 = (unsigned long )__cil_tmp21; { __cil_tmp22 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp23 = (unsigned int )__cil_tmp22; __cil_tmp24 = __cil_tmp23 + 732; mem_64 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp24; __cil_tmp25 = *mem_64; __cil_tmp26 = (int )__cil_tmp25; if (__cil_tmp26 == 1) { tmp___1 = 1024; } else { tmp___1 = 512; } } { __cil_tmp27 = (unsigned int )DisketteExtension; __cil_tmp28 = __cil_tmp27 + 28; mem_65 = (PDEVICE_OBJECT *)__cil_tmp28; __cil_tmp29 = *mem_65; __cil_tmp30 = (void *)bootSector; __cil_tmp31 = (unsigned long )tmp___1; __cil_tmp32 = (void *)0; __cil_tmp33 = (struct _IO_STATUS_BLOCK *)__cil_tmp32; irp = IoBuildAsynchronousFsdRequest(3UL, __cil_tmp29, __cil_tmp30, __cil_tmp31, & offset, __cil_tmp33); } if (! irp) { { __cil_tmp34 = (void *)bootSector; ExFreePool(__cil_tmp34); } } else { } { __cil_tmp35 = (unsigned int )irp; __cil_tmp36 = __cil_tmp35 + 35; __cil_tmp37 = (unsigned int )irp; __cil_tmp38 = __cil_tmp37 + 35; mem_66 = (CHAR *)__cil_tmp38; __cil_tmp39 = *mem_66; __cil_tmp40 = (int )__cil_tmp39; __cil_tmp41 = __cil_tmp40 - 1; mem_67 = (CHAR *)__cil_tmp36; *mem_67 = (char )__cil_tmp41; __cil_tmp42 = 24 + 8; __cil_tmp43 = 0 + __cil_tmp42; __cil_tmp44 = 64 + __cil_tmp43; __cil_tmp45 = (unsigned int )irp; __cil_tmp46 = __cil_tmp45 + __cil_tmp44; __cil_tmp47 = 24 + 8; __cil_tmp48 = 0 + __cil_tmp47; __cil_tmp49 = 64 + __cil_tmp48; __cil_tmp50 = (unsigned int )irp; __cil_tmp51 = __cil_tmp50 + __cil_tmp49; mem_68 = (struct _IO_STACK_LOCATION **)__cil_tmp51; __cil_tmp52 = *mem_68; mem_69 = (struct _IO_STACK_LOCATION **)__cil_tmp46; *mem_69 = __cil_tmp52 - 1; status = FlReadWrite(DisketteExtension, irp, (unsigned char)1); __cil_tmp53 = (unsigned int )irp; __cil_tmp54 = __cil_tmp53 + 4; mem_70 = (PMDL *)__cil_tmp54; __cil_tmp55 = *mem_70; MmUnlockPages(__cil_tmp55); __cil_tmp56 = (unsigned int )irp; __cil_tmp57 = __cil_tmp56 + 4; mem_71 = (PMDL *)__cil_tmp57; __cil_tmp58 = *mem_71; IoFreeMdl(__cil_tmp58); IoFreeIrp(irp); __cil_tmp59 = (void *)bootSector; ExFreePool(__cil_tmp59); } return; } } NTSTATUS FlReadWriteTrack(PDISKETTE_EXTENSION DisketteExtension , PMDL IoMdl , ULONG IoOffset , BOOLEAN WriteOperation , UCHAR Cylinder , UCHAR Head , UCHAR Sector , UCHAR NumberOfSectors , BOOLEAN NeedSeek ) { PDRIVE_MEDIA_CONSTANTS driveMediaConstants ; ULONG byteToSectorShift ; ULONG transferBytes ; LARGE_INTEGER headSettleTime ; NTSTATUS status ; ULONG seekRetry ; ULONG ioRetry ; BOOLEAN recalibrateDrive ; UCHAR i ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; UCHAR __cil_tmp23 ; int __cil_tmp24 ; int __cil_tmp25 ; unsigned long __cil_tmp26 ; LARGE_INTEGER *__cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; UCHAR __cil_tmp30 ; int __cil_tmp31 ; int __cil_tmp32 ; int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; BOOLEAN __cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; UCHAR __cil_tmp41 ; int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; UCHAR __cil_tmp53 ; int __cil_tmp54 ; int __cil_tmp55 ; int __cil_tmp56 ; int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; UCHAR __cil_tmp64 ; int __cil_tmp65 ; int __cil_tmp66 ; int __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; UCHAR *__cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; UCHAR *__cil_tmp77 ; void *__cil_tmp78 ; struct _MDL *__cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; UCHAR __cil_tmp84 ; int __cil_tmp85 ; int __cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; unsigned int __cil_tmp90 ; UCHAR __cil_tmp91 ; int __cil_tmp92 ; int __cil_tmp93 ; int __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; unsigned int __cil_tmp98 ; UCHAR __cil_tmp99 ; int __cil_tmp100 ; unsigned int __cil_tmp101 ; unsigned int __cil_tmp102 ; unsigned int __cil_tmp103 ; unsigned int __cil_tmp104 ; unsigned int __cil_tmp105 ; unsigned int __cil_tmp106 ; unsigned int __cil_tmp107 ; unsigned int __cil_tmp108 ; unsigned int __cil_tmp109 ; unsigned int __cil_tmp110 ; unsigned int __cil_tmp111 ; unsigned int __cil_tmp112 ; UCHAR __cil_tmp113 ; int __cil_tmp114 ; int __cil_tmp115 ; int __cil_tmp116 ; int __cil_tmp117 ; unsigned int __cil_tmp118 ; unsigned int __cil_tmp119 ; unsigned int __cil_tmp120 ; unsigned int __cil_tmp121 ; UCHAR *__cil_tmp122 ; unsigned int __cil_tmp123 ; unsigned int __cil_tmp124 ; unsigned int __cil_tmp125 ; unsigned int __cil_tmp126 ; UCHAR *__cil_tmp127 ; void *__cil_tmp128 ; struct _MDL *__cil_tmp129 ; KUSER_SHARED_DATA *__cil_tmp130 ; unsigned int __cil_tmp131 ; unsigned int __cil_tmp132 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp133 ; int __cil_tmp134 ; unsigned int __cil_tmp135 ; unsigned int __cil_tmp136 ; unsigned int __cil_tmp137 ; unsigned int __cil_tmp138 ; UCHAR __cil_tmp139 ; int __cil_tmp140 ; unsigned int __cil_tmp141 ; unsigned int __cil_tmp142 ; UCHAR __cil_tmp143 ; int __cil_tmp144 ; int __cil_tmp145 ; int __cil_tmp146 ; int __cil_tmp147 ; unsigned int __cil_tmp148 ; unsigned int __cil_tmp149 ; unsigned int __cil_tmp150 ; unsigned int __cil_tmp151 ; UCHAR __cil_tmp152 ; int __cil_tmp153 ; unsigned int __cil_tmp154 ; unsigned int __cil_tmp155 ; unsigned int __cil_tmp156 ; unsigned int __cil_tmp157 ; unsigned int __cil_tmp158 ; unsigned int __cil_tmp159 ; UCHAR __cil_tmp160 ; unsigned int __cil_tmp161 ; unsigned int __cil_tmp162 ; unsigned int __cil_tmp163 ; unsigned int __cil_tmp164 ; UCHAR __cil_tmp165 ; unsigned int __cil_tmp166 ; unsigned int __cil_tmp167 ; unsigned int __cil_tmp168 ; unsigned int __cil_tmp169 ; UCHAR __cil_tmp170 ; int __cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; unsigned int __cil_tmp174 ; unsigned int __cil_tmp175 ; unsigned int __cil_tmp176 ; unsigned int __cil_tmp177 ; UCHAR __cil_tmp178 ; unsigned int __cil_tmp179 ; unsigned int __cil_tmp180 ; unsigned int __cil_tmp181 ; unsigned int __cil_tmp182 ; UCHAR __cil_tmp183 ; unsigned int __cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; unsigned int __cil_tmp187 ; UCHAR __cil_tmp188 ; int __cil_tmp189 ; unsigned int __cil_tmp190 ; unsigned int __cil_tmp191 ; unsigned int __cil_tmp192 ; unsigned int __cil_tmp193 ; unsigned int __cil_tmp194 ; unsigned int __cil_tmp195 ; UCHAR __cil_tmp196 ; unsigned int __cil_tmp197 ; unsigned int __cil_tmp198 ; unsigned int __cil_tmp199 ; unsigned int __cil_tmp200 ; UCHAR __cil_tmp201 ; int __cil_tmp202 ; unsigned int __cil_tmp203 ; unsigned int __cil_tmp204 ; unsigned int __cil_tmp205 ; unsigned int __cil_tmp206 ; UCHAR __cil_tmp207 ; int __cil_tmp208 ; unsigned int __cil_tmp209 ; unsigned int __cil_tmp210 ; unsigned int __cil_tmp211 ; unsigned int __cil_tmp212 ; unsigned int __cil_tmp213 ; unsigned int __cil_tmp214 ; UCHAR __cil_tmp215 ; unsigned int __cil_tmp216 ; unsigned int __cil_tmp217 ; unsigned int __cil_tmp218 ; unsigned int __cil_tmp219 ; UCHAR __cil_tmp220 ; int __cil_tmp221 ; unsigned int __cil_tmp222 ; unsigned int __cil_tmp223 ; unsigned int __cil_tmp224 ; unsigned int __cil_tmp225 ; unsigned int __cil_tmp226 ; unsigned int __cil_tmp227 ; UCHAR __cil_tmp228 ; int __cil_tmp229 ; int __cil_tmp230 ; int __cil_tmp231 ; int __cil_tmp232 ; unsigned int __cil_tmp233 ; unsigned int __cil_tmp234 ; unsigned int __cil_tmp235 ; unsigned int __cil_tmp236 ; unsigned int __cil_tmp237 ; unsigned int __cil_tmp238 ; unsigned int __cil_tmp239 ; unsigned int __cil_tmp240 ; unsigned int __cil_tmp241 ; unsigned int __cil_tmp242 ; unsigned int __cil_tmp243 ; unsigned int __cil_tmp244 ; int __cil_tmp245 ; int __cil_tmp246 ; unsigned int __cil_tmp247 ; unsigned int __cil_tmp248 ; unsigned int __cil_tmp249 ; unsigned int __cil_tmp250 ; unsigned int __cil_tmp251 ; unsigned int __cil_tmp252 ; unsigned int __cil_tmp253 ; unsigned int __cil_tmp254 ; unsigned int __cil_tmp255 ; unsigned int __cil_tmp256 ; int __cil_tmp257 ; int __cil_tmp258 ; int __cil_tmp259 ; unsigned int __cil_tmp260 ; unsigned int __cil_tmp261 ; unsigned int __cil_tmp262 ; unsigned int __cil_tmp263 ; unsigned int __cil_tmp264 ; unsigned int __cil_tmp265 ; unsigned int __cil_tmp266 ; unsigned int __cil_tmp267 ; unsigned int __cil_tmp268 ; unsigned int __cil_tmp269 ; unsigned int __cil_tmp270 ; unsigned int __cil_tmp271 ; unsigned int __cil_tmp272 ; unsigned int __cil_tmp273 ; unsigned int __cil_tmp274 ; unsigned int __cil_tmp275 ; unsigned int __cil_tmp276 ; unsigned int __cil_tmp277 ; unsigned int __cil_tmp278 ; unsigned int __cil_tmp279 ; unsigned int __cil_tmp280 ; unsigned int __cil_tmp281 ; unsigned int __cil_tmp282 ; unsigned int __cil_tmp283 ; UCHAR *__cil_tmp284 ; unsigned int __cil_tmp285 ; unsigned int __cil_tmp286 ; unsigned int __cil_tmp287 ; unsigned int __cil_tmp288 ; UCHAR *__cil_tmp289 ; KUSER_SHARED_DATA *__cil_tmp290 ; unsigned int __cil_tmp291 ; unsigned int __cil_tmp292 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp293 ; int __cil_tmp294 ; unsigned int __cil_tmp295 ; unsigned int __cil_tmp296 ; unsigned int __cil_tmp297 ; unsigned int __cil_tmp298 ; UCHAR __cil_tmp299 ; int __cil_tmp300 ; unsigned int __cil_tmp301 ; unsigned int __cil_tmp302 ; unsigned int __cil_tmp303 ; unsigned int __cil_tmp304 ; UCHAR __cil_tmp305 ; int __cil_tmp306 ; int __cil_tmp307 ; unsigned int __cil_tmp308 ; unsigned int __cil_tmp309 ; unsigned int __cil_tmp310 ; unsigned int __cil_tmp311 ; UCHAR __cil_tmp312 ; int __cil_tmp313 ; int __cil_tmp314 ; unsigned int __cil_tmp315 ; unsigned int __cil_tmp316 ; unsigned int __cil_tmp317 ; unsigned int __cil_tmp318 ; unsigned int __cil_tmp319 ; unsigned int __cil_tmp320 ; UCHAR __cil_tmp321 ; unsigned int __cil_tmp322 ; unsigned int __cil_tmp323 ; unsigned int __cil_tmp324 ; unsigned int __cil_tmp325 ; UCHAR __cil_tmp326 ; unsigned int __cil_tmp327 ; unsigned int __cil_tmp328 ; unsigned int __cil_tmp329 ; unsigned int __cil_tmp330 ; UCHAR __cil_tmp331 ; int __cil_tmp332 ; unsigned int __cil_tmp333 ; unsigned int __cil_tmp334 ; unsigned int __cil_tmp335 ; unsigned int __cil_tmp336 ; unsigned int __cil_tmp337 ; unsigned int __cil_tmp338 ; UCHAR __cil_tmp339 ; unsigned int __cil_tmp340 ; unsigned int __cil_tmp341 ; unsigned int __cil_tmp342 ; unsigned int __cil_tmp343 ; UCHAR __cil_tmp344 ; unsigned int __cil_tmp345 ; unsigned int __cil_tmp346 ; unsigned int __cil_tmp347 ; unsigned int __cil_tmp348 ; UCHAR __cil_tmp349 ; int __cil_tmp350 ; unsigned int __cil_tmp351 ; unsigned int __cil_tmp352 ; unsigned int __cil_tmp353 ; unsigned int __cil_tmp354 ; unsigned int __cil_tmp355 ; unsigned int __cil_tmp356 ; UCHAR __cil_tmp357 ; unsigned int __cil_tmp358 ; unsigned int __cil_tmp359 ; unsigned int __cil_tmp360 ; unsigned int __cil_tmp361 ; UCHAR __cil_tmp362 ; unsigned int __cil_tmp363 ; unsigned int __cil_tmp364 ; unsigned int __cil_tmp365 ; unsigned int __cil_tmp366 ; UCHAR __cil_tmp367 ; int __cil_tmp368 ; unsigned int __cil_tmp369 ; unsigned int __cil_tmp370 ; int __cil_tmp371 ; int __cil_tmp372 ; int __cil_tmp373 ; int __cil_tmp374 ; unsigned long __cil_tmp375 ; unsigned long __cil_tmp376 ; ULONG __cil_tmp377 ; int __cil_tmp378 ; int __cil_tmp379 ; int __cil_tmp380 ; unsigned char __cil_tmp381 ; int __cil_tmp382 ; unsigned int __cil_tmp383 ; unsigned int __cil_tmp384 ; int __cil_tmp385 ; int __cil_tmp386 ; UCHAR *mem_387 ; UCHAR *mem_388 ; ULONG *mem_389 ; LONG *mem_390 ; BOOLEAN *mem_391 ; UCHAR *mem_392 ; UCHAR *mem_393 ; UCHAR *mem_394 ; UCHAR *mem_395 ; UCHAR *mem_396 ; UCHAR *mem_397 ; UCHAR *mem_398 ; BOOLEAN *mem_399 ; UCHAR *mem_400 ; UCHAR *mem_401 ; BOOLEAN *mem_402 ; UCHAR *mem_403 ; UCHAR *mem_404 ; UCHAR *mem_405 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_406 ; UCHAR *mem_407 ; UCHAR *mem_408 ; UCHAR *mem_409 ; BOOLEAN *mem_410 ; UCHAR *mem_411 ; UCHAR *mem_412 ; UCHAR *mem_413 ; BOOLEAN *mem_414 ; UCHAR *mem_415 ; UCHAR *mem_416 ; UCHAR *mem_417 ; BOOLEAN *mem_418 ; UCHAR *mem_419 ; UCHAR *mem_420 ; UCHAR *mem_421 ; BOOLEAN *mem_422 ; UCHAR *mem_423 ; UCHAR *mem_424 ; UCHAR *mem_425 ; UCHAR *mem_426 ; UCHAR *mem_427 ; UCHAR *mem_428 ; UCHAR *mem_429 ; UCHAR *mem_430 ; UCHAR *mem_431 ; UCHAR *mem_432 ; UCHAR *mem_433 ; UCHAR *mem_434 ; UCHAR *mem_435 ; UCHAR *mem_436 ; UCHAR *mem_437 ; UCHAR *mem_438 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_439 ; UCHAR *mem_440 ; UCHAR *mem_441 ; UCHAR *mem_442 ; BOOLEAN *mem_443 ; UCHAR *mem_444 ; UCHAR *mem_445 ; UCHAR *mem_446 ; BOOLEAN *mem_447 ; UCHAR *mem_448 ; UCHAR *mem_449 ; UCHAR *mem_450 ; BOOLEAN *mem_451 ; UCHAR *mem_452 ; UCHAR *mem_453 ; UCHAR *mem_454 ; BOOLEAN *mem_455 ; BOOLEAN *mem_456 ; { recalibrateDrive = (unsigned char)0; { while (1) { while_143_continue: /* CIL Label */ ; goto while_143_break; } while_143_break: /* CIL Label */ ; } __cil_tmp19 = (unsigned int )DisketteExtension; __cil_tmp20 = __cil_tmp19 + 308; driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp20; __cil_tmp21 = (unsigned int )driveMediaConstants; __cil_tmp22 = __cil_tmp21 + 35; mem_387 = (UCHAR *)__cil_tmp22; __cil_tmp23 = *mem_387; __cil_tmp24 = (int )__cil_tmp23; __cil_tmp25 = 7 + __cil_tmp24; byteToSectorShift = (unsigned long )__cil_tmp25; __cil_tmp26 = (unsigned long )NumberOfSectors; transferBytes = __cil_tmp26 << byteToSectorShift; __cil_tmp27 = & headSettleTime; __cil_tmp28 = (unsigned int )driveMediaConstants; __cil_tmp29 = __cil_tmp28 + 42; mem_388 = (UCHAR *)__cil_tmp29; __cil_tmp30 = *mem_388; __cil_tmp31 = (int )__cil_tmp30; __cil_tmp32 = 10000 * __cil_tmp31; __cil_tmp33 = - __cil_tmp32; mem_389 = (ULONG *)__cil_tmp27; *mem_389 = (unsigned long )__cil_tmp33; __cil_tmp34 = 0 + 4; __cil_tmp35 = (unsigned int )(& headSettleTime) + __cil_tmp34; mem_390 = (LONG *)__cil_tmp35; *mem_390 = -1L; seekRetry = 0UL; ioRetry = 0UL; { while (1) { while_144_continue: /* CIL Label */ ; if (seekRetry < 3UL) { } else { goto while_144_break; } if (recalibrateDrive) { { while (1) { while_145_continue: /* CIL Label */ ; goto while_145_break; } while_145_break: /* CIL Label */ ; } { FlRecalibrateDrive(DisketteExtension); } } else { } if (recalibrateDrive) { goto _L___0; } else { if (NeedSeek) { { __cil_tmp36 = (unsigned int )DisketteExtension; __cil_tmp37 = __cil_tmp36 + 365; mem_391 = (BOOLEAN *)__cil_tmp37; __cil_tmp38 = *mem_391; if (! __cil_tmp38) { goto _L___0; } else { { __cil_tmp39 = (unsigned int )driveMediaConstants; __cil_tmp40 = __cil_tmp39 + 49; mem_392 = (UCHAR *)__cil_tmp40; __cil_tmp41 = *mem_392; __cil_tmp42 = (int )__cil_tmp41; if (__cil_tmp42 != 0) { _L___0: { __cil_tmp43 = 0 * 1U; __cil_tmp44 = 112 + __cil_tmp43; __cil_tmp45 = (unsigned int )DisketteExtension; __cil_tmp46 = __cil_tmp45 + __cil_tmp44; mem_393 = (UCHAR *)__cil_tmp46; *mem_393 = (unsigned char)16; __cil_tmp47 = 1 * 1U; __cil_tmp48 = 112 + __cil_tmp47; __cil_tmp49 = (unsigned int )DisketteExtension; __cil_tmp50 = __cil_tmp49 + __cil_tmp48; __cil_tmp51 = (unsigned int )DisketteExtension; __cil_tmp52 = __cil_tmp51 + 248; mem_394 = (UCHAR *)__cil_tmp52; __cil_tmp53 = *mem_394; __cil_tmp54 = (int )__cil_tmp53; __cil_tmp55 = (int )Head; __cil_tmp56 = __cil_tmp55 << 2; __cil_tmp57 = __cil_tmp56 | __cil_tmp54; mem_395 = (UCHAR *)__cil_tmp50; *mem_395 = (unsigned char )__cil_tmp57; __cil_tmp58 = 2 * 1U; __cil_tmp59 = 112 + __cil_tmp58; __cil_tmp60 = (unsigned int )DisketteExtension; __cil_tmp61 = __cil_tmp60 + __cil_tmp59; __cil_tmp62 = (unsigned int )driveMediaConstants; __cil_tmp63 = __cil_tmp62 + 49; mem_396 = (UCHAR *)__cil_tmp63; __cil_tmp64 = *mem_396; __cil_tmp65 = (int )__cil_tmp64; __cil_tmp66 = (int )Cylinder; __cil_tmp67 = __cil_tmp66 << __cil_tmp65; mem_397 = (UCHAR *)__cil_tmp61; *mem_397 = (unsigned char )__cil_tmp67; __cil_tmp68 = 0 * 1U; __cil_tmp69 = 112 + __cil_tmp68; __cil_tmp70 = (unsigned int )DisketteExtension; __cil_tmp71 = __cil_tmp70 + __cil_tmp69; __cil_tmp72 = (UCHAR *)__cil_tmp71; __cil_tmp73 = 0 * 1U; __cil_tmp74 = 112 + __cil_tmp73; __cil_tmp75 = (unsigned int )DisketteExtension; __cil_tmp76 = __cil_tmp75 + __cil_tmp74; __cil_tmp77 = (UCHAR *)__cil_tmp76; __cil_tmp78 = (void *)0; __cil_tmp79 = (struct _MDL *)__cil_tmp78; status = FlIssueCommand(DisketteExtension, __cil_tmp72, __cil_tmp77, __cil_tmp79, 0UL, 0UL); } if (status >= 0L) { { __cil_tmp80 = 0 * 1U; __cil_tmp81 = 112 + __cil_tmp80; __cil_tmp82 = (unsigned int )DisketteExtension; __cil_tmp83 = __cil_tmp82 + __cil_tmp81; mem_398 = (UCHAR *)__cil_tmp83; __cil_tmp84 = *mem_398; __cil_tmp85 = (int )__cil_tmp84; __cil_tmp86 = __cil_tmp85 & 32; if (! __cil_tmp86) { __cil_tmp87 = (unsigned int )DisketteExtension; __cil_tmp88 = __cil_tmp87 + 104; mem_399 = (BOOLEAN *)__cil_tmp88; *mem_399 = (unsigned char)1; status = -1073741464L; } else { { __cil_tmp89 = (unsigned int )driveMediaConstants; __cil_tmp90 = __cil_tmp89 + 49; mem_400 = (UCHAR *)__cil_tmp90; __cil_tmp91 = *mem_400; __cil_tmp92 = (int )__cil_tmp91; __cil_tmp93 = (int )Cylinder; __cil_tmp94 = __cil_tmp93 << __cil_tmp92; __cil_tmp95 = 1 * 1U; __cil_tmp96 = 112 + __cil_tmp95; __cil_tmp97 = (unsigned int )DisketteExtension; __cil_tmp98 = __cil_tmp97 + __cil_tmp96; mem_401 = (UCHAR *)__cil_tmp98; __cil_tmp99 = *mem_401; __cil_tmp100 = (int )__cil_tmp99; if (__cil_tmp100 != __cil_tmp94) { __cil_tmp101 = (unsigned int )DisketteExtension; __cil_tmp102 = __cil_tmp101 + 104; mem_402 = (BOOLEAN *)__cil_tmp102; *mem_402 = (unsigned char)1; status = -1073741464L; } else { } } } } if (status >= 0L) { { KeDelayExecutionThread((char)0, (unsigned char)0, & headSettleTime); __cil_tmp103 = 0 * 1U; __cil_tmp104 = 112 + __cil_tmp103; __cil_tmp105 = (unsigned int )DisketteExtension; __cil_tmp106 = __cil_tmp105 + __cil_tmp104; mem_403 = (UCHAR *)__cil_tmp106; *mem_403 = (unsigned char)84; __cil_tmp107 = 1 * 1U; __cil_tmp108 = 112 + __cil_tmp107; __cil_tmp109 = (unsigned int )DisketteExtension; __cil_tmp110 = __cil_tmp109 + __cil_tmp108; __cil_tmp111 = (unsigned int )DisketteExtension; __cil_tmp112 = __cil_tmp111 + 248; mem_404 = (UCHAR *)__cil_tmp112; __cil_tmp113 = *mem_404; __cil_tmp114 = (int )__cil_tmp113; __cil_tmp115 = (int )Head; __cil_tmp116 = __cil_tmp115 << 2; __cil_tmp117 = __cil_tmp116 | __cil_tmp114; mem_405 = (UCHAR *)__cil_tmp110; *mem_405 = (unsigned char )__cil_tmp117; __cil_tmp118 = 0 * 1U; __cil_tmp119 = 112 + __cil_tmp118; __cil_tmp120 = (unsigned int )DisketteExtension; __cil_tmp121 = __cil_tmp120 + __cil_tmp119; __cil_tmp122 = (UCHAR *)__cil_tmp121; __cil_tmp123 = 0 * 1U; __cil_tmp124 = 112 + __cil_tmp123; __cil_tmp125 = (unsigned int )DisketteExtension; __cil_tmp126 = __cil_tmp125 + __cil_tmp124; __cil_tmp127 = (UCHAR *)__cil_tmp126; __cil_tmp128 = (void *)0; __cil_tmp129 = (struct _MDL *)__cil_tmp128; status = FlIssueCommand(DisketteExtension, __cil_tmp122, __cil_tmp127, __cil_tmp129, 0UL, 0UL); } if (status >= 0L) { { __cil_tmp130 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp131 = (unsigned int )__cil_tmp130; __cil_tmp132 = __cil_tmp131 + 732; mem_406 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp132; __cil_tmp133 = *mem_406; __cil_tmp134 = (int )__cil_tmp133; if (__cil_tmp134 == 1) { { __cil_tmp135 = 0 * 1U; __cil_tmp136 = 112 + __cil_tmp135; __cil_tmp137 = (unsigned int )DisketteExtension; __cil_tmp138 = __cil_tmp137 + __cil_tmp136; mem_407 = (UCHAR *)__cil_tmp138; __cil_tmp139 = *mem_407; __cil_tmp140 = (int )__cil_tmp139; if (__cil_tmp140 & 8) { return (-1073741661L); } else { } } } else { } } { __cil_tmp141 = (unsigned int )DisketteExtension; __cil_tmp142 = __cil_tmp141 + 248; mem_408 = (UCHAR *)__cil_tmp142; __cil_tmp143 = *mem_408; __cil_tmp144 = (int )__cil_tmp143; __cil_tmp145 = (int )Head; __cil_tmp146 = __cil_tmp145 << 2; __cil_tmp147 = __cil_tmp146 | __cil_tmp144; __cil_tmp148 = 0 * 1U; __cil_tmp149 = 112 + __cil_tmp148; __cil_tmp150 = (unsigned int )DisketteExtension; __cil_tmp151 = __cil_tmp150 + __cil_tmp149; mem_409 = (UCHAR *)__cil_tmp151; __cil_tmp152 = *mem_409; __cil_tmp153 = (int )__cil_tmp152; if (__cil_tmp153 != __cil_tmp147) { { __cil_tmp154 = (unsigned int )DisketteExtension; __cil_tmp155 = __cil_tmp154 + 104; mem_410 = (BOOLEAN *)__cil_tmp155; *mem_410 = (unsigned char)1; __cil_tmp156 = 1 * 1U; __cil_tmp157 = 112 + __cil_tmp156; __cil_tmp158 = (unsigned int )DisketteExtension; __cil_tmp159 = __cil_tmp158 + __cil_tmp157; mem_411 = (UCHAR *)__cil_tmp159; __cil_tmp160 = *mem_411; __cil_tmp161 = 2 * 1U; __cil_tmp162 = 112 + __cil_tmp161; __cil_tmp163 = (unsigned int )DisketteExtension; __cil_tmp164 = __cil_tmp163 + __cil_tmp162; mem_412 = (UCHAR *)__cil_tmp164; __cil_tmp165 = *mem_412; status = FlInterpretError(__cil_tmp160, __cil_tmp165); } } else { { __cil_tmp166 = 1 * 1U; __cil_tmp167 = 112 + __cil_tmp166; __cil_tmp168 = (unsigned int )DisketteExtension; __cil_tmp169 = __cil_tmp168 + __cil_tmp167; mem_413 = (UCHAR *)__cil_tmp169; __cil_tmp170 = *mem_413; __cil_tmp171 = (int )__cil_tmp170; if (__cil_tmp171 != 0) { { __cil_tmp172 = (unsigned int )DisketteExtension; __cil_tmp173 = __cil_tmp172 + 104; mem_414 = (BOOLEAN *)__cil_tmp173; *mem_414 = (unsigned char)1; __cil_tmp174 = 1 * 1U; __cil_tmp175 = 112 + __cil_tmp174; __cil_tmp176 = (unsigned int )DisketteExtension; __cil_tmp177 = __cil_tmp176 + __cil_tmp175; mem_415 = (UCHAR *)__cil_tmp177; __cil_tmp178 = *mem_415; __cil_tmp179 = 2 * 1U; __cil_tmp180 = 112 + __cil_tmp179; __cil_tmp181 = (unsigned int )DisketteExtension; __cil_tmp182 = __cil_tmp181 + __cil_tmp180; mem_416 = (UCHAR *)__cil_tmp182; __cil_tmp183 = *mem_416; status = FlInterpretError(__cil_tmp178, __cil_tmp183); } } else { { __cil_tmp184 = 2 * 1U; __cil_tmp185 = 112 + __cil_tmp184; __cil_tmp186 = (unsigned int )DisketteExtension; __cil_tmp187 = __cil_tmp186 + __cil_tmp185; mem_417 = (UCHAR *)__cil_tmp187; __cil_tmp188 = *mem_417; __cil_tmp189 = (int )__cil_tmp188; if (__cil_tmp189 != 0) { { __cil_tmp190 = (unsigned int )DisketteExtension; __cil_tmp191 = __cil_tmp190 + 104; mem_418 = (BOOLEAN *)__cil_tmp191; *mem_418 = (unsigned char)1; __cil_tmp192 = 1 * 1U; __cil_tmp193 = 112 + __cil_tmp192; __cil_tmp194 = (unsigned int )DisketteExtension; __cil_tmp195 = __cil_tmp194 + __cil_tmp193; mem_419 = (UCHAR *)__cil_tmp195; __cil_tmp196 = *mem_419; __cil_tmp197 = 2 * 1U; __cil_tmp198 = 112 + __cil_tmp197; __cil_tmp199 = (unsigned int )DisketteExtension; __cil_tmp200 = __cil_tmp199 + __cil_tmp198; mem_420 = (UCHAR *)__cil_tmp200; __cil_tmp201 = *mem_420; status = FlInterpretError(__cil_tmp196, __cil_tmp201); } } else { { __cil_tmp202 = (int )Cylinder; __cil_tmp203 = 3 * 1U; __cil_tmp204 = 112 + __cil_tmp203; __cil_tmp205 = (unsigned int )DisketteExtension; __cil_tmp206 = __cil_tmp205 + __cil_tmp204; mem_421 = (UCHAR *)__cil_tmp206; __cil_tmp207 = *mem_421; __cil_tmp208 = (int )__cil_tmp207; if (__cil_tmp208 != __cil_tmp202) { { __cil_tmp209 = (unsigned int )DisketteExtension; __cil_tmp210 = __cil_tmp209 + 104; mem_422 = (BOOLEAN *)__cil_tmp210; *mem_422 = (unsigned char)1; __cil_tmp211 = 1 * 1U; __cil_tmp212 = 112 + __cil_tmp211; __cil_tmp213 = (unsigned int )DisketteExtension; __cil_tmp214 = __cil_tmp213 + __cil_tmp212; mem_423 = (UCHAR *)__cil_tmp214; __cil_tmp215 = *mem_423; __cil_tmp216 = 2 * 1U; __cil_tmp217 = 112 + __cil_tmp216; __cil_tmp218 = (unsigned int )DisketteExtension; __cil_tmp219 = __cil_tmp218 + __cil_tmp217; mem_424 = (UCHAR *)__cil_tmp219; __cil_tmp220 = *mem_424; status = FlInterpretError(__cil_tmp215, __cil_tmp220); } } else { } } } } } } } } } else { { while (1) { while_146_continue: /* CIL Label */ ; goto while_146_break; } while_146_break: /* CIL Label */ ; } } } else { } } else { { while (1) { while_147_continue: /* CIL Label */ ; goto while_147_break; } while_147_break: /* CIL Label */ ; } } } else { status = 0L; } } } } } else { status = 0L; } } { __cil_tmp221 = status >= 0L; if (! __cil_tmp221) { { while (1) { while_148_continue: /* CIL Label */ ; goto while_148_break; } while_148_break: /* CIL Label */ ; } recalibrateDrive = (unsigned char)1; goto __Cont; } else { } } { while (1) { while_149_continue: /* CIL Label */ ; __cil_tmp222 = 1 * 1U; __cil_tmp223 = 112 + __cil_tmp222; __cil_tmp224 = (unsigned int )DisketteExtension; __cil_tmp225 = __cil_tmp224 + __cil_tmp223; __cil_tmp226 = (unsigned int )DisketteExtension; __cil_tmp227 = __cil_tmp226 + 248; mem_425 = (UCHAR *)__cil_tmp227; __cil_tmp228 = *mem_425; __cil_tmp229 = (int )__cil_tmp228; __cil_tmp230 = (int )Head; __cil_tmp231 = __cil_tmp230 << 2; __cil_tmp232 = __cil_tmp231 | __cil_tmp229; mem_426 = (UCHAR *)__cil_tmp225; *mem_426 = (unsigned char )__cil_tmp232; __cil_tmp233 = 2 * 1U; __cil_tmp234 = 112 + __cil_tmp233; __cil_tmp235 = (unsigned int )DisketteExtension; __cil_tmp236 = __cil_tmp235 + __cil_tmp234; mem_427 = (UCHAR *)__cil_tmp236; *mem_427 = Cylinder; __cil_tmp237 = 3 * 1U; __cil_tmp238 = 112 + __cil_tmp237; __cil_tmp239 = (unsigned int )DisketteExtension; __cil_tmp240 = __cil_tmp239 + __cil_tmp238; mem_428 = (UCHAR *)__cil_tmp240; *mem_428 = Head; __cil_tmp241 = 4 * 1U; __cil_tmp242 = 112 + __cil_tmp241; __cil_tmp243 = (unsigned int )DisketteExtension; __cil_tmp244 = __cil_tmp243 + __cil_tmp242; __cil_tmp245 = (int )Sector; __cil_tmp246 = __cil_tmp245 + 1; mem_429 = (UCHAR *)__cil_tmp244; *mem_429 = (unsigned char )__cil_tmp246; __cil_tmp247 = 5 * 1U; __cil_tmp248 = 112 + __cil_tmp247; __cil_tmp249 = (unsigned int )DisketteExtension; __cil_tmp250 = __cil_tmp249 + __cil_tmp248; __cil_tmp251 = (unsigned int )driveMediaConstants; __cil_tmp252 = __cil_tmp251 + 35; mem_430 = (UCHAR *)__cil_tmp250; mem_431 = (UCHAR *)__cil_tmp252; *mem_430 = *mem_431; __cil_tmp253 = 6 * 1U; __cil_tmp254 = 112 + __cil_tmp253; __cil_tmp255 = (unsigned int )DisketteExtension; __cil_tmp256 = __cil_tmp255 + __cil_tmp254; __cil_tmp257 = (int )NumberOfSectors; __cil_tmp258 = (int )Sector; __cil_tmp259 = __cil_tmp258 + __cil_tmp257; mem_432 = (UCHAR *)__cil_tmp256; *mem_432 = (unsigned char )__cil_tmp259; __cil_tmp260 = 7 * 1U; __cil_tmp261 = 112 + __cil_tmp260; __cil_tmp262 = (unsigned int )DisketteExtension; __cil_tmp263 = __cil_tmp262 + __cil_tmp261; __cil_tmp264 = (unsigned int )driveMediaConstants; __cil_tmp265 = __cil_tmp264 + 39; mem_433 = (UCHAR *)__cil_tmp263; mem_434 = (UCHAR *)__cil_tmp265; *mem_433 = *mem_434; __cil_tmp266 = 8 * 1U; __cil_tmp267 = 112 + __cil_tmp266; __cil_tmp268 = (unsigned int )DisketteExtension; __cil_tmp269 = __cil_tmp268 + __cil_tmp267; __cil_tmp270 = (unsigned int )driveMediaConstants; __cil_tmp271 = __cil_tmp270 + 52; mem_435 = (UCHAR *)__cil_tmp269; mem_436 = (UCHAR *)__cil_tmp271; *mem_435 = *mem_436; if (WriteOperation) { __cil_tmp272 = 0 * 1U; __cil_tmp273 = 112 + __cil_tmp272; __cil_tmp274 = (unsigned int )DisketteExtension; __cil_tmp275 = __cil_tmp274 + __cil_tmp273; mem_437 = (UCHAR *)__cil_tmp275; *mem_437 = (unsigned char)66; } else { __cil_tmp276 = 0 * 1U; __cil_tmp277 = 112 + __cil_tmp276; __cil_tmp278 = (unsigned int )DisketteExtension; __cil_tmp279 = __cil_tmp278 + __cil_tmp277; mem_438 = (UCHAR *)__cil_tmp279; *mem_438 = (unsigned char)64; } { __cil_tmp280 = 0 * 1U; __cil_tmp281 = 112 + __cil_tmp280; __cil_tmp282 = (unsigned int )DisketteExtension; __cil_tmp283 = __cil_tmp282 + __cil_tmp281; __cil_tmp284 = (UCHAR *)__cil_tmp283; __cil_tmp285 = 0 * 1U; __cil_tmp286 = 112 + __cil_tmp285; __cil_tmp287 = (unsigned int )DisketteExtension; __cil_tmp288 = __cil_tmp287 + __cil_tmp286; __cil_tmp289 = (UCHAR *)__cil_tmp288; status = FlIssueCommand(DisketteExtension, __cil_tmp284, __cil_tmp289, IoMdl, IoOffset, transferBytes); } if (status >= 0L) { { __cil_tmp290 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp291 = (unsigned int )__cil_tmp290; __cil_tmp292 = __cil_tmp291 + 732; mem_439 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp292; __cil_tmp293 = *mem_439; __cil_tmp294 = (int )__cil_tmp293; if (__cil_tmp294 == 1) { { __cil_tmp295 = 0 * 1U; __cil_tmp296 = 112 + __cil_tmp295; __cil_tmp297 = (unsigned int )DisketteExtension; __cil_tmp298 = __cil_tmp297 + __cil_tmp296; mem_440 = (UCHAR *)__cil_tmp298; __cil_tmp299 = *mem_440; __cil_tmp300 = (int )__cil_tmp299; if (__cil_tmp300 & 8) { return (-1073741661L); } else { } } } else { } } { __cil_tmp301 = 0 * 1U; __cil_tmp302 = 112 + __cil_tmp301; __cil_tmp303 = (unsigned int )DisketteExtension; __cil_tmp304 = __cil_tmp303 + __cil_tmp302; mem_441 = (UCHAR *)__cil_tmp304; __cil_tmp305 = *mem_441; __cil_tmp306 = (int )__cil_tmp305; __cil_tmp307 = __cil_tmp306 & 192; if (__cil_tmp307 != 0) { { __cil_tmp308 = 0 * 1U; __cil_tmp309 = 112 + __cil_tmp308; __cil_tmp310 = (unsigned int )DisketteExtension; __cil_tmp311 = __cil_tmp310 + __cil_tmp309; mem_442 = (UCHAR *)__cil_tmp311; __cil_tmp312 = *mem_442; __cil_tmp313 = (int )__cil_tmp312; __cil_tmp314 = __cil_tmp313 & 192; if (__cil_tmp314 != 64) { { __cil_tmp315 = (unsigned int )DisketteExtension; __cil_tmp316 = __cil_tmp315 + 104; mem_443 = (BOOLEAN *)__cil_tmp316; *mem_443 = (unsigned char)1; __cil_tmp317 = 1 * 1U; __cil_tmp318 = 112 + __cil_tmp317; __cil_tmp319 = (unsigned int )DisketteExtension; __cil_tmp320 = __cil_tmp319 + __cil_tmp318; mem_444 = (UCHAR *)__cil_tmp320; __cil_tmp321 = *mem_444; __cil_tmp322 = 2 * 1U; __cil_tmp323 = 112 + __cil_tmp322; __cil_tmp324 = (unsigned int )DisketteExtension; __cil_tmp325 = __cil_tmp324 + __cil_tmp323; mem_445 = (UCHAR *)__cil_tmp325; __cil_tmp326 = *mem_445; status = FlInterpretError(__cil_tmp321, __cil_tmp326); } } else { { __cil_tmp327 = 1 * 1U; __cil_tmp328 = 112 + __cil_tmp327; __cil_tmp329 = (unsigned int )DisketteExtension; __cil_tmp330 = __cil_tmp329 + __cil_tmp328; mem_446 = (UCHAR *)__cil_tmp330; __cil_tmp331 = *mem_446; __cil_tmp332 = (int )__cil_tmp331; if (__cil_tmp332 != 128) { { __cil_tmp333 = (unsigned int )DisketteExtension; __cil_tmp334 = __cil_tmp333 + 104; mem_447 = (BOOLEAN *)__cil_tmp334; *mem_447 = (unsigned char)1; __cil_tmp335 = 1 * 1U; __cil_tmp336 = 112 + __cil_tmp335; __cil_tmp337 = (unsigned int )DisketteExtension; __cil_tmp338 = __cil_tmp337 + __cil_tmp336; mem_448 = (UCHAR *)__cil_tmp338; __cil_tmp339 = *mem_448; __cil_tmp340 = 2 * 1U; __cil_tmp341 = 112 + __cil_tmp340; __cil_tmp342 = (unsigned int )DisketteExtension; __cil_tmp343 = __cil_tmp342 + __cil_tmp341; mem_449 = (UCHAR *)__cil_tmp343; __cil_tmp344 = *mem_449; status = FlInterpretError(__cil_tmp339, __cil_tmp344); } } else { { __cil_tmp345 = 2 * 1U; __cil_tmp346 = 112 + __cil_tmp345; __cil_tmp347 = (unsigned int )DisketteExtension; __cil_tmp348 = __cil_tmp347 + __cil_tmp346; mem_450 = (UCHAR *)__cil_tmp348; __cil_tmp349 = *mem_450; __cil_tmp350 = (int )__cil_tmp349; if (__cil_tmp350 != 0) { { __cil_tmp351 = (unsigned int )DisketteExtension; __cil_tmp352 = __cil_tmp351 + 104; mem_451 = (BOOLEAN *)__cil_tmp352; *mem_451 = (unsigned char)1; __cil_tmp353 = 1 * 1U; __cil_tmp354 = 112 + __cil_tmp353; __cil_tmp355 = (unsigned int )DisketteExtension; __cil_tmp356 = __cil_tmp355 + __cil_tmp354; mem_452 = (UCHAR *)__cil_tmp356; __cil_tmp357 = *mem_452; __cil_tmp358 = 2 * 1U; __cil_tmp359 = 112 + __cil_tmp358; __cil_tmp360 = (unsigned int )DisketteExtension; __cil_tmp361 = __cil_tmp360 + __cil_tmp359; mem_453 = (UCHAR *)__cil_tmp361; __cil_tmp362 = *mem_453; status = FlInterpretError(__cil_tmp357, __cil_tmp362); } } else { goto _L___1; } } } } } } } else { _L___1: { __cil_tmp363 = 5 * 1U; __cil_tmp364 = 112 + __cil_tmp363; __cil_tmp365 = (unsigned int )DisketteExtension; __cil_tmp366 = __cil_tmp365 + __cil_tmp364; mem_454 = (UCHAR *)__cil_tmp366; __cil_tmp367 = *mem_454; __cil_tmp368 = (int )__cil_tmp367; if (__cil_tmp368 != 1) { __cil_tmp369 = (unsigned int )DisketteExtension; __cil_tmp370 = __cil_tmp369 + 104; mem_455 = (BOOLEAN *)__cil_tmp370; *mem_455 = (unsigned char)1; status = -1073741465L; } else { } } } } } else { { while (1) { while_150_continue: /* CIL Label */ ; goto while_150_break; } while_150_break: /* CIL Label */ ; } } if (status >= 0L) { goto while_149_break; } else { } if (ioRetry >= 2UL) { { while (1) { while_151_continue: /* CIL Label */ ; goto while_151_break; } while_151_break: /* CIL Label */ ; } goto while_149_break; } else { } ioRetry = ioRetry + 1UL; } while_149_break: /* CIL Label */ ; } if (status >= 0L) { goto while_144_break; } else { } recalibrateDrive = (unsigned char)1; __Cont: seekRetry = seekRetry + 1UL; } while_144_break: /* CIL Label */ ; } { __cil_tmp371 = status >= 0L; if (! __cil_tmp371) { { __cil_tmp372 = (int )NumberOfSectors; if (__cil_tmp372 > 1) { { while (1) { while_152_continue: /* CIL Label */ ; goto while_152_break; } while_152_break: /* CIL Label */ ; } i = (unsigned char)0; { while (1) { while_153_continue: /* CIL Label */ ; { __cil_tmp373 = (int )NumberOfSectors; __cil_tmp374 = (int )i; if (__cil_tmp374 < __cil_tmp373) { } else { goto while_153_break; } } { __cil_tmp375 = (unsigned long )i; __cil_tmp376 = __cil_tmp375 << byteToSectorShift; __cil_tmp377 = IoOffset + __cil_tmp376; __cil_tmp378 = (int )i; __cil_tmp379 = (int )Sector; __cil_tmp380 = __cil_tmp379 + __cil_tmp378; __cil_tmp381 = (unsigned char )__cil_tmp380; status = FlReadWriteTrack(DisketteExtension, IoMdl, __cil_tmp377, WriteOperation, Cylinder, Head, __cil_tmp381, (unsigned char)1, (unsigned char)0); } { __cil_tmp382 = status >= 0L; if (! __cil_tmp382) { { while (1) { while_154_continue: /* CIL Label */ ; goto while_154_break; } while_154_break: /* CIL Label */ ; } __cil_tmp383 = (unsigned int )DisketteExtension; __cil_tmp384 = __cil_tmp383 + 104; mem_456 = (BOOLEAN *)__cil_tmp384; *mem_456 = (unsigned char)1; goto while_153_break; } else { } } __cil_tmp385 = (int )i; __cil_tmp386 = __cil_tmp385 + 1; i = (unsigned char )__cil_tmp386; } while_153_break: /* CIL Label */ ; } } else { } } } else { } } return (status); } } NTSTATUS FlReadWrite(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN DriveStarted ) { PIO_STACK_LOCATION irpSp ; BOOLEAN writeOperation ; NTSTATUS status ; PDRIVE_MEDIA_CONSTANTS driveMediaConstants ; ULONG byteToSectorShift ; ULONG currentSector ; ULONG firstSector ; ULONG lastSector ; ULONG trackSize ; UCHAR sectorsPerTrack ; UCHAR numberOfHeads ; UCHAR currentHead ; UCHAR currentCylinder ; UCHAR trackSector ; PCHAR userBuffer ; UCHAR skew ; UCHAR skewDelta ; UCHAR numTransferSectors ; PMDL mdl ; PCHAR ioBuffer ; ULONG ioOffset ; PVOID tmp___0 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; UCHAR __cil_tmp31 ; int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; UCHAR __cil_tmp37 ; int __cil_tmp38 ; int __cil_tmp39 ; int __cil_tmp40 ; int __cil_tmp41 ; unsigned char __cil_tmp42 ; int __cil_tmp43 ; KUSER_SHARED_DATA *__cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp47 ; int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; MEDIA_TYPE __cil_tmp51 ; int __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; unsigned int __cil_tmp56 ; UCHAR __cil_tmp57 ; int __cil_tmp58 ; int __cil_tmp59 ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; unsigned int __cil_tmp63 ; ULONG __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; ULONG __cil_tmp67 ; ULONG __cil_tmp68 ; unsigned int __cil_tmp69 ; unsigned int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; PMDL __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; CSHORT __cil_tmp78 ; int __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; PMDL __cil_tmp82 ; unsigned int __cil_tmp83 ; unsigned int __cil_tmp84 ; PVOID __cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; PMDL __cil_tmp88 ; enum _MEMORY_CACHING_TYPE __cil_tmp89 ; void *__cil_tmp90 ; enum _MM_PAGE_PRIORITY __cil_tmp91 ; void *__cil_tmp92 ; unsigned int __cil_tmp93 ; unsigned int __cil_tmp94 ; unsigned long __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; unsigned long __cil_tmp98 ; unsigned long __cil_tmp99 ; ULONG __cil_tmp100 ; ULONG __cil_tmp101 ; unsigned long __cil_tmp102 ; unsigned long __cil_tmp103 ; unsigned long __cil_tmp104 ; unsigned long __cil_tmp105 ; ULONG __cil_tmp106 ; unsigned long __cil_tmp107 ; int __cil_tmp108 ; int __cil_tmp109 ; int __cil_tmp110 ; unsigned long __cil_tmp111 ; ULONG __cil_tmp112 ; ULONG __cil_tmp113 ; unsigned int __cil_tmp114 ; unsigned int __cil_tmp115 ; ULONG __cil_tmp116 ; unsigned int __cil_tmp117 ; unsigned int __cil_tmp118 ; PUCHAR __cil_tmp119 ; unsigned int __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; unsigned int __cil_tmp123 ; PUCHAR __cil_tmp124 ; void *__cil_tmp125 ; ULONG __cil_tmp126 ; ULONG __cil_tmp127 ; PCHAR __cil_tmp128 ; void const *__cil_tmp129 ; unsigned long __cil_tmp130 ; unsigned long __cil_tmp131 ; unsigned int __cil_tmp132 ; unsigned int __cil_tmp133 ; unsigned int __cil_tmp134 ; ULONG __cil_tmp135 ; int __cil_tmp136 ; int __cil_tmp137 ; int __cil_tmp138 ; int __cil_tmp139 ; int __cil_tmp140 ; int __cil_tmp141 ; unsigned long __cil_tmp142 ; unsigned long __cil_tmp143 ; unsigned long __cil_tmp144 ; unsigned long __cil_tmp145 ; ULONG __cil_tmp146 ; int __cil_tmp147 ; int __cil_tmp148 ; int __cil_tmp149 ; int __cil_tmp150 ; int __cil_tmp151 ; unsigned char __cil_tmp152 ; int __cil_tmp153 ; int __cil_tmp154 ; int __cil_tmp155 ; int __cil_tmp156 ; int __cil_tmp157 ; unsigned char __cil_tmp158 ; int __cil_tmp159 ; int __cil_tmp160 ; int __cil_tmp161 ; int __cil_tmp162 ; int __cil_tmp163 ; int __cil_tmp164 ; int __cil_tmp165 ; int __cil_tmp166 ; int __cil_tmp167 ; int __cil_tmp168 ; int __cil_tmp169 ; unsigned int __cil_tmp170 ; unsigned int __cil_tmp171 ; ULONG __cil_tmp172 ; ULONG __cil_tmp173 ; ULONG __cil_tmp174 ; PCHAR __cil_tmp175 ; void *__cil_tmp176 ; void const *__cil_tmp177 ; unsigned long __cil_tmp178 ; unsigned long __cil_tmp179 ; unsigned int __cil_tmp180 ; int __cil_tmp181 ; int __cil_tmp182 ; int __cil_tmp183 ; int __cil_tmp184 ; int __cil_tmp185 ; unsigned long __cil_tmp186 ; unsigned int __cil_tmp187 ; unsigned int __cil_tmp188 ; unsigned int __cil_tmp189 ; ULONG __cil_tmp190 ; struct _BOOT_SECTOR_INFO *__cil_tmp191 ; struct _IO_STACK_LOCATION **mem_192 ; UCHAR *mem_193 ; BOOLEAN *mem_194 ; UCHAR *mem_195 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_196 ; MEDIA_TYPE *mem_197 ; UCHAR *mem_198 ; ULONG *mem_199 ; ULONG *mem_200 ; UCHAR *mem_201 ; UCHAR *mem_202 ; PMDL *mem_203 ; CSHORT *mem_204 ; PMDL *mem_205 ; PVOID *mem_206 ; PMDL *mem_207 ; UCHAR *mem_208 ; ULONG *mem_209 ; PUCHAR *mem_210 ; PMDL *mem_211 ; PUCHAR *mem_212 ; PMDL *mem_213 ; ULONG *mem_214 ; ULONG_PTR *mem_215 ; { __cil_tmp26 = 24 + 8; __cil_tmp27 = 0 + __cil_tmp26; __cil_tmp28 = 64 + __cil_tmp27; __cil_tmp29 = (unsigned int )Irp; __cil_tmp30 = __cil_tmp29 + __cil_tmp28; mem_192 = (struct _IO_STACK_LOCATION **)__cil_tmp30; irpSp = *mem_192; { while (1) { while_155_continue: /* CIL Label */ ; goto while_155_break; } while_155_break: /* CIL Label */ ; } { mem_193 = (UCHAR *)irpSp; __cil_tmp31 = *mem_193; __cil_tmp32 = (int )__cil_tmp31; if (__cil_tmp32 == 4) { { __cil_tmp33 = (unsigned int )DisketteExtension; __cil_tmp34 = __cil_tmp33 + 250; { mem_194 = (BOOLEAN *)__cil_tmp34; if (*mem_194) { { while (1) { while_156_continue: /* CIL Label */ ; goto while_156_break; } while_156_break: /* CIL Label */ ; } return (-1073741811L); } else { } } } writeOperation = (unsigned char)1; } else { writeOperation = (unsigned char)0; } } { while (1) { while_157_continue: /* CIL Label */ ; goto while_157_break; } while_157_break: /* CIL Label */ ; } if (DriveStarted) { status = 0L; } else { { __cil_tmp35 = (unsigned int )irpSp; __cil_tmp36 = __cil_tmp35 + 2; mem_195 = (UCHAR *)__cil_tmp36; __cil_tmp37 = *mem_195; __cil_tmp38 = (int )__cil_tmp37; __cil_tmp39 = __cil_tmp38 & 2; __cil_tmp40 = ! __cil_tmp39; __cil_tmp41 = ! __cil_tmp40; __cil_tmp42 = (unsigned char )__cil_tmp41; status = FlStartDrive(DisketteExtension, Irp, writeOperation, (unsigned char)1, __cil_tmp42); } } { __cil_tmp43 = status >= 0L; if (! __cil_tmp43) { { while (1) { while_158_continue: /* CIL Label */ ; goto while_158_break; } while_158_break: /* CIL Label */ ; } return (status); } else { } } { __cil_tmp44 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp45 = (unsigned int )__cil_tmp44; __cil_tmp46 = __cil_tmp45 + 732; mem_196 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp46; __cil_tmp47 = *mem_196; __cil_tmp48 = (int )__cil_tmp47; if (__cil_tmp48 == 1) { { FlHdbit(DisketteExtension); } } else { } } { __cil_tmp49 = (unsigned int )DisketteExtension; __cil_tmp50 = __cil_tmp49 + 184; mem_197 = (MEDIA_TYPE *)__cil_tmp50; __cil_tmp51 = *mem_197; __cil_tmp52 = (int )__cil_tmp51; if (__cil_tmp52 == 0) { { while (1) { while_159_continue: /* CIL Label */ ; goto while_159_break; } while_159_break: /* CIL Label */ ; } return (-1073741804L); } else { } } __cil_tmp53 = (unsigned int )DisketteExtension; __cil_tmp54 = __cil_tmp53 + 308; driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp54; __cil_tmp55 = (unsigned int )driveMediaConstants; __cil_tmp56 = __cil_tmp55 + 35; mem_198 = (UCHAR *)__cil_tmp56; __cil_tmp57 = *mem_198; __cil_tmp58 = (int )__cil_tmp57; __cil_tmp59 = 7 + __cil_tmp58; byteToSectorShift = (unsigned long )__cil_tmp59; __cil_tmp60 = 0 + 8; __cil_tmp61 = 4 + __cil_tmp60; __cil_tmp62 = (unsigned int )irpSp; __cil_tmp63 = __cil_tmp62 + __cil_tmp61; mem_199 = (ULONG *)__cil_tmp63; __cil_tmp64 = *mem_199; firstSector = __cil_tmp64 >> byteToSectorShift; __cil_tmp65 = (unsigned int )irpSp; __cil_tmp66 = __cil_tmp65 + 4; mem_200 = (ULONG *)__cil_tmp66; __cil_tmp67 = *mem_200; __cil_tmp68 = __cil_tmp67 >> byteToSectorShift; lastSector = firstSector + __cil_tmp68; __cil_tmp69 = (unsigned int )driveMediaConstants; __cil_tmp70 = __cil_tmp69 + 38; mem_201 = (UCHAR *)__cil_tmp70; sectorsPerTrack = *mem_201; __cil_tmp71 = (unsigned int )driveMediaConstants; __cil_tmp72 = __cil_tmp71 + 51; mem_202 = (UCHAR *)__cil_tmp72; numberOfHeads = *mem_202; { __cil_tmp73 = (unsigned int )Irp; __cil_tmp74 = __cil_tmp73 + 4; mem_203 = (PMDL *)__cil_tmp74; __cil_tmp75 = *mem_203; __cil_tmp76 = (unsigned int )__cil_tmp75; __cil_tmp77 = __cil_tmp76 + 6; mem_204 = (CSHORT *)__cil_tmp77; __cil_tmp78 = *mem_204; __cil_tmp79 = (int )__cil_tmp78; if (__cil_tmp79 & 5) { __cil_tmp80 = (unsigned int )Irp; __cil_tmp81 = __cil_tmp80 + 4; mem_205 = (PMDL *)__cil_tmp81; __cil_tmp82 = *mem_205; __cil_tmp83 = (unsigned int )__cil_tmp82; __cil_tmp84 = __cil_tmp83 + 12; mem_206 = (PVOID *)__cil_tmp84; __cil_tmp85 = *mem_206; userBuffer = (CHAR *)__cil_tmp85; } else { { __cil_tmp86 = (unsigned int )Irp; __cil_tmp87 = __cil_tmp86 + 4; mem_207 = (PMDL *)__cil_tmp87; __cil_tmp88 = *mem_207; __cil_tmp89 = (enum _MEMORY_CACHING_TYPE )1; __cil_tmp90 = (void *)0; __cil_tmp91 = (enum _MM_PAGE_PRIORITY )32; tmp___0 = MmMapLockedPagesSpecifyCache(__cil_tmp88, (char)0, __cil_tmp89, __cil_tmp90, 0UL, __cil_tmp91); userBuffer = (CHAR *)tmp___0; } } } { __cil_tmp92 = (void *)0; __cil_tmp93 = (unsigned int )__cil_tmp92; __cil_tmp94 = (unsigned int )userBuffer; if (__cil_tmp94 == __cil_tmp93) { { while (1) { while_160_continue: /* CIL Label */ ; goto while_160_break; } while_160_break: /* CIL Label */ ; } return (-1073741670L); } else { } } __cil_tmp95 = (unsigned long )sectorsPerTrack; trackSize = __cil_tmp95 << byteToSectorShift; skew = (unsigned char)0; __cil_tmp96 = (unsigned int )driveMediaConstants; __cil_tmp97 = __cil_tmp96 + 54; mem_208 = (UCHAR *)__cil_tmp97; skewDelta = *mem_208; currentSector = firstSector; { while (1) { while_161_continue: /* CIL Label */ ; if (currentSector < lastSector) { } else { goto while_161_break; } __cil_tmp98 = (unsigned long )numberOfHeads; __cil_tmp99 = (unsigned long )sectorsPerTrack; __cil_tmp100 = currentSector / __cil_tmp99; __cil_tmp101 = __cil_tmp100 / __cil_tmp98; currentCylinder = (unsigned char )__cil_tmp101; __cil_tmp102 = (unsigned long )sectorsPerTrack; __cil_tmp103 = currentSector % __cil_tmp102; trackSector = (unsigned char )__cil_tmp103; __cil_tmp104 = (unsigned long )numberOfHeads; __cil_tmp105 = (unsigned long )sectorsPerTrack; __cil_tmp106 = currentSector / __cil_tmp105; __cil_tmp107 = __cil_tmp106 % __cil_tmp104; currentHead = (unsigned char )__cil_tmp107; __cil_tmp108 = (int )trackSector; __cil_tmp109 = (int )sectorsPerTrack; __cil_tmp110 = __cil_tmp109 - __cil_tmp108; numTransferSectors = (unsigned char )__cil_tmp110; { __cil_tmp111 = (unsigned long )numTransferSectors; __cil_tmp112 = lastSector - currentSector; if (__cil_tmp112 < __cil_tmp111) { __cil_tmp113 = lastSector - currentSector; numTransferSectors = (unsigned char )__cil_tmp113; } else { } } { __cil_tmp114 = (unsigned int )DisketteExtension; __cil_tmp115 = __cil_tmp114 + 108; mem_209 = (ULONG *)__cil_tmp115; __cil_tmp116 = *mem_209; if (trackSize > __cil_tmp116) { { while (1) { while_162_continue: /* CIL Label */ ; goto while_162_break; } while_162_break: /* CIL Label */ ; } { FlAllocateIoBuffer(DisketteExtension, trackSize); } { __cil_tmp117 = (unsigned int )DisketteExtension; __cil_tmp118 = __cil_tmp117 + 124; mem_210 = (PUCHAR *)__cil_tmp118; __cil_tmp119 = *mem_210; if (! __cil_tmp119) { { while (1) { while_163_continue: /* CIL Label */ ; goto while_163_break; } while_163_break: /* CIL Label */ ; } return (-1073741670L); } else { } } __cil_tmp120 = (unsigned int )DisketteExtension; __cil_tmp121 = __cil_tmp120 + 128; mem_211 = (PMDL *)__cil_tmp121; mdl = *mem_211; __cil_tmp122 = (unsigned int )DisketteExtension; __cil_tmp123 = __cil_tmp122 + 124; mem_212 = (PUCHAR *)__cil_tmp123; __cil_tmp124 = *mem_212; ioBuffer = (CHAR *)__cil_tmp124; ioOffset = 0UL; if (writeOperation) { { __cil_tmp125 = (void *)ioBuffer; __cil_tmp126 = currentSector - firstSector; __cil_tmp127 = __cil_tmp126 << byteToSectorShift; __cil_tmp128 = userBuffer + __cil_tmp127; __cil_tmp129 = (void const *)__cil_tmp128; __cil_tmp130 = (unsigned long )numTransferSectors; __cil_tmp131 = __cil_tmp130 << byteToSectorShift; __cil_tmp132 = (unsigned int )__cil_tmp131; memmove(__cil_tmp125, __cil_tmp129, __cil_tmp132); } } else { } } else { __cil_tmp133 = (unsigned int )Irp; __cil_tmp134 = __cil_tmp133 + 4; mem_213 = (PMDL *)__cil_tmp134; mdl = *mem_213; __cil_tmp135 = currentSector - firstSector; ioOffset = __cil_tmp135 << byteToSectorShift; } } { __cil_tmp136 = (int )trackSector; __cil_tmp137 = (int )numTransferSectors; __cil_tmp138 = __cil_tmp137 + __cil_tmp136; __cil_tmp139 = (int )skew; if (__cil_tmp139 >= __cil_tmp138) { skew = (unsigned char)0; } else { } } { __cil_tmp140 = (int )trackSector; __cil_tmp141 = (int )skew; if (__cil_tmp141 < __cil_tmp140) { skew = trackSector; } else { } } { __cil_tmp142 = (unsigned long )trackSector; __cil_tmp143 = (unsigned long )skew; __cil_tmp144 = __cil_tmp143 - __cil_tmp142; __cil_tmp145 = __cil_tmp144 << byteToSectorShift; __cil_tmp146 = ioOffset + __cil_tmp145; __cil_tmp147 = (int )skew; __cil_tmp148 = (int )trackSector; __cil_tmp149 = (int )numTransferSectors; __cil_tmp150 = __cil_tmp149 + __cil_tmp148; __cil_tmp151 = __cil_tmp150 - __cil_tmp147; __cil_tmp152 = (unsigned char )__cil_tmp151; status = FlReadWriteTrack(DisketteExtension, mdl, __cil_tmp146, writeOperation, currentCylinder, currentHead, skew, __cil_tmp152, (unsigned char)1); } if (status >= 0L) { { __cil_tmp153 = (int )trackSector; __cil_tmp154 = (int )skew; if (__cil_tmp154 > __cil_tmp153) { { __cil_tmp155 = (int )trackSector; __cil_tmp156 = (int )skew; __cil_tmp157 = __cil_tmp156 - __cil_tmp155; __cil_tmp158 = (unsigned char )__cil_tmp157; status = FlReadWriteTrack(DisketteExtension, mdl, ioOffset, writeOperation, currentCylinder, currentHead, trackSector, __cil_tmp158, (unsigned char)0); } } else { __cil_tmp159 = (int )sectorsPerTrack; __cil_tmp160 = (int )trackSector; __cil_tmp161 = (int )numTransferSectors; __cil_tmp162 = __cil_tmp161 + __cil_tmp160; __cil_tmp163 = __cil_tmp162 % __cil_tmp159; skew = (unsigned char )__cil_tmp163; } } } else { __cil_tmp164 = (int )sectorsPerTrack; __cil_tmp165 = (int )trackSector; __cil_tmp166 = (int )numTransferSectors; __cil_tmp167 = __cil_tmp166 + __cil_tmp165; __cil_tmp168 = __cil_tmp167 % __cil_tmp164; skew = (unsigned char )__cil_tmp168; } { __cil_tmp169 = status >= 0L; if (! __cil_tmp169) { goto while_161_break; } else { } } if (! writeOperation) { { __cil_tmp170 = (unsigned int )DisketteExtension; __cil_tmp171 = __cil_tmp170 + 108; mem_214 = (ULONG *)__cil_tmp171; __cil_tmp172 = *mem_214; if (trackSize > __cil_tmp172) { { __cil_tmp173 = currentSector - firstSector; __cil_tmp174 = __cil_tmp173 << byteToSectorShift; __cil_tmp175 = userBuffer + __cil_tmp174; __cil_tmp176 = (void *)__cil_tmp175; __cil_tmp177 = (void const *)ioBuffer; __cil_tmp178 = (unsigned long )numTransferSectors; __cil_tmp179 = __cil_tmp178 << byteToSectorShift; __cil_tmp180 = (unsigned int )__cil_tmp179; memmove(__cil_tmp176, __cil_tmp177, __cil_tmp180); } } else { } } } else { } __cil_tmp181 = (int )sectorsPerTrack; __cil_tmp182 = (int )skewDelta; __cil_tmp183 = (int )skew; __cil_tmp184 = __cil_tmp183 + __cil_tmp182; __cil_tmp185 = __cil_tmp184 % __cil_tmp181; skew = (unsigned char )__cil_tmp185; __cil_tmp186 = (unsigned long )numTransferSectors; currentSector = currentSector + __cil_tmp186; } while_161_break: /* CIL Label */ ; } __cil_tmp187 = 24 + 4; __cil_tmp188 = (unsigned int )Irp; __cil_tmp189 = __cil_tmp188 + __cil_tmp187; __cil_tmp190 = currentSector - firstSector; mem_215 = (ULONG_PTR *)__cil_tmp189; *mem_215 = __cil_tmp190 << byteToSectorShift; if (status >= 0L) { if (firstSector == 0UL) { { __cil_tmp191 = (struct _BOOT_SECTOR_INFO *)userBuffer; FlConsolidateMediaTypeWithBootSector(DisketteExtension, __cil_tmp191); } } else { } } else { } { while (1) { while_164_continue: /* CIL Label */ ; goto while_164_break; } while_164_break: /* CIL Label */ ; } return (status); } } NTSTATUS FlFormat(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) { LARGE_INTEGER headSettleTime ; PIO_STACK_LOCATION irpSp ; PBAD_TRACK_NUMBER badTrackBuffer ; PFORMAT_PARAMETERS formatParameters ; PFORMAT_EX_PARAMETERS formatExParameters ; PDRIVE_MEDIA_CONSTANTS driveMediaConstants ; NTSTATUS ntStatus ; ULONG badTrackBufferLength ; DRIVE_MEDIA_TYPE driveMediaType ; UCHAR driveStatus ; UCHAR numberOfBadTracks ; UCHAR currentTrack ; UCHAR endTrack ; UCHAR whichSector ; UCHAR retryCount ; BOOLEAN bufferOverflow ; FDC_DISK_CHANGE_PARMS fdcDiskChangeParms ; ULONG length ; UCHAR tmp ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; PVOID __cil_tmp29 ; int __cil_tmp30 ; int __cil_tmp31 ; int __cil_tmp32 ; int __cil_tmp33 ; int __cil_tmp34 ; unsigned long __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; ULONG __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; PVOID __cil_tmp43 ; void *__cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; UCHAR __cil_tmp49 ; int __cil_tmp50 ; PDRIVE_MEDIA_LIMITS __cil_tmp51 ; MEDIA_TYPE __cil_tmp52 ; int __cil_tmp53 ; unsigned int __cil_tmp54 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp55 ; MEDIA_TYPE __cil_tmp56 ; int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; UCHAR __cil_tmp60 ; int __cil_tmp61 ; PDRIVE_MEDIA_LIMITS __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; DRIVE_MEDIA_TYPE __cil_tmp65 ; int __cil_tmp66 ; int __cil_tmp67 ; int __cil_tmp68 ; int __cil_tmp69 ; int __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; unsigned int __cil_tmp73 ; unsigned int __cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; unsigned int __cil_tmp77 ; unsigned int __cil_tmp78 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp79 ; unsigned int __cil_tmp80 ; unsigned int __cil_tmp81 ; unsigned int __cil_tmp82 ; unsigned int __cil_tmp83 ; unsigned int __cil_tmp84 ; USHORT __cil_tmp85 ; unsigned int __cil_tmp86 ; unsigned int __cil_tmp87 ; unsigned int __cil_tmp88 ; unsigned int __cil_tmp89 ; unsigned int __cil_tmp90 ; USHORT __cil_tmp91 ; unsigned int __cil_tmp92 ; unsigned int __cil_tmp93 ; unsigned int __cil_tmp94 ; unsigned int __cil_tmp95 ; unsigned int __cil_tmp96 ; unsigned int __cil_tmp97 ; USHORT __cil_tmp98 ; unsigned int __cil_tmp99 ; unsigned int __cil_tmp100 ; unsigned int __cil_tmp101 ; unsigned int __cil_tmp102 ; UCHAR __cil_tmp103 ; int __cil_tmp104 ; unsigned int __cil_tmp105 ; unsigned int __cil_tmp106 ; UCHAR __cil_tmp107 ; int __cil_tmp108 ; int __cil_tmp109 ; unsigned int __cil_tmp110 ; unsigned int __cil_tmp111 ; UCHAR __cil_tmp112 ; int __cil_tmp113 ; unsigned int __cil_tmp114 ; unsigned int __cil_tmp115 ; USHORT __cil_tmp116 ; int __cil_tmp117 ; int __cil_tmp118 ; int __cil_tmp119 ; int __cil_tmp120 ; unsigned int __cil_tmp121 ; unsigned int __cil_tmp122 ; ULONG __cil_tmp123 ; unsigned int __cil_tmp124 ; unsigned int __cil_tmp125 ; UCHAR __cil_tmp126 ; unsigned long __cil_tmp127 ; unsigned int __cil_tmp128 ; unsigned int __cil_tmp129 ; ULONG __cil_tmp130 ; ULONG __cil_tmp131 ; ULONG __cil_tmp132 ; unsigned int __cil_tmp133 ; unsigned int __cil_tmp134 ; ULONG __cil_tmp135 ; unsigned int __cil_tmp136 ; unsigned int __cil_tmp137 ; UCHAR __cil_tmp138 ; unsigned long __cil_tmp139 ; unsigned int __cil_tmp140 ; unsigned int __cil_tmp141 ; ULONG __cil_tmp142 ; ULONG __cil_tmp143 ; ULONG __cil_tmp144 ; KUSER_SHARED_DATA *__cil_tmp145 ; unsigned int __cil_tmp146 ; unsigned int __cil_tmp147 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp148 ; int __cil_tmp149 ; int __cil_tmp150 ; unsigned int __cil_tmp151 ; unsigned int __cil_tmp152 ; DRIVE_MEDIA_TYPE __cil_tmp153 ; int __cil_tmp154 ; int __cil_tmp155 ; unsigned int __cil_tmp156 ; unsigned int __cil_tmp157 ; unsigned int __cil_tmp158 ; unsigned int __cil_tmp159 ; unsigned int __cil_tmp160 ; unsigned int __cil_tmp161 ; unsigned int __cil_tmp162 ; unsigned int __cil_tmp163 ; unsigned int __cil_tmp164 ; unsigned int __cil_tmp165 ; unsigned int __cil_tmp166 ; unsigned int __cil_tmp167 ; unsigned int __cil_tmp168 ; unsigned int __cil_tmp169 ; unsigned int __cil_tmp170 ; unsigned int __cil_tmp171 ; unsigned int __cil_tmp172 ; unsigned int __cil_tmp173 ; UCHAR __cil_tmp174 ; int __cil_tmp175 ; unsigned int __cil_tmp176 ; unsigned int __cil_tmp177 ; UCHAR __cil_tmp178 ; int __cil_tmp179 ; int __cil_tmp180 ; int __cil_tmp181 ; int __cil_tmp182 ; unsigned int __cil_tmp183 ; unsigned int __cil_tmp184 ; unsigned int __cil_tmp185 ; unsigned int __cil_tmp186 ; UCHAR *__cil_tmp187 ; unsigned int __cil_tmp188 ; unsigned int __cil_tmp189 ; unsigned int __cil_tmp190 ; unsigned int __cil_tmp191 ; UCHAR *__cil_tmp192 ; void *__cil_tmp193 ; struct _MDL *__cil_tmp194 ; unsigned int __cil_tmp195 ; unsigned int __cil_tmp196 ; unsigned int __cil_tmp197 ; unsigned int __cil_tmp198 ; UCHAR __cil_tmp199 ; int __cil_tmp200 ; unsigned int __cil_tmp201 ; unsigned int __cil_tmp202 ; UCHAR __cil_tmp203 ; int __cil_tmp204 ; unsigned int __cil_tmp205 ; unsigned int __cil_tmp206 ; UCHAR __cil_tmp207 ; int __cil_tmp208 ; int __cil_tmp209 ; int __cil_tmp210 ; int __cil_tmp211 ; unsigned char __cil_tmp212 ; int __cil_tmp213 ; unsigned int __cil_tmp214 ; unsigned int __cil_tmp215 ; unsigned int __cil_tmp216 ; unsigned int __cil_tmp217 ; UCHAR __cil_tmp218 ; int __cil_tmp219 ; LARGE_INTEGER *__cil_tmp220 ; unsigned int __cil_tmp221 ; unsigned int __cil_tmp222 ; UCHAR __cil_tmp223 ; int __cil_tmp224 ; int __cil_tmp225 ; int __cil_tmp226 ; unsigned int __cil_tmp227 ; unsigned int __cil_tmp228 ; KUSER_SHARED_DATA *__cil_tmp229 ; unsigned int __cil_tmp230 ; unsigned int __cil_tmp231 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp232 ; int __cil_tmp233 ; int __cil_tmp234 ; unsigned int __cil_tmp235 ; unsigned int __cil_tmp236 ; unsigned int __cil_tmp237 ; unsigned int __cil_tmp238 ; unsigned int __cil_tmp239 ; unsigned int __cil_tmp240 ; unsigned int __cil_tmp241 ; unsigned int __cil_tmp242 ; unsigned int __cil_tmp243 ; unsigned int __cil_tmp244 ; unsigned int __cil_tmp245 ; unsigned int __cil_tmp246 ; unsigned int __cil_tmp247 ; unsigned int __cil_tmp248 ; UCHAR *__cil_tmp249 ; unsigned int __cil_tmp250 ; unsigned int __cil_tmp251 ; unsigned int __cil_tmp252 ; unsigned int __cil_tmp253 ; UCHAR *__cil_tmp254 ; void *__cil_tmp255 ; struct _MDL *__cil_tmp256 ; unsigned int __cil_tmp257 ; unsigned int __cil_tmp258 ; int __cil_tmp259 ; unsigned int __cil_tmp260 ; unsigned int __cil_tmp261 ; UCHAR __cil_tmp262 ; int __cil_tmp263 ; int __cil_tmp264 ; int __cil_tmp265 ; int __cil_tmp266 ; unsigned int __cil_tmp267 ; unsigned int __cil_tmp268 ; PUCHAR __cil_tmp269 ; PUCHAR __cil_tmp270 ; unsigned int __cil_tmp271 ; unsigned int __cil_tmp272 ; UCHAR __cil_tmp273 ; int __cil_tmp274 ; int __cil_tmp275 ; int __cil_tmp276 ; int __cil_tmp277 ; int __cil_tmp278 ; int __cil_tmp279 ; unsigned int __cil_tmp280 ; unsigned int __cil_tmp281 ; PUCHAR __cil_tmp282 ; PUCHAR __cil_tmp283 ; unsigned int __cil_tmp284 ; unsigned int __cil_tmp285 ; UCHAR __cil_tmp286 ; int __cil_tmp287 ; int __cil_tmp288 ; int __cil_tmp289 ; int __cil_tmp290 ; int __cil_tmp291 ; int __cil_tmp292 ; unsigned int __cil_tmp293 ; unsigned int __cil_tmp294 ; PUCHAR __cil_tmp295 ; PUCHAR __cil_tmp296 ; unsigned int __cil_tmp297 ; unsigned int __cil_tmp298 ; unsigned int __cil_tmp299 ; unsigned int __cil_tmp300 ; USHORT __cil_tmp301 ; int __cil_tmp302 ; int __cil_tmp303 ; int __cil_tmp304 ; unsigned int __cil_tmp305 ; unsigned int __cil_tmp306 ; PUCHAR __cil_tmp307 ; PUCHAR __cil_tmp308 ; int __cil_tmp309 ; int __cil_tmp310 ; int __cil_tmp311 ; int __cil_tmp312 ; int __cil_tmp313 ; unsigned int __cil_tmp314 ; unsigned int __cil_tmp315 ; PUCHAR __cil_tmp316 ; PUCHAR __cil_tmp317 ; unsigned int __cil_tmp318 ; unsigned int __cil_tmp319 ; int __cil_tmp320 ; int __cil_tmp321 ; unsigned int __cil_tmp322 ; unsigned int __cil_tmp323 ; USHORT __cil_tmp324 ; unsigned int __cil_tmp325 ; unsigned int __cil_tmp326 ; unsigned int __cil_tmp327 ; unsigned int __cil_tmp328 ; unsigned int __cil_tmp329 ; unsigned int __cil_tmp330 ; unsigned int __cil_tmp331 ; unsigned int __cil_tmp332 ; unsigned int __cil_tmp333 ; unsigned int __cil_tmp334 ; UCHAR __cil_tmp335 ; int __cil_tmp336 ; unsigned int __cil_tmp337 ; unsigned int __cil_tmp338 ; UCHAR __cil_tmp339 ; int __cil_tmp340 ; int __cil_tmp341 ; int __cil_tmp342 ; int __cil_tmp343 ; int __cil_tmp344 ; unsigned int __cil_tmp345 ; unsigned int __cil_tmp346 ; unsigned int __cil_tmp347 ; unsigned int __cil_tmp348 ; unsigned int __cil_tmp349 ; unsigned int __cil_tmp350 ; unsigned int __cil_tmp351 ; unsigned int __cil_tmp352 ; unsigned int __cil_tmp353 ; unsigned int __cil_tmp354 ; unsigned int __cil_tmp355 ; unsigned int __cil_tmp356 ; unsigned int __cil_tmp357 ; unsigned int __cil_tmp358 ; unsigned int __cil_tmp359 ; unsigned int __cil_tmp360 ; unsigned int __cil_tmp361 ; unsigned int __cil_tmp362 ; unsigned int __cil_tmp363 ; unsigned int __cil_tmp364 ; unsigned int __cil_tmp365 ; unsigned int __cil_tmp366 ; unsigned int __cil_tmp367 ; unsigned int __cil_tmp368 ; unsigned int __cil_tmp369 ; unsigned int __cil_tmp370 ; unsigned int __cil_tmp371 ; unsigned int __cil_tmp372 ; UCHAR *__cil_tmp373 ; unsigned int __cil_tmp374 ; unsigned int __cil_tmp375 ; unsigned int __cil_tmp376 ; unsigned int __cil_tmp377 ; UCHAR *__cil_tmp378 ; unsigned int __cil_tmp379 ; unsigned int __cil_tmp380 ; PMDL __cil_tmp381 ; int __cil_tmp382 ; unsigned int __cil_tmp383 ; unsigned int __cil_tmp384 ; unsigned int __cil_tmp385 ; unsigned int __cil_tmp386 ; UCHAR __cil_tmp387 ; int __cil_tmp388 ; unsigned int __cil_tmp389 ; unsigned int __cil_tmp390 ; unsigned int __cil_tmp391 ; unsigned int __cil_tmp392 ; UCHAR __cil_tmp393 ; int __cil_tmp394 ; unsigned int __cil_tmp395 ; unsigned int __cil_tmp396 ; unsigned int __cil_tmp397 ; unsigned int __cil_tmp398 ; UCHAR __cil_tmp399 ; int __cil_tmp400 ; unsigned int __cil_tmp401 ; unsigned int __cil_tmp402 ; unsigned int __cil_tmp403 ; unsigned int __cil_tmp404 ; unsigned int __cil_tmp405 ; unsigned int __cil_tmp406 ; UCHAR __cil_tmp407 ; unsigned int __cil_tmp408 ; unsigned int __cil_tmp409 ; unsigned int __cil_tmp410 ; unsigned int __cil_tmp411 ; UCHAR __cil_tmp412 ; int __cil_tmp413 ; int __cil_tmp414 ; int __cil_tmp415 ; int __cil_tmp416 ; int __cil_tmp417 ; int __cil_tmp418 ; KUSER_SHARED_DATA *__cil_tmp419 ; unsigned int __cil_tmp420 ; unsigned int __cil_tmp421 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp422 ; int __cil_tmp423 ; unsigned int __cil_tmp424 ; unsigned int __cil_tmp425 ; unsigned int __cil_tmp426 ; unsigned int __cil_tmp427 ; unsigned int __cil_tmp428 ; unsigned int __cil_tmp429 ; unsigned int __cil_tmp430 ; unsigned int __cil_tmp431 ; unsigned int __cil_tmp432 ; unsigned int __cil_tmp433 ; unsigned int __cil_tmp434 ; unsigned int __cil_tmp435 ; unsigned int __cil_tmp436 ; unsigned int __cil_tmp437 ; UCHAR *__cil_tmp438 ; unsigned int __cil_tmp439 ; unsigned int __cil_tmp440 ; unsigned int __cil_tmp441 ; unsigned int __cil_tmp442 ; UCHAR *__cil_tmp443 ; void *__cil_tmp444 ; struct _MDL *__cil_tmp445 ; int __cil_tmp446 ; unsigned int __cil_tmp447 ; unsigned int __cil_tmp448 ; unsigned int __cil_tmp449 ; unsigned int __cil_tmp450 ; UCHAR __cil_tmp451 ; int __cil_tmp452 ; unsigned int __cil_tmp453 ; unsigned int __cil_tmp454 ; PDEVICE_OBJECT __cil_tmp455 ; int __cil_tmp456 ; int __cil_tmp457 ; int __cil_tmp458 ; int __cil_tmp459 ; unsigned long __cil_tmp460 ; void *__cil_tmp461 ; FDC_DISK_CHANGE_PARMS *__cil_tmp462 ; unsigned int __cil_tmp463 ; unsigned int __cil_tmp464 ; UCHAR __cil_tmp465 ; int __cil_tmp466 ; int __cil_tmp467 ; int __cil_tmp468 ; int __cil_tmp469 ; unsigned int __cil_tmp470 ; unsigned int __cil_tmp471 ; unsigned long __cil_tmp472 ; unsigned int __cil_tmp473 ; unsigned int __cil_tmp474 ; PVOID __cil_tmp475 ; int __cil_tmp476 ; PBAD_TRACK_NUMBER __cil_tmp477 ; int __cil_tmp478 ; int __cil_tmp479 ; int __cil_tmp480 ; int __cil_tmp481 ; int __cil_tmp482 ; int __cil_tmp483 ; int __cil_tmp484 ; struct _IO_STACK_LOCATION **mem_485 ; PVOID *mem_486 ; ULONG *mem_487 ; PVOID *mem_488 ; ULONG *mem_489 ; UCHAR *mem_490 ; DRIVE_MEDIA_TYPE *mem_491 ; MEDIA_TYPE *mem_492 ; MEDIA_TYPE *mem_493 ; UCHAR *mem_494 ; DRIVE_MEDIA_TYPE *mem_495 ; MEDIA_TYPE *mem_496 ; MEDIA_TYPE *mem_497 ; DRIVE_MEDIA_TYPE *mem_498 ; DRIVE_MEDIA_CONSTANTS *mem_499 ; USHORT *mem_500 ; UCHAR *mem_501 ; USHORT *mem_502 ; UCHAR *mem_503 ; USHORT *mem_504 ; ULONG *mem_505 ; UCHAR *mem_506 ; UCHAR *mem_507 ; UCHAR *mem_508 ; USHORT *mem_509 ; ULONG *mem_510 ; ULONG *mem_511 ; UCHAR *mem_512 ; ULONG *mem_513 ; ULONG *mem_514 ; UCHAR *mem_515 ; ULONG *mem_516 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_517 ; DRIVE_MEDIA_TYPE *mem_518 ; BOOLEAN *mem_519 ; UCHAR *mem_520 ; UCHAR *mem_521 ; UCHAR *mem_522 ; UCHAR *mem_523 ; UCHAR *mem_524 ; UCHAR *mem_525 ; UCHAR *mem_526 ; UCHAR *mem_527 ; UCHAR *mem_528 ; UCHAR *mem_529 ; UCHAR *mem_530 ; ULONG *mem_531 ; LONG *mem_532 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_533 ; UCHAR *mem_534 ; UCHAR *mem_535 ; UCHAR *mem_536 ; BOOLEAN *mem_537 ; UCHAR *mem_538 ; PUCHAR *mem_539 ; UCHAR *mem_540 ; PUCHAR *mem_541 ; UCHAR *mem_542 ; PUCHAR *mem_543 ; USHORT *mem_544 ; PUCHAR *mem_545 ; PUCHAR *mem_546 ; UCHAR *mem_547 ; USHORT *mem_548 ; UCHAR *mem_549 ; UCHAR *mem_550 ; UCHAR *mem_551 ; UCHAR *mem_552 ; UCHAR *mem_553 ; UCHAR *mem_554 ; UCHAR *mem_555 ; UCHAR *mem_556 ; UCHAR *mem_557 ; UCHAR *mem_558 ; UCHAR *mem_559 ; UCHAR *mem_560 ; PMDL *mem_561 ; UCHAR *mem_562 ; UCHAR *mem_563 ; UCHAR *mem_564 ; BOOLEAN *mem_565 ; UCHAR *mem_566 ; UCHAR *mem_567 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_568 ; UCHAR *mem_569 ; UCHAR *mem_570 ; UCHAR *mem_571 ; UCHAR *mem_572 ; PDEVICE_OBJECT *mem_573 ; UCHAR *mem_574 ; UCHAR *mem_575 ; PVOID *mem_576 ; { numberOfBadTracks = (unsigned char)0; bufferOverflow = (unsigned char)0; { while (1) { while_165_continue: /* CIL Label */ ; goto while_165_break; } while_165_break: /* CIL Label */ ; } __cil_tmp22 = 24 + 8; __cil_tmp23 = 0 + __cil_tmp22; __cil_tmp24 = 64 + __cil_tmp23; __cil_tmp25 = (unsigned int )Irp; __cil_tmp26 = __cil_tmp25 + __cil_tmp24; mem_485 = (struct _IO_STACK_LOCATION **)__cil_tmp26; irpSp = *mem_485; __cil_tmp27 = (unsigned int )Irp; __cil_tmp28 = __cil_tmp27 + 12; mem_486 = (PVOID *)__cil_tmp28; __cil_tmp29 = *mem_486; formatParameters = (struct _FORMAT_PARAMETERS *)__cil_tmp29; { __cil_tmp30 = 11 << 2; __cil_tmp31 = 3 << 14; __cil_tmp32 = 7 << 16; __cil_tmp33 = __cil_tmp32 | __cil_tmp31; __cil_tmp34 = __cil_tmp33 | __cil_tmp30; __cil_tmp35 = (unsigned long )__cil_tmp34; __cil_tmp36 = 0 + 8; __cil_tmp37 = 4 + __cil_tmp36; __cil_tmp38 = (unsigned int )irpSp; __cil_tmp39 = __cil_tmp38 + __cil_tmp37; mem_487 = (ULONG *)__cil_tmp39; __cil_tmp40 = *mem_487; if (__cil_tmp40 == __cil_tmp35) { __cil_tmp41 = (unsigned int )Irp; __cil_tmp42 = __cil_tmp41 + 12; mem_488 = (PVOID *)__cil_tmp42; __cil_tmp43 = *mem_488; formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp43; } else { __cil_tmp44 = (void *)0; formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp44; } } { while (1) { while_166_continue: /* CIL Label */ ; goto while_166_break; } while_166_break: /* CIL Label */ ; } __cil_tmp45 = (unsigned int )irpSp; __cil_tmp46 = __cil_tmp45 + 4; mem_489 = (ULONG *)__cil_tmp46; badTrackBufferLength = *mem_489; __cil_tmp47 = (unsigned int )DisketteExtension; __cil_tmp48 = __cil_tmp47 + 174; mem_490 = (UCHAR *)__cil_tmp48; __cil_tmp49 = *mem_490; __cil_tmp50 = (int )__cil_tmp49; __cil_tmp51 = DriveMediaLimits + __cil_tmp50; mem_491 = (DRIVE_MEDIA_TYPE *)__cil_tmp51; driveMediaType = *mem_491; { while (1) { while_167_continue: /* CIL Label */ ; { mem_492 = (MEDIA_TYPE *)formatParameters; __cil_tmp52 = *mem_492; __cil_tmp53 = (int )__cil_tmp52; __cil_tmp54 = (unsigned int )driveMediaType; __cil_tmp55 = DriveMediaConstants + __cil_tmp54; mem_493 = (MEDIA_TYPE *)__cil_tmp55; __cil_tmp56 = *mem_493; __cil_tmp57 = (int )__cil_tmp56; if (__cil_tmp57 != __cil_tmp53) { { __cil_tmp58 = (unsigned int )DisketteExtension; __cil_tmp59 = __cil_tmp58 + 174; mem_494 = (UCHAR *)__cil_tmp59; __cil_tmp60 = *mem_494; __cil_tmp61 = (int )__cil_tmp60; __cil_tmp62 = DriveMediaLimits + __cil_tmp61; __cil_tmp63 = (unsigned int )__cil_tmp62; __cil_tmp64 = __cil_tmp63 + 32; mem_495 = (DRIVE_MEDIA_TYPE *)__cil_tmp64; __cil_tmp65 = *mem_495; __cil_tmp66 = (int )__cil_tmp65; __cil_tmp67 = (int )driveMediaType; __cil_tmp68 = __cil_tmp67 > __cil_tmp66; if (! __cil_tmp68) { goto while_167_break; } else { } } } else { goto while_167_break; } } __cil_tmp69 = (int )driveMediaType; __cil_tmp70 = __cil_tmp69 - 1; driveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp70; } while_167_break: /* CIL Label */ ; } __cil_tmp71 = (unsigned int )driveMediaType; driveMediaConstants = DriveMediaConstants + __cil_tmp71; __cil_tmp72 = (unsigned int )DisketteExtension; __cil_tmp73 = __cil_tmp72 + 184; mem_496 = (MEDIA_TYPE *)__cil_tmp73; mem_497 = (MEDIA_TYPE *)formatParameters; *mem_496 = *mem_497; __cil_tmp74 = (unsigned int )DisketteExtension; __cil_tmp75 = __cil_tmp74 + 216; mem_498 = (DRIVE_MEDIA_TYPE *)__cil_tmp75; *mem_498 = driveMediaType; __cil_tmp76 = (unsigned int )DisketteExtension; __cil_tmp77 = __cil_tmp76 + 308; __cil_tmp78 = (unsigned int )driveMediaType; __cil_tmp79 = DriveMediaConstants + __cil_tmp78; mem_499 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp77; *mem_499 = *__cil_tmp79; if (formatExParameters) { __cil_tmp80 = 308 + 38; __cil_tmp81 = (unsigned int )DisketteExtension; __cil_tmp82 = __cil_tmp81 + __cil_tmp80; __cil_tmp83 = (unsigned int )formatExParameters; __cil_tmp84 = __cil_tmp83 + 50; mem_500 = (USHORT *)__cil_tmp84; __cil_tmp85 = *mem_500; mem_501 = (UCHAR *)__cil_tmp82; *mem_501 = (unsigned char )__cil_tmp85; __cil_tmp86 = 308 + 40; __cil_tmp87 = (unsigned int )DisketteExtension; __cil_tmp88 = __cil_tmp87 + __cil_tmp86; __cil_tmp89 = (unsigned int )formatExParameters; __cil_tmp90 = __cil_tmp89 + 48; mem_502 = (USHORT *)__cil_tmp90; __cil_tmp91 = *mem_502; mem_503 = (UCHAR *)__cil_tmp88; *mem_503 = (unsigned char )__cil_tmp91; } else { } __cil_tmp92 = (unsigned int )DisketteExtension; __cil_tmp93 = __cil_tmp92 + 308; driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp93; __cil_tmp94 = (unsigned int )DisketteExtension; __cil_tmp95 = __cil_tmp94 + 176; __cil_tmp96 = (unsigned int )driveMediaConstants; __cil_tmp97 = __cil_tmp96 + 36; mem_504 = (USHORT *)__cil_tmp97; __cil_tmp98 = *mem_504; mem_505 = (ULONG *)__cil_tmp95; *mem_505 = (unsigned long )__cil_tmp98; __cil_tmp99 = (unsigned int )DisketteExtension; __cil_tmp100 = __cil_tmp99 + 180; __cil_tmp101 = (unsigned int )driveMediaConstants; __cil_tmp102 = __cil_tmp101 + 51; mem_506 = (UCHAR *)__cil_tmp102; __cil_tmp103 = *mem_506; __cil_tmp104 = (int )__cil_tmp103; __cil_tmp105 = (unsigned int )driveMediaConstants; __cil_tmp106 = __cil_tmp105 + 48; mem_507 = (UCHAR *)__cil_tmp106; __cil_tmp107 = *mem_507; __cil_tmp108 = (int )__cil_tmp107; __cil_tmp109 = 1 + __cil_tmp108; __cil_tmp110 = (unsigned int )driveMediaConstants; __cil_tmp111 = __cil_tmp110 + 38; mem_508 = (UCHAR *)__cil_tmp111; __cil_tmp112 = *mem_508; __cil_tmp113 = (int )__cil_tmp112; __cil_tmp114 = (unsigned int )driveMediaConstants; __cil_tmp115 = __cil_tmp114 + 36; mem_509 = (USHORT *)__cil_tmp115; __cil_tmp116 = *mem_509; __cil_tmp117 = (int )__cil_tmp116; __cil_tmp118 = __cil_tmp117 * __cil_tmp113; __cil_tmp119 = __cil_tmp118 * __cil_tmp109; __cil_tmp120 = __cil_tmp119 * __cil_tmp104; mem_510 = (ULONG *)__cil_tmp100; *mem_510 = (unsigned long )__cil_tmp120; __cil_tmp121 = (unsigned int )formatParameters; __cil_tmp122 = __cil_tmp121 + 40; mem_511 = (ULONG *)__cil_tmp122; __cil_tmp123 = *mem_511; __cil_tmp124 = (unsigned int )driveMediaConstants; __cil_tmp125 = __cil_tmp124 + 51; mem_512 = (UCHAR *)__cil_tmp125; __cil_tmp126 = *mem_512; __cil_tmp127 = (unsigned long )__cil_tmp126; __cil_tmp128 = (unsigned int )formatParameters; __cil_tmp129 = __cil_tmp128 + 32; mem_513 = (ULONG *)__cil_tmp129; __cil_tmp130 = *mem_513; __cil_tmp131 = __cil_tmp130 * __cil_tmp127; __cil_tmp132 = __cil_tmp131 + __cil_tmp123; currentTrack = (unsigned char )__cil_tmp132; __cil_tmp133 = (unsigned int )formatParameters; __cil_tmp134 = __cil_tmp133 + 44; mem_514 = (ULONG *)__cil_tmp134; __cil_tmp135 = *mem_514; __cil_tmp136 = (unsigned int )driveMediaConstants; __cil_tmp137 = __cil_tmp136 + 51; mem_515 = (UCHAR *)__cil_tmp137; __cil_tmp138 = *mem_515; __cil_tmp139 = (unsigned long )__cil_tmp138; __cil_tmp140 = (unsigned int )formatParameters; __cil_tmp141 = __cil_tmp140 + 36; mem_516 = (ULONG *)__cil_tmp141; __cil_tmp142 = *mem_516; __cil_tmp143 = __cil_tmp142 * __cil_tmp139; __cil_tmp144 = __cil_tmp143 + __cil_tmp135; endTrack = (unsigned char )__cil_tmp144; { while (1) { while_168_continue: /* CIL Label */ ; goto while_168_break; } while_168_break: /* CIL Label */ ; } { __cil_tmp145 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp146 = (unsigned int )__cil_tmp145; __cil_tmp147 = __cil_tmp146 + 732; mem_517 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp147; __cil_tmp148 = *mem_517; __cil_tmp149 = (int )__cil_tmp148; if (__cil_tmp149 == 1) { { FlHdbit(DisketteExtension); } } else { } } { __cil_tmp150 = (int )driveMediaType; __cil_tmp151 = (unsigned int )DisketteExtension; __cil_tmp152 = __cil_tmp151 + 140; mem_518 = (DRIVE_MEDIA_TYPE *)__cil_tmp152; __cil_tmp153 = *mem_518; __cil_tmp154 = (int )__cil_tmp153; if (__cil_tmp154 != __cil_tmp150) { { ntStatus = FlDatarateSpecifyConfigure(DisketteExtension); } { __cil_tmp155 = ntStatus >= 0L; if (! __cil_tmp155) { return (ntStatus); } else { } } } else { } } __cil_tmp156 = (unsigned int )DisketteExtension; __cil_tmp157 = __cil_tmp156 + 250; mem_519 = (BOOLEAN *)__cil_tmp157; *mem_519 = (unsigned char)0; { while (1) { while_169_continue: /* CIL Label */ ; __cil_tmp158 = 0 * 1U; __cil_tmp159 = 112 + __cil_tmp158; __cil_tmp160 = (unsigned int )DisketteExtension; __cil_tmp161 = __cil_tmp160 + __cil_tmp159; mem_520 = (UCHAR *)__cil_tmp161; *mem_520 = (unsigned char)16; __cil_tmp162 = 1 * 1U; __cil_tmp163 = 112 + __cil_tmp162; __cil_tmp164 = (unsigned int )DisketteExtension; __cil_tmp165 = __cil_tmp164 + __cil_tmp163; __cil_tmp166 = (unsigned int )DisketteExtension; __cil_tmp167 = __cil_tmp166 + 248; mem_521 = (UCHAR *)__cil_tmp165; mem_522 = (UCHAR *)__cil_tmp167; *mem_521 = *mem_522; __cil_tmp168 = 2 * 1U; __cil_tmp169 = 112 + __cil_tmp168; __cil_tmp170 = (unsigned int )DisketteExtension; __cil_tmp171 = __cil_tmp170 + __cil_tmp169; __cil_tmp172 = (unsigned int )driveMediaConstants; __cil_tmp173 = __cil_tmp172 + 49; mem_523 = (UCHAR *)__cil_tmp173; __cil_tmp174 = *mem_523; __cil_tmp175 = (int )__cil_tmp174; __cil_tmp176 = (unsigned int )driveMediaConstants; __cil_tmp177 = __cil_tmp176 + 51; mem_524 = (UCHAR *)__cil_tmp177; __cil_tmp178 = *mem_524; __cil_tmp179 = (int )__cil_tmp178; __cil_tmp180 = (int )currentTrack; __cil_tmp181 = __cil_tmp180 / __cil_tmp179; __cil_tmp182 = __cil_tmp181 << __cil_tmp175; mem_525 = (UCHAR *)__cil_tmp171; *mem_525 = (unsigned char )__cil_tmp182; { while (1) { while_170_continue: /* CIL Label */ ; goto while_170_break; } while_170_break: /* CIL Label */ ; } { __cil_tmp183 = 0 * 1U; __cil_tmp184 = 112 + __cil_tmp183; __cil_tmp185 = (unsigned int )DisketteExtension; __cil_tmp186 = __cil_tmp185 + __cil_tmp184; __cil_tmp187 = (UCHAR *)__cil_tmp186; __cil_tmp188 = 0 * 1U; __cil_tmp189 = 112 + __cil_tmp188; __cil_tmp190 = (unsigned int )DisketteExtension; __cil_tmp191 = __cil_tmp190 + __cil_tmp189; __cil_tmp192 = (UCHAR *)__cil_tmp191; __cil_tmp193 = (void *)0; __cil_tmp194 = (struct _MDL *)__cil_tmp193; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp187, __cil_tmp192, __cil_tmp194, 0UL, 0UL); } if (ntStatus >= 0L) { { __cil_tmp195 = 0 * 1U; __cil_tmp196 = 112 + __cil_tmp195; __cil_tmp197 = (unsigned int )DisketteExtension; __cil_tmp198 = __cil_tmp197 + __cil_tmp196; mem_526 = (UCHAR *)__cil_tmp198; __cil_tmp199 = *mem_526; __cil_tmp200 = (int )__cil_tmp199; if (__cil_tmp200 & 32) { { __cil_tmp201 = (unsigned int )driveMediaConstants; __cil_tmp202 = __cil_tmp201 + 49; mem_527 = (UCHAR *)__cil_tmp202; __cil_tmp203 = *mem_527; __cil_tmp204 = (int )__cil_tmp203; __cil_tmp205 = (unsigned int )driveMediaConstants; __cil_tmp206 = __cil_tmp205 + 51; mem_528 = (UCHAR *)__cil_tmp206; __cil_tmp207 = *mem_528; __cil_tmp208 = (int )__cil_tmp207; __cil_tmp209 = (int )currentTrack; __cil_tmp210 = __cil_tmp209 / __cil_tmp208; __cil_tmp211 = __cil_tmp210 << __cil_tmp204; __cil_tmp212 = (unsigned char )__cil_tmp211; __cil_tmp213 = (int )__cil_tmp212; __cil_tmp214 = 1 * 1U; __cil_tmp215 = 112 + __cil_tmp214; __cil_tmp216 = (unsigned int )DisketteExtension; __cil_tmp217 = __cil_tmp216 + __cil_tmp215; mem_529 = (UCHAR *)__cil_tmp217; __cil_tmp218 = *mem_529; __cil_tmp219 = (int )__cil_tmp218; if (__cil_tmp219 == __cil_tmp213) { { __cil_tmp220 = & headSettleTime; __cil_tmp221 = (unsigned int )driveMediaConstants; __cil_tmp222 = __cil_tmp221 + 42; mem_530 = (UCHAR *)__cil_tmp222; __cil_tmp223 = *mem_530; __cil_tmp224 = (int )__cil_tmp223; __cil_tmp225 = 10000 * __cil_tmp224; __cil_tmp226 = - __cil_tmp225; mem_531 = (ULONG *)__cil_tmp220; *mem_531 = (unsigned long )__cil_tmp226; __cil_tmp227 = 0 + 4; __cil_tmp228 = (unsigned int )(& headSettleTime) + __cil_tmp227; mem_532 = (LONG *)__cil_tmp228; *mem_532 = -1L; KeDelayExecutionThread((char)0, (unsigned char)0, & headSettleTime); } { __cil_tmp229 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp230 = (unsigned int )__cil_tmp229; __cil_tmp231 = __cil_tmp230 + 732; mem_533 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp231; __cil_tmp232 = *mem_533; __cil_tmp233 = (int )__cil_tmp232; __cil_tmp234 = __cil_tmp233 == 1; if (! __cil_tmp234) { { __cil_tmp235 = 0 * 1U; __cil_tmp236 = 112 + __cil_tmp235; __cil_tmp237 = (unsigned int )DisketteExtension; __cil_tmp238 = __cil_tmp237 + __cil_tmp236; mem_534 = (UCHAR *)__cil_tmp238; *mem_534 = (unsigned char)84; __cil_tmp239 = 1 * 1U; __cil_tmp240 = 112 + __cil_tmp239; __cil_tmp241 = (unsigned int )DisketteExtension; __cil_tmp242 = __cil_tmp241 + __cil_tmp240; __cil_tmp243 = (unsigned int )DisketteExtension; __cil_tmp244 = __cil_tmp243 + 248; mem_535 = (UCHAR *)__cil_tmp242; mem_536 = (UCHAR *)__cil_tmp244; *mem_535 = *mem_536; __cil_tmp245 = 0 * 1U; __cil_tmp246 = 112 + __cil_tmp245; __cil_tmp247 = (unsigned int )DisketteExtension; __cil_tmp248 = __cil_tmp247 + __cil_tmp246; __cil_tmp249 = (UCHAR *)__cil_tmp248; __cil_tmp250 = 0 * 1U; __cil_tmp251 = 112 + __cil_tmp250; __cil_tmp252 = (unsigned int )DisketteExtension; __cil_tmp253 = __cil_tmp252 + __cil_tmp251; __cil_tmp254 = (UCHAR *)__cil_tmp253; __cil_tmp255 = (void *)0; __cil_tmp256 = (struct _MDL *)__cil_tmp255; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp249, __cil_tmp254, __cil_tmp256, 0UL, 0UL); } } else { } } } else { goto _L; } } } else { _L: { while (1) { while_171_continue: /* CIL Label */ ; goto while_171_break; } while_171_break: /* CIL Label */ ; } __cil_tmp257 = (unsigned int )DisketteExtension; __cil_tmp258 = __cil_tmp257 + 104; mem_537 = (BOOLEAN *)__cil_tmp258; *mem_537 = (unsigned char)1; ntStatus = -1073741464L; } } } else { } { __cil_tmp259 = ntStatus >= 0L; if (! __cil_tmp259) { { while (1) { while_172_continue: /* CIL Label */ ; goto while_172_break; } while_172_break: /* CIL Label */ ; } return (ntStatus); } else { } } whichSector = (unsigned char)0; { while (1) { while_173_continue: /* CIL Label */ ; { __cil_tmp260 = (unsigned int )driveMediaConstants; __cil_tmp261 = __cil_tmp260 + 38; mem_538 = (UCHAR *)__cil_tmp261; __cil_tmp262 = *mem_538; __cil_tmp263 = (int )__cil_tmp262; __cil_tmp264 = (int )whichSector; if (__cil_tmp264 < __cil_tmp263) { } else { goto while_173_break; } } __cil_tmp265 = (int )whichSector; __cil_tmp266 = __cil_tmp265 * 4; __cil_tmp267 = (unsigned int )DisketteExtension; __cil_tmp268 = __cil_tmp267 + 124; mem_539 = (PUCHAR *)__cil_tmp268; __cil_tmp269 = *mem_539; __cil_tmp270 = __cil_tmp269 + __cil_tmp266; __cil_tmp271 = (unsigned int )driveMediaConstants; __cil_tmp272 = __cil_tmp271 + 51; mem_540 = (UCHAR *)__cil_tmp272; __cil_tmp273 = *mem_540; __cil_tmp274 = (int )__cil_tmp273; __cil_tmp275 = (int )currentTrack; __cil_tmp276 = __cil_tmp275 / __cil_tmp274; *__cil_tmp270 = (unsigned char )__cil_tmp276; __cil_tmp277 = (int )whichSector; __cil_tmp278 = __cil_tmp277 * 4; __cil_tmp279 = __cil_tmp278 + 1; __cil_tmp280 = (unsigned int )DisketteExtension; __cil_tmp281 = __cil_tmp280 + 124; mem_541 = (PUCHAR *)__cil_tmp281; __cil_tmp282 = *mem_541; __cil_tmp283 = __cil_tmp282 + __cil_tmp279; __cil_tmp284 = (unsigned int )driveMediaConstants; __cil_tmp285 = __cil_tmp284 + 51; mem_542 = (UCHAR *)__cil_tmp285; __cil_tmp286 = *mem_542; __cil_tmp287 = (int )__cil_tmp286; __cil_tmp288 = (int )currentTrack; __cil_tmp289 = __cil_tmp288 % __cil_tmp287; *__cil_tmp283 = (unsigned char )__cil_tmp289; if (formatExParameters) { __cil_tmp290 = (int )whichSector; __cil_tmp291 = __cil_tmp290 * 4; __cil_tmp292 = __cil_tmp291 + 2; __cil_tmp293 = (unsigned int )DisketteExtension; __cil_tmp294 = __cil_tmp293 + 124; mem_543 = (PUCHAR *)__cil_tmp294; __cil_tmp295 = *mem_543; __cil_tmp296 = __cil_tmp295 + __cil_tmp292; __cil_tmp297 = whichSector * 2U; __cil_tmp298 = 52 + __cil_tmp297; __cil_tmp299 = (unsigned int )formatExParameters; __cil_tmp300 = __cil_tmp299 + __cil_tmp298; mem_544 = (USHORT *)__cil_tmp300; __cil_tmp301 = *mem_544; *__cil_tmp296 = (unsigned char )__cil_tmp301; } else { __cil_tmp302 = (int )whichSector; __cil_tmp303 = __cil_tmp302 * 4; __cil_tmp304 = __cil_tmp303 + 2; __cil_tmp305 = (unsigned int )DisketteExtension; __cil_tmp306 = __cil_tmp305 + 124; mem_545 = (PUCHAR *)__cil_tmp306; __cil_tmp307 = *mem_545; __cil_tmp308 = __cil_tmp307 + __cil_tmp304; __cil_tmp309 = (int )whichSector; __cil_tmp310 = __cil_tmp309 + 1; *__cil_tmp308 = (unsigned char )__cil_tmp310; } __cil_tmp311 = (int )whichSector; __cil_tmp312 = __cil_tmp311 * 4; __cil_tmp313 = __cil_tmp312 + 3; __cil_tmp314 = (unsigned int )DisketteExtension; __cil_tmp315 = __cil_tmp314 + 124; mem_546 = (PUCHAR *)__cil_tmp315; __cil_tmp316 = *mem_546; __cil_tmp317 = __cil_tmp316 + __cil_tmp313; __cil_tmp318 = (unsigned int )driveMediaConstants; __cil_tmp319 = __cil_tmp318 + 35; mem_547 = (UCHAR *)__cil_tmp319; *__cil_tmp317 = *mem_547; { while (1) { while_174_continue: /* CIL Label */ ; goto while_174_break; } while_174_break: /* CIL Label */ ; } __cil_tmp320 = (int )whichSector; __cil_tmp321 = __cil_tmp320 + 1; whichSector = (unsigned char )__cil_tmp321; } while_173_break: /* CIL Label */ ; } retryCount = (unsigned char)0; { while (1) { while_175_continue: /* CIL Label */ ; __cil_tmp322 = (unsigned int )driveMediaConstants; __cil_tmp323 = __cil_tmp322 + 36; mem_548 = (USHORT *)__cil_tmp323; __cil_tmp324 = *mem_548; length = (unsigned long )__cil_tmp324; __cil_tmp325 = 0 * 1U; __cil_tmp326 = 112 + __cil_tmp325; __cil_tmp327 = (unsigned int )DisketteExtension; __cil_tmp328 = __cil_tmp327 + __cil_tmp326; mem_549 = (UCHAR *)__cil_tmp328; *mem_549 = (unsigned char)71; __cil_tmp329 = 1 * 1U; __cil_tmp330 = 112 + __cil_tmp329; __cil_tmp331 = (unsigned int )DisketteExtension; __cil_tmp332 = __cil_tmp331 + __cil_tmp330; __cil_tmp333 = (unsigned int )DisketteExtension; __cil_tmp334 = __cil_tmp333 + 248; mem_550 = (UCHAR *)__cil_tmp334; __cil_tmp335 = *mem_550; __cil_tmp336 = (int )__cil_tmp335; __cil_tmp337 = (unsigned int )driveMediaConstants; __cil_tmp338 = __cil_tmp337 + 51; mem_551 = (UCHAR *)__cil_tmp338; __cil_tmp339 = *mem_551; __cil_tmp340 = (int )__cil_tmp339; __cil_tmp341 = (int )currentTrack; __cil_tmp342 = __cil_tmp341 % __cil_tmp340; __cil_tmp343 = __cil_tmp342 << 2; __cil_tmp344 = __cil_tmp343 | __cil_tmp336; mem_552 = (UCHAR *)__cil_tmp332; *mem_552 = (unsigned char )__cil_tmp344; __cil_tmp345 = 2 * 1U; __cil_tmp346 = 112 + __cil_tmp345; __cil_tmp347 = (unsigned int )DisketteExtension; __cil_tmp348 = __cil_tmp347 + __cil_tmp346; __cil_tmp349 = (unsigned int )driveMediaConstants; __cil_tmp350 = __cil_tmp349 + 35; mem_553 = (UCHAR *)__cil_tmp348; mem_554 = (UCHAR *)__cil_tmp350; *mem_553 = *mem_554; __cil_tmp351 = 3 * 1U; __cil_tmp352 = 112 + __cil_tmp351; __cil_tmp353 = (unsigned int )DisketteExtension; __cil_tmp354 = __cil_tmp353 + __cil_tmp352; __cil_tmp355 = (unsigned int )driveMediaConstants; __cil_tmp356 = __cil_tmp355 + 38; mem_555 = (UCHAR *)__cil_tmp354; mem_556 = (UCHAR *)__cil_tmp356; *mem_555 = *mem_556; __cil_tmp357 = 4 * 1U; __cil_tmp358 = 112 + __cil_tmp357; __cil_tmp359 = (unsigned int )DisketteExtension; __cil_tmp360 = __cil_tmp359 + __cil_tmp358; __cil_tmp361 = (unsigned int )driveMediaConstants; __cil_tmp362 = __cil_tmp361 + 40; mem_557 = (UCHAR *)__cil_tmp360; mem_558 = (UCHAR *)__cil_tmp362; *mem_557 = *mem_558; __cil_tmp363 = 5 * 1U; __cil_tmp364 = 112 + __cil_tmp363; __cil_tmp365 = (unsigned int )DisketteExtension; __cil_tmp366 = __cil_tmp365 + __cil_tmp364; __cil_tmp367 = (unsigned int )driveMediaConstants; __cil_tmp368 = __cil_tmp367 + 41; mem_559 = (UCHAR *)__cil_tmp366; mem_560 = (UCHAR *)__cil_tmp368; *mem_559 = *mem_560; { while (1) { while_176_continue: /* CIL Label */ ; goto while_176_break; } while_176_break: /* CIL Label */ ; } { __cil_tmp369 = 0 * 1U; __cil_tmp370 = 112 + __cil_tmp369; __cil_tmp371 = (unsigned int )DisketteExtension; __cil_tmp372 = __cil_tmp371 + __cil_tmp370; __cil_tmp373 = (UCHAR *)__cil_tmp372; __cil_tmp374 = 0 * 1U; __cil_tmp375 = 112 + __cil_tmp374; __cil_tmp376 = (unsigned int )DisketteExtension; __cil_tmp377 = __cil_tmp376 + __cil_tmp375; __cil_tmp378 = (UCHAR *)__cil_tmp377; __cil_tmp379 = (unsigned int )DisketteExtension; __cil_tmp380 = __cil_tmp379 + 128; mem_561 = (PMDL *)__cil_tmp380; __cil_tmp381 = *mem_561; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp373, __cil_tmp378, __cil_tmp381, 0UL, length); } { __cil_tmp382 = ntStatus >= 0L; if (! __cil_tmp382) { { while (1) { while_177_continue: /* CIL Label */ ; goto while_177_break; } while_177_break: /* CIL Label */ ; } } else { } } if (ntStatus >= 0L) { { __cil_tmp383 = 0 * 1U; __cil_tmp384 = 112 + __cil_tmp383; __cil_tmp385 = (unsigned int )DisketteExtension; __cil_tmp386 = __cil_tmp385 + __cil_tmp384; mem_562 = (UCHAR *)__cil_tmp386; __cil_tmp387 = *mem_562; __cil_tmp388 = (int )__cil_tmp387; if (__cil_tmp388 & 208) { goto _L___0; } else { { __cil_tmp389 = 1 * 1U; __cil_tmp390 = 112 + __cil_tmp389; __cil_tmp391 = (unsigned int )DisketteExtension; __cil_tmp392 = __cil_tmp391 + __cil_tmp390; mem_563 = (UCHAR *)__cil_tmp392; __cil_tmp393 = *mem_563; __cil_tmp394 = (int )__cil_tmp393; if (__cil_tmp394 & 16) { goto _L___0; } else { { __cil_tmp395 = 2 * 1U; __cil_tmp396 = 112 + __cil_tmp395; __cil_tmp397 = (unsigned int )DisketteExtension; __cil_tmp398 = __cil_tmp397 + __cil_tmp396; mem_564 = (UCHAR *)__cil_tmp398; __cil_tmp399 = *mem_564; __cil_tmp400 = (int )__cil_tmp399; if (__cil_tmp400 != 0) { _L___0: { while (1) { while_178_continue: /* CIL Label */ ; goto while_178_break; } while_178_break: /* CIL Label */ ; } { __cil_tmp401 = (unsigned int )DisketteExtension; __cil_tmp402 = __cil_tmp401 + 104; mem_565 = (BOOLEAN *)__cil_tmp402; *mem_565 = (unsigned char)1; __cil_tmp403 = 1 * 1U; __cil_tmp404 = 112 + __cil_tmp403; __cil_tmp405 = (unsigned int )DisketteExtension; __cil_tmp406 = __cil_tmp405 + __cil_tmp404; mem_566 = (UCHAR *)__cil_tmp406; __cil_tmp407 = *mem_566; __cil_tmp408 = 2 * 1U; __cil_tmp409 = 112 + __cil_tmp408; __cil_tmp410 = (unsigned int )DisketteExtension; __cil_tmp411 = __cil_tmp410 + __cil_tmp409; mem_567 = (UCHAR *)__cil_tmp411; __cil_tmp412 = *mem_567; ntStatus = FlInterpretError(__cil_tmp407, __cil_tmp412); } } else { } } } } } } } else { } { __cil_tmp413 = ntStatus >= 0L; if (! __cil_tmp413) { tmp = retryCount; __cil_tmp414 = (int )retryCount; __cil_tmp415 = __cil_tmp414 + 1; retryCount = (unsigned char )__cil_tmp415; { __cil_tmp416 = (int )tmp; __cil_tmp417 = __cil_tmp416 < 3; if (! __cil_tmp417) { goto while_175_break; } else { } } } else { goto while_175_break; } } } while_175_break: /* CIL Label */ ; } { __cil_tmp418 = ntStatus >= 0L; if (! __cil_tmp418) { { __cil_tmp419 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp420 = (unsigned int )__cil_tmp419; __cil_tmp421 = __cil_tmp420 + 732; mem_568 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp421; __cil_tmp422 = *mem_568; __cil_tmp423 = (int )__cil_tmp422; if (__cil_tmp423 == 1) { { __cil_tmp424 = 0 * 1U; __cil_tmp425 = 112 + __cil_tmp424; __cil_tmp426 = (unsigned int )DisketteExtension; __cil_tmp427 = __cil_tmp426 + __cil_tmp425; mem_569 = (UCHAR *)__cil_tmp427; *mem_569 = (unsigned char)14; __cil_tmp428 = 1 * 1U; __cil_tmp429 = 112 + __cil_tmp428; __cil_tmp430 = (unsigned int )DisketteExtension; __cil_tmp431 = __cil_tmp430 + __cil_tmp429; __cil_tmp432 = (unsigned int )DisketteExtension; __cil_tmp433 = __cil_tmp432 + 248; mem_570 = (UCHAR *)__cil_tmp431; mem_571 = (UCHAR *)__cil_tmp433; *mem_570 = *mem_571; __cil_tmp434 = 0 * 1U; __cil_tmp435 = 112 + __cil_tmp434; __cil_tmp436 = (unsigned int )DisketteExtension; __cil_tmp437 = __cil_tmp436 + __cil_tmp435; __cil_tmp438 = (UCHAR *)__cil_tmp437; __cil_tmp439 = 0 * 1U; __cil_tmp440 = 112 + __cil_tmp439; __cil_tmp441 = (unsigned int )DisketteExtension; __cil_tmp442 = __cil_tmp441 + __cil_tmp440; __cil_tmp443 = (UCHAR *)__cil_tmp442; __cil_tmp444 = (void *)0; __cil_tmp445 = (struct _MDL *)__cil_tmp444; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp438, __cil_tmp443, __cil_tmp445, 0UL, 0UL); } { __cil_tmp446 = ntStatus >= 0L; if (! __cil_tmp446) { { while (1) { while_179_continue: /* CIL Label */ ; goto while_179_break; } while_179_break: /* CIL Label */ ; } return (ntStatus); } else { } } { __cil_tmp447 = 0 * 1U; __cil_tmp448 = 112 + __cil_tmp447; __cil_tmp449 = (unsigned int )DisketteExtension; __cil_tmp450 = __cil_tmp449 + __cil_tmp448; mem_572 = (UCHAR *)__cil_tmp450; __cil_tmp451 = *mem_572; __cil_tmp452 = (int )__cil_tmp451; if (__cil_tmp452 & 32) { driveStatus = (unsigned char)127; } else { driveStatus = (unsigned char)128; } } } else { { __cil_tmp453 = (unsigned int )DisketteExtension; __cil_tmp454 = __cil_tmp453 + 8; mem_573 = (PDEVICE_OBJECT *)__cil_tmp454; __cil_tmp455 = *mem_573; __cil_tmp456 = 776 << 2; __cil_tmp457 = 7 << 16; __cil_tmp458 = __cil_tmp457 | __cil_tmp456; __cil_tmp459 = __cil_tmp458 | 3; __cil_tmp460 = (unsigned long )__cil_tmp459; __cil_tmp461 = (void *)(& fdcDiskChangeParms); ntStatus = FlFdcDeviceIo(__cil_tmp455, __cil_tmp460, __cil_tmp461); __cil_tmp462 = & fdcDiskChangeParms; mem_574 = (UCHAR *)__cil_tmp462; driveStatus = *mem_574; } } } { __cil_tmp463 = (unsigned int )DisketteExtension; __cil_tmp464 = __cil_tmp463 + 174; mem_575 = (UCHAR *)__cil_tmp464; __cil_tmp465 = *mem_575; __cil_tmp466 = (int )__cil_tmp465; if (__cil_tmp466 != 0) { { __cil_tmp467 = (int )driveStatus; if (__cil_tmp467 & 128) { return (-1073741805L); } else { } } } else { } } { while (1) { while_180_continue: /* CIL Label */ ; goto while_180_break; } while_180_break: /* CIL Label */ ; } { __cil_tmp468 = (int )numberOfBadTracks; __cil_tmp469 = __cil_tmp468 + 1; __cil_tmp470 = (unsigned int )__cil_tmp469; __cil_tmp471 = __cil_tmp470 * 2U; __cil_tmp472 = (unsigned long )__cil_tmp471; if (badTrackBufferLength >= __cil_tmp472) { __cil_tmp473 = (unsigned int )Irp; __cil_tmp474 = __cil_tmp473 + 12; mem_576 = (PVOID *)__cil_tmp474; __cil_tmp475 = *mem_576; badTrackBuffer = (USHORT *)__cil_tmp475; __cil_tmp476 = (int )numberOfBadTracks; __cil_tmp477 = badTrackBuffer + __cil_tmp476; *__cil_tmp477 = (unsigned short )currentTrack; } else { bufferOverflow = (unsigned char)1; } } __cil_tmp478 = (int )numberOfBadTracks; __cil_tmp479 = __cil_tmp478 + 1; numberOfBadTracks = (unsigned char )__cil_tmp479; } else { } } __cil_tmp480 = (int )currentTrack; __cil_tmp481 = __cil_tmp480 + 1; currentTrack = (unsigned char )__cil_tmp481; { __cil_tmp482 = (int )endTrack; __cil_tmp483 = (int )currentTrack; __cil_tmp484 = __cil_tmp483 <= __cil_tmp482; if (! __cil_tmp484) { goto while_169_break; } else { } } } while_169_break: /* CIL Label */ ; } if (ntStatus >= 0L) { if (bufferOverflow) { ntStatus = -2147483643L; } else { } } else { } return (ntStatus); } } BOOLEAN FlCheckFormatParameters(PDISKETTE_EXTENSION DisketteExtension , PFORMAT_PARAMETERS FormatParameters ) { PDRIVE_MEDIA_CONSTANTS driveMediaConstants ; DRIVE_MEDIA_TYPE driveMediaType ; unsigned int __cil_tmp5 ; unsigned int __cil_tmp6 ; UCHAR __cil_tmp7 ; int __cil_tmp8 ; PDRIVE_MEDIA_LIMITS __cil_tmp9 ; MEDIA_TYPE __cil_tmp10 ; int __cil_tmp11 ; unsigned int __cil_tmp12 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp13 ; MEDIA_TYPE __cil_tmp14 ; int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; UCHAR __cil_tmp18 ; int __cil_tmp19 ; PDRIVE_MEDIA_LIMITS __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; DRIVE_MEDIA_TYPE __cil_tmp23 ; int __cil_tmp24 ; int __cil_tmp25 ; int __cil_tmp26 ; int __cil_tmp27 ; int __cil_tmp28 ; MEDIA_TYPE __cil_tmp29 ; int __cil_tmp30 ; unsigned int __cil_tmp31 ; PDRIVE_MEDIA_CONSTANTS __cil_tmp32 ; MEDIA_TYPE __cil_tmp33 ; int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; UCHAR __cil_tmp38 ; int __cil_tmp39 ; int __cil_tmp40 ; unsigned long __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; ULONG __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; UCHAR __cil_tmp47 ; int __cil_tmp48 ; int __cil_tmp49 ; unsigned long __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; ULONG __cil_tmp53 ; unsigned int __cil_tmp54 ; unsigned int __cil_tmp55 ; UCHAR __cil_tmp56 ; unsigned long __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; ULONG __cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; UCHAR __cil_tmp63 ; unsigned long __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; ULONG __cil_tmp67 ; unsigned int __cil_tmp68 ; unsigned int __cil_tmp69 ; ULONG __cil_tmp70 ; unsigned int __cil_tmp71 ; unsigned int __cil_tmp72 ; ULONG __cil_tmp73 ; KUSER_SHARED_DATA *__cil_tmp74 ; unsigned int __cil_tmp75 ; unsigned int __cil_tmp76 ; ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp77 ; int __cil_tmp78 ; MEDIA_TYPE __cil_tmp79 ; int __cil_tmp80 ; MEDIA_TYPE __cil_tmp81 ; int __cil_tmp82 ; MEDIA_TYPE __cil_tmp83 ; int __cil_tmp84 ; MEDIA_TYPE __cil_tmp85 ; int __cil_tmp86 ; MEDIA_TYPE __cil_tmp87 ; int __cil_tmp88 ; UCHAR *mem_89 ; DRIVE_MEDIA_TYPE *mem_90 ; MEDIA_TYPE *mem_91 ; MEDIA_TYPE *mem_92 ; UCHAR *mem_93 ; DRIVE_MEDIA_TYPE *mem_94 ; MEDIA_TYPE *mem_95 ; MEDIA_TYPE *mem_96 ; UCHAR *mem_97 ; ULONG *mem_98 ; UCHAR *mem_99 ; ULONG *mem_100 ; UCHAR *mem_101 ; ULONG *mem_102 ; UCHAR *mem_103 ; ULONG *mem_104 ; ULONG *mem_105 ; ULONG *mem_106 ; ALTERNATIVE_ARCHITECTURE_TYPE *mem_107 ; MEDIA_TYPE *mem_108 ; MEDIA_TYPE *mem_109 ; MEDIA_TYPE *mem_110 ; MEDIA_TYPE *mem_111 ; MEDIA_TYPE *mem_112 ; { __cil_tmp5 = (unsigned int )DisketteExtension; __cil_tmp6 = __cil_tmp5 + 174; mem_89 = (UCHAR *)__cil_tmp6; __cil_tmp7 = *mem_89; __cil_tmp8 = (int )__cil_tmp7; __cil_tmp9 = DriveMediaLimits + __cil_tmp8; mem_90 = (DRIVE_MEDIA_TYPE *)__cil_tmp9; driveMediaType = *mem_90; { while (1) { while_181_continue: /* CIL Label */ ; { mem_91 = (MEDIA_TYPE *)FormatParameters; __cil_tmp10 = *mem_91; __cil_tmp11 = (int )__cil_tmp10; __cil_tmp12 = (unsigned int )driveMediaType; __cil_tmp13 = DriveMediaConstants + __cil_tmp12; mem_92 = (MEDIA_TYPE *)__cil_tmp13; __cil_tmp14 = *mem_92; __cil_tmp15 = (int )__cil_tmp14; if (__cil_tmp15 != __cil_tmp11) { { __cil_tmp16 = (unsigned int )DisketteExtension; __cil_tmp17 = __cil_tmp16 + 174; mem_93 = (UCHAR *)__cil_tmp17; __cil_tmp18 = *mem_93; __cil_tmp19 = (int )__cil_tmp18; __cil_tmp20 = DriveMediaLimits + __cil_tmp19; __cil_tmp21 = (unsigned int )__cil_tmp20; __cil_tmp22 = __cil_tmp21 + 32; mem_94 = (DRIVE_MEDIA_TYPE *)__cil_tmp22; __cil_tmp23 = *mem_94; __cil_tmp24 = (int )__cil_tmp23; __cil_tmp25 = (int )driveMediaType; __cil_tmp26 = __cil_tmp25 > __cil_tmp24; if (! __cil_tmp26) { goto while_181_break; } else { } } } else { goto while_181_break; } } __cil_tmp27 = (int )driveMediaType; __cil_tmp28 = __cil_tmp27 - 1; driveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp28; } while_181_break: /* CIL Label */ ; } { mem_95 = (MEDIA_TYPE *)FormatParameters; __cil_tmp29 = *mem_95; __cil_tmp30 = (int )__cil_tmp29; __cil_tmp31 = (unsigned int )driveMediaType; __cil_tmp32 = DriveMediaConstants + __cil_tmp31; mem_96 = (MEDIA_TYPE *)__cil_tmp32; __cil_tmp33 = *mem_96; __cil_tmp34 = (int )__cil_tmp33; if (__cil_tmp34 != __cil_tmp30) { return ((unsigned char)0); } else { __cil_tmp35 = (unsigned int )driveMediaType; driveMediaConstants = DriveMediaConstants + __cil_tmp35; { __cil_tmp36 = (unsigned int )driveMediaConstants; __cil_tmp37 = __cil_tmp36 + 51; mem_97 = (UCHAR *)__cil_tmp37; __cil_tmp38 = *mem_97; __cil_tmp39 = (int )__cil_tmp38; __cil_tmp40 = __cil_tmp39 - 1; __cil_tmp41 = (unsigned long )__cil_tmp40; __cil_tmp42 = (unsigned int )FormatParameters; __cil_tmp43 = __cil_tmp42 + 40; mem_98 = (ULONG *)__cil_tmp43; __cil_tmp44 = *mem_98; if (__cil_tmp44 > __cil_tmp41) { return ((unsigned char)0); } else { { __cil_tmp45 = (unsigned int )driveMediaConstants; __cil_tmp46 = __cil_tmp45 + 51; mem_99 = (UCHAR *)__cil_tmp46; __cil_tmp47 = *mem_99; __cil_tmp48 = (int )__cil_tmp47; __cil_tmp49 = __cil_tmp48 - 1; __cil_tmp50 = (unsigned long )__cil_tmp49; __cil_tmp51 = (unsigned int )FormatParameters; __cil_tmp52 = __cil_tmp51 + 44; mem_100 = (ULONG *)__cil_tmp52; __cil_tmp53 = *mem_100; if (__cil_tmp53 > __cil_tmp50) { return ((unsigned char)0); } else { { __cil_tmp54 = (unsigned int )driveMediaConstants; __cil_tmp55 = __cil_tmp54 + 48; mem_101 = (UCHAR *)__cil_tmp55; __cil_tmp56 = *mem_101; __cil_tmp57 = (unsigned long )__cil_tmp56; __cil_tmp58 = (unsigned int )FormatParameters; __cil_tmp59 = __cil_tmp58 + 32; mem_102 = (ULONG *)__cil_tmp59; __cil_tmp60 = *mem_102; if (__cil_tmp60 > __cil_tmp57) { return ((unsigned char)0); } else { { __cil_tmp61 = (unsigned int )driveMediaConstants; __cil_tmp62 = __cil_tmp61 + 48; mem_103 = (UCHAR *)__cil_tmp62; __cil_tmp63 = *mem_103; __cil_tmp64 = (unsigned long )__cil_tmp63; __cil_tmp65 = (unsigned int )FormatParameters; __cil_tmp66 = __cil_tmp65 + 36; mem_104 = (ULONG *)__cil_tmp66; __cil_tmp67 = *mem_104; if (__cil_tmp67 > __cil_tmp64) { return ((unsigned char)0); } else { { __cil_tmp68 = (unsigned int )FormatParameters; __cil_tmp69 = __cil_tmp68 + 32; mem_105 = (ULONG *)__cil_tmp69; __cil_tmp70 = *mem_105; __cil_tmp71 = (unsigned int )FormatParameters; __cil_tmp72 = __cil_tmp71 + 36; mem_106 = (ULONG *)__cil_tmp72; __cil_tmp73 = *mem_106; if (__cil_tmp73 < __cil_tmp70) { return ((unsigned char)0); } else { { __cil_tmp74 = (KUSER_SHARED_DATA * const )4292804608U; __cil_tmp75 = (unsigned int )__cil_tmp74; __cil_tmp76 = __cil_tmp75 + 732; mem_107 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp76; __cil_tmp77 = *mem_107; __cil_tmp78 = (int )__cil_tmp77; if (__cil_tmp78 == 1) { { mem_108 = (MEDIA_TYPE *)FormatParameters; __cil_tmp79 = *mem_108; __cil_tmp80 = (int )__cil_tmp79; if (__cil_tmp80 == 6) { return ((unsigned char)0); } else { { mem_109 = (MEDIA_TYPE *)FormatParameters; __cil_tmp81 = *mem_109; __cil_tmp82 = (int )__cil_tmp81; if (__cil_tmp82 == 7) { return ((unsigned char)0); } else { { mem_110 = (MEDIA_TYPE *)FormatParameters; __cil_tmp83 = *mem_110; __cil_tmp84 = (int )__cil_tmp83; if (__cil_tmp84 == 8) { return ((unsigned char)0); } else { { mem_111 = (MEDIA_TYPE *)FormatParameters; __cil_tmp85 = *mem_111; __cil_tmp86 = (int )__cil_tmp85; if (__cil_tmp86 == 9) { return ((unsigned char)0); } else { { mem_112 = (MEDIA_TYPE *)FormatParameters; __cil_tmp87 = *mem_112; __cil_tmp88 = (int )__cil_tmp87; if (__cil_tmp88 == 10) { return ((unsigned char)0); } else { } } } } } } } } } } } else { } } return ((unsigned char)1); } } } } } } } } } } } } } } NTSTATUS FlIssueCommand(PDISKETTE_EXTENSION DisketteExtension , PUCHAR FifoInBuffer , PUCHAR FifoOutBuffer , PMDL IoMdl , ULONG IoOffset , ULONG TransferBytes ) { NTSTATUS ntStatus ; ISSUE_FDC_COMMAND_PARMS issueCommandParms ; ISSUE_FDC_COMMAND_PARMS *__cil_tmp9 ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; PDEVICE_OBJECT __cil_tmp17 ; int __cil_tmp18 ; int __cil_tmp19 ; int __cil_tmp20 ; int __cil_tmp21 ; unsigned long __cil_tmp22 ; void *__cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; PUCHAR *mem_28 ; PUCHAR *mem_29 ; PVOID *mem_30 ; ULONG *mem_31 ; ULONG *mem_32 ; ULONG *mem_33 ; PDEVICE_OBJECT *mem_34 ; BOOLEAN *mem_35 ; BOOLEAN *mem_36 ; { __cil_tmp9 = & issueCommandParms; mem_28 = (PUCHAR *)__cil_tmp9; *mem_28 = FifoInBuffer; __cil_tmp10 = (unsigned int )(& issueCommandParms) + 4; mem_29 = (PUCHAR *)__cil_tmp10; *mem_29 = FifoOutBuffer; __cil_tmp11 = (unsigned int )(& issueCommandParms) + 8; mem_30 = (PVOID *)__cil_tmp11; *mem_30 = (void *)IoMdl; __cil_tmp12 = (unsigned int )(& issueCommandParms) + 12; mem_31 = (ULONG *)__cil_tmp12; *mem_31 = IoOffset; __cil_tmp13 = (unsigned int )(& issueCommandParms) + 16; mem_32 = (ULONG *)__cil_tmp13; *mem_32 = TransferBytes; __cil_tmp14 = (unsigned int )(& issueCommandParms) + 20; mem_33 = (ULONG *)__cil_tmp14; *mem_33 = 4UL; { while (1) { while_182_continue: /* CIL Label */ ; goto while_182_break; } while_182_break: /* CIL Label */ ; } { __cil_tmp15 = (unsigned int )DisketteExtension; __cil_tmp16 = __cil_tmp15 + 8; mem_34 = (PDEVICE_OBJECT *)__cil_tmp16; __cil_tmp17 = *mem_34; __cil_tmp18 = 771 << 2; __cil_tmp19 = 7 << 16; __cil_tmp20 = __cil_tmp19 | __cil_tmp18; __cil_tmp21 = __cil_tmp20 | 3; __cil_tmp22 = (unsigned long )__cil_tmp21; __cil_tmp23 = (void *)(& issueCommandParms); ntStatus = FlFdcDeviceIo(__cil_tmp17, __cil_tmp22, __cil_tmp23); } if (ntStatus == -1073741661L) { __cil_tmp24 = (unsigned int )DisketteExtension; __cil_tmp25 = __cil_tmp24 + 104; mem_35 = (BOOLEAN *)__cil_tmp25; *mem_35 = (unsigned char)1; } else { if (ntStatus == -1073741464L) { __cil_tmp26 = (unsigned int )DisketteExtension; __cil_tmp27 = __cil_tmp26 + 104; mem_36 = (BOOLEAN *)__cil_tmp27; *mem_36 = (unsigned char)1; } else { } } return (ntStatus); } } NTSTATUS FlInitializeControllerHardware(PDISKETTE_EXTENSION DisketteExtension ) { NTSTATUS ntStatus ; unsigned int __cil_tmp3 ; unsigned int __cil_tmp4 ; PDEVICE_OBJECT __cil_tmp5 ; int __cil_tmp6 ; int __cil_tmp7 ; int __cil_tmp8 ; int __cil_tmp9 ; unsigned long __cil_tmp10 ; void *__cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; UCHAR __cil_tmp14 ; int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; UCHAR __cil_tmp26 ; int __cil_tmp27 ; int __cil_tmp28 ; int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; unsigned int __cil_tmp32 ; unsigned int __cil_tmp33 ; UCHAR *__cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; UCHAR *__cil_tmp39 ; void *__cil_tmp40 ; struct _MDL *__cil_tmp41 ; PDEVICE_OBJECT *mem_42 ; UCHAR *mem_43 ; UCHAR *mem_44 ; UCHAR *mem_45 ; UCHAR *mem_46 ; { { __cil_tmp3 = (unsigned int )DisketteExtension; __cil_tmp4 = __cil_tmp3 + 8; mem_42 = (PDEVICE_OBJECT *)__cil_tmp4; __cil_tmp5 = *mem_42; __cil_tmp6 = 773 << 2; __cil_tmp7 = 7 << 16; __cil_tmp8 = __cil_tmp7 | __cil_tmp6; __cil_tmp9 = __cil_tmp8 | 3; __cil_tmp10 = (unsigned long )__cil_tmp9; __cil_tmp11 = (void *)0; ntStatus = FlFdcDeviceIo(__cil_tmp5, __cil_tmp10, __cil_tmp11); } if (ntStatus >= 0L) { { __cil_tmp12 = (unsigned int )DisketteExtension; __cil_tmp13 = __cil_tmp12 + 364; mem_43 = (UCHAR *)__cil_tmp13; __cil_tmp14 = *mem_43; __cil_tmp15 = (int )__cil_tmp14; if (__cil_tmp15 != 0) { { __cil_tmp16 = 0 * 1U; __cil_tmp17 = 112 + __cil_tmp16; __cil_tmp18 = (unsigned int )DisketteExtension; __cil_tmp19 = __cil_tmp18 + __cil_tmp17; mem_44 = (UCHAR *)__cil_tmp19; *mem_44 = (unsigned char)21; __cil_tmp20 = 1 * 1U; __cil_tmp21 = 112 + __cil_tmp20; __cil_tmp22 = (unsigned int )DisketteExtension; __cil_tmp23 = __cil_tmp22 + __cil_tmp21; __cil_tmp24 = (unsigned int )DisketteExtension; __cil_tmp25 = __cil_tmp24 + 364; mem_45 = (UCHAR *)__cil_tmp25; __cil_tmp26 = *mem_45; __cil_tmp27 = (int )__cil_tmp26; __cil_tmp28 = __cil_tmp27 << 2; __cil_tmp29 = 128 | __cil_tmp28; mem_46 = (UCHAR *)__cil_tmp23; *mem_46 = (unsigned char )__cil_tmp29; __cil_tmp30 = 0 * 1U; __cil_tmp31 = 112 + __cil_tmp30; __cil_tmp32 = (unsigned int )DisketteExtension; __cil_tmp33 = __cil_tmp32 + __cil_tmp31; __cil_tmp34 = (UCHAR *)__cil_tmp33; __cil_tmp35 = 0 * 1U; __cil_tmp36 = 112 + __cil_tmp35; __cil_tmp37 = (unsigned int )DisketteExtension; __cil_tmp38 = __cil_tmp37 + __cil_tmp36; __cil_tmp39 = (UCHAR *)__cil_tmp38; __cil_tmp40 = (void *)0; __cil_tmp41 = (struct _MDL *)__cil_tmp40; ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp34, __cil_tmp39, __cil_tmp41, 0UL, 0UL); } } else { } } } else { } return (ntStatus); } } NTSTATUS FlFdcDeviceIo(PDEVICE_OBJECT DeviceObject , ULONG Ioctl , PVOID Data ) { NTSTATUS ntStatus ; PIRP irp ; PIO_STACK_LOCATION irpStack ; KEVENT doneEvent ; IO_STATUS_BLOCK ioStatus ; enum _EVENT_TYPE __cil_tmp9 ; void *__cil_tmp10 ; void *__cil_tmp11 ; void *__cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; struct _IO_STACK_LOCATION *__cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; void *__cil_tmp25 ; enum _KWAIT_REASON __cil_tmp26 ; void *__cil_tmp27 ; LARGE_INTEGER *__cil_tmp28 ; IO_STATUS_BLOCK *__cil_tmp29 ; struct _IO_STACK_LOCATION **mem_30 ; PVOID *mem_31 ; NTSTATUS *mem_32 ; { { while (1) { while_183_continue: /* CIL Label */ ; goto while_183_break; } while_183_break: /* CIL Label */ ; } { __cil_tmp9 = (enum _EVENT_TYPE )0; KeInitializeEvent(& doneEvent, __cil_tmp9, (unsigned char)0); __cil_tmp10 = (void *)0; __cil_tmp11 = (void *)0; irp = IoBuildDeviceIoControlRequest(Ioctl, DeviceObject, __cil_tmp10, 0UL, __cil_tmp11, 0UL, (unsigned char)1, & doneEvent, & ioStatus); } { __cil_tmp12 = (void *)0; __cil_tmp13 = (unsigned int )__cil_tmp12; __cil_tmp14 = (unsigned int )irp; if (__cil_tmp14 == __cil_tmp13) { { while (1) { while_184_continue: /* CIL Label */ ; goto while_184_break; } while_184_break: /* CIL Label */ ; } return (-1073741670L); } else { } } { __cil_tmp15 = 24 + 8; __cil_tmp16 = 0 + __cil_tmp15; __cil_tmp17 = 64 + __cil_tmp16; __cil_tmp18 = (unsigned int )irp; __cil_tmp19 = __cil_tmp18 + __cil_tmp17; mem_30 = (struct _IO_STACK_LOCATION **)__cil_tmp19; __cil_tmp20 = *mem_30; irpStack = __cil_tmp20 - 1; __cil_tmp21 = 0 + 12; __cil_tmp22 = 4 + __cil_tmp21; __cil_tmp23 = (unsigned int )irpStack; __cil_tmp24 = __cil_tmp23 + __cil_tmp22; mem_31 = (PVOID *)__cil_tmp24; *mem_31 = Data; ntStatus = IofCallDriver(DeviceObject, irp); } if (ntStatus == 259L) { { __cil_tmp25 = (void *)(& doneEvent); __cil_tmp26 = (enum _KWAIT_REASON )5; __cil_tmp27 = (void *)0; __cil_tmp28 = (LARGE_INTEGER *)__cil_tmp27; KeWaitForSingleObject(__cil_tmp25, __cil_tmp26, (char)0, (unsigned char)0, __cil_tmp28); __cil_tmp29 = & ioStatus; mem_32 = (NTSTATUS *)__cil_tmp29; ntStatus = *mem_32; } } else { } return (ntStatus); } } NTSTATUS FlHdbit(PDISKETTE_EXTENSION DisketteExtension ) { NTSTATUS ntStatus ; SHORT st5 ; BOOLEAN media144MB ; BOOLEAN mediaUpTo120MB ; BOOLEAN supportDrive ; SET_HD_BIT_PARMS setHdBitParameter ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; DRIVE_MEDIA_TYPE __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; UCHAR __cil_tmp18 ; int __cil_tmp19 ; SET_HD_BIT_PARMS *__cil_tmp20 ; SET_HD_BIT_PARMS *__cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; PDEVICE_OBJECT __cil_tmp24 ; int __cil_tmp25 ; int __cil_tmp26 ; int __cil_tmp27 ; int __cil_tmp28 ; unsigned long __cil_tmp29 ; void *__cil_tmp30 ; int __cil_tmp31 ; unsigned int __cil_tmp32 ; DRIVE_MEDIA_TYPE *mem_33 ; BOOLEAN *mem_34 ; BOOLEAN *mem_35 ; UCHAR *mem_36 ; UCHAR *mem_37 ; UCHAR *mem_38 ; BOOLEAN *mem_39 ; BOOLEAN *mem_40 ; PDEVICE_OBJECT *mem_41 ; BOOLEAN *mem_42 ; { st5 = (short)0; media144MB = (unsigned char)0; mediaUpTo120MB = (unsigned char)0; supportDrive = (unsigned char)1; { while (1) { while_185_continue: /* CIL Label */ ; goto while_185_break; } while_185_break: /* CIL Label */ ; } { __cil_tmp8 = (unsigned int )DisketteExtension; __cil_tmp9 = __cil_tmp8 + 216; mem_33 = (DRIVE_MEDIA_TYPE *)__cil_tmp9; __cil_tmp10 = *mem_33; if ((int )__cil_tmp10 == 18) { goto switch_186_18; } else { if ((int )__cil_tmp10 == 16) { goto switch_186_16; } else { if ((int )__cil_tmp10 == 17) { goto switch_186_17; } else { if ((int )__cil_tmp10 == 12) { goto switch_186_12; } else { if ((int )__cil_tmp10 == 13) { goto switch_186_13; } else { if ((int )__cil_tmp10 == 19) { goto switch_186_19; } else { if ((int )__cil_tmp10 == 20) { goto switch_186_20; } else { if ((int )__cil_tmp10 == 0) { goto switch_186_0; } else { if ((int )__cil_tmp10 == 1) { goto switch_186_1; } else { if ((int )__cil_tmp10 == 2) { goto switch_186_2; } else { if ((int )__cil_tmp10 == 3) { goto switch_186_3; } else { if ((int )__cil_tmp10 == 4) { goto switch_186_4; } else { if ((int )__cil_tmp10 == 5) { goto switch_186_5; } else { if ((int )__cil_tmp10 == 6) { goto switch_186_6; } else { if ((int )__cil_tmp10 == 7) { goto switch_186_7; } else { if ((int )__cil_tmp10 == 8) { goto switch_186_8; } else { if ((int )__cil_tmp10 == 9) { goto switch_186_9; } else { if ((int )__cil_tmp10 == 10) { goto switch_186_10; } else { if ((int )__cil_tmp10 == 11) { goto switch_186_11; } else { if ((int )__cil_tmp10 == 14) { goto switch_186_14; } else { if ((int )__cil_tmp10 == 15) { goto switch_186_15; } else { { goto switch_186_default; if (0) { switch_186_18: /* CIL Label */ media144MB = (unsigned char)1; switch_186_16: /* CIL Label */ ; switch_186_17: /* CIL Label */ ; switch_186_12: /* CIL Label */ ; switch_186_13: /* CIL Label */ ; switch_186_19: /* CIL Label */ ; switch_186_20: /* CIL Label */ mediaUpTo120MB = (unsigned char)1; switch_186_0: /* CIL Label */ ; switch_186_1: /* CIL Label */ ; switch_186_2: /* CIL Label */ ; switch_186_3: /* CIL Label */ ; switch_186_4: /* CIL Label */ ; switch_186_5: /* CIL Label */ ; switch_186_6: /* CIL Label */ ; switch_186_7: /* CIL Label */ ; switch_186_8: /* CIL Label */ ; switch_186_9: /* CIL Label */ ; switch_186_10: /* CIL Label */ ; switch_186_11: /* CIL Label */ ; switch_186_14: /* CIL Label */ ; switch_186_15: /* CIL Label */ ; goto switch_186_break; switch_186_default: /* CIL Label */ mediaUpTo120MB = (unsigned char)1; goto switch_186_break; } else { switch_186_break: /* CIL Label */ ; } } } } } } } } } } } } } } } } } } } } } } } } __cil_tmp11 = (unsigned int )(& setHdBitParameter) + 1; mem_34 = (BOOLEAN *)__cil_tmp11; *mem_34 = media144MB; __cil_tmp12 = (unsigned int )(& setHdBitParameter) + 2; mem_35 = (BOOLEAN *)__cil_tmp12; *mem_35 = mediaUpTo120MB; __cil_tmp13 = (unsigned int )(& setHdBitParameter) + 3; __cil_tmp14 = (unsigned int )DisketteExtension; __cil_tmp15 = __cil_tmp14 + 248; mem_36 = (UCHAR *)__cil_tmp13; mem_37 = (UCHAR *)__cil_tmp15; *mem_36 = *mem_37; { __cil_tmp16 = (unsigned int )DisketteExtension; __cil_tmp17 = __cil_tmp16 + 174; mem_38 = (UCHAR *)__cil_tmp17; __cil_tmp18 = *mem_38; __cil_tmp19 = (int )__cil_tmp18; if (__cil_tmp19 == 3) { __cil_tmp20 = & setHdBitParameter; mem_39 = (BOOLEAN *)__cil_tmp20; *mem_39 = (unsigned char)1; } else { __cil_tmp21 = & setHdBitParameter; mem_40 = (BOOLEAN *)__cil_tmp21; *mem_40 = (unsigned char)0; } } { __cil_tmp22 = (unsigned int )DisketteExtension; __cil_tmp23 = __cil_tmp22 + 8; mem_41 = (PDEVICE_OBJECT *)__cil_tmp23; __cil_tmp24 = *mem_41; __cil_tmp25 = 785 << 2; __cil_tmp26 = 7 << 16; __cil_tmp27 = __cil_tmp26 | __cil_tmp25; __cil_tmp28 = __cil_tmp27 | 3; __cil_tmp29 = (unsigned long )__cil_tmp28; __cil_tmp30 = (void *)(& setHdBitParameter); ntStatus = FlFdcDeviceIo(__cil_tmp24, __cil_tmp29, __cil_tmp30); } { __cil_tmp31 = ntStatus >= 0L; if (! __cil_tmp31) { return (ntStatus); } else { } } { __cil_tmp32 = (unsigned int )(& setHdBitParameter) + 4; { mem_42 = (BOOLEAN *)__cil_tmp32; if (*mem_42) { { ntStatus = FlDatarateSpecifyConfigure(DisketteExtension); } } else { } } } return (ntStatus); } } NTSTATUS FloppyQueueRequest(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) { KIRQL oldIrql ; NTSTATUS ntStatus ; LONG tmp ; void *__cil_tmp6 ; KSPIN_LOCK *__cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; void (**__cil_tmp10)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ; PVOID *__cil_tmp11 ; LONG *__cil_tmp12 ; void *__cil_tmp13 ; long __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; void (**__cil_tmp19)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ; PVOID *__cil_tmp20 ; LONG *__cil_tmp21 ; void *__cil_tmp22 ; long __cil_tmp23 ; void *__cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; KSPIN_LOCK *__cil_tmp30 ; void *__cil_tmp31 ; unsigned int __cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; struct _IO_STACK_LOCATION *__cil_tmp39 ; unsigned int __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; unsigned int __cil_tmp44 ; unsigned int __cil_tmp45 ; unsigned int __cil_tmp46 ; struct _IO_STACK_LOCATION *__cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; UCHAR __cil_tmp50 ; int __cil_tmp51 ; int __cil_tmp52 ; unsigned int __cil_tmp53 ; unsigned int __cil_tmp54 ; LIST_ENTRY *__cil_tmp55 ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; unsigned int __cil_tmp58 ; unsigned int __cil_tmp59 ; LIST_ENTRY *__cil_tmp60 ; unsigned int __cil_tmp61 ; unsigned int __cil_tmp62 ; KSPIN_LOCK *__cil_tmp63 ; KSPIN_LOCK *__cil_tmp64 ; BOOLEAN *mem_65 ; NTSTATUS *mem_66 ; ULONG_PTR *mem_67 ; NTSTATUS *mem_68 ; struct _IO_STACK_LOCATION **mem_69 ; struct _IO_STACK_LOCATION **mem_70 ; UCHAR *mem_71 ; UCHAR *mem_72 ; { { ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount + 1UL; } if (PagingReferenceCount == 1UL) { { __cil_tmp6 = (void *)(& DriverEntry); MmResetDriverPaging(__cil_tmp6); } } else { } { ExReleaseFastMutex(PagingMutex); __cil_tmp7 = (KSPIN_LOCK *)DisketteExtension; oldIrql = KfAcquireSpinLock(__cil_tmp7); __cil_tmp8 = (unsigned int )Irp; __cil_tmp9 = __cil_tmp8 + 56; __cil_tmp10 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp9; __cil_tmp11 = (PVOID *)__cil_tmp10; __cil_tmp12 = (LONG *)__cil_tmp11; __cil_tmp13 = (void *)(& FloppyCancelQueuedRequest); __cil_tmp14 = (long )__cil_tmp13; InterlockedExchange(__cil_tmp12, __cil_tmp14); } { __cil_tmp15 = (unsigned int )Irp; __cil_tmp16 = __cil_tmp15 + 36; { mem_65 = (BOOLEAN *)__cil_tmp16; if (*mem_65) { { __cil_tmp17 = (unsigned int )Irp; __cil_tmp18 = __cil_tmp17 + 56; __cil_tmp19 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp18; __cil_tmp20 = (PVOID *)__cil_tmp19; __cil_tmp21 = (LONG *)__cil_tmp20; __cil_tmp22 = (void *)0; __cil_tmp23 = (long )__cil_tmp22; tmp = InterlockedExchange(__cil_tmp21, __cil_tmp23); } { __cil_tmp24 = (void *)tmp; if ((void (*)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp24) { { __cil_tmp25 = (unsigned int )Irp; __cil_tmp26 = __cil_tmp25 + 24; mem_66 = (NTSTATUS *)__cil_tmp26; *mem_66 = -1073741536L; myStatus = -1073741536L; __cil_tmp27 = 24 + 4; __cil_tmp28 = (unsigned int )Irp; __cil_tmp29 = __cil_tmp28 + __cil_tmp27; mem_67 = (ULONG_PTR *)__cil_tmp29; *mem_67 = 0UL; __cil_tmp30 = (KSPIN_LOCK *)DisketteExtension; KfReleaseSpinLock(__cil_tmp30, oldIrql); IofCompleteRequest(Irp, (char)0); ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount - 1UL; } if (PagingReferenceCount == 0UL) { { __cil_tmp31 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp31); } } else { } { ExReleaseFastMutex(PagingMutex); ntStatus = -1073741536L; } } else { goto _L; } } } else { _L: __cil_tmp32 = (unsigned int )Irp; __cil_tmp33 = __cil_tmp32 + 24; mem_68 = (NTSTATUS *)__cil_tmp33; *mem_68 = 259L; myStatus = 259L; __cil_tmp34 = 24 + 8; __cil_tmp35 = 0 + __cil_tmp34; __cil_tmp36 = 64 + __cil_tmp35; __cil_tmp37 = (unsigned int )Irp; __cil_tmp38 = __cil_tmp37 + __cil_tmp36; mem_69 = (struct _IO_STACK_LOCATION **)__cil_tmp38; __cil_tmp39 = *mem_69; __cil_tmp40 = (unsigned int )__cil_tmp39; __cil_tmp41 = __cil_tmp40 + 3; __cil_tmp42 = 24 + 8; __cil_tmp43 = 0 + __cil_tmp42; __cil_tmp44 = 64 + __cil_tmp43; __cil_tmp45 = (unsigned int )Irp; __cil_tmp46 = __cil_tmp45 + __cil_tmp44; mem_70 = (struct _IO_STACK_LOCATION **)__cil_tmp46; __cil_tmp47 = *mem_70; __cil_tmp48 = (unsigned int )__cil_tmp47; __cil_tmp49 = __cil_tmp48 + 3; mem_71 = (UCHAR *)__cil_tmp49; __cil_tmp50 = *mem_71; __cil_tmp51 = (int )__cil_tmp50; __cil_tmp52 = __cil_tmp51 | 1; mem_72 = (UCHAR *)__cil_tmp41; *mem_72 = (unsigned char )__cil_tmp52; if (pended == 0) { pended = 1; } else { { __VERIFIER_assert(0); } } { __cil_tmp53 = (unsigned int )DisketteExtension; __cil_tmp54 = __cil_tmp53 + 16; __cil_tmp55 = (LIST_ENTRY *)__cil_tmp54; __cil_tmp56 = 0 + 24; __cil_tmp57 = 64 + __cil_tmp56; __cil_tmp58 = (unsigned int )Irp; __cil_tmp59 = __cil_tmp58 + __cil_tmp57; __cil_tmp60 = (LIST_ENTRY *)__cil_tmp59; __cil_tmp61 = (unsigned int )DisketteExtension; __cil_tmp62 = __cil_tmp61 + 24; __cil_tmp63 = (KSPIN_LOCK *)__cil_tmp62; ExfInterlockedInsertTailList(__cil_tmp55, __cil_tmp60, __cil_tmp63); __cil_tmp64 = (KSPIN_LOCK *)DisketteExtension; KfReleaseSpinLock(__cil_tmp64, oldIrql); ntStatus = 259L; } } } } return (ntStatus); } } void FloppyCancelQueuedRequest(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { PDISKETTE_EXTENSION disketteExtension ; KIRQL oldIrql ; PLIST_ENTRY _EX_Blink ; PLIST_ENTRY _EX_Flink ; unsigned int __cil_tmp7 ; unsigned int __cil_tmp8 ; PVOID __cil_tmp9 ; KSPIN_LOCK *__cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; unsigned int __cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; unsigned int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; unsigned int __cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; unsigned int __cil_tmp23 ; unsigned int __cil_tmp24 ; unsigned int __cil_tmp25 ; unsigned int __cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; unsigned int __cil_tmp29 ; unsigned int __cil_tmp30 ; unsigned int __cil_tmp31 ; KSPIN_LOCK *__cil_tmp32 ; unsigned int __cil_tmp33 ; unsigned int __cil_tmp34 ; KIRQL __cil_tmp35 ; void *__cil_tmp36 ; PVOID *mem_37 ; NTSTATUS *mem_38 ; ULONG_PTR *mem_39 ; struct _LIST_ENTRY **mem_40 ; struct _LIST_ENTRY **mem_41 ; struct _LIST_ENTRY **mem_42 ; struct _LIST_ENTRY **mem_43 ; struct _LIST_ENTRY **mem_44 ; KIRQL *mem_45 ; { __cil_tmp7 = (unsigned int )DeviceObject; __cil_tmp8 = __cil_tmp7 + 40; mem_37 = (PVOID *)__cil_tmp8; __cil_tmp9 = *mem_37; disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp9; { while (1) { while_187_continue: /* CIL Label */ ; goto while_187_break; } while_187_break: /* CIL Label */ ; } { __cil_tmp10 = (KSPIN_LOCK *)disketteExtension; oldIrql = KfAcquireSpinLock(__cil_tmp10); __cil_tmp11 = (unsigned int )Irp; __cil_tmp12 = __cil_tmp11 + 24; mem_38 = (NTSTATUS *)__cil_tmp12; *mem_38 = -1073741536L; myStatus = -1073741536L; __cil_tmp13 = 24 + 4; __cil_tmp14 = (unsigned int )Irp; __cil_tmp15 = __cil_tmp14 + __cil_tmp13; mem_39 = (ULONG_PTR *)__cil_tmp15; *mem_39 = 0UL; } { __cil_tmp16 = 0 + 24; __cil_tmp17 = 64 + __cil_tmp16; __cil_tmp18 = (unsigned int )Irp; __cil_tmp19 = __cil_tmp18 + __cil_tmp17; { mem_40 = (struct _LIST_ENTRY **)__cil_tmp19; if (*mem_40) { __cil_tmp20 = 0 + 24; __cil_tmp21 = 64 + __cil_tmp20; __cil_tmp22 = (unsigned int )Irp; __cil_tmp23 = __cil_tmp22 + __cil_tmp21; mem_41 = (struct _LIST_ENTRY **)__cil_tmp23; _EX_Flink = *mem_41; __cil_tmp24 = 0 + 4; __cil_tmp25 = 24 + __cil_tmp24; __cil_tmp26 = 0 + __cil_tmp25; __cil_tmp27 = 64 + __cil_tmp26; __cil_tmp28 = (unsigned int )Irp; __cil_tmp29 = __cil_tmp28 + __cil_tmp27; mem_42 = (struct _LIST_ENTRY **)__cil_tmp29; _EX_Blink = *mem_42; mem_43 = (struct _LIST_ENTRY **)_EX_Blink; *mem_43 = _EX_Flink; __cil_tmp30 = (unsigned int )_EX_Flink; __cil_tmp31 = __cil_tmp30 + 4; mem_44 = (struct _LIST_ENTRY **)__cil_tmp31; *mem_44 = _EX_Blink; } else { } } } { __cil_tmp32 = (KSPIN_LOCK *)disketteExtension; KfReleaseSpinLock(__cil_tmp32, oldIrql); __cil_tmp33 = (unsigned int )Irp; __cil_tmp34 = __cil_tmp33 + 37; mem_45 = (KIRQL *)__cil_tmp34; __cil_tmp35 = *mem_45; IoReleaseCancelSpinLock(__cil_tmp35); IofCompleteRequest(Irp, (char)0); ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount - 1UL; } if (PagingReferenceCount == 0UL) { { __cil_tmp36 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp36); } } else { } { ExReleaseFastMutex(PagingMutex); } return; } } void FloppyProcessQueuedRequests(PDISKETTE_EXTENSION DisketteExtension ) { KIRQL oldIrql ; PLIST_ENTRY headOfList ; PIRP currentIrp ; PIO_STACK_LOCATION irpSp ; LONG tmp ; KSPIN_LOCK *__cil_tmp7 ; unsigned int __cil_tmp8 ; unsigned int __cil_tmp9 ; LIST_ENTRY *__cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; KSPIN_LOCK *__cil_tmp13 ; void *__cil_tmp14 ; unsigned int __cil_tmp15 ; unsigned int __cil_tmp16 ; int __cil_tmp17 ; unsigned int __cil_tmp18 ; unsigned int __cil_tmp19 ; IRP *__cil_tmp20 ; unsigned int __cil_tmp21 ; unsigned int __cil_tmp22 ; LIST_ENTRY *__cil_tmp23 ; unsigned long __cil_tmp24 ; CHAR *__cil_tmp25 ; CHAR *__cil_tmp26 ; unsigned int __cil_tmp27 ; unsigned int __cil_tmp28 ; void (**__cil_tmp29)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ; PVOID *__cil_tmp30 ; LONG *__cil_tmp31 ; void *__cil_tmp32 ; long __cil_tmp33 ; void *__cil_tmp34 ; unsigned int __cil_tmp35 ; unsigned int __cil_tmp36 ; unsigned int __cil_tmp37 ; unsigned int __cil_tmp38 ; unsigned int __cil_tmp39 ; unsigned int __cil_tmp40 ; unsigned int __cil_tmp41 ; unsigned int __cil_tmp42 ; unsigned int __cil_tmp43 ; void *__cil_tmp44 ; void *__cil_tmp45 ; KSPIN_LOCK *__cil_tmp46 ; unsigned int __cil_tmp47 ; unsigned int __cil_tmp48 ; unsigned int __cil_tmp49 ; unsigned int __cil_tmp50 ; unsigned int __cil_tmp51 ; unsigned int __cil_tmp52 ; unsigned int __cil_tmp53 ; UCHAR __cil_tmp54 ; NTSTATUS (*__cil_tmp55)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; unsigned int __cil_tmp56 ; unsigned int __cil_tmp57 ; PDEVICE_OBJECT __cil_tmp58 ; NTSTATUS (*__cil_tmp59)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; unsigned int __cil_tmp60 ; unsigned int __cil_tmp61 ; PDEVICE_OBJECT __cil_tmp62 ; unsigned int __cil_tmp63 ; unsigned int __cil_tmp64 ; unsigned int __cil_tmp65 ; unsigned int __cil_tmp66 ; unsigned int __cil_tmp67 ; void *__cil_tmp68 ; KSPIN_LOCK *__cil_tmp69 ; KSPIN_LOCK *__cil_tmp70 ; struct _IO_STACK_LOCATION **mem_71 ; struct _LIST_ENTRY **mem_72 ; BOOLEAN *mem_73 ; ULONG_PTR *mem_74 ; NTSTATUS *mem_75 ; UCHAR *mem_76 ; PDEVICE_OBJECT *mem_77 ; PDEVICE_OBJECT *mem_78 ; ULONG_PTR *mem_79 ; NTSTATUS *mem_80 ; { { __cil_tmp7 = (KSPIN_LOCK *)DisketteExtension; oldIrql = KfAcquireSpinLock(__cil_tmp7); } { while (1) { while_188_continue: /* CIL Label */ ; { __cil_tmp8 = (unsigned int )DisketteExtension; __cil_tmp9 = __cil_tmp8 + 16; __cil_tmp10 = (LIST_ENTRY *)__cil_tmp9; __cil_tmp11 = (unsigned int )DisketteExtension; __cil_tmp12 = __cil_tmp11 + 24; __cil_tmp13 = (KSPIN_LOCK *)__cil_tmp12; headOfList = ExfInterlockedRemoveHeadList(__cil_tmp10, __cil_tmp13); } { __cil_tmp14 = (void *)0; __cil_tmp15 = (unsigned int )__cil_tmp14; __cil_tmp16 = (unsigned int )headOfList; __cil_tmp17 = __cil_tmp16 != __cil_tmp15; if (! __cil_tmp17) { goto while_188_break; } else { } } { __cil_tmp18 = 0 + 24; __cil_tmp19 = 64 + __cil_tmp18; __cil_tmp20 = (IRP *)0; __cil_tmp21 = (unsigned int )__cil_tmp20; __cil_tmp22 = __cil_tmp21 + __cil_tmp19; __cil_tmp23 = (LIST_ENTRY *)__cil_tmp22; __cil_tmp24 = (unsigned long )__cil_tmp23; __cil_tmp25 = (CHAR *)headOfList; __cil_tmp26 = __cil_tmp25 - __cil_tmp24; currentIrp = (IRP *)__cil_tmp26; __cil_tmp27 = (unsigned int )currentIrp; __cil_tmp28 = __cil_tmp27 + 56; __cil_tmp29 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp28; __cil_tmp30 = (PVOID *)__cil_tmp29; __cil_tmp31 = (LONG *)__cil_tmp30; __cil_tmp32 = (void *)0; __cil_tmp33 = (long )__cil_tmp32; tmp = InterlockedExchange(__cil_tmp31, __cil_tmp33); } { __cil_tmp34 = (void *)tmp; if ((void (*)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp34) { __cil_tmp35 = 24 + 8; __cil_tmp36 = 0 + __cil_tmp35; __cil_tmp37 = 64 + __cil_tmp36; __cil_tmp38 = (unsigned int )currentIrp; __cil_tmp39 = __cil_tmp38 + __cil_tmp37; mem_71 = (struct _IO_STACK_LOCATION **)__cil_tmp39; irpSp = *mem_71; } else { __cil_tmp40 = 0 + 24; __cil_tmp41 = 64 + __cil_tmp40; __cil_tmp42 = (unsigned int )currentIrp; __cil_tmp43 = __cil_tmp42 + __cil_tmp41; __cil_tmp44 = (void *)0; mem_72 = (struct _LIST_ENTRY **)__cil_tmp43; *mem_72 = (struct _LIST_ENTRY *)__cil_tmp44; __cil_tmp45 = (void *)0; currentIrp = (struct _IRP *)__cil_tmp45; } } { __cil_tmp46 = (KSPIN_LOCK *)DisketteExtension; KfReleaseSpinLock(__cil_tmp46, oldIrql); } if (currentIrp) { { __cil_tmp47 = (unsigned int )DisketteExtension; __cil_tmp48 = __cil_tmp47 + 13; { mem_73 = (BOOLEAN *)__cil_tmp48; if (*mem_73) { { __cil_tmp49 = 24 + 4; __cil_tmp50 = (unsigned int )currentIrp; __cil_tmp51 = __cil_tmp50 + __cil_tmp49; mem_74 = (ULONG_PTR *)__cil_tmp51; *mem_74 = 0UL; __cil_tmp52 = (unsigned int )currentIrp; __cil_tmp53 = __cil_tmp52 + 24; mem_75 = (NTSTATUS *)__cil_tmp53; *mem_75 = -1073741738L; IofCompleteRequest(currentIrp, (char)0); } } else { { mem_76 = (UCHAR *)irpSp; __cil_tmp54 = *mem_76; if ((int )__cil_tmp54 == 3) { goto switch_189_3; } else { if ((int )__cil_tmp54 == 4) { goto switch_189_4; } else { if ((int )__cil_tmp54 == 14) { goto switch_189_14; } else { { goto switch_189_default; if (0) { switch_189_3: /* CIL Label */ ; switch_189_4: /* CIL Label */ { __cil_tmp55 = & FloppyReadWrite; __cil_tmp56 = (unsigned int )DisketteExtension; __cil_tmp57 = __cil_tmp56 + 28; mem_77 = (PDEVICE_OBJECT *)__cil_tmp57; __cil_tmp58 = *mem_77; (*__cil_tmp55)(__cil_tmp58, currentIrp); } goto switch_189_break; switch_189_14: /* CIL Label */ { __cil_tmp59 = & FloppyDeviceControl; __cil_tmp60 = (unsigned int )DisketteExtension; __cil_tmp61 = __cil_tmp60 + 28; mem_78 = (PDEVICE_OBJECT *)__cil_tmp61; __cil_tmp62 = *mem_78; (*__cil_tmp59)(__cil_tmp62, currentIrp); } goto switch_189_break; switch_189_default: /* CIL Label */ { __cil_tmp63 = 24 + 4; __cil_tmp64 = (unsigned int )currentIrp; __cil_tmp65 = __cil_tmp64 + __cil_tmp63; mem_79 = (ULONG_PTR *)__cil_tmp65; *mem_79 = 0UL; __cil_tmp66 = (unsigned int )currentIrp; __cil_tmp67 = __cil_tmp66 + 24; mem_80 = (NTSTATUS *)__cil_tmp67; *mem_80 = -1073741823L; IofCompleteRequest(currentIrp, (char)0); } } else { switch_189_break: /* CIL Label */ ; } } } } } } } } } } else { } if (currentIrp) { { ExAcquireFastMutex(PagingMutex); PagingReferenceCount = PagingReferenceCount - 1UL; } if (PagingReferenceCount == 0UL) { { __cil_tmp68 = (void *)(& DriverEntry); MmPageEntireDriver(__cil_tmp68); } } else { } { ExReleaseFastMutex(PagingMutex); } } else { } { __cil_tmp69 = (KSPIN_LOCK *)DisketteExtension; oldIrql = KfAcquireSpinLock(__cil_tmp69); } } while_188_break: /* CIL Label */ ; } { __cil_tmp70 = (KSPIN_LOCK *)DisketteExtension; KfReleaseSpinLock(__cil_tmp70, oldIrql); } return; } } #pragma warning(push) #pragma warning(disable:4035) __inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShllMod32___1)(ULONGLONG Value , ULONG ShiftCount ) { { return (0ULL); } } __inline LONGLONG ( __attribute__((__stdcall__)) Int64ShraMod32___1)(LONGLONG Value , ULONG ShiftCount ) { { return (0LL); } } __inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShrlMod32___1)(ULONGLONG Value , ULONG ShiftCount ) { { return (0ULL); } } #pragma warning(pop) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(push) #pragma warning(disable:4035) #pragma warning(pop) #pragma warning(disable:4035) #pragma warning(push) #pragma warning(disable:4164) #pragma function(_enable) #pragma function(_disable) #pragma warning(pop) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4103) #pragma warning(disable:4200) #pragma warning(default:4200) IRP *pirp ; void stub_driver_init(void) { { s = 1; pended = 0; compFptr = (NTSTATUS (*)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))0; compRegistered = 0; lowerDriverReturn = 0; setEventCalled = 0; customIrp = 0; return; } } int main(void) { DRIVER_OBJECT d ; UNICODE_STRING u ; NTSTATUS status ; int we_should_unload ; IRP irp ; int __BLAST_NONDET = __VERIFIER_nondet_int() ; int irp_choice = __VERIFIER_nondet_int() ; DEVICE_OBJECT devobj ; NTSTATUS (*__cil_tmp9)(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) ; unsigned int __cil_tmp10 ; unsigned int __cil_tmp11 ; unsigned int __cil_tmp12 ; unsigned int __cil_tmp13 ; int __cil_tmp14 ; NTSTATUS (*__cil_tmp15)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS (*__cil_tmp16)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS (*__cil_tmp17)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS (*__cil_tmp18)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS (*__cil_tmp19)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; void (*__cil_tmp20)(PDRIVER_OBJECT DriverObject ) ; int __cil_tmp21 ; int __cil_tmp22 ; long __cil_tmp23 ; NTSTATUS *mem_24 ; NTSTATUS *mem_25 ; { { status = 0L; pirp = & irp; __cil_tmp9 = & DriverEntry; status = (*__cil_tmp9)(& d, & u); } if (status >= 0L) { s = 1; customIrp = 0; setEventCalled = customIrp; lowerDriverReturn = setEventCalled; compRegistered = lowerDriverReturn; compFptr = (NTSTATUS (*)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))compRegistered; pended = (int )compFptr; __cil_tmp10 = (unsigned int )pirp; __cil_tmp11 = __cil_tmp10 + 24; mem_24 = (NTSTATUS *)__cil_tmp11; *mem_24 = 0L; myStatus = 0L; if (irp_choice == 0) { __cil_tmp12 = (unsigned int )pirp; __cil_tmp13 = __cil_tmp12 + 24; mem_25 = (NTSTATUS *)__cil_tmp13; *mem_25 = -1073741637L; myStatus = -1073741637L; } else { } { stub_driver_init(); } { __cil_tmp14 = status >= 0L; if (! __cil_tmp14) { return (-1); } else { } } if (__BLAST_NONDET == 0) { goto switch_190_0; } else { if (__BLAST_NONDET == 1) { goto switch_190_1; } else { if (__BLAST_NONDET == 2) { goto switch_190_2; } else { if (__BLAST_NONDET == 3) { goto switch_190_3; } else { if (__BLAST_NONDET == 4) { goto switch_190_4; } else { { goto switch_190_default; if (0) { switch_190_0: /* CIL Label */ { __cil_tmp15 = & FloppyCreateClose; status = (*__cil_tmp15)(& devobj, pirp); } goto switch_190_break; switch_190_1: /* CIL Label */ { __cil_tmp16 = & FloppyCreateClose; status = (*__cil_tmp16)(& devobj, pirp); } goto switch_190_break; switch_190_2: /* CIL Label */ { __cil_tmp17 = & FloppyDeviceControl; status = (*__cil_tmp17)(& devobj, pirp); } goto switch_190_break; switch_190_3: /* CIL Label */ { __cil_tmp18 = & FloppyPnp; status = (*__cil_tmp18)(& devobj, pirp); } goto switch_190_break; switch_190_4: /* CIL Label */ { __cil_tmp19 = & FloppyPower; status = (*__cil_tmp19)(& devobj, pirp); } goto switch_190_break; switch_190_default: /* CIL Label */ ; return (-1); } else { switch_190_break: /* CIL Label */ ; } } } } } } } if (we_should_unload) { { __cil_tmp20 = & FloppyUnload; (*__cil_tmp20)(& d); } } else { } } else { } if (pended == 1) { if (s == 1) { s = 1; } else { goto _L___2; } } else { _L___2: if (pended == 1) { if (s == 6) { s = 6; } else { goto _L___1; } } else { _L___1: { __cil_tmp21 = s == 0; if (! __cil_tmp21) { { __cil_tmp22 = status == -1L; if (! __cil_tmp22) { if (s != 4) { if (s != 7) { if (s != 2) { } else { goto _L___0; } } else { goto _L___0; } } else { _L___0: if (pended == 1) { if (status != 259L) { status = 0L; } else { } } else { if (s == 2) { if (status == 259L) { { __VERIFIER_assert(0); } } else { } } else { { __cil_tmp23 = (long )lowerDriverReturn; if (status != __cil_tmp23) { { __VERIFIER_assert(0); } } else { } } } } } } else { } } } else { } } } } status = 0L; return ((int )status); } } char _SLAM_alloc_dummy ; char *malloc(int i ) { { return (& _SLAM_alloc_dummy); } } __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) ; void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) { { return; } } __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) ; void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) { { return; } } __attribute__((__dllimport__)) PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ; PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) { PVOID x ; char *tmp ; int __cil_tmp6 ; { { __cil_tmp6 = (int )NumberOfBytes; tmp = malloc(__cil_tmp6); x = (void *)tmp; } return (x); } } __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) ; void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) { { return; } } __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) { void *__cil_tmp4 ; { { __cil_tmp4 = (void *)0; return ((struct _LIST_ENTRY *)__cil_tmp4); } } } __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) ; PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead , PLIST_ENTRY ListEntry , PKSPIN_LOCK Lock ) { void *__cil_tmp4 ; { { __cil_tmp4 = (void *)0; return ((struct _LIST_ENTRY *)__cil_tmp4); } } } __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead , PKSPIN_LOCK Lock ) ; PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead , PKSPIN_LOCK Lock ) { void *__cil_tmp3 ; { { __cil_tmp3 = (void *)0; return ((struct _LIST_ENTRY *)__cil_tmp3); } } } __attribute__((__dllimport__)) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length , BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota , PIRP Irp ) ; PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length , BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota , PIRP Irp ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; char *tmp ; int __cil_tmp8 ; void *__cil_tmp9 ; void *__cil_tmp10 ; { if (__BLAST_NONDET == 0) { goto switch_191_0; } else { { goto switch_191_default; if (0) { switch_191_0: /* CIL Label */ { __cil_tmp8 = (int )28U; tmp = malloc(__cil_tmp8); } { __cil_tmp9 = (void *)tmp; return ((struct _MDL *)__cil_tmp9); } switch_191_default: /* CIL Label */ ; { __cil_tmp10 = (void *)0; return ((struct _MDL *)__cil_tmp10); } } else { switch_191_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice ) ; PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; void *__cil_tmp4 ; { if (__BLAST_NONDET == 0) { goto switch_192_0; } else { { goto switch_192_default; if (0) { switch_192_0: /* CIL Label */ ; return (TargetDevice); switch_192_default: /* CIL Label */ ; { __cil_tmp4 = (void *)0; return ((struct _DEVICE_OBJECT *)__cil_tmp4); } } else { switch_192_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject , PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset , PIO_STATUS_BLOCK IoStatusBlock ) ; PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject , PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset , PIO_STATUS_BLOCK IoStatusBlock ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; char *tmp ; int __cil_tmp9 ; void *__cil_tmp10 ; void *__cil_tmp11 ; { customIrp = 1; if (__BLAST_NONDET == 0) { goto switch_193_0; } else { { goto switch_193_default; if (0) { switch_193_0: /* CIL Label */ { __cil_tmp9 = (int )112U; tmp = malloc(__cil_tmp9); } { __cil_tmp10 = (void *)tmp; return ((struct _IRP *)__cil_tmp10); } switch_193_default: /* CIL Label */ ; { __cil_tmp11 = (void *)0; return ((struct _IRP *)__cil_tmp11); } } else { switch_193_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode , PDEVICE_OBJECT DeviceObject , PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer , ULONG OutputBufferLength , BOOLEAN InternalDeviceIoControl , PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock ) ; PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode , PDEVICE_OBJECT DeviceObject , PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer , ULONG OutputBufferLength , BOOLEAN InternalDeviceIoControl , PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; char *tmp ; int __cil_tmp12 ; void *__cil_tmp13 ; void *__cil_tmp14 ; { customIrp = 1; if (__BLAST_NONDET == 0) { goto switch_194_0; } else { { goto switch_194_default; if (0) { switch_194_0: /* CIL Label */ { __cil_tmp12 = (int )112U; tmp = malloc(__cil_tmp12); } { __cil_tmp13 = (void *)tmp; return ((struct _IRP *)__cil_tmp13); } switch_194_default: /* CIL Label */ ; { __cil_tmp14 = (void *)0; return ((struct _IRP *)__cil_tmp14); } } else { switch_194_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject , ULONG DeviceExtensionSize , PUNICODE_STRING DeviceName , ULONG DeviceType , ULONG DeviceCharacteristics , BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) ; NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject , ULONG DeviceExtensionSize , PUNICODE_STRING DeviceName , ULONG DeviceType , ULONG DeviceCharacteristics , BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; char *tmp ; int __cil_tmp10 ; void *__cil_tmp11 ; { if (__BLAST_NONDET == 0) { goto switch_195_0; } else { { goto switch_195_default; if (0) { switch_195_0: /* CIL Label */ { __cil_tmp10 = (int )184U; tmp = malloc(__cil_tmp10); __cil_tmp11 = (void *)tmp; *DeviceObject = (struct _DEVICE_OBJECT *)__cil_tmp11; } return (0L); switch_195_default: /* CIL Label */ ; return (-1073741823L); } else { switch_195_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName ) ; NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_196_0; } else { { goto switch_196_default; if (0) { switch_196_0: /* CIL Label */ ; return (0L); switch_196_default: /* CIL Label */ ; return (-1073741823L); } else { switch_196_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ; void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) { { return; } } __attribute__((__dllimport__)) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ; NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_197_0; } else { { goto switch_197_default; if (0) { switch_197_0: /* CIL Label */ ; return (0L); switch_197_default: /* CIL Label */ ; return (-1073741823L); } else { switch_197_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ; void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) { { return; } } __attribute__((__dllimport__)) void IoFreeIrp(PIRP Irp ) ; void IoFreeIrp(PIRP Irp ) { { return; } } __attribute__((__dllimport__)) void IoFreeMdl(PMDL Mdl ) ; void IoFreeMdl(PMDL Mdl ) { { return; } } __attribute__((__dllimport__)) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) ; PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) { char *tmp ; int __cil_tmp2 ; void *__cil_tmp3 ; { { __cil_tmp2 = (int )40U; tmp = malloc(__cil_tmp2); } { __cil_tmp3 = (void *)tmp; return ((struct _CONFIGURATION_INFORMATION *)__cil_tmp3); } } } __attribute__((__dllimport__)) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType , PULONG BusNumber , PCONFIGURATION_TYPE ControllerType , PULONG ControllerNumber , PCONFIGURATION_TYPE PeripheralType , PULONG PeripheralNumber , NTSTATUS (*CalloutRoutine)(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType , ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation , CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber , PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType , ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) , PVOID Context ) ; NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType , PULONG BusNumber , PCONFIGURATION_TYPE ControllerType , PULONG ControllerNumber , PCONFIGURATION_TYPE PeripheralType , PULONG PeripheralNumber , NTSTATUS (*CalloutRoutine)(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType , ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation , CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber , PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType , ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) , PVOID Context ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_198_0; } else { { goto switch_198_default; if (0) { switch_198_0: /* CIL Label */ ; return (0L); switch_198_default: /* CIL Label */ ; return (-1073741823L); } else { switch_198_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject , GUID const *InterfaceClassGuid , PUNICODE_STRING ReferenceString , PUNICODE_STRING SymbolicLinkName ) ; NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject , GUID const *InterfaceClassGuid , PUNICODE_STRING ReferenceString , PUNICODE_STRING SymbolicLinkName ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_199_0; } else { { goto switch_199_default; if (0) { switch_199_0: /* CIL Label */ ; return (0L); switch_199_default: /* CIL Label */ ; return (-1073741808L); } else { switch_199_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) void IoReleaseCancelSpinLock(KIRQL Irql ) ; void IoReleaseCancelSpinLock(KIRQL Irql ) { { return; } } __attribute__((__dllimport__)) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName , BOOLEAN Enable ) ; NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName , BOOLEAN Enable ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_200_0; } else { { goto switch_200_default; if (0) { switch_200_0: /* CIL Label */ ; return (0L); switch_200_default: /* CIL Label */ ; return (-1073741823L); } else { switch_200_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ; void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) { { return; } } void stubMoreProcessingRequired(void) { { if (s == 1) { s = 5; } else { { __VERIFIER_assert(0); } } return; } } __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; NTSTATUS returnVal2 ; int compRetStatus1 ; PVOID lcontext ; NTSTATUS tmp ; NTSTATUS (*__cil_tmp8)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; long __cil_tmp9 ; { if (compRegistered) { { __cil_tmp8 = & FloppyPnpComplete; tmp = (*__cil_tmp8)(DeviceObject, Irp, lcontext); compRetStatus1 = (int )tmp; } { __cil_tmp9 = (long )compRetStatus1; if (__cil_tmp9 == -1073741802L) { { stubMoreProcessingRequired(); } } else { } } } else { } if (__BLAST_NONDET == 0) { goto switch_201_0; } else { if (__BLAST_NONDET == 1) { goto switch_201_1; } else { { goto switch_201_default; if (0) { switch_201_0: /* CIL Label */ returnVal2 = 0L; goto switch_201_break; switch_201_1: /* CIL Label */ returnVal2 = -1073741823L; goto switch_201_break; switch_201_default: /* CIL Label */ returnVal2 = 259L; goto switch_201_break; } else { switch_201_break: /* CIL Label */ ; } } } } if (s == 1) { s = 7; lowerDriverReturn = (int )returnVal2; } else { if (s == 5) { if (returnVal2 == 259L) { s = 6; lowerDriverReturn = (int )returnVal2; } else { s = 1; lowerDriverReturn = (int )returnVal2; } } else { if (s == 3) { s = 4; lowerDriverReturn = (int )returnVal2; } else { { __VERIFIER_assert(0); } } } } return (returnVal2); } } __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp , CCHAR PriorityBoost ) ; void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp , CCHAR PriorityBoost ) { { if (s == 1) { s = 2; } else { { __VERIFIER_assert(0); } } return; } } __attribute__((__dllimport__)) KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) ; __attribute__((__dllimport__)) KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) ; KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) { { return ((unsigned char)0); } } __attribute__((__dllimport__)) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Interval ) ; NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Interval ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_202_0; } else { { goto switch_202_default; if (0) { switch_202_0: /* CIL Label */ ; return (0L); switch_202_default: /* CIL Label */ ; return (-1073741823L); } else { switch_202_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type , BOOLEAN State ) ; void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type , BOOLEAN State ) { { return; } } __attribute__((__dllimport__)) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore , LONG Count , LONG Limit ) ; void KeInitializeSemaphore(PRKSEMAPHORE Semaphore , LONG Count , LONG Limit ) { { return; } } __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) ; void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) { { return; } } __attribute__((__dllimport__)) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment , LONG Adjustment , BOOLEAN Wait ) ; LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment , LONG Adjustment , BOOLEAN Wait ) { LONG r ; { return (r); } } __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock , KIRQL NewIrql ) ; void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock , KIRQL NewIrql ) { { return; } } __attribute__((__dllimport__)) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait ) ; LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait ) { LONG l ; { setEventCalled = 1; return (l); } } __attribute__((__dllimport__)) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Timeout ) ; NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Timeout ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (s == 6) { if (setEventCalled == 1) { s = 1; setEventCalled = 0; } else { goto _L; } } else { _L: if (customIrp == 1) { s = 1; customIrp = 0; } else { if (s == 6) { { __VERIFIER_assert(0); } } else { } } } if (__BLAST_NONDET == 0) { goto switch_203_0; } else { { goto switch_203_default; if (0) { switch_203_0: /* CIL Label */ ; return (0L); switch_203_default: /* CIL Label */ ; return (-1073741823L); } else { switch_203_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS HighestAcceptableAddress ) ; PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS HighestAcceptableAddress ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; char *tmp ; int __cil_tmp5 ; { if (__BLAST_NONDET == 0) { goto switch_204_0; } else { if (__BLAST_NONDET == 1) { goto switch_204_1; } else { if (0) { switch_204_0: /* CIL Label */ { __cil_tmp5 = (int )NumberOfBytes; tmp = malloc(__cil_tmp5); } return ((void *)tmp); switch_204_1: /* CIL Label */ ; return ((void *)0); } else { switch_204_break: /* CIL Label */ ; } } } return ((void *)0); } } __attribute__((__dllimport__)) void MmFreeContiguousMemory(PVOID BaseAddress ) ; void MmFreeContiguousMemory(PVOID BaseAddress ) { { return; } } __attribute__((__dllimport__)) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode , MEMORY_CACHING_TYPE CacheType , PVOID BaseAddress , ULONG BugCheckOnFailure , MM_PAGE_PRIORITY Priority ) ; PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode , MEMORY_CACHING_TYPE CacheType , PVOID BaseAddress , ULONG BugCheckOnFailure , MM_PAGE_PRIORITY Priority ) { { return ((void *)0); } } __attribute__((__dllimport__)) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ; PVOID MmPageEntireDriver(PVOID AddressWithinSection ) { { return ((void *)0); } } __attribute__((__dllimport__)) void MmResetDriverPaging(PVOID AddressWithinSection ) ; void MmResetDriverPaging(PVOID AddressWithinSection ) { { return; } } __attribute__((__dllimport__)) void MmUnlockPages(PMDL MemoryDescriptorList ) ; void MmUnlockPages(PMDL MemoryDescriptorList ) { { return; } } __attribute__((__dllimport__)) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType , KPROCESSOR_MODE AccessMode , PVOID *Object , POBJECT_HANDLE_INFORMATION HandleInformation ) ; NTSTATUS ObReferenceObjectByHandle(HANDLE Handle , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType , KPROCESSOR_MODE AccessMode , PVOID *Object , POBJECT_HANDLE_INFORMATION HandleInformation ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_205_0; } else { { goto switch_205_default; if (0) { switch_205_0: /* CIL Label */ ; return (0L); switch_205_default: /* CIL Label */ ; return (-1073741823L); } else { switch_205_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) ; void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) { { return; } } __attribute__((__dllimport__)) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ; NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; int compRetStatus ; NTSTATUS returnVal ; PVOID lcontext ; NTSTATUS tmp ; NTSTATUS (*__cil_tmp8)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ; long __cil_tmp9 ; { if (compRegistered) { { __cil_tmp8 = & FloppyPnpComplete; tmp = (*__cil_tmp8)(DeviceObject, Irp, lcontext); compRetStatus = (int )tmp; } { __cil_tmp9 = (long )compRetStatus; if (__cil_tmp9 == -1073741802L) { { stubMoreProcessingRequired(); } } else { } } } else { } if (__BLAST_NONDET == 0) { goto switch_206_0; } else { if (__BLAST_NONDET == 1) { goto switch_206_1; } else { { goto switch_206_default; if (0) { switch_206_0: /* CIL Label */ returnVal = 0L; goto switch_206_break; switch_206_1: /* CIL Label */ returnVal = -1073741823L; goto switch_206_break; switch_206_default: /* CIL Label */ returnVal = 259L; goto switch_206_break; } else { switch_206_break: /* CIL Label */ ; } } } } if (s == 1) { s = 7; lowerDriverReturn = (int )returnVal; } else { if (s == 5) { if (returnVal == 259L) { s = 6; lowerDriverReturn = (int )returnVal; } else { s = 1; lowerDriverReturn = (int )returnVal; } } else { if (s == 3) { s = 4; lowerDriverReturn = (int )returnVal; } else { } } } return (returnVal); } } __attribute__((__dllimport__)) void PoStartNextPowerIrp(PIRP Irp ) ; void PoStartNextPowerIrp(PIRP Irp ) { { return; } } __attribute__((__dllimport__)) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle , ULONG DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , HANDLE ProcessHandle , PCLIENT_ID ClientId , void (*StartRoutine)(PVOID StartContext ) , PVOID StartContext ) ; NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle , ULONG DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes , HANDLE ProcessHandle , PCLIENT_ID ClientId , void (*StartRoutine)(PVOID StartContext ) , PVOID StartContext ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_207_0; } else { { goto switch_207_default; if (0) { switch_207_0: /* CIL Label */ ; return (0L); switch_207_default: /* CIL Label */ ; return (-1073741823L); } else { switch_207_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ; NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_208_0; } else { { goto switch_208_default; if (0) { switch_208_0: /* CIL Label */ ; return (0L); switch_208_default: /* CIL Label */ ; return (-1073741823L); } else { switch_208_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString , PANSI_STRING SourceString , BOOLEAN AllocateDestinationString ) ; NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString , PANSI_STRING SourceString , BOOLEAN AllocateDestinationString ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_209_0; } else { { goto switch_209_default; if (0) { switch_209_0: /* CIL Label */ ; return (0L); switch_209_default: /* CIL Label */ ; return (-1073741823L); } else { switch_209_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const *Source1 , void const *Source2 , SIZE_T Length ) ; SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const *Source1 , void const *Source2 , SIZE_T Length ) { SIZE_T r ; { return (r); } } __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString , PUNICODE_STRING SourceString ) ; void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString , PUNICODE_STRING SourceString ) { { return; } } __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo , PCWSTR Path , PCWSTR ValueName ) ; NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo , PCWSTR Path , PCWSTR ValueName ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_210_0; } else { { goto switch_210_default; if (0) { switch_210_0: /* CIL Label */ ; return (0L); switch_210_default: /* CIL Label */ ; return (-1073741823L); } else { switch_210_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) ; void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) { { return; } } __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString , PCSZ SourceString ) ; void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString , PCSZ SourceString ) { { return; } } __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString , PCWSTR SourceString ) ; void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString , PCWSTR SourceString ) { { return; } } __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo , PCWSTR Path , PRTL_QUERY_REGISTRY_TABLE QueryTable , PVOID Context , PVOID Environment ) ; NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo , PCWSTR Path , PRTL_QUERY_REGISTRY_TABLE QueryTable , PVOID Context , PVOID Environment ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_211_0; } else { { goto switch_211_default; if (0) { switch_211_0: /* CIL Label */ ; return (0L); switch_211_default: /* CIL Label */ ; return (-1073741823L); } else { switch_211_break: /* CIL Label */ ; } } } } } __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) ; NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) { int __BLAST_NONDET = __VERIFIER_nondet_int() ; { if (__BLAST_NONDET == 0) { goto switch_212_0; } else { { goto switch_212_default; if (0) { switch_212_0: /* CIL Label */ ; return (0L); switch_212_default: /* CIL Label */ ; return (-1073741823L); } else { switch_212_break: /* CIL Label */ ; } } } } }