	.file	"520630.c"
	.intel_syntax noprefix
	.text
	.globl	s
	.bss
	.align 4
	.type	s, @object
	.size	s, 4
s:
	.zero	4
	.globl	UNLOADED
	.align 4
	.type	UNLOADED, @object
	.size	UNLOADED, 4
UNLOADED:
	.zero	4
	.globl	NP
	.align 4
	.type	NP, @object
	.size	NP, 4
NP:
	.zero	4
	.globl	DC
	.align 4
	.type	DC, @object
	.size	DC, 4
DC:
	.zero	4
	.globl	SKIP1
	.align 4
	.type	SKIP1, @object
	.size	SKIP1, 4
SKIP1:
	.zero	4
	.globl	SKIP2
	.align 4
	.type	SKIP2, @object
	.size	SKIP2, 4
SKIP2:
	.zero	4
	.globl	MPR1
	.align 4
	.type	MPR1, @object
	.size	MPR1, 4
MPR1:
	.zero	4
	.globl	MPR3
	.align 4
	.type	MPR3, @object
	.size	MPR3, 4
MPR3:
	.zero	4
	.globl	IPC
	.align 4
	.type	IPC, @object
	.size	IPC, 4
IPC:
	.zero	4
	.globl	pended
	.align 4
	.type	pended, @object
	.size	pended, 4
pended:
	.zero	4
	.globl	compFptr
	.align 4
	.type	compFptr, @object
	.size	compFptr, 4
compFptr:
	.zero	4
	.globl	compRegistered
	.align 4
	.type	compRegistered, @object
	.size	compRegistered, 4
compRegistered:
	.zero	4
	.globl	lowerDriverReturn
	.align 4
	.type	lowerDriverReturn, @object
	.size	lowerDriverReturn, 4
lowerDriverReturn:
	.zero	4
	.globl	setEventCalled
	.align 4
	.type	setEventCalled, @object
	.size	setEventCalled, 4
setEventCalled:
	.zero	4
	.globl	customIrp
	.align 4
	.type	customIrp, @object
	.size	customIrp, 4
customIrp:
	.zero	4
	.globl	myStatus
	.align 4
	.type	myStatus, @object
	.size	myStatus, 4
myStatus:
	.zero	4
	.globl	routine
	.align 4
	.type	routine, @object
	.size	routine, 4
routine:
	.zero	4
	.globl	pirp
	.align 4
	.type	pirp, @object
	.size	pirp, 4
pirp:
	.zero	4
	.globl	Executive
	.align 4
	.type	Executive, @object
	.size	Executive, 4
Executive:
	.zero	4
	.globl	KernelMode
	.align 4
	.type	KernelMode, @object
	.size	KernelMode, 4
KernelMode:
	.zero	4
	.text
	.globl	errorFn
	.type	errorFn, @function
errorFn:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
.L2:
	mov	eax, 0
	call	__VERIFIER_error@PLT
	.cfi_endproc
.LFE0:
	.size	errorFn, .-errorFn
	.globl	_BLAST_init
	.type	_BLAST_init, @function
