1extern char __VERIFIER_nondet_char(void);
2extern int __VERIFIER_nondet_int(void);
3extern long __VERIFIER_nondet_long(void);
4extern void *__VERIFIER_nondet_pointer(void);
5
6
7
8#line 33 "C:/NTDDK/inc/stdio.h"
9#pragma pack(push,8)
10#line 63 "C:/NTDDK/inc/stdio.h"
11typedef unsigned int size_t;
12#line 70 "C:/NTDDK/inc/stdio.h"
13typedef unsigned short wchar_t;
14#line 432
15#pragma pack(pop)
16#line 33 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h"
17#pragma pack(push,8)
18#line 156
19#pragma pack(pop)
20#line 88 "C:/NTDDK/inc/basetsd.h"
21typedef unsigned long ULONG_PTR;
22#line 88 "C:/NTDDK/inc/basetsd.h"
23typedef unsigned long *PULONG_PTR;
24#line 288 "C:/NTDDK/inc/basetsd.h"
25typedef ULONG_PTR SIZE_T;
26#line 217 "C:/NTDDK/inc/ntdef.h"
27typedef void *PVOID;
28#line 266 "C:/NTDDK/inc/ntdef.h"
29typedef char CHAR;
30#line 267 "C:/NTDDK/inc/ntdef.h"
31typedef short SHORT;
32#line 268 "C:/NTDDK/inc/ntdef.h"
33typedef long LONG;
34#line 276 "C:/NTDDK/inc/ntdef.h"
35typedef wchar_t WCHAR;
36#line 286 "C:/NTDDK/inc/ntdef.h"
37typedef WCHAR *PWSTR;
38#line 288 "C:/NTDDK/inc/ntdef.h"
39typedef WCHAR const *PCWSTR;
40#line 293 "C:/NTDDK/inc/ntdef.h"
41typedef CHAR *PCHAR;
42#line 350 "C:/NTDDK/inc/ntdef.h"
43typedef LONG *PLONG;
44#line 360 "C:/NTDDK/inc/ntdef.h"
45typedef unsigned char UCHAR;
46#line 361 "C:/NTDDK/inc/ntdef.h"
47typedef unsigned short USHORT;
48#line 362 "C:/NTDDK/inc/ntdef.h"
49typedef unsigned long ULONG;
50#line 369 "C:/NTDDK/inc/ntdef.h"
51typedef UCHAR *PUCHAR;
52#line 371 "C:/NTDDK/inc/ntdef.h"
53typedef ULONG *PULONG;
54#line 394 "C:/NTDDK/inc/ntdef.h"
55typedef void *HANDLE;
56#line 400 "C:/NTDDK/inc/ntdef.h"
57typedef HANDLE *PHANDLE;
58#line 478 "C:/NTDDK/inc/ntdef.h"
59typedef char CCHAR;
60#line 479 "C:/NTDDK/inc/ntdef.h"
61typedef short CSHORT;
62#line 492 "C:/NTDDK/inc/ntdef.h"
63typedef ULONG LCID;
64#line 508 "C:/NTDDK/inc/ntdef.h"
65typedef LONG NTSTATUS;
66#line 621 "C:/NTDDK/inc/ntdef.h"
67typedef long long LONGLONG;
68#line 622 "C:/NTDDK/inc/ntdef.h"
69typedef unsigned long long ULONGLONG;
70#line 649 "C:/NTDDK/inc/ntdef.h"
71struct __anonstruct____missing_field_name_1 {
72 ULONG LowPart ;
73 LONG HighPart ;
74};
75#line 649 "C:/NTDDK/inc/ntdef.h"
76struct __anonstruct_u_2 {
77 ULONG LowPart ;
78 LONG HighPart ;
79};
80#line 649 "C:/NTDDK/inc/ntdef.h"
81union _LARGE_INTEGER {
82 struct __anonstruct____missing_field_name_1 __annonCompField1 ;
83 struct __anonstruct_u_2 u ;
84 LONGLONG QuadPart ;
85};
86#line 649 "C:/NTDDK/inc/ntdef.h"
87typedef union _LARGE_INTEGER LARGE_INTEGER;
88#line 662 "C:/NTDDK/inc/ntdef.h"
89typedef LARGE_INTEGER *PLARGE_INTEGER;
90#line 668 "C:/NTDDK/inc/ntdef.h"
91struct __anonstruct____missing_field_name_3 {
92 ULONG LowPart ;
93 ULONG HighPart ;
94};
95#line 668 "C:/NTDDK/inc/ntdef.h"
96struct __anonstruct_u_4 {
97 ULONG LowPart ;
98 ULONG HighPart ;
99};
100#line 668 "C:/NTDDK/inc/ntdef.h"
101union _ULARGE_INTEGER {
102 struct __anonstruct____missing_field_name_3 __annonCompField2 ;
103 struct __anonstruct_u_4 u ;
104 ULONGLONG QuadPart ;
105};
106#line 668 "C:/NTDDK/inc/ntdef.h"
107typedef union _ULARGE_INTEGER ULARGE_INTEGER;
108#line 690 "C:/NTDDK/inc/ntdef.h"
109struct _LUID {
110 ULONG LowPart ;
111 LONG HighPart ;
112};
113#line 690 "C:/NTDDK/inc/ntdef.h"
114typedef struct _LUID LUID;
115#line 707 "C:/NTDDK/inc/ntdef.h"
116typedef LARGE_INTEGER PHYSICAL_ADDRESS;
117#line 956
118enum _EVENT_TYPE {
119 NotificationEvent = 0,
120 SynchronizationEvent = 1
121} ;
122#line 956 "C:/NTDDK/inc/ntdef.h"
123typedef enum _EVENT_TYPE EVENT_TYPE;
124#line 984 "C:/NTDDK/inc/ntdef.h"
125typedef char const *PCSZ;
126#line 991 "C:/NTDDK/inc/ntdef.h"
127struct _STRING {
128 USHORT Length ;
129 USHORT MaximumLength ;
130 PCHAR Buffer ;
131};
132#line 991 "C:/NTDDK/inc/ntdef.h"
133typedef struct _STRING STRING;
134#line 999 "C:/NTDDK/inc/ntdef.h"
135typedef STRING *PSTRING;
136#line 1002 "C:/NTDDK/inc/ntdef.h"
137typedef PSTRING PANSI_STRING;
138#line 1027 "C:/NTDDK/inc/ntdef.h"
139struct _UNICODE_STRING {
140 USHORT Length ;
141 USHORT MaximumLength ;
142 PWSTR Buffer ;
143};
144#line 1027 "C:/NTDDK/inc/ntdef.h"
145typedef struct _UNICODE_STRING UNICODE_STRING;
146#line 1036 "C:/NTDDK/inc/ntdef.h"
147typedef UNICODE_STRING *PUNICODE_STRING;
148#line 1046 "C:/NTDDK/inc/ntdef.h"
149typedef UCHAR BOOLEAN;
150#line 1057 "C:/NTDDK/inc/ntdef.h"
151struct _LIST_ENTRY {
152 struct _LIST_ENTRY *Flink ;
153 struct _LIST_ENTRY *Blink ;
154};
155#line 1057 "C:/NTDDK/inc/ntdef.h"
156typedef struct _LIST_ENTRY LIST_ENTRY;
157#line 1057 "C:/NTDDK/inc/ntdef.h"
158typedef struct _LIST_ENTRY *PLIST_ENTRY;
159#line 1067 "C:/NTDDK/inc/ntdef.h"
160struct _SINGLE_LIST_ENTRY {
161 struct _SINGLE_LIST_ENTRY *Next ;
162};
163#line 1067 "C:/NTDDK/inc/ntdef.h"
164typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY;
165#line 1067 "C:/NTDDK/inc/ntdef.h"
166typedef struct _SINGLE_LIST_ENTRY *PSINGLE_LIST_ENTRY;
167#line 1078 "C:/NTDDK/inc/ntdef.h"
168struct LIST_ENTRY32 {
169 ULONG Flink ;
170 ULONG Blink ;
171};
172#line 1078 "C:/NTDDK/inc/ntdef.h"
173typedef struct LIST_ENTRY32 LIST_ENTRY32;
174#line 1082 "C:/NTDDK/inc/ntdef.h"
175typedef LIST_ENTRY32 *PLIST_ENTRY32;
176#line 1084 "C:/NTDDK/inc/ntdef.h"
177struct LIST_ENTRY64 {
178 ULONGLONG Flink ;
179 ULONGLONG Blink ;
180};
181#line 1084 "C:/NTDDK/inc/ntdef.h"
182typedef struct LIST_ENTRY64 LIST_ENTRY64;
183#line 1088 "C:/NTDDK/inc/ntdef.h"
184typedef LIST_ENTRY64 *PLIST_ENTRY64;
185#line 1173 "C:/NTDDK/inc/ntdef.h"
186struct _OBJECT_ATTRIBUTES {
187 ULONG Length ;
188 HANDLE RootDirectory ;
189 PUNICODE_STRING ObjectName ;
190 ULONG Attributes ;
191 PVOID SecurityDescriptor ;
192 PVOID SecurityQualityOfService ;
193};
194#line 1173 "C:/NTDDK/inc/ntdef.h"
195typedef struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES;
196#line 1181 "C:/NTDDK/inc/ntdef.h"
197typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
198#line 17 "C:/NTDDK/inc/guiddef.h"
199struct _GUID {
200 unsigned long Data1 ;
201 unsigned short Data2 ;
202 unsigned short Data3 ;
203 unsigned char Data4[8] ;
204};
205#line 17 "C:/NTDDK/inc/guiddef.h"
206typedef struct _GUID GUID;
207#line 1306 "C:/NTDDK/inc/ntdef.h"
208typedef UCHAR KIRQL;
209#line 1316
210enum _NT_PRODUCT_TYPE {
211 NtProductWinNt = 1,
212 NtProductLanManNt = 2,
213 NtProductServer = 3
214} ;
215#line 1316 "C:/NTDDK/inc/ntdef.h"
216typedef enum _NT_PRODUCT_TYPE NT_PRODUCT_TYPE;
217#line 75 "C:/NTDDK/inc/ddk/ntddk.h"
218struct _KTHREAD;
219#line 75
220struct _KTHREAD;
221#line 75 "C:/NTDDK/inc/ddk/ntddk.h"
222typedef struct _KTHREAD *PKTHREAD;
223#line 76
224struct _ETHREAD;
225#line 76
226struct _ETHREAD;
227#line 76 "C:/NTDDK/inc/ddk/ntddk.h"
228typedef struct _ETHREAD *PETHREAD;
229#line 77
230struct _EPROCESS;
231#line 77
232struct _EPROCESS;
233#line 77 "C:/NTDDK/inc/ddk/ntddk.h"
234typedef struct _EPROCESS *PEPROCESS;
235#line 80
236struct _IO_TIMER;
237#line 80
238struct _IO_TIMER;
239#line 80 "C:/NTDDK/inc/ddk/ntddk.h"
240typedef struct _IO_TIMER *PIO_TIMER;
241#line 81
242struct _OBJECT_TYPE;
243#line 81
244struct _OBJECT_TYPE;
245#line 81 "C:/NTDDK/inc/ddk/ntddk.h"
246typedef struct _OBJECT_TYPE *POBJECT_TYPE;
247#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
248struct __anonstruct____missing_field_name_5 {
249 SINGLE_LIST_ENTRY Next ;
250 USHORT Depth ;
251 USHORT Sequence ;
252};
253#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
254union _SLIST_HEADER {
255 ULONGLONG Alignment ;
256 struct __anonstruct____missing_field_name_5 __annonCompField3 ;
257};
258#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
259typedef union _SLIST_HEADER SLIST_HEADER;
260#line 143 "C:/NTDDK/inc/ddk/ntddk.h"
261typedef union _SLIST_HEADER *PSLIST_HEADER;
262#line 204 "C:/NTDDK/inc/ddk/ntddk.h"
263typedef CCHAR KPROCESSOR_MODE;
264#line 222
265struct _KAPC;
266#line 222
267struct _KAPC;
268#line 222
269struct _KAPC;
270#line 224 "C:/NTDDK/inc/ddk/ntddk.h"
271typedef void (*PKNORMAL_ROUTINE)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 );
272#line 265 "C:/NTDDK/inc/ddk/ntddk.h"
273struct _KAPC {
274 CSHORT Type ;
275 CSHORT Size ;
276 ULONG Spare0 ;
277 struct _KTHREAD *Thread ;
278 LIST_ENTRY ApcListEntry ;
279 void (*KernelRoutine)(struct _KAPC *Apc , PKNORMAL_ROUTINE *NormalRoutine , PVOID *NormalContext ,
280 PVOID *SystemArgument1 , PVOID *SystemArgument2 ) ;
281 void (*RundownRoutine)(struct _KAPC *Apc ) ;
282 void (*NormalRoutine)(PVOID NormalContext , PVOID SystemArgument1 , PVOID SystemArgument2 ) ;
283 PVOID NormalContext ;
284 PVOID SystemArgument1 ;
285 PVOID SystemArgument2 ;
286 CCHAR ApcStateIndex ;
287 KPROCESSOR_MODE ApcMode ;
288 BOOLEAN Inserted ;
289};
290#line 265 "C:/NTDDK/inc/ddk/ntddk.h"
291typedef struct _KAPC KAPC;
292#line 292
293struct _KDPC;
294#line 292
295struct _KDPC;
296#line 292
297struct _KDPC;
298#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
299struct _KDPC {
300 CSHORT Type ;
301 UCHAR Number ;
302 UCHAR Importance ;
303 LIST_ENTRY DpcListEntry ;
304 void (*DeferredRoutine)(struct _KDPC *Dpc , PVOID DeferredContext , PVOID SystemArgument1 ,
305 PVOID SystemArgument2 ) ;
306 PVOID DeferredContext ;
307 PVOID SystemArgument1 ;
308 PVOID SystemArgument2 ;
309 PULONG_PTR Lock ;
310};
311#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
312typedef struct _KDPC KDPC;
313#line 361 "C:/NTDDK/inc/ddk/ntddk.h"
314typedef struct _KDPC *PKDPC;
315#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
316struct _MDL {
317 struct _MDL *Next ;
318 CSHORT Size ;
319 CSHORT MdlFlags ;
320 struct _EPROCESS *Process ;
321 PVOID MappedSystemVa ;
322 PVOID StartVa ;
323 ULONG ByteCount ;
324 ULONG ByteOffset ;
325};
326#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
327typedef struct _MDL MDL;
328#line 443 "C:/NTDDK/inc/ddk/ntddk.h"
329typedef struct _MDL *PMDL;
330#line 532 "C:/NTDDK/inc/ddk/ntddk.h"
331typedef PVOID PACCESS_TOKEN;
332#line 538 "C:/NTDDK/inc/ddk/ntddk.h"
333typedef PVOID PSECURITY_DESCRIPTOR;
334#line 546 "C:/NTDDK/inc/ddk/ntddk.h"
335typedef ULONG ACCESS_MASK;
336#line 27 "C:/NTDDK/inc/pshpack4.h"
337#pragma pack(push,4)
338#line 618 "C:/NTDDK/inc/ddk/ntddk.h"
339struct _LUID_AND_ATTRIBUTES {
340 LUID Luid ;
341 ULONG Attributes ;
342};
343#line 618 "C:/NTDDK/inc/ddk/ntddk.h"
344typedef struct _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES;
345#line 30 "C:/NTDDK/inc/poppack.h"
346#pragma pack(pop)
347#line 681 "C:/NTDDK/inc/ddk/ntddk.h"
348struct _PRIVILEGE_SET {
349 ULONG PrivilegeCount ;
350 ULONG Control ;
351 LUID_AND_ATTRIBUTES Privilege[1] ;
352};
353#line 681 "C:/NTDDK/inc/ddk/ntddk.h"
354typedef struct _PRIVILEGE_SET PRIVILEGE_SET;
355#line 735
356enum _SECURITY_IMPERSONATION_LEVEL {
357 SecurityAnonymous = 0,
358 SecurityIdentification = 1,
359 SecurityImpersonation = 2,
360 SecurityDelegation = 3
361} ;
362#line 735 "C:/NTDDK/inc/ddk/ntddk.h"
363typedef enum _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL;
364#line 753 "C:/NTDDK/inc/ddk/ntddk.h"
365typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;
366#line 762 "C:/NTDDK/inc/ddk/ntddk.h"
367struct _SECURITY_QUALITY_OF_SERVICE {
368 ULONG Length ;
369 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ;
370 SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode ;
371 BOOLEAN EffectiveOnly ;
372};
373#line 762 "C:/NTDDK/inc/ddk/ntddk.h"
374typedef struct _SECURITY_QUALITY_OF_SERVICE *PSECURITY_QUALITY_OF_SERVICE;
375#line 782 "C:/NTDDK/inc/ddk/ntddk.h"
376typedef ULONG SECURITY_INFORMATION;
377#line 816 "C:/NTDDK/inc/ddk/ntddk.h"
378typedef LONG KPRIORITY;
379#line 824 "C:/NTDDK/inc/ddk/ntddk.h"
380typedef ULONG_PTR KSPIN_LOCK;
381#line 825 "C:/NTDDK/inc/ddk/ntddk.h"
382typedef KSPIN_LOCK *PKSPIN_LOCK;
383#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
384struct _RTL_QUERY_REGISTRY_TABLE {
385 NTSTATUS ( __attribute__((__stdcall__)) (*QueryRoutine))(PWSTR ValueName , ULONG ValueType ,
386 PVOID ValueData , ULONG ValueLength ,
387 PVOID Context , PVOID EntryContext ) ;
388 ULONG Flags ;
389 PWSTR Name ;
390 PVOID EntryContext ;
391 ULONG DefaultType ;
392 PVOID DefaultData ;
393 ULONG DefaultLength ;
394};
395#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
396typedef struct _RTL_QUERY_REGISTRY_TABLE RTL_QUERY_REGISTRY_TABLE;
397#line 1088 "C:/NTDDK/inc/ddk/ntddk.h"
398typedef struct _RTL_QUERY_REGISTRY_TABLE *PRTL_QUERY_REGISTRY_TABLE;
399#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
400union __anonunion____missing_field_name_6 {
401 NTSTATUS Status ;
402 PVOID Pointer ;
403};
404#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
405struct _IO_STATUS_BLOCK {
406 union __anonunion____missing_field_name_6 __annonCompField4 ;
407 ULONG_PTR Information ;
408};
409#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
410typedef struct _IO_STATUS_BLOCK IO_STATUS_BLOCK;
411#line 3648 "C:/NTDDK/inc/ddk/ntddk.h"
412typedef struct _IO_STATUS_BLOCK *PIO_STATUS_BLOCK;
413#line 3685
414enum _FILE_INFORMATION_CLASS {
415 FileDirectoryInformation = 1,
416 FileFullDirectoryInformation = 2,
417 FileBothDirectoryInformation = 3,
418 FileBasicInformation = 4,
419 FileStandardInformation = 5,
420 FileInternalInformation = 6,
421 FileEaInformation = 7,
422 FileAccessInformation = 8,
423 FileNameInformation = 9,
424 FileRenameInformation = 10,
425 FileLinkInformation = 11,
426 FileNamesInformation = 12,
427 FileDispositionInformation = 13,
428 FilePositionInformation = 14,
429 FileFullEaInformation = 15,
430 FileModeInformation = 16,
431 FileAlignmentInformation = 17,
432 FileAllInformation = 18,
433 FileAllocationInformation = 19,
434 FileEndOfFileInformation = 20,
435 FileAlternateNameInformation = 21,
436 FileStreamInformation = 22,
437 FilePipeInformation = 23,
438 FilePipeLocalInformation = 24,
439 FilePipeRemoteInformation = 25,
440 FileMailslotQueryInformation = 26,
441 FileMailslotSetInformation = 27,
442 FileCompressionInformation = 28,
443 FileObjectIdInformation = 29,
444 FileCompletionInformation = 30,
445 FileMoveClusterInformation = 31,
446 FileQuotaInformation = 32,
447 FileReparsePointInformation = 33,
448 FileNetworkOpenInformation = 34,
449 FileAttributeTagInformation = 35,
450 FileTrackingInformation = 36,
451 FileMaximumInformation = 37
452} ;
453#line 3685 "C:/NTDDK/inc/ddk/ntddk.h"
454typedef enum _FILE_INFORMATION_CLASS FILE_INFORMATION_CLASS;
455#line 3731 "C:/NTDDK/inc/ddk/ntddk.h"
456struct _FILE_BASIC_INFORMATION {
457 LARGE_INTEGER CreationTime ;
458 LARGE_INTEGER LastAccessTime ;
459 LARGE_INTEGER LastWriteTime ;
460 LARGE_INTEGER ChangeTime ;
461 ULONG FileAttributes ;
462};
463#line 3731 "C:/NTDDK/inc/ddk/ntddk.h"
464typedef struct _FILE_BASIC_INFORMATION *PFILE_BASIC_INFORMATION;
465#line 3739 "C:/NTDDK/inc/ddk/ntddk.h"
466struct _FILE_STANDARD_INFORMATION {
467 LARGE_INTEGER AllocationSize ;
468 LARGE_INTEGER EndOfFile ;
469 ULONG NumberOfLinks ;
470 BOOLEAN DeletePending ;
471 BOOLEAN Directory ;
472};
473#line 3739 "C:/NTDDK/inc/ddk/ntddk.h"
474typedef struct _FILE_STANDARD_INFORMATION *PFILE_STANDARD_INFORMATION;
475#line 3760 "C:/NTDDK/inc/ddk/ntddk.h"
476struct _FILE_NETWORK_OPEN_INFORMATION {
477 LARGE_INTEGER CreationTime ;
478 LARGE_INTEGER LastAccessTime ;
479 LARGE_INTEGER LastWriteTime ;
480 LARGE_INTEGER ChangeTime ;
481 LARGE_INTEGER AllocationSize ;
482 LARGE_INTEGER EndOfFile ;
483 ULONG FileAttributes ;
484};
485#line 3760 "C:/NTDDK/inc/ddk/ntddk.h"
486typedef struct _FILE_NETWORK_OPEN_INFORMATION *PFILE_NETWORK_OPEN_INFORMATION;
487#line 3798
488enum _FSINFOCLASS {
489 FileFsVolumeInformation = 1,
490 FileFsLabelInformation = 2,
491 FileFsSizeInformation = 3,
492 FileFsDeviceInformation = 4,
493 FileFsAttributeInformation = 5,
494 FileFsControlInformation = 6,
495 FileFsFullSizeInformation = 7,
496 FileFsObjectIdInformation = 8,
497 FileFsMaximumInformation = 9
498} ;
499#line 3798 "C:/NTDDK/inc/ddk/ntddk.h"
500typedef enum _FSINFOCLASS FS_INFORMATION_CLASS;
501#line 3829
502enum _INTERFACE_TYPE {
503 InterfaceTypeUndefined = -1,
504 Internal = 0,
505 Isa = 1,
506 Eisa = 2,
507 MicroChannel = 3,
508 TurboChannel = 4,
509 PCIBus = 5,
510 VMEBus = 6,
511 NuBus = 7,
512 PCMCIABus = 8,
513 CBus = 9,
514 MPIBus = 10,
515 MPSABus = 11,
516 ProcessorInternal = 12,
517 InternalPowerBus = 13,
518 PNPISABus = 14,
519 PNPBus = 15,
520 MaximumInterfaceType = 16
521} ;
522#line 3829 "C:/NTDDK/inc/ddk/ntddk.h"
523typedef enum _INTERFACE_TYPE INTERFACE_TYPE;
524#line 3829 "C:/NTDDK/inc/ddk/ntddk.h"
525typedef enum _INTERFACE_TYPE *PINTERFACE_TYPE;
526#line 4141 "C:/NTDDK/inc/ddk/ntddk.h"
527struct _KEY_VALUE_FULL_INFORMATION {
528 ULONG TitleIndex ;
529 ULONG Type ;
530 ULONG DataOffset ;
531 ULONG DataLength ;
532 ULONG NameLength ;
533 WCHAR Name[1] ;
534};
535#line 4141 "C:/NTDDK/inc/ddk/ntddk.h"
536typedef struct _KEY_VALUE_FULL_INFORMATION *PKEY_VALUE_FULL_INFORMATION;
537#line 4294 "C:/NTDDK/inc/ddk/ntddk.h"
538struct _CLIENT_ID {
539 HANDLE UniqueProcess ;
540 HANDLE UniqueThread ;
541};
542#line 4294 "C:/NTDDK/inc/ddk/ntddk.h"
543typedef struct _CLIENT_ID CLIENT_ID;
544#line 4298 "C:/NTDDK/inc/ddk/ntddk.h"
545typedef CLIENT_ID *PCLIENT_ID;
546#line 4587
547enum _SYSTEM_POWER_STATE {
548 PowerSystemUnspecified = 0,
549 PowerSystemWorking = 1,
550 PowerSystemSleeping1 = 2,
551 PowerSystemSleeping2 = 3,
552 PowerSystemSleeping3 = 4,
553 PowerSystemHibernate = 5,
554 PowerSystemShutdown = 6,
555 PowerSystemMaximum = 7
556} ;
557#line 4587 "C:/NTDDK/inc/ddk/ntddk.h"
558typedef enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE;
559#line 4598
560enum __anonenum_POWER_ACTION_11 {
561 PowerActionNone = 0,
562 PowerActionReserved = 1,
563 PowerActionSleep = 2,
564 PowerActionHibernate = 3,
565 PowerActionShutdown = 4,
566 PowerActionShutdownReset = 5,
567 PowerActionShutdownOff = 6,
568 PowerActionWarmEject = 7
569} ;
570#line 4598 "C:/NTDDK/inc/ddk/ntddk.h"
571typedef enum __anonenum_POWER_ACTION_11 POWER_ACTION;
572#line 4609
573enum _DEVICE_POWER_STATE {
574 PowerDeviceUnspecified = 0,
575 PowerDeviceD0 = 1,
576 PowerDeviceD1 = 2,
577 PowerDeviceD2 = 3,
578 PowerDeviceD3 = 4,
579 PowerDeviceMaximum = 5
580} ;
581#line 4609 "C:/NTDDK/inc/ddk/ntddk.h"
582typedef enum _DEVICE_POWER_STATE DEVICE_POWER_STATE;
583#line 4618 "C:/NTDDK/inc/ddk/ntddk.h"
584union _POWER_STATE {
585 SYSTEM_POWER_STATE SystemState ;
586 DEVICE_POWER_STATE DeviceState ;
587};
588#line 4618 "C:/NTDDK/inc/ddk/ntddk.h"
589typedef union _POWER_STATE POWER_STATE;
590#line 4623
591enum _POWER_STATE_TYPE {
592 SystemPowerState = 0,
593 DevicePowerState = 1
594} ;
595#line 4623 "C:/NTDDK/inc/ddk/ntddk.h"
596typedef enum _POWER_STATE_TYPE POWER_STATE_TYPE;
597#line 6994 "C:/NTDDK/inc/ddk/ntddk.h"
598struct _KSYSTEM_TIME {
599 ULONG LowPart ;
600 LONG High1Time ;
601 LONG High2Time ;
602};
603#line 6994 "C:/NTDDK/inc/ddk/ntddk.h"
604typedef struct _KSYSTEM_TIME KSYSTEM_TIME;
605#line 7850
606enum _ALTERNATIVE_ARCHITECTURE_TYPE {
607 StandardDesign = 0,
608 NEC98x86 = 1,
609 EndAlternatives = 2
610} ;
611#line 7850 "C:/NTDDK/inc/ddk/ntddk.h"
612typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE;
613#line 7899 "C:/NTDDK/inc/ddk/ntddk.h"
614struct _KUSER_SHARED_DATA {
615 ULONG volatile TickCountLow ;
616 ULONG TickCountMultiplier ;
617 KSYSTEM_TIME volatile InterruptTime ;
618 KSYSTEM_TIME volatile SystemTime ;
619 KSYSTEM_TIME volatile TimeZoneBias ;
620 USHORT ImageNumberLow ;
621 USHORT ImageNumberHigh ;
622 WCHAR NtSystemRoot[260] ;
623 ULONG MaxStackTraceDepth ;
624 ULONG CryptoExponent ;
625 ULONG TimeZoneId ;
626 ULONG Reserved2[8] ;
627 NT_PRODUCT_TYPE NtProductType ;
628 BOOLEAN ProductTypeIsValid ;
629 ULONG NtMajorVersion ;
630 ULONG NtMinorVersion ;
631 BOOLEAN ProcessorFeatures[64] ;
632 ULONG Reserved1 ;
633 ULONG Reserved3 ;
634 ULONG volatile TimeSlip ;
635 ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture ;
636 LARGE_INTEGER SystemExpirationDate ;
637 ULONG SuiteMask ;
638 BOOLEAN KdDebuggerEnabled ;
639};
640#line 7899 "C:/NTDDK/inc/ddk/ntddk.h"
641typedef struct _KUSER_SHARED_DATA KUSER_SHARED_DATA;
642#line 8211 "C:/NTDDK/inc/ddk/ntddk.h"
643typedef PVOID PASSIGNED_RESOURCE;
644#line 27 "C:/NTDDK/inc/pshpack4.h"
645#pragma pack(push,4)
646#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
647struct __anonstruct_Generic_16 {
648 PHYSICAL_ADDRESS Start ;
649 ULONG Length ;
650};
651#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
652struct __anonstruct_Port_17 {
653 PHYSICAL_ADDRESS Start ;
654 ULONG Length ;
655};
656#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
657struct __anonstruct_Interrupt_18 {
658 ULONG Level ;
659 ULONG Vector ;
660 ULONG Affinity ;
661};
662#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
663struct __anonstruct_Memory_19 {
664 PHYSICAL_ADDRESS Start ;
665 ULONG Length ;
666};
667#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
668struct __anonstruct_Dma_20 {
669 ULONG Channel ;
670 ULONG Port ;
671 ULONG Reserved1 ;
672};
673#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
674struct __anonstruct_DevicePrivate_21 {
675 ULONG Data[3] ;
676};
677#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
678struct __anonstruct_BusNumber_22 {
679 ULONG Start ;
680 ULONG Length ;
681 ULONG Reserved ;
682};
683#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
684struct __anonstruct_DeviceSpecificData_23 {
685 ULONG DataSize ;
686 ULONG Reserved1 ;
687 ULONG Reserved2 ;
688};
689#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
690union __anonunion_u_15 {
691 struct __anonstruct_Generic_16 Generic ;
692 struct __anonstruct_Port_17 Port ;
693 struct __anonstruct_Interrupt_18 Interrupt ;
694 struct __anonstruct_Memory_19 Memory ;
695 struct __anonstruct_Dma_20 Dma ;
696 struct __anonstruct_DevicePrivate_21 DevicePrivate ;
697 struct __anonstruct_BusNumber_22 BusNumber ;
698 struct __anonstruct_DeviceSpecificData_23 DeviceSpecificData ;
699};
700#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
701struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
702 UCHAR Type ;
703 UCHAR ShareDisposition ;
704 USHORT Flags ;
705 union __anonunion_u_15 u ;
706};
707#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
708typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR;
709#line 8309 "C:/NTDDK/inc/ddk/ntddk.h"
710typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR *PCM_PARTIAL_RESOURCE_DESCRIPTOR;
711#line 30 "C:/NTDDK/inc/poppack.h"
712#pragma pack(pop)
713#line 8419 "C:/NTDDK/inc/ddk/ntddk.h"
714struct _CM_PARTIAL_RESOURCE_LIST {
715 USHORT Version ;
716 USHORT Revision ;
717 ULONG Count ;
718 CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1] ;
719};
720#line 8419 "C:/NTDDK/inc/ddk/ntddk.h"
721typedef struct _CM_PARTIAL_RESOURCE_LIST CM_PARTIAL_RESOURCE_LIST;
722#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
723struct _CM_FULL_RESOURCE_DESCRIPTOR {
724 INTERFACE_TYPE InterfaceType ;
725 ULONG BusNumber ;
726 CM_PARTIAL_RESOURCE_LIST PartialResourceList ;
727};
728#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
729typedef struct _CM_FULL_RESOURCE_DESCRIPTOR CM_FULL_RESOURCE_DESCRIPTOR;
730#line 8443 "C:/NTDDK/inc/ddk/ntddk.h"
731typedef struct _CM_FULL_RESOURCE_DESCRIPTOR *PCM_FULL_RESOURCE_DESCRIPTOR;
732#line 8454 "C:/NTDDK/inc/ddk/ntddk.h"
733struct _CM_RESOURCE_LIST {
734 ULONG Count ;
735 CM_FULL_RESOURCE_DESCRIPTOR List[1] ;
736};
737#line 8454 "C:/NTDDK/inc/ddk/ntddk.h"
738typedef struct _CM_RESOURCE_LIST *PCM_RESOURCE_LIST;
739#line 27 "C:/NTDDK/inc/pshpack1.h"
740#pragma pack(push,1)
741#line 30 "C:/NTDDK/inc/poppack.h"
742#pragma pack(pop)
743#line 8844 "C:/NTDDK/inc/ddk/ntddk.h"
744struct _CM_FLOPPY_DEVICE_DATA {
745 USHORT Version ;
746 USHORT Revision ;
747 CHAR Size[8] ;
748 ULONG MaxDensity ;
749 ULONG MountDensity ;
750 UCHAR StepRateHeadUnloadTime ;
751 UCHAR HeadLoadTime ;
752 UCHAR MotorOffTime ;
753 UCHAR SectorLengthCode ;
754 UCHAR SectorPerTrack ;
755 UCHAR ReadWriteGapLength ;
756 UCHAR DataTransferLength ;
757 UCHAR FormatGapLength ;
758 UCHAR FormatFillCharacter ;
759 UCHAR HeadSettleTime ;
760 UCHAR MotorSettleTime ;
761 UCHAR MaximumTrackValue ;
762 UCHAR DataTransferRate ;
763};
764#line 8844 "C:/NTDDK/inc/ddk/ntddk.h"
765typedef struct _CM_FLOPPY_DEVICE_DATA *PCM_FLOPPY_DEVICE_DATA;
766#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
767struct __anonstruct_Port_25 {
768 ULONG Length ;
769 ULONG Alignment ;
770 PHYSICAL_ADDRESS MinimumAddress ;
771 PHYSICAL_ADDRESS MaximumAddress ;
772};
773#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
774struct __anonstruct_Memory_26 {
775 ULONG Length ;
776 ULONG Alignment ;
777 PHYSICAL_ADDRESS MinimumAddress ;
778 PHYSICAL_ADDRESS MaximumAddress ;
779};
780#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
781struct __anonstruct_Interrupt_27 {
782 ULONG MinimumVector ;
783 ULONG MaximumVector ;
784};
785#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
786struct __anonstruct_Dma_28 {
787 ULONG MinimumChannel ;
788 ULONG MaximumChannel ;
789};
790#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
791struct __anonstruct_Generic_29 {
792 ULONG Length ;
793 ULONG Alignment ;
794 PHYSICAL_ADDRESS MinimumAddress ;
795 PHYSICAL_ADDRESS MaximumAddress ;
796};
797#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
798struct __anonstruct_DevicePrivate_30 {
799 ULONG Data[3] ;
800};
801#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
802struct __anonstruct_BusNumber_31 {
803 ULONG Length ;
804 ULONG MinBusNumber ;
805 ULONG MaxBusNumber ;
806 ULONG Reserved ;
807};
808#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
809struct __anonstruct_AssignedResource_32 {
810 PASSIGNED_RESOURCE AssignedResource ;
811};
812#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
813struct __anonstruct_SubAllocateFrom_33 {
814 UCHAR Type ;
815 UCHAR Reserved[3] ;
816 PASSIGNED_RESOURCE AssignedResource ;
817 PHYSICAL_ADDRESS Transformation ;
818};
819#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
820struct __anonstruct_ConfigData_34 {
821 ULONG Priority ;
822 ULONG Reserved1 ;
823 ULONG Reserved2 ;
824};
825#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
826union __anonunion_u_24 {
827 struct __anonstruct_Port_25 Port ;
828 struct __anonstruct_Memory_26 Memory ;
829 struct __anonstruct_Interrupt_27 Interrupt ;
830 struct __anonstruct_Dma_28 Dma ;
831 struct __anonstruct_Generic_29 Generic ;
832 struct __anonstruct_DevicePrivate_30 DevicePrivate ;
833 struct __anonstruct_BusNumber_31 BusNumber ;
834 struct __anonstruct_AssignedResource_32 AssignedResource ;
835 struct __anonstruct_SubAllocateFrom_33 SubAllocateFrom ;
836 struct __anonstruct_ConfigData_34 ConfigData ;
837};
838#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
839struct _IO_RESOURCE_DESCRIPTOR {
840 UCHAR Option ;
841 UCHAR Type ;
842 UCHAR ShareDisposition ;
843 UCHAR Spare1 ;
844 USHORT Flags ;
845 USHORT Spare2 ;
846 union __anonunion_u_24 u ;
847};
848#line 8944 "C:/NTDDK/inc/ddk/ntddk.h"
849typedef struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR;
850#line 9027 "C:/NTDDK/inc/ddk/ntddk.h"
851struct _IO_RESOURCE_LIST {
852 USHORT Version ;
853 USHORT Revision ;
854 ULONG Count ;
855 IO_RESOURCE_DESCRIPTOR Descriptors[1] ;
856};
857#line 9027 "C:/NTDDK/inc/ddk/ntddk.h"
858typedef struct _IO_RESOURCE_LIST IO_RESOURCE_LIST;
859#line 9036 "C:/NTDDK/inc/ddk/ntddk.h"
860struct _IO_RESOURCE_REQUIREMENTS_LIST {
861 ULONG ListSize ;
862 INTERFACE_TYPE InterfaceType ;
863 ULONG BusNumber ;
864 ULONG SlotNumber ;
865 ULONG Reserved[3] ;
866 ULONG AlternativeLists ;
867 IO_RESOURCE_LIST List[1] ;
868};
869#line 9036 "C:/NTDDK/inc/ddk/ntddk.h"
870typedef struct _IO_RESOURCE_REQUIREMENTS_LIST *PIO_RESOURCE_REQUIREMENTS_LIST;
871#line 9111
872enum _CONFIGURATION_TYPE {
873 ArcSystem = 0,
874 CentralProcessor = 1,
875 FloatingPointProcessor = 2,
876 PrimaryIcache = 3,
877 PrimaryDcache = 4,
878 SecondaryIcache = 5,
879 SecondaryDcache = 6,
880 SecondaryCache = 7,
881 EisaAdapter = 8,
882 TcAdapter = 9,
883 ScsiAdapter = 10,
884 DtiAdapter = 11,
885 MultiFunctionAdapter = 12,
886 DiskController = 13,
887 TapeController = 14,
888 CdromController = 15,
889 WormController = 16,
890 SerialController = 17,
891 NetworkController = 18,
892 DisplayController = 19,
893 ParallelController = 20,
894 PointerController = 21,
895 KeyboardController = 22,
896 AudioController = 23,
897 OtherController = 24,
898 DiskPeripheral = 25,
899 FloppyDiskPeripheral = 26,
900 TapePeripheral = 27,
901 ModemPeripheral = 28,
902 MonitorPeripheral = 29,
903 PrinterPeripheral = 30,
904 PointerPeripheral = 31,
905 KeyboardPeripheral = 32,
906 TerminalPeripheral = 33,
907 OtherPeripheral = 34,
908 LinePeripheral = 35,
909 NetworkPeripheral = 36,
910 SystemMemory = 37,
911 DockingInformation = 38,
912 RealModeIrqRoutingTable = 39,
913 MaximumType = 40
914} ;
915#line 9111 "C:/NTDDK/inc/ddk/ntddk.h"
916typedef enum _CONFIGURATION_TYPE CONFIGURATION_TYPE;
917#line 9111 "C:/NTDDK/inc/ddk/ntddk.h"
918typedef enum _CONFIGURATION_TYPE *PCONFIGURATION_TYPE;
919#line 9170
920enum _KWAIT_REASON {
921 Executive = 0,
922 FreePage = 1,
923 PageIn = 2,
924 PoolAllocation = 3,
925 DelayExecution = 4,
926 Suspended = 5,
927 UserRequest = 6,
928 WrExecutive = 7,
929 WrFreePage = 8,
930 WrPageIn = 9,
931 WrPoolAllocation = 10,
932 WrDelayExecution = 11,
933 WrSuspended = 12,
934 WrUserRequest = 13,
935 WrEventPair = 14,
936 WrQueue = 15,
937 WrLpcReceive = 16,
938 WrLpcReply = 17,
939 WrVirtualMemory = 18,
940 WrPageOut = 19,
941 WrRendezvous = 20,
942 Spare2 = 21,
943 Spare3 = 22,
944 Spare4 = 23,
945 Spare5 = 24,
946 Spare6 = 25,
947 WrKernel = 26,
948 MaximumWaitReason = 27
949} ;
950#line 9170 "C:/NTDDK/inc/ddk/ntddk.h"
951typedef enum _KWAIT_REASON KWAIT_REASON;
952#line 9207 "C:/NTDDK/inc/ddk/ntddk.h"
953struct _DISPATCHER_HEADER {
954 UCHAR Type ;
955 UCHAR Absolute ;
956 UCHAR Size ;
957 UCHAR Inserted ;
958 LONG SignalState ;
959 LIST_ENTRY WaitListHead ;
960};
961#line 9207 "C:/NTDDK/inc/ddk/ntddk.h"
962typedef struct _DISPATCHER_HEADER DISPATCHER_HEADER;
963#line 9244 "C:/NTDDK/inc/ddk/ntddk.h"
964struct _KDEVICE_QUEUE {
965 CSHORT Type ;
966 CSHORT Size ;
967 LIST_ENTRY DeviceListHead ;
968 KSPIN_LOCK Lock ;
969 BOOLEAN Busy ;
970};
971#line 9244 "C:/NTDDK/inc/ddk/ntddk.h"
972typedef struct _KDEVICE_QUEUE KDEVICE_QUEUE;
973#line 9252 "C:/NTDDK/inc/ddk/ntddk.h"
974struct _KDEVICE_QUEUE_ENTRY {
975 LIST_ENTRY DeviceListEntry ;
976 ULONG SortKey ;
977 BOOLEAN Inserted ;
978};
979#line 9252 "C:/NTDDK/inc/ddk/ntddk.h"
980typedef struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY;
981#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
982struct _KEVENT {
983 DISPATCHER_HEADER Header ;
984};
985#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
986typedef struct _KEVENT KEVENT;
987#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
988typedef struct _KEVENT *PKEVENT;
989#line 9263 "C:/NTDDK/inc/ddk/ntddk.h"
990typedef struct _KEVENT *PRKEVENT;
991#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
992struct _KSEMAPHORE {
993 DISPATCHER_HEADER Header ;
994 LONG Limit ;
995};
996#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
997typedef struct _KSEMAPHORE KSEMAPHORE;
998#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
999typedef struct _KSEMAPHORE *PKSEMAPHORE;
1000#line 9294 "C:/NTDDK/inc/ddk/ntddk.h"
1001typedef struct _KSEMAPHORE *PRKSEMAPHORE;
1002#line 10057
1003enum _MEMORY_CACHING_TYPE {
1004 MmNonCached = 0,
1005 MmCached = 1,
1006 MmWriteCombined = 2,
1007 MmHardwareCoherentCached = 3,
1008 MmNonCachedUnordered = 4,
1009 MmUSWCCached = 5,
1010 MmMaximumCacheType = 6
1011} ;
1012#line 10057 "C:/NTDDK/inc/ddk/ntddk.h"
1013typedef enum _MEMORY_CACHING_TYPE MEMORY_CACHING_TYPE;
1014#line 10115
1015enum _POOL_TYPE {
1016 NonPagedPool = 0,
1017 PagedPool = 1,
1018 NonPagedPoolMustSucceed = 2,
1019 DontUseThisType = 3,
1020 NonPagedPoolCacheAligned = 4,
1021 PagedPoolCacheAligned = 5,
1022 NonPagedPoolCacheAlignedMustS = 6,
1023 MaxPoolType = 7,
1024 NonPagedPoolSession = 32,
1025 PagedPoolSession = 33,
1026 NonPagedPoolMustSucceedSession = 34,
1027 DontUseThisTypeSession = 35,
1028 NonPagedPoolCacheAlignedSession = 36,
1029 PagedPoolCacheAlignedSession = 37,
1030 NonPagedPoolCacheAlignedMustSSession = 38
1031} ;
1032#line 10115 "C:/NTDDK/inc/ddk/ntddk.h"
1033typedef enum _POOL_TYPE POOL_TYPE;
1034#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
1035struct _FAST_MUTEX {
1036 LONG Count ;
1037 PKTHREAD Owner ;
1038 ULONG Contention ;
1039 KEVENT Event ;
1040 ULONG OldIrql ;
1041};
1042#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
1043typedef struct _FAST_MUTEX FAST_MUTEX;
1044#line 10247 "C:/NTDDK/inc/ddk/ntddk.h"
1045typedef struct _FAST_MUTEX *PFAST_MUTEX;
1046#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
1047union __anonunion____missing_field_name_35 {
1048 ULONG AllocateMisses ;
1049 ULONG AllocateHits ;
1050};
1051#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
1052union __anonunion____missing_field_name_36 {
1053 ULONG FreeMisses ;
1054 ULONG FreeHits ;
1055};
1056#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
1057union __anonunion____missing_field_name_37 {
1058 ULONG LastAllocateMisses ;
1059 ULONG LastAllocateHits ;
1060};
1061#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
1062struct _GENERAL_LOOKASIDE {
1063 SLIST_HEADER ListHead ;
1064 USHORT Depth ;
1065 USHORT MaximumDepth ;
1066 ULONG TotalAllocates ;
1067 union __anonunion____missing_field_name_35 __annonCompField7 ;
1068 ULONG TotalFrees ;
1069 union __anonunion____missing_field_name_36 __annonCompField8 ;
1070 POOL_TYPE Type ;
1071 ULONG Tag ;
1072 ULONG Size ;
1073 PVOID (*Allocate)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
1074 void (*Free)(PVOID Buffer ) ;
1075 LIST_ENTRY ListEntry ;
1076 ULONG LastTotalAllocates ;
1077 union __anonunion____missing_field_name_37 __annonCompField9 ;
1078 ULONG Future[2] ;
1079};
1080#line 10588 "C:/NTDDK/inc/ddk/ntddk.h"
1081typedef struct _GENERAL_LOOKASIDE GENERAL_LOOKASIDE;
1082#line 10619 "C:/NTDDK/inc/ddk/ntddk.h"
1083struct _NPAGED_LOOKASIDE_LIST {
1084 GENERAL_LOOKASIDE L ;
1085 KSPIN_LOCK Lock ;
1086};
1087#line 10619 "C:/NTDDK/inc/ddk/ntddk.h"
1088typedef struct _NPAGED_LOOKASIDE_LIST *PNPAGED_LOOKASIDE_LIST;
1089#line 11156 "C:/NTDDK/inc/ddk/ntddk.h"
1090typedef ULONG_PTR ERESOURCE_THREAD;
1091#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
1092union __anonunion____missing_field_name_38 {
1093 LONG OwnerCount ;
1094 ULONG TableSize ;
1095};
1096#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
1097struct _OWNER_ENTRY {
1098 ERESOURCE_THREAD OwnerThread ;
1099 union __anonunion____missing_field_name_38 __annonCompField10 ;
1100};
1101#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
1102typedef struct _OWNER_ENTRY OWNER_ENTRY;
1103#line 11159 "C:/NTDDK/inc/ddk/ntddk.h"
1104typedef struct _OWNER_ENTRY *POWNER_ENTRY;
1105#line 11168 "C:/NTDDK/inc/ddk/ntddk.h"
1106union __anonunion____missing_field_name_39 {
1107 PVOID Address ;
1108 ULONG_PTR CreatorBackTraceIndex ;
1109};
1110#line 11168 "C:/NTDDK/inc/ddk/ntddk.h"
1111struct _ERESOURCE {
1112 LIST_ENTRY SystemResourcesList ;
1113 POWNER_ENTRY OwnerTable ;
1114 SHORT ActiveCount ;
1115 USHORT Flag ;
1116 PKSEMAPHORE SharedWaiters ;
1117 PKEVENT ExclusiveWaiters ;
1118 OWNER_ENTRY OwnerThreads[2] ;
1119 ULONG ContentionCount ;
1120 USHORT NumberOfSharedWaiters ;
1121 USHORT NumberOfExclusiveWaiters ;
1122 union __anonunion____missing_field_name_39 __annonCompField11 ;
1123 KSPIN_LOCK SpinLock ;
1124};
1125#line 11884
1126enum _LOCK_OPERATION {
1127 IoReadAccess = 0,
1128 IoWriteAccess = 1,
1129 IoModifyAccess = 2
1130} ;
1131#line 11884 "C:/NTDDK/inc/ddk/ntddk.h"
1132typedef enum _LOCK_OPERATION LOCK_OPERATION;
1133#line 11970
1134enum _MM_PAGE_PRIORITY {
1135 LowPagePriority = 0,
1136 NormalPagePriority = 16,
1137 HighPagePriority = 32
1138} ;
1139#line 11970 "C:/NTDDK/inc/ddk/ntddk.h"
1140typedef enum _MM_PAGE_PRIORITY MM_PAGE_PRIORITY;
1141#line 12399
1142struct _DRIVER_OBJECT;
1143#line 12399
1144struct _DRIVER_OBJECT;
1145#line 12399
1146struct _DRIVER_OBJECT;
1147#line 12426 "C:/NTDDK/inc/ddk/ntddk.h"
1148struct _SECURITY_SUBJECT_CONTEXT {
1149 PACCESS_TOKEN ClientToken ;
1150 SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ;
1151 PACCESS_TOKEN PrimaryToken ;
1152 PVOID ProcessAuditId ;
1153};
1154#line 12426 "C:/NTDDK/inc/ddk/ntddk.h"
1155typedef struct _SECURITY_SUBJECT_CONTEXT SECURITY_SUBJECT_CONTEXT;
1156#line 12448 "C:/NTDDK/inc/ddk/ntddk.h"
1157struct _INITIAL_PRIVILEGE_SET {
1158 ULONG PrivilegeCount ;
1159 ULONG Control ;
1160 LUID_AND_ATTRIBUTES Privilege[3] ;
1161};
1162#line 12448 "C:/NTDDK/inc/ddk/ntddk.h"
1163typedef struct _INITIAL_PRIVILEGE_SET INITIAL_PRIVILEGE_SET;
1164#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
1165union __anonunion_Privileges_40 {
1166 INITIAL_PRIVILEGE_SET InitialPrivilegeSet ;
1167 PRIVILEGE_SET PrivilegeSet ;
1168};
1169#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
1170struct _ACCESS_STATE {
1171 LUID OperationID ;
1172 BOOLEAN SecurityEvaluated ;
1173 BOOLEAN GenerateAudit ;
1174 BOOLEAN GenerateOnClose ;
1175 BOOLEAN PrivilegesAllocated ;
1176 ULONG Flags ;
1177 ACCESS_MASK RemainingDesiredAccess ;
1178 ACCESS_MASK PreviouslyGrantedAccess ;
1179 ACCESS_MASK OriginalDesiredAccess ;
1180 SECURITY_SUBJECT_CONTEXT SubjectSecurityContext ;
1181 PSECURITY_DESCRIPTOR SecurityDescriptor ;
1182 PVOID AuxData ;
1183 union __anonunion_Privileges_40 Privileges ;
1184 BOOLEAN AuditPrivileges ;
1185 UNICODE_STRING ObjectName ;
1186 UNICODE_STRING ObjectTypeName ;
1187};
1188#line 12462 "C:/NTDDK/inc/ddk/ntddk.h"
1189typedef struct _ACCESS_STATE *PACCESS_STATE;
1190#line 12906
1191struct _DEVICE_OBJECT;
1192#line 12906
1193struct _DEVICE_OBJECT;
1194#line 12906
1195struct _DEVICE_OBJECT;
1196#line 12908
1197struct _DRIVER_OBJECT;
1198#line 12911
1199struct _FILE_OBJECT;
1200#line 12911
1201struct _FILE_OBJECT;
1202#line 12911
1203struct _FILE_OBJECT;
1204#line 12912
1205struct _IRP;
1206#line 12912
1207struct _IRP;
1208#line 12912
1209struct _IRP;
1210#line 12913
1211struct _SCSI_REQUEST_BLOCK;
1212#line 12913
1213struct _SCSI_REQUEST_BLOCK;
1214#line 12913
1215struct _SCSI_REQUEST_BLOCK;
1216#line 12979 "C:/NTDDK/inc/ddk/ntddk.h"
1217typedef NTSTATUS (*PDRIVER_DISPATCH)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp );
1218#line 13289
1219struct _COMPRESSED_DATA_INFO;
1220#line 13289
1221struct _COMPRESSED_DATA_INFO;
1222#line 13350 "C:/NTDDK/inc/ddk/ntddk.h"
1223struct _FAST_IO_DISPATCH {
1224 ULONG SizeOfFastIoDispatch ;
1225 BOOLEAN (*FastIoCheckIfPossible)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1226 ULONG Length , BOOLEAN Wait , ULONG LockKey ,
1227 BOOLEAN CheckForReadOperation , PIO_STATUS_BLOCK IoStatus ,
1228 struct _DEVICE_OBJECT *DeviceObject ) ;
1229 BOOLEAN (*FastIoRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1230 ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer ,
1231 PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
1232 BOOLEAN (*FastIoWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1233 ULONG Length , BOOLEAN Wait , ULONG LockKey , PVOID Buffer ,
1234 PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
1235 BOOLEAN (*FastIoQueryBasicInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
1236 PFILE_BASIC_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus ,
1237 struct _DEVICE_OBJECT *DeviceObject ) ;
1238 BOOLEAN (*FastIoQueryStandardInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
1239 PFILE_STANDARD_INFORMATION Buffer , PIO_STATUS_BLOCK IoStatus ,
1240 struct _DEVICE_OBJECT *DeviceObject ) ;
1241 BOOLEAN (*FastIoLock)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1242 PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key ,
1243 BOOLEAN FailImmediately , BOOLEAN ExclusiveLock , PIO_STATUS_BLOCK IoStatus ,
1244 struct _DEVICE_OBJECT *DeviceObject ) ;
1245 BOOLEAN (*FastIoUnlockSingle)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1246 PLARGE_INTEGER Length , PEPROCESS ProcessId , ULONG Key ,
1247 PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
1248 BOOLEAN (*FastIoUnlockAll)(struct _FILE_OBJECT *FileObject , PEPROCESS ProcessId ,
1249 PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
1250 BOOLEAN (*FastIoUnlockAllByKey)(struct _FILE_OBJECT *FileObject , PVOID ProcessId ,
1251 ULONG Key , PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
1252 BOOLEAN (*FastIoDeviceControl)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
1253 PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer ,
1254 ULONG OutputBufferLength , ULONG IoControlCode ,
1255 PIO_STATUS_BLOCK IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
1256 void (*AcquireFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ;
1257 void (*ReleaseFileForNtCreateSection)(struct _FILE_OBJECT *FileObject ) ;
1258 void (*FastIoDetachDevice)(struct _DEVICE_OBJECT *SourceDevice , struct _DEVICE_OBJECT *TargetDevice ) ;
1259 BOOLEAN (*FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT *FileObject , BOOLEAN Wait ,
1260 struct _FILE_NETWORK_OPEN_INFORMATION *Buffer ,
1261 struct _IO_STATUS_BLOCK *IoStatus , struct _DEVICE_OBJECT *DeviceObject ) ;
1262 NTSTATUS (*AcquireForModWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER EndingOffset ,
1263 struct _ERESOURCE **ResourceToRelease , struct _DEVICE_OBJECT *DeviceObject ) ;
1264 BOOLEAN (*MdlRead)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1265 ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus ,
1266 struct _DEVICE_OBJECT *DeviceObject ) ;
1267 BOOLEAN (*MdlReadComplete)(struct _FILE_OBJECT *FileObject , PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
1268 BOOLEAN (*PrepareMdlWrite)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1269 ULONG Length , ULONG LockKey , PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus ,
1270 struct _DEVICE_OBJECT *DeviceObject ) ;
1271 BOOLEAN (*MdlWriteComplete)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1272 PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
1273 BOOLEAN (*FastIoReadCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1274 ULONG Length , ULONG LockKey , PVOID Buffer , PMDL *MdlChain ,
1275 PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo ,
1276 ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ;
1277 BOOLEAN (*FastIoWriteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1278 ULONG Length , ULONG LockKey , PVOID Buffer ,
1279 PMDL *MdlChain , PIO_STATUS_BLOCK IoStatus , struct _COMPRESSED_DATA_INFO *CompressedDataInfo ,
1280 ULONG CompressedDataInfoLength , struct _DEVICE_OBJECT *DeviceObject ) ;
1281 BOOLEAN (*MdlReadCompleteCompressed)(struct _FILE_OBJECT *FileObject , PMDL MdlChain ,
1282 struct _DEVICE_OBJECT *DeviceObject ) ;
1283 BOOLEAN (*MdlWriteCompleteCompressed)(struct _FILE_OBJECT *FileObject , PLARGE_INTEGER FileOffset ,
1284 PMDL MdlChain , struct _DEVICE_OBJECT *DeviceObject ) ;
1285 BOOLEAN (*FastIoQueryOpen)(struct _IRP *Irp , PFILE_NETWORK_OPEN_INFORMATION NetworkInformation ,
1286 struct _DEVICE_OBJECT *DeviceObject ) ;
1287 NTSTATUS (*ReleaseForModWrite)(struct _FILE_OBJECT *FileObject , struct _ERESOURCE *ResourceToRelease ,
1288 struct _DEVICE_OBJECT *DeviceObject ) ;
1289 NTSTATUS (*AcquireForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ;
1290 NTSTATUS (*ReleaseForCcFlush)(struct _FILE_OBJECT *FileObject , struct _DEVICE_OBJECT *DeviceObject ) ;
1291};
1292#line 13350 "C:/NTDDK/inc/ddk/ntddk.h"
1293typedef struct _FAST_IO_DISPATCH *PFAST_IO_DISPATCH;
1294#line 13386
1295enum _IO_ALLOCATION_ACTION {
1296 KeepObject = 1,
1297 DeallocateObject = 2,
1298 DeallocateObjectKeepRegisters = 3
1299} ;
1300#line 13386 "C:/NTDDK/inc/ddk/ntddk.h"
1301typedef enum _IO_ALLOCATION_ACTION IO_ALLOCATION_ACTION;
1302#line 13410 "C:/NTDDK/inc/ddk/ntddk.h"
1303struct _IO_SECURITY_CONTEXT {
1304 PSECURITY_QUALITY_OF_SERVICE SecurityQos ;
1305 PACCESS_STATE AccessState ;
1306 ACCESS_MASK DesiredAccess ;
1307 ULONG FullCreateOptions ;
1308};
1309#line 13410 "C:/NTDDK/inc/ddk/ntddk.h"
1310typedef struct _IO_SECURITY_CONTEXT *PIO_SECURITY_CONTEXT;
1311#line 13434 "C:/NTDDK/inc/ddk/ntddk.h"
1312struct _VPB {
1313 CSHORT Type ;
1314 CSHORT Size ;
1315 USHORT Flags ;
1316 USHORT VolumeLabelLength ;
1317 struct _DEVICE_OBJECT *DeviceObject ;
1318 struct _DEVICE_OBJECT *RealDevice ;
1319 ULONG SerialNumber ;
1320 ULONG ReferenceCount ;
1321 WCHAR VolumeLabel[(32U * sizeof(WCHAR )) / sizeof(WCHAR )] ;
1322};
1323#line 13434 "C:/NTDDK/inc/ddk/ntddk.h"
1324typedef struct _VPB *PVPB;
1325#line 13491 "C:/NTDDK/inc/ddk/ntddk.h"
1326struct _WAIT_CONTEXT_BLOCK {
1327 KDEVICE_QUEUE_ENTRY WaitQueueEntry ;
1328 IO_ALLOCATION_ACTION (*DeviceRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ,
1329 PVOID MapRegisterBase , PVOID Context ) ;
1330 PVOID DeviceContext ;
1331 ULONG NumberOfMapRegisters ;
1332 PVOID DeviceObject ;
1333 PVOID CurrentIrp ;
1334 PKDPC BufferChainingDpc ;
1335};
1336#line 13491 "C:/NTDDK/inc/ddk/ntddk.h"
1337typedef struct _WAIT_CONTEXT_BLOCK WAIT_CONTEXT_BLOCK;
1338#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
1339union __anonunion_Queue_43 {
1340 LIST_ENTRY ListEntry ;
1341 WAIT_CONTEXT_BLOCK Wcb ;
1342};
1343#line 13537
1344struct _DEVOBJ_EXTENSION;
1345#line 13537
1346struct _DEVOBJ_EXTENSION;
1347#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
1348struct _DEVICE_OBJECT {
1349 CSHORT Type ;
1350 USHORT Size ;
1351 LONG ReferenceCount ;
1352 struct _DRIVER_OBJECT *DriverObject ;
1353 struct _DEVICE_OBJECT *NextDevice ;
1354 struct _DEVICE_OBJECT *AttachedDevice ;
1355 struct _IRP *CurrentIrp ;
1356 PIO_TIMER Timer ;
1357 ULONG Flags ;
1358 ULONG Characteristics ;
1359 PVPB Vpb ;
1360 PVOID DeviceExtension ;
1361 ULONG DeviceType ;
1362 CCHAR StackSize ;
1363 union __anonunion_Queue_43 Queue ;
1364 ULONG AlignmentRequirement ;
1365 KDEVICE_QUEUE DeviceQueue ;
1366 KDPC Dpc ;
1367 ULONG ActiveThreadCount ;
1368 PSECURITY_DESCRIPTOR SecurityDescriptor ;
1369 KEVENT DeviceLock ;
1370 USHORT SectorSize ;
1371 USHORT Spare1 ;
1372 struct _DEVOBJ_EXTENSION *DeviceObjectExtension ;
1373 PVOID Reserved ;
1374};
1375#line 13537 "C:/NTDDK/inc/ddk/ntddk.h"
1376typedef struct _DEVICE_OBJECT DEVICE_OBJECT;
1377#line 13575 "C:/NTDDK/inc/ddk/ntddk.h"
1378typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
1379#line 13580 "C:/NTDDK/inc/ddk/ntddk.h"
1380struct _DEVOBJ_EXTENSION {
1381 CSHORT Type ;
1382 USHORT Size ;
1383 PDEVICE_OBJECT DeviceObject ;
1384};
1385#line 13608 "C:/NTDDK/inc/ddk/ntddk.h"
1386struct _DRIVER_EXTENSION {
1387 struct _DRIVER_OBJECT *DriverObject ;
1388 NTSTATUS (*AddDevice)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ;
1389 ULONG Count ;
1390 UNICODE_STRING ServiceKeyName ;
1391};
1392#line 13608 "C:/NTDDK/inc/ddk/ntddk.h"
1393typedef struct _DRIVER_EXTENSION *PDRIVER_EXTENSION;
1394#line 13645 "C:/NTDDK/inc/ddk/ntddk.h"
1395struct _DRIVER_OBJECT {
1396 CSHORT Type ;
1397 CSHORT Size ;
1398 PDEVICE_OBJECT DeviceObject ;
1399 ULONG Flags ;
1400 PVOID DriverStart ;
1401 ULONG DriverSize ;
1402 PVOID DriverSection ;
1403 PDRIVER_EXTENSION DriverExtension ;
1404 UNICODE_STRING DriverName ;
1405 PUNICODE_STRING HardwareDatabase ;
1406 PFAST_IO_DISPATCH FastIoDispatch ;
1407 NTSTATUS (*DriverInit)(struct _DRIVER_OBJECT *DriverObject , PUNICODE_STRING RegistryPath ) ;
1408 void (*DriverStartIo)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
1409 void (*DriverUnload)(struct _DRIVER_OBJECT *DriverObject ) ;
1410 PDRIVER_DISPATCH MajorFunction[28] ;
1411};
1412#line 13645 "C:/NTDDK/inc/ddk/ntddk.h"
1413typedef struct _DRIVER_OBJECT DRIVER_OBJECT;
1414#line 13706 "C:/NTDDK/inc/ddk/ntddk.h"
1415typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT;
1416#line 13715 "C:/NTDDK/inc/ddk/ntddk.h"
1417struct _SECTION_OBJECT_POINTERS {
1418 PVOID DataSectionObject ;
1419 PVOID SharedCacheMap ;
1420 PVOID ImageSectionObject ;
1421};
1422#line 13715 "C:/NTDDK/inc/ddk/ntddk.h"
1423typedef struct _SECTION_OBJECT_POINTERS SECTION_OBJECT_POINTERS;
1424#line 13720 "C:/NTDDK/inc/ddk/ntddk.h"
1425typedef SECTION_OBJECT_POINTERS *PSECTION_OBJECT_POINTERS;
1426#line 13726 "C:/NTDDK/inc/ddk/ntddk.h"
1427struct _IO_COMPLETION_CONTEXT {
1428 PVOID Port ;
1429 PVOID Key ;
1430};
1431#line 13726 "C:/NTDDK/inc/ddk/ntddk.h"
1432typedef struct _IO_COMPLETION_CONTEXT *PIO_COMPLETION_CONTEXT;
1433#line 13759 "C:/NTDDK/inc/ddk/ntddk.h"
1434struct _FILE_OBJECT {
1435 CSHORT Type ;
1436 CSHORT Size ;
1437 PDEVICE_OBJECT DeviceObject ;
1438 PVPB Vpb ;
1439 PVOID FsContext ;
1440 PVOID FsContext2 ;
1441 PSECTION_OBJECT_POINTERS SectionObjectPointer ;
1442 PVOID PrivateCacheMap ;
1443 NTSTATUS FinalStatus ;
1444 struct _FILE_OBJECT *RelatedFileObject ;
1445 BOOLEAN LockOperation ;
1446 BOOLEAN DeletePending ;
1447 BOOLEAN ReadAccess ;
1448 BOOLEAN WriteAccess ;
1449 BOOLEAN DeleteAccess ;
1450 BOOLEAN SharedRead ;
1451 BOOLEAN SharedWrite ;
1452 BOOLEAN SharedDelete ;
1453 ULONG Flags ;
1454 UNICODE_STRING FileName ;
1455 LARGE_INTEGER CurrentByteOffset ;
1456 ULONG Waiters ;
1457 ULONG Busy ;
1458 PVOID LastLock ;
1459 KEVENT Lock ;
1460 KEVENT Event ;
1461 PIO_COMPLETION_CONTEXT CompletionContext ;
1462};
1463#line 13788 "C:/NTDDK/inc/ddk/ntddk.h"
1464typedef struct _FILE_OBJECT *PFILE_OBJECT;
1465#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1466union __anonunion_AssociatedIrp_44 {
1467 struct _IRP *MasterIrp ;
1468 LONG IrpCount ;
1469 PVOID SystemBuffer ;
1470};
1471#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1472struct __anonstruct_AsynchronousParameters_46 {
1473 void ( __attribute__((__stdcall__)) (*UserApcRoutine))(PVOID ApcContext , PIO_STATUS_BLOCK IoStatusBlock ,
1474 ULONG Reserved ) ;
1475 PVOID UserApcContext ;
1476};
1477#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1478union __anonunion_Overlay_45 {
1479 struct __anonstruct_AsynchronousParameters_46 AsynchronousParameters ;
1480 LARGE_INTEGER AllocationSize ;
1481};
1482#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1483struct __anonstruct____missing_field_name_50 {
1484 PVOID DriverContext[4] ;
1485};
1486#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1487union __anonunion____missing_field_name_49 {
1488 KDEVICE_QUEUE_ENTRY DeviceQueueEntry ;
1489 struct __anonstruct____missing_field_name_50 __annonCompField14 ;
1490};
1491#line 13828
1492struct _IO_STACK_LOCATION;
1493#line 13828
1494struct _IO_STACK_LOCATION;
1495#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1496union __anonunion____missing_field_name_52 {
1497 struct _IO_STACK_LOCATION *CurrentStackLocation ;
1498 ULONG PacketType ;
1499};
1500#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1501struct __anonstruct____missing_field_name_51 {
1502 LIST_ENTRY ListEntry ;
1503 union __anonunion____missing_field_name_52 __annonCompField16 ;
1504};
1505#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1506struct __anonstruct_Overlay_48 {
1507 union __anonunion____missing_field_name_49 __annonCompField15 ;
1508 PETHREAD Thread ;
1509 PCHAR AuxiliaryBuffer ;
1510 struct __anonstruct____missing_field_name_51 __annonCompField17 ;
1511 PFILE_OBJECT OriginalFileObject ;
1512};
1513#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1514union __anonunion_Tail_47 {
1515 struct __anonstruct_Overlay_48 Overlay ;
1516 KAPC Apc ;
1517 PVOID CompletionKey ;
1518};
1519#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1520struct _IRP {
1521 CSHORT Type ;
1522 USHORT Size ;
1523 PMDL MdlAddress ;
1524 ULONG Flags ;
1525 union __anonunion_AssociatedIrp_44 AssociatedIrp ;
1526 LIST_ENTRY ThreadListEntry ;
1527 IO_STATUS_BLOCK IoStatus ;
1528 KPROCESSOR_MODE RequestorMode ;
1529 BOOLEAN PendingReturned ;
1530 CHAR StackCount ;
1531 CHAR CurrentLocation ;
1532 BOOLEAN Cancel ;
1533 KIRQL CancelIrql ;
1534 CCHAR ApcEnvironment ;
1535 UCHAR AllocationFlags ;
1536 PIO_STATUS_BLOCK UserIosb ;
1537 PKEVENT UserEvent ;
1538 union __anonunion_Overlay_45 Overlay ;
1539 void (*CancelRoutine)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
1540 PVOID UserBuffer ;
1541 union __anonunion_Tail_47 Tail ;
1542};
1543#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1544typedef struct _IRP IRP;
1545#line 13828 "C:/NTDDK/inc/ddk/ntddk.h"
1546typedef struct _IRP *PIRP;
1547#line 14163
1548enum _DEVICE_RELATION_TYPE {
1549 BusRelations = 0,
1550 EjectionRelations = 1,
1551 PowerRelations = 2,
1552 RemovalRelations = 3,
1553 TargetDeviceRelation = 4
1554} ;
1555#line 14163 "C:/NTDDK/inc/ddk/ntddk.h"
1556typedef enum _DEVICE_RELATION_TYPE DEVICE_RELATION_TYPE;
1557#line 14176
1558enum _DEVICE_USAGE_NOTIFICATION_TYPE {
1559 DeviceUsageTypeUndefined = 0,
1560 DeviceUsageTypePaging = 1,
1561 DeviceUsageTypeHibernation = 2,
1562 DeviceUsageTypeDumpFile = 3
1563} ;
1564#line 14176 "C:/NTDDK/inc/ddk/ntddk.h"
1565typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE DEVICE_USAGE_NOTIFICATION_TYPE;
1566#line 14185 "C:/NTDDK/inc/ddk/ntddk.h"
1567struct _INTERFACE {
1568 USHORT Size ;
1569 USHORT Version ;
1570 PVOID Context ;
1571 void (*InterfaceReference)(PVOID Context ) ;
1572 void (*InterfaceDereference)(PVOID Context ) ;
1573};
1574#line 14185 "C:/NTDDK/inc/ddk/ntddk.h"
1575typedef struct _INTERFACE *PINTERFACE;
1576#line 14196 "C:/NTDDK/inc/ddk/ntddk.h"
1577struct _DEVICE_CAPABILITIES {
1578 USHORT Size ;
1579 USHORT Version ;
1580 ULONG DeviceD1 : 1 ;
1581 ULONG DeviceD2 : 1 ;
1582 ULONG LockSupported : 1 ;
1583 ULONG EjectSupported : 1 ;
1584 ULONG Removable : 1 ;
1585 ULONG DockDevice : 1 ;
1586 ULONG UniqueID : 1 ;
1587 ULONG SilentInstall : 1 ;
1588 ULONG RawDeviceOK : 1 ;
1589 ULONG SurpriseRemovalOK : 1 ;
1590 ULONG WakeFromD0 : 1 ;
1591 ULONG WakeFromD1 : 1 ;
1592 ULONG WakeFromD2 : 1 ;
1593 ULONG WakeFromD3 : 1 ;
1594 ULONG HardwareDisabled : 1 ;
1595 ULONG NonDynamic : 1 ;
1596 ULONG WarmEjectSupported : 1 ;
1597 ULONG Reserved : 15 ;
1598 ULONG Address ;
1599 ULONG UINumber ;
1600 DEVICE_POWER_STATE DeviceState[7] ;
1601 SYSTEM_POWER_STATE SystemWake ;
1602 DEVICE_POWER_STATE DeviceWake ;
1603 ULONG D1Latency ;
1604 ULONG D2Latency ;
1605 ULONG D3Latency ;
1606};
1607#line 14196 "C:/NTDDK/inc/ddk/ntddk.h"
1608typedef struct _DEVICE_CAPABILITIES *PDEVICE_CAPABILITIES;
1609#line 14229 "C:/NTDDK/inc/ddk/ntddk.h"
1610struct _POWER_SEQUENCE {
1611 ULONG SequenceD1 ;
1612 ULONG SequenceD2 ;
1613 ULONG SequenceD3 ;
1614};
1615#line 14229 "C:/NTDDK/inc/ddk/ntddk.h"
1616typedef struct _POWER_SEQUENCE *PPOWER_SEQUENCE;
1617#line 14235
1618enum __anonenum_BUS_QUERY_ID_TYPE_53 {
1619 BusQueryDeviceID = 0,
1620 BusQueryHardwareIDs = 1,
1621 BusQueryCompatibleIDs = 2,
1622 BusQueryInstanceID = 3,
1623 BusQueryDeviceSerialNumber = 4
1624} ;
1625#line 14235 "C:/NTDDK/inc/ddk/ntddk.h"
1626typedef enum __anonenum_BUS_QUERY_ID_TYPE_53 BUS_QUERY_ID_TYPE;
1627#line 14252
1628enum __anonenum_DEVICE_TEXT_TYPE_54 {
1629 DeviceTextDescription = 0,
1630 DeviceTextLocationInformation = 1
1631} ;
1632#line 14252 "C:/NTDDK/inc/ddk/ntddk.h"
1633typedef enum __anonenum_DEVICE_TEXT_TYPE_54 DEVICE_TEXT_TYPE;
1634#line 27 "C:/NTDDK/inc/pshpack4.h"
1635#pragma pack(push,4)
1636#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1637struct __anonstruct_Create_56 {
1638 PIO_SECURITY_CONTEXT SecurityContext ;
1639 ULONG Options ;
1640 USHORT FileAttributes ;
1641 USHORT ShareAccess ;
1642 ULONG EaLength ;
1643};
1644#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1645struct __anonstruct_Read_57 {
1646 ULONG Length ;
1647 ULONG Key ;
1648 LARGE_INTEGER ByteOffset ;
1649};
1650#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1651struct __anonstruct_Write_58 {
1652 ULONG Length ;
1653 ULONG Key ;
1654 LARGE_INTEGER ByteOffset ;
1655};
1656#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1657struct __anonstruct_QueryFile_59 {
1658 ULONG Length ;
1659 FILE_INFORMATION_CLASS FileInformationClass ;
1660};
1661#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1662struct __anonstruct____missing_field_name_62 {
1663 BOOLEAN ReplaceIfExists ;
1664 BOOLEAN AdvanceOnly ;
1665};
1666#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1667union __anonunion____missing_field_name_61 {
1668 struct __anonstruct____missing_field_name_62 __annonCompField18 ;
1669 ULONG ClusterCount ;
1670 HANDLE DeleteHandle ;
1671};
1672#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1673struct __anonstruct_SetFile_60 {
1674 ULONG Length ;
1675 FILE_INFORMATION_CLASS FileInformationClass ;
1676 PFILE_OBJECT FileObject ;
1677 union __anonunion____missing_field_name_61 __annonCompField19 ;
1678};
1679#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1680struct __anonstruct_QueryVolume_63 {
1681 ULONG Length ;
1682 FS_INFORMATION_CLASS FsInformationClass ;
1683};
1684#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1685struct __anonstruct_DeviceIoControl_64 {
1686 ULONG OutputBufferLength ;
1687 ULONG InputBufferLength ;
1688 ULONG IoControlCode ;
1689 PVOID Type3InputBuffer ;
1690};
1691#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1692struct __anonstruct_QuerySecurity_65 {
1693 SECURITY_INFORMATION SecurityInformation ;
1694 ULONG Length ;
1695};
1696#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1697struct __anonstruct_SetSecurity_66 {
1698 SECURITY_INFORMATION SecurityInformation ;
1699 PSECURITY_DESCRIPTOR SecurityDescriptor ;
1700};
1701#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1702struct __anonstruct_MountVolume_67 {
1703 PVPB Vpb ;
1704 PDEVICE_OBJECT DeviceObject ;
1705};
1706#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1707struct __anonstruct_VerifyVolume_68 {
1708 PVPB Vpb ;
1709 PDEVICE_OBJECT DeviceObject ;
1710};
1711#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1712struct __anonstruct_Scsi_69 {
1713 struct _SCSI_REQUEST_BLOCK *Srb ;
1714};
1715#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1716struct __anonstruct_QueryDeviceRelations_70 {
1717 DEVICE_RELATION_TYPE Type ;
1718};
1719#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1720struct __anonstruct_QueryInterface_71 {
1721 GUID const *InterfaceType ;
1722 USHORT Size ;
1723 USHORT Version ;
1724 PINTERFACE Interface ;
1725 PVOID InterfaceSpecificData ;
1726};
1727#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1728struct __anonstruct_DeviceCapabilities_72 {
1729 PDEVICE_CAPABILITIES Capabilities ;
1730};
1731#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1732struct __anonstruct_FilterResourceRequirements_73 {
1733 PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList ;
1734};
1735#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1736struct __anonstruct_ReadWriteConfig_74 {
1737 ULONG WhichSpace ;
1738 PVOID Buffer ;
1739 ULONG Offset ;
1740 ULONG Length ;
1741};
1742#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1743struct __anonstruct_SetLock_75 {
1744 BOOLEAN Lock ;
1745};
1746#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1747struct __anonstruct_QueryId_76 {
1748 BUS_QUERY_ID_TYPE IdType ;
1749};
1750#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1751struct __anonstruct_QueryDeviceText_77 {
1752 DEVICE_TEXT_TYPE DeviceTextType ;
1753 LCID LocaleId ;
1754};
1755#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1756struct __anonstruct_UsageNotification_78 {
1757 BOOLEAN InPath ;
1758 BOOLEAN Reserved[3] ;
1759 DEVICE_USAGE_NOTIFICATION_TYPE Type ;
1760};
1761#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1762struct __anonstruct_WaitWake_79 {
1763 SYSTEM_POWER_STATE PowerState ;
1764};
1765#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1766struct __anonstruct_PowerSequence_80 {
1767 PPOWER_SEQUENCE PowerSequence ;
1768};
1769#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1770struct __anonstruct_Power_81 {
1771 ULONG SystemContext ;
1772 POWER_STATE_TYPE Type ;
1773 POWER_STATE State ;
1774 POWER_ACTION ShutdownType ;
1775};
1776#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1777struct __anonstruct_StartDevice_82 {
1778 PCM_RESOURCE_LIST AllocatedResources ;
1779 PCM_RESOURCE_LIST AllocatedResourcesTranslated ;
1780};
1781#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1782struct __anonstruct_WMI_83 {
1783 ULONG_PTR ProviderId ;
1784 PVOID DataPath ;
1785 ULONG BufferSize ;
1786 PVOID Buffer ;
1787};
1788#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1789struct __anonstruct_Others_84 {
1790 PVOID Argument1 ;
1791 PVOID Argument2 ;
1792 PVOID Argument3 ;
1793 PVOID Argument4 ;
1794};
1795#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1796union __anonunion_Parameters_55 {
1797 struct __anonstruct_Create_56 Create ;
1798 struct __anonstruct_Read_57 Read ;
1799 struct __anonstruct_Write_58 Write ;
1800 struct __anonstruct_QueryFile_59 QueryFile ;
1801 struct __anonstruct_SetFile_60 SetFile ;
1802 struct __anonstruct_QueryVolume_63 QueryVolume ;
1803 struct __anonstruct_DeviceIoControl_64 DeviceIoControl ;
1804 struct __anonstruct_QuerySecurity_65 QuerySecurity ;
1805 struct __anonstruct_SetSecurity_66 SetSecurity ;
1806 struct __anonstruct_MountVolume_67 MountVolume ;
1807 struct __anonstruct_VerifyVolume_68 VerifyVolume ;
1808 struct __anonstruct_Scsi_69 Scsi ;
1809 struct __anonstruct_QueryDeviceRelations_70 QueryDeviceRelations ;
1810 struct __anonstruct_QueryInterface_71 QueryInterface ;
1811 struct __anonstruct_DeviceCapabilities_72 DeviceCapabilities ;
1812 struct __anonstruct_FilterResourceRequirements_73 FilterResourceRequirements ;
1813 struct __anonstruct_ReadWriteConfig_74 ReadWriteConfig ;
1814 struct __anonstruct_SetLock_75 SetLock ;
1815 struct __anonstruct_QueryId_76 QueryId ;
1816 struct __anonstruct_QueryDeviceText_77 QueryDeviceText ;
1817 struct __anonstruct_UsageNotification_78 UsageNotification ;
1818 struct __anonstruct_WaitWake_79 WaitWake ;
1819 struct __anonstruct_PowerSequence_80 PowerSequence ;
1820 struct __anonstruct_Power_81 Power ;
1821 struct __anonstruct_StartDevice_82 StartDevice ;
1822 struct __anonstruct_WMI_83 WMI ;
1823 struct __anonstruct_Others_84 Others ;
1824};
1825#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1826struct _IO_STACK_LOCATION {
1827 UCHAR MajorFunction ;
1828 UCHAR MinorFunction ;
1829 UCHAR Flags ;
1830 UCHAR Control ;
1831 union __anonunion_Parameters_55 Parameters ;
1832 PDEVICE_OBJECT DeviceObject ;
1833 PFILE_OBJECT FileObject ;
1834 NTSTATUS (*CompletionRoutine)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
1835 PVOID Context ;
1836};
1837#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1838typedef struct _IO_STACK_LOCATION IO_STACK_LOCATION;
1839#line 14271 "C:/NTDDK/inc/ddk/ntddk.h"
1840typedef struct _IO_STACK_LOCATION *PIO_STACK_LOCATION;
1841#line 30 "C:/NTDDK/inc/poppack.h"
1842#pragma pack(pop)
1843#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
1844struct _CONFIGURATION_INFORMATION {
1845 ULONG DiskCount ;
1846 ULONG FloppyCount ;
1847 ULONG CdRomCount ;
1848 ULONG TapeCount ;
1849 ULONG ScsiPortCount ;
1850 ULONG SerialCount ;
1851 ULONG ParallelCount ;
1852 BOOLEAN AtDiskPrimaryAddressClaimed ;
1853 BOOLEAN AtDiskSecondaryAddressClaimed ;
1854 ULONG Version ;
1855 ULONG MediumChangerCount ;
1856};
1857#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
1858typedef struct _CONFIGURATION_INFORMATION CONFIGURATION_INFORMATION;
1859#line 14635 "C:/NTDDK/inc/ddk/ntddk.h"
1860typedef struct _CONFIGURATION_INFORMATION *PCONFIGURATION_INFORMATION;
1861#line 18321 "C:/NTDDK/inc/ddk/ntddk.h"
1862struct _OBJECT_HANDLE_INFORMATION {
1863 ULONG HandleAttributes ;
1864 ACCESS_MASK GrantedAccess ;
1865};
1866#line 18321 "C:/NTDDK/inc/ddk/ntddk.h"
1867typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION;
1868#line 248 "C:/NTDDK/inc/ntdddisk.h"
1869enum _MEDIA_TYPE {
1870 Unknown = 0,
1871 F5_1Pt2_512 = 1,
1872 F3_1Pt44_512 = 2,
1873 F3_2Pt88_512 = 3,
1874 F3_20Pt8_512 = 4,
1875 F3_720_512 = 5,
1876 F5_360_512 = 6,
1877 F5_320_512 = 7,
1878 F5_320_1024 = 8,
1879 F5_180_512 = 9,
1880 F5_160_512 = 10,
1881 RemovableMedia = 11,
1882 FixedMedia = 12,
1883 F3_120M_512 = 13,
1884 F3_640_512 = 14,
1885 F5_640_512 = 15,
1886 F5_720_512 = 16,
1887 F3_1Pt2_512 = 17,
1888 F3_1Pt23_1024 = 18,
1889 F5_1Pt23_1024 = 19,
1890 F3_128Mb_512 = 20,
1891 F3_230Mb_512 = 21,
1892 F8_256_128 = 22
1893} ;
1894#line 248 "C:/NTDDK/inc/ntdddisk.h"
1895typedef enum _MEDIA_TYPE MEDIA_TYPE;
1896#line 279 "C:/NTDDK/inc/ntdddisk.h"
1897struct _FORMAT_PARAMETERS {
1898 MEDIA_TYPE MediaType ;
1899 ULONG StartCylinderNumber ;
1900 ULONG EndCylinderNumber ;
1901 ULONG StartHeadNumber ;
1902 ULONG EndHeadNumber ;
1903};
1904#line 279 "C:/NTDDK/inc/ntdddisk.h"
1905typedef struct _FORMAT_PARAMETERS FORMAT_PARAMETERS;
1906#line 279 "C:/NTDDK/inc/ntdddisk.h"
1907typedef struct _FORMAT_PARAMETERS *PFORMAT_PARAMETERS;
1908#line 294 "C:/NTDDK/inc/ntdddisk.h"
1909typedef USHORT BAD_TRACK_NUMBER;
1910#line 295 "C:/NTDDK/inc/ntdddisk.h"
1911typedef USHORT *PBAD_TRACK_NUMBER;
1912#line 302 "C:/NTDDK/inc/ntdddisk.h"
1913struct _FORMAT_EX_PARAMETERS {
1914 MEDIA_TYPE MediaType ;
1915 ULONG StartCylinderNumber ;
1916 ULONG EndCylinderNumber ;
1917 ULONG StartHeadNumber ;
1918 ULONG EndHeadNumber ;
1919 USHORT FormatGapLength ;
1920 USHORT SectorsPerTrack ;
1921 USHORT SectorNumber[1] ;
1922};
1923#line 302 "C:/NTDDK/inc/ntdddisk.h"
1924typedef struct _FORMAT_EX_PARAMETERS FORMAT_EX_PARAMETERS;
1925#line 302 "C:/NTDDK/inc/ntdddisk.h"
1926typedef struct _FORMAT_EX_PARAMETERS *PFORMAT_EX_PARAMETERS;
1927#line 319 "C:/NTDDK/inc/ntdddisk.h"
1928struct _DISK_GEOMETRY {
1929 LARGE_INTEGER Cylinders ;
1930 MEDIA_TYPE MediaType ;
1931 ULONG TracksPerCylinder ;
1932 ULONG SectorsPerTrack ;
1933 ULONG BytesPerSector ;
1934};
1935#line 319 "C:/NTDDK/inc/ntdddisk.h"
1936typedef struct _DISK_GEOMETRY DISK_GEOMETRY;
1937#line 319 "C:/NTDDK/inc/ntdddisk.h"
1938typedef struct _DISK_GEOMETRY *PDISK_GEOMETRY;
1939#line 27 "C:/NTDDK/inc/pshpack1.h"
1940#pragma pack(push,1)
1941#line 30 "C:/NTDDK/inc/poppack.h"
1942#pragma pack(pop)
1943#line 27 "C:/NTDDK/inc/pshpack1.h"
1944#pragma pack(push,1)
1945#line 30 "C:/NTDDK/inc/poppack.h"
1946#pragma pack(pop)
1947#line 27 "C:/NTDDK/inc/pshpack1.h"
1948#pragma pack(push,1)
1949#line 30 "C:/NTDDK/inc/poppack.h"
1950#pragma pack(pop)
1951#line 27 "C:/NTDDK/inc/pshpack1.h"
1952#pragma pack(push,1)
1953#line 30 "C:/NTDDK/inc/poppack.h"
1954#pragma pack(pop)
1955#line 27 "C:/NTDDK/inc/pshpack1.h"
1956#pragma pack(push,1)
1957#line 30 "C:/NTDDK/inc/poppack.h"
1958#pragma pack(pop)
1959#line 164 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
1960struct _TRANSFER_BUFFER {
1961 PHYSICAL_ADDRESS Logical ;
1962 PVOID Virtual ;
1963};
1964#line 164 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
1965typedef struct _TRANSFER_BUFFER TRANSFER_BUFFER;
1966#line 180 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
1967struct _ACPI_FDI_DATA {
1968 ULONG DriveNumber ;
1969 ULONG DeviceType ;
1970 ULONG MaxCylinderNumber ;
1971 ULONG MaxSectorNumber ;
1972 ULONG MaxHeadNumber ;
1973 ULONG StepRateHeadUnloadTime ;
1974 ULONG HeadLoadTime ;
1975 ULONG MotorOffTime ;
1976 ULONG SectorLengthCode ;
1977 ULONG SectorPerTrack ;
1978 ULONG ReadWriteGapLength ;
1979 ULONG DataTransferLength ;
1980 ULONG FormatGapLength ;
1981 ULONG FormatFillCharacter ;
1982 ULONG HeadSettleTime ;
1983 ULONG MotorSettleTime ;
1984};
1985#line 180 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
1986typedef struct _ACPI_FDI_DATA ACPI_FDI_DATA;
1987#line 201
1988enum _ACPI_FDI_DEVICE_TYPE {
1989 CmosProblem = 0,
1990 Form525Capacity360 = 1,
1991 Form525Capacity1200 = 2,
1992 Form35Capacity720 = 3,
1993 Form35Capacity1440 = 4,
1994 Form35Capacity2880 = 5
1995} ;
1996#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
1997struct _FDC_INFO {
1998 UCHAR FloppyControllerType ;
1999 UCHAR SpeedsAvailable ;
2000 ULONG AdapterBufferSize ;
2001 INTERFACE_TYPE BusType ;
2002 ULONG BusNumber ;
2003 ULONG ControllerNumber ;
2004 ULONG PeripheralNumber ;
2005 ULONG UnitNumber ;
2006 ULONG MaxTransferSize ;
2007 BOOLEAN AcpiBios ;
2008 BOOLEAN AcpiFdiSupported ;
2009 ACPI_FDI_DATA AcpiFdiData ;
2010 ULONG BufferCount ;
2011 ULONG BufferSize ;
2012 TRANSFER_BUFFER BufferAddress[] ;
2013};
2014#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2015typedef struct _FDC_INFO FDC_INFO;
2016#line 212 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2017typedef struct _FDC_INFO *PFDC_INFO;
2018#line 240 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2019struct _FDC_ENABLE_PARMS {
2020 UCHAR DriveOnValue ;
2021 USHORT TimeToWait ;
2022 BOOLEAN MotorStarted ;
2023};
2024#line 240 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2025typedef struct _FDC_ENABLE_PARMS FDC_ENABLE_PARMS;
2026#line 252 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2027struct _FDC_DISK_CHANGE_PARMS {
2028 UCHAR DriveStatus ;
2029 UCHAR DriveOnValue ;
2030};
2031#line 252 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2032typedef struct _FDC_DISK_CHANGE_PARMS FDC_DISK_CHANGE_PARMS;
2033#line 261 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2034struct _ISSUE_FDC_COMMAND_PARMS {
2035 PUCHAR FifoInBuffer ;
2036 PUCHAR FifoOutBuffer ;
2037 PVOID IoHandle ;
2038 ULONG IoOffset ;
2039 ULONG TransferBytes ;
2040 ULONG TimeOut ;
2041};
2042#line 261 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2043typedef struct _ISSUE_FDC_COMMAND_PARMS ISSUE_FDC_COMMAND_PARMS;
2044#line 291 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2045struct _SET_HD_BIT_PARMS {
2046 BOOLEAN DriveType144MB ;
2047 BOOLEAN Media144MB ;
2048 BOOLEAN More120MB ;
2049 UCHAR DeviceUnit ;
2050 BOOLEAN ChangedHdBit ;
2051};
2052#line 291 "C:/NTDDK/src/storage/fdc/inc/ntddfdc.h"
2053typedef struct _SET_HD_BIT_PARMS SET_HD_BIT_PARMS;
2054#line 202 "C:/NTDDK/inc/mountmgr.h"
2055struct _MOUNTDEV_NAME {
2056 USHORT NameLength ;
2057 WCHAR Name[1] ;
2058};
2059#line 202 "C:/NTDDK/inc/mountmgr.h"
2060typedef struct _MOUNTDEV_NAME MOUNTDEV_NAME;
2061#line 202 "C:/NTDDK/inc/mountmgr.h"
2062typedef struct _MOUNTDEV_NAME *PMOUNTDEV_NAME;
2063#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
2064struct _MOUNTDEV_UNIQUE_ID {
2065 USHORT UniqueIdLength ;
2066 UCHAR UniqueId[1] ;
2067};
2068#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
2069typedef struct _MOUNTDEV_UNIQUE_ID MOUNTDEV_UNIQUE_ID;
2070#line 38 "C:/NTDDK/inc/ddk/mountdev.h"
2071typedef struct _MOUNTDEV_UNIQUE_ID *PMOUNTDEV_UNIQUE_ID;
2072#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
2073struct _MOUNTDEV_SUGGESTED_LINK_NAME {
2074 BOOLEAN UseOnlyIfThereAreNoOtherLinks ;
2075 USHORT NameLength ;
2076 WCHAR Name[1] ;
2077};
2078#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
2079typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME MOUNTDEV_SUGGESTED_LINK_NAME;
2080#line 66 "C:/NTDDK/inc/ddk/mountdev.h"
2081typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME *PMOUNTDEV_SUGGESTED_LINK_NAME;
2082#line 105 "./flo_data.h"
2083struct _BOOT_SECTOR_INFO {
2084 UCHAR JumpByte[1] ;
2085 UCHAR Ignore1[2] ;
2086 UCHAR OemData[8] ;
2087 UCHAR BytesPerSector[2] ;
2088 UCHAR Ignore2[6] ;
2089 UCHAR NumberOfSectors[2] ;
2090 UCHAR MediaByte[1] ;
2091 UCHAR Ignore3[2] ;
2092 UCHAR SectorsPerTrack[2] ;
2093 UCHAR NumberOfHeads[2] ;
2094};
2095#line 105 "./flo_data.h"
2096typedef struct _BOOT_SECTOR_INFO *PBOOT_SECTOR_INFO;
2097#line 194
2098enum _DRIVE_MEDIA_TYPE {
2099 Drive360Media160 = 0,
2100 Drive360Media180 = 1,
2101 Drive360Media320 = 2,
2102 Drive360Media32X = 3,
2103 Drive360Media360 = 4,
2104 Drive720Media720 = 5,
2105 Drive120Media160 = 6,
2106 Drive120Media180 = 7,
2107 Drive120Media320 = 8,
2108 Drive120Media32X = 9,
2109 Drive120Media360 = 10,
2110 Drive120Media120 = 11,
2111 Drive144Media720 = 12,
2112 Drive144Media144 = 13,
2113 Drive288Media720 = 14,
2114 Drive288Media144 = 15,
2115 Drive288Media288 = 16
2116} ;
2117#line 194 "./flo_data.h"
2118typedef enum _DRIVE_MEDIA_TYPE DRIVE_MEDIA_TYPE;
2119#line 217
2120enum _DRIVE_MEDIA_TYPE_NEC98 {
2121 Drive360Media160Nec98 = 0,
2122 Drive360Media180Nec98 = 1,
2123 Drive360Media320Nec98 = 2,
2124 Drive360Media32XNec98 = 3,
2125 Drive360Media360Nec98 = 4,
2126 Drive120Media160Nec98 = 5,
2127 Drive120Media180Nec98 = 6,
2128 Drive120Media320Nec98 = 7,
2129 Drive120Media32XNec98 = 8,
2130 Drive120Media360Nec98 = 9,
2131 Drive120Media640Nec98 = 10,
2132 Drive120Media720Nec98 = 11,
2133 Drive120Media120Nec98 = 12,
2134 Drive120Media123Nec98 = 13,
2135 Drive144Media640Nec98 = 14,
2136 Drive144Media720Nec98 = 15,
2137 Drive144Media120Nec98 = 16,
2138 Drive144Media123Nec98 = 17,
2139 Drive144Media144Nec98 = 18,
2140 Drive12EMedia120Nec98 = 19,
2141 Drive12EMedia123Nec98 = 20
2142} ;
2143#line 217 "./flo_data.h"
2144typedef enum _DRIVE_MEDIA_TYPE_NEC98 DRIVE_MEDIA_TYPE_NEC98;
2145#line 260 "./flo_data.h"
2146struct _DRIVE_MEDIA_LIMITS {
2147 DRIVE_MEDIA_TYPE HighestDriveMediaType ;
2148 DRIVE_MEDIA_TYPE LowestDriveMediaType ;
2149};
2150#line 260 "./flo_data.h"
2151typedef struct _DRIVE_MEDIA_LIMITS DRIVE_MEDIA_LIMITS;
2152#line 260 "./flo_data.h"
2153typedef struct _DRIVE_MEDIA_LIMITS *PDRIVE_MEDIA_LIMITS;
2154#line 277 "./flo_data.h"
2155struct _DRIVE_MEDIA_LIMITS_NEC98 {
2156 DRIVE_MEDIA_TYPE_NEC98 HighestDriveMediaType ;
2157 DRIVE_MEDIA_TYPE_NEC98 LowestDriveMediaType ;
2158};
2159#line 277 "./flo_data.h"
2160typedef struct _DRIVE_MEDIA_LIMITS_NEC98 DRIVE_MEDIA_LIMITS_NEC98;
2161#line 298 "./flo_data.h"
2162struct _DRIVE_MEDIA_CONSTANTS {
2163 MEDIA_TYPE MediaType ;
2164 UCHAR StepRateHeadUnloadTime ;
2165 UCHAR HeadLoadTime ;
2166 UCHAR MotorOffTime ;
2167 UCHAR SectorLengthCode ;
2168 USHORT BytesPerSector ;
2169 UCHAR SectorsPerTrack ;
2170 UCHAR ReadWriteGapLength ;
2171 UCHAR FormatGapLength ;
2172 UCHAR FormatFillCharacter ;
2173 UCHAR HeadSettleTime ;
2174 USHORT MotorSettleTimeRead ;
2175 USHORT MotorSettleTimeWrite ;
2176 UCHAR MaximumTrack ;
2177 UCHAR CylinderShift ;
2178 UCHAR DataTransferRate ;
2179 UCHAR NumberOfHeads ;
2180 UCHAR DataLength ;
2181 UCHAR MediaByte ;
2182 UCHAR SkewDelta ;
2183};
2184#line 298 "./flo_data.h"
2185typedef struct _DRIVE_MEDIA_CONSTANTS DRIVE_MEDIA_CONSTANTS;
2186#line 298 "./flo_data.h"
2187typedef struct _DRIVE_MEDIA_CONSTANTS *PDRIVE_MEDIA_CONSTANTS;
2188#line 528 "./flo_data.h"
2189struct _DISKETTE_EXTENSION {
2190 KSPIN_LOCK FlCancelSpinLock ;
2191 PDEVICE_OBJECT UnderlyingPDO ;
2192 PDEVICE_OBJECT TargetObject ;
2193 BOOLEAN IsStarted ;
2194 BOOLEAN IsRemoved ;
2195 BOOLEAN HoldNewRequests ;
2196 LIST_ENTRY NewRequestQueue ;
2197 KSPIN_LOCK NewRequestQueueSpinLock ;
2198 PDEVICE_OBJECT DeviceObject ;
2199 KSEMAPHORE RequestSemaphore ;
2200 KSPIN_LOCK ListSpinLock ;
2201 FAST_MUTEX ThreadReferenceMutex ;
2202 LONG ThreadReferenceCount ;
2203 PKTHREAD FloppyThread ;
2204 LIST_ENTRY ListEntry ;
2205 BOOLEAN HardwareFailed ;
2206 UCHAR HardwareFailCount ;
2207 ULONG MaxTransferSize ;
2208 UCHAR FifoBuffer[10] ;
2209 PUCHAR IoBuffer ;
2210 PMDL IoBufferMdl ;
2211 ULONG IoBufferSize ;
2212 PDRIVER_OBJECT DriverObject ;
2213 DRIVE_MEDIA_TYPE LastDriveMediaType ;
2214 BOOLEAN FloppyControllerAllocated ;
2215 BOOLEAN ACPI_BIOS ;
2216 UCHAR DriveType ;
2217 ULONG BytesPerSector ;
2218 ULONG ByteCapacity ;
2219 MEDIA_TYPE MediaType ;
2220 DRIVE_MEDIA_TYPE DriveMediaType ;
2221 UCHAR DeviceUnit ;
2222 UCHAR DriveOnValue ;
2223 BOOLEAN IsReadOnly ;
2224 DRIVE_MEDIA_CONSTANTS BiosDriveMediaConstants ;
2225 DRIVE_MEDIA_CONSTANTS DriveMediaConstants ;
2226 UCHAR PerpendicularMode ;
2227 BOOLEAN ControllerConfigurable ;
2228 UNICODE_STRING DeviceName ;
2229 UNICODE_STRING InterfaceString ;
2230 UNICODE_STRING ArcName ;
2231 BOOLEAN ReleaseFdcWithMotorRunning ;
2232 BOOLEAN PoweringDown ;
2233 FAST_MUTEX PowerDownMutex ;
2234 FAST_MUTEX HoldNewReqMutex ;
2235};
2236#line 528 "./flo_data.h"
2237typedef struct _DISKETTE_EXTENSION DISKETTE_EXTENSION;
2238#line 584 "./flo_data.h"
2239typedef DISKETTE_EXTENSION *PDISKETTE_EXTENSION;
2240#line 591 "./flo_data.h"
2241struct _SENSE_DEVISE_STATUS_PTOS {
2242 UCHAR ST3_PTOS ;
2243};
2244#line 591 "./flo_data.h"
2245typedef struct _SENSE_DEVISE_STATUS_PTOS SENSE_DEVISE_STATUS_PTOS;
2246#line 591 "./flo_data.h"
2247typedef struct _SENSE_DEVISE_STATUS_PTOS *PSENSE_DEVISE_STATUS_PTOS;
2248#line 33 "C:/Program Files/Microsoft Visual Studio/VC98/include/excpt.h"
2249#pragma pack(push,8)
2250#line 156
2251#pragma pack(pop)
2252#line 222 "C:/NTDDK/inc/ddk/ntddk.h"
2253struct _KAPC;
2254#line 292
2255struct _KDPC;
2256#line 27 "C:/NTDDK/inc/pshpack4.h"
2257#pragma pack(push,4)
2258#line 30 "C:/NTDDK/inc/poppack.h"
2259#pragma pack(pop)
2260#line 27 "C:/NTDDK/inc/pshpack4.h"
2261#pragma pack(push,4)
2262#line 30 "C:/NTDDK/inc/poppack.h"
2263#pragma pack(pop)
2264#line 27 "C:/NTDDK/inc/pshpack1.h"
2265#pragma pack(push,1)
2266#line 30 "C:/NTDDK/inc/poppack.h"
2267#pragma pack(pop)
2268#line 12399 "C:/NTDDK/inc/ddk/ntddk.h"
2269struct _DRIVER_OBJECT;
2270#line 12906
2271struct _DEVICE_OBJECT;
2272#line 12908
2273struct _DRIVER_OBJECT;
2274#line 12911
2275struct _FILE_OBJECT;
2276#line 12912
2277struct _IRP;
2278#line 12913
2279struct _SCSI_REQUEST_BLOCK;
2280#line 27 "C:/NTDDK/inc/pshpack4.h"
2281#pragma pack(push,4)
2282#line 30 "C:/NTDDK/inc/poppack.h"
2283#pragma pack(pop)
2284#line 307 "C:/NTDDK/inc/stdio.h"
2285extern int ( __attribute__((__cdecl__)) sprintf)(char * , char const * , ...) ;
2286#line 351
2287extern int ( __attribute__((__cdecl__)) swprintf)(wchar_t * , wchar_t const * , ...) ;
2288#line 832 "C:/NTDDK/inc/ntdef.h"
2289#pragma warning(push)
2290#line 834
2291#pragma warning(disable:4035)
2292#line 835 "C:/NTDDK/inc/ntdef.h"
2293__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShllMod32___0)(ULONGLONG Value ,
2294 ULONG ShiftCount )
2295{
2296
2297 {
2298#line 850
2299 return (0ULL);
2300}
2301}
2302#line 845 "C:/NTDDK/inc/ntdef.h"
2303__inline LONGLONG ( __attribute__((__stdcall__)) Int64ShraMod32___0)(LONGLONG Value ,
2304 ULONG ShiftCount )
2305{
2306
2307 {
2308#line 860
2309 return (0LL);
2310}
2311}
2312#line 855 "C:/NTDDK/inc/ntdef.h"
2313__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShrlMod32___0)(ULONGLONG Value ,
2314 ULONG ShiftCount )
2315{
2316
2317 {
2318#line 870
2319 return (0ULL);
2320}
2321}
2322#line 873
2323#pragma warning(pop)
2324#line 1094 "C:/NTDDK/inc/ntdef.h"
2325__inline void ListEntry32To64(PLIST_ENTRY32 l32 , PLIST_ENTRY64 l64 )
2326{ ULONG __cil_tmp3 ;
2327 long __cil_tmp4 ;
2328 long long __cil_tmp5 ;
2329 unsigned int __cil_tmp6 ;
2330 unsigned int __cil_tmp7 ;
2331 unsigned int __cil_tmp8 ;
2332 unsigned int __cil_tmp9 ;
2333 ULONG __cil_tmp10 ;
2334 long __cil_tmp11 ;
2335 long long __cil_tmp12 ;
2336 ULONG *mem_13 ;
2337 ULONGLONG *mem_14 ;
2338 ULONG *mem_15 ;
2339 ULONGLONG *mem_16 ;
2340
2341 {
2342#line 1101
2343 mem_13 = (ULONG *)l32;
2344#line 1101
2345 __cil_tmp3 = *mem_13;
2346#line 1101
2347 __cil_tmp4 = (long )__cil_tmp3;
2348#line 1101
2349 __cil_tmp5 = (long long )__cil_tmp4;
2350#line 1101
2351 mem_14 = (ULONGLONG *)l64;
2352#line 1101
2353 *mem_14 = (unsigned long long )__cil_tmp5;
2354#line 1102
2355 __cil_tmp6 = (unsigned int )l64;
2356#line 1102
2357 __cil_tmp7 = __cil_tmp6 + 8;
2358#line 1102
2359 __cil_tmp8 = (unsigned int )l32;
2360#line 1102
2361 __cil_tmp9 = __cil_tmp8 + 4;
2362#line 1102
2363 mem_15 = (ULONG *)__cil_tmp9;
2364#line 1102
2365 __cil_tmp10 = *mem_15;
2366#line 1102
2367 __cil_tmp11 = (long )__cil_tmp10;
2368#line 1102
2369 __cil_tmp12 = (long long )__cil_tmp11;
2370#line 1102
2371 mem_16 = (ULONGLONG *)__cil_tmp7;
2372#line 1102
2373 *mem_16 = (unsigned long long )__cil_tmp12;
2374#line 1105
2375 return;
2376}
2377}
2378#line 1105 "C:/NTDDK/inc/ntdef.h"
2379__inline void ListEntry64To32(PLIST_ENTRY64 l64 , PLIST_ENTRY32 l32 )
2380{ ULONGLONG __cil_tmp3 ;
2381 unsigned int __cil_tmp4 ;
2382 unsigned int __cil_tmp5 ;
2383 unsigned int __cil_tmp6 ;
2384 unsigned int __cil_tmp7 ;
2385 ULONGLONG __cil_tmp8 ;
2386 ULONGLONG *mem_9 ;
2387 ULONG *mem_10 ;
2388 ULONGLONG *mem_11 ;
2389 ULONG *mem_12 ;
2390
2391 {
2392#line 1112
2393 mem_9 = (ULONGLONG *)l64;
2394#line 1112
2395 __cil_tmp3 = *mem_9;
2396#line 1112
2397 mem_10 = (ULONG *)l32;
2398#line 1112
2399 *mem_10 = (unsigned long )__cil_tmp3;
2400#line 1113
2401 __cil_tmp4 = (unsigned int )l32;
2402#line 1113
2403 __cil_tmp5 = __cil_tmp4 + 4;
2404#line 1113
2405 __cil_tmp6 = (unsigned int )l64;
2406#line 1113
2407 __cil_tmp7 = __cil_tmp6 + 8;
2408#line 1113
2409 mem_11 = (ULONGLONG *)__cil_tmp7;
2410#line 1113
2411 __cil_tmp8 = *mem_11;
2412#line 1113
2413 mem_12 = (ULONG *)__cil_tmp5;
2414#line 1113
2415 *mem_12 = (unsigned long )__cil_tmp8;
2416#line 1116
2417 return;
2418}
2419}
2420#line 93 "C:/NTDDK/inc/string.h"
2421extern void *( __attribute__((__cdecl__)) memcpy)(void * , void const * , size_t ) ;
2422#line 95
2423extern void *( __attribute__((__cdecl__)) memset)(void * , int , size_t ) ;
2424#line 110
2425extern void *( __attribute__((__cdecl__)) memmove)(void * , void const * , size_t ) ;
2426#line 101 "C:/NTDDK/inc/ddk/ntddk.h"
2427extern PKTHREAD ( __attribute__((__stdcall__)) KeGetCurrentThread)() ;
2428#line 25 "C:/NTDDK/inc/pshpack4.h"
2429#pragma warning(disable:4103)
2430#line 28 "C:/NTDDK/inc/poppack.h"
2431#pragma warning(disable:4103)
2432#line 1136 "C:/NTDDK/inc/ddk/ntddk.h"
2433 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo ,
2434 PCWSTR Path ,
2435 PRTL_QUERY_REGISTRY_TABLE QueryTable ,
2436 PVOID Context ,
2437 PVOID Environment ) ;
2438#line 1159
2439 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo ,
2440 PCWSTR Path ,
2441 PCWSTR ValueName ) ;
2442#line 1264
2443 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString ,
2444 PCSZ SourceString ) ;
2445#line 1280
2446 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString ,
2447 PCWSTR SourceString ) ;
2448#line 1335
2449 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString ,
2450 PANSI_STRING SourceString ,
2451 BOOLEAN AllocateDestinationString ) ;
2452#line 1394
2453 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString ,
2454 PUNICODE_STRING SourceString ) ;
2455#line 1429
2456 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) ;
2457#line 1516
2458 __attribute__((__dllimport__)) SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const *Source1 ,
2459 void const *Source2 ,
2460 SIZE_T Length ) ;
2461#line 1718 "C:/NTDDK/inc/ddk/ntddk.h"
2462__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerAdd)(LARGE_INTEGER Addend1 ,
2463 LARGE_INTEGER Addend2 )
2464{ LARGE_INTEGER Sum ;
2465
2466 {
2467#line 1728
2468 Sum.QuadPart = Addend1.QuadPart + Addend2.QuadPart;
2469#line 1729
2470 return (Sum);
2471}
2472}
2473#line 1736 "C:/NTDDK/inc/ddk/ntddk.h"
2474__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedIntegerMultiply)(LONG Multiplicand ,
2475 LONG Multiplier )
2476{ LARGE_INTEGER Product ;
2477 unsigned long long __cil_tmp4 ;
2478 long long __cil_tmp5 ;
2479 unsigned long long __cil_tmp6 ;
2480 unsigned long long __cil_tmp7 ;
2481
2482 {
2483#line 1746
2484 __cil_tmp4 = (unsigned long long )Multiplier;
2485#line 1746
2486 __cil_tmp5 = (long long )Multiplicand;
2487#line 1746
2488 __cil_tmp6 = (unsigned long long )__cil_tmp5;
2489#line 1746
2490 __cil_tmp7 = __cil_tmp6 * __cil_tmp4;
2491#line 1746
2492 Product.QuadPart = (long long )__cil_tmp7;
2493#line 1747
2494 return (Product);
2495}
2496}
2497#line 1754 "C:/NTDDK/inc/ddk/ntddk.h"
2498__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlEnlargedUnsignedMultiply)(ULONG Multiplicand ,
2499 ULONG Multiplier )
2500{ LARGE_INTEGER Product ;
2501 unsigned long long __cil_tmp4 ;
2502 unsigned long long __cil_tmp5 ;
2503 unsigned long long __cil_tmp6 ;
2504
2505 {
2506#line 1764
2507 __cil_tmp4 = (unsigned long long )Multiplier;
2508#line 1764
2509 __cil_tmp5 = (unsigned long long )Multiplicand;
2510#line 1764
2511 __cil_tmp6 = __cil_tmp5 * __cil_tmp4;
2512#line 1764
2513 Product.QuadPart = (long long )__cil_tmp6;
2514#line 1765
2515 return (Product);
2516}
2517}
2518#line 1772 "C:/NTDDK/inc/ddk/ntddk.h"
2519__inline ULONG ( __attribute__((__stdcall__)) RtlEnlargedUnsignedDivide)(ULARGE_INTEGER Dividend ,
2520 ULONG Divisor ,
2521 PULONG Remainder )
2522{ ULONG Quotient ;
2523 unsigned long long __cil_tmp5 ;
2524 ULONGLONG __cil_tmp6 ;
2525 void *__cil_tmp7 ;
2526 CHAR *__cil_tmp8 ;
2527 unsigned int __cil_tmp9 ;
2528 CHAR *__cil_tmp10 ;
2529 unsigned int __cil_tmp11 ;
2530 unsigned long long __cil_tmp12 ;
2531 unsigned long long __cil_tmp13 ;
2532
2533 {
2534#line 1783
2535 __cil_tmp5 = (unsigned long long )Divisor;
2536#line 1783
2537 __cil_tmp6 = Dividend.QuadPart / __cil_tmp5;
2538#line 1783
2539 Quotient = (unsigned long )__cil_tmp6;
2540 {
2541#line 1784
2542 __cil_tmp7 = (void *)0;
2543#line 1784
2544 __cil_tmp8 = (CHAR *)__cil_tmp7;
2545#line 1784
2546 __cil_tmp9 = (unsigned int )__cil_tmp8;
2547#line 1784
2548 __cil_tmp10 = (CHAR *)Remainder;
2549#line 1784
2550 __cil_tmp11 = (unsigned int )__cil_tmp10;
2551#line 1784
2552 if (__cil_tmp11 != __cil_tmp9) {
2553#line 1786
2554 __cil_tmp12 = (unsigned long long )Divisor;
2555#line 1786
2556 __cil_tmp13 = Dividend.QuadPart % __cil_tmp12;
2557#line 1786
2558 *Remainder = (unsigned long )__cil_tmp13;
2559 } else {
2560
2561 }
2562 }
2563#line 1789
2564 return (Quotient);
2565}
2566}
2567#line 1796 "C:/NTDDK/inc/ddk/ntddk.h"
2568__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerNegate)(LARGE_INTEGER Subtrahend )
2569{ LARGE_INTEGER Difference ;
2570
2571 {
2572#line 1805
2573 Difference.QuadPart = - Subtrahend.QuadPart;
2574#line 1806
2575 return (Difference);
2576}
2577}
2578#line 1813 "C:/NTDDK/inc/ddk/ntddk.h"
2579__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerSubtract)(LARGE_INTEGER Minuend ,
2580 LARGE_INTEGER Subtrahend )
2581{ LARGE_INTEGER Difference ;
2582
2583 {
2584#line 1823
2585 Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart;
2586#line 1824
2587 return (Difference);
2588}
2589}
2590#line 1953
2591#pragma warning(push)
2592#line 1955
2593#pragma warning(disable:4035)
2594#line 1960 "C:/NTDDK/inc/ddk/ntddk.h"
2595__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertLongToLargeInteger)(LONG SignedInteger )
2596{ LARGE_INTEGER stub ;
2597
2598 {
2599#line 1971
2600 return (stub);
2601}
2602}
2603#line 1973 "C:/NTDDK/inc/ddk/ntddk.h"
2604__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlConvertUlongToLargeInteger)(ULONG UnsignedInteger )
2605{ LARGE_INTEGER stub ;
2606
2607 {
2608#line 1984
2609 return (stub);
2610}
2611}
2612#line 1986 "C:/NTDDK/inc/ddk/ntddk.h"
2613__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftLeft)(LARGE_INTEGER LargeInteger ,
2614 CCHAR ShiftCount )
2615{ LARGE_INTEGER stub ;
2616
2617 {
2618#line 2013
2619 return (stub);
2620}
2621}
2622#line 2015 "C:/NTDDK/inc/ddk/ntddk.h"
2623__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerShiftRight)(LARGE_INTEGER LargeInteger ,
2624 CCHAR ShiftCount )
2625{ LARGE_INTEGER stub ;
2626
2627 {
2628#line 2024
2629 return (stub);
2630}
2631}
2632#line 2026 "C:/NTDDK/inc/ddk/ntddk.h"
2633__inline LARGE_INTEGER ( __attribute__((__stdcall__)) RtlLargeIntegerArithmeticShift)(LARGE_INTEGER LargeInteger ,
2634 CCHAR ShiftCount )
2635{ LARGE_INTEGER stub ;
2636
2637 {
2638#line 2035
2639 return (stub);
2640}
2641}
2642#line 2038
2643#pragma warning(pop)
2644#line 2796 "C:/NTDDK/inc/ddk/ntddk.h"
2645__inline LUID ( __attribute__((__stdcall__)) RtlConvertLongToLuid)(LONG Long )
2646{ LUID TempLuid ;
2647 LARGE_INTEGER TempLi ;
2648
2649 {
2650 {
2651#line 2805
2652 TempLi = RtlConvertLongToLargeInteger(Long);
2653#line 2806
2654 TempLuid.LowPart = TempLi.__annonCompField1.LowPart;
2655#line 2807
2656 TempLuid.HighPart = TempLi.__annonCompField1.HighPart;
2657 }
2658#line 2808
2659 return (TempLuid);
2660}
2661}
2662#line 2811 "C:/NTDDK/inc/ddk/ntddk.h"
2663__inline LUID ( __attribute__((__stdcall__)) RtlConvertUlongToLuid)(ULONG Ulong )
2664{ LUID TempLuid ;
2665
2666 {
2667#line 2819
2668 TempLuid.LowPart = Ulong;
2669#line 2820
2670 TempLuid.HighPart = 0L;
2671#line 2821
2672 return (TempLuid);
2673}
2674}
2675#line 5211
2676extern __attribute__((__dllimport__)) LONG ( __attribute__((__fastcall__)) InterlockedExchange)(PLONG Target ,
2677 LONG Value ) ;
2678#line 5253
2679#pragma warning(disable:4035)
2680#line 5271 "C:/NTDDK/inc/ddk/ntddk.h"
2681__inline ULONG KeGetCurrentProcessorNumber(void)
2682{
2683
2684 {
2685#line 5274
2686 return (0UL);
2687}
2688}
2689#line 7015
2690#pragma warning(push)
2691#line 7017
2692#pragma warning(disable:4164)
2693#line 7020
2694#pragma function(_enable)
2695#line 7021
2696#pragma function(_disable)
2697#line 7025
2698#pragma warning(pop)
2699#line 25 "C:/NTDDK/inc/pshpack4.h"
2700#pragma warning(disable:4103)
2701#line 28 "C:/NTDDK/inc/poppack.h"
2702#pragma warning(disable:4103)
2703#line 25 "C:/NTDDK/inc/pshpack1.h"
2704#pragma warning(disable:4103)
2705#line 28 "C:/NTDDK/inc/poppack.h"
2706#pragma warning(disable:4103)
2707#line 9415 "C:/NTDDK/inc/ddk/ntddk.h"
2708 __attribute__((__dllimport__)) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type ,
2709 BOOLEAN State ) ;
2710#line 9451
2711 __attribute__((__dllimport__)) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment ,
2712 BOOLEAN Wait ) ;
2713#line 9483
2714 __attribute__((__dllimport__)) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore ,
2715 LONG Count , LONG Limit ) ;
2716#line 9497
2717 __attribute__((__dllimport__)) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment ,
2718 LONG Adjustment , BOOLEAN Wait ) ;
2719#line 9506
2720 __attribute__((__dllimport__)) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode ,
2721 BOOLEAN Alertable ,
2722 PLARGE_INTEGER Interval ) ;
2723#line 9527
2724extern __attribute__((__dllimport__)) KPRIORITY KeSetPriorityThread(PKTHREAD Thread ,
2725 KPRIORITY Priority ) ;
2726#line 9681
2727 __attribute__((__dllimport__)) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason ,
2728 KPROCESSOR_MODE WaitMode ,
2729 BOOLEAN Alertable ,
2730 PLARGE_INTEGER Timeout ) ;
2731#line 9711
2732 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) ;
2733#line 9737
2734extern __attribute__((__dllimport__)) KIRQL ( __attribute__((__fastcall__)) KfAcquireSpinLock)(PKSPIN_LOCK SpinLock ) ;
2735#line 9744
2736 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock ,
2737 KIRQL NewIrql ) ;
2738#line 10159
2739 __attribute__((__dllimport__)) PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType ,
2740 SIZE_T NumberOfBytes ,
2741 ULONG Tag ) ;
2742#line 10236
2743 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) ;
2744#line 10315
2745 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) ;
2746#line 10322
2747 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) ;
2748#line 10406
2749 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead ,
2750 PLIST_ENTRY ListEntry ,
2751 PKSPIN_LOCK Lock ) ;
2752#line 10415
2753 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead ,
2754 PLIST_ENTRY ListEntry ,
2755 PKSPIN_LOCK Lock ) ;
2756#line 10424
2757 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead ,
2758 PKSPIN_LOCK Lock ) ;
2759#line 10547
2760extern __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPopEntrySList)(PSLIST_HEADER ListHead ,
2761 PKSPIN_LOCK Lock ) ;
2762#line 10555
2763extern __attribute__((__dllimport__)) PSINGLE_LIST_ENTRY ( __attribute__((__fastcall__)) ExInterlockedPushEntrySList)(PSLIST_HEADER ListHead ,
2764 PSINGLE_LIST_ENTRY ListEntry ,
2765 PKSPIN_LOCK Lock ) ;
2766#line 10643 "C:/NTDDK/inc/ddk/ntddk.h"
2767__inline PVOID ExAllocateFromNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside )
2768{ PVOID Entry ;
2769 PSINGLE_LIST_ENTRY tmp ;
2770 unsigned int __cil_tmp4 ;
2771 unsigned int __cil_tmp5 ;
2772 unsigned int __cil_tmp6 ;
2773 unsigned int __cil_tmp7 ;
2774 unsigned int __cil_tmp8 ;
2775 unsigned int __cil_tmp9 ;
2776 ULONG __cil_tmp10 ;
2777 SLIST_HEADER *__cil_tmp11 ;
2778 unsigned int __cil_tmp12 ;
2779 unsigned int __cil_tmp13 ;
2780 KSPIN_LOCK *__cil_tmp14 ;
2781 void *__cil_tmp15 ;
2782 unsigned int __cil_tmp16 ;
2783 unsigned int __cil_tmp17 ;
2784 unsigned int __cil_tmp18 ;
2785 unsigned int __cil_tmp19 ;
2786 unsigned int __cil_tmp20 ;
2787 unsigned int __cil_tmp21 ;
2788 unsigned int __cil_tmp22 ;
2789 unsigned int __cil_tmp23 ;
2790 ULONG __cil_tmp24 ;
2791 unsigned int __cil_tmp25 ;
2792 unsigned int __cil_tmp26 ;
2793 unsigned int __cil_tmp27 ;
2794 PVOID (*__cil_tmp28)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
2795 unsigned int __cil_tmp29 ;
2796 unsigned int __cil_tmp30 ;
2797 unsigned int __cil_tmp31 ;
2798 POOL_TYPE __cil_tmp32 ;
2799 unsigned int __cil_tmp33 ;
2800 unsigned int __cil_tmp34 ;
2801 unsigned int __cil_tmp35 ;
2802 ULONG __cil_tmp36 ;
2803 unsigned int __cil_tmp37 ;
2804 unsigned int __cil_tmp38 ;
2805 unsigned int __cil_tmp39 ;
2806 ULONG __cil_tmp40 ;
2807 ULONG *mem_41 ;
2808 ULONG *mem_42 ;
2809 ULONG *mem_43 ;
2810 ULONG *mem_44 ;
2811 PVOID (**mem_45)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ) ;
2812 POOL_TYPE *mem_46 ;
2813 ULONG *mem_47 ;
2814 ULONG *mem_48 ;
2815
2816 {
2817 {
2818#line 10672
2819 __cil_tmp4 = 0 + 12;
2820#line 10672
2821 __cil_tmp5 = (unsigned int )Lookaside;
2822#line 10672
2823 __cil_tmp6 = __cil_tmp5 + __cil_tmp4;
2824#line 10672
2825 __cil_tmp7 = 0 + 12;
2826#line 10672
2827 __cil_tmp8 = (unsigned int )Lookaside;
2828#line 10672
2829 __cil_tmp9 = __cil_tmp8 + __cil_tmp7;
2830#line 10672
2831 mem_41 = (ULONG *)__cil_tmp9;
2832#line 10672
2833 __cil_tmp10 = *mem_41;
2834#line 10672
2835 mem_42 = (ULONG *)__cil_tmp6;
2836#line 10672
2837 *mem_42 = __cil_tmp10 + 1UL;
2838#line 10673
2839 __cil_tmp11 = (SLIST_HEADER *)Lookaside;
2840#line 10673
2841 __cil_tmp12 = (unsigned int )Lookaside;
2842#line 10673
2843 __cil_tmp13 = __cil_tmp12 + 100;
2844#line 10673
2845 __cil_tmp14 = (KSPIN_LOCK *)__cil_tmp13;
2846#line 10673
2847 tmp = ExInterlockedPopEntrySList(__cil_tmp11, __cil_tmp14);
2848#line 10673
2849 Entry = (void *)tmp;
2850 }
2851 {
2852#line 10674
2853 __cil_tmp15 = (void *)0;
2854#line 10674
2855 __cil_tmp16 = (unsigned int )__cil_tmp15;
2856#line 10674
2857 __cil_tmp17 = (unsigned int )Entry;
2858#line 10674
2859 if (__cil_tmp17 == __cil_tmp16) {
2860 {
2861#line 10675
2862 __cil_tmp18 = 0 + 16;
2863#line 10675
2864 __cil_tmp19 = (unsigned int )Lookaside;
2865#line 10675
2866 __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
2867#line 10675
2868 __cil_tmp21 = 0 + 16;
2869#line 10675
2870 __cil_tmp22 = (unsigned int )Lookaside;
2871#line 10675
2872 __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
2873#line 10675
2874 mem_43 = (ULONG *)__cil_tmp23;
2875#line 10675
2876 __cil_tmp24 = *mem_43;
2877#line 10675
2878 mem_44 = (ULONG *)__cil_tmp20;
2879#line 10675
2880 *mem_44 = __cil_tmp24 + 1UL;
2881#line 10676
2882 __cil_tmp25 = 0 + 68;
2883#line 10676
2884 __cil_tmp26 = (unsigned int )Lookaside;
2885#line 10676
2886 __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
2887#line 10676
2888 mem_45 = (PVOID (**)(POOL_TYPE PoolType , SIZE_T NumberOfBytes , ULONG Tag ))__cil_tmp27;
2889#line 10676
2890 __cil_tmp28 = *mem_45;
2891#line 10676
2892 __cil_tmp29 = 0 + 28;
2893#line 10676
2894 __cil_tmp30 = (unsigned int )Lookaside;
2895#line 10676
2896 __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
2897#line 10676
2898 mem_46 = (POOL_TYPE *)__cil_tmp31;
2899#line 10676
2900 __cil_tmp32 = *mem_46;
2901#line 10676
2902 __cil_tmp33 = 0 + 64;
2903#line 10676
2904 __cil_tmp34 = (unsigned int )Lookaside;
2905#line 10676
2906 __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
2907#line 10676
2908 mem_47 = (ULONG *)__cil_tmp35;
2909#line 10676
2910 __cil_tmp36 = *mem_47;
2911#line 10676
2912 __cil_tmp37 = 0 + 60;
2913#line 10676
2914 __cil_tmp38 = (unsigned int )Lookaside;
2915#line 10676
2916 __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
2917#line 10676
2918 mem_48 = (ULONG *)__cil_tmp39;
2919#line 10676
2920 __cil_tmp40 = *mem_48;
2921#line 10676
2922 Entry = (*__cil_tmp28)(__cil_tmp32, __cil_tmp36, __cil_tmp40);
2923 }
2924 } else {
2925
2926 }
2927 }
2928#line 10681
2929 return (Entry);
2930}
2931}
2932#line 10684 "C:/NTDDK/inc/ddk/ntddk.h"
2933__inline void ExFreeToNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside , PVOID Entry )
2934{ unsigned int __cil_tmp3 ;
2935 unsigned int __cil_tmp4 ;
2936 unsigned int __cil_tmp5 ;
2937 unsigned int __cil_tmp6 ;
2938 unsigned int __cil_tmp7 ;
2939 unsigned int __cil_tmp8 ;
2940 ULONG __cil_tmp9 ;
2941 unsigned int __cil_tmp10 ;
2942 unsigned int __cil_tmp11 ;
2943 unsigned int __cil_tmp12 ;
2944 USHORT __cil_tmp13 ;
2945 int __cil_tmp14 ;
2946 unsigned int __cil_tmp15 ;
2947 unsigned int __cil_tmp16 ;
2948 unsigned int __cil_tmp17 ;
2949 unsigned int __cil_tmp18 ;
2950 unsigned int __cil_tmp19 ;
2951 USHORT __cil_tmp20 ;
2952 int __cil_tmp21 ;
2953 unsigned int __cil_tmp22 ;
2954 unsigned int __cil_tmp23 ;
2955 unsigned int __cil_tmp24 ;
2956 unsigned int __cil_tmp25 ;
2957 unsigned int __cil_tmp26 ;
2958 unsigned int __cil_tmp27 ;
2959 ULONG __cil_tmp28 ;
2960 unsigned int __cil_tmp29 ;
2961 unsigned int __cil_tmp30 ;
2962 unsigned int __cil_tmp31 ;
2963 void (*__cil_tmp32)(PVOID Buffer ) ;
2964 SLIST_HEADER *__cil_tmp33 ;
2965 struct _SINGLE_LIST_ENTRY *__cil_tmp34 ;
2966 unsigned int __cil_tmp35 ;
2967 unsigned int __cil_tmp36 ;
2968 KSPIN_LOCK *__cil_tmp37 ;
2969 ULONG *mem_38 ;
2970 ULONG *mem_39 ;
2971 USHORT *mem_40 ;
2972 USHORT *mem_41 ;
2973 ULONG *mem_42 ;
2974 ULONG *mem_43 ;
2975 void (**mem_44)(PVOID Buffer ) ;
2976
2977 {
2978#line 10713
2979 __cil_tmp3 = 0 + 20;
2980#line 10713
2981 __cil_tmp4 = (unsigned int )Lookaside;
2982#line 10713
2983 __cil_tmp5 = __cil_tmp4 + __cil_tmp3;
2984#line 10713
2985 __cil_tmp6 = 0 + 20;
2986#line 10713
2987 __cil_tmp7 = (unsigned int )Lookaside;
2988#line 10713
2989 __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
2990#line 10713
2991 mem_38 = (ULONG *)__cil_tmp8;
2992#line 10713
2993 __cil_tmp9 = *mem_38;
2994#line 10713
2995 mem_39 = (ULONG *)__cil_tmp5;
2996#line 10713
2997 *mem_39 = __cil_tmp9 + 1UL;
2998 {
2999#line 10714
3000 __cil_tmp10 = 0 + 8;
3001#line 10714
3002 __cil_tmp11 = (unsigned int )Lookaside;
3003#line 10714
3004 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
3005#line 10714
3006 mem_40 = (USHORT *)__cil_tmp12;
3007#line 10714
3008 __cil_tmp13 = *mem_40;
3009#line 10714
3010 __cil_tmp14 = (int )__cil_tmp13;
3011#line 10714
3012 __cil_tmp15 = 0 + 4;
3013#line 10714
3014 __cil_tmp16 = 0 + __cil_tmp15;
3015#line 10714
3016 __cil_tmp17 = 0 + __cil_tmp16;
3017#line 10714
3018 __cil_tmp18 = (unsigned int )Lookaside;
3019#line 10714
3020 __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
3021#line 10714
3022 mem_41 = (USHORT *)__cil_tmp19;
3023#line 10714
3024 __cil_tmp20 = *mem_41;
3025#line 10714
3026 __cil_tmp21 = (int )__cil_tmp20;
3027#line 10714
3028 if (__cil_tmp21 >= __cil_tmp14) {
3029 {
3030#line 10715
3031 __cil_tmp22 = 0 + 24;
3032#line 10715
3033 __cil_tmp23 = (unsigned int )Lookaside;
3034#line 10715
3035 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
3036#line 10715
3037 __cil_tmp25 = 0 + 24;
3038#line 10715
3039 __cil_tmp26 = (unsigned int )Lookaside;
3040#line 10715
3041 __cil_tmp27 = __cil_tmp26 + __cil_tmp25;
3042#line 10715
3043 mem_42 = (ULONG *)__cil_tmp27;
3044#line 10715
3045 __cil_tmp28 = *mem_42;
3046#line 10715
3047 mem_43 = (ULONG *)__cil_tmp24;
3048#line 10715
3049 *mem_43 = __cil_tmp28 + 1UL;
3050#line 10716
3051 __cil_tmp29 = 0 + 72;
3052#line 10716
3053 __cil_tmp30 = (unsigned int )Lookaside;
3054#line 10716
3055 __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
3056#line 10716
3057 mem_44 = (void (**)(PVOID Buffer ))__cil_tmp31;
3058#line 10716
3059 __cil_tmp32 = *mem_44;
3060#line 10716
3061 (*__cil_tmp32)(Entry);
3062 }
3063 } else {
3064 {
3065#line 10719
3066 __cil_tmp33 = (SLIST_HEADER *)Lookaside;
3067#line 10719
3068 __cil_tmp34 = (struct _SINGLE_LIST_ENTRY *)Entry;
3069#line 10719
3070 __cil_tmp35 = (unsigned int )Lookaside;
3071#line 10719
3072 __cil_tmp36 = __cil_tmp35 + 100;
3073#line 10719
3074 __cil_tmp37 = (KSPIN_LOCK *)__cil_tmp36;
3075#line 10719
3076 ExInterlockedPushEntrySList(__cil_tmp33, __cil_tmp34, __cil_tmp37);
3077 }
3078 }
3079 }
3080#line 10726
3081 return;
3082}
3083}
3084#line 11906
3085extern __attribute__((__dllimport__)) void MmProbeAndLockPages(PMDL MemoryDescriptorList ,
3086 KPROCESSOR_MODE AccessMode ,
3087 LOCK_OPERATION Operation ) ;
3088#line 11915
3089 __attribute__((__dllimport__)) void MmUnlockPages(PMDL MemoryDescriptorList ) ;
3090#line 11979
3091 __attribute__((__dllimport__)) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList ,
3092 KPROCESSOR_MODE AccessMode ,
3093 MEMORY_CACHING_TYPE CacheType ,
3094 PVOID BaseAddress ,
3095 ULONG BugCheckOnFailure ,
3096 MM_PAGE_PRIORITY Priority ) ;
3097#line 12084
3098 __attribute__((__dllimport__)) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes ,
3099 PHYSICAL_ADDRESS HighestAcceptableAddress ) ;
3100#line 12101
3101 __attribute__((__dllimport__)) void MmFreeContiguousMemory(PVOID BaseAddress ) ;
3102#line 12172
3103 __attribute__((__dllimport__)) void MmResetDriverPaging(PVOID AddressWithinSection ) ;
3104#line 12179
3105 __attribute__((__dllimport__)) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ;
3106#line 12552
3107 __attribute__((__dllimport__)) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle ,
3108 ULONG DesiredAccess ,
3109 POBJECT_ATTRIBUTES ObjectAttributes ,
3110 HANDLE ProcessHandle ,
3111 PCLIENT_ID ClientId ,
3112 void (*StartRoutine)(PVOID StartContext ) ,
3113 PVOID StartContext ) ;
3114#line 12564
3115 __attribute__((__dllimport__)) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ;
3116#line 25 "C:/NTDDK/inc/pshpack4.h"
3117#pragma warning(disable:4103)
3118#line 28 "C:/NTDDK/inc/poppack.h"
3119#pragma warning(disable:4103)
3120#line 14734 "C:/NTDDK/inc/ddk/ntddk.h"
3121 __attribute__((__dllimport__)) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length ,
3122 BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota ,
3123 PIRP Irp ) ;
3124#line 14807
3125 __attribute__((__dllimport__)) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice ,
3126 PDEVICE_OBJECT TargetDevice ) ;
3127#line 14814
3128 __attribute__((__dllimport__)) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction ,
3129 PDEVICE_OBJECT DeviceObject ,
3130 PVOID Buffer ,
3131 ULONG Length ,
3132 PLARGE_INTEGER StartingOffset ,
3133 PIO_STATUS_BLOCK IoStatusBlock ) ;
3134#line 14825
3135 __attribute__((__dllimport__)) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode ,
3136 PDEVICE_OBJECT DeviceObject ,
3137 PVOID InputBuffer ,
3138 ULONG InputBufferLength ,
3139 PVOID OutputBuffer ,
3140 ULONG OutputBufferLength ,
3141 BOOLEAN InternalDeviceIoControl ,
3142 PKEVENT Event ,
3143 PIO_STATUS_BLOCK IoStatusBlock ) ;
3144#line 14875
3145 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject ,
3146 PIRP Irp ) ;
3147#line 14903
3148 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp ,
3149 CCHAR PriorityBoost ) ;
3150#line 14942
3151 __attribute__((__dllimport__)) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject ,
3152 ULONG DeviceExtensionSize ,
3153 PUNICODE_STRING DeviceName ,
3154 ULONG DeviceType , ULONG DeviceCharacteristics ,
3155 BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) ;
3156#line 14993
3157 __attribute__((__dllimport__)) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName ,
3158 PUNICODE_STRING DeviceName ) ;
3159#line 15057
3160 __attribute__((__dllimport__)) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ;
3161#line 15063
3162 __attribute__((__dllimport__)) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ;
3163#line 15069
3164 __attribute__((__dllimport__)) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ;
3165#line 15092
3166 __attribute__((__dllimport__)) void IoFreeIrp(PIRP Irp ) ;
3167#line 15098
3168 __attribute__((__dllimport__)) void IoFreeMdl(PMDL Mdl ) ;
3169#line 15110
3170 __attribute__((__dllimport__)) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) ;
3171#line 15234
3172extern __attribute__((__dllimport__)) void IoGetStackLimits(PULONG_PTR LowLimit ,
3173 PULONG_PTR HighLimit ) ;
3174#line 15246 "C:/NTDDK/inc/ddk/ntddk.h"
3175__inline ULONG_PTR IoGetRemainingStackSize(void)
3176{ ULONG_PTR Top ;
3177 ULONG_PTR Bottom ;
3178 ULONG_PTR *__cil_tmp3 ;
3179 ULONG_PTR __cil_tmp4 ;
3180 unsigned long __cil_tmp5 ;
3181
3182 {
3183 {
3184#line 15255
3185 IoGetStackLimits(& Bottom, & Top);
3186 }
3187 {
3188#line 15256
3189 __cil_tmp3 = & Bottom;
3190#line 15256
3191 __cil_tmp4 = *__cil_tmp3;
3192#line 15256
3193 __cil_tmp5 = (unsigned long )(& Top);
3194#line 15256
3195 return (__cil_tmp5 - __cil_tmp4);
3196 }
3197}
3198}
3199#line 15426
3200 __attribute__((__dllimport__)) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType ,
3201 PULONG BusNumber ,
3202 PCONFIGURATION_TYPE ControllerType ,
3203 PULONG ControllerNumber ,
3204 PCONFIGURATION_TYPE PeripheralType ,
3205 PULONG PeripheralNumber ,
3206 NTSTATUS (*CalloutRoutine)(PVOID Context ,
3207 PUNICODE_STRING PathName ,
3208 INTERFACE_TYPE BusType ,
3209 ULONG BusNumber ,
3210 PKEY_VALUE_FULL_INFORMATION *BusInformation ,
3211 CONFIGURATION_TYPE ControllerType ,
3212 ULONG ControllerNumber ,
3213 PKEY_VALUE_FULL_INFORMATION *ControllerInformation ,
3214 CONFIGURATION_TYPE PeripheralType ,
3215 ULONG PeripheralNumber ,
3216 PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ,
3217 PVOID Context ) ;
3218#line 15492
3219 __attribute__((__dllimport__)) void IoReleaseCancelSpinLock(KIRQL Irql ) ;
3220#line 15641
3221 __attribute__((__dllimport__)) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ;
3222#line 16436
3223 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject ,
3224 GUID const *InterfaceClassGuid ,
3225 PUNICODE_STRING ReferenceString ,
3226 PUNICODE_STRING SymbolicLinkName ) ;
3227#line 16456
3228 __attribute__((__dllimport__)) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName ,
3229 BOOLEAN Enable ) ;
3230#line 17779
3231#pragma warning(disable:4200)
3232#line 17785
3233#pragma warning(default:4200)
3234#line 18271
3235 __attribute__((__dllimport__)) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject ,
3236 PIRP Irp ) ;
3237#line 18278
3238 __attribute__((__dllimport__)) void PoStartNextPowerIrp(PIRP Irp ) ;
3239#line 18326
3240 __attribute__((__dllimport__)) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle ,
3241 ACCESS_MASK DesiredAccess ,
3242 POBJECT_TYPE ObjectType ,
3243 KPROCESSOR_MODE AccessMode ,
3244 PVOID *Object ,
3245 POBJECT_HANDLE_INFORMATION HandleInformation ) ;
3246#line 18359
3247 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) ;
3248#line 19155
3249 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) ;
3250#line 25 "C:/NTDDK/inc/pshpack1.h"
3251#pragma warning(disable:4103)
3252#line 28 "C:/NTDDK/inc/poppack.h"
3253#pragma warning(disable:4103)
3254#line 25 "C:/NTDDK/inc/pshpack1.h"
3255#pragma warning(disable:4103)
3256#line 28 "C:/NTDDK/inc/poppack.h"
3257#pragma warning(disable:4103)
3258#line 25 "C:/NTDDK/inc/pshpack1.h"
3259#pragma warning(disable:4103)
3260#line 28 "C:/NTDDK/inc/poppack.h"
3261#pragma warning(disable:4103)
3262#line 25 "C:/NTDDK/inc/pshpack1.h"
3263#pragma warning(disable:4103)
3264#line 28 "C:/NTDDK/inc/poppack.h"
3265#pragma warning(disable:4103)
3266#line 25 "C:/NTDDK/inc/pshpack1.h"
3267#pragma warning(disable:4103)
3268#line 28 "C:/NTDDK/inc/poppack.h"
3269#pragma warning(disable:4103)
3270#line 212 "C:/NTDDK/inc/mountmgr.h"
3271 __attribute__((__selectany__)) struct _GUID const MOUNTDEV_MOUNTED_DEVICE_GUID = {1408590605UL,
3272 (unsigned short)46783, (unsigned short)4560, {(unsigned char)148, (unsigned char)242,
3273 (unsigned char)0, (unsigned char)160,
3274 (unsigned char)201, (unsigned char)30,
3275 (unsigned char)251, (unsigned char)139}};
3276#line 265 "./flo_data.h"
3277DRIVE_MEDIA_LIMITS _DriveMediaLimits[5] = { {(DRIVE_MEDIA_TYPE )4, (DRIVE_MEDIA_TYPE )0},
3278 {(DRIVE_MEDIA_TYPE )11, (DRIVE_MEDIA_TYPE )6},
3279 {(DRIVE_MEDIA_TYPE )5, (DRIVE_MEDIA_TYPE )5},
3280 {(DRIVE_MEDIA_TYPE )13, (DRIVE_MEDIA_TYPE )12},
3281 {(DRIVE_MEDIA_TYPE )16, (DRIVE_MEDIA_TYPE )14}};
3282#line 282 "./flo_data.h"
3283DRIVE_MEDIA_LIMITS_NEC98 _DriveMediaLimits_NEC98[6] = { {(DRIVE_MEDIA_TYPE_NEC98 )4, (DRIVE_MEDIA_TYPE_NEC98 )0},
3284 {(DRIVE_MEDIA_TYPE_NEC98 )13, (DRIVE_MEDIA_TYPE_NEC98 )5},
3285 {(DRIVE_MEDIA_TYPE_NEC98 )11, (DRIVE_MEDIA_TYPE_NEC98 )5},
3286 {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14},
3287 {(DRIVE_MEDIA_TYPE_NEC98 )18, (DRIVE_MEDIA_TYPE_NEC98 )14},
3288 {(DRIVE_MEDIA_TYPE_NEC98 )20, (DRIVE_MEDIA_TYPE_NEC98 )19}};
3289#line 292 "./flo_data.h"
3290PDRIVE_MEDIA_LIMITS DriveMediaLimits ;
3291#line 334 "./flo_data.h"
3292DRIVE_MEDIA_CONSTANTS _DriveMediaConstants[17] =
3293#line 334
3294 { {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3295 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3296 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3297 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
3298 (unsigned char)254, (unsigned char)0},
3299 {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3300 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3301 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3302 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
3303 (unsigned char)252, (unsigned char)0},
3304 {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3305 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3306 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3307 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3308 (unsigned char)255, (unsigned char)0},
3309 {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
3310 (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
3311 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3312 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3313 (unsigned char)255, (unsigned char)0},
3314 {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3315 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3316 (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000,
3317 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3318 (unsigned char)253, (unsigned char)0},
3319 {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3320 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3321 (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
3322 (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3323 (unsigned char)249, (unsigned char)2},
3324 {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3325 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3326 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3327 (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255,
3328 (unsigned char)254, (unsigned char)0},
3329 {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3330 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3331 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3332 (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)255,
3333 (unsigned char)252, (unsigned char)0},
3334 {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3335 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3336 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3337 (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
3338 (unsigned char)255, (unsigned char)0},
3339 {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
3340 (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
3341 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3342 (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
3343 (unsigned char)255, (unsigned char)0},
3344 {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3345 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3346 (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000,
3347 (unsigned char)39, (unsigned char)1, (unsigned char)1, (unsigned char)2, (unsigned char)255,
3348 (unsigned char)253, (unsigned char)0},
3349 {(MEDIA_TYPE )1, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3350 (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
3351 (unsigned char)246, (unsigned char)15, (unsigned short)625, (unsigned short)1000,
3352 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3353 (unsigned char)249, (unsigned char)0},
3354 {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3355 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3356 (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
3357 (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3358 (unsigned char)249, (unsigned char)2},
3359 {(MEDIA_TYPE )2, (unsigned char)175, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3360 (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101,
3361 (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
3362 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3363 (unsigned char)240, (unsigned char)3},
3364 {(MEDIA_TYPE )5, (unsigned char)225, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3365 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3366 (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
3367 (unsigned char)79, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3368 (unsigned char)249, (unsigned char)2},
3369 {(MEDIA_TYPE )2, (unsigned char)209, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3370 (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)101,
3371 (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
3372 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3373 (unsigned char)240, (unsigned char)3},
3374 {(MEDIA_TYPE )3, (unsigned char)161, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3375 (unsigned short)512, (unsigned char)36, (unsigned char)56, (unsigned char)83,
3376 (unsigned char)246, (unsigned char)15, (unsigned short)500, (unsigned short)1000,
3377 (unsigned char)79, (unsigned char)0, (unsigned char)3, (unsigned char)2, (unsigned char)255,
3378 (unsigned char)240, (unsigned char)6}};
3379#line 358 "./flo_data.h"
3380DRIVE_MEDIA_CONSTANTS _DriveMediaConstants_NEC98[21] =
3381#line 358
3382 { {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3383 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3384 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3385 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
3386 (unsigned char)254, (unsigned char)0},
3387 {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3388 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3389 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3390 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)1, (unsigned char)255,
3391 (unsigned char)252, (unsigned char)0},
3392 {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3393 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3394 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3395 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3396 (unsigned char)255, (unsigned char)0},
3397 {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)3,
3398 (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
3399 (unsigned char)246, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3400 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3401 (unsigned char)255, (unsigned char)0},
3402 {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)2, (unsigned char)37, (unsigned char)2,
3403 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3404 (unsigned char)246, (unsigned char)15, (unsigned short)250, (unsigned short)1000,
3405 (unsigned char)39, (unsigned char)0, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3406 (unsigned char)253, (unsigned char)0},
3407 {(MEDIA_TYPE )10, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3408 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3409 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3410 (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255,
3411 (unsigned char)254, (unsigned char)0},
3412 {(MEDIA_TYPE )9, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3413 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3414 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3415 (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)1, (unsigned char)255,
3416 (unsigned char)252, (unsigned char)0},
3417 {(MEDIA_TYPE )7, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3418 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3419 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3420 (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3421 (unsigned char)255, (unsigned char)0},
3422 {(MEDIA_TYPE )8, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)3,
3423 (unsigned short)1024, (unsigned char)4, (unsigned char)128, (unsigned char)240,
3424 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3425 (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3426 (unsigned char)255, (unsigned char)0},
3427 {(MEDIA_TYPE )6, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3428 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3429 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3430 (unsigned char)39, (unsigned char)1, (unsigned char)2, (unsigned char)2, (unsigned char)255,
3431 (unsigned char)253, (unsigned char)0},
3432 {(MEDIA_TYPE )15, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3433 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3434 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3435 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3436 (unsigned char)251, (unsigned char)0},
3437 {(MEDIA_TYPE )16, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3438 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3439 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3440 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3441 (unsigned char)249, (unsigned char)2},
3442 {(MEDIA_TYPE )1, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2,
3443 (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
3444 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3445 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3446 (unsigned char)249, (unsigned char)0},
3447 {(MEDIA_TYPE )19, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3,
3448 (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
3449 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3450 (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3451 (unsigned char)254, (unsigned char)0},
3452 {(MEDIA_TYPE )14, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3453 (unsigned short)512, (unsigned char)8, (unsigned char)42, (unsigned char)80,
3454 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3455 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3456 (unsigned char)251, (unsigned char)0},
3457 {(MEDIA_TYPE )5, (unsigned char)223, (unsigned char)22, (unsigned char)37, (unsigned char)2,
3458 (unsigned short)512, (unsigned char)9, (unsigned char)42, (unsigned char)80,
3459 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3460 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3461 (unsigned char)249, (unsigned char)2},
3462 {(MEDIA_TYPE )17, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)2,
3463 (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
3464 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3465 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3466 (unsigned char)249, (unsigned char)0},
3467 {(MEDIA_TYPE )18, (unsigned char)207, (unsigned char)36, (unsigned char)37, (unsigned char)3,
3468 (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
3469 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3470 (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3471 (unsigned char)254, (unsigned char)0},
3472 {(MEDIA_TYPE )2, (unsigned char)223, (unsigned char)36, (unsigned char)37, (unsigned char)2,
3473 (unsigned short)512, (unsigned char)18, (unsigned char)27, (unsigned char)108,
3474 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3475 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3476 (unsigned char)240, (unsigned char)3},
3477 {(MEDIA_TYPE )1, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)2,
3478 (unsigned short)512, (unsigned char)15, (unsigned char)27, (unsigned char)84,
3479 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3480 (unsigned char)79, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3481 (unsigned char)249, (unsigned char)0},
3482 {(MEDIA_TYPE )19, (unsigned char)191, (unsigned char)50, (unsigned char)37, (unsigned char)3,
3483 (unsigned short)1024, (unsigned char)8, (unsigned char)53, (unsigned char)116,
3484 (unsigned char)229, (unsigned char)15, (unsigned short)1000, (unsigned short)1000,
3485 (unsigned char)76, (unsigned char)0, (unsigned char)0, (unsigned char)2, (unsigned char)255,
3486 (unsigned char)254, (unsigned char)0}};
3487#line 399 "./flo_data.h"
3488PDRIVE_MEDIA_CONSTANTS DriveMediaConstants ;
3489#line 595 "./flo_data.h"
3490SENSE_DEVISE_STATUS_PTOS Result_Status3_PTOS[4] ;
3491#line 603
3492NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) ;
3493#line 609
3494void FloppyUnload(PDRIVER_OBJECT DriverObject ) ;
3495#line 614
3496NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType ,
3497 ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation ,
3498 CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber ,
3499 PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType ,
3500 ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ;
3501#line 629
3502NTSTATUS FlInitializeControllerHardware(PDISKETTE_EXTENSION DisketteExtension ) ;
3503#line 634
3504NTSTATUS FloppyCreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
3505#line 640
3506NTSTATUS FloppyDeviceControl(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
3507#line 646
3508NTSTATUS FloppyReadWrite(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
3509#line 652
3510NTSTATUS FlRecalibrateDrive(PDISKETTE_EXTENSION DisketteExtension ) ;
3511#line 657
3512NTSTATUS FlDatarateSpecifyConfigure(PDISKETTE_EXTENSION DisketteExtension ) ;
3513#line 662
3514NTSTATUS FlStartDrive(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN WriteOperation ,
3515 BOOLEAN SetUpMedia , BOOLEAN IgnoreChange ) ;
3516#line 671
3517void FlFinishOperation(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ;
3518#line 677
3519NTSTATUS FlDetermineMediaType(PDISKETTE_EXTENSION DisketteExtension ) ;
3520#line 682
3521void FloppyThread(PVOID Context ) ;
3522#line 687
3523NTSTATUS FlReadWrite(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN DriveStarted ) ;
3524#line 694
3525NTSTATUS FlFormat(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ;
3526#line 700
3527NTSTATUS FlIssueCommand(PDISKETTE_EXTENSION DisketteExtension , PUCHAR FifoInBuffer ,
3528 PUCHAR FifoOutBuffer , PMDL IoMdl , ULONG IoOffset , ULONG TransferBytes ) ;
3529#line 710
3530BOOLEAN FlCheckFormatParameters(PDISKETTE_EXTENSION DisketteExtension , PFORMAT_PARAMETERS FormatParameters ) ;
3531#line 724
3532NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension ) ;
3533#line 730
3534NTSTATUS FlInterpretError(UCHAR StatusRegister1 , UCHAR StatusRegister2 ) ;
3535#line 736
3536void FlAllocateIoBuffer(PDISKETTE_EXTENSION DisketteExtension , ULONG BufferSize ) ;
3537#line 742
3538void FlFreeIoBuffer(PDISKETTE_EXTENSION DisketteExtension ) ;
3539#line 747
3540void FlConsolidateMediaTypeWithBootSector(PDISKETTE_EXTENSION DisketteExtension ,
3541 PBOOT_SECTOR_INFO BootSector ) ;
3542#line 753
3543void FlCheckBootSector(PDISKETTE_EXTENSION DisketteExtension ) ;
3544#line 758
3545NTSTATUS FlReadWriteTrack(PDISKETTE_EXTENSION DisketteExtension , PMDL IoMdl , ULONG IoOffset ,
3546 BOOLEAN WriteOperation , UCHAR Cylinder , UCHAR Head , UCHAR Sector ,
3547 UCHAR NumberOfSectors , BOOLEAN NeedSeek ) ;
3548#line 771
3549NTSTATUS FlFdcDeviceIo(PDEVICE_OBJECT DeviceObject , ULONG Ioctl , PVOID Data ) ;
3550#line 778
3551NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject ) ;
3552#line 784
3553NTSTATUS FloppyPnp(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
3554#line 790
3555NTSTATUS FloppyPower(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
3556#line 796
3557NTSTATUS FloppyPnpComplete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
3558#line 803
3559NTSTATUS FloppyQueueRequest(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp ) ;
3560#line 809
3561NTSTATUS FloppyStartDevice(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
3562#line 815
3563void FloppyProcessQueuedRequests(PDISKETTE_EXTENSION DisketteExtension ) ;
3564#line 820
3565void FloppyCancelQueuedRequest(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
3566#line 826
3567NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo ) ;
3568#line 832
3569NTSTATUS FlHdbit(PDISKETTE_EXTENSION DisketteExtension ) ;
3570#line 47 "floppy.c"
3571#pragma alloc_text(INIT,DriverEntry)
3572#line 49
3573#pragma alloc_text(PAGE,FloppyAddDevice)
3574#line 50
3575#pragma alloc_text(PAGE,FloppyPnp)
3576#line 51
3577#pragma alloc_text(PAGE,FloppyPower)
3578#line 52
3579#pragma alloc_text(PAGE,FlConfigCallBack)
3580#line 53
3581#pragma alloc_text(PAGE,FlInitializeControllerHardware)
3582#line 54
3583#pragma alloc_text(PAGE,FlInterpretError)
3584#line 55
3585#pragma alloc_text(PAGE,FlDatarateSpecifyConfigure)
3586#line 56
3587#pragma alloc_text(PAGE,FlRecalibrateDrive)
3588#line 57
3589#pragma alloc_text(PAGE,FlDetermineMediaType)
3590#line 58
3591#pragma alloc_text(PAGE,FlCheckBootSector)
3592#line 59
3593#pragma alloc_text(PAGE,FlConsolidateMediaTypeWithBootSector)
3594#line 60
3595#pragma alloc_text(PAGE,FlIssueCommand)
3596#line 61
3597#pragma alloc_text(PAGE,FlReadWriteTrack)
3598#line 62
3599#pragma alloc_text(PAGE,FlReadWrite)
3600#line 63
3601#pragma alloc_text(PAGE,FlFormat)
3602#line 64
3603#pragma alloc_text(PAGE,FlFinishOperation)
3604#line 65
3605#pragma alloc_text(PAGE,FlStartDrive)
3606#line 66
3607#pragma alloc_text(PAGE,FloppyThread)
3608#line 67
3609#pragma alloc_text(PAGE,FlAllocateIoBuffer)
3610#line 68
3611#pragma alloc_text(PAGE,FlFreeIoBuffer)
3612#line 69
3613#pragma alloc_text(PAGE,FloppyCreateClose)
3614#line 70
3615#pragma alloc_text(PAGE,FloppyDeviceControl)
3616#line 71
3617#pragma alloc_text(PAGE,FloppyReadWrite)
3618#line 72
3619#pragma alloc_text(PAGE,FlCheckFormatParameters)
3620#line 73
3621#pragma alloc_text(PAGE,FlFdcDeviceIo)
3622#line 74
3623#pragma alloc_text(PAGE,FlHdbit)
3624#line 101 "floppy.c"
3625NTSTATUS myStatus ;
3626#line 103 "floppy.c"
3627int s ;
3628#line 105 "floppy.c"
3629int pended ;
3630#line 106 "floppy.c"
3631NTSTATUS (*compFptr)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
3632#line 107 "floppy.c"
3633int compRegistered ;
3634#line 108 "floppy.c"
3635int lowerDriverReturn ;
3636#line 109 "floppy.c"
3637int setEventCalled ;
3638#line 110 "floppy.c"
3639int customIrp ;
3640#line 135 "floppy.c"
3641ULONG PagingReferenceCount = 0UL;
3642#line 136 "floppy.c"
3643PFAST_MUTEX PagingMutex = (struct _FAST_MUTEX *)((void *)0);
3644#line 139 "floppy.c"
3645NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath )
3646{ NTSTATUS ntStatus ;
3647 PVOID tmp ;
3648 unsigned int __cil_tmp5 ;
3649 unsigned int __cil_tmp6 ;
3650 unsigned int __cil_tmp7 ;
3651 unsigned int __cil_tmp8 ;
3652 unsigned int __cil_tmp9 ;
3653 unsigned int __cil_tmp10 ;
3654 unsigned int __cil_tmp11 ;
3655 unsigned int __cil_tmp12 ;
3656 unsigned int __cil_tmp13 ;
3657 unsigned int __cil_tmp14 ;
3658 unsigned int __cil_tmp15 ;
3659 unsigned int __cil_tmp16 ;
3660 unsigned int __cil_tmp17 ;
3661 unsigned int __cil_tmp18 ;
3662 unsigned int __cil_tmp19 ;
3663 unsigned int __cil_tmp20 ;
3664 unsigned int __cil_tmp21 ;
3665 unsigned int __cil_tmp22 ;
3666 unsigned int __cil_tmp23 ;
3667 unsigned int __cil_tmp24 ;
3668 unsigned int __cil_tmp25 ;
3669 unsigned int __cil_tmp26 ;
3670 unsigned int __cil_tmp27 ;
3671 unsigned int __cil_tmp28 ;
3672 unsigned int __cil_tmp29 ;
3673 unsigned int __cil_tmp30 ;
3674 unsigned int __cil_tmp31 ;
3675 unsigned int __cil_tmp32 ;
3676 unsigned int __cil_tmp33 ;
3677 unsigned int __cil_tmp34 ;
3678 unsigned int __cil_tmp35 ;
3679 unsigned int __cil_tmp36 ;
3680 PDRIVER_EXTENSION __cil_tmp37 ;
3681 unsigned int __cil_tmp38 ;
3682 unsigned int __cil_tmp39 ;
3683 enum _POOL_TYPE __cil_tmp40 ;
3684 unsigned long __cil_tmp41 ;
3685 void *__cil_tmp42 ;
3686 unsigned int __cil_tmp43 ;
3687 unsigned int __cil_tmp44 ;
3688 unsigned int __cil_tmp45 ;
3689 unsigned int __cil_tmp46 ;
3690 unsigned int __cil_tmp47 ;
3691 unsigned int __cil_tmp48 ;
3692 KEVENT *__cil_tmp49 ;
3693 enum _EVENT_TYPE __cil_tmp50 ;
3694 void *__cil_tmp51 ;
3695 KUSER_SHARED_DATA *__cil_tmp52 ;
3696 unsigned int __cil_tmp53 ;
3697 unsigned int __cil_tmp54 ;
3698 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp55 ;
3699 int __cil_tmp56 ;
3700 unsigned int __cil_tmp57 ;
3701 unsigned int __cil_tmp58 ;
3702 DRIVE_MEDIA_LIMITS_NEC98 *__cil_tmp59 ;
3703 unsigned int __cil_tmp60 ;
3704 unsigned int __cil_tmp61 ;
3705 KUSER_SHARED_DATA *__cil_tmp62 ;
3706 unsigned int __cil_tmp63 ;
3707 unsigned int __cil_tmp64 ;
3708 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp65 ;
3709 int __cil_tmp66 ;
3710 unsigned int __cil_tmp67 ;
3711 unsigned int __cil_tmp68 ;
3712 unsigned int __cil_tmp69 ;
3713 unsigned int __cil_tmp70 ;
3714 PDRIVER_DISPATCH *mem_71 ;
3715 PDRIVER_DISPATCH *mem_72 ;
3716 PDRIVER_DISPATCH *mem_73 ;
3717 PDRIVER_DISPATCH *mem_74 ;
3718 PDRIVER_DISPATCH *mem_75 ;
3719 PDRIVER_DISPATCH *mem_76 ;
3720 PDRIVER_DISPATCH *mem_77 ;
3721 void (**mem_78)(struct _DRIVER_OBJECT *DriverObject ) ;
3722 PDRIVER_EXTENSION *mem_79 ;
3723 NTSTATUS (**mem_80)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ) ;
3724 LONG *mem_81 ;
3725 ULONG *mem_82 ;
3726 ALTERNATIVE_ARCHITECTURE_TYPE *mem_83 ;
3727 ALTERNATIVE_ARCHITECTURE_TYPE *mem_84 ;
3728
3729 {
3730#line 170
3731 ntStatus = 0L;
3732 {
3733#line 242
3734 while (1) {
3735 while_0_continue: ;
3736 goto while_0_break;
3737 }
3738 while_0_break: ;
3739 }
3740 {
3741#line 247
3742 __cil_tmp5 = 0 * 4U;
3743#line 247
3744 __cil_tmp6 = 56 + __cil_tmp5;
3745#line 247
3746 __cil_tmp7 = (unsigned int )DriverObject;
3747#line 247
3748 __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
3749#line 247
3750 mem_71 = (PDRIVER_DISPATCH *)__cil_tmp8;
3751#line 247
3752 *mem_71 = & FloppyCreateClose;
3753#line 248
3754 __cil_tmp9 = 2 * 4U;
3755#line 248
3756 __cil_tmp10 = 56 + __cil_tmp9;
3757#line 248
3758 __cil_tmp11 = (unsigned int )DriverObject;
3759#line 248
3760 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
3761#line 248
3762 mem_72 = (PDRIVER_DISPATCH *)__cil_tmp12;
3763#line 248
3764 *mem_72 = & FloppyCreateClose;
3765#line 249
3766 __cil_tmp13 = 3 * 4U;
3767#line 249
3768 __cil_tmp14 = 56 + __cil_tmp13;
3769#line 249
3770 __cil_tmp15 = (unsigned int )DriverObject;
3771#line 249
3772 __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
3773#line 249
3774 mem_73 = (PDRIVER_DISPATCH *)__cil_tmp16;
3775#line 249
3776 *mem_73 = & FloppyReadWrite;
3777#line 250
3778 __cil_tmp17 = 4 * 4U;
3779#line 250
3780 __cil_tmp18 = 56 + __cil_tmp17;
3781#line 250
3782 __cil_tmp19 = (unsigned int )DriverObject;
3783#line 250
3784 __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
3785#line 250
3786 mem_74 = (PDRIVER_DISPATCH *)__cil_tmp20;
3787#line 250
3788 *mem_74 = & FloppyReadWrite;
3789#line 251
3790 __cil_tmp21 = 14 * 4U;
3791#line 251
3792 __cil_tmp22 = 56 + __cil_tmp21;
3793#line 251
3794 __cil_tmp23 = (unsigned int )DriverObject;
3795#line 251
3796 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
3797#line 251
3798 mem_75 = (PDRIVER_DISPATCH *)__cil_tmp24;
3799#line 251
3800 *mem_75 = & FloppyDeviceControl;
3801#line 252
3802 __cil_tmp25 = 27 * 4U;
3803#line 252
3804 __cil_tmp26 = 56 + __cil_tmp25;
3805#line 252
3806 __cil_tmp27 = (unsigned int )DriverObject;
3807#line 252
3808 __cil_tmp28 = __cil_tmp27 + __cil_tmp26;
3809#line 252
3810 mem_76 = (PDRIVER_DISPATCH *)__cil_tmp28;
3811#line 252
3812 *mem_76 = & FloppyPnp;
3813#line 253
3814 __cil_tmp29 = 22 * 4U;
3815#line 253
3816 __cil_tmp30 = 56 + __cil_tmp29;
3817#line 253
3818 __cil_tmp31 = (unsigned int )DriverObject;
3819#line 253
3820 __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
3821#line 253
3822 mem_77 = (PDRIVER_DISPATCH *)__cil_tmp32;
3823#line 253
3824 *mem_77 = & FloppyPower;
3825#line 255
3826 __cil_tmp33 = (unsigned int )DriverObject;
3827#line 255
3828 __cil_tmp34 = __cil_tmp33 + 52;
3829#line 255
3830 mem_78 = (void (**)(struct _DRIVER_OBJECT *DriverObject ))__cil_tmp34;
3831#line 255
3832 *mem_78 = & FloppyUnload;
3833#line 257
3834 __cil_tmp35 = (unsigned int )DriverObject;
3835#line 257
3836 __cil_tmp36 = __cil_tmp35 + 24;
3837#line 257
3838 mem_79 = (PDRIVER_EXTENSION *)__cil_tmp36;
3839#line 257
3840 __cil_tmp37 = *mem_79;
3841#line 257
3842 __cil_tmp38 = (unsigned int )__cil_tmp37;
3843#line 257
3844 __cil_tmp39 = __cil_tmp38 + 4;
3845#line 257
3846 mem_80 = (NTSTATUS (**)(struct _DRIVER_OBJECT *DriverObject , struct _DEVICE_OBJECT *PhysicalDeviceObject ))__cil_tmp39;
3847#line 257
3848 *mem_80 = & FloppyAddDevice;
3849#line 262
3850 __cil_tmp40 = (enum _POOL_TYPE )0;
3851#line 262
3852 __cil_tmp41 = (unsigned long )32U;
3853#line 262
3854 tmp = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp41, 1886350406UL);
3855#line 262
3856 PagingMutex = (struct _FAST_MUTEX *)tmp;
3857 }
3858 {
3859#line 264
3860 __cil_tmp42 = (void *)0;
3861#line 264
3862 __cil_tmp43 = (unsigned int )__cil_tmp42;
3863#line 264
3864 __cil_tmp44 = (unsigned int )PagingMutex;
3865#line 264
3866 if (__cil_tmp44 == __cil_tmp43) {
3867#line 266
3868 return (-1073741670L);
3869 } else {
3870
3871 }
3872 }
3873 {
3874#line 269
3875 mem_81 = (LONG *)PagingMutex;
3876#line 269
3877 *mem_81 = 1L;
3878#line 269
3879 __cil_tmp45 = (unsigned int )PagingMutex;
3880#line 269
3881 __cil_tmp46 = __cil_tmp45 + 8;
3882#line 269
3883 mem_82 = (ULONG *)__cil_tmp46;
3884#line 269
3885 *mem_82 = 0UL;
3886#line 269
3887 __cil_tmp47 = (unsigned int )PagingMutex;
3888#line 269
3889 __cil_tmp48 = __cil_tmp47 + 12;
3890#line 269
3891 __cil_tmp49 = (KEVENT *)__cil_tmp48;
3892#line 269
3893 __cil_tmp50 = (enum _EVENT_TYPE )1;
3894#line 269
3895 KeInitializeEvent(__cil_tmp49, __cil_tmp50, (unsigned char)0);
3896#line 274
3897 __cil_tmp51 = (void *)(& DriverEntry);
3898#line 274
3899 MmPageEntireDriver(__cil_tmp51);
3900 }
3901 {
3902#line 276
3903 __cil_tmp52 = (KUSER_SHARED_DATA * const )4292804608U;
3904#line 276
3905 __cil_tmp53 = (unsigned int )__cil_tmp52;
3906#line 276
3907 __cil_tmp54 = __cil_tmp53 + 732;
3908#line 276
3909 mem_83 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp54;
3910#line 276
3911 __cil_tmp55 = *mem_83;
3912#line 276
3913 __cil_tmp56 = (int )__cil_tmp55;
3914#line 276
3915 if (__cil_tmp56 == 1) {
3916#line 276
3917 __cil_tmp57 = 0 * 64U;
3918#line 276
3919 __cil_tmp58 = (unsigned int )(_DriveMediaLimits_NEC98) + __cil_tmp57;
3920#line 276
3921 __cil_tmp59 = (DRIVE_MEDIA_LIMITS_NEC98 *)__cil_tmp58;
3922#line 276
3923 DriveMediaLimits = (struct _DRIVE_MEDIA_LIMITS *)__cil_tmp59;
3924 } else {
3925#line 276
3926 __cil_tmp60 = 0 * 64U;
3927#line 276
3928 __cil_tmp61 = (unsigned int )(_DriveMediaLimits) + __cil_tmp60;
3929#line 276
3930 DriveMediaLimits = (DRIVE_MEDIA_LIMITS *)__cil_tmp61;
3931 }
3932 }
3933 {
3934#line 279
3935 __cil_tmp62 = (KUSER_SHARED_DATA * const )4292804608U;
3936#line 279
3937 __cil_tmp63 = (unsigned int )__cil_tmp62;
3938#line 279
3939 __cil_tmp64 = __cil_tmp63 + 732;
3940#line 279
3941 mem_84 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp64;
3942#line 279
3943 __cil_tmp65 = *mem_84;
3944#line 279
3945 __cil_tmp66 = (int )__cil_tmp65;
3946#line 279
3947 if (__cil_tmp66 == 1) {
3948#line 279
3949 __cil_tmp67 = 0 * 56U;
3950#line 279
3951 __cil_tmp68 = (unsigned int )(_DriveMediaConstants_NEC98) + __cil_tmp67;
3952#line 279
3953 DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp68;
3954 } else {
3955#line 279
3956 __cil_tmp69 = 0 * 56U;
3957#line 279
3958 __cil_tmp70 = (unsigned int )(_DriveMediaConstants) + __cil_tmp69;
3959#line 279
3960 DriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp70;
3961 }
3962 }
3963#line 282
3964 return (ntStatus);
3965}
3966}
3967#line 285 "floppy.c"
3968void FloppyUnload(PDRIVER_OBJECT DriverObject )
3969{ void *__cil_tmp2 ;
3970
3971 {
3972 {
3973#line 308
3974 while (1) {
3975 while_1_continue: ;
3976 goto while_1_break;
3977 }
3978 while_1_break: ;
3979 }
3980 {
3981#line 318
3982 __cil_tmp2 = (void *)PagingMutex;
3983#line 318
3984 ExFreePool(__cil_tmp2);
3985 }
3986#line 322
3987 return;
3988}
3989}
3990#line 323 "floppy.c"
3991NTSTATUS FloppyAddDevice(PDRIVER_OBJECT DriverObject , PDEVICE_OBJECT PhysicalDeviceObject )
3992{ NTSTATUS ntStatus ;
3993 PDEVICE_OBJECT deviceObject ;
3994 PDISKETTE_EXTENSION disketteExtension ;
3995 FDC_INFO fdcInfo ;
3996 UCHAR arcNameBuffer[256] ;
3997 STRING arcNameString ;
3998 WCHAR deviceNameBuffer[20] ;
3999 UNICODE_STRING deviceName ;
4000 USHORT i ;
4001 USHORT tmp ;
4002 PVOID tmp___0 ;
4003 PCONFIGURATION_INFORMATION tmp___1 ;
4004 unsigned int __cil_tmp15 ;
4005 unsigned int __cil_tmp16 ;
4006 int __cil_tmp17 ;
4007 int __cil_tmp18 ;
4008 int __cil_tmp19 ;
4009 int __cil_tmp20 ;
4010 unsigned long __cil_tmp21 ;
4011 void *__cil_tmp22 ;
4012 int __cil_tmp23 ;
4013 int __cil_tmp24 ;
4014 unsigned int __cil_tmp25 ;
4015 unsigned int __cil_tmp26 ;
4016 WCHAR *__cil_tmp27 ;
4017 wchar_t const *__cil_tmp28 ;
4018 unsigned int __cil_tmp29 ;
4019 unsigned int __cil_tmp30 ;
4020 WCHAR *__cil_tmp31 ;
4021 WCHAR const *__cil_tmp32 ;
4022 unsigned long __cil_tmp33 ;
4023 int __cil_tmp34 ;
4024 PDEVICE_OBJECT *__cil_tmp35 ;
4025 PDEVICE_OBJECT __cil_tmp36 ;
4026 unsigned int __cil_tmp37 ;
4027 unsigned int __cil_tmp38 ;
4028 PVOID __cil_tmp39 ;
4029 enum _POOL_TYPE __cil_tmp40 ;
4030 UNICODE_STRING *__cil_tmp41 ;
4031 USHORT __cil_tmp42 ;
4032 unsigned long __cil_tmp43 ;
4033 unsigned int __cil_tmp44 ;
4034 unsigned int __cil_tmp45 ;
4035 unsigned int __cil_tmp46 ;
4036 void *__cil_tmp47 ;
4037 unsigned int __cil_tmp48 ;
4038 unsigned int __cil_tmp49 ;
4039 unsigned int __cil_tmp50 ;
4040 unsigned int __cil_tmp51 ;
4041 PWSTR __cil_tmp52 ;
4042 unsigned int __cil_tmp53 ;
4043 PDEVICE_OBJECT *__cil_tmp54 ;
4044 PDEVICE_OBJECT __cil_tmp55 ;
4045 unsigned int __cil_tmp56 ;
4046 unsigned int __cil_tmp57 ;
4047 unsigned int __cil_tmp58 ;
4048 unsigned int __cil_tmp59 ;
4049 unsigned int __cil_tmp60 ;
4050 UNICODE_STRING *__cil_tmp61 ;
4051 unsigned int __cil_tmp62 ;
4052 unsigned int __cil_tmp63 ;
4053 UNICODE_STRING *__cil_tmp64 ;
4054 unsigned int __cil_tmp65 ;
4055 unsigned int __cil_tmp66 ;
4056 unsigned int __cil_tmp67 ;
4057 unsigned int __cil_tmp68 ;
4058 ULONG __cil_tmp69 ;
4059 unsigned int __cil_tmp70 ;
4060 unsigned int __cil_tmp71 ;
4061 UCHAR *__cil_tmp72 ;
4062 char *__cil_tmp73 ;
4063 unsigned int __cil_tmp74 ;
4064 ULONG __cil_tmp75 ;
4065 unsigned int __cil_tmp76 ;
4066 ULONG __cil_tmp77 ;
4067 unsigned int __cil_tmp78 ;
4068 ULONG __cil_tmp79 ;
4069 unsigned int __cil_tmp80 ;
4070 unsigned int __cil_tmp81 ;
4071 UCHAR *__cil_tmp82 ;
4072 char const *__cil_tmp83 ;
4073 unsigned int __cil_tmp84 ;
4074 unsigned int __cil_tmp85 ;
4075 UNICODE_STRING *__cil_tmp86 ;
4076 unsigned int __cil_tmp87 ;
4077 unsigned int __cil_tmp88 ;
4078 UNICODE_STRING *__cil_tmp89 ;
4079 PDEVICE_OBJECT *__cil_tmp90 ;
4080 PDEVICE_OBJECT __cil_tmp91 ;
4081 unsigned int __cil_tmp92 ;
4082 unsigned int __cil_tmp93 ;
4083 PDEVICE_OBJECT *__cil_tmp94 ;
4084 PDEVICE_OBJECT __cil_tmp95 ;
4085 unsigned int __cil_tmp96 ;
4086 unsigned int __cil_tmp97 ;
4087 ULONG __cil_tmp98 ;
4088 PDEVICE_OBJECT *__cil_tmp99 ;
4089 PDEVICE_OBJECT __cil_tmp100 ;
4090 unsigned int __cil_tmp101 ;
4091 unsigned int __cil_tmp102 ;
4092 ULONG __cil_tmp103 ;
4093 PDEVICE_OBJECT *__cil_tmp104 ;
4094 PDEVICE_OBJECT __cil_tmp105 ;
4095 unsigned int __cil_tmp106 ;
4096 unsigned int __cil_tmp107 ;
4097 PDEVICE_OBJECT *__cil_tmp108 ;
4098 PDEVICE_OBJECT __cil_tmp109 ;
4099 unsigned int __cil_tmp110 ;
4100 unsigned int __cil_tmp111 ;
4101 PDEVICE_OBJECT *__cil_tmp112 ;
4102 PDEVICE_OBJECT __cil_tmp113 ;
4103 unsigned int __cil_tmp114 ;
4104 unsigned int __cil_tmp115 ;
4105 ULONG __cil_tmp116 ;
4106 unsigned int __cil_tmp117 ;
4107 unsigned int __cil_tmp118 ;
4108 unsigned int __cil_tmp119 ;
4109 unsigned int __cil_tmp120 ;
4110 unsigned int __cil_tmp121 ;
4111 unsigned int __cil_tmp122 ;
4112 PDEVICE_OBJECT *__cil_tmp123 ;
4113 PDEVICE_OBJECT __cil_tmp124 ;
4114 unsigned int __cil_tmp125 ;
4115 unsigned int __cil_tmp126 ;
4116 KSEMAPHORE *__cil_tmp127 ;
4117 unsigned int __cil_tmp128 ;
4118 unsigned int __cil_tmp129 ;
4119 unsigned int __cil_tmp130 ;
4120 unsigned int __cil_tmp131 ;
4121 unsigned int __cil_tmp132 ;
4122 unsigned int __cil_tmp133 ;
4123 unsigned int __cil_tmp134 ;
4124 unsigned int __cil_tmp135 ;
4125 KEVENT *__cil_tmp136 ;
4126 enum _EVENT_TYPE __cil_tmp137 ;
4127 unsigned int __cil_tmp138 ;
4128 unsigned int __cil_tmp139 ;
4129 KSPIN_LOCK *__cil_tmp140 ;
4130 unsigned int __cil_tmp141 ;
4131 unsigned int __cil_tmp142 ;
4132 unsigned int __cil_tmp143 ;
4133 unsigned int __cil_tmp144 ;
4134 unsigned int __cil_tmp145 ;
4135 unsigned int __cil_tmp146 ;
4136 unsigned int __cil_tmp147 ;
4137 unsigned int __cil_tmp148 ;
4138 KEVENT *__cil_tmp149 ;
4139 enum _EVENT_TYPE __cil_tmp150 ;
4140 unsigned int __cil_tmp151 ;
4141 unsigned int __cil_tmp152 ;
4142 unsigned int __cil_tmp153 ;
4143 unsigned int __cil_tmp154 ;
4144 unsigned int __cil_tmp155 ;
4145 unsigned int __cil_tmp156 ;
4146 unsigned int __cil_tmp157 ;
4147 unsigned int __cil_tmp158 ;
4148 KEVENT *__cil_tmp159 ;
4149 enum _EVENT_TYPE __cil_tmp160 ;
4150 unsigned int __cil_tmp161 ;
4151 unsigned int __cil_tmp162 ;
4152 unsigned int __cil_tmp163 ;
4153 unsigned int __cil_tmp164 ;
4154 unsigned int __cil_tmp165 ;
4155 unsigned int __cil_tmp166 ;
4156 unsigned int __cil_tmp167 ;
4157 unsigned int __cil_tmp168 ;
4158 unsigned int __cil_tmp169 ;
4159 unsigned int __cil_tmp170 ;
4160 unsigned int __cil_tmp171 ;
4161 unsigned int __cil_tmp172 ;
4162 unsigned int __cil_tmp173 ;
4163 unsigned int __cil_tmp174 ;
4164 unsigned int __cil_tmp175 ;
4165 unsigned int __cil_tmp176 ;
4166 unsigned int __cil_tmp177 ;
4167 unsigned int __cil_tmp178 ;
4168 unsigned int __cil_tmp179 ;
4169 unsigned int __cil_tmp180 ;
4170 unsigned int __cil_tmp181 ;
4171 unsigned int __cil_tmp182 ;
4172 unsigned int __cil_tmp183 ;
4173 unsigned int __cil_tmp184 ;
4174 unsigned int __cil_tmp185 ;
4175 unsigned int __cil_tmp186 ;
4176 unsigned int __cil_tmp187 ;
4177 unsigned int __cil_tmp188 ;
4178 unsigned int __cil_tmp189 ;
4179 unsigned int __cil_tmp190 ;
4180 KSPIN_LOCK *__cil_tmp191 ;
4181 KSPIN_LOCK *__cil_tmp192 ;
4182 unsigned int __cil_tmp193 ;
4183 unsigned int __cil_tmp194 ;
4184 unsigned int __cil_tmp195 ;
4185 unsigned int __cil_tmp196 ;
4186 unsigned int __cil_tmp197 ;
4187 unsigned int __cil_tmp198 ;
4188 PDEVICE_OBJECT *__cil_tmp199 ;
4189 unsigned int __cil_tmp200 ;
4190 unsigned int __cil_tmp201 ;
4191 unsigned int __cil_tmp202 ;
4192 unsigned int __cil_tmp203 ;
4193 KUSER_SHARED_DATA *__cil_tmp204 ;
4194 unsigned int __cil_tmp205 ;
4195 unsigned int __cil_tmp206 ;
4196 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp207 ;
4197 int __cil_tmp208 ;
4198 unsigned int __cil_tmp209 ;
4199 unsigned int __cil_tmp210 ;
4200 unsigned int __cil_tmp211 ;
4201 unsigned int __cil_tmp212 ;
4202 ULONG *mem_213 ;
4203 ULONG *mem_214 ;
4204 PVOID *mem_215 ;
4205 USHORT *mem_216 ;
4206 PWSTR *mem_217 ;
4207 PWSTR *mem_218 ;
4208 USHORT *mem_219 ;
4209 USHORT *mem_220 ;
4210 USHORT *mem_221 ;
4211 ULONG *mem_222 ;
4212 ULONG *mem_223 ;
4213 ULONG *mem_224 ;
4214 ULONG *mem_225 ;
4215 ULONG *mem_226 ;
4216 ULONG *mem_227 ;
4217 ULONG *mem_228 ;
4218 ULONG *mem_229 ;
4219 ULONG *mem_230 ;
4220 ULONG *mem_231 ;
4221 ULONG *mem_232 ;
4222 PDRIVER_OBJECT *mem_233 ;
4223 PDEVICE_OBJECT *mem_234 ;
4224 PDEVICE_OBJECT *mem_235 ;
4225 LONG *mem_236 ;
4226 ULONG *mem_237 ;
4227 LONG *mem_238 ;
4228 ULONG *mem_239 ;
4229 LONG *mem_240 ;
4230 ULONG *mem_241 ;
4231 struct _LIST_ENTRY **mem_242 ;
4232 struct _LIST_ENTRY **mem_243 ;
4233 struct _LIST_ENTRY **mem_244 ;
4234 LONG *mem_245 ;
4235 BOOLEAN *mem_246 ;
4236 BOOLEAN *mem_247 ;
4237 BOOLEAN *mem_248 ;
4238 struct _LIST_ENTRY **mem_249 ;
4239 struct _LIST_ENTRY **mem_250 ;
4240 struct _LIST_ENTRY **mem_251 ;
4241 BOOLEAN *mem_252 ;
4242 BOOLEAN *mem_253 ;
4243 PDEVICE_OBJECT *mem_254 ;
4244 BOOLEAN *mem_255 ;
4245 MEDIA_TYPE *mem_256 ;
4246 ALTERNATIVE_ARCHITECTURE_TYPE *mem_257 ;
4247 BOOLEAN *mem_258 ;
4248 BOOLEAN *mem_259 ;
4249
4250 {
4251#line 363
4252 ntStatus = 0L;
4253 {
4254#line 365
4255 while (1) {
4256 while_2_continue: ;
4257 goto while_2_break;
4258 }
4259 while_2_break: ;
4260 }
4261 {
4262#line 370
4263 __cil_tmp15 = (unsigned int )(& fdcInfo) + 128;
4264#line 370
4265 mem_213 = (ULONG *)__cil_tmp15;
4266#line 370
4267 *mem_213 = 0UL;
4268#line 371
4269 __cil_tmp16 = (unsigned int )(& fdcInfo) + 132;
4270#line 371
4271 mem_214 = (ULONG *)__cil_tmp16;
4272#line 371
4273 *mem_214 = 0UL;
4274#line 373
4275 __cil_tmp17 = 770 << 2;
4276#line 373
4277 __cil_tmp18 = 7 << 16;
4278#line 373
4279 __cil_tmp19 = __cil_tmp18 | __cil_tmp17;
4280#line 373
4281 __cil_tmp20 = __cil_tmp19 | 3;
4282#line 373
4283 __cil_tmp21 = (unsigned long )__cil_tmp20;
4284#line 373
4285 __cil_tmp22 = (void *)(& fdcInfo);
4286#line 373
4287 ntStatus = FlFdcDeviceIo(PhysicalDeviceObject, __cil_tmp21, __cil_tmp22);
4288 }
4289#line 377
4290 if (ntStatus >= 0L) {
4291#line 379
4292 i = (unsigned short)0;
4293 {
4294#line 385
4295 while (1) {
4296 while_3_continue: ;
4297 {
4298#line 387
4299 tmp = i;
4300#line 387
4301 __cil_tmp23 = (int )i;
4302#line 387
4303 __cil_tmp24 = __cil_tmp23 + 1;
4304#line 387
4305 i = (unsigned short )__cil_tmp24;
4306#line 387
4307 __cil_tmp25 = 0 * 2U;
4308#line 387
4309 __cil_tmp26 = (unsigned int )(deviceNameBuffer) + __cil_tmp25;
4310#line 387
4311 __cil_tmp27 = (WCHAR *)__cil_tmp26;
4312#line 387
4313 __cil_tmp28 = (wchar_t const *)"\\\000D\000e\000v\000i\000c\000e\000\\\000F\000l\000o\000p\000p\000y\000%\000d\000";
4314#line 387
4315 swprintf(__cil_tmp27, __cil_tmp28, tmp);
4316#line 388
4317 __cil_tmp29 = 0 * 2U;
4318#line 388
4319 __cil_tmp30 = (unsigned int )(deviceNameBuffer) + __cil_tmp29;
4320#line 388
4321 __cil_tmp31 = (WCHAR *)__cil_tmp30;
4322#line 388
4323 __cil_tmp32 = (WCHAR const *)__cil_tmp31;
4324#line 388
4325 RtlInitUnicodeString(& deviceName, __cil_tmp32);
4326#line 389
4327 __cil_tmp33 = (unsigned long )460U;
4328#line 389
4329 ntStatus = IoCreateDevice(DriverObject, __cil_tmp33, & deviceName, 7UL, 261UL,
4330 (unsigned char)0, & deviceObject);
4331 }
4332 {
4333#line 385
4334 __cil_tmp34 = ntStatus == -1073741771L;
4335#line 385
4336 if (! __cil_tmp34) {
4337 goto while_3_break;
4338 } else {
4339
4340 }
4341 }
4342 }
4343 while_3_break: ;
4344 }
4345#line 401
4346 if (ntStatus >= 0L) {
4347#line 403
4348 __cil_tmp35 = & deviceObject;
4349#line 403
4350 __cil_tmp36 = *__cil_tmp35;
4351#line 403
4352 __cil_tmp37 = (unsigned int )__cil_tmp36;
4353#line 403
4354 __cil_tmp38 = __cil_tmp37 + 40;
4355#line 403
4356 mem_215 = (PVOID *)__cil_tmp38;
4357#line 403
4358 __cil_tmp39 = *mem_215;
4359#line 403
4360 disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp39;
4361 {
4362#line 409
4363 while (1) {
4364 while_4_continue: ;
4365 goto while_4_break;
4366 }
4367 while_4_break: ;
4368 }
4369 {
4370#line 411
4371 __cil_tmp40 = (enum _POOL_TYPE )1;
4372#line 411
4373 __cil_tmp41 = & deviceName;
4374#line 411
4375 mem_216 = (USHORT *)__cil_tmp41;
4376#line 411
4377 __cil_tmp42 = *mem_216;
4378#line 411
4379 __cil_tmp43 = (unsigned long )__cil_tmp42;
4380#line 411
4381 tmp___0 = ExAllocatePoolWithTag(__cil_tmp40, __cil_tmp43, 1886350406UL);
4382#line 411
4383 __cil_tmp44 = 368 + 4;
4384#line 411
4385 __cil_tmp45 = (unsigned int )disketteExtension;
4386#line 411
4387 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
4388#line 411
4389 mem_217 = (PWSTR *)__cil_tmp46;
4390#line 411
4391 *mem_217 = (WCHAR *)tmp___0;
4392 }
4393 {
4394#line 412
4395 __cil_tmp47 = (void *)0;
4396#line 412
4397 __cil_tmp48 = (unsigned int )__cil_tmp47;
4398#line 412
4399 __cil_tmp49 = 368 + 4;
4400#line 412
4401 __cil_tmp50 = (unsigned int )disketteExtension;
4402#line 412
4403 __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
4404#line 412
4405 mem_218 = (PWSTR *)__cil_tmp51;
4406#line 412
4407 __cil_tmp52 = *mem_218;
4408#line 412
4409 __cil_tmp53 = (unsigned int )__cil_tmp52;
4410#line 412
4411 if (__cil_tmp53 == __cil_tmp48) {
4412 {
4413#line 414
4414 __cil_tmp54 = & deviceObject;
4415#line 414
4416 __cil_tmp55 = *__cil_tmp54;
4417#line 414
4418 IoDeleteDevice(__cil_tmp55);
4419 }
4420#line 415
4421 return (-1073741670L);
4422 } else {
4423
4424 }
4425 }
4426 {
4427#line 417
4428 __cil_tmp56 = (unsigned int )disketteExtension;
4429#line 417
4430 __cil_tmp57 = __cil_tmp56 + 368;
4431#line 417
4432 mem_219 = (USHORT *)__cil_tmp57;
4433#line 417
4434 *mem_219 = (unsigned short)0;
4435#line 418
4436 __cil_tmp58 = 368 + 2;
4437#line 418
4438 __cil_tmp59 = (unsigned int )disketteExtension;
4439#line 418
4440 __cil_tmp60 = __cil_tmp59 + __cil_tmp58;
4441#line 418
4442 __cil_tmp61 = & deviceName;
4443#line 418
4444 mem_220 = (USHORT *)__cil_tmp60;
4445#line 418
4446 mem_221 = (USHORT *)__cil_tmp61;
4447#line 418
4448 *mem_220 = *mem_221;
4449#line 419
4450 __cil_tmp62 = (unsigned int )disketteExtension;
4451#line 419
4452 __cil_tmp63 = __cil_tmp62 + 368;
4453#line 419
4454 __cil_tmp64 = (UNICODE_STRING *)__cil_tmp63;
4455#line 419
4456 RtlCopyUnicodeString(__cil_tmp64, & deviceName);
4457#line 421
4458 tmp___1 = IoGetConfigurationInformation();
4459#line 421
4460 __cil_tmp65 = (unsigned int )tmp___1;
4461#line 421
4462 __cil_tmp66 = __cil_tmp65 + 4;
4463#line 421
4464 __cil_tmp67 = (unsigned int )tmp___1;
4465#line 421
4466 __cil_tmp68 = __cil_tmp67 + 4;
4467#line 421
4468 mem_222 = (ULONG *)__cil_tmp68;
4469#line 421
4470 __cil_tmp69 = *mem_222;
4471#line 421
4472 mem_223 = (ULONG *)__cil_tmp66;
4473#line 421
4474 *mem_223 = __cil_tmp69 + 1UL;
4475#line 429
4476 __cil_tmp70 = 0 * 1U;
4477#line 429
4478 __cil_tmp71 = (unsigned int )(arcNameBuffer) + __cil_tmp70;
4479#line 429
4480 __cil_tmp72 = (UCHAR *)__cil_tmp71;
4481#line 429
4482 __cil_tmp73 = (char *)__cil_tmp72;
4483#line 429
4484 __cil_tmp74 = (unsigned int )(& fdcInfo) + 40;
4485#line 429
4486 mem_224 = (ULONG *)__cil_tmp74;
4487#line 429
4488 __cil_tmp75 = *mem_224;
4489#line 429
4490 __cil_tmp76 = (unsigned int )(& fdcInfo) + 44;
4491#line 429
4492 mem_225 = (ULONG *)__cil_tmp76;
4493#line 429
4494 __cil_tmp77 = *mem_225;
4495#line 429
4496 __cil_tmp78 = (unsigned int )(& fdcInfo) + 48;
4497#line 429
4498 mem_226 = (ULONG *)__cil_tmp78;
4499#line 429
4500 __cil_tmp79 = *mem_226;
4501#line 429
4502 sprintf(__cil_tmp73, "%s(%d)disk(%d)fdisk(%d)", "\\ArcName\\multi", __cil_tmp75,
4503 __cil_tmp77, __cil_tmp79);
4504#line 436
4505 __cil_tmp80 = 0 * 1U;
4506#line 436
4507 __cil_tmp81 = (unsigned int )(arcNameBuffer) + __cil_tmp80;
4508#line 436
4509 __cil_tmp82 = (UCHAR *)__cil_tmp81;
4510#line 436
4511 __cil_tmp83 = (char const *)__cil_tmp82;
4512#line 436
4513 RtlInitString(& arcNameString, __cil_tmp83);
4514#line 438
4515 __cil_tmp84 = (unsigned int )disketteExtension;
4516#line 438
4517 __cil_tmp85 = __cil_tmp84 + 384;
4518#line 438
4519 __cil_tmp86 = (UNICODE_STRING *)__cil_tmp85;
4520#line 438
4521 ntStatus = RtlAnsiStringToUnicodeString(__cil_tmp86, & arcNameString, (unsigned char)1);
4522 }
4523#line 442
4524 if (ntStatus >= 0L) {
4525 {
4526#line 444
4527 __cil_tmp87 = (unsigned int )disketteExtension;
4528#line 444
4529 __cil_tmp88 = __cil_tmp87 + 384;
4530#line 444
4531 __cil_tmp89 = (UNICODE_STRING *)__cil_tmp88;
4532#line 444
4533 IoCreateSymbolicLink(__cil_tmp89, & deviceName);
4534 }
4535 } else {
4536
4537 }
4538#line 447
4539 __cil_tmp90 = & deviceObject;
4540#line 447
4541 __cil_tmp91 = *__cil_tmp90;
4542#line 447
4543 __cil_tmp92 = (unsigned int )__cil_tmp91;
4544#line 447
4545 __cil_tmp93 = __cil_tmp92 + 28;
4546#line 447
4547 __cil_tmp94 = & deviceObject;
4548#line 447
4549 __cil_tmp95 = *__cil_tmp94;
4550#line 447
4551 __cil_tmp96 = (unsigned int )__cil_tmp95;
4552#line 447
4553 __cil_tmp97 = __cil_tmp96 + 28;
4554#line 447
4555 mem_227 = (ULONG *)__cil_tmp97;
4556#line 447
4557 __cil_tmp98 = *mem_227;
4558#line 447
4559 mem_228 = (ULONG *)__cil_tmp93;
4560#line 447
4561 *mem_228 = __cil_tmp98 | 8208UL;
4562 {
4563#line 449
4564 __cil_tmp99 = & deviceObject;
4565#line 449
4566 __cil_tmp100 = *__cil_tmp99;
4567#line 449
4568 __cil_tmp101 = (unsigned int )__cil_tmp100;
4569#line 449
4570 __cil_tmp102 = __cil_tmp101 + 92;
4571#line 449
4572 mem_229 = (ULONG *)__cil_tmp102;
4573#line 449
4574 __cil_tmp103 = *mem_229;
4575#line 449
4576 if (__cil_tmp103 < 1UL) {
4577#line 451
4578 __cil_tmp104 = & deviceObject;
4579#line 451
4580 __cil_tmp105 = *__cil_tmp104;
4581#line 451
4582 __cil_tmp106 = (unsigned int )__cil_tmp105;
4583#line 451
4584 __cil_tmp107 = __cil_tmp106 + 92;
4585#line 451
4586 mem_230 = (ULONG *)__cil_tmp107;
4587#line 451
4588 *mem_230 = 1UL;
4589 } else {
4590
4591 }
4592 }
4593#line 454
4594 __cil_tmp108 = & deviceObject;
4595#line 454
4596 __cil_tmp109 = *__cil_tmp108;
4597#line 454
4598 __cil_tmp110 = (unsigned int )__cil_tmp109;
4599#line 454
4600 __cil_tmp111 = __cil_tmp110 + 28;
4601#line 454
4602 __cil_tmp112 = & deviceObject;
4603#line 454
4604 __cil_tmp113 = *__cil_tmp112;
4605#line 454
4606 __cil_tmp114 = (unsigned int )__cil_tmp113;
4607#line 454
4608 __cil_tmp115 = __cil_tmp114 + 28;
4609#line 454
4610 mem_231 = (ULONG *)__cil_tmp115;
4611#line 454
4612 __cil_tmp116 = *mem_231;
4613#line 454
4614 mem_232 = (ULONG *)__cil_tmp111;
4615#line 454
4616 *mem_232 = __cil_tmp116 & 4294967167UL;
4617#line 456
4618 __cil_tmp117 = (unsigned int )disketteExtension;
4619#line 456
4620 __cil_tmp118 = __cil_tmp117 + 136;
4621#line 456
4622 mem_233 = (PDRIVER_OBJECT *)__cil_tmp118;
4623#line 456
4624 *mem_233 = DriverObject;
4625#line 459
4626 __cil_tmp119 = (unsigned int )disketteExtension;
4627#line 459
4628 __cil_tmp120 = __cil_tmp119 + 4;
4629#line 459
4630 mem_234 = (PDEVICE_OBJECT *)__cil_tmp120;
4631#line 459
4632 *mem_234 = PhysicalDeviceObject;
4633 {
4634#line 464
4635 while (1) {
4636 while_5_continue: ;
4637 goto while_5_break;
4638 }
4639 while_5_break: ;
4640 }
4641 {
4642#line 466
4643 __cil_tmp121 = (unsigned int )disketteExtension;
4644#line 466
4645 __cil_tmp122 = __cil_tmp121 + 8;
4646#line 466
4647 __cil_tmp123 = & deviceObject;
4648#line 466
4649 __cil_tmp124 = *__cil_tmp123;
4650#line 466
4651 mem_235 = (PDEVICE_OBJECT *)__cil_tmp122;
4652#line 466
4653 *mem_235 = IoAttachDeviceToDeviceStack(__cil_tmp124, PhysicalDeviceObject);
4654 }
4655 {
4656#line 472
4657 while (1) {
4658 while_6_continue: ;
4659 goto while_6_break;
4660 }
4661 while_6_break: ;
4662 }
4663 {
4664#line 474
4665 __cil_tmp125 = (unsigned int )disketteExtension;
4666#line 474
4667 __cil_tmp126 = __cil_tmp125 + 32;
4668#line 474
4669 __cil_tmp127 = (KSEMAPHORE *)__cil_tmp126;
4670#line 474
4671 KeInitializeSemaphore(__cil_tmp127, 0L, 2147483647L);
4672#line 478
4673 __cil_tmp128 = (unsigned int )disketteExtension;
4674#line 478
4675 __cil_tmp129 = __cil_tmp128 + 396;
4676#line 478
4677 mem_236 = (LONG *)__cil_tmp129;
4678#line 478
4679 *mem_236 = 1L;
4680#line 478
4681 __cil_tmp130 = 396 + 8;
4682#line 478
4683 __cil_tmp131 = (unsigned int )disketteExtension;
4684#line 478
4685 __cil_tmp132 = __cil_tmp131 + __cil_tmp130;
4686#line 478
4687 mem_237 = (ULONG *)__cil_tmp132;
4688#line 478
4689 *mem_237 = 0UL;
4690#line 478
4691 __cil_tmp133 = 396 + 12;
4692#line 478
4693 __cil_tmp134 = (unsigned int )disketteExtension;
4694#line 478
4695 __cil_tmp135 = __cil_tmp134 + __cil_tmp133;
4696#line 478
4697 __cil_tmp136 = (KEVENT *)__cil_tmp135;
4698#line 478
4699 __cil_tmp137 = (enum _EVENT_TYPE )1;
4700#line 478
4701 KeInitializeEvent(__cil_tmp136, __cil_tmp137, (unsigned char)0);
4702#line 480
4703 __cil_tmp138 = (unsigned int )disketteExtension;
4704#line 480
4705 __cil_tmp139 = __cil_tmp138 + 52;
4706#line 480
4707 __cil_tmp140 = (KSPIN_LOCK *)__cil_tmp139;
4708#line 480
4709 KeInitializeSpinLock(__cil_tmp140);
4710#line 482
4711 __cil_tmp141 = (unsigned int )disketteExtension;
4712#line 482
4713 __cil_tmp142 = __cil_tmp141 + 56;
4714#line 482
4715 mem_238 = (LONG *)__cil_tmp142;
4716#line 482
4717 *mem_238 = 1L;
4718#line 482
4719 __cil_tmp143 = 56 + 8;
4720#line 482
4721 __cil_tmp144 = (unsigned int )disketteExtension;
4722#line 482
4723 __cil_tmp145 = __cil_tmp144 + __cil_tmp143;
4724#line 482
4725 mem_239 = (ULONG *)__cil_tmp145;
4726#line 482
4727 *mem_239 = 0UL;
4728#line 482
4729 __cil_tmp146 = 56 + 12;
4730#line 482
4731 __cil_tmp147 = (unsigned int )disketteExtension;
4732#line 482
4733 __cil_tmp148 = __cil_tmp147 + __cil_tmp146;
4734#line 482
4735 __cil_tmp149 = (KEVENT *)__cil_tmp148;
4736#line 482
4737 __cil_tmp150 = (enum _EVENT_TYPE )1;
4738#line 482
4739 KeInitializeEvent(__cil_tmp149, __cil_tmp150, (unsigned char)0);
4740#line 484
4741 __cil_tmp151 = (unsigned int )disketteExtension;
4742#line 484
4743 __cil_tmp152 = __cil_tmp151 + 428;
4744#line 484
4745 mem_240 = (LONG *)__cil_tmp152;
4746#line 484
4747 *mem_240 = 1L;
4748#line 484
4749 __cil_tmp153 = 428 + 8;
4750#line 484
4751 __cil_tmp154 = (unsigned int )disketteExtension;
4752#line 484
4753 __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
4754#line 484
4755 mem_241 = (ULONG *)__cil_tmp155;
4756#line 484
4757 *mem_241 = 0UL;
4758#line 484
4759 __cil_tmp156 = 428 + 12;
4760#line 484
4761 __cil_tmp157 = (unsigned int )disketteExtension;
4762#line 484
4763 __cil_tmp158 = __cil_tmp157 + __cil_tmp156;
4764#line 484
4765 __cil_tmp159 = (KEVENT *)__cil_tmp158;
4766#line 484
4767 __cil_tmp160 = (enum _EVENT_TYPE )1;
4768#line 484
4769 KeInitializeEvent(__cil_tmp159, __cil_tmp160, (unsigned char)0);
4770#line 486
4771 __cil_tmp161 = 96 + 4;
4772#line 486
4773 __cil_tmp162 = (unsigned int )disketteExtension;
4774#line 486
4775 __cil_tmp163 = __cil_tmp162 + __cil_tmp161;
4776#line 486
4777 __cil_tmp164 = (unsigned int )disketteExtension;
4778#line 486
4779 __cil_tmp165 = __cil_tmp164 + 96;
4780#line 486
4781 mem_242 = (struct _LIST_ENTRY **)__cil_tmp163;
4782#line 486
4783 *mem_242 = (LIST_ENTRY *)__cil_tmp165;
4784#line 486
4785 __cil_tmp166 = (unsigned int )disketteExtension;
4786#line 486
4787 __cil_tmp167 = __cil_tmp166 + 96;
4788#line 486
4789 __cil_tmp168 = 96 + 4;
4790#line 486
4791 __cil_tmp169 = (unsigned int )disketteExtension;
4792#line 486
4793 __cil_tmp170 = __cil_tmp169 + __cil_tmp168;
4794#line 486
4795 mem_243 = (struct _LIST_ENTRY **)__cil_tmp167;
4796#line 486
4797 mem_244 = (struct _LIST_ENTRY **)__cil_tmp170;
4798#line 486
4799 *mem_243 = *mem_244;
4800#line 488
4801 __cil_tmp171 = (unsigned int )disketteExtension;
4802#line 488
4803 __cil_tmp172 = __cil_tmp171 + 88;
4804#line 488
4805 mem_245 = (LONG *)__cil_tmp172;
4806#line 488
4807 *mem_245 = -1L;
4808#line 490
4809 __cil_tmp173 = (unsigned int )disketteExtension;
4810#line 490
4811 __cil_tmp174 = __cil_tmp173 + 12;
4812#line 490
4813 mem_246 = (BOOLEAN *)__cil_tmp174;
4814#line 490
4815 *mem_246 = (unsigned char)0;
4816#line 491
4817 __cil_tmp175 = (unsigned int )disketteExtension;
4818#line 491
4819 __cil_tmp176 = __cil_tmp175 + 13;
4820#line 491
4821 mem_247 = (BOOLEAN *)__cil_tmp176;
4822#line 491
4823 *mem_247 = (unsigned char)0;
4824#line 492
4825 __cil_tmp177 = (unsigned int )disketteExtension;
4826#line 492
4827 __cil_tmp178 = __cil_tmp177 + 14;
4828#line 492
4829 mem_248 = (BOOLEAN *)__cil_tmp178;
4830#line 492
4831 *mem_248 = (unsigned char)0;
4832#line 493
4833 __cil_tmp179 = 16 + 4;
4834#line 493
4835 __cil_tmp180 = (unsigned int )disketteExtension;
4836#line 493
4837 __cil_tmp181 = __cil_tmp180 + __cil_tmp179;
4838#line 493
4839 __cil_tmp182 = (unsigned int )disketteExtension;
4840#line 493
4841 __cil_tmp183 = __cil_tmp182 + 16;
4842#line 493
4843 mem_249 = (struct _LIST_ENTRY **)__cil_tmp181;
4844#line 493
4845 *mem_249 = (LIST_ENTRY *)__cil_tmp183;
4846#line 493
4847 __cil_tmp184 = (unsigned int )disketteExtension;
4848#line 493
4849 __cil_tmp185 = __cil_tmp184 + 16;
4850#line 493
4851 __cil_tmp186 = 16 + 4;
4852#line 493
4853 __cil_tmp187 = (unsigned int )disketteExtension;
4854#line 493
4855 __cil_tmp188 = __cil_tmp187 + __cil_tmp186;
4856#line 493
4857 mem_250 = (struct _LIST_ENTRY **)__cil_tmp185;
4858#line 493
4859 mem_251 = (struct _LIST_ENTRY **)__cil_tmp188;
4860#line 493
4861 *mem_250 = *mem_251;
4862#line 494
4863 __cil_tmp189 = (unsigned int )disketteExtension;
4864#line 494
4865 __cil_tmp190 = __cil_tmp189 + 24;
4866#line 494
4867 __cil_tmp191 = (KSPIN_LOCK *)__cil_tmp190;
4868#line 494
4869 KeInitializeSpinLock(__cil_tmp191);
4870#line 495
4871 __cil_tmp192 = (KSPIN_LOCK *)disketteExtension;
4872#line 495
4873 KeInitializeSpinLock(__cil_tmp192);
4874#line 497
4875 __cil_tmp193 = (unsigned int )disketteExtension;
4876#line 497
4877 __cil_tmp194 = __cil_tmp193 + 172;
4878#line 497
4879 mem_252 = (BOOLEAN *)__cil_tmp194;
4880#line 497
4881 *mem_252 = (unsigned char)0;
4882#line 498
4883 __cil_tmp195 = (unsigned int )disketteExtension;
4884#line 498
4885 __cil_tmp196 = __cil_tmp195 + 392;
4886#line 498
4887 mem_253 = (BOOLEAN *)__cil_tmp196;
4888#line 498
4889 *mem_253 = (unsigned char)0;
4890#line 499
4891 __cil_tmp197 = (unsigned int )disketteExtension;
4892#line 499
4893 __cil_tmp198 = __cil_tmp197 + 28;
4894#line 499
4895 __cil_tmp199 = & deviceObject;
4896#line 499
4897 mem_254 = (PDEVICE_OBJECT *)__cil_tmp198;
4898#line 499
4899 *mem_254 = *__cil_tmp199;
4900#line 501
4901 __cil_tmp200 = (unsigned int )disketteExtension;
4902#line 501
4903 __cil_tmp201 = __cil_tmp200 + 250;
4904#line 501
4905 mem_255 = (BOOLEAN *)__cil_tmp201;
4906#line 501
4907 *mem_255 = (unsigned char)0;
4908#line 503
4909 __cil_tmp202 = (unsigned int )disketteExtension;
4910#line 503
4911 __cil_tmp203 = __cil_tmp202 + 184;
4912#line 503
4913 mem_256 = (MEDIA_TYPE *)__cil_tmp203;
4914#line 503
4915 *mem_256 = (enum _MEDIA_TYPE )-1;
4916 }
4917 {
4918#line 505
4919 __cil_tmp204 = (KUSER_SHARED_DATA * const )4292804608U;
4920#line 505
4921 __cil_tmp205 = (unsigned int )__cil_tmp204;
4922#line 505
4923 __cil_tmp206 = __cil_tmp205 + 732;
4924#line 505
4925 mem_257 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp206;
4926#line 505
4927 __cil_tmp207 = *mem_257;
4928#line 505
4929 __cil_tmp208 = (int )__cil_tmp207;
4930#line 505
4931 if (__cil_tmp208 == 1) {
4932#line 505
4933 __cil_tmp209 = (unsigned int )disketteExtension;
4934#line 505
4935 __cil_tmp210 = __cil_tmp209 + 365;
4936#line 505
4937 mem_258 = (BOOLEAN *)__cil_tmp210;
4938#line 505
4939 *mem_258 = (unsigned char)0;
4940 } else {
4941#line 505
4942 __cil_tmp211 = (unsigned int )disketteExtension;
4943#line 505
4944 __cil_tmp212 = __cil_tmp211 + 365;
4945#line 505
4946 mem_259 = (BOOLEAN *)__cil_tmp212;
4947#line 505
4948 *mem_259 = (unsigned char)1;
4949 }
4950 }
4951 } else {
4952
4953 }
4954 } else {
4955
4956 }
4957#line 509
4958 return (ntStatus);
4959}
4960}
4961#line 512 "floppy.c"
4962NTSTATUS FlConfigCallBack(PVOID Context , PUNICODE_STRING PathName , INTERFACE_TYPE BusType ,
4963 ULONG BusNumber , PKEY_VALUE_FULL_INFORMATION *BusInformation ,
4964 CONFIGURATION_TYPE ControllerType , ULONG ControllerNumber ,
4965 PKEY_VALUE_FULL_INFORMATION *ControllerInformation , CONFIGURATION_TYPE PeripheralType ,
4966 ULONG PeripheralNumber , PKEY_VALUE_FULL_INFORMATION *PeripheralInformation )
4967{ PDISKETTE_EXTENSION disketteExtension ;
4968 ULONG i ;
4969 PCM_FULL_RESOURCE_DESCRIPTOR peripheralData ;
4970 PCM_PARTIAL_RESOURCE_DESCRIPTOR partial ;
4971 PCM_FLOPPY_DEVICE_DATA fDeviceData ;
4972 UCHAR driveType ;
4973 PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ;
4974 PKEY_VALUE_FULL_INFORMATION *__cil_tmp19 ;
4975 PKEY_VALUE_FULL_INFORMATION __cil_tmp20 ;
4976 unsigned int __cil_tmp21 ;
4977 unsigned int __cil_tmp22 ;
4978 ULONG __cil_tmp23 ;
4979 PKEY_VALUE_FULL_INFORMATION *__cil_tmp24 ;
4980 PKEY_VALUE_FULL_INFORMATION __cil_tmp25 ;
4981 UCHAR *__cil_tmp26 ;
4982 UCHAR *__cil_tmp27 ;
4983 PKEY_VALUE_FULL_INFORMATION *__cil_tmp28 ;
4984 PKEY_VALUE_FULL_INFORMATION __cil_tmp29 ;
4985 unsigned int __cil_tmp30 ;
4986 unsigned int __cil_tmp31 ;
4987 ULONG __cil_tmp32 ;
4988 PKEY_VALUE_FULL_INFORMATION *__cil_tmp33 ;
4989 PKEY_VALUE_FULL_INFORMATION __cil_tmp34 ;
4990 UCHAR *__cil_tmp35 ;
4991 UCHAR *__cil_tmp36 ;
4992 unsigned int __cil_tmp37 ;
4993 unsigned int __cil_tmp38 ;
4994 unsigned int __cil_tmp39 ;
4995 ULONG __cil_tmp40 ;
4996 unsigned int __cil_tmp41 ;
4997 unsigned int __cil_tmp42 ;
4998 unsigned int __cil_tmp43 ;
4999 unsigned int __cil_tmp44 ;
5000 unsigned int __cil_tmp45 ;
5001 UCHAR __cil_tmp46 ;
5002 int __cil_tmp47 ;
5003 unsigned int __cil_tmp48 ;
5004 unsigned int __cil_tmp49 ;
5005 PCM_PARTIAL_RESOURCE_DESCRIPTOR __cil_tmp50 ;
5006 unsigned int __cil_tmp51 ;
5007 unsigned int __cil_tmp52 ;
5008 ULONG __cil_tmp53 ;
5009 KUSER_SHARED_DATA *__cil_tmp54 ;
5010 unsigned int __cil_tmp55 ;
5011 unsigned int __cil_tmp56 ;
5012 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp57 ;
5013 int __cil_tmp58 ;
5014 unsigned int __cil_tmp59 ;
5015 unsigned int __cil_tmp60 ;
5016 int __cil_tmp61 ;
5017 PDRIVE_MEDIA_LIMITS __cil_tmp62 ;
5018 DRIVE_MEDIA_TYPE __cil_tmp63 ;
5019 unsigned int __cil_tmp64 ;
5020 PDRIVE_MEDIA_CONSTANTS __cil_tmp65 ;
5021 USHORT __cil_tmp66 ;
5022 int __cil_tmp67 ;
5023 unsigned int __cil_tmp68 ;
5024 unsigned int __cil_tmp69 ;
5025 unsigned int __cil_tmp70 ;
5026 unsigned int __cil_tmp71 ;
5027 unsigned int __cil_tmp72 ;
5028 unsigned int __cil_tmp73 ;
5029 unsigned int __cil_tmp74 ;
5030 unsigned int __cil_tmp75 ;
5031 unsigned int __cil_tmp76 ;
5032 unsigned int __cil_tmp77 ;
5033 unsigned int __cil_tmp78 ;
5034 unsigned int __cil_tmp79 ;
5035 unsigned int __cil_tmp80 ;
5036 unsigned int __cil_tmp81 ;
5037 unsigned int __cil_tmp82 ;
5038 unsigned int __cil_tmp83 ;
5039 unsigned int __cil_tmp84 ;
5040 unsigned int __cil_tmp85 ;
5041 UCHAR __cil_tmp86 ;
5042 int __cil_tmp87 ;
5043 unsigned int __cil_tmp88 ;
5044 unsigned int __cil_tmp89 ;
5045 ULONG __cil_tmp90 ;
5046 unsigned int __cil_tmp91 ;
5047 unsigned int __cil_tmp92 ;
5048 unsigned int __cil_tmp93 ;
5049 unsigned int __cil_tmp94 ;
5050 unsigned int __cil_tmp95 ;
5051 unsigned int __cil_tmp96 ;
5052 unsigned int __cil_tmp97 ;
5053 unsigned int __cil_tmp98 ;
5054 unsigned int __cil_tmp99 ;
5055 unsigned int __cil_tmp100 ;
5056 unsigned int __cil_tmp101 ;
5057 unsigned int __cil_tmp102 ;
5058 unsigned int __cil_tmp103 ;
5059 unsigned int __cil_tmp104 ;
5060 unsigned int __cil_tmp105 ;
5061 unsigned int __cil_tmp106 ;
5062 unsigned int __cil_tmp107 ;
5063 unsigned int __cil_tmp108 ;
5064 unsigned int __cil_tmp109 ;
5065 unsigned int __cil_tmp110 ;
5066 unsigned int __cil_tmp111 ;
5067 unsigned int __cil_tmp112 ;
5068 unsigned int __cil_tmp113 ;
5069 unsigned int __cil_tmp114 ;
5070 UCHAR __cil_tmp115 ;
5071 int __cil_tmp116 ;
5072 int __cil_tmp117 ;
5073 int __cil_tmp118 ;
5074 unsigned int __cil_tmp119 ;
5075 unsigned int __cil_tmp120 ;
5076 unsigned int __cil_tmp121 ;
5077 unsigned int __cil_tmp122 ;
5078 UCHAR __cil_tmp123 ;
5079 int __cil_tmp124 ;
5080 int __cil_tmp125 ;
5081 int __cil_tmp126 ;
5082 unsigned int __cil_tmp127 ;
5083 unsigned int __cil_tmp128 ;
5084 UCHAR __cil_tmp129 ;
5085 int __cil_tmp130 ;
5086 unsigned int __cil_tmp131 ;
5087 unsigned int __cil_tmp132 ;
5088 unsigned int __cil_tmp133 ;
5089 unsigned int __cil_tmp134 ;
5090 unsigned int __cil_tmp135 ;
5091 unsigned int __cil_tmp136 ;
5092 unsigned int __cil_tmp137 ;
5093 unsigned int __cil_tmp138 ;
5094 ULONG *mem_139 ;
5095 ULONG *mem_140 ;
5096 ULONG *mem_141 ;
5097 UCHAR *mem_142 ;
5098 ULONG *mem_143 ;
5099 ALTERNATIVE_ARCHITECTURE_TYPE *mem_144 ;
5100 UCHAR *mem_145 ;
5101 DRIVE_MEDIA_TYPE *mem_146 ;
5102 USHORT *mem_147 ;
5103 UCHAR *mem_148 ;
5104 UCHAR *mem_149 ;
5105 UCHAR *mem_150 ;
5106 UCHAR *mem_151 ;
5107 UCHAR *mem_152 ;
5108 UCHAR *mem_153 ;
5109 UCHAR *mem_154 ;
5110 UCHAR *mem_155 ;
5111 UCHAR *mem_156 ;
5112 ULONG *mem_157 ;
5113 UCHAR *mem_158 ;
5114 UCHAR *mem_159 ;
5115 UCHAR *mem_160 ;
5116 UCHAR *mem_161 ;
5117 UCHAR *mem_162 ;
5118 UCHAR *mem_163 ;
5119 UCHAR *mem_164 ;
5120 UCHAR *mem_165 ;
5121 UCHAR *mem_166 ;
5122 UCHAR *mem_167 ;
5123 UCHAR *mem_168 ;
5124 USHORT *mem_169 ;
5125 UCHAR *mem_170 ;
5126 USHORT *mem_171 ;
5127 UCHAR *mem_172 ;
5128 UCHAR *mem_173 ;
5129 UCHAR *mem_174 ;
5130 UCHAR *mem_175 ;
5131 UCHAR *mem_176 ;
5132
5133 {
5134#line 577
5135 disketteExtension = (DISKETTE_EXTENSION *)Context;
5136 {
5137#line 596
5138 __cil_tmp19 = PeripheralInformation + 1;
5139#line 596
5140 __cil_tmp20 = *__cil_tmp19;
5141#line 596
5142 __cil_tmp21 = (unsigned int )__cil_tmp20;
5143#line 596
5144 __cil_tmp22 = __cil_tmp21 + 12;
5145#line 596
5146 mem_139 = (ULONG *)__cil_tmp22;
5147#line 596
5148 __cil_tmp23 = *mem_139;
5149#line 596
5150 __cil_tmp24 = PeripheralInformation + 1;
5151#line 596
5152 __cil_tmp25 = *__cil_tmp24;
5153#line 596
5154 __cil_tmp26 = (UCHAR *)__cil_tmp25;
5155#line 596
5156 __cil_tmp27 = __cil_tmp26 + __cil_tmp23;
5157#line 596
5158 if (! __cil_tmp27) {
5159#line 600
5160 return (-1073741811L);
5161 } else {
5162
5163 }
5164 }
5165#line 604
5166 __cil_tmp28 = PeripheralInformation + 1;
5167#line 604
5168 __cil_tmp29 = *__cil_tmp28;
5169#line 604
5170 __cil_tmp30 = (unsigned int )__cil_tmp29;
5171#line 604
5172 __cil_tmp31 = __cil_tmp30 + 8;
5173#line 604
5174 mem_140 = (ULONG *)__cil_tmp31;
5175#line 604
5176 __cil_tmp32 = *mem_140;
5177#line 604
5178 __cil_tmp33 = PeripheralInformation + 1;
5179#line 604
5180 __cil_tmp34 = *__cil_tmp33;
5181#line 604
5182 __cil_tmp35 = (UCHAR *)__cil_tmp34;
5183#line 604
5184 __cil_tmp36 = __cil_tmp35 + __cil_tmp32;
5185#line 604
5186 peripheralData = (struct _CM_FULL_RESOURCE_DESCRIPTOR *)__cil_tmp36;
5187#line 619
5188 i = 0UL;
5189 {
5190#line 619
5191 while (1) {
5192 while_7_continue: ;
5193 {
5194#line 619
5195 __cil_tmp37 = 36 + 4;
5196#line 619
5197 __cil_tmp38 = (unsigned int )peripheralData;
5198#line 619
5199 __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
5200#line 619
5201 mem_141 = (ULONG *)__cil_tmp39;
5202#line 619
5203 __cil_tmp40 = *mem_141;
5204#line 619
5205 if (i < __cil_tmp40) {
5206
5207 } else {
5208 goto while_7_break;
5209 }
5210 }
5211#line 621
5212 __cil_tmp41 = i * 16U;
5213#line 621
5214 __cil_tmp42 = 8 + __cil_tmp41;
5215#line 621
5216 __cil_tmp43 = 36 + __cil_tmp42;
5217#line 621
5218 __cil_tmp44 = (unsigned int )peripheralData;
5219#line 621
5220 __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
5221#line 621
5222 partial = (CM_PARTIAL_RESOURCE_DESCRIPTOR *)__cil_tmp45;
5223 {
5224#line 624
5225 mem_142 = (UCHAR *)partial;
5226#line 624
5227 __cil_tmp46 = *mem_142;
5228#line 624
5229 __cil_tmp47 = (int )__cil_tmp46;
5230#line 624
5231 if (__cil_tmp47 == 5) {
5232#line 633
5233 __cil_tmp48 = (unsigned int )disketteExtension;
5234#line 633
5235 __cil_tmp49 = __cil_tmp48 + 252;
5236#line 633
5237 biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp49;
5238#line 637
5239 __cil_tmp50 = partial + 1;
5240#line 637
5241 fDeviceData = (struct _CM_FLOPPY_DEVICE_DATA *)__cil_tmp50;
5242 {
5243#line 643
5244 __cil_tmp51 = (unsigned int )fDeviceData;
5245#line 643
5246 __cil_tmp52 = __cil_tmp51 + 12;
5247#line 643
5248 mem_143 = (ULONG *)__cil_tmp52;
5249#line 643
5250 __cil_tmp53 = *mem_143;
5251#line 644
5252 if ((int )__cil_tmp53 == 360) {
5253 goto switch_8_360;
5254 } else {
5255#line 646
5256 if ((int )__cil_tmp53 == 1200) {
5257 goto switch_8_1200;
5258 } else {
5259#line 647
5260 if ((int )__cil_tmp53 == 1185) {
5261 goto switch_8_1185;
5262 } else {
5263#line 648
5264 if ((int )__cil_tmp53 == 1423) {
5265 goto switch_8_1423;
5266 } else {
5267#line 649
5268 if ((int )__cil_tmp53 == 1440) {
5269 goto switch_8_1440;
5270 } else {
5271#line 650
5272 if ((int )__cil_tmp53 == 2880) {
5273 goto switch_8_2880;
5274 } else {
5275#line 651
5276 if ((int )__cil_tmp53 == 1201) {
5277 goto switch_8_1201;
5278 } else {
5279 {
5280 goto switch_8_default;
5281#line 643
5282 if (0) {
5283 switch_8_360:
5284#line 645
5285 driveType = (unsigned char)0;
5286 goto switch_8_break;
5287 switch_8_1200:
5288#line 646
5289 driveType = (unsigned char)1;
5290 goto switch_8_break;
5291 switch_8_1185:
5292#line 647
5293 driveType = (unsigned char)1;
5294 goto switch_8_break;
5295 switch_8_1423:
5296#line 648
5297 driveType = (unsigned char)3;
5298 goto switch_8_break;
5299 switch_8_1440:
5300#line 649
5301 driveType = (unsigned char)3;
5302 goto switch_8_break;
5303 switch_8_2880:
5304#line 650
5305 driveType = (unsigned char)4;
5306 goto switch_8_break;
5307 switch_8_1201: ;
5308 {
5309#line 651
5310 __cil_tmp54 = (KUSER_SHARED_DATA * const )4292804608U;
5311#line 651
5312 __cil_tmp55 = (unsigned int )__cil_tmp54;
5313#line 651
5314 __cil_tmp56 = __cil_tmp55 + 732;
5315#line 651
5316 mem_144 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp56;
5317#line 651
5318 __cil_tmp57 = *mem_144;
5319#line 651
5320 __cil_tmp58 = (int )__cil_tmp57;
5321#line 651
5322 if (__cil_tmp58 == 1) {
5323#line 652
5324 driveType = (unsigned char)5;
5325 goto switch_8_break;
5326 } else {
5327
5328 }
5329 }
5330 switch_8_default: ;
5331 {
5332#line 662
5333 while (1) {
5334 while_9_continue: ;
5335 goto while_9_break;
5336 }
5337 while_9_break: ;
5338 }
5339#line 664
5340 driveType = (unsigned char)1;
5341 {
5342#line 671
5343 while (1) {
5344 while_10_continue: ;
5345 goto while_10_break;
5346 }
5347 while_10_break: ;
5348 }
5349 goto switch_8_break;
5350 } else {
5351 switch_8_break: ;
5352 }
5353 }
5354 }
5355 }
5356 }
5357 }
5358 }
5359 }
5360 }
5361 }
5362#line 677
5363 __cil_tmp59 = (unsigned int )disketteExtension;
5364#line 677
5365 __cil_tmp60 = __cil_tmp59 + 174;
5366#line 677
5367 mem_145 = (UCHAR *)__cil_tmp60;
5368#line 677
5369 *mem_145 = driveType;
5370#line 684
5371 __cil_tmp61 = (int )driveType;
5372#line 684
5373 __cil_tmp62 = DriveMediaLimits + __cil_tmp61;
5374#line 684
5375 mem_146 = (DRIVE_MEDIA_TYPE *)__cil_tmp62;
5376#line 684
5377 __cil_tmp63 = *mem_146;
5378#line 684
5379 __cil_tmp64 = (unsigned int )__cil_tmp63;
5380#line 684
5381 __cil_tmp65 = DriveMediaConstants + __cil_tmp64;
5382#line 684
5383 *biosDriveMediaConstants = *__cil_tmp65;
5384 {
5385#line 693
5386 mem_147 = (USHORT *)fDeviceData;
5387#line 693
5388 __cil_tmp66 = *mem_147;
5389#line 693
5390 __cil_tmp67 = (int )__cil_tmp66;
5391#line 693
5392 if (__cil_tmp67 >= 2) {
5393#line 698
5394 __cil_tmp68 = (unsigned int )biosDriveMediaConstants;
5395#line 698
5396 __cil_tmp69 = __cil_tmp68 + 32;
5397#line 698
5398 __cil_tmp70 = (unsigned int )fDeviceData;
5399#line 698
5400 __cil_tmp71 = __cil_tmp70 + 20;
5401#line 698
5402 mem_148 = (UCHAR *)__cil_tmp69;
5403#line 698
5404 mem_149 = (UCHAR *)__cil_tmp71;
5405#line 698
5406 *mem_148 = *mem_149;
5407#line 701
5408 __cil_tmp72 = (unsigned int )biosDriveMediaConstants;
5409#line 701
5410 __cil_tmp73 = __cil_tmp72 + 33;
5411#line 701
5412 __cil_tmp74 = (unsigned int )fDeviceData;
5413#line 701
5414 __cil_tmp75 = __cil_tmp74 + 21;
5415#line 701
5416 mem_150 = (UCHAR *)__cil_tmp73;
5417#line 701
5418 mem_151 = (UCHAR *)__cil_tmp75;
5419#line 701
5420 *mem_150 = *mem_151;
5421#line 704
5422 __cil_tmp76 = (unsigned int )biosDriveMediaConstants;
5423#line 704
5424 __cil_tmp77 = __cil_tmp76 + 34;
5425#line 704
5426 __cil_tmp78 = (unsigned int )fDeviceData;
5427#line 704
5428 __cil_tmp79 = __cil_tmp78 + 22;
5429#line 704
5430 mem_152 = (UCHAR *)__cil_tmp77;
5431#line 704
5432 mem_153 = (UCHAR *)__cil_tmp79;
5433#line 704
5434 *mem_152 = *mem_153;
5435#line 707
5436 __cil_tmp80 = (unsigned int )biosDriveMediaConstants;
5437#line 707
5438 __cil_tmp81 = __cil_tmp80 + 35;
5439#line 707
5440 __cil_tmp82 = (unsigned int )fDeviceData;
5441#line 707
5442 __cil_tmp83 = __cil_tmp82 + 23;
5443#line 707
5444 mem_154 = (UCHAR *)__cil_tmp81;
5445#line 707
5446 mem_155 = (UCHAR *)__cil_tmp83;
5447#line 707
5448 *mem_154 = *mem_155;
5449 {
5450#line 712
5451 __cil_tmp84 = (unsigned int )fDeviceData;
5452#line 712
5453 __cil_tmp85 = __cil_tmp84 + 24;
5454#line 712
5455 mem_156 = (UCHAR *)__cil_tmp85;
5456#line 712
5457 __cil_tmp86 = *mem_156;
5458#line 712
5459 __cil_tmp87 = (int )__cil_tmp86;
5460#line 712
5461 if (__cil_tmp87 == 0) {
5462#line 716
5463 return (0L);
5464 } else {
5465
5466 }
5467 }
5468 {
5469#line 719
5470 __cil_tmp88 = (unsigned int )fDeviceData;
5471#line 719
5472 __cil_tmp89 = __cil_tmp88 + 12;
5473#line 719
5474 mem_157 = (ULONG *)__cil_tmp89;
5475#line 719
5476 __cil_tmp90 = *mem_157;
5477#line 719
5478 if (__cil_tmp90 == 0UL) {
5479#line 727
5480 return (0L);
5481 } else {
5482
5483 }
5484 }
5485#line 730
5486 __cil_tmp91 = (unsigned int )biosDriveMediaConstants;
5487#line 730
5488 __cil_tmp92 = __cil_tmp91 + 38;
5489#line 730
5490 __cil_tmp93 = (unsigned int )fDeviceData;
5491#line 730
5492 __cil_tmp94 = __cil_tmp93 + 24;
5493#line 730
5494 mem_158 = (UCHAR *)__cil_tmp92;
5495#line 730
5496 mem_159 = (UCHAR *)__cil_tmp94;
5497#line 730
5498 *mem_158 = *mem_159;
5499#line 733
5500 __cil_tmp95 = (unsigned int )biosDriveMediaConstants;
5501#line 733
5502 __cil_tmp96 = __cil_tmp95 + 39;
5503#line 733
5504 __cil_tmp97 = (unsigned int )fDeviceData;
5505#line 733
5506 __cil_tmp98 = __cil_tmp97 + 25;
5507#line 733
5508 mem_160 = (UCHAR *)__cil_tmp96;
5509#line 733
5510 mem_161 = (UCHAR *)__cil_tmp98;
5511#line 733
5512 *mem_160 = *mem_161;
5513#line 736
5514 __cil_tmp99 = (unsigned int )biosDriveMediaConstants;
5515#line 736
5516 __cil_tmp100 = __cil_tmp99 + 40;
5517#line 736
5518 __cil_tmp101 = (unsigned int )fDeviceData;
5519#line 736
5520 __cil_tmp102 = __cil_tmp101 + 27;
5521#line 736
5522 mem_162 = (UCHAR *)__cil_tmp100;
5523#line 736
5524 mem_163 = (UCHAR *)__cil_tmp102;
5525#line 736
5526 *mem_162 = *mem_163;
5527#line 739
5528 __cil_tmp103 = (unsigned int )biosDriveMediaConstants;
5529#line 739
5530 __cil_tmp104 = __cil_tmp103 + 41;
5531#line 739
5532 __cil_tmp105 = (unsigned int )fDeviceData;
5533#line 739
5534 __cil_tmp106 = __cil_tmp105 + 28;
5535#line 739
5536 mem_164 = (UCHAR *)__cil_tmp104;
5537#line 739
5538 mem_165 = (UCHAR *)__cil_tmp106;
5539#line 739
5540 *mem_164 = *mem_165;
5541#line 742
5542 __cil_tmp107 = (unsigned int )biosDriveMediaConstants;
5543#line 742
5544 __cil_tmp108 = __cil_tmp107 + 42;
5545#line 742
5546 __cil_tmp109 = (unsigned int )fDeviceData;
5547#line 742
5548 __cil_tmp110 = __cil_tmp109 + 29;
5549#line 742
5550 mem_166 = (UCHAR *)__cil_tmp108;
5551#line 742
5552 mem_167 = (UCHAR *)__cil_tmp110;
5553#line 742
5554 *mem_166 = *mem_167;
5555#line 745
5556 __cil_tmp111 = (unsigned int )biosDriveMediaConstants;
5557#line 745
5558 __cil_tmp112 = __cil_tmp111 + 44;
5559#line 745
5560 __cil_tmp113 = (unsigned int )fDeviceData;
5561#line 745
5562 __cil_tmp114 = __cil_tmp113 + 30;
5563#line 745
5564 mem_168 = (UCHAR *)__cil_tmp114;
5565#line 745
5566 __cil_tmp115 = *mem_168;
5567#line 745
5568 __cil_tmp116 = (int )__cil_tmp115;
5569#line 745
5570 __cil_tmp117 = __cil_tmp116 * 1000;
5571#line 745
5572 __cil_tmp118 = __cil_tmp117 / 8;
5573#line 745
5574 mem_169 = (USHORT *)__cil_tmp112;
5575#line 745
5576 *mem_169 = (unsigned short )__cil_tmp118;
5577#line 748
5578 __cil_tmp119 = (unsigned int )biosDriveMediaConstants;
5579#line 748
5580 __cil_tmp120 = __cil_tmp119 + 46;
5581#line 748
5582 __cil_tmp121 = (unsigned int )fDeviceData;
5583#line 748
5584 __cil_tmp122 = __cil_tmp121 + 30;
5585#line 748
5586 mem_170 = (UCHAR *)__cil_tmp122;
5587#line 748
5588 __cil_tmp123 = *mem_170;
5589#line 748
5590 __cil_tmp124 = (int )__cil_tmp123;
5591#line 748
5592 __cil_tmp125 = __cil_tmp124 * 1000;
5593#line 748
5594 __cil_tmp126 = __cil_tmp125 / 8;
5595#line 748
5596 mem_171 = (USHORT *)__cil_tmp120;
5597#line 748
5598 *mem_171 = (unsigned short )__cil_tmp126;
5599 {
5600#line 751
5601 __cil_tmp127 = (unsigned int )fDeviceData;
5602#line 751
5603 __cil_tmp128 = __cil_tmp127 + 31;
5604#line 751
5605 mem_172 = (UCHAR *)__cil_tmp128;
5606#line 751
5607 __cil_tmp129 = *mem_172;
5608#line 751
5609 __cil_tmp130 = (int )__cil_tmp129;
5610#line 751
5611 if (__cil_tmp130 == 0) {
5612#line 755
5613 return (0L);
5614 } else {
5615
5616 }
5617 }
5618#line 758
5619 __cil_tmp131 = (unsigned int )biosDriveMediaConstants;
5620#line 758
5621 __cil_tmp132 = __cil_tmp131 + 48;
5622#line 758
5623 __cil_tmp133 = (unsigned int )fDeviceData;
5624#line 758
5625 __cil_tmp134 = __cil_tmp133 + 31;
5626#line 758
5627 mem_173 = (UCHAR *)__cil_tmp132;
5628#line 758
5629 mem_174 = (UCHAR *)__cil_tmp134;
5630#line 758
5631 *mem_173 = *mem_174;
5632#line 761
5633 __cil_tmp135 = (unsigned int )biosDriveMediaConstants;
5634#line 761
5635 __cil_tmp136 = __cil_tmp135 + 52;
5636#line 761
5637 __cil_tmp137 = (unsigned int )fDeviceData;
5638#line 761
5639 __cil_tmp138 = __cil_tmp137 + 26;
5640#line 761
5641 mem_175 = (UCHAR *)__cil_tmp136;
5642#line 761
5643 mem_176 = (UCHAR *)__cil_tmp138;
5644#line 761
5645 *mem_175 = *mem_176;
5646 } else {
5647
5648 }
5649 }
5650 } else {
5651
5652 }
5653 }
5654#line 619
5655 i = i + 1UL;
5656 }
5657 while_7_break: ;
5658 }
5659#line 767
5660 return (0L);
5661}
5662}
5663#line 770 "floppy.c"
5664NTSTATUS FlAcpiConfigureFloppy(PDISKETTE_EXTENSION DisketteExtension , PFDC_INFO FdcInfo )
5665{ UCHAR driveType ;
5666 PDRIVE_MEDIA_CONSTANTS biosDriveMediaConstants ;
5667 unsigned int __cil_tmp5 ;
5668 unsigned int __cil_tmp6 ;
5669 unsigned int __cil_tmp7 ;
5670 unsigned int __cil_tmp8 ;
5671 BOOLEAN __cil_tmp9 ;
5672 unsigned int __cil_tmp10 ;
5673 unsigned int __cil_tmp11 ;
5674 unsigned int __cil_tmp12 ;
5675 ULONG __cil_tmp13 ;
5676 enum _ACPI_FDI_DEVICE_TYPE __cil_tmp14 ;
5677 unsigned int __cil_tmp15 ;
5678 unsigned int __cil_tmp16 ;
5679 int __cil_tmp17 ;
5680 PDRIVE_MEDIA_LIMITS __cil_tmp18 ;
5681 DRIVE_MEDIA_TYPE __cil_tmp19 ;
5682 unsigned int __cil_tmp20 ;
5683 PDRIVE_MEDIA_CONSTANTS __cil_tmp21 ;
5684 unsigned int __cil_tmp22 ;
5685 unsigned int __cil_tmp23 ;
5686 unsigned int __cil_tmp24 ;
5687 unsigned int __cil_tmp25 ;
5688 unsigned int __cil_tmp26 ;
5689 ULONG __cil_tmp27 ;
5690 unsigned int __cil_tmp28 ;
5691 unsigned int __cil_tmp29 ;
5692 unsigned int __cil_tmp30 ;
5693 unsigned int __cil_tmp31 ;
5694 unsigned int __cil_tmp32 ;
5695 ULONG __cil_tmp33 ;
5696 unsigned int __cil_tmp34 ;
5697 unsigned int __cil_tmp35 ;
5698 unsigned int __cil_tmp36 ;
5699 unsigned int __cil_tmp37 ;
5700 unsigned int __cil_tmp38 ;
5701 ULONG __cil_tmp39 ;
5702 unsigned int __cil_tmp40 ;
5703 unsigned int __cil_tmp41 ;
5704 unsigned int __cil_tmp42 ;
5705 unsigned int __cil_tmp43 ;
5706 unsigned int __cil_tmp44 ;
5707 ULONG __cil_tmp45 ;
5708 unsigned int __cil_tmp46 ;
5709 unsigned int __cil_tmp47 ;
5710 unsigned int __cil_tmp48 ;
5711 unsigned int __cil_tmp49 ;
5712 unsigned int __cil_tmp50 ;
5713 ULONG __cil_tmp51 ;
5714 unsigned int __cil_tmp52 ;
5715 unsigned int __cil_tmp53 ;
5716 unsigned int __cil_tmp54 ;
5717 unsigned int __cil_tmp55 ;
5718 unsigned int __cil_tmp56 ;
5719 ULONG __cil_tmp57 ;
5720 unsigned int __cil_tmp58 ;
5721 unsigned int __cil_tmp59 ;
5722 unsigned int __cil_tmp60 ;
5723 unsigned int __cil_tmp61 ;
5724 unsigned int __cil_tmp62 ;
5725 ULONG __cil_tmp63 ;
5726 unsigned int __cil_tmp64 ;
5727 unsigned int __cil_tmp65 ;
5728 unsigned int __cil_tmp66 ;
5729 unsigned int __cil_tmp67 ;
5730 unsigned int __cil_tmp68 ;
5731 ULONG __cil_tmp69 ;
5732 unsigned int __cil_tmp70 ;
5733 unsigned int __cil_tmp71 ;
5734 unsigned int __cil_tmp72 ;
5735 unsigned int __cil_tmp73 ;
5736 unsigned int __cil_tmp74 ;
5737 ULONG __cil_tmp75 ;
5738 unsigned int __cil_tmp76 ;
5739 unsigned int __cil_tmp77 ;
5740 unsigned int __cil_tmp78 ;
5741 unsigned int __cil_tmp79 ;
5742 unsigned int __cil_tmp80 ;
5743 ULONG __cil_tmp81 ;
5744 unsigned char __cil_tmp82 ;
5745 int __cil_tmp83 ;
5746 int __cil_tmp84 ;
5747 int __cil_tmp85 ;
5748 unsigned int __cil_tmp86 ;
5749 unsigned int __cil_tmp87 ;
5750 unsigned int __cil_tmp88 ;
5751 unsigned int __cil_tmp89 ;
5752 unsigned int __cil_tmp90 ;
5753 ULONG __cil_tmp91 ;
5754 unsigned short __cil_tmp92 ;
5755 int __cil_tmp93 ;
5756 int __cil_tmp94 ;
5757 int __cil_tmp95 ;
5758 unsigned int __cil_tmp96 ;
5759 unsigned int __cil_tmp97 ;
5760 unsigned int __cil_tmp98 ;
5761 unsigned int __cil_tmp99 ;
5762 unsigned int __cil_tmp100 ;
5763 ULONG __cil_tmp101 ;
5764 unsigned int __cil_tmp102 ;
5765 unsigned int __cil_tmp103 ;
5766 unsigned int __cil_tmp104 ;
5767 unsigned int __cil_tmp105 ;
5768 unsigned int __cil_tmp106 ;
5769 ULONG __cil_tmp107 ;
5770 BOOLEAN *mem_108 ;
5771 ULONG *mem_109 ;
5772 UCHAR *mem_110 ;
5773 DRIVE_MEDIA_TYPE *mem_111 ;
5774 ULONG *mem_112 ;
5775 UCHAR *mem_113 ;
5776 ULONG *mem_114 ;
5777 UCHAR *mem_115 ;
5778 ULONG *mem_116 ;
5779 UCHAR *mem_117 ;
5780 ULONG *mem_118 ;
5781 UCHAR *mem_119 ;
5782 ULONG *mem_120 ;
5783 UCHAR *mem_121 ;
5784 ULONG *mem_122 ;
5785 UCHAR *mem_123 ;
5786 ULONG *mem_124 ;
5787 UCHAR *mem_125 ;
5788 ULONG *mem_126 ;
5789 UCHAR *mem_127 ;
5790 ULONG *mem_128 ;
5791 UCHAR *mem_129 ;
5792 ULONG *mem_130 ;
5793 USHORT *mem_131 ;
5794 ULONG *mem_132 ;
5795 USHORT *mem_133 ;
5796 ULONG *mem_134 ;
5797 UCHAR *mem_135 ;
5798 ULONG *mem_136 ;
5799 UCHAR *mem_137 ;
5800
5801 {
5802#line 789
5803 __cil_tmp5 = (unsigned int )DisketteExtension;
5804#line 789
5805 __cil_tmp6 = __cil_tmp5 + 252;
5806#line 789
5807 biosDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp6;
5808 {
5809#line 792
5810 __cil_tmp7 = (unsigned int )FdcInfo;
5811#line 792
5812 __cil_tmp8 = __cil_tmp7 + 61;
5813#line 792
5814 mem_108 = (BOOLEAN *)__cil_tmp8;
5815#line 792
5816 __cil_tmp9 = *mem_108;
5817#line 792
5818 if (! __cil_tmp9) {
5819#line 794
5820 return (-1073741823L);
5821 } else {
5822
5823 }
5824 }
5825 {
5826#line 802
5827 __cil_tmp10 = 64 + 4;
5828#line 802
5829 __cil_tmp11 = (unsigned int )FdcInfo;
5830#line 802
5831 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
5832#line 802
5833 mem_109 = (ULONG *)__cil_tmp12;
5834#line 802
5835 __cil_tmp13 = *mem_109;
5836#line 802
5837 __cil_tmp14 = (enum _ACPI_FDI_DEVICE_TYPE )__cil_tmp13;
5838#line 803
5839 if ((int )__cil_tmp14 == 1) {
5840 goto switch_11_1;
5841 } else {
5842#line 805
5843 if ((int )__cil_tmp14 == 2) {
5844 goto switch_11_2;
5845 } else {
5846#line 806
5847 if ((int )__cil_tmp14 == 3) {
5848 goto switch_11_3;
5849 } else {
5850#line 807
5851 if ((int )__cil_tmp14 == 4) {
5852 goto switch_11_4;
5853 } else {
5854#line 808
5855 if ((int )__cil_tmp14 == 5) {
5856 goto switch_11_5;
5857 } else {
5858 {
5859 goto switch_11_default;
5860#line 802
5861 if (0) {
5862 switch_11_1:
5863#line 804
5864 driveType = (unsigned char)0;
5865 goto switch_11_break;
5866 switch_11_2:
5867#line 805
5868 driveType = (unsigned char)1;
5869 goto switch_11_break;
5870 switch_11_3:
5871#line 806
5872 driveType = (unsigned char)2;
5873 goto switch_11_break;
5874 switch_11_4:
5875#line 807
5876 driveType = (unsigned char)3;
5877 goto switch_11_break;
5878 switch_11_5:
5879#line 808
5880 driveType = (unsigned char)4;
5881 goto switch_11_break;
5882 switch_11_default:
5883#line 810
5884 driveType = (unsigned char)1;
5885 goto switch_11_break;
5886 } else {
5887 switch_11_break: ;
5888 }
5889 }
5890 }
5891 }
5892 }
5893 }
5894 }
5895 }
5896#line 814
5897 __cil_tmp15 = (unsigned int )DisketteExtension;
5898#line 814
5899 __cil_tmp16 = __cil_tmp15 + 174;
5900#line 814
5901 mem_110 = (UCHAR *)__cil_tmp16;
5902#line 814
5903 *mem_110 = driveType;
5904#line 821
5905 __cil_tmp17 = (int )driveType;
5906#line 821
5907 __cil_tmp18 = DriveMediaLimits + __cil_tmp17;
5908#line 821
5909 mem_111 = (DRIVE_MEDIA_TYPE *)__cil_tmp18;
5910#line 821
5911 __cil_tmp19 = *mem_111;
5912#line 821
5913 __cil_tmp20 = (unsigned int )__cil_tmp19;
5914#line 821
5915 __cil_tmp21 = DriveMediaConstants + __cil_tmp20;
5916#line 821
5917 *biosDriveMediaConstants = *__cil_tmp21;
5918#line 824
5919 __cil_tmp22 = (unsigned int )biosDriveMediaConstants;
5920#line 824
5921 __cil_tmp23 = __cil_tmp22 + 32;
5922#line 824
5923 __cil_tmp24 = 64 + 20;
5924#line 824
5925 __cil_tmp25 = (unsigned int )FdcInfo;
5926#line 824
5927 __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
5928#line 824
5929 mem_112 = (ULONG *)__cil_tmp26;
5930#line 824
5931 __cil_tmp27 = *mem_112;
5932#line 824
5933 mem_113 = (UCHAR *)__cil_tmp23;
5934#line 824
5935 *mem_113 = (unsigned char )__cil_tmp27;
5936#line 825
5937 __cil_tmp28 = (unsigned int )biosDriveMediaConstants;
5938#line 825
5939 __cil_tmp29 = __cil_tmp28 + 33;
5940#line 825
5941 __cil_tmp30 = 64 + 24;
5942#line 825
5943 __cil_tmp31 = (unsigned int )FdcInfo;
5944#line 825
5945 __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
5946#line 825
5947 mem_114 = (ULONG *)__cil_tmp32;
5948#line 825
5949 __cil_tmp33 = *mem_114;
5950#line 825
5951 mem_115 = (UCHAR *)__cil_tmp29;
5952#line 825
5953 *mem_115 = (unsigned char )__cil_tmp33;
5954#line 826
5955 __cil_tmp34 = (unsigned int )biosDriveMediaConstants;
5956#line 826
5957 __cil_tmp35 = __cil_tmp34 + 34;
5958#line 826
5959 __cil_tmp36 = 64 + 28;
5960#line 826
5961 __cil_tmp37 = (unsigned int )FdcInfo;
5962#line 826
5963 __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
5964#line 826
5965 mem_116 = (ULONG *)__cil_tmp38;
5966#line 826
5967 __cil_tmp39 = *mem_116;
5968#line 826
5969 mem_117 = (UCHAR *)__cil_tmp35;
5970#line 826
5971 *mem_117 = (unsigned char )__cil_tmp39;
5972#line 827
5973 __cil_tmp40 = (unsigned int )biosDriveMediaConstants;
5974#line 827
5975 __cil_tmp41 = __cil_tmp40 + 35;
5976#line 827
5977 __cil_tmp42 = 64 + 32;
5978#line 827
5979 __cil_tmp43 = (unsigned int )FdcInfo;
5980#line 827
5981 __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
5982#line 827
5983 mem_118 = (ULONG *)__cil_tmp44;
5984#line 827
5985 __cil_tmp45 = *mem_118;
5986#line 827
5987 mem_119 = (UCHAR *)__cil_tmp41;
5988#line 827
5989 *mem_119 = (unsigned char )__cil_tmp45;
5990#line 828
5991 __cil_tmp46 = (unsigned int )biosDriveMediaConstants;
5992#line 828
5993 __cil_tmp47 = __cil_tmp46 + 38;
5994#line 828
5995 __cil_tmp48 = 64 + 36;
5996#line 828
5997 __cil_tmp49 = (unsigned int )FdcInfo;
5998#line 828
5999 __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
6000#line 828
6001 mem_120 = (ULONG *)__cil_tmp50;
6002#line 828
6003 __cil_tmp51 = *mem_120;
6004#line 828
6005 mem_121 = (UCHAR *)__cil_tmp47;
6006#line 828
6007 *mem_121 = (unsigned char )__cil_tmp51;
6008#line 829
6009 __cil_tmp52 = (unsigned int )biosDriveMediaConstants;
6010#line 829
6011 __cil_tmp53 = __cil_tmp52 + 39;
6012#line 829
6013 __cil_tmp54 = 64 + 40;
6014#line 829
6015 __cil_tmp55 = (unsigned int )FdcInfo;
6016#line 829
6017 __cil_tmp56 = __cil_tmp55 + __cil_tmp54;
6018#line 829
6019 mem_122 = (ULONG *)__cil_tmp56;
6020#line 829
6021 __cil_tmp57 = *mem_122;
6022#line 829
6023 mem_123 = (UCHAR *)__cil_tmp53;
6024#line 829
6025 *mem_123 = (unsigned char )__cil_tmp57;
6026#line 830
6027 __cil_tmp58 = (unsigned int )biosDriveMediaConstants;
6028#line 830
6029 __cil_tmp59 = __cil_tmp58 + 40;
6030#line 830
6031 __cil_tmp60 = 64 + 48;
6032#line 830
6033 __cil_tmp61 = (unsigned int )FdcInfo;
6034#line 830
6035 __cil_tmp62 = __cil_tmp61 + __cil_tmp60;
6036#line 830
6037 mem_124 = (ULONG *)__cil_tmp62;
6038#line 830
6039 __cil_tmp63 = *mem_124;
6040#line 830
6041 mem_125 = (UCHAR *)__cil_tmp59;
6042#line 830
6043 *mem_125 = (unsigned char )__cil_tmp63;
6044#line 831
6045 __cil_tmp64 = (unsigned int )biosDriveMediaConstants;
6046#line 831
6047 __cil_tmp65 = __cil_tmp64 + 41;
6048#line 831
6049 __cil_tmp66 = 64 + 52;
6050#line 831
6051 __cil_tmp67 = (unsigned int )FdcInfo;
6052#line 831
6053 __cil_tmp68 = __cil_tmp67 + __cil_tmp66;
6054#line 831
6055 mem_126 = (ULONG *)__cil_tmp68;
6056#line 831
6057 __cil_tmp69 = *mem_126;
6058#line 831
6059 mem_127 = (UCHAR *)__cil_tmp65;
6060#line 831
6061 *mem_127 = (unsigned char )__cil_tmp69;
6062#line 832
6063 __cil_tmp70 = (unsigned int )biosDriveMediaConstants;
6064#line 832
6065 __cil_tmp71 = __cil_tmp70 + 42;
6066#line 832
6067 __cil_tmp72 = 64 + 56;
6068#line 832
6069 __cil_tmp73 = (unsigned int )FdcInfo;
6070#line 832
6071 __cil_tmp74 = __cil_tmp73 + __cil_tmp72;
6072#line 832
6073 mem_128 = (ULONG *)__cil_tmp74;
6074#line 832
6075 __cil_tmp75 = *mem_128;
6076#line 832
6077 mem_129 = (UCHAR *)__cil_tmp71;
6078#line 832
6079 *mem_129 = (unsigned char )__cil_tmp75;
6080#line 833
6081 __cil_tmp76 = (unsigned int )biosDriveMediaConstants;
6082#line 833
6083 __cil_tmp77 = __cil_tmp76 + 44;
6084#line 833
6085 __cil_tmp78 = 64 + 60;
6086#line 833
6087 __cil_tmp79 = (unsigned int )FdcInfo;
6088#line 833
6089 __cil_tmp80 = __cil_tmp79 + __cil_tmp78;
6090#line 833
6091 mem_130 = (ULONG *)__cil_tmp80;
6092#line 833
6093 __cil_tmp81 = *mem_130;
6094#line 833
6095 __cil_tmp82 = (unsigned char )__cil_tmp81;
6096#line 833
6097 __cil_tmp83 = (int )__cil_tmp82;
6098#line 833
6099 __cil_tmp84 = __cil_tmp83 * 1000;
6100#line 833
6101 __cil_tmp85 = __cil_tmp84 / 8;
6102#line 833
6103 mem_131 = (USHORT *)__cil_tmp77;
6104#line 833
6105 *mem_131 = (unsigned short )__cil_tmp85;
6106#line 834
6107 __cil_tmp86 = (unsigned int )biosDriveMediaConstants;
6108#line 834
6109 __cil_tmp87 = __cil_tmp86 + 46;
6110#line 834
6111 __cil_tmp88 = 64 + 60;
6112#line 834
6113 __cil_tmp89 = (unsigned int )FdcInfo;
6114#line 834
6115 __cil_tmp90 = __cil_tmp89 + __cil_tmp88;
6116#line 834
6117 mem_132 = (ULONG *)__cil_tmp90;
6118#line 834
6119 __cil_tmp91 = *mem_132;
6120#line 834
6121 __cil_tmp92 = (unsigned short )__cil_tmp91;
6122#line 834
6123 __cil_tmp93 = (int )__cil_tmp92;
6124#line 834
6125 __cil_tmp94 = __cil_tmp93 * 1000;
6126#line 834
6127 __cil_tmp95 = __cil_tmp94 / 8;
6128#line 834
6129 mem_133 = (USHORT *)__cil_tmp87;
6130#line 834
6131 *mem_133 = (unsigned short )__cil_tmp95;
6132#line 835
6133 __cil_tmp96 = (unsigned int )biosDriveMediaConstants;
6134#line 835
6135 __cil_tmp97 = __cil_tmp96 + 48;
6136#line 835
6137 __cil_tmp98 = 64 + 8;
6138#line 835
6139 __cil_tmp99 = (unsigned int )FdcInfo;
6140#line 835
6141 __cil_tmp100 = __cil_tmp99 + __cil_tmp98;
6142#line 835
6143 mem_134 = (ULONG *)__cil_tmp100;
6144#line 835
6145 __cil_tmp101 = *mem_134;
6146#line 835
6147 mem_135 = (UCHAR *)__cil_tmp97;
6148#line 835
6149 *mem_135 = (unsigned char )__cil_tmp101;
6150#line 836
6151 __cil_tmp102 = (unsigned int )biosDriveMediaConstants;
6152#line 836
6153 __cil_tmp103 = __cil_tmp102 + 52;
6154#line 836
6155 __cil_tmp104 = 64 + 44;
6156#line 836
6157 __cil_tmp105 = (unsigned int )FdcInfo;
6158#line 836
6159 __cil_tmp106 = __cil_tmp105 + __cil_tmp104;
6160#line 836
6161 mem_136 = (ULONG *)__cil_tmp106;
6162#line 836
6163 __cil_tmp107 = *mem_136;
6164#line 836
6165 mem_137 = (UCHAR *)__cil_tmp103;
6166#line 836
6167 *mem_137 = (unsigned char )__cil_tmp107;
6168#line 838
6169 return (0L);
6170}
6171}
6172#line 949
6173void assert(int cond) {
6174 if (!(cond)) {
6175 ERROR: goto ERROR;
6176 }
6177 return;
6178}
6179#line 841 "floppy.c"
6180NTSTATUS FlQueueIrpToThread(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension )
6181{ NTSTATUS status ;
6182 HANDLE threadHandle ;
6183 PIO_STACK_LOCATION irpSp ;
6184 OBJECT_ATTRIBUTES ObjAttributes ;
6185 unsigned int __cil_tmp7 ;
6186 unsigned int __cil_tmp8 ;
6187 unsigned int __cil_tmp9 ;
6188 unsigned int __cil_tmp10 ;
6189 unsigned int __cil_tmp11 ;
6190 unsigned int __cil_tmp12 ;
6191 unsigned int __cil_tmp13 ;
6192 FAST_MUTEX *__cil_tmp14 ;
6193 unsigned int __cil_tmp15 ;
6194 unsigned int __cil_tmp16 ;
6195 BOOLEAN __cil_tmp17 ;
6196 int __cil_tmp18 ;
6197 unsigned int __cil_tmp19 ;
6198 unsigned int __cil_tmp20 ;
6199 FAST_MUTEX *__cil_tmp21 ;
6200 unsigned int __cil_tmp22 ;
6201 unsigned int __cil_tmp23 ;
6202 unsigned int __cil_tmp24 ;
6203 unsigned int __cil_tmp25 ;
6204 unsigned int __cil_tmp26 ;
6205 unsigned int __cil_tmp27 ;
6206 unsigned int __cil_tmp28 ;
6207 FAST_MUTEX *__cil_tmp29 ;
6208 unsigned int __cil_tmp30 ;
6209 unsigned int __cil_tmp31 ;
6210 FAST_MUTEX *__cil_tmp32 ;
6211 unsigned int __cil_tmp33 ;
6212 unsigned int __cil_tmp34 ;
6213 unsigned int __cil_tmp35 ;
6214 unsigned int __cil_tmp36 ;
6215 LONG __cil_tmp37 ;
6216 unsigned int __cil_tmp38 ;
6217 unsigned int __cil_tmp39 ;
6218 LONG __cil_tmp40 ;
6219 unsigned int __cil_tmp41 ;
6220 unsigned int __cil_tmp42 ;
6221 unsigned int __cil_tmp43 ;
6222 unsigned int __cil_tmp44 ;
6223 LONG __cil_tmp45 ;
6224 void *__cil_tmp46 ;
6225 OBJECT_ATTRIBUTES *__cil_tmp47 ;
6226 unsigned int __cil_tmp48 ;
6227 unsigned int __cil_tmp49 ;
6228 unsigned int __cil_tmp50 ;
6229 void *__cil_tmp51 ;
6230 unsigned int __cil_tmp52 ;
6231 unsigned int __cil_tmp53 ;
6232 void *__cil_tmp54 ;
6233 void *__cil_tmp55 ;
6234 CLIENT_ID *__cil_tmp56 ;
6235 void *__cil_tmp57 ;
6236 int __cil_tmp58 ;
6237 unsigned int __cil_tmp59 ;
6238 unsigned int __cil_tmp60 ;
6239 void *__cil_tmp61 ;
6240 unsigned int __cil_tmp62 ;
6241 unsigned int __cil_tmp63 ;
6242 FAST_MUTEX *__cil_tmp64 ;
6243 HANDLE *__cil_tmp65 ;
6244 HANDLE __cil_tmp66 ;
6245 void *__cil_tmp67 ;
6246 struct _OBJECT_TYPE *__cil_tmp68 ;
6247 unsigned int __cil_tmp69 ;
6248 unsigned int __cil_tmp70 ;
6249 PKTHREAD *__cil_tmp71 ;
6250 PVOID *__cil_tmp72 ;
6251 void *__cil_tmp73 ;
6252 struct _OBJECT_HANDLE_INFORMATION *__cil_tmp74 ;
6253 HANDLE *__cil_tmp75 ;
6254 HANDLE __cil_tmp76 ;
6255 unsigned int __cil_tmp77 ;
6256 unsigned int __cil_tmp78 ;
6257 FAST_MUTEX *__cil_tmp79 ;
6258 int __cil_tmp80 ;
6259 unsigned int __cil_tmp81 ;
6260 unsigned int __cil_tmp82 ;
6261 FAST_MUTEX *__cil_tmp83 ;
6262 unsigned int __cil_tmp84 ;
6263 unsigned int __cil_tmp85 ;
6264 unsigned int __cil_tmp86 ;
6265 unsigned int __cil_tmp87 ;
6266 unsigned int __cil_tmp88 ;
6267 struct _IO_STACK_LOCATION *__cil_tmp89 ;
6268 unsigned int __cil_tmp90 ;
6269 unsigned int __cil_tmp91 ;
6270 unsigned int __cil_tmp92 ;
6271 unsigned int __cil_tmp93 ;
6272 unsigned int __cil_tmp94 ;
6273 unsigned int __cil_tmp95 ;
6274 unsigned int __cil_tmp96 ;
6275 struct _IO_STACK_LOCATION *__cil_tmp97 ;
6276 unsigned int __cil_tmp98 ;
6277 unsigned int __cil_tmp99 ;
6278 UCHAR __cil_tmp100 ;
6279 int __cil_tmp101 ;
6280 int __cil_tmp102 ;
6281 unsigned int __cil_tmp103 ;
6282 unsigned int __cil_tmp104 ;
6283 LIST_ENTRY *__cil_tmp105 ;
6284 unsigned int __cil_tmp106 ;
6285 unsigned int __cil_tmp107 ;
6286 unsigned int __cil_tmp108 ;
6287 unsigned int __cil_tmp109 ;
6288 LIST_ENTRY *__cil_tmp110 ;
6289 unsigned int __cil_tmp111 ;
6290 unsigned int __cil_tmp112 ;
6291 KSPIN_LOCK *__cil_tmp113 ;
6292 unsigned int __cil_tmp114 ;
6293 unsigned int __cil_tmp115 ;
6294 KSEMAPHORE *__cil_tmp116 ;
6295 struct _IO_STACK_LOCATION **mem_117 ;
6296 BOOLEAN *mem_118 ;
6297 NTSTATUS *mem_119 ;
6298 ULONG_PTR *mem_120 ;
6299 LONG *mem_121 ;
6300 LONG *mem_122 ;
6301 LONG *mem_123 ;
6302 LONG *mem_124 ;
6303 LONG *mem_125 ;
6304 ULONG *mem_126 ;
6305 HANDLE *mem_127 ;
6306 ULONG *mem_128 ;
6307 PUNICODE_STRING *mem_129 ;
6308 PVOID *mem_130 ;
6309 PVOID *mem_131 ;
6310 LONG *mem_132 ;
6311 struct _IO_STACK_LOCATION **mem_133 ;
6312 struct _IO_STACK_LOCATION **mem_134 ;
6313 UCHAR *mem_135 ;
6314 UCHAR *mem_136 ;
6315
6316 {
6317 {
6318#line 871
6319 __cil_tmp7 = 24 + 8;
6320#line 871
6321 __cil_tmp8 = 0 + __cil_tmp7;
6322#line 871
6323 __cil_tmp9 = 64 + __cil_tmp8;
6324#line 871
6325 __cil_tmp10 = (unsigned int )Irp;
6326#line 871
6327 __cil_tmp11 = __cil_tmp10 + __cil_tmp9;
6328#line 871
6329 mem_117 = (struct _IO_STACK_LOCATION **)__cil_tmp11;
6330#line 871
6331 irpSp = *mem_117;
6332#line 878
6333 __cil_tmp12 = (unsigned int )DisketteExtension;
6334#line 878
6335 __cil_tmp13 = __cil_tmp12 + 396;
6336#line 878
6337 __cil_tmp14 = (FAST_MUTEX *)__cil_tmp13;
6338#line 878
6339 ExAcquireFastMutex(__cil_tmp14);
6340 }
6341 {
6342#line 879
6343 __cil_tmp15 = (unsigned int )DisketteExtension;
6344#line 879
6345 __cil_tmp16 = __cil_tmp15 + 393;
6346#line 879
6347 mem_118 = (BOOLEAN *)__cil_tmp16;
6348#line 879
6349 __cil_tmp17 = *mem_118;
6350#line 879
6351 __cil_tmp18 = (int )__cil_tmp17;
6352#line 879
6353 if (__cil_tmp18 == 1) {
6354 {
6355#line 880
6356 __cil_tmp19 = (unsigned int )DisketteExtension;
6357#line 880
6358 __cil_tmp20 = __cil_tmp19 + 396;
6359#line 880
6360 __cil_tmp21 = (FAST_MUTEX *)__cil_tmp20;
6361#line 880
6362 ExReleaseFastMutex(__cil_tmp21);
6363 }
6364 {
6365#line 882
6366 while (1) {
6367 while_12_continue: ;
6368 goto while_12_break;
6369 }
6370 while_12_break: ;
6371 }
6372#line 884
6373 myStatus = -1073741101L;
6374#line 886
6375 __cil_tmp22 = (unsigned int )Irp;
6376#line 886
6377 __cil_tmp23 = __cil_tmp22 + 24;
6378#line 886
6379 mem_119 = (NTSTATUS *)__cil_tmp23;
6380#line 886
6381 *mem_119 = -1073741101L;
6382#line 887
6383 __cil_tmp24 = 24 + 4;
6384#line 887
6385 __cil_tmp25 = (unsigned int )Irp;
6386#line 887
6387 __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
6388#line 887
6389 mem_120 = (ULONG_PTR *)__cil_tmp26;
6390#line 887
6391 *mem_120 = 0UL;
6392#line 888
6393 return (-1073741101L);
6394 } else {
6395
6396 }
6397 }
6398 {
6399#line 890
6400 __cil_tmp27 = (unsigned int )DisketteExtension;
6401#line 890
6402 __cil_tmp28 = __cil_tmp27 + 396;
6403#line 890
6404 __cil_tmp29 = (FAST_MUTEX *)__cil_tmp28;
6405#line 890
6406 ExReleaseFastMutex(__cil_tmp29);
6407 }
6408 {
6409#line 891
6410 while (1) {
6411 while_13_continue: ;
6412 goto while_13_break;
6413 }
6414 while_13_break: ;
6415 }
6416 {
6417#line 891
6418 __cil_tmp30 = (unsigned int )DisketteExtension;
6419#line 891
6420 __cil_tmp31 = __cil_tmp30 + 56;
6421#line 891
6422 __cil_tmp32 = (FAST_MUTEX *)__cil_tmp31;
6423#line 891
6424 ExAcquireFastMutex(__cil_tmp32);
6425#line 893
6426 __cil_tmp33 = (unsigned int )DisketteExtension;
6427#line 893
6428 __cil_tmp34 = __cil_tmp33 + 88;
6429#line 893
6430 __cil_tmp35 = (unsigned int )DisketteExtension;
6431#line 893
6432 __cil_tmp36 = __cil_tmp35 + 88;
6433#line 893
6434 mem_121 = (LONG *)__cil_tmp36;
6435#line 893
6436 __cil_tmp37 = *mem_121;
6437#line 893
6438 mem_122 = (LONG *)__cil_tmp34;
6439#line 893
6440 *mem_122 = __cil_tmp37 + 1L;
6441 }
6442 {
6443#line 893
6444 __cil_tmp38 = (unsigned int )DisketteExtension;
6445#line 893
6446 __cil_tmp39 = __cil_tmp38 + 88;
6447#line 893
6448 mem_123 = (LONG *)__cil_tmp39;
6449#line 893
6450 __cil_tmp40 = *mem_123;
6451#line 893
6452 if (__cil_tmp40 == 0L) {
6453 {
6454#line 896
6455 __cil_tmp41 = (unsigned int )DisketteExtension;
6456#line 896
6457 __cil_tmp42 = __cil_tmp41 + 88;
6458#line 896
6459 __cil_tmp43 = (unsigned int )DisketteExtension;
6460#line 896
6461 __cil_tmp44 = __cil_tmp43 + 88;
6462#line 896
6463 mem_124 = (LONG *)__cil_tmp44;
6464#line 896
6465 __cil_tmp45 = *mem_124;
6466#line 896
6467 mem_125 = (LONG *)__cil_tmp42;
6468#line 896
6469 *mem_125 = __cil_tmp45 + 1L;
6470#line 898
6471 ExAcquireFastMutex(PagingMutex);
6472#line 898
6473 PagingReferenceCount = PagingReferenceCount + 1UL;
6474 }
6475#line 898
6476 if (PagingReferenceCount == 1UL) {
6477 {
6478#line 898
6479 __cil_tmp46 = (void *)(& DriverEntry);
6480#line 898
6481 MmResetDriverPaging(__cil_tmp46);
6482 }
6483 } else {
6484
6485 }
6486 {
6487#line 898
6488 ExReleaseFastMutex(PagingMutex);
6489#line 907
6490 __cil_tmp47 = & ObjAttributes;
6491#line 907
6492 mem_126 = (ULONG *)__cil_tmp47;
6493#line 907
6494 *mem_126 = (unsigned long )24U;
6495#line 907
6496 __cil_tmp48 = (unsigned int )(& ObjAttributes) + 4;
6497#line 907
6498 mem_127 = (HANDLE *)__cil_tmp48;
6499#line 907
6500 *mem_127 = (void *)0;
6501#line 907
6502 __cil_tmp49 = (unsigned int )(& ObjAttributes) + 12;
6503#line 907
6504 mem_128 = (ULONG *)__cil_tmp49;
6505#line 907
6506 *mem_128 = 512UL;
6507#line 907
6508 __cil_tmp50 = (unsigned int )(& ObjAttributes) + 8;
6509#line 907
6510 __cil_tmp51 = (void *)0;
6511#line 907
6512 mem_129 = (PUNICODE_STRING *)__cil_tmp50;
6513#line 907
6514 *mem_129 = (UNICODE_STRING *)__cil_tmp51;
6515#line 907
6516 __cil_tmp52 = (unsigned int )(& ObjAttributes) + 16;
6517#line 907
6518 mem_130 = (PVOID *)__cil_tmp52;
6519#line 907
6520 *mem_130 = (void *)0;
6521#line 907
6522 __cil_tmp53 = (unsigned int )(& ObjAttributes) + 20;
6523#line 907
6524 mem_131 = (PVOID *)__cil_tmp53;
6525#line 907
6526 *mem_131 = (void *)0;
6527#line 909
6528 __cil_tmp54 = (void *)0L;
6529#line 909
6530 __cil_tmp55 = (void *)0;
6531#line 909
6532 __cil_tmp56 = (CLIENT_ID *)__cil_tmp55;
6533#line 909
6534 __cil_tmp57 = (void *)DisketteExtension;
6535#line 909
6536 status = PsCreateSystemThread(& threadHandle, 0UL, & ObjAttributes, __cil_tmp54,
6537 __cil_tmp56, & FloppyThread, __cil_tmp57);
6538 }
6539 {
6540#line 917
6541 __cil_tmp58 = status >= 0L;
6542#line 917
6543 if (! __cil_tmp58) {
6544 {
6545#line 918
6546 __cil_tmp59 = (unsigned int )DisketteExtension;
6547#line 918
6548 __cil_tmp60 = __cil_tmp59 + 88;
6549#line 918
6550 mem_132 = (LONG *)__cil_tmp60;
6551#line 918
6552 *mem_132 = -1L;
6553#line 920
6554 ExAcquireFastMutex(PagingMutex);
6555#line 920
6556 PagingReferenceCount = PagingReferenceCount - 1UL;
6557 }
6558#line 920
6559 if (PagingReferenceCount == 0UL) {
6560 {
6561#line 920
6562 __cil_tmp61 = (void *)(& DriverEntry);
6563#line 920
6564 MmPageEntireDriver(__cil_tmp61);
6565 }
6566 } else {
6567
6568 }
6569 {
6570#line 920
6571 ExReleaseFastMutex(PagingMutex);
6572#line 922
6573 __cil_tmp62 = (unsigned int )DisketteExtension;
6574#line 922
6575 __cil_tmp63 = __cil_tmp62 + 56;
6576#line 922
6577 __cil_tmp64 = (FAST_MUTEX *)__cil_tmp63;
6578#line 922
6579 ExReleaseFastMutex(__cil_tmp64);
6580 }
6581#line 923
6582 return (status);
6583 } else {
6584
6585 }
6586 }
6587 {
6588#line 926
6589 __cil_tmp65 = & threadHandle;
6590#line 926
6591 __cil_tmp66 = *__cil_tmp65;
6592#line 926
6593 __cil_tmp67 = (void *)0;
6594#line 926
6595 __cil_tmp68 = (struct _OBJECT_TYPE *)__cil_tmp67;
6596#line 926
6597 __cil_tmp69 = (unsigned int )DisketteExtension;
6598#line 926
6599 __cil_tmp70 = __cil_tmp69 + 92;
6600#line 926
6601 __cil_tmp71 = (PKTHREAD *)__cil_tmp70;
6602#line 926
6603 __cil_tmp72 = (PVOID *)__cil_tmp71;
6604#line 926
6605 __cil_tmp73 = (void *)0;
6606#line 926
6607 __cil_tmp74 = (struct _OBJECT_HANDLE_INFORMATION *)__cil_tmp73;
6608#line 926
6609 status = ObReferenceObjectByHandle(__cil_tmp66, 1048576UL, __cil_tmp68, (char)0,
6610 __cil_tmp72, __cil_tmp74);
6611#line 935
6612 __cil_tmp75 = & threadHandle;
6613#line 935
6614 __cil_tmp76 = *__cil_tmp75;
6615#line 935
6616 ZwClose(__cil_tmp76);
6617#line 937
6618 __cil_tmp77 = (unsigned int )DisketteExtension;
6619#line 937
6620 __cil_tmp78 = __cil_tmp77 + 56;
6621#line 937
6622 __cil_tmp79 = (FAST_MUTEX *)__cil_tmp78;
6623#line 937
6624 ExReleaseFastMutex(__cil_tmp79);
6625 }
6626 {
6627#line 939
6628 __cil_tmp80 = status >= 0L;
6629#line 939
6630 if (! __cil_tmp80) {
6631#line 940
6632 return (status);
6633 } else {
6634
6635 }
6636 }
6637 } else {
6638 {
6639#line 944
6640 __cil_tmp81 = (unsigned int )DisketteExtension;
6641#line 944
6642 __cil_tmp82 = __cil_tmp81 + 56;
6643#line 944
6644 __cil_tmp83 = (FAST_MUTEX *)__cil_tmp82;
6645#line 944
6646 ExReleaseFastMutex(__cil_tmp83);
6647 }
6648 }
6649 }
6650#line 947
6651 __cil_tmp84 = 24 + 8;
6652#line 947
6653 __cil_tmp85 = 0 + __cil_tmp84;
6654#line 947
6655 __cil_tmp86 = 64 + __cil_tmp85;
6656#line 947
6657 __cil_tmp87 = (unsigned int )Irp;
6658#line 947
6659 __cil_tmp88 = __cil_tmp87 + __cil_tmp86;
6660#line 947
6661 mem_133 = (struct _IO_STACK_LOCATION **)__cil_tmp88;
6662#line 947
6663 __cil_tmp89 = *mem_133;
6664#line 947
6665 __cil_tmp90 = (unsigned int )__cil_tmp89;
6666#line 947
6667 __cil_tmp91 = __cil_tmp90 + 3;
6668#line 947
6669 __cil_tmp92 = 24 + 8;
6670#line 947
6671 __cil_tmp93 = 0 + __cil_tmp92;
6672#line 947
6673 __cil_tmp94 = 64 + __cil_tmp93;
6674#line 947
6675 __cil_tmp95 = (unsigned int )Irp;
6676#line 947
6677 __cil_tmp96 = __cil_tmp95 + __cil_tmp94;
6678#line 947
6679 mem_134 = (struct _IO_STACK_LOCATION **)__cil_tmp96;
6680#line 947
6681 __cil_tmp97 = *mem_134;
6682#line 947
6683 __cil_tmp98 = (unsigned int )__cil_tmp97;
6684#line 947
6685 __cil_tmp99 = __cil_tmp98 + 3;
6686#line 947
6687 mem_135 = (UCHAR *)__cil_tmp99;
6688#line 947
6689 __cil_tmp100 = *mem_135;
6690#line 947
6691 __cil_tmp101 = (int )__cil_tmp100;
6692#line 947
6693 __cil_tmp102 = __cil_tmp101 | 1;
6694#line 947
6695 mem_136 = (UCHAR *)__cil_tmp91;
6696#line 947
6697 *mem_136 = (unsigned char )__cil_tmp102;
6698#line 948
6699 if (pended == 0) {
6700#line 948
6701 pended = 1;
6702 } else {
6703 {
6704#line 949
6705 assert(0);
6706 }
6707 }
6708 {
6709#line 952
6710 __cil_tmp103 = (unsigned int )DisketteExtension;
6711#line 952
6712 __cil_tmp104 = __cil_tmp103 + 96;
6713#line 952
6714 __cil_tmp105 = (LIST_ENTRY *)__cil_tmp104;
6715#line 952
6716 __cil_tmp106 = 0 + 24;
6717#line 952
6718 __cil_tmp107 = 64 + __cil_tmp106;
6719#line 952
6720 __cil_tmp108 = (unsigned int )Irp;
6721#line 952
6722 __cil_tmp109 = __cil_tmp108 + __cil_tmp107;
6723#line 952
6724 __cil_tmp110 = (LIST_ENTRY *)__cil_tmp109;
6725#line 952
6726 __cil_tmp111 = (unsigned int )DisketteExtension;
6727#line 952
6728 __cil_tmp112 = __cil_tmp111 + 52;
6729#line 952
6730 __cil_tmp113 = (KSPIN_LOCK *)__cil_tmp112;
6731#line 952
6732 ExfInterlockedInsertTailList(__cil_tmp105, __cil_tmp110, __cil_tmp113);
6733#line 957
6734 __cil_tmp114 = (unsigned int )DisketteExtension;
6735#line 957
6736 __cil_tmp115 = __cil_tmp114 + 32;
6737#line 957
6738 __cil_tmp116 = (KSEMAPHORE *)__cil_tmp115;
6739#line 957
6740 KeReleaseSemaphore(__cil_tmp116, 0L, 1L, (unsigned char)0);
6741 }
6742#line 963
6743 return (259L);
6744}
6745}
6746#line 966 "floppy.c"
6747NTSTATUS FloppyCreateClose(PDEVICE_OBJECT DeviceObject , PIRP Irp )
6748{ unsigned int __cil_tmp3 ;
6749 unsigned int __cil_tmp4 ;
6750 unsigned int __cil_tmp5 ;
6751 unsigned int __cil_tmp6 ;
6752 unsigned int __cil_tmp7 ;
6753 NTSTATUS *mem_8 ;
6754 ULONG_PTR *mem_9 ;
6755
6756 {
6757 {
6758#line 999
6759 while (1) {
6760 while_14_continue: ;
6761 goto while_14_break;
6762 }
6763 while_14_break: ;
6764 }
6765 {
6766#line 1007
6767 myStatus = 0L;
6768#line 1009
6769 __cil_tmp3 = (unsigned int )Irp;
6770#line 1009
6771 __cil_tmp4 = __cil_tmp3 + 24;
6772#line 1009
6773 mem_8 = (NTSTATUS *)__cil_tmp4;
6774#line 1009
6775 *mem_8 = 0L;
6776#line 1010
6777 __cil_tmp5 = 24 + 4;
6778#line 1010
6779 __cil_tmp6 = (unsigned int )Irp;
6780#line 1010
6781 __cil_tmp7 = __cil_tmp6 + __cil_tmp5;
6782#line 1010
6783 mem_9 = (ULONG_PTR *)__cil_tmp7;
6784#line 1010
6785 *mem_9 = 1UL;
6786#line 1010
6787 IofCompleteRequest(Irp, (char)0);
6788 }
6789#line 1012
6790 return (0L);
6791}
6792}
6793#line 1015 "floppy.c"
6794NTSTATUS FloppyDeviceControl(PDEVICE_OBJECT DeviceObject , PIRP Irp )
6795{ PIO_STACK_LOCATION irpSp ;
6796 PDISKETTE_EXTENSION disketteExtension ;
6797 PDISK_GEOMETRY outputBuffer ;
6798 NTSTATUS ntStatus ;
6799 ULONG outputBufferLength ;
6800 UCHAR i ;
6801 DRIVE_MEDIA_TYPE lowestDriveMediaType ;
6802 DRIVE_MEDIA_TYPE highestDriveMediaType ;
6803 ULONG formatExParametersSize ;
6804 PFORMAT_EX_PARAMETERS formatExParameters ;
6805 NTSTATUS tmp ;
6806 PMOUNTDEV_NAME mountName ;
6807 PMOUNTDEV_UNIQUE_ID uniqueId ;
6808 BOOLEAN tmp___0 ;
6809 PMOUNTDEV_SUGGESTED_LINK_NAME suggestedName ;
6810 WCHAR driveLetterNameBuffer[10] ;
6811 RTL_QUERY_REGISTRY_TABLE queryTable[2] ;
6812 PWSTR valueName ;
6813 UNICODE_STRING driveLetterName ;
6814 PVOID tmp___1 ;
6815 int tmp___2 ;
6816 unsigned int __cil_tmp24 ;
6817 unsigned int __cil_tmp25 ;
6818 PVOID __cil_tmp26 ;
6819 unsigned int __cil_tmp27 ;
6820 unsigned int __cil_tmp28 ;
6821 unsigned int __cil_tmp29 ;
6822 unsigned int __cil_tmp30 ;
6823 unsigned int __cil_tmp31 ;
6824 unsigned int __cil_tmp32 ;
6825 unsigned int __cil_tmp33 ;
6826 FAST_MUTEX *__cil_tmp34 ;
6827 unsigned int __cil_tmp35 ;
6828 unsigned int __cil_tmp36 ;
6829 int __cil_tmp37 ;
6830 int __cil_tmp38 ;
6831 int __cil_tmp39 ;
6832 unsigned long __cil_tmp40 ;
6833 unsigned int __cil_tmp41 ;
6834 unsigned int __cil_tmp42 ;
6835 unsigned int __cil_tmp43 ;
6836 unsigned int __cil_tmp44 ;
6837 ULONG __cil_tmp45 ;
6838 unsigned int __cil_tmp46 ;
6839 unsigned int __cil_tmp47 ;
6840 FAST_MUTEX *__cil_tmp48 ;
6841 unsigned int __cil_tmp49 ;
6842 unsigned int __cil_tmp50 ;
6843 FAST_MUTEX *__cil_tmp51 ;
6844 unsigned int __cil_tmp52 ;
6845 unsigned int __cil_tmp53 ;
6846 unsigned int __cil_tmp54 ;
6847 unsigned int __cil_tmp55 ;
6848 unsigned int __cil_tmp56 ;
6849 unsigned int __cil_tmp57 ;
6850 unsigned int __cil_tmp58 ;
6851 unsigned int __cil_tmp59 ;
6852 unsigned int __cil_tmp60 ;
6853 BOOLEAN __cil_tmp61 ;
6854 unsigned int __cil_tmp62 ;
6855 unsigned int __cil_tmp63 ;
6856 unsigned int __cil_tmp64 ;
6857 unsigned int __cil_tmp65 ;
6858 CHAR __cil_tmp66 ;
6859 int __cil_tmp67 ;
6860 int __cil_tmp68 ;
6861 unsigned int __cil_tmp69 ;
6862 unsigned int __cil_tmp70 ;
6863 unsigned int __cil_tmp71 ;
6864 unsigned int __cil_tmp72 ;
6865 unsigned int __cil_tmp73 ;
6866 unsigned int __cil_tmp74 ;
6867 unsigned int __cil_tmp75 ;
6868 unsigned int __cil_tmp76 ;
6869 unsigned int __cil_tmp77 ;
6870 unsigned int __cil_tmp78 ;
6871 struct _IO_STACK_LOCATION *__cil_tmp79 ;
6872 unsigned int __cil_tmp80 ;
6873 unsigned int __cil_tmp81 ;
6874 PDEVICE_OBJECT __cil_tmp82 ;
6875 unsigned int __cil_tmp83 ;
6876 unsigned int __cil_tmp84 ;
6877 unsigned int __cil_tmp85 ;
6878 unsigned int __cil_tmp86 ;
6879 ULONG __cil_tmp87 ;
6880 int __cil_tmp88 ;
6881 unsigned long __cil_tmp89 ;
6882 unsigned long __cil_tmp90 ;
6883 unsigned long __cil_tmp91 ;
6884 unsigned int __cil_tmp92 ;
6885 unsigned int __cil_tmp93 ;
6886 ULONG __cil_tmp94 ;
6887 unsigned int __cil_tmp95 ;
6888 unsigned int __cil_tmp96 ;
6889 PVOID __cil_tmp97 ;
6890 unsigned int __cil_tmp98 ;
6891 unsigned int __cil_tmp99 ;
6892 USHORT __cil_tmp100 ;
6893 unsigned int __cil_tmp101 ;
6894 unsigned int __cil_tmp102 ;
6895 unsigned long __cil_tmp103 ;
6896 unsigned int __cil_tmp104 ;
6897 unsigned int __cil_tmp105 ;
6898 ULONG __cil_tmp106 ;
6899 unsigned int __cil_tmp107 ;
6900 unsigned int __cil_tmp108 ;
6901 unsigned int __cil_tmp109 ;
6902 unsigned int __cil_tmp110 ;
6903 unsigned int __cil_tmp111 ;
6904 unsigned int __cil_tmp112 ;
6905 unsigned int __cil_tmp113 ;
6906 WCHAR *__cil_tmp114 ;
6907 void *__cil_tmp115 ;
6908 unsigned int __cil_tmp116 ;
6909 unsigned int __cil_tmp117 ;
6910 unsigned int __cil_tmp118 ;
6911 PWSTR __cil_tmp119 ;
6912 void const *__cil_tmp120 ;
6913 USHORT __cil_tmp121 ;
6914 unsigned int __cil_tmp122 ;
6915 unsigned int __cil_tmp123 ;
6916 unsigned int __cil_tmp124 ;
6917 unsigned int __cil_tmp125 ;
6918 USHORT __cil_tmp126 ;
6919 unsigned int __cil_tmp127 ;
6920 unsigned int __cil_tmp128 ;
6921 unsigned int __cil_tmp129 ;
6922 unsigned int __cil_tmp130 ;
6923 unsigned int __cil_tmp131 ;
6924 PWSTR __cil_tmp132 ;
6925 unsigned long __cil_tmp133 ;
6926 unsigned int __cil_tmp134 ;
6927 unsigned int __cil_tmp135 ;
6928 ULONG __cil_tmp136 ;
6929 unsigned int __cil_tmp137 ;
6930 unsigned int __cil_tmp138 ;
6931 PVOID __cil_tmp139 ;
6932 unsigned int __cil_tmp140 ;
6933 unsigned int __cil_tmp141 ;
6934 USHORT __cil_tmp142 ;
6935 unsigned int __cil_tmp143 ;
6936 unsigned int __cil_tmp144 ;
6937 unsigned long __cil_tmp145 ;
6938 unsigned int __cil_tmp146 ;
6939 unsigned int __cil_tmp147 ;
6940 ULONG __cil_tmp148 ;
6941 unsigned int __cil_tmp149 ;
6942 unsigned int __cil_tmp150 ;
6943 unsigned int __cil_tmp151 ;
6944 unsigned int __cil_tmp152 ;
6945 unsigned int __cil_tmp153 ;
6946 unsigned int __cil_tmp154 ;
6947 unsigned int __cil_tmp155 ;
6948 UCHAR *__cil_tmp156 ;
6949 void *__cil_tmp157 ;
6950 unsigned int __cil_tmp158 ;
6951 unsigned int __cil_tmp159 ;
6952 unsigned int __cil_tmp160 ;
6953 PWSTR __cil_tmp161 ;
6954 void const *__cil_tmp162 ;
6955 USHORT __cil_tmp163 ;
6956 unsigned int __cil_tmp164 ;
6957 unsigned int __cil_tmp165 ;
6958 unsigned int __cil_tmp166 ;
6959 unsigned int __cil_tmp167 ;
6960 USHORT __cil_tmp168 ;
6961 unsigned int __cil_tmp169 ;
6962 unsigned int __cil_tmp170 ;
6963 int __cil_tmp171 ;
6964 int __cil_tmp172 ;
6965 int __cil_tmp173 ;
6966 int __cil_tmp174 ;
6967 int __cil_tmp175 ;
6968 int __cil_tmp176 ;
6969 int __cil_tmp177 ;
6970 int __cil_tmp178 ;
6971 unsigned long __cil_tmp179 ;
6972 unsigned int __cil_tmp180 ;
6973 unsigned int __cil_tmp181 ;
6974 unsigned int __cil_tmp182 ;
6975 unsigned int __cil_tmp183 ;
6976 ULONG __cil_tmp184 ;
6977 unsigned int __cil_tmp185 ;
6978 unsigned int __cil_tmp186 ;
6979 PVOID __cil_tmp187 ;
6980 struct _FORMAT_PARAMETERS *__cil_tmp188 ;
6981 int __cil_tmp189 ;
6982 int __cil_tmp190 ;
6983 int __cil_tmp191 ;
6984 int __cil_tmp192 ;
6985 int __cil_tmp193 ;
6986 unsigned long __cil_tmp194 ;
6987 unsigned int __cil_tmp195 ;
6988 unsigned int __cil_tmp196 ;
6989 unsigned int __cil_tmp197 ;
6990 unsigned int __cil_tmp198 ;
6991 ULONG __cil_tmp199 ;
6992 unsigned long __cil_tmp200 ;
6993 unsigned int __cil_tmp201 ;
6994 unsigned int __cil_tmp202 ;
6995 unsigned int __cil_tmp203 ;
6996 unsigned int __cil_tmp204 ;
6997 ULONG __cil_tmp205 ;
6998 unsigned int __cil_tmp206 ;
6999 unsigned int __cil_tmp207 ;
7000 PVOID __cil_tmp208 ;
7001 unsigned int __cil_tmp209 ;
7002 unsigned int __cil_tmp210 ;
7003 USHORT __cil_tmp211 ;
7004 unsigned int __cil_tmp212 ;
7005 unsigned int __cil_tmp213 ;
7006 unsigned long __cil_tmp214 ;
7007 FORMAT_EX_PARAMETERS *__cil_tmp215 ;
7008 unsigned int __cil_tmp216 ;
7009 unsigned int __cil_tmp217 ;
7010 USHORT (*__cil_tmp218)[1] ;
7011 long __cil_tmp219 ;
7012 unsigned long __cil_tmp220 ;
7013 unsigned int __cil_tmp221 ;
7014 unsigned int __cil_tmp222 ;
7015 unsigned int __cil_tmp223 ;
7016 unsigned int __cil_tmp224 ;
7017 ULONG __cil_tmp225 ;
7018 unsigned int __cil_tmp226 ;
7019 unsigned int __cil_tmp227 ;
7020 USHORT __cil_tmp228 ;
7021 int __cil_tmp229 ;
7022 unsigned int __cil_tmp230 ;
7023 unsigned int __cil_tmp231 ;
7024 USHORT __cil_tmp232 ;
7025 int __cil_tmp233 ;
7026 int __cil_tmp234 ;
7027 int __cil_tmp235 ;
7028 int __cil_tmp236 ;
7029 int __cil_tmp237 ;
7030 int __cil_tmp238 ;
7031 int __cil_tmp239 ;
7032 int __cil_tmp240 ;
7033 int __cil_tmp241 ;
7034 int __cil_tmp242 ;
7035 int __cil_tmp243 ;
7036 int __cil_tmp244 ;
7037 int __cil_tmp245 ;
7038 int __cil_tmp246 ;
7039 int __cil_tmp247 ;
7040 unsigned int __cil_tmp248 ;
7041 unsigned int __cil_tmp249 ;
7042 UCHAR __cil_tmp250 ;
7043 int __cil_tmp251 ;
7044 PDRIVE_MEDIA_LIMITS __cil_tmp252 ;
7045 unsigned int __cil_tmp253 ;
7046 unsigned int __cil_tmp254 ;
7047 unsigned int __cil_tmp255 ;
7048 unsigned int __cil_tmp256 ;
7049 UCHAR __cil_tmp257 ;
7050 int __cil_tmp258 ;
7051 PDRIVE_MEDIA_LIMITS __cil_tmp259 ;
7052 unsigned int __cil_tmp260 ;
7053 unsigned int __cil_tmp261 ;
7054 unsigned long __cil_tmp262 ;
7055 int __cil_tmp263 ;
7056 int __cil_tmp264 ;
7057 int __cil_tmp265 ;
7058 int __cil_tmp266 ;
7059 unsigned int __cil_tmp267 ;
7060 unsigned int __cil_tmp268 ;
7061 unsigned long __cil_tmp269 ;
7062 unsigned long __cil_tmp270 ;
7063 ULONG __cil_tmp271 ;
7064 int __cil_tmp272 ;
7065 int __cil_tmp273 ;
7066 unsigned long __cil_tmp274 ;
7067 unsigned long __cil_tmp275 ;
7068 unsigned int __cil_tmp276 ;
7069 unsigned int __cil_tmp277 ;
7070 PVOID __cil_tmp278 ;
7071 unsigned char __cil_tmp279 ;
7072 int __cil_tmp280 ;
7073 int __cil_tmp281 ;
7074 unsigned int __cil_tmp282 ;
7075 unsigned int __cil_tmp283 ;
7076 int __cil_tmp284 ;
7077 PDRIVE_MEDIA_CONSTANTS __cil_tmp285 ;
7078 int __cil_tmp286 ;
7079 PDRIVE_MEDIA_CONSTANTS __cil_tmp287 ;
7080 unsigned int __cil_tmp288 ;
7081 unsigned int __cil_tmp289 ;
7082 UCHAR __cil_tmp290 ;
7083 int __cil_tmp291 ;
7084 int __cil_tmp292 ;
7085 unsigned int __cil_tmp293 ;
7086 unsigned int __cil_tmp294 ;
7087 unsigned int __cil_tmp295 ;
7088 unsigned int __cil_tmp296 ;
7089 unsigned int __cil_tmp297 ;
7090 unsigned int __cil_tmp298 ;
7091 int __cil_tmp299 ;
7092 PDRIVE_MEDIA_CONSTANTS __cil_tmp300 ;
7093 unsigned int __cil_tmp301 ;
7094 unsigned int __cil_tmp302 ;
7095 UCHAR __cil_tmp303 ;
7096 unsigned int __cil_tmp304 ;
7097 unsigned int __cil_tmp305 ;
7098 int __cil_tmp306 ;
7099 PDRIVE_MEDIA_CONSTANTS __cil_tmp307 ;
7100 unsigned int __cil_tmp308 ;
7101 unsigned int __cil_tmp309 ;
7102 UCHAR __cil_tmp310 ;
7103 unsigned int __cil_tmp311 ;
7104 unsigned int __cil_tmp312 ;
7105 int __cil_tmp313 ;
7106 PDRIVE_MEDIA_CONSTANTS __cil_tmp314 ;
7107 unsigned int __cil_tmp315 ;
7108 unsigned int __cil_tmp316 ;
7109 USHORT __cil_tmp317 ;
7110 unsigned int __cil_tmp318 ;
7111 unsigned int __cil_tmp319 ;
7112 unsigned int __cil_tmp320 ;
7113 unsigned long __cil_tmp321 ;
7114 unsigned int __cil_tmp322 ;
7115 unsigned int __cil_tmp323 ;
7116 unsigned int __cil_tmp324 ;
7117 ULONG_PTR __cil_tmp325 ;
7118 int __cil_tmp326 ;
7119 int __cil_tmp327 ;
7120 int __cil_tmp328 ;
7121 unsigned long __cil_tmp329 ;
7122 unsigned long __cil_tmp330 ;
7123 KUSER_SHARED_DATA *__cil_tmp331 ;
7124 unsigned int __cil_tmp332 ;
7125 unsigned int __cil_tmp333 ;
7126 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp334 ;
7127 int __cil_tmp335 ;
7128 unsigned int __cil_tmp336 ;
7129 unsigned int __cil_tmp337 ;
7130 ULONG __cil_tmp338 ;
7131 unsigned long __cil_tmp339 ;
7132 unsigned long __cil_tmp340 ;
7133 unsigned int __cil_tmp341 ;
7134 unsigned int __cil_tmp342 ;
7135 ULONG __cil_tmp343 ;
7136 enum _POOL_TYPE __cil_tmp344 ;
7137 unsigned int __cil_tmp345 ;
7138 unsigned long __cil_tmp346 ;
7139 void *__cil_tmp347 ;
7140 unsigned int __cil_tmp348 ;
7141 void *__cil_tmp349 ;
7142 unsigned int __cil_tmp350 ;
7143 unsigned int __cil_tmp351 ;
7144 unsigned int __cil_tmp352 ;
7145 PWSTR __cil_tmp353 ;
7146 void const *__cil_tmp354 ;
7147 unsigned int __cil_tmp355 ;
7148 unsigned int __cil_tmp356 ;
7149 USHORT __cil_tmp357 ;
7150 unsigned int __cil_tmp358 ;
7151 unsigned int __cil_tmp359 ;
7152 unsigned int __cil_tmp360 ;
7153 unsigned int __cil_tmp361 ;
7154 unsigned int __cil_tmp362 ;
7155 UNICODE_STRING *__cil_tmp363 ;
7156 unsigned int __cil_tmp364 ;
7157 unsigned int __cil_tmp365 ;
7158 RTL_QUERY_REGISTRY_TABLE *__cil_tmp366 ;
7159 void *__cil_tmp367 ;
7160 unsigned int __cil_tmp368 ;
7161 unsigned int __cil_tmp369 ;
7162 unsigned int __cil_tmp370 ;
7163 unsigned int __cil_tmp371 ;
7164 unsigned int __cil_tmp372 ;
7165 unsigned int __cil_tmp373 ;
7166 unsigned int __cil_tmp374 ;
7167 unsigned int __cil_tmp375 ;
7168 unsigned int __cil_tmp376 ;
7169 unsigned int __cil_tmp377 ;
7170 WCHAR const *__cil_tmp378 ;
7171 unsigned int __cil_tmp379 ;
7172 unsigned int __cil_tmp380 ;
7173 RTL_QUERY_REGISTRY_TABLE *__cil_tmp381 ;
7174 void *__cil_tmp382 ;
7175 void *__cil_tmp383 ;
7176 int __cil_tmp384 ;
7177 void *__cil_tmp385 ;
7178 UNICODE_STRING *__cil_tmp386 ;
7179 USHORT __cil_tmp387 ;
7180 int __cil_tmp388 ;
7181 void *__cil_tmp389 ;
7182 unsigned int __cil_tmp390 ;
7183 PWSTR __cil_tmp391 ;
7184 PWSTR __cil_tmp392 ;
7185 WCHAR __cil_tmp393 ;
7186 int __cil_tmp394 ;
7187 void *__cil_tmp395 ;
7188 unsigned int __cil_tmp396 ;
7189 PWSTR __cil_tmp397 ;
7190 PWSTR __cil_tmp398 ;
7191 WCHAR __cil_tmp399 ;
7192 int __cil_tmp400 ;
7193 void *__cil_tmp401 ;
7194 unsigned int __cil_tmp402 ;
7195 PWSTR __cil_tmp403 ;
7196 PWSTR __cil_tmp404 ;
7197 WCHAR __cil_tmp405 ;
7198 int __cil_tmp406 ;
7199 void *__cil_tmp407 ;
7200 unsigned int __cil_tmp408 ;
7201 unsigned int __cil_tmp409 ;
7202 PVOID __cil_tmp410 ;
7203 unsigned int __cil_tmp411 ;
7204 unsigned int __cil_tmp412 ;
7205 unsigned int __cil_tmp413 ;
7206 unsigned int __cil_tmp414 ;
7207 unsigned int __cil_tmp415 ;
7208 MOUNTDEV_SUGGESTED_LINK_NAME *__cil_tmp416 ;
7209 unsigned int __cil_tmp417 ;
7210 unsigned int __cil_tmp418 ;
7211 WCHAR (*__cil_tmp419)[1] ;
7212 long __cil_tmp420 ;
7213 long __cil_tmp421 ;
7214 unsigned int __cil_tmp422 ;
7215 unsigned int __cil_tmp423 ;
7216 unsigned int __cil_tmp424 ;
7217 ULONG_PTR __cil_tmp425 ;
7218 unsigned int __cil_tmp426 ;
7219 unsigned int __cil_tmp427 ;
7220 ULONG __cil_tmp428 ;
7221 unsigned int __cil_tmp429 ;
7222 unsigned int __cil_tmp430 ;
7223 unsigned int __cil_tmp431 ;
7224 void *__cil_tmp432 ;
7225 WCHAR const *__cil_tmp433 ;
7226 WCHAR const *__cil_tmp434 ;
7227 void *__cil_tmp435 ;
7228 unsigned int __cil_tmp436 ;
7229 unsigned int __cil_tmp437 ;
7230 unsigned int __cil_tmp438 ;
7231 unsigned int __cil_tmp439 ;
7232 WCHAR *__cil_tmp440 ;
7233 void *__cil_tmp441 ;
7234 void const *__cil_tmp442 ;
7235 unsigned int __cil_tmp443 ;
7236 unsigned int __cil_tmp444 ;
7237 unsigned int __cil_tmp445 ;
7238 unsigned int __cil_tmp446 ;
7239 unsigned int __cil_tmp447 ;
7240 PWSTR __cil_tmp448 ;
7241 PWSTR __cil_tmp449 ;
7242 unsigned int __cil_tmp450 ;
7243 unsigned int __cil_tmp451 ;
7244 unsigned int __cil_tmp452 ;
7245 unsigned int __cil_tmp453 ;
7246 int __cil_tmp454 ;
7247 int __cil_tmp455 ;
7248 KUSER_SHARED_DATA *__cil_tmp456 ;
7249 unsigned int __cil_tmp457 ;
7250 unsigned int __cil_tmp458 ;
7251 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp459 ;
7252 int __cil_tmp460 ;
7253 unsigned long __cil_tmp461 ;
7254 unsigned int __cil_tmp462 ;
7255 unsigned int __cil_tmp463 ;
7256 ULONG __cil_tmp464 ;
7257 unsigned int __cil_tmp465 ;
7258 unsigned int __cil_tmp466 ;
7259 unsigned int __cil_tmp467 ;
7260 unsigned int __cil_tmp468 ;
7261 CHAR __cil_tmp469 ;
7262 int __cil_tmp470 ;
7263 int __cil_tmp471 ;
7264 unsigned int __cil_tmp472 ;
7265 unsigned int __cil_tmp473 ;
7266 unsigned int __cil_tmp474 ;
7267 unsigned int __cil_tmp475 ;
7268 unsigned int __cil_tmp476 ;
7269 unsigned int __cil_tmp477 ;
7270 unsigned int __cil_tmp478 ;
7271 unsigned int __cil_tmp479 ;
7272 unsigned int __cil_tmp480 ;
7273 unsigned int __cil_tmp481 ;
7274 struct _IO_STACK_LOCATION *__cil_tmp482 ;
7275 unsigned int __cil_tmp483 ;
7276 unsigned int __cil_tmp484 ;
7277 PDEVICE_OBJECT __cil_tmp485 ;
7278 unsigned int __cil_tmp486 ;
7279 unsigned int __cil_tmp487 ;
7280 int __cil_tmp488 ;
7281 PVOID *mem_489 ;
7282 struct _IO_STACK_LOCATION **mem_490 ;
7283 BOOLEAN *mem_491 ;
7284 ULONG *mem_492 ;
7285 BOOLEAN *mem_493 ;
7286 ULONG_PTR *mem_494 ;
7287 NTSTATUS *mem_495 ;
7288 BOOLEAN *mem_496 ;
7289 CHAR *mem_497 ;
7290 CHAR *mem_498 ;
7291 struct _IO_STACK_LOCATION **mem_499 ;
7292 struct _IO_STACK_LOCATION **mem_500 ;
7293 PDEVICE_OBJECT *mem_501 ;
7294 ULONG *mem_502 ;
7295 ULONG *mem_503 ;
7296 PVOID *mem_504 ;
7297 USHORT *mem_505 ;
7298 USHORT *mem_506 ;
7299 USHORT *mem_507 ;
7300 ULONG *mem_508 ;
7301 ULONG_PTR *mem_509 ;
7302 PWSTR *mem_510 ;
7303 USHORT *mem_511 ;
7304 USHORT *mem_512 ;
7305 ULONG_PTR *mem_513 ;
7306 PWSTR *mem_514 ;
7307 ULONG *mem_515 ;
7308 PVOID *mem_516 ;
7309 USHORT *mem_517 ;
7310 USHORT *mem_518 ;
7311 USHORT *mem_519 ;
7312 ULONG *mem_520 ;
7313 ULONG_PTR *mem_521 ;
7314 PWSTR *mem_522 ;
7315 USHORT *mem_523 ;
7316 USHORT *mem_524 ;
7317 ULONG_PTR *mem_525 ;
7318 ULONG *mem_526 ;
7319 PVOID *mem_527 ;
7320 ULONG *mem_528 ;
7321 ULONG *mem_529 ;
7322 PVOID *mem_530 ;
7323 USHORT *mem_531 ;
7324 ULONG *mem_532 ;
7325 USHORT *mem_533 ;
7326 USHORT *mem_534 ;
7327 UCHAR *mem_535 ;
7328 DRIVE_MEDIA_TYPE *mem_536 ;
7329 UCHAR *mem_537 ;
7330 DRIVE_MEDIA_TYPE *mem_538 ;
7331 ULONG *mem_539 ;
7332 PVOID *mem_540 ;
7333 MEDIA_TYPE *mem_541 ;
7334 MEDIA_TYPE *mem_542 ;
7335 UCHAR *mem_543 ;
7336 ULONG *mem_544 ;
7337 LONG *mem_545 ;
7338 UCHAR *mem_546 ;
7339 ULONG *mem_547 ;
7340 UCHAR *mem_548 ;
7341 ULONG *mem_549 ;
7342 USHORT *mem_550 ;
7343 ULONG *mem_551 ;
7344 ULONG_PTR *mem_552 ;
7345 ULONG_PTR *mem_553 ;
7346 ALTERNATIVE_ARCHITECTURE_TYPE *mem_554 ;
7347 ULONG *mem_555 ;
7348 ULONG *mem_556 ;
7349 PWSTR *mem_557 ;
7350 USHORT *mem_558 ;
7351 PWSTR *mem_559 ;
7352 USHORT *mem_560 ;
7353 USHORT *mem_561 ;
7354 ULONG *mem_562 ;
7355 PWSTR *mem_563 ;
7356 PVOID *mem_564 ;
7357 USHORT *mem_565 ;
7358 PWSTR *mem_566 ;
7359 PWSTR *mem_567 ;
7360 PWSTR *mem_568 ;
7361 PVOID *mem_569 ;
7362 BOOLEAN *mem_570 ;
7363 USHORT *mem_571 ;
7364 ULONG_PTR *mem_572 ;
7365 ULONG_PTR *mem_573 ;
7366 ULONG *mem_574 ;
7367 ULONG_PTR *mem_575 ;
7368 PWSTR *mem_576 ;
7369 WCHAR *mem_577 ;
7370 WCHAR *mem_578 ;
7371 ALTERNATIVE_ARCHITECTURE_TYPE *mem_579 ;
7372 ULONG *mem_580 ;
7373 CHAR *mem_581 ;
7374 CHAR *mem_582 ;
7375 struct _IO_STACK_LOCATION **mem_583 ;
7376 struct _IO_STACK_LOCATION **mem_584 ;
7377 PDEVICE_OBJECT *mem_585 ;
7378 NTSTATUS *mem_586 ;
7379
7380 {
7381 {
7382#line 1054
7383 while (1) {
7384 while_15_continue: ;
7385 goto while_15_break;
7386 }
7387 while_15_break: ;
7388 }
7389 {
7390#line 1056
7391 __cil_tmp24 = (unsigned int )DeviceObject;
7392#line 1056
7393 __cil_tmp25 = __cil_tmp24 + 40;
7394#line 1056
7395 mem_489 = (PVOID *)__cil_tmp25;
7396#line 1056
7397 __cil_tmp26 = *mem_489;
7398#line 1056
7399 disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp26;
7400#line 1057
7401 __cil_tmp27 = 24 + 8;
7402#line 1057
7403 __cil_tmp28 = 0 + __cil_tmp27;
7404#line 1057
7405 __cil_tmp29 = 64 + __cil_tmp28;
7406#line 1057
7407 __cil_tmp30 = (unsigned int )Irp;
7408#line 1057
7409 __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
7410#line 1057
7411 mem_490 = (struct _IO_STACK_LOCATION **)__cil_tmp31;
7412#line 1057
7413 irpSp = *mem_490;
7414#line 1062
7415 __cil_tmp32 = (unsigned int )disketteExtension;
7416#line 1062
7417 __cil_tmp33 = __cil_tmp32 + 428;
7418#line 1062
7419 __cil_tmp34 = (FAST_MUTEX *)__cil_tmp33;
7420#line 1062
7421 ExAcquireFastMutex(__cil_tmp34);
7422 }
7423 {
7424#line 1063
7425 __cil_tmp35 = (unsigned int )disketteExtension;
7426#line 1063
7427 __cil_tmp36 = __cil_tmp35 + 14;
7428 {
7429#line 1063
7430 mem_491 = (BOOLEAN *)__cil_tmp36;
7431#line 1063
7432 if (*mem_491) {
7433 {
7434#line 1070
7435 __cil_tmp37 = 3 << 14;
7436#line 1070
7437 __cil_tmp38 = 50 << 16;
7438#line 1070
7439 __cil_tmp39 = __cil_tmp38 | __cil_tmp37;
7440#line 1070
7441 __cil_tmp40 = (unsigned long )__cil_tmp39;
7442#line 1070
7443 __cil_tmp41 = 0 + 8;
7444#line 1070
7445 __cil_tmp42 = 4 + __cil_tmp41;
7446#line 1070
7447 __cil_tmp43 = (unsigned int )irpSp;
7448#line 1070
7449 __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
7450#line 1070
7451 mem_492 = (ULONG *)__cil_tmp44;
7452#line 1070
7453 __cil_tmp45 = *mem_492;
7454#line 1070
7455 if (__cil_tmp45 != __cil_tmp40) {
7456 {
7457#line 1072
7458 ntStatus = FloppyQueueRequest(disketteExtension, Irp);
7459#line 1074
7460 __cil_tmp46 = (unsigned int )disketteExtension;
7461#line 1074
7462 __cil_tmp47 = __cil_tmp46 + 428;
7463#line 1074
7464 __cil_tmp48 = (FAST_MUTEX *)__cil_tmp47;
7465#line 1074
7466 ExReleaseFastMutex(__cil_tmp48);
7467 }
7468#line 1075
7469 return (ntStatus);
7470 } else {
7471
7472 }
7473 }
7474 } else {
7475
7476 }
7477 }
7478 }
7479 {
7480#line 1078
7481 __cil_tmp49 = (unsigned int )disketteExtension;
7482#line 1078
7483 __cil_tmp50 = __cil_tmp49 + 428;
7484#line 1078
7485 __cil_tmp51 = (FAST_MUTEX *)__cil_tmp50;
7486#line 1078
7487 ExReleaseFastMutex(__cil_tmp51);
7488 }
7489 {
7490#line 1083
7491 __cil_tmp52 = (unsigned int )disketteExtension;
7492#line 1083
7493 __cil_tmp53 = __cil_tmp52 + 13;
7494 {
7495#line 1083
7496 mem_493 = (BOOLEAN *)__cil_tmp53;
7497#line 1083
7498 if (*mem_493) {
7499 {
7500#line 1085
7501 __cil_tmp54 = 24 + 4;
7502#line 1085
7503 __cil_tmp55 = (unsigned int )Irp;
7504#line 1085
7505 __cil_tmp56 = __cil_tmp55 + __cil_tmp54;
7506#line 1085
7507 mem_494 = (ULONG_PTR *)__cil_tmp56;
7508#line 1085
7509 *mem_494 = 0UL;
7510#line 1086
7511 __cil_tmp57 = (unsigned int )Irp;
7512#line 1086
7513 __cil_tmp58 = __cil_tmp57 + 24;
7514#line 1086
7515 mem_495 = (NTSTATUS *)__cil_tmp58;
7516#line 1086
7517 *mem_495 = -1073741738L;
7518#line 1087
7519 myStatus = -1073741738L;
7520#line 1088
7521 IofCompleteRequest(Irp, (char)0);
7522 }
7523#line 1089
7524 return (-1073741738L);
7525 } else {
7526
7527 }
7528 }
7529 }
7530 {
7531#line 1095
7532 __cil_tmp59 = (unsigned int )disketteExtension;
7533#line 1095
7534 __cil_tmp60 = __cil_tmp59 + 12;
7535#line 1095
7536 mem_496 = (BOOLEAN *)__cil_tmp60;
7537#line 1095
7538 __cil_tmp61 = *mem_496;
7539#line 1095
7540 if (! __cil_tmp61) {
7541#line 1097
7542 if (s == 1) {
7543#line 1097
7544 s = 3;
7545 } else {
7546 {
7547#line 1098
7548 assert(0);
7549 }
7550 }
7551 {
7552#line 1099
7553 __cil_tmp62 = (unsigned int )Irp;
7554#line 1099
7555 __cil_tmp63 = __cil_tmp62 + 35;
7556#line 1099
7557 __cil_tmp64 = (unsigned int )Irp;
7558#line 1099
7559 __cil_tmp65 = __cil_tmp64 + 35;
7560#line 1099
7561 mem_497 = (CHAR *)__cil_tmp65;
7562#line 1099
7563 __cil_tmp66 = *mem_497;
7564#line 1099
7565 __cil_tmp67 = (int )__cil_tmp66;
7566#line 1099
7567 __cil_tmp68 = __cil_tmp67 + 1;
7568#line 1099
7569 mem_498 = (CHAR *)__cil_tmp63;
7570#line 1099
7571 *mem_498 = (char )__cil_tmp68;
7572#line 1099
7573 __cil_tmp69 = 24 + 8;
7574#line 1099
7575 __cil_tmp70 = 0 + __cil_tmp69;
7576#line 1099
7577 __cil_tmp71 = 64 + __cil_tmp70;
7578#line 1099
7579 __cil_tmp72 = (unsigned int )Irp;
7580#line 1099
7581 __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
7582#line 1099
7583 __cil_tmp74 = 24 + 8;
7584#line 1099
7585 __cil_tmp75 = 0 + __cil_tmp74;
7586#line 1099
7587 __cil_tmp76 = 64 + __cil_tmp75;
7588#line 1099
7589 __cil_tmp77 = (unsigned int )Irp;
7590#line 1099
7591 __cil_tmp78 = __cil_tmp77 + __cil_tmp76;
7592#line 1099
7593 mem_499 = (struct _IO_STACK_LOCATION **)__cil_tmp78;
7594#line 1099
7595 __cil_tmp79 = *mem_499;
7596#line 1099
7597 mem_500 = (struct _IO_STACK_LOCATION **)__cil_tmp73;
7598#line 1099
7599 *mem_500 = __cil_tmp79 + 1;
7600#line 1100
7601 __cil_tmp80 = (unsigned int )disketteExtension;
7602#line 1100
7603 __cil_tmp81 = __cil_tmp80 + 8;
7604#line 1100
7605 mem_501 = (PDEVICE_OBJECT *)__cil_tmp81;
7606#line 1100
7607 __cil_tmp82 = *mem_501;
7608#line 1100
7609 tmp = IofCallDriver(__cil_tmp82, Irp);
7610 }
7611#line 1100
7612 return (tmp);
7613 } else {
7614
7615 }
7616 }
7617 {
7618#line 1103
7619 __cil_tmp83 = 0 + 8;
7620#line 1103
7621 __cil_tmp84 = 4 + __cil_tmp83;
7622#line 1103
7623 __cil_tmp85 = (unsigned int )irpSp;
7624#line 1103
7625 __cil_tmp86 = __cil_tmp85 + __cil_tmp84;
7626#line 1103
7627 mem_502 = (ULONG *)__cil_tmp86;
7628#line 1103
7629 __cil_tmp87 = *mem_502;
7630#line 1104
7631 if ((int )__cil_tmp87 == (__cil_tmp90 | __cil_tmp89)) {
7632 goto switch_16_exp_0;
7633 } else {
7634#line 1136
7635 if ((int )__cil_tmp87 == 77UL << 16) {
7636 goto switch_16_exp_1;
7637 } else {
7638#line 1172
7639 if ((int )__cil_tmp87 == (__cil_tmp174 | __cil_tmp171)) {
7640 goto switch_16_exp_2;
7641 } else {
7642#line 1173
7643 if ((int )__cil_tmp87 == (__cil_tmp178 | __cil_tmp175)) {
7644 goto switch_16_exp_3;
7645 } else {
7646#line 1241
7647 if ((int )__cil_tmp87 == (__cil_tmp237 | __cil_tmp234)) {
7648 goto switch_16_exp_4;
7649 } else {
7650#line 1242
7651 if ((int )__cil_tmp87 == (__cil_tmp241 | __cil_tmp238)) {
7652 goto switch_16_exp_5;
7653 } else {
7654#line 1243
7655 if ((int )__cil_tmp87 == 7 << 16) {
7656 goto switch_16_exp_6;
7657 } else {
7658#line 1244
7659 if ((int )__cil_tmp87 == (__cil_tmp243 | __cil_tmp242)) {
7660 goto switch_16_exp_7;
7661 } else {
7662#line 1272
7663 if ((int )__cil_tmp87 == (__cil_tmp245 | __cil_tmp244)) {
7664 goto switch_16_exp_8;
7665 } else {
7666#line 1273
7667 if ((int )__cil_tmp87 == (__cil_tmp247 | __cil_tmp246)) {
7668 goto switch_16_exp_9;
7669 } else {
7670#line 1374
7671 if ((int )__cil_tmp87 == (__cil_tmp330 | __cil_tmp329)) {
7672 goto switch_16_exp_10;
7673 } else {
7674#line 1472
7675 if ((int )__cil_tmp87 == (__cil_tmp455 | __cil_tmp454)) {
7676 goto switch_16_exp_11;
7677 } else {
7678 {
7679 goto switch_16_default;
7680#line 1103
7681 if (0) {
7682 switch_16_exp_0:
7683 {
7684 __cil_tmp88 = 2 << 2;
7685 __cil_tmp89 = (unsigned long )__cil_tmp88;
7686 __cil_tmp90 = 77UL << 16;
7687
7688 }
7689 {
7690#line 1109
7691 while (1) {
7692 while_17_continue: ;
7693 goto while_17_break;
7694 }
7695 while_17_break: ;
7696 }
7697 {
7698#line 1112
7699 __cil_tmp91 = (unsigned long )4U;
7700#line 1112
7701 __cil_tmp92 = (unsigned int )irpSp;
7702#line 1112
7703 __cil_tmp93 = __cil_tmp92 + 4;
7704#line 1112
7705 mem_503 = (ULONG *)__cil_tmp93;
7706#line 1112
7707 __cil_tmp94 = *mem_503;
7708#line 1112
7709 if (__cil_tmp94 < __cil_tmp91) {
7710#line 1115
7711 ntStatus = -1073741811L;
7712 goto switch_16_break;
7713 } else {
7714
7715 }
7716 }
7717#line 1119
7718 __cil_tmp95 = (unsigned int )Irp;
7719#line 1119
7720 __cil_tmp96 = __cil_tmp95 + 12;
7721#line 1119
7722 mem_504 = (PVOID *)__cil_tmp96;
7723#line 1119
7724 __cil_tmp97 = *mem_504;
7725#line 1119
7726 mountName = (struct _MOUNTDEV_NAME *)__cil_tmp97;
7727#line 1120
7728 __cil_tmp98 = (unsigned int )disketteExtension;
7729#line 1120
7730 __cil_tmp99 = __cil_tmp98 + 368;
7731#line 1120
7732 mem_505 = (USHORT *)mountName;
7733#line 1120
7734 mem_506 = (USHORT *)__cil_tmp99;
7735#line 1120
7736 *mem_505 = *mem_506;
7737 {
7738#line 1122
7739 mem_507 = (USHORT *)mountName;
7740#line 1122
7741 __cil_tmp100 = *mem_507;
7742#line 1122
7743 __cil_tmp101 = (unsigned int )__cil_tmp100;
7744#line 1122
7745 __cil_tmp102 = 2U + __cil_tmp101;
7746#line 1122
7747 __cil_tmp103 = (unsigned long )__cil_tmp102;
7748#line 1122
7749 __cil_tmp104 = (unsigned int )irpSp;
7750#line 1122
7751 __cil_tmp105 = __cil_tmp104 + 4;
7752#line 1122
7753 mem_508 = (ULONG *)__cil_tmp105;
7754#line 1122
7755 __cil_tmp106 = *mem_508;
7756#line 1122
7757 if (__cil_tmp106 < __cil_tmp103) {
7758#line 1125
7759 ntStatus = -2147483643L;
7760#line 1126
7761 __cil_tmp107 = 24 + 4;
7762#line 1126
7763 __cil_tmp108 = (unsigned int )Irp;
7764#line 1126
7765 __cil_tmp109 = __cil_tmp108 + __cil_tmp107;
7766#line 1126
7767 mem_509 = (ULONG_PTR *)__cil_tmp109;
7768#line 1126
7769 *mem_509 = (unsigned long )4U;
7770 goto switch_16_break;
7771 } else {
7772
7773 }
7774 }
7775 {
7776#line 1131
7777 __cil_tmp110 = 0 * 2U;
7778#line 1131
7779 __cil_tmp111 = 2 + __cil_tmp110;
7780#line 1131
7781 __cil_tmp112 = (unsigned int )mountName;
7782#line 1131
7783 __cil_tmp113 = __cil_tmp112 + __cil_tmp111;
7784#line 1131
7785 __cil_tmp114 = (WCHAR *)__cil_tmp113;
7786#line 1131
7787 __cil_tmp115 = (void *)__cil_tmp114;
7788#line 1131
7789 __cil_tmp116 = 368 + 4;
7790#line 1131
7791 __cil_tmp117 = (unsigned int )disketteExtension;
7792#line 1131
7793 __cil_tmp118 = __cil_tmp117 + __cil_tmp116;
7794#line 1131
7795 mem_510 = (PWSTR *)__cil_tmp118;
7796#line 1131
7797 __cil_tmp119 = *mem_510;
7798#line 1131
7799 __cil_tmp120 = (void const *)__cil_tmp119;
7800#line 1131
7801 mem_511 = (USHORT *)mountName;
7802#line 1131
7803 __cil_tmp121 = *mem_511;
7804#line 1131
7805 __cil_tmp122 = (unsigned int )__cil_tmp121;
7806#line 1131
7807 memcpy(__cil_tmp115, __cil_tmp120, __cil_tmp122);
7808#line 1133
7809 ntStatus = 0L;
7810#line 1134
7811 __cil_tmp123 = 24 + 4;
7812#line 1134
7813 __cil_tmp124 = (unsigned int )Irp;
7814#line 1134
7815 __cil_tmp125 = __cil_tmp124 + __cil_tmp123;
7816#line 1134
7817 mem_512 = (USHORT *)mountName;
7818#line 1134
7819 __cil_tmp126 = *mem_512;
7820#line 1134
7821 __cil_tmp127 = (unsigned int )__cil_tmp126;
7822#line 1134
7823 __cil_tmp128 = 2U + __cil_tmp127;
7824#line 1134
7825 mem_513 = (ULONG_PTR *)__cil_tmp125;
7826#line 1134
7827 *mem_513 = (unsigned long )__cil_tmp128;
7828 }
7829 goto switch_16_break;
7830 switch_16_exp_1: ;
7831 {
7832#line 1142
7833 while (1) {
7834 while_18_continue: ;
7835 goto while_18_break;
7836 }
7837 while_18_break: ;
7838 }
7839 {
7840#line 1144
7841 __cil_tmp129 = 376 + 4;
7842#line 1144
7843 __cil_tmp130 = (unsigned int )disketteExtension;
7844#line 1144
7845 __cil_tmp131 = __cil_tmp130 + __cil_tmp129;
7846#line 1144
7847 mem_514 = (PWSTR *)__cil_tmp131;
7848#line 1144
7849 __cil_tmp132 = *mem_514;
7850#line 1144
7851 if (! __cil_tmp132) {
7852#line 1148
7853 ntStatus = -1073741811L;
7854 goto switch_16_break;
7855 } else {
7856 {
7857#line 1144
7858 __cil_tmp133 = (unsigned long )4U;
7859#line 1144
7860 __cil_tmp134 = (unsigned int )irpSp;
7861#line 1144
7862 __cil_tmp135 = __cil_tmp134 + 4;
7863#line 1144
7864 mem_515 = (ULONG *)__cil_tmp135;
7865#line 1144
7866 __cil_tmp136 = *mem_515;
7867#line 1144
7868 if (__cil_tmp136 < __cil_tmp133) {
7869#line 1148
7870 ntStatus = -1073741811L;
7871 goto switch_16_break;
7872 } else {
7873
7874 }
7875 }
7876 }
7877 }
7878#line 1152
7879 __cil_tmp137 = (unsigned int )Irp;
7880#line 1152
7881 __cil_tmp138 = __cil_tmp137 + 12;
7882#line 1152
7883 mem_516 = (PVOID *)__cil_tmp138;
7884#line 1152
7885 __cil_tmp139 = *mem_516;
7886#line 1152
7887 uniqueId = (struct _MOUNTDEV_UNIQUE_ID *)__cil_tmp139;
7888#line 1153
7889 __cil_tmp140 = (unsigned int )disketteExtension;
7890#line 1153
7891 __cil_tmp141 = __cil_tmp140 + 376;
7892#line 1153
7893 mem_517 = (USHORT *)uniqueId;
7894#line 1153
7895 mem_518 = (USHORT *)__cil_tmp141;
7896#line 1153
7897 *mem_517 = *mem_518;
7898 {
7899#line 1156
7900 mem_519 = (USHORT *)uniqueId;
7901#line 1156
7902 __cil_tmp142 = *mem_519;
7903#line 1156
7904 __cil_tmp143 = (unsigned int )__cil_tmp142;
7905#line 1156
7906 __cil_tmp144 = 2U + __cil_tmp143;
7907#line 1156
7908 __cil_tmp145 = (unsigned long )__cil_tmp144;
7909#line 1156
7910 __cil_tmp146 = (unsigned int )irpSp;
7911#line 1156
7912 __cil_tmp147 = __cil_tmp146 + 4;
7913#line 1156
7914 mem_520 = (ULONG *)__cil_tmp147;
7915#line 1156
7916 __cil_tmp148 = *mem_520;
7917#line 1156
7918 if (__cil_tmp148 < __cil_tmp145) {
7919#line 1159
7920 ntStatus = -2147483643L;
7921#line 1160
7922 __cil_tmp149 = 24 + 4;
7923#line 1160
7924 __cil_tmp150 = (unsigned int )Irp;
7925#line 1160
7926 __cil_tmp151 = __cil_tmp150 + __cil_tmp149;
7927#line 1160
7928 mem_521 = (ULONG_PTR *)__cil_tmp151;
7929#line 1160
7930 *mem_521 = (unsigned long )4U;
7931 goto switch_16_break;
7932 } else {
7933
7934 }
7935 }
7936 {
7937#line 1166
7938 __cil_tmp152 = 0 * 1U;
7939#line 1166
7940 __cil_tmp153 = 2 + __cil_tmp152;
7941#line 1166
7942 __cil_tmp154 = (unsigned int )uniqueId;
7943#line 1166
7944 __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
7945#line 1166
7946 __cil_tmp156 = (UCHAR *)__cil_tmp155;
7947#line 1166
7948 __cil_tmp157 = (void *)__cil_tmp156;
7949#line 1166
7950 __cil_tmp158 = 376 + 4;
7951#line 1166
7952 __cil_tmp159 = (unsigned int )disketteExtension;
7953#line 1166
7954 __cil_tmp160 = __cil_tmp159 + __cil_tmp158;
7955#line 1166
7956 mem_522 = (PWSTR *)__cil_tmp160;
7957#line 1166
7958 __cil_tmp161 = *mem_522;
7959#line 1166
7960 __cil_tmp162 = (void const *)__cil_tmp161;
7961#line 1166
7962 mem_523 = (USHORT *)uniqueId;
7963#line 1166
7964 __cil_tmp163 = *mem_523;
7965#line 1166
7966 __cil_tmp164 = (unsigned int )__cil_tmp163;
7967#line 1166
7968 memcpy(__cil_tmp157, __cil_tmp162, __cil_tmp164);
7969#line 1168
7970 ntStatus = 0L;
7971#line 1169
7972 __cil_tmp165 = 24 + 4;
7973#line 1169
7974 __cil_tmp166 = (unsigned int )Irp;
7975#line 1169
7976 __cil_tmp167 = __cil_tmp166 + __cil_tmp165;
7977#line 1169
7978 mem_524 = (USHORT *)uniqueId;
7979#line 1169
7980 __cil_tmp168 = *mem_524;
7981#line 1169
7982 __cil_tmp169 = (unsigned int )__cil_tmp168;
7983#line 1169
7984 __cil_tmp170 = 2U + __cil_tmp169;
7985#line 1169
7986 mem_525 = (ULONG_PTR *)__cil_tmp167;
7987#line 1169
7988 *mem_525 = (unsigned long )__cil_tmp170;
7989 }
7990 goto switch_16_break;
7991 switch_16_exp_2:
7992 {
7993 __cil_tmp171 = 6 << 2;
7994 __cil_tmp172 = 3 << 14;
7995 __cil_tmp173 = 7 << 16;
7996 __cil_tmp174 = __cil_tmp173 | __cil_tmp172;
7997
7998 }
7999 switch_16_exp_3:
8000 {
8001 __cil_tmp175 = 11 << 2;
8002 __cil_tmp176 = 3 << 14;
8003 __cil_tmp177 = 7 << 16;
8004 __cil_tmp178 = __cil_tmp177 | __cil_tmp176;
8005
8006 }
8007 {
8008#line 1181
8009 __cil_tmp179 = (unsigned long )48U;
8010#line 1181
8011 __cil_tmp180 = 0 + 4;
8012#line 1181
8013 __cil_tmp181 = 4 + __cil_tmp180;
8014#line 1181
8015 __cil_tmp182 = (unsigned int )irpSp;
8016#line 1181
8017 __cil_tmp183 = __cil_tmp182 + __cil_tmp181;
8018#line 1181
8019 mem_526 = (ULONG *)__cil_tmp183;
8020#line 1181
8021 __cil_tmp184 = *mem_526;
8022#line 1181
8023 if (__cil_tmp184 < __cil_tmp179) {
8024 {
8025#line 1187
8026 while (1) {
8027 while_19_continue: ;
8028 goto while_19_break;
8029 }
8030 while_19_break: ;
8031 }
8032#line 1189
8033 ntStatus = -1073741811L;
8034 goto switch_16_break;
8035 } else {
8036
8037 }
8038 }
8039 {
8040#line 1197
8041 __cil_tmp185 = (unsigned int )Irp;
8042#line 1197
8043 __cil_tmp186 = __cil_tmp185 + 12;
8044#line 1197
8045 mem_527 = (PVOID *)__cil_tmp186;
8046#line 1197
8047 __cil_tmp187 = *mem_527;
8048#line 1197
8049 __cil_tmp188 = (struct _FORMAT_PARAMETERS *)__cil_tmp187;
8050#line 1197
8051 tmp___0 = FlCheckFormatParameters(disketteExtension, __cil_tmp188);
8052 }
8053#line 1197
8054 if (! tmp___0) {
8055 {
8056#line 1204
8057 while (1) {
8058 while_20_continue: ;
8059 goto while_20_break;
8060 }
8061 while_20_break: ;
8062 }
8063#line 1206
8064 ntStatus = -1073741811L;
8065 goto switch_16_break;
8066 } else {
8067
8068 }
8069 {
8070#line 1214
8071 __cil_tmp189 = 11 << 2;
8072#line 1214
8073 __cil_tmp190 = 3 << 14;
8074#line 1214
8075 __cil_tmp191 = 7 << 16;
8076#line 1214
8077 __cil_tmp192 = __cil_tmp191 | __cil_tmp190;
8078#line 1214
8079 __cil_tmp193 = __cil_tmp192 | __cil_tmp189;
8080#line 1214
8081 __cil_tmp194 = (unsigned long )__cil_tmp193;
8082#line 1214
8083 __cil_tmp195 = 0 + 8;
8084#line 1214
8085 __cil_tmp196 = 4 + __cil_tmp195;
8086#line 1214
8087 __cil_tmp197 = (unsigned int )irpSp;
8088#line 1214
8089 __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
8090#line 1214
8091 mem_528 = (ULONG *)__cil_tmp198;
8092#line 1214
8093 __cil_tmp199 = *mem_528;
8094#line 1214
8095 if (__cil_tmp199 == __cil_tmp194) {
8096 {
8097#line 1217
8098 __cil_tmp200 = (unsigned long )56U;
8099#line 1217
8100 __cil_tmp201 = 0 + 4;
8101#line 1217
8102 __cil_tmp202 = 4 + __cil_tmp201;
8103#line 1217
8104 __cil_tmp203 = (unsigned int )irpSp;
8105#line 1217
8106 __cil_tmp204 = __cil_tmp203 + __cil_tmp202;
8107#line 1217
8108 mem_529 = (ULONG *)__cil_tmp204;
8109#line 1217
8110 __cil_tmp205 = *mem_529;
8111#line 1217
8112 if (__cil_tmp205 < __cil_tmp200) {
8113#line 1220
8114 ntStatus = -1073741811L;
8115 goto switch_16_break;
8116 } else {
8117
8118 }
8119 }
8120#line 1224
8121 __cil_tmp206 = (unsigned int )Irp;
8122#line 1224
8123 __cil_tmp207 = __cil_tmp206 + 12;
8124#line 1224
8125 mem_530 = (PVOID *)__cil_tmp207;
8126#line 1224
8127 __cil_tmp208 = *mem_530;
8128#line 1224
8129 formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp208;
8130#line 1226
8131 __cil_tmp209 = (unsigned int )formatExParameters;
8132#line 1226
8133 __cil_tmp210 = __cil_tmp209 + 50;
8134#line 1226
8135 mem_531 = (USHORT *)__cil_tmp210;
8136#line 1226
8137 __cil_tmp211 = *mem_531;
8138#line 1226
8139 __cil_tmp212 = (unsigned int )__cil_tmp211;
8140#line 1226
8141 __cil_tmp213 = __cil_tmp212 * 2U;
8142#line 1226
8143 __cil_tmp214 = (unsigned long )__cil_tmp213;
8144#line 1226
8145 __cil_tmp215 = (FORMAT_EX_PARAMETERS *)0;
8146#line 1226
8147 __cil_tmp216 = (unsigned int )__cil_tmp215;
8148#line 1226
8149 __cil_tmp217 = __cil_tmp216 + 52;
8150#line 1226
8151 __cil_tmp218 = (USHORT (*)[1])__cil_tmp217;
8152#line 1226
8153 __cil_tmp219 = (long )__cil_tmp218;
8154#line 1226
8155 __cil_tmp220 = (unsigned long )__cil_tmp219;
8156#line 1226
8157 formatExParametersSize = __cil_tmp220 + __cil_tmp214;
8158 {
8159#line 1230
8160 __cil_tmp221 = 0 + 4;
8161#line 1230
8162 __cil_tmp222 = 4 + __cil_tmp221;
8163#line 1230
8164 __cil_tmp223 = (unsigned int )irpSp;
8165#line 1230
8166 __cil_tmp224 = __cil_tmp223 + __cil_tmp222;
8167#line 1230
8168 mem_532 = (ULONG *)__cil_tmp224;
8169#line 1230
8170 __cil_tmp225 = *mem_532;
8171#line 1230
8172 if (__cil_tmp225 < formatExParametersSize) {
8173#line 1235
8174 ntStatus = -1073741811L;
8175 goto switch_16_break;
8176 } else {
8177 {
8178#line 1230
8179 __cil_tmp226 = (unsigned int )formatExParameters;
8180#line 1230
8181 __cil_tmp227 = __cil_tmp226 + 48;
8182#line 1230
8183 mem_533 = (USHORT *)__cil_tmp227;
8184#line 1230
8185 __cil_tmp228 = *mem_533;
8186#line 1230
8187 __cil_tmp229 = (int )__cil_tmp228;
8188#line 1230
8189 if (__cil_tmp229 >= 256) {
8190#line 1235
8191 ntStatus = -1073741811L;
8192 goto switch_16_break;
8193 } else {
8194 {
8195#line 1230
8196 __cil_tmp230 = (unsigned int )formatExParameters;
8197#line 1230
8198 __cil_tmp231 = __cil_tmp230 + 50;
8199#line 1230
8200 mem_534 = (USHORT *)__cil_tmp231;
8201#line 1230
8202 __cil_tmp232 = *mem_534;
8203#line 1230
8204 __cil_tmp233 = (int )__cil_tmp232;
8205#line 1230
8206 if (__cil_tmp233 >= 256) {
8207#line 1235
8208 ntStatus = -1073741811L;
8209 goto switch_16_break;
8210 } else {
8211
8212 }
8213 }
8214 }
8215 }
8216 }
8217 }
8218 } else {
8219
8220 }
8221 }
8222 switch_16_exp_4:
8223 {
8224 __cil_tmp234 = 512 << 2;
8225 __cil_tmp235 = 1 << 14;
8226 __cil_tmp236 = 7 << 16;
8227 __cil_tmp237 = __cil_tmp236 | __cil_tmp235;
8228
8229 }
8230 switch_16_exp_5:
8231 {
8232 __cil_tmp238 = 512 << 2;
8233 __cil_tmp239 = 1 << 14;
8234 __cil_tmp240 = 45 << 16;
8235 __cil_tmp241 = __cil_tmp240 | __cil_tmp239;
8236
8237 }
8238 switch_16_exp_6: ;
8239 switch_16_exp_7:
8240 {
8241 __cil_tmp242 = 9 << 2;
8242 __cil_tmp243 = 7 << 16;
8243
8244 }
8245 {
8246#line 1267
8247 while (1) {
8248 while_21_continue: ;
8249 goto while_21_break;
8250 }
8251 while_21_break: ;
8252 }
8253 {
8254#line 1269
8255 ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
8256 }
8257 goto switch_16_break;
8258 switch_16_exp_8:
8259 {
8260 __cil_tmp244 = 768 << 2;
8261 __cil_tmp245 = 7 << 16;
8262
8263 }
8264 switch_16_exp_9:
8265 {
8266 __cil_tmp246 = 768 << 2;
8267 __cil_tmp247 = 45 << 16;
8268
8269 }
8270 {
8271#line 1279
8272 while (1) {
8273 while_22_continue: ;
8274 goto while_22_break;
8275 }
8276 while_22_break: ;
8277 }
8278#line 1281
8279 __cil_tmp248 = (unsigned int )disketteExtension;
8280#line 1281
8281 __cil_tmp249 = __cil_tmp248 + 174;
8282#line 1281
8283 mem_535 = (UCHAR *)__cil_tmp249;
8284#line 1281
8285 __cil_tmp250 = *mem_535;
8286#line 1281
8287 __cil_tmp251 = (int )__cil_tmp250;
8288#line 1281
8289 __cil_tmp252 = DriveMediaLimits + __cil_tmp251;
8290#line 1281
8291 __cil_tmp253 = (unsigned int )__cil_tmp252;
8292#line 1281
8293 __cil_tmp254 = __cil_tmp253 + 32;
8294#line 1281
8295 mem_536 = (DRIVE_MEDIA_TYPE *)__cil_tmp254;
8296#line 1281
8297 lowestDriveMediaType = *mem_536;
8298#line 1283
8299 __cil_tmp255 = (unsigned int )disketteExtension;
8300#line 1283
8301 __cil_tmp256 = __cil_tmp255 + 174;
8302#line 1283
8303 mem_537 = (UCHAR *)__cil_tmp256;
8304#line 1283
8305 __cil_tmp257 = *mem_537;
8306#line 1283
8307 __cil_tmp258 = (int )__cil_tmp257;
8308#line 1283
8309 __cil_tmp259 = DriveMediaLimits + __cil_tmp258;
8310#line 1283
8311 mem_538 = (DRIVE_MEDIA_TYPE *)__cil_tmp259;
8312#line 1283
8313 highestDriveMediaType = *mem_538;
8314#line 1286
8315 __cil_tmp260 = (unsigned int )irpSp;
8316#line 1286
8317 __cil_tmp261 = __cil_tmp260 + 4;
8318#line 1286
8319 mem_539 = (ULONG *)__cil_tmp261;
8320#line 1286
8321 outputBufferLength = *mem_539;
8322 {
8323#line 1294
8324 __cil_tmp262 = (unsigned long )52U;
8325#line 1294
8326 if (outputBufferLength < __cil_tmp262) {
8327 {
8328#line 1299
8329 while (1) {
8330 while_23_continue: ;
8331 goto while_23_break;
8332 }
8333 while_23_break: ;
8334 }
8335#line 1301
8336 ntStatus = -1073741789L;
8337 goto switch_16_break;
8338 } else {
8339
8340 }
8341 }
8342#line 1311
8343 ntStatus = 0L;
8344 {
8345#line 1313
8346 __cil_tmp263 = (int )lowestDriveMediaType;
8347#line 1313
8348 __cil_tmp264 = (int )highestDriveMediaType;
8349#line 1313
8350 __cil_tmp265 = __cil_tmp264 - __cil_tmp263;
8351#line 1313
8352 __cil_tmp266 = __cil_tmp265 + 1;
8353#line 1313
8354 __cil_tmp267 = (unsigned int )__cil_tmp266;
8355#line 1313
8356 __cil_tmp268 = 52U * __cil_tmp267;
8357#line 1313
8358 __cil_tmp269 = (unsigned long )__cil_tmp268;
8359#line 1313
8360 if (outputBufferLength < __cil_tmp269) {
8361 {
8362#line 1324
8363 while (1) {
8364 while_24_continue: ;
8365 goto while_24_break;
8366 }
8367 while_24_break: ;
8368 }
8369#line 1326
8370 ntStatus = -2147483643L;
8371#line 1328
8372 __cil_tmp270 = (unsigned long )52U;
8373#line 1328
8374 __cil_tmp271 = outputBufferLength / __cil_tmp270;
8375#line 1328
8376 __cil_tmp272 = (int )lowestDriveMediaType;
8377#line 1328
8378 __cil_tmp273 = __cil_tmp272 - 1;
8379#line 1328
8380 __cil_tmp274 = (unsigned long )__cil_tmp273;
8381#line 1328
8382 __cil_tmp275 = __cil_tmp274 + __cil_tmp271;
8383#line 1328
8384 highestDriveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp275;
8385 } else {
8386
8387 }
8388 }
8389#line 1334
8390 __cil_tmp276 = (unsigned int )Irp;
8391#line 1334
8392 __cil_tmp277 = __cil_tmp276 + 12;
8393#line 1334
8394 mem_540 = (PVOID *)__cil_tmp277;
8395#line 1334
8396 __cil_tmp278 = *mem_540;
8397#line 1334
8398 outputBuffer = (struct _DISK_GEOMETRY *)__cil_tmp278;
8399#line 1336
8400 i = (unsigned char )lowestDriveMediaType;
8401 {
8402#line 1336
8403 while (1) {
8404 while_25_continue: ;
8405 {
8406#line 1336
8407 __cil_tmp279 = (unsigned char )highestDriveMediaType;
8408#line 1336
8409 __cil_tmp280 = (int )__cil_tmp279;
8410#line 1336
8411 __cil_tmp281 = (int )i;
8412#line 1336
8413 if (__cil_tmp281 <= __cil_tmp280) {
8414
8415 } else {
8416 goto while_25_break;
8417 }
8418 }
8419#line 1341
8420 __cil_tmp282 = (unsigned int )outputBuffer;
8421#line 1341
8422 __cil_tmp283 = __cil_tmp282 + 8;
8423#line 1341
8424 __cil_tmp284 = (int )i;
8425#line 1341
8426 __cil_tmp285 = DriveMediaConstants + __cil_tmp284;
8427#line 1341
8428 mem_541 = (MEDIA_TYPE *)__cil_tmp283;
8429#line 1341
8430 mem_542 = (MEDIA_TYPE *)__cil_tmp285;
8431#line 1341
8432 *mem_541 = *mem_542;
8433#line 1342
8434 __cil_tmp286 = (int )i;
8435#line 1342
8436 __cil_tmp287 = DriveMediaConstants + __cil_tmp286;
8437#line 1342
8438 __cil_tmp288 = (unsigned int )__cil_tmp287;
8439#line 1342
8440 __cil_tmp289 = __cil_tmp288 + 48;
8441#line 1342
8442 mem_543 = (UCHAR *)__cil_tmp289;
8443#line 1342
8444 __cil_tmp290 = *mem_543;
8445#line 1342
8446 __cil_tmp291 = (int )__cil_tmp290;
8447#line 1342
8448 __cil_tmp292 = __cil_tmp291 + 1;
8449#line 1342
8450 mem_544 = (ULONG *)outputBuffer;
8451#line 1342
8452 *mem_544 = (unsigned long )__cil_tmp292;
8453#line 1344
8454 __cil_tmp293 = 0 + 4;
8455#line 1344
8456 __cil_tmp294 = 0 + __cil_tmp293;
8457#line 1344
8458 __cil_tmp295 = (unsigned int )outputBuffer;
8459#line 1344
8460 __cil_tmp296 = __cil_tmp295 + __cil_tmp294;
8461#line 1344
8462 mem_545 = (LONG *)__cil_tmp296;
8463#line 1344
8464 *mem_545 = 0L;
8465#line 1345
8466 __cil_tmp297 = (unsigned int )outputBuffer;
8467#line 1345
8468 __cil_tmp298 = __cil_tmp297 + 40;
8469#line 1345
8470 __cil_tmp299 = (int )i;
8471#line 1345
8472 __cil_tmp300 = DriveMediaConstants + __cil_tmp299;
8473#line 1345
8474 __cil_tmp301 = (unsigned int )__cil_tmp300;
8475#line 1345
8476 __cil_tmp302 = __cil_tmp301 + 51;
8477#line 1345
8478 mem_546 = (UCHAR *)__cil_tmp302;
8479#line 1345
8480 __cil_tmp303 = *mem_546;
8481#line 1345
8482 mem_547 = (ULONG *)__cil_tmp298;
8483#line 1345
8484 *mem_547 = (unsigned long )__cil_tmp303;
8485#line 1347
8486 __cil_tmp304 = (unsigned int )outputBuffer;
8487#line 1347
8488 __cil_tmp305 = __cil_tmp304 + 44;
8489#line 1347
8490 __cil_tmp306 = (int )i;
8491#line 1347
8492 __cil_tmp307 = DriveMediaConstants + __cil_tmp306;
8493#line 1347
8494 __cil_tmp308 = (unsigned int )__cil_tmp307;
8495#line 1347
8496 __cil_tmp309 = __cil_tmp308 + 38;
8497#line 1347
8498 mem_548 = (UCHAR *)__cil_tmp309;
8499#line 1347
8500 __cil_tmp310 = *mem_548;
8501#line 1347
8502 mem_549 = (ULONG *)__cil_tmp305;
8503#line 1347
8504 *mem_549 = (unsigned long )__cil_tmp310;
8505#line 1349
8506 __cil_tmp311 = (unsigned int )outputBuffer;
8507#line 1349
8508 __cil_tmp312 = __cil_tmp311 + 48;
8509#line 1349
8510 __cil_tmp313 = (int )i;
8511#line 1349
8512 __cil_tmp314 = DriveMediaConstants + __cil_tmp313;
8513#line 1349
8514 __cil_tmp315 = (unsigned int )__cil_tmp314;
8515#line 1349
8516 __cil_tmp316 = __cil_tmp315 + 36;
8517#line 1349
8518 mem_550 = (USHORT *)__cil_tmp316;
8519#line 1349
8520 __cil_tmp317 = *mem_550;
8521#line 1349
8522 mem_551 = (ULONG *)__cil_tmp312;
8523#line 1349
8524 *mem_551 = (unsigned long )__cil_tmp317;
8525 {
8526#line 1367
8527 while (1) {
8528 while_26_continue: ;
8529 goto while_26_break;
8530 }
8531 while_26_break: ;
8532 }
8533#line 1368
8534 outputBuffer = outputBuffer + 1;
8535#line 1370
8536 __cil_tmp318 = 24 + 4;
8537#line 1370
8538 __cil_tmp319 = (unsigned int )Irp;
8539#line 1370
8540 __cil_tmp320 = __cil_tmp319 + __cil_tmp318;
8541#line 1370
8542 __cil_tmp321 = (unsigned long )52U;
8543#line 1370
8544 __cil_tmp322 = 24 + 4;
8545#line 1370
8546 __cil_tmp323 = (unsigned int )Irp;
8547#line 1370
8548 __cil_tmp324 = __cil_tmp323 + __cil_tmp322;
8549#line 1370
8550 mem_552 = (ULONG_PTR *)__cil_tmp324;
8551#line 1370
8552 __cil_tmp325 = *mem_552;
8553#line 1370
8554 mem_553 = (ULONG_PTR *)__cil_tmp320;
8555#line 1370
8556 *mem_553 = __cil_tmp325 + __cil_tmp321;
8557#line 1336
8558 __cil_tmp326 = (int )i;
8559#line 1336
8560 __cil_tmp327 = __cil_tmp326 + 1;
8561#line 1336
8562 i = (unsigned char )__cil_tmp327;
8563 }
8564 while_25_break: ;
8565 }
8566 goto switch_16_break;
8567 switch_16_exp_10:
8568 {
8569 __cil_tmp328 = 3 << 2;
8570 __cil_tmp329 = (unsigned long )__cil_tmp328;
8571 __cil_tmp330 = 77UL << 16;
8572
8573 }
8574 {
8575#line 1378
8576 __cil_tmp331 = (KUSER_SHARED_DATA * const )4292804608U;
8577#line 1378
8578 __cil_tmp332 = (unsigned int )__cil_tmp331;
8579#line 1378
8580 __cil_tmp333 = __cil_tmp332 + 732;
8581#line 1378
8582 mem_554 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp333;
8583#line 1378
8584 __cil_tmp334 = *mem_554;
8585#line 1378
8586 __cil_tmp335 = (int )__cil_tmp334;
8587#line 1378
8588 if (__cil_tmp335 == 1) {
8589 {
8590#line 1387
8591 while (1) {
8592 while_27_continue: ;
8593 goto while_27_break;
8594 }
8595 while_27_break: ;
8596 }
8597 {
8598#line 1389
8599 __cil_tmp336 = (unsigned int )DeviceObject;
8600#line 1389
8601 __cil_tmp337 = __cil_tmp336 + 32;
8602#line 1389
8603 mem_555 = (ULONG *)__cil_tmp337;
8604#line 1389
8605 __cil_tmp338 = *mem_555;
8606#line 1389
8607 __cil_tmp339 = __cil_tmp338 & 1UL;
8608#line 1389
8609 if (! __cil_tmp339) {
8610#line 1391
8611 ntStatus = -1073741275L;
8612 goto switch_16_break;
8613 } else {
8614
8615 }
8616 }
8617 {
8618#line 1395
8619 __cil_tmp340 = (unsigned long )6U;
8620#line 1395
8621 __cil_tmp341 = (unsigned int )irpSp;
8622#line 1395
8623 __cil_tmp342 = __cil_tmp341 + 4;
8624#line 1395
8625 mem_556 = (ULONG *)__cil_tmp342;
8626#line 1395
8627 __cil_tmp343 = *mem_556;
8628#line 1395
8629 if (__cil_tmp343 < __cil_tmp340) {
8630#line 1398
8631 ntStatus = -1073741811L;
8632 goto switch_16_break;
8633 } else {
8634
8635 }
8636 }
8637 {
8638#line 1402
8639 __cil_tmp344 = (enum _POOL_TYPE )1;
8640#line 1402
8641 __cil_tmp345 = 2U * 64U;
8642#line 1402
8643 __cil_tmp346 = (unsigned long )__cil_tmp345;
8644#line 1402
8645 tmp___1 = ExAllocatePoolWithTag(__cil_tmp344, __cil_tmp346,
8646 1886350406UL);
8647#line 1402
8648 valueName = (WCHAR *)tmp___1;
8649 }
8650#line 1404
8651 if (! valueName) {
8652#line 1405
8653 ntStatus = -1073741670L;
8654 goto switch_16_break;
8655 } else {
8656
8657 }
8658 {
8659#line 1409
8660 __cil_tmp347 = (void *)valueName;
8661#line 1409
8662 __cil_tmp348 = 2U * 64U;
8663#line 1409
8664 memset(__cil_tmp347, 0, __cil_tmp348);
8665#line 1412
8666 __cil_tmp349 = (void *)valueName;
8667#line 1412
8668 __cil_tmp350 = 368 + 4;
8669#line 1412
8670 __cil_tmp351 = (unsigned int )disketteExtension;
8671#line 1412
8672 __cil_tmp352 = __cil_tmp351 + __cil_tmp350;
8673#line 1412
8674 mem_557 = (PWSTR *)__cil_tmp352;
8675#line 1412
8676 __cil_tmp353 = *mem_557;
8677#line 1412
8678 __cil_tmp354 = (void const *)__cil_tmp353;
8679#line 1412
8680 __cil_tmp355 = (unsigned int )disketteExtension;
8681#line 1412
8682 __cil_tmp356 = __cil_tmp355 + 368;
8683#line 1412
8684 mem_558 = (USHORT *)__cil_tmp356;
8685#line 1412
8686 __cil_tmp357 = *mem_558;
8687#line 1412
8688 __cil_tmp358 = (unsigned int )__cil_tmp357;
8689#line 1412
8690 memcpy(__cil_tmp349, __cil_tmp354, __cil_tmp358);
8691#line 1414
8692 __cil_tmp359 = (unsigned int )(& driveLetterName) + 4;
8693#line 1414
8694 __cil_tmp360 = 0 * 2U;
8695#line 1414
8696 __cil_tmp361 = (unsigned int )(driveLetterNameBuffer) + __cil_tmp360;
8697#line 1414
8698 mem_559 = (PWSTR *)__cil_tmp359;
8699#line 1414
8700 *mem_559 = (WCHAR *)__cil_tmp361;
8701#line 1415
8702 __cil_tmp362 = (unsigned int )(& driveLetterName) + 2;
8703#line 1415
8704 mem_560 = (USHORT *)__cil_tmp362;
8705#line 1415
8706 *mem_560 = (unsigned short)20;
8707#line 1416
8708 __cil_tmp363 = & driveLetterName;
8709#line 1416
8710 mem_561 = (USHORT *)__cil_tmp363;
8711#line 1416
8712 *mem_561 = (unsigned short)0;
8713#line 1418
8714 __cil_tmp364 = 0 * 28U;
8715#line 1418
8716 __cil_tmp365 = (unsigned int )(queryTable) + __cil_tmp364;
8717#line 1418
8718 __cil_tmp366 = (RTL_QUERY_REGISTRY_TABLE *)__cil_tmp365;
8719#line 1418
8720 __cil_tmp367 = (void *)__cil_tmp366;
8721#line 1418
8722 __cil_tmp368 = 2U * 28U;
8723#line 1418
8724 memset(__cil_tmp367, 0, __cil_tmp368);
8725#line 1419
8726 __cil_tmp369 = 0 * 28U;
8727#line 1419
8728 __cil_tmp370 = __cil_tmp369 + 4;
8729#line 1419
8730 __cil_tmp371 = (unsigned int )(queryTable) + __cil_tmp370;
8731#line 1419
8732 mem_562 = (ULONG *)__cil_tmp371;
8733#line 1419
8734 *mem_562 = 36UL;
8735#line 1421
8736 __cil_tmp372 = 0 * 28U;
8737#line 1421
8738 __cil_tmp373 = __cil_tmp372 + 8;
8739#line 1421
8740 __cil_tmp374 = (unsigned int )(queryTable) + __cil_tmp373;
8741#line 1421
8742 mem_563 = (PWSTR *)__cil_tmp374;
8743#line 1421
8744 *mem_563 = valueName;
8745#line 1422
8746 __cil_tmp375 = 0 * 28U;
8747#line 1422
8748 __cil_tmp376 = __cil_tmp375 + 12;
8749#line 1422
8750 __cil_tmp377 = (unsigned int )(queryTable) + __cil_tmp376;
8751#line 1422
8752 mem_564 = (PVOID *)__cil_tmp377;
8753#line 1422
8754 *mem_564 = (void *)(& driveLetterName);
8755#line 1424
8756 __cil_tmp378 = (WCHAR const *)"\\\000R\000e\000g\000i\000s\000t\000r\000y\000\\\000M\000a\000c\000h\000i\000n\000e\000\\\000S\000y\000s\000t\000e\000m\000\\\000D\000I\000S\000K\000";
8757#line 1424
8758 __cil_tmp379 = 0 * 28U;
8759#line 1424
8760 __cil_tmp380 = (unsigned int )(queryTable) + __cil_tmp379;
8761#line 1424
8762 __cil_tmp381 = (RTL_QUERY_REGISTRY_TABLE *)__cil_tmp380;
8763#line 1424
8764 __cil_tmp382 = (void *)0;
8765#line 1424
8766 __cil_tmp383 = (void *)0;
8767#line 1424
8768 ntStatus = RtlQueryRegistryValues(0UL, __cil_tmp378,
8769 __cil_tmp381, __cil_tmp382,
8770 __cil_tmp383);
8771 }
8772 {
8773#line 1428
8774 __cil_tmp384 = ntStatus >= 0L;
8775#line 1428
8776 if (! __cil_tmp384) {
8777 {
8778#line 1429
8779 __cil_tmp385 = (void *)valueName;
8780#line 1429
8781 ExFreePool(__cil_tmp385);
8782 }
8783 goto switch_16_break;
8784 } else {
8785
8786 }
8787 }
8788 {
8789#line 1433
8790 __cil_tmp386 = & driveLetterName;
8791#line 1433
8792 mem_565 = (USHORT *)__cil_tmp386;
8793#line 1433
8794 __cil_tmp387 = *mem_565;
8795#line 1433
8796 __cil_tmp388 = (int )__cil_tmp387;
8797#line 1433
8798 if (__cil_tmp388 != 4) {
8799 {
8800#line 1438
8801 ntStatus = -1073741275L;
8802#line 1439
8803 __cil_tmp389 = (void *)valueName;
8804#line 1439
8805 ExFreePool(__cil_tmp389);
8806 }
8807 goto switch_16_break;
8808 } else {
8809 {
8810#line 1433
8811 __cil_tmp390 = (unsigned int )(& driveLetterName) + 4;
8812#line 1433
8813 mem_566 = (PWSTR *)__cil_tmp390;
8814#line 1433
8815 __cil_tmp391 = *mem_566;
8816#line 1433
8817 __cil_tmp392 = __cil_tmp391 + 0;
8818#line 1433
8819 __cil_tmp393 = *__cil_tmp392;
8820#line 1433
8821 __cil_tmp394 = (int )__cil_tmp393;
8822#line 1433
8823 if (__cil_tmp394 < 65) {
8824 {
8825#line 1438
8826 ntStatus = -1073741275L;
8827#line 1439
8828 __cil_tmp395 = (void *)valueName;
8829#line 1439
8830 ExFreePool(__cil_tmp395);
8831 }
8832 goto switch_16_break;
8833 } else {
8834 {
8835#line 1433
8836 __cil_tmp396 = (unsigned int )(& driveLetterName) + 4;
8837#line 1433
8838 mem_567 = (PWSTR *)__cil_tmp396;
8839#line 1433
8840 __cil_tmp397 = *mem_567;
8841#line 1433
8842 __cil_tmp398 = __cil_tmp397 + 0;
8843#line 1433
8844 __cil_tmp399 = *__cil_tmp398;
8845#line 1433
8846 __cil_tmp400 = (int )__cil_tmp399;
8847#line 1433
8848 if (__cil_tmp400 > 90) {
8849 {
8850#line 1438
8851 ntStatus = -1073741275L;
8852#line 1439
8853 __cil_tmp401 = (void *)valueName;
8854#line 1439
8855 ExFreePool(__cil_tmp401);
8856 }
8857 goto switch_16_break;
8858 } else {
8859 {
8860#line 1433
8861 __cil_tmp402 = (unsigned int )(& driveLetterName) + 4;
8862#line 1433
8863 mem_568 = (PWSTR *)__cil_tmp402;
8864#line 1433
8865 __cil_tmp403 = *mem_568;
8866#line 1433
8867 __cil_tmp404 = __cil_tmp403 + 1;
8868#line 1433
8869 __cil_tmp405 = *__cil_tmp404;
8870#line 1433
8871 __cil_tmp406 = (int )__cil_tmp405;
8872#line 1433
8873 if (__cil_tmp406 != 58) {
8874 {
8875#line 1438
8876 ntStatus = -1073741275L;
8877#line 1439
8878 __cil_tmp407 = (void *)valueName;
8879#line 1439
8880 ExFreePool(__cil_tmp407);
8881 }
8882 goto switch_16_break;
8883 } else {
8884
8885 }
8886 }
8887 }
8888 }
8889 }
8890 }
8891 }
8892 }
8893#line 1443
8894 __cil_tmp408 = (unsigned int )Irp;
8895#line 1443
8896 __cil_tmp409 = __cil_tmp408 + 12;
8897#line 1443
8898 mem_569 = (PVOID *)__cil_tmp409;
8899#line 1443
8900 __cil_tmp410 = *mem_569;
8901#line 1443
8902 suggestedName = (struct _MOUNTDEV_SUGGESTED_LINK_NAME *)__cil_tmp410;
8903#line 1444
8904 mem_570 = (BOOLEAN *)suggestedName;
8905#line 1444
8906 *mem_570 = (unsigned char)1;
8907#line 1445
8908 __cil_tmp411 = (unsigned int )suggestedName;
8909#line 1445
8910 __cil_tmp412 = __cil_tmp411 + 2;
8911#line 1445
8912 mem_571 = (USHORT *)__cil_tmp412;
8913#line 1445
8914 *mem_571 = (unsigned short)28;
8915#line 1447
8916 __cil_tmp413 = 24 + 4;
8917#line 1447
8918 __cil_tmp414 = (unsigned int )Irp;
8919#line 1447
8920 __cil_tmp415 = __cil_tmp414 + __cil_tmp413;
8921#line 1447
8922 __cil_tmp416 = (MOUNTDEV_SUGGESTED_LINK_NAME *)0;
8923#line 1447
8924 __cil_tmp417 = (unsigned int )__cil_tmp416;
8925#line 1447
8926 __cil_tmp418 = __cil_tmp417 + 4;
8927#line 1447
8928 __cil_tmp419 = (WCHAR (*)[1])__cil_tmp418;
8929#line 1447
8930 __cil_tmp420 = (long )__cil_tmp419;
8931#line 1447
8932 __cil_tmp421 = __cil_tmp420 + 28L;
8933#line 1447
8934 mem_572 = (ULONG_PTR *)__cil_tmp415;
8935#line 1447
8936 *mem_572 = (unsigned long )__cil_tmp421;
8937 {
8938#line 1450
8939 __cil_tmp422 = 24 + 4;
8940#line 1450
8941 __cil_tmp423 = (unsigned int )Irp;
8942#line 1450
8943 __cil_tmp424 = __cil_tmp423 + __cil_tmp422;
8944#line 1450
8945 mem_573 = (ULONG_PTR *)__cil_tmp424;
8946#line 1450
8947 __cil_tmp425 = *mem_573;
8948#line 1450
8949 __cil_tmp426 = (unsigned int )irpSp;
8950#line 1450
8951 __cil_tmp427 = __cil_tmp426 + 4;
8952#line 1450
8953 mem_574 = (ULONG *)__cil_tmp427;
8954#line 1450
8955 __cil_tmp428 = *mem_574;
8956#line 1450
8957 if (__cil_tmp428 < __cil_tmp425) {
8958 {
8959#line 1453
8960 __cil_tmp429 = 24 + 4;
8961#line 1453
8962 __cil_tmp430 = (unsigned int )Irp;
8963#line 1453
8964 __cil_tmp431 = __cil_tmp430 + __cil_tmp429;
8965#line 1453
8966 mem_575 = (ULONG_PTR *)__cil_tmp431;
8967#line 1453
8968 *mem_575 = (unsigned long )6U;
8969#line 1455
8970 ntStatus = -2147483643L;
8971#line 1456
8972 __cil_tmp432 = (void *)valueName;
8973#line 1456
8974 ExFreePool(__cil_tmp432);
8975 }
8976 goto switch_16_break;
8977 } else {
8978
8979 }
8980 }
8981 {
8982#line 1460
8983 __cil_tmp433 = (WCHAR const *)"\\\000R\000e\000g\000i\000s\000t\000r\000y\000\\\000M\000a\000c\000h\000i\000n\000e\000\\\000S\000y\000s\000t\000e\000m\000\\\000D\000I\000S\000K\000";
8984#line 1460
8985 __cil_tmp434 = (WCHAR const *)valueName;
8986#line 1460
8987 RtlDeleteRegistryValue(0UL, __cil_tmp433, __cil_tmp434);
8988#line 1464
8989 __cil_tmp435 = (void *)valueName;
8990#line 1464
8991 ExFreePool(__cil_tmp435);
8992#line 1466
8993 __cil_tmp436 = 0 * 2U;
8994#line 1466
8995 __cil_tmp437 = 4 + __cil_tmp436;
8996#line 1466
8997 __cil_tmp438 = (unsigned int )suggestedName;
8998#line 1466
8999 __cil_tmp439 = __cil_tmp438 + __cil_tmp437;
9000#line 1466
9001 __cil_tmp440 = (WCHAR *)__cil_tmp439;
9002#line 1466
9003 __cil_tmp441 = (void *)__cil_tmp440;
9004#line 1466
9005 __cil_tmp442 = (void const *)"\\\000D\000o\000s\000D\000e\000v\000i\000c\000e\000s\000\\\000";
9006#line 1466
9007 memcpy(__cil_tmp441, __cil_tmp442, 24U);
9008#line 1467
9009 __cil_tmp443 = 12 * 2U;
9010#line 1467
9011 __cil_tmp444 = 4 + __cil_tmp443;
9012#line 1467
9013 __cil_tmp445 = (unsigned int )suggestedName;
9014#line 1467
9015 __cil_tmp446 = __cil_tmp445 + __cil_tmp444;
9016#line 1467
9017 __cil_tmp447 = (unsigned int )(& driveLetterName) + 4;
9018#line 1467
9019 mem_576 = (PWSTR *)__cil_tmp447;
9020#line 1467
9021 __cil_tmp448 = *mem_576;
9022#line 1467
9023 __cil_tmp449 = __cil_tmp448 + 0;
9024#line 1467
9025 mem_577 = (WCHAR *)__cil_tmp446;
9026#line 1467
9027 *mem_577 = *__cil_tmp449;
9028#line 1468
9029 __cil_tmp450 = 13 * 2U;
9030#line 1468
9031 __cil_tmp451 = 4 + __cil_tmp450;
9032#line 1468
9033 __cil_tmp452 = (unsigned int )suggestedName;
9034#line 1468
9035 __cil_tmp453 = __cil_tmp452 + __cil_tmp451;
9036#line 1468
9037 mem_578 = (WCHAR *)__cil_tmp453;
9038#line 1468
9039 *mem_578 = (unsigned short )':';
9040 }
9041 goto switch_16_break;
9042 } else {
9043
9044 }
9045 }
9046 switch_16_exp_11:
9047 {
9048 __cil_tmp454 = 248 << 2;
9049 __cil_tmp455 = 7 << 16;
9050
9051 }
9052 {
9053#line 1478
9054 __cil_tmp456 = (KUSER_SHARED_DATA * const )4292804608U;
9055#line 1478
9056 __cil_tmp457 = (unsigned int )__cil_tmp456;
9057#line 1478
9058 __cil_tmp458 = __cil_tmp457 + 732;
9059#line 1478
9060 mem_579 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp458;
9061#line 1478
9062 __cil_tmp459 = *mem_579;
9063#line 1478
9064 __cil_tmp460 = (int )__cil_tmp459;
9065#line 1478
9066 if (__cil_tmp460 == 1) {
9067 {
9068#line 1482
9069 while (1) {
9070 while_28_continue: ;
9071 goto while_28_break;
9072 }
9073 while_28_break: ;
9074 }
9075 {
9076#line 1488
9077 __cil_tmp461 = (unsigned long )1U;
9078#line 1488
9079 __cil_tmp462 = (unsigned int )irpSp;
9080#line 1488
9081 __cil_tmp463 = __cil_tmp462 + 4;
9082#line 1488
9083 mem_580 = (ULONG *)__cil_tmp463;
9084#line 1488
9085 __cil_tmp464 = *mem_580;
9086#line 1488
9087 if (__cil_tmp464 < __cil_tmp461) {
9088 {
9089#line 1494
9090 while (1) {
9091 while_29_continue: ;
9092 goto while_29_break;
9093 }
9094 while_29_break: ;
9095 }
9096#line 1496
9097 ntStatus = -1073741811L;
9098 goto switch_16_break;
9099 } else {
9100
9101 }
9102 }
9103 {
9104#line 1507
9105 while (1) {
9106 while_30_continue: ;
9107 goto while_30_break;
9108 }
9109 while_30_break: ;
9110 }
9111 {
9112#line 1510
9113 ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
9114 }
9115 goto switch_16_break;
9116 } else {
9117
9118 }
9119 }
9120 switch_16_default: ;
9121#line 1533
9122 if (s == 1) {
9123#line 1533
9124 s = 3;
9125 } else {
9126 {
9127#line 1534
9128 assert(0);
9129 }
9130 }
9131 {
9132#line 1535
9133 __cil_tmp465 = (unsigned int )Irp;
9134#line 1535
9135 __cil_tmp466 = __cil_tmp465 + 35;
9136#line 1535
9137 __cil_tmp467 = (unsigned int )Irp;
9138#line 1535
9139 __cil_tmp468 = __cil_tmp467 + 35;
9140#line 1535
9141 mem_581 = (CHAR *)__cil_tmp468;
9142#line 1535
9143 __cil_tmp469 = *mem_581;
9144#line 1535
9145 __cil_tmp470 = (int )__cil_tmp469;
9146#line 1535
9147 __cil_tmp471 = __cil_tmp470 + 1;
9148#line 1535
9149 mem_582 = (CHAR *)__cil_tmp466;
9150#line 1535
9151 *mem_582 = (char )__cil_tmp471;
9152#line 1535
9153 __cil_tmp472 = 24 + 8;
9154#line 1535
9155 __cil_tmp473 = 0 + __cil_tmp472;
9156#line 1535
9157 __cil_tmp474 = 64 + __cil_tmp473;
9158#line 1535
9159 __cil_tmp475 = (unsigned int )Irp;
9160#line 1535
9161 __cil_tmp476 = __cil_tmp475 + __cil_tmp474;
9162#line 1535
9163 __cil_tmp477 = 24 + 8;
9164#line 1535
9165 __cil_tmp478 = 0 + __cil_tmp477;
9166#line 1535
9167 __cil_tmp479 = 64 + __cil_tmp478;
9168#line 1535
9169 __cil_tmp480 = (unsigned int )Irp;
9170#line 1535
9171 __cil_tmp481 = __cil_tmp480 + __cil_tmp479;
9172#line 1535
9173 mem_583 = (struct _IO_STACK_LOCATION **)__cil_tmp481;
9174#line 1535
9175 __cil_tmp482 = *mem_583;
9176#line 1535
9177 mem_584 = (struct _IO_STACK_LOCATION **)__cil_tmp476;
9178#line 1535
9179 *mem_584 = __cil_tmp482 + 1;
9180#line 1536
9181 __cil_tmp483 = (unsigned int )disketteExtension;
9182#line 1536
9183 __cil_tmp484 = __cil_tmp483 + 8;
9184#line 1536
9185 mem_585 = (PDEVICE_OBJECT *)__cil_tmp484;
9186#line 1536
9187 __cil_tmp485 = *mem_585;
9188#line 1536
9189 ntStatus = IofCallDriver(__cil_tmp485, Irp);
9190 }
9191#line 1537
9192 return (ntStatus);
9193 } else {
9194 switch_16_break: ;
9195 }
9196 }
9197 }
9198 }
9199 }
9200 }
9201 }
9202 }
9203 }
9204 }
9205 }
9206 }
9207 }
9208 }
9209 }
9210#line 1541
9211 if (ntStatus != 259L) {
9212#line 1543
9213 __cil_tmp486 = (unsigned int )Irp;
9214#line 1543
9215 __cil_tmp487 = __cil_tmp486 + 24;
9216#line 1543
9217 mem_586 = (NTSTATUS *)__cil_tmp487;
9218#line 1543
9219 *mem_586 = ntStatus;
9220#line 1544
9221 myStatus = ntStatus;
9222 {
9223#line 1546
9224 __cil_tmp488 = ntStatus >= 0L;
9225#line 1546
9226 if (! __cil_tmp488) {
9227#line 1546
9228 if (ntStatus == -1073741661L) {
9229#line 1546
9230 tmp___2 = 1;
9231 } else {
9232#line 1546
9233 if (ntStatus == -1073741643L) {
9234#line 1546
9235 tmp___2 = 1;
9236 } else {
9237#line 1546
9238 if (ntStatus == -1073741662L) {
9239#line 1546
9240 tmp___2 = 1;
9241 } else {
9242#line 1546
9243 if (ntStatus == -1073741805L) {
9244#line 1546
9245 tmp___2 = 1;
9246 } else {
9247#line 1546
9248 if (ntStatus == -2147483626L) {
9249#line 1546
9250 tmp___2 = 1;
9251 } else {
9252#line 1546
9253 if (ntStatus == -1073741804L) {
9254#line 1546
9255 tmp___2 = 1;
9256 } else {
9257#line 1546
9258 if (ntStatus == -1073741806L) {
9259#line 1546
9260 tmp___2 = 1;
9261 } else {
9262#line 1546
9263 tmp___2 = 0;
9264 }
9265 }
9266 }
9267 }
9268 }
9269 }
9270 }
9271#line 1546
9272 if ((unsigned char )tmp___2) {
9273 {
9274#line 1547
9275 IoSetHardErrorOrVerifyDevice(Irp, DeviceObject);
9276 }
9277 } else {
9278
9279 }
9280 } else {
9281
9282 }
9283 }
9284 {
9285#line 1550
9286 IofCompleteRequest(Irp, (char)0);
9287 }
9288 } else {
9289
9290 }
9291#line 1553
9292 return (ntStatus);
9293}
9294}
9295#line 1556 "floppy.c"
9296NTSTATUS FloppyPnp(PDEVICE_OBJECT DeviceObject , PIRP Irp )
9297{ PIO_STACK_LOCATION irpSp ;
9298 PDISKETTE_EXTENSION disketteExtension ;
9299 NTSTATUS ntStatus ;
9300 KEVENT doneEvent ;
9301 PIO_STACK_LOCATION irpSp___0 ;
9302 PIO_STACK_LOCATION nextIrpSp ;
9303 PIO_STACK_LOCATION irpSp___1 ;
9304 PCONFIGURATION_INFORMATION tmp ;
9305 void *__cil_tmp11 ;
9306 unsigned int __cil_tmp12 ;
9307 unsigned int __cil_tmp13 ;
9308 PVOID __cil_tmp14 ;
9309 unsigned int __cil_tmp15 ;
9310 unsigned int __cil_tmp16 ;
9311 unsigned int __cil_tmp17 ;
9312 unsigned int __cil_tmp18 ;
9313 unsigned int __cil_tmp19 ;
9314 unsigned int __cil_tmp20 ;
9315 unsigned int __cil_tmp21 ;
9316 unsigned int __cil_tmp22 ;
9317 unsigned int __cil_tmp23 ;
9318 unsigned int __cil_tmp24 ;
9319 unsigned int __cil_tmp25 ;
9320 unsigned int __cil_tmp26 ;
9321 unsigned int __cil_tmp27 ;
9322 unsigned int __cil_tmp28 ;
9323 UCHAR __cil_tmp29 ;
9324 unsigned int __cil_tmp30 ;
9325 unsigned int __cil_tmp31 ;
9326 UCHAR __cil_tmp32 ;
9327 int __cil_tmp33 ;
9328 unsigned int __cil_tmp34 ;
9329 unsigned int __cil_tmp35 ;
9330 BOOLEAN __cil_tmp36 ;
9331 unsigned int __cil_tmp37 ;
9332 unsigned int __cil_tmp38 ;
9333 unsigned int __cil_tmp39 ;
9334 unsigned int __cil_tmp40 ;
9335 CHAR __cil_tmp41 ;
9336 int __cil_tmp42 ;
9337 int __cil_tmp43 ;
9338 unsigned int __cil_tmp44 ;
9339 unsigned int __cil_tmp45 ;
9340 unsigned int __cil_tmp46 ;
9341 unsigned int __cil_tmp47 ;
9342 unsigned int __cil_tmp48 ;
9343 unsigned int __cil_tmp49 ;
9344 unsigned int __cil_tmp50 ;
9345 unsigned int __cil_tmp51 ;
9346 unsigned int __cil_tmp52 ;
9347 unsigned int __cil_tmp53 ;
9348 struct _IO_STACK_LOCATION *__cil_tmp54 ;
9349 unsigned int __cil_tmp55 ;
9350 unsigned int __cil_tmp56 ;
9351 PDEVICE_OBJECT __cil_tmp57 ;
9352 unsigned int __cil_tmp58 ;
9353 unsigned int __cil_tmp59 ;
9354 FAST_MUTEX *__cil_tmp60 ;
9355 unsigned int __cil_tmp61 ;
9356 unsigned int __cil_tmp62 ;
9357 unsigned int __cil_tmp63 ;
9358 unsigned int __cil_tmp64 ;
9359 FAST_MUTEX *__cil_tmp65 ;
9360 unsigned int __cil_tmp66 ;
9361 unsigned int __cil_tmp67 ;
9362 PKTHREAD __cil_tmp68 ;
9363 void *__cil_tmp69 ;
9364 enum _KWAIT_REASON __cil_tmp70 ;
9365 void *__cil_tmp71 ;
9366 LARGE_INTEGER *__cil_tmp72 ;
9367 void *__cil_tmp73 ;
9368 unsigned int __cil_tmp74 ;
9369 unsigned int __cil_tmp75 ;
9370 unsigned int __cil_tmp76 ;
9371 PKTHREAD __cil_tmp77 ;
9372 unsigned int __cil_tmp78 ;
9373 unsigned int __cil_tmp79 ;
9374 unsigned int __cil_tmp80 ;
9375 PKTHREAD __cil_tmp81 ;
9376 void *__cil_tmp82 ;
9377 unsigned int __cil_tmp83 ;
9378 unsigned int __cil_tmp84 ;
9379 void *__cil_tmp85 ;
9380 unsigned int __cil_tmp86 ;
9381 unsigned int __cil_tmp87 ;
9382 unsigned int __cil_tmp88 ;
9383 unsigned int __cil_tmp89 ;
9384 unsigned int __cil_tmp90 ;
9385 unsigned int __cil_tmp91 ;
9386 CHAR __cil_tmp92 ;
9387 int __cil_tmp93 ;
9388 int __cil_tmp94 ;
9389 unsigned int __cil_tmp95 ;
9390 unsigned int __cil_tmp96 ;
9391 unsigned int __cil_tmp97 ;
9392 unsigned int __cil_tmp98 ;
9393 unsigned int __cil_tmp99 ;
9394 unsigned int __cil_tmp100 ;
9395 unsigned int __cil_tmp101 ;
9396 unsigned int __cil_tmp102 ;
9397 unsigned int __cil_tmp103 ;
9398 unsigned int __cil_tmp104 ;
9399 struct _IO_STACK_LOCATION *__cil_tmp105 ;
9400 unsigned int __cil_tmp106 ;
9401 unsigned int __cil_tmp107 ;
9402 PDEVICE_OBJECT __cil_tmp108 ;
9403 unsigned int __cil_tmp109 ;
9404 unsigned int __cil_tmp110 ;
9405 unsigned int __cil_tmp111 ;
9406 unsigned int __cil_tmp112 ;
9407 unsigned int __cil_tmp113 ;
9408 unsigned int __cil_tmp114 ;
9409 unsigned int __cil_tmp115 ;
9410 UCHAR __cil_tmp116 ;
9411 int __cil_tmp117 ;
9412 unsigned int __cil_tmp118 ;
9413 unsigned int __cil_tmp119 ;
9414 BOOLEAN __cil_tmp120 ;
9415 unsigned int __cil_tmp121 ;
9416 unsigned int __cil_tmp122 ;
9417 unsigned int __cil_tmp123 ;
9418 unsigned int __cil_tmp124 ;
9419 unsigned int __cil_tmp125 ;
9420 unsigned int __cil_tmp126 ;
9421 CHAR __cil_tmp127 ;
9422 int __cil_tmp128 ;
9423 int __cil_tmp129 ;
9424 unsigned int __cil_tmp130 ;
9425 unsigned int __cil_tmp131 ;
9426 unsigned int __cil_tmp132 ;
9427 unsigned int __cil_tmp133 ;
9428 unsigned int __cil_tmp134 ;
9429 unsigned int __cil_tmp135 ;
9430 unsigned int __cil_tmp136 ;
9431 unsigned int __cil_tmp137 ;
9432 unsigned int __cil_tmp138 ;
9433 unsigned int __cil_tmp139 ;
9434 struct _IO_STACK_LOCATION *__cil_tmp140 ;
9435 unsigned int __cil_tmp141 ;
9436 unsigned int __cil_tmp142 ;
9437 PDEVICE_OBJECT __cil_tmp143 ;
9438 unsigned int __cil_tmp144 ;
9439 unsigned int __cil_tmp145 ;
9440 unsigned int __cil_tmp146 ;
9441 unsigned int __cil_tmp147 ;
9442 unsigned int __cil_tmp148 ;
9443 unsigned int __cil_tmp149 ;
9444 unsigned int __cil_tmp150 ;
9445 unsigned int __cil_tmp151 ;
9446 unsigned int __cil_tmp152 ;
9447 unsigned int __cil_tmp153 ;
9448 unsigned int __cil_tmp154 ;
9449 unsigned int __cil_tmp155 ;
9450 struct _IO_STACK_LOCATION *__cil_tmp156 ;
9451 void *__cil_tmp157 ;
9452 void const *__cil_tmp158 ;
9453 IO_STACK_LOCATION *__cil_tmp159 ;
9454 unsigned int __cil_tmp160 ;
9455 unsigned int __cil_tmp161 ;
9456 NTSTATUS (**__cil_tmp162)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
9457 long __cil_tmp163 ;
9458 unsigned int __cil_tmp164 ;
9459 unsigned int __cil_tmp165 ;
9460 unsigned int __cil_tmp166 ;
9461 enum _EVENT_TYPE __cil_tmp167 ;
9462 unsigned int __cil_tmp168 ;
9463 unsigned int __cil_tmp169 ;
9464 unsigned int __cil_tmp170 ;
9465 unsigned int __cil_tmp171 ;
9466 unsigned int __cil_tmp172 ;
9467 struct _IO_STACK_LOCATION *__cil_tmp173 ;
9468 unsigned int __cil_tmp174 ;
9469 unsigned int __cil_tmp175 ;
9470 unsigned int __cil_tmp176 ;
9471 unsigned int __cil_tmp177 ;
9472 unsigned int __cil_tmp178 ;
9473 unsigned int __cil_tmp179 ;
9474 unsigned int __cil_tmp180 ;
9475 unsigned int __cil_tmp181 ;
9476 unsigned int __cil_tmp182 ;
9477 unsigned int __cil_tmp183 ;
9478 unsigned int __cil_tmp184 ;
9479 unsigned int __cil_tmp185 ;
9480 UCHAR __cil_tmp186 ;
9481 int __cil_tmp187 ;
9482 int __cil_tmp188 ;
9483 unsigned int __cil_tmp189 ;
9484 unsigned int __cil_tmp190 ;
9485 unsigned int __cil_tmp191 ;
9486 unsigned int __cil_tmp192 ;
9487 UCHAR __cil_tmp193 ;
9488 int __cil_tmp194 ;
9489 int __cil_tmp195 ;
9490 unsigned int __cil_tmp196 ;
9491 unsigned int __cil_tmp197 ;
9492 PDEVICE_OBJECT __cil_tmp198 ;
9493 void *__cil_tmp199 ;
9494 enum _KWAIT_REASON __cil_tmp200 ;
9495 void *__cil_tmp201 ;
9496 LARGE_INTEGER *__cil_tmp202 ;
9497 unsigned int __cil_tmp203 ;
9498 unsigned int __cil_tmp204 ;
9499 FAST_MUTEX *__cil_tmp205 ;
9500 unsigned int __cil_tmp206 ;
9501 unsigned int __cil_tmp207 ;
9502 unsigned int __cil_tmp208 ;
9503 unsigned int __cil_tmp209 ;
9504 FAST_MUTEX *__cil_tmp210 ;
9505 unsigned int __cil_tmp211 ;
9506 unsigned int __cil_tmp212 ;
9507 unsigned int __cil_tmp213 ;
9508 unsigned int __cil_tmp214 ;
9509 unsigned int __cil_tmp215 ;
9510 unsigned int __cil_tmp216 ;
9511 unsigned int __cil_tmp217 ;
9512 unsigned int __cil_tmp218 ;
9513 unsigned int __cil_tmp219 ;
9514 unsigned int __cil_tmp220 ;
9515 unsigned int __cil_tmp221 ;
9516 unsigned int __cil_tmp222 ;
9517 unsigned int __cil_tmp223 ;
9518 CHAR __cil_tmp224 ;
9519 int __cil_tmp225 ;
9520 int __cil_tmp226 ;
9521 unsigned int __cil_tmp227 ;
9522 unsigned int __cil_tmp228 ;
9523 unsigned int __cil_tmp229 ;
9524 unsigned int __cil_tmp230 ;
9525 unsigned int __cil_tmp231 ;
9526 unsigned int __cil_tmp232 ;
9527 unsigned int __cil_tmp233 ;
9528 unsigned int __cil_tmp234 ;
9529 unsigned int __cil_tmp235 ;
9530 unsigned int __cil_tmp236 ;
9531 struct _IO_STACK_LOCATION *__cil_tmp237 ;
9532 unsigned int __cil_tmp238 ;
9533 unsigned int __cil_tmp239 ;
9534 PDEVICE_OBJECT __cil_tmp240 ;
9535 unsigned int __cil_tmp241 ;
9536 unsigned int __cil_tmp242 ;
9537 FAST_MUTEX *__cil_tmp243 ;
9538 unsigned int __cil_tmp244 ;
9539 unsigned int __cil_tmp245 ;
9540 unsigned int __cil_tmp246 ;
9541 unsigned int __cil_tmp247 ;
9542 FAST_MUTEX *__cil_tmp248 ;
9543 unsigned int __cil_tmp249 ;
9544 unsigned int __cil_tmp250 ;
9545 unsigned int __cil_tmp251 ;
9546 unsigned int __cil_tmp252 ;
9547 unsigned int __cil_tmp253 ;
9548 unsigned int __cil_tmp254 ;
9549 unsigned int __cil_tmp255 ;
9550 unsigned int __cil_tmp256 ;
9551 CHAR __cil_tmp257 ;
9552 int __cil_tmp258 ;
9553 int __cil_tmp259 ;
9554 unsigned int __cil_tmp260 ;
9555 unsigned int __cil_tmp261 ;
9556 unsigned int __cil_tmp262 ;
9557 unsigned int __cil_tmp263 ;
9558 unsigned int __cil_tmp264 ;
9559 unsigned int __cil_tmp265 ;
9560 unsigned int __cil_tmp266 ;
9561 unsigned int __cil_tmp267 ;
9562 unsigned int __cil_tmp268 ;
9563 unsigned int __cil_tmp269 ;
9564 struct _IO_STACK_LOCATION *__cil_tmp270 ;
9565 unsigned int __cil_tmp271 ;
9566 unsigned int __cil_tmp272 ;
9567 unsigned int __cil_tmp273 ;
9568 unsigned int __cil_tmp274 ;
9569 PDEVICE_OBJECT __cil_tmp275 ;
9570 void *__cil_tmp276 ;
9571 unsigned int __cil_tmp277 ;
9572 unsigned int __cil_tmp278 ;
9573 unsigned int __cil_tmp279 ;
9574 unsigned int __cil_tmp280 ;
9575 PWSTR __cil_tmp281 ;
9576 unsigned int __cil_tmp282 ;
9577 unsigned int __cil_tmp283 ;
9578 unsigned int __cil_tmp284 ;
9579 UNICODE_STRING *__cil_tmp285 ;
9580 unsigned int __cil_tmp286 ;
9581 unsigned int __cil_tmp287 ;
9582 UNICODE_STRING *__cil_tmp288 ;
9583 unsigned int __cil_tmp289 ;
9584 unsigned int __cil_tmp290 ;
9585 UNICODE_STRING *__cil_tmp291 ;
9586 void *__cil_tmp292 ;
9587 WCHAR const *__cil_tmp293 ;
9588 unsigned int __cil_tmp294 ;
9589 unsigned int __cil_tmp295 ;
9590 UNICODE_STRING *__cil_tmp296 ;
9591 unsigned int __cil_tmp297 ;
9592 unsigned int __cil_tmp298 ;
9593 UNICODE_STRING *__cil_tmp299 ;
9594 void *__cil_tmp300 ;
9595 WCHAR const *__cil_tmp301 ;
9596 unsigned int __cil_tmp302 ;
9597 unsigned int __cil_tmp303 ;
9598 USHORT __cil_tmp304 ;
9599 int __cil_tmp305 ;
9600 unsigned int __cil_tmp306 ;
9601 unsigned int __cil_tmp307 ;
9602 UNICODE_STRING *__cil_tmp308 ;
9603 unsigned int __cil_tmp309 ;
9604 unsigned int __cil_tmp310 ;
9605 UNICODE_STRING *__cil_tmp311 ;
9606 unsigned int __cil_tmp312 ;
9607 unsigned int __cil_tmp313 ;
9608 UNICODE_STRING *__cil_tmp314 ;
9609 void *__cil_tmp315 ;
9610 WCHAR const *__cil_tmp316 ;
9611 unsigned int __cil_tmp317 ;
9612 unsigned int __cil_tmp318 ;
9613 PDEVICE_OBJECT __cil_tmp319 ;
9614 unsigned int __cil_tmp320 ;
9615 unsigned int __cil_tmp321 ;
9616 unsigned int __cil_tmp322 ;
9617 unsigned int __cil_tmp323 ;
9618 ULONG __cil_tmp324 ;
9619 unsigned int __cil_tmp325 ;
9620 unsigned int __cil_tmp326 ;
9621 unsigned int __cil_tmp327 ;
9622 unsigned int __cil_tmp328 ;
9623 CHAR __cil_tmp329 ;
9624 int __cil_tmp330 ;
9625 int __cil_tmp331 ;
9626 unsigned int __cil_tmp332 ;
9627 unsigned int __cil_tmp333 ;
9628 unsigned int __cil_tmp334 ;
9629 unsigned int __cil_tmp335 ;
9630 unsigned int __cil_tmp336 ;
9631 unsigned int __cil_tmp337 ;
9632 unsigned int __cil_tmp338 ;
9633 unsigned int __cil_tmp339 ;
9634 unsigned int __cil_tmp340 ;
9635 unsigned int __cil_tmp341 ;
9636 struct _IO_STACK_LOCATION *__cil_tmp342 ;
9637 unsigned int __cil_tmp343 ;
9638 unsigned int __cil_tmp344 ;
9639 PDEVICE_OBJECT __cil_tmp345 ;
9640 void *__cil_tmp346 ;
9641 PVOID *mem_347 ;
9642 struct _IO_STACK_LOCATION **mem_348 ;
9643 BOOLEAN *mem_349 ;
9644 ULONG_PTR *mem_350 ;
9645 NTSTATUS *mem_351 ;
9646 UCHAR *mem_352 ;
9647 UCHAR *mem_353 ;
9648 BOOLEAN *mem_354 ;
9649 CHAR *mem_355 ;
9650 CHAR *mem_356 ;
9651 struct _IO_STACK_LOCATION **mem_357 ;
9652 struct _IO_STACK_LOCATION **mem_358 ;
9653 PDEVICE_OBJECT *mem_359 ;
9654 BOOLEAN *mem_360 ;
9655 PKTHREAD *mem_361 ;
9656 PKTHREAD *mem_362 ;
9657 PKTHREAD *mem_363 ;
9658 PKTHREAD *mem_364 ;
9659 NTSTATUS *mem_365 ;
9660 CHAR *mem_366 ;
9661 CHAR *mem_367 ;
9662 struct _IO_STACK_LOCATION **mem_368 ;
9663 struct _IO_STACK_LOCATION **mem_369 ;
9664 PDEVICE_OBJECT *mem_370 ;
9665 NTSTATUS *mem_371 ;
9666 ULONG_PTR *mem_372 ;
9667 UCHAR *mem_373 ;
9668 BOOLEAN *mem_374 ;
9669 NTSTATUS *mem_375 ;
9670 CHAR *mem_376 ;
9671 CHAR *mem_377 ;
9672 struct _IO_STACK_LOCATION **mem_378 ;
9673 struct _IO_STACK_LOCATION **mem_379 ;
9674 PDEVICE_OBJECT *mem_380 ;
9675 NTSTATUS *mem_381 ;
9676 struct _IO_STACK_LOCATION **mem_382 ;
9677 struct _IO_STACK_LOCATION **mem_383 ;
9678 UCHAR *mem_384 ;
9679 struct _IO_STACK_LOCATION **mem_385 ;
9680 NTSTATUS (**mem_386)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
9681 PVOID *mem_387 ;
9682 UCHAR *mem_388 ;
9683 UCHAR *mem_389 ;
9684 UCHAR *mem_390 ;
9685 UCHAR *mem_391 ;
9686 UCHAR *mem_392 ;
9687 UCHAR *mem_393 ;
9688 PDEVICE_OBJECT *mem_394 ;
9689 BOOLEAN *mem_395 ;
9690 NTSTATUS *mem_396 ;
9691 ULONG_PTR *mem_397 ;
9692 BOOLEAN *mem_398 ;
9693 NTSTATUS *mem_399 ;
9694 CHAR *mem_400 ;
9695 CHAR *mem_401 ;
9696 struct _IO_STACK_LOCATION **mem_402 ;
9697 struct _IO_STACK_LOCATION **mem_403 ;
9698 PDEVICE_OBJECT *mem_404 ;
9699 BOOLEAN *mem_405 ;
9700 BOOLEAN *mem_406 ;
9701 BOOLEAN *mem_407 ;
9702 CHAR *mem_408 ;
9703 CHAR *mem_409 ;
9704 struct _IO_STACK_LOCATION **mem_410 ;
9705 struct _IO_STACK_LOCATION **mem_411 ;
9706 NTSTATUS *mem_412 ;
9707 PDEVICE_OBJECT *mem_413 ;
9708 PWSTR *mem_414 ;
9709 USHORT *mem_415 ;
9710 PDEVICE_OBJECT *mem_416 ;
9711 ULONG *mem_417 ;
9712 ULONG *mem_418 ;
9713 CHAR *mem_419 ;
9714 CHAR *mem_420 ;
9715 struct _IO_STACK_LOCATION **mem_421 ;
9716 struct _IO_STACK_LOCATION **mem_422 ;
9717 PDEVICE_OBJECT *mem_423 ;
9718
9719 {
9720#line 1580
9721 ntStatus = 0L;
9722 {
9723#line 1583
9724 while (1) {
9725 while_31_continue: ;
9726 goto while_31_break;
9727 }
9728 while_31_break: ;
9729 }
9730 {
9731#line 1588
9732 ExAcquireFastMutex(PagingMutex);
9733#line 1588
9734 PagingReferenceCount = PagingReferenceCount + 1UL;
9735 }
9736#line 1588
9737 if (PagingReferenceCount == 1UL) {
9738 {
9739#line 1588
9740 __cil_tmp11 = (void *)(& DriverEntry);
9741#line 1588
9742 MmResetDriverPaging(__cil_tmp11);
9743 }
9744 } else {
9745
9746 }
9747 {
9748#line 1588
9749 ExReleaseFastMutex(PagingMutex);
9750#line 1591
9751 __cil_tmp12 = (unsigned int )DeviceObject;
9752#line 1591
9753 __cil_tmp13 = __cil_tmp12 + 40;
9754#line 1591
9755 mem_347 = (PVOID *)__cil_tmp13;
9756#line 1591
9757 __cil_tmp14 = *mem_347;
9758#line 1591
9759 disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp14;
9760#line 1593
9761 __cil_tmp15 = 24 + 8;
9762#line 1593
9763 __cil_tmp16 = 0 + __cil_tmp15;
9764#line 1593
9765 __cil_tmp17 = 64 + __cil_tmp16;
9766#line 1593
9767 __cil_tmp18 = (unsigned int )Irp;
9768#line 1593
9769 __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
9770#line 1593
9771 mem_348 = (struct _IO_STACK_LOCATION **)__cil_tmp19;
9772#line 1593
9773 irpSp = *mem_348;
9774 }
9775 {
9776#line 1595
9777 __cil_tmp20 = (unsigned int )disketteExtension;
9778#line 1595
9779 __cil_tmp21 = __cil_tmp20 + 13;
9780 {
9781#line 1595
9782 mem_349 = (BOOLEAN *)__cil_tmp21;
9783#line 1595
9784 if (*mem_349) {
9785 {
9786#line 1601
9787 __cil_tmp22 = 24 + 4;
9788#line 1601
9789 __cil_tmp23 = (unsigned int )Irp;
9790#line 1601
9791 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
9792#line 1601
9793 mem_350 = (ULONG_PTR *)__cil_tmp24;
9794#line 1601
9795 *mem_350 = 0UL;
9796#line 1602
9797 __cil_tmp25 = (unsigned int )Irp;
9798#line 1602
9799 __cil_tmp26 = __cil_tmp25 + 24;
9800#line 1602
9801 mem_351 = (NTSTATUS *)__cil_tmp26;
9802#line 1602
9803 *mem_351 = -1073741738L;
9804#line 1603
9805 myStatus = -1073741738L;
9806#line 1605
9807 IofCompleteRequest(Irp, (char)0);
9808 }
9809#line 1606
9810 return (-1073741738L);
9811 } else {
9812
9813 }
9814 }
9815 }
9816 {
9817#line 1607
9818 __cil_tmp27 = (unsigned int )irpSp;
9819#line 1607
9820 __cil_tmp28 = __cil_tmp27 + 1;
9821#line 1607
9822 mem_352 = (UCHAR *)__cil_tmp28;
9823#line 1607
9824 __cil_tmp29 = *mem_352;
9825#line 1608
9826 if ((int )__cil_tmp29 == 0) {
9827 goto switch_32_0;
9828 } else {
9829#line 1613
9830 if ((int )__cil_tmp29 == 5) {
9831 goto switch_32_5;
9832 } else {
9833#line 1614
9834 if ((int )__cil_tmp29 == 1) {
9835 goto switch_32_1;
9836 } else {
9837#line 1690
9838 if ((int )__cil_tmp29 == 6) {
9839 goto switch_32_6;
9840 } else {
9841#line 1691
9842 if ((int )__cil_tmp29 == 3) {
9843 goto switch_32_3;
9844 } else {
9845#line 1779
9846 if ((int )__cil_tmp29 == 4) {
9847 goto switch_32_4;
9848 } else {
9849#line 1790
9850 if ((int )__cil_tmp29 == 2) {
9851 goto switch_32_2;
9852 } else {
9853 {
9854 goto switch_32_default;
9855#line 1607
9856 if (0) {
9857 switch_32_0:
9858 {
9859#line 1611
9860 ntStatus = FloppyStartDevice(DeviceObject, Irp);
9861 }
9862 goto switch_32_break;
9863 switch_32_5: ;
9864 switch_32_1: ;
9865 {
9866#line 1617
9867 __cil_tmp30 = (unsigned int )irpSp;
9868#line 1617
9869 __cil_tmp31 = __cil_tmp30 + 1;
9870#line 1617
9871 mem_353 = (UCHAR *)__cil_tmp31;
9872#line 1617
9873 __cil_tmp32 = *mem_353;
9874#line 1617
9875 __cil_tmp33 = (int )__cil_tmp32;
9876#line 1617
9877 if (__cil_tmp33 == 5) {
9878 {
9879#line 1618
9880 while (1) {
9881 while_33_continue: ;
9882 goto while_33_break;
9883 }
9884 while_33_break: ;
9885 }
9886 } else {
9887 {
9888#line 1620
9889 while (1) {
9890 while_34_continue: ;
9891 goto while_34_break;
9892 }
9893 while_34_break: ;
9894 }
9895 }
9896 }
9897 {
9898#line 1623
9899 __cil_tmp34 = (unsigned int )disketteExtension;
9900#line 1623
9901 __cil_tmp35 = __cil_tmp34 + 12;
9902#line 1623
9903 mem_354 = (BOOLEAN *)__cil_tmp35;
9904#line 1623
9905 __cil_tmp36 = *mem_354;
9906#line 1623
9907 if (! __cil_tmp36) {
9908#line 1627
9909 if (s == 1) {
9910#line 1627
9911 s = 3;
9912 } else {
9913 {
9914#line 1627
9915 assert(0);
9916 }
9917 }
9918 {
9919#line 1628
9920 __cil_tmp37 = (unsigned int )Irp;
9921#line 1628
9922 __cil_tmp38 = __cil_tmp37 + 35;
9923#line 1628
9924 __cil_tmp39 = (unsigned int )Irp;
9925#line 1628
9926 __cil_tmp40 = __cil_tmp39 + 35;
9927#line 1628
9928 mem_355 = (CHAR *)__cil_tmp40;
9929#line 1628
9930 __cil_tmp41 = *mem_355;
9931#line 1628
9932 __cil_tmp42 = (int )__cil_tmp41;
9933#line 1628
9934 __cil_tmp43 = __cil_tmp42 + 1;
9935#line 1628
9936 mem_356 = (CHAR *)__cil_tmp38;
9937#line 1628
9938 *mem_356 = (char )__cil_tmp43;
9939#line 1628
9940 __cil_tmp44 = 24 + 8;
9941#line 1628
9942 __cil_tmp45 = 0 + __cil_tmp44;
9943#line 1628
9944 __cil_tmp46 = 64 + __cil_tmp45;
9945#line 1628
9946 __cil_tmp47 = (unsigned int )Irp;
9947#line 1628
9948 __cil_tmp48 = __cil_tmp47 + __cil_tmp46;
9949#line 1628
9950 __cil_tmp49 = 24 + 8;
9951#line 1628
9952 __cil_tmp50 = 0 + __cil_tmp49;
9953#line 1628
9954 __cil_tmp51 = 64 + __cil_tmp50;
9955#line 1628
9956 __cil_tmp52 = (unsigned int )Irp;
9957#line 1628
9958 __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
9959#line 1628
9960 mem_357 = (struct _IO_STACK_LOCATION **)__cil_tmp53;
9961#line 1628
9962 __cil_tmp54 = *mem_357;
9963#line 1628
9964 mem_358 = (struct _IO_STACK_LOCATION **)__cil_tmp48;
9965#line 1628
9966 *mem_358 = __cil_tmp54 + 1;
9967#line 1629
9968 __cil_tmp55 = (unsigned int )disketteExtension;
9969#line 1629
9970 __cil_tmp56 = __cil_tmp55 + 8;
9971#line 1629
9972 mem_359 = (PDEVICE_OBJECT *)__cil_tmp56;
9973#line 1629
9974 __cil_tmp57 = *mem_359;
9975#line 1629
9976 ntStatus = IofCallDriver(__cil_tmp57, Irp);
9977 }
9978#line 1631
9979 return (ntStatus);
9980 } else {
9981
9982 }
9983 }
9984 {
9985#line 1637
9986 __cil_tmp58 = (unsigned int )disketteExtension;
9987#line 1637
9988 __cil_tmp59 = __cil_tmp58 + 428;
9989#line 1637
9990 __cil_tmp60 = (FAST_MUTEX *)__cil_tmp59;
9991#line 1637
9992 ExAcquireFastMutex(__cil_tmp60);
9993#line 1638
9994 __cil_tmp61 = (unsigned int )disketteExtension;
9995#line 1638
9996 __cil_tmp62 = __cil_tmp61 + 14;
9997#line 1638
9998 mem_360 = (BOOLEAN *)__cil_tmp62;
9999#line 1638
10000 *mem_360 = (unsigned char)1;
10001#line 1639
10002 __cil_tmp63 = (unsigned int )disketteExtension;
10003#line 1639
10004 __cil_tmp64 = __cil_tmp63 + 428;
10005#line 1639
10006 __cil_tmp65 = (FAST_MUTEX *)__cil_tmp64;
10007#line 1639
10008 ExReleaseFastMutex(__cil_tmp65);
10009#line 1646
10010 ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
10011 }
10012#line 1652
10013 if (ntStatus == 259L) {
10014 {
10015#line 1656
10016 __cil_tmp66 = (unsigned int )disketteExtension;
10017#line 1656
10018 __cil_tmp67 = __cil_tmp66 + 92;
10019#line 1656
10020 mem_361 = (PKTHREAD *)__cil_tmp67;
10021#line 1656
10022 __cil_tmp68 = *mem_361;
10023#line 1656
10024 __cil_tmp69 = (void *)__cil_tmp68;
10025#line 1656
10026 __cil_tmp70 = (enum _KWAIT_REASON )0;
10027#line 1656
10028 __cil_tmp71 = (void *)0;
10029#line 1656
10030 __cil_tmp72 = (LARGE_INTEGER *)__cil_tmp71;
10031#line 1656
10032 KeWaitForSingleObject(__cil_tmp69, __cil_tmp70, (char)0, (unsigned char)0,
10033 __cil_tmp72);
10034 }
10035 {
10036#line 1666
10037 __cil_tmp73 = (void *)0;
10038#line 1666
10039 __cil_tmp74 = (unsigned int )__cil_tmp73;
10040#line 1666
10041 __cil_tmp75 = (unsigned int )disketteExtension;
10042#line 1666
10043 __cil_tmp76 = __cil_tmp75 + 92;
10044#line 1666
10045 mem_362 = (PKTHREAD *)__cil_tmp76;
10046#line 1666
10047 __cil_tmp77 = *mem_362;
10048#line 1666
10049 __cil_tmp78 = (unsigned int )__cil_tmp77;
10050#line 1666
10051 if (__cil_tmp78 != __cil_tmp74) {
10052 {
10053#line 1667
10054 __cil_tmp79 = (unsigned int )disketteExtension;
10055#line 1667
10056 __cil_tmp80 = __cil_tmp79 + 92;
10057#line 1667
10058 mem_363 = (PKTHREAD *)__cil_tmp80;
10059#line 1667
10060 __cil_tmp81 = *mem_363;
10061#line 1667
10062 __cil_tmp82 = (void *)__cil_tmp81;
10063#line 1667
10064 ObfDereferenceObject(__cil_tmp82);
10065 }
10066 } else {
10067
10068 }
10069 }
10070#line 1670
10071 __cil_tmp83 = (unsigned int )disketteExtension;
10072#line 1670
10073 __cil_tmp84 = __cil_tmp83 + 92;
10074#line 1670
10075 __cil_tmp85 = (void *)0;
10076#line 1670
10077 mem_364 = (PKTHREAD *)__cil_tmp84;
10078#line 1670
10079 *mem_364 = (struct _KTHREAD *)__cil_tmp85;
10080#line 1672
10081 __cil_tmp86 = (unsigned int )Irp;
10082#line 1672
10083 __cil_tmp87 = __cil_tmp86 + 24;
10084#line 1672
10085 mem_365 = (NTSTATUS *)__cil_tmp87;
10086#line 1672
10087 *mem_365 = 0L;
10088#line 1673
10089 myStatus = 0L;
10090#line 1674
10091 if (s == 1) {
10092#line 1673
10093 s = 3;
10094 } else {
10095 {
10096#line 1673
10097 assert(0);
10098 }
10099 }
10100 {
10101#line 1674
10102 __cil_tmp88 = (unsigned int )Irp;
10103#line 1674
10104 __cil_tmp89 = __cil_tmp88 + 35;
10105#line 1674
10106 __cil_tmp90 = (unsigned int )Irp;
10107#line 1674
10108 __cil_tmp91 = __cil_tmp90 + 35;
10109#line 1674
10110 mem_366 = (CHAR *)__cil_tmp91;
10111#line 1674
10112 __cil_tmp92 = *mem_366;
10113#line 1674
10114 __cil_tmp93 = (int )__cil_tmp92;
10115#line 1674
10116 __cil_tmp94 = __cil_tmp93 + 1;
10117#line 1674
10118 mem_367 = (CHAR *)__cil_tmp89;
10119#line 1674
10120 *mem_367 = (char )__cil_tmp94;
10121#line 1674
10122 __cil_tmp95 = 24 + 8;
10123#line 1674
10124 __cil_tmp96 = 0 + __cil_tmp95;
10125#line 1674
10126 __cil_tmp97 = 64 + __cil_tmp96;
10127#line 1674
10128 __cil_tmp98 = (unsigned int )Irp;
10129#line 1674
10130 __cil_tmp99 = __cil_tmp98 + __cil_tmp97;
10131#line 1674
10132 __cil_tmp100 = 24 + 8;
10133#line 1674
10134 __cil_tmp101 = 0 + __cil_tmp100;
10135#line 1674
10136 __cil_tmp102 = 64 + __cil_tmp101;
10137#line 1674
10138 __cil_tmp103 = (unsigned int )Irp;
10139#line 1674
10140 __cil_tmp104 = __cil_tmp103 + __cil_tmp102;
10141#line 1674
10142 mem_368 = (struct _IO_STACK_LOCATION **)__cil_tmp104;
10143#line 1674
10144 __cil_tmp105 = *mem_368;
10145#line 1674
10146 mem_369 = (struct _IO_STACK_LOCATION **)__cil_tmp99;
10147#line 1674
10148 *mem_369 = __cil_tmp105 + 1;
10149#line 1675
10150 __cil_tmp106 = (unsigned int )disketteExtension;
10151#line 1675
10152 __cil_tmp107 = __cil_tmp106 + 8;
10153#line 1675
10154 mem_370 = (PDEVICE_OBJECT *)__cil_tmp107;
10155#line 1675
10156 __cil_tmp108 = *mem_370;
10157#line 1675
10158 ntStatus = IofCallDriver(__cil_tmp108, Irp);
10159 }
10160 } else {
10161 {
10162#line 1682
10163 ntStatus = -1073741823L;
10164#line 1683
10165 __cil_tmp109 = (unsigned int )Irp;
10166#line 1683
10167 __cil_tmp110 = __cil_tmp109 + 24;
10168#line 1683
10169 mem_371 = (NTSTATUS *)__cil_tmp110;
10170#line 1683
10171 *mem_371 = ntStatus;
10172#line 1684
10173 myStatus = ntStatus;
10174#line 1686
10175 __cil_tmp111 = 24 + 4;
10176#line 1686
10177 __cil_tmp112 = (unsigned int )Irp;
10178#line 1686
10179 __cil_tmp113 = __cil_tmp112 + __cil_tmp111;
10180#line 1686
10181 mem_372 = (ULONG_PTR *)__cil_tmp113;
10182#line 1686
10183 *mem_372 = 0UL;
10184#line 1687
10185 IofCompleteRequest(Irp, (char)0);
10186 }
10187 }
10188 goto switch_32_break;
10189 switch_32_6: ;
10190 switch_32_3: ;
10191 {
10192#line 1692
10193 __cil_tmp114 = (unsigned int )irpSp;
10194#line 1692
10195 __cil_tmp115 = __cil_tmp114 + 1;
10196#line 1692
10197 mem_373 = (UCHAR *)__cil_tmp115;
10198#line 1692
10199 __cil_tmp116 = *mem_373;
10200#line 1692
10201 __cil_tmp117 = (int )__cil_tmp116;
10202#line 1692
10203 if (__cil_tmp117 == 6) {
10204 {
10205#line 1693
10206 while (1) {
10207 while_35_continue: ;
10208 goto while_35_break;
10209 }
10210 while_35_break: ;
10211 }
10212 } else {
10213 {
10214#line 1695
10215 while (1) {
10216 while_36_continue: ;
10217 goto while_36_break;
10218 }
10219 while_36_break: ;
10220 }
10221 }
10222 }
10223 {
10224#line 1698
10225 __cil_tmp118 = (unsigned int )disketteExtension;
10226#line 1698
10227 __cil_tmp119 = __cil_tmp118 + 12;
10228#line 1698
10229 mem_374 = (BOOLEAN *)__cil_tmp119;
10230#line 1698
10231 __cil_tmp120 = *mem_374;
10232#line 1698
10233 if (! __cil_tmp120) {
10234#line 1706
10235 __cil_tmp121 = (unsigned int )Irp;
10236#line 1706
10237 __cil_tmp122 = __cil_tmp121 + 24;
10238#line 1706
10239 mem_375 = (NTSTATUS *)__cil_tmp122;
10240#line 1706
10241 *mem_375 = 0L;
10242#line 1707
10243 myStatus = 0L;
10244#line 1709
10245 if (s == 1) {
10246#line 1707
10247 s = 3;
10248 } else {
10249 {
10250#line 1707
10251 assert(0);
10252 }
10253 }
10254 {
10255#line 1708
10256 __cil_tmp123 = (unsigned int )Irp;
10257#line 1708
10258 __cil_tmp124 = __cil_tmp123 + 35;
10259#line 1708
10260 __cil_tmp125 = (unsigned int )Irp;
10261#line 1708
10262 __cil_tmp126 = __cil_tmp125 + 35;
10263#line 1708
10264 mem_376 = (CHAR *)__cil_tmp126;
10265#line 1708
10266 __cil_tmp127 = *mem_376;
10267#line 1708
10268 __cil_tmp128 = (int )__cil_tmp127;
10269#line 1708
10270 __cil_tmp129 = __cil_tmp128 + 1;
10271#line 1708
10272 mem_377 = (CHAR *)__cil_tmp124;
10273#line 1708
10274 *mem_377 = (char )__cil_tmp129;
10275#line 1708
10276 __cil_tmp130 = 24 + 8;
10277#line 1708
10278 __cil_tmp131 = 0 + __cil_tmp130;
10279#line 1708
10280 __cil_tmp132 = 64 + __cil_tmp131;
10281#line 1708
10282 __cil_tmp133 = (unsigned int )Irp;
10283#line 1708
10284 __cil_tmp134 = __cil_tmp133 + __cil_tmp132;
10285#line 1708
10286 __cil_tmp135 = 24 + 8;
10287#line 1708
10288 __cil_tmp136 = 0 + __cil_tmp135;
10289#line 1708
10290 __cil_tmp137 = 64 + __cil_tmp136;
10291#line 1708
10292 __cil_tmp138 = (unsigned int )Irp;
10293#line 1708
10294 __cil_tmp139 = __cil_tmp138 + __cil_tmp137;
10295#line 1708
10296 mem_378 = (struct _IO_STACK_LOCATION **)__cil_tmp139;
10297#line 1708
10298 __cil_tmp140 = *mem_378;
10299#line 1708
10300 mem_379 = (struct _IO_STACK_LOCATION **)__cil_tmp134;
10301#line 1708
10302 *mem_379 = __cil_tmp140 + 1;
10303#line 1709
10304 __cil_tmp141 = (unsigned int )disketteExtension;
10305#line 1709
10306 __cil_tmp142 = __cil_tmp141 + 8;
10307#line 1709
10308 mem_380 = (PDEVICE_OBJECT *)__cil_tmp142;
10309#line 1709
10310 __cil_tmp143 = *mem_380;
10311#line 1709
10312 ntStatus = IofCallDriver(__cil_tmp143, Irp);
10313 }
10314 } else {
10315 {
10316#line 1718
10317 __cil_tmp144 = (unsigned int )Irp;
10318#line 1718
10319 __cil_tmp145 = __cil_tmp144 + 24;
10320#line 1718
10321 mem_381 = (NTSTATUS *)__cil_tmp145;
10322#line 1718
10323 *mem_381 = 0L;
10324#line 1719
10325 myStatus = 0L;
10326#line 1723
10327 __cil_tmp146 = 24 + 8;
10328#line 1723
10329 __cil_tmp147 = 0 + __cil_tmp146;
10330#line 1723
10331 __cil_tmp148 = 64 + __cil_tmp147;
10332#line 1723
10333 __cil_tmp149 = (unsigned int )Irp;
10334#line 1723
10335 __cil_tmp150 = __cil_tmp149 + __cil_tmp148;
10336#line 1723
10337 mem_382 = (struct _IO_STACK_LOCATION **)__cil_tmp150;
10338#line 1723
10339 irpSp___0 = *mem_382;
10340#line 1723
10341 __cil_tmp151 = 24 + 8;
10342#line 1723
10343 __cil_tmp152 = 0 + __cil_tmp151;
10344#line 1723
10345 __cil_tmp153 = 64 + __cil_tmp152;
10346#line 1723
10347 __cil_tmp154 = (unsigned int )Irp;
10348#line 1723
10349 __cil_tmp155 = __cil_tmp154 + __cil_tmp153;
10350#line 1723
10351 mem_383 = (struct _IO_STACK_LOCATION **)__cil_tmp155;
10352#line 1723
10353 __cil_tmp156 = *mem_383;
10354#line 1723
10355 nextIrpSp = __cil_tmp156 - 1;
10356#line 1723
10357 __cil_tmp157 = (void *)nextIrpSp;
10358#line 1723
10359 __cil_tmp158 = (void const *)irpSp___0;
10360#line 1723
10361 __cil_tmp159 = (IO_STACK_LOCATION *)0;
10362#line 1723
10363 __cil_tmp160 = (unsigned int )__cil_tmp159;
10364#line 1723
10365 __cil_tmp161 = __cil_tmp160 + 112;
10366#line 1723
10367 __cil_tmp162 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp ,
10368 PVOID Context ))__cil_tmp161;
10369#line 1723
10370 __cil_tmp163 = (long )__cil_tmp162;
10371#line 1723
10372 __cil_tmp164 = (unsigned int )__cil_tmp163;
10373#line 1723
10374 memcpy(__cil_tmp157, __cil_tmp158, __cil_tmp164);
10375#line 1723
10376 __cil_tmp165 = (unsigned int )nextIrpSp;
10377#line 1723
10378 __cil_tmp166 = __cil_tmp165 + 3;
10379#line 1723
10380 mem_384 = (UCHAR *)__cil_tmp166;
10381#line 1723
10382 *mem_384 = (unsigned char)0;
10383#line 1729
10384 __cil_tmp167 = (enum _EVENT_TYPE )1;
10385#line 1729
10386 KeInitializeEvent(& doneEvent, __cil_tmp167, (unsigned char)0);
10387 }
10388#line 1733
10389 if (s != 1) {
10390 {
10391#line 1733
10392 assert(0);
10393 }
10394 } else {
10395#line 1735
10396 if (compRegistered != 0) {
10397 {
10398#line 1735
10399 assert(0);
10400 }
10401 } else {
10402#line 1737
10403 compRegistered = 1;
10404#line 1738
10405 compFptr = & FloppyPnpComplete;
10406 }
10407 }
10408 {
10409#line 1744
10410 __cil_tmp168 = 24 + 8;
10411#line 1744
10412 __cil_tmp169 = 0 + __cil_tmp168;
10413#line 1744
10414 __cil_tmp170 = 64 + __cil_tmp169;
10415#line 1744
10416 __cil_tmp171 = (unsigned int )Irp;
10417#line 1744
10418 __cil_tmp172 = __cil_tmp171 + __cil_tmp170;
10419#line 1744
10420 mem_385 = (struct _IO_STACK_LOCATION **)__cil_tmp172;
10421#line 1744
10422 __cil_tmp173 = *mem_385;
10423#line 1744
10424 irpSp___1 = __cil_tmp173 - 1;
10425#line 1744
10426 __cil_tmp174 = (unsigned int )irpSp___1;
10427#line 1744
10428 __cil_tmp175 = __cil_tmp174 + 112;
10429#line 1744
10430 mem_386 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp ,
10431 PVOID Context ))__cil_tmp175;
10432#line 1744
10433 *mem_386 = & FloppyPnpComplete;
10434#line 1744
10435 __cil_tmp176 = (unsigned int )irpSp___1;
10436#line 1744
10437 __cil_tmp177 = __cil_tmp176 + 116;
10438#line 1744
10439 mem_387 = (PVOID *)__cil_tmp177;
10440#line 1744
10441 *mem_387 = (void *)(& doneEvent);
10442#line 1744
10443 __cil_tmp178 = (unsigned int )irpSp___1;
10444#line 1744
10445 __cil_tmp179 = __cil_tmp178 + 3;
10446#line 1744
10447 mem_388 = (UCHAR *)__cil_tmp179;
10448#line 1744
10449 *mem_388 = (unsigned char)0;
10450#line 1744
10451 __cil_tmp180 = (unsigned int )irpSp___1;
10452#line 1744
10453 __cil_tmp181 = __cil_tmp180 + 3;
10454#line 1744
10455 mem_389 = (UCHAR *)__cil_tmp181;
10456#line 1744
10457 *mem_389 = (unsigned char)64;
10458#line 1744
10459 __cil_tmp182 = (unsigned int )irpSp___1;
10460#line 1744
10461 __cil_tmp183 = __cil_tmp182 + 3;
10462#line 1744
10463 __cil_tmp184 = (unsigned int )irpSp___1;
10464#line 1744
10465 __cil_tmp185 = __cil_tmp184 + 3;
10466#line 1744
10467 mem_390 = (UCHAR *)__cil_tmp185;
10468#line 1744
10469 __cil_tmp186 = *mem_390;
10470#line 1744
10471 __cil_tmp187 = (int )__cil_tmp186;
10472#line 1744
10473 __cil_tmp188 = __cil_tmp187 | 128;
10474#line 1744
10475 mem_391 = (UCHAR *)__cil_tmp183;
10476#line 1744
10477 *mem_391 = (unsigned char )__cil_tmp188;
10478#line 1744
10479 __cil_tmp189 = (unsigned int )irpSp___1;
10480#line 1744
10481 __cil_tmp190 = __cil_tmp189 + 3;
10482#line 1744
10483 __cil_tmp191 = (unsigned int )irpSp___1;
10484#line 1744
10485 __cil_tmp192 = __cil_tmp191 + 3;
10486#line 1744
10487 mem_392 = (UCHAR *)__cil_tmp192;
10488#line 1744
10489 __cil_tmp193 = *mem_392;
10490#line 1744
10491 __cil_tmp194 = (int )__cil_tmp193;
10492#line 1744
10493 __cil_tmp195 = __cil_tmp194 | 32;
10494#line 1744
10495 mem_393 = (UCHAR *)__cil_tmp190;
10496#line 1744
10497 *mem_393 = (unsigned char )__cil_tmp195;
10498#line 1746
10499 __cil_tmp196 = (unsigned int )disketteExtension;
10500#line 1746
10501 __cil_tmp197 = __cil_tmp196 + 8;
10502#line 1746
10503 mem_394 = (PDEVICE_OBJECT *)__cil_tmp197;
10504#line 1746
10505 __cil_tmp198 = *mem_394;
10506#line 1746
10507 ntStatus = IofCallDriver(__cil_tmp198, Irp);
10508 }
10509#line 1748
10510 if (ntStatus == 259L) {
10511 {
10512#line 1750
10513 __cil_tmp199 = (void *)(& doneEvent);
10514#line 1750
10515 __cil_tmp200 = (enum _KWAIT_REASON )0;
10516#line 1750
10517 __cil_tmp201 = (void *)0;
10518#line 1750
10519 __cil_tmp202 = (LARGE_INTEGER *)__cil_tmp201;
10520#line 1750
10521 KeWaitForSingleObject(__cil_tmp199, __cil_tmp200, (char)0, (unsigned char)0,
10522 __cil_tmp202);
10523#line 1757
10524 ntStatus = myStatus;
10525 }
10526 } else {
10527
10528 }
10529 {
10530#line 1759
10531 __cil_tmp203 = (unsigned int )disketteExtension;
10532#line 1759
10533 __cil_tmp204 = __cil_tmp203 + 428;
10534#line 1759
10535 __cil_tmp205 = (FAST_MUTEX *)__cil_tmp204;
10536#line 1759
10537 ExAcquireFastMutex(__cil_tmp205);
10538#line 1760
10539 __cil_tmp206 = (unsigned int )disketteExtension;
10540#line 1760
10541 __cil_tmp207 = __cil_tmp206 + 14;
10542#line 1760
10543 mem_395 = (BOOLEAN *)__cil_tmp207;
10544#line 1760
10545 *mem_395 = (unsigned char)0;
10546#line 1761
10547 __cil_tmp208 = (unsigned int )disketteExtension;
10548#line 1761
10549 __cil_tmp209 = __cil_tmp208 + 428;
10550#line 1761
10551 __cil_tmp210 = (FAST_MUTEX *)__cil_tmp209;
10552#line 1761
10553 ExReleaseFastMutex(__cil_tmp210);
10554#line 1766
10555 FloppyProcessQueuedRequests(disketteExtension);
10556#line 1772
10557 __cil_tmp211 = (unsigned int )Irp;
10558#line 1772
10559 __cil_tmp212 = __cil_tmp211 + 24;
10560#line 1772
10561 mem_396 = (NTSTATUS *)__cil_tmp212;
10562#line 1772
10563 *mem_396 = ntStatus;
10564#line 1773
10565 myStatus = ntStatus;
10566#line 1775
10567 __cil_tmp213 = 24 + 4;
10568#line 1775
10569 __cil_tmp214 = (unsigned int )Irp;
10570#line 1775
10571 __cil_tmp215 = __cil_tmp214 + __cil_tmp213;
10572#line 1775
10573 mem_397 = (ULONG_PTR *)__cil_tmp215;
10574#line 1775
10575 *mem_397 = 0UL;
10576#line 1776
10577 IofCompleteRequest(Irp, (char)0);
10578 }
10579 }
10580 }
10581 goto switch_32_break;
10582 switch_32_4: ;
10583 {
10584#line 1780
10585 while (1) {
10586 while_37_continue: ;
10587 goto while_37_break;
10588 }
10589 while_37_break: ;
10590 }
10591#line 1782
10592 __cil_tmp216 = (unsigned int )disketteExtension;
10593#line 1782
10594 __cil_tmp217 = __cil_tmp216 + 12;
10595#line 1782
10596 mem_398 = (BOOLEAN *)__cil_tmp217;
10597#line 1782
10598 *mem_398 = (unsigned char)0;
10599#line 1784
10600 __cil_tmp218 = (unsigned int )Irp;
10601#line 1784
10602 __cil_tmp219 = __cil_tmp218 + 24;
10603#line 1784
10604 mem_399 = (NTSTATUS *)__cil_tmp219;
10605#line 1784
10606 *mem_399 = 0L;
10607#line 1785
10608 myStatus = 0L;
10609#line 1786
10610 if (s == 1) {
10611#line 1785
10612 s = 3;
10613 } else {
10614 {
10615#line 1785
10616 assert(0);
10617 }
10618 }
10619 {
10620#line 1786
10621 __cil_tmp220 = (unsigned int )Irp;
10622#line 1786
10623 __cil_tmp221 = __cil_tmp220 + 35;
10624#line 1786
10625 __cil_tmp222 = (unsigned int )Irp;
10626#line 1786
10627 __cil_tmp223 = __cil_tmp222 + 35;
10628#line 1786
10629 mem_400 = (CHAR *)__cil_tmp223;
10630#line 1786
10631 __cil_tmp224 = *mem_400;
10632#line 1786
10633 __cil_tmp225 = (int )__cil_tmp224;
10634#line 1786
10635 __cil_tmp226 = __cil_tmp225 + 1;
10636#line 1786
10637 mem_401 = (CHAR *)__cil_tmp221;
10638#line 1786
10639 *mem_401 = (char )__cil_tmp226;
10640#line 1786
10641 __cil_tmp227 = 24 + 8;
10642#line 1786
10643 __cil_tmp228 = 0 + __cil_tmp227;
10644#line 1786
10645 __cil_tmp229 = 64 + __cil_tmp228;
10646#line 1786
10647 __cil_tmp230 = (unsigned int )Irp;
10648#line 1786
10649 __cil_tmp231 = __cil_tmp230 + __cil_tmp229;
10650#line 1786
10651 __cil_tmp232 = 24 + 8;
10652#line 1786
10653 __cil_tmp233 = 0 + __cil_tmp232;
10654#line 1786
10655 __cil_tmp234 = 64 + __cil_tmp233;
10656#line 1786
10657 __cil_tmp235 = (unsigned int )Irp;
10658#line 1786
10659 __cil_tmp236 = __cil_tmp235 + __cil_tmp234;
10660#line 1786
10661 mem_402 = (struct _IO_STACK_LOCATION **)__cil_tmp236;
10662#line 1786
10663 __cil_tmp237 = *mem_402;
10664#line 1786
10665 mem_403 = (struct _IO_STACK_LOCATION **)__cil_tmp231;
10666#line 1786
10667 *mem_403 = __cil_tmp237 + 1;
10668#line 1787
10669 __cil_tmp238 = (unsigned int )disketteExtension;
10670#line 1787
10671 __cil_tmp239 = __cil_tmp238 + 8;
10672#line 1787
10673 mem_404 = (PDEVICE_OBJECT *)__cil_tmp239;
10674#line 1787
10675 __cil_tmp240 = *mem_404;
10676#line 1787
10677 ntStatus = IofCallDriver(__cil_tmp240, Irp);
10678 }
10679 goto switch_32_break;
10680 switch_32_2: ;
10681 {
10682#line 1793
10683 while (1) {
10684 while_38_continue: ;
10685 goto while_38_break;
10686 }
10687 while_38_break: ;
10688 }
10689 {
10690#line 1800
10691 __cil_tmp241 = (unsigned int )disketteExtension;
10692#line 1800
10693 __cil_tmp242 = __cil_tmp241 + 428;
10694#line 1800
10695 __cil_tmp243 = (FAST_MUTEX *)__cil_tmp242;
10696#line 1800
10697 ExAcquireFastMutex(__cil_tmp243);
10698#line 1801
10699 __cil_tmp244 = (unsigned int )disketteExtension;
10700#line 1801
10701 __cil_tmp245 = __cil_tmp244 + 14;
10702#line 1801
10703 mem_405 = (BOOLEAN *)__cil_tmp245;
10704#line 1801
10705 *mem_405 = (unsigned char)0;
10706#line 1802
10707 __cil_tmp246 = (unsigned int )disketteExtension;
10708#line 1802
10709 __cil_tmp247 = __cil_tmp246 + 428;
10710#line 1802
10711 __cil_tmp248 = (FAST_MUTEX *)__cil_tmp247;
10712#line 1802
10713 ExReleaseFastMutex(__cil_tmp248);
10714#line 1804
10715 __cil_tmp249 = (unsigned int )disketteExtension;
10716#line 1804
10717 __cil_tmp250 = __cil_tmp249 + 12;
10718#line 1804
10719 mem_406 = (BOOLEAN *)__cil_tmp250;
10720#line 1804
10721 *mem_406 = (unsigned char)0;
10722#line 1805
10723 __cil_tmp251 = (unsigned int )disketteExtension;
10724#line 1805
10725 __cil_tmp252 = __cil_tmp251 + 13;
10726#line 1805
10727 mem_407 = (BOOLEAN *)__cil_tmp252;
10728#line 1805
10729 *mem_407 = (unsigned char)1;
10730#line 1815
10731 FloppyProcessQueuedRequests(disketteExtension);
10732 }
10733#line 1820
10734 if (s == 1) {
10735#line 1820
10736 s = 3;
10737 } else {
10738 {
10739#line 1820
10740 assert(0);
10741 }
10742 }
10743 {
10744#line 1821
10745 __cil_tmp253 = (unsigned int )Irp;
10746#line 1821
10747 __cil_tmp254 = __cil_tmp253 + 35;
10748#line 1821
10749 __cil_tmp255 = (unsigned int )Irp;
10750#line 1821
10751 __cil_tmp256 = __cil_tmp255 + 35;
10752#line 1821
10753 mem_408 = (CHAR *)__cil_tmp256;
10754#line 1821
10755 __cil_tmp257 = *mem_408;
10756#line 1821
10757 __cil_tmp258 = (int )__cil_tmp257;
10758#line 1821
10759 __cil_tmp259 = __cil_tmp258 + 1;
10760#line 1821
10761 mem_409 = (CHAR *)__cil_tmp254;
10762#line 1821
10763 *mem_409 = (char )__cil_tmp259;
10764#line 1821
10765 __cil_tmp260 = 24 + 8;
10766#line 1821
10767 __cil_tmp261 = 0 + __cil_tmp260;
10768#line 1821
10769 __cil_tmp262 = 64 + __cil_tmp261;
10770#line 1821
10771 __cil_tmp263 = (unsigned int )Irp;
10772#line 1821
10773 __cil_tmp264 = __cil_tmp263 + __cil_tmp262;
10774#line 1821
10775 __cil_tmp265 = 24 + 8;
10776#line 1821
10777 __cil_tmp266 = 0 + __cil_tmp265;
10778#line 1821
10779 __cil_tmp267 = 64 + __cil_tmp266;
10780#line 1821
10781 __cil_tmp268 = (unsigned int )Irp;
10782#line 1821
10783 __cil_tmp269 = __cil_tmp268 + __cil_tmp267;
10784#line 1821
10785 mem_410 = (struct _IO_STACK_LOCATION **)__cil_tmp269;
10786#line 1821
10787 __cil_tmp270 = *mem_410;
10788#line 1821
10789 mem_411 = (struct _IO_STACK_LOCATION **)__cil_tmp264;
10790#line 1821
10791 *mem_411 = __cil_tmp270 + 1;
10792#line 1822
10793 __cil_tmp271 = (unsigned int )Irp;
10794#line 1822
10795 __cil_tmp272 = __cil_tmp271 + 24;
10796#line 1822
10797 mem_412 = (NTSTATUS *)__cil_tmp272;
10798#line 1822
10799 *mem_412 = 0L;
10800#line 1823
10801 myStatus = 0L;
10802#line 1824
10803 __cil_tmp273 = (unsigned int )disketteExtension;
10804#line 1824
10805 __cil_tmp274 = __cil_tmp273 + 8;
10806#line 1824
10807 mem_413 = (PDEVICE_OBJECT *)__cil_tmp274;
10808#line 1824
10809 __cil_tmp275 = *mem_413;
10810#line 1824
10811 ntStatus = IofCallDriver(__cil_tmp275, Irp);
10812 }
10813 {
10814#line 1828
10815 __cil_tmp276 = (void *)0;
10816#line 1828
10817 __cil_tmp277 = (unsigned int )__cil_tmp276;
10818#line 1828
10819 __cil_tmp278 = 376 + 4;
10820#line 1828
10821 __cil_tmp279 = (unsigned int )disketteExtension;
10822#line 1828
10823 __cil_tmp280 = __cil_tmp279 + __cil_tmp278;
10824#line 1828
10825 mem_414 = (PWSTR *)__cil_tmp280;
10826#line 1828
10827 __cil_tmp281 = *mem_414;
10828#line 1828
10829 __cil_tmp282 = (unsigned int )__cil_tmp281;
10830#line 1828
10831 if (__cil_tmp282 != __cil_tmp277) {
10832 {
10833#line 1830
10834 __cil_tmp283 = (unsigned int )disketteExtension;
10835#line 1830
10836 __cil_tmp284 = __cil_tmp283 + 376;
10837#line 1830
10838 __cil_tmp285 = (UNICODE_STRING *)__cil_tmp284;
10839#line 1830
10840 IoSetDeviceInterfaceState(__cil_tmp285, (unsigned char)0);
10841#line 1833
10842 __cil_tmp286 = (unsigned int )disketteExtension;
10843#line 1833
10844 __cil_tmp287 = __cil_tmp286 + 376;
10845#line 1833
10846 __cil_tmp288 = (UNICODE_STRING *)__cil_tmp287;
10847#line 1833
10848 RtlFreeUnicodeString(__cil_tmp288);
10849#line 1834
10850 __cil_tmp289 = (unsigned int )disketteExtension;
10851#line 1834
10852 __cil_tmp290 = __cil_tmp289 + 376;
10853#line 1834
10854 __cil_tmp291 = (UNICODE_STRING *)__cil_tmp290;
10855#line 1834
10856 __cil_tmp292 = (void *)0;
10857#line 1834
10858 __cil_tmp293 = (WCHAR const *)__cil_tmp292;
10859#line 1834
10860 RtlInitUnicodeString(__cil_tmp291, __cil_tmp293);
10861 }
10862 } else {
10863
10864 }
10865 }
10866 {
10867#line 1837
10868 __cil_tmp294 = (unsigned int )disketteExtension;
10869#line 1837
10870 __cil_tmp295 = __cil_tmp294 + 368;
10871#line 1837
10872 __cil_tmp296 = (UNICODE_STRING *)__cil_tmp295;
10873#line 1837
10874 RtlFreeUnicodeString(__cil_tmp296);
10875#line 1838
10876 __cil_tmp297 = (unsigned int )disketteExtension;
10877#line 1838
10878 __cil_tmp298 = __cil_tmp297 + 368;
10879#line 1838
10880 __cil_tmp299 = (UNICODE_STRING *)__cil_tmp298;
10881#line 1838
10882 __cil_tmp300 = (void *)0;
10883#line 1838
10884 __cil_tmp301 = (WCHAR const *)__cil_tmp300;
10885#line 1838
10886 RtlInitUnicodeString(__cil_tmp299, __cil_tmp301);
10887 }
10888 {
10889#line 1840
10890 __cil_tmp302 = (unsigned int )disketteExtension;
10891#line 1840
10892 __cil_tmp303 = __cil_tmp302 + 384;
10893#line 1840
10894 mem_415 = (USHORT *)__cil_tmp303;
10895#line 1840
10896 __cil_tmp304 = *mem_415;
10897#line 1840
10898 __cil_tmp305 = (int )__cil_tmp304;
10899#line 1840
10900 if (__cil_tmp305 != 0) {
10901 {
10902#line 1842
10903 __cil_tmp306 = (unsigned int )disketteExtension;
10904#line 1842
10905 __cil_tmp307 = __cil_tmp306 + 384;
10906#line 1842
10907 __cil_tmp308 = (UNICODE_STRING *)__cil_tmp307;
10908#line 1842
10909 IoDeleteSymbolicLink(__cil_tmp308);
10910#line 1843
10911 __cil_tmp309 = (unsigned int )disketteExtension;
10912#line 1843
10913 __cil_tmp310 = __cil_tmp309 + 384;
10914#line 1843
10915 __cil_tmp311 = (UNICODE_STRING *)__cil_tmp310;
10916#line 1843
10917 RtlFreeUnicodeString(__cil_tmp311);
10918#line 1844
10919 __cil_tmp312 = (unsigned int )disketteExtension;
10920#line 1844
10921 __cil_tmp313 = __cil_tmp312 + 384;
10922#line 1844
10923 __cil_tmp314 = (UNICODE_STRING *)__cil_tmp313;
10924#line 1844
10925 __cil_tmp315 = (void *)0;
10926#line 1844
10927 __cil_tmp316 = (WCHAR const *)__cil_tmp315;
10928#line 1844
10929 RtlInitUnicodeString(__cil_tmp314, __cil_tmp316);
10930 }
10931 } else {
10932
10933 }
10934 }
10935 {
10936#line 1850
10937 __cil_tmp317 = (unsigned int )disketteExtension;
10938#line 1850
10939 __cil_tmp318 = __cil_tmp317 + 8;
10940#line 1850
10941 mem_416 = (PDEVICE_OBJECT *)__cil_tmp318;
10942#line 1850
10943 __cil_tmp319 = *mem_416;
10944#line 1850
10945 IoDetachDevice(__cil_tmp319);
10946#line 1855
10947 IoDeleteDevice(DeviceObject);
10948#line 1857
10949 tmp = IoGetConfigurationInformation();
10950#line 1857
10951 __cil_tmp320 = (unsigned int )tmp;
10952#line 1857
10953 __cil_tmp321 = __cil_tmp320 + 4;
10954#line 1857
10955 __cil_tmp322 = (unsigned int )tmp;
10956#line 1857
10957 __cil_tmp323 = __cil_tmp322 + 4;
10958#line 1857
10959 mem_417 = (ULONG *)__cil_tmp323;
10960#line 1857
10961 __cil_tmp324 = *mem_417;
10962#line 1857
10963 mem_418 = (ULONG *)__cil_tmp321;
10964#line 1857
10965 *mem_418 = __cil_tmp324 - 1UL;
10966 }
10967 goto switch_32_break;
10968 switch_32_default: ;
10969 {
10970#line 1862
10971 while (1) {
10972 while_39_continue: ;
10973 goto while_39_break;
10974 }
10975 while_39_break: ;
10976 }
10977#line 1863
10978 if (s == 1) {
10979#line 1863
10980 s = 3;
10981 } else {
10982 {
10983#line 1863
10984 assert(0);
10985 }
10986 }
10987 {
10988#line 1864
10989 __cil_tmp325 = (unsigned int )Irp;
10990#line 1864
10991 __cil_tmp326 = __cil_tmp325 + 35;
10992#line 1864
10993 __cil_tmp327 = (unsigned int )Irp;
10994#line 1864
10995 __cil_tmp328 = __cil_tmp327 + 35;
10996#line 1864
10997 mem_419 = (CHAR *)__cil_tmp328;
10998#line 1864
10999 __cil_tmp329 = *mem_419;
11000#line 1864
11001 __cil_tmp330 = (int )__cil_tmp329;
11002#line 1864
11003 __cil_tmp331 = __cil_tmp330 + 1;
11004#line 1864
11005 mem_420 = (CHAR *)__cil_tmp326;
11006#line 1864
11007 *mem_420 = (char )__cil_tmp331;
11008#line 1864
11009 __cil_tmp332 = 24 + 8;
11010#line 1864
11011 __cil_tmp333 = 0 + __cil_tmp332;
11012#line 1864
11013 __cil_tmp334 = 64 + __cil_tmp333;
11014#line 1864
11015 __cil_tmp335 = (unsigned int )Irp;
11016#line 1864
11017 __cil_tmp336 = __cil_tmp335 + __cil_tmp334;
11018#line 1864
11019 __cil_tmp337 = 24 + 8;
11020#line 1864
11021 __cil_tmp338 = 0 + __cil_tmp337;
11022#line 1864
11023 __cil_tmp339 = 64 + __cil_tmp338;
11024#line 1864
11025 __cil_tmp340 = (unsigned int )Irp;
11026#line 1864
11027 __cil_tmp341 = __cil_tmp340 + __cil_tmp339;
11028#line 1864
11029 mem_421 = (struct _IO_STACK_LOCATION **)__cil_tmp341;
11030#line 1864
11031 __cil_tmp342 = *mem_421;
11032#line 1864
11033 mem_422 = (struct _IO_STACK_LOCATION **)__cil_tmp336;
11034#line 1864
11035 *mem_422 = __cil_tmp342 + 1;
11036#line 1865
11037 __cil_tmp343 = (unsigned int )disketteExtension;
11038#line 1865
11039 __cil_tmp344 = __cil_tmp343 + 8;
11040#line 1865
11041 mem_423 = (PDEVICE_OBJECT *)__cil_tmp344;
11042#line 1865
11043 __cil_tmp345 = *mem_423;
11044#line 1865
11045 ntStatus = IofCallDriver(__cil_tmp345, Irp);
11046 }
11047 } else {
11048 switch_32_break: ;
11049 }
11050 }
11051 }
11052 }
11053 }
11054 }
11055 }
11056 }
11057 }
11058 }
11059 {
11060#line 1871
11061 ExAcquireFastMutex(PagingMutex);
11062#line 1871
11063 PagingReferenceCount = PagingReferenceCount - 1UL;
11064 }
11065#line 1871
11066 if (PagingReferenceCount == 0UL) {
11067 {
11068#line 1871
11069 __cil_tmp346 = (void *)(& DriverEntry);
11070#line 1871
11071 MmPageEntireDriver(__cil_tmp346);
11072 }
11073 } else {
11074
11075 }
11076 {
11077#line 1871
11078 ExReleaseFastMutex(PagingMutex);
11079 }
11080#line 1873
11081 return (ntStatus);
11082}
11083}
11084#line 1876 "floppy.c"
11085NTSTATUS FloppyStartDevice(PDEVICE_OBJECT DeviceObject , PIRP Irp )
11086{ NTSTATUS ntStatus ;
11087 NTSTATUS pnpStatus ;
11088 KEVENT doneEvent ;
11089 FDC_INFO fdcInfo ;
11090 CONFIGURATION_TYPE Dc ;
11091 CONFIGURATION_TYPE Fp ;
11092 PDISKETTE_EXTENSION disketteExtension ;
11093 PIO_STACK_LOCATION irpSp ;
11094 PIO_STACK_LOCATION irpSp___0 ;
11095 PIO_STACK_LOCATION nextIrpSp ;
11096 PIO_STACK_LOCATION irpSp___1 ;
11097 INTERFACE_TYPE InterfaceType ;
11098 CONFIGURATION_TYPE *__cil_tmp15 ;
11099 CONFIGURATION_TYPE *__cil_tmp16 ;
11100 unsigned int __cil_tmp17 ;
11101 unsigned int __cil_tmp18 ;
11102 PVOID __cil_tmp19 ;
11103 unsigned int __cil_tmp20 ;
11104 unsigned int __cil_tmp21 ;
11105 unsigned int __cil_tmp22 ;
11106 unsigned int __cil_tmp23 ;
11107 unsigned int __cil_tmp24 ;
11108 enum _EVENT_TYPE __cil_tmp25 ;
11109 unsigned int __cil_tmp26 ;
11110 unsigned int __cil_tmp27 ;
11111 unsigned int __cil_tmp28 ;
11112 unsigned int __cil_tmp29 ;
11113 unsigned int __cil_tmp30 ;
11114 unsigned int __cil_tmp31 ;
11115 unsigned int __cil_tmp32 ;
11116 unsigned int __cil_tmp33 ;
11117 unsigned int __cil_tmp34 ;
11118 unsigned int __cil_tmp35 ;
11119 struct _IO_STACK_LOCATION *__cil_tmp36 ;
11120 void *__cil_tmp37 ;
11121 void const *__cil_tmp38 ;
11122 IO_STACK_LOCATION *__cil_tmp39 ;
11123 unsigned int __cil_tmp40 ;
11124 unsigned int __cil_tmp41 ;
11125 NTSTATUS (**__cil_tmp42)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
11126 long __cil_tmp43 ;
11127 unsigned int __cil_tmp44 ;
11128 unsigned int __cil_tmp45 ;
11129 unsigned int __cil_tmp46 ;
11130 unsigned int __cil_tmp47 ;
11131 unsigned int __cil_tmp48 ;
11132 unsigned int __cil_tmp49 ;
11133 unsigned int __cil_tmp50 ;
11134 unsigned int __cil_tmp51 ;
11135 struct _IO_STACK_LOCATION *__cil_tmp52 ;
11136 unsigned int __cil_tmp53 ;
11137 unsigned int __cil_tmp54 ;
11138 unsigned int __cil_tmp55 ;
11139 unsigned int __cil_tmp56 ;
11140 unsigned int __cil_tmp57 ;
11141 unsigned int __cil_tmp58 ;
11142 unsigned int __cil_tmp59 ;
11143 unsigned int __cil_tmp60 ;
11144 unsigned int __cil_tmp61 ;
11145 unsigned int __cil_tmp62 ;
11146 unsigned int __cil_tmp63 ;
11147 unsigned int __cil_tmp64 ;
11148 UCHAR __cil_tmp65 ;
11149 int __cil_tmp66 ;
11150 int __cil_tmp67 ;
11151 unsigned int __cil_tmp68 ;
11152 unsigned int __cil_tmp69 ;
11153 unsigned int __cil_tmp70 ;
11154 unsigned int __cil_tmp71 ;
11155 UCHAR __cil_tmp72 ;
11156 int __cil_tmp73 ;
11157 int __cil_tmp74 ;
11158 unsigned int __cil_tmp75 ;
11159 unsigned int __cil_tmp76 ;
11160 PDEVICE_OBJECT __cil_tmp77 ;
11161 void *__cil_tmp78 ;
11162 enum _KWAIT_REASON __cil_tmp79 ;
11163 void *__cil_tmp80 ;
11164 LARGE_INTEGER *__cil_tmp81 ;
11165 unsigned int __cil_tmp82 ;
11166 unsigned int __cil_tmp83 ;
11167 unsigned int __cil_tmp84 ;
11168 unsigned int __cil_tmp85 ;
11169 PDEVICE_OBJECT __cil_tmp86 ;
11170 int __cil_tmp87 ;
11171 int __cil_tmp88 ;
11172 int __cil_tmp89 ;
11173 int __cil_tmp90 ;
11174 unsigned long __cil_tmp91 ;
11175 void *__cil_tmp92 ;
11176 unsigned int __cil_tmp93 ;
11177 unsigned int __cil_tmp94 ;
11178 unsigned int __cil_tmp95 ;
11179 unsigned int __cil_tmp96 ;
11180 unsigned int __cil_tmp97 ;
11181 unsigned int __cil_tmp98 ;
11182 unsigned int __cil_tmp99 ;
11183 UCHAR __cil_tmp100 ;
11184 int __cil_tmp101 ;
11185 unsigned int __cil_tmp102 ;
11186 unsigned int __cil_tmp103 ;
11187 unsigned int __cil_tmp104 ;
11188 ULONG __cil_tmp105 ;
11189 int __cil_tmp106 ;
11190 unsigned int __cil_tmp107 ;
11191 unsigned int __cil_tmp108 ;
11192 UCHAR __cil_tmp109 ;
11193 int __cil_tmp110 ;
11194 int __cil_tmp111 ;
11195 unsigned int __cil_tmp112 ;
11196 unsigned int __cil_tmp113 ;
11197 UCHAR __cil_tmp114 ;
11198 int __cil_tmp115 ;
11199 unsigned int __cil_tmp116 ;
11200 unsigned int __cil_tmp117 ;
11201 unsigned int __cil_tmp118 ;
11202 ULONG __cil_tmp119 ;
11203 int __cil_tmp120 ;
11204 unsigned int __cil_tmp121 ;
11205 unsigned int __cil_tmp122 ;
11206 UCHAR __cil_tmp123 ;
11207 int __cil_tmp124 ;
11208 int __cil_tmp125 ;
11209 int __cil_tmp126 ;
11210 unsigned int __cil_tmp127 ;
11211 unsigned int __cil_tmp128 ;
11212 INTERFACE_TYPE *__cil_tmp129 ;
11213 unsigned int __cil_tmp130 ;
11214 ULONG *__cil_tmp131 ;
11215 unsigned int __cil_tmp132 ;
11216 ULONG *__cil_tmp133 ;
11217 unsigned int __cil_tmp134 ;
11218 ULONG *__cil_tmp135 ;
11219 void *__cil_tmp136 ;
11220 int __cil_tmp137 ;
11221 int __cil_tmp138 ;
11222 KUSER_SHARED_DATA *__cil_tmp139 ;
11223 unsigned int __cil_tmp140 ;
11224 unsigned int __cil_tmp141 ;
11225 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp142 ;
11226 int __cil_tmp143 ;
11227 unsigned int __cil_tmp144 ;
11228 unsigned int __cil_tmp145 ;
11229 unsigned int __cil_tmp146 ;
11230 ULONG __cil_tmp147 ;
11231 unsigned int __cil_tmp148 ;
11232 unsigned int __cil_tmp149 ;
11233 unsigned int __cil_tmp150 ;
11234 ULONG __cil_tmp151 ;
11235 unsigned int __cil_tmp152 ;
11236 unsigned int __cil_tmp153 ;
11237 unsigned int __cil_tmp154 ;
11238 ULONG __cil_tmp155 ;
11239 unsigned int __cil_tmp156 ;
11240 unsigned int __cil_tmp157 ;
11241 unsigned int __cil_tmp158 ;
11242 ULONG __cil_tmp159 ;
11243 int __cil_tmp160 ;
11244 unsigned long __cil_tmp161 ;
11245 unsigned int __cil_tmp162 ;
11246 ULONG __cil_tmp163 ;
11247 unsigned long __cil_tmp164 ;
11248 unsigned int __cil_tmp165 ;
11249 unsigned int __cil_tmp166 ;
11250 PDEVICE_OBJECT __cil_tmp167 ;
11251 GUID *__cil_tmp168 ;
11252 GUID const *__cil_tmp169 ;
11253 void *__cil_tmp170 ;
11254 UNICODE_STRING *__cil_tmp171 ;
11255 unsigned int __cil_tmp172 ;
11256 unsigned int __cil_tmp173 ;
11257 UNICODE_STRING *__cil_tmp174 ;
11258 unsigned int __cil_tmp175 ;
11259 unsigned int __cil_tmp176 ;
11260 UNICODE_STRING *__cil_tmp177 ;
11261 unsigned int __cil_tmp178 ;
11262 unsigned int __cil_tmp179 ;
11263 unsigned int __cil_tmp180 ;
11264 unsigned int __cil_tmp181 ;
11265 FAST_MUTEX *__cil_tmp182 ;
11266 unsigned int __cil_tmp183 ;
11267 unsigned int __cil_tmp184 ;
11268 unsigned int __cil_tmp185 ;
11269 unsigned int __cil_tmp186 ;
11270 FAST_MUTEX *__cil_tmp187 ;
11271 unsigned int __cil_tmp188 ;
11272 unsigned int __cil_tmp189 ;
11273 PVOID *mem_190 ;
11274 struct _IO_STACK_LOCATION **mem_191 ;
11275 struct _IO_STACK_LOCATION **mem_192 ;
11276 struct _IO_STACK_LOCATION **mem_193 ;
11277 UCHAR *mem_194 ;
11278 struct _IO_STACK_LOCATION **mem_195 ;
11279 NTSTATUS (**mem_196)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
11280 PVOID *mem_197 ;
11281 UCHAR *mem_198 ;
11282 UCHAR *mem_199 ;
11283 UCHAR *mem_200 ;
11284 UCHAR *mem_201 ;
11285 UCHAR *mem_202 ;
11286 UCHAR *mem_203 ;
11287 PDEVICE_OBJECT *mem_204 ;
11288 ULONG *mem_205 ;
11289 ULONG *mem_206 ;
11290 PDEVICE_OBJECT *mem_207 ;
11291 ULONG *mem_208 ;
11292 ULONG *mem_209 ;
11293 BOOLEAN *mem_210 ;
11294 BOOLEAN *mem_211 ;
11295 UCHAR *mem_212 ;
11296 ULONG *mem_213 ;
11297 UCHAR *mem_214 ;
11298 UCHAR *mem_215 ;
11299 UCHAR *mem_216 ;
11300 ULONG *mem_217 ;
11301 UCHAR *mem_218 ;
11302 UCHAR *mem_219 ;
11303 INTERFACE_TYPE *mem_220 ;
11304 ALTERNATIVE_ARCHITECTURE_TYPE *mem_221 ;
11305 ULONG *mem_222 ;
11306 UCHAR *mem_223 ;
11307 ULONG *mem_224 ;
11308 UCHAR *mem_225 ;
11309 ULONG *mem_226 ;
11310 UCHAR *mem_227 ;
11311 ULONG *mem_228 ;
11312 ULONG *mem_229 ;
11313 UCHAR *mem_230 ;
11314 PDEVICE_OBJECT *mem_231 ;
11315 BOOLEAN *mem_232 ;
11316 BOOLEAN *mem_233 ;
11317 NTSTATUS *mem_234 ;
11318
11319 {
11320#line 1887
11321 __cil_tmp15 = & Dc;
11322#line 1887
11323 *__cil_tmp15 = (enum _CONFIGURATION_TYPE )13;
11324#line 1888
11325 __cil_tmp16 = & Fp;
11326#line 1888
11327 *__cil_tmp16 = (enum _CONFIGURATION_TYPE )26;
11328#line 1890
11329 __cil_tmp17 = (unsigned int )DeviceObject;
11330#line 1890
11331 __cil_tmp18 = __cil_tmp17 + 40;
11332#line 1890
11333 mem_190 = (PVOID *)__cil_tmp18;
11334#line 1890
11335 __cil_tmp19 = *mem_190;
11336#line 1890
11337 disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp19;
11338#line 1891
11339 __cil_tmp20 = 24 + 8;
11340#line 1891
11341 __cil_tmp21 = 0 + __cil_tmp20;
11342#line 1891
11343 __cil_tmp22 = 64 + __cil_tmp21;
11344#line 1891
11345 __cil_tmp23 = (unsigned int )Irp;
11346#line 1891
11347 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
11348#line 1891
11349 mem_191 = (struct _IO_STACK_LOCATION **)__cil_tmp24;
11350#line 1891
11351 irpSp = *mem_191;
11352 {
11353#line 1893
11354 while (1) {
11355 while_40_continue: ;
11356 goto while_40_break;
11357 }
11358 while_40_break: ;
11359 }
11360 {
11361#line 1894
11362 while (1) {
11363 while_41_continue: ;
11364 goto while_41_break;
11365 }
11366 while_41_break: ;
11367 }
11368 {
11369#line 1895
11370 while (1) {
11371 while_42_continue: ;
11372 goto while_42_break;
11373 }
11374 while_42_break: ;
11375 }
11376 {
11377#line 1900
11378 __cil_tmp25 = (enum _EVENT_TYPE )0;
11379#line 1900
11380 KeInitializeEvent(& doneEvent, __cil_tmp25, (unsigned char)0);
11381#line 1902
11382 __cil_tmp26 = 24 + 8;
11383#line 1902
11384 __cil_tmp27 = 0 + __cil_tmp26;
11385#line 1902
11386 __cil_tmp28 = 64 + __cil_tmp27;
11387#line 1902
11388 __cil_tmp29 = (unsigned int )Irp;
11389#line 1902
11390 __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
11391#line 1902
11392 mem_192 = (struct _IO_STACK_LOCATION **)__cil_tmp30;
11393#line 1902
11394 irpSp___0 = *mem_192;
11395#line 1902
11396 __cil_tmp31 = 24 + 8;
11397#line 1902
11398 __cil_tmp32 = 0 + __cil_tmp31;
11399#line 1902
11400 __cil_tmp33 = 64 + __cil_tmp32;
11401#line 1902
11402 __cil_tmp34 = (unsigned int )Irp;
11403#line 1902
11404 __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
11405#line 1902
11406 mem_193 = (struct _IO_STACK_LOCATION **)__cil_tmp35;
11407#line 1902
11408 __cil_tmp36 = *mem_193;
11409#line 1902
11410 nextIrpSp = __cil_tmp36 - 1;
11411#line 1902
11412 __cil_tmp37 = (void *)nextIrpSp;
11413#line 1902
11414 __cil_tmp38 = (void const *)irpSp___0;
11415#line 1902
11416 __cil_tmp39 = (IO_STACK_LOCATION *)0;
11417#line 1902
11418 __cil_tmp40 = (unsigned int )__cil_tmp39;
11419#line 1902
11420 __cil_tmp41 = __cil_tmp40 + 112;
11421#line 1902
11422 __cil_tmp42 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp41;
11423#line 1902
11424 __cil_tmp43 = (long )__cil_tmp42;
11425#line 1902
11426 __cil_tmp44 = (unsigned int )__cil_tmp43;
11427#line 1902
11428 memcpy(__cil_tmp37, __cil_tmp38, __cil_tmp44);
11429#line 1902
11430 __cil_tmp45 = (unsigned int )nextIrpSp;
11431#line 1902
11432 __cil_tmp46 = __cil_tmp45 + 3;
11433#line 1902
11434 mem_194 = (UCHAR *)__cil_tmp46;
11435#line 1902
11436 *mem_194 = (unsigned char)0;
11437 }
11438#line 1904
11439 if (s != 1) {
11440 {
11441#line 1904
11442 assert(0);
11443 }
11444 } else {
11445#line 1906
11446 if (compRegistered != 0) {
11447 {
11448#line 1906
11449 assert(0);
11450 }
11451 } else {
11452#line 1908
11453 compRegistered = 1;
11454#line 1909
11455 compFptr = & FloppyPnpComplete;
11456 }
11457 }
11458 {
11459#line 1915
11460 __cil_tmp47 = 24 + 8;
11461#line 1915
11462 __cil_tmp48 = 0 + __cil_tmp47;
11463#line 1915
11464 __cil_tmp49 = 64 + __cil_tmp48;
11465#line 1915
11466 __cil_tmp50 = (unsigned int )Irp;
11467#line 1915
11468 __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
11469#line 1915
11470 mem_195 = (struct _IO_STACK_LOCATION **)__cil_tmp51;
11471#line 1915
11472 __cil_tmp52 = *mem_195;
11473#line 1915
11474 irpSp___1 = __cil_tmp52 - 1;
11475#line 1915
11476 __cil_tmp53 = (unsigned int )irpSp___1;
11477#line 1915
11478 __cil_tmp54 = __cil_tmp53 + 112;
11479#line 1915
11480 mem_196 = (NTSTATUS (**)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))__cil_tmp54;
11481#line 1915
11482 *mem_196 = & FloppyPnpComplete;
11483#line 1915
11484 __cil_tmp55 = (unsigned int )irpSp___1;
11485#line 1915
11486 __cil_tmp56 = __cil_tmp55 + 116;
11487#line 1915
11488 mem_197 = (PVOID *)__cil_tmp56;
11489#line 1915
11490 *mem_197 = (void *)(& doneEvent);
11491#line 1915
11492 __cil_tmp57 = (unsigned int )irpSp___1;
11493#line 1915
11494 __cil_tmp58 = __cil_tmp57 + 3;
11495#line 1915
11496 mem_198 = (UCHAR *)__cil_tmp58;
11497#line 1915
11498 *mem_198 = (unsigned char)0;
11499#line 1915
11500 __cil_tmp59 = (unsigned int )irpSp___1;
11501#line 1915
11502 __cil_tmp60 = __cil_tmp59 + 3;
11503#line 1915
11504 mem_199 = (UCHAR *)__cil_tmp60;
11505#line 1915
11506 *mem_199 = (unsigned char)64;
11507#line 1915
11508 __cil_tmp61 = (unsigned int )irpSp___1;
11509#line 1915
11510 __cil_tmp62 = __cil_tmp61 + 3;
11511#line 1915
11512 __cil_tmp63 = (unsigned int )irpSp___1;
11513#line 1915
11514 __cil_tmp64 = __cil_tmp63 + 3;
11515#line 1915
11516 mem_200 = (UCHAR *)__cil_tmp64;
11517#line 1915
11518 __cil_tmp65 = *mem_200;
11519#line 1915
11520 __cil_tmp66 = (int )__cil_tmp65;
11521#line 1915
11522 __cil_tmp67 = __cil_tmp66 | 128;
11523#line 1915
11524 mem_201 = (UCHAR *)__cil_tmp62;
11525#line 1915
11526 *mem_201 = (unsigned char )__cil_tmp67;
11527#line 1915
11528 __cil_tmp68 = (unsigned int )irpSp___1;
11529#line 1915
11530 __cil_tmp69 = __cil_tmp68 + 3;
11531#line 1915
11532 __cil_tmp70 = (unsigned int )irpSp___1;
11533#line 1915
11534 __cil_tmp71 = __cil_tmp70 + 3;
11535#line 1915
11536 mem_202 = (UCHAR *)__cil_tmp71;
11537#line 1915
11538 __cil_tmp72 = *mem_202;
11539#line 1915
11540 __cil_tmp73 = (int )__cil_tmp72;
11541#line 1915
11542 __cil_tmp74 = __cil_tmp73 | 32;
11543#line 1915
11544 mem_203 = (UCHAR *)__cil_tmp69;
11545#line 1915
11546 *mem_203 = (unsigned char )__cil_tmp74;
11547#line 1917
11548 __cil_tmp75 = (unsigned int )disketteExtension;
11549#line 1917
11550 __cil_tmp76 = __cil_tmp75 + 8;
11551#line 1917
11552 mem_204 = (PDEVICE_OBJECT *)__cil_tmp76;
11553#line 1917
11554 __cil_tmp77 = *mem_204;
11555#line 1917
11556 ntStatus = IofCallDriver(__cil_tmp77, Irp);
11557 }
11558#line 1919
11559 if (ntStatus == 259L) {
11560 {
11561#line 1921
11562 __cil_tmp78 = (void *)(& doneEvent);
11563#line 1921
11564 __cil_tmp79 = (enum _KWAIT_REASON )0;
11565#line 1921
11566 __cil_tmp80 = (void *)0;
11567#line 1921
11568 __cil_tmp81 = (LARGE_INTEGER *)__cil_tmp80;
11569#line 1921
11570 ntStatus = KeWaitForSingleObject(__cil_tmp78, __cil_tmp79, (char)0, (unsigned char)0,
11571 __cil_tmp81);
11572#line 1930
11573 ntStatus = myStatus;
11574 }
11575 } else {
11576
11577 }
11578 {
11579#line 1932
11580 __cil_tmp82 = (unsigned int )(& fdcInfo) + 128;
11581#line 1932
11582 mem_205 = (ULONG *)__cil_tmp82;
11583#line 1932
11584 *mem_205 = 0UL;
11585#line 1933
11586 __cil_tmp83 = (unsigned int )(& fdcInfo) + 132;
11587#line 1933
11588 mem_206 = (ULONG *)__cil_tmp83;
11589#line 1933
11590 *mem_206 = 0UL;
11591#line 1935
11592 __cil_tmp84 = (unsigned int )disketteExtension;
11593#line 1935
11594 __cil_tmp85 = __cil_tmp84 + 8;
11595#line 1935
11596 mem_207 = (PDEVICE_OBJECT *)__cil_tmp85;
11597#line 1935
11598 __cil_tmp86 = *mem_207;
11599#line 1935
11600 __cil_tmp87 = 770 << 2;
11601#line 1935
11602 __cil_tmp88 = 7 << 16;
11603#line 1935
11604 __cil_tmp89 = __cil_tmp88 | __cil_tmp87;
11605#line 1935
11606 __cil_tmp90 = __cil_tmp89 | 3;
11607#line 1935
11608 __cil_tmp91 = (unsigned long )__cil_tmp90;
11609#line 1935
11610 __cil_tmp92 = (void *)(& fdcInfo);
11611#line 1935
11612 ntStatus = FlFdcDeviceIo(__cil_tmp86, __cil_tmp91, __cil_tmp92);
11613 }
11614#line 1939
11615 if (ntStatus >= 0L) {
11616#line 1941
11617 __cil_tmp93 = (unsigned int )disketteExtension;
11618#line 1941
11619 __cil_tmp94 = __cil_tmp93 + 108;
11620#line 1941
11621 __cil_tmp95 = (unsigned int )(& fdcInfo) + 56;
11622#line 1941
11623 mem_208 = (ULONG *)__cil_tmp94;
11624#line 1941
11625 mem_209 = (ULONG *)__cil_tmp95;
11626#line 1941
11627 *mem_208 = *mem_209;
11628 {
11629#line 1943
11630 __cil_tmp96 = (unsigned int )(& fdcInfo) + 60;
11631 {
11632#line 1943
11633 mem_210 = (BOOLEAN *)__cil_tmp96;
11634#line 1943
11635 if (*mem_210) {
11636 {
11637#line 1943
11638 __cil_tmp97 = (unsigned int )(& fdcInfo) + 61;
11639 {
11640#line 1943
11641 mem_211 = (BOOLEAN *)__cil_tmp97;
11642#line 1943
11643 if (*mem_211) {
11644 {
11645#line 1946
11646 ntStatus = FlAcpiConfigureFloppy(disketteExtension, & fdcInfo);
11647 }
11648 {
11649#line 1948
11650 __cil_tmp98 = (unsigned int )disketteExtension;
11651#line 1948
11652 __cil_tmp99 = __cil_tmp98 + 174;
11653#line 1948
11654 mem_212 = (UCHAR *)__cil_tmp99;
11655#line 1948
11656 __cil_tmp100 = *mem_212;
11657#line 1948
11658 __cil_tmp101 = (int )__cil_tmp100;
11659#line 1948
11660 if (__cil_tmp101 == 4) {
11661#line 1950
11662 __cil_tmp102 = (unsigned int )disketteExtension;
11663#line 1950
11664 __cil_tmp103 = __cil_tmp102 + 364;
11665#line 1950
11666 __cil_tmp104 = (unsigned int )(& fdcInfo) + 48;
11667#line 1950
11668 mem_213 = (ULONG *)__cil_tmp104;
11669#line 1950
11670 __cil_tmp105 = *mem_213;
11671#line 1950
11672 __cil_tmp106 = 1 << __cil_tmp105;
11673#line 1950
11674 __cil_tmp107 = (unsigned int )disketteExtension;
11675#line 1950
11676 __cil_tmp108 = __cil_tmp107 + 364;
11677#line 1950
11678 mem_214 = (UCHAR *)__cil_tmp108;
11679#line 1950
11680 __cil_tmp109 = *mem_214;
11681#line 1950
11682 __cil_tmp110 = (int )__cil_tmp109;
11683#line 1950
11684 __cil_tmp111 = __cil_tmp110 | __cil_tmp106;
11685#line 1950
11686 mem_215 = (UCHAR *)__cil_tmp103;
11687#line 1950
11688 *mem_215 = (unsigned char )__cil_tmp111;
11689 } else {
11690
11691 }
11692 }
11693 } else {
11694 goto _L;
11695 }
11696 }
11697 }
11698 } else {
11699 _L:
11700 {
11701#line 1957
11702 __cil_tmp112 = (unsigned int )disketteExtension;
11703#line 1957
11704 __cil_tmp113 = __cil_tmp112 + 174;
11705#line 1957
11706 mem_216 = (UCHAR *)__cil_tmp113;
11707#line 1957
11708 __cil_tmp114 = *mem_216;
11709#line 1957
11710 __cil_tmp115 = (int )__cil_tmp114;
11711#line 1957
11712 if (__cil_tmp115 == 4) {
11713#line 1959
11714 __cil_tmp116 = (unsigned int )disketteExtension;
11715#line 1959
11716 __cil_tmp117 = __cil_tmp116 + 364;
11717#line 1959
11718 __cil_tmp118 = (unsigned int )(& fdcInfo) + 48;
11719#line 1959
11720 mem_217 = (ULONG *)__cil_tmp118;
11721#line 1959
11722 __cil_tmp119 = *mem_217;
11723#line 1959
11724 __cil_tmp120 = 1 << __cil_tmp119;
11725#line 1959
11726 __cil_tmp121 = (unsigned int )disketteExtension;
11727#line 1959
11728 __cil_tmp122 = __cil_tmp121 + 364;
11729#line 1959
11730 mem_218 = (UCHAR *)__cil_tmp122;
11731#line 1959
11732 __cil_tmp123 = *mem_218;
11733#line 1959
11734 __cil_tmp124 = (int )__cil_tmp123;
11735#line 1959
11736 __cil_tmp125 = __cil_tmp124 | __cil_tmp120;
11737#line 1959
11738 mem_219 = (UCHAR *)__cil_tmp117;
11739#line 1959
11740 *mem_219 = (unsigned char )__cil_tmp125;
11741 } else {
11742
11743 }
11744 }
11745#line 1966
11746 InterfaceType = (enum _INTERFACE_TYPE )0;
11747 {
11748#line 1966
11749 while (1) {
11750 while_43_continue: ;
11751 {
11752#line 1966
11753 __cil_tmp126 = (int )InterfaceType;
11754#line 1966
11755 if (__cil_tmp126 < 16) {
11756
11757 } else {
11758 goto while_43_break;
11759 }
11760 }
11761 {
11762#line 1970
11763 __cil_tmp127 = (unsigned int )(& fdcInfo) + 8;
11764#line 1970
11765 mem_220 = (INTERFACE_TYPE *)__cil_tmp127;
11766#line 1970
11767 *mem_220 = InterfaceType;
11768#line 1971
11769 __cil_tmp128 = (unsigned int )(& fdcInfo) + 8;
11770#line 1971
11771 __cil_tmp129 = (INTERFACE_TYPE *)__cil_tmp128;
11772#line 1971
11773 __cil_tmp130 = (unsigned int )(& fdcInfo) + 40;
11774#line 1971
11775 __cil_tmp131 = (ULONG *)__cil_tmp130;
11776#line 1971
11777 __cil_tmp132 = (unsigned int )(& fdcInfo) + 44;
11778#line 1971
11779 __cil_tmp133 = (ULONG *)__cil_tmp132;
11780#line 1971
11781 __cil_tmp134 = (unsigned int )(& fdcInfo) + 48;
11782#line 1971
11783 __cil_tmp135 = (ULONG *)__cil_tmp134;
11784#line 1971
11785 __cil_tmp136 = (void *)disketteExtension;
11786#line 1971
11787 ntStatus = IoQueryDeviceDescription(__cil_tmp129, __cil_tmp131, & Dc, __cil_tmp133,
11788 & Fp, __cil_tmp135, & FlConfigCallBack,
11789 __cil_tmp136);
11790 }
11791#line 1980
11792 if (ntStatus >= 0L) {
11793 {
11794#line 1985
11795 while (1) {
11796 while_44_continue: ;
11797 goto while_44_break;
11798 }
11799 while_44_break: ;
11800 }
11801 goto while_43_break;
11802 } else {
11803
11804 }
11805#line 1966
11806 __cil_tmp137 = (int )InterfaceType;
11807#line 1966
11808 __cil_tmp138 = __cil_tmp137 + 1;
11809#line 1966
11810 InterfaceType = (enum _INTERFACE_TYPE )__cil_tmp138;
11811 }
11812 while_43_break: ;
11813 }
11814 }
11815 }
11816 }
11817#line 1991
11818 if (ntStatus >= 0L) {
11819 {
11820#line 1993
11821 __cil_tmp139 = (KUSER_SHARED_DATA * const )4292804608U;
11822#line 1993
11823 __cil_tmp140 = (unsigned int )__cil_tmp139;
11824#line 1993
11825 __cil_tmp141 = __cil_tmp140 + 732;
11826#line 1993
11827 mem_221 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp141;
11828#line 1993
11829 __cil_tmp142 = *mem_221;
11830#line 1993
11831 __cil_tmp143 = (int )__cil_tmp142;
11832#line 1993
11833 if (__cil_tmp143 == 1) {
11834#line 1994
11835 __cil_tmp144 = (unsigned int )disketteExtension;
11836#line 1994
11837 __cil_tmp145 = __cil_tmp144 + 248;
11838#line 1994
11839 __cil_tmp146 = (unsigned int )(& fdcInfo) + 52;
11840#line 1994
11841 mem_222 = (ULONG *)__cil_tmp146;
11842#line 1994
11843 __cil_tmp147 = *mem_222;
11844#line 1994
11845 mem_223 = (UCHAR *)__cil_tmp145;
11846#line 1994
11847 *mem_223 = (unsigned char )__cil_tmp147;
11848#line 1995
11849 __cil_tmp148 = (unsigned int )disketteExtension;
11850#line 1995
11851 __cil_tmp149 = __cil_tmp148 + 249;
11852#line 1995
11853 __cil_tmp150 = (unsigned int )(& fdcInfo) + 52;
11854#line 1995
11855 mem_224 = (ULONG *)__cil_tmp150;
11856#line 1995
11857 __cil_tmp151 = *mem_224;
11858#line 1995
11859 mem_225 = (UCHAR *)__cil_tmp149;
11860#line 1995
11861 *mem_225 = (unsigned char )__cil_tmp151;
11862 } else {
11863#line 1997
11864 __cil_tmp152 = (unsigned int )disketteExtension;
11865#line 1997
11866 __cil_tmp153 = __cil_tmp152 + 248;
11867#line 1997
11868 __cil_tmp154 = (unsigned int )(& fdcInfo) + 48;
11869#line 1997
11870 mem_226 = (ULONG *)__cil_tmp154;
11871#line 1997
11872 __cil_tmp155 = *mem_226;
11873#line 1997
11874 mem_227 = (UCHAR *)__cil_tmp153;
11875#line 1997
11876 *mem_227 = (unsigned char )__cil_tmp155;
11877#line 1998
11878 __cil_tmp156 = (unsigned int )disketteExtension;
11879#line 1998
11880 __cil_tmp157 = __cil_tmp156 + 249;
11881#line 1998
11882 __cil_tmp158 = (unsigned int )(& fdcInfo) + 48;
11883#line 1998
11884 mem_228 = (ULONG *)__cil_tmp158;
11885#line 1998
11886 __cil_tmp159 = *mem_228;
11887#line 1998
11888 __cil_tmp160 = 16 << __cil_tmp159;
11889#line 1998
11890 __cil_tmp161 = (unsigned long )__cil_tmp160;
11891#line 1998
11892 __cil_tmp162 = (unsigned int )(& fdcInfo) + 48;
11893#line 1998
11894 mem_229 = (ULONG *)__cil_tmp162;
11895#line 1998
11896 __cil_tmp163 = *mem_229;
11897#line 1998
11898 __cil_tmp164 = __cil_tmp163 | __cil_tmp161;
11899#line 1998
11900 mem_230 = (UCHAR *)__cil_tmp157;
11901#line 1998
11902 *mem_230 = (unsigned char )__cil_tmp164;
11903 }
11904 }
11905 {
11906#line 2002
11907 __cil_tmp165 = (unsigned int )disketteExtension;
11908#line 2002
11909 __cil_tmp166 = __cil_tmp165 + 4;
11910#line 2002
11911 mem_231 = (PDEVICE_OBJECT *)__cil_tmp166;
11912#line 2002
11913 __cil_tmp167 = *mem_231;
11914#line 2002
11915 __cil_tmp168 = (GUID *)(& MOUNTDEV_MOUNTED_DEVICE_GUID);
11916#line 2002
11917 __cil_tmp169 = (GUID const *)__cil_tmp168;
11918#line 2002
11919 __cil_tmp170 = (void *)0;
11920#line 2002
11921 __cil_tmp171 = (UNICODE_STRING *)__cil_tmp170;
11922#line 2002
11923 __cil_tmp172 = (unsigned int )disketteExtension;
11924#line 2002
11925 __cil_tmp173 = __cil_tmp172 + 376;
11926#line 2002
11927 __cil_tmp174 = (UNICODE_STRING *)__cil_tmp173;
11928#line 2002
11929 pnpStatus = IoRegisterDeviceInterface(__cil_tmp167, __cil_tmp169, __cil_tmp171,
11930 __cil_tmp174);
11931 }
11932#line 2007
11933 if (pnpStatus >= 0L) {
11934 {
11935#line 2009
11936 __cil_tmp175 = (unsigned int )disketteExtension;
11937#line 2009
11938 __cil_tmp176 = __cil_tmp175 + 376;
11939#line 2009
11940 __cil_tmp177 = (UNICODE_STRING *)__cil_tmp176;
11941#line 2009
11942 pnpStatus = IoSetDeviceInterfaceState(__cil_tmp177, (unsigned char)1);
11943 }
11944 } else {
11945
11946 }
11947 {
11948#line 2013
11949 __cil_tmp178 = (unsigned int )disketteExtension;
11950#line 2013
11951 __cil_tmp179 = __cil_tmp178 + 12;
11952#line 2013
11953 mem_232 = (BOOLEAN *)__cil_tmp179;
11954#line 2013
11955 *mem_232 = (unsigned char)1;
11956#line 2015
11957 __cil_tmp180 = (unsigned int )disketteExtension;
11958#line 2015
11959 __cil_tmp181 = __cil_tmp180 + 428;
11960#line 2015
11961 __cil_tmp182 = (FAST_MUTEX *)__cil_tmp181;
11962#line 2015
11963 ExAcquireFastMutex(__cil_tmp182);
11964#line 2016
11965 __cil_tmp183 = (unsigned int )disketteExtension;
11966#line 2016
11967 __cil_tmp184 = __cil_tmp183 + 14;
11968#line 2016
11969 mem_233 = (BOOLEAN *)__cil_tmp184;
11970#line 2016
11971 *mem_233 = (unsigned char)0;
11972#line 2017
11973 __cil_tmp185 = (unsigned int )disketteExtension;
11974#line 2017
11975 __cil_tmp186 = __cil_tmp185 + 428;
11976#line 2017
11977 __cil_tmp187 = (FAST_MUTEX *)__cil_tmp186;
11978#line 2017
11979 ExReleaseFastMutex(__cil_tmp187);
11980#line 2019
11981 FloppyProcessQueuedRequests(disketteExtension);
11982 }
11983 } else {
11984
11985 }
11986 } else {
11987
11988 }
11989 {
11990#line 2023
11991 __cil_tmp188 = (unsigned int )Irp;
11992#line 2023
11993 __cil_tmp189 = __cil_tmp188 + 24;
11994#line 2023
11995 mem_234 = (NTSTATUS *)__cil_tmp189;
11996#line 2023
11997 *mem_234 = ntStatus;
11998#line 2024
11999 myStatus = ntStatus;
12000#line 2025
12001 IofCompleteRequest(Irp, (char)0);
12002 }
12003#line 2026
12004 return (ntStatus);
12005}
12006}
12007#line 2029 "floppy.c"
12008NTSTATUS FloppyPnpComplete(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context )
12009{ struct _KEVENT *__cil_tmp4 ;
12010
12011 {
12012 {
12013#line 2043
12014 __cil_tmp4 = (struct _KEVENT *)Context;
12015#line 2043
12016 KeSetEvent(__cil_tmp4, 1L, (unsigned char)0);
12017 }
12018#line 2047
12019 return (-1073741802L);
12020}
12021}
12022#line 2050 "floppy.c"
12023NTSTATUS FloppyPower(PDEVICE_OBJECT DeviceObject , PIRP Irp )
12024{ PDISKETTE_EXTENSION disketteExtension ;
12025 NTSTATUS ntStatus ;
12026 PIO_STACK_LOCATION irpSp ;
12027 POWER_STATE_TYPE type ;
12028 POWER_STATE state ;
12029 BOOLEAN WaitForCompletion ;
12030 unsigned int __cil_tmp9 ;
12031 unsigned int __cil_tmp10 ;
12032 PVOID __cil_tmp11 ;
12033 unsigned int __cil_tmp12 ;
12034 unsigned int __cil_tmp13 ;
12035 unsigned int __cil_tmp14 ;
12036 unsigned int __cil_tmp15 ;
12037 unsigned int __cil_tmp16 ;
12038 unsigned int __cil_tmp17 ;
12039 unsigned int __cil_tmp18 ;
12040 unsigned int __cil_tmp19 ;
12041 unsigned int __cil_tmp20 ;
12042 unsigned int __cil_tmp21 ;
12043 unsigned int __cil_tmp22 ;
12044 unsigned int __cil_tmp23 ;
12045 unsigned int __cil_tmp24 ;
12046 unsigned int __cil_tmp25 ;
12047 unsigned int __cil_tmp26 ;
12048 UCHAR __cil_tmp27 ;
12049 int __cil_tmp28 ;
12050 int __cil_tmp29 ;
12051 unsigned int __cil_tmp30 ;
12052 unsigned int __cil_tmp31 ;
12053 FAST_MUTEX *__cil_tmp32 ;
12054 unsigned int __cil_tmp33 ;
12055 unsigned int __cil_tmp34 ;
12056 LONG __cil_tmp35 ;
12057 unsigned int __cil_tmp36 ;
12058 unsigned int __cil_tmp37 ;
12059 FAST_MUTEX *__cil_tmp38 ;
12060 unsigned int __cil_tmp39 ;
12061 unsigned int __cil_tmp40 ;
12062 unsigned int __cil_tmp41 ;
12063 unsigned int __cil_tmp42 ;
12064 unsigned int __cil_tmp43 ;
12065 unsigned int __cil_tmp44 ;
12066 unsigned int __cil_tmp45 ;
12067 FAST_MUTEX *__cil_tmp46 ;
12068 int __cil_tmp47 ;
12069 unsigned int __cil_tmp48 ;
12070 unsigned int __cil_tmp49 ;
12071 FAST_MUTEX *__cil_tmp50 ;
12072 int __cil_tmp51 ;
12073 unsigned int __cil_tmp52 ;
12074 unsigned int __cil_tmp53 ;
12075 unsigned int __cil_tmp54 ;
12076 unsigned int __cil_tmp55 ;
12077 unsigned int __cil_tmp56 ;
12078 unsigned int __cil_tmp57 ;
12079 FAST_MUTEX *__cil_tmp58 ;
12080 void *__cil_tmp59 ;
12081 unsigned int __cil_tmp60 ;
12082 unsigned int __cil_tmp61 ;
12083 unsigned int __cil_tmp62 ;
12084 PKTHREAD __cil_tmp63 ;
12085 unsigned int __cil_tmp64 ;
12086 int __cil_tmp65 ;
12087 unsigned int __cil_tmp66 ;
12088 unsigned int __cil_tmp67 ;
12089 PKTHREAD __cil_tmp68 ;
12090 void *__cil_tmp69 ;
12091 enum _KWAIT_REASON __cil_tmp70 ;
12092 void *__cil_tmp71 ;
12093 LARGE_INTEGER *__cil_tmp72 ;
12094 unsigned int __cil_tmp73 ;
12095 unsigned int __cil_tmp74 ;
12096 unsigned int __cil_tmp75 ;
12097 unsigned int __cil_tmp76 ;
12098 CHAR __cil_tmp77 ;
12099 int __cil_tmp78 ;
12100 int __cil_tmp79 ;
12101 unsigned int __cil_tmp80 ;
12102 unsigned int __cil_tmp81 ;
12103 unsigned int __cil_tmp82 ;
12104 unsigned int __cil_tmp83 ;
12105 unsigned int __cil_tmp84 ;
12106 unsigned int __cil_tmp85 ;
12107 unsigned int __cil_tmp86 ;
12108 unsigned int __cil_tmp87 ;
12109 unsigned int __cil_tmp88 ;
12110 unsigned int __cil_tmp89 ;
12111 struct _IO_STACK_LOCATION *__cil_tmp90 ;
12112 unsigned int __cil_tmp91 ;
12113 unsigned int __cil_tmp92 ;
12114 PDEVICE_OBJECT __cil_tmp93 ;
12115 PVOID *mem_94 ;
12116 struct _IO_STACK_LOCATION **mem_95 ;
12117 POWER_STATE_TYPE *mem_96 ;
12118 POWER_STATE *mem_97 ;
12119 UCHAR *mem_98 ;
12120 LONG *mem_99 ;
12121 ULONG_PTR *mem_100 ;
12122 NTSTATUS *mem_101 ;
12123 BOOLEAN *mem_102 ;
12124 BOOLEAN *mem_103 ;
12125 PKTHREAD *mem_104 ;
12126 PKTHREAD *mem_105 ;
12127 CHAR *mem_106 ;
12128 CHAR *mem_107 ;
12129 struct _IO_STACK_LOCATION **mem_108 ;
12130 struct _IO_STACK_LOCATION **mem_109 ;
12131 PDEVICE_OBJECT *mem_110 ;
12132
12133 {
12134#line 2071
12135 ntStatus = myStatus;
12136#line 2075
12137 WaitForCompletion = (unsigned char)1;
12138 {
12139#line 2077
12140 while (1) {
12141 while_45_continue: ;
12142 goto while_45_break;
12143 }
12144 while_45_break: ;
12145 }
12146#line 2079
12147 __cil_tmp9 = (unsigned int )DeviceObject;
12148#line 2079
12149 __cil_tmp10 = __cil_tmp9 + 40;
12150#line 2079
12151 mem_94 = (PVOID *)__cil_tmp10;
12152#line 2079
12153 __cil_tmp11 = *mem_94;
12154#line 2079
12155 disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp11;
12156#line 2080
12157 __cil_tmp12 = 24 + 8;
12158#line 2080
12159 __cil_tmp13 = 0 + __cil_tmp12;
12160#line 2080
12161 __cil_tmp14 = 64 + __cil_tmp13;
12162#line 2080
12163 __cil_tmp15 = (unsigned int )Irp;
12164#line 2080
12165 __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
12166#line 2080
12167 mem_95 = (struct _IO_STACK_LOCATION **)__cil_tmp16;
12168#line 2080
12169 irpSp = *mem_95;
12170#line 2082
12171 __cil_tmp17 = 0 + 4;
12172#line 2082
12173 __cil_tmp18 = 4 + __cil_tmp17;
12174#line 2082
12175 __cil_tmp19 = (unsigned int )irpSp;
12176#line 2082
12177 __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
12178#line 2082
12179 mem_96 = (POWER_STATE_TYPE *)__cil_tmp20;
12180#line 2082
12181 type = *mem_96;
12182#line 2083
12183 __cil_tmp21 = 0 + 36;
12184#line 2083
12185 __cil_tmp22 = 4 + __cil_tmp21;
12186#line 2083
12187 __cil_tmp23 = (unsigned int )irpSp;
12188#line 2083
12189 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
12190#line 2083
12191 mem_97 = (POWER_STATE *)__cil_tmp24;
12192#line 2083
12193 state = *mem_97;
12194 {
12195#line 2085
12196 __cil_tmp25 = (unsigned int )irpSp;
12197#line 2085
12198 __cil_tmp26 = __cil_tmp25 + 1;
12199#line 2085
12200 mem_98 = (UCHAR *)__cil_tmp26;
12201#line 2085
12202 __cil_tmp27 = *mem_98;
12203#line 2086
12204 if ((int )__cil_tmp27 == 3) {
12205 goto switch_46_3;
12206 } else {
12207#line 2124
12208 if ((int )__cil_tmp27 == 2) {
12209 goto switch_46_2;
12210 } else {
12211 {
12212 goto switch_46_default;
12213#line 2085
12214 if (0) {
12215 switch_46_3: ;
12216 {
12217#line 2090
12218 while (1) {
12219 while_47_continue: ;
12220 goto while_47_break;
12221 }
12222 while_47_break: ;
12223 }
12224 {
12225#line 2092
12226 __cil_tmp28 = (int )type;
12227#line 2092
12228 if (__cil_tmp28 == 0) {
12229 {
12230#line 2092
12231 __cil_tmp29 = (int )state.SystemState;
12232#line 2092
12233 if (__cil_tmp29 > 5) {
12234#line 2097
12235 ntStatus = 0L;
12236 goto switch_46_break;
12237 } else {
12238
12239 }
12240 }
12241 } else {
12242
12243 }
12244 }
12245 {
12246#line 2107
12247 __cil_tmp30 = (unsigned int )disketteExtension;
12248#line 2107
12249 __cil_tmp31 = __cil_tmp30 + 56;
12250#line 2107
12251 __cil_tmp32 = (FAST_MUTEX *)__cil_tmp31;
12252#line 2107
12253 ExAcquireFastMutex(__cil_tmp32);
12254 }
12255 {
12256#line 2108
12257 __cil_tmp33 = (unsigned int )disketteExtension;
12258#line 2108
12259 __cil_tmp34 = __cil_tmp33 + 88;
12260#line 2108
12261 mem_99 = (LONG *)__cil_tmp34;
12262#line 2108
12263 __cil_tmp35 = *mem_99;
12264#line 2108
12265 if (__cil_tmp35 >= 0L) {
12266 {
12267#line 2109
12268 __cil_tmp36 = (unsigned int )disketteExtension;
12269#line 2109
12270 __cil_tmp37 = __cil_tmp36 + 56;
12271#line 2109
12272 __cil_tmp38 = (FAST_MUTEX *)__cil_tmp37;
12273#line 2109
12274 ExReleaseFastMutex(__cil_tmp38);
12275 }
12276 {
12277#line 2111
12278 while (1) {
12279 while_48_continue: ;
12280 goto while_48_break;
12281 }
12282 while_48_break: ;
12283 }
12284 {
12285#line 2113
12286 PoStartNextPowerIrp(Irp);
12287#line 2114
12288 __cil_tmp39 = 24 + 4;
12289#line 2114
12290 __cil_tmp40 = (unsigned int )Irp;
12291#line 2114
12292 __cil_tmp41 = __cil_tmp40 + __cil_tmp39;
12293#line 2114
12294 mem_100 = (ULONG_PTR *)__cil_tmp41;
12295#line 2114
12296 *mem_100 = 0UL;
12297#line 2115
12298 __cil_tmp42 = (unsigned int )Irp;
12299#line 2115
12300 __cil_tmp43 = __cil_tmp42 + 24;
12301#line 2115
12302 mem_101 = (NTSTATUS *)__cil_tmp43;
12303#line 2115
12304 *mem_101 = -2147483631L;
12305#line 2116
12306 myStatus = -2147483631L;
12307#line 2117
12308 IofCompleteRequest(Irp, (char)0);
12309 }
12310#line 2118
12311 return (-2147483631L);
12312 } else {
12313
12314 }
12315 }
12316 {
12317#line 2120
12318 __cil_tmp44 = (unsigned int )disketteExtension;
12319#line 2120
12320 __cil_tmp45 = __cil_tmp44 + 56;
12321#line 2120
12322 __cil_tmp46 = (FAST_MUTEX *)__cil_tmp45;
12323#line 2120
12324 ExReleaseFastMutex(__cil_tmp46);
12325#line 2122
12326 ntStatus = 0L;
12327 }
12328 goto switch_46_break;
12329 switch_46_2: ;
12330 {
12331#line 2131
12332 __cil_tmp47 = (int )type;
12333#line 2131
12334 if (__cil_tmp47 == 0) {
12335 {
12336#line 2132
12337 __cil_tmp48 = (unsigned int )disketteExtension;
12338#line 2132
12339 __cil_tmp49 = __cil_tmp48 + 396;
12340#line 2132
12341 __cil_tmp50 = (FAST_MUTEX *)__cil_tmp49;
12342#line 2132
12343 ExAcquireFastMutex(__cil_tmp50);
12344 }
12345 {
12346#line 2133
12347 __cil_tmp51 = (int )state.SystemState;
12348#line 2133
12349 if (__cil_tmp51 == 1) {
12350 {
12351#line 2134
12352 while (1) {
12353 while_49_continue: ;
12354 goto while_49_break;
12355 }
12356 while_49_break: ;
12357 }
12358#line 2135
12359 __cil_tmp52 = (unsigned int )disketteExtension;
12360#line 2135
12361 __cil_tmp53 = __cil_tmp52 + 393;
12362#line 2135
12363 mem_102 = (BOOLEAN *)__cil_tmp53;
12364#line 2135
12365 *mem_102 = (unsigned char)0;
12366#line 2136
12367 WaitForCompletion = (unsigned char)0;
12368 } else {
12369 {
12370#line 2138
12371 while (1) {
12372 while_50_continue: ;
12373 goto while_50_break;
12374 }
12375 while_50_break: ;
12376 }
12377#line 2139
12378 WaitForCompletion = (unsigned char)1;
12379#line 2140
12380 __cil_tmp54 = (unsigned int )disketteExtension;
12381#line 2140
12382 __cil_tmp55 = __cil_tmp54 + 393;
12383#line 2140
12384 mem_103 = (BOOLEAN *)__cil_tmp55;
12385#line 2140
12386 *mem_103 = (unsigned char)1;
12387 }
12388 }
12389 {
12390#line 2142
12391 __cil_tmp56 = (unsigned int )disketteExtension;
12392#line 2142
12393 __cil_tmp57 = __cil_tmp56 + 396;
12394#line 2142
12395 __cil_tmp58 = (FAST_MUTEX *)__cil_tmp57;
12396#line 2142
12397 ExReleaseFastMutex(__cil_tmp58);
12398 }
12399 {
12400#line 2147
12401 __cil_tmp59 = (void *)0;
12402#line 2147
12403 __cil_tmp60 = (unsigned int )__cil_tmp59;
12404#line 2147
12405 __cil_tmp61 = (unsigned int )disketteExtension;
12406#line 2147
12407 __cil_tmp62 = __cil_tmp61 + 92;
12408#line 2147
12409 mem_104 = (PKTHREAD *)__cil_tmp62;
12410#line 2147
12411 __cil_tmp63 = *mem_104;
12412#line 2147
12413 __cil_tmp64 = (unsigned int )__cil_tmp63;
12414#line 2147
12415 if (__cil_tmp64 != __cil_tmp60) {
12416 {
12417#line 2147
12418 __cil_tmp65 = (int )WaitForCompletion;
12419#line 2147
12420 if (__cil_tmp65 == 1) {
12421 {
12422#line 2149
12423 __cil_tmp66 = (unsigned int )disketteExtension;
12424#line 2149
12425 __cil_tmp67 = __cil_tmp66 + 92;
12426#line 2149
12427 mem_105 = (PKTHREAD *)__cil_tmp67;
12428#line 2149
12429 __cil_tmp68 = *mem_105;
12430#line 2149
12431 __cil_tmp69 = (void *)__cil_tmp68;
12432#line 2149
12433 __cil_tmp70 = (enum _KWAIT_REASON )0;
12434#line 2149
12435 __cil_tmp71 = (void *)0;
12436#line 2149
12437 __cil_tmp72 = (LARGE_INTEGER *)__cil_tmp71;
12438#line 2149
12439 KeWaitForSingleObject(__cil_tmp69, __cil_tmp70, (char)0, (unsigned char)0,
12440 __cil_tmp72);
12441 }
12442 } else {
12443
12444 }
12445 }
12446 } else {
12447
12448 }
12449 }
12450 } else {
12451
12452 }
12453 }
12454 {
12455#line 2157
12456 while (1) {
12457 while_51_continue: ;
12458 goto while_51_break;
12459 }
12460 while_51_break: ;
12461 }
12462#line 2158
12463 ntStatus = 0L;
12464 goto switch_46_break;
12465 switch_46_default: ;
12466 goto switch_46_break;
12467 } else {
12468 switch_46_break: ;
12469 }
12470 }
12471 }
12472 }
12473 }
12474 {
12475#line 2168
12476 PoStartNextPowerIrp(Irp);
12477 }
12478#line 2169
12479 if (s == 1) {
12480#line 2169
12481 s = 3;
12482 } else {
12483 {
12484#line 2169
12485 assert(0);
12486 }
12487 }
12488 {
12489#line 2170
12490 __cil_tmp73 = (unsigned int )Irp;
12491#line 2170
12492 __cil_tmp74 = __cil_tmp73 + 35;
12493#line 2170
12494 __cil_tmp75 = (unsigned int )Irp;
12495#line 2170
12496 __cil_tmp76 = __cil_tmp75 + 35;
12497#line 2170
12498 mem_106 = (CHAR *)__cil_tmp76;
12499#line 2170
12500 __cil_tmp77 = *mem_106;
12501#line 2170
12502 __cil_tmp78 = (int )__cil_tmp77;
12503#line 2170
12504 __cil_tmp79 = __cil_tmp78 + 1;
12505#line 2170
12506 mem_107 = (CHAR *)__cil_tmp74;
12507#line 2170
12508 *mem_107 = (char )__cil_tmp79;
12509#line 2170
12510 __cil_tmp80 = 24 + 8;
12511#line 2170
12512 __cil_tmp81 = 0 + __cil_tmp80;
12513#line 2170
12514 __cil_tmp82 = 64 + __cil_tmp81;
12515#line 2170
12516 __cil_tmp83 = (unsigned int )Irp;
12517#line 2170
12518 __cil_tmp84 = __cil_tmp83 + __cil_tmp82;
12519#line 2170
12520 __cil_tmp85 = 24 + 8;
12521#line 2170
12522 __cil_tmp86 = 0 + __cil_tmp85;
12523#line 2170
12524 __cil_tmp87 = 64 + __cil_tmp86;
12525#line 2170
12526 __cil_tmp88 = (unsigned int )Irp;
12527#line 2170
12528 __cil_tmp89 = __cil_tmp88 + __cil_tmp87;
12529#line 2170
12530 mem_108 = (struct _IO_STACK_LOCATION **)__cil_tmp89;
12531#line 2170
12532 __cil_tmp90 = *mem_108;
12533#line 2170
12534 mem_109 = (struct _IO_STACK_LOCATION **)__cil_tmp84;
12535#line 2170
12536 *mem_109 = __cil_tmp90 + 1;
12537#line 2171
12538 __cil_tmp91 = (unsigned int )disketteExtension;
12539#line 2171
12540 __cil_tmp92 = __cil_tmp91 + 8;
12541#line 2171
12542 mem_110 = (PDEVICE_OBJECT *)__cil_tmp92;
12543#line 2171
12544 __cil_tmp93 = *mem_110;
12545#line 2171
12546 ntStatus = PoCallDriver(__cil_tmp93, Irp);
12547 }
12548#line 2173
12549 return (ntStatus);
12550}
12551}
12552#line 2176 "floppy.c"
12553NTSTATUS FloppyReadWrite(PDEVICE_OBJECT DeviceObject , PIRP Irp )
12554{ PIO_STACK_LOCATION irpSp ;
12555 NTSTATUS ntStatus ;
12556 PDISKETTE_EXTENSION disketteExtension ;
12557 unsigned int __cil_tmp6 ;
12558 unsigned int __cil_tmp7 ;
12559 PVOID __cil_tmp8 ;
12560 unsigned int __cil_tmp9 ;
12561 unsigned int __cil_tmp10 ;
12562 unsigned int __cil_tmp11 ;
12563 unsigned int __cil_tmp12 ;
12564 unsigned int __cil_tmp13 ;
12565 unsigned int __cil_tmp14 ;
12566 unsigned int __cil_tmp15 ;
12567 FAST_MUTEX *__cil_tmp16 ;
12568 unsigned int __cil_tmp17 ;
12569 unsigned int __cil_tmp18 ;
12570 unsigned int __cil_tmp19 ;
12571 unsigned int __cil_tmp20 ;
12572 FAST_MUTEX *__cil_tmp21 ;
12573 unsigned int __cil_tmp22 ;
12574 unsigned int __cil_tmp23 ;
12575 FAST_MUTEX *__cil_tmp24 ;
12576 unsigned int __cil_tmp25 ;
12577 unsigned int __cil_tmp26 ;
12578 unsigned int __cil_tmp27 ;
12579 unsigned int __cil_tmp28 ;
12580 BOOLEAN __cil_tmp29 ;
12581 unsigned int __cil_tmp30 ;
12582 unsigned int __cil_tmp31 ;
12583 unsigned int __cil_tmp32 ;
12584 unsigned int __cil_tmp33 ;
12585 unsigned int __cil_tmp34 ;
12586 unsigned int __cil_tmp35 ;
12587 unsigned int __cil_tmp36 ;
12588 unsigned int __cil_tmp37 ;
12589 unsigned int __cil_tmp38 ;
12590 MEDIA_TYPE __cil_tmp39 ;
12591 int __cil_tmp40 ;
12592 unsigned int __cil_tmp41 ;
12593 unsigned int __cil_tmp42 ;
12594 ULONG __cil_tmp43 ;
12595 unsigned int __cil_tmp44 ;
12596 unsigned int __cil_tmp45 ;
12597 ULONG __cil_tmp46 ;
12598 unsigned int __cil_tmp47 ;
12599 unsigned int __cil_tmp48 ;
12600 unsigned int __cil_tmp49 ;
12601 unsigned int __cil_tmp50 ;
12602 ULONG __cil_tmp51 ;
12603 ULONG __cil_tmp52 ;
12604 unsigned int __cil_tmp53 ;
12605 unsigned int __cil_tmp54 ;
12606 ULONG __cil_tmp55 ;
12607 ULONG __cil_tmp56 ;
12608 unsigned int __cil_tmp57 ;
12609 unsigned int __cil_tmp58 ;
12610 ULONG __cil_tmp59 ;
12611 unsigned long __cil_tmp60 ;
12612 unsigned int __cil_tmp61 ;
12613 unsigned int __cil_tmp62 ;
12614 unsigned int __cil_tmp63 ;
12615 unsigned int __cil_tmp64 ;
12616 unsigned int __cil_tmp65 ;
12617 unsigned int __cil_tmp66 ;
12618 unsigned int __cil_tmp67 ;
12619 unsigned int __cil_tmp68 ;
12620 unsigned int __cil_tmp69 ;
12621 PVOID *mem_70 ;
12622 struct _IO_STACK_LOCATION **mem_71 ;
12623 BOOLEAN *mem_72 ;
12624 BOOLEAN *mem_73 ;
12625 BOOLEAN *mem_74 ;
12626 BOOLEAN *mem_75 ;
12627 ULONG_PTR *mem_76 ;
12628 NTSTATUS *mem_77 ;
12629 MEDIA_TYPE *mem_78 ;
12630 ULONG *mem_79 ;
12631 ULONG *mem_80 ;
12632 ULONG *mem_81 ;
12633 ULONG *mem_82 ;
12634 ULONG *mem_83 ;
12635 ULONG *mem_84 ;
12636 ULONG_PTR *mem_85 ;
12637 NTSTATUS *mem_86 ;
12638 NTSTATUS *mem_87 ;
12639
12640 {
12641 {
12642#line 2208
12643 while (1) {
12644 while_52_continue: ;
12645 goto while_52_break;
12646 }
12647 while_52_break: ;
12648 }
12649 {
12650#line 2210
12651 __cil_tmp6 = (unsigned int )DeviceObject;
12652#line 2210
12653 __cil_tmp7 = __cil_tmp6 + 40;
12654#line 2210
12655 mem_70 = (PVOID *)__cil_tmp7;
12656#line 2210
12657 __cil_tmp8 = *mem_70;
12658#line 2210
12659 disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp8;
12660#line 2212
12661 __cil_tmp9 = 24 + 8;
12662#line 2212
12663 __cil_tmp10 = 0 + __cil_tmp9;
12664#line 2212
12665 __cil_tmp11 = 64 + __cil_tmp10;
12666#line 2212
12667 __cil_tmp12 = (unsigned int )Irp;
12668#line 2212
12669 __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
12670#line 2212
12671 mem_71 = (struct _IO_STACK_LOCATION **)__cil_tmp13;
12672#line 2212
12673 irpSp = *mem_71;
12674#line 2218
12675 __cil_tmp14 = (unsigned int )disketteExtension;
12676#line 2218
12677 __cil_tmp15 = __cil_tmp14 + 428;
12678#line 2218
12679 __cil_tmp16 = (FAST_MUTEX *)__cil_tmp15;
12680#line 2218
12681 ExAcquireFastMutex(__cil_tmp16);
12682 }
12683 {
12684#line 2219
12685 __cil_tmp17 = (unsigned int )disketteExtension;
12686#line 2219
12687 __cil_tmp18 = __cil_tmp17 + 14;
12688 {
12689#line 2219
12690 mem_72 = (BOOLEAN *)__cil_tmp18;
12691#line 2219
12692 if (*mem_72) {
12693 {
12694#line 2221
12695 ntStatus = FloppyQueueRequest(disketteExtension, Irp);
12696#line 2223
12697 __cil_tmp19 = (unsigned int )disketteExtension;
12698#line 2223
12699 __cil_tmp20 = __cil_tmp19 + 428;
12700#line 2223
12701 __cil_tmp21 = (FAST_MUTEX *)__cil_tmp20;
12702#line 2223
12703 ExReleaseFastMutex(__cil_tmp21);
12704 }
12705#line 2224
12706 return (ntStatus);
12707 } else {
12708
12709 }
12710 }
12711 }
12712 {
12713#line 2226
12714 __cil_tmp22 = (unsigned int )disketteExtension;
12715#line 2226
12716 __cil_tmp23 = __cil_tmp22 + 428;
12717#line 2226
12718 __cil_tmp24 = (FAST_MUTEX *)__cil_tmp23;
12719#line 2226
12720 ExReleaseFastMutex(__cil_tmp24);
12721 }
12722 {
12723#line 2232
12724 __cil_tmp25 = (unsigned int )disketteExtension;
12725#line 2232
12726 __cil_tmp26 = __cil_tmp25 + 13;
12727 {
12728#line 2232
12729 mem_73 = (BOOLEAN *)__cil_tmp26;
12730#line 2232
12731 if (*mem_73) {
12732 goto _L;
12733 } else {
12734 {
12735#line 2232
12736 __cil_tmp27 = (unsigned int )disketteExtension;
12737#line 2232
12738 __cil_tmp28 = __cil_tmp27 + 12;
12739#line 2232
12740 mem_74 = (BOOLEAN *)__cil_tmp28;
12741#line 2232
12742 __cil_tmp29 = *mem_74;
12743#line 2232
12744 if (! __cil_tmp29) {
12745 _L:
12746 {
12747#line 2234
12748 __cil_tmp30 = (unsigned int )disketteExtension;
12749#line 2234
12750 __cil_tmp31 = __cil_tmp30 + 13;
12751 {
12752#line 2234
12753 mem_75 = (BOOLEAN *)__cil_tmp31;
12754#line 2234
12755 if (*mem_75) {
12756#line 2235
12757 ntStatus = -1073741738L;
12758 } else {
12759#line 2237
12760 ntStatus = -1073741823L;
12761 }
12762 }
12763 }
12764 {
12765#line 2239
12766 __cil_tmp32 = 24 + 4;
12767#line 2239
12768 __cil_tmp33 = (unsigned int )Irp;
12769#line 2239
12770 __cil_tmp34 = __cil_tmp33 + __cil_tmp32;
12771#line 2239
12772 mem_76 = (ULONG_PTR *)__cil_tmp34;
12773#line 2239
12774 *mem_76 = 0UL;
12775#line 2240
12776 __cil_tmp35 = (unsigned int )Irp;
12777#line 2240
12778 __cil_tmp36 = __cil_tmp35 + 24;
12779#line 2240
12780 mem_77 = (NTSTATUS *)__cil_tmp36;
12781#line 2240
12782 *mem_77 = ntStatus;
12783#line 2241
12784 myStatus = ntStatus;
12785#line 2242
12786 IofCompleteRequest(Irp, (char)0);
12787 }
12788#line 2243
12789 return (ntStatus);
12790 } else {
12791
12792 }
12793 }
12794 }
12795 }
12796 }
12797 {
12798#line 2245
12799 __cil_tmp37 = (unsigned int )disketteExtension;
12800#line 2245
12801 __cil_tmp38 = __cil_tmp37 + 184;
12802#line 2245
12803 mem_78 = (MEDIA_TYPE *)__cil_tmp38;
12804#line 2245
12805 __cil_tmp39 = *mem_78;
12806#line 2245
12807 __cil_tmp40 = (int )__cil_tmp39;
12808#line 2245
12809 if (__cil_tmp40 > 0) {
12810 {
12811#line 2245
12812 __cil_tmp41 = (unsigned int )disketteExtension;
12813#line 2245
12814 __cil_tmp42 = __cil_tmp41 + 180;
12815#line 2245
12816 mem_79 = (ULONG *)__cil_tmp42;
12817#line 2245
12818 __cil_tmp43 = *mem_79;
12819#line 2245
12820 __cil_tmp44 = (unsigned int )irpSp;
12821#line 2245
12822 __cil_tmp45 = __cil_tmp44 + 4;
12823#line 2245
12824 mem_80 = (ULONG *)__cil_tmp45;
12825#line 2245
12826 __cil_tmp46 = *mem_80;
12827#line 2245
12828 __cil_tmp47 = 0 + 8;
12829#line 2245
12830 __cil_tmp48 = 4 + __cil_tmp47;
12831#line 2245
12832 __cil_tmp49 = (unsigned int )irpSp;
12833#line 2245
12834 __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
12835#line 2245
12836 mem_81 = (ULONG *)__cil_tmp50;
12837#line 2245
12838 __cil_tmp51 = *mem_81;
12839#line 2245
12840 __cil_tmp52 = __cil_tmp51 + __cil_tmp46;
12841#line 2245
12842 if (__cil_tmp52 > __cil_tmp43) {
12843 goto _L___1;
12844 } else {
12845 {
12846#line 2245
12847 __cil_tmp53 = (unsigned int )disketteExtension;
12848#line 2245
12849 __cil_tmp54 = __cil_tmp53 + 176;
12850#line 2245
12851 mem_82 = (ULONG *)__cil_tmp54;
12852#line 2245
12853 __cil_tmp55 = *mem_82;
12854#line 2245
12855 __cil_tmp56 = __cil_tmp55 - 1UL;
12856#line 2245
12857 __cil_tmp57 = (unsigned int )irpSp;
12858#line 2245
12859 __cil_tmp58 = __cil_tmp57 + 4;
12860#line 2245
12861 mem_83 = (ULONG *)__cil_tmp58;
12862#line 2245
12863 __cil_tmp59 = *mem_83;
12864#line 2245
12865 __cil_tmp60 = __cil_tmp59 & __cil_tmp56;
12866#line 2245
12867 if (__cil_tmp60 != 0UL) {
12868 _L___1:
12869 {
12870#line 2252
12871 while (1) {
12872 while_53_continue: ;
12873 goto while_53_break;
12874 }
12875 while_53_break: ;
12876 }
12877 {
12878#line 2261
12879 while (1) {
12880 while_54_continue: ;
12881 goto while_54_break;
12882 }
12883 while_54_break: ;
12884 }
12885#line 2263
12886 ntStatus = -1073741811L;
12887 } else {
12888 goto _L___0;
12889 }
12890 }
12891 }
12892 }
12893 } else {
12894 _L___0:
12895 {
12896#line 2272
12897 __cil_tmp61 = (unsigned int )irpSp;
12898#line 2272
12899 __cil_tmp62 = __cil_tmp61 + 4;
12900 {
12901#line 2272
12902 mem_84 = (ULONG *)__cil_tmp62;
12903#line 2272
12904 if (*mem_84) {
12905 {
12906#line 2279
12907 while (1) {
12908 while_55_continue: ;
12909 goto while_55_break;
12910 }
12911 while_55_break: ;
12912 }
12913 {
12914#line 2281
12915 ntStatus = FlQueueIrpToThread(Irp, disketteExtension);
12916 }
12917 } else {
12918#line 2288
12919 __cil_tmp63 = 24 + 4;
12920#line 2288
12921 __cil_tmp64 = (unsigned int )Irp;
12922#line 2288
12923 __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
12924#line 2288
12925 mem_85 = (ULONG_PTR *)__cil_tmp65;
12926#line 2288
12927 *mem_85 = 0UL;
12928#line 2289
12929 __cil_tmp66 = (unsigned int )Irp;
12930#line 2289
12931 __cil_tmp67 = __cil_tmp66 + 24;
12932#line 2289
12933 mem_86 = (NTSTATUS *)__cil_tmp67;
12934#line 2289
12935 *mem_86 = 0L;
12936#line 2290
12937 myStatus = 0L;
12938 {
12939#line 2291
12940 while (1) {
12941 while_56_continue: ;
12942 goto while_56_break;
12943 }
12944 while_56_break: ;
12945 }
12946 {
12947#line 2292
12948 IofCompleteRequest(Irp, (char)0);
12949 }
12950#line 2293
12951 return (0L);
12952 }
12953 }
12954 }
12955 }
12956 }
12957#line 2297
12958 if (ntStatus != 259L) {
12959#line 2298
12960 __cil_tmp68 = (unsigned int )Irp;
12961#line 2298
12962 __cil_tmp69 = __cil_tmp68 + 24;
12963#line 2298
12964 mem_87 = (NTSTATUS *)__cil_tmp69;
12965#line 2298
12966 *mem_87 = ntStatus;
12967#line 2299
12968 myStatus = ntStatus;
12969 {
12970#line 2301
12971 while (1) {
12972 while_57_continue: ;
12973 goto while_57_break;
12974 }
12975 while_57_break: ;
12976 }
12977 {
12978#line 2302
12979 IofCompleteRequest(Irp, (char)0);
12980 }
12981 } else {
12982
12983 }
12984#line 2305
12985 return (ntStatus);
12986}
12987}
12988#line 2308 "floppy.c"
12989NTSTATUS FlInterpretError(UCHAR StatusRegister1 , UCHAR StatusRegister2 )
12990{ int __cil_tmp3 ;
12991 int __cil_tmp4 ;
12992 int __cil_tmp5 ;
12993 int __cil_tmp6 ;
12994 int __cil_tmp7 ;
12995 int __cil_tmp8 ;
12996 int __cil_tmp9 ;
12997 int __cil_tmp10 ;
12998 int __cil_tmp11 ;
12999 int __cil_tmp12 ;
13000 int __cil_tmp13 ;
13001
13002 {
13003 {
13004#line 2335
13005 __cil_tmp3 = (int )StatusRegister1;
13006#line 2335
13007 if (__cil_tmp3 & 32) {
13008 goto _L;
13009 } else {
13010 {
13011#line 2335
13012 __cil_tmp4 = (int )StatusRegister2;
13013#line 2335
13014 if (__cil_tmp4 & 32) {
13015 _L:
13016 {
13017#line 2341
13018 while (1) {
13019 while_58_continue: ;
13020 goto while_58_break;
13021 }
13022 while_58_break: ;
13023 }
13024#line 2342
13025 return (-1073741761L);
13026 } else {
13027
13028 }
13029 }
13030 }
13031 }
13032 {
13033#line 2345
13034 __cil_tmp5 = (int )StatusRegister1;
13035#line 2345
13036 if (__cil_tmp5 & 16) {
13037 {
13038#line 2350
13039 while (1) {
13040 while_59_continue: ;
13041 goto while_59_break;
13042 }
13043 while_59_break: ;
13044 }
13045#line 2351
13046 return (-1073741764L);
13047 } else {
13048
13049 }
13050 }
13051 {
13052#line 2354
13053 __cil_tmp6 = (int )StatusRegister1;
13054#line 2354
13055 if (__cil_tmp6 & 4) {
13056 goto _L___0;
13057 } else {
13058 {
13059#line 2354
13060 __cil_tmp7 = (int )StatusRegister1;
13061#line 2354
13062 if (__cil_tmp7 & 128) {
13063 _L___0:
13064 {
13065#line 2360
13066 while (1) {
13067 while_60_continue: ;
13068 goto while_60_break;
13069 }
13070 while_60_break: ;
13071 }
13072#line 2361
13073 return (-1073741803L);
13074 } else {
13075
13076 }
13077 }
13078 }
13079 }
13080 {
13081#line 2364
13082 __cil_tmp8 = (int )StatusRegister2;
13083#line 2364
13084 if (__cil_tmp8 & 1) {
13085 goto _L___1;
13086 } else {
13087 {
13088#line 2364
13089 __cil_tmp9 = (int )StatusRegister2;
13090#line 2364
13091 if (__cil_tmp9 & 2) {
13092 goto _L___1;
13093 } else {
13094 {
13095#line 2364
13096 __cil_tmp10 = (int )StatusRegister2;
13097#line 2364
13098 if (__cil_tmp10 & 64) {
13099 _L___1:
13100 {
13101#line 2371
13102 while (1) {
13103 while_61_continue: ;
13104 goto while_61_break;
13105 }
13106 while_61_break: ;
13107 }
13108#line 2372
13109 return (-1073741668L);
13110 } else {
13111
13112 }
13113 }
13114 }
13115 }
13116 }
13117 }
13118 {
13119#line 2375
13120 __cil_tmp11 = (int )StatusRegister1;
13121#line 2375
13122 if (__cil_tmp11 & 2) {
13123 {
13124#line 2380
13125 while (1) {
13126 while_62_continue: ;
13127 goto while_62_break;
13128 }
13129 while_62_break: ;
13130 }
13131#line 2381
13132 return (-1073741662L);
13133 } else {
13134
13135 }
13136 }
13137 {
13138#line 2384
13139 __cil_tmp12 = (int )StatusRegister1;
13140#line 2384
13141 if (__cil_tmp12 & 1) {
13142 {
13143#line 2389
13144 while (1) {
13145 while_63_continue: ;
13146 goto while_63_break;
13147 }
13148 while_63_break: ;
13149 }
13150#line 2390
13151 return (-1073741467L);
13152 } else {
13153
13154 }
13155 }
13156 {
13157#line 2394
13158 __cil_tmp13 = (int )StatusRegister2;
13159#line 2394
13160 if (__cil_tmp13 & 16) {
13161 {
13162#line 2399
13163 while (1) {
13164 while_64_continue: ;
13165 goto while_64_break;
13166 }
13167 while_64_break: ;
13168 }
13169#line 2400
13170 return (-1073741466L);
13171 } else {
13172
13173 }
13174 }
13175 {
13176#line 2412
13177 while (1) {
13178 while_65_continue: ;
13179 goto while_65_break;
13180 }
13181 while_65_break: ;
13182 }
13183#line 2413
13184 return (-1073741465L);
13185}
13186}
13187#line 2416 "floppy.c"
13188void FlFinishOperation(PIRP Irp , PDISKETTE_EXTENSION DisketteExtension )
13189{ NTSTATUS ntStatus ;
13190 int tmp ;
13191 unsigned int __cil_tmp5 ;
13192 unsigned int __cil_tmp6 ;
13193 unsigned int __cil_tmp7 ;
13194 unsigned int __cil_tmp8 ;
13195 unsigned int __cil_tmp9 ;
13196 unsigned int __cil_tmp10 ;
13197 UCHAR __cil_tmp11 ;
13198 int __cil_tmp12 ;
13199 int __cil_tmp13 ;
13200 unsigned int __cil_tmp14 ;
13201 unsigned int __cil_tmp15 ;
13202 UCHAR __cil_tmp16 ;
13203 int __cil_tmp17 ;
13204 unsigned int __cil_tmp18 ;
13205 unsigned int __cil_tmp19 ;
13206 unsigned int __cil_tmp20 ;
13207 unsigned int __cil_tmp21 ;
13208 FAST_MUTEX *__cil_tmp22 ;
13209 unsigned int __cil_tmp23 ;
13210 unsigned int __cil_tmp24 ;
13211 unsigned int __cil_tmp25 ;
13212 unsigned int __cil_tmp26 ;
13213 LONG __cil_tmp27 ;
13214 unsigned int __cil_tmp28 ;
13215 unsigned int __cil_tmp29 ;
13216 FAST_MUTEX *__cil_tmp30 ;
13217 unsigned int __cil_tmp31 ;
13218 unsigned int __cil_tmp32 ;
13219 LIST_ENTRY *__cil_tmp33 ;
13220 unsigned int __cil_tmp34 ;
13221 unsigned int __cil_tmp35 ;
13222 unsigned int __cil_tmp36 ;
13223 unsigned int __cil_tmp37 ;
13224 LIST_ENTRY *__cil_tmp38 ;
13225 unsigned int __cil_tmp39 ;
13226 unsigned int __cil_tmp40 ;
13227 KSPIN_LOCK *__cil_tmp41 ;
13228 unsigned int __cil_tmp42 ;
13229 unsigned int __cil_tmp43 ;
13230 int __cil_tmp44 ;
13231 unsigned int __cil_tmp45 ;
13232 unsigned int __cil_tmp46 ;
13233 PDEVICE_OBJECT __cil_tmp47 ;
13234 BOOLEAN *mem_48 ;
13235 UCHAR *mem_49 ;
13236 UCHAR *mem_50 ;
13237 UCHAR *mem_51 ;
13238 MEDIA_TYPE *mem_52 ;
13239 LONG *mem_53 ;
13240 LONG *mem_54 ;
13241 UCHAR *mem_55 ;
13242 PDEVICE_OBJECT *mem_56 ;
13243
13244 {
13245 {
13246#line 2454
13247 while (1) {
13248 while_66_continue: ;
13249 goto while_66_break;
13250 }
13251 while_66_break: ;
13252 }
13253#line 2461
13254 if (myStatus != 0L) {
13255 {
13256#line 2461
13257 __cil_tmp5 = (unsigned int )DisketteExtension;
13258#line 2461
13259 __cil_tmp6 = __cil_tmp5 + 104;
13260 {
13261#line 2461
13262 mem_48 = (BOOLEAN *)__cil_tmp6;
13263#line 2461
13264 if (*mem_48) {
13265#line 2464
13266 __cil_tmp7 = (unsigned int )DisketteExtension;
13267#line 2464
13268 __cil_tmp8 = __cil_tmp7 + 105;
13269#line 2464
13270 __cil_tmp9 = (unsigned int )DisketteExtension;
13271#line 2464
13272 __cil_tmp10 = __cil_tmp9 + 105;
13273#line 2464
13274 mem_49 = (UCHAR *)__cil_tmp10;
13275#line 2464
13276 __cil_tmp11 = *mem_49;
13277#line 2464
13278 __cil_tmp12 = (int )__cil_tmp11;
13279#line 2464
13280 __cil_tmp13 = __cil_tmp12 + 1;
13281#line 2464
13282 mem_50 = (UCHAR *)__cil_tmp8;
13283#line 2464
13284 *mem_50 = (unsigned char )__cil_tmp13;
13285 {
13286#line 2465
13287 __cil_tmp14 = (unsigned int )DisketteExtension;
13288#line 2465
13289 __cil_tmp15 = __cil_tmp14 + 105;
13290#line 2465
13291 mem_51 = (UCHAR *)__cil_tmp15;
13292#line 2465
13293 __cil_tmp16 = *mem_51;
13294#line 2465
13295 __cil_tmp17 = (int )__cil_tmp16;
13296#line 2465
13297 if (__cil_tmp17 < 2) {
13298 {
13299#line 2475
13300 ntStatus = FlInitializeControllerHardware(DisketteExtension);
13301 }
13302#line 2477
13303 if (ntStatus >= 0L) {
13304 {
13305#line 2482
13306 while (1) {
13307 while_67_continue: ;
13308 goto while_67_break;
13309 }
13310 while_67_break: ;
13311 }
13312#line 2490
13313 __cil_tmp18 = (unsigned int )DisketteExtension;
13314#line 2490
13315 __cil_tmp19 = __cil_tmp18 + 184;
13316#line 2490
13317 mem_52 = (MEDIA_TYPE *)__cil_tmp19;
13318#line 2490
13319 *mem_52 = (enum _MEDIA_TYPE )-1;
13320 {
13321#line 2496
13322 while (1) {
13323 while_68_continue: ;
13324 goto while_68_break;
13325 }
13326 while_68_break: ;
13327 }
13328 {
13329#line 2498
13330 __cil_tmp20 = (unsigned int )DisketteExtension;
13331#line 2498
13332 __cil_tmp21 = __cil_tmp20 + 56;
13333#line 2498
13334 __cil_tmp22 = (FAST_MUTEX *)__cil_tmp21;
13335#line 2498
13336 ExAcquireFastMutex(__cil_tmp22);
13337#line 2500
13338 __cil_tmp23 = (unsigned int )DisketteExtension;
13339#line 2500
13340 __cil_tmp24 = __cil_tmp23 + 88;
13341#line 2500
13342 __cil_tmp25 = (unsigned int )DisketteExtension;
13343#line 2500
13344 __cil_tmp26 = __cil_tmp25 + 88;
13345#line 2500
13346 mem_53 = (LONG *)__cil_tmp26;
13347#line 2500
13348 __cil_tmp27 = *mem_53;
13349#line 2500
13350 mem_54 = (LONG *)__cil_tmp24;
13351#line 2500
13352 *mem_54 = __cil_tmp27 + 1L;
13353#line 2501
13354 __cil_tmp28 = (unsigned int )DisketteExtension;
13355#line 2501
13356 __cil_tmp29 = __cil_tmp28 + 56;
13357#line 2501
13358 __cil_tmp30 = (FAST_MUTEX *)__cil_tmp29;
13359#line 2501
13360 ExReleaseFastMutex(__cil_tmp30);
13361#line 2503
13362 __cil_tmp31 = (unsigned int )DisketteExtension;
13363#line 2503
13364 __cil_tmp32 = __cil_tmp31 + 96;
13365#line 2503
13366 __cil_tmp33 = (LIST_ENTRY *)__cil_tmp32;
13367#line 2503
13368 __cil_tmp34 = 0 + 24;
13369#line 2503
13370 __cil_tmp35 = 64 + __cil_tmp34;
13371#line 2503
13372 __cil_tmp36 = (unsigned int )Irp;
13373#line 2503
13374 __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
13375#line 2503
13376 __cil_tmp38 = (LIST_ENTRY *)__cil_tmp37;
13377#line 2503
13378 __cil_tmp39 = (unsigned int )DisketteExtension;
13379#line 2503
13380 __cil_tmp40 = __cil_tmp39 + 52;
13381#line 2503
13382 __cil_tmp41 = (KSPIN_LOCK *)__cil_tmp40;
13383#line 2503
13384 ExfInterlockedInsertHeadList(__cil_tmp33, __cil_tmp38, __cil_tmp41);
13385 }
13386 } else {
13387
13388 }
13389 {
13390#line 2514
13391 while (1) {
13392 while_69_continue: ;
13393 goto while_69_break;
13394 }
13395 while_69_break: ;
13396 }
13397 } else {
13398
13399 }
13400 }
13401 } else {
13402
13403 }
13404 }
13405 }
13406 } else {
13407
13408 }
13409#line 2524
13410 __cil_tmp42 = (unsigned int )DisketteExtension;
13411#line 2524
13412 __cil_tmp43 = __cil_tmp42 + 105;
13413#line 2524
13414 mem_55 = (UCHAR *)__cil_tmp43;
13415#line 2524
13416 *mem_55 = (unsigned char)0;
13417 {
13418#line 2541
13419 __cil_tmp44 = myStatus >= 0L;
13420#line 2541
13421 if (! __cil_tmp44) {
13422#line 2541
13423 if (myStatus == -1073741661L) {
13424#line 2541
13425 tmp = 1;
13426 } else {
13427#line 2541
13428 if (myStatus == -1073741643L) {
13429#line 2541
13430 tmp = 1;
13431 } else {
13432#line 2541
13433 if (myStatus == -1073741662L) {
13434#line 2541
13435 tmp = 1;
13436 } else {
13437#line 2541
13438 if (myStatus == -1073741805L) {
13439#line 2541
13440 tmp = 1;
13441 } else {
13442#line 2541
13443 if (myStatus == -2147483626L) {
13444#line 2541
13445 tmp = 1;
13446 } else {
13447#line 2541
13448 if (myStatus == -1073741804L) {
13449#line 2541
13450 tmp = 1;
13451 } else {
13452#line 2541
13453 if (myStatus == -1073741806L) {
13454#line 2541
13455 tmp = 1;
13456 } else {
13457#line 2541
13458 tmp = 0;
13459 }
13460 }
13461 }
13462 }
13463 }
13464 }
13465 }
13466#line 2541
13467 if ((unsigned char )tmp) {
13468 {
13469#line 2535
13470 __cil_tmp45 = (unsigned int )DisketteExtension;
13471#line 2535
13472 __cil_tmp46 = __cil_tmp45 + 28;
13473#line 2535
13474 mem_56 = (PDEVICE_OBJECT *)__cil_tmp46;
13475#line 2535
13476 __cil_tmp47 = *mem_56;
13477#line 2535
13478 IoSetHardErrorOrVerifyDevice(Irp, __cil_tmp47);
13479 }
13480 } else {
13481
13482 }
13483 } else {
13484
13485 }
13486 }
13487#line 2549
13488 if (myStatus != 0L) {
13489#line 2549
13490 if (myStatus != -2147483626L) {
13491#line 2549
13492 if (myStatus != -1073741805L) {
13493 {
13494#line 2551
13495 while (1) {
13496 while_70_continue: ;
13497 goto while_70_break;
13498 }
13499 while_70_break: ;
13500 }
13501 } else {
13502 goto _L___0;
13503 }
13504 } else {
13505 goto _L___0;
13506 }
13507 } else {
13508 _L___0:
13509 {
13510#line 2558
13511 while (1) {
13512 while_71_continue: ;
13513 goto while_71_break;
13514 }
13515 while_71_break: ;
13516 }
13517 }
13518 {
13519#line 2564
13520 while (1) {
13521 while_72_continue: ;
13522 goto while_72_break;
13523 }
13524 while_72_break: ;
13525 }
13526 {
13527#line 2569
13528 while (1) {
13529 while_73_continue: ;
13530 goto while_73_break;
13531 }
13532 while_73_break: ;
13533 }
13534 {
13535#line 2579
13536 IofCompleteRequest(Irp, (char)1);
13537 }
13538#line 2582
13539 return;
13540}
13541}
13542#line 2582 "floppy.c"
13543NTSTATUS FlStartDrive(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN WriteOperation ,
13544 BOOLEAN SetUpMedia , BOOLEAN IgnoreChange )
13545{ LARGE_INTEGER delay ;
13546 BOOLEAN motorStarted ;
13547 UCHAR driveStatus ;
13548 NTSTATUS ntStatus ;
13549 FDC_ENABLE_PARMS fdcEnableParms ;
13550 FDC_DISK_CHANGE_PARMS fdcDiskChangeParms ;
13551 unsigned int __cil_tmp12 ;
13552 unsigned int __cil_tmp13 ;
13553 UCHAR __cil_tmp14 ;
13554 int __cil_tmp15 ;
13555 PDRIVE_MEDIA_LIMITS __cil_tmp16 ;
13556 DRIVE_MEDIA_TYPE __cil_tmp17 ;
13557 unsigned int __cil_tmp18 ;
13558 PDRIVE_MEDIA_CONSTANTS __cil_tmp19 ;
13559 unsigned int __cil_tmp20 ;
13560 unsigned int __cil_tmp21 ;
13561 unsigned int __cil_tmp22 ;
13562 unsigned int __cil_tmp23 ;
13563 MEDIA_TYPE __cil_tmp24 ;
13564 int __cil_tmp25 ;
13565 unsigned int __cil_tmp26 ;
13566 unsigned int __cil_tmp27 ;
13567 PDRIVE_MEDIA_CONSTANTS __cil_tmp28 ;
13568 unsigned int __cil_tmp29 ;
13569 unsigned int __cil_tmp30 ;
13570 MEDIA_TYPE __cil_tmp31 ;
13571 int __cil_tmp32 ;
13572 unsigned int __cil_tmp33 ;
13573 unsigned int __cil_tmp34 ;
13574 PDRIVE_MEDIA_CONSTANTS __cil_tmp35 ;
13575 FDC_ENABLE_PARMS *__cil_tmp36 ;
13576 unsigned int __cil_tmp37 ;
13577 unsigned int __cil_tmp38 ;
13578 unsigned int __cil_tmp39 ;
13579 unsigned int __cil_tmp40 ;
13580 unsigned int __cil_tmp41 ;
13581 unsigned int __cil_tmp42 ;
13582 unsigned int __cil_tmp43 ;
13583 unsigned int __cil_tmp44 ;
13584 unsigned int __cil_tmp45 ;
13585 unsigned int __cil_tmp46 ;
13586 unsigned int __cil_tmp47 ;
13587 unsigned int __cil_tmp48 ;
13588 PDEVICE_OBJECT __cil_tmp49 ;
13589 int __cil_tmp50 ;
13590 int __cil_tmp51 ;
13591 int __cil_tmp52 ;
13592 int __cil_tmp53 ;
13593 unsigned long __cil_tmp54 ;
13594 void *__cil_tmp55 ;
13595 unsigned int __cil_tmp56 ;
13596 unsigned int __cil_tmp57 ;
13597 unsigned int __cil_tmp58 ;
13598 unsigned int __cil_tmp59 ;
13599 unsigned int __cil_tmp60 ;
13600 unsigned int __cil_tmp61 ;
13601 PDEVICE_OBJECT __cil_tmp62 ;
13602 int __cil_tmp63 ;
13603 int __cil_tmp64 ;
13604 int __cil_tmp65 ;
13605 int __cil_tmp66 ;
13606 unsigned long __cil_tmp67 ;
13607 void *__cil_tmp68 ;
13608 FDC_DISK_CHANGE_PARMS *__cil_tmp69 ;
13609 int __cil_tmp70 ;
13610 unsigned int __cil_tmp71 ;
13611 unsigned int __cil_tmp72 ;
13612 UCHAR __cil_tmp73 ;
13613 int __cil_tmp74 ;
13614 unsigned int __cil_tmp75 ;
13615 unsigned int __cil_tmp76 ;
13616 UCHAR __cil_tmp77 ;
13617 int __cil_tmp78 ;
13618 int __cil_tmp79 ;
13619 unsigned int __cil_tmp80 ;
13620 unsigned int __cil_tmp81 ;
13621 unsigned int __cil_tmp82 ;
13622 unsigned int __cil_tmp83 ;
13623 PDEVICE_OBJECT __cil_tmp84 ;
13624 unsigned int __cil_tmp85 ;
13625 unsigned int __cil_tmp86 ;
13626 PVPB __cil_tmp87 ;
13627 unsigned int __cil_tmp88 ;
13628 unsigned int __cil_tmp89 ;
13629 USHORT __cil_tmp90 ;
13630 int __cil_tmp91 ;
13631 unsigned int __cil_tmp92 ;
13632 unsigned int __cil_tmp93 ;
13633 PDEVICE_OBJECT __cil_tmp94 ;
13634 unsigned int __cil_tmp95 ;
13635 unsigned int __cil_tmp96 ;
13636 PDEVICE_OBJECT __cil_tmp97 ;
13637 unsigned int __cil_tmp98 ;
13638 unsigned int __cil_tmp99 ;
13639 unsigned int __cil_tmp100 ;
13640 unsigned int __cil_tmp101 ;
13641 PDEVICE_OBJECT __cil_tmp102 ;
13642 unsigned int __cil_tmp103 ;
13643 unsigned int __cil_tmp104 ;
13644 ULONG __cil_tmp105 ;
13645 unsigned int __cil_tmp106 ;
13646 unsigned int __cil_tmp107 ;
13647 UCHAR __cil_tmp108 ;
13648 int __cil_tmp109 ;
13649 KUSER_SHARED_DATA *__cil_tmp110 ;
13650 unsigned int __cil_tmp111 ;
13651 unsigned int __cil_tmp112 ;
13652 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp113 ;
13653 int __cil_tmp114 ;
13654 unsigned int __cil_tmp115 ;
13655 unsigned int __cil_tmp116 ;
13656 unsigned int __cil_tmp117 ;
13657 unsigned int __cil_tmp118 ;
13658 unsigned int __cil_tmp119 ;
13659 unsigned int __cil_tmp120 ;
13660 unsigned int __cil_tmp121 ;
13661 unsigned int __cil_tmp122 ;
13662 unsigned int __cil_tmp123 ;
13663 unsigned int __cil_tmp124 ;
13664 unsigned int __cil_tmp125 ;
13665 unsigned int __cil_tmp126 ;
13666 unsigned int __cil_tmp127 ;
13667 unsigned int __cil_tmp128 ;
13668 UCHAR *__cil_tmp129 ;
13669 unsigned int __cil_tmp130 ;
13670 unsigned int __cil_tmp131 ;
13671 unsigned int __cil_tmp132 ;
13672 unsigned int __cil_tmp133 ;
13673 UCHAR *__cil_tmp134 ;
13674 void *__cil_tmp135 ;
13675 struct _MDL *__cil_tmp136 ;
13676 int __cil_tmp137 ;
13677 unsigned int __cil_tmp138 ;
13678 unsigned int __cil_tmp139 ;
13679 unsigned int __cil_tmp140 ;
13680 unsigned int __cil_tmp141 ;
13681 UCHAR __cil_tmp142 ;
13682 int __cil_tmp143 ;
13683 int __cil_tmp144 ;
13684 unsigned int __cil_tmp145 ;
13685 unsigned int __cil_tmp146 ;
13686 PDEVICE_OBJECT __cil_tmp147 ;
13687 unsigned int __cil_tmp148 ;
13688 unsigned int __cil_tmp149 ;
13689 PVPB __cil_tmp150 ;
13690 unsigned int __cil_tmp151 ;
13691 unsigned int __cil_tmp152 ;
13692 USHORT __cil_tmp153 ;
13693 int __cil_tmp154 ;
13694 unsigned int __cil_tmp155 ;
13695 unsigned int __cil_tmp156 ;
13696 PDEVICE_OBJECT __cil_tmp157 ;
13697 unsigned int __cil_tmp158 ;
13698 unsigned int __cil_tmp159 ;
13699 unsigned int __cil_tmp160 ;
13700 unsigned int __cil_tmp161 ;
13701 PDEVICE_OBJECT __cil_tmp162 ;
13702 unsigned int __cil_tmp163 ;
13703 unsigned int __cil_tmp164 ;
13704 ULONG __cil_tmp165 ;
13705 unsigned int __cil_tmp166 ;
13706 unsigned int __cil_tmp167 ;
13707 unsigned int __cil_tmp168 ;
13708 unsigned int __cil_tmp169 ;
13709 unsigned int __cil_tmp170 ;
13710 unsigned int __cil_tmp171 ;
13711 unsigned int __cil_tmp172 ;
13712 unsigned int __cil_tmp173 ;
13713 unsigned int __cil_tmp174 ;
13714 unsigned int __cil_tmp175 ;
13715 unsigned int __cil_tmp176 ;
13716 unsigned int __cil_tmp177 ;
13717 unsigned int __cil_tmp178 ;
13718 unsigned int __cil_tmp179 ;
13719 unsigned int __cil_tmp180 ;
13720 unsigned int __cil_tmp181 ;
13721 unsigned int __cil_tmp182 ;
13722 unsigned int __cil_tmp183 ;
13723 UCHAR *__cil_tmp184 ;
13724 unsigned int __cil_tmp185 ;
13725 unsigned int __cil_tmp186 ;
13726 unsigned int __cil_tmp187 ;
13727 unsigned int __cil_tmp188 ;
13728 UCHAR *__cil_tmp189 ;
13729 void *__cil_tmp190 ;
13730 struct _MDL *__cil_tmp191 ;
13731 int __cil_tmp192 ;
13732 unsigned int __cil_tmp193 ;
13733 unsigned int __cil_tmp194 ;
13734 unsigned int __cil_tmp195 ;
13735 unsigned int __cil_tmp196 ;
13736 UCHAR __cil_tmp197 ;
13737 int __cil_tmp198 ;
13738 int __cil_tmp199 ;
13739 unsigned int __cil_tmp200 ;
13740 unsigned int __cil_tmp201 ;
13741 unsigned int __cil_tmp202 ;
13742 unsigned int __cil_tmp203 ;
13743 UCHAR __cil_tmp204 ;
13744 int __cil_tmp205 ;
13745 unsigned int __cil_tmp206 ;
13746 unsigned int __cil_tmp207 ;
13747 unsigned int __cil_tmp208 ;
13748 unsigned int __cil_tmp209 ;
13749 unsigned int __cil_tmp210 ;
13750 unsigned int __cil_tmp211 ;
13751 unsigned int __cil_tmp212 ;
13752 unsigned int __cil_tmp213 ;
13753 unsigned int __cil_tmp214 ;
13754 unsigned int __cil_tmp215 ;
13755 unsigned int __cil_tmp216 ;
13756 unsigned int __cil_tmp217 ;
13757 unsigned int __cil_tmp218 ;
13758 unsigned int __cil_tmp219 ;
13759 unsigned int __cil_tmp220 ;
13760 unsigned int __cil_tmp221 ;
13761 LARGE_INTEGER *__cil_tmp222 ;
13762 unsigned int __cil_tmp223 ;
13763 unsigned int __cil_tmp224 ;
13764 unsigned int __cil_tmp225 ;
13765 unsigned int __cil_tmp226 ;
13766 unsigned int __cil_tmp227 ;
13767 unsigned int __cil_tmp228 ;
13768 UCHAR *__cil_tmp229 ;
13769 unsigned int __cil_tmp230 ;
13770 unsigned int __cil_tmp231 ;
13771 unsigned int __cil_tmp232 ;
13772 unsigned int __cil_tmp233 ;
13773 UCHAR *__cil_tmp234 ;
13774 void *__cil_tmp235 ;
13775 struct _MDL *__cil_tmp236 ;
13776 LARGE_INTEGER *__cil_tmp237 ;
13777 unsigned int __cil_tmp238 ;
13778 unsigned int __cil_tmp239 ;
13779 int __cil_tmp240 ;
13780 unsigned int __cil_tmp241 ;
13781 unsigned int __cil_tmp242 ;
13782 unsigned int __cil_tmp243 ;
13783 unsigned int __cil_tmp244 ;
13784 UCHAR __cil_tmp245 ;
13785 int __cil_tmp246 ;
13786 int __cil_tmp247 ;
13787 unsigned int __cil_tmp248 ;
13788 unsigned int __cil_tmp249 ;
13789 unsigned int __cil_tmp250 ;
13790 unsigned int __cil_tmp251 ;
13791 UCHAR __cil_tmp252 ;
13792 int __cil_tmp253 ;
13793 unsigned int __cil_tmp254 ;
13794 unsigned int __cil_tmp255 ;
13795 KUSER_SHARED_DATA *__cil_tmp256 ;
13796 unsigned int __cil_tmp257 ;
13797 unsigned int __cil_tmp258 ;
13798 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp259 ;
13799 int __cil_tmp260 ;
13800 unsigned int __cil_tmp261 ;
13801 unsigned int __cil_tmp262 ;
13802 unsigned int __cil_tmp263 ;
13803 unsigned int __cil_tmp264 ;
13804 unsigned int __cil_tmp265 ;
13805 unsigned int __cil_tmp266 ;
13806 unsigned int __cil_tmp267 ;
13807 unsigned int __cil_tmp268 ;
13808 unsigned int __cil_tmp269 ;
13809 unsigned int __cil_tmp270 ;
13810 unsigned int __cil_tmp271 ;
13811 unsigned int __cil_tmp272 ;
13812 unsigned int __cil_tmp273 ;
13813 unsigned int __cil_tmp274 ;
13814 UCHAR *__cil_tmp275 ;
13815 unsigned int __cil_tmp276 ;
13816 unsigned int __cil_tmp277 ;
13817 unsigned int __cil_tmp278 ;
13818 unsigned int __cil_tmp279 ;
13819 UCHAR *__cil_tmp280 ;
13820 void *__cil_tmp281 ;
13821 struct _MDL *__cil_tmp282 ;
13822 int __cil_tmp283 ;
13823 unsigned int __cil_tmp284 ;
13824 unsigned int __cil_tmp285 ;
13825 unsigned int __cil_tmp286 ;
13826 unsigned int __cil_tmp287 ;
13827 UCHAR __cil_tmp288 ;
13828 int __cil_tmp289 ;
13829 unsigned int __cil_tmp290 ;
13830 unsigned int __cil_tmp291 ;
13831 PDEVICE_OBJECT __cil_tmp292 ;
13832 int __cil_tmp293 ;
13833 int __cil_tmp294 ;
13834 int __cil_tmp295 ;
13835 int __cil_tmp296 ;
13836 unsigned long __cil_tmp297 ;
13837 void *__cil_tmp298 ;
13838 FDC_DISK_CHANGE_PARMS *__cil_tmp299 ;
13839 int __cil_tmp300 ;
13840 int __cil_tmp301 ;
13841 unsigned int __cil_tmp302 ;
13842 unsigned int __cil_tmp303 ;
13843 PDEVICE_OBJECT __cil_tmp304 ;
13844 unsigned int __cil_tmp305 ;
13845 unsigned int __cil_tmp306 ;
13846 PVPB __cil_tmp307 ;
13847 unsigned int __cil_tmp308 ;
13848 unsigned int __cil_tmp309 ;
13849 USHORT __cil_tmp310 ;
13850 int __cil_tmp311 ;
13851 unsigned int __cil_tmp312 ;
13852 unsigned int __cil_tmp313 ;
13853 PDEVICE_OBJECT __cil_tmp314 ;
13854 unsigned int __cil_tmp315 ;
13855 unsigned int __cil_tmp316 ;
13856 unsigned int __cil_tmp317 ;
13857 unsigned int __cil_tmp318 ;
13858 PDEVICE_OBJECT __cil_tmp319 ;
13859 unsigned int __cil_tmp320 ;
13860 unsigned int __cil_tmp321 ;
13861 ULONG __cil_tmp322 ;
13862 int __cil_tmp323 ;
13863 unsigned int __cil_tmp324 ;
13864 unsigned int __cil_tmp325 ;
13865 PDEVICE_OBJECT __cil_tmp326 ;
13866 unsigned int __cil_tmp327 ;
13867 unsigned int __cil_tmp328 ;
13868 PVPB __cil_tmp329 ;
13869 unsigned int __cil_tmp330 ;
13870 unsigned int __cil_tmp331 ;
13871 USHORT __cil_tmp332 ;
13872 int __cil_tmp333 ;
13873 KUSER_SHARED_DATA *__cil_tmp334 ;
13874 unsigned int __cil_tmp335 ;
13875 unsigned int __cil_tmp336 ;
13876 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp337 ;
13877 int __cil_tmp338 ;
13878 unsigned int __cil_tmp339 ;
13879 unsigned int __cil_tmp340 ;
13880 MEDIA_TYPE __cil_tmp341 ;
13881 int __cil_tmp342 ;
13882 unsigned int __cil_tmp343 ;
13883 unsigned int __cil_tmp344 ;
13884 MEDIA_TYPE __cil_tmp345 ;
13885 int __cil_tmp346 ;
13886 unsigned int __cil_tmp347 ;
13887 unsigned int __cil_tmp348 ;
13888 DRIVE_MEDIA_TYPE __cil_tmp349 ;
13889 int __cil_tmp350 ;
13890 unsigned int __cil_tmp351 ;
13891 unsigned int __cil_tmp352 ;
13892 DRIVE_MEDIA_TYPE __cil_tmp353 ;
13893 int __cil_tmp354 ;
13894 int __cil_tmp355 ;
13895 unsigned int __cil_tmp356 ;
13896 unsigned int __cil_tmp357 ;
13897 unsigned int __cil_tmp358 ;
13898 unsigned int __cil_tmp359 ;
13899 unsigned int __cil_tmp360 ;
13900 unsigned int __cil_tmp361 ;
13901 unsigned int __cil_tmp362 ;
13902 unsigned int __cil_tmp363 ;
13903 unsigned int __cil_tmp364 ;
13904 unsigned int __cil_tmp365 ;
13905 unsigned int __cil_tmp366 ;
13906 unsigned int __cil_tmp367 ;
13907 unsigned int __cil_tmp368 ;
13908 unsigned int __cil_tmp369 ;
13909 UCHAR *__cil_tmp370 ;
13910 unsigned int __cil_tmp371 ;
13911 unsigned int __cil_tmp372 ;
13912 unsigned int __cil_tmp373 ;
13913 unsigned int __cil_tmp374 ;
13914 UCHAR *__cil_tmp375 ;
13915 void *__cil_tmp376 ;
13916 struct _MDL *__cil_tmp377 ;
13917 int __cil_tmp378 ;
13918 KUSER_SHARED_DATA *__cil_tmp379 ;
13919 unsigned int __cil_tmp380 ;
13920 unsigned int __cil_tmp381 ;
13921 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp382 ;
13922 int __cil_tmp383 ;
13923 unsigned int __cil_tmp384 ;
13924 unsigned int __cil_tmp385 ;
13925 unsigned int __cil_tmp386 ;
13926 unsigned int __cil_tmp387 ;
13927 UCHAR __cil_tmp388 ;
13928 int __cil_tmp389 ;
13929 int __cil_tmp390 ;
13930 unsigned int __cil_tmp391 ;
13931 unsigned int __cil_tmp392 ;
13932 unsigned int __cil_tmp393 ;
13933 unsigned int __cil_tmp394 ;
13934 UCHAR __cil_tmp395 ;
13935 int __cil_tmp396 ;
13936 UCHAR *mem_397 ;
13937 DRIVE_MEDIA_TYPE *mem_398 ;
13938 DRIVE_MEDIA_CONSTANTS *mem_399 ;
13939 MEDIA_TYPE *mem_400 ;
13940 DRIVE_MEDIA_CONSTANTS *mem_401 ;
13941 MEDIA_TYPE *mem_402 ;
13942 DRIVE_MEDIA_CONSTANTS *mem_403 ;
13943 UCHAR *mem_404 ;
13944 UCHAR *mem_405 ;
13945 USHORT *mem_406 ;
13946 USHORT *mem_407 ;
13947 USHORT *mem_408 ;
13948 USHORT *mem_409 ;
13949 PDEVICE_OBJECT *mem_410 ;
13950 BOOLEAN *mem_411 ;
13951 UCHAR *mem_412 ;
13952 UCHAR *mem_413 ;
13953 PDEVICE_OBJECT *mem_414 ;
13954 UCHAR *mem_415 ;
13955 UCHAR *mem_416 ;
13956 UCHAR *mem_417 ;
13957 MEDIA_TYPE *mem_418 ;
13958 PDEVICE_OBJECT *mem_419 ;
13959 PVPB *mem_420 ;
13960 USHORT *mem_421 ;
13961 PDEVICE_OBJECT *mem_422 ;
13962 PDEVICE_OBJECT *mem_423 ;
13963 PDEVICE_OBJECT *mem_424 ;
13964 ULONG *mem_425 ;
13965 ULONG *mem_426 ;
13966 UCHAR *mem_427 ;
13967 ALTERNATIVE_ARCHITECTURE_TYPE *mem_428 ;
13968 UCHAR *mem_429 ;
13969 UCHAR *mem_430 ;
13970 UCHAR *mem_431 ;
13971 UCHAR *mem_432 ;
13972 PDEVICE_OBJECT *mem_433 ;
13973 PVPB *mem_434 ;
13974 USHORT *mem_435 ;
13975 PDEVICE_OBJECT *mem_436 ;
13976 PDEVICE_OBJECT *mem_437 ;
13977 ULONG *mem_438 ;
13978 ULONG *mem_439 ;
13979 UCHAR *mem_440 ;
13980 UCHAR *mem_441 ;
13981 UCHAR *mem_442 ;
13982 UCHAR *mem_443 ;
13983 UCHAR *mem_444 ;
13984 UCHAR *mem_445 ;
13985 BOOLEAN *mem_446 ;
13986 UCHAR *mem_447 ;
13987 UCHAR *mem_448 ;
13988 UCHAR *mem_449 ;
13989 UCHAR *mem_450 ;
13990 ULONG *mem_451 ;
13991 LONG *mem_452 ;
13992 ULONG *mem_453 ;
13993 LONG *mem_454 ;
13994 UCHAR *mem_455 ;
13995 UCHAR *mem_456 ;
13996 BOOLEAN *mem_457 ;
13997 ALTERNATIVE_ARCHITECTURE_TYPE *mem_458 ;
13998 UCHAR *mem_459 ;
13999 UCHAR *mem_460 ;
14000 UCHAR *mem_461 ;
14001 UCHAR *mem_462 ;
14002 PDEVICE_OBJECT *mem_463 ;
14003 UCHAR *mem_464 ;
14004 PDEVICE_OBJECT *mem_465 ;
14005 PVPB *mem_466 ;
14006 USHORT *mem_467 ;
14007 PDEVICE_OBJECT *mem_468 ;
14008 PDEVICE_OBJECT *mem_469 ;
14009 ULONG *mem_470 ;
14010 ULONG *mem_471 ;
14011 PDEVICE_OBJECT *mem_472 ;
14012 PVPB *mem_473 ;
14013 USHORT *mem_474 ;
14014 ALTERNATIVE_ARCHITECTURE_TYPE *mem_475 ;
14015 MEDIA_TYPE *mem_476 ;
14016 MEDIA_TYPE *mem_477 ;
14017 DRIVE_MEDIA_TYPE *mem_478 ;
14018 DRIVE_MEDIA_TYPE *mem_479 ;
14019 UCHAR *mem_480 ;
14020 UCHAR *mem_481 ;
14021 UCHAR *mem_482 ;
14022 ALTERNATIVE_ARCHITECTURE_TYPE *mem_483 ;
14023 UCHAR *mem_484 ;
14024 UCHAR *mem_485 ;
14025
14026 {
14027#line 2630
14028 ntStatus = 0L;
14029 {
14030#line 2637
14031 while (1) {
14032 while_74_continue: ;
14033 goto while_74_break;
14034 }
14035 while_74_break: ;
14036 }
14037#line 2654
14038 __cil_tmp12 = (unsigned int )DisketteExtension;
14039#line 2654
14040 __cil_tmp13 = __cil_tmp12 + 174;
14041#line 2654
14042 mem_397 = (UCHAR *)__cil_tmp13;
14043#line 2654
14044 __cil_tmp14 = *mem_397;
14045#line 2654
14046 __cil_tmp15 = (int )__cil_tmp14;
14047#line 2654
14048 __cil_tmp16 = DriveMediaLimits + __cil_tmp15;
14049#line 2654
14050 mem_398 = (DRIVE_MEDIA_TYPE *)__cil_tmp16;
14051#line 2654
14052 __cil_tmp17 = *mem_398;
14053#line 2654
14054 __cil_tmp18 = (unsigned int )__cil_tmp17;
14055#line 2654
14056 __cil_tmp19 = DriveMediaConstants + __cil_tmp18;
14057#line 2654
14058 __cil_tmp20 = (unsigned int )DisketteExtension;
14059#line 2654
14060 __cil_tmp21 = __cil_tmp20 + 252;
14061#line 2654
14062 mem_399 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp21;
14063#line 2654
14064 *__cil_tmp19 = *mem_399;
14065 {
14066#line 2657
14067 __cil_tmp22 = (unsigned int )DisketteExtension;
14068#line 2657
14069 __cil_tmp23 = __cil_tmp22 + 184;
14070#line 2657
14071 mem_400 = (MEDIA_TYPE *)__cil_tmp23;
14072#line 2657
14073 __cil_tmp24 = *mem_400;
14074#line 2657
14075 __cil_tmp25 = (int )__cil_tmp24;
14076#line 2657
14077 if (__cil_tmp25 == -1) {
14078#line 2659
14079 __cil_tmp26 = (unsigned int )DisketteExtension;
14080#line 2659
14081 __cil_tmp27 = __cil_tmp26 + 308;
14082#line 2659
14083 __cil_tmp28 = DriveMediaConstants + 0;
14084#line 2659
14085 mem_401 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp27;
14086#line 2659
14087 *mem_401 = *__cil_tmp28;
14088 } else {
14089 {
14090#line 2657
14091 __cil_tmp29 = (unsigned int )DisketteExtension;
14092#line 2657
14093 __cil_tmp30 = __cil_tmp29 + 184;
14094#line 2657
14095 mem_402 = (MEDIA_TYPE *)__cil_tmp30;
14096#line 2657
14097 __cil_tmp31 = *mem_402;
14098#line 2657
14099 __cil_tmp32 = (int )__cil_tmp31;
14100#line 2657
14101 if (__cil_tmp32 == 0) {
14102#line 2659
14103 __cil_tmp33 = (unsigned int )DisketteExtension;
14104#line 2659
14105 __cil_tmp34 = __cil_tmp33 + 308;
14106#line 2659
14107 __cil_tmp35 = DriveMediaConstants + 0;
14108#line 2659
14109 mem_403 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp34;
14110#line 2659
14111 *mem_403 = *__cil_tmp35;
14112 } else {
14113
14114 }
14115 }
14116 }
14117 }
14118#line 2669
14119 __cil_tmp36 = & fdcEnableParms;
14120#line 2669
14121 __cil_tmp37 = (unsigned int )DisketteExtension;
14122#line 2669
14123 __cil_tmp38 = __cil_tmp37 + 249;
14124#line 2669
14125 mem_404 = (UCHAR *)__cil_tmp36;
14126#line 2669
14127 mem_405 = (UCHAR *)__cil_tmp38;
14128#line 2669
14129 *mem_404 = *mem_405;
14130#line 2670
14131 if (WriteOperation) {
14132#line 2671
14133 __cil_tmp39 = (unsigned int )(& fdcEnableParms) + 2;
14134#line 2671
14135 __cil_tmp40 = 308 + 46;
14136#line 2671
14137 __cil_tmp41 = (unsigned int )DisketteExtension;
14138#line 2671
14139 __cil_tmp42 = __cil_tmp41 + __cil_tmp40;
14140#line 2671
14141 mem_406 = (USHORT *)__cil_tmp39;
14142#line 2671
14143 mem_407 = (USHORT *)__cil_tmp42;
14144#line 2671
14145 *mem_406 = *mem_407;
14146 } else {
14147#line 2674
14148 __cil_tmp43 = (unsigned int )(& fdcEnableParms) + 2;
14149#line 2674
14150 __cil_tmp44 = 308 + 44;
14151#line 2674
14152 __cil_tmp45 = (unsigned int )DisketteExtension;
14153#line 2674
14154 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
14155#line 2674
14156 mem_408 = (USHORT *)__cil_tmp43;
14157#line 2674
14158 mem_409 = (USHORT *)__cil_tmp46;
14159#line 2674
14160 *mem_408 = *mem_409;
14161 }
14162 {
14163#line 2678
14164 __cil_tmp47 = (unsigned int )DisketteExtension;
14165#line 2678
14166 __cil_tmp48 = __cil_tmp47 + 8;
14167#line 2678
14168 mem_410 = (PDEVICE_OBJECT *)__cil_tmp48;
14169#line 2678
14170 __cil_tmp49 = *mem_410;
14171#line 2678
14172 __cil_tmp50 = 774 << 2;
14173#line 2678
14174 __cil_tmp51 = 7 << 16;
14175#line 2678
14176 __cil_tmp52 = __cil_tmp51 | __cil_tmp50;
14177#line 2678
14178 __cil_tmp53 = __cil_tmp52 | 3;
14179#line 2678
14180 __cil_tmp54 = (unsigned long )__cil_tmp53;
14181#line 2678
14182 __cil_tmp55 = (void *)(& fdcEnableParms);
14183#line 2678
14184 ntStatus = FlFdcDeviceIo(__cil_tmp49, __cil_tmp54, __cil_tmp55);
14185#line 2682
14186 __cil_tmp56 = (unsigned int )(& fdcEnableParms) + 4;
14187#line 2682
14188 mem_411 = (BOOLEAN *)__cil_tmp56;
14189#line 2682
14190 motorStarted = *mem_411;
14191 }
14192#line 2684
14193 if (ntStatus >= 0L) {
14194 {
14195#line 2686
14196 __cil_tmp57 = (unsigned int )(& fdcDiskChangeParms) + 1;
14197#line 2686
14198 __cil_tmp58 = (unsigned int )DisketteExtension;
14199#line 2686
14200 __cil_tmp59 = __cil_tmp58 + 249;
14201#line 2686
14202 mem_412 = (UCHAR *)__cil_tmp57;
14203#line 2686
14204 mem_413 = (UCHAR *)__cil_tmp59;
14205#line 2686
14206 *mem_412 = *mem_413;
14207#line 2688
14208 __cil_tmp60 = (unsigned int )DisketteExtension;
14209#line 2688
14210 __cil_tmp61 = __cil_tmp60 + 8;
14211#line 2688
14212 mem_414 = (PDEVICE_OBJECT *)__cil_tmp61;
14213#line 2688
14214 __cil_tmp62 = *mem_414;
14215#line 2688
14216 __cil_tmp63 = 776 << 2;
14217#line 2688
14218 __cil_tmp64 = 7 << 16;
14219#line 2688
14220 __cil_tmp65 = __cil_tmp64 | __cil_tmp63;
14221#line 2688
14222 __cil_tmp66 = __cil_tmp65 | 3;
14223#line 2688
14224 __cil_tmp67 = (unsigned long )__cil_tmp66;
14225#line 2688
14226 __cil_tmp68 = (void *)(& fdcDiskChangeParms);
14227#line 2688
14228 ntStatus = FlFdcDeviceIo(__cil_tmp62, __cil_tmp67, __cil_tmp68);
14229#line 2692
14230 __cil_tmp69 = & fdcDiskChangeParms;
14231#line 2692
14232 mem_415 = (UCHAR *)__cil_tmp69;
14233#line 2692
14234 driveStatus = *mem_415;
14235 }
14236 } else {
14237
14238 }
14239 {
14240#line 2695
14241 __cil_tmp70 = ntStatus >= 0L;
14242#line 2695
14243 if (! __cil_tmp70) {
14244#line 2696
14245 return (ntStatus);
14246 } else {
14247
14248 }
14249 }
14250 {
14251#line 2708
14252 __cil_tmp71 = (unsigned int )DisketteExtension;
14253#line 2708
14254 __cil_tmp72 = __cil_tmp71 + 174;
14255#line 2708
14256 mem_416 = (UCHAR *)__cil_tmp72;
14257#line 2708
14258 __cil_tmp73 = *mem_416;
14259#line 2708
14260 __cil_tmp74 = (int )__cil_tmp73;
14261#line 2708
14262 if (__cil_tmp74 == 0) {
14263#line 2708
14264 if (motorStarted) {
14265 goto _L___1;
14266 } else {
14267 goto _L___3;
14268 }
14269 } else {
14270 _L___3:
14271 {
14272#line 2708
14273 __cil_tmp75 = (unsigned int )DisketteExtension;
14274#line 2708
14275 __cil_tmp76 = __cil_tmp75 + 174;
14276#line 2708
14277 mem_417 = (UCHAR *)__cil_tmp76;
14278#line 2708
14279 __cil_tmp77 = *mem_417;
14280#line 2708
14281 __cil_tmp78 = (int )__cil_tmp77;
14282#line 2708
14283 if (__cil_tmp78 != 0) {
14284 {
14285#line 2708
14286 __cil_tmp79 = (int )driveStatus;
14287#line 2708
14288 if (__cil_tmp79 & 128) {
14289 _L___1:
14290 {
14291#line 2716
14292 while (1) {
14293 while_75_continue: ;
14294 goto while_75_break;
14295 }
14296 while_75_break: ;
14297 }
14298#line 2718
14299 __cil_tmp80 = (unsigned int )DisketteExtension;
14300#line 2718
14301 __cil_tmp81 = __cil_tmp80 + 184;
14302#line 2718
14303 mem_418 = (MEDIA_TYPE *)__cil_tmp81;
14304#line 2718
14305 *mem_418 = (enum _MEDIA_TYPE )-1;
14306 {
14307#line 2725
14308 __cil_tmp82 = (unsigned int )DisketteExtension;
14309#line 2725
14310 __cil_tmp83 = __cil_tmp82 + 28;
14311#line 2725
14312 mem_419 = (PDEVICE_OBJECT *)__cil_tmp83;
14313#line 2725
14314 __cil_tmp84 = *mem_419;
14315#line 2725
14316 __cil_tmp85 = (unsigned int )__cil_tmp84;
14317#line 2725
14318 __cil_tmp86 = __cil_tmp85 + 36;
14319#line 2725
14320 mem_420 = (PVPB *)__cil_tmp86;
14321#line 2725
14322 __cil_tmp87 = *mem_420;
14323#line 2725
14324 __cil_tmp88 = (unsigned int )__cil_tmp87;
14325#line 2725
14326 __cil_tmp89 = __cil_tmp88 + 4;
14327#line 2725
14328 mem_421 = (USHORT *)__cil_tmp89;
14329#line 2725
14330 __cil_tmp90 = *mem_421;
14331#line 2725
14332 __cil_tmp91 = (int )__cil_tmp90;
14333#line 2725
14334 if (__cil_tmp91 & 1) {
14335#line 2727
14336 if (Irp) {
14337 {
14338#line 2728
14339 __cil_tmp92 = (unsigned int )DisketteExtension;
14340#line 2728
14341 __cil_tmp93 = __cil_tmp92 + 28;
14342#line 2728
14343 mem_422 = (PDEVICE_OBJECT *)__cil_tmp93;
14344#line 2728
14345 __cil_tmp94 = *mem_422;
14346#line 2728
14347 IoSetHardErrorOrVerifyDevice(Irp, __cil_tmp94);
14348 }
14349 } else {
14350
14351 }
14352#line 2731
14353 __cil_tmp95 = (unsigned int )DisketteExtension;
14354#line 2731
14355 __cil_tmp96 = __cil_tmp95 + 28;
14356#line 2731
14357 mem_423 = (PDEVICE_OBJECT *)__cil_tmp96;
14358#line 2731
14359 __cil_tmp97 = *mem_423;
14360#line 2731
14361 __cil_tmp98 = (unsigned int )__cil_tmp97;
14362#line 2731
14363 __cil_tmp99 = __cil_tmp98 + 28;
14364#line 2731
14365 __cil_tmp100 = (unsigned int )DisketteExtension;
14366#line 2731
14367 __cil_tmp101 = __cil_tmp100 + 28;
14368#line 2731
14369 mem_424 = (PDEVICE_OBJECT *)__cil_tmp101;
14370#line 2731
14371 __cil_tmp102 = *mem_424;
14372#line 2731
14373 __cil_tmp103 = (unsigned int )__cil_tmp102;
14374#line 2731
14375 __cil_tmp104 = __cil_tmp103 + 28;
14376#line 2731
14377 mem_425 = (ULONG *)__cil_tmp104;
14378#line 2731
14379 __cil_tmp105 = *mem_425;
14380#line 2731
14381 mem_426 = (ULONG *)__cil_tmp99;
14382#line 2731
14383 *mem_426 = __cil_tmp105 | 2UL;
14384 } else {
14385
14386 }
14387 }
14388 {
14389#line 2741
14390 __cil_tmp106 = (unsigned int )DisketteExtension;
14391#line 2741
14392 __cil_tmp107 = __cil_tmp106 + 174;
14393#line 2741
14394 mem_427 = (UCHAR *)__cil_tmp107;
14395#line 2741
14396 __cil_tmp108 = *mem_427;
14397#line 2741
14398 __cil_tmp109 = (int )__cil_tmp108;
14399#line 2741
14400 if (__cil_tmp109 != 0) {
14401 {
14402#line 2743
14403 __cil_tmp110 = (KUSER_SHARED_DATA * const )4292804608U;
14404#line 2743
14405 __cil_tmp111 = (unsigned int )__cil_tmp110;
14406#line 2743
14407 __cil_tmp112 = __cil_tmp111 + 732;
14408#line 2743
14409 mem_428 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp112;
14410#line 2743
14411 __cil_tmp113 = *mem_428;
14412#line 2743
14413 __cil_tmp114 = (int )__cil_tmp113;
14414#line 2743
14415 if (__cil_tmp114 == 1) {
14416 {
14417#line 2749
14418 __cil_tmp115 = 0 * 1U;
14419#line 2749
14420 __cil_tmp116 = 112 + __cil_tmp115;
14421#line 2749
14422 __cil_tmp117 = (unsigned int )DisketteExtension;
14423#line 2749
14424 __cil_tmp118 = __cil_tmp117 + __cil_tmp116;
14425#line 2749
14426 mem_429 = (UCHAR *)__cil_tmp118;
14427#line 2749
14428 *mem_429 = (unsigned char)14;
14429#line 2750
14430 __cil_tmp119 = 1 * 1U;
14431#line 2750
14432 __cil_tmp120 = 112 + __cil_tmp119;
14433#line 2750
14434 __cil_tmp121 = (unsigned int )DisketteExtension;
14435#line 2750
14436 __cil_tmp122 = __cil_tmp121 + __cil_tmp120;
14437#line 2750
14438 __cil_tmp123 = (unsigned int )DisketteExtension;
14439#line 2750
14440 __cil_tmp124 = __cil_tmp123 + 248;
14441#line 2750
14442 mem_430 = (UCHAR *)__cil_tmp122;
14443#line 2750
14444 mem_431 = (UCHAR *)__cil_tmp124;
14445#line 2750
14446 *mem_430 = *mem_431;
14447#line 2752
14448 __cil_tmp125 = 0 * 1U;
14449#line 2752
14450 __cil_tmp126 = 112 + __cil_tmp125;
14451#line 2752
14452 __cil_tmp127 = (unsigned int )DisketteExtension;
14453#line 2752
14454 __cil_tmp128 = __cil_tmp127 + __cil_tmp126;
14455#line 2752
14456 __cil_tmp129 = (UCHAR *)__cil_tmp128;
14457#line 2752
14458 __cil_tmp130 = 0 * 1U;
14459#line 2752
14460 __cil_tmp131 = 112 + __cil_tmp130;
14461#line 2752
14462 __cil_tmp132 = (unsigned int )DisketteExtension;
14463#line 2752
14464 __cil_tmp133 = __cil_tmp132 + __cil_tmp131;
14465#line 2752
14466 __cil_tmp134 = (UCHAR *)__cil_tmp133;
14467#line 2752
14468 __cil_tmp135 = (void *)0;
14469#line 2752
14470 __cil_tmp136 = (struct _MDL *)__cil_tmp135;
14471#line 2752
14472 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp129, __cil_tmp134,
14473 __cil_tmp136, 0UL, 0UL);
14474 }
14475 {
14476#line 2759
14477 __cil_tmp137 = ntStatus >= 0L;
14478#line 2759
14479 if (! __cil_tmp137) {
14480 {
14481#line 2764
14482 while (1) {
14483 while_76_continue: ;
14484 goto while_76_break;
14485 }
14486 while_76_break: ;
14487 }
14488#line 2766
14489 return (ntStatus);
14490 } else {
14491
14492 }
14493 }
14494 {
14495#line 2769
14496 __cil_tmp138 = 0 * 1U;
14497#line 2769
14498 __cil_tmp139 = 112 + __cil_tmp138;
14499#line 2769
14500 __cil_tmp140 = (unsigned int )DisketteExtension;
14501#line 2769
14502 __cil_tmp141 = __cil_tmp140 + __cil_tmp139;
14503#line 2769
14504 mem_432 = (UCHAR *)__cil_tmp141;
14505#line 2769
14506 __cil_tmp142 = *mem_432;
14507#line 2769
14508 __cil_tmp143 = (int )__cil_tmp142;
14509#line 2769
14510 if (__cil_tmp143 & 32) {
14511#line 2771
14512 driveStatus = (unsigned char)127;
14513 } else {
14514#line 2775
14515 driveStatus = (unsigned char)128;
14516 }
14517 }
14518 {
14519#line 2778
14520 __cil_tmp144 = (int )driveStatus;
14521#line 2778
14522 if (__cil_tmp144 & 128) {
14523 {
14524#line 2788
14525 while (1) {
14526 while_77_continue: ;
14527 goto while_77_break;
14528 }
14529 while_77_break: ;
14530 }
14531 {
14532#line 2795
14533 __cil_tmp145 = (unsigned int )DisketteExtension;
14534#line 2795
14535 __cil_tmp146 = __cil_tmp145 + 28;
14536#line 2795
14537 mem_433 = (PDEVICE_OBJECT *)__cil_tmp146;
14538#line 2795
14539 __cil_tmp147 = *mem_433;
14540#line 2795
14541 __cil_tmp148 = (unsigned int )__cil_tmp147;
14542#line 2795
14543 __cil_tmp149 = __cil_tmp148 + 36;
14544#line 2795
14545 mem_434 = (PVPB *)__cil_tmp149;
14546#line 2795
14547 __cil_tmp150 = *mem_434;
14548#line 2795
14549 __cil_tmp151 = (unsigned int )__cil_tmp150;
14550#line 2795
14551 __cil_tmp152 = __cil_tmp151 + 4;
14552#line 2795
14553 mem_435 = (USHORT *)__cil_tmp152;
14554#line 2795
14555 __cil_tmp153 = *mem_435;
14556#line 2795
14557 __cil_tmp154 = (int )__cil_tmp153;
14558#line 2795
14559 if (__cil_tmp154 & 1) {
14560#line 2797
14561 __cil_tmp155 = (unsigned int )DisketteExtension;
14562#line 2797
14563 __cil_tmp156 = __cil_tmp155 + 28;
14564#line 2797
14565 mem_436 = (PDEVICE_OBJECT *)__cil_tmp156;
14566#line 2797
14567 __cil_tmp157 = *mem_436;
14568#line 2797
14569 __cil_tmp158 = (unsigned int )__cil_tmp157;
14570#line 2797
14571 __cil_tmp159 = __cil_tmp158 + 28;
14572#line 2797
14573 __cil_tmp160 = (unsigned int )DisketteExtension;
14574#line 2797
14575 __cil_tmp161 = __cil_tmp160 + 28;
14576#line 2797
14577 mem_437 = (PDEVICE_OBJECT *)__cil_tmp161;
14578#line 2797
14579 __cil_tmp162 = *mem_437;
14580#line 2797
14581 __cil_tmp163 = (unsigned int )__cil_tmp162;
14582#line 2797
14583 __cil_tmp164 = __cil_tmp163 + 28;
14584#line 2797
14585 mem_438 = (ULONG *)__cil_tmp164;
14586#line 2797
14587 __cil_tmp165 = *mem_438;
14588#line 2797
14589 mem_439 = (ULONG *)__cil_tmp159;
14590#line 2797
14591 *mem_439 = __cil_tmp165 & 4294967293UL;
14592 } else {
14593
14594 }
14595 }
14596#line 2801
14597 return (-1073741805L);
14598 } else {
14599
14600 }
14601 }
14602 } else {
14603
14604 }
14605 }
14606 {
14607#line 2815
14608 __cil_tmp166 = 0 * 1U;
14609#line 2815
14610 __cil_tmp167 = 112 + __cil_tmp166;
14611#line 2815
14612 __cil_tmp168 = (unsigned int )DisketteExtension;
14613#line 2815
14614 __cil_tmp169 = __cil_tmp168 + __cil_tmp167;
14615#line 2815
14616 mem_440 = (UCHAR *)__cil_tmp169;
14617#line 2815
14618 *mem_440 = (unsigned char)16;
14619#line 2816
14620 __cil_tmp170 = 1 * 1U;
14621#line 2816
14622 __cil_tmp171 = 112 + __cil_tmp170;
14623#line 2816
14624 __cil_tmp172 = (unsigned int )DisketteExtension;
14625#line 2816
14626 __cil_tmp173 = __cil_tmp172 + __cil_tmp171;
14627#line 2816
14628 __cil_tmp174 = (unsigned int )DisketteExtension;
14629#line 2816
14630 __cil_tmp175 = __cil_tmp174 + 248;
14631#line 2816
14632 mem_441 = (UCHAR *)__cil_tmp173;
14633#line 2816
14634 mem_442 = (UCHAR *)__cil_tmp175;
14635#line 2816
14636 *mem_441 = *mem_442;
14637#line 2817
14638 __cil_tmp176 = 2 * 1U;
14639#line 2817
14640 __cil_tmp177 = 112 + __cil_tmp176;
14641#line 2817
14642 __cil_tmp178 = (unsigned int )DisketteExtension;
14643#line 2817
14644 __cil_tmp179 = __cil_tmp178 + __cil_tmp177;
14645#line 2817
14646 mem_443 = (UCHAR *)__cil_tmp179;
14647#line 2817
14648 *mem_443 = (unsigned char)1;
14649#line 2819
14650 __cil_tmp180 = 0 * 1U;
14651#line 2819
14652 __cil_tmp181 = 112 + __cil_tmp180;
14653#line 2819
14654 __cil_tmp182 = (unsigned int )DisketteExtension;
14655#line 2819
14656 __cil_tmp183 = __cil_tmp182 + __cil_tmp181;
14657#line 2819
14658 __cil_tmp184 = (UCHAR *)__cil_tmp183;
14659#line 2819
14660 __cil_tmp185 = 0 * 1U;
14661#line 2819
14662 __cil_tmp186 = 112 + __cil_tmp185;
14663#line 2819
14664 __cil_tmp187 = (unsigned int )DisketteExtension;
14665#line 2819
14666 __cil_tmp188 = __cil_tmp187 + __cil_tmp186;
14667#line 2819
14668 __cil_tmp189 = (UCHAR *)__cil_tmp188;
14669#line 2819
14670 __cil_tmp190 = (void *)0;
14671#line 2819
14672 __cil_tmp191 = (struct _MDL *)__cil_tmp190;
14673#line 2819
14674 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp184, __cil_tmp189,
14675 __cil_tmp191, 0UL, 0UL);
14676 }
14677 {
14678#line 2826
14679 __cil_tmp192 = ntStatus >= 0L;
14680#line 2826
14681 if (! __cil_tmp192) {
14682 {
14683#line 2829
14684 while (1) {
14685 while_78_continue: ;
14686 goto while_78_break;
14687 }
14688 while_78_break: ;
14689 }
14690#line 2831
14691 return (ntStatus);
14692 } else {
14693 {
14694#line 2835
14695 __cil_tmp193 = 0 * 1U;
14696#line 2835
14697 __cil_tmp194 = 112 + __cil_tmp193;
14698#line 2835
14699 __cil_tmp195 = (unsigned int )DisketteExtension;
14700#line 2835
14701 __cil_tmp196 = __cil_tmp195 + __cil_tmp194;
14702#line 2835
14703 mem_444 = (UCHAR *)__cil_tmp196;
14704#line 2835
14705 __cil_tmp197 = *mem_444;
14706#line 2835
14707 __cil_tmp198 = (int )__cil_tmp197;
14708#line 2835
14709 __cil_tmp199 = __cil_tmp198 & 32;
14710#line 2835
14711 if (! __cil_tmp199) {
14712 goto _L;
14713 } else {
14714 {
14715#line 2835
14716 __cil_tmp200 = 1 * 1U;
14717#line 2835
14718 __cil_tmp201 = 112 + __cil_tmp200;
14719#line 2835
14720 __cil_tmp202 = (unsigned int )DisketteExtension;
14721#line 2835
14722 __cil_tmp203 = __cil_tmp202 + __cil_tmp201;
14723#line 2835
14724 mem_445 = (UCHAR *)__cil_tmp203;
14725#line 2835
14726 __cil_tmp204 = *mem_445;
14727#line 2835
14728 __cil_tmp205 = (int )__cil_tmp204;
14729#line 2835
14730 if (__cil_tmp205 != 1) {
14731 _L:
14732 {
14733#line 2841
14734 while (1) {
14735 while_79_continue: ;
14736 goto while_79_break;
14737 }
14738 while_79_break: ;
14739 }
14740#line 2843
14741 __cil_tmp206 = (unsigned int )DisketteExtension;
14742#line 2843
14743 __cil_tmp207 = __cil_tmp206 + 104;
14744#line 2843
14745 mem_446 = (BOOLEAN *)__cil_tmp207;
14746#line 2843
14747 *mem_446 = (unsigned char)1;
14748#line 2845
14749 return (-1073741464L);
14750 } else {
14751
14752 }
14753 }
14754 }
14755 }
14756 }
14757 }
14758 {
14759#line 2853
14760 __cil_tmp208 = 0 * 1U;
14761#line 2853
14762 __cil_tmp209 = 112 + __cil_tmp208;
14763#line 2853
14764 __cil_tmp210 = (unsigned int )DisketteExtension;
14765#line 2853
14766 __cil_tmp211 = __cil_tmp210 + __cil_tmp209;
14767#line 2853
14768 mem_447 = (UCHAR *)__cil_tmp211;
14769#line 2853
14770 *mem_447 = (unsigned char)16;
14771#line 2854
14772 __cil_tmp212 = 1 * 1U;
14773#line 2854
14774 __cil_tmp213 = 112 + __cil_tmp212;
14775#line 2854
14776 __cil_tmp214 = (unsigned int )DisketteExtension;
14777#line 2854
14778 __cil_tmp215 = __cil_tmp214 + __cil_tmp213;
14779#line 2854
14780 __cil_tmp216 = (unsigned int )DisketteExtension;
14781#line 2854
14782 __cil_tmp217 = __cil_tmp216 + 248;
14783#line 2854
14784 mem_448 = (UCHAR *)__cil_tmp215;
14785#line 2854
14786 mem_449 = (UCHAR *)__cil_tmp217;
14787#line 2854
14788 *mem_448 = *mem_449;
14789#line 2855
14790 __cil_tmp218 = 2 * 1U;
14791#line 2855
14792 __cil_tmp219 = 112 + __cil_tmp218;
14793#line 2855
14794 __cil_tmp220 = (unsigned int )DisketteExtension;
14795#line 2855
14796 __cil_tmp221 = __cil_tmp220 + __cil_tmp219;
14797#line 2855
14798 mem_450 = (UCHAR *)__cil_tmp221;
14799#line 2855
14800 *mem_450 = (unsigned char)0;
14801#line 2862
14802 __cil_tmp222 = & delay;
14803#line 2862
14804 mem_451 = (ULONG *)__cil_tmp222;
14805#line 2862
14806 *mem_451 = 4294966396UL;
14807#line 2863
14808 __cil_tmp223 = 0 + 4;
14809#line 2863
14810 __cil_tmp224 = (unsigned int )(& delay) + __cil_tmp223;
14811#line 2863
14812 mem_452 = (LONG *)__cil_tmp224;
14813#line 2863
14814 *mem_452 = -1L;
14815#line 2864
14816 KeDelayExecutionThread((char)0, (unsigned char)0, & delay);
14817#line 2865
14818 __cil_tmp225 = 0 * 1U;
14819#line 2865
14820 __cil_tmp226 = 112 + __cil_tmp225;
14821#line 2865
14822 __cil_tmp227 = (unsigned int )DisketteExtension;
14823#line 2865
14824 __cil_tmp228 = __cil_tmp227 + __cil_tmp226;
14825#line 2865
14826 __cil_tmp229 = (UCHAR *)__cil_tmp228;
14827#line 2865
14828 __cil_tmp230 = 0 * 1U;
14829#line 2865
14830 __cil_tmp231 = 112 + __cil_tmp230;
14831#line 2865
14832 __cil_tmp232 = (unsigned int )DisketteExtension;
14833#line 2865
14834 __cil_tmp233 = __cil_tmp232 + __cil_tmp231;
14835#line 2865
14836 __cil_tmp234 = (UCHAR *)__cil_tmp233;
14837#line 2865
14838 __cil_tmp235 = (void *)0;
14839#line 2865
14840 __cil_tmp236 = (struct _MDL *)__cil_tmp235;
14841#line 2865
14842 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp229, __cil_tmp234,
14843 __cil_tmp236, 0UL, 0UL);
14844#line 2875
14845 __cil_tmp237 = & delay;
14846#line 2875
14847 mem_453 = (ULONG *)__cil_tmp237;
14848#line 2875
14849 *mem_453 = 4294967291UL;
14850#line 2876
14851 __cil_tmp238 = 0 + 4;
14852#line 2876
14853 __cil_tmp239 = (unsigned int )(& delay) + __cil_tmp238;
14854#line 2876
14855 mem_454 = (LONG *)__cil_tmp239;
14856#line 2876
14857 *mem_454 = -1L;
14858#line 2877
14859 KeDelayExecutionThread((char)0, (unsigned char)0, & delay);
14860 }
14861 {
14862#line 2879
14863 __cil_tmp240 = ntStatus >= 0L;
14864#line 2879
14865 if (! __cil_tmp240) {
14866 {
14867#line 2882
14868 while (1) {
14869 while_80_continue: ;
14870 goto while_80_break;
14871 }
14872 while_80_break: ;
14873 }
14874#line 2884
14875 return (ntStatus);
14876 } else {
14877 {
14878#line 2888
14879 __cil_tmp241 = 0 * 1U;
14880#line 2888
14881 __cil_tmp242 = 112 + __cil_tmp241;
14882#line 2888
14883 __cil_tmp243 = (unsigned int )DisketteExtension;
14884#line 2888
14885 __cil_tmp244 = __cil_tmp243 + __cil_tmp242;
14886#line 2888
14887 mem_455 = (UCHAR *)__cil_tmp244;
14888#line 2888
14889 __cil_tmp245 = *mem_455;
14890#line 2888
14891 __cil_tmp246 = (int )__cil_tmp245;
14892#line 2888
14893 __cil_tmp247 = __cil_tmp246 & 32;
14894#line 2888
14895 if (! __cil_tmp247) {
14896 goto _L___0;
14897 } else {
14898 {
14899#line 2888
14900 __cil_tmp248 = 1 * 1U;
14901#line 2888
14902 __cil_tmp249 = 112 + __cil_tmp248;
14903#line 2888
14904 __cil_tmp250 = (unsigned int )DisketteExtension;
14905#line 2888
14906 __cil_tmp251 = __cil_tmp250 + __cil_tmp249;
14907#line 2888
14908 mem_456 = (UCHAR *)__cil_tmp251;
14909#line 2888
14910 __cil_tmp252 = *mem_456;
14911#line 2888
14912 __cil_tmp253 = (int )__cil_tmp252;
14913#line 2888
14914 if (__cil_tmp253 != 0) {
14915 _L___0:
14916 {
14917#line 2894
14918 while (1) {
14919 while_81_continue: ;
14920 goto while_81_break;
14921 }
14922 while_81_break: ;
14923 }
14924#line 2896
14925 __cil_tmp254 = (unsigned int )DisketteExtension;
14926#line 2896
14927 __cil_tmp255 = __cil_tmp254 + 104;
14928#line 2896
14929 mem_457 = (BOOLEAN *)__cil_tmp255;
14930#line 2896
14931 *mem_457 = (unsigned char)1;
14932#line 2898
14933 return (-1073741464L);
14934 } else {
14935
14936 }
14937 }
14938 }
14939 }
14940 }
14941 }
14942 {
14943#line 2903
14944 __cil_tmp256 = (KUSER_SHARED_DATA * const )4292804608U;
14945#line 2903
14946 __cil_tmp257 = (unsigned int )__cil_tmp256;
14947#line 2903
14948 __cil_tmp258 = __cil_tmp257 + 732;
14949#line 2903
14950 mem_458 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp258;
14951#line 2903
14952 __cil_tmp259 = *mem_458;
14953#line 2903
14954 __cil_tmp260 = (int )__cil_tmp259;
14955#line 2903
14956 if (__cil_tmp260 == 1) {
14957 {
14958#line 2909
14959 __cil_tmp261 = 0 * 1U;
14960#line 2909
14961 __cil_tmp262 = 112 + __cil_tmp261;
14962#line 2909
14963 __cil_tmp263 = (unsigned int )DisketteExtension;
14964#line 2909
14965 __cil_tmp264 = __cil_tmp263 + __cil_tmp262;
14966#line 2909
14967 mem_459 = (UCHAR *)__cil_tmp264;
14968#line 2909
14969 *mem_459 = (unsigned char)14;
14970#line 2910
14971 __cil_tmp265 = 1 * 1U;
14972#line 2910
14973 __cil_tmp266 = 112 + __cil_tmp265;
14974#line 2910
14975 __cil_tmp267 = (unsigned int )DisketteExtension;
14976#line 2910
14977 __cil_tmp268 = __cil_tmp267 + __cil_tmp266;
14978#line 2910
14979 __cil_tmp269 = (unsigned int )DisketteExtension;
14980#line 2910
14981 __cil_tmp270 = __cil_tmp269 + 248;
14982#line 2910
14983 mem_460 = (UCHAR *)__cil_tmp268;
14984#line 2910
14985 mem_461 = (UCHAR *)__cil_tmp270;
14986#line 2910
14987 *mem_460 = *mem_461;
14988#line 2912
14989 __cil_tmp271 = 0 * 1U;
14990#line 2912
14991 __cil_tmp272 = 112 + __cil_tmp271;
14992#line 2912
14993 __cil_tmp273 = (unsigned int )DisketteExtension;
14994#line 2912
14995 __cil_tmp274 = __cil_tmp273 + __cil_tmp272;
14996#line 2912
14997 __cil_tmp275 = (UCHAR *)__cil_tmp274;
14998#line 2912
14999 __cil_tmp276 = 0 * 1U;
15000#line 2912
15001 __cil_tmp277 = 112 + __cil_tmp276;
15002#line 2912
15003 __cil_tmp278 = (unsigned int )DisketteExtension;
15004#line 2912
15005 __cil_tmp279 = __cil_tmp278 + __cil_tmp277;
15006#line 2912
15007 __cil_tmp280 = (UCHAR *)__cil_tmp279;
15008#line 2912
15009 __cil_tmp281 = (void *)0;
15010#line 2912
15011 __cil_tmp282 = (struct _MDL *)__cil_tmp281;
15012#line 2912
15013 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp275, __cil_tmp280,
15014 __cil_tmp282, 0UL, 0UL);
15015 }
15016 {
15017#line 2919
15018 __cil_tmp283 = ntStatus >= 0L;
15019#line 2919
15020 if (! __cil_tmp283) {
15021 {
15022#line 2924
15023 while (1) {
15024 while_82_continue: ;
15025 goto while_82_break;
15026 }
15027 while_82_break: ;
15028 }
15029#line 2926
15030 return (ntStatus);
15031 } else {
15032
15033 }
15034 }
15035 {
15036#line 2929
15037 __cil_tmp284 = 0 * 1U;
15038#line 2929
15039 __cil_tmp285 = 112 + __cil_tmp284;
15040#line 2929
15041 __cil_tmp286 = (unsigned int )DisketteExtension;
15042#line 2929
15043 __cil_tmp287 = __cil_tmp286 + __cil_tmp285;
15044#line 2929
15045 mem_462 = (UCHAR *)__cil_tmp287;
15046#line 2929
15047 __cil_tmp288 = *mem_462;
15048#line 2929
15049 __cil_tmp289 = (int )__cil_tmp288;
15050#line 2929
15051 if (__cil_tmp289 & 32) {
15052#line 2931
15053 driveStatus = (unsigned char)127;
15054 } else {
15055#line 2935
15056 driveStatus = (unsigned char)128;
15057 }
15058 }
15059 } else {
15060 {
15061#line 2939
15062 __cil_tmp290 = (unsigned int )DisketteExtension;
15063#line 2939
15064 __cil_tmp291 = __cil_tmp290 + 8;
15065#line 2939
15066 mem_463 = (PDEVICE_OBJECT *)__cil_tmp291;
15067#line 2939
15068 __cil_tmp292 = *mem_463;
15069#line 2939
15070 __cil_tmp293 = 776 << 2;
15071#line 2939
15072 __cil_tmp294 = 7 << 16;
15073#line 2939
15074 __cil_tmp295 = __cil_tmp294 | __cil_tmp293;
15075#line 2939
15076 __cil_tmp296 = __cil_tmp295 | 3;
15077#line 2939
15078 __cil_tmp297 = (unsigned long )__cil_tmp296;
15079#line 2939
15080 __cil_tmp298 = (void *)(& fdcDiskChangeParms);
15081#line 2939
15082 ntStatus = FlFdcDeviceIo(__cil_tmp292, __cil_tmp297, __cil_tmp298);
15083#line 2943
15084 __cil_tmp299 = & fdcDiskChangeParms;
15085#line 2943
15086 mem_464 = (UCHAR *)__cil_tmp299;
15087#line 2943
15088 driveStatus = *mem_464;
15089 }
15090 {
15091#line 2945
15092 __cil_tmp300 = ntStatus >= 0L;
15093#line 2945
15094 if (! __cil_tmp300) {
15095#line 2946
15096 return (ntStatus);
15097 } else {
15098
15099 }
15100 }
15101 }
15102 }
15103 {
15104#line 2950
15105 __cil_tmp301 = (int )driveStatus;
15106#line 2950
15107 if (__cil_tmp301 & 128) {
15108 {
15109#line 2960
15110 while (1) {
15111 while_83_continue: ;
15112 goto while_83_break;
15113 }
15114 while_83_break: ;
15115 }
15116 {
15117#line 2967
15118 __cil_tmp302 = (unsigned int )DisketteExtension;
15119#line 2967
15120 __cil_tmp303 = __cil_tmp302 + 28;
15121#line 2967
15122 mem_465 = (PDEVICE_OBJECT *)__cil_tmp303;
15123#line 2967
15124 __cil_tmp304 = *mem_465;
15125#line 2967
15126 __cil_tmp305 = (unsigned int )__cil_tmp304;
15127#line 2967
15128 __cil_tmp306 = __cil_tmp305 + 36;
15129#line 2967
15130 mem_466 = (PVPB *)__cil_tmp306;
15131#line 2967
15132 __cil_tmp307 = *mem_466;
15133#line 2967
15134 __cil_tmp308 = (unsigned int )__cil_tmp307;
15135#line 2967
15136 __cil_tmp309 = __cil_tmp308 + 4;
15137#line 2967
15138 mem_467 = (USHORT *)__cil_tmp309;
15139#line 2967
15140 __cil_tmp310 = *mem_467;
15141#line 2967
15142 __cil_tmp311 = (int )__cil_tmp310;
15143#line 2967
15144 if (__cil_tmp311 & 1) {
15145#line 2969
15146 __cil_tmp312 = (unsigned int )DisketteExtension;
15147#line 2969
15148 __cil_tmp313 = __cil_tmp312 + 28;
15149#line 2969
15150 mem_468 = (PDEVICE_OBJECT *)__cil_tmp313;
15151#line 2969
15152 __cil_tmp314 = *mem_468;
15153#line 2969
15154 __cil_tmp315 = (unsigned int )__cil_tmp314;
15155#line 2969
15156 __cil_tmp316 = __cil_tmp315 + 28;
15157#line 2969
15158 __cil_tmp317 = (unsigned int )DisketteExtension;
15159#line 2969
15160 __cil_tmp318 = __cil_tmp317 + 28;
15161#line 2969
15162 mem_469 = (PDEVICE_OBJECT *)__cil_tmp318;
15163#line 2969
15164 __cil_tmp319 = *mem_469;
15165#line 2969
15166 __cil_tmp320 = (unsigned int )__cil_tmp319;
15167#line 2969
15168 __cil_tmp321 = __cil_tmp320 + 28;
15169#line 2969
15170 mem_470 = (ULONG *)__cil_tmp321;
15171#line 2969
15172 __cil_tmp322 = *mem_470;
15173#line 2969
15174 mem_471 = (ULONG *)__cil_tmp316;
15175#line 2969
15176 *mem_471 = __cil_tmp322 & 4294967293UL;
15177 } else {
15178
15179 }
15180 }
15181#line 2973
15182 return (-1073741805L);
15183 } else {
15184
15185 }
15186 }
15187 } else {
15188
15189 }
15190 }
15191 {
15192#line 2982
15193 __cil_tmp323 = (int )IgnoreChange;
15194#line 2982
15195 if (__cil_tmp323 == 0) {
15196 {
15197#line 2984
15198 __cil_tmp324 = (unsigned int )DisketteExtension;
15199#line 2984
15200 __cil_tmp325 = __cil_tmp324 + 28;
15201#line 2984
15202 mem_472 = (PDEVICE_OBJECT *)__cil_tmp325;
15203#line 2984
15204 __cil_tmp326 = *mem_472;
15205#line 2984
15206 __cil_tmp327 = (unsigned int )__cil_tmp326;
15207#line 2984
15208 __cil_tmp328 = __cil_tmp327 + 36;
15209#line 2984
15210 mem_473 = (PVPB *)__cil_tmp328;
15211#line 2984
15212 __cil_tmp329 = *mem_473;
15213#line 2984
15214 __cil_tmp330 = (unsigned int )__cil_tmp329;
15215#line 2984
15216 __cil_tmp331 = __cil_tmp330 + 4;
15217#line 2984
15218 mem_474 = (USHORT *)__cil_tmp331;
15219#line 2984
15220 __cil_tmp332 = *mem_474;
15221#line 2984
15222 __cil_tmp333 = (int )__cil_tmp332;
15223#line 2984
15224 if (__cil_tmp333 & 1) {
15225 {
15226#line 2994
15227 while (1) {
15228 while_84_continue: ;
15229 goto while_84_break;
15230 }
15231 while_84_break: ;
15232 }
15233#line 2996
15234 return (-2147483626L);
15235 } else {
15236#line 3000
15237 return (-1073741435L);
15238 }
15239 }
15240 } else {
15241
15242 }
15243 }
15244 } else {
15245 goto _L___2;
15246 }
15247 }
15248 } else {
15249 _L___2:
15250 {
15251#line 3004
15252 __cil_tmp334 = (KUSER_SHARED_DATA * const )4292804608U;
15253#line 3004
15254 __cil_tmp335 = (unsigned int )__cil_tmp334;
15255#line 3004
15256 __cil_tmp336 = __cil_tmp335 + 732;
15257#line 3004
15258 mem_475 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp336;
15259#line 3004
15260 __cil_tmp337 = *mem_475;
15261#line 3004
15262 __cil_tmp338 = (int )__cil_tmp337;
15263#line 3004
15264 if (__cil_tmp338 == 1) {
15265 {
15266#line 3006
15267 FlHdbit(DisketteExtension);
15268 }
15269 } else {
15270
15271 }
15272 }
15273 }
15274 }
15275 }
15276 }
15277#line 3011
15278 if (SetUpMedia) {
15279 {
15280#line 3013
15281 __cil_tmp339 = (unsigned int )DisketteExtension;
15282#line 3013
15283 __cil_tmp340 = __cil_tmp339 + 184;
15284#line 3013
15285 mem_476 = (MEDIA_TYPE *)__cil_tmp340;
15286#line 3013
15287 __cil_tmp341 = *mem_476;
15288#line 3013
15289 __cil_tmp342 = (int )__cil_tmp341;
15290#line 3013
15291 if (__cil_tmp342 == -1) {
15292 {
15293#line 3015
15294 ntStatus = FlDetermineMediaType(DisketteExtension);
15295 }
15296 } else {
15297 {
15298#line 3019
15299 __cil_tmp343 = (unsigned int )DisketteExtension;
15300#line 3019
15301 __cil_tmp344 = __cil_tmp343 + 184;
15302#line 3019
15303 mem_477 = (MEDIA_TYPE *)__cil_tmp344;
15304#line 3019
15305 __cil_tmp345 = *mem_477;
15306#line 3019
15307 __cil_tmp346 = (int )__cil_tmp345;
15308#line 3019
15309 if (__cil_tmp346 == 0) {
15310 {
15311#line 3029
15312 while (1) {
15313 while_85_continue: ;
15314 goto while_85_break;
15315 }
15316 while_85_break: ;
15317 }
15318#line 3030
15319 return (-1073741804L);
15320 } else {
15321 {
15322#line 3034
15323 __cil_tmp347 = (unsigned int )DisketteExtension;
15324#line 3034
15325 __cil_tmp348 = __cil_tmp347 + 140;
15326#line 3034
15327 mem_478 = (DRIVE_MEDIA_TYPE *)__cil_tmp348;
15328#line 3034
15329 __cil_tmp349 = *mem_478;
15330#line 3034
15331 __cil_tmp350 = (int )__cil_tmp349;
15332#line 3034
15333 __cil_tmp351 = (unsigned int )DisketteExtension;
15334#line 3034
15335 __cil_tmp352 = __cil_tmp351 + 216;
15336#line 3034
15337 mem_479 = (DRIVE_MEDIA_TYPE *)__cil_tmp352;
15338#line 3034
15339 __cil_tmp353 = *mem_479;
15340#line 3034
15341 __cil_tmp354 = (int )__cil_tmp353;
15342#line 3034
15343 if (__cil_tmp354 != __cil_tmp350) {
15344 {
15345#line 3042
15346 ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
15347 }
15348 {
15349#line 3043
15350 __cil_tmp355 = ntStatus >= 0L;
15351#line 3043
15352 if (! __cil_tmp355) {
15353 {
15354#line 3050
15355 while (1) {
15356 while_86_continue: ;
15357 goto while_86_break;
15358 }
15359 while_86_break: ;
15360 }
15361 } else {
15362
15363 }
15364 }
15365 } else {
15366
15367 }
15368 }
15369 }
15370 }
15371 }
15372 }
15373 } else {
15374
15375 }
15376#line 3063
15377 if (WriteOperation) {
15378#line 3063
15379 if (ntStatus >= 0L) {
15380 {
15381#line 3065
15382 __cil_tmp356 = 0 * 1U;
15383#line 3065
15384 __cil_tmp357 = 112 + __cil_tmp356;
15385#line 3065
15386 __cil_tmp358 = (unsigned int )DisketteExtension;
15387#line 3065
15388 __cil_tmp359 = __cil_tmp358 + __cil_tmp357;
15389#line 3065
15390 mem_480 = (UCHAR *)__cil_tmp359;
15391#line 3065
15392 *mem_480 = (unsigned char)14;
15393#line 3066
15394 __cil_tmp360 = 1 * 1U;
15395#line 3066
15396 __cil_tmp361 = 112 + __cil_tmp360;
15397#line 3066
15398 __cil_tmp362 = (unsigned int )DisketteExtension;
15399#line 3066
15400 __cil_tmp363 = __cil_tmp362 + __cil_tmp361;
15401#line 3066
15402 __cil_tmp364 = (unsigned int )DisketteExtension;
15403#line 3066
15404 __cil_tmp365 = __cil_tmp364 + 248;
15405#line 3066
15406 mem_481 = (UCHAR *)__cil_tmp363;
15407#line 3066
15408 mem_482 = (UCHAR *)__cil_tmp365;
15409#line 3066
15410 *mem_481 = *mem_482;
15411#line 3068
15412 __cil_tmp366 = 0 * 1U;
15413#line 3068
15414 __cil_tmp367 = 112 + __cil_tmp366;
15415#line 3068
15416 __cil_tmp368 = (unsigned int )DisketteExtension;
15417#line 3068
15418 __cil_tmp369 = __cil_tmp368 + __cil_tmp367;
15419#line 3068
15420 __cil_tmp370 = (UCHAR *)__cil_tmp369;
15421#line 3068
15422 __cil_tmp371 = 0 * 1U;
15423#line 3068
15424 __cil_tmp372 = 112 + __cil_tmp371;
15425#line 3068
15426 __cil_tmp373 = (unsigned int )DisketteExtension;
15427#line 3068
15428 __cil_tmp374 = __cil_tmp373 + __cil_tmp372;
15429#line 3068
15430 __cil_tmp375 = (UCHAR *)__cil_tmp374;
15431#line 3068
15432 __cil_tmp376 = (void *)0;
15433#line 3068
15434 __cil_tmp377 = (struct _MDL *)__cil_tmp376;
15435#line 3068
15436 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp370, __cil_tmp375, __cil_tmp377,
15437 0UL, 0UL);
15438 }
15439 {
15440#line 3075
15441 __cil_tmp378 = ntStatus >= 0L;
15442#line 3075
15443 if (! __cil_tmp378) {
15444 {
15445#line 3080
15446 while (1) {
15447 while_87_continue: ;
15448 goto while_87_break;
15449 }
15450 while_87_break: ;
15451 }
15452#line 3082
15453 return (ntStatus);
15454 } else {
15455
15456 }
15457 }
15458 {
15459#line 3085
15460 __cil_tmp379 = (KUSER_SHARED_DATA * const )4292804608U;
15461#line 3085
15462 __cil_tmp380 = (unsigned int )__cil_tmp379;
15463#line 3085
15464 __cil_tmp381 = __cil_tmp380 + 732;
15465#line 3085
15466 mem_483 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp381;
15467#line 3085
15468 __cil_tmp382 = *mem_483;
15469#line 3085
15470 __cil_tmp383 = (int )__cil_tmp382;
15471#line 3085
15472 if (__cil_tmp383 == 1) {
15473 {
15474#line 3089
15475 __cil_tmp384 = 0 * 1U;
15476#line 3089
15477 __cil_tmp385 = 112 + __cil_tmp384;
15478#line 3089
15479 __cil_tmp386 = (unsigned int )DisketteExtension;
15480#line 3089
15481 __cil_tmp387 = __cil_tmp386 + __cil_tmp385;
15482#line 3089
15483 mem_484 = (UCHAR *)__cil_tmp387;
15484#line 3089
15485 __cil_tmp388 = *mem_484;
15486#line 3089
15487 __cil_tmp389 = (int )__cil_tmp388;
15488#line 3089
15489 __cil_tmp390 = __cil_tmp389 & 32;
15490#line 3089
15491 if (! __cil_tmp390) {
15492 {
15493#line 3094
15494 while (1) {
15495 while_88_continue: ;
15496 goto while_88_break;
15497 }
15498 while_88_break: ;
15499 }
15500#line 3095
15501 return (-1073741805L);
15502 } else {
15503
15504 }
15505 }
15506 } else {
15507
15508 }
15509 }
15510 {
15511#line 3099
15512 __cil_tmp391 = 0 * 1U;
15513#line 3099
15514 __cil_tmp392 = 112 + __cil_tmp391;
15515#line 3099
15516 __cil_tmp393 = (unsigned int )DisketteExtension;
15517#line 3099
15518 __cil_tmp394 = __cil_tmp393 + __cil_tmp392;
15519#line 3099
15520 mem_485 = (UCHAR *)__cil_tmp394;
15521#line 3099
15522 __cil_tmp395 = *mem_485;
15523#line 3099
15524 __cil_tmp396 = (int )__cil_tmp395;
15525#line 3099
15526 if (__cil_tmp396 & 64) {
15527 {
15528#line 3104
15529 while (1) {
15530 while_89_continue: ;
15531 goto while_89_break;
15532 }
15533 while_89_break: ;
15534 }
15535#line 3105
15536 return (-1073741662L);
15537 } else {
15538
15539 }
15540 }
15541 } else {
15542
15543 }
15544 } else {
15545
15546 }
15547#line 3109
15548 return (ntStatus);
15549}
15550}
15551#line 3112 "floppy.c"
15552NTSTATUS FlDatarateSpecifyConfigure(PDISKETTE_EXTENSION DisketteExtension )
15553{ NTSTATUS ntStatus ;
15554 unsigned int __cil_tmp3 ;
15555 unsigned int __cil_tmp4 ;
15556 unsigned int __cil_tmp5 ;
15557 unsigned int __cil_tmp6 ;
15558 unsigned int __cil_tmp7 ;
15559 unsigned int __cil_tmp8 ;
15560 unsigned int __cil_tmp9 ;
15561 unsigned int __cil_tmp10 ;
15562 unsigned int __cil_tmp11 ;
15563 unsigned int __cil_tmp12 ;
15564 unsigned int __cil_tmp13 ;
15565 unsigned int __cil_tmp14 ;
15566 unsigned int __cil_tmp15 ;
15567 unsigned int __cil_tmp16 ;
15568 unsigned int __cil_tmp17 ;
15569 unsigned int __cil_tmp18 ;
15570 unsigned int __cil_tmp19 ;
15571 unsigned int __cil_tmp20 ;
15572 unsigned int __cil_tmp21 ;
15573 unsigned int __cil_tmp22 ;
15574 unsigned int __cil_tmp23 ;
15575 unsigned int __cil_tmp24 ;
15576 UCHAR __cil_tmp25 ;
15577 int __cil_tmp26 ;
15578 int __cil_tmp27 ;
15579 unsigned int __cil_tmp28 ;
15580 unsigned int __cil_tmp29 ;
15581 unsigned int __cil_tmp30 ;
15582 UCHAR __cil_tmp31 ;
15583 unsigned int __cil_tmp32 ;
15584 unsigned int __cil_tmp33 ;
15585 unsigned int __cil_tmp34 ;
15586 unsigned int __cil_tmp35 ;
15587 unsigned int __cil_tmp36 ;
15588 unsigned int __cil_tmp37 ;
15589 unsigned int __cil_tmp38 ;
15590 unsigned int __cil_tmp39 ;
15591 UCHAR __cil_tmp40 ;
15592 int __cil_tmp41 ;
15593 int __cil_tmp42 ;
15594 unsigned int __cil_tmp43 ;
15595 unsigned int __cil_tmp44 ;
15596 unsigned int __cil_tmp45 ;
15597 unsigned int __cil_tmp46 ;
15598 unsigned int __cil_tmp47 ;
15599 unsigned int __cil_tmp48 ;
15600 unsigned int __cil_tmp49 ;
15601 unsigned int __cil_tmp50 ;
15602 UCHAR *__cil_tmp51 ;
15603 unsigned int __cil_tmp52 ;
15604 unsigned int __cil_tmp53 ;
15605 unsigned int __cil_tmp54 ;
15606 unsigned int __cil_tmp55 ;
15607 UCHAR *__cil_tmp56 ;
15608 void *__cil_tmp57 ;
15609 struct _MDL *__cil_tmp58 ;
15610 unsigned int __cil_tmp59 ;
15611 unsigned int __cil_tmp60 ;
15612 unsigned int __cil_tmp61 ;
15613 unsigned int __cil_tmp62 ;
15614 unsigned int __cil_tmp63 ;
15615 unsigned int __cil_tmp64 ;
15616 unsigned int __cil_tmp65 ;
15617 unsigned int __cil_tmp66 ;
15618 unsigned int __cil_tmp67 ;
15619 unsigned int __cil_tmp68 ;
15620 unsigned int __cil_tmp69 ;
15621 unsigned int __cil_tmp70 ;
15622 unsigned int __cil_tmp71 ;
15623 unsigned int __cil_tmp72 ;
15624 unsigned int __cil_tmp73 ;
15625 unsigned int __cil_tmp74 ;
15626 unsigned int __cil_tmp75 ;
15627 unsigned int __cil_tmp76 ;
15628 unsigned int __cil_tmp77 ;
15629 unsigned int __cil_tmp78 ;
15630 unsigned int __cil_tmp79 ;
15631 unsigned int __cil_tmp80 ;
15632 unsigned int __cil_tmp81 ;
15633 unsigned int __cil_tmp82 ;
15634 UCHAR *__cil_tmp83 ;
15635 unsigned int __cil_tmp84 ;
15636 unsigned int __cil_tmp85 ;
15637 unsigned int __cil_tmp86 ;
15638 unsigned int __cil_tmp87 ;
15639 UCHAR *__cil_tmp88 ;
15640 void *__cil_tmp89 ;
15641 struct _MDL *__cil_tmp90 ;
15642 unsigned int __cil_tmp91 ;
15643 unsigned int __cil_tmp92 ;
15644 PDEVICE_OBJECT __cil_tmp93 ;
15645 int __cil_tmp94 ;
15646 int __cil_tmp95 ;
15647 int __cil_tmp96 ;
15648 int __cil_tmp97 ;
15649 unsigned long __cil_tmp98 ;
15650 unsigned int __cil_tmp99 ;
15651 unsigned int __cil_tmp100 ;
15652 unsigned int __cil_tmp101 ;
15653 UCHAR *__cil_tmp102 ;
15654 void *__cil_tmp103 ;
15655 unsigned int __cil_tmp104 ;
15656 unsigned int __cil_tmp105 ;
15657 unsigned int __cil_tmp106 ;
15658 unsigned int __cil_tmp107 ;
15659 unsigned int __cil_tmp108 ;
15660 unsigned int __cil_tmp109 ;
15661 BOOLEAN *mem_110 ;
15662 UCHAR *mem_111 ;
15663 UCHAR *mem_112 ;
15664 UCHAR *mem_113 ;
15665 UCHAR *mem_114 ;
15666 UCHAR *mem_115 ;
15667 UCHAR *mem_116 ;
15668 UCHAR *mem_117 ;
15669 UCHAR *mem_118 ;
15670 UCHAR *mem_119 ;
15671 BOOLEAN *mem_120 ;
15672 UCHAR *mem_121 ;
15673 UCHAR *mem_122 ;
15674 UCHAR *mem_123 ;
15675 UCHAR *mem_124 ;
15676 UCHAR *mem_125 ;
15677 PDEVICE_OBJECT *mem_126 ;
15678 DRIVE_MEDIA_TYPE *mem_127 ;
15679 DRIVE_MEDIA_TYPE *mem_128 ;
15680 DRIVE_MEDIA_TYPE *mem_129 ;
15681
15682 {
15683#line 3142
15684 ntStatus = 0L;
15685 {
15686#line 3148
15687 __cil_tmp3 = (unsigned int )DisketteExtension;
15688#line 3148
15689 __cil_tmp4 = __cil_tmp3 + 365;
15690 {
15691#line 3148
15692 mem_110 = (BOOLEAN *)__cil_tmp4;
15693#line 3148
15694 if (*mem_110) {
15695#line 3150
15696 __cil_tmp5 = 0 * 1U;
15697#line 3150
15698 __cil_tmp6 = 112 + __cil_tmp5;
15699#line 3150
15700 __cil_tmp7 = (unsigned int )DisketteExtension;
15701#line 3150
15702 __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
15703#line 3150
15704 mem_111 = (UCHAR *)__cil_tmp8;
15705#line 3150
15706 *mem_111 = (unsigned char)17;
15707#line 3151
15708 __cil_tmp9 = 1 * 1U;
15709#line 3151
15710 __cil_tmp10 = 112 + __cil_tmp9;
15711#line 3151
15712 __cil_tmp11 = (unsigned int )DisketteExtension;
15713#line 3151
15714 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
15715#line 3151
15716 mem_112 = (UCHAR *)__cil_tmp12;
15717#line 3151
15718 *mem_112 = (unsigned char)0;
15719#line 3153
15720 __cil_tmp13 = 2 * 1U;
15721#line 3153
15722 __cil_tmp14 = 112 + __cil_tmp13;
15723#line 3153
15724 __cil_tmp15 = (unsigned int )DisketteExtension;
15725#line 3153
15726 __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
15727#line 3153
15728 mem_113 = (UCHAR *)__cil_tmp16;
15729#line 3153
15730 *mem_113 = (unsigned char)15;
15731#line 3154
15732 __cil_tmp17 = 2 * 1U;
15733#line 3154
15734 __cil_tmp18 = 112 + __cil_tmp17;
15735#line 3154
15736 __cil_tmp19 = (unsigned int )DisketteExtension;
15737#line 3154
15738 __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
15739#line 3154
15740 __cil_tmp21 = 2 * 1U;
15741#line 3154
15742 __cil_tmp22 = 112 + __cil_tmp21;
15743#line 3154
15744 __cil_tmp23 = (unsigned int )DisketteExtension;
15745#line 3154
15746 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
15747#line 3154
15748 mem_114 = (UCHAR *)__cil_tmp24;
15749#line 3154
15750 __cil_tmp25 = *mem_114;
15751#line 3154
15752 __cil_tmp26 = (int )__cil_tmp25;
15753#line 3154
15754 __cil_tmp27 = __cil_tmp26 + 16;
15755#line 3154
15756 mem_115 = (UCHAR *)__cil_tmp20;
15757#line 3154
15758 *mem_115 = (unsigned char )__cil_tmp27;
15759 {
15760#line 3156
15761 __cil_tmp28 = 308 + 49;
15762#line 3156
15763 __cil_tmp29 = (unsigned int )DisketteExtension;
15764#line 3156
15765 __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
15766#line 3156
15767 mem_116 = (UCHAR *)__cil_tmp30;
15768#line 3156
15769 __cil_tmp31 = *mem_116;
15770#line 3156
15771 if (! __cil_tmp31) {
15772#line 3157
15773 __cil_tmp32 = 2 * 1U;
15774#line 3157
15775 __cil_tmp33 = 112 + __cil_tmp32;
15776#line 3157
15777 __cil_tmp34 = (unsigned int )DisketteExtension;
15778#line 3157
15779 __cil_tmp35 = __cil_tmp34 + __cil_tmp33;
15780#line 3157
15781 __cil_tmp36 = 2 * 1U;
15782#line 3157
15783 __cil_tmp37 = 112 + __cil_tmp36;
15784#line 3157
15785 __cil_tmp38 = (unsigned int )DisketteExtension;
15786#line 3157
15787 __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
15788#line 3157
15789 mem_117 = (UCHAR *)__cil_tmp39;
15790#line 3157
15791 __cil_tmp40 = *mem_117;
15792#line 3157
15793 __cil_tmp41 = (int )__cil_tmp40;
15794#line 3157
15795 __cil_tmp42 = __cil_tmp41 + 64;
15796#line 3157
15797 mem_118 = (UCHAR *)__cil_tmp35;
15798#line 3157
15799 *mem_118 = (unsigned char )__cil_tmp42;
15800 } else {
15801
15802 }
15803 }
15804 {
15805#line 3160
15806 __cil_tmp43 = 3 * 1U;
15807#line 3160
15808 __cil_tmp44 = 112 + __cil_tmp43;
15809#line 3160
15810 __cil_tmp45 = (unsigned int )DisketteExtension;
15811#line 3160
15812 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
15813#line 3160
15814 mem_119 = (UCHAR *)__cil_tmp46;
15815#line 3160
15816 *mem_119 = (unsigned char)0;
15817#line 3162
15818 __cil_tmp47 = 0 * 1U;
15819#line 3162
15820 __cil_tmp48 = 112 + __cil_tmp47;
15821#line 3162
15822 __cil_tmp49 = (unsigned int )DisketteExtension;
15823#line 3162
15824 __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
15825#line 3162
15826 __cil_tmp51 = (UCHAR *)__cil_tmp50;
15827#line 3162
15828 __cil_tmp52 = 0 * 1U;
15829#line 3162
15830 __cil_tmp53 = 112 + __cil_tmp52;
15831#line 3162
15832 __cil_tmp54 = (unsigned int )DisketteExtension;
15833#line 3162
15834 __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
15835#line 3162
15836 __cil_tmp56 = (UCHAR *)__cil_tmp55;
15837#line 3162
15838 __cil_tmp57 = (void *)0;
15839#line 3162
15840 __cil_tmp58 = (struct _MDL *)__cil_tmp57;
15841#line 3162
15842 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp51, __cil_tmp56, __cil_tmp58,
15843 0UL, 0UL);
15844 }
15845#line 3169
15846 if (ntStatus == -1073741661L) {
15847#line 3171
15848 __cil_tmp59 = (unsigned int )DisketteExtension;
15849#line 3171
15850 __cil_tmp60 = __cil_tmp59 + 365;
15851#line 3171
15852 mem_120 = (BOOLEAN *)__cil_tmp60;
15853#line 3171
15854 *mem_120 = (unsigned char)0;
15855#line 3172
15856 ntStatus = 0L;
15857 } else {
15858
15859 }
15860 } else {
15861
15862 }
15863 }
15864 }
15865#line 3181
15866 if (ntStatus >= 0L) {
15867 goto _L;
15868 } else {
15869#line 3181
15870 if (ntStatus == -1073741661L) {
15871 _L:
15872 {
15873#line 3184
15874 __cil_tmp61 = 0 * 1U;
15875#line 3184
15876 __cil_tmp62 = 112 + __cil_tmp61;
15877#line 3184
15878 __cil_tmp63 = (unsigned int )DisketteExtension;
15879#line 3184
15880 __cil_tmp64 = __cil_tmp63 + __cil_tmp62;
15881#line 3184
15882 mem_121 = (UCHAR *)__cil_tmp64;
15883#line 3184
15884 *mem_121 = (unsigned char)13;
15885#line 3185
15886 __cil_tmp65 = 1 * 1U;
15887#line 3185
15888 __cil_tmp66 = 112 + __cil_tmp65;
15889#line 3185
15890 __cil_tmp67 = (unsigned int )DisketteExtension;
15891#line 3185
15892 __cil_tmp68 = __cil_tmp67 + __cil_tmp66;
15893#line 3185
15894 __cil_tmp69 = 308 + 32;
15895#line 3185
15896 __cil_tmp70 = (unsigned int )DisketteExtension;
15897#line 3185
15898 __cil_tmp71 = __cil_tmp70 + __cil_tmp69;
15899#line 3185
15900 mem_122 = (UCHAR *)__cil_tmp68;
15901#line 3185
15902 mem_123 = (UCHAR *)__cil_tmp71;
15903#line 3185
15904 *mem_122 = *mem_123;
15905#line 3188
15906 __cil_tmp72 = 2 * 1U;
15907#line 3188
15908 __cil_tmp73 = 112 + __cil_tmp72;
15909#line 3188
15910 __cil_tmp74 = (unsigned int )DisketteExtension;
15911#line 3188
15912 __cil_tmp75 = __cil_tmp74 + __cil_tmp73;
15913#line 3188
15914 __cil_tmp76 = 308 + 33;
15915#line 3188
15916 __cil_tmp77 = (unsigned int )DisketteExtension;
15917#line 3188
15918 __cil_tmp78 = __cil_tmp77 + __cil_tmp76;
15919#line 3188
15920 mem_124 = (UCHAR *)__cil_tmp75;
15921#line 3188
15922 mem_125 = (UCHAR *)__cil_tmp78;
15923#line 3188
15924 *mem_124 = *mem_125;
15925#line 3191
15926 __cil_tmp79 = 0 * 1U;
15927#line 3191
15928 __cil_tmp80 = 112 + __cil_tmp79;
15929#line 3191
15930 __cil_tmp81 = (unsigned int )DisketteExtension;
15931#line 3191
15932 __cil_tmp82 = __cil_tmp81 + __cil_tmp80;
15933#line 3191
15934 __cil_tmp83 = (UCHAR *)__cil_tmp82;
15935#line 3191
15936 __cil_tmp84 = 0 * 1U;
15937#line 3191
15938 __cil_tmp85 = 112 + __cil_tmp84;
15939#line 3191
15940 __cil_tmp86 = (unsigned int )DisketteExtension;
15941#line 3191
15942 __cil_tmp87 = __cil_tmp86 + __cil_tmp85;
15943#line 3191
15944 __cil_tmp88 = (UCHAR *)__cil_tmp87;
15945#line 3191
15946 __cil_tmp89 = (void *)0;
15947#line 3191
15948 __cil_tmp90 = (struct _MDL *)__cil_tmp89;
15949#line 3191
15950 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp83, __cil_tmp88, __cil_tmp90,
15951 0UL, 0UL);
15952 }
15953#line 3198
15954 if (ntStatus >= 0L) {
15955 {
15956#line 3204
15957 __cil_tmp91 = (unsigned int )DisketteExtension;
15958#line 3204
15959 __cil_tmp92 = __cil_tmp91 + 8;
15960#line 3204
15961 mem_126 = (PDEVICE_OBJECT *)__cil_tmp92;
15962#line 3204
15963 __cil_tmp93 = *mem_126;
15964#line 3204
15965 __cil_tmp94 = 777 << 2;
15966#line 3204
15967 __cil_tmp95 = 7 << 16;
15968#line 3204
15969 __cil_tmp96 = __cil_tmp95 | __cil_tmp94;
15970#line 3204
15971 __cil_tmp97 = __cil_tmp96 | 3;
15972#line 3204
15973 __cil_tmp98 = (unsigned long )__cil_tmp97;
15974#line 3204
15975 __cil_tmp99 = 308 + 50;
15976#line 3204
15977 __cil_tmp100 = (unsigned int )DisketteExtension;
15978#line 3204
15979 __cil_tmp101 = __cil_tmp100 + __cil_tmp99;
15980#line 3204
15981 __cil_tmp102 = (UCHAR *)__cil_tmp101;
15982#line 3204
15983 __cil_tmp103 = (void *)__cil_tmp102;
15984#line 3204
15985 ntStatus = FlFdcDeviceIo(__cil_tmp93, __cil_tmp98, __cil_tmp103);
15986 }
15987#line 3214
15988 if (ntStatus >= 0L) {
15989 {
15990#line 3216
15991 ntStatus = FlRecalibrateDrive(DisketteExtension);
15992 }
15993 } else {
15994
15995 }
15996 } else {
15997 {
15998#line 3222
15999 while (1) {
16000 while_90_continue: ;
16001 goto while_90_break;
16002 }
16003 while_90_break: ;
16004 }
16005 }
16006 } else {
16007 {
16008#line 3228
16009 while (1) {
16010 while_91_continue: ;
16011 goto while_91_break;
16012 }
16013 while_91_break: ;
16014 }
16015 }
16016 }
16017#line 3231
16018 if (ntStatus >= 0L) {
16019#line 3233
16020 __cil_tmp104 = (unsigned int )DisketteExtension;
16021#line 3233
16022 __cil_tmp105 = __cil_tmp104 + 140;
16023#line 3233
16024 __cil_tmp106 = (unsigned int )DisketteExtension;
16025#line 3233
16026 __cil_tmp107 = __cil_tmp106 + 216;
16027#line 3233
16028 mem_127 = (DRIVE_MEDIA_TYPE *)__cil_tmp105;
16029#line 3233
16030 mem_128 = (DRIVE_MEDIA_TYPE *)__cil_tmp107;
16031#line 3233
16032 *mem_127 = *mem_128;
16033 } else {
16034#line 3238
16035 __cil_tmp108 = (unsigned int )DisketteExtension;
16036#line 3238
16037 __cil_tmp109 = __cil_tmp108 + 140;
16038#line 3238
16039 mem_129 = (DRIVE_MEDIA_TYPE *)__cil_tmp109;
16040#line 3238
16041 *mem_129 = (enum _DRIVE_MEDIA_TYPE )0;
16042 {
16043#line 3242
16044 while (1) {
16045 while_92_continue: ;
16046 goto while_92_break;
16047 }
16048 while_92_break: ;
16049 }
16050 }
16051#line 3245
16052 return (ntStatus);
16053}
16054}
16055#line 3248 "floppy.c"
16056NTSTATUS FlRecalibrateDrive(PDISKETTE_EXTENSION DisketteExtension )
16057{ NTSTATUS ntStatus ;
16058 UCHAR recalibrateCount ;
16059 UCHAR fifoBuffer[2] ;
16060 unsigned int __cil_tmp5 ;
16061 unsigned int __cil_tmp6 ;
16062 unsigned int __cil_tmp7 ;
16063 unsigned int __cil_tmp8 ;
16064 unsigned int __cil_tmp9 ;
16065 unsigned int __cil_tmp10 ;
16066 unsigned int __cil_tmp11 ;
16067 unsigned int __cil_tmp12 ;
16068 unsigned int __cil_tmp13 ;
16069 unsigned int __cil_tmp14 ;
16070 unsigned int __cil_tmp15 ;
16071 unsigned int __cil_tmp16 ;
16072 unsigned int __cil_tmp17 ;
16073 unsigned int __cil_tmp18 ;
16074 UCHAR *__cil_tmp19 ;
16075 unsigned int __cil_tmp20 ;
16076 unsigned int __cil_tmp21 ;
16077 unsigned int __cil_tmp22 ;
16078 unsigned int __cil_tmp23 ;
16079 UCHAR *__cil_tmp24 ;
16080 void *__cil_tmp25 ;
16081 struct _MDL *__cil_tmp26 ;
16082 int __cil_tmp27 ;
16083 KUSER_SHARED_DATA *__cil_tmp28 ;
16084 unsigned int __cil_tmp29 ;
16085 unsigned int __cil_tmp30 ;
16086 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp31 ;
16087 int __cil_tmp32 ;
16088 unsigned int __cil_tmp33 ;
16089 unsigned int __cil_tmp34 ;
16090 unsigned int __cil_tmp35 ;
16091 unsigned int __cil_tmp36 ;
16092 unsigned int __cil_tmp37 ;
16093 unsigned int __cil_tmp38 ;
16094 unsigned int __cil_tmp39 ;
16095 unsigned int __cil_tmp40 ;
16096 unsigned int __cil_tmp41 ;
16097 unsigned int __cil_tmp42 ;
16098 unsigned int __cil_tmp43 ;
16099 unsigned int __cil_tmp44 ;
16100 unsigned int __cil_tmp45 ;
16101 unsigned int __cil_tmp46 ;
16102 unsigned int __cil_tmp47 ;
16103 unsigned int __cil_tmp48 ;
16104 unsigned int __cil_tmp49 ;
16105 unsigned int __cil_tmp50 ;
16106 unsigned int __cil_tmp51 ;
16107 unsigned int __cil_tmp52 ;
16108 unsigned int __cil_tmp53 ;
16109 unsigned int __cil_tmp54 ;
16110 unsigned int __cil_tmp55 ;
16111 unsigned int __cil_tmp56 ;
16112 unsigned int __cil_tmp57 ;
16113 unsigned int __cil_tmp58 ;
16114 UCHAR *__cil_tmp59 ;
16115 unsigned int __cil_tmp60 ;
16116 unsigned int __cil_tmp61 ;
16117 unsigned int __cil_tmp62 ;
16118 unsigned int __cil_tmp63 ;
16119 UCHAR *__cil_tmp64 ;
16120 void *__cil_tmp65 ;
16121 struct _MDL *__cil_tmp66 ;
16122 int __cil_tmp67 ;
16123 unsigned int __cil_tmp68 ;
16124 unsigned int __cil_tmp69 ;
16125 unsigned int __cil_tmp70 ;
16126 unsigned int __cil_tmp71 ;
16127 unsigned int __cil_tmp72 ;
16128 unsigned int __cil_tmp73 ;
16129 unsigned int __cil_tmp74 ;
16130 unsigned int __cil_tmp75 ;
16131 unsigned int __cil_tmp76 ;
16132 unsigned int __cil_tmp77 ;
16133 unsigned int __cil_tmp78 ;
16134 unsigned int __cil_tmp79 ;
16135 unsigned int __cil_tmp80 ;
16136 unsigned int __cil_tmp81 ;
16137 unsigned int __cil_tmp82 ;
16138 unsigned int __cil_tmp83 ;
16139 UCHAR __cil_tmp84 ;
16140 int __cil_tmp85 ;
16141 int __cil_tmp86 ;
16142 unsigned int __cil_tmp87 ;
16143 unsigned int __cil_tmp88 ;
16144 unsigned int __cil_tmp89 ;
16145 unsigned int __cil_tmp90 ;
16146 UCHAR __cil_tmp91 ;
16147 int __cil_tmp92 ;
16148 unsigned int __cil_tmp93 ;
16149 unsigned int __cil_tmp94 ;
16150 int __cil_tmp95 ;
16151 int __cil_tmp96 ;
16152 int __cil_tmp97 ;
16153 int __cil_tmp98 ;
16154 int __cil_tmp99 ;
16155 UCHAR *mem_100 ;
16156 UCHAR *mem_101 ;
16157 UCHAR *mem_102 ;
16158 ALTERNATIVE_ARCHITECTURE_TYPE *mem_103 ;
16159 UCHAR *mem_104 ;
16160 UCHAR *mem_105 ;
16161 UCHAR *mem_106 ;
16162 UCHAR *mem_107 ;
16163 UCHAR *mem_108 ;
16164 UCHAR *mem_109 ;
16165 UCHAR *mem_110 ;
16166 UCHAR *mem_111 ;
16167 UCHAR *mem_112 ;
16168 UCHAR *mem_113 ;
16169 UCHAR *mem_114 ;
16170 UCHAR *mem_115 ;
16171 UCHAR *mem_116 ;
16172 BOOLEAN *mem_117 ;
16173
16174 {
16175#line 3278
16176 recalibrateCount = (unsigned char)0;
16177 {
16178#line 3280
16179 while (1) {
16180 while_93_continue: ;
16181 {
16182#line 3286
16183 __cil_tmp5 = 0 * 1U;
16184#line 3286
16185 __cil_tmp6 = 112 + __cil_tmp5;
16186#line 3286
16187 __cil_tmp7 = (unsigned int )DisketteExtension;
16188#line 3286
16189 __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
16190#line 3286
16191 mem_100 = (UCHAR *)__cil_tmp8;
16192#line 3286
16193 *mem_100 = (unsigned char)11;
16194#line 3287
16195 __cil_tmp9 = 1 * 1U;
16196#line 3287
16197 __cil_tmp10 = 112 + __cil_tmp9;
16198#line 3287
16199 __cil_tmp11 = (unsigned int )DisketteExtension;
16200#line 3287
16201 __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
16202#line 3287
16203 __cil_tmp13 = (unsigned int )DisketteExtension;
16204#line 3287
16205 __cil_tmp14 = __cil_tmp13 + 248;
16206#line 3287
16207 mem_101 = (UCHAR *)__cil_tmp12;
16208#line 3287
16209 mem_102 = (UCHAR *)__cil_tmp14;
16210#line 3287
16211 *mem_101 = *mem_102;
16212#line 3289
16213 __cil_tmp15 = 0 * 1U;
16214#line 3289
16215 __cil_tmp16 = 112 + __cil_tmp15;
16216#line 3289
16217 __cil_tmp17 = (unsigned int )DisketteExtension;
16218#line 3289
16219 __cil_tmp18 = __cil_tmp17 + __cil_tmp16;
16220#line 3289
16221 __cil_tmp19 = (UCHAR *)__cil_tmp18;
16222#line 3289
16223 __cil_tmp20 = 0 * 1U;
16224#line 3289
16225 __cil_tmp21 = 112 + __cil_tmp20;
16226#line 3289
16227 __cil_tmp22 = (unsigned int )DisketteExtension;
16228#line 3289
16229 __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
16230#line 3289
16231 __cil_tmp24 = (UCHAR *)__cil_tmp23;
16232#line 3289
16233 __cil_tmp25 = (void *)0;
16234#line 3289
16235 __cil_tmp26 = (struct _MDL *)__cil_tmp25;
16236#line 3289
16237 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp19, __cil_tmp24, __cil_tmp26,
16238 0UL, 0UL);
16239 }
16240 {
16241#line 3296
16242 __cil_tmp27 = ntStatus >= 0L;
16243#line 3296
16244 if (! __cil_tmp27) {
16245 {
16246#line 3301
16247 while (1) {
16248 while_94_continue: ;
16249 goto while_94_break;
16250 }
16251 while_94_break: ;
16252 }
16253 } else {
16254
16255 }
16256 }
16257#line 3305
16258 if (ntStatus >= 0L) {
16259 {
16260#line 3307
16261 __cil_tmp28 = (KUSER_SHARED_DATA * const )4292804608U;
16262#line 3307
16263 __cil_tmp29 = (unsigned int )__cil_tmp28;
16264#line 3307
16265 __cil_tmp30 = __cil_tmp29 + 732;
16266#line 3307
16267 mem_103 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp30;
16268#line 3307
16269 __cil_tmp31 = *mem_103;
16270#line 3307
16271 __cil_tmp32 = (int )__cil_tmp31;
16272#line 3307
16273 if (__cil_tmp32 == 1) {
16274 {
16275#line 3313
16276 __cil_tmp33 = 0 * 1U;
16277#line 3313
16278 __cil_tmp34 = (unsigned int )(fifoBuffer) + __cil_tmp33;
16279#line 3313
16280 __cil_tmp35 = 0 * 1U;
16281#line 3313
16282 __cil_tmp36 = 112 + __cil_tmp35;
16283#line 3313
16284 __cil_tmp37 = (unsigned int )DisketteExtension;
16285#line 3313
16286 __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
16287#line 3313
16288 mem_104 = (UCHAR *)__cil_tmp34;
16289#line 3313
16290 mem_105 = (UCHAR *)__cil_tmp38;
16291#line 3313
16292 *mem_104 = *mem_105;
16293#line 3314
16294 __cil_tmp39 = 1 * 1U;
16295#line 3314
16296 __cil_tmp40 = (unsigned int )(fifoBuffer) + __cil_tmp39;
16297#line 3314
16298 __cil_tmp41 = 1 * 1U;
16299#line 3314
16300 __cil_tmp42 = 112 + __cil_tmp41;
16301#line 3314
16302 __cil_tmp43 = (unsigned int )DisketteExtension;
16303#line 3314
16304 __cil_tmp44 = __cil_tmp43 + __cil_tmp42;
16305#line 3314
16306 mem_106 = (UCHAR *)__cil_tmp40;
16307#line 3314
16308 mem_107 = (UCHAR *)__cil_tmp44;
16309#line 3314
16310 *mem_106 = *mem_107;
16311#line 3319
16312 __cil_tmp45 = 0 * 1U;
16313#line 3319
16314 __cil_tmp46 = 112 + __cil_tmp45;
16315#line 3319
16316 __cil_tmp47 = (unsigned int )DisketteExtension;
16317#line 3319
16318 __cil_tmp48 = __cil_tmp47 + __cil_tmp46;
16319#line 3319
16320 mem_108 = (UCHAR *)__cil_tmp48;
16321#line 3319
16322 *mem_108 = (unsigned char)14;
16323#line 3320
16324 __cil_tmp49 = 1 * 1U;
16325#line 3320
16326 __cil_tmp50 = 112 + __cil_tmp49;
16327#line 3320
16328 __cil_tmp51 = (unsigned int )DisketteExtension;
16329#line 3320
16330 __cil_tmp52 = __cil_tmp51 + __cil_tmp50;
16331#line 3320
16332 __cil_tmp53 = (unsigned int )DisketteExtension;
16333#line 3320
16334 __cil_tmp54 = __cil_tmp53 + 248;
16335#line 3320
16336 mem_109 = (UCHAR *)__cil_tmp52;
16337#line 3320
16338 mem_110 = (UCHAR *)__cil_tmp54;
16339#line 3320
16340 *mem_109 = *mem_110;
16341#line 3322
16342 __cil_tmp55 = 0 * 1U;
16343#line 3322
16344 __cil_tmp56 = 112 + __cil_tmp55;
16345#line 3322
16346 __cil_tmp57 = (unsigned int )DisketteExtension;
16347#line 3322
16348 __cil_tmp58 = __cil_tmp57 + __cil_tmp56;
16349#line 3322
16350 __cil_tmp59 = (UCHAR *)__cil_tmp58;
16351#line 3322
16352 __cil_tmp60 = 0 * 1U;
16353#line 3322
16354 __cil_tmp61 = 112 + __cil_tmp60;
16355#line 3322
16356 __cil_tmp62 = (unsigned int )DisketteExtension;
16357#line 3322
16358 __cil_tmp63 = __cil_tmp62 + __cil_tmp61;
16359#line 3322
16360 __cil_tmp64 = (UCHAR *)__cil_tmp63;
16361#line 3322
16362 __cil_tmp65 = (void *)0;
16363#line 3322
16364 __cil_tmp66 = (struct _MDL *)__cil_tmp65;
16365#line 3322
16366 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp59, __cil_tmp64, __cil_tmp66,
16367 0UL, 0UL);
16368 }
16369 {
16370#line 3329
16371 __cil_tmp67 = ntStatus >= 0L;
16372#line 3329
16373 if (! __cil_tmp67) {
16374 {
16375#line 3334
16376 while (1) {
16377 while_95_continue: ;
16378 goto while_95_break;
16379 }
16380 while_95_break: ;
16381 }
16382#line 3336
16383 return (ntStatus);
16384 } else {
16385
16386 }
16387 }
16388#line 3339
16389 __cil_tmp68 = 0 * 1U;
16390#line 3339
16391 __cil_tmp69 = 112 + __cil_tmp68;
16392#line 3339
16393 __cil_tmp70 = (unsigned int )DisketteExtension;
16394#line 3339
16395 __cil_tmp71 = __cil_tmp70 + __cil_tmp69;
16396#line 3339
16397 __cil_tmp72 = 0 * 1U;
16398#line 3339
16399 __cil_tmp73 = (unsigned int )(fifoBuffer) + __cil_tmp72;
16400#line 3339
16401 mem_111 = (UCHAR *)__cil_tmp71;
16402#line 3339
16403 mem_112 = (UCHAR *)__cil_tmp73;
16404#line 3339
16405 *mem_111 = *mem_112;
16406#line 3340
16407 __cil_tmp74 = 1 * 1U;
16408#line 3340
16409 __cil_tmp75 = 112 + __cil_tmp74;
16410#line 3340
16411 __cil_tmp76 = (unsigned int )DisketteExtension;
16412#line 3340
16413 __cil_tmp77 = __cil_tmp76 + __cil_tmp75;
16414#line 3340
16415 __cil_tmp78 = 1 * 1U;
16416#line 3340
16417 __cil_tmp79 = (unsigned int )(fifoBuffer) + __cil_tmp78;
16418#line 3340
16419 mem_113 = (UCHAR *)__cil_tmp77;
16420#line 3340
16421 mem_114 = (UCHAR *)__cil_tmp79;
16422#line 3340
16423 *mem_113 = *mem_114;
16424 } else {
16425
16426 }
16427 }
16428 {
16429#line 3344
16430 __cil_tmp80 = 0 * 1U;
16431#line 3344
16432 __cil_tmp81 = 112 + __cil_tmp80;
16433#line 3344
16434 __cil_tmp82 = (unsigned int )DisketteExtension;
16435#line 3344
16436 __cil_tmp83 = __cil_tmp82 + __cil_tmp81;
16437#line 3344
16438 mem_115 = (UCHAR *)__cil_tmp83;
16439#line 3344
16440 __cil_tmp84 = *mem_115;
16441#line 3344
16442 __cil_tmp85 = (int )__cil_tmp84;
16443#line 3344
16444 __cil_tmp86 = __cil_tmp85 & 32;
16445#line 3344
16446 if (! __cil_tmp86) {
16447 goto _L;
16448 } else {
16449 {
16450#line 3344
16451 __cil_tmp87 = 1 * 1U;
16452#line 3344
16453 __cil_tmp88 = 112 + __cil_tmp87;
16454#line 3344
16455 __cil_tmp89 = (unsigned int )DisketteExtension;
16456#line 3344
16457 __cil_tmp90 = __cil_tmp89 + __cil_tmp88;
16458#line 3344
16459 mem_116 = (UCHAR *)__cil_tmp90;
16460#line 3344
16461 __cil_tmp91 = *mem_116;
16462#line 3344
16463 __cil_tmp92 = (int )__cil_tmp91;
16464#line 3344
16465 if (__cil_tmp92 != 0) {
16466 _L:
16467 {
16468#line 3350
16469 while (1) {
16470 while_96_continue: ;
16471 goto while_96_break;
16472 }
16473 while_96_break: ;
16474 }
16475#line 3352
16476 __cil_tmp93 = (unsigned int )DisketteExtension;
16477#line 3352
16478 __cil_tmp94 = __cil_tmp93 + 104;
16479#line 3352
16480 mem_117 = (BOOLEAN *)__cil_tmp94;
16481#line 3352
16482 *mem_117 = (unsigned char)1;
16483#line 3354
16484 ntStatus = -1073741464L;
16485 } else {
16486
16487 }
16488 }
16489 }
16490 }
16491 } else {
16492
16493 }
16494#line 3358
16495 __cil_tmp95 = (int )recalibrateCount;
16496#line 3358
16497 __cil_tmp96 = __cil_tmp95 + 1;
16498#line 3358
16499 recalibrateCount = (unsigned char )__cil_tmp96;
16500 {
16501#line 3280
16502 __cil_tmp97 = ntStatus >= 0L;
16503#line 3280
16504 if (! __cil_tmp97) {
16505 {
16506#line 3280
16507 __cil_tmp98 = (int )recalibrateCount;
16508#line 3280
16509 __cil_tmp99 = __cil_tmp98 < 2;
16510#line 3280
16511 if (! __cil_tmp99) {
16512 goto while_93_break;
16513 } else {
16514
16515 }
16516 }
16517 } else {
16518 goto while_93_break;
16519 }
16520 }
16521 }
16522 while_93_break: ;
16523 }
16524 {
16525#line 3365
16526 while (1) {
16527 while_97_continue: ;
16528 goto while_97_break;
16529 }
16530 while_97_break: ;
16531 }
16532#line 3367
16533 return (ntStatus);
16534}
16535}
16536#line 3370 "floppy.c"
16537NTSTATUS FlDetermineMediaType(PDISKETTE_EXTENSION DisketteExtension )
16538{ NTSTATUS ntStatus ;
16539 PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
16540 BOOLEAN mediaTypesExhausted ;
16541 ULONG retries ;
16542 USHORT sectorLengthCode ;
16543 PBOOT_SECTOR_INFO bootSector ;
16544 LARGE_INTEGER offset ;
16545 PIRP irp ;
16546 int tmp ;
16547 PVOID tmp___0 ;
16548 int tmp___1 ;
16549 unsigned int __cil_tmp13 ;
16550 unsigned int __cil_tmp14 ;
16551 unsigned int __cil_tmp15 ;
16552 unsigned int __cil_tmp16 ;
16553 unsigned int __cil_tmp17 ;
16554 unsigned int __cil_tmp18 ;
16555 UCHAR __cil_tmp19 ;
16556 int __cil_tmp20 ;
16557 PDRIVE_MEDIA_LIMITS __cil_tmp21 ;
16558 unsigned int __cil_tmp22 ;
16559 unsigned int __cil_tmp23 ;
16560 unsigned int __cil_tmp24 ;
16561 unsigned int __cil_tmp25 ;
16562 DRIVE_MEDIA_TYPE __cil_tmp26 ;
16563 unsigned int __cil_tmp27 ;
16564 PDRIVE_MEDIA_CONSTANTS __cil_tmp28 ;
16565 KUSER_SHARED_DATA *__cil_tmp29 ;
16566 unsigned int __cil_tmp30 ;
16567 unsigned int __cil_tmp31 ;
16568 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp32 ;
16569 int __cil_tmp33 ;
16570 unsigned int __cil_tmp34 ;
16571 unsigned int __cil_tmp35 ;
16572 DRIVE_MEDIA_TYPE __cil_tmp36 ;
16573 unsigned int __cil_tmp37 ;
16574 PDRIVE_MEDIA_CONSTANTS __cil_tmp38 ;
16575 unsigned int __cil_tmp39 ;
16576 unsigned int __cil_tmp40 ;
16577 UCHAR __cil_tmp41 ;
16578 int __cil_tmp42 ;
16579 unsigned int __cil_tmp43 ;
16580 unsigned int __cil_tmp44 ;
16581 DRIVE_MEDIA_TYPE __cil_tmp45 ;
16582 unsigned int __cil_tmp46 ;
16583 unsigned int __cil_tmp47 ;
16584 unsigned int __cil_tmp48 ;
16585 unsigned int __cil_tmp49 ;
16586 unsigned int __cil_tmp50 ;
16587 unsigned int __cil_tmp51 ;
16588 unsigned int __cil_tmp52 ;
16589 UCHAR __cil_tmp53 ;
16590 int __cil_tmp54 ;
16591 int __cil_tmp55 ;
16592 int __cil_tmp56 ;
16593 unsigned int __cil_tmp57 ;
16594 unsigned int __cil_tmp58 ;
16595 UCHAR __cil_tmp59 ;
16596 int __cil_tmp60 ;
16597 int __cil_tmp61 ;
16598 unsigned int __cil_tmp62 ;
16599 unsigned int __cil_tmp63 ;
16600 unsigned int __cil_tmp64 ;
16601 unsigned int __cil_tmp65 ;
16602 unsigned int __cil_tmp66 ;
16603 unsigned int __cil_tmp67 ;
16604 unsigned int __cil_tmp68 ;
16605 unsigned int __cil_tmp69 ;
16606 UCHAR *__cil_tmp70 ;
16607 unsigned int __cil_tmp71 ;
16608 unsigned int __cil_tmp72 ;
16609 unsigned int __cil_tmp73 ;
16610 unsigned int __cil_tmp74 ;
16611 UCHAR *__cil_tmp75 ;
16612 void *__cil_tmp76 ;
16613 struct _MDL *__cil_tmp77 ;
16614 int __cil_tmp78 ;
16615 unsigned int __cil_tmp79 ;
16616 unsigned int __cil_tmp80 ;
16617 UCHAR __cil_tmp81 ;
16618 int __cil_tmp82 ;
16619 int __cil_tmp83 ;
16620 int __cil_tmp84 ;
16621 unsigned int __cil_tmp85 ;
16622 unsigned int __cil_tmp86 ;
16623 UCHAR __cil_tmp87 ;
16624 int __cil_tmp88 ;
16625 int __cil_tmp89 ;
16626 unsigned char __cil_tmp90 ;
16627 int __cil_tmp91 ;
16628 unsigned int __cil_tmp92 ;
16629 unsigned int __cil_tmp93 ;
16630 unsigned int __cil_tmp94 ;
16631 unsigned int __cil_tmp95 ;
16632 UCHAR __cil_tmp96 ;
16633 int __cil_tmp97 ;
16634 int __cil_tmp98 ;
16635 unsigned int __cil_tmp99 ;
16636 unsigned int __cil_tmp100 ;
16637 unsigned int __cil_tmp101 ;
16638 unsigned int __cil_tmp102 ;
16639 UCHAR __cil_tmp103 ;
16640 int __cil_tmp104 ;
16641 unsigned int __cil_tmp105 ;
16642 unsigned int __cil_tmp106 ;
16643 unsigned int __cil_tmp107 ;
16644 unsigned int __cil_tmp108 ;
16645 UCHAR __cil_tmp109 ;
16646 int __cil_tmp110 ;
16647 KUSER_SHARED_DATA *__cil_tmp111 ;
16648 unsigned int __cil_tmp112 ;
16649 unsigned int __cil_tmp113 ;
16650 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp114 ;
16651 int __cil_tmp115 ;
16652 int __cil_tmp116 ;
16653 unsigned int __cil_tmp117 ;
16654 unsigned int __cil_tmp118 ;
16655 unsigned int __cil_tmp119 ;
16656 unsigned int __cil_tmp120 ;
16657 UCHAR __cil_tmp121 ;
16658 int __cil_tmp122 ;
16659 unsigned int __cil_tmp123 ;
16660 unsigned int __cil_tmp124 ;
16661 unsigned int __cil_tmp125 ;
16662 unsigned int __cil_tmp126 ;
16663 DRIVE_MEDIA_TYPE __cil_tmp127 ;
16664 int __cil_tmp128 ;
16665 int __cil_tmp129 ;
16666 unsigned int __cil_tmp130 ;
16667 unsigned int __cil_tmp131 ;
16668 unsigned int __cil_tmp132 ;
16669 unsigned int __cil_tmp133 ;
16670 DRIVE_MEDIA_TYPE __cil_tmp134 ;
16671 unsigned int __cil_tmp135 ;
16672 PDRIVE_MEDIA_CONSTANTS __cil_tmp136 ;
16673 unsigned int __cil_tmp137 ;
16674 unsigned int __cil_tmp138 ;
16675 UCHAR __cil_tmp139 ;
16676 int __cil_tmp140 ;
16677 PDRIVE_MEDIA_LIMITS __cil_tmp141 ;
16678 unsigned int __cil_tmp142 ;
16679 unsigned int __cil_tmp143 ;
16680 DRIVE_MEDIA_TYPE __cil_tmp144 ;
16681 char __cil_tmp145 ;
16682 int __cil_tmp146 ;
16683 unsigned int __cil_tmp147 ;
16684 unsigned int __cil_tmp148 ;
16685 DRIVE_MEDIA_TYPE __cil_tmp149 ;
16686 char __cil_tmp150 ;
16687 int __cil_tmp151 ;
16688 unsigned int __cil_tmp152 ;
16689 unsigned int __cil_tmp153 ;
16690 KUSER_SHARED_DATA *__cil_tmp154 ;
16691 unsigned int __cil_tmp155 ;
16692 unsigned int __cil_tmp156 ;
16693 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp157 ;
16694 int __cil_tmp158 ;
16695 unsigned int __cil_tmp159 ;
16696 unsigned int __cil_tmp160 ;
16697 unsigned int __cil_tmp161 ;
16698 unsigned int __cil_tmp162 ;
16699 unsigned int __cil_tmp163 ;
16700 unsigned int __cil_tmp164 ;
16701 USHORT __cil_tmp165 ;
16702 unsigned int __cil_tmp166 ;
16703 unsigned int __cil_tmp167 ;
16704 unsigned int __cil_tmp168 ;
16705 unsigned int __cil_tmp169 ;
16706 UCHAR __cil_tmp170 ;
16707 int __cil_tmp171 ;
16708 unsigned int __cil_tmp172 ;
16709 unsigned int __cil_tmp173 ;
16710 UCHAR __cil_tmp174 ;
16711 int __cil_tmp175 ;
16712 int __cil_tmp176 ;
16713 unsigned int __cil_tmp177 ;
16714 unsigned int __cil_tmp178 ;
16715 UCHAR __cil_tmp179 ;
16716 int __cil_tmp180 ;
16717 unsigned int __cil_tmp181 ;
16718 unsigned int __cil_tmp182 ;
16719 USHORT __cil_tmp183 ;
16720 int __cil_tmp184 ;
16721 int __cil_tmp185 ;
16722 int __cil_tmp186 ;
16723 int __cil_tmp187 ;
16724 unsigned int __cil_tmp188 ;
16725 unsigned int __cil_tmp189 ;
16726 unsigned int __cil_tmp190 ;
16727 unsigned int __cil_tmp191 ;
16728 DRIVE_MEDIA_TYPE __cil_tmp192 ;
16729 unsigned int __cil_tmp193 ;
16730 PDRIVE_MEDIA_CONSTANTS __cil_tmp194 ;
16731 KUSER_SHARED_DATA *__cil_tmp195 ;
16732 unsigned int __cil_tmp196 ;
16733 unsigned int __cil_tmp197 ;
16734 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp198 ;
16735 int __cil_tmp199 ;
16736 enum _POOL_TYPE __cil_tmp200 ;
16737 unsigned long __cil_tmp201 ;
16738 unsigned int __cil_tmp202 ;
16739 unsigned int __cil_tmp203 ;
16740 LARGE_INTEGER *__cil_tmp204 ;
16741 unsigned int __cil_tmp205 ;
16742 unsigned int __cil_tmp206 ;
16743 LONG __cil_tmp207 ;
16744 KUSER_SHARED_DATA *__cil_tmp208 ;
16745 unsigned int __cil_tmp209 ;
16746 unsigned int __cil_tmp210 ;
16747 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp211 ;
16748 int __cil_tmp212 ;
16749 unsigned int __cil_tmp213 ;
16750 unsigned int __cil_tmp214 ;
16751 PDEVICE_OBJECT __cil_tmp215 ;
16752 void *__cil_tmp216 ;
16753 unsigned long __cil_tmp217 ;
16754 void *__cil_tmp218 ;
16755 struct _IO_STATUS_BLOCK *__cil_tmp219 ;
16756 void *__cil_tmp220 ;
16757 unsigned int __cil_tmp221 ;
16758 unsigned int __cil_tmp222 ;
16759 unsigned int __cil_tmp223 ;
16760 unsigned int __cil_tmp224 ;
16761 CHAR __cil_tmp225 ;
16762 int __cil_tmp226 ;
16763 int __cil_tmp227 ;
16764 unsigned int __cil_tmp228 ;
16765 unsigned int __cil_tmp229 ;
16766 unsigned int __cil_tmp230 ;
16767 unsigned int __cil_tmp231 ;
16768 unsigned int __cil_tmp232 ;
16769 unsigned int __cil_tmp233 ;
16770 unsigned int __cil_tmp234 ;
16771 unsigned int __cil_tmp235 ;
16772 unsigned int __cil_tmp236 ;
16773 unsigned int __cil_tmp237 ;
16774 struct _IO_STACK_LOCATION *__cil_tmp238 ;
16775 unsigned int __cil_tmp239 ;
16776 unsigned int __cil_tmp240 ;
16777 PMDL __cil_tmp241 ;
16778 unsigned int __cil_tmp242 ;
16779 unsigned int __cil_tmp243 ;
16780 PMDL __cil_tmp244 ;
16781 void *__cil_tmp245 ;
16782 int __cil_tmp246 ;
16783 unsigned int __cil_tmp247 ;
16784 unsigned int __cil_tmp248 ;
16785 unsigned int __cil_tmp249 ;
16786 unsigned int __cil_tmp250 ;
16787 DRIVE_MEDIA_TYPE __cil_tmp251 ;
16788 int __cil_tmp252 ;
16789 int __cil_tmp253 ;
16790 unsigned int __cil_tmp254 ;
16791 unsigned int __cil_tmp255 ;
16792 unsigned int __cil_tmp256 ;
16793 unsigned int __cil_tmp257 ;
16794 DRIVE_MEDIA_TYPE __cil_tmp258 ;
16795 unsigned int __cil_tmp259 ;
16796 PDRIVE_MEDIA_CONSTANTS __cil_tmp260 ;
16797 unsigned int __cil_tmp261 ;
16798 unsigned int __cil_tmp262 ;
16799 UCHAR __cil_tmp263 ;
16800 int __cil_tmp264 ;
16801 PDRIVE_MEDIA_LIMITS __cil_tmp265 ;
16802 unsigned int __cil_tmp266 ;
16803 unsigned int __cil_tmp267 ;
16804 DRIVE_MEDIA_TYPE __cil_tmp268 ;
16805 char __cil_tmp269 ;
16806 int __cil_tmp270 ;
16807 unsigned int __cil_tmp271 ;
16808 unsigned int __cil_tmp272 ;
16809 DRIVE_MEDIA_TYPE __cil_tmp273 ;
16810 char __cil_tmp274 ;
16811 int __cil_tmp275 ;
16812 unsigned int __cil_tmp276 ;
16813 unsigned int __cil_tmp277 ;
16814 int __cil_tmp278 ;
16815 int __cil_tmp279 ;
16816 int __cil_tmp280 ;
16817 unsigned int __cil_tmp281 ;
16818 unsigned int __cil_tmp282 ;
16819 unsigned int __cil_tmp283 ;
16820 unsigned int __cil_tmp284 ;
16821 unsigned int __cil_tmp285 ;
16822 unsigned int __cil_tmp286 ;
16823 USHORT __cil_tmp287 ;
16824 unsigned int __cil_tmp288 ;
16825 unsigned int __cil_tmp289 ;
16826 unsigned int __cil_tmp290 ;
16827 unsigned int __cil_tmp291 ;
16828 UCHAR __cil_tmp292 ;
16829 int __cil_tmp293 ;
16830 unsigned int __cil_tmp294 ;
16831 unsigned int __cil_tmp295 ;
16832 UCHAR __cil_tmp296 ;
16833 int __cil_tmp297 ;
16834 int __cil_tmp298 ;
16835 unsigned int __cil_tmp299 ;
16836 unsigned int __cil_tmp300 ;
16837 UCHAR __cil_tmp301 ;
16838 int __cil_tmp302 ;
16839 unsigned int __cil_tmp303 ;
16840 unsigned int __cil_tmp304 ;
16841 USHORT __cil_tmp305 ;
16842 int __cil_tmp306 ;
16843 int __cil_tmp307 ;
16844 int __cil_tmp308 ;
16845 int __cil_tmp309 ;
16846 unsigned int __cil_tmp310 ;
16847 unsigned int __cil_tmp311 ;
16848 unsigned int __cil_tmp312 ;
16849 unsigned int __cil_tmp313 ;
16850 DRIVE_MEDIA_TYPE __cil_tmp314 ;
16851 unsigned int __cil_tmp315 ;
16852 PDRIVE_MEDIA_CONSTANTS __cil_tmp316 ;
16853 BOOLEAN *mem_317 ;
16854 UCHAR *mem_318 ;
16855 DRIVE_MEDIA_TYPE *mem_319 ;
16856 DRIVE_MEDIA_TYPE *mem_320 ;
16857 DRIVE_MEDIA_TYPE *mem_321 ;
16858 DRIVE_MEDIA_CONSTANTS *mem_322 ;
16859 ALTERNATIVE_ARCHITECTURE_TYPE *mem_323 ;
16860 DRIVE_MEDIA_TYPE *mem_324 ;
16861 UCHAR *mem_325 ;
16862 DRIVE_MEDIA_TYPE *mem_326 ;
16863 UCHAR *mem_327 ;
16864 UCHAR *mem_328 ;
16865 UCHAR *mem_329 ;
16866 UCHAR *mem_330 ;
16867 UCHAR *mem_331 ;
16868 UCHAR *mem_332 ;
16869 UCHAR *mem_333 ;
16870 UCHAR *mem_334 ;
16871 UCHAR *mem_335 ;
16872 ALTERNATIVE_ARCHITECTURE_TYPE *mem_336 ;
16873 UCHAR *mem_337 ;
16874 DRIVE_MEDIA_TYPE *mem_338 ;
16875 DRIVE_MEDIA_TYPE *mem_339 ;
16876 DRIVE_MEDIA_TYPE *mem_340 ;
16877 DRIVE_MEDIA_CONSTANTS *mem_341 ;
16878 UCHAR *mem_342 ;
16879 DRIVE_MEDIA_TYPE *mem_343 ;
16880 DRIVE_MEDIA_TYPE *mem_344 ;
16881 MEDIA_TYPE *mem_345 ;
16882 ALTERNATIVE_ARCHITECTURE_TYPE *mem_346 ;
16883 MEDIA_TYPE *mem_347 ;
16884 MEDIA_TYPE *mem_348 ;
16885 USHORT *mem_349 ;
16886 ULONG *mem_350 ;
16887 UCHAR *mem_351 ;
16888 UCHAR *mem_352 ;
16889 UCHAR *mem_353 ;
16890 USHORT *mem_354 ;
16891 ULONG *mem_355 ;
16892 DRIVE_MEDIA_TYPE *mem_356 ;
16893 DRIVE_MEDIA_CONSTANTS *mem_357 ;
16894 ALTERNATIVE_ARCHITECTURE_TYPE *mem_358 ;
16895 LONG *mem_359 ;
16896 LONG *mem_360 ;
16897 ULONG *mem_361 ;
16898 ALTERNATIVE_ARCHITECTURE_TYPE *mem_362 ;
16899 PDEVICE_OBJECT *mem_363 ;
16900 CHAR *mem_364 ;
16901 CHAR *mem_365 ;
16902 struct _IO_STACK_LOCATION **mem_366 ;
16903 struct _IO_STACK_LOCATION **mem_367 ;
16904 PMDL *mem_368 ;
16905 PMDL *mem_369 ;
16906 DRIVE_MEDIA_TYPE *mem_370 ;
16907 DRIVE_MEDIA_TYPE *mem_371 ;
16908 DRIVE_MEDIA_TYPE *mem_372 ;
16909 DRIVE_MEDIA_CONSTANTS *mem_373 ;
16910 UCHAR *mem_374 ;
16911 DRIVE_MEDIA_TYPE *mem_375 ;
16912 DRIVE_MEDIA_TYPE *mem_376 ;
16913 MEDIA_TYPE *mem_377 ;
16914 MEDIA_TYPE *mem_378 ;
16915 MEDIA_TYPE *mem_379 ;
16916 USHORT *mem_380 ;
16917 ULONG *mem_381 ;
16918 UCHAR *mem_382 ;
16919 UCHAR *mem_383 ;
16920 UCHAR *mem_384 ;
16921 USHORT *mem_385 ;
16922 ULONG *mem_386 ;
16923 DRIVE_MEDIA_TYPE *mem_387 ;
16924 DRIVE_MEDIA_CONSTANTS *mem_388 ;
16925
16926 {
16927#line 3400
16928 retries = 0UL;
16929 {
16930#line 3410
16931 while (1) {
16932 while_98_continue: ;
16933 goto while_98_break;
16934 }
16935 while_98_break: ;
16936 }
16937#line 3412
16938 __cil_tmp13 = (unsigned int )DisketteExtension;
16939#line 3412
16940 __cil_tmp14 = __cil_tmp13 + 250;
16941#line 3412
16942 mem_317 = (BOOLEAN *)__cil_tmp14;
16943#line 3412
16944 *mem_317 = (unsigned char)0;
16945#line 3418
16946 retries = 0UL;
16947 {
16948#line 3418
16949 while (1) {
16950 while_99_continue: ;
16951#line 3418
16952 if (retries < 3UL) {
16953
16954 } else {
16955 goto while_99_break;
16956 }
16957#line 3420
16958 if (retries) {
16959 {
16960#line 3432
16961 while (1) {
16962 while_100_continue: ;
16963 goto while_100_break;
16964 }
16965 while_100_break: ;
16966 }
16967 {
16968#line 3433
16969 FlInitializeControllerHardware(DisketteExtension);
16970 }
16971 } else {
16972
16973 }
16974#line 3443
16975 __cil_tmp15 = (unsigned int )DisketteExtension;
16976#line 3443
16977 __cil_tmp16 = __cil_tmp15 + 216;
16978#line 3443
16979 __cil_tmp17 = (unsigned int )DisketteExtension;
16980#line 3443
16981 __cil_tmp18 = __cil_tmp17 + 174;
16982#line 3443
16983 mem_318 = (UCHAR *)__cil_tmp18;
16984#line 3443
16985 __cil_tmp19 = *mem_318;
16986#line 3443
16987 __cil_tmp20 = (int )__cil_tmp19;
16988#line 3443
16989 __cil_tmp21 = DriveMediaLimits + __cil_tmp20;
16990#line 3443
16991 mem_319 = (DRIVE_MEDIA_TYPE *)__cil_tmp16;
16992#line 3443
16993 mem_320 = (DRIVE_MEDIA_TYPE *)__cil_tmp21;
16994#line 3443
16995 *mem_319 = *mem_320;
16996#line 3445
16997 __cil_tmp22 = (unsigned int )DisketteExtension;
16998#line 3445
16999 __cil_tmp23 = __cil_tmp22 + 308;
17000#line 3445
17001 __cil_tmp24 = (unsigned int )DisketteExtension;
17002#line 3445
17003 __cil_tmp25 = __cil_tmp24 + 216;
17004#line 3445
17005 mem_321 = (DRIVE_MEDIA_TYPE *)__cil_tmp25;
17006#line 3445
17007 __cil_tmp26 = *mem_321;
17008#line 3445
17009 __cil_tmp27 = (unsigned int )__cil_tmp26;
17010#line 3445
17011 __cil_tmp28 = DriveMediaConstants + __cil_tmp27;
17012#line 3445
17013 mem_322 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp23;
17014#line 3445
17015 *mem_322 = *__cil_tmp28;
17016#line 3448
17017 mediaTypesExhausted = (unsigned char)0;
17018 {
17019#line 3450
17020 while (1) {
17021 while_101_continue: ;
17022 {
17023#line 3452
17024 __cil_tmp29 = (KUSER_SHARED_DATA * const )4292804608U;
17025#line 3452
17026 __cil_tmp30 = (unsigned int )__cil_tmp29;
17027#line 3452
17028 __cil_tmp31 = __cil_tmp30 + 732;
17029#line 3452
17030 mem_323 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp31;
17031#line 3452
17032 __cil_tmp32 = *mem_323;
17033#line 3452
17034 __cil_tmp33 = (int )__cil_tmp32;
17035#line 3452
17036 if (__cil_tmp33 == 1) {
17037 {
17038#line 3453
17039 __cil_tmp34 = (unsigned int )DisketteExtension;
17040#line 3453
17041 __cil_tmp35 = __cil_tmp34 + 216;
17042#line 3453
17043 mem_324 = (DRIVE_MEDIA_TYPE *)__cil_tmp35;
17044#line 3453
17045 __cil_tmp36 = *mem_324;
17046#line 3453
17047 __cil_tmp37 = (unsigned int )__cil_tmp36;
17048#line 3453
17049 __cil_tmp38 = DriveMediaConstants + __cil_tmp37;
17050#line 3453
17051 __cil_tmp39 = (unsigned int )__cil_tmp38;
17052#line 3453
17053 __cil_tmp40 = __cil_tmp39 + 35;
17054#line 3453
17055 mem_325 = (UCHAR *)__cil_tmp40;
17056#line 3453
17057 __cil_tmp41 = *mem_325;
17058#line 3453
17059 sectorLengthCode = (unsigned short )__cil_tmp41;
17060#line 3455
17061 FlHdbit(DisketteExtension);
17062 }
17063 } else {
17064
17065 }
17066 }
17067 {
17068#line 3459
17069 ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
17070 }
17071 {
17072#line 3461
17073 __cil_tmp42 = ntStatus >= 0L;
17074#line 3461
17075 if (! __cil_tmp42) {
17076 {
17077#line 3471
17078 while (1) {
17079 while_102_continue: ;
17080 goto while_102_break;
17081 }
17082 while_102_break: ;
17083 }
17084#line 3472
17085 mediaTypesExhausted = (unsigned char)1;
17086 } else {
17087 {
17088#line 3481
17089 __cil_tmp43 = (unsigned int )DisketteExtension;
17090#line 3481
17091 __cil_tmp44 = __cil_tmp43 + 216;
17092#line 3481
17093 mem_326 = (DRIVE_MEDIA_TYPE *)__cil_tmp44;
17094#line 3481
17095 __cil_tmp45 = *mem_326;
17096#line 3481
17097 __cil_tmp46 = (unsigned int )__cil_tmp45;
17098#line 3481
17099 driveMediaConstants = DriveMediaConstants + __cil_tmp46;
17100#line 3488
17101 __cil_tmp47 = 1 * 1U;
17102#line 3488
17103 __cil_tmp48 = 112 + __cil_tmp47;
17104#line 3488
17105 __cil_tmp49 = (unsigned int )DisketteExtension;
17106#line 3488
17107 __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
17108#line 3488
17109 __cil_tmp51 = (unsigned int )driveMediaConstants;
17110#line 3488
17111 __cil_tmp52 = __cil_tmp51 + 51;
17112#line 3488
17113 mem_327 = (UCHAR *)__cil_tmp52;
17114#line 3488
17115 __cil_tmp53 = *mem_327;
17116#line 3488
17117 __cil_tmp54 = (int )__cil_tmp53;
17118#line 3488
17119 __cil_tmp55 = __cil_tmp54 - 1;
17120#line 3488
17121 __cil_tmp56 = __cil_tmp55 << 2;
17122#line 3488
17123 __cil_tmp57 = (unsigned int )DisketteExtension;
17124#line 3488
17125 __cil_tmp58 = __cil_tmp57 + 248;
17126#line 3488
17127 mem_328 = (UCHAR *)__cil_tmp58;
17128#line 3488
17129 __cil_tmp59 = *mem_328;
17130#line 3488
17131 __cil_tmp60 = (int )__cil_tmp59;
17132#line 3488
17133 __cil_tmp61 = __cil_tmp60 | __cil_tmp56;
17134#line 3488
17135 mem_329 = (UCHAR *)__cil_tmp50;
17136#line 3488
17137 *mem_329 = (unsigned char )__cil_tmp61;
17138#line 3492
17139 __cil_tmp62 = 0 * 1U;
17140#line 3492
17141 __cil_tmp63 = 112 + __cil_tmp62;
17142#line 3492
17143 __cil_tmp64 = (unsigned int )DisketteExtension;
17144#line 3492
17145 __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
17146#line 3492
17147 mem_330 = (UCHAR *)__cil_tmp65;
17148#line 3492
17149 *mem_330 = (unsigned char)84;
17150#line 3495
17151 __cil_tmp66 = 0 * 1U;
17152#line 3495
17153 __cil_tmp67 = 112 + __cil_tmp66;
17154#line 3495
17155 __cil_tmp68 = (unsigned int )DisketteExtension;
17156#line 3495
17157 __cil_tmp69 = __cil_tmp68 + __cil_tmp67;
17158#line 3495
17159 __cil_tmp70 = (UCHAR *)__cil_tmp69;
17160#line 3495
17161 __cil_tmp71 = 0 * 1U;
17162#line 3495
17163 __cil_tmp72 = 112 + __cil_tmp71;
17164#line 3495
17165 __cil_tmp73 = (unsigned int )DisketteExtension;
17166#line 3495
17167 __cil_tmp74 = __cil_tmp73 + __cil_tmp72;
17168#line 3495
17169 __cil_tmp75 = (UCHAR *)__cil_tmp74;
17170#line 3495
17171 __cil_tmp76 = (void *)0;
17172#line 3495
17173 __cil_tmp77 = (struct _MDL *)__cil_tmp76;
17174#line 3495
17175 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp70, __cil_tmp75, __cil_tmp77,
17176 0UL, 0UL);
17177 }
17178 {
17179#line 3502
17180 __cil_tmp78 = ntStatus >= 0L;
17181#line 3502
17182 if (! __cil_tmp78) {
17183 goto _L;
17184 } else {
17185 {
17186#line 3502
17187 __cil_tmp79 = (unsigned int )driveMediaConstants;
17188#line 3502
17189 __cil_tmp80 = __cil_tmp79 + 51;
17190#line 3502
17191 mem_331 = (UCHAR *)__cil_tmp80;
17192#line 3502
17193 __cil_tmp81 = *mem_331;
17194#line 3502
17195 __cil_tmp82 = (int )__cil_tmp81;
17196#line 3502
17197 __cil_tmp83 = __cil_tmp82 - 1;
17198#line 3502
17199 __cil_tmp84 = __cil_tmp83 << 2;
17200#line 3502
17201 __cil_tmp85 = (unsigned int )DisketteExtension;
17202#line 3502
17203 __cil_tmp86 = __cil_tmp85 + 248;
17204#line 3502
17205 mem_332 = (UCHAR *)__cil_tmp86;
17206#line 3502
17207 __cil_tmp87 = *mem_332;
17208#line 3502
17209 __cil_tmp88 = (int )__cil_tmp87;
17210#line 3502
17211 __cil_tmp89 = __cil_tmp88 | __cil_tmp84;
17212#line 3502
17213 __cil_tmp90 = (unsigned char )__cil_tmp89;
17214#line 3502
17215 __cil_tmp91 = (int )__cil_tmp90;
17216#line 3502
17217 __cil_tmp92 = 0 * 1U;
17218#line 3502
17219 __cil_tmp93 = 112 + __cil_tmp92;
17220#line 3502
17221 __cil_tmp94 = (unsigned int )DisketteExtension;
17222#line 3502
17223 __cil_tmp95 = __cil_tmp94 + __cil_tmp93;
17224#line 3502
17225 mem_333 = (UCHAR *)__cil_tmp95;
17226#line 3502
17227 __cil_tmp96 = *mem_333;
17228#line 3502
17229 __cil_tmp97 = (int )__cil_tmp96;
17230#line 3502
17231 __cil_tmp98 = __cil_tmp97 & -33;
17232#line 3502
17233 if (__cil_tmp98 != __cil_tmp91) {
17234 goto _L;
17235 } else {
17236 {
17237#line 3502
17238 __cil_tmp99 = 1 * 1U;
17239#line 3502
17240 __cil_tmp100 = 112 + __cil_tmp99;
17241#line 3502
17242 __cil_tmp101 = (unsigned int )DisketteExtension;
17243#line 3502
17244 __cil_tmp102 = __cil_tmp101 + __cil_tmp100;
17245#line 3502
17246 mem_334 = (UCHAR *)__cil_tmp102;
17247#line 3502
17248 __cil_tmp103 = *mem_334;
17249#line 3502
17250 __cil_tmp104 = (int )__cil_tmp103;
17251#line 3502
17252 if (__cil_tmp104 != 0) {
17253 goto _L;
17254 } else {
17255 {
17256#line 3502
17257 __cil_tmp105 = 2 * 1U;
17258#line 3502
17259 __cil_tmp106 = 112 + __cil_tmp105;
17260#line 3502
17261 __cil_tmp107 = (unsigned int )DisketteExtension;
17262#line 3502
17263 __cil_tmp108 = __cil_tmp107 + __cil_tmp106;
17264#line 3502
17265 mem_335 = (UCHAR *)__cil_tmp108;
17266#line 3502
17267 __cil_tmp109 = *mem_335;
17268#line 3502
17269 __cil_tmp110 = (int )__cil_tmp109;
17270#line 3502
17271 if (__cil_tmp110 != 0) {
17272 goto _L;
17273 } else {
17274 {
17275#line 3502
17276 __cil_tmp111 = (KUSER_SHARED_DATA * const )4292804608U;
17277#line 3502
17278 __cil_tmp112 = (unsigned int )__cil_tmp111;
17279#line 3502
17280 __cil_tmp113 = __cil_tmp112 + 732;
17281#line 3502
17282 mem_336 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp113;
17283#line 3502
17284 __cil_tmp114 = *mem_336;
17285#line 3502
17286 __cil_tmp115 = (int )__cil_tmp114;
17287#line 3502
17288 if (__cil_tmp115 == 1) {
17289 {
17290#line 3502
17291 __cil_tmp116 = (int )sectorLengthCode;
17292#line 3502
17293 __cil_tmp117 = 6 * 1U;
17294#line 3502
17295 __cil_tmp118 = 112 + __cil_tmp117;
17296#line 3502
17297 __cil_tmp119 = (unsigned int )DisketteExtension;
17298#line 3502
17299 __cil_tmp120 = __cil_tmp119 + __cil_tmp118;
17300#line 3502
17301 mem_337 = (UCHAR *)__cil_tmp120;
17302#line 3502
17303 __cil_tmp121 = *mem_337;
17304#line 3502
17305 __cil_tmp122 = (int )__cil_tmp121;
17306#line 3502
17307 if (__cil_tmp122 != __cil_tmp116) {
17308 _L:
17309 {
17310#line 3522
17311 while (1) {
17312 while_103_continue: ;
17313 goto while_103_break;
17314 }
17315 while_103_break: ;
17316 }
17317#line 3524
17318 __cil_tmp123 = (unsigned int )DisketteExtension;
17319#line 3524
17320 __cil_tmp124 = __cil_tmp123 + 216;
17321#line 3524
17322 __cil_tmp125 = (unsigned int )DisketteExtension;
17323#line 3524
17324 __cil_tmp126 = __cil_tmp125 + 216;
17325#line 3524
17326 mem_338 = (DRIVE_MEDIA_TYPE *)__cil_tmp126;
17327#line 3524
17328 __cil_tmp127 = *mem_338;
17329#line 3524
17330 __cil_tmp128 = (int )__cil_tmp127;
17331#line 3524
17332 __cil_tmp129 = __cil_tmp128 - 1;
17333#line 3524
17334 mem_339 = (DRIVE_MEDIA_TYPE *)__cil_tmp124;
17335#line 3524
17336 *mem_339 = (enum _DRIVE_MEDIA_TYPE )__cil_tmp129;
17337#line 3525
17338 __cil_tmp130 = (unsigned int )DisketteExtension;
17339#line 3525
17340 __cil_tmp131 = __cil_tmp130 + 308;
17341#line 3525
17342 __cil_tmp132 = (unsigned int )DisketteExtension;
17343#line 3525
17344 __cil_tmp133 = __cil_tmp132 + 216;
17345#line 3525
17346 mem_340 = (DRIVE_MEDIA_TYPE *)__cil_tmp133;
17347#line 3525
17348 __cil_tmp134 = *mem_340;
17349#line 3525
17350 __cil_tmp135 = (unsigned int )__cil_tmp134;
17351#line 3525
17352 __cil_tmp136 = DriveMediaConstants + __cil_tmp135;
17353#line 3525
17354 mem_341 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp131;
17355#line 3525
17356 *mem_341 = *__cil_tmp136;
17357#line 3528
17358 if (ntStatus != -1073741661L) {
17359#line 3530
17360 ntStatus = -1073741804L;
17361 } else {
17362
17363 }
17364 {
17365#line 3538
17366 __cil_tmp137 = (unsigned int )DisketteExtension;
17367#line 3538
17368 __cil_tmp138 = __cil_tmp137 + 174;
17369#line 3538
17370 mem_342 = (UCHAR *)__cil_tmp138;
17371#line 3538
17372 __cil_tmp139 = *mem_342;
17373#line 3538
17374 __cil_tmp140 = (int )__cil_tmp139;
17375#line 3538
17376 __cil_tmp141 = DriveMediaLimits + __cil_tmp140;
17377#line 3538
17378 __cil_tmp142 = (unsigned int )__cil_tmp141;
17379#line 3538
17380 __cil_tmp143 = __cil_tmp142 + 32;
17381#line 3538
17382 mem_343 = (DRIVE_MEDIA_TYPE *)__cil_tmp143;
17383#line 3538
17384 __cil_tmp144 = *mem_343;
17385#line 3538
17386 __cil_tmp145 = (char )__cil_tmp144;
17387#line 3538
17388 __cil_tmp146 = (int )__cil_tmp145;
17389#line 3538
17390 __cil_tmp147 = (unsigned int )DisketteExtension;
17391#line 3538
17392 __cil_tmp148 = __cil_tmp147 + 216;
17393#line 3538
17394 mem_344 = (DRIVE_MEDIA_TYPE *)__cil_tmp148;
17395#line 3538
17396 __cil_tmp149 = *mem_344;
17397#line 3538
17398 __cil_tmp150 = (char )__cil_tmp149;
17399#line 3538
17400 __cil_tmp151 = (int )__cil_tmp150;
17401#line 3538
17402 if (__cil_tmp151 < __cil_tmp146) {
17403#line 3542
17404 __cil_tmp152 = (unsigned int )DisketteExtension;
17405#line 3542
17406 __cil_tmp153 = __cil_tmp152 + 184;
17407#line 3542
17408 mem_345 = (MEDIA_TYPE *)__cil_tmp153;
17409#line 3542
17410 *mem_345 = (enum _MEDIA_TYPE )0;
17411#line 3543
17412 mediaTypesExhausted = (unsigned char)1;
17413 {
17414#line 3548
17415 while (1) {
17416 while_104_continue: ;
17417 goto while_104_break;
17418 }
17419 while_104_break: ;
17420 }
17421 } else {
17422
17423 }
17424 }
17425 } else {
17426 goto _L___0;
17427 }
17428 }
17429 } else {
17430 _L___0:
17431 {
17432#line 3553
17433 __cil_tmp154 = (KUSER_SHARED_DATA * const )4292804608U;
17434#line 3553
17435 __cil_tmp155 = (unsigned int )__cil_tmp154;
17436#line 3553
17437 __cil_tmp156 = __cil_tmp155 + 732;
17438#line 3553
17439 mem_346 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp156;
17440#line 3553
17441 __cil_tmp157 = *mem_346;
17442#line 3553
17443 __cil_tmp158 = (int )__cil_tmp157;
17444#line 3553
17445 if (__cil_tmp158 == 1) {
17446#line 3558
17447 __cil_tmp159 = (unsigned int )DisketteExtension;
17448#line 3558
17449 __cil_tmp160 = __cil_tmp159 + 184;
17450#line 3558
17451 mem_347 = (MEDIA_TYPE *)__cil_tmp160;
17452#line 3558
17453 mem_348 = (MEDIA_TYPE *)driveMediaConstants;
17454#line 3558
17455 *mem_347 = *mem_348;
17456#line 3560
17457 __cil_tmp161 = (unsigned int )DisketteExtension;
17458#line 3560
17459 __cil_tmp162 = __cil_tmp161 + 176;
17460#line 3560
17461 __cil_tmp163 = (unsigned int )driveMediaConstants;
17462#line 3560
17463 __cil_tmp164 = __cil_tmp163 + 36;
17464#line 3560
17465 mem_349 = (USHORT *)__cil_tmp164;
17466#line 3560
17467 __cil_tmp165 = *mem_349;
17468#line 3560
17469 mem_350 = (ULONG *)__cil_tmp162;
17470#line 3560
17471 *mem_350 = (unsigned long )__cil_tmp165;
17472 {
17473#line 3566
17474 while (1) {
17475 while_105_continue: ;
17476 goto while_105_break;
17477 }
17478 while_105_break: ;
17479 }
17480#line 3568
17481 __cil_tmp166 = (unsigned int )DisketteExtension;
17482#line 3568
17483 __cil_tmp167 = __cil_tmp166 + 180;
17484#line 3568
17485 __cil_tmp168 = (unsigned int )driveMediaConstants;
17486#line 3568
17487 __cil_tmp169 = __cil_tmp168 + 51;
17488#line 3568
17489 mem_351 = (UCHAR *)__cil_tmp169;
17490#line 3568
17491 __cil_tmp170 = *mem_351;
17492#line 3568
17493 __cil_tmp171 = (int )__cil_tmp170;
17494#line 3568
17495 __cil_tmp172 = (unsigned int )driveMediaConstants;
17496#line 3568
17497 __cil_tmp173 = __cil_tmp172 + 48;
17498#line 3568
17499 mem_352 = (UCHAR *)__cil_tmp173;
17500#line 3568
17501 __cil_tmp174 = *mem_352;
17502#line 3568
17503 __cil_tmp175 = (int )__cil_tmp174;
17504#line 3568
17505 __cil_tmp176 = 1 + __cil_tmp175;
17506#line 3568
17507 __cil_tmp177 = (unsigned int )driveMediaConstants;
17508#line 3568
17509 __cil_tmp178 = __cil_tmp177 + 38;
17510#line 3568
17511 mem_353 = (UCHAR *)__cil_tmp178;
17512#line 3568
17513 __cil_tmp179 = *mem_353;
17514#line 3568
17515 __cil_tmp180 = (int )__cil_tmp179;
17516#line 3568
17517 __cil_tmp181 = (unsigned int )driveMediaConstants;
17518#line 3568
17519 __cil_tmp182 = __cil_tmp181 + 36;
17520#line 3568
17521 mem_354 = (USHORT *)__cil_tmp182;
17522#line 3568
17523 __cil_tmp183 = *mem_354;
17524#line 3568
17525 __cil_tmp184 = (int )__cil_tmp183;
17526#line 3568
17527 __cil_tmp185 = __cil_tmp184 * __cil_tmp180;
17528#line 3568
17529 __cil_tmp186 = __cil_tmp185 * __cil_tmp176;
17530#line 3568
17531 __cil_tmp187 = __cil_tmp186 * __cil_tmp171;
17532#line 3568
17533 mem_355 = (ULONG *)__cil_tmp167;
17534#line 3568
17535 *mem_355 = (unsigned long )__cil_tmp187;
17536#line 3578
17537 __cil_tmp188 = (unsigned int )DisketteExtension;
17538#line 3578
17539 __cil_tmp189 = __cil_tmp188 + 308;
17540#line 3578
17541 __cil_tmp190 = (unsigned int )DisketteExtension;
17542#line 3578
17543 __cil_tmp191 = __cil_tmp190 + 216;
17544#line 3578
17545 mem_356 = (DRIVE_MEDIA_TYPE *)__cil_tmp191;
17546#line 3578
17547 __cil_tmp192 = *mem_356;
17548#line 3578
17549 __cil_tmp193 = (unsigned int )__cil_tmp192;
17550#line 3578
17551 __cil_tmp194 = DriveMediaConstants + __cil_tmp193;
17552#line 3578
17553 mem_357 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp189;
17554#line 3578
17555 *mem_357 = *__cil_tmp194;
17556 {
17557#line 3588
17558 __cil_tmp195 = (KUSER_SHARED_DATA * const )4292804608U;
17559#line 3588
17560 __cil_tmp196 = (unsigned int )__cil_tmp195;
17561#line 3588
17562 __cil_tmp197 = __cil_tmp196 + 732;
17563#line 3588
17564 mem_358 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp197;
17565#line 3588
17566 __cil_tmp198 = *mem_358;
17567#line 3588
17568 __cil_tmp199 = (int )__cil_tmp198;
17569#line 3588
17570 if (__cil_tmp199 == 1) {
17571#line 3588
17572 tmp = 1024;
17573 } else {
17574#line 3588
17575 tmp = 512;
17576 }
17577 }
17578 {
17579#line 3588
17580 __cil_tmp200 = (enum _POOL_TYPE )4;
17581#line 3588
17582 __cil_tmp201 = (unsigned long )tmp;
17583#line 3588
17584 tmp___0 = ExAllocatePoolWithTag(__cil_tmp200, __cil_tmp201, 1886350406UL);
17585#line 3588
17586 bootSector = (struct _BOOT_SECTOR_INFO *)tmp___0;
17587 }
17588#line 3589
17589 if (! bootSector) {
17590#line 3590
17591 return (-1073741670L);
17592 } else {
17593
17594 }
17595#line 3593
17596 __cil_tmp202 = 0 + 4;
17597#line 3593
17598 __cil_tmp203 = (unsigned int )(& offset) + __cil_tmp202;
17599#line 3593
17600 mem_359 = (LONG *)__cil_tmp203;
17601#line 3593
17602 *mem_359 = 0L;
17603#line 3593
17604 __cil_tmp204 = & offset;
17605#line 3593
17606 __cil_tmp205 = 0 + 4;
17607#line 3593
17608 __cil_tmp206 = (unsigned int )(& offset) + __cil_tmp205;
17609#line 3593
17610 mem_360 = (LONG *)__cil_tmp206;
17611#line 3593
17612 __cil_tmp207 = *mem_360;
17613#line 3593
17614 mem_361 = (ULONG *)__cil_tmp204;
17615#line 3593
17616 *mem_361 = (unsigned long )__cil_tmp207;
17617 {
17618#line 3594
17619 __cil_tmp208 = (KUSER_SHARED_DATA * const )4292804608U;
17620#line 3594
17621 __cil_tmp209 = (unsigned int )__cil_tmp208;
17622#line 3594
17623 __cil_tmp210 = __cil_tmp209 + 732;
17624#line 3594
17625 mem_362 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp210;
17626#line 3594
17627 __cil_tmp211 = *mem_362;
17628#line 3594
17629 __cil_tmp212 = (int )__cil_tmp211;
17630#line 3594
17631 if (__cil_tmp212 == 1) {
17632#line 3594
17633 tmp___1 = 1024;
17634 } else {
17635#line 3594
17636 tmp___1 = 512;
17637 }
17638 }
17639 {
17640#line 3594
17641 __cil_tmp213 = (unsigned int )DisketteExtension;
17642#line 3594
17643 __cil_tmp214 = __cil_tmp213 + 28;
17644#line 3594
17645 mem_363 = (PDEVICE_OBJECT *)__cil_tmp214;
17646#line 3594
17647 __cil_tmp215 = *mem_363;
17648#line 3594
17649 __cil_tmp216 = (void *)bootSector;
17650#line 3594
17651 __cil_tmp217 = (unsigned long )tmp___1;
17652#line 3594
17653 __cil_tmp218 = (void *)0;
17654#line 3594
17655 __cil_tmp219 = (struct _IO_STATUS_BLOCK *)__cil_tmp218;
17656#line 3594
17657 irp = IoBuildAsynchronousFsdRequest(3UL, __cil_tmp215, __cil_tmp216,
17658 __cil_tmp217, & offset, __cil_tmp219);
17659 }
17660#line 3600
17661 if (! irp) {
17662 {
17663#line 3603
17664 while (1) {
17665 while_106_continue: ;
17666 goto while_106_break;
17667 }
17668 while_106_break: ;
17669 }
17670 {
17671#line 3604
17672 __cil_tmp220 = (void *)bootSector;
17673#line 3604
17674 ExFreePool(__cil_tmp220);
17675 }
17676#line 3605
17677 return (-1073741670L);
17678 } else {
17679
17680 }
17681 {
17682#line 3607
17683 __cil_tmp221 = (unsigned int )irp;
17684#line 3607
17685 __cil_tmp222 = __cil_tmp221 + 35;
17686#line 3607
17687 __cil_tmp223 = (unsigned int )irp;
17688#line 3607
17689 __cil_tmp224 = __cil_tmp223 + 35;
17690#line 3607
17691 mem_364 = (CHAR *)__cil_tmp224;
17692#line 3607
17693 __cil_tmp225 = *mem_364;
17694#line 3607
17695 __cil_tmp226 = (int )__cil_tmp225;
17696#line 3607
17697 __cil_tmp227 = __cil_tmp226 - 1;
17698#line 3607
17699 mem_365 = (CHAR *)__cil_tmp222;
17700#line 3607
17701 *mem_365 = (char )__cil_tmp227;
17702#line 3608
17703 __cil_tmp228 = 24 + 8;
17704#line 3608
17705 __cil_tmp229 = 0 + __cil_tmp228;
17706#line 3608
17707 __cil_tmp230 = 64 + __cil_tmp229;
17708#line 3608
17709 __cil_tmp231 = (unsigned int )irp;
17710#line 3608
17711 __cil_tmp232 = __cil_tmp231 + __cil_tmp230;
17712#line 3608
17713 __cil_tmp233 = 24 + 8;
17714#line 3608
17715 __cil_tmp234 = 0 + __cil_tmp233;
17716#line 3608
17717 __cil_tmp235 = 64 + __cil_tmp234;
17718#line 3608
17719 __cil_tmp236 = (unsigned int )irp;
17720#line 3608
17721 __cil_tmp237 = __cil_tmp236 + __cil_tmp235;
17722#line 3608
17723 mem_366 = (struct _IO_STACK_LOCATION **)__cil_tmp237;
17724#line 3608
17725 __cil_tmp238 = *mem_366;
17726#line 3608
17727 mem_367 = (struct _IO_STACK_LOCATION **)__cil_tmp232;
17728#line 3608
17729 *mem_367 = __cil_tmp238 - 1;
17730#line 3613
17731 ntStatus = FlReadWrite(DisketteExtension, irp, (unsigned char)1);
17732 }
17733 {
17734#line 3618
17735 while (1) {
17736 while_107_continue: ;
17737 goto while_107_break;
17738 }
17739 while_107_break: ;
17740 }
17741 {
17742#line 3620
17743 __cil_tmp239 = (unsigned int )irp;
17744#line 3620
17745 __cil_tmp240 = __cil_tmp239 + 4;
17746#line 3620
17747 mem_368 = (PMDL *)__cil_tmp240;
17748#line 3620
17749 __cil_tmp241 = *mem_368;
17750#line 3620
17751 MmUnlockPages(__cil_tmp241);
17752#line 3621
17753 __cil_tmp242 = (unsigned int )irp;
17754#line 3621
17755 __cil_tmp243 = __cil_tmp242 + 4;
17756#line 3621
17757 mem_369 = (PMDL *)__cil_tmp243;
17758#line 3621
17759 __cil_tmp244 = *mem_369;
17760#line 3621
17761 IoFreeMdl(__cil_tmp244);
17762#line 3622
17763 IoFreeIrp(irp);
17764#line 3623
17765 __cil_tmp245 = (void *)bootSector;
17766#line 3623
17767 ExFreePool(__cil_tmp245);
17768 }
17769 {
17770#line 3625
17771 __cil_tmp246 = ntStatus >= 0L;
17772#line 3625
17773 if (! __cil_tmp246) {
17774 {
17775#line 3642
17776 while (1) {
17777 while_108_continue: ;
17778 goto while_108_break;
17779 }
17780 while_108_break: ;
17781 }
17782#line 3644
17783 __cil_tmp247 = (unsigned int )DisketteExtension;
17784#line 3644
17785 __cil_tmp248 = __cil_tmp247 + 216;
17786#line 3644
17787 __cil_tmp249 = (unsigned int )DisketteExtension;
17788#line 3644
17789 __cil_tmp250 = __cil_tmp249 + 216;
17790#line 3644
17791 mem_370 = (DRIVE_MEDIA_TYPE *)__cil_tmp250;
17792#line 3644
17793 __cil_tmp251 = *mem_370;
17794#line 3644
17795 __cil_tmp252 = (int )__cil_tmp251;
17796#line 3644
17797 __cil_tmp253 = __cil_tmp252 - 1;
17798#line 3644
17799 mem_371 = (DRIVE_MEDIA_TYPE *)__cil_tmp248;
17800#line 3644
17801 *mem_371 = (enum _DRIVE_MEDIA_TYPE )__cil_tmp253;
17802#line 3646
17803 __cil_tmp254 = (unsigned int )DisketteExtension;
17804#line 3646
17805 __cil_tmp255 = __cil_tmp254 + 308;
17806#line 3646
17807 __cil_tmp256 = (unsigned int )DisketteExtension;
17808#line 3646
17809 __cil_tmp257 = __cil_tmp256 + 216;
17810#line 3646
17811 mem_372 = (DRIVE_MEDIA_TYPE *)__cil_tmp257;
17812#line 3646
17813 __cil_tmp258 = *mem_372;
17814#line 3646
17815 __cil_tmp259 = (unsigned int )__cil_tmp258;
17816#line 3646
17817 __cil_tmp260 = DriveMediaConstants + __cil_tmp259;
17818#line 3646
17819 mem_373 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp255;
17820#line 3646
17821 *mem_373 = *__cil_tmp260;
17822#line 3649
17823 if (ntStatus != -1073741661L) {
17824#line 3651
17825 ntStatus = -1073741804L;
17826 } else {
17827
17828 }
17829 {
17830#line 3660
17831 __cil_tmp261 = (unsigned int )DisketteExtension;
17832#line 3660
17833 __cil_tmp262 = __cil_tmp261 + 174;
17834#line 3660
17835 mem_374 = (UCHAR *)__cil_tmp262;
17836#line 3660
17837 __cil_tmp263 = *mem_374;
17838#line 3660
17839 __cil_tmp264 = (int )__cil_tmp263;
17840#line 3660
17841 __cil_tmp265 = DriveMediaLimits + __cil_tmp264;
17842#line 3660
17843 __cil_tmp266 = (unsigned int )__cil_tmp265;
17844#line 3660
17845 __cil_tmp267 = __cil_tmp266 + 32;
17846#line 3660
17847 mem_375 = (DRIVE_MEDIA_TYPE *)__cil_tmp267;
17848#line 3660
17849 __cil_tmp268 = *mem_375;
17850#line 3660
17851 __cil_tmp269 = (char )__cil_tmp268;
17852#line 3660
17853 __cil_tmp270 = (int )__cil_tmp269;
17854#line 3660
17855 __cil_tmp271 = (unsigned int )DisketteExtension;
17856#line 3660
17857 __cil_tmp272 = __cil_tmp271 + 216;
17858#line 3660
17859 mem_376 = (DRIVE_MEDIA_TYPE *)__cil_tmp272;
17860#line 3660
17861 __cil_tmp273 = *mem_376;
17862#line 3660
17863 __cil_tmp274 = (char )__cil_tmp273;
17864#line 3660
17865 __cil_tmp275 = (int )__cil_tmp274;
17866#line 3660
17867 if (__cil_tmp275 < __cil_tmp270) {
17868#line 3664
17869 __cil_tmp276 = (unsigned int )DisketteExtension;
17870#line 3664
17871 __cil_tmp277 = __cil_tmp276 + 184;
17872#line 3664
17873 mem_377 = (MEDIA_TYPE *)__cil_tmp277;
17874#line 3664
17875 *mem_377 = (enum _MEDIA_TYPE )0;
17876#line 3665
17877 mediaTypesExhausted = (unsigned char)1;
17878 {
17879#line 3670
17880 while (1) {
17881 while_109_continue: ;
17882 goto while_109_break;
17883 }
17884 while_109_break: ;
17885 }
17886 } else {
17887
17888 }
17889 }
17890 } else {
17891
17892 }
17893 }
17894 } else {
17895
17896 }
17897 }
17898 }
17899 }
17900 }
17901 }
17902 }
17903 }
17904 }
17905 }
17906 }
17907 }
17908 }
17909 }
17910 {
17911#line 3450
17912 __cil_tmp278 = ntStatus >= 0L;
17913#line 3450
17914 if (! __cil_tmp278) {
17915 {
17916#line 3450
17917 __cil_tmp279 = ! mediaTypesExhausted;
17918#line 3450
17919 if (! __cil_tmp279) {
17920 goto while_101_break;
17921 } else {
17922
17923 }
17924 }
17925 } else {
17926 goto while_101_break;
17927 }
17928 }
17929 }
17930 while_101_break: ;
17931 }
17932#line 3680
17933 if (ntStatus >= 0L) {
17934 {
17935#line 3689
17936 while (1) {
17937 while_110_continue: ;
17938 goto while_110_break;
17939 }
17940 while_110_break: ;
17941 }
17942 goto while_99_break;
17943 } else {
17944
17945 }
17946#line 3418
17947 retries = retries + 1UL;
17948 }
17949 while_99_break: ;
17950 }
17951 {
17952#line 3694
17953 __cil_tmp280 = ntStatus >= 0L;
17954#line 3694
17955 if (! __cil_tmp280) {
17956 goto _L___1;
17957 } else {
17958#line 3694
17959 if (mediaTypesExhausted) {
17960 _L___1:
17961 {
17962#line 3701
17963 while (1) {
17964 while_111_continue: ;
17965 goto while_111_break;
17966 }
17967 while_111_break: ;
17968 }
17969#line 3702
17970 return (ntStatus);
17971 } else {
17972
17973 }
17974 }
17975 }
17976#line 3705
17977 __cil_tmp281 = (unsigned int )DisketteExtension;
17978#line 3705
17979 __cil_tmp282 = __cil_tmp281 + 184;
17980#line 3705
17981 mem_378 = (MEDIA_TYPE *)__cil_tmp282;
17982#line 3705
17983 mem_379 = (MEDIA_TYPE *)driveMediaConstants;
17984#line 3705
17985 *mem_378 = *mem_379;
17986#line 3706
17987 __cil_tmp283 = (unsigned int )DisketteExtension;
17988#line 3706
17989 __cil_tmp284 = __cil_tmp283 + 176;
17990#line 3706
17991 __cil_tmp285 = (unsigned int )driveMediaConstants;
17992#line 3706
17993 __cil_tmp286 = __cil_tmp285 + 36;
17994#line 3706
17995 mem_380 = (USHORT *)__cil_tmp286;
17996#line 3706
17997 __cil_tmp287 = *mem_380;
17998#line 3706
17999 mem_381 = (ULONG *)__cil_tmp284;
18000#line 3706
18001 *mem_381 = (unsigned long )__cil_tmp287;
18002#line 3708
18003 __cil_tmp288 = (unsigned int )DisketteExtension;
18004#line 3708
18005 __cil_tmp289 = __cil_tmp288 + 180;
18006#line 3708
18007 __cil_tmp290 = (unsigned int )driveMediaConstants;
18008#line 3708
18009 __cil_tmp291 = __cil_tmp290 + 51;
18010#line 3708
18011 mem_382 = (UCHAR *)__cil_tmp291;
18012#line 3708
18013 __cil_tmp292 = *mem_382;
18014#line 3708
18015 __cil_tmp293 = (int )__cil_tmp292;
18016#line 3708
18017 __cil_tmp294 = (unsigned int )driveMediaConstants;
18018#line 3708
18019 __cil_tmp295 = __cil_tmp294 + 48;
18020#line 3708
18021 mem_383 = (UCHAR *)__cil_tmp295;
18022#line 3708
18023 __cil_tmp296 = *mem_383;
18024#line 3708
18025 __cil_tmp297 = (int )__cil_tmp296;
18026#line 3708
18027 __cil_tmp298 = 1 + __cil_tmp297;
18028#line 3708
18029 __cil_tmp299 = (unsigned int )driveMediaConstants;
18030#line 3708
18031 __cil_tmp300 = __cil_tmp299 + 38;
18032#line 3708
18033 mem_384 = (UCHAR *)__cil_tmp300;
18034#line 3708
18035 __cil_tmp301 = *mem_384;
18036#line 3708
18037 __cil_tmp302 = (int )__cil_tmp301;
18038#line 3708
18039 __cil_tmp303 = (unsigned int )driveMediaConstants;
18040#line 3708
18041 __cil_tmp304 = __cil_tmp303 + 36;
18042#line 3708
18043 mem_385 = (USHORT *)__cil_tmp304;
18044#line 3708
18045 __cil_tmp305 = *mem_385;
18046#line 3708
18047 __cil_tmp306 = (int )__cil_tmp305;
18048#line 3708
18049 __cil_tmp307 = __cil_tmp306 * __cil_tmp302;
18050#line 3708
18051 __cil_tmp308 = __cil_tmp307 * __cil_tmp298;
18052#line 3708
18053 __cil_tmp309 = __cil_tmp308 * __cil_tmp293;
18054#line 3708
18055 mem_386 = (ULONG *)__cil_tmp289;
18056#line 3708
18057 *mem_386 = (unsigned long )__cil_tmp309;
18058 {
18059#line 3720
18060 while (1) {
18061 while_112_continue: ;
18062 goto while_112_break;
18063 }
18064 while_112_break: ;
18065 }
18066 {
18067#line 3725
18068 __cil_tmp310 = (unsigned int )DisketteExtension;
18069#line 3725
18070 __cil_tmp311 = __cil_tmp310 + 308;
18071#line 3725
18072 __cil_tmp312 = (unsigned int )DisketteExtension;
18073#line 3725
18074 __cil_tmp313 = __cil_tmp312 + 216;
18075#line 3725
18076 mem_387 = (DRIVE_MEDIA_TYPE *)__cil_tmp313;
18077#line 3725
18078 __cil_tmp314 = *mem_387;
18079#line 3725
18080 __cil_tmp315 = (unsigned int )__cil_tmp314;
18081#line 3725
18082 __cil_tmp316 = DriveMediaConstants + __cil_tmp315;
18083#line 3725
18084 mem_388 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp311;
18085#line 3725
18086 *mem_388 = *__cil_tmp316;
18087#line 3731
18088 FlCheckBootSector(DisketteExtension);
18089 }
18090#line 3733
18091 return (ntStatus);
18092}
18093}
18094#line 3736 "floppy.c"
18095void FlAllocateIoBuffer(PDISKETTE_EXTENSION DisketteExtension , ULONG BufferSize )
18096{ BOOLEAN allocateContiguous ;
18097 LARGE_INTEGER maxDmaAddress ;
18098 PVOID tmp ;
18099 PVOID tmp___0 ;
18100 unsigned int __cil_tmp7 ;
18101 unsigned int __cil_tmp8 ;
18102 unsigned int __cil_tmp9 ;
18103 unsigned int __cil_tmp10 ;
18104 ULONG __cil_tmp11 ;
18105 unsigned int __cil_tmp12 ;
18106 unsigned int __cil_tmp13 ;
18107 ULONG __cil_tmp14 ;
18108 unsigned int __cil_tmp15 ;
18109 unsigned int __cil_tmp16 ;
18110 enum _POOL_TYPE __cil_tmp17 ;
18111 unsigned int __cil_tmp18 ;
18112 unsigned int __cil_tmp19 ;
18113 unsigned int __cil_tmp20 ;
18114 unsigned int __cil_tmp21 ;
18115 PUCHAR __cil_tmp22 ;
18116 unsigned int __cil_tmp23 ;
18117 unsigned int __cil_tmp24 ;
18118 unsigned int __cil_tmp25 ;
18119 unsigned int __cil_tmp26 ;
18120 PUCHAR __cil_tmp27 ;
18121 void *__cil_tmp28 ;
18122 void *__cil_tmp29 ;
18123 struct _IRP *__cil_tmp30 ;
18124 unsigned int __cil_tmp31 ;
18125 unsigned int __cil_tmp32 ;
18126 PMDL __cil_tmp33 ;
18127 unsigned int __cil_tmp34 ;
18128 unsigned int __cil_tmp35 ;
18129 PUCHAR __cil_tmp36 ;
18130 void *__cil_tmp37 ;
18131 unsigned int __cil_tmp38 ;
18132 unsigned int __cil_tmp39 ;
18133 PUCHAR __cil_tmp40 ;
18134 void *__cil_tmp41 ;
18135 unsigned int __cil_tmp42 ;
18136 unsigned int __cil_tmp43 ;
18137 void *__cil_tmp44 ;
18138 unsigned int __cil_tmp45 ;
18139 unsigned int __cil_tmp46 ;
18140 PMDL __cil_tmp47 ;
18141 enum _LOCK_OPERATION __cil_tmp48 ;
18142 unsigned int __cil_tmp49 ;
18143 unsigned int __cil_tmp50 ;
18144 PUCHAR __cil_tmp51 ;
18145 void *__cil_tmp52 ;
18146 unsigned int __cil_tmp53 ;
18147 unsigned int __cil_tmp54 ;
18148 PUCHAR __cil_tmp55 ;
18149 void *__cil_tmp56 ;
18150 unsigned int __cil_tmp57 ;
18151 unsigned int __cil_tmp58 ;
18152 void *__cil_tmp59 ;
18153 unsigned int __cil_tmp60 ;
18154 unsigned int __cil_tmp61 ;
18155 PUCHAR *mem_62 ;
18156 ULONG *mem_63 ;
18157 ULONG *mem_64 ;
18158 PUCHAR *mem_65 ;
18159 PUCHAR *mem_66 ;
18160 PUCHAR *mem_67 ;
18161 PUCHAR *mem_68 ;
18162 PMDL *mem_69 ;
18163 PMDL *mem_70 ;
18164 PUCHAR *mem_71 ;
18165 PUCHAR *mem_72 ;
18166 PUCHAR *mem_73 ;
18167 PMDL *mem_74 ;
18168 PUCHAR *mem_75 ;
18169 PUCHAR *mem_76 ;
18170 PUCHAR *mem_77 ;
18171 ULONG *mem_78 ;
18172
18173 {
18174 {
18175#line 3764
18176 __cil_tmp7 = (unsigned int )DisketteExtension;
18177#line 3764
18178 __cil_tmp8 = __cil_tmp7 + 124;
18179 {
18180#line 3764
18181 mem_62 = (PUCHAR *)__cil_tmp8;
18182#line 3764
18183 if (*mem_62) {
18184 {
18185#line 3765
18186 __cil_tmp9 = (unsigned int )DisketteExtension;
18187#line 3765
18188 __cil_tmp10 = __cil_tmp9 + 132;
18189#line 3765
18190 mem_63 = (ULONG *)__cil_tmp10;
18191#line 3765
18192 __cil_tmp11 = *mem_63;
18193#line 3765
18194 if (__cil_tmp11 >= BufferSize) {
18195
18196 } else {
18197
18198 }
18199 }
18200 {
18201#line 3768
18202 FlFreeIoBuffer(DisketteExtension);
18203 }
18204 } else {
18205
18206 }
18207 }
18208 }
18209 {
18210#line 3771
18211 __cil_tmp12 = (unsigned int )DisketteExtension;
18212#line 3771
18213 __cil_tmp13 = __cil_tmp12 + 108;
18214#line 3771
18215 mem_64 = (ULONG *)__cil_tmp13;
18216#line 3771
18217 __cil_tmp14 = *mem_64;
18218#line 3771
18219 if (BufferSize > __cil_tmp14) {
18220#line 3772
18221 allocateContiguous = (unsigned char)1;
18222 } else {
18223#line 3774
18224 allocateContiguous = (unsigned char)0;
18225 }
18226 }
18227#line 3777
18228 if (allocateContiguous) {
18229 {
18230#line 3778
18231 maxDmaAddress.QuadPart = 16777215LL;
18232#line 3779
18233 tmp = MmAllocateContiguousMemory(BufferSize, maxDmaAddress);
18234#line 3779
18235 __cil_tmp15 = (unsigned int )DisketteExtension;
18236#line 3779
18237 __cil_tmp16 = __cil_tmp15 + 124;
18238#line 3779
18239 mem_65 = (PUCHAR *)__cil_tmp16;
18240#line 3779
18241 *mem_65 = (UCHAR *)tmp;
18242 }
18243 } else {
18244 {
18245#line 3782
18246 __cil_tmp17 = (enum _POOL_TYPE )4;
18247#line 3782
18248 tmp___0 = ExAllocatePoolWithTag(__cil_tmp17, BufferSize, 1886350406UL);
18249#line 3782
18250 __cil_tmp18 = (unsigned int )DisketteExtension;
18251#line 3782
18252 __cil_tmp19 = __cil_tmp18 + 124;
18253#line 3782
18254 mem_66 = (PUCHAR *)__cil_tmp19;
18255#line 3782
18256 *mem_66 = (UCHAR *)tmp___0;
18257 }
18258 }
18259 {
18260#line 3786
18261 __cil_tmp20 = (unsigned int )DisketteExtension;
18262#line 3786
18263 __cil_tmp21 = __cil_tmp20 + 124;
18264#line 3786
18265 mem_67 = (PUCHAR *)__cil_tmp21;
18266#line 3786
18267 __cil_tmp22 = *mem_67;
18268#line 3786
18269 if (! __cil_tmp22) {
18270
18271 } else {
18272
18273 }
18274 }
18275 {
18276#line 3790
18277 __cil_tmp23 = (unsigned int )DisketteExtension;
18278#line 3790
18279 __cil_tmp24 = __cil_tmp23 + 128;
18280#line 3790
18281 __cil_tmp25 = (unsigned int )DisketteExtension;
18282#line 3790
18283 __cil_tmp26 = __cil_tmp25 + 124;
18284#line 3790
18285 mem_68 = (PUCHAR *)__cil_tmp26;
18286#line 3790
18287 __cil_tmp27 = *mem_68;
18288#line 3790
18289 __cil_tmp28 = (void *)__cil_tmp27;
18290#line 3790
18291 __cil_tmp29 = (void *)0;
18292#line 3790
18293 __cil_tmp30 = (struct _IRP *)__cil_tmp29;
18294#line 3790
18295 mem_69 = (PMDL *)__cil_tmp24;
18296#line 3790
18297 *mem_69 = IoAllocateMdl(__cil_tmp28, BufferSize, (unsigned char)0, (unsigned char)0,
18298 __cil_tmp30);
18299 }
18300 {
18301#line 3792
18302 __cil_tmp31 = (unsigned int )DisketteExtension;
18303#line 3792
18304 __cil_tmp32 = __cil_tmp31 + 128;
18305#line 3792
18306 mem_70 = (PMDL *)__cil_tmp32;
18307#line 3792
18308 __cil_tmp33 = *mem_70;
18309#line 3792
18310 if (! __cil_tmp33) {
18311#line 3793
18312 if (allocateContiguous) {
18313 {
18314#line 3794
18315 __cil_tmp34 = (unsigned int )DisketteExtension;
18316#line 3794
18317 __cil_tmp35 = __cil_tmp34 + 124;
18318#line 3794
18319 mem_71 = (PUCHAR *)__cil_tmp35;
18320#line 3794
18321 __cil_tmp36 = *mem_71;
18322#line 3794
18323 __cil_tmp37 = (void *)__cil_tmp36;
18324#line 3794
18325 MmFreeContiguousMemory(__cil_tmp37);
18326 }
18327 } else {
18328 {
18329#line 3796
18330 __cil_tmp38 = (unsigned int )DisketteExtension;
18331#line 3796
18332 __cil_tmp39 = __cil_tmp38 + 124;
18333#line 3796
18334 mem_72 = (PUCHAR *)__cil_tmp39;
18335#line 3796
18336 __cil_tmp40 = *mem_72;
18337#line 3796
18338 __cil_tmp41 = (void *)__cil_tmp40;
18339#line 3796
18340 ExFreePool(__cil_tmp41);
18341 }
18342 }
18343#line 3798
18344 __cil_tmp42 = (unsigned int )DisketteExtension;
18345#line 3798
18346 __cil_tmp43 = __cil_tmp42 + 124;
18347#line 3798
18348 __cil_tmp44 = (void *)0;
18349#line 3798
18350 mem_73 = (PUCHAR *)__cil_tmp43;
18351#line 3798
18352 *mem_73 = (UCHAR *)__cil_tmp44;
18353 } else {
18354
18355 }
18356 }
18357 {
18358#line 3803
18359 __cil_tmp45 = (unsigned int )DisketteExtension;
18360#line 3803
18361 __cil_tmp46 = __cil_tmp45 + 128;
18362#line 3803
18363 mem_74 = (PMDL *)__cil_tmp46;
18364#line 3803
18365 __cil_tmp47 = *mem_74;
18366#line 3803
18367 __cil_tmp48 = (enum _LOCK_OPERATION )2;
18368#line 3803
18369 MmProbeAndLockPages(__cil_tmp47, (char)0, __cil_tmp48);
18370 }
18371 {
18372#line 3809
18373 while (1) {
18374 while_113_continue: ;
18375 goto while_113_break;
18376 }
18377 while_113_break: ;
18378 }
18379#line 3810
18380 if (allocateContiguous) {
18381 {
18382#line 3811
18383 __cil_tmp49 = (unsigned int )DisketteExtension;
18384#line 3811
18385 __cil_tmp50 = __cil_tmp49 + 124;
18386#line 3811
18387 mem_75 = (PUCHAR *)__cil_tmp50;
18388#line 3811
18389 __cil_tmp51 = *mem_75;
18390#line 3811
18391 __cil_tmp52 = (void *)__cil_tmp51;
18392#line 3811
18393 MmFreeContiguousMemory(__cil_tmp52);
18394 }
18395 } else {
18396 {
18397#line 3813
18398 __cil_tmp53 = (unsigned int )DisketteExtension;
18399#line 3813
18400 __cil_tmp54 = __cil_tmp53 + 124;
18401#line 3813
18402 mem_76 = (PUCHAR *)__cil_tmp54;
18403#line 3813
18404 __cil_tmp55 = *mem_76;
18405#line 3813
18406 __cil_tmp56 = (void *)__cil_tmp55;
18407#line 3813
18408 ExFreePool(__cil_tmp56);
18409 }
18410 }
18411#line 3815
18412 __cil_tmp57 = (unsigned int )DisketteExtension;
18413#line 3815
18414 __cil_tmp58 = __cil_tmp57 + 124;
18415#line 3815
18416 __cil_tmp59 = (void *)0;
18417#line 3815
18418 mem_77 = (PUCHAR *)__cil_tmp58;
18419#line 3815
18420 *mem_77 = (UCHAR *)__cil_tmp59;
18421#line 3819
18422 __cil_tmp60 = (unsigned int )DisketteExtension;
18423#line 3819
18424 __cil_tmp61 = __cil_tmp60 + 132;
18425#line 3819
18426 mem_78 = (ULONG *)__cil_tmp61;
18427#line 3819
18428 *mem_78 = BufferSize;
18429#line 3821
18430 return;
18431}
18432}
18433#line 3822 "floppy.c"
18434void FlFreeIoBuffer(PDISKETTE_EXTENSION DisketteExtension )
18435{ BOOLEAN contiguousBuffer ;
18436 unsigned int __cil_tmp3 ;
18437 unsigned int __cil_tmp4 ;
18438 PUCHAR __cil_tmp5 ;
18439 unsigned int __cil_tmp6 ;
18440 unsigned int __cil_tmp7 ;
18441 ULONG __cil_tmp8 ;
18442 unsigned int __cil_tmp9 ;
18443 unsigned int __cil_tmp10 ;
18444 ULONG __cil_tmp11 ;
18445 unsigned int __cil_tmp12 ;
18446 unsigned int __cil_tmp13 ;
18447 unsigned int __cil_tmp14 ;
18448 unsigned int __cil_tmp15 ;
18449 PMDL __cil_tmp16 ;
18450 unsigned int __cil_tmp17 ;
18451 unsigned int __cil_tmp18 ;
18452 PMDL __cil_tmp19 ;
18453 unsigned int __cil_tmp20 ;
18454 unsigned int __cil_tmp21 ;
18455 void *__cil_tmp22 ;
18456 unsigned int __cil_tmp23 ;
18457 unsigned int __cil_tmp24 ;
18458 PUCHAR __cil_tmp25 ;
18459 void *__cil_tmp26 ;
18460 unsigned int __cil_tmp27 ;
18461 unsigned int __cil_tmp28 ;
18462 PUCHAR __cil_tmp29 ;
18463 void *__cil_tmp30 ;
18464 unsigned int __cil_tmp31 ;
18465 unsigned int __cil_tmp32 ;
18466 void *__cil_tmp33 ;
18467 PUCHAR *mem_34 ;
18468 ULONG *mem_35 ;
18469 ULONG *mem_36 ;
18470 ULONG *mem_37 ;
18471 PMDL *mem_38 ;
18472 PMDL *mem_39 ;
18473 PMDL *mem_40 ;
18474 PUCHAR *mem_41 ;
18475 PUCHAR *mem_42 ;
18476 PUCHAR *mem_43 ;
18477
18478 {
18479 {
18480#line 3846
18481 __cil_tmp3 = (unsigned int )DisketteExtension;
18482#line 3846
18483 __cil_tmp4 = __cil_tmp3 + 124;
18484#line 3846
18485 mem_34 = (PUCHAR *)__cil_tmp4;
18486#line 3846
18487 __cil_tmp5 = *mem_34;
18488#line 3846
18489 if (! __cil_tmp5) {
18490
18491 } else {
18492
18493 }
18494 }
18495 {
18496#line 3850
18497 __cil_tmp6 = (unsigned int )DisketteExtension;
18498#line 3850
18499 __cil_tmp7 = __cil_tmp6 + 108;
18500#line 3850
18501 mem_35 = (ULONG *)__cil_tmp7;
18502#line 3850
18503 __cil_tmp8 = *mem_35;
18504#line 3850
18505 __cil_tmp9 = (unsigned int )DisketteExtension;
18506#line 3850
18507 __cil_tmp10 = __cil_tmp9 + 132;
18508#line 3850
18509 mem_36 = (ULONG *)__cil_tmp10;
18510#line 3850
18511 __cil_tmp11 = *mem_36;
18512#line 3850
18513 if (__cil_tmp11 > __cil_tmp8) {
18514#line 3853
18515 contiguousBuffer = (unsigned char)1;
18516 } else {
18517#line 3855
18518 contiguousBuffer = (unsigned char)0;
18519 }
18520 }
18521 {
18522#line 3858
18523 __cil_tmp12 = (unsigned int )DisketteExtension;
18524#line 3858
18525 __cil_tmp13 = __cil_tmp12 + 132;
18526#line 3858
18527 mem_37 = (ULONG *)__cil_tmp13;
18528#line 3858
18529 *mem_37 = 0UL;
18530#line 3860
18531 __cil_tmp14 = (unsigned int )DisketteExtension;
18532#line 3860
18533 __cil_tmp15 = __cil_tmp14 + 128;
18534#line 3860
18535 mem_38 = (PMDL *)__cil_tmp15;
18536#line 3860
18537 __cil_tmp16 = *mem_38;
18538#line 3860
18539 MmUnlockPages(__cil_tmp16);
18540#line 3861
18541 __cil_tmp17 = (unsigned int )DisketteExtension;
18542#line 3861
18543 __cil_tmp18 = __cil_tmp17 + 128;
18544#line 3861
18545 mem_39 = (PMDL *)__cil_tmp18;
18546#line 3861
18547 __cil_tmp19 = *mem_39;
18548#line 3861
18549 IoFreeMdl(__cil_tmp19);
18550#line 3862
18551 __cil_tmp20 = (unsigned int )DisketteExtension;
18552#line 3862
18553 __cil_tmp21 = __cil_tmp20 + 128;
18554#line 3862
18555 __cil_tmp22 = (void *)0;
18556#line 3862
18557 mem_40 = (PMDL *)__cil_tmp21;
18558#line 3862
18559 *mem_40 = (struct _MDL *)__cil_tmp22;
18560 }
18561#line 3863
18562 if (contiguousBuffer) {
18563 {
18564#line 3864
18565 __cil_tmp23 = (unsigned int )DisketteExtension;
18566#line 3864
18567 __cil_tmp24 = __cil_tmp23 + 124;
18568#line 3864
18569 mem_41 = (PUCHAR *)__cil_tmp24;
18570#line 3864
18571 __cil_tmp25 = *mem_41;
18572#line 3864
18573 __cil_tmp26 = (void *)__cil_tmp25;
18574#line 3864
18575 MmFreeContiguousMemory(__cil_tmp26);
18576 }
18577 } else {
18578 {
18579#line 3866
18580 __cil_tmp27 = (unsigned int )DisketteExtension;
18581#line 3866
18582 __cil_tmp28 = __cil_tmp27 + 124;
18583#line 3866
18584 mem_42 = (PUCHAR *)__cil_tmp28;
18585#line 3866
18586 __cil_tmp29 = *mem_42;
18587#line 3866
18588 __cil_tmp30 = (void *)__cil_tmp29;
18589#line 3866
18590 ExFreePool(__cil_tmp30);
18591 }
18592 }
18593#line 3868
18594 __cil_tmp31 = (unsigned int )DisketteExtension;
18595#line 3868
18596 __cil_tmp32 = __cil_tmp31 + 124;
18597#line 3868
18598 __cil_tmp33 = (void *)0;
18599#line 3868
18600 mem_43 = (PUCHAR *)__cil_tmp32;
18601#line 3868
18602 *mem_43 = (UCHAR *)__cil_tmp33;
18603#line 3871
18604 return;
18605}
18606}
18607#line 3871 "floppy.c"
18608void FloppyThread(PVOID Context )
18609{ PIRP irp ;
18610 PIO_STACK_LOCATION irpSp ;
18611 PLIST_ENTRY request ;
18612 PDISKETTE_EXTENSION disketteExtension ;
18613 NTSTATUS ntStatus ;
18614 NTSTATUS waitStatus ;
18615 LARGE_INTEGER queueWait ;
18616 LARGE_INTEGER acquireWait ;
18617 PKTHREAD tmp ;
18618 PDISK_GEOMETRY outputBuffer ;
18619 PSENSE_DEVISE_STATUS_PTOS outputBuffer___0 ;
18620 LARGE_INTEGER *__cil_tmp13 ;
18621 LARGE_INTEGER *__cil_tmp14 ;
18622 unsigned int __cil_tmp15 ;
18623 unsigned int __cil_tmp16 ;
18624 KSEMAPHORE *__cil_tmp17 ;
18625 void *__cil_tmp18 ;
18626 enum _KWAIT_REASON __cil_tmp19 ;
18627 KUSER_SHARED_DATA *__cil_tmp20 ;
18628 unsigned int __cil_tmp21 ;
18629 unsigned int __cil_tmp22 ;
18630 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp23 ;
18631 int __cil_tmp24 ;
18632 int __cil_tmp25 ;
18633 unsigned int __cil_tmp26 ;
18634 unsigned int __cil_tmp27 ;
18635 unsigned int __cil_tmp28 ;
18636 unsigned int __cil_tmp29 ;
18637 PDEVICE_OBJECT __cil_tmp30 ;
18638 int __cil_tmp31 ;
18639 int __cil_tmp32 ;
18640 int __cil_tmp33 ;
18641 int __cil_tmp34 ;
18642 unsigned long __cil_tmp35 ;
18643 void *__cil_tmp36 ;
18644 unsigned int __cil_tmp37 ;
18645 unsigned int __cil_tmp38 ;
18646 PDEVICE_OBJECT __cil_tmp39 ;
18647 int __cil_tmp40 ;
18648 int __cil_tmp41 ;
18649 int __cil_tmp42 ;
18650 int __cil_tmp43 ;
18651 unsigned long __cil_tmp44 ;
18652 unsigned int __cil_tmp45 ;
18653 unsigned int __cil_tmp46 ;
18654 PDEVICE_OBJECT __cil_tmp47 ;
18655 void *__cil_tmp48 ;
18656 unsigned int __cil_tmp49 ;
18657 unsigned int __cil_tmp50 ;
18658 unsigned int __cil_tmp51 ;
18659 unsigned int __cil_tmp52 ;
18660 FAST_MUTEX *__cil_tmp53 ;
18661 unsigned int __cil_tmp54 ;
18662 unsigned int __cil_tmp55 ;
18663 LONG __cil_tmp56 ;
18664 unsigned int __cil_tmp57 ;
18665 unsigned int __cil_tmp58 ;
18666 void *__cil_tmp59 ;
18667 unsigned int __cil_tmp60 ;
18668 unsigned int __cil_tmp61 ;
18669 unsigned int __cil_tmp62 ;
18670 PKTHREAD __cil_tmp63 ;
18671 unsigned int __cil_tmp64 ;
18672 unsigned int __cil_tmp65 ;
18673 unsigned int __cil_tmp66 ;
18674 PKTHREAD __cil_tmp67 ;
18675 void *__cil_tmp68 ;
18676 unsigned int __cil_tmp69 ;
18677 unsigned int __cil_tmp70 ;
18678 void *__cil_tmp71 ;
18679 unsigned int __cil_tmp72 ;
18680 unsigned int __cil_tmp73 ;
18681 FAST_MUTEX *__cil_tmp74 ;
18682 KUSER_SHARED_DATA *__cil_tmp75 ;
18683 unsigned int __cil_tmp76 ;
18684 unsigned int __cil_tmp77 ;
18685 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp78 ;
18686 int __cil_tmp79 ;
18687 unsigned int __cil_tmp80 ;
18688 unsigned int __cil_tmp81 ;
18689 unsigned int __cil_tmp82 ;
18690 unsigned int __cil_tmp83 ;
18691 PDEVICE_OBJECT __cil_tmp84 ;
18692 int __cil_tmp85 ;
18693 int __cil_tmp86 ;
18694 int __cil_tmp87 ;
18695 int __cil_tmp88 ;
18696 unsigned long __cil_tmp89 ;
18697 void *__cil_tmp90 ;
18698 unsigned int __cil_tmp91 ;
18699 unsigned int __cil_tmp92 ;
18700 PDEVICE_OBJECT __cil_tmp93 ;
18701 int __cil_tmp94 ;
18702 int __cil_tmp95 ;
18703 int __cil_tmp96 ;
18704 int __cil_tmp97 ;
18705 unsigned long __cil_tmp98 ;
18706 void *__cil_tmp99 ;
18707 unsigned int __cil_tmp100 ;
18708 unsigned int __cil_tmp101 ;
18709 PDEVICE_OBJECT __cil_tmp102 ;
18710 int __cil_tmp103 ;
18711 int __cil_tmp104 ;
18712 int __cil_tmp105 ;
18713 int __cil_tmp106 ;
18714 unsigned long __cil_tmp107 ;
18715 unsigned int __cil_tmp108 ;
18716 unsigned int __cil_tmp109 ;
18717 PDEVICE_OBJECT __cil_tmp110 ;
18718 void *__cil_tmp111 ;
18719 unsigned int __cil_tmp112 ;
18720 unsigned int __cil_tmp113 ;
18721 unsigned int __cil_tmp114 ;
18722 unsigned int __cil_tmp115 ;
18723 void *__cil_tmp116 ;
18724 unsigned int __cil_tmp117 ;
18725 unsigned int __cil_tmp118 ;
18726 FAST_MUTEX *__cil_tmp119 ;
18727 unsigned int __cil_tmp120 ;
18728 unsigned int __cil_tmp121 ;
18729 LIST_ENTRY *__cil_tmp122 ;
18730 unsigned int __cil_tmp123 ;
18731 unsigned int __cil_tmp124 ;
18732 KSPIN_LOCK *__cil_tmp125 ;
18733 unsigned int __cil_tmp126 ;
18734 unsigned int __cil_tmp127 ;
18735 FAST_MUTEX *__cil_tmp128 ;
18736 unsigned int __cil_tmp129 ;
18737 unsigned int __cil_tmp130 ;
18738 unsigned int __cil_tmp131 ;
18739 unsigned int __cil_tmp132 ;
18740 LONG __cil_tmp133 ;
18741 unsigned int __cil_tmp134 ;
18742 unsigned int __cil_tmp135 ;
18743 FAST_MUTEX *__cil_tmp136 ;
18744 unsigned int __cil_tmp137 ;
18745 unsigned int __cil_tmp138 ;
18746 unsigned int __cil_tmp139 ;
18747 unsigned int __cil_tmp140 ;
18748 IRP *__cil_tmp141 ;
18749 unsigned int __cil_tmp142 ;
18750 unsigned int __cil_tmp143 ;
18751 LIST_ENTRY *__cil_tmp144 ;
18752 unsigned long __cil_tmp145 ;
18753 CHAR *__cil_tmp146 ;
18754 CHAR *__cil_tmp147 ;
18755 unsigned int __cil_tmp148 ;
18756 unsigned int __cil_tmp149 ;
18757 FAST_MUTEX *__cil_tmp150 ;
18758 unsigned int __cil_tmp151 ;
18759 unsigned int __cil_tmp152 ;
18760 BOOLEAN __cil_tmp153 ;
18761 int __cil_tmp154 ;
18762 unsigned int __cil_tmp155 ;
18763 unsigned int __cil_tmp156 ;
18764 FAST_MUTEX *__cil_tmp157 ;
18765 unsigned int __cil_tmp158 ;
18766 unsigned int __cil_tmp159 ;
18767 IRP *__cil_tmp160 ;
18768 unsigned int __cil_tmp161 ;
18769 unsigned int __cil_tmp162 ;
18770 LIST_ENTRY *__cil_tmp163 ;
18771 unsigned long __cil_tmp164 ;
18772 CHAR *__cil_tmp165 ;
18773 CHAR *__cil_tmp166 ;
18774 unsigned int __cil_tmp167 ;
18775 unsigned int __cil_tmp168 ;
18776 unsigned int __cil_tmp169 ;
18777 unsigned int __cil_tmp170 ;
18778 unsigned int __cil_tmp171 ;
18779 unsigned int __cil_tmp172 ;
18780 unsigned int __cil_tmp173 ;
18781 FAST_MUTEX *__cil_tmp174 ;
18782 unsigned int __cil_tmp175 ;
18783 unsigned int __cil_tmp176 ;
18784 unsigned int __cil_tmp177 ;
18785 unsigned int __cil_tmp178 ;
18786 unsigned int __cil_tmp179 ;
18787 UCHAR __cil_tmp180 ;
18788 unsigned int __cil_tmp181 ;
18789 unsigned int __cil_tmp182 ;
18790 UCHAR __cil_tmp183 ;
18791 int __cil_tmp184 ;
18792 unsigned int __cil_tmp185 ;
18793 unsigned int __cil_tmp186 ;
18794 UCHAR __cil_tmp187 ;
18795 int __cil_tmp188 ;
18796 KUSER_SHARED_DATA *__cil_tmp189 ;
18797 unsigned int __cil_tmp190 ;
18798 unsigned int __cil_tmp191 ;
18799 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp192 ;
18800 int __cil_tmp193 ;
18801 unsigned int __cil_tmp194 ;
18802 unsigned int __cil_tmp195 ;
18803 unsigned int __cil_tmp196 ;
18804 unsigned int __cil_tmp197 ;
18805 PDEVICE_OBJECT __cil_tmp198 ;
18806 int __cil_tmp199 ;
18807 int __cil_tmp200 ;
18808 int __cil_tmp201 ;
18809 int __cil_tmp202 ;
18810 unsigned long __cil_tmp203 ;
18811 void *__cil_tmp204 ;
18812 unsigned int __cil_tmp205 ;
18813 unsigned int __cil_tmp206 ;
18814 unsigned int __cil_tmp207 ;
18815 unsigned int __cil_tmp208 ;
18816 unsigned int __cil_tmp209 ;
18817 unsigned int __cil_tmp210 ;
18818 unsigned int __cil_tmp211 ;
18819 unsigned int __cil_tmp212 ;
18820 PDEVICE_OBJECT __cil_tmp213 ;
18821 int __cil_tmp214 ;
18822 int __cil_tmp215 ;
18823 int __cil_tmp216 ;
18824 int __cil_tmp217 ;
18825 unsigned long __cil_tmp218 ;
18826 void *__cil_tmp219 ;
18827 unsigned int __cil_tmp220 ;
18828 unsigned int __cil_tmp221 ;
18829 PDEVICE_OBJECT __cil_tmp222 ;
18830 int __cil_tmp223 ;
18831 int __cil_tmp224 ;
18832 int __cil_tmp225 ;
18833 int __cil_tmp226 ;
18834 unsigned long __cil_tmp227 ;
18835 unsigned int __cil_tmp228 ;
18836 unsigned int __cil_tmp229 ;
18837 PDEVICE_OBJECT __cil_tmp230 ;
18838 void *__cil_tmp231 ;
18839 unsigned int __cil_tmp232 ;
18840 unsigned int __cil_tmp233 ;
18841 unsigned int __cil_tmp234 ;
18842 unsigned int __cil_tmp235 ;
18843 FAST_MUTEX *__cil_tmp236 ;
18844 unsigned int __cil_tmp237 ;
18845 unsigned int __cil_tmp238 ;
18846 unsigned int __cil_tmp239 ;
18847 unsigned int __cil_tmp240 ;
18848 FAST_MUTEX *__cil_tmp241 ;
18849 void *__cil_tmp242 ;
18850 unsigned int __cil_tmp243 ;
18851 unsigned int __cil_tmp244 ;
18852 BOOLEAN __cil_tmp245 ;
18853 unsigned int __cil_tmp246 ;
18854 unsigned int __cil_tmp247 ;
18855 PDEVICE_OBJECT __cil_tmp248 ;
18856 int __cil_tmp249 ;
18857 int __cil_tmp250 ;
18858 int __cil_tmp251 ;
18859 int __cil_tmp252 ;
18860 unsigned long __cil_tmp253 ;
18861 void *__cil_tmp254 ;
18862 unsigned int __cil_tmp255 ;
18863 unsigned int __cil_tmp256 ;
18864 KUSER_SHARED_DATA *__cil_tmp257 ;
18865 unsigned int __cil_tmp258 ;
18866 unsigned int __cil_tmp259 ;
18867 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp260 ;
18868 int __cil_tmp261 ;
18869 unsigned int __cil_tmp262 ;
18870 unsigned int __cil_tmp263 ;
18871 unsigned int __cil_tmp264 ;
18872 unsigned int __cil_tmp265 ;
18873 PDEVICE_OBJECT __cil_tmp266 ;
18874 unsigned int __cil_tmp267 ;
18875 unsigned int __cil_tmp268 ;
18876 ULONG __cil_tmp269 ;
18877 unsigned int __cil_tmp270 ;
18878 unsigned int __cil_tmp271 ;
18879 UCHAR __cil_tmp272 ;
18880 int __cil_tmp273 ;
18881 int __cil_tmp274 ;
18882 unsigned int __cil_tmp275 ;
18883 unsigned int __cil_tmp276 ;
18884 BOOLEAN __cil_tmp277 ;
18885 unsigned int __cil_tmp278 ;
18886 unsigned int __cil_tmp279 ;
18887 PDEVICE_OBJECT __cil_tmp280 ;
18888 int __cil_tmp281 ;
18889 int __cil_tmp282 ;
18890 int __cil_tmp283 ;
18891 int __cil_tmp284 ;
18892 unsigned long __cil_tmp285 ;
18893 void *__cil_tmp286 ;
18894 unsigned int __cil_tmp287 ;
18895 unsigned int __cil_tmp288 ;
18896 KUSER_SHARED_DATA *__cil_tmp289 ;
18897 unsigned int __cil_tmp290 ;
18898 unsigned int __cil_tmp291 ;
18899 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp292 ;
18900 int __cil_tmp293 ;
18901 unsigned int __cil_tmp294 ;
18902 unsigned int __cil_tmp295 ;
18903 unsigned int __cil_tmp296 ;
18904 unsigned int __cil_tmp297 ;
18905 PDEVICE_OBJECT __cil_tmp298 ;
18906 unsigned int __cil_tmp299 ;
18907 unsigned int __cil_tmp300 ;
18908 ULONG __cil_tmp301 ;
18909 unsigned int __cil_tmp302 ;
18910 unsigned int __cil_tmp303 ;
18911 UCHAR __cil_tmp304 ;
18912 int __cil_tmp305 ;
18913 int __cil_tmp306 ;
18914 unsigned int __cil_tmp307 ;
18915 unsigned int __cil_tmp308 ;
18916 unsigned int __cil_tmp309 ;
18917 unsigned int __cil_tmp310 ;
18918 ULONG __cil_tmp311 ;
18919 int __cil_tmp312 ;
18920 int __cil_tmp313 ;
18921 int __cil_tmp314 ;
18922 int __cil_tmp315 ;
18923 int __cil_tmp316 ;
18924 int __cil_tmp317 ;
18925 int __cil_tmp318 ;
18926 int __cil_tmp319 ;
18927 unsigned int __cil_tmp320 ;
18928 unsigned int __cil_tmp321 ;
18929 UCHAR __cil_tmp322 ;
18930 int __cil_tmp323 ;
18931 int __cil_tmp324 ;
18932 int __cil_tmp325 ;
18933 int __cil_tmp326 ;
18934 unsigned char __cil_tmp327 ;
18935 int __cil_tmp328 ;
18936 int __cil_tmp329 ;
18937 unsigned int __cil_tmp330 ;
18938 unsigned int __cil_tmp331 ;
18939 unsigned long __cil_tmp332 ;
18940 unsigned int __cil_tmp333 ;
18941 unsigned int __cil_tmp334 ;
18942 ULONG __cil_tmp335 ;
18943 unsigned int __cil_tmp336 ;
18944 unsigned int __cil_tmp337 ;
18945 UCHAR __cil_tmp338 ;
18946 int __cil_tmp339 ;
18947 int __cil_tmp340 ;
18948 int __cil_tmp341 ;
18949 int __cil_tmp342 ;
18950 unsigned char __cil_tmp343 ;
18951 unsigned int __cil_tmp344 ;
18952 unsigned int __cil_tmp345 ;
18953 PVOID __cil_tmp346 ;
18954 unsigned int __cil_tmp347 ;
18955 unsigned int __cil_tmp348 ;
18956 unsigned int __cil_tmp349 ;
18957 unsigned int __cil_tmp350 ;
18958 unsigned int __cil_tmp351 ;
18959 unsigned int __cil_tmp352 ;
18960 MEDIA_TYPE __cil_tmp353 ;
18961 int __cil_tmp354 ;
18962 unsigned int __cil_tmp355 ;
18963 unsigned int __cil_tmp356 ;
18964 unsigned int __cil_tmp357 ;
18965 unsigned int __cil_tmp358 ;
18966 unsigned int __cil_tmp359 ;
18967 unsigned int __cil_tmp360 ;
18968 unsigned int __cil_tmp361 ;
18969 unsigned int __cil_tmp362 ;
18970 unsigned int __cil_tmp363 ;
18971 unsigned int __cil_tmp364 ;
18972 unsigned int __cil_tmp365 ;
18973 unsigned int __cil_tmp366 ;
18974 unsigned int __cil_tmp367 ;
18975 UCHAR __cil_tmp368 ;
18976 int __cil_tmp369 ;
18977 int __cil_tmp370 ;
18978 unsigned int __cil_tmp371 ;
18979 unsigned int __cil_tmp372 ;
18980 unsigned int __cil_tmp373 ;
18981 unsigned int __cil_tmp374 ;
18982 unsigned int __cil_tmp375 ;
18983 unsigned int __cil_tmp376 ;
18984 unsigned int __cil_tmp377 ;
18985 unsigned int __cil_tmp378 ;
18986 unsigned int __cil_tmp379 ;
18987 UCHAR __cil_tmp380 ;
18988 unsigned int __cil_tmp381 ;
18989 unsigned int __cil_tmp382 ;
18990 unsigned int __cil_tmp383 ;
18991 unsigned int __cil_tmp384 ;
18992 unsigned int __cil_tmp385 ;
18993 UCHAR __cil_tmp386 ;
18994 unsigned int __cil_tmp387 ;
18995 unsigned int __cil_tmp388 ;
18996 unsigned int __cil_tmp389 ;
18997 unsigned int __cil_tmp390 ;
18998 unsigned int __cil_tmp391 ;
18999 USHORT __cil_tmp392 ;
19000 unsigned int __cil_tmp393 ;
19001 unsigned int __cil_tmp394 ;
19002 unsigned int __cil_tmp395 ;
19003 int __cil_tmp396 ;
19004 int __cil_tmp397 ;
19005 int __cil_tmp398 ;
19006 int __cil_tmp399 ;
19007 int __cil_tmp400 ;
19008 int __cil_tmp401 ;
19009 int __cil_tmp402 ;
19010 int __cil_tmp403 ;
19011 unsigned int __cil_tmp404 ;
19012 unsigned int __cil_tmp405 ;
19013 int __cil_tmp406 ;
19014 int __cil_tmp407 ;
19015 KUSER_SHARED_DATA *__cil_tmp408 ;
19016 unsigned int __cil_tmp409 ;
19017 unsigned int __cil_tmp410 ;
19018 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp411 ;
19019 int __cil_tmp412 ;
19020 unsigned int __cil_tmp413 ;
19021 unsigned int __cil_tmp414 ;
19022 unsigned int __cil_tmp415 ;
19023 unsigned int __cil_tmp416 ;
19024 unsigned int __cil_tmp417 ;
19025 unsigned int __cil_tmp418 ;
19026 unsigned int __cil_tmp419 ;
19027 unsigned int __cil_tmp420 ;
19028 unsigned int __cil_tmp421 ;
19029 unsigned int __cil_tmp422 ;
19030 unsigned int __cil_tmp423 ;
19031 unsigned int __cil_tmp424 ;
19032 unsigned int __cil_tmp425 ;
19033 unsigned int __cil_tmp426 ;
19034 UCHAR *__cil_tmp427 ;
19035 unsigned int __cil_tmp428 ;
19036 unsigned int __cil_tmp429 ;
19037 unsigned int __cil_tmp430 ;
19038 unsigned int __cil_tmp431 ;
19039 UCHAR *__cil_tmp432 ;
19040 void *__cil_tmp433 ;
19041 struct _MDL *__cil_tmp434 ;
19042 unsigned int __cil_tmp435 ;
19043 unsigned int __cil_tmp436 ;
19044 PVOID __cil_tmp437 ;
19045 unsigned int __cil_tmp438 ;
19046 unsigned int __cil_tmp439 ;
19047 unsigned int __cil_tmp440 ;
19048 unsigned int __cil_tmp441 ;
19049 unsigned int __cil_tmp442 ;
19050 unsigned int __cil_tmp443 ;
19051 unsigned int __cil_tmp444 ;
19052 unsigned int __cil_tmp445 ;
19053 unsigned int __cil_tmp446 ;
19054 unsigned int __cil_tmp447 ;
19055 unsigned int __cil_tmp448 ;
19056 LIST_ENTRY *__cil_tmp449 ;
19057 unsigned int __cil_tmp450 ;
19058 unsigned int __cil_tmp451 ;
19059 KSPIN_LOCK *__cil_tmp452 ;
19060 unsigned int __cil_tmp453 ;
19061 unsigned int __cil_tmp454 ;
19062 FAST_MUTEX *__cil_tmp455 ;
19063 unsigned int __cil_tmp456 ;
19064 unsigned int __cil_tmp457 ;
19065 unsigned int __cil_tmp458 ;
19066 unsigned int __cil_tmp459 ;
19067 LONG __cil_tmp460 ;
19068 unsigned int __cil_tmp461 ;
19069 unsigned int __cil_tmp462 ;
19070 FAST_MUTEX *__cil_tmp463 ;
19071 unsigned int __cil_tmp464 ;
19072 unsigned int __cil_tmp465 ;
19073 IRP *__cil_tmp466 ;
19074 unsigned int __cil_tmp467 ;
19075 unsigned int __cil_tmp468 ;
19076 LIST_ENTRY *__cil_tmp469 ;
19077 unsigned long __cil_tmp470 ;
19078 CHAR *__cil_tmp471 ;
19079 CHAR *__cil_tmp472 ;
19080 unsigned int __cil_tmp473 ;
19081 unsigned int __cil_tmp474 ;
19082 unsigned int __cil_tmp475 ;
19083 unsigned int __cil_tmp476 ;
19084 KUSER_SHARED_DATA *__cil_tmp477 ;
19085 unsigned int __cil_tmp478 ;
19086 unsigned int __cil_tmp479 ;
19087 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp480 ;
19088 int __cil_tmp481 ;
19089 unsigned int __cil_tmp482 ;
19090 unsigned int __cil_tmp483 ;
19091 unsigned int __cil_tmp484 ;
19092 unsigned int __cil_tmp485 ;
19093 PDEVICE_OBJECT __cil_tmp486 ;
19094 int __cil_tmp487 ;
19095 int __cil_tmp488 ;
19096 int __cil_tmp489 ;
19097 int __cil_tmp490 ;
19098 unsigned long __cil_tmp491 ;
19099 unsigned int __cil_tmp492 ;
19100 unsigned int __cil_tmp493 ;
19101 PDEVICE_OBJECT __cil_tmp494 ;
19102 void *__cil_tmp495 ;
19103 unsigned int __cil_tmp496 ;
19104 unsigned int __cil_tmp497 ;
19105 unsigned int __cil_tmp498 ;
19106 unsigned int __cil_tmp499 ;
19107 LONGLONG *mem_500 ;
19108 LONGLONG *mem_501 ;
19109 ALTERNATIVE_ARCHITECTURE_TYPE *mem_502 ;
19110 BOOLEAN *mem_503 ;
19111 PDEVICE_OBJECT *mem_504 ;
19112 PDEVICE_OBJECT *mem_505 ;
19113 PDEVICE_OBJECT *mem_506 ;
19114 BOOLEAN *mem_507 ;
19115 LONG *mem_508 ;
19116 LONG *mem_509 ;
19117 PKTHREAD *mem_510 ;
19118 PKTHREAD *mem_511 ;
19119 PKTHREAD *mem_512 ;
19120 ALTERNATIVE_ARCHITECTURE_TYPE *mem_513 ;
19121 BOOLEAN *mem_514 ;
19122 PDEVICE_OBJECT *mem_515 ;
19123 PDEVICE_OBJECT *mem_516 ;
19124 PDEVICE_OBJECT *mem_517 ;
19125 PDEVICE_OBJECT *mem_518 ;
19126 BOOLEAN *mem_519 ;
19127 BOOLEAN *mem_520 ;
19128 LONG *mem_521 ;
19129 LONG *mem_522 ;
19130 BOOLEAN *mem_523 ;
19131 BOOLEAN *mem_524 ;
19132 NTSTATUS *mem_525 ;
19133 ULONG_PTR *mem_526 ;
19134 struct _IO_STACK_LOCATION **mem_527 ;
19135 UCHAR *mem_528 ;
19136 UCHAR *mem_529 ;
19137 UCHAR *mem_530 ;
19138 ALTERNATIVE_ARCHITECTURE_TYPE *mem_531 ;
19139 BOOLEAN *mem_532 ;
19140 PDEVICE_OBJECT *mem_533 ;
19141 BOOLEAN *mem_534 ;
19142 BOOLEAN *mem_535 ;
19143 BOOLEAN *mem_536 ;
19144 PDEVICE_OBJECT *mem_537 ;
19145 PDEVICE_OBJECT *mem_538 ;
19146 PDEVICE_OBJECT *mem_539 ;
19147 BOOLEAN *mem_540 ;
19148 LONG *mem_541 ;
19149 BOOLEAN *mem_542 ;
19150 PDEVICE_OBJECT *mem_543 ;
19151 BOOLEAN *mem_544 ;
19152 ALTERNATIVE_ARCHITECTURE_TYPE *mem_545 ;
19153 BOOLEAN *mem_546 ;
19154 PDEVICE_OBJECT *mem_547 ;
19155 ULONG *mem_548 ;
19156 UCHAR *mem_549 ;
19157 BOOLEAN *mem_550 ;
19158 PDEVICE_OBJECT *mem_551 ;
19159 BOOLEAN *mem_552 ;
19160 ALTERNATIVE_ARCHITECTURE_TYPE *mem_553 ;
19161 BOOLEAN *mem_554 ;
19162 PDEVICE_OBJECT *mem_555 ;
19163 ULONG *mem_556 ;
19164 UCHAR *mem_557 ;
19165 ULONG *mem_558 ;
19166 UCHAR *mem_559 ;
19167 BOOLEAN *mem_560 ;
19168 ULONG *mem_561 ;
19169 UCHAR *mem_562 ;
19170 PVOID *mem_563 ;
19171 MEDIA_TYPE *mem_564 ;
19172 MEDIA_TYPE *mem_565 ;
19173 MEDIA_TYPE *mem_566 ;
19174 ULONG *mem_567 ;
19175 LONG *mem_568 ;
19176 ULONG *mem_569 ;
19177 ULONG *mem_570 ;
19178 ULONG *mem_571 ;
19179 UCHAR *mem_572 ;
19180 ULONG *mem_573 ;
19181 LONG *mem_574 ;
19182 UCHAR *mem_575 ;
19183 ULONG *mem_576 ;
19184 UCHAR *mem_577 ;
19185 ULONG *mem_578 ;
19186 USHORT *mem_579 ;
19187 ULONG *mem_580 ;
19188 ULONG_PTR *mem_581 ;
19189 PUCHAR *mem_582 ;
19190 ALTERNATIVE_ARCHITECTURE_TYPE *mem_583 ;
19191 UCHAR *mem_584 ;
19192 UCHAR *mem_585 ;
19193 UCHAR *mem_586 ;
19194 PVOID *mem_587 ;
19195 UCHAR *mem_588 ;
19196 UCHAR *mem_589 ;
19197 ULONG_PTR *mem_590 ;
19198 BOOLEAN *mem_591 ;
19199 NTSTATUS *mem_592 ;
19200 LONG *mem_593 ;
19201 LONG *mem_594 ;
19202 NTSTATUS *mem_595 ;
19203 PUCHAR *mem_596 ;
19204 ALTERNATIVE_ARCHITECTURE_TYPE *mem_597 ;
19205 BOOLEAN *mem_598 ;
19206 PDEVICE_OBJECT *mem_599 ;
19207 PDEVICE_OBJECT *mem_600 ;
19208 BOOLEAN *mem_601 ;
19209 BOOLEAN *mem_602 ;
19210
19211 {
19212 {
19213#line 3904
19214 disketteExtension = (DISKETTE_EXTENSION *)Context;
19215#line 3905
19216 ntStatus = 0L;
19217#line 3915
19218 tmp = KeGetCurrentThread();
19219#line 3915
19220 KeSetPriorityThread(tmp, 16L);
19221#line 3917
19222 __cil_tmp13 = & queueWait;
19223#line 3917
19224 mem_500 = (LONGLONG *)__cil_tmp13;
19225#line 3917
19226 *mem_500 = -30000000LL;
19227#line 3918
19228 __cil_tmp14 = & acquireWait;
19229#line 3918
19230 mem_501 = (LONGLONG *)__cil_tmp14;
19231#line 3918
19232 *mem_501 = -150000000LL;
19233 }
19234 {
19235#line 3920
19236 while (1) {
19237 while_114_continue: ;
19238 {
19239#line 3929
19240 __cil_tmp15 = (unsigned int )disketteExtension;
19241#line 3929
19242 __cil_tmp16 = __cil_tmp15 + 32;
19243#line 3929
19244 __cil_tmp17 = (KSEMAPHORE *)__cil_tmp16;
19245#line 3929
19246 __cil_tmp18 = (void *)__cil_tmp17;
19247#line 3929
19248 __cil_tmp19 = (enum _KWAIT_REASON )0;
19249#line 3929
19250 waitStatus = KeWaitForSingleObject(__cil_tmp18, __cil_tmp19, (char)0, (unsigned char)0,
19251 & queueWait);
19252 }
19253#line 3936
19254 if (waitStatus == 258L) {
19255 {
19256#line 3938
19257 __cil_tmp20 = (KUSER_SHARED_DATA * const )4292804608U;
19258#line 3938
19259 __cil_tmp21 = (unsigned int )__cil_tmp20;
19260#line 3938
19261 __cil_tmp22 = __cil_tmp21 + 732;
19262#line 3938
19263 mem_502 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp22;
19264#line 3938
19265 __cil_tmp23 = *mem_502;
19266#line 3938
19267 __cil_tmp24 = (int )__cil_tmp23;
19268#line 3938
19269 __cil_tmp25 = __cil_tmp24 == 1;
19270#line 3938
19271 if (! __cil_tmp25) {
19272 {
19273#line 3938
19274 __cil_tmp26 = (unsigned int )disketteExtension;
19275#line 3938
19276 __cil_tmp27 = __cil_tmp26 + 172;
19277 {
19278#line 3938
19279 mem_503 = (BOOLEAN *)__cil_tmp27;
19280#line 3938
19281 if (*mem_503) {
19282 {
19283#line 3943
19284 while (1) {
19285 while_115_continue: ;
19286 goto while_115_break;
19287 }
19288 while_115_break: ;
19289 }
19290 {
19291#line 3944
19292 __cil_tmp28 = (unsigned int )disketteExtension;
19293#line 3944
19294 __cil_tmp29 = __cil_tmp28 + 8;
19295#line 3944
19296 mem_504 = (PDEVICE_OBJECT *)__cil_tmp29;
19297#line 3944
19298 __cil_tmp30 = *mem_504;
19299#line 3944
19300 __cil_tmp31 = 775 << 2;
19301#line 3944
19302 __cil_tmp32 = 7 << 16;
19303#line 3944
19304 __cil_tmp33 = __cil_tmp32 | __cil_tmp31;
19305#line 3944
19306 __cil_tmp34 = __cil_tmp33 | 3;
19307#line 3944
19308 __cil_tmp35 = (unsigned long )__cil_tmp34;
19309#line 3944
19310 __cil_tmp36 = (void *)0;
19311#line 3944
19312 FlFdcDeviceIo(__cil_tmp30, __cil_tmp35, __cil_tmp36);
19313#line 3948
19314 __cil_tmp37 = (unsigned int )disketteExtension;
19315#line 3948
19316 __cil_tmp38 = __cil_tmp37 + 8;
19317#line 3948
19318 mem_505 = (PDEVICE_OBJECT *)__cil_tmp38;
19319#line 3948
19320 __cil_tmp39 = *mem_505;
19321#line 3948
19322 __cil_tmp40 = 769 << 2;
19323#line 3948
19324 __cil_tmp41 = 7 << 16;
19325#line 3948
19326 __cil_tmp42 = __cil_tmp41 | __cil_tmp40;
19327#line 3948
19328 __cil_tmp43 = __cil_tmp42 | 3;
19329#line 3948
19330 __cil_tmp44 = (unsigned long )__cil_tmp43;
19331#line 3948
19332 __cil_tmp45 = (unsigned int )disketteExtension;
19333#line 3948
19334 __cil_tmp46 = __cil_tmp45 + 28;
19335#line 3948
19336 mem_506 = (PDEVICE_OBJECT *)__cil_tmp46;
19337#line 3948
19338 __cil_tmp47 = *mem_506;
19339#line 3948
19340 __cil_tmp48 = (void *)__cil_tmp47;
19341#line 3948
19342 FlFdcDeviceIo(__cil_tmp39, __cil_tmp44, __cil_tmp48);
19343#line 3952
19344 __cil_tmp49 = (unsigned int )disketteExtension;
19345#line 3952
19346 __cil_tmp50 = __cil_tmp49 + 172;
19347#line 3952
19348 mem_507 = (BOOLEAN *)__cil_tmp50;
19349#line 3952
19350 *mem_507 = (unsigned char)0;
19351 }
19352 } else {
19353
19354 }
19355 }
19356 }
19357 } else {
19358
19359 }
19360 }
19361 {
19362#line 3956
19363 __cil_tmp51 = (unsigned int )disketteExtension;
19364#line 3956
19365 __cil_tmp52 = __cil_tmp51 + 56;
19366#line 3956
19367 __cil_tmp53 = (FAST_MUTEX *)__cil_tmp52;
19368#line 3956
19369 ExAcquireFastMutex(__cil_tmp53);
19370 }
19371 {
19372#line 3958
19373 __cil_tmp54 = (unsigned int )disketteExtension;
19374#line 3958
19375 __cil_tmp55 = __cil_tmp54 + 88;
19376#line 3958
19377 mem_508 = (LONG *)__cil_tmp55;
19378#line 3958
19379 __cil_tmp56 = *mem_508;
19380#line 3958
19381 if (__cil_tmp56 == 0L) {
19382#line 3959
19383 __cil_tmp57 = (unsigned int )disketteExtension;
19384#line 3959
19385 __cil_tmp58 = __cil_tmp57 + 88;
19386#line 3959
19387 mem_509 = (LONG *)__cil_tmp58;
19388#line 3959
19389 *mem_509 = -1L;
19390 {
19391#line 3969
19392 __cil_tmp59 = (void *)0;
19393#line 3969
19394 __cil_tmp60 = (unsigned int )__cil_tmp59;
19395#line 3969
19396 __cil_tmp61 = (unsigned int )disketteExtension;
19397#line 3969
19398 __cil_tmp62 = __cil_tmp61 + 92;
19399#line 3969
19400 mem_510 = (PKTHREAD *)__cil_tmp62;
19401#line 3969
19402 __cil_tmp63 = *mem_510;
19403#line 3969
19404 __cil_tmp64 = (unsigned int )__cil_tmp63;
19405#line 3969
19406 if (__cil_tmp64 != __cil_tmp60) {
19407 {
19408#line 3971
19409 __cil_tmp65 = (unsigned int )disketteExtension;
19410#line 3971
19411 __cil_tmp66 = __cil_tmp65 + 92;
19412#line 3971
19413 mem_511 = (PKTHREAD *)__cil_tmp66;
19414#line 3971
19415 __cil_tmp67 = *mem_511;
19416#line 3971
19417 __cil_tmp68 = (void *)__cil_tmp67;
19418#line 3971
19419 ObfDereferenceObject(__cil_tmp68);
19420#line 3972
19421 __cil_tmp69 = (unsigned int )disketteExtension;
19422#line 3972
19423 __cil_tmp70 = __cil_tmp69 + 92;
19424#line 3972
19425 __cil_tmp71 = (void *)0;
19426#line 3972
19427 mem_512 = (PKTHREAD *)__cil_tmp70;
19428#line 3972
19429 *mem_512 = (struct _KTHREAD *)__cil_tmp71;
19430 }
19431 } else {
19432
19433 }
19434 }
19435 {
19436#line 3975
19437 __cil_tmp72 = (unsigned int )disketteExtension;
19438#line 3975
19439 __cil_tmp73 = __cil_tmp72 + 56;
19440#line 3975
19441 __cil_tmp74 = (FAST_MUTEX *)__cil_tmp73;
19442#line 3975
19443 ExReleaseFastMutex(__cil_tmp74);
19444 }
19445 {
19446#line 3977
19447 __cil_tmp75 = (KUSER_SHARED_DATA * const )4292804608U;
19448#line 3977
19449 __cil_tmp76 = (unsigned int )__cil_tmp75;
19450#line 3977
19451 __cil_tmp77 = __cil_tmp76 + 732;
19452#line 3977
19453 mem_513 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp77;
19454#line 3977
19455 __cil_tmp78 = *mem_513;
19456#line 3977
19457 __cil_tmp79 = (int )__cil_tmp78;
19458#line 3977
19459 if (__cil_tmp79 == 1) {
19460 {
19461#line 3978
19462 __cil_tmp80 = (unsigned int )disketteExtension;
19463#line 3978
19464 __cil_tmp81 = __cil_tmp80 + 392;
19465 {
19466#line 3978
19467 mem_514 = (BOOLEAN *)__cil_tmp81;
19468#line 3978
19469 if (*mem_514) {
19470 {
19471#line 3979
19472 __cil_tmp82 = (unsigned int )disketteExtension;
19473#line 3979
19474 __cil_tmp83 = __cil_tmp82 + 8;
19475#line 3979
19476 mem_515 = (PDEVICE_OBJECT *)__cil_tmp83;
19477#line 3979
19478 __cil_tmp84 = *mem_515;
19479#line 3979
19480 __cil_tmp85 = 768 << 2;
19481#line 3979
19482 __cil_tmp86 = 7 << 16;
19483#line 3979
19484 __cil_tmp87 = __cil_tmp86 | __cil_tmp85;
19485#line 3979
19486 __cil_tmp88 = __cil_tmp87 | 3;
19487#line 3979
19488 __cil_tmp89 = (unsigned long )__cil_tmp88;
19489#line 3979
19490 __cil_tmp90 = (void *)(& acquireWait);
19491#line 3979
19492 ntStatus = FlFdcDeviceIo(__cil_tmp84, __cil_tmp89, __cil_tmp90);
19493#line 3984
19494 __cil_tmp91 = (unsigned int )disketteExtension;
19495#line 3984
19496 __cil_tmp92 = __cil_tmp91 + 8;
19497#line 3984
19498 mem_516 = (PDEVICE_OBJECT *)__cil_tmp92;
19499#line 3984
19500 __cil_tmp93 = *mem_516;
19501#line 3984
19502 __cil_tmp94 = 775 << 2;
19503#line 3984
19504 __cil_tmp95 = 7 << 16;
19505#line 3984
19506 __cil_tmp96 = __cil_tmp95 | __cil_tmp94;
19507#line 3984
19508 __cil_tmp97 = __cil_tmp96 | 3;
19509#line 3984
19510 __cil_tmp98 = (unsigned long )__cil_tmp97;
19511#line 3984
19512 __cil_tmp99 = (void *)0;
19513#line 3984
19514 FlFdcDeviceIo(__cil_tmp93, __cil_tmp98, __cil_tmp99);
19515#line 3988
19516 __cil_tmp100 = (unsigned int )disketteExtension;
19517#line 3988
19518 __cil_tmp101 = __cil_tmp100 + 8;
19519#line 3988
19520 mem_517 = (PDEVICE_OBJECT *)__cil_tmp101;
19521#line 3988
19522 __cil_tmp102 = *mem_517;
19523#line 3988
19524 __cil_tmp103 = 769 << 2;
19525#line 3988
19526 __cil_tmp104 = 7 << 16;
19527#line 3988
19528 __cil_tmp105 = __cil_tmp104 | __cil_tmp103;
19529#line 3988
19530 __cil_tmp106 = __cil_tmp105 | 3;
19531#line 3988
19532 __cil_tmp107 = (unsigned long )__cil_tmp106;
19533#line 3988
19534 __cil_tmp108 = (unsigned int )disketteExtension;
19535#line 3988
19536 __cil_tmp109 = __cil_tmp108 + 28;
19537#line 3988
19538 mem_518 = (PDEVICE_OBJECT *)__cil_tmp109;
19539#line 3988
19540 __cil_tmp110 = *mem_518;
19541#line 3988
19542 __cil_tmp111 = (void *)__cil_tmp110;
19543#line 3988
19544 FlFdcDeviceIo(__cil_tmp102, __cil_tmp107, __cil_tmp111);
19545#line 3992
19546 __cil_tmp112 = (unsigned int )disketteExtension;
19547#line 3992
19548 __cil_tmp113 = __cil_tmp112 + 172;
19549#line 3992
19550 mem_519 = (BOOLEAN *)__cil_tmp113;
19551#line 3992
19552 *mem_519 = (unsigned char)0;
19553#line 3993
19554 __cil_tmp114 = (unsigned int )disketteExtension;
19555#line 3993
19556 __cil_tmp115 = __cil_tmp114 + 392;
19557#line 3993
19558 mem_520 = (BOOLEAN *)__cil_tmp115;
19559#line 3993
19560 *mem_520 = (unsigned char)0;
19561 }
19562 } else {
19563
19564 }
19565 }
19566 }
19567 } else {
19568
19569 }
19570 }
19571 {
19572#line 3997
19573 ExAcquireFastMutex(PagingMutex);
19574#line 3997
19575 PagingReferenceCount = PagingReferenceCount - 1UL;
19576 }
19577#line 3997
19578 if (PagingReferenceCount == 0UL) {
19579 {
19580#line 3997
19581 __cil_tmp116 = (void *)(& DriverEntry);
19582#line 3997
19583 MmPageEntireDriver(__cil_tmp116);
19584 }
19585 } else {
19586
19587 }
19588 {
19589#line 3997
19590 ExReleaseFastMutex(PagingMutex);
19591 }
19592 {
19593#line 4001
19594 while (1) {
19595 while_116_continue: ;
19596 goto while_116_break;
19597 }
19598 while_116_break: ;
19599 }
19600 {
19601#line 4002
19602 PsTerminateSystemThread(0L);
19603 }
19604 } else {
19605
19606 }
19607 }
19608 {
19609#line 4005
19610 __cil_tmp117 = (unsigned int )disketteExtension;
19611#line 4005
19612 __cil_tmp118 = __cil_tmp117 + 56;
19613#line 4005
19614 __cil_tmp119 = (FAST_MUTEX *)__cil_tmp118;
19615#line 4005
19616 ExReleaseFastMutex(__cil_tmp119);
19617 }
19618 goto __Cont;
19619 } else {
19620
19621 }
19622 {
19623#line 4009
19624 while (1) {
19625 while_117_continue: ;
19626 {
19627#line 4009
19628 __cil_tmp120 = (unsigned int )disketteExtension;
19629#line 4009
19630 __cil_tmp121 = __cil_tmp120 + 96;
19631#line 4009
19632 __cil_tmp122 = (LIST_ENTRY *)__cil_tmp121;
19633#line 4009
19634 __cil_tmp123 = (unsigned int )disketteExtension;
19635#line 4009
19636 __cil_tmp124 = __cil_tmp123 + 52;
19637#line 4009
19638 __cil_tmp125 = (KSPIN_LOCK *)__cil_tmp124;
19639#line 4009
19640 request = ExfInterlockedRemoveHeadList(__cil_tmp122, __cil_tmp125);
19641 }
19642#line 4009
19643 if (! request) {
19644 goto while_117_break;
19645 } else {
19646
19647 }
19648 {
19649#line 4013
19650 __cil_tmp126 = (unsigned int )disketteExtension;
19651#line 4013
19652 __cil_tmp127 = __cil_tmp126 + 56;
19653#line 4013
19654 __cil_tmp128 = (FAST_MUTEX *)__cil_tmp127;
19655#line 4013
19656 ExAcquireFastMutex(__cil_tmp128);
19657#line 4015
19658 __cil_tmp129 = (unsigned int )disketteExtension;
19659#line 4015
19660 __cil_tmp130 = __cil_tmp129 + 88;
19661#line 4015
19662 __cil_tmp131 = (unsigned int )disketteExtension;
19663#line 4015
19664 __cil_tmp132 = __cil_tmp131 + 88;
19665#line 4015
19666 mem_521 = (LONG *)__cil_tmp132;
19667#line 4015
19668 __cil_tmp133 = *mem_521;
19669#line 4015
19670 mem_522 = (LONG *)__cil_tmp130;
19671#line 4015
19672 *mem_522 = __cil_tmp133 - 1L;
19673#line 4016
19674 __cil_tmp134 = (unsigned int )disketteExtension;
19675#line 4016
19676 __cil_tmp135 = __cil_tmp134 + 56;
19677#line 4016
19678 __cil_tmp136 = (FAST_MUTEX *)__cil_tmp135;
19679#line 4016
19680 ExReleaseFastMutex(__cil_tmp136);
19681#line 4018
19682 __cil_tmp137 = (unsigned int )disketteExtension;
19683#line 4018
19684 __cil_tmp138 = __cil_tmp137 + 104;
19685#line 4018
19686 mem_523 = (BOOLEAN *)__cil_tmp138;
19687#line 4018
19688 *mem_523 = (unsigned char)0;
19689#line 4020
19690 __cil_tmp139 = 0 + 24;
19691#line 4020
19692 __cil_tmp140 = 64 + __cil_tmp139;
19693#line 4020
19694 __cil_tmp141 = (IRP *)0;
19695#line 4020
19696 __cil_tmp142 = (unsigned int )__cil_tmp141;
19697#line 4020
19698 __cil_tmp143 = __cil_tmp142 + __cil_tmp140;
19699#line 4020
19700 __cil_tmp144 = (LIST_ENTRY *)__cil_tmp143;
19701#line 4020
19702 __cil_tmp145 = (unsigned long )__cil_tmp144;
19703#line 4020
19704 __cil_tmp146 = (CHAR *)request;
19705#line 4020
19706 __cil_tmp147 = __cil_tmp146 - __cil_tmp145;
19707#line 4020
19708 irp = (IRP *)__cil_tmp147;
19709#line 4026
19710 __cil_tmp148 = (unsigned int )disketteExtension;
19711#line 4026
19712 __cil_tmp149 = __cil_tmp148 + 396;
19713#line 4026
19714 __cil_tmp150 = (FAST_MUTEX *)__cil_tmp149;
19715#line 4026
19716 ExAcquireFastMutex(__cil_tmp150);
19717 }
19718 {
19719#line 4027
19720 __cil_tmp151 = (unsigned int )disketteExtension;
19721#line 4027
19722 __cil_tmp152 = __cil_tmp151 + 393;
19723#line 4027
19724 mem_524 = (BOOLEAN *)__cil_tmp152;
19725#line 4027
19726 __cil_tmp153 = *mem_524;
19727#line 4027
19728 __cil_tmp154 = (int )__cil_tmp153;
19729#line 4027
19730 if (__cil_tmp154 == 1) {
19731 {
19732#line 4028
19733 __cil_tmp155 = (unsigned int )disketteExtension;
19734#line 4028
19735 __cil_tmp156 = __cil_tmp155 + 396;
19736#line 4028
19737 __cil_tmp157 = (FAST_MUTEX *)__cil_tmp156;
19738#line 4028
19739 ExReleaseFastMutex(__cil_tmp157);
19740 }
19741 {
19742#line 4030
19743 while (1) {
19744 while_118_continue: ;
19745 goto while_118_break;
19746 }
19747 while_118_break: ;
19748 }
19749 {
19750#line 4032
19751 __cil_tmp158 = 0 + 24;
19752#line 4032
19753 __cil_tmp159 = 64 + __cil_tmp158;
19754#line 4032
19755 __cil_tmp160 = (IRP *)0;
19756#line 4032
19757 __cil_tmp161 = (unsigned int )__cil_tmp160;
19758#line 4032
19759 __cil_tmp162 = __cil_tmp161 + __cil_tmp159;
19760#line 4032
19761 __cil_tmp163 = (LIST_ENTRY *)__cil_tmp162;
19762#line 4032
19763 __cil_tmp164 = (unsigned long )__cil_tmp163;
19764#line 4032
19765 __cil_tmp165 = (CHAR *)request;
19766#line 4032
19767 __cil_tmp166 = __cil_tmp165 - __cil_tmp164;
19768#line 4032
19769 irp = (IRP *)__cil_tmp166;
19770#line 4033
19771 __cil_tmp167 = (unsigned int )irp;
19772#line 4033
19773 __cil_tmp168 = __cil_tmp167 + 24;
19774#line 4033
19775 mem_525 = (NTSTATUS *)__cil_tmp168;
19776#line 4033
19777 *mem_525 = -1073741101L;
19778#line 4034
19779 __cil_tmp169 = 24 + 4;
19780#line 4034
19781 __cil_tmp170 = (unsigned int )irp;
19782#line 4034
19783 __cil_tmp171 = __cil_tmp170 + __cil_tmp169;
19784#line 4034
19785 mem_526 = (ULONG_PTR *)__cil_tmp171;
19786#line 4034
19787 *mem_526 = 0UL;
19788#line 4035
19789 IofCompleteRequest(irp, (char)0);
19790 }
19791 goto while_117_continue;
19792 } else {
19793
19794 }
19795 }
19796 {
19797#line 4038
19798 __cil_tmp172 = (unsigned int )disketteExtension;
19799#line 4038
19800 __cil_tmp173 = __cil_tmp172 + 396;
19801#line 4038
19802 __cil_tmp174 = (FAST_MUTEX *)__cil_tmp173;
19803#line 4038
19804 ExReleaseFastMutex(__cil_tmp174);
19805 }
19806 {
19807#line 4039
19808 while (1) {
19809 while_119_continue: ;
19810 goto while_119_break;
19811 }
19812 while_119_break: ;
19813 }
19814#line 4041
19815 __cil_tmp175 = 24 + 8;
19816#line 4041
19817 __cil_tmp176 = 0 + __cil_tmp175;
19818#line 4041
19819 __cil_tmp177 = 64 + __cil_tmp176;
19820#line 4041
19821 __cil_tmp178 = (unsigned int )irp;
19822#line 4041
19823 __cil_tmp179 = __cil_tmp178 + __cil_tmp177;
19824#line 4041
19825 mem_527 = (struct _IO_STACK_LOCATION **)__cil_tmp179;
19826#line 4041
19827 irpSp = *mem_527;
19828 {
19829#line 4047
19830 while (1) {
19831 while_120_continue: ;
19832 goto while_120_break;
19833 }
19834 while_120_break: ;
19835 }
19836 {
19837#line 4048
19838 mem_528 = (UCHAR *)irpSp;
19839#line 4048
19840 __cil_tmp180 = *mem_528;
19841#line 4049
19842 if ((int )__cil_tmp180 == 27) {
19843 goto switch_121_27;
19844 } else {
19845#line 4096
19846 if ((int )__cil_tmp180 == 3) {
19847 goto switch_121_3;
19848 } else {
19849#line 4097
19850 if ((int )__cil_tmp180 == 4) {
19851 goto switch_121_4;
19852 } else {
19853#line 4154
19854 if ((int )__cil_tmp180 == 14) {
19855 goto switch_121_14;
19856 } else {
19857 {
19858 goto switch_121_default;
19859#line 4048
19860 if (0) {
19861 switch_121_27: ;
19862 {
19863#line 4052
19864 while (1) {
19865 while_122_continue: ;
19866 goto while_122_break;
19867 }
19868 while_122_break: ;
19869 }
19870 {
19871#line 4054
19872 __cil_tmp181 = (unsigned int )irpSp;
19873#line 4054
19874 __cil_tmp182 = __cil_tmp181 + 1;
19875#line 4054
19876 mem_529 = (UCHAR *)__cil_tmp182;
19877#line 4054
19878 __cil_tmp183 = *mem_529;
19879#line 4054
19880 __cil_tmp184 = (int )__cil_tmp183;
19881#line 4054
19882 if (__cil_tmp184 == 1) {
19883 goto _L;
19884 } else {
19885 {
19886#line 4054
19887 __cil_tmp185 = (unsigned int )irpSp;
19888#line 4054
19889 __cil_tmp186 = __cil_tmp185 + 1;
19890#line 4054
19891 mem_530 = (UCHAR *)__cil_tmp186;
19892#line 4054
19893 __cil_tmp187 = *mem_530;
19894#line 4054
19895 __cil_tmp188 = (int )__cil_tmp187;
19896#line 4054
19897 if (__cil_tmp188 == 5) {
19898 _L:
19899 {
19900#line 4057
19901 __cil_tmp189 = (KUSER_SHARED_DATA * const )4292804608U;
19902#line 4057
19903 __cil_tmp190 = (unsigned int )__cil_tmp189;
19904#line 4057
19905 __cil_tmp191 = __cil_tmp190 + 732;
19906#line 4057
19907 mem_531 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp191;
19908#line 4057
19909 __cil_tmp192 = *mem_531;
19910#line 4057
19911 __cil_tmp193 = (int )__cil_tmp192;
19912#line 4057
19913 if (__cil_tmp193 == 1) {
19914 {
19915#line 4058
19916 __cil_tmp194 = (unsigned int )disketteExtension;
19917#line 4058
19918 __cil_tmp195 = __cil_tmp194 + 392;
19919 {
19920#line 4058
19921 mem_532 = (BOOLEAN *)__cil_tmp195;
19922#line 4058
19923 if (*mem_532) {
19924 {
19925#line 4059
19926 __cil_tmp196 = (unsigned int )disketteExtension;
19927#line 4059
19928 __cil_tmp197 = __cil_tmp196 + 8;
19929#line 4059
19930 mem_533 = (PDEVICE_OBJECT *)__cil_tmp197;
19931#line 4059
19932 __cil_tmp198 = *mem_533;
19933#line 4059
19934 __cil_tmp199 = 768 << 2;
19935#line 4059
19936 __cil_tmp200 = 7 << 16;
19937#line 4059
19938 __cil_tmp201 = __cil_tmp200 | __cil_tmp199;
19939#line 4059
19940 __cil_tmp202 = __cil_tmp201 | 3;
19941#line 4059
19942 __cil_tmp203 = (unsigned long )__cil_tmp202;
19943#line 4059
19944 __cil_tmp204 = (void *)(& acquireWait);
19945#line 4059
19946 FlFdcDeviceIo(__cil_tmp198, __cil_tmp203, __cil_tmp204);
19947#line 4063
19948 __cil_tmp205 = (unsigned int )disketteExtension;
19949#line 4063
19950 __cil_tmp206 = __cil_tmp205 + 392;
19951#line 4063
19952 mem_534 = (BOOLEAN *)__cil_tmp206;
19953#line 4063
19954 *mem_534 = (unsigned char)0;
19955#line 4064
19956 __cil_tmp207 = (unsigned int )disketteExtension;
19957#line 4064
19958 __cil_tmp208 = __cil_tmp207 + 172;
19959#line 4064
19960 mem_535 = (BOOLEAN *)__cil_tmp208;
19961#line 4064
19962 *mem_535 = (unsigned char)1;
19963 }
19964 } else {
19965
19966 }
19967 }
19968 }
19969 } else {
19970
19971 }
19972 }
19973 {
19974#line 4068
19975 __cil_tmp209 = (unsigned int )disketteExtension;
19976#line 4068
19977 __cil_tmp210 = __cil_tmp209 + 172;
19978 {
19979#line 4068
19980 mem_536 = (BOOLEAN *)__cil_tmp210;
19981#line 4068
19982 if (*mem_536) {
19983 {
19984#line 4070
19985 __cil_tmp211 = (unsigned int )disketteExtension;
19986#line 4070
19987 __cil_tmp212 = __cil_tmp211 + 8;
19988#line 4070
19989 mem_537 = (PDEVICE_OBJECT *)__cil_tmp212;
19990#line 4070
19991 __cil_tmp213 = *mem_537;
19992#line 4070
19993 __cil_tmp214 = 775 << 2;
19994#line 4070
19995 __cil_tmp215 = 7 << 16;
19996#line 4070
19997 __cil_tmp216 = __cil_tmp215 | __cil_tmp214;
19998#line 4070
19999 __cil_tmp217 = __cil_tmp216 | 3;
20000#line 4070
20001 __cil_tmp218 = (unsigned long )__cil_tmp217;
20002#line 4070
20003 __cil_tmp219 = (void *)0;
20004#line 4070
20005 FlFdcDeviceIo(__cil_tmp213, __cil_tmp218, __cil_tmp219);
20006#line 4074
20007 __cil_tmp220 = (unsigned int )disketteExtension;
20008#line 4074
20009 __cil_tmp221 = __cil_tmp220 + 8;
20010#line 4074
20011 mem_538 = (PDEVICE_OBJECT *)__cil_tmp221;
20012#line 4074
20013 __cil_tmp222 = *mem_538;
20014#line 4074
20015 __cil_tmp223 = 769 << 2;
20016#line 4074
20017 __cil_tmp224 = 7 << 16;
20018#line 4074
20019 __cil_tmp225 = __cil_tmp224 | __cil_tmp223;
20020#line 4074
20021 __cil_tmp226 = __cil_tmp225 | 3;
20022#line 4074
20023 __cil_tmp227 = (unsigned long )__cil_tmp226;
20024#line 4074
20025 __cil_tmp228 = (unsigned int )disketteExtension;
20026#line 4074
20027 __cil_tmp229 = __cil_tmp228 + 28;
20028#line 4074
20029 mem_539 = (PDEVICE_OBJECT *)__cil_tmp229;
20030#line 4074
20031 __cil_tmp230 = *mem_539;
20032#line 4074
20033 __cil_tmp231 = (void *)__cil_tmp230;
20034#line 4074
20035 FlFdcDeviceIo(__cil_tmp222, __cil_tmp227, __cil_tmp231);
20036#line 4078
20037 __cil_tmp232 = (unsigned int )disketteExtension;
20038#line 4078
20039 __cil_tmp233 = __cil_tmp232 + 172;
20040#line 4078
20041 mem_540 = (BOOLEAN *)__cil_tmp233;
20042#line 4078
20043 *mem_540 = (unsigned char)0;
20044 }
20045 } else {
20046
20047 }
20048 }
20049 }
20050 {
20051#line 4082
20052 __cil_tmp234 = (unsigned int )disketteExtension;
20053#line 4082
20054 __cil_tmp235 = __cil_tmp234 + 56;
20055#line 4082
20056 __cil_tmp236 = (FAST_MUTEX *)__cil_tmp235;
20057#line 4082
20058 ExAcquireFastMutex(__cil_tmp236);
20059#line 4084
20060 __cil_tmp237 = (unsigned int )disketteExtension;
20061#line 4084
20062 __cil_tmp238 = __cil_tmp237 + 88;
20063#line 4084
20064 mem_541 = (LONG *)__cil_tmp238;
20065#line 4084
20066 *mem_541 = -1L;
20067#line 4085
20068 __cil_tmp239 = (unsigned int )disketteExtension;
20069#line 4085
20070 __cil_tmp240 = __cil_tmp239 + 56;
20071#line 4085
20072 __cil_tmp241 = (FAST_MUTEX *)__cil_tmp240;
20073#line 4085
20074 ExReleaseFastMutex(__cil_tmp241);
20075#line 4087
20076 ExAcquireFastMutex(PagingMutex);
20077#line 4087
20078 PagingReferenceCount = PagingReferenceCount - 1UL;
20079 }
20080#line 4087
20081 if (PagingReferenceCount == 0UL) {
20082 {
20083#line 4087
20084 __cil_tmp242 = (void *)(& DriverEntry);
20085#line 4087
20086 MmPageEntireDriver(__cil_tmp242);
20087 }
20088 } else {
20089
20090 }
20091 {
20092#line 4087
20093 ExReleaseFastMutex(PagingMutex);
20094#line 4089
20095 PsTerminateSystemThread(0L);
20096 }
20097 } else {
20098#line 4093
20099 ntStatus = -1073741808L;
20100 }
20101 }
20102 }
20103 }
20104 goto switch_121_break;
20105 switch_121_3: ;
20106 switch_121_4: ;
20107 {
20108#line 4108
20109 __cil_tmp243 = (unsigned int )disketteExtension;
20110#line 4108
20111 __cil_tmp244 = __cil_tmp243 + 172;
20112#line 4108
20113 mem_542 = (BOOLEAN *)__cil_tmp244;
20114#line 4108
20115 __cil_tmp245 = *mem_542;
20116#line 4108
20117 if (! __cil_tmp245) {
20118 {
20119#line 4110
20120 __cil_tmp246 = (unsigned int )disketteExtension;
20121#line 4110
20122 __cil_tmp247 = __cil_tmp246 + 8;
20123#line 4110
20124 mem_543 = (PDEVICE_OBJECT *)__cil_tmp247;
20125#line 4110
20126 __cil_tmp248 = *mem_543;
20127#line 4110
20128 __cil_tmp249 = 768 << 2;
20129#line 4110
20130 __cil_tmp250 = 7 << 16;
20131#line 4110
20132 __cil_tmp251 = __cil_tmp250 | __cil_tmp249;
20133#line 4110
20134 __cil_tmp252 = __cil_tmp251 | 3;
20135#line 4110
20136 __cil_tmp253 = (unsigned long )__cil_tmp252;
20137#line 4110
20138 __cil_tmp254 = (void *)(& acquireWait);
20139#line 4110
20140 ntStatus = FlFdcDeviceIo(__cil_tmp248, __cil_tmp253, __cil_tmp254);
20141 }
20142#line 4115
20143 if (ntStatus >= 0L) {
20144#line 4116
20145 __cil_tmp255 = (unsigned int )disketteExtension;
20146#line 4116
20147 __cil_tmp256 = __cil_tmp255 + 172;
20148#line 4116
20149 mem_544 = (BOOLEAN *)__cil_tmp256;
20150#line 4116
20151 *mem_544 = (unsigned char)1;
20152 {
20153#line 4117
20154 __cil_tmp257 = (KUSER_SHARED_DATA * const )4292804608U;
20155#line 4117
20156 __cil_tmp258 = (unsigned int )__cil_tmp257;
20157#line 4117
20158 __cil_tmp259 = __cil_tmp258 + 732;
20159#line 4117
20160 mem_545 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp259;
20161#line 4117
20162 __cil_tmp260 = *mem_545;
20163#line 4117
20164 __cil_tmp261 = (int )__cil_tmp260;
20165#line 4117
20166 if (__cil_tmp261 == 1) {
20167#line 4117
20168 __cil_tmp262 = (unsigned int )disketteExtension;
20169#line 4117
20170 __cil_tmp263 = __cil_tmp262 + 392;
20171#line 4117
20172 mem_546 = (BOOLEAN *)__cil_tmp263;
20173#line 4117
20174 *mem_546 = (unsigned char)0;
20175 } else {
20176
20177 }
20178 }
20179 } else {
20180 goto switch_121_break;
20181 }
20182 } else {
20183
20184 }
20185 }
20186 {
20187#line 4128
20188 __cil_tmp264 = (unsigned int )disketteExtension;
20189#line 4128
20190 __cil_tmp265 = __cil_tmp264 + 28;
20191#line 4128
20192 mem_547 = (PDEVICE_OBJECT *)__cil_tmp265;
20193#line 4128
20194 __cil_tmp266 = *mem_547;
20195#line 4128
20196 __cil_tmp267 = (unsigned int )__cil_tmp266;
20197#line 4128
20198 __cil_tmp268 = __cil_tmp267 + 28;
20199#line 4128
20200 mem_548 = (ULONG *)__cil_tmp268;
20201#line 4128
20202 __cil_tmp269 = *mem_548;
20203#line 4128
20204 if (__cil_tmp269 & 2UL) {
20205 {
20206#line 4128
20207 __cil_tmp270 = (unsigned int )irpSp;
20208#line 4128
20209 __cil_tmp271 = __cil_tmp270 + 2;
20210#line 4128
20211 mem_549 = (UCHAR *)__cil_tmp271;
20212#line 4128
20213 __cil_tmp272 = *mem_549;
20214#line 4128
20215 __cil_tmp273 = (int )__cil_tmp272;
20216#line 4128
20217 __cil_tmp274 = __cil_tmp273 & 2;
20218#line 4128
20219 if (! __cil_tmp274) {
20220 {
20221#line 4136
20222 while (1) {
20223 while_123_continue: ;
20224 goto while_123_break;
20225 }
20226 while_123_break: ;
20227 }
20228#line 4145
20229 ntStatus = -2147483626L;
20230 } else {
20231 {
20232#line 4149
20233 ntStatus = FlReadWrite(disketteExtension, irp, (unsigned char)0);
20234 }
20235 }
20236 }
20237 } else {
20238 {
20239#line 4149
20240 ntStatus = FlReadWrite(disketteExtension, irp, (unsigned char)0);
20241 }
20242 }
20243 }
20244 goto switch_121_break;
20245 switch_121_14: ;
20246 {
20247#line 4161
20248 __cil_tmp275 = (unsigned int )disketteExtension;
20249#line 4161
20250 __cil_tmp276 = __cil_tmp275 + 172;
20251#line 4161
20252 mem_550 = (BOOLEAN *)__cil_tmp276;
20253#line 4161
20254 __cil_tmp277 = *mem_550;
20255#line 4161
20256 if (! __cil_tmp277) {
20257 {
20258#line 4163
20259 __cil_tmp278 = (unsigned int )disketteExtension;
20260#line 4163
20261 __cil_tmp279 = __cil_tmp278 + 8;
20262#line 4163
20263 mem_551 = (PDEVICE_OBJECT *)__cil_tmp279;
20264#line 4163
20265 __cil_tmp280 = *mem_551;
20266#line 4163
20267 __cil_tmp281 = 768 << 2;
20268#line 4163
20269 __cil_tmp282 = 7 << 16;
20270#line 4163
20271 __cil_tmp283 = __cil_tmp282 | __cil_tmp281;
20272#line 4163
20273 __cil_tmp284 = __cil_tmp283 | 3;
20274#line 4163
20275 __cil_tmp285 = (unsigned long )__cil_tmp284;
20276#line 4163
20277 __cil_tmp286 = (void *)(& acquireWait);
20278#line 4163
20279 ntStatus = FlFdcDeviceIo(__cil_tmp280, __cil_tmp285, __cil_tmp286);
20280 }
20281#line 4168
20282 if (ntStatus >= 0L) {
20283#line 4169
20284 __cil_tmp287 = (unsigned int )disketteExtension;
20285#line 4169
20286 __cil_tmp288 = __cil_tmp287 + 172;
20287#line 4169
20288 mem_552 = (BOOLEAN *)__cil_tmp288;
20289#line 4169
20290 *mem_552 = (unsigned char)1;
20291 {
20292#line 4170
20293 __cil_tmp289 = (KUSER_SHARED_DATA * const )4292804608U;
20294#line 4170
20295 __cil_tmp290 = (unsigned int )__cil_tmp289;
20296#line 4170
20297 __cil_tmp291 = __cil_tmp290 + 732;
20298#line 4170
20299 mem_553 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp291;
20300#line 4170
20301 __cil_tmp292 = *mem_553;
20302#line 4170
20303 __cil_tmp293 = (int )__cil_tmp292;
20304#line 4170
20305 if (__cil_tmp293 == 1) {
20306#line 4170
20307 __cil_tmp294 = (unsigned int )disketteExtension;
20308#line 4170
20309 __cil_tmp295 = __cil_tmp294 + 392;
20310#line 4170
20311 mem_554 = (BOOLEAN *)__cil_tmp295;
20312#line 4170
20313 *mem_554 = (unsigned char)0;
20314 } else {
20315
20316 }
20317 }
20318 } else {
20319 goto switch_121_break;
20320 }
20321 } else {
20322
20323 }
20324 }
20325 {
20326#line 4180
20327 __cil_tmp296 = (unsigned int )disketteExtension;
20328#line 4180
20329 __cil_tmp297 = __cil_tmp296 + 28;
20330#line 4180
20331 mem_555 = (PDEVICE_OBJECT *)__cil_tmp297;
20332#line 4180
20333 __cil_tmp298 = *mem_555;
20334#line 4180
20335 __cil_tmp299 = (unsigned int )__cil_tmp298;
20336#line 4180
20337 __cil_tmp300 = __cil_tmp299 + 28;
20338#line 4180
20339 mem_556 = (ULONG *)__cil_tmp300;
20340#line 4180
20341 __cil_tmp301 = *mem_556;
20342#line 4180
20343 if (__cil_tmp301 & 2UL) {
20344 {
20345#line 4180
20346 __cil_tmp302 = (unsigned int )irpSp;
20347#line 4180
20348 __cil_tmp303 = __cil_tmp302 + 2;
20349#line 4180
20350 mem_557 = (UCHAR *)__cil_tmp303;
20351#line 4180
20352 __cil_tmp304 = *mem_557;
20353#line 4180
20354 __cil_tmp305 = (int )__cil_tmp304;
20355#line 4180
20356 __cil_tmp306 = __cil_tmp305 & 2;
20357#line 4180
20358 if (! __cil_tmp306) {
20359 {
20360#line 4188
20361 while (1) {
20362 while_124_continue: ;
20363 goto while_124_break;
20364 }
20365 while_124_break: ;
20366 }
20367#line 4196
20368 ntStatus = -2147483626L;
20369 } else {
20370 goto _L___2;
20371 }
20372 }
20373 } else {
20374 _L___2:
20375 {
20376#line 4200
20377 __cil_tmp307 = 0 + 8;
20378#line 4200
20379 __cil_tmp308 = 4 + __cil_tmp307;
20380#line 4200
20381 __cil_tmp309 = (unsigned int )irpSp;
20382#line 4200
20383 __cil_tmp310 = __cil_tmp309 + __cil_tmp308;
20384#line 4200
20385 mem_558 = (ULONG *)__cil_tmp310;
20386#line 4200
20387 __cil_tmp311 = *mem_558;
20388#line 4201
20389 if ((int )__cil_tmp311 == (__cil_tmp315 | __cil_tmp312)) {
20390 goto switch_125_exp_12;
20391 } else {
20392#line 4202
20393 if ((int )__cil_tmp311 == (__cil_tmp319 | __cil_tmp316)) {
20394 goto switch_125_exp_13;
20395 } else {
20396#line 4232
20397 if ((int )__cil_tmp311 == (__cil_tmp329 | __cil_tmp328)) {
20398 goto switch_125_exp_14;
20399 } else {
20400#line 4261
20401 if ((int )__cil_tmp311 == 7 << 16) {
20402 goto switch_125_exp_15;
20403 } else {
20404#line 4392
20405 if ((int )__cil_tmp311 == (__cil_tmp399 | __cil_tmp396)) {
20406 goto switch_125_exp_16;
20407 } else {
20408#line 4393
20409 if ((int )__cil_tmp311 == (__cil_tmp403 | __cil_tmp400)) {
20410 goto switch_125_exp_17;
20411 } else {
20412#line 4444
20413 if ((int )__cil_tmp311 == (__cil_tmp407 | __cil_tmp406)) {
20414 goto switch_125_exp_18;
20415 } else {
20416#line 4200
20417 if (0) {
20418 switch_125_exp_12:
20419 {
20420 __cil_tmp312 = 512 << 2;
20421 __cil_tmp313 = 1 << 14;
20422 __cil_tmp314 = 45 << 16;
20423 __cil_tmp315 = __cil_tmp314 | __cil_tmp313;
20424
20425 }
20426 switch_125_exp_13:
20427 {
20428 __cil_tmp316 = 512 << 2;
20429 __cil_tmp317 = 1 << 14;
20430 __cil_tmp318 = 7 << 16;
20431 __cil_tmp319 = __cil_tmp318 | __cil_tmp317;
20432
20433 }
20434 {
20435#line 4215
20436 while (1) {
20437 while_126_continue: ;
20438 goto while_126_break;
20439 }
20440 while_126_break: ;
20441 }
20442 {
20443#line 4223
20444 __cil_tmp320 = (unsigned int )irpSp;
20445#line 4223
20446 __cil_tmp321 = __cil_tmp320 + 2;
20447#line 4223
20448 mem_559 = (UCHAR *)__cil_tmp321;
20449#line 4223
20450 __cil_tmp322 = *mem_559;
20451#line 4223
20452 __cil_tmp323 = (int )__cil_tmp322;
20453#line 4223
20454 __cil_tmp324 = __cil_tmp323 & 2;
20455#line 4223
20456 __cil_tmp325 = ! __cil_tmp324;
20457#line 4223
20458 __cil_tmp326 = ! __cil_tmp325;
20459#line 4223
20460 __cil_tmp327 = (unsigned char )__cil_tmp326;
20461#line 4223
20462 ntStatus = FlStartDrive(disketteExtension, irp,
20463 (unsigned char)0, (unsigned char)0,
20464 __cil_tmp327);
20465 }
20466 goto switch_125_break;
20467 switch_125_exp_14:
20468 {
20469 __cil_tmp328 = 9 << 2;
20470 __cil_tmp329 = 7 << 16;
20471
20472 }
20473 {
20474#line 4244
20475 while (1) {
20476 while_127_continue: ;
20477 goto while_127_break;
20478 }
20479 while_127_break: ;
20480 }
20481 {
20482#line 4246
20483 __cil_tmp330 = (unsigned int )disketteExtension;
20484#line 4246
20485 __cil_tmp331 = __cil_tmp330 + 250;
20486 {
20487#line 4246
20488 mem_560 = (BOOLEAN *)__cil_tmp331;
20489#line 4246
20490 if (*mem_560) {
20491#line 4248
20492 ntStatus = -1073741811L;
20493 } else {
20494 {
20495#line 4252
20496 ntStatus = FlStartDrive(disketteExtension, irp,
20497 (unsigned char)1, (unsigned char)0,
20498 (unsigned char)1);
20499 }
20500 }
20501 }
20502 }
20503 goto switch_125_break;
20504 switch_125_exp_15: ;
20505 {
20506#line 4268
20507 while (1) {
20508 while_128_continue: ;
20509 goto while_128_break;
20510 }
20511 while_128_break: ;
20512 }
20513 {
20514#line 4276
20515 __cil_tmp332 = (unsigned long )52U;
20516#line 4276
20517 __cil_tmp333 = (unsigned int )irpSp;
20518#line 4276
20519 __cil_tmp334 = __cil_tmp333 + 4;
20520#line 4276
20521 mem_561 = (ULONG *)__cil_tmp334;
20522#line 4276
20523 __cil_tmp335 = *mem_561;
20524#line 4276
20525 if (__cil_tmp335 < __cil_tmp332) {
20526#line 4280
20527 ntStatus = -1073741811L;
20528 } else {
20529 {
20530#line 4284
20531 __cil_tmp336 = (unsigned int )irpSp;
20532#line 4284
20533 __cil_tmp337 = __cil_tmp336 + 2;
20534#line 4284
20535 mem_562 = (UCHAR *)__cil_tmp337;
20536#line 4284
20537 __cil_tmp338 = *mem_562;
20538#line 4284
20539 __cil_tmp339 = (int )__cil_tmp338;
20540#line 4284
20541 __cil_tmp340 = __cil_tmp339 & 2;
20542#line 4284
20543 __cil_tmp341 = ! __cil_tmp340;
20544#line 4284
20545 __cil_tmp342 = ! __cil_tmp341;
20546#line 4284
20547 __cil_tmp343 = (unsigned char )__cil_tmp342;
20548#line 4284
20549 ntStatus = FlStartDrive(disketteExtension, irp,
20550 (unsigned char)0, (unsigned char)1,
20551 __cil_tmp343);
20552 }
20553 }
20554 }
20555#line 4299
20556 if (ntStatus >= 0L) {
20557 goto _L___0;
20558 } else {
20559#line 4299
20560 if (ntStatus == -1073741804L) {
20561 _L___0:
20562#line 4302
20563 __cil_tmp344 = (unsigned int )irp;
20564#line 4302
20565 __cil_tmp345 = __cil_tmp344 + 12;
20566#line 4302
20567 mem_563 = (PVOID *)__cil_tmp345;
20568#line 4302
20569 __cil_tmp346 = *mem_563;
20570#line 4302
20571 outputBuffer = (struct _DISK_GEOMETRY *)__cil_tmp346;
20572#line 4310
20573 ntStatus = 0L;
20574#line 4312
20575 __cil_tmp347 = (unsigned int )outputBuffer;
20576#line 4312
20577 __cil_tmp348 = __cil_tmp347 + 8;
20578#line 4312
20579 __cil_tmp349 = (unsigned int )disketteExtension;
20580#line 4312
20581 __cil_tmp350 = __cil_tmp349 + 184;
20582#line 4312
20583 mem_564 = (MEDIA_TYPE *)__cil_tmp348;
20584#line 4312
20585 mem_565 = (MEDIA_TYPE *)__cil_tmp350;
20586#line 4312
20587 *mem_564 = *mem_565;
20588 {
20589#line 4320
20590 __cil_tmp351 = (unsigned int )disketteExtension;
20591#line 4320
20592 __cil_tmp352 = __cil_tmp351 + 184;
20593#line 4320
20594 mem_566 = (MEDIA_TYPE *)__cil_tmp352;
20595#line 4320
20596 __cil_tmp353 = *mem_566;
20597#line 4320
20598 __cil_tmp354 = (int )__cil_tmp353;
20599#line 4320
20600 if (__cil_tmp354 == 0) {
20601 {
20602#line 4326
20603 while (1) {
20604 while_129_continue: ;
20605 goto while_129_break;
20606 }
20607 while_129_break: ;
20608 }
20609#line 4333
20610 mem_567 = (ULONG *)outputBuffer;
20611#line 4333
20612 *mem_567 = 0UL;
20613#line 4334
20614 __cil_tmp355 = 0 + 4;
20615#line 4334
20616 __cil_tmp356 = 0 + __cil_tmp355;
20617#line 4334
20618 __cil_tmp357 = (unsigned int )outputBuffer;
20619#line 4334
20620 __cil_tmp358 = __cil_tmp357 + __cil_tmp356;
20621#line 4334
20622 mem_568 = (LONG *)__cil_tmp358;
20623#line 4334
20624 *mem_568 = 0L;
20625#line 4335
20626 __cil_tmp359 = (unsigned int )outputBuffer;
20627#line 4335
20628 __cil_tmp360 = __cil_tmp359 + 40;
20629#line 4335
20630 mem_569 = (ULONG *)__cil_tmp360;
20631#line 4335
20632 *mem_569 = 0UL;
20633#line 4336
20634 __cil_tmp361 = (unsigned int )outputBuffer;
20635#line 4336
20636 __cil_tmp362 = __cil_tmp361 + 44;
20637#line 4336
20638 mem_570 = (ULONG *)__cil_tmp362;
20639#line 4336
20640 *mem_570 = 0UL;
20641#line 4337
20642 __cil_tmp363 = (unsigned int )outputBuffer;
20643#line 4337
20644 __cil_tmp364 = __cil_tmp363 + 48;
20645#line 4337
20646 mem_571 = (ULONG *)__cil_tmp364;
20647#line 4337
20648 *mem_571 = 0UL;
20649 } else {
20650 {
20651#line 4349
20652 while (1) {
20653 while_130_continue: ;
20654 goto while_130_break;
20655 }
20656 while_130_break: ;
20657 }
20658#line 4350
20659 __cil_tmp365 = 308 + 48;
20660#line 4350
20661 __cil_tmp366 = (unsigned int )disketteExtension;
20662#line 4350
20663 __cil_tmp367 = __cil_tmp366 + __cil_tmp365;
20664#line 4350
20665 mem_572 = (UCHAR *)__cil_tmp367;
20666#line 4350
20667 __cil_tmp368 = *mem_572;
20668#line 4350
20669 __cil_tmp369 = (int )__cil_tmp368;
20670#line 4350
20671 __cil_tmp370 = __cil_tmp369 + 1;
20672#line 4350
20673 mem_573 = (ULONG *)outputBuffer;
20674#line 4350
20675 *mem_573 = (unsigned long )__cil_tmp370;
20676#line 4354
20677 __cil_tmp371 = 0 + 4;
20678#line 4354
20679 __cil_tmp372 = 0 + __cil_tmp371;
20680#line 4354
20681 __cil_tmp373 = (unsigned int )outputBuffer;
20682#line 4354
20683 __cil_tmp374 = __cil_tmp373 + __cil_tmp372;
20684#line 4354
20685 mem_574 = (LONG *)__cil_tmp374;
20686#line 4354
20687 *mem_574 = 0L;
20688#line 4356
20689 __cil_tmp375 = (unsigned int )outputBuffer;
20690#line 4356
20691 __cil_tmp376 = __cil_tmp375 + 40;
20692#line 4356
20693 __cil_tmp377 = 308 + 51;
20694#line 4356
20695 __cil_tmp378 = (unsigned int )disketteExtension;
20696#line 4356
20697 __cil_tmp379 = __cil_tmp378 + __cil_tmp377;
20698#line 4356
20699 mem_575 = (UCHAR *)__cil_tmp379;
20700#line 4356
20701 __cil_tmp380 = *mem_575;
20702#line 4356
20703 mem_576 = (ULONG *)__cil_tmp376;
20704#line 4356
20705 *mem_576 = (unsigned long )__cil_tmp380;
20706#line 4360
20707 __cil_tmp381 = (unsigned int )outputBuffer;
20708#line 4360
20709 __cil_tmp382 = __cil_tmp381 + 44;
20710#line 4360
20711 __cil_tmp383 = 308 + 38;
20712#line 4360
20713 __cil_tmp384 = (unsigned int )disketteExtension;
20714#line 4360
20715 __cil_tmp385 = __cil_tmp384 + __cil_tmp383;
20716#line 4360
20717 mem_577 = (UCHAR *)__cil_tmp385;
20718#line 4360
20719 __cil_tmp386 = *mem_577;
20720#line 4360
20721 mem_578 = (ULONG *)__cil_tmp382;
20722#line 4360
20723 *mem_578 = (unsigned long )__cil_tmp386;
20724#line 4364
20725 __cil_tmp387 = (unsigned int )outputBuffer;
20726#line 4364
20727 __cil_tmp388 = __cil_tmp387 + 48;
20728#line 4364
20729 __cil_tmp389 = 308 + 36;
20730#line 4364
20731 __cil_tmp390 = (unsigned int )disketteExtension;
20732#line 4364
20733 __cil_tmp391 = __cil_tmp390 + __cil_tmp389;
20734#line 4364
20735 mem_579 = (USHORT *)__cil_tmp391;
20736#line 4364
20737 __cil_tmp392 = *mem_579;
20738#line 4364
20739 mem_580 = (ULONG *)__cil_tmp388;
20740#line 4364
20741 *mem_580 = (unsigned long )__cil_tmp392;
20742 }
20743 }
20744 {
20745#line 4384
20746 while (1) {
20747 while_131_continue: ;
20748 goto while_131_break;
20749 }
20750 while_131_break: ;
20751 }
20752 } else {
20753
20754 }
20755 }
20756#line 4388
20757 __cil_tmp393 = 24 + 4;
20758#line 4388
20759 __cil_tmp394 = (unsigned int )irp;
20760#line 4388
20761 __cil_tmp395 = __cil_tmp394 + __cil_tmp393;
20762#line 4388
20763 mem_581 = (ULONG_PTR *)__cil_tmp395;
20764#line 4388
20765 *mem_581 = (unsigned long )52U;
20766 goto switch_125_break;
20767 switch_125_exp_16:
20768 {
20769 __cil_tmp396 = 11 << 2;
20770 __cil_tmp397 = 3 << 14;
20771 __cil_tmp398 = 7 << 16;
20772 __cil_tmp399 = __cil_tmp398 | __cil_tmp397;
20773
20774 }
20775 switch_125_exp_17:
20776 {
20777 __cil_tmp400 = 6 << 2;
20778 __cil_tmp401 = 3 << 14;
20779 __cil_tmp402 = 7 << 16;
20780 __cil_tmp403 = __cil_tmp402 | __cil_tmp401;
20781
20782 }
20783 {
20784#line 4400
20785 while (1) {
20786 while_132_continue: ;
20787 goto while_132_break;
20788 }
20789 while_132_break: ;
20790 }
20791 {
20792#line 4407
20793 ntStatus = FlStartDrive(disketteExtension, irp,
20794 (unsigned char)1, (unsigned char)0,
20795 (unsigned char)0);
20796 }
20797#line 4420
20798 if (ntStatus >= 0L) {
20799 goto _L___1;
20800 } else {
20801#line 4420
20802 if (ntStatus == -1073741804L) {
20803 _L___1:
20804 {
20805#line 4432
20806 FlAllocateIoBuffer(disketteExtension, 4096UL);
20807 }
20808 {
20809#line 4435
20810 __cil_tmp404 = (unsigned int )disketteExtension;
20811#line 4435
20812 __cil_tmp405 = __cil_tmp404 + 124;
20813 {
20814#line 4435
20815 mem_582 = (PUCHAR *)__cil_tmp405;
20816#line 4435
20817 if (*mem_582) {
20818 {
20819#line 4436
20820 ntStatus = FlFormat(disketteExtension, irp);
20821 }
20822 } else {
20823#line 4439
20824 ntStatus = -1073741670L;
20825 }
20826 }
20827 }
20828 } else {
20829
20830 }
20831 }
20832 goto switch_125_break;
20833 switch_125_exp_18:
20834 {
20835 __cil_tmp406 = 248 << 2;
20836 __cil_tmp407 = 7 << 16;
20837
20838 }
20839 {
20840#line 4448
20841 __cil_tmp408 = (KUSER_SHARED_DATA * const )4292804608U;
20842#line 4448
20843 __cil_tmp409 = (unsigned int )__cil_tmp408;
20844#line 4448
20845 __cil_tmp410 = __cil_tmp409 + 732;
20846#line 4448
20847 mem_583 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp410;
20848#line 4448
20849 __cil_tmp411 = *mem_583;
20850#line 4448
20851 __cil_tmp412 = (int )__cil_tmp411;
20852#line 4448
20853 if (__cil_tmp412 == 1) {
20854 {
20855#line 4449
20856 __cil_tmp413 = 0 * 1U;
20857#line 4449
20858 __cil_tmp414 = 112 + __cil_tmp413;
20859#line 4449
20860 __cil_tmp415 = (unsigned int )disketteExtension;
20861#line 4449
20862 __cil_tmp416 = __cil_tmp415 + __cil_tmp414;
20863#line 4449
20864 mem_584 = (UCHAR *)__cil_tmp416;
20865#line 4449
20866 *mem_584 = (unsigned char)14;
20867#line 4450
20868 __cil_tmp417 = 1 * 1U;
20869#line 4450
20870 __cil_tmp418 = 112 + __cil_tmp417;
20871#line 4450
20872 __cil_tmp419 = (unsigned int )disketteExtension;
20873#line 4450
20874 __cil_tmp420 = __cil_tmp419 + __cil_tmp418;
20875#line 4450
20876 __cil_tmp421 = (unsigned int )disketteExtension;
20877#line 4450
20878 __cil_tmp422 = __cil_tmp421 + 248;
20879#line 4450
20880 mem_585 = (UCHAR *)__cil_tmp420;
20881#line 4450
20882 mem_586 = (UCHAR *)__cil_tmp422;
20883#line 4450
20884 *mem_585 = *mem_586;
20885#line 4452
20886 __cil_tmp423 = 0 * 1U;
20887#line 4452
20888 __cil_tmp424 = 112 + __cil_tmp423;
20889#line 4452
20890 __cil_tmp425 = (unsigned int )disketteExtension;
20891#line 4452
20892 __cil_tmp426 = __cil_tmp425 + __cil_tmp424;
20893#line 4452
20894 __cil_tmp427 = (UCHAR *)__cil_tmp426;
20895#line 4452
20896 __cil_tmp428 = 0 * 1U;
20897#line 4452
20898 __cil_tmp429 = 112 + __cil_tmp428;
20899#line 4452
20900 __cil_tmp430 = (unsigned int )disketteExtension;
20901#line 4452
20902 __cil_tmp431 = __cil_tmp430 + __cil_tmp429;
20903#line 4452
20904 __cil_tmp432 = (UCHAR *)__cil_tmp431;
20905#line 4452
20906 __cil_tmp433 = (void *)0;
20907#line 4452
20908 __cil_tmp434 = (struct _MDL *)__cil_tmp433;
20909#line 4452
20910 ntStatus = FlIssueCommand(disketteExtension, __cil_tmp427,
20911 __cil_tmp432, __cil_tmp434,
20912 0UL, 0UL);
20913 }
20914#line 4459
20915 if (ntStatus >= 0L) {
20916#line 4461
20917 __cil_tmp435 = (unsigned int )irp;
20918#line 4461
20919 __cil_tmp436 = __cil_tmp435 + 12;
20920#line 4461
20921 mem_587 = (PVOID *)__cil_tmp436;
20922#line 4461
20923 __cil_tmp437 = *mem_587;
20924#line 4461
20925 outputBuffer___0 = (struct _SENSE_DEVISE_STATUS_PTOS *)__cil_tmp437;
20926#line 4463
20927 __cil_tmp438 = 0 * 1U;
20928#line 4463
20929 __cil_tmp439 = (unsigned int )(Result_Status3_PTOS) + __cil_tmp438;
20930#line 4463
20931 mem_588 = (UCHAR *)outputBuffer___0;
20932#line 4463
20933 mem_589 = (UCHAR *)__cil_tmp439;
20934#line 4463
20935 *mem_588 = *mem_589;
20936#line 4466
20937 __cil_tmp440 = 24 + 4;
20938#line 4466
20939 __cil_tmp441 = (unsigned int )irp;
20940#line 4466
20941 __cil_tmp442 = __cil_tmp441 + __cil_tmp440;
20942#line 4466
20943 mem_590 = (ULONG_PTR *)__cil_tmp442;
20944#line 4466
20945 *mem_590 = (unsigned long )1U;
20946 } else {
20947
20948 }
20949 goto switch_125_break;
20950 } else {
20951
20952 }
20953 }
20954 } else {
20955 switch_125_break: ;
20956 }
20957 }
20958 }
20959 }
20960 }
20961 }
20962 }
20963 }
20964 }
20965 }
20966 }
20967 goto switch_121_break;
20968 switch_121_default: ;
20969 {
20970#line 4483
20971 while (1) {
20972 while_133_continue: ;
20973 goto while_133_break;
20974 }
20975 while_133_break: ;
20976 }
20977#line 4485
20978 ntStatus = -1073741822L;
20979 } else {
20980 switch_121_break: ;
20981 }
20982 }
20983 }
20984 }
20985 }
20986 }
20987 }
20988#line 4490
20989 if (ntStatus == -2147483631L) {
20990 {
20991#line 4496
20992 while (1) {
20993 while_134_continue: ;
20994 {
20995#line 4498
20996 __cil_tmp443 = (unsigned int )disketteExtension;
20997#line 4498
20998 __cil_tmp444 = __cil_tmp443 + 104;
20999#line 4498
21000 mem_591 = (BOOLEAN *)__cil_tmp444;
21001#line 4498
21002 *mem_591 = (unsigned char)0;
21003#line 4500
21004 __cil_tmp445 = (unsigned int )irp;
21005#line 4500
21006 __cil_tmp446 = __cil_tmp445 + 24;
21007#line 4500
21008 mem_592 = (NTSTATUS *)__cil_tmp446;
21009#line 4500
21010 *mem_592 = -2147483631L;
21011#line 4502
21012 IofCompleteRequest(irp, (char)1);
21013#line 4504
21014 __cil_tmp447 = (unsigned int )disketteExtension;
21015#line 4504
21016 __cil_tmp448 = __cil_tmp447 + 96;
21017#line 4504
21018 __cil_tmp449 = (LIST_ENTRY *)__cil_tmp448;
21019#line 4504
21020 __cil_tmp450 = (unsigned int )disketteExtension;
21021#line 4504
21022 __cil_tmp451 = __cil_tmp450 + 52;
21023#line 4504
21024 __cil_tmp452 = (KSPIN_LOCK *)__cil_tmp451;
21025#line 4504
21026 request = ExfInterlockedRemoveHeadList(__cil_tmp449, __cil_tmp452);
21027 }
21028#line 4508
21029 if (! request) {
21030 goto while_134_break;
21031 } else {
21032
21033 }
21034 {
21035#line 4512
21036 __cil_tmp453 = (unsigned int )disketteExtension;
21037#line 4512
21038 __cil_tmp454 = __cil_tmp453 + 56;
21039#line 4512
21040 __cil_tmp455 = (FAST_MUTEX *)__cil_tmp454;
21041#line 4512
21042 ExAcquireFastMutex(__cil_tmp455);
21043#line 4515
21044 __cil_tmp456 = (unsigned int )disketteExtension;
21045#line 4515
21046 __cil_tmp457 = __cil_tmp456 + 88;
21047#line 4515
21048 __cil_tmp458 = (unsigned int )disketteExtension;
21049#line 4515
21050 __cil_tmp459 = __cil_tmp458 + 88;
21051#line 4515
21052 mem_593 = (LONG *)__cil_tmp459;
21053#line 4515
21054 __cil_tmp460 = *mem_593;
21055#line 4515
21056 mem_594 = (LONG *)__cil_tmp457;
21057#line 4515
21058 *mem_594 = __cil_tmp460 - 1L;
21059#line 4516
21060 __cil_tmp461 = (unsigned int )disketteExtension;
21061#line 4516
21062 __cil_tmp462 = __cil_tmp461 + 56;
21063#line 4516
21064 __cil_tmp463 = (FAST_MUTEX *)__cil_tmp462;
21065#line 4516
21066 ExReleaseFastMutex(__cil_tmp463);
21067#line 4519
21068 __cil_tmp464 = 0 + 24;
21069#line 4519
21070 __cil_tmp465 = 64 + __cil_tmp464;
21071#line 4519
21072 __cil_tmp466 = (IRP *)0;
21073#line 4519
21074 __cil_tmp467 = (unsigned int )__cil_tmp466;
21075#line 4519
21076 __cil_tmp468 = __cil_tmp467 + __cil_tmp465;
21077#line 4519
21078 __cil_tmp469 = (LIST_ENTRY *)__cil_tmp468;
21079#line 4519
21080 __cil_tmp470 = (unsigned long )__cil_tmp469;
21081#line 4519
21082 __cil_tmp471 = (CHAR *)request;
21083#line 4519
21084 __cil_tmp472 = __cil_tmp471 - __cil_tmp470;
21085#line 4519
21086 irp = (IRP *)__cil_tmp472;
21087 }
21088 }
21089 while_134_break: ;
21090 }
21091 } else {
21092#line 4531
21093 __cil_tmp473 = (unsigned int )irp;
21094#line 4531
21095 __cil_tmp474 = __cil_tmp473 + 24;
21096#line 4531
21097 mem_595 = (NTSTATUS *)__cil_tmp474;
21098#line 4531
21099 *mem_595 = ntStatus;
21100 {
21101#line 4536
21102 __cil_tmp475 = (unsigned int )disketteExtension;
21103#line 4536
21104 __cil_tmp476 = __cil_tmp475 + 124;
21105 {
21106#line 4536
21107 mem_596 = (PUCHAR *)__cil_tmp476;
21108#line 4536
21109 if (*mem_596) {
21110 {
21111#line 4537
21112 FlFreeIoBuffer(disketteExtension);
21113 }
21114 } else {
21115
21116 }
21117 }
21118 }
21119 {
21120#line 4540
21121 FlFinishOperation(irp, disketteExtension);
21122 }
21123 }
21124 }
21125 while_117_break: ;
21126 }
21127 {
21128#line 4546
21129 __cil_tmp477 = (KUSER_SHARED_DATA * const )4292804608U;
21130#line 4546
21131 __cil_tmp478 = (unsigned int )__cil_tmp477;
21132#line 4546
21133 __cil_tmp479 = __cil_tmp478 + 732;
21134#line 4546
21135 mem_597 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp479;
21136#line 4546
21137 __cil_tmp480 = *mem_597;
21138#line 4546
21139 __cil_tmp481 = (int )__cil_tmp480;
21140#line 4546
21141 if (__cil_tmp481 == 1) {
21142 {
21143#line 4547
21144 __cil_tmp482 = (unsigned int )disketteExtension;
21145#line 4547
21146 __cil_tmp483 = __cil_tmp482 + 172;
21147 {
21148#line 4547
21149 mem_598 = (BOOLEAN *)__cil_tmp483;
21150#line 4547
21151 if (*mem_598) {
21152 {
21153#line 4548
21154 __cil_tmp484 = (unsigned int )disketteExtension;
21155#line 4548
21156 __cil_tmp485 = __cil_tmp484 + 8;
21157#line 4548
21158 mem_599 = (PDEVICE_OBJECT *)__cil_tmp485;
21159#line 4548
21160 __cil_tmp486 = *mem_599;
21161#line 4548
21162 __cil_tmp487 = 769 << 2;
21163#line 4548
21164 __cil_tmp488 = 7 << 16;
21165#line 4548
21166 __cil_tmp489 = __cil_tmp488 | __cil_tmp487;
21167#line 4548
21168 __cil_tmp490 = __cil_tmp489 | 3;
21169#line 4548
21170 __cil_tmp491 = (unsigned long )__cil_tmp490;
21171#line 4548
21172 __cil_tmp492 = (unsigned int )disketteExtension;
21173#line 4548
21174 __cil_tmp493 = __cil_tmp492 + 28;
21175#line 4548
21176 mem_600 = (PDEVICE_OBJECT *)__cil_tmp493;
21177#line 4548
21178 __cil_tmp494 = *mem_600;
21179#line 4548
21180 __cil_tmp495 = (void *)__cil_tmp494;
21181#line 4548
21182 FlFdcDeviceIo(__cil_tmp486, __cil_tmp491, __cil_tmp495);
21183#line 4552
21184 __cil_tmp496 = (unsigned int )disketteExtension;
21185#line 4552
21186 __cil_tmp497 = __cil_tmp496 + 172;
21187#line 4552
21188 mem_601 = (BOOLEAN *)__cil_tmp497;
21189#line 4552
21190 *mem_601 = (unsigned char)0;
21191#line 4553
21192 __cil_tmp498 = (unsigned int )disketteExtension;
21193#line 4553
21194 __cil_tmp499 = __cil_tmp498 + 392;
21195#line 4553
21196 mem_602 = (BOOLEAN *)__cil_tmp499;
21197#line 4553
21198 *mem_602 = (unsigned char)1;
21199 }
21200 } else {
21201
21202 }
21203 }
21204 }
21205 } else {
21206
21207 }
21208 }
21209 __Cont: ;
21210 }
21211 while_114_break: ;
21212 }
21213}
21214}
21215#line 4560 "floppy.c"
21216void FlConsolidateMediaTypeWithBootSector(PDISKETTE_EXTENSION DisketteExtension ,
21217 PBOOT_SECTOR_INFO BootSector )
21218{ USHORT bpbNumberOfSectors ;
21219 USHORT bpbNumberOfHeads ;
21220 USHORT bpbSectorsPerTrack ;
21221 USHORT bpbBytesPerSector ;
21222 USHORT bpbMediaByte ;
21223 USHORT bpbMaximumTrack ;
21224 MEDIA_TYPE bpbMediaType ;
21225 ULONG i ;
21226 ULONG n ;
21227 PDRIVE_MEDIA_CONSTANTS readidDriveMediaConstants ;
21228 BOOLEAN changeToBpbMedia ;
21229 int tmp ;
21230 SIZE_T tmp___0 ;
21231 unsigned int __cil_tmp16 ;
21232 unsigned int __cil_tmp17 ;
21233 unsigned int __cil_tmp18 ;
21234 unsigned int __cil_tmp19 ;
21235 UCHAR __cil_tmp20 ;
21236 int __cil_tmp21 ;
21237 unsigned int __cil_tmp22 ;
21238 unsigned int __cil_tmp23 ;
21239 unsigned int __cil_tmp24 ;
21240 unsigned int __cil_tmp25 ;
21241 UCHAR __cil_tmp26 ;
21242 int __cil_tmp27 ;
21243 unsigned int __cil_tmp28 ;
21244 unsigned int __cil_tmp29 ;
21245 unsigned int __cil_tmp30 ;
21246 unsigned int __cil_tmp31 ;
21247 UCHAR __cil_tmp32 ;
21248 int __cil_tmp33 ;
21249 unsigned int __cil_tmp34 ;
21250 unsigned int __cil_tmp35 ;
21251 unsigned int __cil_tmp36 ;
21252 unsigned int __cil_tmp37 ;
21253 UCHAR __cil_tmp38 ;
21254 int __cil_tmp39 ;
21255 int __cil_tmp40 ;
21256 int __cil_tmp41 ;
21257 unsigned int __cil_tmp42 ;
21258 unsigned int __cil_tmp43 ;
21259 unsigned int __cil_tmp44 ;
21260 unsigned int __cil_tmp45 ;
21261 UCHAR __cil_tmp46 ;
21262 int __cil_tmp47 ;
21263 unsigned int __cil_tmp48 ;
21264 unsigned int __cil_tmp49 ;
21265 unsigned int __cil_tmp50 ;
21266 unsigned int __cil_tmp51 ;
21267 UCHAR __cil_tmp52 ;
21268 int __cil_tmp53 ;
21269 int __cil_tmp54 ;
21270 int __cil_tmp55 ;
21271 unsigned int __cil_tmp56 ;
21272 unsigned int __cil_tmp57 ;
21273 unsigned int __cil_tmp58 ;
21274 unsigned int __cil_tmp59 ;
21275 UCHAR __cil_tmp60 ;
21276 int __cil_tmp61 ;
21277 unsigned int __cil_tmp62 ;
21278 unsigned int __cil_tmp63 ;
21279 unsigned int __cil_tmp64 ;
21280 unsigned int __cil_tmp65 ;
21281 UCHAR __cil_tmp66 ;
21282 int __cil_tmp67 ;
21283 int __cil_tmp68 ;
21284 int __cil_tmp69 ;
21285 unsigned int __cil_tmp70 ;
21286 unsigned int __cil_tmp71 ;
21287 unsigned int __cil_tmp72 ;
21288 unsigned int __cil_tmp73 ;
21289 UCHAR __cil_tmp74 ;
21290 int __cil_tmp75 ;
21291 unsigned int __cil_tmp76 ;
21292 unsigned int __cil_tmp77 ;
21293 unsigned int __cil_tmp78 ;
21294 unsigned int __cil_tmp79 ;
21295 UCHAR __cil_tmp80 ;
21296 int __cil_tmp81 ;
21297 int __cil_tmp82 ;
21298 int __cil_tmp83 ;
21299 unsigned int __cil_tmp84 ;
21300 unsigned int __cil_tmp85 ;
21301 unsigned int __cil_tmp86 ;
21302 unsigned int __cil_tmp87 ;
21303 UCHAR __cil_tmp88 ;
21304 int __cil_tmp89 ;
21305 int __cil_tmp90 ;
21306 int __cil_tmp91 ;
21307 int __cil_tmp92 ;
21308 int __cil_tmp93 ;
21309 int __cil_tmp94 ;
21310 KUSER_SHARED_DATA *__cil_tmp95 ;
21311 unsigned int __cil_tmp96 ;
21312 unsigned int __cil_tmp97 ;
21313 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp98 ;
21314 int __cil_tmp99 ;
21315 unsigned long __cil_tmp100 ;
21316 int __cil_tmp101 ;
21317 PDRIVE_MEDIA_CONSTANTS __cil_tmp102 ;
21318 unsigned int __cil_tmp103 ;
21319 unsigned int __cil_tmp104 ;
21320 USHORT __cil_tmp105 ;
21321 int __cil_tmp106 ;
21322 int __cil_tmp107 ;
21323 PDRIVE_MEDIA_CONSTANTS __cil_tmp108 ;
21324 unsigned int __cil_tmp109 ;
21325 unsigned int __cil_tmp110 ;
21326 UCHAR __cil_tmp111 ;
21327 int __cil_tmp112 ;
21328 int __cil_tmp113 ;
21329 PDRIVE_MEDIA_CONSTANTS __cil_tmp114 ;
21330 unsigned int __cil_tmp115 ;
21331 unsigned int __cil_tmp116 ;
21332 UCHAR __cil_tmp117 ;
21333 int __cil_tmp118 ;
21334 int __cil_tmp119 ;
21335 PDRIVE_MEDIA_CONSTANTS __cil_tmp120 ;
21336 unsigned int __cil_tmp121 ;
21337 unsigned int __cil_tmp122 ;
21338 UCHAR __cil_tmp123 ;
21339 int __cil_tmp124 ;
21340 int __cil_tmp125 ;
21341 PDRIVE_MEDIA_CONSTANTS __cil_tmp126 ;
21342 unsigned int __cil_tmp127 ;
21343 unsigned int __cil_tmp128 ;
21344 UCHAR __cil_tmp129 ;
21345 int __cil_tmp130 ;
21346 int __cil_tmp131 ;
21347 PDRIVE_MEDIA_CONSTANTS __cil_tmp132 ;
21348 unsigned int __cil_tmp133 ;
21349 unsigned int __cil_tmp134 ;
21350 UCHAR __cil_tmp135 ;
21351 int __cil_tmp136 ;
21352 unsigned int __cil_tmp137 ;
21353 unsigned int __cil_tmp138 ;
21354 MEDIA_TYPE __cil_tmp139 ;
21355 int __cil_tmp140 ;
21356 int __cil_tmp141 ;
21357 unsigned int __cil_tmp142 ;
21358 unsigned int __cil_tmp143 ;
21359 unsigned int __cil_tmp144 ;
21360 unsigned int __cil_tmp145 ;
21361 USHORT __cil_tmp146 ;
21362 int __cil_tmp147 ;
21363 int __cil_tmp148 ;
21364 int __cil_tmp149 ;
21365 unsigned int __cil_tmp150 ;
21366 unsigned int __cil_tmp151 ;
21367 UCHAR __cil_tmp152 ;
21368 int __cil_tmp153 ;
21369 int __cil_tmp154 ;
21370 unsigned int __cil_tmp155 ;
21371 unsigned int __cil_tmp156 ;
21372 UCHAR __cil_tmp157 ;
21373 int __cil_tmp158 ;
21374 int __cil_tmp159 ;
21375 int __cil_tmp160 ;
21376 unsigned int __cil_tmp161 ;
21377 unsigned int __cil_tmp162 ;
21378 unsigned int __cil_tmp163 ;
21379 unsigned int __cil_tmp164 ;
21380 unsigned int __cil_tmp165 ;
21381 UCHAR __cil_tmp166 ;
21382 int __cil_tmp167 ;
21383 PDRIVE_MEDIA_LIMITS __cil_tmp168 ;
21384 unsigned int __cil_tmp169 ;
21385 unsigned int __cil_tmp170 ;
21386 DRIVE_MEDIA_TYPE __cil_tmp171 ;
21387 unsigned int __cil_tmp172 ;
21388 unsigned int __cil_tmp173 ;
21389 UCHAR __cil_tmp174 ;
21390 int __cil_tmp175 ;
21391 PDRIVE_MEDIA_LIMITS __cil_tmp176 ;
21392 DRIVE_MEDIA_TYPE __cil_tmp177 ;
21393 PDRIVE_MEDIA_CONSTANTS __cil_tmp178 ;
21394 MEDIA_TYPE __cil_tmp179 ;
21395 int __cil_tmp180 ;
21396 int __cil_tmp181 ;
21397 unsigned int __cil_tmp182 ;
21398 unsigned int __cil_tmp183 ;
21399 unsigned int __cil_tmp184 ;
21400 unsigned int __cil_tmp185 ;
21401 unsigned int __cil_tmp186 ;
21402 unsigned int __cil_tmp187 ;
21403 int __cil_tmp188 ;
21404 int __cil_tmp189 ;
21405 int __cil_tmp190 ;
21406 unsigned int __cil_tmp191 ;
21407 unsigned int __cil_tmp192 ;
21408 unsigned int __cil_tmp193 ;
21409 unsigned int __cil_tmp194 ;
21410 unsigned int __cil_tmp195 ;
21411 unsigned int __cil_tmp196 ;
21412 unsigned int __cil_tmp197 ;
21413 unsigned int __cil_tmp198 ;
21414 unsigned int __cil_tmp199 ;
21415 unsigned int __cil_tmp200 ;
21416 UCHAR *__cil_tmp201 ;
21417 void const *__cil_tmp202 ;
21418 void const *__cil_tmp203 ;
21419 unsigned int __cil_tmp204 ;
21420 unsigned int __cil_tmp205 ;
21421 UCHAR *mem_206 ;
21422 UCHAR *mem_207 ;
21423 UCHAR *mem_208 ;
21424 UCHAR *mem_209 ;
21425 UCHAR *mem_210 ;
21426 UCHAR *mem_211 ;
21427 UCHAR *mem_212 ;
21428 UCHAR *mem_213 ;
21429 UCHAR *mem_214 ;
21430 UCHAR *mem_215 ;
21431 UCHAR *mem_216 ;
21432 ALTERNATIVE_ARCHITECTURE_TYPE *mem_217 ;
21433 USHORT *mem_218 ;
21434 UCHAR *mem_219 ;
21435 UCHAR *mem_220 ;
21436 UCHAR *mem_221 ;
21437 UCHAR *mem_222 ;
21438 MEDIA_TYPE *mem_223 ;
21439 UCHAR *mem_224 ;
21440 MEDIA_TYPE *mem_225 ;
21441 USHORT *mem_226 ;
21442 UCHAR *mem_227 ;
21443 UCHAR *mem_228 ;
21444 MEDIA_TYPE *mem_229 ;
21445 UCHAR *mem_230 ;
21446 UCHAR *mem_231 ;
21447 DRIVE_MEDIA_TYPE *mem_232 ;
21448 UCHAR *mem_233 ;
21449 DRIVE_MEDIA_TYPE *mem_234 ;
21450 MEDIA_TYPE *mem_235 ;
21451 DRIVE_MEDIA_TYPE *mem_236 ;
21452 MEDIA_TYPE *mem_237 ;
21453 ULONG *mem_238 ;
21454 UCHAR *mem_239 ;
21455 UCHAR *mem_240 ;
21456 BOOLEAN *mem_241 ;
21457
21458 {
21459 {
21460#line 4598
21461 while (1) {
21462 while_135_continue: ;
21463 goto while_135_break;
21464 }
21465 while_135_break: ;
21466 }
21467 {
21468#line 4600
21469 __cil_tmp16 = 0 * 1U;
21470#line 4600
21471 __cil_tmp17 = 0 + __cil_tmp16;
21472#line 4600
21473 __cil_tmp18 = (unsigned int )BootSector;
21474#line 4600
21475 __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
21476#line 4600
21477 mem_206 = (UCHAR *)__cil_tmp19;
21478#line 4600
21479 __cil_tmp20 = *mem_206;
21480#line 4600
21481 __cil_tmp21 = (int )__cil_tmp20;
21482#line 4600
21483 if (__cil_tmp21 != 235) {
21484 {
21485#line 4600
21486 __cil_tmp22 = 0 * 1U;
21487#line 4600
21488 __cil_tmp23 = 0 + __cil_tmp22;
21489#line 4600
21490 __cil_tmp24 = (unsigned int )BootSector;
21491#line 4600
21492 __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
21493#line 4600
21494 mem_207 = (UCHAR *)__cil_tmp25;
21495#line 4600
21496 __cil_tmp26 = *mem_207;
21497#line 4600
21498 __cil_tmp27 = (int )__cil_tmp26;
21499#line 4600
21500 if (__cil_tmp27 != 233) {
21501
21502 } else {
21503
21504 }
21505 }
21506 } else {
21507
21508 }
21509 }
21510#line 4607
21511 __cil_tmp28 = 0 * 1U;
21512#line 4607
21513 __cil_tmp29 = 19 + __cil_tmp28;
21514#line 4607
21515 __cil_tmp30 = (unsigned int )BootSector;
21516#line 4607
21517 __cil_tmp31 = __cil_tmp30 + __cil_tmp29;
21518#line 4607
21519 mem_208 = (UCHAR *)__cil_tmp31;
21520#line 4607
21521 __cil_tmp32 = *mem_208;
21522#line 4607
21523 __cil_tmp33 = (int )__cil_tmp32;
21524#line 4607
21525 __cil_tmp34 = 1 * 1U;
21526#line 4607
21527 __cil_tmp35 = 19 + __cil_tmp34;
21528#line 4607
21529 __cil_tmp36 = (unsigned int )BootSector;
21530#line 4607
21531 __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
21532#line 4607
21533 mem_209 = (UCHAR *)__cil_tmp37;
21534#line 4607
21535 __cil_tmp38 = *mem_209;
21536#line 4607
21537 __cil_tmp39 = (int )__cil_tmp38;
21538#line 4607
21539 __cil_tmp40 = __cil_tmp39 * 256;
21540#line 4607
21541 __cil_tmp41 = __cil_tmp40 + __cil_tmp33;
21542#line 4607
21543 bpbNumberOfSectors = (unsigned short )__cil_tmp41;
21544#line 4609
21545 __cil_tmp42 = 0 * 1U;
21546#line 4609
21547 __cil_tmp43 = 26 + __cil_tmp42;
21548#line 4609
21549 __cil_tmp44 = (unsigned int )BootSector;
21550#line 4609
21551 __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
21552#line 4609
21553 mem_210 = (UCHAR *)__cil_tmp45;
21554#line 4609
21555 __cil_tmp46 = *mem_210;
21556#line 4609
21557 __cil_tmp47 = (int )__cil_tmp46;
21558#line 4609
21559 __cil_tmp48 = 1 * 1U;
21560#line 4609
21561 __cil_tmp49 = 26 + __cil_tmp48;
21562#line 4609
21563 __cil_tmp50 = (unsigned int )BootSector;
21564#line 4609
21565 __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
21566#line 4609
21567 mem_211 = (UCHAR *)__cil_tmp51;
21568#line 4609
21569 __cil_tmp52 = *mem_211;
21570#line 4609
21571 __cil_tmp53 = (int )__cil_tmp52;
21572#line 4609
21573 __cil_tmp54 = __cil_tmp53 * 256;
21574#line 4609
21575 __cil_tmp55 = __cil_tmp54 + __cil_tmp47;
21576#line 4609
21577 bpbNumberOfHeads = (unsigned short )__cil_tmp55;
21578#line 4611
21579 __cil_tmp56 = 0 * 1U;
21580#line 4611
21581 __cil_tmp57 = 24 + __cil_tmp56;
21582#line 4611
21583 __cil_tmp58 = (unsigned int )BootSector;
21584#line 4611
21585 __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
21586#line 4611
21587 mem_212 = (UCHAR *)__cil_tmp59;
21588#line 4611
21589 __cil_tmp60 = *mem_212;
21590#line 4611
21591 __cil_tmp61 = (int )__cil_tmp60;
21592#line 4611
21593 __cil_tmp62 = 1 * 1U;
21594#line 4611
21595 __cil_tmp63 = 24 + __cil_tmp62;
21596#line 4611
21597 __cil_tmp64 = (unsigned int )BootSector;
21598#line 4611
21599 __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
21600#line 4611
21601 mem_213 = (UCHAR *)__cil_tmp65;
21602#line 4611
21603 __cil_tmp66 = *mem_213;
21604#line 4611
21605 __cil_tmp67 = (int )__cil_tmp66;
21606#line 4611
21607 __cil_tmp68 = __cil_tmp67 * 256;
21608#line 4611
21609 __cil_tmp69 = __cil_tmp68 + __cil_tmp61;
21610#line 4611
21611 bpbSectorsPerTrack = (unsigned short )__cil_tmp69;
21612#line 4613
21613 __cil_tmp70 = 0 * 1U;
21614#line 4613
21615 __cil_tmp71 = 11 + __cil_tmp70;
21616#line 4613
21617 __cil_tmp72 = (unsigned int )BootSector;
21618#line 4613
21619 __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
21620#line 4613
21621 mem_214 = (UCHAR *)__cil_tmp73;
21622#line 4613
21623 __cil_tmp74 = *mem_214;
21624#line 4613
21625 __cil_tmp75 = (int )__cil_tmp74;
21626#line 4613
21627 __cil_tmp76 = 1 * 1U;
21628#line 4613
21629 __cil_tmp77 = 11 + __cil_tmp76;
21630#line 4613
21631 __cil_tmp78 = (unsigned int )BootSector;
21632#line 4613
21633 __cil_tmp79 = __cil_tmp78 + __cil_tmp77;
21634#line 4613
21635 mem_215 = (UCHAR *)__cil_tmp79;
21636#line 4613
21637 __cil_tmp80 = *mem_215;
21638#line 4613
21639 __cil_tmp81 = (int )__cil_tmp80;
21640#line 4613
21641 __cil_tmp82 = __cil_tmp81 * 256;
21642#line 4613
21643 __cil_tmp83 = __cil_tmp82 + __cil_tmp75;
21644#line 4613
21645 bpbBytesPerSector = (unsigned short )__cil_tmp83;
21646#line 4615
21647 __cil_tmp84 = 0 * 1U;
21648#line 4615
21649 __cil_tmp85 = 21 + __cil_tmp84;
21650#line 4615
21651 __cil_tmp86 = (unsigned int )BootSector;
21652#line 4615
21653 __cil_tmp87 = __cil_tmp86 + __cil_tmp85;
21654#line 4615
21655 mem_216 = (UCHAR *)__cil_tmp87;
21656#line 4615
21657 __cil_tmp88 = *mem_216;
21658#line 4615
21659 bpbMediaByte = (unsigned short )__cil_tmp88;
21660#line 4617
21661 if (! bpbNumberOfHeads) {
21662
21663 } else {
21664#line 4617
21665 if (! bpbSectorsPerTrack) {
21666
21667 } else {
21668
21669 }
21670 }
21671#line 4622
21672 __cil_tmp89 = (int )bpbSectorsPerTrack;
21673#line 4622
21674 __cil_tmp90 = (int )bpbNumberOfHeads;
21675#line 4622
21676 __cil_tmp91 = (int )bpbNumberOfSectors;
21677#line 4622
21678 __cil_tmp92 = __cil_tmp91 / __cil_tmp90;
21679#line 4622
21680 __cil_tmp93 = __cil_tmp92 / __cil_tmp89;
21681#line 4622
21682 __cil_tmp94 = __cil_tmp93 - 1;
21683#line 4622
21684 bpbMaximumTrack = (unsigned short )__cil_tmp94;
21685#line 4628
21686 bpbMediaType = (enum _MEDIA_TYPE )0;
21687#line 4629
21688 i = 0UL;
21689 {
21690#line 4629
21691 while (1) {
21692 while_136_continue: ;
21693 {
21694#line 4629
21695 __cil_tmp95 = (KUSER_SHARED_DATA * const )4292804608U;
21696#line 4629
21697 __cil_tmp96 = (unsigned int )__cil_tmp95;
21698#line 4629
21699 __cil_tmp97 = __cil_tmp96 + 732;
21700#line 4629
21701 mem_217 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp97;
21702#line 4629
21703 __cil_tmp98 = *mem_217;
21704#line 4629
21705 __cil_tmp99 = (int )__cil_tmp98;
21706#line 4629
21707 if (__cil_tmp99 == 1) {
21708#line 4629
21709 tmp = 21;
21710 } else {
21711#line 4629
21712 tmp = 17;
21713 }
21714 }
21715 {
21716#line 4629
21717 __cil_tmp100 = (unsigned long )tmp;
21718#line 4629
21719 __cil_tmp101 = i < __cil_tmp100;
21720#line 4629
21721 if (! __cil_tmp101) {
21722 goto while_136_break;
21723 } else {
21724
21725 }
21726 }
21727 {
21728#line 4631
21729 __cil_tmp102 = DriveMediaConstants + i;
21730#line 4631
21731 __cil_tmp103 = (unsigned int )__cil_tmp102;
21732#line 4631
21733 __cil_tmp104 = __cil_tmp103 + 36;
21734#line 4631
21735 mem_218 = (USHORT *)__cil_tmp104;
21736#line 4631
21737 __cil_tmp105 = *mem_218;
21738#line 4631
21739 __cil_tmp106 = (int )__cil_tmp105;
21740#line 4631
21741 __cil_tmp107 = (int )bpbBytesPerSector;
21742#line 4631
21743 if (__cil_tmp107 == __cil_tmp106) {
21744 {
21745#line 4631
21746 __cil_tmp108 = DriveMediaConstants + i;
21747#line 4631
21748 __cil_tmp109 = (unsigned int )__cil_tmp108;
21749#line 4631
21750 __cil_tmp110 = __cil_tmp109 + 38;
21751#line 4631
21752 mem_219 = (UCHAR *)__cil_tmp110;
21753#line 4631
21754 __cil_tmp111 = *mem_219;
21755#line 4631
21756 __cil_tmp112 = (int )__cil_tmp111;
21757#line 4631
21758 __cil_tmp113 = (int )bpbSectorsPerTrack;
21759#line 4631
21760 if (__cil_tmp113 == __cil_tmp112) {
21761 {
21762#line 4631
21763 __cil_tmp114 = DriveMediaConstants + i;
21764#line 4631
21765 __cil_tmp115 = (unsigned int )__cil_tmp114;
21766#line 4631
21767 __cil_tmp116 = __cil_tmp115 + 48;
21768#line 4631
21769 mem_220 = (UCHAR *)__cil_tmp116;
21770#line 4631
21771 __cil_tmp117 = *mem_220;
21772#line 4631
21773 __cil_tmp118 = (int )__cil_tmp117;
21774#line 4631
21775 __cil_tmp119 = (int )bpbMaximumTrack;
21776#line 4631
21777 if (__cil_tmp119 == __cil_tmp118) {
21778 {
21779#line 4631
21780 __cil_tmp120 = DriveMediaConstants + i;
21781#line 4631
21782 __cil_tmp121 = (unsigned int )__cil_tmp120;
21783#line 4631
21784 __cil_tmp122 = __cil_tmp121 + 51;
21785#line 4631
21786 mem_221 = (UCHAR *)__cil_tmp122;
21787#line 4631
21788 __cil_tmp123 = *mem_221;
21789#line 4631
21790 __cil_tmp124 = (int )__cil_tmp123;
21791#line 4631
21792 __cil_tmp125 = (int )bpbNumberOfHeads;
21793#line 4631
21794 if (__cil_tmp125 == __cil_tmp124) {
21795 {
21796#line 4631
21797 __cil_tmp126 = DriveMediaConstants + i;
21798#line 4631
21799 __cil_tmp127 = (unsigned int )__cil_tmp126;
21800#line 4631
21801 __cil_tmp128 = __cil_tmp127 + 53;
21802#line 4631
21803 mem_222 = (UCHAR *)__cil_tmp128;
21804#line 4631
21805 __cil_tmp129 = *mem_222;
21806#line 4631
21807 __cil_tmp130 = (int )__cil_tmp129;
21808#line 4631
21809 __cil_tmp131 = (int )bpbMediaByte;
21810#line 4631
21811 if (__cil_tmp131 == __cil_tmp130) {
21812#line 4637
21813 __cil_tmp132 = DriveMediaConstants + i;
21814#line 4637
21815 mem_223 = (MEDIA_TYPE *)__cil_tmp132;
21816#line 4637
21817 bpbMediaType = *mem_223;
21818 goto while_136_break;
21819 } else {
21820
21821 }
21822 }
21823 } else {
21824
21825 }
21826 }
21827 } else {
21828
21829 }
21830 }
21831 } else {
21832
21833 }
21834 }
21835 } else {
21836
21837 }
21838 }
21839#line 4629
21840 i = i + 1UL;
21841 }
21842 while_136_break: ;
21843 }
21844 {
21845#line 4647
21846 __cil_tmp133 = (unsigned int )DisketteExtension;
21847#line 4647
21848 __cil_tmp134 = __cil_tmp133 + 174;
21849#line 4647
21850 mem_224 = (UCHAR *)__cil_tmp134;
21851#line 4647
21852 __cil_tmp135 = *mem_224;
21853#line 4647
21854 __cil_tmp136 = (int )__cil_tmp135;
21855#line 4647
21856 if (__cil_tmp136 == 3) {
21857#line 4649
21858 if ((int )bpbMediaType == 15) {
21859 goto switch_137_15;
21860 } else {
21861#line 4650
21862 if ((int )bpbMediaType == 16) {
21863 goto switch_137_16;
21864 } else {
21865#line 4651
21866 if ((int )bpbMediaType == 1) {
21867 goto switch_137_1;
21868 } else {
21869#line 4652
21870 if ((int )bpbMediaType == 19) {
21871 goto switch_137_19;
21872 } else {
21873 {
21874 goto switch_137_default;
21875#line 4648
21876 if (0) {
21877 switch_137_15:
21878#line 4649
21879 bpbMediaType = (enum _MEDIA_TYPE )14;
21880 goto switch_137_break;
21881 switch_137_16:
21882#line 4650
21883 bpbMediaType = (enum _MEDIA_TYPE )5;
21884 goto switch_137_break;
21885 switch_137_1:
21886#line 4651
21887 bpbMediaType = (enum _MEDIA_TYPE )17;
21888 goto switch_137_break;
21889 switch_137_19:
21890#line 4652
21891 bpbMediaType = (enum _MEDIA_TYPE )18;
21892 goto switch_137_break;
21893 switch_137_default: ;
21894 goto switch_137_break;
21895 } else {
21896 switch_137_break: ;
21897 }
21898 }
21899 }
21900 }
21901 }
21902 }
21903 } else {
21904
21905 }
21906 }
21907 {
21908#line 4660
21909 while (1) {
21910 while_138_continue: ;
21911 goto while_138_break;
21912 }
21913 while_138_break: ;
21914 }
21915 {
21916#line 4665
21917 while (1) {
21918 while_139_continue: ;
21919 goto while_139_break;
21920 }
21921 while_139_break: ;
21922 }
21923 {
21924#line 4666
21925 __cil_tmp137 = (unsigned int )DisketteExtension;
21926#line 4666
21927 __cil_tmp138 = __cil_tmp137 + 184;
21928#line 4666
21929 mem_225 = (MEDIA_TYPE *)__cil_tmp138;
21930#line 4666
21931 __cil_tmp139 = *mem_225;
21932#line 4666
21933 __cil_tmp140 = (int )__cil_tmp139;
21934#line 4666
21935 __cil_tmp141 = (int )bpbMediaType;
21936#line 4666
21937 if (__cil_tmp141 == __cil_tmp140) {
21938#line 4670
21939 changeToBpbMedia = (unsigned char)0;
21940 {
21941#line 4674
21942 while (1) {
21943 while_140_continue: ;
21944 goto while_140_break;
21945 }
21946 while_140_break: ;
21947 }
21948 } else {
21949#line 4682
21950 __cil_tmp142 = (unsigned int )DisketteExtension;
21951#line 4682
21952 __cil_tmp143 = __cil_tmp142 + 308;
21953#line 4682
21954 readidDriveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp143;
21955 {
21956#line 4684
21957 __cil_tmp144 = (unsigned int )readidDriveMediaConstants;
21958#line 4684
21959 __cil_tmp145 = __cil_tmp144 + 36;
21960#line 4684
21961 mem_226 = (USHORT *)__cil_tmp145;
21962#line 4684
21963 __cil_tmp146 = *mem_226;
21964#line 4684
21965 __cil_tmp147 = (int )__cil_tmp146;
21966#line 4684
21967 __cil_tmp148 = (int )bpbBytesPerSector;
21968#line 4684
21969 if (__cil_tmp148 == __cil_tmp147) {
21970 {
21971#line 4684
21972 __cil_tmp149 = (int )bpbSectorsPerTrack;
21973#line 4684
21974 if (__cil_tmp149 < 256) {
21975 {
21976#line 4684
21977 __cil_tmp150 = (unsigned int )readidDriveMediaConstants;
21978#line 4684
21979 __cil_tmp151 = __cil_tmp150 + 48;
21980#line 4684
21981 mem_227 = (UCHAR *)__cil_tmp151;
21982#line 4684
21983 __cil_tmp152 = *mem_227;
21984#line 4684
21985 __cil_tmp153 = (int )__cil_tmp152;
21986#line 4684
21987 __cil_tmp154 = (int )bpbMaximumTrack;
21988#line 4684
21989 if (__cil_tmp154 == __cil_tmp153) {
21990 {
21991#line 4684
21992 __cil_tmp155 = (unsigned int )readidDriveMediaConstants;
21993#line 4684
21994 __cil_tmp156 = __cil_tmp155 + 51;
21995#line 4684
21996 mem_228 = (UCHAR *)__cil_tmp156;
21997#line 4684
21998 __cil_tmp157 = *mem_228;
21999#line 4684
22000 __cil_tmp158 = (int )__cil_tmp157;
22001#line 4684
22002 __cil_tmp159 = (int )bpbNumberOfHeads;
22003#line 4684
22004 if (__cil_tmp159 <= __cil_tmp158) {
22005#line 4689
22006 changeToBpbMedia = (unsigned char)1;
22007 } else {
22008#line 4692
22009 changeToBpbMedia = (unsigned char)0;
22010 }
22011 }
22012 } else {
22013#line 4692
22014 changeToBpbMedia = (unsigned char)0;
22015 }
22016 }
22017 } else {
22018#line 4692
22019 changeToBpbMedia = (unsigned char)0;
22020 }
22021 }
22022 } else {
22023#line 4692
22024 changeToBpbMedia = (unsigned char)0;
22025 }
22026 }
22027 {
22028#line 4699
22029 while (1) {
22030 while_141_continue: ;
22031 goto while_141_break;
22032 }
22033 while_141_break: ;
22034 }
22035 {
22036#line 4706
22037 __cil_tmp160 = (int )bpbMediaType;
22038#line 4706
22039 if (__cil_tmp160 == 0) {
22040#line 4707
22041 mem_229 = (MEDIA_TYPE *)readidDriveMediaConstants;
22042#line 4707
22043 bpbMediaType = *mem_229;
22044#line 4708
22045 __cil_tmp161 = 308 + 54;
22046#line 4708
22047 __cil_tmp162 = (unsigned int )DisketteExtension;
22048#line 4708
22049 __cil_tmp163 = __cil_tmp162 + __cil_tmp161;
22050#line 4708
22051 mem_230 = (UCHAR *)__cil_tmp163;
22052#line 4708
22053 *mem_230 = (unsigned char)0;
22054 } else {
22055
22056 }
22057 }
22058 }
22059 }
22060#line 4712
22061 if (changeToBpbMedia) {
22062#line 4717
22063 __cil_tmp164 = (unsigned int )DisketteExtension;
22064#line 4717
22065 __cil_tmp165 = __cil_tmp164 + 174;
22066#line 4717
22067 mem_231 = (UCHAR *)__cil_tmp165;
22068#line 4717
22069 __cil_tmp166 = *mem_231;
22070#line 4717
22071 __cil_tmp167 = (int )__cil_tmp166;
22072#line 4717
22073 __cil_tmp168 = DriveMediaLimits + __cil_tmp167;
22074#line 4717
22075 __cil_tmp169 = (unsigned int )__cil_tmp168;
22076#line 4717
22077 __cil_tmp170 = __cil_tmp169 + 32;
22078#line 4717
22079 mem_232 = (DRIVE_MEDIA_TYPE *)__cil_tmp170;
22080#line 4717
22081 __cil_tmp171 = *mem_232;
22082#line 4717
22083 i = (unsigned long )__cil_tmp171;
22084#line 4718
22085 __cil_tmp172 = (unsigned int )DisketteExtension;
22086#line 4718
22087 __cil_tmp173 = __cil_tmp172 + 174;
22088#line 4718
22089 mem_233 = (UCHAR *)__cil_tmp173;
22090#line 4718
22091 __cil_tmp174 = *mem_233;
22092#line 4718
22093 __cil_tmp175 = (int )__cil_tmp174;
22094#line 4718
22095 __cil_tmp176 = DriveMediaLimits + __cil_tmp175;
22096#line 4718
22097 mem_234 = (DRIVE_MEDIA_TYPE *)__cil_tmp176;
22098#line 4718
22099 __cil_tmp177 = *mem_234;
22100#line 4718
22101 n = (unsigned long )__cil_tmp177;
22102 {
22103#line 4719
22104 while (1) {
22105 while_142_continue: ;
22106#line 4719
22107 if (i <= n) {
22108
22109 } else {
22110 goto while_142_break;
22111 }
22112 {
22113#line 4721
22114 __cil_tmp178 = DriveMediaConstants + i;
22115#line 4721
22116 mem_235 = (MEDIA_TYPE *)__cil_tmp178;
22117#line 4721
22118 __cil_tmp179 = *mem_235;
22119#line 4721
22120 __cil_tmp180 = (int )__cil_tmp179;
22121#line 4721
22122 __cil_tmp181 = (int )bpbMediaType;
22123#line 4721
22124 if (__cil_tmp181 == __cil_tmp180) {
22125#line 4722
22126 __cil_tmp182 = (unsigned int )DisketteExtension;
22127#line 4722
22128 __cil_tmp183 = __cil_tmp182 + 216;
22129#line 4722
22130 mem_236 = (DRIVE_MEDIA_TYPE *)__cil_tmp183;
22131#line 4722
22132 *mem_236 = (enum _DRIVE_MEDIA_TYPE )i;
22133 goto while_142_break;
22134 } else {
22135
22136 }
22137 }
22138#line 4719
22139 i = i + 1UL;
22140 }
22141 while_142_break: ;
22142 }
22143 {
22144#line 4727
22145 __cil_tmp184 = (unsigned int )DisketteExtension;
22146#line 4727
22147 __cil_tmp185 = __cil_tmp184 + 184;
22148#line 4727
22149 mem_237 = (MEDIA_TYPE *)__cil_tmp185;
22150#line 4727
22151 *mem_237 = bpbMediaType;
22152#line 4728
22153 __cil_tmp186 = (unsigned int )DisketteExtension;
22154#line 4728
22155 __cil_tmp187 = __cil_tmp186 + 180;
22156#line 4728
22157 __cil_tmp188 = (int )bpbBytesPerSector;
22158#line 4728
22159 __cil_tmp189 = (int )bpbNumberOfSectors;
22160#line 4728
22161 __cil_tmp190 = __cil_tmp189 * __cil_tmp188;
22162#line 4728
22163 mem_238 = (ULONG *)__cil_tmp187;
22164#line 4728
22165 *mem_238 = (unsigned long )__cil_tmp190;
22166#line 4729
22167 __cil_tmp191 = 308 + 38;
22168#line 4729
22169 __cil_tmp192 = (unsigned int )DisketteExtension;
22170#line 4729
22171 __cil_tmp193 = __cil_tmp192 + __cil_tmp191;
22172#line 4729
22173 mem_239 = (UCHAR *)__cil_tmp193;
22174#line 4729
22175 *mem_239 = (unsigned char )bpbSectorsPerTrack;
22176#line 4731
22177 __cil_tmp194 = 308 + 51;
22178#line 4731
22179 __cil_tmp195 = (unsigned int )DisketteExtension;
22180#line 4731
22181 __cil_tmp196 = __cil_tmp195 + __cil_tmp194;
22182#line 4731
22183 mem_240 = (UCHAR *)__cil_tmp196;
22184#line 4731
22185 *mem_240 = (unsigned char )bpbNumberOfHeads;
22186#line 4737
22187 __cil_tmp197 = 0 * 1U;
22188#line 4737
22189 __cil_tmp198 = 3 + __cil_tmp197;
22190#line 4737
22191 __cil_tmp199 = (unsigned int )BootSector;
22192#line 4737
22193 __cil_tmp200 = __cil_tmp199 + __cil_tmp198;
22194#line 4737
22195 __cil_tmp201 = (UCHAR *)__cil_tmp200;
22196#line 4737
22197 __cil_tmp202 = (void const *)__cil_tmp201;
22198#line 4737
22199 __cil_tmp203 = (void const *)"MSDMF3.";
22200#line 4737
22201 tmp___0 = RtlCompareMemory(__cil_tmp202, __cil_tmp203, 7UL);
22202 }
22203#line 4737
22204 if (tmp___0 == 7UL) {
22205#line 4738
22206 __cil_tmp204 = (unsigned int )DisketteExtension;
22207#line 4738
22208 __cil_tmp205 = __cil_tmp204 + 250;
22209#line 4738
22210 mem_241 = (BOOLEAN *)__cil_tmp205;
22211#line 4738
22212 *mem_241 = (unsigned char)1;
22213 } else {
22214
22215 }
22216 } else {
22217
22218 }
22219#line 4743
22220 return;
22221}
22222}
22223#line 4743 "floppy.c"
22224void FlCheckBootSector(PDISKETTE_EXTENSION DisketteExtension )
22225{ PBOOT_SECTOR_INFO bootSector ;
22226 LARGE_INTEGER offset ;
22227 PIRP irp ;
22228 NTSTATUS status ;
22229 int tmp ;
22230 PVOID tmp___0 ;
22231 int tmp___1 ;
22232 KUSER_SHARED_DATA *__cil_tmp9 ;
22233 unsigned int __cil_tmp10 ;
22234 unsigned int __cil_tmp11 ;
22235 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp12 ;
22236 int __cil_tmp13 ;
22237 enum _POOL_TYPE __cil_tmp14 ;
22238 unsigned long __cil_tmp15 ;
22239 unsigned int __cil_tmp16 ;
22240 unsigned int __cil_tmp17 ;
22241 LARGE_INTEGER *__cil_tmp18 ;
22242 unsigned int __cil_tmp19 ;
22243 unsigned int __cil_tmp20 ;
22244 LONG __cil_tmp21 ;
22245 KUSER_SHARED_DATA *__cil_tmp22 ;
22246 unsigned int __cil_tmp23 ;
22247 unsigned int __cil_tmp24 ;
22248 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp25 ;
22249 int __cil_tmp26 ;
22250 unsigned int __cil_tmp27 ;
22251 unsigned int __cil_tmp28 ;
22252 PDEVICE_OBJECT __cil_tmp29 ;
22253 void *__cil_tmp30 ;
22254 unsigned long __cil_tmp31 ;
22255 void *__cil_tmp32 ;
22256 struct _IO_STATUS_BLOCK *__cil_tmp33 ;
22257 void *__cil_tmp34 ;
22258 unsigned int __cil_tmp35 ;
22259 unsigned int __cil_tmp36 ;
22260 unsigned int __cil_tmp37 ;
22261 unsigned int __cil_tmp38 ;
22262 CHAR __cil_tmp39 ;
22263 int __cil_tmp40 ;
22264 int __cil_tmp41 ;
22265 unsigned int __cil_tmp42 ;
22266 unsigned int __cil_tmp43 ;
22267 unsigned int __cil_tmp44 ;
22268 unsigned int __cil_tmp45 ;
22269 unsigned int __cil_tmp46 ;
22270 unsigned int __cil_tmp47 ;
22271 unsigned int __cil_tmp48 ;
22272 unsigned int __cil_tmp49 ;
22273 unsigned int __cil_tmp50 ;
22274 unsigned int __cil_tmp51 ;
22275 struct _IO_STACK_LOCATION *__cil_tmp52 ;
22276 unsigned int __cil_tmp53 ;
22277 unsigned int __cil_tmp54 ;
22278 PMDL __cil_tmp55 ;
22279 unsigned int __cil_tmp56 ;
22280 unsigned int __cil_tmp57 ;
22281 PMDL __cil_tmp58 ;
22282 void *__cil_tmp59 ;
22283 ALTERNATIVE_ARCHITECTURE_TYPE *mem_60 ;
22284 LONG *mem_61 ;
22285 LONG *mem_62 ;
22286 ULONG *mem_63 ;
22287 ALTERNATIVE_ARCHITECTURE_TYPE *mem_64 ;
22288 PDEVICE_OBJECT *mem_65 ;
22289 CHAR *mem_66 ;
22290 CHAR *mem_67 ;
22291 struct _IO_STACK_LOCATION **mem_68 ;
22292 struct _IO_STACK_LOCATION **mem_69 ;
22293 PMDL *mem_70 ;
22294 PMDL *mem_71 ;
22295
22296 {
22297 {
22298#line 4776
22299 __cil_tmp9 = (KUSER_SHARED_DATA * const )4292804608U;
22300#line 4776
22301 __cil_tmp10 = (unsigned int )__cil_tmp9;
22302#line 4776
22303 __cil_tmp11 = __cil_tmp10 + 732;
22304#line 4776
22305 mem_60 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp11;
22306#line 4776
22307 __cil_tmp12 = *mem_60;
22308#line 4776
22309 __cil_tmp13 = (int )__cil_tmp12;
22310#line 4776
22311 if (__cil_tmp13 == 1) {
22312#line 4776
22313 tmp = 1024;
22314 } else {
22315#line 4776
22316 tmp = 512;
22317 }
22318 }
22319 {
22320#line 4776
22321 __cil_tmp14 = (enum _POOL_TYPE )4;
22322#line 4776
22323 __cil_tmp15 = (unsigned long )tmp;
22324#line 4776
22325 tmp___0 = ExAllocatePoolWithTag(__cil_tmp14, __cil_tmp15, 1886350406UL);
22326#line 4776
22327 bootSector = (struct _BOOT_SECTOR_INFO *)tmp___0;
22328 }
22329#line 4777
22330 if (! bootSector) {
22331
22332 } else {
22333
22334 }
22335#line 4781
22336 __cil_tmp16 = 0 + 4;
22337#line 4781
22338 __cil_tmp17 = (unsigned int )(& offset) + __cil_tmp16;
22339#line 4781
22340 mem_61 = (LONG *)__cil_tmp17;
22341#line 4781
22342 *mem_61 = 0L;
22343#line 4781
22344 __cil_tmp18 = & offset;
22345#line 4781
22346 __cil_tmp19 = 0 + 4;
22347#line 4781
22348 __cil_tmp20 = (unsigned int )(& offset) + __cil_tmp19;
22349#line 4781
22350 mem_62 = (LONG *)__cil_tmp20;
22351#line 4781
22352 __cil_tmp21 = *mem_62;
22353#line 4781
22354 mem_63 = (ULONG *)__cil_tmp18;
22355#line 4781
22356 *mem_63 = (unsigned long )__cil_tmp21;
22357 {
22358#line 4782
22359 __cil_tmp22 = (KUSER_SHARED_DATA * const )4292804608U;
22360#line 4782
22361 __cil_tmp23 = (unsigned int )__cil_tmp22;
22362#line 4782
22363 __cil_tmp24 = __cil_tmp23 + 732;
22364#line 4782
22365 mem_64 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp24;
22366#line 4782
22367 __cil_tmp25 = *mem_64;
22368#line 4782
22369 __cil_tmp26 = (int )__cil_tmp25;
22370#line 4782
22371 if (__cil_tmp26 == 1) {
22372#line 4782
22373 tmp___1 = 1024;
22374 } else {
22375#line 4782
22376 tmp___1 = 512;
22377 }
22378 }
22379 {
22380#line 4782
22381 __cil_tmp27 = (unsigned int )DisketteExtension;
22382#line 4782
22383 __cil_tmp28 = __cil_tmp27 + 28;
22384#line 4782
22385 mem_65 = (PDEVICE_OBJECT *)__cil_tmp28;
22386#line 4782
22387 __cil_tmp29 = *mem_65;
22388#line 4782
22389 __cil_tmp30 = (void *)bootSector;
22390#line 4782
22391 __cil_tmp31 = (unsigned long )tmp___1;
22392#line 4782
22393 __cil_tmp32 = (void *)0;
22394#line 4782
22395 __cil_tmp33 = (struct _IO_STATUS_BLOCK *)__cil_tmp32;
22396#line 4782
22397 irp = IoBuildAsynchronousFsdRequest(3UL, __cil_tmp29, __cil_tmp30, __cil_tmp31,
22398 & offset, __cil_tmp33);
22399 }
22400#line 4788
22401 if (! irp) {
22402 {
22403#line 4789
22404 __cil_tmp34 = (void *)bootSector;
22405#line 4789
22406 ExFreePool(__cil_tmp34);
22407 }
22408 } else {
22409
22410 }
22411 {
22412#line 4792
22413 __cil_tmp35 = (unsigned int )irp;
22414#line 4792
22415 __cil_tmp36 = __cil_tmp35 + 35;
22416#line 4792
22417 __cil_tmp37 = (unsigned int )irp;
22418#line 4792
22419 __cil_tmp38 = __cil_tmp37 + 35;
22420#line 4792
22421 mem_66 = (CHAR *)__cil_tmp38;
22422#line 4792
22423 __cil_tmp39 = *mem_66;
22424#line 4792
22425 __cil_tmp40 = (int )__cil_tmp39;
22426#line 4792
22427 __cil_tmp41 = __cil_tmp40 - 1;
22428#line 4792
22429 mem_67 = (CHAR *)__cil_tmp36;
22430#line 4792
22431 *mem_67 = (char )__cil_tmp41;
22432#line 4793
22433 __cil_tmp42 = 24 + 8;
22434#line 4793
22435 __cil_tmp43 = 0 + __cil_tmp42;
22436#line 4793
22437 __cil_tmp44 = 64 + __cil_tmp43;
22438#line 4793
22439 __cil_tmp45 = (unsigned int )irp;
22440#line 4793
22441 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
22442#line 4793
22443 __cil_tmp47 = 24 + 8;
22444#line 4793
22445 __cil_tmp48 = 0 + __cil_tmp47;
22446#line 4793
22447 __cil_tmp49 = 64 + __cil_tmp48;
22448#line 4793
22449 __cil_tmp50 = (unsigned int )irp;
22450#line 4793
22451 __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
22452#line 4793
22453 mem_68 = (struct _IO_STACK_LOCATION **)__cil_tmp51;
22454#line 4793
22455 __cil_tmp52 = *mem_68;
22456#line 4793
22457 mem_69 = (struct _IO_STACK_LOCATION **)__cil_tmp46;
22458#line 4793
22459 *mem_69 = __cil_tmp52 - 1;
22460#line 4798
22461 status = FlReadWrite(DisketteExtension, irp, (unsigned char)1);
22462#line 4800
22463 __cil_tmp53 = (unsigned int )irp;
22464#line 4800
22465 __cil_tmp54 = __cil_tmp53 + 4;
22466#line 4800
22467 mem_70 = (PMDL *)__cil_tmp54;
22468#line 4800
22469 __cil_tmp55 = *mem_70;
22470#line 4800
22471 MmUnlockPages(__cil_tmp55);
22472#line 4801
22473 __cil_tmp56 = (unsigned int )irp;
22474#line 4801
22475 __cil_tmp57 = __cil_tmp56 + 4;
22476#line 4801
22477 mem_71 = (PMDL *)__cil_tmp57;
22478#line 4801
22479 __cil_tmp58 = *mem_71;
22480#line 4801
22481 IoFreeMdl(__cil_tmp58);
22482#line 4802
22483 IoFreeIrp(irp);
22484#line 4803
22485 __cil_tmp59 = (void *)bootSector;
22486#line 4803
22487 ExFreePool(__cil_tmp59);
22488 }
22489#line 4806
22490 return;
22491}
22492}
22493#line 4806 "floppy.c"
22494NTSTATUS FlReadWriteTrack(PDISKETTE_EXTENSION DisketteExtension , PMDL IoMdl , ULONG IoOffset ,
22495 BOOLEAN WriteOperation , UCHAR Cylinder , UCHAR Head , UCHAR Sector ,
22496 UCHAR NumberOfSectors , BOOLEAN NeedSeek )
22497{ PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
22498 ULONG byteToSectorShift ;
22499 ULONG transferBytes ;
22500 LARGE_INTEGER headSettleTime ;
22501 NTSTATUS status ;
22502 ULONG seekRetry ;
22503 ULONG ioRetry ;
22504 BOOLEAN recalibrateDrive ;
22505 UCHAR i ;
22506 unsigned int __cil_tmp19 ;
22507 unsigned int __cil_tmp20 ;
22508 unsigned int __cil_tmp21 ;
22509 unsigned int __cil_tmp22 ;
22510 UCHAR __cil_tmp23 ;
22511 int __cil_tmp24 ;
22512 int __cil_tmp25 ;
22513 unsigned long __cil_tmp26 ;
22514 LARGE_INTEGER *__cil_tmp27 ;
22515 unsigned int __cil_tmp28 ;
22516 unsigned int __cil_tmp29 ;
22517 UCHAR __cil_tmp30 ;
22518 int __cil_tmp31 ;
22519 int __cil_tmp32 ;
22520 int __cil_tmp33 ;
22521 unsigned int __cil_tmp34 ;
22522 unsigned int __cil_tmp35 ;
22523 unsigned int __cil_tmp36 ;
22524 unsigned int __cil_tmp37 ;
22525 BOOLEAN __cil_tmp38 ;
22526 unsigned int __cil_tmp39 ;
22527 unsigned int __cil_tmp40 ;
22528 UCHAR __cil_tmp41 ;
22529 int __cil_tmp42 ;
22530 unsigned int __cil_tmp43 ;
22531 unsigned int __cil_tmp44 ;
22532 unsigned int __cil_tmp45 ;
22533 unsigned int __cil_tmp46 ;
22534 unsigned int __cil_tmp47 ;
22535 unsigned int __cil_tmp48 ;
22536 unsigned int __cil_tmp49 ;
22537 unsigned int __cil_tmp50 ;
22538 unsigned int __cil_tmp51 ;
22539 unsigned int __cil_tmp52 ;
22540 UCHAR __cil_tmp53 ;
22541 int __cil_tmp54 ;
22542 int __cil_tmp55 ;
22543 int __cil_tmp56 ;
22544 int __cil_tmp57 ;
22545 unsigned int __cil_tmp58 ;
22546 unsigned int __cil_tmp59 ;
22547 unsigned int __cil_tmp60 ;
22548 unsigned int __cil_tmp61 ;
22549 unsigned int __cil_tmp62 ;
22550 unsigned int __cil_tmp63 ;
22551 UCHAR __cil_tmp64 ;
22552 int __cil_tmp65 ;
22553 int __cil_tmp66 ;
22554 int __cil_tmp67 ;
22555 unsigned int __cil_tmp68 ;
22556 unsigned int __cil_tmp69 ;
22557 unsigned int __cil_tmp70 ;
22558 unsigned int __cil_tmp71 ;
22559 UCHAR *__cil_tmp72 ;
22560 unsigned int __cil_tmp73 ;
22561 unsigned int __cil_tmp74 ;
22562 unsigned int __cil_tmp75 ;
22563 unsigned int __cil_tmp76 ;
22564 UCHAR *__cil_tmp77 ;
22565 void *__cil_tmp78 ;
22566 struct _MDL *__cil_tmp79 ;
22567 unsigned int __cil_tmp80 ;
22568 unsigned int __cil_tmp81 ;
22569 unsigned int __cil_tmp82 ;
22570 unsigned int __cil_tmp83 ;
22571 UCHAR __cil_tmp84 ;
22572 int __cil_tmp85 ;
22573 int __cil_tmp86 ;
22574 unsigned int __cil_tmp87 ;
22575 unsigned int __cil_tmp88 ;
22576 unsigned int __cil_tmp89 ;
22577 unsigned int __cil_tmp90 ;
22578 UCHAR __cil_tmp91 ;
22579 int __cil_tmp92 ;
22580 int __cil_tmp93 ;
22581 int __cil_tmp94 ;
22582 unsigned int __cil_tmp95 ;
22583 unsigned int __cil_tmp96 ;
22584 unsigned int __cil_tmp97 ;
22585 unsigned int __cil_tmp98 ;
22586 UCHAR __cil_tmp99 ;
22587 int __cil_tmp100 ;
22588 unsigned int __cil_tmp101 ;
22589 unsigned int __cil_tmp102 ;
22590 unsigned int __cil_tmp103 ;
22591 unsigned int __cil_tmp104 ;
22592 unsigned int __cil_tmp105 ;
22593 unsigned int __cil_tmp106 ;
22594 unsigned int __cil_tmp107 ;
22595 unsigned int __cil_tmp108 ;
22596 unsigned int __cil_tmp109 ;
22597 unsigned int __cil_tmp110 ;
22598 unsigned int __cil_tmp111 ;
22599 unsigned int __cil_tmp112 ;
22600 UCHAR __cil_tmp113 ;
22601 int __cil_tmp114 ;
22602 int __cil_tmp115 ;
22603 int __cil_tmp116 ;
22604 int __cil_tmp117 ;
22605 unsigned int __cil_tmp118 ;
22606 unsigned int __cil_tmp119 ;
22607 unsigned int __cil_tmp120 ;
22608 unsigned int __cil_tmp121 ;
22609 UCHAR *__cil_tmp122 ;
22610 unsigned int __cil_tmp123 ;
22611 unsigned int __cil_tmp124 ;
22612 unsigned int __cil_tmp125 ;
22613 unsigned int __cil_tmp126 ;
22614 UCHAR *__cil_tmp127 ;
22615 void *__cil_tmp128 ;
22616 struct _MDL *__cil_tmp129 ;
22617 KUSER_SHARED_DATA *__cil_tmp130 ;
22618 unsigned int __cil_tmp131 ;
22619 unsigned int __cil_tmp132 ;
22620 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp133 ;
22621 int __cil_tmp134 ;
22622 unsigned int __cil_tmp135 ;
22623 unsigned int __cil_tmp136 ;
22624 unsigned int __cil_tmp137 ;
22625 unsigned int __cil_tmp138 ;
22626 UCHAR __cil_tmp139 ;
22627 int __cil_tmp140 ;
22628 unsigned int __cil_tmp141 ;
22629 unsigned int __cil_tmp142 ;
22630 UCHAR __cil_tmp143 ;
22631 int __cil_tmp144 ;
22632 int __cil_tmp145 ;
22633 int __cil_tmp146 ;
22634 int __cil_tmp147 ;
22635 unsigned int __cil_tmp148 ;
22636 unsigned int __cil_tmp149 ;
22637 unsigned int __cil_tmp150 ;
22638 unsigned int __cil_tmp151 ;
22639 UCHAR __cil_tmp152 ;
22640 int __cil_tmp153 ;
22641 unsigned int __cil_tmp154 ;
22642 unsigned int __cil_tmp155 ;
22643 unsigned int __cil_tmp156 ;
22644 unsigned int __cil_tmp157 ;
22645 unsigned int __cil_tmp158 ;
22646 unsigned int __cil_tmp159 ;
22647 UCHAR __cil_tmp160 ;
22648 unsigned int __cil_tmp161 ;
22649 unsigned int __cil_tmp162 ;
22650 unsigned int __cil_tmp163 ;
22651 unsigned int __cil_tmp164 ;
22652 UCHAR __cil_tmp165 ;
22653 unsigned int __cil_tmp166 ;
22654 unsigned int __cil_tmp167 ;
22655 unsigned int __cil_tmp168 ;
22656 unsigned int __cil_tmp169 ;
22657 UCHAR __cil_tmp170 ;
22658 int __cil_tmp171 ;
22659 unsigned int __cil_tmp172 ;
22660 unsigned int __cil_tmp173 ;
22661 unsigned int __cil_tmp174 ;
22662 unsigned int __cil_tmp175 ;
22663 unsigned int __cil_tmp176 ;
22664 unsigned int __cil_tmp177 ;
22665 UCHAR __cil_tmp178 ;
22666 unsigned int __cil_tmp179 ;
22667 unsigned int __cil_tmp180 ;
22668 unsigned int __cil_tmp181 ;
22669 unsigned int __cil_tmp182 ;
22670 UCHAR __cil_tmp183 ;
22671 unsigned int __cil_tmp184 ;
22672 unsigned int __cil_tmp185 ;
22673 unsigned int __cil_tmp186 ;
22674 unsigned int __cil_tmp187 ;
22675 UCHAR __cil_tmp188 ;
22676 int __cil_tmp189 ;
22677 unsigned int __cil_tmp190 ;
22678 unsigned int __cil_tmp191 ;
22679 unsigned int __cil_tmp192 ;
22680 unsigned int __cil_tmp193 ;
22681 unsigned int __cil_tmp194 ;
22682 unsigned int __cil_tmp195 ;
22683 UCHAR __cil_tmp196 ;
22684 unsigned int __cil_tmp197 ;
22685 unsigned int __cil_tmp198 ;
22686 unsigned int __cil_tmp199 ;
22687 unsigned int __cil_tmp200 ;
22688 UCHAR __cil_tmp201 ;
22689 int __cil_tmp202 ;
22690 unsigned int __cil_tmp203 ;
22691 unsigned int __cil_tmp204 ;
22692 unsigned int __cil_tmp205 ;
22693 unsigned int __cil_tmp206 ;
22694 UCHAR __cil_tmp207 ;
22695 int __cil_tmp208 ;
22696 unsigned int __cil_tmp209 ;
22697 unsigned int __cil_tmp210 ;
22698 unsigned int __cil_tmp211 ;
22699 unsigned int __cil_tmp212 ;
22700 unsigned int __cil_tmp213 ;
22701 unsigned int __cil_tmp214 ;
22702 UCHAR __cil_tmp215 ;
22703 unsigned int __cil_tmp216 ;
22704 unsigned int __cil_tmp217 ;
22705 unsigned int __cil_tmp218 ;
22706 unsigned int __cil_tmp219 ;
22707 UCHAR __cil_tmp220 ;
22708 int __cil_tmp221 ;
22709 unsigned int __cil_tmp222 ;
22710 unsigned int __cil_tmp223 ;
22711 unsigned int __cil_tmp224 ;
22712 unsigned int __cil_tmp225 ;
22713 unsigned int __cil_tmp226 ;
22714 unsigned int __cil_tmp227 ;
22715 UCHAR __cil_tmp228 ;
22716 int __cil_tmp229 ;
22717 int __cil_tmp230 ;
22718 int __cil_tmp231 ;
22719 int __cil_tmp232 ;
22720 unsigned int __cil_tmp233 ;
22721 unsigned int __cil_tmp234 ;
22722 unsigned int __cil_tmp235 ;
22723 unsigned int __cil_tmp236 ;
22724 unsigned int __cil_tmp237 ;
22725 unsigned int __cil_tmp238 ;
22726 unsigned int __cil_tmp239 ;
22727 unsigned int __cil_tmp240 ;
22728 unsigned int __cil_tmp241 ;
22729 unsigned int __cil_tmp242 ;
22730 unsigned int __cil_tmp243 ;
22731 unsigned int __cil_tmp244 ;
22732 int __cil_tmp245 ;
22733 int __cil_tmp246 ;
22734 unsigned int __cil_tmp247 ;
22735 unsigned int __cil_tmp248 ;
22736 unsigned int __cil_tmp249 ;
22737 unsigned int __cil_tmp250 ;
22738 unsigned int __cil_tmp251 ;
22739 unsigned int __cil_tmp252 ;
22740 unsigned int __cil_tmp253 ;
22741 unsigned int __cil_tmp254 ;
22742 unsigned int __cil_tmp255 ;
22743 unsigned int __cil_tmp256 ;
22744 int __cil_tmp257 ;
22745 int __cil_tmp258 ;
22746 int __cil_tmp259 ;
22747 unsigned int __cil_tmp260 ;
22748 unsigned int __cil_tmp261 ;
22749 unsigned int __cil_tmp262 ;
22750 unsigned int __cil_tmp263 ;
22751 unsigned int __cil_tmp264 ;
22752 unsigned int __cil_tmp265 ;
22753 unsigned int __cil_tmp266 ;
22754 unsigned int __cil_tmp267 ;
22755 unsigned int __cil_tmp268 ;
22756 unsigned int __cil_tmp269 ;
22757 unsigned int __cil_tmp270 ;
22758 unsigned int __cil_tmp271 ;
22759 unsigned int __cil_tmp272 ;
22760 unsigned int __cil_tmp273 ;
22761 unsigned int __cil_tmp274 ;
22762 unsigned int __cil_tmp275 ;
22763 unsigned int __cil_tmp276 ;
22764 unsigned int __cil_tmp277 ;
22765 unsigned int __cil_tmp278 ;
22766 unsigned int __cil_tmp279 ;
22767 unsigned int __cil_tmp280 ;
22768 unsigned int __cil_tmp281 ;
22769 unsigned int __cil_tmp282 ;
22770 unsigned int __cil_tmp283 ;
22771 UCHAR *__cil_tmp284 ;
22772 unsigned int __cil_tmp285 ;
22773 unsigned int __cil_tmp286 ;
22774 unsigned int __cil_tmp287 ;
22775 unsigned int __cil_tmp288 ;
22776 UCHAR *__cil_tmp289 ;
22777 KUSER_SHARED_DATA *__cil_tmp290 ;
22778 unsigned int __cil_tmp291 ;
22779 unsigned int __cil_tmp292 ;
22780 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp293 ;
22781 int __cil_tmp294 ;
22782 unsigned int __cil_tmp295 ;
22783 unsigned int __cil_tmp296 ;
22784 unsigned int __cil_tmp297 ;
22785 unsigned int __cil_tmp298 ;
22786 UCHAR __cil_tmp299 ;
22787 int __cil_tmp300 ;
22788 unsigned int __cil_tmp301 ;
22789 unsigned int __cil_tmp302 ;
22790 unsigned int __cil_tmp303 ;
22791 unsigned int __cil_tmp304 ;
22792 UCHAR __cil_tmp305 ;
22793 int __cil_tmp306 ;
22794 int __cil_tmp307 ;
22795 unsigned int __cil_tmp308 ;
22796 unsigned int __cil_tmp309 ;
22797 unsigned int __cil_tmp310 ;
22798 unsigned int __cil_tmp311 ;
22799 UCHAR __cil_tmp312 ;
22800 int __cil_tmp313 ;
22801 int __cil_tmp314 ;
22802 unsigned int __cil_tmp315 ;
22803 unsigned int __cil_tmp316 ;
22804 unsigned int __cil_tmp317 ;
22805 unsigned int __cil_tmp318 ;
22806 unsigned int __cil_tmp319 ;
22807 unsigned int __cil_tmp320 ;
22808 UCHAR __cil_tmp321 ;
22809 unsigned int __cil_tmp322 ;
22810 unsigned int __cil_tmp323 ;
22811 unsigned int __cil_tmp324 ;
22812 unsigned int __cil_tmp325 ;
22813 UCHAR __cil_tmp326 ;
22814 unsigned int __cil_tmp327 ;
22815 unsigned int __cil_tmp328 ;
22816 unsigned int __cil_tmp329 ;
22817 unsigned int __cil_tmp330 ;
22818 UCHAR __cil_tmp331 ;
22819 int __cil_tmp332 ;
22820 unsigned int __cil_tmp333 ;
22821 unsigned int __cil_tmp334 ;
22822 unsigned int __cil_tmp335 ;
22823 unsigned int __cil_tmp336 ;
22824 unsigned int __cil_tmp337 ;
22825 unsigned int __cil_tmp338 ;
22826 UCHAR __cil_tmp339 ;
22827 unsigned int __cil_tmp340 ;
22828 unsigned int __cil_tmp341 ;
22829 unsigned int __cil_tmp342 ;
22830 unsigned int __cil_tmp343 ;
22831 UCHAR __cil_tmp344 ;
22832 unsigned int __cil_tmp345 ;
22833 unsigned int __cil_tmp346 ;
22834 unsigned int __cil_tmp347 ;
22835 unsigned int __cil_tmp348 ;
22836 UCHAR __cil_tmp349 ;
22837 int __cil_tmp350 ;
22838 unsigned int __cil_tmp351 ;
22839 unsigned int __cil_tmp352 ;
22840 unsigned int __cil_tmp353 ;
22841 unsigned int __cil_tmp354 ;
22842 unsigned int __cil_tmp355 ;
22843 unsigned int __cil_tmp356 ;
22844 UCHAR __cil_tmp357 ;
22845 unsigned int __cil_tmp358 ;
22846 unsigned int __cil_tmp359 ;
22847 unsigned int __cil_tmp360 ;
22848 unsigned int __cil_tmp361 ;
22849 UCHAR __cil_tmp362 ;
22850 unsigned int __cil_tmp363 ;
22851 unsigned int __cil_tmp364 ;
22852 unsigned int __cil_tmp365 ;
22853 unsigned int __cil_tmp366 ;
22854 UCHAR __cil_tmp367 ;
22855 int __cil_tmp368 ;
22856 unsigned int __cil_tmp369 ;
22857 unsigned int __cil_tmp370 ;
22858 int __cil_tmp371 ;
22859 int __cil_tmp372 ;
22860 int __cil_tmp373 ;
22861 int __cil_tmp374 ;
22862 unsigned long __cil_tmp375 ;
22863 unsigned long __cil_tmp376 ;
22864 ULONG __cil_tmp377 ;
22865 int __cil_tmp378 ;
22866 int __cil_tmp379 ;
22867 int __cil_tmp380 ;
22868 unsigned char __cil_tmp381 ;
22869 int __cil_tmp382 ;
22870 unsigned int __cil_tmp383 ;
22871 unsigned int __cil_tmp384 ;
22872 int __cil_tmp385 ;
22873 int __cil_tmp386 ;
22874 UCHAR *mem_387 ;
22875 UCHAR *mem_388 ;
22876 ULONG *mem_389 ;
22877 LONG *mem_390 ;
22878 BOOLEAN *mem_391 ;
22879 UCHAR *mem_392 ;
22880 UCHAR *mem_393 ;
22881 UCHAR *mem_394 ;
22882 UCHAR *mem_395 ;
22883 UCHAR *mem_396 ;
22884 UCHAR *mem_397 ;
22885 UCHAR *mem_398 ;
22886 BOOLEAN *mem_399 ;
22887 UCHAR *mem_400 ;
22888 UCHAR *mem_401 ;
22889 BOOLEAN *mem_402 ;
22890 UCHAR *mem_403 ;
22891 UCHAR *mem_404 ;
22892 UCHAR *mem_405 ;
22893 ALTERNATIVE_ARCHITECTURE_TYPE *mem_406 ;
22894 UCHAR *mem_407 ;
22895 UCHAR *mem_408 ;
22896 UCHAR *mem_409 ;
22897 BOOLEAN *mem_410 ;
22898 UCHAR *mem_411 ;
22899 UCHAR *mem_412 ;
22900 UCHAR *mem_413 ;
22901 BOOLEAN *mem_414 ;
22902 UCHAR *mem_415 ;
22903 UCHAR *mem_416 ;
22904 UCHAR *mem_417 ;
22905 BOOLEAN *mem_418 ;
22906 UCHAR *mem_419 ;
22907 UCHAR *mem_420 ;
22908 UCHAR *mem_421 ;
22909 BOOLEAN *mem_422 ;
22910 UCHAR *mem_423 ;
22911 UCHAR *mem_424 ;
22912 UCHAR *mem_425 ;
22913 UCHAR *mem_426 ;
22914 UCHAR *mem_427 ;
22915 UCHAR *mem_428 ;
22916 UCHAR *mem_429 ;
22917 UCHAR *mem_430 ;
22918 UCHAR *mem_431 ;
22919 UCHAR *mem_432 ;
22920 UCHAR *mem_433 ;
22921 UCHAR *mem_434 ;
22922 UCHAR *mem_435 ;
22923 UCHAR *mem_436 ;
22924 UCHAR *mem_437 ;
22925 UCHAR *mem_438 ;
22926 ALTERNATIVE_ARCHITECTURE_TYPE *mem_439 ;
22927 UCHAR *mem_440 ;
22928 UCHAR *mem_441 ;
22929 UCHAR *mem_442 ;
22930 BOOLEAN *mem_443 ;
22931 UCHAR *mem_444 ;
22932 UCHAR *mem_445 ;
22933 UCHAR *mem_446 ;
22934 BOOLEAN *mem_447 ;
22935 UCHAR *mem_448 ;
22936 UCHAR *mem_449 ;
22937 UCHAR *mem_450 ;
22938 BOOLEAN *mem_451 ;
22939 UCHAR *mem_452 ;
22940 UCHAR *mem_453 ;
22941 UCHAR *mem_454 ;
22942 BOOLEAN *mem_455 ;
22943 BOOLEAN *mem_456 ;
22944
22945 {
22946#line 4859
22947 recalibrateDrive = (unsigned char)0;
22948 {
22949#line 4869
22950 while (1) {
22951 while_143_continue: ;
22952 goto while_143_break;
22953 }
22954 while_143_break: ;
22955 }
22956#line 4871
22957 __cil_tmp19 = (unsigned int )DisketteExtension;
22958#line 4871
22959 __cil_tmp20 = __cil_tmp19 + 308;
22960#line 4871
22961 driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp20;
22962#line 4872
22963 __cil_tmp21 = (unsigned int )driveMediaConstants;
22964#line 4872
22965 __cil_tmp22 = __cil_tmp21 + 35;
22966#line 4872
22967 mem_387 = (UCHAR *)__cil_tmp22;
22968#line 4872
22969 __cil_tmp23 = *mem_387;
22970#line 4872
22971 __cil_tmp24 = (int )__cil_tmp23;
22972#line 4872
22973 __cil_tmp25 = 7 + __cil_tmp24;
22974#line 4872
22975 byteToSectorShift = (unsigned long )__cil_tmp25;
22976#line 4874
22977 __cil_tmp26 = (unsigned long )NumberOfSectors;
22978#line 4874
22979 transferBytes = __cil_tmp26 << byteToSectorShift;
22980#line 4876
22981 __cil_tmp27 = & headSettleTime;
22982#line 4876
22983 __cil_tmp28 = (unsigned int )driveMediaConstants;
22984#line 4876
22985 __cil_tmp29 = __cil_tmp28 + 42;
22986#line 4876
22987 mem_388 = (UCHAR *)__cil_tmp29;
22988#line 4876
22989 __cil_tmp30 = *mem_388;
22990#line 4876
22991 __cil_tmp31 = (int )__cil_tmp30;
22992#line 4876
22993 __cil_tmp32 = 10000 * __cil_tmp31;
22994#line 4876
22995 __cil_tmp33 = - __cil_tmp32;
22996#line 4876
22997 mem_389 = (ULONG *)__cil_tmp27;
22998#line 4876
22999 *mem_389 = (unsigned long )__cil_tmp33;
23000#line 4877
23001 __cil_tmp34 = 0 + 4;
23002#line 4877
23003 __cil_tmp35 = (unsigned int )(& headSettleTime) + __cil_tmp34;
23004#line 4877
23005 mem_390 = (LONG *)__cil_tmp35;
23006#line 4877
23007 *mem_390 = -1L;
23008#line 4879
23009 seekRetry = 0UL;
23010#line 4879
23011 ioRetry = 0UL;
23012 {
23013#line 4879
23014 while (1) {
23015 while_144_continue: ;
23016#line 4879
23017 if (seekRetry < 3UL) {
23018
23019 } else {
23020 goto while_144_break;
23021 }
23022#line 4881
23023 if (recalibrateDrive) {
23024 {
23025#line 4888
23026 while (1) {
23027 while_145_continue: ;
23028 goto while_145_break;
23029 }
23030 while_145_break: ;
23031 }
23032 {
23033#line 4889
23034 FlRecalibrateDrive(DisketteExtension);
23035 }
23036 } else {
23037
23038 }
23039#line 4894
23040 if (recalibrateDrive) {
23041 goto _L___0;
23042 } else {
23043#line 4894
23044 if (NeedSeek) {
23045 {
23046#line 4894
23047 __cil_tmp36 = (unsigned int )DisketteExtension;
23048#line 4894
23049 __cil_tmp37 = __cil_tmp36 + 365;
23050#line 4894
23051 mem_391 = (BOOLEAN *)__cil_tmp37;
23052#line 4894
23053 __cil_tmp38 = *mem_391;
23054#line 4894
23055 if (! __cil_tmp38) {
23056 goto _L___0;
23057 } else {
23058 {
23059#line 4894
23060 __cil_tmp39 = (unsigned int )driveMediaConstants;
23061#line 4894
23062 __cil_tmp40 = __cil_tmp39 + 49;
23063#line 4894
23064 mem_392 = (UCHAR *)__cil_tmp40;
23065#line 4894
23066 __cil_tmp41 = *mem_392;
23067#line 4894
23068 __cil_tmp42 = (int )__cil_tmp41;
23069#line 4894
23070 if (__cil_tmp42 != 0) {
23071 _L___0:
23072 {
23073#line 4899
23074 __cil_tmp43 = 0 * 1U;
23075#line 4899
23076 __cil_tmp44 = 112 + __cil_tmp43;
23077#line 4899
23078 __cil_tmp45 = (unsigned int )DisketteExtension;
23079#line 4899
23080 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
23081#line 4899
23082 mem_393 = (UCHAR *)__cil_tmp46;
23083#line 4899
23084 *mem_393 = (unsigned char)16;
23085#line 4900
23086 __cil_tmp47 = 1 * 1U;
23087#line 4900
23088 __cil_tmp48 = 112 + __cil_tmp47;
23089#line 4900
23090 __cil_tmp49 = (unsigned int )DisketteExtension;
23091#line 4900
23092 __cil_tmp50 = __cil_tmp49 + __cil_tmp48;
23093#line 4900
23094 __cil_tmp51 = (unsigned int )DisketteExtension;
23095#line 4900
23096 __cil_tmp52 = __cil_tmp51 + 248;
23097#line 4900
23098 mem_394 = (UCHAR *)__cil_tmp52;
23099#line 4900
23100 __cil_tmp53 = *mem_394;
23101#line 4900
23102 __cil_tmp54 = (int )__cil_tmp53;
23103#line 4900
23104 __cil_tmp55 = (int )Head;
23105#line 4900
23106 __cil_tmp56 = __cil_tmp55 << 2;
23107#line 4900
23108 __cil_tmp57 = __cil_tmp56 | __cil_tmp54;
23109#line 4900
23110 mem_395 = (UCHAR *)__cil_tmp50;
23111#line 4900
23112 *mem_395 = (unsigned char )__cil_tmp57;
23113#line 4902
23114 __cil_tmp58 = 2 * 1U;
23115#line 4902
23116 __cil_tmp59 = 112 + __cil_tmp58;
23117#line 4902
23118 __cil_tmp60 = (unsigned int )DisketteExtension;
23119#line 4902
23120 __cil_tmp61 = __cil_tmp60 + __cil_tmp59;
23121#line 4902
23122 __cil_tmp62 = (unsigned int )driveMediaConstants;
23123#line 4902
23124 __cil_tmp63 = __cil_tmp62 + 49;
23125#line 4902
23126 mem_396 = (UCHAR *)__cil_tmp63;
23127#line 4902
23128 __cil_tmp64 = *mem_396;
23129#line 4902
23130 __cil_tmp65 = (int )__cil_tmp64;
23131#line 4902
23132 __cil_tmp66 = (int )Cylinder;
23133#line 4902
23134 __cil_tmp67 = __cil_tmp66 << __cil_tmp65;
23135#line 4902
23136 mem_397 = (UCHAR *)__cil_tmp61;
23137#line 4902
23138 *mem_397 = (unsigned char )__cil_tmp67;
23139#line 4905
23140 __cil_tmp68 = 0 * 1U;
23141#line 4905
23142 __cil_tmp69 = 112 + __cil_tmp68;
23143#line 4905
23144 __cil_tmp70 = (unsigned int )DisketteExtension;
23145#line 4905
23146 __cil_tmp71 = __cil_tmp70 + __cil_tmp69;
23147#line 4905
23148 __cil_tmp72 = (UCHAR *)__cil_tmp71;
23149#line 4905
23150 __cil_tmp73 = 0 * 1U;
23151#line 4905
23152 __cil_tmp74 = 112 + __cil_tmp73;
23153#line 4905
23154 __cil_tmp75 = (unsigned int )DisketteExtension;
23155#line 4905
23156 __cil_tmp76 = __cil_tmp75 + __cil_tmp74;
23157#line 4905
23158 __cil_tmp77 = (UCHAR *)__cil_tmp76;
23159#line 4905
23160 __cil_tmp78 = (void *)0;
23161#line 4905
23162 __cil_tmp79 = (struct _MDL *)__cil_tmp78;
23163#line 4905
23164 status = FlIssueCommand(DisketteExtension, __cil_tmp72, __cil_tmp77, __cil_tmp79,
23165 0UL, 0UL);
23166 }
23167#line 4912
23168 if (status >= 0L) {
23169 {
23170#line 4916
23171 __cil_tmp80 = 0 * 1U;
23172#line 4916
23173 __cil_tmp81 = 112 + __cil_tmp80;
23174#line 4916
23175 __cil_tmp82 = (unsigned int )DisketteExtension;
23176#line 4916
23177 __cil_tmp83 = __cil_tmp82 + __cil_tmp81;
23178#line 4916
23179 mem_398 = (UCHAR *)__cil_tmp83;
23180#line 4916
23181 __cil_tmp84 = *mem_398;
23182#line 4916
23183 __cil_tmp85 = (int )__cil_tmp84;
23184#line 4916
23185 __cil_tmp86 = __cil_tmp85 & 32;
23186#line 4916
23187 if (! __cil_tmp86) {
23188#line 4920
23189 __cil_tmp87 = (unsigned int )DisketteExtension;
23190#line 4920
23191 __cil_tmp88 = __cil_tmp87 + 104;
23192#line 4920
23193 mem_399 = (BOOLEAN *)__cil_tmp88;
23194#line 4920
23195 *mem_399 = (unsigned char)1;
23196#line 4921
23197 status = -1073741464L;
23198 } else {
23199 {
23200#line 4916
23201 __cil_tmp89 = (unsigned int )driveMediaConstants;
23202#line 4916
23203 __cil_tmp90 = __cil_tmp89 + 49;
23204#line 4916
23205 mem_400 = (UCHAR *)__cil_tmp90;
23206#line 4916
23207 __cil_tmp91 = *mem_400;
23208#line 4916
23209 __cil_tmp92 = (int )__cil_tmp91;
23210#line 4916
23211 __cil_tmp93 = (int )Cylinder;
23212#line 4916
23213 __cil_tmp94 = __cil_tmp93 << __cil_tmp92;
23214#line 4916
23215 __cil_tmp95 = 1 * 1U;
23216#line 4916
23217 __cil_tmp96 = 112 + __cil_tmp95;
23218#line 4916
23219 __cil_tmp97 = (unsigned int )DisketteExtension;
23220#line 4916
23221 __cil_tmp98 = __cil_tmp97 + __cil_tmp96;
23222#line 4916
23223 mem_401 = (UCHAR *)__cil_tmp98;
23224#line 4916
23225 __cil_tmp99 = *mem_401;
23226#line 4916
23227 __cil_tmp100 = (int )__cil_tmp99;
23228#line 4916
23229 if (__cil_tmp100 != __cil_tmp94) {
23230#line 4920
23231 __cil_tmp101 = (unsigned int )DisketteExtension;
23232#line 4920
23233 __cil_tmp102 = __cil_tmp101 + 104;
23234#line 4920
23235 mem_402 = (BOOLEAN *)__cil_tmp102;
23236#line 4920
23237 *mem_402 = (unsigned char)1;
23238#line 4921
23239 status = -1073741464L;
23240 } else {
23241
23242 }
23243 }
23244 }
23245 }
23246#line 4924
23247 if (status >= 0L) {
23248 {
23249#line 4928
23250 KeDelayExecutionThread((char)0, (unsigned char)0, & headSettleTime);
23251#line 4932
23252 __cil_tmp103 = 0 * 1U;
23253#line 4932
23254 __cil_tmp104 = 112 + __cil_tmp103;
23255#line 4932
23256 __cil_tmp105 = (unsigned int )DisketteExtension;
23257#line 4932
23258 __cil_tmp106 = __cil_tmp105 + __cil_tmp104;
23259#line 4932
23260 mem_403 = (UCHAR *)__cil_tmp106;
23261#line 4932
23262 *mem_403 = (unsigned char)84;
23263#line 4934
23264 __cil_tmp107 = 1 * 1U;
23265#line 4934
23266 __cil_tmp108 = 112 + __cil_tmp107;
23267#line 4934
23268 __cil_tmp109 = (unsigned int )DisketteExtension;
23269#line 4934
23270 __cil_tmp110 = __cil_tmp109 + __cil_tmp108;
23271#line 4934
23272 __cil_tmp111 = (unsigned int )DisketteExtension;
23273#line 4934
23274 __cil_tmp112 = __cil_tmp111 + 248;
23275#line 4934
23276 mem_404 = (UCHAR *)__cil_tmp112;
23277#line 4934
23278 __cil_tmp113 = *mem_404;
23279#line 4934
23280 __cil_tmp114 = (int )__cil_tmp113;
23281#line 4934
23282 __cil_tmp115 = (int )Head;
23283#line 4934
23284 __cil_tmp116 = __cil_tmp115 << 2;
23285#line 4934
23286 __cil_tmp117 = __cil_tmp116 | __cil_tmp114;
23287#line 4934
23288 mem_405 = (UCHAR *)__cil_tmp110;
23289#line 4934
23290 *mem_405 = (unsigned char )__cil_tmp117;
23291#line 4937
23292 __cil_tmp118 = 0 * 1U;
23293#line 4937
23294 __cil_tmp119 = 112 + __cil_tmp118;
23295#line 4937
23296 __cil_tmp120 = (unsigned int )DisketteExtension;
23297#line 4937
23298 __cil_tmp121 = __cil_tmp120 + __cil_tmp119;
23299#line 4937
23300 __cil_tmp122 = (UCHAR *)__cil_tmp121;
23301#line 4937
23302 __cil_tmp123 = 0 * 1U;
23303#line 4937
23304 __cil_tmp124 = 112 + __cil_tmp123;
23305#line 4937
23306 __cil_tmp125 = (unsigned int )DisketteExtension;
23307#line 4937
23308 __cil_tmp126 = __cil_tmp125 + __cil_tmp124;
23309#line 4937
23310 __cil_tmp127 = (UCHAR *)__cil_tmp126;
23311#line 4937
23312 __cil_tmp128 = (void *)0;
23313#line 4937
23314 __cil_tmp129 = (struct _MDL *)__cil_tmp128;
23315#line 4937
23316 status = FlIssueCommand(DisketteExtension, __cil_tmp122, __cil_tmp127,
23317 __cil_tmp129, 0UL, 0UL);
23318 }
23319#line 4944
23320 if (status >= 0L) {
23321 {
23322#line 4946
23323 __cil_tmp130 = (KUSER_SHARED_DATA * const )4292804608U;
23324#line 4946
23325 __cil_tmp131 = (unsigned int )__cil_tmp130;
23326#line 4946
23327 __cil_tmp132 = __cil_tmp131 + 732;
23328#line 4946
23329 mem_406 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp132;
23330#line 4946
23331 __cil_tmp133 = *mem_406;
23332#line 4946
23333 __cil_tmp134 = (int )__cil_tmp133;
23334#line 4946
23335 if (__cil_tmp134 == 1) {
23336 {
23337#line 4947
23338 __cil_tmp135 = 0 * 1U;
23339#line 4947
23340 __cil_tmp136 = 112 + __cil_tmp135;
23341#line 4947
23342 __cil_tmp137 = (unsigned int )DisketteExtension;
23343#line 4947
23344 __cil_tmp138 = __cil_tmp137 + __cil_tmp136;
23345#line 4947
23346 mem_407 = (UCHAR *)__cil_tmp138;
23347#line 4947
23348 __cil_tmp139 = *mem_407;
23349#line 4947
23350 __cil_tmp140 = (int )__cil_tmp139;
23351#line 4947
23352 if (__cil_tmp140 & 8) {
23353#line 4948
23354 return (-1073741661L);
23355 } else {
23356
23357 }
23358 }
23359 } else {
23360
23361 }
23362 }
23363 {
23364#line 4952
23365 __cil_tmp141 = (unsigned int )DisketteExtension;
23366#line 4952
23367 __cil_tmp142 = __cil_tmp141 + 248;
23368#line 4952
23369 mem_408 = (UCHAR *)__cil_tmp142;
23370#line 4952
23371 __cil_tmp143 = *mem_408;
23372#line 4952
23373 __cil_tmp144 = (int )__cil_tmp143;
23374#line 4952
23375 __cil_tmp145 = (int )Head;
23376#line 4952
23377 __cil_tmp146 = __cil_tmp145 << 2;
23378#line 4952
23379 __cil_tmp147 = __cil_tmp146 | __cil_tmp144;
23380#line 4952
23381 __cil_tmp148 = 0 * 1U;
23382#line 4952
23383 __cil_tmp149 = 112 + __cil_tmp148;
23384#line 4952
23385 __cil_tmp150 = (unsigned int )DisketteExtension;
23386#line 4952
23387 __cil_tmp151 = __cil_tmp150 + __cil_tmp149;
23388#line 4952
23389 mem_409 = (UCHAR *)__cil_tmp151;
23390#line 4952
23391 __cil_tmp152 = *mem_409;
23392#line 4952
23393 __cil_tmp153 = (int )__cil_tmp152;
23394#line 4952
23395 if (__cil_tmp153 != __cil_tmp147) {
23396 {
23397#line 4958
23398 __cil_tmp154 = (unsigned int )DisketteExtension;
23399#line 4958
23400 __cil_tmp155 = __cil_tmp154 + 104;
23401#line 4958
23402 mem_410 = (BOOLEAN *)__cil_tmp155;
23403#line 4958
23404 *mem_410 = (unsigned char)1;
23405#line 4960
23406 __cil_tmp156 = 1 * 1U;
23407#line 4960
23408 __cil_tmp157 = 112 + __cil_tmp156;
23409#line 4960
23410 __cil_tmp158 = (unsigned int )DisketteExtension;
23411#line 4960
23412 __cil_tmp159 = __cil_tmp158 + __cil_tmp157;
23413#line 4960
23414 mem_411 = (UCHAR *)__cil_tmp159;
23415#line 4960
23416 __cil_tmp160 = *mem_411;
23417#line 4960
23418 __cil_tmp161 = 2 * 1U;
23419#line 4960
23420 __cil_tmp162 = 112 + __cil_tmp161;
23421#line 4960
23422 __cil_tmp163 = (unsigned int )DisketteExtension;
23423#line 4960
23424 __cil_tmp164 = __cil_tmp163 + __cil_tmp162;
23425#line 4960
23426 mem_412 = (UCHAR *)__cil_tmp164;
23427#line 4960
23428 __cil_tmp165 = *mem_412;
23429#line 4960
23430 status = FlInterpretError(__cil_tmp160, __cil_tmp165);
23431 }
23432 } else {
23433 {
23434#line 4952
23435 __cil_tmp166 = 1 * 1U;
23436#line 4952
23437 __cil_tmp167 = 112 + __cil_tmp166;
23438#line 4952
23439 __cil_tmp168 = (unsigned int )DisketteExtension;
23440#line 4952
23441 __cil_tmp169 = __cil_tmp168 + __cil_tmp167;
23442#line 4952
23443 mem_413 = (UCHAR *)__cil_tmp169;
23444#line 4952
23445 __cil_tmp170 = *mem_413;
23446#line 4952
23447 __cil_tmp171 = (int )__cil_tmp170;
23448#line 4952
23449 if (__cil_tmp171 != 0) {
23450 {
23451#line 4958
23452 __cil_tmp172 = (unsigned int )DisketteExtension;
23453#line 4958
23454 __cil_tmp173 = __cil_tmp172 + 104;
23455#line 4958
23456 mem_414 = (BOOLEAN *)__cil_tmp173;
23457#line 4958
23458 *mem_414 = (unsigned char)1;
23459#line 4960
23460 __cil_tmp174 = 1 * 1U;
23461#line 4960
23462 __cil_tmp175 = 112 + __cil_tmp174;
23463#line 4960
23464 __cil_tmp176 = (unsigned int )DisketteExtension;
23465#line 4960
23466 __cil_tmp177 = __cil_tmp176 + __cil_tmp175;
23467#line 4960
23468 mem_415 = (UCHAR *)__cil_tmp177;
23469#line 4960
23470 __cil_tmp178 = *mem_415;
23471#line 4960
23472 __cil_tmp179 = 2 * 1U;
23473#line 4960
23474 __cil_tmp180 = 112 + __cil_tmp179;
23475#line 4960
23476 __cil_tmp181 = (unsigned int )DisketteExtension;
23477#line 4960
23478 __cil_tmp182 = __cil_tmp181 + __cil_tmp180;
23479#line 4960
23480 mem_416 = (UCHAR *)__cil_tmp182;
23481#line 4960
23482 __cil_tmp183 = *mem_416;
23483#line 4960
23484 status = FlInterpretError(__cil_tmp178, __cil_tmp183);
23485 }
23486 } else {
23487 {
23488#line 4952
23489 __cil_tmp184 = 2 * 1U;
23490#line 4952
23491 __cil_tmp185 = 112 + __cil_tmp184;
23492#line 4952
23493 __cil_tmp186 = (unsigned int )DisketteExtension;
23494#line 4952
23495 __cil_tmp187 = __cil_tmp186 + __cil_tmp185;
23496#line 4952
23497 mem_417 = (UCHAR *)__cil_tmp187;
23498#line 4952
23499 __cil_tmp188 = *mem_417;
23500#line 4952
23501 __cil_tmp189 = (int )__cil_tmp188;
23502#line 4952
23503 if (__cil_tmp189 != 0) {
23504 {
23505#line 4958
23506 __cil_tmp190 = (unsigned int )DisketteExtension;
23507#line 4958
23508 __cil_tmp191 = __cil_tmp190 + 104;
23509#line 4958
23510 mem_418 = (BOOLEAN *)__cil_tmp191;
23511#line 4958
23512 *mem_418 = (unsigned char)1;
23513#line 4960
23514 __cil_tmp192 = 1 * 1U;
23515#line 4960
23516 __cil_tmp193 = 112 + __cil_tmp192;
23517#line 4960
23518 __cil_tmp194 = (unsigned int )DisketteExtension;
23519#line 4960
23520 __cil_tmp195 = __cil_tmp194 + __cil_tmp193;
23521#line 4960
23522 mem_419 = (UCHAR *)__cil_tmp195;
23523#line 4960
23524 __cil_tmp196 = *mem_419;
23525#line 4960
23526 __cil_tmp197 = 2 * 1U;
23527#line 4960
23528 __cil_tmp198 = 112 + __cil_tmp197;
23529#line 4960
23530 __cil_tmp199 = (unsigned int )DisketteExtension;
23531#line 4960
23532 __cil_tmp200 = __cil_tmp199 + __cil_tmp198;
23533#line 4960
23534 mem_420 = (UCHAR *)__cil_tmp200;
23535#line 4960
23536 __cil_tmp201 = *mem_420;
23537#line 4960
23538 status = FlInterpretError(__cil_tmp196, __cil_tmp201);
23539 }
23540 } else {
23541 {
23542#line 4952
23543 __cil_tmp202 = (int )Cylinder;
23544#line 4952
23545 __cil_tmp203 = 3 * 1U;
23546#line 4952
23547 __cil_tmp204 = 112 + __cil_tmp203;
23548#line 4952
23549 __cil_tmp205 = (unsigned int )DisketteExtension;
23550#line 4952
23551 __cil_tmp206 = __cil_tmp205 + __cil_tmp204;
23552#line 4952
23553 mem_421 = (UCHAR *)__cil_tmp206;
23554#line 4952
23555 __cil_tmp207 = *mem_421;
23556#line 4952
23557 __cil_tmp208 = (int )__cil_tmp207;
23558#line 4952
23559 if (__cil_tmp208 != __cil_tmp202) {
23560 {
23561#line 4958
23562 __cil_tmp209 = (unsigned int )DisketteExtension;
23563#line 4958
23564 __cil_tmp210 = __cil_tmp209 + 104;
23565#line 4958
23566 mem_422 = (BOOLEAN *)__cil_tmp210;
23567#line 4958
23568 *mem_422 = (unsigned char)1;
23569#line 4960
23570 __cil_tmp211 = 1 * 1U;
23571#line 4960
23572 __cil_tmp212 = 112 + __cil_tmp211;
23573#line 4960
23574 __cil_tmp213 = (unsigned int )DisketteExtension;
23575#line 4960
23576 __cil_tmp214 = __cil_tmp213 + __cil_tmp212;
23577#line 4960
23578 mem_423 = (UCHAR *)__cil_tmp214;
23579#line 4960
23580 __cil_tmp215 = *mem_423;
23581#line 4960
23582 __cil_tmp216 = 2 * 1U;
23583#line 4960
23584 __cil_tmp217 = 112 + __cil_tmp216;
23585#line 4960
23586 __cil_tmp218 = (unsigned int )DisketteExtension;
23587#line 4960
23588 __cil_tmp219 = __cil_tmp218 + __cil_tmp217;
23589#line 4960
23590 mem_424 = (UCHAR *)__cil_tmp219;
23591#line 4960
23592 __cil_tmp220 = *mem_424;
23593#line 4960
23594 status = FlInterpretError(__cil_tmp215, __cil_tmp220);
23595 }
23596 } else {
23597
23598 }
23599 }
23600 }
23601 }
23602 }
23603 }
23604 }
23605 }
23606 } else {
23607 {
23608#line 4968
23609 while (1) {
23610 while_146_continue: ;
23611 goto while_146_break;
23612 }
23613 while_146_break: ;
23614 }
23615 }
23616 } else {
23617
23618 }
23619 } else {
23620 {
23621#line 4975
23622 while (1) {
23623 while_147_continue: ;
23624 goto while_147_break;
23625 }
23626 while_147_break: ;
23627 }
23628 }
23629 } else {
23630#line 4980
23631 status = 0L;
23632 }
23633 }
23634 }
23635 }
23636 } else {
23637#line 4980
23638 status = 0L;
23639 }
23640 }
23641 {
23642#line 4983
23643 __cil_tmp221 = status >= 0L;
23644#line 4983
23645 if (! __cil_tmp221) {
23646 {
23647#line 4990
23648 while (1) {
23649 while_148_continue: ;
23650 goto while_148_break;
23651 }
23652 while_148_break: ;
23653 }
23654#line 4991
23655 recalibrateDrive = (unsigned char)1;
23656 goto __Cont;
23657 } else {
23658
23659 }
23660 }
23661 {
23662#line 4995
23663 while (1) {
23664 while_149_continue: ;
23665#line 5001
23666 __cil_tmp222 = 1 * 1U;
23667#line 5001
23668 __cil_tmp223 = 112 + __cil_tmp222;
23669#line 5001
23670 __cil_tmp224 = (unsigned int )DisketteExtension;
23671#line 5001
23672 __cil_tmp225 = __cil_tmp224 + __cil_tmp223;
23673#line 5001
23674 __cil_tmp226 = (unsigned int )DisketteExtension;
23675#line 5001
23676 __cil_tmp227 = __cil_tmp226 + 248;
23677#line 5001
23678 mem_425 = (UCHAR *)__cil_tmp227;
23679#line 5001
23680 __cil_tmp228 = *mem_425;
23681#line 5001
23682 __cil_tmp229 = (int )__cil_tmp228;
23683#line 5001
23684 __cil_tmp230 = (int )Head;
23685#line 5001
23686 __cil_tmp231 = __cil_tmp230 << 2;
23687#line 5001
23688 __cil_tmp232 = __cil_tmp231 | __cil_tmp229;
23689#line 5001
23690 mem_426 = (UCHAR *)__cil_tmp225;
23691#line 5001
23692 *mem_426 = (unsigned char )__cil_tmp232;
23693#line 5003
23694 __cil_tmp233 = 2 * 1U;
23695#line 5003
23696 __cil_tmp234 = 112 + __cil_tmp233;
23697#line 5003
23698 __cil_tmp235 = (unsigned int )DisketteExtension;
23699#line 5003
23700 __cil_tmp236 = __cil_tmp235 + __cil_tmp234;
23701#line 5003
23702 mem_427 = (UCHAR *)__cil_tmp236;
23703#line 5003
23704 *mem_427 = Cylinder;
23705#line 5004
23706 __cil_tmp237 = 3 * 1U;
23707#line 5004
23708 __cil_tmp238 = 112 + __cil_tmp237;
23709#line 5004
23710 __cil_tmp239 = (unsigned int )DisketteExtension;
23711#line 5004
23712 __cil_tmp240 = __cil_tmp239 + __cil_tmp238;
23713#line 5004
23714 mem_428 = (UCHAR *)__cil_tmp240;
23715#line 5004
23716 *mem_428 = Head;
23717#line 5005
23718 __cil_tmp241 = 4 * 1U;
23719#line 5005
23720 __cil_tmp242 = 112 + __cil_tmp241;
23721#line 5005
23722 __cil_tmp243 = (unsigned int )DisketteExtension;
23723#line 5005
23724 __cil_tmp244 = __cil_tmp243 + __cil_tmp242;
23725#line 5005
23726 __cil_tmp245 = (int )Sector;
23727#line 5005
23728 __cil_tmp246 = __cil_tmp245 + 1;
23729#line 5005
23730 mem_429 = (UCHAR *)__cil_tmp244;
23731#line 5005
23732 *mem_429 = (unsigned char )__cil_tmp246;
23733#line 5006
23734 __cil_tmp247 = 5 * 1U;
23735#line 5006
23736 __cil_tmp248 = 112 + __cil_tmp247;
23737#line 5006
23738 __cil_tmp249 = (unsigned int )DisketteExtension;
23739#line 5006
23740 __cil_tmp250 = __cil_tmp249 + __cil_tmp248;
23741#line 5006
23742 __cil_tmp251 = (unsigned int )driveMediaConstants;
23743#line 5006
23744 __cil_tmp252 = __cil_tmp251 + 35;
23745#line 5006
23746 mem_430 = (UCHAR *)__cil_tmp250;
23747#line 5006
23748 mem_431 = (UCHAR *)__cil_tmp252;
23749#line 5006
23750 *mem_430 = *mem_431;
23751#line 5008
23752 __cil_tmp253 = 6 * 1U;
23753#line 5008
23754 __cil_tmp254 = 112 + __cil_tmp253;
23755#line 5008
23756 __cil_tmp255 = (unsigned int )DisketteExtension;
23757#line 5008
23758 __cil_tmp256 = __cil_tmp255 + __cil_tmp254;
23759#line 5008
23760 __cil_tmp257 = (int )NumberOfSectors;
23761#line 5008
23762 __cil_tmp258 = (int )Sector;
23763#line 5008
23764 __cil_tmp259 = __cil_tmp258 + __cil_tmp257;
23765#line 5008
23766 mem_432 = (UCHAR *)__cil_tmp256;
23767#line 5008
23768 *mem_432 = (unsigned char )__cil_tmp259;
23769#line 5009
23770 __cil_tmp260 = 7 * 1U;
23771#line 5009
23772 __cil_tmp261 = 112 + __cil_tmp260;
23773#line 5009
23774 __cil_tmp262 = (unsigned int )DisketteExtension;
23775#line 5009
23776 __cil_tmp263 = __cil_tmp262 + __cil_tmp261;
23777#line 5009
23778 __cil_tmp264 = (unsigned int )driveMediaConstants;
23779#line 5009
23780 __cil_tmp265 = __cil_tmp264 + 39;
23781#line 5009
23782 mem_433 = (UCHAR *)__cil_tmp263;
23783#line 5009
23784 mem_434 = (UCHAR *)__cil_tmp265;
23785#line 5009
23786 *mem_433 = *mem_434;
23787#line 5011
23788 __cil_tmp266 = 8 * 1U;
23789#line 5011
23790 __cil_tmp267 = 112 + __cil_tmp266;
23791#line 5011
23792 __cil_tmp268 = (unsigned int )DisketteExtension;
23793#line 5011
23794 __cil_tmp269 = __cil_tmp268 + __cil_tmp267;
23795#line 5011
23796 __cil_tmp270 = (unsigned int )driveMediaConstants;
23797#line 5011
23798 __cil_tmp271 = __cil_tmp270 + 52;
23799#line 5011
23800 mem_435 = (UCHAR *)__cil_tmp269;
23801#line 5011
23802 mem_436 = (UCHAR *)__cil_tmp271;
23803#line 5011
23804 *mem_435 = *mem_436;
23805#line 5013
23806 if (WriteOperation) {
23807#line 5014
23808 __cil_tmp272 = 0 * 1U;
23809#line 5014
23810 __cil_tmp273 = 112 + __cil_tmp272;
23811#line 5014
23812 __cil_tmp274 = (unsigned int )DisketteExtension;
23813#line 5014
23814 __cil_tmp275 = __cil_tmp274 + __cil_tmp273;
23815#line 5014
23816 mem_437 = (UCHAR *)__cil_tmp275;
23817#line 5014
23818 *mem_437 = (unsigned char)66;
23819 } else {
23820#line 5017
23821 __cil_tmp276 = 0 * 1U;
23822#line 5017
23823 __cil_tmp277 = 112 + __cil_tmp276;
23824#line 5017
23825 __cil_tmp278 = (unsigned int )DisketteExtension;
23826#line 5017
23827 __cil_tmp279 = __cil_tmp278 + __cil_tmp277;
23828#line 5017
23829 mem_438 = (UCHAR *)__cil_tmp279;
23830#line 5017
23831 *mem_438 = (unsigned char)64;
23832 }
23833 {
23834#line 5021
23835 __cil_tmp280 = 0 * 1U;
23836#line 5021
23837 __cil_tmp281 = 112 + __cil_tmp280;
23838#line 5021
23839 __cil_tmp282 = (unsigned int )DisketteExtension;
23840#line 5021
23841 __cil_tmp283 = __cil_tmp282 + __cil_tmp281;
23842#line 5021
23843 __cil_tmp284 = (UCHAR *)__cil_tmp283;
23844#line 5021
23845 __cil_tmp285 = 0 * 1U;
23846#line 5021
23847 __cil_tmp286 = 112 + __cil_tmp285;
23848#line 5021
23849 __cil_tmp287 = (unsigned int )DisketteExtension;
23850#line 5021
23851 __cil_tmp288 = __cil_tmp287 + __cil_tmp286;
23852#line 5021
23853 __cil_tmp289 = (UCHAR *)__cil_tmp288;
23854#line 5021
23855 status = FlIssueCommand(DisketteExtension, __cil_tmp284, __cil_tmp289, IoMdl,
23856 IoOffset, transferBytes);
23857 }
23858#line 5028
23859 if (status >= 0L) {
23860 {
23861#line 5030
23862 __cil_tmp290 = (KUSER_SHARED_DATA * const )4292804608U;
23863#line 5030
23864 __cil_tmp291 = (unsigned int )__cil_tmp290;
23865#line 5030
23866 __cil_tmp292 = __cil_tmp291 + 732;
23867#line 5030
23868 mem_439 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp292;
23869#line 5030
23870 __cil_tmp293 = *mem_439;
23871#line 5030
23872 __cil_tmp294 = (int )__cil_tmp293;
23873#line 5030
23874 if (__cil_tmp294 == 1) {
23875 {
23876#line 5031
23877 __cil_tmp295 = 0 * 1U;
23878#line 5031
23879 __cil_tmp296 = 112 + __cil_tmp295;
23880#line 5031
23881 __cil_tmp297 = (unsigned int )DisketteExtension;
23882#line 5031
23883 __cil_tmp298 = __cil_tmp297 + __cil_tmp296;
23884#line 5031
23885 mem_440 = (UCHAR *)__cil_tmp298;
23886#line 5031
23887 __cil_tmp299 = *mem_440;
23888#line 5031
23889 __cil_tmp300 = (int )__cil_tmp299;
23890#line 5031
23891 if (__cil_tmp300 & 8) {
23892#line 5032
23893 return (-1073741661L);
23894 } else {
23895
23896 }
23897 }
23898 } else {
23899
23900 }
23901 }
23902 {
23903#line 5036
23904 __cil_tmp301 = 0 * 1U;
23905#line 5036
23906 __cil_tmp302 = 112 + __cil_tmp301;
23907#line 5036
23908 __cil_tmp303 = (unsigned int )DisketteExtension;
23909#line 5036
23910 __cil_tmp304 = __cil_tmp303 + __cil_tmp302;
23911#line 5036
23912 mem_441 = (UCHAR *)__cil_tmp304;
23913#line 5036
23914 __cil_tmp305 = *mem_441;
23915#line 5036
23916 __cil_tmp306 = (int )__cil_tmp305;
23917#line 5036
23918 __cil_tmp307 = __cil_tmp306 & 192;
23919#line 5036
23920 if (__cil_tmp307 != 0) {
23921 {
23922#line 5036
23923 __cil_tmp308 = 0 * 1U;
23924#line 5036
23925 __cil_tmp309 = 112 + __cil_tmp308;
23926#line 5036
23927 __cil_tmp310 = (unsigned int )DisketteExtension;
23928#line 5036
23929 __cil_tmp311 = __cil_tmp310 + __cil_tmp309;
23930#line 5036
23931 mem_442 = (UCHAR *)__cil_tmp311;
23932#line 5036
23933 __cil_tmp312 = *mem_442;
23934#line 5036
23935 __cil_tmp313 = (int )__cil_tmp312;
23936#line 5036
23937 __cil_tmp314 = __cil_tmp313 & 192;
23938#line 5036
23939 if (__cil_tmp314 != 64) {
23940 {
23941#line 5044
23942 __cil_tmp315 = (unsigned int )DisketteExtension;
23943#line 5044
23944 __cil_tmp316 = __cil_tmp315 + 104;
23945#line 5044
23946 mem_443 = (BOOLEAN *)__cil_tmp316;
23947#line 5044
23948 *mem_443 = (unsigned char)1;
23949#line 5046
23950 __cil_tmp317 = 1 * 1U;
23951#line 5046
23952 __cil_tmp318 = 112 + __cil_tmp317;
23953#line 5046
23954 __cil_tmp319 = (unsigned int )DisketteExtension;
23955#line 5046
23956 __cil_tmp320 = __cil_tmp319 + __cil_tmp318;
23957#line 5046
23958 mem_444 = (UCHAR *)__cil_tmp320;
23959#line 5046
23960 __cil_tmp321 = *mem_444;
23961#line 5046
23962 __cil_tmp322 = 2 * 1U;
23963#line 5046
23964 __cil_tmp323 = 112 + __cil_tmp322;
23965#line 5046
23966 __cil_tmp324 = (unsigned int )DisketteExtension;
23967#line 5046
23968 __cil_tmp325 = __cil_tmp324 + __cil_tmp323;
23969#line 5046
23970 mem_445 = (UCHAR *)__cil_tmp325;
23971#line 5046
23972 __cil_tmp326 = *mem_445;
23973#line 5046
23974 status = FlInterpretError(__cil_tmp321, __cil_tmp326);
23975 }
23976 } else {
23977 {
23978#line 5036
23979 __cil_tmp327 = 1 * 1U;
23980#line 5036
23981 __cil_tmp328 = 112 + __cil_tmp327;
23982#line 5036
23983 __cil_tmp329 = (unsigned int )DisketteExtension;
23984#line 5036
23985 __cil_tmp330 = __cil_tmp329 + __cil_tmp328;
23986#line 5036
23987 mem_446 = (UCHAR *)__cil_tmp330;
23988#line 5036
23989 __cil_tmp331 = *mem_446;
23990#line 5036
23991 __cil_tmp332 = (int )__cil_tmp331;
23992#line 5036
23993 if (__cil_tmp332 != 128) {
23994 {
23995#line 5044
23996 __cil_tmp333 = (unsigned int )DisketteExtension;
23997#line 5044
23998 __cil_tmp334 = __cil_tmp333 + 104;
23999#line 5044
24000 mem_447 = (BOOLEAN *)__cil_tmp334;
24001#line 5044
24002 *mem_447 = (unsigned char)1;
24003#line 5046
24004 __cil_tmp335 = 1 * 1U;
24005#line 5046
24006 __cil_tmp336 = 112 + __cil_tmp335;
24007#line 5046
24008 __cil_tmp337 = (unsigned int )DisketteExtension;
24009#line 5046
24010 __cil_tmp338 = __cil_tmp337 + __cil_tmp336;
24011#line 5046
24012 mem_448 = (UCHAR *)__cil_tmp338;
24013#line 5046
24014 __cil_tmp339 = *mem_448;
24015#line 5046
24016 __cil_tmp340 = 2 * 1U;
24017#line 5046
24018 __cil_tmp341 = 112 + __cil_tmp340;
24019#line 5046
24020 __cil_tmp342 = (unsigned int )DisketteExtension;
24021#line 5046
24022 __cil_tmp343 = __cil_tmp342 + __cil_tmp341;
24023#line 5046
24024 mem_449 = (UCHAR *)__cil_tmp343;
24025#line 5046
24026 __cil_tmp344 = *mem_449;
24027#line 5046
24028 status = FlInterpretError(__cil_tmp339, __cil_tmp344);
24029 }
24030 } else {
24031 {
24032#line 5036
24033 __cil_tmp345 = 2 * 1U;
24034#line 5036
24035 __cil_tmp346 = 112 + __cil_tmp345;
24036#line 5036
24037 __cil_tmp347 = (unsigned int )DisketteExtension;
24038#line 5036
24039 __cil_tmp348 = __cil_tmp347 + __cil_tmp346;
24040#line 5036
24041 mem_450 = (UCHAR *)__cil_tmp348;
24042#line 5036
24043 __cil_tmp349 = *mem_450;
24044#line 5036
24045 __cil_tmp350 = (int )__cil_tmp349;
24046#line 5036
24047 if (__cil_tmp350 != 0) {
24048 {
24049#line 5044
24050 __cil_tmp351 = (unsigned int )DisketteExtension;
24051#line 5044
24052 __cil_tmp352 = __cil_tmp351 + 104;
24053#line 5044
24054 mem_451 = (BOOLEAN *)__cil_tmp352;
24055#line 5044
24056 *mem_451 = (unsigned char)1;
24057#line 5046
24058 __cil_tmp353 = 1 * 1U;
24059#line 5046
24060 __cil_tmp354 = 112 + __cil_tmp353;
24061#line 5046
24062 __cil_tmp355 = (unsigned int )DisketteExtension;
24063#line 5046
24064 __cil_tmp356 = __cil_tmp355 + __cil_tmp354;
24065#line 5046
24066 mem_452 = (UCHAR *)__cil_tmp356;
24067#line 5046
24068 __cil_tmp357 = *mem_452;
24069#line 5046
24070 __cil_tmp358 = 2 * 1U;
24071#line 5046
24072 __cil_tmp359 = 112 + __cil_tmp358;
24073#line 5046
24074 __cil_tmp360 = (unsigned int )DisketteExtension;
24075#line 5046
24076 __cil_tmp361 = __cil_tmp360 + __cil_tmp359;
24077#line 5046
24078 mem_453 = (UCHAR *)__cil_tmp361;
24079#line 5046
24080 __cil_tmp362 = *mem_453;
24081#line 5046
24082 status = FlInterpretError(__cil_tmp357, __cil_tmp362);
24083 }
24084 } else {
24085 goto _L___1;
24086 }
24087 }
24088 }
24089 }
24090 }
24091 }
24092 } else {
24093 _L___1:
24094 {
24095#line 5054
24096 __cil_tmp363 = 5 * 1U;
24097#line 5054
24098 __cil_tmp364 = 112 + __cil_tmp363;
24099#line 5054
24100 __cil_tmp365 = (unsigned int )DisketteExtension;
24101#line 5054
24102 __cil_tmp366 = __cil_tmp365 + __cil_tmp364;
24103#line 5054
24104 mem_454 = (UCHAR *)__cil_tmp366;
24105#line 5054
24106 __cil_tmp367 = *mem_454;
24107#line 5054
24108 __cil_tmp368 = (int )__cil_tmp367;
24109#line 5054
24110 if (__cil_tmp368 != 1) {
24111#line 5056
24112 __cil_tmp369 = (unsigned int )DisketteExtension;
24113#line 5056
24114 __cil_tmp370 = __cil_tmp369 + 104;
24115#line 5056
24116 mem_455 = (BOOLEAN *)__cil_tmp370;
24117#line 5056
24118 *mem_455 = (unsigned char)1;
24119#line 5057
24120 status = -1073741465L;
24121 } else {
24122
24123 }
24124 }
24125 }
24126 }
24127 } else {
24128 {
24129#line 5064
24130 while (1) {
24131 while_150_continue: ;
24132 goto while_150_break;
24133 }
24134 while_150_break: ;
24135 }
24136 }
24137#line 5067
24138 if (status >= 0L) {
24139 goto while_149_break;
24140 } else {
24141
24142 }
24143#line 5071
24144 if (ioRetry >= 2UL) {
24145 {
24146#line 5073
24147 while (1) {
24148 while_151_continue: ;
24149 goto while_151_break;
24150 }
24151 while_151_break: ;
24152 }
24153 goto while_149_break;
24154 } else {
24155
24156 }
24157#line 4995
24158 ioRetry = ioRetry + 1UL;
24159 }
24160 while_149_break: ;
24161 }
24162#line 5078
24163 if (status >= 0L) {
24164 goto while_144_break;
24165 } else {
24166
24167 }
24168#line 5083
24169 recalibrateDrive = (unsigned char)1;
24170 __Cont:
24171#line 4879
24172 seekRetry = seekRetry + 1UL;
24173 }
24174 while_144_break: ;
24175 }
24176 {
24177#line 5086
24178 __cil_tmp371 = status >= 0L;
24179#line 5086
24180 if (! __cil_tmp371) {
24181 {
24182#line 5086
24183 __cil_tmp372 = (int )NumberOfSectors;
24184#line 5086
24185 if (__cil_tmp372 > 1) {
24186 {
24187#line 5091
24188 while (1) {
24189 while_152_continue: ;
24190 goto while_152_break;
24191 }
24192 while_152_break: ;
24193 }
24194#line 5093
24195 i = (unsigned char)0;
24196 {
24197#line 5093
24198 while (1) {
24199 while_153_continue: ;
24200 {
24201#line 5093
24202 __cil_tmp373 = (int )NumberOfSectors;
24203#line 5093
24204 __cil_tmp374 = (int )i;
24205#line 5093
24206 if (__cil_tmp374 < __cil_tmp373) {
24207
24208 } else {
24209 goto while_153_break;
24210 }
24211 }
24212 {
24213#line 5094
24214 __cil_tmp375 = (unsigned long )i;
24215#line 5094
24216 __cil_tmp376 = __cil_tmp375 << byteToSectorShift;
24217#line 5094
24218 __cil_tmp377 = IoOffset + __cil_tmp376;
24219#line 5094
24220 __cil_tmp378 = (int )i;
24221#line 5094
24222 __cil_tmp379 = (int )Sector;
24223#line 5094
24224 __cil_tmp380 = __cil_tmp379 + __cil_tmp378;
24225#line 5094
24226 __cil_tmp381 = (unsigned char )__cil_tmp380;
24227#line 5094
24228 status = FlReadWriteTrack(DisketteExtension, IoMdl, __cil_tmp377, WriteOperation,
24229 Cylinder, Head, __cil_tmp381, (unsigned char)1,
24230 (unsigned char)0);
24231 }
24232 {
24233#line 5104
24234 __cil_tmp382 = status >= 0L;
24235#line 5104
24236 if (! __cil_tmp382) {
24237 {
24238#line 5108
24239 while (1) {
24240 while_154_continue: ;
24241 goto while_154_break;
24242 }
24243 while_154_break: ;
24244 }
24245#line 5110
24246 __cil_tmp383 = (unsigned int )DisketteExtension;
24247#line 5110
24248 __cil_tmp384 = __cil_tmp383 + 104;
24249#line 5110
24250 mem_456 = (BOOLEAN *)__cil_tmp384;
24251#line 5110
24252 *mem_456 = (unsigned char)1;
24253 goto while_153_break;
24254 } else {
24255
24256 }
24257 }
24258#line 5093
24259 __cil_tmp385 = (int )i;
24260#line 5093
24261 __cil_tmp386 = __cil_tmp385 + 1;
24262#line 5093
24263 i = (unsigned char )__cil_tmp386;
24264 }
24265 while_153_break: ;
24266 }
24267 } else {
24268
24269 }
24270 }
24271 } else {
24272
24273 }
24274 }
24275#line 5116
24276 return (status);
24277}
24278}
24279#line 5119 "floppy.c"
24280NTSTATUS FlReadWrite(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp , BOOLEAN DriveStarted )
24281{ PIO_STACK_LOCATION irpSp ;
24282 BOOLEAN writeOperation ;
24283 NTSTATUS status ;
24284 PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
24285 ULONG byteToSectorShift ;
24286 ULONG currentSector ;
24287 ULONG firstSector ;
24288 ULONG lastSector ;
24289 ULONG trackSize ;
24290 UCHAR sectorsPerTrack ;
24291 UCHAR numberOfHeads ;
24292 UCHAR currentHead ;
24293 UCHAR currentCylinder ;
24294 UCHAR trackSector ;
24295 PCHAR userBuffer ;
24296 UCHAR skew ;
24297 UCHAR skewDelta ;
24298 UCHAR numTransferSectors ;
24299 PMDL mdl ;
24300 PCHAR ioBuffer ;
24301 ULONG ioOffset ;
24302 PVOID tmp___0 ;
24303 unsigned int __cil_tmp26 ;
24304 unsigned int __cil_tmp27 ;
24305 unsigned int __cil_tmp28 ;
24306 unsigned int __cil_tmp29 ;
24307 unsigned int __cil_tmp30 ;
24308 UCHAR __cil_tmp31 ;
24309 int __cil_tmp32 ;
24310 unsigned int __cil_tmp33 ;
24311 unsigned int __cil_tmp34 ;
24312 unsigned int __cil_tmp35 ;
24313 unsigned int __cil_tmp36 ;
24314 UCHAR __cil_tmp37 ;
24315 int __cil_tmp38 ;
24316 int __cil_tmp39 ;
24317 int __cil_tmp40 ;
24318 int __cil_tmp41 ;
24319 unsigned char __cil_tmp42 ;
24320 int __cil_tmp43 ;
24321 KUSER_SHARED_DATA *__cil_tmp44 ;
24322 unsigned int __cil_tmp45 ;
24323 unsigned int __cil_tmp46 ;
24324 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp47 ;
24325 int __cil_tmp48 ;
24326 unsigned int __cil_tmp49 ;
24327 unsigned int __cil_tmp50 ;
24328 MEDIA_TYPE __cil_tmp51 ;
24329 int __cil_tmp52 ;
24330 unsigned int __cil_tmp53 ;
24331 unsigned int __cil_tmp54 ;
24332 unsigned int __cil_tmp55 ;
24333 unsigned int __cil_tmp56 ;
24334 UCHAR __cil_tmp57 ;
24335 int __cil_tmp58 ;
24336 int __cil_tmp59 ;
24337 unsigned int __cil_tmp60 ;
24338 unsigned int __cil_tmp61 ;
24339 unsigned int __cil_tmp62 ;
24340 unsigned int __cil_tmp63 ;
24341 ULONG __cil_tmp64 ;
24342 unsigned int __cil_tmp65 ;
24343 unsigned int __cil_tmp66 ;
24344 ULONG __cil_tmp67 ;
24345 ULONG __cil_tmp68 ;
24346 unsigned int __cil_tmp69 ;
24347 unsigned int __cil_tmp70 ;
24348 unsigned int __cil_tmp71 ;
24349 unsigned int __cil_tmp72 ;
24350 unsigned int __cil_tmp73 ;
24351 unsigned int __cil_tmp74 ;
24352 PMDL __cil_tmp75 ;
24353 unsigned int __cil_tmp76 ;
24354 unsigned int __cil_tmp77 ;
24355 CSHORT __cil_tmp78 ;
24356 int __cil_tmp79 ;
24357 unsigned int __cil_tmp80 ;
24358 unsigned int __cil_tmp81 ;
24359 PMDL __cil_tmp82 ;
24360 unsigned int __cil_tmp83 ;
24361 unsigned int __cil_tmp84 ;
24362 PVOID __cil_tmp85 ;
24363 unsigned int __cil_tmp86 ;
24364 unsigned int __cil_tmp87 ;
24365 PMDL __cil_tmp88 ;
24366 enum _MEMORY_CACHING_TYPE __cil_tmp89 ;
24367 void *__cil_tmp90 ;
24368 enum _MM_PAGE_PRIORITY __cil_tmp91 ;
24369 void *__cil_tmp92 ;
24370 unsigned int __cil_tmp93 ;
24371 unsigned int __cil_tmp94 ;
24372 unsigned long __cil_tmp95 ;
24373 unsigned int __cil_tmp96 ;
24374 unsigned int __cil_tmp97 ;
24375 unsigned long __cil_tmp98 ;
24376 unsigned long __cil_tmp99 ;
24377 ULONG __cil_tmp100 ;
24378 ULONG __cil_tmp101 ;
24379 unsigned long __cil_tmp102 ;
24380 unsigned long __cil_tmp103 ;
24381 unsigned long __cil_tmp104 ;
24382 unsigned long __cil_tmp105 ;
24383 ULONG __cil_tmp106 ;
24384 unsigned long __cil_tmp107 ;
24385 int __cil_tmp108 ;
24386 int __cil_tmp109 ;
24387 int __cil_tmp110 ;
24388 unsigned long __cil_tmp111 ;
24389 ULONG __cil_tmp112 ;
24390 ULONG __cil_tmp113 ;
24391 unsigned int __cil_tmp114 ;
24392 unsigned int __cil_tmp115 ;
24393 ULONG __cil_tmp116 ;
24394 unsigned int __cil_tmp117 ;
24395 unsigned int __cil_tmp118 ;
24396 PUCHAR __cil_tmp119 ;
24397 unsigned int __cil_tmp120 ;
24398 unsigned int __cil_tmp121 ;
24399 unsigned int __cil_tmp122 ;
24400 unsigned int __cil_tmp123 ;
24401 PUCHAR __cil_tmp124 ;
24402 void *__cil_tmp125 ;
24403 ULONG __cil_tmp126 ;
24404 ULONG __cil_tmp127 ;
24405 PCHAR __cil_tmp128 ;
24406 void const *__cil_tmp129 ;
24407 unsigned long __cil_tmp130 ;
24408 unsigned long __cil_tmp131 ;
24409 unsigned int __cil_tmp132 ;
24410 unsigned int __cil_tmp133 ;
24411 unsigned int __cil_tmp134 ;
24412 ULONG __cil_tmp135 ;
24413 int __cil_tmp136 ;
24414 int __cil_tmp137 ;
24415 int __cil_tmp138 ;
24416 int __cil_tmp139 ;
24417 int __cil_tmp140 ;
24418 int __cil_tmp141 ;
24419 unsigned long __cil_tmp142 ;
24420 unsigned long __cil_tmp143 ;
24421 unsigned long __cil_tmp144 ;
24422 unsigned long __cil_tmp145 ;
24423 ULONG __cil_tmp146 ;
24424 int __cil_tmp147 ;
24425 int __cil_tmp148 ;
24426 int __cil_tmp149 ;
24427 int __cil_tmp150 ;
24428 int __cil_tmp151 ;
24429 unsigned char __cil_tmp152 ;
24430 int __cil_tmp153 ;
24431 int __cil_tmp154 ;
24432 int __cil_tmp155 ;
24433 int __cil_tmp156 ;
24434 int __cil_tmp157 ;
24435 unsigned char __cil_tmp158 ;
24436 int __cil_tmp159 ;
24437 int __cil_tmp160 ;
24438 int __cil_tmp161 ;
24439 int __cil_tmp162 ;
24440 int __cil_tmp163 ;
24441 int __cil_tmp164 ;
24442 int __cil_tmp165 ;
24443 int __cil_tmp166 ;
24444 int __cil_tmp167 ;
24445 int __cil_tmp168 ;
24446 int __cil_tmp169 ;
24447 unsigned int __cil_tmp170 ;
24448 unsigned int __cil_tmp171 ;
24449 ULONG __cil_tmp172 ;
24450 ULONG __cil_tmp173 ;
24451 ULONG __cil_tmp174 ;
24452 PCHAR __cil_tmp175 ;
24453 void *__cil_tmp176 ;
24454 void const *__cil_tmp177 ;
24455 unsigned long __cil_tmp178 ;
24456 unsigned long __cil_tmp179 ;
24457 unsigned int __cil_tmp180 ;
24458 int __cil_tmp181 ;
24459 int __cil_tmp182 ;
24460 int __cil_tmp183 ;
24461 int __cil_tmp184 ;
24462 int __cil_tmp185 ;
24463 unsigned long __cil_tmp186 ;
24464 unsigned int __cil_tmp187 ;
24465 unsigned int __cil_tmp188 ;
24466 unsigned int __cil_tmp189 ;
24467 ULONG __cil_tmp190 ;
24468 struct _BOOT_SECTOR_INFO *__cil_tmp191 ;
24469 struct _IO_STACK_LOCATION **mem_192 ;
24470 UCHAR *mem_193 ;
24471 BOOLEAN *mem_194 ;
24472 UCHAR *mem_195 ;
24473 ALTERNATIVE_ARCHITECTURE_TYPE *mem_196 ;
24474 MEDIA_TYPE *mem_197 ;
24475 UCHAR *mem_198 ;
24476 ULONG *mem_199 ;
24477 ULONG *mem_200 ;
24478 UCHAR *mem_201 ;
24479 UCHAR *mem_202 ;
24480 PMDL *mem_203 ;
24481 CSHORT *mem_204 ;
24482 PMDL *mem_205 ;
24483 PVOID *mem_206 ;
24484 PMDL *mem_207 ;
24485 UCHAR *mem_208 ;
24486 ULONG *mem_209 ;
24487 PUCHAR *mem_210 ;
24488 PMDL *mem_211 ;
24489 PUCHAR *mem_212 ;
24490 PMDL *mem_213 ;
24491 ULONG *mem_214 ;
24492 ULONG_PTR *mem_215 ;
24493
24494 {
24495#line 5169
24496 __cil_tmp26 = 24 + 8;
24497#line 5169
24498 __cil_tmp27 = 0 + __cil_tmp26;
24499#line 5169
24500 __cil_tmp28 = 64 + __cil_tmp27;
24501#line 5169
24502 __cil_tmp29 = (unsigned int )Irp;
24503#line 5169
24504 __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
24505#line 5169
24506 mem_192 = (struct _IO_STACK_LOCATION **)__cil_tmp30;
24507#line 5169
24508 irpSp = *mem_192;
24509 {
24510#line 5177
24511 while (1) {
24512 while_155_continue: ;
24513 goto while_155_break;
24514 }
24515 while_155_break: ;
24516 }
24517 {
24518#line 5181
24519 mem_193 = (UCHAR *)irpSp;
24520#line 5181
24521 __cil_tmp31 = *mem_193;
24522#line 5181
24523 __cil_tmp32 = (int )__cil_tmp31;
24524#line 5181
24525 if (__cil_tmp32 == 4) {
24526 {
24527#line 5182
24528 __cil_tmp33 = (unsigned int )DisketteExtension;
24529#line 5182
24530 __cil_tmp34 = __cil_tmp33 + 250;
24531 {
24532#line 5182
24533 mem_194 = (BOOLEAN *)__cil_tmp34;
24534#line 5182
24535 if (*mem_194) {
24536 {
24537#line 5183
24538 while (1) {
24539 while_156_continue: ;
24540 goto while_156_break;
24541 }
24542 while_156_break: ;
24543 }
24544#line 5184
24545 return (-1073741811L);
24546 } else {
24547
24548 }
24549 }
24550 }
24551#line 5186
24552 writeOperation = (unsigned char)1;
24553 } else {
24554#line 5188
24555 writeOperation = (unsigned char)0;
24556 }
24557 }
24558 {
24559#line 5191
24560 while (1) {
24561 while_157_continue: ;
24562 goto while_157_break;
24563 }
24564 while_157_break: ;
24565 }
24566#line 5195
24567 if (DriveStarted) {
24568#line 5196
24569 status = 0L;
24570 } else {
24571 {
24572#line 5198
24573 __cil_tmp35 = (unsigned int )irpSp;
24574#line 5198
24575 __cil_tmp36 = __cil_tmp35 + 2;
24576#line 5198
24577 mem_195 = (UCHAR *)__cil_tmp36;
24578#line 5198
24579 __cil_tmp37 = *mem_195;
24580#line 5198
24581 __cil_tmp38 = (int )__cil_tmp37;
24582#line 5198
24583 __cil_tmp39 = __cil_tmp38 & 2;
24584#line 5198
24585 __cil_tmp40 = ! __cil_tmp39;
24586#line 5198
24587 __cil_tmp41 = ! __cil_tmp40;
24588#line 5198
24589 __cil_tmp42 = (unsigned char )__cil_tmp41;
24590#line 5198
24591 status = FlStartDrive(DisketteExtension, Irp, writeOperation, (unsigned char)1,
24592 __cil_tmp42);
24593 }
24594 }
24595 {
24596#line 5206
24597 __cil_tmp43 = status >= 0L;
24598#line 5206
24599 if (! __cil_tmp43) {
24600 {
24601#line 5210
24602 while (1) {
24603 while_158_continue: ;
24604 goto while_158_break;
24605 }
24606 while_158_break: ;
24607 }
24608#line 5211
24609 return (status);
24610 } else {
24611
24612 }
24613 }
24614 {
24615#line 5214
24616 __cil_tmp44 = (KUSER_SHARED_DATA * const )4292804608U;
24617#line 5214
24618 __cil_tmp45 = (unsigned int )__cil_tmp44;
24619#line 5214
24620 __cil_tmp46 = __cil_tmp45 + 732;
24621#line 5214
24622 mem_196 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp46;
24623#line 5214
24624 __cil_tmp47 = *mem_196;
24625#line 5214
24626 __cil_tmp48 = (int )__cil_tmp47;
24627#line 5214
24628 if (__cil_tmp48 == 1) {
24629 {
24630#line 5216
24631 FlHdbit(DisketteExtension);
24632 }
24633 } else {
24634
24635 }
24636 }
24637 {
24638#line 5220
24639 __cil_tmp49 = (unsigned int )DisketteExtension;
24640#line 5220
24641 __cil_tmp50 = __cil_tmp49 + 184;
24642#line 5220
24643 mem_197 = (MEDIA_TYPE *)__cil_tmp50;
24644#line 5220
24645 __cil_tmp51 = *mem_197;
24646#line 5220
24647 __cil_tmp52 = (int )__cil_tmp51;
24648#line 5220
24649 if (__cil_tmp52 == 0) {
24650 {
24651#line 5221
24652 while (1) {
24653 while_159_continue: ;
24654 goto while_159_break;
24655 }
24656 while_159_break: ;
24657 }
24658#line 5222
24659 return (-1073741804L);
24660 } else {
24661
24662 }
24663 }
24664#line 5228
24665 __cil_tmp53 = (unsigned int )DisketteExtension;
24666#line 5228
24667 __cil_tmp54 = __cil_tmp53 + 308;
24668#line 5228
24669 driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp54;
24670#line 5230
24671 __cil_tmp55 = (unsigned int )driveMediaConstants;
24672#line 5230
24673 __cil_tmp56 = __cil_tmp55 + 35;
24674#line 5230
24675 mem_198 = (UCHAR *)__cil_tmp56;
24676#line 5230
24677 __cil_tmp57 = *mem_198;
24678#line 5230
24679 __cil_tmp58 = (int )__cil_tmp57;
24680#line 5230
24681 __cil_tmp59 = 7 + __cil_tmp58;
24682#line 5230
24683 byteToSectorShift = (unsigned long )__cil_tmp59;
24684#line 5232
24685 __cil_tmp60 = 0 + 8;
24686#line 5232
24687 __cil_tmp61 = 4 + __cil_tmp60;
24688#line 5232
24689 __cil_tmp62 = (unsigned int )irpSp;
24690#line 5232
24691 __cil_tmp63 = __cil_tmp62 + __cil_tmp61;
24692#line 5232
24693 mem_199 = (ULONG *)__cil_tmp63;
24694#line 5232
24695 __cil_tmp64 = *mem_199;
24696#line 5232
24697 firstSector = __cil_tmp64 >> byteToSectorShift;
24698#line 5234
24699 __cil_tmp65 = (unsigned int )irpSp;
24700#line 5234
24701 __cil_tmp66 = __cil_tmp65 + 4;
24702#line 5234
24703 mem_200 = (ULONG *)__cil_tmp66;
24704#line 5234
24705 __cil_tmp67 = *mem_200;
24706#line 5234
24707 __cil_tmp68 = __cil_tmp67 >> byteToSectorShift;
24708#line 5234
24709 lastSector = firstSector + __cil_tmp68;
24710#line 5236
24711 __cil_tmp69 = (unsigned int )driveMediaConstants;
24712#line 5236
24713 __cil_tmp70 = __cil_tmp69 + 38;
24714#line 5236
24715 mem_201 = (UCHAR *)__cil_tmp70;
24716#line 5236
24717 sectorsPerTrack = *mem_201;
24718#line 5237
24719 __cil_tmp71 = (unsigned int )driveMediaConstants;
24720#line 5237
24721 __cil_tmp72 = __cil_tmp71 + 51;
24722#line 5237
24723 mem_202 = (UCHAR *)__cil_tmp72;
24724#line 5237
24725 numberOfHeads = *mem_202;
24726 {
24727#line 5238
24728 __cil_tmp73 = (unsigned int )Irp;
24729#line 5238
24730 __cil_tmp74 = __cil_tmp73 + 4;
24731#line 5238
24732 mem_203 = (PMDL *)__cil_tmp74;
24733#line 5238
24734 __cil_tmp75 = *mem_203;
24735#line 5238
24736 __cil_tmp76 = (unsigned int )__cil_tmp75;
24737#line 5238
24738 __cil_tmp77 = __cil_tmp76 + 6;
24739#line 5238
24740 mem_204 = (CSHORT *)__cil_tmp77;
24741#line 5238
24742 __cil_tmp78 = *mem_204;
24743#line 5238
24744 __cil_tmp79 = (int )__cil_tmp78;
24745#line 5238
24746 if (__cil_tmp79 & 5) {
24747#line 5238
24748 __cil_tmp80 = (unsigned int )Irp;
24749#line 5238
24750 __cil_tmp81 = __cil_tmp80 + 4;
24751#line 5238
24752 mem_205 = (PMDL *)__cil_tmp81;
24753#line 5238
24754 __cil_tmp82 = *mem_205;
24755#line 5238
24756 __cil_tmp83 = (unsigned int )__cil_tmp82;
24757#line 5238
24758 __cil_tmp84 = __cil_tmp83 + 12;
24759#line 5238
24760 mem_206 = (PVOID *)__cil_tmp84;
24761#line 5238
24762 __cil_tmp85 = *mem_206;
24763#line 5238
24764 userBuffer = (CHAR *)__cil_tmp85;
24765 } else {
24766 {
24767#line 5238
24768 __cil_tmp86 = (unsigned int )Irp;
24769#line 5238
24770 __cil_tmp87 = __cil_tmp86 + 4;
24771#line 5238
24772 mem_207 = (PMDL *)__cil_tmp87;
24773#line 5238
24774 __cil_tmp88 = *mem_207;
24775#line 5238
24776 __cil_tmp89 = (enum _MEMORY_CACHING_TYPE )1;
24777#line 5238
24778 __cil_tmp90 = (void *)0;
24779#line 5238
24780 __cil_tmp91 = (enum _MM_PAGE_PRIORITY )32;
24781#line 5238
24782 tmp___0 = MmMapLockedPagesSpecifyCache(__cil_tmp88, (char)0, __cil_tmp89, __cil_tmp90,
24783 0UL, __cil_tmp91);
24784#line 5238
24785 userBuffer = (CHAR *)tmp___0;
24786 }
24787 }
24788 }
24789 {
24790#line 5240
24791 __cil_tmp92 = (void *)0;
24792#line 5240
24793 __cil_tmp93 = (unsigned int )__cil_tmp92;
24794#line 5240
24795 __cil_tmp94 = (unsigned int )userBuffer;
24796#line 5240
24797 if (__cil_tmp94 == __cil_tmp93) {
24798 {
24799#line 5243
24800 while (1) {
24801 while_160_continue: ;
24802 goto while_160_break;
24803 }
24804 while_160_break: ;
24805 }
24806#line 5244
24807 return (-1073741670L);
24808 } else {
24809
24810 }
24811 }
24812#line 5247
24813 __cil_tmp95 = (unsigned long )sectorsPerTrack;
24814#line 5247
24815 trackSize = __cil_tmp95 << byteToSectorShift;
24816#line 5249
24817 skew = (unsigned char)0;
24818#line 5250
24819 __cil_tmp96 = (unsigned int )driveMediaConstants;
24820#line 5250
24821 __cil_tmp97 = __cil_tmp96 + 54;
24822#line 5250
24823 mem_208 = (UCHAR *)__cil_tmp97;
24824#line 5250
24825 skewDelta = *mem_208;
24826#line 5251
24827 currentSector = firstSector;
24828 {
24829#line 5251
24830 while (1) {
24831 while_161_continue: ;
24832#line 5251
24833 if (currentSector < lastSector) {
24834
24835 } else {
24836 goto while_161_break;
24837 }
24838#line 5257
24839 __cil_tmp98 = (unsigned long )numberOfHeads;
24840#line 5257
24841 __cil_tmp99 = (unsigned long )sectorsPerTrack;
24842#line 5257
24843 __cil_tmp100 = currentSector / __cil_tmp99;
24844#line 5257
24845 __cil_tmp101 = __cil_tmp100 / __cil_tmp98;
24846#line 5257
24847 currentCylinder = (unsigned char )__cil_tmp101;
24848#line 5258
24849 __cil_tmp102 = (unsigned long )sectorsPerTrack;
24850#line 5258
24851 __cil_tmp103 = currentSector % __cil_tmp102;
24852#line 5258
24853 trackSector = (unsigned char )__cil_tmp103;
24854#line 5259
24855 __cil_tmp104 = (unsigned long )numberOfHeads;
24856#line 5259
24857 __cil_tmp105 = (unsigned long )sectorsPerTrack;
24858#line 5259
24859 __cil_tmp106 = currentSector / __cil_tmp105;
24860#line 5259
24861 __cil_tmp107 = __cil_tmp106 % __cil_tmp104;
24862#line 5259
24863 currentHead = (unsigned char )__cil_tmp107;
24864#line 5260
24865 __cil_tmp108 = (int )trackSector;
24866#line 5260
24867 __cil_tmp109 = (int )sectorsPerTrack;
24868#line 5260
24869 __cil_tmp110 = __cil_tmp109 - __cil_tmp108;
24870#line 5260
24871 numTransferSectors = (unsigned char )__cil_tmp110;
24872 {
24873#line 5261
24874 __cil_tmp111 = (unsigned long )numTransferSectors;
24875#line 5261
24876 __cil_tmp112 = lastSector - currentSector;
24877#line 5261
24878 if (__cil_tmp112 < __cil_tmp111) {
24879#line 5262
24880 __cil_tmp113 = lastSector - currentSector;
24881#line 5262
24882 numTransferSectors = (unsigned char )__cil_tmp113;
24883 } else {
24884
24885 }
24886 }
24887 {
24888#line 5272
24889 __cil_tmp114 = (unsigned int )DisketteExtension;
24890#line 5272
24891 __cil_tmp115 = __cil_tmp114 + 108;
24892#line 5272
24893 mem_209 = (ULONG *)__cil_tmp115;
24894#line 5272
24895 __cil_tmp116 = *mem_209;
24896#line 5272
24897 if (trackSize > __cil_tmp116) {
24898 {
24899#line 5276
24900 while (1) {
24901 while_162_continue: ;
24902 goto while_162_break;
24903 }
24904 while_162_break: ;
24905 }
24906 {
24907#line 5277
24908 FlAllocateIoBuffer(DisketteExtension, trackSize);
24909 }
24910 {
24911#line 5278
24912 __cil_tmp117 = (unsigned int )DisketteExtension;
24913#line 5278
24914 __cil_tmp118 = __cil_tmp117 + 124;
24915#line 5278
24916 mem_210 = (PUCHAR *)__cil_tmp118;
24917#line 5278
24918 __cil_tmp119 = *mem_210;
24919#line 5278
24920 if (! __cil_tmp119) {
24921 {
24922#line 5282
24923 while (1) {
24924 while_163_continue: ;
24925 goto while_163_break;
24926 }
24927 while_163_break: ;
24928 }
24929#line 5283
24930 return (-1073741670L);
24931 } else {
24932
24933 }
24934 }
24935#line 5285
24936 __cil_tmp120 = (unsigned int )DisketteExtension;
24937#line 5285
24938 __cil_tmp121 = __cil_tmp120 + 128;
24939#line 5285
24940 mem_211 = (PMDL *)__cil_tmp121;
24941#line 5285
24942 mdl = *mem_211;
24943#line 5286
24944 __cil_tmp122 = (unsigned int )DisketteExtension;
24945#line 5286
24946 __cil_tmp123 = __cil_tmp122 + 124;
24947#line 5286
24948 mem_212 = (PUCHAR *)__cil_tmp123;
24949#line 5286
24950 __cil_tmp124 = *mem_212;
24951#line 5286
24952 ioBuffer = (CHAR *)__cil_tmp124;
24953#line 5287
24954 ioOffset = 0UL;
24955#line 5288
24956 if (writeOperation) {
24957 {
24958#line 5292
24959 __cil_tmp125 = (void *)ioBuffer;
24960#line 5292
24961 __cil_tmp126 = currentSector - firstSector;
24962#line 5292
24963 __cil_tmp127 = __cil_tmp126 << byteToSectorShift;
24964#line 5292
24965 __cil_tmp128 = userBuffer + __cil_tmp127;
24966#line 5292
24967 __cil_tmp129 = (void const *)__cil_tmp128;
24968#line 5292
24969 __cil_tmp130 = (unsigned long )numTransferSectors;
24970#line 5292
24971 __cil_tmp131 = __cil_tmp130 << byteToSectorShift;
24972#line 5292
24973 __cil_tmp132 = (unsigned int )__cil_tmp131;
24974#line 5292
24975 memmove(__cil_tmp125, __cil_tmp129, __cil_tmp132);
24976 }
24977 } else {
24978
24979 }
24980 } else {
24981#line 5295
24982 __cil_tmp133 = (unsigned int )Irp;
24983#line 5295
24984 __cil_tmp134 = __cil_tmp133 + 4;
24985#line 5295
24986 mem_213 = (PMDL *)__cil_tmp134;
24987#line 5295
24988 mdl = *mem_213;
24989#line 5296
24990 __cil_tmp135 = currentSector - firstSector;
24991#line 5296
24992 ioOffset = __cil_tmp135 << byteToSectorShift;
24993 }
24994 }
24995 {
24996#line 5307
24997 __cil_tmp136 = (int )trackSector;
24998#line 5307
24999 __cil_tmp137 = (int )numTransferSectors;
25000#line 5307
25001 __cil_tmp138 = __cil_tmp137 + __cil_tmp136;
25002#line 5307
25003 __cil_tmp139 = (int )skew;
25004#line 5307
25005 if (__cil_tmp139 >= __cil_tmp138) {
25006#line 5308
25007 skew = (unsigned char)0;
25008 } else {
25009
25010 }
25011 }
25012 {
25013#line 5311
25014 __cil_tmp140 = (int )trackSector;
25015#line 5311
25016 __cil_tmp141 = (int )skew;
25017#line 5311
25018 if (__cil_tmp141 < __cil_tmp140) {
25019#line 5312
25020 skew = trackSector;
25021 } else {
25022
25023 }
25024 }
25025 {
25026#line 5317
25027 __cil_tmp142 = (unsigned long )trackSector;
25028#line 5317
25029 __cil_tmp143 = (unsigned long )skew;
25030#line 5317
25031 __cil_tmp144 = __cil_tmp143 - __cil_tmp142;
25032#line 5317
25033 __cil_tmp145 = __cil_tmp144 << byteToSectorShift;
25034#line 5317
25035 __cil_tmp146 = ioOffset + __cil_tmp145;
25036#line 5317
25037 __cil_tmp147 = (int )skew;
25038#line 5317
25039 __cil_tmp148 = (int )trackSector;
25040#line 5317
25041 __cil_tmp149 = (int )numTransferSectors;
25042#line 5317
25043 __cil_tmp150 = __cil_tmp149 + __cil_tmp148;
25044#line 5317
25045 __cil_tmp151 = __cil_tmp150 - __cil_tmp147;
25046#line 5317
25047 __cil_tmp152 = (unsigned char )__cil_tmp151;
25048#line 5317
25049 status = FlReadWriteTrack(DisketteExtension, mdl, __cil_tmp146, writeOperation,
25050 currentCylinder, currentHead, skew, __cil_tmp152, (unsigned char)1);
25051 }
25052#line 5330
25053 if (status >= 0L) {
25054 {
25055#line 5330
25056 __cil_tmp153 = (int )trackSector;
25057#line 5330
25058 __cil_tmp154 = (int )skew;
25059#line 5330
25060 if (__cil_tmp154 > __cil_tmp153) {
25061 {
25062#line 5331
25063 __cil_tmp155 = (int )trackSector;
25064#line 5331
25065 __cil_tmp156 = (int )skew;
25066#line 5331
25067 __cil_tmp157 = __cil_tmp156 - __cil_tmp155;
25068#line 5331
25069 __cil_tmp158 = (unsigned char )__cil_tmp157;
25070#line 5331
25071 status = FlReadWriteTrack(DisketteExtension, mdl, ioOffset, writeOperation,
25072 currentCylinder, currentHead, trackSector, __cil_tmp158,
25073 (unsigned char)0);
25074 }
25075 } else {
25076#line 5341
25077 __cil_tmp159 = (int )sectorsPerTrack;
25078#line 5341
25079 __cil_tmp160 = (int )trackSector;
25080#line 5341
25081 __cil_tmp161 = (int )numTransferSectors;
25082#line 5341
25083 __cil_tmp162 = __cil_tmp161 + __cil_tmp160;
25084#line 5341
25085 __cil_tmp163 = __cil_tmp162 % __cil_tmp159;
25086#line 5341
25087 skew = (unsigned char )__cil_tmp163;
25088 }
25089 }
25090 } else {
25091#line 5341
25092 __cil_tmp164 = (int )sectorsPerTrack;
25093#line 5341
25094 __cil_tmp165 = (int )trackSector;
25095#line 5341
25096 __cil_tmp166 = (int )numTransferSectors;
25097#line 5341
25098 __cil_tmp167 = __cil_tmp166 + __cil_tmp165;
25099#line 5341
25100 __cil_tmp168 = __cil_tmp167 % __cil_tmp164;
25101#line 5341
25102 skew = (unsigned char )__cil_tmp168;
25103 }
25104 {
25105#line 5344
25106 __cil_tmp169 = status >= 0L;
25107#line 5344
25108 if (! __cil_tmp169) {
25109 goto while_161_break;
25110 } else {
25111
25112 }
25113 }
25114#line 5353
25115 if (! writeOperation) {
25116 {
25117#line 5353
25118 __cil_tmp170 = (unsigned int )DisketteExtension;
25119#line 5353
25120 __cil_tmp171 = __cil_tmp170 + 108;
25121#line 5353
25122 mem_214 = (ULONG *)__cil_tmp171;
25123#line 5353
25124 __cil_tmp172 = *mem_214;
25125#line 5353
25126 if (trackSize > __cil_tmp172) {
25127 {
25128#line 5359
25129 __cil_tmp173 = currentSector - firstSector;
25130#line 5359
25131 __cil_tmp174 = __cil_tmp173 << byteToSectorShift;
25132#line 5359
25133 __cil_tmp175 = userBuffer + __cil_tmp174;
25134#line 5359
25135 __cil_tmp176 = (void *)__cil_tmp175;
25136#line 5359
25137 __cil_tmp177 = (void const *)ioBuffer;
25138#line 5359
25139 __cil_tmp178 = (unsigned long )numTransferSectors;
25140#line 5359
25141 __cil_tmp179 = __cil_tmp178 << byteToSectorShift;
25142#line 5359
25143 __cil_tmp180 = (unsigned int )__cil_tmp179;
25144#line 5359
25145 memmove(__cil_tmp176, __cil_tmp177, __cil_tmp180);
25146 }
25147 } else {
25148
25149 }
25150 }
25151 } else {
25152
25153 }
25154#line 5367
25155 __cil_tmp181 = (int )sectorsPerTrack;
25156#line 5367
25157 __cil_tmp182 = (int )skewDelta;
25158#line 5367
25159 __cil_tmp183 = (int )skew;
25160#line 5367
25161 __cil_tmp184 = __cil_tmp183 + __cil_tmp182;
25162#line 5367
25163 __cil_tmp185 = __cil_tmp184 % __cil_tmp181;
25164#line 5367
25165 skew = (unsigned char )__cil_tmp185;
25166#line 5251
25167 __cil_tmp186 = (unsigned long )numTransferSectors;
25168#line 5251
25169 currentSector = currentSector + __cil_tmp186;
25170 }
25171 while_161_break: ;
25172 }
25173#line 5370
25174 __cil_tmp187 = 24 + 4;
25175#line 5370
25176 __cil_tmp188 = (unsigned int )Irp;
25177#line 5370
25178 __cil_tmp189 = __cil_tmp188 + __cil_tmp187;
25179#line 5370
25180 __cil_tmp190 = currentSector - firstSector;
25181#line 5370
25182 mem_215 = (ULONG_PTR *)__cil_tmp189;
25183#line 5370
25184 *mem_215 = __cil_tmp190 << byteToSectorShift;
25185#line 5377
25186 if (status >= 0L) {
25187#line 5377
25188 if (firstSector == 0UL) {
25189 {
25190#line 5378
25191 __cil_tmp191 = (struct _BOOT_SECTOR_INFO *)userBuffer;
25192#line 5378
25193 FlConsolidateMediaTypeWithBootSector(DisketteExtension, __cil_tmp191);
25194 }
25195 } else {
25196
25197 }
25198 } else {
25199
25200 }
25201 {
25202#line 5385
25203 while (1) {
25204 while_164_continue: ;
25205 goto while_164_break;
25206 }
25207 while_164_break: ;
25208 }
25209#line 5386
25210 return (status);
25211}
25212}
25213#line 5389 "floppy.c"
25214NTSTATUS FlFormat(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp )
25215{ LARGE_INTEGER headSettleTime ;
25216 PIO_STACK_LOCATION irpSp ;
25217 PBAD_TRACK_NUMBER badTrackBuffer ;
25218 PFORMAT_PARAMETERS formatParameters ;
25219 PFORMAT_EX_PARAMETERS formatExParameters ;
25220 PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
25221 NTSTATUS ntStatus ;
25222 ULONG badTrackBufferLength ;
25223 DRIVE_MEDIA_TYPE driveMediaType ;
25224 UCHAR driveStatus ;
25225 UCHAR numberOfBadTracks ;
25226 UCHAR currentTrack ;
25227 UCHAR endTrack ;
25228 UCHAR whichSector ;
25229 UCHAR retryCount ;
25230 BOOLEAN bufferOverflow ;
25231 FDC_DISK_CHANGE_PARMS fdcDiskChangeParms ;
25232 ULONG length ;
25233 UCHAR tmp ;
25234 unsigned int __cil_tmp22 ;
25235 unsigned int __cil_tmp23 ;
25236 unsigned int __cil_tmp24 ;
25237 unsigned int __cil_tmp25 ;
25238 unsigned int __cil_tmp26 ;
25239 unsigned int __cil_tmp27 ;
25240 unsigned int __cil_tmp28 ;
25241 PVOID __cil_tmp29 ;
25242 int __cil_tmp30 ;
25243 int __cil_tmp31 ;
25244 int __cil_tmp32 ;
25245 int __cil_tmp33 ;
25246 int __cil_tmp34 ;
25247 unsigned long __cil_tmp35 ;
25248 unsigned int __cil_tmp36 ;
25249 unsigned int __cil_tmp37 ;
25250 unsigned int __cil_tmp38 ;
25251 unsigned int __cil_tmp39 ;
25252 ULONG __cil_tmp40 ;
25253 unsigned int __cil_tmp41 ;
25254 unsigned int __cil_tmp42 ;
25255 PVOID __cil_tmp43 ;
25256 void *__cil_tmp44 ;
25257 unsigned int __cil_tmp45 ;
25258 unsigned int __cil_tmp46 ;
25259 unsigned int __cil_tmp47 ;
25260 unsigned int __cil_tmp48 ;
25261 UCHAR __cil_tmp49 ;
25262 int __cil_tmp50 ;
25263 PDRIVE_MEDIA_LIMITS __cil_tmp51 ;
25264 MEDIA_TYPE __cil_tmp52 ;
25265 int __cil_tmp53 ;
25266 unsigned int __cil_tmp54 ;
25267 PDRIVE_MEDIA_CONSTANTS __cil_tmp55 ;
25268 MEDIA_TYPE __cil_tmp56 ;
25269 int __cil_tmp57 ;
25270 unsigned int __cil_tmp58 ;
25271 unsigned int __cil_tmp59 ;
25272 UCHAR __cil_tmp60 ;
25273 int __cil_tmp61 ;
25274 PDRIVE_MEDIA_LIMITS __cil_tmp62 ;
25275 unsigned int __cil_tmp63 ;
25276 unsigned int __cil_tmp64 ;
25277 DRIVE_MEDIA_TYPE __cil_tmp65 ;
25278 int __cil_tmp66 ;
25279 int __cil_tmp67 ;
25280 int __cil_tmp68 ;
25281 int __cil_tmp69 ;
25282 int __cil_tmp70 ;
25283 unsigned int __cil_tmp71 ;
25284 unsigned int __cil_tmp72 ;
25285 unsigned int __cil_tmp73 ;
25286 unsigned int __cil_tmp74 ;
25287 unsigned int __cil_tmp75 ;
25288 unsigned int __cil_tmp76 ;
25289 unsigned int __cil_tmp77 ;
25290 unsigned int __cil_tmp78 ;
25291 PDRIVE_MEDIA_CONSTANTS __cil_tmp79 ;
25292 unsigned int __cil_tmp80 ;
25293 unsigned int __cil_tmp81 ;
25294 unsigned int __cil_tmp82 ;
25295 unsigned int __cil_tmp83 ;
25296 unsigned int __cil_tmp84 ;
25297 USHORT __cil_tmp85 ;
25298 unsigned int __cil_tmp86 ;
25299 unsigned int __cil_tmp87 ;
25300 unsigned int __cil_tmp88 ;
25301 unsigned int __cil_tmp89 ;
25302 unsigned int __cil_tmp90 ;
25303 USHORT __cil_tmp91 ;
25304 unsigned int __cil_tmp92 ;
25305 unsigned int __cil_tmp93 ;
25306 unsigned int __cil_tmp94 ;
25307 unsigned int __cil_tmp95 ;
25308 unsigned int __cil_tmp96 ;
25309 unsigned int __cil_tmp97 ;
25310 USHORT __cil_tmp98 ;
25311 unsigned int __cil_tmp99 ;
25312 unsigned int __cil_tmp100 ;
25313 unsigned int __cil_tmp101 ;
25314 unsigned int __cil_tmp102 ;
25315 UCHAR __cil_tmp103 ;
25316 int __cil_tmp104 ;
25317 unsigned int __cil_tmp105 ;
25318 unsigned int __cil_tmp106 ;
25319 UCHAR __cil_tmp107 ;
25320 int __cil_tmp108 ;
25321 int __cil_tmp109 ;
25322 unsigned int __cil_tmp110 ;
25323 unsigned int __cil_tmp111 ;
25324 UCHAR __cil_tmp112 ;
25325 int __cil_tmp113 ;
25326 unsigned int __cil_tmp114 ;
25327 unsigned int __cil_tmp115 ;
25328 USHORT __cil_tmp116 ;
25329 int __cil_tmp117 ;
25330 int __cil_tmp118 ;
25331 int __cil_tmp119 ;
25332 int __cil_tmp120 ;
25333 unsigned int __cil_tmp121 ;
25334 unsigned int __cil_tmp122 ;
25335 ULONG __cil_tmp123 ;
25336 unsigned int __cil_tmp124 ;
25337 unsigned int __cil_tmp125 ;
25338 UCHAR __cil_tmp126 ;
25339 unsigned long __cil_tmp127 ;
25340 unsigned int __cil_tmp128 ;
25341 unsigned int __cil_tmp129 ;
25342 ULONG __cil_tmp130 ;
25343 ULONG __cil_tmp131 ;
25344 ULONG __cil_tmp132 ;
25345 unsigned int __cil_tmp133 ;
25346 unsigned int __cil_tmp134 ;
25347 ULONG __cil_tmp135 ;
25348 unsigned int __cil_tmp136 ;
25349 unsigned int __cil_tmp137 ;
25350 UCHAR __cil_tmp138 ;
25351 unsigned long __cil_tmp139 ;
25352 unsigned int __cil_tmp140 ;
25353 unsigned int __cil_tmp141 ;
25354 ULONG __cil_tmp142 ;
25355 ULONG __cil_tmp143 ;
25356 ULONG __cil_tmp144 ;
25357 KUSER_SHARED_DATA *__cil_tmp145 ;
25358 unsigned int __cil_tmp146 ;
25359 unsigned int __cil_tmp147 ;
25360 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp148 ;
25361 int __cil_tmp149 ;
25362 int __cil_tmp150 ;
25363 unsigned int __cil_tmp151 ;
25364 unsigned int __cil_tmp152 ;
25365 DRIVE_MEDIA_TYPE __cil_tmp153 ;
25366 int __cil_tmp154 ;
25367 int __cil_tmp155 ;
25368 unsigned int __cil_tmp156 ;
25369 unsigned int __cil_tmp157 ;
25370 unsigned int __cil_tmp158 ;
25371 unsigned int __cil_tmp159 ;
25372 unsigned int __cil_tmp160 ;
25373 unsigned int __cil_tmp161 ;
25374 unsigned int __cil_tmp162 ;
25375 unsigned int __cil_tmp163 ;
25376 unsigned int __cil_tmp164 ;
25377 unsigned int __cil_tmp165 ;
25378 unsigned int __cil_tmp166 ;
25379 unsigned int __cil_tmp167 ;
25380 unsigned int __cil_tmp168 ;
25381 unsigned int __cil_tmp169 ;
25382 unsigned int __cil_tmp170 ;
25383 unsigned int __cil_tmp171 ;
25384 unsigned int __cil_tmp172 ;
25385 unsigned int __cil_tmp173 ;
25386 UCHAR __cil_tmp174 ;
25387 int __cil_tmp175 ;
25388 unsigned int __cil_tmp176 ;
25389 unsigned int __cil_tmp177 ;
25390 UCHAR __cil_tmp178 ;
25391 int __cil_tmp179 ;
25392 int __cil_tmp180 ;
25393 int __cil_tmp181 ;
25394 int __cil_tmp182 ;
25395 unsigned int __cil_tmp183 ;
25396 unsigned int __cil_tmp184 ;
25397 unsigned int __cil_tmp185 ;
25398 unsigned int __cil_tmp186 ;
25399 UCHAR *__cil_tmp187 ;
25400 unsigned int __cil_tmp188 ;
25401 unsigned int __cil_tmp189 ;
25402 unsigned int __cil_tmp190 ;
25403 unsigned int __cil_tmp191 ;
25404 UCHAR *__cil_tmp192 ;
25405 void *__cil_tmp193 ;
25406 struct _MDL *__cil_tmp194 ;
25407 unsigned int __cil_tmp195 ;
25408 unsigned int __cil_tmp196 ;
25409 unsigned int __cil_tmp197 ;
25410 unsigned int __cil_tmp198 ;
25411 UCHAR __cil_tmp199 ;
25412 int __cil_tmp200 ;
25413 unsigned int __cil_tmp201 ;
25414 unsigned int __cil_tmp202 ;
25415 UCHAR __cil_tmp203 ;
25416 int __cil_tmp204 ;
25417 unsigned int __cil_tmp205 ;
25418 unsigned int __cil_tmp206 ;
25419 UCHAR __cil_tmp207 ;
25420 int __cil_tmp208 ;
25421 int __cil_tmp209 ;
25422 int __cil_tmp210 ;
25423 int __cil_tmp211 ;
25424 unsigned char __cil_tmp212 ;
25425 int __cil_tmp213 ;
25426 unsigned int __cil_tmp214 ;
25427 unsigned int __cil_tmp215 ;
25428 unsigned int __cil_tmp216 ;
25429 unsigned int __cil_tmp217 ;
25430 UCHAR __cil_tmp218 ;
25431 int __cil_tmp219 ;
25432 LARGE_INTEGER *__cil_tmp220 ;
25433 unsigned int __cil_tmp221 ;
25434 unsigned int __cil_tmp222 ;
25435 UCHAR __cil_tmp223 ;
25436 int __cil_tmp224 ;
25437 int __cil_tmp225 ;
25438 int __cil_tmp226 ;
25439 unsigned int __cil_tmp227 ;
25440 unsigned int __cil_tmp228 ;
25441 KUSER_SHARED_DATA *__cil_tmp229 ;
25442 unsigned int __cil_tmp230 ;
25443 unsigned int __cil_tmp231 ;
25444 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp232 ;
25445 int __cil_tmp233 ;
25446 int __cil_tmp234 ;
25447 unsigned int __cil_tmp235 ;
25448 unsigned int __cil_tmp236 ;
25449 unsigned int __cil_tmp237 ;
25450 unsigned int __cil_tmp238 ;
25451 unsigned int __cil_tmp239 ;
25452 unsigned int __cil_tmp240 ;
25453 unsigned int __cil_tmp241 ;
25454 unsigned int __cil_tmp242 ;
25455 unsigned int __cil_tmp243 ;
25456 unsigned int __cil_tmp244 ;
25457 unsigned int __cil_tmp245 ;
25458 unsigned int __cil_tmp246 ;
25459 unsigned int __cil_tmp247 ;
25460 unsigned int __cil_tmp248 ;
25461 UCHAR *__cil_tmp249 ;
25462 unsigned int __cil_tmp250 ;
25463 unsigned int __cil_tmp251 ;
25464 unsigned int __cil_tmp252 ;
25465 unsigned int __cil_tmp253 ;
25466 UCHAR *__cil_tmp254 ;
25467 void *__cil_tmp255 ;
25468 struct _MDL *__cil_tmp256 ;
25469 unsigned int __cil_tmp257 ;
25470 unsigned int __cil_tmp258 ;
25471 int __cil_tmp259 ;
25472 unsigned int __cil_tmp260 ;
25473 unsigned int __cil_tmp261 ;
25474 UCHAR __cil_tmp262 ;
25475 int __cil_tmp263 ;
25476 int __cil_tmp264 ;
25477 int __cil_tmp265 ;
25478 int __cil_tmp266 ;
25479 unsigned int __cil_tmp267 ;
25480 unsigned int __cil_tmp268 ;
25481 PUCHAR __cil_tmp269 ;
25482 PUCHAR __cil_tmp270 ;
25483 unsigned int __cil_tmp271 ;
25484 unsigned int __cil_tmp272 ;
25485 UCHAR __cil_tmp273 ;
25486 int __cil_tmp274 ;
25487 int __cil_tmp275 ;
25488 int __cil_tmp276 ;
25489 int __cil_tmp277 ;
25490 int __cil_tmp278 ;
25491 int __cil_tmp279 ;
25492 unsigned int __cil_tmp280 ;
25493 unsigned int __cil_tmp281 ;
25494 PUCHAR __cil_tmp282 ;
25495 PUCHAR __cil_tmp283 ;
25496 unsigned int __cil_tmp284 ;
25497 unsigned int __cil_tmp285 ;
25498 UCHAR __cil_tmp286 ;
25499 int __cil_tmp287 ;
25500 int __cil_tmp288 ;
25501 int __cil_tmp289 ;
25502 int __cil_tmp290 ;
25503 int __cil_tmp291 ;
25504 int __cil_tmp292 ;
25505 unsigned int __cil_tmp293 ;
25506 unsigned int __cil_tmp294 ;
25507 PUCHAR __cil_tmp295 ;
25508 PUCHAR __cil_tmp296 ;
25509 unsigned int __cil_tmp297 ;
25510 unsigned int __cil_tmp298 ;
25511 unsigned int __cil_tmp299 ;
25512 unsigned int __cil_tmp300 ;
25513 USHORT __cil_tmp301 ;
25514 int __cil_tmp302 ;
25515 int __cil_tmp303 ;
25516 int __cil_tmp304 ;
25517 unsigned int __cil_tmp305 ;
25518 unsigned int __cil_tmp306 ;
25519 PUCHAR __cil_tmp307 ;
25520 PUCHAR __cil_tmp308 ;
25521 int __cil_tmp309 ;
25522 int __cil_tmp310 ;
25523 int __cil_tmp311 ;
25524 int __cil_tmp312 ;
25525 int __cil_tmp313 ;
25526 unsigned int __cil_tmp314 ;
25527 unsigned int __cil_tmp315 ;
25528 PUCHAR __cil_tmp316 ;
25529 PUCHAR __cil_tmp317 ;
25530 unsigned int __cil_tmp318 ;
25531 unsigned int __cil_tmp319 ;
25532 int __cil_tmp320 ;
25533 int __cil_tmp321 ;
25534 unsigned int __cil_tmp322 ;
25535 unsigned int __cil_tmp323 ;
25536 USHORT __cil_tmp324 ;
25537 unsigned int __cil_tmp325 ;
25538 unsigned int __cil_tmp326 ;
25539 unsigned int __cil_tmp327 ;
25540 unsigned int __cil_tmp328 ;
25541 unsigned int __cil_tmp329 ;
25542 unsigned int __cil_tmp330 ;
25543 unsigned int __cil_tmp331 ;
25544 unsigned int __cil_tmp332 ;
25545 unsigned int __cil_tmp333 ;
25546 unsigned int __cil_tmp334 ;
25547 UCHAR __cil_tmp335 ;
25548 int __cil_tmp336 ;
25549 unsigned int __cil_tmp337 ;
25550 unsigned int __cil_tmp338 ;
25551 UCHAR __cil_tmp339 ;
25552 int __cil_tmp340 ;
25553 int __cil_tmp341 ;
25554 int __cil_tmp342 ;
25555 int __cil_tmp343 ;
25556 int __cil_tmp344 ;
25557 unsigned int __cil_tmp345 ;
25558 unsigned int __cil_tmp346 ;
25559 unsigned int __cil_tmp347 ;
25560 unsigned int __cil_tmp348 ;
25561 unsigned int __cil_tmp349 ;
25562 unsigned int __cil_tmp350 ;
25563 unsigned int __cil_tmp351 ;
25564 unsigned int __cil_tmp352 ;
25565 unsigned int __cil_tmp353 ;
25566 unsigned int __cil_tmp354 ;
25567 unsigned int __cil_tmp355 ;
25568 unsigned int __cil_tmp356 ;
25569 unsigned int __cil_tmp357 ;
25570 unsigned int __cil_tmp358 ;
25571 unsigned int __cil_tmp359 ;
25572 unsigned int __cil_tmp360 ;
25573 unsigned int __cil_tmp361 ;
25574 unsigned int __cil_tmp362 ;
25575 unsigned int __cil_tmp363 ;
25576 unsigned int __cil_tmp364 ;
25577 unsigned int __cil_tmp365 ;
25578 unsigned int __cil_tmp366 ;
25579 unsigned int __cil_tmp367 ;
25580 unsigned int __cil_tmp368 ;
25581 unsigned int __cil_tmp369 ;
25582 unsigned int __cil_tmp370 ;
25583 unsigned int __cil_tmp371 ;
25584 unsigned int __cil_tmp372 ;
25585 UCHAR *__cil_tmp373 ;
25586 unsigned int __cil_tmp374 ;
25587 unsigned int __cil_tmp375 ;
25588 unsigned int __cil_tmp376 ;
25589 unsigned int __cil_tmp377 ;
25590 UCHAR *__cil_tmp378 ;
25591 unsigned int __cil_tmp379 ;
25592 unsigned int __cil_tmp380 ;
25593 PMDL __cil_tmp381 ;
25594 int __cil_tmp382 ;
25595 unsigned int __cil_tmp383 ;
25596 unsigned int __cil_tmp384 ;
25597 unsigned int __cil_tmp385 ;
25598 unsigned int __cil_tmp386 ;
25599 UCHAR __cil_tmp387 ;
25600 int __cil_tmp388 ;
25601 unsigned int __cil_tmp389 ;
25602 unsigned int __cil_tmp390 ;
25603 unsigned int __cil_tmp391 ;
25604 unsigned int __cil_tmp392 ;
25605 UCHAR __cil_tmp393 ;
25606 int __cil_tmp394 ;
25607 unsigned int __cil_tmp395 ;
25608 unsigned int __cil_tmp396 ;
25609 unsigned int __cil_tmp397 ;
25610 unsigned int __cil_tmp398 ;
25611 UCHAR __cil_tmp399 ;
25612 int __cil_tmp400 ;
25613 unsigned int __cil_tmp401 ;
25614 unsigned int __cil_tmp402 ;
25615 unsigned int __cil_tmp403 ;
25616 unsigned int __cil_tmp404 ;
25617 unsigned int __cil_tmp405 ;
25618 unsigned int __cil_tmp406 ;
25619 UCHAR __cil_tmp407 ;
25620 unsigned int __cil_tmp408 ;
25621 unsigned int __cil_tmp409 ;
25622 unsigned int __cil_tmp410 ;
25623 unsigned int __cil_tmp411 ;
25624 UCHAR __cil_tmp412 ;
25625 int __cil_tmp413 ;
25626 int __cil_tmp414 ;
25627 int __cil_tmp415 ;
25628 int __cil_tmp416 ;
25629 int __cil_tmp417 ;
25630 int __cil_tmp418 ;
25631 KUSER_SHARED_DATA *__cil_tmp419 ;
25632 unsigned int __cil_tmp420 ;
25633 unsigned int __cil_tmp421 ;
25634 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp422 ;
25635 int __cil_tmp423 ;
25636 unsigned int __cil_tmp424 ;
25637 unsigned int __cil_tmp425 ;
25638 unsigned int __cil_tmp426 ;
25639 unsigned int __cil_tmp427 ;
25640 unsigned int __cil_tmp428 ;
25641 unsigned int __cil_tmp429 ;
25642 unsigned int __cil_tmp430 ;
25643 unsigned int __cil_tmp431 ;
25644 unsigned int __cil_tmp432 ;
25645 unsigned int __cil_tmp433 ;
25646 unsigned int __cil_tmp434 ;
25647 unsigned int __cil_tmp435 ;
25648 unsigned int __cil_tmp436 ;
25649 unsigned int __cil_tmp437 ;
25650 UCHAR *__cil_tmp438 ;
25651 unsigned int __cil_tmp439 ;
25652 unsigned int __cil_tmp440 ;
25653 unsigned int __cil_tmp441 ;
25654 unsigned int __cil_tmp442 ;
25655 UCHAR *__cil_tmp443 ;
25656 void *__cil_tmp444 ;
25657 struct _MDL *__cil_tmp445 ;
25658 int __cil_tmp446 ;
25659 unsigned int __cil_tmp447 ;
25660 unsigned int __cil_tmp448 ;
25661 unsigned int __cil_tmp449 ;
25662 unsigned int __cil_tmp450 ;
25663 UCHAR __cil_tmp451 ;
25664 int __cil_tmp452 ;
25665 unsigned int __cil_tmp453 ;
25666 unsigned int __cil_tmp454 ;
25667 PDEVICE_OBJECT __cil_tmp455 ;
25668 int __cil_tmp456 ;
25669 int __cil_tmp457 ;
25670 int __cil_tmp458 ;
25671 int __cil_tmp459 ;
25672 unsigned long __cil_tmp460 ;
25673 void *__cil_tmp461 ;
25674 FDC_DISK_CHANGE_PARMS *__cil_tmp462 ;
25675 unsigned int __cil_tmp463 ;
25676 unsigned int __cil_tmp464 ;
25677 UCHAR __cil_tmp465 ;
25678 int __cil_tmp466 ;
25679 int __cil_tmp467 ;
25680 int __cil_tmp468 ;
25681 int __cil_tmp469 ;
25682 unsigned int __cil_tmp470 ;
25683 unsigned int __cil_tmp471 ;
25684 unsigned long __cil_tmp472 ;
25685 unsigned int __cil_tmp473 ;
25686 unsigned int __cil_tmp474 ;
25687 PVOID __cil_tmp475 ;
25688 int __cil_tmp476 ;
25689 PBAD_TRACK_NUMBER __cil_tmp477 ;
25690 int __cil_tmp478 ;
25691 int __cil_tmp479 ;
25692 int __cil_tmp480 ;
25693 int __cil_tmp481 ;
25694 int __cil_tmp482 ;
25695 int __cil_tmp483 ;
25696 int __cil_tmp484 ;
25697 struct _IO_STACK_LOCATION **mem_485 ;
25698 PVOID *mem_486 ;
25699 ULONG *mem_487 ;
25700 PVOID *mem_488 ;
25701 ULONG *mem_489 ;
25702 UCHAR *mem_490 ;
25703 DRIVE_MEDIA_TYPE *mem_491 ;
25704 MEDIA_TYPE *mem_492 ;
25705 MEDIA_TYPE *mem_493 ;
25706 UCHAR *mem_494 ;
25707 DRIVE_MEDIA_TYPE *mem_495 ;
25708 MEDIA_TYPE *mem_496 ;
25709 MEDIA_TYPE *mem_497 ;
25710 DRIVE_MEDIA_TYPE *mem_498 ;
25711 DRIVE_MEDIA_CONSTANTS *mem_499 ;
25712 USHORT *mem_500 ;
25713 UCHAR *mem_501 ;
25714 USHORT *mem_502 ;
25715 UCHAR *mem_503 ;
25716 USHORT *mem_504 ;
25717 ULONG *mem_505 ;
25718 UCHAR *mem_506 ;
25719 UCHAR *mem_507 ;
25720 UCHAR *mem_508 ;
25721 USHORT *mem_509 ;
25722 ULONG *mem_510 ;
25723 ULONG *mem_511 ;
25724 UCHAR *mem_512 ;
25725 ULONG *mem_513 ;
25726 ULONG *mem_514 ;
25727 UCHAR *mem_515 ;
25728 ULONG *mem_516 ;
25729 ALTERNATIVE_ARCHITECTURE_TYPE *mem_517 ;
25730 DRIVE_MEDIA_TYPE *mem_518 ;
25731 BOOLEAN *mem_519 ;
25732 UCHAR *mem_520 ;
25733 UCHAR *mem_521 ;
25734 UCHAR *mem_522 ;
25735 UCHAR *mem_523 ;
25736 UCHAR *mem_524 ;
25737 UCHAR *mem_525 ;
25738 UCHAR *mem_526 ;
25739 UCHAR *mem_527 ;
25740 UCHAR *mem_528 ;
25741 UCHAR *mem_529 ;
25742 UCHAR *mem_530 ;
25743 ULONG *mem_531 ;
25744 LONG *mem_532 ;
25745 ALTERNATIVE_ARCHITECTURE_TYPE *mem_533 ;
25746 UCHAR *mem_534 ;
25747 UCHAR *mem_535 ;
25748 UCHAR *mem_536 ;
25749 BOOLEAN *mem_537 ;
25750 UCHAR *mem_538 ;
25751 PUCHAR *mem_539 ;
25752 UCHAR *mem_540 ;
25753 PUCHAR *mem_541 ;
25754 UCHAR *mem_542 ;
25755 PUCHAR *mem_543 ;
25756 USHORT *mem_544 ;
25757 PUCHAR *mem_545 ;
25758 PUCHAR *mem_546 ;
25759 UCHAR *mem_547 ;
25760 USHORT *mem_548 ;
25761 UCHAR *mem_549 ;
25762 UCHAR *mem_550 ;
25763 UCHAR *mem_551 ;
25764 UCHAR *mem_552 ;
25765 UCHAR *mem_553 ;
25766 UCHAR *mem_554 ;
25767 UCHAR *mem_555 ;
25768 UCHAR *mem_556 ;
25769 UCHAR *mem_557 ;
25770 UCHAR *mem_558 ;
25771 UCHAR *mem_559 ;
25772 UCHAR *mem_560 ;
25773 PMDL *mem_561 ;
25774 UCHAR *mem_562 ;
25775 UCHAR *mem_563 ;
25776 UCHAR *mem_564 ;
25777 BOOLEAN *mem_565 ;
25778 UCHAR *mem_566 ;
25779 UCHAR *mem_567 ;
25780 ALTERNATIVE_ARCHITECTURE_TYPE *mem_568 ;
25781 UCHAR *mem_569 ;
25782 UCHAR *mem_570 ;
25783 UCHAR *mem_571 ;
25784 UCHAR *mem_572 ;
25785 PDEVICE_OBJECT *mem_573 ;
25786 UCHAR *mem_574 ;
25787 UCHAR *mem_575 ;
25788 PVOID *mem_576 ;
25789
25790 {
25791#line 5429
25792 numberOfBadTracks = (unsigned char)0;
25793#line 5434
25794 bufferOverflow = (unsigned char)0;
25795 {
25796#line 5440
25797 while (1) {
25798 while_165_continue: ;
25799 goto while_165_break;
25800 }
25801 while_165_break: ;
25802 }
25803#line 5442
25804 __cil_tmp22 = 24 + 8;
25805#line 5442
25806 __cil_tmp23 = 0 + __cil_tmp22;
25807#line 5442
25808 __cil_tmp24 = 64 + __cil_tmp23;
25809#line 5442
25810 __cil_tmp25 = (unsigned int )Irp;
25811#line 5442
25812 __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
25813#line 5442
25814 mem_485 = (struct _IO_STACK_LOCATION **)__cil_tmp26;
25815#line 5442
25816 irpSp = *mem_485;
25817#line 5443
25818 __cil_tmp27 = (unsigned int )Irp;
25819#line 5443
25820 __cil_tmp28 = __cil_tmp27 + 12;
25821#line 5443
25822 mem_486 = (PVOID *)__cil_tmp28;
25823#line 5443
25824 __cil_tmp29 = *mem_486;
25825#line 5443
25826 formatParameters = (struct _FORMAT_PARAMETERS *)__cil_tmp29;
25827 {
25828#line 5444
25829 __cil_tmp30 = 11 << 2;
25830#line 5444
25831 __cil_tmp31 = 3 << 14;
25832#line 5444
25833 __cil_tmp32 = 7 << 16;
25834#line 5444
25835 __cil_tmp33 = __cil_tmp32 | __cil_tmp31;
25836#line 5444
25837 __cil_tmp34 = __cil_tmp33 | __cil_tmp30;
25838#line 5444
25839 __cil_tmp35 = (unsigned long )__cil_tmp34;
25840#line 5444
25841 __cil_tmp36 = 0 + 8;
25842#line 5444
25843 __cil_tmp37 = 4 + __cil_tmp36;
25844#line 5444
25845 __cil_tmp38 = (unsigned int )irpSp;
25846#line 5444
25847 __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
25848#line 5444
25849 mem_487 = (ULONG *)__cil_tmp39;
25850#line 5444
25851 __cil_tmp40 = *mem_487;
25852#line 5444
25853 if (__cil_tmp40 == __cil_tmp35) {
25854#line 5446
25855 __cil_tmp41 = (unsigned int )Irp;
25856#line 5446
25857 __cil_tmp42 = __cil_tmp41 + 12;
25858#line 5446
25859 mem_488 = (PVOID *)__cil_tmp42;
25860#line 5446
25861 __cil_tmp43 = *mem_488;
25862#line 5446
25863 formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp43;
25864 } else {
25865#line 5449
25866 __cil_tmp44 = (void *)0;
25867#line 5449
25868 formatExParameters = (struct _FORMAT_EX_PARAMETERS *)__cil_tmp44;
25869 }
25870 }
25871 {
25872#line 5464
25873 while (1) {
25874 while_166_continue: ;
25875 goto while_166_break;
25876 }
25877 while_166_break: ;
25878 }
25879#line 5466
25880 __cil_tmp45 = (unsigned int )irpSp;
25881#line 5466
25882 __cil_tmp46 = __cil_tmp45 + 4;
25883#line 5466
25884 mem_489 = (ULONG *)__cil_tmp46;
25885#line 5466
25886 badTrackBufferLength = *mem_489;
25887#line 5475
25888 __cil_tmp47 = (unsigned int )DisketteExtension;
25889#line 5475
25890 __cil_tmp48 = __cil_tmp47 + 174;
25891#line 5475
25892 mem_490 = (UCHAR *)__cil_tmp48;
25893#line 5475
25894 __cil_tmp49 = *mem_490;
25895#line 5475
25896 __cil_tmp50 = (int )__cil_tmp49;
25897#line 5475
25898 __cil_tmp51 = DriveMediaLimits + __cil_tmp50;
25899#line 5475
25900 mem_491 = (DRIVE_MEDIA_TYPE *)__cil_tmp51;
25901#line 5475
25902 driveMediaType = *mem_491;
25903 {
25904#line 5478
25905 while (1) {
25906 while_167_continue: ;
25907 {
25908#line 5478
25909 mem_492 = (MEDIA_TYPE *)formatParameters;
25910#line 5478
25911 __cil_tmp52 = *mem_492;
25912#line 5478
25913 __cil_tmp53 = (int )__cil_tmp52;
25914#line 5478
25915 __cil_tmp54 = (unsigned int )driveMediaType;
25916#line 5478
25917 __cil_tmp55 = DriveMediaConstants + __cil_tmp54;
25918#line 5478
25919 mem_493 = (MEDIA_TYPE *)__cil_tmp55;
25920#line 5478
25921 __cil_tmp56 = *mem_493;
25922#line 5478
25923 __cil_tmp57 = (int )__cil_tmp56;
25924#line 5478
25925 if (__cil_tmp57 != __cil_tmp53) {
25926 {
25927#line 5478
25928 __cil_tmp58 = (unsigned int )DisketteExtension;
25929#line 5478
25930 __cil_tmp59 = __cil_tmp58 + 174;
25931#line 5478
25932 mem_494 = (UCHAR *)__cil_tmp59;
25933#line 5478
25934 __cil_tmp60 = *mem_494;
25935#line 5478
25936 __cil_tmp61 = (int )__cil_tmp60;
25937#line 5478
25938 __cil_tmp62 = DriveMediaLimits + __cil_tmp61;
25939#line 5478
25940 __cil_tmp63 = (unsigned int )__cil_tmp62;
25941#line 5478
25942 __cil_tmp64 = __cil_tmp63 + 32;
25943#line 5478
25944 mem_495 = (DRIVE_MEDIA_TYPE *)__cil_tmp64;
25945#line 5478
25946 __cil_tmp65 = *mem_495;
25947#line 5478
25948 __cil_tmp66 = (int )__cil_tmp65;
25949#line 5478
25950 __cil_tmp67 = (int )driveMediaType;
25951#line 5478
25952 __cil_tmp68 = __cil_tmp67 > __cil_tmp66;
25953#line 5478
25954 if (! __cil_tmp68) {
25955 goto while_167_break;
25956 } else {
25957
25958 }
25959 }
25960 } else {
25961 goto while_167_break;
25962 }
25963 }
25964#line 5483
25965 __cil_tmp69 = (int )driveMediaType;
25966#line 5483
25967 __cil_tmp70 = __cil_tmp69 - 1;
25968#line 5483
25969 driveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp70;
25970 }
25971 while_167_break: ;
25972 }
25973#line 5486
25974 __cil_tmp71 = (unsigned int )driveMediaType;
25975#line 5486
25976 driveMediaConstants = DriveMediaConstants + __cil_tmp71;
25977#line 5493
25978 __cil_tmp72 = (unsigned int )DisketteExtension;
25979#line 5493
25980 __cil_tmp73 = __cil_tmp72 + 184;
25981#line 5493
25982 mem_496 = (MEDIA_TYPE *)__cil_tmp73;
25983#line 5493
25984 mem_497 = (MEDIA_TYPE *)formatParameters;
25985#line 5493
25986 *mem_496 = *mem_497;
25987#line 5494
25988 __cil_tmp74 = (unsigned int )DisketteExtension;
25989#line 5494
25990 __cil_tmp75 = __cil_tmp74 + 216;
25991#line 5494
25992 mem_498 = (DRIVE_MEDIA_TYPE *)__cil_tmp75;
25993#line 5494
25994 *mem_498 = driveMediaType;
25995#line 5495
25996 __cil_tmp76 = (unsigned int )DisketteExtension;
25997#line 5495
25998 __cil_tmp77 = __cil_tmp76 + 308;
25999#line 5495
26000 __cil_tmp78 = (unsigned int )driveMediaType;
26001#line 5495
26002 __cil_tmp79 = DriveMediaConstants + __cil_tmp78;
26003#line 5495
26004 mem_499 = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp77;
26005#line 5495
26006 *mem_499 = *__cil_tmp79;
26007#line 5498
26008 if (formatExParameters) {
26009#line 5499
26010 __cil_tmp80 = 308 + 38;
26011#line 5499
26012 __cil_tmp81 = (unsigned int )DisketteExtension;
26013#line 5499
26014 __cil_tmp82 = __cil_tmp81 + __cil_tmp80;
26015#line 5499
26016 __cil_tmp83 = (unsigned int )formatExParameters;
26017#line 5499
26018 __cil_tmp84 = __cil_tmp83 + 50;
26019#line 5499
26020 mem_500 = (USHORT *)__cil_tmp84;
26021#line 5499
26022 __cil_tmp85 = *mem_500;
26023#line 5499
26024 mem_501 = (UCHAR *)__cil_tmp82;
26025#line 5499
26026 *mem_501 = (unsigned char )__cil_tmp85;
26027#line 5501
26028 __cil_tmp86 = 308 + 40;
26029#line 5501
26030 __cil_tmp87 = (unsigned int )DisketteExtension;
26031#line 5501
26032 __cil_tmp88 = __cil_tmp87 + __cil_tmp86;
26033#line 5501
26034 __cil_tmp89 = (unsigned int )formatExParameters;
26035#line 5501
26036 __cil_tmp90 = __cil_tmp89 + 48;
26037#line 5501
26038 mem_502 = (USHORT *)__cil_tmp90;
26039#line 5501
26040 __cil_tmp91 = *mem_502;
26041#line 5501
26042 mem_503 = (UCHAR *)__cil_tmp88;
26043#line 5501
26044 *mem_503 = (unsigned char )__cil_tmp91;
26045 } else {
26046
26047 }
26048#line 5505
26049 __cil_tmp92 = (unsigned int )DisketteExtension;
26050#line 5505
26051 __cil_tmp93 = __cil_tmp92 + 308;
26052#line 5505
26053 driveMediaConstants = (DRIVE_MEDIA_CONSTANTS *)__cil_tmp93;
26054#line 5507
26055 __cil_tmp94 = (unsigned int )DisketteExtension;
26056#line 5507
26057 __cil_tmp95 = __cil_tmp94 + 176;
26058#line 5507
26059 __cil_tmp96 = (unsigned int )driveMediaConstants;
26060#line 5507
26061 __cil_tmp97 = __cil_tmp96 + 36;
26062#line 5507
26063 mem_504 = (USHORT *)__cil_tmp97;
26064#line 5507
26065 __cil_tmp98 = *mem_504;
26066#line 5507
26067 mem_505 = (ULONG *)__cil_tmp95;
26068#line 5507
26069 *mem_505 = (unsigned long )__cil_tmp98;
26070#line 5509
26071 __cil_tmp99 = (unsigned int )DisketteExtension;
26072#line 5509
26073 __cil_tmp100 = __cil_tmp99 + 180;
26074#line 5509
26075 __cil_tmp101 = (unsigned int )driveMediaConstants;
26076#line 5509
26077 __cil_tmp102 = __cil_tmp101 + 51;
26078#line 5509
26079 mem_506 = (UCHAR *)__cil_tmp102;
26080#line 5509
26081 __cil_tmp103 = *mem_506;
26082#line 5509
26083 __cil_tmp104 = (int )__cil_tmp103;
26084#line 5509
26085 __cil_tmp105 = (unsigned int )driveMediaConstants;
26086#line 5509
26087 __cil_tmp106 = __cil_tmp105 + 48;
26088#line 5509
26089 mem_507 = (UCHAR *)__cil_tmp106;
26090#line 5509
26091 __cil_tmp107 = *mem_507;
26092#line 5509
26093 __cil_tmp108 = (int )__cil_tmp107;
26094#line 5509
26095 __cil_tmp109 = 1 + __cil_tmp108;
26096#line 5509
26097 __cil_tmp110 = (unsigned int )driveMediaConstants;
26098#line 5509
26099 __cil_tmp111 = __cil_tmp110 + 38;
26100#line 5509
26101 mem_508 = (UCHAR *)__cil_tmp111;
26102#line 5509
26103 __cil_tmp112 = *mem_508;
26104#line 5509
26105 __cil_tmp113 = (int )__cil_tmp112;
26106#line 5509
26107 __cil_tmp114 = (unsigned int )driveMediaConstants;
26108#line 5509
26109 __cil_tmp115 = __cil_tmp114 + 36;
26110#line 5509
26111 mem_509 = (USHORT *)__cil_tmp115;
26112#line 5509
26113 __cil_tmp116 = *mem_509;
26114#line 5509
26115 __cil_tmp117 = (int )__cil_tmp116;
26116#line 5509
26117 __cil_tmp118 = __cil_tmp117 * __cil_tmp113;
26118#line 5509
26119 __cil_tmp119 = __cil_tmp118 * __cil_tmp109;
26120#line 5509
26121 __cil_tmp120 = __cil_tmp119 * __cil_tmp104;
26122#line 5509
26123 mem_510 = (ULONG *)__cil_tmp100;
26124#line 5509
26125 *mem_510 = (unsigned long )__cil_tmp120;
26126#line 5515
26127 __cil_tmp121 = (unsigned int )formatParameters;
26128#line 5515
26129 __cil_tmp122 = __cil_tmp121 + 40;
26130#line 5515
26131 mem_511 = (ULONG *)__cil_tmp122;
26132#line 5515
26133 __cil_tmp123 = *mem_511;
26134#line 5515
26135 __cil_tmp124 = (unsigned int )driveMediaConstants;
26136#line 5515
26137 __cil_tmp125 = __cil_tmp124 + 51;
26138#line 5515
26139 mem_512 = (UCHAR *)__cil_tmp125;
26140#line 5515
26141 __cil_tmp126 = *mem_512;
26142#line 5515
26143 __cil_tmp127 = (unsigned long )__cil_tmp126;
26144#line 5515
26145 __cil_tmp128 = (unsigned int )formatParameters;
26146#line 5515
26147 __cil_tmp129 = __cil_tmp128 + 32;
26148#line 5515
26149 mem_513 = (ULONG *)__cil_tmp129;
26150#line 5515
26151 __cil_tmp130 = *mem_513;
26152#line 5515
26153 __cil_tmp131 = __cil_tmp130 * __cil_tmp127;
26154#line 5515
26155 __cil_tmp132 = __cil_tmp131 + __cil_tmp123;
26156#line 5515
26157 currentTrack = (unsigned char )__cil_tmp132;
26158#line 5519
26159 __cil_tmp133 = (unsigned int )formatParameters;
26160#line 5519
26161 __cil_tmp134 = __cil_tmp133 + 44;
26162#line 5519
26163 mem_514 = (ULONG *)__cil_tmp134;
26164#line 5519
26165 __cil_tmp135 = *mem_514;
26166#line 5519
26167 __cil_tmp136 = (unsigned int )driveMediaConstants;
26168#line 5519
26169 __cil_tmp137 = __cil_tmp136 + 51;
26170#line 5519
26171 mem_515 = (UCHAR *)__cil_tmp137;
26172#line 5519
26173 __cil_tmp138 = *mem_515;
26174#line 5519
26175 __cil_tmp139 = (unsigned long )__cil_tmp138;
26176#line 5519
26177 __cil_tmp140 = (unsigned int )formatParameters;
26178#line 5519
26179 __cil_tmp141 = __cil_tmp140 + 36;
26180#line 5519
26181 mem_516 = (ULONG *)__cil_tmp141;
26182#line 5519
26183 __cil_tmp142 = *mem_516;
26184#line 5519
26185 __cil_tmp143 = __cil_tmp142 * __cil_tmp139;
26186#line 5519
26187 __cil_tmp144 = __cil_tmp143 + __cil_tmp135;
26188#line 5519
26189 endTrack = (unsigned char )__cil_tmp144;
26190 {
26191#line 5528
26192 while (1) {
26193 while_168_continue: ;
26194 goto while_168_break;
26195 }
26196 while_168_break: ;
26197 }
26198 {
26199#line 5535
26200 __cil_tmp145 = (KUSER_SHARED_DATA * const )4292804608U;
26201#line 5535
26202 __cil_tmp146 = (unsigned int )__cil_tmp145;
26203#line 5535
26204 __cil_tmp147 = __cil_tmp146 + 732;
26205#line 5535
26206 mem_517 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp147;
26207#line 5535
26208 __cil_tmp148 = *mem_517;
26209#line 5535
26210 __cil_tmp149 = (int )__cil_tmp148;
26211#line 5535
26212 if (__cil_tmp149 == 1) {
26213 {
26214#line 5537
26215 FlHdbit(DisketteExtension);
26216 }
26217 } else {
26218
26219 }
26220 }
26221 {
26222#line 5541
26223 __cil_tmp150 = (int )driveMediaType;
26224#line 5541
26225 __cil_tmp151 = (unsigned int )DisketteExtension;
26226#line 5541
26227 __cil_tmp152 = __cil_tmp151 + 140;
26228#line 5541
26229 mem_518 = (DRIVE_MEDIA_TYPE *)__cil_tmp152;
26230#line 5541
26231 __cil_tmp153 = *mem_518;
26232#line 5541
26233 __cil_tmp154 = (int )__cil_tmp153;
26234#line 5541
26235 if (__cil_tmp154 != __cil_tmp150) {
26236 {
26237#line 5543
26238 ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
26239 }
26240 {
26241#line 5545
26242 __cil_tmp155 = ntStatus >= 0L;
26243#line 5545
26244 if (! __cil_tmp155) {
26245#line 5547
26246 return (ntStatus);
26247 } else {
26248
26249 }
26250 }
26251 } else {
26252
26253 }
26254 }
26255#line 5555
26256 __cil_tmp156 = (unsigned int )DisketteExtension;
26257#line 5555
26258 __cil_tmp157 = __cil_tmp156 + 250;
26259#line 5555
26260 mem_519 = (BOOLEAN *)__cil_tmp157;
26261#line 5555
26262 *mem_519 = (unsigned char)0;
26263 {
26264#line 5561
26265 while (1) {
26266 while_169_continue: ;
26267#line 5567
26268 __cil_tmp158 = 0 * 1U;
26269#line 5567
26270 __cil_tmp159 = 112 + __cil_tmp158;
26271#line 5567
26272 __cil_tmp160 = (unsigned int )DisketteExtension;
26273#line 5567
26274 __cil_tmp161 = __cil_tmp160 + __cil_tmp159;
26275#line 5567
26276 mem_520 = (UCHAR *)__cil_tmp161;
26277#line 5567
26278 *mem_520 = (unsigned char)16;
26279#line 5568
26280 __cil_tmp162 = 1 * 1U;
26281#line 5568
26282 __cil_tmp163 = 112 + __cil_tmp162;
26283#line 5568
26284 __cil_tmp164 = (unsigned int )DisketteExtension;
26285#line 5568
26286 __cil_tmp165 = __cil_tmp164 + __cil_tmp163;
26287#line 5568
26288 __cil_tmp166 = (unsigned int )DisketteExtension;
26289#line 5568
26290 __cil_tmp167 = __cil_tmp166 + 248;
26291#line 5568
26292 mem_521 = (UCHAR *)__cil_tmp165;
26293#line 5568
26294 mem_522 = (UCHAR *)__cil_tmp167;
26295#line 5568
26296 *mem_521 = *mem_522;
26297#line 5569
26298 __cil_tmp168 = 2 * 1U;
26299#line 5569
26300 __cil_tmp169 = 112 + __cil_tmp168;
26301#line 5569
26302 __cil_tmp170 = (unsigned int )DisketteExtension;
26303#line 5569
26304 __cil_tmp171 = __cil_tmp170 + __cil_tmp169;
26305#line 5569
26306 __cil_tmp172 = (unsigned int )driveMediaConstants;
26307#line 5569
26308 __cil_tmp173 = __cil_tmp172 + 49;
26309#line 5569
26310 mem_523 = (UCHAR *)__cil_tmp173;
26311#line 5569
26312 __cil_tmp174 = *mem_523;
26313#line 5569
26314 __cil_tmp175 = (int )__cil_tmp174;
26315#line 5569
26316 __cil_tmp176 = (unsigned int )driveMediaConstants;
26317#line 5569
26318 __cil_tmp177 = __cil_tmp176 + 51;
26319#line 5569
26320 mem_524 = (UCHAR *)__cil_tmp177;
26321#line 5569
26322 __cil_tmp178 = *mem_524;
26323#line 5569
26324 __cil_tmp179 = (int )__cil_tmp178;
26325#line 5569
26326 __cil_tmp180 = (int )currentTrack;
26327#line 5569
26328 __cil_tmp181 = __cil_tmp180 / __cil_tmp179;
26329#line 5569
26330 __cil_tmp182 = __cil_tmp181 << __cil_tmp175;
26331#line 5569
26332 mem_525 = (UCHAR *)__cil_tmp171;
26333#line 5569
26334 *mem_525 = (unsigned char )__cil_tmp182;
26335 {
26336#line 5577
26337 while (1) {
26338 while_170_continue: ;
26339 goto while_170_break;
26340 }
26341 while_170_break: ;
26342 }
26343 {
26344#line 5579
26345 __cil_tmp183 = 0 * 1U;
26346#line 5579
26347 __cil_tmp184 = 112 + __cil_tmp183;
26348#line 5579
26349 __cil_tmp185 = (unsigned int )DisketteExtension;
26350#line 5579
26351 __cil_tmp186 = __cil_tmp185 + __cil_tmp184;
26352#line 5579
26353 __cil_tmp187 = (UCHAR *)__cil_tmp186;
26354#line 5579
26355 __cil_tmp188 = 0 * 1U;
26356#line 5579
26357 __cil_tmp189 = 112 + __cil_tmp188;
26358#line 5579
26359 __cil_tmp190 = (unsigned int )DisketteExtension;
26360#line 5579
26361 __cil_tmp191 = __cil_tmp190 + __cil_tmp189;
26362#line 5579
26363 __cil_tmp192 = (UCHAR *)__cil_tmp191;
26364#line 5579
26365 __cil_tmp193 = (void *)0;
26366#line 5579
26367 __cil_tmp194 = (struct _MDL *)__cil_tmp193;
26368#line 5579
26369 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp187, __cil_tmp192, __cil_tmp194,
26370 0UL, 0UL);
26371 }
26372#line 5586
26373 if (ntStatus >= 0L) {
26374 {
26375#line 5588
26376 __cil_tmp195 = 0 * 1U;
26377#line 5588
26378 __cil_tmp196 = 112 + __cil_tmp195;
26379#line 5588
26380 __cil_tmp197 = (unsigned int )DisketteExtension;
26381#line 5588
26382 __cil_tmp198 = __cil_tmp197 + __cil_tmp196;
26383#line 5588
26384 mem_526 = (UCHAR *)__cil_tmp198;
26385#line 5588
26386 __cil_tmp199 = *mem_526;
26387#line 5588
26388 __cil_tmp200 = (int )__cil_tmp199;
26389#line 5588
26390 if (__cil_tmp200 & 32) {
26391 {
26392#line 5588
26393 __cil_tmp201 = (unsigned int )driveMediaConstants;
26394#line 5588
26395 __cil_tmp202 = __cil_tmp201 + 49;
26396#line 5588
26397 mem_527 = (UCHAR *)__cil_tmp202;
26398#line 5588
26399 __cil_tmp203 = *mem_527;
26400#line 5588
26401 __cil_tmp204 = (int )__cil_tmp203;
26402#line 5588
26403 __cil_tmp205 = (unsigned int )driveMediaConstants;
26404#line 5588
26405 __cil_tmp206 = __cil_tmp205 + 51;
26406#line 5588
26407 mem_528 = (UCHAR *)__cil_tmp206;
26408#line 5588
26409 __cil_tmp207 = *mem_528;
26410#line 5588
26411 __cil_tmp208 = (int )__cil_tmp207;
26412#line 5588
26413 __cil_tmp209 = (int )currentTrack;
26414#line 5588
26415 __cil_tmp210 = __cil_tmp209 / __cil_tmp208;
26416#line 5588
26417 __cil_tmp211 = __cil_tmp210 << __cil_tmp204;
26418#line 5588
26419 __cil_tmp212 = (unsigned char )__cil_tmp211;
26420#line 5588
26421 __cil_tmp213 = (int )__cil_tmp212;
26422#line 5588
26423 __cil_tmp214 = 1 * 1U;
26424#line 5588
26425 __cil_tmp215 = 112 + __cil_tmp214;
26426#line 5588
26427 __cil_tmp216 = (unsigned int )DisketteExtension;
26428#line 5588
26429 __cil_tmp217 = __cil_tmp216 + __cil_tmp215;
26430#line 5588
26431 mem_529 = (UCHAR *)__cil_tmp217;
26432#line 5588
26433 __cil_tmp218 = *mem_529;
26434#line 5588
26435 __cil_tmp219 = (int )__cil_tmp218;
26436#line 5588
26437 if (__cil_tmp219 == __cil_tmp213) {
26438 {
26439#line 5598
26440 __cil_tmp220 = & headSettleTime;
26441#line 5598
26442 __cil_tmp221 = (unsigned int )driveMediaConstants;
26443#line 5598
26444 __cil_tmp222 = __cil_tmp221 + 42;
26445#line 5598
26446 mem_530 = (UCHAR *)__cil_tmp222;
26447#line 5598
26448 __cil_tmp223 = *mem_530;
26449#line 5598
26450 __cil_tmp224 = (int )__cil_tmp223;
26451#line 5598
26452 __cil_tmp225 = 10000 * __cil_tmp224;
26453#line 5598
26454 __cil_tmp226 = - __cil_tmp225;
26455#line 5598
26456 mem_531 = (ULONG *)__cil_tmp220;
26457#line 5598
26458 *mem_531 = (unsigned long )__cil_tmp226;
26459#line 5600
26460 __cil_tmp227 = 0 + 4;
26461#line 5600
26462 __cil_tmp228 = (unsigned int )(& headSettleTime) + __cil_tmp227;
26463#line 5600
26464 mem_532 = (LONG *)__cil_tmp228;
26465#line 5600
26466 *mem_532 = -1L;
26467#line 5602
26468 KeDelayExecutionThread((char)0, (unsigned char)0, & headSettleTime);
26469 }
26470 {
26471#line 5607
26472 __cil_tmp229 = (KUSER_SHARED_DATA * const )4292804608U;
26473#line 5607
26474 __cil_tmp230 = (unsigned int )__cil_tmp229;
26475#line 5607
26476 __cil_tmp231 = __cil_tmp230 + 732;
26477#line 5607
26478 mem_533 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp231;
26479#line 5607
26480 __cil_tmp232 = *mem_533;
26481#line 5607
26482 __cil_tmp233 = (int )__cil_tmp232;
26483#line 5607
26484 __cil_tmp234 = __cil_tmp233 == 1;
26485#line 5607
26486 if (! __cil_tmp234) {
26487 {
26488#line 5619
26489 __cil_tmp235 = 0 * 1U;
26490#line 5619
26491 __cil_tmp236 = 112 + __cil_tmp235;
26492#line 5619
26493 __cil_tmp237 = (unsigned int )DisketteExtension;
26494#line 5619
26495 __cil_tmp238 = __cil_tmp237 + __cil_tmp236;
26496#line 5619
26497 mem_534 = (UCHAR *)__cil_tmp238;
26498#line 5619
26499 *mem_534 = (unsigned char)84;
26500#line 5621
26501 __cil_tmp239 = 1 * 1U;
26502#line 5621
26503 __cil_tmp240 = 112 + __cil_tmp239;
26504#line 5621
26505 __cil_tmp241 = (unsigned int )DisketteExtension;
26506#line 5621
26507 __cil_tmp242 = __cil_tmp241 + __cil_tmp240;
26508#line 5621
26509 __cil_tmp243 = (unsigned int )DisketteExtension;
26510#line 5621
26511 __cil_tmp244 = __cil_tmp243 + 248;
26512#line 5621
26513 mem_535 = (UCHAR *)__cil_tmp242;
26514#line 5621
26515 mem_536 = (UCHAR *)__cil_tmp244;
26516#line 5621
26517 *mem_535 = *mem_536;
26518#line 5624
26519 __cil_tmp245 = 0 * 1U;
26520#line 5624
26521 __cil_tmp246 = 112 + __cil_tmp245;
26522#line 5624
26523 __cil_tmp247 = (unsigned int )DisketteExtension;
26524#line 5624
26525 __cil_tmp248 = __cil_tmp247 + __cil_tmp246;
26526#line 5624
26527 __cil_tmp249 = (UCHAR *)__cil_tmp248;
26528#line 5624
26529 __cil_tmp250 = 0 * 1U;
26530#line 5624
26531 __cil_tmp251 = 112 + __cil_tmp250;
26532#line 5624
26533 __cil_tmp252 = (unsigned int )DisketteExtension;
26534#line 5624
26535 __cil_tmp253 = __cil_tmp252 + __cil_tmp251;
26536#line 5624
26537 __cil_tmp254 = (UCHAR *)__cil_tmp253;
26538#line 5624
26539 __cil_tmp255 = (void *)0;
26540#line 5624
26541 __cil_tmp256 = (struct _MDL *)__cil_tmp255;
26542#line 5624
26543 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp249, __cil_tmp254,
26544 __cil_tmp256, 0UL, 0UL);
26545 }
26546 } else {
26547
26548 }
26549 }
26550 } else {
26551 goto _L;
26552 }
26553 }
26554 } else {
26555 _L:
26556 {
26557#line 5641
26558 while (1) {
26559 while_171_continue: ;
26560 goto while_171_break;
26561 }
26562 while_171_break: ;
26563 }
26564#line 5643
26565 __cil_tmp257 = (unsigned int )DisketteExtension;
26566#line 5643
26567 __cil_tmp258 = __cil_tmp257 + 104;
26568#line 5643
26569 mem_537 = (BOOLEAN *)__cil_tmp258;
26570#line 5643
26571 *mem_537 = (unsigned char)1;
26572#line 5645
26573 ntStatus = -1073741464L;
26574 }
26575 }
26576 } else {
26577
26578 }
26579 {
26580#line 5649
26581 __cil_tmp259 = ntStatus >= 0L;
26582#line 5649
26583 if (! __cil_tmp259) {
26584 {
26585#line 5654
26586 while (1) {
26587 while_172_continue: ;
26588 goto while_172_break;
26589 }
26590 while_172_break: ;
26591 }
26592#line 5656
26593 return (ntStatus);
26594 } else {
26595
26596 }
26597 }
26598#line 5663
26599 whichSector = (unsigned char)0;
26600 {
26601#line 5663
26602 while (1) {
26603 while_173_continue: ;
26604 {
26605#line 5663
26606 __cil_tmp260 = (unsigned int )driveMediaConstants;
26607#line 5663
26608 __cil_tmp261 = __cil_tmp260 + 38;
26609#line 5663
26610 mem_538 = (UCHAR *)__cil_tmp261;
26611#line 5663
26612 __cil_tmp262 = *mem_538;
26613#line 5663
26614 __cil_tmp263 = (int )__cil_tmp262;
26615#line 5663
26616 __cil_tmp264 = (int )whichSector;
26617#line 5663
26618 if (__cil_tmp264 < __cil_tmp263) {
26619
26620 } else {
26621 goto while_173_break;
26622 }
26623 }
26624#line 5667
26625 __cil_tmp265 = (int )whichSector;
26626#line 5667
26627 __cil_tmp266 = __cil_tmp265 * 4;
26628#line 5667
26629 __cil_tmp267 = (unsigned int )DisketteExtension;
26630#line 5667
26631 __cil_tmp268 = __cil_tmp267 + 124;
26632#line 5667
26633 mem_539 = (PUCHAR *)__cil_tmp268;
26634#line 5667
26635 __cil_tmp269 = *mem_539;
26636#line 5667
26637 __cil_tmp270 = __cil_tmp269 + __cil_tmp266;
26638#line 5667
26639 __cil_tmp271 = (unsigned int )driveMediaConstants;
26640#line 5667
26641 __cil_tmp272 = __cil_tmp271 + 51;
26642#line 5667
26643 mem_540 = (UCHAR *)__cil_tmp272;
26644#line 5667
26645 __cil_tmp273 = *mem_540;
26646#line 5667
26647 __cil_tmp274 = (int )__cil_tmp273;
26648#line 5667
26649 __cil_tmp275 = (int )currentTrack;
26650#line 5667
26651 __cil_tmp276 = __cil_tmp275 / __cil_tmp274;
26652#line 5667
26653 *__cil_tmp270 = (unsigned char )__cil_tmp276;
26654#line 5669
26655 __cil_tmp277 = (int )whichSector;
26656#line 5669
26657 __cil_tmp278 = __cil_tmp277 * 4;
26658#line 5669
26659 __cil_tmp279 = __cil_tmp278 + 1;
26660#line 5669
26661 __cil_tmp280 = (unsigned int )DisketteExtension;
26662#line 5669
26663 __cil_tmp281 = __cil_tmp280 + 124;
26664#line 5669
26665 mem_541 = (PUCHAR *)__cil_tmp281;
26666#line 5669
26667 __cil_tmp282 = *mem_541;
26668#line 5669
26669 __cil_tmp283 = __cil_tmp282 + __cil_tmp279;
26670#line 5669
26671 __cil_tmp284 = (unsigned int )driveMediaConstants;
26672#line 5669
26673 __cil_tmp285 = __cil_tmp284 + 51;
26674#line 5669
26675 mem_542 = (UCHAR *)__cil_tmp285;
26676#line 5669
26677 __cil_tmp286 = *mem_542;
26678#line 5669
26679 __cil_tmp287 = (int )__cil_tmp286;
26680#line 5669
26681 __cil_tmp288 = (int )currentTrack;
26682#line 5669
26683 __cil_tmp289 = __cil_tmp288 % __cil_tmp287;
26684#line 5669
26685 *__cil_tmp283 = (unsigned char )__cil_tmp289;
26686#line 5671
26687 if (formatExParameters) {
26688#line 5672
26689 __cil_tmp290 = (int )whichSector;
26690#line 5672
26691 __cil_tmp291 = __cil_tmp290 * 4;
26692#line 5672
26693 __cil_tmp292 = __cil_tmp291 + 2;
26694#line 5672
26695 __cil_tmp293 = (unsigned int )DisketteExtension;
26696#line 5672
26697 __cil_tmp294 = __cil_tmp293 + 124;
26698#line 5672
26699 mem_543 = (PUCHAR *)__cil_tmp294;
26700#line 5672
26701 __cil_tmp295 = *mem_543;
26702#line 5672
26703 __cil_tmp296 = __cil_tmp295 + __cil_tmp292;
26704#line 5672
26705 __cil_tmp297 = whichSector * 2U;
26706#line 5672
26707 __cil_tmp298 = 52 + __cil_tmp297;
26708#line 5672
26709 __cil_tmp299 = (unsigned int )formatExParameters;
26710#line 5672
26711 __cil_tmp300 = __cil_tmp299 + __cil_tmp298;
26712#line 5672
26713 mem_544 = (USHORT *)__cil_tmp300;
26714#line 5672
26715 __cil_tmp301 = *mem_544;
26716#line 5672
26717 *__cil_tmp296 = (unsigned char )__cil_tmp301;
26718 } else {
26719#line 5675
26720 __cil_tmp302 = (int )whichSector;
26721#line 5675
26722 __cil_tmp303 = __cil_tmp302 * 4;
26723#line 5675
26724 __cil_tmp304 = __cil_tmp303 + 2;
26725#line 5675
26726 __cil_tmp305 = (unsigned int )DisketteExtension;
26727#line 5675
26728 __cil_tmp306 = __cil_tmp305 + 124;
26729#line 5675
26730 mem_545 = (PUCHAR *)__cil_tmp306;
26731#line 5675
26732 __cil_tmp307 = *mem_545;
26733#line 5675
26734 __cil_tmp308 = __cil_tmp307 + __cil_tmp304;
26735#line 5675
26736 __cil_tmp309 = (int )whichSector;
26737#line 5675
26738 __cil_tmp310 = __cil_tmp309 + 1;
26739#line 5675
26740 *__cil_tmp308 = (unsigned char )__cil_tmp310;
26741 }
26742#line 5678
26743 __cil_tmp311 = (int )whichSector;
26744#line 5678
26745 __cil_tmp312 = __cil_tmp311 * 4;
26746#line 5678
26747 __cil_tmp313 = __cil_tmp312 + 3;
26748#line 5678
26749 __cil_tmp314 = (unsigned int )DisketteExtension;
26750#line 5678
26751 __cil_tmp315 = __cil_tmp314 + 124;
26752#line 5678
26753 mem_546 = (PUCHAR *)__cil_tmp315;
26754#line 5678
26755 __cil_tmp316 = *mem_546;
26756#line 5678
26757 __cil_tmp317 = __cil_tmp316 + __cil_tmp313;
26758#line 5678
26759 __cil_tmp318 = (unsigned int )driveMediaConstants;
26760#line 5678
26761 __cil_tmp319 = __cil_tmp318 + 35;
26762#line 5678
26763 mem_547 = (UCHAR *)__cil_tmp319;
26764#line 5678
26765 *__cil_tmp317 = *mem_547;
26766 {
26767#line 5689
26768 while (1) {
26769 while_174_continue: ;
26770 goto while_174_break;
26771 }
26772 while_174_break: ;
26773 }
26774#line 5663
26775 __cil_tmp320 = (int )whichSector;
26776#line 5663
26777 __cil_tmp321 = __cil_tmp320 + 1;
26778#line 5663
26779 whichSector = (unsigned char )__cil_tmp321;
26780 }
26781 while_173_break: ;
26782 }
26783#line 5696
26784 retryCount = (unsigned char)0;
26785 {
26786#line 5698
26787 while (1) {
26788 while_175_continue: ;
26789#line 5702
26790 __cil_tmp322 = (unsigned int )driveMediaConstants;
26791#line 5702
26792 __cil_tmp323 = __cil_tmp322 + 36;
26793#line 5702
26794 mem_548 = (USHORT *)__cil_tmp323;
26795#line 5702
26796 __cil_tmp324 = *mem_548;
26797#line 5702
26798 length = (unsigned long )__cil_tmp324;
26799#line 5708
26800 __cil_tmp325 = 0 * 1U;
26801#line 5708
26802 __cil_tmp326 = 112 + __cil_tmp325;
26803#line 5708
26804 __cil_tmp327 = (unsigned int )DisketteExtension;
26805#line 5708
26806 __cil_tmp328 = __cil_tmp327 + __cil_tmp326;
26807#line 5708
26808 mem_549 = (UCHAR *)__cil_tmp328;
26809#line 5708
26810 *mem_549 = (unsigned char)71;
26811#line 5710
26812 __cil_tmp329 = 1 * 1U;
26813#line 5710
26814 __cil_tmp330 = 112 + __cil_tmp329;
26815#line 5710
26816 __cil_tmp331 = (unsigned int )DisketteExtension;
26817#line 5710
26818 __cil_tmp332 = __cil_tmp331 + __cil_tmp330;
26819#line 5710
26820 __cil_tmp333 = (unsigned int )DisketteExtension;
26821#line 5710
26822 __cil_tmp334 = __cil_tmp333 + 248;
26823#line 5710
26824 mem_550 = (UCHAR *)__cil_tmp334;
26825#line 5710
26826 __cil_tmp335 = *mem_550;
26827#line 5710
26828 __cil_tmp336 = (int )__cil_tmp335;
26829#line 5710
26830 __cil_tmp337 = (unsigned int )driveMediaConstants;
26831#line 5710
26832 __cil_tmp338 = __cil_tmp337 + 51;
26833#line 5710
26834 mem_551 = (UCHAR *)__cil_tmp338;
26835#line 5710
26836 __cil_tmp339 = *mem_551;
26837#line 5710
26838 __cil_tmp340 = (int )__cil_tmp339;
26839#line 5710
26840 __cil_tmp341 = (int )currentTrack;
26841#line 5710
26842 __cil_tmp342 = __cil_tmp341 % __cil_tmp340;
26843#line 5710
26844 __cil_tmp343 = __cil_tmp342 << 2;
26845#line 5710
26846 __cil_tmp344 = __cil_tmp343 | __cil_tmp336;
26847#line 5710
26848 mem_552 = (UCHAR *)__cil_tmp332;
26849#line 5710
26850 *mem_552 = (unsigned char )__cil_tmp344;
26851#line 5713
26852 __cil_tmp345 = 2 * 1U;
26853#line 5713
26854 __cil_tmp346 = 112 + __cil_tmp345;
26855#line 5713
26856 __cil_tmp347 = (unsigned int )DisketteExtension;
26857#line 5713
26858 __cil_tmp348 = __cil_tmp347 + __cil_tmp346;
26859#line 5713
26860 __cil_tmp349 = (unsigned int )driveMediaConstants;
26861#line 5713
26862 __cil_tmp350 = __cil_tmp349 + 35;
26863#line 5713
26864 mem_553 = (UCHAR *)__cil_tmp348;
26865#line 5713
26866 mem_554 = (UCHAR *)__cil_tmp350;
26867#line 5713
26868 *mem_553 = *mem_554;
26869#line 5715
26870 __cil_tmp351 = 3 * 1U;
26871#line 5715
26872 __cil_tmp352 = 112 + __cil_tmp351;
26873#line 5715
26874 __cil_tmp353 = (unsigned int )DisketteExtension;
26875#line 5715
26876 __cil_tmp354 = __cil_tmp353 + __cil_tmp352;
26877#line 5715
26878 __cil_tmp355 = (unsigned int )driveMediaConstants;
26879#line 5715
26880 __cil_tmp356 = __cil_tmp355 + 38;
26881#line 5715
26882 mem_555 = (UCHAR *)__cil_tmp354;
26883#line 5715
26884 mem_556 = (UCHAR *)__cil_tmp356;
26885#line 5715
26886 *mem_555 = *mem_556;
26887#line 5717
26888 __cil_tmp357 = 4 * 1U;
26889#line 5717
26890 __cil_tmp358 = 112 + __cil_tmp357;
26891#line 5717
26892 __cil_tmp359 = (unsigned int )DisketteExtension;
26893#line 5717
26894 __cil_tmp360 = __cil_tmp359 + __cil_tmp358;
26895#line 5717
26896 __cil_tmp361 = (unsigned int )driveMediaConstants;
26897#line 5717
26898 __cil_tmp362 = __cil_tmp361 + 40;
26899#line 5717
26900 mem_557 = (UCHAR *)__cil_tmp360;
26901#line 5717
26902 mem_558 = (UCHAR *)__cil_tmp362;
26903#line 5717
26904 *mem_557 = *mem_558;
26905#line 5719
26906 __cil_tmp363 = 5 * 1U;
26907#line 5719
26908 __cil_tmp364 = 112 + __cil_tmp363;
26909#line 5719
26910 __cil_tmp365 = (unsigned int )DisketteExtension;
26911#line 5719
26912 __cil_tmp366 = __cil_tmp365 + __cil_tmp364;
26913#line 5719
26914 __cil_tmp367 = (unsigned int )driveMediaConstants;
26915#line 5719
26916 __cil_tmp368 = __cil_tmp367 + 41;
26917#line 5719
26918 mem_559 = (UCHAR *)__cil_tmp366;
26919#line 5719
26920 mem_560 = (UCHAR *)__cil_tmp368;
26921#line 5719
26922 *mem_559 = *mem_560;
26923 {
26924#line 5735
26925 while (1) {
26926 while_176_continue: ;
26927 goto while_176_break;
26928 }
26929 while_176_break: ;
26930 }
26931 {
26932#line 5736
26933 __cil_tmp369 = 0 * 1U;
26934#line 5736
26935 __cil_tmp370 = 112 + __cil_tmp369;
26936#line 5736
26937 __cil_tmp371 = (unsigned int )DisketteExtension;
26938#line 5736
26939 __cil_tmp372 = __cil_tmp371 + __cil_tmp370;
26940#line 5736
26941 __cil_tmp373 = (UCHAR *)__cil_tmp372;
26942#line 5736
26943 __cil_tmp374 = 0 * 1U;
26944#line 5736
26945 __cil_tmp375 = 112 + __cil_tmp374;
26946#line 5736
26947 __cil_tmp376 = (unsigned int )DisketteExtension;
26948#line 5736
26949 __cil_tmp377 = __cil_tmp376 + __cil_tmp375;
26950#line 5736
26951 __cil_tmp378 = (UCHAR *)__cil_tmp377;
26952#line 5736
26953 __cil_tmp379 = (unsigned int )DisketteExtension;
26954#line 5736
26955 __cil_tmp380 = __cil_tmp379 + 128;
26956#line 5736
26957 mem_561 = (PMDL *)__cil_tmp380;
26958#line 5736
26959 __cil_tmp381 = *mem_561;
26960#line 5736
26961 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp373, __cil_tmp378, __cil_tmp381,
26962 0UL, length);
26963 }
26964 {
26965#line 5743
26966 __cil_tmp382 = ntStatus >= 0L;
26967#line 5743
26968 if (! __cil_tmp382) {
26969 {
26970#line 5748
26971 while (1) {
26972 while_177_continue: ;
26973 goto while_177_break;
26974 }
26975 while_177_break: ;
26976 }
26977 } else {
26978
26979 }
26980 }
26981#line 5751
26982 if (ntStatus >= 0L) {
26983 {
26984#line 5757
26985 __cil_tmp383 = 0 * 1U;
26986#line 5757
26987 __cil_tmp384 = 112 + __cil_tmp383;
26988#line 5757
26989 __cil_tmp385 = (unsigned int )DisketteExtension;
26990#line 5757
26991 __cil_tmp386 = __cil_tmp385 + __cil_tmp384;
26992#line 5757
26993 mem_562 = (UCHAR *)__cil_tmp386;
26994#line 5757
26995 __cil_tmp387 = *mem_562;
26996#line 5757
26997 __cil_tmp388 = (int )__cil_tmp387;
26998#line 5757
26999 if (__cil_tmp388 & 208) {
27000 goto _L___0;
27001 } else {
27002 {
27003#line 5757
27004 __cil_tmp389 = 1 * 1U;
27005#line 5757
27006 __cil_tmp390 = 112 + __cil_tmp389;
27007#line 5757
27008 __cil_tmp391 = (unsigned int )DisketteExtension;
27009#line 5757
27010 __cil_tmp392 = __cil_tmp391 + __cil_tmp390;
27011#line 5757
27012 mem_563 = (UCHAR *)__cil_tmp392;
27013#line 5757
27014 __cil_tmp393 = *mem_563;
27015#line 5757
27016 __cil_tmp394 = (int )__cil_tmp393;
27017#line 5757
27018 if (__cil_tmp394 & 16) {
27019 goto _L___0;
27020 } else {
27021 {
27022#line 5757
27023 __cil_tmp395 = 2 * 1U;
27024#line 5757
27025 __cil_tmp396 = 112 + __cil_tmp395;
27026#line 5757
27027 __cil_tmp397 = (unsigned int )DisketteExtension;
27028#line 5757
27029 __cil_tmp398 = __cil_tmp397 + __cil_tmp396;
27030#line 5757
27031 mem_564 = (UCHAR *)__cil_tmp398;
27032#line 5757
27033 __cil_tmp399 = *mem_564;
27034#line 5757
27035 __cil_tmp400 = (int )__cil_tmp399;
27036#line 5757
27037 if (__cil_tmp400 != 0) {
27038 _L___0:
27039 {
27040#line 5775
27041 while (1) {
27042 while_178_continue: ;
27043 goto while_178_break;
27044 }
27045 while_178_break: ;
27046 }
27047 {
27048#line 5777
27049 __cil_tmp401 = (unsigned int )DisketteExtension;
27050#line 5777
27051 __cil_tmp402 = __cil_tmp401 + 104;
27052#line 5777
27053 mem_565 = (BOOLEAN *)__cil_tmp402;
27054#line 5777
27055 *mem_565 = (unsigned char)1;
27056#line 5779
27057 __cil_tmp403 = 1 * 1U;
27058#line 5779
27059 __cil_tmp404 = 112 + __cil_tmp403;
27060#line 5779
27061 __cil_tmp405 = (unsigned int )DisketteExtension;
27062#line 5779
27063 __cil_tmp406 = __cil_tmp405 + __cil_tmp404;
27064#line 5779
27065 mem_566 = (UCHAR *)__cil_tmp406;
27066#line 5779
27067 __cil_tmp407 = *mem_566;
27068#line 5779
27069 __cil_tmp408 = 2 * 1U;
27070#line 5779
27071 __cil_tmp409 = 112 + __cil_tmp408;
27072#line 5779
27073 __cil_tmp410 = (unsigned int )DisketteExtension;
27074#line 5779
27075 __cil_tmp411 = __cil_tmp410 + __cil_tmp409;
27076#line 5779
27077 mem_567 = (UCHAR *)__cil_tmp411;
27078#line 5779
27079 __cil_tmp412 = *mem_567;
27080#line 5779
27081 ntStatus = FlInterpretError(__cil_tmp407, __cil_tmp412);
27082 }
27083 } else {
27084
27085 }
27086 }
27087 }
27088 }
27089 }
27090 }
27091 } else {
27092
27093 }
27094 {
27095#line 5698
27096 __cil_tmp413 = ntStatus >= 0L;
27097#line 5698
27098 if (! __cil_tmp413) {
27099#line 5698
27100 tmp = retryCount;
27101#line 5698
27102 __cil_tmp414 = (int )retryCount;
27103#line 5698
27104 __cil_tmp415 = __cil_tmp414 + 1;
27105#line 5698
27106 retryCount = (unsigned char )__cil_tmp415;
27107 {
27108#line 5698
27109 __cil_tmp416 = (int )tmp;
27110#line 5698
27111 __cil_tmp417 = __cil_tmp416 < 3;
27112#line 5698
27113 if (! __cil_tmp417) {
27114 goto while_175_break;
27115 } else {
27116
27117 }
27118 }
27119 } else {
27120 goto while_175_break;
27121 }
27122 }
27123 }
27124 while_175_break: ;
27125 }
27126 {
27127#line 5788
27128 __cil_tmp418 = ntStatus >= 0L;
27129#line 5788
27130 if (! __cil_tmp418) {
27131 {
27132#line 5790
27133 __cil_tmp419 = (KUSER_SHARED_DATA * const )4292804608U;
27134#line 5790
27135 __cil_tmp420 = (unsigned int )__cil_tmp419;
27136#line 5790
27137 __cil_tmp421 = __cil_tmp420 + 732;
27138#line 5790
27139 mem_568 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp421;
27140#line 5790
27141 __cil_tmp422 = *mem_568;
27142#line 5790
27143 __cil_tmp423 = (int )__cil_tmp422;
27144#line 5790
27145 if (__cil_tmp423 == 1) {
27146 {
27147#line 5791
27148 __cil_tmp424 = 0 * 1U;
27149#line 5791
27150 __cil_tmp425 = 112 + __cil_tmp424;
27151#line 5791
27152 __cil_tmp426 = (unsigned int )DisketteExtension;
27153#line 5791
27154 __cil_tmp427 = __cil_tmp426 + __cil_tmp425;
27155#line 5791
27156 mem_569 = (UCHAR *)__cil_tmp427;
27157#line 5791
27158 *mem_569 = (unsigned char)14;
27159#line 5792
27160 __cil_tmp428 = 1 * 1U;
27161#line 5792
27162 __cil_tmp429 = 112 + __cil_tmp428;
27163#line 5792
27164 __cil_tmp430 = (unsigned int )DisketteExtension;
27165#line 5792
27166 __cil_tmp431 = __cil_tmp430 + __cil_tmp429;
27167#line 5792
27168 __cil_tmp432 = (unsigned int )DisketteExtension;
27169#line 5792
27170 __cil_tmp433 = __cil_tmp432 + 248;
27171#line 5792
27172 mem_570 = (UCHAR *)__cil_tmp431;
27173#line 5792
27174 mem_571 = (UCHAR *)__cil_tmp433;
27175#line 5792
27176 *mem_570 = *mem_571;
27177#line 5794
27178 __cil_tmp434 = 0 * 1U;
27179#line 5794
27180 __cil_tmp435 = 112 + __cil_tmp434;
27181#line 5794
27182 __cil_tmp436 = (unsigned int )DisketteExtension;
27183#line 5794
27184 __cil_tmp437 = __cil_tmp436 + __cil_tmp435;
27185#line 5794
27186 __cil_tmp438 = (UCHAR *)__cil_tmp437;
27187#line 5794
27188 __cil_tmp439 = 0 * 1U;
27189#line 5794
27190 __cil_tmp440 = 112 + __cil_tmp439;
27191#line 5794
27192 __cil_tmp441 = (unsigned int )DisketteExtension;
27193#line 5794
27194 __cil_tmp442 = __cil_tmp441 + __cil_tmp440;
27195#line 5794
27196 __cil_tmp443 = (UCHAR *)__cil_tmp442;
27197#line 5794
27198 __cil_tmp444 = (void *)0;
27199#line 5794
27200 __cil_tmp445 = (struct _MDL *)__cil_tmp444;
27201#line 5794
27202 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp438, __cil_tmp443, __cil_tmp445,
27203 0UL, 0UL);
27204 }
27205 {
27206#line 5801
27207 __cil_tmp446 = ntStatus >= 0L;
27208#line 5801
27209 if (! __cil_tmp446) {
27210 {
27211#line 5806
27212 while (1) {
27213 while_179_continue: ;
27214 goto while_179_break;
27215 }
27216 while_179_break: ;
27217 }
27218#line 5808
27219 return (ntStatus);
27220 } else {
27221
27222 }
27223 }
27224 {
27225#line 5811
27226 __cil_tmp447 = 0 * 1U;
27227#line 5811
27228 __cil_tmp448 = 112 + __cil_tmp447;
27229#line 5811
27230 __cil_tmp449 = (unsigned int )DisketteExtension;
27231#line 5811
27232 __cil_tmp450 = __cil_tmp449 + __cil_tmp448;
27233#line 5811
27234 mem_572 = (UCHAR *)__cil_tmp450;
27235#line 5811
27236 __cil_tmp451 = *mem_572;
27237#line 5811
27238 __cil_tmp452 = (int )__cil_tmp451;
27239#line 5811
27240 if (__cil_tmp452 & 32) {
27241#line 5813
27242 driveStatus = (unsigned char)127;
27243 } else {
27244#line 5817
27245 driveStatus = (unsigned char)128;
27246 }
27247 }
27248 } else {
27249 {
27250#line 5822
27251 __cil_tmp453 = (unsigned int )DisketteExtension;
27252#line 5822
27253 __cil_tmp454 = __cil_tmp453 + 8;
27254#line 5822
27255 mem_573 = (PDEVICE_OBJECT *)__cil_tmp454;
27256#line 5822
27257 __cil_tmp455 = *mem_573;
27258#line 5822
27259 __cil_tmp456 = 776 << 2;
27260#line 5822
27261 __cil_tmp457 = 7 << 16;
27262#line 5822
27263 __cil_tmp458 = __cil_tmp457 | __cil_tmp456;
27264#line 5822
27265 __cil_tmp459 = __cil_tmp458 | 3;
27266#line 5822
27267 __cil_tmp460 = (unsigned long )__cil_tmp459;
27268#line 5822
27269 __cil_tmp461 = (void *)(& fdcDiskChangeParms);
27270#line 5822
27271 ntStatus = FlFdcDeviceIo(__cil_tmp455, __cil_tmp460, __cil_tmp461);
27272#line 5826
27273 __cil_tmp462 = & fdcDiskChangeParms;
27274#line 5826
27275 mem_574 = (UCHAR *)__cil_tmp462;
27276#line 5826
27277 driveStatus = *mem_574;
27278 }
27279 }
27280 }
27281 {
27282#line 5829
27283 __cil_tmp463 = (unsigned int )DisketteExtension;
27284#line 5829
27285 __cil_tmp464 = __cil_tmp463 + 174;
27286#line 5829
27287 mem_575 = (UCHAR *)__cil_tmp464;
27288#line 5829
27289 __cil_tmp465 = *mem_575;
27290#line 5829
27291 __cil_tmp466 = (int )__cil_tmp465;
27292#line 5829
27293 if (__cil_tmp466 != 0) {
27294 {
27295#line 5829
27296 __cil_tmp467 = (int )driveStatus;
27297#line 5829
27298 if (__cil_tmp467 & 128) {
27299#line 5837
27300 return (-1073741805L);
27301 } else {
27302
27303 }
27304 }
27305 } else {
27306
27307 }
27308 }
27309 {
27310#line 5847
27311 while (1) {
27312 while_180_continue: ;
27313 goto while_180_break;
27314 }
27315 while_180_break: ;
27316 }
27317 {
27318#line 5849
27319 __cil_tmp468 = (int )numberOfBadTracks;
27320#line 5849
27321 __cil_tmp469 = __cil_tmp468 + 1;
27322#line 5849
27323 __cil_tmp470 = (unsigned int )__cil_tmp469;
27324#line 5849
27325 __cil_tmp471 = __cil_tmp470 * 2U;
27326#line 5849
27327 __cil_tmp472 = (unsigned long )__cil_tmp471;
27328#line 5849
27329 if (badTrackBufferLength >= __cil_tmp472) {
27330#line 5852
27331 __cil_tmp473 = (unsigned int )Irp;
27332#line 5852
27333 __cil_tmp474 = __cil_tmp473 + 12;
27334#line 5852
27335 mem_576 = (PVOID *)__cil_tmp474;
27336#line 5852
27337 __cil_tmp475 = *mem_576;
27338#line 5852
27339 badTrackBuffer = (USHORT *)__cil_tmp475;
27340#line 5855
27341 __cil_tmp476 = (int )numberOfBadTracks;
27342#line 5855
27343 __cil_tmp477 = badTrackBuffer + __cil_tmp476;
27344#line 5855
27345 *__cil_tmp477 = (unsigned short )currentTrack;
27346 } else {
27347#line 5860
27348 bufferOverflow = (unsigned char)1;
27349 }
27350 }
27351#line 5863
27352 __cil_tmp478 = (int )numberOfBadTracks;
27353#line 5863
27354 __cil_tmp479 = __cil_tmp478 + 1;
27355#line 5863
27356 numberOfBadTracks = (unsigned char )__cil_tmp479;
27357 } else {
27358
27359 }
27360 }
27361#line 5866
27362 __cil_tmp480 = (int )currentTrack;
27363#line 5866
27364 __cil_tmp481 = __cil_tmp480 + 1;
27365#line 5866
27366 currentTrack = (unsigned char )__cil_tmp481;
27367 {
27368#line 5561
27369 __cil_tmp482 = (int )endTrack;
27370#line 5561
27371 __cil_tmp483 = (int )currentTrack;
27372#line 5561
27373 __cil_tmp484 = __cil_tmp483 <= __cil_tmp482;
27374#line 5561
27375 if (! __cil_tmp484) {
27376 goto while_169_break;
27377 } else {
27378
27379 }
27380 }
27381 }
27382 while_169_break: ;
27383 }
27384#line 5870
27385 if (ntStatus >= 0L) {
27386#line 5870
27387 if (bufferOverflow) {
27388#line 5872
27389 ntStatus = -2147483643L;
27390 } else {
27391
27392 }
27393 } else {
27394
27395 }
27396#line 5875
27397 return (ntStatus);
27398}
27399}
27400#line 5878 "floppy.c"
27401BOOLEAN FlCheckFormatParameters(PDISKETTE_EXTENSION DisketteExtension , PFORMAT_PARAMETERS FormatParameters )
27402{ PDRIVE_MEDIA_CONSTANTS driveMediaConstants ;
27403 DRIVE_MEDIA_TYPE driveMediaType ;
27404 unsigned int __cil_tmp5 ;
27405 unsigned int __cil_tmp6 ;
27406 UCHAR __cil_tmp7 ;
27407 int __cil_tmp8 ;
27408 PDRIVE_MEDIA_LIMITS __cil_tmp9 ;
27409 MEDIA_TYPE __cil_tmp10 ;
27410 int __cil_tmp11 ;
27411 unsigned int __cil_tmp12 ;
27412 PDRIVE_MEDIA_CONSTANTS __cil_tmp13 ;
27413 MEDIA_TYPE __cil_tmp14 ;
27414 int __cil_tmp15 ;
27415 unsigned int __cil_tmp16 ;
27416 unsigned int __cil_tmp17 ;
27417 UCHAR __cil_tmp18 ;
27418 int __cil_tmp19 ;
27419 PDRIVE_MEDIA_LIMITS __cil_tmp20 ;
27420 unsigned int __cil_tmp21 ;
27421 unsigned int __cil_tmp22 ;
27422 DRIVE_MEDIA_TYPE __cil_tmp23 ;
27423 int __cil_tmp24 ;
27424 int __cil_tmp25 ;
27425 int __cil_tmp26 ;
27426 int __cil_tmp27 ;
27427 int __cil_tmp28 ;
27428 MEDIA_TYPE __cil_tmp29 ;
27429 int __cil_tmp30 ;
27430 unsigned int __cil_tmp31 ;
27431 PDRIVE_MEDIA_CONSTANTS __cil_tmp32 ;
27432 MEDIA_TYPE __cil_tmp33 ;
27433 int __cil_tmp34 ;
27434 unsigned int __cil_tmp35 ;
27435 unsigned int __cil_tmp36 ;
27436 unsigned int __cil_tmp37 ;
27437 UCHAR __cil_tmp38 ;
27438 int __cil_tmp39 ;
27439 int __cil_tmp40 ;
27440 unsigned long __cil_tmp41 ;
27441 unsigned int __cil_tmp42 ;
27442 unsigned int __cil_tmp43 ;
27443 ULONG __cil_tmp44 ;
27444 unsigned int __cil_tmp45 ;
27445 unsigned int __cil_tmp46 ;
27446 UCHAR __cil_tmp47 ;
27447 int __cil_tmp48 ;
27448 int __cil_tmp49 ;
27449 unsigned long __cil_tmp50 ;
27450 unsigned int __cil_tmp51 ;
27451 unsigned int __cil_tmp52 ;
27452 ULONG __cil_tmp53 ;
27453 unsigned int __cil_tmp54 ;
27454 unsigned int __cil_tmp55 ;
27455 UCHAR __cil_tmp56 ;
27456 unsigned long __cil_tmp57 ;
27457 unsigned int __cil_tmp58 ;
27458 unsigned int __cil_tmp59 ;
27459 ULONG __cil_tmp60 ;
27460 unsigned int __cil_tmp61 ;
27461 unsigned int __cil_tmp62 ;
27462 UCHAR __cil_tmp63 ;
27463 unsigned long __cil_tmp64 ;
27464 unsigned int __cil_tmp65 ;
27465 unsigned int __cil_tmp66 ;
27466 ULONG __cil_tmp67 ;
27467 unsigned int __cil_tmp68 ;
27468 unsigned int __cil_tmp69 ;
27469 ULONG __cil_tmp70 ;
27470 unsigned int __cil_tmp71 ;
27471 unsigned int __cil_tmp72 ;
27472 ULONG __cil_tmp73 ;
27473 KUSER_SHARED_DATA *__cil_tmp74 ;
27474 unsigned int __cil_tmp75 ;
27475 unsigned int __cil_tmp76 ;
27476 ALTERNATIVE_ARCHITECTURE_TYPE __cil_tmp77 ;
27477 int __cil_tmp78 ;
27478 MEDIA_TYPE __cil_tmp79 ;
27479 int __cil_tmp80 ;
27480 MEDIA_TYPE __cil_tmp81 ;
27481 int __cil_tmp82 ;
27482 MEDIA_TYPE __cil_tmp83 ;
27483 int __cil_tmp84 ;
27484 MEDIA_TYPE __cil_tmp85 ;
27485 int __cil_tmp86 ;
27486 MEDIA_TYPE __cil_tmp87 ;
27487 int __cil_tmp88 ;
27488 UCHAR *mem_89 ;
27489 DRIVE_MEDIA_TYPE *mem_90 ;
27490 MEDIA_TYPE *mem_91 ;
27491 MEDIA_TYPE *mem_92 ;
27492 UCHAR *mem_93 ;
27493 DRIVE_MEDIA_TYPE *mem_94 ;
27494 MEDIA_TYPE *mem_95 ;
27495 MEDIA_TYPE *mem_96 ;
27496 UCHAR *mem_97 ;
27497 ULONG *mem_98 ;
27498 UCHAR *mem_99 ;
27499 ULONG *mem_100 ;
27500 UCHAR *mem_101 ;
27501 ULONG *mem_102 ;
27502 UCHAR *mem_103 ;
27503 ULONG *mem_104 ;
27504 ULONG *mem_105 ;
27505 ULONG *mem_106 ;
27506 ALTERNATIVE_ARCHITECTURE_TYPE *mem_107 ;
27507 MEDIA_TYPE *mem_108 ;
27508 MEDIA_TYPE *mem_109 ;
27509 MEDIA_TYPE *mem_110 ;
27510 MEDIA_TYPE *mem_111 ;
27511 MEDIA_TYPE *mem_112 ;
27512
27513 {
27514#line 5913
27515 __cil_tmp5 = (unsigned int )DisketteExtension;
27516#line 5913
27517 __cil_tmp6 = __cil_tmp5 + 174;
27518#line 5913
27519 mem_89 = (UCHAR *)__cil_tmp6;
27520#line 5913
27521 __cil_tmp7 = *mem_89;
27522#line 5913
27523 __cil_tmp8 = (int )__cil_tmp7;
27524#line 5913
27525 __cil_tmp9 = DriveMediaLimits + __cil_tmp8;
27526#line 5913
27527 mem_90 = (DRIVE_MEDIA_TYPE *)__cil_tmp9;
27528#line 5913
27529 driveMediaType = *mem_90;
27530 {
27531#line 5916
27532 while (1) {
27533 while_181_continue: ;
27534 {
27535#line 5916
27536 mem_91 = (MEDIA_TYPE *)FormatParameters;
27537#line 5916
27538 __cil_tmp10 = *mem_91;
27539#line 5916
27540 __cil_tmp11 = (int )__cil_tmp10;
27541#line 5916
27542 __cil_tmp12 = (unsigned int )driveMediaType;
27543#line 5916
27544 __cil_tmp13 = DriveMediaConstants + __cil_tmp12;
27545#line 5916
27546 mem_92 = (MEDIA_TYPE *)__cil_tmp13;
27547#line 5916
27548 __cil_tmp14 = *mem_92;
27549#line 5916
27550 __cil_tmp15 = (int )__cil_tmp14;
27551#line 5916
27552 if (__cil_tmp15 != __cil_tmp11) {
27553 {
27554#line 5916
27555 __cil_tmp16 = (unsigned int )DisketteExtension;
27556#line 5916
27557 __cil_tmp17 = __cil_tmp16 + 174;
27558#line 5916
27559 mem_93 = (UCHAR *)__cil_tmp17;
27560#line 5916
27561 __cil_tmp18 = *mem_93;
27562#line 5916
27563 __cil_tmp19 = (int )__cil_tmp18;
27564#line 5916
27565 __cil_tmp20 = DriveMediaLimits + __cil_tmp19;
27566#line 5916
27567 __cil_tmp21 = (unsigned int )__cil_tmp20;
27568#line 5916
27569 __cil_tmp22 = __cil_tmp21 + 32;
27570#line 5916
27571 mem_94 = (DRIVE_MEDIA_TYPE *)__cil_tmp22;
27572#line 5916
27573 __cil_tmp23 = *mem_94;
27574#line 5916
27575 __cil_tmp24 = (int )__cil_tmp23;
27576#line 5916
27577 __cil_tmp25 = (int )driveMediaType;
27578#line 5916
27579 __cil_tmp26 = __cil_tmp25 > __cil_tmp24;
27580#line 5916
27581 if (! __cil_tmp26) {
27582 goto while_181_break;
27583 } else {
27584
27585 }
27586 }
27587 } else {
27588 goto while_181_break;
27589 }
27590 }
27591#line 5921
27592 __cil_tmp27 = (int )driveMediaType;
27593#line 5921
27594 __cil_tmp28 = __cil_tmp27 - 1;
27595#line 5921
27596 driveMediaType = (enum _DRIVE_MEDIA_TYPE )__cil_tmp28;
27597 }
27598 while_181_break: ;
27599 }
27600 {
27601#line 5924
27602 mem_95 = (MEDIA_TYPE *)FormatParameters;
27603#line 5924
27604 __cil_tmp29 = *mem_95;
27605#line 5924
27606 __cil_tmp30 = (int )__cil_tmp29;
27607#line 5924
27608 __cil_tmp31 = (unsigned int )driveMediaType;
27609#line 5924
27610 __cil_tmp32 = DriveMediaConstants + __cil_tmp31;
27611#line 5924
27612 mem_96 = (MEDIA_TYPE *)__cil_tmp32;
27613#line 5924
27614 __cil_tmp33 = *mem_96;
27615#line 5924
27616 __cil_tmp34 = (int )__cil_tmp33;
27617#line 5924
27618 if (__cil_tmp34 != __cil_tmp30) {
27619#line 5927
27620 return ((unsigned char)0);
27621 } else {
27622#line 5931
27623 __cil_tmp35 = (unsigned int )driveMediaType;
27624#line 5931
27625 driveMediaConstants = DriveMediaConstants + __cil_tmp35;
27626 {
27627#line 5933
27628 __cil_tmp36 = (unsigned int )driveMediaConstants;
27629#line 5933
27630 __cil_tmp37 = __cil_tmp36 + 51;
27631#line 5933
27632 mem_97 = (UCHAR *)__cil_tmp37;
27633#line 5933
27634 __cil_tmp38 = *mem_97;
27635#line 5933
27636 __cil_tmp39 = (int )__cil_tmp38;
27637#line 5933
27638 __cil_tmp40 = __cil_tmp39 - 1;
27639#line 5933
27640 __cil_tmp41 = (unsigned long )__cil_tmp40;
27641#line 5933
27642 __cil_tmp42 = (unsigned int )FormatParameters;
27643#line 5933
27644 __cil_tmp43 = __cil_tmp42 + 40;
27645#line 5933
27646 mem_98 = (ULONG *)__cil_tmp43;
27647#line 5933
27648 __cil_tmp44 = *mem_98;
27649#line 5933
27650 if (__cil_tmp44 > __cil_tmp41) {
27651#line 5944
27652 return ((unsigned char)0);
27653 } else {
27654 {
27655#line 5933
27656 __cil_tmp45 = (unsigned int )driveMediaConstants;
27657#line 5933
27658 __cil_tmp46 = __cil_tmp45 + 51;
27659#line 5933
27660 mem_99 = (UCHAR *)__cil_tmp46;
27661#line 5933
27662 __cil_tmp47 = *mem_99;
27663#line 5933
27664 __cil_tmp48 = (int )__cil_tmp47;
27665#line 5933
27666 __cil_tmp49 = __cil_tmp48 - 1;
27667#line 5933
27668 __cil_tmp50 = (unsigned long )__cil_tmp49;
27669#line 5933
27670 __cil_tmp51 = (unsigned int )FormatParameters;
27671#line 5933
27672 __cil_tmp52 = __cil_tmp51 + 44;
27673#line 5933
27674 mem_100 = (ULONG *)__cil_tmp52;
27675#line 5933
27676 __cil_tmp53 = *mem_100;
27677#line 5933
27678 if (__cil_tmp53 > __cil_tmp50) {
27679#line 5944
27680 return ((unsigned char)0);
27681 } else {
27682 {
27683#line 5933
27684 __cil_tmp54 = (unsigned int )driveMediaConstants;
27685#line 5933
27686 __cil_tmp55 = __cil_tmp54 + 48;
27687#line 5933
27688 mem_101 = (UCHAR *)__cil_tmp55;
27689#line 5933
27690 __cil_tmp56 = *mem_101;
27691#line 5933
27692 __cil_tmp57 = (unsigned long )__cil_tmp56;
27693#line 5933
27694 __cil_tmp58 = (unsigned int )FormatParameters;
27695#line 5933
27696 __cil_tmp59 = __cil_tmp58 + 32;
27697#line 5933
27698 mem_102 = (ULONG *)__cil_tmp59;
27699#line 5933
27700 __cil_tmp60 = *mem_102;
27701#line 5933
27702 if (__cil_tmp60 > __cil_tmp57) {
27703#line 5944
27704 return ((unsigned char)0);
27705 } else {
27706 {
27707#line 5933
27708 __cil_tmp61 = (unsigned int )driveMediaConstants;
27709#line 5933
27710 __cil_tmp62 = __cil_tmp61 + 48;
27711#line 5933
27712 mem_103 = (UCHAR *)__cil_tmp62;
27713#line 5933
27714 __cil_tmp63 = *mem_103;
27715#line 5933
27716 __cil_tmp64 = (unsigned long )__cil_tmp63;
27717#line 5933
27718 __cil_tmp65 = (unsigned int )FormatParameters;
27719#line 5933
27720 __cil_tmp66 = __cil_tmp65 + 36;
27721#line 5933
27722 mem_104 = (ULONG *)__cil_tmp66;
27723#line 5933
27724 __cil_tmp67 = *mem_104;
27725#line 5933
27726 if (__cil_tmp67 > __cil_tmp64) {
27727#line 5944
27728 return ((unsigned char)0);
27729 } else {
27730 {
27731#line 5933
27732 __cil_tmp68 = (unsigned int )FormatParameters;
27733#line 5933
27734 __cil_tmp69 = __cil_tmp68 + 32;
27735#line 5933
27736 mem_105 = (ULONG *)__cil_tmp69;
27737#line 5933
27738 __cil_tmp70 = *mem_105;
27739#line 5933
27740 __cil_tmp71 = (unsigned int )FormatParameters;
27741#line 5933
27742 __cil_tmp72 = __cil_tmp71 + 36;
27743#line 5933
27744 mem_106 = (ULONG *)__cil_tmp72;
27745#line 5933
27746 __cil_tmp73 = *mem_106;
27747#line 5933
27748 if (__cil_tmp73 < __cil_tmp70) {
27749#line 5944
27750 return ((unsigned char)0);
27751 } else {
27752 {
27753#line 5948
27754 __cil_tmp74 = (KUSER_SHARED_DATA * const )4292804608U;
27755#line 5948
27756 __cil_tmp75 = (unsigned int )__cil_tmp74;
27757#line 5948
27758 __cil_tmp76 = __cil_tmp75 + 732;
27759#line 5948
27760 mem_107 = (ALTERNATIVE_ARCHITECTURE_TYPE *)__cil_tmp76;
27761#line 5948
27762 __cil_tmp77 = *mem_107;
27763#line 5948
27764 __cil_tmp78 = (int )__cil_tmp77;
27765#line 5948
27766 if (__cil_tmp78 == 1) {
27767 {
27768#line 5949
27769 mem_108 = (MEDIA_TYPE *)FormatParameters;
27770#line 5949
27771 __cil_tmp79 = *mem_108;
27772#line 5949
27773 __cil_tmp80 = (int )__cil_tmp79;
27774#line 5949
27775 if (__cil_tmp80 == 6) {
27776#line 5955
27777 return ((unsigned char)0);
27778 } else {
27779 {
27780#line 5949
27781 mem_109 = (MEDIA_TYPE *)FormatParameters;
27782#line 5949
27783 __cil_tmp81 = *mem_109;
27784#line 5949
27785 __cil_tmp82 = (int )__cil_tmp81;
27786#line 5949
27787 if (__cil_tmp82 == 7) {
27788#line 5955
27789 return ((unsigned char)0);
27790 } else {
27791 {
27792#line 5949
27793 mem_110 = (MEDIA_TYPE *)FormatParameters;
27794#line 5949
27795 __cil_tmp83 = *mem_110;
27796#line 5949
27797 __cil_tmp84 = (int )__cil_tmp83;
27798#line 5949
27799 if (__cil_tmp84 == 8) {
27800#line 5955
27801 return ((unsigned char)0);
27802 } else {
27803 {
27804#line 5949
27805 mem_111 = (MEDIA_TYPE *)FormatParameters;
27806#line 5949
27807 __cil_tmp85 = *mem_111;
27808#line 5949
27809 __cil_tmp86 = (int )__cil_tmp85;
27810#line 5949
27811 if (__cil_tmp86 == 9) {
27812#line 5955
27813 return ((unsigned char)0);
27814 } else {
27815 {
27816#line 5949
27817 mem_112 = (MEDIA_TYPE *)FormatParameters;
27818#line 5949
27819 __cil_tmp87 = *mem_112;
27820#line 5949
27821 __cil_tmp88 = (int )__cil_tmp87;
27822#line 5949
27823 if (__cil_tmp88 == 10) {
27824#line 5955
27825 return ((unsigned char)0);
27826 } else {
27827
27828 }
27829 }
27830 }
27831 }
27832 }
27833 }
27834 }
27835 }
27836 }
27837 }
27838 } else {
27839
27840 }
27841 }
27842#line 5959
27843 return ((unsigned char)1);
27844 }
27845 }
27846 }
27847 }
27848 }
27849 }
27850 }
27851 }
27852 }
27853 }
27854 }
27855 }
27856}
27857}
27858#line 5964 "floppy.c"
27859NTSTATUS FlIssueCommand(PDISKETTE_EXTENSION DisketteExtension , PUCHAR FifoInBuffer ,
27860 PUCHAR FifoOutBuffer , PMDL IoMdl , ULONG IoOffset , ULONG TransferBytes )
27861{ NTSTATUS ntStatus ;
27862 ISSUE_FDC_COMMAND_PARMS issueCommandParms ;
27863 ISSUE_FDC_COMMAND_PARMS *__cil_tmp9 ;
27864 unsigned int __cil_tmp10 ;
27865 unsigned int __cil_tmp11 ;
27866 unsigned int __cil_tmp12 ;
27867 unsigned int __cil_tmp13 ;
27868 unsigned int __cil_tmp14 ;
27869 unsigned int __cil_tmp15 ;
27870 unsigned int __cil_tmp16 ;
27871 PDEVICE_OBJECT __cil_tmp17 ;
27872 int __cil_tmp18 ;
27873 int __cil_tmp19 ;
27874 int __cil_tmp20 ;
27875 int __cil_tmp21 ;
27876 unsigned long __cil_tmp22 ;
27877 void *__cil_tmp23 ;
27878 unsigned int __cil_tmp24 ;
27879 unsigned int __cil_tmp25 ;
27880 unsigned int __cil_tmp26 ;
27881 unsigned int __cil_tmp27 ;
27882 PUCHAR *mem_28 ;
27883 PUCHAR *mem_29 ;
27884 PVOID *mem_30 ;
27885 ULONG *mem_31 ;
27886 ULONG *mem_32 ;
27887 ULONG *mem_33 ;
27888 PDEVICE_OBJECT *mem_34 ;
27889 BOOLEAN *mem_35 ;
27890 BOOLEAN *mem_36 ;
27891
27892 {
27893#line 6018
27894 __cil_tmp9 = & issueCommandParms;
27895#line 6018
27896 mem_28 = (PUCHAR *)__cil_tmp9;
27897#line 6018
27898 *mem_28 = FifoInBuffer;
27899#line 6019
27900 __cil_tmp10 = (unsigned int )(& issueCommandParms) + 4;
27901#line 6019
27902 mem_29 = (PUCHAR *)__cil_tmp10;
27903#line 6019
27904 *mem_29 = FifoOutBuffer;
27905#line 6020
27906 __cil_tmp11 = (unsigned int )(& issueCommandParms) + 8;
27907#line 6020
27908 mem_30 = (PVOID *)__cil_tmp11;
27909#line 6020
27910 *mem_30 = (void *)IoMdl;
27911#line 6021
27912 __cil_tmp12 = (unsigned int )(& issueCommandParms) + 12;
27913#line 6021
27914 mem_31 = (ULONG *)__cil_tmp12;
27915#line 6021
27916 *mem_31 = IoOffset;
27917#line 6022
27918 __cil_tmp13 = (unsigned int )(& issueCommandParms) + 16;
27919#line 6022
27920 mem_32 = (ULONG *)__cil_tmp13;
27921#line 6022
27922 *mem_32 = TransferBytes;
27923#line 6023
27924 __cil_tmp14 = (unsigned int )(& issueCommandParms) + 20;
27925#line 6023
27926 mem_33 = (ULONG *)__cil_tmp14;
27927#line 6023
27928 *mem_33 = 4UL;
27929 {
27930#line 6028
27931 while (1) {
27932 while_182_continue: ;
27933 goto while_182_break;
27934 }
27935 while_182_break: ;
27936 }
27937 {
27938#line 6030
27939 __cil_tmp15 = (unsigned int )DisketteExtension;
27940#line 6030
27941 __cil_tmp16 = __cil_tmp15 + 8;
27942#line 6030
27943 mem_34 = (PDEVICE_OBJECT *)__cil_tmp16;
27944#line 6030
27945 __cil_tmp17 = *mem_34;
27946#line 6030
27947 __cil_tmp18 = 771 << 2;
27948#line 6030
27949 __cil_tmp19 = 7 << 16;
27950#line 6030
27951 __cil_tmp20 = __cil_tmp19 | __cil_tmp18;
27952#line 6030
27953 __cil_tmp21 = __cil_tmp20 | 3;
27954#line 6030
27955 __cil_tmp22 = (unsigned long )__cil_tmp21;
27956#line 6030
27957 __cil_tmp23 = (void *)(& issueCommandParms);
27958#line 6030
27959 ntStatus = FlFdcDeviceIo(__cil_tmp17, __cil_tmp22, __cil_tmp23);
27960 }
27961#line 6038
27962 if (ntStatus == -1073741661L) {
27963#line 6041
27964 __cil_tmp24 = (unsigned int )DisketteExtension;
27965#line 6041
27966 __cil_tmp25 = __cil_tmp24 + 104;
27967#line 6041
27968 mem_35 = (BOOLEAN *)__cil_tmp25;
27969#line 6041
27970 *mem_35 = (unsigned char)1;
27971 } else {
27972#line 6038
27973 if (ntStatus == -1073741464L) {
27974#line 6041
27975 __cil_tmp26 = (unsigned int )DisketteExtension;
27976#line 6041
27977 __cil_tmp27 = __cil_tmp26 + 104;
27978#line 6041
27979 mem_36 = (BOOLEAN *)__cil_tmp27;
27980#line 6041
27981 *mem_36 = (unsigned char)1;
27982 } else {
27983
27984 }
27985 }
27986#line 6044
27987 return (ntStatus);
27988}
27989}
27990#line 6047 "floppy.c"
27991NTSTATUS FlInitializeControllerHardware(PDISKETTE_EXTENSION DisketteExtension )
27992{ NTSTATUS ntStatus ;
27993 unsigned int __cil_tmp3 ;
27994 unsigned int __cil_tmp4 ;
27995 PDEVICE_OBJECT __cil_tmp5 ;
27996 int __cil_tmp6 ;
27997 int __cil_tmp7 ;
27998 int __cil_tmp8 ;
27999 int __cil_tmp9 ;
28000 unsigned long __cil_tmp10 ;
28001 void *__cil_tmp11 ;
28002 unsigned int __cil_tmp12 ;
28003 unsigned int __cil_tmp13 ;
28004 UCHAR __cil_tmp14 ;
28005 int __cil_tmp15 ;
28006 unsigned int __cil_tmp16 ;
28007 unsigned int __cil_tmp17 ;
28008 unsigned int __cil_tmp18 ;
28009 unsigned int __cil_tmp19 ;
28010 unsigned int __cil_tmp20 ;
28011 unsigned int __cil_tmp21 ;
28012 unsigned int __cil_tmp22 ;
28013 unsigned int __cil_tmp23 ;
28014 unsigned int __cil_tmp24 ;
28015 unsigned int __cil_tmp25 ;
28016 UCHAR __cil_tmp26 ;
28017 int __cil_tmp27 ;
28018 int __cil_tmp28 ;
28019 int __cil_tmp29 ;
28020 unsigned int __cil_tmp30 ;
28021 unsigned int __cil_tmp31 ;
28022 unsigned int __cil_tmp32 ;
28023 unsigned int __cil_tmp33 ;
28024 UCHAR *__cil_tmp34 ;
28025 unsigned int __cil_tmp35 ;
28026 unsigned int __cil_tmp36 ;
28027 unsigned int __cil_tmp37 ;
28028 unsigned int __cil_tmp38 ;
28029 UCHAR *__cil_tmp39 ;
28030 void *__cil_tmp40 ;
28031 struct _MDL *__cil_tmp41 ;
28032 PDEVICE_OBJECT *mem_42 ;
28033 UCHAR *mem_43 ;
28034 UCHAR *mem_44 ;
28035 UCHAR *mem_45 ;
28036 UCHAR *mem_46 ;
28037
28038 {
28039 {
28040#line 6069
28041 __cil_tmp3 = (unsigned int )DisketteExtension;
28042#line 6069
28043 __cil_tmp4 = __cil_tmp3 + 8;
28044#line 6069
28045 mem_42 = (PDEVICE_OBJECT *)__cil_tmp4;
28046#line 6069
28047 __cil_tmp5 = *mem_42;
28048#line 6069
28049 __cil_tmp6 = 773 << 2;
28050#line 6069
28051 __cil_tmp7 = 7 << 16;
28052#line 6069
28053 __cil_tmp8 = __cil_tmp7 | __cil_tmp6;
28054#line 6069
28055 __cil_tmp9 = __cil_tmp8 | 3;
28056#line 6069
28057 __cil_tmp10 = (unsigned long )__cil_tmp9;
28058#line 6069
28059 __cil_tmp11 = (void *)0;
28060#line 6069
28061 ntStatus = FlFdcDeviceIo(__cil_tmp5, __cil_tmp10, __cil_tmp11);
28062 }
28063#line 6073
28064 if (ntStatus >= 0L) {
28065 {
28066#line 6075
28067 __cil_tmp12 = (unsigned int )DisketteExtension;
28068#line 6075
28069 __cil_tmp13 = __cil_tmp12 + 364;
28070#line 6075
28071 mem_43 = (UCHAR *)__cil_tmp13;
28072#line 6075
28073 __cil_tmp14 = *mem_43;
28074#line 6075
28075 __cil_tmp15 = (int )__cil_tmp14;
28076#line 6075
28077 if (__cil_tmp15 != 0) {
28078 {
28079#line 6077
28080 __cil_tmp16 = 0 * 1U;
28081#line 6077
28082 __cil_tmp17 = 112 + __cil_tmp16;
28083#line 6077
28084 __cil_tmp18 = (unsigned int )DisketteExtension;
28085#line 6077
28086 __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
28087#line 6077
28088 mem_44 = (UCHAR *)__cil_tmp19;
28089#line 6077
28090 *mem_44 = (unsigned char)21;
28091#line 6078
28092 __cil_tmp20 = 1 * 1U;
28093#line 6078
28094 __cil_tmp21 = 112 + __cil_tmp20;
28095#line 6078
28096 __cil_tmp22 = (unsigned int )DisketteExtension;
28097#line 6078
28098 __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
28099#line 6078
28100 __cil_tmp24 = (unsigned int )DisketteExtension;
28101#line 6078
28102 __cil_tmp25 = __cil_tmp24 + 364;
28103#line 6078
28104 mem_45 = (UCHAR *)__cil_tmp25;
28105#line 6078
28106 __cil_tmp26 = *mem_45;
28107#line 6078
28108 __cil_tmp27 = (int )__cil_tmp26;
28109#line 6078
28110 __cil_tmp28 = __cil_tmp27 << 2;
28111#line 6078
28112 __cil_tmp29 = 128 | __cil_tmp28;
28113#line 6078
28114 mem_46 = (UCHAR *)__cil_tmp23;
28115#line 6078
28116 *mem_46 = (unsigned char )__cil_tmp29;
28117#line 6082
28118 __cil_tmp30 = 0 * 1U;
28119#line 6082
28120 __cil_tmp31 = 112 + __cil_tmp30;
28121#line 6082
28122 __cil_tmp32 = (unsigned int )DisketteExtension;
28123#line 6082
28124 __cil_tmp33 = __cil_tmp32 + __cil_tmp31;
28125#line 6082
28126 __cil_tmp34 = (UCHAR *)__cil_tmp33;
28127#line 6082
28128 __cil_tmp35 = 0 * 1U;
28129#line 6082
28130 __cil_tmp36 = 112 + __cil_tmp35;
28131#line 6082
28132 __cil_tmp37 = (unsigned int )DisketteExtension;
28133#line 6082
28134 __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
28135#line 6082
28136 __cil_tmp39 = (UCHAR *)__cil_tmp38;
28137#line 6082
28138 __cil_tmp40 = (void *)0;
28139#line 6082
28140 __cil_tmp41 = (struct _MDL *)__cil_tmp40;
28141#line 6082
28142 ntStatus = FlIssueCommand(DisketteExtension, __cil_tmp34, __cil_tmp39, __cil_tmp41,
28143 0UL, 0UL);
28144 }
28145 } else {
28146
28147 }
28148 }
28149 } else {
28150
28151 }
28152#line 6092
28153 return (ntStatus);
28154}
28155}
28156#line 6095 "floppy.c"
28157NTSTATUS FlFdcDeviceIo(PDEVICE_OBJECT DeviceObject , ULONG Ioctl , PVOID Data )
28158{ NTSTATUS ntStatus ;
28159 PIRP irp ;
28160 PIO_STACK_LOCATION irpStack ;
28161 KEVENT doneEvent ;
28162 IO_STATUS_BLOCK ioStatus ;
28163 enum _EVENT_TYPE __cil_tmp9 ;
28164 void *__cil_tmp10 ;
28165 void *__cil_tmp11 ;
28166 void *__cil_tmp12 ;
28167 unsigned int __cil_tmp13 ;
28168 unsigned int __cil_tmp14 ;
28169 unsigned int __cil_tmp15 ;
28170 unsigned int __cil_tmp16 ;
28171 unsigned int __cil_tmp17 ;
28172 unsigned int __cil_tmp18 ;
28173 unsigned int __cil_tmp19 ;
28174 struct _IO_STACK_LOCATION *__cil_tmp20 ;
28175 unsigned int __cil_tmp21 ;
28176 unsigned int __cil_tmp22 ;
28177 unsigned int __cil_tmp23 ;
28178 unsigned int __cil_tmp24 ;
28179 void *__cil_tmp25 ;
28180 enum _KWAIT_REASON __cil_tmp26 ;
28181 void *__cil_tmp27 ;
28182 LARGE_INTEGER *__cil_tmp28 ;
28183 IO_STATUS_BLOCK *__cil_tmp29 ;
28184 struct _IO_STACK_LOCATION **mem_30 ;
28185 PVOID *mem_31 ;
28186 NTSTATUS *mem_32 ;
28187
28188 {
28189 {
28190#line 6108
28191 while (1) {
28192 while_183_continue: ;
28193 goto while_183_break;
28194 }
28195 while_183_break: ;
28196 }
28197 {
28198#line 6110
28199 __cil_tmp9 = (enum _EVENT_TYPE )0;
28200#line 6110
28201 KeInitializeEvent(& doneEvent, __cil_tmp9, (unsigned char)0);
28202#line 6117
28203 __cil_tmp10 = (void *)0;
28204#line 6117
28205 __cil_tmp11 = (void *)0;
28206#line 6117
28207 irp = IoBuildDeviceIoControlRequest(Ioctl, DeviceObject, __cil_tmp10, 0UL, __cil_tmp11,
28208 0UL, (unsigned char)1, & doneEvent, & ioStatus);
28209 }
28210 {
28211#line 6127
28212 __cil_tmp12 = (void *)0;
28213#line 6127
28214 __cil_tmp13 = (unsigned int )__cil_tmp12;
28215#line 6127
28216 __cil_tmp14 = (unsigned int )irp;
28217#line 6127
28218 if (__cil_tmp14 == __cil_tmp13) {
28219 {
28220#line 6129
28221 while (1) {
28222 while_184_continue: ;
28223 goto while_184_break;
28224 }
28225 while_184_break: ;
28226 }
28227#line 6135
28228 return (-1073741670L);
28229 } else {
28230
28231 }
28232 }
28233 {
28234#line 6138
28235 __cil_tmp15 = 24 + 8;
28236#line 6138
28237 __cil_tmp16 = 0 + __cil_tmp15;
28238#line 6138
28239 __cil_tmp17 = 64 + __cil_tmp16;
28240#line 6138
28241 __cil_tmp18 = (unsigned int )irp;
28242#line 6138
28243 __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
28244#line 6138
28245 mem_30 = (struct _IO_STACK_LOCATION **)__cil_tmp19;
28246#line 6138
28247 __cil_tmp20 = *mem_30;
28248#line 6138
28249 irpStack = __cil_tmp20 - 1;
28250#line 6139
28251 __cil_tmp21 = 0 + 12;
28252#line 6139
28253 __cil_tmp22 = 4 + __cil_tmp21;
28254#line 6139
28255 __cil_tmp23 = (unsigned int )irpStack;
28256#line 6139
28257 __cil_tmp24 = __cil_tmp23 + __cil_tmp22;
28258#line 6139
28259 mem_31 = (PVOID *)__cil_tmp24;
28260#line 6139
28261 *mem_31 = Data;
28262#line 6144
28263 ntStatus = IofCallDriver(DeviceObject, irp);
28264 }
28265#line 6146
28266 if (ntStatus == 259L) {
28267 {
28268#line 6152
28269 __cil_tmp25 = (void *)(& doneEvent);
28270#line 6152
28271 __cil_tmp26 = (enum _KWAIT_REASON )5;
28272#line 6152
28273 __cil_tmp27 = (void *)0;
28274#line 6152
28275 __cil_tmp28 = (LARGE_INTEGER *)__cil_tmp27;
28276#line 6152
28277 KeWaitForSingleObject(__cil_tmp25, __cil_tmp26, (char)0, (unsigned char)0, __cil_tmp28);
28278#line 6158
28279 __cil_tmp29 = & ioStatus;
28280#line 6158
28281 mem_32 = (NTSTATUS *)__cil_tmp29;
28282#line 6158
28283 ntStatus = *mem_32;
28284 }
28285 } else {
28286
28287 }
28288#line 6161
28289 return (ntStatus);
28290}
28291}
28292#line 6165 "floppy.c"
28293NTSTATUS FlHdbit(PDISKETTE_EXTENSION DisketteExtension )
28294{ NTSTATUS ntStatus ;
28295 SHORT st5 ;
28296 BOOLEAN media144MB ;
28297 BOOLEAN mediaUpTo120MB ;
28298 BOOLEAN supportDrive ;
28299 SET_HD_BIT_PARMS setHdBitParameter ;
28300 unsigned int __cil_tmp8 ;
28301 unsigned int __cil_tmp9 ;
28302 DRIVE_MEDIA_TYPE __cil_tmp10 ;
28303 unsigned int __cil_tmp11 ;
28304 unsigned int __cil_tmp12 ;
28305 unsigned int __cil_tmp13 ;
28306 unsigned int __cil_tmp14 ;
28307 unsigned int __cil_tmp15 ;
28308 unsigned int __cil_tmp16 ;
28309 unsigned int __cil_tmp17 ;
28310 UCHAR __cil_tmp18 ;
28311 int __cil_tmp19 ;
28312 SET_HD_BIT_PARMS *__cil_tmp20 ;
28313 SET_HD_BIT_PARMS *__cil_tmp21 ;
28314 unsigned int __cil_tmp22 ;
28315 unsigned int __cil_tmp23 ;
28316 PDEVICE_OBJECT __cil_tmp24 ;
28317 int __cil_tmp25 ;
28318 int __cil_tmp26 ;
28319 int __cil_tmp27 ;
28320 int __cil_tmp28 ;
28321 unsigned long __cil_tmp29 ;
28322 void *__cil_tmp30 ;
28323 int __cil_tmp31 ;
28324 unsigned int __cil_tmp32 ;
28325 DRIVE_MEDIA_TYPE *mem_33 ;
28326 BOOLEAN *mem_34 ;
28327 BOOLEAN *mem_35 ;
28328 UCHAR *mem_36 ;
28329 UCHAR *mem_37 ;
28330 UCHAR *mem_38 ;
28331 BOOLEAN *mem_39 ;
28332 BOOLEAN *mem_40 ;
28333 PDEVICE_OBJECT *mem_41 ;
28334 BOOLEAN *mem_42 ;
28335
28336 {
28337#line 6195
28338 st5 = (short)0;
28339#line 6210
28340 media144MB = (unsigned char)0;
28341#line 6211
28342 mediaUpTo120MB = (unsigned char)0;
28343#line 6212
28344 supportDrive = (unsigned char)1;
28345 {
28346#line 6217
28347 while (1) {
28348 while_185_continue: ;
28349 goto while_185_break;
28350 }
28351 while_185_break: ;
28352 }
28353 {
28354#line 6219
28355 __cil_tmp8 = (unsigned int )DisketteExtension;
28356#line 6219
28357 __cil_tmp9 = __cil_tmp8 + 216;
28358#line 6219
28359 mem_33 = (DRIVE_MEDIA_TYPE *)__cil_tmp9;
28360#line 6219
28361 __cil_tmp10 = *mem_33;
28362#line 6220
28363 if ((int )__cil_tmp10 == 18) {
28364 goto switch_186_18;
28365 } else {
28366#line 6227
28367 if ((int )__cil_tmp10 == 16) {
28368 goto switch_186_16;
28369 } else {
28370#line 6228
28371 if ((int )__cil_tmp10 == 17) {
28372 goto switch_186_17;
28373 } else {
28374#line 6229
28375 if ((int )__cil_tmp10 == 12) {
28376 goto switch_186_12;
28377 } else {
28378#line 6230
28379 if ((int )__cil_tmp10 == 13) {
28380 goto switch_186_13;
28381 } else {
28382#line 6231
28383 if ((int )__cil_tmp10 == 19) {
28384 goto switch_186_19;
28385 } else {
28386#line 6232
28387 if ((int )__cil_tmp10 == 20) {
28388 goto switch_186_20;
28389 } else {
28390#line 6235
28391 if ((int )__cil_tmp10 == 0) {
28392 goto switch_186_0;
28393 } else {
28394#line 6236
28395 if ((int )__cil_tmp10 == 1) {
28396 goto switch_186_1;
28397 } else {
28398#line 6237
28399 if ((int )__cil_tmp10 == 2) {
28400 goto switch_186_2;
28401 } else {
28402#line 6238
28403 if ((int )__cil_tmp10 == 3) {
28404 goto switch_186_3;
28405 } else {
28406#line 6239
28407 if ((int )__cil_tmp10 == 4) {
28408 goto switch_186_4;
28409 } else {
28410#line 6240
28411 if ((int )__cil_tmp10 == 5) {
28412 goto switch_186_5;
28413 } else {
28414#line 6241
28415 if ((int )__cil_tmp10 == 6) {
28416 goto switch_186_6;
28417 } else {
28418#line 6242
28419 if ((int )__cil_tmp10 == 7) {
28420 goto switch_186_7;
28421 } else {
28422#line 6243
28423 if ((int )__cil_tmp10 == 8) {
28424 goto switch_186_8;
28425 } else {
28426#line 6244
28427 if ((int )__cil_tmp10 == 9) {
28428 goto switch_186_9;
28429 } else {
28430#line 6245
28431 if ((int )__cil_tmp10 == 10) {
28432 goto switch_186_10;
28433 } else {
28434#line 6246
28435 if ((int )__cil_tmp10 == 11) {
28436 goto switch_186_11;
28437 } else {
28438#line 6247
28439 if ((int )__cil_tmp10 == 14) {
28440 goto switch_186_14;
28441 } else {
28442#line 6248
28443 if ((int )__cil_tmp10 == 15) {
28444 goto switch_186_15;
28445 } else {
28446 {
28447 goto switch_186_default;
28448#line 6219
28449 if (0) {
28450 switch_186_18:
28451#line 6226
28452 media144MB = (unsigned char)1;
28453 switch_186_16: ;
28454 switch_186_17: ;
28455 switch_186_12: ;
28456 switch_186_13: ;
28457 switch_186_19: ;
28458 switch_186_20:
28459#line 6234
28460 mediaUpTo120MB = (unsigned char)1;
28461 switch_186_0: ;
28462 switch_186_1: ;
28463 switch_186_2: ;
28464 switch_186_3: ;
28465 switch_186_4: ;
28466 switch_186_5: ;
28467 switch_186_6: ;
28468 switch_186_7: ;
28469 switch_186_8: ;
28470 switch_186_9: ;
28471 switch_186_10: ;
28472 switch_186_11: ;
28473 switch_186_14: ;
28474 switch_186_15: ;
28475 goto switch_186_break;
28476 switch_186_default:
28477#line 6260
28478 mediaUpTo120MB = (unsigned char)1;
28479 goto switch_186_break;
28480 } else {
28481 switch_186_break: ;
28482 }
28483 }
28484 }
28485 }
28486 }
28487 }
28488 }
28489 }
28490 }
28491 }
28492 }
28493 }
28494 }
28495 }
28496 }
28497 }
28498 }
28499 }
28500 }
28501 }
28502 }
28503 }
28504 }
28505 }
28506#line 6265
28507 __cil_tmp11 = (unsigned int )(& setHdBitParameter) + 1;
28508#line 6265
28509 mem_34 = (BOOLEAN *)__cil_tmp11;
28510#line 6265
28511 *mem_34 = media144MB;
28512#line 6266
28513 __cil_tmp12 = (unsigned int )(& setHdBitParameter) + 2;
28514#line 6266
28515 mem_35 = (BOOLEAN *)__cil_tmp12;
28516#line 6266
28517 *mem_35 = mediaUpTo120MB;
28518#line 6267
28519 __cil_tmp13 = (unsigned int )(& setHdBitParameter) + 3;
28520#line 6267
28521 __cil_tmp14 = (unsigned int )DisketteExtension;
28522#line 6267
28523 __cil_tmp15 = __cil_tmp14 + 248;
28524#line 6267
28525 mem_36 = (UCHAR *)__cil_tmp13;
28526#line 6267
28527 mem_37 = (UCHAR *)__cil_tmp15;
28528#line 6267
28529 *mem_36 = *mem_37;
28530 {
28531#line 6268
28532 __cil_tmp16 = (unsigned int )DisketteExtension;
28533#line 6268
28534 __cil_tmp17 = __cil_tmp16 + 174;
28535#line 6268
28536 mem_38 = (UCHAR *)__cil_tmp17;
28537#line 6268
28538 __cil_tmp18 = *mem_38;
28539#line 6268
28540 __cil_tmp19 = (int )__cil_tmp18;
28541#line 6268
28542 if (__cil_tmp19 == 3) {
28543#line 6268
28544 __cil_tmp20 = & setHdBitParameter;
28545#line 6268
28546 mem_39 = (BOOLEAN *)__cil_tmp20;
28547#line 6268
28548 *mem_39 = (unsigned char)1;
28549 } else {
28550#line 6268
28551 __cil_tmp21 = & setHdBitParameter;
28552#line 6268
28553 mem_40 = (BOOLEAN *)__cil_tmp21;
28554#line 6268
28555 *mem_40 = (unsigned char)0;
28556 }
28557 }
28558 {
28559#line 6271
28560 __cil_tmp22 = (unsigned int )DisketteExtension;
28561#line 6271
28562 __cil_tmp23 = __cil_tmp22 + 8;
28563#line 6271
28564 mem_41 = (PDEVICE_OBJECT *)__cil_tmp23;
28565#line 6271
28566 __cil_tmp24 = *mem_41;
28567#line 6271
28568 __cil_tmp25 = 785 << 2;
28569#line 6271
28570 __cil_tmp26 = 7 << 16;
28571#line 6271
28572 __cil_tmp27 = __cil_tmp26 | __cil_tmp25;
28573#line 6271
28574 __cil_tmp28 = __cil_tmp27 | 3;
28575#line 6271
28576 __cil_tmp29 = (unsigned long )__cil_tmp28;
28577#line 6271
28578 __cil_tmp30 = (void *)(& setHdBitParameter);
28579#line 6271
28580 ntStatus = FlFdcDeviceIo(__cil_tmp24, __cil_tmp29, __cil_tmp30);
28581 }
28582 {
28583#line 6275
28584 __cil_tmp31 = ntStatus >= 0L;
28585#line 6275
28586 if (! __cil_tmp31) {
28587#line 6276
28588 return (ntStatus);
28589 } else {
28590
28591 }
28592 }
28593 {
28594#line 6279
28595 __cil_tmp32 = (unsigned int )(& setHdBitParameter) + 4;
28596 {
28597#line 6279
28598 mem_42 = (BOOLEAN *)__cil_tmp32;
28599#line 6279
28600 if (*mem_42) {
28601 {
28602#line 6281
28603 ntStatus = FlDatarateSpecifyConfigure(DisketteExtension);
28604 }
28605 } else {
28606
28607 }
28608 }
28609 }
28610#line 6284
28611 return (ntStatus);
28612}
28613}
28614#line 6286 "floppy.c"
28615NTSTATUS FloppyQueueRequest(PDISKETTE_EXTENSION DisketteExtension , PIRP Irp )
28616{ KIRQL oldIrql ;
28617 NTSTATUS ntStatus ;
28618 LONG tmp ;
28619 void *__cil_tmp6 ;
28620 KSPIN_LOCK *__cil_tmp7 ;
28621 unsigned int __cil_tmp8 ;
28622 unsigned int __cil_tmp9 ;
28623 void (**__cil_tmp10)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
28624 PVOID *__cil_tmp11 ;
28625 LONG *__cil_tmp12 ;
28626 void *__cil_tmp13 ;
28627 long __cil_tmp14 ;
28628 unsigned int __cil_tmp15 ;
28629 unsigned int __cil_tmp16 ;
28630 unsigned int __cil_tmp17 ;
28631 unsigned int __cil_tmp18 ;
28632 void (**__cil_tmp19)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
28633 PVOID *__cil_tmp20 ;
28634 LONG *__cil_tmp21 ;
28635 void *__cil_tmp22 ;
28636 long __cil_tmp23 ;
28637 void *__cil_tmp24 ;
28638 unsigned int __cil_tmp25 ;
28639 unsigned int __cil_tmp26 ;
28640 unsigned int __cil_tmp27 ;
28641 unsigned int __cil_tmp28 ;
28642 unsigned int __cil_tmp29 ;
28643 KSPIN_LOCK *__cil_tmp30 ;
28644 void *__cil_tmp31 ;
28645 unsigned int __cil_tmp32 ;
28646 unsigned int __cil_tmp33 ;
28647 unsigned int __cil_tmp34 ;
28648 unsigned int __cil_tmp35 ;
28649 unsigned int __cil_tmp36 ;
28650 unsigned int __cil_tmp37 ;
28651 unsigned int __cil_tmp38 ;
28652 struct _IO_STACK_LOCATION *__cil_tmp39 ;
28653 unsigned int __cil_tmp40 ;
28654 unsigned int __cil_tmp41 ;
28655 unsigned int __cil_tmp42 ;
28656 unsigned int __cil_tmp43 ;
28657 unsigned int __cil_tmp44 ;
28658 unsigned int __cil_tmp45 ;
28659 unsigned int __cil_tmp46 ;
28660 struct _IO_STACK_LOCATION *__cil_tmp47 ;
28661 unsigned int __cil_tmp48 ;
28662 unsigned int __cil_tmp49 ;
28663 UCHAR __cil_tmp50 ;
28664 int __cil_tmp51 ;
28665 int __cil_tmp52 ;
28666 unsigned int __cil_tmp53 ;
28667 unsigned int __cil_tmp54 ;
28668 LIST_ENTRY *__cil_tmp55 ;
28669 unsigned int __cil_tmp56 ;
28670 unsigned int __cil_tmp57 ;
28671 unsigned int __cil_tmp58 ;
28672 unsigned int __cil_tmp59 ;
28673 LIST_ENTRY *__cil_tmp60 ;
28674 unsigned int __cil_tmp61 ;
28675 unsigned int __cil_tmp62 ;
28676 KSPIN_LOCK *__cil_tmp63 ;
28677 KSPIN_LOCK *__cil_tmp64 ;
28678 BOOLEAN *mem_65 ;
28679 NTSTATUS *mem_66 ;
28680 ULONG_PTR *mem_67 ;
28681 NTSTATUS *mem_68 ;
28682 struct _IO_STACK_LOCATION **mem_69 ;
28683 struct _IO_STACK_LOCATION **mem_70 ;
28684 UCHAR *mem_71 ;
28685 UCHAR *mem_72 ;
28686
28687 {
28688 {
28689#line 6318
28690 ExAcquireFastMutex(PagingMutex);
28691#line 6318
28692 PagingReferenceCount = PagingReferenceCount + 1UL;
28693 }
28694#line 6318
28695 if (PagingReferenceCount == 1UL) {
28696 {
28697#line 6318
28698 __cil_tmp6 = (void *)(& DriverEntry);
28699#line 6318
28700 MmResetDriverPaging(__cil_tmp6);
28701 }
28702 } else {
28703
28704 }
28705 {
28706#line 6318
28707 ExReleaseFastMutex(PagingMutex);
28708#line 6333
28709 __cil_tmp7 = (KSPIN_LOCK *)DisketteExtension;
28710#line 6333
28711 oldIrql = KfAcquireSpinLock(__cil_tmp7);
28712#line 6335
28713 __cil_tmp8 = (unsigned int )Irp;
28714#line 6335
28715 __cil_tmp9 = __cil_tmp8 + 56;
28716#line 6335
28717 __cil_tmp10 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp9;
28718#line 6335
28719 __cil_tmp11 = (PVOID *)__cil_tmp10;
28720#line 6335
28721 __cil_tmp12 = (LONG *)__cil_tmp11;
28722#line 6335
28723 __cil_tmp13 = (void *)(& FloppyCancelQueuedRequest);
28724#line 6335
28725 __cil_tmp14 = (long )__cil_tmp13;
28726#line 6335
28727 InterlockedExchange(__cil_tmp12, __cil_tmp14);
28728 }
28729 {
28730#line 6340
28731 __cil_tmp15 = (unsigned int )Irp;
28732#line 6340
28733 __cil_tmp16 = __cil_tmp15 + 36;
28734 {
28735#line 6340
28736 mem_65 = (BOOLEAN *)__cil_tmp16;
28737#line 6340
28738 if (*mem_65) {
28739 {
28740#line 6340
28741 __cil_tmp17 = (unsigned int )Irp;
28742#line 6340
28743 __cil_tmp18 = __cil_tmp17 + 56;
28744#line 6340
28745 __cil_tmp19 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp18;
28746#line 6340
28747 __cil_tmp20 = (PVOID *)__cil_tmp19;
28748#line 6340
28749 __cil_tmp21 = (LONG *)__cil_tmp20;
28750#line 6340
28751 __cil_tmp22 = (void *)0;
28752#line 6340
28753 __cil_tmp23 = (long )__cil_tmp22;
28754#line 6340
28755 tmp = InterlockedExchange(__cil_tmp21, __cil_tmp23);
28756 }
28757 {
28758#line 6340
28759 __cil_tmp24 = (void *)tmp;
28760#line 6340
28761 if ((void (*)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp24) {
28762 {
28763#line 6345
28764 __cil_tmp25 = (unsigned int )Irp;
28765#line 6345
28766 __cil_tmp26 = __cil_tmp25 + 24;
28767#line 6345
28768 mem_66 = (NTSTATUS *)__cil_tmp26;
28769#line 6345
28770 *mem_66 = -1073741536L;
28771#line 6346
28772 myStatus = -1073741536L;
28773#line 6347
28774 __cil_tmp27 = 24 + 4;
28775#line 6347
28776 __cil_tmp28 = (unsigned int )Irp;
28777#line 6347
28778 __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
28779#line 6347
28780 mem_67 = (ULONG_PTR *)__cil_tmp29;
28781#line 6347
28782 *mem_67 = 0UL;
28783#line 6348
28784 __cil_tmp30 = (KSPIN_LOCK *)DisketteExtension;
28785#line 6348
28786 KfReleaseSpinLock(__cil_tmp30, oldIrql);
28787#line 6349
28788 IofCompleteRequest(Irp, (char)0);
28789#line 6351
28790 ExAcquireFastMutex(PagingMutex);
28791#line 6351
28792 PagingReferenceCount = PagingReferenceCount - 1UL;
28793 }
28794#line 6351
28795 if (PagingReferenceCount == 0UL) {
28796 {
28797#line 6351
28798 __cil_tmp31 = (void *)(& DriverEntry);
28799#line 6351
28800 MmPageEntireDriver(__cil_tmp31);
28801 }
28802 } else {
28803
28804 }
28805 {
28806#line 6351
28807 ExReleaseFastMutex(PagingMutex);
28808#line 6353
28809 ntStatus = -1073741536L;
28810 }
28811 } else {
28812 goto _L;
28813 }
28814 }
28815 } else {
28816 _L:
28817#line 6359
28818 __cil_tmp32 = (unsigned int )Irp;
28819#line 6359
28820 __cil_tmp33 = __cil_tmp32 + 24;
28821#line 6359
28822 mem_68 = (NTSTATUS *)__cil_tmp33;
28823#line 6359
28824 *mem_68 = 259L;
28825#line 6360
28826 myStatus = 259L;
28827#line 6361
28828 __cil_tmp34 = 24 + 8;
28829#line 6361
28830 __cil_tmp35 = 0 + __cil_tmp34;
28831#line 6361
28832 __cil_tmp36 = 64 + __cil_tmp35;
28833#line 6361
28834 __cil_tmp37 = (unsigned int )Irp;
28835#line 6361
28836 __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
28837#line 6361
28838 mem_69 = (struct _IO_STACK_LOCATION **)__cil_tmp38;
28839#line 6361
28840 __cil_tmp39 = *mem_69;
28841#line 6361
28842 __cil_tmp40 = (unsigned int )__cil_tmp39;
28843#line 6361
28844 __cil_tmp41 = __cil_tmp40 + 3;
28845#line 6361
28846 __cil_tmp42 = 24 + 8;
28847#line 6361
28848 __cil_tmp43 = 0 + __cil_tmp42;
28849#line 6361
28850 __cil_tmp44 = 64 + __cil_tmp43;
28851#line 6361
28852 __cil_tmp45 = (unsigned int )Irp;
28853#line 6361
28854 __cil_tmp46 = __cil_tmp45 + __cil_tmp44;
28855#line 6361
28856 mem_70 = (struct _IO_STACK_LOCATION **)__cil_tmp46;
28857#line 6361
28858 __cil_tmp47 = *mem_70;
28859#line 6361
28860 __cil_tmp48 = (unsigned int )__cil_tmp47;
28861#line 6361
28862 __cil_tmp49 = __cil_tmp48 + 3;
28863#line 6361
28864 mem_71 = (UCHAR *)__cil_tmp49;
28865#line 6361
28866 __cil_tmp50 = *mem_71;
28867#line 6361
28868 __cil_tmp51 = (int )__cil_tmp50;
28869#line 6361
28870 __cil_tmp52 = __cil_tmp51 | 1;
28871#line 6361
28872 mem_72 = (UCHAR *)__cil_tmp41;
28873#line 6361
28874 *mem_72 = (unsigned char )__cil_tmp52;
28875#line 6362
28876 if (pended == 0) {
28877#line 6362
28878 pended = 1;
28879 } else {
28880 {
28881#line 6362
28882 assert(0);
28883 }
28884 }
28885 {
28886#line 6363
28887 __cil_tmp53 = (unsigned int )DisketteExtension;
28888#line 6363
28889 __cil_tmp54 = __cil_tmp53 + 16;
28890#line 6363
28891 __cil_tmp55 = (LIST_ENTRY *)__cil_tmp54;
28892#line 6363
28893 __cil_tmp56 = 0 + 24;
28894#line 6363
28895 __cil_tmp57 = 64 + __cil_tmp56;
28896#line 6363
28897 __cil_tmp58 = (unsigned int )Irp;
28898#line 6363
28899 __cil_tmp59 = __cil_tmp58 + __cil_tmp57;
28900#line 6363
28901 __cil_tmp60 = (LIST_ENTRY *)__cil_tmp59;
28902#line 6363
28903 __cil_tmp61 = (unsigned int )DisketteExtension;
28904#line 6363
28905 __cil_tmp62 = __cil_tmp61 + 24;
28906#line 6363
28907 __cil_tmp63 = (KSPIN_LOCK *)__cil_tmp62;
28908#line 6363
28909 ExfInterlockedInsertTailList(__cil_tmp55, __cil_tmp60, __cil_tmp63);
28910#line 6368
28911 __cil_tmp64 = (KSPIN_LOCK *)DisketteExtension;
28912#line 6368
28913 KfReleaseSpinLock(__cil_tmp64, oldIrql);
28914#line 6370
28915 ntStatus = 259L;
28916 }
28917 }
28918 }
28919 }
28920#line 6373
28921 return (ntStatus);
28922}
28923}
28924#line 6375 "floppy.c"
28925void FloppyCancelQueuedRequest(PDEVICE_OBJECT DeviceObject , PIRP Irp )
28926{ PDISKETTE_EXTENSION disketteExtension ;
28927 KIRQL oldIrql ;
28928 PLIST_ENTRY _EX_Blink ;
28929 PLIST_ENTRY _EX_Flink ;
28930 unsigned int __cil_tmp7 ;
28931 unsigned int __cil_tmp8 ;
28932 PVOID __cil_tmp9 ;
28933 KSPIN_LOCK *__cil_tmp10 ;
28934 unsigned int __cil_tmp11 ;
28935 unsigned int __cil_tmp12 ;
28936 unsigned int __cil_tmp13 ;
28937 unsigned int __cil_tmp14 ;
28938 unsigned int __cil_tmp15 ;
28939 unsigned int __cil_tmp16 ;
28940 unsigned int __cil_tmp17 ;
28941 unsigned int __cil_tmp18 ;
28942 unsigned int __cil_tmp19 ;
28943 unsigned int __cil_tmp20 ;
28944 unsigned int __cil_tmp21 ;
28945 unsigned int __cil_tmp22 ;
28946 unsigned int __cil_tmp23 ;
28947 unsigned int __cil_tmp24 ;
28948 unsigned int __cil_tmp25 ;
28949 unsigned int __cil_tmp26 ;
28950 unsigned int __cil_tmp27 ;
28951 unsigned int __cil_tmp28 ;
28952 unsigned int __cil_tmp29 ;
28953 unsigned int __cil_tmp30 ;
28954 unsigned int __cil_tmp31 ;
28955 KSPIN_LOCK *__cil_tmp32 ;
28956 unsigned int __cil_tmp33 ;
28957 unsigned int __cil_tmp34 ;
28958 KIRQL __cil_tmp35 ;
28959 void *__cil_tmp36 ;
28960 PVOID *mem_37 ;
28961 NTSTATUS *mem_38 ;
28962 ULONG_PTR *mem_39 ;
28963 struct _LIST_ENTRY **mem_40 ;
28964 struct _LIST_ENTRY **mem_41 ;
28965 struct _LIST_ENTRY **mem_42 ;
28966 struct _LIST_ENTRY **mem_43 ;
28967 struct _LIST_ENTRY **mem_44 ;
28968 KIRQL *mem_45 ;
28969
28970 {
28971#line 6402
28972 __cil_tmp7 = (unsigned int )DeviceObject;
28973#line 6402
28974 __cil_tmp8 = __cil_tmp7 + 40;
28975#line 6402
28976 mem_37 = (PVOID *)__cil_tmp8;
28977#line 6402
28978 __cil_tmp9 = *mem_37;
28979#line 6402
28980 disketteExtension = (DISKETTE_EXTENSION *)__cil_tmp9;
28981 {
28982#line 6406
28983 while (1) {
28984 while_187_continue: ;
28985 goto while_187_break;
28986 }
28987 while_187_break: ;
28988 }
28989 {
28990#line 6409
28991 __cil_tmp10 = (KSPIN_LOCK *)disketteExtension;
28992#line 6409
28993 oldIrql = KfAcquireSpinLock(__cil_tmp10);
28994#line 6411
28995 __cil_tmp11 = (unsigned int )Irp;
28996#line 6411
28997 __cil_tmp12 = __cil_tmp11 + 24;
28998#line 6411
28999 mem_38 = (NTSTATUS *)__cil_tmp12;
29000#line 6411
29001 *mem_38 = -1073741536L;
29002#line 6412
29003 myStatus = -1073741536L;
29004#line 6413
29005 __cil_tmp13 = 24 + 4;
29006#line 6413
29007 __cil_tmp14 = (unsigned int )Irp;
29008#line 6413
29009 __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
29010#line 6413
29011 mem_39 = (ULONG_PTR *)__cil_tmp15;
29012#line 6413
29013 *mem_39 = 0UL;
29014 }
29015 {
29016#line 6417
29017 __cil_tmp16 = 0 + 24;
29018#line 6417
29019 __cil_tmp17 = 64 + __cil_tmp16;
29020#line 6417
29021 __cil_tmp18 = (unsigned int )Irp;
29022#line 6417
29023 __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
29024 {
29025#line 6417
29026 mem_40 = (struct _LIST_ENTRY **)__cil_tmp19;
29027#line 6417
29028 if (*mem_40) {
29029#line 6418
29030 __cil_tmp20 = 0 + 24;
29031#line 6418
29032 __cil_tmp21 = 64 + __cil_tmp20;
29033#line 6418
29034 __cil_tmp22 = (unsigned int )Irp;
29035#line 6418
29036 __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
29037#line 6418
29038 mem_41 = (struct _LIST_ENTRY **)__cil_tmp23;
29039#line 6418
29040 _EX_Flink = *mem_41;
29041#line 6418
29042 __cil_tmp24 = 0 + 4;
29043#line 6418
29044 __cil_tmp25 = 24 + __cil_tmp24;
29045#line 6418
29046 __cil_tmp26 = 0 + __cil_tmp25;
29047#line 6418
29048 __cil_tmp27 = 64 + __cil_tmp26;
29049#line 6418
29050 __cil_tmp28 = (unsigned int )Irp;
29051#line 6418
29052 __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
29053#line 6418
29054 mem_42 = (struct _LIST_ENTRY **)__cil_tmp29;
29055#line 6418
29056 _EX_Blink = *mem_42;
29057#line 6418
29058 mem_43 = (struct _LIST_ENTRY **)_EX_Blink;
29059#line 6418
29060 *mem_43 = _EX_Flink;
29061#line 6418
29062 __cil_tmp30 = (unsigned int )_EX_Flink;
29063#line 6418
29064 __cil_tmp31 = __cil_tmp30 + 4;
29065#line 6418
29066 mem_44 = (struct _LIST_ENTRY **)__cil_tmp31;
29067#line 6418
29068 *mem_44 = _EX_Blink;
29069 } else {
29070
29071 }
29072 }
29073 }
29074 {
29075#line 6422
29076 __cil_tmp32 = (KSPIN_LOCK *)disketteExtension;
29077#line 6422
29078 KfReleaseSpinLock(__cil_tmp32, oldIrql);
29079#line 6424
29080 __cil_tmp33 = (unsigned int )Irp;
29081#line 6424
29082 __cil_tmp34 = __cil_tmp33 + 37;
29083#line 6424
29084 mem_45 = (KIRQL *)__cil_tmp34;
29085#line 6424
29086 __cil_tmp35 = *mem_45;
29087#line 6424
29088 IoReleaseCancelSpinLock(__cil_tmp35);
29089#line 6426
29090 IofCompleteRequest(Irp, (char)0);
29091#line 6428
29092 ExAcquireFastMutex(PagingMutex);
29093#line 6428
29094 PagingReferenceCount = PagingReferenceCount - 1UL;
29095 }
29096#line 6428
29097 if (PagingReferenceCount == 0UL) {
29098 {
29099#line 6428
29100 __cil_tmp36 = (void *)(& DriverEntry);
29101#line 6428
29102 MmPageEntireDriver(__cil_tmp36);
29103 }
29104 } else {
29105
29106 }
29107 {
29108#line 6428
29109 ExReleaseFastMutex(PagingMutex);
29110 }
29111#line 6432
29112 return;
29113}
29114}
29115#line 6432 "floppy.c"
29116void FloppyProcessQueuedRequests(PDISKETTE_EXTENSION DisketteExtension )
29117{ KIRQL oldIrql ;
29118 PLIST_ENTRY headOfList ;
29119 PIRP currentIrp ;
29120 PIO_STACK_LOCATION irpSp ;
29121 LONG tmp ;
29122 KSPIN_LOCK *__cil_tmp7 ;
29123 unsigned int __cil_tmp8 ;
29124 unsigned int __cil_tmp9 ;
29125 LIST_ENTRY *__cil_tmp10 ;
29126 unsigned int __cil_tmp11 ;
29127 unsigned int __cil_tmp12 ;
29128 KSPIN_LOCK *__cil_tmp13 ;
29129 void *__cil_tmp14 ;
29130 unsigned int __cil_tmp15 ;
29131 unsigned int __cil_tmp16 ;
29132 int __cil_tmp17 ;
29133 unsigned int __cil_tmp18 ;
29134 unsigned int __cil_tmp19 ;
29135 IRP *__cil_tmp20 ;
29136 unsigned int __cil_tmp21 ;
29137 unsigned int __cil_tmp22 ;
29138 LIST_ENTRY *__cil_tmp23 ;
29139 unsigned long __cil_tmp24 ;
29140 CHAR *__cil_tmp25 ;
29141 CHAR *__cil_tmp26 ;
29142 unsigned int __cil_tmp27 ;
29143 unsigned int __cil_tmp28 ;
29144 void (**__cil_tmp29)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ) ;
29145 PVOID *__cil_tmp30 ;
29146 LONG *__cil_tmp31 ;
29147 void *__cil_tmp32 ;
29148 long __cil_tmp33 ;
29149 void *__cil_tmp34 ;
29150 unsigned int __cil_tmp35 ;
29151 unsigned int __cil_tmp36 ;
29152 unsigned int __cil_tmp37 ;
29153 unsigned int __cil_tmp38 ;
29154 unsigned int __cil_tmp39 ;
29155 unsigned int __cil_tmp40 ;
29156 unsigned int __cil_tmp41 ;
29157 unsigned int __cil_tmp42 ;
29158 unsigned int __cil_tmp43 ;
29159 void *__cil_tmp44 ;
29160 void *__cil_tmp45 ;
29161 KSPIN_LOCK *__cil_tmp46 ;
29162 unsigned int __cil_tmp47 ;
29163 unsigned int __cil_tmp48 ;
29164 unsigned int __cil_tmp49 ;
29165 unsigned int __cil_tmp50 ;
29166 unsigned int __cil_tmp51 ;
29167 unsigned int __cil_tmp52 ;
29168 unsigned int __cil_tmp53 ;
29169 UCHAR __cil_tmp54 ;
29170 NTSTATUS (*__cil_tmp55)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29171 unsigned int __cil_tmp56 ;
29172 unsigned int __cil_tmp57 ;
29173 PDEVICE_OBJECT __cil_tmp58 ;
29174 NTSTATUS (*__cil_tmp59)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29175 unsigned int __cil_tmp60 ;
29176 unsigned int __cil_tmp61 ;
29177 PDEVICE_OBJECT __cil_tmp62 ;
29178 unsigned int __cil_tmp63 ;
29179 unsigned int __cil_tmp64 ;
29180 unsigned int __cil_tmp65 ;
29181 unsigned int __cil_tmp66 ;
29182 unsigned int __cil_tmp67 ;
29183 void *__cil_tmp68 ;
29184 KSPIN_LOCK *__cil_tmp69 ;
29185 KSPIN_LOCK *__cil_tmp70 ;
29186 struct _IO_STACK_LOCATION **mem_71 ;
29187 struct _LIST_ENTRY **mem_72 ;
29188 BOOLEAN *mem_73 ;
29189 ULONG_PTR *mem_74 ;
29190 NTSTATUS *mem_75 ;
29191 UCHAR *mem_76 ;
29192 PDEVICE_OBJECT *mem_77 ;
29193 PDEVICE_OBJECT *mem_78 ;
29194 ULONG_PTR *mem_79 ;
29195 NTSTATUS *mem_80 ;
29196
29197 {
29198 {
29199#line 6470
29200 __cil_tmp7 = (KSPIN_LOCK *)DisketteExtension;
29201#line 6470
29202 oldIrql = KfAcquireSpinLock(__cil_tmp7);
29203 }
29204 {
29205#line 6471
29206 while (1) {
29207 while_188_continue: ;
29208 {
29209#line 6471
29210 __cil_tmp8 = (unsigned int )DisketteExtension;
29211#line 6471
29212 __cil_tmp9 = __cil_tmp8 + 16;
29213#line 6471
29214 __cil_tmp10 = (LIST_ENTRY *)__cil_tmp9;
29215#line 6471
29216 __cil_tmp11 = (unsigned int )DisketteExtension;
29217#line 6471
29218 __cil_tmp12 = __cil_tmp11 + 24;
29219#line 6471
29220 __cil_tmp13 = (KSPIN_LOCK *)__cil_tmp12;
29221#line 6471
29222 headOfList = ExfInterlockedRemoveHeadList(__cil_tmp10, __cil_tmp13);
29223 }
29224 {
29225#line 6471
29226 __cil_tmp14 = (void *)0;
29227#line 6471
29228 __cil_tmp15 = (unsigned int )__cil_tmp14;
29229#line 6471
29230 __cil_tmp16 = (unsigned int )headOfList;
29231#line 6471
29232 __cil_tmp17 = __cil_tmp16 != __cil_tmp15;
29233#line 6471
29234 if (! __cil_tmp17) {
29235 goto while_188_break;
29236 } else {
29237
29238 }
29239 }
29240 {
29241#line 6475
29242 __cil_tmp18 = 0 + 24;
29243#line 6475
29244 __cil_tmp19 = 64 + __cil_tmp18;
29245#line 6475
29246 __cil_tmp20 = (IRP *)0;
29247#line 6475
29248 __cil_tmp21 = (unsigned int )__cil_tmp20;
29249#line 6475
29250 __cil_tmp22 = __cil_tmp21 + __cil_tmp19;
29251#line 6475
29252 __cil_tmp23 = (LIST_ENTRY *)__cil_tmp22;
29253#line 6475
29254 __cil_tmp24 = (unsigned long )__cil_tmp23;
29255#line 6475
29256 __cil_tmp25 = (CHAR *)headOfList;
29257#line 6475
29258 __cil_tmp26 = __cil_tmp25 - __cil_tmp24;
29259#line 6475
29260 currentIrp = (IRP *)__cil_tmp26;
29261#line 6479
29262 __cil_tmp27 = (unsigned int )currentIrp;
29263#line 6479
29264 __cil_tmp28 = __cil_tmp27 + 56;
29265#line 6479
29266 __cil_tmp29 = (void (**)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp28;
29267#line 6479
29268 __cil_tmp30 = (PVOID *)__cil_tmp29;
29269#line 6479
29270 __cil_tmp31 = (LONG *)__cil_tmp30;
29271#line 6479
29272 __cil_tmp32 = (void *)0;
29273#line 6479
29274 __cil_tmp33 = (long )__cil_tmp32;
29275#line 6479
29276 tmp = InterlockedExchange(__cil_tmp31, __cil_tmp33);
29277 }
29278 {
29279#line 6479
29280 __cil_tmp34 = (void *)tmp;
29281#line 6479
29282 if ((void (*)(struct _DEVICE_OBJECT *DeviceObject , struct _IRP *Irp ))__cil_tmp34) {
29283#line 6480
29284 __cil_tmp35 = 24 + 8;
29285#line 6480
29286 __cil_tmp36 = 0 + __cil_tmp35;
29287#line 6480
29288 __cil_tmp37 = 64 + __cil_tmp36;
29289#line 6480
29290 __cil_tmp38 = (unsigned int )currentIrp;
29291#line 6480
29292 __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
29293#line 6480
29294 mem_71 = (struct _IO_STACK_LOCATION **)__cil_tmp39;
29295#line 6480
29296 irpSp = *mem_71;
29297 } else {
29298#line 6487
29299 __cil_tmp40 = 0 + 24;
29300#line 6487
29301 __cil_tmp41 = 64 + __cil_tmp40;
29302#line 6487
29303 __cil_tmp42 = (unsigned int )currentIrp;
29304#line 6487
29305 __cil_tmp43 = __cil_tmp42 + __cil_tmp41;
29306#line 6487
29307 __cil_tmp44 = (void *)0;
29308#line 6487
29309 mem_72 = (struct _LIST_ENTRY **)__cil_tmp43;
29310#line 6487
29311 *mem_72 = (struct _LIST_ENTRY *)__cil_tmp44;
29312#line 6488
29313 __cil_tmp45 = (void *)0;
29314#line 6488
29315 currentIrp = (struct _IRP *)__cil_tmp45;
29316 }
29317 }
29318 {
29319#line 6492
29320 __cil_tmp46 = (KSPIN_LOCK *)DisketteExtension;
29321#line 6492
29322 KfReleaseSpinLock(__cil_tmp46, oldIrql);
29323 }
29324#line 6494
29325 if (currentIrp) {
29326 {
29327#line 6495
29328 __cil_tmp47 = (unsigned int )DisketteExtension;
29329#line 6495
29330 __cil_tmp48 = __cil_tmp47 + 13;
29331 {
29332#line 6495
29333 mem_73 = (BOOLEAN *)__cil_tmp48;
29334#line 6495
29335 if (*mem_73) {
29336 {
29337#line 6499
29338 __cil_tmp49 = 24 + 4;
29339#line 6499
29340 __cil_tmp50 = (unsigned int )currentIrp;
29341#line 6499
29342 __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
29343#line 6499
29344 mem_74 = (ULONG_PTR *)__cil_tmp51;
29345#line 6499
29346 *mem_74 = 0UL;
29347#line 6500
29348 __cil_tmp52 = (unsigned int )currentIrp;
29349#line 6500
29350 __cil_tmp53 = __cil_tmp52 + 24;
29351#line 6500
29352 mem_75 = (NTSTATUS *)__cil_tmp53;
29353#line 6500
29354 *mem_75 = -1073741738L;
29355#line 6501
29356 IofCompleteRequest(currentIrp, (char)0);
29357 }
29358 } else {
29359 {
29360#line 6505
29361 mem_76 = (UCHAR *)irpSp;
29362#line 6505
29363 __cil_tmp54 = *mem_76;
29364#line 6506
29365 if ((int )__cil_tmp54 == 3) {
29366 goto switch_189_3;
29367 } else {
29368#line 6507
29369 if ((int )__cil_tmp54 == 4) {
29370 goto switch_189_4;
29371 } else {
29372#line 6512
29373 if ((int )__cil_tmp54 == 14) {
29374 goto switch_189_14;
29375 } else {
29376 {
29377 goto switch_189_default;
29378#line 6505
29379 if (0) {
29380 switch_189_3: ;
29381 switch_189_4:
29382 {
29383#line 6510
29384 __cil_tmp55 = & FloppyReadWrite;
29385#line 6510
29386 __cil_tmp56 = (unsigned int )DisketteExtension;
29387#line 6510
29388 __cil_tmp57 = __cil_tmp56 + 28;
29389#line 6510
29390 mem_77 = (PDEVICE_OBJECT *)__cil_tmp57;
29391#line 6510
29392 __cil_tmp58 = *mem_77;
29393#line 6510
29394 (*__cil_tmp55)(__cil_tmp58, currentIrp);
29395 }
29396 goto switch_189_break;
29397 switch_189_14:
29398 {
29399#line 6515
29400 __cil_tmp59 = & FloppyDeviceControl;
29401#line 6515
29402 __cil_tmp60 = (unsigned int )DisketteExtension;
29403#line 6515
29404 __cil_tmp61 = __cil_tmp60 + 28;
29405#line 6515
29406 mem_78 = (PDEVICE_OBJECT *)__cil_tmp61;
29407#line 6515
29408 __cil_tmp62 = *mem_78;
29409#line 6515
29410 (*__cil_tmp59)(__cil_tmp62, currentIrp);
29411 }
29412 goto switch_189_break;
29413 switch_189_default:
29414 {
29415#line 6520
29416 __cil_tmp63 = 24 + 4;
29417#line 6520
29418 __cil_tmp64 = (unsigned int )currentIrp;
29419#line 6520
29420 __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
29421#line 6520
29422 mem_79 = (ULONG_PTR *)__cil_tmp65;
29423#line 6520
29424 *mem_79 = 0UL;
29425#line 6521
29426 __cil_tmp66 = (unsigned int )currentIrp;
29427#line 6521
29428 __cil_tmp67 = __cil_tmp66 + 24;
29429#line 6521
29430 mem_80 = (NTSTATUS *)__cil_tmp67;
29431#line 6521
29432 *mem_80 = -1073741823L;
29433#line 6522
29434 IofCompleteRequest(currentIrp, (char)0);
29435 }
29436 } else {
29437 switch_189_break: ;
29438 }
29439 }
29440 }
29441 }
29442 }
29443 }
29444 }
29445 }
29446 }
29447 } else {
29448
29449 }
29450#line 6527
29451 if (currentIrp) {
29452 {
29453#line 6531
29454 ExAcquireFastMutex(PagingMutex);
29455#line 6531
29456 PagingReferenceCount = PagingReferenceCount - 1UL;
29457 }
29458#line 6531
29459 if (PagingReferenceCount == 0UL) {
29460 {
29461#line 6531
29462 __cil_tmp68 = (void *)(& DriverEntry);
29463#line 6531
29464 MmPageEntireDriver(__cil_tmp68);
29465 }
29466 } else {
29467
29468 }
29469 {
29470#line 6531
29471 ExReleaseFastMutex(PagingMutex);
29472 }
29473 } else {
29474
29475 }
29476 {
29477#line 6535
29478 __cil_tmp69 = (KSPIN_LOCK *)DisketteExtension;
29479#line 6535
29480 oldIrql = KfAcquireSpinLock(__cil_tmp69);
29481 }
29482 }
29483 while_188_break: ;
29484 }
29485 {
29486#line 6540
29487 __cil_tmp70 = (KSPIN_LOCK *)DisketteExtension;
29488#line 6540
29489 KfReleaseSpinLock(__cil_tmp70, oldIrql);
29490 }
29491#line 6544
29492 return;
29493}
29494}
29495#line 832 "C:/NTDDK/inc/ntdef.h"
29496#pragma warning(push)
29497#line 834
29498#pragma warning(disable:4035)
29499#line 835 "C:/NTDDK/inc/ntdef.h"
29500__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShllMod32___1)(ULONGLONG Value ,
29501 ULONG ShiftCount )
29502{
29503
29504 {
29505#line 850
29506 return (0ULL);
29507}
29508}
29509#line 845 "C:/NTDDK/inc/ntdef.h"
29510__inline LONGLONG ( __attribute__((__stdcall__)) Int64ShraMod32___1)(LONGLONG Value ,
29511 ULONG ShiftCount )
29512{
29513
29514 {
29515#line 860
29516 return (0LL);
29517}
29518}
29519#line 855 "C:/NTDDK/inc/ntdef.h"
29520__inline ULONGLONG ( __attribute__((__stdcall__)) Int64ShrlMod32___1)(ULONGLONG Value ,
29521 ULONG ShiftCount )
29522{
29523
29524 {
29525#line 870
29526 return (0ULL);
29527}
29528}
29529#line 873
29530#pragma warning(pop)
29531#line 25 "C:/NTDDK/inc/pshpack4.h"
29532#pragma warning(disable:4103)
29533#line 28 "C:/NTDDK/inc/poppack.h"
29534#pragma warning(disable:4103)
29535#line 1953 "C:/NTDDK/inc/ddk/ntddk.h"
29536#pragma warning(push)
29537#line 1955
29538#pragma warning(disable:4035)
29539#line 2020
29540#pragma warning(pop)
29541#line 5253
29542#pragma warning(disable:4035)
29543#line 7015
29544#pragma warning(push)
29545#line 7017
29546#pragma warning(disable:4164)
29547#line 7020
29548#pragma function(_enable)
29549#line 7021
29550#pragma function(_disable)
29551#line 7025
29552#pragma warning(pop)
29553#line 25 "C:/NTDDK/inc/pshpack4.h"
29554#pragma warning(disable:4103)
29555#line 28 "C:/NTDDK/inc/poppack.h"
29556#pragma warning(disable:4103)
29557#line 25 "C:/NTDDK/inc/pshpack1.h"
29558#pragma warning(disable:4103)
29559#line 28 "C:/NTDDK/inc/poppack.h"
29560#pragma warning(disable:4103)
29561#line 25 "C:/NTDDK/inc/pshpack4.h"
29562#pragma warning(disable:4103)
29563#line 28 "C:/NTDDK/inc/poppack.h"
29564#pragma warning(disable:4103)
29565#line 17779 "C:/NTDDK/inc/ddk/ntddk.h"
29566#pragma warning(disable:4200)
29567#line 17785
29568#pragma warning(default:4200)
29569#line 37 "../slam-kernel.c"
29570IRP *pirp ;
29571#line 39 "../slam-kernel.c"
29572void stub_driver_init(void)
29573{
29574
29575 {
29576#line 41
29577 s = 1;
29578#line 46
29579 pended = 0;
29580#line 47
29581 compFptr = (NTSTATUS (*)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))0;
29582#line 48
29583 compRegistered = 0;
29584#line 49
29585 lowerDriverReturn = 0;
29586#line 50
29587 setEventCalled = 0;
29588#line 51
29589 customIrp = 0;
29590#line 54
29591 return;
29592}
29593}
29594#line 48 "../slam-kernel.c"
29595int main(void)
29596{ DRIVER_OBJECT d ;
29597 UNICODE_STRING u ;
29598 NTSTATUS status ;
29599 int we_should_unload ;
29600 IRP irp ;
29601 int __BLAST_NONDET = __VERIFIER_nondet_int() ;
29602 int irp_choice = __VERIFIER_nondet_int() ;
29603 DEVICE_OBJECT devobj ;
29604 NTSTATUS (*__cil_tmp9)(PDRIVER_OBJECT DriverObject , PUNICODE_STRING RegistryPath ) ;
29605 unsigned int __cil_tmp10 ;
29606 unsigned int __cil_tmp11 ;
29607 unsigned int __cil_tmp12 ;
29608 unsigned int __cil_tmp13 ;
29609 int __cil_tmp14 ;
29610 NTSTATUS (*__cil_tmp15)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29611 NTSTATUS (*__cil_tmp16)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29612 NTSTATUS (*__cil_tmp17)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29613 NTSTATUS (*__cil_tmp18)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29614 NTSTATUS (*__cil_tmp19)(PDEVICE_OBJECT DeviceObject , PIRP Irp ) ;
29615 void (*__cil_tmp20)(PDRIVER_OBJECT DriverObject ) ;
29616 int __cil_tmp21 ;
29617 int __cil_tmp22 ;
29618 long __cil_tmp23 ;
29619 NTSTATUS *mem_24 ;
29620 NTSTATUS *mem_25 ;
29621
29622 {
29623 {
29624#line 51
29625 status = 0L;
29626#line 54
29627 pirp = & irp;
29628#line 56
29629 __cil_tmp9 = & DriverEntry;
29630#line 56
29631 status = (*__cil_tmp9)(& d, & u);
29632 }
29633#line 58
29634 if (status >= 0L) {
29635#line 71
29636 s = 1;
29637#line 72
29638 customIrp = 0;
29639#line 72
29640 setEventCalled = customIrp;
29641#line 72
29642 lowerDriverReturn = setEventCalled;
29643#line 72
29644 compRegistered = lowerDriverReturn;
29645#line 72
29646 compFptr = (NTSTATUS (*)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ))compRegistered;
29647#line 72
29648 pended = (int )compFptr;
29649#line 75
29650 __cil_tmp10 = (unsigned int )pirp;
29651#line 75
29652 __cil_tmp11 = __cil_tmp10 + 24;
29653#line 75
29654 mem_24 = (NTSTATUS *)__cil_tmp11;
29655#line 75
29656 *mem_24 = 0L;
29657#line 76
29658 myStatus = 0L;
29659#line 77
29660 if (irp_choice == 0) {
29661#line 77
29662 __cil_tmp12 = (unsigned int )pirp;
29663#line 77
29664 __cil_tmp13 = __cil_tmp12 + 24;
29665#line 77
29666 mem_25 = (NTSTATUS *)__cil_tmp13;
29667#line 77
29668 *mem_25 = -1073741637L;
29669#line 78
29670 myStatus = -1073741637L;
29671 } else {
29672
29673 }
29674 {
29675#line 82
29676 stub_driver_init();
29677 }
29678 {
29679#line 84
29680 __cil_tmp14 = status >= 0L;
29681#line 84
29682 if (! __cil_tmp14) {
29683#line 84
29684 return (-1);
29685 } else {
29686
29687 }
29688 }
29689#line 89
29690 if (__BLAST_NONDET == 0) {
29691 goto switch_190_0;
29692 } else {
29693#line 94
29694 if (__BLAST_NONDET == 1) {
29695 goto switch_190_1;
29696 } else {
29697#line 100
29698 if (__BLAST_NONDET == 2) {
29699 goto switch_190_2;
29700 } else {
29701#line 106
29702 if (__BLAST_NONDET == 3) {
29703 goto switch_190_3;
29704 } else {
29705#line 112
29706 if (__BLAST_NONDET == 4) {
29707 goto switch_190_4;
29708 } else {
29709 {
29710 goto switch_190_default;
29711#line 88
29712 if (0) {
29713 switch_190_0:
29714 {
29715#line 92
29716 __cil_tmp15 = & FloppyCreateClose;
29717#line 92
29718 status = (*__cil_tmp15)(& devobj, pirp);
29719 }
29720 goto switch_190_break;
29721 switch_190_1:
29722 {
29723#line 98
29724 __cil_tmp16 = & FloppyCreateClose;
29725#line 98
29726 status = (*__cil_tmp16)(& devobj, pirp);
29727 }
29728 goto switch_190_break;
29729 switch_190_2:
29730 {
29731#line 104
29732 __cil_tmp17 = & FloppyDeviceControl;
29733#line 104
29734 status = (*__cil_tmp17)(& devobj, pirp);
29735 }
29736 goto switch_190_break;
29737 switch_190_3:
29738 {
29739#line 110
29740 __cil_tmp18 = & FloppyPnp;
29741#line 110
29742 status = (*__cil_tmp18)(& devobj, pirp);
29743 }
29744 goto switch_190_break;
29745 switch_190_4:
29746 {
29747#line 116
29748 __cil_tmp19 = & FloppyPower;
29749#line 116
29750 status = (*__cil_tmp19)(& devobj, pirp);
29751 }
29752 goto switch_190_break;
29753 switch_190_default: ;
29754#line 180
29755 return (-1);
29756 } else {
29757 switch_190_break: ;
29758 }
29759 }
29760 }
29761 }
29762 }
29763 }
29764 }
29765#line 185
29766 if (we_should_unload) {
29767 {
29768#line 187
29769 __cil_tmp20 = & FloppyUnload;
29770#line 187
29771 (*__cil_tmp20)(& d);
29772 }
29773 } else {
29774
29775 }
29776 } else {
29777
29778 }
29779#line 192
29780 if (pended == 1) {
29781#line 192
29782 if (s == 1) {
29783#line 193
29784 s = 1;
29785 } else {
29786 goto _L___2;
29787 }
29788 } else {
29789 _L___2:
29790#line 195
29791 if (pended == 1) {
29792#line 195
29793 if (s == 6) {
29794#line 196
29795 s = 6;
29796 } else {
29797 goto _L___1;
29798 }
29799 } else {
29800 _L___1:
29801 {
29802#line 198
29803 __cil_tmp21 = s == 0;
29804#line 198
29805 if (! __cil_tmp21) {
29806 {
29807#line 198
29808 __cil_tmp22 = status == -1L;
29809#line 198
29810 if (! __cil_tmp22) {
29811#line 201
29812 if (s != 4) {
29813#line 201
29814 if (s != 7) {
29815#line 201
29816 if (s != 2) {
29817
29818 } else {
29819 goto _L___0;
29820 }
29821 } else {
29822 goto _L___0;
29823 }
29824 } else {
29825 _L___0:
29826#line 203
29827 if (pended == 1) {
29828#line 204
29829 if (status != 259L) {
29830#line 204
29831 status = 0L;
29832 } else {
29833
29834 }
29835 } else {
29836#line 206
29837 if (s == 2) {
29838#line 207
29839 if (status == 259L) {
29840 {
29841#line 207
29842 assert(0);
29843 }
29844 } else {
29845
29846 }
29847 } else {
29848 {
29849#line 209
29850 __cil_tmp23 = (long )lowerDriverReturn;
29851#line 209
29852 if (status != __cil_tmp23) {
29853 {
29854#line 209
29855 assert(0);
29856 }
29857 } else {
29858
29859 }
29860 }
29861 }
29862 }
29863 }
29864 } else {
29865
29866 }
29867 }
29868 } else {
29869
29870 }
29871 }
29872 }
29873 }
29874#line 216
29875 status = 0L;
29876#line 217
29877 return ((int )status);
29878}
29879}
29880#line 220 "../slam-kernel.c"
29881char _SLAM_alloc_dummy ;
29882#line 222 "../slam-kernel.c"
29883char *malloc(int i )
29884{
29885
29886 {
29887#line 222
29888 return (& _SLAM_alloc_dummy);
29889}
29890}
29891#line 230
29892 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex ) ;
29893#line 230 "../slam-kernel.c"
29894void ( __attribute__((__fastcall__)) ExAcquireFastMutex)(PFAST_MUTEX FastMutex )
29895{
29896
29897 {
29898#line 239
29899 return;
29900}
29901}
29902#line 240
29903 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex ) ;
29904#line 240 "../slam-kernel.c"
29905void ( __attribute__((__fastcall__)) ExReleaseFastMutex)(PFAST_MUTEX FastMutex )
29906{
29907
29908 {
29909#line 249
29910 return;
29911}
29912}
29913#line 264
29914 __attribute__((__dllimport__)) PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType ,
29915 SIZE_T NumberOfBytes ,
29916 ULONG Tag ) ;
29917#line 264 "../slam-kernel.c"
29918PVOID ( __attribute__((__stdcall__)) ExAllocatePoolWithTag)(POOL_TYPE PoolType , SIZE_T NumberOfBytes ,
29919 ULONG Tag )
29920{ PVOID x ;
29921 char *tmp ;
29922 int __cil_tmp6 ;
29923
29924 {
29925 {
29926#line 274
29927 __cil_tmp6 = (int )NumberOfBytes;
29928#line 274
29929 tmp = malloc(__cil_tmp6);
29930#line 274
29931 x = (void *)tmp;
29932 }
29933#line 275
29934 return (x);
29935}
29936}
29937#line 279
29938 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P ) ;
29939#line 279 "../slam-kernel.c"
29940void ( __attribute__((__stdcall__)) ExFreePool)(PVOID P )
29941{
29942
29943 {
29944#line 287
29945 return;
29946}
29947}
29948#line 288
29949 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead ,
29950 PLIST_ENTRY ListEntry ,
29951 PKSPIN_LOCK Lock ) ;
29952#line 288 "../slam-kernel.c"
29953PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertHeadList)(PLIST_ENTRY ListHead ,
29954 PLIST_ENTRY ListEntry ,
29955 PKSPIN_LOCK Lock )
29956{ void *__cil_tmp4 ;
29957
29958 {
29959 {
29960#line 296
29961 __cil_tmp4 = (void *)0;
29962#line 296
29963 return ((struct _LIST_ENTRY *)__cil_tmp4);
29964 }
29965}
29966}
29967#line 299
29968 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead ,
29969 PLIST_ENTRY ListEntry ,
29970 PKSPIN_LOCK Lock ) ;
29971#line 299 "../slam-kernel.c"
29972PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedInsertTailList)(PLIST_ENTRY ListHead ,
29973 PLIST_ENTRY ListEntry ,
29974 PKSPIN_LOCK Lock )
29975{ void *__cil_tmp4 ;
29976
29977 {
29978 {
29979#line 308
29980 __cil_tmp4 = (void *)0;
29981#line 308
29982 return ((struct _LIST_ENTRY *)__cil_tmp4);
29983 }
29984}
29985}
29986#line 311
29987 __attribute__((__dllimport__)) PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead ,
29988 PKSPIN_LOCK Lock ) ;
29989#line 311 "../slam-kernel.c"
29990PLIST_ENTRY ( __attribute__((__fastcall__)) ExfInterlockedRemoveHeadList)(PLIST_ENTRY ListHead ,
29991 PKSPIN_LOCK Lock )
29992{ void *__cil_tmp3 ;
29993
29994 {
29995 {
29996#line 319
29997 __cil_tmp3 = (void *)0;
29998#line 319
29999 return ((struct _LIST_ENTRY *)__cil_tmp3);
30000 }
30001}
30002}
30003#line 335
30004 __attribute__((__dllimport__)) PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length ,
30005 BOOLEAN SecondaryBuffer , BOOLEAN ChargeQuota ,
30006 PIRP Irp ) ;
30007#line 335 "../slam-kernel.c"
30008PMDL IoAllocateMdl(PVOID VirtualAddress , ULONG Length , BOOLEAN SecondaryBuffer ,
30009 BOOLEAN ChargeQuota , PIRP Irp )
30010{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30011 char *tmp ;
30012 int __cil_tmp8 ;
30013 void *__cil_tmp9 ;
30014 void *__cil_tmp10 ;
30015
30016 {
30017#line 347
30018 if (__BLAST_NONDET == 0) {
30019 goto switch_191_0;
30020 } else {
30021 {
30022 goto switch_191_default;
30023#line 346
30024 if (0) {
30025 switch_191_0:
30026 {
30027#line 347
30028 __cil_tmp8 = (int )28U;
30029#line 347
30030 tmp = malloc(__cil_tmp8);
30031 }
30032 {
30033#line 347
30034 __cil_tmp9 = (void *)tmp;
30035#line 347
30036 return ((struct _MDL *)__cil_tmp9);
30037 }
30038 switch_191_default: ;
30039 {
30040#line 348
30041 __cil_tmp10 = (void *)0;
30042#line 348
30043 return ((struct _MDL *)__cil_tmp10);
30044 }
30045 } else {
30046 switch_191_break: ;
30047 }
30048 }
30049 }
30050}
30051}
30052#line 352
30053 __attribute__((__dllimport__)) PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice ,
30054 PDEVICE_OBJECT TargetDevice ) ;
30055#line 352 "../slam-kernel.c"
30056PDEVICE_OBJECT IoAttachDeviceToDeviceStack(PDEVICE_OBJECT SourceDevice , PDEVICE_OBJECT TargetDevice )
30057{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30058 void *__cil_tmp4 ;
30059
30060 {
30061#line 361
30062 if (__BLAST_NONDET == 0) {
30063 goto switch_192_0;
30064 } else {
30065 {
30066 goto switch_192_default;
30067#line 360
30068 if (0) {
30069 switch_192_0: ;
30070#line 361
30071 return (TargetDevice);
30072 switch_192_default: ;
30073 {
30074#line 362
30075 __cil_tmp4 = (void *)0;
30076#line 362
30077 return ((struct _DEVICE_OBJECT *)__cil_tmp4);
30078 }
30079 } else {
30080 switch_192_break: ;
30081 }
30082 }
30083 }
30084}
30085}
30086#line 366
30087 __attribute__((__dllimport__)) PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction ,
30088 PDEVICE_OBJECT DeviceObject ,
30089 PVOID Buffer ,
30090 ULONG Length ,
30091 PLARGE_INTEGER StartingOffset ,
30092 PIO_STATUS_BLOCK IoStatusBlock ) ;
30093#line 366 "../slam-kernel.c"
30094PIRP IoBuildAsynchronousFsdRequest(ULONG MajorFunction , PDEVICE_OBJECT DeviceObject ,
30095 PVOID Buffer , ULONG Length , PLARGE_INTEGER StartingOffset ,
30096 PIO_STATUS_BLOCK IoStatusBlock )
30097{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30098 char *tmp ;
30099 int __cil_tmp9 ;
30100 void *__cil_tmp10 ;
30101 void *__cil_tmp11 ;
30102
30103 {
30104#line 378
30105 customIrp = 1;
30106#line 381
30107 if (__BLAST_NONDET == 0) {
30108 goto switch_193_0;
30109 } else {
30110 {
30111 goto switch_193_default;
30112#line 380
30113 if (0) {
30114 switch_193_0:
30115 {
30116#line 381
30117 __cil_tmp9 = (int )112U;
30118#line 381
30119 tmp = malloc(__cil_tmp9);
30120 }
30121 {
30122#line 381
30123 __cil_tmp10 = (void *)tmp;
30124#line 381
30125 return ((struct _IRP *)__cil_tmp10);
30126 }
30127 switch_193_default: ;
30128 {
30129#line 382
30130 __cil_tmp11 = (void *)0;
30131#line 382
30132 return ((struct _IRP *)__cil_tmp11);
30133 }
30134 } else {
30135 switch_193_break: ;
30136 }
30137 }
30138 }
30139}
30140}
30141#line 397
30142 __attribute__((__dllimport__)) PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode ,
30143 PDEVICE_OBJECT DeviceObject ,
30144 PVOID InputBuffer ,
30145 ULONG InputBufferLength ,
30146 PVOID OutputBuffer ,
30147 ULONG OutputBufferLength ,
30148 BOOLEAN InternalDeviceIoControl ,
30149 PKEVENT Event ,
30150 PIO_STATUS_BLOCK IoStatusBlock ) ;
30151#line 397 "../slam-kernel.c"
30152PIRP IoBuildDeviceIoControlRequest(ULONG IoControlCode , PDEVICE_OBJECT DeviceObject ,
30153 PVOID InputBuffer , ULONG InputBufferLength , PVOID OutputBuffer ,
30154 ULONG OutputBufferLength , BOOLEAN InternalDeviceIoControl ,
30155 PKEVENT Event , PIO_STATUS_BLOCK IoStatusBlock )
30156{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30157 char *tmp ;
30158 int __cil_tmp12 ;
30159 void *__cil_tmp13 ;
30160 void *__cil_tmp14 ;
30161
30162 {
30163#line 412
30164 customIrp = 1;
30165#line 415
30166 if (__BLAST_NONDET == 0) {
30167 goto switch_194_0;
30168 } else {
30169 {
30170 goto switch_194_default;
30171#line 414
30172 if (0) {
30173 switch_194_0:
30174 {
30175#line 415
30176 __cil_tmp12 = (int )112U;
30177#line 415
30178 tmp = malloc(__cil_tmp12);
30179 }
30180 {
30181#line 415
30182 __cil_tmp13 = (void *)tmp;
30183#line 415
30184 return ((struct _IRP *)__cil_tmp13);
30185 }
30186 switch_194_default: ;
30187 {
30188#line 416
30189 __cil_tmp14 = (void *)0;
30190#line 416
30191 return ((struct _IRP *)__cil_tmp14);
30192 }
30193 } else {
30194 switch_194_break: ;
30195 }
30196 }
30197 }
30198}
30199}
30200#line 420
30201 __attribute__((__dllimport__)) NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject ,
30202 ULONG DeviceExtensionSize ,
30203 PUNICODE_STRING DeviceName ,
30204 ULONG DeviceType , ULONG DeviceCharacteristics ,
30205 BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject ) ;
30206#line 420 "../slam-kernel.c"
30207NTSTATUS IoCreateDevice(PDRIVER_OBJECT DriverObject , ULONG DeviceExtensionSize ,
30208 PUNICODE_STRING DeviceName , ULONG DeviceType , ULONG DeviceCharacteristics ,
30209 BOOLEAN Exclusive , PDEVICE_OBJECT *DeviceObject )
30210{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30211 char *tmp ;
30212 int __cil_tmp10 ;
30213 void *__cil_tmp11 ;
30214
30215 {
30216#line 434
30217 if (__BLAST_NONDET == 0) {
30218 goto switch_195_0;
30219 } else {
30220 {
30221 goto switch_195_default;
30222#line 433
30223 if (0) {
30224 switch_195_0:
30225 {
30226#line 434
30227 __cil_tmp10 = (int )184U;
30228#line 434
30229 tmp = malloc(__cil_tmp10);
30230#line 434
30231 __cil_tmp11 = (void *)tmp;
30232#line 434
30233 *DeviceObject = (struct _DEVICE_OBJECT *)__cil_tmp11;
30234 }
30235#line 435
30236 return (0L);
30237 switch_195_default: ;
30238#line 441
30239 return (-1073741823L);
30240 } else {
30241 switch_195_break: ;
30242 }
30243 }
30244 }
30245}
30246}
30247#line 446
30248 __attribute__((__dllimport__)) NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName ,
30249 PUNICODE_STRING DeviceName ) ;
30250#line 446 "../slam-kernel.c"
30251NTSTATUS IoCreateSymbolicLink(PUNICODE_STRING SymbolicLinkName , PUNICODE_STRING DeviceName )
30252{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30253
30254 {
30255#line 455
30256 if (__BLAST_NONDET == 0) {
30257 goto switch_196_0;
30258 } else {
30259 {
30260 goto switch_196_default;
30261#line 454
30262 if (0) {
30263 switch_196_0: ;
30264#line 455
30265 return (0L);
30266 switch_196_default: ;
30267#line 456
30268 return (-1073741823L);
30269 } else {
30270 switch_196_break: ;
30271 }
30272 }
30273 }
30274}
30275}
30276#line 460
30277 __attribute__((__dllimport__)) void IoDeleteDevice(PDEVICE_OBJECT DeviceObject ) ;
30278#line 460 "../slam-kernel.c"
30279void IoDeleteDevice(PDEVICE_OBJECT DeviceObject )
30280{
30281
30282 {
30283#line 464
30284 return;
30285}
30286}
30287#line 469
30288 __attribute__((__dllimport__)) NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName ) ;
30289#line 469 "../slam-kernel.c"
30290NTSTATUS IoDeleteSymbolicLink(PUNICODE_STRING SymbolicLinkName )
30291{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30292
30293 {
30294#line 477
30295 if (__BLAST_NONDET == 0) {
30296 goto switch_197_0;
30297 } else {
30298 {
30299 goto switch_197_default;
30300#line 476
30301 if (0) {
30302 switch_197_0: ;
30303#line 477
30304 return (0L);
30305 switch_197_default: ;
30306#line 478
30307 return (-1073741823L);
30308 } else {
30309 switch_197_break: ;
30310 }
30311 }
30312 }
30313}
30314}
30315#line 482
30316 __attribute__((__dllimport__)) void IoDetachDevice(PDEVICE_OBJECT TargetDevice ) ;
30317#line 482 "../slam-kernel.c"
30318void IoDetachDevice(PDEVICE_OBJECT TargetDevice )
30319{
30320
30321 {
30322#line 486
30323 return;
30324}
30325}
30326#line 491
30327 __attribute__((__dllimport__)) void IoFreeIrp(PIRP Irp ) ;
30328#line 491 "../slam-kernel.c"
30329void IoFreeIrp(PIRP Irp )
30330{
30331
30332 {
30333#line 495
30334 return;
30335}
30336}
30337#line 500
30338 __attribute__((__dllimport__)) void IoFreeMdl(PMDL Mdl ) ;
30339#line 500 "../slam-kernel.c"
30340void IoFreeMdl(PMDL Mdl )
30341{
30342
30343 {
30344#line 504
30345 return;
30346}
30347}
30348#line 509
30349 __attribute__((__dllimport__)) PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void) ;
30350#line 509 "../slam-kernel.c"
30351PCONFIGURATION_INFORMATION IoGetConfigurationInformation(void)
30352{ char *tmp ;
30353 int __cil_tmp2 ;
30354 void *__cil_tmp3 ;
30355
30356 {
30357 {
30358#line 514
30359 __cil_tmp2 = (int )40U;
30360#line 514
30361 tmp = malloc(__cil_tmp2);
30362 }
30363 {
30364#line 514
30365 __cil_tmp3 = (void *)tmp;
30366#line 514
30367 return ((struct _CONFIGURATION_INFORMATION *)__cil_tmp3);
30368 }
30369}
30370}
30371#line 517
30372 __attribute__((__dllimport__)) NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType ,
30373 PULONG BusNumber ,
30374 PCONFIGURATION_TYPE ControllerType ,
30375 PULONG ControllerNumber ,
30376 PCONFIGURATION_TYPE PeripheralType ,
30377 PULONG PeripheralNumber ,
30378 NTSTATUS (*CalloutRoutine)(PVOID Context ,
30379 PUNICODE_STRING PathName ,
30380 INTERFACE_TYPE BusType ,
30381 ULONG BusNumber ,
30382 PKEY_VALUE_FULL_INFORMATION *BusInformation ,
30383 CONFIGURATION_TYPE ControllerType ,
30384 ULONG ControllerNumber ,
30385 PKEY_VALUE_FULL_INFORMATION *ControllerInformation ,
30386 CONFIGURATION_TYPE PeripheralType ,
30387 ULONG PeripheralNumber ,
30388 PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ,
30389 PVOID Context ) ;
30390#line 517 "../slam-kernel.c"
30391NTSTATUS IoQueryDeviceDescription(PINTERFACE_TYPE BusType , PULONG BusNumber , PCONFIGURATION_TYPE ControllerType ,
30392 PULONG ControllerNumber , PCONFIGURATION_TYPE PeripheralType ,
30393 PULONG PeripheralNumber , NTSTATUS (*CalloutRoutine)(PVOID Context ,
30394 PUNICODE_STRING PathName ,
30395 INTERFACE_TYPE BusType ,
30396 ULONG BusNumber ,
30397 PKEY_VALUE_FULL_INFORMATION *BusInformation ,
30398 CONFIGURATION_TYPE ControllerType ,
30399 ULONG ControllerNumber ,
30400 PKEY_VALUE_FULL_INFORMATION *ControllerInformation ,
30401 CONFIGURATION_TYPE PeripheralType ,
30402 ULONG PeripheralNumber ,
30403 PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ) ,
30404 PVOID Context )
30405{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30406
30407 {
30408#line 532
30409 if (__BLAST_NONDET == 0) {
30410 goto switch_198_0;
30411 } else {
30412 {
30413 goto switch_198_default;
30414#line 531
30415 if (0) {
30416 switch_198_0: ;
30417#line 532
30418 return (0L);
30419 switch_198_default: ;
30420#line 533
30421 return (-1073741823L);
30422 } else {
30423 switch_198_break: ;
30424 }
30425 }
30426 }
30427}
30428}
30429#line 537
30430 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject ,
30431 GUID const *InterfaceClassGuid ,
30432 PUNICODE_STRING ReferenceString ,
30433 PUNICODE_STRING SymbolicLinkName ) ;
30434#line 537 "../slam-kernel.c"
30435NTSTATUS ( __attribute__((__stdcall__)) IoRegisterDeviceInterface)(PDEVICE_OBJECT PhysicalDeviceObject ,
30436 GUID const *InterfaceClassGuid ,
30437 PUNICODE_STRING ReferenceString ,
30438 PUNICODE_STRING SymbolicLinkName )
30439{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30440
30441 {
30442#line 549
30443 if (__BLAST_NONDET == 0) {
30444 goto switch_199_0;
30445 } else {
30446 {
30447 goto switch_199_default;
30448#line 548
30449 if (0) {
30450 switch_199_0: ;
30451#line 549
30452 return (0L);
30453 switch_199_default: ;
30454#line 550
30455 return (-1073741808L);
30456 } else {
30457 switch_199_break: ;
30458 }
30459 }
30460 }
30461}
30462}
30463#line 554
30464 __attribute__((__dllimport__)) void IoReleaseCancelSpinLock(KIRQL Irql ) ;
30465#line 554 "../slam-kernel.c"
30466void IoReleaseCancelSpinLock(KIRQL Irql )
30467{
30468
30469 {
30470#line 558
30471 return;
30472}
30473}
30474#line 563
30475 __attribute__((__dllimport__)) NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName ,
30476 BOOLEAN Enable ) ;
30477#line 563 "../slam-kernel.c"
30478NTSTATUS IoSetDeviceInterfaceState(PUNICODE_STRING SymbolicLinkName , BOOLEAN Enable )
30479{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30480
30481 {
30482#line 572
30483 if (__BLAST_NONDET == 0) {
30484 goto switch_200_0;
30485 } else {
30486 {
30487 goto switch_200_default;
30488#line 571
30489 if (0) {
30490 switch_200_0: ;
30491#line 572
30492 return (0L);
30493 switch_200_default: ;
30494#line 577
30495 return (-1073741823L);
30496 } else {
30497 switch_200_break: ;
30498 }
30499 }
30500 }
30501}
30502}
30503#line 582
30504 __attribute__((__dllimport__)) void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject ) ;
30505#line 582 "../slam-kernel.c"
30506void IoSetHardErrorOrVerifyDevice(PIRP Irp , PDEVICE_OBJECT DeviceObject )
30507{
30508
30509 {
30510#line 587
30511 return;
30512}
30513}
30514#line 595 "../slam-kernel.c"
30515void stubMoreProcessingRequired(void)
30516{
30517
30518 {
30519#line 598
30520 if (s == 1) {
30521#line 598
30522 s = 5;
30523 } else {
30524 {
30525#line 599
30526 assert(0);
30527 }
30528 }
30529#line 602
30530 return;
30531}
30532}
30533#line 602
30534 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject ,
30535 PIRP Irp ) ;
30536#line 602 "../slam-kernel.c"
30537NTSTATUS ( __attribute__((__fastcall__)) IofCallDriver)(PDEVICE_OBJECT DeviceObject ,
30538 PIRP Irp )
30539{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30540 NTSTATUS returnVal2 ;
30541 int compRetStatus1 ;
30542 PVOID lcontext ;
30543 NTSTATUS tmp ;
30544 NTSTATUS (*__cil_tmp8)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
30545 long __cil_tmp9 ;
30546
30547 {
30548#line 615
30549 if (compRegistered) {
30550 {
30551#line 619
30552 __cil_tmp8 = & FloppyPnpComplete;
30553#line 619
30554 tmp = (*__cil_tmp8)(DeviceObject, Irp, lcontext);
30555#line 619
30556 compRetStatus1 = (int )tmp;
30557 }
30558 {
30559#line 621
30560 __cil_tmp9 = (long )compRetStatus1;
30561#line 621
30562 if (__cil_tmp9 == -1073741802L) {
30563 {
30564#line 617
30565 stubMoreProcessingRequired();
30566 }
30567 } else {
30568
30569 }
30570 }
30571 } else {
30572
30573 }
30574#line 623
30575 if (__BLAST_NONDET == 0) {
30576 goto switch_201_0;
30577 } else {
30578#line 624
30579 if (__BLAST_NONDET == 1) {
30580 goto switch_201_1;
30581 } else {
30582 {
30583 goto switch_201_default;
30584#line 622
30585 if (0) {
30586 switch_201_0:
30587#line 623
30588 returnVal2 = 0L;
30589 goto switch_201_break;
30590 switch_201_1:
30591#line 625
30592 returnVal2 = -1073741823L;
30593 goto switch_201_break;
30594 switch_201_default:
30595#line 627
30596 returnVal2 = 259L;
30597 goto switch_201_break;
30598 } else {
30599 switch_201_break: ;
30600 }
30601 }
30602 }
30603 }
30604#line 629
30605 if (s == 1) {
30606#line 630
30607 s = 7;
30608#line 630
30609 lowerDriverReturn = (int )returnVal2;
30610 } else {
30611#line 632
30612 if (s == 5) {
30613#line 633
30614 if (returnVal2 == 259L) {
30615#line 634
30616 s = 6;
30617#line 634
30618 lowerDriverReturn = (int )returnVal2;
30619 } else {
30620#line 636
30621 s = 1;
30622#line 636
30623 lowerDriverReturn = (int )returnVal2;
30624 }
30625 } else {
30626#line 639
30627 if (s == 3) {
30628#line 639
30629 s = 4;
30630#line 639
30631 lowerDriverReturn = (int )returnVal2;
30632 } else {
30633 {
30634#line 640
30635 assert(0);
30636 }
30637 }
30638 }
30639 }
30640#line 643
30641 return (returnVal2);
30642}
30643}
30644#line 665
30645 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp ,
30646 CCHAR PriorityBoost ) ;
30647#line 665 "../slam-kernel.c"
30648void ( __attribute__((__fastcall__)) IofCompleteRequest)(PIRP Irp , CCHAR PriorityBoost )
30649{
30650
30651 {
30652#line 673
30653 if (s == 1) {
30654#line 673
30655 s = 2;
30656 } else {
30657 {
30658#line 674
30659 assert(0);
30660 }
30661 }
30662#line 677
30663 return;
30664}
30665}
30666#line 677
30667 __attribute__((__dllimport__)) KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) ;
30668#line 677
30669 __attribute__((__dllimport__)) KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock ) ;
30670#line 677 "../slam-kernel.c"
30671KIRQL KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock )
30672{
30673
30674 {
30675#line 679
30676 return ((unsigned char)0);
30677}
30678}
30679#line 686
30680 __attribute__((__dllimport__)) NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode ,
30681 BOOLEAN Alertable ,
30682 PLARGE_INTEGER Interval ) ;
30683#line 686 "../slam-kernel.c"
30684NTSTATUS KeDelayExecutionThread(KPROCESSOR_MODE WaitMode , BOOLEAN Alertable , PLARGE_INTEGER Interval )
30685{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30686
30687 {
30688#line 696
30689 if (__BLAST_NONDET == 0) {
30690 goto switch_202_0;
30691 } else {
30692 {
30693 goto switch_202_default;
30694#line 695
30695 if (0) {
30696 switch_202_0: ;
30697#line 696
30698 return (0L);
30699 switch_202_default: ;
30700#line 701
30701 return (-1073741823L);
30702 } else {
30703 switch_202_break: ;
30704 }
30705 }
30706 }
30707}
30708}
30709#line 706
30710 __attribute__((__dllimport__)) void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type ,
30711 BOOLEAN State ) ;
30712#line 706 "../slam-kernel.c"
30713void KeInitializeEvent(PRKEVENT Event , EVENT_TYPE Type , BOOLEAN State )
30714{
30715
30716 {
30717#line 711
30718 return;
30719}
30720}
30721#line 717
30722 __attribute__((__dllimport__)) void KeInitializeSemaphore(PRKSEMAPHORE Semaphore ,
30723 LONG Count , LONG Limit ) ;
30724#line 717 "../slam-kernel.c"
30725void KeInitializeSemaphore(PRKSEMAPHORE Semaphore , LONG Count , LONG Limit )
30726{
30727
30728 {
30729#line 722
30730 return;
30731}
30732}
30733#line 728
30734 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock ) ;
30735#line 728 "../slam-kernel.c"
30736void ( __attribute__((__stdcall__)) KeInitializeSpinLock)(PKSPIN_LOCK SpinLock )
30737{
30738
30739 {
30740#line 732
30741 return;
30742}
30743}
30744#line 738
30745 __attribute__((__dllimport__)) LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment ,
30746 LONG Adjustment , BOOLEAN Wait ) ;
30747#line 738 "../slam-kernel.c"
30748LONG KeReleaseSemaphore(PRKSEMAPHORE Semaphore , KPRIORITY Increment , LONG Adjustment ,
30749 BOOLEAN Wait )
30750{ LONG r ;
30751
30752 {
30753#line 748
30754 return (r);
30755}
30756}
30757#line 751
30758 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock ,
30759 KIRQL NewIrql ) ;
30760#line 751 "../slam-kernel.c"
30761void ( __attribute__((__fastcall__)) KfReleaseSpinLock)(PKSPIN_LOCK SpinLock , KIRQL NewIrql )
30762{
30763
30764 {
30765#line 756
30766 return;
30767}
30768}
30769#line 762
30770 __attribute__((__dllimport__)) LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment ,
30771 BOOLEAN Wait ) ;
30772#line 762 "../slam-kernel.c"
30773LONG KeSetEvent(PRKEVENT Event , KPRIORITY Increment , BOOLEAN Wait )
30774{ LONG l ;
30775
30776 {
30777#line 772
30778 setEventCalled = 1;
30779#line 774
30780 return (l);
30781}
30782}
30783#line 777
30784 __attribute__((__dllimport__)) NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason ,
30785 KPROCESSOR_MODE WaitMode ,
30786 BOOLEAN Alertable ,
30787 PLARGE_INTEGER Timeout ) ;
30788#line 777 "../slam-kernel.c"
30789NTSTATUS KeWaitForSingleObject(PVOID Object , KWAIT_REASON WaitReason , KPROCESSOR_MODE WaitMode ,
30790 BOOLEAN Alertable , PLARGE_INTEGER Timeout )
30791{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30792
30793 {
30794#line 788
30795 if (s == 6) {
30796#line 788
30797 if (setEventCalled == 1) {
30798#line 789
30799 s = 1;
30800#line 789
30801 setEventCalled = 0;
30802 } else {
30803 goto _L;
30804 }
30805 } else {
30806 _L:
30807#line 791
30808 if (customIrp == 1) {
30809#line 792
30810 s = 1;
30811#line 792
30812 customIrp = 0;
30813 } else {
30814#line 794
30815 if (s == 6) {
30816 {
30817#line 794
30818 assert(0);
30819 }
30820 } else {
30821
30822 }
30823 }
30824 }
30825#line 799
30826 if (__BLAST_NONDET == 0) {
30827 goto switch_203_0;
30828 } else {
30829 {
30830 goto switch_203_default;
30831#line 798
30832 if (0) {
30833 switch_203_0: ;
30834#line 799
30835 return (0L);
30836 switch_203_default: ;
30837#line 805
30838 return (-1073741823L);
30839 } else {
30840 switch_203_break: ;
30841 }
30842 }
30843 }
30844}
30845}
30846#line 810
30847 __attribute__((__dllimport__)) PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes ,
30848 PHYSICAL_ADDRESS HighestAcceptableAddress ) ;
30849#line 810 "../slam-kernel.c"
30850PVOID MmAllocateContiguousMemory(SIZE_T NumberOfBytes , PHYSICAL_ADDRESS HighestAcceptableAddress )
30851{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30852 char *tmp ;
30853 int __cil_tmp5 ;
30854
30855 {
30856#line 818
30857 if (__BLAST_NONDET == 0) {
30858 goto switch_204_0;
30859 } else {
30860#line 819
30861 if (__BLAST_NONDET == 1) {
30862 goto switch_204_1;
30863 } else {
30864#line 817
30865 if (0) {
30866 switch_204_0:
30867 {
30868#line 818
30869 __cil_tmp5 = (int )NumberOfBytes;
30870#line 818
30871 tmp = malloc(__cil_tmp5);
30872 }
30873#line 818
30874 return ((void *)tmp);
30875 switch_204_1: ;
30876#line 819
30877 return ((void *)0);
30878 } else {
30879 switch_204_break: ;
30880 }
30881 }
30882 }
30883#line 821
30884 return ((void *)0);
30885}
30886}
30887#line 823
30888 __attribute__((__dllimport__)) void MmFreeContiguousMemory(PVOID BaseAddress ) ;
30889#line 823 "../slam-kernel.c"
30890void MmFreeContiguousMemory(PVOID BaseAddress )
30891{
30892
30893 {
30894#line 827
30895 return;
30896}
30897}
30898#line 832
30899 __attribute__((__dllimport__)) PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList ,
30900 KPROCESSOR_MODE AccessMode ,
30901 MEMORY_CACHING_TYPE CacheType ,
30902 PVOID BaseAddress ,
30903 ULONG BugCheckOnFailure ,
30904 MM_PAGE_PRIORITY Priority ) ;
30905#line 832 "../slam-kernel.c"
30906PVOID MmMapLockedPagesSpecifyCache(PMDL MemoryDescriptorList , KPROCESSOR_MODE AccessMode ,
30907 MEMORY_CACHING_TYPE CacheType , PVOID BaseAddress ,
30908 ULONG BugCheckOnFailure , MM_PAGE_PRIORITY Priority )
30909{
30910
30911 {
30912#line 843
30913 return ((void *)0);
30914}
30915}
30916#line 846
30917 __attribute__((__dllimport__)) PVOID MmPageEntireDriver(PVOID AddressWithinSection ) ;
30918#line 846 "../slam-kernel.c"
30919PVOID MmPageEntireDriver(PVOID AddressWithinSection )
30920{
30921
30922 {
30923#line 852
30924 return ((void *)0);
30925}
30926}
30927#line 855
30928 __attribute__((__dllimport__)) void MmResetDriverPaging(PVOID AddressWithinSection ) ;
30929#line 855 "../slam-kernel.c"
30930void MmResetDriverPaging(PVOID AddressWithinSection )
30931{
30932
30933 {
30934#line 859
30935 return;
30936}
30937}
30938#line 865
30939 __attribute__((__dllimport__)) void MmUnlockPages(PMDL MemoryDescriptorList ) ;
30940#line 865 "../slam-kernel.c"
30941void MmUnlockPages(PMDL MemoryDescriptorList )
30942{
30943
30944 {
30945#line 869
30946 return;
30947}
30948}
30949#line 874
30950 __attribute__((__dllimport__)) NTSTATUS ObReferenceObjectByHandle(HANDLE Handle ,
30951 ACCESS_MASK DesiredAccess ,
30952 POBJECT_TYPE ObjectType ,
30953 KPROCESSOR_MODE AccessMode ,
30954 PVOID *Object ,
30955 POBJECT_HANDLE_INFORMATION HandleInformation ) ;
30956#line 874 "../slam-kernel.c"
30957NTSTATUS ObReferenceObjectByHandle(HANDLE Handle , ACCESS_MASK DesiredAccess , POBJECT_TYPE ObjectType ,
30958 KPROCESSOR_MODE AccessMode , PVOID *Object , POBJECT_HANDLE_INFORMATION HandleInformation )
30959{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
30960
30961 {
30962#line 887
30963 if (__BLAST_NONDET == 0) {
30964 goto switch_205_0;
30965 } else {
30966 {
30967 goto switch_205_default;
30968#line 886
30969 if (0) {
30970 switch_205_0: ;
30971#line 887
30972 return (0L);
30973 switch_205_default: ;
30974#line 893
30975 return (-1073741823L);
30976 } else {
30977 switch_205_break: ;
30978 }
30979 }
30980 }
30981}
30982}
30983#line 899
30984 __attribute__((__dllimport__)) void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object ) ;
30985#line 899 "../slam-kernel.c"
30986void ( __attribute__((__fastcall__)) ObfDereferenceObject)(PVOID Object )
30987{
30988
30989 {
30990#line 903
30991 return;
30992}
30993}
30994#line 909
30995 __attribute__((__dllimport__)) NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject ,
30996 PIRP Irp ) ;
30997#line 909 "../slam-kernel.c"
30998NTSTATUS PoCallDriver(PDEVICE_OBJECT DeviceObject , PIRP Irp )
30999{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31000 int compRetStatus ;
31001 NTSTATUS returnVal ;
31002 PVOID lcontext ;
31003 NTSTATUS tmp ;
31004 NTSTATUS (*__cil_tmp8)(PDEVICE_OBJECT DeviceObject , PIRP Irp , PVOID Context ) ;
31005 long __cil_tmp9 ;
31006
31007 {
31008#line 922
31009 if (compRegistered) {
31010 {
31011#line 926
31012 __cil_tmp8 = & FloppyPnpComplete;
31013#line 926
31014 tmp = (*__cil_tmp8)(DeviceObject, Irp, lcontext);
31015#line 926
31016 compRetStatus = (int )tmp;
31017 }
31018 {
31019#line 927
31020 __cil_tmp9 = (long )compRetStatus;
31021#line 927
31022 if (__cil_tmp9 == -1073741802L) {
31023 {
31024#line 924
31025 stubMoreProcessingRequired();
31026 }
31027 } else {
31028
31029 }
31030 }
31031 } else {
31032
31033 }
31034#line 930
31035 if (__BLAST_NONDET == 0) {
31036 goto switch_206_0;
31037 } else {
31038#line 933
31039 if (__BLAST_NONDET == 1) {
31040 goto switch_206_1;
31041 } else {
31042 {
31043 goto switch_206_default;
31044#line 929
31045 if (0) {
31046 switch_206_0:
31047#line 931
31048 returnVal = 0L;
31049 goto switch_206_break;
31050 switch_206_1:
31051#line 934
31052 returnVal = -1073741823L;
31053 goto switch_206_break;
31054 switch_206_default:
31055#line 937
31056 returnVal = 259L;
31057 goto switch_206_break;
31058 } else {
31059 switch_206_break: ;
31060 }
31061 }
31062 }
31063 }
31064#line 939
31065 if (s == 1) {
31066#line 940
31067 s = 7;
31068#line 940
31069 lowerDriverReturn = (int )returnVal;
31070 } else {
31071#line 942
31072 if (s == 5) {
31073#line 943
31074 if (returnVal == 259L) {
31075#line 944
31076 s = 6;
31077#line 944
31078 lowerDriverReturn = (int )returnVal;
31079 } else {
31080#line 946
31081 s = 1;
31082#line 946
31083 lowerDriverReturn = (int )returnVal;
31084 }
31085 } else {
31086#line 949
31087 if (s == 3) {
31088#line 949
31089 s = 4;
31090#line 949
31091 lowerDriverReturn = (int )returnVal;
31092 } else {
31093
31094 }
31095 }
31096 }
31097#line 953
31098 return (returnVal);
31099}
31100}
31101#line 956
31102 __attribute__((__dllimport__)) void PoStartNextPowerIrp(PIRP Irp ) ;
31103#line 956 "../slam-kernel.c"
31104void PoStartNextPowerIrp(PIRP Irp )
31105{
31106
31107 {
31108#line 960
31109 return;
31110}
31111}
31112#line 965
31113 __attribute__((__dllimport__)) NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle ,
31114 ULONG DesiredAccess ,
31115 POBJECT_ATTRIBUTES ObjectAttributes ,
31116 HANDLE ProcessHandle ,
31117 PCLIENT_ID ClientId ,
31118 void (*StartRoutine)(PVOID StartContext ) ,
31119 PVOID StartContext ) ;
31120#line 965 "../slam-kernel.c"
31121NTSTATUS PsCreateSystemThread(PHANDLE ThreadHandle , ULONG DesiredAccess , POBJECT_ATTRIBUTES ObjectAttributes ,
31122 HANDLE ProcessHandle , PCLIENT_ID ClientId , void (*StartRoutine)(PVOID StartContext ) ,
31123 PVOID StartContext )
31124{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31125
31126 {
31127#line 979
31128 if (__BLAST_NONDET == 0) {
31129 goto switch_207_0;
31130 } else {
31131 {
31132 goto switch_207_default;
31133#line 978
31134 if (0) {
31135 switch_207_0: ;
31136#line 979
31137 return (0L);
31138 switch_207_default: ;
31139#line 980
31140 return (-1073741823L);
31141 } else {
31142 switch_207_break: ;
31143 }
31144 }
31145 }
31146}
31147}
31148#line 984
31149 __attribute__((__dllimport__)) NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus ) ;
31150#line 984 "../slam-kernel.c"
31151NTSTATUS PsTerminateSystemThread(NTSTATUS ExitStatus )
31152{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31153
31154 {
31155#line 992
31156 if (__BLAST_NONDET == 0) {
31157 goto switch_208_0;
31158 } else {
31159 {
31160 goto switch_208_default;
31161#line 991
31162 if (0) {
31163 switch_208_0: ;
31164#line 992
31165 return (0L);
31166 switch_208_default: ;
31167#line 993
31168 return (-1073741823L);
31169 } else {
31170 switch_208_break: ;
31171 }
31172 }
31173 }
31174}
31175}
31176#line 998
31177 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString ,
31178 PANSI_STRING SourceString ,
31179 BOOLEAN AllocateDestinationString ) ;
31180#line 998 "../slam-kernel.c"
31181NTSTATUS ( __attribute__((__stdcall__)) RtlAnsiStringToUnicodeString)(PUNICODE_STRING DestinationString ,
31182 PANSI_STRING SourceString ,
31183 BOOLEAN AllocateDestinationString )
31184{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31185
31186 {
31187#line 1009
31188 if (__BLAST_NONDET == 0) {
31189 goto switch_209_0;
31190 } else {
31191 {
31192 goto switch_209_default;
31193#line 1008
31194 if (0) {
31195 switch_209_0: ;
31196#line 1009
31197 return (0L);
31198 switch_209_default: ;
31199#line 1010
31200 return (-1073741823L);
31201 } else {
31202 switch_209_break: ;
31203 }
31204 }
31205 }
31206}
31207}
31208#line 1014
31209 __attribute__((__dllimport__)) SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const *Source1 ,
31210 void const *Source2 ,
31211 SIZE_T Length ) ;
31212#line 1014 "../slam-kernel.c"
31213SIZE_T ( __attribute__((__stdcall__)) RtlCompareMemory)(void const *Source1 , void const *Source2 ,
31214 SIZE_T Length )
31215{ SIZE_T r ;
31216
31217 {
31218#line 1024
31219 return (r);
31220}
31221}
31222#line 1027
31223 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString ,
31224 PUNICODE_STRING SourceString ) ;
31225#line 1027 "../slam-kernel.c"
31226void ( __attribute__((__stdcall__)) RtlCopyUnicodeString)(PUNICODE_STRING DestinationString ,
31227 PUNICODE_STRING SourceString )
31228{
31229
31230 {
31231#line 1032
31232 return;
31233}
31234}
31235#line 1038
31236 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo ,
31237 PCWSTR Path ,
31238 PCWSTR ValueName ) ;
31239#line 1038 "../slam-kernel.c"
31240NTSTATUS ( __attribute__((__stdcall__)) RtlDeleteRegistryValue)(ULONG RelativeTo ,
31241 PCWSTR Path , PCWSTR ValueName )
31242{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31243
31244 {
31245#line 1049
31246 if (__BLAST_NONDET == 0) {
31247 goto switch_210_0;
31248 } else {
31249 {
31250 goto switch_210_default;
31251#line 1048
31252 if (0) {
31253 switch_210_0: ;
31254#line 1049
31255 return (0L);
31256 switch_210_default: ;
31257#line 1050
31258 return (-1073741823L);
31259 } else {
31260 switch_210_break: ;
31261 }
31262 }
31263 }
31264}
31265}
31266#line 1054
31267 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString ) ;
31268#line 1054 "../slam-kernel.c"
31269void ( __attribute__((__stdcall__)) RtlFreeUnicodeString)(PUNICODE_STRING UnicodeString )
31270{
31271
31272 {
31273#line 1059
31274 return;
31275}
31276}
31277#line 1064
31278 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString ,
31279 PCSZ SourceString ) ;
31280#line 1064 "../slam-kernel.c"
31281void ( __attribute__((__stdcall__)) RtlInitString)(PSTRING DestinationString , PCSZ SourceString )
31282{
31283
31284 {
31285#line 1069
31286 return;
31287}
31288}
31289#line 1075
31290 __attribute__((__dllimport__)) void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString ,
31291 PCWSTR SourceString ) ;
31292#line 1075 "../slam-kernel.c"
31293void ( __attribute__((__stdcall__)) RtlInitUnicodeString)(PUNICODE_STRING DestinationString ,
31294 PCWSTR SourceString )
31295{
31296
31297 {
31298#line 1080
31299 return;
31300}
31301}
31302#line 1087
31303 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo ,
31304 PCWSTR Path ,
31305 PRTL_QUERY_REGISTRY_TABLE QueryTable ,
31306 PVOID Context ,
31307 PVOID Environment ) ;
31308#line 1087 "../slam-kernel.c"
31309NTSTATUS ( __attribute__((__stdcall__)) RtlQueryRegistryValues)(ULONG RelativeTo ,
31310 PCWSTR Path , PRTL_QUERY_REGISTRY_TABLE QueryTable ,
31311 PVOID Context , PVOID Environment )
31312{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31313
31314 {
31315#line 1100
31316 if (__BLAST_NONDET == 0) {
31317 goto switch_211_0;
31318 } else {
31319 {
31320 goto switch_211_default;
31321#line 1099
31322 if (0) {
31323 switch_211_0: ;
31324#line 1100
31325 return (0L);
31326 switch_211_default: ;
31327#line 1105
31328 return (-1073741823L);
31329 } else {
31330 switch_211_break: ;
31331 }
31332 }
31333 }
31334}
31335}
31336#line 1109
31337 __attribute__((__dllimport__)) NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle ) ;
31338#line 1109 "../slam-kernel.c"
31339NTSTATUS ( __attribute__((__stdcall__)) ZwClose)(HANDLE Handle )
31340{ int __BLAST_NONDET = __VERIFIER_nondet_int() ;
31341
31342 {
31343#line 1118
31344 if (__BLAST_NONDET == 0) {
31345 goto switch_212_0;
31346 } else {
31347 {
31348 goto switch_212_default;
31349#line 1117
31350 if (0) {
31351 switch_212_0: ;
31352#line 1118
31353 return (0L);
31354 switch_212_default: ;
31355#line 1124
31356 return (-1073741823L);
31357 } else {
31358 switch_212_break: ;
31359 }
31360 }
31361 }
31362}
31363}