summaryrefslogtreecommitdiff
path: root/Test/livevars/bla1.bpl
diff options
context:
space:
mode:
authorGravatar Dan Liew <daniel.liew@imperial.ac.uk>2015-06-28 01:44:30 +0100
committerGravatar Dan Liew <daniel.liew@imperial.ac.uk>2015-06-28 01:44:30 +0100
commit962f8d5252b3f5ec4d19e0cd2a430934bd55cc6d (patch)
tree27d5f9b0d130c6c1a6758bc0b7456b0aa51e34e0 /Test/livevars/bla1.bpl
parente11d65009d0b4ba1327f5f5dd6b26367330611f0 (diff)
Normalise line endings using a .gitattributes file. Unfortunately
this required that this commit globally modify most files. If you want to use git blame to see the real author of a line use the ``-w`` flag so that whitespace changes are ignored.
Diffstat (limited to 'Test/livevars/bla1.bpl')
-rw-r--r--Test/livevars/bla1.bpl4204
1 files changed, 2102 insertions, 2102 deletions
diff --git a/Test/livevars/bla1.bpl b/Test/livevars/bla1.bpl
index 669f8571..9be8aafd 100644
--- a/Test/livevars/bla1.bpl
+++ b/Test/livevars/bla1.bpl
@@ -1,2102 +1,2102 @@
-// RUN: %boogie -noinfer -useArrayTheory "%s" > "%t"
-// RUN: %diff "%s.expect" "%t"
-var __storm_thread_done_0 : bool;
-var __storm_thread_done_1 : bool;
-var __storm_thread_done_2 : bool;
-
-var raiseException : bool;
-var errorReached : bool;
-var k : int;
-var __storm_atomic : bool;
-var __storm_init : bool;
-var tid : int;
-var tidCount : int;
-
-procedure /* dummy comment */ {:inline 1} storm_getThreadID() returns (tidRet:int)
-{
- tidRet := tid;
- return;
-}
-
-
-procedure storm_context_0();
-procedure storm_context_1();
-
-procedure contextSwitch();
-modifies k;
-ensures __storm_atomic ==> old(k) == k;
-ensures(old(k) <= k);
-ensures(k < 2);
-
-
-
-// Memory model
-
-// Mutable
-var alloc:int;
-
-// Immutable
-
-var Mem_0_T.CancelRoutine__IRP : [int]int;
-var Mem_1_T.CancelRoutine__IRP : [int]int;
-var Mem_s_1_T.CancelRoutine__IRP : [int]int;
-var Mem_0_T.Cancel__IRP : [int]int;
-var Mem_1_T.Cancel__IRP : [int]int;
-var Mem_s_1_T.Cancel__IRP : [int]int;
-var Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 : [int]int;
-var Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 : [int]int;
-var Mem_s_1_T.CurrentStackLocation___unnamed_4_3c640f23 : [int]int;
-var Mem_0_T.DeviceExtension__DEVICE_OBJECT : [int]int;
-var Mem_1_T.DeviceExtension__DEVICE_OBJECT : [int]int;
-var Mem_s_1_T.DeviceExtension__DEVICE_OBJECT : [int]int;
-var Mem_0_T.DeviceObject__IO_STACK_LOCATION : [int]int;
-var Mem_1_T.DeviceObject__IO_STACK_LOCATION : [int]int;
-var Mem_s_1_T.DeviceObject__IO_STACK_LOCATION : [int]int;
-
-
-// Field declarations
-
-
-// Type declarations
-
-
-// Field offset definitions
-
-function AssociatedIrp__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {AssociatedIrp__IRP(x)} AssociatedIrp__IRP(x) == x + 12);
-axiom (forall x:int :: {AssociatedIrp__IRP(x)} AssociatedIrp__IRP(x) == INT_ADD(x, 12));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function COMMON_DATA__PORT_KEYBOARD_EXTENSION(int) returns (int);
-
-
-//axiom (forall x:int :: {COMMON_DATA__PORT_KEYBOARD_EXTENSION(x)} COMMON_DATA__PORT_KEYBOARD_EXTENSION(x) == x + 0);
-axiom (forall x:int :: {COMMON_DATA__PORT_KEYBOARD_EXTENSION(x)} COMMON_DATA__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function CancelIrql__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {CancelIrql__IRP(x)} CancelIrql__IRP(x) == x + 37);
-axiom (forall x:int :: {CancelIrql__IRP(x)} CancelIrql__IRP(x) == INT_ADD(x, 37));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function CancelRoutine__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {CancelRoutine__IRP(x)} CancelRoutine__IRP(x) == x + 56);
-axiom (forall x:int :: {CancelRoutine__IRP(x)} CancelRoutine__IRP(x) == INT_ADD(x, 56));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Cancel__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {Cancel__IRP(x)} Cancel__IRP(x) == x + 36);
-axiom (forall x:int :: {Cancel__IRP(x)} Cancel__IRP(x) == INT_ADD(x, 36));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function CompletionRoutine__IO_STACK_LOCATION(int) returns (int);
-
-
-//axiom (forall x:int :: {CompletionRoutine__IO_STACK_LOCATION(x)} CompletionRoutine__IO_STACK_LOCATION(x) == x + 28);
-axiom (forall x:int :: {CompletionRoutine__IO_STACK_LOCATION(x)} CompletionRoutine__IO_STACK_LOCATION(x) == INT_ADD(x, 28));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Context__IO_STACK_LOCATION(int) returns (int);
-
-
-//axiom (forall x:int :: {Context__IO_STACK_LOCATION(x)} Context__IO_STACK_LOCATION(x) == x + 32);
-axiom (forall x:int :: {Context__IO_STACK_LOCATION(x)} Context__IO_STACK_LOCATION(x) == INT_ADD(x, 32));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Control__IO_STACK_LOCATION(int) returns (int);
-
-
-//axiom (forall x:int :: {Control__IO_STACK_LOCATION(x)} Control__IO_STACK_LOCATION(x) == x + 3);
-axiom (forall x:int :: {Control__IO_STACK_LOCATION(x)} Control__IO_STACK_LOCATION(x) == INT_ADD(x, 3));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function ControllerData__GLOBALS(int) returns (int);
-
-
-//axiom (forall x:int :: {ControllerData__GLOBALS(x)} ControllerData__GLOBALS(x) == x + 0);
-axiom (forall x:int :: {ControllerData__GLOBALS(x)} ControllerData__GLOBALS(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function CurrentLocation__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {CurrentLocation__IRP(x)} CurrentLocation__IRP(x) == x + 35);
-axiom (forall x:int :: {CurrentLocation__IRP(x)} CurrentLocation__IRP(x) == INT_ADD(x, 35));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function CurrentStackLocation___unnamed_4_3c640f23(int) returns (int);
-
-
-//axiom (forall x:int :: {CurrentStackLocation___unnamed_4_3c640f23(x)} CurrentStackLocation___unnamed_4_3c640f23(x) == x + 0);
-axiom (forall x:int :: {CurrentStackLocation___unnamed_4_3c640f23(x)} CurrentStackLocation___unnamed_4_3c640f23(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function DeviceExtension__DEVICE_OBJECT(int) returns (int);
-
-
-//axiom (forall x:int :: {DeviceExtension__DEVICE_OBJECT(x)} DeviceExtension__DEVICE_OBJECT(x) == x + 40);
-axiom (forall x:int :: {DeviceExtension__DEVICE_OBJECT(x)} DeviceExtension__DEVICE_OBJECT(x) == INT_ADD(x, 40));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function DeviceIoControl___unnamed_16_afe81cff(int) returns (int);
-
-
-//axiom (forall x:int :: {DeviceIoControl___unnamed_16_afe81cff(x)} DeviceIoControl___unnamed_16_afe81cff(x) == x + 0);
-axiom (forall x:int :: {DeviceIoControl___unnamed_16_afe81cff(x)} DeviceIoControl___unnamed_16_afe81cff(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function DeviceObject__IO_STACK_LOCATION(int) returns (int);
-
-
-//axiom (forall x:int :: {DeviceObject__IO_STACK_LOCATION(x)} DeviceObject__IO_STACK_LOCATION(x) == x + 20);
-axiom (forall x:int :: {DeviceObject__IO_STACK_LOCATION(x)} DeviceObject__IO_STACK_LOCATION(x) == INT_ADD(x, 20));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function DeviceState__POWER_STATE(int) returns (int);
-
-
-//axiom (forall x:int :: {DeviceState__POWER_STATE(x)} DeviceState__POWER_STATE(x) == x + 0);
-axiom (forall x:int :: {DeviceState__POWER_STATE(x)} DeviceState__POWER_STATE(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(int) returns (int);
-
-
-//axiom (forall x:int :: {Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x)} Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x) == x + 2);
-axiom (forall x:int :: {Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x)} Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x) == INT_ADD(x, 2));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Information__IO_STATUS_BLOCK(int) returns (int);
-
-
-//axiom (forall x:int :: {Information__IO_STATUS_BLOCK(x)} Information__IO_STATUS_BLOCK(x) == x + 4);
-axiom (forall x:int :: {Information__IO_STATUS_BLOCK(x)} Information__IO_STATUS_BLOCK(x) == INT_ADD(x, 4));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Initialized_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {Initialized_COMMON_DATA(x)} Initialized_COMMON_DATA(x) == x + 323);
-axiom (forall x:int :: {Initialized_COMMON_DATA(x)} Initialized_COMMON_DATA(x) == INT_ADD(x, 323));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function InterruptDescriptor_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {InterruptDescriptor_COMMON_DATA(x)} InterruptDescriptor_COMMON_DATA(x) == x + 300);
-axiom (forall x:int :: {InterruptDescriptor_COMMON_DATA(x)} InterruptDescriptor_COMMON_DATA(x) == INT_ADD(x, 300));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function InterruptObject_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {InterruptObject_COMMON_DATA(x)} InterruptObject_COMMON_DATA(x) == x + 4);
-axiom (forall x:int :: {InterruptObject_COMMON_DATA(x)} InterruptObject_COMMON_DATA(x) == INT_ADD(x, 4));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function IoStatus__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {IoStatus__IRP(x)} IoStatus__IRP(x) == x + 24);
-axiom (forall x:int :: {IoStatus__IRP(x)} IoStatus__IRP(x) == INT_ADD(x, 24));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function IsKeyboard_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {IsKeyboard_COMMON_DATA(x)} IsKeyboard_COMMON_DATA(x) == x + 325);
-axiom (forall x:int :: {IsKeyboard_COMMON_DATA(x)} IsKeyboard_COMMON_DATA(x) == INT_ADD(x, 325));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Item__POWER_UP_WORK_ITEM(int) returns (int);
-
-
-//axiom (forall x:int :: {Item__POWER_UP_WORK_ITEM(x)} Item__POWER_UP_WORK_ITEM(x) == x + 0);
-axiom (forall x:int :: {Item__POWER_UP_WORK_ITEM(x)} Item__POWER_UP_WORK_ITEM(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function KeyboardExtension__GLOBALS(int) returns (int);
-
-
-//axiom (forall x:int :: {KeyboardExtension__GLOBALS(x)} KeyboardExtension__GLOBALS(x) == x + 8);
-axiom (forall x:int :: {KeyboardExtension__GLOBALS(x)} KeyboardExtension__GLOBALS(x) == INT_ADD(x, 8));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function KeyboardPowerIrp__POWER_UP_WORK_ITEM(int) returns (int);
-
-
-//axiom (forall x:int :: {KeyboardPowerIrp__POWER_UP_WORK_ITEM(x)} KeyboardPowerIrp__POWER_UP_WORK_ITEM(x) == x + 8);
-axiom (forall x:int :: {KeyboardPowerIrp__POWER_UP_WORK_ITEM(x)} KeyboardPowerIrp__POWER_UP_WORK_ITEM(x) == INT_ADD(x, 8));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function MajorFunction__IO_STACK_LOCATION(int) returns (int);
-
-
-//axiom (forall x:int :: {MajorFunction__IO_STACK_LOCATION(x)} MajorFunction__IO_STACK_LOCATION(x) == x + 0);
-axiom (forall x:int :: {MajorFunction__IO_STACK_LOCATION(x)} MajorFunction__IO_STACK_LOCATION(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function MinorFunction__IO_STACK_LOCATION(int) returns (int);
-
-
-//axiom (forall x:int :: {MinorFunction__IO_STACK_LOCATION(x)} MinorFunction__IO_STACK_LOCATION(x) == x + 1);
-axiom (forall x:int :: {MinorFunction__IO_STACK_LOCATION(x)} MinorFunction__IO_STACK_LOCATION(x) == INT_ADD(x, 1));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function MouseExtension__GLOBALS(int) returns (int);
-
-
-//axiom (forall x:int :: {MouseExtension__GLOBALS(x)} MouseExtension__GLOBALS(x) == x + 4);
-axiom (forall x:int :: {MouseExtension__GLOBALS(x)} MouseExtension__GLOBALS(x) == INT_ADD(x, 4));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function MousePowerIrp__POWER_UP_WORK_ITEM(int) returns (int);
-
-
-//axiom (forall x:int :: {MousePowerIrp__POWER_UP_WORK_ITEM(x)} MousePowerIrp__POWER_UP_WORK_ITEM(x) == x + 4);
-axiom (forall x:int :: {MousePowerIrp__POWER_UP_WORK_ITEM(x)} MousePowerIrp__POWER_UP_WORK_ITEM(x) == INT_ADD(x, 4));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function OutputBufferLength___unnamed_16_ae81ad04(int) returns (int);
-
-
-//axiom (forall x:int :: {OutputBufferLength___unnamed_16_ae81ad04(x)} OutputBufferLength___unnamed_16_ae81ad04(x) == x + 0);
-axiom (forall x:int :: {OutputBufferLength___unnamed_16_ae81ad04(x)} OutputBufferLength___unnamed_16_ae81ad04(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function OutstandingPowerIrp_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {OutstandingPowerIrp_COMMON_DATA(x)} OutstandingPowerIrp_COMMON_DATA(x) == x + 44);
-axiom (forall x:int :: {OutstandingPowerIrp_COMMON_DATA(x)} OutstandingPowerIrp_COMMON_DATA(x) == INT_ADD(x, 44));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Overlay___unnamed_48_e2bbfb0b(int) returns (int);
-
-
-//axiom (forall x:int :: {Overlay___unnamed_48_e2bbfb0b(x)} Overlay___unnamed_48_e2bbfb0b(x) == x + 0);
-axiom (forall x:int :: {Overlay___unnamed_48_e2bbfb0b(x)} Overlay___unnamed_48_e2bbfb0b(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Parameters__IO_STACK_LOCATION(int) returns (int);
-
-
-//axiom (forall x:int :: {Parameters__IO_STACK_LOCATION(x)} Parameters__IO_STACK_LOCATION(x) == x + 4);
-axiom (forall x:int :: {Parameters__IO_STACK_LOCATION(x)} Parameters__IO_STACK_LOCATION(x) == INT_ADD(x, 4));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function PendingReturned__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {PendingReturned__IRP(x)} PendingReturned__IRP(x) == x + 33);
-axiom (forall x:int :: {PendingReturned__IRP(x)} PendingReturned__IRP(x) == INT_ADD(x, 33));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function PowerCaps__PORT_KEYBOARD_EXTENSION(int) returns (int);
-
-
-//axiom (forall x:int :: {PowerCaps__PORT_KEYBOARD_EXTENSION(x)} PowerCaps__PORT_KEYBOARD_EXTENSION(x) == x + 328);
-axiom (forall x:int :: {PowerCaps__PORT_KEYBOARD_EXTENSION(x)} PowerCaps__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 328));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function PowerFlags__GLOBALS(int) returns (int);
-
-
-//axiom (forall x:int :: {PowerFlags__GLOBALS(x)} PowerFlags__GLOBALS(x) == x + 40);
-axiom (forall x:int :: {PowerFlags__GLOBALS(x)} PowerFlags__GLOBALS(x) == INT_ADD(x, 40));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function PowerSpinLock__CONTROLLER_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {PowerSpinLock__CONTROLLER_DATA(x)} PowerSpinLock__CONTROLLER_DATA(x) == x + 116);
-axiom (forall x:int :: {PowerSpinLock__CONTROLLER_DATA(x)} PowerSpinLock__CONTROLLER_DATA(x) == INT_ADD(x, 116));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function PowerState_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {PowerState_COMMON_DATA(x)} PowerState_COMMON_DATA(x) == x + 48);
-axiom (forall x:int :: {PowerState_COMMON_DATA(x)} PowerState_COMMON_DATA(x) == INT_ADD(x, 48));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Power___unnamed_16_afe81cff(int) returns (int);
-
-
-//axiom (forall x:int :: {Power___unnamed_16_afe81cff(x)} Power___unnamed_16_afe81cff(x) == x + 0);
-axiom (forall x:int :: {Power___unnamed_16_afe81cff(x)} Power___unnamed_16_afe81cff(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function RemoveLock_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {RemoveLock_COMMON_DATA(x)} RemoveLock_COMMON_DATA(x) == x + 20);
-axiom (forall x:int :: {RemoveLock_COMMON_DATA(x)} RemoveLock_COMMON_DATA(x) == INT_ADD(x, 20));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function ShutdownType_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {ShutdownType_COMMON_DATA(x)} ShutdownType_COMMON_DATA(x) == x + 56);
-axiom (forall x:int :: {ShutdownType_COMMON_DATA(x)} ShutdownType_COMMON_DATA(x) == INT_ADD(x, 56));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function ShutdownType___unnamed_16_57972375(int) returns (int);
-
-
-//axiom (forall x:int :: {ShutdownType___unnamed_16_57972375(x)} ShutdownType___unnamed_16_57972375(x) == x + 12);
-axiom (forall x:int :: {ShutdownType___unnamed_16_57972375(x)} ShutdownType___unnamed_16_57972375(x) == INT_ADD(x, 12));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Started_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {Started_COMMON_DATA(x)} Started_COMMON_DATA(x) == x + 326);
-axiom (forall x:int :: {Started_COMMON_DATA(x)} Started_COMMON_DATA(x) == INT_ADD(x, 326));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function State___unnamed_16_57972375(int) returns (int);
-
-
-//axiom (forall x:int :: {State___unnamed_16_57972375(x)} State___unnamed_16_57972375(x) == x + 8);
-axiom (forall x:int :: {State___unnamed_16_57972375(x)} State___unnamed_16_57972375(x) == INT_ADD(x, 8));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Status___unnamed_4_d4b13373(int) returns (int);
-
-
-//axiom (forall x:int :: {Status___unnamed_4_d4b13373(x)} Status___unnamed_4_d4b13373(x) == x + 0);
-axiom (forall x:int :: {Status___unnamed_4_d4b13373(x)} Status___unnamed_4_d4b13373(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(int) returns (int);
-
-
-//axiom (forall x:int :: {SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x)} SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x) == x + 332);
-axiom (forall x:int :: {SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x)} SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 332));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(int) returns (int);
-
-
-//axiom (forall x:int :: {SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x)} SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x) == x + 368);
-axiom (forall x:int :: {SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x)} SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 368));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function SystemBuffer___unnamed_4_99f86ad5(int) returns (int);
-
-
-//axiom (forall x:int :: {SystemBuffer___unnamed_4_99f86ad5(x)} SystemBuffer___unnamed_4_99f86ad5(x) == x + 0);
-axiom (forall x:int :: {SystemBuffer___unnamed_4_99f86ad5(x)} SystemBuffer___unnamed_4_99f86ad5(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function SystemState_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {SystemState_COMMON_DATA(x)} SystemState_COMMON_DATA(x) == x + 52);
-axiom (forall x:int :: {SystemState_COMMON_DATA(x)} SystemState_COMMON_DATA(x) == INT_ADD(x, 52));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function SystemState__POWER_STATE(int) returns (int);
-
-
-//axiom (forall x:int :: {SystemState__POWER_STATE(x)} SystemState__POWER_STATE(x) == x + 0);
-axiom (forall x:int :: {SystemState__POWER_STATE(x)} SystemState__POWER_STATE(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Tail__IRP(int) returns (int);
-
-
-//axiom (forall x:int :: {Tail__IRP(x)} Tail__IRP(x) == x + 64);
-axiom (forall x:int :: {Tail__IRP(x)} Tail__IRP(x) == INT_ADD(x, 64));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function TopOfStack_COMMON_DATA(int) returns (int);
-
-
-//axiom (forall x:int :: {TopOfStack_COMMON_DATA(x)} TopOfStack_COMMON_DATA(x) == x + 12);
-axiom (forall x:int :: {TopOfStack_COMMON_DATA(x)} TopOfStack_COMMON_DATA(x) == INT_ADD(x, 12));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function Type___unnamed_16_57972375(int) returns (int);
-
-
-//axiom (forall x:int :: {Type___unnamed_16_57972375(x)} Type___unnamed_16_57972375(x) == x + 4);
-axiom (forall x:int :: {Type___unnamed_16_57972375(x)} Type___unnamed_16_57972375(x) == INT_ADD(x, 4));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function __unnamed_12_41c62b26___unnamed_40_32307de2(int) returns (int);
-
-
-//axiom (forall x:int :: {__unnamed_12_41c62b26___unnamed_40_32307de2(x)} __unnamed_12_41c62b26___unnamed_40_32307de2(x) == x + 24);
-axiom (forall x:int :: {__unnamed_12_41c62b26___unnamed_40_32307de2(x)} __unnamed_12_41c62b26___unnamed_40_32307de2(x) == INT_ADD(x, 24));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function __unnamed_4_3c640f23___unnamed_12_41c62b26(int) returns (int);
-
-
-//axiom (forall x:int :: {__unnamed_4_3c640f23___unnamed_12_41c62b26(x)} __unnamed_4_3c640f23___unnamed_12_41c62b26(x) == x + 8);
-axiom (forall x:int :: {__unnamed_4_3c640f23___unnamed_12_41c62b26(x)} __unnamed_4_3c640f23___unnamed_12_41c62b26(x) == INT_ADD(x, 8));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-function __unnamed_4_d4b13373__IO_STATUS_BLOCK(int) returns (int);
-
-
-//axiom (forall x:int :: {__unnamed_4_d4b13373__IO_STATUS_BLOCK(x)} __unnamed_4_d4b13373__IO_STATUS_BLOCK(x) == x + 0);
-axiom (forall x:int :: {__unnamed_4_d4b13373__IO_STATUS_BLOCK(x)} __unnamed_4_d4b13373__IO_STATUS_BLOCK(x) == INT_ADD(x, 0));
-//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
-
-
-///////////////////////////////////
-// will be replaced by:
-// "//" when using bv mode
-// "" when using int mode
-// main reason is to avoid using bv for constants
-// or avoid translating lines that are complex or unsound
-//////////////////////////////////
-
-////////////////////////////////////////////
-/////// functions for int type /////////////
-// Theorem prover does not see INT_ADD etc.
-////////////////////////////////////////////
-function {:inline true} INT_EQ(x:int, y:int) returns (bool) {x == y}
-function {:inline true} INT_NEQ(x:int, y:int) returns (bool) {x != y}
-
-function {:inline true} INT_ADD(x:int, y:int) returns (int) {x + y}
-function {:inline true} INT_SUB(x:int, y:int) returns (int) {x - y}
-function {:inline true} INT_MULT(x:int, y:int) returns (int) {x * y}
-function {:inline true} INT_DIV(x:int, y:int) returns (int) {x div y}
-function {:inline true} INT_LT(x:int, y:int) returns (bool) {x < y}
-function {:inline true} INT_ULT(x:int, y:int) returns (bool) {x < y}
-function {:inline true} INT_LEQ(x:int, y:int) returns (bool) {x <= y}
-function {:inline true} INT_ULEQ(x:int, y:int) returns (bool) {x <= y}
-function {:inline true} INT_GT(x:int, y:int) returns (bool) {x > y}
-function {:inline true} INT_UGT(x:int, y:int) returns (bool) {x > y}
-function {:inline true} INT_GEQ(x:int, y:int) returns (bool) {x >= y}
-function {:inline true} INT_UGEQ(x:int, y:int) returns (bool) {x >= y}
-
-
-////////////////////////////////////////////
-/////// functions for bv32 type /////////////
-// Theorem prover does not see INT_ADD etc.
-// we are treating unsigned ops now
-////////////////////////////////////////////
-function {:inline true} BV32_EQ(x:bv32, y:bv32) returns (bool) {x == y}
-function {:inline true} BV32_NEQ(x:bv32, y:bv32) returns (bool) {x != y}
-
-function {:bvbuiltin "bvadd"} BV32_ADD(x:bv32, y:bv32) returns (bv32);
-function {:bvbuiltin "bvsub"} BV32_SUB(x:bv32, y:bv32) returns (bv32);
-function {:bvbuiltin "bvmul"} BV32_MULT(x:bv32, y:bv32) returns (bv32);
-function {:bvbuiltin "bvudiv"} BV32_DIV(x:bv32, y:bv32) returns (bv32);
-function {:bvbuiltin "bvult"} BV32_ULT(x:bv32, y:bv32) returns (bool);
-function {:bvbuiltin "bvslt"} BV32_LT(x:bv32, y:bv32) returns (bool);
-function {:bvbuiltin "bvule"} BV32_ULEQ(x:bv32, y:bv32) returns (bool);
-function {:bvbuiltin "bvsle"} BV32_LEQ(x:bv32, y:bv32) returns (bool);
-function {:bvbuiltin "bvugt"} BV32_UGT(x:bv32, y:bv32) returns (bool);
-function {:bvbuiltin "bvsgt"} BV32_GT(x:bv32, y:bv32) returns (bool);
-function {:bvbuiltin "bvuge"} BV32_UGEQ(x:bv32, y:bv32) returns (bool);
-function {:bvbuiltin "bvsge"} BV32_GEQ(x:bv32, y:bv32) returns (bool);
-
-//what about bitwise ops {BIT_AND, BIT_OR, BIT_NOT, ..}
-//only enabled with bv theory
-// function {:bvbuiltin "bvand"} BIT_BAND(a:int, b:int) returns (x:int);
-// function {:bvbuiltin "bvor"} BIT_BOR(a:int, b:int) returns (x:int);
-// function {:bvbuiltin "bvxor"} BIT_BXOR(a:int, b:int) returns (x:int);
-// function {:bvbuiltin "bvnot"} BIT_BNOT(a:int) returns (x:int);
-
-//////////////////////////////////
-// Generic C Arithmetic operations
-/////////////////////////////////
-
-//Is this sound for bv32?
-function MINUS_BOTH_PTR_OR_BOTH_INT(a:int, b:int, size:int) returns (int);
- axiom (forall a:int, b:int, size:int :: {MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size)}
-//size * MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size) <= a - b && a - b < size * (MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size) + 1));
- INT_LEQ( INT_MULT(size, MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size)), INT_SUB(a, b)) && INT_LT( INT_SUB(a, b), INT_MULT(size, (INT_ADD(MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size), 1)))));
-
-//we just keep this axiom for size = 1
-axiom (forall a:int, b:int, size:int :: {MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size)} MINUS_BOTH_PTR_OR_BOTH_INT(a,b,1) == INT_SUB(a,b));
-
-
-function MINUS_LEFT_PTR(a:int, a_size:int, b:int) returns (int);
-//axiom(forall a:int, a_size:int, b:int :: {MINUS_LEFT_PTR(a,a_size,b)} MINUS_LEFT_PTR(a,a_size,b) == a - a_size * b);
-axiom(forall a:int, a_size:int, b:int :: {MINUS_LEFT_PTR(a,a_size,b)} MINUS_LEFT_PTR(a,a_size,b) == INT_SUB(a, INT_MULT(a_size, b)));
-
-
-function PLUS(a:int, a_size:int, b:int) returns (int);
-//axiom (forall a:int, a_size:int, b:int :: {PLUS(a,a_size,b)} PLUS(a,a_size,b) == a + a_size * b);
-axiom (forall a:int, a_size:int, b:int :: {PLUS(a,a_size,b)} PLUS(a,a_size,b) == INT_ADD(a, INT_MULT(a_size, b)));
-
-function MULT(a:int, b:int) returns (int); // a*b
-//axiom(forall a:int, b:int :: {MULT(a,b)} MULT(a,b) == a * b);
-axiom(forall a:int, b:int :: {MULT(a,b)} MULT(a,b) == INT_MULT(a, b));
-
-function DIV(a:int, b:int) returns (int); // a/b
-
-// Not sure if these axioms hold for BV too, just commet them for BV
-
-
-
-//uninterpreted binary op
-function BINARY_BOTH_INT(a:int, b:int) returns (int);
-
-
-//////////////////////////////////////////
-//// Bitwise ops (uninterpreted, used with int)
-//////////////////////////////////////////
-
-
- function BIT_BAND(a:int, b:int) returns (x:int);
-
-
- function BIT_BOR(a:int, b:int) returns (x:int);
- function BIT_BXOR(a:int, b:int) returns (x:int);
- function BIT_BNOT(a:int) returns (int);
-
-
-
-
-function LIFT(a:bool) returns (int);
-axiom(forall a:bool :: {LIFT(a)} a <==> LIFT(a) != 0);
-
-function PTR_NOT(a:int) returns (int);
-axiom(forall a:int :: {PTR_NOT(a)} a == 0 ==> PTR_NOT(a) != 0);
-axiom(forall a:int :: {PTR_NOT(a)} a != 0 ==> PTR_NOT(a) == 0);
-
-function NULL_CHECK(a:int) returns (int);
-axiom(forall a:int :: {NULL_CHECK(a)} a == 0 ==> NULL_CHECK(a) != 0);
-axiom(forall a:int :: {NULL_CHECK(a)} a != 0 ==> NULL_CHECK(a) == 0);
-
-procedure havoc_assert(i:int);
-requires (i != 0);
-
-procedure havoc_assume(i:int);
-ensures (i != 0);
-
-procedure __HAVOC_free(a:int);
-
-function NewAlloc(x:int, y:int) returns (z:int);
-
-//Comments below make HAVOC_malloc deterministic
-
-procedure __HAVOC_malloc(obj_size:int) returns (new:int);
-//requires obj_size >= 0;
-free requires INT_GEQ(obj_size, 0);
-modifies alloc;
-ensures new == old(alloc);
-//ensures alloc > new + obj_size;
-ensures INT_GT(alloc, INT_ADD(new, obj_size));
-//ensures alloc == NewAlloc(old(alloc), obj_size);
-
-
-
-
-procedure _strdup(str:int) returns (new:int);
-
-procedure _xstrcasecmp(a0:int, a1:int) returns (ret:int);
-
-procedure _xstrcmp(a0:int, a1:int) returns (ret:int);
-
-
-/*
-//bv functions
-function bv8ToInt(bv8) returns (int);
-function bv16ToInt(bv16) returns (int);
-function bv32ToInt(bv32) returns (int);
-function bv64ToInt(bv64) returns (int);
-
-function intToBv8(int) returns (bv8);
-function intToBv16(int) returns (bv16);
-function intToBv32(int) returns (bv32);
-function intToBv64(int) returns (bv64);
-
-axiom(forall a:int :: {intToBv8(a)} bv8ToInt(intToBv8(a)) == a);
-axiom(forall a:int :: {intToBv16(a)} bv16ToInt(intToBv16(a)) == a);
-axiom(forall a:int :: {intToBv32(a)} bv32ToInt(intToBv32(a)) == a);
-axiom(forall a:int :: {intToBv64(a)} bv64ToInt(intToBv64(a)) == a);
-
-axiom(forall b:bv8 :: {bv8ToInt(b)} intToBv8(bv8ToInt(b)) == b);
-axiom(forall b:bv16 :: {bv16ToInt(b)} intToBv16(bv16ToInt(b)) == b);
-axiom(forall b:bv32 :: {bv32ToInt(b)} intToBv32(bv32ToInt(b)) == b);
-axiom(forall b:bv64 :: {bv64ToInt(b)} intToBv64(bv64ToInt(b)) == b);
-*/
-
-
-
-var Res_0_COMPLETED : [int]int;
-var Res_1_COMPLETED : [int]int;
-var Res_s_1_COMPLETED : [int]int;
-var Res_KERNEL_SOURCE:[int]int;
-var Res_0_LOCK : [int]int;
-var Res_1_LOCK : [int]int;
-var Res_s_1_LOCK : [int]int;
-var Res_PROBED:[int]int;
-
-//Pointer constants
-
-//Function pointer constants
-
-
-const unique Globals : int;
-axiom(Globals != 0);
-const unique I8xPowerUpToD0Complete : int;
-axiom(I8xPowerUpToD0Complete != 0);
-const unique I8xReinitializeHardware : int;
-axiom(I8xReinitializeHardware != 0);
-const unique I8xSysButtonCancelRoutine : int;
-axiom(I8xSysButtonCancelRoutine != 0);
-var cancelLockStatus_0 : int;
-var cancelLockStatus_1 : int;
-var cancelLockStatus_s_1 : int;
-
-const unique hdevobj : int;
-axiom(hdevobj != 0);
-// the set of constants for 64 bit integers that Boogie doesn't parse
-const unique BOOGIE_LARGE_INT_2147483648:int;
-
-
-
-procedure ExFreePoolWithTag(a0:int, a1:int);
-
-
-
-procedure IO_COMPLETION_ROUTINE(a0:int, a1:int, a2:int) returns (ret:int);
-
-
-
-procedure IoAcquireRemoveLockEx(a0:int, a1:int, a2:int, a3:int, a4:int) returns (ret:int);
-
-
-
-procedure IoAllocateWorkItem(a0:int) returns (ret:int);
-
-
-
-procedure IoDisconnectInterrupt(a0:int);
-
-
-
-procedure IoFreeWorkItem(a0:int);
-
-
-
-procedure IoQueueWorkItem(a0:int, a1:int, a2:int, a3:int);
-
-
-
-procedure IoReleaseRemoveLockEx(a0:int, a1:int, a2:int);
-
-
-
-procedure PoSetPowerState(a0:int, a1:int, a2:int) returns (ret:int);
-
-
-
-procedure PoStartNextPowerIrp(a0:int);
-
-
-
-procedure __PREfastPagedCode();
-
-
-
-procedure __storm_assert_dummy();
-
-
-
-procedure __storm_atomic_begin_dummy();
-
-
-
-procedure __storm_atomic_end_dummy();
-
-
-
-procedure memcpy(a0:int, a1:int, a2:int) returns (ret:int);
-
-
-
-procedure memset(a0:int, a1:int, a2:int) returns (ret:int);
-
-
-
-
-
-
-procedure storm_nondet() returns (ret:int);
-
-
-
-procedure storm_main();
- free requires 0 < alloc;
- free requires 0 < tid;
- free requires tid < tidCount;
- requires INT_LT(PLUS(hdevobj, 1, 184), alloc);
- modifies tidCount, alloc, raiseException, cancelLockStatus_s_1, __storm_init, __storm_atomic, errorReached, cancelLockStatus_0, cancelLockStatus_1, __storm_thread_done_2, __storm_thread_done_1, __storm_thread_done_0, tid, k, Res_0_COMPLETED, Res_1_COMPLETED, Res_KERNEL_SOURCE, Res_0_LOCK, Res_1_LOCK, Res_PROBED, Mem_0_T.CancelRoutine__IRP, Mem_1_T.CancelRoutine__IRP, Mem_0_T.Cancel__IRP, Mem_1_T.Cancel__IRP, Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23, Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23, Mem_0_T.DeviceExtension__DEVICE_OBJECT, Mem_1_T.DeviceExtension__DEVICE_OBJECT, Mem_0_T.DeviceObject__IO_STACK_LOCATION, Mem_1_T.DeviceObject__IO_STACK_LOCATION;
-
-
-
-implementation storm_main()
-{
- var inline$IoGetNextIrpStackLocation$0$$result.IoGetNextIrpStackLocation$23462.0$1$: int, inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine: int, inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$: int, inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine_.1: int, inline$storm_IoAllocateIrp$0$$result.malloc$284.0$3$: int, inline$I8xKeyboardGetSysButtonEvent$0$myVar_0: int, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp_.1: int, k_old_1: int, k_old_0: int, inline$IoSetNextIrpStackLocation$0$myVar_0: int, inline$storm_IoCancelIrp$0$myNondetVar_0: int, inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp: int, inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent_.1: int, inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl_.1: int, inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp: int, inline$IoGetCurrentIrpStackLocation$0$$result.IoGetCurrentIrpStackLocation$23297.0$1$: int, inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp: int, tid_old_1: int, inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$: int, tid_old_0: int, inline$storm_IoAllocateIrp$0$$result.IoGetNextIrpStackLocation$284.0$6$: int, inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation: int, inline$cancel$0$$Irp$1$64.17$cancel: int, inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest: int, inline$storm_IoAllocateIrp$0$$malloc.arg.1$5$: int, inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$: int, inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest_.1: int, inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl: int, inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$: int, inline$IoSetNextIrpStackLocation$0$tempBoogie0: int, inline$storm_IoAcquireCancelSpinLock$0$$result.storm_getThreadID$185.29$1$: int, inline$cancel$0$$Irp$1$64.17$cancel_.1: int, $irp$1$91.7$storm_main: int, inline$storm_getThreadID$0$tidRet: int, inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation_.1: int, $result.storm_IoAllocateIrp$96.21$1$: int, inline$IoGetCurrentIrpStackLocation$0$myVar_0: int, inline$storm_IoAllocateIrp$0$$result.malloc$284.0$4$: int, tidCount_old: int, inline$IoSetNextIrpStackLocation$0$myNondetVar_0: int, inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent: int, inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine: int, inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp: int, inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp_.1: int, inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp: int, inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine_.1: int, inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock: int, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp: int, inline$dispatch$0$$Irp$1$8.19$dispatch: int, $result.IoGetCurrentIrpStackLocation$99.38$2$: int, inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0: int, inline$IoGetNextIrpStackLocation$0$myVar_0: int, inline$storm_IoAllocateIrp$0$$result.storm_IoAllocateIrp$275.0$1$: int, inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$173.41$4$: int, inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation_.1: int, inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent: int, $irpSp$2$92.21$storm_main: int, inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation: int, inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$: int, inline$storm_IoCancelIrp$0$myVar_0: int, inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp_.1: int, inline$dispatch$0$$Irp$1$8.19$dispatch_.1: int, inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation: int, inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation_.1: int, inline$storm_IoCancelIrp$0$myNondetVar_1: int;
-
- start#1:
- assume Res_1_COMPLETED == Res_s_1_COMPLETED;
- assume Res_1_LOCK == Res_s_1_LOCK;
- assume Mem_1_T.CancelRoutine__IRP == Mem_s_1_T.CancelRoutine__IRP;
- assume Mem_1_T.Cancel__IRP == Mem_s_1_T.Cancel__IRP;
- assume Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 == Mem_s_1_T.CurrentStackLocation___unnamed_4_3c640f23;
- assume Mem_1_T.DeviceExtension__DEVICE_OBJECT == Mem_s_1_T.DeviceExtension__DEVICE_OBJECT;
- assume Mem_1_T.DeviceObject__IO_STACK_LOCATION == Mem_s_1_T.DeviceObject__IO_STACK_LOCATION;
- assume cancelLockStatus_1 == cancelLockStatus_s_1;
- __storm_thread_done_0 := false;
- __storm_thread_done_1 := false;
- __storm_thread_done_2 := false;
- k := 0;
- errorReached := false;
- __storm_atomic := false;
- __storm_init := false;
- goto label_3#1;
-
- label_3#1:
- goto label_4#1;
-
- label_4#1:
- goto label_5#1;
-
- label_5#1:
- goto anon10_Then#1, anon10_Else#1;
-
- anon10_Else#1:
- assume k != 0;
- goto anon11_Then#1, anon11_Else#1;
-
- anon11_Else#1:
- assume k != 1;
- goto anon2#1;
-
- anon11_Then#1:
- assume k == 1;
- cancelLockStatus_1 := 0;
- goto anon2#1;
-
- anon10_Then#1:
- assume k == 0;
- cancelLockStatus_0 := 0;
- goto anon2#1;
-
- anon2#1:
- call contextSwitch();
- goto label_6#1;
-
- label_6#1:
- goto inline$storm_IoAllocateIrp$0$Entry#1;
-
- inline$storm_IoAllocateIrp$0$Entry#1:
- inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp_.1 := 2;
- goto inline$storm_IoAllocateIrp$0$start#1;
-
- inline$storm_IoAllocateIrp$0$start#1:
- inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp_.1;
- goto inline$storm_IoAllocateIrp$0$label_3#1;
-
- inline$storm_IoAllocateIrp$0$label_3#1:
- goto inline$storm_IoAllocateIrp$0$label_4#1;
-
- inline$storm_IoAllocateIrp$0$label_4#1:
- goto inline$storm_IoAllocateIrp$0$label_5#1;
-
- inline$storm_IoAllocateIrp$0$label_5#1:
- call inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$ := storm_nondet();
- goto inline$storm_IoAllocateIrp$0$label_8#1;
-
- inline$storm_IoAllocateIrp$0$label_8#1:
- goto inline$storm_IoAllocateIrp$0$label_8_case_0#1, inline$storm_IoAllocateIrp$0$label_8_case_1#1;
-
- inline$storm_IoAllocateIrp$0$label_8_case_1#1:
- assume inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$ == 0;
- goto inline$storm_IoAllocateIrp$0$label_10#1;
-
- inline$storm_IoAllocateIrp$0$label_10#1:
- __storm_atomic := true;
- goto inline$storm_IoAllocateIrp$0$label_13#1;
-
- inline$storm_IoAllocateIrp$0$label_13#1:
- call inline$storm_IoAllocateIrp$0$$result.malloc$284.0$3$ := __HAVOC_malloc(112);
- goto inline$storm_IoAllocateIrp$0$label_16#1;
-
- inline$storm_IoAllocateIrp$0$label_16#1:
- inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$result.malloc$284.0$3$;
- goto inline$storm_IoAllocateIrp$0$label_17#1;
-
- inline$storm_IoAllocateIrp$0$label_17#1:
- goto inline$storm_IoAllocateIrp$0$anon14_Then#1, inline$storm_IoAllocateIrp$0$anon14_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon14_Else#1:
- assume k != 0;
- goto inline$storm_IoAllocateIrp$0$anon15_Then#1, inline$storm_IoAllocateIrp$0$anon15_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon15_Else#1:
- assume k != 1;
- goto inline$storm_IoAllocateIrp$0$anon2#1;
-
- inline$storm_IoAllocateIrp$0$anon15_Then#1:
- assume k == 1;
- Mem_1_T.Cancel__IRP := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
- goto inline$storm_IoAllocateIrp$0$anon2#1;
-
- inline$storm_IoAllocateIrp$0$anon14_Then#1:
- assume k == 0;
- Mem_0_T.Cancel__IRP := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
- goto inline$storm_IoAllocateIrp$0$anon2#1;
-
- inline$storm_IoAllocateIrp$0$anon2#1:
- call contextSwitch();
- goto inline$storm_IoAllocateIrp$0$label_18#1;
-
- inline$storm_IoAllocateIrp$0$label_18#1:
- goto inline$storm_IoAllocateIrp$0$anon16_Then#1, inline$storm_IoAllocateIrp$0$anon16_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon16_Else#1:
- assume k != 0;
- goto inline$storm_IoAllocateIrp$0$anon17_Then#1, inline$storm_IoAllocateIrp$0$anon17_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon17_Else#1:
- assume k != 1;
- goto inline$storm_IoAllocateIrp$0$anon5#1;
-
- inline$storm_IoAllocateIrp$0$anon17_Then#1:
- assume k == 1;
- Mem_1_T.CancelRoutine__IRP := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
- goto inline$storm_IoAllocateIrp$0$anon5#1;
-
- inline$storm_IoAllocateIrp$0$anon16_Then#1:
- assume k == 0;
- Mem_0_T.CancelRoutine__IRP := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
- goto inline$storm_IoAllocateIrp$0$anon5#1;
-
- inline$storm_IoAllocateIrp$0$anon5#1:
- call contextSwitch();
- goto inline$storm_IoAllocateIrp$0$label_19#1;
-
- inline$storm_IoAllocateIrp$0$label_19#1:
- goto inline$storm_IoAllocateIrp$0$anon18_Then#1, inline$storm_IoAllocateIrp$0$anon18_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon18_Else#1:
- assume k != 0;
- goto inline$storm_IoAllocateIrp$0$anon19_Then#1, inline$storm_IoAllocateIrp$0$anon19_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon19_Else#1:
- assume k != 1;
- goto inline$storm_IoAllocateIrp$0$anon8#1;
-
- inline$storm_IoAllocateIrp$0$anon19_Then#1:
- assume k == 1;
- Res_1_COMPLETED := Res_1_COMPLETED[inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := 0];
- goto inline$storm_IoAllocateIrp$0$anon8#1;
-
- inline$storm_IoAllocateIrp$0$anon18_Then#1:
- assume k == 0;
- Res_0_COMPLETED := Res_0_COMPLETED[inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := 0];
- goto inline$storm_IoAllocateIrp$0$anon8#1;
-
- inline$storm_IoAllocateIrp$0$anon8#1:
- call contextSwitch();
- goto inline$storm_IoAllocateIrp$0$label_20#1;
-
- inline$storm_IoAllocateIrp$0$label_20#1:
- assume INT_LT(0, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp);
- goto inline$storm_IoAllocateIrp$0$label_21#1;
-
- inline$storm_IoAllocateIrp$0$label_21#1:
- inline$storm_IoAllocateIrp$0$$malloc.arg.1$5$ := MULT(inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp, 36);
- goto inline$storm_IoAllocateIrp$0$label_22#1;
-
- inline$storm_IoAllocateIrp$0$label_22#1:
- call inline$storm_IoAllocateIrp$0$$result.malloc$284.0$4$ := __HAVOC_malloc(inline$storm_IoAllocateIrp$0$$malloc.arg.1$5$);
- goto inline$storm_IoAllocateIrp$0$label_25#1;
-
- inline$storm_IoAllocateIrp$0$label_25#1:
- inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$result.malloc$284.0$4$;
- goto inline$storm_IoAllocateIrp$0$label_26#1;
-
- inline$storm_IoAllocateIrp$0$label_26#1:
- goto inline$storm_IoAllocateIrp$0$anon20_Then#1, inline$storm_IoAllocateIrp$0$anon20_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon20_Else#1:
- assume k != 0;
- goto inline$storm_IoAllocateIrp$0$anon21_Then#1, inline$storm_IoAllocateIrp$0$anon21_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon21_Else#1:
- assume k != 1;
- goto inline$storm_IoAllocateIrp$0$anon11#1;
-
- inline$storm_IoAllocateIrp$0$anon21_Then#1:
- assume k == 1;
- Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp))))) := PLUS(inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp, 36, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp)];
- goto inline$storm_IoAllocateIrp$0$anon11#1;
-
- inline$storm_IoAllocateIrp$0$anon20_Then#1:
- assume k == 0;
- Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp))))) := PLUS(inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp, 36, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp)];
- goto inline$storm_IoAllocateIrp$0$anon11#1;
-
- inline$storm_IoAllocateIrp$0$anon11#1:
- call contextSwitch();
- goto inline$storm_IoAllocateIrp$0$label_27#1;
-
- inline$storm_IoAllocateIrp$0$label_27#1:
- goto inline$IoGetNextIrpStackLocation$0$Entry#1;
-
- inline$IoGetNextIrpStackLocation$0$Entry#1:
- inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation_.1 := inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp;
- goto inline$IoGetNextIrpStackLocation$0$start#1;
-
- inline$IoGetNextIrpStackLocation$0$start#1:
- inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation := inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation_.1;
- goto inline$IoGetNextIrpStackLocation$0$label_3#1;
-
- inline$IoGetNextIrpStackLocation$0$label_3#1:
- goto inline$IoGetNextIrpStackLocation$0$anon3_Then#1, inline$IoGetNextIrpStackLocation$0$anon3_Else#1;
-
- inline$IoGetNextIrpStackLocation$0$anon3_Else#1:
- assume k != 0;
- goto inline$IoGetNextIrpStackLocation$0$anon4_Then#1, inline$IoGetNextIrpStackLocation$0$anon4_Else#1;
-
- inline$IoGetNextIrpStackLocation$0$anon4_Else#1:
- assume k != 1;
- goto inline$IoGetNextIrpStackLocation$0$anon2#1;
-
- inline$IoGetNextIrpStackLocation$0$anon4_Then#1:
- assume k == 1;
- inline$IoGetNextIrpStackLocation$0$myVar_0 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation)))))];
- goto inline$IoGetNextIrpStackLocation$0$anon2#1;
-
- inline$IoGetNextIrpStackLocation$0$anon3_Then#1:
- assume k == 0;
- inline$IoGetNextIrpStackLocation$0$myVar_0 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation)))))];
- goto inline$IoGetNextIrpStackLocation$0$anon2#1;
-
- inline$IoGetNextIrpStackLocation$0$anon2#1:
- call contextSwitch();
- inline$IoGetNextIrpStackLocation$0$$result.IoGetNextIrpStackLocation$23462.0$1$ := MINUS_LEFT_PTR(inline$IoGetNextIrpStackLocation$0$myVar_0, 36, 1);
- goto inline$IoGetNextIrpStackLocation$0$label_1#1;
-
- inline$IoGetNextIrpStackLocation$0$label_1#1:
- goto inline$IoGetNextIrpStackLocation$0$Return#1;
-
- inline$IoGetNextIrpStackLocation$0$Return#1:
- inline$storm_IoAllocateIrp$0$$result.IoGetNextIrpStackLocation$284.0$6$ := inline$IoGetNextIrpStackLocation$0$$result.IoGetNextIrpStackLocation$23462.0$1$;
- goto inline$storm_IoAllocateIrp$0$label_27$1#1;
-
- inline$storm_IoAllocateIrp$0$label_27$1#1:
- goto inline$storm_IoAllocateIrp$0$label_30#1;
-
- inline$storm_IoAllocateIrp$0$label_30#1:
- inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$result.IoGetNextIrpStackLocation$284.0$6$;
- goto inline$storm_IoAllocateIrp$0$label_31#1;
-
- inline$storm_IoAllocateIrp$0$label_31#1:
- goto inline$storm_IoAllocateIrp$0$label_32#1;
-
- inline$storm_IoAllocateIrp$0$label_32#1:
- goto inline$storm_IoAllocateIrp$0$label_33#1;
-
- inline$storm_IoAllocateIrp$0$label_33#1:
- goto inline$storm_IoAllocateIrp$0$anon22_Then#1, inline$storm_IoAllocateIrp$0$anon22_Else#1;
-
- inline$storm_IoAllocateIrp$0$anon22_Else#1:
- assume __storm_init;
- goto inline$storm_IoAllocateIrp$0$anon13#1;
-
- inline$storm_IoAllocateIrp$0$anon22_Then#1:
- assume !__storm_init;
- __storm_atomic := false;
- goto inline$storm_IoAllocateIrp$0$anon13#1;
-
- inline$storm_IoAllocateIrp$0$anon13#1:
- call contextSwitch();
- goto inline$storm_IoAllocateIrp$0$label_36#1;
-
- inline$storm_IoAllocateIrp$0$label_8_case_0#1:
- assume inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$ != 0;
- goto inline$storm_IoAllocateIrp$0$label_9#1;
-
- inline$storm_IoAllocateIrp$0$label_9#1:
- inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := 0;
- goto inline$storm_IoAllocateIrp$0$label_36#1;
-
- inline$storm_IoAllocateIrp$0$label_36#1:
- inline$storm_IoAllocateIrp$0$$result.storm_IoAllocateIrp$275.0$1$ := inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp;
- goto inline$storm_IoAllocateIrp$0$label_1#1;
-
- inline$storm_IoAllocateIrp$0$label_1#1:
- goto inline$storm_IoAllocateIrp$0$Return#1;
-
- inline$storm_IoAllocateIrp$0$Return#1:
- $result.storm_IoAllocateIrp$96.21$1$ := inline$storm_IoAllocateIrp$0$$result.storm_IoAllocateIrp$275.0$1$;
- goto label_6$1#1;
-
- label_6$1#1:
- goto label_9#1;
-
- label_9#1:
- $irp$1$91.7$storm_main := $result.storm_IoAllocateIrp$96.21$1$;
- goto label_10#1;
-
- label_10#1:
- assume INT_NEQ($irp$1$91.7$storm_main, 0);
- goto label_11#1;
-
- label_11#1:
- goto inline$IoSetNextIrpStackLocation$0$Entry#1;
-
- inline$IoSetNextIrpStackLocation$0$Entry#1:
- inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation_.1 := $irp$1$91.7$storm_main;
- goto inline$IoSetNextIrpStackLocation$0$start#1;
-
- inline$IoSetNextIrpStackLocation$0$start#1:
- inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation := inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation_.1;
- goto inline$IoSetNextIrpStackLocation$0$label_3#1;
-
- inline$IoSetNextIrpStackLocation$0$label_3#1:
- havoc inline$IoSetNextIrpStackLocation$0$myNondetVar_0;
- inline$IoSetNextIrpStackLocation$0$tempBoogie0 := MINUS_BOTH_PTR_OR_BOTH_INT(inline$IoSetNextIrpStackLocation$0$myNondetVar_0, 1, 1);
- goto inline$IoSetNextIrpStackLocation$0$label_4#1;
-
- inline$IoSetNextIrpStackLocation$0$label_4#1:
- goto inline$IoSetNextIrpStackLocation$0$anon6_Then#1, inline$IoSetNextIrpStackLocation$0$anon6_Else#1;
-
- inline$IoSetNextIrpStackLocation$0$anon6_Else#1:
- assume k != 0;
- goto inline$IoSetNextIrpStackLocation$0$anon7_Then#1, inline$IoSetNextIrpStackLocation$0$anon7_Else#1;
-
- inline$IoSetNextIrpStackLocation$0$anon7_Else#1:
- assume k != 1;
- goto inline$IoSetNextIrpStackLocation$0$anon2#1;
-
- inline$IoSetNextIrpStackLocation$0$anon7_Then#1:
- assume k == 1;
- inline$IoSetNextIrpStackLocation$0$myVar_0 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation)))))];
- goto inline$IoSetNextIrpStackLocation$0$anon2#1;
-
- inline$IoSetNextIrpStackLocation$0$anon6_Then#1:
- assume k == 0;
- inline$IoSetNextIrpStackLocation$0$myVar_0 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation)))))];
- goto inline$IoSetNextIrpStackLocation$0$anon2#1;
-
- inline$IoSetNextIrpStackLocation$0$anon2#1:
- call contextSwitch();
- inline$IoSetNextIrpStackLocation$0$tempBoogie0 := MINUS_LEFT_PTR(inline$IoSetNextIrpStackLocation$0$myVar_0, 36, 1);
- goto inline$IoSetNextIrpStackLocation$0$anon8_Then#1, inline$IoSetNextIrpStackLocation$0$anon8_Else#1;
-
- inline$IoSetNextIrpStackLocation$0$anon8_Else#1:
- assume k != 0;
- goto inline$IoSetNextIrpStackLocation$0$anon9_Then#1, inline$IoSetNextIrpStackLocation$0$anon9_Else#1;
-
- inline$IoSetNextIrpStackLocation$0$anon9_Else#1:
- assume k != 1;
- goto inline$IoSetNextIrpStackLocation$0$anon5#1;
-
- inline$IoSetNextIrpStackLocation$0$anon9_Then#1:
- assume k == 1;
- Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation))))) := inline$IoSetNextIrpStackLocation$0$tempBoogie0];
- goto inline$IoSetNextIrpStackLocation$0$anon5#1;
-
- inline$IoSetNextIrpStackLocation$0$anon8_Then#1:
- assume k == 0;
- Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation))))) := inline$IoSetNextIrpStackLocation$0$tempBoogie0];
- goto inline$IoSetNextIrpStackLocation$0$anon5#1;
-
- inline$IoSetNextIrpStackLocation$0$anon5#1:
- call contextSwitch();
- goto inline$IoSetNextIrpStackLocation$0$label_1#1;
-
- inline$IoSetNextIrpStackLocation$0$label_1#1:
- goto inline$IoSetNextIrpStackLocation$0$Return#1;
-
- inline$IoSetNextIrpStackLocation$0$Return#1:
- goto label_11$1#1;
-
- label_11$1#1:
- goto label_14#1;
-
- label_14#1:
- goto inline$IoGetCurrentIrpStackLocation$0$Entry#1;
-
- inline$IoGetCurrentIrpStackLocation$0$Entry#1:
- inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation_.1 := $irp$1$91.7$storm_main;
- goto inline$IoGetCurrentIrpStackLocation$0$start#1;
-
- inline$IoGetCurrentIrpStackLocation$0$start#1:
- inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation := inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation_.1;
- goto inline$IoGetCurrentIrpStackLocation$0$label_3#1;
-
- inline$IoGetCurrentIrpStackLocation$0$label_3#1:
- goto inline$IoGetCurrentIrpStackLocation$0$anon3_Then#1, inline$IoGetCurrentIrpStackLocation$0$anon3_Else#1;
-
- inline$IoGetCurrentIrpStackLocation$0$anon3_Else#1:
- assume k != 0;
- goto inline$IoGetCurrentIrpStackLocation$0$anon4_Then#1, inline$IoGetCurrentIrpStackLocation$0$anon4_Else#1;
-
- inline$IoGetCurrentIrpStackLocation$0$anon4_Else#1:
- assume k != 1;
- goto inline$IoGetCurrentIrpStackLocation$0$anon2#1;
-
- inline$IoGetCurrentIrpStackLocation$0$anon4_Then#1:
- assume k == 1;
- inline$IoGetCurrentIrpStackLocation$0$myVar_0 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation)))))];
- goto inline$IoGetCurrentIrpStackLocation$0$anon2#1;
-
- inline$IoGetCurrentIrpStackLocation$0$anon3_Then#1:
- assume k == 0;
- inline$IoGetCurrentIrpStackLocation$0$myVar_0 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation)))))];
- goto inline$IoGetCurrentIrpStackLocation$0$anon2#1;
-
- inline$IoGetCurrentIrpStackLocation$0$anon2#1:
- call contextSwitch();
- inline$IoGetCurrentIrpStackLocation$0$$result.IoGetCurrentIrpStackLocation$23297.0$1$ := inline$IoGetCurrentIrpStackLocation$0$myVar_0;
- goto inline$IoGetCurrentIrpStackLocation$0$label_1#1;
-
- inline$IoGetCurrentIrpStackLocation$0$label_1#1:
- goto inline$IoGetCurrentIrpStackLocation$0$Return#1;
-
- inline$IoGetCurrentIrpStackLocation$0$Return#1:
- $result.IoGetCurrentIrpStackLocation$99.38$2$ := inline$IoGetCurrentIrpStackLocation$0$$result.IoGetCurrentIrpStackLocation$23297.0$1$;
- goto label_14$1#1;
-
- label_14$1#1:
- goto label_17#1;
-
- label_17#1:
- $irpSp$2$92.21$storm_main := $result.IoGetCurrentIrpStackLocation$99.38$2$;
- goto label_18#1;
-
- label_18#1:
- goto anon12_Then#1, anon12_Else#1;
-
- anon12_Else#1:
- assume k != 0;
- goto anon13_Then#1, anon13_Else#1;
-
- anon13_Else#1:
- assume k != 1;
- goto anon5#1;
-
- anon13_Then#1:
- assume k == 1;
- Mem_1_T.DeviceObject__IO_STACK_LOCATION := Mem_1_T.DeviceObject__IO_STACK_LOCATION[DeviceObject__IO_STACK_LOCATION($irpSp$2$92.21$storm_main) := hdevobj];
- goto anon5#1;
-
- anon12_Then#1:
- assume k == 0;
- Mem_0_T.DeviceObject__IO_STACK_LOCATION := Mem_0_T.DeviceObject__IO_STACK_LOCATION[DeviceObject__IO_STACK_LOCATION($irpSp$2$92.21$storm_main) := hdevobj];
- goto anon5#1;
-
- anon5#1:
- call contextSwitch();
- goto label_19#1;
-
- label_19#1:
- goto label_20#1;
-
- label_20#1:
- k_old_0 := k;
- tid_old_0 := tid;
- tidCount_old := tidCount;
- havoc tidCount;
- assume tidCount_old < tidCount;
- tid := tidCount;
- raiseException := false;
- call contextSwitch();
- goto inline$dispatch$0$Entry#1;
-
- inline$dispatch$0$Entry#1:
- inline$dispatch$0$$Irp$1$8.19$dispatch_.1 := $irp$1$91.7$storm_main;
- goto inline$dispatch$0$start#1;
-
- inline$dispatch$0$start#1:
- inline$dispatch$0$$Irp$1$8.19$dispatch := inline$dispatch$0$$Irp$1$8.19$dispatch_.1;
- goto inline$dispatch$0$label_3#1;
-
- inline$dispatch$0$label_3#1:
- goto inline$dispatch$0$label_4#1;
-
- inline$dispatch$0$label_4#1:
- goto inline$IoGetCurrentIrpStackLocation$1$Entry#1;
-
- inline$IoGetCurrentIrpStackLocation$1$Entry#1:
- goto inline$IoGetCurrentIrpStackLocation$1$start#1;
-
- inline$IoGetCurrentIrpStackLocation$1$start#1:
- goto inline$IoGetCurrentIrpStackLocation$1$label_3#1;
-
- inline$IoGetCurrentIrpStackLocation$1$label_3#1:
- goto inline$IoGetCurrentIrpStackLocation$1$anon3_Then#1, inline$IoGetCurrentIrpStackLocation$1$anon3_Else#1;
-
- inline$IoGetCurrentIrpStackLocation$1$anon3_Else#1:
- assume k != 0;
- goto inline$IoGetCurrentIrpStackLocation$1$anon4_Then#1, inline$IoGetCurrentIrpStackLocation$1$anon4_Else#1;
-
- inline$IoGetCurrentIrpStackLocation$1$anon4_Else#1:
- assume k != 1;
- goto inline$IoGetCurrentIrpStackLocation$1$anon2#1;
-
- inline$IoGetCurrentIrpStackLocation$1$anon4_Then#1:
- assume k == 1;
- goto inline$IoGetCurrentIrpStackLocation$1$anon2#1;
-
- inline$IoGetCurrentIrpStackLocation$1$anon3_Then#1:
- assume k == 0;
- goto inline$IoGetCurrentIrpStackLocation$1$anon2#1;
-
- inline$IoGetCurrentIrpStackLocation$1$anon2#1:
- call contextSwitch();
- goto inline$IoGetCurrentIrpStackLocation$1$label_1#1;
-
- inline$IoGetCurrentIrpStackLocation$1$label_1#1:
- goto inline$IoGetCurrentIrpStackLocation$1$Return#1;
-
- inline$IoGetCurrentIrpStackLocation$1$Return#1:
- goto inline$dispatch$0$label_4$1#1;
-
- inline$dispatch$0$label_4$1#1:
- goto inline$dispatch$0$label_7#1;
-
- inline$dispatch$0$label_7#1:
- goto inline$dispatch$0$label_8#1;
-
- inline$dispatch$0$label_8#1:
- goto inline$I8xDeviceControl$0$Entry#1;
-
- inline$I8xDeviceControl$0$Entry#1:
- inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl_.1 := inline$dispatch$0$$Irp$1$8.19$dispatch;
- goto inline$I8xDeviceControl$0$start#1;
-
- inline$I8xDeviceControl$0$start#1:
- inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl := inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl_.1;
- goto inline$I8xDeviceControl$0$label_3#1;
-
- inline$I8xDeviceControl$0$label_3#1:
- goto inline$I8xDeviceControl$0$label_4#1;
-
- inline$I8xDeviceControl$0$label_4#1:
- call __PREfastPagedCode();
- goto inline$I8xDeviceControl$0$label_7#1;
-
- inline$I8xDeviceControl$0$label_7#1:
- goto inline$I8xDeviceControl$0$anon3_Then#1, inline$I8xDeviceControl$0$anon3_Else#1;
-
- inline$I8xDeviceControl$0$anon3_Else#1:
- assume k != 0;
- goto inline$I8xDeviceControl$0$anon4_Then#1, inline$I8xDeviceControl$0$anon4_Else#1;
-
- inline$I8xDeviceControl$0$anon4_Else#1:
- assume k != 1;
- goto inline$I8xDeviceControl$0$anon2#1;
-
- inline$I8xDeviceControl$0$anon4_Then#1:
- assume k == 1;
- goto inline$I8xDeviceControl$0$anon2#1;
-
- inline$I8xDeviceControl$0$anon3_Then#1:
- assume k == 0;
- goto inline$I8xDeviceControl$0$anon2#1;
-
- inline$I8xDeviceControl$0$anon2#1:
- call contextSwitch();
- goto inline$I8xDeviceControl$0$label_8#1;
-
- inline$I8xDeviceControl$0$label_8#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$Entry#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$Entry#1:
- inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent_.1 := inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl;
- goto inline$I8xKeyboardGetSysButtonEvent$0$start#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$start#1:
- inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent := inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent_.1;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_3#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_3#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_4#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_4#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_5#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_5#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_6#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_6#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_7#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_7#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_8#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_8#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_9#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_9#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_9_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_9_false#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_9_false#1:
- havoc inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0;
- assume inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0 == 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_10#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_10#1:
- goto inline$storm_IoSetCancelRoutine$0$Entry#1;
-
- inline$storm_IoSetCancelRoutine$0$Entry#1:
- inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine_.1 := inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent;
- inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine_.1 := I8xSysButtonCancelRoutine;
- goto inline$storm_IoSetCancelRoutine$0$start#1;
-
- inline$storm_IoSetCancelRoutine$0$start#1:
- inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine := inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine_.1;
- inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine := inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine_.1;
- goto inline$storm_IoSetCancelRoutine$0$label_3#1;
-
- inline$storm_IoSetCancelRoutine$0$label_3#1:
- goto inline$storm_IoSetCancelRoutine$0$label_4#1;
-
- inline$storm_IoSetCancelRoutine$0$label_4#1:
- call inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$ := storm_nondet();
- goto inline$storm_IoSetCancelRoutine$0$label_7#1;
-
- inline$storm_IoSetCancelRoutine$0$label_7#1:
- goto inline$storm_IoSetCancelRoutine$0$label_7_true#1, inline$storm_IoSetCancelRoutine$0$label_7_false#1;
-
- inline$storm_IoSetCancelRoutine$0$label_7_false#1:
- assume inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$ == 0;
- goto inline$storm_IoSetCancelRoutine$0$label_8#1;
-
- inline$storm_IoSetCancelRoutine$0$label_7_true#1:
- assume inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$ != 0;
- goto inline$storm_IoSetCancelRoutine$0$label_11#1;
-
- inline$storm_IoSetCancelRoutine$0$label_11#1:
- assume k == 0 ==> INT_EQ(Res_0_COMPLETED[inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine], 1);
- assume k == 1 ==> INT_EQ(Res_1_COMPLETED[inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine], 1);
- call contextSwitch();
- goto inline$storm_IoSetCancelRoutine$0$label_12#1;
-
- inline$storm_IoSetCancelRoutine$0$label_12#1:
- goto inline$storm_IoSetCancelRoutine$0$label_12_true#1, inline$storm_IoSetCancelRoutine$0$label_12_false#1;
-
- inline$storm_IoSetCancelRoutine$0$label_12_false#1:
- assume 0 == 0;
- goto inline$storm_IoSetCancelRoutine$0$label_13#1;
-
- inline$storm_IoSetCancelRoutine$0$label_13#1:
- errorReached := true;
- raiseException := true;
- __storm_atomic := false;
- __storm_init := false;
- goto inline$storm_IoSetCancelRoutine$0$label_1#1;
-
- inline$storm_IoSetCancelRoutine$0$label_12_true#1:
- assume 0 != 0;
- goto inline$storm_IoSetCancelRoutine$0$label_8#1;
-
- inline$storm_IoSetCancelRoutine$0$label_8#1:
- __storm_atomic := true;
- goto inline$storm_IoSetCancelRoutine$0$label_16#1;
-
- inline$storm_IoSetCancelRoutine$0$label_16#1:
- goto inline$storm_IoSetCancelRoutine$0$anon9_Then#1, inline$storm_IoSetCancelRoutine$0$anon9_Else#1;
-
- inline$storm_IoSetCancelRoutine$0$anon9_Else#1:
- assume k != 0;
- goto inline$storm_IoSetCancelRoutine$0$anon10_Then#1, inline$storm_IoSetCancelRoutine$0$anon10_Else#1;
-
- inline$storm_IoSetCancelRoutine$0$anon10_Else#1:
- assume k != 1;
- goto inline$storm_IoSetCancelRoutine$0$anon3#1;
-
- inline$storm_IoSetCancelRoutine$0$anon10_Then#1:
- assume k == 1;
- goto inline$storm_IoSetCancelRoutine$0$anon3#1;
-
- inline$storm_IoSetCancelRoutine$0$anon9_Then#1:
- assume k == 0;
- goto inline$storm_IoSetCancelRoutine$0$anon3#1;
-
- inline$storm_IoSetCancelRoutine$0$anon3#1:
- call contextSwitch();
- goto inline$storm_IoSetCancelRoutine$0$label_17#1;
-
- inline$storm_IoSetCancelRoutine$0$label_17#1:
- goto inline$storm_IoSetCancelRoutine$0$anon11_Then#1, inline$storm_IoSetCancelRoutine$0$anon11_Else#1;
-
- inline$storm_IoSetCancelRoutine$0$anon11_Else#1:
- assume k != 0;
- goto inline$storm_IoSetCancelRoutine$0$anon12_Then#1, inline$storm_IoSetCancelRoutine$0$anon12_Else#1;
-
- inline$storm_IoSetCancelRoutine$0$anon12_Else#1:
- assume k != 1;
- goto inline$storm_IoSetCancelRoutine$0$anon6#1;
-
- inline$storm_IoSetCancelRoutine$0$anon12_Then#1:
- assume k == 1;
- Mem_1_T.CancelRoutine__IRP := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine) := inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine];
- goto inline$storm_IoSetCancelRoutine$0$anon6#1;
-
- inline$storm_IoSetCancelRoutine$0$anon11_Then#1:
- assume k == 0;
- Mem_0_T.CancelRoutine__IRP := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine) := inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine];
- goto inline$storm_IoSetCancelRoutine$0$anon6#1;
-
- inline$storm_IoSetCancelRoutine$0$anon6#1:
- call contextSwitch();
- goto inline$storm_IoSetCancelRoutine$0$label_18#1;
-
- inline$storm_IoSetCancelRoutine$0$label_18#1:
- goto inline$storm_IoSetCancelRoutine$0$anon13_Then#1, inline$storm_IoSetCancelRoutine$0$anon13_Else#1;
-
- inline$storm_IoSetCancelRoutine$0$anon13_Else#1:
- assume __storm_init;
- goto inline$storm_IoSetCancelRoutine$0$anon8#1;
-
- inline$storm_IoSetCancelRoutine$0$anon13_Then#1:
- assume !__storm_init;
- __storm_atomic := false;
- goto inline$storm_IoSetCancelRoutine$0$anon8#1;
-
- inline$storm_IoSetCancelRoutine$0$anon8#1:
- call contextSwitch();
- goto inline$storm_IoSetCancelRoutine$0$label_21#1;
-
- inline$storm_IoSetCancelRoutine$0$label_21#1:
- goto inline$storm_IoSetCancelRoutine$0$label_1#1;
-
- inline$storm_IoSetCancelRoutine$0$label_1#1:
- goto inline$storm_IoSetCancelRoutine$0$Return#1;
-
- inline$storm_IoSetCancelRoutine$0$Return#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_10$1#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_10$1#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_18#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_18#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_18_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_18_false#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_18_false#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon8_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon8_Else#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon8_Else#1:
- assume k != 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon9_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon9_Else#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon9_Else#1:
- assume k != 1;
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon5#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon9_Then#1:
- assume k == 1;
- inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon5#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon8_Then#1:
- assume k == 0;
- inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon5#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon5#1:
- call contextSwitch();
- assume inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 == 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_19#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_19#1:
- inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent := 259;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_18_true#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon6_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon6_Else#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon6_Else#1:
- assume k != 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon7_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon7_Else#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon7_Else#1:
- assume k != 1;
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon2#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon7_Then#1:
- assume k == 1;
- inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon2#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon6_Then#1:
- assume k == 0;
- inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
- goto inline$I8xKeyboardGetSysButtonEvent$0$anon2#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$anon2#1:
- call contextSwitch();
- assume inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 != 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_20#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_20#1:
- call inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$ := storm_nondet();
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_23#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_23#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_23_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_23_false#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_23_false#1:
- assume inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$ == 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_24#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_24#1:
- call inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$173.41$4$ := storm_nondet();
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_28#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_28#1:
- inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent := inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$173.41$4$;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_23_true#1:
- assume inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$ != 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_27#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_27#1:
- inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent := 0 - 1073741536;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_9_true#1:
- havoc inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0;
- assume inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0 != 0;
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_13#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_13_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_13_false#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_13_false#1:
- assume !INT_NEQ(inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent, 259);
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_14#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_13_true#1:
- assume INT_NEQ(inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent, 259);
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_15#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_15#1:
- goto inline$I8xCompleteSysButtonIrp$0$Entry#1;
-
- inline$I8xCompleteSysButtonIrp$0$Entry#1:
- inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp_.1 := inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent;
- goto inline$I8xCompleteSysButtonIrp$0$start#1;
-
- inline$I8xCompleteSysButtonIrp$0$start#1:
- inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp := inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp_.1;
- goto inline$I8xCompleteSysButtonIrp$0$label_3#1;
-
- inline$I8xCompleteSysButtonIrp$0$label_3#1:
- goto inline$storm_IoCompleteRequest$0$Entry#1;
-
- inline$storm_IoCompleteRequest$0$Entry#1:
- inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest_.1 := inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp;
- goto inline$storm_IoCompleteRequest$0$start#1;
-
- inline$storm_IoCompleteRequest$0$start#1:
- inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest := inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest_.1;
- goto inline$storm_IoCompleteRequest$0$label_3#1;
-
- inline$storm_IoCompleteRequest$0$label_3#1:
- call inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$ := storm_nondet();
- goto inline$storm_IoCompleteRequest$0$label_6#1;
-
- inline$storm_IoCompleteRequest$0$label_6#1:
- goto inline$storm_IoCompleteRequest$0$label_6_true#1, inline$storm_IoCompleteRequest$0$label_6_false#1;
-
- inline$storm_IoCompleteRequest$0$label_6_false#1:
- assume inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$ == 0;
- goto inline$storm_IoCompleteRequest$0$label_7#1;
-
- inline$storm_IoCompleteRequest$0$label_6_true#1:
- assume inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$ != 0;
- goto inline$storm_IoCompleteRequest$0$label_8#1;
-
- inline$storm_IoCompleteRequest$0$label_8#1:
- assume k == 0 ==> INT_EQ(Res_0_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest], 1);
- assume k == 1 ==> INT_EQ(Res_1_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest], 1);
- call contextSwitch();
- goto inline$storm_IoCompleteRequest$0$label_9#1;
-
- inline$storm_IoCompleteRequest$0$label_9#1:
- goto inline$storm_IoCompleteRequest$0$label_9_true#1, inline$storm_IoCompleteRequest$0$label_9_false#1;
-
- inline$storm_IoCompleteRequest$0$label_9_false#1:
- assume 0 == 0;
- goto inline$storm_IoCompleteRequest$0$label_10#1;
-
- inline$storm_IoCompleteRequest$0$label_10#1:
- errorReached := true;
- raiseException := true;
- __storm_atomic := false;
- __storm_init := false;
- goto inline$storm_IoCompleteRequest$0$label_1#1;
-
- inline$storm_IoCompleteRequest$0$label_9_true#1:
- assume 0 != 0;
- goto inline$storm_IoCompleteRequest$0$label_7#1;
-
- inline$storm_IoCompleteRequest$0$label_7#1:
- goto inline$storm_IoCompleteRequest$0$anon4_Then#1, inline$storm_IoCompleteRequest$0$anon4_Else#1;
-
- inline$storm_IoCompleteRequest$0$anon4_Else#1:
- assume k != 0;
- goto inline$storm_IoCompleteRequest$0$anon5_Then#1, inline$storm_IoCompleteRequest$0$anon5_Else#1;
-
- inline$storm_IoCompleteRequest$0$anon5_Else#1:
- assume k != 1;
- goto inline$storm_IoCompleteRequest$0$anon2#1;
-
- inline$storm_IoCompleteRequest$0$anon5_Then#1:
- assume k == 1;
- Res_1_COMPLETED := Res_1_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest := 1];
- goto inline$storm_IoCompleteRequest$0$anon2#1;
-
- inline$storm_IoCompleteRequest$0$anon4_Then#1:
- assume k == 0;
- Res_0_COMPLETED := Res_0_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest := 1];
- goto inline$storm_IoCompleteRequest$0$anon2#1;
-
- inline$storm_IoCompleteRequest$0$anon2#1:
- call contextSwitch();
- goto inline$storm_IoCompleteRequest$0$label_1#1;
-
- inline$storm_IoCompleteRequest$0$label_1#1:
- goto inline$storm_IoCompleteRequest$0$Return#1;
-
- inline$storm_IoCompleteRequest$0$Return#1:
- goto inline$I8xCompleteSysButtonIrp$0$label_3$1#1;
-
- inline$I8xCompleteSysButtonIrp$0$label_3$1#1:
- goto inline$I8xCompleteSysButtonIrp$0$label_1#1;
-
- inline$I8xCompleteSysButtonIrp$0$label_1#1:
- goto inline$I8xCompleteSysButtonIrp$0$Return#1;
-
- inline$I8xCompleteSysButtonIrp$0$Return#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_15$1#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_15$1#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_14#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_14#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$label_1#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$label_1#1:
- goto inline$I8xKeyboardGetSysButtonEvent$0$Return#1;
-
- inline$I8xKeyboardGetSysButtonEvent$0$Return#1:
- goto inline$I8xDeviceControl$0$label_8$1#1;
-
- inline$I8xDeviceControl$0$label_8$1#1:
- goto inline$I8xDeviceControl$0$label_11#1;
-
- inline$I8xDeviceControl$0$label_11#1:
- goto inline$I8xDeviceControl$0$label_1#1;
-
- inline$I8xDeviceControl$0$label_1#1:
- goto inline$I8xDeviceControl$0$Return#1;
-
- inline$I8xDeviceControl$0$Return#1:
- goto inline$dispatch$0$label_8$1#1;
-
- inline$dispatch$0$label_8$1#1:
- goto inline$dispatch$0$label_11#1;
-
- inline$dispatch$0$label_11#1:
- goto inline$dispatch$0$label_1#1;
-
- inline$dispatch$0$label_1#1:
- goto inline$dispatch$0$Return#1;
-
- inline$dispatch$0$Return#1:
- goto label_20$1#1;
-
- label_20$1#1:
- goto anon14_Then#1, anon14_Else#1;
-
- anon14_Else#1:
- assume !(errorReached || !raiseException);
- goto anon7#1;
-
- anon14_Then#1:
- assume errorReached || !raiseException;
- __storm_thread_done_1 := true;
- goto anon7#1;
-
- anon7#1:
- k := k_old_0;
- tid := tid_old_0;
- goto label_23#1;
-
- label_23#1:
- goto label_24#1;
-
- label_24#1:
- k_old_1 := k;
- tid_old_1 := tid;
- tidCount_old := tidCount;
- havoc tidCount;
- assume tidCount_old < tidCount;
- tid := tidCount;
- raiseException := false;
- call contextSwitch();
- goto inline$cancel$0$Entry#1;
-
- inline$cancel$0$Entry#1:
- inline$cancel$0$$Irp$1$64.17$cancel_.1 := $irp$1$91.7$storm_main;
- goto inline$cancel$0$start#1;
-
- inline$cancel$0$start#1:
- inline$cancel$0$$Irp$1$64.17$cancel := inline$cancel$0$$Irp$1$64.17$cancel_.1;
- goto inline$cancel$0$label_3#1;
-
- inline$cancel$0$label_3#1:
- goto inline$storm_IoCancelIrp$0$Entry#1;
-
- inline$storm_IoCancelIrp$0$Entry#1:
- inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp_.1 := inline$cancel$0$$Irp$1$64.17$cancel;
- goto inline$storm_IoCancelIrp$0$start#1;
-
- inline$storm_IoCancelIrp$0$start#1:
- inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp := inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp_.1;
- goto inline$storm_IoCancelIrp$0$label_3#1;
-
- inline$storm_IoCancelIrp$0$label_3#1:
- goto inline$storm_IoCancelIrp$0$label_4#1;
-
- inline$storm_IoCancelIrp$0$label_4#1:
- goto inline$storm_IoCancelIrp$0$anon12_Then#1, inline$storm_IoCancelIrp$0$anon12_Else#1;
-
- inline$storm_IoCancelIrp$0$anon12_Else#1:
- assume k != 0;
- goto inline$storm_IoCancelIrp$0$anon13_Then#1, inline$storm_IoCancelIrp$0$anon13_Else#1;
-
- inline$storm_IoCancelIrp$0$anon13_Else#1:
- assume k != 1;
- goto inline$storm_IoCancelIrp$0$anon2#1;
-
- inline$storm_IoCancelIrp$0$anon13_Then#1:
- assume k == 1;
- Mem_1_T.Cancel__IRP := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 1];
- goto inline$storm_IoCancelIrp$0$anon2#1;
-
- inline$storm_IoCancelIrp$0$anon12_Then#1:
- assume k == 0;
- Mem_0_T.Cancel__IRP := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 1];
- goto inline$storm_IoCancelIrp$0$anon2#1;
-
- inline$storm_IoCancelIrp$0$anon2#1:
- call contextSwitch();
- goto inline$storm_IoCancelIrp$0$label_5#1;
-
- inline$storm_IoCancelIrp$0$label_5#1:
- __storm_atomic := true;
- goto inline$storm_IoCancelIrp$0$label_8#1;
-
- inline$storm_IoCancelIrp$0$label_8#1:
- goto inline$storm_IoCancelIrp$0$anon14_Then#1, inline$storm_IoCancelIrp$0$anon14_Else#1;
-
- inline$storm_IoCancelIrp$0$anon14_Else#1:
- assume k != 0;
- goto inline$storm_IoCancelIrp$0$anon15_Then#1, inline$storm_IoCancelIrp$0$anon15_Else#1;
-
- inline$storm_IoCancelIrp$0$anon15_Else#1:
- assume k != 1;
- goto inline$storm_IoCancelIrp$0$anon5#1;
-
- inline$storm_IoCancelIrp$0$anon15_Then#1:
- assume k == 1;
- inline$storm_IoCancelIrp$0$myVar_0 := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp)];
- goto inline$storm_IoCancelIrp$0$anon5#1;
-
- inline$storm_IoCancelIrp$0$anon14_Then#1:
- assume k == 0;
- inline$storm_IoCancelIrp$0$myVar_0 := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp)];
- goto inline$storm_IoCancelIrp$0$anon5#1;
-
- inline$storm_IoCancelIrp$0$anon5#1:
- call contextSwitch();
- inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp := inline$storm_IoCancelIrp$0$myVar_0;
- goto inline$storm_IoCancelIrp$0$label_9#1;
-
- inline$storm_IoCancelIrp$0$label_9#1:
- goto inline$storm_IoCancelIrp$0$anon16_Then#1, inline$storm_IoCancelIrp$0$anon16_Else#1;
-
- inline$storm_IoCancelIrp$0$anon16_Else#1:
- assume k != 0;
- goto inline$storm_IoCancelIrp$0$anon17_Then#1, inline$storm_IoCancelIrp$0$anon17_Else#1;
-
- inline$storm_IoCancelIrp$0$anon17_Else#1:
- assume k != 1;
- goto inline$storm_IoCancelIrp$0$anon8#1;
-
- inline$storm_IoCancelIrp$0$anon17_Then#1:
- assume k == 1;
- Mem_1_T.CancelRoutine__IRP := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 0];
- goto inline$storm_IoCancelIrp$0$anon8#1;
-
- inline$storm_IoCancelIrp$0$anon16_Then#1:
- assume k == 0;
- Mem_0_T.CancelRoutine__IRP := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 0];
- goto inline$storm_IoCancelIrp$0$anon8#1;
-
- inline$storm_IoCancelIrp$0$anon8#1:
- call contextSwitch();
- goto inline$storm_IoCancelIrp$0$label_10#1;
-
- inline$storm_IoCancelIrp$0$label_10#1:
- goto inline$storm_IoCancelIrp$0$anon18_Then#1, inline$storm_IoCancelIrp$0$anon18_Else#1;
-
- inline$storm_IoCancelIrp$0$anon18_Else#1:
- assume __storm_init;
- goto inline$storm_IoCancelIrp$0$anon10#1;
-
- inline$storm_IoCancelIrp$0$anon18_Then#1:
- assume !__storm_init;
- __storm_atomic := false;
- goto inline$storm_IoCancelIrp$0$anon10#1;
-
- inline$storm_IoCancelIrp$0$anon10#1:
- call contextSwitch();
- goto inline$storm_IoCancelIrp$0$label_13#1;
-
- inline$storm_IoCancelIrp$0$label_13#1:
- havoc inline$storm_IoCancelIrp$0$myNondetVar_0;
- havoc inline$storm_IoCancelIrp$0$myNondetVar_1;
- assume inline$storm_IoCancelIrp$0$myNondetVar_0 == inline$storm_IoCancelIrp$0$myNondetVar_1;
- goto inline$storm_IoAcquireCancelSpinLock$0$Entry#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$Entry#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$start#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$start#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$label_3#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_3#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$label_4#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_4#1:
- goto inline$storm_getThreadID$0$Entry#1;
-
- inline$storm_getThreadID$0$Entry#1:
- goto inline$storm_getThreadID$0$anon0#1;
-
- inline$storm_getThreadID$0$anon0#1:
- inline$storm_getThreadID$0$tidRet := tid;
- goto inline$storm_getThreadID$0$Return#1;
-
- inline$storm_getThreadID$0$Return#1:
- inline$storm_IoAcquireCancelSpinLock$0$$result.storm_getThreadID$185.29$1$ := inline$storm_getThreadID$0$tidRet;
- goto inline$storm_IoAcquireCancelSpinLock$0$label_4$1#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_4$1#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$label_7#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_7#1:
- inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock := inline$storm_IoAcquireCancelSpinLock$0$$result.storm_getThreadID$185.29$1$;
- goto inline$storm_IoAcquireCancelSpinLock$0$label_8#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_8#1:
- __storm_atomic := true;
- goto inline$storm_IoAcquireCancelSpinLock$0$label_11#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_11#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$label_11_true#1, inline$storm_IoAcquireCancelSpinLock$0$label_11_false#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_11_false#1:
- assume k == 0 ==> !INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_0);
- assume k == 1 ==> !INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_1);
- call contextSwitch();
- goto inline$storm_IoAcquireCancelSpinLock$0$label_12#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_12#1:
- errorReached := true;
- raiseException := true;
- __storm_atomic := false;
- __storm_init := false;
- goto inline$storm_IoAcquireCancelSpinLock$0$label_1#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_11_true#1:
- assume k == 0 ==> INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_0);
- assume k == 1 ==> INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_1);
- call contextSwitch();
- goto inline$storm_IoAcquireCancelSpinLock$0$label_15#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_15#1:
- assume k == 0 ==> INT_EQ(cancelLockStatus_0, 0);
- assume k == 1 ==> INT_EQ(cancelLockStatus_1, 0);
- call contextSwitch();
- goto inline$storm_IoAcquireCancelSpinLock$0$label_16#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_16#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$anon6_Then#1, inline$storm_IoAcquireCancelSpinLock$0$anon6_Else#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon6_Else#1:
- assume k != 0;
- goto inline$storm_IoAcquireCancelSpinLock$0$anon7_Then#1, inline$storm_IoAcquireCancelSpinLock$0$anon7_Else#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon7_Else#1:
- assume k != 1;
- goto inline$storm_IoAcquireCancelSpinLock$0$anon3#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon7_Then#1:
- assume k == 1;
- cancelLockStatus_1 := inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock;
- goto inline$storm_IoAcquireCancelSpinLock$0$anon3#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon6_Then#1:
- assume k == 0;
- cancelLockStatus_0 := inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock;
- goto inline$storm_IoAcquireCancelSpinLock$0$anon3#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon3#1:
- call contextSwitch();
- goto inline$storm_IoAcquireCancelSpinLock$0$label_17#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_17#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$anon8_Then#1, inline$storm_IoAcquireCancelSpinLock$0$anon8_Else#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon8_Else#1:
- assume __storm_init;
- goto inline$storm_IoAcquireCancelSpinLock$0$anon5#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon8_Then#1:
- assume !__storm_init;
- __storm_atomic := false;
- goto inline$storm_IoAcquireCancelSpinLock$0$anon5#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$anon5#1:
- call contextSwitch();
- goto inline$storm_IoAcquireCancelSpinLock$0$label_1#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$label_1#1:
- goto inline$storm_IoAcquireCancelSpinLock$0$Return#1;
-
- inline$storm_IoAcquireCancelSpinLock$0$Return#1:
- goto inline$storm_IoCancelIrp$0$label_13$1#1;
-
- inline$storm_IoCancelIrp$0$label_13$1#1:
- havoc inline$storm_IoCancelIrp$0$myNondetVar_0;
- goto inline$storm_IoCancelIrp$0$label_16#1;
-
- inline$storm_IoCancelIrp$0$label_16#1:
- goto inline$storm_IoCancelIrp$0$label_16_true#1, inline$storm_IoCancelIrp$0$label_16_false#1;
-
- inline$storm_IoCancelIrp$0$label_16_false#1:
- assume inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp == 0;
- goto inline$storm_IoCancelIrp$0$label_17#1;
-
- inline$storm_IoCancelIrp$0$label_17#1:
- goto inline$storm_IoCancelIrp$0$label_1#1;
-
- inline$storm_IoCancelIrp$0$label_16_true#1:
- assume inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp != 0;
- goto inline$storm_IoCancelIrp$0$label_18#1;
-
- inline$storm_IoCancelIrp$0$label_18#1:
- goto inline$storm_IoCancelIrp$0$label_19#1;
-
- inline$storm_IoCancelIrp$0$label_19#1:
- call inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$ := storm_nondet();
- goto inline$storm_IoCancelIrp$0$label_22#1;
-
- inline$storm_IoCancelIrp$0$label_22#1:
- goto inline$storm_IoCancelIrp$0$label_22_true#1, inline$storm_IoCancelIrp$0$label_22_false#1;
-
- inline$storm_IoCancelIrp$0$label_22_false#1:
- assume inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$ == 0;
- goto inline$storm_IoCancelIrp$0$label_23#1;
-
- inline$storm_IoCancelIrp$0$label_22_true#1:
- assume inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$ != 0;
- goto inline$storm_IoCancelIrp$0$label_24#1;
-
- inline$storm_IoCancelIrp$0$label_24#1:
- assume k == 0 ==> INT_EQ(Res_0_COMPLETED[inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp], 1);
- assume k == 1 ==> INT_EQ(Res_1_COMPLETED[inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp], 1);
- call contextSwitch();
- goto inline$storm_IoCancelIrp$0$label_25#1;
-
- inline$storm_IoCancelIrp$0$label_25#1:
- goto inline$storm_IoCancelIrp$0$label_25_true#1, inline$storm_IoCancelIrp$0$label_25_false#1;
-
- inline$storm_IoCancelIrp$0$label_25_false#1:
- assume 0 == 0;
- goto inline$storm_IoCancelIrp$0$label_26#1;
-
- inline$storm_IoCancelIrp$0$label_26#1:
- errorReached := true;
- raiseException := true;
- __storm_atomic := false;
- __storm_init := false;
- goto inline$storm_IoCancelIrp$0$label_1#1;
-
- inline$storm_IoCancelIrp$0$label_25_true#1:
- assume 0 != 0;
- goto inline$storm_IoCancelIrp$0$label_23#1;
-
- inline$storm_IoCancelIrp$0$label_23#1:
- goto inline$storm_IoCancelIrp$0$label_1#1;
-
- inline$storm_IoCancelIrp$0$label_1#1:
- goto inline$storm_IoCancelIrp$0$Return#1;
-
- inline$storm_IoCancelIrp$0$Return#1:
- goto inline$cancel$0$label_3$1#1;
-
- inline$cancel$0$label_3$1#1:
- goto inline$cancel$0$label_1#1;
-
- inline$cancel$0$label_1#1:
- goto inline$cancel$0$Return#1;
-
- inline$cancel$0$Return#1:
- goto label_24$1#1;
-
- label_24$1#1:
- goto anon15_Then#1, anon15_Else#1;
-
- anon15_Else#1:
- assume !(errorReached || !raiseException);
- goto anon9#1;
-
- anon15_Then#1:
- assume errorReached || !raiseException;
- __storm_thread_done_2 := true;
- goto anon9#1;
-
- anon9#1:
- k := k_old_1;
- tid := tid_old_1;
- goto label_1#1;
-
- label_1#1:
- assume Mem_0_T.CancelRoutine__IRP == Mem_s_1_T.CancelRoutine__IRP;
- assume Mem_0_T.Cancel__IRP == Mem_s_1_T.Cancel__IRP;
- assume Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 == Mem_s_1_T.CurrentStackLocation___unnamed_4_3c640f23;
- assume Mem_0_T.DeviceExtension__DEVICE_OBJECT == Mem_s_1_T.DeviceExtension__DEVICE_OBJECT;
- assume Mem_0_T.DeviceObject__IO_STACK_LOCATION == Mem_s_1_T.DeviceObject__IO_STACK_LOCATION;
- assume cancelLockStatus_0 == cancelLockStatus_s_1;
- assume Res_0_COMPLETED == Res_s_1_COMPLETED;
- assume Res_0_LOCK == Res_s_1_LOCK;
- assert !errorReached;
- return;
-}
-
-
-
+// RUN: %boogie -noinfer -useArrayTheory "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+var __storm_thread_done_0 : bool;
+var __storm_thread_done_1 : bool;
+var __storm_thread_done_2 : bool;
+
+var raiseException : bool;
+var errorReached : bool;
+var k : int;
+var __storm_atomic : bool;
+var __storm_init : bool;
+var tid : int;
+var tidCount : int;
+
+procedure /* dummy comment */ {:inline 1} storm_getThreadID() returns (tidRet:int)
+{
+ tidRet := tid;
+ return;
+}
+
+
+procedure storm_context_0();
+procedure storm_context_1();
+
+procedure contextSwitch();
+modifies k;
+ensures __storm_atomic ==> old(k) == k;
+ensures(old(k) <= k);
+ensures(k < 2);
+
+
+
+// Memory model
+
+// Mutable
+var alloc:int;
+
+// Immutable
+
+var Mem_0_T.CancelRoutine__IRP : [int]int;
+var Mem_1_T.CancelRoutine__IRP : [int]int;
+var Mem_s_1_T.CancelRoutine__IRP : [int]int;
+var Mem_0_T.Cancel__IRP : [int]int;
+var Mem_1_T.Cancel__IRP : [int]int;
+var Mem_s_1_T.Cancel__IRP : [int]int;
+var Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 : [int]int;
+var Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 : [int]int;
+var Mem_s_1_T.CurrentStackLocation___unnamed_4_3c640f23 : [int]int;
+var Mem_0_T.DeviceExtension__DEVICE_OBJECT : [int]int;
+var Mem_1_T.DeviceExtension__DEVICE_OBJECT : [int]int;
+var Mem_s_1_T.DeviceExtension__DEVICE_OBJECT : [int]int;
+var Mem_0_T.DeviceObject__IO_STACK_LOCATION : [int]int;
+var Mem_1_T.DeviceObject__IO_STACK_LOCATION : [int]int;
+var Mem_s_1_T.DeviceObject__IO_STACK_LOCATION : [int]int;
+
+
+// Field declarations
+
+
+// Type declarations
+
+
+// Field offset definitions
+
+function AssociatedIrp__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {AssociatedIrp__IRP(x)} AssociatedIrp__IRP(x) == x + 12);
+axiom (forall x:int :: {AssociatedIrp__IRP(x)} AssociatedIrp__IRP(x) == INT_ADD(x, 12));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function COMMON_DATA__PORT_KEYBOARD_EXTENSION(int) returns (int);
+
+
+//axiom (forall x:int :: {COMMON_DATA__PORT_KEYBOARD_EXTENSION(x)} COMMON_DATA__PORT_KEYBOARD_EXTENSION(x) == x + 0);
+axiom (forall x:int :: {COMMON_DATA__PORT_KEYBOARD_EXTENSION(x)} COMMON_DATA__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function CancelIrql__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {CancelIrql__IRP(x)} CancelIrql__IRP(x) == x + 37);
+axiom (forall x:int :: {CancelIrql__IRP(x)} CancelIrql__IRP(x) == INT_ADD(x, 37));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function CancelRoutine__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {CancelRoutine__IRP(x)} CancelRoutine__IRP(x) == x + 56);
+axiom (forall x:int :: {CancelRoutine__IRP(x)} CancelRoutine__IRP(x) == INT_ADD(x, 56));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Cancel__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {Cancel__IRP(x)} Cancel__IRP(x) == x + 36);
+axiom (forall x:int :: {Cancel__IRP(x)} Cancel__IRP(x) == INT_ADD(x, 36));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function CompletionRoutine__IO_STACK_LOCATION(int) returns (int);
+
+
+//axiom (forall x:int :: {CompletionRoutine__IO_STACK_LOCATION(x)} CompletionRoutine__IO_STACK_LOCATION(x) == x + 28);
+axiom (forall x:int :: {CompletionRoutine__IO_STACK_LOCATION(x)} CompletionRoutine__IO_STACK_LOCATION(x) == INT_ADD(x, 28));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Context__IO_STACK_LOCATION(int) returns (int);
+
+
+//axiom (forall x:int :: {Context__IO_STACK_LOCATION(x)} Context__IO_STACK_LOCATION(x) == x + 32);
+axiom (forall x:int :: {Context__IO_STACK_LOCATION(x)} Context__IO_STACK_LOCATION(x) == INT_ADD(x, 32));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Control__IO_STACK_LOCATION(int) returns (int);
+
+
+//axiom (forall x:int :: {Control__IO_STACK_LOCATION(x)} Control__IO_STACK_LOCATION(x) == x + 3);
+axiom (forall x:int :: {Control__IO_STACK_LOCATION(x)} Control__IO_STACK_LOCATION(x) == INT_ADD(x, 3));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function ControllerData__GLOBALS(int) returns (int);
+
+
+//axiom (forall x:int :: {ControllerData__GLOBALS(x)} ControllerData__GLOBALS(x) == x + 0);
+axiom (forall x:int :: {ControllerData__GLOBALS(x)} ControllerData__GLOBALS(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function CurrentLocation__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {CurrentLocation__IRP(x)} CurrentLocation__IRP(x) == x + 35);
+axiom (forall x:int :: {CurrentLocation__IRP(x)} CurrentLocation__IRP(x) == INT_ADD(x, 35));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function CurrentStackLocation___unnamed_4_3c640f23(int) returns (int);
+
+
+//axiom (forall x:int :: {CurrentStackLocation___unnamed_4_3c640f23(x)} CurrentStackLocation___unnamed_4_3c640f23(x) == x + 0);
+axiom (forall x:int :: {CurrentStackLocation___unnamed_4_3c640f23(x)} CurrentStackLocation___unnamed_4_3c640f23(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function DeviceExtension__DEVICE_OBJECT(int) returns (int);
+
+
+//axiom (forall x:int :: {DeviceExtension__DEVICE_OBJECT(x)} DeviceExtension__DEVICE_OBJECT(x) == x + 40);
+axiom (forall x:int :: {DeviceExtension__DEVICE_OBJECT(x)} DeviceExtension__DEVICE_OBJECT(x) == INT_ADD(x, 40));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function DeviceIoControl___unnamed_16_afe81cff(int) returns (int);
+
+
+//axiom (forall x:int :: {DeviceIoControl___unnamed_16_afe81cff(x)} DeviceIoControl___unnamed_16_afe81cff(x) == x + 0);
+axiom (forall x:int :: {DeviceIoControl___unnamed_16_afe81cff(x)} DeviceIoControl___unnamed_16_afe81cff(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function DeviceObject__IO_STACK_LOCATION(int) returns (int);
+
+
+//axiom (forall x:int :: {DeviceObject__IO_STACK_LOCATION(x)} DeviceObject__IO_STACK_LOCATION(x) == x + 20);
+axiom (forall x:int :: {DeviceObject__IO_STACK_LOCATION(x)} DeviceObject__IO_STACK_LOCATION(x) == INT_ADD(x, 20));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function DeviceState__POWER_STATE(int) returns (int);
+
+
+//axiom (forall x:int :: {DeviceState__POWER_STATE(x)} DeviceState__POWER_STATE(x) == x + 0);
+axiom (forall x:int :: {DeviceState__POWER_STATE(x)} DeviceState__POWER_STATE(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(int) returns (int);
+
+
+//axiom (forall x:int :: {Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x)} Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x) == x + 2);
+axiom (forall x:int :: {Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x)} Flags__CM_PARTIAL_RESOURCE_DESCRIPTOR(x) == INT_ADD(x, 2));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Information__IO_STATUS_BLOCK(int) returns (int);
+
+
+//axiom (forall x:int :: {Information__IO_STATUS_BLOCK(x)} Information__IO_STATUS_BLOCK(x) == x + 4);
+axiom (forall x:int :: {Information__IO_STATUS_BLOCK(x)} Information__IO_STATUS_BLOCK(x) == INT_ADD(x, 4));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Initialized_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {Initialized_COMMON_DATA(x)} Initialized_COMMON_DATA(x) == x + 323);
+axiom (forall x:int :: {Initialized_COMMON_DATA(x)} Initialized_COMMON_DATA(x) == INT_ADD(x, 323));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function InterruptDescriptor_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {InterruptDescriptor_COMMON_DATA(x)} InterruptDescriptor_COMMON_DATA(x) == x + 300);
+axiom (forall x:int :: {InterruptDescriptor_COMMON_DATA(x)} InterruptDescriptor_COMMON_DATA(x) == INT_ADD(x, 300));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function InterruptObject_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {InterruptObject_COMMON_DATA(x)} InterruptObject_COMMON_DATA(x) == x + 4);
+axiom (forall x:int :: {InterruptObject_COMMON_DATA(x)} InterruptObject_COMMON_DATA(x) == INT_ADD(x, 4));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function IoStatus__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {IoStatus__IRP(x)} IoStatus__IRP(x) == x + 24);
+axiom (forall x:int :: {IoStatus__IRP(x)} IoStatus__IRP(x) == INT_ADD(x, 24));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function IsKeyboard_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {IsKeyboard_COMMON_DATA(x)} IsKeyboard_COMMON_DATA(x) == x + 325);
+axiom (forall x:int :: {IsKeyboard_COMMON_DATA(x)} IsKeyboard_COMMON_DATA(x) == INT_ADD(x, 325));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Item__POWER_UP_WORK_ITEM(int) returns (int);
+
+
+//axiom (forall x:int :: {Item__POWER_UP_WORK_ITEM(x)} Item__POWER_UP_WORK_ITEM(x) == x + 0);
+axiom (forall x:int :: {Item__POWER_UP_WORK_ITEM(x)} Item__POWER_UP_WORK_ITEM(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function KeyboardExtension__GLOBALS(int) returns (int);
+
+
+//axiom (forall x:int :: {KeyboardExtension__GLOBALS(x)} KeyboardExtension__GLOBALS(x) == x + 8);
+axiom (forall x:int :: {KeyboardExtension__GLOBALS(x)} KeyboardExtension__GLOBALS(x) == INT_ADD(x, 8));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function KeyboardPowerIrp__POWER_UP_WORK_ITEM(int) returns (int);
+
+
+//axiom (forall x:int :: {KeyboardPowerIrp__POWER_UP_WORK_ITEM(x)} KeyboardPowerIrp__POWER_UP_WORK_ITEM(x) == x + 8);
+axiom (forall x:int :: {KeyboardPowerIrp__POWER_UP_WORK_ITEM(x)} KeyboardPowerIrp__POWER_UP_WORK_ITEM(x) == INT_ADD(x, 8));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function MajorFunction__IO_STACK_LOCATION(int) returns (int);
+
+
+//axiom (forall x:int :: {MajorFunction__IO_STACK_LOCATION(x)} MajorFunction__IO_STACK_LOCATION(x) == x + 0);
+axiom (forall x:int :: {MajorFunction__IO_STACK_LOCATION(x)} MajorFunction__IO_STACK_LOCATION(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function MinorFunction__IO_STACK_LOCATION(int) returns (int);
+
+
+//axiom (forall x:int :: {MinorFunction__IO_STACK_LOCATION(x)} MinorFunction__IO_STACK_LOCATION(x) == x + 1);
+axiom (forall x:int :: {MinorFunction__IO_STACK_LOCATION(x)} MinorFunction__IO_STACK_LOCATION(x) == INT_ADD(x, 1));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function MouseExtension__GLOBALS(int) returns (int);
+
+
+//axiom (forall x:int :: {MouseExtension__GLOBALS(x)} MouseExtension__GLOBALS(x) == x + 4);
+axiom (forall x:int :: {MouseExtension__GLOBALS(x)} MouseExtension__GLOBALS(x) == INT_ADD(x, 4));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function MousePowerIrp__POWER_UP_WORK_ITEM(int) returns (int);
+
+
+//axiom (forall x:int :: {MousePowerIrp__POWER_UP_WORK_ITEM(x)} MousePowerIrp__POWER_UP_WORK_ITEM(x) == x + 4);
+axiom (forall x:int :: {MousePowerIrp__POWER_UP_WORK_ITEM(x)} MousePowerIrp__POWER_UP_WORK_ITEM(x) == INT_ADD(x, 4));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function OutputBufferLength___unnamed_16_ae81ad04(int) returns (int);
+
+
+//axiom (forall x:int :: {OutputBufferLength___unnamed_16_ae81ad04(x)} OutputBufferLength___unnamed_16_ae81ad04(x) == x + 0);
+axiom (forall x:int :: {OutputBufferLength___unnamed_16_ae81ad04(x)} OutputBufferLength___unnamed_16_ae81ad04(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function OutstandingPowerIrp_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {OutstandingPowerIrp_COMMON_DATA(x)} OutstandingPowerIrp_COMMON_DATA(x) == x + 44);
+axiom (forall x:int :: {OutstandingPowerIrp_COMMON_DATA(x)} OutstandingPowerIrp_COMMON_DATA(x) == INT_ADD(x, 44));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Overlay___unnamed_48_e2bbfb0b(int) returns (int);
+
+
+//axiom (forall x:int :: {Overlay___unnamed_48_e2bbfb0b(x)} Overlay___unnamed_48_e2bbfb0b(x) == x + 0);
+axiom (forall x:int :: {Overlay___unnamed_48_e2bbfb0b(x)} Overlay___unnamed_48_e2bbfb0b(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Parameters__IO_STACK_LOCATION(int) returns (int);
+
+
+//axiom (forall x:int :: {Parameters__IO_STACK_LOCATION(x)} Parameters__IO_STACK_LOCATION(x) == x + 4);
+axiom (forall x:int :: {Parameters__IO_STACK_LOCATION(x)} Parameters__IO_STACK_LOCATION(x) == INT_ADD(x, 4));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function PendingReturned__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {PendingReturned__IRP(x)} PendingReturned__IRP(x) == x + 33);
+axiom (forall x:int :: {PendingReturned__IRP(x)} PendingReturned__IRP(x) == INT_ADD(x, 33));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function PowerCaps__PORT_KEYBOARD_EXTENSION(int) returns (int);
+
+
+//axiom (forall x:int :: {PowerCaps__PORT_KEYBOARD_EXTENSION(x)} PowerCaps__PORT_KEYBOARD_EXTENSION(x) == x + 328);
+axiom (forall x:int :: {PowerCaps__PORT_KEYBOARD_EXTENSION(x)} PowerCaps__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 328));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function PowerFlags__GLOBALS(int) returns (int);
+
+
+//axiom (forall x:int :: {PowerFlags__GLOBALS(x)} PowerFlags__GLOBALS(x) == x + 40);
+axiom (forall x:int :: {PowerFlags__GLOBALS(x)} PowerFlags__GLOBALS(x) == INT_ADD(x, 40));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function PowerSpinLock__CONTROLLER_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {PowerSpinLock__CONTROLLER_DATA(x)} PowerSpinLock__CONTROLLER_DATA(x) == x + 116);
+axiom (forall x:int :: {PowerSpinLock__CONTROLLER_DATA(x)} PowerSpinLock__CONTROLLER_DATA(x) == INT_ADD(x, 116));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function PowerState_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {PowerState_COMMON_DATA(x)} PowerState_COMMON_DATA(x) == x + 48);
+axiom (forall x:int :: {PowerState_COMMON_DATA(x)} PowerState_COMMON_DATA(x) == INT_ADD(x, 48));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Power___unnamed_16_afe81cff(int) returns (int);
+
+
+//axiom (forall x:int :: {Power___unnamed_16_afe81cff(x)} Power___unnamed_16_afe81cff(x) == x + 0);
+axiom (forall x:int :: {Power___unnamed_16_afe81cff(x)} Power___unnamed_16_afe81cff(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function RemoveLock_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {RemoveLock_COMMON_DATA(x)} RemoveLock_COMMON_DATA(x) == x + 20);
+axiom (forall x:int :: {RemoveLock_COMMON_DATA(x)} RemoveLock_COMMON_DATA(x) == INT_ADD(x, 20));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function ShutdownType_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {ShutdownType_COMMON_DATA(x)} ShutdownType_COMMON_DATA(x) == x + 56);
+axiom (forall x:int :: {ShutdownType_COMMON_DATA(x)} ShutdownType_COMMON_DATA(x) == INT_ADD(x, 56));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function ShutdownType___unnamed_16_57972375(int) returns (int);
+
+
+//axiom (forall x:int :: {ShutdownType___unnamed_16_57972375(x)} ShutdownType___unnamed_16_57972375(x) == x + 12);
+axiom (forall x:int :: {ShutdownType___unnamed_16_57972375(x)} ShutdownType___unnamed_16_57972375(x) == INT_ADD(x, 12));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Started_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {Started_COMMON_DATA(x)} Started_COMMON_DATA(x) == x + 326);
+axiom (forall x:int :: {Started_COMMON_DATA(x)} Started_COMMON_DATA(x) == INT_ADD(x, 326));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function State___unnamed_16_57972375(int) returns (int);
+
+
+//axiom (forall x:int :: {State___unnamed_16_57972375(x)} State___unnamed_16_57972375(x) == x + 8);
+axiom (forall x:int :: {State___unnamed_16_57972375(x)} State___unnamed_16_57972375(x) == INT_ADD(x, 8));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Status___unnamed_4_d4b13373(int) returns (int);
+
+
+//axiom (forall x:int :: {Status___unnamed_4_d4b13373(x)} Status___unnamed_4_d4b13373(x) == x + 0);
+axiom (forall x:int :: {Status___unnamed_4_d4b13373(x)} Status___unnamed_4_d4b13373(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(int) returns (int);
+
+
+//axiom (forall x:int :: {SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x)} SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x) == x + 332);
+axiom (forall x:int :: {SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x)} SysButtonEventIrp__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 332));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(int) returns (int);
+
+
+//axiom (forall x:int :: {SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x)} SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x) == x + 368);
+axiom (forall x:int :: {SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x)} SysButtonSpinLock__PORT_KEYBOARD_EXTENSION(x) == INT_ADD(x, 368));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function SystemBuffer___unnamed_4_99f86ad5(int) returns (int);
+
+
+//axiom (forall x:int :: {SystemBuffer___unnamed_4_99f86ad5(x)} SystemBuffer___unnamed_4_99f86ad5(x) == x + 0);
+axiom (forall x:int :: {SystemBuffer___unnamed_4_99f86ad5(x)} SystemBuffer___unnamed_4_99f86ad5(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function SystemState_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {SystemState_COMMON_DATA(x)} SystemState_COMMON_DATA(x) == x + 52);
+axiom (forall x:int :: {SystemState_COMMON_DATA(x)} SystemState_COMMON_DATA(x) == INT_ADD(x, 52));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function SystemState__POWER_STATE(int) returns (int);
+
+
+//axiom (forall x:int :: {SystemState__POWER_STATE(x)} SystemState__POWER_STATE(x) == x + 0);
+axiom (forall x:int :: {SystemState__POWER_STATE(x)} SystemState__POWER_STATE(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Tail__IRP(int) returns (int);
+
+
+//axiom (forall x:int :: {Tail__IRP(x)} Tail__IRP(x) == x + 64);
+axiom (forall x:int :: {Tail__IRP(x)} Tail__IRP(x) == INT_ADD(x, 64));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function TopOfStack_COMMON_DATA(int) returns (int);
+
+
+//axiom (forall x:int :: {TopOfStack_COMMON_DATA(x)} TopOfStack_COMMON_DATA(x) == x + 12);
+axiom (forall x:int :: {TopOfStack_COMMON_DATA(x)} TopOfStack_COMMON_DATA(x) == INT_ADD(x, 12));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function Type___unnamed_16_57972375(int) returns (int);
+
+
+//axiom (forall x:int :: {Type___unnamed_16_57972375(x)} Type___unnamed_16_57972375(x) == x + 4);
+axiom (forall x:int :: {Type___unnamed_16_57972375(x)} Type___unnamed_16_57972375(x) == INT_ADD(x, 4));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function __unnamed_12_41c62b26___unnamed_40_32307de2(int) returns (int);
+
+
+//axiom (forall x:int :: {__unnamed_12_41c62b26___unnamed_40_32307de2(x)} __unnamed_12_41c62b26___unnamed_40_32307de2(x) == x + 24);
+axiom (forall x:int :: {__unnamed_12_41c62b26___unnamed_40_32307de2(x)} __unnamed_12_41c62b26___unnamed_40_32307de2(x) == INT_ADD(x, 24));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function __unnamed_4_3c640f23___unnamed_12_41c62b26(int) returns (int);
+
+
+//axiom (forall x:int :: {__unnamed_4_3c640f23___unnamed_12_41c62b26(x)} __unnamed_4_3c640f23___unnamed_12_41c62b26(x) == x + 8);
+axiom (forall x:int :: {__unnamed_4_3c640f23___unnamed_12_41c62b26(x)} __unnamed_4_3c640f23___unnamed_12_41c62b26(x) == INT_ADD(x, 8));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+function __unnamed_4_d4b13373__IO_STATUS_BLOCK(int) returns (int);
+
+
+//axiom (forall x:int :: {__unnamed_4_d4b13373__IO_STATUS_BLOCK(x)} __unnamed_4_d4b13373__IO_STATUS_BLOCK(x) == x + 0);
+axiom (forall x:int :: {__unnamed_4_d4b13373__IO_STATUS_BLOCK(x)} __unnamed_4_d4b13373__IO_STATUS_BLOCK(x) == INT_ADD(x, 0));
+//adding this additional axiom since to show Array(x, 1, n)[f(x)], we need f(x) to be a PLUS
+
+
+///////////////////////////////////
+// will be replaced by:
+// "//" when using bv mode
+// "" when using int mode
+// main reason is to avoid using bv for constants
+// or avoid translating lines that are complex or unsound
+//////////////////////////////////
+
+////////////////////////////////////////////
+/////// functions for int type /////////////
+// Theorem prover does not see INT_ADD etc.
+////////////////////////////////////////////
+function {:inline true} INT_EQ(x:int, y:int) returns (bool) {x == y}
+function {:inline true} INT_NEQ(x:int, y:int) returns (bool) {x != y}
+
+function {:inline true} INT_ADD(x:int, y:int) returns (int) {x + y}
+function {:inline true} INT_SUB(x:int, y:int) returns (int) {x - y}
+function {:inline true} INT_MULT(x:int, y:int) returns (int) {x * y}
+function {:inline true} INT_DIV(x:int, y:int) returns (int) {x div y}
+function {:inline true} INT_LT(x:int, y:int) returns (bool) {x < y}
+function {:inline true} INT_ULT(x:int, y:int) returns (bool) {x < y}
+function {:inline true} INT_LEQ(x:int, y:int) returns (bool) {x <= y}
+function {:inline true} INT_ULEQ(x:int, y:int) returns (bool) {x <= y}
+function {:inline true} INT_GT(x:int, y:int) returns (bool) {x > y}
+function {:inline true} INT_UGT(x:int, y:int) returns (bool) {x > y}
+function {:inline true} INT_GEQ(x:int, y:int) returns (bool) {x >= y}
+function {:inline true} INT_UGEQ(x:int, y:int) returns (bool) {x >= y}
+
+
+////////////////////////////////////////////
+/////// functions for bv32 type /////////////
+// Theorem prover does not see INT_ADD etc.
+// we are treating unsigned ops now
+////////////////////////////////////////////
+function {:inline true} BV32_EQ(x:bv32, y:bv32) returns (bool) {x == y}
+function {:inline true} BV32_NEQ(x:bv32, y:bv32) returns (bool) {x != y}
+
+function {:bvbuiltin "bvadd"} BV32_ADD(x:bv32, y:bv32) returns (bv32);
+function {:bvbuiltin "bvsub"} BV32_SUB(x:bv32, y:bv32) returns (bv32);
+function {:bvbuiltin "bvmul"} BV32_MULT(x:bv32, y:bv32) returns (bv32);
+function {:bvbuiltin "bvudiv"} BV32_DIV(x:bv32, y:bv32) returns (bv32);
+function {:bvbuiltin "bvult"} BV32_ULT(x:bv32, y:bv32) returns (bool);
+function {:bvbuiltin "bvslt"} BV32_LT(x:bv32, y:bv32) returns (bool);
+function {:bvbuiltin "bvule"} BV32_ULEQ(x:bv32, y:bv32) returns (bool);
+function {:bvbuiltin "bvsle"} BV32_LEQ(x:bv32, y:bv32) returns (bool);
+function {:bvbuiltin "bvugt"} BV32_UGT(x:bv32, y:bv32) returns (bool);
+function {:bvbuiltin "bvsgt"} BV32_GT(x:bv32, y:bv32) returns (bool);
+function {:bvbuiltin "bvuge"} BV32_UGEQ(x:bv32, y:bv32) returns (bool);
+function {:bvbuiltin "bvsge"} BV32_GEQ(x:bv32, y:bv32) returns (bool);
+
+//what about bitwise ops {BIT_AND, BIT_OR, BIT_NOT, ..}
+//only enabled with bv theory
+// function {:bvbuiltin "bvand"} BIT_BAND(a:int, b:int) returns (x:int);
+// function {:bvbuiltin "bvor"} BIT_BOR(a:int, b:int) returns (x:int);
+// function {:bvbuiltin "bvxor"} BIT_BXOR(a:int, b:int) returns (x:int);
+// function {:bvbuiltin "bvnot"} BIT_BNOT(a:int) returns (x:int);
+
+//////////////////////////////////
+// Generic C Arithmetic operations
+/////////////////////////////////
+
+//Is this sound for bv32?
+function MINUS_BOTH_PTR_OR_BOTH_INT(a:int, b:int, size:int) returns (int);
+ axiom (forall a:int, b:int, size:int :: {MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size)}
+//size * MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size) <= a - b && a - b < size * (MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size) + 1));
+ INT_LEQ( INT_MULT(size, MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size)), INT_SUB(a, b)) && INT_LT( INT_SUB(a, b), INT_MULT(size, (INT_ADD(MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size), 1)))));
+
+//we just keep this axiom for size = 1
+axiom (forall a:int, b:int, size:int :: {MINUS_BOTH_PTR_OR_BOTH_INT(a,b,size)} MINUS_BOTH_PTR_OR_BOTH_INT(a,b,1) == INT_SUB(a,b));
+
+
+function MINUS_LEFT_PTR(a:int, a_size:int, b:int) returns (int);
+//axiom(forall a:int, a_size:int, b:int :: {MINUS_LEFT_PTR(a,a_size,b)} MINUS_LEFT_PTR(a,a_size,b) == a - a_size * b);
+axiom(forall a:int, a_size:int, b:int :: {MINUS_LEFT_PTR(a,a_size,b)} MINUS_LEFT_PTR(a,a_size,b) == INT_SUB(a, INT_MULT(a_size, b)));
+
+
+function PLUS(a:int, a_size:int, b:int) returns (int);
+//axiom (forall a:int, a_size:int, b:int :: {PLUS(a,a_size,b)} PLUS(a,a_size,b) == a + a_size * b);
+axiom (forall a:int, a_size:int, b:int :: {PLUS(a,a_size,b)} PLUS(a,a_size,b) == INT_ADD(a, INT_MULT(a_size, b)));
+
+function MULT(a:int, b:int) returns (int); // a*b
+//axiom(forall a:int, b:int :: {MULT(a,b)} MULT(a,b) == a * b);
+axiom(forall a:int, b:int :: {MULT(a,b)} MULT(a,b) == INT_MULT(a, b));
+
+function DIV(a:int, b:int) returns (int); // a/b
+
+// Not sure if these axioms hold for BV too, just commet them for BV
+
+
+
+//uninterpreted binary op
+function BINARY_BOTH_INT(a:int, b:int) returns (int);
+
+
+//////////////////////////////////////////
+//// Bitwise ops (uninterpreted, used with int)
+//////////////////////////////////////////
+
+
+ function BIT_BAND(a:int, b:int) returns (x:int);
+
+
+ function BIT_BOR(a:int, b:int) returns (x:int);
+ function BIT_BXOR(a:int, b:int) returns (x:int);
+ function BIT_BNOT(a:int) returns (int);
+
+
+
+
+function LIFT(a:bool) returns (int);
+axiom(forall a:bool :: {LIFT(a)} a <==> LIFT(a) != 0);
+
+function PTR_NOT(a:int) returns (int);
+axiom(forall a:int :: {PTR_NOT(a)} a == 0 ==> PTR_NOT(a) != 0);
+axiom(forall a:int :: {PTR_NOT(a)} a != 0 ==> PTR_NOT(a) == 0);
+
+function NULL_CHECK(a:int) returns (int);
+axiom(forall a:int :: {NULL_CHECK(a)} a == 0 ==> NULL_CHECK(a) != 0);
+axiom(forall a:int :: {NULL_CHECK(a)} a != 0 ==> NULL_CHECK(a) == 0);
+
+procedure havoc_assert(i:int);
+requires (i != 0);
+
+procedure havoc_assume(i:int);
+ensures (i != 0);
+
+procedure __HAVOC_free(a:int);
+
+function NewAlloc(x:int, y:int) returns (z:int);
+
+//Comments below make HAVOC_malloc deterministic
+
+procedure __HAVOC_malloc(obj_size:int) returns (new:int);
+//requires obj_size >= 0;
+free requires INT_GEQ(obj_size, 0);
+modifies alloc;
+ensures new == old(alloc);
+//ensures alloc > new + obj_size;
+ensures INT_GT(alloc, INT_ADD(new, obj_size));
+//ensures alloc == NewAlloc(old(alloc), obj_size);
+
+
+
+
+procedure _strdup(str:int) returns (new:int);
+
+procedure _xstrcasecmp(a0:int, a1:int) returns (ret:int);
+
+procedure _xstrcmp(a0:int, a1:int) returns (ret:int);
+
+
+/*
+//bv functions
+function bv8ToInt(bv8) returns (int);
+function bv16ToInt(bv16) returns (int);
+function bv32ToInt(bv32) returns (int);
+function bv64ToInt(bv64) returns (int);
+
+function intToBv8(int) returns (bv8);
+function intToBv16(int) returns (bv16);
+function intToBv32(int) returns (bv32);
+function intToBv64(int) returns (bv64);
+
+axiom(forall a:int :: {intToBv8(a)} bv8ToInt(intToBv8(a)) == a);
+axiom(forall a:int :: {intToBv16(a)} bv16ToInt(intToBv16(a)) == a);
+axiom(forall a:int :: {intToBv32(a)} bv32ToInt(intToBv32(a)) == a);
+axiom(forall a:int :: {intToBv64(a)} bv64ToInt(intToBv64(a)) == a);
+
+axiom(forall b:bv8 :: {bv8ToInt(b)} intToBv8(bv8ToInt(b)) == b);
+axiom(forall b:bv16 :: {bv16ToInt(b)} intToBv16(bv16ToInt(b)) == b);
+axiom(forall b:bv32 :: {bv32ToInt(b)} intToBv32(bv32ToInt(b)) == b);
+axiom(forall b:bv64 :: {bv64ToInt(b)} intToBv64(bv64ToInt(b)) == b);
+*/
+
+
+
+var Res_0_COMPLETED : [int]int;
+var Res_1_COMPLETED : [int]int;
+var Res_s_1_COMPLETED : [int]int;
+var Res_KERNEL_SOURCE:[int]int;
+var Res_0_LOCK : [int]int;
+var Res_1_LOCK : [int]int;
+var Res_s_1_LOCK : [int]int;
+var Res_PROBED:[int]int;
+
+//Pointer constants
+
+//Function pointer constants
+
+
+const unique Globals : int;
+axiom(Globals != 0);
+const unique I8xPowerUpToD0Complete : int;
+axiom(I8xPowerUpToD0Complete != 0);
+const unique I8xReinitializeHardware : int;
+axiom(I8xReinitializeHardware != 0);
+const unique I8xSysButtonCancelRoutine : int;
+axiom(I8xSysButtonCancelRoutine != 0);
+var cancelLockStatus_0 : int;
+var cancelLockStatus_1 : int;
+var cancelLockStatus_s_1 : int;
+
+const unique hdevobj : int;
+axiom(hdevobj != 0);
+// the set of constants for 64 bit integers that Boogie doesn't parse
+const unique BOOGIE_LARGE_INT_2147483648:int;
+
+
+
+procedure ExFreePoolWithTag(a0:int, a1:int);
+
+
+
+procedure IO_COMPLETION_ROUTINE(a0:int, a1:int, a2:int) returns (ret:int);
+
+
+
+procedure IoAcquireRemoveLockEx(a0:int, a1:int, a2:int, a3:int, a4:int) returns (ret:int);
+
+
+
+procedure IoAllocateWorkItem(a0:int) returns (ret:int);
+
+
+
+procedure IoDisconnectInterrupt(a0:int);
+
+
+
+procedure IoFreeWorkItem(a0:int);
+
+
+
+procedure IoQueueWorkItem(a0:int, a1:int, a2:int, a3:int);
+
+
+
+procedure IoReleaseRemoveLockEx(a0:int, a1:int, a2:int);
+
+
+
+procedure PoSetPowerState(a0:int, a1:int, a2:int) returns (ret:int);
+
+
+
+procedure PoStartNextPowerIrp(a0:int);
+
+
+
+procedure __PREfastPagedCode();
+
+
+
+procedure __storm_assert_dummy();
+
+
+
+procedure __storm_atomic_begin_dummy();
+
+
+
+procedure __storm_atomic_end_dummy();
+
+
+
+procedure memcpy(a0:int, a1:int, a2:int) returns (ret:int);
+
+
+
+procedure memset(a0:int, a1:int, a2:int) returns (ret:int);
+
+
+
+
+
+
+procedure storm_nondet() returns (ret:int);
+
+
+
+procedure storm_main();
+ free requires 0 < alloc;
+ free requires 0 < tid;
+ free requires tid < tidCount;
+ requires INT_LT(PLUS(hdevobj, 1, 184), alloc);
+ modifies tidCount, alloc, raiseException, cancelLockStatus_s_1, __storm_init, __storm_atomic, errorReached, cancelLockStatus_0, cancelLockStatus_1, __storm_thread_done_2, __storm_thread_done_1, __storm_thread_done_0, tid, k, Res_0_COMPLETED, Res_1_COMPLETED, Res_KERNEL_SOURCE, Res_0_LOCK, Res_1_LOCK, Res_PROBED, Mem_0_T.CancelRoutine__IRP, Mem_1_T.CancelRoutine__IRP, Mem_0_T.Cancel__IRP, Mem_1_T.Cancel__IRP, Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23, Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23, Mem_0_T.DeviceExtension__DEVICE_OBJECT, Mem_1_T.DeviceExtension__DEVICE_OBJECT, Mem_0_T.DeviceObject__IO_STACK_LOCATION, Mem_1_T.DeviceObject__IO_STACK_LOCATION;
+
+
+
+implementation storm_main()
+{
+ var inline$IoGetNextIrpStackLocation$0$$result.IoGetNextIrpStackLocation$23462.0$1$: int, inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine: int, inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$: int, inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine_.1: int, inline$storm_IoAllocateIrp$0$$result.malloc$284.0$3$: int, inline$I8xKeyboardGetSysButtonEvent$0$myVar_0: int, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp_.1: int, k_old_1: int, k_old_0: int, inline$IoSetNextIrpStackLocation$0$myVar_0: int, inline$storm_IoCancelIrp$0$myNondetVar_0: int, inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp: int, inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent_.1: int, inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl_.1: int, inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp: int, inline$IoGetCurrentIrpStackLocation$0$$result.IoGetCurrentIrpStackLocation$23297.0$1$: int, inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp: int, tid_old_1: int, inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$: int, tid_old_0: int, inline$storm_IoAllocateIrp$0$$result.IoGetNextIrpStackLocation$284.0$6$: int, inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation: int, inline$cancel$0$$Irp$1$64.17$cancel: int, inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest: int, inline$storm_IoAllocateIrp$0$$malloc.arg.1$5$: int, inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$: int, inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest_.1: int, inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl: int, inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$: int, inline$IoSetNextIrpStackLocation$0$tempBoogie0: int, inline$storm_IoAcquireCancelSpinLock$0$$result.storm_getThreadID$185.29$1$: int, inline$cancel$0$$Irp$1$64.17$cancel_.1: int, $irp$1$91.7$storm_main: int, inline$storm_getThreadID$0$tidRet: int, inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation_.1: int, $result.storm_IoAllocateIrp$96.21$1$: int, inline$IoGetCurrentIrpStackLocation$0$myVar_0: int, inline$storm_IoAllocateIrp$0$$result.malloc$284.0$4$: int, tidCount_old: int, inline$IoSetNextIrpStackLocation$0$myNondetVar_0: int, inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent: int, inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine: int, inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp: int, inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp_.1: int, inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp: int, inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine_.1: int, inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock: int, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp: int, inline$dispatch$0$$Irp$1$8.19$dispatch: int, $result.IoGetCurrentIrpStackLocation$99.38$2$: int, inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0: int, inline$IoGetNextIrpStackLocation$0$myVar_0: int, inline$storm_IoAllocateIrp$0$$result.storm_IoAllocateIrp$275.0$1$: int, inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$173.41$4$: int, inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation_.1: int, inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent: int, $irpSp$2$92.21$storm_main: int, inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation: int, inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$: int, inline$storm_IoCancelIrp$0$myVar_0: int, inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp_.1: int, inline$dispatch$0$$Irp$1$8.19$dispatch_.1: int, inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation: int, inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation_.1: int, inline$storm_IoCancelIrp$0$myNondetVar_1: int;
+
+ start#1:
+ assume Res_1_COMPLETED == Res_s_1_COMPLETED;
+ assume Res_1_LOCK == Res_s_1_LOCK;
+ assume Mem_1_T.CancelRoutine__IRP == Mem_s_1_T.CancelRoutine__IRP;
+ assume Mem_1_T.Cancel__IRP == Mem_s_1_T.Cancel__IRP;
+ assume Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 == Mem_s_1_T.CurrentStackLocation___unnamed_4_3c640f23;
+ assume Mem_1_T.DeviceExtension__DEVICE_OBJECT == Mem_s_1_T.DeviceExtension__DEVICE_OBJECT;
+ assume Mem_1_T.DeviceObject__IO_STACK_LOCATION == Mem_s_1_T.DeviceObject__IO_STACK_LOCATION;
+ assume cancelLockStatus_1 == cancelLockStatus_s_1;
+ __storm_thread_done_0 := false;
+ __storm_thread_done_1 := false;
+ __storm_thread_done_2 := false;
+ k := 0;
+ errorReached := false;
+ __storm_atomic := false;
+ __storm_init := false;
+ goto label_3#1;
+
+ label_3#1:
+ goto label_4#1;
+
+ label_4#1:
+ goto label_5#1;
+
+ label_5#1:
+ goto anon10_Then#1, anon10_Else#1;
+
+ anon10_Else#1:
+ assume k != 0;
+ goto anon11_Then#1, anon11_Else#1;
+
+ anon11_Else#1:
+ assume k != 1;
+ goto anon2#1;
+
+ anon11_Then#1:
+ assume k == 1;
+ cancelLockStatus_1 := 0;
+ goto anon2#1;
+
+ anon10_Then#1:
+ assume k == 0;
+ cancelLockStatus_0 := 0;
+ goto anon2#1;
+
+ anon2#1:
+ call contextSwitch();
+ goto label_6#1;
+
+ label_6#1:
+ goto inline$storm_IoAllocateIrp$0$Entry#1;
+
+ inline$storm_IoAllocateIrp$0$Entry#1:
+ inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp_.1 := 2;
+ goto inline$storm_IoAllocateIrp$0$start#1;
+
+ inline$storm_IoAllocateIrp$0$start#1:
+ inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp_.1;
+ goto inline$storm_IoAllocateIrp$0$label_3#1;
+
+ inline$storm_IoAllocateIrp$0$label_3#1:
+ goto inline$storm_IoAllocateIrp$0$label_4#1;
+
+ inline$storm_IoAllocateIrp$0$label_4#1:
+ goto inline$storm_IoAllocateIrp$0$label_5#1;
+
+ inline$storm_IoAllocateIrp$0$label_5#1:
+ call inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$ := storm_nondet();
+ goto inline$storm_IoAllocateIrp$0$label_8#1;
+
+ inline$storm_IoAllocateIrp$0$label_8#1:
+ goto inline$storm_IoAllocateIrp$0$label_8_case_0#1, inline$storm_IoAllocateIrp$0$label_8_case_1#1;
+
+ inline$storm_IoAllocateIrp$0$label_8_case_1#1:
+ assume inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$ == 0;
+ goto inline$storm_IoAllocateIrp$0$label_10#1;
+
+ inline$storm_IoAllocateIrp$0$label_10#1:
+ __storm_atomic := true;
+ goto inline$storm_IoAllocateIrp$0$label_13#1;
+
+ inline$storm_IoAllocateIrp$0$label_13#1:
+ call inline$storm_IoAllocateIrp$0$$result.malloc$284.0$3$ := __HAVOC_malloc(112);
+ goto inline$storm_IoAllocateIrp$0$label_16#1;
+
+ inline$storm_IoAllocateIrp$0$label_16#1:
+ inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$result.malloc$284.0$3$;
+ goto inline$storm_IoAllocateIrp$0$label_17#1;
+
+ inline$storm_IoAllocateIrp$0$label_17#1:
+ goto inline$storm_IoAllocateIrp$0$anon14_Then#1, inline$storm_IoAllocateIrp$0$anon14_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon14_Else#1:
+ assume k != 0;
+ goto inline$storm_IoAllocateIrp$0$anon15_Then#1, inline$storm_IoAllocateIrp$0$anon15_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon15_Else#1:
+ assume k != 1;
+ goto inline$storm_IoAllocateIrp$0$anon2#1;
+
+ inline$storm_IoAllocateIrp$0$anon15_Then#1:
+ assume k == 1;
+ Mem_1_T.Cancel__IRP := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
+ goto inline$storm_IoAllocateIrp$0$anon2#1;
+
+ inline$storm_IoAllocateIrp$0$anon14_Then#1:
+ assume k == 0;
+ Mem_0_T.Cancel__IRP := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
+ goto inline$storm_IoAllocateIrp$0$anon2#1;
+
+ inline$storm_IoAllocateIrp$0$anon2#1:
+ call contextSwitch();
+ goto inline$storm_IoAllocateIrp$0$label_18#1;
+
+ inline$storm_IoAllocateIrp$0$label_18#1:
+ goto inline$storm_IoAllocateIrp$0$anon16_Then#1, inline$storm_IoAllocateIrp$0$anon16_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon16_Else#1:
+ assume k != 0;
+ goto inline$storm_IoAllocateIrp$0$anon17_Then#1, inline$storm_IoAllocateIrp$0$anon17_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon17_Else#1:
+ assume k != 1;
+ goto inline$storm_IoAllocateIrp$0$anon5#1;
+
+ inline$storm_IoAllocateIrp$0$anon17_Then#1:
+ assume k == 1;
+ Mem_1_T.CancelRoutine__IRP := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
+ goto inline$storm_IoAllocateIrp$0$anon5#1;
+
+ inline$storm_IoAllocateIrp$0$anon16_Then#1:
+ assume k == 0;
+ Mem_0_T.CancelRoutine__IRP := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp) := 0];
+ goto inline$storm_IoAllocateIrp$0$anon5#1;
+
+ inline$storm_IoAllocateIrp$0$anon5#1:
+ call contextSwitch();
+ goto inline$storm_IoAllocateIrp$0$label_19#1;
+
+ inline$storm_IoAllocateIrp$0$label_19#1:
+ goto inline$storm_IoAllocateIrp$0$anon18_Then#1, inline$storm_IoAllocateIrp$0$anon18_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon18_Else#1:
+ assume k != 0;
+ goto inline$storm_IoAllocateIrp$0$anon19_Then#1, inline$storm_IoAllocateIrp$0$anon19_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon19_Else#1:
+ assume k != 1;
+ goto inline$storm_IoAllocateIrp$0$anon8#1;
+
+ inline$storm_IoAllocateIrp$0$anon19_Then#1:
+ assume k == 1;
+ Res_1_COMPLETED := Res_1_COMPLETED[inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := 0];
+ goto inline$storm_IoAllocateIrp$0$anon8#1;
+
+ inline$storm_IoAllocateIrp$0$anon18_Then#1:
+ assume k == 0;
+ Res_0_COMPLETED := Res_0_COMPLETED[inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := 0];
+ goto inline$storm_IoAllocateIrp$0$anon8#1;
+
+ inline$storm_IoAllocateIrp$0$anon8#1:
+ call contextSwitch();
+ goto inline$storm_IoAllocateIrp$0$label_20#1;
+
+ inline$storm_IoAllocateIrp$0$label_20#1:
+ assume INT_LT(0, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp);
+ goto inline$storm_IoAllocateIrp$0$label_21#1;
+
+ inline$storm_IoAllocateIrp$0$label_21#1:
+ inline$storm_IoAllocateIrp$0$$malloc.arg.1$5$ := MULT(inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp, 36);
+ goto inline$storm_IoAllocateIrp$0$label_22#1;
+
+ inline$storm_IoAllocateIrp$0$label_22#1:
+ call inline$storm_IoAllocateIrp$0$$result.malloc$284.0$4$ := __HAVOC_malloc(inline$storm_IoAllocateIrp$0$$malloc.arg.1$5$);
+ goto inline$storm_IoAllocateIrp$0$label_25#1;
+
+ inline$storm_IoAllocateIrp$0$label_25#1:
+ inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$result.malloc$284.0$4$;
+ goto inline$storm_IoAllocateIrp$0$label_26#1;
+
+ inline$storm_IoAllocateIrp$0$label_26#1:
+ goto inline$storm_IoAllocateIrp$0$anon20_Then#1, inline$storm_IoAllocateIrp$0$anon20_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon20_Else#1:
+ assume k != 0;
+ goto inline$storm_IoAllocateIrp$0$anon21_Then#1, inline$storm_IoAllocateIrp$0$anon21_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon21_Else#1:
+ assume k != 1;
+ goto inline$storm_IoAllocateIrp$0$anon11#1;
+
+ inline$storm_IoAllocateIrp$0$anon21_Then#1:
+ assume k == 1;
+ Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp))))) := PLUS(inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp, 36, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp)];
+ goto inline$storm_IoAllocateIrp$0$anon11#1;
+
+ inline$storm_IoAllocateIrp$0$anon20_Then#1:
+ assume k == 0;
+ Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp))))) := PLUS(inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp, 36, inline$storm_IoAllocateIrp$0$$StackSize$1$276.11$storm_IoAllocateIrp)];
+ goto inline$storm_IoAllocateIrp$0$anon11#1;
+
+ inline$storm_IoAllocateIrp$0$anon11#1:
+ call contextSwitch();
+ goto inline$storm_IoAllocateIrp$0$label_27#1;
+
+ inline$storm_IoAllocateIrp$0$label_27#1:
+ goto inline$IoGetNextIrpStackLocation$0$Entry#1;
+
+ inline$IoGetNextIrpStackLocation$0$Entry#1:
+ inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation_.1 := inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp;
+ goto inline$IoGetNextIrpStackLocation$0$start#1;
+
+ inline$IoGetNextIrpStackLocation$0$start#1:
+ inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation := inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation_.1;
+ goto inline$IoGetNextIrpStackLocation$0$label_3#1;
+
+ inline$IoGetNextIrpStackLocation$0$label_3#1:
+ goto inline$IoGetNextIrpStackLocation$0$anon3_Then#1, inline$IoGetNextIrpStackLocation$0$anon3_Else#1;
+
+ inline$IoGetNextIrpStackLocation$0$anon3_Else#1:
+ assume k != 0;
+ goto inline$IoGetNextIrpStackLocation$0$anon4_Then#1, inline$IoGetNextIrpStackLocation$0$anon4_Else#1;
+
+ inline$IoGetNextIrpStackLocation$0$anon4_Else#1:
+ assume k != 1;
+ goto inline$IoGetNextIrpStackLocation$0$anon2#1;
+
+ inline$IoGetNextIrpStackLocation$0$anon4_Then#1:
+ assume k == 1;
+ inline$IoGetNextIrpStackLocation$0$myVar_0 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation)))))];
+ goto inline$IoGetNextIrpStackLocation$0$anon2#1;
+
+ inline$IoGetNextIrpStackLocation$0$anon3_Then#1:
+ assume k == 0;
+ inline$IoGetNextIrpStackLocation$0$myVar_0 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetNextIrpStackLocation$0$$Irp$1$23463.14$IoGetNextIrpStackLocation)))))];
+ goto inline$IoGetNextIrpStackLocation$0$anon2#1;
+
+ inline$IoGetNextIrpStackLocation$0$anon2#1:
+ call contextSwitch();
+ inline$IoGetNextIrpStackLocation$0$$result.IoGetNextIrpStackLocation$23462.0$1$ := MINUS_LEFT_PTR(inline$IoGetNextIrpStackLocation$0$myVar_0, 36, 1);
+ goto inline$IoGetNextIrpStackLocation$0$label_1#1;
+
+ inline$IoGetNextIrpStackLocation$0$label_1#1:
+ goto inline$IoGetNextIrpStackLocation$0$Return#1;
+
+ inline$IoGetNextIrpStackLocation$0$Return#1:
+ inline$storm_IoAllocateIrp$0$$result.IoGetNextIrpStackLocation$284.0$6$ := inline$IoGetNextIrpStackLocation$0$$result.IoGetNextIrpStackLocation$23462.0$1$;
+ goto inline$storm_IoAllocateIrp$0$label_27$1#1;
+
+ inline$storm_IoAllocateIrp$0$label_27$1#1:
+ goto inline$storm_IoAllocateIrp$0$label_30#1;
+
+ inline$storm_IoAllocateIrp$0$label_30#1:
+ inline$storm_IoAllocateIrp$0$$irpSp$4$281.21$storm_IoAllocateIrp := inline$storm_IoAllocateIrp$0$$result.IoGetNextIrpStackLocation$284.0$6$;
+ goto inline$storm_IoAllocateIrp$0$label_31#1;
+
+ inline$storm_IoAllocateIrp$0$label_31#1:
+ goto inline$storm_IoAllocateIrp$0$label_32#1;
+
+ inline$storm_IoAllocateIrp$0$label_32#1:
+ goto inline$storm_IoAllocateIrp$0$label_33#1;
+
+ inline$storm_IoAllocateIrp$0$label_33#1:
+ goto inline$storm_IoAllocateIrp$0$anon22_Then#1, inline$storm_IoAllocateIrp$0$anon22_Else#1;
+
+ inline$storm_IoAllocateIrp$0$anon22_Else#1:
+ assume __storm_init;
+ goto inline$storm_IoAllocateIrp$0$anon13#1;
+
+ inline$storm_IoAllocateIrp$0$anon22_Then#1:
+ assume !__storm_init;
+ __storm_atomic := false;
+ goto inline$storm_IoAllocateIrp$0$anon13#1;
+
+ inline$storm_IoAllocateIrp$0$anon13#1:
+ call contextSwitch();
+ goto inline$storm_IoAllocateIrp$0$label_36#1;
+
+ inline$storm_IoAllocateIrp$0$label_8_case_0#1:
+ assume inline$storm_IoAllocateIrp$0$$result.storm_nondet$282.22$2$ != 0;
+ goto inline$storm_IoAllocateIrp$0$label_9#1;
+
+ inline$storm_IoAllocateIrp$0$label_9#1:
+ inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp := 0;
+ goto inline$storm_IoAllocateIrp$0$label_36#1;
+
+ inline$storm_IoAllocateIrp$0$label_36#1:
+ inline$storm_IoAllocateIrp$0$$result.storm_IoAllocateIrp$275.0$1$ := inline$storm_IoAllocateIrp$0$$createdIrp$3$280.7$storm_IoAllocateIrp;
+ goto inline$storm_IoAllocateIrp$0$label_1#1;
+
+ inline$storm_IoAllocateIrp$0$label_1#1:
+ goto inline$storm_IoAllocateIrp$0$Return#1;
+
+ inline$storm_IoAllocateIrp$0$Return#1:
+ $result.storm_IoAllocateIrp$96.21$1$ := inline$storm_IoAllocateIrp$0$$result.storm_IoAllocateIrp$275.0$1$;
+ goto label_6$1#1;
+
+ label_6$1#1:
+ goto label_9#1;
+
+ label_9#1:
+ $irp$1$91.7$storm_main := $result.storm_IoAllocateIrp$96.21$1$;
+ goto label_10#1;
+
+ label_10#1:
+ assume INT_NEQ($irp$1$91.7$storm_main, 0);
+ goto label_11#1;
+
+ label_11#1:
+ goto inline$IoSetNextIrpStackLocation$0$Entry#1;
+
+ inline$IoSetNextIrpStackLocation$0$Entry#1:
+ inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation_.1 := $irp$1$91.7$storm_main;
+ goto inline$IoSetNextIrpStackLocation$0$start#1;
+
+ inline$IoSetNextIrpStackLocation$0$start#1:
+ inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation := inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation_.1;
+ goto inline$IoSetNextIrpStackLocation$0$label_3#1;
+
+ inline$IoSetNextIrpStackLocation$0$label_3#1:
+ havoc inline$IoSetNextIrpStackLocation$0$myNondetVar_0;
+ inline$IoSetNextIrpStackLocation$0$tempBoogie0 := MINUS_BOTH_PTR_OR_BOTH_INT(inline$IoSetNextIrpStackLocation$0$myNondetVar_0, 1, 1);
+ goto inline$IoSetNextIrpStackLocation$0$label_4#1;
+
+ inline$IoSetNextIrpStackLocation$0$label_4#1:
+ goto inline$IoSetNextIrpStackLocation$0$anon6_Then#1, inline$IoSetNextIrpStackLocation$0$anon6_Else#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon6_Else#1:
+ assume k != 0;
+ goto inline$IoSetNextIrpStackLocation$0$anon7_Then#1, inline$IoSetNextIrpStackLocation$0$anon7_Else#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon7_Else#1:
+ assume k != 1;
+ goto inline$IoSetNextIrpStackLocation$0$anon2#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon7_Then#1:
+ assume k == 1;
+ inline$IoSetNextIrpStackLocation$0$myVar_0 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation)))))];
+ goto inline$IoSetNextIrpStackLocation$0$anon2#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon6_Then#1:
+ assume k == 0;
+ inline$IoSetNextIrpStackLocation$0$myVar_0 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation)))))];
+ goto inline$IoSetNextIrpStackLocation$0$anon2#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon2#1:
+ call contextSwitch();
+ inline$IoSetNextIrpStackLocation$0$tempBoogie0 := MINUS_LEFT_PTR(inline$IoSetNextIrpStackLocation$0$myVar_0, 36, 1);
+ goto inline$IoSetNextIrpStackLocation$0$anon8_Then#1, inline$IoSetNextIrpStackLocation$0$anon8_Else#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon8_Else#1:
+ assume k != 0;
+ goto inline$IoSetNextIrpStackLocation$0$anon9_Then#1, inline$IoSetNextIrpStackLocation$0$anon9_Else#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon9_Else#1:
+ assume k != 1;
+ goto inline$IoSetNextIrpStackLocation$0$anon5#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon9_Then#1:
+ assume k == 1;
+ Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation))))) := inline$IoSetNextIrpStackLocation$0$tempBoogie0];
+ goto inline$IoSetNextIrpStackLocation$0$anon5#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon8_Then#1:
+ assume k == 0;
+ Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoSetNextIrpStackLocation$0$$Irp$1$23862.16$IoSetNextIrpStackLocation))))) := inline$IoSetNextIrpStackLocation$0$tempBoogie0];
+ goto inline$IoSetNextIrpStackLocation$0$anon5#1;
+
+ inline$IoSetNextIrpStackLocation$0$anon5#1:
+ call contextSwitch();
+ goto inline$IoSetNextIrpStackLocation$0$label_1#1;
+
+ inline$IoSetNextIrpStackLocation$0$label_1#1:
+ goto inline$IoSetNextIrpStackLocation$0$Return#1;
+
+ inline$IoSetNextIrpStackLocation$0$Return#1:
+ goto label_11$1#1;
+
+ label_11$1#1:
+ goto label_14#1;
+
+ label_14#1:
+ goto inline$IoGetCurrentIrpStackLocation$0$Entry#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$Entry#1:
+ inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation_.1 := $irp$1$91.7$storm_main;
+ goto inline$IoGetCurrentIrpStackLocation$0$start#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$start#1:
+ inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation := inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation_.1;
+ goto inline$IoGetCurrentIrpStackLocation$0$label_3#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$label_3#1:
+ goto inline$IoGetCurrentIrpStackLocation$0$anon3_Then#1, inline$IoGetCurrentIrpStackLocation$0$anon3_Else#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$anon3_Else#1:
+ assume k != 0;
+ goto inline$IoGetCurrentIrpStackLocation$0$anon4_Then#1, inline$IoGetCurrentIrpStackLocation$0$anon4_Else#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$anon4_Else#1:
+ assume k != 1;
+ goto inline$IoGetCurrentIrpStackLocation$0$anon2#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$anon4_Then#1:
+ assume k == 1;
+ inline$IoGetCurrentIrpStackLocation$0$myVar_0 := Mem_1_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation)))))];
+ goto inline$IoGetCurrentIrpStackLocation$0$anon2#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$anon3_Then#1:
+ assume k == 0;
+ inline$IoGetCurrentIrpStackLocation$0$myVar_0 := Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23[CurrentStackLocation___unnamed_4_3c640f23(__unnamed_4_3c640f23___unnamed_12_41c62b26(__unnamed_12_41c62b26___unnamed_40_32307de2(Overlay___unnamed_48_e2bbfb0b(Tail__IRP(inline$IoGetCurrentIrpStackLocation$0$$Irp$1$23298.14$IoGetCurrentIrpStackLocation)))))];
+ goto inline$IoGetCurrentIrpStackLocation$0$anon2#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$anon2#1:
+ call contextSwitch();
+ inline$IoGetCurrentIrpStackLocation$0$$result.IoGetCurrentIrpStackLocation$23297.0$1$ := inline$IoGetCurrentIrpStackLocation$0$myVar_0;
+ goto inline$IoGetCurrentIrpStackLocation$0$label_1#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$label_1#1:
+ goto inline$IoGetCurrentIrpStackLocation$0$Return#1;
+
+ inline$IoGetCurrentIrpStackLocation$0$Return#1:
+ $result.IoGetCurrentIrpStackLocation$99.38$2$ := inline$IoGetCurrentIrpStackLocation$0$$result.IoGetCurrentIrpStackLocation$23297.0$1$;
+ goto label_14$1#1;
+
+ label_14$1#1:
+ goto label_17#1;
+
+ label_17#1:
+ $irpSp$2$92.21$storm_main := $result.IoGetCurrentIrpStackLocation$99.38$2$;
+ goto label_18#1;
+
+ label_18#1:
+ goto anon12_Then#1, anon12_Else#1;
+
+ anon12_Else#1:
+ assume k != 0;
+ goto anon13_Then#1, anon13_Else#1;
+
+ anon13_Else#1:
+ assume k != 1;
+ goto anon5#1;
+
+ anon13_Then#1:
+ assume k == 1;
+ Mem_1_T.DeviceObject__IO_STACK_LOCATION := Mem_1_T.DeviceObject__IO_STACK_LOCATION[DeviceObject__IO_STACK_LOCATION($irpSp$2$92.21$storm_main) := hdevobj];
+ goto anon5#1;
+
+ anon12_Then#1:
+ assume k == 0;
+ Mem_0_T.DeviceObject__IO_STACK_LOCATION := Mem_0_T.DeviceObject__IO_STACK_LOCATION[DeviceObject__IO_STACK_LOCATION($irpSp$2$92.21$storm_main) := hdevobj];
+ goto anon5#1;
+
+ anon5#1:
+ call contextSwitch();
+ goto label_19#1;
+
+ label_19#1:
+ goto label_20#1;
+
+ label_20#1:
+ k_old_0 := k;
+ tid_old_0 := tid;
+ tidCount_old := tidCount;
+ havoc tidCount;
+ assume tidCount_old < tidCount;
+ tid := tidCount;
+ raiseException := false;
+ call contextSwitch();
+ goto inline$dispatch$0$Entry#1;
+
+ inline$dispatch$0$Entry#1:
+ inline$dispatch$0$$Irp$1$8.19$dispatch_.1 := $irp$1$91.7$storm_main;
+ goto inline$dispatch$0$start#1;
+
+ inline$dispatch$0$start#1:
+ inline$dispatch$0$$Irp$1$8.19$dispatch := inline$dispatch$0$$Irp$1$8.19$dispatch_.1;
+ goto inline$dispatch$0$label_3#1;
+
+ inline$dispatch$0$label_3#1:
+ goto inline$dispatch$0$label_4#1;
+
+ inline$dispatch$0$label_4#1:
+ goto inline$IoGetCurrentIrpStackLocation$1$Entry#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$Entry#1:
+ goto inline$IoGetCurrentIrpStackLocation$1$start#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$start#1:
+ goto inline$IoGetCurrentIrpStackLocation$1$label_3#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$label_3#1:
+ goto inline$IoGetCurrentIrpStackLocation$1$anon3_Then#1, inline$IoGetCurrentIrpStackLocation$1$anon3_Else#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$anon3_Else#1:
+ assume k != 0;
+ goto inline$IoGetCurrentIrpStackLocation$1$anon4_Then#1, inline$IoGetCurrentIrpStackLocation$1$anon4_Else#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$anon4_Else#1:
+ assume k != 1;
+ goto inline$IoGetCurrentIrpStackLocation$1$anon2#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$anon4_Then#1:
+ assume k == 1;
+ goto inline$IoGetCurrentIrpStackLocation$1$anon2#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$anon3_Then#1:
+ assume k == 0;
+ goto inline$IoGetCurrentIrpStackLocation$1$anon2#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$anon2#1:
+ call contextSwitch();
+ goto inline$IoGetCurrentIrpStackLocation$1$label_1#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$label_1#1:
+ goto inline$IoGetCurrentIrpStackLocation$1$Return#1;
+
+ inline$IoGetCurrentIrpStackLocation$1$Return#1:
+ goto inline$dispatch$0$label_4$1#1;
+
+ inline$dispatch$0$label_4$1#1:
+ goto inline$dispatch$0$label_7#1;
+
+ inline$dispatch$0$label_7#1:
+ goto inline$dispatch$0$label_8#1;
+
+ inline$dispatch$0$label_8#1:
+ goto inline$I8xDeviceControl$0$Entry#1;
+
+ inline$I8xDeviceControl$0$Entry#1:
+ inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl_.1 := inline$dispatch$0$$Irp$1$8.19$dispatch;
+ goto inline$I8xDeviceControl$0$start#1;
+
+ inline$I8xDeviceControl$0$start#1:
+ inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl := inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl_.1;
+ goto inline$I8xDeviceControl$0$label_3#1;
+
+ inline$I8xDeviceControl$0$label_3#1:
+ goto inline$I8xDeviceControl$0$label_4#1;
+
+ inline$I8xDeviceControl$0$label_4#1:
+ call __PREfastPagedCode();
+ goto inline$I8xDeviceControl$0$label_7#1;
+
+ inline$I8xDeviceControl$0$label_7#1:
+ goto inline$I8xDeviceControl$0$anon3_Then#1, inline$I8xDeviceControl$0$anon3_Else#1;
+
+ inline$I8xDeviceControl$0$anon3_Else#1:
+ assume k != 0;
+ goto inline$I8xDeviceControl$0$anon4_Then#1, inline$I8xDeviceControl$0$anon4_Else#1;
+
+ inline$I8xDeviceControl$0$anon4_Else#1:
+ assume k != 1;
+ goto inline$I8xDeviceControl$0$anon2#1;
+
+ inline$I8xDeviceControl$0$anon4_Then#1:
+ assume k == 1;
+ goto inline$I8xDeviceControl$0$anon2#1;
+
+ inline$I8xDeviceControl$0$anon3_Then#1:
+ assume k == 0;
+ goto inline$I8xDeviceControl$0$anon2#1;
+
+ inline$I8xDeviceControl$0$anon2#1:
+ call contextSwitch();
+ goto inline$I8xDeviceControl$0$label_8#1;
+
+ inline$I8xDeviceControl$0$label_8#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$Entry#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$Entry#1:
+ inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent_.1 := inline$I8xDeviceControl$0$$Irp$2$465.12$I8xDeviceControl;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$start#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$start#1:
+ inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent := inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent_.1;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_3#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_3#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_4#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_4#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_5#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_5#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_6#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_6#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_7#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_7#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_8#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_8#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_9#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_9#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_9_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_9_false#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_9_false#1:
+ havoc inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0;
+ assume inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0 == 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_10#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_10#1:
+ goto inline$storm_IoSetCancelRoutine$0$Entry#1;
+
+ inline$storm_IoSetCancelRoutine$0$Entry#1:
+ inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine_.1 := inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent;
+ inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine_.1 := I8xSysButtonCancelRoutine;
+ goto inline$storm_IoSetCancelRoutine$0$start#1;
+
+ inline$storm_IoSetCancelRoutine$0$start#1:
+ inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine := inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine_.1;
+ inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine := inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine_.1;
+ goto inline$storm_IoSetCancelRoutine$0$label_3#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_3#1:
+ goto inline$storm_IoSetCancelRoutine$0$label_4#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_4#1:
+ call inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$ := storm_nondet();
+ goto inline$storm_IoSetCancelRoutine$0$label_7#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_7#1:
+ goto inline$storm_IoSetCancelRoutine$0$label_7_true#1, inline$storm_IoSetCancelRoutine$0$label_7_false#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_7_false#1:
+ assume inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$ == 0;
+ goto inline$storm_IoSetCancelRoutine$0$label_8#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_7_true#1:
+ assume inline$storm_IoSetCancelRoutine$0$$result.storm_nondet$389.2$2$ != 0;
+ goto inline$storm_IoSetCancelRoutine$0$label_11#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_11#1:
+ assume k == 0 ==> INT_EQ(Res_0_COMPLETED[inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine], 1);
+ assume k == 1 ==> INT_EQ(Res_1_COMPLETED[inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine], 1);
+ call contextSwitch();
+ goto inline$storm_IoSetCancelRoutine$0$label_12#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_12#1:
+ goto inline$storm_IoSetCancelRoutine$0$label_12_true#1, inline$storm_IoSetCancelRoutine$0$label_12_false#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_12_false#1:
+ assume 0 == 0;
+ goto inline$storm_IoSetCancelRoutine$0$label_13#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_13#1:
+ errorReached := true;
+ raiseException := true;
+ __storm_atomic := false;
+ __storm_init := false;
+ goto inline$storm_IoSetCancelRoutine$0$label_1#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_12_true#1:
+ assume 0 != 0;
+ goto inline$storm_IoSetCancelRoutine$0$label_8#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_8#1:
+ __storm_atomic := true;
+ goto inline$storm_IoSetCancelRoutine$0$label_16#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_16#1:
+ goto inline$storm_IoSetCancelRoutine$0$anon9_Then#1, inline$storm_IoSetCancelRoutine$0$anon9_Else#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon9_Else#1:
+ assume k != 0;
+ goto inline$storm_IoSetCancelRoutine$0$anon10_Then#1, inline$storm_IoSetCancelRoutine$0$anon10_Else#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon10_Else#1:
+ assume k != 1;
+ goto inline$storm_IoSetCancelRoutine$0$anon3#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon10_Then#1:
+ assume k == 1;
+ goto inline$storm_IoSetCancelRoutine$0$anon3#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon9_Then#1:
+ assume k == 0;
+ goto inline$storm_IoSetCancelRoutine$0$anon3#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon3#1:
+ call contextSwitch();
+ goto inline$storm_IoSetCancelRoutine$0$label_17#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_17#1:
+ goto inline$storm_IoSetCancelRoutine$0$anon11_Then#1, inline$storm_IoSetCancelRoutine$0$anon11_Else#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon11_Else#1:
+ assume k != 0;
+ goto inline$storm_IoSetCancelRoutine$0$anon12_Then#1, inline$storm_IoSetCancelRoutine$0$anon12_Else#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon12_Else#1:
+ assume k != 1;
+ goto inline$storm_IoSetCancelRoutine$0$anon6#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon12_Then#1:
+ assume k == 1;
+ Mem_1_T.CancelRoutine__IRP := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine) := inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine];
+ goto inline$storm_IoSetCancelRoutine$0$anon6#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon11_Then#1:
+ assume k == 0;
+ Mem_0_T.CancelRoutine__IRP := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoSetCancelRoutine$0$$pirp$1$384.10$storm_IoSetCancelRoutine) := inline$storm_IoSetCancelRoutine$0$$CancelRoutine$2$385.20$storm_IoSetCancelRoutine];
+ goto inline$storm_IoSetCancelRoutine$0$anon6#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon6#1:
+ call contextSwitch();
+ goto inline$storm_IoSetCancelRoutine$0$label_18#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_18#1:
+ goto inline$storm_IoSetCancelRoutine$0$anon13_Then#1, inline$storm_IoSetCancelRoutine$0$anon13_Else#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon13_Else#1:
+ assume __storm_init;
+ goto inline$storm_IoSetCancelRoutine$0$anon8#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon13_Then#1:
+ assume !__storm_init;
+ __storm_atomic := false;
+ goto inline$storm_IoSetCancelRoutine$0$anon8#1;
+
+ inline$storm_IoSetCancelRoutine$0$anon8#1:
+ call contextSwitch();
+ goto inline$storm_IoSetCancelRoutine$0$label_21#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_21#1:
+ goto inline$storm_IoSetCancelRoutine$0$label_1#1;
+
+ inline$storm_IoSetCancelRoutine$0$label_1#1:
+ goto inline$storm_IoSetCancelRoutine$0$Return#1;
+
+ inline$storm_IoSetCancelRoutine$0$Return#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_10$1#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_10$1#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_18#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_18#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_18_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_18_false#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_18_false#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon8_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon8_Else#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon8_Else#1:
+ assume k != 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon9_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon9_Else#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon9_Else#1:
+ assume k != 1;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon5#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon9_Then#1:
+ assume k == 1;
+ inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon5#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon8_Then#1:
+ assume k == 0;
+ inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon5#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon5#1:
+ call contextSwitch();
+ assume inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 == 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_19#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_19#1:
+ inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent := 259;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_18_true#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon6_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon6_Else#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon6_Else#1:
+ assume k != 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon7_Then#1, inline$I8xKeyboardGetSysButtonEvent$0$anon7_Else#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon7_Else#1:
+ assume k != 1;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon2#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon7_Then#1:
+ assume k == 1;
+ inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon2#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon6_Then#1:
+ assume k == 0;
+ inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent)];
+ goto inline$I8xKeyboardGetSysButtonEvent$0$anon2#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$anon2#1:
+ call contextSwitch();
+ assume inline$I8xKeyboardGetSysButtonEvent$0$myVar_0 != 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_20#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_20#1:
+ call inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$ := storm_nondet();
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_23#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_23#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_23_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_23_false#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_23_false#1:
+ assume inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$ == 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_24#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_24#1:
+ call inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$173.41$4$ := storm_nondet();
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_28#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_28#1:
+ inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent := inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$173.41$4$;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_23_true#1:
+ assume inline$I8xKeyboardGetSysButtonEvent$0$$result.storm_nondet$162.31$3$ != 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_27#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_27#1:
+ inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent := 0 - 1073741536;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_9_true#1:
+ havoc inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0;
+ assume inline$I8xKeyboardGetSysButtonEvent$0$myNondetVar_0 != 0;
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_13#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_13#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_13_true#1, inline$I8xKeyboardGetSysButtonEvent$0$label_13_false#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_13_false#1:
+ assume !INT_NEQ(inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent, 259);
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_14#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_13_true#1:
+ assume INT_NEQ(inline$I8xKeyboardGetSysButtonEvent$0$$status$5$144.24$I8xKeyboardGetSysButtonEvent, 259);
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_15#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_15#1:
+ goto inline$I8xCompleteSysButtonIrp$0$Entry#1;
+
+ inline$I8xCompleteSysButtonIrp$0$Entry#1:
+ inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp_.1 := inline$I8xKeyboardGetSysButtonEvent$0$$Irp$2$140.9$I8xKeyboardGetSysButtonEvent;
+ goto inline$I8xCompleteSysButtonIrp$0$start#1;
+
+ inline$I8xCompleteSysButtonIrp$0$start#1:
+ inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp := inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp_.1;
+ goto inline$I8xCompleteSysButtonIrp$0$label_3#1;
+
+ inline$I8xCompleteSysButtonIrp$0$label_3#1:
+ goto inline$storm_IoCompleteRequest$0$Entry#1;
+
+ inline$storm_IoCompleteRequest$0$Entry#1:
+ inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest_.1 := inline$I8xCompleteSysButtonIrp$0$$Irp$1$50.9$I8xCompleteSysButtonIrp;
+ goto inline$storm_IoCompleteRequest$0$start#1;
+
+ inline$storm_IoCompleteRequest$0$start#1:
+ inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest := inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest_.1;
+ goto inline$storm_IoCompleteRequest$0$label_3#1;
+
+ inline$storm_IoCompleteRequest$0$label_3#1:
+ call inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$ := storm_nondet();
+ goto inline$storm_IoCompleteRequest$0$label_6#1;
+
+ inline$storm_IoCompleteRequest$0$label_6#1:
+ goto inline$storm_IoCompleteRequest$0$label_6_true#1, inline$storm_IoCompleteRequest$0$label_6_false#1;
+
+ inline$storm_IoCompleteRequest$0$label_6_false#1:
+ assume inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$ == 0;
+ goto inline$storm_IoCompleteRequest$0$label_7#1;
+
+ inline$storm_IoCompleteRequest$0$label_6_true#1:
+ assume inline$storm_IoCompleteRequest$0$$result.storm_nondet$343.2$1$ != 0;
+ goto inline$storm_IoCompleteRequest$0$label_8#1;
+
+ inline$storm_IoCompleteRequest$0$label_8#1:
+ assume k == 0 ==> INT_EQ(Res_0_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest], 1);
+ assume k == 1 ==> INT_EQ(Res_1_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest], 1);
+ call contextSwitch();
+ goto inline$storm_IoCompleteRequest$0$label_9#1;
+
+ inline$storm_IoCompleteRequest$0$label_9#1:
+ goto inline$storm_IoCompleteRequest$0$label_9_true#1, inline$storm_IoCompleteRequest$0$label_9_false#1;
+
+ inline$storm_IoCompleteRequest$0$label_9_false#1:
+ assume 0 == 0;
+ goto inline$storm_IoCompleteRequest$0$label_10#1;
+
+ inline$storm_IoCompleteRequest$0$label_10#1:
+ errorReached := true;
+ raiseException := true;
+ __storm_atomic := false;
+ __storm_init := false;
+ goto inline$storm_IoCompleteRequest$0$label_1#1;
+
+ inline$storm_IoCompleteRequest$0$label_9_true#1:
+ assume 0 != 0;
+ goto inline$storm_IoCompleteRequest$0$label_7#1;
+
+ inline$storm_IoCompleteRequest$0$label_7#1:
+ goto inline$storm_IoCompleteRequest$0$anon4_Then#1, inline$storm_IoCompleteRequest$0$anon4_Else#1;
+
+ inline$storm_IoCompleteRequest$0$anon4_Else#1:
+ assume k != 0;
+ goto inline$storm_IoCompleteRequest$0$anon5_Then#1, inline$storm_IoCompleteRequest$0$anon5_Else#1;
+
+ inline$storm_IoCompleteRequest$0$anon5_Else#1:
+ assume k != 1;
+ goto inline$storm_IoCompleteRequest$0$anon2#1;
+
+ inline$storm_IoCompleteRequest$0$anon5_Then#1:
+ assume k == 1;
+ Res_1_COMPLETED := Res_1_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest := 1];
+ goto inline$storm_IoCompleteRequest$0$anon2#1;
+
+ inline$storm_IoCompleteRequest$0$anon4_Then#1:
+ assume k == 0;
+ Res_0_COMPLETED := Res_0_COMPLETED[inline$storm_IoCompleteRequest$0$$pirp$1$339.10$storm_IoCompleteRequest := 1];
+ goto inline$storm_IoCompleteRequest$0$anon2#1;
+
+ inline$storm_IoCompleteRequest$0$anon2#1:
+ call contextSwitch();
+ goto inline$storm_IoCompleteRequest$0$label_1#1;
+
+ inline$storm_IoCompleteRequest$0$label_1#1:
+ goto inline$storm_IoCompleteRequest$0$Return#1;
+
+ inline$storm_IoCompleteRequest$0$Return#1:
+ goto inline$I8xCompleteSysButtonIrp$0$label_3$1#1;
+
+ inline$I8xCompleteSysButtonIrp$0$label_3$1#1:
+ goto inline$I8xCompleteSysButtonIrp$0$label_1#1;
+
+ inline$I8xCompleteSysButtonIrp$0$label_1#1:
+ goto inline$I8xCompleteSysButtonIrp$0$Return#1;
+
+ inline$I8xCompleteSysButtonIrp$0$Return#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_15$1#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_15$1#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_14#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_14#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$label_1#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$label_1#1:
+ goto inline$I8xKeyboardGetSysButtonEvent$0$Return#1;
+
+ inline$I8xKeyboardGetSysButtonEvent$0$Return#1:
+ goto inline$I8xDeviceControl$0$label_8$1#1;
+
+ inline$I8xDeviceControl$0$label_8$1#1:
+ goto inline$I8xDeviceControl$0$label_11#1;
+
+ inline$I8xDeviceControl$0$label_11#1:
+ goto inline$I8xDeviceControl$0$label_1#1;
+
+ inline$I8xDeviceControl$0$label_1#1:
+ goto inline$I8xDeviceControl$0$Return#1;
+
+ inline$I8xDeviceControl$0$Return#1:
+ goto inline$dispatch$0$label_8$1#1;
+
+ inline$dispatch$0$label_8$1#1:
+ goto inline$dispatch$0$label_11#1;
+
+ inline$dispatch$0$label_11#1:
+ goto inline$dispatch$0$label_1#1;
+
+ inline$dispatch$0$label_1#1:
+ goto inline$dispatch$0$Return#1;
+
+ inline$dispatch$0$Return#1:
+ goto label_20$1#1;
+
+ label_20$1#1:
+ goto anon14_Then#1, anon14_Else#1;
+
+ anon14_Else#1:
+ assume !(errorReached || !raiseException);
+ goto anon7#1;
+
+ anon14_Then#1:
+ assume errorReached || !raiseException;
+ __storm_thread_done_1 := true;
+ goto anon7#1;
+
+ anon7#1:
+ k := k_old_0;
+ tid := tid_old_0;
+ goto label_23#1;
+
+ label_23#1:
+ goto label_24#1;
+
+ label_24#1:
+ k_old_1 := k;
+ tid_old_1 := tid;
+ tidCount_old := tidCount;
+ havoc tidCount;
+ assume tidCount_old < tidCount;
+ tid := tidCount;
+ raiseException := false;
+ call contextSwitch();
+ goto inline$cancel$0$Entry#1;
+
+ inline$cancel$0$Entry#1:
+ inline$cancel$0$$Irp$1$64.17$cancel_.1 := $irp$1$91.7$storm_main;
+ goto inline$cancel$0$start#1;
+
+ inline$cancel$0$start#1:
+ inline$cancel$0$$Irp$1$64.17$cancel := inline$cancel$0$$Irp$1$64.17$cancel_.1;
+ goto inline$cancel$0$label_3#1;
+
+ inline$cancel$0$label_3#1:
+ goto inline$storm_IoCancelIrp$0$Entry#1;
+
+ inline$storm_IoCancelIrp$0$Entry#1:
+ inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp_.1 := inline$cancel$0$$Irp$1$64.17$cancel;
+ goto inline$storm_IoCancelIrp$0$start#1;
+
+ inline$storm_IoCancelIrp$0$start#1:
+ inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp := inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp_.1;
+ goto inline$storm_IoCancelIrp$0$label_3#1;
+
+ inline$storm_IoCancelIrp$0$label_3#1:
+ goto inline$storm_IoCancelIrp$0$label_4#1;
+
+ inline$storm_IoCancelIrp$0$label_4#1:
+ goto inline$storm_IoCancelIrp$0$anon12_Then#1, inline$storm_IoCancelIrp$0$anon12_Else#1;
+
+ inline$storm_IoCancelIrp$0$anon12_Else#1:
+ assume k != 0;
+ goto inline$storm_IoCancelIrp$0$anon13_Then#1, inline$storm_IoCancelIrp$0$anon13_Else#1;
+
+ inline$storm_IoCancelIrp$0$anon13_Else#1:
+ assume k != 1;
+ goto inline$storm_IoCancelIrp$0$anon2#1;
+
+ inline$storm_IoCancelIrp$0$anon13_Then#1:
+ assume k == 1;
+ Mem_1_T.Cancel__IRP := Mem_1_T.Cancel__IRP[Cancel__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 1];
+ goto inline$storm_IoCancelIrp$0$anon2#1;
+
+ inline$storm_IoCancelIrp$0$anon12_Then#1:
+ assume k == 0;
+ Mem_0_T.Cancel__IRP := Mem_0_T.Cancel__IRP[Cancel__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 1];
+ goto inline$storm_IoCancelIrp$0$anon2#1;
+
+ inline$storm_IoCancelIrp$0$anon2#1:
+ call contextSwitch();
+ goto inline$storm_IoCancelIrp$0$label_5#1;
+
+ inline$storm_IoCancelIrp$0$label_5#1:
+ __storm_atomic := true;
+ goto inline$storm_IoCancelIrp$0$label_8#1;
+
+ inline$storm_IoCancelIrp$0$label_8#1:
+ goto inline$storm_IoCancelIrp$0$anon14_Then#1, inline$storm_IoCancelIrp$0$anon14_Else#1;
+
+ inline$storm_IoCancelIrp$0$anon14_Else#1:
+ assume k != 0;
+ goto inline$storm_IoCancelIrp$0$anon15_Then#1, inline$storm_IoCancelIrp$0$anon15_Else#1;
+
+ inline$storm_IoCancelIrp$0$anon15_Else#1:
+ assume k != 1;
+ goto inline$storm_IoCancelIrp$0$anon5#1;
+
+ inline$storm_IoCancelIrp$0$anon15_Then#1:
+ assume k == 1;
+ inline$storm_IoCancelIrp$0$myVar_0 := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp)];
+ goto inline$storm_IoCancelIrp$0$anon5#1;
+
+ inline$storm_IoCancelIrp$0$anon14_Then#1:
+ assume k == 0;
+ inline$storm_IoCancelIrp$0$myVar_0 := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp)];
+ goto inline$storm_IoCancelIrp$0$anon5#1;
+
+ inline$storm_IoCancelIrp$0$anon5#1:
+ call contextSwitch();
+ inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp := inline$storm_IoCancelIrp$0$myVar_0;
+ goto inline$storm_IoCancelIrp$0$label_9#1;
+
+ inline$storm_IoCancelIrp$0$label_9#1:
+ goto inline$storm_IoCancelIrp$0$anon16_Then#1, inline$storm_IoCancelIrp$0$anon16_Else#1;
+
+ inline$storm_IoCancelIrp$0$anon16_Else#1:
+ assume k != 0;
+ goto inline$storm_IoCancelIrp$0$anon17_Then#1, inline$storm_IoCancelIrp$0$anon17_Else#1;
+
+ inline$storm_IoCancelIrp$0$anon17_Else#1:
+ assume k != 1;
+ goto inline$storm_IoCancelIrp$0$anon8#1;
+
+ inline$storm_IoCancelIrp$0$anon17_Then#1:
+ assume k == 1;
+ Mem_1_T.CancelRoutine__IRP := Mem_1_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 0];
+ goto inline$storm_IoCancelIrp$0$anon8#1;
+
+ inline$storm_IoCancelIrp$0$anon16_Then#1:
+ assume k == 0;
+ Mem_0_T.CancelRoutine__IRP := Mem_0_T.CancelRoutine__IRP[CancelRoutine__IRP(inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp) := 0];
+ goto inline$storm_IoCancelIrp$0$anon8#1;
+
+ inline$storm_IoCancelIrp$0$anon8#1:
+ call contextSwitch();
+ goto inline$storm_IoCancelIrp$0$label_10#1;
+
+ inline$storm_IoCancelIrp$0$label_10#1:
+ goto inline$storm_IoCancelIrp$0$anon18_Then#1, inline$storm_IoCancelIrp$0$anon18_Else#1;
+
+ inline$storm_IoCancelIrp$0$anon18_Else#1:
+ assume __storm_init;
+ goto inline$storm_IoCancelIrp$0$anon10#1;
+
+ inline$storm_IoCancelIrp$0$anon18_Then#1:
+ assume !__storm_init;
+ __storm_atomic := false;
+ goto inline$storm_IoCancelIrp$0$anon10#1;
+
+ inline$storm_IoCancelIrp$0$anon10#1:
+ call contextSwitch();
+ goto inline$storm_IoCancelIrp$0$label_13#1;
+
+ inline$storm_IoCancelIrp$0$label_13#1:
+ havoc inline$storm_IoCancelIrp$0$myNondetVar_0;
+ havoc inline$storm_IoCancelIrp$0$myNondetVar_1;
+ assume inline$storm_IoCancelIrp$0$myNondetVar_0 == inline$storm_IoCancelIrp$0$myNondetVar_1;
+ goto inline$storm_IoAcquireCancelSpinLock$0$Entry#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$Entry#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$start#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$start#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_3#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_3#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_4#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_4#1:
+ goto inline$storm_getThreadID$0$Entry#1;
+
+ inline$storm_getThreadID$0$Entry#1:
+ goto inline$storm_getThreadID$0$anon0#1;
+
+ inline$storm_getThreadID$0$anon0#1:
+ inline$storm_getThreadID$0$tidRet := tid;
+ goto inline$storm_getThreadID$0$Return#1;
+
+ inline$storm_getThreadID$0$Return#1:
+ inline$storm_IoAcquireCancelSpinLock$0$$result.storm_getThreadID$185.29$1$ := inline$storm_getThreadID$0$tidRet;
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_4$1#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_4$1#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_7#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_7#1:
+ inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock := inline$storm_IoAcquireCancelSpinLock$0$$result.storm_getThreadID$185.29$1$;
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_8#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_8#1:
+ __storm_atomic := true;
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_11#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_11#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_11_true#1, inline$storm_IoAcquireCancelSpinLock$0$label_11_false#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_11_false#1:
+ assume k == 0 ==> !INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_0);
+ assume k == 1 ==> !INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_1);
+ call contextSwitch();
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_12#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_12#1:
+ errorReached := true;
+ raiseException := true;
+ __storm_atomic := false;
+ __storm_init := false;
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_1#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_11_true#1:
+ assume k == 0 ==> INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_0);
+ assume k == 1 ==> INT_NEQ(inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock, cancelLockStatus_1);
+ call contextSwitch();
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_15#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_15#1:
+ assume k == 0 ==> INT_EQ(cancelLockStatus_0, 0);
+ assume k == 1 ==> INT_EQ(cancelLockStatus_1, 0);
+ call contextSwitch();
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_16#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_16#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon6_Then#1, inline$storm_IoAcquireCancelSpinLock$0$anon6_Else#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon6_Else#1:
+ assume k != 0;
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon7_Then#1, inline$storm_IoAcquireCancelSpinLock$0$anon7_Else#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon7_Else#1:
+ assume k != 1;
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon3#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon7_Then#1:
+ assume k == 1;
+ cancelLockStatus_1 := inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock;
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon3#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon6_Then#1:
+ assume k == 0;
+ cancelLockStatus_0 := inline$storm_IoAcquireCancelSpinLock$0$$tid$2$185.6$storm_IoAcquireCancelSpinLock;
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon3#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon3#1:
+ call contextSwitch();
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_17#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_17#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon8_Then#1, inline$storm_IoAcquireCancelSpinLock$0$anon8_Else#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon8_Else#1:
+ assume __storm_init;
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon5#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon8_Then#1:
+ assume !__storm_init;
+ __storm_atomic := false;
+ goto inline$storm_IoAcquireCancelSpinLock$0$anon5#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$anon5#1:
+ call contextSwitch();
+ goto inline$storm_IoAcquireCancelSpinLock$0$label_1#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$label_1#1:
+ goto inline$storm_IoAcquireCancelSpinLock$0$Return#1;
+
+ inline$storm_IoAcquireCancelSpinLock$0$Return#1:
+ goto inline$storm_IoCancelIrp$0$label_13$1#1;
+
+ inline$storm_IoCancelIrp$0$label_13$1#1:
+ havoc inline$storm_IoCancelIrp$0$myNondetVar_0;
+ goto inline$storm_IoCancelIrp$0$label_16#1;
+
+ inline$storm_IoCancelIrp$0$label_16#1:
+ goto inline$storm_IoCancelIrp$0$label_16_true#1, inline$storm_IoCancelIrp$0$label_16_false#1;
+
+ inline$storm_IoCancelIrp$0$label_16_false#1:
+ assume inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp == 0;
+ goto inline$storm_IoCancelIrp$0$label_17#1;
+
+ inline$storm_IoCancelIrp$0$label_17#1:
+ goto inline$storm_IoCancelIrp$0$label_1#1;
+
+ inline$storm_IoCancelIrp$0$label_16_true#1:
+ assume inline$storm_IoCancelIrp$0$$oldCancelRoutine$2$352.17$storm_IoCancelIrp != 0;
+ goto inline$storm_IoCancelIrp$0$label_18#1;
+
+ inline$storm_IoCancelIrp$0$label_18#1:
+ goto inline$storm_IoCancelIrp$0$label_19#1;
+
+ inline$storm_IoCancelIrp$0$label_19#1:
+ call inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$ := storm_nondet();
+ goto inline$storm_IoCancelIrp$0$label_22#1;
+
+ inline$storm_IoCancelIrp$0$label_22#1:
+ goto inline$storm_IoCancelIrp$0$label_22_true#1, inline$storm_IoCancelIrp$0$label_22_false#1;
+
+ inline$storm_IoCancelIrp$0$label_22_false#1:
+ assume inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$ == 0;
+ goto inline$storm_IoCancelIrp$0$label_23#1;
+
+ inline$storm_IoCancelIrp$0$label_22_true#1:
+ assume inline$storm_IoCancelIrp$0$$result.storm_nondet$365.4$2$ != 0;
+ goto inline$storm_IoCancelIrp$0$label_24#1;
+
+ inline$storm_IoCancelIrp$0$label_24#1:
+ assume k == 0 ==> INT_EQ(Res_0_COMPLETED[inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp], 1);
+ assume k == 1 ==> INT_EQ(Res_1_COMPLETED[inline$storm_IoCancelIrp$0$$Irp$1$349.10$storm_IoCancelIrp], 1);
+ call contextSwitch();
+ goto inline$storm_IoCancelIrp$0$label_25#1;
+
+ inline$storm_IoCancelIrp$0$label_25#1:
+ goto inline$storm_IoCancelIrp$0$label_25_true#1, inline$storm_IoCancelIrp$0$label_25_false#1;
+
+ inline$storm_IoCancelIrp$0$label_25_false#1:
+ assume 0 == 0;
+ goto inline$storm_IoCancelIrp$0$label_26#1;
+
+ inline$storm_IoCancelIrp$0$label_26#1:
+ errorReached := true;
+ raiseException := true;
+ __storm_atomic := false;
+ __storm_init := false;
+ goto inline$storm_IoCancelIrp$0$label_1#1;
+
+ inline$storm_IoCancelIrp$0$label_25_true#1:
+ assume 0 != 0;
+ goto inline$storm_IoCancelIrp$0$label_23#1;
+
+ inline$storm_IoCancelIrp$0$label_23#1:
+ goto inline$storm_IoCancelIrp$0$label_1#1;
+
+ inline$storm_IoCancelIrp$0$label_1#1:
+ goto inline$storm_IoCancelIrp$0$Return#1;
+
+ inline$storm_IoCancelIrp$0$Return#1:
+ goto inline$cancel$0$label_3$1#1;
+
+ inline$cancel$0$label_3$1#1:
+ goto inline$cancel$0$label_1#1;
+
+ inline$cancel$0$label_1#1:
+ goto inline$cancel$0$Return#1;
+
+ inline$cancel$0$Return#1:
+ goto label_24$1#1;
+
+ label_24$1#1:
+ goto anon15_Then#1, anon15_Else#1;
+
+ anon15_Else#1:
+ assume !(errorReached || !raiseException);
+ goto anon9#1;
+
+ anon15_Then#1:
+ assume errorReached || !raiseException;
+ __storm_thread_done_2 := true;
+ goto anon9#1;
+
+ anon9#1:
+ k := k_old_1;
+ tid := tid_old_1;
+ goto label_1#1;
+
+ label_1#1:
+ assume Mem_0_T.CancelRoutine__IRP == Mem_s_1_T.CancelRoutine__IRP;
+ assume Mem_0_T.Cancel__IRP == Mem_s_1_T.Cancel__IRP;
+ assume Mem_0_T.CurrentStackLocation___unnamed_4_3c640f23 == Mem_s_1_T.CurrentStackLocation___unnamed_4_3c640f23;
+ assume Mem_0_T.DeviceExtension__DEVICE_OBJECT == Mem_s_1_T.DeviceExtension__DEVICE_OBJECT;
+ assume Mem_0_T.DeviceObject__IO_STACK_LOCATION == Mem_s_1_T.DeviceObject__IO_STACK_LOCATION;
+ assume cancelLockStatus_0 == cancelLockStatus_s_1;
+ assume Res_0_COMPLETED == Res_s_1_COMPLETED;
+ assume Res_0_LOCK == Res_s_1_LOCK;
+ assert !errorReached;
+ return;
+}
+
+
+