_BLAST_init:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR UNLOADED[rip], 0
	mov	DWORD PTR NP[rip], 1
	mov	DWORD PTR DC[rip], 2
	mov	DWORD PTR SKIP1[rip], 3
	mov	DWORD PTR SKIP2[rip], 4
	mov	DWORD PTR MPR1[rip], 5
	mov	DWORD PTR MPR3[rip], 6
	mov	DWORD PTR IPC[rip], 7
	mov	eax, DWORD PTR UNLOADED[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR pended[rip], 0
	mov	DWORD PTR compFptr[rip], 0
	mov	DWORD PTR compRegistered[rip], 0
	mov	DWORD PTR lowerDriverReturn[rip], 0
	mov	DWORD PTR setEventCalled[rip], 0
	mov	DWORD PTR customIrp[rip], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	_BLAST_init, .-_BLAST_init
	.globl	DiskPerfSyncFilterWithTarget
	.type	DiskPerfSyncFilterWithTarget, @function
DiskPerfSyncFilterWithTarget:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	DiskPerfSyncFilterWithTarget, .-DiskPerfSyncFilterWithTarget
	.globl	DiskPerfDispatchPnp
	.type	DiskPerfDispatchPnp, @function
DiskPerfDispatchPnp:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L17
	cmp	DWORD PTR -12[rbp], 2
	jne	.L18
	jmp	.L16
.L17:
	nop
.L9:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfStartDevice
	mov	DWORD PTR -20[rbp], eax
	jmp	.L13
.L16:
.L11:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfRemoveDevice
	mov	DWORD PTR -20[rbp], eax
	jmp	.L13
.L18:
	nop
.L12:
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfSendToNextDriver
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L14
.L13:
	mov	eax, DWORD PTR -20[rbp]
.L14:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	DiskPerfDispatchPnp, .-DiskPerfDispatchPnp
	.globl	DiskPerfIrpCompletion
	.type	DiskPerfIrpCompletion, @function
DiskPerfIrpCompletion:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	edi, eax
	call	KeSetEvent
	mov	eax, -1073741802
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	DiskPerfIrpCompletion, .-DiskPerfIrpCompletion
	.globl	DiskPerfStartDevice
	.type	DiskPerfStartDevice, @function
DiskPerfStartDevice:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfForwardIrpSynchronous
	mov	DWORD PTR -8[rbp], eax
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfSyncFilterWithTarget
	mov	eax, DWORD PTR -36[rbp]
	mov	edi, eax
	call	DiskPerfRegisterDevice
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	mov	eax, DWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	DiskPerfStartDevice, .-DiskPerfStartDevice
	.globl	DiskPerfRemoveDevice
	.type	DiskPerfRemoveDevice, @function
DiskPerfRemoveDevice:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfForwardIrpSynchronous
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	mov	eax, DWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	DiskPerfRemoveDevice, .-DiskPerfRemoveDevice
	.globl	DiskPerfSendToNextDriver
	.type	DiskPerfSendToNextDriver, @function
DiskPerfSendToNextDriver:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L26
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L27
.L26:
	call	errorFn
.L27:
	add	DWORD PTR -24[rbp], 1
	add	DWORD PTR -20[rbp], 1
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	DiskPerfSendToNextDriver, .-DiskPerfSendToNextDriver
	.globl	DiskPerfDispatchPower
	.type	DiskPerfDispatchPower, @function
DiskPerfDispatchPower:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L30
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L31
.L30:
	call	errorFn
.L31:
	add	DWORD PTR -24[rbp], 1
	add	DWORD PTR -20[rbp], 1
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, edx
	mov	edi, eax
	call	PoCallDriver
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	DiskPerfDispatchPower, .-DiskPerfDispatchPower
	.globl	DiskPerfForwardIrpSynchronous
	.type	DiskPerfForwardIrpSynchronous, @function
DiskPerfForwardIrpSynchronous:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -68[rbp], edi
	mov	DWORD PTR -72[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -52[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -48[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -44[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -24[rbp], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	je	.L34
	call	errorFn
	jmp	.L35
.L34:
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L36
	call	errorFn
	jmp	.L35
.L36:
	mov	DWORD PTR compRegistered[rip], 1
	mov	DWORD PTR routine[rip], 0
.L35:
	mov	eax, DWORD PTR -52[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	DWORD PTR -12[rbp], 224
	mov	edx, DWORD PTR -72[rbp]
	mov	eax, DWORD PTR -44[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L37
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -40[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	eax, DWORD PTR myStatus[rip]
	mov	DWORD PTR -56[rbp], eax
.L37:
	mov	eax, DWORD PTR -56[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	DiskPerfForwardIrpSynchronous, .-DiskPerfForwardIrpSynchronous
	.globl	DiskPerfCreate
	.type	DiskPerfCreate, @function
DiskPerfCreate:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR myStatus[rip], 0
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	DiskPerfCreate, .-DiskPerfCreate
	.globl	DiskPerfIoCompletion
	.type	DiskPerfIoCompletion, @function
DiskPerfIoCompletion:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -68[rbp], edi
	mov	DWORD PTR -72[rbp], esi
	mov	DWORD PTR -76[rbp], edx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -56[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -52[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -48[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -44[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -40[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -36[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -32[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -28[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	jne	.L42
	mov	eax, 0
	jmp	.L43
.L42:
	cmp	DWORD PTR -56[rbp], 3
	jne	.L44
	mov	eax, DWORD PTR -48[rbp]
	add	DWORD PTR -52[rbp], eax
	add	DWORD PTR -44[rbp], 1
	mov	eax, DWORD PTR -36[rbp]
	add	DWORD PTR -40[rbp], eax
	jmp	.L45
.L44:
	mov	eax, DWORD PTR -48[rbp]
	add	DWORD PTR -32[rbp], eax
	add	DWORD PTR -28[rbp], 1
	mov	eax, DWORD PTR -36[rbp]
	add	DWORD PTR -24[rbp], eax
.L45:
	cmp	DWORD PTR -20[rbp], 8
	je	.L46
	add	DWORD PTR -16[rbp], 1
.L46:
	cmp	DWORD PTR -12[rbp], 0
	je	.L47
	mov	eax, DWORD PTR pended[rip]
	test	eax, eax
	jne	.L48
	mov	DWORD PTR pended[rip], 1
	jmp	.L47
.L48:
	call	errorFn
.L47:
	mov	eax, 0
.L43:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	DiskPerfIoCompletion, .-DiskPerfIoCompletion
	.globl	DiskPerfDeviceControl
	.type	DiskPerfDeviceControl, @function
DiskPerfDeviceControl:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	DWORD PTR -100[rbp], edi
	mov	DWORD PTR -104[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -88[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -84[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -80[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -76[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -72[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -68[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -64[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -60[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -56[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -52[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	DWORD PTR -36[rbp], 32
	mov	DWORD PTR -32[rbp], 458752
	mov	DWORD PTR -28[rbp], 458784
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	jne	.L50
	mov	eax, DWORD PTR -68[rbp]
	cmp	eax, DWORD PTR -64[rbp]
	jge	.L51
	mov	DWORD PTR -96[rbp], -1073741789
	mov	DWORD PTR -8[rbp], 0
	jmp	.L52
.L51:
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L53
	mov	DWORD PTR -4[rbp], -1073741823
	mov	DWORD PTR myStatus[rip], -1073741823
	mov	eax, DWORD PTR -104[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	mov	eax, -1073741823
	jmp	.L54
.L53:
	mov	eax, DWORD PTR -56[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	DWORD PTR -92[rbp], 0
.L55:
	mov	eax, DWORD PTR -92[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	jge	.L59
	add	DWORD PTR -92[rbp], 1
	jmp	.L55
.L59:
	nop
.L57:
	mov	eax, DWORD PTR -48[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	DWORD PTR -96[rbp], 0
	mov	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR -8[rbp], eax
.L52:
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	eax, DWORD PTR -104[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	mov	eax, DWORD PTR -96[rbp]
	jmp	.L54
.L50:
	add	DWORD PTR -88[rbp], 1
	add	DWORD PTR -84[rbp], 1
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -76[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
.L54:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	DiskPerfDeviceControl, .-DiskPerfDeviceControl
	.globl	DiskPerfShutdownFlush
	.type	DiskPerfShutdownFlush, @function
DiskPerfShutdownFlush:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -8[rbp], eax
	add	DWORD PTR -20[rbp], 1
	add	DWORD PTR -16[rbp], 1
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	DiskPerfShutdownFlush, .-DiskPerfShutdownFlush
	.globl	DiskPerfUnload
	.type	DiskPerfUnload, @function
DiskPerfUnload:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	DiskPerfUnload, .-DiskPerfUnload
	.globl	DiskPerfRegisterDevice
	.type	DiskPerfRegisterDevice, @function
DiskPerfRegisterDevice:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	DWORD PTR -164[rbp], edi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -156[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -152[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -148[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -144[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -140[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -136[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -132[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -128[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -124[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -120[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -116[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -112[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -108[rbp], eax
	mov	DWORD PTR -104[rbp], 0
	mov	eax, DWORD PTR -156[rbp]
	mov	DWORD PTR -100[rbp], eax
	mov	DWORD PTR -96[rbp], 4224
	mov	DWORD PTR -92[rbp], 2949120
	mov	DWORD PTR -88[rbp], 2953344
	mov	edi, DWORD PTR -148[rbp]
	mov	ecx, DWORD PTR -124[rbp]
	mov	esi, DWORD PTR -152[rbp]
	mov	eax, DWORD PTR -88[rbp]
	sub	rsp, 8
	mov	edx, DWORD PTR -132[rbp]
	push	rdx
	mov	edx, DWORD PTR -128[rbp]
	push	rdx
	push	0
	mov	r9d, edi
	mov	r8d, ecx
	mov	ecx, 0
	mov	edx, 0
	mov	edi, eax
	call	IoBuildDeviceIoControlRequest
	add	rsp, 32
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L65
	mov	eax, -1073741670
	jmp	.L66
.L65:
	mov	edx, DWORD PTR -84[rbp]
	mov	eax, DWORD PTR -152[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	QWORD PTR -40[rbp], rax
	cmp	QWORD PTR -40[rbp], 259
	jne	.L67
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -128[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	eax, DWORD PTR -144[rbp]
	mov	DWORD PTR -160[rbp], eax
.L67:
	cmp	DWORD PTR -160[rbp], 0
	jns	.L68
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -112[rbp], 0
	jne	.L69
	mov	eax, -1073741670
	jmp	.L66
.L69:
	mov	DWORD PTR -76[rbp], 8
	mov	DWORD PTR -72[rbp], 5046272
	mov	DWORD PTR -68[rbp], 5046280
	mov	edi, DWORD PTR -80[rbp]
	mov	ecx, DWORD PTR -112[rbp]
	mov	esi, DWORD PTR -152[rbp]
	mov	eax, DWORD PTR -68[rbp]
	sub	rsp, 8
	mov	edx, DWORD PTR -132[rbp]
	push	rdx
	mov	edx, DWORD PTR -128[rbp]
	push	rdx
	push	0
	mov	r9d, edi
	mov	r8d, ecx
	mov	ecx, 0
	mov	edx, 0
	mov	edi, eax
	call	IoBuildDeviceIoControlRequest
	add	rsp, 32
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L70
	mov	eax, -1073741670
	jmp	.L66
.L70:
	mov	edx, DWORD PTR -84[rbp]
	mov	eax, DWORD PTR -152[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	QWORD PTR -32[rbp], rax
	cmp	QWORD PTR -32[rbp], 259
	jne	.L71
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -128[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	eax, DWORD PTR -144[rbp]
	mov	DWORD PTR -160[rbp], eax
.L71:
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], -2147483643
	jne	.L72
	mov	edx, DWORD PTR -120[rbp]
	mov	eax, DWORD PTR -116[rbp]
	add	eax, edx
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -112[rbp], 0
	jne	.L73
	mov	eax, -1073741670
	jmp	.L66
.L73:
	mov	DWORD PTR -64[rbp], 8
	mov	DWORD PTR -60[rbp], 5046272
	mov	DWORD PTR -56[rbp], 5046280
	mov	edi, DWORD PTR -80[rbp]
	mov	ecx, DWORD PTR -112[rbp]
	mov	esi, DWORD PTR -152[rbp]
	mov	eax, DWORD PTR -56[rbp]
	sub	rsp, 8
	mov	edx, DWORD PTR -132[rbp]
	push	rdx
	mov	edx, DWORD PTR -128[rbp]
	push	rdx
	push	0
	mov	r9d, edi
	mov	r8d, ecx
	mov	ecx, 0
	mov	edx, 0
	mov	edi, eax
	call	IoBuildDeviceIoControlRequest
	add	rsp, 32
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L74
	mov	eax, -1073741670
	jmp	.L66
.L74:
	mov	edx, DWORD PTR -84[rbp]
	mov	eax, DWORD PTR -152[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 259
	jne	.L72
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -128[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	eax, DWORD PTR -144[rbp]
	mov	DWORD PTR -160[rbp], eax
.L72:
	cmp	DWORD PTR -160[rbp], 0
	jns	.L75
	mov	eax, DWORD PTR -160[rbp]
	jmp	.L66
.L75:
	mov	DWORD PTR -52[rbp], 28
	mov	DWORD PTR -48[rbp], 5636096
	mov	DWORD PTR -44[rbp], 5636124
	mov	edi, DWORD PTR -140[rbp]
	mov	ecx, DWORD PTR -108[rbp]
	mov	esi, DWORD PTR -152[rbp]
	mov	eax, DWORD PTR -44[rbp]
	sub	rsp, 8
	mov	edx, DWORD PTR -132[rbp]
	push	rdx
	mov	edx, DWORD PTR -128[rbp]
	push	rdx
	push	0
	mov	r9d, edi
	mov	r8d, ecx
	mov	ecx, 0
	mov	edx, 0
	mov	edi, eax
	call	IoBuildDeviceIoControlRequest
	add	rsp, 32
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	jne	.L76
	mov	eax, -1073741670
	jmp	.L66
.L76:
	mov	edx, DWORD PTR -84[rbp]
	mov	eax, DWORD PTR -152[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L77
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -128[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	eax, DWORD PTR -144[rbp]
	mov	DWORD PTR -160[rbp], eax
.L77:
	cmp	DWORD PTR -160[rbp], 0
	js	.L80
	cmp	DWORD PTR -136[rbp], 0
	jmp	.L68
.L79:
.L80:
	nop
.L68:
	mov	eax, DWORD PTR -160[rbp]
.L66:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	DiskPerfRegisterDevice, .-DiskPerfRegisterDevice
	.globl	stub_driver_init
	.type	stub_driver_init, @function
stub_driver_init:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR customIrp[rip], 0
	mov	eax, DWORD PTR customIrp[rip]
	mov	DWORD PTR setEventCalled[rip], eax
	mov	eax, DWORD PTR setEventCalled[rip]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	mov	eax, DWORD PTR lowerDriverReturn[rip]
	mov	DWORD PTR compRegistered[rip], eax
	mov	eax, DWORD PTR compRegistered[rip]
	mov	DWORD PTR compFptr[rip], eax
	mov	eax, DWORD PTR compFptr[rip]
	mov	DWORD PTR pended[rip], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	stub_driver_init, .-stub_driver_init
	.globl	main
	.type	main, @function
main:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -44[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -48[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -40[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -36[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -32[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR s[rip], 0
	mov	DWORD PTR UNLOADED[rip], 0
	mov	DWORD PTR NP[rip], 0
	mov	DWORD PTR DC[rip], 0
	mov	DWORD PTR SKIP1[rip], 0
	mov	DWORD PTR SKIP2[rip], 0
	mov	DWORD PTR MPR1[rip], 0
	mov	DWORD PTR MPR3[rip], 0
	mov	DWORD PTR IPC[rip], 0
	mov	DWORD PTR pended[rip], 0
	mov	DWORD PTR compFptr[rip], 0
	mov	DWORD PTR compRegistered[rip], 0
	mov	DWORD PTR lowerDriverReturn[rip], 0
	mov	DWORD PTR setEventCalled[rip], 0
	mov	DWORD PTR customIrp[rip], 0
	mov	DWORD PTR myStatus[rip], 0
	mov	DWORD PTR routine[rip], 0
	mov	DWORD PTR pirp[rip], 0
	mov	DWORD PTR Executive[rip], 0
	mov	DWORD PTR KernelMode[rip], 0
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR pirp[rip], eax
	call	_BLAST_init
	cmp	DWORD PTR -48[rbp], 0
	js	.L84
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR customIrp[rip], 0
	mov	eax, DWORD PTR customIrp[rip]
	mov	DWORD PTR setEventCalled[rip], eax
	mov	eax, DWORD PTR setEventCalled[rip]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	mov	eax, DWORD PTR lowerDriverReturn[rip]
	mov	DWORD PTR compRegistered[rip], eax
	mov	eax, DWORD PTR compRegistered[rip]
	mov	DWORD PTR compFptr[rip], eax
	mov	eax, DWORD PTR compFptr[rip]
	mov	DWORD PTR pended[rip], eax
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	cmp	DWORD PTR -32[rbp], 0
	jne	.L85
	mov	DWORD PTR -24[rbp], -1073741637
	mov	DWORD PTR myStatus[rip], -1073741637
.L85:
	call	stub_driver_init
	cmp	DWORD PTR -48[rbp], 0
	jns	.L86
	mov	eax, -1
	jmp	.L87
.L86:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	je	.L115
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 2
	je	.L116
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 3
	je	.L117
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 4
	je	.L118
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 12
	jne	.L119
	jmp	.L114
.L115:
	nop
.L89:
	mov	edx, DWORD PTR pirp[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfCreate
	mov	DWORD PTR -48[rbp], eax
	jmp	.L99
.L116:
	nop
.L91:
	mov	edx, DWORD PTR pirp[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfDeviceControl
	mov	DWORD PTR -48[rbp], eax
	jmp	.L99
.L117:
	nop
.L93:
	mov	edx, DWORD PTR pirp[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfDispatchPnp
	mov	DWORD PTR -48[rbp], eax
	jmp	.L99
.L118:
	nop
.L95:
	mov	edx, DWORD PTR pirp[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfDispatchPower
	mov	DWORD PTR -48[rbp], eax
	jmp	.L99
.L114:
.L97:
	mov	edx, DWORD PTR pirp[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	esi, edx
	mov	edi, eax
	call	DiskPerfShutdownFlush
	mov	DWORD PTR -48[rbp], eax
	jmp	.L99
.L119:
	nop
.L98:
	mov	eax, -1
	jmp	.L87
.L99:
	cmp	DWORD PTR -40[rbp], 0
	je	.L84
	mov	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	DiskPerfUnload
.L84:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L120
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L121
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L102
.L120:
	nop
	jmp	.L100
.L121:
	nop
.L100:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L122
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L123
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L102
.L122:
	nop
	jmp	.L103
.L123:
	nop
.L103:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR UNLOADED[rip]
	cmp	edx, eax
	je	.L102
	cmp	DWORD PTR -48[rbp], -1
	je	.L102
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP2[rip]
	cmp	edx, eax
	je	.L124
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR IPC[rip]
	cmp	edx, eax
	je	.L125
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	je	.L126
	call	errorFn
	jmp	.L102
.L124:
	nop
	jmp	.L105
.L125:
	nop
	jmp	.L105
.L126:
	nop
.L105:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L108
	cmp	DWORD PTR -48[rbp], 259
	je	.L102
	call	errorFn
	jmp	.L102
.L108:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	jne	.L109
	cmp	DWORD PTR -48[rbp], 259
	jne	.L102
	call	errorFn
	jmp	.L102
.L109:
	mov	eax, DWORD PTR lowerDriverReturn[rip]
	cmp	DWORD PTR -48[rbp], eax
	je	.L102
	call	errorFn
.L102:
	mov	eax, DWORD PTR -48[rbp]
.L87:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	main, .-main
	.globl	IoBuildDeviceIoControlRequest
	.type	IoBuildDeviceIoControlRequest, @function
IoBuildDeviceIoControlRequest:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	DWORD PTR -40[rbp], r9d
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	DWORD PTR customIrp[rip], 1
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L132
	nop
.L129:
	mov	eax, DWORD PTR -8[rbp]
	jmp	.L131
.L132:
	nop
.L130:
	mov	eax, 0
.L131:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	IoBuildDeviceIoControlRequest, .-IoBuildDeviceIoControlRequest
	.globl	stubMoreProcessingRequired
	.type	stubMoreProcessingRequired, @function
stubMoreProcessingRequired:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L134
	mov	eax, DWORD PTR MPR1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L133
.L134:
	call	errorFn
	nop
.L133:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	stubMoreProcessingRequired, .-stubMoreProcessingRequired
	.globl	IofCallDriver
	.type	IofCallDriver, @function
IofCallDriver:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L138
	mov	eax, DWORD PTR routine[rip]
	test	eax, eax
	jne	.L139
	mov	edx, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	DiskPerfIrpCompletion
	mov	DWORD PTR -24[rbp], eax
	jmp	.L140
.L139:
	mov	edx, DWORD PTR -20[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	DiskPerfIoCompletion
	mov	DWORD PTR -24[rbp], eax
.L140:
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], -1073741802
	jne	.L138
	call	stubMoreProcessingRequired
.L138:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L155
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 1
	jne	.L156
	jmp	.L154
.L155:
	nop
.L142:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L146
.L154:
.L144:
	mov	DWORD PTR -28[rbp], -1073741823
	jmp	.L146
.L156:
	nop
.L145:
	mov	DWORD PTR -28[rbp], 259
	nop
.L146:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L147
	mov	eax, DWORD PTR IPC[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L148
.L147:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR1[rip]
	cmp	edx, eax
	jne	.L149
	cmp	DWORD PTR -28[rbp], 259
	jne	.L150
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L148
.L150:
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L148
.L149:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP1[rip]
	cmp	edx, eax
	jne	.L151
	mov	eax, DWORD PTR SKIP2[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L148
.L151:
	call	errorFn
.L148:
	mov	eax, DWORD PTR -28[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	IofCallDriver, .-IofCallDriver
	.globl	IofCompleteRequest
	.type	IofCompleteRequest, @function
IofCompleteRequest:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L158
	mov	eax, DWORD PTR DC[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L157
.L158:
	call	errorFn
	nop
.L157:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	IofCompleteRequest, .-IofCompleteRequest
	.globl	KeSetEvent
	.type	KeSetEvent, @function
KeSetEvent:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR setEventCalled[rip], 1
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	KeSetEvent, .-KeSetEvent
	.globl	KeWaitForSingleObject
	.type	KeWaitForSingleObject, @function
KeWaitForSingleObject:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L172
	mov	eax, DWORD PTR setEventCalled[rip]
	cmp	eax, 1
	jne	.L173
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR setEventCalled[rip], 0
	jmp	.L166
.L172:
	nop
	jmp	.L164
.L173:
	nop
.L164:
	mov	eax, DWORD PTR customIrp[rip]
	cmp	eax, 1
	jne	.L167
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR customIrp[rip], 0
	jmp	.L166
.L167:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L166
	call	errorFn
.L166:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L174
	nop
.L169:
	mov	eax, 0
	jmp	.L171
.L174:
	nop
.L170:
	mov	eax, -1073741823
.L171:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.globl	PoCallDriver
	.type	PoCallDriver, @function
PoCallDriver:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	DWORD PTR -56[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L176
	mov	eax, DWORD PTR routine[rip]
	test	eax, eax
	jne	.L177
	mov	edx, DWORD PTR -28[rbp]
	mov	ecx, DWORD PTR -56[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	DiskPerfIrpCompletion
	mov	DWORD PTR -36[rbp], eax
	jmp	.L178
.L177:
	mov	eax, DWORD PTR routine[rip]
	cmp	eax, 1
	jne	.L178
	mov	edx, DWORD PTR -28[rbp]
	mov	ecx, DWORD PTR -56[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	DiskPerfIoCompletion
	mov	DWORD PTR -36[rbp], eax
.L178:
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], -1073741802
	jne	.L176
	call	stubMoreProcessingRequired
.L176:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	je	.L193
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 1
	jne	.L194
	jmp	.L192
.L193:
	nop
.L180:
	mov	DWORD PTR -32[rbp], 0
	jmp	.L184
.L192:
.L182:
	mov	DWORD PTR -32[rbp], -1073741823
	jmp	.L184
.L194:
	nop
.L183:
	mov	DWORD PTR -32[rbp], 259
	nop
.L184:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L185
	mov	eax, DWORD PTR IPC[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L186
.L185:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR1[rip]
	cmp	edx, eax
	jne	.L187
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L188
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L186
.L188:
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L186
.L187:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP1[rip]
	cmp	edx, eax
	jne	.L189
	mov	eax, DWORD PTR SKIP2[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L186
.L189:
	call	errorFn
.L186:
	mov	eax, DWORD PTR -32[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	PoCallDriver, .-PoCallDriver
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"520630.c"
	.text
	.comm	s,4,4
	.comm	UNLOADED,4,4
	.comm	NP,4,4
	.comm	DC,4,4
	.comm	SKIP1,4,4
	.comm	SKIP2,4,4
	.comm	MPR1,4,4
	.comm	MPR3,4,4
	.comm	IPC,4,4
	.comm	pended,4,4
	.comm	compFptr,4,4
	.comm	compRegistered,4,4
	.comm	lowerDriverReturn,4,4
	.comm	setEventCalled,4,4
	.comm	customIrp,4,4
	.comm	myStatus,4,4
	.comm	routine,4,4
	.comm	pirp,4,4
	.comm	Executive,4,4
	.comm	KernelMode,4,4
	.align	2
	.global	errorFn
	.syntax unified
	.arm
	.fpu softvfp
	.type	errorFn, %function
errorFn:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
.L2:
	bl	__VERIFIER_error
	.size	errorFn, .-errorFn
	.align	2
	.global	_BLAST_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	_BLAST_init, %function
_BLAST_init:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L5
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+4
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L5+8
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, .L5+12
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, .L5+16
	mov	r2, #4
	str	r2, [r3]
	ldr	r3, .L5+20
	mov	r2, #5
	str	r2, [r3]
	ldr	r3, .L5+24
	mov	r2, #6
	str	r2, [r3]
	ldr	r3, .L5+28
	mov	r2, #7
	str	r2, [r3]
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+32
	str	r3, [r2]
	ldr	r3, .L5+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+48
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+52
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+56
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L6:
	.align	2
.L5:
	.word	UNLOADED
	.word	NP
	.word	DC
	.word	SKIP1
	.word	SKIP2
	.word	MPR1
	.word	MPR3
	.word	IPC
	.word	s
	.word	pended
	.word	compFptr
	.word	compRegistered
	.word	lowerDriverReturn
	.word	setEventCalled
	.word	customIrp
	.size	_BLAST_init, .-_BLAST_init
	.align	2
	.global	DiskPerfSyncFilterWithTarget
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfSyncFilterWithTarget, %function
DiskPerfSyncFilterWithTarget:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	DiskPerfSyncFilterWithTarget, .-DiskPerfSyncFilterWithTarget
	.align	2
	.global	DiskPerfDispatchPnp
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfDispatchPnp, %function
DiskPerfDispatchPnp:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L19
	ldr	r3, [fp, #-16]
	cmp	r3, #2
	bne	.L20
	b	.L18
.L19:
	nop
.L11:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	DiskPerfStartDevice
	str	r0, [fp, #-24]
	b	.L15
.L18:
.L13:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	DiskPerfRemoveDevice
	str	r0, [fp, #-24]
	b	.L15
.L20:
	nop
.L14:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	DiskPerfSendToNextDriver
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L16
.L15:
	ldr	r3, [fp, #-24]
.L16:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	DiskPerfDispatchPnp, .-DiskPerfDispatchPnp
	.align	2
	.global	DiskPerfIrpCompletion
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfIrpCompletion, %function
DiskPerfIrpCompletion:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	mov	r2, #0
	mov	r1, #0
	ldr	r0, [fp, #-8]
	bl	KeSetEvent
	mov	r3, #-1073741802
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	DiskPerfIrpCompletion, .-DiskPerfIrpCompletion
	.align	2
	.global	DiskPerfStartDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfStartDevice, %function
DiskPerfStartDevice:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	DiskPerfForwardIrpSynchronous
	str	r0, [fp, #-12]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-32]
	bl	DiskPerfSyncFilterWithTarget
	ldr	r0, [fp, #-32]
	bl	DiskPerfRegisterDevice
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, .L25
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	IofCompleteRequest
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L26:
	.align	2
.L25:
	.word	myStatus
	.size	DiskPerfStartDevice, .-DiskPerfStartDevice
	.align	2
	.global	DiskPerfRemoveDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfRemoveDevice, %function
DiskPerfRemoveDevice:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	DiskPerfForwardIrpSynchronous
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, .L29
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	IofCompleteRequest
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L30:
	.align	2
.L29:
	.word	myStatus
	.size	DiskPerfRemoveDevice, .-DiskPerfRemoveDevice
	.align	2
	.global	DiskPerfSendToNextDriver
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfSendToNextDriver, %function
DiskPerfSendToNextDriver:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, .L35
	ldr	r2, [r3]
	ldr	r3, .L35+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L32
	ldr	r3, .L35+8
	ldr	r3, [r3]
	ldr	r2, .L35
	str	r3, [r2]
	b	.L33
.L32:
	bl	errorFn
.L33:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-12]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-16]
	bl	IofCallDriver
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L36:
	.align	2
.L35:
	.word	s
	.word	NP
	.word	SKIP1
	.size	DiskPerfSendToNextDriver, .-DiskPerfSendToNextDriver
	.align	2
	.global	DiskPerfDispatchPower
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfDispatchPower, %function
DiskPerfDispatchPower:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, .L41
	ldr	r2, [r3]
	ldr	r3, .L41+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L38
	ldr	r3, .L41+8
	ldr	r3, [r3]
	ldr	r2, .L41
	str	r3, [r2]
	b	.L39
.L38:
	bl	errorFn
.L39:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-12]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-16]
	bl	PoCallDriver
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L42:
	.align	2
.L41:
	.word	s
	.word	NP
	.word	SKIP1
	.size	DiskPerfDispatchPower, .-DiskPerfDispatchPower
	.align	2
	.global	DiskPerfForwardIrpSynchronous
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfForwardIrpSynchronous, %function
DiskPerfForwardIrpSynchronous:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-52]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-48]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-44]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, .L49
	ldr	r2, [r3]
	ldr	r3, .L49+4
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L44
	bl	errorFn
	b	.L45
.L44:
	ldr	r3, .L49+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L46
	bl	errorFn
	b	.L45
.L46:
	ldr	r3, .L49+8
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L49+12
	mov	r2, #0
	str	r2, [r3]
.L45:
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-16]
	mov	r3, #224
	str	r3, [fp, #-12]
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-44]
	bl	IofCallDriver
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L49+16
	cmp	r3, r2
	bne	.L47
	ldr	r3, .L49+20
	ldr	r1, [r3]
	ldr	r3, .L49+24
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-40]
	bl	KeWaitForSingleObject
	ldr	r3, .L49+28
	ldr	r3, [r3]
	str	r3, [fp, #-56]
.L47:
	ldr	r3, [fp, #-56]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L50:
	.align	2
.L49:
	.word	s
	.word	NP
	.word	compRegistered
	.word	routine
	.word	259
	.word	Executive
	.word	KernelMode
	.word	myStatus
	.size	DiskPerfForwardIrpSynchronous, .-DiskPerfForwardIrpSynchronous
	.align	2
	.global	DiskPerfCreate
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfCreate, %function
DiskPerfCreate:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L53
	mov	r2, #0
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, [fp, #-12]
	bl	IofCompleteRequest
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L54:
	.align	2
.L53:
	.word	myStatus
	.size	DiskPerfCreate, .-DiskPerfCreate
	.align	2
	.global	DiskPerfIoCompletion
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfIoCompletion, %function
DiskPerfIoCompletion:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	str	r2, [fp, #-72]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-60]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-56]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-52]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-48]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-44]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-40]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-32]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L56
	mov	r3, #0
	b	.L57
.L56:
	ldr	r3, [fp, #-60]
	cmp	r3, #3
	bne	.L58
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	b	.L59
.L58:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-28]
.L59:
	ldr	r3, [fp, #-24]
	cmp	r3, #8
	beq	.L60
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L60:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L61
	ldr	r3, .L63
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L62
	ldr	r3, .L63
	mov	r2, #1
	str	r2, [r3]
	b	.L61
.L62:
	bl	errorFn
.L61:
	mov	r3, #0
.L57:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L64:
	.align	2
.L63:
	.word	pended
	.size	DiskPerfIoCompletion, .-DiskPerfIoCompletion
	.align	2
	.global	DiskPerfDeviceControl
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfDeviceControl, %function
DiskPerfDeviceControl:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-92]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-88]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-84]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-80]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-76]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-72]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-68]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-64]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-60]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-56]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-44]
	mov	r3, #32
	str	r3, [fp, #-40]
	mov	r3, #458752
	str	r3, [fp, #-36]
	ldr	r3, .L77
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bne	.L66
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-68]
	cmp	r2, r3
	bge	.L67
	mov	r3, #-1073741789
	str	r3, [fp, #-100]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L68
.L67:
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L69
	mov	r3, #-1073741823
	str	r3, [fp, #-8]
	ldr	r3, .L77+4
	mov	r2, #-1073741823
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, [fp, #-108]
	bl	IofCompleteRequest
	mov	r3, #-1073741823
	b	.L70
.L69:
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-96]
.L71:
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	bge	.L76
	ldr	r3, [fp, #-96]
	add	r3, r3, #1
	str	r3, [fp, #-96]
	b	.L71
.L73:
.L76:
	nop
.L74:
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-12]
.L68:
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-8]
	ldr	r2, .L77+4
	ldr	r3, [fp, #-100]
	str	r3, [r2]
	mov	r1, #0
	ldr	r0, [fp, #-108]
	bl	IofCompleteRequest
	ldr	r3, [fp, #-100]
	b	.L70
.L66:
	ldr	r3, [fp, #-92]
	add	r3, r3, #1
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-88]
	ldr	r1, [fp, #-108]
	ldr	r0, [fp, #-80]
	bl	IofCallDriver
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
.L70:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L78:
	.align	2
.L77:
	.word	458784
	.word	myStatus
	.size	DiskPerfDeviceControl, .-DiskPerfDeviceControl
	.align	2
	.global	DiskPerfShutdownFlush
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfShutdownFlush, %function
DiskPerfShutdownFlush:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-16]
	bl	IofCallDriver
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	DiskPerfShutdownFlush, .-DiskPerfShutdownFlush
	.align	2
	.global	DiskPerfUnload
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfUnload, %function
DiskPerfUnload:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	DiskPerfUnload, .-DiskPerfUnload
	.align	2
	.global	DiskPerfRegisterDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	DiskPerfRegisterDevice, %function
DiskPerfRegisterDevice:
	@ args = 0, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #176
	str	r0, [fp, #-152]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-140]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-136]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-132]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-128]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-124]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-120]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-116]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-112]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-108]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-104]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-100]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-96]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-92]
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-140]
	str	r3, [fp, #-84]
	mov	r3, #4224
	str	r3, [fp, #-80]
	mov	r3, #2949120
	str	r3, [fp, #-76]
	ldr	r3, .L100
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-116]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-112]
	str	r3, [sp, #12]
	mov	r3, #0
	str	r3, [sp, #8]
	ldr	r3, [fp, #-132]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-108]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-72]
	bl	IoBuildDeviceIoControlRequest
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L84
	ldr	r3, .L100+4
	b	.L85
.L84:
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-136]
	bl	IofCallDriver
	str	r0, [fp, #-144]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r2, .L100+8
	cmp	r3, r2
	bne	.L86
	ldr	r3, .L100+12
	ldr	r1, [r3]
	ldr	r3, .L100+16
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-112]
	bl	KeWaitForSingleObject
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-144]
.L86:
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bge	.L87
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L88
	ldr	r3, .L100+4
	b	.L85
.L88:
	mov	r3, #8
	str	r3, [fp, #-56]
	mov	r3, #5046272
	str	r3, [fp, #-52]
	ldr	r3, .L100+20
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-116]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-112]
	str	r3, [sp, #12]
	mov	r3, #0
	str	r3, [sp, #8]
	ldr	r3, [fp, #-60]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-96]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-48]
	bl	IoBuildDeviceIoControlRequest
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L89
	ldr	r3, .L100+4
	b	.L85
.L89:
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-136]
	bl	IofCallDriver
	str	r0, [fp, #-144]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r2, .L100+8
	cmp	r3, r2
	bne	.L90
	ldr	r3, .L100+12
	ldr	r1, [r3]
	ldr	r3, .L100+16
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-112]
	bl	KeWaitForSingleObject
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-144]
.L90:
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #-2147483643
	bne	.L91
	ldr	r2, [fp, #-104]
	ldr	r3, [fp, #-100]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L92
	ldr	r3, .L100+4
	b	.L85
.L92:
	mov	r3, #8
	str	r3, [fp, #-36]
	mov	r3, #5046272
	str	r3, [fp, #-32]
	ldr	r3, .L100+20
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-116]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-112]
	str	r3, [sp, #12]
	mov	r3, #0
	str	r3, [sp, #8]
	ldr	r3, [fp, #-60]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-96]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-28]
	bl	IoBuildDeviceIoControlRequest
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L93
	ldr	r3, .L100+4
	b	.L85
.L93:
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-136]
	bl	IofCallDriver
	str	r0, [fp, #-144]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r2, .L100+8
	cmp	r3, r2
	bne	.L91
	ldr	r3, .L100+12
	ldr	r1, [r3]
	ldr	r3, .L100+16
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-112]
	bl	KeWaitForSingleObject
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-144]
.L91:
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bge	.L94
	ldr	r3, [fp, #-144]
	b	.L85
.L94:
	mov	r3, #28
	str	r3, [fp, #-20]
	mov	r3, #5636096
	str	r3, [fp, #-16]
	ldr	r3, .L100+24
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-116]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-112]
	str	r3, [sp, #12]
	mov	r3, #0
	str	r3, [sp, #8]
	ldr	r3, [fp, #-124]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-92]
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-12]
	bl	IoBuildDeviceIoControlRequest
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	bne	.L95
	ldr	r3, .L100+4
	b	.L85
.L95:
	ldr	r1, [fp, #-68]
	ldr	r0, [fp, #-136]
	bl	IofCallDriver
	str	r0, [fp, #-144]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L100+8
	cmp	r3, r2
	bne	.L96
	ldr	r3, .L100+12
	ldr	r1, [r3]
	ldr	r3, .L100+16
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-112]
	bl	KeWaitForSingleObject
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-144]
.L96:
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	blt	.L99
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	b	.L87
.L98:
.L99:
	nop
.L87:
	ldr	r3, [fp, #-144]
.L85:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L101:
	.align	2
.L100:
	.word	2953344
	.word	-1073741670
	.word	259
	.word	Executive
	.word	KernelMode
	.word	5046280
	.word	5636124
	.size	DiskPerfRegisterDevice, .-DiskPerfRegisterDevice
	.align	2
	.global	stub_driver_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	stub_driver_init, %function
stub_driver_init:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L104
	ldr	r3, [r3]
	ldr	r2, .L104+4
	str	r3, [r2]
	ldr	r3, .L104+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L104+8
	ldr	r3, [r3]
	ldr	r2, .L104+12
	str	r3, [r2]
	ldr	r3, .L104+12
	ldr	r3, [r3]
	ldr	r2, .L104+16
	str	r3, [r2]
	ldr	r3, .L104+16
	ldr	r3, [r3]
	ldr	r2, .L104+20
	str	r3, [r2]
	ldr	r3, .L104+20
	ldr	r3, [r3]
	ldr	r2, .L104+24
	str	r3, [r2]
	ldr	r3, .L104+24
	ldr	r3, [r3]
	ldr	r2, .L104+28
	str	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L105:
	.align	2
.L104:
	.word	NP
	.word	s
	.word	customIrp
	.word	setEventCalled
	.word	lowerDriverReturn
	.word	compRegistered
	.word	compFptr
	.word	pended
	.size	stub_driver_init, .-stub_driver_init
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-48]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-52]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-44]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-40]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-32]
	ldr	r3, .L150
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+32
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+48
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+52
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+56
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+60
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+64
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+68
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+72
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+76
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, .L150+68
	ldr	r3, [fp, #-40]
	str	r3, [r2]
	bl	_BLAST_init
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	blt	.L107
	ldr	r3, .L150+8
	ldr	r3, [r3]
	ldr	r2, .L150
	str	r3, [r2]
	ldr	r3, .L150+56
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L150+56
	ldr	r3, [r3]
	ldr	r2, .L150+52
	str	r3, [r2]
	ldr	r3, .L150+52
	ldr	r3, [r3]
	ldr	r2, .L150+48
	str	r3, [r2]
	ldr	r3, .L150+48
	ldr	r3, [r3]
	ldr	r2, .L150+44
	str	r3, [r2]
	ldr	r3, .L150+44
	ldr	r3, [r3]
	ldr	r2, .L150+40
	str	r3, [r2]
	ldr	r3, .L150+40
	ldr	r3, [r3]
	ldr	r2, .L150+36
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, .L150+60
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L108
	ldr	r3, .L150+80
	str	r3, [fp, #-28]
	ldr	r3, .L150+60
	ldr	r2, .L150+80
	str	r2, [r3]
.L108:
	bl	stub_driver_init
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bge	.L109
	mvn	r3, #0
	b	.L110
.L109:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L138
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	beq	.L139
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	beq	.L140
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #4
	beq	.L141
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #12
	bne	.L142
	b	.L137
.L138:
	nop
.L112:
	ldr	r3, .L150+68
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	DiskPerfCreate
	str	r0, [fp, #-52]
	b	.L122
.L139:
	nop
.L114:
	ldr	r3, .L150+68
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	DiskPerfDeviceControl
	str	r0, [fp, #-52]
	b	.L122
.L140:
	nop
.L116:
	ldr	r3, .L150+68
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	DiskPerfDispatchPnp
	str	r0, [fp, #-52]
	b	.L122
.L141:
	nop
.L118:
	ldr	r3, .L150+68
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	DiskPerfDispatchPower
	str	r0, [fp, #-52]
	b	.L122
.L137:
.L120:
	ldr	r3, .L150+68
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-32]
	bl	DiskPerfShutdownFlush
	str	r0, [fp, #-52]
	b	.L122
.L142:
	nop
.L121:
	mvn	r3, #0
	b	.L110
.L122:
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L107
	ldr	r0, [fp, #-48]
	bl	DiskPerfUnload
.L107:
	ldr	r3, .L150+36
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L143
	ldr	r3, .L150
	ldr	r2, [r3]
	ldr	r3, .L150+8
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L144
	ldr	r3, .L150+8
	ldr	r3, [r3]
	ldr	r2, .L150
	str	r3, [r2]
	b	.L125
.L143:
	nop
	b	.L123
.L144:
	nop
.L123:
	ldr	r3, .L150+36
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L145
	ldr	r3, .L150
	ldr	r2, [r3]
	ldr	r3, .L150+28
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L146
	ldr	r3, .L150+28
	ldr	r3, [r3]
	ldr	r2, .L150
	str	r3, [r2]
	b	.L125
.L145:
	nop
	b	.L126
.L146:
	nop
.L126:
	ldr	r3, .L150
	ldr	r2, [r3]
	ldr	r3, .L150+4
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L125
	ldr	r3, [fp, #-52]
	cmn	r3, #1
	beq	.L125
	ldr	r3, .L150
	ldr	r2, [r3]
	ldr	r3, .L150+20
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L147
	ldr	r3, .L150
	ldr	r2, [r3]
	ldr	r3, .L150+32
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L148
	ldr	r3, .L150
	ldr	r2, [r3]
	ldr	r3, .L150+12
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L149
	bl	errorFn
	b	.L125
.L147:
	nop
	b	.L128
.L148:
	nop
	b	.L128
.L149:
	nop
.L128:
	ldr	r3, .L150+36
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L131
	ldr	r3, [fp, #-52]
	ldr	r2, .L150+84
	cmp	r3, r2
	beq	.L125
	bl	errorFn
	b	.L125
.L131:
	ldr	r3, .L150
	ldr	r2, [r3]
	ldr	r3, .L150+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L132
	ldr	r3, [fp, #-52]
	ldr	r2, .L150+84
	cmp	r3, r2
	bne	.L125
	bl	errorFn
	b	.L125
.L132:
	ldr	r3, .L150+48
	ldr	r3, [r3]
	ldr	r2, [fp, #-52]
	cmp	r2, r3
	beq	.L125
	bl	errorFn
.L125:
	ldr	r3, [fp, #-52]
.L110:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L151:
	.align	2
.L150:
	.word	s
	.word	UNLOADED
	.word	NP
	.word	DC
	.word	SKIP1
	.word	SKIP2
	.word	MPR1
	.word	MPR3
	.word	IPC
	.word	pended
	.word	compFptr
	.word	compRegistered
	.word	lowerDriverReturn
	.word	setEventCalled
	.word	customIrp
	.word	myStatus
	.word	routine
	.word	pirp
	.word	Executive
	.word	KernelMode
	.word	-1073741637
	.word	259
	.size	main, .-main
	.align	2
	.global	IoBuildDeviceIoControlRequest
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoBuildDeviceIoControlRequest, %function
IoBuildDeviceIoControlRequest:
	@ args = 20, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, .L158
	mov	r2, #1
	str	r2, [r3]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L157
	nop
.L154:
	ldr	r3, [fp, #-12]
	b	.L156
.L157:
	nop
.L155:
	mov	r3, #0
.L156:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L159:
	.align	2
.L158:
	.word	customIrp
	.size	IoBuildDeviceIoControlRequest, .-IoBuildDeviceIoControlRequest
	.align	2
	.global	stubMoreProcessingRequired
	.syntax unified
	.arm
	.fpu softvfp
	.type	stubMoreProcessingRequired, %function
stubMoreProcessingRequired:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L164
	ldr	r2, [r3]
	ldr	r3, .L164+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L161
	ldr	r3, .L164+8
	ldr	r3, [r3]
	ldr	r2, .L164
	str	r3, [r2]
	pop	{fp, pc}
.L161:
	bl	errorFn
	nop
	pop	{fp, pc}
.L165:
	.align	2
.L164:
	.word	s
	.word	NP
	.word	MPR1
	.size	stubMoreProcessingRequired, .-stubMoreProcessingRequired
	.align	2
	.global	IofCallDriver
	.syntax unified
	.arm
	.fpu softvfp
	.type	IofCallDriver, %function
IofCallDriver:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, .L186
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L167
	ldr	r3, .L186+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L168
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	DiskPerfIrpCompletion
	str	r0, [fp, #-24]
	b	.L169
.L168:
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	DiskPerfIoCompletion
	str	r0, [fp, #-24]
.L169:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #-1073741802
	bne	.L167
	bl	stubMoreProcessingRequired
.L167:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L184
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bne	.L185
	b	.L183
.L184:
	nop
.L171:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L175
.L183:
.L173:
	mov	r3, #-1073741823
	str	r3, [fp, #-28]
	b	.L175
.L185:
	nop
.L174:
	ldr	r3, .L186+8
	str	r3, [fp, #-28]
	nop
.L175:
	ldr	r3, .L186+12
	ldr	r2, [r3]
	ldr	r3, .L186+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L176
	ldr	r3, .L186+20
	ldr	r3, [r3]
	ldr	r2, .L186+12
	str	r3, [r2]
	ldr	r2, .L186+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L177
.L176:
	ldr	r3, .L186+12
	ldr	r2, [r3]
	ldr	r3, .L186+28
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L178
	ldr	r3, [fp, #-28]
	ldr	r2, .L186+8
	cmp	r3, r2
	bne	.L179
	ldr	r3, .L186+32
	ldr	r3, [r3]
	ldr	r2, .L186+12
	str	r3, [r2]
	ldr	r2, .L186+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L177
.L179:
	ldr	r3, .L186+16
	ldr	r3, [r3]
	ldr	r2, .L186+12
	str	r3, [r2]
	ldr	r2, .L186+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L177
.L178:
	ldr	r3, .L186+12
	ldr	r2, [r3]
	ldr	r3, .L186+36
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L180
	ldr	r3, .L186+40
	ldr	r3, [r3]
	ldr	r2, .L186+12
	str	r3, [r2]
	ldr	r2, .L186+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L177
.L180:
	bl	errorFn
.L177:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L187:
	.align	2
.L186:
	.word	compRegistered
	.word	routine
	.word	259
	.word	s
	.word	NP
	.word	IPC
	.word	lowerDriverReturn
	.word	MPR1
	.word	MPR3
	.word	SKIP1
	.word	SKIP2
	.size	IofCallDriver, .-IofCallDriver
	.align	2
	.global	IofCompleteRequest
	.syntax unified
	.arm
	.fpu softvfp
	.type	IofCompleteRequest, %function
IofCompleteRequest:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L192
	ldr	r2, [r3]
	ldr	r3, .L192+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L189
	ldr	r3, .L192+8
	ldr	r3, [r3]
	ldr	r2, .L192
	str	r3, [r2]
	b	.L188
.L189:
	bl	errorFn
	nop
.L188:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L193:
	.align	2
.L192:
	.word	s
	.word	NP
	.word	DC
	.size	IofCompleteRequest, .-IofCompleteRequest
	.align	2
	.global	KeSetEvent
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeSetEvent, %function
KeSetEvent:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, .L196
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L197:
	.align	2
.L196:
	.word	setEventCalled
	.size	KeSetEvent, .-KeSetEvent
	.align	2
	.global	KeWaitForSingleObject
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeWaitForSingleObject, %function
KeWaitForSingleObject:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, .L210
	ldr	r2, [r3]
	ldr	r3, .L210+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L207
	ldr	r3, .L210+8
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L208
	ldr	r3, .L210+12
	ldr	r3, [r3]
	ldr	r2, .L210
	str	r3, [r2]
	ldr	r3, .L210+8
	mov	r2, #0
	str	r2, [r3]
	b	.L201
.L207:
	nop
	b	.L199
.L208:
	nop
.L199:
	ldr	r3, .L210+16
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L202
	ldr	r3, .L210+12
	ldr	r3, [r3]
	ldr	r2, .L210
	str	r3, [r2]
	ldr	r3, .L210+16
	mov	r2, #0
	str	r2, [r3]
	b	.L201
.L202:
	ldr	r3, .L210
	ldr	r2, [r3]
	ldr	r3, .L210+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L201
	bl	errorFn
.L201:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L209
	nop
.L204:
	mov	r3, #0
	b	.L206
.L209:
	nop
.L205:
	mov	r3, #-1073741823
.L206:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L211:
	.align	2
.L210:
	.word	s
	.word	MPR3
	.word	setEventCalled
	.word	NP
	.word	customIrp
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.align	2
	.global	PoCallDriver
	.syntax unified
	.arm
	.fpu softvfp
	.type	PoCallDriver, %function
PoCallDriver:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	ldr	r3, .L232
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L213
	ldr	r3, .L232+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L214
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	DiskPerfIrpCompletion
	str	r0, [fp, #-32]
	b	.L215
.L214:
	ldr	r3, .L232+4
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L215
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	DiskPerfIoCompletion
	str	r0, [fp, #-32]
.L215:
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #-1073741802
	bne	.L213
	bl	stubMoreProcessingRequired
.L213:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L230
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bne	.L231
	b	.L229
.L230:
	nop
.L217:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L221
.L229:
.L219:
	mov	r3, #-1073741823
	str	r3, [fp, #-28]
	b	.L221
.L231:
	nop
.L220:
	ldr	r3, .L232+8
	str	r3, [fp, #-28]
	nop
.L221:
	ldr	r3, .L232+12
	ldr	r2, [r3]
	ldr	r3, .L232+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L222
	ldr	r3, .L232+20
	ldr	r3, [r3]
	ldr	r2, .L232+12
	str	r3, [r2]
	ldr	r2, .L232+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L223
.L222:
	ldr	r3, .L232+12
	ldr	r2, [r3]
	ldr	r3, .L232+28
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L224
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L232+8
	cmp	r3, r2
	bne	.L225
	ldr	r3, .L232+32
	ldr	r3, [r3]
	ldr	r2, .L232+12
	str	r3, [r2]
	ldr	r2, .L232+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L223
.L225:
	ldr	r3, .L232+16
	ldr	r3, [r3]
	ldr	r2, .L232+12
	str	r3, [r2]
	ldr	r2, .L232+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L223
.L224:
	ldr	r3, .L232+12
	ldr	r2, [r3]
	ldr	r3, .L232+36
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L226
	ldr	r3, .L232+40
	ldr	r3, [r3]
	ldr	r2, .L232+12
	str	r3, [r2]
	ldr	r2, .L232+24
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L223
.L226:
	bl	errorFn
.L223:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L233:
	.align	2
.L232:
	.word	compRegistered
	.word	routine
	.word	259
	.word	s
	.word	NP
	.word	IPC
	.word	lowerDriverReturn
	.word	MPR1
	.word	MPR3
	.word	SKIP1
	.word	SKIP2
	.size	PoCallDriver, .-PoCallDriver
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
